about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-04-09 18:28:16 +0000
committerAlyssa Ross <hi@alyssa.is>2021-04-12 18:46:15 +0000
commitfd2e737e0678ee7d8081baef05b305146a2c0034 (patch)
treeac3e9b27576a0382335532d126f9a66d486bc638
parentcc207d720b6aa836e256c1ee9842bc739e630a8a (diff)
parent9e377a6ce42dccd9b624ae4ce8f978dc892ba0e2 (diff)
downloadnixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.gz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.bz2
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.lz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.xz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.zst
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.zip
Merge remote-tracking branch 'nixpkgs/nixos-unstable'
-rw-r--r--nixpkgs/.github/CODEOWNERS18
-rw-r--r--nixpkgs/.github/labeler.yml147
-rw-r--r--nixpkgs/.github/workflows/editorconfig.yml2
-rw-r--r--nixpkgs/.github/workflows/labels.yml15
-rw-r--r--nixpkgs/.github/workflows/manual-nixos.yml4
-rw-r--r--nixpkgs/.github/workflows/manual-nixpkgs.yml4
-rw-r--r--nixpkgs/.github/workflows/rebase-staging.yml60
-rw-r--r--nixpkgs/.github/workflows/rebase.yml134
-rw-r--r--nixpkgs/doc/Makefile2
-rw-r--r--nixpkgs/doc/README.md12
-rw-r--r--nixpkgs/doc/builders/fetchers.chapter.md10
-rw-r--r--nixpkgs/doc/builders/images.xml4
-rw-r--r--nixpkgs/doc/builders/images/dockertools.section.md308
-rw-r--r--nixpkgs/doc/builders/images/dockertools.xml499
-rw-r--r--nixpkgs/doc/builders/images/ocitools.section.md37
-rw-r--r--nixpkgs/doc/builders/images/ocitools.xml61
-rw-r--r--nixpkgs/doc/builders/images/snaptools.xml2
-rw-r--r--nixpkgs/doc/builders/packages/citrix.section.md32
-rw-r--r--nixpkgs/doc/builders/packages/citrix.xml46
-rw-r--r--nixpkgs/doc/builders/packages/eclipse.section.md64
-rw-r--r--nixpkgs/doc/builders/packages/eclipse.xml72
-rw-r--r--nixpkgs/doc/builders/packages/emacs.section.md2
-rw-r--r--nixpkgs/doc/builders/packages/fuse.section.md19
-rw-r--r--nixpkgs/doc/builders/packages/ibus.section.md38
-rw-r--r--nixpkgs/doc/builders/packages/ibus.xml57
-rw-r--r--nixpkgs/doc/builders/packages/index.xml7
-rw-r--r--nixpkgs/doc/contributing/coding-conventions.xml12
-rw-r--r--nixpkgs/doc/contributing/submitting-changes.chapter.md24
-rw-r--r--nixpkgs/doc/contributing/vulnerability-roundup.chapter.md45
-rw-r--r--nixpkgs/doc/functions/library/attrsets.xml8
-rw-r--r--nixpkgs/doc/languages-frameworks/agda.section.md14
-rw-r--r--nixpkgs/doc/languages-frameworks/android.section.md2
-rw-r--r--nixpkgs/doc/languages-frameworks/coq.section.md6
-rw-r--r--nixpkgs/doc/languages-frameworks/dotnet.section.md8
-rw-r--r--nixpkgs/doc/languages-frameworks/idris.section.md18
-rw-r--r--nixpkgs/doc/languages-frameworks/lua.section.md4
-rw-r--r--nixpkgs/doc/languages-frameworks/python.section.md99
-rw-r--r--nixpkgs/doc/languages-frameworks/qt.section.md118
-rw-r--r--nixpkgs/doc/languages-frameworks/ruby.section.md2
-rw-r--r--nixpkgs/doc/languages-frameworks/rust.section.md291
-rw-r--r--nixpkgs/doc/languages-frameworks/vim.section.md8
-rw-r--r--nixpkgs/doc/manual.xml9
-rw-r--r--nixpkgs/doc/stdenv/cross-compilation.chapter.md21
-rw-r--r--nixpkgs/doc/stdenv/meta.chapter.md194
-rw-r--r--nixpkgs/doc/stdenv/meta.xml349
-rw-r--r--nixpkgs/doc/stdenv/multiple-output.chapter.md128
-rw-r--r--nixpkgs/doc/stdenv/multiple-output.xml262
-rw-r--r--nixpkgs/doc/stdenv/platform-notes.chapter.md62
-rw-r--r--nixpkgs/doc/stdenv/platform-notes.xml83
-rw-r--r--nixpkgs/doc/stdenv/stdenv.chapter.md1215
-rw-r--r--nixpkgs/doc/stdenv/stdenv.xml2423
-rw-r--r--nixpkgs/doc/using/configuration.xml12
-rw-r--r--nixpkgs/doc/using/overlays.xml256
-rw-r--r--nixpkgs/lib/generators.nix24
-rw-r--r--nixpkgs/lib/licenses.nix9
-rw-r--r--nixpkgs/lib/modules.nix11
-rw-r--r--nixpkgs/lib/sources.nix13
-rw-r--r--nixpkgs/lib/systems/default.nix5
-rw-r--r--nixpkgs/lib/systems/platforms.nix6
-rwxr-xr-xnixpkgs/lib/tests/modules.sh2
-rw-r--r--nixpkgs/lib/trivial.nix2
-rw-r--r--nixpkgs/maintainers/maintainer-list.nix488
-rw-r--r--nixpkgs/maintainers/scripts/nixpkgs-lint.nix3
-rw-r--r--nixpkgs/maintainers/scripts/pluginupdate.py527
-rw-r--r--nixpkgs/maintainers/team-list.nix24
-rw-r--r--nixpkgs/nixos/doc/manual/Makefile2
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/config-file.xml7
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml6
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/networking.xml1
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/profiles/clone-config.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/renaming-interfaces.xml67
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/x-windows.xml16
-rw-r--r--nixpkgs/nixos/doc/manual/development/writing-documentation.xml3
-rw-r--r--nixpkgs/nixos/doc/manual/development/writing-modules.xml5
-rw-r--r--nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml11
-rw-r--r--nixpkgs/nixos/doc/manual/installation/installing-virtualbox-guest.xml7
-rw-r--r--nixpkgs/nixos/doc/manual/installation/installing.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2009.xml8
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml242
-rw-r--r--nixpkgs/nixos/lib/make-squashfs.nix2
-rw-r--r--nixpkgs/nixos/lib/qemu-flags.nix4
-rwxr-xr-xnixpkgs/nixos/maintainers/scripts/gce/create-gce.sh12
-rw-r--r--nixpkgs/nixos/modules/config/console.nix13
-rw-r--r--nixpkgs/nixos/modules/config/swap.nix2
-rw-r--r--nixpkgs/nixos/modules/config/system-path.nix20
-rw-r--r--nixpkgs/nixos/modules/config/update-users-groups.pl2
-rw-r--r--nixpkgs/nixos/modules/config/users-groups.nix16
-rw-r--r--nixpkgs/nixos/modules/hardware/all-firmware.nix2
-rw-r--r--nixpkgs/nixos/modules/hardware/ksm.nix12
-rw-r--r--nixpkgs/nixos/modules/hardware/sata.nix100
-rw-r--r--nixpkgs/nixos/modules/hardware/ubertooth.nix29
-rw-r--r--nixpkgs/nixos/modules/hardware/video/amdgpu.nix9
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64-new-kernel.nix17
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix84
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix61
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix50
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix18
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image.nix247
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix2
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-pc.nix4
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-installer.nix10
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel-installer.nix10
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel.nix7
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64.nix75
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-armv7l-multiplatform-installer.nix10
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-armv7l-multiplatform.nix52
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi-installer.nix10
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi.nix41
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4-installer.nix10
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4.nix8
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image.nix245
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl18
-rw-r--r--nixpkgs/nixos/modules/installer/tools/tools.nix7
-rw-r--r--nixpkgs/nixos/modules/misc/crashdump.nix2
-rw-r--r--nixpkgs/nixos/modules/misc/documentation.nix2
-rw-r--r--nixpkgs/nixos/modules/misc/ids.nix4
-rw-r--r--nixpkgs/nixos/modules/misc/meta.nix4
-rw-r--r--nixpkgs/nixos/modules/module-list.nix32
-rw-r--r--nixpkgs/nixos/modules/profiles/hardened.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/droidcam.nix16
-rw-r--r--nixpkgs/nixos/modules/programs/fish_completion-generator.patch19
-rw-r--r--nixpkgs/nixos/modules/programs/less.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/mininet.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/partition-manager.nix19
-rw-r--r--nixpkgs/nixos/modules/programs/steam.nix42
-rw-r--r--nixpkgs/nixos/modules/programs/sway.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/turbovnc.nix54
-rw-r--r--nixpkgs/nixos/modules/rename.nix5
-rw-r--r--nixpkgs/nixos/modules/security/acme.nix52
-rw-r--r--nixpkgs/nixos/modules/security/hidepid.nix31
-rw-r--r--nixpkgs/nixos/modules/security/hidepid.xml28
-rw-r--r--nixpkgs/nixos/modules/security/rngd.nix64
-rw-r--r--nixpkgs/nixos/modules/services/audio/jmusicbot.nix41
-rw-r--r--nixpkgs/nixos/modules/services/audio/mpd.nix4
-rw-r--r--nixpkgs/nixos/modules/services/audio/snapserver.nix17
-rw-r--r--nixpkgs/nixos/modules/services/audio/spotifyd.nix1
-rw-r--r--nixpkgs/nixos/modules/services/backup/borgmatic.nix57
-rw-r--r--nixpkgs/nixos/modules/services/backup/restic.nix13
-rw-r--r--nixpkgs/nixos/modules/services/backup/zrepl.nix54
-rw-r--r--nixpkgs/nixos/modules/services/blockchain/ethereum/geth.nix178
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/addons/dns.nix7
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix42
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/default.nix33
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/flannel.nix40
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix41
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix1
-rw-r--r--nixpkgs/nixos/modules/services/computing/slurm/slurm.nix11
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix29
-rw-r--r--nixpkgs/nixos/modules/services/databases/mysql.nix15
-rw-r--r--nixpkgs/nixos/modules/services/databases/postgresql.nix17
-rw-r--r--nixpkgs/nixos/modules/services/desktops/geoclue2.nix4
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/README.md6
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json34
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json36
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/client-rt.conf.json39
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/client.conf.json31
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/jack.conf.json28
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json66
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix129
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json38
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json79
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix (renamed from nixpkgs/nixos/modules/services/desktops/pipewire.nix)147
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json30
-rw-r--r--nixpkgs/nixos/modules/services/display-managers/greetd.nix106
-rw-r--r--nixpkgs/nixos/modules/services/games/factorio.nix10
-rw-r--r--nixpkgs/nixos/modules/services/games/minetest-server.nix2
-rw-r--r--nixpkgs/nixos/modules/services/hardware/acpid.nix31
-rw-r--r--nixpkgs/nixos/modules/services/hardware/bluetooth.nix152
-rw-r--r--nixpkgs/nixos/modules/services/hardware/sane.nix16
-rw-r--r--nixpkgs/nixos/modules/services/hardware/spacenavd.nix26
-rw-r--r--nixpkgs/nixos/modules/services/hardware/tcsd.nix35
-rw-r--r--nixpkgs/nixos/modules/services/hardware/trezord.nix2
-rw-r--r--nixpkgs/nixos/modules/services/hardware/udev.nix23
-rw-r--r--nixpkgs/nixos/modules/services/hardware/xow.nix3
-rw-r--r--nixpkgs/nixos/modules/services/logging/graylog.nix6
-rw-r--r--nixpkgs/nixos/modules/services/logging/logstash.nix3
-rw-r--r--nixpkgs/nixos/modules/services/logging/vector.nix43
-rw-r--r--nixpkgs/nixos/modules/services/mail/mlmmj.nix43
-rw-r--r--nixpkgs/nixos/modules/services/misc/apache-kafka.nix23
-rw-r--r--nixpkgs/nixos/modules/services/misc/defaultUnicornConfig.rb69
-rw-r--r--nixpkgs/nixos/modules/services/misc/disnix.nix98
-rw-r--r--nixpkgs/nixos/modules/services/misc/dysnomia.nix259
-rw-r--r--nixpkgs/nixos/modules/services/misc/etebase-server.nix170
-rw-r--r--nixpkgs/nixos/modules/services/misc/etesync-dav.nix92
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitlab.nix473
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitlab.xml57
-rw-r--r--nixpkgs/nixos/modules/services/misc/gollum.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/home-assistant.nix17
-rw-r--r--nixpkgs/nixos/modules/services/misc/lifecycled.nix164
-rw-r--r--nixpkgs/nixos/modules/services/misc/mame.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/matrix-appservice-irc.nix228
-rw-r--r--nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix20
-rw-r--r--nixpkgs/nixos/modules/services/misc/nix-gc.nix53
-rw-r--r--nixpkgs/nixos/modules/services/misc/ombi.nix80
-rw-r--r--nixpkgs/nixos/modules/services/misc/packagekit.nix91
-rw-r--r--nixpkgs/nixos/modules/services/misc/plikd.nix82
-rw-r--r--nixpkgs/nixos/modules/services/misc/redmine.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/alerta.nix4
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix4
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/grafana.nix152
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/netdata.nix19
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix30
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix59
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix82
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/domain.nix19
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix40
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix50
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openldap.nix67
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix37
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix18
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/scollector.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/zabbix-agent.nix11
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/ceph.nix2
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/samba.nix1
-rw-r--r--nixpkgs/nixos/modules/services/networking/bird.nix14
-rw-r--r--nixpkgs/nixos/modules/services/networking/cjdns.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/consul.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/croc.nix88
-rw-r--r--nixpkgs/nixos/modules/services/networking/dhcpcd.nix3
-rw-r--r--nixpkgs/nixos/modules/services/networking/dnscrypt-proxy2.nix1
-rw-r--r--nixpkgs/nixos/modules/services/networking/flannel.nix6
-rw-r--r--nixpkgs/nixos/modules/services/networking/gvpe.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/inspircd.nix62
-rw-r--r--nixpkgs/nixos/modules/services/networking/ircd-hybrid/default.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/kresd.nix13
-rw-r--r--nixpkgs/nixos/modules/services/networking/libreswan.nix8
-rw-r--r--nixpkgs/nixos/modules/services/networking/mullvad-vpn.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/networkmanager.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/nomad.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/openvpn.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/privoxy.nix304
-rw-r--r--nixpkgs/nixos/modules/services/networking/quagga.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/rxe.nix4
-rw-r--r--nixpkgs/nixos/modules/services/networking/sslh.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/strongswan-swanctl/module.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/strongswan.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/tailscale.nix1
-rw-r--r--nixpkgs/nixos/modules/services/networking/wg-quick.nix8
-rw-r--r--nixpkgs/nixos/modules/services/networking/wireguard.nix8
-rw-r--r--nixpkgs/nixos/modules/services/networking/zerobin.nix2
-rw-r--r--nixpkgs/nixos/modules/services/printing/cupsd.nix4
-rw-r--r--nixpkgs/nixos/modules/services/security/clamav.nix67
-rw-r--r--nixpkgs/nixos/modules/services/security/fail2ban.nix2
-rw-r--r--nixpkgs/nixos/modules/services/security/privacyidea.nix27
-rw-r--r--nixpkgs/nixos/modules/services/security/sshguard.nix4
-rw-r--r--nixpkgs/nixos/modules/services/system/cloud-init.nix2
-rw-r--r--nixpkgs/nixos/modules/services/system/localtime.nix9
-rw-r--r--nixpkgs/nixos/modules/services/ttys/kmscon.nix7
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/bookstack.nix365
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/calibre-web.nix165
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/discourse.nix1035
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/discourse.xml323
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix8
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/galene.nix6
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/hledger-web.nix109
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/mastodon.nix134
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/miniflux.nix26
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/moinmoin.nix4
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/nextcloud.nix70
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/nextcloud.xml2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/shiori.nix4
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/whitebophir.nix9
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/wiki-js.nix139
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/wordpress.nix4
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix6
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/nginx/default.nix22
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/pomerium.nix131
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix5
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/kodi.nix14
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix5
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix7
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/default.nix22
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix12
-rw-r--r--nixpkgs/nixos/modules/services/x11/xserver.nix7
-rw-r--r--nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix2
-rw-r--r--nixpkgs/nixos/modules/system/boot/kernel_config.nix22
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh2
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl225
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/init-script/init-script-builder.sh1
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py49
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix15
-rw-r--r--nixpkgs/nixos/modules/system/boot/luksroot.nix56
-rw-r--r--nixpkgs/nixos/modules/system/boot/networkd.nix110
-rw-r--r--nixpkgs/nixos/modules/system/boot/plymouth.nix89
-rw-r--r--nixpkgs/nixos/modules/system/boot/stage-1-init.sh15
-rw-r--r--nixpkgs/nixos/modules/system/boot/stage-1.nix15
-rw-r--r--nixpkgs/nixos/modules/system/boot/stage-2-init.sh3
-rw-r--r--nixpkgs/nixos/modules/system/boot/stage-2.nix15
-rw-r--r--nixpkgs/nixos/modules/system/boot/systemd.nix18
-rw-r--r--nixpkgs/nixos/modules/tasks/filesystems.nix6
-rw-r--r--nixpkgs/nixos/modules/tasks/filesystems/zfs.nix2
-rw-r--r--nixpkgs/nixos/modules/tasks/network-interfaces-scripted.nix18
-rw-r--r--nixpkgs/nixos/modules/tasks/network-interfaces-systemd.nix14
-rw-r--r--nixpkgs/nixos/modules/tasks/network-interfaces.nix8
-rw-r--r--nixpkgs/nixos/modules/virtualisation/amazon-init.nix41
-rw-r--r--nixpkgs/nixos/modules/virtualisation/anbox.nix1
-rw-r--r--nixpkgs/nixos/modules/virtualisation/brightbox-image.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/containerd.nix60
-rw-r--r--nixpkgs/nixos/modules/virtualisation/containers.nix3
-rw-r--r--nixpkgs/nixos/modules/virtualisation/ec2-data.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/fetch-instance-ssh-keys.bash36
-rw-r--r--nixpkgs/nixos/modules/virtualisation/gce-images.nix10
-rw-r--r--nixpkgs/nixos/modules/virtualisation/google-compute-config.nix27
-rw-r--r--nixpkgs/nixos/modules/virtualisation/hyperv-guest.nix4
-rw-r--r--nixpkgs/nixos/modules/virtualisation/libvirtd.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/lxd.nix61
-rw-r--r--nixpkgs/nixos/modules/virtualisation/nixos-containers.nix16
-rw-r--r--nixpkgs/nixos/modules/virtualisation/podman.nix10
-rw-r--r--nixpkgs/nixos/modules/virtualisation/qemu-vm.nix23
-rw-r--r--nixpkgs/nixos/modules/virtualisation/xe-guest-utilities.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/xen-dom0.nix2
-rw-r--r--nixpkgs/nixos/release.nix10
-rw-r--r--nixpkgs/nixos/tests/acme.nix54
-rw-r--r--nixpkgs/nixos/tests/agda.nix3
-rw-r--r--nixpkgs/nixos/tests/all-tests.nix30
-rw-r--r--nixpkgs/nixos/tests/bees.nix2
-rw-r--r--nixpkgs/nixos/tests/bind.nix1
-rw-r--r--nixpkgs/nixos/tests/bitwarden.nix1
-rw-r--r--nixpkgs/nixos/tests/calibre-web.nix53
-rw-r--r--nixpkgs/nixos/tests/ceph-single-node-bluestore.nix196
-rw-r--r--nixpkgs/nixos/tests/containers-bridge.nix8
-rw-r--r--nixpkgs/nixos/tests/containers-custom-pkgs.nix6
-rw-r--r--nixpkgs/nixos/tests/containers-ephemeral.nix7
-rw-r--r--nixpkgs/nixos/tests/containers-extra_veth.nix8
-rw-r--r--nixpkgs/nixos/tests/containers-hosts.nix8
-rw-r--r--nixpkgs/nixos/tests/containers-imperative.nix8
-rw-r--r--nixpkgs/nixos/tests/containers-ip.nix8
-rw-r--r--nixpkgs/nixos/tests/containers-macvlans.nix8
-rw-r--r--nixpkgs/nixos/tests/containers-names.nix37
-rw-r--r--nixpkgs/nixos/tests/containers-physical_interfaces.nix7
-rw-r--r--nixpkgs/nixos/tests/containers-portforward.nix8
-rw-r--r--nixpkgs/nixos/tests/containers-reloadable.nix7
-rw-r--r--nixpkgs/nixos/tests/containers-restart_networking.nix8
-rw-r--r--nixpkgs/nixos/tests/containers-tmpfs.nix8
-rw-r--r--nixpkgs/nixos/tests/croc.nix51
-rw-r--r--nixpkgs/nixos/tests/custom-ca.nix161
-rw-r--r--nixpkgs/nixos/tests/discourse.nix197
-rw-r--r--nixpkgs/nixos/tests/docker-tools.nix69
-rw-r--r--nixpkgs/nixos/tests/dokuwiki.nix4
-rw-r--r--nixpkgs/nixos/tests/elk.nix1
-rw-r--r--nixpkgs/nixos/tests/etebase-server.nix50
-rw-r--r--nixpkgs/nixos/tests/fsck.nix2
-rw-r--r--nixpkgs/nixos/tests/geth.nix41
-rw-r--r--nixpkgs/nixos/tests/gitlab.nix157
-rw-r--r--nixpkgs/nixos/tests/glusterfs.nix4
-rw-r--r--nixpkgs/nixos/tests/hardened.nix13
-rw-r--r--nixpkgs/nixos/tests/hledger-web.nix25
-rw-r--r--nixpkgs/nixos/tests/home-assistant.nix2
-rw-r--r--nixpkgs/nixos/tests/inspircd.nix93
-rw-r--r--nixpkgs/nixos/tests/installer.nix15
-rw-r--r--nixpkgs/nixos/tests/jq.nix10
-rw-r--r--nixpkgs/nixos/tests/kafka.nix6
-rw-r--r--nixpkgs/nixos/tests/keepassxc.nix34
-rw-r--r--nixpkgs/nixos/tests/kernel-generic.nix37
-rw-r--r--nixpkgs/nixos/tests/kernel-latest.nix17
-rw-r--r--nixpkgs/nixos/tests/kernel-lts.nix17
-rw-r--r--nixpkgs/nixos/tests/kernel-testing.nix17
-rw-r--r--nixpkgs/nixos/tests/ksm.nix22
-rw-r--r--nixpkgs/nixos/tests/kubernetes/dns.nix15
-rw-r--r--nixpkgs/nixos/tests/kubernetes/rbac.nix6
-rw-r--r--nixpkgs/nixos/tests/locate.nix2
-rw-r--r--nixpkgs/nixos/tests/matrix-appservice-irc.nix162
-rw-r--r--nixpkgs/nixos/tests/miniflux.nix14
-rw-r--r--nixpkgs/nixos/tests/misc.nix2
-rw-r--r--nixpkgs/nixos/tests/musescore.nix86
-rw-r--r--nixpkgs/nixos/tests/mysql/mariadb-galera-mariabackup.nix2
-rw-r--r--nixpkgs/nixos/tests/networking.nix26
-rw-r--r--nixpkgs/nixos/tests/nextcloud/basic.nix24
-rw-r--r--nixpkgs/nixos/tests/nfs/kerberos.nix2
-rw-r--r--nixpkgs/nixos/tests/nfs/simple.nix2
-rw-r--r--nixpkgs/nixos/tests/nixos-generate-config.nix9
-rw-r--r--nixpkgs/nixos/tests/ombi.nix18
-rw-r--r--nixpkgs/nixos/tests/openldap.nix19
-rw-r--r--nixpkgs/nixos/tests/orangefs.nix2
-rw-r--r--nixpkgs/nixos/tests/php/default.nix21
-rw-r--r--nixpkgs/nixos/tests/php/fpm.nix14
-rw-r--r--nixpkgs/nixos/tests/php/httpd.nix7
-rw-r--r--nixpkgs/nixos/tests/php/pcre.nix5
-rw-r--r--nixpkgs/nixos/tests/plikd.nix27
-rw-r--r--nixpkgs/nixos/tests/podman.nix9
-rw-r--r--nixpkgs/nixos/tests/pomerium.nix102
-rw-r--r--nixpkgs/nixos/tests/privacyidea.nix12
-rw-r--r--nixpkgs/nixos/tests/privoxy.nix113
-rw-r--r--nixpkgs/nixos/tests/prometheus-exporters.nix166
-rw-r--r--nixpkgs/nixos/tests/restic.nix6
-rw-r--r--nixpkgs/nixos/tests/ripgrep.nix13
-rw-r--r--nixpkgs/nixos/tests/samba.nix2
-rw-r--r--nixpkgs/nixos/tests/sbt-extras.nix16
-rw-r--r--nixpkgs/nixos/tests/sbt.nix18
-rw-r--r--nixpkgs/nixos/tests/snapcast.nix4
-rw-r--r--nixpkgs/nixos/tests/snapper.nix2
-rw-r--r--nixpkgs/nixos/tests/spike.nix2
-rw-r--r--nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix22
-rw-r--r--nixpkgs/nixos/tests/systemd-unit-path.nix47
-rw-r--r--nixpkgs/nixos/tests/systemd.nix2
-rw-r--r--nixpkgs/nixos/tests/traefik.nix4
-rw-r--r--nixpkgs/nixos/tests/turbovnc-headless-server.nix171
-rw-r--r--nixpkgs/nixos/tests/unbound.nix16
-rw-r--r--nixpkgs/nixos/tests/wiki-js.nix152
-rw-r--r--nixpkgs/nixos/tests/wireguard/basic.nix6
-rw-r--r--nixpkgs/nixos/tests/zfs.nix2
-rw-r--r--nixpkgs/pkgs/applications/accessibility/contrast/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/accessibility/squeekboard/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/accessibility/svkbd/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/audio/MMA/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/aacgain/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/amarok/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/apple-music-electron/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/ardour/5.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/ardour/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/audio/ashuffle/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/audacity/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/bambootracker/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/baudline/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/bchoppr/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bschaffl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bsequencer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bshapr/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bslizr/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/callaudiod/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/caudec/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/cheesecutter/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/clementine/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/clerk/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/csa/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/denemo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ebumeter/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/ecasound/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak-ng/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak-ng/mbrola.patch22
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/edit.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust1.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2.nix5
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2jack.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/freac/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/gtklick/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/helio-workstation/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ingen/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/jalv/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/jamin/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/jamulus/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/audio/jmusicbot/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/keyfinder/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/kmetronome/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/lash/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/linuxband/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/littlegptracker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/lollypop/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/mbrola/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/audio/mda-lv2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/mmtc/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/local.nix13
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/somafm.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/mp3gain/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/mpdevil/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/audio/mpg123/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/musescore/darwin.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/musescore/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/muso/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/audio/ncmpc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ncspot/bump-security-framework-crate.patch19
-rw-r--r--nixpkgs/pkgs/applications/audio/ncspot/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/audio/netease-music-tui/cargo-lock.patch942
-rw-r--r--nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/audio/netease-music-tui/update-cargo-lock.sh20
-rw-r--r--nixpkgs/pkgs/applications/audio/new-session-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/noisetorch/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/nootka/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/nootka/unstable.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/ocenaudio/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/audio/openmpt123/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/oxefmsynth/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/picard/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/audio/playbar2/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/plexamp/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/pragha/default.nix103
-rw-r--r--nixpkgs/pkgs/applications/audio/projectm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/pt2-clone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseeffects/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/audio/puredata/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/qmidinet/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qmmp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qsynth/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/reaper/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/renoise/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/audio/rosegarden/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/rubyripper/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/samplv1/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/seq66/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/sfizz/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/shortwave/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/snapcast/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/audio/sonic-pi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/spectmorph/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-qt/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/audio/spotifyd/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/audio/strawberry/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/audio/sublime-music/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/sunvox/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/surge/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/tetraproc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/tuijam/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/audio/vkeybd/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/backup/pika-backup/borg-path.patch13
-rw-r--r--nixpkgs/pkgs/applications/backup/pika-backup/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/backup/vorta/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix2
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix273
-rw-r--r--nixpkgs/pkgs/applications/blockchains/clightning.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/crypto-org-wallet.nix33
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/go-ethereum.nix23
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/lnd.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/lndmanage.nix44
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch13
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix21
-rw-r--r--nixpkgs/pkgs/applications/blockchains/openethereum/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/polkadot/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/zcash/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix15
-rw-r--r--nixpkgs/pkgs/applications/display-managers/sddm/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/common.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/editors/apostrophe/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/atom/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/editors/atom/env.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/bluefish/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/bluej/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/code-browser/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/editors/cudatext/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/editors/cudatext/deps.json32
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/plugins.nix16
-rw-r--r--nixpkgs/pkgs/applications/editors/edit/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix372
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix7
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix92
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix346
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix12
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json10033
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/26.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/27.nix5
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch15
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/clean-env.patch16
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/generic.nix16
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/macport.nix7
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch11
-rw-r--r--nixpkgs/pkgs/applications/editors/formiko/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/editors/fte/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/editors/ghostwriter/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/glow/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/gnome-builder/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/gophernotes/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/greenfoot/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/hecate/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/jed/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/jetbrains/common.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/jetbrains/default.nix74
-rwxr-xr-xnixpkgs/pkgs/applications/editors/jetbrains/update.pl2
-rw-r--r--nixpkgs/pkgs/applications/editors/jucipp/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/editors/jupp/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix46
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/build-kakoune-plugin.nix33
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/deprecated.json1
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/generated.nix211
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix24
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix24
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix39
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix31
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix29
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix24
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names17
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kakoune-utils.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix161
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix29
-rwxr-xr-xnixpkgs/pkgs/applications/editors/kakoune/plugins/update.py91
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/kdevelop5/kdev-python.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/kibi/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/kodestudio/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/editors/manuskript/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/monodevelop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/nano/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/neovim-qt.nix43
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/qt.nix107
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/netbeans/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/editors/poke/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/editors/qemacs/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/editors/qxmledit/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/retext/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/sigil/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/spacevim/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/spacevim/helptags.patch2
-rw-r--r--nixpkgs/pkgs/applications/editors/standardnotes/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/sublime/2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/supertux-editor/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/texstudio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/textadept/10/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/textadept/11/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/editors/textadept/11/deps.nix24
-rw-r--r--nixpkgs/pkgs/applications/editors/texworks/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/editors/tiled/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/typora/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/common.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/configurable.nix20
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/macvim-configurable.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/viw/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/generic.nix10
-rwxr-xr-xnixpkgs/pkgs/applications/editors/vscode/update-vscode.sh8
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/vscode.nix12
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/vscodium.nix10
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix3
-rw-r--r--nixpkgs/pkgs/applications/editors/xed-editor/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/editors/zile/default.nix90
-rw-r--r--nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/gis/saga/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/graphics/ImageMagick/6.x.nix (renamed from nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix)8
-rw-r--r--nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix5
-rw-r--r--nixpkgs/pkgs/applications/graphics/avocode/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/graphics/batik/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/blockbench-electron/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/graphics/dia/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawio/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/graphics/eddy/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/graphics/fondo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/freecad/default.nix140
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/glimpse/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/graphics/gthumb/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/hydrus/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/graphics/imagej/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/leocad/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/graphics/lightburn/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/megapixels/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/graphics/meshlab/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/graphics/monado/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix14
-rw-r--r--nixpkgs/pkgs/applications/graphics/openimageio/2539_backport.patch31
-rw-r--r--nixpkgs/pkgs/applications/graphics/openimageio/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/graphics/openscad/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/graphics/opentoonz/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/photoflare/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/renderdoc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/default.nix109
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix95
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/git.nix10
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/config.nix13
-rw-r--r--nixpkgs/pkgs/applications/graphics/shotwell/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/solvespace/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/tev/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/yed/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi-contacts.nix8
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch74
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch10
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch26
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/kde/ark/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/kde/calendarsupport.nix11
-rw-r--r--nixpkgs/pkgs/applications/kde/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/dolphin.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/fetch.sh2
-rw-r--r--nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/filelight.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/incidenceeditor.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kaddressbook.nix11
-rw-r--r--nixpkgs/pkgs/applications/kde/kalarm.nix18
-rw-r--r--nixpkgs/pkgs/applications/kde/kamoso.nix41
-rw-r--r--nixpkgs/pkgs/applications/kde/kcachegrind.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kdebugsettings.nix5
-rw-r--r--nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix5
-rw-r--r--nixpkgs/pkgs/applications/kde/kdenlive/default.nix (renamed from nixpkgs/pkgs/applications/kde/kdenlive.nix)0
-rw-r--r--nixpkgs/pkgs/applications/kde/kdenlive/ffmpeg-path.patch (renamed from nixpkgs/pkgs/applications/kde/ffmpeg-path.patch)0
-rw-r--r--nixpkgs/pkgs/applications/kde/kdenlive/mlt-path.patch (renamed from nixpkgs/pkgs/applications/kde/mlt-path.patch)0
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-addons.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/kmail.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kompare.nix10
-rw-r--r--nixpkgs/pkgs/applications/kde/konqueror.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/kontact.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/korganizer.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kpat.nix2
-rw-r--r--nixpkgs/pkgs/applications/kde/krdc.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/libksane.nix2
-rw-r--r--nixpkgs/pkgs/applications/kde/messagelib.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/minuet.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/srcs.nix1808
-rw-r--r--nixpkgs/pkgs/applications/misc/1password-gui/default.nix (renamed from nixpkgs/pkgs/tools/security/1password-gui/default.nix)4
-rwxr-xr-xnixpkgs/pkgs/applications/misc/1password-gui/update.sh (renamed from nixpkgs/pkgs/tools/security/1password-gui/update.sh)0
-rw-r--r--nixpkgs/pkgs/applications/misc/9menu/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/almanah/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/ape/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/archivy/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch24
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/sox/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/soxr/arm64-check.patch79
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/soxr/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/authy/default.nix110
-rw-r--r--nixpkgs/pkgs/applications/misc/avrdudess/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/bashSnippets/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/bemenu/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/birdtray/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/blender/darwin.patch23
-rw-r--r--nixpkgs/pkgs/applications/misc/blender/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/bottles/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/misc/caerbannog/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/misc/calibre/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/cataract/build.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/cherrytree/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/clight/clightd.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/clipit/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/clipmenu/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/cointop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/coolreader/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/cpu-x/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/crow-translate/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch30
-rw-r--r--nixpkgs/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch18
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/plugins.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/curabydagoma/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/curaengine/stable.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/dasel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/dbeaver/default.nix170
-rw-r--r--nixpkgs/pkgs/applications/misc/deadd-notification-center/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/diff-pdf/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/ding/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/dmensamenu/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/dockbarx/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/dotfiles/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/dunst/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/misc/extract_url/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/far2l/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/flavours/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/font-manager/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch14
-rw-r--r--nixpkgs/pkgs/applications/misc/free42/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/freeplane/default.nix118
-rw-r--r--nixpkgs/pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gammu/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/gcalcli/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/gcstar/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/gkrellm/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/go-org/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock42
-rw-r--r--nixpkgs/pkgs/applications/misc/gollum/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/gollum/gemset.nix77
-rw-r--r--nixpkgs/pkgs/applications/misc/gphoto2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gpsbabel/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gremlin-console/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/gsimplecal/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gxkb/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/hugo/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/misc/icesl/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/index-fm/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock24
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix52
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock38
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix88
-rw-r--r--nixpkgs/pkgs/applications/misc/josm/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/misc/jrnl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/kdbplus/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/keepass/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassx/community.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/keeweb/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/misc/khard/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/kiwix/default.nix123
-rw-r--r--nixpkgs/pkgs/applications/misc/kiwix/lib.nix55
-rw-r--r--nixpkgs/pkgs/applications/misc/klayout/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/koreader/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/lavalauncher/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/misc/librecad/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch36
-rw-r--r--nixpkgs/pkgs/applications/misc/logseq/default.nix52
-rwxr-xr-xnixpkgs/pkgs/applications/misc/logseq/update.sh5
-rw-r--r--nixpkgs/pkgs/applications/misc/lscolors/cargo.lock.patch159
-rw-r--r--nixpkgs/pkgs/applications/misc/lscolors/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/lutris/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/lyx/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/marktext/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/mediainfo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/megasync/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/merkaartor/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/misc/milu/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/mkgmap/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/mob/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/misc/mpvc/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/mupdf/default.nix90
-rw-r--r--nixpkgs/pkgs/applications/misc/nnn/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/obsidian/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/misc/omegat.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/onboard/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/openjump/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/openlp/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/misc/openlp/lib.nix103
-rw-r--r--nixpkgs/pkgs/applications/misc/openring/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/orpie/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/osmscout-server/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfpc/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfslicer/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/playonlinux/0001-fix-locale.patch17
-rw-r--r--nixpkgs/pkgs/applications/misc/playonlinux/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/portfolio-filemanager/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/misc/projectlibre/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/pueue/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/pure-maps/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/qcad/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/qlcplus/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/qpdfview/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch17
-rw-r--r--nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/ranger/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/reddsaver/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/regextester/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/robo3t/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/misc/robomongo/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/rofi/wrapper.nix15
-rw-r--r--nixpkgs/pkgs/applications/misc/sc-im/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/misc/sent/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/senv/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/sidequest/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/simplenote/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/spnavcfg/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/stork/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/subsurface/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/sunwait/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/surface-control/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/swappy/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/sweethome3d/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/syncthingtray/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/misc/tabula/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch48
-rw-r--r--nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/taskwarrior/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/tellico/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/ticker/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/tickrs/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/tipp10/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/todoist-electron/default.nix80
-rw-r--r--nixpkgs/pkgs/applications/misc/translate-shell/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/tty-share/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/udiskie/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/misc/unipicker/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/upwork/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/vifm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/viking/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/misc/visidata/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/vit/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/waybar/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/misc/wordnet/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/worker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/writefreely/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/wtf/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/xchm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/xfontsel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/xygrib/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/wrapper.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/zettlr/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/bee/bee-clef.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/bee/bee.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/brave/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/castor/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix12
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py35
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json58
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix780
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch (renamed from nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch)0
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch21
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix61
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/links2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vieb/package.json20
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock1243
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix1040
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/calls/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/charles/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/cloudflared/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix44
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch23
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh113
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/lens/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/octant/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix6
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/octant/update.sh38
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/spark/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch44
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch46
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix123
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json44
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile3
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock92
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix261
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/velero/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/compactor/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/dnscontrol/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/errbot/default.nix121
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/firehol/default.nix4
-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/giara/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/gui.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/server.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/snort/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/zeek/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/zeek/script.nix69
-rw-r--r--nixpkgs/pkgs/applications/networking/ike/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix6
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix87
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/insync/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/communi/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/convos/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/irssi/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch9
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch35
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch12
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/jnetmap/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/lieer/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/maestral-qt/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix207
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix121
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix530
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mpop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/msmtp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/mumble/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/ncgopher/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/onionshare/default.nix92
-rw-r--r--nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch37
-rw-r--r--nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch144
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/pcloud/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix111
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/package.json16
-rwxr-xr-xnixpkgs/pkgs/applications/networking/powerdns-admin/update-asset-deps.sh20
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix1453
-rw-r--r--nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/pyload/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/remmina/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/seaweedfs/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/casync/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rclone/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rsync/base.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rsync/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/unison/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/testssl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/tsung/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/umurmur/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/websocketd/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/wg-bond/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/zerobin/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/networking/znc/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/banking/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/office/bookworm/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/calligra/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/office/cb2bib/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/docear/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/fava/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/office/gnumeric/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/homebank/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/ib/controller/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/impressive/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/ledger/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix32
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix10
-rw-r--r--nixpkgs/pkgs/applications/office/onlyoffice-bin/default.nix168
-rw-r--r--nixpkgs/pkgs/applications/office/paperless/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/portfolio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/pympress/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/pyspread/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/office/qownnotes/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/office/semantik/default.nix90
-rw-r--r--nixpkgs/pkgs/applications/office/semantik/qt5.patch78
-rw-r--r--nixpkgs/pkgs/applications/office/skanlite/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/office/skrooge/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/softmaker/generic.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/timeular/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/office/treesheets/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch92
-rw-r--r--nixpkgs/pkgs/applications/office/trilium/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/office/wpsoffice/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/office/zotero/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/printing/pappl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/btlejack/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/radio/cqrlog/default.nix101
-rw-r--r--nixpkgs/pkgs/applications/radio/cqrlog/fix-makefile-lazarusdir.patch13
-rw-r--r--nixpkgs/pkgs/applications/radio/dablin/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/direwolf/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix55
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/3.8.nix269
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/ais.nix53
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/default.nix136
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/gsm.nix37
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/limesdr.nix38
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/osmosdr.nix45
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/rds.nix36
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/shared.nix10
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix125
-rw-r--r--nixpkgs/pkgs/applications/radio/gqrx/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/radio/inspectrum/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/radio/multimon-ng/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/radio/pothos/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/radio/pothos/spuce.patch101
-rw-r--r--nixpkgs/pkgs/applications/radio/qradiolink/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/radio/svxlink/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/ubertooth/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/radio/uhd/3.5.nix159
-rw-r--r--nixpkgs/pkgs/applications/radio/uhd/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/radio/unixcw/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/radio/xlog/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/phd2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/siril/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bcftools/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bedops/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bedtools/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/science/biology/delly/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/biology/freebayes/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kent/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/last/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/octopus/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/platypus/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/biology/prodigal/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/biology/sambamba/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/biology/snpeff/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/biology/spades/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/biology/stacks/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/star/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/svaba/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/varscan/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/diylc/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/gnucap/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/base.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/pcb/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/verilator/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/acgtk/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/logic/coq/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch40
-rw-r--r--nixpkgs/pkgs/applications/science/logic/elan/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/logic/hol/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/logic/isabelle/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/logic/lean/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/lean2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/leo2/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/logic/poly/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/logic/sad/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/logic/satallax/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/logic/workcraft/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/logic/z3/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/science/math/R/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/science/math/calc/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/science/math/cbc/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/science/math/dap/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/math/gap/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch13
-rw-r--r--nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix10
-rw-r--r--nixpkgs/pkgs/applications/science/math/gfan/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/gfm/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/math/giac/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/science/math/ginac/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/math/gmsh/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/gurobi/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/math/msieve/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/nasc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/palp/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/science/math/perseus/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/ratpoints/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch16
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch131
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/pillow-update.patch39
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch36
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch13
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage-src.nix121
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sagelib.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/tilp2/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/math/weka/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/medicine/aliza/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/medicine/xmedcon/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/5.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/misc/simgrid/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/misc/snakemake/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/networking/sumo/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/science/physics/professor/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/science/physics/sherpa/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/programming/plm/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/search/doodle/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/search/recoll/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/system/glances/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/evilvte/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/kgx/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/version-management/bcompare/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/bumpver/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/gerrit/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/bit/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-googledrive/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-crecord/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-lfs/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-repo/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitea/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitkraken/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/data.json14
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile12
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock87
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix178
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch124
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile122
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock559
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix849
-rwxr-xr-xnixpkgs/pkgs/applications/version-management/gitlab/update.py10
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix3344
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitstats/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/version-management/meld/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix3
-rw-r--r--nixpkgs/pkgs/applications/version-management/mercurial/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/pijul/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch4
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/Gemfile47
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock246
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/gemset.nix347
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/git.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/man.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix3
-rw-r--r--nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/version-management/subversion/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/video/alass/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/video/avidemux/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/catt/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/video/cinelerra/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/video/clipgrab/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/corrscope/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/video/droidcam/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/filebot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/freetube/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/video/handbrake/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix103
-rw-r--r--nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch12
-rw-r--r--nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch15
-rw-r--r--nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix25
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/addon-update-script/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/certifi/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/chardet/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/controllers/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/dateutil/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/idna/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/jellyfin/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/joystick/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/kodi-platform/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/kodi-six/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/myconnpy/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/netflix/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/osmc-skin/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/pdfreader/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/pvr-hts/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/requests/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/signals/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/six/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/steam-controller/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/steam-launcher/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/svtplay/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/urllib3/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/build-kodi-addon.nix25
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/build-kodi-binary-addon.nix35
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/default.nix300
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/packages.nix (renamed from nixpkgs/pkgs/applications/video/kodi/plugins.nix)237
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/unwrapped.nix243
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/wrapper.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch29
-rw-r--r--nixpkgs/pkgs/applications/video/lightworks/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/video/makemkv/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/minitube/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/thumbnail.nix36
-rw-r--r--nixpkgs/pkgs/applications/video/natron/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/pitivi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/qstopmotion/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/quvi/tool.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/shotcut/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/smplayer/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/video/sub-batch/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/video/tartube/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/vlc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/xplayer/default.nix103
-rw-r--r--nixpkgs/pkgs/applications/video/xplayer/plparser.nix42
-rw-r--r--nixpkgs/pkgs/applications/video/xscast/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/OVMF/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/aqemu/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/virtualization/catatonit/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch53
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cntr/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/virtualization/conmon/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/virtualization/containerd/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cri-o/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/crun/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/gc.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/gvisor/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/libnvidia-container/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/podman/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/virtualization/podman/remove-unconfigured-runtime-warn.patch23
-rw-r--r--nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix3
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qemu/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qtemu/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/runc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/seabios/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/virtualization/singularity/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/virtualization/spike/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/virtualization/umoci/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/linux-5-11.patch12
-rw-r--r--nixpkgs/pkgs/applications/virtualization/x11docker/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/generic.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix31
-rw-r--r--nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/window-managers/cwm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwl/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix26
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix26
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix9
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/wsr.nix33
-rw-r--r--nixpkgs/pkgs/applications/window-managers/icewm/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/window-managers/labwc/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/window-managers/leftwm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sawfish/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch38
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/wsr.nix33
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wayfire/applications.nix29
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wayfire/wcm.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix2
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix2
-rw-r--r--nixpkgs/pkgs/build-support/agda/default.nix7
-rw-r--r--nixpkgs/pkgs/build-support/appimage/default.nix1
-rw-r--r--nixpkgs/pkgs/build-support/bintools-wrapper/default.nix7
-rw-r--r--nixpkgs/pkgs/build-support/build-bazel-package/default.nix4
-rw-r--r--nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix58
-rw-r--r--nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix23
-rw-r--r--nixpkgs/pkgs/build-support/buildenv/default.nix10
-rw-r--r--nixpkgs/pkgs/build-support/cc-wrapper/cc-wrapper.sh23
-rw-r--r--nixpkgs/pkgs/build-support/cc-wrapper/default.nix12
-rw-r--r--nixpkgs/pkgs/build-support/coq/default.nix35
-rw-r--r--nixpkgs/pkgs/build-support/coq/meta-fetch/default.nix11
-rw-r--r--nixpkgs/pkgs/build-support/docker/default.nix74
-rw-r--r--nixpkgs/pkgs/build-support/docker/examples.nix112
-rw-r--r--nixpkgs/pkgs/build-support/docker/stream_layered_image.py106
-rw-r--r--nixpkgs/pkgs/build-support/emacs/elpa.nix4
-rw-r--r--nixpkgs/pkgs/build-support/emacs/emacs-funcs.sh (renamed from nixpkgs/pkgs/build-support/emacs/setup-hook.sh)10
-rw-r--r--nixpkgs/pkgs/build-support/emacs/generic.nix25
-rw-r--r--nixpkgs/pkgs/build-support/emacs/melpa.nix4
-rw-r--r--nixpkgs/pkgs/build-support/emacs/wrapper.nix8
-rw-r--r--nixpkgs/pkgs/build-support/expand-response-params/default.nix2
-rw-r--r--nixpkgs/pkgs/build-support/fetchbitbucket/default.nix1
-rwxr-xr-xnixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git16
-rw-r--r--nixpkgs/pkgs/build-support/fetchgithub/default.nix20
-rw-r--r--nixpkgs/pkgs/build-support/fetchnuget/default.nix2
-rw-r--r--nixpkgs/pkgs/build-support/fetchs3/default.nix2
-rw-r--r--nixpkgs/pkgs/build-support/fetchsourcehut/default.nix25
-rw-r--r--nixpkgs/pkgs/build-support/fetchurl/default.nix4
-rw-r--r--nixpkgs/pkgs/build-support/fetchzip/default.nix11
-rw-r--r--nixpkgs/pkgs/build-support/go/garble.nix34
-rw-r--r--nixpkgs/pkgs/build-support/ocaml/dune.nix4
-rw-r--r--nixpkgs/pkgs/build-support/release/ant-build.nix3
-rw-r--r--nixpkgs/pkgs/build-support/release/debian-build.nix4
-rw-r--r--nixpkgs/pkgs/build-support/release/nix-build.nix4
-rw-r--r--nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix14
-rw-r--r--nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix2
-rw-r--r--nixpkgs/pkgs/build-support/rust/default.nix187
-rw-r--r--nixpkgs/pkgs/build-support/rust/fetchCargoTarball.nix2
-rw-r--r--nixpkgs/pkgs/build-support/rust/hooks/cargo-build-hook.sh41
-rw-r--r--nixpkgs/pkgs/build-support/rust/hooks/cargo-check-hook.sh46
-rw-r--r--nixpkgs/pkgs/build-support/rust/hooks/cargo-install-hook.sh49
-rw-r--r--nixpkgs/pkgs/build-support/rust/hooks/cargo-setup-hook.sh86
-rw-r--r--nixpkgs/pkgs/build-support/rust/hooks/default.nix94
-rw-r--r--nixpkgs/pkgs/build-support/rust/hooks/maturin-build-hook.sh39
-rw-r--r--nixpkgs/pkgs/build-support/setup-hooks/patch-shebangs.sh40
-rw-r--r--nixpkgs/pkgs/build-support/setup-systemd-units.nix2
-rw-r--r--nixpkgs/pkgs/build-support/templaterpm/default.nix3
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders.nix78
-rw-r--r--nixpkgs/pkgs/build-support/vm/default.nix2
-rw-r--r--nixpkgs/pkgs/build-support/writers/test.nix22
-rw-r--r--nixpkgs/pkgs/common-updater/scripts.nix2
-rw-r--r--nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix2
-rw-r--r--nixpkgs/pkgs/data/documentation/man-pages/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/3270font/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/cascadia-code/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/curie/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/input-fonts/default.nix84
-rw-r--r--nixpkgs/pkgs/data/fonts/inter-ui/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/bin.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/default.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/variants.nix44
-rw-r--r--nixpkgs/pkgs/data/fonts/joypixels/default.nix12
-rw-r--r--nixpkgs/pkgs/data/fonts/julia-mono/default.nix18
-rw-r--r--nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/montserrat/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/default.nix1
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/recursive/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/scientifica/default.nix14
-rw-r--r--nixpkgs/pkgs/data/fonts/spleen/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-two/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/vollkorn/default.nix29
-rw-r--r--nixpkgs/pkgs/data/icons/iso-flags/default.nix2
-rw-r--r--nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix14
-rw-r--r--nixpkgs/pkgs/data/icons/luna-icons/default.nix10
-rw-r--r--nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix2
-rw-r--r--nixpkgs/pkgs/data/icons/oranchelo-icon-theme/default.nix37
-rw-r--r--nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix10
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/default.nix19
-rw-r--r--nixpkgs/pkgs/data/misc/conway_polynomials/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/elliptic_curves/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/iana-etc/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/libkkc-data/default.nix6
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/osinfo-db/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix17
-rw-r--r--nixpkgs/pkgs/data/misc/tzdata/default.nix2
-rw-r--r--nixpkgs/pkgs/data/themes/jade1/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/juno/default.nix45
-rw-r--r--nixpkgs/pkgs/data/themes/matcha/default.nix8
-rw-r--r--nixpkgs/pkgs/data/themes/orchis/default.nix42
-rw-r--r--nixpkgs/pkgs/data/themes/yaru/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/gnome-2/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix17
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix24
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-tour/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix)18
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/fix_gmenu.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/disable-unredirect/default.nix31
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix3
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch64
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch16
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix12
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/unite/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/hitori/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/base/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/gui/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/lxqt-policykit/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/virtual-desktop-bar.nix40
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/parachute.nix37
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/discover.nix64
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix9
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix5
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch57
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kwin/0001-follow-symlinks.patch10
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch10
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kwin/0003-plugins-qpa-allow-using-nixos-wrapper.patch26
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/libkscreen/libkscreen-backends-path.patch9
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-browser-integration.nix4
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch6
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-systemmonitor.nix32
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch76
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch12
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/qqc2-breeze-style.nix26
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/sddm-kcm.nix35
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/srcs.nix418
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix13
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/art/xfwm4-themes/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/exo/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/garcon/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/thunar-volman/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/thunar/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix28
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/setup-hook.sh2
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix48
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-session/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfdesktop/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/xfce/mkXfceDerivation.nix2
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin/default.nix3
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix31
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix56
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch12
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix2
-rw-r--r--nixpkgs/pkgs/development/arduino/arduino-core/default.nix8
-rw-r--r--nixpkgs/pkgs/development/arduino/platformio/core.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/4th/default.nix4
-rwxr-xr-xnixpkgs/pkgs/development/compilers/adoptopenjdk-bin/generate-sources.py3
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix48
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-darwin.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-linux.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-darwin.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-linux.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-darwin.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-linux.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix9
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix9
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-darwin.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-linux.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/sources.json550
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/aldor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/arachne-pnr/default.nix28
-rw-r--r--nixpkgs/pkgs/development/compilers/bluespec/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/bs-platform/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/carp/default.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/chicken/4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/chicken/4/egg2nix.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/chicken/4/eggDerivation.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/chicken/5/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/clean/default.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/cmdstan/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/crystal/default.nix287
-rw-r--r--nixpkgs/pkgs/development/compilers/crystal2nix/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix50
-rw-r--r--nixpkgs/pkgs/development/compilers/dmd/default.nix32
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/combine-packages.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/dtc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/ecl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/node-packages.nix1042
-rw-r--r--nixpkgs/pkgs/development/compilers/factor-lang/default.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/flasm/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/flutter.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/disable-auto-update.patch24
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/move-cache.patch59
-rw-r--r--nixpkgs/pkgs/development/compilers/fpc/lazarus.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/gambit/build.nix36
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/10/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/6/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/7/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/common/configure-flags.nix11
-rw-r--r--nixpkgs/pkgs/development/compilers/gerbil/build.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix268
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.10.2.nix267
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.10.3.nix264
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.2.2-binary.nix191
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix275
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix263
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.8.3.nix268
-rw-r--r--nixpkgs/pkgs/development/compilers/gleam/default.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/gnu-smalltalk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.14.nix21
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.15.nix18
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.16.nix267
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.4.nix93
-rw-r--r--nixpkgs/pkgs/development/compilers/go/2-dev.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/go/binary.nix41
-rw-r--r--nixpkgs/pkgs/development/compilers/go/bootstrap.nix15
-rw-r--r--nixpkgs/pkgs/development/compilers/go/go_no_vendor_checks-1.16.patch23
-rwxr-xr-xnixpkgs/pkgs/development/compilers/go/print-hashes.sh15
-rw-r--r--nixpkgs/pkgs/development/compilers/go/remove-tools-1.4.patch81
-rw-r--r--nixpkgs/pkgs/development/compilers/go/skip-external-network-tests-1.16.patch33
-rw-r--r--nixpkgs/pkgs/development/compilers/go/ssl-cert-file-1.16.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/gprolog/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/graalvm/community-edition.nix142
-rw-r--r--nixpkgs/pkgs/development/compilers/graalvm/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/gwt/2.4.0.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/haxe/default.nix55
-rw-r--r--nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/ispc/default.nix21
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/1.0.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/1.3.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/1.5.nix19
-rwxr-xr-xnixpkgs/pkgs/development/compilers/julia/update-1.5.py22
-rw-r--r--nixpkgs/pkgs/development/compilers/koka/default.nix54
-rw-r--r--nixpkgs/pkgs/development/compilers/kotlin/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ldc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libc++/default.nix13
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libc++abi.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libunwind.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/lld.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/lldb.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/llvm.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/openmp.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/bintools.nix29
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix110
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/clang/purity.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt-X86-support-extension.patch23
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt-armv7l.patch32
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt-codesign.patch33
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt.nix90
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/default.nix204
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libc++/default.nix49
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libc++abi.nix67
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi-wasm.patch16
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libunwind.nix21
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/lld.nix39
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/lldb-procfs.patch31
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/lldb.nix103
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/llvm-outputs.patch26
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/llvm.nix189
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/openmp.nix25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/sanitizers-nongnu.patch412
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/rocm/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/rocm/lld.nix2
-rwxr-xr-xnixpkgs/pkgs/development/compilers/llvm/update.sh44
-rw-r--r--nixpkgs/pkgs/development/compilers/mercury/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/microscheme/default.nix23
-rw-r--r--nixpkgs/pkgs/development/compilers/mint/default.nix13
-rw-r--r--nixpkgs/pkgs/development/compilers/mint/shards.nix26
-rw-r--r--nixpkgs/pkgs/development/compilers/miranda/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/mosml/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/mozart/binary.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/mruby/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/muon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/neko/default.nix25
-rw-r--r--nixpkgs/pkgs/development/compilers/nim/default.nix342
-rw-r--r--nixpkgs/pkgs/development/compilers/nim/nim.cfg.patch70
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/3.08.0.nix21
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/3.10.0.nix34
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/3.11.2.nix75
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/3.12.1-darwin-fix-configure.patch32
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/3.12.1.nix69
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/4.11.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/4.12.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/generic.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/opa/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/opa/ocaml-4.04.patch75
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/11.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/12.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/13.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/14.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/8.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/darwin/11.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/darwin/8.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/ophis/default.nix29
-rw-r--r--nixpkgs/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/owl-lisp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ponyc/default.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/ponyc/pony-corral.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/rasm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/reason/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/1_50.nix (renamed from nixpkgs/pkgs/development/compilers/rust/1_49.nix)32
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/binary.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/rls/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/sbcl/2.0.8.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/sbcl/2.0.9.nix114
-rw-r--r--nixpkgs/pkgs/development/compilers/sbcl/2.1.1.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/sbcl/2.1.2.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/sbcl/common.nix (renamed from nixpkgs/pkgs/development/compilers/sbcl/default.nix)26
-rw-r--r--nixpkgs/pkgs/development/compilers/scala/2.x.nix26
-rw-r--r--nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/serpent/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/sjasmplus/default.nix32
-rw-r--r--nixpkgs/pkgs/development/compilers/smlnj/bootstrap.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/solc/0.7.nix78
-rw-r--r--nixpkgs/pkgs/development/compilers/solc/default.nix139
-rw-r--r--nixpkgs/pkgs/development/compilers/swi-prolog/default.nix36
-rw-r--r--nixpkgs/pkgs/development/compilers/tinygo/default.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/urn/default.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/vala/default.nix19
-rw-r--r--nixpkgs/pkgs/development/compilers/vyper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/xa/dxa.nix40
-rw-r--r--nixpkgs/pkgs/development/compilers/xa/xa.nix51
-rw-r--r--nixpkgs/pkgs/development/compilers/yosys/default.nix9
-rw-r--r--nixpkgs/pkgs/development/compilers/zulu/8.nix83
-rw-r--r--nixpkgs/pkgs/development/compilers/zulu/default.nix83
-rw-r--r--nixpkgs/pkgs/development/compilers/zz/default.nix12
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix18
-rw-r--r--nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/fourcolor/default.nix24
-rw-r--r--nixpkgs/pkgs/development/coq-modules/hierarchy-builder/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/mathcomp-analysis/default.nix21
-rw-r--r--nixpkgs/pkgs/development/coq-modules/mathcomp/default.nix38
-rw-r--r--nixpkgs/pkgs/development/coq-modules/multinomials/default.nix9
-rw-r--r--nixpkgs/pkgs/development/coq-modules/odd-order/default.nix24
-rw-r--r--nixpkgs/pkgs/development/gnuradio-modules/ais/default.nix44
-rw-r--r--nixpkgs/pkgs/development/gnuradio-modules/gsm/default.nix48
-rw-r--r--nixpkgs/pkgs/development/gnuradio-modules/limesdr/default.nix61
-rw-r--r--nixpkgs/pkgs/development/gnuradio-modules/mkDerivation.nix25
-rw-r--r--nixpkgs/pkgs/development/gnuradio-modules/nacl/default.nix (renamed from nixpkgs/pkgs/applications/radio/gnuradio/nacl.nix)41
-rw-r--r--nixpkgs/pkgs/development/gnuradio-modules/osmosdr/default.nix86
-rw-r--r--nixpkgs/pkgs/development/gnuradio-modules/rds/default.nix59
-rw-r--r--nixpkgs/pkgs/development/go-modules/generic/default.nix10
-rw-r--r--nixpkgs/pkgs/development/go-packages/generic/default.nix6
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-opengl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-common.nix415
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix29
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix97
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix93
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix4
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix12
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix32
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghcjs.nix209
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml966
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix16
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix15175
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix4
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/patches/gitit-pandoc-2.12.patch65
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/alda/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/angelscript/2.22.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/angelscript/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/bats/default.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/ceptre/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/chibi/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/cling/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/clips/default.nix26
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/babashka.nix86
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/clooj.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojurescript/lumo/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/dart/default.nix12
-rw-r--r--nixpkgs/pkgs/development/interpreters/duktape/default.nix10
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/1.11.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R21.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R22.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R23.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix22
-rw-r--r--nixpkgs/pkgs/development/interpreters/evcxr/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/groovy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/guile/1.8.nix5
-rw-r--r--nixpkgs/pkgs/development/interpreters/guile/CVE-2016-8605.patch59
-rw-r--r--nixpkgs/pkgs/development/interpreters/io/default.nix28
-rw-r--r--nixpkgs/pkgs/development/interpreters/j/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/janet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/joker/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/jruby/default.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/jython/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/filesystem.nix26
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/sockets.nix25
-rw-r--r--nixpkgs/pkgs/development/interpreters/maude/default.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/metamath/default.nix10
-rw-r--r--nixpkgs/pkgs/development/interpreters/mujs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/build-env.nix80
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/build-octave-package.nix113
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/default.nix231
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/hooks/default.nix13
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh17
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh17
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/with-packages.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/wrap-octave.nix16
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/wrap.sh132
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/aarch64-darwin.patch46
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/default.nix17
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/wrapper.nix5
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/7.4.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/8.0.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/generic.nix13
-rw-r--r--nixpkgs/pkgs/development/interpreters/picolisp/default.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/pure/default.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/2.7/CVE-2021-3177.patch181
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix45
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/3.6/find_library.patch (renamed from nixpkgs/pkgs/development/interpreters/python/cpython/3.7/find_library.patch)0
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/3.7/no-ldconfig.patch30
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/3.7/no-win64-workaround.patch37
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/default.nix76
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/mimetypes.patch23
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/default.nix64
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh10
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/pypy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/pypy/prebuilt.nix11
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/tests.nix22
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/wrapper.nix13
-rw-r--r--nixpkgs/pkgs/development/interpreters/qnial/default.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/quickjs/default.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/racket/default.nix16
-rw-r--r--nixpkgs/pkgs/development/interpreters/racket/minimal.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/zef.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/rascal/default.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/rebol/default.nix43
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/default.nix35
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/do-not-regenerate-revision.h.patch23
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/do-not-update-gems-baseruby.patch14
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix5
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/rvm-patchsets.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/scheme48/default.nix27
-rw-r--r--nixpkgs/pkgs/development/interpreters/sollya/default.nix29
-rw-r--r--nixpkgs/pkgs/development/interpreters/spidermonkey/38.nix72
-rw-r--r--nixpkgs/pkgs/development/interpreters/spidermonkey/60.nix83
-rw-r--r--nixpkgs/pkgs/development/interpreters/spidermonkey/78.nix21
-rw-r--r--nixpkgs/pkgs/development/interpreters/supercollider/default.nix11
-rw-r--r--nixpkgs/pkgs/development/interpreters/tcl/8.6.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/tinyscheme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/trealla/default.nix48
-rw-r--r--nixpkgs/pkgs/development/interpreters/unicon-lang/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmer/default.nix23
-rw-r--r--nixpkgs/pkgs/development/interpreters/yabasic/default.nix43
-rw-r--r--nixpkgs/pkgs/development/java-modules/junit/default.nix9
-rw-r--r--nixpkgs/pkgs/development/java-modules/maven-hello/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/AntTweakBar/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/abseil-cpp/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/acl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/agda/standard-library/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/allegro/5.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/amdvlk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/amrnb/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/amrwb/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/apache-activemq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/aqbanking/gwenhywfar.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/arb/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/arrayfire/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/aubio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/libinstpatch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/lilv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/lv2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/raul/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/rtmidi/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/sratom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/suil/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/zita-resampler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-c-common/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-c-event-stream/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-c-io/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-sdk-cpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/babl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/backward-cpp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/bashup-events/generic.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/bctoolbox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/bearssl/default.nix61
-rw-r--r--nixpkgs/pkgs/development/libraries/belcard/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/belle-sip/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/belr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/boca/default.nix51
-rw-r--r--nixpkgs/pkgs/development/libraries/boolstuff/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/boost-process/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/generic.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/bootil/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/boringssl/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/botan/2.0.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/botan/generic.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/brigand/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/bzrtp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/caf/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch36
-rw-r--r--nixpkgs/pkgs/development/libraries/civetweb/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/clearsilver/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/clucene-core/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/cm256cc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/cminpack/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/comedilib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/concurrencykit/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/coordgenlibs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/cppcms/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/cpptest/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/cpputest/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/crcpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/croaring/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/crypto++/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/cutelyst/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/cyrus-sasl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/dav1d/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/dlib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/docopt_cpp/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/dxflib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/eclib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/egl-wayland/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/egl-wayland/eglmesaext.patch12
-rw-r--r--nixpkgs/pkgs/development/libraries/entt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ethash/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/4.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/flite/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/fmt/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/folks/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/folly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/freetts/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/freetype/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ftgl/default.nix59
-rw-r--r--nixpkgs/pkgs/development/libraries/g2o/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/gaia/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/galario/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/ganv/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/gcr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/2.4.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/gdal-1_11.nix66
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/python.patch17
-rw-r--r--nixpkgs/pkgs/development/libraries/gecode/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gegl/4.0.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/gensio/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/geos/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/gexiv2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/glfw/3.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/glib/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/glib/schema-override-variable.patch12
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/2.32-master.patch.gz (renamed from nixpkgs/pkgs/development/libraries/glibc/2.32-35.patch.gz)bin51693 -> 56968 bytes
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/common.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/glibmm/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/glpng/default.nix38
-rw-r--r--nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/gnu-config/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/gnutls-kdh/generic.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gnutls/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/goffice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/google-cloud-cpp/default.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/gpgme/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/grib-api/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/grpc/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/gsasl/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/gsm/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix55
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix49
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gtdialog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/2.x.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/3.x.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/4.x.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/hooks/clean-immodules-cache.sh15
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/hooks/gtk2-clean-immodules-cache.sh12
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/hooks/gtk3-clean-immodules-cache.sh11
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/hooks/gtk4-clean-immodules-cache.sh11
-rw-r--r--nixpkgs/pkgs/development/libraries/gtkd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gtkdatabox/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/gupnp-igd/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/gupnp/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/gupnp/fix-requires.patch26
-rw-r--r--nixpkgs/pkgs/development/libraries/harfbuzz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/hawknl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/herqq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/hpx/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/htmlcxx/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/hunspell/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/hwloc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/68.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/igraph/default.nix100
-rw-r--r--nixpkgs/pkgs/development/libraries/imlib2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/inchi/default.nix107
-rw-r--r--nixpkgs/pkgs/development/libraries/indilib/udev-dir.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/iniparser/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/iniparser/iniparser.pc.in12
-rw-r--r--nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/irrlicht/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/irrlicht/mac.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/iso-codes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/jama/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/jasper/default.nix48
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/java/geoipjava/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/java/lombok/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/java/rhino/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/json-glib/default.nix52
-rw-r--r--nixpkgs/pkgs/development/libraries/jsoncpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/jxrlib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/attica.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kapidox.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/karchive.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kcodecs.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kconfig.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch4
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kdnssd.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/cmake-install-paths.patch2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kguiaddons.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/ki18n.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kidletime.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0001-kinit-libpath.patch2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0002-start_kdeinit-path.patch2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0003-kdeinit-extra-libs.patch2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kirigami2.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kitemmodels.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kitemviews.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kplotting.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kwayland.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/solid.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/sonnet.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix666
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/threadweaver.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kdiagram/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kdsoap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kerberos/heimdal.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kerberos/krb5.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kissfft/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/kmsxx/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/kpmcore/default.nix44
-rw-r--r--nixpkgs/pkgs/development/libraries/lcms2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ldb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/leatherman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/leveldb/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/levmar/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/lib3ds/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/lib3mf/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/libaacs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libabigail/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libantlr3c/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/libaom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libav/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libavif/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libayatana-appindicator/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/libb64/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libbap/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/libblockdev/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libbtbb/default.nix22
-rw-r--r--nixpkgs/pkgs/development/libraries/libburn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libbytesize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcdr/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/libcec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcec/platform.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libcint/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libck/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libclc/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/libcli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcommuni/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libcredis/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libcsptr/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libcutl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libdatrie/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libdbusmenu-qt/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libdbusmenu-qt/qt-5.5.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libdeflate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libdmapsharing/default.nix95
-rw-r--r--nixpkgs/pkgs/development/libraries/libdmtx/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/libdrm/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libebml/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libedit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libelf-freebsd/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/libetpan/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/libevdev/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch44
-rw-r--r--nixpkgs/pkgs/development/libraries/libexecinfo/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/libf2c/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libfaketime/0001-Remove-unsupported-clang-flags.patch20
-rw-r--r--nixpkgs/pkgs/development/libraries/libfaketime/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libfaketime/nix-store-date.patch29
-rw-r--r--nixpkgs/pkgs/development/libraries/libfilezilla/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/libfprint-tod/default.nix40
-rw-r--r--nixpkgs/pkgs/development/libraries/libfprint/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/libftdi/1.x.nix76
-rw-r--r--nixpkgs/pkgs/development/libraries/libfyaml/default.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/libgcrypt/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/libgdata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libglvnd/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/libgpg-error/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/libgphoto2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgssglue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgxps/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libhandy/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libheif/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/libhsts/default.nix40
-rwxr-xr-xnixpkgs/pkgs/development/libraries/libhsts/update.sh13
-rw-r--r--nixpkgs/pkgs/development/libraries/libhttpseverywhere/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libical/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/libimagequant/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libinjection/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libipt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libisoburn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libisofs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libixp-hg/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/libjson/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libjwt/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/libktorrent/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/liblangtag/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/liblastfm/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/liblcf/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/liblinear/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/liblinphone/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/liblouis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmatroska/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmbim/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmediainfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmspack/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/libnatpmp/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libnbd/default.nix61
-rw-r--r--nixpkgs/pkgs/development/libraries/libndctl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libnest2d/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libnftnl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libnixxml/default.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/liboauth/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libofx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libosmpbf/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/libosmscout/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/libowlevelzs/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/libpcap/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libpg_query/default.nix31
-rw-r--r--nixpkgs/pkgs/development/libraries/libphonenumber/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libplacebo/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/libplctag/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/libplist/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libpostal/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/libproxy/default.nix41
-rw-r--r--nixpkgs/pkgs/development/libraries/libpst/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/libqalculate/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libqb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libqglviewer/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libqmi/default.nix51
-rw-r--r--nixpkgs/pkgs/development/libraries/libqrtr-glib/default.nix46
-rw-r--r--nixpkgs/pkgs/development/libraries/libquotient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/librealsense/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libredwg/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/librep/default.nix50
-rw-r--r--nixpkgs/pkgs/development/libraries/libressl/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/librime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/librsb/default.nix86
-rw-r--r--nixpkgs/pkgs/development/libraries/librseq/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libseat/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/libshout/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libsigcxx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libsigsegv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libsodium/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libspectrum/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libspnav/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/libspotify/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libthai/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libticalcs2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libtiff/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/libtorrent-rasterbar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/liburcu/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/liburing/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libusb1/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libuv/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libvirt/5.9.0.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libvirt/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/libwacom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libwebsockets/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/libwnck/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/libxc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxcrypt/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/libxkbcommon/fix-cross-compilation.patch20
-rw-r--r--nixpkgs/pkgs/development/libraries/libxkbcommon/libxkbcommon_7.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxmi/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libxmlb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxmp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libxslt/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libzen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libzip/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/lightning/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/lightstep-tracer-cpp/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/lime/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/lmdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/log4cplus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/loudmouth/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/lrdf/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/lyra/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/mapbox-gl-native/default.nix57
-rw-r--r--nixpkgs/pkgs/development/libraries/mapbox-gl-qml/default.nix41
-rw-r--r--nixpkgs/pkgs/development/libraries/mauikit/default.nix42
-rw-r--r--nixpkgs/pkgs/development/libraries/maxflow/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/mbedtls/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/md4c/default.nix59
-rw-r--r--nixpkgs/pkgs/development/libraries/mediastreamer/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/aarch64-darwin.patch33
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/metal/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/mimalloc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/minixml/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/minizip2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/msgpuck/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/muparser/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/muparserx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/mustache-hpp/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/mygui/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mysocketw/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/nco/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/neardal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/nemo-qml-plugin-dbus/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/nettle/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/nettle/generic.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/nlohmann_json/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/notcurses/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/nss/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/ntl/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/nuraft/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/nuspell/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/nvidia-video-sdk/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/oatpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/odpic/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/olm/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/oneDNN/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/opencl-clhpp/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/opencl-headers/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/opencsg/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/opencv/3.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/openexrid-unstable/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/openfx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/openldap/default.nix28
-rw-r--r--nixpkgs/pkgs/development/libraries/openmpi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/openpa/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/openscenegraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/openssl/default.nix28
-rw-r--r--nixpkgs/pkgs/development/libraries/opensubdiv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/openvdb/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/orcania/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ortp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/osip/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/osm-gps-map/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pango/default.nix84
-rw-r--r--nixpkgs/pkgs/development/libraries/pangomm/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/partio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/pcl/default.nix48
-rw-r--r--nixpkgs/pkgs/development/libraries/phonon/backends/gstreamer.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/phonon/backends/vlc.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/phonon/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/fastnlo/default.nix51
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/geant4/datasets.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/geant4/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/herwig/default.nix6
-rwxr-xr-xnixpkgs/pkgs/development/libraries/physics/lhapdf/maintainer.sh8
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/lhapdf/pdf_sets.nix404
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/rivet/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/thepeg/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/yoda/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch (renamed from nixpkgs/pkgs/development/libraries/pipewire/alsa-profiles-use-libdir.patch)0
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch (renamed from nixpkgs/pkgs/development/libraries/pipewire/pipewire-pulse-path.patch)15
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch27
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch (renamed from nixpkgs/pkgs/development/libraries/pipewire/installed-tests-path.patch)24
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch (renamed from nixpkgs/pkgs/development/libraries/pipewire/pipewire-config-dir.patch)0
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/default.nix252
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/test-paths.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/pmix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/polkit-qt-1/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/polkit-qt-1/qt-4.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/polkit-qt-1/qt-5.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/poppler/0.61.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/poppler/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/popt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/prime-server/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/protobuf/3.15.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/protobuf/generic-v3.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/protolock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pupnp/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/pxlib/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/pyotherside/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/python-qt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/qca-qt5/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qmlbox2d/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qmltermwidget/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qoauth/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qpdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qscintilla/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-3/builder.sh38
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-3/default.nix92
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-3/qt-pwd.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-3/qt3-gcc4.6.0.patch23
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-3/setup-hook.sh1
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-3/strip.patch18
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-3/xrandr.patch42
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebkit-icu68.patch170
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-icu68.patch170
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix59
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-icu68.patch170
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh12
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/hooks/qtbase-setup-hook.sh46
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh5
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/mkDerivation.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix45
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/qt-env.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qtinstaller/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qtkeychain/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qtpbfimageplugin/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/qtstyleplugins/fix-build-against-Qt-5.15.patch44
-rw-r--r--nixpkgs/pkgs/development/libraries/qtutilities/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/qtwebkit-plugins/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/quazip/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qwt/6.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/rabbitmq-c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rabbitmq-java-client/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/raylib/default.nix54
-rw-r--r--nixpkgs/pkgs/development/libraries/rdkafka/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/redkite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rep-gtk/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/resolv_wrapper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rinutils/default.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/rnnoise/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/rocclr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rocksdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-comgr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-device-libs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-opencl-runtime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-runtime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-thunk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/s2geometry/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/s2n-tls/default.nix (renamed from nixpkgs/pkgs/development/libraries/s2n/default.nix)10
-rw-r--r--nixpkgs/pkgs/development/libraries/safefile/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/cfitsio/darwin-rpath-universal.patch (renamed from nixpkgs/pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch)0
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/cfitsio/default.nix (renamed from nixpkgs/pkgs/development/libraries/cfitsio/default.nix)2
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix (renamed from nixpkgs/pkgs/development/libraries/indilib/default.nix)19
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix64
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/libnova/default.nix (renamed from nixpkgs/pkgs/development/libraries/libnova/default.nix)0
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/stellarsolver/default.nix (renamed from nixpkgs/pkgs/development/libraries/stellarsolver/default.nix)0
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/wcslib/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/science/biology/htslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/QuadProgpp/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/amd-blis/default.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/amd-libflame/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/clblas/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix49
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/cutensor/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/cutensor/generic.nix69
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/liblapack/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/magma/default.nix38
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix172
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/mkl/test/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/openlibm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix90
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/primesieve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/rankwidth/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/suitesparse/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch39
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/zn_poly/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/serd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/serf/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/serf/scons.patch33
-rw-r--r--nixpkgs/pkgs/development/libraries/shhmsg/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/shhopt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/silgraphite/default.nix22
-rw-r--r--nixpkgs/pkgs/development/libraries/silgraphite/graphite2.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/simdjson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/simgear/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/skalibs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/slib/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/smarty3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/smooth/default.nix43
-rw-r--r--nixpkgs/pkgs/development/libraries/soci/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/sofia-sip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/sonic/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/sope/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/soqt/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/spdlog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/speechd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/spglib/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/spice-protocol/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/sqlite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/sqlite/tools.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/symengine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tachyon/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/tachyon/make-archs.patch8
-rw-r--r--nixpkgs/pkgs/development/libraries/tachyon/no-absolute-paths.patch21
-rw-r--r--nixpkgs/pkgs/development/libraries/talloc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tclap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tecla/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/telepathy/glib/default.nix45
-rw-r--r--nixpkgs/pkgs/development/libraries/telepathy/qt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tepl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/termbox/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/thrift/0.10.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/thrift/default.nix41
-rw-r--r--nixpkgs/pkgs/development/libraries/tidyp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/tiledb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tinyobjloader/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/tllist/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/tnt/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/tpm2-tss/default.nix28
-rw-r--r--nixpkgs/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch39
-rw-r--r--nixpkgs/pkgs/development/libraries/tracker-miners/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tracker/default.nix22
-rw-r--r--nixpkgs/pkgs/development/libraries/trompeloeil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tweeny/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/udunits/default.nix41
-rw-r--r--nixpkgs/pkgs/development/libraries/unixODBC/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/unixODBCDrivers/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/uriparser/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/utf8cpp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/v8/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/v8/gcc_arm.patch31
-rw-r--r--nixpkgs/pkgs/development/libraries/valhalla/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/vapoursynth/0001-Call-weak-function-to-allow-adding-preloaded-plugins.patch74
-rw-r--r--nixpkgs/pkgs/development/libraries/vapoursynth/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/vapoursynth/editor.nix82
-rw-r--r--nixpkgs/pkgs/development/libraries/vapoursynth/plugin-interface.nix112
-rw-r--r--nixpkgs/pkgs/development/libraries/vcg/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/vo-aacenc/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/volk/default.nix51
-rw-r--r--nixpkgs/pkgs/development/libraries/vte/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/vtk/generic.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/wayland/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/wcslib/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/webkitgtk/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/wlroots/0.12.nix57
-rw-r--r--nixpkgs/pkgs/development/libraries/wlroots/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/wolfssl/default.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/wtk/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/wxwidgets/3.0/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/x264/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/xapian/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/xmlrpc-c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/zchunk/default.nix38
-rw-r--r--nixpkgs/pkgs/development/libraries/zeromq/4.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/zimlib/default.nix48
-rw-r--r--nixpkgs/pkgs/development/libraries/zlib-ng/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/zxing-cpp/default.nix44
-rw-r--r--nixpkgs/pkgs/development/libraries/zziplib/default.nix77
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/lisp-packages.nix98
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd-ext-code-blocks.nix25
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd.nix24
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/access.nix19
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/acclimation.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/anaphora.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/arnesi.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/array-utils.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/asdf-package-system.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/asdf-system-connections.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/babel.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/blackbird.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/bordeaux-threads.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/buildnode-xhtml.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/buildnode.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/calispel.nix36
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/caveman.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-grovel.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-toolchain.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix32
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chanl.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chipz.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chunga.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/circular-streams.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-aa.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-annot.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-anonfun.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ansi-text.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async-repl.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async-ssl.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-base64.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-cairo.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gdk-pixbuf.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gdk.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gio.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-glib.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gobject.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-pango.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-change-case.nix23
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cli.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors2.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-containers.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cookie.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-css.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-csv.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-custom-hash-table.nix26
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-dbi.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-difflib.nix27
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-dot.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-emb.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fad.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fuse-meta-fs.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fuse.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-hooks.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html-diff.nix26
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html-parse.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html5-parser.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-interpol.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-jpeg.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-json.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n-cldr.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-libuv.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-locale.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-markup.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-mysql.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-paths-ttf.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-paths.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-pdf.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres_plus_local-time.nix37
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre-template.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre-unicode.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-prevalence.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-project.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-protobufs.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-qprint.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-reexport.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-slice.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-smtp.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-speedy-queue.nix27
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-store.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-annot.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-anonfun.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-markup.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syslog.nix34
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-test-more.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-typesetting.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-unicode.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-unification.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-utilities.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-vectors.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-who.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-xmlspam.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix24
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-handler-hunchentoot.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-test.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-v1-compat.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clfswm.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closure-common.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closure-html.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-postgresql-socket.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-postgresql.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-sqlite3.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-uffi.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clss.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump-2-3-tree.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump-binary-tree.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clunit.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clunit2.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clx.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/collectors.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/colorize.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/command-line-arguments.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-lite.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors-simple-tree.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors-stp.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cxml-stp.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cxml.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-mysql.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-postgres.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-sqlite3.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbi-test.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbi.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbus.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dissect.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/djula.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/do-urlencode.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/documentation-utils.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/drakma.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/eager-future2.nix31
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/enchant.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/esrap-peg.nix12
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/esrap.nix23
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/external-program.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-csv.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-mop.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-extras.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-optima.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-readtable.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-utils.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fast-http.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fast-io.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiasco.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/file-attributes.nix34
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiveam.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/flexi-streams.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/form-fiddle.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fset.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/gettext.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/global-vars.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/html-encode.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/http-body.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_asdf.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hunchentoot.nix27
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/idna.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ieee-floats.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/inferior-shell.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/introspect-environment.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_asdf.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_base.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_common-lisp.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_conf.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_grovel.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ironclad.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iterate.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jonathan.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jpl-queues.nix32
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jpl-util.nix25
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/kmrcl.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-component.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-middleware-backtrace.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-util.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/let-plus.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lev.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-client.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-common.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-server.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-ssl.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lift.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lisp-namespace.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lisp-unit2.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/local-time.nix23
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/log4cl.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lparallel.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lquery.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/map-set.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/marshal.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/md5.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/metabang-bind.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/metatilities-base.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix28
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/misc-extensions.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mk-string-metrics.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/moptilities.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/more-conditions.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mt19937.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/myway.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/named-readtables.nix19
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/net-telent-date.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/net_dot_didierverna_dot_asdf-flv.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/nibbles.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/optima.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/osicat.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parenscript.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parse-declarations-1_dot_0.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parse-number.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parser-combinators.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parser_dot_common-rules.nix11
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pcall-queue.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pcall.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/plump.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix30
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/proc-parse.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/prove-asdf.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/prove.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ptester.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/puri.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pythonic-string-reader.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/query-fs.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/quri.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rfc2388.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rove.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rt.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sysdeps.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-xml.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/salza2.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix25
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date-time.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-tasks.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/smart-buffer.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/split-sequence.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/sqlite.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-vectors.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stefil.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/str.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/string-case.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/swank.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/swap-bytes.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/symbol-munger.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_balland2006.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level0.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level1.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level2.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_quasiquote.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_trivial.nix19
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-backtrace.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-clipboard.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-cltl2.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-file-size.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-garbage.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-gray-streams.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-indent.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-macroexpand-all.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-main-thread.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-mimes.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-package-local-nicknames.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-types.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-utf-8.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-with-current-source-form.nix28
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/type-i.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uax-15.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uffi.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uiop.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unit-test.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unix-options.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unix-opts.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/usocket-server.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/usocket.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-items.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-tree.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uuid.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/vom.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/woo.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/wookie.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xembed.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xkeyboard.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xml_dot_location.nix5
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xmls.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xpath.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xsubseq.nix3
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/yacc.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/yason.nix1
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/zpb-ttf.nix15
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix49
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt8
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix.nix198
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb11
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/system-info.lisp3
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/top-package.emb4
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/shell.nix2
-rw-r--r--nixpkgs/pkgs/development/misc/avr8-burn-omat/default.nix2
-rw-r--r--nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix21
-rw-r--r--nixpkgs/pkgs/development/misc/qmk_firmware/default.nix39
-rw-r--r--nixpkgs/pkgs/development/misc/resholve/deps.nix6
-rw-r--r--nixpkgs/pkgs/development/misc/resholve/resholve.nix7
-rw-r--r--nixpkgs/pkgs/development/misc/umr/default.nix37
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/compose-android-packages.nix3
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/emulator.nix20
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix6
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/tools/26.nix4
-rw-r--r--nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock22
-rw-r--r--nixpkgs/pkgs/development/mobile/cocoapods/Gemfile.lock22
-rw-r--r--nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix40
-rw-r--r--nixpkgs/pkgs/development/mobile/cocoapods/gemset.nix40
-rw-r--r--nixpkgs/pkgs/development/mobile/genymotion/default.nix3
-rw-r--r--nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix2
-rw-r--r--nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix2
-rw-r--r--nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix2
-rw-r--r--nixpkgs/pkgs/development/node-packages/default.nix6
-rwxr-xr-xnixpkgs/pkgs/development/node-packages/generate.sh9
-rw-r--r--nixpkgs/pkgs/development/node-packages/node-packages.json13
-rw-r--r--nixpkgs/pkgs/development/node-packages/node-packages.nix22930
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/asn1-combinators/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/atd/default.nix20
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/atdgen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/bap/default.nix24
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/base64/default.nix15
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/batteries/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/bigarray-compat/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/bigstring/default.nix9
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/biniou/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/bitstring/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/bitstring/ppx.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ca-certs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/camomile/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/carton/default.nix67
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/carton/git.nix28
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/carton/lwt.nix46
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cpu/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cpuid/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/crowbar/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ctypes/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/decompress/default.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/digestif/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/directories/default.nix33
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/dtoa/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/duff/default.nix21
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix15
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix3
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/encore/default.nix11
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/extlib/default.nix25
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/faraday/async.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/faraday/lwt-unix.nix12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/faraday/lwt.nix12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git-http/default.nix15
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git-unix/default.nix20
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git/cohttp-mirage.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git/cohttp-unix.nix17
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git/cohttp.nix19
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git/default.nix23
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git/unix.nix38
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/gnuplot/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/graphics/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/gsl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/hidapi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/hxd/default.nix23
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/imagelib/default.nix24
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/imagelib/unix.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/index/default.nix22
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/integers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/chunk.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/containers.nix27
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/default.nix24
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix26
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/layers.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/mem.nix21
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-git.nix27
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-graphql.nix21
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/mirage.nix15
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/pack.nix9
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix20
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/test.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix7
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/0.14.nix45
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix7
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/labltk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/linenoise/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lru/default.nix7
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/luv/default.nix35
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mariadb/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mimic/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/minisat/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-clock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-clock/freestanding.nix23
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-clock/unix.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/default.nix21
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/ec.nix55
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mmap/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/npy/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-cairo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/configurable-binding.patch49
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/default.nix87
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/no-opam.patch84
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/camomile.nix16
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/stub.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/default.nix79
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix31
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix44
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.1.x.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-result/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-version/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix5
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/opti/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/optint/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ounit2/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/owl-base/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/parany/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/parmap/default.nix10
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/pbkdf/default.nix30
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/pgocaml/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/pgocaml/ppx.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_bap/default.nix51
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_cstubs/default.nix44
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_derivers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_deriving/default.nix29
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_import/default.nix17
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppxlib/default.nix11
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/psmt2-frontend/default.nix28
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/psq/default.nix7
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/qcheck/core.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/re/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/rope/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/sha/default.nix28
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/sodium/default.nix5
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/sodium/lib-gen-link-bigarray.patch7
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/sosa/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/spacetime_lib/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/spelll/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix5
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/stdint/default.nix41
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/stdlib-shims/default.nix5
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/tcpip/default.nix15
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/tcpip/makefile-no-opam.patch12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/torch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/uucp/default.nix26
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/visitors/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/wodan/irmin.nix10
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/wtf8/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/yojson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/zarith/default.nix33
-rw-r--r--nixpkgs/pkgs/development/octave-modules/arduino/default.nix33
-rw-r--r--nixpkgs/pkgs/development/octave-modules/audio/default.nix36
-rw-r--r--nixpkgs/pkgs/development/octave-modules/bim/default.nix28
-rw-r--r--nixpkgs/pkgs/development/octave-modules/bsltl/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/cgi/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/communications/default.nix31
-rw-r--r--nixpkgs/pkgs/development/octave-modules/control/default.nix31
-rw-r--r--nixpkgs/pkgs/development/octave-modules/data-smoothing/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/database/default.nix31
-rw-r--r--nixpkgs/pkgs/development/octave-modules/dataframe/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/dicom/default.nix33
-rw-r--r--nixpkgs/pkgs/development/octave-modules/divand/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/doctest/default.nix28
-rw-r--r--nixpkgs/pkgs/development/octave-modules/econometrics/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/fem-fenics/default.nix35
-rw-r--r--nixpkgs/pkgs/development/octave-modules/financial/default.nix23
-rw-r--r--nixpkgs/pkgs/development/octave-modules/fits/default.nix41
-rw-r--r--nixpkgs/pkgs/development/octave-modules/fpl/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/ga/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/general/default.nix31
-rw-r--r--nixpkgs/pkgs/development/octave-modules/generate_html/default.nix27
-rw-r--r--nixpkgs/pkgs/development/octave-modules/geometry/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/gsl/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/image-acquisition/default.nix32
-rw-r--r--nixpkgs/pkgs/development/octave-modules/image/default.nix27
-rw-r--r--nixpkgs/pkgs/development/octave-modules/instrument-control/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/interval/default.nix39
-rw-r--r--nixpkgs/pkgs/development/octave-modules/io/default.nix32
-rw-r--r--nixpkgs/pkgs/development/octave-modules/level-set/default.nix54
-rw-r--r--nixpkgs/pkgs/development/octave-modules/linear-algebra/default.nix22
-rw-r--r--nixpkgs/pkgs/development/octave-modules/lssa/default.nix27
-rw-r--r--nixpkgs/pkgs/development/octave-modules/ltfat/default.nix54
-rw-r--r--nixpkgs/pkgs/development/octave-modules/ltfat/syntax-error.patch15
-rw-r--r--nixpkgs/pkgs/development/octave-modules/mapping/default.nix28
-rw-r--r--nixpkgs/pkgs/development/octave-modules/matgeom/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/miscellaneous/default.nix34
-rw-r--r--nixpkgs/pkgs/development/octave-modules/msh/default.nix56
-rw-r--r--nixpkgs/pkgs/development/octave-modules/mvn/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/nan/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/ncarray/default.nix31
-rw-r--r--nixpkgs/pkgs/development/octave-modules/netcdf/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/nurbs/default.nix30
-rw-r--r--nixpkgs/pkgs/development/octave-modules/ocl/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/octclip/default.nix29
-rw-r--r--nixpkgs/pkgs/development/octave-modules/octproj/default.nix32
-rw-r--r--nixpkgs/pkgs/development/octave-modules/optics/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/optim/default.nix36
-rw-r--r--nixpkgs/pkgs/development/octave-modules/optiminterp/default.nix31
-rw-r--r--nixpkgs/pkgs/development/octave-modules/parallel/default.nix36
-rw-r--r--nixpkgs/pkgs/development/octave-modules/quaternion/default.nix29
-rw-r--r--nixpkgs/pkgs/development/octave-modules/queueing/default.nix32
-rw-r--r--nixpkgs/pkgs/development/octave-modules/signal/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/sockets/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/sparsersb/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/splines/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/statistics/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/stk/default.nix32
-rw-r--r--nixpkgs/pkgs/development/octave-modules/strings/default.nix37
-rw-r--r--nixpkgs/pkgs/development/octave-modules/struct/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/symbolic/default.nix46
-rw-r--r--nixpkgs/pkgs/development/octave-modules/tisean/default.nix33
-rw-r--r--nixpkgs/pkgs/development/octave-modules/tsa/default.nix26
-rw-r--r--nixpkgs/pkgs/development/octave-modules/vibes/default.nix39
-rw-r--r--nixpkgs/pkgs/development/octave-modules/video/default.nix31
-rw-r--r--nixpkgs/pkgs/development/octave-modules/vrml/default.nix41
-rw-r--r--nixpkgs/pkgs/development/octave-modules/windows/default.nix21
-rw-r--r--nixpkgs/pkgs/development/octave-modules/zeromq/default.nix26
-rw-r--r--nixpkgs/pkgs/development/perl-modules/ham/default.nix2
-rw-r--r--nixpkgs/pkgs/development/pharo/launcher/default.nix3
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/build-vm.nix3
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/share.nix2
-rw-r--r--nixpkgs/pkgs/development/php-packages/apcu/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/box/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/composer/1.x.nix (renamed from nixpkgs/pkgs/development/php-packages/composer/2.0.nix)12
-rw-r--r--nixpkgs/pkgs/development/php-packages/composer/default.nix12
-rw-r--r--nixpkgs/pkgs/development/php-packages/couchbase/default.nix10
-rw-r--r--nixpkgs/pkgs/development/php-packages/event/default.nix10
-rw-r--r--nixpkgs/pkgs/development/php-packages/imagick/default.nix6
-rw-r--r--nixpkgs/pkgs/development/php-packages/maxminddb/default.nix12
-rw-r--r--nixpkgs/pkgs/development/php-packages/memcached/default.nix10
-rw-r--r--nixpkgs/pkgs/development/php-packages/mongodb/default.nix9
-rw-r--r--nixpkgs/pkgs/development/php-packages/oci8/default.nix8
-rw-r--r--nixpkgs/pkgs/development/php-packages/pcov/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/pdlib/default.nix8
-rw-r--r--nixpkgs/pkgs/development/php-packages/pdo_sqlsrv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/php-cs-fixer/default.nix10
-rw-r--r--nixpkgs/pkgs/development/php-packages/php-parallel-lint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/php-packages/php_excel/default.nix8
-rw-r--r--nixpkgs/pkgs/development/php-packages/phpcbf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/php-packages/phpcs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/php-packages/phpmd/default.nix8
-rw-r--r--nixpkgs/pkgs/development/php-packages/phpstan/default.nix12
-rw-r--r--nixpkgs/pkgs/development/php-packages/psalm/default.nix10
-rw-r--r--nixpkgs/pkgs/development/php-packages/psysh/default.nix6
-rw-r--r--nixpkgs/pkgs/development/php-packages/rdkafka/default.nix6
-rw-r--r--nixpkgs/pkgs/development/php-packages/smbclient/default.nix12
-rw-r--r--nixpkgs/pkgs/development/php-packages/sqlsrv/default.nix8
-rw-r--r--nixpkgs/pkgs/development/php-packages/swoole/default.nix21
-rw-r--r--nixpkgs/pkgs/development/php-packages/xdebug/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/yaml/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/APScheduler/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/Cython/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/HAP-python/default.nix61
-rw-r--r--nixpkgs/pkgs/development/python-modules/Mako/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Nikola/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/Pygments/2_5.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/Pygments/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Rtree/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/WSME/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Wand/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/accupy/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/accuweather/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/acme/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/adal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/adb-enhanced/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/adb-shell/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/adblock/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/addic7ed-cli/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/adext/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/adguardhome/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/afdko/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/agate-sql/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/ailment/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioambient/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioasuswrt/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiocache/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioflo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioguardian/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohttp/default.nix75
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiolyric/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiomultiprocess/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/aionotion/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiopylgtv/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiorecollect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioresponses/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiorpcx/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiorun/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioshelly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiosmb/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiosmtpd/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiosqlite/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiostream/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/airly/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/alerta/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/alot/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/altair/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/android-backup/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/androidtv/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/aniso8601/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible-lint/default.nix67
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/anyio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apache-airflow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apispec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/appnope/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apprise/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/apptools/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/aqualogic/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/argon2_cffi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/arrayqueues/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asdf/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/ase/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asteval/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/astroid/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/asttokens/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/async-dns/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncio-nats-client/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncio_mqtt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncpg/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncwhois/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/asysocks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/atpublic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/auroranoaa/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/autopep8/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/avro-python3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/avro/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awkward/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/awkward0/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/axis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-applicationinsights/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-multiapi-storage/default.nix15
-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/azure-synapse-accesscontrol/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-synapse-spark/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_lzma/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_ssl_match_hostname/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/bayespy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/beaker/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/beancount/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/bellows/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/beniget/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/binwalk/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/bip_utils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitarray/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitbox02/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitlist/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/bleach/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bleak/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/blinker/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/bokeh/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/boltons/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/boto3/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/botocore/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/bracex/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/braintree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/breathe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/broadlink/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/brother/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/build/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/worker.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildout-nix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildout/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bx-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cachetools/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/cadquery/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/cairocffi/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/cairocffi/generic.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cairosvg/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/caldav/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/canopen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/capstone/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/cartopy/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/casbin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cbor2/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/celery/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/censys/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/certbot/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/certvalidator/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/cffi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/chalice/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/check-manifest/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/cheroot/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cherrypy/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/chirpstack-api/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/cirq/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/ciscomobilityexpress/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cliff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/clifford/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/clldutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cmarkgfm/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/cmigemo/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/cnvkit/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/codecov/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/codespell/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/coinmarketcap/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorcet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorlog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/configargparse/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/configshell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/construct/2.10.54.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/convertdate/2.2.x.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/convertdate/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/cornice/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cot/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/coverage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cozy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/crate/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/croniter/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/3.3.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/vectors-3.3.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cssutils/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/csvw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cufflinks/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cupy/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/curio/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/cvxopt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cvxpy/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cypari2/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/cysignals/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-gateway-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-image/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-ml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/datadog/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/datasets/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/datashader/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/dateparser/0.x.nix55
-rw-r--r--nixpkgs/pkgs/development/python-modules/dateparser/default.nix68
-rw-r--r--nixpkgs/pkgs/development/python-modules/dateutil/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ddt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deepmerge/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/deeptoolsintervals/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/defcon/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/defusedxml/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/deprecated/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/descartes/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/desktop-notifier/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/devolo-home-control-api/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/dftfit/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/dicom2nifti/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/diff_cover/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/digi-xbee/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/discordpy/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/diskcache/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/distributed/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-cacheops/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-q/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-simple-captcha/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/3.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_contrib_comments/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_evolution/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dlib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/docker/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/docloud/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/docplex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/docrep/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/docx2python/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/dopy/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/dpkt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/drivelib/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/duckdb/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/dulwich/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dwdwfsapi/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/easygui/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/easywatch/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/editdistance/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elementpath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elmax/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/enrich/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/entrance/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/envisage/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/etebase/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/eve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eventlet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/evohome-async/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/exdown/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/execnet/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/executing/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/expiringdict/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/exrex/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/faadelays/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/fakeredis/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastparquet/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/fe25519/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/fido2/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/fints/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/fiona/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/fipy/default.nix65
-rw-r--r--nixpkgs/pkgs/development/python-modules/fixtures/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/flammkuchen/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-compress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-seasurf/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-sslify/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/flower/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontparts/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/fonttools/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/forbiddenfruit/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/fountains/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/freebox-api/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/freezegun/0.3.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/freezegun/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/fs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ftfy/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/ftputil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/furl/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/fuzzyfinder/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/gdown/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/gdrivefs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ge25519/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/geoip2/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/getmac/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/gipc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/github3_py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/glances-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/glasgow/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/glymur/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gmusicapi/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/goobook/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-api-core/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-auth/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-automl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-bigtable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-firestore/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-monitoring/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-os-config/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-redis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/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-speech/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-tasks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-music-utils/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-music/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix (renamed from nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix)5
-rw-r--r--nixpkgs/pkgs/development/python-modules/googlemaps/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpsoauth/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/gradient-utils/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/gradient/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/gradient_statsd/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphene/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphite-web/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphql-relay/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphtage/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/graspologic/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/gremlinpython/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpc_google_iam_v1/default.nix4
-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/gsd/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/gspread/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gssapi/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/guppy3/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/gviz-api/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/h3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/hatasmota/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hcloud/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hdbscan/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/hdmedians/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hetzner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hickle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/holidays/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/holoviews/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/homepluscontrol/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/howdoi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hstspreload/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpbin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpcore/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/httplib2/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpretty/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpsig/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/huggingface-hub/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/humanize/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/hupper/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/hvac/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hvplot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hwi/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/hypothesis/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/iaqualink/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/icmplib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/identify/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/ijson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/image-match/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/imap-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/iminuit/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/immutables/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/incomfort-client/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/inflect/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/influxdb/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/intake/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/intelhex/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/internetarchive/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipykernel/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ircrobots/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/iso8601/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jabberbot/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/jc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jinja2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/joblib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/josepy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jq/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/json-rpc/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/json5/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpath-ng/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-packaging/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter_console/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter_core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix75
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterhub/default.nix99
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/kaggle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keep/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kerberos/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kivy-garden/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/kivy/default.nix68
-rw-r--r--nixpkgs/pkgs/development/python-modules/knack/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/kombu/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/labelbox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/labgrid/0001-serialdriver-remove-pyserial-version-check.patch33
-rw-r--r--nixpkgs/pkgs/development/python-modules/labgrid/default.nix80
-rw-r--r--nixpkgs/pkgs/development/python-modules/labmath/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/lammps-cython/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/lark-parser/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/launchpadlib/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/lazr-restfulclient/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldap/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldaptor/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lektor/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/libagent/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/libcst/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/libnacl/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/librouteros/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/libusb1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libversion/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lightgbm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lightparam/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/lima/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/limnoria/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/linode-api/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/livestreamer/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/llfuse/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/llvmlite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/localimport/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/locket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/loguru/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/lsassy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/luftdaten/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/lupa/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/lxml/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/maestral/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/makefun/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/managesieve/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/marisa-trie/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/mat2/default.nix98
-rw-r--r--nixpkgs/pkgs/development/python-modules/mat2/executable-name.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/mat2/paths.patch111
-rw-r--r--nixpkgs/pkgs/development/python-modules/mat2/tests.patch18
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mautrix/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/mcstatus/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/mergedeep/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/meshio/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/metar/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/micawber/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/milc/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/minidump/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/minio/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix79
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlxtend/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/mmh3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mocket/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/modeled/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/moderngl_window/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/moinmoin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/more-itertools/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/moto/default.nix219
-rw-r--r--nixpkgs/pkgs/development/python-modules/mpi4py/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/mplfinance/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/mpv/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/msal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msldap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msrest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mullvad-api/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/murmurhash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mxnet/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/myjwt/default.nix58
-rw-r--r--nixpkgs/pkgs/development/python-modules/myjwt/pinning.patch21
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/nats-python/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/natsort/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbclassic/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbconvert/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbconvert/templates.patch12
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbdime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbformat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbsmoke/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbsphinx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ndjson/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/netcdf4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/netdata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nodepy-runtime/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose-timer/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/notebook/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/notify/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/ntlm-auth/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/numba/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/numcodecs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpy-stl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpy/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/numtraits/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/nunavut/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nvchecker/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/objgraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/onnx/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/openhomedevice/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/openpyxl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openrazer/common.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openrouteservice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/opensensemap-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/openwrt-ubus-rpc/default.nix34
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/osmnx/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/osmpythontools/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/ovito/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/packageurl-python/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/packaging/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandas-datareader/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandas/default.nix67
-rw-r--r--nixpkgs/pkgs/development/python-modules/papermill/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/papis/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/param/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/parameterized/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/parso/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/parts/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pecan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/percol/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/pex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pg8000/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pglast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonemizer/backend-paths.patch21
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonemizer/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/piep/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pikepdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow-simd/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow/6.nix75
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow/default.nix73
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow/generic.nix76
-rw-r--r--nixpkgs/pkgs/development/python-modules/pims/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pipx/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pivy/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkutils/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pleroma-bot/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/plexapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plotly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plyfile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/poetry-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pook/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/portend/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/powerline/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pplpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prance/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/praw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prawcore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pre-commit/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch14
-rw-r--r--nixpkgs/pkgs/development/python-modules/preshed/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/privacyidea/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/privacyidea/fix-tests.patch28
-rw-r--r--nixpkgs/pkgs/development/python-modules/promise/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/prompt_toolkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/proto-plus/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/protobuf/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/protobuf3-to-dict/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/proxmoxer/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/psautohint/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/psd-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/psutil/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/ptpython/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pubnub/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pure-cdb/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-cid/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-multiaddr/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-sonic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyalmond/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyarrow/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyatv/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybids/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybigwig/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycdio/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycec/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pychannels/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycryptodomex/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydaikin/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydantic/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydash/0001-Only-build-unit-tests.patch30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydash/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydeconz/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydrive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyeight/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyelftools/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfftw/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyflume/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyflunearyou/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfma/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygraphviz/graphviz-path.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygraphviz/path.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygtrie/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyicu/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykmtronic/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykodi/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylast/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint/default.nix71
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyls-mypy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyls-spyder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylutron/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymatgen-lammps/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymatgen/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymazda/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymediaroom/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymeeus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymemcache/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymfy/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymitv/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymodbus/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymongo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymsteams/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymumble/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymyq/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymysensors/default.nix55
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynanoleaf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynetdicom/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynmea2/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynput/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynws/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyobjc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopenuv/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyosmium/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyowm/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyparted/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypcap/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyplaato/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypoppler/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypugjs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypykatz/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyquery/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyradios/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_beaker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_chameleon/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_exclog/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_hawkauth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_jinja2/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_multiauth/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyregion/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrisco/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrituals/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyro-ppl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroma/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysam/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscss/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyserial/001-rfc2217-only-negotiate-on-value-change.patch42
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyserial/002-rfc2217-timeout-setter-for-rfc2217.patch42
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyserial/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyshark/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyshp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside2/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysma/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysmappee/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysmbc/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysonos/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspark/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pystray/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysvn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyswitchbot/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytankerkoenig/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyte/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytenable/default.nix66
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytesseract/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-aiohttp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-ansible/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-arraydiff/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-astropy-header/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-benchmark/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-black/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-catchlog/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-check/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-cid/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-click/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-error-for-skips/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-factoryboy/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-flake8/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-freezegun/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-html/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-order/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-pythonpath/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-qt/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-raises/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-random-order/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-remotedata/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-services/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-shutil/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-socket/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-subtests/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-timeout/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-tornado/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-tornasync/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-trio/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-twisted/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-vcr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-warnings/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-watch/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xvfb/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-awair/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-binance/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-box/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-didl-lite/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-engineio/3.nix67
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-gammu/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-igraph/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-levenshtein/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-magic/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-magic/libmagic-path.patch17
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-miio/default.nix69
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-nmap/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-olm/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-opendata-transport/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-prctl/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-prctl/skip_bad_tests.patch34
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-smarttub/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-socketio/4.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-socketio/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-twitch-client/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-velbus/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/python3-saml/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pythran/default.nix69
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytile/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/bin.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytrafikverket/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytrends/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytube/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyturbojpeg/lib-path.patch28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytz/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyu2f/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyusb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyuv/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyuv/pyuv-external-libuv.patch25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvera/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvex/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvicare/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvizio/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvolumio/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywbem/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywebview/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxattr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxeoma/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxiaomigateway/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxml/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxnat/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyyaml/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyzerproc/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch63
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/qtawesome/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qtconsole/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/quandl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/questionary/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/radiotherm/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/ratelimit/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/rdkit/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/readme_renderer/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/regenmaschine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/reportlab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-kerberos/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-pkcs12/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/respx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/restfly/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/restview/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/retworkx/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/rfcat/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/ring-doorbell/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/riprova/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/rnc2rng/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/roboschool/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-tools/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/ronin/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/rope/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/ropper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpy2/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpy2/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3fs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3transfer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/safety/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sagemaker/default.nix55
-rw-r--r--nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sane/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/sasmodels/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/schema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/scipy/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/scramp/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/screeninfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/seaborn/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/secretstorage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/semver/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/sendgrid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/serverlessrepo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setproctitle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/sfepy/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/shap/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/shapely/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/sharkiqpy/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/shiboken2/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/signify/certificate-expiration-date.patch18
-rw-r--r--nixpkgs/pkgs/development/python-modules/signify/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/simplehound/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/simplejson/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/simplekml/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/simplisafe-python/default.nix61
-rw-r--r--nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/skorch/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/skybellpy/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/slack-sdk/default.nix74
-rw-r--r--nixpkgs/pkgs/development/python-modules/slackclient/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/slicedimage/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/slicer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/slixmpp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/smart_open/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/smartypants/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/smartypants/hgtags17
-rw-r--r--nixpkgs/pkgs/development/python-modules/smdebug-rulesconfig/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/smmap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snapcast/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/soco/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/solaredge/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/solax/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/solo-python/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/somajo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sopel/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/spglib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-navtree/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spotipy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder-kernels/0.x.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder/3.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlmap/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/srp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/starlette/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/statsmodels/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/streamz/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/strictyaml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/stytra/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/subarulink/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/sunpy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/supervisor/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/surepy/default.nix61
-rw-r--r--nixpkgs/pkgs/development/python-modules/survey/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/swspotify/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sybil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tabulate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tahoma-api/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/tatsu/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/tellduslive/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/terminado/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/termplotlib/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/textacy/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/thespian/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tiledb/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/tiros/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/tldextract/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/tlsh/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/tokenize-rt/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/tokenizers/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchgpipe/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchvision/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/tpm2-pytss/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/tqdm/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/traitsui/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/traittypes/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/transaction/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/transformers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/transitions/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/transmissionrpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tubeup/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/tuyaha/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/twentemilieu/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/twill/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twinkly-client/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/twitterapi/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/typesystem/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/tzdata/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/tzlocal/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/ueberzug/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ujson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/unidecode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/update-dotdee/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uproot3-methods/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/uproot3/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/uranium/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/urllib3/2.nix73
-rw-r--r--nixpkgs/pkgs/development/python-modules/urllib3/default.nix66
-rw-r--r--nixpkgs/pkgs/development/python-modules/uvloop/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/validators/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vcrpy/3.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/vcrpy/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/vega/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/venstarcolortouch/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/vidstab/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtualenv/default.nix55
-rw-r--r--nixpkgs/pkgs/development/python-modules/volkszaehler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vsure/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/w3lib/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/wadllib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/wasabi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wasmer/default.nix65
-rw-r--r--nixpkgs/pkgs/development/python-modules/watchdog/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/wcmatch/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/web-cache/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/webob/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/weboob/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/websocket_client/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/werkzeug/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wheel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wiffi/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/winacl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wrapio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wsgi-intercept/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/wxPython/4.1.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/xarray/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/xcffib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xdis/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/xknx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmldiff/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmlsec/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmlsec/reset-lxml-in-tests.patch22
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmpppy/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmpppy/ssl.patch25
-rw-r--r--nixpkgs/pkgs/development/python-modules/xpath-expressions/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/yalesmartalarmclient/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/yalexs/default.nix58
-rw-r--r--nixpkgs/pkgs/development/python-modules/yamllint/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/yapf/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/yapsy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yaswfp/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/zerobin/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zeroconf/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/zetup/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_schema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zopfli/default.nix5
-rw-r--r--nixpkgs/pkgs/development/r-modules/cran-packages.nix2
-rw-r--r--nixpkgs/pkgs/development/r-modules/default.nix11
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/bundix/default.nix17
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix39
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/gem/default.nix10
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/with-packages/test.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/air/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/ameba/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/coan/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/emma/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/flow/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/kcov/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/lcov/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/makefile2graph/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/pmd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix63
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/radare2/default.nix197
-rwxr-xr-xnixpkgs/pkgs/development/tools/analysis/radare2/update.py52
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/randoop/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix44
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rizin/default.nix69
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/spin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/svlint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/swarm/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/tflint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/asmfmt/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/async-profiler/default.nix40
-rw-r--r--nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/azcopy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/bashate/default.nix43
-rw-r--r--nixpkgs/pkgs/development/tools/bazel-kazel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/bazel-watcher/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/boost-build/default.nix29
-rw-r--r--nixpkgs/pkgs/development/tools/buf/default.nix36
-rw-r--r--nixpkgs/pkgs/development/tools/buf/skip_test_requiring_network.patch15
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bam/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bear/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bear/no-double-relative.patch10
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix15
-rwxr-xr-xnixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh3
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/conan/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/corrosion/cmake-install-full-dir.patch18
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/corrosion/default.nix54
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/dub/default.nix89
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix57
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/gup/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/jam/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch8
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/meson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch10
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/mill/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/qbs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix43
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix82
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix53
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/shards/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/shards/shards.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/waf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/buildah/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/buildah/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/buildkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/buildpack/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/cask/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/castxml/default.nix65
-rw-r--r--nixpkgs/pkgs/development/tools/ccloud-cli/default.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/cdecl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/checkmake/default.nix49
-rw-r--r--nixpkgs/pkgs/development/tools/chefdk/Gemfile2
-rw-r--r--nixpkgs/pkgs/development/tools/chefdk/Gemfile.lock698
-rw-r--r--nixpkgs/pkgs/development/tools/chefdk/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/chefdk/gemset.nix1039
-rw-r--r--nixpkgs/pkgs/development/tools/clj-kondo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/cloud-nuke/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/clpm/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/cmake-format/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/generic.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/drone-runner-docker/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/drone-runner-exec/default.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/gocd-agent/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/gocd-server/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/hci/default.nix23
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix43
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch31
-rw-r--r--nixpkgs/pkgs/development/tools/convco/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/coursier/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/cue/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/dapper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/dapr/cli/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/database/ephemeralpg/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/database/liquibase/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/database/shmig/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/database/webdis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/devpi-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/diesel-cli/allow-warnings.patch88
-rw-r--r--nixpkgs/pkgs/development/tools/diesel-cli/cargo-lock.patch1334
-rw-r--r--nixpkgs/pkgs/development/tools/diesel-cli/default.nix53
-rw-r--r--nixpkgs/pkgs/development/tools/diesel-cli/fix-deprecated.patch10
-rw-r--r--nixpkgs/pkgs/development/tools/dive/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/dockle/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/doctl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix94
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/drm_info/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/dt-schema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/dtools/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/eclipse-mat/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/electron/default.nix54
-rw-r--r--nixpkgs/pkgs/development/tools/electron/generic.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/errcheck/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/fedpkg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/fission/default.nix30
-rw-r--r--nixpkgs/pkgs/development/tools/flatpak-builder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/flawfinder/default.nix35
-rw-r--r--nixpkgs/pkgs/development/tools/flyway/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/fmbt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/galen/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/ginkgo/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/git-quick-stats/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/github/github-release/default.nix47
-rw-r--r--nixpkgs/pkgs/development/tools/gllvm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/glpaper/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/gnulib/default.nix23
-rw-r--r--nixpkgs/pkgs/development/tools/go-containerregistry/default.nix31
-rw-r--r--nixpkgs/pkgs/development/tools/go-mockery/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/go-protobuf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/go-swagger/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/go-task/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/go-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/gofumpt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/golangci-lint/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/golint/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/golint/deps.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/google-app-engine-go-sdk/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/gops/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/gosec/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/gotestsum/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/grabserial/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/hcloud/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/heroku/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/hexio/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/hover/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/hover/fix-assets-path.patch2
-rw-r--r--nixpkgs/pkgs/development/tools/icr/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/java/visualvm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/jbake/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/jbang/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/jpexs/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/jq/default.nix45
-rw-r--r--nixpkgs/pkgs/development/tools/jsduck/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/k6/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/genkfs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/kcc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/kimg/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/kpack/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/scas/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/z80e/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/krankerl/default.nix49
-rw-r--r--nixpkgs/pkgs/development/tools/krew/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/kubectx/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/kubie/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/kustomize/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix34
-rw-r--r--nixpkgs/pkgs/development/tools/lazygit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/literate-programming/Literate/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix35
-rw-r--r--nixpkgs/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch4
-rw-r--r--nixpkgs/pkgs/development/tools/luaformatter/default.nix30
-rw-r--r--nixpkgs/pkgs/development/tools/metals/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/minizinc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/minizinc/ide.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/act/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/autobuild/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/misc/autoconf-archive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/autoconf/2.13.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/automaticcomponenttoolkit/default.nix33
-rw-r--r--nixpkgs/pkgs/development/tools/misc/avrdude/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/blackfire/php-probe.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ccls/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cli11/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix63
-rw-r--r--nixpkgs/pkgs/development/tools/misc/clojure-lsp/repository.nix40
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cproto/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cvise/default.nix46
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cvise/unifdef.patch8
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cwebbin/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/misc/dejagnu/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/misc/dialog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/direvent/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/distcc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/doclifter/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/elfkickers/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/elfutils/default.nix91
-rw-r--r--nixpkgs/pkgs/development/tools/misc/elfutils/musl-cdefs_h.patch15
-rw-r--r--nixpkgs/pkgs/development/tools/misc/elfutils/musl-error_h.patch66
-rw-r--r--nixpkgs/pkgs/development/tools/misc/fswatch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gdb/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gede/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/global/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/misc/go-md2man/default.nix (renamed from nixpkgs/pkgs/development/tools/misc/md2man/default.nix)6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gpshell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gpuvis/default.nix42
-rw-r--r--nixpkgs/pkgs/development/tools/misc/help2man/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hound/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra/common.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra/hydra-nix-receiveContents.patch18
-rw-r--r--nixpkgs/pkgs/development/tools/misc/intltool/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/k2tf/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/misc/kconfig-frontends/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/misc/kdbg/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/kibana/6.x.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/kibana/7.x.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/macdylibbundler/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix51
-rw-r--r--nixpkgs/pkgs/development/tools/misc/msitools/default.nix72
-rw-r--r--nixpkgs/pkgs/development/tools/misc/nimlsp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/misc/openfpgaloader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/openocd/default.nix18
-rw-r--r--nixpkgs/pkgs/development/tools/misc/pahole/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/pkgconf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/premake/3.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/rman/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/misc/rolespec/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/scc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/sccache/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/misc/segger-ozone/default.nix84
-rw-r--r--nixpkgs/pkgs/development/tools/misc/sloccount/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/stm32flash/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/strace/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/misc/svls/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terracognita/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terraformer/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/texinfo/4.13a.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tie/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/unifdef/default.nix29
-rw-r--r--nixpkgs/pkgs/development/tools/misc/universal-ctags/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/misc/yodl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/mockgen/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/neoload/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/node-webkit/nw12.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/nrpl/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/nwjs/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune/1.nix (renamed from nixpkgs/pkgs/development/tools/ocaml/dune/default.nix)1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune/2.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix77
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocamlformat/generic.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocamlmod/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/opam/1.2.2.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/opam/default.nix3
-rwxr-xr-xnixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl3
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/utop/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/open-policy-agent/default.nix21
-rw-r--r--nixpkgs/pkgs/development/tools/operator-sdk/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/oq/default.nix29
-rw-r--r--nixpkgs/pkgs/development/tools/out-of-tree/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/packer/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/packet-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/pactorio/default.nix33
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/bison/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/re2c/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix94
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammar.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bash.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-css.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-embedded-template.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fennel.json10
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-jsdoc.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json10
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json10
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-regex.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json10
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json10
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/phantomjs/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/phantomjs2/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix181
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock552
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml8
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json4
-rwxr-xr-xnixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update2
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/pqrs/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/profiling/systemtap/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix27
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-twirp_php/default.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-twirp_swagger/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-twirp_typescript/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/quilt/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/react-native-debugger/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/renderizer/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rgp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/ronn/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rshell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock4
-rw-r--r--nixpkgs/pkgs/development/tools/rubocop/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/rubocop/gemset.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/rust/bindgen/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-cross/default.nix40
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-limit/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix27
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/rust/maturin/default.nix23
-rw-r--r--nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/Cargo.lock.patch688
-rw-r--r--nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix45
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/rust_1_49.patch13
-rw-r--r--nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/sauce-connect/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/scaff/default.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/scalafix/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/scry/default.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/scry/shards.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/sd-local/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/selenium/selendroid/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/selenium/server/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/shellharden/default.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/skaffold/default.nix42
-rw-r--r--nixpkgs/pkgs/development/tools/skopeo/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/slimerjs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/sourcetrail/default.nix136
-rw-r--r--nixpkgs/pkgs/development/tools/sourcetrail/python.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/spicy/default.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/spicy/deps.nix56
-rw-r--r--nixpkgs/pkgs/development/tools/sqlint/Gemfile.lock8
-rw-r--r--nixpkgs/pkgs/development/tools/sqlint/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/sqlint/gemset.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/sslmate/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/stagit/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/sumneko-lua-language-server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/tabnine/default.nix23
-rw-r--r--nixpkgs/pkgs/development/tools/the-way/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/thrust/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/tracy/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/trunk/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch342
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/gemset.nix58
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix40
-rw-r--r--nixpkgs/pkgs/development/tools/vendir/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/vogl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/vulkan-validation-layers/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/vultr-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/vultr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/wabt/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock561
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-pack/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-pack/update-deps.patch3625
-rw-r--r--nixpkgs/pkgs/development/tools/wiggle/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/wrangler/default.nix21
-rw-r--r--nixpkgs/pkgs/development/tools/xcbuild/toolchains.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/xcode-install/Gemfile2
-rw-r--r--nixpkgs/pkgs/development/tools/xcode-install/Gemfile.lock204
-rw-r--r--nixpkgs/pkgs/development/tools/xcode-install/default.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/xcode-install/gemset.nix833
-rw-r--r--nixpkgs/pkgs/development/tools/yaml2json/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/yaml2json/deps.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/yq-go/default.nix6
-rw-r--r--nixpkgs/pkgs/development/web/cog/default.nix2
-rw-r--r--nixpkgs/pkgs/development/web/cypress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/web/deno/default.nix63
-rw-r--r--nixpkgs/pkgs/development/web/deno/deps.nix12
-rw-r--r--nixpkgs/pkgs/development/web/deno/librusty_v8.nix21
-rw-r--r--nixpkgs/pkgs/development/web/deno/update/common.ts34
-rw-r--r--nixpkgs/pkgs/development/web/deno/update/deps.ts79
-rw-r--r--nixpkgs/pkgs/development/web/deno/update/librusty_v8.ts92
-rw-r--r--nixpkgs/pkgs/development/web/deno/update/src.ts10
-rwxr-xr-xnixpkgs/pkgs/development/web/deno/update/update.ts17
-rw-r--r--nixpkgs/pkgs/development/web/grails/default.nix2
-rw-r--r--nixpkgs/pkgs/development/web/insomnia/default.nix4
-rw-r--r--nixpkgs/pkgs/development/web/lucky-cli/shard.lock2
-rw-r--r--nixpkgs/pkgs/development/web/lucky-cli/shards.nix4
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/nodejs.nix4
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v10.nix4
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v12.nix4
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v14.nix4
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v15.nix4
-rw-r--r--nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix2
-rw-r--r--nixpkgs/pkgs/games/0ad/data.nix2
-rw-r--r--nixpkgs/pkgs/games/0ad/game.nix62
-rw-r--r--nixpkgs/pkgs/games/0ad/rootdir_env.patch38
-rw-r--r--nixpkgs/pkgs/games/0ad/spidermonkey-cargo-toml.patch15
-rw-r--r--nixpkgs/pkgs/games/20kly/default.nix32
-rw-r--r--nixpkgs/pkgs/games/airstrike/default.nix3
-rw-r--r--nixpkgs/pkgs/games/among-sus/default.nix7
-rw-r--r--nixpkgs/pkgs/games/angband/default.nix4
-rw-r--r--nixpkgs/pkgs/games/anki/bin.nix6
-rw-r--r--nixpkgs/pkgs/games/antsimulator/default.nix29
-rw-r--r--nixpkgs/pkgs/games/asc/default.nix2
-rw-r--r--nixpkgs/pkgs/games/assaultcube/default.nix2
-rw-r--r--nixpkgs/pkgs/games/black-hole-solver/default.nix30
-rw-r--r--nixpkgs/pkgs/games/blobwars/default.nix34
-rw-r--r--nixpkgs/pkgs/games/boohu/default.nix2
-rw-r--r--nixpkgs/pkgs/games/bzflag/default.nix4
-rw-r--r--nixpkgs/pkgs/games/cbonsai/default.nix27
-rw-r--r--nixpkgs/pkgs/games/chessdb/default.nix3
-rw-r--r--nixpkgs/pkgs/games/chromium-bsu/default.nix68
-rw-r--r--nixpkgs/pkgs/games/ckan/default.nix7
-rw-r--r--nixpkgs/pkgs/games/cockatrice/default.nix6
-rw-r--r--nixpkgs/pkgs/games/crafty/default.nix2
-rw-r--r--nixpkgs/pkgs/games/crawl/default.nix4
-rw-r--r--nixpkgs/pkgs/games/crispy-doom/default.nix10
-rw-r--r--nixpkgs/pkgs/games/devilutionx/default.nix10
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix2
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/legends-browser/default.nix2
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix2
-rw-r--r--nixpkgs/pkgs/games/eidolon/default.nix7
-rw-r--r--nixpkgs/pkgs/games/empty-epsilon/default.nix26
-rw-r--r--nixpkgs/pkgs/games/enigma/default.nix32
-rw-r--r--nixpkgs/pkgs/games/exult/default.nix4
-rw-r--r--nixpkgs/pkgs/games/ezquake/default.nix4
-rw-r--r--nixpkgs/pkgs/games/factorio/default.nix3
-rw-r--r--nixpkgs/pkgs/games/factorio/versions.json48
-rw-r--r--nixpkgs/pkgs/games/fairymax/default.nix4
-rw-r--r--nixpkgs/pkgs/games/flightgear/default.nix2
-rw-r--r--nixpkgs/pkgs/games/freeciv/default.nix6
-rw-r--r--nixpkgs/pkgs/games/frotz/default.nix4
-rw-r--r--nixpkgs/pkgs/games/gcompris/default.nix4
-rw-r--r--nixpkgs/pkgs/games/gcs/default.nix3
-rw-r--r--nixpkgs/pkgs/games/gemrb/default.nix4
-rw-r--r--nixpkgs/pkgs/games/gimx/default.nix10
-rw-r--r--nixpkgs/pkgs/games/gimx/noff.patch (renamed from nixpkgs/pkgs/games/gimx/ds4.patch)0
-rw-r--r--nixpkgs/pkgs/games/gnubg/default.nix8
-rw-r--r--nixpkgs/pkgs/games/gogui/default.nix2
-rw-r--r--nixpkgs/pkgs/games/gtypist/default.nix3
-rw-r--r--nixpkgs/pkgs/games/harmonist/default.nix6
-rw-r--r--nixpkgs/pkgs/games/harmonist/deps.nix88
-rw-r--r--nixpkgs/pkgs/games/katago/default.nix10
-rw-r--r--nixpkgs/pkgs/games/keen4/default.nix2
-rw-r--r--nixpkgs/pkgs/games/leela-zero/default.nix2
-rw-r--r--nixpkgs/pkgs/games/maelstrom/default.nix39
-rw-r--r--nixpkgs/pkgs/games/maelstrom/fix-compilation.patch42
-rw-r--r--nixpkgs/pkgs/games/mindustry/default.nix8
-rw-r--r--nixpkgs/pkgs/games/mrrescue/default.nix3
-rw-r--r--nixpkgs/pkgs/games/multimc/default.nix6
-rw-r--r--nixpkgs/pkgs/games/nethack/default.nix2
-rw-r--r--nixpkgs/pkgs/games/newtonwars/default.nix3
-rw-r--r--nixpkgs/pkgs/games/nexuiz/default.nix3
-rw-r--r--nixpkgs/pkgs/games/nottetris2/default.nix4
-rw-r--r--nixpkgs/pkgs/games/openmw/default.nix2
-rw-r--r--nixpkgs/pkgs/games/openmw/tes3mp.nix2
-rw-r--r--nixpkgs/pkgs/games/openrct2/default.nix8
-rw-r--r--nixpkgs/pkgs/games/openttd/default.nix30
-rw-r--r--nixpkgs/pkgs/games/openttd/jgrpp.nix4
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/default.nix4
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/deps.nix97
-rw-r--r--nixpkgs/pkgs/games/papermc/default.nix6
-rw-r--r--nixpkgs/pkgs/games/pentobi/default.nix4
-rw-r--r--nixpkgs/pkgs/games/pinball/default.nix5
-rw-r--r--nixpkgs/pkgs/games/portmod/default.nix4
-rw-r--r--nixpkgs/pkgs/games/quakespasm/vulkan.nix4
-rw-r--r--nixpkgs/pkgs/games/r2mod_cli/default.nix8
-rw-r--r--nixpkgs/pkgs/games/racer/default.nix4
-rw-r--r--nixpkgs/pkgs/games/rigsofrods/default.nix4
-rw-r--r--nixpkgs/pkgs/games/runelite/default.nix2
-rw-r--r--nixpkgs/pkgs/games/scid/default.nix3
-rw-r--r--nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix17
-rw-r--r--nixpkgs/pkgs/games/sil/default.nix3
-rw-r--r--nixpkgs/pkgs/games/simutrans/default.nix4
-rw-r--r--nixpkgs/pkgs/games/sm64ex/default.nix6
-rw-r--r--nixpkgs/pkgs/games/spring/default.nix6
-rw-r--r--nixpkgs/pkgs/games/steam/fhsenv.nix30
-rw-r--r--nixpkgs/pkgs/games/steam/fonts.nix2
-rw-r--r--nixpkgs/pkgs/games/steam/steam.nix4
-rw-r--r--nixpkgs/pkgs/games/stockfish/default.nix3
-rw-r--r--nixpkgs/pkgs/games/super-tux-kart/default.nix1
-rw-r--r--nixpkgs/pkgs/games/terraria-server/default.nix4
-rw-r--r--nixpkgs/pkgs/games/tintin/default.nix4
-rw-r--r--nixpkgs/pkgs/games/tremulous/default.nix3
-rw-r--r--nixpkgs/pkgs/games/uchess/default.nix32
-rw-r--r--nixpkgs/pkgs/games/uhexen2/default.nix66
-rw-r--r--nixpkgs/pkgs/games/unciv/default.nix4
-rw-r--r--nixpkgs/pkgs/games/urbanterror/default.nix3
-rw-r--r--nixpkgs/pkgs/games/vassal/default.nix8
-rw-r--r--nixpkgs/pkgs/games/vms-empire/default.nix51
-rw-r--r--nixpkgs/pkgs/games/wargus/default.nix39
-rw-r--r--nixpkgs/pkgs/games/wargus/stratagus.nix35
-rw-r--r--nixpkgs/pkgs/games/warsow/engine.nix35
-rw-r--r--nixpkgs/pkgs/games/warzone2100/default.nix29
-rw-r--r--nixpkgs/pkgs/games/wesnoth/default.nix4
-rw-r--r--nixpkgs/pkgs/games/worldofgoo/default.nix2
-rw-r--r--nixpkgs/pkgs/games/xcowsay/default.nix9
-rw-r--r--nixpkgs/pkgs/games/xonotic/default.nix3
-rw-r--r--nixpkgs/pkgs/games/zaz/default.nix6
-rw-r--r--nixpkgs/pkgs/games/zdoom/bcc-git.nix2
-rw-r--r--nixpkgs/pkgs/games/zod/default.nix3
-rw-r--r--nixpkgs/pkgs/misc/cups/drivers/canon/default.nix5
-rw-r--r--nixpkgs/pkgs/misc/cups/drivers/cnijfilter2/default.nix23
-rw-r--r--nixpkgs/pkgs/misc/cups/drivers/cups-drv-rastertosag-gdi/default.nix53
-rw-r--r--nixpkgs/pkgs/misc/cups/drivers/hll2340dw/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/documentation-highlighter/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/drivers/epkowa/default.nix41
-rw-r--r--nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix10
-rw-r--r--nixpkgs/pkgs/misc/drivers/spacenavd/default.nix26
-rw-r--r--nixpkgs/pkgs/misc/emulators/atari800/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/blastem/default.nix3
-rw-r--r--nixpkgs/pkgs/misc/emulators/cdemu/libmirage.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/cen64/default.nix30
-rw-r--r--nixpkgs/pkgs/misc/emulators/citra/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/dlx/default.nix34
-rw-r--r--nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix6
-rw-r--r--nixpkgs/pkgs/misc/emulators/libdsk/default.nix6
-rw-r--r--nixpkgs/pkgs/misc/emulators/mednafen/server.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/mednaffe/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/mgba/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/nestopia/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/pcsx2/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/py65/default.nix25
-rw-r--r--nixpkgs/pkgs/misc/emulators/retroarch/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/ruffle/default.nix9
-rw-r--r--nixpkgs/pkgs/misc/emulators/ryujinx/default.nix13
-rw-r--r--nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix331
-rw-r--r--nixpkgs/pkgs/misc/emulators/ryujinx/disable-updater.patch33
-rwxr-xr-xnixpkgs/pkgs/misc/emulators/ryujinx/updater.sh (renamed from nixpkgs/pkgs/misc/emulators/ryujinx/fetch-deps.sh)33
-rw-r--r--nixpkgs/pkgs/misc/emulators/sameboy/default.nix25
-rw-r--r--nixpkgs/pkgs/misc/emulators/simh/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix5
-rw-r--r--nixpkgs/pkgs/misc/emulators/stella/default.nix10
-rw-r--r--nixpkgs/pkgs/misc/emulators/tilem/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/wine/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/wine/sources.nix6
-rw-r--r--nixpkgs/pkgs/misc/emulators/yuzu/base.nix24
-rw-r--r--nixpkgs/pkgs/misc/emulators/yuzu/default.nix8
-rw-r--r--nixpkgs/pkgs/misc/flashfocus/default.nix22
-rw-r--r--nixpkgs/pkgs/misc/gnuk/generic.nix4
-rw-r--r--nixpkgs/pkgs/misc/jackaudio/default.nix3
-rw-r--r--nixpkgs/pkgs/misc/lightspark/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/lilypond/default.nix17
-rw-r--r--nixpkgs/pkgs/misc/lilypond/findlib.patch24
-rw-r--r--nixpkgs/pkgs/misc/lilypond/unstable.nix21
-rw-r--r--nixpkgs/pkgs/misc/lilypond/with-fonts.nix3
-rw-r--r--nixpkgs/pkgs/misc/mnemonicode/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/pylode/default.nix37
-rw-r--r--nixpkgs/pkgs/misc/riscv-pk/default.nix15
-rw-r--r--nixpkgs/pkgs/misc/rkdeveloptool/default.nix9
-rw-r--r--nixpkgs/pkgs/misc/scimark/default.nix35
-rw-r--r--nixpkgs/pkgs/misc/screensavers/pipes/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/screensavers/rss-glx/default.nix6
-rw-r--r--nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/seafile-shared/default.nix5
-rw-r--r--nixpkgs/pkgs/misc/source-and-tags/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/tmux-plugins/default.nix139
-rw-r--r--nixpkgs/pkgs/misc/uboot/default.nix28
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/generated.nix1574
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/overrides.nix20
-rwxr-xr-xnixpkgs/pkgs/misc/vim-plugins/update.py501
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names37
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/default.nix327
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix143
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json37
-rwxr-xr-xnixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/update-bin-srcs25
-rwxr-xr-xnixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/update-bin-srcs-lib.sh154
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix80
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/python/extract-nuget.nix2
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json9
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/terraform/default.nix25
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch38
-rw-r--r--nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix12
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix28
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/clang-5.patch22
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix55
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/headers.txt138
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix36
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/headers.txt1727
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix18
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix31
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix81
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer-tools-11.3.1.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix4
-rwxr-xr-xnixpkgs/pkgs/os-specific/darwin/apple-source-releases/generate-sdk-packages.sh29
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix35
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix14
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix29
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix34
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/macos-11.0.1.nix46
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/headers.txt1318
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/binutils/default.nix13
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/m-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/macfuse/default.nix65
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/mas/default.nix44
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/osxfuse/default.nix48
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/acpi-call/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/akvcam/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/android-udev-rules/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/audit/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/audit/patches/weak-symbols.patch147
-rw-r--r--nixpkgs/pkgs/os-specific/linux/autofs/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bcc/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bluez/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bolt/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/btfs/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/busybox/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cifs-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/compsize/default.nix15
-rw-r--r--nixpkgs/pkgs/os-specific/linux/conky/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/criu/default.nix12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cryptsetup/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dlm/default.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dmtcp/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dpdk/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dstat/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ell/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ena/default.nix11
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fatrace/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/rtlwifi_new-firmware/default.nix23
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/rtw88-firmware/default.nix25
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix18
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/gogoclient/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/gradm/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/greetd/default.nix51
-rw-r--r--nixpkgs/pkgs/os-specific/linux/gtkgreet/default.nix50
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hostapd/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hwdata/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hyperv-daemons/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iproute/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iproute/mptcp.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ipsec-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ipset/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iptables/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iputils/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/linux/isgx/default.nix53
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iwd/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/joycond/default.nix37
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel-headers/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix86
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/generic.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/hardened/config.nix16
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json30
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix20
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-mptcp-95.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rpi.nix19
-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.11.nix (renamed from nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix)10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix27
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix4
-rwxr-xr-xnixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kmod/darwin.patch12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libaio/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libcap/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libcap/no-shared-lib.patch22
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libcgroup/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libfabric/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libnl/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libvolume_id/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lm-sensors/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lsiutil/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/macchanger/default.nix29
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix34
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mcelog/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/microcode/intel.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/msr-tools/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/musl-fts/default.nix25
-rw-r--r--nixpkgs/pkgs/os-specific/linux/musl-obstack/default.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/musl/default.nix37
-rw-r--r--nixpkgs/pkgs/os-specific/linux/net-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nfs-utils/default.nix12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nftables/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh16
-rw-r--r--nixpkgs/pkgs/os-specific/linux/numactl/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/numad/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/nvidia-setttings-parallel-build.patch12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/settings.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvme-cli/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvmet-cli/default.nix25
-rw-r--r--nixpkgs/pkgs/os-specific/linux/openvswitch/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/openvswitch/lts.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam_gnupg/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam_krb5/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam_mount/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam_mount/support_luks2.patch47
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pax-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pcmciautils/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pipework/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ply/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/plymouth/default.nix103
-rw-r--r--nixpkgs/pkgs/os-specific/linux/power-profiles-daemon/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/powercap/default.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/powerstat/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/procps-ng/default.nix42
-rw-r--r--nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rdma-core/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtlwifi_new/default.nix42
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtw88/default.nix40
-rw-r--r--nixpkgs/pkgs/os-specific/linux/s6-linux-init/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/seturgent/default.nix3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sssd/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sysdig/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/syslinux/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sysstat/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch42
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/default.nix165
-rw-r--r--nixpkgs/pkgs/os-specific/linux/targetcli/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/trace-cmd/fix-Makefiles.patch24
-rw-r--r--nixpkgs/pkgs/os-specific/linux/trace-cmd/kernelshark.nix11
-rw-r--r--nixpkgs/pkgs/os-specific/linux/trace-cmd/src.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tuigreet/default.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/uclibc/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/vendor-reset/default.nix35
-rw-r--r--nixpkgs/pkgs/os-specific/linux/wireguard/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/wlgreet/default.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/wpa_supplicant/default.nix9
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix11
-rw-r--r--nixpkgs/pkgs/os-specific/linux/zfs/default.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/solo5/default.nix35
-rw-r--r--nixpkgs/pkgs/os-specific/windows/cygwin-setup/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/windows/mcfgthreads/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/adguardhome/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/ankisyncd/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/apache-kafka/default.nix23
-rw-r--r--nixpkgs/pkgs/servers/bazarr/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/bird/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/calibre-web/db-migrations.patch14
-rw-r--r--nixpkgs/pkgs/servers/calibre-web/default-logger.patch17
-rw-r--r--nixpkgs/pkgs/servers/calibre-web/default.nix72
-rw-r--r--nixpkgs/pkgs/servers/computing/slurm/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/computing/storm/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/confluent-platform/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/consul/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/dico/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dict/dictd-wordnet.nix4
-rw-r--r--nixpkgs/pkgs/servers/dict/wiktionary/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dns/bind/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dns/coredns/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/dns/knot-dns/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dns/knot-resolver/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/documize-community/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/etcd/3.4.nix6
-rw-r--r--nixpkgs/pkgs/servers/exhibitor/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/fishnet/assets.nix7
-rw-r--r--nixpkgs/pkgs/servers/fishnet/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/foundationdb/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/foundationdb/patches/include-fixes-6.0.patch137
-rw-r--r--nixpkgs/pkgs/servers/foundationdb/patches/stdexcept-6.1.patch24
-rw-r--r--nixpkgs/pkgs/servers/foundationdb/vsmake.nix4
-rw-r--r--nixpkgs/pkgs/servers/gemini/agate/default.nix22
-rw-r--r--nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix25
-rw-r--r--nixpkgs/pkgs/servers/gerbera/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/gonic/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/gpsd/default.nix16
-rw-r--r--nixpkgs/pkgs/servers/gpsd/sconstruct-env-fixes.patch7
-rw-r--r--nixpkgs/pkgs/servers/h2/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/hbase/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/appdaemon.nix26
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/cli.nix2
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/component-packages.nix172
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/default.nix249
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/frontend.nix6
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/fixdeps.patch32
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_evasive/default.nix35
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_perl/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/http/darkhttpd/default.nix19
-rw-r--r--nixpkgs/pkgs/servers/http/envoy/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/http/gitlab-pages/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/http/jboss/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/http/jetty/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/generic.nix5
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/nix-binary-cache/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/http/pomerium/default.nix80
-rw-r--r--nixpkgs/pkgs/servers/http/tengine/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/tomcat/axis2/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/http/unit/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/imgproxy/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/irc/atheme/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/irc/inspircd/default.nix221
-rw-r--r--nixpkgs/pkgs/servers/irc/ircd-hybrid/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/irc/solanum/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/irker/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/isso/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/jackett/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/10.5.x.nix2
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/default.nix15
-rw-r--r--nixpkgs/pkgs/servers/jetbrains/youtrack.nix2
-rw-r--r--nixpkgs/pkgs/servers/jicofo/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/jitsi-videobridge/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/kapowbang/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/keycloak/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/kippo/default.nix100
-rw-r--r--nixpkgs/pkgs/servers/klipper/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/ldap/389/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/livepeer/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/ma1sd/0001-gradle.patch20
-rw-r--r--nixpkgs/pkgs/servers/ma1sd/default.nix24
-rw-r--r--nixpkgs/pkgs/servers/mail/dovecot/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix11
-rw-r--r--nixpkgs/pkgs/servers/mail/exim/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/mail/mailhog/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix2
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/postorius.nix14
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/wrapped.nix2
-rw-r--r--nixpkgs/pkgs/servers/mail/postsrsd/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/mail/rspamd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mail/spamassassin/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/mail/sympa/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/mastodon/default.nix13
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix28
-rwxr-xr-xnixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/generate-dependencies.sh11
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-composition.nix17
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix5165
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json3
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix7
-rwxr-xr-xnixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh6
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix3003
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/plugins/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/plugins/shared-secret-auth.nix18
-rw-r--r--nixpkgs/pkgs/servers/matterbridge/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mattermost/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/mattermost/matterircd.nix4
-rw-r--r--nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/metabase/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/meteor/default.nix87
-rw-r--r--nixpkgs/pkgs/servers/miniflux/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/minio/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/alerta/client.nix27
-rw-r--r--nixpkgs/pkgs/servers/monitoring/alerta/default.nix (renamed from nixpkgs/pkgs/development/python-modules/alerta-server/default.nix)16
-rw-r--r--nixpkgs/pkgs/servers/monitoring/do-agent/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/fusion-inventory/default.nix11
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock558
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix576
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana/plugins/grafana-polystat-panel/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/loki/default.nix25
-rw-r--r--nixpkgs/pkgs/servers/monitoring/longview/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/munin/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/nagios/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/monitoring/net-snmp/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix36
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix42
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/cups-exporter.nix38
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix26
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix2
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix23
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix3
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix39
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix29
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix14
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/promscale.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix2
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix25
-rw-r--r--nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/seyren/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/monitoring/telegraf/default.nix14
-rw-r--r--nixpkgs/pkgs/servers/monitoring/thanos/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/monitoring/unifi-poller/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix60
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix13
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zipkin/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/mpd/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix45
-rw-r--r--nixpkgs/pkgs/servers/nats-server/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/nats-streaming-server/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/nextcloud/default.nix20
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/2.1.nix4
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/2.2.nix4
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/3.0.nix4
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/3.11.nix4
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/generic.nix7
-rw-r--r--nixpkgs/pkgs/servers/nosql/eventstore/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/nosql/neo4j/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/nosql/redis/default.nix15
-rw-r--r--nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix3
-rw-r--r--nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/nzbhydra2/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/oauth2_proxy/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/ombi/default.nix66
-rwxr-xr-xnixpkgs/pkgs/servers/ombi/update.sh42
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.8/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.8/module.nix23
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.9/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.9/module.nix9
-rw-r--r--nixpkgs/pkgs/servers/openbgpd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/p910nd/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/pim6sd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/pleroma-otp/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/plex/raw.nix9
-rw-r--r--nixpkgs/pkgs/servers/plik/default.nix25
-rw-r--r--nixpkgs/pkgs/servers/plik/programs.nix42
-rw-r--r--nixpkgs/pkgs/servers/pounce/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/radarr/default.nix39
-rwxr-xr-xnixpkgs/pkgs/servers/radarr/update.sh42
-rw-r--r--nixpkgs/pkgs/servers/rainloop/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/rippled/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/rippled/validator-keys-tool.nix28
-rw-r--r--nixpkgs/pkgs/servers/routinator/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/rtsp-simple-server/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/sabnzbd/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/search/elasticsearch/6.x.nix5
-rw-r--r--nixpkgs/pkgs/servers/search/elasticsearch/7.x.nix5
-rw-r--r--nixpkgs/pkgs/servers/search/elasticsearch/plugins.nix2
-rw-r--r--nixpkgs/pkgs/servers/search/groonga/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/search/solr/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/ser2net/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sickbeard/sickgear.nix4
-rw-r--r--nixpkgs/pkgs/servers/sonarr/default.nix18
-rwxr-xr-xnixpkgs/pkgs/servers/sonarr/update.sh7
-rw-r--r--nixpkgs/pkgs/servers/sozu/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/dolt/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/monetdb/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/mysql/jdbc/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/sql/patroni/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/default.nix29
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix5
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix7
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix4
-rw-r--r--nixpkgs/pkgs/servers/squid/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/swego/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/tailscale/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/tautulli/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/tegola/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/teleport/default.nix31
-rw-r--r--nixpkgs/pkgs/servers/traefik/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/trezord/default.nix11
-rw-r--r--nixpkgs/pkgs/servers/udpt/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/ums/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/urserver/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/uwsgi/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/varnish/dynamic.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/bookstack/composer-env.nix238
-rw-r--r--nixpkgs/pkgs/servers/web-apps/bookstack/composition.nix13
-rw-r--r--nixpkgs/pkgs/servers/web-apps/bookstack/default.nix38
-rw-r--r--nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix897
-rwxr-xr-xnixpkgs/pkgs/servers/web-apps/bookstack/update.sh50
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch12
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/admin_create.patch48
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/default.nix234
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch12
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/mail_receiver/default.nix39
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/nixos_defaults.patch13
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile248
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock561
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix2272
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch25
-rwxr-xr-xnixpkgs/pkgs/servers/web-apps/discourse/update.py164
-rw-r--r--nixpkgs/pkgs/servers/web-apps/galene/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/web-apps/moodle/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/moodle/moodle-utils.nix5
-rw-r--r--nixpkgs/pkgs/servers/web-apps/restya-board/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/sogo/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/virtlyst/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/whitebophir/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix148
-rw-r--r--nixpkgs/pkgs/servers/web-apps/whitebophir/node-packages.json2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/wiki-js/default.nix32
-rw-r--r--nixpkgs/pkgs/servers/web-apps/wordpress/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/default.nix24
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/overrides.nix8
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/tarballs.list8
-rw-r--r--nixpkgs/pkgs/servers/xandikos/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/xmpp/biboumi/default.nix30
-rw-r--r--nixpkgs/pkgs/servers/xmpp/ejabberd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/xmpp/prosody/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/xmpp/pyIRCt/default.nix41
-rw-r--r--nixpkgs/pkgs/servers/xmpp/pyMAILt/default.nix39
-rw-r--r--nixpkgs/pkgs/servers/zigbee2mqtt/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/zoneminder/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/zookeeper/default.nix3
-rw-r--r--nixpkgs/pkgs/shells/any-nix-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/bash/5.1.nix2
-rw-r--r--nixpkgs/pkgs/shells/bash/pgrp-pipe-5.1.patch15
-rw-r--r--nixpkgs/pkgs/shells/dash/default.nix14
-rw-r--r--nixpkgs/pkgs/shells/es/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/fish/default.nix71
-rw-r--r--nixpkgs/pkgs/shells/fish/dont-codesign-on-mac.diff12
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/build-fish-plugin.nix12
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/clownfish.nix20
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/default.nix7
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/fishtape_3.nix25
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix34
-rw-r--r--nixpkgs/pkgs/shells/fish/wrapper.nix4
-rw-r--r--nixpkgs/pkgs/shells/ksh/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/liquidprompt/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/mksh/default.nix34
-rw-r--r--nixpkgs/pkgs/shells/mrsh/default.nix13
-rw-r--r--nixpkgs/pkgs/shells/nushell/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/oh/default.nix30
-rw-r--r--nixpkgs/pkgs/shells/oh/deps.nix29
-rw-r--r--nixpkgs/pkgs/shells/oil/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/powershell/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/xonsh/default.nix8
-rw-r--r--nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix12
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh40
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix27
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix6
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/default.nix8
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix2
-rw-r--r--nixpkgs/pkgs/stdenv/generic/check-meta.nix40
-rw-r--r--nixpkgs/pkgs/stdenv/generic/make-derivation.nix8
-rw-r--r--nixpkgs/pkgs/stdenv/generic/setup.sh5
-rw-r--r--nixpkgs/pkgs/test/cuda/cuda-library-samples/default.nix42
-rw-r--r--nixpkgs/pkgs/test/cuda/cuda-library-samples/generic.nix70
-rw-r--r--nixpkgs/pkgs/test/cuda/cuda-samples/default.nix52
-rw-r--r--nixpkgs/pkgs/test/cuda/cuda-samples/generic.nix51
-rw-r--r--nixpkgs/pkgs/test/cuda/default.nix26
-rw-r--r--nixpkgs/pkgs/test/default.nix2
-rw-r--r--nixpkgs/pkgs/test/patch-shebangs/default.nix76
-rw-r--r--nixpkgs/pkgs/test/texlive/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/X11/alttab/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/X11/autocutsel/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/libstrangle/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/X11/libstrangle/nixos.patch44
-rw-r--r--nixpkgs/pkgs/tools/X11/nx-libs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/X11/run-scaled/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/X11/screen-message/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/setroot/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/X11/xbindkeys-config/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/X11/xidlehook/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/X11/xkb-switch/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/xkeysnail/browser-emacs-bindings.py55
-rw-r--r--nixpkgs/pkgs/tools/X11/xkeysnail/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/admin/acme.sh/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/analog/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-google-auth/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-mfa/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-vault/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli2/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/admin/awslogs/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix97
-rw-r--r--nixpkgs/pkgs/tools/admin/chkcrontab/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/clair/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/docker-credential-gcr/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/fioctl/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/admin/gixy/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/cloud_sql_proxy_path.patch36
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/admin/lxd/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/admin/mycli/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/admin/netplan/default.nix65
-rw-r--r--nixpkgs/pkgs/tools/admin/nomachine-client/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/admin/procs/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi/data.nix162
-rwxr-xr-xnixpkgs/pkgs/tools/admin/pulumi/update.sh63
-rw-r--r--nixpkgs/pkgs/tools/admin/salt/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/admin/simp_le/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/ssh-import-id/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/stripe-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/turbovnc/default.nix114
-rw-r--r--nixpkgs/pkgs/tools/archivers/7zz/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/archivers/fsarchiver/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/archivers/gnutar/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/archivers/innoextract/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/archivers/p7zip/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/archivers/rpm2targz/default.nix50
-rw-r--r--nixpkgs/pkgs/tools/archivers/unar/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/archivers/unp/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/archivers/xtrt/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/archivers/zpaq/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix2
-rw-r--r--nixpkgs/pkgs/tools/audio/abcmidi/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/default.nix135
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/plugins/alternatives.nix19
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/plugins/check-tests.patch17
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/plugins/check.nix35
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/plugins/copyartifacts.nix2
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/default.nix150
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/no-runtime-update.patch12
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix5247
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/src.json10
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/unconditional-relative-state-paths.patch22
-rw-r--r--nixpkgs/pkgs/tools/audio/essentia-extractor/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/audio/google-music-scripts/default.nix59
-rw-r--r--nixpkgs/pkgs/tools/audio/isrcsubmit/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/audio/midicsv/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/audio/spotdl/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridge/default.nix127
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridgectl/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch70
-rw-r--r--nixpkgs/pkgs/tools/backup/automysqlbackup/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/bacula/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/backup/borgbackup/default.nix (renamed from nixpkgs/pkgs/tools/backup/borg/default.nix)17
-rw-r--r--nixpkgs/pkgs/tools/backup/borgmatic/default.nix50
-rw-r--r--nixpkgs/pkgs/tools/backup/btrbk/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/backup/bup/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/backup/bupstash/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/backup/diskrsync/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/backup/duplicati/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/backup/duplicity/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/backup/duply/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/backup/gamerbackup/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/backup/monolith/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/backup/rdedup/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/restic/0001-Skip-testing-restore-with-permission-failure.patch25
-rw-r--r--nixpkgs/pkgs/tools/backup/restic/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/backup/rsbep/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/backup/sanoid/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/store-backup/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/backup/wal-g/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/backup/zrepl/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/blueman/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch25
-rw-r--r--nixpkgs/pkgs/tools/bootloaders/refind/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/bchunk/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/cdi2iso/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/cue2pops/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/uif2iso/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/compression/bzip2/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/compression/dejsonlz4/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/dtrx/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/compression/hacpack/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/compression/hactool/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/compression/lrzip/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/compression/ncompress/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/compression/ncompress/makefile.patch12
-rw-r--r--nixpkgs/pkgs/tools/compression/pbzx/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/pixz/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/pxz/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/xar/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/zdelta/builder.sh8
-rw-r--r--nixpkgs/pkgs/tools/compression/zdelta/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/compression/zstd/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch13
-rw-r--r--nixpkgs/pkgs/tools/compression/zstd/playtests-darwin.patch18
-rw-r--r--nixpkgs/pkgs/tools/filesystems/apfs-fuse/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bindfs/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/catcli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ceph/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/filesystems/cryfs/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/filesystems/e2tools/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/filesystems/fuse-7z-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/fwanalyzer/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/idsk/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/filesystems/irods/common.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/irods/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/mtdutils/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/filesystems/reiser4progs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/rmfuse/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/filesystems/rmfuse/poetry-git-overlay.nix14
-rw-r--r--nixpkgs/pkgs/tools/filesystems/rmfuse/poetry.lock548
-rw-r--r--nixpkgs/pkgs/tools/filesystems/rmfuse/pyproject.toml15
-rwxr-xr-xnixpkgs/pkgs/tools/filesystems/rmfuse/update5
-rw-r--r--nixpkgs/pkgs/tools/filesystems/rmount/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/filesystems/s3backer/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/s3fs/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/filesystems/sasquatch/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/filesystems/smbnetfs/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/squashfs/0001-Mksquashfs-add-no-hardlinks-option.patch76
-rw-r--r--nixpkgs/pkgs/tools/filesystems/squashfs/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix61
-rw-r--r--nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix74
-rw-r--r--nixpkgs/pkgs/tools/filesystems/sshfs-fuse/fix-fuse-darwin-h.patch14
-rw-r--r--nixpkgs/pkgs/tools/filesystems/supertag/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/filesystems/unionfs-fuse/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/filesystems/xfsprogs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/xtreemfs/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/games/ajour/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/asymptote/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/blockhash/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/diagrams-builder/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/dmtx-utils/default.nix51
-rw-r--r--nixpkgs/pkgs/tools/graphics/dmtx-utils/default.upstream4
-rw-r--r--nixpkgs/pkgs/tools/graphics/epstool/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/graphics/escrotum/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/fgallery/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/graphics/gifski/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/gmic/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/graphviz/base.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/icoutils/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/graphics/imgurbash2/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/ldgallery/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/lprof/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/graphics/lprof/keep-environment.patch16
-rw-r--r--nixpkgs/pkgs/tools/graphics/lprof/lcms-1.17.patch13
-rw-r--r--nixpkgs/pkgs/tools/graphics/nip2/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/pdfread/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/graphics/pfstools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/pngcrush/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/resvg/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/structure-synth/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/welkin/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/graphics/zbar/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/anthy/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/evscript/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx/unwrapped.nix9
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-mozc.nix13
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/with-addons.nix2
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/hime/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/lisgd/default.nix49
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/tegaki-zinnia-japanese/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/0x0/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/3mux/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/abduco/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/agedu/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/anystyle-cli/Gemfile37
-rw-r--r--nixpkgs/pkgs/tools/misc/anystyle-cli/Gemfile.lock99
-rw-r--r--nixpkgs/pkgs/tools/misc/anystyle-cli/anystyle.gemspec52
-rw-r--r--nixpkgs/pkgs/tools/misc/anystyle-cli/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/misc/anystyle-cli/gemset.nix1570
-rw-r--r--nixpkgs/pkgs/tools/misc/apparix/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/arp-scan/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/aspcud/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/bash_unit/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/bat-extras/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/bat/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/bbe/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/bc/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/bcunit/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/bdf2psf/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/betterdiscord-installer/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/misc/betterdiscordctl/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/blflash/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/misc/bmap-tools/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/boltbrowser/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/misc/broadlink-cli/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/byobu/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/calamares/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/capture/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/chafa/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/cicero-tui/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/misc/clickclack/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/misc/cloc/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/cloud-utils/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/code-minimap/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/convbin/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/convfont/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/convimg/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/coreutils/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/cutecom/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/czkawka/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/misc/ddcutil/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/ddcutil/nixos-paths.diff32
-rw-r--r--nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/diffoscope/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/digitemp/default.nix53
-rw-r--r--nixpkgs/pkgs/tools/misc/dijo/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/direnv/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/disfetch/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/disper/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/dua/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/duf/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/empty/0.6-Makefile.patch13
-rw-r--r--nixpkgs/pkgs/tools/misc/empty/default.nix46
-rw-r--r--nixpkgs/pkgs/tools/misc/ent/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/entr/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/exa/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/misc/execline/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/expect/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/fdtools/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/fend/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/fet-sh/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/flameshot/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fluent-bit/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/fontfor/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/misc/fontforge/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/misc/fselect/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/fwup/default.nix65
-rw-r--r--nixpkgs/pkgs/tools/misc/fzf/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/misc/gammy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/gams/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/git-fire/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/git-town/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/github-backup/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/graylog/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/graylog/plugins.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/grc/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/misc/grex/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/grit/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/grub/2.0x.nix34
-rw-r--r--nixpkgs/pkgs/tools/misc/gti/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/gtklp/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/misc/gtklp/patches/autoconf.patch23
-rw-r--r--nixpkgs/pkgs/tools/misc/gtklp/patches/mdv-fix-str-fmt.patch22
-rw-r--r--nixpkgs/pkgs/tools/misc/handlr/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/misc/hdf4/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/misc/hdf5/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/hdfjava/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/misc/hdfview/default.nix55
-rw-r--r--nixpkgs/pkgs/tools/misc/hidrd/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock10
-rw-r--r--nixpkgs/pkgs/tools/misc/html-proofer/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/i3minator/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/ix/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/jdiskreport/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/jdupes/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/kak-lsp/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/kargo/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/keychain/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/krapslog/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/misc/lazydocker/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/lbdb/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/ldapvi/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/lf/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/libcpuid/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/librespeed-cli/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/lice/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/misc/lifecycled/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/logstash/6.x.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/logstash/7.x.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/lorri/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/misc/lsd/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/man-db/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/mbuffer/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/mc/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/mcfly/default.nix6
-rwxr-xr-xnixpkgs/pkgs/tools/misc/mcrypt/malloc_to_stdlib.patch2
-rw-r--r--nixpkgs/pkgs/tools/misc/megacli/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/microplane/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/microplane/deps.nix228
-rw-r--r--nixpkgs/pkgs/tools/misc/miniserve/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/ministat/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/mons/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/mons/xrandr.patch14
-rw-r--r--nixpkgs/pkgs/tools/misc/moreutils/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/mslink/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/misc/mysqltuner/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/neofetch/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/nix-direnv/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/nncp/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/misc/ocz-ssd-guru/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/opentsdb/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/oppai-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/os-prober/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ostree/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ovh-ttyrec/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/paperlike-go/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/parallel/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/misc/parallel/fix-max-line-length-allowed.diff17
-rw-r--r--nixpkgs/pkgs/tools/misc/parted/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/partition-manager/default.nix60
-rw-r--r--nixpkgs/pkgs/tools/misc/past-time/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/misc/pb_cli/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/pcb2gcode/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pdf-parser/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/pgcenter/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pistol/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/piston-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/pk2cmd/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/plowshare/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/polar/Gemfile7
-rw-r--r--nixpkgs/pkgs/tools/misc/polar/Gemfile.lock27
-rw-r--r--nixpkgs/pkgs/tools/misc/polar/default.nix73
-rw-r--r--nixpkgs/pkgs/tools/misc/polar/gemset.nix75
-rw-r--r--nixpkgs/pkgs/tools/misc/ponysay/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/poweralertd/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/misc/powerline-go/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/progress/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pspg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pubs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/pws/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/qmk/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/misc/quich/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/misc/remind/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/rlwrap/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/misc/rmtrash/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/rpi-imager/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/sacad/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/misc/savepagenow/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/misc/screen/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/sfeed/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/shelldap/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/silicon/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/skim/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/starship/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/swaglyrics/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/tab-rs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/tea/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/misc/tfk8s/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/tldr/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/tmux-cssh/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/tmux-xpanes/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/tmux/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/tmuxp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/topgrade/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/tremor-rs/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/misc/ttfautohint/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/tz/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/misc/uhubctl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/umlet/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/unclutter/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/units/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/upterm/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/urjtag/default.nix57
-rw-r--r--nixpkgs/pkgs/tools/misc/usbview/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix49
-rw-r--r--nixpkgs/pkgs/tools/misc/uwuify/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/vector/default.nix55
-rw-r--r--nixpkgs/pkgs/tools/misc/vimer/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/vimv/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/vorbisgain/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/vsh/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/vttest/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/xvfb-run/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/yad/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/yle-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ytfzf/default.nix51
-rw-r--r--nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch30
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-neo-manager/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-neo-manager/fix-pyside-requirement.diff17
-rw-r--r--nixpkgs/pkgs/tools/misc/z-lua/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/acme-client/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/aircrack-ng/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/airfield/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/altermime/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/networking/argus-clients/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/assh/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/networking/atftp/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/boundary/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/networking/bud/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/cadaver/configure.patch20
-rw-r--r--nixpkgs/pkgs/tools/networking/cadaver/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/carddav-util/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/cassowary/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/ccnet/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/chisel/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/clash/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/connect/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/connman/connman.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/croc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/dd-agent/5.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/ddclient/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/dhcp/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/dhcpcd/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/dhcping/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsmasq/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsperf/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsviz/default.nix51
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsviz/fix-path.patch18
-rw-r--r--nixpkgs/pkgs/tools/networking/dsniff/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/ferm/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/findomain/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/flvstreamer/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/frp/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/getmail/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/getmail6/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/gmvault/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/networking/gmvault/gmvault.py4
-rw-r--r--nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/gobgp/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/gping/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/gvpe/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/haproxy/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/httperf/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/httpie/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/httpstat/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/i2pd/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/kapp/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/networking/kea/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/keepalived/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/libreswan/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/linkchecker/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/lldpd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/lychee/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/networking/mailutils/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/maxscale/default.nix4
-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/miredo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/moodle-dl/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/networking/mosh/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/mu/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/networking/netboot/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/nfdump/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/oneshot/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/openfortivpn/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/openresolv/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix50
-rw-r--r--nixpkgs/pkgs/tools/networking/opensnitch/ui.nix46
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/common.nix122
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/copyid.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/default.nix184
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/ssh-keysign-8.4.patch (renamed from nixpkgs/pkgs/tools/networking/openssh/ssh-keysign.patch)0
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/ssh-keysign-8.5.patch24
-rw-r--r--nixpkgs/pkgs/tools/networking/openvpn/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/openvpn/update-systemd-resolved.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/amule/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/azureus/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/pcapfix/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/philter/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/pixiecore/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/pixiewps/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/pptp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/pritunl-ssh/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/privoxy/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/proxychains/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/networking/radvd/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/redir/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/ripmime/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/rshijack/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/s5cmd/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/networking/s6-networking/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/saldl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/networking/shorewall/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/slirp4netns/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/snabb/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/sniffglue/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/spoofer/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/stunnel/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/surfraw/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/swaks/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/swec/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix (renamed from nixpkgs/pkgs/tools/networking/cutter/default.nix)5
-rw-r--r--nixpkgs/pkgs/tools/networking/tcpflow/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/telepresence/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/tendermint/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/tgt/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/tox-node/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/unbound/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/networking/v2ray/default.nix16
-rwxr-xr-xnixpkgs/pkgs/tools/networking/v2ray/update.sh4
-rw-r--r--nixpkgs/pkgs/tools/networking/vpnc/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/vtun/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/wakeonlan/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/webwormhole/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/networking/wget/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/wget2/default.nix100
-rw-r--r--nixpkgs/pkgs/tools/networking/whois/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/wormhole-william/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/xh/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/networking/yggdrasil/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/ytcc/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/zap/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/networking/zerotierone/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/networking/zs-wait4host/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/package-management/appimagekit/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/package-management/appimagekit/nix.patch222
-rw-r--r--nixpkgs/pkgs/tools/package-management/apt/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-about/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/disnixos/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/dysnomia/default.nix71
-rw-r--r--nixpkgs/pkgs/tools/package-management/dpkg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/home-manager/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/libdnf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/licensee/Gemfile.lock22
-rw-r--r--nixpkgs/pkgs/tools/package-management/licensee/gemset.nix56
-rw-r--r--nixpkgs/pkgs/tools/package-management/nfpm/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-pin/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-prefetch-scripts/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/package-management/nixops/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/opkg/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/package-management/packagekit/qt.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/pacman/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/python2nix/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/package-management/rpm/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/aespipe/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/age/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/aide/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/apg/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/asc-key-to-qr-code-gif/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/bash-supergenpass/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/bettercap/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/bmrsa/11.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/brutespray/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/security/bundler-audit/Gemfile.lock6
-rw-r--r--nixpkgs/pkgs/tools/security/bundler-audit/gemset.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/chipsec/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/chkrootkit/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/security/chntpw/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/cipherscan/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/cosign/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/security/credslayer/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/security/crlfuzz/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/cryptomator/default.nix91
-rw-r--r--nixpkgs/pkgs/tools/security/doppler/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/ecryptfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/ecryptfs/helper.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/enpass/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/expliot/default.nix72
-rw-r--r--nixpkgs/pkgs/tools/security/fprintd/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/security/galer/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/security/gen-oath-safe/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/gencfsm/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/genpass/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/ghidra/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/gitjacker/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/gitleaks/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/git-credential.nix41
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/jsonapi.nix42
-rw-r--r--nixpkgs/pkgs/tools/security/grype/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/security/hash-slinger/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/hashcat-utils/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/hashcat/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/hashdeep/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/security/hcxtools/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/honggfuzz/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/ipscan/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/security/john/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/jwt-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/kbs2/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/knockpy/default.nix40
-rw-r--r--nixpkgs/pkgs/tools/security/kpcli/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/security/kwalletcli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/ldeep/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/libtpms/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/security/masscan/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock97
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/gemset.nix158
-rw-r--r--nixpkgs/pkgs/tools/security/nmap-unfree/default.nix65
-rw-r--r--nixpkgs/pkgs/tools/security/nosqli/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/security/nuclei/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/security/open-ecard/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/pass/extensions/import.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/pass/rofi-pass.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/passphrase2pgp/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/security/pcsc-scm-scl011/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/pcsclite/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/security/pdfcrack/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/pinentry/mac.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/proxmark3/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/proxmark3/proxmark3-rrg.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/prs/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/security/pwncat/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/security/rage/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/rarcrack/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/security/rbw/bump-security-framework-crate.patch19
-rw-r--r--nixpkgs/pkgs/tools/security/rbw/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/security/rekor/default.nix51
-rw-r--r--nixpkgs/pkgs/tools/security/rhash/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/saml2aws/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/secretscanner/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/security/shc/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/shhgit/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/security/sipvicious/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/security/slowhttptest/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/security/sn0int/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/sonar-scanner-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/sops/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/ssb/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/security/ssh-audit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/ssh-to-pgp/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/sshguard/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/sslscan/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/security/steghide/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc34.patch42
-rw-r--r--nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc4.patch46
-rw-r--r--nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc43.patch349
-rw-r--r--nixpkgs/pkgs/tools/security/stricat/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/sudo/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/security/swtpm/default.nix76
-rw-r--r--nixpkgs/pkgs/tools/security/swtpm/python-installation.patch60
-rw-r--r--nixpkgs/pkgs/tools/security/teler/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/security/terrascan/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/thc-hydra/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/theharvester/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/tor/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/tpm2-tools/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/uddup/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/security/vault/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/vault/vault-bin.nix14
-rw-r--r--nixpkgs/pkgs/tools/security/wafw00f/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/security/wapiti/default.nix106
-rw-r--r--nixpkgs/pkgs/tools/security/wipe/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/xcat/default.nix50
-rw-r--r--nixpkgs/pkgs/tools/security/yara/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/security/zdns/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/security/zgrab2/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/security/zsteg/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/security/zsteg/Gemfile.lock19
-rw-r--r--nixpkgs/pkgs/tools/security/zsteg/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/security/zsteg/gemset.nix44
-rw-r--r--nixpkgs/pkgs/tools/system/auto-cpufreq/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch38
-rw-r--r--nixpkgs/pkgs/tools/system/bfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/bpytop/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/clinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/consul-template/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/daemon/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/evemu/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/system/fio/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/system/freeipmi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/gdu/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/system/gptfdisk/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/system/gt5/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/honcho/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/system/htop/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/system/inxi/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/system/ipmitool/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/system/loadwatch/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/logrotate/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/system/monit/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/nats-top/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/system/natscli/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/system/netdata/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/system/nkeys/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/system/nq/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/pciutils/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/system/rocm-smi/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/system/rofi-systemd/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/s6/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/safe-rm/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/system/sleuthkit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/smartmontools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/snooze/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/stress-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/stressapptest/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/system/syslog-ng-incubator/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/thermald/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/system/tre-command/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/uptimed/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/system/uroboros/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/system/vboot_reference/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/asciigraph/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/boxes/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/cconv/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/text/csvkit/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/text/dadadodo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/dfmt/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/text/dirdiff/default.nix59
-rw-r--r--nixpkgs/pkgs/tools/text/dirdiff/dirdiff-2.1-vars.patch32
-rw-r--r--nixpkgs/pkgs/tools/text/dos2unix/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/fanficfare/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/frangipanni/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/text/fst/0001-cargo-lockfile.patch935
-rw-r--r--nixpkgs/pkgs/tools/text/fst/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/text/gpt2tc/0001-add-python-shebang.patch10
-rw-r--r--nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch11
-rw-r--r--nixpkgs/pkgs/tools/text/gpt2tc/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/text/html-tidy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/icdiff/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/text/jsawk/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/kramdown-rfc2629/Gemfile.lock4
-rw-r--r--nixpkgs/pkgs/tools/text/kramdown-rfc2629/gemset.nix16
-rw-r--r--nixpkgs/pkgs/tools/text/l2md/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/text/ledger2beancount/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/text/m2r/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/text/mark/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/markdown-pp/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/miller/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/mpage/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/nawk/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/text/numdiff/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/podiff/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/text/poedit/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/popfile/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/reckon/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/ripgrep/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/text/rst2html5/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/shfmt/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/silver-searcher/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/snippetpixie/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/source-highlight/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/tab/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/ugrep/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/uni2ascii/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/unoconv/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/unrtf/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/text/vale/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/text/wdiff/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/xml/basex/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/xml/xmldiff/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/text/yaml-merge/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/zimreader/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/text/zimwriterfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/zstxtns-utils/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoc/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock98
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix173
-rw-r--r--nixpkgs/pkgs/tools/typesetting/biblatex-check/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/typesetting/docbook2odf/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/fop/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/typesetting/kindlegen/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/typesetting/kramdown-asciidoc/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/typesetting/lowdown/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/multimarkdown/default.nix64
-rw-r--r--nixpkgs/pkgs/tools/typesetting/pdfsandwich/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/scdoc/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/typesetting/sile/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/sshlatex/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tectonic/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/typesetting/ted/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/lkproof/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/pgfplots/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix11
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix3
-rw-r--r--nixpkgs/pkgs/tools/video/bento4/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/video/gopro/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/video/harvid/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/video/play-with-mpv/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/video/rav1e/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/video/vcsi/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/video/xjadeo/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/video/yamdi/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/virtualization/aws/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/virtualization/awsebcli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/virtualization/cri-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/virtualization/ec2-ami-tools/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/virtualization/ec2-api-tools/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/virtualization/ec2instanceconnectcli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix7
-rwxr-xr-xnixpkgs/pkgs/tools/virtualization/nixos-container/nixos-container.pl4
-rw-r--r--nixpkgs/pkgs/tools/virtualization/nixos-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/virtualization/shipyard/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/virtualization/xva-img/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/wayland/clipman/default.nix (renamed from nixpkgs/pkgs/tools/misc/clipman/default.nix)11
-rw-r--r--nixpkgs/pkgs/tools/wayland/kanshi/default.nix (renamed from nixpkgs/pkgs/tools/misc/kanshi/default.nix)13
-rw-r--r--nixpkgs/pkgs/tools/wayland/oguri/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/wayland/slurp/default.nix (renamed from nixpkgs/pkgs/tools/misc/slurp/default.nix)14
-rw-r--r--nixpkgs/pkgs/tools/wayland/swaycwd/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/wayland/swaykbdd/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/wayland/wev/default.nix (renamed from nixpkgs/pkgs/tools/misc/wev/default.nix)23
-rw-r--r--nixpkgs/pkgs/tools/wayland/wl-clipboard/default.nix (renamed from nixpkgs/pkgs/tools/misc/wl-clipboard/default.nix)16
-rw-r--r--nixpkgs/pkgs/tools/wayland/wlogout/default.nix54
-rw-r--r--nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix (renamed from nixpkgs/pkgs/tools/misc/wlr-randr/default.nix)14
-rw-r--r--nixpkgs/pkgs/tools/wayland/wlsunset/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/wayland/wob/default.nix (renamed from nixpkgs/pkgs/tools/misc/wob/default.nix)17
-rw-r--r--nixpkgs/pkgs/tools/wayland/wshowkeys/default.nix10
-rw-r--r--nixpkgs/pkgs/top-level/aliases.nix150
-rw-r--r--nixpkgs/pkgs/top-level/all-packages.nix2038
-rw-r--r--nixpkgs/pkgs/top-level/coq-packages.nix2
-rw-r--r--nixpkgs/pkgs/top-level/darwin-packages.nix2
-rw-r--r--nixpkgs/pkgs/top-level/dotnet-packages.nix2
-rw-r--r--nixpkgs/pkgs/top-level/emacs-packages.nix83
-rw-r--r--nixpkgs/pkgs/top-level/gnuradio-packages.nix48
-rw-r--r--nixpkgs/pkgs/top-level/haskell-packages.nix101
-rw-r--r--nixpkgs/pkgs/top-level/kodi-packages.nix127
-rw-r--r--nixpkgs/pkgs/top-level/lua-packages.nix2
-rw-r--r--nixpkgs/pkgs/top-level/metrics.nix3
-rw-r--r--nixpkgs/pkgs/top-level/ocaml-packages.nix104
-rw-r--r--nixpkgs/pkgs/top-level/octave-packages.nix220
-rw-r--r--nixpkgs/pkgs/top-level/packages-config.nix1
-rw-r--r--nixpkgs/pkgs/top-level/perl-packages.nix388
-rw-r--r--nixpkgs/pkgs/top-level/php-packages.nix56
-rw-r--r--nixpkgs/pkgs/top-level/python-packages.nix1176
-rw-r--r--nixpkgs/pkgs/top-level/qt5-packages.nix8
-rw-r--r--nixpkgs/pkgs/top-level/release-small.nix2
-rw-r--r--nixpkgs/pkgs/top-level/ruby-packages.nix4
-rw-r--r--nixpkgs/pkgs/top-level/static.nix32
-rw-r--r--nixpkgs/pkgs/top-level/wine-packages.nix1
-rw-r--r--overlays/patches/gh/Support-reading-auth-token-from-file-descriptor.patch11
6522 files changed, 164029 insertions, 69764 deletions
diff --git a/nixpkgs/.github/CODEOWNERS b/nixpkgs/.github/CODEOWNERS
index 7d0681a720c5..b15d89219f43 100644
--- a/nixpkgs/.github/CODEOWNERS
+++ b/nixpkgs/.github/CODEOWNERS
@@ -79,11 +79,11 @@
 /pkgs/development/tools/poetry2nix @adisbladis
 
 # Haskell
-/pkgs/development/compilers/ghc                       @cdepillabout
-/pkgs/development/haskell-modules		      @cdepillabout
-/pkgs/development/haskell-modules/default.nix	      @cdepillabout
-/pkgs/development/haskell-modules/generic-builder.nix @cdepillabout
-/pkgs/development/haskell-modules/hoogle.nix	      @cdepillabout
+/pkgs/development/compilers/ghc                       @cdepillabout @sternenseemann
+/pkgs/development/haskell-modules		      @cdepillabout @sternenseemann
+/pkgs/development/haskell-modules/default.nix	      @cdepillabout @sternenseemann
+/pkgs/development/haskell-modules/generic-builder.nix @cdepillabout @sternenseemann
+/pkgs/development/haskell-modules/hoogle.nix	      @cdepillabout @sternenseemann
 
 # Perl
 /pkgs/development/interpreters/perl @volth @stigtsp
@@ -95,12 +95,12 @@
 /pkgs/development/r-modules         @peti
 
 # Ruby
-/pkgs/development/interpreters/ruby @alyssais
-/pkgs/development/ruby-modules      @alyssais
+/pkgs/development/interpreters/ruby @marsam
+/pkgs/development/ruby-modules      @marsam
 
 # Rust
 /pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
-/pkgs/build-support/rust @andir @zowoq
+/pkgs/build-support/rust @andir @danieldk @zowoq
 
 # Darwin-related
 /pkgs/stdenv/darwin         @NixOS/darwin-maintainers
@@ -139,7 +139,7 @@
 /pkgs/development/libraries/qt-5 @ttuegel
 
 # PostgreSQL and related stuff
-/pkgs/servers/sql/postgresql @thoughtpolice
+/pkgs/servers/sql/postgresql @thoughtpolice @marsam
 /nixos/modules/services/databases/postgresql.xml @thoughtpolice
 /nixos/modules/services/databases/postgresql.nix @thoughtpolice
 /nixos/tests/postgresql.nix @thoughtpolice
diff --git a/nixpkgs/.github/labeler.yml b/nixpkgs/.github/labeler.yml
new file mode 100644
index 000000000000..77422234ab3d
--- /dev/null
+++ b/nixpkgs/.github/labeler.yml
@@ -0,0 +1,147 @@
+"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
+
+"6.topic: cinnamon":
+  - pkgs/desktops/cinnamon/**/*
+
+"6.topic: emacs":
+  - nixos/modules/services/editors/emacs.nix
+  - nixos/modules/services/editors/emacs.xml
+  - nixos/tests/emacs-daemon.nix
+  - pkgs/applications/editors/emacs-modes/**/*
+  - pkgs/applications/editors/emacs/**/*
+  - pkgs/build-support/emacs/**/*
+  - pkgs/top-level/emacs-packages.nix
+
+"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
+
+"6.topic: fetch":
+  - pkgs/build-support/fetch*/**/*
+
+"6.topic: GNOME":
+  - doc/languages-frameworks/gnome.section.md
+  - nixos/modules/services/desktops/gnome3/**/*
+  - nixos/modules/services/x11/desktop-managers/gnome3.nix
+  - nixos/tests/gnome3-xorg.nix
+  - nixos/tests/gnome3.nix
+  - pkgs/desktops/gnome-3/**/*
+
+"6.topic: golang":
+  - doc/languages-frameworks/go.section.md
+  - pkgs/development/compilers/go/**/*
+  - pkgs/development/go-modules/**/*
+  - pkgs/development/go-packages/**/*
+
+"6.topic: haskell":
+  - doc/languages-frameworks/haskell.section.md
+  - pkgs/development/compilers/ghc/**/*
+  - pkgs/development/haskell-modules/**/*
+  - pkgs/development/tools/haskell/**/*
+  - pkgs/top-level/haskell-packages.nix
+
+"6.topic: kernel":
+  - pkgs/build-support/kernel/**/*
+  - pkgs/os-specific/linux/kernel/**/*
+
+"6.topic: lua":
+  - pkgs/development/interpreters/lua-5/**/*
+  - pkgs/development/interpreters/luajit/**/*
+  - pkgs/development/lua-modules/**/*
+  - pkgs/top-level/lua-packages.nix
+
+"6.topic: nixos":
+  - nixos/**/*
+
+"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
+
+"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/**/*
+
+"6.topic: policy discussion":
+  - .github/**/*
+
+"6.topic: printing":
+  - 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
+
+"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/**/*
+
+"6.topic: ruby":
+  - 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/**/*
+
+"6.topic: stdenv":
+  - pkgs/stdenv/**/*
+
+"6.topic: steam":
+  - pkgs/games/steam/**/*
+
+"6.topic: systemd":
+  - pkgs/os-specific/linux/systemd/**/*
+  - nixos/modules/system/boot/systemd*/**/*
+
+"6.topic: TeX":
+  - doc/languages-frameworks/texlive.section.md
+  - pkgs/tools/typesetting/tex/**/*
+
+"6.topic: vim":
+  - doc/languages-frameworks/vim.section.md
+  - pkgs/applications/editors/vim/**/*
+  - pkgs/misc/vim-plugins/**/*
+
+"6.topic: xfce":
+  - nixos/doc/manual/configuration/xfce.xml
+  - nixos/modules/services/x11/desktop-managers/xfce.nix
+  - nixos/tests/xfce.nix
+  - pkgs/desktops/xfce/**/*
+
+"8.has: changelog":
+  - nixos/doc/manual/release-notes/**/*
+
+"8.has: documentation":
+  - doc/**/*
+  - nixos/doc/**/*
+
+"8.has: module (update)":
+  - nixos/modules/**/*
diff --git a/nixpkgs/.github/workflows/editorconfig.yml b/nixpkgs/.github/workflows/editorconfig.yml
index 270728a61c6f..c20ed3ab768d 100644
--- a/nixpkgs/.github/workflows/editorconfig.yml
+++ b/nixpkgs/.github/workflows/editorconfig.yml
@@ -25,7 +25,7 @@ jobs:
     - name: Fetch editorconfig-checker
       if: env.PR_DIFF
       env:
-        ECC_VERSION: "2.3.1"
+        ECC_VERSION: "2.3.5"
         ECC_URL: "https://github.com/editorconfig-checker/editorconfig-checker/releases/download"
       run: |
         curl -sSf -O -L -C - "$ECC_URL/$ECC_VERSION/ec-linux-amd64.tar.gz" && \
diff --git a/nixpkgs/.github/workflows/labels.yml b/nixpkgs/.github/workflows/labels.yml
new file mode 100644
index 000000000000..4232ceb62368
--- /dev/null
+++ b/nixpkgs/.github/workflows/labels.yml
@@ -0,0 +1,15 @@
+name: "Label PR"
+
+on:
+  pull_request_target:
+    types: [edited, opened, synchronize, reopened]
+
+jobs:
+  labels:
+    runs-on: ubuntu-latest
+    if: github.repository_owner == 'NixOS'
+    steps:
+    - uses: actions/labeler@v3
+      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 a75e84029301..fa1f8fc6911e 100644
--- a/nixpkgs/.github/workflows/manual-nixos.yml
+++ b/nixpkgs/.github/workflows/manual-nixos.yml
@@ -15,11 +15,11 @@ jobs:
         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@v12
+      - uses: cachix/install-nix-action@v13
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
-      - uses: cachix/cachix-action@v8
+      - uses: cachix/cachix-action@v9
         with:
           # This cache is for the nixos/nixpkgs manual builds and should not be trusted or used elsewhere.
           name: nixpkgs-ci
diff --git a/nixpkgs/.github/workflows/manual-nixpkgs.yml b/nixpkgs/.github/workflows/manual-nixpkgs.yml
index 7596719d9b50..192a4c6868a4 100644
--- a/nixpkgs/.github/workflows/manual-nixpkgs.yml
+++ b/nixpkgs/.github/workflows/manual-nixpkgs.yml
@@ -15,11 +15,11 @@ jobs:
         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@v12
+      - uses: cachix/install-nix-action@v13
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
-      - uses: cachix/cachix-action@v8
+      - uses: cachix/cachix-action@v9
         with:
           # This cache is for the nixos/nixpkgs manual builds and should not be trusted or used elsewhere.
           name: nixpkgs-ci
diff --git a/nixpkgs/.github/workflows/rebase-staging.yml b/nixpkgs/.github/workflows/rebase-staging.yml
deleted file mode 100644
index 41b06f95668a..000000000000
--- a/nixpkgs/.github/workflows/rebase-staging.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-on:
-  issue_comment:
-    types:
-      - created
-
-# This action allows people with write access to the repo to rebase a PRs base branch from
-# master to staging by commenting `/rebase-staging` on the PR while avoiding CODEOWNER notifications.
-
-jobs:
-  rebase:
-    runs-on: ubuntu-latest
-    if: github.repository_owner == 'NixOS' && github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase-staging')
-    steps:
-      - uses: peter-evans/create-or-update-comment@v1
-        with:
-          comment-id: ${{ github.event.comment.id }}
-          reactions: eyes
-      - uses: scherermichael-oss/action-has-permission@1.0.6
-        id: check-write-access
-        with:
-          required-permission: write
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-      - name: check base branch is master
-        if: steps.check-write-access.outputs.has-permission
-        run: |
-          if [ "$(curl https://api.github.com/repos/NixOS/nixpkgs/pulls/${{ github.event.issue.number }} | jq -r '.base.ref')" != "master" ]; then
-            echo "This action only works when the current base branch is master."
-            exit 1
-          fi
-      - uses: actions/checkout@v2
-        with:
-          fetch-depth: 0
-        if: steps.check-write-access.outputs.has-permission
-      - name: rebase pull request
-        if: steps.check-write-access.outputs.has-permission
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          PULL_REQUEST: ${{ github.event.issue.number }}
-        run: |
-          git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
-          git config --global user.name "github-actions[bot]"
-          git fetch origin
-          gh pr checkout "$PULL_REQUEST"
-          git rebase \
-            --onto="$(git merge-base origin/master origin/staging)" \
-            "HEAD~$(git rev-list --count HEAD ^master)"
-          git push --force
-          curl \
-            -X POST \
-            -H "Accept: application/vnd.github.v3+json" \
-            -H "Authorization: token $GITHUB_TOKEN" \
-            -d '{ "base": "staging" }' \
-            "https://api.github.com/repos/NixOS/nixpkgs/pulls/$PULL_REQUEST"
-      - uses: peter-evans/create-or-update-comment@v1
-        if: ${{ failure() }}
-        with:
-          issue-number: ${{ github.event.issue.number }}
-          body: |
-            [Failed to rebase on `staging`](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }})
diff --git a/nixpkgs/.github/workflows/rebase.yml b/nixpkgs/.github/workflows/rebase.yml
new file mode 100644
index 000000000000..50d066dd754f
--- /dev/null
+++ b/nixpkgs/.github/workflows/rebase.yml
@@ -0,0 +1,134 @@
+on:
+  issue_comment:
+    types:
+      - created
+
+# This action allows people with write access to the repo to rebase a PRs base branch
+# by commenting `/rebase ${branch}` on the PR while avoiding CODEOWNER notifications.
+
+jobs:
+  rebase:
+    runs-on: ubuntu-latest
+    if: github.repository_owner == 'NixOS' && github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase')
+    steps:
+      - uses: peter-evans/create-or-update-comment@v1
+        with:
+          comment-id: ${{ github.event.comment.id }}
+          reactions: eyes
+      - uses: scherermichael-oss/action-has-permission@1.0.6
+        id: check-write-access
+        with:
+          required-permission: write
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      - name: check permissions
+        run: |
+          echo "Commenter doesn't have write access to the repo"
+          exit 1
+        if: "! steps.check-write-access.outputs.has-permission"
+      - name: setup
+        run: |
+          curl "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.issue.number }}" 2>/dev/null >pr.json
+          cat <<EOF >>"$GITHUB_ENV"
+          CAN_MODIFY=$(jq -r '.maintainer_can_modify' pr.json)
+          COMMITS=$(jq -r '.commits' pr.json)
+          CURRENT_BASE=$(jq -r '.base.ref' pr.json)
+          PR_BRANCH=$(jq -r '.head.ref' pr.json)
+          COMMENT_BRANCH=$(echo ${{ github.event.comment.body }} | awk "/^\/rebase / {print \$2}")
+          PULL_REQUEST=${{ github.event.issue.number }}
+          EOF
+          rm pr.json
+      - name: check branch
+        env:
+          PERMANENT_BRANCHES: "haskell-updates|master|nixos|nixpkgs|python-unstable|release|staging"
+          VALID_BRANCHES: "haskell-updates|master|python-unstable|release-20.09|staging|staging-20.09|staging-next"
+        run: |
+          message() {
+            cat <<EOF
+          Can't rebase $PR_BRANCH from $CURRENT_BASE onto $COMMENT_BRANCH (PR:$PULL_REQUEST COMMITS:$COMMITS)
+          EOF
+          }
+          if ! [[ "$COMMENT_BRANCH" =~ ^($VALID_BRANCHES)$ ]]; then
+            cat <<EOF
+          Check that the branch from the comment is valid:
+
+          $(message)
+
+          This action can only rebase onto these branches:
+
+          $VALID_BRANCHES
+
+          \`/rebase \${branch}\` must be at the start of the line
+          EOF
+            exit 1
+          fi
+          if [[ "$COMMENT_BRANCH" == "$CURRENT_BASE" ]]; then
+            cat <<EOF
+          Check that the branch from the comment isn't the current base branch:
+
+          $(message)
+          EOF
+            exit 1
+          fi
+          if [[ "$COMMENT_BRANCH" == "$PR_BRANCH" ]]; then
+            cat <<EOF
+          Check that the branch from the comment isn't the current branch:
+
+          $(message)
+          EOF
+            exit 1
+          fi
+          if [[ "$PR_BRANCH" =~ ^($PERMANENT_BRANCHES) ]]; then
+            cat <<EOF
+          Check that the PR branch isn't a permanent branch:
+
+          $(message)
+          EOF
+            exit 1
+          fi
+          if [[ "$CAN_MODIFY" != "true" ]]; then
+            cat <<EOF
+          Check that maintainers can edit the PR branch:
+
+          $(message)
+          EOF
+            exit 1
+          fi
+      - uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+      - name: rebase pull request
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        run: |
+          git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
+          git config --global user.name "github-actions[bot]"
+          git fetch origin
+          gh pr checkout "$PULL_REQUEST"
+          git rebase \
+            --onto="$(git merge-base origin/"$CURRENT_BASE" origin/"$COMMENT_BRANCH")" \
+            "HEAD~$COMMITS"
+          git push --force
+          curl \
+            -X POST \
+            -H "Accept: application/vnd.github.v3+json" \
+            -H "Authorization: token $GITHUB_TOKEN" \
+            -d "{ \"base\": \"$COMMENT_BRANCH\" }" \
+            "https://api.github.com/repos/${{ github.repository }}/pulls/$PULL_REQUEST"
+          curl \
+            -X PATCH \
+            -H "Accept: application/vnd.github.v3+json" \
+            -H "Authorization: token $GITHUB_TOKEN" \
+            -d '{ "state": "closed" }' \
+            "https://api.github.com/repos/${{ github.repository }}/pulls/$PULL_REQUEST"
+      - uses: peter-evans/create-or-update-comment@v1
+        with:
+          issue-number: ${{ github.event.issue.number }}
+          body: |
+            Rebased, please reopen the pull request to restart CI
+      - uses: peter-evans/create-or-update-comment@v1
+        if: failure()
+        with:
+          issue-number: ${{ github.event.issue.number }}
+          body: |
+            [Failed to rebase](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})
diff --git a/nixpkgs/doc/Makefile b/nixpkgs/doc/Makefile
index 4f520779f5b2..7affbb0bb51c 100644
--- a/nixpkgs/doc/Makefile
+++ b/nixpkgs/doc/Makefile
@@ -1,4 +1,4 @@
-MD_TARGETS=$(addsuffix .xml, $(basename $(shell find . -type f -regex '.*\.md$$')))
+MD_TARGETS=$(addsuffix .xml, $(basename $(shell find . -type f -regex '.*\.md$$' -not -name README.md)))
 
 .PHONY: all
 all: validate format out/html/index.html out/epub/manual.epub
diff --git a/nixpkgs/doc/README.md b/nixpkgs/doc/README.md
new file mode 100644
index 000000000000..5395d7ca8f61
--- /dev/null
+++ b/nixpkgs/doc/README.md
@@ -0,0 +1,12 @@
+
+# Nixpkgs/doc
+
+This directory houses the sources files for the Nixpkgs manual.
+
+You can find the [rendered documentation for Nixpkgs `unstable` on nixos.org](https://nixos.org/manual/nixpkgs/unstable/).
+
+[Docs for Nixpkgs stable](https://nixos.org/manual/nixpkgs/stable/) are also available.
+
+If you want to contribute to the documentation, [here's how to do it](https://nixos.org/manual/nixpkgs/unstable/#chap-contributing).
+
+If you're only getting started with Nix, go to [nixos.org/learn](https://nixos.org/learn).
diff --git a/nixpkgs/doc/builders/fetchers.chapter.md b/nixpkgs/doc/builders/fetchers.chapter.md
index d4cab056c70b..c70e3020bbfa 100644
--- a/nixpkgs/doc/builders/fetchers.chapter.md
+++ b/nixpkgs/doc/builders/fetchers.chapter.md
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
 The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball.
 
-`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and and performs normalization on them before computing the checksum. For example it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.
+`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and performs normalization on them before computing the checksum. For example it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.
 
 
 Other fetcher functions allow you to add source code directly from a VCS such as subversion or git. These are mostly straightforward nambes based on the name of the command used with the VCS system. Because they give you a working repository, they act most like `fetchzip`.
@@ -31,6 +31,8 @@ Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `sha25
 
 Used with Git. Expects `url` to a Git repo, `rev`, and `sha256`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`.
 
+Additionally the following optional arguments can be given: `fetchSubmodules = true` makes `fetchgit` also fetch the submodules of a repository. If `deepClone` is set to true, the entire repository is cloned as opposing to just creating a shallow clone. `deepClone = true` also implies `leaveDotGit = true` which means that the `.git` directory of the clone won't be removed after checkout.
+
 ## `fetchfossil`
 
 Used with Fossil. Expects `url` to a Fossil archive, `rev`, and `sha256`.
@@ -49,6 +51,8 @@ A number of fetcher functions wrap part of `fetchurl` and `fetchzip`. They are m
 
 `fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `sha256` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but `sha256` is currently preferred.
 
+`fetchFromGitHub` uses `fetchzip` to download the source archive generated by GitHub for the specified revision. If `leaveDotGit`, `deepClone` or `fetchSubmodules` are set to `true`, `fetchFromGitHub` will use `fetchgit` instead. Refer to its section for documentation of these options.
+
 ## `fetchFromGitLab`
 
 This is used with GitLab repositories. The arguments expected are very similar to fetchFromGitHub above.
@@ -68,3 +72,7 @@ This is used with Savannah repositories. The arguments expected are very similar
 ## `fetchFromRepoOrCz`
 
 This is used with repo.or.cz repositories. The arguments expected are very similar to fetchFromGitHub above.
+
+## `fetchFromSourcehut`
+
+This is used with sourcehut repositories. The arguments expected are very similar to fetchFromGitHub above. Don't forget the tilde (~) in front of the user name!
diff --git a/nixpkgs/doc/builders/images.xml b/nixpkgs/doc/builders/images.xml
index 5e042a8ada80..d7d250291893 100644
--- a/nixpkgs/doc/builders/images.xml
+++ b/nixpkgs/doc/builders/images.xml
@@ -6,7 +6,7 @@
   This chapter describes tools for creating various types of images.
  </para>
  <xi:include href="images/appimagetools.xml" />
- <xi:include href="images/dockertools.xml" />
- <xi:include href="images/ocitools.xml" />
+ <xi:include href="images/dockertools.section.xml" />
+ <xi:include href="images/ocitools.section.xml" />
  <xi:include href="images/snaptools.xml" />
 </chapter>
diff --git a/nixpkgs/doc/builders/images/dockertools.section.md b/nixpkgs/doc/builders/images/dockertools.section.md
new file mode 100644
index 000000000000..2d21eb1c2e07
--- /dev/null
+++ b/nixpkgs/doc/builders/images/dockertools.section.md
@@ -0,0 +1,308 @@
+# pkgs.dockerTools {#sec-pkgs-dockerTools}
+
+`pkgs.dockerTools` is a set of functions for creating and manipulating Docker images according to the [ Docker Image Specification v1.2.0 ](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120). Docker itself is not used to perform any of the operations done by these functions.
+
+## buildImage {#ssec-pkgs-dockerTools-buildImage}
+
+This function is analogous to the `docker build` command, in that it can be used to build a Docker-compatible repository tarball containing a single image with one or multiple layers. As such, the result is suitable for being loaded in Docker with `docker load`.
+
+The parameters of `buildImage` with relative example values are described below:
+
+[]{#ex-dockerTools-buildImage}
+[]{#ex-dockerTools-buildImage-runAsRoot}
+
+```nix
+buildImage {
+  name = "redis";
+  tag = "latest";
+
+  fromImage = someBaseImage;
+  fromImageName = null;
+  fromImageTag = "latest";
+
+  contents = pkgs.redis;
+  runAsRoot = ''
+    #!${pkgs.runtimeShell}
+    mkdir -p /data
+  '';
+
+  config = {
+    Cmd = [ "/bin/redis-server" ];
+    WorkingDir = "/data";
+    Volumes = { "/data" = { }; };
+  };
+}
+```
+
+The above example will build a Docker image `redis/latest` from the given base image. Loading and running this image in Docker results in `redis-server` being started automatically.
+
+- `name` specifies the name of the resulting image. This is the only required argument for `buildImage`.
+
+- `tag` specifies the tag of the resulting image. By default it's `null`, which indicates that the nix output hash will be used as tag.
+
+- `fromImage` is the repository tarball containing the base image. It must be a valid Docker image, such as exported by `docker save`. By default it's `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`.
+
+- `fromImageName` can be used to further specify the base image within the repository, in case it contains multiple images. By default it's `null`, in which case `buildImage` will peek the first image available in the repository.
+
+- `fromImageTag` can be used to further specify the tag of the base image within the repository, in case an image contains multiple tags. By default it's `null`, in which case `buildImage` will peek the first tag available for the base image.
+
+- `contents` is a derivation that will be copied in the new layer of the resulting image. This can be similarly seen as `ADD contents/ /` in a `Dockerfile`. By default it's `null`.
+
+- `runAsRoot` is a bash script that will run as root in an environment that overlays the existing layers of the base image with the new resulting layer, including the previously copied `contents` derivation. This can be similarly seen as `RUN ...` in a `Dockerfile`.
+
+> **_NOTE:_** Using this parameter requires the `kvm` device to be available.
+
+- `config` is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the [ Docker Image Specification v1.2.0 ](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions).
+
+After the new layer has been created, its closure (to which `contents`, `config` and `runAsRoot` contribute) will be copied in the layer itself. Only new dependencies that are not already in the existing layers will be copied.
+
+At the end of the process, only one new single layer will be produced and added to the resulting image.
+
+The resulting repository will only list the single image `image/tag`. In the case of [the `buildImage` example](#ex-dockerTools-buildImage) it would be `redis/latest`.
+
+It is possible to inspect the arguments with which an image was built using its `buildArgs` attribute.
+
+> **_NOTE:_** If you see errors similar to `getProtocolByName: does not exist (no such protocol name: tcp)` you may need to add `pkgs.iana-etc` to `contents`.
+
+> **_NOTE:_** If you see errors similar to `Error_Protocol ("certificate has unknown CA",True,UnknownCa)` you may need to add `pkgs.cacert` to `contents`.
+
+By default `buildImage` will use a static date of one second past the UNIX Epoch. This allows `buildImage` to produce binary reproducible images. When listing images with `docker images`, the newly created images will be listed like this:
+
+```ShellSession
+$ docker images
+REPOSITORY   TAG      IMAGE ID       CREATED        SIZE
+hello        latest   08c791c7846e   48 years ago   25.2MB
+```
+
+You can break binary reproducibility but have a sorted, meaningful `CREATED` column by setting `created` to `now`.
+
+```nix
+pkgs.dockerTools.buildImage {
+  name = "hello";
+  tag = "latest";
+  created = "now";
+  contents = pkgs.hello;
+
+  config.Cmd = [ "/bin/hello" ];
+}
+```
+
+and now the Docker CLI will display a reasonable date and sort the images as expected:
+
+```ShellSession
+$ docker images
+REPOSITORY   TAG      IMAGE ID       CREATED              SIZE
+hello        latest   de2bf4786de6   About a minute ago   25.2MB
+```
+
+however, the produced images will not be binary reproducible.
+
+## buildLayeredImage {#ssec-pkgs-dockerTools-buildLayeredImage}
+
+Create a Docker image with many of the store paths being on their own layer to improve sharing between images. The image is realized into the Nix store as a gzipped tarball. Depending on the intended usage, many users might prefer to use `streamLayeredImage` instead, which this function uses internally.
+
+`name`
+
+: The name of the resulting image.
+
+`tag` _optional_
+
+: Tag of the generated image.
+
+    *Default:* the output path's hash
+
+`fromImage` _optional_
+
+: The repository tarball containing the base image. It must be a valid Docker image, such as one exported by `docker save`.
+
+    *Default:* `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`.
+
+`contents` _optional_
+
+: Top level paths in the container. Either a single derivation, or a list of derivations.
+
+    *Default:* `[]`
+
+`config` _optional_
+
+: Run-time configuration of the container. A full list of the options are available at in the [ Docker Image Specification v1.2.0 ](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions).
+
+    *Default:* `{}`
+
+`created` _optional_
+
+: Date and time the layers were created. Follows the same `now` exception supported by `buildImage`.
+
+    *Default:* `1970-01-01T00:00:01Z`
+
+`maxLayers` _optional_
+
+: Maximum number of layers to create.
+
+    *Default:* `100`
+
+    *Maximum:* `125`
+
+`extraCommands` _optional_
+
+: Shell commands to run while building the final layer, without access to most of the layer contents. Changes to this layer are "on top" of all the other layers, so can create additional directories and files.
+
+`fakeRootCommands` _optional_
+
+: Shell commands to run while creating the archive for the final layer in a fakeroot environment. Unlike `extraCommands`, you can run `chown` to change the owners of the files in the archive, changing fakeroot's state instead of the real filesystem. The latter would require privileges that the build user does not have. Static binaries do not interact with the fakeroot environment. By default all files in the archive will be owned by root.
+
+### Behavior of `contents` in the final image {#dockerTools-buildLayeredImage-arg-contents}
+
+Each path directly listed in `contents` will have a symlink in the root of the image.
+
+For example:
+
+```nix
+pkgs.dockerTools.buildLayeredImage {
+  name = "hello";
+  contents = [ pkgs.hello ];
+}
+```
+
+will create symlinks for all the paths in the `hello` package:
+
+```ShellSession
+/bin/hello -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/bin/hello
+/share/info/hello.info -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/info/hello.info
+/share/locale/bg/LC_MESSAGES/hello.mo -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/locale/bg/LC_MESSAGES/hello.mo
+```
+
+### Automatic inclusion of `config` references {#dockerTools-buildLayeredImage-arg-config}
+
+The closure of `config` is automatically included in the closure of the final image.
+
+This allows you to make very simple Docker images with very little code. This container will start up and run `hello`:
+
+```nix
+pkgs.dockerTools.buildLayeredImage {
+  name = "hello";
+  config.Cmd = [ "${pkgs.hello}/bin/hello" ];
+}
+```
+
+### Adjusting `maxLayers` {#dockerTools-buildLayeredImage-arg-maxLayers}
+
+Increasing the `maxLayers` increases the number of layers which have a chance to be shared between different images.
+
+Modern Docker installations support up to 128 layers, however older versions support as few as 42.
+
+If the produced image will not be extended by other Docker builds, it is safe to set `maxLayers` to `128`. However it will be impossible to extend the image further.
+
+The first (`maxLayers-2`) most "popular" paths will have their own individual layers, then layer \#`maxLayers-1` will contain all the remaining "unpopular" paths, and finally layer \#`maxLayers` will contain the Image configuration.
+
+Docker's Layers are not inherently ordered, they are content-addressable and are not explicitly layered until they are composed in to an Image.
+
+## streamLayeredImage {#ssec-pkgs-dockerTools-streamLayeredImage}
+
+Builds a script which, when run, will stream an uncompressed tarball of a Docker image to stdout. The arguments to this function are as for `buildLayeredImage`. This method of constructing an image does not realize the image into the Nix store, so it saves on IO and disk/cache space, particularly with large images.
+
+The image produced by running the output script can be piped directly into `docker load`, to load it into the local docker daemon:
+
+```ShellSession
+$(nix-build) | docker load
+```
+
+Alternatively, the image be piped via `gzip` into `skopeo`, e.g. to copy it into a registry:
+
+```ShellSession
+$(nix-build) | gzip --fast | skopeo copy docker-archive:/dev/stdin docker://some_docker_registry/myimage:tag
+```
+
+## pullImage {#ssec-pkgs-dockerTools-fetchFromRegistry}
+
+This function is analogous to the `docker pull` command, in that it can be used to pull a Docker image from a Docker registry. By default [Docker Hub](https://hub.docker.com/) is used to pull images.
+
+Its parameters are described in the example below:
+
+```nix
+pullImage {
+  imageName = "nixos/nix";
+  imageDigest =
+    "sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b";
+  finalImageName = "nix";
+  finalImageTag = "1.11";
+  sha256 = "0mqjy3zq2v6rrhizgb9nvhczl87lcfphq9601wcprdika2jz7qh8";
+  os = "linux";
+  arch = "x86_64";
+}
+```
+
+- `imageName` specifies the name of the image to be downloaded, which can also include the registry namespace (e.g. `nixos`). This argument is required.
+
+- `imageDigest` specifies the digest of the image to be downloaded. This argument is required.
+
+- `finalImageName`, if specified, this is the name of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's equal to `imageName`.
+
+- `finalImageTag`, if specified, this is the tag of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's `latest`.
+
+- `sha256` is the checksum of the whole fetched image. This argument is required.
+
+- `os`, if specified, is the operating system of the fetched image. By default it's `linux`.
+
+- `arch`, if specified, is the cpu architecture of the fetched image. By default it's `x86_64`.
+
+`nix-prefetch-docker` command can be used to get required image parameters:
+
+```ShellSession
+$ nix run nixpkgs.nix-prefetch-docker -c nix-prefetch-docker --image-name mysql --image-tag 5
+```
+
+Since a given `imageName` may transparently refer to a manifest list of images which support multiple architectures and/or operating systems, you can supply the `--os` and `--arch` arguments to specify exactly which image you want. By default it will match the OS and architecture of the host the command is run on.
+
+```ShellSession
+$ nix-prefetch-docker --image-name mysql --image-tag 5 --arch x86_64 --os linux
+```
+
+Desired image name and tag can be set using `--final-image-name` and `--final-image-tag` arguments:
+
+```ShellSession
+$ nix-prefetch-docker --image-name mysql --image-tag 5 --final-image-name eu.gcr.io/my-project/mysql --final-image-tag prod
+```
+
+## exportImage {#ssec-pkgs-dockerTools-exportImage}
+
+This function is analogous to the `docker export` command, in that it can be used to flatten a Docker image that contains multiple layers. It is in fact the result of the merge of all the layers of the image. As such, the result is suitable for being imported in Docker with `docker import`.
+
+> **_NOTE:_** Using this function requires the `kvm` device to be available.
+
+The parameters of `exportImage` are the following:
+
+```nix
+exportImage {
+  fromImage = someLayeredImage;
+  fromImageName = null;
+  fromImageTag = null;
+
+  name = someLayeredImage.name;
+}
+```
+
+The parameters relative to the base image have the same synopsis as described in [buildImage](#ssec-pkgs-dockerTools-buildImage), except that `fromImage` is the only required argument in this case.
+
+The `name` argument is the name of the derivation output, which defaults to `fromImage.name`.
+
+## shadowSetup {#ssec-pkgs-dockerTools-shadowSetup}
+
+This constant string is a helper for setting up the base files for managing users and groups, only if such files don't exist already. It is suitable for being used in a [`buildImage` `runAsRoot`](#ex-dockerTools-buildImage-runAsRoot) script for cases like in the example below:
+
+```nix
+buildImage {
+  name = "shadow-basic";
+
+  runAsRoot = ''
+    #!${pkgs.runtimeShell}
+    ${shadowSetup}
+    groupadd -r redis
+    useradd -r -g redis redis
+    mkdir /data
+    chown redis:redis /data
+  '';
+}
+```
+
+Creating base files like `/etc/passwd` or `/etc/login.defs` is necessary for shadow-utils to manipulate users and groups.
diff --git a/nixpkgs/doc/builders/images/dockertools.xml b/nixpkgs/doc/builders/images/dockertools.xml
deleted file mode 100644
index d881e712a041..000000000000
--- a/nixpkgs/doc/builders/images/dockertools.xml
+++ /dev/null
@@ -1,499 +0,0 @@
-<section xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         xml:id="sec-pkgs-dockerTools">
- <title>pkgs.dockerTools</title>
-
- <para>
-  <varname>pkgs.dockerTools</varname> is a set of functions for creating and manipulating Docker images according to the <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120"> Docker Image Specification v1.2.0 </link>. Docker itself is not used to perform any of the operations done by these functions.
- </para>
-
- <section xml:id="ssec-pkgs-dockerTools-buildImage">
-  <title>buildImage</title>
-
-  <para>
-   This function is analogous to the <command>docker build</command> command, in that it can be used to build a Docker-compatible repository tarball containing a single image with one or multiple layers. As such, the result is suitable for being loaded in Docker with <command>docker load</command>.
-  </para>
-
-  <para>
-   The parameters of <varname>buildImage</varname> with relative example values are described below:
-  </para>
-
-  <example xml:id='ex-dockerTools-buildImage'>
-   <title>Docker build</title>
-<programlisting>
-buildImage {
-  name = "redis"; <co xml:id='ex-dockerTools-buildImage-1' />
-  tag = "latest"; <co xml:id='ex-dockerTools-buildImage-2' />
-
-  fromImage = someBaseImage; <co xml:id='ex-dockerTools-buildImage-3' />
-  fromImageName = null; <co xml:id='ex-dockerTools-buildImage-4' />
-  fromImageTag = "latest"; <co xml:id='ex-dockerTools-buildImage-5' />
-
-  contents = pkgs.redis; <co xml:id='ex-dockerTools-buildImage-6' />
-  runAsRoot = '' <co xml:id='ex-dockerTools-buildImage-runAsRoot' />
-    #!${pkgs.runtimeShell}
-    mkdir -p /data
-  '';
-
-  config = { <co xml:id='ex-dockerTools-buildImage-8' />
-    Cmd = [ "/bin/redis-server" ];
-    WorkingDir = "/data";
-    Volumes = {
-      "/data" = {};
-    };
-  };
-}
-</programlisting>
-  </example>
-
-  <para>
-   The above example will build a Docker image <literal>redis/latest</literal> from the given base image. Loading and running this image in Docker results in <literal>redis-server</literal> being started automatically.
-  </para>
-
-  <calloutlist>
-   <callout arearefs='ex-dockerTools-buildImage-1'>
-    <para>
-     <varname>name</varname> specifies the name of the resulting image. This is the only required argument for <varname>buildImage</varname>.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-buildImage-2'>
-    <para>
-     <varname>tag</varname> specifies the tag of the resulting image. By default it's <literal>null</literal>, which indicates that the nix output hash will be used as tag.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-buildImage-3'>
-    <para>
-     <varname>fromImage</varname> is the repository tarball containing the base image. It must be a valid Docker image, such as exported by <command>docker save</command>. By default it's <literal>null</literal>, which can be seen as equivalent to <literal>FROM scratch</literal> of a <filename>Dockerfile</filename>.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-buildImage-4'>
-    <para>
-     <varname>fromImageName</varname> can be used to further specify the base image within the repository, in case it contains multiple images. By default it's <literal>null</literal>, in which case <varname>buildImage</varname> will peek the first image available in the repository.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-buildImage-5'>
-    <para>
-     <varname>fromImageTag</varname> can be used to further specify the tag of the base image within the repository, in case an image contains multiple tags. By default it's <literal>null</literal>, in which case <varname>buildImage</varname> will peek the first tag available for the base image.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-buildImage-6'>
-    <para>
-     <varname>contents</varname> is a derivation that will be copied in the new layer of the resulting image. This can be similarly seen as <command>ADD contents/ /</command> in a <filename>Dockerfile</filename>. By default it's <literal>null</literal>.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-buildImage-runAsRoot'>
-    <para>
-     <varname>runAsRoot</varname> is a bash script that will run as root in an environment that overlays the existing layers of the base image with the new resulting layer, including the previously copied <varname>contents</varname> derivation. This can be similarly seen as <command>RUN ...</command> in a <filename>Dockerfile</filename>.
-     <note>
-      <para>
-       Using this parameter requires the <literal>kvm</literal> device to be available.
-      </para>
-     </note>
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-buildImage-8'>
-    <para>
-     <varname>config</varname> is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions"> Docker Image Specification v1.2.0 </link>.
-    </para>
-   </callout>
-  </calloutlist>
-
-  <para>
-   After the new layer has been created, its closure (to which <varname>contents</varname>, <varname>config</varname> and <varname>runAsRoot</varname> contribute) will be copied in the layer itself. Only new dependencies that are not already in the existing layers will be copied.
-  </para>
-
-  <para>
-   At the end of the process, only one new single layer will be produced and added to the resulting image.
-  </para>
-
-  <para>
-   The resulting repository will only list the single image <varname>image/tag</varname>. In the case of <xref linkend='ex-dockerTools-buildImage'/> it would be <varname>redis/latest</varname>.
-  </para>
-
-  <para>
-   It is possible to inspect the arguments with which an image was built using its <varname>buildArgs</varname> attribute.
-  </para>
-
-  <note>
-   <para>
-    If you see errors similar to <literal>getProtocolByName: does not exist (no such protocol name: tcp)</literal> you may need to add <literal>pkgs.iana-etc</literal> to <varname>contents</varname>.
-   </para>
-  </note>
-
-  <note>
-   <para>
-    If you see errors similar to <literal>Error_Protocol ("certificate has unknown CA",True,UnknownCa)</literal> you may need to add <literal>pkgs.cacert</literal> to <varname>contents</varname>.
-   </para>
-  </note>
-
-  <example xml:id="example-pkgs-dockerTools-buildImage-creation-date">
-   <title>Impurely Defining a Docker Layer's Creation Date</title>
-   <para>
-    By default <function>buildImage</function> will use a static date of one second past the UNIX Epoch. This allows <function>buildImage</function> to produce binary reproducible images. When listing images with <command>docker images</command>, the newly created images will be listed like this:
-   </para>
-<screen>
-<prompt>$ </prompt>docker images
-REPOSITORY   TAG      IMAGE ID       CREATED        SIZE
-hello        latest   08c791c7846e   48 years ago   25.2MB
-</screen>
-   <para>
-    You can break binary reproducibility but have a sorted, meaningful <literal>CREATED</literal> column by setting <literal>created</literal> to <literal>now</literal>.
-   </para>
-<programlisting><![CDATA[
-pkgs.dockerTools.buildImage {
-  name = "hello";
-  tag = "latest";
-  created = "now";
-  contents = pkgs.hello;
-
-  config.Cmd = [ "/bin/hello" ];
-}
-]]></programlisting>
-   <para>
-    and now the Docker CLI will display a reasonable date and sort the images as expected:
-<screen>
-<prompt>$ </prompt>docker images
-REPOSITORY   TAG      IMAGE ID       CREATED              SIZE
-hello        latest   de2bf4786de6   About a minute ago   25.2MB
-</screen>
-    however, the produced images will not be binary reproducible.
-   </para>
-  </example>
- </section>
-
- <section xml:id="ssec-pkgs-dockerTools-buildLayeredImage">
-  <title>buildLayeredImage</title>
-
-  <para>
-   Create a Docker image with many of the store paths being on their own layer to improve sharing between images. The image is realized into the Nix store as a gzipped tarball. Depending on the intended usage, many users might prefer to use <function>streamLayeredImage</function> instead, which this function uses internally.
-  </para>
-
-  <variablelist>
-   <varlistentry>
-    <term>
-     <varname>name</varname>
-    </term>
-    <listitem>
-     <para>
-      The name of the resulting image.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>tag</varname> <emphasis>optional</emphasis>
-    </term>
-    <listitem>
-     <para>
-      Tag of the generated image.
-     </para>
-     <para>
-      <emphasis>Default:</emphasis> the output path's hash
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>contents</varname> <emphasis>optional</emphasis>
-    </term>
-    <listitem>
-     <para>
-      Top level paths in the container. Either a single derivation, or a list of derivations.
-     </para>
-     <para>
-      <emphasis>Default:</emphasis> <literal>[]</literal>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>config</varname> <emphasis>optional</emphasis>
-    </term>
-    <listitem>
-     <para>
-      Run-time configuration of the container. A full list of the options are available at in the <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions"> Docker Image Specification v1.2.0 </link>.
-     </para>
-     <para>
-      <emphasis>Default:</emphasis> <literal>{}</literal>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>created</varname> <emphasis>optional</emphasis>
-    </term>
-    <listitem>
-     <para>
-      Date and time the layers were created. Follows the same <literal>now</literal> exception supported by <literal>buildImage</literal>.
-     </para>
-     <para>
-      <emphasis>Default:</emphasis> <literal>1970-01-01T00:00:01Z</literal>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>maxLayers</varname> <emphasis>optional</emphasis>
-    </term>
-    <listitem>
-     <para>
-      Maximum number of layers to create.
-     </para>
-     <para>
-      <emphasis>Default:</emphasis> <literal>100</literal>
-     </para>
-     <para>
-      <emphasis>Maximum:</emphasis> <literal>125</literal>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>extraCommands</varname> <emphasis>optional</emphasis>
-    </term>
-    <listitem>
-     <para>
-      Shell commands to run while building the final layer, without access to most of the layer contents. Changes to this layer are "on top" of all the other layers, so can create additional directories and files.
-     </para>
-    </listitem>
-   </varlistentry>
-  </variablelist>
-
-  <section xml:id="dockerTools-buildLayeredImage-arg-contents">
-   <title>Behavior of <varname>contents</varname> in the final image</title>
-
-   <para>
-    Each path directly listed in <varname>contents</varname> will have a symlink in the root of the image.
-   </para>
-
-   <para>
-    For example:
-<programlisting><![CDATA[
-pkgs.dockerTools.buildLayeredImage {
-  name = "hello";
-  contents = [ pkgs.hello ];
-}
-]]></programlisting>
-    will create symlinks for all the paths in the <literal>hello</literal> package:
-<screen><![CDATA[
-/bin/hello -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/bin/hello
-/share/info/hello.info -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/info/hello.info
-/share/locale/bg/LC_MESSAGES/hello.mo -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/locale/bg/LC_MESSAGES/hello.mo
-]]></screen>
-   </para>
-  </section>
-
-  <section xml:id="dockerTools-buildLayeredImage-arg-config">
-   <title>Automatic inclusion of <varname>config</varname> references</title>
-
-   <para>
-    The closure of <varname>config</varname> is automatically included in the closure of the final image.
-   </para>
-
-   <para>
-    This allows you to make very simple Docker images with very little code. This container will start up and run <command>hello</command>:
-<programlisting><![CDATA[
-pkgs.dockerTools.buildLayeredImage {
-  name = "hello";
-  config.Cmd = [ "${pkgs.hello}/bin/hello" ];
-}
-]]></programlisting>
-   </para>
-  </section>
-
-  <section xml:id="dockerTools-buildLayeredImage-arg-maxLayers">
-   <title>Adjusting <varname>maxLayers</varname></title>
-
-   <para>
-    Increasing the <varname>maxLayers</varname> increases the number of layers which have a chance to be shared between different images.
-   </para>
-
-   <para>
-    Modern Docker installations support up to 128 layers, however older versions support as few as 42.
-   </para>
-
-   <para>
-    If the produced image will not be extended by other Docker builds, it is safe to set <varname>maxLayers</varname> to <literal>128</literal>. However it will be impossible to extend the image further.
-   </para>
-
-   <para>
-    The first (<literal>maxLayers-2</literal>) most "popular" paths will have their own individual layers, then layer #<literal>maxLayers-1</literal> will contain all the remaining "unpopular" paths, and finally layer #<literal>maxLayers</literal> will contain the Image configuration.
-   </para>
-
-   <para>
-    Docker's Layers are not inherently ordered, they are content-addressable and are not explicitly layered until they are composed in to an Image.
-   </para>
-  </section>
- </section>
-
- <section xml:id="ssec-pkgs-dockerTools-streamLayeredImage">
-  <title>streamLayeredImage</title>
-
-  <para>
-   Builds a script which, when run, will stream an uncompressed tarball of a Docker image to stdout. The arguments to this function are as for <function>buildLayeredImage</function>. This method of constructing an image does not realize the image into the Nix store, so it saves on IO and disk/cache space, particularly with large images.
-  </para>
-
-  <para>
-    The image produced by running the output script can be piped directly into <command>docker load</command>, to load it into the local docker daemon:
-    <screen><![CDATA[
-$(nix-build) | docker load
-    ]]></screen>
-  </para>
-  <para>
-    Alternatively, the image be piped via <command>gzip</command> into <command>skopeo</command>, e.g. to copy it into a registry:
-    <screen><![CDATA[
-$(nix-build) | gzip --fast | skopeo copy docker-archive:/dev/stdin docker://some_docker_registry/myimage:tag
-    ]]></screen>
-  </para>
- </section>
-
- <section xml:id="ssec-pkgs-dockerTools-fetchFromRegistry">
-  <title>pullImage</title>
-
-  <para>
-   This function is analogous to the <command>docker pull</command> command, in that it can be used to pull a Docker image from a Docker registry. By default <link xlink:href="https://hub.docker.com/">Docker Hub</link> is used to pull images.
-  </para>
-
-  <para>
-   Its parameters are described in the example below:
-  </para>
-
-  <example xml:id='ex-dockerTools-pullImage'>
-   <title>Docker pull</title>
-<programlisting>
-pullImage {
-  imageName = "nixos/nix"; <co xml:id='ex-dockerTools-pullImage-1' />
-  imageDigest = "sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b"; <co xml:id='ex-dockerTools-pullImage-2' />
-  finalImageName = "nix"; <co xml:id='ex-dockerTools-pullImage-3' />
-  finalImageTag = "1.11";  <co xml:id='ex-dockerTools-pullImage-4' />
-  sha256 = "0mqjy3zq2v6rrhizgb9nvhczl87lcfphq9601wcprdika2jz7qh8"; <co xml:id='ex-dockerTools-pullImage-5' />
-  os = "linux"; <co xml:id='ex-dockerTools-pullImage-6' />
-  arch = "x86_64"; <co xml:id='ex-dockerTools-pullImage-7' />
-}
-</programlisting>
-  </example>
-
-  <calloutlist>
-   <callout arearefs='ex-dockerTools-pullImage-1'>
-    <para>
-     <varname>imageName</varname> specifies the name of the image to be downloaded, which can also include the registry namespace (e.g. <literal>nixos</literal>). This argument is required.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-pullImage-2'>
-    <para>
-     <varname>imageDigest</varname> specifies the digest of the image to be downloaded. This argument is required.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-pullImage-3'>
-    <para>
-     <varname>finalImageName</varname>, if specified, this is the name of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's equal to <varname>imageName</varname>.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-pullImage-4'>
-    <para>
-     <varname>finalImageTag</varname>, if specified, this is the tag of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's <literal>latest</literal>.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-pullImage-5'>
-    <para>
-     <varname>sha256</varname> is the checksum of the whole fetched image. This argument is required.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-pullImage-6'>
-    <para>
-     <varname>os</varname>, if specified, is the operating system of the fetched image. By default it's <literal>linux</literal>.
-    </para>
-   </callout>
-   <callout arearefs='ex-dockerTools-pullImage-7'>
-    <para>
-     <varname>arch</varname>, if specified, is the cpu architecture of the fetched image. By default it's <literal>x86_64</literal>.
-    </para>
-   </callout>
-  </calloutlist>
-
-  <para>
-   <literal>nix-prefetch-docker</literal> command can be used to get required image parameters:
-<screen>
-<prompt>$ </prompt>nix run nixpkgs.nix-prefetch-docker -c nix-prefetch-docker --image-name mysql --image-tag 5
-</screen>
-   Since a given <varname>imageName</varname> may transparently refer to a manifest list of images which support multiple architectures and/or operating systems, you can supply the <option>--os</option> and <option>--arch</option> arguments to specify exactly which image you want. By default it will match the OS and architecture of the host the command is run on.
-<screen>
-<prompt>$ </prompt>nix-prefetch-docker --image-name mysql --image-tag 5 --arch x86_64 --os linux
-</screen>
-   Desired image name and tag can be set using <option>--final-image-name</option> and <option>--final-image-tag</option> arguments:
-<screen>
-<prompt>$ </prompt>nix-prefetch-docker --image-name mysql --image-tag 5 --final-image-name eu.gcr.io/my-project/mysql --final-image-tag prod
-</screen>
-  </para>
- </section>
-
- <section xml:id="ssec-pkgs-dockerTools-exportImage">
-  <title>exportImage</title>
-
-  <para>
-   This function is analogous to the <command>docker export</command> command, in that it can be used to flatten a Docker image that contains multiple layers. It is in fact the result of the merge of all the layers of the image. As such, the result is suitable for being imported in Docker with <command>docker import</command>.
-  </para>
-
-  <note>
-   <para>
-    Using this function requires the <literal>kvm</literal> device to be available.
-   </para>
-  </note>
-
-  <para>
-   The parameters of <varname>exportImage</varname> are the following:
-  </para>
-
-  <example xml:id='ex-dockerTools-exportImage'>
-   <title>Docker export</title>
-<programlisting>
-exportImage {
-  fromImage = someLayeredImage;
-  fromImageName = null;
-  fromImageTag = null;
-
-  name = someLayeredImage.name;
-}
-</programlisting>
-  </example>
-
-  <para>
-   The parameters relative to the base image have the same synopsis as described in <xref linkend='ssec-pkgs-dockerTools-buildImage'/>, except that <varname>fromImage</varname> is the only required argument in this case.
-  </para>
-
-  <para>
-   The <varname>name</varname> argument is the name of the derivation output, which defaults to <varname>fromImage.name</varname>.
-  </para>
- </section>
-
- <section xml:id="ssec-pkgs-dockerTools-shadowSetup">
-  <title>shadowSetup</title>
-
-  <para>
-   This constant string is a helper for setting up the base files for managing users and groups, only if such files don't exist already. It is suitable for being used in a <varname>runAsRoot</varname> <xref linkend='ex-dockerTools-buildImage-runAsRoot'/> script for cases like in the example below:
-  </para>
-
-  <example xml:id='ex-dockerTools-shadowSetup'>
-   <title>Shadow base files</title>
-<programlisting>
-buildImage {
-  name = "shadow-basic";
-
-  runAsRoot = ''
-    #!${pkgs.runtimeShell}
-    ${shadowSetup}
-    groupadd -r redis
-    useradd -r -g redis redis
-    mkdir /data
-    chown redis:redis /data
-  '';
-}
-</programlisting>
-  </example>
-
-  <para>
-   Creating base files like <literal>/etc/passwd</literal> or <literal>/etc/login.defs</literal> is necessary for shadow-utils to manipulate users and groups.
-  </para>
- </section>
-</section>
diff --git a/nixpkgs/doc/builders/images/ocitools.section.md b/nixpkgs/doc/builders/images/ocitools.section.md
new file mode 100644
index 000000000000..d3dee57ebac6
--- /dev/null
+++ b/nixpkgs/doc/builders/images/ocitools.section.md
@@ -0,0 +1,37 @@
+# pkgs.ociTools {#sec-pkgs-ociTools}
+
+`pkgs.ociTools` is a set of functions for creating containers according to the [OCI container specification v1.0.0](https://github.com/opencontainers/runtime-spec). Beyond that it makes no assumptions about the container runner you choose to use to run the created container.
+
+## buildContainer {#ssec-pkgs-ociTools-buildContainer}
+
+This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a `config.json` and a rootfs directory.The nix store of the container will contain all referenced dependencies of the given command.
+
+The parameters of `buildContainer` with an example value are described below:
+
+```nix
+buildContainer {
+  args = [
+    (with pkgs;
+      writeScript "run.sh" ''
+        #!${bash}/bin/bash
+        exec ${bash}/bin/bash
+      '').outPath
+  ];
+
+  mounts = {
+    "/data" = {
+      type = "none";
+      source = "/var/lib/mydata";
+      options = [ "bind" ];
+    };
+  };
+
+  readonly = false;
+}
+```
+
+- `args` specifies a set of arguments to run inside the container. This is the only required argument for `buildContainer`. All referenced packages inside the derivation will be made available inside the container
+
+- `mounts` specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs)
+
+- `readonly` makes the container\'s rootfs read-only if it is set to true. The default value is false `false`.
diff --git a/nixpkgs/doc/builders/images/ocitools.xml b/nixpkgs/doc/builders/images/ocitools.xml
deleted file mode 100644
index f26ed8644276..000000000000
--- a/nixpkgs/doc/builders/images/ocitools.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<section xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         xml:id="sec-pkgs-ociTools">
- <title>pkgs.ociTools</title>
-
- <para>
-  <varname>pkgs.ociTools</varname> is a set of functions for creating containers according to the <link xlink:href="https://github.com/opencontainers/runtime-spec">OCI container specification v1.0.0</link>. Beyond that it makes no assumptions about the container runner you choose to use to run the created container.
- </para>
-
- <section xml:id="ssec-pkgs-ociTools-buildContainer">
-  <title>buildContainer</title>
-
-  <para>
-   This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a <varname>config.json</varname> and a rootfs directory.The nix store of the container will contain all referenced dependencies of the given command.
-  </para>
-
-  <para>
-   The parameters of <varname>buildContainer</varname> with an example value are described below:
-  </para>
-
-  <example xml:id='ex-ociTools-buildContainer'>
-   <title>Build Container</title>
-<programlisting>
-buildContainer {
-  args = [ (with pkgs; writeScript "run.sh" ''
-    #!${bash}/bin/bash
-    exec ${bash}/bin/bash
-  '').outPath ]; <co xml:id='ex-ociTools-buildContainer-1' />
-
-  mounts = {
-    "/data" = {
-      type = "none";
-      source = "/var/lib/mydata";
-      options = [ "bind" ];
-    };
-  };<co xml:id='ex-ociTools-buildContainer-2' />
-
-  readonly = false; <co xml:id='ex-ociTools-buildContainer-3' />
-}
-</programlisting>
-   <calloutlist>
-    <callout arearefs='ex-ociTools-buildContainer-1'>
-     <para>
-      <varname>args</varname> specifies a set of arguments to run inside the container. This is the only required argument for <varname>buildContainer</varname>. All referenced packages inside the derivation will be made available inside the container
-     </para>
-    </callout>
-    <callout arearefs='ex-ociTools-buildContainer-2'>
-     <para>
-      <varname>mounts</varname> specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs)
-     </para>
-    </callout>
-    <callout arearefs='ex-ociTools-buildContainer-3'>
-     <para>
-      <varname>readonly</varname> makes the container's rootfs read-only if it is set to true. The default value is false <literal>false</literal>.
-     </para>
-    </callout>
-   </calloutlist>
-  </example>
- </section>
-</section>
diff --git a/nixpkgs/doc/builders/images/snaptools.xml b/nixpkgs/doc/builders/images/snaptools.xml
index 422fcfa37d88..bbe2e3f5e14c 100644
--- a/nixpkgs/doc/builders/images/snaptools.xml
+++ b/nixpkgs/doc/builders/images/snaptools.xml
@@ -16,7 +16,7 @@
   </para>
 
   <para>
-   The <parameter>base</parameter> should not be be specified, as <function>makeSnap</function> will force set it.
+   The <parameter>base</parameter> should not be specified, as <function>makeSnap</function> will force set it.
   </para>
 
   <para>
diff --git a/nixpkgs/doc/builders/packages/citrix.section.md b/nixpkgs/doc/builders/packages/citrix.section.md
new file mode 100644
index 000000000000..b25ecb0bdefc
--- /dev/null
+++ b/nixpkgs/doc/builders/packages/citrix.section.md
@@ -0,0 +1,32 @@
+# Citrix Workspace {#sec-citrix}
+
+The [Citrix Workspace App](https://www.citrix.com/products/workspace-app/) is a remote desktop viewer which provides access to [XenDesktop](https://www.citrix.com/products/xenapp-xendesktop/) installations.
+
+## Basic usage {#sec-citrix-base}
+
+The tarball archive needs to be downloaded manually as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store the package can be built and installed with Nix.
+
+## Citrix Selfservice {#sec-citrix-selfservice}
+
+The [selfservice](https://support.citrix.com/article/CTX200337) is an application managing Citrix desktops and applications. Please note that this feature only works with at least citrix_workspace_20_06_0 and later versions.
+
+In order to set this up, you first have to [download the `.cr` file from the Netscaler Gateway](https://its.uiowa.edu/support/article/102186). After that you can configure the `selfservice` like this:
+
+```ShellSession
+$ storebrowse -C ~/Downloads/receiverconfig.cr
+$ selfservice
+```
+
+## Custom certificates {#sec-citrix-custom-certs}
+
+The `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in [`$ICAROOT`](https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/), however this directory is a store path in `nixpkgs`. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`:
+
+```nix
+with import <nixpkgs> { config.allowUnfree = true; };
+let
+  extraCerts = [
+    ./custom-cert-1.pem
+    ./custom-cert-2.pem # ...
+  ];
+in citrix_workspace.override { inherit extraCerts; }
+```
diff --git a/nixpkgs/doc/builders/packages/citrix.xml b/nixpkgs/doc/builders/packages/citrix.xml
deleted file mode 100644
index 803eb2e4fc40..000000000000
--- a/nixpkgs/doc/builders/packages/citrix.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<section xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="sec-citrix">
- <title>Citrix Workspace</title>
-
- <para>
-  The <link xlink:href="https://www.citrix.com/products/workspace-app/">Citrix Workspace App</link> is a remote desktop viewer which provides access to <link xlink:href="https://www.citrix.com/products/xenapp-xendesktop/">XenDesktop</link> installations.
- </para>
-
- <section xml:id="sec-citrix-base">
-  <title>Basic usage</title>
-
-  <para>
-   The tarball archive needs to be downloaded manually as the license agreements of the vendor for <link xlink:href="https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html">Citrix Workspace</link> needs to be accepted first. Then run <command>nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz</command>. With the archive available in the store the package can be built and installed with Nix.
-  </para>
- </section>
-
- <section xml:id="sec-citrix-selfservice">
-  <title>Citrix Selfservice</title>
-  <para>
-   The <link xlink:href="https://support.citrix.com/article/CTX200337">selfservice</link> is an application managing Citrix desktops and applications. Please note that this feature only works with at least <package>citrix_workspace_20_06_0</package> and later versions.
-  </para>
-  <para>
-   In order to set this up, you first have to <link xlink:href="https://its.uiowa.edu/support/article/102186">download the <literal>.cr</literal> file from the Netscaler Gateway</link>. After that you can configure the <command>selfservice</command> like this:
-<screen>
-<prompt>$ </prompt>storebrowse -C ~/Downloads/receiverconfig.cr
-<prompt>$ </prompt>selfservice
-</screen>
-  </para>
- </section>
-
- <section xml:id="sec-citrix-custom-certs">
-  <title>Custom certificates</title>
-
-  <para>
-   The <literal>Citrix Workspace App</literal> in <literal>nixpkgs</literal> trusts several certificates <link xlink:href="https://curl.haxx.se/docs/caextract.html">from the Mozilla database</link> by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in <link xlink:href="https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/"><literal>$ICAROOT</literal></link>, however this directory is a store path in <literal>nixpkgs</literal>. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using <literal>symlinkJoin</literal>:
-<programlisting>
-<![CDATA[with import <nixpkgs> { config.allowUnfree = true; };
-let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in
-citrix_workspace.override {
-  inherit extraCerts;
-}]]>
-</programlisting>
-  </para>
- </section>
-</section>
diff --git a/nixpkgs/doc/builders/packages/eclipse.section.md b/nixpkgs/doc/builders/packages/eclipse.section.md
new file mode 100644
index 000000000000..faabb1884501
--- /dev/null
+++ b/nixpkgs/doc/builders/packages/eclipse.section.md
@@ -0,0 +1,64 @@
+# Eclipse {#sec-eclipse}
+
+The Nix expressions related to the Eclipse platform and IDE are in [`pkgs/applications/editors/eclipse`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/eclipse).
+
+Nixpkgs provides a number of packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages and multiple version are often available. It is possible to list available Eclipse packages by issuing the command:
+
+```ShellSession
+$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description
+```
+
+Once an Eclipse variant is installed it can be run using the `eclipse` command, as expected. From within Eclipse it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resemble a manually installed Eclipse.
+
+If you prefer to install plugins in a more declarative manner then Nixpkgs also offer a number of Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is a one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add
+
+```nix
+packageOverrides = pkgs: {
+  myEclipse = with pkgs.eclipses; eclipseWithPlugins {
+    eclipse = eclipse-platform;
+    jvmArgs = [ "-Xmx2048m" ];
+    plugins = [ plugins.color-theme ];
+  };
+}
+```
+
+to your Nixpkgs configuration (`~/.config/nixpkgs/config.nix`) and install it by running `nix-env -f '<nixpkgs>' -iA myEclipse` and afterward run Eclipse as usual. It is possible to find out which plugins are available for installation using `eclipseWithPlugins` by running
+
+```ShellSession
+$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description
+```
+
+If there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the `buildEclipseUpdateSite` and `buildEclipsePlugin` functions found in the `nixpkgs.eclipses.plugins` attribute set. Use the `buildEclipseUpdateSite` function to install a plugin distributed as an Eclipse update site. This function takes `{ name, src }` as argument where `src` indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available then the `buildEclipsePlugin` function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes an argument `{ name, srcFeature, srcPlugin }` where `srcFeature` and `srcPlugin` are the feature and plugin JARs, respectively.
+
+Expanding the previous example with two plugins using the above functions we have
+
+```nix
+packageOverrides = pkgs: {
+  myEclipse = with pkgs.eclipses; eclipseWithPlugins {
+    eclipse = eclipse-platform;
+    jvmArgs = [ "-Xmx2048m" ];
+    plugins = [
+      plugins.color-theme
+      (plugins.buildEclipsePlugin {
+        name = "myplugin1-1.0";
+        srcFeature = fetchurl {
+          url = "http://…/features/myplugin1.jar";
+          sha256 = "123…";
+        };
+        srcPlugin = fetchurl {
+          url = "http://…/plugins/myplugin1.jar";
+          sha256 = "123…";
+        };
+      });
+      (plugins.buildEclipseUpdateSite {
+        name = "myplugin2-1.0";
+        src = fetchurl {
+          stripRoot = false;
+          url = "http://…/myplugin2.zip";
+          sha256 = "123…";
+        };
+      });
+    ];
+  };
+}
+```
diff --git a/nixpkgs/doc/builders/packages/eclipse.xml b/nixpkgs/doc/builders/packages/eclipse.xml
deleted file mode 100644
index fc5094ed8f36..000000000000
--- a/nixpkgs/doc/builders/packages/eclipse.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<section xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="sec-eclipse">
- <title>Eclipse</title>
-
- <para>
-  The Nix expressions related to the Eclipse platform and IDE are in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/eclipse"><filename>pkgs/applications/editors/eclipse</filename></link>.
- </para>
-
- <para>
-  Nixpkgs provides a number of packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages and multiple version are often available. It is possible to list available Eclipse packages by issuing the command:
-<screen>
-<prompt>$ </prompt>nix-env -f '&lt;nixpkgs&gt;' -qaP -A eclipses --description
-</screen>
-  Once an Eclipse variant is installed it can be run using the <command>eclipse</command> command, as expected. From within Eclipse it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resemble a manually installed Eclipse.
- </para>
-
- <para>
-  If you prefer to install plugins in a more declarative manner then Nixpkgs also offer a number of Eclipse plugins that can be installed in an <emphasis>Eclipse environment</emphasis>. This type of environment is created using the function <varname>eclipseWithPlugins</varname> found inside the <varname>nixpkgs.eclipses</varname> attribute set. This function takes as argument <literal>{ eclipse, plugins ? [], jvmArgs ? [] }</literal> where <varname>eclipse</varname> is a one of the Eclipse packages described above, <varname>plugins</varname> is a list of plugin derivations, and <varname>jvmArgs</varname> is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add
-<screen>
-packageOverrides = pkgs: {
-  myEclipse = with pkgs.eclipses; eclipseWithPlugins {
-    eclipse = eclipse-platform;
-    jvmArgs = [ "-Xmx2048m" ];
-    plugins = [ plugins.color-theme ];
-  };
-}
-</screen>
-  to your Nixpkgs configuration (<filename>~/.config/nixpkgs/config.nix</filename>) and install it by running <command>nix-env -f '&lt;nixpkgs&gt;' -iA myEclipse</command> and afterward run Eclipse as usual. It is possible to find out which plugins are available for installation using <varname>eclipseWithPlugins</varname> by running
-<screen>
-<prompt>$ </prompt>nix-env -f '&lt;nixpkgs&gt;' -qaP -A eclipses.plugins --description
-</screen>
- </para>
-
- <para>
-  If there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the <varname>buildEclipseUpdateSite</varname> and <varname>buildEclipsePlugin</varname> functions found in the <varname>nixpkgs.eclipses.plugins</varname> attribute set. Use the <varname>buildEclipseUpdateSite</varname> function to install a plugin distributed as an Eclipse update site. This function takes <literal>{ name, src }</literal> as argument where <literal>src</literal> indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available then the <varname>buildEclipsePlugin</varname> function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes an argument <literal>{ name, srcFeature, srcPlugin }</literal> where <literal>srcFeature</literal> and <literal>srcPlugin</literal> are the feature and plugin JARs, respectively.
- </para>
-
- <para>
-  Expanding the previous example with two plugins using the above functions we have
-<screen>
-packageOverrides = pkgs: {
-  myEclipse = with pkgs.eclipses; eclipseWithPlugins {
-    eclipse = eclipse-platform;
-    jvmArgs = [ "-Xmx2048m" ];
-    plugins = [
-      plugins.color-theme
-      (plugins.buildEclipsePlugin {
-        name = "myplugin1-1.0";
-        srcFeature = fetchurl {
-          url = "http://…/features/myplugin1.jar";
-          sha256 = "123…";
-        };
-        srcPlugin = fetchurl {
-          url = "http://…/plugins/myplugin1.jar";
-          sha256 = "123…";
-        };
-      });
-      (plugins.buildEclipseUpdateSite {
-        name = "myplugin2-1.0";
-        src = fetchurl {
-          stripRoot = false;
-          url = "http://…/myplugin2.zip";
-          sha256 = "123…";
-        };
-      });
-    ];
-  };
-}
-</screen>
- </para>
-</section>
diff --git a/nixpkgs/doc/builders/packages/emacs.section.md b/nixpkgs/doc/builders/packages/emacs.section.md
index b4723a22bb1c..93a819bc79bf 100644
--- a/nixpkgs/doc/builders/packages/emacs.section.md
+++ b/nixpkgs/doc/builders/packages/emacs.section.md
@@ -36,7 +36,7 @@ You can install it like any other packages via `nix-env -iA myEmacs`. However, t
       ;; load some packages
 
       (use-package company
-        :bind ("&lt;C-tab&gt;" . company-complete)
+        :bind ("<C-tab>" . company-complete)
         :diminish company-mode
         :commands (company-mode global-company-mode)
         :defer 1
diff --git a/nixpkgs/doc/builders/packages/fuse.section.md b/nixpkgs/doc/builders/packages/fuse.section.md
new file mode 100644
index 000000000000..5603481115e7
--- /dev/null
+++ b/nixpkgs/doc/builders/packages/fuse.section.md
@@ -0,0 +1,19 @@
+# FUSE {#sec-fuse}
+
+Some packages rely on
+[FUSE](https://www.kernel.org/doc/html/latest/filesystems/fuse.html) to provide
+support for additional filesystems not supported by the kernel.
+
+In general, FUSE software are primarily developed for Linux but many of them can
+also run on macOS. Nixpkgs supports FUSE packages on macOS, but it requires
+[macFUSE](https://osxfuse.github.io) to be installed outside of Nix. macFUSE
+currently isn't packaged in Nixpkgs mainly because it includes a kernel
+extension, which isn't supported by Nix outside of NixOS.
+
+If a package fails to run on macOS with an error message similar to the
+following, it's a likely sign that you need to have macFUSE installed.
+
+    dyld: Library not loaded: /usr/local/lib/libfuse.2.dylib
+    Referenced from: /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs
+    Reason: image not found
+    [1]    92299 abort      /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs
diff --git a/nixpkgs/doc/builders/packages/ibus.section.md b/nixpkgs/doc/builders/packages/ibus.section.md
new file mode 100644
index 000000000000..2ce85467bb86
--- /dev/null
+++ b/nixpkgs/doc/builders/packages/ibus.section.md
@@ -0,0 +1,38 @@
+# ibus-engines.typing-booster {#sec-ibus-typing-booster}
+
+This package is an ibus-based completion method to speed up typing.
+
+## Activating the engine {#sec-ibus-typing-booster-activate}
+
+IBus needs to be configured accordingly to activate `typing-booster`. The configuration depends on the desktop manager in use. For detailed instructions, please refer to the [upstream docs](https://mike-fabian.github.io/ibus-typing-booster/documentation.html).
+
+On NixOS you need to explicitly enable `ibus` with given engines before customizing your desktop to use `typing-booster`. This can be achieved using the `ibus` module:
+
+```nix
+{ pkgs, ... }: {
+  i18n.inputMethod = {
+    enabled = "ibus";
+    ibus.engines = with pkgs.ibus-engines; [ typing-booster ];
+  };
+}
+```
+
+## Using custom hunspell dictionaries {#sec-ibus-typing-booster-customize-hunspell}
+
+The IBus engine is based on `hunspell` to support completion in many languages. By default the dictionaries `de-de`, `en-us`, `fr-moderne` `es-es`, `it-it`, `sv-se` and `sv-fi` are in use. To add another dictionary, the package can be overridden like this:
+
+```nix
+ibus-engines.typing-booster.override { langs = [ "de-at" "en-gb" ]; }
+```
+
+_Note: each language passed to `langs` must be an attribute name in `pkgs.hunspellDicts`._
+
+## Built-in emoji picker {#sec-ibus-typing-booster-emoji-picker}
+
+The `ibus-engines.typing-booster` package contains a program named `emoji-picker`. To display all emojis correctly, a special font such as `noto-fonts-emoji` is needed:
+
+On NixOS it can be installed using the following expression:
+
+```nix
+{ pkgs, ... }: { fonts.fonts = with pkgs; [ noto-fonts-emoji ]; }
+```
diff --git a/nixpkgs/doc/builders/packages/ibus.xml b/nixpkgs/doc/builders/packages/ibus.xml
deleted file mode 100644
index 2ed37903a273..000000000000
--- a/nixpkgs/doc/builders/packages/ibus.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<section xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="sec-ibus-typing-booster">
- <title>ibus-engines.typing-booster</title>
-
- <para>
-  This package is an ibus-based completion method to speed up typing.
- </para>
-
- <section xml:id="sec-ibus-typing-booster-activate">
-  <title>Activating the engine</title>
-
-  <para>
-   IBus needs to be configured accordingly to activate <literal>typing-booster</literal>. The configuration depends on the desktop manager in use. For detailed instructions, please refer to the <link xlink:href="https://mike-fabian.github.io/ibus-typing-booster/documentation.html">upstream docs</link>.
-  </para>
-
-  <para>
-   On NixOS you need to explicitly enable <literal>ibus</literal> with given engines before customizing your desktop to use <literal>typing-booster</literal>. This can be achieved using the <literal>ibus</literal> module:
-<programlisting>{ pkgs, ... }: {
-  i18n.inputMethod = {
-    enabled = "ibus";
-    ibus.engines = with pkgs.ibus-engines; [ typing-booster ];
-  };
-}</programlisting>
-  </para>
- </section>
-
- <section xml:id="sec-ibus-typing-booster-customize-hunspell">
-  <title>Using custom hunspell dictionaries</title>
-
-  <para>
-   The IBus engine is based on <literal>hunspell</literal> to support completion in many languages. By default the dictionaries <literal>de-de</literal>, <literal>en-us</literal>, <literal>fr-moderne</literal> <literal>es-es</literal>, <literal>it-it</literal>, <literal>sv-se</literal> and <literal>sv-fi</literal> are in use. To add another dictionary, the package can be overridden like this:
-<programlisting>ibus-engines.typing-booster.override {
-  langs = [ "de-at" "en-gb" ];
-}</programlisting>
-  </para>
-
-  <para>
-   <emphasis>Note: each language passed to <literal>langs</literal> must be an attribute name in <literal>pkgs.hunspellDicts</literal>.</emphasis>
-  </para>
- </section>
-
- <section xml:id="sec-ibus-typing-booster-emoji-picker">
-  <title>Built-in emoji picker</title>
-
-  <para>
-   The <literal>ibus-engines.typing-booster</literal> package contains a program named <literal>emoji-picker</literal>. To display all emojis correctly, a special font such as <literal>noto-fonts-emoji</literal> is needed:
-  </para>
-
-  <para>
-   On NixOS it can be installed using the following expression:
-<programlisting>{ pkgs, ... }: {
-  fonts.fonts = with pkgs; [ noto-fonts-emoji ];
-}</programlisting>
-  </para>
- </section>
-</section>
diff --git a/nixpkgs/doc/builders/packages/index.xml b/nixpkgs/doc/builders/packages/index.xml
index e4f8a1d3120e..a2bcd4315311 100644
--- a/nixpkgs/doc/builders/packages/index.xml
+++ b/nixpkgs/doc/builders/packages/index.xml
@@ -5,14 +5,15 @@
  <para>
   This chapter contains information about how to use and maintain the Nix expressions for a number of specific packages, such as the Linux kernel or X.org.
  </para>
- <xi:include href="citrix.xml" />
+ <xi:include href="citrix.section.xml" />
  <xi:include href="dlib.xml" />
- <xi:include href="eclipse.xml" />
+ <xi:include href="eclipse.section.xml" />
  <xi:include href="elm.section.xml" />
  <xi:include href="emacs.section.xml" />
  <xi:include href="firefox.section.xml" />
  <xi:include href="fish.section.xml" />
- <xi:include href="ibus.xml" />
+ <xi:include href="fuse.section.xml" />
+ <xi:include href="ibus.section.xml" />
  <xi:include href="kakoune.section.xml" />
  <xi:include href="linux.section.xml" />
  <xi:include href="locales.section.xml" />
diff --git a/nixpkgs/doc/contributing/coding-conventions.xml b/nixpkgs/doc/contributing/coding-conventions.xml
index 9005a9ebafd6..9f00942918c0 100644
--- a/nixpkgs/doc/contributing/coding-conventions.xml
+++ b/nixpkgs/doc/contributing/coding-conventions.xml
@@ -180,17 +180,12 @@ args.stdenv.mkDerivation (args // {
    </listitem>
    <listitem>
     <para>
-     Arguments should be listed in the order they are used, with the
-     exception of <varname>lib</varname>, which always goes first.
+     Arguments should be listed in the order they are used, with the exception of <varname>lib</varname>, which always goes first.
     </para>
    </listitem>
    <listitem>
     <para>
-     Prefer using the top-level <varname>lib</varname> over its alias
-     <literal>stdenv.lib</literal>.  <varname>lib</varname> is unrelated to
-     <varname>stdenv</varname>, and so <literal>stdenv.lib</literal> should only
-     be used as a convenience alias when developing to avoid having to modify
-     the function inputs just to test something out.
+     Prefer using the top-level <varname>lib</varname> over its alias <literal>stdenv.lib</literal>. <varname>lib</varname> is unrelated to <varname>stdenv</varname>, and so <literal>stdenv.lib</literal> should only be used as a convenience alias when developing to avoid having to modify the function inputs just to test something out.
     </para>
    </listitem>
   </itemizedlist>
@@ -689,8 +684,7 @@ args.stdenv.mkDerivation (args // {
        </varlistentry>
        <varlistentry>
         <term>
-         If it’s a <emphasis>theme</emphasis> for a <emphasis>desktop environment</emphasis>,
-         a <emphasis>window manager</emphasis> or a <emphasis>display manager</emphasis>:
+         If it’s a <emphasis>theme</emphasis> for a <emphasis>desktop environment</emphasis>, a <emphasis>window manager</emphasis> or a <emphasis>display manager</emphasis>:
         </term>
         <listitem>
          <para>
diff --git a/nixpkgs/doc/contributing/submitting-changes.chapter.md b/nixpkgs/doc/contributing/submitting-changes.chapter.md
index 40fc5ea78921..13f15b929cfc 100644
--- a/nixpkgs/doc/contributing/submitting-changes.chapter.md
+++ b/nixpkgs/doc/contributing/submitting-changes.chapter.md
@@ -68,15 +68,16 @@
 
 Security fixes are submitted in the same way as other changes and thus the same guidelines apply.
 
-If the security fix comes in the form of a patch and a CVE is available, then the name of the patch should be the CVE identifier, so e.g. `CVE-2019-13636.patch` in the case of a patch that is included in the Nixpkgs tree. If a patch is fetched the name needs to be set as well, e.g.:
-
-```nix
-(fetchpatch {
-  name = "CVE-2019-11068.patch";
-  url = "https://gitlab.gnome.org/GNOME/libxslt/commit/e03553605b45c88f0b4b2980adfbbb8f6fca2fd6.patch";
-  sha256 = "0pkpb4837km15zgg6h57bncp66d5lwrlvkr73h0lanywq7zrwhj8";
-})
-```
+- If a new version fixing the vulnerability has been released, update the package;
+- If the security fix comes in the form of a patch and a CVE is available, then add the patch to the Nixpkgs tree, and apply it to the package.
+  The name of the patch should be the CVE identifier, so e.g. `CVE-2019-13636.patch`; If a patch is fetched the name needs to be set as well, e.g.:
+  ```nix
+  (fetchpatch {
+    name = "CVE-2019-11068.patch";
+    url = "https://gitlab.gnome.org/GNOME/libxslt/commit/e03553605b45c88f0b4b2980adfbbb8f6fca2fd6.patch";
+    sha256 = "0pkpb4837km15zgg6h57bncp66d5lwrlvkr73h0lanywq7zrwhj8";
+  })
+  ```
 
 If a security fix applies to both master and a stable release then, similar to regular changes, they are preferably delivered via master first and cherry-picked to the release branch.
 
@@ -174,10 +175,13 @@ digraph {
     "staging-next" -> master [color="#E85EB0"] [label="stabilization ends"] [fontcolor="#E85EB0"]
     "staging" -> "staging-next" [color="#E85EB0"] [label="stabilization starts"] [fontcolor="#E85EB0"]
 
-    master -> "staging-next" -> staging [color="#5F5EE8"] [label="every six hours/any time"] [fontcolor="#5F5EE8"]
+    master -> "staging-next" -> staging [color="#5F5EE8"] [label="every six hours (GitHub Action)"] [fontcolor="#5F5EE8"]
 }
 ```
 
+[This GitHub Action](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/merge-staging.yml) brings changes from `master` to `staging-next` and from `staging-next` to `staging` every 6 hours.
+
+
 ### Master branch {#submitting-changes-master-branch}
 
 The `master` branch is the main development branch. It should only see non-breaking commits that do not cause mass rebuilds.
diff --git a/nixpkgs/doc/contributing/vulnerability-roundup.chapter.md b/nixpkgs/doc/contributing/vulnerability-roundup.chapter.md
new file mode 100644
index 000000000000..d451420f9815
--- /dev/null
+++ b/nixpkgs/doc/contributing/vulnerability-roundup.chapter.md
@@ -0,0 +1,45 @@
+# Vulnerability Roundup {#chap-vulnerability-roundup}
+
+## Issues {#vulnerability-roundup-issues}
+
+Vulnerable packages in Nixpkgs are managed using issues.
+Currently opened ones can be found using the following:
+
+[github.com/NixOS/nixpkgs/issues?q=is:issue+is:open+"Vulnerability+roundup"](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+%22Vulnerability+roundup%22)
+
+Each issue correspond to a vulnerable version of a package; As a consequence:
+
+- One issue can contain several CVEs;
+- One CVE can be shared across several issues;
+- A single package can be concerned by several issues.
+
+
+A "Vulnerability roundup" issue usually respects the following format:
+
+```txt
+<link to relevant package search on search.nix.gsc.io>, <link to relevant files in Nixpkgs on GitHub>
+
+<list of related CVEs, their CVSS score, and the impacted NixOS version>
+
+<list of the scanned Nixpkgs versions>
+
+<list of relevant contributors>
+```
+
+Note that there can be an extra comment containing links to previously reported (and still open) issues for the same package.
+
+
+## Triaging and Fixing {#vulnerability-roundup-triaging-and-fixing}
+
+**Note**: An issue can be a "false positive" (i.e. automatically opened, but without the package it refers to being actually vulnerable).
+If you find such a "false positive", comment on the issue an explanation of why it falls into this category, linking as much information as the necessary to help maintainers double check.
+
+If you are investigating a "true positive":
+
+- Find the earliest patched version or a code patch in the CVE details;
+- Is the issue already patched (version up-to-date or patch applied manually) in Nixpkgs's `master` branch?
+  - **No**:
+    - [Submit a security fix](#submitting-changes-submitting-security-fixes);
+    - Once the fix is merged into `master`, [submit the change to the vulnerable release branch(es)](https://nixos.org/manual/nixpkgs/stable/#submitting-changes-stable-release-branches);
+  - **Yes**: [Backport the change to the vulnerable release branch(es)](https://nixos.org/manual/nixpkgs/stable/#submitting-changes-stable-release-branches).
+- When the patch has made it into all the relevant branches (`master`, and the vulnerable releases), close the relevant issue(s).
diff --git a/nixpkgs/doc/functions/library/attrsets.xml b/nixpkgs/doc/functions/library/attrsets.xml
index 7ef0d16624c8..de8414249abf 100644
--- a/nixpkgs/doc/functions/library/attrsets.xml
+++ b/nixpkgs/doc/functions/library/attrsets.xml
@@ -7,7 +7,7 @@
  <section xml:id="function-library-lib.attrsets.attrByPath">
   <title><function>lib.attrset.attrByPath</function></title>
 
-  <subtitle><literal>attrByPath :: [String] -> Any -> AttrSet</literal>
+  <subtitle><literal>attrByPath :: [String] -> Any -> AttrSet -> Any</literal>
   </subtitle>
 
   <xi:include href="./locations.xml" xpointer="lib.attrsets.attrByPath" />
@@ -1677,8 +1677,7 @@ recursiveUpdate
   <xi:include href="./locations.xml" xpointer="lib.attrsets.recurseIntoAttrs" />
 
   <para>
-   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.
   </para>
 
   <para>
@@ -1720,7 +1719,7 @@ recursiveUpdate
   <xi:include href="./locations.xml" xpointer="lib.attrsets.cartesianProductOfSets" />
 
   <para>
-    Return the cartesian product of attribute set value combinations.
+   Return the cartesian product of attribute set value combinations.
   </para>
 
   <variablelist>
@@ -1749,5 +1748,4 @@ cartesianProductOfSets { a = [ 1 2 ]; b = [ 10 20 ]; }
 ]]></programlisting>
   </example>
  </section>
-
 </section>
diff --git a/nixpkgs/doc/languages-frameworks/agda.section.md b/nixpkgs/doc/languages-frameworks/agda.section.md
index f57b194a7266..30a266502bf3 100644
--- a/nixpkgs/doc/languages-frameworks/agda.section.md
+++ b/nixpkgs/doc/languages-frameworks/agda.section.md
@@ -3,7 +3,7 @@
 ## How to use Agda
 
 Agda can be installed from `agda`:
-```
+```ShellSession
 $ nix-env -iA agda
 ```
 
@@ -15,13 +15,13 @@ To use Agda with libraries, the `agda.withPackages` function can be used. This f
 
 For example, suppose we wanted a version of Agda which has access to the standard library. This can be obtained with the expressions:
 
-```
+```nix
 agda.withPackages [ agdaPackages.standard-library ]
 ```
 
 or
 
-```
+```nix
 agda.withPackages (p: [ p.standard-library ])
 ```
 
@@ -32,7 +32,7 @@ If you want to use a library in your home directory (for instance if it is a dev
 Agda will not by default use these libraries. To tell Agda to use the library we have some options:
 
 * Call `agda` with the library flag:
-```
+```ShellSession
 $ agda -l standard-library -i . MyFile.agda
 ```
 * Write a `my-library.agda-lib` file for the project you are working on which may look like:
@@ -49,7 +49,7 @@ More information can be found in the [official Agda documentation on library man
 Agda modules can be compiled with the `--compile` flag. A version of `ghc` with `ieee754` is made available to the Agda program via the `--with-compiler` flag.
 This can be overridden by a different version of `ghc` as follows:
 
-```
+```nix
 agda.withPackages {
   pkgs = [ ... ];
   ghc = haskell.compiler.ghcHEAD;
@@ -80,12 +80,12 @@ By default, Agda sources are files ending on `.agda`, or literate Agda files end
 ## Adding Agda packages to Nixpkgs
 
 To add an Agda package to `nixpkgs`, the derivation should be written to `pkgs/development/libraries/agda/${library-name}/` and an entry should be added to `pkgs/top-level/agda-packages.nix`. Here it is called in a scope with access to all other Agda libraries, so the top line of the `default.nix` can look like:
-```
+```nix
 { mkDerivation, standard-library, fetchFromGitHub }:
 ```
 and `mkDerivation` should be called instead of `agdaPackages.mkDerivation`. Here is an example skeleton derivation for iowa-stdlib:
 
-```
+```nix
 mkDerivation {
   version = "1.5.0";
   pname = "iowa-stdlib";
diff --git a/nixpkgs/doc/languages-frameworks/android.section.md b/nixpkgs/doc/languages-frameworks/android.section.md
index 62e544cd48b6..416073df078e 100644
--- a/nixpkgs/doc/languages-frameworks/android.section.md
+++ b/nixpkgs/doc/languages-frameworks/android.section.md
@@ -80,7 +80,7 @@ Most of the function arguments have reasonable default settings.
 
 You can specify license names:
 
-* `extraLicenses` is a list of of license names.
+* `extraLicenses` is a list of license names.
   You can get these names from repo.json or `querypackages.sh licenses`. The SDK
   license (`android-sdk-license`) is accepted for you if you set accept_license
   to true. If you are doing something like working with preview SDKs, you will
diff --git a/nixpkgs/doc/languages-frameworks/coq.section.md b/nixpkgs/doc/languages-frameworks/coq.section.md
index 8f564c6e46b6..5964d46e2f80 100644
--- a/nixpkgs/doc/languages-frameworks/coq.section.md
+++ b/nixpkgs/doc/languages-frameworks/coq.section.md
@@ -21,8 +21,8 @@ The recommended way of defining a derivation for a Coq library, is to use the `c
   * if it is a string of the form `owner:branch` then it tries to download the `branch` of owner `owner` for a project of the same name using the same vcs, and the `version` attribute of the resulting derivation is set to `"dev"`, additionally if the owner is not provided (i.e. if the `owner:` prefix is missing), it defaults to the original owner of the package (see below),
   * if it is a string of the form `"#N"`, and the domain is github, then it tries to download the current head of the pull request `#N` from github,
 * `defaultVersion` (optional). Coq libraries may be compatible with some specific versions of Coq only. The `defaultVersion` attribute is used when no `version` is provided (or if `version = null`) to select the version of the library to use by default, depending on the context. This selection will mainly depend on a `coq` version number but also possibly on other packages versions (e.g. `mathcomp`). If its value ends up to be `null`, the package is marked for removal in end-user `coqPackages` attribute set.
-* `release` (optional, defaults to `{}`), lists all the known releases of the library and for each of them provides an attribute set with at least a `sha256` attribute (you may use the shell command `nix-prefetch-url --unpack <archive-url>` to find it, where `<archive-url>` is for example `https://github.com/owner/repo/archive/version.tar.gz`), each attribute set of the list of releases also takes optional overloading arguments for the fetcher as below (i.e.`domain`, `owner`, `repo`, `rev` assuming the default fetcher is used) and optional overrides for the result of the fetcher (i.e. `version` and `src`).
-* `fetcher` (optional, default to a generic fetching mechanism supporting github or gitlab based infrastructures), is a function that takes at least an `owner`, a `repo`, a `rev`, and a `sha256` and returns an attribute set with a `version` and `src`.
+* `release` (optional, defaults to `{}`), lists all the known releases of the library and for each of them provides an attribute set with at least a `sha256` attribute (you may put the empty string `""` in order to automatically insert a fake sha256, this will trigger an error which will allow you to find the correct sha256), each attribute set of the list of releases also takes optional overloading arguments for the fetcher as below (i.e.`domain`, `owner`, `repo`, `rev` assuming the default fetcher is used) and optional overrides for the result of the fetcher (i.e. `version` and `src`).
+* `fetcher` (optional, defaults to a generic fetching mechanism supporting github or gitlab based infrastructures), is a function that takes at least an `owner`, a `repo`, a `rev`, and a `sha256` and returns an attribute set with a `version` and `src`.
 * `repo` (optional, defaults to the value of `pname`),
 * `owner` (optional, defaults to `"coq-community"`).
 * `domain` (optional, defaults to `"github.com"`), domains including the strings `"github"` or `"gitlab"` in their names are automatically supported, otherwise, one must change the `fetcher` argument to support them (cf `pkgs/development/coq-modules/heq/default.nix` for an example),
@@ -31,6 +31,8 @@ The recommended way of defining a derivation for a Coq library, is to use the `c
 * `namePrefix` (optional), provides a way to alter the computation of `name` from `pname`, by explaining which dependencies must occur in `name`,
 * `extraBuildInputs` (optional), by default `buildInputs` just contains `coq`, this allows to add more build inputs,
 * `mlPlugin` (optional, defaults to `false`). Some extensions (plugins) might require OCaml and sometimes other OCaml packages. Standard dependencies can be added by setting the current option to `true`. For a finer grain control, the `coq.ocamlPackages` attribute can be used in `extraBuildInputs` to depend on the same package set Coq was built against.
+* `useDune2ifVersion` (optional, default to `(x: false)` uses Dune2 to build the package if the provided predicate evaluates to true on the version, e.g. `useDune2if = versions.isGe "1.1"`  will use dune if the version of the package is greater or equal to `"1.1"`,
+* `useDune2` (optional, defaults to `false`) uses Dune2 to build the package if set to true, the presence of this attribute overrides the behavior of the previous one.
 * `enableParallelBuilding` (optional, defaults to `true`), since it is activated by default, we provide a way to disable it.
 * `extraInstallFlags` (optional), allows to extend `installFlags` which initializes the variable `COQMF_COQLIB` so as to install in the proper subdirectory. Indeed Coq libraries should be installed in `$(out)/lib/coq/${coq.coq-version}/user-contrib/`. Such directories are automatically added to the `$COQPATH` environment variable by the hook defined in the Coq derivation.
 * `setCOQBIN` (optional, defaults to `true`), by default, the environment variable `$COQBIN` is set to the current Coq's binary, but one can disable this behavior by setting it to `false`,
diff --git a/nixpkgs/doc/languages-frameworks/dotnet.section.md b/nixpkgs/doc/languages-frameworks/dotnet.section.md
index 88fd74db8256..36369fd4e634 100644
--- a/nixpkgs/doc/languages-frameworks/dotnet.section.md
+++ b/nixpkgs/doc/languages-frameworks/dotnet.section.md
@@ -4,7 +4,7 @@
 
 For local development, it's recommended to use nix-shell to create a dotnet environment:
 
-```
+```nix
 # shell.nix
 with import <nixpkgs> {};
 
@@ -20,7 +20,7 @@ mkShell {
 
 It's very likely that more than one sdk will be needed on a given project. Dotnet provides several different frameworks (E.g dotnetcore, aspnetcore, etc.) as well as many versions for a given framework. Normally, dotnet is able to fetch a framework and install it relative to the executable. However, this would mean writing to the nix store in nixpkgs, which is read-only. To support the many-sdk use case, one can compose an environment using `dotnetCorePackages.combinePackages`:
 
-```
+```nix
 with import <nixpkgs> {};
 
 mkShell {
@@ -37,7 +37,7 @@ mkShell {
 
 This will produce a dotnet installation that has the dotnet 3.1, 3.0, and 2.1 sdk. The first sdk listed will have it's cli utility present in the resulting environment. Example info output:
 
-```
+```ShellSesssion
 $ dotnet --info
 .NET Core SDK (reflecting any global.json):
  Version:   3.1.101
@@ -64,7 +64,7 @@ $ dotnet --info
 
 The `dotnetCorePackages.sdk_X_Y` is preferred over the old dotnet-sdk as both major and minor version are very important for a dotnet environment. If a given minor version isn't present (or was changed), then this will likely break your ability to build a project.
 
-## dotnetCorePackages.sdk vs vs dotnetCorePackages.net vs dotnetCorePackages.netcore vs dotnetCorePackages.aspnetcore
+## dotnetCorePackages.sdk vs dotnetCorePackages.net vs dotnetCorePackages.netcore vs dotnetCorePackages.aspnetcore
 
 The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given version. The `net`, `netcore` and `aspnetcore` packages are meant to serve as minimal runtimes to deploy alongside already built applications. For runtime versions >= .NET 5 `net` is used while `netcore` is used for older .NET Core runtime version.
 
diff --git a/nixpkgs/doc/languages-frameworks/idris.section.md b/nixpkgs/doc/languages-frameworks/idris.section.md
index 41e4f7ec3127..000e3627d70d 100644
--- a/nixpkgs/doc/languages-frameworks/idris.section.md
+++ b/nixpkgs/doc/languages-frameworks/idris.section.md
@@ -4,7 +4,7 @@
 
 The easiest way to get a working idris version is to install the `idris` attribute:
 
-```
+```ShellSesssion
 $ # On NixOS
 $ nix-env -i nixos.idris
 $ # On non-NixOS
@@ -21,7 +21,7 @@ self: super: {
 
 And then:
 
-```
+```ShellSesssion
 $ # On NixOS
 $ nix-env -iA nixos.myIdris
 $ # On non-NixOS
@@ -29,7 +29,7 @@ $ nix-env -iA nixpkgs.myIdris
 ```
 
 To see all available Idris packages:
-```
+```ShellSesssion
 $ # On NixOS
 $ nix-env -qaPA nixos.idrisPackages
 $ # On non-NixOS
@@ -37,7 +37,7 @@ $ nix-env -qaPA nixpkgs.idrisPackages
 ```
 
 Similarly, entering a `nix-shell`:
-```
+```ShellSesssion
 $ nix-shell -p 'idrisPackages.with-packages (with idrisPackages; [ contrib pruviloj ])'
 ```
 
@@ -45,14 +45,14 @@ $ nix-shell -p 'idrisPackages.with-packages (with idrisPackages; [ contrib pruvi
 
 To have access to these libraries in idris, call it with an argument `-p <library name>` for each library:
 
-```
+```ShellSesssion
 $ nix-shell -p 'idrisPackages.with-packages (with idrisPackages; [ contrib pruviloj ])'
 [nix-shell:~]$ idris -p contrib -p pruviloj
 ```
 
 A listing of all available packages the Idris binary has access to is available via `--listlibs`:
 
-```
+```ShellSesssion
 $ idris --listlibs
 00prelude-idx.ibc
 pruviloj
@@ -105,7 +105,7 @@ build-idris-package  {
 
 Assuming this file is saved as `yaml.nix`, it's buildable using
 
-```
+```ShellSesssion
 $ nix-build -E '(import <nixpkgs> {}).idrisPackages.callPackage ./yaml.nix {}'
 ```
 
@@ -121,7 +121,7 @@ with import <nixpkgs> {};
 
 in another file (say `default.nix`) to be able to build it with
 
-```
+```ShellSesssion
 $ nix-build -A yaml
 ```
 
@@ -133,7 +133,7 @@ Specifically, you can set `idrisBuildOptions`, `idrisTestOptions`, `idrisInstall
 
 For example you could set
 
-```
+```nix
 build-idris-package {
   idrisBuildOptions = [ "--log" "1" "--verbose" ]
 
diff --git a/nixpkgs/doc/languages-frameworks/lua.section.md b/nixpkgs/doc/languages-frameworks/lua.section.md
index d81949c75f69..5935cbd7bd52 100644
--- a/nixpkgs/doc/languages-frameworks/lua.section.md
+++ b/nixpkgs/doc/languages-frameworks/lua.section.md
@@ -50,7 +50,7 @@ and install it in your profile with
 ```shell
 nix-env -iA nixpkgs.myLuaEnv
 ```
-The environment is is installed by referring to the attribute, and considering
+The environment is installed by referring to the attribute, and considering
 the `nixpkgs` channel was used.
 
 #### Lua environment defined in `/etc/nixos/configuration.nix`
@@ -129,7 +129,7 @@ the whitelist maintainers/scripts/luarocks-packages.csv and updated by running m
 [luarocks2nix](https://github.com/nix-community/luarocks) is a tool capable of generating nix derivations from both rockspec and src.rock (and favors the src.rock).
 The automation only goes so far though and some packages need to be customized.
 These customizations go in `pkgs/development/lua-modules/overrides.nix`.
-For instance if the rockspec defines `external_dependencies`, these need to be manually added in in its rockspec file then it won't work.
+For instance if the rockspec defines `external_dependencies`, these need to be manually added in its rockspec file then it won't work.
 
 You can try converting luarocks packages to nix packages with the command `nix-shell -p luarocks-nix` and then `luarocks nix PKG_NAME`.
 Nix rely on luarocks to install lua packages, basically it runs:
diff --git a/nixpkgs/doc/languages-frameworks/python.section.md b/nixpkgs/doc/languages-frameworks/python.section.md
index 71193ed0cc0b..96ac61ab54c5 100644
--- a/nixpkgs/doc/languages-frameworks/python.section.md
+++ b/nixpkgs/doc/languages-frameworks/python.section.md
@@ -7,8 +7,9 @@
 #### Overview
 
 Several versions of the Python interpreter are available on Nix, as well as a
-high amount of packages. The attribute `python` refers to the default
-interpreter, which is currently CPython 2.7. It is also possible to refer to
+high amount of packages. The attribute `python3` refers to the default
+interpreter, which is currently CPython 3.8. The attribute `python` refers to
+CPython 2.7 for backwards-compatibility. It is also possible to refer to
 specific versions, e.g. `python38` refers to CPython 3.8, and `pypy` refers to
 the default PyPy interpreter.
 
@@ -78,7 +79,7 @@ $ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz ])'
 By default `nix-shell` will start a `bash` session with this interpreter in our
 `PATH`, so if we then run:
 
-```
+```Python console
 [nix-shell:~/src/nixpkgs]$ python3
 Python 3.8.1 (default, Dec 18 2019, 19:06:26)
 [GCC 9.2.0] on linux
@@ -89,7 +90,7 @@ Type "help", "copyright", "credits" or "license" for more information.
 Note that no other modules are in scope, even if they were imperatively
 installed into our user environment as a dependency of a Python application:
 
-```
+```Python console
 >>> import requests
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
@@ -145,8 +146,8 @@ print(f"The dot product of {a} and {b} is: {np.dot(a, b)}")
 Executing this script requires a `python3` that has `numpy`. Using what we learned
 in the previous section, we could startup a shell and just run it like so:
 
-```
-nix-shell -p 'python38.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
+```ShellSesssion
+$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
 The dot product of [1 2] and [3 4] is: 11
 ```
 
@@ -334,7 +335,7 @@ Above, we were mostly just focused on use cases and what to do to get started
 creating working Python environments in nix.
 
 Now that you know the basics to be up and running, it is time to take a step
-back and take a deeper look at at how Python packages are packaged on Nix. Then,
+back and take a deeper look at how Python packages are packaged on Nix. Then,
 we will look at how you can use development mode with your code.
 
 #### Python library packages in Nixpkgs
@@ -611,7 +612,7 @@ Using the example above, the analagous pytestCheckHook usage would be:
     "update"
   ];
 
-  disabledTestFiles = [
+  disabledTestPaths = [
     "tests/test_failing.py"
   ];
 ```
@@ -638,7 +639,7 @@ are disabled.
 
 #### Using pythonImportsCheck
 
-Although unit tests are highly prefered to valid correctness of a package. Not
+Although unit tests are highly prefered to validate correctness of a package, not
 all packages have test suites that can be ran easily, and some have none at all.
 To help ensure the package still works, `pythonImportsCheck` can attempt to import
 the listed modules.
@@ -762,10 +763,10 @@ and in this case the `python38` interpreter is automatically used.
 Versions 2.7, 3.6, 3.7, 3.8 and 3.9 of the CPython interpreter are available as
 respectively `python27`, `python36`, `python37`, `python38` and `python39`. The
 aliases `python2` and `python3` correspond to respectively `python27` and
-`python38`. The default interpreter, `python`, maps to `python2`. The PyPy
-interpreters compatible with Python 2.7 and 3 are available as `pypy27` and
-`pypy3`, with aliases `pypy2` mapping to `pypy27` and `pypy` mapping to `pypy2`.
-The Nix expressions for the interpreters can be found in
+`python39`. The attribute `python` maps to `python2`. The PyPy interpreters
+compatible with Python 2.7 and 3 are available as `pypy27` and `pypy3`, with
+aliases `pypy2` mapping to `pypy27` and `pypy` mapping to `pypy2`. The Nix
+expressions for the interpreters can be found in
 `pkgs/development/interpreters/python`.
 
 All packages depending on any Python interpreter get appended
@@ -788,6 +789,23 @@ Each interpreter has the following attributes:
 - `executable`. Name of the interpreter executable, e.g. `python3.8`.
 - `pkgs`. Set of Python packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`.
 
+### Optimizations
+
+The Python interpreters are by default not build with optimizations enabled, because
+the builds are in that case not reproducible. To enable optimizations, override the
+interpreter of interest, e.g using
+
+```
+let
+  pkgs = import ./. {};
+  mypython = pkgs.python3.override {
+    enableOptimizations = true;
+    reproducibleBuild = false;
+    self = mypython;
+  };
+in mypython
+```
+
 ### Building packages and applications
 
 Python libraries and applications that use `setuptools` or
@@ -918,7 +936,7 @@ because their behaviour is different:
 
 * `nativeBuildInputs ? []`: Build-time only dependencies. Typically executables
   as well as the items listed in `setup_requires`.
-* `buildInputs ? []`: Build and/or run-time dependencies that need to be be
+* `buildInputs ? []`: Build and/or run-time dependencies that need to be
   compiled for the host machine. Typically non-Python libraries which are being
   linked.
 * `checkInputs ? []`: Dependencies needed for running the `checkPhase`. These
@@ -1188,7 +1206,8 @@ community to help save time. No tool is preferred at the moment.
   expressions for your Python project. Note that [sharing derivations from
   pypi2nix with nixpkgs is possible but not
   encouraged](https://github.com/nix-community/pypi2nix/issues/222#issuecomment-443497376).
-- [python2nix](https://github.com/proger/python2nix) by Vladimir Kirillov.
+- [nixpkgs-pytools](https://github.com/nix-community/nixpkgs-pytools)
+- [poetry2nix](https://github.com/nix-community/poetry2nix)
 
 ### Deterministic builds
 
@@ -1486,11 +1505,12 @@ If you need to change a package's attribute(s) from `configuration.nix` you coul
   nixpkgs.config.packageOverrides = super: {
     python = super.python.override {
       packageOverrides = python-self: python-super: {
-        zerobin = python-super.zerobin.overrideAttrs (oldAttrs: {
-          src = super.fetchgit {
-            url = "https://github.com/sametmax/0bin";
-            rev = "a344dbb18fe7a855d0742b9a1cede7ce423b34ec";
-            sha256 = "16d769kmnrpbdr0ph0whyf4yff5df6zi4kmwx7sz1d3r6c8p6xji";
+        twisted = python-super.twisted.overrideAttrs (oldAttrs: {
+          src = super.fetchPipy {
+            pname = "twisted";
+            version = "19.10.0";
+            sha256 = "7394ba7f272ae722a74f3d969dcf599bc4ef093bc392038748a490f1724a515d";
+            extension = "tar.bz2";
           };
         });
       };
@@ -1498,9 +1518,11 @@ If you need to change a package's attribute(s) from `configuration.nix` you coul
   };
 ```
 
-`pythonPackages.zerobin` is now globally overridden. All packages and also the
-`zerobin` NixOS service use the new definition. Note that `python-super` refers
-to the old package set and `python-self` to the new, overridden version.
+`pythonPackages.twisted` is now globally overridden.
+All packages and also all NixOS services that reference `twisted`
+(such as `services.buildbot-worker`) now use the new definition.
+Note that `python-super` refers to the old package set and `python-self`
+to the new, overridden version.
 
 To modify only a Python package set instead of a whole Python derivation, use
 this snippet:
@@ -1508,7 +1530,7 @@ this snippet:
 ```nix
   myPythonPackages = pythonPackages.override {
     overrides = self: super: {
-      zerobin = ...;
+      twisted = ...;
     };
   }
 ```
@@ -1521,11 +1543,12 @@ Use the following overlay template:
 self: super: {
   python = super.python.override {
     packageOverrides = python-self: python-super: {
-      zerobin = python-super.zerobin.overrideAttrs (oldAttrs: {
-        src = super.fetchgit {
-          url = "https://github.com/sametmax/0bin";
-          rev = "a344dbb18fe7a855d0742b9a1cede7ce423b34ec";
-          sha256 = "16d769kmnrpbdr0ph0whyf4yff5df6zi4kmwx7sz1d3r6c8p6xji";
+      twisted = python-super.twisted.overrideAttrs (oldAttrs: {
+        src = super.fetchPypi {
+          pname = "twisted";
+          version = "19.10.0";
+          sha256 = "7394ba7f272ae722a74f3d969dcf599bc4ef093bc392038748a490f1724a515d";
+          extension = "tar.bz2";
         };
       });
     };
@@ -1550,13 +1573,11 @@ In a `setup.py` or `setup.cfg` it is common to declare dependencies:
 
 ### Contributing guidelines
 
-Following rules are desired to be respected:
+The following rules are desired to be respected:
 
 * Python libraries are called from `python-packages.nix` and packaged with
   `buildPythonPackage`. The expression of a library should be in
-  `pkgs/development/python-modules/<name>/default.nix`. Libraries in
-  `pkgs/top-level/python-packages.nix` are sorted quasi-alphabetically to avoid
-  merge conflicts.
+  `pkgs/development/python-modules/<name>/default.nix`.
 * Python applications live outside of `python-packages.nix` and are packaged
   with `buildPythonApplication`.
 * Make sure libraries build for all Python interpreters.
@@ -1566,7 +1587,11 @@ Following rules are desired to be respected:
   case, when you disable tests, leave a comment explaining why.
 * Commit names of Python libraries should reflect that they are Python
   libraries, so write for example `pythonPackages.numpy: 1.11 -> 1.12`.
-* Attribute names in `python-packages.nix` should be normalized according to
-  [PEP 0503](https://www.python.org/dev/peps/pep-0503/#normalized-names). This
-  means that characters should be converted to lowercase and `.` and `_` should
-  be replaced by a single `-` (foo-bar-baz instead of Foo__Bar.baz )
+* Attribute names in `python-packages.nix` as well as `pname`s should match the
+  library's name on PyPI, but be normalized according to [PEP
+  0503](https://www.python.org/dev/peps/pep-0503/#normalized-names). This means
+  that characters should be converted to lowercase and `.` and `_` should be
+  replaced by a single `-` (foo-bar-baz instead of Foo__Bar.baz).
+  If necessary, `pname` has to be given a different value within `fetchPypi`.
+* Attribute names in `python-packages.nix` should be sorted alphanumerically to
+  avoid merge conflicts and ease locating attributes.
diff --git a/nixpkgs/doc/languages-frameworks/qt.section.md b/nixpkgs/doc/languages-frameworks/qt.section.md
index 5dd415852c10..6f8c9626e6de 100644
--- a/nixpkgs/doc/languages-frameworks/qt.section.md
+++ b/nixpkgs/doc/languages-frameworks/qt.section.md
@@ -1,77 +1,88 @@
 # Qt {#sec-language-qt}
 
-This section describes the differences between Nix expressions for Qt libraries and applications and Nix expressions for other C++ software. Some knowledge of the latter is assumed.
+Writing Nix expressions for Qt libraries and applications is largely similar as for other C++ software.
+This section assumes some knowledge of the latter.
+There are two problems that the Nixpkgs Qt infrastructure addresses,
+which are not shared by other C++ software:
 
-There are primarily two problems which the Qt infrastructure is designed to address: ensuring consistent versioning of all dependencies and finding dependencies at runtime.
+1.  There are usually multiple supported versions of Qt in Nixpkgs.
+    All of a package's dependencies must be built with the same version of Qt.
+    This is similar to the version constraints imposed on interpreted languages like Python.
+2.  Qt makes extensive use of runtime dependency detection.
+    Runtime dependencies are made into build dependencies through wrappers.
 
 ## Nix expression for a Qt package (default.nix) {#qt-default-nix}
 
 ```{=docbook}
 <programlisting>
-{ mkDerivation, qtbase }: <co xml:id='qt-default-nix-co-1' />
+{ stdenv, lib, qtbase, wrapQtAppsHook }: <co xml:id='qt-default-nix-co-1' />
 
-mkDerivation { <co xml:id='qt-default-nix-co-2' />
+stdenv.mkDerivation {
   pname = "myapp";
   version = "1.0";
 
-  buildInputs = [ qtbase ]; <co xml:id='qt-default-nix-co-3' />
+  buildInputs = [ qtbase ];
+  nativeBuildInputs = [ wrapQtAppsHook ]; <co xml:id='qt-default-nix-co-2' />
 }
 </programlisting>
 
  <calloutlist>
   <callout arearefs='qt-default-nix-co-1'>
    <para>
-    Import <literal>mkDerivation</literal> and Qt (such as <literal>qtbase</literal> modules directly. <emphasis>Do not</emphasis> import Qt package sets; the Qt versions of dependencies may not be coherent, causing build and runtime failures.
+    Import Qt modules directly, that is: <literal>qtbase</literal>, <literal>qtdeclarative</literal>, etc.
+    <emphasis>Do not</emphasis> import Qt package sets such as <literal>qt5</literal>
+    because the Qt versions of dependencies may not be coherent, causing build and runtime failures.
    </para>
   </callout>
   <callout arearefs='qt-default-nix-co-2'>
-   <para>
-    Use <literal>mkDerivation</literal> instead of <literal>stdenv.mkDerivation</literal>. <literal>mkDerivation</literal> is a wrapper around <literal>stdenv.mkDerivation</literal> which applies some Qt-specific settings. This deriver accepts the same arguments as <literal>stdenv.mkDerivation</literal>; refer to <xref linkend='chap-stdenv' /> for details.
-   </para>
-   <para>
-    To use another deriver instead of <literal>stdenv.mkDerivation</literal>, use <literal>mkDerivationWith</literal>:
-<programlisting>
-mkDerivationWith myDeriver {
-  # ...
-}
-</programlisting>
-    If you cannot use <literal>mkDerivationWith</literal>, please refer to <xref linkend='qt-runtime-dependencies' />.
-   </para>
-  </callout>
-  <callout arearefs='qt-default-nix-co-3'>
-   <para>
-    <literal>mkDerivation</literal> accepts the same arguments as <literal>stdenv.mkDerivation</literal>, such as <literal>buildInputs</literal>.
-   </para>
+    <para>
+      All Qt packages must include <literal>wrapQtAppsHook</literal> in
+      <literal>nativeBuildInputs</literal>, or you must explicitly set
+      <literal>dontWrapQtApps</literal>.
+    </para>
   </callout>
  </calloutlist>
 ```
 
 ## Locating runtime dependencies {#qt-runtime-dependencies}
-Qt applications need to be wrapped to find runtime dependencies. If you cannot use `mkDerivation` or `mkDerivationWith` above, include `wrapQtAppsHook` in `nativeBuildInputs`:
+
+Qt applications must be wrapped to find runtime dependencies.
+Include `wrapQtAppsHook` in `nativeBuildInputs`:
 
 ```nix
+{ stdenv, wrapQtAppsHook }:
+
 stdenv.mkDerivation {
   # ...
-
   nativeBuildInputs = [ wrapQtAppsHook ];
 }
 ```
-Entries added to `qtWrapperArgs` are used to modify the wrappers created by `wrapQtAppsHook`. The entries are passed as arguments to [wrapProgram executable makeWrapperArgs](#fun-wrapProgram).
+
+Add entries to `qtWrapperArgs` are to modify the wrappers created by
+`wrapQtAppsHook`:
 
 ```nix
-mkDerivation {
-  # ...
+{ stdenv, wrapQtAppsHook }:
 
+stdenv.mkDerivation {
+  # ...
+  nativeBuildInputs = [ wrapQtAppsHook ];
   qtWrapperArgs = [ ''--prefix PATH : /path/to/bin'' ];
 }
 ```
 
-Set `dontWrapQtApps` to stop applications from being wrapped automatically. It is required to wrap applications manually with `wrapQtApp`, using the syntax of [wrapProgram executable makeWrapperArgs](#fun-wrapProgram):
+The entries are passed as arguments to [wrapProgram](#fun-wrapProgram).
+
+Set `dontWrapQtApps` to stop applications from being wrapped automatically.
+Wrap programs manually with `wrapQtApp`, using the syntax of
+[wrapProgram](#fun-wrapProgram):
 
 ```nix
-mkDerivation {
-  # ...
+{ stdenv, lib, wrapQtAppsHook }:
 
+stdenv.mkDerivation {
+  # ...
+  nativeBuildInputs = [ wrapQtAppsHook ];
   dontWrapQtApps = true;
   preFixup = ''
       wrapQtApp "$out/bin/myapp" --prefix PATH : /path/to/bin
@@ -79,25 +90,20 @@ mkDerivation {
 }
 ```
 
-> Note: `wrapQtAppsHook` ignores files that are non-ELF executables. This means that scripts won't be automatically wrapped so you'll need to manually wrap them as previously mentioned. An example of when you'd always need to do this is with Python applications that use PyQT.
-
-Libraries are built with every available version of Qt. Use the `meta.broken` attribute to disable the package for unsupported Qt versions:
-
-```nix
-mkDerivation {
-  # ...
+::: note
+`wrapQtAppsHook` ignores files that are non-ELF executables.
+This means that scripts won't be automatically wrapped so you'll need to manually wrap them as previously mentioned.
+An example of when you'd always need to do this is with Python applications that use PyQt.
+:::
 
-  # Disable this library with Qt &lt; 5.9.0
-  meta.broken = builtins.compareVersions qtbase.version "5.9.0" &lt; 0;
-}
-```
 ## Adding a library to Nixpkgs
-Qt libraries are added to `qt5-packages.nix` and are made available for every Qt
-version supported.
+Add Qt libraries to `qt5-packages.nix` to make them available for every
+supported Qt version.
+
 ### Example adding a Qt library {#qt-library-all-packages-nix}
 
 The following represents the contents of `qt5-packages.nix`.
-```
+```nix
 {
   # ...
 
@@ -106,14 +112,28 @@ The following represents the contents of `qt5-packages.nix`.
   # ...
 }
 ```
+
+Libraries are built with every available version of Qt.
+Use the `meta.broken` attribute to disable the package for unsupported Qt versions:
+
+```nix
+{ stdenv, lib, qtbase }:
+
+stdenv.mkDerivation {
+  # ...
+  # Disable this library with Qt < 5.9.0
+  meta.broken = lib.versionOlder qtbase.version "5.9.0";
+}
+```
+
 ## Adding an application to Nixpkgs
-Applications that use Qt are also added to `qt5-packages.nix`. An alias is added
-in the top-level `all-packages.nix` pointing to the package with the desired Qt5 version.
+Add Qt applications to `qt5-packages.nix`. Add an alias to `all-packages.nix`
+to select the Qt 5 version used for the application.
 
 ### Example adding a Qt application {#qt-application-all-packages-nix}
 
 The following represents the contents of `qt5-packages.nix`.
-```
+```nix
 {
   # ...
 
@@ -124,7 +144,7 @@ The following represents the contents of `qt5-packages.nix`.
 ```
 
 The following represents the contents of `all-packages.nix`.
-```
+```nix
 {
   # ...
 
diff --git a/nixpkgs/doc/languages-frameworks/ruby.section.md b/nixpkgs/doc/languages-frameworks/ruby.section.md
index aeec154586c7..c519d79d3daf 100644
--- a/nixpkgs/doc/languages-frameworks/ruby.section.md
+++ b/nixpkgs/doc/languages-frameworks/ruby.section.md
@@ -229,7 +229,7 @@ end
 
 If you want to package a specific version, you can use the standard Gemfile syntax for that, e.g. `gem 'mdl', '0.5.0'`, but if you want the latest stable version anyway, it's easier to update by simply running the `bundle lock` and `bundix` steps again.
 
-Now you can also also make a `default.nix` that looks like this:
+Now you can also make a `default.nix` that looks like this:
 
 ```nix
 { bundlerApp }:
diff --git a/nixpkgs/doc/languages-frameworks/rust.section.md b/nixpkgs/doc/languages-frameworks/rust.section.md
index 8f6db28ab4d6..d1a6a566774c 100644
--- a/nixpkgs/doc/languages-frameworks/rust.section.md
+++ b/nixpkgs/doc/languages-frameworks/rust.section.md
@@ -2,13 +2,14 @@
 
 To install the rust compiler and cargo put
 
-```
-rustc
-cargo
+```nix
+environment.systemPackages = [
+  rustc
+  cargo
+];
 ```
 
-into the `environment.systemPackages` or bring them into
-scope with `nix-shell -p rustc cargo`.
+into your `configuration.nix` or bring them into scope with `nix-shell -p rustc cargo`.
 
 For other versions such as daily builds (beta and nightly),
 use either `rustup` from nixpkgs (which will manage the rust installation in your home directory),
@@ -18,7 +19,7 @@ or use Mozilla's [Rust nightlies overlay](#using-the-rust-nightlies-overlay).
 
 Rust applications are packaged by using the `buildRustPackage` helper from `rustPlatform`:
 
-```
+```nix
 { lib, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
@@ -49,7 +50,7 @@ package. `cargoHash256` is used for traditional Nix SHA-256 hashes,
 such as the one in the example above. `cargoHash` should instead be
 used for [SRI](https://www.w3.org/TR/SRI/) hashes. For example:
 
-```
+```nix
   cargoHash = "sha256-l1vL2ZdtDRxSGvP0X/l3nMw8+6WF67KPutJEzUROjg8=";
 ```
 
@@ -59,27 +60,54 @@ expression and building the package once. The correct checksum can
 then be taken from the failed build. A fake hash can be used for
 `cargoSha256` as follows:
 
-```
+```nix
   cargoSha256 = lib.fakeSha256;
 ```
 
 For `cargoHash` you can use:
 
-```
+```nix
   cargoHash = lib.fakeHash;
 ```
 
 Per the instructions in the [Cargo Book](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html)
 best practices guide, Rust applications should always commit the `Cargo.lock`
 file in git to ensure a reproducible build. However, a few packages do not, and
-Nix depends on this file, so if it missing you can use `cargoPatches` to apply
-it in the `patchPhase`. Consider sending a PR upstream with a note to the
+Nix depends on this file, so if it is missing you can use `cargoPatches` to
+apply it in the `patchPhase`. Consider sending a PR upstream with a note to the
 maintainer describing why it's important to include in the application.
 
 The fetcher will verify that the `Cargo.lock` file is in sync with the `src`
 attribute, and fail the build if not. It will also will compress the vendor
 directory into a tar.gz archive.
 
+The tarball with vendored dependencies contains a directory with the
+package's `name`, which is normally composed of `pname` and
+`version`. This means that the vendored dependencies hash
+(`cargoSha256`/`cargoHash`) is dependent on the package name and
+version. The `cargoDepsName` attribute can be used to use another name
+for the directory of vendored dependencies. For example, the hash can
+be made invariant to the version by setting `cargoDepsName` to
+`pname`:
+
+```nix
+rustPlatform.buildRustPackage rec {
+  pname = "broot";
+  version = "1.2.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "1mqaynrqaas82f5957lx31x80v74zwmwmjxxlbywajb61vh00d38";
+  };
+
+  cargoHash = "sha256-JmBZcDVYJaK1cK05cxx5BrnGWp4t8ca6FLUbvIot67s=";
+  cargoDepsName = pname;
+
+  # ...
+}
+```
+
+
 ### Cross compilation
 
 By default, Rust packages are compiled for the host platform, just like any
@@ -119,6 +147,7 @@ where they are known to differ. But there are ways to customize the argument:
        rustc.platform = { foo = ""; bar = ""; };
      };
    }
+   ```
    will result in:
    ```shell
    --target /nix/store/asdfasdfsadf-thumb-crazy.json # contains {"foo":"","bar":""}
@@ -129,7 +158,7 @@ path) can be passed directly to `buildRustPackage`:
 
 ```nix
 pkgs.rustPlatform.buildRustPackage {
-  (...)
+  /* ... */
   target = "x86_64-fortanix-unknown-sgx";
 }
 ```
@@ -164,6 +193,13 @@ rustPlatform.buildRustPackage {
 Please note that the code will be compiled twice here: once in `release` mode
 for the `buildPhase`, and again in `debug` mode for the `checkPhase`.
 
+Test flags, e.g., `--features xxx/yyy`, can be passed to `cargo test` via the
+`cargoTestFlags` attribute.
+
+Another attribute, called `checkFlags`, is used to pass arguments to the test
+binary itself, as stated
+(here)[https://doc.rust-lang.org/cargo/commands/cargo-test.html].
+
 #### Tests relying on the structure of the `target/` directory
 
 Some tests may rely on the structure of the `target/` directory. Those tests
@@ -196,7 +232,7 @@ sometimes it may be necessary to disable this so the tests run consecutively.
 ```nix
 rustPlatform.buildRustPackage {
   /* ... */
-  cargoParallelTestThreads = false;
+  dontUseCargoParallelTests = true;
 }
 ```
 
@@ -227,7 +263,7 @@ Otherwise, some steps may fail because of the modified directory structure of `t
 source code in a reproducible way. If it is missing or out-of-date one can use
 the `cargoPatches` attribute to update or add it.
 
-```
+```nix
 rustPlatform.buildRustPackage rec {
   (...)
   cargoPatches = [
@@ -237,6 +273,199 @@ rustPlatform.buildRustPackage rec {
 }
 ```
 
+## Compiling non-Rust packages that include Rust code
+
+Several non-Rust packages incorporate Rust code for performance- or
+security-sensitive parts. `rustPlatform` exposes several functions and
+hooks that can be used to integrate Cargo in non-Rust packages.
+
+### Vendoring of dependencies
+
+Since network access is not allowed in sandboxed builds, Rust crate
+dependencies need to be retrieved using a fetcher. `rustPlatform`
+provides the `fetchCargoTarball` fetcher, which vendors all
+dependencies of a crate. For example, given a source path `src`
+containing `Cargo.toml` and `Cargo.lock`, `fetchCargoTarball`
+can be used as follows:
+
+```nix
+cargoDeps = rustPlatform.fetchCargoTarball {
+  inherit src;
+  hash = "sha256-BoHIN/519Top1NUBjpB/oEMqi86Omt3zTQcXFWqrek0=";
+};
+```
+
+The `src` attribute is required, as well as a hash specified through
+one of the `sha256` or `hash` attributes. The following optional
+attributes can also be used:
+
+* `name`: the name that is used for the dependencies tarball.  If
+  `name` is not specified, then the name `cargo-deps` will be used.
+* `sourceRoot`: when the `Cargo.lock`/`Cargo.toml` are in a
+  subdirectory, `sourceRoot` specifies the relative path to these
+  files.
+* `patches`: patches to apply before vendoring. This is useful when
+  the `Cargo.lock`/`Cargo.toml` files need to be patched before
+  vendoring.
+
+### Hooks
+
+`rustPlatform` provides the following hooks to automate Cargo builds:
+
+* `cargoSetupHook`: configure Cargo to use depenencies vendored
+  through `fetchCargoTarball`. This hook uses the `cargoDeps`
+  environment variable to find the vendored dependencies. If a project
+  already vendors its dependencies, the variable `cargoVendorDir` can
+  be used instead. When the `Cargo.toml`/`Cargo.lock` files are not in
+  `sourceRoot`, then the optional `cargoRoot` is used to specify the
+  Cargo root directory relative to `sourceRoot`.
+* `cargoBuildHook`: use Cargo to build a crate. If the crate to be
+  built is a crate in e.g. a Cargo workspace, the relative path to the
+  crate to build can be set through the optional `buildAndTestSubdir`
+  environment variable. Additional Cargo build flags can be passed
+  through `cargoBuildFlags`.
+* `maturinBuildHook`: use [Maturin](https://github.com/PyO3/maturin)
+  to build a Python wheel. Similar to `cargoBuildHook`, the optional
+  variable `buildAndTestSubdir` can be used to build a crate in a
+  Cargo workspace. Additional maturin flags can be passed through
+  `maturinBuildFlags`.
+* `cargoCheckHook`: run tests using Cargo. The build type for checks
+  can be set using `cargoCheckType`. Additional flags can be passed to
+  the tests using `checkFlags` and `checkFlagsArray`. By default,
+  tests are run in parallel. This can be disabled by setting
+  `dontUseCargoParallelTests`.
+* `cargoInstallHook`: install binaries and static/shared libraries
+  that were built using `cargoBuildHook`.
+
+### Examples
+
+#### Python package using `setuptools-rust`
+
+For Python packages using `setuptools-rust`, you can use
+`fetchCargoTarball` and `cargoSetupHook` to retrieve and set up Cargo
+dependencies. The build itself is then performed by
+`buildPythonPackage`.
+
+The following example outlines how the `tokenizers` Python package is
+built. Since the Python package is in the `source/bindings/python`
+directory of the *tokenizers* project's source archive, we use
+`sourceRoot` to point the tooling to this directory:
+
+```nix
+{ fetchFromGitHub
+, buildPythonPackage
+, rustPlatform
+, setuptools-rust
+}:
+
+buildPythonPackage rec {
+  pname = "tokenizers";
+  version = "0.10.0";
+
+  src = fetchFromGitHub {
+    owner = "huggingface";
+    repo = pname;
+    rev = "python-v${version}";
+    hash = "sha256-rQ2hRV52naEf6PvRsWVCTN7B1oXAQGmnpJw4iIdhamw=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src sourceRoot;
+    name = "${pname}-${version}";
+    hash = "sha256-BoHIN/519Top1NUBjpB/oEMqi86Omt3zTQcXFWqrek0=";
+  };
+
+  sourceRoot = "source/bindings/python";
+
+  nativeBuildInputs = [ setuptools-rust ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  # ...
+}
+```
+
+In some projects, the Rust crate is not in the main Python source
+directory.  In such cases, the `cargoRoot` attribute can be used to
+specify the crate's directory relative to `sourceRoot`. In the
+following example, the crate is in `src/rust`, as specified in the
+`cargoRoot` attribute. Note that we also need to specify the correct
+path for `fetchCargoTarball`.
+
+```nix
+
+{ buildPythonPackage
+, fetchPypi
+, rustPlatform
+, setuptools-rust
+, openssl
+}:
+
+buildPythonPackage rec {
+  pname = "cryptography";
+  version = "3.4.2"; # Also update the hash in vectors.nix
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1i1mx5y9hkyfi9jrrkcw804hmkcglxi6rmf7vin7jfnbr2bf4q64";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    sourceRoot = "${pname}-${version}/${cargoRoot}";
+    name = "${pname}-${version}";
+    hash = "sha256-PS562W4L1NimqDV2H0jl5vYhL08H9est/pbIxSdYVfo=";
+  };
+
+  cargoRoot = "src/rust";
+
+  # ...
+}
+```
+
+#### Python package using `maturin`
+
+Python packages that use [Maturin](https://github.com/PyO3/maturin)
+can be built with `fetchCargoTarball`, `cargoSetupHook`, and
+`maturinBuildHook`. For example, the following (partial) derivation
+builds the `retworkx` Python package. `fetchCargoTarball` and
+`cargoSetupHook` are used to fetch and set up the crate dependencies.
+`maturinBuildHook` is used to perform the build.
+
+```nix
+{ lib
+, buildPythonPackage
+, rustPlatform
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "retworkx";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "Qiskit";
+    repo = "retworkx";
+    rev = version;
+    sha256 = "11n30ldg3y3y6qxg3hbj837pnbwjkqw3nxq6frds647mmmprrd20";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-heOBK8qi2nuc/Ib+I/vLzZ1fUUD/G/KTw9d7M4Hz5O0=";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
+
+  # ...
+}
+```
+
 ## Compiling Rust crates using Nix instead of Cargo
 
 ### Simple operation
@@ -261,7 +490,7 @@ an example for a minimal `hello` crate:
 
 Now, the file produced by the call to `carnix`, called `hello.nix`, looks like:
 
-```
+```nix
 # Generated by carnix 0.6.5: carnix -o hello.nix --src ./. Cargo.lock --standalone
 { stdenv, buildRustCrate, fetchgit }:
 let kernel = stdenv.buildPlatform.parsed.kernel.name;
@@ -290,7 +519,7 @@ dependencies, for instance by adding a single line `libc="*"` to our
 `Cargo.lock`. Then, `carnix` needs to be run again, and produces the
 following nix file:
 
-```
+```nix
 # Generated by carnix 0.6.5: carnix -o hello.nix --src ./. Cargo.lock --standalone
 { stdenv, buildRustCrate, fetchgit }:
 let kernel = stdenv.buildPlatform.parsed.kernel.name;
@@ -345,7 +574,7 @@ Some crates require external libraries. For crates from
 Starting from that file, one can add more overrides, to add features
 or build inputs by overriding the hello crate in a seperate file.
 
-```
+```nix
 with import <nixpkgs> {};
 ((import ./hello.nix).hello {}).override {
   crateOverrides = defaultCrateOverrides // {
@@ -365,7 +594,7 @@ derivation depend on the crate's version, the `attrs` argument of
 the override above can be read, as in the following example, which
 patches the derivation:
 
-```
+```nix
 with import <nixpkgs> {};
 ((import ./hello.nix).hello {}).override {
   crateOverrides = defaultCrateOverrides // {
@@ -386,7 +615,7 @@ dependencies. For instance, to override the build inputs for crate
 `libc` in the example above, where `libc` is a dependency of the main
 crate, we could do:
 
-```
+```nix
 with import <nixpkgs> {};
 ((import hello.nix).hello {}).override {
   crateOverrides = defaultCrateOverrides // {
@@ -402,27 +631,27 @@ general. A number of other parameters can be overridden:
 
 - The version of rustc used to compile the crate:
 
-  ```
+  ```nix
   (hello {}).override { rust = pkgs.rust; };
   ```
 
 - Whether to build in release mode or debug mode (release mode by
   default):
 
-  ```
+  ```nix
   (hello {}).override { release = false; };
   ```
 
 - Whether to print the commands sent to rustc when building
   (equivalent to `--verbose` in cargo:
 
-  ```
+  ```nix
   (hello {}).override { verbose = false; };
   ```
 
 - Extra arguments to be passed to `rustc`:
 
-  ```
+  ```nix
   (hello {}).override { extraRustcOpts = "-Z debuginfo=2"; };
   ```
 
@@ -434,7 +663,7 @@ general. A number of other parameters can be overridden:
   `postInstall`. As an example, here is how to create a new module
   before running the build script:
 
-  ```
+  ```nix
   (hello {}).override {
     preConfigure = ''
        echo "pub const PATH=\"${hi.out}\";" >> src/path.rs"
@@ -448,7 +677,7 @@ One can also supply features switches. For example, if we want to
 compile `diesel_cli` only with the `postgres` feature, and no default
 features, we would write:
 
-```
+```nix
 (callPackage ./diesel.nix {}).diesel {
   default = false;
   postgres = true;
@@ -471,7 +700,7 @@ Using the example `hello` project above, we want to do the following:
 
 A typical `shell.nix` might look like:
 
-```
+```nix
 with import <nixpkgs> {};
 
 stdenv.mkDerivation {
@@ -493,7 +722,7 @@ stdenv.mkDerivation {
 ```
 
 You should now be able to run the following:
-```
+```ShellSesssion
 $ nix-shell --pure
 $ cargo build
 $ cargo test
@@ -503,7 +732,7 @@ $ cargo test
 To control your rust version (i.e. use nightly) from within `shell.nix` (or
 other nix expressions) you can use the following `shell.nix`
 
-```
+```nix
 # Latest Nightly
 with import <nixpkgs> {};
 let src = fetchFromGitHub {
@@ -518,7 +747,7 @@ with import "${src.out}/rust-overlay.nix" pkgs pkgs;
 stdenv.mkDerivation {
   name = "rust-env";
   buildInputs = [
-    # Note: to use use stable, just replace `nightly` with `stable`
+    # Note: to use stable, just replace `nightly` with `stable`
     latest.rustChannels.nightly.rust
 
     # Add some extra dependencies from `pkgs`
@@ -531,7 +760,7 @@ stdenv.mkDerivation {
 ```
 
 Now run:
-```
+```ShellSession
 $ rustc --version
 rustc 1.26.0-nightly (188e693b3 2018-03-26)
 ```
@@ -566,7 +795,7 @@ in the `~/.config/nixpkgs/overlays` directory.
 
 Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.nix`, or similar:
 
-```
+```nix
 { pkgs ? import <nixpkgs> {
     overlays = [
       (import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz))
diff --git a/nixpkgs/doc/languages-frameworks/vim.section.md b/nixpkgs/doc/languages-frameworks/vim.section.md
index 155dacc237b3..22b5e6f3013b 100644
--- a/nixpkgs/doc/languages-frameworks/vim.section.md
+++ b/nixpkgs/doc/languages-frameworks/vim.section.md
@@ -156,7 +156,7 @@ assuming that "using latest version" is ok most of the time.
 
 First create a vim-scripts file having one plugin name per line. Example:
 
-```
+```vim
 "tlib"
 {'name': 'vim-addon-sql'}
 {'filetype_regex': '\%(vim)$', 'names': ['reload', 'vim-dev-plugin']}
@@ -197,7 +197,7 @@ nix-shell -p vimUtils.vim_with_vim2nix --command "vim -c 'source generate.vim'"
 You should get a Vim buffer with the nix derivations (output1) and vam.pluginDictionaries (output2).
 You can add your Vim to your system's configuration file like this and start it by "vim-my":
 
-```
+```nix
 my-vim =
   let plugins = let inherit (vimUtils) buildVimPluginFrom2Nix; in {
     copy paste output1 here
@@ -217,7 +217,7 @@ my-vim =
 
 Sample output1:
 
-```
+```nix
 "reload" = buildVimPluginFrom2Nix { # created by nix#NixDerivation
   name = "reload";
   src = fetchgit {
@@ -248,7 +248,7 @@ Nix expressions for Vim plugins are stored in [pkgs/misc/vim-plugins](/pkgs/misc
 
 Some plugins require overrides in order to function properly. Overrides are placed in [overrides.nix](/pkgs/misc/vim-plugins/overrides.nix). Overrides are most often required when a plugin requires some dependencies, or extra steps are required during the build process. For example `deoplete-fish` requires both `deoplete-nvim` and `vim-fish`, and so the following override was added:
 
-```
+```nix
 deoplete-fish = super.deoplete-fish.overrideAttrs(old: {
   dependencies = with super; [ deoplete-nvim vim-fish ];
 });
diff --git a/nixpkgs/doc/manual.xml b/nixpkgs/doc/manual.xml
index 8cecb01fc227..1c5a7bbcaa9e 100644
--- a/nixpkgs/doc/manual.xml
+++ b/nixpkgs/doc/manual.xml
@@ -15,11 +15,11 @@
  </part>
  <part>
   <title>Standard environment</title>
-  <xi:include href="stdenv/stdenv.xml" />
-  <xi:include href="stdenv/meta.xml" />
-  <xi:include href="stdenv/multiple-output.xml" />
+  <xi:include href="stdenv/stdenv.chapter.xml" />
+  <xi:include href="stdenv/meta.chapter.xml" />
+  <xi:include href="stdenv/multiple-output.chapter.xml" />
   <xi:include href="stdenv/cross-compilation.chapter.xml" />
-  <xi:include href="stdenv/platform-notes.xml" />
+  <xi:include href="stdenv/platform-notes.chapter.xml" />
  </part>
  <part>
   <title>Builders</title>
@@ -35,6 +35,7 @@
   <xi:include href="contributing/quick-start.xml" />
   <xi:include href="contributing/coding-conventions.xml" />
   <xi:include href="contributing/submitting-changes.chapter.xml" />
+  <xi:include href="contributing/vulnerability-roundup.chapter.xml" />
   <xi:include href="contributing/reviewing-contributions.xml" />
   <xi:include href="contributing/contributing-to-documentation.xml" />
  </part>
diff --git a/nixpkgs/doc/stdenv/cross-compilation.chapter.md b/nixpkgs/doc/stdenv/cross-compilation.chapter.md
index d7a07a621be7..96641426628e 100644
--- a/nixpkgs/doc/stdenv/cross-compilation.chapter.md
+++ b/nixpkgs/doc/stdenv/cross-compilation.chapter.md
@@ -16,7 +16,7 @@ Nixpkgs follows the [conventions of GNU autoconf](https://gcc.gnu.org/onlinedocs
 In Nixpkgs, these three platforms are defined as attribute sets under the names `buildPlatform`, `hostPlatform`, and `targetPlatform`. They are always defined as attributes in the standard environment. That means one can access them like:
 
 ```nix
-{ stdenv, fooDep, barDep, .. }: ...stdenv.buildPlatform...
+{ stdenv, fooDep, barDep, ... }: ...stdenv.buildPlatform...
 ```
 
 `buildPlatform`
@@ -99,15 +99,26 @@ Some examples will make this table clearer. Suppose there's some package that is
 
 Some frequently encountered problems when packaging for cross-compilation should be answered here. Ideally, the information above is exhaustive, so this section cannot provide any new information, but it is ludicrous and cruel to expect everyone to spend effort working through the interaction of many features just to figure out the same answer to the same common problem. Feel free to add to this list!
 
+#### My package fails to find a binutils command (`cc`/`ar`/`ld` etc.) {#cross-qa-fails-to-find-binutils}
+Many packages assume that an unprefixed binutils (`cc`/`ar`/`ld` etc.) is available, but Nix doesn't provide one. It only provides a prefixed one, just as it only does for all the other binutils programs. It may be necessary to patch the package to fix the build system to use a prefix. For instance, instead of `cc`, use `${stdenv.cc.targetPrefix}cc`.
+
+```nix
+makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+```
+
+#### How do I avoid compiling a GCC cross-compiler from source? {#cross-qa-avoid-compiling-gcc-cross-compiler}
+On less powerful machines, it can be inconvenient to cross-compile a package only to find out that GCC has to be compiled from source, which could take up to several hours. Nixpkgs maintains a limited [cross-related jobset on Hydra](https://hydra.nixos.org/jobset/nixpkgs/cross-trunk), which tests cross-compilation to various platforms from build platforms "x86\_64-darwin", "x86\_64-linux", and "aarch64-linux".  See `pkgs/top-level/release-cross.nix` for the full list of target platforms and packages.  For instance, the following invocation fetches the pre-built cross-compiled GCC for `armv6l-unknown-linux-gnueabihf` and builds GNU Hello from source.
+
+```ShellSession
+$ nix-build '<nixpkgs>' -A pkgsCross.raspberryPi.hello
+```
+
 #### What if my package's build system needs to build a C program to be run under the build environment? {#cross-qa-build-c-program-in-build-environment}
 Add the following to your `mkDerivation` invocation.
 ```nix
 depsBuildBuild = [ buildPackages.stdenv.cc ];
 ```
 
-#### My package fails to find `ar`. {#cross-qa-fails-to-find-ar}
-Many packages assume that an unprefixed `ar` is available, but Nix doesn't provide one. It only provides a prefixed one, just as it only does for all the other binutils programs. It may be necessary to patch the package to fix the build system to use a prefixed `ar`.
-
 ####  My package's testsuite needs to run host platform code. {#cross-testsuite-runs-host-code}
 
 Add the following to your `mkDerivation` invocation.
@@ -179,7 +190,7 @@ If one imagines the saturating self references at the end being replaced with in
 ```
 (native..., native, native, native, foreign, foreign, foreign...)
 ```
-On can then imagine any sequence of platforms such that there are bootstrap stages with their 3 platforms determined by "sliding a window" that is the 3 tuple through the sequence. This was the original model for bootstrapping. Without a target platform (assume a better world where all compilers are multi-target and all standard libraries are built in their own derivation), this is sufficient. Conversely if one wishes to cross compile "faster", with a "Canadian Cross" bootstrapping stage where `build != host != target`, more bootstrapping stages are needed since no sliding window provides the pesky `pkgsBuildTarget` package set since it skips the Canadian cross stage's "host".
+One can then imagine any sequence of platforms such that there are bootstrap stages with their 3 platforms determined by "sliding a window" that is the 3 tuple through the sequence. This was the original model for bootstrapping. Without a target platform (assume a better world where all compilers are multi-target and all standard libraries are built in their own derivation), this is sufficient. Conversely if one wishes to cross compile "faster", with a "Canadian Cross" bootstrapping stage where `build != host != target`, more bootstrapping stages are needed since no sliding window provides the pesky `pkgsBuildTarget` package set since it skips the Canadian cross stage's "host".
 
 
 ::: note
diff --git a/nixpkgs/doc/stdenv/meta.chapter.md b/nixpkgs/doc/stdenv/meta.chapter.md
new file mode 100644
index 000000000000..dd9f53258555
--- /dev/null
+++ b/nixpkgs/doc/stdenv/meta.chapter.md
@@ -0,0 +1,194 @@
+# Meta-attributes {#chap-meta}
+
+Nix packages can declare *meta-attributes* that contain information about a package such as a description, its homepage, its license, and so on. For instance, the GNU Hello package has a `meta` declaration like this:
+
+```nix
+meta = with lib; {
+  description = "A program that produces a familiar, friendly greeting";
+  longDescription = ''
+    GNU Hello is a program that prints "Hello, world!" when you run it.
+    It is fully customizable.
+  '';
+  homepage = "https://www.gnu.org/software/hello/manual/";
+  license = licenses.gpl3Plus;
+  maintainers = [ maintainers.eelco ];
+  platforms = platforms.all;
+};
+```
+
+Meta-attributes are not passed to the builder of the package. Thus, a change to a meta-attribute doesn’t trigger a recompilation of the package. The value of a meta-attribute must be a string.
+
+The meta-attributes of a package can be queried from the command-line using `nix-env`:
+
+```ShellSession
+$ nix-env -qa hello --json
+{
+    "hello": {
+        "meta": {
+            "description": "A program that produces a familiar, friendly greeting",
+            "homepage": "https://www.gnu.org/software/hello/manual/",
+            "license": {
+                "fullName": "GNU General Public License version 3 or later",
+                "shortName": "GPLv3+",
+                "url": "http://www.fsf.org/licensing/licenses/gpl.html"
+            },
+            "longDescription": "GNU Hello is a program that prints \"Hello, world!\" when you run it.\nIt is fully customizable.\n",
+            "maintainers": [
+                "Ludovic Court\u00e8s <ludo@gnu.org>"
+            ],
+            "platforms": [
+                "i686-linux",
+                "x86_64-linux",
+                "armv5tel-linux",
+                "armv7l-linux",
+                "mips32-linux",
+                "x86_64-darwin",
+                "i686-cygwin",
+                "i686-freebsd",
+                "x86_64-freebsd",
+                "i686-openbsd",
+                "x86_64-openbsd"
+            ],
+            "position": "/home/user/dev/nixpkgs/pkgs/applications/misc/hello/default.nix:14"
+        },
+        "name": "hello-2.9",
+        "system": "x86_64-linux"
+    }
+}
+```
+
+`nix-env` knows about the `description` field specifically:
+
+```ShellSession
+$ nix-env -qa hello --description
+hello-2.3  A program that produces a familiar, friendly greeting
+```
+
+## Standard meta-attributes {#sec-standard-meta-attributes}
+
+It is expected that each meta-attribute is one of the following:
+
+### `description` {#var-meta-description}
+
+A short (one-line) description of the package. This is shown by `nix-env -q --description` and also on the Nixpkgs release pages.
+
+Don’t include a period at the end. Don’t include newline characters. Capitalise the first character. For brevity, don’t repeat the name of package --- just describe what it does.
+
+Wrong: `"libpng is a library that allows you to decode PNG images."`
+
+Right: `"A library for decoding PNG images"`
+
+### `longDescription` {#var-meta-longDescription}
+
+An arbitrarily long description of the package.
+
+### `branch` {#var-meta-branch}
+
+Release branch. Used to specify that a package is not going to receive updates that are not in this branch; for example, Linux kernel 3.0 is supposed to be updated to 3.0.X, not 3.1.
+
+### `homepage` {#var-meta-homepage}
+
+The package’s homepage. Example: `https://www.gnu.org/software/hello/manual/`
+
+### `downloadPage` {#var-meta-downloadPage}
+
+The page where a link to the current version can be found. Example: `https://ftp.gnu.org/gnu/hello/`
+
+### `changelog` {#var-meta-changelog}
+
+A link or a list of links to the location of Changelog for a package. A link may use expansion to refer to the correct changelog version. Example: `"https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${version}"`
+
+### `license` {#var-meta-license}
+
+The license, or licenses, for the package. One from the attribute set defined in [`nixpkgs/lib/licenses.nix`](https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix). At this moment using both a list of licenses and a single license is valid. If the license field is in the form of a list representation, then it means that parts of the package are licensed differently. Each license should preferably be referenced by their attribute. The non-list attribute value can also be a space delimited string representation of the contained attribute `shortNames` or `spdxIds`. The following are all valid examples:
+
+- Single license referenced by attribute (preferred) `lib.licenses.gpl3Only`.
+- Single license referenced by its attribute shortName (frowned upon) `"gpl3Only"`.
+- Single license referenced by its attribute spdxId (frowned upon) `"GPL-3.0-only"`.
+- Multiple licenses referenced by attribute (preferred) `with lib.licenses; [ asl20 free ofl ]`.
+- Multiple licenses referenced as a space delimited string of attribute shortNames (frowned upon) `"asl20 free ofl"`.
+
+For details, see [Licenses](#sec-meta-license).
+
+### `maintainers` {#var-meta-maintainers}
+
+A list of the maintainers of this Nix expression. Maintainers are defined in [`nixpkgs/maintainers/maintainer-list.nix`](https://github.com/NixOS/nixpkgs/blob/master/maintainers/maintainer-list.nix). There is no restriction to becoming a maintainer, just add yourself to that list in a separate commit titled “maintainers: add alice”, and reference maintainers with `maintainers = with lib.maintainers; [ alice bob ]`.
+
+### `priority` {#var-meta-priority}
+
+The *priority* of the package, used by `nix-env` to resolve file name conflicts between packages. See the Nix manual page for `nix-env` for details. Example: `"10"` (a low-priority package).
+
+### `platforms` {#var-meta-platforms}
+
+The list of Nix platform types on which the package is supported. Hydra builds packages according to the platform specified. If no platform is specified, the package does not have prebuilt binaries. An example is:
+
+```nix
+meta.platforms = lib.platforms.linux;
+```
+
+Attribute Set `lib.platforms` defines [various common lists](https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix) of platforms types.
+
+### `tests` {#var-meta-tests}
+
+::: warning
+This attribute is special in that it is not actually under the `meta` attribute set but rather under the `passthru` attribute set. This is due to how `meta` attributes work, and the fact that they are supposed to contain only metadata, not derivations.
+:::
+
+An attribute set with as values tests. A test is a derivation, which builds successfully when the test passes, and fails to build otherwise. A derivation that is a test needs to have `meta.timeout` defined.
+
+The NixOS tests are available as `nixosTests` in parameters of derivations. For instance, the OpenSMTPD derivation includes lines similar to:
+
+```nix
+{ /* ... */, nixosTests }:
+{
+  # ...
+  passthru.tests = {
+    basic-functionality-and-dovecot-integration = nixosTests.opensmtpd;
+  };
+}
+```
+
+### `timeout` {#var-meta-timeout}
+
+A timeout (in seconds) for building the derivation. If the derivation takes longer than this time to build, it can fail due to breaking the timeout. However, all computers do not have the same computing power, hence some builders may decide to apply a multiplicative factor to this value. When filling this value in, try to keep it approximately consistent with other values already present in `nixpkgs`.
+
+### `hydraPlatforms` {#var-meta-hydraPlatforms}
+
+The list of Nix platform types for which the Hydra instance at `hydra.nixos.org` will build the package. (Hydra is the Nix-based continuous build system.) It defaults to the value of `meta.platforms`. Thus, the only reason to set `meta.hydraPlatforms` is if you want `hydra.nixos.org` to build the package on a subset of `meta.platforms`, or not at all, e.g.
+
+```nix
+meta.platforms = lib.platforms.linux;
+meta.hydraPlatforms = [];
+```
+
+### `broken` {#var-meta-broken}
+
+If set to `true`, the package is marked as "broken", meaning that it won’t show up in `nix-env -qa`, and cannot be built or installed. Such packages should be removed from Nixpkgs eventually unless they are fixed.
+
+### `updateWalker` {#var-meta-updateWalker}
+
+If set to `true`, the package is tested to be updated correctly by the `update-walker.sh` script without additional settings. Such packages have `meta.version` set and their homepage (or the page specified by `meta.downloadPage`) contains a direct link to the package tarball.
+
+## Licenses {#sec-meta-license}
+
+The `meta.license` attribute should preferably contain a value from `lib.licenses` defined in [`nixpkgs/lib/licenses.nix`](https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix), or in-place license description of the same format if the license is unlikely to be useful in another expression.
+
+Although it’s typically better to indicate the specific license, a few generic options are available:
+
+### `lib.licenses.free`, `"free"`
+
+Catch-all for free software licenses not listed above.
+
+### `lib.licenses.unfreeRedistributable`, `"unfree-redistributable"`
+
+Unfree package that can be redistributed in binary form. That is, it’s legal to redistribute the *output* of the derivation. This means that the package can be included in the Nixpkgs channel.
+
+Sometimes proprietary software can only be redistributed unmodified. Make sure the builder doesn’t actually modify the original binaries; otherwise we’re breaking the license. For instance, the NVIDIA X11 drivers can be redistributed unmodified, but our builder applies `patchelf` to make them work. Thus, its license is `"unfree"` and it cannot be included in the Nixpkgs channel.
+
+### `lib.licenses.unfree`, `"unfree"`
+
+Unfree package that cannot be redistributed. You can build it yourself, but you cannot redistribute the output of the derivation. Thus it cannot be included in the Nixpkgs channel.
+
+### `lib.licenses.unfreeRedistributableFirmware`, `"unfree-redistributable-firmware"`
+
+This package supplies unfree, redistributable firmware. This is a separate value from `unfree-redistributable` because not everybody cares whether firmware is free.
diff --git a/nixpkgs/doc/stdenv/meta.xml b/nixpkgs/doc/stdenv/meta.xml
deleted file mode 100644
index 91ace0b9cc95..000000000000
--- a/nixpkgs/doc/stdenv/meta.xml
+++ /dev/null
@@ -1,349 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="chap-meta">
- <title>Meta-attributes</title>
- <para>
-  Nix packages can declare <emphasis>meta-attributes</emphasis> that contain information about a package such as a description, its homepage, its license, and so on. For instance, the GNU Hello package has a <varname>meta</varname> declaration like this:
-<programlisting>
-meta = with lib; {
-  description = "A program that produces a familiar, friendly greeting";
-  longDescription = ''
-    GNU Hello is a program that prints "Hello, world!" when you run it.
-    It is fully customizable.
-  '';
-  homepage = "https://www.gnu.org/software/hello/manual/";
-  license = licenses.gpl3Plus;
-  maintainers = [ maintainers.eelco ];
-  platforms = platforms.all;
-};
-</programlisting>
- </para>
- <para>
-  Meta-attributes are not passed to the builder of the package. Thus, a change to a meta-attribute doesn’t trigger a recompilation of the package. The value of a meta-attribute must be a string.
- </para>
- <para>
-  The meta-attributes of a package can be queried from the command-line using <command>nix-env</command>:
-<screen>
-<prompt>$ </prompt>nix-env -qa hello --json
-{
-    "hello": {
-        "meta": {
-            "description": "A program that produces a familiar, friendly greeting",
-            "homepage": "https://www.gnu.org/software/hello/manual/",
-            "license": {
-                "fullName": "GNU General Public License version 3 or later",
-                "shortName": "GPLv3+",
-                "url": "http://www.fsf.org/licensing/licenses/gpl.html"
-            },
-            "longDescription": "GNU Hello is a program that prints \"Hello, world!\" when you run it.\nIt is fully customizable.\n",
-            "maintainers": [
-                "Ludovic Court\u00e8s &lt;ludo@gnu.org>"
-            ],
-            "platforms": [
-                "i686-linux",
-                "x86_64-linux",
-                "armv5tel-linux",
-                "armv7l-linux",
-                "mips32-linux",
-                "x86_64-darwin",
-                "i686-cygwin",
-                "i686-freebsd",
-                "x86_64-freebsd",
-                "i686-openbsd",
-                "x86_64-openbsd"
-            ],
-            "position": "/home/user/dev/nixpkgs/pkgs/applications/misc/hello/default.nix:14"
-        },
-        "name": "hello-2.9",
-        "system": "x86_64-linux"
-    }
-}
-
-
-</screen>
-  <command>nix-env</command> knows about the <varname>description</varname> field specifically:
-<screen>
-<prompt>$ </prompt>nix-env -qa hello --description
-hello-2.3  A program that produces a familiar, friendly greeting
-</screen>
- </para>
- <section xml:id="sec-standard-meta-attributes">
-  <title>Standard meta-attributes</title>
-
-  <para>
-   It is expected that each meta-attribute is one of the following:
-  </para>
-
-  <variablelist>
-   <varlistentry xml:id="var-meta-description">
-    <term>
-     <varname>description</varname>
-    </term>
-    <listitem>
-     <para>
-      A short (one-line) description of the package. This is shown by <command>nix-env -q --description</command> and also on the Nixpkgs release pages.
-     </para>
-     <para>
-      Don’t include a period at the end. Don’t include newline characters. Capitalise the first character. For brevity, don’t repeat the name of package — just describe what it does.
-     </para>
-     <para>
-      Wrong: <literal>"libpng is a library that allows you to decode PNG images."</literal>
-     </para>
-     <para>
-      Right: <literal>"A library for decoding PNG images"</literal>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-longDescription">
-    <term>
-     <varname>longDescription</varname>
-    </term>
-    <listitem>
-     <para>
-      An arbitrarily long description of the package.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-branch">
-    <term>
-     <varname>branch</varname>
-    </term>
-    <listitem>
-     <para>
-      Release branch. Used to specify that a package is not going to receive updates that are not in this branch; for example, Linux kernel 3.0 is supposed to be updated to 3.0.X, not 3.1.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-homepage">
-    <term>
-     <varname>homepage</varname>
-    </term>
-    <listitem>
-     <para>
-      The package’s homepage. Example: <literal>https://www.gnu.org/software/hello/manual/</literal>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-downloadPage">
-    <term>
-     <varname>downloadPage</varname>
-    </term>
-    <listitem>
-     <para>
-      The page where a link to the current version can be found. Example: <literal>https://ftp.gnu.org/gnu/hello/</literal>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-changelog">
-    <term>
-     <varname>changelog</varname>
-    </term>
-    <listitem>
-     <para>
-      A link or a list of links to the location of Changelog for a package. A link may use expansion to refer to the correct changelog version. Example: <literal>"https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${version}"</literal>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-license">
-    <term>
-     <varname>license</varname>
-    </term>
-    <listitem>
-     <para>
-      The license, or licenses, for the package. One from the attribute set defined in <link
-          xlink:href="https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix"> <filename>nixpkgs/lib/licenses.nix</filename></link>. At this moment using both a list of licenses and a single license is valid. If the license field is in the form of a list representation, then it means that parts of the package are licensed differently. Each license should preferably be referenced by their attribute. The non-list attribute value can also be a space delimited string representation of the contained attribute shortNames or spdxIds. The following are all valid examples:
-      <itemizedlist>
-       <listitem>
-        <para>
-         Single license referenced by attribute (preferred) <literal>lib.licenses.gpl3Only</literal>.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Single license referenced by its attribute shortName (frowned upon) <literal>"gpl3Only"</literal>.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Single license referenced by its attribute spdxId (frowned upon) <literal>"GPL-3.0-only"</literal>.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Multiple licenses referenced by attribute (preferred) <literal>with lib.licenses; [ asl20 free ofl ]</literal>.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Multiple licenses referenced as a space delimited string of attribute shortNames (frowned upon) <literal>"asl20 free ofl"</literal>.
-        </para>
-       </listitem>
-      </itemizedlist>
-      For details, see <xref linkend='sec-meta-license'/>.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-maintainers">
-    <term>
-     <varname>maintainers</varname>
-    </term>
-    <listitem>
-     <para>
-      A list of the maintainers of this Nix expression. Maintainers are defined in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/maintainers/maintainer-list.nix"><filename>nixpkgs/maintainers/maintainer-list.nix</filename></link>. There is no restriction to becoming a maintainer, just add yourself to that list in a separate commit titled 'maintainers: add alice', and reference maintainers with <literal>maintainers = with lib.maintainers; [ alice bob ]</literal>.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-priority">
-    <term>
-     <varname>priority</varname>
-    </term>
-    <listitem>
-     <para>
-      The <emphasis>priority</emphasis> of the package, used by <command>nix-env</command> to resolve file name conflicts between packages. See the Nix manual page for <command>nix-env</command> for details. Example: <literal>"10"</literal> (a low-priority package).
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-platforms">
-    <term>
-     <varname>platforms</varname>
-    </term>
-    <listitem>
-     <para>
-      The list of Nix platform types on which the package is supported. Hydra builds packages according to the platform specified. If no platform is specified, the package does not have prebuilt binaries. An example is:
-<programlisting>
-meta.platforms = lib.platforms.linux;
-</programlisting>
-      Attribute Set <varname>lib.platforms</varname> defines <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix"> various common lists</link> of platforms types.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-tests">
-    <term>
-     <varname>tests</varname>
-    </term>
-    <listitem>
-     <warning>
-      <para>
-       This attribute is special in that it is not actually under the <literal>meta</literal> attribute set but rather under the <literal>passthru</literal> attribute set. This is due to how <literal>meta</literal> attributes work, and the fact that they are supposed to contain only metadata, not derivations.
-      </para>
-     </warning>
-     <para>
-      An attribute set with as values tests. A test is a derivation, which builds successfully when the test passes, and fails to build otherwise. A derivation that is a test needs to have <literal>meta.timeout</literal> defined.
-     </para>
-     <para>
-      The NixOS tests are available as <literal>nixosTests</literal> in parameters of derivations. For instance, the OpenSMTPD derivation includes lines similar to:
-<programlisting>
-{ /* ... */, nixosTests }:
-{
-  # ...
-  passthru.tests = {
-    basic-functionality-and-dovecot-integration = nixosTests.opensmtpd;
-  };
-}
-</programlisting>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-timeout">
-    <term>
-     <varname>timeout</varname>
-    </term>
-    <listitem>
-     <para>
-      A timeout (in seconds) for building the derivation. If the derivation takes longer than this time to build, it can fail due to breaking the timeout. However, all computers do not have the same computing power, hence some builders may decide to apply a multiplicative factor to this value. When filling this value in, try to keep it approximately consistent with other values already present in <literal>nixpkgs</literal>.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-hydraPlatforms">
-    <term>
-     <varname>hydraPlatforms</varname>
-    </term>
-    <listitem>
-     <para>
-      The list of Nix platform types for which the Hydra instance at <literal>hydra.nixos.org</literal> will build the package. (Hydra is the Nix-based continuous build system.) It defaults to the value of <varname>meta.platforms</varname>. Thus, the only reason to set <varname>meta.hydraPlatforms</varname> is if you want <literal>hydra.nixos.org</literal> to build the package on a subset of <varname>meta.platforms</varname>, or not at all, e.g.
-<programlisting>
-meta.platforms = lib.platforms.linux;
-meta.hydraPlatforms = [];
-</programlisting>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-broken">
-    <term>
-     <varname>broken</varname>
-    </term>
-    <listitem>
-     <para>
-      If set to <literal>true</literal>, the package is marked as “broken”, meaning that it won’t show up in <literal>nix-env -qa</literal>, and cannot be built or installed. Such packages should be removed from Nixpkgs eventually unless they are fixed.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-meta-updateWalker">
-    <term>
-     <varname>updateWalker</varname>
-    </term>
-    <listitem>
-     <para>
-      If set to <literal>true</literal>, the package is tested to be updated correctly by the <literal>update-walker.sh</literal> script without additional settings. Such packages have <varname>meta.version</varname> set and their homepage (or the page specified by <varname>meta.downloadPage</varname>) contains a direct link to the package tarball.
-     </para>
-    </listitem>
-   </varlistentry>
-  </variablelist>
- </section>
- <section xml:id="sec-meta-license">
-  <title>Licenses</title>
-
-  <para>
-   The <varname>meta.license</varname> attribute should preferrably contain a value from <varname>lib.licenses</varname> defined in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix"> <filename>nixpkgs/lib/licenses.nix</filename></link>, or in-place license description of the same format if the license is unlikely to be useful in another expression.
-  </para>
-
-  <para>
-   Although it's typically better to indicate the specific license, a few generic options are available:
-   <variablelist>
-    <varlistentry>
-     <term>
-      <varname>lib.licenses.free</varname>, <varname>"free"</varname>
-     </term>
-     <listitem>
-      <para>
-       Catch-all for free software licenses not listed above.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname>lib.licenses.unfreeRedistributable</varname>, <varname>"unfree-redistributable"</varname>
-     </term>
-     <listitem>
-      <para>
-       Unfree package that can be redistributed in binary form. That is, it’s legal to redistribute the <emphasis>output</emphasis> of the derivation. This means that the package can be included in the Nixpkgs channel.
-      </para>
-      <para>
-       Sometimes proprietary software can only be redistributed unmodified. Make sure the builder doesn’t actually modify the original binaries; otherwise we’re breaking the license. For instance, the NVIDIA X11 drivers can be redistributed unmodified, but our builder applies <command>patchelf</command> to make them work. Thus, its license is <varname>"unfree"</varname> and it cannot be included in the Nixpkgs channel.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname>lib.licenses.unfree</varname>, <varname>"unfree"</varname>
-     </term>
-     <listitem>
-      <para>
-       Unfree package that cannot be redistributed. You can build it yourself, but you cannot redistribute the output of the derivation. Thus it cannot be included in the Nixpkgs channel.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname>lib.licenses.unfreeRedistributableFirmware</varname>, <varname>"unfree-redistributable-firmware"</varname>
-     </term>
-     <listitem>
-      <para>
-       This package supplies unfree, redistributable firmware. This is a separate value from <varname>unfree-redistributable</varname> because not everybody cares whether firmware is free.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </para>
- </section>
-</chapter>
diff --git a/nixpkgs/doc/stdenv/multiple-output.chapter.md b/nixpkgs/doc/stdenv/multiple-output.chapter.md
new file mode 100644
index 000000000000..90bc25bef739
--- /dev/null
+++ b/nixpkgs/doc/stdenv/multiple-output.chapter.md
@@ -0,0 +1,128 @@
+# Multiple-output packages {#chap-multiple-output}
+
+## Introduction {#sec-multiple-outputs-introduction}
+
+The Nix language allows a derivation to produce multiple outputs, which is similar to what is utilized by other Linux distribution packaging systems. The outputs reside in separate Nix store paths, so they can be mostly handled independently of each other, including passing to build inputs, garbage collection or binary substitution. The exception is that building from source always produces all the outputs.
+
+The main motivation is to save disk space by reducing runtime closure sizes; consequently also sizes of substituted binaries get reduced. Splitting can be used to have more granular runtime dependencies, for example the typical reduction is to split away development-only files, as those are typically not needed during runtime. As a result, closure sizes of many packages can get reduced to a half or even much less.
+
+::: note
+The reduction effects could be instead achieved by building the parts in completely separate derivations. That would often additionally reduce build-time closures, but it tends to be much harder to write such derivations, as build systems typically assume all parts are being built at once. This compromise approach of single source package producing multiple binary packages is also utilized often by rpm and deb.
+:::
+
+A number of attributes can be used to work with a derivation with multiple outputs. The attribute `outputs` is a list of strings, which are the names of the outputs. For each of these names, an identically named attribute is created, corresponding to that output. The attribute `meta.outputsToInstall` is used to determine the default set of outputs to install when using the derivation name unqualified.
+
+## Installing a split package {#sec-multiple-outputs-installing}
+
+When installing a package with multiple outputs, the package’s `meta.outputsToInstall` attribute determines which outputs are actually installed. `meta.outputsToInstall` is a list whose [default installs binaries and the associated man pages](https://github.com/NixOS/nixpkgs/blob/f1680774340d5443a1409c3421ced84ac1163ba9/pkgs/stdenv/generic/make-derivation.nix#L310-L320). The following sections describe ways to install different outputs.
+
+### Selecting outputs to install via NixOS {#sec-multiple-outputs-installing-nixos}
+
+NixOS provides two ways to select the outputs to install for packages listed in `environment.systemPackages`:
+
+- The configuration option `environment.extraOutputsToInstall` is appended to each package’s `meta.outputsToInstall` attribute to determine the outputs to install. It can for example be used to install `info` documentation or debug symbols for all packages.
+
+- The outputs can be listed as packages in `environment.systemPackages`. For example, the `"out"` and `"info"` outputs for the `coreutils` package can be installed by including `coreutils` and `coreutils.info` in `environment.systemPackages`.
+
+### Selecting outputs to install via `nix-env` {#sec-multiple-outputs-installing-nix-env}
+
+`nix-env` lacks an easy way to select the outputs to install. When installing a package, `nix-env` always installs the outputs listed in `meta.outputsToInstall`, even when the user explicitly selects an output.
+
+::: warning
+`nix-env` silenty disregards the outputs selected by the user, and instead installs the outputs from `meta.outputsToInstall`. For example,
+
+```ShellSession
+$ nix-env -iA nixpkgs.coreutils.info
+```
+
+installs the `"out"` output (`coreutils.meta.outputsToInstall` is `[ "out" ]`) instead of the requested `"info"`.
+:::
+
+The only recourse to select an output with `nix-env` is to override the package’s `meta.outputsToInstall`, using the functions described in <xref linkend="chap-overrides" />. For example, the following overlay adds the `"info"` output for the `coreutils` package:
+
+```nix
+self: super:
+{
+  coreutils = super.coreutils.overrideAttrs (oldAttrs: {
+    meta = oldAttrs.meta // { outputsToInstall = oldAttrs.meta.outputsToInstall or [ "out" ] ++ [ "info" ]; };
+  });
+}
+```
+
+## Using a split package {#sec-multiple-outputs-using-split-packages}
+
+In the Nix language the individual outputs can be reached explicitly as attributes, e.g. `coreutils.info`, but the typical case is just using packages as build inputs.
+
+When a multiple-output derivation gets into a build input of another derivation, the `dev` output is added if it exists, otherwise the first output is added. In addition to that, `propagatedBuildOutputs` of that package which by default contain `$outputBin` and `$outputLib` are also added. (See <xref linkend="multiple-output-file-type-groups" />.)
+
+In some cases it may be desirable to combine different outputs under a single store path. A function `symlinkJoin` can be used to do this. (Note that it may negate some closure size benefits of using a multiple-output package.)
+
+## Writing a split derivation {#sec-multiple-outputs-}
+
+Here you find how to write a derivation that produces multiple outputs.
+
+In nixpkgs there is a framework supporting multiple-output derivations. It tries to cover most cases by default behavior. You can find the source separated in `<nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh>`; it’s relatively well-readable. The whole machinery is triggered by defining the `outputs` attribute to contain the list of desired output names (strings).
+
+```nix
+outputs = [ "bin" "dev" "out" "doc" ];
+```
+
+Often such a single line is enough. For each output an equally named environment variable is passed to the builder and contains the path in nix store for that output. Typically you also want to have the main `out` output, as it catches any files that didn’t get elsewhere.
+
+::: note
+There is a special handling of the `debug` output, described at <xref linkend="stdenv-separateDebugInfo" />.
+:::
+
+### “Binaries first” {#multiple-output-file-binaries-first-convention}
+
+A commonly adopted convention in `nixpkgs` is that executables provided by the package are contained within its first output. This convention allows the dependent packages to reference the executables provided by packages in a uniform manner. For instance, provided with the knowledge that the `perl` package contains a `perl` executable it can be referenced as `${pkgs.perl}/bin/perl` within a Nix derivation that needs to execute a Perl script.
+
+The `glibc` package is a deliberate single exception to the “binaries first” convention. The `glibc` has `libs` as its first output allowing the libraries provided by `glibc` to be referenced directly (e.g. `${stdenv.glibc}/lib/ld-linux-x86-64.so.2`). The executables provided by `glibc` can be accessed via its `bin` attribute (e.g. `${stdenv.glibc.bin}/bin/ldd`).
+
+The reason for why `glibc` deviates from the convention is because referencing a library provided by `glibc` is a very common operation among Nix packages. For instance, third-party executables packaged by Nix are typically patched and relinked with the relevant version of `glibc` libraries from Nix packages (please see the documentation on [patchelf](https://github.com/NixOS/patchelf/blob/master/README) for more details).
+
+### File type groups {#multiple-output-file-type-groups}
+
+The support code currently recognizes some particular kinds of outputs and either instructs the build system of the package to put files into their desired outputs or it moves the files during the fixup phase. Each group of file types has an `outputFoo` variable specifying the output name where they should go. If that variable isn’t defined by the derivation writer, it is guessed – a default output name is defined, falling back to other possibilities if the output isn’t defined.
+
+#### ` $outputDev`
+
+is for development-only files. These include C(++) headers (`include/`), pkg-config (`lib/pkgconfig/`), cmake (`lib/cmake/`) and aclocal files (`share/aclocal/`). They go to `dev` or `out` by default.
+
+#### ` $outputBin`
+
+is meant for user-facing binaries, typically residing in `bin/`. They go to `bin` or `out` by default.
+
+#### ` $outputLib`
+
+is meant for libraries, typically residing in `lib/` and `libexec/`. They go to `lib` or `out` by default.
+
+#### ` $outputDoc`
+
+is for user documentation, typically residing in `share/doc/`. It goes to `doc` or `out` by default.
+
+#### ` $outputDevdoc`
+
+is for _developer_ documentation. Currently we count gtk-doc and devhelp books, typically residing in `share/gtk-doc/` and `share/devhelp/`, in there. It goes to `devdoc` or is removed (!) by default. This is because e.g. gtk-doc tends to be rather large and completely unused by nixpkgs users.
+
+#### ` $outputMan`
+
+is for man pages (except for section 3), typically residing in `share/man/man[0-9]/`. They go to `man` or `$outputBin` by default.
+
+#### ` $outputDevman`
+
+is for section 3 man pages, typically residing in `share/man/man[0-9]/`. They go to `devman` or `$outputMan` by default.
+
+#### ` $outputInfo`
+
+is for info pages, typically residing in `share/info/`. They go to `info` or `$outputBin` by default.
+
+### Common caveats {#sec-multiple-outputs-caveats}
+
+- Some configure scripts don’t like some of the parameters passed by default by the framework, e.g. `--docdir=/foo/bar`. You can disable this by setting `setOutputFlags = false;`.
+
+- The outputs of a single derivation can retain references to each other, but note that circular references are not allowed. (And each strongly-connected component would act as a single output anyway.)
+
+- Most of split packages contain their core functionality in libraries. These libraries tend to refer to various kind of data that typically gets into `out`, e.g. locale strings, so there is often no advantage in separating the libraries into `lib`, as keeping them in `out` is easier.
+
+- Some packages have hidden assumptions on install paths, which complicates splitting.
diff --git a/nixpkgs/doc/stdenv/multiple-output.xml b/nixpkgs/doc/stdenv/multiple-output.xml
deleted file mode 100644
index 20658918db72..000000000000
--- a/nixpkgs/doc/stdenv/multiple-output.xml
+++ /dev/null
@@ -1,262 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter [
-  <!ENTITY ndash "&#x2013;"> <!-- @vcunat likes to use this one ;-) -->
-]>
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="chap-multiple-output">
- <title>Multiple-output packages</title>
- <section xml:id="sec-multiple-outputs-introduction">
-  <title>Introduction</title>
-
-  <para>
-   The Nix language allows a derivation to produce multiple outputs, which is similar to what is utilized by other Linux distribution packaging systems. The outputs reside in separate Nix store paths, so they can be mostly handled independently of each other, including passing to build inputs, garbage collection or binary substitution. The exception is that building from source always produces all the outputs.
-  </para>
-
-  <para>
-   The main motivation is to save disk space by reducing runtime closure sizes; consequently also sizes of substituted binaries get reduced. Splitting can be used to have more granular runtime dependencies, for example the typical reduction is to split away development-only files, as those are typically not needed during runtime. As a result, closure sizes of many packages can get reduced to a half or even much less.
-  </para>
-
-  <note>
-   <para>
-    The reduction effects could be instead achieved by building the parts in completely separate derivations. That would often additionally reduce build-time closures, but it tends to be much harder to write such derivations, as build systems typically assume all parts are being built at once. This compromise approach of single source package producing multiple binary packages is also utilized often by rpm and deb.
-   </para>
-  </note>
-
-  <para>
-   A number of attributes can be used to work with a derivation with multiple outputs. The attribute <varname>outputs</varname> is a list of strings, which are the names of the outputs. For each of these names, an identically named attribute is created, corresponding to that output. The attribute <varname>meta.outputsToInstall</varname> is used to determine the default set of outputs to install when using the derivation name unqualified.
-  </para>
-
- </section>
- <section xml:id="sec-multiple-outputs-installing">
-  <title>Installing a split package</title>
-
-  <para>
-   When installing a package with multiple outputs, the package's <varname>meta.outputsToInstall</varname> attribute determines which outputs are actually installed. <varname>meta.outputsToInstall</varname> is a list whose <link xlink:href="https://github.com/NixOS/nixpkgs/blob/f1680774340d5443a1409c3421ced84ac1163ba9/pkgs/stdenv/generic/make-derivation.nix#L310-L320">default installs binaries and the associated man pages</link>. The following sections describe ways to install different outputs.
-  </para>
-
-  <section xml:id="sec-multiple-outputs-installing-nixos">
-   <title>Selecting outputs to install via NixOS</title>
-
-   <para>
-    NixOS provides two ways to select the outputs to install for packages listed in <varname>environment.systemPackages</varname>:
-   </para>
-
-   <itemizedlist>
-    <listitem>
-     <para>
-      The configuration option <varname>environment.extraOutputsToInstall</varname> is appended to each package's <varname>meta.outputsToInstall</varname> attribute to determine the outputs to install. It can for example be used to install <literal>info</literal> documentation or debug symbols for all packages.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      The outputs can be listed as packages in <varname>environment.systemPackages</varname>. For example, the <literal>"out"</literal> and <literal>"info"</literal> outputs for the <varname>coreutils</varname> package can be installed by including <varname>coreutils</varname> and <varname>coreutils.info</varname> in <varname>environment.systemPackages</varname>.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </section>
-
-  <section xml:id="sec-multiple-outputs-installing-nix-env">
-   <title>Selecting outputs to install via <command>nix-env</command></title>
-
-   <para>
-    <command>nix-env</command> lacks an easy way to select the outputs to install. When installing a package, <command>nix-env</command> always installs the outputs listed in <varname>meta.outputsToInstall</varname>, even when the user explicitly selects an output.
-   </para>
-
-   <warning>
-    <para>
-     <command>nix-env</command> silenty disregards the outputs selected by the user, and instead installs the outputs from <varname>meta.outputsToInstall</varname>. For example,
-    </para>
-<screen><prompt>$ </prompt>nix-env -iA nixpkgs.coreutils.info</screen>
-    <para>
-     installs the <literal>"out"</literal> output (<varname>coreutils.meta.outputsToInstall</varname> is <literal>[ "out" ]</literal>) instead of the requested <literal>"info"</literal>.
-    </para>
-   </warning>
-
-   <para>
-    The only recourse to select an output with <command>nix-env</command> is to override the package's <varname>meta.outputsToInstall</varname>, using the functions described in <xref linkend="chap-overrides" />. For example, the following overlay adds the <literal>"info"</literal> output for the <varname>coreutils</varname> package:
-   </para>
-
-<programlisting>self: super:
-{
-  coreutils = super.coreutils.overrideAttrs (oldAttrs: {
-    meta = oldAttrs.meta // { outputsToInstall = oldAttrs.meta.outputsToInstall or [ "out" ] ++ [ "info" ]; };
-  });
-}
-</programlisting>
-  </section>
- </section>
- <section xml:id="sec-multiple-outputs-using-split-packages">
-  <title>Using a split package</title>
-
-  <para>
-   In the Nix language the individual outputs can be reached explicitly as attributes, e.g. <varname>coreutils.info</varname>, but the typical case is just using packages as build inputs.
-  </para>
-
-  <para>
-   When a multiple-output derivation gets into a build input of another derivation, the <varname>dev</varname> output is added if it exists, otherwise the first output is added. In addition to that, <varname>propagatedBuildOutputs</varname> of that package which by default contain <varname>$outputBin</varname> and <varname>$outputLib</varname> are also added. (See <xref linkend="multiple-output-file-type-groups" />.)
-  </para>
-
-  <para>
-   In some cases it may be desirable to combine different outputs under a single store path. A function <literal>symlinkJoin</literal> can be used to do this. (Note that it may negate some closure size benefits of using a multiple-output package.)
-  </para>
- </section>
- <section xml:id="sec-multiple-outputs-">
-  <title>Writing a split derivation</title>
-
-  <para>
-   Here you find how to write a derivation that produces multiple outputs.
-  </para>
-
-  <para>
-   In nixpkgs there is a framework supporting multiple-output derivations. It tries to cover most cases by default behavior. You can find the source separated in &lt;<filename>nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh</filename>&gt;; it's relatively well-readable. The whole machinery is triggered by defining the <varname>outputs</varname> attribute to contain the list of desired output names (strings).
-  </para>
-
-<programlisting>outputs = [ "bin" "dev" "out" "doc" ];</programlisting>
-
-  <para>
-   Often such a single line is enough. For each output an equally named environment variable is passed to the builder and contains the path in nix store for that output. Typically you also want to have the main <varname>out</varname> output, as it catches any files that didn't get elsewhere.
-  </para>
-
-  <note>
-   <para>
-    There is a special handling of the <varname>debug</varname> output, described at <xref linkend="stdenv-separateDebugInfo" />.
-   </para>
-  </note>
-
-  <section xml:id="multiple-output-file-binaries-first-convention">
-   <title><quote>Binaries first</quote></title>
-
-   <para>
-    A commonly adopted convention in <literal>nixpkgs</literal> is that executables provided by the package are contained within its first output. This convention allows the dependent packages to reference the executables provided by packages in a uniform manner. For instance, provided with the knowledge that the <literal>perl</literal> package contains a <literal>perl</literal> executable it can be referenced as <literal>${pkgs.perl}/bin/perl</literal> within a Nix derivation that needs to execute a Perl script.
-   </para>
-
-   <para>
-    The <literal>glibc</literal> package is a deliberate single exception to the <quote>binaries first</quote> convention. The <literal>glibc</literal> has <literal>libs</literal> as its first output allowing the libraries provided by <literal>glibc</literal> to be referenced directly (e.g. <literal>${stdenv.glibc}/lib/ld-linux-x86-64.so.2</literal>). The executables provided by <literal>glibc</literal> can be accessed via its <literal>bin</literal> attribute (e.g. <literal>${stdenv.glibc.bin}/bin/ldd</literal>).
-   </para>
-
-   <para>
-    The reason for why <literal>glibc</literal> deviates from the convention is because referencing a library provided by <literal>glibc</literal> is a very common operation among Nix packages. For instance, third-party executables packaged by Nix are typically patched and relinked with the relevant version of <literal>glibc</literal> libraries from Nix packages (please see the documentation on <link xlink:href="https://github.com/NixOS/patchelf/blob/master/README">patchelf</link> for more details).
-   </para>
-  </section>
-
-  <section xml:id="multiple-output-file-type-groups">
-   <title>File type groups</title>
-
-   <para>
-    The support code currently recognizes some particular kinds of outputs and either instructs the build system of the package to put files into their desired outputs or it moves the files during the fixup phase. Each group of file types has an <varname>outputFoo</varname> variable specifying the output name where they should go. If that variable isn't defined by the derivation writer, it is guessed &ndash; a default output name is defined, falling back to other possibilities if the output isn't defined.
-   </para>
-
-   <variablelist>
-    <varlistentry>
-     <term>
-      <varname> $outputDev</varname>
-     </term>
-     <listitem>
-      <para>
-       is for development-only files. These include C(++) headers, pkg-config, cmake and aclocal files. They go to <varname>dev</varname> or <varname>out</varname> by default.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname> $outputBin</varname>
-     </term>
-     <listitem>
-      <para>
-       is meant for user-facing binaries, typically residing in bin/. They go to <varname>bin</varname> or <varname>out</varname> by default.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname> $outputLib</varname>
-     </term>
-     <listitem>
-      <para>
-       is meant for libraries, typically residing in <filename>lib/</filename> and <filename>libexec/</filename>. They go to <varname>lib</varname> or <varname>out</varname> by default.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname> $outputDoc</varname>
-     </term>
-     <listitem>
-      <para>
-       is for user documentation, typically residing in <filename>share/doc/</filename>. It goes to <varname>doc</varname> or <varname>out</varname> by default.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname> $outputDevdoc</varname>
-     </term>
-     <listitem>
-      <para>
-       is for <emphasis>developer</emphasis> documentation. Currently we count gtk-doc and devhelp books in there. It goes to <varname>devdoc</varname> or is removed (!) by default. This is because e.g. gtk-doc tends to be rather large and completely unused by nixpkgs users.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname> $outputMan</varname>
-     </term>
-     <listitem>
-      <para>
-       is for man pages (except for section 3). They go to <varname>man</varname> or <varname>$outputBin</varname> by default.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname> $outputDevman</varname>
-     </term>
-     <listitem>
-      <para>
-       is for section 3 man pages. They go to <varname>devman</varname> or <varname>$outputMan</varname> by default.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname> $outputInfo</varname>
-     </term>
-     <listitem>
-      <para>
-       is for info pages. They go to <varname>info</varname> or <varname>$outputBin</varname> by default.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </section>
-
-  <section xml:id="sec-multiple-outputs-caveats">
-   <title>Common caveats</title>
-
-   <itemizedlist>
-    <listitem>
-     <para>
-      Some configure scripts don't like some of the parameters passed by default by the framework, e.g. <literal>--docdir=/foo/bar</literal>. You can disable this by setting <literal>setOutputFlags = false;</literal>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      The outputs of a single derivation can retain references to each other, but note that circular references are not allowed. (And each strongly-connected component would act as a single output anyway.)
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Most of split packages contain their core functionality in libraries. These libraries tend to refer to various kind of data that typically gets into <varname>out</varname>, e.g. locale strings, so there is often no advantage in separating the libraries into <varname>lib</varname>, as keeping them in <varname>out</varname> is easier.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Some packages have hidden assumptions on install paths, which complicates splitting.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </section>
- </section>
-<!--Writing a split derivation-->
-</chapter>
diff --git a/nixpkgs/doc/stdenv/platform-notes.chapter.md b/nixpkgs/doc/stdenv/platform-notes.chapter.md
new file mode 100644
index 000000000000..03e61e333f8b
--- /dev/null
+++ b/nixpkgs/doc/stdenv/platform-notes.chapter.md
@@ -0,0 +1,62 @@
+# Platform Notes {#chap-platform-notes}
+
+## Darwin (macOS) {#sec-darwin}
+
+Some common issues when packaging software for Darwin:
+
+- The Darwin `stdenv` uses clang instead of gcc. When referring to the compiler `$CC` or `cc` will work in both cases. Some builds hardcode gcc/g++ in their build scripts, that can usually be fixed with using something like `makeFlags = [ "CC=cc" ];` or by patching the build scripts.
+
+  ```nix
+  stdenv.mkDerivation {
+    name = "libfoo-1.2.3";
+    # ...
+    buildPhase = ''
+      $CC -o hello hello.c
+    '';
+  }
+  ```
+
+- On Darwin, libraries are linked using absolute paths, libraries are resolved by their `install_name` at link time. Sometimes packages won’t set this correctly causing the library lookups to fail at runtime. This can be fixed by adding extra linker flags or by running `install_name_tool -id` during the `fixupPhase`.
+
+  ```nix
+  stdenv.mkDerivation {
+    name = "libfoo-1.2.3";
+    # ...
+    makeFlags = lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/libfoo.dylib";
+  }
+  ```
+
+- Even if the libraries are linked using absolute paths and resolved via their `install_name` correctly, tests can sometimes fail to run binaries. This happens because the `checkPhase` runs before the libraries are installed.
+
+  This can usually be solved by running the tests after the `installPhase` or alternatively by using `DYLD_LIBRARY_PATH`. More information about this variable can be found in the *dyld(1)* manpage.
+
+  ```
+  dyld: Library not loaded: /nix/store/7hnmbscpayxzxrixrgxvvlifzlxdsdir-jq-1.5-lib/lib/libjq.1.dylib
+  Referenced from: /private/tmp/nix-build-jq-1.5.drv-0/jq-1.5/tests/../jq
+  Reason: image not found
+  ./tests/jqtest: line 5: 75779 Abort trap: 6
+  ```
+
+  ```nix
+  stdenv.mkDerivation {
+    name = "libfoo-1.2.3";
+    # ...
+    doInstallCheck = true;
+    installCheckTarget = "check";
+  }
+  ```
+
+- Some packages assume xcode is available and use `xcrun` to resolve build tools like `clang`, etc. This causes errors like `xcode-select: error: no developer tools were found at '/Applications/Xcode.app'` while the build doesn’t actually depend on xcode.
+
+  ```nix
+  stdenv.mkDerivation {
+    name = "libfoo-1.2.3";
+    # ...
+    prePatch = ''
+      substituteInPlace Makefile \
+          --replace '/usr/bin/xcrun clang' clang
+    '';
+  }
+  ```
+
+  The package `xcbuild` can be used to build projects that really depend on Xcode. However, this replacement is not 100% compatible with Xcode and can occasionally cause issues.
diff --git a/nixpkgs/doc/stdenv/platform-notes.xml b/nixpkgs/doc/stdenv/platform-notes.xml
deleted file mode 100644
index cc8efaece129..000000000000
--- a/nixpkgs/doc/stdenv/platform-notes.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="chap-platform-notes">
- <title>Platform Notes</title>
- <section xml:id="sec-darwin">
-  <title>Darwin (macOS)</title>
-
-  <para>
-   Some common issues when packaging software for Darwin:
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     The Darwin <literal>stdenv</literal> uses clang instead of gcc. When referring to the compiler <varname>$CC</varname> or <command>cc</command> will work in both cases. Some builds hardcode gcc/g++ in their build scripts, that can usually be fixed with using something like <literal>makeFlags = [ "CC=cc" ];</literal> or by patching the build scripts.
-    </para>
-<programlisting>
-stdenv.mkDerivation {
-  name = "libfoo-1.2.3";
-  # ...
-  buildPhase = ''
-    $CC -o hello hello.c
-  '';
-}
-</programlisting>
-   </listitem>
-   <listitem>
-    <para>
-     On Darwin, libraries are linked using absolute paths, libraries are resolved by their <literal>install_name</literal> at link time. Sometimes packages won't set this correctly causing the library lookups to fail at runtime. This can be fixed by adding extra linker flags or by running <command>install_name_tool -id</command> during the <function>fixupPhase</function>.
-    </para>
-<programlisting>
-stdenv.mkDerivation {
-  name = "libfoo-1.2.3";
-  # ...
-  makeFlags = lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/libfoo.dylib";
-}
-</programlisting>
-   </listitem>
-   <listitem>
-    <para>
-     Even if the libraries are linked using absolute paths and resolved via their <literal>install_name</literal> correctly, tests can sometimes fail to run binaries. This happens because the <varname>checkPhase</varname> runs before the libraries are installed.
-    </para>
-    <para>
-     This can usually be solved by running the tests after the <varname>installPhase</varname> or alternatively by using <varname>DYLD_LIBRARY_PATH</varname>. More information about this variable can be found in the <citerefentry>
-     <refentrytitle>dyld</refentrytitle>
-     <manvolnum>1</manvolnum></citerefentry> manpage.
-    </para>
-<programlisting>
-dyld: Library not loaded: /nix/store/7hnmbscpayxzxrixrgxvvlifzlxdsdir-jq-1.5-lib/lib/libjq.1.dylib
-Referenced from: /private/tmp/nix-build-jq-1.5.drv-0/jq-1.5/tests/../jq
-Reason: image not found
-./tests/jqtest: line 5: 75779 Abort trap: 6
-</programlisting>
-<programlisting>
-stdenv.mkDerivation {
-  name = "libfoo-1.2.3";
-  # ...
-  doInstallCheck = true;
-  installCheckTarget = "check";
-}
-</programlisting>
-   </listitem>
-   <listitem>
-    <para>
-     Some packages assume xcode is available and use <command>xcrun</command> to resolve build tools like <command>clang</command>, etc. This causes errors like <code>xcode-select: error: no developer tools were found at '/Applications/Xcode.app'</code> while the build doesn't actually depend on xcode.
-    </para>
-<programlisting>
-stdenv.mkDerivation {
-  name = "libfoo-1.2.3";
-  # ...
-  prePatch = ''
-    substituteInPlace Makefile \
-        --replace '/usr/bin/xcrun clang' clang
-  '';
-}
-</programlisting>
-    <para>
-     The package <literal>xcbuild</literal> can be used to build projects that really depend on Xcode. However, this replacement is not 100% compatible with Xcode and can occasionally cause issues.
-    </para>
-   </listitem>
-  </itemizedlist>
- </section>
-</chapter>
diff --git a/nixpkgs/doc/stdenv/stdenv.chapter.md b/nixpkgs/doc/stdenv/stdenv.chapter.md
new file mode 100644
index 000000000000..b23c50e83644
--- /dev/null
+++ b/nixpkgs/doc/stdenv/stdenv.chapter.md
@@ -0,0 +1,1215 @@
+# The Standard Environment {#chap-stdenv}
+
+The standard build environment in the Nix Packages collection provides an environment for building Unix packages that does a lot of common build tasks automatically. In fact, for Unix packages that use the standard `./configure; make; make install` build interface, you don’t need to write a build script at all; the standard environment does everything automatically. If `stdenv` doesn’t do what you need automatically, you can easily customise or override the various build phases.
+
+## Using `stdenv` {#sec-using-stdenv}
+
+To build a package with the standard environment, you use the function `stdenv.mkDerivation`, instead of the primitive built-in function `derivation`, e.g.
+
+```nix
+stdenv.mkDerivation {
+  name = "libfoo-1.2.3";
+  src = fetchurl {
+    url = "http://example.org/libfoo-1.2.3.tar.bz2";
+    sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m";
+  };
+}
+```
+
+(`stdenv` needs to be in scope, so if you write this in a separate Nix expression from `pkgs/all-packages.nix`, you need to pass it as a function argument.) Specifying a `name` and a `src` is the absolute minimum Nix requires. For convenience, you can also use `pname` and `version` attributes and `mkDerivation` will automatically set `name` to `"${pname}-${version}"` by default. Since [RFC 0035](https://github.com/NixOS/rfcs/pull/35), this is preferred for packages in Nixpkgs, as it allows us to reuse the version easily:
+
+```nix
+stdenv.mkDerivation rec {
+  pname = "libfoo";
+  version = "1.2.3";
+  src = fetchurl {
+    url = "http://example.org/libfoo-source-${version}.tar.bz2";
+    sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m";
+  };
+}
+```
+
+Many packages have dependencies that are not provided in the standard environment. It’s usually sufficient to specify those dependencies in the `buildInputs` attribute:
+
+```nix
+stdenv.mkDerivation {
+  name = "libfoo-1.2.3";
+  ...
+  buildInputs = [libbar perl ncurses];
+}
+```
+
+This attribute ensures that the `bin` subdirectories of these packages appear in the `PATH` environment variable during the build, that their `include` subdirectories are searched by the C compiler, and so on. (See <xref linkend="ssec-setup-hooks" /> for details.)
+
+Often it is necessary to override or modify some aspect of the build. To make this easier, the standard environment breaks the package build into a number of *phases*, all of which can be overridden or modified individually: unpacking the sources, applying patches, configuring, building, and installing. (There are some others; see <xref linkend="sec-stdenv-phases" />.) For instance, a package that doesn’t supply a makefile but instead has to be compiled "manually" could be handled like this:
+
+```nix
+stdenv.mkDerivation {
+  name = "fnord-4.5";
+  ...
+  buildPhase = ''
+    gcc foo.c -o foo
+  '';
+  installPhase = ''
+    mkdir -p $out/bin
+    cp foo $out/bin
+  '';
+}
+```
+
+(Note the use of `''`-style string literals, which are very convenient for large multi-line script fragments because they don’t need escaping of `"` and `\`, and because indentation is intelligently removed.)
+
+There are many other attributes to customise the build. These are listed in <xref linkend="ssec-stdenv-attributes" />.
+
+While the standard environment provides a generic builder, you can still supply your own build script:
+
+```nix
+stdenv.mkDerivation {
+  name = "libfoo-1.2.3";
+  ...
+  builder = ./builder.sh;
+}
+```
+
+where the builder can do anything it wants, but typically starts with
+
+```bash
+source $stdenv/setup
+```
+
+to let `stdenv` set up the environment (e.g., process the `buildInputs`). If you want, you can still use `stdenv`’s generic builder:
+
+```bash
+source $stdenv/setup
+
+buildPhase() {
+  echo "... this is my custom build phase ..."
+  gcc foo.c -o foo
+}
+
+installPhase() {
+  mkdir -p $out/bin
+  cp foo $out/bin
+}
+
+genericBuild
+```
+
+## Tools provided by `stdenv` {#sec-tools-of-stdenv}
+
+The standard environment provides the following packages:
+
+- The GNU C Compiler, configured with C and C++ support.
+- GNU coreutils (contains a few dozen standard Unix commands).
+- GNU findutils (contains `find`).
+- GNU diffutils (contains `diff`, `cmp`).
+- GNU `sed`.
+- GNU `grep`.
+- GNU `awk`.
+- GNU `tar`.
+- `gzip`, `bzip2` and `xz`.
+- GNU Make.
+- Bash. This is the shell used for all builders in the Nix Packages collection. Not using `/bin/sh` removes a large source of portability problems.
+- The `patch` command.
+
+On Linux, `stdenv` also includes the `patchelf` utility.
+
+## Specifying dependencies {#ssec-stdenv-dependencies}
+
+As described in the Nix manual, almost any `*.drv` store path in a derivation’s attribute set will induce a dependency on that derivation. `mkDerivation`, however, takes a few attributes intended to, between them, include all the dependencies of a package. This is done both for structure and consistency, but also so that certain other setup can take place. For example, certain dependencies need their bin directories added to the `PATH`. That is built-in, but other setup is done via a pluggable mechanism that works in conjunction with these dependency attributes. See <xref linkend="ssec-setup-hooks" /> for details.
+
+Dependencies can be broken down along three axes: their host and target platforms relative to the new derivation’s, and whether they are propagated. The platform distinctions are motivated by cross compilation; see <xref linkend="chap-cross" /> for exactly what each platform means. [^footnote-stdenv-ignored-build-platform] But even if one is not cross compiling, the platforms imply whether or not the dependency is needed at run-time or build-time, a concept that makes perfect sense outside of cross compilation. By default, the run-time/build-time distinction is just a hint for mental clarity, but with `strictDeps` set it is mostly enforced even in the native case.
+
+The extension of `PATH` with dependencies, alluded to above, proceeds according to the relative platforms alone. The process is carried out only for dependencies whose host platform matches the new derivation’s build platform i.e. dependencies which run on the platform where the new derivation will be built. [^footnote-stdenv-native-dependencies-in-path] For each dependency \<dep\> of those dependencies, `dep/bin`, if present, is added to the `PATH` environment variable.
+
+The dependency is propagated when it forces some of its other-transitive (non-immediate) downstream dependencies to also take it on as an immediate dependency. Nix itself already takes a package’s transitive dependencies into account, but this propagation ensures nixpkgs-specific infrastructure like setup hooks (mentioned above) also are run as if the propagated dependency.
+
+It is important to note that dependencies are not necessarily propagated as the same sort of dependency that they were before, but rather as the corresponding sort so that the platform rules still line up. The exact rules for dependency propagation can be given by assigning to each dependency two integers based one how its host and target platforms are offset from the depending derivation’s platforms. Those offsets are given below in the descriptions of each dependency list attribute. Algorithmically, we traverse propagated inputs, accumulating every propagated dependency’s propagated dependencies and adjusting them to account for the “shift in perspective” described by the current dependency’s platform offsets. This results in sort a transitive closure of the dependency relation, with the offsets being approximately summed when two dependency links are combined. We also prune transitive dependencies whose combined offsets go out-of-bounds, which can be viewed as a filter over that transitive closure removing dependencies that are blatantly absurd.
+
+We can define the process precisely with [Natural Deduction](https://en.wikipedia.org/wiki/Natural_deduction) using the inference rules. This probably seems a bit obtuse, but so is the bash code that actually implements it! [^footnote-stdenv-find-inputs-location] They’re confusing in very different ways so… hopefully if something doesn’t make sense in one presentation, it will in the other!
+
+```
+let mapOffset(h, t, i) = i + (if i <= 0 then h else t - 1)
+
+propagated-dep(h0, t0, A, B)
+propagated-dep(h1, t1, B, C)
+h0 + h1 in {-1, 0, 1}
+h0 + t1 in {-1, 0, 1}
+-------------------------------------- Transitive property
+propagated-dep(mapOffset(h0, t0, h1),
+               mapOffset(h0, t0, t1),
+               A, C)
+```
+
+```
+let mapOffset(h, t, i) = i + (if i <= 0 then h else t - 1)
+
+dep(h0, _, A, B)
+propagated-dep(h1, t1, B, C)
+h0 + h1 in {-1, 0, 1}
+h0 + t1 in {-1, 0, -1}
+----------------------------- Take immediate dependencies' propagated dependencies
+propagated-dep(mapOffset(h0, t0, h1),
+               mapOffset(h0, t0, t1),
+               A, C)
+```
+
+```
+propagated-dep(h, t, A, B)
+----------------------------- Propagated dependencies count as dependencies
+dep(h, t, A, B)
+```
+
+Some explanation of this monstrosity is in order. In the common case, the target offset of a dependency is the successor to the target offset: `t = h + 1`. That means that:
+
+```
+let f(h, t, i) = i + (if i <= 0 then h else t - 1)
+let f(h, h + 1, i) = i + (if i <= 0 then h else (h + 1) - 1)
+let f(h, h + 1, i) = i + (if i <= 0 then h else h)
+let f(h, h + 1, i) = i + h
+```
+
+This is where “sum-like” comes in from above: We can just sum all of the host offsets to get the host offset of the transitive dependency. The target offset is the transitive dependency is simply the host offset + 1, just as it was with the dependencies composed to make this transitive one; it can be ignored as it doesn’t add any new information.
+
+Because of the bounds checks, the uncommon cases are `h = t` and `h + 2 = t`. In the former case, the motivation for `mapOffset` is that since its host and target platforms are the same, no transitive dependency of it should be able to “discover” an offset greater than its reduced target offsets. `mapOffset` effectively “squashes” all its transitive dependencies’ offsets so that none will ever be greater than the target offset of the original `h = t` package. In the other case, `h + 1` is skipped over between the host and target offsets. Instead of squashing the offsets, we need to “rip” them apart so no transitive dependencies’ offset is that one.
+
+Overall, the unifying theme here is that propagation shouldn’t be introducing transitive dependencies involving platforms the depending package is unaware of. \[One can imagine the dependending package asking for dependencies with the platforms it knows about; other platforms it doesn’t know how to ask for. The platform description in that scenario is a kind of unforagable capability.\] The offset bounds checking and definition of `mapOffset` together ensure that this is the case. Discovering a new offset is discovering a new platform, and since those platforms weren’t in the derivation “spec” of the needing package, they cannot be relevant. From a capability perspective, we can imagine that the host and target platforms of a package are the capabilities a package requires, and the depending package must provide the capability to the dependency.
+
+### Variables specifying dependencies
+#### `depsBuildBuild` {#var-stdenv-depsBuildBuild}
+
+A list of dependencies whose host and target platforms are the new derivation’s build platform. This means a `-1` host and `-1` target offset from the new derivation’s platforms. These are programs and libraries used at build time that produce programs and libraries also used at build time. If the dependency doesn’t care about the target platform (i.e. isn’t a compiler or similar tool), put it in `nativeBuildInputs` instead. The most common use of this `buildPackages.stdenv.cc`, the default C compiler for this role. That example crops up more than one might think in old commonly used C libraries.
+
+Since these packages are able to be run at build-time, they are always added to the `PATH`, as described above. But since these packages are only guaranteed to be able to run then, they shouldn’t persist as run-time dependencies. This isn’t currently enforced, but could be in the future.
+
+#### `nativeBuildInputs` {#var-stdenv-nativeBuildInputs}
+
+A list of dependencies whose host platform is the new derivation’s build platform, and target platform is the new derivation’s host platform. This means a `-1` host offset and `0` target offset from the new derivation’s platforms. These are programs and libraries used at build-time that, if they are a compiler or similar tool, produce code to run at run-time—i.e. tools used to build the new derivation. If the dependency doesn’t care about the target platform (i.e. isn’t a compiler or similar tool), put it here, rather than in `depsBuildBuild` or `depsBuildTarget`. This could be called `depsBuildHost` but `nativeBuildInputs` is used for historical continuity.
+
+Since these packages are able to be run at build-time, they are added to the `PATH`, as described above. But since these packages are only guaranteed to be able to run then, they shouldn’t persist as run-time dependencies. This isn’t currently enforced, but could be in the future.
+
+#### `depsBuildTarget` {#var-stdenv-depsBuildTarget}
+
+A list of dependencies whose host platform is the new derivation’s build platform, and target platform is the new derivation’s target platform. This means a `-1` host offset and `1` target offset from the new derivation’s platforms. These are programs used at build time that produce code to run with code produced by the depending package. Most commonly, these are tools used to build the runtime or standard library that the currently-being-built compiler will inject into any code it compiles. In many cases, the currently-being-built-compiler is itself employed for that task, but when that compiler won’t run (i.e. its build and host platform differ) this is not possible. Other times, the compiler relies on some other tool, like binutils, that is always built separately so that the dependency is unconditional.
+
+This is a somewhat confusing concept to wrap one’s head around, and for good reason. As the only dependency type where the platform offsets are not adjacent integers, it requires thinking of a bootstrapping stage *two* away from the current one. It and its use-case go hand in hand and are both considered poor form: try to not need this sort of dependency, and try to avoid building standard libraries and runtimes in the same derivation as the compiler produces code using them. Instead strive to build those like a normal library, using the newly-built compiler just as a normal library would. In short, do not use this attribute unless you are packaging a compiler and are sure it is needed.
+
+Since these packages are able to run at build time, they are added to the `PATH`, as described above. But since these packages are only guaranteed to be able to run then, they shouldn’t persist as run-time dependencies. This isn’t currently enforced, but could be in the future.
+
+#### `depsHostHost` {#var-stdenv-depsHostHost}
+
+A list of dependencies whose host and target platforms match the new derivation’s host platform. This means a `0` host offset and `0` target offset from the new derivation’s host platform. These are packages used at run-time to generate code also used at run-time. In practice, this would usually be tools used by compilers for macros or a metaprogramming system, or libraries used by the macros or metaprogramming code itself. It’s always preferable to use a `depsBuildBuild` dependency in the derivation being built over a `depsHostHost` on the tool doing the building for this purpose.
+
+#### `buildInputs` {#var-stdenv-buildInputs}
+
+A list of dependencies whose host platform and target platform match the new derivation’s. This means a `0` host offset and a `1` target offset from the new derivation’s host platform. This would be called `depsHostTarget` but for historical continuity. If the dependency doesn’t care about the target platform (i.e. isn’t a compiler or similar tool), put it here, rather than in `depsBuildBuild`.
+
+These are often programs and libraries used by the new derivation at *run*-time, but that isn’t always the case. For example, the machine code in a statically-linked library is only used at run-time, but the derivation containing the library is only needed at build-time. Even in the dynamic case, the library may also be needed at build-time to appease the linker.
+
+#### `depsTargetTarget` {#var-stdenv-depsTargetTarget}
+
+A list of dependencies whose host platform matches the new derivation’s target platform. This means a `1` offset from the new derivation’s platforms. These are packages that run on the target platform, e.g. the standard library or run-time deps of standard library that a compiler insists on knowing about. It’s poor form in almost all cases for a package to depend on another from a future stage \[future stage corresponding to positive offset\]. Do not use this attribute unless you are packaging a compiler and are sure it is needed.
+
+#### `depsBuildBuildPropagated` {#var-stdenv-depsBuildBuildPropagated}
+
+The propagated equivalent of `depsBuildBuild`. This perhaps never ought to be used, but it is included for consistency \[see below for the others\].
+
+#### `propagatedNativeBuildInputs` {#var-stdenv-propagatedNativeBuildInputs}
+
+The propagated equivalent of `nativeBuildInputs`. This would be called `depsBuildHostPropagated` but for historical continuity. For example, if package `Y` has `propagatedNativeBuildInputs = [X]`, and package `Z` has `buildInputs = [Y]`, then package `Z` will be built as if it included package `X` in its `nativeBuildInputs`. If instead, package `Z` has `nativeBuildInputs = [Y]`, then `Z` will be built as if it included `X` in the `depsBuildBuild` of package `Z`, because of the sum of the two `-1` host offsets.
+
+#### `depsBuildTargetPropagated` {#var-stdenv-depsBuildTargetPropagated}
+
+The propagated equivalent of `depsBuildTarget`. This is prefixed for the same reason of alerting potential users.
+
+#### `depsHostHostPropagated` {#var-stdenv-depsHostHostPropagated}
+
+The propagated equivalent of `depsHostHost`.
+
+#### `propagatedBuildInputs` {#var-stdenv-propagatedBuildInputs}
+
+The propagated equivalent of `buildInputs`. This would be called `depsHostTargetPropagated` but for historical continuity.
+
+#### `depsTargetTargetPropagated` {#var-stdenv-depsTargetTargetPropagated}
+
+The propagated equivalent of `depsTargetTarget`. This is prefixed for the same reason of alerting potential users.
+
+## Attributes {#ssec-stdenv-attributes}
+
+### Variables affecting `stdenv` initialisation
+
+#### `NIX_DEBUG` {#var-stdenv-NIX_DEBUG}
+
+A natural number indicating how much information to log. If set to 1 or higher, `stdenv` will print moderate debugging information during the build. In particular, the `gcc` and `ld` wrapper scripts will print out the complete command line passed to the wrapped tools. If set to 6 or higher, the `stdenv` setup script will be run with `set -x` tracing. If set to 7 or higher, the `gcc` and `ld` wrapper scripts will also be run with `set -x` tracing.
+
+### Attributes affecting build properties
+
+#### `enableParallelBuilding` {#var-stdenv-enableParallelBuilding}
+
+If set to `true`, `stdenv` will pass specific flags to `make` and other build tools to enable parallel building with up to `build-cores` workers.
+
+Unless set to `false`, some build systems with good support for parallel building including `cmake`, `meson`, and `qmake` will set it to `true`.
+
+### Special variables
+
+#### `passthru` {#var-stdenv-passthru}
+
+This is an attribute set which can be filled with arbitrary values. For example:
+
+```nix
+passthru = {
+  foo = "bar";
+  baz = {
+    value1 = 4;
+    value2 = 5;
+  };
+}
+```
+
+Values inside it are not passed to the builder, so you can change them without triggering a rebuild. However, they can be accessed outside of a derivation directly, as if they were set inside a derivation itself, e.g. `hello.baz.value1`. We don’t specify any usage or schema of `passthru` - it is meant for values that would be useful outside the derivation in other parts of a Nix expression (e.g. in other derivations). An example would be to convey some specific dependency of your derivation which contains a program with plugins support. Later, others who make derivations with plugins can use passed-through dependency to ensure that their plugin would be binary-compatible with built program.
+
+#### `passthru.updateScript` {#var-passthru-updateScript}
+
+A script to be run by `maintainers/scripts/update.nix` when the package is matched. It needs to be an executable file, either on the file system:
+
+```nix
+passthru.updateScript = ./update.sh;
+```
+
+or inside the expression itself:
+
+```nix
+passthru.updateScript = writeScript "update-zoom-us" ''
+  #!/usr/bin/env nix-shell
+  #!nix-shell -i bash -p curl pcre common-updater-scripts
+
+  set -eu -o pipefail
+
+  version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcregrep -o1 '/(([0-9]\.?)+)/')"
+  update-source-version zoom-us "$version"
+'';
+```
+
+The attribute can also contain a list, a script followed by arguments to be passed to it:
+
+```nix
+passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
+```
+
+The script will be run with `UPDATE_NIX_ATTR_PATH` environment variable set to the attribute path it is supposed to update.
+
+::: note
+The script will be usually run from the root of the Nixpkgs repository but you should not rely on that. Also note that the update scripts will be run in parallel by default; you should avoid running `git commit` or any other commands that cannot handle that.
+:::
+
+For information about how to run the updates, execute `nix-shell maintainers/scripts/update.nix`.
+
+## Phases {#sec-stdenv-phases}
+
+The generic builder has a number of *phases*. Package builds are split into phases to make it easier to override specific parts of the build (e.g., unpacking the sources or installing the binaries). Furthermore, it allows a nicer presentation of build logs in the Nix build farm.
+
+Each phase can be overridden in its entirety either by setting the environment variable `namePhase` to a string containing some shell commands to be executed, or by redefining the shell function `namePhase`. The former is convenient to override a phase from the derivation, while the latter is convenient from a build script. However, typically one only wants to *add* some commands to a phase, e.g. by defining `postInstall` or `preFixup`, as skipping some of the default actions may have unexpected consequences. The default script for each phase is defined in the file `pkgs/stdenv/generic/setup.sh`.
+
+### Controlling phases {#ssec-controlling-phases}
+
+There are a number of variables that control what phases are executed and in what order:
+
+#### Variables affecting phase control
+
+##### `phases` {#var-stdenv-phases}
+
+Specifies the phases. You can change the order in which phases are executed, or add new phases, by setting this variable. If it’s not set, the default value is used, which is `$prePhases unpackPhase patchPhase $preConfigurePhases configurePhase $preBuildPhases buildPhase checkPhase $preInstallPhases installPhase fixupPhase installCheckPhase $preDistPhases distPhase $postPhases`.
+
+Usually, if you just want to add a few phases, it’s more convenient to set one of the variables below (such as `preInstallPhases`), as you then don’t specify all the normal phases.
+
+##### `prePhases` {#var-stdenv-prePhases}
+
+Additional phases executed before any of the default phases.
+
+##### `preConfigurePhases` {#var-stdenv-preConfigurePhases}
+
+Additional phases executed just before the configure phase.
+
+##### `preBuildPhases` {#var-stdenv-preBuildPhases}
+
+Additional phases executed just before the build phase.
+
+##### `preInstallPhases` {#var-stdenv-preInstallPhases}
+
+Additional phases executed just before the install phase.
+
+##### `preFixupPhases` {#var-stdenv-preFixupPhases}
+
+Additional phases executed just before the fixup phase.
+
+##### `preDistPhases` {#var-stdenv-preDistPhases}
+
+Additional phases executed just before the distribution phase.
+
+##### `postPhases` {#var-stdenv-postPhases}
+
+Additional phases executed after any of the default phases.
+
+### The unpack phase {#ssec-unpack-phase}
+
+The unpack phase is responsible for unpacking the source code of the package. The default implementation of `unpackPhase` unpacks the source files listed in the `src` environment variable to the current directory. It supports the following files by default:
+
+#### Tar files
+
+These can optionally be compressed using `gzip` (`.tar.gz`, `.tgz` or `.tar.Z`), `bzip2` (`.tar.bz2`, `.tbz2` or `.tbz`) or `xz` (`.tar.xz`, `.tar.lzma` or `.txz`).
+
+#### Zip files
+
+Zip files are unpacked using `unzip`. However, `unzip` is not in the standard environment, so you should add it to `nativeBuildInputs` yourself.
+
+#### Directories in the Nix store
+
+These are simply copied to the current directory. The hash part of the file name is stripped, e.g. `/nix/store/1wydxgby13cz...-my-sources` would be copied to `my-sources`.
+
+Additional file types can be supported by setting the `unpackCmd` variable (see below).
+
+#### Variables controlling the unpack phase
+##### `srcs` / `src` {#var-stdenv-src}
+
+The list of source files or directories to be unpacked or copied. One of these must be set.
+
+##### `sourceRoot` {#var-stdenv-sourceRoot}
+
+After running `unpackPhase`, the generic builder changes the current directory to the directory created by unpacking the sources. If there are multiple source directories, you should set `sourceRoot` to the name of the intended directory.
+
+##### `setSourceRoot` {#var-stdenv-setSourceRoot}
+
+Alternatively to setting `sourceRoot`, you can set `setSourceRoot` to a shell command to be evaluated by the unpack phase after the sources have been unpacked. This command must set `sourceRoot`.
+
+##### `preUnpack` {#var-stdenv-preUnpack}
+
+Hook executed at the start of the unpack phase.
+
+##### `postUnpack` {#var-stdenv-postUnpack}
+
+Hook executed at the end of the unpack phase.
+
+##### `dontUnpack` {#var-stdenv-dontUnpack}
+
+Set to true to skip the unpack phase.
+
+##### `dontMakeSourcesWritable` {#var-stdenv-dontMakeSourcesWritable}
+
+If set to `1`, the unpacked sources are *not* made writable. By default, they are made writable to prevent problems with read-only sources. For example, copied store directories would be read-only without this.
+
+##### `unpackCmd` {#var-stdenv-unpackCmd}
+
+The unpack phase evaluates the string `$unpackCmd` for any unrecognised file. The path to the current source file is contained in the `curSrc` variable.
+
+### The patch phase {#ssec-patch-phase}
+
+The patch phase applies the list of patches defined in the `patches` variable.
+
+#### Variables controlling the patch phase
+
+##### `dontPatch` {#var-stdenv-dontPatch}
+
+Set to true to skip the patch phase.
+
+##### `patches` {#var-stdenv-patches}
+
+The list of patches. They must be in the format accepted by the `patch` command, and may optionally be compressed using `gzip` (`.gz`), `bzip2` (`.bz2`) or `xz` (`.xz`).
+
+##### `patchFlags` {#var-stdenv-patchFlags}
+
+Flags to be passed to `patch`. If not set, the argument `-p1` is used, which causes the leading directory component to be stripped from the file names in each patch.
+
+##### `prePatch` {#var-stdenv-prePatch}
+
+Hook executed at the start of the patch phase.
+
+##### `postPatch` {#var-stdenv-postPatch}
+
+Hook executed at the end of the patch phase.
+
+### The configure phase {#ssec-configure-phase}
+
+The configure phase prepares the source tree for building. The default `configurePhase` runs `./configure` (typically an Autoconf-generated script) if it exists.
+
+#### Variables controlling the configure phase
+
+##### `configureScript` {#var-stdenv-configureScript}
+
+The name of the configure script. It defaults to `./configure` if it exists; otherwise, the configure phase is skipped. This can actually be a command (like `perl ./Configure.pl`).
+
+##### `configureFlags` {#var-stdenv-configureFlags}
+
+A list of strings passed as additional arguments to the configure script.
+
+##### `dontConfigure` {#var-stdenv-dontConfigure}
+
+Set to true to skip the configure phase.
+
+##### `configureFlagsArray` {#var-stdenv-configureFlagsArray}
+
+A shell array containing additional arguments passed to the configure script. You must use this instead of `configureFlags` if the arguments contain spaces.
+
+##### `dontAddPrefix` {#var-stdenv-dontAddPrefix}
+
+By default, the flag `--prefix=$prefix` is added to the configure flags. If this is undesirable, set this variable to true.
+
+##### `prefix` {#var-stdenv-prefix}
+
+The prefix under which the package must be installed, passed via the `--prefix` option to the configure script. It defaults to `$out`.
+
+##### `prefixKey` {#var-stdenv-prefixKey}
+
+The key to use when specifying the prefix. By default, this is set to `--prefix=` as that is used by the majority of packages.
+
+##### `dontAddDisableDepTrack` {#var-stdenv-dontAddDisableDepTrack}
+
+By default, the flag `--disable-dependency-tracking` is added to the configure flags to speed up Automake-based builds. If this is undesirable, set this variable to true.
+
+##### `dontFixLibtool` {#var-stdenv-dontFixLibtool}
+
+By default, the configure phase applies some special hackery to all files called `ltmain.sh` before running the configure script in order to improve the purity of Libtool-based packages [^footnote-stdenv-sys-lib-search-path] . If this is undesirable, set this variable to true.
+
+##### `dontDisableStatic` {#var-stdenv-dontDisableStatic}
+
+By default, when the configure script has `--enable-static`, the option `--disable-static` is added to the configure flags.
+
+If this is undesirable, set this variable to true.
+
+##### `configurePlatforms` {#var-stdenv-configurePlatforms}
+
+By default, when cross compiling, the configure script has `--build=...` and `--host=...` passed. Packages can instead pass `[ "build" "host" "target" ]` or a subset to control exactly which platform flags are passed. Compilers and other tools can use this to also pass the target platform. [^footnote-stdenv-build-time-guessing-impurity]
+
+##### `preConfigure` {#var-stdenv-preConfigure}
+
+Hook executed at the start of the configure phase.
+
+##### `postConfigure` {#var-stdenv-postConfigure}
+
+Hook executed at the end of the configure phase.
+
+### The build phase {#build-phase}
+
+The build phase is responsible for actually building the package (e.g. compiling it). The default `buildPhase` simply calls `make` if a file named `Makefile`, `makefile` or `GNUmakefile` exists in the current directory (or the `makefile` is explicitly set); otherwise it does nothing.
+
+#### Variables controlling the build phase
+
+##### `dontBuild` {#var-stdenv-dontBuild}
+
+Set to true to skip the build phase.
+
+##### `makefile` {#var-stdenv-makefile}
+
+The file name of the Makefile.
+
+##### `makeFlags` {#var-stdenv-makeFlags}
+
+A list of strings passed as additional flags to `make`. These flags are also used by the default install and check phase. For setting make flags specific to the build phase, use `buildFlags` (see below).
+
+```nix
+makeFlags = [ "PREFIX=$(out)" ];
+```
+
+::: note
+The flags are quoted in bash, but environment variables can be specified by using the make syntax.
+:::
+
+##### `makeFlagsArray` {#var-stdenv-makeFlagsArray}
+
+A shell array containing additional arguments passed to `make`. You must use this instead of `makeFlags` if the arguments contain spaces, e.g.
+
+```nix
+preBuild = ''
+  makeFlagsArray+=(CFLAGS="-O0 -g" LDFLAGS="-lfoo -lbar")
+'';
+```
+
+Note that shell arrays cannot be passed through environment variables, so you cannot set `makeFlagsArray` in a derivation attribute (because those are passed through environment variables): you have to define them in shell code.
+
+##### `buildFlags` / `buildFlagsArray` {#var-stdenv-buildFlags}
+
+A list of strings passed as additional flags to `make`. Like `makeFlags` and `makeFlagsArray`, but only used by the build phase.
+
+##### `preBuild` {#var-stdenv-preBuild}
+
+Hook executed at the start of the build phase.
+
+##### `postBuild` {#var-stdenv-postBuild}
+
+Hook executed at the end of the build phase.
+
+You can set flags for `make` through the `makeFlags` variable.
+
+Before and after running `make`, the hooks `preBuild` and `postBuild` are called, respectively.
+
+### The check phase {#ssec-check-phase}
+
+The check phase checks whether the package was built correctly by running its test suite. The default `checkPhase` calls `make check`, but only if the `doCheck` variable is enabled.
+
+#### Variables controlling the check phase
+
+##### `doCheck` {#var-stdenv-doCheck}
+
+Controls whether the check phase is executed. By default it is skipped, but if `doCheck` is set to true, the check phase is usually executed. Thus you should set
+
+```nix
+doCheck = true;
+```
+
+in the derivation to enable checks. The exception is cross compilation. Cross compiled builds never run tests, no matter how `doCheck` is set, as the newly-built program won’t run on the platform used to build it.
+
+##### `makeFlags` / `makeFlagsArray` / `makefile`
+
+See the [build phase](#var-stdenv-makeFlags) for details.
+
+##### `checkTarget` {#var-stdenv-checkTarget}
+
+The make target that runs the tests. Defaults to `check`.
+
+##### `checkFlags` / `checkFlagsArray` {#var-stdenv-checkFlags}
+
+A list of strings passed as additional flags to `make`. Like `makeFlags` and `makeFlagsArray`, but only used by the check phase.
+
+##### `checkInputs` {#var-stdenv-checkInputs}
+
+A list of dependencies used by the phase. This gets included in `nativeBuildInputs` when `doCheck` is set.
+
+##### `preCheck` {#var-stdenv-preCheck}
+
+Hook executed at the start of the check phase.
+
+##### `postCheck` {#var-stdenv-postCheck}
+
+Hook executed at the end of the check phase.
+
+### The install phase {#ssec-install-phase}
+
+The install phase is responsible for installing the package in the Nix store under `out`. The default `installPhase` creates the directory `$out` and calls `make install`.
+
+#### Variables controlling the install phase
+
+##### `dontInstall` {#var-stdenv-dontInstall}
+
+Set to true to skip the install phase.
+
+##### `makeFlags` / `makeFlagsArray` / `makefile`
+
+See the [build phase](#var-stdenv-makeFlags) for details.
+
+##### `installTargets` {#var-stdenv-installTargets}
+
+The make targets that perform the installation. Defaults to `install`. Example:
+
+```nix
+installTargets = "install-bin install-doc";
+```
+
+##### `installFlags` / `installFlagsArray` {#var-stdenv-installFlags}
+
+A list of strings passed as additional flags to `make`. Like `makeFlags` and `makeFlagsArray`, but only used by the install phase.
+
+##### `preInstall` {#var-stdenv-preInstall}
+
+Hook executed at the start of the install phase.
+
+##### `postInstall` {#var-stdenv-postInstall}
+
+Hook executed at the end of the install phase.
+
+### The fixup phase {#ssec-fixup-phase}
+
+The fixup phase performs some (Nix-specific) post-processing actions on the files installed under `$out` by the install phase. The default `fixupPhase` does the following:
+
+- It moves the `man/`, `doc/` and `info/` subdirectories of `$out` to `share/`.
+- It strips libraries and executables of debug information.
+- On Linux, it applies the `patchelf` command to ELF executables and libraries to remove unused directories from the `RPATH` in order to prevent unnecessary runtime dependencies.
+- It rewrites the interpreter paths of shell scripts to paths found in `PATH`. E.g., `/usr/bin/perl` will be rewritten to `/nix/store/some-perl/bin/perl` found in `PATH`.
+
+#### Variables controlling the fixup phase
+
+##### `dontFixup` {#var-stdenv-dontFixup}
+
+Set to true to skip the fixup phase.
+
+##### `dontStrip` {#var-stdenv-dontStrip}
+
+If set, libraries and executables are not stripped. By default, they are.
+
+##### `dontStripHost` {#var-stdenv-dontStripHost}
+
+Like `dontStrip`, but only affects the `strip` command targetting the package’s host platform. Useful when supporting cross compilation, but otherwise feel free to ignore.
+
+##### `dontStripTarget` {#var-stdenv-dontStripTarget}
+
+Like `dontStrip`, but only affects the `strip` command targetting the packages’ target platform. Useful when supporting cross compilation, but otherwise feel free to ignore.
+
+##### `dontMoveSbin` {#var-stdenv-dontMoveSbin}
+
+If set, files in `$out/sbin` are not moved to `$out/bin`. By default, they are.
+
+##### `stripAllList` {#var-stdenv-stripAllList}
+
+List of directories to search for libraries and executables from which *all* symbols should be stripped. By default, it’s empty. Stripping all symbols is risky, since it may remove not just debug symbols but also ELF information necessary for normal execution.
+
+##### `stripAllFlags` {#var-stdenv-stripAllFlags}
+
+Flags passed to the `strip` command applied to the files in the directories listed in `stripAllList`. Defaults to `-s` (i.e. `--strip-all`).
+
+##### `stripDebugList` {#var-stdenv-stripDebugList}
+
+List of directories to search for libraries and executables from which only debugging-related symbols should be stripped. It defaults to `lib lib32 lib64 libexec bin sbin`.
+
+##### `stripDebugFlags` {#var-stdenv-stripDebugFlags}
+
+Flags passed to the `strip` command applied to the files in the directories listed in `stripDebugList`. Defaults to `-S` (i.e. `--strip-debug`).
+
+##### `dontPatchELF` {#var-stdenv-dontPatchELF}
+
+If set, the `patchelf` command is not used to remove unnecessary `RPATH` entries. Only applies to Linux.
+
+##### `dontPatchShebangs` {#var-stdenv-dontPatchShebangs}
+
+If set, scripts starting with `#!` do not have their interpreter paths rewritten to paths in the Nix store.
+
+##### `dontPruneLibtoolFiles` {#var-stdenv-dontPruneLibtoolFiles}
+
+If set, libtool `.la` files associated with shared libraries won’t have their `dependency_libs` field cleared.
+
+##### `forceShare` {#var-stdenv-forceShare}
+
+The list of directories that must be moved from `$out` to `$out/share`. Defaults to `man doc info`.
+
+##### `setupHook` {#var-stdenv-setupHook}
+
+A package can export a [setup hook](#ssec-setup-hooks) by setting this variable. The setup hook, if defined, is copied to `$out/nix-support/setup-hook`. Environment variables are then substituted in it using `substituteAll`.
+
+##### `preFixup` {#var-stdenv-preFixup}
+
+Hook executed at the start of the fixup phase.
+
+##### `postFixup` {#var-stdenv-postFixup}
+
+Hook executed at the end of the fixup phase.
+
+##### `separateDebugInfo` {#stdenv-separateDebugInfo}
+
+If set to `true`, the standard environment will enable debug information in C/C++ builds. After installation, the debug information will be separated from the executables and stored in the output named `debug`. (This output is enabled automatically; you don’t need to set the `outputs` attribute explicitly.) To be precise, the debug information is stored in `debug/lib/debug/.build-id/XX/YYYY…`, where \<XXYYYY…\> is the \<build ID\> of the binary — a SHA-1 hash of the contents of the binary. Debuggers like GDB use the build ID to look up the separated debug information.
+
+For example, with GDB, you can add
+
+```
+set debug-file-directory ~/.nix-profile/lib/debug
+```
+
+to `~/.gdbinit`. GDB will then be able to find debug information installed via `nix-env -i`.
+
+### The installCheck phase {#ssec-installCheck-phase}
+
+The installCheck phase checks whether the package was installed correctly by running its test suite against the installed directories. The default `installCheck` calls `make installcheck`.
+
+#### Variables controlling the installCheck phase
+
+##### `doInstallCheck` {#var-stdenv-doInstallCheck}
+
+Controls whether the installCheck phase is executed. By default it is skipped, but if `doInstallCheck` is set to true, the installCheck phase is usually executed. Thus you should set
+
+```nix
+doInstallCheck = true;
+```
+
+in the derivation to enable install checks. The exception is cross compilation. Cross compiled builds never run tests, no matter how `doInstallCheck` is set, as the newly-built program won’t run on the platform used to build it.
+
+##### `installCheckTarget` {#var-stdenv-installCheckTarget}
+
+The make target that runs the install tests. Defaults to `installcheck`.
+
+##### `installCheckFlags` / `installCheckFlagsArray` {#var-stdenv-installCheckFlags}
+
+A list of strings passed as additional flags to `make`. Like `makeFlags` and `makeFlagsArray`, but only used by the installCheck phase.
+
+##### `installCheckInputs` {#var-stdenv-installCheckInputs}
+
+A list of dependencies used by the phase. This gets included in `nativeBuildInputs` when `doInstallCheck` is set.
+
+##### `preInstallCheck` {#var-stdenv-preInstallCheck}
+
+Hook executed at the start of the installCheck phase.
+
+##### `postInstallCheck` {#var-stdenv-postInstallCheck}
+
+Hook executed at the end of the installCheck phase.
+
+### The distribution phase {#ssec-distribution-phase}
+
+The distribution phase is intended to produce a source distribution of the package. The default `distPhase` first calls `make dist`, then it copies the resulting source tarballs to `$out/tarballs/`. This phase is only executed if the attribute `doDist` is set.
+
+#### Variables controlling the distribution phase
+
+##### `distTarget` {#var-stdenv-distTarget}
+
+The make target that produces the distribution. Defaults to `dist`.
+
+##### `distFlags` / `distFlagsArray` {#var-stdenv-distFlags}
+
+Additional flags passed to `make`.
+
+##### `tarballs` {#var-stdenv-tarballs}
+
+The names of the source distribution files to be copied to `$out/tarballs/`. It can contain shell wildcards. The default is `*.tar.gz`.
+
+##### `dontCopyDist` {#var-stdenv-dontCopyDist}
+
+If set, no files are copied to `$out/tarballs/`.
+
+##### `preDist` {#var-stdenv-preDist}
+
+Hook executed at the start of the distribution phase.
+
+##### `postDist` {#var-stdenv-postDist}
+
+Hook executed at the end of the distribution phase.
+
+## Shell functions {#ssec-stdenv-functions}
+
+The standard environment provides a number of useful functions.
+
+### `makeWrapper` \<executable\> \<wrapperfile\> \<args\> {#fun-makeWrapper}
+
+Constructs a wrapper for a program with various possible arguments. For example:
+
+```bash
+# adds `FOOBAR=baz` to `$out/bin/foo`’s environment
+makeWrapper $out/bin/foo $wrapperfile --set FOOBAR baz
+
+# prefixes the binary paths of `hello` and `git`
+# Be advised that paths often should be patched in directly
+# (via string replacements or in `configurePhase`).
+makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello git ]}
+```
+
+There’s many more kinds of arguments, they are documented in `nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh`.
+
+`wrapProgram` is a convenience function you probably want to use most of the time.
+
+### `substitute` \<infile\> \<outfile\> \<subs\> {#fun-substitute}
+
+Performs string substitution on the contents of \<infile\>, writing the result to \<outfile\>. The substitutions in \<subs\> are of the following form:
+
+#### `--replace` \<s1\> \<s2\>
+
+Replace every occurrence of the string \<s1\> by \<s2\>.
+
+#### `--subst-var` \<varName\>
+
+Replace every occurrence of `@varName@` by the contents of the environment variable \<varName\>. This is useful for generating files from templates, using `@...@` in the template as placeholders.
+
+#### `--subst-var-by` \<varName\> \<s\>
+
+Replace every occurrence of `@varName@` by the string \<s\>.
+
+Example:
+
+```shell
+substitute ./foo.in ./foo.out \
+    --replace /usr/bin/bar $bar/bin/bar \
+    --replace "a string containing spaces" "some other text" \
+    --subst-var someVar
+```
+
+### `substituteInPlace` \<file\> \<subs\> {#fun-substituteInPlace}
+
+Like `substitute`, but performs the substitutions in place on the file \<file\>.
+
+### `substituteAll` \<infile\> \<outfile\> {#fun-substituteAll}
+
+Replaces every occurrence of `@varName@`, where \<varName\> is any environment variable, in \<infile\>, writing the result to \<outfile\>. For instance, if \<infile\> has the contents
+
+```bash
+#! @bash@/bin/sh
+PATH=@coreutils@/bin
+echo @foo@
+```
+
+and the environment contains `bash=/nix/store/bmwp0q28cf21...-bash-3.2-p39` and `coreutils=/nix/store/68afga4khv0w...-coreutils-6.12`, but does not contain the variable `foo`, then the output will be
+
+```bash
+#! /nix/store/bmwp0q28cf21...-bash-3.2-p39/bin/sh
+PATH=/nix/store/68afga4khv0w...-coreutils-6.12/bin
+echo @foo@
+```
+
+That is, no substitution is performed for undefined variables.
+
+Environment variables that start with an uppercase letter or an underscore are filtered out, to prevent global variables (like `HOME`) or private variables (like `__ETC_PROFILE_DONE`) from accidentally getting substituted. The variables also have to be valid bash "names", as defined in the bash manpage (alphanumeric or `_`, must not start with a number).
+
+### `substituteAllInPlace` \<file\> {#fun-substituteAllInPlace}
+
+Like `substituteAll`, but performs the substitutions in place on the file \<file\>.
+
+### `stripHash` \<path\> {#fun-stripHash}
+
+Strips the directory and hash part of a store path, outputting the name part to `stdout`. For example:
+
+```bash
+# prints coreutils-8.24
+stripHash "/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
+```
+
+If you wish to store the result in another variable, then the following idiom may be useful:
+
+```bash
+name="/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
+someVar=$(stripHash $name)
+```
+
+### `wrapProgram` \<executable\> \<makeWrapperArgs\> {#fun-wrapProgram}
+
+Convenience function for `makeWrapper` that automatically creates a sane wrapper file. It takes all the same arguments as `makeWrapper`, except for `--argv0`.
+
+It cannot be applied multiple times, since it will overwrite the wrapper file.
+
+## Package setup hooks {#ssec-setup-hooks}
+
+Nix itself considers a build-time dependency as merely something that should previously be built and accessible at build time—packages themselves are on their own to perform any additional setup. In most cases, that is fine, and the downstream derivation can deal with its own dependencies. But for a few common tasks, that would result in almost every package doing the same sort of setup work—depending not on the package itself, but entirely on which dependencies were used.
+
+In order to alleviate this burden, the setup hook mechanism was written, where any package can include a shell script that \[by convention rather than enforcement by Nix\], any downstream reverse-dependency will source as part of its build process. That allows the downstream dependency to merely specify its dependencies, and lets those dependencies effectively initialize themselves. No boilerplate mirroring the list of dependencies is needed.
+
+The setup hook mechanism is a bit of a sledgehammer though: a powerful feature with a broad and indiscriminate area of effect. The combination of its power and implicit use may be expedient, but isn’t without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the letter isn’t. For example, if a derivation path is mentioned more than once, Nix itself doesn’t care and simply makes sure the dependency derivation is already built just the same—depending is just needing something to exist, and needing is idempotent. However, a dependency specified twice will have its setup hook run twice, and that could easily change the build environment (though a well-written setup hook will therefore strive to be idempotent so this is in fact not observable). More broadly, setup hooks are anti-modular in that multiple dependencies, whether the same or different, should not interfere and yet their setup hooks may well do so.
+
+The most typical use of the setup hook is actually to add other hooks which are then run (i.e. after all the setup hooks) on each dependency. For example, the C compiler wrapper’s setup hook feeds itself flags for each dependency that contains relevant libraries and headers. This is done by defining a bash function, and appending its name to one of `envBuildBuildHooks`, `envBuildHostHooks`, `envBuildTargetHooks`, `envHostHostHooks`, `envHostTargetHooks`, or `envTargetTargetHooks`. These 6 bash variables correspond to the 6 sorts of dependencies by platform (there’s 12 total but we ignore the propagated/non-propagated axis).
+
+Packages adding a hook should not hard code a specific hook, but rather choose a variable *relative* to how they are included. Returning to the C compiler wrapper example, if the wrapper itself is an `n` dependency, then it only wants to accumulate flags from `n + 1` dependencies, as only those ones match the compiler’s target platform. The `hostOffset` variable is defined with the current dependency’s host offset `targetOffset` with its target offset, before its setup hook is sourced. Additionally, since most environment hooks don’t care about the target platform, that means the setup hook can append to the right bash array by doing something like
+
+```{.bash}
+addEnvHooks "$hostOffset" myBashFunction
+```
+
+The *existence* of setups hooks has long been documented and packages inside Nixpkgs are free to use this mechanism. Other packages, however, should not rely on these mechanisms not changing between Nixpkgs versions. Because of the existing issues with this system, there’s little benefit from mandating it be stable for any period of time.
+
+First, let’s cover some setup hooks that are part of Nixpkgs default stdenv. This means that they are run for every package built using `stdenv.mkDerivation`. Some of these are platform specific, so they may run on Linux but not Darwin or vice-versa.
+
+### `move-docs.sh`
+
+This setup hook moves any installed documentation to the `/share` subdirectory directory. This includes the man, doc and info directories. This is needed for legacy programs that do not know how to use the `share` subdirectory.
+
+### `compress-man-pages.sh`
+
+This setup hook compresses any man pages that have been installed. The compression is done using the gzip program. This helps to reduce the installed size of packages.
+
+### `strip.sh`
+
+This runs the strip command on installed binaries and libraries. This removes unnecessary information like debug symbols when they are not needed. This also helps to reduce the installed size of packages.
+
+### `patch-shebangs.sh`
+
+This setup hook patches installed scripts to use the full path to the shebang interpreter. A shebang interpreter is the first commented line of a script telling the operating system which program will run the script (e.g `#!/bin/bash`). In Nix, we want an exact path to that interpreter to be used. This often replaces `/bin/sh` with a path in the Nix store.
+
+### `audit-tmpdir.sh`
+
+This verifies that no references are left from the install binaries to the directory used to build those binaries. This ensures that the binaries do not need things outside the Nix store. This is currently supported in Linux only.
+
+### `multiple-outputs.sh`
+
+This setup hook adds configure flags that tell packages to install files into any one of the proper outputs listed in `outputs`. This behavior can be turned off by setting `setOutputFlags` to false in the derivation environment. See <xref linkend="chap-multiple-output" /> for more information.
+
+### `move-sbin.sh`
+
+This setup hook moves any binaries installed in the `sbin/` subdirectory into `bin/`. In addition, a link is provided from `sbin/` to `bin/` for compatibility.
+
+### `move-lib64.sh`
+
+This setup hook moves any libraries installed in the `lib64/` subdirectory into `lib/`. In addition, a link is provided from `lib64/` to `lib/` for compatibility.
+
+### `move-systemd-user-units.sh`
+
+This setup hook moves any systemd user units installed in the `lib/` subdirectory into `share/`. In addition, a link is provided from `share/` to `lib/` for compatibility. This is needed for systemd to find user services when installed into the user profile.
+
+### `set-source-date-epoch-to-latest.sh`
+
+This sets `SOURCE_DATE_EPOCH` to the modification time of the most recent file.
+
+### Bintools Wrapper
+
+The Bintools Wrapper wraps the binary utilities for a bunch of miscellaneous purposes. These are GNU Binutils when targetting Linux, and a mix of cctools and GNU binutils for Darwin. \[The “Bintools” name is supposed to be a compromise between “Binutils” and “cctools” not denoting any specific implementation.\] Specifically, the underlying bintools package, and a C standard library (glibc or Darwin’s libSystem, just for the dynamic loader) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by the Bintools Wrapper. Packages typically depend on CC Wrapper, which in turn (at run time) depends on the Bintools Wrapper.
+
+The Bintools Wrapper was only just recently split off from CC Wrapper, so the division of labor is still being worked out. For example, it shouldn’t care about the C standard library, but just take a derivation with the dynamic loader (which happens to be the glibc on linux). Dependency finding however is a task both wrappers will continue to need to share, and probably the most important to understand. It is currently accomplished by collecting directories of host-platform dependencies (i.e. `buildInputs` and `nativeBuildInputs`) in environment variables. The Bintools Wrapper’s setup hook causes any `lib` and `lib64` subdirectories to be added to `NIX_LDFLAGS`. Since the CC Wrapper and the Bintools Wrapper use the same strategy, most of the Bintools Wrapper code is sparsely commented and refers to the CC Wrapper. But the CC Wrapper’s code, by contrast, has quite lengthy comments. The Bintools Wrapper merely cites those, rather than repeating them, to avoid falling out of sync.
+
+A final task of the setup hook is defining a number of standard environment variables to tell build systems which executables fulfill which purpose. They are defined to just be the base name of the tools, under the assumption that the Bintools Wrapper’s binaries will be on the path. Firstly, this helps poorly-written packages, e.g. ones that look for just `gcc` when `CC` isn’t defined yet `clang` is to be used. Secondly, this helps packages not get confused when cross-compiling, in which case multiple Bintools Wrappers may simultaneously be in use. [^footnote-stdenv-per-platform-wrapper] `BUILD_`- and `TARGET_`-prefixed versions of the normal environment variable are defined for additional Bintools Wrappers, properly disambiguating them.
+
+A problem with this final task is that the Bintools Wrapper is honest and defines `LD` as `ld`. Most packages, however, firstly use the C compiler for linking, secondly use `LD` anyways, defining it as the C compiler, and thirdly, only so define `LD` when it is undefined as a fallback. This triple-threat means Bintools Wrapper will break those packages, as LD is already defined as the actual linker which the package won’t override yet doesn’t want to use. The workaround is to define, just for the problematic package, `LD` as the C compiler. A good way to do this would be `preConfigure = "LD=$CC"`.
+
+### CC Wrapper
+
+The CC Wrapper wraps a C toolchain for a bunch of miscellaneous purposes. Specifically, a C compiler (GCC or Clang), wrapped binary tools, and a C standard library (glibc or Darwin’s libSystem, just for the dynamic loader) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by the CC Wrapper. Packages typically depend on the CC Wrapper, which in turn (at run-time) depends on the Bintools Wrapper.
+
+Dependency finding is undoubtedly the main task of the CC Wrapper. This works just like the Bintools Wrapper, except that any `include` subdirectory of any relevant dependency is added to `NIX_CFLAGS_COMPILE`. The setup hook itself contains some lengthy comments describing the exact convoluted mechanism by which this is accomplished.
+
+Similarly, the CC Wrapper follows the Bintools Wrapper in defining standard environment variables with the names of the tools it wraps, for the same reasons described above. Importantly, while it includes a `cc` symlink to the c compiler for portability, the `CC` will be defined using the compiler’s “real name” (i.e. `gcc` or `clang`). This helps lousy build systems that inspect on the name of the compiler rather than run it.
+
+Here are some more packages that provide a setup hook. Since the list of hooks is extensible, this is not an exhaustive list. The mechanism is only to be used as a last resort, so it might cover most uses.
+
+### Perl {#setup-hook-perl}
+
+Adds the `lib/site_perl` subdirectory of each build input to the `PERL5LIB` environment variable. For instance, if `buildInputs` contains Perl, then the `lib/site_perl` subdirectory of each input is added to the `PERL5LIB` environment variable.
+
+### Python {#setup-hook-python}
+
+Adds the `lib/${python.libPrefix}/site-packages` subdirectory of each build input to the `PYTHONPATH` environment variable.
+
+### pkg-config {#setup-hook-pkg-config}
+
+Adds the `lib/pkgconfig` and `share/pkgconfig` subdirectories of each build input to the `PKG_CONFIG_PATH` environment variable.
+
+### Automake {#setup-hook-automake}
+
+Adds the `share/aclocal` subdirectory of each build input to the `ACLOCAL_PATH` environment variable.
+
+### Autoconf {#setup-hook-autoconf}
+
+The `autoreconfHook` derivation adds `autoreconfPhase`, which runs autoreconf, libtoolize and automake, essentially preparing the configure script in autotools-based builds. Most autotools-based packages come with the configure script pre-generated, but this hook is necessary for a few packages and when you need to patch the package’s configure scripts.
+
+### libxml2 {#setup-hook-libxml2}
+
+Adds every file named `catalog.xml` found under the `xml/dtd` and `xml/xsl` subdirectories of each build input to the `XML_CATALOG_FILES` environment variable.
+
+### teTeX / TeX Live
+
+Adds the `share/texmf-nix` subdirectory of each build input to the `TEXINPUTS` environment variable.
+
+### Qt 4
+
+Sets the `QTDIR` environment variable to Qt’s path.
+
+### gdk-pixbuf {#setup-hook-gdk-pixbuf}
+
+Exports `GDK_PIXBUF_MODULE_FILE` environment variable to the builder. Add librsvg package to `buildInputs` to get svg support. See also the [setup hook description in GNOME platform docs](#ssec-gnome-hooks-gdk-pixbuf).
+
+### GHC
+
+Creates a temporary package database and registers every Haskell build input in it (TODO: how?).
+
+### GNOME platform
+
+Hooks related to GNOME platform and related libraries like GLib, GTK and GStreamer are described in <xref linkend="sec-language-gnome" />.
+
+### autoPatchelfHook {#setup-hook-autopatchelfhook}
+
+This is a special setup hook which helps in packaging proprietary software in that it automatically tries to find missing shared library dependencies of ELF files based on the given `buildInputs` and `nativeBuildInputs`.
+
+You can also specify a `runtimeDependencies` variable which lists dependencies to be unconditionally added to rpath of all executables. This is useful for programs that use dlopen 3 to load libraries at runtime.
+
+In certain situations you may want to run the main command (`autoPatchelf`) of the setup hook on a file or a set of directories instead of unconditionally patching all outputs. This can be done by setting the `dontAutoPatchelf` environment variable to a non-empty value.
+
+By default `autoPatchelf` will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the `autoPatchelfIgnoreMissingDeps` environment variable to a non-empty value.
+
+The `autoPatchelf` command also recognizes a `--no-recurse` command line flag, which prevents it from recursing into subdirectories.
+
+### breakpointHook
+
+This hook will make a build pause instead of stopping when a failure happens. It prevents nix from cleaning up the build environment immediately and allows the user to attach to a build environment using the `cntr` command. Upon build error it will print instructions on how to use `cntr`, which can be used to enter the environment for debugging. Installing cntr and running the command will provide shell access to the build sandbox of failed build. At `/var/lib/cntr` the sandboxed filesystem is mounted. All commands and files of the system are still accessible within the shell. To execute commands from the sandbox use the cntr exec subcommand. `cntr` is only supported on Linux-based platforms. To use it first add `cntr` to your `environment.systemPackages` on NixOS or alternatively to the root user on non-NixOS systems. Then in the package that is supposed to be inspected, add `breakpointHook` to `nativeBuildInputs`.
+
+```nix
+nativeBuildInputs = [ breakpointHook ];
+```
+
+When a build failure happens there will be an instruction printed that shows how to attach with `cntr` to the build sandbox.
+
+::: note
+::: title
+Caution with remote builds
+:::
+
+This won’t work with remote builds as the build environment is on a different machine and can’t be accessed by `cntr`. Remote builds can be turned off by setting `--option builders ''` for `nix-build` or `--builders ''` for `nix build`.
+:::
+
+### installShellFiles
+
+This hook helps with installing manpages and shell completion files. It exposes 2 shell functions `installManPage` and `installShellCompletion` that can be used from your `postInstall` hook.
+
+The `installManPage` function takes one or more paths to manpages to install. The manpages must have a section suffix, and may optionally be compressed (with `.gz` suffix). This function will place them into the correct directory.
+
+The `installShellCompletion` function takes one or more paths to shell completion files. By default it will autodetect the shell type from the completion file extension, but you may also specify it by passing one of `--bash`, `--fish`, or `--zsh`. These flags apply to all paths listed after them (up until another shell flag is given). Each path may also have a custom installation name provided by providing a flag `--name NAME` before the path. If this flag is not provided, zsh completions will be renamed automatically such that `foobar.zsh` becomes `_foobar`. A root name may be provided for all paths using the flag `--cmd NAME`; this synthesizes the appropriate name depending on the shell (e.g. `--cmd foo` will synthesize the name `foo.bash` for bash and `_foo` for zsh). The path may also be a fifo or named fd (such as produced by `<(cmd)`), in which case the shell and name must be provided.
+
+```nix
+nativeBuildInputs = [ installShellFiles ];
+postInstall = ''
+  installManPage doc/foobar.1 doc/barfoo.3
+  # explicit behavior
+  installShellCompletion --bash --name foobar.bash share/completions.bash
+  installShellCompletion --fish --name foobar.fish share/completions.fish
+  installShellCompletion --zsh --name _foobar share/completions.zsh
+  # implicit behavior
+  installShellCompletion share/completions/foobar.{bash,fish,zsh}
+  # using named fd
+  installShellCompletion --cmd foobar \
+    --bash <($out/bin/foobar --bash-completion) \
+    --fish <($out/bin/foobar --fish-completion) \
+    --zsh <($out/bin/foobar --zsh-completion)
+'';
+```
+
+### libiconv, libintl
+
+A few libraries automatically add to `NIX_LDFLAGS` their library, making their symbols automatically available to the linker. This includes libiconv and libintl (gettext). This is done to provide compatibility between GNU Linux, where libiconv and libintl are bundled in, and other systems where that might not be the case. Sometimes, this behavior is not desired. To disable this behavior, set `dontAddExtraLibs`.
+
+### validatePkgConfig
+
+The `validatePkgConfig` hook validates all pkg-config (`.pc`) files in a package. This helps catching some common errors in pkg-config files, such as undefined variables.
+
+### cmake
+
+Overrides the default configure phase to run the CMake command. By default, we use the Make generator of CMake. In addition, dependencies are added automatically to CMAKE_PREFIX_PATH so that packages are correctly detected by CMake. Some additional flags are passed in to give similar behavior to configure-based packages. You can disable this hook’s behavior by setting configurePhase to a custom value, or by setting dontUseCmakeConfigure. cmakeFlags controls flags passed only to CMake. By default, parallel building is enabled as CMake supports parallel building almost everywhere. When Ninja is also in use, CMake will detect that and use the ninja generator.
+
+### xcbuildHook
+
+Overrides the build and install phases to run the "xcbuild" command. This hook is needed when a project only comes with build files for the XCode build system. You can disable this behavior by setting buildPhase and configurePhase to a custom value. xcbuildFlags controls flags passed only to xcbuild.
+
+### Meson
+
+Overrides the configure phase to run meson to generate Ninja files. To run these files, you should accompany Meson with ninja. By default, `enableParallelBuilding` is enabled as Meson supports parallel building almost everywhere.
+
+#### Variables controlling Meson
+
+##### `mesonFlags`
+
+Controls the flags passed to meson.
+
+##### `mesonBuildType`
+
+Which [`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to pass to Meson. We default to `plain`.
+
+##### `mesonAutoFeatures`
+
+What value to set [`-Dauto_features=`](https://mesonbuild.com/Builtin-options.html#core-options) to. We default to `enabled`.
+
+##### `mesonWrapMode`
+
+What value to set [`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#core-options) to. We default to `nodownload` as we disallow network access.
+
+##### `dontUseMesonConfigure`
+
+Disables using Meson’s `configurePhase`.
+
+### ninja
+
+Overrides the build, install, and check phase to run ninja instead of make. You can disable this behavior with the `dontUseNinjaBuild`, `dontUseNinjaInstall`, and `dontUseNinjaCheck`, respectively. Parallel building is enabled by default in Ninja.
+
+### unzip
+
+This setup hook will allow you to unzip .zip files specified in `$src`. There are many similar packages like `unrar`, `undmg`, etc.
+
+### wafHook
+
+Overrides the configure, build, and install phases. This will run the “waf” script used by many projects. If `wafPath` (default `./waf`) doesn’t exist, it will copy the version of waf available in Nixpkgs. `wafFlags` can be used to pass flags to the waf script.
+
+### scons
+
+Overrides the build, install, and check phases. This uses the scons build system as a replacement for make. scons does not provide a configure phase, so everything is managed at build and install time.
+
+## Purity in Nixpkgs {#sec-purity-in-nixpkgs}
+
+*Measures taken to prevent dependencies on packages outside the store, and what you can do to prevent them.*
+
+GCC doesn’t search in locations such as `/usr/include`. In fact, attempts to add such directories through the `-I` flag are filtered out. Likewise, the linker (from GNU binutils) doesn’t search in standard locations such as `/usr/lib`. Programs built on Linux are linked against a GNU C Library that likewise doesn’t search in the default system locations.
+
+## Hardening in Nixpkgs {#sec-hardening-in-nixpkgs}
+
+There are flags available to harden packages at compile or link-time. These can be toggled using the `stdenv.mkDerivation` parameters `hardeningDisable` and `hardeningEnable`.
+
+Both parameters take a list of flags as strings. The special `"all"` flag can be passed to `hardeningDisable` to turn off all hardening. These flags can also be used as environment variables for testing or development purposes.
+
+The following flags are enabled by default and might require disabling with `hardeningDisable` if the program to package is incompatible.
+
+### `format`
+
+Adds the `-Wformat -Wformat-security -Werror=format-security` compiler options. At present, this warns about calls to `printf` and `scanf` functions where the format string is not a string literal and there are no format arguments, as in `printf(foo);`. This may be a security hole if the format string came from untrusted input and contains `%n`.
+
+This needs to be turned off or fixed for errors similar to:
+
+```
+/tmp/nix-build-zynaddsubfx-2.5.2.drv-0/zynaddsubfx-2.5.2/src/UI/guimain.cpp:571:28: error: format not a string literal and no format arguments [-Werror=format-security]
+         printf(help_message);
+                            ^
+cc1plus: some warnings being treated as errors
+```
+
+### `stackprotector`
+
+Adds the `-fstack-protector-strong --param ssp-buffer-size=4` compiler options. This adds safety checks against stack overwrites rendering many potential code injection attacks into aborting situations. In the best case this turns code injection vulnerabilities into denial of service or into non-issues (depending on the application).
+
+This needs to be turned off or fixed for errors similar to:
+
+```
+bin/blib.a(bios_console.o): In function `bios_handle_cup':
+/tmp/nix-build-ipxe-20141124-5cbdc41.drv-0/ipxe-5cbdc41/src/arch/i386/firmware/pcbios/bios_console.c:86: undefined reference to `__stack_chk_fail'
+```
+
+### `fortify`
+
+Adds the `-O2 -D_FORTIFY_SOURCE=2` compiler options. During code generation the compiler knows a great deal of information about buffer sizes (where possible), and attempts to replace insecure unlimited length buffer function calls with length-limited ones. This is especially useful for old, crufty code. Additionally, format strings in writable memory that contain `%n` are blocked. If an application depends on such a format string, it will need to be worked around.
+
+Additionally, some warnings are enabled which might trigger build failures if compiler warnings are treated as errors in the package build. In this case, set `NIX_CFLAGS_COMPILE` to `-Wno-error=warning-type`.
+
+This needs to be turned off or fixed for errors similar to:
+
+```
+malloc.c:404:15: error: return type is an incomplete type
+malloc.c:410:19: error: storage size of 'ms' isn't known
+
+strdup.h:22:1: error: expected identifier or '(' before '__extension__'
+
+strsep.c:65:23: error: register name not specified for 'delim'
+
+installwatch.c:3751:5: error: conflicting types for '__open_2'
+
+fcntl2.h:50:4: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT or O_TMPFILE in second argument needs 3 arguments
+```
+
+### `pic`
+
+Adds the `-fPIC` compiler options. This options adds support for position independent code in shared libraries and thus making ASLR possible.
+
+Most notably, the Linux kernel, kernel modules and other code not running in an operating system environment like boot loaders won’t build with PIC enabled. The compiler will is most cases complain that PIC is not supported for a specific build.
+
+This needs to be turned off or fixed for assembler errors similar to:
+
+```
+ccbLfRgg.s: Assembler messages:
+ccbLfRgg.s:33: Error: missing or invalid displacement expression `private_key_len@GOTOFF'
+```
+
+### `strictoverflow`
+
+Signed integer overflow is undefined behaviour according to the C standard. If it happens, it is an error in the program as it should check for overflow before it can happen, not afterwards. GCC provides built-in functions to perform arithmetic with overflow checking, which are correct and faster than any custom implementation. As a workaround, the option `-fno-strict-overflow` makes gcc behave as if signed integer overflows were defined.
+
+This flag should not trigger any build or runtime errors.
+
+### `relro`
+
+Adds the `-z relro` linker option. During program load, several ELF memory sections need to be written to by the linker, but can be turned read-only before turning over control to the program. This prevents some GOT (and .dtors) overwrite attacks, but at least the part of the GOT used by the dynamic linker (.got.plt) is still vulnerable.
+
+This flag can break dynamic shared object loading. For instance, the module systems of Xorg and OpenCV are incompatible with this flag. In almost all cases the `bindnow` flag must also be disabled and incompatible programs typically fail with similar errors at runtime.
+
+### `bindnow`
+
+Adds the `-z bindnow` linker option. During program load, all dynamic symbols are resolved, allowing for the complete GOT to be marked read-only (due to `relro`). This prevents GOT overwrite attacks. For very large applications, this can incur some performance loss during initial load while symbols are resolved, but this shouldn’t be an issue for daemons.
+
+This flag can break dynamic shared object loading. For instance, the module systems of Xorg and PHP are incompatible with this flag. Programs incompatible with this flag often fail at runtime due to missing symbols, like:
+
+```
+intel_drv.so: undefined symbol: vgaHWFreeHWRec
+```
+
+The following flags are disabled by default and should be enabled with `hardeningEnable` for packages that take untrusted input like network services.
+
+### `pie`
+
+Adds the `-fPIE` compiler and `-pie` linker options. Position Independent Executables are needed to take advantage of Address Space Layout Randomization, supported by modern kernel versions. While ASLR can already be enforced for data areas in the stack and heap (brk and mmap), the code areas must be compiled as position-independent. Shared libraries already do this with the `pic` flag, so they gain ASLR automatically, but binary .text regions need to be build with `pie` to gain ASLR. When this happens, ROP attacks are much harder since there are no static locations to bounce off of during a memory corruption attack.
+
+For more in-depth information on these hardening flags and hardening in general, refer to the [Debian Wiki](https://wiki.debian.org/Hardening), [Ubuntu Wiki](https://wiki.ubuntu.com/Security/Features), [Gentoo Wiki](https://wiki.gentoo.org/wiki/Project:Hardened), and the [Arch Wiki](https://wiki.archlinux.org/index.php/DeveloperWiki:Security).
+
+[^footnote-stdenv-ignored-build-platform]: The build platform is ignored because it is a mere implementation detail of the package satisfying the dependency: As a general programming principle, dependencies are always *specified* as interfaces, not concrete implementation.
+[^footnote-stdenv-native-dependencies-in-path]: Currently, this means for native builds all dependencies are put on the `PATH`. But in the future that may not be the case for sake of matching cross: the platforms would be assumed to be unique for native and cross builds alike, so only the `depsBuild*` and `nativeBuildInputs` would be added to the `PATH`.
+[^footnote-stdenv-find-inputs-location]: The `findInputs` function, currently residing in `pkgs/stdenv/generic/setup.sh`, implements the propagation logic.
+[^footnote-stdenv-sys-lib-search-path]: It clears the `sys_lib_*search_path` variables in the Libtool script to prevent Libtool from using libraries in `/usr/lib` and such.
+[^footnote-stdenv-build-time-guessing-impurity]: Eventually these will be passed building natively as well, to improve determinism: build-time guessing, as is done today, is a risk of impurity.
+[^footnote-stdenv-per-platform-wrapper]: Each wrapper targets a single platform, so if binaries for multiple platforms are needed, the underlying binaries must be wrapped multiple times. As this is a property of the wrapper itself, the multiple wrappings are needed whether or not the same underlying binaries can target multiple platforms.
diff --git a/nixpkgs/doc/stdenv/stdenv.xml b/nixpkgs/doc/stdenv/stdenv.xml
deleted file mode 100644
index 21485425f268..000000000000
--- a/nixpkgs/doc/stdenv/stdenv.xml
+++ /dev/null
@@ -1,2423 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="chap-stdenv">
- <title>The Standard Environment</title>
- <para>
-  The standard build environment in the Nix Packages collection provides an environment for building Unix packages that does a lot of common build tasks automatically. In fact, for Unix packages that use the standard <literal>./configure; make; make install</literal> build interface, you don’t need to write a build script at all; the standard environment does everything automatically. If <literal>stdenv</literal> doesn’t do what you need automatically, you can easily customise or override the various build phases.
- </para>
- <section xml:id="sec-using-stdenv">
-  <title>Using <literal>stdenv</literal></title>
-
-  <para>
-   To build a package with the standard environment, you use the function <varname>stdenv.mkDerivation</varname>, instead of the primitive built-in function <varname>derivation</varname>, e.g.
-<programlisting>
-stdenv.mkDerivation {
-  name = "libfoo-1.2.3";
-  src = fetchurl {
-    url = "http://example.org/libfoo-1.2.3.tar.bz2";
-    sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m";
-  };
-}</programlisting>
-   (<varname>stdenv</varname> needs to be in scope, so if you write this in a separate Nix expression from <filename>pkgs/all-packages.nix</filename>, you need to pass it as a function argument.) Specifying a <varname>name</varname> and a <varname>src</varname> is the absolute minimum Nix requires. For convenience, you can also use <varname>pname</varname> and <varname>version</varname> attributes and <literal>mkDerivation</literal> will automatically set <varname>name</varname> to <literal>"${pname}-${version}"</literal> by default. Since <link xlink:href="https://github.com/NixOS/rfcs/pull/35">RFC 0035</link>, this is preferred for packages in Nixpkgs, as it allows us to reuse the version easily:
-<programlisting>
-stdenv.mkDerivation rec {
-  pname = "libfoo";
-  version = "1.2.3";
-  src = fetchurl {
-    url = "http://example.org/libfoo-source-${version}.tar.bz2";
-    sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m";
-  };
-}</programlisting>
-  </para>
-
-  <para>
-   Many packages have dependencies that are not provided in the standard environment. It’s usually sufficient to specify those dependencies in the <varname>buildInputs</varname> attribute:
-<programlisting>
-stdenv.mkDerivation {
-  name = "libfoo-1.2.3";
-  ...
-  buildInputs = [libbar perl ncurses];
-}</programlisting>
-   This attribute ensures that the <filename>bin</filename> subdirectories of these packages appear in the <envar>PATH</envar> environment variable during the build, that their <filename>include</filename> subdirectories are searched by the C compiler, and so on. (See <xref linkend="ssec-setup-hooks"/> for details.)
-  </para>
-
-  <para>
-   Often it is necessary to override or modify some aspect of the build. To make this easier, the standard environment breaks the package build into a number of <emphasis>phases</emphasis>, all of which can be overridden or modified individually: unpacking the sources, applying patches, configuring, building, and installing. (There are some others; see <xref linkend="sec-stdenv-phases"/>.) For instance, a package that doesn’t supply a makefile but instead has to be compiled “manually” could be handled like this:
-<programlisting>
-stdenv.mkDerivation {
-  name = "fnord-4.5";
-  ...
-  buildPhase = ''
-    gcc foo.c -o foo
-  '';
-  installPhase = ''
-    mkdir -p $out/bin
-    cp foo $out/bin
-  '';
-}</programlisting>
-   (Note the use of <literal>''</literal>-style string literals, which are very convenient for large multi-line script fragments because they don’t need escaping of <literal>"</literal> and <literal>\</literal>, and because indentation is intelligently removed.)
-  </para>
-
-  <para>
-   There are many other attributes to customise the build. These are listed in <xref linkend="ssec-stdenv-attributes"/>.
-  </para>
-
-  <para>
-   While the standard environment provides a generic builder, you can still supply your own build script:
-<programlisting>
-stdenv.mkDerivation {
-  name = "libfoo-1.2.3";
-  ...
-  builder = ./builder.sh;
-}</programlisting>
-   where the builder can do anything it wants, but typically starts with
-<programlisting>
-source $stdenv/setup
-</programlisting>
-   to let <literal>stdenv</literal> set up the environment (e.g., process the <varname>buildInputs</varname>). If you want, you can still use <literal>stdenv</literal>’s generic builder:
-<programlisting>
-source $stdenv/setup
-
-buildPhase() {
-  echo "... this is my custom build phase ..."
-  gcc foo.c -o foo
-}
-
-installPhase() {
-  mkdir -p $out/bin
-  cp foo $out/bin
-}
-
-genericBuild
-</programlisting>
-  </para>
- </section>
- <section xml:id="sec-tools-of-stdenv">
-  <title>Tools provided by <literal>stdenv</literal></title>
-
-  <para>
-   The standard environment provides the following packages:
-   <itemizedlist>
-    <listitem>
-     <para>
-      The GNU C Compiler, configured with C and C++ support.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      GNU coreutils (contains a few dozen standard Unix commands).
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      GNU findutils (contains <command>find</command>).
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      GNU diffutils (contains <command>diff</command>, <command>cmp</command>).
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      GNU <command>sed</command>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      GNU <command>grep</command>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      GNU <command>awk</command>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      GNU <command>tar</command>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      <command>gzip</command>, <command>bzip2</command> and <command>xz</command>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      GNU Make.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Bash. This is the shell used for all builders in the Nix Packages collection. Not using <command>/bin/sh</command> removes a large source of portability problems.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      The <command>patch</command> command.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </para>
-
-  <para>
-   On Linux, <literal>stdenv</literal> also includes the <command>patchelf</command> utility.
-  </para>
- </section>
- <section xml:id="ssec-stdenv-dependencies">
-  <title>Specifying dependencies</title>
-
-  <para>
-   As described in the Nix manual, almost any <filename>*.drv</filename> store path in a derivation's attribute set will induce a dependency on that derivation. <varname>mkDerivation</varname>, however, takes a few attributes intended to, between them, include all the dependencies of a package. This is done both for structure and consistency, but also so that certain other setup can take place. For example, certain dependencies need their bin directories added to the <envar>PATH</envar>. That is built-in, but other setup is done via a pluggable mechanism that works in conjunction with these dependency attributes. See <xref linkend="ssec-setup-hooks"/> for details.
-  </para>
-
-  <para>
-   Dependencies can be broken down along three axes: their host and target platforms relative to the new derivation's, and whether they are propagated. The platform distinctions are motivated by cross compilation; see <xref linkend="chap-cross"/> for exactly what each platform means.
-   <footnote xml:id="footnote-stdenv-ignored-build-platform">
-    <para>
-     The build platform is ignored because it is a mere implementation detail of the package satisfying the dependency: As a general programming principle, dependencies are always <emphasis>specified</emphasis> as interfaces, not concrete implementation.
-    </para>
-   </footnote>
-   But even if one is not cross compiling, the platforms imply whether or not the dependency is needed at run-time or build-time, a concept that makes perfect sense outside of cross compilation. By default, the run-time/build-time distinction is just a hint for mental clarity, but with <varname>strictDeps</varname> set it is mostly enforced even in the native case.
-  </para>
-
-  <para>
-   The extension of <envar>PATH</envar> with dependencies, alluded to above, proceeds according to the relative platforms alone. The process is carried out only for dependencies whose host platform matches the new derivation's build platform i.e. dependencies which run on the platform where the new derivation will be built.
-   <footnote xml:id="footnote-stdenv-native-dependencies-in-path">
-    <para>
-     Currently, this means for native builds all dependencies are put on the <envar>PATH</envar>. But in the future that may not be the case for sake of matching cross: the platforms would be assumed to be unique for native and cross builds alike, so only the <varname>depsBuild*</varname> and <varname>nativeBuildInputs</varname> would be added to the <envar>PATH</envar>.
-    </para>
-   </footnote>
-   For each dependency <replaceable>dep</replaceable> of those dependencies, <filename><replaceable>dep</replaceable>/bin</filename>, if present, is added to the <envar>PATH</envar> environment variable.
-  </para>
-
-  <para>
-   The dependency is propagated when it forces some of its other-transitive (non-immediate) downstream dependencies to also take it on as an immediate dependency. Nix itself already takes a package's transitive dependencies into account, but this propagation ensures nixpkgs-specific infrastructure like setup hooks (mentioned above) also are run as if the propagated dependency.
-  </para>
-
-  <para>
-   It is important to note that dependencies are not necessarily propagated as the same sort of dependency that they were before, but rather as the corresponding sort so that the platform rules still line up. The exact rules for dependency propagation can be given by assigning to each dependency two integers based one how its host and target platforms are offset from the depending derivation's platforms. Those offsets are given below in the descriptions of each dependency list attribute. Algorithmically, we traverse propagated inputs, accumulating every propagated dependency's propagated dependencies and adjusting them to account for the "shift in perspective" described by the current dependency's platform offsets. This results in sort a transitive closure of the dependency relation, with the offsets being approximately summed when two dependency links are combined. We also prune transitive dependencies whose combined offsets go out-of-bounds, which can be viewed as a filter over that transitive closure removing dependencies that are blatantly absurd.
-  </para>
-
-  <para>
-   We can define the process precisely with <link xlink:href="https://en.wikipedia.org/wiki/Natural_deduction">Natural Deduction</link> using the inference rules. This probably seems a bit obtuse, but so is the bash code that actually implements it!
-   <footnote xml:id="footnote-stdenv-find-inputs-location">
-    <para>
-     The <function>findInputs</function> function, currently residing in <filename>pkgs/stdenv/generic/setup.sh</filename>, implements the propagation logic.
-    </para>
-   </footnote>
-   They're confusing in very different ways so... hopefully if something doesn't make sense in one presentation, it will in the other!
-<programlisting>
-let mapOffset(h, t, i) = i + (if i &lt;= 0 then h else t - 1)
-
-propagated-dep(h0, t0, A, B)
-propagated-dep(h1, t1, B, C)
-h0 + h1 in {-1, 0, 1}
-h0 + t1 in {-1, 0, 1}
--------------------------------------- Transitive property
-propagated-dep(mapOffset(h0, t0, h1),
-               mapOffset(h0, t0, t1),
-               A, C)</programlisting>
-<programlisting>
-let mapOffset(h, t, i) = i + (if i &lt;= 0 then h else t - 1)
-
-dep(h0, _, A, B)
-propagated-dep(h1, t1, B, C)
-h0 + h1 in {-1, 0, 1}
-h0 + t1 in {-1, 0, -1}
------------------------------ Take immediate dependencies' propagated dependencies
-propagated-dep(mapOffset(h0, t0, h1),
-               mapOffset(h0, t0, t1),
-               A, C)</programlisting>
-<programlisting>
-propagated-dep(h, t, A, B)
------------------------------ Propagated dependencies count as dependencies
-dep(h, t, A, B)</programlisting>
-   Some explanation of this monstrosity is in order. In the common case, the target offset of a dependency is the successor to the target offset: <literal>t = h + 1</literal>. That means that:
-<programlisting>
-let f(h, t, i) = i + (if i &lt;= 0 then h else t - 1)
-let f(h, h + 1, i) = i + (if i &lt;= 0 then h else (h + 1) - 1)
-let f(h, h + 1, i) = i + (if i &lt;= 0 then h else h)
-let f(h, h + 1, i) = i + h
-</programlisting>
-   This is where "sum-like" comes in from above: We can just sum all of the host offsets to get the host offset of the transitive dependency. The target offset is the transitive dependency is simply the host offset + 1, just as it was with the dependencies composed to make this transitive one; it can be ignored as it doesn't add any new information.
-  </para>
-
-  <para>
-   Because of the bounds checks, the uncommon cases are <literal>h = t</literal> and <literal>h + 2 = t</literal>. In the former case, the motivation for <function>mapOffset</function> is that since its host and target platforms are the same, no transitive dependency of it should be able to "discover" an offset greater than its reduced target offsets. <function>mapOffset</function> effectively "squashes" all its transitive dependencies' offsets so that none will ever be greater than the target offset of the original <literal>h = t</literal> package. In the other case, <literal>h + 1</literal> is skipped over between the host and target offsets. Instead of squashing the offsets, we need to "rip" them apart so no transitive dependencies' offset is that one.
-  </para>
-
-  <para>
-   Overall, the unifying theme here is that propagation shouldn't be introducing transitive dependencies involving platforms the depending package is unaware of. [One can imagine the dependending package asking for dependencies with the platforms it knows about; other platforms it doesn't know how to ask for. The platform description in that scenario is a kind of unforagable capability.] The offset bounds checking and definition of <function>mapOffset</function> together ensure that this is the case. Discovering a new offset is discovering a new platform, and since those platforms weren't in the derivation "spec" of the needing package, they cannot be relevant. From a capability perspective, we can imagine that the host and target platforms of a package are the capabilities a package requires, and the depending package must provide the capability to the dependency.
-  </para>
-
-  <variablelist>
-   <title>Variables specifying dependencies</title>
-   <varlistentry xml:id="var-stdenv-depsBuildBuild">
-    <term>
-     <varname>depsBuildBuild</varname>
-    </term>
-    <listitem>
-     <para>
-      A list of dependencies whose host and target platforms are the new derivation's build platform. This means a <literal>-1</literal> host and <literal>-1</literal> target offset from the new derivation's platforms. These are programs and libraries used at build time that produce programs and libraries also used at build time. If the dependency doesn't care about the target platform (i.e. isn't a compiler or similar tool), put it in <varname>nativeBuildInputs</varname> instead. The most common use of this <literal>buildPackages.stdenv.cc</literal>, the default C compiler for this role. That example crops up more than one might think in old commonly used C libraries.
-     </para>
-     <para>
-      Since these packages are able to be run at build-time, they are always added to the <envar>PATH</envar>, as described above. But since these packages are only guaranteed to be able to run then, they shouldn't persist as run-time dependencies. This isn't currently enforced, but could be in the future.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-nativeBuildInputs">
-    <term>
-     <varname>nativeBuildInputs</varname>
-    </term>
-    <listitem>
-     <para>
-      A list of dependencies whose host platform is the new derivation's build platform, and target platform is the new derivation's host platform. This means a <literal>-1</literal> host offset and <literal>0</literal> target offset from the new derivation's platforms. These are programs and libraries used at build-time that, if they are a compiler or similar tool, produce code to run at run-time—i.e. tools used to build the new derivation. If the dependency doesn't care about the target platform (i.e. isn't a compiler or similar tool), put it here, rather than in <varname>depsBuildBuild</varname> or <varname>depsBuildTarget</varname>. This could be called <varname>depsBuildHost</varname> but <varname>nativeBuildInputs</varname> is used for historical continuity.
-     </para>
-     <para>
-      Since these packages are able to be run at build-time, they are added to the <envar>PATH</envar>, as described above. But since these packages are only guaranteed to be able to run then, they shouldn't persist as run-time dependencies. This isn't currently enforced, but could be in the future.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-depsBuildTarget">
-    <term>
-     <varname>depsBuildTarget</varname>
-    </term>
-    <listitem>
-     <para>
-      A list of dependencies whose host platform is the new derivation's build platform, and target platform is the new derivation's target platform. This means a <literal>-1</literal> host offset and <literal>1</literal> target offset from the new derivation's platforms. These are programs used at build time that produce code to run with code produced by the depending package. Most commonly, these are tools used to build the runtime or standard library that the currently-being-built compiler will inject into any code it compiles. In many cases, the currently-being-built-compiler is itself employed for that task, but when that compiler won't run (i.e. its build and host platform differ) this is not possible. Other times, the compiler relies on some other tool, like binutils, that is always built separately so that the dependency is unconditional.
-     </para>
-     <para>
-      This is a somewhat confusing concept to wrap one’s head around, and for good reason. As the only dependency type where the platform offsets are not adjacent integers, it requires thinking of a bootstrapping stage <emphasis>two</emphasis> away from the current one. It and its use-case go hand in hand and are both considered poor form: try to not need this sort of dependency, and try to avoid building standard libraries and runtimes in the same derivation as the compiler produces code using them. Instead strive to build those like a normal library, using the newly-built compiler just as a normal library would. In short, do not use this attribute unless you are packaging a compiler and are sure it is needed.
-     </para>
-     <para>
-      Since these packages are able to run at build time, they are added to the <envar>PATH</envar>, as described above. But since these packages are only guaranteed to be able to run then, they shouldn't persist as run-time dependencies. This isn't currently enforced, but could be in the future.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-depsHostHost">
-    <term>
-     <varname>depsHostHost</varname>
-    </term>
-    <listitem>
-     <para>
-      A list of dependencies whose host and target platforms match the new derivation's host platform. This means a <literal>0</literal> host offset and <literal>0</literal> target offset from the new derivation's host platform. These are packages used at run-time to generate code also used at run-time. In practice, this would usually be tools used by compilers for macros or a metaprogramming system, or libraries used by the macros or metaprogramming code itself. It's always preferable to use a <varname>depsBuildBuild</varname> dependency in the derivation being built over a <varname>depsHostHost</varname> on the tool doing the building for this purpose.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-buildInputs">
-    <term>
-     <varname>buildInputs</varname>
-    </term>
-    <listitem>
-     <para>
-      A list of dependencies whose host platform and target platform match the new derivation's. This means a <literal>0</literal> host offset and a <literal>1</literal> target offset from the new derivation's host platform. This would be called <varname>depsHostTarget</varname> but for historical continuity. If the dependency doesn't care about the target platform (i.e. isn't a compiler or similar tool), put it here, rather than in <varname>depsBuildBuild</varname>.
-     </para>
-     <para>
-      These are often programs and libraries used by the new derivation at <emphasis>run</emphasis>-time, but that isn't always the case. For example, the machine code in a statically-linked library is only used at run-time, but the derivation containing the library is only needed at build-time. Even in the dynamic case, the library may also be needed at build-time to appease the linker.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-depsTargetTarget">
-    <term>
-     <varname>depsTargetTarget</varname>
-    </term>
-    <listitem>
-     <para>
-      A list of dependencies whose host platform matches the new derivation's target platform. This means a <literal>1</literal> offset from the new derivation's platforms. These are packages that run on the target platform, e.g. the standard library or run-time deps of standard library that a compiler insists on knowing about. It's poor form in almost all cases for a package to depend on another from a future stage [future stage corresponding to positive offset]. Do not use this attribute unless you are packaging a compiler and are sure it is needed.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-depsBuildBuildPropagated">
-    <term>
-     <varname>depsBuildBuildPropagated</varname>
-    </term>
-    <listitem>
-     <para>
-      The propagated equivalent of <varname>depsBuildBuild</varname>. This perhaps never ought to be used, but it is included for consistency [see below for the others].
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-propagatedNativeBuildInputs">
-    <term>
-     <varname>propagatedNativeBuildInputs</varname>
-    </term>
-    <listitem>
-     <para>
-      The propagated equivalent of <varname>nativeBuildInputs</varname>. This would be called <varname>depsBuildHostPropagated</varname> but for historical continuity. For example, if package <varname>Y</varname> has <literal>propagatedNativeBuildInputs = [X]</literal>, and package <varname>Z</varname> has <literal>buildInputs = [Y]</literal>, then package <varname>Z</varname> will be built as if it included package <varname>X</varname> in its <varname>nativeBuildInputs</varname>. If instead, package <varname>Z</varname> has <literal>nativeBuildInputs = [Y]</literal>, then <varname>Z</varname> will be built as if it included <varname>X</varname> in the <varname>depsBuildBuild</varname> of package <varname>Z</varname>, because of the sum of the two <literal>-1</literal> host offsets.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-depsBuildTargetPropagated">
-    <term>
-     <varname>depsBuildTargetPropagated</varname>
-    </term>
-    <listitem>
-     <para>
-      The propagated equivalent of <varname>depsBuildTarget</varname>. This is prefixed for the same reason of alerting potential users.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-depsHostHostPropagated">
-    <term>
-     <varname>depsHostHostPropagated</varname>
-    </term>
-    <listitem>
-     <para>
-      The propagated equivalent of <varname>depsHostHost</varname>.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-propagatedBuildInputs">
-    <term>
-     <varname>propagatedBuildInputs</varname>
-    </term>
-    <listitem>
-     <para>
-      The propagated equivalent of <varname>buildInputs</varname>. This would be called <varname>depsHostTargetPropagated</varname> but for historical continuity.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-stdenv-depsTargetTargetPropagated">
-    <term>
-     <varname>depsTargetTargetPropagated</varname>
-    </term>
-    <listitem>
-     <para>
-      The propagated equivalent of <varname>depsTargetTarget</varname>. This is prefixed for the same reason of alerting potential users.
-     </para>
-    </listitem>
-   </varlistentry>
-  </variablelist>
- </section>
- <section xml:id="ssec-stdenv-attributes">
-  <title>Attributes</title>
-
-  <variablelist>
-   <title>Variables affecting <literal>stdenv</literal> initialisation</title>
-   <varlistentry xml:id="var-stdenv-NIX_DEBUG">
-    <term>
-     <varname>NIX_DEBUG</varname>
-    </term>
-    <listitem>
-     <para>
-      A natural number indicating how much information to log. If set to 1 or higher, <literal>stdenv</literal> will print moderate debugging information during the build. In particular, the <command>gcc</command> and <command>ld</command> wrapper scripts will print out the complete command line passed to the wrapped tools. If set to 6 or higher, the <literal>stdenv</literal> setup script will be run with <literal>set -x</literal> tracing. If set to 7 or higher, the <command>gcc</command> and <command>ld</command> wrapper scripts will also be run with <literal>set -x</literal> tracing.
-     </para>
-    </listitem>
-   </varlistentry>
-  </variablelist>
-
-  <variablelist>
-   <title>Attributes affecting build properties</title>
-   <varlistentry xml:id="var-stdenv-enableParallelBuilding">
-    <term>
-     <varname>enableParallelBuilding</varname>
-    </term>
-    <listitem>
-     <para>
-      If set to <literal>true</literal>, <literal>stdenv</literal> will pass specific flags to <literal>make</literal> and other build tools to enable parallel building with up to <literal>build-cores</literal> workers.
-     </para>
-     <para>
-      Unless set to <literal>false</literal>, some build systems with good support for parallel building including <literal>cmake</literal>, <literal>meson</literal>, and <literal>qmake</literal> will set it to <literal>true</literal>.
-     </para>
-    </listitem>
-   </varlistentry>
-  </variablelist>
-
-  <variablelist>
-   <title>Special variables</title>
-   <varlistentry xml:id="var-stdenv-passthru">
-    <term>
-     <varname>passthru</varname>
-    </term>
-    <listitem>
-     <para>
-      This is an attribute set which can be filled with arbitrary values. For example:
-<programlisting>
-passthru = {
-  foo = "bar";
-  baz = {
-    value1 = 4;
-    value2 = 5;
-  };
-}
-</programlisting>
-     </para>
-     <para>
-      Values inside it are not passed to the builder, so you can change them without triggering a rebuild. However, they can be accessed outside of a derivation directly, as if they were set inside a derivation itself, e.g. <literal>hello.baz.value1</literal>. We don't specify any usage or schema of <literal>passthru</literal> - it is meant for values that would be useful outside the derivation in other parts of a Nix expression (e.g. in other derivations). An example would be to convey some specific dependency of your derivation which contains a program with plugins support. Later, others who make derivations with plugins can use passed-through dependency to ensure that their plugin would be binary-compatible with built program.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="var-passthru-updateScript">
-    <term>
-     <varname>passthru.updateScript</varname>
-    </term>
-    <listitem>
-     <para>
-      A script to be run by <filename>maintainers/scripts/update.nix</filename> when the package is matched. It needs to be an executable file, either on the file system:
-<programlisting>
-passthru.updateScript = ./update.sh;
-</programlisting>
-      or inside the expression itself:
-<programlisting>
-passthru.updateScript = writeScript "update-zoom-us" ''
-  #!/usr/bin/env nix-shell
-  #!nix-shell -i bash -p curl pcre common-updater-scripts
-
-  set -eu -o pipefail
-
-  version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcregrep -o1 '/(([0-9]\.?)+)/')"
-  update-source-version zoom-us "$version"
-'';
-</programlisting>
-      The attribute can also contain a list, a script followed by arguments to be passed to it:
-<programlisting>
-passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
-</programlisting>
-      The script will be run with <varname>UPDATE_NIX_ATTR_PATH</varname> environment variable set to the attribute path it is supposed to update.
-      <note>
-       <para>
-        The script will be usually run from the root of the Nixpkgs repository but you should not rely on that. Also note that the update scripts will be run in parallel by default; you should avoid running <command>git commit</command> or any other commands that cannot handle that.
-       </para>
-      </note>
-     </para>
-     <para>
-      For information about how to run the updates, execute <command>nix-shell maintainers/scripts/update.nix</command>.
-     </para>
-    </listitem>
-   </varlistentry>
-  </variablelist>
- </section>
- <section xml:id="sec-stdenv-phases">
-  <title>Phases</title>
-
-  <para>
-   The generic builder has a number of <emphasis>phases</emphasis>. Package builds are split into phases to make it easier to override specific parts of the build (e.g., unpacking the sources or installing the binaries). Furthermore, it allows a nicer presentation of build logs in the Nix build farm.
-  </para>
-
-  <para>
-   Each phase can be overridden in its entirety either by setting the environment variable <varname><replaceable>name</replaceable>Phase</varname> to a string containing some shell commands to be executed, or by redefining the shell function <varname><replaceable>name</replaceable>Phase</varname>. The former is convenient to override a phase from the derivation, while the latter is convenient from a build script. However, typically one only wants to <emphasis>add</emphasis> some commands to a phase, e.g. by defining <literal>postInstall</literal> or <literal>preFixup</literal>, as skipping some of the default actions may have unexpected consequences. The default script for each phase is defined in the file <filename>pkgs/stdenv/generic/setup.sh</filename>.
-  </para>
-
-  <section xml:id="ssec-controlling-phases">
-   <title>Controlling phases</title>
-
-   <para>
-    There are a number of variables that control what phases are executed and in what order:
-    <variablelist>
-     <title>Variables affecting phase control</title>
-     <varlistentry xml:id="var-stdenv-phases">
-      <term>
-       <varname>phases</varname>
-      </term>
-      <listitem>
-       <para>
-        Specifies the phases. You can change the order in which phases are executed, or add new phases, by setting this variable. If it’s not set, the default value is used, which is <literal>$prePhases unpackPhase patchPhase $preConfigurePhases configurePhase $preBuildPhases buildPhase checkPhase $preInstallPhases installPhase fixupPhase installCheckPhase $preDistPhases distPhase $postPhases</literal>.
-       </para>
-       <para>
-        Usually, if you just want to add a few phases, it’s more convenient to set one of the variables below (such as <varname>preInstallPhases</varname>), as you then don’t specify all the normal phases.
-       </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry xml:id="var-stdenv-prePhases">
-      <term>
-       <varname>prePhases</varname>
-      </term>
-      <listitem>
-       <para>
-        Additional phases executed before any of the default phases.
-       </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry xml:id="var-stdenv-preConfigurePhases">
-      <term>
-       <varname>preConfigurePhases</varname>
-      </term>
-      <listitem>
-       <para>
-        Additional phases executed just before the configure phase.
-       </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry xml:id="var-stdenv-preBuildPhases">
-      <term>
-       <varname>preBuildPhases</varname>
-      </term>
-      <listitem>
-       <para>
-        Additional phases executed just before the build phase.
-       </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry xml:id="var-stdenv-preInstallPhases">
-      <term>
-       <varname>preInstallPhases</varname>
-      </term>
-      <listitem>
-       <para>
-        Additional phases executed just before the install phase.
-       </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry xml:id="var-stdenv-preFixupPhases">
-      <term>
-       <varname>preFixupPhases</varname>
-      </term>
-      <listitem>
-       <para>
-        Additional phases executed just before the fixup phase.
-       </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry xml:id="var-stdenv-preDistPhases">
-      <term>
-       <varname>preDistPhases</varname>
-      </term>
-      <listitem>
-       <para>
-        Additional phases executed just before the distribution phase.
-       </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry xml:id="var-stdenv-postPhases">
-      <term>
-       <varname>postPhases</varname>
-      </term>
-      <listitem>
-       <para>
-        Additional phases executed after any of the default phases.
-       </para>
-      </listitem>
-     </varlistentry>
-    </variablelist>
-   </para>
-  </section>
-
-  <section xml:id="ssec-unpack-phase">
-   <title>The unpack phase</title>
-
-   <para>
-    The unpack phase is responsible for unpacking the source code of the package. The default implementation of <function>unpackPhase</function> unpacks the source files listed in the <envar>src</envar> environment variable to the current directory. It supports the following files by default:
-    <variablelist>
-     <varlistentry>
-      <term>
-       Tar files
-      </term>
-      <listitem>
-       <para>
-        These can optionally be compressed using <command>gzip</command> (<filename>.tar.gz</filename>, <filename>.tgz</filename> or <filename>.tar.Z</filename>), <command>bzip2</command> (<filename>.tar.bz2</filename>, <filename>.tbz2</filename> or <filename>.tbz</filename>) or <command>xz</command> (<filename>.tar.xz</filename>, <filename>.tar.lzma</filename> or <filename>.txz</filename>).
-       </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry>
-      <term>
-       Zip files
-      </term>
-      <listitem>
-       <para>
-        Zip files are unpacked using <command>unzip</command>. However, <command>unzip</command> is not in the standard environment, so you should add it to <varname>nativeBuildInputs</varname> yourself.
-       </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry>
-      <term>
-       Directories in the Nix store
-      </term>
-      <listitem>
-       <para>
-        These are simply copied to the current directory. The hash part of the file name is stripped, e.g. <filename>/nix/store/1wydxgby13cz...-my-sources</filename> would be copied to <filename>my-sources</filename>.
-       </para>
-      </listitem>
-     </varlistentry>
-    </variablelist>
-    Additional file types can be supported by setting the <varname>unpackCmd</varname> variable (see below).
-   </para>
-
-   <para></para>
-
-   <variablelist>
-    <title>Variables controlling the unpack phase</title>
-    <varlistentry xml:id="var-stdenv-src">
-     <term>
-      <varname>srcs</varname> / <varname>src</varname>
-     </term>
-     <listitem>
-      <para>
-       The list of source files or directories to be unpacked or copied. One of these must be set.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-sourceRoot">
-     <term>
-      <varname>sourceRoot</varname>
-     </term>
-     <listitem>
-      <para>
-       After running <function>unpackPhase</function>, the generic builder changes the current directory to the directory created by unpacking the sources. If there are multiple source directories, you should set <varname>sourceRoot</varname> to the name of the intended directory.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-setSourceRoot">
-     <term>
-      <varname>setSourceRoot</varname>
-     </term>
-     <listitem>
-      <para>
-       Alternatively to setting <varname>sourceRoot</varname>, you can set <varname>setSourceRoot</varname> to a shell command to be evaluated by the unpack phase after the sources have been unpacked. This command must set <varname>sourceRoot</varname>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-preUnpack">
-     <term>
-      <varname>preUnpack</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the start of the unpack phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-postUnpack">
-     <term>
-      <varname>postUnpack</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the end of the unpack phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontUnpack">
-     <term>
-      <varname>dontUnpack</varname>
-     </term>
-     <listitem>
-      <para>
-       Set to true to skip the unpack phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontMakeSourcesWritable">
-     <term>
-      <varname>dontMakeSourcesWritable</varname>
-     </term>
-     <listitem>
-      <para>
-       If set to <literal>1</literal>, the unpacked sources are <emphasis>not</emphasis> made writable. By default, they are made writable to prevent problems with read-only sources. For example, copied store directories would be read-only without this.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-unpackCmd">
-     <term>
-      <varname>unpackCmd</varname>
-     </term>
-     <listitem>
-      <para>
-       The unpack phase evaluates the string <literal>$unpackCmd</literal> for any unrecognised file. The path to the current source file is contained in the <varname>curSrc</varname> variable.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </section>
-
-  <section xml:id="ssec-patch-phase">
-   <title>The patch phase</title>
-
-   <para>
-    The patch phase applies the list of patches defined in the <varname>patches</varname> variable.
-   </para>
-
-   <variablelist>
-    <title>Variables controlling the patch phase</title>
-    <varlistentry xml:id="var-stdenv-dontPatch">
-     <term>
-      <varname>dontPatch</varname>
-     </term>
-     <listitem>
-      <para>
-       Set to true to skip the patch phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-patches">
-     <term>
-      <varname>patches</varname>
-     </term>
-     <listitem>
-      <para>
-       The list of patches. They must be in the format accepted by the <command>patch</command> command, and may optionally be compressed using <command>gzip</command> (<filename>.gz</filename>), <command>bzip2</command> (<filename>.bz2</filename>) or <command>xz</command> (<filename>.xz</filename>).
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-patchFlags">
-     <term>
-      <varname>patchFlags</varname>
-     </term>
-     <listitem>
-      <para>
-       Flags to be passed to <command>patch</command>. If not set, the argument <option>-p1</option> is used, which causes the leading directory component to be stripped from the file names in each patch.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-prePatch">
-     <term>
-      <varname>prePatch</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the start of the patch phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-postPatch">
-     <term>
-      <varname>postPatch</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the end of the patch phase.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </section>
-
-  <section xml:id="ssec-configure-phase">
-   <title>The configure phase</title>
-
-   <para>
-    The configure phase prepares the source tree for building. The default <function>configurePhase</function> runs <filename>./configure</filename> (typically an Autoconf-generated script) if it exists.
-   </para>
-
-   <variablelist>
-    <title>Variables controlling the configure phase</title>
-    <varlistentry xml:id="var-stdenv-configureScript">
-     <term>
-      <varname>configureScript</varname>
-     </term>
-     <listitem>
-      <para>
-       The name of the configure script. It defaults to <filename>./configure</filename> if it exists; otherwise, the configure phase is skipped. This can actually be a command (like <literal>perl ./Configure.pl</literal>).
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-configureFlags">
-     <term>
-      <varname>configureFlags</varname>
-     </term>
-     <listitem>
-      <para>
-       A list of strings passed as additional arguments to the configure script.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontConfigure">
-     <term>
-      <varname>dontConfigure</varname>
-     </term>
-     <listitem>
-      <para>
-       Set to true to skip the configure phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-configureFlagsArray">
-     <term>
-      <varname>configureFlagsArray</varname>
-     </term>
-     <listitem>
-      <para>
-       A shell array containing additional arguments passed to the configure script. You must use this instead of <varname>configureFlags</varname> if the arguments contain spaces.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontAddPrefix">
-     <term>
-      <varname>dontAddPrefix</varname>
-     </term>
-     <listitem>
-      <para>
-       By default, the flag <literal>--prefix=$prefix</literal> is added to the configure flags. If this is undesirable, set this variable to true.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-prefix">
-     <term>
-      <varname>prefix</varname>
-     </term>
-     <listitem>
-      <para>
-       The prefix under which the package must be installed, passed via the <option>--prefix</option> option to the configure script. It defaults to <option>$out</option>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-prefixKey">
-     <term>
-      <varname>prefixKey</varname>
-     </term>
-     <listitem>
-      <para>
-       The key to use when specifying the prefix. By default, this is set to <option>--prefix=</option> as that is used by the majority of packages.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontAddDisableDepTrack">
-     <term>
-      <varname>dontAddDisableDepTrack</varname>
-     </term>
-     <listitem>
-      <para>
-       By default, the flag <literal>--disable-dependency-tracking</literal> is added to the configure flags to speed up Automake-based builds. If this is undesirable, set this variable to true.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontFixLibtool">
-     <term>
-      <varname>dontFixLibtool</varname>
-     </term>
-     <listitem>
-      <para>
-       By default, the configure phase applies some special hackery to all files called <filename>ltmain.sh</filename> before running the configure script in order to improve the purity of Libtool-based packages
-       <footnote xml:id="footnote-stdenv-sys-lib-search-path">
-        <para>
-         It clears the <varname>sys_lib_<replaceable>*</replaceable>search_path</varname> variables in the Libtool script to prevent Libtool from using libraries in <filename>/usr/lib</filename> and such.
-        </para>
-       </footnote>
-       . If this is undesirable, set this variable to true.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontDisableStatic">
-     <term>
-      <varname>dontDisableStatic</varname>
-     </term>
-     <listitem>
-      <para>
-       By default, when the configure script has <option>--enable-static</option>, the option <option>--disable-static</option> is added to the configure flags.
-      </para>
-      <para>
-       If this is undesirable, set this variable to true.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-configurePlatforms">
-     <term>
-      <varname>configurePlatforms</varname>
-     </term>
-     <listitem>
-      <para>
-       By default, when cross compiling, the configure script has <option>--build=...</option> and <option>--host=...</option> passed. Packages can instead pass <literal>[ "build" "host" "target" ]</literal> or a subset to control exactly which platform flags are passed. Compilers and other tools can use this to also pass the target platform.
-       <footnote xml:id="footnote-stdenv-build-time-guessing-impurity">
-        <para>
-         Eventually these will be passed building natively as well, to improve determinism: build-time guessing, as is done today, is a risk of impurity.
-        </para>
-       </footnote>
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-preConfigure">
-     <term>
-      <varname>preConfigure</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the start of the configure phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-postConfigure">
-     <term>
-      <varname>postConfigure</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the end of the configure phase.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </section>
-
-  <section xml:id="build-phase">
-   <title>The build phase</title>
-
-   <para>
-    The build phase is responsible for actually building the package (e.g. compiling it). The default <function>buildPhase</function> simply calls <command>make</command> if a file named <filename>Makefile</filename>, <filename>makefile</filename> or <filename>GNUmakefile</filename> exists in the current directory (or the <varname>makefile</varname> is explicitly set); otherwise it does nothing.
-   </para>
-
-   <variablelist>
-    <title>Variables controlling the build phase</title>
-    <varlistentry xml:id="var-stdenv-dontBuild">
-     <term>
-      <varname>dontBuild</varname>
-     </term>
-     <listitem>
-      <para>
-       Set to true to skip the build phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-makefile">
-     <term>
-      <varname>makefile</varname>
-     </term>
-     <listitem>
-      <para>
-       The file name of the Makefile.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-makeFlags">
-     <term>
-      <varname>makeFlags</varname>
-     </term>
-     <listitem>
-      <para>
-       A list of strings passed as additional flags to <command>make</command>. These flags are also used by the default install and check phase. For setting make flags specific to the build phase, use <varname>buildFlags</varname> (see below).
-<programlisting>
-makeFlags = [ "PREFIX=$(out)" ];
-</programlisting>
-       <note>
-        <para>
-         The flags are quoted in bash, but environment variables can be specified by using the make syntax.
-        </para>
-       </note>
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-makeFlagsArray">
-     <term>
-      <varname>makeFlagsArray</varname>
-     </term>
-     <listitem>
-      <para>
-       A shell array containing additional arguments passed to <command>make</command>. You must use this instead of <varname>makeFlags</varname> if the arguments contain spaces, e.g.
-<programlisting>
-preBuild = ''
-  makeFlagsArray+=(CFLAGS="-O0 -g" LDFLAGS="-lfoo -lbar")
-'';
-</programlisting>
-       Note that shell arrays cannot be passed through environment variables, so you cannot set <varname>makeFlagsArray</varname> in a derivation attribute (because those are passed through environment variables): you have to define them in shell code.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-buildFlags">
-     <term>
-      <varname>buildFlags</varname> / <varname>buildFlagsArray</varname>
-     </term>
-     <listitem>
-      <para>
-       A list of strings passed as additional flags to <command>make</command>. Like <varname>makeFlags</varname> and <varname>makeFlagsArray</varname>, but only used by the build phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-preBuild">
-     <term>
-      <varname>preBuild</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the start of the build phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-postBuild">
-     <term>
-      <varname>postBuild</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the end of the build phase.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-
-   <para>
-    You can set flags for <command>make</command> through the <varname>makeFlags</varname> variable.
-   </para>
-
-   <para>
-    Before and after running <command>make</command>, the hooks <varname>preBuild</varname> and <varname>postBuild</varname> are called, respectively.
-   </para>
-  </section>
-
-  <section xml:id="ssec-check-phase">
-   <title>The check phase</title>
-
-   <para>
-    The check phase checks whether the package was built correctly by running its test suite. The default <function>checkPhase</function> calls <command>make check</command>, but only if the <varname>doCheck</varname> variable is enabled.
-   </para>
-
-   <variablelist>
-    <title>Variables controlling the check phase</title>
-    <varlistentry xml:id="var-stdenv-doCheck">
-     <term>
-      <varname>doCheck</varname>
-     </term>
-     <listitem>
-      <para>
-       Controls whether the check phase is executed. By default it is skipped, but if <varname>doCheck</varname> is set to true, the check phase is usually executed. Thus you should set
-<programlisting>doCheck = true;</programlisting>
-       in the derivation to enable checks. The exception is cross compilation. Cross compiled builds never run tests, no matter how <varname>doCheck</varname> is set, as the newly-built program won't run on the platform used to build it.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname>makeFlags</varname> / <varname>makeFlagsArray</varname> / <varname>makefile</varname>
-     </term>
-     <listitem>
-      <para>
-       See the <link xlink:href="#var-stdenv-makeFlags">build phase</link> for details.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-checkTarget">
-     <term>
-      <varname>checkTarget</varname>
-     </term>
-     <listitem>
-      <para>
-       The make target that runs the tests. Defaults to <literal>check</literal>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-checkFlags">
-     <term>
-      <varname>checkFlags</varname> / <varname>checkFlagsArray</varname>
-     </term>
-     <listitem>
-      <para>
-       A list of strings passed as additional flags to <command>make</command>. Like <varname>makeFlags</varname> and <varname>makeFlagsArray</varname>, but only used by the check phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-checkInputs">
-     <term>
-      <varname>checkInputs</varname>
-     </term>
-     <listitem>
-      <para>
-       A list of dependencies used by the phase. This gets included in <varname>nativeBuildInputs</varname> when <varname>doCheck</varname> is set.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-preCheck">
-     <term>
-      <varname>preCheck</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the start of the check phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-postCheck">
-     <term>
-      <varname>postCheck</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the end of the check phase.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </section>
-
-  <section xml:id="ssec-install-phase">
-   <title>The install phase</title>
-
-   <para>
-    The install phase is responsible for installing the package in the Nix store under <envar>out</envar>. The default <function>installPhase</function> creates the directory <literal>$out</literal> and calls <command>make install</command>.
-   </para>
-
-   <variablelist>
-    <title>Variables controlling the install phase</title>
-     <varlistentry xml:id="var-stdenv-dontInstall">
-     <term>
-       <varname>dontInstall</varname>
-     </term>
-     <listitem>
-      <para>
-       Set to true to skip the install phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname>makeFlags</varname> / <varname>makeFlagsArray</varname> / <varname>makefile</varname>
-     </term>
-     <listitem>
-      <para>
-       See the <link xlink:href="#var-stdenv-makeFlags">build phase</link> for details.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-installTargets">
-     <term>
-      <varname>installTargets</varname>
-     </term>
-     <listitem>
-      <para>
-       The make targets that perform the installation. Defaults to <literal>install</literal>. Example:
-<programlisting>
-installTargets = "install-bin install-doc";</programlisting>
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-installFlags">
-     <term>
-      <varname>installFlags</varname> / <varname>installFlagsArray</varname>
-     </term>
-     <listitem>
-      <para>
-       A list of strings passed as additional flags to <command>make</command>. Like <varname>makeFlags</varname> and <varname>makeFlagsArray</varname>, but only used by the install phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-preInstall">
-     <term>
-      <varname>preInstall</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the start of the install phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-postInstall">
-     <term>
-      <varname>postInstall</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the end of the install phase.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </section>
-
-  <section xml:id="ssec-fixup-phase">
-   <title>The fixup phase</title>
-
-   <para>
-    The fixup phase performs some (Nix-specific) post-processing actions on the files installed under <filename>$out</filename> by the install phase. The default <function>fixupPhase</function> does the following:
-    <itemizedlist>
-     <listitem>
-      <para>
-       It moves the <filename>man/</filename>, <filename>doc/</filename> and <filename>info/</filename> subdirectories of <envar>$out</envar> to <filename>share/</filename>.
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       It strips libraries and executables of debug information.
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       On Linux, it applies the <command>patchelf</command> command to ELF executables and libraries to remove unused directories from the <literal>RPATH</literal> in order to prevent unnecessary runtime dependencies.
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       It rewrites the interpreter paths of shell scripts to paths found in <envar>PATH</envar>. E.g., <filename>/usr/bin/perl</filename> will be rewritten to <filename>/nix/store/<replaceable>some-perl</replaceable>/bin/perl</filename> found in <envar>PATH</envar>.
-      </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-
-   <variablelist>
-    <title>Variables controlling the fixup phase</title>
-    <varlistentry xml:id="var-stdenv-dontFixup">
-     <term>
-      <varname>dontFixup</varname>
-     </term>
-     <listitem>
-      <para>
-       Set to true to skip the fixup phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontStrip">
-     <term>
-      <varname>dontStrip</varname>
-     </term>
-     <listitem>
-      <para>
-       If set, libraries and executables are not stripped. By default, they are.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontStripHost">
-     <term>
-      <varname>dontStripHost</varname>
-     </term>
-     <listitem>
-      <para>
-       Like <varname>dontStrip</varname>, but only affects the <command>strip</command> command targetting the package's host platform. Useful when supporting cross compilation, but otherwise feel free to ignore.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontStripTarget">
-     <term>
-      <varname>dontStripTarget</varname>
-     </term>
-     <listitem>
-      <para>
-       Like <varname>dontStrip</varname>, but only affects the <command>strip</command> command targetting the packages' target platform. Useful when supporting cross compilation, but otherwise feel free to ignore.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontMoveSbin">
-     <term>
-      <varname>dontMoveSbin</varname>
-     </term>
-     <listitem>
-      <para>
-       If set, files in <filename>$out/sbin</filename> are not moved to <filename>$out/bin</filename>. By default, they are.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-stripAllList">
-     <term>
-      <varname>stripAllList</varname>
-     </term>
-     <listitem>
-      <para>
-       List of directories to search for libraries and executables from which <emphasis>all</emphasis> symbols should be stripped. By default, it’s empty. Stripping all symbols is risky, since it may remove not just debug symbols but also ELF information necessary for normal execution.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-stripAllFlags">
-     <term>
-      <varname>stripAllFlags</varname>
-     </term>
-     <listitem>
-      <para>
-       Flags passed to the <command>strip</command> command applied to the files in the directories listed in <varname>stripAllList</varname>. Defaults to <option>-s</option> (i.e. <option>--strip-all</option>).
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-stripDebugList">
-     <term>
-      <varname>stripDebugList</varname>
-     </term>
-     <listitem>
-      <para>
-       List of directories to search for libraries and executables from which only debugging-related symbols should be stripped. It defaults to <literal>lib lib32 lib64 libexec bin sbin</literal>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-stripDebugFlags">
-     <term>
-      <varname>stripDebugFlags</varname>
-     </term>
-     <listitem>
-      <para>
-       Flags passed to the <command>strip</command> command applied to the files in the directories listed in <varname>stripDebugList</varname>. Defaults to <option>-S</option> (i.e. <option>--strip-debug</option>).
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontPatchELF">
-     <term>
-      <varname>dontPatchELF</varname>
-     </term>
-     <listitem>
-      <para>
-       If set, the <command>patchelf</command> command is not used to remove unnecessary <literal>RPATH</literal> entries. Only applies to Linux.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontPatchShebangs">
-     <term>
-      <varname>dontPatchShebangs</varname>
-     </term>
-     <listitem>
-      <para>
-       If set, scripts starting with <literal>#!</literal> do not have their interpreter paths rewritten to paths in the Nix store.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontPruneLibtoolFiles">
-     <term>
-      <varname>dontPruneLibtoolFiles</varname>
-     </term>
-     <listitem>
-      <para>
-       If set, libtool <literal>.la</literal> files associated with shared libraries won't have their <literal>dependency_libs</literal> field cleared.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-forceShare">
-     <term>
-      <varname>forceShare</varname>
-     </term>
-     <listitem>
-      <para>
-       The list of directories that must be moved from <filename>$out</filename> to <filename>$out/share</filename>. Defaults to <literal>man doc info</literal>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-setupHook">
-     <term>
-      <varname>setupHook</varname>
-     </term>
-     <listitem>
-      <para>
-       A package can export a <link linkend="ssec-setup-hooks">setup hook</link> by setting this variable. The setup hook, if defined, is copied to <filename>$out/nix-support/setup-hook</filename>. Environment variables are then substituted in it using <function
-       linkend="fun-substituteAll">substituteAll</function>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-preFixup">
-     <term>
-      <varname>preFixup</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the start of the fixup phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-postFixup">
-     <term>
-      <varname>postFixup</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the end of the fixup phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="stdenv-separateDebugInfo">
-     <term>
-      <varname>separateDebugInfo</varname>
-     </term>
-     <listitem>
-      <para>
-       If set to <literal>true</literal>, the standard environment will enable debug information in C/C++ builds. After installation, the debug information will be separated from the executables and stored in the output named <literal>debug</literal>. (This output is enabled automatically; you don’t need to set the <varname>outputs</varname> attribute explicitly.) To be precise, the debug information is stored in <filename><replaceable>debug</replaceable>/lib/debug/.build-id/<replaceable>XX</replaceable>/<replaceable>YYYY…</replaceable></filename>, where <replaceable>XXYYYY…</replaceable> is the <replaceable>build ID</replaceable> of the binary — a SHA-1 hash of the contents of the binary. Debuggers like GDB use the build ID to look up the separated debug information.
-      </para>
-      <para>
-       For example, with GDB, you can add
-<programlisting>
-set debug-file-directory ~/.nix-profile/lib/debug
-</programlisting>
-       to <filename>~/.gdbinit</filename>. GDB will then be able to find debug information installed via <literal>nix-env -i</literal>.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </section>
-
-  <section xml:id="ssec-installCheck-phase">
-   <title>The installCheck phase</title>
-
-   <para>
-    The installCheck phase checks whether the package was installed correctly by running its test suite against the installed directories. The default <function>installCheck</function> calls <command>make installcheck</command>.
-   </para>
-
-   <variablelist>
-    <title>Variables controlling the installCheck phase</title>
-    <varlistentry xml:id="var-stdenv-doInstallCheck">
-     <term>
-      <varname>doInstallCheck</varname>
-     </term>
-     <listitem>
-      <para>
-       Controls whether the installCheck phase is executed. By default it is skipped, but if <varname>doInstallCheck</varname> is set to true, the installCheck phase is usually executed. Thus you should set
-<programlisting>doInstallCheck = true;</programlisting>
-       in the derivation to enable install checks. The exception is cross compilation. Cross compiled builds never run tests, no matter how <varname>doInstallCheck</varname> is set, as the newly-built program won't run on the platform used to build it.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-installCheckTarget">
-     <term>
-      <varname>installCheckTarget</varname>
-     </term>
-     <listitem>
-      <para>
-       The make target that runs the install tests. Defaults to <literal>installcheck</literal>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-installCheckFlags">
-     <term>
-      <varname>installCheckFlags</varname> / <varname>installCheckFlagsArray</varname>
-     </term>
-     <listitem>
-      <para>
-       A list of strings passed as additional flags to <command>make</command>. Like <varname>makeFlags</varname> and <varname>makeFlagsArray</varname>, but only used by the installCheck phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-installCheckInputs">
-     <term>
-      <varname>installCheckInputs</varname>
-     </term>
-     <listitem>
-      <para>
-       A list of dependencies used by the phase. This gets included in <varname>nativeBuildInputs</varname> when <varname>doInstallCheck</varname> is set.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-preInstallCheck">
-     <term>
-      <varname>preInstallCheck</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the start of the installCheck phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-postInstallCheck">
-     <term>
-      <varname>postInstallCheck</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the end of the installCheck phase.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </section>
-
-  <section xml:id="ssec-distribution-phase">
-   <title>The distribution phase</title>
-
-   <para>
-    The distribution phase is intended to produce a source distribution of the package. The default <function>distPhase</function> first calls <command>make dist</command>, then it copies the resulting source tarballs to <filename>$out/tarballs/</filename>. This phase is only executed if the attribute <varname>doDist</varname> is set.
-   </para>
-
-   <variablelist>
-    <title>Variables controlling the distribution phase</title>
-    <varlistentry xml:id="var-stdenv-distTarget">
-     <term>
-      <varname>distTarget</varname>
-     </term>
-     <listitem>
-      <para>
-       The make target that produces the distribution. Defaults to <literal>dist</literal>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-distFlags">
-     <term>
-      <varname>distFlags</varname> / <varname>distFlagsArray</varname>
-     </term>
-     <listitem>
-      <para>
-       Additional flags passed to <command>make</command>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-tarballs">
-     <term>
-      <varname>tarballs</varname>
-     </term>
-     <listitem>
-      <para>
-       The names of the source distribution files to be copied to <filename>$out/tarballs/</filename>. It can contain shell wildcards. The default is <filename>*.tar.gz</filename>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-dontCopyDist">
-     <term>
-      <varname>dontCopyDist</varname>
-     </term>
-     <listitem>
-      <para>
-       If set, no files are copied to <filename>$out/tarballs/</filename>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-preDist">
-     <term>
-      <varname>preDist</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the start of the distribution phase.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="var-stdenv-postDist">
-     <term>
-      <varname>postDist</varname>
-     </term>
-     <listitem>
-      <para>
-       Hook executed at the end of the distribution phase.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </section>
- </section>
- <section xml:id="ssec-stdenv-functions">
-  <title>Shell functions</title>
-
-  <para>
-   The standard environment provides a number of useful functions.
-  </para>
-
-  <variablelist>
-   <varlistentry xml:id='fun-makeWrapper'>
-    <term>
-     <function>makeWrapper</function> <replaceable>executable</replaceable> <replaceable>wrapperfile</replaceable> <replaceable>args</replaceable>
-    </term>
-    <listitem>
-     <para>
-      Constructs a wrapper for a program with various possible arguments. For example:
-<programlisting>
-# adds `FOOBAR=baz` to `$out/bin/foo`’s environment
-makeWrapper $out/bin/foo $wrapperfile --set FOOBAR baz
-
-# prefixes the binary paths of `hello` and `git`
-# Be advised that paths often should be patched in directly
-# (via string replacements or in `configurePhase`).
-makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello git ]}
-</programlisting>
-      There’s many more kinds of arguments, they are documented in <literal>nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh</literal>.
-     </para>
-     <para>
-      <literal>wrapProgram</literal> is a convenience function you probably want to use most of the time.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id='fun-substitute'>
-    <term>
-     <function>substitute</function> <replaceable>infile</replaceable> <replaceable>outfile</replaceable> <replaceable>subs</replaceable>
-    </term>
-    <listitem>
-     <para>
-      Performs string substitution on the contents of <replaceable>infile</replaceable>, writing the result to <replaceable>outfile</replaceable>. The substitutions in <replaceable>subs</replaceable> are of the following form:
-      <variablelist>
-       <varlistentry>
-        <term>
-         <option>--replace</option> <replaceable>s1</replaceable> <replaceable>s2</replaceable>
-        </term>
-        <listitem>
-         <para>
-          Replace every occurrence of the string <replaceable>s1</replaceable> by <replaceable>s2</replaceable>.
-         </para>
-        </listitem>
-       </varlistentry>
-       <varlistentry>
-        <term>
-         <option>--subst-var</option> <replaceable>varName</replaceable>
-        </term>
-        <listitem>
-         <para>
-          Replace every occurrence of <literal>@<replaceable>varName</replaceable>@</literal> by the contents of the environment variable <replaceable>varName</replaceable>. This is useful for generating files from templates, using <literal>@<replaceable>...</replaceable>@</literal> in the template as placeholders.
-         </para>
-        </listitem>
-       </varlistentry>
-       <varlistentry>
-        <term>
-         <option>--subst-var-by</option> <replaceable>varName</replaceable> <replaceable>s</replaceable>
-        </term>
-        <listitem>
-         <para>
-          Replace every occurrence of <literal>@<replaceable>varName</replaceable>@</literal> by the string <replaceable>s</replaceable>.
-         </para>
-        </listitem>
-       </varlistentry>
-      </variablelist>
-     </para>
-     <para>
-      Example:
-<programlisting>
-substitute ./foo.in ./foo.out \
-    --replace /usr/bin/bar $bar/bin/bar \
-    --replace "a string containing spaces" "some other text" \
-    --subst-var someVar
-</programlisting>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id='fun-substituteInPlace'>
-    <term>
-     <function>substituteInPlace</function> <replaceable>file</replaceable> <replaceable>subs</replaceable>
-    </term>
-    <listitem>
-     <para>
-      Like <function>substitute</function>, but performs the substitutions in place on the file <replaceable>file</replaceable>.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id='fun-substituteAll'>
-    <term>
-     <function>substituteAll</function> <replaceable>infile</replaceable> <replaceable>outfile</replaceable>
-    </term>
-    <listitem>
-     <para>
-      Replaces every occurrence of <literal>@<replaceable>varName</replaceable>@</literal>, where <replaceable>varName</replaceable> is any environment variable, in <replaceable>infile</replaceable>, writing the result to <replaceable>outfile</replaceable>. For instance, if <replaceable>infile</replaceable> has the contents
-<programlisting>
-#! @bash@/bin/sh
-PATH=@coreutils@/bin
-echo @foo@
-</programlisting>
-      and the environment contains <literal>bash=/nix/store/bmwp0q28cf21...-bash-3.2-p39</literal> and <literal>coreutils=/nix/store/68afga4khv0w...-coreutils-6.12</literal>, but does not contain the variable <varname>foo</varname>, then the output will be
-<programlisting>
-#! /nix/store/bmwp0q28cf21...-bash-3.2-p39/bin/sh
-PATH=/nix/store/68afga4khv0w...-coreutils-6.12/bin
-echo @foo@
-</programlisting>
-      That is, no substitution is performed for undefined variables.
-     </para>
-     <para>
-      Environment variables that start with an uppercase letter or an underscore are filtered out, to prevent global variables (like <literal>HOME</literal>) or private variables (like <literal>__ETC_PROFILE_DONE</literal>) from accidentally getting substituted. The variables also have to be valid bash “names”, as defined in the bash manpage (alphanumeric or <literal>_</literal>, must not start with a number).
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id='fun-substituteAllInPlace'>
-    <term>
-     <function>substituteAllInPlace</function> <replaceable>file</replaceable>
-    </term>
-    <listitem>
-     <para>
-      Like <function>substituteAll</function>, but performs the substitutions in place on the file <replaceable>file</replaceable>.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id='fun-stripHash'>
-    <term>
-     <function>stripHash</function> <replaceable>path</replaceable>
-    </term>
-    <listitem>
-     <para>
-      Strips the directory and hash part of a store path, outputting the name part to <literal>stdout</literal>. For example:
-<programlisting>
-# prints coreutils-8.24
-stripHash "/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
-</programlisting>
-      If you wish to store the result in another variable, then the following idiom may be useful:
-<programlisting>
-name="/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
-someVar=$(stripHash $name)
-</programlisting>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id='fun-wrapProgram'>
-    <term>
-     <function>wrapProgram</function> <replaceable>executable</replaceable> <replaceable>makeWrapperArgs</replaceable>
-    </term>
-    <listitem>
-     <para>
-      Convenience function for <literal>makeWrapper</literal> that automatically creates a sane wrapper file. It takes all the same arguments as <literal>makeWrapper</literal>, except for <literal>--argv0</literal>.
-     </para>
-     <para>
-      It cannot be applied multiple times, since it will overwrite the wrapper file.
-     </para>
-    </listitem>
-   </varlistentry>
-  </variablelist>
- </section>
- <section xml:id="ssec-setup-hooks">
-  <title>Package setup hooks</title>
-
-  <para>
-   Nix itself considers a build-time dependency as merely something that should previously be built and accessible at build time—packages themselves are on their own to perform any additional setup. In most cases, that is fine, and the downstream derivation can deal with its own dependencies. But for a few common tasks, that would result in almost every package doing the same sort of setup work—depending not on the package itself, but entirely on which dependencies were used.
-  </para>
-
-  <para>
-   In order to alleviate this burden, the <firstterm>setup hook</firstterm> mechanism was written, where any package can include a shell script that [by convention rather than enforcement by Nix], any downstream reverse-dependency will source as part of its build process. That allows the downstream dependency to merely specify its dependencies, and lets those dependencies effectively initialize themselves. No boilerplate mirroring the list of dependencies is needed.
-  </para>
-
-  <para>
-   The setup hook mechanism is a bit of a sledgehammer though: a powerful feature with a broad and indiscriminate area of effect. The combination of its power and implicit use may be expedient, but isn't without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the letter isn't. For example, if a derivation path is mentioned more than once, Nix itself doesn't care and simply makes sure the dependency derivation is already built just the same—depending is just needing something to exist, and needing is idempotent. However, a dependency specified twice will have its setup hook run twice, and that could easily change the build environment (though a well-written setup hook will therefore strive to be idempotent so this is in fact not observable). More broadly, setup hooks are anti-modular in that multiple dependencies, whether the same or different, should not interfere and yet their setup hooks may well do so.
-  </para>
-
-  <para>
-   The most typical use of the setup hook is actually to add other hooks which are then run (i.e. after all the setup hooks) on each dependency. For example, the C compiler wrapper's setup hook feeds itself flags for each dependency that contains relevant libraries and headers. This is done by defining a bash function, and appending its name to one of <envar>envBuildBuildHooks</envar>, <envar>envBuildHostHooks</envar>, <envar>envBuildTargetHooks</envar>, <envar>envHostHostHooks</envar>, <envar>envHostTargetHooks</envar>, or <envar>envTargetTargetHooks</envar>. These 6 bash variables correspond to the 6 sorts of dependencies by platform (there's 12 total but we ignore the propagated/non-propagated axis).
-  </para>
-
-  <para>
-   Packages adding a hook should not hard code a specific hook, but rather choose a variable <emphasis>relative</emphasis> to how they are included. Returning to the C compiler wrapper example, if the wrapper itself is an <literal>n</literal> dependency, then it only wants to accumulate flags from <literal>n + 1</literal> dependencies, as only those ones match the compiler's target platform. The <envar>hostOffset</envar> variable is defined with the current dependency's host offset <envar>targetOffset</envar> with its target offset, before its setup hook is sourced. Additionally, since most environment hooks don't care about the target platform, that means the setup hook can append to the right bash array by doing something like
-<programlisting language="bash">
-addEnvHooks "$hostOffset" myBashFunction
-</programlisting>
-  </para>
-
-  <para>
-   The <emphasis>existence</emphasis> of setups hooks has long been documented and packages inside Nixpkgs are free to use this mechanism. Other packages, however, should not rely on these mechanisms not changing between Nixpkgs versions. Because of the existing issues with this system, there's little benefit from mandating it be stable for any period of time.
-  </para>
-
-  <para>
-   First, let’s cover some setup hooks that are part of Nixpkgs default stdenv. This means that they are run for every package built using <function>stdenv.mkDerivation</function>. Some of these are platform specific, so they may run on Linux but not Darwin or vice-versa.
-   <variablelist>
-    <varlistentry>
-     <term>
-      <literal>move-docs.sh</literal>
-     </term>
-     <listitem>
-      <para>
-       This setup hook moves any installed documentation to the <literal>/share</literal> subdirectory directory. This includes the man, doc and info directories. This is needed for legacy programs that do not know how to use the <literal>share</literal> subdirectory.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <literal>compress-man-pages.sh</literal>
-     </term>
-     <listitem>
-      <para>
-       This setup hook compresses any man pages that have been installed. The compression is done using the gzip program. This helps to reduce the installed size of packages.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <literal>strip.sh</literal>
-     </term>
-     <listitem>
-      <para>
-       This runs the strip command on installed binaries and libraries. This removes unnecessary information like debug symbols when they are not needed. This also helps to reduce the installed size of packages.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <literal>patch-shebangs.sh</literal>
-     </term>
-     <listitem>
-      <para>
-       This setup hook patches installed scripts to use the full path to the shebang interpreter. A shebang interpreter is the first commented line of a script telling the operating system which program will run the script (e.g <literal>#!/bin/bash</literal>). In Nix, we want an exact path to that interpreter to be used. This often replaces <literal>/bin/sh</literal> with a path in the Nix store.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <literal>audit-tmpdir.sh</literal>
-     </term>
-     <listitem>
-      <para>
-       This verifies that no references are left from the install binaries to the directory used to build those binaries. This ensures that the binaries do not need things outside the Nix store. This is currently supported in Linux only.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <literal>multiple-outputs.sh</literal>
-     </term>
-     <listitem>
-      <para>
-       This setup hook adds configure flags that tell packages to install files into any one of the proper outputs listed in <literal>outputs</literal>. This behavior can be turned off by setting <literal>setOutputFlags</literal> to false in the derivation environment. See <xref linkend="chap-multiple-output"/> for more information.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <literal>move-sbin.sh</literal>
-     </term>
-     <listitem>
-      <para>
-       This setup hook moves any binaries installed in the sbin subdirectory into bin. In addition, a link is provided from sbin to bin for compatibility.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <literal>move-lib64.sh</literal>
-     </term>
-     <listitem>
-      <para>
-       This setup hook moves any libraries installed in the lib64 subdirectory into lib. In addition, a link is provided from lib64 to lib for compatibility.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <literal>move-systemd-user-units.sh</literal>
-     </term>
-     <listitem>
-      <para>
-       This setup hook moves any systemd user units installed in the lib
-       subdirectory into share. In addition, a link is provided from share to
-       lib for compatibility. This is needed for systemd to find user services
-       when installed into the user profile.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <literal>set-source-date-epoch-to-latest.sh</literal>
-     </term>
-     <listitem>
-      <para>
-       This sets <literal>SOURCE_DATE_EPOCH</literal> to the modification time of the most recent file.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      Bintools Wrapper
-     </term>
-     <listitem>
-      <para>
-       The Bintools Wrapper wraps the binary utilities for a bunch of miscellaneous purposes. These are GNU Binutils when targetting Linux, and a mix of cctools and GNU binutils for Darwin. [The "Bintools" name is supposed to be a compromise between "Binutils" and "cctools" not denoting any specific implementation.] Specifically, the underlying bintools package, and a C standard library (glibc or Darwin's libSystem, just for the dynamic loader) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by the Bintools Wrapper. Packages typically depend on CC Wrapper, which in turn (at run time) depends on the Bintools Wrapper.
-      </para>
-      <para>
-       The Bintools Wrapper was only just recently split off from CC Wrapper, so the division of labor is still being worked out. For example, it shouldn't care about the C standard library, but just take a derivation with the dynamic loader (which happens to be the glibc on linux). Dependency finding however is a task both wrappers will continue to need to share, and probably the most important to understand. It is currently accomplished by collecting directories of host-platform dependencies (i.e. <varname>buildInputs</varname> and <varname>nativeBuildInputs</varname>) in environment variables. The Bintools Wrapper's setup hook causes any <filename>lib</filename> and <filename>lib64</filename> subdirectories to be added to <envar>NIX_LDFLAGS</envar>. Since the CC Wrapper and the Bintools Wrapper use the same strategy, most of the Bintools Wrapper code is sparsely commented and refers to the CC Wrapper. But the CC Wrapper's code, by contrast, has quite lengthy comments. The Bintools Wrapper merely cites those, rather than repeating them, to avoid falling out of sync.
-      </para>
-      <para>
-       A final task of the setup hook is defining a number of standard environment variables to tell build systems which executables fulfill which purpose. They are defined to just be the base name of the tools, under the assumption that the Bintools Wrapper's binaries will be on the path. Firstly, this helps poorly-written packages, e.g. ones that look for just <command>gcc</command> when <envar>CC</envar> isn't defined yet <command>clang</command> is to be used. Secondly, this helps packages not get confused when cross-compiling, in which case multiple Bintools Wrappers may simultaneously be in use.
-       <footnote xml:id="footnote-stdenv-per-platform-wrapper">
-        <para>
-         Each wrapper targets a single platform, so if binaries for multiple platforms are needed, the underlying binaries must be wrapped multiple times. As this is a property of the wrapper itself, the multiple wrappings are needed whether or not the same underlying binaries can target multiple platforms.
-        </para>
-       </footnote>
-       <envar>BUILD_</envar>- and <envar>TARGET_</envar>-prefixed versions of the normal environment variable are defined for additional Bintools Wrappers, properly disambiguating them.
-      </para>
-      <para>
-       A problem with this final task is that the Bintools Wrapper is honest and defines <envar>LD</envar> as <command>ld</command>. Most packages, however, firstly use the C compiler for linking, secondly use <envar>LD</envar> anyways, defining it as the C compiler, and thirdly, only so define <envar>LD</envar> when it is undefined as a fallback. This triple-threat means Bintools Wrapper will break those packages, as LD is already defined as the actual linker which the package won't override yet doesn't want to use. The workaround is to define, just for the problematic package, <envar>LD</envar> as the C compiler. A good way to do this would be <command>preConfigure = "LD=$CC"</command>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      CC Wrapper
-     </term>
-     <listitem>
-      <para>
-       The CC Wrapper wraps a C toolchain for a bunch of miscellaneous purposes. Specifically, a C compiler (GCC or Clang), wrapped binary tools, and a C standard library (glibc or Darwin's libSystem, just for the dynamic loader) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by the CC Wrapper. Packages typically depend on the CC Wrapper, which in turn (at run-time) depends on the Bintools Wrapper.
-      </para>
-      <para>
-       Dependency finding is undoubtedly the main task of the CC Wrapper. This works just like the Bintools Wrapper, except that any <filename>include</filename> subdirectory of any relevant dependency is added to <envar>NIX_CFLAGS_COMPILE</envar>. The setup hook itself contains some lengthy comments describing the exact convoluted mechanism by which this is accomplished.
-      </para>
-      <para>
-       Similarly, the CC Wrapper follows the Bintools Wrapper in defining standard environment variables with the names of the tools it wraps, for the same reasons described above. Importantly, while it includes a <command>cc</command> symlink to the c compiler for portability, the <envar>CC</envar> will be defined using the compiler's "real name" (i.e. <command>gcc</command> or <command>clang</command>). This helps lousy build systems that inspect on the name of the compiler rather than run it.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </para>
-
-  <para>
-   Here are some more packages that provide a setup hook. Since the list of hooks is extensible, this is not an exhaustive list. The mechanism is only to be used as a last resort, so it might cover most uses.
-   <variablelist>
-    <varlistentry>
-     <term>
-      Perl
-     </term>
-     <listitem>
-      <para>
-       Adds the <filename>lib/site_perl</filename> subdirectory of each build input to the <envar>PERL5LIB</envar> environment variable. For instance, if <varname>buildInputs</varname> contains Perl, then the <filename>lib/site_perl</filename> subdirectory of each input is added to the <envar>PERL5LIB</envar> environment variable.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      Python
-     </term>
-     <listitem>
-      <para>
-       Adds the <filename>lib/${python.libPrefix}/site-packages</filename> subdirectory of each build input to the <envar>PYTHONPATH</envar> environment variable.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      pkg-config
-     </term>
-     <listitem>
-      <para>
-       Adds the <filename>lib/pkgconfig</filename> and <filename>share/pkgconfig</filename> subdirectories of each build input to the <envar>PKG_CONFIG_PATH</envar> environment variable.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      Automake
-     </term>
-     <listitem>
-      <para>
-       Adds the <filename>share/aclocal</filename> subdirectory of each build input to the <envar>ACLOCAL_PATH</envar> environment variable.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      Autoconf
-     </term>
-     <listitem>
-      <para>
-       The <varname>autoreconfHook</varname> derivation adds <varname>autoreconfPhase</varname>, which runs autoreconf, libtoolize and automake, essentially preparing the configure script in autotools-based builds. Most autotools-based packages come with the configure script pre-generated, but this hook is necessary for a few packages and when you need to patch the package’s configure scripts.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      libxml2
-     </term>
-     <listitem>
-      <para>
-       Adds every file named <filename>catalog.xml</filename> found under the <filename>xml/dtd</filename> and <filename>xml/xsl</filename> subdirectories of each build input to the <envar>XML_CATALOG_FILES</envar> environment variable.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      teTeX / TeX Live
-     </term>
-     <listitem>
-      <para>
-       Adds the <filename>share/texmf-nix</filename> subdirectory of each build input to the <envar>TEXINPUTS</envar> environment variable.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      Qt 4
-     </term>
-     <listitem>
-      <para>
-       Sets the <envar>QTDIR</envar> environment variable to Qt’s path.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      gdk-pixbuf
-     </term>
-     <listitem>
-      <para>
-       Exports <envar>GDK_PIXBUF_MODULE_FILE</envar> environment variable to the builder. Add librsvg package to <varname>buildInputs</varname> to get svg support. See also the <link linkend="ssec-gnome-hooks-gdk-pixbuf">setup hook description in GNOME platform docs</link>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      GHC
-     </term>
-     <listitem>
-      <para>
-       Creates a temporary package database and registers every Haskell build input in it (TODO: how?).
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      GNOME platform
-     </term>
-     <listitem>
-      <para>
-       Hooks related to GNOME platform and related libraries like GLib, GTK and GStreamer are described in <xref linkend="sec-language-gnome" />.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry xml:id="setup-hook-autopatchelfhook">
-     <term>
-      autoPatchelfHook
-     </term>
-     <listitem>
-      <para>
-       This is a special setup hook which helps in packaging proprietary software in that it automatically tries to find missing shared library dependencies of ELF files based on the given <varname>buildInputs</varname> and <varname>nativeBuildInputs</varname>.
-      </para>
-      <para>
-       You can also specify a <varname>runtimeDependencies</varname> variable which lists dependencies to be unconditionally added to <glossterm>rpath</glossterm> of all executables.
-       This is useful for programs that use <citerefentry>
-       <refentrytitle>dlopen</refentrytitle>
-       <manvolnum>3</manvolnum> </citerefentry> to load libraries at runtime.
-      </para>
-      <para>
-       In certain situations you may want to run the main command (<command>autoPatchelf</command>) of the setup hook on a file or a set of directories instead of unconditionally patching all outputs. This can be done by setting the <varname>dontAutoPatchelf</varname> environment variable to a non-empty value.
-      </para>
-      <para>
-       By default <command>autoPatchelf</command> will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the <envar>autoPatchelfIgnoreMissingDeps</envar> environment variable to a non-empty value.
-      </para>
-      <para>
-       The <command>autoPatchelf</command> command also recognizes a <parameter class="command">--no-recurse</parameter> command line flag, which prevents it from recursing into subdirectories.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      breakpointHook
-     </term>
-     <listitem>
-      <para>
-       This hook will make a build pause instead of stopping when a failure happens. It prevents nix from cleaning up the build environment immediately and allows the user to attach to a build environment using the <command>cntr</command> command. Upon build error it will print instructions on how to use <command>cntr</command>, which can be used to enter the environment for debugging. Installing cntr and running the command will provide shell access to the build sandbox of failed build. At <filename>/var/lib/cntr</filename> the sandboxed filesystem is mounted. All commands and files of the system are still accessible within the shell. To execute commands from the sandbox use the cntr exec subcommand. <command>cntr</command> is only supported on Linux-based platforms. To use it first add <literal>cntr</literal> to your <literal>environment.systemPackages</literal> on NixOS or alternatively to the root user on non-NixOS systems. Then in the package that is supposed to be inspected, add <literal>breakpointHook</literal> to <literal>nativeBuildInputs</literal>.
-<programlisting>
-nativeBuildInputs = [ breakpointHook ];
-</programlisting>
-       When a build failure happens there will be an instruction printed that shows how to attach with <literal>cntr</literal> to the build sandbox.
-      </para>
-      <note>
-       <title>Caution with remote builds</title>
-       <para>
-        This won't work with remote builds as the build environment is on a different machine and can't be accessed by <command>cntr</command>. Remote builds can be turned off by setting <literal>--option builders ''</literal> for <command>nix-build</command> or <literal>--builders ''</literal> for <command>nix build</command>.
-       </para>
-      </note>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      installShellFiles
-     </term>
-     <listitem>
-      <para>
-       This hook helps with installing manpages and shell completion files. It exposes 2 shell functions <literal>installManPage</literal> and <literal>installShellCompletion</literal> that can be used from your <literal>postInstall</literal> hook.
-      </para>
-      <para>
-       The <literal>installManPage</literal> function takes one or more paths to manpages to install. The manpages must have a section suffix, and may optionally be compressed (with <literal>.gz</literal> suffix). This function will place them into the correct directory.
-      </para>
-      <para>
-       The <literal>installShellCompletion</literal> function takes one or more paths to shell completion files. By default it will autodetect the shell type from the completion file extension, but you may also specify it by passing one of <literal>--bash</literal>, <literal>--fish</literal>, or <literal>--zsh</literal>. These flags apply to all paths listed after them (up until another shell flag is given). Each path may also have a custom installation name provided by providing a flag <literal>--name NAME</literal> before the path. If this flag is not provided, zsh completions will be renamed automatically such that <literal>foobar.zsh</literal> becomes <literal>_foobar</literal>. A root name may be provided for all paths using the flag <literal>--cmd NAME</literal>; this synthesizes the appropriate name depending on the shell (e.g. <literal>--cmd foo</literal> will synthesize the name <literal>foo.bash</literal> for bash and <literal>_foo</literal> for zsh). The path may also be a fifo or named fd (such as produced by <literal>&lt;(cmd)</literal>), in which case the shell and name must be provided.
-<programlisting>
-nativeBuildInputs = [ installShellFiles ];
-postInstall = ''
-  installManPage doc/foobar.1 doc/barfoo.3
-  # explicit behavior
-  installShellCompletion --bash --name foobar.bash share/completions.bash
-  installShellCompletion --fish --name foobar.fish share/completions.fish
-  installShellCompletion --zsh --name _foobar share/completions.zsh
-  # implicit behavior
-  installShellCompletion share/completions/foobar.{bash,fish,zsh}
-  # using named fd
-  installShellCompletion --cmd foobar \
-    --bash &lt;($out/bin/foobar --bash-completion) \
-    --fish &lt;($out/bin/foobar --fish-completion) \
-    --zsh &lt;($out/bin/foobar --zsh-completion)
-'';
-</programlisting>
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      libiconv, libintl
-     </term>
-     <listitem>
-      <para>
-       A few libraries automatically add to <literal>NIX_LDFLAGS</literal> their library, making their symbols automatically available to the linker. This includes libiconv and libintl (gettext). This is done to provide compatibility between GNU Linux, where libiconv and libintl are bundled in, and other systems where that might not be the case. Sometimes, this behavior is not desired. To disable this behavior, set <literal>dontAddExtraLibs</literal>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      validatePkgConfig
-     </term>
-     <listitem>
-      <para>
-       The <literal>validatePkgConfig</literal> hook validates all pkg-config (<filename>.pc</filename>) files in a package. This helps catching some common errors in pkg-config files, such as undefined variables.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      cmake
-     </term>
-     <listitem>
-      <para>
-       Overrides the default configure phase to run the CMake command. By default, we use the Make generator of CMake. In addition, dependencies are added automatically to CMAKE_PREFIX_PATH so that packages are correctly detected by CMake. Some additional flags are passed in to give similar behavior to configure-based packages. You can disable this hook’s behavior by setting configurePhase to a custom value, or by setting dontUseCmakeConfigure. cmakeFlags controls flags passed only to CMake. By default, parallel building is enabled as CMake supports parallel building almost everywhere. When Ninja is also in use, CMake will detect that and use the ninja generator.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      xcbuildHook
-     </term>
-     <listitem>
-      <para>
-       Overrides the build and install phases to run the “xcbuild” command. This hook is needed when a project only comes with build files for the XCode build system. You can disable this behavior by setting buildPhase and configurePhase to a custom value. xcbuildFlags controls flags passed only to xcbuild.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      Meson
-     </term>
-     <listitem>
-      <para>
-       Overrides the configure phase to run meson to generate Ninja files. To run these files, you should accompany Meson with ninja. By default, <varname>enableParallelBuilding</varname> is enabled as Meson supports parallel building almost everywhere.
-      </para>
-      <variablelist>
-       <title>Variables controlling Meson</title>
-       <varlistentry>
-        <term>
-         <varname>mesonFlags</varname>
-        </term>
-        <listitem>
-         <para>
-          Controls the flags passed to meson.
-         </para>
-        </listitem>
-       </varlistentry>
-       <varlistentry>
-        <term>
-         <varname>mesonBuildType</varname>
-        </term>
-        <listitem>
-         <para>
-          Which <link
-          xlink:href="https://mesonbuild.com/Builtin-options.html#core-options"><command>--buildtype</command></link> to pass to Meson. We default to <literal>plain</literal>.
-         </para>
-        </listitem>
-       </varlistentry>
-       <varlistentry>
-        <term>
-         <varname>mesonAutoFeatures</varname>
-        </term>
-        <listitem>
-         <para>
-          What value to set <link
-          xlink:href="https://mesonbuild.com/Builtin-options.html#core-options"><command>-Dauto_features=</command></link> to. We default to <command>enabled</command>.
-         </para>
-        </listitem>
-       </varlistentry>
-       <varlistentry>
-        <term>
-         <varname>mesonWrapMode</varname>
-        </term>
-        <listitem>
-         <para>
-          What value to set <link
-          xlink:href="https://mesonbuild.com/Builtin-options.html#core-options"><command>-Dwrap_mode=</command></link> to. We default to <command>nodownload</command> as we disallow network access.
-         </para>
-        </listitem>
-       </varlistentry>
-       <varlistentry>
-        <term>
-         <varname>dontUseMesonConfigure</varname>
-        </term>
-        <listitem>
-         <para>
-          Disables using Meson's <varname>configurePhase</varname>.
-         </para>
-        </listitem>
-       </varlistentry>
-      </variablelist>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      ninja
-     </term>
-     <listitem>
-      <para>
-       Overrides the build, install, and check phase to run ninja instead of make. You can disable this behavior with the dontUseNinjaBuild, dontUseNinjaInstall, and dontUseNinjaCheck, respectively. Parallel building is enabled by default in Ninja.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      unzip
-     </term>
-     <listitem>
-      <para>
-       This setup hook will allow you to unzip .zip files specified in $src. There are many similar packages like unrar, undmg, etc.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      wafHook
-     </term>
-     <listitem>
-      <para>
-       Overrides the configure, build, and install phases. This will run the "waf" script used by many projects. If wafPath (default ./waf) doesn’t exist, it will copy the version of waf available in Nixpkgs. wafFlags can be used to pass flags to the waf script.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      scons
-     </term>
-     <listitem>
-      <para>
-       Overrides the build, install, and check phases. This uses the scons build system as a replacement for make. scons does not provide a configure phase, so everything is managed at build and install time.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </para>
- </section>
- <section xml:id="sec-purity-in-nixpkgs">
-  <title>Purity in Nixpkgs</title>
-
-  <para>
-   [measures taken to prevent dependencies on packages outside the store, and what you can do to prevent them]
-  </para>
-
-  <para>
-   GCC doesn't search in locations such as <filename>/usr/include</filename>. In fact, attempts to add such directories through the <option>-I</option> flag are filtered out. Likewise, the linker (from GNU binutils) doesn't search in standard locations such as <filename>/usr/lib</filename>. Programs built on Linux are linked against a GNU C Library that likewise doesn't search in the default system locations.
-  </para>
- </section>
- <section xml:id="sec-hardening-in-nixpkgs">
-  <title>Hardening in Nixpkgs</title>
-
-  <para>
-   There are flags available to harden packages at compile or link-time. These can be toggled using the <varname>stdenv.mkDerivation</varname> parameters <varname>hardeningDisable</varname> and <varname>hardeningEnable</varname>.
-  </para>
-
-  <para>
-   Both parameters take a list of flags as strings. The special <varname>"all"</varname> flag can be passed to <varname>hardeningDisable</varname> to turn off all hardening. These flags can also be used as environment variables for testing or development purposes.
-  </para>
-
-  <para>
-   The following flags are enabled by default and might require disabling with <varname>hardeningDisable</varname> if the program to package is incompatible.
-  </para>
-
-  <variablelist>
-   <varlistentry>
-    <term>
-     <varname>format</varname>
-    </term>
-    <listitem>
-     <para>
-      Adds the <option>-Wformat -Wformat-security -Werror=format-security</option> compiler options. At present, this warns about calls to <varname>printf</varname> and <varname>scanf</varname> functions where the format string is not a string literal and there are no format arguments, as in <literal>printf(foo);</literal>. This may be a security hole if the format string came from untrusted input and contains <literal>%n</literal>.
-     </para>
-     <para>
-      This needs to be turned off or fixed for errors similar to:
-     </para>
-<programlisting>
-/tmp/nix-build-zynaddsubfx-2.5.2.drv-0/zynaddsubfx-2.5.2/src/UI/guimain.cpp:571:28: error: format not a string literal and no format arguments [-Werror=format-security]
-         printf(help_message);
-                            ^
-cc1plus: some warnings being treated as errors
-</programlisting>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>stackprotector</varname>
-    </term>
-    <listitem>
-     <para>
-      Adds the <option>-fstack-protector-strong --param ssp-buffer-size=4</option> compiler options. This adds safety checks against stack overwrites rendering many potential code injection attacks into aborting situations. In the best case this turns code injection vulnerabilities into denial of service or into non-issues (depending on the application).
-     </para>
-     <para>
-      This needs to be turned off or fixed for errors similar to:
-     </para>
-<programlisting>
-bin/blib.a(bios_console.o): In function `bios_handle_cup':
-/tmp/nix-build-ipxe-20141124-5cbdc41.drv-0/ipxe-5cbdc41/src/arch/i386/firmware/pcbios/bios_console.c:86: undefined reference to `__stack_chk_fail'
-</programlisting>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>fortify</varname>
-    </term>
-    <listitem>
-     <para>
-      Adds the <option>-O2 -D_FORTIFY_SOURCE=2</option> compiler options. During code generation the compiler knows a great deal of information about buffer sizes (where possible), and attempts to replace insecure unlimited length buffer function calls with length-limited ones. This is especially useful for old, crufty code. Additionally, format strings in writable memory that contain '%n' are blocked. If an application depends on such a format string, it will need to be worked around.
-     </para>
-     <para>
-      Additionally, some warnings are enabled which might trigger build failures if compiler warnings are treated as errors in the package build. In this case, set <option>NIX_CFLAGS_COMPILE</option> to <option>-Wno-error=warning-type</option>.
-     </para>
-     <para>
-      This needs to be turned off or fixed for errors similar to:
-     </para>
-<programlisting>
-malloc.c:404:15: error: return type is an incomplete type
-malloc.c:410:19: error: storage size of 'ms' isn't known
-</programlisting>
-<programlisting>
-strdup.h:22:1: error: expected identifier or '(' before '__extension__'
-</programlisting>
-<programlisting>
-strsep.c:65:23: error: register name not specified for 'delim'
-</programlisting>
-<programlisting>
-installwatch.c:3751:5: error: conflicting types for '__open_2'
-</programlisting>
-<programlisting>
-fcntl2.h:50:4: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT or O_TMPFILE in second argument needs 3 arguments
-</programlisting>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>pic</varname>
-    </term>
-    <listitem>
-     <para>
-      Adds the <option>-fPIC</option> compiler options. This options adds support for position independent code in shared libraries and thus making ASLR possible.
-     </para>
-     <para>
-      Most notably, the Linux kernel, kernel modules and other code not running in an operating system environment like boot loaders won't build with PIC enabled. The compiler will is most cases complain that PIC is not supported for a specific build.
-     </para>
-     <para>
-      This needs to be turned off or fixed for assembler errors similar to:
-     </para>
-<programlisting>
-ccbLfRgg.s: Assembler messages:
-ccbLfRgg.s:33: Error: missing or invalid displacement expression `private_key_len@GOTOFF'
-</programlisting>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>strictoverflow</varname>
-    </term>
-    <listitem>
-     <para>
-      Signed integer overflow is undefined behaviour according to the C standard. If it happens, it is an error in the program as it should check for overflow before it can happen, not afterwards. GCC provides built-in functions to perform arithmetic with overflow checking, which are correct and faster than any custom implementation. As a workaround, the option <option>-fno-strict-overflow</option> makes gcc behave as if signed integer overflows were defined.
-     </para>
-     <para>
-      This flag should not trigger any build or runtime errors.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>relro</varname>
-    </term>
-    <listitem>
-     <para>
-      Adds the <option>-z relro</option> linker option. During program load, several ELF memory sections need to be written to by the linker, but can be turned read-only before turning over control to the program. This prevents some GOT (and .dtors) overwrite attacks, but at least the part of the GOT used by the dynamic linker (.got.plt) is still vulnerable.
-     </para>
-     <para>
-      This flag can break dynamic shared object loading. For instance, the module systems of Xorg and OpenCV are incompatible with this flag. In almost all cases the <varname>bindnow</varname> flag must also be disabled and incompatible programs typically fail with similar errors at runtime.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <varname>bindnow</varname>
-    </term>
-    <listitem>
-     <para>
-      Adds the <option>-z bindnow</option> linker option. During program load, all dynamic symbols are resolved, allowing for the complete GOT to be marked read-only (due to <varname>relro</varname>). This prevents GOT overwrite attacks. For very large applications, this can incur some performance loss during initial load while symbols are resolved, but this shouldn't be an issue for daemons.
-     </para>
-     <para>
-      This flag can break dynamic shared object loading. For instance, the module systems of Xorg and PHP are incompatible with this flag. Programs incompatible with this flag often fail at runtime due to missing symbols, like:
-     </para>
-<programlisting>
-intel_drv.so: undefined symbol: vgaHWFreeHWRec
-</programlisting>
-    </listitem>
-   </varlistentry>
-  </variablelist>
-
-  <para>
-   The following flags are disabled by default and should be enabled with <varname>hardeningEnable</varname> for packages that take untrusted input like network services.
-  </para>
-
-  <variablelist>
-   <varlistentry>
-    <term>
-     <varname>pie</varname>
-    </term>
-    <listitem>
-     <para>
-      Adds the <option>-fPIE</option> compiler and <option>-pie</option> linker options. Position Independent Executables are needed to take advantage of Address Space Layout Randomization, supported by modern kernel versions. While ASLR can already be enforced for data areas in the stack and heap (brk and mmap), the code areas must be compiled as position-independent. Shared libraries already do this with the <varname>pic</varname> flag, so they gain ASLR automatically, but binary .text regions need to be build with <varname>pie</varname> to gain ASLR. When this happens, ROP attacks are much harder since there are no static locations to bounce off of during a memory corruption attack.
-     </para>
-    </listitem>
-   </varlistentry>
-  </variablelist>
-
-  <para>
-   For more in-depth information on these hardening flags and hardening in general, refer to the <link xlink:href="https://wiki.debian.org/Hardening">Debian Wiki</link>, <link xlink:href="https://wiki.ubuntu.com/Security/Features">Ubuntu Wiki</link>, <link xlink:href="https://wiki.gentoo.org/wiki/Project:Hardened">Gentoo Wiki</link>, and the <link xlink:href="https://wiki.archlinux.org/index.php/DeveloperWiki:Security"> Arch Wiki</link>.
-  </para>
- </section>
-</chapter>
diff --git a/nixpkgs/doc/using/configuration.xml b/nixpkgs/doc/using/configuration.xml
index 2cd2615f54ae..3ef39733458c 100644
--- a/nixpkgs/doc/using/configuration.xml
+++ b/nixpkgs/doc/using/configuration.xml
@@ -151,26 +151,26 @@
    </listitem>
    <listitem>
     <para>
-     It is also possible to whitelist and blacklist licenses that are specifically acceptable or not acceptable, using <literal>whitelistedLicenses</literal> and <literal>blacklistedLicenses</literal>, respectively.
+     It is also possible to allow and block licenses that are specifically acceptable or not acceptable, using <literal>allowlistedLicenses</literal> and <literal>blocklistedLicenses</literal>, respectively.
     </para>
     <para>
-     The following example configuration whitelists the licenses <literal>amd</literal> and <literal>wtfpl</literal>:
+     The following example configuration allowlists the licenses <literal>amd</literal> and <literal>wtfpl</literal>:
 <programlisting>
 {
-  whitelistedLicenses = with lib.licenses; [ amd wtfpl ];
+  allowlistedLicenses = with lib.licenses; [ amd wtfpl ];
 }
 </programlisting>
     </para>
     <para>
-     The following example configuration blacklists the <literal>gpl3Only</literal> and <literal>agpl3Only</literal> licenses:
+     The following example configuration blocklists the <literal>gpl3Only</literal> and <literal>agpl3Only</literal> licenses:
 <programlisting>
 {
-  blacklistedLicenses = with lib.licenses; [ agpl3Only gpl3Only ];
+  blocklistedLicenses = with lib.licenses; [ agpl3Only gpl3Only ];
 }
 </programlisting>
     </para>
     <para>
-      Note that <literal>whitelistedLicenses</literal> only applies to unfree licenses unless <literal>allowUnfree</literal> is enabled. It is not a generic whitelist for all types of licenses. <literal>blacklistedLicenses</literal> applies to all licenses.
+     Note that <literal>allowlistedLicenses</literal> only applies to unfree licenses unless <literal>allowUnfree</literal> is enabled. It is not a generic allowlist for all types of licenses. <literal>blocklistedLicenses</literal> applies to all licenses.
     </para>
    </listitem>
   </itemizedlist>
diff --git a/nixpkgs/doc/using/overlays.xml b/nixpkgs/doc/using/overlays.xml
index 8bda235d43d8..8f12aad2adad 100644
--- a/nixpkgs/doc/using/overlays.xml
+++ b/nixpkgs/doc/using/overlays.xml
@@ -28,8 +28,7 @@
    </para>
 
    <para>
-    NOTE: DO NOT USE THIS in nixpkgs.
-    Further overlays can be added by calling the <literal>pkgs.extend</literal> or <literal>pkgs.appendOverlays</literal>, although it is often preferable to avoid these functions, because they recompute the Nixpkgs fixpoint, which is somewhat expensive to do.
+    NOTE: DO NOT USE THIS in nixpkgs. Further overlays can be added by calling the <literal>pkgs.extend</literal> or <literal>pkgs.appendOverlays</literal>, although it is often preferable to avoid these functions, because they recompute the Nixpkgs fixpoint, which is somewhat expensive to do.
    </para>
   </section>
 
@@ -139,98 +138,72 @@ self: super:
   </para>
  </section>
  <section xml:id="sec-overlays-alternatives">
-   <title>Using overlays to configure alternatives</title>
+  <title>Using overlays to configure alternatives</title>
+
+  <para>
+   Certain software packages have different implementations of the same interface. Other distributions have functionality to switch between these. For example, Debian provides <link
+     xlink:href="https://wiki.debian.org/DebianAlternatives">DebianAlternatives</link>. Nixpkgs has what we call <literal>alternatives</literal>, which are configured through overlays.
+  </para>
+
+  <section xml:id="sec-overlays-alternatives-blas-lapack">
+   <title>BLAS/LAPACK</title>
+
    <para>
-     Certain software packages have different implementations of the
-     same interface. Other distributions have functionality to switch
-     between these. For example, Debian provides <link
-     xlink:href="https://wiki.debian.org/DebianAlternatives">DebianAlternatives</link>.
-     Nixpkgs has what we call <literal>alternatives</literal>, which
-     are configured through overlays.
+    In Nixpkgs, we have multiple implementations of the BLAS/LAPACK numerical linear algebra interfaces. They are:
    </para>
-   <section xml:id="sec-overlays-alternatives-blas-lapack">
-     <title>BLAS/LAPACK</title>
+
+   <itemizedlist>
+    <listitem>
      <para>
-       In Nixpkgs, we have multiple implementations of the BLAS/LAPACK
-       numerical linear algebra interfaces. They are:
+      <link xlink:href="https://www.openblas.net/">OpenBLAS</link>
      </para>
-     <itemizedlist>
-       <listitem>
-         <para>
-           <link xlink:href="https://www.openblas.net/">OpenBLAS</link>
-         </para>
-         <para>
-           The Nixpkgs attribute is <literal>openblas</literal> for
-           ILP64 (integer width = 64 bits) and
-           <literal>openblasCompat</literal> for LP64 (integer width =
-           32 bits). <literal>openblasCompat</literal> is the default.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           <link xlink:href="http://www.netlib.org/lapack/">LAPACK
-           reference</link> (also provides BLAS)
-         </para>
-         <para>
-           The Nixpkgs attribute is <literal>lapack-reference</literal>.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           <link
-           xlink:href="https://software.intel.com/en-us/mkl">Intel
-           MKL</link> (only works on the x86_64 architecture, unfree)
-         </para>
-         <para>
-           The Nixpkgs attribute is <literal>mkl</literal>.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           <link
+     <para>
+      The Nixpkgs attribute is <literal>openblas</literal> for ILP64 (integer width = 64 bits) and <literal>openblasCompat</literal> for LP64 (integer width = 32 bits). <literal>openblasCompat</literal> is the default.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      <link xlink:href="http://www.netlib.org/lapack/">LAPACK reference</link> (also provides BLAS)
+     </para>
+     <para>
+      The Nixpkgs attribute is <literal>lapack-reference</literal>.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      <link
+           xlink:href="https://software.intel.com/en-us/mkl">Intel MKL</link> (only works on the x86_64 architecture, unfree)
+     </para>
+     <para>
+      The Nixpkgs attribute is <literal>mkl</literal>.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      <link
            xlink:href="https://github.com/flame/blis">BLIS</link>
-         </para>
-         <para>
-          BLIS, available through the attribute
-          <literal>blis</literal>, is a framework for linear algebra kernels. In
-          addition, it implements the BLAS interface.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-          <link
-           xlink:href="https://developer.amd.com/amd-aocl/blas-library/">AMD
-          BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
-         </para>
-         <para>
-          The AMD fork of the BLIS library, with attribute
-          <literal>amd-blis</literal>, extends BLIS with optimizations for
-          modern AMD CPUs. The changes are usually submitted to
-          the upstream BLIS project after some time. However, AMD BLIS
-          typically provides some performance improvements on AMD Zen CPUs.
-          The complementary AMD LIBFLAME library, with attribute
-          <literal>amd-libflame</literal>, provides a LAPACK implementation.
-         </para>
-       </listitem>
-     </itemizedlist>
+     </para>
      <para>
-       Introduced in <link
-       xlink:href="https://github.com/NixOS/nixpkgs/pull/83888">PR
-       #83888</link>, we are able to override the <literal>blas</literal>
-       and <literal>lapack</literal> packages to use different implementations,
-       through the <literal>blasProvider</literal> and
-       <literal>lapackProvider</literal> argument. This can be used
-       to select a different provider. BLAS providers will have
-       symlinks in <literal>$out/lib/libblas.so.3</literal> and
-       <literal>$out/lib/libcblas.so.3</literal> to their respective
-       BLAS libraries. Likewise, LAPACK providers will have symlinks
-       in <literal>$out/lib/liblapack.so.3</literal> and
-       <literal>$out/lib/liblapacke.so.3</literal> to their respective
-       LAPACK libraries. For example, Intel MKL is both a BLAS and
-       LAPACK provider. An overlay can be created to use Intel MKL
-       that looks like:
+      BLIS, available through the attribute <literal>blis</literal>, is a framework for linear algebra kernels. In addition, it implements the BLAS interface.
      </para>
-     <programlisting>
+    </listitem>
+    <listitem>
+     <para>
+      <link
+           xlink:href="https://developer.amd.com/amd-aocl/blas-library/">AMD BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
+     </para>
+     <para>
+      The AMD fork of the BLIS library, with attribute <literal>amd-blis</literal>, extends BLIS with optimizations for modern AMD CPUs. The changes are usually submitted to the upstream BLIS project after some time. However, AMD BLIS typically provides some performance improvements on AMD Zen CPUs. The complementary AMD LIBFLAME library, with attribute <literal>amd-libflame</literal>, provides a LAPACK implementation.
+     </para>
+    </listitem>
+   </itemizedlist>
+
+   <para>
+    Introduced in <link
+       xlink:href="https://github.com/NixOS/nixpkgs/pull/83888">PR #83888</link>, we are able to override the <literal>blas</literal> and <literal>lapack</literal> packages to use different implementations, through the <literal>blasProvider</literal> and <literal>lapackProvider</literal> argument. This can be used to select a different provider. BLAS providers will have symlinks in <literal>$out/lib/libblas.so.3</literal> and <literal>$out/lib/libcblas.so.3</literal> to their respective BLAS libraries. Likewise, LAPACK providers will have symlinks in <literal>$out/lib/liblapack.so.3</literal> and <literal>$out/lib/liblapacke.so.3</literal> to their respective LAPACK libraries. For example, Intel MKL is both a BLAS and LAPACK provider. An overlay can be created to use Intel MKL that looks like:
+   </para>
+
+<programlisting>
 self: super:
 
 {
@@ -243,46 +216,24 @@ self: super:
   };
 }
 </programlisting>
-     <para>
-       This overlay uses Intel’s MKL library for both BLAS and LAPACK
-       interfaces. Note that the same can be accomplished at runtime
-       using <literal>LD_LIBRARY_PATH</literal> of
-       <literal>libblas.so.3</literal> and
-       <literal>liblapack.so.3</literal>. For instance:
-     </para>
+
+   <para>
+    This overlay uses Intel’s MKL library for both BLAS and LAPACK interfaces. Note that the same can be accomplished at runtime using <literal>LD_LIBRARY_PATH</literal> of <literal>libblas.so.3</literal> and <literal>liblapack.so.3</literal>. For instance:
+   </para>
+
 <screen>
 <prompt>$ </prompt>LD_LIBRARY_PATH=$(nix-build -A mkl)/lib:$LD_LIBRARY_PATH nix-shell -p octave --run octave
 </screen>
-     <para>
-       Intel MKL requires an <literal>openmp</literal> implementation
-       when running with multiple processors. By default,
-       <literal>mkl</literal> will use Intel’s <literal>iomp</literal>
-       implementation if no other is specified, but this is a
-       runtime-only dependency and binary compatible with the LLVM
-       implementation. To use that one instead, Intel recommends users
-       set it with <literal>LD_PRELOAD</literal>. Note that
-       <literal>mkl</literal> is only available on
-       <literal>x86_64-linux</literal> and
-       <literal>x86_64-darwin</literal>. Moreover, Hydra is not
-       building and distributing pre-compiled binaries using it.
-     </para>
-     <para>
-       For BLAS/LAPACK switching to work correctly, all packages must
-       depend on <literal>blas</literal> or <literal>lapack</literal>.
-       This ensures that only one BLAS/LAPACK library is used at one
-       time. There are two versions versions of BLAS/LAPACK currently
-       in the wild, <literal>LP64</literal> (integer size = 32 bits)
-       and <literal>ILP64</literal> (integer size = 64 bits). Some
-       software needs special flags or patches to work with
-       <literal>ILP64</literal>. You can check if
-       <literal>ILP64</literal> is used in Nixpkgs with
-       <varname>blas.isILP64</varname> and
-       <varname>lapack.isILP64</varname>. Some software does NOT work
-       with <literal>ILP64</literal>, and derivations need to specify
-       an assertion to prevent this. You can prevent
-       <literal>ILP64</literal> from being used with the following:
-     </para>
-     <programlisting>
+
+   <para>
+    Intel MKL requires an <literal>openmp</literal> implementation when running with multiple processors. By default, <literal>mkl</literal> will use Intel’s <literal>iomp</literal> implementation if no other is specified, but this is a runtime-only dependency and binary compatible with the LLVM implementation. To use that one instead, Intel recommends users set it with <literal>LD_PRELOAD</literal>. Note that <literal>mkl</literal> is only available on <literal>x86_64-linux</literal> and <literal>x86_64-darwin</literal>. Moreover, Hydra is not building and distributing pre-compiled binaries using it.
+   </para>
+
+   <para>
+    For BLAS/LAPACK switching to work correctly, all packages must depend on <literal>blas</literal> or <literal>lapack</literal>. This ensures that only one BLAS/LAPACK library is used at one time. There are two versions of BLAS/LAPACK currently in the wild, <literal>LP64</literal> (integer size = 32 bits) and <literal>ILP64</literal> (integer size = 64 bits). Some software needs special flags or patches to work with <literal>ILP64</literal>. You can check if <literal>ILP64</literal> is used in Nixpkgs with <varname>blas.isILP64</varname> and <varname>lapack.isILP64</varname>. Some software does NOT work with <literal>ILP64</literal>, and derivations need to specify an assertion to prevent this. You can prevent <literal>ILP64</literal> from being used with the following:
+   </para>
+
+<programlisting>
 { stdenv, blas, lapack, ... }:
 
 assert (!blas.isILP64) &amp;&amp; (!lapack.isILP64);
@@ -291,41 +242,38 @@ stdenv.mkDerivation {
   ...
 }
 </programlisting>
-   </section>
-   <section xml:id="sec-overlays-alternatives-mpi">
-     <title>Switching the MPI implementation</title>
-     <para>
-       All programs that are built with
-       <link xlink:href="https://en.wikipedia.org/wiki/Message_Passing_Interface">MPI</link>
-       support use the generic attribute <varname>mpi</varname>
-       as an input. At the moment Nixpkgs natively provides two different
-       MPI implementations:
-       <itemizedlist>
-         <listitem>
-           <para>
-             <link xlink:href="https://www.open-mpi.org/">Open MPI</link>
-             (default), attribute name <varname>openmpi</varname>
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             <link xlink:href="https://www.mpich.org/">MPICH</link>,
-             attribute name <varname>mpich</varname>
-           </para>
-         </listitem>
-       </itemizedlist>
-     </para>
-     <para>
-       To provide MPI enabled applications that use <literal>MPICH</literal>, instead
-       of the default <literal>Open MPI</literal>, simply use the following overlay:
-     </para>
-     <programlisting>
+  </section>
+
+  <section xml:id="sec-overlays-alternatives-mpi">
+   <title>Switching the MPI implementation</title>
+
+   <para>
+    All programs that are built with <link xlink:href="https://en.wikipedia.org/wiki/Message_Passing_Interface">MPI</link> support use the generic attribute <varname>mpi</varname> as an input. At the moment Nixpkgs natively provides two different MPI implementations:
+    <itemizedlist>
+     <listitem>
+      <para>
+       <link xlink:href="https://www.open-mpi.org/">Open MPI</link> (default), attribute name <varname>openmpi</varname>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <link xlink:href="https://www.mpich.org/">MPICH</link>, attribute name <varname>mpich</varname>
+      </para>
+     </listitem>
+    </itemizedlist>
+   </para>
+
+   <para>
+    To provide MPI enabled applications that use <literal>MPICH</literal>, instead of the default <literal>Open MPI</literal>, simply use the following overlay:
+   </para>
+
+<programlisting>
 self: super:
 
 {
   mpi = self.mpich;
 }
      </programlisting>
-   </section>
+  </section>
  </section>
 </chapter>
diff --git a/nixpkgs/lib/generators.nix b/nixpkgs/lib/generators.nix
index 501a23599f45..c8144db50ac8 100644
--- a/nixpkgs/lib/generators.nix
+++ b/nixpkgs/lib/generators.nix
@@ -307,4 +307,28 @@ rec {
 ${expr "" v}
 </plist>'';
 
+  /* Translate a simple Nix expression to Dhall notation.
+   * Note that integers are translated to Integer and never
+   * the Natural type.
+  */
+  toDhall = { }@args: v:
+    with builtins;
+    let concatItems = lib.strings.concatStringsSep ", ";
+    in if isAttrs v then
+      "{ ${
+        concatItems (lib.attrsets.mapAttrsToList
+          (key: value: "${key} = ${toDhall args value}") v)
+      } }"
+    else if isList v then
+      "[ ${concatItems (map (toDhall args) v)} ]"
+    else if isInt v then
+      "${if v < 0 then "" else "+"}${toString v}"
+    else if isBool v then
+      (if v then "True" else "False")
+    else if isFunction v then
+      abort "generators.toDhall: cannot convert a function to Dhall"
+    else if isNull v then
+      abort "generators.toDhall: cannot convert a null to Dhall"
+    else
+      builtins.toJSON v;
 }
diff --git a/nixpkgs/lib/licenses.nix b/nixpkgs/lib/licenses.nix
index ee136c7337c1..46ac0443a03f 100644
--- a/nixpkgs/lib/licenses.nix
+++ b/nixpkgs/lib/licenses.nix
@@ -7,7 +7,7 @@ let
 
 in
 
-lib.mapAttrs (n: v: v // { shortName = n; }) {
+lib.mapAttrs (n: v: v // { shortName = n; }) ({
   /* License identifiers from spdx.org where possible.
    * If you cannot find your license here, then look for a similar license or
    * add it to this list. The URL mentioned above is a good source for inspiration.
@@ -603,6 +603,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     free = false;
   };
 
+  odbl = spdx {
+    spdxId = "ODbL-1.0";
+    fullName = "Open Data Commons Open Database License v1.0";
+  };
+
   ofl = spdx {
     spdxId = "OFL-1.1";
     fullName = "SIL Open Font License 1.1";
@@ -877,4 +882,4 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU Lesser General Public License v3.0";
     deprecated = true;
   };
-}
+})
diff --git a/nixpkgs/lib/modules.nix b/nixpkgs/lib/modules.nix
index 33a0d84a6d7f..d3f10944e708 100644
--- a/nixpkgs/lib/modules.nix
+++ b/nixpkgs/lib/modules.nix
@@ -361,6 +361,17 @@ rec {
       */
       byName = attr: f: modules:
         foldl' (acc: module:
+              if !(builtins.isAttrs module.${attr}) then
+                throw ''
+                  You're trying to declare a value of type `${builtins.typeOf module.${attr}}'
+                  rather than an attribute-set for the option
+                  `${builtins.concatStringsSep "." prefix}'!
+
+                  This usually happens if `${builtins.concatStringsSep "." prefix}' has option
+                  definitions inside that are not matched. Please check how to properly define
+                  this option by e.g. referring to `man 5 configuration.nix'!
+                ''
+              else
                 acc // (mapAttrs (n: v:
                                    (acc.${n} or []) ++ f module v
                                  ) module.${attr}
diff --git a/nixpkgs/lib/sources.nix b/nixpkgs/lib/sources.nix
index 1a3afcae67da..1a821f55056b 100644
--- a/nixpkgs/lib/sources.nix
+++ b/nixpkgs/lib/sources.nix
@@ -138,12 +138,13 @@ rec {
              in if m == null
                 then throw ("File contains no gitdir reference: " + path)
                 else
-                  let gitDir     = absolutePath (dirOf path) (lib.head m);
-                      commonDir' = if pathIsRegularFile "${gitDir}/commondir"
-                                   then lib.fileContents "${gitDir}/commondir"
-                                   else gitDir;
-                      commonDir  = absolutePath gitDir commonDir';
-                      refFile    = lib.removePrefix "${commonDir}/" "${gitDir}/${file}";
+                  let gitDir      = absolutePath (dirOf path) (lib.head m);
+                      commonDir'' = if pathIsRegularFile "${gitDir}/commondir"
+                                    then lib.fileContents "${gitDir}/commondir"
+                                    else gitDir;
+                      commonDir'  = lib.removeSuffix "/" commonDir'';
+                      commonDir   = absolutePath gitDir commonDir';
+                      refFile     = lib.removePrefix "${commonDir}/" "${gitDir}/${file}";
                   in readCommitFromFile refFile commonDir
 
            else if pathIsRegularFile fileName
diff --git a/nixpkgs/lib/systems/default.nix b/nixpkgs/lib/systems/default.nix
index 1bbe976c4d21..1e38dbf531b1 100644
--- a/nixpkgs/lib/systems/default.nix
+++ b/nixpkgs/lib/systems/default.nix
@@ -107,6 +107,11 @@ rec {
           powerpc64le = "ppc64le";
         }.${final.parsed.cpu.name} or final.parsed.cpu.name;
 
+      darwinArch = {
+        armv7a  = "armv7";
+        aarch64 = "arm64";
+      }.${final.parsed.cpu.name} or final.parsed.cpu.name;
+
       emulator = pkgs: let
         qemu-user = pkgs.qemu.override {
           smartcardSupport = false;
diff --git a/nixpkgs/lib/systems/platforms.nix b/nixpkgs/lib/systems/platforms.nix
index 3bf90cd0cafb..f46e9c826a5c 100644
--- a/nixpkgs/lib/systems/platforms.nix
+++ b/nixpkgs/lib/systems/platforms.nix
@@ -303,14 +303,12 @@ rec {
       preferBuiltin = true;
       target = "zImage";
       extraConfig = ''
-        # Serial port for Raspberry Pi 3. Upstream forgot to add it to the ARMv7 defconfig.
+        # Serial port for Raspberry Pi 3. Wasn't included in ARMv7 defconfig
+        # until 4.17.
         SERIAL_8250_BCM2835AUX y
         SERIAL_8250_EXTENDED y
         SERIAL_8250_SHARE_IRQ y
 
-        # Fix broken sunxi-sid nvmem driver.
-        TI_CPTS y
-
         # Hangs ODROID-XU4
         ARM_BIG_LITTLE_CPUIDLE n
 
diff --git a/nixpkgs/lib/tests/modules.sh b/nixpkgs/lib/tests/modules.sh
index f843d303e440..2eddeec07b1a 100755
--- a/nixpkgs/lib/tests/modules.sh
+++ b/nixpkgs/lib/tests/modules.sh
@@ -169,7 +169,7 @@ checkConfigOutput "foo" config.submodule.foo ./declare-submoduleWith-special.nix
 ## shorthandOnlyDefines config behaves as expected
 checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix
 checkConfigError 'is not of type `boolean' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-noshorthand.nix
-checkConfigError 'value is a boolean while a set was expected' config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
+checkConfigError "You're trying to declare a value of type \`bool'\nrather than an attribute-set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
 checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix
 
 ## submoduleWith should merge all modules in one swoop
diff --git a/nixpkgs/lib/trivial.nix b/nixpkgs/lib/trivial.nix
index 268f39d32103..be6d0115f5b8 100644
--- a/nixpkgs/lib/trivial.nix
+++ b/nixpkgs/lib/trivial.nix
@@ -158,7 +158,7 @@ rec {
     seq deepSeq genericClosure;
 
 
-  ## nixpks version strings
+  ## nixpkgs version strings
 
   /* Returns the current full nixpkgs version number. */
   version = release + versionSuffix;
diff --git a/nixpkgs/maintainers/maintainer-list.nix b/nixpkgs/maintainers/maintainer-list.nix
index f46e36c9899e..e4264fbd3088 100644
--- a/nixpkgs/maintainers/maintainer-list.nix
+++ b/nixpkgs/maintainers/maintainer-list.nix
@@ -82,6 +82,12 @@
     githubId = 882455;
     name = "Elliot Cameron";
   };
+  _414owen = {
+    email = "owen@owen.cafe";
+    github = "414owen";
+    githubId = 1714287;
+    name = "Owen Shepherd";
+  };
   _6AA4FD = {
     email = "f6442954@gmail.com";
     github = "6AA4FD";
@@ -188,6 +194,12 @@
     githubId = 124545;
     name = "Anthony Cowley";
   };
+  adamlwgriffiths = {
+    email = "adam.lw.griffiths@gmail.com";
+    github = "adamlwgriffiths";
+    githubId = 1239156;
+    name = "Adam Griffiths";
+  };
   adamt = {
     email = "mail@adamtulinius.dk";
     github = "adamtulinius";
@@ -267,7 +279,7 @@
     name = "James Alexander Feldman-Crough";
   };
   aforemny = {
-    email = "alexanderforemny@googlemail.com";
+    email = "aforemny@posteo.de";
     github = "aforemny";
     githubId = 610962;
     name = "Alexander Foremny";
@@ -686,6 +698,16 @@
     githubId = 1078530;
     name = "Alexandre Peyroux";
   };
+  applePrincess = {
+    email = "appleprincess@appleprincess.io";
+    github = "applePrincess";
+    githubId = 17154507;
+    name = "Lein Matsumaru";
+    keys = [{
+      longkeyid = "rsa4096/0xAAA50652F0479205";
+      fingerprint = "BF8B F725 DA30 E53E 7F11  4ED8 AAA5 0652 F047 9205";
+   }];
+  };
   ar1a = {
     email = "aria@ar1as.space";
     github = "ar1a";
@@ -734,6 +756,12 @@
     githubId = 1296771;
     name = "Anders Riutta";
   };
+  armijnhemel = {
+    email = "armijn@tjaldur.nl";
+    github = "armijnhemel";
+    githubId = 10587952;
+    name = "Armijn Hemel";
+  };
   arnarg = {
     email = "arnarg@fastmail.com";
     github = "arnarg";
@@ -768,6 +796,12 @@
     githubId = 3965744;
     name = "Arthur Lee";
   };
+  arthurteisseire = {
+    email = "arthurteisseire33@gmail.com";
+    github = "arthurteisseire";
+    githubId = 37193992;
+    name = "Arthur Teisseire";
+  };
   arturcygan = {
     email = "arczicygan@gmail.com";
     github = "arcz";
@@ -960,6 +994,16 @@
     githubId = 12128029;
     name = "babariviere";
   };
+  babbaj = {
+    name = "babbaj";
+    email = "babbaj45@gmail.com";
+    github = "babbaj";
+    githubId = 12820770;
+    keys = [{
+      longkeyid = "rsa4096/0xF044309848A07CAC";
+      fingerprint = "6FBC A462 4EAF C69C A7C4  98C1 F044 3098 48A0 7CAC";
+    }];
+  };
   bachp = {
     email = "pascal.bach@nextrem.ch";
     github = "bachp";
@@ -1012,6 +1056,16 @@
     githubId = 75235;
     name = "Michael Walker";
   };
+  bartuka = {
+    email = "wand@hey.com";
+    github = "wandersoncferreira";
+    githubId = 17708295;
+    name = "Wanderson Ferreira";
+    keys = [{
+      longkeyid = "rsa4096/0x56840A614DBE37AE";
+      fingerprint = "A3E1 C409 B705 50B3 BF41  492B 5684 0A61 4DBE 37AE";
+    }];
+  };
   basvandijk = {
     email = "v.dijk.bas@gmail.com";
     github = "basvandijk";
@@ -1072,6 +1126,12 @@
     githubId = 14111;
     name = "Brandon Dimcheff";
   };
+  beardhatcode = {
+    name = "Robbert Gurdeep Singh";
+    email = "nixpkgs@beardhatcode.be";
+    github = "beardhatcode";
+    githubId = 662538;
+  };
   bendlas = {
     email = "herwig@bendlas.net";
     github = "bendlas";
@@ -1084,6 +1144,12 @@
     githubId = 1432730;
     name = "Benjamin Staffin";
   };
+  benneti = {
+    name = "Benedikt Tissot";
+    email = "benedikt.tissot@googlemail.com";
+    github = "benneti";
+    githubId = 11725645;
+  };
   bennofs = {
     email = "benno.fuenfstueck@gmail.com";
     github = "bennofs";
@@ -1244,6 +1310,12 @@
     githubId = 50839;
     name = "Brian Jones";
   };
+  bootstrap-prime = {
+    email = "bootstrap.prime@gmail.com";
+    github = "bootstrap-prime";
+    githubId = 68566724;
+    name = "bootstrap-prime";
+  };
   commandodev = {
     email = "ben@perurbis.com";
     github = "commandodev";
@@ -1591,12 +1663,6 @@
     githubId = 89596;
     name = "Florian Friesdorf";
   };
-  charvp = {
-    email = "nixpkgs@cvpetegem.be";
-    github = "charvp";
-    githubId = 42220376;
-    name = "Charlotte Van Petegem";
-  };
   chattered = {
     email = "me@philscotted.com";
     name = "Phil Scott";
@@ -1705,6 +1771,18 @@
     githubId = 2245737;
     name = "Christopher Mark Poole";
   };
+  chuahou = {
+    email = "human+github@chuahou.dev";
+    github = "chuahou";
+    githubId = 12386805;
+    name = "Chua Hou";
+  };
+  chvp = {
+    email = "nixpkgs@cvpetegem.be";
+    github = "chvp";
+    githubId = 42220376;
+    name = "Charlotte Van Petegem";
+  };
   ciil = {
     email = "simon@lackerbauer.com";
     github = "ciil";
@@ -1829,6 +1907,12 @@
       fingerprint = "68B8 0D57 B2E5 4AC3 EC1F  49B0 B37E 0F23 7101 6A4C";
     }];
   };
+  collares = {
+    email = "mauricio@collares.org";
+    github = "collares";
+    githubId = 244239;
+    name = "Mauricio Collares";
+  };
   copumpkin = {
     email = "pumpkingod@gmail.com";
     github = "copumpkin";
@@ -2097,6 +2181,12 @@
     email = "christoph.senjak@googlemail.com";
     name = "Christoph-Simon Senjak";
   };
+  davhau = {
+    email = "d.hauer.it@gmail.com";
+    name = "David Hauer";
+    github = "DavHau";
+    githubId = 42246742;
+  };
   david-sawatzke = {
     email = "d-nix@sawatzke.dev";
     github = "david-sawatzke";
@@ -2291,6 +2381,12 @@
     githubId = 15774340;
     name = "Thomas Depierre";
   };
+  diegolelis = {
+    email = "diego.o.lelis@gmail.com";
+    github = "diegolelis";
+    githubId = 8404455;
+    name = "Diego Lelis";
+  };
   dipinhora = {
     email = "dipinhora+github@gmail.com";
     github = "dipinhora";
@@ -2333,6 +2429,12 @@
     githubId = 10913120;
     name = "Dje4321";
   };
+  djwf = {
+    email = "dave@weller-fahy.com";
+    github = "djwf";
+    githubId = 73162;
+    name = "David J. Weller-Fahy";
+  };
   dkabot = {
     email = "dkabot@dkabot.com";
     github = "dkabot";
@@ -2399,6 +2501,16 @@
     githubId = 6806011;
     name = "Robert Schütz";
   };
+  dottedmag = {
+    email = "dottedmag@dottedmag.net";
+    github = "dottedmag";
+    githubId = 16120;
+    name = "Misha Gusarov";
+    keys = [{
+      longkeyid = "rsa4096/0x9D20F6503E338888";
+      fingerprint = "A8DF 1326 9E5D 9A38 E57C  FAC2 9D20 F650 3E33 8888";
+    }];
+  };
   doublec = {
     email = "chris.double@double.co.nz";
     github = "doublec";
@@ -2679,6 +2791,12 @@
     githubId = 1753498;
     name = "Dejan Lukan";
   };
+  electrified = {
+    email = "ed@maidavale.org";
+    github = "electrified";
+    githubId = 103082;
+    name = "Ed Brindley";
+  };
   elliottvillars = {
     email = "elliottvillars@gmail.com";
     github = "elliottvillars";
@@ -2843,6 +2961,12 @@
     githubId = 3787281;
     name = "Erik Rybakken";
   };
+  erin = {
+    name = "Erin van der Veen";
+    email = "erin@erinvanderveen.nl";
+    github = "ErinvanderVeen";
+    githubId = 10973664;
+  };
   erosennin = {
     email = "ag@sologoc.com";
     github = "erosennin";
@@ -2878,7 +3002,7 @@
     name = "Adam Copp";
   };
   ethancedwards8 = {
-    email = "ethancarteredwards@gmail.com";
+    email = "ethan@ethancedwards.com";
     github = "ethancedwards8";
     githubId = 60861925;
     name = "Ethan Carter Edwards";
@@ -3043,6 +3167,12 @@
     githubId = 1276854;
     name = "Florian Peter";
   };
+  fbrs = {
+    email = "yuuki@protonmail.com";
+    github = "cideM";
+    githubId = 4246921;
+    name = "Florian Beeres";
+  };
   fdns = {
     email = "fdns02@gmail.com";
     github = "fdns";
@@ -3055,6 +3185,12 @@
     githubId = 9959940;
     name = "Andreas Fehn";
   };
+  felixscheinost = {
+    name = "Felix Scheinost";
+    email = "felix.scheinost@posteo.de";
+    github = "felixscheinost";
+    githubId = 31761492;
+  };
   felixsinger = {
     email = "felixsinger@posteo.net";
     github = "felixsinger";
@@ -3123,6 +3259,12 @@
     githubId = 19961516;
     name = "Felix Weilbach";
   };
+  fliegendewurst = {
+    email = "arne.keller@posteo.de";
+    github = "FliegendeWurst";
+    githubId = 12560461;
+    name = "Arne Keller";
+  };
   flokli = {
     email = "flokli@flokli.de";
     github = "flokli";
@@ -3279,6 +3421,12 @@
     githubId = 10528737;
     name = "Severin Fürbringer";
   };
+  fufexan = {
+    email = "fufexan@protonmail.com";
+    github = "fufexan";
+    githubId = 36706276;
+    name = "Fufezan Mihai";
+  };
   funfunctor = {
     email = "eocallaghan@alterapraxis.com";
     name = "Edward O'Callaghan";
@@ -3499,12 +3647,24 @@
     githubId = 6893840;
     name = "Yacine Hmito";
   };
+  graham33 = {
+    email = "graham@grahambennett.org";
+    github = "graham33";
+    githubId = 10908649;
+    name = "Graham Bennett";
+  };
   grahamc = {
     email = "graham@grahamc.com";
     github = "grahamc";
     githubId = 76716;
     name = "Graham Christensen";
   };
+  gravndal = {
+    email = "gaute.ravndal+nixos@gmail.com";
+    github = "gravndal";
+    githubId = 4656860;
+    name = "Gaute Ravndal";
+  };
   grburst = {
     email = "GRBurst@protonmail.com";
     github = "GRBurst";
@@ -3545,6 +3705,18 @@
     githubId = 343415;
     name = "Greg Roodt";
   };
+  gschwartz = {
+    email = "gsch@pennmedicine.upenn.edu";
+    github = "GregorySchwartz";
+    githubId = 2490088;
+    name = "Gregory Schwartz";
+  };
+  gtrunsec = {
+    email = "gtrunsec@hardenedlinux.org";
+    github = "GTrunSec";
+    githubId = 21156405;
+    name = "GuangTao Zhang";
+  };
   guibou = {
     email = "guillaum.bouchard@gmail.com";
     github = "guibou";
@@ -3581,6 +3753,12 @@
     githubId = 443978;
     name = "Gabriel Volpe";
   };
+  gytis-ivaskevicius = {
+    name = "Gytis Ivaskevicius";
+    email = "me@gytis.io";
+    github = "gytis-ivaskevicius";
+    githubId = 23264966;
+  };
   hakuch = {
     email = "hakuch@gmail.com";
     github = "hakuch";
@@ -3915,6 +4093,12 @@
     githubId = 61913481;
     name = "Mat Marini";
   };
+  illustris = {
+    email = "me@illustris.tech";
+    github = "illustris";
+    githubId = 3948275;
+    name = "Harikrishnan R";
+  };
   ilya-fedin = {
     email = "fedin-ilja2010@ya.ru";
     github = "ilya-fedin";
@@ -3939,6 +4123,12 @@
     githubId = 993484;
     name = "Greg Hale";
   };
+  imlonghao = {
+    email = "nixos@esd.cc";
+    github = "imlonghao";
+    githubId = 4951333;
+    name = "Hao Long";
+  };
   immae = {
     email = "ismael@bouya.org";
     github = "immae";
@@ -4015,6 +4205,16 @@
       fingerprint = "7311 2700 AB4F 4CDF C68C  F6A5 79C3 C47D C652 EA54";
     }];
   };
+  ivankovnatsky = {
+    email = "ikovnatsky@protonmail.ch";
+    github = "ivankovnatsky";
+    githubId = 75213;
+    name = "Ivan Kovnatsky";
+    keys = [{
+      longkeyid = "rsa4096/0x3A33FA4C82ED674F";
+      fingerprint = "6BD3 7248 30BD 941E 9180  C1A3 3A33 FA4C 82ED 674F";
+    }];
+  };
   ivar = {
     email = "ivar.scholten@protonmail.com";
     github = "IvarWithoutBones";
@@ -4055,6 +4255,12 @@
     github = "j0hax";
     githubId = 3802620;
   };
+  j4m3s = {
+    name = "James Landrein";
+    email = "github@j4m3s.eu";
+    github = "j4m3s-s";
+    githubId = 9413812;
+  };
   jacg = {
     name = "Jacek Generowicz";
     email = "jacg@my-post-office.net";
@@ -4079,6 +4285,12 @@
     githubId = 175537;
     name = "Johannes Lötzsch";
   };
+  jackgerrits = {
+    email = "jack@jackgerrits.com";
+    github = "jackgerrits";
+    githubId = 7558482;
+    name = "Jack Gerrits";
+  };
   jagajaga = {
     email = "ars.seroka@gmail.com";
     github = "jagajaga";
@@ -4828,6 +5040,12 @@
     githubId = 16481032;
     name = "Kiba Fox";
   };
+  kidd = {
+    email = "raimonster@gmail.com";
+    github = "kidd";
+    githubId = 25607;
+    name = "Raimon Grau";
+  };
   kierdavis = {
     email = "kierdavis@gmail.com";
     github = "kierdavis";
@@ -4898,6 +5116,12 @@
       fingerprint = "8992 44FC D291 5CA2 0A97  802C 156C 88A5 B0A0 4B2A";
     }];
   };
+  kiyengar = {
+    email = "hello@kiyengar.net";
+    github = "karthikiyengar";
+    githubId = 8260207;
+    name = "Karthik Iyengar";
+  };
   kkallio = {
     email = "tierpluspluslists@gmail.com";
     name = "Karn Kallio";
@@ -5432,6 +5656,12 @@
     githubId = 7622248;
     name = "Sebastian Zivota";
   };
+  locallycompact = {
+    email = "dan.firth@homotopic.tech";
+    github = "locallycompact";
+    githubId = 1267527;
+    name = "Daniel Firth";
+  };
   lopsided98 = {
     email = "benwolsieffer@gmail.com";
     github = "lopsided98";
@@ -5848,6 +6078,12 @@
     githubId = 35892750;
     name = "Maxine Aubrey";
   };
+  maxhbr = {
+    email = "nixos@maxhbr.dev";
+    github = "maxhbr";
+    githubId = 1187050;
+    name = "Maximilian Huber";
+  };
   maxxk = {
     email = "maxim.krivchikov@gmail.com";
     github = "maxxk";
@@ -5860,6 +6096,12 @@
     githubId = 22836301;
     name = "Mateusz Mazur";
   };
+  mbaeten = {
+    email = "mbaeten@users.noreply.github.com";
+    github = "mbaeten";
+    githubId = 2649304;
+    name = "M. Baeten";
+  };
   mbakke = {
     email = "mbakke@fastmail.com";
     github = "mbakke";
@@ -6007,7 +6249,7 @@
     name = "Celine Mercier";
   };
   metadark = {
-    email = "kira.bruneau@gmail.com";
+    email = "kira.bruneau@pm.me";
     name = "Kira Bruneau";
     github = "metadark";
     githubId = 382041;
@@ -6018,6 +6260,12 @@
     github = "meutraa";
     githubId = 68550871;
   };
+  mephistophiles = {
+    email = "mussitantesmortem@gmail.com";
+    name = "Maxim Zhukov";
+    github = "Mephistophiles";
+    githubId = 4850908;
+  };
   mfossen = {
     email = "msfossen@gmail.com";
     github = "mfossen";
@@ -6185,6 +6433,12 @@
     githubId = 1776903;
     name = "Andrew Abbott";
   };
+  mitchmindtree = {
+    email = "mail@mitchellnordine.com";
+    github = "mitchmindtree";
+    githubId = 4587373;
+    name = "Mitchell Nordine";
+  };
   mjanczyk = {
     email = "m@dragonvr.pl";
     github = "mjanczyk";
@@ -6639,6 +6893,12 @@
     githubId = 1488603;
     name = "François Espinet";
   };
+  neverbehave = {
+    email = "i@never.pet";
+    github = "NeverBehave";
+    githubId = 17120571;
+    name = "Xinhao Luo";
+  };
   nikitavoloboev = {
     email = "nikita.voloboev@gmail.com";
     github = "nikitavoloboev";
@@ -6735,6 +6995,12 @@
     githubId = 16385648;
     name = "Niko Pavlinek";
   };
+  nixinator = {
+    email = "33lockdown33@protonmail.com";
+    github = "nixinator";
+    githubId = 66913205;
+    name = "Rick Sanchez";
+  };
   nixy = {
     email = "nixy@nixy.moe";
     github = "nixy";
@@ -6877,6 +7143,12 @@
     githubId = 3359345;
     name = "obadz";
   };
+  obsidian-systems-maintenance = {
+    name = "Obsidian Systems Maintenance";
+    email = "maintainer@obsidian.systems";
+    github = "obsidian-systems-maintenance";
+    githubId = 80847921;
+  };
   odi = {
     email = "oliver.dunkl@gmail.com";
     github = "odi";
@@ -7155,6 +7427,12 @@
     githubId = 157610;
     name = "Piotr Bogdan";
   };
+  pborzenkov = {
+    email = "pavel@borzenkov.net";
+    github = "pborzenkov";
+    githubId = 434254;
+    name = "Pavel Borzenkov";
+  };
   pblkt = {
     email = "pebblekite@gmail.com";
     github = "pblkt";
@@ -7179,6 +7457,12 @@
     githubId = 13225611;
     name = "Nicolas Martin";
   };
+  p3psi = {
+    name = "Elliot Boo";
+    email = "p3psi.boo@gmail.com";
+    github = "p3psi-boo";
+    githubId = 43925055;
+  };
   periklis = {
     email = "theopompos@gmail.com";
     github = "periklis";
@@ -7269,6 +7553,12 @@
     githubId = 627831;
     name = "Hoang Xuan Phu";
   };
+  piegames = {
+    name = "piegames";
+    email = "nix@piegames.de";
+    github = "piegamesde";
+    githubId = 14054505;
+  };
   pierrechevalier83 = {
     email = "pierrechevalier83@gmail.com";
     github = "pierrechevalier83";
@@ -7371,6 +7661,16 @@
     githubId = 103822;
     name = "Patrick Mahoney";
   };
+  pmenke = {
+    email = "nixos@pmenke.de";
+    github = "pmenke-de";
+    githubId = 898922;
+    name = "Philipp Menke";
+    keys = [{
+      longkeyid = "rsa4096/0xEB7F2D4CCBE23B69";
+      fingerprint = "ED54 5EFD 64B6 B5AA EC61 8C16 EB7F 2D4C CBE2 3B69";
+    }];
+  };
   pmeunier = {
     email = "pierre-etienne.meunier@inria.fr";
     github = "P-E-Meunier";
@@ -7401,6 +7701,22 @@
     githubId = 11365056;
     name = "Kevin Liu";
   };
+  pnotequalnp = {
+    email = "kevin@pnotequalnp.com";
+    github = "pnotequalnp";
+    githubId = 46154511;
+    name = "Kevin Mullins";
+    keys = [{
+      longkeyid = "rsa4096/361820A45DB41E9A";
+      fingerprint = "2CD2 B030 BD22 32EF DF5A  008A 3618 20A4 5DB4 1E9A";
+    }];
+  };
+  polendri = {
+    email = "paul@ijj.li";
+    github = "polendri";
+    githubId = 1829032;
+    name = "Paul Hendry";
+  };
   polyrod = {
     email = "dc1mdp@gmail.com";
     github = "polyrod";
@@ -7509,12 +7825,6 @@
     githubId = 33375;
     name = "Peter Sanford";
   };
-  pshendry = {
-    email = "paul@pshendry.com";
-    github = "pshendry";
-    githubId = 1829032;
-    name = "Paul Hendry";
-  };
   psibi = {
     email = "sibi@psibi.in";
     github = "psibi";
@@ -7857,6 +8167,12 @@
     githubId = 16779;
     name = "Rickard Nilsson";
   };
+  riey = {
+    email = "creeper844@gmail.com";
+    github = "Riey";
+    githubId = 14910534;
+    name = "Riey";
+  };
   rika = {
     email = "rika@paymentswit.ch";
     github = "NekomimiScience";
@@ -7985,6 +8301,12 @@
     githubId = 3708689;
     name = "Roberto Di Remigio";
   };
+  robertoszek = {
+    email = "robertoszek@robertoszek.xyz";
+    github = "robertoszek";
+    githubId = 1080963;
+    name = "Roberto";
+  };
   robgssp = {
     email = "robgssp@gmail.com";
     github = "robgssp";
@@ -8027,6 +8349,16 @@
     githubId = 1312525;
     name = "Rongcui Dong";
   };
+  ronthecookie = {
+    name = "Ron B";
+    email = "me@ronthecookie.me";
+    github = "ronthecookie";
+    githubId = 2526321;
+    keys = [{
+      longkeyid = "rsa2048/0x6F5B32DE5E5FA80C";
+      fingerprint = "4B2C DDA5 FA35 642D 956D  7294 6F5B 32DE 5E5F A80C";
+    }];
+  };
   roosemberth = {
     email = "roosembert.palacios+nixpkgs@gmail.com";
     github = "roosemberth";
@@ -8043,6 +8375,12 @@
       fingerprint = "1401 1B63 393D 16C1 AA9C  C521 8526 B757 4A53 6236";
     }];
   };
+  rowanG077 = {
+    email = "goemansrowan@gmail.com";
+    github = "rowanG077";
+    githubId = 7439756;
+    name = "Rowan Goemans";
+  };
   royneary = {
     email = "christian@ulrich.earth";
     github = "royneary";
@@ -8091,6 +8429,12 @@
     githubId = 4958190;
     name = "Rushmore Mushambi";
   };
+  russell = {
+    email = "russell.sim@gmail.com";
+    github = "russell";
+    githubId = 2660;
+    name = "Russell Sim";
+  };
   ruuda = {
     email = "dev+nix@veniogames.com";
     github = "ruuda";
@@ -8289,6 +8633,12 @@
     githubId = 2320433;
     name = "Sam Boosalis";
   };
+  sbruder = {
+    email = "nixos@sbruder.de";
+    github = "sbruder";
+    githubId = 15986681;
+    name = "Simon Bruder";
+  };
   scalavision = {
     email = "scalavision@gmail.com";
     github = "scalavision";
@@ -8371,6 +8721,12 @@
     githubId = 19472270;
     name = "Sebastian";
   };
+  sebbadk = {
+    email = "sebastian@sebba.dk";
+    github = "SEbbaDK";
+    githubId = 1567527;
+    name = "Sebastian Hyberts";
+  };
   sellout = {
     email = "greg@technomadic.org";
     github = "sellout";
@@ -8848,7 +9204,7 @@
     name = "Guillaume Loetscher";
   };
   sternenseemann = {
-    email = "post@lukasepple.de";
+    email = "sternenseemann@systemli.org";
     github = "sternenseemann";
     githubId = 3154475;
     name = "Lukas Epple";
@@ -8929,6 +9285,12 @@
     githubId = 65870;
     name = "Сухарик";
   };
+  sumnerevans = {
+    email = "me@sumnerevans.com";
+    github = "sumnerevans";
+    githubId = 16734772;
+    name = "Sumner Evans";
+  };
   superbo = {
     email = "supernbo@gmail.com";
     github = "SuperBo";
@@ -9294,7 +9656,7 @@
     name = "Jan Beinke";
   };
   thesola10 = {
-    email = "thesola10@bobile.fr";
+    email = "me@thesola.io";
     github = "thesola10";
     githubId = 7287268;
     keys = [{
@@ -9363,6 +9725,16 @@
     githubId = 1391883;
     name = "Tom Hall";
   };
+  Thunderbottom = {
+    email = "chinmaydpai@gmail.com";
+    github = "Thunderbottom";
+    githubId = 11243138;
+    name = "Chinmay D. Pai";
+    keys = [{
+      longkeyid = "rsa4096/0x75507BE256F40CED";
+      fingerprint = "7F3E EEAA EE66 93CC 8782  042A 7550 7BE2 56F4 0CED";
+    }];
+  };
   tiagolobocastro = {
     email = "tiagolobocastro@gmail.com";
     github = "tiagolobocastro";
@@ -9500,7 +9872,7 @@
     name = "Tom Smeets";
   };
   toonn = {
-    email = "nnoot@toonn.io";
+    email = "nixpkgs@toonn.io";
     github = "toonn";
     githubId = 1486805;
     name = "Toon Nolten";
@@ -9511,6 +9883,12 @@
     githubId = 27586264;
     name = "Tobias Schmidt";
   };
+  totoroot = {
+    name = "Matthias Thym";
+    email = "git@thym.at";
+    github = "totoroot";
+    githubId = 39650930;
+  };
   travisbhartwell = {
     email = "nafai@travishartwell.net";
     github = "travisbhartwell";
@@ -9593,6 +9971,16 @@
     githubId = 16151097;
     name = "Valentin Gehrke";
   };
+  tuxinaut = {
+    email = "trash4you@tuxinaut.de";
+    github = "tuxinaut";
+    githubId = 722482;
+    name = "Denny Schäfer";
+    keys = [{
+      longkeyid = "rsa4096/0xB057455D1E567270";
+      fingerprint = "C752 0E49 4D92 1740 D263  C467 B057 455D 1E56 7270";
+    }];
+  };
   tv = {
     email = "tv@krebsco.de";
     github = "4z3";
@@ -9936,6 +10324,12 @@
     email = "vq@erq.se";
     name = "Daniel Nilsson";
   };
+  vrinek = {
+    email = "vrinek@hey.com";
+    github = "vrinek";
+    name = "Kostas Karachalios";
+    githubId = 81346;
+  };
   vrthra = {
     email = "rahul@gopinath.org";
     github = "vrthra";
@@ -9948,6 +10342,12 @@
     githubId = 7677567;
     name = "Victor SENE";
   };
+  vtuan10 = {
+    email = "mail@tuan-vo.de";
+    github = "vtuan10";
+    githubId = 16415673;
+    name = "Van Tuan Vo";
+  };
   vyorkin = {
     email = "vasiliy.yorkin@gmail.com";
     github = "vyorkin";
@@ -9982,6 +10382,12 @@
     email = "kirill.wedens@gmail.com";
     name = "wedens";
   };
+  weihua = {
+    email = "luwh364@gmail.com";
+    github = "weihua-lu";
+    githubId = 9002575;
+    name = "Weihua Lu";
+  };
   wheelsandmetal = {
     email = "jakob@schmutz.co.uk";
     github = "wheelsandmetal";
@@ -10078,6 +10484,12 @@
     githubId = 1322287;
     name = "William O'Hanley";
   };
+  woky = {
+    email = "pampu.andrei@pm.me";
+    github = "andreisergiu98";
+    githubId = 11740700;
+    name = "Andrei Pampu";
+  };
   wolfangaukang = {
     email = "liquid.query960@4wrd.cc";
     github = "wolfangaukang";
@@ -10138,6 +10550,12 @@
     githubId = 13489144;
     name = "Calle Rosenquist";
   };
+  xdhampus = {
+    name = "Hampus";
+    email = "16954508+xdHampus@users.noreply.github.com";
+    github = "xdHampus";
+    githubId = 16954508;
+  };
   xe = {
     email = "me@christine.website";
     github = "Xe";
@@ -10150,6 +10568,12 @@
     githubId = 36407913;
     name = "Uli Baum";
   };
+  xfnw = {
+    email = "xfnw+nixos@riseup.net";
+    github = "xfnw";
+    githubId = 66233223;
+    name = "Owen";
+  };
   xfix = {
     email = "konrad@borowski.pw";
     github = "xfix";
@@ -10394,6 +10818,12 @@
     githubId = 1141948;
     name = "Zack Grannan";
   };
+  zhaofengli = {
+    email = "hello@zhaofeng.li";
+    github = "zhaofengli";
+    githubId = 2189609;
+    name = "Zhaofeng Li";
+  };
   zimbatm = {
     email = "zimbatm@zimbatm.com";
     github = "zimbatm";
@@ -10532,6 +10962,12 @@
     githubId = 3674056;
     name = "Asad Saeeduddin";
   };
+  matthewcroughan = {
+    email = "matt@croughan.sh";
+    github = "matthewcroughan";
+    githubId = 26458780;
+    name = "Matthew Croughan";
+  };
   ngerstle = {
     name = "Nicholas Gerstle";
     email = "ngerstle@gmail.com";
@@ -10686,16 +11122,20 @@
     github = "pulsation";
     githubId = 1838397;
   };
+  zseri = {
+    name = "zseri";
+    email = "zseri.devel@ytrizja.de";
+    github = "zseri";
+    githubId = 1618343;
+    keys = [{
+      longkeyid = "rsa4096/0x229E63AE5644A96D";
+      fingerprint = "7AFB C595 0D3A 77BD B00F  947B 229E 63AE 5644 A96D";
+    }];
+  };
   zupo = {
     name = "Nejc Zupan";
     email = "nejczupan+nix@gmail.com";
     github = "zupo";
     githubId = 311580;
   };
-  felixscheinost = {
-    name = "Felix Scheinost";
-    email = "felix.scheinost@posteo.de";
-    github = "felixscheinost";
-    githubId = 31761492;
-  };
 }
diff --git a/nixpkgs/maintainers/scripts/nixpkgs-lint.nix b/nixpkgs/maintainers/scripts/nixpkgs-lint.nix
index b0267281b389..873905373af0 100644
--- a/nixpkgs/maintainers/scripts/nixpkgs-lint.nix
+++ b/nixpkgs/maintainers/scripts/nixpkgs-lint.nix
@@ -3,7 +3,8 @@
 stdenv.mkDerivation {
   name = "nixpkgs-lint-1";
 
-  buildInputs = [ makeWrapper perl perlPackages.XMLSimple ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl perlPackages.XMLSimple ];
 
   dontUnpack = true;
   buildPhase = "true";
diff --git a/nixpkgs/maintainers/scripts/pluginupdate.py b/nixpkgs/maintainers/scripts/pluginupdate.py
new file mode 100644
index 000000000000..00a205313be8
--- /dev/null
+++ b/nixpkgs/maintainers/scripts/pluginupdate.py
@@ -0,0 +1,527 @@
+# Used by pkgs/misc/vim-plugins/update.py and pkgs/applications/editors/kakoune/plugins/update.py
+
+# format:
+# $ nix run nixpkgs.python3Packages.black -c black update.py
+# type-check:
+# $ nix run nixpkgs.python3Packages.mypy -c mypy update.py
+# linted:
+# $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265 update.py
+
+import argparse
+import functools
+import http
+import json
+import os
+import subprocess
+import sys
+import time
+import traceback
+import urllib.error
+import urllib.parse
+import urllib.request
+import xml.etree.ElementTree as ET
+from datetime import datetime
+from functools import wraps
+from multiprocessing.dummy import Pool
+from pathlib import Path
+from typing import Dict, List, Optional, Tuple, Union, Any, Callable
+from urllib.parse import urljoin, urlparse
+from tempfile import NamedTemporaryFile
+
+import git
+
+ATOM_ENTRY = "{http://www.w3.org/2005/Atom}entry"  # " vim gets confused here
+ATOM_LINK = "{http://www.w3.org/2005/Atom}link"  # "
+ATOM_UPDATED = "{http://www.w3.org/2005/Atom}updated"  # "
+
+
+def retry(ExceptionToCheck: Any, tries: int = 4, delay: float = 3, backoff: float = 2):
+    """Retry calling the decorated function using an exponential backoff.
+    http://www.saltycrane.com/blog/2009/11/trying-out-retry-decorator-python/
+    original from: http://wiki.python.org/moin/PythonDecoratorLibrary#Retry
+    (BSD licensed)
+    :param ExceptionToCheck: the exception on which to retry
+    :param tries: number of times to try (not retry) before giving up
+    :param delay: initial delay between retries in seconds
+    :param backoff: backoff multiplier e.g. value of 2 will double the delay
+        each retry
+    """
+
+    def deco_retry(f: Callable) -> Callable:
+        @wraps(f)
+        def f_retry(*args: Any, **kwargs: Any) -> Any:
+            mtries, mdelay = tries, delay
+            while mtries > 1:
+                try:
+                    return f(*args, **kwargs)
+                except ExceptionToCheck as e:
+                    print(f"{str(e)}, Retrying in {mdelay} seconds...")
+                    time.sleep(mdelay)
+                    mtries -= 1
+                    mdelay *= backoff
+            return f(*args, **kwargs)
+
+        return f_retry  # true decorator
+
+    return deco_retry
+
+
+def make_request(url: str) -> urllib.request.Request:
+    token = os.getenv("GITHUB_API_TOKEN")
+    headers = {}
+    if token is not None:
+        headers["Authorization"] = f"token {token}"
+    return urllib.request.Request(url, headers=headers)
+
+
+class Repo:
+    def __init__(
+        self, owner: str, name: str, branch: str, alias: Optional[str]
+    ) -> None:
+        self.owner = owner
+        self.name = name
+        self.branch = branch
+        self.alias = alias
+        self.redirect: Dict[str, str] = {}
+
+    def url(self, path: str) -> str:
+        return urljoin(f"https://github.com/{self.owner}/{self.name}/", path)
+
+    def __repr__(self) -> str:
+        return f"Repo({self.owner}, {self.name})"
+
+    @retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
+    def has_submodules(self) -> bool:
+        try:
+            req = make_request(self.url(f"blob/{self.branch}/.gitmodules"))
+            urllib.request.urlopen(req, timeout=10).close()
+        except urllib.error.HTTPError as e:
+            if e.code == 404:
+                return False
+            else:
+                raise
+        return True
+
+    @retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
+    def latest_commit(self) -> Tuple[str, datetime]:
+        commit_url = self.url(f"commits/{self.branch}.atom")
+        commit_req = make_request(commit_url)
+        with urllib.request.urlopen(commit_req, timeout=10) as req:
+            self.check_for_redirect(commit_url, req)
+            xml = req.read()
+            root = ET.fromstring(xml)
+            latest_entry = root.find(ATOM_ENTRY)
+            assert latest_entry is not None, f"No commits found in repository {self}"
+            commit_link = latest_entry.find(ATOM_LINK)
+            assert commit_link is not None, f"No link tag found feed entry {xml}"
+            url = urlparse(commit_link.get("href"))
+            updated_tag = latest_entry.find(ATOM_UPDATED)
+            assert (
+                updated_tag is not None and updated_tag.text is not None
+            ), f"No updated tag found feed entry {xml}"
+            updated = datetime.strptime(updated_tag.text, "%Y-%m-%dT%H:%M:%SZ")
+            return Path(str(url.path)).name, updated
+
+    def check_for_redirect(self, url: str, req: http.client.HTTPResponse):
+        response_url = req.geturl()
+        if url != response_url:
+            new_owner, new_name = (
+                urllib.parse.urlsplit(response_url).path.strip("/").split("/")[:2]
+            )
+            end_line = "\n" if self.alias is None else f" as {self.alias}\n"
+            plugin_line = "{owner}/{name}" + end_line
+
+            old_plugin = plugin_line.format(owner=self.owner, name=self.name)
+            new_plugin = plugin_line.format(owner=new_owner, name=new_name)
+            self.redirect[old_plugin] = new_plugin
+
+    def prefetch_git(self, ref: str) -> str:
+        data = subprocess.check_output(
+            ["nix-prefetch-git", "--fetch-submodules", self.url(""), ref]
+        )
+        return json.loads(data)["sha256"]
+
+    def prefetch_github(self, ref: str) -> str:
+        data = subprocess.check_output(
+            ["nix-prefetch-url", "--unpack", self.url(f"archive/{ref}.tar.gz")]
+        )
+        return data.strip().decode("utf-8")
+
+
+class Plugin:
+    def __init__(
+        self,
+        name: str,
+        commit: str,
+        has_submodules: bool,
+        sha256: str,
+        date: Optional[datetime] = None,
+    ) -> None:
+        self.name = name
+        self.commit = commit
+        self.has_submodules = has_submodules
+        self.sha256 = sha256
+        self.date = date
+
+    @property
+    def normalized_name(self) -> str:
+        return self.name.replace(".", "-")
+
+    @property
+    def version(self) -> str:
+        assert self.date is not None
+        return self.date.strftime("%Y-%m-%d")
+
+    def as_json(self) -> Dict[str, str]:
+        copy = self.__dict__.copy()
+        del copy["date"]
+        return copy
+
+
+class Editor:
+    """The configuration of the update script."""
+
+    def __init__(
+        self,
+        name: str,
+        root: Path,
+        get_plugins: str,
+        generate_nix: Callable[[List[Tuple[str, str, Plugin]], str], None],
+        default_in: Optional[Path] = None,
+        default_out: Optional[Path] = None,
+        deprecated: Optional[Path] = None,
+        cache_file: Optional[str] = None,
+    ):
+        self.name = name
+        self.root = root
+        self.get_plugins = get_plugins
+        self.generate_nix = generate_nix
+        self.default_in = default_in or root.joinpath(f"{name}-plugin-names")
+        self.default_out = default_out or root.joinpath("generated.nix")
+        self.deprecated = deprecated or root.joinpath("deprecated.json")
+        self.cache_file = cache_file or f"{name}-plugin-cache.json"
+
+
+class CleanEnvironment(object):
+    def __enter__(self) -> None:
+        self.old_environ = os.environ.copy()
+        local_pkgs = str(Path(__file__).parent.parent.parent)
+        os.environ["NIX_PATH"] = f"localpkgs={local_pkgs}"
+        self.empty_config = NamedTemporaryFile()
+        self.empty_config.write(b"{}")
+        self.empty_config.flush()
+        os.environ["NIXPKGS_CONFIG"] = self.empty_config.name
+
+    def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None:
+        os.environ.update(self.old_environ)
+        self.empty_config.close()
+
+
+def get_current_plugins(editor: Editor) -> List[Plugin]:
+    with CleanEnvironment():
+        out = subprocess.check_output(["nix", "eval", "--json", editor.get_plugins])
+    data = json.loads(out)
+    plugins = []
+    for name, attr in data.items():
+        p = Plugin(name, attr["rev"], attr["submodules"], attr["sha256"])
+        plugins.append(p)
+    return plugins
+
+
+def prefetch_plugin(
+    user: str,
+    repo_name: str,
+    branch: str,
+    alias: Optional[str],
+    cache: "Optional[Cache]" = None,
+) -> Tuple[Plugin, Dict[str, str]]:
+    repo = Repo(user, repo_name, branch, alias)
+    commit, date = repo.latest_commit()
+    has_submodules = repo.has_submodules()
+    cached_plugin = cache[commit] if cache else None
+    if cached_plugin is not None:
+        cached_plugin.name = alias or repo_name
+        cached_plugin.date = date
+        return cached_plugin, repo.redirect
+
+    print(f"prefetch {user}/{repo_name}")
+    if has_submodules:
+        sha256 = repo.prefetch_git(commit)
+    else:
+        sha256 = repo.prefetch_github(commit)
+
+    return (
+        Plugin(alias or repo_name, commit, has_submodules, sha256, date=date),
+        repo.redirect,
+    )
+
+
+def fetch_plugin_from_pluginline(plugin_line: str) -> Plugin:
+    plugin, _ = prefetch_plugin(*parse_plugin_line(plugin_line))
+    return plugin
+
+
+def print_download_error(plugin: str, ex: Exception):
+    print(f"{plugin}: {ex}", file=sys.stderr)
+    ex_traceback = ex.__traceback__
+    tb_lines = [
+        line.rstrip("\n")
+        for line in traceback.format_exception(ex.__class__, ex, ex_traceback)
+    ]
+    print("\n".join(tb_lines))
+
+
+def check_results(
+    results: List[Tuple[str, str, Union[Exception, Plugin], Dict[str, str]]]
+) -> Tuple[List[Tuple[str, str, Plugin]], Dict[str, str]]:
+    failures: List[Tuple[str, Exception]] = []
+    plugins = []
+    redirects: Dict[str, str] = {}
+    for (owner, name, result, redirect) in results:
+        if isinstance(result, Exception):
+            failures.append((name, result))
+        else:
+            plugins.append((owner, name, result))
+            redirects.update(redirect)
+
+    print(f"{len(results) - len(failures)} plugins were checked", end="")
+    if len(failures) == 0:
+        print()
+        return plugins, redirects
+    else:
+        print(f", {len(failures)} plugin(s) could not be downloaded:\n")
+
+        for (plugin, exception) in failures:
+            print_download_error(plugin, exception)
+
+        sys.exit(1)
+
+
+def parse_plugin_line(line: str) -> Tuple[str, str, str, Optional[str]]:
+    branch = "master"
+    alias = None
+    name, repo = line.split("/")
+    if " as " in repo:
+        repo, alias = repo.split(" as ")
+        alias = alias.strip()
+    if "@" in repo:
+        repo, branch = repo.split("@")
+
+    return (name.strip(), repo.strip(), branch.strip(), alias)
+
+
+def load_plugin_spec(plugin_file: str) -> List[Tuple[str, str, str, Optional[str]]]:
+    plugins = []
+    with open(plugin_file) as f:
+        for line in f:
+            plugin = parse_plugin_line(line)
+            if not plugin[0]:
+                msg = f"Invalid repository {line}, must be in the format owner/repo[ as alias]"
+                print(msg, file=sys.stderr)
+                sys.exit(1)
+            plugins.append(plugin)
+    return plugins
+
+
+def get_cache_path(cache_file_name: str) -> Optional[Path]:
+    xdg_cache = os.environ.get("XDG_CACHE_HOME", None)
+    if xdg_cache is None:
+        home = os.environ.get("HOME", None)
+        if home is None:
+            return None
+        xdg_cache = str(Path(home, ".cache"))
+
+    return Path(xdg_cache, cache_file_name)
+
+
+class Cache:
+    def __init__(self, initial_plugins: List[Plugin], cache_file_name: str) -> None:
+        self.cache_file = get_cache_path(cache_file_name)
+
+        downloads = {}
+        for plugin in initial_plugins:
+            downloads[plugin.commit] = plugin
+        downloads.update(self.load())
+        self.downloads = downloads
+
+    def load(self) -> Dict[str, Plugin]:
+        if self.cache_file is None or not self.cache_file.exists():
+            return {}
+
+        downloads: Dict[str, Plugin] = {}
+        with open(self.cache_file) as f:
+            data = json.load(f)
+            for attr in data.values():
+                p = Plugin(
+                    attr["name"], attr["commit"], attr["has_submodules"], attr["sha256"]
+                )
+                downloads[attr["commit"]] = p
+        return downloads
+
+    def store(self) -> None:
+        if self.cache_file is None:
+            return
+
+        os.makedirs(self.cache_file.parent, exist_ok=True)
+        with open(self.cache_file, "w+") as f:
+            data = {}
+            for name, attr in self.downloads.items():
+                data[name] = attr.as_json()
+            json.dump(data, f, indent=4, sort_keys=True)
+
+    def __getitem__(self, key: str) -> Optional[Plugin]:
+        return self.downloads.get(key, None)
+
+    def __setitem__(self, key: str, value: Plugin) -> None:
+        self.downloads[key] = value
+
+
+def prefetch(
+    args: Tuple[str, str, str, Optional[str]], cache: Cache
+) -> Tuple[str, str, Union[Exception, Plugin], dict]:
+    assert len(args) == 4
+    owner, repo, branch, alias = args
+    try:
+        plugin, redirect = prefetch_plugin(owner, repo, branch, alias, cache)
+        cache[plugin.commit] = plugin
+        return (owner, repo, plugin, redirect)
+    except Exception as e:
+        return (owner, repo, e, {})
+
+
+def rewrite_input(
+    input_file: Path,
+    deprecated: Path,
+    redirects: Dict[str, str] = None,
+    append: Tuple = (),
+):
+    with open(input_file, "r") as f:
+        lines = f.readlines()
+
+    lines.extend(append)
+
+    if redirects:
+        lines = [redirects.get(line, line) for line in lines]
+
+        cur_date_iso = datetime.now().strftime("%Y-%m-%d")
+        with open(deprecated, "r") as f:
+            deprecations = json.load(f)
+        for old, new in redirects.items():
+            old_plugin = fetch_plugin_from_pluginline(old)
+            new_plugin = fetch_plugin_from_pluginline(new)
+            if old_plugin.normalized_name != new_plugin.normalized_name:
+                deprecations[old_plugin.normalized_name] = {
+                    "new": new_plugin.normalized_name,
+                    "date": cur_date_iso,
+                }
+        with open(deprecated, "w") as f:
+            json.dump(deprecations, f, indent=4, sort_keys=True)
+            f.write("\n")
+
+    lines = sorted(lines, key=str.casefold)
+
+    with open(input_file, "w") as f:
+        f.writelines(lines)
+
+
+def parse_args(editor: Editor):
+    parser = argparse.ArgumentParser(
+        description=(
+            f"Updates nix derivations for {editor.name} plugins"
+            f"By default from {editor.default_in} to {editor.default_out}"
+        )
+    )
+    parser.add_argument(
+        "--add",
+        dest="add_plugins",
+        default=[],
+        action="append",
+        help=f"Plugin to add to {editor.name}Plugins from Github in the form owner/repo",
+    )
+    parser.add_argument(
+        "--input-names",
+        "-i",
+        dest="input_file",
+        default=editor.default_in,
+        help="A list of plugins in the form owner/repo",
+    )
+    parser.add_argument(
+        "--out",
+        "-o",
+        dest="outfile",
+        default=editor.default_out,
+        help="Filename to save generated nix code",
+    )
+    parser.add_argument(
+        "--proc",
+        "-p",
+        dest="proc",
+        type=int,
+        default=30,
+        help="Number of concurrent processes to spawn.",
+    )
+    return parser.parse_args()
+
+
+def commit(repo: git.Repo, message: str, files: List[Path]) -> None:
+    repo.index.add([str(f.resolve()) for f in files])
+
+    if repo.index.diff("HEAD"):
+        print(f'committing to nixpkgs "{message}"')
+        repo.index.commit(message)
+    else:
+        print("no changes in working tree to commit")
+
+
+def get_update(input_file: str, outfile: str, proc: int, editor: Editor):
+    cache: Cache = Cache(get_current_plugins(editor), editor.cache_file)
+    _prefetch = functools.partial(prefetch, cache=cache)
+
+    def update() -> dict:
+        plugin_names = load_plugin_spec(input_file)
+
+        try:
+            pool = Pool(processes=proc)
+            results = pool.map(_prefetch, plugin_names)
+        finally:
+            cache.store()
+
+        plugins, redirects = check_results(results)
+
+        editor.generate_nix(plugins, outfile)
+
+        return redirects
+
+    return update
+
+
+def update_plugins(editor: Editor):
+    """The main entry function of this module. All input arguments are grouped in the `Editor`."""
+
+    args = parse_args(editor)
+    nixpkgs_repo = git.Repo(editor.root, search_parent_directories=True)
+    update = get_update(args.input_file, args.outfile, args.proc, editor)
+
+    redirects = update()
+    rewrite_input(args.input_file, editor.deprecated, redirects)
+    commit(nixpkgs_repo, f"{editor.name}Plugins: update", [args.outfile])
+
+    if redirects:
+        update()
+        commit(
+            nixpkgs_repo,
+            f"{editor.name}Plugins: resolve github repository redirects",
+            [args.outfile, args.input_file, editor.deprecated],
+        )
+
+    for plugin_line in args.add_plugins:
+        rewrite_input(args.input_file, editor.deprecated, append=(plugin_line + "\n",))
+        update()
+        plugin = fetch_plugin_from_pluginline(plugin_line)
+        commit(
+            nixpkgs_repo,
+            "{editor}Plugins.{name}: init at {version}".format(
+                editor=editor.name, name=plugin.normalized_name, version=plugin.version
+            ),
+            [args.outfile, args.input_file],
+        )
diff --git a/nixpkgs/maintainers/team-list.nix b/nixpkgs/maintainers/team-list.nix
index 7d778a8ae30c..39c9b7671873 100644
--- a/nixpkgs/maintainers/team-list.nix
+++ b/nixpkgs/maintainers/team-list.nix
@@ -82,10 +82,21 @@ with lib.maintainers; {
       jtojnar
       worldofpeace
       dasj19
+      maxeaubrey
     ];
     scope = "Maintain GNOME desktop environment and platform.";
   };
 
+  home-assistant = {
+    members = [
+      fab
+      globin
+      hexa
+      mic92
+    ];
+    scope = "Maintain the Home Assistant ecosystem";
+  };
+
   jitsi = {
     members = [
       mmilata
@@ -96,6 +107,18 @@ with lib.maintainers; {
     scope = "Maintain Jitsi.";
   };
 
+  kodi = {
+    members = [
+      aanderse
+      cpages
+      edwtjo
+      minijackson
+      peterhoeg
+      sephalon
+    ];
+    scope = "Maintain Kodi and related packages.";
+  };
+
   matrix = {
     members = [
       ma27
@@ -134,6 +157,7 @@ with lib.maintainers; {
       timokau
       omasanori
       raskin
+      collares
     ];
     scope = "Maintain SageMath and the dependencies that are likely to break it.";
   };
diff --git a/nixpkgs/nixos/doc/manual/Makefile b/nixpkgs/nixos/doc/manual/Makefile
index b86a76005753..b2b6481b20c7 100644
--- a/nixpkgs/nixos/doc/manual/Makefile
+++ b/nixpkgs/nixos/doc/manual/Makefile
@@ -1,5 +1,5 @@
 .PHONY: all
-all: manual-combined.xml format
+all: manual-combined.xml
 
 .PHONY: debug
 debug: generated manual-combined.xml
diff --git a/nixpkgs/nixos/doc/manual/configuration/config-file.xml b/nixpkgs/nixos/doc/manual/configuration/config-file.xml
index 7ccb5b3664ea..19cfb57920df 100644
--- a/nixpkgs/nixos/doc/manual/configuration/config-file.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/config-file.xml
@@ -16,9 +16,10 @@
   The first line (<literal>{ config, pkgs, ... }:</literal>) denotes that this
   is actually a function that takes at least the two arguments
   <varname>config</varname> and <varname>pkgs</varname>. (These are explained
-  later.) The function returns a <emphasis>set</emphasis> of option definitions
-  (<literal>{ <replaceable>...</replaceable> }</literal>). These definitions
-  have the form <literal><replaceable>name</replaceable> =
+  later, in chapter <xref linkend="sec-writing-modules" />) The function returns
+  a <emphasis>set</emphasis> of option definitions (<literal>{
+  <replaceable>...</replaceable> }</literal>). These definitions have the form
+  <literal><replaceable>name</replaceable> =
   <replaceable>value</replaceable></literal>, where
   <replaceable>name</replaceable> is the name of an option and
   <replaceable>value</replaceable> is its value. For example,
diff --git a/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml b/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml
index 405a50a9e430..d8654d71ac00 100644
--- a/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml
@@ -26,7 +26,11 @@ Enter passphrase for /dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d: ***
 
 <prompt># </prompt>mkfs.ext4 /dev/mapper/<replaceable>crypted</replaceable>
 </screen>
-  To ensure that this file system is automatically mounted at boot time as
+  The LUKS volume should be automatically picked up by
+  <command>nixos-generate-config</command>, but you might want to verify that your
+  <filename>hardware-configuration.nix</filename> looks correct.
+
+  To manually ensure that the system is automatically mounted at boot time as
   <filename>/</filename>, add the following to
   <filename>configuration.nix</filename>:
 <programlisting>
diff --git a/nixpkgs/nixos/doc/manual/configuration/networking.xml b/nixpkgs/nixos/doc/manual/configuration/networking.xml
index 02cf811e0bd3..8369e9c9c852 100644
--- a/nixpkgs/nixos/doc/manual/configuration/networking.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/networking.xml
@@ -15,5 +15,6 @@
  <xi:include href="firewall.xml" />
  <xi:include href="wireless.xml" />
  <xi:include href="ad-hoc-network-config.xml" />
+ <xi:include href="renaming-interfaces.xml" />
 <!-- TODO: OpenVPN, NAT -->
 </chapter>
diff --git a/nixpkgs/nixos/doc/manual/configuration/profiles/clone-config.xml b/nixpkgs/nixos/doc/manual/configuration/profiles/clone-config.xml
index 04fa1643d0fd..9c70cf352041 100644
--- a/nixpkgs/nixos/doc/manual/configuration/profiles/clone-config.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/profiles/clone-config.xml
@@ -16,6 +16,6 @@
   On images where the installation media also becomes an installation target,
   copying over <literal>configuration.nix</literal> should be disabled by
   setting <literal>installer.cloneConfig</literal> to <literal>false</literal>.
-  For example, this is done in <literal>sd-image-aarch64.nix</literal>.
+  For example, this is done in <literal>sd-image-aarch64-installer.nix</literal>.
  </para>
 </section>
diff --git a/nixpkgs/nixos/doc/manual/configuration/renaming-interfaces.xml b/nixpkgs/nixos/doc/manual/configuration/renaming-interfaces.xml
new file mode 100644
index 000000000000..d760bb3a4dac
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/configuration/renaming-interfaces.xml
@@ -0,0 +1,67 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-rename-ifs">
+ <title>Renaming network interfaces</title>
+
+ <para>
+  NixOS uses the udev
+  <link xlink:href="https://systemd.io/PREDICTABLE_INTERFACE_NAMES/">predictable naming scheme</link>
+  to assign names to network interfaces. This means that by default
+  cards are not given the traditional names like
+  <literal>eth0</literal> or <literal>eth1</literal>, whose order can
+  change unpredictably across reboots. Instead, relying on physical
+  locations and firmware information, the scheme produces names like
+  <literal>ens1</literal>, <literal>enp2s0</literal>, etc.
+ </para>
+
+ <para>
+  These names are predictable but less memorable and not necessarily
+  stable: for example installing new hardware or changing firmware
+  settings can result in a
+  <link xlink:href="https://github.com/systemd/systemd/issues/3715#issue-165347602">name change</link>.
+  If this is undesirable, for example if you have a single ethernet
+  card, you can revert to the traditional scheme by setting
+  <xref linkend="opt-networking.usePredictableInterfaceNames"/> to
+  <literal>false</literal>.
+ </para>
+
+ <section xml:id="sec-custom-ifnames">
+  <title>Assigning custom names</title>
+  <para>
+   In case there are multiple interfaces of the same type, it’s better to
+   assign custom names based on the device hardware address. For
+   example, we assign the name <literal>wan</literal> to the interface
+   with MAC address <literal>52:54:00:12:01:01</literal> using a
+   netword link unit:
+  </para>
+  <programlisting>
+ <link linkend="opt-systemd.network.links">systemd.network.links."10-wan"</link> = {
+   matchConfig.MACAddress = "52:54:00:12:01:01";
+   linkConfig.Name = "wan";
+ };
+  </programlisting>
+  <para>
+   Note that links are directly read by udev, <emphasis>not networkd</emphasis>,
+   and will work even if networkd is disabled.
+  </para>
+  <para>
+   Alternatively, we can use a plain old udev rule:
+  </para>
+  <programlisting>
+ <link linkend="opt-services.udev.initrdRules">services.udev.initrdRules</link> = ''
+  SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
+  ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="wan"
+ '';
+  </programlisting>
+
+  <warning><para>
+   The rule must be installed in the initrd using
+   <literal>services.udev.initrdRules</literal>, not the usual
+   <literal>services.udev.extraRules</literal> option. This is to avoid race
+   conditions with other programs controlling the interface.
+  </para></warning>
+ </section>
+
+</section>
diff --git a/nixpkgs/nixos/doc/manual/configuration/x-windows.xml b/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
index dd879702d7dc..a499f0080d70 100644
--- a/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
@@ -150,7 +150,6 @@
 <xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy390" ];
 <xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy340" ];
 <xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy304" ];
-<xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy173" ];
 </programlisting>
    You may need to reboot after enabling this driver to prevent a clash with
    other kernel modules.
@@ -159,21 +158,16 @@
  <simplesect xml:id="sec-x11--graphics-cards-amd">
   <title>Proprietary AMD drivers</title>
   <para>
-   AMD provides a proprietary driver for its graphics cards that has better 3D
-   performance than the X.org drivers. It is not enabled by default because
-   it’s not free software. You can enable it as follows:
+   AMD provides a proprietary driver for its graphics cards that is not
+   enabled by default because it’s not Free Software, is often broken
+   in nixpkgs and as of this writing doesn't offer more features or
+   performance. If you still want to use it anyway, you need to explicitly set:
 <programlisting>
-<xref linkend="opt-services.xserver.videoDrivers"/> = [ "ati_unfree" ];
+<xref linkend="opt-services.xserver.videoDrivers"/> = [ "amdgpu-pro" ];
 </programlisting>
    You will need to reboot after enabling this driver to prevent a clash with
    other kernel modules.
   </para>
-  <note>
-  <para>
-   For recent AMD GPUs you most likely want to keep either the defaults
-   or <literal>"amdgpu"</literal> (both free).
-  </para>
-  </note>
  </simplesect>
  <simplesect xml:id="sec-x11-touchpads">
   <title>Touchpads</title>
diff --git a/nixpkgs/nixos/doc/manual/development/writing-documentation.xml b/nixpkgs/nixos/doc/manual/development/writing-documentation.xml
index 32e00544ceff..89fab6665616 100644
--- a/nixpkgs/nixos/doc/manual/development/writing-documentation.xml
+++ b/nixpkgs/nixos/doc/manual/development/writing-documentation.xml
@@ -25,7 +25,8 @@
 
 <screen>
 <prompt>$ </prompt>cd /path/to/nixpkgs/nixos/doc/manual
-<prompt>$ </prompt>make
+<prompt>$ </prompt>nix-shell
+<prompt>nix-shell$ </prompt>make
 </screen>
 
   <para>
diff --git a/nixpkgs/nixos/doc/manual/development/writing-modules.xml b/nixpkgs/nixos/doc/manual/development/writing-modules.xml
index d244356dbed1..fad4637f51f0 100644
--- a/nixpkgs/nixos/doc/manual/development/writing-modules.xml
+++ b/nixpkgs/nixos/doc/manual/development/writing-modules.xml
@@ -74,7 +74,10 @@ linkend="sec-configuration-syntax"/>, we saw the following structure
    <callout arearefs='module-syntax-1'>
     <para>
      This line makes the current Nix expression a function. The variable
-     <varname>pkgs</varname> contains Nixpkgs, while <varname>config</varname>
+     <varname>pkgs</varname> contains Nixpkgs (by default, it takes the
+     <varname>nixpkgs</varname> entry of <envar>NIX_PATH</envar>, see the <link
+     xlink:href="https://nixos.org/manual/nix/stable/#sec-common-env">Nix
+     manual</link> for further details), while <varname>config</varname>
      contains the full system configuration. This line can be omitted if there
      is no reference to <varname>pkgs</varname> and <varname>config</varname>
      inside the module.
diff --git a/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml b/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml
index cab4c067e0d3..5f70f74d5d90 100644
--- a/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml
+++ b/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml
@@ -449,5 +449,16 @@ import ./make-test-python.nix {
     '';
 }
 </programlisting>
+  This will produce a Nix warning at evaluation time. To fully disable the
+  linter, wrap the test script in comment directives to disable the Black linter
+  directly (again, don't commit this within the Nixpkgs repository):
+<programlisting>
+  testScript =
+    ''
+      # fmt: off
+      <replaceable>Python code…</replaceable>
+      # fmt: on
+    '';
+</programlisting>
  </para>
 </section>
diff --git a/nixpkgs/nixos/doc/manual/installation/installing-virtualbox-guest.xml b/nixpkgs/nixos/doc/manual/installation/installing-virtualbox-guest.xml
index 4957b700946e..019e5098a8e2 100644
--- a/nixpkgs/nixos/doc/manual/installation/installing-virtualbox-guest.xml
+++ b/nixpkgs/nixos/doc/manual/installation/installing-virtualbox-guest.xml
@@ -83,17 +83,12 @@
   VirtualBox settings (Machine / Settings / Shared Folders, then click on the
   "Add" icon). Add the following to the
   <literal>/etc/nixos/configuration.nix</literal> to auto-mount them. If you do
-  not add <literal>"nofail"</literal>, the system will not boot properly. The
-  same goes for disabling <literal>rngd</literal> which is normally used to get
-  randomness but this does not work in virtual machines.
+  not add <literal>"nofail"</literal>, the system will not boot properly.
  </para>
 
 <programlisting>
 { config, pkgs, ...} :
 {
-  security.rngd.enable = false; // otherwise vm will not boot
-  ...
-
   fileSystems."/virtualboxshare" = {
     fsType = "vboxsf";
     device = "nameofthesharedfolder";
diff --git a/nixpkgs/nixos/doc/manual/installation/installing.xml b/nixpkgs/nixos/doc/manual/installation/installing.xml
index bedeb7ccfa8e..02f6bd6bed4e 100644
--- a/nixpkgs/nixos/doc/manual/installation/installing.xml
+++ b/nixpkgs/nixos/doc/manual/installation/installing.xml
@@ -374,7 +374,7 @@
         You may want to look at the options starting with
         <option><link linkend="opt-boot.loader.efi.canTouchEfiVariables">boot.loader.efi</link></option>
         and
-        <option><link linkend="opt-boot.loader.systemd-boot.enable">boot.loader.systemd</link></option>
+        <option><link linkend="opt-boot.loader.systemd-boot.enable">boot.loader.systemd-boot</link></option>
         as well.
        </para>
       </listitem>
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2009.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-2009.xml
index a6cff1a8faed..49446afdead4 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2009.xml
@@ -1019,6 +1019,14 @@ systemd.services.nginx.serviceConfig.ProtectHome = "read-only";
    </listitem>
    <listitem>
     <para>
+      The syntax of the PostgreSQL configuration file is now checked at build
+      time. If your configuration includes a file inaccessible inside the build
+      sandbox, set <varname>services.postgresql.checkConfig</varname> to
+        <literal>false</literal>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
       The rkt module has been removed, it was archived by upstream.
     </para>
    </listitem>
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml
index 6dd14d6051e4..b5290b374f9d 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml
@@ -24,19 +24,63 @@
     </para>
    </listitem>
    <listitem>
+    <para>The default Linux kernel was updated to the 5.10 LTS series, coming from the 5.4 LTS series.</para>
+   </listitem>
+   <listitem>
     <para>GNOME desktop environment was upgraded to 3.38, see its <link xlink:href="https://help.gnome.org/misc/release-notes/3.38/">release notes</link>.</para>
    </listitem>
    <listitem>
     <para>
      <link xlink:href="https://www.gnuradio.org/">GNURadio</link> 3.8 was
-     <link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finnally</link>
+     <link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finally</link>
      packaged, along with a rewrite to the Nix expressions, allowing users to
      override the features upstream supports selecting to compile or not to.
      Additionally, the attribute <code>gnuradio</code> and <code>gnuradio3_7</code>
      now point to an externally wrapped by default derivations, that allow you to
      also add `extraPythonPackages` to the Python interpreter used by GNURadio.
      Missing environmental variables needed for operational GUI were also added
-     (<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#7547</link>).
+     (<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <link xlink:href="https://www.gnuradio.org/">GNURadio</link> has a
+     <code>pkgs</code> attribute set, and there's a <code>gnuradio.callPackage</code>
+     function that extends <code>pkgs</code> with a <code>mkDerivation</code>, and a
+     <code>mkDerivationWith</code>, like Qt5. Now all <code>gnuradio.pkgs</code> are
+     defined with <code>gnuradio.callPackage</code> and some packages that depend
+     on gnuradio are defined with this as well.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <link xlink:href="https://www.privoxy.org/">Privoxy</link> has been updated
+     to version 3.0.32 (See <link xlink:href="https://lists.privoxy.org/pipermail/privoxy-announce/2021-February/000007.html">announcement</link>).
+     Compared to the previous release, Privoxy has gained support for HTTPS
+     inspection (still experimental), Brotli decompression, several new filters
+     and lots of bug fixes, including security ones. In addition, the package
+     is now built with compression and external filters support, which were
+     previously disabled.
+    </para>
+    <para>
+     Regarding the NixOS module, new options for HTTPS inspection have been added
+     and <option>services.privoxy.extraConfig</option> has been replaced by the new
+     <xref linkend="opt-services.privoxy.settings"/>
+     (See <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC 0042</link>
+     for the motivation).
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Python optimizations were disabled again. Builds with optimizations enabled
+     are not reproducible. Optimizations can now be enabled with an option.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <link xlink:href="https://kodi.tv/">Kodi</link> has been updated to version 19.0 "Matrix". See
+     the <link xlink:href="https://kodi.tv/article/kodi-190-matrix-release">announcement</link> for
+     further details.
     </para>
    </listitem>
   </itemizedlist>
@@ -74,6 +118,16 @@
        <xref linkend="opt-services.samba-wsdd.enable" /> Web Services Dynamic Discovery host daemon
      </para>
    </listitem>
+   <listitem>
+     <para>
+       <link xlink:href="https://www.discourse.org/">Discourse</link>, a
+       modern and open source discussion platform.
+     </para>
+     <para>
+       See the <link linkend="module-services-discourse">Discourse
+       section of the NixOS manual</link> for more information.
+     </para>
+   </listitem>
   </itemizedlist>
 
  </section>
@@ -91,6 +145,27 @@
   </para>
 
   <itemizedlist>
+   <listitem>
+    <para>
+     If you are using <option>services.udev.extraRules</option> to assign
+     custom names to network interfaces, this may stop working due to a change
+     in the initialisation of dhcpcd and systemd networkd. To avoid this, either
+     move them to <option>services.udev.initrdRules</option> or see the new
+     <link linkend="sec-custom-ifnames">Assigning custom names</link> section
+     of the NixOS manual for an example using networkd links.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <option>security.hideProcessInformation</option> module has been removed.
+     It was broken since the switch to cgroups-v2.
+    </para>
+   </listitem>
+    <listitem>
+      <para>
+        The <literal>systemConfig</literal> kernel parameter is no longer added to boot loader entries. It has been unused since September 2010, but if do have a system generation from that era, you will now be unable to boot into them.
+      </para>
+    </listitem>
     <listitem>
       <para>
         <literal>systemd-journal2gelf</literal> no longer parses json and expects the receiving system to handle it. How to achieve this with Graylog is described in this <link xlink:href="https://github.com/parse-nl/SystemdJournal2Gelf/issues/10">GitHub issue</link>.
@@ -179,7 +254,7 @@
    </listitem>
    <listitem>
      <para>
-       xfsprogs was update from 4.19 to 5.10. It now enables reflink support by default on filesystem creation.
+       xfsprogs was update from 4.19 to 5.11. It now enables reflink support by default on filesystem creation.
        Support for reflinks was added with an experimental status to kernel 4.9 and deemed stable in kernel 4.16.
        If you want to be able to mount XFS filesystems created with this release of xfsprogs on kernel releases older than those, you need to format them
        with <literal>mkfs.xfs -m reflink=0</literal>.
@@ -494,6 +569,95 @@ self: super:
      <varname>services.flashpolicyd</varname> module.
     </para>
    </listitem>
+   <listitem>
+    <para>
+      The <literal>security.rngd</literal> module has been removed.
+      It was disabled by default in 20.09 as it was functionally redundant
+      with krngd in the linux kernel. It is not necessary for any device that the kernel recognises
+      as an hardware RNG, as it will automatically run the krngd task to periodically collect random
+      data from the device and mix it into the kernel's RNG.
+    </para>
+    <para>
+      The default SMTP port for GitLab has been changed to
+      <literal>25</literal> from its previous default of
+      <literal>465</literal>. If you depended on this default, you
+      should now set the <xref linkend="opt-services.gitlab.smtp.port" />
+      option.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The default version of ImageMagick has been updated from 6 to 7.
+     You can use <package>imagemagick6</package>,
+     <package>imagemagick6_light</package>, and
+     <package>imagemagick6Big</package> if you need the older version.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <xref linkend="opt-services.xserver.videoDrivers" /> no longer uses the deprecated <literal>cirrus</literal> and <literal>vesa</literal> device dependent X drivers by default. It also enables both <literal>amdgpu</literal> and <literal>nouveau</literal> drivers by default now.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>kindlegen</literal> package is gone, because it is no longer supported or hosted by Amazon. Sadly, its replacement, Kindle Previewer, has no Linux support. However, there are other ways to generate MOBI files. See <link xlink:href="https://github.com/NixOS/nixpkgs/issues/96439">the discussion</link> for more info.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The <package>apacheKafka</package> packages are now built with
+      version-matched JREs. Versions 2.6 and above, the ones that recommend it,
+      use jdk11, while versions below remain on jdk8. The NixOS service has
+      been adjusted to start the service using the same version as the package,
+      adjustable with the new
+      <link linkend="opt-services.apache-kafka.jre">services.apache-kafka.jre</link>
+      option. Furthermore, the default list of
+      <link linkend="opt-services.apache-kafka.jvmOptions">services.apache-kafka.jvmOptions</link>
+      have been removed. You should set your own according to the
+      <link xlink:href="https://kafka.apache.org/documentation/#java">upstream documentation</link>
+      for your Kafka version.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <package>kodi</package> package has been modified to allow concise addon management. Consider
+     the following configuration from previous releases of NixOS to install <package>kodi</package>,
+     including the <package>kodiPackages.inputstream-adaptive</package> and <package>kodiPackages.vfs-sftp</package>
+     addons:
+
+     <programlisting>
+environment.systemPackages = [
+  pkgs.kodi
+];
+
+nixpkgs.config.kodi = {
+  enableInputStreamAdaptive = true;
+  enableVFSSFTP = true;
+};
+     </programlisting>
+
+     All Kodi <literal>config</literal> flags have been removed, and as a result the above configuration
+     should now be written as:
+
+     <programlisting>
+environment.systemPackages = [
+  (pkgs.kodi.withPackages (p: with p; [
+    inputstream-adaptive
+    vfs-sftp
+  ]))
+];
+     </programlisting>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <option>environment.defaultPackages</option> now includes the nano package.
+     If <package>pkgs.nano</package> is not added to the list,
+     make sure another editor is installed and the <literal>EDITOR</literal>
+     environment variable is set to it.
+     Environment variables can be set using <option>environment.variables</option>.
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 
@@ -528,14 +692,16 @@ self: super:
    </listitem>
    <listitem>
     <para>
-     The default-version of <literal>nextcloud</literal> is <package>nextcloud20</package>.
+     The default-version of <literal>nextcloud</literal> is <package>nextcloud21</package>.
      Please note that it's <emphasis>not</emphasis> possible to upgrade <literal>nextcloud</literal>
      across multiple major versions! This means that it's e.g. not possible to upgrade
-     from <package>nextcloud18</package> to <package>nextcloud20</package> in a single deploy.
+     from <package>nextcloud18</package> to <package>nextcloud20</package> in a single deploy and
+     most <literal>20.09</literal> users will have to upgrade to <package>nextcloud20</package>
+     first.
     </para>
     <para>
      The package can be manually upgraded by setting <xref linkend="opt-services.nextcloud.package" />
-     to <package>nextcloud20</package>.
+     to <package>nextcloud21</package>.
     </para>
    </listitem>
    <listitem>
@@ -587,8 +753,8 @@ self: super:
     </para>
 
     <para>
-     Aditionally to the much stricter runtime environmet the
-     <literal>/dev/urandom</literal> mount lines we previously had in the code (that would
+     Additionally to the much stricter runtime environment the
+     <literal>/dev/urandom</literal> mount lines we previously had in the code (that
      randomly failed during the stop-phase) have been removed as systemd will take care of those for us.
     </para>
 
@@ -676,7 +842,7 @@ self: super:
    <listitem>
     <para>
      Platforms, like <varname>stdenv.hostPlatform</varname>, no longer have a <varname>platform</varname> attribute.
-     It has been (mostly) flattoned away:
+     It has been (mostly) flattened away:
     </para>
     <itemizedlist>
      <listitem><para><varname>platform.gcc</varname> is now <varname>gcc</varname></para></listitem>
@@ -700,6 +866,64 @@ self: super:
      terminology has been deprecated and should be replaced with Far/Near in the configuration file.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     The nix-gc service now accepts randomizedDelaySec (default: 0) and persistent (default: true) parameters.
+     By default nix-gc will now run immediately if it would have been triggered at least
+     once during the time when the timer was inactive.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>rustPlatform.buildRustPackage</literal> function is split into several hooks:
+     <package>cargoSetupHook</package> to set up vendoring for Cargo-based projects,
+     <package>cargoBuildHook</package> to build a project using Cargo,
+     <package>cargoInstallHook</package> to install a project using Cargo, and
+     <package>cargoCheckHook</package> to run tests in Cargo-based projects. With this change,
+     mixed-language projects can use the relevant hooks within builders other than
+     <literal>buildRustPackage</literal>. However, these changes also required several API changes to
+     <literal>buildRustPackage</literal> itself:
+
+     <itemizedlist>
+      <listitem>
+       <para>
+        The <literal>target</literal> argument was removed. Instead, <literal>buildRustPackage</literal>
+        will always use the same target as the C/C++ compiler that is used.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        The <literal>cargoParallelTestThreads</literal> argument was removed. Parallel tests are
+        now disabled through <literal>dontUseCargoParallelTests</literal>.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>rustPlatform.maturinBuildHook</literal> hook was added. This hook can be used
+     with <literal>buildPythonPackage</literal> to build Python packages that are written in Rust
+     and use Maturin as their build tool.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Kubernetes has <link xlink:href="https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/">deprecated docker</link> as container runtime.
+     As a consequence, the Kubernetes module now has support for configuration of custom remote container runtimes and enables containerd by default.
+     Note that containerd is more strict regarding container image OCI-compliance.
+     As an example, images with CMD or ENTRYPOINT defined as strings (not lists) will fail on containerd, while working fine on docker.
+     Please test your setup and container images with containerd prior to upgrading.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The GitLab module now has support for automatic backups. A
+     schedule can be set with the
+     <link linkend="opt-services.gitlab.backup.startAt">services.gitlab.backup.startAt</link>
+     option.
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 </section>
diff --git a/nixpkgs/nixos/lib/make-squashfs.nix b/nixpkgs/nixos/lib/make-squashfs.nix
index ee76c9c5bf24..8690c42e7ac9 100644
--- a/nixpkgs/nixos/lib/make-squashfs.nix
+++ b/nixpkgs/nixos/lib/make-squashfs.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation {
 
       # Generate the squashfs image.
       mksquashfs nix-path-registration $(cat $closureInfo/store-paths) $out \
-        -keep-as-directory -all-root -b 1048576 -comp ${comp}
+        -no-hardlinks -keep-as-directory -all-root -b 1048576 -comp ${comp}
     '';
 }
diff --git a/nixpkgs/nixos/lib/qemu-flags.nix b/nixpkgs/nixos/lib/qemu-flags.nix
index 0f0662458935..f786745ba324 100644
--- a/nixpkgs/nixos/lib/qemu-flags.nix
+++ b/nixpkgs/nixos/lib/qemu-flags.nix
@@ -18,13 +18,15 @@ rec {
     ];
 
   qemuSerialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"
-        else if pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64 then "ttyAMA0"
+        else if (with pkgs.stdenv.hostPlatform; isAarch32 || isAarch64 || isPower) then "ttyAMA0"
         else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
 
   qemuBinary = qemuPkg: {
     x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu max";
     armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
     aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
+    powerpc64le-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
+    powerpc64-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
     x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu max";
   }.${pkgs.stdenv.hostPlatform.system} or "${qemuPkg}/bin/qemu-kvm";
 }
diff --git a/nixpkgs/nixos/maintainers/scripts/gce/create-gce.sh b/nixpkgs/nixos/maintainers/scripts/gce/create-gce.sh
index 77cc64e591e9..0eec4d041108 100755
--- a/nixpkgs/nixos/maintainers/scripts/gce/create-gce.sh
+++ b/nixpkgs/nixos/maintainers/scripts/gce/create-gce.sh
@@ -17,7 +17,19 @@ nix-build '<nixpkgs/nixos/lib/eval-config.nix>' \
 img_path=$(echo gce/*.tar.gz)
 img_name=${IMAGE_NAME:-$(basename "$img_path")}
 img_id=$(echo "$img_name" | sed 's|.raw.tar.gz$||;s|\.|-|g;s|_|-|g')
+img_family=$(echo "$img_id" | cut -d - -f1-4)
+
 if ! gsutil ls "gs://${BUCKET_NAME}/$img_name"; then
   gsutil cp "$img_path" "gs://${BUCKET_NAME}/$img_name"
   gsutil acl ch -u AllUsers:R "gs://${BUCKET_NAME}/$img_name"
+
+  gcloud compute images create \
+    "$img_id" \
+    --source-uri "gs://${BUCKET_NAME}/$img_name" \
+    --family="$img_family"
+
+  gcloud compute images add-iam-policy-binding \
+    "$img_id" \
+    --member='allAuthenticatedUsers' \
+    --role='roles/compute.imageUser'
 fi
diff --git a/nixpkgs/nixos/modules/config/console.nix b/nixpkgs/nixos/modules/config/console.nix
index 1339227f1e02..84ad76246fdb 100644
--- a/nixpkgs/nixos/modules/config/console.nix
+++ b/nixpkgs/nixos/modules/config/console.nix
@@ -144,11 +144,16 @@ in
           ''}
         '';
 
-        systemd.services.systemd-vconsole-setup =
-          {
-            before = optional config.services.xserver.enable "display-manager.service";
-            after = [ "systemd-udev-settle.service" ];
+        systemd.services.reload-systemd-vconsole-setup =
+          { description = "Reset console on configuration changes";
+            wantedBy = [ "multi-user.target" ];
             restartTriggers = [ vconsoleConf consoleEnv ];
+            reloadIfChanged = true;
+            serviceConfig =
+              { RemainAfterExit = true;
+                ExecStart = "${pkgs.coreutils}/bin/true";
+                ExecReload = "/run/current-system/systemd/bin/systemctl restart systemd-vconsole-setup";
+              };
           };
       }
 
diff --git a/nixpkgs/nixos/modules/config/swap.nix b/nixpkgs/nixos/modules/config/swap.nix
index 4bb66e9b5144..59bc9e9d11e0 100644
--- a/nixpkgs/nixos/modules/config/swap.nix
+++ b/nixpkgs/nixos/modules/config/swap.nix
@@ -185,8 +185,6 @@ in
           { description = "Initialisation of swap device ${sw.device}";
             wantedBy = [ "${realDevice'}.swap" ];
             before = [ "${realDevice'}.swap" ];
-            # If swap is encrypted, depending on rngd resolves a possible entropy starvation during boot
-            after = mkIf (config.security.rngd.enable && sw.randomEncryption.enable) [ "rngd.service" ];
             path = [ pkgs.util-linux ] ++ optional sw.randomEncryption.enable pkgs.cryptsetup;
 
             script =
diff --git a/nixpkgs/nixos/modules/config/system-path.nix b/nixpkgs/nixos/modules/config/system-path.nix
index aee7a041d043..1292c3008c6f 100644
--- a/nixpkgs/nixos/modules/config/system-path.nix
+++ b/nixpkgs/nixos/modules/config/system-path.nix
@@ -29,7 +29,6 @@ let
       pkgs.xz
       pkgs.less
       pkgs.libcap
-      pkgs.nano
       pkgs.ncurses
       pkgs.netcat
       config.programs.ssh.package
@@ -43,7 +42,8 @@ let
     ];
 
     defaultPackages = map (pkg: setPrio ((pkg.meta.priority or 5) + 3) pkg)
-      [ pkgs.perl
+      [ pkgs.nano
+        pkgs.perl
         pkgs.rsync
         pkgs.strace
       ];
@@ -75,13 +75,21 @@ in
         default = defaultPackages;
         example = literalExample "[]";
         description = ''
-          Set of packages users expect from a minimal linux istall.
-          Like systemPackages, they appear in
-          /run/current-system/sw.  These packages are
+          Set of default packages that aren't strictly neccessary
+          for a running system, entries can be removed for a more
+          minimal NixOS installation.
+
+          Note: If <package>pkgs.nano</package> is removed from this list,
+          make sure another editor is installed and the
+          <literal>EDITOR</literal> environment variable is set to it.
+          Environment variables can be set using
+          <option>environment.variables</option>.
+
+          Like with systemPackages, packages are installed to
+          <filename>/run/current-system/sw</filename>. They are
           automatically available to all users, and are
           automatically updated every time you rebuild the system
           configuration.
-          If you want a more minimal system, set it to an empty list.
         '';
       };
 
diff --git a/nixpkgs/nixos/modules/config/update-users-groups.pl b/nixpkgs/nixos/modules/config/update-users-groups.pl
index e8421c099454..14914b13702e 100644
--- a/nixpkgs/nixos/modules/config/update-users-groups.pl
+++ b/nixpkgs/nixos/modules/config/update-users-groups.pl
@@ -290,7 +290,7 @@ foreach my $u (values %usersOut) {
     push @shadowNew, join(":", $u->{name}, $hashedPassword, "1::::::") . "\n";
 }
 
-updateFile("/etc/shadow", \@shadowNew, 0600);
+updateFile("/etc/shadow", \@shadowNew, 0640);
 {
     my $uid = getpwnam "root";
     my $gid = getgrnam "shadow";
diff --git a/nixpkgs/nixos/modules/config/users-groups.nix b/nixpkgs/nixos/modules/config/users-groups.nix
index 5b3e9a8ceb7f..5ed1f568f499 100644
--- a/nixpkgs/nixos/modules/config/users-groups.nix
+++ b/nixpkgs/nixos/modules/config/users-groups.nix
@@ -568,7 +568,7 @@ in {
     # Install all the user shells
     environment.systemPackages = systemShells;
 
-    environment.etc = (mapAttrs' (name: { packages, ... }: {
+    environment.etc = (mapAttrs' (_: { packages, name, ... }: {
       name = "profiles/per-user/${name}";
       value.source = pkgs.buildEnv {
         name = "user-environment";
@@ -593,8 +593,8 @@ in {
         # password or an SSH authorized key. Privileged accounts are
         # root and users in the wheel group.
         assertion = !cfg.mutableUsers ->
-          any id ((mapAttrsToList (name: cfg:
-            (name == "root"
+          any id ((mapAttrsToList (_: cfg:
+            (cfg.name == "root"
              || cfg.group == "wheel"
              || elem "wheel" cfg.extraGroups)
             &&
@@ -615,16 +615,16 @@ in {
         assertion = (user.hashedPassword != null)
                     -> (builtins.match ".*:.*" user.hashedPassword == null);
         message = ''
-          The password hash of user "${name}" contains a ":" character.
+          The password hash of user "${user.name}" contains a ":" character.
           This is invalid and would break the login system because the fields
           of /etc/shadow (file where hashes are stored) are colon-separated.
-          Please check the value of option `users.users."${name}".hashedPassword`.'';
+          Please check the value of option `users.users."${user.name}".hashedPassword`.'';
       }
     );
 
     warnings =
       builtins.filter (x: x != null) (
-        flip mapAttrsToList cfg.users (name: user:
+        flip mapAttrsToList cfg.users (_: user:
         # This regex matches a subset of the Modular Crypto Format (MCF)[1]
         # informal standard. Since this depends largely on the OS or the
         # specific implementation of crypt(3) we only support the (sane)
@@ -647,9 +647,9 @@ in {
             && user.hashedPassword != ""  # login without password
             && builtins.match mcf user.hashedPassword == null)
         then ''
-          The password hash of user "${name}" may be invalid. You must set a
+          The password hash of user "${user.name}" may be invalid. You must set a
           valid hash or the user will be locked out of their account. Please
-          check the value of option `users.users."${name}".hashedPassword`.''
+          check the value of option `users.users."${user.name}".hashedPassword`.''
         else null
       ));
 
diff --git a/nixpkgs/nixos/modules/hardware/all-firmware.nix b/nixpkgs/nixos/modules/hardware/all-firmware.nix
index 8cf3e5633dc7..3e88a4c20adc 100644
--- a/nixpkgs/nixos/modules/hardware/all-firmware.nix
+++ b/nixpkgs/nixos/modules/hardware/all-firmware.nix
@@ -49,7 +49,7 @@ in {
         rt5677-firmware
         rtl8723bs-firmware
         rtl8761b-firmware
-        rtlwifi_new-firmware
+        rtw88-firmware
         zd1211fw
         alsa-firmware
         sof-firmware
diff --git a/nixpkgs/nixos/modules/hardware/ksm.nix b/nixpkgs/nixos/modules/hardware/ksm.nix
index 0938dbdc1101..829c3532c459 100644
--- a/nixpkgs/nixos/modules/hardware/ksm.nix
+++ b/nixpkgs/nixos/modules/hardware/ksm.nix
@@ -26,13 +26,13 @@ in {
     systemd.services.enable-ksm = {
       description = "Enable Kernel Same-Page Merging";
       wantedBy = [ "multi-user.target" ];
-      after = [ "systemd-udev-settle.service" ];
-      script = ''
-        if [ -e /sys/kernel/mm/ksm ]; then
+      script =
+        ''
           echo 1 > /sys/kernel/mm/ksm/run
-          ${optionalString (cfg.sleep != null) ''echo ${toString cfg.sleep} > /sys/kernel/mm/ksm/sleep_millisecs''}
-        fi
-      '';
+        '' + optionalString (cfg.sleep != null)
+        ''
+          echo ${toString cfg.sleep} > /sys/kernel/mm/ksm/sleep_millisecs
+        '';
     };
   };
 }
diff --git a/nixpkgs/nixos/modules/hardware/sata.nix b/nixpkgs/nixos/modules/hardware/sata.nix
new file mode 100644
index 000000000000..541897527a8d
--- /dev/null
+++ b/nixpkgs/nixos/modules/hardware/sata.nix
@@ -0,0 +1,100 @@
+{ config, lib, pkgs, ... }:
+let
+  inherit (lib) mkEnableOption mkIf mkOption types;
+
+  cfg = config.hardware.sata.timeout;
+
+  buildRule = d:
+    lib.concatStringsSep ", " [
+      ''ACTION=="add"''
+      ''SUBSYSTEM=="block"''
+      ''ENV{ID_${lib.toUpper d.idBy}}=="${d.name}"''
+      ''TAG+="systemd"''
+      ''ENV{SYSTEMD_WANTS}="${unitName d}"''
+    ];
+
+  devicePath = device:
+    "/dev/disk/by-${device.idBy}/${device.name}";
+
+  unitName = device:
+    "sata-timeout-${lib.strings.sanitizeDerivationName device.name}";
+
+  startScript =
+    pkgs.writeShellScript "sata-timeout.sh" ''
+      set -eEuo pipefail
+
+      device="$1"
+
+      ${pkgs.smartmontools}/bin/smartctl \
+        -l scterc,${toString cfg.deciSeconds},${toString cfg.deciSeconds} \
+        --quietmode errorsonly \
+        "$device"
+    '';
+
+in
+{
+  meta.maintainers = with lib.maintainers; [ peterhoeg ];
+
+  options.hardware.sata.timeout = {
+    enable = mkEnableOption "SATA drive timeouts";
+
+    deciSeconds = mkOption {
+      example = "70";
+      type = types.int;
+      description = ''
+        Set SCT Error Recovery Control timeout in deciseconds for use in RAID configurations.
+
+        Values are as follows:
+           0 = disable SCT ERT
+          70 = default in consumer drives (7 seconds)
+
+        Maximum is disk dependant but probably 60 seconds.
+      '';
+    };
+
+    drives = mkOption {
+      description = "List of drives for which to configure the timeout.";
+      type = types.listOf
+        (types.submodule {
+          options = {
+            name = mkOption {
+              description = "Drive name without the full path.";
+              type = types.str;
+            };
+
+            idBy = mkOption {
+              description = "The method to identify the drive.";
+              type = types.enum [ "path" "wwn" ];
+              default = "path";
+            };
+          };
+        });
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.udev.extraRules = lib.concatMapStringsSep "\n" buildRule cfg.drives;
+
+    systemd.services = lib.listToAttrs (map
+      (e:
+        lib.nameValuePair (unitName e) {
+          description = "SATA timeout for ${e.name}";
+          wantedBy = [ "sata-timeout.target" ];
+          serviceConfig = {
+            Type = "oneshot";
+            ExecStart = "${startScript} '${devicePath e}'";
+            PrivateTmp = true;
+            PrivateNetwork = true;
+            ProtectHome = "tmpfs";
+            ProtectSystem = "strict";
+          };
+        }
+      )
+      cfg.drives);
+
+    systemd.targets.sata-timeout = {
+      description = "SATA timeout";
+      wantedBy = [ "multi-user.target" ];
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/hardware/ubertooth.nix b/nixpkgs/nixos/modules/hardware/ubertooth.nix
new file mode 100644
index 000000000000..637fddfb37df
--- /dev/null
+++ b/nixpkgs/nixos/modules/hardware/ubertooth.nix
@@ -0,0 +1,29 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.hardware.ubertooth;
+
+  ubertoothPkg = pkgs.ubertooth.override {
+    udevGroup = cfg.group;
+  };
+in {
+  options.hardware.ubertooth = {
+    enable = mkEnableOption "Enable the Ubertooth software and its udev rules.";
+
+    group = mkOption {
+      type = types.str;
+      default = "ubertooth";
+      example = "wheel";
+      description = "Group for Ubertooth's udev rules.";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ ubertoothPkg ];
+
+    services.udev.packages = [ ubertoothPkg ];
+    users.groups.${cfg.group} = {};
+  };
+}
diff --git a/nixpkgs/nixos/modules/hardware/video/amdgpu.nix b/nixpkgs/nixos/modules/hardware/video/amdgpu.nix
deleted file mode 100644
index 42fc8fa362de..000000000000
--- a/nixpkgs/nixos/modules/hardware/video/amdgpu.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ config, lib, ... }:
-
-with lib;
-{
-  config = mkIf (elem "amdgpu" config.services.xserver.videoDrivers) {
-    boot.blacklistedKernelModules = [ "radeon" ];
-  };
-}
-
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64-new-kernel.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64-new-kernel.nix
index 2882fbcc7305..a669d61571fe 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64-new-kernel.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64-new-kernel.nix
@@ -1,7 +1,14 @@
-{ pkgs, ... }:
-
+{ config, ... }:
 {
-  imports = [ ./sd-image-aarch64.nix ];
-
-  boot.kernelPackages = pkgs.linuxPackages_latest;
+  imports = [
+    ../sd-card/sd-image-aarch64-new-kernel-installer.nix
+  ];
+  config = {
+    warnings = [
+      ''
+      .../cd-dvd/sd-image-aarch64-new-kernel.nix is deprecated and will eventually be removed.
+      Please switch to .../sd-card/sd-image-aarch64-new-kernel-installer.nix, instead.
+      ''
+    ];
+  };
 }
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
index e4ec2d6240d0..76c1509b8f7e 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
@@ -1,80 +1,14 @@
-# To build, use:
-# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-aarch64.nix -A config.system.build.sdImage
-{ config, lib, pkgs, ... }:
-
+{ config, ... }:
 {
   imports = [
-    ../../profiles/base.nix
-    ../../profiles/installation-device.nix
-    ./sd-image.nix
+    ../sd-card/sd-image-aarch64-installer.nix
   ];
-
-  boot.loader.grub.enable = false;
-  boot.loader.generic-extlinux-compatible.enable = true;
-
-  boot.consoleLogLevel = lib.mkDefault 7;
-
-  # The serial ports listed here are:
-  # - ttyS0: for Tegra (Jetson TX1)
-  # - ttyAMA0: for QEMU's -machine virt
-  boot.kernelParams = ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"];
-
-  boot.initrd.availableKernelModules = [
-    # Allows early (earlier) modesetting for the Raspberry Pi
-    "vc4" "bcm2835_dma" "i2c_bcm2835"
-    # Allows early (earlier) modesetting for Allwinner SoCs
-    "sun4i_drm" "sun8i_drm_hdmi" "sun8i_mixer"
-  ];
-
-  sdImage = {
-    populateFirmwareCommands = let
-      configTxt = pkgs.writeText "config.txt" ''
-        [pi3]
-        kernel=u-boot-rpi3.bin
-
-        [pi4]
-        kernel=u-boot-rpi4.bin
-        enable_gic=1
-        armstub=armstub8-gic.bin
-
-        # Otherwise the resolution will be weird in most cases, compared to
-        # what the pi3 firmware does by default.
-        disable_overscan=1
-
-        [all]
-        # Boot in 64-bit mode.
-        arm_64bit=1
-
-        # U-Boot needs this to work, regardless of whether UART is actually used or not.
-        # Look in arch/arm/mach-bcm283x/Kconfig in the U-Boot tree to see if this is still
-        # a requirement in the future.
-        enable_uart=1
-
-        # Prevent the firmware from smashing the framebuffer setup done by the mainline kernel
-        # when attempting to show low-voltage or overtemperature warnings.
-        avoid_warnings=1
-      '';
-      in ''
-        (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/)
-
-        # Add the config
-        cp ${configTxt} firmware/config.txt
-
-        # Add pi3 specific files
-        cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin
-
-        # Add pi4 specific files
-        cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin
-        cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin
-        cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/
-      '';
-    populateRootCommands = ''
-      mkdir -p ./files/boot
-      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
-    '';
+  config = {
+    warnings = [
+      ''
+      .../cd-dvd/sd-image-aarch64.nix is deprecated and will eventually be removed.
+      Please switch to .../sd-card/sd-image-aarch64-installer.nix, instead.
+      ''
+    ];
   };
-
-  # the installation media is also the installation target,
-  # so we don't want to provide the installation configuration.nix.
-  installer.cloneConfig = false;
 }
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix
index d2ba611532e0..6ee0eb9e9b8d 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix
@@ -1,57 +1,14 @@
-# To build, use:
-# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix -A config.system.build.sdImage
-{ config, lib, pkgs, ... }:
-
+{ config, ... }:
 {
   imports = [
-    ../../profiles/base.nix
-    ../../profiles/installation-device.nix
-    ./sd-image.nix
+    ../sd-card/sd-image-armv7l-multiplatform-installer.nix
   ];
-
-  boot.loader.grub.enable = false;
-  boot.loader.generic-extlinux-compatible.enable = true;
-
-  boot.consoleLogLevel = lib.mkDefault 7;
-  boot.kernelPackages = pkgs.linuxPackages_latest;
-  # The serial ports listed here are:
-  # - ttyS0: for Tegra (Jetson TK1)
-  # - ttymxc0: for i.MX6 (Wandboard)
-  # - ttyAMA0: for Allwinner (pcDuino3 Nano) and QEMU's -machine virt
-  # - ttyO0: for OMAP (BeagleBone Black)
-  # - ttySAC2: for Exynos (ODROID-XU3)
-  boot.kernelParams = ["console=ttyS0,115200n8" "console=ttymxc0,115200n8" "console=ttyAMA0,115200n8" "console=ttyO0,115200n8" "console=ttySAC2,115200n8" "console=tty0"];
-
-  sdImage = {
-    populateFirmwareCommands = let
-      configTxt = pkgs.writeText "config.txt" ''
-        # Prevent the firmware from smashing the framebuffer setup done by the mainline kernel
-        # when attempting to show low-voltage or overtemperature warnings.
-        avoid_warnings=1
-
-        [pi2]
-        kernel=u-boot-rpi2.bin
-
-        [pi3]
-        kernel=u-boot-rpi3.bin
-
-        # U-Boot used to need this to work, regardless of whether UART is actually used or not.
-        # TODO: check when/if this can be removed.
-        enable_uart=1
-      '';
-      in ''
-        (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/)
-        cp ${pkgs.ubootRaspberryPi2}/u-boot.bin firmware/u-boot-rpi2.bin
-        cp ${pkgs.ubootRaspberryPi3_32bit}/u-boot.bin firmware/u-boot-rpi3.bin
-        cp ${configTxt} firmware/config.txt
-      '';
-    populateRootCommands = ''
-      mkdir -p ./files/boot
-      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
-    '';
+  config = {
+    warnings = [
+      ''
+      .../cd-dvd/sd-image-armv7l-multiplatform.nix is deprecated and will eventually be removed.
+      Please switch to .../sd-card/sd-image-armv7l-multiplatform-installer.nix, instead.
+      ''
+    ];
   };
-
-  # the installation media is also the installation target,
-  # so we don't want to provide the installation configuration.nix.
-  installer.cloneConfig = false;
 }
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
index 40a01f961771..747440ba9c61 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
@@ -1,46 +1,14 @@
-# To build, use:
-# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix -A config.system.build.sdImage
-{ config, lib, pkgs, ... }:
-
+{ config, ... }:
 {
   imports = [
-    ../../profiles/base.nix
-    ../../profiles/installation-device.nix
-    ./sd-image.nix
+    ../sd-card/sd-image-raspberrypi-installer.nix
   ];
-
-  boot.loader.grub.enable = false;
-  boot.loader.generic-extlinux-compatible.enable = true;
-
-  boot.consoleLogLevel = lib.mkDefault 7;
-  boot.kernelPackages = pkgs.linuxPackages_rpi1;
-
-  sdImage = {
-    populateFirmwareCommands = let
-      configTxt = pkgs.writeText "config.txt" ''
-        # Prevent the firmware from smashing the framebuffer setup done by the mainline kernel
-        # when attempting to show low-voltage or overtemperature warnings.
-        avoid_warnings=1
-
-        [pi0]
-        kernel=u-boot-rpi0.bin
-
-        [pi1]
-        kernel=u-boot-rpi1.bin
-      '';
-      in ''
-        (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/)
-        cp ${pkgs.ubootRaspberryPiZero}/u-boot.bin firmware/u-boot-rpi0.bin
-        cp ${pkgs.ubootRaspberryPi}/u-boot.bin firmware/u-boot-rpi1.bin
-        cp ${configTxt} firmware/config.txt
-      '';
-    populateRootCommands = ''
-      mkdir -p ./files/boot
-      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
-    '';
+  config = {
+    warnings = [
+      ''
+      .../cd-dvd/sd-image-raspberrypi.nix is deprecated and will eventually be removed.
+      Please switch to .../sd-card/sd-image-raspberrypi-installer.nix, instead.
+      ''
+    ];
   };
-
-  # the installation media is also the installation target,
-  # so we don't want to provide the installation configuration.nix.
-  installer.cloneConfig = false;
 }
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
index 5bdec7de86e8..79db1fa29bc4 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
@@ -1,8 +1,14 @@
-# To build, use:
-# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix -A config.system.build.sdImage
-{ config, lib, pkgs, ... }:
-
+{ config, ... }:
 {
-  imports = [ ./sd-image-aarch64.nix ];
-  boot.kernelPackages = pkgs.linuxPackages_rpi4;
+  imports = [
+    ../sd-card/sd-image-raspberrypi4-installer.nix
+  ];
+  config = {
+    warnings = [
+      ''
+      .../cd-dvd/sd-image-raspberrypi4.nix is deprecated and will eventually be removed.
+      Please switch to .../sd-card/sd-image-raspberrypi4-installer.nix, instead.
+      ''
+    ];
+  };
 }
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image.nix
index b811ae07eb03..e2d6dcb3fe3a 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image.nix
@@ -1,245 +1,14 @@
-# This module creates a bootable SD card image containing the given NixOS
-# configuration. The generated image is MBR partitioned, with a FAT
-# /boot/firmware partition, and ext4 root partition. The generated image
-# is sized to fit its contents, and a boot script automatically resizes
-# the root partition to fit the device on the first boot.
-#
-# The firmware partition is built with expectation to hold the Raspberry
-# Pi firmware and bootloader, and be removed and replaced with a firmware
-# build for the target SoC for other board families.
-#
-# The derivation for the SD image will be placed in
-# config.system.build.sdImage
-
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  rootfsImage = pkgs.callPackage ../../../lib/make-ext4-fs.nix ({
-    inherit (config.sdImage) storePaths;
-    compressImage = true;
-    populateImageCommands = config.sdImage.populateRootCommands;
-    volumeLabel = "NIXOS_SD";
-  } // optionalAttrs (config.sdImage.rootPartitionUUID != null) {
-    uuid = config.sdImage.rootPartitionUUID;
-  });
-in
+{ config, ... }:
 {
   imports = [
-    (mkRemovedOptionModule [ "sdImage" "bootPartitionID" ] "The FAT partition for SD image now only holds the Raspberry Pi firmware files. Use firmwarePartitionID to configure that partition's ID.")
-    (mkRemovedOptionModule [ "sdImage" "bootSize" ] "The boot files for SD image have been moved to the main ext4 partition. The FAT partition now only holds the Raspberry Pi firmware files. Changing its size may not be required.")
+    ../sd-card/sd-image.nix
   ];
-
-  options.sdImage = {
-    imageName = mkOption {
-      default = "${config.sdImage.imageBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.img";
-      description = ''
-        Name of the generated image file.
-      '';
-    };
-
-    imageBaseName = mkOption {
-      default = "nixos-sd-image";
-      description = ''
-        Prefix of the name of the generated image file.
-      '';
-    };
-
-    storePaths = mkOption {
-      type = with types; listOf package;
-      example = literalExample "[ pkgs.stdenv ]";
-      description = ''
-        Derivations to be included in the Nix store in the generated SD image.
-      '';
-    };
-
-    firmwarePartitionID = mkOption {
-      type = types.str;
-      default = "0x2178694e";
-      description = ''
-        Volume ID for the /boot/firmware partition on the SD card. This value
-        must be a 32-bit hexadecimal number.
-      '';
-    };
-
-    firmwarePartitionName = mkOption {
-      type = types.str;
-      default = "FIRMWARE";
-      description = ''
-        Name of the filesystem which holds the boot firmware.
-      '';
-    };
-
-    rootPartitionUUID = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      example = "14e19a7b-0ae0-484d-9d54-43bd6fdc20c7";
-      description = ''
-        UUID for the filesystem on the main NixOS partition on the SD card.
-      '';
-    };
-
-    firmwareSize = mkOption {
-      type = types.int;
-      # As of 2019-08-18 the Raspberry pi firmware + u-boot takes ~18MiB
-      default = 30;
-      description = ''
-        Size of the /boot/firmware partition, in megabytes.
-      '';
-    };
-
-    populateFirmwareCommands = mkOption {
-      example = literalExample "'' cp \${pkgs.myBootLoader}/u-boot.bin firmware/ ''";
-      description = ''
-        Shell commands to populate the ./firmware directory.
-        All files in that directory are copied to the
-        /boot/firmware partition on the SD image.
-      '';
-    };
-
-    populateRootCommands = mkOption {
-      example = literalExample "''\${config.boot.loader.generic-extlinux-compatible.populateCmd} -c \${config.system.build.toplevel} -d ./files/boot''";
-      description = ''
-        Shell commands to populate the ./files directory.
-        All files in that directory are copied to the
-        root (/) partition on the SD image. Use this to
-        populate the ./files/boot (/boot) directory.
-      '';
-    };
-
-    postBuildCommands = mkOption {
-      example = literalExample "'' dd if=\${pkgs.myBootLoader}/SPL of=$img bs=1024 seek=1 conv=notrunc ''";
-      default = "";
-      description = ''
-        Shell commands to run after the image is built.
-        Can be used for boards requiring to dd u-boot SPL before actual partitions.
-      '';
-    };
-
-    compressImage = mkOption {
-      type = types.bool;
-      default = true;
-      description = ''
-        Whether the SD image should be compressed using
-        <command>zstd</command>.
-      '';
-    };
-
-  };
-
   config = {
-    fileSystems = {
-      "/boot/firmware" = {
-        device = "/dev/disk/by-label/${config.sdImage.firmwarePartitionName}";
-        fsType = "vfat";
-        # Alternatively, this could be removed from the configuration.
-        # The filesystem is not needed at runtime, it could be treated
-        # as an opaque blob instead of a discrete FAT32 filesystem.
-        options = [ "nofail" "noauto" ];
-      };
-      "/" = {
-        device = "/dev/disk/by-label/NIXOS_SD";
-        fsType = "ext4";
-      };
-    };
-
-    sdImage.storePaths = [ config.system.build.toplevel ];
-
-    system.build.sdImage = pkgs.callPackage ({ stdenv, dosfstools, e2fsprogs,
-    mtools, libfaketime, util-linux, zstd }: stdenv.mkDerivation {
-      name = config.sdImage.imageName;
-
-      nativeBuildInputs = [ dosfstools e2fsprogs mtools libfaketime util-linux zstd ];
-
-      inherit (config.sdImage) compressImage;
-
-      buildCommand = ''
-        mkdir -p $out/nix-support $out/sd-image
-        export img=$out/sd-image/${config.sdImage.imageName}
-
-        echo "${pkgs.stdenv.buildPlatform.system}" > $out/nix-support/system
-        if test -n "$compressImage"; then
-          echo "file sd-image $img.zst" >> $out/nix-support/hydra-build-products
-        else
-          echo "file sd-image $img" >> $out/nix-support/hydra-build-products
-        fi
-
-        echo "Decompressing rootfs image"
-        zstd -d --no-progress "${rootfsImage}" -o ./root-fs.img
-
-        # Gap in front of the first partition, in MiB
-        gap=8
-
-        # Create the image file sized to fit /boot/firmware and /, plus slack for the gap.
-        rootSizeBlocks=$(du -B 512 --apparent-size ./root-fs.img | awk '{ print $1 }')
-        firmwareSizeBlocks=$((${toString config.sdImage.firmwareSize} * 1024 * 1024 / 512))
-        imageSize=$((rootSizeBlocks * 512 + firmwareSizeBlocks * 512 + gap * 1024 * 1024))
-        truncate -s $imageSize $img
-
-        # type=b is 'W95 FAT32', type=83 is 'Linux'.
-        # The "bootable" partition is where u-boot will look file for the bootloader
-        # information (dtbs, extlinux.conf file).
-        sfdisk $img <<EOF
-            label: dos
-            label-id: ${config.sdImage.firmwarePartitionID}
-
-            start=''${gap}M, size=$firmwareSizeBlocks, type=b
-            start=$((gap + ${toString config.sdImage.firmwareSize}))M, type=83, bootable
-        EOF
-
-        # Copy the rootfs into the SD image
-        eval $(partx $img -o START,SECTORS --nr 2 --pairs)
-        dd conv=notrunc if=./root-fs.img of=$img seek=$START count=$SECTORS
-
-        # Create a FAT32 /boot/firmware partition of suitable size into firmware_part.img
-        eval $(partx $img -o START,SECTORS --nr 1 --pairs)
-        truncate -s $((SECTORS * 512)) firmware_part.img
-        faketime "1970-01-01 00:00:00" mkfs.vfat -i ${config.sdImage.firmwarePartitionID} -n ${config.sdImage.firmwarePartitionName} firmware_part.img
-
-        # Populate the files intended for /boot/firmware
-        mkdir firmware
-        ${config.sdImage.populateFirmwareCommands}
-
-        # Copy the populated /boot/firmware into the SD image
-        (cd firmware; mcopy -psvm -i ../firmware_part.img ./* ::)
-        # Verify the FAT partition before copying it.
-        fsck.vfat -vn firmware_part.img
-        dd conv=notrunc if=firmware_part.img of=$img seek=$START count=$SECTORS
-
-        ${config.sdImage.postBuildCommands}
-
-        if test -n "$compressImage"; then
-            zstd -T$NIX_BUILD_CORES --rm $img
-        fi
-      '';
-    }) {};
-
-    boot.postBootCommands = ''
-      # On the first boot do some maintenance tasks
-      if [ -f /nix-path-registration ]; then
-        set -euo pipefail
-        set -x
-        # Figure out device names for the boot device and root filesystem.
-        rootPart=$(${pkgs.util-linux}/bin/findmnt -n -o SOURCE /)
-        bootDevice=$(lsblk -npo PKNAME $rootPart)
-        partNum=$(lsblk -npo MAJ:MIN $rootPart | ${pkgs.gawk}/bin/awk -F: '{print $2}')
-
-        # Resize the root partition and the filesystem to fit the disk
-        echo ",+," | sfdisk -N$partNum --no-reread $bootDevice
-        ${pkgs.parted}/bin/partprobe
-        ${pkgs.e2fsprogs}/bin/resize2fs $rootPart
-
-        # Register the contents of the initial Nix store
-        ${config.nix.package.out}/bin/nix-store --load-db < /nix-path-registration
-
-        # nixos-rebuild also requires a "system" profile and an /etc/NIXOS tag.
-        touch /etc/NIXOS
-        ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
-
-        # Prevents this from running on later boots.
-        rm -f /nix-path-registration
-      fi
-    '';
+    warnings = [
+      ''
+      .../cd-dvd/sd-image.nix is deprecated and will eventually be removed.
+      Please switch to .../sd-card/sd-image.nix, instead.
+      ''
+    ];
   };
 }
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix b/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix
index 8159576a62ac..123f487baf93 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix
@@ -26,7 +26,7 @@ let
   # A clue for the kernel loading
   kernelParams = pkgs.writeText "kernel-params.txt" ''
     Kernel Parameters:
-      init=/boot/init systemConfig=/boot/init ${toString config.boot.kernelParams}
+      init=/boot/init ${toString config.boot.kernelParams}
   '';
 
   # System wide nixpkgs config
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-pc.nix b/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-pc.nix
index f2af7dcde3d5..a79209d7dfef 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-pc.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-pc.nix
@@ -23,13 +23,13 @@ let
     label nixos
       MENU LABEL ^NixOS using nfsroot
       KERNEL bzImage
-      append ip=dhcp nfsroot=/home/pcroot systemConfig=${config.system.build.toplevel} init=${config.system.build.toplevel}/init rw
+      append ip=dhcp nfsroot=/home/pcroot init=${config.system.build.toplevel}/init rw
 
     # I don't know how to make this boot with nfsroot (using the initrd)
     label nixos_initrd
       MENU LABEL NixOS booting the poor ^initrd.
       KERNEL bzImage
-      append initrd=initrd ip=dhcp nfsroot=/home/pcroot systemConfig=${config.system.build.toplevel} init=${config.system.build.toplevel}/init rw
+      append initrd=initrd ip=dhcp nfsroot=/home/pcroot init=${config.system.build.toplevel}/init rw
 
     label memtest
       MENU LABEL ^${pkgs.memtest86.name}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-installer.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-installer.nix
new file mode 100644
index 000000000000..2a6b6abdf913
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-installer.nix
@@ -0,0 +1,10 @@
+{
+  imports = [
+    ../../profiles/installation-device.nix
+    ./sd-image-aarch64.nix
+  ];
+
+  # the installation media is also the installation target,
+  # so we don't want to provide the installation configuration.nix.
+  installer.cloneConfig = false;
+}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel-installer.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel-installer.nix
new file mode 100644
index 000000000000..1b6b55ff2918
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel-installer.nix
@@ -0,0 +1,10 @@
+{
+  imports = [
+    ../../profiles/installation-device.nix
+    ./sd-image-aarch64-new-kernel.nix
+  ];
+
+  # the installation media is also the installation target,
+  # so we don't want to provide the installation configuration.nix.
+  installer.cloneConfig = false;
+}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel.nix
new file mode 100644
index 000000000000..2882fbcc7305
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }:
+
+{
+  imports = [ ./sd-image-aarch64.nix ];
+
+  boot.kernelPackages = pkgs.linuxPackages_latest;
+}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64.nix
new file mode 100644
index 000000000000..96ebb7537da3
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64.nix
@@ -0,0 +1,75 @@
+# To build, use:
+# nix-build nixos -I nixos-config=nixos/modules/installer/sd-card/sd-image-aarch64.nix -A config.system.build.sdImage
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../../profiles/base.nix
+    ./sd-image.nix
+  ];
+
+  boot.loader.grub.enable = false;
+  boot.loader.generic-extlinux-compatible.enable = true;
+
+  boot.consoleLogLevel = lib.mkDefault 7;
+
+  # The serial ports listed here are:
+  # - ttyS0: for Tegra (Jetson TX1)
+  # - ttyAMA0: for QEMU's -machine virt
+  boot.kernelParams = ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"];
+
+  boot.initrd.availableKernelModules = [
+    # Allows early (earlier) modesetting for the Raspberry Pi
+    "vc4" "bcm2835_dma" "i2c_bcm2835"
+    # Allows early (earlier) modesetting for Allwinner SoCs
+    "sun4i_drm" "sun8i_drm_hdmi" "sun8i_mixer"
+  ];
+
+  sdImage = {
+    populateFirmwareCommands = let
+      configTxt = pkgs.writeText "config.txt" ''
+        [pi3]
+        kernel=u-boot-rpi3.bin
+
+        [pi4]
+        kernel=u-boot-rpi4.bin
+        enable_gic=1
+        armstub=armstub8-gic.bin
+
+        # Otherwise the resolution will be weird in most cases, compared to
+        # what the pi3 firmware does by default.
+        disable_overscan=1
+
+        [all]
+        # Boot in 64-bit mode.
+        arm_64bit=1
+
+        # U-Boot needs this to work, regardless of whether UART is actually used or not.
+        # Look in arch/arm/mach-bcm283x/Kconfig in the U-Boot tree to see if this is still
+        # a requirement in the future.
+        enable_uart=1
+
+        # Prevent the firmware from smashing the framebuffer setup done by the mainline kernel
+        # when attempting to show low-voltage or overtemperature warnings.
+        avoid_warnings=1
+      '';
+      in ''
+        (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/)
+
+        # Add the config
+        cp ${configTxt} firmware/config.txt
+
+        # Add pi3 specific files
+        cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin
+
+        # Add pi4 specific files
+        cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin
+        cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin
+        cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/
+      '';
+    populateRootCommands = ''
+      mkdir -p ./files/boot
+      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
+    '';
+  };
+}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-armv7l-multiplatform-installer.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-armv7l-multiplatform-installer.nix
new file mode 100644
index 000000000000..fbe04377d50d
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-armv7l-multiplatform-installer.nix
@@ -0,0 +1,10 @@
+{
+  imports = [
+    ../../profiles/installation-device.nix
+    ./sd-image-armv7l-multiplatform.nix
+  ];
+
+  # the installation media is also the installation target,
+  # so we don't want to provide the installation configuration.nix.
+  installer.cloneConfig = false;
+}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-armv7l-multiplatform.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-armv7l-multiplatform.nix
new file mode 100644
index 000000000000..23ed92851296
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-armv7l-multiplatform.nix
@@ -0,0 +1,52 @@
+# To build, use:
+# nix-build nixos -I nixos-config=nixos/modules/installer/sd-card/sd-image-armv7l-multiplatform.nix -A config.system.build.sdImage
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../../profiles/base.nix
+    ./sd-image.nix
+  ];
+
+  boot.loader.grub.enable = false;
+  boot.loader.generic-extlinux-compatible.enable = true;
+
+  boot.consoleLogLevel = lib.mkDefault 7;
+  boot.kernelPackages = pkgs.linuxPackages_latest;
+  # The serial ports listed here are:
+  # - ttyS0: for Tegra (Jetson TK1)
+  # - ttymxc0: for i.MX6 (Wandboard)
+  # - ttyAMA0: for Allwinner (pcDuino3 Nano) and QEMU's -machine virt
+  # - ttyO0: for OMAP (BeagleBone Black)
+  # - ttySAC2: for Exynos (ODROID-XU3)
+  boot.kernelParams = ["console=ttyS0,115200n8" "console=ttymxc0,115200n8" "console=ttyAMA0,115200n8" "console=ttyO0,115200n8" "console=ttySAC2,115200n8" "console=tty0"];
+
+  sdImage = {
+    populateFirmwareCommands = let
+      configTxt = pkgs.writeText "config.txt" ''
+        # Prevent the firmware from smashing the framebuffer setup done by the mainline kernel
+        # when attempting to show low-voltage or overtemperature warnings.
+        avoid_warnings=1
+
+        [pi2]
+        kernel=u-boot-rpi2.bin
+
+        [pi3]
+        kernel=u-boot-rpi3.bin
+
+        # U-Boot used to need this to work, regardless of whether UART is actually used or not.
+        # TODO: check when/if this can be removed.
+        enable_uart=1
+      '';
+      in ''
+        (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/)
+        cp ${pkgs.ubootRaspberryPi2}/u-boot.bin firmware/u-boot-rpi2.bin
+        cp ${pkgs.ubootRaspberryPi3_32bit}/u-boot.bin firmware/u-boot-rpi3.bin
+        cp ${configTxt} firmware/config.txt
+      '';
+    populateRootCommands = ''
+      mkdir -p ./files/boot
+      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
+    '';
+  };
+}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi-installer.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi-installer.nix
new file mode 100644
index 000000000000..72ec7485b528
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi-installer.nix
@@ -0,0 +1,10 @@
+{
+  imports = [
+    ../../profiles/installation-device.nix
+    ./sd-image-raspberrypi.nix
+  ];
+
+  # the installation media is also the installation target,
+  # so we don't want to provide the installation configuration.nix.
+  installer.cloneConfig = false;
+}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi.nix
new file mode 100644
index 000000000000..83850f4c1158
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi.nix
@@ -0,0 +1,41 @@
+# To build, use:
+# nix-build nixos -I nixos-config=nixos/modules/installer/sd-card/sd-image-raspberrypi.nix -A config.system.build.sdImage
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../../profiles/base.nix
+    ./sd-image.nix
+  ];
+
+  boot.loader.grub.enable = false;
+  boot.loader.generic-extlinux-compatible.enable = true;
+
+  boot.consoleLogLevel = lib.mkDefault 7;
+  boot.kernelPackages = pkgs.linuxPackages_rpi1;
+
+  sdImage = {
+    populateFirmwareCommands = let
+      configTxt = pkgs.writeText "config.txt" ''
+        # Prevent the firmware from smashing the framebuffer setup done by the mainline kernel
+        # when attempting to show low-voltage or overtemperature warnings.
+        avoid_warnings=1
+
+        [pi0]
+        kernel=u-boot-rpi0.bin
+
+        [pi1]
+        kernel=u-boot-rpi1.bin
+      '';
+      in ''
+        (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/)
+        cp ${pkgs.ubootRaspberryPiZero}/u-boot.bin firmware/u-boot-rpi0.bin
+        cp ${pkgs.ubootRaspberryPi}/u-boot.bin firmware/u-boot-rpi1.bin
+        cp ${configTxt} firmware/config.txt
+      '';
+    populateRootCommands = ''
+      mkdir -p ./files/boot
+      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
+    '';
+  };
+}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4-installer.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4-installer.nix
new file mode 100644
index 000000000000..59423e40b64c
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4-installer.nix
@@ -0,0 +1,10 @@
+{
+  imports = [
+    ../../profiles/installation-device.nix
+    ./sd-image-raspberrypi4.nix
+  ];
+
+  # the installation media is also the installation target,
+  # so we don't want to provide the installation configuration.nix.
+  installer.cloneConfig = false;
+}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4.nix
new file mode 100644
index 000000000000..35a12c5382f7
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4.nix
@@ -0,0 +1,8 @@
+# To build, use:
+# nix-build nixos -I nixos-config=nixos/modules/installer/sd-card/sd-image-raspberrypi4.nix -A config.system.build.sdImage
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [ ./sd-image-aarch64.nix ];
+  boot.kernelPackages = pkgs.linuxPackages_rpi4;
+}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix
new file mode 100644
index 000000000000..b811ae07eb03
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix
@@ -0,0 +1,245 @@
+# This module creates a bootable SD card image containing the given NixOS
+# configuration. The generated image is MBR partitioned, with a FAT
+# /boot/firmware partition, and ext4 root partition. The generated image
+# is sized to fit its contents, and a boot script automatically resizes
+# the root partition to fit the device on the first boot.
+#
+# The firmware partition is built with expectation to hold the Raspberry
+# Pi firmware and bootloader, and be removed and replaced with a firmware
+# build for the target SoC for other board families.
+#
+# The derivation for the SD image will be placed in
+# config.system.build.sdImage
+
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  rootfsImage = pkgs.callPackage ../../../lib/make-ext4-fs.nix ({
+    inherit (config.sdImage) storePaths;
+    compressImage = true;
+    populateImageCommands = config.sdImage.populateRootCommands;
+    volumeLabel = "NIXOS_SD";
+  } // optionalAttrs (config.sdImage.rootPartitionUUID != null) {
+    uuid = config.sdImage.rootPartitionUUID;
+  });
+in
+{
+  imports = [
+    (mkRemovedOptionModule [ "sdImage" "bootPartitionID" ] "The FAT partition for SD image now only holds the Raspberry Pi firmware files. Use firmwarePartitionID to configure that partition's ID.")
+    (mkRemovedOptionModule [ "sdImage" "bootSize" ] "The boot files for SD image have been moved to the main ext4 partition. The FAT partition now only holds the Raspberry Pi firmware files. Changing its size may not be required.")
+  ];
+
+  options.sdImage = {
+    imageName = mkOption {
+      default = "${config.sdImage.imageBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.img";
+      description = ''
+        Name of the generated image file.
+      '';
+    };
+
+    imageBaseName = mkOption {
+      default = "nixos-sd-image";
+      description = ''
+        Prefix of the name of the generated image file.
+      '';
+    };
+
+    storePaths = mkOption {
+      type = with types; listOf package;
+      example = literalExample "[ pkgs.stdenv ]";
+      description = ''
+        Derivations to be included in the Nix store in the generated SD image.
+      '';
+    };
+
+    firmwarePartitionID = mkOption {
+      type = types.str;
+      default = "0x2178694e";
+      description = ''
+        Volume ID for the /boot/firmware partition on the SD card. This value
+        must be a 32-bit hexadecimal number.
+      '';
+    };
+
+    firmwarePartitionName = mkOption {
+      type = types.str;
+      default = "FIRMWARE";
+      description = ''
+        Name of the filesystem which holds the boot firmware.
+      '';
+    };
+
+    rootPartitionUUID = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "14e19a7b-0ae0-484d-9d54-43bd6fdc20c7";
+      description = ''
+        UUID for the filesystem on the main NixOS partition on the SD card.
+      '';
+    };
+
+    firmwareSize = mkOption {
+      type = types.int;
+      # As of 2019-08-18 the Raspberry pi firmware + u-boot takes ~18MiB
+      default = 30;
+      description = ''
+        Size of the /boot/firmware partition, in megabytes.
+      '';
+    };
+
+    populateFirmwareCommands = mkOption {
+      example = literalExample "'' cp \${pkgs.myBootLoader}/u-boot.bin firmware/ ''";
+      description = ''
+        Shell commands to populate the ./firmware directory.
+        All files in that directory are copied to the
+        /boot/firmware partition on the SD image.
+      '';
+    };
+
+    populateRootCommands = mkOption {
+      example = literalExample "''\${config.boot.loader.generic-extlinux-compatible.populateCmd} -c \${config.system.build.toplevel} -d ./files/boot''";
+      description = ''
+        Shell commands to populate the ./files directory.
+        All files in that directory are copied to the
+        root (/) partition on the SD image. Use this to
+        populate the ./files/boot (/boot) directory.
+      '';
+    };
+
+    postBuildCommands = mkOption {
+      example = literalExample "'' dd if=\${pkgs.myBootLoader}/SPL of=$img bs=1024 seek=1 conv=notrunc ''";
+      default = "";
+      description = ''
+        Shell commands to run after the image is built.
+        Can be used for boards requiring to dd u-boot SPL before actual partitions.
+      '';
+    };
+
+    compressImage = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Whether the SD image should be compressed using
+        <command>zstd</command>.
+      '';
+    };
+
+  };
+
+  config = {
+    fileSystems = {
+      "/boot/firmware" = {
+        device = "/dev/disk/by-label/${config.sdImage.firmwarePartitionName}";
+        fsType = "vfat";
+        # Alternatively, this could be removed from the configuration.
+        # The filesystem is not needed at runtime, it could be treated
+        # as an opaque blob instead of a discrete FAT32 filesystem.
+        options = [ "nofail" "noauto" ];
+      };
+      "/" = {
+        device = "/dev/disk/by-label/NIXOS_SD";
+        fsType = "ext4";
+      };
+    };
+
+    sdImage.storePaths = [ config.system.build.toplevel ];
+
+    system.build.sdImage = pkgs.callPackage ({ stdenv, dosfstools, e2fsprogs,
+    mtools, libfaketime, util-linux, zstd }: stdenv.mkDerivation {
+      name = config.sdImage.imageName;
+
+      nativeBuildInputs = [ dosfstools e2fsprogs mtools libfaketime util-linux zstd ];
+
+      inherit (config.sdImage) compressImage;
+
+      buildCommand = ''
+        mkdir -p $out/nix-support $out/sd-image
+        export img=$out/sd-image/${config.sdImage.imageName}
+
+        echo "${pkgs.stdenv.buildPlatform.system}" > $out/nix-support/system
+        if test -n "$compressImage"; then
+          echo "file sd-image $img.zst" >> $out/nix-support/hydra-build-products
+        else
+          echo "file sd-image $img" >> $out/nix-support/hydra-build-products
+        fi
+
+        echo "Decompressing rootfs image"
+        zstd -d --no-progress "${rootfsImage}" -o ./root-fs.img
+
+        # Gap in front of the first partition, in MiB
+        gap=8
+
+        # Create the image file sized to fit /boot/firmware and /, plus slack for the gap.
+        rootSizeBlocks=$(du -B 512 --apparent-size ./root-fs.img | awk '{ print $1 }')
+        firmwareSizeBlocks=$((${toString config.sdImage.firmwareSize} * 1024 * 1024 / 512))
+        imageSize=$((rootSizeBlocks * 512 + firmwareSizeBlocks * 512 + gap * 1024 * 1024))
+        truncate -s $imageSize $img
+
+        # type=b is 'W95 FAT32', type=83 is 'Linux'.
+        # The "bootable" partition is where u-boot will look file for the bootloader
+        # information (dtbs, extlinux.conf file).
+        sfdisk $img <<EOF
+            label: dos
+            label-id: ${config.sdImage.firmwarePartitionID}
+
+            start=''${gap}M, size=$firmwareSizeBlocks, type=b
+            start=$((gap + ${toString config.sdImage.firmwareSize}))M, type=83, bootable
+        EOF
+
+        # Copy the rootfs into the SD image
+        eval $(partx $img -o START,SECTORS --nr 2 --pairs)
+        dd conv=notrunc if=./root-fs.img of=$img seek=$START count=$SECTORS
+
+        # Create a FAT32 /boot/firmware partition of suitable size into firmware_part.img
+        eval $(partx $img -o START,SECTORS --nr 1 --pairs)
+        truncate -s $((SECTORS * 512)) firmware_part.img
+        faketime "1970-01-01 00:00:00" mkfs.vfat -i ${config.sdImage.firmwarePartitionID} -n ${config.sdImage.firmwarePartitionName} firmware_part.img
+
+        # Populate the files intended for /boot/firmware
+        mkdir firmware
+        ${config.sdImage.populateFirmwareCommands}
+
+        # Copy the populated /boot/firmware into the SD image
+        (cd firmware; mcopy -psvm -i ../firmware_part.img ./* ::)
+        # Verify the FAT partition before copying it.
+        fsck.vfat -vn firmware_part.img
+        dd conv=notrunc if=firmware_part.img of=$img seek=$START count=$SECTORS
+
+        ${config.sdImage.postBuildCommands}
+
+        if test -n "$compressImage"; then
+            zstd -T$NIX_BUILD_CORES --rm $img
+        fi
+      '';
+    }) {};
+
+    boot.postBootCommands = ''
+      # On the first boot do some maintenance tasks
+      if [ -f /nix-path-registration ]; then
+        set -euo pipefail
+        set -x
+        # Figure out device names for the boot device and root filesystem.
+        rootPart=$(${pkgs.util-linux}/bin/findmnt -n -o SOURCE /)
+        bootDevice=$(lsblk -npo PKNAME $rootPart)
+        partNum=$(lsblk -npo MAJ:MIN $rootPart | ${pkgs.gawk}/bin/awk -F: '{print $2}')
+
+        # Resize the root partition and the filesystem to fit the disk
+        echo ",+," | sfdisk -N$partNum --no-reread $bootDevice
+        ${pkgs.parted}/bin/partprobe
+        ${pkgs.e2fsprogs}/bin/resize2fs $rootPart
+
+        # Register the contents of the initial Nix store
+        ${config.nix.package.out}/bin/nix-store --load-db < /nix-path-registration
+
+        # nixos-rebuild also requires a "system" profile and an /etc/NIXOS tag.
+        touch /etc/NIXOS
+        ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
+
+        # Prevents this from running on later boots.
+        rm -f /nix-path-registration
+      fi
+    '';
+  };
+}
diff --git a/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl b/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl
index 6e3ddb875e1b..7bc55e67134b 100644
--- a/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -585,6 +585,22 @@ EOF
     return $config;
 }
 
+sub generateXserverConfig {
+    my $xserverEnabled = "@xserverEnabled@";
+
+    my $config = "";
+    if ($xserverEnabled eq "1") {
+        $config = <<EOF;
+  # Enable the X11 windowing system.
+  services.xserver.enable = true;
+EOF
+    } else {
+        $config = <<EOF;
+  # Enable the X11 windowing system.
+  # services.xserver.enable = true;
+EOF
+    }
+}
 
 if ($showHardwareConfig) {
     print STDOUT $hwConfig;
@@ -630,6 +646,8 @@ EOF
 
         my $networkingDhcpConfig = generateNetworkingDhcpConfig();
 
+        my $xserverConfig = generateXserverConfig();
+
         (my $desktopConfiguration = <<EOF)=~s/^/  /gm;
 @desktopConfiguration@
 EOF
diff --git a/nixpkgs/nixos/modules/installer/tools/tools.nix b/nixpkgs/nixos/modules/installer/tools/tools.nix
index ada5f5748561..a9e5641b05a2 100644
--- a/nixpkgs/nixos/modules/installer/tools/tools.nix
+++ b/nixpkgs/nixos/modules/installer/tools/tools.nix
@@ -36,6 +36,7 @@ let
     path = lib.optionals (lib.elem "btrfs" config.boot.supportedFilesystems) [ pkgs.btrfs-progs ];
     perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/${pkgs.perl.libPrefix}";
     inherit (config.system.nixos-generate-config) configuration desktopConfiguration;
+    xserverEnabled = config.services.xserver.enable;
   };
 
   nixos-option =
@@ -87,8 +88,8 @@ in
 
     desktopConfiguration = mkOption {
       internal = true;
-      type = types.str;
-      default = "";
+      type = types.listOf types.lines;
+      default = [];
       description = ''
         Text to preseed the desktop configuration that <literal>nixos-generate-config</literal>
         saves to <literal>/etc/nixos/configuration.nix</literal>.
@@ -136,6 +137,8 @@ in
         #   keyMap = "us";
         # };
 
+      $xserverConfig
+
       $desktopConfiguration
         # Configure keymap in X11
         # services.xserver.layout = "us";
diff --git a/nixpkgs/nixos/modules/misc/crashdump.nix b/nixpkgs/nixos/modules/misc/crashdump.nix
index 11dec37b3fae..796078d7ef8c 100644
--- a/nixpkgs/nixos/modules/misc/crashdump.nix
+++ b/nixpkgs/nixos/modules/misc/crashdump.nix
@@ -53,7 +53,7 @@ in
         ${pkgs.kexectools}/sbin/kexec -p /run/current-system/kernel \
         --initrd=/run/current-system/initrd \
         --reset-vga --console-vga \
-        --command-line="systemConfig=$(readlink -f /run/current-system) init=$(readlink -f /run/current-system/init) irqpoll maxcpus=1 reset_devices ${kernelParams}"
+        --command-line="init=$(readlink -f /run/current-system/init) irqpoll maxcpus=1 reset_devices ${kernelParams}"
       '';
       kernelParams = [
        "crashkernel=${crashdump.reservedMemory}"
diff --git a/nixpkgs/nixos/modules/misc/documentation.nix b/nixpkgs/nixos/modules/misc/documentation.nix
index 59bda7560f69..13f8007cd626 100644
--- a/nixpkgs/nixos/modules/misc/documentation.nix
+++ b/nixpkgs/nixos/modules/misc/documentation.nix
@@ -98,7 +98,7 @@ in
 
           See "Multiple-output packages" chapter in the nixpkgs manual for more info.
         '';
-        # which is at ../../../doc/multiple-output.xml
+        # which is at ../../../doc/multiple-output.chapter.md
       };
 
       man.enable = mkOption {
diff --git a/nixpkgs/nixos/modules/misc/ids.nix b/nixpkgs/nixos/modules/misc/ids.nix
index 3185e512a4ae..d19f6b4e00c5 100644
--- a/nixpkgs/nixos/modules/misc/ids.nix
+++ b/nixpkgs/nixos/modules/misc/ids.nix
@@ -71,7 +71,7 @@ in
       #utmp = 29; # unused
       # ddclient = 30; # converted to DynamicUser = true
       davfs2 = 31;
-      #disnix = 33; # module removed
+      disnix = 33;
       osgi = 34;
       tor = 35;
       cups = 36;
@@ -387,7 +387,7 @@ in
       utmp = 29;
       # ddclient = 30; # converted to DynamicUser = true
       davfs2 = 31;
-      #disnix = 33; # module removed
+      disnix = 33;
       osgi = 34;
       tor = 35;
       #cups = 36; # unused
diff --git a/nixpkgs/nixos/modules/misc/meta.nix b/nixpkgs/nixos/modules/misc/meta.nix
index be3f4cbbcfe4..1410e33342a6 100644
--- a/nixpkgs/nixos/modules/misc/meta.nix
+++ b/nixpkgs/nixos/modules/misc/meta.nix
@@ -47,9 +47,9 @@ in
       doc = mkOption {
         type = docFile;
         internal = true;
-        example = "./meta.xml";
+        example = "./meta.chapter.xml";
         description = ''
-          Documentation prologe for the set of options of each module.  This
+          Documentation prologue for the set of options of each module.  This
           option should be defined at most once per module.
         '';
       };
diff --git a/nixpkgs/nixos/modules/module-list.nix b/nixpkgs/nixos/modules/module-list.nix
index 3ddfd6ec196f..e8dc9e4c0ddf 100644
--- a/nixpkgs/nixos/modules/module-list.nix
+++ b/nixpkgs/nixos/modules/module-list.nix
@@ -67,12 +67,13 @@
   ./hardware/steam-hardware.nix
   ./hardware/system-76.nix
   ./hardware/tuxedo-keyboard.nix
+  ./hardware/ubertooth.nix
   ./hardware/usb-wwan.nix
   ./hardware/onlykey.nix
   ./hardware/opentabletdriver.nix
+  ./hardware/sata.nix
   ./hardware/wooting.nix
   ./hardware/uinput.nix
-  ./hardware/video/amdgpu.nix
   ./hardware/video/amdgpu-pro.nix
   ./hardware/video/ati.nix
   ./hardware/video/capture/mwprocapture.nix
@@ -80,6 +81,7 @@
   ./hardware/video/displaylink.nix
   ./hardware/video/hidpi.nix
   ./hardware/video/nvidia.nix
+  ./hardware/video/switcheroo-control.nix
   ./hardware/video/uvcvideo/default.nix
   ./hardware/video/webcam/facetimehd.nix
   ./hardware/xpadneo.nix
@@ -123,6 +125,7 @@
   ./programs/dconf.nix
   ./programs/digitalbitbox/default.nix
   ./programs/dmrconfig.nix
+  ./programs/droidcam.nix
   ./programs/environment.nix
   ./programs/evince.nix
   ./programs/file-roller.nix
@@ -154,6 +157,7 @@
   ./programs/nm-applet.nix
   ./programs/npm.nix
   ./programs/oblogout.nix
+  ./programs/partition-manager.nix
   ./programs/plotinus.nix
   ./programs/proxychains.nix
   ./programs/qt5ct.nix
@@ -176,6 +180,7 @@
   ./programs/tmux.nix
   ./programs/traceroute.nix
   ./programs/tsm-client.nix
+  ./programs/turbovnc.nix
   ./programs/udevil.nix
   ./programs/usbtop.nix
   ./programs/vim.nix
@@ -206,7 +211,6 @@
   ./security/dhparams.nix
   ./security/duosec.nix
   ./security/google_oslogin.nix
-  ./security/hidepid.nix
   ./security/lock-kernel-modules.nix
   ./security/misc.nix
   ./security/oath.nix
@@ -229,6 +233,7 @@
   ./services/audio/alsa.nix
   ./services/audio/jack.nix
   ./services/audio/icecast.nix
+  ./services/audio/jmusicbot.nix
   ./services/audio/liquidsoap.nix
   ./services/audio/mpd.nix
   ./services/audio/mpdscribble.nix
@@ -242,6 +247,7 @@
   ./services/backup/automysqlbackup.nix
   ./services/backup/bacula.nix
   ./services/backup/borgbackup.nix
+  ./services/backup/borgmatic.nix
   ./services/backup/duplicati.nix
   ./services/backup/duplicity.nix
   ./services/backup/mysql-backup.nix
@@ -256,6 +262,8 @@
   ./services/backup/tsm.nix
   ./services/backup/zfs-replication.nix
   ./services/backup/znapzend.nix
+  ./services/blockchain/ethereum/geth.nix
+  ./services/backup/zrepl.nix
   ./services/cluster/hadoop/default.nix
   ./services/cluster/k3s/default.nix
   ./services/cluster/kubernetes/addons/dns.nix
@@ -320,7 +328,8 @@
   ./services/desktops/gsignond.nix
   ./services/desktops/gvfs.nix
   ./services/desktops/malcontent.nix
-  ./services/desktops/pipewire.nix
+  ./services/desktops/pipewire/pipewire.nix
+  ./services/desktops/pipewire/pipewire-media-session.nix
   ./services/desktops/gnome3/at-spi2-core.nix
   ./services/desktops/gnome3/chrome-gnome-shell.nix
   ./services/desktops/gnome3/evolution-data-server.nix
@@ -348,6 +357,7 @@
   ./services/development/jupyter/default.nix
   ./services/development/jupyterhub/default.nix
   ./services/development/lorri.nix
+  ./services/display-managers/greetd.nix
   ./services/editors/emacs.nix
   ./services/editors/infinoted.nix
   ./services/games/factorio.nix
@@ -380,6 +390,7 @@
   ./services/hardware/sane.nix
   ./services/hardware/sane_extra_backends/brscan4.nix
   ./services/hardware/sane_extra_backends/dsseries.nix
+  ./services/hardware/spacenavd.nix
   ./services/hardware/tcsd.nix
   ./services/hardware/tlp.nix
   ./services/hardware/thinkfan.nix
@@ -456,11 +467,14 @@
   ./services/misc/devmon.nix
   ./services/misc/dictd.nix
   ./services/misc/dwm-status.nix
+  ./services/misc/dysnomia.nix
+  ./services/misc/disnix.nix
   ./services/misc/docker-registry.nix
   ./services/misc/domoticz.nix
   ./services/misc/errbot.nix
   ./services/misc/etcd.nix
   ./services/misc/etebase-server.nix
+  ./services/misc/etesync-dav.nix
   ./services/misc/ethminer.nix
   ./services/misc/exhibitor.nix
   ./services/misc/felix.nix
@@ -487,8 +501,10 @@
   ./services/misc/logkeys.nix
   ./services/misc/leaps.nix
   ./services/misc/lidarr.nix
+  ./services/misc/lifecycled.nix
   ./services/misc/mame.nix
   ./services/misc/matrix-appservice-discord.nix
+  ./services/misc/matrix-appservice-irc.nix
   ./services/misc/matrix-synapse.nix
   ./services/misc/mautrix-telegram.nix
   ./services/misc/mbpfan.nix
@@ -504,11 +520,13 @@
   ./services/misc/nzbget.nix
   ./services/misc/nzbhydra2.nix
   ./services/misc/octoprint.nix
+  ./services/misc/ombi.nix
   ./services/misc/osrm.nix
   ./services/misc/packagekit.nix
   ./services/misc/paperless.nix
   ./services/misc/parsoid.nix
   ./services/misc/plex.nix
+  ./services/misc/plikd.nix
   ./services/misc/tautulli.nix
   ./services/misc/pinnwand.nix
   ./services/misc/pykms.nix
@@ -632,6 +650,7 @@
   ./services/networking/coredns.nix
   ./services/networking/corerad.nix
   ./services/networking/coturn.nix
+  ./services/networking/croc.nix
   ./services/networking/dante.nix
   ./services/networking/ddclient.nix
   ./services/networking/dhcpcd.nix
@@ -673,6 +692,7 @@
   ./services/networking/i2p.nix
   ./services/networking/icecream/scheduler.nix
   ./services/networking/icecream/daemon.nix
+  ./services/networking/inspircd.nix
   ./services/networking/iodine.nix
   ./services/networking/iperf3.nix
   ./services/networking/ircd-hybrid/default.nix
@@ -875,8 +895,11 @@
   ./services/web-apps/atlassian/confluence.nix
   ./services/web-apps/atlassian/crowd.nix
   ./services/web-apps/atlassian/jira.nix
+  ./services/web-apps/bookstack.nix
+  ./services/web-apps/calibre-web.nix
   ./services/web-apps/convos.nix
   ./services/web-apps/cryptpad.nix
+  ./services/web-apps/discourse.nix
   ./services/web-apps/documize.nix
   ./services/web-apps/dokuwiki.nix
   ./services/web-apps/engelsystem.nix
@@ -913,6 +936,7 @@
   ./services/web-apps/selfoss.nix
   ./services/web-apps/shiori.nix
   ./services/web-apps/virtlyst.nix
+  ./services/web-apps/wiki-js.nix
   ./services/web-apps/whitebophir.nix
   ./services/web-apps/wordpress.nix
   ./services/web-apps/youtrack.nix
@@ -934,6 +958,7 @@
   ./services/web-servers/nginx/default.nix
   ./services/web-servers/nginx/gitweb.nix
   ./services/web-servers/phpfpm/default.nix
+  ./services/web-servers/pomerium.nix
   ./services/web-servers/unit/default.nix
   ./services/web-servers/shellinabox.nix
   ./services/web-servers/tomcat.nix
@@ -1048,6 +1073,7 @@
   ./testing/service-runner.nix
   ./virtualisation/anbox.nix
   ./virtualisation/container-config.nix
+  ./virtualisation/containerd.nix
   ./virtualisation/containers.nix
   ./virtualisation/nixos-containers.nix
   ./virtualisation/oci-containers.nix
diff --git a/nixpkgs/nixos/modules/profiles/hardened.nix b/nixpkgs/nixos/modules/profiles/hardened.nix
index 680fa40b9119..00aafc6831b2 100644
--- a/nixpkgs/nixos/modules/profiles/hardened.nix
+++ b/nixpkgs/nixos/modules/profiles/hardened.nix
@@ -22,8 +22,6 @@ with lib;
   environment.memoryAllocator.provider = mkDefault "scudo";
   environment.variables.SCUDO_OPTIONS = mkDefault "ZeroContents=1";
 
-  security.hideProcessInformation = mkDefault true;
-
   security.lockKernelModules = mkDefault true;
 
   security.protectKernelImage = mkDefault true;
diff --git a/nixpkgs/nixos/modules/programs/droidcam.nix b/nixpkgs/nixos/modules/programs/droidcam.nix
new file mode 100644
index 000000000000..9843a1f5be25
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/droidcam.nix
@@ -0,0 +1,16 @@
+{ lib, pkgs, config, ... }:
+
+with lib;
+
+{
+  options.programs.droidcam = {
+    enable = mkEnableOption "DroidCam client";
+  };
+
+  config = lib.mkIf config.programs.droidcam.enable {
+    environment.systemPackages = [ pkgs.droidcam ];
+
+    boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
+    boot.kernelModules = [ "v4l2loopback" "snd-aloop" ];
+  };
+}
diff --git a/nixpkgs/nixos/modules/programs/fish_completion-generator.patch b/nixpkgs/nixos/modules/programs/fish_completion-generator.patch
index 997f38c5066d..fa207e484c99 100644
--- a/nixpkgs/nixos/modules/programs/fish_completion-generator.patch
+++ b/nixpkgs/nixos/modules/programs/fish_completion-generator.patch
@@ -1,13 +1,14 @@
 --- a/create_manpage_completions.py
 +++ b/create_manpage_completions.py
-@@ -844,10 +844,6 @@ def parse_manpage_at_path(manpage_path, output_directory):
+@@ -879,10 +879,6 @@ def parse_manpage_at_path(manpage_path, output_directory):
+                 )
+                 return False
  
-             built_command_output.insert(0, "# " + CMDNAME)
+-        # Output the magic word Autogenerated so we can tell if we can overwrite this
+-        built_command_output.insert(
+-            0, "# " + CMDNAME + "\n# Autogenerated from man page " + manpage_path
+-        )
+         # built_command_output.insert(2, "# using " + parser.__class__.__name__) # XXX MISATTRIBUTES THE CULPABLE PARSER! Was really using Type2 but reporting TypeDeroffManParser
  
--            # Output the magic word Autogenerated so we can tell if we can overwrite this
--            built_command_output.insert(
--                1, "# Autogenerated from man page " + manpage_path
--            )
-             # built_command_output.insert(2, "# using " + parser.__class__.__name__) # XXX MISATTRIBUTES THE CULPABILE PARSER! Was really using Type2 but reporting TypeDeroffManParser
- 
-             for line in built_command_output:
+         for line in built_command_output:
+
diff --git a/nixpkgs/nixos/modules/programs/less.nix b/nixpkgs/nixos/modules/programs/less.nix
index 75b3e707d576..09cb6030e661 100644
--- a/nixpkgs/nixos/modules/programs/less.nix
+++ b/nixpkgs/nixos/modules/programs/less.nix
@@ -40,7 +40,7 @@ in
       configFile = mkOption {
         type = types.nullOr types.path;
         default = null;
-        example = literalExample "$${pkgs.my-configs}/lesskey";
+        example = literalExample "\${pkgs.my-configs}/lesskey";
         description = ''
           Path to lesskey configuration file.
 
diff --git a/nixpkgs/nixos/modules/programs/mininet.nix b/nixpkgs/nixos/modules/programs/mininet.nix
index ecc924325e6b..6e90e7669ac6 100644
--- a/nixpkgs/nixos/modules/programs/mininet.nix
+++ b/nixpkgs/nixos/modules/programs/mininet.nix
@@ -8,7 +8,7 @@ let
   cfg  = config.programs.mininet;
 
   generatedPath = with pkgs; makeSearchPath "bin"  [
-    iperf ethtool iproute socat
+    iperf ethtool iproute2 socat
   ];
 
   pyEnv = pkgs.python.withPackages(ps: [ ps.mininet-python ]);
diff --git a/nixpkgs/nixos/modules/programs/partition-manager.nix b/nixpkgs/nixos/modules/programs/partition-manager.nix
new file mode 100644
index 000000000000..1be2f0a69a11
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/partition-manager.nix
@@ -0,0 +1,19 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+  meta.maintainers = [ maintainers.oxalica ];
+
+  ###### interface
+  options = {
+    programs.partition-manager.enable = mkEnableOption "KDE Partition Manager";
+  };
+
+  ###### implementation
+  config = mkIf config.programs.partition-manager.enable {
+    services.dbus.packages = [ pkgs.libsForQt5.kpmcore ];
+    # `kpmcore` need to be installed to pull in polkit actions.
+    environment.systemPackages = [ pkgs.libsForQt5.kpmcore pkgs.partition-manager ];
+  };
+}
diff --git a/nixpkgs/nixos/modules/programs/steam.nix b/nixpkgs/nixos/modules/programs/steam.nix
index 3c919c47a0c6..ff4deba2bf0a 100644
--- a/nixpkgs/nixos/modules/programs/steam.nix
+++ b/nixpkgs/nixos/modules/programs/steam.nix
@@ -4,12 +4,38 @@ with lib;
 
 let
   cfg = config.programs.steam;
+
+  steam = pkgs.steam.override {
+    extraLibraries = pkgs: with config.hardware.opengl;
+      if pkgs.hostPlatform.is64bit
+      then [ package ] ++ extraPackages
+      else [ package32 ] ++ extraPackages32;
+  };
 in {
-  options.programs.steam.enable = mkEnableOption "steam";
+  options.programs.steam = {
+    enable = mkEnableOption "steam";
+
+    remotePlay.openFirewall = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Open ports in the firewall for Steam Remote Play.
+      '';
+    };
+
+    dedicatedServer.openFirewall = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Open ports in the firewall for Source Dedicated Server.
+      '';
+    };
+  };
 
   config = mkIf cfg.enable {
     hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932
       enable = true;
+      driSupport = true;
       driSupport32Bit = true;
     };
 
@@ -18,7 +44,19 @@ in {
 
     hardware.steam-hardware.enable = true;
 
-    environment.systemPackages = [ pkgs.steam ];
+    environment.systemPackages = [ steam steam.run ];
+
+    networking.firewall = lib.mkMerge [
+      (mkIf cfg.remotePlay.openFirewall {
+        allowedTCPPorts = [ 27036 ];
+        allowedUDPPortRanges = [ { from = 27031; to = 27036; } ];
+      })
+
+      (mkIf cfg.dedicatedServer.openFirewall {
+        allowedTCPPorts = [ 27015 ]; # SRCDS Rcon port
+        allowedUDPPorts = [ 27015 ]; # Gameplay traffic
+      })
+    ];
   };
 
   meta.maintainers = with maintainers; [ mkg20001 ];
diff --git a/nixpkgs/nixos/modules/programs/sway.nix b/nixpkgs/nixos/modules/programs/sway.nix
index 038d76c6c921..107e783c0c21 100644
--- a/nixpkgs/nixos/modules/programs/sway.nix
+++ b/nixpkgs/nixos/modules/programs/sway.nix
@@ -90,7 +90,7 @@ in {
         rxvt-unicode # For backward compatibility (old default terminal)
       ];
       defaultText = literalExample ''
-        with pkgs; [ swaylock swayidle xwayland rxvt-unicode dmenu ];
+        with pkgs; [ swaylock swayidle rxvt-unicode alacritty dmenu ];
       '';
       example = literalExample ''
         with pkgs; [
diff --git a/nixpkgs/nixos/modules/programs/turbovnc.nix b/nixpkgs/nixos/modules/programs/turbovnc.nix
new file mode 100644
index 000000000000..e6f8836aa367
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/turbovnc.nix
@@ -0,0 +1,54 @@
+# Global configuration for the SSH client.
+
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.turbovnc;
+in
+{
+  options = {
+
+    programs.turbovnc = {
+
+      ensureHeadlessSoftwareOpenGL = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to set up NixOS such that TurboVNC's built-in software OpenGL
+          implementation works.
+
+          This will enable <option>hardware.opengl.enable</option> so that OpenGL
+          programs can find Mesa's llvmpipe drivers.
+
+          Setting this option to <code>false</code> does not mean that software
+          OpenGL won't work; it may still work depending on your system
+          configuration.
+
+          This option is also intended to generate warnings if you are using some
+          configuration that's incompatible with using headless software OpenGL
+          in TurboVNC.
+        '';
+      };
+
+    };
+
+  };
+
+  config = mkIf cfg.ensureHeadlessSoftwareOpenGL {
+
+    # TurboVNC has builtin support for Mesa llvmpipe's `swrast`
+    # software rendering to implemnt GLX (OpenGL on Xorg).
+    # However, just building TurboVNC with support for that is not enough
+    # (it only takes care of the X server side part of OpenGL);
+    # the indiviudual applications (e.g. `glxgears`) also need to directly load
+    # the OpenGL libs.
+    # Thus, this creates `/run/opengl-driver` populated by Mesa so that the applications
+    # can find the llvmpipe `swrast.so` software rendering DRI lib via `libglvnd`.
+    # This comment exists to explain why `hardware.` is involved,
+    # even though 100% software rendering is used.
+    hardware.opengl.enable = true;
+
+  };
+}
diff --git a/nixpkgs/nixos/modules/rename.nix b/nixpkgs/nixos/modules/rename.nix
index 2d07e421efe4..9f1efc462798 100644
--- a/nixpkgs/nixos/modules/rename.nix
+++ b/nixpkgs/nixos/modules/rename.nix
@@ -73,6 +73,11 @@ with lib;
     (mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "flashpolicyd" ] "The flashpolicyd module has been removed. Adobe Flash Player is deprecated.")
 
+    (mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
+        The hidepid module was removed, since the underlying machinery
+        is broken when using cgroups-v2.
+    '')
+
     # Do NOT add any option renames here, see top of the file
   ];
 }
diff --git a/nixpkgs/nixos/modules/security/acme.nix b/nixpkgs/nixos/modules/security/acme.nix
index c33a92580d4c..eb3599b924d7 100644
--- a/nixpkgs/nixos/modules/security/acme.nix
+++ b/nixpkgs/nixos/modules/security/acme.nix
@@ -24,7 +24,7 @@ let
       Type = "oneshot";
       User = "acme";
       Group = mkDefault "acme";
-      UMask = 0023;
+      UMask = 0022;
       StateDirectoryMode = 750;
       ProtectSystem = "full";
       PrivateTmp = true;
@@ -235,7 +235,7 @@ let
       # https://github.com/NixOS/nixpkgs/pull/81371#issuecomment-605526099
       wantedBy = optionals (!config.boot.isContainer) [ "multi-user.target" ];
 
-      path = with pkgs; [ lego coreutils diffutils ];
+      path = with pkgs; [ lego coreutils diffutils openssl ];
 
       serviceConfig = commonServiceConfig // {
         Group = data.group;
@@ -274,10 +274,44 @@ let
       script = ''
         set -euxo pipefail
 
+        # This reimplements the expiration date check, but without querying
+        # the acme server first. By doing this offline, we avoid errors
+        # when the network or DNS are unavailable, which can happen during
+        # nixos-rebuild switch.
+        is_expiration_skippable() {
+          pem=$1
+
+          # This function relies on set -e to exit early if any of the
+          # conditions or programs fail.
+
+          [[ -e $pem ]]
+
+          expiration_line="$(
+            set -euxo pipefail
+            openssl x509 -noout -enddate <$pem \
+                  | grep notAfter \
+                  | sed -e 's/^notAfter=//'
+          )"
+          [[ -n "$expiration_line" ]]
+
+          expiration_date="$(date -d "$expiration_line" +%s)"
+          now="$(date +%s)"
+          expiration_s=$[expiration_date - now]
+          expiration_days=$[expiration_s / (3600 * 24)]   # rounds down
+
+          [[ $expiration_days -gt ${toString cfg.validMinDays} ]]
+        }
+
         ${optionalString (data.webroot != null) ''
-          # Ensure the webroot exists
-          mkdir -p '${data.webroot}/.well-known/acme-challenge'
-          chown 'acme:${data.group}' ${data.webroot}/{.well-known,.well-known/acme-challenge}
+          # Ensure the webroot exists. Fixing group is required in case configuration was changed between runs.
+          # Lego will fail if the webroot does not exist at all.
+          (
+            mkdir -p '${data.webroot}/.well-known/acme-challenge' \
+            && chgrp '${data.group}' ${data.webroot}/.well-known/acme-challenge
+          ) || (
+            echo 'Please ensure ${data.webroot}/.well-known/acme-challenge exists and is writable by acme:${data.group}' \
+            && exit 1
+          )
         ''}
 
         echo '${domainHash}' > domainhash.txt
@@ -288,8 +322,14 @@ let
           # When domains are updated, there's no need to do a full
           # Lego run, but it's likely renew won't work if days is too low.
           if [ -e certificates/domainhash.txt ] && cmp -s domainhash.txt certificates/domainhash.txt; then
-            lego ${renewOpts} --days ${toString cfg.validMinDays}
+            if is_expiration_skippable out/full.pem; then
+              echo 1>&2 "nixos-acme: skipping renewal because expiration isn't within the coming ${toString cfg.validMinDays} days"
+            else
+              echo 1>&2 "nixos-acme: renewing now, because certificate expires within the configured ${toString cfg.validMinDays} days"
+              lego ${renewOpts} --days ${toString cfg.validMinDays}
+            fi
           else
+            echo 1>&2 "certificate domain(s) have changed; will renew now"
             # Any number > 90 works, but this one is over 9000 ;-)
             lego ${renewOpts} --days 9001
           fi
diff --git a/nixpkgs/nixos/modules/security/hidepid.nix b/nixpkgs/nixos/modules/security/hidepid.nix
deleted file mode 100644
index 4953f517e93b..000000000000
--- a/nixpkgs/nixos/modules/security/hidepid.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ config, lib, ... }:
-with lib;
-
-{
-  meta = {
-    maintainers = [ maintainers.joachifm ];
-    doc = ./hidepid.xml;
-  };
-
-  options = {
-    security.hideProcessInformation = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Restrict process information to the owning user.
-      '';
-    };
-  };
-
-  config = mkIf config.security.hideProcessInformation {
-    users.groups.proc.gid = config.ids.gids.proc;
-    users.groups.proc.members = [ "polkituser" ];
-
-    boot.specialFileSystems."/proc".options = [ "hidepid=2" "gid=${toString config.ids.gids.proc}" ];
-    systemd.services.systemd-logind.serviceConfig.SupplementaryGroups = [ "proc" ];
-
-    # Disable cgroupsv2, which doesn't work with hidepid.
-    # https://github.com/NixOS/nixpkgs/pull/104094#issuecomment-729996203
-    systemd.enableUnifiedCgroupHierarchy = false;
-  };
-}
diff --git a/nixpkgs/nixos/modules/security/hidepid.xml b/nixpkgs/nixos/modules/security/hidepid.xml
deleted file mode 100644
index 5a17cb1da412..000000000000
--- a/nixpkgs/nixos/modules/security/hidepid.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         version="5.0"
-         xml:id="sec-hidepid">
- <title>Hiding process information</title>
- <para>
-  Setting
-<programlisting>
-<xref linkend="opt-security.hideProcessInformation"/> = true;
-</programlisting>
-  ensures that access to process information is restricted to the owning user.
-  This implies, among other things, that command-line arguments remain private.
-  Unless your deployment relies on unprivileged users being able to inspect the
-  process information of other users, this option should be safe to enable.
- </para>
- <para>
-  Members of the <literal>proc</literal> group are exempt from process
-  information hiding.
- </para>
- <para>
-  To allow a service <replaceable>foo</replaceable> to run without process
-  information hiding, set
-<programlisting>
-<link linkend="opt-systemd.services._name_.serviceConfig">systemd.services.<replaceable>foo</replaceable>.serviceConfig</link>.SupplementaryGroups = [ "proc" ];
-</programlisting>
- </para>
-</chapter>
diff --git a/nixpkgs/nixos/modules/security/rngd.nix b/nixpkgs/nixos/modules/security/rngd.nix
index cb885c4762d0..8cca1c26d683 100644
--- a/nixpkgs/nixos/modules/security/rngd.nix
+++ b/nixpkgs/nixos/modules/security/rngd.nix
@@ -1,56 +1,16 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
+{ lib, ... }:
 let
-  cfg = config.security.rngd;
+  removed = k: lib.mkRemovedOptionModule [ "security" "rngd" k ];
 in
 {
-  options = {
-    security.rngd = {
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether to enable the rng daemon.  Devices that the kernel recognises
-          as entropy sources are handled automatically by krngd.
-        '';
-      };
-      debug = mkOption {
-        type = types.bool;
-        default = false;
-        description = "Whether to enable debug output (-d).";
-      };
-    };
-  };
-
-  config = mkIf cfg.enable {
-    systemd.services.rngd = {
-      bindsTo = [ "dev-random.device" ];
-
-      after = [ "dev-random.device" ];
-
-      # Clean shutdown without DefaultDependencies
-      conflicts = [ "shutdown.target" ];
-      before = [
-        "sysinit.target"
-        "shutdown.target"
-      ];
-
-      description = "Hardware RNG Entropy Gatherer Daemon";
-
-      # rngd may have to start early to avoid entropy starvation during boot with encrypted swap
-      unitConfig.DefaultDependencies = false;
-      serviceConfig = {
-        ExecStart = "${pkgs.rng-tools}/sbin/rngd -f"
-          + optionalString cfg.debug " -d";
-        # PrivateTmp would introduce a circular dependency if /tmp is on tmpfs and swap is encrypted,
-        # thus depending on rngd before swap, while swap depends on rngd to avoid entropy starvation.
-        NoNewPrivileges = true;
-        PrivateNetwork = true;
-        ProtectSystem = "full";
-        ProtectHome = true;
-      };
-    };
-  };
+  imports = [
+    (removed "enable" ''
+       rngd is not necessary for any device that the kernel recognises
+       as an hardware RNG, as it will automatically run the krngd task
+       to periodically collect random data from the device and mix it
+       into the kernel's RNG.
+    '')
+    (removed "debug"
+      "The rngd module was removed, so its debug option does nothing.")
+  ];
 }
diff --git a/nixpkgs/nixos/modules/services/audio/jmusicbot.nix b/nixpkgs/nixos/modules/services/audio/jmusicbot.nix
new file mode 100644
index 000000000000..f573bd2ab8dd
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/audio/jmusicbot.nix
@@ -0,0 +1,41 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.jmusicbot;
+in
+{
+  options = {
+    services.jmusicbot = {
+      enable = mkEnableOption "jmusicbot, a Discord music bot that's easy to set up and run yourself";
+
+      stateDir = mkOption {
+        type = types.path;
+        description = ''
+          The directory where config.txt and serversettings.json is saved.
+          If left as the default value this directory will automatically be created before JMusicBot starts, otherwise the sysadmin is responsible for ensuring the directory exists with appropriate ownership and permissions.
+          Untouched by the value of this option config.txt needs to be placed manually into this directory.
+        '';
+        default = "/var/lib/jmusicbot/";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.jmusicbot = {
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-online.target" ];
+      description = "Discord music bot that's easy to set up and run yourself!";
+      serviceConfig = mkMerge [{
+        ExecStart = "${pkgs.jmusicbot}/bin/JMusicBot";
+        WorkingDirectory = cfg.stateDir;
+        Restart = "always";
+        RestartSec = 20;
+        DynamicUser = true;
+      }
+        (mkIf (cfg.stateDir == "/var/lib/jmusicbot") { StateDirectory = "jmusicbot"; })];
+    };
+  };
+
+  meta.maintainers = with maintainers; [ SuperSandro2000 ];
+}
diff --git a/nixpkgs/nixos/modules/services/audio/mpd.nix b/nixpkgs/nixos/modules/services/audio/mpd.nix
index 9f01e29dd0e9..eee6c5f423d5 100644
--- a/nixpkgs/nixos/modules/services/audio/mpd.nix
+++ b/nixpkgs/nixos/modules/services/audio/mpd.nix
@@ -213,7 +213,9 @@ in {
       description = "Music Player Daemon Socket";
       wantedBy = [ "sockets.target" ];
       listenStreams = [
-        "${optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:"}${toString cfg.network.port}"
+        (if pkgs.lib.hasPrefix "/" cfg.network.listenAddress
+          then cfg.network.listenAddress
+          else "${optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:"}${toString cfg.network.port}")
       ];
       socketConfig = {
         Backlog = 5;
diff --git a/nixpkgs/nixos/modules/services/audio/snapserver.nix b/nixpkgs/nixos/modules/services/audio/snapserver.nix
index a261b8760780..f96b5f3e1942 100644
--- a/nixpkgs/nixos/modules/services/audio/snapserver.nix
+++ b/nixpkgs/nixos/modules/services/audio/snapserver.nix
@@ -65,7 +65,7 @@ let
 
 in {
   imports = [
-    (mkRenamedOptionModule [ "services" "snapserver" "controlPort"] [ "services" "snapserver" "tcp" "port" ])
+    (mkRenamedOptionModule [ "services" "snapserver" "controlPort" ] [ "services" "snapserver" "tcp" "port" ])
   ];
 
   ###### interface
@@ -200,12 +200,21 @@ in {
             location = mkOption {
               type = types.oneOf [ types.path types.str ];
               description = ''
-                The location of the pipe, file, Librespot/Airplay/process binary, or a TCP address.
-                Use an empty string for alsa.
+                For type <literal>pipe</literal> or <literal>file</literal>, the path to the pipe or file.
+                For type <literal>librespot</literal>, <literal>airplay</literal> or <literal>process</literal>, the path to the corresponding binary.
+                For type <literal>tcp</literal>, the <literal>host:port</literal> address to connect to or listen on.
+                For type <literal>meta</literal>, a list of stream names in the form <literal>/one/two/...</literal>. Don't forget the leading slash.
+                For type <literal>alsa</literal>, use an empty string.
+              '';
+              example = literalExample ''
+                "/path/to/pipe"
+                "/path/to/librespot"
+                "192.168.1.2:4444"
+                "/MyTCP/Spotify/MyPipe"
               '';
             };
             type = mkOption {
-              type = types.enum [ "pipe" "librespot" "airplay" "file" "process" "tcp" "alsa" "spotify" ];
+              type = types.enum [ "pipe" "librespot" "airplay" "file" "process" "tcp" "alsa" "spotify" "meta" ];
               default = "pipe";
               description = ''
                 The type of input stream.
diff --git a/nixpkgs/nixos/modules/services/audio/spotifyd.nix b/nixpkgs/nixos/modules/services/audio/spotifyd.nix
index a589153248fe..9279a03aed4e 100644
--- a/nixpkgs/nixos/modules/services/audio/spotifyd.nix
+++ b/nixpkgs/nixos/modules/services/audio/spotifyd.nix
@@ -27,6 +27,7 @@ in
       wantedBy = [ "multi-user.target" ];
       after = [ "network-online.target" "sound.target" ];
       description = "spotifyd, a Spotify playing daemon";
+      environment.SHELL = "/bin/sh";
       serviceConfig = {
         ExecStart = "${pkgs.spotifyd}/bin/spotifyd --no-daemon --cache-path /var/cache/spotifyd --config-path ${spotifydConf}";
         Restart = "always";
diff --git a/nixpkgs/nixos/modules/services/backup/borgmatic.nix b/nixpkgs/nixos/modules/services/backup/borgmatic.nix
new file mode 100644
index 000000000000..5e5c0bbeccca
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/backup/borgmatic.nix
@@ -0,0 +1,57 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.borgmatic;
+  cfgfile = pkgs.writeText "config.yaml" (builtins.toJSON cfg.settings);
+in {
+  options.services.borgmatic = {
+    enable = mkEnableOption "borgmatic";
+
+    settings = mkOption {
+      description = ''
+        See https://torsion.org/borgmatic/docs/reference/configuration/
+      '';
+      type = types.submodule {
+        freeformType = with lib.types; attrsOf anything;
+        options.location = {
+          source_directories = mkOption {
+            type = types.listOf types.str;
+            description = ''
+              List of source directories to backup (required). Globs and
+              tildes are expanded.
+            '';
+            example = [ "/home" "/etc" "/var/log/syslog*" ];
+          };
+          repositories = mkOption {
+            type = types.listOf types.str;
+            description = ''
+              Paths to local or remote repositories (required). Tildes are
+              expanded. Multiple repositories are backed up to in
+              sequence. Borg placeholders can be used. See the output of
+              "borg help placeholders" for details. See ssh_command for
+              SSH options like identity file or port. If systemd service
+              is used, then add local repository paths in the systemd
+              service file to the ReadWritePaths list.
+            '';
+            example = [
+              "user@backupserver:sourcehostname.borg"
+              "user@backupserver:{fqdn}"
+            ];
+          };
+        };
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    environment.systemPackages = [ pkgs.borgmatic ];
+
+    environment.etc."borgmatic/config.yaml".source = cfgfile;
+
+    systemd.packages = [ pkgs.borgmatic ];
+
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/backup/restic.nix b/nixpkgs/nixos/modules/services/backup/restic.nix
index 573f0efa9da4..ac57f271526f 100644
--- a/nixpkgs/nixos/modules/services/backup/restic.nix
+++ b/nixpkgs/nixos/modules/services/backup/restic.nix
@@ -93,10 +93,12 @@ in
         };
 
         paths = mkOption {
-          type = types.listOf types.str;
-          default = [];
+          type = types.nullOr (types.listOf types.str);
+          default = null;
           description = ''
-            Which paths to backup.
+            Which paths to backup.  If null or an empty array, no
+            backup command will be run.  This can be used to create a
+            prune-only job.
           '';
           example = [
             "/var/lib/postgresql"
@@ -217,7 +219,7 @@ in
           resticCmd = "${pkgs.restic}/bin/restic${extraOptions}";
           filesFromTmpFile = "/run/restic-backups-${name}/includes";
           backupPaths = if (backup.dynamicFilesFrom == null)
-                        then concatStringsSep " " backup.paths
+                        then if (backup.paths != null) then concatStringsSep " " backup.paths else ""
                         else "--files-from ${filesFromTmpFile}";
           pruneCmd = optionals (builtins.length backup.pruneOpts > 0) [
             ( resticCmd + " forget --prune " + (concatStringsSep " " backup.pruneOpts) )
@@ -243,7 +245,8 @@ in
           restartIfChanged = false;
           serviceConfig = {
             Type = "oneshot";
-            ExecStart = [ "${resticCmd} backup --cache-dir=%C/restic-backups-${name} ${concatStringsSep " " backup.extraBackupArgs} ${backupPaths}" ] ++ pruneCmd;
+            ExecStart = (optionals (backupPaths != "") [ "${resticCmd} backup --cache-dir=%C/restic-backups-${name} ${concatStringsSep " " backup.extraBackupArgs} ${backupPaths}" ])
+                        ++ pruneCmd;
             User = backup.user;
             RuntimeDirectory = "restic-backups-${name}";
             CacheDirectory = "restic-backups-${name}";
diff --git a/nixpkgs/nixos/modules/services/backup/zrepl.nix b/nixpkgs/nixos/modules/services/backup/zrepl.nix
new file mode 100644
index 000000000000..4356479b6635
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/backup/zrepl.nix
@@ -0,0 +1,54 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+let
+  cfg = config.services.zrepl;
+  format = pkgs.formats.yaml { };
+  configFile = format.generate "zrepl.yml" cfg.settings;
+in
+{
+  meta.maintainers = with maintainers; [ cole-h ];
+
+  options = {
+    services.zrepl = {
+      enable = mkEnableOption "zrepl";
+
+      settings = mkOption {
+        default = { };
+        description = ''
+          Configuration for zrepl. See <link
+          xlink:href="https://zrepl.github.io/configuration.html"/>
+          for more information.
+        '';
+        type = types.submodule {
+          freeformType = format.type;
+        };
+      };
+    };
+  };
+
+  ### Implementation ###
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ pkgs.zrepl ];
+
+    # zrepl looks for its config in this location by default. This
+    # allows the use of e.g. `zrepl signal wakeup <job>` without having
+    # to specify the storepath of the config.
+    environment.etc."zrepl/zrepl.yml".source = configFile;
+
+    systemd.packages = [ pkgs.zrepl ];
+    systemd.services.zrepl = {
+      requires = [ "local-fs.target" ];
+      wantedBy = [ "zfs.target" ];
+      after = [ "zfs.target" ];
+
+      path = [ config.boot.zfs.package ];
+      restartTriggers = [ configFile ];
+
+      serviceConfig = {
+        Restart = "on-failure";
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/blockchain/ethereum/geth.nix b/nixpkgs/nixos/modules/services/blockchain/ethereum/geth.nix
new file mode 100644
index 000000000000..be3f40f6bd86
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/blockchain/ethereum/geth.nix
@@ -0,0 +1,178 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  eachGeth = config.services.geth;
+
+  gethOpts = { config, lib, name, ...}: {
+
+    options = {
+
+      enable = lib.mkEnableOption "Go Ethereum Node";
+
+      port = mkOption {
+        type = types.port;
+        default = 30303;
+        description = "Port number Go Ethereum will be listening on, both TCP and UDP.";
+      };
+
+      http = {
+        enable = lib.mkEnableOption "Go Ethereum HTTP API";
+        address = mkOption {
+          type = types.str;
+          default = "127.0.0.1";
+          description = "Listen address of Go Ethereum HTTP API.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8545;
+          description = "Port number of Go Ethereum HTTP API.";
+        };
+
+        apis = mkOption {
+          type = types.nullOr (types.listOf types.str);
+          default = null;
+          description = "APIs to enable over WebSocket";
+          example = ["net" "eth"];
+        };
+      };
+
+      websocket = {
+        enable = lib.mkEnableOption "Go Ethereum WebSocket API";
+        address = mkOption {
+          type = types.str;
+          default = "127.0.0.1";
+          description = "Listen address of Go Ethereum WebSocket API.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8546;
+          description = "Port number of Go Ethereum WebSocket API.";
+        };
+
+        apis = mkOption {
+          type = types.nullOr (types.listOf types.str);
+          default = null;
+          description = "APIs to enable over WebSocket";
+          example = ["net" "eth"];
+        };
+      };
+
+      metrics = {
+        enable = lib.mkEnableOption "Go Ethereum prometheus metrics";
+        address = mkOption {
+          type = types.str;
+          default = "127.0.0.1";
+          description = "Listen address of Go Ethereum metrics service.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 6060;
+          description = "Port number of Go Ethereum metrics service.";
+        };
+      };
+
+      network = mkOption {
+        type = types.nullOr (types.enum [ "goerli" "rinkeby" "yolov2" "ropsten" ]);
+        default = null;
+        description = "The network to connect to. Mainnet (null) is the default ethereum network.";
+      };
+
+      syncmode = mkOption {
+        type = types.enum [ "fast" "full" "light" ];
+        default = "fast";
+        description = "Blockchain sync mode.";
+      };
+
+      gcmode = mkOption {
+        type = types.enum [ "full" "archive" ];
+        default = "full";
+        description = "Blockchain garbage collection mode.";
+      };
+
+      maxpeers = mkOption {
+        type = types.int;
+        default = 50;
+        description = "Maximum peers to connect to.";
+      };
+
+      extraArgs = mkOption {
+        type = types.listOf types.str;
+        description = "Additional arguments passed to Go Ethereum.";
+        default = [];
+      };
+
+      package = mkOption {
+        default = pkgs.go-ethereum.geth;
+        type = types.package;
+        description = "Package to use as Go Ethereum node.";
+      };
+    };
+  };
+in
+
+{
+
+  ###### interface
+
+  options = {
+    services.geth = mkOption {
+      type = types.attrsOf (types.submodule gethOpts);
+      default = {};
+      description = "Specification of one or more geth instances.";
+    };
+  };
+
+  ###### implementation
+
+  config = mkIf (eachGeth != {}) {
+
+    environment.systemPackages = flatten (mapAttrsToList (gethName: cfg: [
+      cfg.package
+    ]) eachGeth);
+
+    systemd.services = mapAttrs' (gethName: cfg: (
+      nameValuePair "geth-${gethName}" (mkIf cfg.enable {
+      description = "Go Ethereum node (${gethName})";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      serviceConfig = {
+        DynamicUser = true;
+        Restart = "always";
+        StateDirectory = "goethereum/${gethName}/${if (cfg.network == null) then "mainnet" else cfg.network}";
+
+        # Hardening measures
+        PrivateTmp = "true";
+        ProtectSystem = "full";
+        NoNewPrivileges = "true";
+        PrivateDevices = "true";
+        MemoryDenyWriteExecute = "true";
+      };
+
+      script = ''
+        ${cfg.package}/bin/geth \
+          --nousb \
+          --ipcdisable \
+          ${optionalString (cfg.network != null) ''--${cfg.network}''} \
+          --syncmode ${cfg.syncmode} \
+          --gcmode ${cfg.gcmode} \
+          --port ${toString cfg.port} \
+          --maxpeers ${toString cfg.maxpeers} \
+          ${if cfg.http.enable then ''--http --http.addr ${cfg.http.address} --http.port ${toString cfg.http.port}'' else ""} \
+          ${optionalString (cfg.http.apis != null) ''--http.api ${lib.concatStringsSep "," cfg.http.apis}''} \
+          ${if cfg.websocket.enable then ''--ws --ws.addr ${cfg.websocket.address} --ws.port ${toString cfg.websocket.port}'' else ""} \
+          ${optionalString (cfg.websocket.apis != null) ''--ws.api ${lib.concatStringsSep "," cfg.websocket.apis}''} \
+          ${optionalString cfg.metrics.enable ''--metrics --metrics.addr ${cfg.metrics.address} --metrics.port ${toString cfg.metrics.port}''} \
+          ${lib.escapeShellArgs cfg.extraArgs} \
+          --datadir /var/lib/goethereum/${gethName}/${if (cfg.network == null) then "mainnet" else cfg.network}
+      '';
+    }))) eachGeth;
+
+  };
+
+}
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/addons/dns.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/addons/dns.nix
index f12e866930da..24d86628b211 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/addons/dns.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/addons/dns.nix
@@ -3,7 +3,7 @@
 with lib;
 
 let
-  version = "1.6.4";
+  version = "1.7.1";
   cfg = config.services.kubernetes.addons.dns;
   ports = {
     dns = 10053;
@@ -55,9 +55,9 @@ in {
       type = types.attrs;
       default = {
         imageName = "coredns/coredns";
-        imageDigest = "sha256:493ee88e1a92abebac67cbd4b5658b4730e0f33512461442d8d9214ea6734a9b";
+        imageDigest = "sha256:4a6e0769130686518325b21b0c1d0688b54e7c79244d48e1b15634e98e40c6ef";
         finalImageTag = version;
-        sha256 = "0fm9zdjavpf5hni8g7fkdd3csjbhd7n7py7llxjc66sbii087028";
+        sha256 = "02r440xcdsgi137k5lmmvp0z5w5fmk8g9mysq5pnysq1wl8sj6mw";
       };
     };
   };
@@ -156,7 +156,6 @@ in {
             health :${toString ports.health}
             kubernetes ${cfg.clusterDomain} in-addr.arpa ip6.arpa {
               pods insecure
-              upstream
               fallthrough in-addr.arpa ip6.arpa
             }
             prometheus :${toString ports.metrics}
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix
index 95bdb4c0d14e..a5b132154766 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix
@@ -238,14 +238,40 @@ in
       type = int;
     };
 
+    apiAudiences = mkOption {
+      description = ''
+        Kubernetes apiserver ServiceAccount issuer.
+      '';
+      default = "api,https://kubernetes.default.svc";
+      type = str;
+    };
+
+    serviceAccountIssuer = mkOption {
+      description = ''
+        Kubernetes apiserver ServiceAccount issuer.
+      '';
+      default = "https://kubernetes.default.svc";
+      type = str;
+    };
+
+    serviceAccountSigningKeyFile = mkOption {
+      description = ''
+        Path to the file that contains the current private key of the service
+        account token issuer. The issuer will sign issued ID tokens with this
+        private key.
+      '';
+      type = path;
+    };
+
     serviceAccountKeyFile = mkOption {
       description = ''
-        Kubernetes apiserver PEM-encoded x509 RSA private or public key file,
-        used to verify ServiceAccount tokens. By default tls private key file
-        is used.
+        File containing PEM-encoded x509 RSA or ECDSA private or public keys,
+        used to verify ServiceAccount tokens. The specified file can contain
+        multiple keys, and the flag can be specified multiple times with
+        different files. If unspecified, --tls-private-key-file is used.
+        Must be specified when --service-account-signing-key is provided
       '';
-      default = null;
-      type = nullOr path;
+      type = path;
     };
 
     serviceClusterIpRange = mkOption {
@@ -357,8 +383,10 @@ in
               ${optionalString (cfg.runtimeConfig != "")
                 "--runtime-config=${cfg.runtimeConfig}"} \
               --secure-port=${toString cfg.securePort} \
-              ${optionalString (cfg.serviceAccountKeyFile!=null)
-                "--service-account-key-file=${cfg.serviceAccountKeyFile}"} \
+              --api-audiences=${toString cfg.apiAudiences} \
+              --service-account-issuer=${toString cfg.serviceAccountIssuer} \
+              --service-account-signing-key-file=${cfg.serviceAccountSigningKeyFile} \
+              --service-account-key-file=${cfg.serviceAccountKeyFile} \
               --service-cluster-ip-range=${cfg.serviceClusterIpRange} \
               --storage-backend=${cfg.storageBackend} \
               ${optionalString (cfg.tlsCertFile != null)
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/default.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/default.nix
index 3a11a6513a49..19edc338bba1 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/default.nix
@@ -5,6 +5,29 @@ with lib;
 let
   cfg = config.services.kubernetes;
 
+  defaultContainerdConfigFile = pkgs.writeText "containerd.toml" ''
+    version = 2
+    root = "/var/lib/containerd/daemon"
+    state = "/var/run/containerd/daemon"
+    oom_score = 0
+
+    [grpc]
+      address = "/var/run/containerd/containerd.sock"
+
+    [plugins."io.containerd.grpc.v1.cri"]
+      sandbox_image = "pause:latest"
+
+    [plugins."io.containerd.grpc.v1.cri".cni]
+      bin_dir = "/opt/cni/bin"
+      max_conf_num = 0
+
+    [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
+      runtime_type = "io.containerd.runc.v2"
+
+    [plugins."io.containerd.grpc.v1.cri".containerd.runtimes."io.containerd.runc.v2".options]
+      SystemdCgroup = true
+  '';
+
   mkKubeConfig = name: conf: pkgs.writeText "${name}-kubeconfig" (builtins.toJSON {
     apiVersion = "v1";
     kind = "Config";
@@ -222,14 +245,9 @@ in {
     })
 
     (mkIf cfg.kubelet.enable {
-      virtualisation.docker = {
+      virtualisation.containerd = {
         enable = mkDefault true;
-
-        # kubernetes needs access to logs
-        logDriver = mkDefault "json-file";
-
-        # iptables must be disabled for kubernetes
-        extraOptions = "--iptables=false --ip-masq=false";
+        configFile = mkDefault defaultContainerdConfigFile;
       };
     })
 
@@ -269,7 +287,6 @@ in {
       users.users.kubernetes = {
         uid = config.ids.uids.kubernetes;
         description = "Kubernetes user";
-        extraGroups = [ "docker" ];
         group = "kubernetes";
         home = cfg.dataDir;
         createHome = true;
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/flannel.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/flannel.nix
index 548ffed1ddb5..3f55719027f0 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/flannel.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/flannel.nix
@@ -8,16 +8,6 @@ let
 
   # we want flannel to use kubernetes itself as configuration backend, not direct etcd
   storageBackend = "kubernetes";
-
-  # needed for flannel to pass options to docker
-  mkDockerOpts = pkgs.runCommand "mk-docker-opts" {
-    buildInputs = [ pkgs.makeWrapper ];
-  } ''
-    mkdir -p $out
-
-    # bashInteractive needed for `compgen`
-    makeWrapper ${pkgs.bashInteractive}/bin/bash $out/mk-docker-opts --add-flags "${pkgs.kubernetes}/bin/mk-docker-opts.sh"
-  '';
 in
 {
   ###### interface
@@ -43,43 +33,17 @@ in
         cniVersion = "0.3.1";
         delegate = {
           isDefaultGateway = true;
-          bridge = "docker0";
+          bridge = "mynet";
         };
       }];
     };
 
-    systemd.services.mk-docker-opts = {
-      description = "Pre-Docker Actions";
-      path = with pkgs; [ gawk gnugrep ];
-      script = ''
-        ${mkDockerOpts}/mk-docker-opts -d /run/flannel/docker
-        systemctl restart docker
-      '';
-      serviceConfig.Type = "oneshot";
-    };
-
-    systemd.paths.flannel-subnet-env = {
-      wantedBy = [ "flannel.service" ];
-      pathConfig = {
-        PathModified = "/run/flannel/subnet.env";
-        Unit = "mk-docker-opts.service";
-      };
-    };
-
-    systemd.services.docker = {
-      environment.DOCKER_OPTS = "-b none";
-      serviceConfig.EnvironmentFile = "-/run/flannel/docker";
-    };
-
-    # read environment variables generated by mk-docker-opts
-    virtualisation.docker.extraOptions = "$DOCKER_OPTS";
-
     networking = {
       firewall.allowedUDPPorts = [
         8285  # flannel udp
         8472  # flannel vxlan
       ];
-      dhcpcd.denyInterfaces = [ "docker*" "flannel*" ];
+      dhcpcd.denyInterfaces = [ "mynet*" "flannel*" ];
     };
 
     services.kubernetes.pki.certs = {
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
index 479027f1b270..b5346b1cd44d 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -23,7 +23,7 @@ let
     name = "pause";
     tag = "latest";
     contents = top.package.pause;
-    config.Cmd = "/bin/pause";
+    config.Cmd = ["/bin/pause"];
   };
 
   kubeconfig = top.lib.mkKubeConfig "kubelet" cfg.kubeconfig;
@@ -125,6 +125,18 @@ in
       };
     };
 
+    containerRuntime = mkOption {
+      description = "Which container runtime type to use";
+      type = enum ["docker" "remote"];
+      default = "remote";
+    };
+
+    containerRuntimeEndpoint = mkOption {
+      description = "Endpoint at which to find the container runtime api interface/socket";
+      type = str;
+      default = "unix:///var/run/containerd/containerd.sock";
+    };
+
     enable = mkEnableOption "Kubernetes kubelet.";
 
     extraOpts = mkOption {
@@ -235,18 +247,26 @@ in
   ###### implementation
   config = mkMerge [
     (mkIf cfg.enable {
+
+      environment.etc."cni/net.d".source = cniConfig;
+
       services.kubernetes.kubelet.seedDockerImages = [infraContainer];
 
+      boot.kernel.sysctl = {
+        "net.bridge.bridge-nf-call-iptables"  = 1;
+        "net.ipv4.ip_forward"                 = 1;
+        "net.bridge.bridge-nf-call-ip6tables" = 1;
+      };
+
       systemd.services.kubelet = {
         description = "Kubernetes Kubelet Service";
         wantedBy = [ "kubernetes.target" ];
-        after = [ "network.target" "docker.service" "kube-apiserver.service" ];
+        after = [ "containerd.service" "network.target" "kube-apiserver.service" ];
         path = with pkgs; [
           gitMinimal
           openssh
-          docker
           util-linux
-          iproute
+          iproute2
           ethtool
           thin-provisioning-tools
           iptables
@@ -254,8 +274,12 @@ in
         ] ++ lib.optional config.boot.zfs.enabled config.boot.zfs.package ++ top.path;
         preStart = ''
           ${concatMapStrings (img: ''
-            echo "Seeding docker image: ${img}"
-            docker load <${img}
+            echo "Seeding container image: ${img}"
+            ${if (lib.hasSuffix "gz" img) then
+              ''${pkgs.gzip}/bin/zcat "${img}" | ${pkgs.containerd}/bin/ctr -n k8s.io image import --all-platforms -''
+            else
+              ''${pkgs.coreutils}/bin/cat "${img}" | ${pkgs.containerd}/bin/ctr -n k8s.io image import --all-platforms -''
+            }
           '') cfg.seedDockerImages}
 
           rm /opt/cni/bin/* || true
@@ -306,6 +330,9 @@ in
             ${optionalString (cfg.tlsKeyFile != null)
               "--tls-private-key-file=${cfg.tlsKeyFile}"} \
             ${optionalString (cfg.verbosity != null) "--v=${toString cfg.verbosity}"} \
+            --container-runtime=${cfg.containerRuntime} \
+            --container-runtime-endpoint=${cfg.containerRuntimeEndpoint} \
+            --cgroup-driver=systemd \
             ${cfg.extraOpts}
           '';
           WorkingDirectory = top.dataDir;
@@ -315,7 +342,7 @@ in
       # Allways include cni plugins
       services.kubernetes.kubelet.cni.packages = [pkgs.cni-plugins];
 
-      boot.kernelModules = ["br_netfilter"];
+      boot.kernelModules = ["br_netfilter" "overlay"];
 
       services.kubernetes.kubelet.hostname = with config.networking;
         mkDefault (hostName + optionalString (domain != null) ".${domain}");
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
index 933ae481e968..8de6a3ba0d80 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
@@ -361,6 +361,7 @@ in
           tlsCertFile = mkDefault cert;
           tlsKeyFile = mkDefault key;
           serviceAccountKeyFile = mkDefault cfg.certs.serviceAccount.cert;
+          serviceAccountSigningKeyFile = mkDefault cfg.certs.serviceAccount.key;
           kubeletClientCaFile = mkDefault caCert;
           kubeletClientCertFile = mkDefault cfg.certs.apiserverKubeletClient.cert;
           kubeletClientKeyFile = mkDefault cfg.certs.apiserverKubeletClient.key;
diff --git a/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix b/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
index 7363441e5387..0b52f8afed83 100644
--- a/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
+++ b/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
@@ -274,6 +274,15 @@ in
         '';
       };
 
+      etcSlurm = mkOption {
+        type = types.path;
+        internal = true;
+        default = etcSlurm;
+        description = ''
+          Path to directory with slurm config files. This option is set by default from the
+          Slurm module and is meant to make the Slurm config file available to other modules.
+        '';
+      };
 
     };
 
@@ -308,7 +317,7 @@ in
           #!/bin/sh
           if [ -z "$SLURM_CONF" ]
           then
-            SLURM_CONF="${etcSlurm}/slurm.conf" "$EXE" "\$@"
+            SLURM_CONF="${cfg.etcSlurm}/slurm.conf" "$EXE" "\$@"
           else
             "$EXE" "\$0"
           fi
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix b/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
index 887a0cbf9a7a..0103cd723d2f 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -89,6 +89,11 @@ in
         example = "dbi:Pg:dbname=hydra;host=postgres.example.org;user=foo;";
         description = ''
           The DBI string for Hydra database connection.
+
+          NOTE: Attempts to set `application_name` will be overridden by
+          `hydra-TYPE` (where TYPE is e.g. `evaluator`, `queue-runner`,
+          etc.) in all hydra services to more easily distinguish where
+          queries are coming from.
         '';
       };
 
@@ -275,6 +280,8 @@ in
       keep-outputs = true
       keep-derivations = true
 
+
+    '' + optionalString (versionOlder (getVersion config.nix.package.out) "2.4pre") ''
       # The default (`true') slows Nix down a lot since the build farm
       # has so many GC roots.
       gc-check-reachability = false
@@ -284,7 +291,9 @@ in
       { wantedBy = [ "multi-user.target" ];
         requires = optional haveLocalDB "postgresql.service";
         after = optional haveLocalDB "postgresql.service";
-        environment = env;
+        environment = env // {
+          HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-init";
+        };
         preStart = ''
           mkdir -p ${baseDir}
           chown hydra.hydra ${baseDir}
@@ -339,7 +348,9 @@ in
       { wantedBy = [ "multi-user.target" ];
         requires = [ "hydra-init.service" ];
         after = [ "hydra-init.service" ];
-        environment = serverEnv;
+        environment = serverEnv // {
+          HYDRA_DBI = "${serverEnv.HYDRA_DBI};application_name=hydra-server";
+        };
         restartTriggers = [ hydraConf ];
         serviceConfig =
           { ExecStart =
@@ -361,6 +372,7 @@ in
         environment = env // {
           PGPASSFILE = "${baseDir}/pgpass-queue-runner"; # grrr
           IN_SYSTEMD = "1"; # to get log severity levels
+          HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-queue-runner";
         };
         serviceConfig =
           { ExecStart = "@${hydra-package}/bin/hydra-queue-runner hydra-queue-runner -v";
@@ -380,7 +392,9 @@ in
         after = [ "hydra-init.service" "network.target" ];
         path = with pkgs; [ hydra-package nettools jq ];
         restartTriggers = [ hydraConf ];
-        environment = env;
+        environment = env // {
+          HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-evaluator";
+        };
         serviceConfig =
           { ExecStart = "@${hydra-package}/bin/hydra-evaluator hydra-evaluator";
             User = "hydra";
@@ -392,7 +406,9 @@ in
     systemd.services.hydra-update-gc-roots =
       { requires = [ "hydra-init.service" ];
         after = [ "hydra-init.service" ];
-        environment = env;
+        environment = env // {
+          HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-update-gc-roots";
+        };
         serviceConfig =
           { ExecStart = "@${hydra-package}/bin/hydra-update-gc-roots hydra-update-gc-roots";
             User = "hydra";
@@ -403,7 +419,9 @@ in
     systemd.services.hydra-send-stats =
       { wantedBy = [ "multi-user.target" ];
         after = [ "hydra-init.service" ];
-        environment = env;
+        environment = env // {
+          HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-send-stats";
+        };
         serviceConfig =
           { ExecStart = "@${hydra-package}/bin/hydra-send-stats hydra-send-stats";
             User = "hydra";
@@ -417,6 +435,7 @@ in
         restartTriggers = [ hydraConf ];
         environment = env // {
           PGPASSFILE = "${baseDir}/pgpass-queue-runner";
+          HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-notify";
         };
         serviceConfig =
           { ExecStart = "@${hydra-package}/bin/hydra-notify hydra-notify";
diff --git a/nixpkgs/nixos/modules/services/databases/mysql.nix b/nixpkgs/nixos/modules/services/databases/mysql.nix
index 7d0a3f9afc48..cf105daeb04e 100644
--- a/nixpkgs/nixos/modules/services/databases/mysql.nix
+++ b/nixpkgs/nixos/modules/services/databases/mysql.nix
@@ -375,6 +375,18 @@ in
           fi
         '';
 
+        script = ''
+          # https://mariadb.com/kb/en/getting-started-with-mariadb-galera-cluster/#systemd-and-galera-recovery
+          if test -n "''${_WSREP_START_POSITION}"; then
+            if test -e "${cfg.package}/bin/galera_recovery"; then
+              VAR=$(cd ${cfg.package}/bin/..; ${cfg.package}/bin/galera_recovery); [[ $? -eq 0 ]] && export _WSREP_START_POSITION=$VAR || exit 1
+            fi
+          fi
+
+          # The last two environment variables are used for starting Galera clusters
+          exec ${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION
+        '';
+
         postStart = let
           # The super user account to use on *first* run of MySQL server
           superUser = if isMariaDB then cfg.user else "root";
@@ -481,8 +493,7 @@ in
           Type = if hasNotify then "notify" else "simple";
           Restart = "on-abort";
           RestartSec = "5s";
-          # The last two environment variables are used for starting Galera clusters
-          ExecStart = "${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION";
+
           # User and group
           User = cfg.user;
           Group = cfg.group;
diff --git a/nixpkgs/nixos/modules/services/databases/postgresql.nix b/nixpkgs/nixos/modules/services/databases/postgresql.nix
index f582b0592774..900185fbbdf7 100644
--- a/nixpkgs/nixos/modules/services/databases/postgresql.nix
+++ b/nixpkgs/nixos/modules/services/databases/postgresql.nix
@@ -18,7 +18,12 @@ let
     else toString value;
 
   # The main PostgreSQL configuration file.
-  configFile = pkgs.writeText "postgresql.conf" (concatStringsSep "\n" (mapAttrsToList (n: v: "${n} = ${toStr v}") cfg.settings));
+  configFile = pkgs.writeTextDir "postgresql.conf" (concatStringsSep "\n" (mapAttrsToList (n: v: "${n} = ${toStr v}") cfg.settings));
+
+  configFileCheck = pkgs.runCommand "postgresql-configfile-check" {} ''
+    ${cfg.package}/bin/postgres -D${configFile} -C config_file >/dev/null
+    touch $out
+  '';
 
   groupAccessAvailable = versionAtLeast postgresql.version "11.0";
 
@@ -53,6 +58,12 @@ in
         '';
       };
 
+      checkConfig = mkOption {
+        type = types.bool;
+        default = true;
+        description = "Check the syntax of the configuration file at compile time";
+      };
+
       dataDir = mkOption {
         type = types.path;
         defaultText = "/var/lib/postgresql/\${config.services.postgresql.package.psqlSchema}";
@@ -314,6 +325,8 @@ in
      "/share/postgresql"
     ];
 
+    system.extraDependencies = lib.optional (cfg.checkConfig && pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) configFileCheck;
+
     systemd.services.postgresql =
       { description = "PostgreSQL Server";
 
@@ -337,7 +350,7 @@ in
               touch "${cfg.dataDir}/.first_startup"
             fi
 
-            ln -sfn "${configFile}" "${cfg.dataDir}/postgresql.conf"
+            ln -sfn "${configFile}/postgresql.conf" "${cfg.dataDir}/postgresql.conf"
             ${optionalString (cfg.recoveryConfig != null) ''
               ln -sfn "${pkgs.writeText "recovery.conf" cfg.recoveryConfig}" \
                 "${cfg.dataDir}/recovery.conf"
diff --git a/nixpkgs/nixos/modules/services/desktops/geoclue2.nix b/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
index 6702bd395a03..0dc0643afbc9 100644
--- a/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
+++ b/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
@@ -188,7 +188,8 @@ in
 
     systemd.packages = [ package ];
 
-    # we cannot use DynamicUser as we need the the geoclue user to exist for the dbus policy to work
+    # we cannot use DynamicUser as we need the the geoclue user to exist for the
+    # dbus policy to work
     users = {
       users.geoclue = {
         isSystemUser = true;
@@ -217,6 +218,7 @@ in
         # we can't be part of a system service, and the agent should
         # be okay with the main service coming and going
         wantedBy = [ "default.target" ];
+        unitConfig.ConditionUser = "!@system";
         serviceConfig = {
           Type = "exec";
           ExecStart = "${package}/libexec/geoclue-2.0/demos/agent";
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/README.md b/nixpkgs/nixos/modules/services/desktops/pipewire/README.md
new file mode 100644
index 000000000000..87288a81cfe1
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/README.md
@@ -0,0 +1,6 @@
+# Updating
+
+1. Update the version & hash in pkgs/development/libraries/pipewire/default.nix
+2. run `nix build -f /path/to/nixpkgs/checkout pipewire pipewire.mediaSession`
+3. copy all JSON files from result/etc/pipewire and result-mediaSession/etc/pipewire/media-session.d to this directory
+4. add new files to the module config and passthru tests
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json
new file mode 100644
index 000000000000..53fc9cc96343
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json
@@ -0,0 +1,34 @@
+{
+  "properties": {},
+  "rules": [
+    {
+      "matches": [
+        {
+          "device.name": "~alsa_card.*"
+        }
+      ],
+      "actions": {
+        "update-props": {
+          "api.alsa.use-acp": true,
+          "api.acp.auto-profile": false,
+          "api.acp.auto-port": false
+        }
+      }
+    },
+    {
+      "matches": [
+        {
+          "node.name": "~alsa_input.*"
+        },
+        {
+          "node.name": "~alsa_output.*"
+        }
+      ],
+      "actions": {
+        "update-props": {
+          "node.pause-on-idle": false
+        }
+      }
+    }
+  ]
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
new file mode 100644
index 000000000000..bd00571bc35b
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
@@ -0,0 +1,36 @@
+{
+  "properties": {},
+  "rules": [
+    {
+      "matches": [
+        {
+          "device.name": "~bluez_card.*"
+        }
+      ],
+      "actions": {
+        "update-props": {
+          "bluez5.reconnect-profiles": [
+            "hfp_hf",
+            "hsp_hs",
+            "a2dp_sink"
+          ]
+        }
+      }
+    },
+    {
+      "matches": [
+        {
+          "node.name": "~bluez_input.*"
+        },
+        {
+          "node.name": "~bluez_output.*"
+        }
+      ],
+      "actions": {
+        "update-props": {
+          "node.pause-on-idle": false
+        }
+      }
+    }
+  ]
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/client-rt.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/client-rt.conf.json
new file mode 100644
index 000000000000..284d8c394a61
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/client-rt.conf.json
@@ -0,0 +1,39 @@
+{
+  "context.properties": {
+    "log.level": 0
+  },
+  "context.spa-libs": {
+    "audio.convert.*": "audioconvert/libspa-audioconvert",
+    "support.*": "support/libspa-support"
+  },
+  "context.modules": [
+    {
+      "name": "libpipewire-module-rtkit",
+      "args": {},
+      "flags": [
+        "ifexists",
+        "nofail"
+      ]
+    },
+    {
+      "name": "libpipewire-module-protocol-native"
+    },
+    {
+      "name": "libpipewire-module-client-node"
+    },
+    {
+      "name": "libpipewire-module-client-device"
+    },
+    {
+      "name": "libpipewire-module-adapter"
+    },
+    {
+      "name": "libpipewire-module-metadata"
+    },
+    {
+      "name": "libpipewire-module-session-manager"
+    }
+  ],
+  "filter.properties": {},
+  "stream.properties": {}
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/client.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/client.conf.json
new file mode 100644
index 000000000000..71294a0e78a2
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/client.conf.json
@@ -0,0 +1,31 @@
+{
+  "context.properties": {
+    "log.level": 0
+  },
+  "context.spa-libs": {
+    "audio.convert.*": "audioconvert/libspa-audioconvert",
+    "support.*": "support/libspa-support"
+  },
+  "context.modules": [
+    {
+      "name": "libpipewire-module-protocol-native"
+    },
+    {
+      "name": "libpipewire-module-client-node"
+    },
+    {
+      "name": "libpipewire-module-client-device"
+    },
+    {
+      "name": "libpipewire-module-adapter"
+    },
+    {
+      "name": "libpipewire-module-metadata"
+    },
+    {
+      "name": "libpipewire-module-session-manager"
+    }
+  ],
+  "filter.properties": {},
+  "stream.properties": {}
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/jack.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/jack.conf.json
new file mode 100644
index 000000000000..a6bd34917851
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/jack.conf.json
@@ -0,0 +1,28 @@
+{
+  "context.properties": {
+    "log.level": 0
+  },
+  "context.spa-libs": {
+    "support.*": "support/libspa-support"
+  },
+  "context.modules": [
+    {
+      "name": "libpipewire-module-rtkit",
+      "args": {},
+      "flags": [
+        "ifexists",
+        "nofail"
+      ]
+    },
+    {
+      "name": "libpipewire-module-protocol-native"
+    },
+    {
+      "name": "libpipewire-module-client-node"
+    },
+    {
+      "name": "libpipewire-module-metadata"
+    }
+  ],
+  "jack.properties": {}
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json
new file mode 100644
index 000000000000..62e59935dbe5
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json
@@ -0,0 +1,66 @@
+{
+  "context.properties": {},
+  "context.spa-libs": {
+    "api.bluez5.*": "bluez5/libspa-bluez5",
+    "api.alsa.*": "alsa/libspa-alsa",
+    "api.v4l2.*": "v4l2/libspa-v4l2",
+    "api.libcamera.*": "libcamera/libspa-libcamera"
+  },
+  "context.modules": [
+    {
+      "name": "libpipewire-module-rtkit",
+      "args": {},
+      "flags": [
+        "ifexists",
+        "nofail"
+      ]
+    },
+    {
+      "name": "libpipewire-module-protocol-native"
+    },
+    {
+      "name": "libpipewire-module-client-node"
+    },
+    {
+      "name": "libpipewire-module-client-device"
+    },
+    {
+      "name": "libpipewire-module-adapter"
+    },
+    {
+      "name": "libpipewire-module-metadata"
+    },
+    {
+      "name": "libpipewire-module-session-manager"
+    }
+  ],
+  "session.modules": {
+    "default": [
+      "flatpak",
+      "portal",
+      "v4l2",
+      "suspend-node",
+      "policy-node"
+    ],
+    "with-audio": [
+      "metadata",
+      "default-nodes",
+      "default-profile",
+      "default-routes",
+      "alsa-seq",
+      "alsa-monitor"
+    ],
+    "with-alsa": [
+      "with-audio"
+    ],
+    "with-jack": [
+      "with-audio"
+    ],
+    "with-pulseaudio": [
+      "with-audio",
+      "bluez5",
+      "restore-stream",
+      "streams-follow-default"
+    ]
+  }
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
new file mode 100644
index 000000000000..17a2d49bb1f3
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
@@ -0,0 +1,129 @@
+# pipewire example session manager.
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  json = pkgs.formats.json {};
+  cfg = config.services.pipewire.media-session;
+  enable32BitAlsaPlugins = cfg.alsa.support32Bit
+                           && pkgs.stdenv.isx86_64
+                           && pkgs.pkgsi686Linux.pipewire != null;
+
+  # Use upstream config files passed through spa-json-dump as the base
+  # Patched here as necessary for them to work with this module
+  defaults = {
+    alsa-monitor = (builtins.fromJSON (builtins.readFile ./alsa-monitor.conf.json));
+    bluez-monitor = (builtins.fromJSON (builtins.readFile ./bluez-monitor.conf.json));
+    media-session = (builtins.fromJSON (builtins.readFile ./media-session.conf.json));
+    v4l2-monitor = (builtins.fromJSON (builtins.readFile ./v4l2-monitor.conf.json));
+  };
+
+  configs = {
+    alsa-monitor = recursiveUpdate defaults.alsa-monitor cfg.config.alsa-monitor;
+    bluez-monitor = recursiveUpdate defaults.bluez-monitor cfg.config.bluez-monitor;
+    media-session = recursiveUpdate defaults.media-session cfg.config.media-session;
+    v4l2-monitor = recursiveUpdate defaults.v4l2-monitor cfg.config.v4l2-monitor;
+  };
+in {
+
+  meta = {
+    maintainers = teams.freedesktop.members;
+  };
+
+  ###### interface
+  options = {
+    services.pipewire.media-session = {
+      enable = mkOption {
+        type = types.bool;
+        default = config.services.pipewire.enable;
+        defaultText = "config.services.pipewire.enable";
+        description = "Example pipewire session manager";
+      };
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.pipewire.mediaSession;
+        example = literalExample "pkgs.pipewire.mediaSession";
+        description = ''
+          The pipewire-media-session derivation to use.
+        '';
+      };
+
+      config = {
+        media-session = mkOption {
+          type = json.type;
+          description = ''
+            Configuration for the media session core. For details see
+            https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
+          '';
+          default = {};
+        };
+
+        alsa-monitor = mkOption {
+          type = json.type;
+          description = ''
+            Configuration for the alsa monitor. For details see
+            https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
+          '';
+          default = {};
+        };
+
+        bluez-monitor = mkOption {
+          type = json.type;
+          description = ''
+            Configuration for the bluez5 monitor. For details see
+            https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
+          '';
+          default = {};
+        };
+
+        v4l2-monitor = mkOption {
+          type = json.type;
+          description = ''
+            Configuration for the V4L2 monitor. For details see
+            https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
+          '';
+          default = {};
+        };
+      };
+    };
+  };
+
+  ###### implementation
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+    systemd.packages = [ cfg.package ];
+    systemd.user.services.pipewire-media-session.wantedBy = [ "pipewire.service" ];
+
+    environment.etc."pipewire/media-session.d/media-session.conf" = {
+      source = json.generate "media-session.conf" configs.media-session;
+    };
+    environment.etc."pipewire/media-session.d/v4l2-monitor.conf" = {
+      source = json.generate "v4l2-monitor.conf" configs.v4l2-monitor;
+    };
+
+    environment.etc."pipewire/media-session.d/with-alsa" =
+      mkIf config.services.pipewire.alsa.enable {
+        text = "";
+      };
+    environment.etc."pipewire/media-session.d/alsa-monitor.conf" =
+      mkIf config.services.pipewire.alsa.enable {
+        source = json.generate "alsa-monitor.conf" configs.alsa-monitor;
+      };
+
+    environment.etc."pipewire/media-session.d/with-pulseaudio" =
+      mkIf config.services.pipewire.pulse.enable {
+        text = "";
+      };
+    environment.etc."pipewire/media-session.d/bluez-monitor.conf" =
+      mkIf config.services.pipewire.pulse.enable {
+        source = json.generate "bluez-monitor.conf" configs.bluez-monitor;
+      };
+
+    environment.etc."pipewire/media-session.d/with-jack" =
+      mkIf config.services.pipewire.jack.enable {
+        text = "";
+      };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json
new file mode 100644
index 000000000000..3e776fe75a2c
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json
@@ -0,0 +1,38 @@
+{
+  "context.properties": {},
+  "context.spa-libs": {
+    "audio.convert.*": "audioconvert/libspa-audioconvert",
+    "support.*": "support/libspa-support"
+  },
+  "context.modules": [
+    {
+      "name": "libpipewire-module-rtkit",
+      "args": {},
+      "flags": [
+        "ifexists",
+        "nofail"
+      ]
+    },
+    {
+      "name": "libpipewire-module-protocol-native"
+    },
+    {
+      "name": "libpipewire-module-client-node"
+    },
+    {
+      "name": "libpipewire-module-adapter"
+    },
+    {
+      "name": "libpipewire-module-metadata"
+    },
+    {
+      "name": "libpipewire-module-protocol-pulse",
+      "args": {
+        "server.address": [
+          "unix:native"
+        ]
+      }
+    }
+  ],
+  "stream.properties": {}
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json
new file mode 100644
index 000000000000..bae87dd66377
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json
@@ -0,0 +1,79 @@
+{
+  "context.properties": {
+    "link.max-buffers": 16,
+    "core.daemon": true,
+    "core.name": "pipewire-0"
+  },
+  "context.spa-libs": {
+    "audio.convert.*": "audioconvert/libspa-audioconvert",
+    "api.alsa.*": "alsa/libspa-alsa",
+    "api.v4l2.*": "v4l2/libspa-v4l2",
+    "api.libcamera.*": "libcamera/libspa-libcamera",
+    "api.bluez5.*": "bluez5/libspa-bluez5",
+    "api.vulkan.*": "vulkan/libspa-vulkan",
+    "api.jack.*": "jack/libspa-jack",
+    "support.*": "support/libspa-support"
+  },
+  "context.modules": [
+    {
+      "name": "libpipewire-module-rtkit",
+      "args": {},
+      "flags": [
+        "ifexists",
+        "nofail"
+      ]
+    },
+    {
+      "name": "libpipewire-module-protocol-native"
+    },
+    {
+      "name": "libpipewire-module-profiler"
+    },
+    {
+      "name": "libpipewire-module-metadata"
+    },
+    {
+      "name": "libpipewire-module-spa-device-factory"
+    },
+    {
+      "name": "libpipewire-module-spa-node-factory"
+    },
+    {
+      "name": "libpipewire-module-client-node"
+    },
+    {
+      "name": "libpipewire-module-client-device"
+    },
+    {
+      "name": "libpipewire-module-portal",
+      "flags": [
+        "ifexists",
+        "nofail"
+      ]
+    },
+    {
+      "name": "libpipewire-module-access",
+      "args": {}
+    },
+    {
+      "name": "libpipewire-module-adapter"
+    },
+    {
+      "name": "libpipewire-module-link-factory"
+    },
+    {
+      "name": "libpipewire-module-session-manager"
+    }
+  ],
+  "context.objects": [
+    {
+      "factory": "spa-node-factory",
+      "args": {
+        "factory.name": "support.node.driver",
+        "node.name": "Dummy-Driver",
+        "priority.driver": 8000
+      }
+    }
+  ],
+  "context.exec": []
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire.nix b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix
index 134becf6b0c4..dbd6c5d87e1a 100644
--- a/nixpkgs/nixos/modules/services/desktops/pipewire.nix
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix
@@ -4,6 +4,7 @@
 with lib;
 
 let
+  json = pkgs.formats.json {};
   cfg = config.services.pipewire;
   enable32BitAlsaPlugins = cfg.alsa.support32Bit
                            && pkgs.stdenv.isx86_64
@@ -17,6 +18,25 @@ let
     mkdir -p "$out/lib"
     ln -s "${cfg.package.jack}/lib" "$out/lib/pipewire"
   '';
+
+  # Use upstream config files passed through spa-json-dump as the base
+  # Patched here as necessary for them to work with this module
+  defaults = {
+    client = builtins.fromJSON (builtins.readFile ./client.conf.json);
+    client-rt = builtins.fromJSON (builtins.readFile ./client-rt.conf.json);
+    jack = builtins.fromJSON (builtins.readFile ./jack.conf.json);
+    # Remove session manager invocation from the upstream generated file, it points to the wrong path
+    pipewire = builtins.fromJSON (builtins.readFile ./pipewire.conf.json);
+    pipewire-pulse = builtins.fromJSON (builtins.readFile ./pipewire-pulse.conf.json);
+  };
+
+  configs = {
+    client = recursiveUpdate defaults.client cfg.config.client;
+    client-rt = recursiveUpdate defaults.client-rt cfg.config.client-rt;
+    jack = recursiveUpdate defaults.jack cfg.config.jack;
+    pipewire = recursiveUpdate defaults.pipewire cfg.config.pipewire;
+    pipewire-pulse = recursiveUpdate defaults.pipewire-pulse cfg.config.pipewire-pulse;
+  };
 in {
 
   meta = {
@@ -46,30 +66,51 @@ in {
         '';
       };
 
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
-        description = ''
-          Literal string to append to /etc/pipewire/pipewire.conf.
-        '';
-      };
-
-      sessionManager = mkOption {
-        type = types.nullOr types.string;
-        default = null;
-        example = literalExample ''"''${pipewire}/bin/pipewire-media-session"'';
-        description = ''
-          Path to the pipewire session manager executable.
-        '';
-      };
-
-      sessionManagerArguments = mkOption {
-        type = types.listOf types.string;
-        default = [];
-        example = literalExample ''[ "-p" "bluez5.msbc-support=true" ]'';
-        description = ''
-          Arguments passed to the pipewire session manager.
-        '';
+      config = {
+        client = mkOption {
+          type = json.type;
+          default = {};
+          description = ''
+            Configuration for pipewire clients. For details see
+            https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/client.conf.in
+          '';
+        };
+
+        client-rt = mkOption {
+          type = json.type;
+          default = {};
+          description = ''
+            Configuration for realtime pipewire clients. For details see
+            https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/client-rt.conf.in
+          '';
+        };
+
+        jack = mkOption {
+          type = json.type;
+          default = {};
+          description = ''
+            Configuration for the pipewire daemon's jack module. For details see
+            https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/jack.conf.in
+          '';
+        };
+
+        pipewire = mkOption {
+          type = json.type;
+          default = {};
+          description = ''
+            Configuration for the pipewire daemon. For details see
+            https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/pipewire.conf.in
+          '';
+        };
+
+        pipewire-pulse = mkOption {
+          type = json.type;
+          default = {};
+          description = ''
+            Configuration for the pipewire-pulse daemon. For details see
+            https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/pipewire-pulse.conf.in
+          '';
+        };
       };
 
       alsa = {
@@ -101,8 +142,6 @@ in {
       }
     ];
 
-    services.pipewire.sessionManager = mkDefault "${cfg.package}/bin/pipewire-media-session";
-
     environment.systemPackages = [ cfg.package ]
                                  ++ lib.optional cfg.jack.enable jack-libs;
 
@@ -137,47 +176,27 @@ in {
     environment.etc."alsa/conf.d/99-pipewire-default.conf" = mkIf cfg.alsa.enable {
       source = "${cfg.package}/share/alsa/alsa.conf.d/99-pipewire-default.conf";
     };
-    environment.sessionVariables.LD_LIBRARY_PATH =
-      lib.optional cfg.jack.enable "/run/current-system/sw/lib/pipewire";
 
+    environment.etc."pipewire/client.conf" = {
+      source = json.generate "client.conf" configs.client;
+    };
+    environment.etc."pipewire/client-rt.conf" = {
+      source = json.generate "client-rt.conf" configs.client-rt;
+    };
+    environment.etc."pipewire/jack.conf" = {
+      source = json.generate "jack.conf" configs.jack;
+    };
     environment.etc."pipewire/pipewire.conf" = {
-      # Adapted from src/daemon/pipewire.conf.in
-      text = ''
-        set-prop link.max-buffers 16 # version < 3 clients can't handle more
-
-        add-spa-lib audio.convert* audioconvert/libspa-audioconvert
-        add-spa-lib api.alsa.* alsa/libspa-alsa
-        add-spa-lib api.v4l2.* v4l2/libspa-v4l2
-        add-spa-lib api.libcamera.* libcamera/libspa-libcamera
-        add-spa-lib api.bluez5.* bluez5/libspa-bluez5
-        add-spa-lib api.vulkan.* vulkan/libspa-vulkan
-        add-spa-lib api.jack.* jack/libspa-jack
-        add-spa-lib support.* support/libspa-support
-
-        load-module libpipewire-module-rtkit # rt.prio=20 rt.time.soft=200000 rt.time.hard=200000
-        load-module libpipewire-module-protocol-native
-        load-module libpipewire-module-profiler
-        load-module libpipewire-module-metadata
-        load-module libpipewire-module-spa-device-factory
-        load-module libpipewire-module-spa-node-factory
-        load-module libpipewire-module-client-node
-        load-module libpipewire-module-client-device
-        load-module libpipewire-module-portal
-        load-module libpipewire-module-access
-        load-module libpipewire-module-adapter
-        load-module libpipewire-module-link-factory
-        load-module libpipewire-module-session-manager
-
-        create-object spa-node-factory factory.name=support.node.driver node.name=Dummy priority.driver=8000
-
-        exec ${cfg.sessionManager} ${lib.concatStringsSep " " cfg.sessionManagerArguments}
-
-        ${cfg.extraConfig}
-      '';
+      source = json.generate "pipewire.conf" configs.pipewire;
+    };
+    environment.etc."pipewire/pipewire-pulse.conf" = {
+      source = json.generate "pipewire-pulse.conf" configs.pipewire-pulse;
     };
 
-    environment.etc."pipewire/media-session.d/with-alsa" = mkIf cfg.alsa.enable { text = ""; };
-    environment.etc."pipewire/media-session.d/with-pulseaudio" = mkIf cfg.pulse.enable { text = ""; };
-    environment.etc."pipewire/media-session.d/with-jack" = mkIf cfg.jack.enable { text = ""; };
+    environment.sessionVariables.LD_LIBRARY_PATH =
+      lib.optional cfg.jack.enable "/run/current-system/sw/lib/pipewire";
+
+    # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/464#note_723554
+    systemd.user.services.pipewire.environment."PIPEWIRE_LINK_PASSIVE" = "1";
   };
 }
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json
new file mode 100644
index 000000000000..b08cba1b604b
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json
@@ -0,0 +1,30 @@
+{
+  "properties": {},
+  "rules": [
+    {
+      "matches": [
+        {
+          "device.name": "~v4l2_device.*"
+        }
+      ],
+      "actions": {
+        "update-props": {}
+      }
+    },
+    {
+      "matches": [
+        {
+          "node.name": "~v4l2_input.*"
+        },
+        {
+          "node.name": "~v4l2_output.*"
+        }
+      ],
+      "actions": {
+        "update-props": {
+          "node.pause-on-idle": false
+        }
+      }
+    }
+  ]
+}
diff --git a/nixpkgs/nixos/modules/services/display-managers/greetd.nix b/nixpkgs/nixos/modules/services/display-managers/greetd.nix
new file mode 100644
index 000000000000..c3072bf09964
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/display-managers/greetd.nix
@@ -0,0 +1,106 @@
+{ config, lib, pkgs, ... }:
+with lib;
+
+let
+  cfg = config.services.greetd;
+  tty = "tty${toString cfg.vt}";
+  settingsFormat = pkgs.formats.toml {};
+in
+{
+  options.services.greetd = {
+    enable = mkEnableOption "greetd";
+
+    package = mkOption {
+      type = types.package;
+      default = pkgs.greetd.greetd;
+      defaultText = "pkgs.greetd.greetd";
+      description = "The greetd package that should be used.";
+    };
+
+    settings = mkOption {
+      type = settingsFormat.type;
+      example = literalExample ''
+        {
+          default_session = {
+            command = "''${pkgs.greetd.greetd}/bin/agreety --cmd sway";
+          };
+        }
+      '';
+      description = ''
+        greetd configuration (<link xlink:href="https://man.sr.ht/~kennylevinsen/greetd/">documentation</link>)
+        as a Nix attribute set.
+      '';
+    };
+
+    vt = mkOption  {
+      type = types.int;
+      default = 1;
+      description = ''
+        The virtual console (tty) that greetd should use. This option also disables getty on that tty.
+      '';
+    };
+
+    restart = mkOption {
+      type = types.bool;
+      default = !(cfg.settings ? initial_session);
+      defaultText = "!(config.services.greetd.settings ? initial_session)";
+      description = ''
+        Wether to restart greetd when it terminates (e.g. on failure).
+        This is usually desirable so a user can always log in, but should be disabled when using 'settings.initial_session' (autologin),
+        because every greetd restart will trigger the autologin again.
+      '';
+    };
+  };
+  config = mkIf cfg.enable {
+
+    services.greetd.settings.terminal.vt = mkDefault cfg.vt;
+    services.greetd.settings.default_session = mkDefault "greeter";
+
+    security.pam.services.greetd = {
+      allowNullPassword = true;
+      startSession = true;
+    };
+
+    # This prevents nixos-rebuild from killing greetd by activating getty again
+    systemd.services."autovt@${tty}".enable = false;
+
+    systemd.services.greetd = {
+      unitConfig = {
+        Wants = [
+          "systemd-user-sessions.service"
+        ];
+        After = [
+          "systemd-user-sessions.service"
+          "plymouth-quit-wait.service"
+          "getty@${tty}.service"
+        ];
+        Conflicts = [
+          "getty@${tty}.service"
+        ];
+      };
+
+      serviceConfig = {
+        ExecStart = "${pkgs.greetd.greetd}/bin/greetd --config ${settingsFormat.generate "greetd.toml" cfg.settings}";
+
+        Restart = mkIf cfg.restart "always";
+
+        # Defaults from greetd upstream configuration
+        IgnoreSIGPIPE = false;
+        SendSIGHUP = true;
+        TimeoutStopSec = "30s";
+        KeyringMode = "shared";
+      };
+
+      # Don't kill a user session when using nixos-rebuild
+      restartIfChanged = false;
+
+      wantedBy = [ "graphical.target" ];
+    };
+
+    systemd.defaultUnit = "graphical.target";
+
+    users.users.greeter.isSystemUser = true;
+  };
+
+  meta.maintainers = with maintainers; [ queezle ];
+}
diff --git a/nixpkgs/nixos/modules/services/games/factorio.nix b/nixpkgs/nixos/modules/services/games/factorio.nix
index 73099ae33634..a1aa5739d06b 100644
--- a/nixpkgs/nixos/modules/services/games/factorio.nix
+++ b/nixpkgs/nixos/modules/services/games/factorio.nix
@@ -36,6 +36,7 @@ let
     only_admins_can_pause_the_game = true;
     autosave_only_on_server = true;
     admins = [];
+    non_blocking_saving = cfg.nonBlockingSaving;
   } // cfg.extraSettings;
   serverSettingsFile = pkgs.writeText "server-settings.json" (builtins.toJSON (filterAttrsRecursive (n: v: v != null) serverSettings));
   modDir = pkgs.factorio-utils.mkModDirDrv cfg.mods;
@@ -193,6 +194,15 @@ in
           Autosave interval in minutes.
         '';
       };
+      nonBlockingSaving = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Highly experimental feature, enable only at your own risk of losing your saves.
+          On UNIX systems, server will fork itself to create an autosave.
+          Autosaving on connected Windows clients will be disabled regardless of autosave_only_on_server option.
+        '';
+      };
     };
   };
 
diff --git a/nixpkgs/nixos/modules/services/games/minetest-server.nix b/nixpkgs/nixos/modules/services/games/minetest-server.nix
index f52079fc1ef6..2111c970d4f2 100644
--- a/nixpkgs/nixos/modules/services/games/minetest-server.nix
+++ b/nixpkgs/nixos/modules/services/games/minetest-server.nix
@@ -4,7 +4,7 @@ with lib;
 
 let
   cfg   = config.services.minetest-server;
-  flag  = val: name: if val != null then "--${name} ${val} " else "";
+  flag  = val: name: if val != null then "--${name} ${toString val} " else "";
   flags = [
     (flag cfg.gameId "gameid")
     (flag cfg.world "world")
diff --git a/nixpkgs/nixos/modules/services/hardware/acpid.nix b/nixpkgs/nixos/modules/services/hardware/acpid.nix
index 4c97485d9726..3e619fe32ef1 100644
--- a/nixpkgs/nixos/modules/services/hardware/acpid.nix
+++ b/nixpkgs/nixos/modules/services/hardware/acpid.nix
@@ -3,21 +3,22 @@
 with lib;
 
 let
+  cfg = config.services.acpid;
 
   canonicalHandlers = {
     powerEvent = {
       event = "button/power.*";
-      action = config.services.acpid.powerEventCommands;
+      action = cfg.powerEventCommands;
     };
 
     lidEvent = {
       event = "button/lid.*";
-      action = config.services.acpid.lidEventCommands;
+      action = cfg.lidEventCommands;
     };
 
     acEvent = {
       event = "ac_adapter.*";
-      action = config.services.acpid.acEventCommands;
+      action = cfg.acEventCommands;
     };
   };
 
@@ -33,7 +34,7 @@ let
             echo "event=${handler.event}" > $fn
             echo "action=${pkgs.writeShellScriptBin "${name}.sh" handler.action }/bin/${name}.sh '%e'" >> $fn
           '';
-        in concatStringsSep "\n" (mapAttrsToList f (canonicalHandlers // config.services.acpid.handlers))
+        in concatStringsSep "\n" (mapAttrsToList f (canonicalHandlers // cfg.handlers))
       }
     '';
 
@@ -47,11 +48,7 @@ in
 
     services.acpid = {
 
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = "Whether to enable the ACPI daemon.";
-      };
+      enable = mkEnableOption "the ACPI daemon";
 
       logEvents = mkOption {
         type = types.bool;
@@ -129,26 +126,28 @@ in
 
   ###### implementation
 
-  config = mkIf config.services.acpid.enable {
+  config = mkIf cfg.enable {
 
     systemd.services.acpid = {
       description = "ACPI Daemon";
+      documentation = [ "man:acpid(8)" ];
 
       wantedBy = [ "multi-user.target" ];
-      after = [ "systemd-udev-settle.service" ];
-
-      path = [ pkgs.acpid ];
 
       serviceConfig = {
-        Type = "forking";
+        ExecStart = escapeShellArgs
+          ([ "${pkgs.acpid}/bin/acpid"
+             "--foreground"
+             "--netlink"
+             "--confdir" "${acpiConfDir}"
+           ] ++ optional cfg.logEvents "--logevents"
+          );
       };
-
       unitConfig = {
         ConditionVirtualization = "!systemd-nspawn";
         ConditionPathExists = [ "/proc/acpi" ];
       };
 
-      script = "acpid ${optionalString config.services.acpid.logEvents "--logevents"} --confdir ${acpiConfDir}";
     };
 
   };
diff --git a/nixpkgs/nixos/modules/services/hardware/bluetooth.nix b/nixpkgs/nixos/modules/services/hardware/bluetooth.nix
index 6f5a6d3bf288..08ad90126b1d 100644
--- a/nixpkgs/nixos/modules/services/hardware/bluetooth.nix
+++ b/nixpkgs/nixos/modules/services/hardware/bluetooth.nix
@@ -1,12 +1,39 @@
 { config, lib, pkgs, ... }:
-
-with lib;
-
 let
   cfg = config.hardware.bluetooth;
-  bluez-bluetooth = cfg.package;
+  package = cfg.package;
+
+  inherit (lib)
+    mkDefault mkEnableOption mkIf mkOption
+    mkRenamedOptionModule mkRemovedOptionModule
+    concatStringsSep escapeShellArgs
+    optional optionals optionalAttrs recursiveUpdate types;
+
+  cfgFmt = pkgs.formats.ini { };
+
+  # bluez will complain if some of the sections are not found, so just make them
+  # empty (but present in the file) for now
+  defaults = {
+    General.ControllerMode = "dual";
+    Controller = { };
+    GATT = { };
+    Policy.AutoEnable = cfg.powerOnBoot;
+  };
+
+  hasDisabledPlugins = builtins.length cfg.disabledPlugins > 0;
 
-in {
+in
+{
+  imports = [
+    (mkRenamedOptionModule [ "hardware" "bluetooth" "config" ] [ "hardware" "bluetooth" "settings" ])
+    (mkRemovedOptionModule [ "hardware" "bluetooth" "extraConfig" ] ''
+      Use hardware.bluetooth.settings instead.
+
+      This is part of the general move to use structured settings instead of raw
+      text for config as introduced by RFC0042:
+      https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
+    '')
+  ];
 
   ###### interface
 
@@ -18,7 +45,7 @@ in {
       hsphfpd.enable = mkEnableOption "support for hsphfpd[-prototype] implementation";
 
       powerOnBoot = mkOption {
-        type    = types.bool;
+        type = types.bool;
         default = true;
         description = "Whether to power up the default Bluetooth controller on boot.";
       };
@@ -38,8 +65,15 @@ in {
         '';
       };
 
-      config = mkOption {
-        type = with types; attrsOf (attrsOf (oneOf [ bool int str ]));
+      disabledPlugins = mkOption {
+        type = types.listOf types.str;
+        default = [ ];
+        description = "Built-in plugins to disable";
+      };
+
+      settings = mkOption {
+        type = cfgFmt.type;
+        default = { };
         example = {
           General = {
             ControllerMode = "bredr";
@@ -47,79 +81,65 @@ in {
         };
         description = "Set configuration for system-wide bluetooth (/etc/bluetooth/main.conf).";
       };
-
-      extraConfig = mkOption {
-        type = with types; nullOr lines;
-        default = null;
-        example = ''
-          [General]
-          ControllerMode = bredr
-        '';
-        description = ''
-          Set additional configuration for system-wide bluetooth (/etc/bluetooth/main.conf).
-        '';
-      };
     };
-
   };
 
   ###### implementation
 
   config = mkIf cfg.enable {
-    warnings = optional (cfg.extraConfig != null) "hardware.bluetooth.`extraConfig` is deprecated, please use hardware.bluetooth.`config`.";
+    environment.systemPackages = [ package ]
+      ++ optional cfg.hsphfpd.enable pkgs.hsphfpd;
 
-    hardware.bluetooth.config = {
-      Policy = {
-        AutoEnable = mkDefault cfg.powerOnBoot;
-      };
-    };
-
-    environment.systemPackages = [ bluez-bluetooth ]
-      ++ optionals cfg.hsphfpd.enable [ pkgs.hsphfpd ];
-
-    environment.etc."bluetooth/main.conf"= {
-      source = pkgs.writeText "main.conf"
-        (generators.toINI { } cfg.config + optionalString (cfg.extraConfig != null) cfg.extraConfig);
-    };
-
-    services.udev.packages = [ bluez-bluetooth ];
-    services.dbus.packages = [ bluez-bluetooth ]
-      ++ optionals cfg.hsphfpd.enable [ pkgs.hsphfpd ];
-    systemd.packages       = [ bluez-bluetooth ];
+    environment.etc."bluetooth/main.conf".source =
+      cfgFmt.generate "main.conf" (recursiveUpdate defaults cfg.settings);
+    services.udev.packages = [ package ];
+    services.dbus.packages = [ package ]
+      ++ optional cfg.hsphfpd.enable pkgs.hsphfpd;
+    systemd.packages = [ package ];
 
     systemd.services = {
-      bluetooth = {
+      bluetooth =
+        let
+          # `man bluetoothd` will refer to main.conf in the nix store but bluez
+          # will in fact load the configuration file at /etc/bluetooth/main.conf
+          # so force it here to avoid any ambiguity and things suddenly breaking
+          # if/when the bluez derivation is changed.
+          args = [ "-f" "/etc/bluetooth/main.conf" ]
+            ++ optional hasDisabledPlugins
+            "--noplugin=${concatStringsSep "," cfg.disabledPlugins}";
+        in
+        {
+          wantedBy = [ "bluetooth.target" ];
+          aliases = [ "dbus-org.bluez.service" ];
+          serviceConfig.ExecStart = [
+            ""
+            "${package}/libexec/bluetooth/bluetoothd ${escapeShellArgs args}"
+          ];
+          # restarting can leave people without a mouse/keyboard
+          unitConfig.X-RestartIfChanged = false;
+        };
+    }
+    // (optionalAttrs cfg.hsphfpd.enable {
+      hsphfpd = {
+        after = [ "bluetooth.service" ];
+        requires = [ "bluetooth.service" ];
         wantedBy = [ "bluetooth.target" ];
-        aliases  = [ "dbus-org.bluez.service" ];
-        # restarting can leave people without a mouse/keyboard
-        unitConfig.X-RestartIfChanged = false;
+
+        description = "A prototype implementation used for connecting HSP/HFP Bluetooth devices";
+        serviceConfig.ExecStart = "${pkgs.hsphfpd}/bin/hsphfpd.pl";
       };
-    }
-      // (optionalAttrs cfg.hsphfpd.enable {
-        hsphfpd = {
-          after = [ "bluetooth.service" ];
-          requires = [ "bluetooth.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "A prototype implementation used for connecting HSP/HFP Bluetooth devices";
-          serviceConfig.ExecStart = "${pkgs.hsphfpd}/bin/hsphfpd.pl";
-        };
-      })
-      ;
+    });
 
     systemd.user.services = {
       obex.aliases = [ "dbus-org.bluez.obex.service" ];
     }
-      // (optionalAttrs cfg.hsphfpd.enable {
-        telephony_client = {
-          wantedBy = [ "default.target"];
-
-          description = "telephony_client for hsphfpd";
-          serviceConfig.ExecStart = "${pkgs.hsphfpd}/bin/telephony_client.pl";
-        };
-      })
-      ;
+    // optionalAttrs cfg.hsphfpd.enable {
+      telephony_client = {
+        wantedBy = [ "default.target" ];
 
+        description = "telephony_client for hsphfpd";
+        serviceConfig.ExecStart = "${pkgs.hsphfpd}/bin/telephony_client.pl";
+      };
+    };
   };
-
 }
diff --git a/nixpkgs/nixos/modules/services/hardware/sane.nix b/nixpkgs/nixos/modules/services/hardware/sane.nix
index 03070a8f9e7c..e5a01a8a27d9 100644
--- a/nixpkgs/nixos/modules/services/hardware/sane.nix
+++ b/nixpkgs/nixos/modules/services/hardware/sane.nix
@@ -4,9 +4,7 @@ with lib;
 
 let
 
-  pkg = if config.hardware.sane.snapshot
-    then pkgs.sane-backends-git
-    else pkgs.sane-backends;
+  pkg = pkgs.sane-backends;
 
   sanedConf = pkgs.writeTextFile {
     name = "saned.conf";
@@ -32,7 +30,7 @@ let
   };
 
   backends = [ pkg netConf ] ++ optional config.services.saned.enable sanedConf ++ config.hardware.sane.extraBackends;
-  saneConfig = pkgs.mkSaneConfig { paths = backends; };
+  saneConfig = pkgs.mkSaneConfig { paths = backends; inherit (config.hardware.sane) disabledDefaultBackends; };
 
   enabled = config.hardware.sane.enable || config.services.saned.enable;
 
@@ -75,6 +73,16 @@ in
       example = literalExample "[ pkgs.hplipWithPlugin ]";
     };
 
+    hardware.sane.disabledDefaultBackends = mkOption {
+      type = types.listOf types.str;
+      default = [];
+      example = [ "v4l" ];
+      description = ''
+        Names of backends which are enabled by default but should be disabled.
+        See <literal>$SANE_CONFIG_DIR/dll.conf</literal> for the list of possible names.
+      '';
+    };
+
     hardware.sane.configDir = mkOption {
       type = types.str;
       internal = true;
diff --git a/nixpkgs/nixos/modules/services/hardware/spacenavd.nix b/nixpkgs/nixos/modules/services/hardware/spacenavd.nix
new file mode 100644
index 000000000000..cecc4d6f029b
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/hardware/spacenavd.nix
@@ -0,0 +1,26 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let cfg = config.hardware.spacenavd;
+
+in {
+
+  options = {
+    hardware.spacenavd = {
+      enable = mkEnableOption "spacenavd to support 3DConnexion devices";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.spacenavd = {
+      description = "Daemon for the Spacenavigator 6DOF mice by 3Dconnexion";
+      after = [ "syslog.target" ];
+      wantedBy = [ "graphical.target" ];
+      serviceConfig = {
+        ExecStart = "${pkgs.spacenavd}/bin/spacenavd -d -l syslog";
+        StandardError = "syslog";
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/hardware/tcsd.nix b/nixpkgs/nixos/modules/services/hardware/tcsd.nix
index 68cb5d791aa3..0d36bce357ba 100644
--- a/nixpkgs/nixos/modules/services/hardware/tcsd.nix
+++ b/nixpkgs/nixos/modules/services/hardware/tcsd.nix
@@ -119,22 +119,31 @@ in
 
     environment.systemPackages = [ pkgs.trousers ];
 
-#    system.activationScripts.tcsd =
-#      ''
-#        chown ${cfg.user}:${cfg.group} ${tcsdConf}
-#      '';
+    services.udev.extraRules = ''
+      # Give tcsd ownership of all TPM devices
+      KERNEL=="tpm[0-9]*", MODE="0660", OWNER="${cfg.user}", GROUP="${cfg.group}"
+      # Tag TPM devices to create a .device unit for tcsd to depend on
+      ACTION=="add", KERNEL=="tpm[0-9]*", TAG+="systemd"
+    '';
+
+    systemd.tmpfiles.rules = [
+      # Initialise the state directory
+      "d ${cfg.stateDir} 0770 ${cfg.user} ${cfg.group} - -"
+    ];
 
     systemd.services.tcsd = {
-      description = "TCSD";
-      after = [ "systemd-udev-settle.service" ];
+      description = "Manager for Trusted Computing resources";
+      documentation = [ "man:tcsd(8)" ];
+
+      requires = [ "dev-tpm0.device" ];
+      after = [ "dev-tpm0.device" ];
       wantedBy = [ "multi-user.target" ];
-      path = [ pkgs.trousers ];
-      preStart =
-        ''
-        mkdir -m 0700 -p ${cfg.stateDir}
-        chown -R ${cfg.user}:${cfg.group} ${cfg.stateDir}
-        '';
-      serviceConfig.ExecStart = "${pkgs.trousers}/sbin/tcsd -f -c ${tcsdConf}";
+
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart = "${pkgs.trousers}/sbin/tcsd -f -c ${tcsdConf}";
+      };
     };
 
     users.users = optionalAttrs (cfg.user == "tss") {
diff --git a/nixpkgs/nixos/modules/services/hardware/trezord.nix b/nixpkgs/nixos/modules/services/hardware/trezord.nix
index 8c609bbf825b..a65d4250c2e5 100644
--- a/nixpkgs/nixos/modules/services/hardware/trezord.nix
+++ b/nixpkgs/nixos/modules/services/hardware/trezord.nix
@@ -48,7 +48,7 @@ in {
 
     systemd.services.trezord = {
       description = "Trezor Bridge";
-      after = [ "systemd-udev-settle.service" "network.target" ];
+      after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       path = [];
       serviceConfig = {
diff --git a/nixpkgs/nixos/modules/services/hardware/udev.nix b/nixpkgs/nixos/modules/services/hardware/udev.nix
index 63027f7744dc..d48b5444677c 100644
--- a/nixpkgs/nixos/modules/services/hardware/udev.nix
+++ b/nixpkgs/nixos/modules/services/hardware/udev.nix
@@ -202,13 +202,27 @@ in
         '';
       };
 
-      extraRules = mkOption {
+      initrdRules = mkOption {
         default = "";
         example = ''
           SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
         '';
         type = types.lines;
         description = ''
+          <command>udev</command> rules to include in the initrd
+          <emphasis>only</emphasis>. They'll be written into file
+          <filename>99-local.rules</filename>. Thus they are read and applied
+          after the essential initrd rules.
+        '';
+      };
+
+      extraRules = mkOption {
+        default = "";
+        example = ''
+          ENV{ID_VENDOR_ID}=="046d", ENV{ID_MODEL_ID}=="0825", ENV{PULSE_IGNORE}="1"
+        '';
+        type = types.lines;
+        description = ''
           Additional <command>udev</command> rules. They'll be written
           into file <filename>99-local.rules</filename>. Thus they are
           read and applied after all other rules.
@@ -284,6 +298,13 @@ in
 
     boot.kernelParams = mkIf (!config.networking.usePredictableInterfaceNames) [ "net.ifnames=0" ];
 
+    boot.initrd.extraUdevRulesCommands = optionalString (cfg.initrdRules != "")
+      ''
+        cat <<'EOF' > $out/99-local.rules
+        ${cfg.initrdRules}
+        EOF
+      '';
+
     environment.etc =
       {
         "udev/rules.d".source = udevRules;
diff --git a/nixpkgs/nixos/modules/services/hardware/xow.nix b/nixpkgs/nixos/modules/services/hardware/xow.nix
index a18d60ad83be..311181176bd8 100644
--- a/nixpkgs/nixos/modules/services/hardware/xow.nix
+++ b/nixpkgs/nixos/modules/services/hardware/xow.nix
@@ -10,7 +10,10 @@ in {
   config = lib.mkIf cfg.enable {
     hardware.uinput.enable = true;
 
+    boot.extraModprobeConfig = lib.readFile "${pkgs.xow}/lib/modprobe.d/xow-blacklist.conf";
+
     systemd.packages = [ pkgs.xow ];
+    systemd.services.xow.wantedBy = [ "multi-user.target" ];
 
     services.udev.packages = [ pkgs.xow ];
   };
diff --git a/nixpkgs/nixos/modules/services/logging/graylog.nix b/nixpkgs/nixos/modules/services/logging/graylog.nix
index a889a44d4b2b..af70d27fcf99 100644
--- a/nixpkgs/nixos/modules/services/logging/graylog.nix
+++ b/nixpkgs/nixos/modules/services/logging/graylog.nix
@@ -39,7 +39,6 @@ in
         type = types.package;
         default = pkgs.graylog;
         defaultText = "pkgs.graylog";
-        example = literalExample "pkgs.graylog";
         description = "Graylog package to use.";
       };
 
@@ -138,14 +137,13 @@ in
       "d '${cfg.messageJournalDir}' - ${cfg.user} - - -"
     ];
 
-    systemd.services.graylog = with pkgs; {
+    systemd.services.graylog = {
       description = "Graylog Server";
       wantedBy = [ "multi-user.target" ];
       environment = {
-        JAVA_HOME = jre;
         GRAYLOG_CONF = "${confFile}";
       };
-      path = [ pkgs.jre_headless pkgs.which pkgs.procps ];
+      path = [ pkgs.which pkgs.procps ];
       preStart = ''
         rm -rf /var/lib/graylog/plugins || true
         mkdir -p /var/lib/graylog/plugins -m 755
diff --git a/nixpkgs/nixos/modules/services/logging/logstash.nix b/nixpkgs/nixos/modules/services/logging/logstash.nix
index a4fc315d080d..7a2f5681612c 100644
--- a/nixpkgs/nixos/modules/services/logging/logstash.nix
+++ b/nixpkgs/nixos/modules/services/logging/logstash.nix
@@ -159,10 +159,9 @@ in
   ###### implementation
 
   config = mkIf cfg.enable {
-    systemd.services.logstash = with pkgs; {
+    systemd.services.logstash = {
       description = "Logstash Daemon";
       wantedBy = [ "multi-user.target" ];
-      environment = { JAVA_HOME = jre; };
       path = [ pkgs.bash ];
       serviceConfig = {
         ExecStartPre = ''${pkgs.coreutils}/bin/mkdir -p "${cfg.dataDir}" ; ${pkgs.coreutils}/bin/chmod 700 "${cfg.dataDir}"'';
diff --git a/nixpkgs/nixos/modules/services/logging/vector.nix b/nixpkgs/nixos/modules/services/logging/vector.nix
index a7c54ad75fde..be36b2a41bba 100644
--- a/nixpkgs/nixos/modules/services/logging/vector.nix
+++ b/nixpkgs/nixos/modules/services/logging/vector.nix
@@ -3,7 +3,8 @@
 with lib;
 let cfg = config.services.vector;
 
-in {
+in
+{
   options.services.vector = {
     enable = mkEnableOption "Vector";
 
@@ -37,25 +38,27 @@ in {
       wantedBy = [ "multi-user.target" ];
       after = [ "network-online.target" ];
       requires = [ "network-online.target" ];
-      serviceConfig = let
-        format = pkgs.formats.toml { };
-        conf = format.generate "vector.toml" cfg.settings;
-        validateConfig = file:
-          pkgs.runCommand "validate-vector-conf" { } ''
-            ${pkgs.vector}/bin/vector validate --no-topology --no-environment "${file}"
-            ln -s "${file}" "$out"
-          '';
-      in {
-        ExecStart = "${pkgs.vector}/bin/vector --config ${validateConfig conf}";
-        User = "vector";
-        Group = "vector";
-        Restart = "no";
-        StateDirectory = "vector";
-        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
-        AmbientCapabilities = "CAP_NET_BIND_SERVICE";
-        # This group is required for accessing journald.
-        SupplementaryGroups = mkIf cfg.journaldAccess "systemd-journal";
-      };
+      serviceConfig =
+        let
+          format = pkgs.formats.toml { };
+          conf = format.generate "vector.toml" cfg.settings;
+          validateConfig = file:
+            pkgs.runCommand "validate-vector-conf" { } ''
+              ${pkgs.vector}/bin/vector validate --no-environment "${file}"
+              ln -s "${file}" "$out"
+            '';
+        in
+        {
+          ExecStart = "${pkgs.vector}/bin/vector --config ${validateConfig conf}";
+          User = "vector";
+          Group = "vector";
+          Restart = "no";
+          StateDirectory = "vector";
+          ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+          AmbientCapabilities = "CAP_NET_BIND_SERVICE";
+          # This group is required for accessing journald.
+          SupplementaryGroups = mkIf cfg.journaldAccess "systemd-journal";
+        };
     };
   };
 }
diff --git a/nixpkgs/nixos/modules/services/mail/mlmmj.nix b/nixpkgs/nixos/modules/services/mail/mlmmj.nix
index d58d93c4214c..fd74f2dc5f07 100644
--- a/nixpkgs/nixos/modules/services/mail/mlmmj.nix
+++ b/nixpkgs/nixos/modules/services/mail/mlmmj.nix
@@ -16,7 +16,14 @@ let
   alias = domain: list: "${list}: \"|${pkgs.mlmmj}/bin/mlmmj-receive -L ${listDir domain list}/\"";
   subjectPrefix = list: "[${list}]";
   listAddress = domain: list: "${list}@${domain}";
-  customHeaders = domain: list: [ "List-Id: ${list}" "Reply-To: ${list}@${domain}" ];
+  customHeaders = domain: list: [
+    "List-Id: ${list}"
+    "Reply-To: ${list}@${domain}"
+    "List-Post: <mailto:${list}@${domain}>"
+    "List-Help: <mailto:${list}+help@${domain}>"
+    "List-Subscribe: <mailto:${list}+subscribe@${domain}>"
+    "List-Unsubscribe: <mailto:${list}+unsubscribe@${domain}>"
+  ];
   footer = domain: list: "To unsubscribe send a mail to ${list}+unsubscribe@${domain}";
   createList = d: l:
     let ctlDir = listCtl d l; in
@@ -110,17 +117,29 @@ in
     services.postfix = {
       enable = true;
       recipientDelimiter= "+";
-      extraMasterConf = ''
-        mlmmj unix - n n - - pipe flags=ORhu user=mlmmj argv=${pkgs.mlmmj}/bin/mlmmj-receive -F -L ${spoolDir}/$nexthop
-      '';
+      masterConfig.mlmmj = {
+        type = "unix";
+        private = true;
+        privileged = true;
+        chroot = false;
+        wakeup = 0;
+        command = "pipe";
+        args = [
+          "flags=ORhu"
+          "user=mlmmj"
+          "argv=${pkgs.mlmmj}/bin/mlmmj-receive"
+          "-F"
+          "-L"
+          "${spoolDir}/$nexthop"
+        ];
+      };
 
       extraAliases = concatMapLines (alias cfg.listDomain) cfg.mailLists;
 
-      extraConfig = ''
-        transport_maps = hash:${stateDir}/transports
-        virtual_alias_maps = hash:${stateDir}/virtuals
-        propagate_unmatched_extensions = virtual
-      '';
+      extraConfig = "propagate_unmatched_extensions = virtual";
+
+      virtual = concatMapLines (virtual cfg.listDomain) cfg.mailLists;
+      transport = concatMapLines (transport cfg.listDomain) cfg.mailLists;
     };
 
     environment.systemPackages = [ pkgs.mlmmj ];
@@ -129,10 +148,8 @@ in
           ${pkgs.coreutils}/bin/mkdir -p ${stateDir} ${spoolDir}/${cfg.listDomain}
           ${pkgs.coreutils}/bin/chown -R ${cfg.user}:${cfg.group} ${spoolDir}
           ${concatMapLines (createList cfg.listDomain) cfg.mailLists}
-          echo "${concatMapLines (virtual cfg.listDomain) cfg.mailLists}" > ${stateDir}/virtuals
-          echo "${concatMapLines (transport cfg.listDomain) cfg.mailLists}" > ${stateDir}/transports
-          ${pkgs.postfix}/bin/postmap ${stateDir}/virtuals
-          ${pkgs.postfix}/bin/postmap ${stateDir}/transports
+          ${pkgs.postfix}/bin/postmap /etc/postfix/virtual
+          ${pkgs.postfix}/bin/postmap /etc/postfix/transport
       '';
 
     systemd.services.mlmmj-maintd = {
diff --git a/nixpkgs/nixos/modules/services/misc/apache-kafka.nix b/nixpkgs/nixos/modules/services/misc/apache-kafka.nix
index f3a650a260f1..69dfadfe54e0 100644
--- a/nixpkgs/nixos/modules/services/misc/apache-kafka.nix
+++ b/nixpkgs/nixos/modules/services/misc/apache-kafka.nix
@@ -90,19 +90,7 @@ in {
 
     jvmOptions = mkOption {
       description = "Extra command line options for the JVM running Kafka.";
-      default = [
-        "-server"
-        "-Xmx1G"
-        "-Xms1G"
-        "-XX:+UseCompressedOops"
-        "-XX:+UseParNewGC"
-        "-XX:+UseConcMarkSweepGC"
-        "-XX:+CMSClassUnloadingEnabled"
-        "-XX:+CMSScavengeBeforeRemark"
-        "-XX:+DisableExplicitGC"
-        "-Djava.awt.headless=true"
-        "-Djava.net.preferIPv4Stack=true"
-      ];
+      default = [];
       type = types.listOf types.str;
       example = [
         "-Djava.net.preferIPv4Stack=true"
@@ -118,6 +106,13 @@ in {
       type = types.package;
     };
 
+    jre = mkOption {
+      description = "The JRE with which to run Kafka";
+      default = cfg.package.passthru.jre;
+      defaultText = "pkgs.apacheKafka.passthru.jre";
+      type = types.package;
+    };
+
   };
 
   config = mkIf cfg.enable {
@@ -138,7 +133,7 @@ in {
       after = [ "network.target" ];
       serviceConfig = {
         ExecStart = ''
-          ${pkgs.jre}/bin/java \
+          ${cfg.jre}/bin/java \
             -cp "${cfg.package}/libs/*" \
             -Dlog4j.configuration=file:${logConfig} \
             ${toString cfg.jvmOptions} \
diff --git a/nixpkgs/nixos/modules/services/misc/defaultUnicornConfig.rb b/nixpkgs/nixos/modules/services/misc/defaultUnicornConfig.rb
deleted file mode 100644
index 0b58c59c7a51..000000000000
--- a/nixpkgs/nixos/modules/services/misc/defaultUnicornConfig.rb
+++ /dev/null
@@ -1,69 +0,0 @@
-worker_processes 3
-
-listen ENV["UNICORN_PATH"] + "/tmp/sockets/gitlab.socket", :backlog => 1024
-listen "/run/gitlab/gitlab.socket", :backlog => 1024
-
-working_directory ENV["GITLAB_PATH"]
-
-pid ENV["UNICORN_PATH"] + "/tmp/pids/unicorn.pid"
-
-timeout 60
-
-# combine Ruby 2.0.0dev or REE with "preload_app true" for memory savings
-# http://rubyenterpriseedition.com/faq.html#adapt_apps_for_cow
-preload_app true
-GC.respond_to?(:copy_on_write_friendly=) and
-  GC.copy_on_write_friendly = true
-
-check_client_connection false
-
-before_fork do |server, worker|
-  # the following is highly recommended for Rails + "preload_app true"
-  # as there's no need for the master process to hold a connection
-  defined?(ActiveRecord::Base) and
-    ActiveRecord::Base.connection.disconnect!
-
-  # The following is only recommended for memory/DB-constrained
-  # installations.  It is not needed if your system can house
-  # twice as many worker_processes as you have configured.
-  #
-  # This allows a new master process to incrementally
-  # phase out the old master process with SIGTTOU to avoid a
-  # thundering herd (especially in the "preload_app false" case)
-  # when doing a transparent upgrade.  The last worker spawned
-  # will then kill off the old master process with a SIGQUIT.
-  old_pid = "#{server.config[:pid]}.oldbin"
-  if old_pid != server.pid
-    begin
-      sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
-      Process.kill(sig, File.read(old_pid).to_i)
-    rescue Errno::ENOENT, Errno::ESRCH
-    end
-  end
-
-  # Throttle the master from forking too quickly by sleeping.  Due
-  # to the implementation of standard Unix signal handlers, this
-  # helps (but does not completely) prevent identical, repeated signals
-  # from being lost when the receiving process is busy.
-  # sleep 1
-end
-
-after_fork do |server, worker|
-  # per-process listener ports for debugging/admin/migrations
-  # addr = "127.0.0.1:#{9293 + worker.nr}"
-  # server.listen(addr, :tries => -1, :delay => 5, :tcp_nopush => true)
-
-  # the following is *required* for Rails + "preload_app true",
-  defined?(ActiveRecord::Base) and
-    ActiveRecord::Base.establish_connection
-
-  # reset prometheus client, this will cause any opened metrics files to be closed
-  defined?(::Prometheus::Client.reinitialize_on_pid_change) &&
-    Prometheus::Client.reinitialize_on_pid_change
-
-  # if preload_app is true, then you may also want to check and
-  # restart any other shared sockets/descriptors such as Memcached,
-  # and Redis.  TokyoCabinet file handles are safe to reuse
-  # between any number of forked children (assuming your kernel
-  # correctly implements pread()/pwrite() system calls)
-end
diff --git a/nixpkgs/nixos/modules/services/misc/disnix.nix b/nixpkgs/nixos/modules/services/misc/disnix.nix
new file mode 100644
index 000000000000..41483d80a2dd
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/disnix.nix
@@ -0,0 +1,98 @@
+# Disnix server
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.disnix;
+
+in
+
+{
+
+  ###### interface
+
+  options = {
+
+    services.disnix = {
+
+      enable = mkEnableOption "Disnix";
+
+      enableMultiUser = mkOption {
+        type = types.bool;
+        default = true;
+        description = "Whether to support multi-user mode by enabling the Disnix D-Bus service";
+      };
+
+      useWebServiceInterface = mkEnableOption "the DisnixWebService interface running on Apache Tomcat";
+
+      package = mkOption {
+        type = types.path;
+        description = "The Disnix package";
+        default = pkgs.disnix;
+        defaultText = "pkgs.disnix";
+      };
+
+      enableProfilePath = mkEnableOption "exposing the Disnix profiles in the system's PATH";
+
+      profiles = mkOption {
+        type = types.listOf types.string;
+        default = [ "default" ];
+        example = [ "default" ];
+        description = "Names of the Disnix profiles to expose in the system's PATH";
+      };
+    };
+
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+    dysnomia.enable = true;
+
+    environment.systemPackages = [ pkgs.disnix ] ++ optional cfg.useWebServiceInterface pkgs.DisnixWebService;
+    environment.variables.PATH = lib.optionals cfg.enableProfilePath (map (profileName: "/nix/var/nix/profiles/disnix/${profileName}/bin" ) cfg.profiles);
+
+    services.dbus.enable = true;
+    services.dbus.packages = [ pkgs.disnix ];
+
+    services.tomcat.enable = cfg.useWebServiceInterface;
+    services.tomcat.extraGroups = [ "disnix" ];
+    services.tomcat.javaOpts = "${optionalString cfg.useWebServiceInterface "-Djava.library.path=${pkgs.libmatthew_java}/lib/jni"} ";
+    services.tomcat.sharedLibs = optional cfg.useWebServiceInterface "${pkgs.DisnixWebService}/share/java/DisnixConnection.jar"
+      ++ optional cfg.useWebServiceInterface "${pkgs.dbus_java}/share/java/dbus.jar";
+    services.tomcat.webapps = optional cfg.useWebServiceInterface pkgs.DisnixWebService;
+
+    users.groups.disnix.gid = config.ids.gids.disnix;
+
+    systemd.services = {
+      disnix = mkIf cfg.enableMultiUser {
+        description = "Disnix server";
+        wants = [ "dysnomia.target" ];
+        wantedBy = [ "multi-user.target" ];
+        after = [ "dbus.service" ]
+          ++ optional config.services.httpd.enable "httpd.service"
+          ++ optional config.services.mysql.enable "mysql.service"
+          ++ optional config.services.postgresql.enable "postgresql.service"
+          ++ optional config.services.tomcat.enable "tomcat.service"
+          ++ optional config.services.svnserve.enable "svnserve.service"
+          ++ optional config.services.mongodb.enable "mongodb.service"
+          ++ optional config.services.influxdb.enable "influxdb.service";
+
+        restartIfChanged = false;
+
+        path = [ config.nix.package cfg.package config.dysnomia.package "/run/current-system/sw" ];
+
+        environment = {
+          HOME = "/root";
+        }
+        // (if config.environment.variables ? DYSNOMIA_CONTAINERS_PATH then { inherit (config.environment.variables) DYSNOMIA_CONTAINERS_PATH; } else {})
+        // (if config.environment.variables ? DYSNOMIA_MODULES_PATH then { inherit (config.environment.variables) DYSNOMIA_MODULES_PATH; } else {});
+
+        serviceConfig.ExecStart = "${cfg.package}/bin/disnix-service";
+      };
+
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/dysnomia.nix b/nixpkgs/nixos/modules/services/misc/dysnomia.nix
new file mode 100644
index 000000000000..333ba651cde2
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/dysnomia.nix
@@ -0,0 +1,259 @@
+{pkgs, lib, config, ...}:
+
+with lib;
+
+let
+  cfg = config.dysnomia;
+
+  printProperties = properties:
+    concatMapStrings (propertyName:
+      let
+        property = properties.${propertyName};
+      in
+      if isList property then "${propertyName}=(${lib.concatMapStrings (elem: "\"${toString elem}\" ") (properties.${propertyName})})\n"
+      else "${propertyName}=\"${toString property}\"\n"
+    ) (builtins.attrNames properties);
+
+  properties = pkgs.stdenv.mkDerivation {
+    name = "dysnomia-properties";
+    buildCommand = ''
+      cat > $out << "EOF"
+      ${printProperties cfg.properties}
+      EOF
+    '';
+  };
+
+  containersDir = pkgs.stdenv.mkDerivation {
+    name = "dysnomia-containers";
+    buildCommand = ''
+      mkdir -p $out
+      cd $out
+
+      ${concatMapStrings (containerName:
+        let
+          containerProperties = cfg.containers.${containerName};
+        in
+        ''
+          cat > ${containerName} <<EOF
+          ${printProperties containerProperties}
+          type=${containerName}
+          EOF
+        ''
+      ) (builtins.attrNames cfg.containers)}
+    '';
+  };
+
+  linkMutableComponents = {containerName}:
+    ''
+      mkdir ${containerName}
+
+      ${concatMapStrings (componentName:
+        let
+          component = cfg.components.${containerName}.${componentName};
+        in
+        "ln -s ${component} ${containerName}/${componentName}\n"
+      ) (builtins.attrNames (cfg.components.${containerName} or {}))}
+    '';
+
+  componentsDir = pkgs.stdenv.mkDerivation {
+    name = "dysnomia-components";
+    buildCommand = ''
+      mkdir -p $out
+      cd $out
+
+      ${concatMapStrings (containerName:
+        linkMutableComponents { inherit containerName; }
+      ) (builtins.attrNames cfg.components)}
+    '';
+  };
+
+  dysnomiaFlags = {
+    enableApacheWebApplication = config.services.httpd.enable;
+    enableAxis2WebService = config.services.tomcat.axis2.enable;
+    enableDockerContainer = config.virtualisation.docker.enable;
+    enableEjabberdDump = config.services.ejabberd.enable;
+    enableMySQLDatabase = config.services.mysql.enable;
+    enablePostgreSQLDatabase = config.services.postgresql.enable;
+    enableTomcatWebApplication = config.services.tomcat.enable;
+    enableMongoDatabase = config.services.mongodb.enable;
+    enableSubversionRepository = config.services.svnserve.enable;
+    enableInfluxDatabase = config.services.influxdb.enable;
+  };
+in
+{
+  options = {
+    dysnomia = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to enable Dysnomia";
+      };
+
+      enableAuthentication = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to publish privacy-sensitive authentication credentials";
+      };
+
+      package = mkOption {
+        type = types.path;
+        description = "The Dysnomia package";
+      };
+
+      properties = mkOption {
+        description = "An attribute set in which each attribute represents a machine property. Optionally, these values can be shell substitutions.";
+        default = {};
+      };
+
+      containers = mkOption {
+        description = "An attribute set in which each key represents a container and each value an attribute set providing its configuration properties";
+        default = {};
+      };
+
+      components = mkOption {
+        description = "An atttribute set in which each key represents a container and each value an attribute set in which each key represents a component and each value a derivation constructing its initial state";
+        default = {};
+      };
+
+      extraContainerProperties = mkOption {
+        description = "An attribute set providing additional container settings in addition to the default properties";
+        default = {};
+      };
+
+      extraContainerPaths = mkOption {
+        description = "A list of paths containing additional container configurations that are added to the search folders";
+        default = [];
+      };
+
+      extraModulePaths = mkOption {
+        description = "A list of paths containing additional modules that are added to the search folders";
+        default = [];
+      };
+
+      enableLegacyModules = mkOption {
+        type = types.bool;
+        default = true;
+        description = "Whether to enable Dysnomia legacy process and wrapper modules";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    environment.etc = {
+      "dysnomia/containers" = {
+        source = containersDir;
+      };
+      "dysnomia/components" = {
+        source = componentsDir;
+      };
+      "dysnomia/properties" = {
+        source = properties;
+      };
+    };
+
+    environment.variables = {
+      DYSNOMIA_STATEDIR = "/var/state/dysnomia-nixos";
+      DYSNOMIA_CONTAINERS_PATH = "${lib.concatMapStrings (containerPath: "${containerPath}:") cfg.extraContainerPaths}/etc/dysnomia/containers";
+      DYSNOMIA_MODULES_PATH = "${lib.concatMapStrings (modulePath: "${modulePath}:") cfg.extraModulePaths}/etc/dysnomia/modules";
+    };
+
+    environment.systemPackages = [ cfg.package ];
+
+    dysnomia.package = pkgs.dysnomia.override (origArgs: dysnomiaFlags // lib.optionalAttrs (cfg.enableLegacyModules) {
+      enableLegacy = builtins.trace ''
+        WARNING: Dysnomia has been configured to use the legacy 'process' and 'wrapper'
+        modules for compatibility reasons! If you rely on these modules, consider
+        migrating to better alternatives.
+
+        More information: https://raw.githubusercontent.com/svanderburg/dysnomia/f65a9a84827bcc4024d6b16527098b33b02e4054/README-legacy.md
+
+        If you have migrated already or don't rely on these Dysnomia modules, you can
+        disable legacy mode with the following NixOS configuration option:
+
+        dysnomia.enableLegacyModules = false;
+
+        In a future version of Dysnomia (and NixOS) the legacy option will go away!
+      '' true;
+    });
+
+    dysnomia.properties = {
+      hostname = config.networking.hostName;
+      inherit (config.nixpkgs.localSystem) system;
+
+      supportedTypes = [
+        "echo"
+        "fileset"
+        "process"
+        "wrapper"
+
+        # These are not base modules, but they are still enabled because they work with technology that are always enabled in NixOS
+        "systemd-unit"
+        "sysvinit-script"
+        "nixos-configuration"
+      ]
+      ++ optional (dysnomiaFlags.enableApacheWebApplication) "apache-webapplication"
+      ++ optional (dysnomiaFlags.enableAxis2WebService) "axis2-webservice"
+      ++ optional (dysnomiaFlags.enableDockerContainer) "docker-container"
+      ++ optional (dysnomiaFlags.enableEjabberdDump) "ejabberd-dump"
+      ++ optional (dysnomiaFlags.enableInfluxDatabase) "influx-database"
+      ++ optional (dysnomiaFlags.enableMySQLDatabase) "mysql-database"
+      ++ optional (dysnomiaFlags.enablePostgreSQLDatabase) "postgresql-database"
+      ++ optional (dysnomiaFlags.enableTomcatWebApplication) "tomcat-webapplication"
+      ++ optional (dysnomiaFlags.enableMongoDatabase) "mongo-database"
+      ++ optional (dysnomiaFlags.enableSubversionRepository) "subversion-repository";
+    };
+
+    dysnomia.containers = lib.recursiveUpdate ({
+      process = {};
+      wrapper = {};
+    }
+    // lib.optionalAttrs (config.services.httpd.enable) { apache-webapplication = {
+      documentRoot = config.services.httpd.virtualHosts.localhost.documentRoot;
+    }; }
+    // lib.optionalAttrs (config.services.tomcat.axis2.enable) { axis2-webservice = {}; }
+    // lib.optionalAttrs (config.services.ejabberd.enable) { ejabberd-dump = {
+      ejabberdUser = config.services.ejabberd.user;
+    }; }
+    // lib.optionalAttrs (config.services.mysql.enable) { mysql-database = {
+        mysqlPort = config.services.mysql.port;
+        mysqlSocket = "/run/mysqld/mysqld.sock";
+      } // lib.optionalAttrs cfg.enableAuthentication {
+        mysqlUsername = "root";
+      };
+    }
+    // lib.optionalAttrs (config.services.postgresql.enable) { postgresql-database = {
+      } // lib.optionalAttrs (cfg.enableAuthentication) {
+        postgresqlUsername = "postgres";
+      };
+    }
+    // lib.optionalAttrs (config.services.tomcat.enable) { tomcat-webapplication = {
+      tomcatPort = 8080;
+    }; }
+    // lib.optionalAttrs (config.services.mongodb.enable) { mongo-database = {}; }
+    // lib.optionalAttrs (config.services.influxdb.enable) {
+      influx-database = {
+        influxdbUsername = config.services.influxdb.user;
+        influxdbDataDir = "${config.services.influxdb.dataDir}/data";
+        influxdbMetaDir = "${config.services.influxdb.dataDir}/meta";
+      };
+    }
+    // lib.optionalAttrs (config.services.svnserve.enable) { subversion-repository = {
+      svnBaseDir = config.services.svnserve.svnBaseDir;
+    }; }) cfg.extraContainerProperties;
+
+    boot.extraSystemdUnitPaths = [ "/etc/systemd-mutable/system" ];
+
+    system.activationScripts.dysnomia = ''
+      mkdir -p /etc/systemd-mutable/system
+      if [ ! -f /etc/systemd-mutable/system/dysnomia.target ]
+      then
+          ( echo "[Unit]"
+            echo "Description=Services that are activated and deactivated by Dysnomia"
+            echo "After=final.target"
+          ) > /etc/systemd-mutable/system/dysnomia.target
+      fi
+    '';
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/etebase-server.nix b/nixpkgs/nixos/modules/services/misc/etebase-server.nix
index d9d12698d79d..31e0952b5b98 100644
--- a/nixpkgs/nixos/modules/services/misc/etebase-server.nix
+++ b/nixpkgs/nixos/modules/services/misc/etebase-server.nix
@@ -8,31 +8,28 @@ let
   pythonEnv = pkgs.python3.withPackages (ps: with ps;
     [ etebase-server daphne ]);
 
-  dbConfig = {
-    sqlite3 = ''
-      engine = django.db.backends.sqlite3
-      name = ${cfg.dataDir}/db.sqlite3
-    '';
-  };
-
-  defaultConfigIni = toString (pkgs.writeText "etebase-server.ini" ''
-    [global]
-    debug = false
-    secret_file = ${if cfg.secretFile != null then cfg.secretFile else ""}
-    media_root = ${cfg.dataDir}/media
-
-    [allowed_hosts]
-    allowed_host1 = ${cfg.host}
+  iniFmt = pkgs.formats.ini {};
 
-    [database]
-    ${dbConfig."${cfg.database.type}"}
-  '');
-
-  configIni = if cfg.customIni != null then cfg.customIni else defaultConfigIni;
+  configIni = iniFmt.generate "etebase-server.ini" cfg.settings;
 
   defaultUser = "etebase-server";
 in
 {
+  imports = [
+    (mkRemovedOptionModule
+      [ "services" "etebase-server" "customIni" ]
+      "Set the option `services.etebase-server.settings' instead.")
+    (mkRemovedOptionModule
+      [ "services" "etebase-server" "database" ]
+      "Set the option `services.etebase-server.settings.database' instead.")
+    (mkRenamedOptionModule
+      [ "services" "etebase-server" "secretFile" ]
+      [ "services" "etebase-server" "settings" "secret_file" ])
+    (mkRenamedOptionModule
+      [ "services" "etebase-server" "host" ]
+      [ "services" "etebase-server" "settings" "allowed_hosts" "allowed_host1" ])
+  ];
+
   options = {
     services.etebase-server = {
       enable = mkOption {
@@ -42,21 +39,13 @@ in
         description = ''
           Whether to enable the Etebase server.
 
-          Once enabled you need to create an admin user using the
-          shell command <literal>etebase-server createsuperuser</literal>.
+          Once enabled you need to create an admin user by invoking the
+          shell command <literal>etebase-server createsuperuser</literal> with
+          the user specified by the <literal>user</literal> option or a superuser.
           Then you can login and create accounts on your-etebase-server.com/admin
         '';
       };
 
-      secretFile = mkOption {
-        default = null;
-        type = with types; nullOr str;
-        description = ''
-          The path to a file containing the secret
-          used as django's SECRET_KEY.
-        '';
-      };
-
       dataDir = mkOption {
         type = types.str;
         default = "/var/lib/etebase-server";
@@ -77,15 +66,6 @@ in
         '';
       };
 
-      host = mkOption {
-        type = types.str;
-        default = "0.0.0.0";
-        example = "localhost";
-        description = ''
-          Host to listen on.
-        '';
-      };
-
       unixSocket = mkOption {
         type = with types; nullOr str;
         default = null;
@@ -93,42 +73,81 @@ in
         example = "/run/etebase-server/etebase-server.sock";
       };
 
-      database = {
-        type = mkOption {
-          type = types.enum [ "sqlite3" ];
-          default = "sqlite3";
-          description = ''
-            Database engine to use.
-            Currently only sqlite3 is supported.
-            Other options can be configured using <literal>extraConfig</literal>.
-          '';
+      settings = mkOption {
+        type = lib.types.submodule {
+          freeformType = iniFmt.type;
+
+          options = {
+            global = {
+              debug = mkOption {
+                type = types.bool;
+                default = false;
+                description = ''
+                  Whether to set django's DEBUG flag.
+                '';
+              };
+              secret_file = mkOption {
+                type = with types; nullOr str;
+                default = null;
+                description = ''
+                  The path to a file containing the secret
+                  used as django's SECRET_KEY.
+                '';
+              };
+              static_root = mkOption {
+                type = types.str;
+                default = "${cfg.dataDir}/static";
+                defaultText = "\${config.services.etebase-server.dataDir}/static";
+                description = "The directory for static files.";
+              };
+              media_root = mkOption {
+                type = types.str;
+                default = "${cfg.dataDir}/media";
+                defaultText = "\${config.services.etebase-server.dataDir}/media";
+                description = "The media directory.";
+              };
+            };
+            allowed_hosts = {
+              allowed_host1 = mkOption {
+                type = types.str;
+                default = "0.0.0.0";
+                example = "localhost";
+                description = ''
+                  The main host that is allowed access.
+                '';
+              };
+            };
+            database = {
+              engine = mkOption {
+                type = types.enum [ "django.db.backends.sqlite3" "django.db.backends.postgresql" ];
+                default = "django.db.backends.sqlite3";
+                description = "The database engine to use.";
+              };
+              name = mkOption {
+                type = types.str;
+                default = "${cfg.dataDir}/db.sqlite3";
+                defaultText = "\${config.services.etebase-server.dataDir}/db.sqlite3";
+                description = "The database name.";
+              };
+            };
+          };
         };
-      };
-
-      customIni = mkOption {
-        type = with types; nullOr str;
-        default = null;
+        default = {};
         description = ''
-          Custom etebase-server.ini.
-
-          See <literal>etebase-src/etebase-server.ini.example</literal> for available options.
-
-          Setting this option overrides the default config which is generated from the options
-          <literal>secretFile</literal>, <literal>host</literal> and <literal>database</literal>.
-        '';
-        example = literalExample ''
-          [global]
-          debug = false
-          secret_file = /path/to/secret
-          media_root = /path/to/media
-
-          [allowed_hosts]
-          allowed_host1 = example.com
-
-          [database]
-          engine = django.db.backends.sqlite3
-          name = db.sqlite3
+          Configuration for <package>etebase-server</package>. Refer to
+          <link xlink:href="https://github.com/etesync/server/blob/master/etebase-server.ini.example" />
+          and <link xlink:href="https://github.com/etesync/server/wiki" />
+          for details on supported values.
         '';
+        example = {
+          global = {
+            debug = true;
+            media_root = "/path/to/media";
+          };
+          allowed_hosts = {
+            allowed_host2 = "localhost";
+          };
+        };
       };
 
       user = mkOption {
@@ -166,14 +185,15 @@ in
         WorkingDirectory = cfg.dataDir;
       };
       environment = {
-        PYTHONPATH="${pythonEnv}/${pkgs.python3.sitePackages}";
-        ETEBASE_EASY_CONFIG_PATH="${configIni}";
+        PYTHONPATH = "${pythonEnv}/${pkgs.python3.sitePackages}";
+        ETEBASE_EASY_CONFIG_PATH = configIni;
       };
       preStart = ''
         # Auto-migrate on first run or if the package has changed
         versionFile="${cfg.dataDir}/src-version"
         if [[ $(cat "$versionFile" 2>/dev/null) != ${pkgs.etebase-server} ]]; then
           ${pythonEnv}/bin/etebase-server migrate
+          ${pythonEnv}/bin/etebase-server collectstatic
           echo ${pkgs.etebase-server} > "$versionFile"
         fi
       '';
diff --git a/nixpkgs/nixos/modules/services/misc/etesync-dav.nix b/nixpkgs/nixos/modules/services/misc/etesync-dav.nix
new file mode 100644
index 000000000000..9d7cfda371b1
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/etesync-dav.nix
@@ -0,0 +1,92 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.etesync-dav;
+in
+  {
+    options.services.etesync-dav = {
+      enable = mkEnableOption "etesync-dav";
+
+      host = mkOption {
+        type = types.str;
+        default = "localhost";
+        description = "The server host address.";
+      };
+
+      port = mkOption {
+        type = types.port;
+        default = 37358;
+        description = "The server host port.";
+      };
+
+      apiUrl = mkOption {
+        type = types.str;
+        default = "https://api.etesync.com/";
+        description = "The url to the etesync API.";
+      };
+
+      openFirewall = mkOption {
+        default = false;
+        type = types.bool;
+        description = "Whether to open the firewall for the specified port.";
+      };
+
+      sslCertificate = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        example = "/var/etesync.crt";
+        description = ''
+          Path to server SSL certificate. It will be copied into
+          etesync-dav's data directory.
+        '';
+      };
+
+      sslCertificateKey = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        example = "/var/etesync.key";
+        description = ''
+          Path to server SSL certificate key.  It will be copied into
+          etesync-dav's data directory.
+        '';
+      };
+    };
+
+    config = mkIf cfg.enable {
+      networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
+
+      systemd.services.etesync-dav = {
+        description = "etesync-dav - A CalDAV and CardDAV adapter for EteSync";
+        after = [ "network-online.target" ];
+        wantedBy = [ "multi-user.target" ];
+        path = [ pkgs.etesync-dav ];
+        environment = {
+          ETESYNC_LISTEN_ADDRESS = cfg.host;
+          ETESYNC_LISTEN_PORT = toString cfg.port;
+          ETESYNC_URL = cfg.apiUrl;
+          ETESYNC_DATA_DIR = "/var/lib/etesync-dav";
+        };
+
+        serviceConfig = {
+          Type = "simple";
+          DynamicUser = true;
+          StateDirectory = "etesync-dav";
+          ExecStart = "${pkgs.etesync-dav}/bin/etesync-dav";
+          ExecStartPre = mkIf (cfg.sslCertificate != null || cfg.sslCertificateKey != null) (
+            pkgs.writers.writeBash "etesync-dav-copy-keys" ''
+              ${optionalString (cfg.sslCertificate != null) ''
+                cp ${toString cfg.sslCertificate} $STATE_DIRECTORY/etesync.crt
+              ''}
+              ${optionalString (cfg.sslCertificateKey != null) ''
+                cp ${toString cfg.sslCertificateKey} $STATE_DIRECTORY/etesync.key
+              ''}
+            ''
+          );
+          Restart = "on-failure";
+          RestartSec = "30min 1s";
+        };
+      };
+    };
+  }
diff --git a/nixpkgs/nixos/modules/services/misc/gitlab.nix b/nixpkgs/nixos/modules/services/misc/gitlab.nix
index de4d1bf1987a..f86653f3ead2 100644
--- a/nixpkgs/nixos/modules/services/misc/gitlab.nix
+++ b/nixpkgs/nixos/modules/services/misc/gitlab.nix
@@ -116,7 +116,12 @@ let
       omniauth.enabled = false;
       shared.path = "${cfg.statePath}/shared";
       gitaly.client_path = "${cfg.packages.gitaly}/bin";
-      backup.path = "${cfg.backupPath}";
+      backup = {
+        path = cfg.backup.path;
+        keep_time = cfg.backup.keepTime;
+      } // (optionalAttrs (cfg.backup.uploadOptions != {}) {
+        upload = cfg.backup.uploadOptions;
+      });
       gitlab_shell = {
         path = "${cfg.packages.gitlab-shell}";
         hooks_path = "${cfg.statePath}/shell/hooks";
@@ -142,7 +147,7 @@ let
 
   gitlabEnv = {
     HOME = "${cfg.statePath}/home";
-    UNICORN_PATH = "${cfg.statePath}/";
+    PUMA_PATH = "${cfg.statePath}/";
     GITLAB_PATH = "${cfg.packages.gitlab}/share/gitlab/";
     SCHEMA = "${cfg.statePath}/db/structure.sql";
     GITLAB_UPLOADS_PATH = "${cfg.statePath}/uploads";
@@ -196,6 +201,7 @@ let
         domain: "${cfg.smtp.domain}",
         ${optionalString (cfg.smtp.authentication != null) "authentication: :${cfg.smtp.authentication},"}
         enable_starttls_auto: ${boolToString cfg.smtp.enableStartTLSAuto},
+        tls: ${boolToString cfg.smtp.tls},
         ca_file: "/etc/ssl/certs/ca-certificates.crt",
         openssl_verify_mode: '${cfg.smtp.opensslVerifyMode}'
       }
@@ -206,6 +212,7 @@ in {
 
   imports = [
     (mkRenamedOptionModule [ "services" "gitlab" "stateDir" ] [ "services" "gitlab" "statePath" ])
+    (mkRenamedOptionModule [ "services" "gitlab" "backupPath" ] [ "services" "gitlab" "backup" "path" ])
     (mkRemovedOptionModule [ "services" "gitlab" "satelliteDir" ] "")
   ];
 
@@ -259,7 +266,7 @@ in {
         type = types.str;
         default = "/var/gitlab/state";
         description = ''
-          Gitlab state directory. Configuration, repositories and
+          GitLab state directory. Configuration, repositories and
           logs, among other things, are stored here.
 
           The directory will be created automatically if it doesn't
@@ -269,17 +276,108 @@ in {
         '';
       };
 
-      backupPath = mkOption {
+      backup.startAt = mkOption {
+        type = with types; either str (listOf str);
+        default = [];
+        example = "03:00";
+        description = ''
+          The time(s) to run automatic backup of GitLab
+          state. Specified in systemd's time format; see
+          <citerefentry><refentrytitle>systemd.time</refentrytitle>
+          <manvolnum>7</manvolnum></citerefentry>.
+        '';
+      };
+
+      backup.path = mkOption {
         type = types.str;
         default = cfg.statePath + "/backup";
-        description = "Gitlab path for backups.";
+        description = "GitLab path for backups.";
+      };
+
+      backup.keepTime = mkOption {
+        type = types.int;
+        default = 0;
+        example = 48;
+        apply = x: x * 60 * 60;
+        description = ''
+          How long to keep the backups around, in
+          hours. <literal>0</literal> means <quote>keep
+          forever</quote>.
+        '';
+      };
+
+      backup.skip = mkOption {
+        type = with types;
+          let value = enum [
+                "db"
+                "uploads"
+                "builds"
+                "artifacts"
+                "lfs"
+                "registry"
+                "pages"
+                "repositories"
+                "tar"
+              ];
+          in
+            either value (listOf value);
+        default = [];
+        example = [ "artifacts" "lfs" ];
+        apply = x: if isString x then x else concatStringsSep "," x;
+        description = ''
+          Directories to exclude from the backup. The example excludes
+          CI artifacts and LFS objects from the backups. The
+          <literal>tar</literal> option skips the creation of a tar
+          file.
+
+          Refer to <link xlink:href="https://docs.gitlab.com/ee/raketasks/backup_restore.html#excluding-specific-directories-from-the-backup"/>
+          for more information.
+        '';
+      };
+
+      backup.uploadOptions = mkOption {
+        type = types.attrs;
+        default = {};
+        example = literalExample ''
+          {
+            # Fog storage connection settings, see http://fog.io/storage/
+            connection = {
+              provider = "AWS";
+              region = "eu-north-1";
+              aws_access_key_id = "AKIAXXXXXXXXXXXXXXXX";
+              aws_secret_access_key = { _secret = config.deployment.keys.aws_access_key.path; };
+            };
+
+            # The remote 'directory' to store your backups in.
+            # For S3, this would be the bucket name.
+            remote_directory = "my-gitlab-backups";
+
+            # Use multipart uploads when file size reaches 100MB, see
+            # http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html
+            multipart_chunk_size = 104857600;
+
+            # Turns on AWS Server-Side Encryption with Amazon S3-Managed Keys for backups, this is optional
+            encryption = "AES256";
+
+            # Specifies Amazon S3 storage class to use for backups, this is optional
+            storage_class = "STANDARD";
+          };
+        '';
+        description = ''
+          GitLab automatic upload specification. Tells GitLab to
+          upload the backup to a remote location when done.
+
+          Attributes specified here are added under
+          <literal>production -> backup -> upload</literal> in
+          <filename>config/gitlab.yml</filename>.
+        '';
       };
 
       databaseHost = mkOption {
         type = types.str;
         default = "";
         description = ''
-          Gitlab database hostname. An empty string means <quote>use
+          GitLab database hostname. An empty string means <quote>use
           local unix socket connection</quote>.
         '';
       };
@@ -288,7 +386,7 @@ in {
         type = with types; nullOr path;
         default = null;
         description = ''
-          File containing the Gitlab database user password.
+          File containing the GitLab database user password.
 
           This should be a string, not a nix path, since nix paths are
           copied into the world-readable nix store.
@@ -309,13 +407,13 @@ in {
       databaseName = mkOption {
         type = types.str;
         default = "gitlab";
-        description = "Gitlab database name.";
+        description = "GitLab database name.";
       };
 
       databaseUsername = mkOption {
         type = types.str;
         default = "gitlab";
-        description = "Gitlab database user.";
+        description = "GitLab database user.";
       };
 
       databasePool = mkOption {
@@ -359,14 +457,14 @@ in {
       host = mkOption {
         type = types.str;
         default = config.networking.hostName;
-        description = "Gitlab host name. Used e.g. for copy-paste URLs.";
+        description = "GitLab host name. Used e.g. for copy-paste URLs.";
       };
 
       port = mkOption {
         type = types.int;
         default = 8080;
         description = ''
-          Gitlab server port for copy-paste URLs, e.g. 80 or 443 if you're
+          GitLab server port for copy-paste URLs, e.g. 80 or 443 if you're
           service over https.
         '';
       };
@@ -419,26 +517,26 @@ in {
         address = mkOption {
           type = types.str;
           default = "localhost";
-          description = "Address of the SMTP server for Gitlab.";
+          description = "Address of the SMTP server for GitLab.";
         };
 
         port = mkOption {
           type = types.int;
-          default = 465;
-          description = "Port of the SMTP server for Gitlab.";
+          default = 25;
+          description = "Port of the SMTP server for GitLab.";
         };
 
         username = mkOption {
           type = with types; nullOr str;
           default = null;
-          description = "Username of the SMTP server for Gitlab.";
+          description = "Username of the SMTP server for GitLab.";
         };
 
         passwordFile = mkOption {
           type = types.nullOr types.path;
           default = null;
           description = ''
-            File containing the password of the SMTP server for Gitlab.
+            File containing the password of the SMTP server for GitLab.
 
             This should be a string, not a nix path, since nix paths
             are copied into the world-readable nix store.
@@ -454,7 +552,7 @@ in {
         authentication = mkOption {
           type = with types; nullOr str;
           default = null;
-          description = "Authentitcation type to use, see http://api.rubyonrails.org/classes/ActionMailer/Base.html";
+          description = "Authentication type to use, see http://api.rubyonrails.org/classes/ActionMailer/Base.html";
         };
 
         enableStartTLSAuto = mkOption {
@@ -463,6 +561,12 @@ in {
           description = "Whether to try to use StartTLS.";
         };
 
+        tls = mkOption {
+          type = types.bool;
+          default = false;
+          description = "Whether to use TLS wrapper-mode.";
+        };
+
         opensslVerifyMode = mkOption {
           type = types.str;
           default = "peer";
@@ -641,6 +745,11 @@ in {
 
     environment.systemPackages = [ pkgs.git gitlab-rake gitlab-rails cfg.packages.gitlab-shell ];
 
+    systemd.targets.gitlab = {
+      description = "Common target for all GitLab services.";
+      wantedBy = [ "multi-user.target" ];
+    };
+
     # Redis is required for the sidekiq queue runner.
     services.redis.enable = mkDefault true;
 
@@ -655,36 +764,45 @@ in {
     # here.
     systemd.services.gitlab-postgresql = let pgsql = config.services.postgresql; in mkIf databaseActuallyCreateLocally {
       after = [ "postgresql.service" ];
-      wantedBy = [ "multi-user.target" ];
-      path = [ pgsql.package ];
+      bindsTo = [ "postgresql.service" ];
+      wantedBy = [ "gitlab.target" ];
+      partOf = [ "gitlab.target" ];
+      path = [
+        pgsql.package
+        pkgs.util-linux
+      ];
       script = ''
         set -eu
 
-        PSQL="${pkgs.util-linux}/bin/runuser -u ${pgsql.superUser} -- psql --port=${toString pgsql.port}"
+        PSQL() {
+            psql --port=${toString pgsql.port} "$@"
+        }
 
-        $PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = '${cfg.databaseName}'" | grep -q 1 || $PSQL -tAc 'CREATE DATABASE "${cfg.databaseName}" OWNER "${cfg.databaseUsername}"'
-        current_owner=$($PSQL -tAc "SELECT pg_catalog.pg_get_userbyid(datdba) FROM pg_catalog.pg_database WHERE datname = '${cfg.databaseName}'")
+        PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = '${cfg.databaseName}'" | grep -q 1 || PSQL -tAc 'CREATE DATABASE "${cfg.databaseName}" OWNER "${cfg.databaseUsername}"'
+        current_owner=$(PSQL -tAc "SELECT pg_catalog.pg_get_userbyid(datdba) FROM pg_catalog.pg_database WHERE datname = '${cfg.databaseName}'")
         if [[ "$current_owner" != "${cfg.databaseUsername}" ]]; then
-            $PSQL -tAc 'ALTER DATABASE "${cfg.databaseName}" OWNER TO "${cfg.databaseUsername}"'
+            PSQL -tAc 'ALTER DATABASE "${cfg.databaseName}" OWNER TO "${cfg.databaseUsername}"'
             if [[ -e "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}" ]]; then
                 echo "Reassigning ownership of database ${cfg.databaseName} to user ${cfg.databaseUsername} failed on last boot. Failing..."
                 exit 1
             fi
             touch "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}"
-            $PSQL "${cfg.databaseName}" -tAc "REASSIGN OWNED BY \"$current_owner\" TO \"${cfg.databaseUsername}\""
+            PSQL "${cfg.databaseName}" -tAc "REASSIGN OWNED BY \"$current_owner\" TO \"${cfg.databaseUsername}\""
             rm "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}"
         fi
-        $PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
-        $PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS btree_gist;"
+        PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
+        PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS btree_gist;"
       '';
 
       serviceConfig = {
+        User = pgsql.superUser;
         Type = "oneshot";
+        RemainAfterExit = true;
       };
     };
 
     # Use postfix to send out mails.
-    services.postfix.enable = mkDefault true;
+    services.postfix.enable = mkDefault (cfg.smtp.enable && cfg.smtp.address == "localhost");
 
     users.users.${cfg.user} =
       { group = cfg.group;
@@ -699,11 +817,10 @@ in {
       "d /run/gitlab 0755 ${cfg.user} ${cfg.group} -"
       "d ${gitlabEnv.HOME} 0750 ${cfg.user} ${cfg.group} -"
       "z ${gitlabEnv.HOME}/.ssh/authorized_keys 0600 ${cfg.user} ${cfg.group} -"
-      "d ${cfg.backupPath} 0750 ${cfg.user} ${cfg.group} -"
+      "d ${cfg.backup.path} 0750 ${cfg.user} ${cfg.group} -"
       "d ${cfg.statePath} 0750 ${cfg.user} ${cfg.group} -"
       "d ${cfg.statePath}/builds 0750 ${cfg.user} ${cfg.group} -"
       "d ${cfg.statePath}/config 0750 ${cfg.user} ${cfg.group} -"
-      "d ${cfg.statePath}/config/initializers 0750 ${cfg.user} ${cfg.group} -"
       "d ${cfg.statePath}/db 0750 ${cfg.user} ${cfg.group} -"
       "d ${cfg.statePath}/log 0750 ${cfg.user} ${cfg.group} -"
       "d ${cfg.statePath}/repositories 2770 ${cfg.user} ${cfg.group} -"
@@ -726,13 +843,156 @@ in {
       "L+ /run/gitlab/uploads - - - - ${cfg.statePath}/uploads"
 
       "L+ /run/gitlab/shell-config.yml - - - - ${pkgs.writeText "config.yml" (builtins.toJSON gitlabShellConfig)}"
-
-      "L+ ${cfg.statePath}/config/unicorn.rb - - - - ${./defaultUnicornConfig.rb}"
     ];
 
+
+    systemd.services.gitlab-config = {
+      wantedBy = [ "gitlab.target" ];
+      partOf = [ "gitlab.target" ];
+      path = with pkgs; [
+        jq
+        openssl
+        replace
+        git
+      ];
+      serviceConfig = {
+        Type = "oneshot";
+        User = cfg.user;
+        Group = cfg.group;
+        TimeoutSec = "infinity";
+        Restart = "on-failure";
+        WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
+        RemainAfterExit = true;
+
+        ExecStartPre = let
+          preStartFullPrivileges = ''
+            shopt -s dotglob nullglob
+            set -eu
+
+            chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/*
+            if [[ -n "$(ls -A '${cfg.statePath}'/config/)" ]]; then
+              chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/config/*
+            fi
+          '';
+        in "+${pkgs.writeShellScript "gitlab-pre-start-full-privileges" preStartFullPrivileges}";
+
+        ExecStart = pkgs.writeShellScript "gitlab-config" ''
+          set -eu
+
+          umask u=rwx,g=rx,o=
+
+          cp -f ${cfg.packages.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION
+          rm -rf ${cfg.statePath}/db/*
+          rm -f ${cfg.statePath}/lib
+          find '${cfg.statePath}/config/' -maxdepth 1 -mindepth 1 -type d -execdir rm -rf {} \;
+          cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config
+          cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/db/* ${cfg.statePath}/db
+          ln -sf ${extraGitlabRb} ${cfg.statePath}/config/initializers/extra-gitlab.rb
+
+          ${cfg.packages.gitlab-shell}/bin/install
+
+          ${optionalString cfg.smtp.enable ''
+              install -m u=rw ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb
+              ${optionalString (cfg.smtp.passwordFile != null) ''
+                  smtp_password=$(<'${cfg.smtp.passwordFile}')
+                  replace-literal -e '@smtpPassword@' "$smtp_password" '${cfg.statePath}/config/initializers/smtp_settings.rb'
+              ''}
+          ''}
+
+          (
+            umask u=rwx,g=,o=
+
+            openssl rand -hex 32 > ${cfg.statePath}/gitlab_shell_secret
+
+            rm -f '${cfg.statePath}/config/database.yml'
+
+            ${if cfg.databasePasswordFile != null then ''
+                export db_password="$(<'${cfg.databasePasswordFile}')"
+
+                if [[ -z "$db_password" ]]; then
+                  >&2 echo "Database password was an empty string!"
+                  exit 1
+                fi
+
+                jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
+                   '.production.password = $ENV.db_password' \
+                   >'${cfg.statePath}/config/database.yml'
+              ''
+              else ''
+                jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
+                   >'${cfg.statePath}/config/database.yml'
+              ''
+            }
+
+            ${utils.genJqSecretsReplacementSnippet
+                gitlabConfig
+                "${cfg.statePath}/config/gitlab.yml"
+            }
+
+            rm -f '${cfg.statePath}/config/secrets.yml'
+
+            export secret="$(<'${cfg.secrets.secretFile}')"
+            export db="$(<'${cfg.secrets.dbFile}')"
+            export otp="$(<'${cfg.secrets.otpFile}')"
+            export jws="$(<'${cfg.secrets.jwsFile}')"
+            jq -n '{production: {secret_key_base: $ENV.secret,
+                    otp_key_base: $ENV.otp,
+                    db_key_base: $ENV.db,
+                    openid_connect_signing_key: $ENV.jws}}' \
+               > '${cfg.statePath}/config/secrets.yml'
+          )
+
+          # We remove potentially broken links to old gitlab-shell versions
+          rm -Rf ${cfg.statePath}/repositories/**/*.git/hooks
+
+          git config --global core.autocrlf "input"
+        '';
+      };
+    };
+
+    systemd.services.gitlab-db-config = {
+      after = [ "gitlab-config.service" "gitlab-postgresql.service" "postgresql.service" ];
+      bindsTo = [
+        "gitlab-config.service"
+      ] ++ optional (cfg.databaseHost == "") "postgresql.service"
+        ++ optional databaseActuallyCreateLocally "gitlab-postgresql.service";
+      wantedBy = [ "gitlab.target" ];
+      partOf = [ "gitlab.target" ];
+      serviceConfig = {
+        Type = "oneshot";
+        User = cfg.user;
+        Group = cfg.group;
+        TimeoutSec = "infinity";
+        Restart = "on-failure";
+        WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
+        RemainAfterExit = true;
+
+        ExecStart = pkgs.writeShellScript "gitlab-db-config" ''
+          set -eu
+          umask u=rwx,g=rx,o=
+
+          initial_root_password="$(<'${cfg.initialRootPasswordFile}')"
+          ${gitlab-rake}/bin/gitlab-rake gitlab:db:configure GITLAB_ROOT_PASSWORD="$initial_root_password" \
+                                                             GITLAB_ROOT_EMAIL='${cfg.initialRootEmail}' > /dev/null
+        '';
+      };
+    };
+
     systemd.services.gitlab-sidekiq = {
-      after = [ "network.target" "redis.service" "gitlab.service" ];
-      wantedBy = [ "multi-user.target" ];
+      after = [
+        "network.target"
+        "redis.service"
+        "postgresql.service"
+        "gitlab-config.service"
+        "gitlab-db-config.service"
+      ];
+      bindsTo = [
+        "redis.service"
+        "gitlab-config.service"
+        "gitlab-db-config.service"
+      ] ++ optional (cfg.databaseHost == "") "postgresql.service";
+      wantedBy = [ "gitlab.target" ];
+      partOf = [ "gitlab.target" ];
       environment = gitlabEnv;
       path = with pkgs; [
         postgresqlPackage
@@ -758,9 +1018,10 @@ in {
     };
 
     systemd.services.gitaly = {
-      after = [ "network.target" "gitlab.service" ];
-      bindsTo = [ "gitlab.service" ];
-      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" "gitlab-config.service" ];
+      bindsTo = [ "gitlab-config.service" ];
+      wantedBy = [ "gitlab.target" ];
+      partOf = [ "gitlab.target" ];
       path = with pkgs; [
         openssh
         procps  # See https://gitlab.com/gitlab-org/gitaly/issues/1562
@@ -783,8 +1044,10 @@ in {
 
     systemd.services.gitlab-pages = mkIf (gitlabConfig.production.pages.enabled or false) {
       description = "GitLab static pages daemon";
-      after = [ "network.target" "redis.service" "gitlab.service" ]; # gitlab.service creates configs
-      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" "gitlab-config.service" ];
+      bindsTo = [ "gitlab-config.service" ];
+      wantedBy = [ "gitlab.target" ];
+      partOf = [ "gitlab.target" ];
 
       path = [ pkgs.unzip ];
 
@@ -803,7 +1066,8 @@ in {
 
     systemd.services.gitlab-workhorse = {
       after = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
+      wantedBy = [ "gitlab.target" ];
+      partOf = [ "gitlab.target" ];
       path = with pkgs; [
         exiftool
         git
@@ -832,8 +1096,10 @@ in {
 
     systemd.services.gitlab-mailroom = mkIf (gitlabConfig.production.incoming_email.enabled or false) {
       description = "GitLab incoming mail daemon";
-      after = [ "network.target" "redis.service" "gitlab.service" ]; # gitlab.service creates configs
-      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" "redis.service" "gitlab-config.service" ];
+      bindsTo = [ "gitlab-config.service" ];
+      wantedBy = [ "gitlab.target" ];
+      partOf = [ "gitlab.target" ];
       environment = gitlabEnv;
       serviceConfig = {
         Type = "simple";
@@ -842,15 +1108,26 @@ in {
 
         User = cfg.user;
         Group = cfg.group;
-        ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/bundle exec mail_room -c ${cfg.packages.gitlab}/share/gitlab/config.dist/mail_room.yml";
+        ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/bundle exec mail_room -c ${cfg.statePath}/config/mail_room.yml";
         WorkingDirectory = gitlabEnv.HOME;
       };
     };
 
     systemd.services.gitlab = {
-      after = [ "gitlab-workhorse.service" "network.target" "gitlab-postgresql.service" "redis.service" ];
-      requires = [ "gitlab-sidekiq.service" ];
-      wantedBy = [ "multi-user.target" ];
+      after = [
+        "gitlab-workhorse.service"
+        "network.target"
+        "redis.service"
+        "gitlab-config.service"
+        "gitlab-db-config.service"
+      ];
+      bindsTo = [
+        "redis.service"
+        "gitlab-config.service"
+        "gitlab-db-config.service"
+      ] ++ optional (cfg.databaseHost == "") "postgresql.service";
+      wantedBy = [ "gitlab.target" ];
+      partOf = [ "gitlab.target" ];
       environment = gitlabEnv;
       path = with pkgs; [
         postgresqlPackage
@@ -868,98 +1145,26 @@ in {
         TimeoutSec = "infinity";
         Restart = "on-failure";
         WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
-        ExecStartPre = let
-          preStartFullPrivileges = ''
-            shopt -s dotglob nullglob
-            set -eu
-
-            chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/*
-            chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/config/*
-          '';
-          preStart = ''
-            set -eu
-
-            cp -f ${cfg.packages.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION
-            rm -rf ${cfg.statePath}/db/*
-            rm -rf ${cfg.statePath}/config/initializers/*
-            rm -f ${cfg.statePath}/lib
-            cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config
-            cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/db/* ${cfg.statePath}/db
-            ln -sf ${extraGitlabRb} ${cfg.statePath}/config/initializers/extra-gitlab.rb
+        ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/puma -C ${cfg.statePath}/config/puma.rb -e production";
+      };
 
-            ${cfg.packages.gitlab-shell}/bin/install
+    };
 
-            ${optionalString cfg.smtp.enable ''
-              install -m u=rw ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb
-              ${optionalString (cfg.smtp.passwordFile != null) ''
-                smtp_password=$(<'${cfg.smtp.passwordFile}')
-                ${pkgs.replace}/bin/replace-literal -e '@smtpPassword@' "$smtp_password" '${cfg.statePath}/config/initializers/smtp_settings.rb'
-              ''}
-            ''}
-
-            (
-              umask u=rwx,g=,o=
-
-              ${pkgs.openssl}/bin/openssl rand -hex 32 > ${cfg.statePath}/gitlab_shell_secret
-
-              if [[ -h '${cfg.statePath}/config/database.yml' ]]; then
-                rm '${cfg.statePath}/config/database.yml'
-              fi
-
-              ${if cfg.databasePasswordFile != null then ''
-                  export db_password="$(<'${cfg.databasePasswordFile}')"
-
-                  if [[ -z "$db_password" ]]; then
-                    >&2 echo "Database password was an empty string!"
-                    exit 1
-                  fi
-
-                  ${pkgs.jq}/bin/jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
-                                    '.production.password = $ENV.db_password' \
-                                    >'${cfg.statePath}/config/database.yml'
-                ''
-                else ''
-                  ${pkgs.jq}/bin/jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
-                                    >'${cfg.statePath}/config/database.yml'
-                ''
-              }
-
-              ${utils.genJqSecretsReplacementSnippet
-                  gitlabConfig
-                  "${cfg.statePath}/config/gitlab.yml"
-              }
-
-              if [[ -h '${cfg.statePath}/config/secrets.yml' ]]; then
-                rm '${cfg.statePath}/config/secrets.yml'
-              fi
-
-              export secret="$(<'${cfg.secrets.secretFile}')"
-              export db="$(<'${cfg.secrets.dbFile}')"
-              export otp="$(<'${cfg.secrets.otpFile}')"
-              export jws="$(<'${cfg.secrets.jwsFile}')"
-              ${pkgs.jq}/bin/jq -n '{production: {secret_key_base: $ENV.secret,
-                                                  otp_key_base: $ENV.otp,
-                                                  db_key_base: $ENV.db,
-                                                  openid_connect_signing_key: $ENV.jws}}' \
-                                > '${cfg.statePath}/config/secrets.yml'
-            )
-
-            initial_root_password="$(<'${cfg.initialRootPasswordFile}')"
-            ${gitlab-rake}/bin/gitlab-rake gitlab:db:configure GITLAB_ROOT_PASSWORD="$initial_root_password" \
-                                                               GITLAB_ROOT_EMAIL='${cfg.initialRootEmail}' > /dev/null
-
-            # We remove potentially broken links to old gitlab-shell versions
-            rm -Rf ${cfg.statePath}/repositories/**/*.git/hooks
-
-            ${pkgs.git}/bin/git config --global core.autocrlf "input"
-          '';
-        in [
-          "+${pkgs.writeShellScript "gitlab-pre-start-full-privileges" preStartFullPrivileges}"
-          "${pkgs.writeShellScript "gitlab-pre-start" preStart}"
-        ];
-        ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/unicorn -c ${cfg.statePath}/config/unicorn.rb -E production";
+    systemd.services.gitlab-backup = {
+      after = [ "gitlab.service" ];
+      bindsTo = [ "gitlab.service" ];
+      startAt = cfg.backup.startAt;
+      environment = {
+        RAILS_ENV = "production";
+        CRON = "1";
+      } // optionalAttrs (stringLength cfg.backup.skip > 0) {
+        SKIP = cfg.backup.skip;
+      };
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart = "${gitlab-rake}/bin/gitlab-rake gitlab:backup:create";
       };
-
     };
 
   };
diff --git a/nixpkgs/nixos/modules/services/misc/gitlab.xml b/nixpkgs/nixos/modules/services/misc/gitlab.xml
index 19a3df0a5f66..40424c5039a2 100644
--- a/nixpkgs/nixos/modules/services/misc/gitlab.xml
+++ b/nixpkgs/nixos/modules/services/misc/gitlab.xml
@@ -3,15 +3,15 @@
          xmlns:xi="http://www.w3.org/2001/XInclude"
          version="5.0"
          xml:id="module-services-gitlab">
- <title>Gitlab</title>
+ <title>GitLab</title>
  <para>
-  Gitlab is a feature-rich git hosting service.
+  GitLab is a feature-rich git hosting service.
  </para>
  <section xml:id="module-services-gitlab-prerequisites">
   <title>Prerequisites</title>
 
   <para>
-   The gitlab service exposes only an Unix socket at
+   The <literal>gitlab</literal> service exposes only an Unix socket at
    <literal>/run/gitlab/gitlab-workhorse.socket</literal>. You need to
    configure a webserver to proxy HTTP requests to the socket.
   </para>
@@ -39,7 +39,7 @@
   <title>Configuring</title>
 
   <para>
-   Gitlab depends on both PostgreSQL and Redis and will automatically enable
+   GitLab depends on both PostgreSQL and Redis and will automatically enable
    both services. In the case of PostgreSQL, a database and a role will be
    created.
   </para>
@@ -85,20 +85,20 @@ services.gitlab = {
   </para>
 
   <para>
-   If you're setting up a new Gitlab instance, generate new
+   If you're setting up a new GitLab instance, generate new
    secrets. You for instance use <literal>tr -dc A-Za-z0-9 &lt;
    /dev/urandom | head -c 128 &gt; /var/keys/gitlab/db</literal> to
    generate a new db secret. Make sure the files can be read by, and
    only by, the user specified by <link
-   linkend="opt-services.gitlab.user">services.gitlab.user</link>. Gitlab
+   linkend="opt-services.gitlab.user">services.gitlab.user</link>. GitLab
    encrypts sensitive data stored in the database. If you're restoring
-   an existing Gitlab instance, you must specify the secrets secret
-   from <literal>config/secrets.yml</literal> located in your Gitlab
+   an existing GitLab instance, you must specify the secrets secret
+   from <literal>config/secrets.yml</literal> located in your GitLab
    state folder.
   </para>
 
   <para>
-    When <literal>icoming_mail.enabled</literal> is set to <literal>true</literal>
+    When <literal>incoming_mail.enabled</literal> is set to <literal>true</literal>
     in <link linkend="opt-services.gitlab.extraConfig">extraConfig</link> an additional
     service called <literal>gitlab-mailroom</literal> is enabled for fetching incoming mail.
   </para>
@@ -112,21 +112,40 @@ services.gitlab = {
  <section xml:id="module-services-gitlab-maintenance">
   <title>Maintenance</title>
 
-  <para>
-   You can run Gitlab's rake tasks with <literal>gitlab-rake</literal> which
-   will be available on the system when gitlab is enabled. You will have to run
-   the command as the user that you configured to run gitlab with.
-  </para>
+  <section xml:id="module-services-gitlab-maintenance-backups">
+   <title>Backups</title>
+   <para>
+     Backups can be configured with the options in <link
+     linkend="opt-services.gitlab.backup.keepTime">services.gitlab.backup</link>. Use
+     the <link
+     linkend="opt-services.gitlab.backup.startAt">services.gitlab.backup.startAt</link>
+     option to configure regular backups.
+   </para>
 
-  <para>
-   For example, to backup a Gitlab instance:
+   <para>
+     To run a manual backup, start the <literal>gitlab-backup</literal> service:
 <screen>
-<prompt>$ </prompt>sudo -u git -H gitlab-rake gitlab:backup:create
+<prompt>$ </prompt>systemctl start gitlab-backup.service
 </screen>
-   A list of all availabe rake tasks can be obtained by running:
+   </para>
+  </section>
+
+  <section xml:id="module-services-gitlab-maintenance-rake">
+   <title>Rake tasks</title>
+
+   <para>
+    You can run GitLab's rake tasks with <literal>gitlab-rake</literal>
+    which will be available on the system when GitLab is enabled. You
+    will have to run the command as the user that you configured to run
+    GitLab with.
+   </para>
+
+   <para>
+    A list of all availabe rake tasks can be obtained by running:
 <screen>
 <prompt>$ </prompt>sudo -u git -H gitlab-rake -T
 </screen>
-  </para>
+   </para>
+  </section>
  </section>
 </chapter>
diff --git a/nixpkgs/nixos/modules/services/misc/gollum.nix b/nixpkgs/nixos/modules/services/misc/gollum.nix
index 0c9c7548305b..4053afa69be5 100644
--- a/nixpkgs/nixos/modules/services/misc/gollum.nix
+++ b/nixpkgs/nixos/modules/services/misc/gollum.nix
@@ -115,4 +115,6 @@ in
       };
     };
   };
+
+  meta.maintainers = with lib.maintainers; [ erictapen ];
 }
diff --git a/nixpkgs/nixos/modules/services/misc/home-assistant.nix b/nixpkgs/nixos/modules/services/misc/home-assistant.nix
index 1f2e13f37325..2787c975b352 100644
--- a/nixpkgs/nixos/modules/services/misc/home-assistant.nix
+++ b/nixpkgs/nixos/modules/services/misc/home-assistant.nix
@@ -50,10 +50,15 @@ let
   # List of components used in config
   extraComponents = filter useComponent availableComponents;
 
-  package = if (cfg.autoExtraComponents && cfg.config != null)
+  testedPackage = if (cfg.autoExtraComponents && cfg.config != null)
     then (cfg.package.override { inherit extraComponents; })
     else cfg.package;
 
+  # overridePythonAttrs has to be applied after override
+  package = testedPackage.overridePythonAttrs (oldAttrs: {
+    doCheck = false;
+  });
+
   # If you are changing this, please update the description in applyDefaultConfig
   defaultConfig = {
     homeassistant.time_zone = config.time.timeZone;
@@ -63,7 +68,7 @@ let
   };
 
 in {
-  meta.maintainers = with maintainers; [ dotlambda ];
+  meta.maintainers = teams.home-assistant.members;
 
   options.services.home-assistant = {
     enable = mkEnableOption "Home Assistant";
@@ -184,7 +189,9 @@ in {
 
     package = mkOption {
       default = pkgs.home-assistant;
-      defaultText = "pkgs.home-assistant";
+      defaultText = literalExample ''
+        pkgs.home-assistant
+      '';
       type = types.package;
       example = literalExample ''
         pkgs.home-assistant.override {
@@ -192,10 +199,12 @@ in {
         }
       '';
       description = ''
-        Home Assistant package to use.
+        Home Assistant package to use. Tests are automatically disabled, as they take a considerable amout of time to complete.
         Override <literal>extraPackages</literal> or <literal>extraComponents</literal> in order to add additional dependencies.
         If you specify <option>config</option> and do not set <option>autoExtraComponents</option>
         to <literal>false</literal>, overriding <literal>extraComponents</literal> will have no effect.
+        Avoid <literal>home-assistant.overridePythonAttrs</literal> if you use
+        <literal>autoExtraComponents</literal>.
       '';
     };
 
diff --git a/nixpkgs/nixos/modules/services/misc/lifecycled.nix b/nixpkgs/nixos/modules/services/misc/lifecycled.nix
new file mode 100644
index 000000000000..1c8942998d6c
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/lifecycled.nix
@@ -0,0 +1,164 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+let
+  cfg = config.services.lifecycled;
+
+  # TODO: Add the ability to extend this with an rfc 42-like interface.
+  # In the meantime, one can modify the environment (as
+  # long as it's not overriding anything from here) with
+  # systemd.services.lifecycled.serviceConfig.Environment
+  configFile = pkgs.writeText "lifecycled" ''
+    LIFECYCLED_HANDLER=${cfg.handler}
+    ${lib.optionalString (cfg.cloudwatchGroup != null) "LIFECYCLED_CLOUDWATCH_GROUP=${cfg.cloudwatchGroup}"}
+    ${lib.optionalString (cfg.cloudwatchStream != null) "LIFECYCLED_CLOUDWATCH_STREAM=${cfg.cloudwatchStream}"}
+    ${lib.optionalString cfg.debug "LIFECYCLED_DEBUG=${lib.boolToString cfg.debug}"}
+    ${lib.optionalString (cfg.instanceId != null) "LIFECYCLED_INSTANCE_ID=${cfg.instanceId}"}
+    ${lib.optionalString cfg.json "LIFECYCLED_JSON=${lib.boolToString cfg.json}"}
+    ${lib.optionalString cfg.noSpot "LIFECYCLED_NO_SPOT=${lib.boolToString cfg.noSpot}"}
+    ${lib.optionalString (cfg.snsTopic != null) "LIFECYCLED_SNS_TOPIC=${cfg.snsTopic}"}
+    ${lib.optionalString (cfg.awsRegion != null) "AWS_REGION=${cfg.awsRegion}"}
+  '';
+in
+{
+  meta.maintainers = with maintainers; [ cole-h grahamc ];
+
+  options = {
+    services.lifecycled = {
+      enable = mkEnableOption "lifecycled";
+
+      queueCleaner = {
+        enable = mkEnableOption "lifecycled-queue-cleaner";
+
+        frequency = mkOption {
+          type = types.str;
+          default = "hourly";
+          description = ''
+            How often to trigger the queue cleaner.
+
+            NOTE: This string should be a valid value for a systemd
+            timer's <literal>OnCalendar</literal> configuration. See
+            <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+            for more information.
+          '';
+        };
+
+        parallel = mkOption {
+          type = types.ints.unsigned;
+          default = 20;
+          description = ''
+            The number of parallel deletes to run.
+          '';
+        };
+      };
+
+      instanceId = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          The instance ID to listen for events for.
+        '';
+      };
+
+      snsTopic = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          The SNS topic that receives events.
+        '';
+      };
+
+      noSpot = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Disable the spot termination listener.
+        '';
+      };
+
+      handler = mkOption {
+        type = types.path;
+        description = ''
+          The script to invoke to handle events.
+        '';
+      };
+
+      json = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Enable JSON logging.
+        '';
+      };
+
+      cloudwatchGroup = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Write logs to a specific Cloudwatch Logs group.
+        '';
+      };
+
+      cloudwatchStream = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Write logs to a specific Cloudwatch Logs stream. Defaults to the instance ID.
+        '';
+      };
+
+      debug = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Enable debugging information.
+        '';
+      };
+
+      # XXX: Can be removed if / when
+      # https://github.com/buildkite/lifecycled/pull/91 is merged.
+      awsRegion = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          The region used for accessing AWS services.
+        '';
+      };
+    };
+  };
+
+  ### Implementation ###
+
+  config = mkMerge [
+    (mkIf cfg.enable {
+      environment.etc."lifecycled".source = configFile;
+
+      systemd.packages = [ pkgs.lifecycled ];
+      systemd.services.lifecycled = {
+        wantedBy = [ "network-online.target" ];
+        restartTriggers = [ configFile ];
+      };
+    })
+
+    (mkIf cfg.queueCleaner.enable {
+      systemd.services.lifecycled-queue-cleaner = {
+        description = "Lifecycle Daemon Queue Cleaner";
+        environment = optionalAttrs (cfg.awsRegion != null) { AWS_REGION = cfg.awsRegion; };
+        serviceConfig = {
+          Type = "oneshot";
+          ExecStart = "${pkgs.lifecycled}/bin/lifecycled-queue-cleaner -parallel ${toString cfg.queueCleaner.parallel}";
+        };
+      };
+
+      systemd.timers.lifecycled-queue-cleaner = {
+        description = "Lifecycle Daemon Queue Cleaner Timer";
+        wantedBy = [ "timers.target" ];
+        after = [ "network-online.target" ];
+        timerConfig = {
+          Unit = "lifecycled-queue-cleaner.service";
+          OnCalendar = "${cfg.queueCleaner.frequency}";
+        };
+      };
+    })
+  ];
+}
diff --git a/nixpkgs/nixos/modules/services/misc/mame.nix b/nixpkgs/nixos/modules/services/misc/mame.nix
index c5d5e9e48371..34a471ea4fe0 100644
--- a/nixpkgs/nixos/modules/services/misc/mame.nix
+++ b/nixpkgs/nixos/modules/services/misc/mame.nix
@@ -53,7 +53,7 @@ in
       description = "MAME TUN/TAP Ethernet interface";
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
-      path = [ pkgs.iproute ];
+      path = [ pkgs.iproute2 ];
       serviceConfig = {
         Type = "oneshot";
         RemainAfterExit = true;
diff --git a/nixpkgs/nixos/modules/services/misc/matrix-appservice-irc.nix b/nixpkgs/nixos/modules/services/misc/matrix-appservice-irc.nix
new file mode 100644
index 000000000000..63dc313ad10b
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/matrix-appservice-irc.nix
@@ -0,0 +1,228 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.services.matrix-appservice-irc;
+
+  pkg = pkgs.matrix-appservice-irc;
+  bin = "${pkg}/bin/matrix-appservice-irc";
+
+  jsonType = (pkgs.formats.json {}).type;
+
+  configFile = pkgs.runCommandNoCC "matrix-appservice-irc.yml" {
+    # Because this program will be run at build time, we need `nativeBuildInputs`
+    nativeBuildInputs = [ (pkgs.python3.withPackages (ps: [ ps.pyyaml ps.jsonschema ])) ];
+    preferLocalBuild = true;
+
+    config = builtins.toJSON cfg.settings;
+    passAsFile = [ "config" ];
+  } ''
+    # The schema is given as yaml, we need to convert it to json
+    python -c 'import json; import yaml; import sys; json.dump(yaml.safe_load(sys.stdin), sys.stdout)' \
+      < ${pkg}/lib/node_modules/matrix-appservice-irc/config.schema.yml \
+      > config.schema.json
+    python -m jsonschema config.schema.json -i $configPath
+    cp "$configPath" "$out"
+  '';
+  registrationFile = "/var/lib/matrix-appservice-irc/registration.yml";
+in {
+  options.services.matrix-appservice-irc = with types; {
+    enable = mkEnableOption "the Matrix/IRC bridge";
+
+    port = mkOption {
+      type = port;
+      description = "The port to listen on";
+      default = 8009;
+    };
+
+    needBindingCap = mkOption {
+      type = bool;
+      description = "Whether the daemon needs to bind to ports below 1024 (e.g. for the ident service)";
+      default = false;
+    };
+
+    passwordEncryptionKeyLength = mkOption {
+      type = ints.unsigned;
+      description = "Length of the key to encrypt IRC passwords with";
+      default = 4096;
+      example = 8192;
+    };
+
+    registrationUrl = mkOption {
+      type = str;
+      description = ''
+        The URL where the application service is listening for homeserver requests,
+        from the Matrix homeserver perspective.
+      '';
+      example = "http://localhost:8009";
+    };
+
+    localpart = mkOption {
+      type = str;
+      description = "The user_id localpart to assign to the appservice";
+      default = "appservice-irc";
+    };
+
+    settings = mkOption {
+      description = ''
+        Configuration for the appservice, see
+        <link xlink:href="https://github.com/matrix-org/matrix-appservice-irc/blob/${pkgs.matrix-appservice-irc.version}/config.sample.yaml"/>
+        for supported values
+      '';
+      default = {};
+      type = submodule {
+        freeformType = jsonType;
+
+        options = {
+          homeserver = mkOption {
+            description = "Homeserver configuration";
+            default = {};
+            type = submodule {
+              freeformType = jsonType;
+
+              options = {
+                url = mkOption {
+                  type = str;
+                  description = "The URL to the home server for client-server API calls";
+                };
+
+                domain = mkOption {
+                  type = str;
+                  description = ''
+                    The 'domain' part for user IDs on this home server. Usually
+                    (but not always) is the "domain name" part of the homeserver URL.
+                  '';
+                };
+              };
+            };
+          };
+
+          database = mkOption {
+            default = {};
+            description = "Configuration for the database";
+            type = submodule {
+              freeformType = jsonType;
+
+              options = {
+                engine = mkOption {
+                  type = str;
+                  description = "Which database engine to use";
+                  default = "nedb";
+                  example = "postgres";
+                };
+
+                connectionString = mkOption {
+                  type = str;
+                  description = "The database connection string";
+                  default = "nedb://var/lib/matrix-appservice-irc/data";
+                  example = "postgres://username:password@host:port/databasename";
+                };
+              };
+            };
+          };
+
+          ircService = mkOption {
+            default = {};
+            description = "IRC bridge configuration";
+            type = submodule {
+              freeformType = jsonType;
+
+              options = {
+                passwordEncryptionKeyPath = mkOption {
+                  type = str;
+                  description = ''
+                    Location of the key with which IRC passwords are encrypted
+                    for storage. Will be generated on first run if not present.
+                  '';
+                  default = "/var/lib/matrix-appservice-irc/passkey.pem";
+                };
+
+                servers = mkOption {
+                  type = submodule { freeformType = jsonType; };
+                  description = "IRC servers to connect to";
+                };
+              };
+            };
+          };
+        };
+      };
+    };
+  };
+  config = mkIf cfg.enable {
+    systemd.services.matrix-appservice-irc = {
+      description = "Matrix-IRC bridge";
+      before = [ "matrix-synapse.service" ]; # So the registration can be used by Synapse
+      wantedBy = [ "multi-user.target" ];
+
+      preStart = ''
+        umask 077
+        # Generate key for crypting passwords
+        if ! [ -f "${cfg.settings.ircService.passwordEncryptionKeyPath}" ]; then
+          ${pkgs.openssl}/bin/openssl genpkey \
+              -out "${cfg.settings.ircService.passwordEncryptionKeyPath}" \
+              -outform PEM \
+              -algorithm RSA \
+              -pkeyopt "rsa_keygen_bits:${toString cfg.passwordEncryptionKeyLength}"
+        fi
+        # Generate registration file
+        if ! [ -f "${registrationFile}" ]; then
+          # The easy case: the file has not been generated yet
+          ${bin} --generate-registration --file ${registrationFile} --config ${configFile} --url ${cfg.registrationUrl} --localpart ${cfg.localpart}
+        else
+          # The tricky case: we already have a generation file. Because the NixOS configuration might have changed, we need to
+          # regenerate it. But this would give the service a new random ID and tokens, so we need to back up and restore them.
+          # 1. Backup
+          id=$(grep "^id:.*$" ${registrationFile})
+          hs_token=$(grep "^hs_token:.*$" ${registrationFile})
+          as_token=$(grep "^as_token:.*$" ${registrationFile})
+          # 2. Regenerate
+          ${bin} --generate-registration --file ${registrationFile} --config ${configFile} --url ${cfg.registrationUrl} --localpart ${cfg.localpart}
+          # 3. Restore
+          sed -i "s/^id:.*$/$id/g" ${registrationFile}
+          sed -i "s/^hs_token:.*$/$hs_token/g" ${registrationFile}
+          sed -i "s/^as_token:.*$/$as_token/g" ${registrationFile}
+        fi
+        # Allow synapse access to the registration
+        if ${getBin pkgs.glibc}/bin/getent group matrix-synapse > /dev/null; then
+          chgrp matrix-synapse ${registrationFile}
+          chmod g+r ${registrationFile}
+        fi
+      '';
+
+      serviceConfig = rec {
+        Type = "simple";
+        ExecStart = "${bin} --config ${configFile} --file ${registrationFile} --port ${toString cfg.port}";
+
+        ProtectHome = true;
+        PrivateDevices = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        StateDirectory = "matrix-appservice-irc";
+        StateDirectoryMode = "755";
+
+        User = "matrix-appservice-irc";
+        Group = "matrix-appservice-irc";
+
+        CapabilityBoundingSet = [ "CAP_CHOWN" ] ++ optional (cfg.needBindingCap) "CAP_NET_BIND_SERVICE";
+        AmbientCapabilities = CapabilityBoundingSet;
+        NoNewPrivileges = true;
+
+        LockPersonality = true;
+        RestrictRealtime = true;
+        PrivateMounts = true;
+        SystemCallFilter = "~@aio @clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @raw-io @setuid @swap";
+        SystemCallArchitectures = "native";
+        RestrictAddressFamilies = "AF_INET AF_INET6";
+      };
+    };
+
+    users.groups.matrix-appservice-irc = {};
+    users.users.matrix-appservice-irc = {
+      description = "Service user for the Matrix-IRC bridge";
+      group = "matrix-appservice-irc";
+      isSystemUser = true;
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix b/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix
index caeb4b04164f..0ae5797fea04 100644
--- a/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix
+++ b/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix
@@ -6,8 +6,9 @@ let
   dataDir = "/var/lib/mautrix-telegram";
   registrationFile = "${dataDir}/telegram-registration.yaml";
   cfg = config.services.mautrix-telegram;
-  # TODO: switch to configGen.json once RFC42 is implemented
-  settingsFile = pkgs.writeText "mautrix-telegram-settings.json" (builtins.toJSON cfg.settings);
+  settingsFormat = pkgs.formats.json {};
+  settingsFileUnsubstituted = settingsFormat.generate "mautrix-telegram-config-unsubstituted.json" cfg.settings;
+  settingsFile = "${dataDir}/config.json";
 
 in {
   options = {
@@ -15,9 +16,8 @@ in {
       enable = mkEnableOption "Mautrix-Telegram, a Matrix-Telegram hybrid puppeting/relaybot bridge";
 
       settings = mkOption rec {
-        # TODO: switch to types.config.json as prescribed by RFC42 once it's implemented
-        type = types.attrs;
         apply = recursiveUpdate default;
+        inherit (settingsFormat) type;
         default = {
           appservice = rec {
             database = "sqlite:///${dataDir}/mautrix-telegram.db";
@@ -124,6 +124,16 @@ in {
       after = [ "network-online.target" ] ++ cfg.serviceDependencies;
 
       preStart = ''
+        # Not all secrets can be passed as environment variable (yet)
+        # https://github.com/tulir/mautrix-telegram/issues/584
+        [ -f ${settingsFile} ] && rm -f ${settingsFile}
+        old_umask=$(umask)
+        umask 0277
+        ${pkgs.envsubst}/bin/envsubst \
+          -o ${settingsFile} \
+          -i ${settingsFileUnsubstituted}
+        umask $old_umask
+
         # generate the appservice's registration file if absent
         if [ ! -f '${registrationFile}' ]; then
           ${pkgs.mautrix-telegram}/bin/mautrix-telegram \
@@ -159,6 +169,8 @@ in {
             --config='${settingsFile}'
         '';
       };
+
+      restartTriggers = [ settingsFileUnsubstituted ];
     };
   };
 
diff --git a/nixpkgs/nixos/modules/services/misc/nix-gc.nix b/nixpkgs/nixos/modules/services/misc/nix-gc.nix
index 12bed05757ad..a7a6a3b59644 100644
--- a/nixpkgs/nixos/modules/services/misc/nix-gc.nix
+++ b/nixpkgs/nixos/modules/services/misc/nix-gc.nix
@@ -21,13 +21,45 @@ in
       };
 
       dates = mkOption {
+        type = types.str;
         default = "03:15";
+        example = "weekly";
+        description = ''
+          How often or when garbage collection is performed. For most desktop and server systems
+          a sufficient garbage collection is once a week.
+
+          The format is described in
+          <citerefentry><refentrytitle>systemd.time</refentrytitle>
+          <manvolnum>7</manvolnum></citerefentry>.
+        '';
+      };
+
+      randomizedDelaySec = mkOption {
+        default = "0";
         type = types.str;
+        example = "45min";
         description = ''
-          Specification (in the format described by
+          Add a randomized delay before each automatic upgrade.
+          The delay will be chosen between zero and this value.
+          This value must be a time span in the format specified by
           <citerefentry><refentrytitle>systemd.time</refentrytitle>
-          <manvolnum>7</manvolnum></citerefentry>) of the time at
-          which the garbage collector will run.
+          <manvolnum>7</manvolnum></citerefentry>
+        '';
+      };
+
+      persistent = mkOption {
+        default = true;
+        type = types.bool;
+        example = false;
+        description = ''
+          Takes a boolean argument. If true, the time when the service
+          unit was last triggered is stored on disk. When the timer is
+          activated, the service unit is triggered immediately if it
+          would have been triggered at least once during the time when
+          the timer was inactive. Such triggering is nonetheless
+          subject to the delay imposed by RandomizedDelaySec=. This is
+          useful to catch up on missed runs of the service when the
+          system was powered down.
         '';
       };
 
@@ -50,11 +82,18 @@ in
 
   config = {
 
-    systemd.services.nix-gc =
-      { description = "Nix Garbage Collector";
-        script = "exec ${config.nix.package.out}/bin/nix-collect-garbage ${cfg.options}";
-        startAt = optional cfg.automatic cfg.dates;
+    systemd.services.nix-gc = {
+      description = "Nix Garbage Collector";
+      script = "exec ${config.nix.package.out}/bin/nix-collect-garbage ${cfg.options}";
+      startAt = optional cfg.automatic cfg.dates;
+    };
+
+    systemd.timers.nix-gc = lib.mkIf cfg.automatic {
+      timerConfig = {
+        RandomizedDelaySec = cfg.randomizedDelaySec;
+        Persistent = cfg.persistent;
       };
+    };
 
   };
 
diff --git a/nixpkgs/nixos/modules/services/misc/ombi.nix b/nixpkgs/nixos/modules/services/misc/ombi.nix
new file mode 100644
index 000000000000..83f433e0be4a
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/ombi.nix
@@ -0,0 +1,80 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let cfg = config.services.ombi;
+
+in {
+  options = {
+    services.ombi = {
+      enable = mkEnableOption ''
+        Ombi.
+        Optionally see <link xlink:href="https://docs.ombi.app/info/reverse-proxy"/>
+        on how to set up a reverse proxy
+      '';
+
+      dataDir = mkOption {
+        type = types.str;
+        default = "/var/lib/ombi";
+        description = "The directory where Ombi stores its data files.";
+      };
+
+      port = mkOption {
+        type = types.port;
+        default = 5000;
+        description = "The port for the Ombi web interface.";
+      };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Open ports in the firewall for the Ombi web interface.";
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "ombi";
+        description = "User account under which Ombi runs.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "ombi";
+        description = "Group under which Ombi runs.";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.tmpfiles.rules = [
+      "d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
+    ];
+
+    systemd.services.ombi = {
+      description = "Ombi";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        Type = "simple";
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart = "${pkgs.ombi}/bin/Ombi --storage '${cfg.dataDir}' --host 'http://*:${toString cfg.port}'";
+        Restart = "on-failure";
+      };
+    };
+
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ cfg.port ];
+    };
+
+    users.users = mkIf (cfg.user == "ombi") {
+      ombi = {
+        group = cfg.group;
+        home = cfg.dataDir;
+      };
+    };
+
+    users.groups = mkIf (cfg.group == "ombi") { ombi = { }; };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/packagekit.nix b/nixpkgs/nixos/modules/services/misc/packagekit.nix
index 325c4e84e0d8..93bd206bd983 100644
--- a/nixpkgs/nixos/modules/services/misc/packagekit.nix
+++ b/nixpkgs/nixos/modules/services/misc/packagekit.nix
@@ -1,55 +1,60 @@
 { config, lib, pkgs, ... }:
 
-with lib;
-
 let
-
   cfg = config.services.packagekit;
 
-  packagekitConf = ''
-    [Daemon]
-    DefaultBackend=${cfg.backend}
-    KeepCache=false
-  '';
+  inherit (lib)
+    mkEnableOption mkOption mkIf mkRemovedOptionModule types
+    listToAttrs recursiveUpdate;
 
-  vendorConf = ''
-    [PackagesNotFound]
-    DefaultUrl=https://github.com/NixOS/nixpkgs
-    CodecUrl=https://github.com/NixOS/nixpkgs
-    HardwareUrl=https://github.com/NixOS/nixpkgs
-    FontUrl=https://github.com/NixOS/nixpkgs
-    MimeUrl=https://github.com/NixOS/nixpkgs
-  '';
+  iniFmt = pkgs.formats.ini { };
 
-in
+  confFiles = [
+    (iniFmt.generate "PackageKit.conf" (recursiveUpdate
+      {
+        Daemon = {
+          DefaultBackend = "test_nop";
+          KeepCache = false;
+        };
+      }
+      cfg.settings))
 
+    (iniFmt.generate "Vendor.conf" (recursiveUpdate
+      {
+        PackagesNotFound = rec {
+          DefaultUrl = "https://github.com/NixOS/nixpkgs";
+          CodecUrl = DefaultUrl;
+          HardwareUrl = DefaultUrl;
+          FontUrl = DefaultUrl;
+          MimeUrl = DefaultUrl;
+        };
+      }
+      cfg.vendorSettings))
+  ];
+
+in
 {
+  imports = [
+    (mkRemovedOptionModule [ "services" "packagekit" "backend" ] "The only backend that doesn't blow up is `test_nop`.")
+  ];
 
-  options = {
+  options.services.packagekit = {
+    enable = mkEnableOption ''
+      PackageKit provides a cross-platform D-Bus abstraction layer for
+      installing software. Software utilizing PackageKit can install
+      software regardless of the package manager.
+    '';
 
-    services.packagekit = {
-      enable = mkEnableOption
-        ''
-          PackageKit provides a cross-platform D-Bus abstraction layer for
-          installing software. Software utilizing PackageKit can install
-          software regardless of the package manager.
-        '';
+    settings = mkOption {
+      type = iniFmt.type;
+      default = { };
+      description = "Additional settings passed straight through to PackageKit.conf";
+    };
 
-      # TODO: integrate with PolicyKit if the nix backend matures to the point
-      # where it will require elevated permissions
-      backend = mkOption {
-        type = types.enum [ "test_nop" ];
-        default = "test_nop";
-        description = ''
-          PackageKit supports multiple different backends and <literal>auto</literal> which
-          should do the right thing.
-          </para>
-          <para>
-          On NixOS however, we do not have a backend compatible with nix 2.0
-          (refer to <link xlink:href="https://github.com/NixOS/nix/issues/233">this issue</link> so we have to force
-          it to <literal>test_nop</literal> for now.
-        '';
-      };
+    vendorSettings = mkOption {
+      type = iniFmt.type;
+      default = { };
+      description = "Additional settings passed straight through to Vendor.conf";
     };
   };
 
@@ -59,7 +64,9 @@ in
 
     systemd.packages = with pkgs; [ packagekit ];
 
-    environment.etc."PackageKit/PackageKit.conf".text = packagekitConf;
-    environment.etc."PackageKit/Vendor.conf".text = vendorConf;
+    environment.etc = listToAttrs (map
+      (e:
+        lib.nameValuePair "PackageKit/${e.name}" { source = e; })
+      confFiles);
   };
 }
diff --git a/nixpkgs/nixos/modules/services/misc/plikd.nix b/nixpkgs/nixos/modules/services/misc/plikd.nix
new file mode 100644
index 000000000000..a62dbef1d2af
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/plikd.nix
@@ -0,0 +1,82 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.services.plikd;
+
+  format = pkgs.formats.toml {};
+  plikdCfg = format.generate "plikd.cfg" cfg.settings;
+in
+{
+  options = {
+    services.plikd = {
+      enable = mkEnableOption "the plikd server";
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Open ports in the firewall for the plikd.";
+      };
+
+      settings = mkOption {
+        type = format.type;
+        default = {};
+        description = ''
+          Configuration for plikd, see <link xlink:href="https://github.com/root-gg/plik/blob/master/server/plikd.cfg"/>
+          for supported values.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.plikd.settings = mapAttrs (name: mkDefault) {
+      ListenPort = 8080;
+      ListenAddress = "localhost";
+      DataBackend = "file";
+      DataBackendConfig = {
+         Directory = "/var/lib/plikd";
+      };
+      MetadataBackendConfig = {
+        Driver = "sqlite3";
+        ConnectionString = "/var/lib/plikd/plik.db";
+      };
+    };
+
+    systemd.services.plikd = {
+      description = "Plikd file sharing server";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = "simple";
+        ExecStart = "${pkgs.plikd}/bin/plikd --config ${plikdCfg}";
+        Restart = "on-failure";
+        StateDirectory = "plikd";
+        LogsDirectory = "plikd";
+        DynamicUser = true;
+
+        # Basic hardening
+        NoNewPrivileges = "yes";
+        PrivateTmp = "yes";
+        PrivateDevices = "yes";
+        DevicePolicy = "closed";
+        ProtectSystem = "strict";
+        ProtectHome = "read-only";
+        ProtectControlGroups = "yes";
+        ProtectKernelModules = "yes";
+        ProtectKernelTunables = "yes";
+        RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
+        RestrictNamespaces = "yes";
+        RestrictRealtime = "yes";
+        RestrictSUIDSGID = "yes";
+        MemoryDenyWriteExecute = "yes";
+        LockPersonality = "yes";
+      };
+    };
+
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ cfg.settings.ListenPort ];
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/redmine.nix b/nixpkgs/nixos/modules/services/misc/redmine.nix
index 8b53eb471db6..e0055576d6f6 100644
--- a/nixpkgs/nixos/modules/services/misc/redmine.nix
+++ b/nixpkgs/nixos/modules/services/misc/redmine.nix
@@ -28,7 +28,7 @@ let
   unpack = id: (name: source:
     pkgs.stdenv.mkDerivation {
       name = "redmine-${id}-${name}";
-      buildInputs = [ pkgs.unzip ];
+      nativeBuildInputs = [ pkgs.unzip ];
       buildCommand = ''
         mkdir -p $out
         cd $out
diff --git a/nixpkgs/nixos/modules/services/monitoring/alerta.nix b/nixpkgs/nixos/modules/services/monitoring/alerta.nix
index 34f2d41706a5..7c6eff713cb1 100644
--- a/nixpkgs/nixos/modules/services/monitoring/alerta.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/alerta.nix
@@ -95,13 +95,13 @@ in
         ALERTA_SVR_CONF_FILE = alertaConf;
       };
       serviceConfig = {
-        ExecStart = "${pkgs.python36Packages.alerta-server}/bin/alertad run --port ${toString cfg.port} --host ${cfg.bind}";
+        ExecStart = "${pkgs.alerta-server}/bin/alertad run --port ${toString cfg.port} --host ${cfg.bind}";
         User = "alerta";
         Group = "alerta";
       };
     };
 
-    environment.systemPackages = [ pkgs.python36Packages.alerta ];
+    environment.systemPackages = [ pkgs.alerta ];
 
     users.users.alerta = {
       uid = config.ids.uids.alerta;
diff --git a/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix b/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix
index d97565f15d6c..b25a53435d06 100644
--- a/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix
@@ -225,7 +225,7 @@ in {
     };
   };
   config = mkIf cfg.enable {
-    environment.systemPackages = [ datadogPkg pkgs.sysstat pkgs.procps pkgs.iproute ];
+    environment.systemPackages = [ datadogPkg pkgs.sysstat pkgs.procps pkgs.iproute2 ];
 
     users.users.datadog = {
       description = "Datadog Agent User";
@@ -239,7 +239,7 @@ in {
 
     systemd.services = let
       makeService = attrs: recursiveUpdate {
-        path = [ datadogPkg pkgs.python pkgs.sysstat pkgs.procps pkgs.iproute ];
+        path = [ datadogPkg pkgs.python pkgs.sysstat pkgs.procps pkgs.iproute2 ];
         wantedBy = [ "multi-user.target" ];
         serviceConfig = {
           User = "datadog";
diff --git a/nixpkgs/nixos/modules/services/monitoring/grafana.nix b/nixpkgs/nixos/modules/services/monitoring/grafana.nix
index c8515c4b8988..86e306ab404a 100644
--- a/nixpkgs/nixos/modules/services/monitoring/grafana.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/grafana.nix
@@ -15,6 +15,7 @@ let
     SERVER_PROTOCOL = cfg.protocol;
     SERVER_HTTP_ADDR = cfg.addr;
     SERVER_HTTP_PORT = cfg.port;
+    SERVER_SOCKET = cfg.socket;
     SERVER_DOMAIN = cfg.domain;
     SERVER_ROOT_URL = cfg.rootUrl;
     SERVER_STATIC_ROOT_PATH = cfg.staticRootPath;
@@ -65,10 +66,18 @@ let
 
   dashboardFile = pkgs.writeText "dashboard.yaml" (builtins.toJSON dashboardConfiguration);
 
+  notifierConfiguration = {
+    apiVersion = 1;
+    notifiers = cfg.provision.notifiers;
+  };
+
+  notifierFile = pkgs.writeText "notifier.yaml" (builtins.toJSON notifierConfiguration);
+
   provisionConfDir =  pkgs.runCommand "grafana-provisioning" { } ''
-    mkdir -p $out/{datasources,dashboards}
+    mkdir -p $out/{datasources,dashboards,notifiers}
     ln -sf ${datasourceFile} $out/datasources/datasource.yaml
     ln -sf ${dashboardFile} $out/dashboards/dashboard.yaml
+    ln -sf ${notifierFile} $out/notifiers/notifier.yaml
   '';
 
   # Get a submodule without any embedded metadata:
@@ -79,80 +88,80 @@ let
     options = {
       name = mkOption {
         type = types.str;
-        description = "Name of the datasource. Required";
+        description = "Name of the datasource. Required.";
       };
       type = mkOption {
         type = types.enum ["graphite" "prometheus" "cloudwatch" "elasticsearch" "influxdb" "opentsdb" "mysql" "mssql" "postgres" "loki"];
-        description = "Datasource type. Required";
+        description = "Datasource type. Required.";
       };
       access = mkOption {
         type = types.enum ["proxy" "direct"];
         default = "proxy";
-        description = "Access mode. proxy or direct (Server or Browser in the UI). Required";
+        description = "Access mode. proxy or direct (Server or Browser in the UI). Required.";
       };
       orgId = mkOption {
         type = types.int;
         default = 1;
-        description = "Org id. will default to orgId 1 if not specified";
+        description = "Org id. will default to orgId 1 if not specified.";
       };
       url = mkOption {
         type = types.str;
-        description = "Url of the datasource";
+        description = "Url of the datasource.";
       };
       password = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = "Database password, if used";
+        description = "Database password, if used.";
       };
       user = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = "Database user, if used";
+        description = "Database user, if used.";
       };
       database = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = "Database name, if used";
+        description = "Database name, if used.";
       };
       basicAuth = mkOption {
         type = types.nullOr types.bool;
         default = null;
-        description = "Enable/disable basic auth";
+        description = "Enable/disable basic auth.";
       };
       basicAuthUser = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = "Basic auth username";
+        description = "Basic auth username.";
       };
       basicAuthPassword = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = "Basic auth password";
+        description = "Basic auth password.";
       };
       withCredentials = mkOption {
         type = types.bool;
         default = false;
-        description = "Enable/disable with credentials headers";
+        description = "Enable/disable with credentials headers.";
       };
       isDefault = mkOption {
         type = types.bool;
         default = false;
-        description = "Mark as default datasource. Max one per org";
+        description = "Mark as default datasource. Max one per org.";
       };
       jsonData = mkOption {
         type = types.nullOr types.attrs;
         default = null;
-        description = "Datasource specific configuration";
+        description = "Datasource specific configuration.";
       };
       secureJsonData = mkOption {
         type = types.nullOr types.attrs;
         default = null;
-        description = "Datasource specific secure configuration";
+        description = "Datasource specific secure configuration.";
       };
       version = mkOption {
         type = types.int;
         default = 1;
-        description = "Version";
+        description = "Version.";
       };
       editable = mkOption {
         type = types.bool;
@@ -168,41 +177,99 @@ let
       name = mkOption {
         type = types.str;
         default = "default";
-        description = "Provider name";
+        description = "Provider name.";
       };
       orgId = mkOption {
         type = types.int;
         default = 1;
-        description = "Organization ID";
+        description = "Organization ID.";
       };
       folder = mkOption {
         type = types.str;
         default = "";
-        description = "Add dashboards to the specified folder";
+        description = "Add dashboards to the specified folder.";
       };
       type = mkOption {
         type = types.str;
         default = "file";
-        description = "Dashboard provider type";
+        description = "Dashboard provider type.";
       };
       disableDeletion = mkOption {
         type = types.bool;
         default = false;
-        description = "Disable deletion when JSON file is removed";
+        description = "Disable deletion when JSON file is removed.";
       };
       updateIntervalSeconds = mkOption {
         type = types.int;
         default = 10;
-        description = "How often Grafana will scan for changed dashboards";
+        description = "How often Grafana will scan for changed dashboards.";
       };
       options = {
         path = mkOption {
           type = types.path;
-          description = "Path grafana will watch for dashboards";
+          description = "Path grafana will watch for dashboards.";
         };
       };
     };
   };
+
+  grafanaTypes.notifierConfig = types.submodule {
+    options = {
+      name = mkOption {
+        type = types.str;
+        default = "default";
+        description = "Notifier name.";
+      };
+      type = mkOption {
+        type = types.enum ["dingding" "discord" "email" "googlechat" "hipchat" "kafka" "line" "teams" "opsgenie" "pagerduty" "prometheus-alertmanager" "pushover" "sensu" "sensugo" "slack" "telegram" "threema" "victorops" "webhook"];
+        description = "Notifier type.";
+      };
+      uid = mkOption {
+        type = types.str;
+        description = "Unique notifier identifier.";
+      };
+      org_id = mkOption {
+        type = types.int;
+        default = 1;
+        description = "Organization ID.";
+      };
+      org_name = mkOption {
+        type = types.str;
+        default = "Main Org.";
+        description = "Organization name.";
+      };
+      is_default = mkOption {
+        type = types.bool;
+        description = "Is the default notifier.";
+        default = false;
+      };
+      send_reminder = mkOption {
+        type = types.bool;
+        default = true;
+        description = "Should the notifier be sent reminder notifications while alerts continue to fire.";
+      };
+      frequency = mkOption {
+        type = types.str;
+        default = "5m";
+        description = "How frequently should the notifier be sent reminders.";
+      };
+      disable_resolve_message = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Turn off the message that sends when an alert returns to OK.";
+      };
+      settings = mkOption {
+        type = types.nullOr types.attrs;
+        default = null;
+        description = "Settings for the notifier type.";
+      };
+      secure_settings = mkOption {
+        type = types.nullOr types.attrs;
+        default = null;
+        description = "Secure settings for the notifier type.";
+      };
+    };
+  };
 in {
   options.services.grafana = {
     enable = mkEnableOption "grafana";
@@ -225,6 +292,12 @@ in {
       type = types.int;
     };
 
+    socket = mkOption {
+      description = "Listening socket.";
+      default = "/run/grafana/grafana.sock";
+      type = types.str;
+    };
+
     domain = mkOption {
       description = "The public facing domain name used to access grafana from a browser.";
       default = "localhost";
@@ -337,17 +410,23 @@ in {
     provision = {
       enable = mkEnableOption "provision";
       datasources = mkOption {
-        description = "Grafana datasources configuration";
+        description = "Grafana datasources configuration.";
         default = [];
         type = types.listOf grafanaTypes.datasourceConfig;
         apply = x: map _filter x;
       };
       dashboards = mkOption {
-        description = "Grafana dashboard configuration";
+        description = "Grafana dashboard configuration.";
         default = [];
         type = types.listOf grafanaTypes.dashboardConfig;
         apply = x: map _filter x;
       };
+      notifiers = mkOption {
+        description = "Grafana notifier configuration.";
+        default = [];
+        type = types.listOf grafanaTypes.notifierConfig;
+        apply = x: map _filter x;
+      };
     };
 
     security = {
@@ -391,12 +470,12 @@ in {
     smtp = {
       enable = mkEnableOption "smtp";
       host = mkOption {
-        description = "Host to connect to";
+        description = "Host to connect to.";
         default = "localhost:25";
         type = types.str;
       };
       user = mkOption {
-        description = "User used for authentication";
+        description = "User used for authentication.";
         default = "";
         type = types.str;
       };
@@ -417,7 +496,7 @@ in {
         type = types.nullOr types.path;
       };
       fromAddress = mkOption {
-        description = "Email address used for sending";
+        description = "Email address used for sending.";
         default = "admin@grafana.localhost";
         type = types.str;
       };
@@ -425,7 +504,7 @@ in {
 
     users = {
       allowSignUp = mkOption {
-        description = "Disable user signup / registration";
+        description = "Disable user signup / registration.";
         default = false;
         type = types.bool;
       };
@@ -451,17 +530,17 @@ in {
 
     auth.anonymous = {
       enable = mkOption {
-        description = "Whether to allow anonymous access";
+        description = "Whether to allow anonymous access.";
         default = false;
         type = types.bool;
       };
       org_name = mkOption {
-        description = "Which organization to allow anonymous access to";
+        description = "Which organization to allow anonymous access to.";
         default = "Main Org.";
         type = types.str;
       };
       org_role = mkOption {
-        description = "Which role anonymous users have in the organization";
+        description = "Which role anonymous users have in the organization.";
         default = "Viewer";
         type = types.str;
       };
@@ -470,7 +549,7 @@ in {
 
     analytics.reporting = {
       enable = mkOption {
-        description = "Whether to allow anonymous usage reporting to stats.grafana.net";
+        description = "Whether to allow anonymous usage reporting to stats.grafana.net.";
         default = true;
         type = types.bool;
       };
@@ -496,6 +575,9 @@ in {
       (optional (
         any (x: x.password != null || x.basicAuthPassword != null || x.secureJsonData != null) cfg.provision.datasources
       ) "Datasource passwords will be stored as plaintext in the Nix store!")
+      (optional (
+        any (x: x.secure_settings != null) cfg.provision.notifiers
+      ) "Notifier secure settings will be stored as plaintext in the Nix store!")
     ];
 
     environment.systemPackages = [ cfg.package ];
@@ -547,6 +629,8 @@ in {
       serviceConfig = {
         WorkingDirectory = cfg.dataDir;
         User = "grafana";
+        RuntimeDirectory = "grafana";
+        RuntimeDirectoryMode = "0755";
       };
       preStart = ''
         ln -fs ${cfg.package}/share/grafana/conf ${cfg.dataDir}
diff --git a/nixpkgs/nixos/modules/services/monitoring/netdata.nix b/nixpkgs/nixos/modules/services/monitoring/netdata.nix
index d5b679097b30..007024c04ce5 100644
--- a/nixpkgs/nixos/modules/services/monitoring/netdata.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/netdata.nix
@@ -123,9 +123,20 @@ in {
             "error log" = "syslog";
           };
         '';
-        };
+      };
+
+      enableAnalyticsReporting = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Enable reporting of anonymous usage statistics to Netdata Inc. via either
+          Google Analytics (in versions prior to 1.29.4), or Netdata Inc.'s
+          self-hosted PostHog (in versions 1.29.4 and later).
+          See: <link xlink:href="https://learn.netdata.cloud/docs/agent/anonymous-statistics"/>
+        '';
       };
     };
+  };
 
   config = mkIf cfg.enable {
     assertions =
@@ -140,8 +151,12 @@ in {
       wantedBy = [ "multi-user.target" ];
       path = (with pkgs; [ curl gawk which ]) ++ lib.optional cfg.python.enable
         (pkgs.python3.withPackages cfg.python.extraPackages);
+      environment = {
+        PYTHONPATH = "${cfg.package}/libexec/netdata/python.d/python_modules";
+      } // lib.optionalAttrs (!cfg.enableAnalyticsReporting) {
+        DO_NOT_TRACK = "1";
+      };
       serviceConfig = {
-        Environment="PYTHONPATH=${cfg.package}/libexec/netdata/python.d/python_modules";
         ExecStart = "${cfg.package}/bin/netdata -P /run/netdata/netdata.pid -D -c ${configFile}";
         ExecReload = "${pkgs.util-linux}/bin/kill -s HUP -s USR1 -s USR2 $MAINPID";
         TimeoutStopSec = 60;
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
index 9103a6f932db..bd74e1a9cdb5 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
@@ -468,7 +468,7 @@ let
         '';
       };
 
-      value = mkOption {
+      values = mkOption {
         type = types.listOf types.str;
         default = [];
         description = ''
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
index 940f28189371..e0c5ceccfcc9 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -3,7 +3,7 @@
 let
   inherit (lib) concatStrings foldl foldl' genAttrs literalExample maintainers
                 mapAttrsToList mkDefault mkEnableOption mkIf mkMerge mkOption
-                optional types;
+                optional types mkOptionDefault flip attrNames;
 
   cfg = config.services.prometheus.exporters;
 
@@ -22,15 +22,20 @@ let
 
   exporterOpts = genAttrs [
     "apcupsd"
+    "artifactory"
     "bind"
     "bird"
+    "bitcoin"
     "blackbox"
     "collectd"
     "dnsmasq"
+    "domain"
     "dovecot"
     "fritzbox"
     "json"
+    "jitsi"
     "keylight"
+    "knot"
     "lnd"
     "mail"
     "mikrotik"
@@ -40,6 +45,7 @@ let
     "nginx"
     "nginxlog"
     "node"
+    "openldap"
     "openvpn"
     "postfix"
     "postgres"
@@ -51,6 +57,7 @@ let
     "smokeping"
     "sql"
     "surfboard"
+    "systemd"
     "tor"
     "unifi"
     "unifi-poller"
@@ -64,7 +71,7 @@ let
   mkExporterOpts = ({ name, port }: {
     enable = mkEnableOption "the prometheus ${name} exporter";
     port = mkOption {
-      type = types.int;
+      type = types.port;
       default = port;
       description = ''
         Port to listen on.
@@ -92,9 +99,8 @@ let
       '';
     };
     firewallFilter = mkOption {
-      type = types.str;
-      default = "-p tcp -m tcp --dport ${toString cfg.${name}.port}";
-      defaultText = "-p tcp -m tcp --dport ${toString port}";
+      type = types.nullOr types.str;
+      default = null;
       example = literalExample ''
         "-i eth0 -p tcp -m tcp --dport ${toString port}"
       '';
@@ -122,12 +128,14 @@ let
 
   mkSubModule = { name, port, extraOpts, imports }: {
     ${name} = mkOption {
-      type = types.submodule {
+      type = types.submodule [{
         inherit imports;
         options = (mkExporterOpts {
           inherit name port;
         } // extraOpts);
-      };
+      } ({ config, ... }: mkIf config.openFirewall {
+        firewallFilter = mkDefault "-p tcp -m tcp --dport ${toString config.port}";
+      })];
       internal = true;
       default = {};
     };
@@ -232,7 +240,13 @@ in
         Please specify either 'services.prometheus.exporters.sql.configuration' or
           'services.prometheus.exporters.sql.configFile'
       '';
-    } ];
+    } ] ++ (flip map (attrNames cfg) (exporter: {
+      assertion = cfg.${exporter}.firewallFilter != null -> cfg.${exporter}.openFirewall;
+      message = ''
+        The `firewallFilter'-option of exporter ${exporter} doesn't have any effect unless
+        `openFirewall' is set to `true'!
+      '';
+    }));
   }] ++ [(mkIf config.services.minio.enable {
     services.prometheus.exporters.minio.minioAddress  = mkDefault "http://localhost:9000";
     services.prometheus.exporters.minio.minioAccessKey = mkDefault config.services.minio.accessKey;
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix
new file mode 100644
index 000000000000..2adcecc728bd
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix
@@ -0,0 +1,59 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.artifactory;
+in
+{
+  port = 9531;
+  extraOpts = {
+    scrapeUri = mkOption {
+      type = types.str;
+      default = "http://localhost:8081/artifactory";
+      description = ''
+        URI on which to scrape JFrog Artifactory.
+      '';
+    };
+
+    artiUsername = mkOption {
+      type = types.str;
+      description = ''
+        Username for authentication against JFrog Artifactory API.
+      '';
+    };
+
+    artiPassword = mkOption {
+      type = types.str;
+      default = "";
+      description = ''
+        Password for authentication against JFrog Artifactory API.
+        One of the password or access token needs to be set.
+      '';
+    };
+
+    artiAccessToken = mkOption {
+      type = types.str;
+      default = "";
+      description = ''
+        Access token for authentication against JFrog Artifactory API.
+        One of the password or access token needs to be set.
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-artifactory-exporter}/bin/artifactory_exporter \
+          --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          --artifactory.scrape-uri ${cfg.scrapeUri} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+      Environment = [
+        "ARTI_USERNAME=${cfg.artiUsername}"
+        "ARTI_PASSWORD=${cfg.artiPassword}"
+        "ARTI_ACCESS_TOKEN=${cfg.artiAccessToken}"
+      ];
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
new file mode 100644
index 000000000000..43721f70b499
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
@@ -0,0 +1,82 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.bitcoin;
+in
+{
+  port = 9332;
+  extraOpts = {
+    rpcUser = mkOption {
+      type = types.str;
+      default = "bitcoinrpc";
+      description = ''
+        RPC user name.
+      '';
+    };
+
+    rpcPasswordFile = mkOption {
+      type = types.path;
+      description = ''
+        File containing RPC password.
+      '';
+    };
+
+    rpcScheme = mkOption {
+      type = types.enum [ "http" "https" ];
+      default = "http";
+      description = ''
+        Whether to connect to bitcoind over http or https.
+      '';
+    };
+
+    rpcHost = mkOption {
+      type = types.str;
+      default = "localhost";
+      description = ''
+        RPC host.
+      '';
+    };
+
+    rpcPort = mkOption {
+      type = types.port;
+      default = 8332;
+      description = ''
+        RPC port number.
+      '';
+    };
+
+    refreshSeconds = mkOption {
+      type = types.ints.unsigned;
+      default = 300;
+      description = ''
+        How often to ask bitcoind for metrics.
+      '';
+    };
+
+    extraEnv = mkOption {
+      type = types.attrsOf types.str;
+      default = {};
+      description = ''
+        Extra environment variables for the exporter.
+      '';
+    };
+  };
+  serviceOpts = {
+    script = ''
+      export BITCOIN_RPC_PASSWORD=$(cat ${cfg.rpcPasswordFile})
+      exec ${pkgs.prometheus-bitcoin-exporter}/bin/bitcoind-monitor.py
+    '';
+
+    environment = {
+      BITCOIN_RPC_USER = cfg.rpcUser;
+      BITCOIN_RPC_SCHEME = cfg.rpcScheme;
+      BITCOIN_RPC_HOST = cfg.rpcHost;
+      BITCOIN_RPC_PORT = toString cfg.rpcPort;
+      METRICS_ADDR = cfg.listenAddress;
+      METRICS_PORT = toString cfg.port;
+      REFRESH_SECONDS = toString cfg.refreshSeconds;
+    } // cfg.extraEnv;
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/domain.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/domain.nix
new file mode 100644
index 000000000000..61e2fc80afde
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/domain.nix
@@ -0,0 +1,19 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.domain;
+in
+{
+  port = 9222;
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-domain-exporter}/bin/domain_exporter \
+          --bind ${cfg.listenAddress}:${toString cfg.port} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
new file mode 100644
index 000000000000..c93a8f98e552
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
@@ -0,0 +1,40 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.jitsi;
+in
+{
+  port = 9700;
+  extraOpts = {
+    url = mkOption {
+      type = types.str;
+      default = "http://localhost:8080/colibri/stats";
+      description = ''
+        Jitsi Videobridge metrics URL to monitor.
+        This is usually /colibri/stats on port 8080 of the jitsi videobridge host.
+      '';
+    };
+    interval = mkOption {
+      type = types.str;
+      default = "30s";
+      example = "1min";
+      description = ''
+        How often to scrape new data
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-jitsi-exporter}/bin/jitsiexporter \
+          -url ${escapeShellArg cfg.url} \
+          -host ${cfg.listenAddress} \
+          -port ${toString cfg.port} \
+          -interval ${toString cfg.interval} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
new file mode 100644
index 000000000000..46c28fe0a578
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
@@ -0,0 +1,50 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.knot;
+in {
+  port = 9433;
+  extraOpts = {
+    knotLibraryPath = mkOption {
+      type = types.str;
+      default = "${pkgs.knot-dns.out}/lib/libknot.so";
+      defaultText = "\${pkgs.knot-dns}/lib/libknot.so";
+      description = ''
+        Path to the library of <package>knot-dns</package>.
+      '';
+    };
+
+    knotSocketPath = mkOption {
+      type = types.str;
+      default = "/run/knot/knot.sock";
+      description = ''
+        Socket path of <citerefentry><refentrytitle>knotd</refentrytitle>
+        <manvolnum>8</manvolnum></citerefentry>.
+      '';
+    };
+
+    knotSocketTimeout = mkOption {
+      type = types.int;
+      default = 2000;
+      description = ''
+        Timeout in seconds.
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-knot-exporter}/bin/knot_exporter \
+          --web-listen-addr ${cfg.listenAddress} \
+          --web-listen-port ${toString cfg.port} \
+          --knot-library-path ${cfg.knotLibraryPath} \
+          --knot-socket-path ${cfg.knotSocketPath} \
+          --knot-socket-timeout ${toString cfg.knotSocketTimeout} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+      SupplementaryGroups = [ "knot" ];
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openldap.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openldap.nix
new file mode 100644
index 000000000000..888611ee6fa1
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openldap.nix
@@ -0,0 +1,67 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.openldap;
+in {
+  port = 9330;
+  extraOpts = {
+    ldapCredentialFile = mkOption {
+      type = types.path;
+      example = "/run/keys/ldap_pass";
+      description = ''
+        Environment file to contain the credentials to authenticate against
+        <package>openldap</package>.
+
+        The file should look like this:
+        <programlisting>
+        ---
+        ldapUser: "cn=monitoring,cn=Monitor"
+        ldapPass: "secret"
+        </programlisting>
+      '';
+    };
+    protocol = mkOption {
+      default = "tcp";
+      example = "udp";
+      type = types.str;
+      description = ''
+        Which protocol to use to connect against <package>openldap</package>.
+      '';
+    };
+    ldapAddr = mkOption {
+      default = "localhost:389";
+      type = types.str;
+      description = ''
+        Address of the <package>openldap</package>-instance.
+      '';
+    };
+    metricsPath = mkOption {
+      default = "/metrics";
+      type = types.str;
+      description = ''
+        URL path where metrics should be exposed.
+      '';
+    };
+    interval = mkOption {
+      default = "30s";
+      type = types.str;
+      example = "1m";
+      description = ''
+        Scrape interval of the exporter.
+      '';
+    };
+  };
+  serviceOpts.serviceConfig = {
+    ExecStart = ''
+      ${pkgs.prometheus-openldap-exporter}/bin/openldap_exporter \
+        --promAddr ${cfg.listenAddress}:${toString cfg.port} \
+        --metrPath ${cfg.metricsPath} \
+        --ldapNet ${cfg.protocol} \
+        --interval ${cfg.interval} \
+        --config ${cfg.ldapCredentialFile} \
+        ${concatStringsSep " \\\n  " cfg.extraFlags}
+    '';
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
index 1ece73a1159a..dd3bec8ec16c 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
@@ -30,12 +30,49 @@ in
         Whether to run the exporter as the local 'postgres' super user.
       '';
     };
+
+    # TODO perhaps LoadCredential would be more appropriate
+    environmentFile = mkOption {
+      type = types.nullOr types.path;
+      default = null;
+      example = "/root/prometheus-postgres-exporter.env";
+      description = ''
+        Environment file as defined in <citerefentry>
+        <refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
+        </citerefentry>.
+
+        Secrets may be passed to the service without adding them to the
+        world-readable Nix store, by specifying placeholder variables as
+        the option value in Nix and setting these variables accordingly in the
+        environment file.
+
+        Environment variables from this file will be interpolated into the
+        config file using envsubst with this syntax:
+        <literal>$ENVIRONMENT ''${VARIABLE}</literal>
+
+        The main use is to set the DATA_SOURCE_NAME that contains the
+        postgres password
+
+        note that contents from this file will override dataSourceName
+        if you have set it from nix.
+
+        <programlisting>
+          # Content of the environment file
+          DATA_SOURCE_NAME=postgresql://username:password@localhost:5432/postgres?sslmode=disable
+        </programlisting>
+
+        Note that this file needs to be available on the host on which
+        this exporter is running.
+      '';
+    };
+
   };
   serviceOpts = {
     environment.DATA_SOURCE_NAME = cfg.dataSourceName;
     serviceConfig = {
       DynamicUser = false;
       User = mkIf cfg.runAsLocalSuperUser (mkForce "postgres");
+      EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
       ExecStart = ''
         ${pkgs.prometheus-postgres-exporter}/bin/postgres_exporter \
           --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix
new file mode 100644
index 000000000000..0514469b8a61
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix
@@ -0,0 +1,18 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let cfg = config.services.prometheus.exporters.systemd;
+
+in {
+  port = 9558;
+
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-systemd-exporter}/bin/systemd_exporter \
+          --web.listen-address ${cfg.listenAddress}:${toString cfg.port}
+      '';
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/scollector.nix b/nixpkgs/nixos/modules/services/monitoring/scollector.nix
index 6f13ce889cba..ef535585e9be 100644
--- a/nixpkgs/nixos/modules/services/monitoring/scollector.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/scollector.nix
@@ -113,7 +113,7 @@ in {
       description = "scollector metrics collector (part of Bosun)";
       wantedBy = [ "multi-user.target" ];
 
-      path = [ pkgs.coreutils pkgs.iproute ];
+      path = [ pkgs.coreutils pkgs.iproute2 ];
 
       serviceConfig = {
         User = cfg.user;
diff --git a/nixpkgs/nixos/modules/services/monitoring/zabbix-agent.nix b/nixpkgs/nixos/modules/services/monitoring/zabbix-agent.nix
index 73eed7aa66af..e7dd9e3393d0 100644
--- a/nixpkgs/nixos/modules/services/monitoring/zabbix-agent.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/zabbix-agent.nix
@@ -128,11 +128,16 @@ in
       {
         LogType = "console";
         Server = cfg.server;
-        ListenIP = cfg.listen.ip;
         ListenPort = cfg.listen.port;
-        LoadModule = builtins.attrNames cfg.modules;
       }
-      (mkIf (cfg.modules != {}) { LoadModulePath = "${moduleEnv}/lib"; })
+      (mkIf (cfg.modules != {}) {
+        LoadModule = builtins.attrNames cfg.modules;
+        LoadModulePath = "${moduleEnv}/lib";
+      })
+
+      # the default value for "ListenIP" is 0.0.0.0 but zabbix agent 2 cannot accept configuration files which
+      # explicitly set "ListenIP" to the default value...
+      (mkIf (cfg.listen.ip != "0.0.0.0") { ListenIP = cfg.listen.ip; })
     ];
 
     networking.firewall = mkIf cfg.openFirewall {
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/ceph.nix b/nixpkgs/nixos/modules/services/network-filesystems/ceph.nix
index 632c3fb1059d..d833062c4737 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/ceph.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/ceph.nix
@@ -316,7 +316,7 @@ in
     client = {
       enable = mkEnableOption "Ceph client configuration";
       extraConfig = mkOption {
-        type = with types; attrsOf str;
+        type = with types; attrsOf (attrsOf str);
         default = {};
         example = ''
           {
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/samba.nix b/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
index d6e2904b3c36..78ea245cb351 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
@@ -156,7 +156,6 @@ in
       securityType = mkOption {
         type = types.str;
         default = "user";
-        example = "share";
         description = "Samba security type";
       };
 
diff --git a/nixpkgs/nixos/modules/services/networking/bird.nix b/nixpkgs/nixos/modules/services/networking/bird.nix
index 4ae35875c0f0..6d7e7760d94e 100644
--- a/nixpkgs/nixos/modules/services/networking/bird.nix
+++ b/nixpkgs/nixos/modules/services/networking/bird.nix
@@ -1,7 +1,7 @@
 { config, lib, pkgs, ... }:
 
 let
-  inherit (lib) mkEnableOption mkIf mkOption types;
+  inherit (lib) mkEnableOption mkIf mkOption optionalString types;
 
   generic = variant:
     let
@@ -26,6 +26,14 @@ let
               <link xlink:href='http://bird.network.cz/'/>
             '';
           };
+          checkConfig = mkOption {
+            type = types.bool;
+            default = true;
+            description = ''
+              Whether the config should be checked at build time.
+              Disabling this might become necessary if the config includes files not present during build time.
+            '';
+          };
         };
       };
 
@@ -36,7 +44,7 @@ let
         environment.etc."bird/${variant}.conf".source = pkgs.writeTextFile {
           name = "${variant}.conf";
           text = cfg.config;
-          checkPhase = ''
+          checkPhase = optionalString cfg.checkConfig ''
             ${pkg}/bin/${birdBin} -d -p -c $out
           '';
         };
@@ -50,7 +58,7 @@ let
             Type = "forking";
             Restart = "on-failure";
             ExecStart = "${pkg}/bin/${birdBin} -c /etc/bird/${variant}.conf -u ${variant} -g ${variant}";
-            ExecReload = "${pkg}/bin/${birdc} configure";
+            ExecReload = "/bin/sh -c '${pkg}/bin/${birdBin} -c /etc/bird/${variant}.conf -p && ${pkg}/bin/${birdc} configure'";
             ExecStop = "${pkg}/bin/${birdc} down";
             CapabilityBoundingSet = [ "CAP_CHOWN" "CAP_FOWNER" "CAP_DAC_OVERRIDE" "CAP_SETUID" "CAP_SETGID"
                                       # see bird/sysdep/linux/syspriv.h
diff --git a/nixpkgs/nixos/modules/services/networking/cjdns.nix b/nixpkgs/nixos/modules/services/networking/cjdns.nix
index f116d6392ea7..e9a0e5af1a47 100644
--- a/nixpkgs/nixos/modules/services/networking/cjdns.nix
+++ b/nixpkgs/nixos/modules/services/networking/cjdns.nix
@@ -245,7 +245,7 @@ in
         fi
 
         if [ -z "$CJDNS_ADMIN_PASSWORD" ]; then
-            echo "CJDNS_ADMIN_PASSWORD=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 96)" \
+            echo "CJDNS_ADMIN_PASSWORD=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" \
                 >> /etc/cjdns.keys
         fi
       '';
diff --git a/nixpkgs/nixos/modules/services/networking/consul.nix b/nixpkgs/nixos/modules/services/networking/consul.nix
index bfaea4e167c2..ae7998913ee0 100644
--- a/nixpkgs/nixos/modules/services/networking/consul.nix
+++ b/nixpkgs/nixos/modules/services/networking/consul.nix
@@ -191,7 +191,7 @@ in
           ExecStop = "${cfg.package}/bin/consul leave";
         });
 
-        path = with pkgs; [ iproute gnugrep gawk consul ];
+        path = with pkgs; [ iproute2 gnugrep gawk consul ];
         preStart = ''
           mkdir -m 0700 -p ${dataDir}
           chown -R consul ${dataDir}
diff --git a/nixpkgs/nixos/modules/services/networking/croc.nix b/nixpkgs/nixos/modules/services/networking/croc.nix
new file mode 100644
index 000000000000..b218fab2196d
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/croc.nix
@@ -0,0 +1,88 @@
+{ config, lib, pkgs, ... }:
+let
+  inherit (lib) types;
+  cfg = config.services.croc;
+  rootDir = "/run/croc";
+in
+{
+  options.services.croc = {
+    enable = lib.mkEnableOption "croc relay";
+    ports = lib.mkOption {
+      type = with types; listOf port;
+      default = [9009 9010 9011 9012 9013];
+      description = "Ports of the relay.";
+    };
+    pass = lib.mkOption {
+      type = with types; either path str;
+      default = "pass123";
+      description = "Password or passwordfile for the relay.";
+    };
+    openFirewall = lib.mkEnableOption "opening of the peer port(s) in the firewall";
+    debug = lib.mkEnableOption "debug logs";
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.services.croc = {
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        ExecStart = "${pkgs.croc}/bin/croc --pass '${cfg.pass}' ${lib.optionalString cfg.debug "--debug"} relay --ports ${lib.concatMapStringsSep "," toString cfg.ports}";
+        # The following options are only for optimizing:
+        # systemd-analyze security croc
+        AmbientCapabilities = "";
+        CapabilityBoundingSet = "";
+        DynamicUser = true;
+        # ProtectClock= adds DeviceAllow=char-rtc r
+        DeviceAllow = "";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        MountAPIVFS = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateNetwork = lib.mkDefault false;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "noaccess";
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        RootDirectory = rootDir;
+        # Avoid mounting rootDir in the own rootDir of ExecStart='s mount namespace.
+        InaccessiblePaths = [ "-+${rootDir}" ];
+        BindReadOnlyPaths = [
+          builtins.storeDir
+        ] ++ lib.optional (types.path.check cfg.pass) cfg.pass;
+        # This is for BindReadOnlyPaths=
+        # to allow traversal of directories they create in RootDirectory=.
+        UMask = "0066";
+        # Create rootDir in the host's mount namespace.
+        RuntimeDirectory = [(baseNameOf rootDir)];
+        RuntimeDirectoryMode = "700";
+        SystemCallFilter = [
+          "@system-service"
+          "~@aio" "~@chown" "~@keyring" "~@memlock"
+          "~@privileged" "~@resources" "~@setuid"
+          "~@sync" "~@timer"
+        ];
+        SystemCallArchitectures = "native";
+        SystemCallErrorNumber = "EPERM";
+      };
+    };
+
+    networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall cfg.ports;
+  };
+
+  meta.maintainers = with lib.maintainers; [ hax404 julm ];
+}
diff --git a/nixpkgs/nixos/modules/services/networking/dhcpcd.nix b/nixpkgs/nixos/modules/services/networking/dhcpcd.nix
index d10bffd91474..31e4b6ad2988 100644
--- a/nixpkgs/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixpkgs/nixos/modules/services/networking/dhcpcd.nix
@@ -191,9 +191,8 @@ in
       { description = "DHCP Client";
 
         wantedBy = [ "multi-user.target" ] ++ optional (!hasDefaultGatewaySet) "network-online.target";
-        wants = [ "network.target" "systemd-udev-settle.service" ];
+        wants = [ "network.target" ];
         before = [ "network-online.target" ];
-        after = [ "systemd-udev-settle.service" ];
 
         restartTriggers = [ exitHook ];
 
diff --git a/nixpkgs/nixos/modules/services/networking/dnscrypt-proxy2.nix b/nixpkgs/nixos/modules/services/networking/dnscrypt-proxy2.nix
index afc2a6d1c757..72965c267a86 100644
--- a/nixpkgs/nixos/modules/services/networking/dnscrypt-proxy2.nix
+++ b/nixpkgs/nixos/modules/services/networking/dnscrypt-proxy2.nix
@@ -113,7 +113,6 @@ in
           "~@memlock"
           "~@resources"
           "~@setuid"
-          "~@sync"
           "~@timer"
         ];
       };
diff --git a/nixpkgs/nixos/modules/services/networking/flannel.nix b/nixpkgs/nixos/modules/services/networking/flannel.nix
index 4c040112d28d..32a7eb3ed69e 100644
--- a/nixpkgs/nixos/modules/services/networking/flannel.nix
+++ b/nixpkgs/nixos/modules/services/networking/flannel.nix
@@ -162,10 +162,7 @@ in {
         NODE_NAME = cfg.nodeName;
       };
       path = [ pkgs.iptables ];
-      preStart = ''
-        mkdir -p /run/flannel
-        touch /run/flannel/docker
-      '' + optionalString (cfg.storageBackend == "etcd") ''
+      preStart = optionalString (cfg.storageBackend == "etcd") ''
         echo "setting network configuration"
         until ${pkgs.etcdctl}/bin/etcdctl set /coreos.com/network/config '${builtins.toJSON networkConfig}'
         do
@@ -177,6 +174,7 @@ in {
         ExecStart = "${cfg.package}/bin/flannel";
         Restart = "always";
         RestartSec = "10s";
+        RuntimeDirectory = "flannel";
       };
     };
 
diff --git a/nixpkgs/nixos/modules/services/networking/gvpe.nix b/nixpkgs/nixos/modules/services/networking/gvpe.nix
index b851facf1e32..4fad37ba15ee 100644
--- a/nixpkgs/nixos/modules/services/networking/gvpe.nix
+++ b/nixpkgs/nixos/modules/services/networking/gvpe.nix
@@ -27,7 +27,7 @@ let
     text = ''
       #! /bin/sh
 
-      export PATH=$PATH:${pkgs.iproute}/sbin
+      export PATH=$PATH:${pkgs.iproute2}/sbin
 
       ip link set $IFNAME up
       ip address add ${cfg.ipAddress} dev $IFNAME
diff --git a/nixpkgs/nixos/modules/services/networking/inspircd.nix b/nixpkgs/nixos/modules/services/networking/inspircd.nix
new file mode 100644
index 000000000000..8cb2b406ee28
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/inspircd.nix
@@ -0,0 +1,62 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.inspircd;
+
+  configFile = pkgs.writeText "inspircd.conf" cfg.config;
+
+in {
+  meta = {
+    maintainers = [ lib.maintainers.sternenseemann ];
+  };
+
+  options = {
+    services.inspircd = {
+      enable = lib.mkEnableOption "InspIRCd";
+
+      package = lib.mkOption {
+        type = lib.types.package;
+        default = pkgs.inspircd;
+        defaultText = lib.literalExample "pkgs.inspircd";
+        example = lib.literalExample "pkgs.inspircdMinimal";
+        description = ''
+          The InspIRCd package to use. This is mainly useful
+          to specify an overridden version of the
+          <literal>pkgs.inspircd</literal> dervivation, for
+          example if you want to use a more minimal InspIRCd
+          distribution with less modules enabled or with
+          modules enabled which can't be distributed in binary
+          form due to licensing issues.
+        '';
+      };
+
+      config = lib.mkOption {
+        type = lib.types.lines;
+        description = ''
+          Verbatim <literal>inspircd.conf</literal> file.
+          For a list of options, consult the
+          <link xlink:href="https://docs.inspircd.org/3/configuration/">InspIRCd documentation</link>, the
+          <link xlink:href="https://docs.inspircd.org/3/modules/">Module documentation</link>
+          and the example configuration files distributed
+          with <literal>pkgs.inspircd.doc</literal>
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.services.inspircd = {
+      description = "InspIRCd - the stable, high-performance and modular Internet Relay Chat Daemon";
+      wantedBy = [ "multi-user.target" ];
+      requires = [ "network.target" ];
+
+      serviceConfig = {
+        Type = "simple";
+        ExecStart = ''
+          ${lib.getBin cfg.package}/bin/inspircd start --config ${configFile} --nofork --nopid
+        '';
+        DynamicUser = true;
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/networking/ircd-hybrid/default.nix b/nixpkgs/nixos/modules/services/networking/ircd-hybrid/default.nix
index 0781159b6ee7..1f5636e4e3a9 100644
--- a/nixpkgs/nixos/modules/services/networking/ircd-hybrid/default.nix
+++ b/nixpkgs/nixos/modules/services/networking/ircd-hybrid/default.nix
@@ -10,7 +10,7 @@ let
     name = "ircd-hybrid-service";
     scripts = [ "=>/bin" ./control.in ];
     substFiles = [ "=>/conf" ./ircd.conf ];
-    inherit (pkgs) ircdHybrid coreutils su iproute gnugrep procps;
+    inherit (pkgs) ircdHybrid coreutils su iproute2 gnugrep procps;
 
     ipv6Enabled = boolToString config.networking.enableIPv6;
 
diff --git a/nixpkgs/nixos/modules/services/networking/kresd.nix b/nixpkgs/nixos/modules/services/networking/kresd.nix
index 4131ff8be5d0..3f9be6172f1b 100644
--- a/nixpkgs/nixos/modules/services/networking/kresd.nix
+++ b/nixpkgs/nixos/modules/services/networking/kresd.nix
@@ -8,14 +8,14 @@ let
   # Convert systemd-style address specification to kresd config line(s).
   # On Nix level we don't attempt to precisely validate the address specifications.
   mkListen = kind: addr: let
-    al_v4 = builtins.match "([0-9.]\+):([0-9]\+)" addr;
-    al_v6 = builtins.match "\\[(.\+)]:([0-9]\+)" addr;
-    al_portOnly = builtins.match "()([0-9]\+)" addr;
+    al_v4 = builtins.match "([0-9.]+):([0-9]+)" addr;
+    al_v6 = builtins.match "\\[(.+)]:([0-9]+)" addr;
+    al_portOnly = builtins.match "([0-9]+)" addr;
     al = findFirst (a: a != null)
       (throw "services.kresd.*: incorrect address specification '${addr}'")
       [ al_v4 al_v6 al_portOnly ];
     port = last al;
-    addrSpec = if al_portOnly == null then "'${head al}'" else "{'::', '127.0.0.1'}";
+    addrSpec = if al_portOnly == null then "'${head al}'" else "{'::', '0.0.0.0'}";
     in # freebind is set for compatibility with earlier kresd services;
        # it could be configurable, for example.
       ''
@@ -137,10 +137,5 @@ in {
     };
     # We don't mind running stop phase from wrong version.  It seems less racy.
     systemd.services."kresd@".stopIfChanged = false;
-
-    # Try cleaning up the previously default location of cache file.
-    # Note that /var/cache/* should always be safe to remove.
-    # TODO: remove later, probably between 20.09 and 21.05
-    systemd.tmpfiles.rules = [ "R /var/cache/kresd" ];
   };
 }
diff --git a/nixpkgs/nixos/modules/services/networking/libreswan.nix b/nixpkgs/nixos/modules/services/networking/libreswan.nix
index 280158b89f61..81bc4e1cf95c 100644
--- a/nixpkgs/nixos/modules/services/networking/libreswan.nix
+++ b/nixpkgs/nixos/modules/services/networking/libreswan.nix
@@ -85,13 +85,13 @@ in
 
   config = mkIf cfg.enable {
 
-    environment.systemPackages = [ pkgs.libreswan pkgs.iproute ];
+    environment.systemPackages = [ pkgs.libreswan pkgs.iproute2 ];
 
     systemd.services.ipsec = {
       description = "Internet Key Exchange (IKE) Protocol Daemon for IPsec";
       path = [
         "${pkgs.libreswan}"
-        "${pkgs.iproute}"
+        "${pkgs.iproute2}"
         "${pkgs.procps}"
         "${pkgs.nssTools}"
         "${pkgs.iptables}"
@@ -115,8 +115,8 @@ in
         ExecStart = "${libexec}/pluto --config ${configFile} --nofork \$PLUTO_OPTIONS";
         ExecStop = "${libexec}/whack --shutdown";
         ExecStopPost = [
-          "${pkgs.iproute}/bin/ip xfrm policy flush"
-          "${pkgs.iproute}/bin/ip xfrm state flush"
+          "${pkgs.iproute2}/bin/ip xfrm policy flush"
+          "${pkgs.iproute2}/bin/ip xfrm state flush"
           "${ipsec} --stopnflog"
         ];
         ExecReload = "${libexec}/whack --listen";
diff --git a/nixpkgs/nixos/modules/services/networking/mullvad-vpn.nix b/nixpkgs/nixos/modules/services/networking/mullvad-vpn.nix
index 6f595ca4be2b..8ce71f26b3ee 100644
--- a/nixpkgs/nixos/modules/services/networking/mullvad-vpn.nix
+++ b/nixpkgs/nixos/modules/services/networking/mullvad-vpn.nix
@@ -28,7 +28,7 @@ with lib;
         "systemd-resolved.service"
       ];
       path = [
-        pkgs.iproute
+        pkgs.iproute2
         # Needed for ping
         "/run/wrappers"
       ];
diff --git a/nixpkgs/nixos/modules/services/networking/networkmanager.nix b/nixpkgs/nixos/modules/services/networking/networkmanager.nix
index 2e680544ec24..119bd09e2fdb 100644
--- a/nixpkgs/nixos/modules/services/networking/networkmanager.nix
+++ b/nixpkgs/nixos/modules/services/networking/networkmanager.nix
@@ -465,7 +465,7 @@ in {
       restartTriggers = [ configFile overrideNameserversScript ];
 
       # useful binaries for user-specified hooks
-      path = [ pkgs.iproute pkgs.util-linux pkgs.coreutils ];
+      path = [ pkgs.iproute2 pkgs.util-linux pkgs.coreutils ];
       aliases = [ "dbus-org.freedesktop.nm-dispatcher.service" ];
     };
 
diff --git a/nixpkgs/nixos/modules/services/networking/nomad.nix b/nixpkgs/nixos/modules/services/networking/nomad.nix
index 9f1b443b89bc..48689f1195c5 100644
--- a/nixpkgs/nixos/modules/services/networking/nomad.nix
+++ b/nixpkgs/nixos/modules/services/networking/nomad.nix
@@ -119,7 +119,7 @@ in
       path = cfg.extraPackages ++ (with pkgs; [
         # Client mode requires at least the following:
         coreutils
-        iproute
+        iproute2
         iptables
       ]);
 
diff --git a/nixpkgs/nixos/modules/services/networking/openvpn.nix b/nixpkgs/nixos/modules/services/networking/openvpn.nix
index 650f9c84ac72..b4c2c944b6e6 100644
--- a/nixpkgs/nixos/modules/services/networking/openvpn.nix
+++ b/nixpkgs/nixos/modules/services/networking/openvpn.nix
@@ -63,7 +63,7 @@ let
       wantedBy = optional cfg.autoStart "multi-user.target";
       after = [ "network.target" ];
 
-      path = [ pkgs.iptables pkgs.iproute pkgs.nettools ];
+      path = [ pkgs.iptables pkgs.iproute2 pkgs.nettools ];
 
       serviceConfig.ExecStart = "@${openvpn}/sbin/openvpn openvpn --suppress-timestamps --config ${configFile}";
       serviceConfig.Restart = "always";
diff --git a/nixpkgs/nixos/modules/services/networking/privoxy.nix b/nixpkgs/nixos/modules/services/networking/privoxy.nix
index 7caae3282032..7c22b7d09b9b 100644
--- a/nixpkgs/nixos/modules/services/networking/privoxy.nix
+++ b/nixpkgs/nixos/modules/services/networking/privoxy.nix
@@ -4,26 +4,46 @@ with lib;
 
 let
 
-  inherit (pkgs) privoxy;
-
   cfg = config.services.privoxy;
 
-  confFile = pkgs.writeText "privoxy.conf" (''
-    user-manual ${privoxy}/share/doc/privoxy/user-manual
-    confdir ${privoxy}/etc/
-    listen-address  ${cfg.listenAddress}
-    enable-edit-actions ${if (cfg.enableEditActions == true) then "1" else "0"}
-    ${concatMapStrings (f: "actionsfile ${f}\n") cfg.actionsFiles}
-    ${concatMapStrings (f: "filterfile ${f}\n") cfg.filterFiles}
-  '' + optionalString cfg.enableTor ''
-    forward-socks5t / 127.0.0.1:9063 .
-    toggle 1
-    enable-remote-toggle 0
-    enable-edit-actions 0
-    enable-remote-http-toggle 0
-  '' + ''
-    ${cfg.extraConfig}
-  '');
+  serialise = name: val:
+         if isList val then concatMapStrings (serialise name) val
+    else if isBool val then serialise name (if val then "1" else "0")
+    else "${name} ${toString val}\n";
+
+  configType = with types;
+    let atom = oneOf [ int bool string path ];
+    in attrsOf (either atom (listOf atom))
+    // { description = ''
+          privoxy configuration type. The format consists of an attribute
+          set of settings. Each setting can be either a value (integer, string,
+          boolean or path) or a list of such values.
+        '';
+       };
+
+  ageType = types.str // {
+    check = x:
+      isString x &&
+      (builtins.match "([0-9]+([smhdw]|min|ms|us)*)+" x != null);
+    description = "tmpfiles.d(5) age format";
+  };
+
+  configFile = pkgs.writeText "privoxy.conf"
+    (concatStrings (
+      # Relative paths in some options are relative to confdir. Privoxy seems
+      # to parse the options in order of appearance, so this must come first.
+      # Nix however doesn't preserve the order in attrsets, so we have to
+      # hardcode confdir here.
+      [ "confdir ${pkgs.privoxy}/etc\n" ]
+      ++ mapAttrsToList serialise cfg.settings
+    ));
+
+  inspectAction = pkgs.writeText "inspect-all-https.action"
+    ''
+      # Enable HTTPS inspection for all requests
+      {+https-inspection}
+      /
+    '';
 
 in
 
@@ -31,70 +51,144 @@ in
 
   ###### interface
 
-  options = {
+  options.services.privoxy = {
 
-    services.privoxy = {
+    enable = mkEnableOption "Privoxy, non-caching filtering proxy";
 
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether to enable the Privoxy non-caching filtering proxy.
-        '';
-      };
+    enableTor = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to configure Privoxy to use Tor's faster SOCKS port,
+        suitable for HTTP.
+      '';
+    };
 
-      listenAddress = mkOption {
-        type = types.str;
-        default = "127.0.0.1:8118";
-        description = ''
-          Address the proxy server is listening to.
-        '';
-      };
+    inspectHttps = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to configure Privoxy to inspect HTTPS requests, meaning all
+        encrypted traffic will be filtered as well. This works by decrypting
+        and re-encrypting the requests using a per-domain generated certificate.
 
-      actionsFiles = mkOption {
-        type = types.listOf types.str;
-        example = [ "match-all.action" "default.action" "/etc/privoxy/user.action" ];
-        default = [ "match-all.action" "default.action" ];
-        description = ''
-          List of paths to Privoxy action files.
-          These paths may either be absolute or relative to the privoxy configuration directory.
-        '';
-      };
+        To issue per-domain certificates, Privoxy must be provided with a CA
+        certificate, using the <literal>ca-cert-file</literal>,
+        <literal>ca-key-file</literal> settings.
 
-      filterFiles = mkOption {
-        type = types.listOf types.str;
-        example = [ "default.filter" "/etc/privoxy/user.filter" ];
-        default = [ "default.filter" ];
-        description = ''
-          List of paths to Privoxy filter files.
-          These paths may either be absolute or relative to the privoxy configuration directory.
-        '';
-      };
+        <warning><para>
+          The CA certificate must also be added to the system trust roots,
+          otherwise browsers will reject all Privoxy certificates as invalid.
+          You can do so by using the option
+          <option>security.pki.certificateFiles</option>.
+        </para></warning>
+      '';
+    };
 
-      enableEditActions = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether or not the web-based actions file editor may be used.
-        '';
-      };
+    certsLifetime = mkOption {
+      type = ageType;
+      default = "10d";
+      example = "12h";
+      description = ''
+        If <literal>inspectHttps</literal> is enabled, the time generated HTTPS
+        certificates will be stored in a temporary directory for reuse. Once
+        the lifetime has expired the directory will cleared and the certificate
+        will have to be generated again, on-demand.
 
-      enableTor = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether to configure Privoxy to use Tor's faster SOCKS port,
-          suitable for HTTP.
-        '';
-      };
+        Depending on the traffic, you may want to reduce the lifetime to limit
+        the disk usage, since Privoxy itself never deletes the certificates.
 
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "" ;
-        description = ''
-          Extra configuration. Contents will be added verbatim to the configuration file.
-        '';
+        <note><para>The format is that of the <literal>tmpfiles.d(5)</literal>
+        Age parameter.</para></note>
+      '';
+    };
+
+    userActions = mkOption {
+      type = types.lines;
+      default = "";
+      description = ''
+        Actions to be included in a <literal>user.action</literal> file. This
+        will have a higher priority and can be used to override all other
+        actions.
+      '';
+    };
+
+    userFilters = mkOption {
+      type = types.lines;
+      default = "";
+      description = ''
+        Filters to be included in a <literal>user.filter</literal> file. This
+        will have a higher priority and can be used to override all other
+        filters definitions.
+      '';
+    };
+
+    settings = mkOption {
+      type = types.submodule {
+        freeformType = configType;
+
+        options.listen-address = mkOption {
+          type = types.str;
+          default = "127.0.0.1:8118";
+          description = "Pair of address:port the proxy server is listening to.";
+        };
+
+        options.enable-edit-actions = mkOption {
+          type = types.bool;
+          default = false;
+          description = "Whether the web-based actions file editor may be used.";
+        };
+
+        options.actionsfile = mkOption {
+          type = types.listOf types.str;
+          # This must come after all other entries, in order to override the
+          # other actions/filters installed by Privoxy or the user.
+          apply = x: x ++ optional (cfg.userActions != "")
+            (toString (pkgs.writeText "user.actions" cfg.userActions));
+          default = [ "match-all.action" "default.action" ];
+          description = ''
+            List of paths to Privoxy action files. These paths may either be
+            absolute or relative to the privoxy configuration directory.
+          '';
+        };
+
+        options.filterfile = mkOption {
+          type = types.listOf types.str;
+          default = [ "default.filter" ];
+          apply = x: x ++ optional (cfg.userFilters != "")
+            (toString (pkgs.writeText "user.filter" cfg.userFilters));
+          description = ''
+            List of paths to Privoxy filter files. These paths may either be
+            absolute or relative to the privoxy configuration directory.
+          '';
+        };
       };
+      default = {};
+      example = literalExample ''
+        { # Listen on IPv6 only
+          listen-address = "[::]:8118";
+
+          # Forward .onion requests to Tor
+          forward-socks5 = ".onion localhost:9050 .";
+
+          # Log redirects and filters
+          debug = [ 128 64 ];
+          # This is equivalent to writing these lines
+          # in the Privoxy configuration file:
+          # debug 128
+          # debug 64
+        }
+      '';
+      description = ''
+        This option is mapped to the main Privoxy configuration file.
+        Check out the Privoxy user manual at
+        <link xlink:href="https://www.privoxy.org/user-manual/config.html"/>
+        for available settings and documentation.
+
+        <note><para>
+          Repeated settings can be represented by using a list.
+        </para></note>
+      '';
     };
 
   };
@@ -104,23 +198,33 @@ in
   config = mkIf cfg.enable {
 
     users.users.privoxy = {
+      description = "Privoxy daemon user";
       isSystemUser = true;
-      home = "/var/empty";
       group = "privoxy";
     };
 
     users.groups.privoxy = {};
 
+    systemd.tmpfiles.rules = optional cfg.inspectHttps
+      "d ${cfg.settings.certificate-directory} 0770 privoxy privoxy ${cfg.certsLifetime}";
+
     systemd.services.privoxy = {
       description = "Filtering web proxy";
       after = [ "network.target" "nss-lookup.target" ];
       wantedBy = [ "multi-user.target" ];
-      serviceConfig.ExecStart = "${privoxy}/bin/privoxy --no-daemon --user privoxy ${confFile}";
-
-      serviceConfig.PrivateDevices = true;
-      serviceConfig.PrivateTmp = true;
-      serviceConfig.ProtectHome = true;
-      serviceConfig.ProtectSystem = "full";
+      serviceConfig = {
+        User = "privoxy";
+        Group = "privoxy";
+        ExecStart = "${pkgs.privoxy}/bin/privoxy --no-daemon ${configFile}";
+        PrivateDevices = true;
+        PrivateTmp = true;
+        ProtectHome = true;
+        ProtectSystem = "full";
+      };
+      unitConfig =  mkIf cfg.inspectHttps {
+        ConditionPathExists = with cfg.settings;
+          [ ca-cert-file ca-key-file ];
+      };
     };
 
     services.tor.settings.SOCKSPort = mkIf cfg.enableTor [
@@ -128,8 +232,48 @@ in
       { addr = "127.0.0.1"; port = 9063; IsolateDestAddr = false; }
     ];
 
+    services.privoxy.settings = {
+      user-manual = "${pkgs.privoxy}/share/doc/privoxy/user-manual";
+      # This is needed for external filters
+      temporary-directory = "/tmp";
+      filterfile = [ "default.filter" ];
+      actionsfile =
+        [ "match-all.action"
+          "default.action"
+        ] ++ optional cfg.inspectHttps (toString inspectAction);
+    } // (optionalAttrs cfg.enableTor {
+      forward-socks5 = "127.0.0.1:9063 .";
+      toggle = true;
+      enable-remote-toggle = false;
+      enable-edit-actions = false;
+      enable-remote-http-toggle = false;
+    }) // (optionalAttrs cfg.inspectHttps {
+      # This allows setting absolute key/crt paths
+      ca-directory = "/var/empty";
+      certificate-directory = "/run/privoxy/certs";
+      trusted-cas-file = "/etc/ssl/certs/ca-certificates.crt";
+    });
+
   };
 
+  imports =
+    let
+      top = x: [ "services" "privoxy" x ];
+      setting = x: [ "services" "privoxy" "settings" x ];
+    in
+    [ (mkRenamedOptionModule (top "enableEditActions") (setting "enable-edit-actions"))
+      (mkRenamedOptionModule (top "listenAddress") (setting "listen-address"))
+      (mkRenamedOptionModule (top "actionsFiles") (setting "actionsfile"))
+      (mkRenamedOptionModule (top "filterFiles") (setting "filterfile"))
+      (mkRemovedOptionModule (top "extraConfig")
+      ''
+        Use services.privoxy.settings instead.
+        This is part of the general move to use structured settings instead of raw
+        text for config as introduced by RFC0042:
+        https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
+      '')
+    ];
+
   meta.maintainers = with lib.maintainers; [ rnhmjoj ];
 
 }
diff --git a/nixpkgs/nixos/modules/services/networking/quagga.nix b/nixpkgs/nixos/modules/services/networking/quagga.nix
index 5acdd5af8f8f..7c169fe62d8d 100644
--- a/nixpkgs/nixos/modules/services/networking/quagga.nix
+++ b/nixpkgs/nixos/modules/services/networking/quagga.nix
@@ -164,7 +164,7 @@ in
                   preStart = ''
                     install -m 0755 -o quagga -g quagga -d /run/quagga
 
-                    ${pkgs.iproute}/bin/ip route flush proto zebra
+                    ${pkgs.iproute2}/bin/ip route flush proto zebra
                   '';
                 }
               else
diff --git a/nixpkgs/nixos/modules/services/networking/rxe.nix b/nixpkgs/nixos/modules/services/networking/rxe.nix
index c7d174a00de2..868e2c81ccbd 100644
--- a/nixpkgs/nixos/modules/services/networking/rxe.nix
+++ b/nixpkgs/nixos/modules/services/networking/rxe.nix
@@ -39,11 +39,11 @@ in {
         Type = "oneshot";
         RemainAfterExit = true;
         ExecStart = map ( x:
-          "${pkgs.iproute}/bin/rdma link add rxe_${x} type rxe netdev ${x}"
+          "${pkgs.iproute2}/bin/rdma link add rxe_${x} type rxe netdev ${x}"
           ) cfg.interfaces;
 
         ExecStop = map ( x:
-          "${pkgs.iproute}/bin/rdma link delete rxe_${x}"
+          "${pkgs.iproute2}/bin/rdma link delete rxe_${x}"
           ) cfg.interfaces;
       };
     };
diff --git a/nixpkgs/nixos/modules/services/networking/sslh.nix b/nixpkgs/nixos/modules/services/networking/sslh.nix
index 4c2740d20192..abe96f60f811 100644
--- a/nixpkgs/nixos/modules/services/networking/sslh.nix
+++ b/nixpkgs/nixos/modules/services/networking/sslh.nix
@@ -132,7 +132,7 @@ in
           { table = "mangle"; command = "OUTPUT ! -o lo -p tcp -m connmark --mark 0x02/0x0f -j CONNMARK --restore-mark --mask 0x0f"; }
         ];
       in {
-        path = [ pkgs.iptables pkgs.iproute pkgs.procps ];
+        path = [ pkgs.iptables pkgs.iproute2 pkgs.procps ];
 
         preStart = ''
           # Cleanup old iptables entries which might be still there
diff --git a/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/module.nix b/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/module.nix
index f67eedac2961..6e619f22546f 100644
--- a/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/module.nix
+++ b/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/module.nix
@@ -63,7 +63,7 @@ in  {
       description = "strongSwan IPsec IKEv1/IKEv2 daemon using swanctl";
       wantedBy = [ "multi-user.target" ];
       after    = [ "network-online.target" ];
-      path     = with pkgs; [ kmod iproute iptables util-linux ];
+      path     = with pkgs; [ kmod iproute2 iptables util-linux ];
       environment = {
         STRONGSWAN_CONF = pkgs.writeTextFile {
           name = "strongswan.conf";
diff --git a/nixpkgs/nixos/modules/services/networking/strongswan.nix b/nixpkgs/nixos/modules/services/networking/strongswan.nix
index f6170b813654..401f7be40288 100644
--- a/nixpkgs/nixos/modules/services/networking/strongswan.nix
+++ b/nixpkgs/nixos/modules/services/networking/strongswan.nix
@@ -152,7 +152,7 @@ in
     systemd.services.strongswan = {
       description = "strongSwan IPSec Service";
       wantedBy = [ "multi-user.target" ];
-      path = with pkgs; [ kmod iproute iptables util-linux ]; # XXX Linux
+      path = with pkgs; [ kmod iproute2 iptables util-linux ]; # XXX Linux
       after = [ "network-online.target" ];
       environment = {
         STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secretsFile managePlugins enabledPlugins; };
diff --git a/nixpkgs/nixos/modules/services/networking/tailscale.nix b/nixpkgs/nixos/modules/services/networking/tailscale.nix
index 1a1474595beb..9a28a266a928 100644
--- a/nixpkgs/nixos/modules/services/networking/tailscale.nix
+++ b/nixpkgs/nixos/modules/services/networking/tailscale.nix
@@ -28,6 +28,7 @@ in {
     systemd.packages = [ cfg.package ];
     systemd.services.tailscaled = {
       wantedBy = [ "multi-user.target" ];
+      path = [ pkgs.openresolv ];
       serviceConfig.Environment = "PORT=${toString cfg.port}";
     };
   };
diff --git a/nixpkgs/nixos/modules/services/networking/wg-quick.nix b/nixpkgs/nixos/modules/services/networking/wg-quick.nix
index 02fe40a22a10..3b76de58548f 100644
--- a/nixpkgs/nixos/modules/services/networking/wg-quick.nix
+++ b/nixpkgs/nixos/modules/services/networking/wg-quick.nix
@@ -57,7 +57,7 @@ let
 
       preUp = mkOption {
         example = literalExample ''
-          ${pkgs.iproute}/bin/ip netns add foo
+          ${pkgs.iproute2}/bin/ip netns add foo
         '';
         default = "";
         type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
@@ -68,7 +68,7 @@ let
 
       preDown = mkOption {
         example = literalExample ''
-          ${pkgs.iproute}/bin/ip netns del foo
+          ${pkgs.iproute2}/bin/ip netns del foo
         '';
         default = "";
         type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
@@ -79,7 +79,7 @@ let
 
       postUp = mkOption {
         example = literalExample ''
-          ${pkgs.iproute}/bin/ip netns add foo
+          ${pkgs.iproute2}/bin/ip netns add foo
         '';
         default = "";
         type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
@@ -90,7 +90,7 @@ let
 
       postDown = mkOption {
         example = literalExample ''
-          ${pkgs.iproute}/bin/ip netns del foo
+          ${pkgs.iproute2}/bin/ip netns del foo
         '';
         default = "";
         type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
diff --git a/nixpkgs/nixos/modules/services/networking/wireguard.nix b/nixpkgs/nixos/modules/services/networking/wireguard.nix
index e07020349cf4..34c869345357 100644
--- a/nixpkgs/nixos/modules/services/networking/wireguard.nix
+++ b/nixpkgs/nixos/modules/services/networking/wireguard.nix
@@ -63,7 +63,7 @@ let
 
       preSetup = mkOption {
         example = literalExample ''
-          ${pkgs.iproute}/bin/ip netns add foo
+          ${pkgs.iproute2}/bin/ip netns add foo
         '';
         default = "";
         type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
@@ -238,7 +238,7 @@ let
         wantedBy = [ "wireguard-${name}.service" ];
         requiredBy = [ "wireguard-${name}.service" ];
         before = [ "wireguard-${name}.service" ];
-        path = with pkgs; [ wireguard ];
+        path = with pkgs; [ wireguard-tools ];
 
         serviceConfig = {
           Type = "oneshot";
@@ -278,7 +278,7 @@ let
         wantedBy = [ "multi-user.target" "wireguard-${interfaceName}.service" ];
         environment.DEVICE = interfaceName;
         environment.WG_ENDPOINT_RESOLUTION_RETRIES = "infinity";
-        path = with pkgs; [ iproute wireguard-tools ];
+        path = with pkgs; [ iproute2 wireguard-tools ];
 
         serviceConfig = {
           Type = "oneshot";
@@ -333,7 +333,7 @@ let
         after = [ "network.target" "network-online.target" ];
         wantedBy = [ "multi-user.target" ];
         environment.DEVICE = name;
-        path = with pkgs; [ kmod iproute wireguard-tools ];
+        path = with pkgs; [ kmod iproute2 wireguard-tools ];
 
         serviceConfig = {
           Type = "oneshot";
diff --git a/nixpkgs/nixos/modules/services/networking/zerobin.nix b/nixpkgs/nixos/modules/services/networking/zerobin.nix
index 78de246a816f..16db25d62304 100644
--- a/nixpkgs/nixos/modules/services/networking/zerobin.nix
+++ b/nixpkgs/nixos/modules/services/networking/zerobin.nix
@@ -88,7 +88,7 @@ in
         enable = true;
         after = [ "network.target" ];
         wantedBy = [ "multi-user.target" ];
-        serviceConfig.ExecStart = "${pkgs.pythonPackages.zerobin}/bin/zerobin ${cfg.listenAddress} ${toString cfg.listenPort} false ${cfg.user} ${cfg.group} ${zerobin_config}";
+        serviceConfig.ExecStart = "${pkgs.zerobin}/bin/zerobin ${cfg.listenAddress} ${toString cfg.listenPort} false ${cfg.user} ${cfg.group} ${zerobin_config}";
         serviceConfig.PrivateTmp="yes";
         serviceConfig.User = cfg.user;
         serviceConfig.Group = cfg.group;
diff --git a/nixpkgs/nixos/modules/services/printing/cupsd.nix b/nixpkgs/nixos/modules/services/printing/cupsd.nix
index e67badfcd29e..d2b36d9e7541 100644
--- a/nixpkgs/nixos/modules/services/printing/cupsd.nix
+++ b/nixpkgs/nixos/modules/services/printing/cupsd.nix
@@ -104,7 +104,7 @@ let
     ignoreCollisions = true;
   };
 
-  filterGutenprint = pkgs: filter (pkg: pkg.meta.isGutenprint or false == true) pkgs;
+  filterGutenprint = filter (pkg: pkg.meta.isGutenprint or false == true);
   containsGutenprint = pkgs: length (filterGutenprint pkgs) > 0;
   getGutenprint = pkgs: head (filterGutenprint pkgs);
 
@@ -270,7 +270,7 @@ in
       drivers = mkOption {
         type = types.listOf types.path;
         default = [];
-        example = literalExample "with pkgs; [ gutenprint hplip splix cups-googlecloudprint ]";
+        example = literalExample "with pkgs; [ gutenprint hplip splix ]";
         description = ''
           CUPS drivers to use. Drivers provided by CUPS, cups-filters,
           Ghostscript and Samba are added unconditionally. If this list contains
diff --git a/nixpkgs/nixos/modules/services/security/clamav.nix b/nixpkgs/nixos/modules/services/security/clamav.nix
index aaf6fb0479ba..340cbbf02fb4 100644
--- a/nixpkgs/nixos/modules/services/security/clamav.nix
+++ b/nixpkgs/nixos/modules/services/security/clamav.nix
@@ -8,30 +8,19 @@ let
   cfg = config.services.clamav;
   pkg = pkgs.clamav;
 
-  clamdConfigFile = pkgs.writeText "clamd.conf" ''
-    DatabaseDirectory ${stateDir}
-    LocalSocket ${runDir}/clamd.ctl
-    PidFile ${runDir}/clamd.pid
-    TemporaryDirectory /tmp
-    User clamav
-    Foreground yes
-
-    ${cfg.daemon.extraConfig}
-  '';
-
-  freshclamConfigFile = pkgs.writeText "freshclam.conf" ''
-    DatabaseDirectory ${stateDir}
-    Foreground yes
-    Checks ${toString cfg.updater.frequency}
-
-    ${cfg.updater.extraConfig}
-
-    DatabaseMirror database.clamav.net
-  '';
+  toKeyValue = generators.toKeyValue {
+    mkKeyValue = generators.mkKeyValueDefault {} " ";
+    listsAsDuplicateKeys = true;
+  };
+
+  clamdConfigFile = pkgs.writeText "clamd.conf" (toKeyValue cfg.daemon.settings);
+  freshclamConfigFile = pkgs.writeText "freshclam.conf" (toKeyValue cfg.updater.settings);
 in
 {
   imports = [
-    (mkRenamedOptionModule [ "services" "clamav" "updater" "config" ] [ "services" "clamav" "updater" "extraConfig" ])
+    (mkRemovedOptionModule [ "services" "clamav" "updater" "config" ] "Use services.clamav.updater.settings instead.")
+    (mkRemovedOptionModule [ "services" "clamav" "updater" "extraConfig" ] "Use services.clamav.updater.settings instead.")
+    (mkRemovedOptionModule [ "services" "clamav" "daemon" "extraConfig" ] "Use services.clamav.daemon.settings instead.")
   ];
 
   options = {
@@ -39,12 +28,12 @@ in
       daemon = {
         enable = mkEnableOption "ClamAV clamd daemon";
 
-        extraConfig = mkOption {
-          type = types.lines;
-          default = "";
+        settings = mkOption {
+          type = with types; attrsOf (oneOf [ bool int str (listOf str) ]);
+          default = {};
           description = ''
-            Extra configuration for clamd. Contents will be added verbatim to the
-            configuration file.
+            ClamAV configuration. Refer to <link xlink:href="https://linux.die.net/man/5/clamd.conf"/>,
+            for details on supported values.
           '';
         };
       };
@@ -68,12 +57,12 @@ in
           '';
         };
 
-        extraConfig = mkOption {
-          type = types.lines;
-          default = "";
+        settings = mkOption {
+          type = with types; attrsOf (oneOf [ bool int str (listOf str) ]);
+          default = {};
           description = ''
-            Extra configuration for freshclam. Contents will be added verbatim to the
-            configuration file.
+            freshclam configuration. Refer to <link xlink:href="https://linux.die.net/man/5/freshclam.conf"/>,
+            for details on supported values.
           '';
         };
       };
@@ -93,6 +82,22 @@ in
     users.groups.${clamavGroup} =
       { gid = config.ids.gids.clamav; };
 
+    services.clamav.daemon.settings = {
+      DatabaseDirectory = stateDir;
+      LocalSocket = "${runDir}/clamd.ctl";
+      PidFile = "${runDir}/clamd.pid";
+      TemporaryDirectory = "/tmp";
+      User = "clamav";
+      Foreground = true;
+    };
+
+    services.clamav.updater.settings = {
+      DatabaseDirectory = stateDir;
+      Foreground = true;
+      Checks = cfg.updater.frequency;
+      DatabaseMirror = [ "database.clamav.net" ];
+    };
+
     environment.etc."clamav/freshclam.conf".source = freshclamConfigFile;
     environment.etc."clamav/clamd.conf".source = clamdConfigFile;
 
diff --git a/nixpkgs/nixos/modules/services/security/fail2ban.nix b/nixpkgs/nixos/modules/services/security/fail2ban.nix
index cf0d72d5c531..b901b19cf318 100644
--- a/nixpkgs/nixos/modules/services/security/fail2ban.nix
+++ b/nixpkgs/nixos/modules/services/security/fail2ban.nix
@@ -243,7 +243,7 @@ in
       restartTriggers = [ fail2banConf jailConf pathsConf ];
       reloadIfChanged = true;
 
-      path = [ cfg.package cfg.packageFirewall pkgs.iproute ];
+      path = [ cfg.package cfg.packageFirewall pkgs.iproute2 ];
 
       unitConfig.Documentation = "man:fail2ban(1)";
 
diff --git a/nixpkgs/nixos/modules/services/security/privacyidea.nix b/nixpkgs/nixos/modules/services/security/privacyidea.nix
index c2988858e56c..f7b40089a932 100644
--- a/nixpkgs/nixos/modules/services/security/privacyidea.nix
+++ b/nixpkgs/nixos/modules/services/security/privacyidea.nix
@@ -57,6 +57,26 @@ in
     services.privacyidea = {
       enable = mkEnableOption "PrivacyIDEA";
 
+      environmentFile = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        example = "/root/privacyidea.env";
+        description = ''
+          File to load as environment file. Environment variables
+          from this file will be interpolated into the config file
+          using <package>envsubst</package> which is helpful for specifying
+          secrets:
+          <programlisting>
+          { <xref linkend="opt-services.privacyidea.secretKey" /> = "$SECRET"; }
+          </programlisting>
+
+          The environment-file can now specify the actual secret key:
+          <programlisting>
+          SECRET=veryverytopsecret
+          </programlisting>
+        '';
+      };
+
       stateDir = mkOption {
         type = types.str;
         default = "/var/lib/privacyidea";
@@ -206,7 +226,7 @@ in
         wantedBy = [ "multi-user.target" ];
         after = [ "postgresql.service" ];
         path = with pkgs; [ openssl ];
-        environment.PRIVACYIDEA_CONFIGFILE = piCfgFile;
+        environment.PRIVACYIDEA_CONFIGFILE = "${cfg.stateDir}/privacyidea.cfg";
         preStart = let
           pi-manage = "${pkgs.sudo}/bin/sudo -u privacyidea -HE ${penv}/bin/pi-manage";
           pgsu = config.services.postgresql.superUser;
@@ -214,6 +234,10 @@ in
         in ''
           mkdir -p ${cfg.stateDir} /run/privacyidea
           chown ${cfg.user}:${cfg.group} -R ${cfg.stateDir} /run/privacyidea
+          umask 077
+          ${lib.getBin pkgs.envsubst}/bin/envsubst -o ${cfg.stateDir}/privacyidea.cfg \
+                                                   -i "${piCfgFile}"
+          chown ${cfg.user}:${cfg.group} ${cfg.stateDir}/privacyidea.cfg
           if ! test -e "${cfg.stateDir}/db-created"; then
             ${pkgs.sudo}/bin/sudo -u ${pgsu} ${psql}/bin/createuser --no-superuser --no-createdb --no-createrole ${cfg.user}
             ${pkgs.sudo}/bin/sudo -u ${pgsu} ${psql}/bin/createdb --owner ${cfg.user} privacyidea
@@ -231,6 +255,7 @@ in
           Type = "notify";
           ExecStart = "${uwsgi}/bin/uwsgi --json ${piuwsgi}";
           ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+          EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
           ExecStop = "${pkgs.coreutils}/bin/kill -INT $MAINPID";
           NotifyAccess = "main";
           KillSignal = "SIGQUIT";
diff --git a/nixpkgs/nixos/modules/services/security/sshguard.nix b/nixpkgs/nixos/modules/services/security/sshguard.nix
index 72de11a9254c..033ff5ef4b5a 100644
--- a/nixpkgs/nixos/modules/services/security/sshguard.nix
+++ b/nixpkgs/nixos/modules/services/security/sshguard.nix
@@ -108,8 +108,8 @@ in {
       partOf = optional config.networking.firewall.enable "firewall.service";
 
       path = with pkgs; if config.networking.nftables.enable
-        then [ nftables iproute systemd ]
-        else [ iptables ipset iproute systemd ];
+        then [ nftables iproute2 systemd ]
+        else [ iptables ipset iproute2 systemd ];
 
       # The sshguard ipsets must exist before we invoke
       # iptables. sshguard creates the ipsets after startup if
diff --git a/nixpkgs/nixos/modules/services/system/cloud-init.nix b/nixpkgs/nixos/modules/services/system/cloud-init.nix
index f83db30c1f02..eb82b738e492 100644
--- a/nixpkgs/nixos/modules/services/system/cloud-init.nix
+++ b/nixpkgs/nixos/modules/services/system/cloud-init.nix
@@ -5,7 +5,7 @@ with lib;
 let cfg = config.services.cloud-init;
     path = with pkgs; [
       cloud-init
-      iproute
+      iproute2
       nettools
       openssh
       shadow
diff --git a/nixpkgs/nixos/modules/services/system/localtime.nix b/nixpkgs/nixos/modules/services/system/localtime.nix
index 8f8e2e2e9339..bb99e5e36ff8 100644
--- a/nixpkgs/nixos/modules/services/system/localtime.nix
+++ b/nixpkgs/nixos/modules/services/system/localtime.nix
@@ -29,15 +29,14 @@ in {
       };
     };
 
-    # We use the 'out' output, since localtime has its 'bin' output
-    # first, so that is what we get if we use the derivation bare.
     # Install the polkit rules.
-    environment.systemPackages = [ pkgs.localtime.out ];
+    environment.systemPackages = [ pkgs.localtime ];
     # Install the systemd unit.
-    systemd.packages = [ pkgs.localtime.out ];
+    systemd.packages = [ pkgs.localtime ];
 
     users.users.localtimed = {
-      description = "Taskserver user";
+      description = "localtime daemon";
+      isSystemUser = true;
     };
 
     systemd.services.localtime = {
diff --git a/nixpkgs/nixos/modules/services/ttys/kmscon.nix b/nixpkgs/nixos/modules/services/ttys/kmscon.nix
index dc37f9bee4b3..4fe720bf044b 100644
--- a/nixpkgs/nixos/modules/services/ttys/kmscon.nix
+++ b/nixpkgs/nixos/modules/services/ttys/kmscon.nix
@@ -82,11 +82,8 @@ in {
       X-RestartIfChanged=false
     '';
 
-    systemd.units."autovt@.service".unit = pkgs.runCommand "unit" { preferLocalBuild = true; }
-        ''
-          mkdir -p $out
-          ln -s ${config.systemd.units."kmsconvt@.service".unit}/kmsconvt@.service $out/autovt@.service
-        '';
+    systemd.suppressedSystemUnits = [ "autovt@.service" ];
+    systemd.units."kmsconvt@.service".aliases = [ "autovt@.service" ];
 
     systemd.services.systemd-vconsole-setup.enable = false;
 
diff --git a/nixpkgs/nixos/modules/services/web-apps/bookstack.nix b/nixpkgs/nixos/modules/services/web-apps/bookstack.nix
new file mode 100644
index 000000000000..83d05ffbad9a
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/bookstack.nix
@@ -0,0 +1,365 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.bookstack;
+  bookstack = pkgs.bookstack.override {
+    dataDir = cfg.dataDir;
+  };
+  db = cfg.database;
+  mail = cfg.mail;
+
+  user = cfg.user;
+  group = cfg.group;
+
+  # shell script for local administration
+  artisan = pkgs.writeScriptBin "bookstack" ''
+    #! ${pkgs.runtimeShell}
+    cd ${bookstack}
+    sudo=exec
+    if [[ "$USER" != ${user} ]]; then
+      sudo='exec /run/wrappers/bin/sudo -u ${user}'
+    fi
+    $sudo ${pkgs.php}/bin/php artisan $*
+  '';
+
+
+in {
+  options.services.bookstack = {
+
+    enable = mkEnableOption "BookStack";
+
+    user = mkOption {
+      default = "bookstack";
+      description = "User bookstack runs as.";
+      type = types.str;
+    };
+
+    group = mkOption {
+      default = "bookstack";
+      description = "Group bookstack runs as.";
+      type = types.str;
+    };
+
+    appKeyFile = mkOption {
+      description = ''
+        A file containing the AppKey.
+        Used for encryption where needed. Can be generated with <code>head -c 32 /dev/urandom| base64</code> and must be prefixed with <literal>base64:</literal>.
+      '';
+      example = "/run/keys/bookstack-appkey";
+      type = types.path;
+    };
+
+    appURL = mkOption {
+      description = ''
+        The root URL that you want to host BookStack on. All URLs in BookStack will be generated using this value.
+        If you change this in the future you may need to run a command to update stored URLs in the database. Command example: <code>php artisan bookstack:update-url https://old.example.com https://new.example.com</code>
+      '';
+      example = "https://example.com";
+      type = types.str;
+    };
+
+    cacheDir = mkOption {
+      description = "BookStack cache directory";
+      default = "/var/cache/bookstack";
+      type = types.path;
+    };
+
+    dataDir = mkOption {
+      description = "BookStack data directory";
+      default = "/var/lib/bookstack";
+      type = types.path;
+    };
+
+    database = {
+      host = mkOption {
+        type = types.str;
+        default = "localhost";
+        description = "Database host address.";
+      };
+      port = mkOption {
+        type = types.port;
+        default = 3306;
+        description = "Database host port.";
+      };
+      name = mkOption {
+        type = types.str;
+        default = "bookstack";
+        description = "Database name.";
+      };
+      user = mkOption {
+        type = types.str;
+        default = user;
+        defaultText = "\${user}";
+        description = "Database username.";
+      };
+      passwordFile = mkOption {
+        type = with types; nullOr path;
+        default = null;
+        example = "/run/keys/bookstack-dbpassword";
+        description = ''
+          A file containing the password corresponding to
+          <option>database.user</option>.
+        '';
+      };
+      createLocally = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Create the database and database user locally.";
+      };
+    };
+
+    mail = {
+      driver = mkOption {
+        type = types.enum [ "smtp" "sendmail" ];
+        default = "smtp";
+        description = "Mail driver to use.";
+      };
+      host = mkOption {
+        type = types.str;
+        default = "localhost";
+        description = "Mail host address.";
+      };
+      port = mkOption {
+        type = types.port;
+        default = 1025;
+        description = "Mail host port.";
+      };
+      fromName = mkOption {
+        type = types.str;
+        default = "BookStack";
+        description = "Mail \"from\" name.";
+      };
+      from = mkOption {
+        type = types.str;
+        default = "mail@bookstackapp.com";
+        description = "Mail \"from\" email.";
+      };
+      user = mkOption {
+        type = with types; nullOr str;
+        default = null;
+        example = "bookstack";
+        description = "Mail username.";
+      };
+      passwordFile = mkOption {
+        type = with types; nullOr path;
+        default = null;
+        example = "/run/keys/bookstack-mailpassword";
+        description = ''
+          A file containing the password corresponding to
+          <option>mail.user</option>.
+        '';
+      };
+      encryption = mkOption {
+        type = with types; nullOr (enum [ "tls" ]);
+        default = null;
+        description = "SMTP encryption mechanism to use.";
+      };
+    };
+
+    maxUploadSize = mkOption {
+      type = types.str;
+      default = "18M";
+      example = "1G";
+      description = "The maximum size for uploads (e.g. images).";
+    };
+
+    poolConfig = mkOption {
+      type = with types; attrsOf (oneOf [ str int bool ]);
+      default = {
+        "pm" = "dynamic";
+        "pm.max_children" = 32;
+        "pm.start_servers" = 2;
+        "pm.min_spare_servers" = 2;
+        "pm.max_spare_servers" = 4;
+        "pm.max_requests" = 500;
+      };
+      description = ''
+        Options for the bookstack PHP pool. See the documentation on <literal>php-fpm.conf</literal>
+        for details on configuration directives.
+      '';
+    };
+
+    nginx = mkOption {
+      type = types.submodule (
+        recursiveUpdate
+          (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {}
+      );
+      default = {};
+      example = {
+        serverAliases = [
+          "bookstack.\${config.networking.domain}"
+        ];
+        # To enable encryption and let let's encrypt take care of certificate
+        forceSSL = true;
+        enableACME = true;
+      };
+      description = ''
+        With this option, you can customize the nginx virtualHost settings.
+      '';
+    };
+
+    extraConfig = mkOption {
+      type = types.nullOr types.lines;
+      default = null;
+      example = ''
+        ALLOWED_IFRAME_HOSTS="https://example.com"
+        WKHTMLTOPDF=/home/user/bins/wkhtmltopdf
+      '';
+      description = ''
+        Lines to be appended verbatim to the BookStack configuration.
+        Refer to <link xlink:href="https://www.bookstackapp.com/docs/"/> for details on supported values.
+      '';
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    assertions = [
+      { assertion = db.createLocally -> db.user == user;
+        message = "services.bookstack.database.user must be set to ${user} if services.mediawiki.database.createLocally is set true.";
+      }
+      { assertion = db.createLocally -> db.passwordFile == null;
+        message = "services.bookstack.database.passwordFile cannot be specified if services.bookstack.database.createLocally is set to true.";
+      }
+    ];
+
+    environment.systemPackages = [ artisan ];
+
+    services.mysql = mkIf db.createLocally {
+      enable = true;
+      package = mkDefault pkgs.mariadb;
+      ensureDatabases = [ db.name ];
+      ensureUsers = [
+        { name = db.user;
+          ensurePermissions = { "${db.name}.*" = "ALL PRIVILEGES"; };
+        }
+      ];
+    };
+
+    services.phpfpm.pools.bookstack = {
+      inherit user;
+      inherit group;
+      phpOptions = ''
+        log_errors = on
+        post_max_size = ${cfg.maxUploadSize}
+        upload_max_filesize = ${cfg.maxUploadSize}
+      '';
+      settings = {
+        "listen.mode" = "0660";
+        "listen.owner" = user;
+        "listen.group" = group;
+      } // cfg.poolConfig;
+    };
+
+    services.nginx = {
+      enable = mkDefault true;
+      virtualHosts.bookstack = mkMerge [ cfg.nginx {
+        root = mkForce "${bookstack}/public";
+        extraConfig = optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;";
+        locations = {
+          "/" = {
+            index = "index.php";
+            extraConfig = ''try_files $uri $uri/ /index.php?$query_string;'';
+          };
+          "~ \.php$" = {
+            extraConfig = ''
+              try_files $uri $uri/ /index.php?$query_string;
+              include ${pkgs.nginx}/conf/fastcgi_params;
+              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+              fastcgi_param REDIRECT_STATUS 200;
+              fastcgi_pass unix:${config.services.phpfpm.pools."bookstack".socket};
+              ${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;"}
+            '';
+          };
+          "~ \.(js|css|gif|png|ico|jpg|jpeg)$" = {
+            extraConfig = "expires 365d;";
+          };
+        };
+      }];
+    };
+
+    systemd.services.bookstack-setup = {
+      description = "Preperation tasks for BookStack";
+      before = [ "phpfpm-bookstack.service" ];
+      after = optional db.createLocally "mysql.service";
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = "oneshot";
+        User = user;
+        WorkingDirectory = "${bookstack}";
+      };
+      script = ''
+        # create .env file
+        echo "
+        APP_KEY=base64:$(head -n1 ${cfg.appKeyFile})
+        APP_URL=${cfg.appURL}
+        DB_HOST=${db.host}
+        DB_PORT=${toString db.port}
+        DB_DATABASE=${db.name}
+        DB_USERNAME=${db.user}
+        MAIL_DRIVER=${mail.driver}
+        MAIL_FROM_NAME=\"${mail.fromName}\"
+        MAIL_FROM=${mail.from}
+        MAIL_HOST=${mail.host}
+        MAIL_PORT=${toString mail.port}
+        ${optionalString (mail.user != null) "MAIL_USERNAME=${mail.user};"}
+        ${optionalString (mail.encryption != null) "MAIL_ENCRYPTION=${mail.encryption};"}
+        ${optionalString (db.passwordFile != null) "DB_PASSWORD=$(head -n1 ${db.passwordFile})"}
+        ${optionalString (mail.passwordFile != null) "MAIL_PASSWORD=$(head -n1 ${mail.passwordFile})"}
+        APP_SERVICES_CACHE=${cfg.cacheDir}/services.php
+        APP_PACKAGES_CACHE=${cfg.cacheDir}/packages.php
+        APP_CONFIG_CACHE=${cfg.cacheDir}/config.php
+        APP_ROUTES_CACHE=${cfg.cacheDir}/routes-v7.php
+        APP_EVENTS_CACHE=${cfg.cacheDir}/events.php
+        ${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "SESSION_SECURE_COOKIE=true"}
+        ${toString cfg.extraConfig}
+        " > "${cfg.dataDir}/.env"
+        # set permissions
+        chmod 700 "${cfg.dataDir}/.env"
+
+        # migrate db
+        ${pkgs.php}/bin/php artisan migrate --force
+
+        # create caches
+        ${pkgs.php}/bin/php artisan config:cache
+        ${pkgs.php}/bin/php artisan route:cache
+        ${pkgs.php}/bin/php artisan view:cache
+      '';
+    };
+
+    systemd.tmpfiles.rules = [
+      "d ${cfg.cacheDir}                           0700 ${user} ${group} - -"
+      "d ${cfg.dataDir}                            0710 ${user} ${group} - -"
+      "d ${cfg.dataDir}/public                     0750 ${user} ${group} - -"
+      "d ${cfg.dataDir}/public/uploads             0750 ${user} ${group} - -"
+      "d ${cfg.dataDir}/storage                    0700 ${user} ${group} - -"
+      "d ${cfg.dataDir}/storage/app                0700 ${user} ${group} - -"
+      "d ${cfg.dataDir}/storage/fonts              0700 ${user} ${group} - -"
+      "d ${cfg.dataDir}/storage/framework          0700 ${user} ${group} - -"
+      "d ${cfg.dataDir}/storage/framework/cache    0700 ${user} ${group} - -"
+      "d ${cfg.dataDir}/storage/framework/sessions 0700 ${user} ${group} - -"
+      "d ${cfg.dataDir}/storage/framework/views    0700 ${user} ${group} - -"
+      "d ${cfg.dataDir}/storage/logs               0700 ${user} ${group} - -"
+      "d ${cfg.dataDir}/storage/uploads            0700 ${user} ${group} - -"
+    ];
+
+    users = {
+      users = mkIf (user == "bookstack") {
+        bookstack = {
+          inherit group;
+          isSystemUser = true;
+        };
+        "${config.services.nginx.user}".extraGroups = [ group ];
+      };
+      groups = mkIf (group == "bookstack") {
+        bookstack = {};
+      };
+    };
+
+  };
+
+  meta.maintainers = with maintainers; [ ymarkus ];
+}
diff --git a/nixpkgs/nixos/modules/services/web-apps/calibre-web.nix b/nixpkgs/nixos/modules/services/web-apps/calibre-web.nix
new file mode 100644
index 000000000000..704cd2cfa8a7
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/calibre-web.nix
@@ -0,0 +1,165 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.calibre-web;
+
+  inherit (lib) concatStringsSep mkEnableOption mkIf mkOption optional optionalString types;
+in
+{
+  options = {
+    services.calibre-web = {
+      enable = mkEnableOption "Calibre-Web";
+
+      listen = {
+        ip = mkOption {
+          type = types.str;
+          default = "::1";
+          description = ''
+            IP address that Calibre-Web should listen on.
+          '';
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8083;
+          description = ''
+            Listen port for Calibre-Web.
+          '';
+        };
+      };
+
+      dataDir = mkOption {
+        type = types.str;
+        default = "calibre-web";
+        description = ''
+          The directory below <filename>/var/lib</filename> where Calibre-Web stores its data.
+        '';
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "calibre-web";
+        description = "User account under which Calibre-Web runs.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "calibre-web";
+        description = "Group account under which Calibre-Web runs.";
+      };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Open ports in the firewall for the server.
+        '';
+      };
+
+      options = {
+        calibreLibrary = mkOption {
+          type = types.nullOr types.path;
+          default = null;
+          description = ''
+            Path to Calibre library.
+          '';
+        };
+
+        enableBookConversion = mkOption {
+          type = types.bool;
+          default = false;
+          description = ''
+            Configure path to the Calibre's ebook-convert in the DB.
+          '';
+        };
+
+        enableBookUploading = mkOption {
+          type = types.bool;
+          default = false;
+          description = ''
+            Allow books to be uploaded via Calibre-Web UI.
+          '';
+        };
+
+        reverseProxyAuth = {
+          enable = mkOption {
+            type = types.bool;
+            default = false;
+            description = ''
+              Enable authorization using auth proxy.
+            '';
+          };
+
+          header = mkOption {
+            type = types.str;
+            default = "";
+            description = ''
+              Auth proxy header name.
+            '';
+          };
+        };
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.calibre-web = let
+      appDb = "/var/lib/${cfg.dataDir}/app.db";
+      gdriveDb = "/var/lib/${cfg.dataDir}/gdrive.db";
+      calibreWebCmd = "${pkgs.calibre-web}/bin/calibre-web -p ${appDb} -g ${gdriveDb}";
+
+      settings = concatStringsSep ", " (
+        [
+          "config_port = ${toString cfg.listen.port}"
+          "config_uploading = ${if cfg.options.enableBookUploading then "1" else "0"}"
+          "config_allow_reverse_proxy_header_login = ${if cfg.options.reverseProxyAuth.enable then "1" else "0"}"
+          "config_reverse_proxy_login_header_name = '${cfg.options.reverseProxyAuth.header}'"
+        ]
+        ++ optional (cfg.options.calibreLibrary != null) "config_calibre_dir = '${cfg.options.calibreLibrary}'"
+        ++ optional cfg.options.enableBookConversion "config_converterpath = '${pkgs.calibre}/bin/ebook-convert'"
+      );
+    in
+      {
+        description = "Web app for browsing, reading and downloading eBooks stored in a Calibre database";
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+
+        serviceConfig = {
+          Type = "simple";
+          User = cfg.user;
+          Group = cfg.group;
+
+          StateDirectory = cfg.dataDir;
+          ExecStartPre = pkgs.writeShellScript "calibre-web-pre-start" (
+            ''
+              __RUN_MIGRATIONS_AND_EXIT=1 ${calibreWebCmd}
+
+              ${pkgs.sqlite}/bin/sqlite3 ${appDb} "update settings set ${settings}"
+            '' + optionalString (cfg.options.calibreLibrary != null) ''
+              test -f ${cfg.options.calibreLibrary}/metadata.db || { echo "Invalid Calibre library"; exit 1; }
+            ''
+          );
+
+          ExecStart = "${calibreWebCmd} -i ${cfg.listen.ip}";
+          Restart = "on-failure";
+        };
+      };
+
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ cfg.listen.port ];
+    };
+
+    users.users = mkIf (cfg.user == "calibre-web") {
+      calibre-web = {
+        isSystemUser = true;
+        group = cfg.group;
+      };
+    };
+
+    users.groups = mkIf (cfg.group == "calibre-web") {
+      calibre-web = {};
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ pborzenkov ];
+}
diff --git a/nixpkgs/nixos/modules/services/web-apps/discourse.nix b/nixpkgs/nixos/modules/services/web-apps/discourse.nix
new file mode 100644
index 000000000000..03ea002c9dee
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/discourse.nix
@@ -0,0 +1,1035 @@
+{ config, options, lib, pkgs, utils, ... }:
+
+let
+  json = pkgs.formats.json {};
+
+  cfg = config.services.discourse;
+
+  postgresqlPackage = if config.services.postgresql.enable then
+                        config.services.postgresql.package
+                      else
+                        pkgs.postgresql;
+
+  # We only want to create a database if we're actually going to connect to it.
+  databaseActuallyCreateLocally = cfg.database.createLocally && cfg.database.host == null;
+
+  tlsEnabled = (cfg.enableACME
+                || cfg.sslCertificate != null
+                || cfg.sslCertificateKey != null);
+in
+{
+  options = {
+    services.discourse = {
+      enable = lib.mkEnableOption "Discourse, an open source discussion platform";
+
+      package = lib.mkOption {
+        type = lib.types.package;
+        default = pkgs.discourse;
+        defaultText = "pkgs.discourse";
+        description = ''
+          The discourse package to use.
+        '';
+      };
+
+      hostname = lib.mkOption {
+        type = lib.types.str;
+        default = if config.networking.domain != null then
+                    config.networking.fqdn
+                  else
+                    config.networking.hostName;
+        defaultText = "config.networking.fqdn";
+        example = "discourse.example.com";
+        description = ''
+          The hostname to serve Discourse on.
+        '';
+      };
+
+      secretKeyBaseFile = lib.mkOption {
+        type = with lib.types; nullOr path;
+        default = null;
+        example = "/run/keys/secret_key_base";
+        description = ''
+          The path to a file containing the
+          <literal>secret_key_base</literal> secret.
+
+          Discourse uses <literal>secret_key_base</literal> to encrypt
+          the cookie store, which contains session data, and to digest
+          user auth tokens.
+
+          Needs to be a 64 byte long string of hexadecimal
+          characters. You can generate one by running
+
+          <screen>
+          <prompt>$ </prompt>openssl rand -hex 64 >/path/to/secret_key_base_file
+          </screen>
+
+          This should be a string, not a nix path, since nix paths are
+          copied into the world-readable nix store.
+        '';
+      };
+
+      sslCertificate = lib.mkOption {
+        type = with lib.types; nullOr path;
+        default = null;
+        example = "/run/keys/ssl.cert";
+        description = ''
+          The path to the server SSL certificate. Set this to enable
+          SSL.
+        '';
+      };
+
+      sslCertificateKey = lib.mkOption {
+        type = with lib.types; nullOr path;
+        default = null;
+        example = "/run/keys/ssl.key";
+        description = ''
+          The path to the server SSL certificate key. Set this to
+          enable SSL.
+        '';
+      };
+
+      enableACME = lib.mkOption {
+        type = lib.types.bool;
+        default = cfg.sslCertificate == null && cfg.sslCertificateKey == null;
+        defaultText = "true, unless services.discourse.sslCertificate and services.discourse.sslCertificateKey are set.";
+        description = ''
+          Whether an ACME certificate should be used to secure
+          connections to the server.
+        '';
+      };
+
+      backendSettings = lib.mkOption {
+        type = with lib.types; attrsOf (nullOr (oneOf [ str int bool float ]));
+        default = {};
+        example = lib.literalExample ''
+          {
+            max_reqs_per_ip_per_minute = 300;
+            max_reqs_per_ip_per_10_seconds = 60;
+            max_asset_reqs_per_ip_per_10_seconds = 250;
+            max_reqs_per_ip_mode = "warn+block";
+          };
+        '';
+        description = ''
+          Additional settings to put in the
+          <filename>discourse.conf</filename> file.
+
+          Look in the
+          <link xlink:href="https://github.com/discourse/discourse/blob/master/config/discourse_defaults.conf">discourse_defaults.conf</link>
+          file in the upstream distribution to find available options.
+
+          Setting an option to <literal>null</literal> means
+          <quote>define variable, but leave right-hand side
+          empty</quote>.
+        '';
+      };
+
+      siteSettings = lib.mkOption {
+        type = json.type;
+        default = {};
+        example = lib.literalExample ''
+          {
+            required = {
+              title = "My Cats";
+              site_description = "Discuss My Cats (and be nice plz)";
+            };
+            login = {
+              enable_github_logins = true;
+              github_client_id = "a2f6dfe838cb3206ce20";
+              github_client_secret._secret = /run/keys/discourse_github_client_secret;
+            };
+          };
+        '';
+        description = ''
+          Discourse site settings. These are the settings that can be
+          changed from the UI. This only defines their default values:
+          they can still be overridden from the UI.
+
+          Available settings can be found by looking in the
+          <link xlink:href="https://github.com/discourse/discourse/blob/master/config/site_settings.yml">site_settings.yml</link>
+          file of the upstream distribution. To find a setting's path,
+          you only need to care about the first two levels; i.e. its
+          category and name. See the example.
+
+          Settings containing secret data should be set to an
+          attribute set containing the attribute
+          <literal>_secret</literal> - a string pointing to a file
+          containing the value the option should be set to. See the
+          example to get a better picture of this: in the resulting
+          <filename>config/nixos_site_settings.json</filename> file,
+          the <literal>login.github_client_secret</literal> key will
+          be set to the contents of the
+          <filename>/run/keys/discourse_github_client_secret</filename>
+          file.
+        '';
+      };
+
+      admin = {
+        email = lib.mkOption {
+          type = lib.types.str;
+          example = "admin@example.com";
+          description = ''
+            The admin user email address.
+          '';
+        };
+
+        username = lib.mkOption {
+          type = lib.types.str;
+          example = "admin";
+          description = ''
+            The admin user username.
+          '';
+        };
+
+        fullName = lib.mkOption {
+          type = lib.types.str;
+          description = ''
+            The admin user's full name.
+          '';
+        };
+
+        passwordFile = lib.mkOption {
+          type = lib.types.path;
+          description = ''
+            A path to a file containing the admin user's password.
+
+            This should be a string, not a nix path, since nix paths are
+            copied into the world-readable nix store.
+          '';
+        };
+      };
+
+      nginx.enable = lib.mkOption {
+        type = lib.types.bool;
+        default = true;
+        description = ''
+          Whether an <literal>nginx</literal> virtual host should be
+          set up to serve Discourse. Only disable if you're planning
+          to use a different web server, which is not recommended.
+        '';
+      };
+
+      database = {
+        pool = lib.mkOption {
+          type = lib.types.int;
+          default = 8;
+          description = ''
+            Database connection pool size.
+          '';
+        };
+
+        host = lib.mkOption {
+          type = with lib.types; nullOr str;
+          default = null;
+          description = ''
+            Discourse database hostname. <literal>null</literal> means <quote>prefer
+            local unix socket connection</quote>.
+          '';
+        };
+
+        passwordFile = lib.mkOption {
+          type = with lib.types; nullOr path;
+          default = null;
+          description = ''
+            File containing the Discourse database user password.
+
+            This should be a string, not a nix path, since nix paths are
+            copied into the world-readable nix store.
+          '';
+        };
+
+        createLocally = lib.mkOption {
+          type = lib.types.bool;
+          default = true;
+          description = ''
+            Whether a database should be automatically created on the
+            local host. Set this to <literal>false</literal> if you plan
+            on provisioning a local database yourself. This has no effect
+            if <option>services.discourse.database.host</option> is customized.
+          '';
+        };
+
+        name = lib.mkOption {
+          type = lib.types.str;
+          default = "discourse";
+          description = ''
+            Discourse database name.
+          '';
+        };
+
+        username = lib.mkOption {
+          type = lib.types.str;
+          default = "discourse";
+          description = ''
+            Discourse database user.
+          '';
+        };
+      };
+
+      redis = {
+        host = lib.mkOption {
+          type = lib.types.str;
+          default = "localhost";
+          description = ''
+            Redis server hostname.
+          '';
+        };
+
+        passwordFile = lib.mkOption {
+          type = with lib.types; nullOr path;
+          default = null;
+          description = ''
+            File containing the Redis password.
+
+            This should be a string, not a nix path, since nix paths are
+            copied into the world-readable nix store.
+          '';
+        };
+
+        dbNumber = lib.mkOption {
+          type = lib.types.int;
+          default = 0;
+          description = ''
+            Redis database number.
+          '';
+        };
+
+        useSSL = lib.mkOption {
+          type = lib.types.bool;
+          default = cfg.redis.host != "localhost";
+          description = ''
+            Connect to Redis with SSL.
+          '';
+        };
+      };
+
+      mail = {
+        notificationEmailAddress = lib.mkOption {
+          type = lib.types.str;
+          default = "${if cfg.mail.incoming.enable then "notifications" else "noreply"}@${cfg.hostname}";
+          defaultText = ''
+            "notifications@`config.services.discourse.hostname`" if
+            config.services.discourse.mail.incoming.enable is "true",
+            otherwise "noreply`config.services.discourse.hostname`"
+          '';
+          description = ''
+            The <literal>from:</literal> email address used when
+            sending all essential system emails. The domain specified
+            here must have SPF, DKIM and reverse PTR records set
+            correctly for email to arrive.
+          '';
+        };
+
+        contactEmailAddress = lib.mkOption {
+          type = lib.types.str;
+          default = "";
+          description = ''
+            Email address of key contact responsible for this
+            site. Used for critical notifications, as well as on the
+            <literal>/about</literal> contact form for urgent matters.
+          '';
+        };
+
+        outgoing = {
+          serverAddress = lib.mkOption {
+            type = lib.types.str;
+            default = "localhost";
+            description = ''
+              The address of the SMTP server Discourse should use to
+              send email.
+            '';
+          };
+
+          port = lib.mkOption {
+            type = lib.types.int;
+            default = 25;
+            description = ''
+              The port of the SMTP server Discourse should use to
+              send email.
+            '';
+          };
+
+          username = lib.mkOption {
+            type = with lib.types; nullOr str;
+            default = null;
+            description = ''
+              The username of the SMTP server.
+            '';
+          };
+
+          passwordFile = lib.mkOption {
+            type = lib.types.nullOr lib.types.path;
+            default = null;
+            description = ''
+              A file containing the password of the SMTP server account.
+
+              This should be a string, not a nix path, since nix paths
+              are copied into the world-readable nix store.
+            '';
+          };
+
+          domain = lib.mkOption {
+            type = lib.types.str;
+            default = cfg.hostname;
+            description = ''
+              HELO domain to use for outgoing mail.
+            '';
+          };
+
+          authentication = lib.mkOption {
+            type = with lib.types; nullOr (enum ["plain" "login" "cram_md5"]);
+            default = null;
+            description = ''
+              Authentication type to use, see http://api.rubyonrails.org/classes/ActionMailer/Base.html
+            '';
+          };
+
+          enableStartTLSAuto = lib.mkOption {
+            type = lib.types.bool;
+            default = true;
+            description = ''
+              Whether to try to use StartTLS.
+            '';
+          };
+
+          opensslVerifyMode = lib.mkOption {
+            type = lib.types.str;
+            default = "peer";
+            description = ''
+              How OpenSSL checks the certificate, see http://api.rubyonrails.org/classes/ActionMailer/Base.html
+            '';
+          };
+        };
+
+        incoming = {
+          enable = lib.mkOption {
+            type = lib.types.bool;
+            default = false;
+            description = ''
+              Whether to set up Postfix to receive incoming mail.
+            '';
+          };
+
+          replyEmailAddress = lib.mkOption {
+            type = lib.types.str;
+            default = "%{reply_key}@${cfg.hostname}";
+            defaultText = "%{reply_key}@`config.services.discourse.hostname`";
+            description = ''
+              Template for reply by email incoming email address, for
+              example: %{reply_key}@reply.example.com or
+              replies+%{reply_key}@example.com
+            '';
+          };
+
+          mailReceiverPackage = lib.mkOption {
+            type = lib.types.package;
+            default = pkgs.discourse-mail-receiver;
+            defaultText = "pkgs.discourse-mail-receiver";
+            description = ''
+              The discourse-mail-receiver package to use.
+            '';
+          };
+
+          apiKeyFile = lib.mkOption {
+            type = lib.types.nullOr lib.types.path;
+            default = null;
+            description = ''
+              A file containing the Discourse API key used to add
+              posts and messages from mail. If left at its default
+              value <literal>null</literal>, one will be automatically
+              generated.
+
+              This should be a string, not a nix path, since nix paths
+              are copied into the world-readable nix store.
+            '';
+          };
+        };
+      };
+
+      plugins = lib.mkOption {
+        type = lib.types.listOf lib.types.package;
+        default = [];
+        example = ''
+          [
+            (pkgs.fetchFromGitHub {
+              owner = "discourse";
+              repo = "discourse-spoiler-alert";
+              rev = "e200cfa571d252cab63f3d30d619b370986e4cee";
+              sha256 = "0ya69ix5g77wz4c9x9gmng6l25ghb5xxlx3icr6jam16q14dzc33";
+            })
+          ];
+        '';
+        description = ''
+          <productname>Discourse</productname> plugins to install as a
+          list of derivations. As long as a plugin supports the
+          standard install method, packaging it should only require
+          fetching its source with an appropriate fetcher.
+        '';
+      };
+
+      sidekiqProcesses = lib.mkOption {
+        type = lib.types.int;
+        default = 1;
+        description = ''
+          How many Sidekiq processes should be spawned.
+        '';
+      };
+
+      unicornTimeout = lib.mkOption {
+        type = lib.types.int;
+        default = 30;
+        description = ''
+          Time in seconds before a request to Unicorn times out.
+
+          This can be raised if the system Discourse is running on is
+          too slow to handle many requests within 30 seconds.
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = (cfg.database.host != null) -> (cfg.database.passwordFile != null);
+        message = "When services.gitlab.database.host is customized, services.discourse.database.passwordFile must be set!";
+      }
+      {
+        assertion = cfg.hostname != "";
+        message = "Could not automatically determine hostname, set service.discourse.hostname manually.";
+      }
+    ];
+
+
+    # Default config values are from `config/discourse_defaults.conf`
+    # upstream.
+    services.discourse.backendSettings = lib.mapAttrs (_: lib.mkDefault) {
+      db_pool = cfg.database.pool;
+      db_timeout = 5000;
+      db_connect_timeout = 5;
+      db_socket = null;
+      db_host = cfg.database.host;
+      db_backup_host = null;
+      db_port = null;
+      db_backup_port = 5432;
+      db_name = cfg.database.name;
+      db_username = if databaseActuallyCreateLocally then "discourse" else cfg.database.username;
+      db_password = cfg.database.passwordFile;
+      db_prepared_statements = false;
+      db_replica_host = null;
+      db_replica_port = null;
+      db_advisory_locks = true;
+
+      inherit (cfg) hostname;
+      backup_hostname = null;
+
+      smtp_address = cfg.mail.outgoing.serverAddress;
+      smtp_port = cfg.mail.outgoing.port;
+      smtp_domain = cfg.mail.outgoing.domain;
+      smtp_user_name = cfg.mail.outgoing.username;
+      smtp_password = cfg.mail.outgoing.passwordFile;
+      smtp_authentication = cfg.mail.outgoing.authentication;
+      smtp_enable_start_tls = cfg.mail.outgoing.enableStartTLSAuto;
+      smtp_openssl_verify_mode = cfg.mail.outgoing.opensslVerifyMode;
+
+      load_mini_profiler = true;
+      mini_profiler_snapshots_period = 0;
+      mini_profiler_snapshots_transport_url = null;
+      mini_profiler_snapshots_transport_auth_key = null;
+
+      cdn_url = null;
+      cdn_origin_hostname = null;
+      developer_emails = null;
+
+      redis_host = cfg.redis.host;
+      redis_port = 6379;
+      redis_slave_host = null;
+      redis_slave_port = 6379;
+      redis_db = cfg.redis.dbNumber;
+      redis_password = cfg.redis.passwordFile;
+      redis_skip_client_commands = false;
+      redis_use_ssl = cfg.redis.useSSL;
+
+      message_bus_redis_enabled = false;
+      message_bus_redis_host = "localhost";
+      message_bus_redis_port = 6379;
+      message_bus_redis_slave_host = null;
+      message_bus_redis_slave_port = 6379;
+      message_bus_redis_db = 0;
+      message_bus_redis_password = null;
+      message_bus_redis_skip_client_commands = false;
+
+      enable_cors = false;
+      cors_origin = "";
+      serve_static_assets = false;
+      sidekiq_workers = 5;
+      rtl_css = false;
+      connection_reaper_age = 30;
+      connection_reaper_interval = 30;
+      relative_url_root = null;
+      message_bus_max_backlog_size = 100;
+      secret_key_base = cfg.secretKeyBaseFile;
+      fallback_assets_path = null;
+
+      s3_bucket = null;
+      s3_region = null;
+      s3_access_key_id = null;
+      s3_secret_access_key = null;
+      s3_use_iam_profile = null;
+      s3_cdn_url = null;
+      s3_endpoint = null;
+      s3_http_continue_timeout = null;
+      s3_install_cors_rule = null;
+
+      max_user_api_reqs_per_minute = 20;
+      max_user_api_reqs_per_day = 2880;
+      max_admin_api_reqs_per_key_per_minute = 60;
+      max_reqs_per_ip_per_minute = 200;
+      max_reqs_per_ip_per_10_seconds = 50;
+      max_asset_reqs_per_ip_per_10_seconds = 200;
+      max_reqs_per_ip_mode = "block";
+      max_reqs_rate_limit_on_private = false;
+      force_anonymous_min_queue_seconds = 1;
+      force_anonymous_min_per_10_seconds = 3;
+      background_requests_max_queue_length = 0.5;
+      reject_message_bus_queue_seconds = 0.1;
+      disable_search_queue_threshold = 1;
+      max_old_rebakes_per_15_minutes = 300;
+      max_logster_logs = 1000;
+      refresh_maxmind_db_during_precompile_days = 2;
+      maxmind_backup_path = null;
+      maxmind_license_key = null;
+      enable_performance_http_headers = false;
+      enable_js_error_reporting = true;
+      mini_scheduler_workers = 5;
+      compress_anon_cache = false;
+      anon_cache_store_threshold = 2;
+      allowed_theme_repos = null;
+      enable_email_sync_demon = false;
+      max_digests_enqueued_per_30_mins_per_site = 10000;
+    };
+
+    services.redis.enable = lib.mkDefault (cfg.redis.host == "localhost");
+
+    services.postgresql = lib.mkIf databaseActuallyCreateLocally {
+      enable = true;
+      ensureUsers = [{ name = "discourse"; }];
+    };
+
+    # The postgresql module doesn't currently support concepts like
+    # objects owners and extensions; for now we tack on what's needed
+    # here.
+    systemd.services.discourse-postgresql =
+      let
+        pgsql = config.services.postgresql;
+      in
+        lib.mkIf databaseActuallyCreateLocally {
+          after = [ "postgresql.service" ];
+          bindsTo = [ "postgresql.service" ];
+          wantedBy = [ "discourse.service" ];
+          partOf = [ "discourse.service" ];
+          path = [
+            pgsql.package
+          ];
+          script = ''
+            set -o errexit -o pipefail -o nounset -o errtrace
+            shopt -s inherit_errexit
+
+            psql -tAc "SELECT 1 FROM pg_database WHERE datname = 'discourse'" | grep -q 1 || psql -tAc 'CREATE DATABASE "discourse" OWNER "discourse"'
+            psql '${cfg.database.name}' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
+            psql '${cfg.database.name}' -tAc "CREATE EXTENSION IF NOT EXISTS hstore"
+          '';
+
+          serviceConfig = {
+            User = pgsql.superUser;
+            Type = "oneshot";
+            RemainAfterExit = true;
+          };
+        };
+
+    systemd.services.discourse = {
+      wantedBy = [ "multi-user.target" ];
+      after = [
+        "redis.service"
+        "postgresql.service"
+        "discourse-postgresql.service"
+      ];
+      bindsTo = [
+        "redis.service"
+      ] ++ lib.optionals (cfg.database.host == null) [
+        "postgresql.service"
+        "discourse-postgresql.service"
+      ];
+      path = cfg.package.runtimeDeps ++ [
+        postgresqlPackage
+        pkgs.replace
+        cfg.package.rake
+      ];
+      environment = cfg.package.runtimeEnv // {
+        UNICORN_TIMEOUT = builtins.toString cfg.unicornTimeout;
+        UNICORN_SIDEKIQS = builtins.toString cfg.sidekiqProcesses;
+      };
+
+      preStart =
+        let
+          discourseKeyValue = lib.generators.toKeyValue {
+            mkKeyValue = lib.flip lib.generators.mkKeyValueDefault " = " {
+              mkValueString = v: with builtins;
+                if isInt           v then toString v
+                else if isString   v then ''"${v}"''
+                else if true  ==   v then "true"
+                else if false ==   v then "false"
+                else if null  ==   v then ""
+                else if isFloat    v then lib.strings.floatToString v
+                else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
+            };
+          };
+
+          discourseConf = pkgs.writeText "discourse.conf" (discourseKeyValue cfg.backendSettings);
+
+          mkSecretReplacement = file:
+            lib.optionalString (file != null) ''
+              (
+                  password=$(<'${file}')
+                  replace-literal -fe '${file}' "$password" /run/discourse/config/discourse.conf
+              )
+            '';
+        in ''
+          set -o errexit -o pipefail -o nounset -o errtrace
+          shopt -s inherit_errexit
+
+          umask u=rwx,g=rx,o=
+
+          cp -r ${cfg.package}/share/discourse/config.dist/* /run/discourse/config/
+          cp -r ${cfg.package}/share/discourse/public.dist/* /run/discourse/public/
+          cp -r ${cfg.package}/share/discourse/plugins.dist/* /run/discourse/plugins/
+          ${lib.concatMapStrings (p: "ln -sf ${p} /run/discourse/plugins/") cfg.plugins}
+          ln -sf /var/lib/discourse/uploads /run/discourse/public/uploads
+          ln -sf /var/lib/discourse/backups /run/discourse/public/backups
+
+          (
+              umask u=rwx,g=,o=
+
+              ${utils.genJqSecretsReplacementSnippet
+                  cfg.siteSettings
+                  "/run/discourse/config/nixos_site_settings.json"
+              }
+              install -T -m 0400 -o discourse ${discourseConf} /run/discourse/config/discourse.conf
+              ${mkSecretReplacement cfg.database.passwordFile}
+              ${mkSecretReplacement cfg.mail.outgoing.passwordFile}
+              ${mkSecretReplacement cfg.redis.passwordFile}
+              ${mkSecretReplacement cfg.secretKeyBaseFile}
+          )
+
+          discourse-rake db:migrate >>/var/log/discourse/db_migration.log
+          chmod -R u+w /run/discourse/tmp/
+
+          export ADMIN_EMAIL="${cfg.admin.email}"
+          export ADMIN_NAME="${cfg.admin.fullName}"
+          export ADMIN_USERNAME="${cfg.admin.username}"
+          export ADMIN_PASSWORD="$(<${cfg.admin.passwordFile})"
+          discourse-rake admin:create_noninteractively
+
+          discourse-rake themes:update
+          discourse-rake uploads:regenerate_missing_optimized
+        '';
+
+      serviceConfig = {
+        Type = "simple";
+        User = "discourse";
+        Group = "discourse";
+        RuntimeDirectory = map (p: "discourse/" + p) [
+          "config"
+          "home"
+          "tmp"
+          "assets/javascripts/plugins"
+          "public"
+          "plugins"
+          "sockets"
+        ];
+        RuntimeDirectoryMode = 0750;
+        StateDirectory = map (p: "discourse/" + p) [
+          "uploads"
+          "backups"
+        ];
+        StateDirectoryMode = 0750;
+        LogsDirectory = "discourse";
+        TimeoutSec = "infinity";
+        Restart = "on-failure";
+        WorkingDirectory = "${cfg.package}/share/discourse";
+
+        RemoveIPC = true;
+        PrivateTmp = true;
+        NoNewPrivileges = true;
+        RestrictSUIDSGID = true;
+        ProtectSystem = "strict";
+        ProtectHome = "read-only";
+
+        ExecStart = "${cfg.package.rubyEnv}/bin/bundle exec config/unicorn_launcher -E production -c config/unicorn.conf.rb";
+      };
+    };
+
+    services.nginx = lib.mkIf cfg.nginx.enable {
+      enable = true;
+      additionalModules = [ pkgs.nginxModules.brotli ];
+
+      recommendedTlsSettings = true;
+      recommendedOptimisation = true;
+      recommendedGzipSettings = true;
+      recommendedProxySettings = true;
+
+      upstreams.discourse.servers."unix:/run/discourse/sockets/unicorn.sock" = {};
+
+      appendHttpConfig = ''
+        # inactive means we keep stuff around for 1440m minutes regardless of last access (1 week)
+        # levels means it is a 2 deep heirarchy cause we can have lots of files
+        # max_size limits the size of the cache
+        proxy_cache_path /var/cache/nginx inactive=1440m levels=1:2 keys_zone=discourse:10m max_size=600m;
+
+        # see: https://meta.discourse.org/t/x/74060
+        proxy_buffer_size 8k;
+      '';
+
+      virtualHosts.${cfg.hostname} = {
+        inherit (cfg) sslCertificate sslCertificateKey enableACME;
+        forceSSL = lib.mkDefault tlsEnabled;
+
+        root = "/run/discourse/public";
+
+        locations =
+          let
+            proxy = { extraConfig ? "" }: {
+              proxyPass = "http://discourse";
+              extraConfig = extraConfig + ''
+                proxy_set_header X-Request-Start "t=''${msec}";
+              '';
+            };
+            cache = time: ''
+              expires ${time};
+              add_header Cache-Control public,immutable;
+            '';
+            cache_1y = cache "1y";
+            cache_1d = cache "1d";
+          in
+            {
+              "/".tryFiles = "$uri @discourse";
+              "@discourse" = proxy {};
+              "^~ /backups/".extraConfig = ''
+                internal;
+              '';
+              "/favicon.ico" = {
+                return = "204";
+                extraConfig = ''
+                  access_log off;
+                  log_not_found off;
+                '';
+              };
+              "~ ^/uploads/short-url/" = proxy {};
+              "~ ^/secure-media-uploads/" = proxy {};
+              "~* (fonts|assets|plugins|uploads)/.*\.(eot|ttf|woff|woff2|ico|otf)$".extraConfig = cache_1y + ''
+                add_header Access-Control-Allow-Origin *;
+              '';
+              "/srv/status" = proxy {
+                extraConfig = ''
+                  access_log off;
+                  log_not_found off;
+                '';
+              };
+              "~ ^/javascripts/".extraConfig = cache_1d;
+              "~ ^/assets/(?<asset_path>.+)$".extraConfig = cache_1y + ''
+                # asset pipeline enables this
+                brotli_static on;
+                gzip_static on;
+              '';
+              "~ ^/plugins/".extraConfig = cache_1y;
+              "~ /images/emoji/".extraConfig = cache_1y;
+              "~ ^/uploads/" = proxy {
+                extraConfig = cache_1y + ''
+                  proxy_set_header X-Sendfile-Type X-Accel-Redirect;
+                  proxy_set_header X-Accel-Mapping /run/discourse/public/=/downloads/;
+
+                  # custom CSS
+                  location ~ /stylesheet-cache/ {
+                      try_files $uri =404;
+                  }
+                  # this allows us to bypass rails
+                  location ~* \.(gif|png|jpg|jpeg|bmp|tif|tiff|ico|webp)$ {
+                      try_files $uri =404;
+                  }
+                  # SVG needs an extra header attached
+                  location ~* \.(svg)$ {
+                  }
+                  # thumbnails & optimized images
+                  location ~ /_?optimized/ {
+                      try_files $uri =404;
+                  }
+                '';
+              };
+              "~ ^/admin/backups/" = proxy {
+                extraConfig = ''
+                  proxy_set_header X-Sendfile-Type X-Accel-Redirect;
+                  proxy_set_header X-Accel-Mapping /run/discourse/public/=/downloads/;
+                '';
+              };
+              "~ ^/(svg-sprite/|letter_avatar/|letter_avatar_proxy/|user_avatar|highlight-js|stylesheets|theme-javascripts|favicon/proxied|service-worker)" = proxy {
+                extraConfig = ''
+                  # if Set-Cookie is in the response nothing gets cached
+                  # this is double bad cause we are not passing last modified in
+                  proxy_ignore_headers "Set-Cookie";
+                  proxy_hide_header "Set-Cookie";
+                  proxy_hide_header "X-Discourse-Username";
+                  proxy_hide_header "X-Runtime";
+
+                  # note x-accel-redirect can not be used with proxy_cache
+                  proxy_cache discourse;
+                  proxy_cache_key "$scheme,$host,$request_uri";
+                  proxy_cache_valid 200 301 302 7d;
+                  proxy_cache_valid any 1m;
+                '';
+              };
+              "/message-bus/" = proxy {
+                extraConfig = ''
+                  proxy_http_version 1.1;
+                  proxy_buffering off;
+                '';
+              };
+              "/downloads/".extraConfig = ''
+                internal;
+                alias /run/discourse/public/;
+              '';
+            };
+      };
+    };
+
+    systemd.services.discourse-mail-receiver-setup = lib.mkIf cfg.mail.incoming.enable (
+      let
+        mail-receiver-environment = {
+          MAIL_DOMAIN = cfg.hostname;
+          DISCOURSE_BASE_URL = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostname}";
+          DISCOURSE_API_KEY = "@api-key@";
+          DISCOURSE_API_USERNAME = "system";
+        };
+        mail-receiver-json = json.generate "mail-receiver.json" mail-receiver-environment;
+      in
+        {
+          before = [ "postfix.service" ];
+          after = [ "discourse.service" ];
+          wantedBy = [ "discourse.service" ];
+          partOf = [ "discourse.service" ];
+          path = [
+            cfg.package.rake
+            pkgs.jq
+          ];
+          preStart = lib.optionalString (cfg.mail.incoming.apiKeyFile == null) ''
+            set -o errexit -o pipefail -o nounset -o errtrace
+            shopt -s inherit_errexit
+
+            if [[ ! -e /var/lib/discourse-mail-receiver/api_key ]]; then
+                discourse-rake api_key:create_master[email-receiver] >/var/lib/discourse-mail-receiver/api_key
+            fi
+          '';
+          script =
+            let
+              apiKeyPath =
+                if cfg.mail.incoming.apiKeyFile == null then
+                  "/var/lib/discourse-mail-receiver/api_key"
+                else
+                  cfg.mail.incoming.apiKeyFile;
+            in ''
+              set -o errexit -o pipefail -o nounset -o errtrace
+              shopt -s inherit_errexit
+
+              export api_key=$(<'${apiKeyPath}')
+
+              jq <${mail-receiver-json} \
+                 '.DISCOURSE_API_KEY = $ENV.api_key' \
+                 >'/run/discourse-mail-receiver/mail-receiver-environment.json'
+            '';
+
+          serviceConfig = {
+            Type = "oneshot";
+            RemainAfterExit = true;
+            RuntimeDirectory = "discourse-mail-receiver";
+            RuntimeDirectoryMode = "0700";
+            StateDirectory = "discourse-mail-receiver";
+            User = "discourse";
+            Group = "discourse";
+          };
+        });
+
+    services.discourse.siteSettings = {
+      required = {
+        notification_email = cfg.mail.notificationEmailAddress;
+        contact_email = cfg.mail.contactEmailAddress;
+      };
+      email = {
+        manual_polling_enabled = cfg.mail.incoming.enable;
+        reply_by_email_enabled = cfg.mail.incoming.enable;
+        reply_by_email_address = cfg.mail.incoming.replyEmailAddress;
+      };
+    };
+
+    services.postfix = lib.mkIf cfg.mail.incoming.enable {
+      enable = true;
+      sslCert = if cfg.sslCertificate != null then cfg.sslCertificate else "";
+      sslKey = if cfg.sslCertificateKey != null then cfg.sslCertificateKey else "";
+
+      origin = cfg.hostname;
+      relayDomains = [ cfg.hostname ];
+      config = {
+        smtpd_recipient_restrictions = "check_policy_service unix:private/discourse-policy";
+        append_dot_mydomain = lib.mkDefault false;
+        compatibility_level = "2";
+        smtputf8_enable = false;
+        smtpd_banner = lib.mkDefault "ESMTP server";
+        myhostname = lib.mkDefault cfg.hostname;
+        mydestination = lib.mkDefault "localhost";
+      };
+      transport = ''
+        ${cfg.hostname} discourse-mail-receiver:
+      '';
+      masterConfig = {
+        "discourse-mail-receiver" = {
+          type = "unix";
+          privileged = true;
+          chroot = false;
+          command = "pipe";
+          args = [
+            "user=discourse"
+            "argv=${cfg.mail.incoming.mailReceiverPackage}/bin/receive-mail"
+            "\${recipient}"
+          ];
+        };
+        "discourse-policy" = {
+          type = "unix";
+          privileged = true;
+          chroot = false;
+          command = "spawn";
+          args = [
+            "user=discourse"
+            "argv=${cfg.mail.incoming.mailReceiverPackage}/bin/discourse-smtp-fast-rejection"
+          ];
+        };
+      };
+    };
+
+    users.users = {
+      discourse = {
+        group = "discourse";
+        isSystemUser = true;
+      };
+    } // (lib.optionalAttrs cfg.nginx.enable {
+      ${config.services.nginx.user}.extraGroups = [ "discourse" ];
+    });
+
+    users.groups = {
+      discourse = {};
+    };
+
+    environment.systemPackages = [
+      cfg.package.rake
+    ];
+  };
+
+  meta.doc = ./discourse.xml;
+  meta.maintainers = [ lib.maintainers.talyz ];
+}
diff --git a/nixpkgs/nixos/modules/services/web-apps/discourse.xml b/nixpkgs/nixos/modules/services/web-apps/discourse.xml
new file mode 100644
index 000000000000..bae562423213
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/discourse.xml
@@ -0,0 +1,323 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="module-services-discourse">
+ <title>Discourse</title>
+ <para>
+   <link xlink:href="https://www.discourse.org/">Discourse</link> is a
+   modern and open source discussion platform.
+ </para>
+
+ <section xml:id="module-services-discourse-basic-usage">
+   <title>Basic usage</title>
+   <para>
+     A minimal configuration using Let's Encrypt for TLS certificates looks like this:
+<programlisting>
+services.discourse = {
+  <link linkend="opt-services.discourse.enable">enable</link> = true;
+  <link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
+  admin = {
+    <link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
+    <link linkend="opt-services.discourse.admin.username">username</link> = "admin";
+    <link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
+    <link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
+  };
+  <link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
+};
+<link linkend="opt-security.acme.email">security.acme.email</link> = "me@example.com";
+<link linkend="opt-security.acme.acceptTerms">security.acme.acceptTerms</link> = true;
+</programlisting>
+   </para>
+
+   <para>
+     Provided a proper DNS setup, you'll be able to connect to the
+     instance at <literal>discourse.example.com</literal> and log in
+     using the credentials provided in
+     <literal>services.discourse.admin</literal>.
+   </para>
+ </section>
+
+ <section xml:id="module-services-discourse-tls">
+   <title>Using a regular TLS certificate</title>
+   <para>
+     To set up TLS using a regular certificate and key on file, use
+     the <xref linkend="opt-services.discourse.sslCertificate" />
+     and <xref linkend="opt-services.discourse.sslCertificateKey" />
+     options:
+
+<programlisting>
+services.discourse = {
+  <link linkend="opt-services.discourse.enable">enable</link> = true;
+  <link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
+  <link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
+  <link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
+  admin = {
+    <link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
+    <link linkend="opt-services.discourse.admin.username">username</link> = "admin";
+    <link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
+    <link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
+  };
+  <link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
+};
+</programlisting>
+
+   </para>
+ </section>
+
+ <section xml:id="module-services-discourse-database">
+   <title>Database access</title>
+   <para>
+     <productname>Discourse</productname> uses
+     <productname>PostgreSQL</productname> to store most of its
+     data. A database will automatically be enabled and a database
+     and role created unless <xref
+     linkend="opt-services.discourse.database.host" /> is changed from
+     its default of <literal>null</literal> or <xref
+     linkend="opt-services.discourse.database.createLocally" /> is set
+     to <literal>false</literal>.
+   </para>
+
+   <para>
+     External database access can also be configured by setting
+     <xref linkend="opt-services.discourse.database.host" />, <xref
+     linkend="opt-services.discourse.database.username" /> and <xref
+     linkend="opt-services.discourse.database.passwordFile" /> as
+     appropriate. Note that you need to manually create a database
+     called <literal>discourse</literal> (or the name you chose in
+     <xref linkend="opt-services.discourse.database.name" />) and
+     allow the configured database user full access to it.
+   </para>
+ </section>
+
+ <section xml:id="module-services-discourse-mail">
+   <title>Email</title>
+   <para>
+     In addition to the basic setup, you'll want to configure an SMTP
+     server <productname>Discourse</productname> can use to send user
+     registration and password reset emails, among others. You can
+     also optionally let <productname>Discourse</productname> receive
+     email, which enables people to reply to threads and conversations
+     via email.
+   </para>
+
+   <para>
+     A basic setup which assumes you want to use your configured <link
+     linkend="opt-services.discourse.hostname">hostname</link> as
+     email domain can be done like this:
+
+<programlisting>
+services.discourse = {
+  <link linkend="opt-services.discourse.enable">enable</link> = true;
+  <link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
+  <link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
+  <link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
+  admin = {
+    <link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
+    <link linkend="opt-services.discourse.admin.username">username</link> = "admin";
+    <link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
+    <link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
+  };
+  mail.outgoing = {
+    <link linkend="opt-services.discourse.mail.outgoing.serverAddress">serverAddress</link> = "smtp.emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.port">port</link> = 587;
+    <link linkend="opt-services.discourse.mail.outgoing.username">username</link> = "user@emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.passwordFile">passwordFile</link> = "/path/to/smtp_password_file";
+  };
+  <link linkend="opt-services.discourse.mail.incoming.enable">mail.incoming.enable</link> = true;
+  <link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
+};
+</programlisting>
+
+     This assumes you have set up an MX record for the address you've
+     set in <link linkend="opt-services.discourse.hostname">hostname</link> and
+     requires proper SPF, DKIM and DMARC configuration to be done for
+     the domain you're sending from, in order for email to be reliably delivered.
+   </para>
+
+   <para>
+     If you want to use a different domain for your outgoing email
+     (for example <literal>example.com</literal> instead of
+     <literal>discourse.example.com</literal>) you should set
+     <xref linkend="opt-services.discourse.mail.notificationEmailAddress" /> and
+     <xref linkend="opt-services.discourse.mail.contactEmailAddress" /> manually.
+   </para>
+
+   <note>
+     <para>
+       Setup of TLS for incoming email is currently only configured
+       automatically when a regular TLS certificate is used, i.e. when
+       <xref linkend="opt-services.discourse.sslCertificate" /> and
+       <xref linkend="opt-services.discourse.sslCertificateKey" /> are
+       set.
+     </para>
+   </note>
+
+ </section>
+
+ <section xml:id="module-services-discourse-settings">
+   <title>Additional settings</title>
+   <para>
+     Additional site settings and backend settings, for which no
+     explicit <productname>NixOS</productname> options are provided,
+     can be set in <xref linkend="opt-services.discourse.siteSettings" /> and
+     <xref linkend="opt-services.discourse.backendSettings" /> respectively.
+   </para>
+
+   <section xml:id="module-services-discourse-site-settings">
+     <title>Site settings</title>
+     <para>
+       <quote>Site settings</quote> are the settings that can be
+       changed through the <productname>Discourse</productname>
+       UI. Their <emphasis>default</emphasis> values can be set using
+       <xref linkend="opt-services.discourse.siteSettings" />.
+     </para>
+
+     <para>
+       Settings are expressed as a Nix attribute set which matches the
+       structure of the configuration in
+       <link xlink:href="https://github.com/discourse/discourse/blob/master/config/site_settings.yml">config/site_settings.yml</link>.
+       To find a setting's path, you only need to care about the first
+       two levels; i.e. its category (e.g. <literal>login</literal>)
+       and name (e.g. <literal>invite_only</literal>).
+     </para>
+
+     <para>
+       Settings containing secret data should be set to an attribute
+       set containing the attribute <literal>_secret</literal> - a
+       string pointing to a file containing the value the option
+       should be set to. See the example.
+     </para>
+   </section>
+
+   <section xml:id="module-services-discourse-backend-settings">
+     <title>Backend settings</title>
+     <para>
+       Settings are expressed as a Nix attribute set which matches the
+       structure of the configuration in
+       <link xlink:href="https://github.com/discourse/discourse/blob/stable/config/discourse_defaults.conf">config/discourse.conf</link>.
+       Empty parameters can be defined by setting them to
+       <literal>null</literal>.
+     </para>
+   </section>
+
+   <section xml:id="module-services-discourse-settings-example">
+     <title>Example</title>
+     <para>
+       The following example sets the title and description of the
+       <productname>Discourse</productname> instance and enables
+       <productname>GitHub</productname> login in the site settings,
+       and changes a few request limits in the backend settings:
+<programlisting>
+services.discourse = {
+  <link linkend="opt-services.discourse.enable">enable</link> = true;
+  <link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
+  <link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
+  <link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
+  admin = {
+    <link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
+    <link linkend="opt-services.discourse.admin.username">username</link> = "admin";
+    <link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
+    <link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
+  };
+  mail.outgoing = {
+    <link linkend="opt-services.discourse.mail.outgoing.serverAddress">serverAddress</link> = "smtp.emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.port">port</link> = 587;
+    <link linkend="opt-services.discourse.mail.outgoing.username">username</link> = "user@emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.passwordFile">passwordFile</link> = "/path/to/smtp_password_file";
+  };
+  <link linkend="opt-services.discourse.mail.incoming.enable">mail.incoming.enable</link> = true;
+  <link linkend="opt-services.discourse.siteSettings">siteSettings</link> = {
+    required = {
+      title = "My Cats";
+      site_description = "Discuss My Cats (and be nice plz)";
+    };
+    login = {
+      enable_github_logins = true;
+      github_client_id = "a2f6dfe838cb3206ce20";
+      github_client_secret._secret = /run/keys/discourse_github_client_secret;
+    };
+  };
+  <link linkend="opt-services.discourse.backendSettings">backendSettings</link> = {
+    max_reqs_per_ip_per_minute = 300;
+    max_reqs_per_ip_per_10_seconds = 60;
+    max_asset_reqs_per_ip_per_10_seconds = 250;
+    max_reqs_per_ip_mode = "warn+block";
+  };
+  <link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
+};
+</programlisting>
+     </para>
+     <para>
+       In the resulting site settings file, the
+       <literal>login.github_client_secret</literal> key will be set
+       to the contents of the
+       <filename>/run/keys/discourse_github_client_secret</filename>
+       file.
+     </para>
+   </section>
+ </section>
+  <section xml:id="module-services-discourse-plugins">
+    <title>Plugins</title>
+    <para>
+      You can install <productname>Discourse</productname> plugins
+      using the <xref linkend="opt-services.discourse.plugins" />
+      option. As long as a plugin supports the standard install
+      method, packaging it should only require fetching its source
+      with an appropriate fetcher.
+    </para>
+
+    <para>
+      Some plugins provide <link
+      linkend="module-services-discourse-site-settings">site
+      settings</link>. Their defaults can be configured using <xref
+      linkend="opt-services.discourse.siteSettings" />, just like
+      regular site settings. To find the names of these settings, look
+      in the <literal>config/settings.yml</literal> file of the plugin
+      repo.
+    </para>
+
+    <para>
+      For example, to add the <link
+      xlink:href="https://github.com/discourse/discourse-spoiler-alert">discourse-spoiler-alert</link>
+      plugin and disable it by default:
+
+<programlisting>
+services.discourse = {
+  <link linkend="opt-services.discourse.enable">enable</link> = true;
+  <link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
+  <link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
+  <link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
+  admin = {
+    <link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
+    <link linkend="opt-services.discourse.admin.username">username</link> = "admin";
+    <link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
+    <link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
+  };
+  mail.outgoing = {
+    <link linkend="opt-services.discourse.mail.outgoing.serverAddress">serverAddress</link> = "smtp.emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.port">port</link> = 587;
+    <link linkend="opt-services.discourse.mail.outgoing.username">username</link> = "user@emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.passwordFile">passwordFile</link> = "/path/to/smtp_password_file";
+  };
+  <link linkend="opt-services.discourse.mail.incoming.enable">mail.incoming.enable</link> = true;
+  <link linkend="opt-services.discourse.mail.incoming.enable">plugins</link> = [
+    (pkgs.fetchFromGitHub {
+      owner = "discourse";
+      repo = "discourse-spoiler-alert";
+      rev = "e200cfa571d252cab63f3d30d619b370986e4cee";
+      sha256 = "0ya69ix5g77wz4c9x9gmng6l25ghb5xxlx3icr6jam16q14dzc33";
+    })
+  ];
+  <link linkend="opt-services.discourse.siteSettings">siteSettings</link> = {
+    plugins = {
+      spoiler_enabled = false;
+    };
+  };
+  <link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
+};
+</programlisting>
+
+    </para>
+  </section>
+</chapter>
diff --git a/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix b/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix
index 9567223ebc7b..685cb4967030 100644
--- a/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix
@@ -193,7 +193,7 @@ let
                 };
                 sourceRoot = ".";
                 # We need unzip to build this package
-                buildInputs = [ pkgs.unzip ];
+                nativeBuildInputs = [ pkgs.unzip ];
                 # Installing simply means copying all files to the output directory
                 installPhase = "mkdir -p $out; cp -R * $out/";
               };
@@ -220,7 +220,7 @@ let
                   sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6";
                 };
                 # We need unzip to build this package
-                buildInputs = [ pkgs.unzip ];
+                nativeBuildInputs = [ pkgs.unzip ];
                 # Installing simply means copying all files to the output directory
                 installPhase = "mkdir -p $out; cp -R * $out/";
               };
@@ -329,7 +329,7 @@ in
           extraConfig = "internal;";
         };
 
-        locations."~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = {
+        locations."~ ^/lib.*\\.(js|css|gif|png|ico|jpg|jpeg)$" = {
           extraConfig = "expires 365d;";
         };
 
@@ -349,7 +349,7 @@ in
           '';
         };
 
-        locations."~ \.php$" = {
+        locations."~ \\.php$" = {
           extraConfig = ''
               try_files $uri $uri/ /doku.php;
               include ${pkgs.nginx}/conf/fastcgi_params;
diff --git a/nixpkgs/nixos/modules/services/web-apps/galene.nix b/nixpkgs/nixos/modules/services/web-apps/galene.nix
index 769490e915ac..dd63857a55c8 100644
--- a/nixpkgs/nixos/modules/services/web-apps/galene.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/galene.nix
@@ -133,8 +133,10 @@ in
       wantedBy = [ "multi-user.target" ];
 
       preStart = ''
-        install -m 700 -o '${cfg.user}' -g '${cfg.group}' ${cfg.certFile} ${cfg.dataDir}/cert.pem
-        install -m 700 -o '${cfg.user}' -g '${cfg.group}' ${cfg.keyFile} ${cfg.dataDir}/key.pem
+        ${optionalString (cfg.insecure != true) ''
+           install -m 700 -o '${cfg.user}' -g '${cfg.group}' ${cfg.certFile} ${cfg.dataDir}/cert.pem
+           install -m 700 -o '${cfg.user}' -g '${cfg.group}' ${cfg.keyFile} ${cfg.dataDir}/key.pem
+        ''}
       '';
 
       serviceConfig = mkMerge [
diff --git a/nixpkgs/nixos/modules/services/web-apps/hledger-web.nix b/nixpkgs/nixos/modules/services/web-apps/hledger-web.nix
index 43fc4daa177f..a69767194c33 100644
--- a/nixpkgs/nixos/modules/services/web-apps/hledger-web.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/hledger-web.nix
@@ -26,19 +26,46 @@ in {
       '';
     };
 
-    capabilities = mkOption {
-      type = types.commas;
-      default = "view";
+    capabilities = {
+      view = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Enable the view capability.
+        '';
+      };
+      add = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Enable the add capability.
+        '';
+      };
+      manage = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Enable the manage capability.
+        '';
+      };
+    };
+
+    stateDir = mkOption {
+      type = types.path;
+      default = "/var/lib/hledger-web";
       description = ''
-        Enable the view, add, and/or manage capabilities. E.g. view,add
+        Path the service has access to. If left as the default value this
+        directory will automatically be created before the hledger-web server
+        starts, otherwise the sysadmin is responsible for ensuring the
+        directory exists with appropriate ownership and permissions.
       '';
     };
 
-    journalFile = mkOption {
-      type = types.path;
-      example = "/home/hledger/.hledger.journal";
+    journalFiles = mkOption {
+      type = types.listOf types.str;
+      default = [ ".hledger.journal" ];
       description = ''
-        Input journal file.
+        Paths to journal files relative to <option>services.hledger-web.stateDir</option>.
       '';
     };
 
@@ -50,28 +77,66 @@ in {
         Base URL, when sharing over a network.
       '';
     };
+
+    extraOptions = mkOption {
+      type = types.listOf types.str;
+      default = [];
+      example = [ "--forecast" ];
+      description = ''
+        Extra command line arguments to pass to hledger-web.
+      '';
+    };
+
   };
 
   config = mkIf cfg.enable {
-    systemd.services.hledger-web = {
+
+    users.users.hledger = {
+      name = "hledger";
+      group = "hledger";
+      isSystemUser = true;
+      home = cfg.stateDir;
+      useDefaultShell = true;
+    };
+
+    users.groups.hledger = {};
+
+    systemd.services.hledger-web = let
+      capabilityString = with cfg.capabilities; concatStringsSep "," (
+        (optional view "view")
+        ++ (optional add "add")
+        ++ (optional manage "manage")
+      );
+      serverArgs = with cfg; escapeShellArgs ([
+        "--serve"
+        "--host=${host}"
+        "--port=${toString port}"
+        "--capabilities=${capabilityString}"
+        (optionalString (cfg.baseUrl != null) "--base-url=${cfg.baseUrl}")
+        (optionalString (cfg.serveApi) "--serve-api")
+      ] ++ (map (f: "--file=${stateDir}/${f}") cfg.journalFiles)
+        ++ extraOptions);
+    in {
       description = "hledger-web - web-app for the hledger accounting tool.";
       documentation = [ https://hledger.org/hledger-web.html ];
       wantedBy = [ "multi-user.target" ];
       after = [ "networking.target" ];
-      serviceConfig = {
-        ExecStart = ''
-          ${pkgs.hledger-web}/bin/hledger-web \
-          --host=${cfg.host} \
-          --port=${toString cfg.port} \
-          --file=${cfg.journalFile}  \
-          "--capabilities=${cfg.capabilities}" \
-          ${optionalString (cfg.baseUrl != null) "--base-url=${cfg.baseUrl}"} \
-          ${optionalString (cfg.serveApi) "--serve-api"}
-        '';
-        Restart = "always";
-      };
+      serviceConfig = mkMerge [
+        {
+          ExecStart = "${pkgs.hledger-web}/bin/hledger-web ${serverArgs}";
+          Restart = "always";
+          WorkingDirectory = cfg.stateDir;
+          User = "hledger";
+          Group = "hledger";
+          PrivateTmp = true;
+        }
+        (mkIf (cfg.stateDir == "/var/lib/hledger-web") {
+          StateDirectory = "hledger-web";
+        })
+      ];
     };
+
   };
 
-  meta.maintainers = with lib.maintainers; [ marijanp ];
+  meta.maintainers = with lib.maintainers; [ marijanp erictapen ];
 }
diff --git a/nixpkgs/nixos/modules/services/web-apps/mastodon.nix b/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
index 92b1be963bf7..16e8ae2ec0b2 100644
--- a/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
@@ -25,10 +25,52 @@ let
     ES_ENABLED = if (cfg.elasticsearch.host != null) then "true" else "false";
     ES_HOST = cfg.elasticsearch.host;
     ES_PORT = toString(cfg.elasticsearch.port);
+
+    TRUSTED_PROXY_IP = cfg.trustedProxy;
   }
   // (if cfg.smtp.authenticate then { SMTP_LOGIN  = cfg.smtp.user; } else {})
   // cfg.extraConfig;
 
+  cfgService = {
+    # User and group
+    User = cfg.user;
+    Group = cfg.group;
+    # State directory and mode
+    StateDirectory = "mastodon";
+    StateDirectoryMode = "0750";
+    # Logs directory and mode
+    LogsDirectory = "mastodon";
+    LogsDirectoryMode = "0750";
+    # Access write directories
+    UMask = "0027";
+    # Capabilities
+    CapabilityBoundingSet = "";
+    # Security
+    NoNewPrivileges = true;
+    # Sandboxing
+    ProtectSystem = "strict";
+    ProtectHome = true;
+    PrivateTmp = true;
+    PrivateDevices = true;
+    PrivateUsers = true;
+    ProtectClock = true;
+    ProtectHostname = true;
+    ProtectKernelLogs = true;
+    ProtectKernelModules = true;
+    ProtectKernelTunables = true;
+    ProtectControlGroups = true;
+    RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ];
+    RestrictNamespaces = true;
+    LockPersonality = true;
+    MemoryDenyWriteExecute = false;
+    RestrictRealtime = true;
+    RestrictSUIDSGID = true;
+    PrivateMounts = true;
+    # System Call Filtering
+    SystemCallArchitectures = "native";
+    SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @module @mount @obsolete @reboot @resources @setuid @swap";
+  };
+
   envFile = pkgs.writeText "mastodon.env" (lib.concatMapStrings (s: s + "\n") (
     (lib.concatLists (lib.mapAttrsToList (name: value:
       if value != null then [
@@ -93,7 +135,6 @@ in {
       group = lib.mkOption {
         description = ''
           Group under which mastodon runs.
-          If it is set to "mastodon", a group will be created.
         '';
         type = lib.types.str;
         default = "mastodon";
@@ -179,6 +220,26 @@ in {
         type = lib.types.str;
       };
 
+      trustedProxy = lib.mkOption {
+        description = ''
+          You need to set it to the IP from which your reverse proxy sends requests to Mastodon's web process,
+          otherwise Mastodon will record the reverse proxy's own IP as the IP of all requests, which would be
+          bad because IP addresses are used for important rate limits and security functions.
+        '';
+        type = lib.types.str;
+        default = "127.0.0.1";
+      };
+
+      enableUnixSocket = lib.mkOption {
+        description = ''
+          Instead of binding to an IP address like 127.0.0.1, you may bind to a Unix socket. This variable
+          is process-specific, e.g. you need different values for every process, and it works for both web (Puma)
+          processes and streaming API (Node.js) processes.
+        '';
+        type = lib.types.bool;
+        default = true;
+      };
+
       redis = {
         createLocally = lib.mkOption {
           description = "Configure local Redis server for Mastodon.";
@@ -370,19 +431,16 @@ in {
       environment = env;
       serviceConfig = {
         Type = "oneshot";
-        User = cfg.user;
-        Group = cfg.group;
         WorkingDirectory = cfg.package;
-        LogsDirectory = "mastodon";
-        StateDirectory = "mastodon";
-      };
+      } // cfgService;
+
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
     };
 
     systemd.services.mastodon-init-db = lib.mkIf cfg.automaticMigrations {
       script = ''
-        if [ `psql mastodon -c \
+        if [ `psql ${cfg.database.name} -c \
                 "select count(*) from pg_class c \
                 join pg_namespace s on s.oid = c.relnamespace \
                 where s.nspname not in ('pg_catalog', 'pg_toast', 'information_schema') \
@@ -397,14 +455,9 @@ in {
       environment = env;
       serviceConfig = {
         Type = "oneshot";
-        User = cfg.user;
-        Group = cfg.group;
         EnvironmentFile = "/var/lib/mastodon/.secrets_env";
-        PrivateTmp = true;
-        LogsDirectory = "mastodon";
-        StateDirectory = "mastodon";
         WorkingDirectory = cfg.package;
-      };
+      } // cfgService;
       after = [ "mastodon-init-dirs.service" "network.target" ] ++ (if databaseActuallyCreateLocally then [ "postgresql.service" ] else []);
       wantedBy = [ "multi-user.target" ];
     };
@@ -415,21 +468,20 @@ in {
         ++ (if cfg.automaticMigrations then [ "mastodon-init-db.service" ] else [ "mastodon-init-dirs.service" ]);
       description = "Mastodon streaming";
       wantedBy = [ "multi-user.target" ];
-      environment = env // {
-        PORT = toString(cfg.streamingPort);
-      };
+      environment = env // (if cfg.enableUnixSocket
+        then { SOCKET = "/run/mastodon-streaming/streaming.socket"; }
+        else { PORT = toString(cfg.streamingPort); }
+      );
       serviceConfig = {
-        ExecStart = "${pkgs.nodejs-slim}/bin/node streaming";
+        ExecStart = "${cfg.package}/run-streaming.sh";
         Restart = "always";
         RestartSec = 20;
-        User = cfg.user;
-        Group = cfg.group;
-        WorkingDirectory = cfg.package;
         EnvironmentFile = "/var/lib/mastodon/.secrets_env";
-        PrivateTmp = true;
-        LogsDirectory = "mastodon";
-        StateDirectory = "mastodon";
-      };
+        WorkingDirectory = cfg.package;
+        # Runtime directory and mode
+        RuntimeDirectory = "mastodon-streaming";
+        RuntimeDirectoryMode = "0750";
+      } // cfgService;
     };
 
     systemd.services.mastodon-web = {
@@ -438,21 +490,20 @@ in {
         ++ (if cfg.automaticMigrations then [ "mastodon-init-db.service" ] else [ "mastodon-init-dirs.service" ]);
       description = "Mastodon web";
       wantedBy = [ "multi-user.target" ];
-      environment = env // {
-        PORT = toString(cfg.webPort);
-      };
+      environment = env // (if cfg.enableUnixSocket
+        then { SOCKET = "/run/mastodon-web/web.socket"; }
+        else { PORT = toString(cfg.webPort); }
+      );
       serviceConfig = {
         ExecStart = "${cfg.package}/bin/puma -C config/puma.rb";
         Restart = "always";
         RestartSec = 20;
-        User = cfg.user;
-        Group = cfg.group;
-        WorkingDirectory = cfg.package;
         EnvironmentFile = "/var/lib/mastodon/.secrets_env";
-        PrivateTmp = true;
-        LogsDirectory = "mastodon";
-        StateDirectory = "mastodon";
-      };
+        WorkingDirectory = cfg.package;
+        # Runtime directory and mode
+        RuntimeDirectory = "mastodon-web";
+        RuntimeDirectoryMode = "0750";
+      } // cfgService;
       path = with pkgs; [ file imagemagick ffmpeg ];
     };
 
@@ -469,14 +520,9 @@ in {
         ExecStart = "${cfg.package}/bin/sidekiq -c 25 -r ${cfg.package}";
         Restart = "always";
         RestartSec = 20;
-        User = cfg.user;
-        Group = cfg.group;
-        WorkingDirectory = cfg.package;
         EnvironmentFile = "/var/lib/mastodon/.secrets_env";
-        PrivateTmp = true;
-        LogsDirectory = "mastodon";
-        StateDirectory = "mastodon";
-      };
+        WorkingDirectory = cfg.package;
+      } // cfgService;
       path = with pkgs; [ file imagemagick ffmpeg ];
     };
 
@@ -495,12 +541,12 @@ in {
         };
 
         locations."@proxy" = {
-          proxyPass = "http://127.0.0.1:${toString(cfg.webPort)}";
+          proxyPass = (if cfg.enableUnixSocket then "http://unix:/run/mastodon-web/web.socket" else "http://127.0.0.1:${toString(cfg.webPort)}");
           proxyWebsockets = true;
         };
 
         locations."/api/v1/streaming/" = {
-          proxyPass = "http://127.0.0.1:${toString(cfg.streamingPort)}/";
+          proxyPass = (if cfg.enableUnixSocket then "http://unix:/run/mastodon-streaming/streaming.socket" else "http://127.0.0.1:${toString(cfg.streamingPort)}/");
           proxyWebsockets = true;
         };
       };
@@ -534,7 +580,7 @@ in {
       (lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package mastodonEnv ])
     ];
 
-    users.groups.mastodon = lib.mkIf (cfg.group == "mastodon") { };
+    users.groups.${cfg.group}.members = lib.optional cfg.configureNginx config.services.nginx.user;
   };
 
   meta.maintainers = with lib.maintainers; [ happy-river erictapen ];
diff --git a/nixpkgs/nixos/modules/services/web-apps/miniflux.nix b/nixpkgs/nixos/modules/services/web-apps/miniflux.nix
index 304712d0efc3..01710b1bd59c 100644
--- a/nixpkgs/nixos/modules/services/web-apps/miniflux.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/miniflux.nix
@@ -14,17 +14,16 @@ let
     ADMIN_PASSWORD=password
   '';
 
-  pgsu = "${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser}";
   pgbin = "${config.services.postgresql.package}/bin";
   preStart = pkgs.writeScript "miniflux-pre-start" ''
     #!${pkgs.runtimeShell}
     db_exists() {
-      [ "$(${pgsu} ${pgbin}/psql -Atc "select 1 from pg_database where datname='$1'")" == "1" ]
+      [ "$(${pgbin}/psql -Atc "select 1 from pg_database where datname='$1'")" == "1" ]
     }
     if ! db_exists "${dbName}"; then
-      ${pgsu} ${pgbin}/psql postgres -c "CREATE ROLE ${dbUser} WITH LOGIN NOCREATEDB NOCREATEROLE ENCRYPTED PASSWORD '${dbPassword}'"
-      ${pgsu} ${pgbin}/createdb --owner "${dbUser}" "${dbName}"
-      ${pgsu} ${pgbin}/psql "${dbName}" -c "CREATE EXTENSION IF NOT EXISTS hstore"
+      ${pgbin}/psql postgres -c "CREATE ROLE ${dbUser} WITH LOGIN NOCREATEDB NOCREATEROLE ENCRYPTED PASSWORD '${dbPassword}'"
+      ${pgbin}/createdb --owner "${dbUser}" "${dbName}"
+      ${pgbin}/psql "${dbName}" -c "CREATE EXTENSION IF NOT EXISTS hstore"
     fi
   '';
 in
@@ -44,7 +43,7 @@ in
         '';
         description = ''
           Configuration for Miniflux, refer to
-          <link xlink:href="http://docs.miniflux.app/en/latest/configuration.html"/>
+          <link xlink:href="https://miniflux.app/docs/configuration.html"/>
           for documentation on the supported values.
         '';
       };
@@ -73,15 +72,26 @@ in
 
     services.postgresql.enable = true;
 
+    systemd.services.miniflux-dbsetup = {
+      description = "Miniflux database setup";
+      wantedBy = [ "multi-user.target" ];
+      requires = [ "postgresql.service" ];
+      after = [ "network.target" "postgresql.service" ];
+      serviceConfig = {
+        Type = "oneshot";
+        User = config.services.postgresql.superUser;
+        ExecStart = preStart;
+      };
+    };
+
     systemd.services.miniflux = {
       description = "Miniflux service";
       wantedBy = [ "multi-user.target" ];
       requires = [ "postgresql.service" ];
-      after = [ "network.target" "postgresql.service" ];
+      after = [ "network.target" "postgresql.service" "miniflux-dbsetup.service" ];
 
       serviceConfig = {
         ExecStart = "${pkgs.miniflux}/bin/miniflux";
-        ExecStartPre = "+${preStart}";
         DynamicUser = true;
         RuntimeDirectory = "miniflux";
         RuntimeDirectoryMode = "0700";
diff --git a/nixpkgs/nixos/modules/services/web-apps/moinmoin.nix b/nixpkgs/nixos/modules/services/web-apps/moinmoin.nix
index 3a876f75f4a4..7a54255a46ef 100644
--- a/nixpkgs/nixos/modules/services/web-apps/moinmoin.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/moinmoin.nix
@@ -211,7 +211,7 @@ in
             environment = let
               penv = python.buildEnv.override {
                 # setuptools: https://github.com/benoitc/gunicorn/issues/1716
-                extraLibs = [ python.pkgs.gevent python.pkgs.setuptools pkg ];
+                extraLibs = [ python.pkgs.eventlet python.pkgs.setuptools pkg ];
               };
             in {
               PYTHONPATH = "${dataDir}/${wikiIdent}/config:${penv}/${python.sitePackages}";
@@ -233,7 +233,7 @@ in
               ExecStart = ''${python.pkgs.gunicorn}/bin/gunicorn moin_wsgi \
                 --name gunicorn-${wikiIdent} \
                 --workers ${toString cfg.gunicorn.workers} \
-                --worker-class gevent \
+                --worker-class eventlet \
                 --bind unix:/run/moin/${wikiIdent}/gunicorn.sock
               '';
 
diff --git a/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix b/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
index 60d403553352..9a541aba6e43 100644
--- a/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
@@ -10,7 +10,7 @@ let
     extensions = { enabled, all }:
       (with all;
         enabled
-        ++ [ imagick ] # Always enabled
+        ++ optional (!cfg.disableImagemagick) imagick
         # Optionally enabled depending on caching settings
         ++ optional cfg.caching.apcu apcu
         ++ optional cfg.caching.redis redis
@@ -28,7 +28,10 @@ let
     upload_max_filesize = cfg.maxUploadSize;
     post_max_size = cfg.maxUploadSize;
     memory_limit = cfg.maxUploadSize;
-  } // cfg.phpOptions;
+  } // cfg.phpOptions
+    // optionalAttrs cfg.caching.apcu {
+      "apc.enable_cli" = "1";
+    };
 
   occ = pkgs.writeScriptBin "nextcloud-occ" ''
     #! ${pkgs.runtimeShell}
@@ -86,7 +89,7 @@ in {
     package = mkOption {
       type = types.package;
       description = "Which package to use for the Nextcloud instance.";
-      relatedPackages = [ "nextcloud18" "nextcloud19" "nextcloud20" ];
+      relatedPackages = [ "nextcloud19" "nextcloud20" "nextcloud21" ];
     };
 
     maxUploadSize = mkOption {
@@ -280,6 +283,36 @@ in {
           may be served via HTTPS.
         '';
       };
+
+      defaultPhoneRegion = mkOption {
+        default = null;
+        type = types.nullOr types.str;
+        example = "DE";
+        description = ''
+          <warning>
+           <para>This option exists since Nextcloud 21! If older versions are used,
+            this will throw an eval-error!</para>
+          </warning>
+
+          <link xlink:href="https://www.iso.org/iso-3166-country-codes.html">ISO 3611-1</link>
+          country codes for automatic phone-number detection without a country code.
+
+          With e.g. <literal>DE</literal> set, the <literal>+49</literal> can be omitted for
+          phone-numbers.
+        '';
+      };
+    };
+
+    disableImagemagick = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to not load the ImageMagick module into PHP.
+        This is used by the theming app and for generating previews of certain images (e.g. SVG and HEIF).
+        You may want to disable it for increased security. In that case, previews will still be available
+        for some images (e.g. JPEG and PNG).
+        See https://github.com/nextcloud/server/issues/13099
+      '';
     };
 
     caching = {
@@ -345,10 +378,13 @@ in {
             && !(acfg.adminpass != null && acfg.adminpassFile != null));
           message = "Please specify exactly one of adminpass or adminpassFile";
         }
+        { assertion = versionOlder cfg.package.version "21" -> cfg.config.defaultPhoneRegion == null;
+          message = "The `defaultPhoneRegion'-setting is only supported for Nextcloud >=21!";
+        }
       ];
 
       warnings = let
-        latest = 20;
+        latest = 21;
         upgradeWarning = major: nixos:
           ''
             A legacy Nextcloud install (from before NixOS ${nixos}) may be installed.
@@ -366,9 +402,9 @@ in {
           Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release.
           Please migrate your configuration to config.services.nextcloud.poolSettings.
         '')
-        ++ (optional (versionOlder cfg.package.version "18") (upgradeWarning 17 "20.03"))
         ++ (optional (versionOlder cfg.package.version "19") (upgradeWarning 18 "20.09"))
-        ++ (optional (versionOlder cfg.package.version "20") (upgradeWarning 19 "21.05"));
+        ++ (optional (versionOlder cfg.package.version "20") (upgradeWarning 19 "21.05"))
+        ++ (optional (versionOlder cfg.package.version "21") (upgradeWarning 20 "21.05"));
 
       services.nextcloud.package = with pkgs;
         mkDefault (
@@ -378,14 +414,13 @@ in {
               nextcloud defined in an overlay, please set `services.nextcloud.package` to
               `pkgs.nextcloud`.
             ''
-          else if versionOlder stateVersion "20.03" then nextcloud17
           else if versionOlder stateVersion "20.09" then nextcloud18
           # 21.03 will not be an official release - it was instead 21.05.
           # This versionOlder statement remains set to 21.03 for backwards compatibility.
           # See https://github.com/NixOS/nixpkgs/pull/108899 and
           # https://github.com/NixOS/rfcs/blob/master/rfcs/0080-nixos-release-schedule.md.
           else if versionOlder stateVersion "21.03" then nextcloud19
-          else nextcloud20
+          else nextcloud21
         );
     }
 
@@ -443,6 +478,7 @@ in {
               'dbtype' => '${c.dbtype}',
               'trusted_domains' => ${writePhpArrary ([ cfg.hostName ] ++ c.extraTrustedDomains)},
               'trusted_proxies' => ${writePhpArrary (c.trustedProxies)},
+              ${optionalString (c.defaultPhoneRegion != null) "'default_phone_region' => '${c.defaultPhoneRegion}',"}
             ];
           '';
           occInstallCmd = let
@@ -591,6 +627,14 @@ in {
               access_log off;
             '';
           };
+          "= /" = {
+            priority = 100;
+            extraConfig = ''
+              if ( $http_user_agent ~ ^DavClnt ) {
+                return 302 /remote.php/webdav/$is_args$args;
+              }
+            '';
+          };
           "/" = {
             priority = 900;
             extraConfig = "rewrite ^ /index.php;";
@@ -602,11 +646,15 @@ in {
           "^~ /.well-known" = {
             priority = 210;
             extraConfig = ''
+              absolute_redirect off;
               location = /.well-known/carddav {
-                return 301 $scheme://$host/remote.php/dav;
+                return 301 /remote.php/dav;
               }
               location = /.well-known/caldav {
-                return 301 $scheme://$host/remote.php/dav;
+                return 301 /remote.php/dav;
+              }
+              location ~ ^/\.well-known/(?!acme-challenge|pki-validation) {
+                return 301 /index.php$request_uri;
               }
               try_files $uri $uri/ =404;
             '';
@@ -614,7 +662,7 @@ in {
           "~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)".extraConfig = ''
             return 404;
           '';
-          "~ ^/(?:\\.|autotest|occ|issue|indie|db_|console)".extraConfig = ''
+          "~ ^/(?:\\.(?!well-known)|autotest|occ|issue|indie|db_|console)".extraConfig = ''
             return 404;
           '';
           "~ ^\\/(?:index|remote|public|cron|core\\/ajax\\/update|status|ocs\\/v[12]|updater\\/.+|oc[ms]-provider\\/.+|.+\\/richdocumentscode\\/proxy)\\.php(?:$|\\/)" = {
diff --git a/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml b/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml
index 6cbfda118c4f..83a6f68edcbf 100644
--- a/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml
+++ b/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml
@@ -11,7 +11,7 @@
   desktop client is packaged at <literal>pkgs.nextcloud-client</literal>.
  </para>
  <para>
-  The current default by NixOS is <package>nextcloud20</package> which is also the latest
+  The current default by NixOS is <package>nextcloud21</package> which is also the latest
   major version available.
  </para>
  <section xml:id="module-services-nextcloud-basic-usage">
diff --git a/nixpkgs/nixos/modules/services/web-apps/shiori.nix b/nixpkgs/nixos/modules/services/web-apps/shiori.nix
index 9083ddfa2206..8f96dd9b5dd7 100644
--- a/nixpkgs/nixos/modules/services/web-apps/shiori.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/shiori.nix
@@ -87,8 +87,8 @@ in {
         SystemCallFilter = [
           "@system-service"
 
-          "~@chown" "~@cpu-emulation" "~@debug" "~@ipc" "~@keyring" "~@memlock"
-          "~@module" "~@obsolete" "~@privileged" "~@process" "~@raw-io"
+          "~@chown" "~@cpu-emulation" "~@debug" "~@keyring" "~@memlock"
+          "~@module" "~@obsolete" "~@privileged" "~@raw-io"
           "~@resources" "~@setuid"
         ];
       };
diff --git a/nixpkgs/nixos/modules/services/web-apps/whitebophir.nix b/nixpkgs/nixos/modules/services/web-apps/whitebophir.nix
index a19812547c44..b265296d5c1e 100644
--- a/nixpkgs/nixos/modules/services/web-apps/whitebophir.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/whitebophir.nix
@@ -16,6 +16,12 @@ in {
         description = "Whitebophir package to use.";
       };
 
+      listenAddress = mkOption {
+        type = types.str;
+        default = "0.0.0.0";
+        description = "Address to listen on (use 0.0.0.0 to allow access from any address).";
+      };
+
       port = mkOption {
         type = types.port;
         default = 5001;
@@ -30,7 +36,8 @@ in {
       wantedBy    = [ "multi-user.target" ];
       after       = [ "network.target" ];
       environment = {
-        PORT            = "${toString cfg.port}";
+        PORT            = toString cfg.port;
+        HOST            = toString cfg.listenAddress;
         WBO_HISTORY_DIR = "/var/lib/whitebophir";
       };
 
diff --git a/nixpkgs/nixos/modules/services/web-apps/wiki-js.nix b/nixpkgs/nixos/modules/services/web-apps/wiki-js.nix
new file mode 100644
index 000000000000..1a6259dffeef
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/wiki-js.nix
@@ -0,0 +1,139 @@
+{ lib, pkgs, config, ... }:
+
+with lib;
+
+let
+  cfg = config.services.wiki-js;
+
+  format = pkgs.formats.json { };
+
+  configFile = format.generate "wiki-js.yml" cfg.settings;
+in {
+  options.services.wiki-js = {
+    enable = mkEnableOption "wiki-js";
+
+    environmentFile = mkOption {
+      type = types.nullOr types.path;
+      default = null;
+      example = "/root/wiki-js.env";
+      description = ''
+        Environment fiel to inject e.g. secrets into the configuration.
+      '';
+    };
+
+    stateDirectoryName = mkOption {
+      default = "wiki-js";
+      type = types.str;
+      description = ''
+        Name of the directory in <filename>/var/lib</filename>.
+      '';
+    };
+
+    settings = mkOption {
+      default = {};
+      type = types.submodule {
+        freeformType = format.type;
+        options = {
+          port = mkOption {
+            type = types.port;
+            default = 3000;
+            description = ''
+              TCP port the process should listen to.
+            '';
+          };
+
+          bindIP = mkOption {
+            default = "0.0.0.0";
+            type = types.str;
+            description = ''
+              IPs the service should listen to.
+            '';
+          };
+
+          db = {
+            type = mkOption {
+              default = "postgres";
+              type = types.enum [ "postgres" "mysql" "mariadb" "mssql" ];
+              description = ''
+                Database driver to use for persistence. Please note that <literal>sqlite</literal>
+                is currently not supported as the build process for it is currently not implemented
+                in <package>pkgs.wiki-js</package> and it's not recommended by upstream for
+                production use.
+              '';
+            };
+            host = mkOption {
+              type = types.str;
+              example = "/run/postgresql";
+              description = ''
+                Hostname or socket-path to connect to.
+              '';
+            };
+            db = mkOption {
+              default = "wiki";
+              type = types.str;
+              description = ''
+                Name of the database to use.
+              '';
+            };
+          };
+
+          logLevel = mkOption {
+            default = "info";
+            type = types.enum [ "error" "warn" "info" "verbose" "debug" "silly" ];
+            description = ''
+              Define how much detail is supposed to be logged at runtime.
+            '';
+          };
+
+          offline = mkEnableOption "offline mode" // {
+            description = ''
+              Disable latest file updates and enable
+              <link xlink:href="https://docs.requarks.io/install/sideload">sideloading</link>.
+            '';
+          };
+        };
+      };
+      description = ''
+        Settings to configure <package>wiki-js</package>. This directly
+        corresponds to <link xlink:href="https://docs.requarks.io/install/config">the upstream
+        configuration options</link>.
+
+        Secrets can be injected via the environment by
+        <itemizedlist>
+          <listitem><para>specifying <xref linkend="opt-services.wiki-js.environmentFile" />
+          to contain secrets</para></listitem>
+          <listitem><para>and setting sensitive values to <literal>$(ENVIRONMENT_VAR)</literal>
+          with this value defined in the environment-file.</para></listitem>
+        </itemizedlist>
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.wiki-js.settings.dataPath = "/var/lib/${cfg.stateDirectoryName}";
+    systemd.services.wiki-js = {
+      description = "A modern and powerful wiki app built on Node.js";
+      documentation = [ "https://docs.requarks.io/" ];
+      wantedBy = [ "multi-user.target" ];
+
+      path = with pkgs; [ coreutils ];
+      preStart = ''
+        ln -sf ${configFile} /var/lib/${cfg.stateDirectoryName}/config.yml
+        ln -sf ${pkgs.wiki-js}/server /var/lib/${cfg.stateDirectoryName}
+        ln -sf ${pkgs.wiki-js}/assets /var/lib/${cfg.stateDirectoryName}
+        ln -sf ${pkgs.wiki-js}/package.json /var/lib/${cfg.stateDirectoryName}/package.json
+      '';
+
+      serviceConfig = {
+        EnvironmentFile = mkIf (cfg.environmentFile != null) cfg.environmentFile;
+        StateDirectory = cfg.stateDirectoryName;
+        WorkingDirectory = "/var/lib/${cfg.stateDirectoryName}";
+        DynamicUser = true;
+        PrivateTmp = true;
+        ExecStart = "${pkgs.nodejs}/bin/node ${pkgs.wiki-js}/server";
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ ma27 ];
+}
diff --git a/nixpkgs/nixos/modules/services/web-apps/wordpress.nix b/nixpkgs/nixos/modules/services/web-apps/wordpress.nix
index 5fbe53221ae8..f251cfe32db6 100644
--- a/nixpkgs/nixos/modules/services/web-apps/wordpress.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/wordpress.nix
@@ -109,7 +109,7 @@ let
                 sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd";
               };
               # We need unzip to build this package
-              buildInputs = [ pkgs.unzip ];
+              nativeBuildInputs = [ pkgs.unzip ];
               # Installing simply means copying all files to the output directory
               installPhase = "mkdir -p $out; cp -R * $out/";
             };
@@ -136,7 +136,7 @@ let
                 sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3";
               };
               # We need unzip to build this package
-              buildInputs = [ pkgs.unzip ];
+              nativeBuildInputs = [ pkgs.unzip ];
               # Installing simply means copying all files to the output directory
               installPhase = "mkdir -p $out; cp -R * $out/";
             };
diff --git a/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
index 7f50b8fd8d44..b2bb5055cd4c 100644
--- a/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -22,7 +22,9 @@ let
 
   php = cfg.phpPackage.override { apacheHttpd = pkg; };
 
-  phpMajorVersion = lib.versions.major (lib.getVersion php);
+  phpModuleName = let
+    majorVersion = lib.versions.major (lib.getVersion php);
+  in (if majorVersion == "8" then "php" else "php${majorVersion}");
 
   mod_perl = pkgs.apacheHttpdPackages.mod_perl.override { apacheHttpd = pkg; };
 
@@ -63,7 +65,7 @@ let
     ++ optional enableSSL "ssl"
     ++ optional enableUserDir "userdir"
     ++ optional cfg.enableMellon { name = "auth_mellon"; path = "${pkgs.apacheHttpdPackages.mod_auth_mellon}/modules/mod_auth_mellon.so"; }
-    ++ optional cfg.enablePHP { name = "php${phpMajorVersion}"; path = "${php}/modules/libphp${phpMajorVersion}.so"; }
+    ++ optional cfg.enablePHP { name = phpModuleName; path = "${php}/modules/lib${phpModuleName}.so"; }
     ++ optional cfg.enablePerl { name = "perl"; path = "${mod_perl}/modules/mod_perl.so"; }
     ++ cfg.extraModules;
 
diff --git a/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix b/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
index fa8614e8ec17..52fcce6d17b4 100644
--- a/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
@@ -154,9 +154,9 @@ let
 
       ${optionalString (cfg.recommendedProxySettings) ''
         proxy_redirect          off;
-        proxy_connect_timeout   90;
-        proxy_send_timeout      90;
-        proxy_read_timeout      90;
+        proxy_connect_timeout   60;
+        proxy_send_timeout      60;
+        proxy_read_timeout      60;
         proxy_http_version      1.0;
         include ${recommendedProxyConfig};
       ''}
@@ -397,6 +397,9 @@ in
         default = pkgs.nginxStable;
         defaultText = "pkgs.nginxStable";
         type = types.package;
+        apply = p: p.override {
+          modules = p.modules ++ cfg.additionalModules;
+        };
         description = "
           Nginx package to use. This defaults to the stable version. Note
           that the nginx team recommends to use the mainline version which
@@ -404,6 +407,17 @@ in
         ";
       };
 
+      additionalModules = mkOption {
+        default = [];
+        type = types.listOf (types.attrsOf types.anything);
+        example = literalExample "[ pkgs.nginxModules.brotli ]";
+        description = ''
+          Additional <link xlink:href="https://www.nginx.com/resources/wiki/modules/">third-party nginx modules</link>
+          to install. Packaged modules are available in
+          <literal>pkgs.nginxModules</literal>.
+        '';
+      };
+
       logError = mkOption {
         default = "stderr";
         type = types.str;
@@ -804,7 +818,7 @@ in
         ProtectControlGroups = true;
         RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
         LockPersonality = true;
-        MemoryDenyWriteExecute = !(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) pkgs.nginx.modules);
+        MemoryDenyWriteExecute = !(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) (optionals (cfg.package ? modules) cfg.package.modules));
         RestrictRealtime = true;
         RestrictSUIDSGID = true;
         PrivateMounts = true;
diff --git a/nixpkgs/nixos/modules/services/web-servers/pomerium.nix b/nixpkgs/nixos/modules/services/web-servers/pomerium.nix
new file mode 100644
index 000000000000..2bc7d01c7c28
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-servers/pomerium.nix
@@ -0,0 +1,131 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  format = pkgs.formats.yaml {};
+in
+{
+  options.services.pomerium = {
+    enable = mkEnableOption "the Pomerium authenticating reverse proxy";
+
+    configFile = mkOption {
+      type = with types; nullOr path;
+      default = null;
+      description = "Path to Pomerium config YAML. If set, overrides services.pomerium.settings.";
+    };
+
+    useACMEHost = mkOption {
+      type = with types; nullOr str;
+      default = null;
+      description = ''
+        If set, use a NixOS-generated ACME certificate with the specified name.
+
+        Note that this will require you to use a non-HTTP-based challenge, or
+        disable Pomerium's in-built HTTP redirect server by setting
+        http_redirect_addr to null and use a different HTTP server for serving
+        the challenge response.
+
+        If you're using an HTTP-based challenge, you should use the
+        Pomerium-native autocert option instead.
+      '';
+    };
+
+    settings = mkOption {
+      description = ''
+        The contents of Pomerium's config.yaml, in Nix expressions.
+
+        Specifying configFile will override this in its entirety.
+
+        See <link xlink:href="https://pomerium.io/reference/">the Pomerium
+        configuration reference</link> for more information about what to put
+        here.
+      '';
+      default = {};
+      type = format.type;
+    };
+
+    secretsFile = mkOption {
+      type = with types; nullOr path;
+      default = null;
+      description = ''
+        Path to file containing secrets for Pomerium, in systemd
+        EnvironmentFile format. See the systemd.exec(5) man page.
+      '';
+    };
+  };
+
+  config = let
+    cfg = config.services.pomerium;
+    cfgFile = if cfg.configFile != null then cfg.configFile else (format.generate "pomerium.yaml" cfg.settings);
+  in mkIf cfg.enable ({
+    systemd.services.pomerium = {
+      description = "Pomerium authenticating reverse proxy";
+      wants = [ "network.target" ] ++ (optional (cfg.useACMEHost != null) "acme-finished-${cfg.useACMEHost}.target");
+      after = [ "network.target" ] ++ (optional (cfg.useACMEHost != null) "acme-finished-${cfg.useACMEHost}.target");
+      wantedBy = [ "multi-user.target" ];
+      environment = optionalAttrs (cfg.useACMEHost != null) {
+        CERTIFICATE_FILE = "fullchain.pem";
+        CERTIFICATE_KEY_FILE = "key.pem";
+      };
+      startLimitIntervalSec = 60;
+
+      serviceConfig = {
+        DynamicUser = true;
+        StateDirectory = [ "pomerium" ];
+        ExecStart = "${pkgs.pomerium}/bin/pomerium -config ${cfgFile}";
+
+        PrivateUsers = false;  # breaks CAP_NET_BIND_SERVICE
+        MemoryDenyWriteExecute = false;  # breaks LuaJIT
+
+        NoNewPrivileges = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        DevicePolicy = "closed";
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        ProtectControlGroups = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectKernelLogs = true;
+        RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        LockPersonality = true;
+        SystemCallArchitectures = "native";
+
+        EnvironmentFile = cfg.secretsFile;
+        AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
+        CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
+
+        WorkingDirectory = mkIf (cfg.useACMEHost != null) "$CREDENTIALS_DIRECTORY";
+        LoadCredential = optionals (cfg.useACMEHost != null) [
+          "fullchain.pem:/var/lib/acme/${cfg.useACMEHost}/fullchain.pem"
+          "key.pem:/var/lib/acme/${cfg.useACMEHost}/key.pem"
+        ];
+      };
+    };
+
+    # postRun hooks on cert renew can't be used to restart Nginx since renewal
+    # runs as the unprivileged acme user. sslTargets are added to wantedBy + before
+    # which allows the acme-finished-$cert.target to signify the successful updating
+    # of certs end-to-end.
+    systemd.services.pomerium-config-reload = mkIf (cfg.useACMEHost != null) {
+      # TODO(lukegb): figure out how to make config reloading work with credentials.
+
+      wantedBy = [ "acme-finished-${cfg.useACMEHost}.target" "multi-user.target" ];
+      # Before the finished targets, after the renew services.
+      before = [ "acme-finished-${cfg.useACMEHost}.target" ];
+      after = [ "acme-${cfg.useACMEHost}.service" ];
+      # Block reloading if not all certs exist yet.
+      unitConfig.ConditionPathExists = [ "${config.security.acme.certs.${cfg.useACMEHost}.directory}/fullchain.pem" ];
+      serviceConfig = {
+        Type = "oneshot";
+        TimeoutSec = 60;
+        ExecCondition = "/run/current-system/systemd/bin/systemctl -q is-active pomerium.service";
+        ExecStart = "/run/current-system/systemd/bin/systemctl restart pomerium.service";
+      };
+    };
+  });
+}
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix
index 671301246a8c..99e6edfba26e 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -197,12 +197,11 @@ in
   config = mkMerge [
     (mkIf (cfg.enable || flashbackEnabled) {
       # Seed our configuration into nixos-generate-config
-      system.nixos-generate-config.desktopConfiguration = ''
+      system.nixos-generate-config.desktopConfiguration = [''
         # Enable the GNOME 3 Desktop Environment.
-        services.xserver.enable = true;
         services.xserver.displayManager.gdm.enable = true;
         services.xserver.desktopManager.gnome3.enable = true;
-      '';
+      ''];
 
       services.gnome3.core-os-services.enable = true;
       services.gnome3.core-shell.enable = true;
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/kodi.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/kodi.nix
index bdae9c3afdb7..af303d6fb279 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/kodi.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/kodi.nix
@@ -14,6 +14,16 @@ in
         default = false;
         description = "Enable the kodi multimedia center.";
       };
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.kodi;
+        defaultText = "pkgs.kodi";
+        example = "pkgs.kodi.withPackages (p: with p; [ jellyfin pvr-iptvsimple vfs-sftp ])";
+        description = ''
+          Package that should be used for Kodi.
+        '';
+      };
     };
   };
 
@@ -21,11 +31,11 @@ in
     services.xserver.desktopManager.session = [{
       name = "kodi";
       start = ''
-        LIRC_SOCKET_PATH=/run/lirc/lircd ${pkgs.kodi}/bin/kodi --standalone &
+        LIRC_SOCKET_PATH=/run/lirc/lircd ${cfg.package}/bin/kodi --standalone &
         waitPID=$!
       '';
     }];
 
-    environment.systemPackages = [ pkgs.kodi ];
+    environment.systemPackages = [ cfg.package ];
   };
 }
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
index d6cf86d3a2e6..44ee079b8173 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -184,12 +184,11 @@ in
   config = mkMerge [
     (mkIf cfg.enable {
       # Seed our configuration into nixos-generate-config
-      system.nixos-generate-config.desktopConfiguration = ''
+      system.nixos-generate-config.desktopConfiguration = [''
         # Enable the Plasma 5 Desktop Environment.
-        services.xserver.enable = true;
         services.xserver.displayManager.sddm.enable = true;
         services.xserver.desktopManager.plasma5.enable = true;
-      '';
+      ''];
 
       services.xserver.desktopManager.session = singleton {
         name = "plasma5";
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix
index d39b4d64904f..fc7f7bea4e44 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -58,7 +58,7 @@ in
       noDesktop = mkOption {
         type = types.bool;
         default = false;
-        description = "Don't install XFCE desktop components (xfdesktop, panel and notification daemon).";
+        description = "Don't install XFCE desktop components (xfdesktop and panel).";
       };
 
       enableXfwm = mkOption {
@@ -98,6 +98,7 @@ in
       parole
       ristretto
       xfce4-appfinder
+      xfce4-notifyd
       xfce4-screenshooter
       xfce4-session
       xfce4-settings
@@ -119,7 +120,6 @@ in
         xfwm4
         xfwm4-themes
       ] ++ optionals (!cfg.noDesktop) [
-        xfce4-notifyd
         xfce4-panel
         xfdesktop
       ];
@@ -166,7 +166,8 @@ in
     # Systemd services
     systemd.packages = with pkgs.xfce; [
       (thunar.override { thunarPlugins = cfg.thunarPlugins; })
-    ] ++ optional (!cfg.noDesktop) xfce4-notifyd;
+      xfce4-notifyd
+    ];
 
   };
 }
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/default.nix b/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
index 9fdbe753dad5..e04fcdaf4145 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
@@ -37,6 +37,11 @@ let
       . /etc/profile
       cd "$HOME"
 
+      # Allow the user to execute commands at the beginning of the X session.
+      if test -f ~/.xprofile; then
+          source ~/.xprofile
+      fi
+
       ${optionalString cfg.displayManager.job.logToJournal ''
         if [ -z "$_DID_SYSTEMD_CAT" ]; then
           export _DID_SYSTEMD_CAT=1
@@ -64,22 +69,23 @@ let
 
       # Speed up application start by 50-150ms according to
       # http://kdemonkey.blogspot.nl/2008/04/magic-trick.html
-      rm -rf "$HOME/.compose-cache"
-      mkdir "$HOME/.compose-cache"
+      compose_cache="''${XCOMPOSECACHE:-$HOME/.compose-cache}"
+      mkdir -p "$compose_cache"
+      # To avoid accidentally deleting a wrongly set up XCOMPOSECACHE directory,
+      # defensively try to delete cache *files* only, following the file format specified in
+      # https://gitlab.freedesktop.org/xorg/lib/libx11/-/blob/master/modules/im/ximcp/imLcIm.c#L353-358
+      # sprintf (*res, "%s/%c%d_%03x_%08x_%08x", dir, _XimGetMyEndian(), XIM_CACHE_VERSION, (unsigned int)sizeof (DefTree), hash, hash2);
+      ${pkgs.findutils}/bin/find "$compose_cache" -maxdepth 1 -regextype posix-extended -regex '.*/[Bl][0-9]+_[0-9a-f]{3}_[0-9a-f]{8}_[0-9a-f]{8}' -delete
+      unset compose_cache
 
       # Work around KDE errors when a user first logs in and
       # .local/share doesn't exist yet.
-      mkdir -p "$HOME/.local/share"
+      mkdir -p "''${XDG_DATA_HOME:-$HOME/.local/share}"
 
       unset _DID_SYSTEMD_CAT
 
       ${cfg.displayManager.sessionCommands}
 
-      # Allow the user to execute commands at the beginning of the X session.
-      if test -f ~/.xprofile; then
-          source ~/.xprofile
-      fi
-
       # Start systemd user services for graphical sessions
       /run/current-system/systemd/bin/systemctl --user start graphical-session.target
 
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix b/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
index e3c5adb9737f..f79eb64b5a6a 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
@@ -183,14 +183,20 @@ in
       "systemd-udev-settle.service"
     ];
     systemd.services.display-manager.conflicts = [
-       "getty@tty${gdm.initialVT}.service"
-       # TODO: Add "plymouth-quit.service" so GDM can control when plymouth quits.
-       # Currently this breaks switching configurations while using plymouth.
+      "getty@tty${gdm.initialVT}.service"
+      "plymouth-quit.service"
     ];
     systemd.services.display-manager.onFailure = [
       "plymouth-quit.service"
     ];
 
+    # Prevent nixos-rebuild switch from bringing down the graphical
+    # session. (If multi-user.target wants plymouth-quit.service which
+    # conflicts display-manager.service, then when nixos-rebuild
+    # switch starts multi-user.target, display-manager.service is
+    # stopped so plymouth-quit.service can be started.)
+    systemd.services.plymouth-quit.wantedBy = lib.mkForce [];
+
     systemd.services.display-manager.serviceConfig = {
       # Restart = "always"; - already defined in xserver.nix
       KillMode = "mixed";
diff --git a/nixpkgs/nixos/modules/services/x11/xserver.nix b/nixpkgs/nixos/modules/services/x11/xserver.nix
index 8858559d8f27..35bd4dabb673 100644
--- a/nixpkgs/nixos/modules/services/x11/xserver.nix
+++ b/nixpkgs/nixos/modules/services/x11/xserver.nix
@@ -251,11 +251,10 @@ in
 
       videoDrivers = mkOption {
         type = types.listOf types.str;
-        # !!! We'd like "nv" here, but it segfaults the X server.
-        default = [ "radeon" "cirrus" "vesa" "modesetting" ];
+        default = [ "amdgpu" "radeon" "nouveau" "modesetting" "fbdev" ];
         example = [
-          "ati_unfree" "amdgpu" "amdgpu-pro"
-          "nv" "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"
+          "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"
+          "amdgpu-pro"
         ];
         # TODO(@oxij): think how to easily add the rest, like those nvidia things
         relatedPackages = concatLists
diff --git a/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix b/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix
index e59bc7b6678f..b35fb0b57c05 100644
--- a/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix
+++ b/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix
@@ -55,7 +55,7 @@ in
     # The shared libraries are required for DNS resolution
     boot.initrd.extraUtilsCommands = ''
       copy_bin_and_libs ${pkgs.openvpn}/bin/openvpn
-      copy_bin_and_libs ${pkgs.iproute}/bin/ip
+      copy_bin_and_libs ${pkgs.iproute2}/bin/ip
 
       cp -pv ${pkgs.glibc}/lib/libresolv.so.2 $out/lib
       cp -pv ${pkgs.glibc}/lib/libnss_dns.so.2 $out/lib
diff --git a/nixpkgs/nixos/modules/system/boot/kernel_config.nix b/nixpkgs/nixos/modules/system/boot/kernel_config.nix
index 783685c9dfe4..5d9534024b06 100644
--- a/nixpkgs/nixos/modules/system/boot/kernel_config.nix
+++ b/nixpkgs/nixos/modules/system/boot/kernel_config.nix
@@ -2,24 +2,6 @@
 
 with lib;
 let
-  findWinner = candidates: winner:
-    any (x: x == winner) candidates;
-
-  # winners is an ordered list where first item wins over 2nd etc
-  mergeAnswer = winners: locs: defs:
-    let
-      values = map (x: x.value) defs;
-      inter = intersectLists values winners;
-      winner = head winners;
-    in
-    if defs == [] then abort "This case should never happen."
-    else if winner == [] then abort "Give a valid list of winner"
-    else if inter == [] then mergeOneOption locs defs
-    else if findWinner values winner then
-      winner
-    else
-      mergeAnswer (tail winners) locs defs;
-
   mergeFalseByDefault = locs: defs:
     if defs == [] then abort "This case should never happen."
     else if any (x: x == false) (getValues defs) then false
@@ -28,9 +10,7 @@ let
   kernelItem = types.submodule {
     options = {
       tristate = mkOption {
-        type = types.enum [ "y" "m" "n" null ] // {
-          merge = mergeAnswer [ "y" "m" "n" ];
-        };
+        type = types.enum [ "y" "m" "n" null ];
         default = null;
         internal = true;
         visible = true;
diff --git a/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh b/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
index 854684b87fac..5ffffb95edb1 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
+++ b/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
@@ -109,7 +109,7 @@ addEntry() {
             exit 1
         fi
     fi
-    echo "  APPEND systemConfig=$path init=$path/init $extraParams"
+    echo "  APPEND init=$path/init $extraParams"
 }
 
 tmpFile="$target/extlinux/extlinux.conf.tmp.$$"
diff --git a/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl
index 59f5638044fe..e0167654748e 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -102,10 +102,10 @@ if (stat($bootPath)->dev != stat("/nix/store")->dev) {
 
 # Discover information about the location of the bootPath
 struct(Fs => {
-    device => '$',
-    type => '$',
-    mount => '$',
-});
+        device => '$',
+        type => '$',
+        mount => '$',
+    });
 sub PathInMount {
     my ($path, $mount) = @_;
     my @splitMount = split /\//, $mount;
@@ -154,16 +154,16 @@ sub GetFs {
     return $bestFs;
 }
 struct (Grub => {
-    path => '$',
-    search => '$',
-});
+        path => '$',
+        search => '$',
+    });
 my $driveid = 1;
 sub GrubFs {
     my ($dir) = @_;
     my $fs = GetFs($dir);
     my $path = substr($dir, length($fs->mount));
     if (substr($path, 0, 1) ne "/") {
-      $path = "/$path";
+        $path = "/$path";
     }
     my $search = "";
 
@@ -251,8 +251,8 @@ my $conf .= "# Automatically generated.  DO NOT EDIT THIS FILE!\n";
 
 if ($grubVersion == 1) {
     $conf .= "
-        default $defaultEntry
-        timeout $timeout
+    default $defaultEntry
+    timeout $timeout
     ";
     if ($splashImage) {
         copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath: $!\n";
@@ -302,51 +302,51 @@ else {
 
     if ($copyKernels == 0) {
         $conf .= "
-            " . $grubStore->search;
+        " . $grubStore->search;
     }
     # FIXME: should use grub-mkconfig.
     $conf .= "
-        " . $grubBoot->search . "
-        if [ -s \$prefix/grubenv ]; then
-          load_env
-        fi
-
-        # ‘grub-reboot’ sets a one-time saved entry, which we process here and
-        # then delete.
-        if [ \"\${next_entry}\" ]; then
-          set default=\"\${next_entry}\"
-          set next_entry=
-          save_env next_entry
-          set timeout=1
-        else
-          set default=$defaultEntry
-          set timeout=$timeout
-        fi
-
-        # Setup the graphics stack for bios and efi systems
-        if [ \"\${grub_platform}\" = \"efi\" ]; then
-          insmod efi_gop
-          insmod efi_uga
-        else
-          insmod vbe
-        fi
+    " . $grubBoot->search . "
+    if [ -s \$prefix/grubenv ]; then
+    load_env
+    fi
+
+    # ‘grub-reboot’ sets a one-time saved entry, which we process here and
+    # then delete.
+    if [ \"\${next_entry}\" ]; then
+    set default=\"\${next_entry}\"
+    set next_entry=
+    save_env next_entry
+    set timeout=1
+    else
+    set default=$defaultEntry
+    set timeout=$timeout
+    fi
+
+    # Setup the graphics stack for bios and efi systems
+    if [ \"\${grub_platform}\" = \"efi\" ]; then
+    insmod efi_gop
+    insmod efi_uga
+    else
+    insmod vbe
+    fi
     ";
 
     if ($font) {
         copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath: $!\n";
         $conf .= "
-            insmod font
-            if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
-              insmod gfxterm
-              if [ \"\${grub_platform}\" = \"efi\" ]; then
-                set gfxmode=$gfxmodeEfi
-                set gfxpayload=$gfxpayloadEfi
-              else
-                set gfxmode=$gfxmodeBios
-                set gfxpayload=$gfxpayloadBios
-              fi
-              terminal_output gfxterm
-            fi
+        insmod font
+        if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
+        insmod gfxterm
+        if [ \"\${grub_platform}\" = \"efi\" ]; then
+        set gfxmode=$gfxmodeEfi
+        set gfxpayload=$gfxpayloadEfi
+        else
+        set gfxmode=$gfxmodeBios
+        set gfxpayload=$gfxpayloadBios
+        fi
+        terminal_output gfxterm
+        fi
         ";
     }
     if ($splashImage) {
@@ -356,21 +356,21 @@ else {
         if ($suffix eq ".jpg") {
             $suffix = ".jpeg";
         }
-		if ($backgroundColor) {
-			$conf .= "
-		    background_color '$backgroundColor'
-		    ";
-		}
+        if ($backgroundColor) {
+            $conf .= "
+            background_color '$backgroundColor'
+            ";
+        }
         copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath: $!\n";
         $conf .= "
-            insmod " . substr($suffix, 1) . "
-            if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
-              set color_normal=white/black
-              set color_highlight=black/white
-            else
-              set menu_color_normal=cyan/blue
-              set menu_color_highlight=white/blue
-            fi
+        insmod " . substr($suffix, 1) . "
+        if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
+        set color_normal=white/black
+        set color_highlight=black/white
+        else
+        set menu_color_normal=cyan/blue
+        set menu_color_highlight=white/blue
+        fi
         ";
     }
 
@@ -380,21 +380,21 @@ else {
         # Copy theme
         rcopy($theme, "$bootPath/theme") or die "cannot copy $theme to $bootPath\n";
         $conf .= "
-            # Sets theme.
-            set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
-            export theme
-            # Load theme fonts, if any
-         ";
-
-         find( { wanted => sub {
-             if ($_ =~ /\.pf2$/i) {
-                 $font = File::Spec->abs2rel($File::Find::name, $theme);
-                 $conf .= "
-                     loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
-                 ";
-             }
-         }, no_chdir => 1 }, $theme );
-     }
+        # Sets theme.
+        set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
+        export theme
+        # Load theme fonts, if any
+        ";
+
+        find( { wanted => sub {
+                    if ($_ =~ /\.pf2$/i) {
+                        $font = File::Spec->abs2rel($File::Find::name, $theme);
+                        $conf .= "
+                        loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
+                        ";
+                    }
+                }, no_chdir => 1 }, $theme );
+    }
 }
 
 $conf .= "$extraConfig\n";
@@ -433,25 +433,25 @@ sub addEntry {
 
     # Include second initrd with secrets
     if (-e -x "$path/append-initrd-secrets") {
-      my $initrdName = basename($initrd);
-      my $initrdSecretsPath = "$bootPath/kernels/$initrdName-secrets";
-
-      mkpath(dirname($initrdSecretsPath), 0, 0755);
-      my $oldUmask = umask;
-      # Make sure initrd is not world readable (won't work if /boot is FAT)
-      umask 0137;
-      my $initrdSecretsPathTemp = File::Temp::mktemp("$initrdSecretsPath.XXXXXXXX");
-      system("$path/append-initrd-secrets", $initrdSecretsPathTemp) == 0 or die "failed to create initrd secrets: $!\n";
-      # Check whether any secrets were actually added
-      if (-e $initrdSecretsPathTemp && ! -z _) {
-        rename $initrdSecretsPathTemp, $initrdSecretsPath or die "failed to move initrd secrets into place: $!\n";
-        $copied{$initrdSecretsPath} = 1;
-        $initrd .= " " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/kernels/$initrdName-secrets";
-      } else {
-        unlink $initrdSecretsPathTemp;
-        rmdir dirname($initrdSecretsPathTemp);
-      }
-      umask $oldUmask;
+        my $initrdName = basename($initrd);
+        my $initrdSecretsPath = "$bootPath/kernels/$initrdName-secrets";
+
+        mkpath(dirname($initrdSecretsPath), 0, 0755);
+        my $oldUmask = umask;
+        # Make sure initrd is not world readable (won't work if /boot is FAT)
+        umask 0137;
+        my $initrdSecretsPathTemp = File::Temp::mktemp("$initrdSecretsPath.XXXXXXXX");
+        system("$path/append-initrd-secrets", $initrdSecretsPathTemp) == 0 or die "failed to create initrd secrets: $!\n";
+        # Check whether any secrets were actually added
+        if (-e $initrdSecretsPathTemp && ! -z _) {
+            rename $initrdSecretsPathTemp, $initrdSecretsPath or die "failed to move initrd secrets into place: $!\n";
+            $copied{$initrdSecretsPath} = 1;
+            $initrd .= " " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/kernels/$initrdName-secrets";
+        } else {
+            unlink $initrdSecretsPathTemp;
+            rmdir dirname($initrdSecretsPathTemp);
+        }
+        umask $oldUmask;
     }
 
     my $xen = -e "$path/xen.gz" ? copyToKernelsDir(Cwd::abs_path("$path/xen.gz")) : undef;
@@ -459,9 +459,8 @@ sub addEntry {
     # FIXME: $confName
 
     my $kernelParams =
-        "systemConfig=" . Cwd::abs_path($path) . " " .
-        "init=" . Cwd::abs_path("$path/init") . " " .
-        readFile("$path/kernel-params");
+    "init=" . Cwd::abs_path("$path/init") . " " .
+    readFile("$path/kernel-params");
     my $xenParams = $xen && -e "$path/xen-params" ? readFile("$path/xen-params") : "";
 
     if ($grubVersion == 1) {
@@ -503,9 +502,9 @@ foreach my $link (@links) {
 
     my $date = strftime("%F", localtime(lstat($link)->mtime));
     my $version =
-        -e "$link/nixos-version"
-        ? readFile("$link/nixos-version")
-        : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
+    -e "$link/nixos-version"
+    ? readFile("$link/nixos-version")
+    : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
 
     if ($cfgName) {
         $entryName = $cfgName;
@@ -530,8 +529,8 @@ sub addProfile {
     sub nrFromGen { my ($x) = @_; $x =~ /\/\w+-(\d+)-link/; return $1; }
 
     my @links = sort
-        { nrFromGen($b) <=> nrFromGen($a) }
-        (glob "$profile-*-link");
+    { nrFromGen($b) <=> nrFromGen($a) }
+    (glob "$profile-*-link");
 
     my $curEntry = 0;
     foreach my $link (@links) {
@@ -542,9 +541,9 @@ sub addProfile {
         }
         my $date = strftime("%F", localtime(lstat($link)->mtime));
         my $version =
-            -e "$link/nixos-version"
-            ? readFile("$link/nixos-version")
-            : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
+        -e "$link/nixos-version"
+        ? readFile("$link/nixos-version")
+        : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
         addEntry("NixOS - Configuration " . nrFromGen($link) . " ($date - $version)", $link);
     }
 
@@ -566,7 +565,7 @@ $extraPrepareConfig =~ s/\@bootPath\@/$bootPath/g;
 
 # Run extraPrepareConfig in sh
 if ($extraPrepareConfig ne "") {
-  system((get("shell"), "-c", $extraPrepareConfig));
+    system((get("shell"), "-c", $extraPrepareConfig));
 }
 
 # write the GRUB config.
@@ -627,13 +626,13 @@ foreach my $fn (glob "$bootPath/kernels/*") {
 #
 
 struct(GrubState => {
-    name => '$',
-    version => '$',
-    efi => '$',
-    devices => '$',
-    efiMountPoint => '$',
-    extraGrubInstallArgs => '@',
-});
+        name => '$',
+        version => '$',
+        efi => '$',
+        devices => '$',
+        efiMountPoint => '$',
+        extraGrubInstallArgs => '@',
+    });
 # If you add something to the state file, only add it to the end
 # because it is read line-by-line.
 sub readGrubState {
diff --git a/nixpkgs/nixos/modules/system/boot/loader/init-script/init-script-builder.sh b/nixpkgs/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
index 2a1ec479fea0..bd3fc64999da 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
+++ b/nixpkgs/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
@@ -49,7 +49,6 @@ addEntry() {
       echo "#!/bin/sh"
       echo "# $name"
       echo "# created by init-script-builder.sh"
-      echo "export systemConfig=$(readlink -f $path)"
       echo "exec $stage2"
     )"
 
diff --git a/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
index 97e824fe629c..2ea191426ce9 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
+++ b/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
@@ -15,12 +15,15 @@ import re
 import datetime
 import glob
 import os.path
+from typing import Tuple, List, Optional
 
-def copy_if_not_exists(source, dest):
+
+def copy_if_not_exists(source: str, dest: str) -> None:
     if not os.path.exists(dest):
         shutil.copyfile(source, dest)
 
-def system_dir(profile, generation):
+
+def system_dir(profile: Optional[str], generation: int) -> str:
     if profile:
         return "/nix/var/nix/profiles/system-profiles/%s-%d-link" % (profile, generation)
     else:
@@ -42,7 +45,8 @@ MEMTEST_BOOT_ENTRY = """title MemTest86
 efi /efi/memtest86/BOOTX64.efi
 """
 
-def write_loader_conf(profile, generation):
+
+def write_loader_conf(profile: Optional[str], generation: int) -> None:
     with open("@efiSysMountPoint@/loader/loader.conf.tmp", 'w') as f:
         if "@timeout@" != "":
             f.write("timeout @timeout@\n")
@@ -55,10 +59,12 @@ def write_loader_conf(profile, generation):
         f.write("console-mode @consoleMode@\n");
     os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf")
 
-def profile_path(profile, generation, name):
+
+def profile_path(profile: Optional[str], generation: int, name: str) -> str:
     return os.readlink("%s/%s" % (system_dir(profile, generation), name))
 
-def copy_from_profile(profile, generation, name, dry_run=False):
+
+def copy_from_profile(profile: Optional[str], generation: int, name: str, dry_run: bool = False) -> str:
     store_file_path = profile_path(profile, generation, name)
     suffix = os.path.basename(store_file_path)
     store_dir = os.path.basename(os.path.dirname(store_file_path))
@@ -67,7 +73,8 @@ def copy_from_profile(profile, generation, name, dry_run=False):
         copy_if_not_exists(store_file_path, "@efiSysMountPoint@%s" % (efi_file_path))
     return efi_file_path
 
-def describe_generation(generation_dir):
+
+def describe_generation(generation_dir: str) -> str:
     try:
         with open("%s/nixos-version" % generation_dir) as f:
             nixos_version = f.read()
@@ -87,7 +94,8 @@ def describe_generation(generation_dir):
 
     return description
 
-def write_entry(profile, generation, machine_id):
+
+def write_entry(profile: Optional[str], generation: int, machine_id: str) -> None:
     kernel = copy_from_profile(profile, generation, "kernel")
     initrd = copy_from_profile(profile, generation, "initrd")
     try:
@@ -101,7 +109,7 @@ def write_entry(profile, generation, machine_id):
         entry_file = "@efiSysMountPoint@/loader/entries/nixos-generation-%d.conf" % (generation)
     generation_dir = os.readlink(system_dir(profile, generation))
     tmp_path = "%s.tmp" % (entry_file)
-    kernel_params = "systemConfig=%s init=%s/init " % (generation_dir, generation_dir)
+    kernel_params = "init=%s/init " % generation_dir
 
     with open("%s/kernel-params" % (generation_dir)) as params_file:
         kernel_params = kernel_params + params_file.read()
@@ -116,14 +124,16 @@ def write_entry(profile, generation, machine_id):
             f.write("machine-id %s\n" % machine_id)
     os.rename(tmp_path, entry_file)
 
-def mkdir_p(path):
+
+def mkdir_p(path: str) -> None:
     try:
         os.makedirs(path)
     except OSError as e:
         if e.errno != errno.EEXIST or not os.path.isdir(path):
             raise
 
-def get_generations(profile=None):
+
+def get_generations(profile: Optional[str] = None) -> List[Tuple[Optional[str], int]]:
     gen_list = subprocess.check_output([
         "@nix@/bin/nix-env",
         "--list-generations",
@@ -137,7 +147,8 @@ def get_generations(profile=None):
     configurationLimit = @configurationLimit@
     return [ (profile, int(line.split()[0])) for line in gen_lines ][-configurationLimit:]
 
-def remove_old_entries(gens):
+
+def remove_old_entries(gens: List[Tuple[Optional[str], int]]) -> None:
     rex_profile = re.compile("^@efiSysMountPoint@/loader/entries/nixos-(.*)-generation-.*\.conf$")
     rex_generation = re.compile("^@efiSysMountPoint@/loader/entries/nixos.*-generation-(.*)\.conf$")
     known_paths = []
@@ -150,8 +161,8 @@ def remove_old_entries(gens):
                 prof = rex_profile.sub(r"\1", path)
             else:
                 prof = "system"
-            gen = int(rex_generation.sub(r"\1", path))
-            if not (prof, gen) in gens:
+            gen_number = int(rex_generation.sub(r"\1", path))
+            if not (prof, gen_number) in gens:
                 os.unlink(path)
         except ValueError:
             pass
@@ -159,7 +170,8 @@ def remove_old_entries(gens):
         if not path in known_paths and not os.path.isdir(path):
             os.unlink(path)
 
-def get_profiles():
+
+def get_profiles() -> List[str]:
     if os.path.isdir("/nix/var/nix/profiles/system-profiles/"):
         return [x
             for x in os.listdir("/nix/var/nix/profiles/system-profiles/")
@@ -167,7 +179,8 @@ def get_profiles():
     else:
         return []
 
-def main():
+
+def main() -> None:
     parser = argparse.ArgumentParser(description='Update NixOS-related systemd-boot files')
     parser.add_argument('default_config', metavar='DEFAULT-CONFIG', help='The default NixOS config to boot')
     args = parser.parse_args()
@@ -182,7 +195,9 @@ def main():
         # be there on newly installed systems, so let's generate one so that
         # bootctl can find it and we can also pass it to write_entry() later.
         cmd = ["@systemd@/bin/systemd-machine-id-setup", "--print"]
-        machine_id = subprocess.check_output(cmd).rstrip()
+        machine_id = subprocess.run(
+          cmd, text=True, check=True, stdout=subprocess.PIPE
+        ).stdout.rstrip()
 
     if os.getenv("NIXOS_INSTALL_GRUB") == "1":
         warnings.warn("NIXOS_INSTALL_GRUB env var deprecated, use NIXOS_INSTALL_BOOTLOADER", DeprecationWarning)
@@ -213,7 +228,6 @@ def main():
                 print("updating systemd-boot from %s to %s" % (sdboot_version, systemd_version))
                 subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "update"])
 
-
     mkdir_p("@efiSysMountPoint@/efi/nixos")
     mkdir_p("@efiSysMountPoint@/loader/entries")
 
@@ -252,5 +266,6 @@ def main():
     if rc != 0:
         print("could not sync @efiSysMountPoint@: {}".format(os.strerror(rc)), file=sys.stderr)
 
+
 if __name__ == '__main__':
     main()
diff --git a/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix b/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
index f0bd76a3c1d2..ff304f570d35 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
+++ b/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
@@ -7,7 +7,7 @@ let
 
   efi = config.boot.loader.efi;
 
-  gummibootBuilder = pkgs.substituteAll {
+  systemdBootBuilder = pkgs.substituteAll {
     src = ./systemd-boot-builder.py;
 
     isExecutable = true;
@@ -30,6 +30,17 @@ let
 
     memtest86 = if cfg.memtest86.enable then pkgs.memtest86-efi else "";
   };
+
+  checkedSystemdBootBuilder = pkgs.runCommand "systemd-boot" {
+    nativeBuildInputs = [ pkgs.mypy ];
+  } ''
+    install -m755 ${systemdBootBuilder} $out
+    mypy \
+      --no-implicit-optional \
+      --disallow-untyped-calls \
+      --disallow-untyped-defs \
+      $out
+  '';
 in {
 
   imports =
@@ -131,7 +142,7 @@ in {
     boot.loader.supportsInitrdSecrets = true;
 
     system = {
-      build.installBootLoader = gummibootBuilder;
+      build.installBootLoader = checkedSystemdBootBuilder;
 
       boot.loader.id = "systemd-boot";
 
diff --git a/nixpkgs/nixos/modules/system/boot/luksroot.nix b/nixpkgs/nixos/modules/system/boot/luksroot.nix
index 8dd2ea20519a..fa14d86e253d 100644
--- a/nixpkgs/nixos/modules/system/boot/luksroot.nix
+++ b/nixpkgs/nixos/modules/system/boot/luksroot.nix
@@ -56,7 +56,7 @@ let
 
         ykinfo -v 1>/dev/null 2>&1
         if [ $? != 0 ]; then
-            echo -n "Waiting $secs seconds for Yubikey to appear..."
+            echo -n "Waiting $secs seconds for YubiKey to appear..."
             local success=false
             for try in $(seq $secs); do
                 echo -n .
@@ -118,7 +118,7 @@ let
     # Cryptsetup locking directory
     mkdir -p /run/cryptsetup
 
-    # For Yubikey salt storage
+    # For YubiKey salt storage
     mkdir -p /crypt-storage
 
     ${optionalString luks.gpgSupport ''
@@ -218,7 +218,7 @@ let
     }
 
     ${optionalString (luks.yubikeySupport && (yubikey != null)) ''
-    # Yubikey
+    # YubiKey
     rbtohex() {
         ( od -An -vtx1 | tr -d ' \n' )
     }
@@ -244,7 +244,7 @@ let
         local new_k_luks
 
         mount -t ${yubikey.storage.fsType} ${yubikey.storage.device} /crypt-storage || \
-          die "Failed to mount Yubikey salt storage device"
+          die "Failed to mount YubiKey salt storage device"
 
         salt="$(cat /crypt-storage${yubikey.storage.path} | sed -n 1p | tr -d '\n')"
         iterations="$(cat /crypt-storage${yubikey.storage.path} | sed -n 2p | tr -d '\n')"
@@ -254,8 +254,27 @@ let
         for try in $(seq 3); do
             ${optionalString yubikey.twoFactor ''
             echo -n "Enter two-factor passphrase: "
-            read -r k_user
-            echo
+            k_user=
+            while true; do
+                if [ -e /crypt-ramfs/passphrase ]; then
+                    echo "reused"
+                    k_user=$(cat /crypt-ramfs/passphrase)
+                    break
+                else
+                    # Try reading it from /dev/console with a timeout
+                    IFS= read -t 1 -r k_user
+                    if [ -n "$k_user" ]; then
+                       ${if luks.reusePassphrases then ''
+                         # Remember it for the next device
+                         echo -n "$k_user" > /crypt-ramfs/passphrase
+                       '' else ''
+                         # Don't save it to ramfs. We are very paranoid
+                       ''}
+                       echo
+                       break
+                    fi
+                fi
+            done
             ''}
 
             if [ ! -z "$k_user" ]; then
@@ -268,6 +287,11 @@ let
 
             if [ $? == 0 ]; then
                 opened=true
+                ${if luks.reusePassphrases then ''
+                  # We don't rm here because we might reuse it for the next device
+                '' else ''
+                  rm -f /crypt-ramfs/passphrase
+                ''}
                 break
             else
                 opened=false
@@ -317,7 +341,7 @@ let
         if wait_yubikey ${toString yubikey.gracePeriod}; then
             do_open_yubikey
         else
-            echo "No yubikey found, falling back to non-yubikey open procedure"
+            echo "No YubiKey found, falling back to non-YubiKey open procedure"
             open_normally
         fi
     }
@@ -665,8 +689,8 @@ in
           yubikey = mkOption {
             default = null;
             description = ''
-              The options to use for this LUKS device in Yubikey-PBA.
-              If null (the default), Yubikey-PBA will be disabled for this device.
+              The options to use for this LUKS device in YubiKey-PBA.
+              If null (the default), YubiKey-PBA will be disabled for this device.
             '';
 
             type = with types; nullOr (submodule {
@@ -674,13 +698,13 @@ in
                 twoFactor = mkOption {
                   default = true;
                   type = types.bool;
-                  description = "Whether to use a passphrase and a Yubikey (true), or only a Yubikey (false).";
+                  description = "Whether to use a passphrase and a YubiKey (true), or only a YubiKey (false).";
                 };
 
                 slot = mkOption {
                   default = 2;
                   type = types.int;
-                  description = "Which slot on the Yubikey to challenge.";
+                  description = "Which slot on the YubiKey to challenge.";
                 };
 
                 saltLength = mkOption {
@@ -704,7 +728,7 @@ in
                 gracePeriod = mkOption {
                   default = 10;
                   type = types.int;
-                  description = "Time in seconds to wait for the Yubikey.";
+                  description = "Time in seconds to wait for the YubiKey.";
                 };
 
                 /* TODO: Add to the documentation of the current module:
@@ -779,9 +803,9 @@ in
       default = false;
       type = types.bool;
       description = ''
-            Enables support for authenticating with a Yubikey on LUKS devices.
+            Enables support for authenticating with a YubiKey on LUKS devices.
             See the NixOS wiki for information on how to properly setup a LUKS device
-            and a Yubikey to work with this feature.
+            and a YubiKey to work with this feature.
           '';
     };
 
@@ -799,7 +823,7 @@ in
 
     assertions =
       [ { assertion = !(luks.gpgSupport && luks.yubikeySupport);
-          message = "Yubikey and GPG Card may not be used at the same time.";
+          message = "YubiKey and GPG Card may not be used at the same time.";
         }
 
         { assertion = !(luks.gpgSupport && luks.fido2Support);
@@ -807,7 +831,7 @@ in
         }
 
         { assertion = !(luks.fido2Support && luks.yubikeySupport);
-          message = "FIDO2 and Yubikey may not be used at the same time.";
+          message = "FIDO2 and YubiKey may not be used at the same time.";
         }
       ];
 
diff --git a/nixpkgs/nixos/modules/system/boot/networkd.nix b/nixpkgs/nixos/modules/system/boot/networkd.nix
index 3b01bc00bafa..bbdd5a407060 100644
--- a/nixpkgs/nixos/modules/system/boot/networkd.nix
+++ b/nixpkgs/nixos/modules/system/boot/networkd.nix
@@ -436,7 +436,8 @@ let
           "IPv4ProxyARP"
           "IPv6ProxyNDP"
           "IPv6ProxyNDPAddress"
-          "IPv6PrefixDelegation"
+          "IPv6SendRA"
+          "DHCPv6PrefixDelegation"
           "IPv6MTUBytes"
           "Bridge"
           "Bond"
@@ -477,7 +478,8 @@ let
         (assertMinimum "IPv6HopLimit" 0)
         (assertValueOneOf "IPv4ProxyARP" boolValues)
         (assertValueOneOf "IPv6ProxyNDP" boolValues)
-        (assertValueOneOf "IPv6PrefixDelegation" ["static" "dhcpv6" "yes" "false"])
+        (assertValueOneOf "IPv6SendRA" boolValues)
+        (assertValueOneOf "DHCPv6PrefixDelegation" boolValues)
         (assertByteFormat "IPv6MTUBytes")
         (assertValueOneOf "ActiveSlave" boolValues)
         (assertValueOneOf "PrimarySlave" boolValues)
@@ -643,18 +645,63 @@ let
 
       sectionDHCPv6 = checkUnitConfig "DHCPv6" [
         (assertOnlyFields [
+          "UseAddress"
           "UseDNS"
           "UseNTP"
+          "RouteMetric"
           "RapidCommit"
+          "MUDURL"
+          "RequestOptions"
+          "SendVendorOption"
           "ForceDHCPv6PDOtherInformation"
           "PrefixDelegationHint"
-          "RouteMetric"
+          "WithoutRA"
+          "SendOption"
+          "UserClass"
+          "VendorClass"
         ])
+        (assertValueOneOf "UseAddress" boolValues)
         (assertValueOneOf "UseDNS" boolValues)
         (assertValueOneOf "UseNTP" boolValues)
+        (assertInt "RouteMetric")
         (assertValueOneOf "RapidCommit" boolValues)
         (assertValueOneOf "ForceDHCPv6PDOtherInformation" boolValues)
-        (assertInt "RouteMetric")
+        (assertValueOneOf "WithoutRA" ["solicit" "information-request"])
+        (assertRange "SendOption" 1 65536)
+      ];
+
+      sectionDHCPv6PrefixDelegation = checkUnitConfig "DHCPv6PrefixDelegation" [
+        (assertOnlyFields [
+          "SubnetId"
+          "Announce"
+          "Assign"
+          "Token"
+        ])
+        (assertValueOneOf "Announce" boolValues)
+        (assertValueOneOf "Assign" boolValues)
+      ];
+
+      sectionIPv6AcceptRA = checkUnitConfig "IPv6AcceptRA" [
+        (assertOnlyFields [
+          "UseDNS"
+          "UseDomains"
+          "RouteTable"
+          "UseAutonomousPrefix"
+          "UseOnLinkPrefix"
+          "RouterDenyList"
+          "RouterAllowList"
+          "PrefixDenyList"
+          "PrefixAllowList"
+          "RouteDenyList"
+          "RouteAllowList"
+          "DHCPv6Client"
+        ])
+        (assertValueOneOf "UseDNS" boolValues)
+        (assertValueOneOf "UseDomains" (boolValues ++ ["route"]))
+        (assertRange "RouteTable" 0 4294967295)
+        (assertValueOneOf "UseAutonomousPrefix" boolValues)
+        (assertValueOneOf "UseOnLinkPrefix" boolValues)
+        (assertValueOneOf "DHCPv6Client" (boolValues ++ ["always"]))
       ];
 
       sectionDHCPServer = checkUnitConfig "DHCPServer" [
@@ -685,7 +732,7 @@ let
         (assertValueOneOf "EmitTimezone" boolValues)
       ];
 
-      sectionIPv6PrefixDelegation = checkUnitConfig "IPv6PrefixDelegation" [
+      sectionIPv6SendRA = checkUnitConfig "IPv6SendRA" [
         (assertOnlyFields [
           "Managed"
           "OtherInformation"
@@ -1090,6 +1137,30 @@ let
       '';
     };
 
+    dhcpV6PrefixDelegationConfig = mkOption {
+      default = {};
+      example = { SubnetId = "auto"; Announce = true; };
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv6PrefixDelegation;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[DHCPv6PrefixDelegation]</literal> section of the unit. See
+        <citerefentry><refentrytitle>systemd.network</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+      '';
+    };
+
+    ipv6AcceptRAConfig = mkOption {
+      default = {};
+      example = { UseDNS = true; DHCPv6Client = "always"; };
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6AcceptRA;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[IPv6AcceptRA]</literal> section of the unit. See
+        <citerefentry><refentrytitle>systemd.network</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+      '';
+    };
+
     dhcpServerConfig = mkOption {
       default = {};
       example = { PoolOffset = 50; EmitDNS = false; };
@@ -1102,13 +1173,20 @@ let
       '';
     };
 
+    # systemd.network.networks.*.ipv6PrefixDelegationConfig has been deprecated
+    # in 247 in favor of systemd.network.networks.*.ipv6SendRAConfig.
     ipv6PrefixDelegationConfig = mkOption {
+      visible = false;
+      apply = _: throw "The option `systemd.network.networks.*.ipv6PrefixDelegationConfig` has been replaced by `systemd.network.networks.*.ipv6SendRAConfig`.";
+    };
+
+    ipv6SendRAConfig = mkOption {
       default = {};
       example = { EmitDNS = true; Managed = true; OtherInformation = true; };
-      type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6PrefixDelegation;
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6SendRA;
       description = ''
         Each attribute in this set specifies an option in the
-        <literal>[IPv6PrefixDelegation]</literal> section of the unit.  See
+        <literal>[IPv6SendRA]</literal> section of the unit.  See
         <citerefentry><refentrytitle>systemd.network</refentrytitle>
         <manvolnum>5</manvolnum></citerefentry> for details.
       '';
@@ -1457,13 +1535,21 @@ let
           [DHCPv6]
           ${attrsToSection def.dhcpV6Config}
         ''
+        + optionalString (def.dhcpV6PrefixDelegationConfig != { }) ''
+          [DHCPv6PrefixDelegation]
+          ${attrsToSection def.dhcpV6PrefixDelegationConfig}
+        ''
+        + optionalString (def.ipv6AcceptRAConfig != { }) ''
+          [IPv6AcceptRA]
+          ${attrsToSection def.ipv6AcceptRAConfig}
+        ''
         + optionalString (def.dhcpServerConfig != { }) ''
           [DHCPServer]
           ${attrsToSection def.dhcpServerConfig}
         ''
-        + optionalString (def.ipv6PrefixDelegationConfig != { }) ''
-          [IPv6PrefixDelegation]
-          ${attrsToSection def.ipv6PrefixDelegationConfig}
+        + optionalString (def.ipv6SendRAConfig != { }) ''
+          [IPv6SendRA]
+          ${attrsToSection def.ipv6SendRAConfig}
         ''
         + flip concatMapStrings def.ipv6Prefixes (x: ''
           [IPv6Prefix]
@@ -1479,7 +1565,6 @@ let
 in
 
 {
-
   options = {
 
     systemd.network.enable = mkOption {
@@ -1553,9 +1638,6 @@ in
         wantedBy = [ "multi-user.target" ];
         aliases = [ "dbus-org.freedesktop.network1.service" ];
         restartTriggers = map (x: x.source) (attrValues unitFiles);
-        # prevent race condition with interface renaming (#39069)
-        requires = [ "systemd-udev-settle.service" ];
-        after = [ "systemd-udev-settle.service" ];
       };
 
       systemd.services.systemd-networkd-wait-online = {
diff --git a/nixpkgs/nixos/modules/system/boot/plymouth.nix b/nixpkgs/nixos/modules/system/boot/plymouth.nix
index 662576888fc2..2a545e552513 100644
--- a/nixpkgs/nixos/modules/system/boot/plymouth.nix
+++ b/nixpkgs/nixos/modules/system/boot/plymouth.nix
@@ -4,8 +4,7 @@ with lib;
 
 let
 
-  inherit (pkgs) plymouth;
-  inherit (pkgs) nixos-icons;
+  inherit (pkgs) plymouth nixos-icons;
 
   cfg = config.boot.plymouth;
 
@@ -16,14 +15,37 @@ let
     osVersion = config.system.nixos.release;
   };
 
+  plymouthLogos = pkgs.runCommand "plymouth-logos" { inherit (cfg) logo; } ''
+    mkdir -p $out
+
+    # For themes that are compiled with PLYMOUTH_LOGO_FILE
+    mkdir -p $out/etc/plymouth
+    ln -s $logo $out/etc/plymouth/logo.png
+
+    # Logo for bgrt theme
+    # Note this is technically an abuse of watermark for the bgrt theme
+    # See: https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/95#note_813768
+    mkdir -p $out/share/plymouth/themes/spinner
+    ln -s $logo $out/share/plymouth/themes/spinner/watermark.png
+
+    # Logo for spinfinity theme
+    # See: https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/106
+    mkdir -p $out/share/plymouth/themes/spinfinity
+    ln -s $logo $out/share/plymouth/themes/spinfinity/header-image.png
+  '';
+
   themesEnv = pkgs.buildEnv {
     name = "plymouth-themes";
-    paths = [ plymouth ] ++ cfg.themePackages;
+    paths = [
+      plymouth
+      plymouthLogos
+    ] ++ cfg.themePackages;
   };
 
   configFile = pkgs.writeText "plymouthd.conf" ''
     [Daemon]
     ShowDelay=0
+    DeviceTimeout=8
     Theme=${cfg.theme}
     ${cfg.extraConfig}
   '';
@@ -38,8 +60,16 @@ in
 
       enable = mkEnableOption "Plymouth boot splash screen";
 
+      font = mkOption {
+        default = "${pkgs.dejavu_fonts.minimal}/share/fonts/truetype/DejaVuSans.ttf";
+        type = types.path;
+        description = ''
+          Font file made available for displaying text on the splash screen.
+        '';
+      };
+
       themePackages = mkOption {
-        default = [ nixosBreezePlymouth ];
+        default = lib.optional (cfg.theme == "breeze") nixosBreezePlymouth;
         type = types.listOf types.package;
         description = ''
           Extra theme packages for plymouth.
@@ -47,7 +77,7 @@ in
       };
 
       theme = mkOption {
-        default = "breeze";
+        default = "bgrt";
         type = types.str;
         description = ''
           Splash screen theme.
@@ -56,7 +86,8 @@ in
 
       logo = mkOption {
         type = types.path;
-        default = "${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png";
+        # Dimensions are 48x48 to match GDM logo
+        default = "${nixos-icons}/share/icons/hicolor/48x48/apps/nix-snowflake-white.png";
         defaultText = ''pkgs.fetchurl {
           url = "https://nixos.org/logo/nixos-hires.png";
           sha256 = "1ivzgd7iz0i06y36p8m5w48fd8pjqwxhdaavc0pxs7w1g7mcy5si";
@@ -102,37 +133,62 @@ in
     systemd.services.plymouth-poweroff.wantedBy = [ "poweroff.target" ];
     systemd.services.plymouth-reboot.wantedBy = [ "reboot.target" ];
     systemd.services.plymouth-read-write.wantedBy = [ "sysinit.target" ];
-    systemd.services.systemd-ask-password-plymouth.wantedBy = ["multi-user.target"];
-    systemd.paths.systemd-ask-password-plymouth.wantedBy = ["multi-user.target"];
+    systemd.services.systemd-ask-password-plymouth.wantedBy = [ "multi-user.target" ];
+    systemd.paths.systemd-ask-password-plymouth.wantedBy = [ "multi-user.target" ];
 
     boot.initrd.extraUtilsCommands = ''
-      copy_bin_and_libs ${pkgs.plymouth}/bin/plymouthd
-      copy_bin_and_libs ${pkgs.plymouth}/bin/plymouth
+      copy_bin_and_libs ${plymouth}/bin/plymouth
+      copy_bin_and_libs ${plymouth}/bin/plymouthd
+
+      # Check if the actual requested theme is here
+      if [[ ! -d ${themesEnv}/share/plymouth/themes/${cfg.theme} ]]; then
+          echo "The requested theme: ${cfg.theme} is not provided by any of the packages in boot.plymouth.themePackages"
+          exit 1
+      fi
 
       moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)"
 
       mkdir -p $out/lib/plymouth/renderers
       # module might come from a theme
-      cp ${themesEnv}/lib/plymouth/{text,details,$moduleName}.so $out/lib/plymouth
+      cp ${themesEnv}/lib/plymouth/{text,details,label,$moduleName}.so $out/lib/plymouth
       cp ${plymouth}/lib/plymouth/renderers/{drm,frame-buffer}.so $out/lib/plymouth/renderers
 
       mkdir -p $out/share/plymouth/themes
       cp ${plymouth}/share/plymouth/plymouthd.defaults $out/share/plymouth
 
-      # copy themes into working directory for patching
+      # Copy themes into working directory for patching
       mkdir themes
-      # use -L to copy the directories proper, not the symlinks to them
-      cp -r -L ${themesEnv}/share/plymouth/themes/{text,details,${cfg.theme}} themes
 
-      # patch out any attempted references to the theme or plymouth's themes directory
+      # Use -L to copy the directories proper, not the symlinks to them.
+      # Copy all themes because they're not large assets, and bgrt depends on the ImageDir of
+      # the spinner theme.
+      cp -r -L ${themesEnv}/share/plymouth/themes/* themes
+
+      # Patch out any attempted references to the theme or plymouth's themes directory
       chmod -R +w themes
       find themes -type f | while read file
       do
         sed -i "s,/nix/.*/share/plymouth/themes,$out/share/plymouth/themes,g" $file
       done
 
+      # Install themes
       cp -r themes/* $out/share/plymouth/themes
-      cp ${cfg.logo} $out/share/plymouth/logo.png
+
+      # Install logo
+      mkdir -p $out/etc/plymouth
+      cp -r -L ${themesEnv}/etc/plymouth $out
+
+      # Setup font
+      mkdir -p $out/share/fonts
+      cp ${cfg.font} $out/share/fonts
+      mkdir -p $out/etc/fonts
+      cat > $out/etc/fonts/fonts.conf <<EOF
+      <?xml version="1.0"?>
+      <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
+      <fontconfig>
+          <dir>$out/share/fonts</dir>
+      </fontconfig>
+      EOF
     '';
 
     boot.initrd.extraUtilsCommandsTest = ''
@@ -154,6 +210,7 @@ in
       ln -s $extraUtils/share/plymouth/logo.png /etc/plymouth/logo.png
       ln -s $extraUtils/share/plymouth/themes /etc/plymouth/themes
       ln -s $extraUtils/lib/plymouth /etc/plymouth/plugins
+      ln -s $extraUtils/etc/fonts /etc/fonts
 
       plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
       plymouth show-splash
diff --git a/nixpkgs/nixos/modules/system/boot/stage-1-init.sh b/nixpkgs/nixos/modules/system/boot/stage-1-init.sh
index 5b39f34200cd..ddaf985878e0 100644
--- a/nixpkgs/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixpkgs/nixos/modules/system/boot/stage-1-init.sh
@@ -614,11 +614,16 @@ echo /sbin/modprobe > /proc/sys/kernel/modprobe
 
 
 # Start stage 2.  `switch_root' deletes all files in the ramfs on the
-# current root.  Note that $stage2Init might be an absolute symlink,
-# in which case "-e" won't work because we're not in the chroot yet.
-if [ ! -e "$targetRoot/$stage2Init" ] && [ ! -L "$targetRoot/$stage2Init" ] ; then
-    echo "stage 2 init script ($targetRoot/$stage2Init) not found"
-    fail
+# current root.  The path has to be valid in the chroot not outside.
+if [ ! -e "$targetRoot/$stage2Init" ]; then
+    stage2Check=${stage2Init}
+    while [ "$stage2Check" != "${stage2Check%/*}" ] && [ ! -L "$targetRoot/$stage2Check" ]; do
+        stage2Check=${stage2Check%/*}
+    done
+    if [ ! -L "$targetRoot/$stage2Check" ]; then
+        echo "stage 2 init script ($targetRoot/$stage2Init) not found"
+        fail
+    fi
 fi
 
 mkdir -m 0755 -p $targetRoot/proc $targetRoot/sys $targetRoot/dev $targetRoot/run
diff --git a/nixpkgs/nixos/modules/system/boot/stage-1.nix b/nixpkgs/nixos/modules/system/boot/stage-1.nix
index 44287f3cf09b..d606d473d91e 100644
--- a/nixpkgs/nixos/modules/system/boot/stage-1.nix
+++ b/nixpkgs/nixos/modules/system/boot/stage-1.nix
@@ -205,13 +205,22 @@ let
     ''; # */
 
 
+  # Networkd link files are used early by udev to set up interfaces early.
+  # This must be done in stage 1 to avoid race conditions between udev and
+  # network daemons.
   linkUnits = pkgs.runCommand "link-units" {
       allowedReferences = [ extraUtils ];
       preferLocalBuild = true;
-    } ''
+    } (''
       mkdir -p $out
       cp -v ${udev}/lib/systemd/network/*.link $out/
-    '';
+      '' + (
+      let
+        links = filterAttrs (n: v: hasSuffix ".link" n) config.systemd.network.units;
+        files = mapAttrsToList (n: v: "${v.unit}/${n}") links;
+      in
+        concatMapStringsSep "\n" (file: "cp -v ${file} $out/") files
+      ));
 
   udevRules = pkgs.runCommand "udev-rules" {
       allowedReferences = [ extraUtils ];
@@ -377,7 +386,7 @@ let
           ) config.boot.initrd.secrets)
          }
 
-        (cd "$tmp" && find . -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null) | \
+        (cd "$tmp" && find . -print0 | sort -z | cpio --quiet -o -H newc -R +0:+0 --reproducible --null) | \
           ${compressorExe} ${lib.escapeShellArgs initialRamdisk.compressorArgs} >> "$1"
       '';
 
diff --git a/nixpkgs/nixos/modules/system/boot/stage-2-init.sh b/nixpkgs/nixos/modules/system/boot/stage-2-init.sh
index 936077b9df1e..50ee0b8841e5 100644
--- a/nixpkgs/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixpkgs/nixos/modules/system/boot/stage-2-init.sh
@@ -167,6 +167,7 @@ exec {logOutFd}>&- {logErrFd}>&-
 
 # Start systemd.
 echo "starting systemd..."
+
 PATH=/run/current-system/systemd/lib/systemd:@fsPackagesPath@ \
-    LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive \
+    LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive @systemdUnitPathEnvVar@ \
     exec @systemdExecutable@
diff --git a/nixpkgs/nixos/modules/system/boot/stage-2.nix b/nixpkgs/nixos/modules/system/boot/stage-2.nix
index 94bc34fea0db..f6b6a8e4b0b4 100644
--- a/nixpkgs/nixos/modules/system/boot/stage-2.nix
+++ b/nixpkgs/nixos/modules/system/boot/stage-2.nix
@@ -10,7 +10,7 @@ let
     src = ./stage-2-init.sh;
     shellDebug = "${pkgs.bashInteractive}/bin/bash";
     shell = "${pkgs.bash}/bin/bash";
-    inherit (config.boot) systemdExecutable;
+    inherit (config.boot) systemdExecutable extraSystemdUnitPaths;
     isExecutable = true;
     inherit (config.nix) readOnlyStore;
     inherit useHostResolvConf;
@@ -20,6 +20,10 @@ let
       pkgs.util-linux
     ] ++ lib.optional useHostResolvConf pkgs.openresolv);
     fsPackagesPath = lib.makeBinPath config.system.fsPackages;
+    systemdUnitPathEnvVar = lib.optionalString (config.boot.extraSystemdUnitPaths != [])
+      ("SYSTEMD_UNIT_PATH="
+      + builtins.concatStringsSep ":" config.boot.extraSystemdUnitPaths
+      + ":"); # If SYSTEMD_UNIT_PATH ends with an empty component (":"), the usual unit load path will be appended to the contents of the variable
     postBootCommands = pkgs.writeText "local-cmds"
       ''
         ${config.boot.postBootCommands}
@@ -82,6 +86,15 @@ in
           PATH.
         '';
       };
+
+      extraSystemdUnitPaths = mkOption {
+        default = [];
+        type = types.listOf types.str;
+        description = ''
+          Additional paths that get appended to the SYSTEMD_UNIT_PATH environment variable
+          that can contain mutable unit files.
+        '';
+      };
     };
 
   };
diff --git a/nixpkgs/nixos/modules/system/boot/systemd.nix b/nixpkgs/nixos/modules/system/boot/systemd.nix
index f5e6bd2903d0..484a455683aa 100644
--- a/nixpkgs/nixos/modules/system/boot/systemd.nix
+++ b/nixpkgs/nixos/modules/system/boot/systemd.nix
@@ -84,6 +84,7 @@ let
       # Kernel module loading.
       "systemd-modules-load.service"
       "kmod-static-nodes.service"
+      "modprobe@.service"
 
       # Filesystems.
       "systemd-fsck@.service"
@@ -175,8 +176,10 @@ let
       "timers.target.wants"
     ];
 
-  upstreamUserUnits =
-    [ "basic.target"
+    upstreamUserUnits = [
+      "app.slice"
+      "background.slice"
+      "basic.target"
       "bluetooth.target"
       "default.target"
       "exit.target"
@@ -184,6 +187,7 @@ let
       "graphical-session.target"
       "paths.target"
       "printer.target"
+      "session.slice"
       "shutdown.target"
       "smartcard.target"
       "sockets.target"
@@ -193,6 +197,7 @@ let
       "systemd-tmpfiles-clean.timer"
       "systemd-tmpfiles-setup.service"
       "timers.target"
+      "xdg-desktop-autostart.target"
     ];
 
   makeJobScript = name: text:
@@ -1185,9 +1190,12 @@ in
     systemd.services.systemd-remount-fs.unitConfig.ConditionVirtualization = "!container";
     systemd.services.systemd-random-seed.unitConfig.ConditionVirtualization = "!container";
 
-    boot.kernel.sysctl = mkIf (!cfg.coredump.enable) {
-      "kernel.core_pattern" = "core";
-    };
+    boot.kernel.sysctl."kernel.core_pattern" = mkIf (!cfg.coredump.enable) "core";
+
+    # Increase numeric PID range (set directly instead of copying a one-line file from systemd)
+    # https://github.com/systemd/systemd/pull/12226
+    boot.kernel.sysctl."kernel.pid_max" = mkIf pkgs.stdenv.is64bit (lib.mkDefault 4194304);
+
     boot.kernelParams = optional (!cfg.enableUnifiedCgroupHierarchy) "systemd.unified_cgroup_hierarchy=0";
   };
 
diff --git a/nixpkgs/nixos/modules/tasks/filesystems.nix b/nixpkgs/nixos/modules/tasks/filesystems.nix
index a9b5b134d889..e468cb880039 100644
--- a/nixpkgs/nixos/modules/tasks/filesystems.nix
+++ b/nixpkgs/nixos/modules/tasks/filesystems.nix
@@ -22,8 +22,6 @@ let
                      # their assertions too
                      (attrValues config.fileSystems);
 
-  prioOption = prio: optionalString (prio != null) " pri=${toString prio}";
-
   specialFSTypes = [ "proc" "sysfs" "tmpfs" "ramfs" "devtmpfs" "devpts" ];
 
   coreFileSystemOpts = { name, config, ... }: {
@@ -240,6 +238,8 @@ in
         skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck;
         # https://wiki.archlinux.org/index.php/fstab#Filepath_spaces
         escape = string: builtins.replaceStrings [ " " "\t" ] [ "\\040" "\\011" ] string;
+        swapOptions = sw: "defaults"
+          + optionalString (sw.priority != null) ",pri=${toString sw.priority}";
       in ''
         # This is a generated file.  Do not edit!
         #
@@ -262,7 +262,7 @@ in
 
         # Swap devices.
         ${flip concatMapStrings config.swapDevices (sw:
-            "${sw.realDevice} none swap${prioOption sw.priority}\n"
+            "${sw.realDevice} none swap ${swapOptions sw}\n"
         )}
       '';
 
diff --git a/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix b/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
index 59676e996785..97fab6f11ea2 100644
--- a/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
@@ -302,7 +302,7 @@ in
     };
 
     services.zfs.autoScrub = {
-      enable = mkEnableOption "Enables periodic scrubbing of ZFS pools.";
+      enable = mkEnableOption "periodic scrubbing of ZFS pools";
 
       interval = mkOption {
         default = "Sun, 02:00";
diff --git a/nixpkgs/nixos/modules/tasks/network-interfaces-scripted.nix b/nixpkgs/nixos/modules/tasks/network-interfaces-scripted.nix
index 9ba6ccfbe716..11bd159319a3 100644
--- a/nixpkgs/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixpkgs/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -101,7 +101,7 @@ let
 
             unitConfig.ConditionCapability = "CAP_NET_ADMIN";
 
-            path = [ pkgs.iproute ];
+            path = [ pkgs.iproute2 ];
 
             serviceConfig = {
               Type = "oneshot";
@@ -185,7 +185,7 @@ let
             # Restart rather than stop+start this unit to prevent the
             # network from dying during switch-to-configuration.
             stopIfChanged = false;
-            path = [ pkgs.iproute ];
+            path = [ pkgs.iproute2 ];
             script =
               ''
                 state="/run/nixos/network/addresses/${i.name}"
@@ -258,7 +258,7 @@ let
             wantedBy = [ "network-setup.service" (subsystemDevice i.name) ];
             partOf = [ "network-setup.service" ];
             before = [ "network-setup.service" ];
-            path = [ pkgs.iproute ];
+            path = [ pkgs.iproute2 ];
             serviceConfig = {
               Type = "oneshot";
               RemainAfterExit = true;
@@ -284,7 +284,7 @@ let
             before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
-            path = [ pkgs.iproute ];
+            path = [ pkgs.iproute2 ];
             script = ''
               # Remove Dead Interfaces
               echo "Removing old bridge ${n}..."
@@ -372,7 +372,7 @@ let
             wants = deps; # if one or more interface fails, the switch should continue to run
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
-            path = [ pkgs.iproute config.virtualisation.vswitch.package ];
+            path = [ pkgs.iproute2 config.virtualisation.vswitch.package ];
             preStart = ''
               echo "Resetting Open vSwitch ${n}..."
               ovs-vsctl --if-exists del-br ${n} -- add-br ${n} \
@@ -413,7 +413,7 @@ let
             before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
-            path = [ pkgs.iproute pkgs.gawk ];
+            path = [ pkgs.iproute2 pkgs.gawk ];
             script = ''
               echo "Destroying old bond ${n}..."
               ${destroyBond n}
@@ -451,7 +451,7 @@ let
             before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
-            path = [ pkgs.iproute ];
+            path = [ pkgs.iproute2 ];
             script = ''
               # Remove Dead Interfaces
               ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
@@ -476,7 +476,7 @@ let
             before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
-            path = [ pkgs.iproute ];
+            path = [ pkgs.iproute2 ];
             script = ''
               # Remove Dead Interfaces
               ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
@@ -504,7 +504,7 @@ let
             before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
-            path = [ pkgs.iproute ];
+            path = [ pkgs.iproute2 ];
             script = ''
               # Remove Dead Interfaces
               ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
diff --git a/nixpkgs/nixos/modules/tasks/network-interfaces-systemd.nix b/nixpkgs/nixos/modules/tasks/network-interfaces-systemd.nix
index 088bffd7c508..1c145e8ff477 100644
--- a/nixpkgs/nixos/modules/tasks/network-interfaces-systemd.nix
+++ b/nixpkgs/nixos/modules/tasks/network-interfaces-systemd.nix
@@ -93,17 +93,7 @@ in
             (if i.useDHCP != null then i.useDHCP else false));
           address = forEach (interfaceIps i)
             (ip: "${ip.address}/${toString ip.prefixLength}");
-          # IPv6PrivacyExtensions=kernel seems to be broken with networkd.
-          # Instead of using IPv6PrivacyExtensions=kernel, configure it according to the value of
-          # `tempAddress`:
-          networkConfig.IPv6PrivacyExtensions = {
-            # generate temporary addresses and use them by default
-            "default" = true;
-            # generate temporary addresses but keep using the standard EUI-64 ones by default
-            "enabled" = "prefer-public";
-            # completely disable temporary addresses
-            "disabled" = false;
-          }.${i.tempAddress};
+          networkConfig.IPv6PrivacyExtensions = "kernel";
           linkConfig = optionalAttrs (i.macAddress != null) {
             MACAddress = i.macAddress;
           } // optionalAttrs (i.mtu != null) {
@@ -269,7 +259,7 @@ in
             wants = deps; # if one or more interface fails, the switch should continue to run
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
-            path = [ pkgs.iproute config.virtualisation.vswitch.package ];
+            path = [ pkgs.iproute2 config.virtualisation.vswitch.package ];
             preStart = ''
               echo "Resetting Open vSwitch ${n}..."
               ovs-vsctl --if-exists del-br ${n} -- add-br ${n} \
diff --git a/nixpkgs/nixos/modules/tasks/network-interfaces.nix b/nixpkgs/nixos/modules/tasks/network-interfaces.nix
index f730ec82bdf5..f501f85b2a92 100644
--- a/nixpkgs/nixos/modules/tasks/network-interfaces.nix
+++ b/nixpkgs/nixos/modules/tasks/network-interfaces.nix
@@ -1144,7 +1144,7 @@ in
 
     environment.systemPackages =
       [ pkgs.host
-        pkgs.iproute
+        pkgs.iproute2
         pkgs.iputils
         pkgs.nettools
       ]
@@ -1171,7 +1171,7 @@ in
         wantedBy = [ "network.target" ];
         after = [ "network-pre.target" ];
         unitConfig.ConditionCapability = "CAP_NET_ADMIN";
-        path = [ pkgs.iproute ];
+        path = [ pkgs.iproute2 ];
         serviceConfig.Type = "oneshot";
         serviceConfig.RemainAfterExit = true;
         script = ''
@@ -1249,7 +1249,7 @@ in
               ${optionalString (current.type == "mesh" && current.meshID!=null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${current.meshID}"}
               ${optionalString (current.type == "monitor" && current.flags!=null) "${pkgs.iw}/bin/iw dev ${device} set monitor ${current.flags}"}
               ${optionalString (current.type == "managed" && current.fourAddr!=null) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if current.fourAddr then "on" else "off"}"}
-              ${optionalString (current.mac != null) "${pkgs.iproute}/bin/ip link set dev ${device} address ${current.mac}"}
+              ${optionalString (current.mac != null) "${pkgs.iproute2}/bin/ip link set dev ${device} address ${current.mac}"}
             '';
 
             # Udev script to execute for a new WLAN interface. The script configures the new WLAN interface.
@@ -1260,7 +1260,7 @@ in
               ${optionalString (new.type == "mesh" && new.meshID!=null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${new.meshID}"}
               ${optionalString (new.type == "monitor" && new.flags!=null) "${pkgs.iw}/bin/iw dev ${device} set monitor ${new.flags}"}
               ${optionalString (new.type == "managed" && new.fourAddr!=null) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if new.fourAddr then "on" else "off"}"}
-              ${optionalString (new.mac != null) "${pkgs.iproute}/bin/ip link set dev ${device} address ${new.mac}"}
+              ${optionalString (new.mac != null) "${pkgs.iproute2}/bin/ip link set dev ${device} address ${new.mac}"}
             '';
 
             # Udev attributes for systemd to name the device and to create a .device target.
diff --git a/nixpkgs/nixos/modules/virtualisation/amazon-init.nix b/nixpkgs/nixos/modules/virtualisation/amazon-init.nix
index c5470b7af09b..be83607c0af7 100644
--- a/nixpkgs/nixos/modules/virtualisation/amazon-init.nix
+++ b/nixpkgs/nixos/modules/virtualisation/amazon-init.nix
@@ -1,6 +1,10 @@
-{ config, pkgs, ... }:
+{ config, lib, pkgs, ... }:
+
+with lib;
 
 let
+  cfg = config.virtualisation.amazon-init;
+
   script = ''
     #!${pkgs.runtimeShell} -eu
 
@@ -41,20 +45,33 @@ let
     nixos-rebuild switch
   '';
 in {
-  systemd.services.amazon-init = {
-    inherit script;
-    description = "Reconfigure the system from EC2 userdata on startup";
 
-    wantedBy = [ "multi-user.target" ];
-    after = [ "multi-user.target" ];
-    requires = [ "network-online.target" ];
+  options.virtualisation.amazon-init = {
+    enable = mkOption {
+      default = true;
+      type = types.bool;
+      description = ''
+        Enable or disable the amazon-init service.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.amazon-init = {
+      inherit script;
+      description = "Reconfigure the system from EC2 userdata on startup";
+
+      wantedBy = [ "multi-user.target" ];
+      after = [ "multi-user.target" ];
+      requires = [ "network-online.target" ];
 
-    restartIfChanged = false;
-    unitConfig.X-StopOnRemoval = false;
+      restartIfChanged = false;
+      unitConfig.X-StopOnRemoval = false;
 
-    serviceConfig = {
-      Type = "oneshot";
-      RemainAfterExit = true;
+      serviceConfig = {
+        Type = "oneshot";
+        RemainAfterExit = true;
+      };
     };
   };
 }
diff --git a/nixpkgs/nixos/modules/virtualisation/anbox.nix b/nixpkgs/nixos/modules/virtualisation/anbox.nix
index da5df3580734..7b096bd1a9fb 100644
--- a/nixpkgs/nixos/modules/virtualisation/anbox.nix
+++ b/nixpkgs/nixos/modules/virtualisation/anbox.nix
@@ -98,7 +98,6 @@ in
       environment.XDG_RUNTIME_DIR="${anboxloc}";
 
       wantedBy = [ "multi-user.target" ];
-      after = [ "systemd-udev-settle.service" ];
       preStart = let
         initsh = pkgs.writeText "nixos-init" (''
           #!/system/bin/sh
diff --git a/nixpkgs/nixos/modules/virtualisation/brightbox-image.nix b/nixpkgs/nixos/modules/virtualisation/brightbox-image.nix
index 4498e3a73618..9641b693f184 100644
--- a/nixpkgs/nixos/modules/virtualisation/brightbox-image.nix
+++ b/nixpkgs/nixos/modules/virtualisation/brightbox-image.nix
@@ -119,7 +119,7 @@ in
       wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
 
-      path = [ pkgs.wget pkgs.iproute ];
+      path = [ pkgs.wget pkgs.iproute2 ];
 
       script =
         ''
diff --git a/nixpkgs/nixos/modules/virtualisation/containerd.nix b/nixpkgs/nixos/modules/virtualisation/containerd.nix
new file mode 100644
index 000000000000..194276d16958
--- /dev/null
+++ b/nixpkgs/nixos/modules/virtualisation/containerd.nix
@@ -0,0 +1,60 @@
+{ pkgs, lib, config, ... }:
+let
+  cfg = config.virtualisation.containerd;
+  containerdConfigChecked = pkgs.runCommand "containerd-config-checked.toml" { nativeBuildInputs = [pkgs.containerd]; } ''
+    containerd -c ${cfg.configFile} config dump >/dev/null
+    ln -s ${cfg.configFile} $out
+  '';
+in
+{
+
+  options.virtualisation.containerd = with lib.types; {
+    enable = lib.mkEnableOption "containerd container runtime";
+
+    configFile = lib.mkOption {
+      default = null;
+      description = "path to containerd config file";
+      type = nullOr path;
+    };
+
+    args = lib.mkOption {
+      default = {};
+      description = "extra args to append to the containerd cmdline";
+      type = attrsOf str;
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    virtualisation.containerd.args.config = lib.mkIf (cfg.configFile != null) (toString containerdConfigChecked);
+
+    environment.systemPackages = [pkgs.containerd];
+
+    systemd.services.containerd = {
+      description = "containerd - container runtime";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      path = with pkgs; [
+        containerd
+        runc
+        iptables
+      ];
+      serviceConfig = {
+        ExecStart = ''${pkgs.containerd}/bin/containerd ${lib.concatStringsSep " " (lib.cli.toGNUCommandLine {} cfg.args)}'';
+        Delegate = "yes";
+        KillMode = "process";
+        Type = "notify";
+        Restart = "always";
+        RestartSec = "5";
+        StartLimitBurst = "8";
+        StartLimitIntervalSec = "120s";
+
+        # "limits" defined below are adopted from upstream: https://github.com/containerd/containerd/blob/master/containerd.service
+        LimitNPROC = "infinity";
+        LimitCORE = "infinity";
+        LimitNOFILE = "infinity";
+        TasksMax = "infinity";
+        OOMScoreAdjust = "-999";
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/virtualisation/containers.nix b/nixpkgs/nixos/modules/virtualisation/containers.nix
index 997edf77ba99..148d0221998f 100644
--- a/nixpkgs/nixos/modules/virtualisation/containers.nix
+++ b/nixpkgs/nixos/modules/virtualisation/containers.nix
@@ -118,8 +118,9 @@ in
       [network]
       cni_plugin_dirs = ["${pkgs.cni-plugins}/bin/"]
 
-      ${lib.optionalString (cfg.ociSeccompBpfHook.enable == true) ''
       [engine]
+      init_path = "${pkgs.catatonit}/bin/catatonit"
+      ${lib.optionalString (cfg.ociSeccompBpfHook.enable) ''
       hooks_dir = [
         "${config.boot.kernelPackages.oci-seccomp-bpf-hook}",
       ]
diff --git a/nixpkgs/nixos/modules/virtualisation/ec2-data.nix b/nixpkgs/nixos/modules/virtualisation/ec2-data.nix
index 629125350182..1b764e7e4d80 100644
--- a/nixpkgs/nixos/modules/virtualisation/ec2-data.nix
+++ b/nixpkgs/nixos/modules/virtualisation/ec2-data.nix
@@ -19,7 +19,7 @@ with lib;
         wantedBy = [ "multi-user.target" "sshd.service" ];
         before = [ "sshd.service" ];
 
-        path = [ pkgs.iproute ];
+        path = [ pkgs.iproute2 ];
 
         script =
           ''
diff --git a/nixpkgs/nixos/modules/virtualisation/fetch-instance-ssh-keys.bash b/nixpkgs/nixos/modules/virtualisation/fetch-instance-ssh-keys.bash
new file mode 100644
index 000000000000..4a8601961115
--- /dev/null
+++ b/nixpkgs/nixos/modules/virtualisation/fetch-instance-ssh-keys.bash
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+WGET() {
+    wget --retry-connrefused -t 15 --waitretry=10 --header='Metadata-Flavor: Google' "$@"
+}
+
+# When dealing with cryptographic keys, we want to keep things private.
+umask 077
+mkdir -p /root/.ssh
+
+echo "Fetching authorized keys..."
+WGET -O /tmp/auth_keys http://metadata.google.internal/computeMetadata/v1/instance/attributes/sshKeys
+
+# Read keys one by one, split in case Google decided
+# to append metadata (it does sometimes) and add to
+# authorized_keys if not already present.
+touch /root/.ssh/authorized_keys
+while IFS='' read -r line || [[ -n "$line" ]]; do
+    keyLine=$(echo -n "$line" | cut -d ':' -f2)
+    IFS=' ' read -r -a array <<<"$keyLine"
+    if [[ ${#array[@]} -ge 3 ]]; then
+        echo "${array[@]:0:3}" >>/tmp/new_keys
+        echo "Added ${array[*]:2} to authorized_keys"
+    fi
+done </tmp/auth_keys
+mv /tmp/new_keys /root/.ssh/authorized_keys
+chmod 600 /root/.ssh/authorized_keys
+
+echo "Fetching host keys..."
+WGET -O /tmp/ssh_host_ed25519_key http://metadata.google.internal/computeMetadata/v1/instance/attributes/ssh_host_ed25519_key
+WGET -O /tmp/ssh_host_ed25519_key.pub http://metadata.google.internal/computeMetadata/v1/instance/attributes/ssh_host_ed25519_key_pub
+mv -f /tmp/ssh_host_ed25519_key* /etc/ssh/
+chmod 600 /etc/ssh/ssh_host_ed25519_key
+chmod 644 /etc/ssh/ssh_host_ed25519_key.pub
diff --git a/nixpkgs/nixos/modules/virtualisation/gce-images.nix b/nixpkgs/nixos/modules/virtualisation/gce-images.nix
index 5354d91deb93..7b027619a443 100644
--- a/nixpkgs/nixos/modules/virtualisation/gce-images.nix
+++ b/nixpkgs/nixos/modules/virtualisation/gce-images.nix
@@ -5,5 +5,13 @@ let self = {
   "17.03" = "gs://nixos-cloud-images/nixos-image-17.03.1082.4aab5c5798-x86_64-linux.raw.tar.gz";
   "18.03" = "gs://nixos-cloud-images/nixos-image-18.03.132536.fdb5ba4cdf9-x86_64-linux.raw.tar.gz";
   "18.09" = "gs://nixos-cloud-images/nixos-image-18.09.1228.a4c4cbb613c-x86_64-linux.raw.tar.gz";
-  latest = self."18.09";
+
+  # This format will be handled by the upcoming NixOPS 2.0 release.
+  # The old images based on a GS object are deprecated.
+  "20.09" = {
+    project = "nixos-cloud";
+    name = "nixos-image-20-09-3531-3858fbc08e6-x86-64-linux";
+  };
+
+  latest = self."20.09";
 }; in self
diff --git a/nixpkgs/nixos/modules/virtualisation/google-compute-config.nix b/nixpkgs/nixos/modules/virtualisation/google-compute-config.nix
index 327324f2921d..cff48d20b2b9 100644
--- a/nixpkgs/nixos/modules/virtualisation/google-compute-config.nix
+++ b/nixpkgs/nixos/modules/virtualisation/google-compute-config.nix
@@ -69,6 +69,31 @@ in
   # GC has 1460 MTU
   networking.interfaces.eth0.mtu = 1460;
 
+  # Used by NixOps
+  systemd.services.fetch-instance-ssh-keys = {
+    description = "Fetch host keys and authorized_keys for root user";
+
+    wantedBy = [ "sshd.service" ];
+    before = [ "sshd.service" ];
+    after = [ "network-online.target" ];
+    wants = [ "network-online.target" ];
+    path = [ pkgs.wget ];
+
+    serviceConfig = {
+      Type = "oneshot";
+      ExecStart = pkgs.runCommand "fetch-instance-ssh-keys" { } ''
+        cp ${./fetch-instance-ssh-keys.bash} $out
+        chmod +x $out
+        ${pkgs.shfmt}/bin/shfmt -i 4 -d $out
+        ${pkgs.shellcheck}/bin/shellcheck $out
+        patchShebangs $out
+      '';
+      PrivateTmp = true;
+      StandardError = "journal+console";
+      StandardOutput = "journal+console";
+    };
+  };
+
   systemd.services.google-instance-setup = {
     description = "Google Compute Engine Instance Setup";
     after = [ "network-online.target" "network.target" "rsyslog.service" ];
@@ -85,7 +110,7 @@ in
   systemd.services.google-network-daemon = {
     description = "Google Compute Engine Network Daemon";
     after = [ "network-online.target" "network.target" "google-instance-setup.service" ];
-    path = with pkgs; [ iproute ];
+    path = with pkgs; [ iproute2 ];
     serviceConfig = {
       ExecStart = "${gce}/bin/google_network_daemon";
       StandardOutput="journal+console";
diff --git a/nixpkgs/nixos/modules/virtualisation/hyperv-guest.nix b/nixpkgs/nixos/modules/virtualisation/hyperv-guest.nix
index adc2810a9939..a3656c307f96 100644
--- a/nixpkgs/nixos/modules/virtualisation/hyperv-guest.nix
+++ b/nixpkgs/nixos/modules/virtualisation/hyperv-guest.nix
@@ -31,6 +31,8 @@ in {
         "hv_balloon" "hv_netvsc" "hv_storvsc" "hv_utils" "hv_vmbus"
       ];
 
+      initrd.availableKernelModules = [ "hyperv_keyboard" ];
+
       kernelParams = [
         "video=hyperv_fb:${cfg.videoMode} elevator=noop"
       ];
@@ -38,8 +40,6 @@ in {
 
     environment.systemPackages = [ config.boot.kernelPackages.hyperv-daemons.bin ];
 
-    security.rngd.enable = false;
-
     # enable hotadding cpu/memory
     services.udev.packages = lib.singleton (pkgs.writeTextFile {
       name = "hyperv-cpu-and-memory-hotadd-udev-rules";
diff --git a/nixpkgs/nixos/modules/virtualisation/libvirtd.nix b/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
index 1d6a9457dde4..6357baf29e01 100644
--- a/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
@@ -213,7 +213,7 @@ in {
 
     systemd.services.libvirtd = {
       requires = [ "libvirtd-config.service" ];
-      after = [ "systemd-udev-settle.service" "libvirtd-config.service" ]
+      after = [ "libvirtd-config.service" ]
               ++ optional vswitch.enable "ovs-vswitchd.service";
 
       environment.LIBVIRTD_ARGS = escapeShellArgs (
diff --git a/nixpkgs/nixos/modules/virtualisation/lxd.nix b/nixpkgs/nixos/modules/virtualisation/lxd.nix
index 4b2adf4cc699..96e8d68ae50e 100644
--- a/nixpkgs/nixos/modules/virtualisation/lxd.nix
+++ b/nixpkgs/nixos/modules/virtualisation/lxd.nix
@@ -66,7 +66,7 @@ in {
         type = types.bool;
         default = false;
         description = ''
-          enables various settings to avoid common pitfalls when
+          Enables various settings to avoid common pitfalls when
           running containers requiring many file operations.
           Fixes errors like "Too many open files" or
           "neighbour: ndisc_cache: neighbor table overflow!".
@@ -74,6 +74,17 @@ in {
           for details.
         '';
       };
+
+      startTimeout = mkOption {
+        type = types.int;
+        default = 600;
+        apply = toString;
+        description = ''
+          Time to wait (in seconds) for LXD to become ready to process requests.
+          If LXD does not reply within the configured time, lxd.service will be
+          considered failed and systemd will attempt to restart it.
+        '';
+      };
     };
   };
 
@@ -81,40 +92,58 @@ in {
   config = mkIf cfg.enable {
     environment.systemPackages = [ cfg.package ];
 
-    security.apparmor = {
-      enable = true;
-      profiles = [
-        "${cfg.lxcPackage}/etc/apparmor.d/usr.bin.lxc-start"
-        "${cfg.lxcPackage}/etc/apparmor.d/lxc-containers"
-      ];
-      packages = [ cfg.lxcPackage ];
-    };
+    # Note: the following options are also declared in virtualisation.lxc, but
+    # the latter can't be simply enabled to reuse the formers, because it
+    # does a bunch of unrelated things.
+    systemd.tmpfiles.rules = [ "d /var/lib/lxc/rootfs 0755 root root -" ];
+
+    security.apparmor.packages = [ cfg.lxcPackage ];
+    security.apparmor.profiles = [
+      "${cfg.lxcPackage}/etc/apparmor.d/lxc-containers"
+      "${cfg.lxcPackage}/etc/apparmor.d/usr.bin.lxc-start"
+    ];
 
     # TODO: remove once LXD gets proper support for cgroupsv2
     # (currently most of the e.g. CPU accounting stuff doesn't work)
     systemd.enableUnifiedCgroupHierarchy = false;
 
+    systemd.sockets.lxd = {
+      description = "LXD UNIX socket";
+      wantedBy = [ "sockets.target" ];
+
+      socketConfig = {
+        ListenStream = "/var/lib/lxd/unix.socket";
+        SocketMode = "0660";
+        SocketGroup = "lxd";
+        Service = "lxd.service";
+      };
+    };
+
     systemd.services.lxd = {
       description = "LXD Container Management Daemon";
 
       wantedBy = [ "multi-user.target" ];
-      after = [ "systemd-udev-settle.service" ];
+      after = [ "network-online.target" "lxcfs.service" ];
+      requires = [ "network-online.target" "lxd.socket"  "lxcfs.service" ];
+      documentation = [ "man:lxd(1)" ];
 
-      path = lib.optional config.boot.zfs.enabled config.boot.zfs.package;
-
-      preStart = ''
-        mkdir -m 0755 -p /var/lib/lxc/rootfs
-      '';
+      path = optional cfg.zfsSupport config.boot.zfs.package;
 
       serviceConfig = {
         ExecStart = "@${cfg.package}/bin/lxd lxd --group lxd";
-        Type = "simple";
+        ExecStartPost = "${cfg.package}/bin/lxd waitready --timeout=${cfg.startTimeout}";
+        ExecStop = "${cfg.package}/bin/lxd shutdown";
+
         KillMode = "process"; # when stopping, leave the containers alone
         LimitMEMLOCK = "infinity";
         LimitNOFILE = "1048576";
         LimitNPROC = "infinity";
         TasksMax = "infinity";
 
+        Restart = "on-failure";
+        TimeoutStartSec = "${cfg.startTimeout}s";
+        TimeoutStopSec = "30s";
+
         # By default, `lxd` loads configuration files from hard-coded
         # `/usr/share/lxc/config` - since this is a no-go for us, we have to
         # explicitly tell it where the actual configuration files are
diff --git a/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix b/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
index f06977f88fc1..f15d58758412 100644
--- a/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
+++ b/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
@@ -271,8 +271,8 @@ let
     DeviceAllow = map (d: "${d.node} ${d.modifier}") cfg.allowedDevices;
   };
 
-
   system = config.nixpkgs.localSystem.system;
+  kernelVersion = config.boot.kernelPackages.kernel.version;
 
   bindMountOpts = { name, ... }: {
 
@@ -321,7 +321,6 @@ let
     };
   };
 
-
   mkBindFlag = d:
                let flagPrefix = if d.isReadOnly then " --bind-ro=" else " --bind=";
                    mountstr = if d.hostPath != null then "${d.hostPath}:${d.mountPoint}" else "${d.mountPoint}";
@@ -482,11 +481,16 @@ in
                           networking.useDHCP = false;
                           assertions = [
                             {
-                              assertion =  config.privateNetwork -> stringLength name < 12;
+                              assertion =
+                                (builtins.compareVersions kernelVersion "5.8" <= 0)
+                                -> config.privateNetwork
+                                -> stringLength name <= 11;
                               message = ''
                                 Container name `${name}` is too long: When `privateNetwork` is enabled, container names can
                                 not be longer than 11 characters, because the container's interface name is derived from it.
-                                This might be fixed in the future. See https://github.com/NixOS/nixpkgs/issues/38509
+                                You should either make the container name shorter or upgrade to a more recent kernel that
+                                supports interface altnames (i.e. at least Linux 5.8 - please see https://github.com/NixOS/nixpkgs/issues/38509
+                                for details).
                               '';
                             }
                           ];
@@ -500,7 +504,7 @@ in
 
             path = mkOption {
               type = types.path;
-              example = "/nix/var/nix/profiles/containers/webserver";
+              example = "/nix/var/nix/profiles/per-container/webserver";
               description = ''
                 As an alternative to specifying
                 <option>config</option>, you can specify the path to
@@ -735,7 +739,7 @@ in
 
       unitConfig.RequiresMountsFor = "/var/lib/containers/%i";
 
-      path = [ pkgs.iproute ];
+      path = [ pkgs.iproute2 ];
 
       environment = {
         root = "/var/lib/containers/%i";
diff --git a/nixpkgs/nixos/modules/virtualisation/podman.nix b/nixpkgs/nixos/modules/virtualisation/podman.nix
index 98da5a096d91..0223c0df1f22 100644
--- a/nixpkgs/nixos/modules/virtualisation/podman.nix
+++ b/nixpkgs/nixos/modules/virtualisation/podman.nix
@@ -105,6 +105,16 @@ in
           }));
       };
 
+      systemd.packages = [ cfg.package ];
+
+      systemd.services.podman.serviceConfig = {
+        ExecStart = [ "" "${cfg.package}/bin/podman $LOGGING system service" ];
+      };
+
+      systemd.sockets.podman.wantedBy = [ "sockets.target" ];
+
+      systemd.tmpfiles.packages = [ cfg.package ];
+
       assertions = [
         {
           assertion = cfg.dockerCompat -> !config.virtualisation.docker.enable;
diff --git a/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix b/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
index bf3615f2fe71..d9935bcafb71 100644
--- a/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
@@ -7,7 +7,7 @@
 # the VM in the host.  On the other hand, the root filesystem is a
 # read/writable disk image persistent across VM reboots.
 
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 with import ../../lib/qemu-flags.nix { inherit pkgs; };
@@ -266,6 +266,8 @@ in
 
   options = {
 
+    virtualisation.fileSystems = options.fileSystems;
+
     virtualisation.memorySize =
       mkOption {
         default = 384;
@@ -275,6 +277,18 @@ in
           '';
       };
 
+    virtualisation.msize =
+      mkOption {
+        default = null;
+        type = types.nullOr types.ints.unsigned;
+        description =
+          ''
+            msize (maximum packet size) option passed to 9p file systems, in
+            bytes. Increasing this should increase performance significantly,
+            at the cost of higher RAM usage.
+          '';
+      };
+
     virtualisation.diskSize =
       mkOption {
         default = 512;
@@ -659,11 +673,12 @@ in
     # attribute should be disregarded for the purpose of building a VM
     # test image (since those filesystems don't exist in the VM).
     fileSystems = mkVMOverride (
+      cfg.fileSystems //
       { "/".device = cfg.bootDevice;
         ${if cfg.writableStore then "/nix/.ro-store" else "/nix/store"} =
           { device = "store";
             fsType = "9p";
-            options = [ "trans=virtio" "version=9p2000.L" "cache=loose" ];
+            options = [ "trans=virtio" "version=9p2000.L" "cache=loose" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
             neededForBoot = true;
           };
         "/tmp" = mkIf config.boot.tmpOnTmpfs
@@ -676,13 +691,13 @@ in
         "/tmp/xchg" =
           { device = "xchg";
             fsType = "9p";
-            options = [ "trans=virtio" "version=9p2000.L" ];
+            options = [ "trans=virtio" "version=9p2000.L" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
             neededForBoot = true;
           };
         "/tmp/shared" =
           { device = "shared";
             fsType = "9p";
-            options = [ "trans=virtio" "version=9p2000.L" ];
+            options = [ "trans=virtio" "version=9p2000.L" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
             neededForBoot = true;
           };
       } // optionalAttrs (cfg.writableStore && cfg.writableStoreUseTmpfs)
diff --git a/nixpkgs/nixos/modules/virtualisation/xe-guest-utilities.nix b/nixpkgs/nixos/modules/virtualisation/xe-guest-utilities.nix
index 675cf9297371..25ccbaebc077 100644
--- a/nixpkgs/nixos/modules/virtualisation/xe-guest-utilities.nix
+++ b/nixpkgs/nixos/modules/virtualisation/xe-guest-utilities.nix
@@ -17,7 +17,7 @@ in {
       wantedBy    = [ "multi-user.target" ];
       after = [ "xe-linux-distribution.service" ];
       requires = [ "proc-xen.mount" ];
-      path = [ pkgs.coreutils pkgs.iproute ];
+      path = [ pkgs.coreutils pkgs.iproute2 ];
       serviceConfig = {
         PIDFile = "/run/xe-daemon.pid";
         ExecStart = "${pkgs.xe-guest-utilities}/bin/xe-daemon -p /run/xe-daemon.pid";
diff --git a/nixpkgs/nixos/modules/virtualisation/xen-dom0.nix b/nixpkgs/nixos/modules/virtualisation/xen-dom0.nix
index 5b57ca860da2..24df1b6ad7c1 100644
--- a/nixpkgs/nixos/modules/virtualisation/xen-dom0.nix
+++ b/nixpkgs/nixos/modules/virtualisation/xen-dom0.nix
@@ -248,7 +248,7 @@ in
     # Xen provides udev rules.
     services.udev.packages = [ cfg.package ];
 
-    services.udev.path = [ pkgs.bridge-utils pkgs.iproute ];
+    services.udev.path = [ pkgs.bridge-utils pkgs.iproute2 ];
 
     systemd.services.xen-store = {
       description = "Xen Store Daemon";
diff --git a/nixpkgs/nixos/release.nix b/nixpkgs/nixos/release.nix
index 109747945f78..327a259de7fa 100644
--- a/nixpkgs/nixos/release.nix
+++ b/nixpkgs/nixos/release.nix
@@ -171,23 +171,23 @@ in rec {
 
   sd_image = forMatchingSystems [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ] (system: makeSdImage {
     module = {
-        armv6l-linux = ./modules/installer/cd-dvd/sd-image-raspberrypi.nix;
-        armv7l-linux = ./modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix;
-        aarch64-linux = ./modules/installer/cd-dvd/sd-image-aarch64.nix;
+        armv6l-linux = ./modules/installer/sd-card/sd-image-raspberrypi-installer.nix;
+        armv7l-linux = ./modules/installer/sd-card/sd-image-armv7l-multiplatform-installer.nix;
+        aarch64-linux = ./modules/installer/sd-card/sd-image-aarch64-installer.nix;
       }.${system};
     inherit system;
   });
 
   sd_image_new_kernel = forMatchingSystems [ "aarch64-linux" ] (system: makeSdImage {
     module = {
-        aarch64-linux = ./modules/installer/cd-dvd/sd-image-aarch64-new-kernel.nix;
+        aarch64-linux = ./modules/installer/sd-card/sd-image-aarch64-new-kernel-installer.nix;
       }.${system};
     type = "minimal-new-kernel";
     inherit system;
   });
 
   sd_image_raspberrypi4 = forMatchingSystems [ "aarch64-linux" ] (system: makeSdImage {
-    module = ./modules/installer/cd-dvd/sd-image-raspberrypi4.nix;
+    module = ./modules/installer/sd-card/sd-image-raspberrypi4-installer.nix;
     inherit system;
   });
 
diff --git a/nixpkgs/nixos/tests/acme.nix b/nixpkgs/nixos/tests/acme.nix
index c6d393d91963..99dd8ec6fd3c 100644
--- a/nixpkgs/nixos/tests/acme.nix
+++ b/nixpkgs/nixos/tests/acme.nix
@@ -253,7 +253,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
 
 
       def check_connection(node, domain, retries=3):
-          assert retries >= 0
+          assert retries >= 0, f"Failed to connect to https://{domain}"
 
           result = node.succeed(
               "openssl s_client -brief -verify 2 -CAfile /tmp/ca.crt"
@@ -262,12 +262,12 @@ in import ./make-test-python.nix ({ lib, ... }: {
 
           for line in result.lower().split("\n"):
               if "verification" in line and "error" in line:
-                  time.sleep(1)
+                  time.sleep(3)
                   return check_connection(node, domain, retries - 1)
 
 
       def check_connection_key_bits(node, domain, bits, retries=3):
-          assert retries >= 0
+          assert retries >= 0, f"Did not find expected number of bits ({bits}) in key"
 
           result = node.succeed(
               "openssl s_client -CAfile /tmp/ca.crt"
@@ -277,12 +277,12 @@ in import ./make-test-python.nix ({ lib, ... }: {
           print("Key type:", result)
 
           if bits not in result:
-              time.sleep(1)
+              time.sleep(3)
               return check_connection_key_bits(node, domain, bits, retries - 1)
 
 
       def check_stapling(node, domain, retries=3):
-          assert retries >= 0
+          assert retries >= 0, "OCSP Stapling check failed"
 
           # Pebble doesn't provide a full OCSP responder, so just check the URL
           result = node.succeed(
@@ -293,10 +293,23 @@ in import ./make-test-python.nix ({ lib, ... }: {
           print("OCSP Responder URL:", result)
 
           if "${caDomain}:4002" not in result.lower():
-              time.sleep(1)
+              time.sleep(3)
               return check_stapling(node, domain, retries - 1)
 
 
+      def download_ca_certs(node, retries=5):
+          assert retries >= 0, "Failed to connect to pebble to download root CA certs"
+
+          exit_code, _ = node.execute("curl https://${caDomain}:15000/roots/0 > /tmp/ca.crt")
+          exit_code_2, _ = node.execute(
+              "curl https://${caDomain}:15000/intermediate-keys/0 >> /tmp/ca.crt"
+          )
+
+          if exit_code + exit_code_2 > 0:
+              time.sleep(3)
+              return download_ca_certs(node, retries - 1)
+
+
       client.start()
       dnsserver.start()
 
@@ -313,8 +326,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
       acme.wait_for_unit("network-online.target")
       acme.wait_for_unit("pebble.service")
 
-      client.succeed("curl https://${caDomain}:15000/roots/0 > /tmp/ca.crt")
-      client.succeed("curl https://${caDomain}:15000/intermediate-keys/0 >> /tmp/ca.crt")
+      download_ca_certs(client)
 
       with subtest("Can request certificate with HTTPS-01 challenge"):
           webserver.wait_for_unit("acme-finished-a.example.test.target")
@@ -322,6 +334,21 @@ in import ./make-test-python.nix ({ lib, ... }: {
           check_issuer(webserver, "a.example.test", "pebble")
           check_connection(client, "a.example.test")
 
+      with subtest("Certificates and accounts have safe + valid permissions"):
+          group = "${nodes.webserver.config.security.acme.certs."a.example.test".group}"
+          webserver.succeed(
+              f"test $(stat -L -c \"%a %U %G\" /var/lib/acme/a.example.test/* | tee /dev/stderr | grep '640 acme {group}' | wc -l) -eq 5"
+          )
+          webserver.succeed(
+              f"test $(stat -L -c \"%a %U %G\" /var/lib/acme/.lego/a.example.test/**/* | tee /dev/stderr | grep '640 acme {group}' | wc -l) -eq 5"
+          )
+          webserver.succeed(
+              f"test $(stat -L -c \"%a %U %G\" /var/lib/acme/a.example.test | tee /dev/stderr | grep '750 acme {group}' | wc -l) -eq 1"
+          )
+          webserver.succeed(
+              f"test $(find /var/lib/acme/accounts -type f -exec stat -L -c \"%a %U %G\" {{}} \\; | tee /dev/stderr | grep -v '600 acme {group}' | wc -l) -eq 0"
+          )
+
       with subtest("Can generate valid selfsigned certs"):
           webserver.succeed("systemctl clean acme-a.example.test.service --what=state")
           webserver.succeed("systemctl start acme-selfsigned-a.example.test.service")
@@ -375,8 +402,15 @@ in import ./make-test-python.nix ({ lib, ... }: {
           assert keyhash_old == keyhash_new
 
       with subtest("Can request certificates for vhost + aliases (apache-httpd)"):
-          switch_to(webserver, "httpd-aliases")
-          webserver.wait_for_unit("acme-finished-c.example.test.target")
+          try:
+              switch_to(webserver, "httpd-aliases")
+              webserver.wait_for_unit("acme-finished-c.example.test.target")
+          except Exception as err:
+              _, output = webserver.execute(
+                  "cat /var/log/httpd/*.log && ls -al /var/lib/acme/acme-challenge"
+              )
+              print(output)
+              raise err
           check_issuer(webserver, "c.example.test", "pebble")
           check_connection(client, "c.example.test")
           check_connection(client, "d.example.test")
diff --git a/nixpkgs/nixos/tests/agda.nix b/nixpkgs/nixos/tests/agda.nix
index 3773907cff55..f282788519c8 100644
--- a/nixpkgs/nixos/tests/agda.nix
+++ b/nixpkgs/nixos/tests/agda.nix
@@ -3,8 +3,9 @@ import ./make-test-python.nix ({ pkgs, ... }:
 let
   hello-world = pkgs.writeText "hello-world" ''
     open import IO
+    open import Level
 
-    main = run(putStrLn "Hello World!")
+    main = run {0ℓ} (putStrLn "Hello World!")
   '';
 in
 {
diff --git a/nixpkgs/nixos/tests/all-tests.nix b/nixpkgs/nixos/tests/all-tests.nix
index 444580bc0bed..58b2ba7fa514 100644
--- a/nixpkgs/nixos/tests/all-tests.nix
+++ b/nixpkgs/nixos/tests/all-tests.nix
@@ -49,12 +49,14 @@ in
   cadvisor = handleTestOn ["x86_64-linux"] ./cadvisor.nix {};
   cage = handleTest ./cage.nix {};
   cagebreak = handleTest ./cagebreak.nix {};
+  calibre-web = handleTest ./calibre-web.nix {};
   cassandra_2_1 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_2_1; };
   cassandra_2_2 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_2_2; };
   cassandra_3_0 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_0; };
   cassandra_3_11 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_11; };
   ceph-multi-node = handleTestOn ["x86_64-linux"] ./ceph-multi-node.nix {};
   ceph-single-node = handleTestOn ["x86_64-linux"] ./ceph-single-node.nix {};
+  ceph-single-node-bluestore = handleTestOn ["x86_64-linux"] ./ceph-single-node-bluestore.nix {};
   certmgr = handleTest ./certmgr.nix {};
   cfssl = handleTestOn ["x86_64-linux"] ./cfssl.nix {};
   charliecloud = handleTest ./charliecloud.nix {};
@@ -72,6 +74,7 @@ in
   containers-imperative = handleTest ./containers-imperative.nix {};
   containers-ip = handleTest ./containers-ip.nix {};
   containers-macvlans = handleTest ./containers-macvlans.nix {};
+  containers-names = handleTest ./containers-names.nix {};
   containers-physical_interfaces = handleTest ./containers-physical_interfaces.nix {};
   containers-portforward = handleTest ./containers-portforward.nix {};
   containers-reloadable = handleTest ./containers-reloadable.nix {};
@@ -81,8 +84,11 @@ in
   corerad = handleTest ./corerad.nix {};
   couchdb = handleTest ./couchdb.nix {};
   cri-o = handleTestOn ["x86_64-linux"] ./cri-o.nix {};
+  custom-ca = handleTest ./custom-ca.nix {};
+  croc = handleTest ./croc.nix {};
   deluge = handleTest ./deluge.nix {};
   dhparams = handleTest ./dhparams.nix {};
+  discourse = handleTest ./discourse.nix {};
   dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
   dnscrypt-wrapper = handleTestOn ["x86_64-linux"] ./dnscrypt-wrapper {};
   doas = handleTest ./doas.nix {};
@@ -106,6 +112,7 @@ in
   ergo = handleTest ./ergo.nix {};
   etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {};
   etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {};
+  etebase-server = handleTest ./etebase-server.nix {};
   etesync-dav = handleTest ./etesync-dav.nix {};
   fancontrol = handleTest ./fancontrol.nix {};
   fcitx = handleTest ./fcitx {};
@@ -172,6 +179,7 @@ in
   initrd-network-ssh = handleTest ./initrd-network-ssh {};
   initrdNetwork = handleTest ./initrd-network.nix {};
   initrd-secrets = handleTest ./initrd-secrets.nix {};
+  inspircd = handleTest ./inspircd.nix {};
   installer = handleTest ./installer.nix {};
   iodine = handleTest ./iodine.nix {};
   ipfs = handleTest ./ipfs.nix {};
@@ -181,19 +189,18 @@ in
   jenkins = handleTest ./jenkins.nix {};
   jirafeau = handleTest ./jirafeau.nix {};
   jitsi-meet = handleTest ./jitsi-meet.nix {};
-  jq = handleTest ./jq.nix {};
   k3s = handleTest ./k3s.nix {};
   kafka = handleTest ./kafka.nix {};
   keepalived = handleTest ./keepalived.nix {};
+  keepassxc = handleTest ./keepassxc.nix {};
   kerberos = handleTest ./kerberos/default.nix {};
-  kernel-latest = handleTest ./kernel-latest.nix {};
-  kernel-lts = handleTest ./kernel-lts.nix {};
-  kernel-testing = handleTest ./kernel-testing.nix {};
+  kernel-generic = handleTest ./kernel-generic.nix {};
   kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
   keycloak = discoverTests (import ./keycloak.nix);
   keymap = handleTest ./keymap.nix {};
   knot = handleTest ./knot.nix {};
   krb5 = discoverTests (import ./krb5 {});
+  ksm = handleTest ./ksm.nix {};
   kubernetes.dns = handleTestOn ["x86_64-linux"] ./kubernetes/dns.nix {};
   # kubernetes.e2e should eventually replace kubernetes.rbac when it works
   #kubernetes.e2e = handleTestOn ["x86_64-linux"] ./kubernetes/e2e.nix {};
@@ -219,6 +226,7 @@ in
   mariadb-galera-mariabackup = handleTest ./mysql/mariadb-galera-mariabackup.nix {};
   mariadb-galera-rsync = handleTest ./mysql/mariadb-galera-rsync.nix {};
   matomo = handleTest ./matomo.nix {};
+  matrix-appservice-irc = handleTest ./matrix-appservice-irc.nix {};
   matrix-synapse = handleTest ./matrix-synapse.nix {};
   mediawiki = handleTest ./mediawiki.nix {};
   memcached = handleTest ./memcached.nix {};
@@ -236,6 +244,7 @@ in
   mosquitto = handleTest ./mosquitto.nix {};
   mpd = handleTest ./mpd.nix {};
   mumble = handleTest ./mumble.nix {};
+  musescore = handleTest ./musescore.nix {};
   munin = handleTest ./munin.nix {};
   mutableUsers = handleTest ./mutable-users.nix {};
   mxisd = handleTest ./mxisd.nix {};
@@ -280,6 +289,7 @@ in
   nzbget = handleTest ./nzbget.nix {};
   nzbhydra2 = handleTest ./nzbhydra2.nix {};
   oh-my-zsh = handleTest ./oh-my-zsh.nix {};
+  ombi = handleTest ./ombi.nix {};
   openarena = handleTest ./openarena.nix {};
   openldap = handleTest ./openldap.nix {};
   opensmtpd = handleTest ./opensmtpd.nix {};
@@ -302,11 +312,16 @@ in
   pgjwt = handleTest ./pgjwt.nix {};
   pgmanage = handleTest ./pgmanage.nix {};
   php = handleTest ./php {};
+  php73 = handleTest ./php { php = pkgs.php73; };
+  php74 = handleTest ./php { php = pkgs.php74; };
+  php80 = handleTest ./php { php = pkgs.php80; };
   pinnwand = handleTest ./pinnwand.nix {};
   plasma5 = handleTest ./plasma5.nix {};
   pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix {};
+  plikd = handleTest ./plikd.nix {};
   plotinus = handleTest ./plotinus.nix {};
   podman = handleTestOn ["x86_64-linux"] ./podman.nix {};
+  pomerium = handleTestOn ["x86_64-linux"] ./pomerium.nix {};
   postfix = handleTest ./postfix.nix {};
   postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
   postgis = handleTest ./postgis.nix {};
@@ -317,6 +332,7 @@ in
   predictable-interface-names = handleTest ./predictable-interface-names.nix {};
   printing = handleTest ./printing.nix {};
   privacyidea = handleTest ./privacyidea.nix {};
+  privoxy = handleTest ./privoxy.nix {};
   prometheus = handleTest ./prometheus.nix {};
   prometheus-exporters = handleTest ./prometheus-exporters.nix {};
   prosody = handleTest ./xmpp/prosody.nix {};
@@ -332,7 +348,6 @@ in
   redis = handleTest ./redis.nix {};
   redmine = handleTest ./redmine.nix {};
   restic = handleTest ./restic.nix {};
-  ripgrep = handleTest ./ripgrep.nix {};
   robustirc-bridge = handleTest ./robustirc-bridge.nix {};
   roundcube = handleTest ./roundcube.nix {};
   rspamd = handleTest ./rspamd.nix {};
@@ -343,8 +358,6 @@ in
   samba = handleTest ./samba.nix {};
   samba-wsdd = handleTest ./samba-wsdd.nix {};
   sanoid = handleTest ./sanoid.nix {};
-  sbt = handleTest ./sbt.nix {};
-  sbt-extras = handleTest ./sbt-extras.nix {};
   sddm = handleTest ./sddm.nix {};
   searx = handleTest ./searx.nix {};
   service-runner = handleTest ./service-runner.nix {};
@@ -385,6 +398,7 @@ in
   systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
   systemd-nspawn = handleTest ./systemd-nspawn.nix {};
   systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
+  systemd-unit-path = handleTest ./systemd-unit-path.nix {};
   taskserver = handleTest ./taskserver.nix {};
   telegraf = handleTest ./telegraf.nix {};
   tiddlywiki = handleTest ./tiddlywiki.nix {};
@@ -400,6 +414,7 @@ in
   trickster = handleTest ./trickster.nix {};
   trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
   tuptime = handleTest ./tuptime.nix {};
+  turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
   ucg = handleTest ./ucg.nix {};
   udisks2 = handleTest ./udisks2.nix {};
   unbound = handleTest ./unbound.nix {};
@@ -415,6 +430,7 @@ in
   virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
   vscodium = handleTest ./vscodium.nix {};
   wasabibackend = handleTest ./wasabibackend.nix {};
+  wiki-js = handleTest ./wiki-js.nix {};
   wireguard = handleTest ./wireguard {};
   wordpress = handleTest ./wordpress.nix {};
   xandikos = handleTest ./xandikos.nix {};
diff --git a/nixpkgs/nixos/tests/bees.nix b/nixpkgs/nixos/tests/bees.nix
index 6e6a9c3446b0..58a9c2951356 100644
--- a/nixpkgs/nixos/tests/bees.nix
+++ b/nixpkgs/nixos/tests/bees.nix
@@ -8,7 +8,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }:
       ${pkgs.btrfs-progs}/bin/mkfs.btrfs -f -L aux2 /dev/vdc
     '';
     virtualisation.emptyDiskImages = [ 4096 4096 ];
-    fileSystems = lib.mkVMOverride {
+    virtualisation.fileSystems = {
       "/aux1" = { # filesystem configured to be deduplicated
         device = "/dev/disk/by-label/aux1";
         fsType = "btrfs";
diff --git a/nixpkgs/nixos/tests/bind.nix b/nixpkgs/nixos/tests/bind.nix
index 09917b15a8e0..7234f56a1c3a 100644
--- a/nixpkgs/nixos/tests/bind.nix
+++ b/nixpkgs/nixos/tests/bind.nix
@@ -6,6 +6,7 @@ import ./make-test-python.nix {
     services.bind.extraOptions = "empty-zones-enable no;";
     services.bind.zones = lib.singleton {
       name = ".";
+      master = true;
       file = pkgs.writeText "root.zone" ''
         $TTL 3600
         . IN SOA ns.example.org. admin.example.org. ( 1 3h 1h 1w 1d )
diff --git a/nixpkgs/nixos/tests/bitwarden.nix b/nixpkgs/nixos/tests/bitwarden.nix
index 5345c7245d00..3813a1f70f96 100644
--- a/nixpkgs/nixos/tests/bitwarden.nix
+++ b/nixpkgs/nixos/tests/bitwarden.nix
@@ -113,6 +113,7 @@ let
                   driver.find_element_by_css_selector('input#masterPasswordRetype').send_keys(
                     '${userPassword}'
                   )
+                  driver.find_element_by_css_selector('input#acceptPolicies').click()
 
                   driver.find_element_by_xpath("//button[contains(., 'Submit')]").click()
 
diff --git a/nixpkgs/nixos/tests/calibre-web.nix b/nixpkgs/nixos/tests/calibre-web.nix
new file mode 100644
index 000000000000..4f73b3311124
--- /dev/null
+++ b/nixpkgs/nixos/tests/calibre-web.nix
@@ -0,0 +1,53 @@
+import ./make-test-python.nix (
+  { pkgs, lib, ... }:
+
+    let
+      port = 3142;
+      defaultPort = 8083;
+    in
+      with lib;
+      {
+        name = "calibre-web";
+        meta.maintainers = with pkgs.lib.maintainers; [ pborzenkov ];
+
+        nodes = {
+          default = { ... }: {
+            services.calibre-web.enable = true;
+          };
+
+          customized = { pkgs, ... }: {
+            services.calibre-web = {
+              enable = true;
+              listen.port = port;
+              options = {
+                calibreLibrary = "/tmp/books";
+                reverseProxyAuth = {
+                  enable = true;
+                  header = "X-User";
+                };
+              };
+            };
+            environment.systemPackages = [ pkgs.calibre ];
+          };
+        };
+        testScript = ''
+          start_all()
+
+          default.wait_for_unit("calibre-web.service")
+          default.wait_for_open_port(${toString defaultPort})
+          default.succeed(
+              "curl --fail 'http://localhost:${toString defaultPort}/basicconfig' | grep -q 'Basic Configuration'"
+          )
+
+          customized.succeed(
+              "mkdir /tmp/books && calibredb --library-path /tmp/books add -e --title test-book"
+          )
+          customized.succeed("systemctl restart calibre-web")
+          customized.wait_for_unit("calibre-web.service")
+          customized.wait_for_open_port(${toString port})
+          customized.succeed(
+              "curl --fail -H X-User:admin 'http://localhost:${toString port}' | grep -q test-book"
+          )
+        '';
+      }
+)
diff --git a/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix b/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix
new file mode 100644
index 000000000000..cc873e8aee57
--- /dev/null
+++ b/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix
@@ -0,0 +1,196 @@
+import ./make-test-python.nix ({pkgs, lib, ...}:
+
+let
+  cfg = {
+    clusterId = "066ae264-2a5d-4729-8001-6ad265f50b03";
+    monA = {
+      name = "a";
+      ip = "192.168.1.1";
+    };
+    osd0 = {
+      name = "0";
+      key = "AQBCEJNa3s8nHRAANvdsr93KqzBznuIWm2gOGg==";
+      uuid = "55ba2294-3e24-478f-bee0-9dca4c231dd9";
+    };
+    osd1 = {
+      name = "1";
+      key = "AQBEEJNac00kExAAXEgy943BGyOpVH1LLlHafQ==";
+      uuid = "5e97a838-85b6-43b0-8950-cb56d554d1e5";
+    };
+    osd2 = {
+      name = "2";
+      key = "AQAdyhZeIaUlARAAGRoidDAmS6Vkp546UFEf5w==";
+      uuid = "ea999274-13d0-4dd5-9af9-ad25a324f72f";
+    };
+  };
+  generateCephConfig = { daemonConfig }: {
+    enable = true;
+    global = {
+      fsid = cfg.clusterId;
+      monHost = cfg.monA.ip;
+      monInitialMembers = cfg.monA.name;
+    };
+  } // daemonConfig;
+
+  generateHost = { pkgs, cephConfig, networkConfig, ... }: {
+    virtualisation = {
+      memorySize = 512;
+      emptyDiskImages = [ 20480 20480 20480 ];
+      vlans = [ 1 ];
+    };
+
+    networking = networkConfig;
+
+    environment.systemPackages = with pkgs; [
+      bash
+      sudo
+      ceph
+      xfsprogs
+    ];
+
+    boot.kernelModules = [ "xfs" ];
+
+    services.ceph = cephConfig;
+  };
+
+  networkMonA = {
+    dhcpcd.enable = false;
+    interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+      { address = cfg.monA.ip; prefixLength = 24; }
+    ];
+  };
+  cephConfigMonA = generateCephConfig { daemonConfig = {
+    mon = {
+      enable = true;
+      daemons = [ cfg.monA.name ];
+    };
+    mgr = {
+      enable = true;
+      daemons = [ cfg.monA.name ];
+    };
+    osd = {
+      enable = true;
+      daemons = [ cfg.osd0.name cfg.osd1.name cfg.osd2.name ];
+    };
+  }; };
+
+  # Following deployment is based on the manual deployment described here:
+  # https://docs.ceph.com/docs/master/install/manual-deployment/
+  # For other ways to deploy a ceph cluster, look at the documentation at
+  # https://docs.ceph.com/docs/master/
+  testscript = { ... }: ''
+    start_all()
+
+    monA.wait_for_unit("network.target")
+
+    # Bootstrap ceph-mon daemon
+    monA.succeed(
+        "sudo -u ceph ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'",
+        "sudo -u ceph ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'",
+        "sudo -u ceph ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring",
+        "monmaptool --create --add ${cfg.monA.name} ${cfg.monA.ip} --fsid ${cfg.clusterId} /tmp/monmap",
+        "sudo -u ceph ceph-mon --mkfs -i ${cfg.monA.name} --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring",
+        "sudo -u ceph touch /var/lib/ceph/mon/ceph-${cfg.monA.name}/done",
+        "systemctl start ceph-mon-${cfg.monA.name}",
+    )
+    monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
+    monA.succeed("ceph mon enable-msgr2")
+
+    # Can't check ceph status until a mon is up
+    monA.succeed("ceph -s | grep 'mon: 1 daemons'")
+
+    # Start the ceph-mgr daemon, after copying in the keyring
+    monA.succeed(
+        "sudo -u ceph mkdir -p /var/lib/ceph/mgr/ceph-${cfg.monA.name}/",
+        "ceph auth get-or-create mgr.${cfg.monA.name} mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-${cfg.monA.name}/keyring",
+        "systemctl start ceph-mgr-${cfg.monA.name}",
+    )
+    monA.wait_for_unit("ceph-mgr-a")
+    monA.wait_until_succeeds("ceph -s | grep 'quorum ${cfg.monA.name}'")
+    monA.wait_until_succeeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'")
+
+    # Bootstrap OSDs
+    monA.succeed(
+        "mkdir -p /var/lib/ceph/osd/ceph-${cfg.osd0.name}",
+        "echo bluestore > /var/lib/ceph/osd/ceph-${cfg.osd0.name}/type",
+        "ln -sf /dev/vdb /var/lib/ceph/osd/ceph-${cfg.osd0.name}/block",
+        "mkdir -p /var/lib/ceph/osd/ceph-${cfg.osd1.name}",
+        "echo bluestore > /var/lib/ceph/osd/ceph-${cfg.osd1.name}/type",
+        "ln -sf /dev/vdc /var/lib/ceph/osd/ceph-${cfg.osd1.name}/block",
+        "mkdir -p /var/lib/ceph/osd/ceph-${cfg.osd2.name}",
+        "echo bluestore > /var/lib/ceph/osd/ceph-${cfg.osd2.name}/type",
+        "ln -sf /dev/vdd /var/lib/ceph/osd/ceph-${cfg.osd2.name}/block",
+        "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-${cfg.osd0.name}/keyring --name osd.${cfg.osd0.name} --add-key ${cfg.osd0.key}",
+        "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-${cfg.osd1.name}/keyring --name osd.${cfg.osd1.name} --add-key ${cfg.osd1.key}",
+        "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-${cfg.osd2.name}/keyring --name osd.${cfg.osd2.name} --add-key ${cfg.osd2.key}",
+        'echo \'{"cephx_secret": "${cfg.osd0.key}"}\' | ceph osd new ${cfg.osd0.uuid} -i -',
+        'echo \'{"cephx_secret": "${cfg.osd1.key}"}\' | ceph osd new ${cfg.osd1.uuid} -i -',
+        'echo \'{"cephx_secret": "${cfg.osd2.key}"}\' | ceph osd new ${cfg.osd2.uuid} -i -',
+    )
+
+    # Initialize the OSDs with regular filestore
+    monA.succeed(
+        "ceph-osd -i ${cfg.osd0.name} --mkfs --osd-uuid ${cfg.osd0.uuid}",
+        "ceph-osd -i ${cfg.osd1.name} --mkfs --osd-uuid ${cfg.osd1.uuid}",
+        "ceph-osd -i ${cfg.osd2.name} --mkfs --osd-uuid ${cfg.osd2.uuid}",
+        "chown -R ceph:ceph /var/lib/ceph/osd",
+        "systemctl start ceph-osd-${cfg.osd0.name}",
+        "systemctl start ceph-osd-${cfg.osd1.name}",
+        "systemctl start ceph-osd-${cfg.osd2.name}",
+    )
+    monA.wait_until_succeeds("ceph osd stat | grep -e '3 osds: 3 up[^,]*, 3 in'")
+    monA.wait_until_succeeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'")
+    monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
+
+    monA.succeed(
+        "ceph osd pool create single-node-test 32 32",
+        "ceph osd pool ls | grep 'single-node-test'",
+        "ceph osd pool rename single-node-test single-node-other-test",
+        "ceph osd pool ls | grep 'single-node-other-test'",
+    )
+    monA.wait_until_succeeds("ceph -s | grep '2 pools, 33 pgs'")
+    monA.succeed(
+        "ceph osd getcrushmap -o crush",
+        "crushtool -d crush -o decrushed",
+        "sed 's/step chooseleaf firstn 0 type host/step chooseleaf firstn 0 type osd/' decrushed > modcrush",
+        "crushtool -c modcrush -o recrushed",
+        "ceph osd setcrushmap -i recrushed",
+        "ceph osd pool set single-node-other-test size 2",
+    )
+    monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
+    monA.wait_until_succeeds("ceph -s | grep '33 active+clean'")
+    monA.fail(
+        "ceph osd pool ls | grep 'multi-node-test'",
+        "ceph osd pool delete single-node-other-test single-node-other-test --yes-i-really-really-mean-it",
+    )
+
+    # Shut down ceph by stopping ceph.target.
+    monA.succeed("systemctl stop ceph.target")
+
+    # Start it up
+    monA.succeed("systemctl start ceph.target")
+    monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
+    monA.wait_for_unit("ceph-mgr-${cfg.monA.name}")
+    monA.wait_for_unit("ceph-osd-${cfg.osd0.name}")
+    monA.wait_for_unit("ceph-osd-${cfg.osd1.name}")
+    monA.wait_for_unit("ceph-osd-${cfg.osd2.name}")
+
+    # Ensure the cluster comes back up again
+    monA.succeed("ceph -s | grep 'mon: 1 daemons'")
+    monA.wait_until_succeeds("ceph -s | grep 'quorum ${cfg.monA.name}'")
+    monA.wait_until_succeeds("ceph osd stat | grep -e '3 osds: 3 up[^,]*, 3 in'")
+    monA.wait_until_succeeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'")
+    monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
+  '';
+in {
+  name = "basic-single-node-ceph-cluster-bluestore";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ lukegb ];
+  };
+
+  nodes = {
+    monA = generateHost { pkgs = pkgs; cephConfig = cephConfigMonA; networkConfig = networkMonA; };
+  };
+
+  testScript = testscript;
+})
diff --git a/nixpkgs/nixos/tests/containers-bridge.nix b/nixpkgs/nixos/tests/containers-bridge.nix
index 1208aa8fced7..12fa67c8b015 100644
--- a/nixpkgs/nixos/tests/containers-bridge.nix
+++ b/nixpkgs/nixos/tests/containers-bridge.nix
@@ -1,5 +1,3 @@
-# Test for NixOS' container support.
-
 let
   hostIp = "192.168.0.1";
   containerIp = "192.168.0.100/24";
@@ -7,10 +5,10 @@ let
   containerIp6 = "fc00::2/7";
 in
 
-import ./make-test-python.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "containers-bridge";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ aristid aszlig eelco kampfschlaefer ];
+  meta = {
+    maintainers = with lib.maintainers; [ aristid aszlig eelco kampfschlaefer ];
   };
 
   machine =
diff --git a/nixpkgs/nixos/tests/containers-custom-pkgs.nix b/nixpkgs/nixos/tests/containers-custom-pkgs.nix
index 1412c32bfb5f..c050e49bc29d 100644
--- a/nixpkgs/nixos/tests/containers-custom-pkgs.nix
+++ b/nixpkgs/nixos/tests/containers-custom-pkgs.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ pkgs, lib, ...} : let
+import ./make-test-python.nix ({ pkgs, lib, ... }: let
 
   customPkgs = pkgs.appendOverlays [ (self: super: {
     hello = super.hello.overrideAttrs (old: {
@@ -8,8 +8,8 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : let
 
 in {
   name = "containers-custom-pkgs";
-  meta = with lib.maintainers; {
-    maintainers = [ adisbladis earvstedt ];
+  meta = {
+    maintainers = with lib.maintainers; [ adisbladis earvstedt ];
   };
 
   machine = { config, ... }: {
diff --git a/nixpkgs/nixos/tests/containers-ephemeral.nix b/nixpkgs/nixos/tests/containers-ephemeral.nix
index 692554ac0ba2..fabf0593f23a 100644
--- a/nixpkgs/nixos/tests/containers-ephemeral.nix
+++ b/nixpkgs/nixos/tests/containers-ephemeral.nix
@@ -1,7 +1,8 @@
-# Test for NixOS' container support.
-
-import ./make-test-python.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "containers-ephemeral";
+  meta = {
+    maintainers = with lib.maintainers; [ patryk27 ];
+  };
 
   machine = { pkgs, ... }: {
     virtualisation.memorySize = 768;
diff --git a/nixpkgs/nixos/tests/containers-extra_veth.nix b/nixpkgs/nixos/tests/containers-extra_veth.nix
index 212f3d0f46cb..cbbb25258325 100644
--- a/nixpkgs/nixos/tests/containers-extra_veth.nix
+++ b/nixpkgs/nixos/tests/containers-extra_veth.nix
@@ -1,9 +1,7 @@
-# Test for NixOS' container support.
-
-import ./make-test-python.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "containers-extra_veth";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ kampfschlaefer ];
+  meta = {
+    maintainers = with lib.maintainers; [ kampfschlaefer ];
   };
 
   machine =
diff --git a/nixpkgs/nixos/tests/containers-hosts.nix b/nixpkgs/nixos/tests/containers-hosts.nix
index 65a983c42a78..1f24ed1f3c2c 100644
--- a/nixpkgs/nixos/tests/containers-hosts.nix
+++ b/nixpkgs/nixos/tests/containers-hosts.nix
@@ -1,9 +1,7 @@
-# Test for NixOS' container support.
-
-import ./make-test-python.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "containers-hosts";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ montag451 ];
+  meta = {
+    maintainers = with lib.maintainers; [ montag451 ];
   };
 
   machine =
diff --git a/nixpkgs/nixos/tests/containers-imperative.nix b/nixpkgs/nixos/tests/containers-imperative.nix
index 393b4a5135dd..0ff0d3f95452 100644
--- a/nixpkgs/nixos/tests/containers-imperative.nix
+++ b/nixpkgs/nixos/tests/containers-imperative.nix
@@ -1,9 +1,7 @@
-# Test for NixOS' container support.
-
-import ./make-test-python.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "containers-imperative";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ aristid aszlig eelco kampfschlaefer ];
+  meta = {
+    maintainers = with lib.maintainers; [ aristid aszlig eelco kampfschlaefer ];
   };
 
   machine =
diff --git a/nixpkgs/nixos/tests/containers-ip.nix b/nixpkgs/nixos/tests/containers-ip.nix
index 0265ed92d41c..5abea2dbad9f 100644
--- a/nixpkgs/nixos/tests/containers-ip.nix
+++ b/nixpkgs/nixos/tests/containers-ip.nix
@@ -1,5 +1,3 @@
-# Test for NixOS' container support.
-
 let
   webserverFor = hostAddress: localAddress: {
     inherit hostAddress localAddress;
@@ -13,10 +11,10 @@ let
     };
   };
 
-in import ./make-test-python.nix ({ pkgs, ...} : {
+in import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "containers-ipv4-ipv6";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ aristid aszlig eelco kampfschlaefer ];
+  meta = {
+    maintainers = with lib.maintainers; [ aristid aszlig eelco kampfschlaefer ];
   };
 
   machine =
diff --git a/nixpkgs/nixos/tests/containers-macvlans.nix b/nixpkgs/nixos/tests/containers-macvlans.nix
index 9425252cb886..d0f41be8c125 100644
--- a/nixpkgs/nixos/tests/containers-macvlans.nix
+++ b/nixpkgs/nixos/tests/containers-macvlans.nix
@@ -1,15 +1,13 @@
-# Test for NixOS' container support.
-
 let
   # containers IP on VLAN 1
   containerIp1 = "192.168.1.253";
   containerIp2 = "192.168.1.254";
 in
 
-import ./make-test-python.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "containers-macvlans";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ montag451 ];
+  meta = {
+    maintainers = with lib.maintainers; [ montag451 ];
   };
 
   nodes = {
diff --git a/nixpkgs/nixos/tests/containers-names.nix b/nixpkgs/nixos/tests/containers-names.nix
new file mode 100644
index 000000000000..9ad2bfb748a8
--- /dev/null
+++ b/nixpkgs/nixos/tests/containers-names.nix
@@ -0,0 +1,37 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "containers-names";
+  meta = {
+    maintainers = with lib.maintainers; [ patryk27 ];
+  };
+
+  machine = { ... }: {
+    # We're using the newest kernel, so that we can test containers with long names.
+    # Please see https://github.com/NixOS/nixpkgs/issues/38509 for details.
+    boot.kernelPackages = pkgs.linuxPackages_latest;
+
+    containers = let
+      container = subnet: {
+        autoStart = true;
+        privateNetwork = true;
+        hostAddress = "192.168.${subnet}.1";
+        localAddress = "192.168.${subnet}.2";
+        config = { };
+      };
+
+     in {
+      first = container "1";
+      second = container "2";
+      really-long-name = container "3";
+      really-long-long-name-2 = container "4";
+    };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("default.target")
+
+    machine.succeed("ip link show | grep ve-first")
+    machine.succeed("ip link show | grep ve-second")
+    machine.succeed("ip link show | grep ve-really-lFYWO")
+    machine.succeed("ip link show | grep ve-really-l3QgY")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/containers-physical_interfaces.nix b/nixpkgs/nixos/tests/containers-physical_interfaces.nix
index 0b55c3418edf..57bd0eedcc33 100644
--- a/nixpkgs/nixos/tests/containers-physical_interfaces.nix
+++ b/nixpkgs/nixos/tests/containers-physical_interfaces.nix
@@ -1,8 +1,7 @@
-
-import ./make-test-python.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "containers-physical_interfaces";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ kampfschlaefer ];
+  meta = {
+    maintainers = with lib.maintainers; [ kampfschlaefer ];
   };
 
   nodes = {
diff --git a/nixpkgs/nixos/tests/containers-portforward.nix b/nixpkgs/nixos/tests/containers-portforward.nix
index d0be3c7d43ec..221a6f50efd1 100644
--- a/nixpkgs/nixos/tests/containers-portforward.nix
+++ b/nixpkgs/nixos/tests/containers-portforward.nix
@@ -1,5 +1,3 @@
-# Test for NixOS' container support.
-
 let
   hostIp = "192.168.0.1";
   hostPort = 10080;
@@ -7,10 +5,10 @@ let
   containerPort = 80;
 in
 
-import ./make-test-python.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "containers-portforward";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ aristid aszlig eelco kampfschlaefer ianwookim ];
+  meta = {
+    maintainers = with lib.maintainers; [ aristid aszlig eelco kampfschlaefer ianwookim ];
   };
 
   machine =
diff --git a/nixpkgs/nixos/tests/containers-reloadable.nix b/nixpkgs/nixos/tests/containers-reloadable.nix
index 877246917672..876e62c1da9e 100644
--- a/nixpkgs/nixos/tests/containers-reloadable.nix
+++ b/nixpkgs/nixos/tests/containers-reloadable.nix
@@ -1,7 +1,6 @@
-import ./make-test-python.nix ({ pkgs, lib, ...} :
+import ./make-test-python.nix ({ pkgs, lib, ... }:
 let
   client_base = {
-
     containers.test1 = {
       autoStart = true;
       config = {
@@ -16,8 +15,8 @@ let
   };
 in {
   name = "containers-reloadable";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ danbst ];
+  meta = {
+    maintainers = with lib.maintainers; [ danbst ];
   };
 
   nodes = {
diff --git a/nixpkgs/nixos/tests/containers-restart_networking.nix b/nixpkgs/nixos/tests/containers-restart_networking.nix
index b35552b5b191..e1ad8157b288 100644
--- a/nixpkgs/nixos/tests/containers-restart_networking.nix
+++ b/nixpkgs/nixos/tests/containers-restart_networking.nix
@@ -1,5 +1,3 @@
-# Test for NixOS' container support.
-
 let
   client_base = {
     networking.firewall.enable = false;
@@ -16,11 +14,11 @@ let
       };
     };
   };
-in import ./make-test-python.nix ({ pkgs, ...} :
+in import ./make-test-python.nix ({ pkgs, lib, ... }:
 {
   name = "containers-restart_networking";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ kampfschlaefer ];
+  meta = {
+    maintainers = with lib.maintainers; [ kampfschlaefer ];
   };
 
   nodes = {
diff --git a/nixpkgs/nixos/tests/containers-tmpfs.nix b/nixpkgs/nixos/tests/containers-tmpfs.nix
index 7ebf0d02a240..fd9f9a252ca8 100644
--- a/nixpkgs/nixos/tests/containers-tmpfs.nix
+++ b/nixpkgs/nixos/tests/containers-tmpfs.nix
@@ -1,9 +1,7 @@
-# Test for NixOS' container support.
-
-import ./make-test-python.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "containers-tmpfs";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ ];
+  meta = {
+    maintainers = with lib.maintainers; [ patryk27 ];
   };
 
   machine =
diff --git a/nixpkgs/nixos/tests/croc.nix b/nixpkgs/nixos/tests/croc.nix
new file mode 100644
index 000000000000..75a8fc991d47
--- /dev/null
+++ b/nixpkgs/nixos/tests/croc.nix
@@ -0,0 +1,51 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+let
+  client = { pkgs, ... }: {
+    environment.systemPackages = [ pkgs.croc ];
+  };
+  pass = pkgs.writeText "pass" "PassRelay";
+in {
+  name = "croc";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ hax404 julm ];
+  };
+
+  nodes = {
+    relay = {
+      services.croc = {
+        enable = true;
+        pass = pass;
+        openFirewall = true;
+      };
+    };
+    sender = client;
+    receiver = client;
+  };
+
+  testScript = ''
+    start_all()
+
+    # wait until relay is up
+    relay.wait_for_unit("croc")
+    relay.wait_for_open_port(9009)
+    relay.wait_for_open_port(9010)
+    relay.wait_for_open_port(9011)
+    relay.wait_for_open_port(9012)
+    relay.wait_for_open_port(9013)
+
+    # generate testfiles and send them
+    sender.wait_for_unit("multi-user.target")
+    sender.execute("echo Hello World > testfile01.txt")
+    sender.execute("echo Hello Earth > testfile02.txt")
+    sender.execute(
+        "croc --pass ${pass} --relay relay send --code topSecret testfile01.txt testfile02.txt &"
+    )
+
+    # receive the testfiles and check them
+    receiver.succeed(
+        "croc --pass ${pass} --yes --relay relay topSecret"
+    )
+    assert "Hello World" in receiver.succeed("cat testfile01.txt")
+    assert "Hello Earth" in receiver.succeed("cat testfile02.txt")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/custom-ca.nix b/nixpkgs/nixos/tests/custom-ca.nix
new file mode 100644
index 000000000000..67f7b3ff1f16
--- /dev/null
+++ b/nixpkgs/nixos/tests/custom-ca.nix
@@ -0,0 +1,161 @@
+# Checks that `security.pki` options are working in curl and the main browser
+# engines: Gecko (via Firefox), Chromium, QtWebEngine (Falkon) and WebKitGTK
+# (via Midori). The test checks that certificates issued by a custom trusted
+# CA are accepted but those from an unknown CA are rejected.
+
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+
+let
+  makeCert = { caName, domain }: pkgs.runCommand "example-cert"
+  { buildInputs = [ pkgs.gnutls ]; }
+  ''
+    mkdir $out
+
+    # CA cert template
+    cat >ca.template <<EOF
+    organization = "${caName}"
+    cn = "${caName}"
+    expiration_days = 365
+    ca
+    cert_signing_key
+    crl_signing_key
+    EOF
+
+    # server cert template
+    cat >server.template <<EOF
+    organization = "An example company"
+    cn = "${domain}"
+    expiration_days = 30
+    dns_name = "${domain}"
+    encryption_key
+    signing_key
+    EOF
+
+    # generate CA keypair
+    certtool                \
+      --generate-privkey    \
+      --key-type rsa        \
+      --sec-param High      \
+      --outfile $out/ca.key
+    certtool                     \
+      --generate-self-signed     \
+      --load-privkey $out/ca.key \
+      --template ca.template     \
+      --outfile $out/ca.crt
+
+    # generate server keypair
+    certtool                    \
+      --generate-privkey        \
+      --key-type rsa            \
+      --sec-param High          \
+      --outfile $out/server.key
+    certtool                            \
+      --generate-certificate            \
+      --load-privkey $out/server.key    \
+      --load-ca-privkey $out/ca.key     \
+      --load-ca-certificate $out/ca.crt \
+      --template server.template        \
+      --outfile $out/server.crt
+  '';
+
+  example-good-cert = makeCert
+    { caName = "Example good CA";
+      domain = "good.example.com";
+    };
+
+  example-bad-cert = makeCert
+    { caName = "Unknown CA";
+      domain = "bad.example.com";
+    };
+
+in
+
+{
+  name = "custom-ca";
+  meta.maintainers = with lib.maintainers; [ rnhmjoj ];
+
+  enableOCR = true;
+
+  machine = { pkgs, ... }:
+    { imports = [ ./common/user-account.nix ./common/x11.nix ];
+
+      # chromium-based browsers refuse to run as root
+      test-support.displayManager.auto.user = "alice";
+      # browsers may hang with the default memory
+      virtualisation.memorySize = "500";
+
+      networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
+      security.pki.certificateFiles = [ "${example-good-cert}/ca.crt" ];
+
+      services.nginx.enable = true;
+      services.nginx.virtualHosts."good.example.com" =
+        { onlySSL = true;
+          sslCertificate = "${example-good-cert}/server.crt";
+          sslCertificateKey = "${example-good-cert}/server.key";
+          locations."/".extraConfig = "return 200 'It works!';";
+        };
+      services.nginx.virtualHosts."bad.example.com" =
+        { onlySSL = true;
+          sslCertificate = "${example-bad-cert}/server.crt";
+          sslCertificateKey = "${example-bad-cert}/server.key";
+          locations."/".extraConfig = "return 200 'It does not work!';";
+        };
+
+      environment.systemPackages = with pkgs;
+        [ xdotool firefox chromium falkon midori ];
+    };
+
+  testScript = ''
+    def execute_as(user: str, cmd: str) -> Tuple[int, str]:
+        """
+        Run a shell command as a specific user.
+        """
+        return machine.execute(f"sudo -u {user} {cmd}")
+
+
+    def wait_for_window_as(user: str, cls: str) -> None:
+        """
+        Wait until a X11 window of a given user appears.
+        """
+
+        def window_is_visible(last_try: bool) -> bool:
+            ret, stdout = execute_as(user, f"xdotool search --onlyvisible --class {cls}")
+            if last_try:
+                machine.log(f"Last chance to match {cls} on the window list")
+            return ret == 0
+
+        with machine.nested("Waiting for a window to appear"):
+            retry(window_is_visible)
+
+
+    machine.start()
+
+    with subtest("Good certificate is trusted in curl"):
+        machine.wait_for_unit("nginx")
+        machine.wait_for_open_port(443)
+        machine.succeed("curl -fv https://good.example.com")
+
+    with subtest("Unknown CA is untrusted in curl"):
+        machine.fail("curl -fv https://bad.example.com")
+
+    browsers = ["firefox", "chromium", "falkon", "midori"]
+    errors = ["Security Risk", "not private", "Certificate Error", "Security"]
+
+    machine.wait_for_x()
+    for browser, error in zip(browsers, errors):
+        with subtest("Good certificate is trusted in " + browser):
+            execute_as(
+                "alice", f"env P11_KIT_DEBUG=trust {browser} https://good.example.com & >&2"
+            )
+            wait_for_window_as("alice", browser)
+            machine.wait_for_text("It works!")
+            machine.screenshot("good" + browser)
+            execute_as("alice", "xdotool key ctrl+w")  # close tab
+
+        with subtest("Unknown CA is untrusted in " + browser):
+            execute_as("alice", f"{browser} https://bad.example.com & >&2")
+            machine.wait_for_text(error)
+            machine.screenshot("bad" + browser)
+            machine.succeed("pkill " + browser)
+  '';
+})
diff --git a/nixpkgs/nixos/tests/discourse.nix b/nixpkgs/nixos/tests/discourse.nix
new file mode 100644
index 000000000000..3c965550fe0a
--- /dev/null
+++ b/nixpkgs/nixos/tests/discourse.nix
@@ -0,0 +1,197 @@
+# This tests Discourse by:
+#  1. logging in as the admin user
+#  2. sending a private message to the admin user through the API
+#  3. replying to that message via email.
+
+import ./make-test-python.nix (
+  { pkgs, lib, ... }:
+  let
+    certs = import ./common/acme/server/snakeoil-certs.nix;
+    clientDomain = "client.fake.domain";
+    discourseDomain = certs.domain;
+    adminPassword = "eYAX85qmMJ5GZIHLaXGDAoszD7HSZp5d";
+    secretKeyBase = "381f4ac6d8f5e49d804dae72aa9c046431d2f34c656a705c41cd52fed9b4f6f76f51549f0b55db3b8b0dded7a00d6a381ebe9a4367d2d44f5e743af6628b4d42";
+    admin = {
+      email = "alice@${clientDomain}";
+      username = "alice";
+      fullName = "Alice Admin";
+      passwordFile = "${pkgs.writeText "admin-pass" adminPassword}";
+    };
+  in
+  {
+    name = "discourse";
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ talyz ];
+    };
+
+    nodes.discourse =
+      { nodes, ... }:
+      {
+        virtualisation.memorySize = 2048;
+
+        imports = [ common/user-account.nix ];
+
+        security.pki.certificateFiles = [
+          certs.ca.cert
+        ];
+
+        networking.extraHosts = ''
+          127.0.0.1 ${discourseDomain}
+          ${nodes.client.config.networking.primaryIPAddress} ${clientDomain}
+        '';
+
+        services.postfix = {
+          enableSubmission = true;
+          enableSubmissions = true;
+          submissionsOptions = {
+            smtpd_sasl_auth_enable = "yes";
+            smtpd_client_restrictions = "permit";
+          };
+        };
+
+        environment.systemPackages = [ pkgs.jq ];
+
+        services.discourse = {
+          enable = true;
+          inherit admin;
+          hostname = discourseDomain;
+          sslCertificate = "${certs.${discourseDomain}.cert}";
+          sslCertificateKey = "${certs.${discourseDomain}.key}";
+          secretKeyBaseFile = "${pkgs.writeText "secret-key-base" secretKeyBase}";
+          enableACME = false;
+          mail.outgoing.serverAddress = clientDomain;
+          mail.incoming.enable = true;
+          siteSettings = {
+            posting = {
+              min_post_length = 5;
+              min_first_post_length = 5;
+              min_personal_message_post_length = 5;
+            };
+          };
+          unicornTimeout = 900;
+        };
+
+        networking.firewall.allowedTCPPorts = [ 25 465 ];
+      };
+
+    nodes.client =
+      { nodes, ... }:
+      {
+        imports = [ common/user-account.nix ];
+
+        security.pki.certificateFiles = [
+          certs.ca.cert
+        ];
+
+        networking.extraHosts = ''
+          127.0.0.1 ${clientDomain}
+          ${nodes.discourse.config.networking.primaryIPAddress} ${discourseDomain}
+        '';
+
+        services.dovecot2 = {
+          enable = true;
+          protocols = [ "imap" ];
+          modules = [ pkgs.dovecot_pigeonhole ];
+        };
+
+        services.postfix = {
+          enable = true;
+          origin = clientDomain;
+          relayDomains = [ clientDomain ];
+          config = {
+            compatibility_level = "2";
+            smtpd_banner = "ESMTP server";
+            myhostname = clientDomain;
+            mydestination = clientDomain;
+          };
+        };
+
+        environment.systemPackages =
+          let
+            replyToEmail = pkgs.writeScriptBin "reply-to-email" ''
+              #!${pkgs.python3.interpreter}
+              import imaplib
+              import smtplib
+              import ssl
+              import email.header
+              from email import message_from_bytes
+              from email.message import EmailMessage
+
+              with imaplib.IMAP4('localhost') as imap:
+                  imap.login('alice', 'foobar')
+                  imap.select()
+                  status, data = imap.search(None, 'ALL')
+                  assert status == 'OK'
+
+                  nums = data[0].split()
+                  assert len(nums) == 1
+
+                  status, msg_data = imap.fetch(nums[0], '(RFC822)')
+                  assert status == 'OK'
+
+              msg = email.message_from_bytes(msg_data[0][1])
+              subject = str(email.header.make_header(email.header.decode_header(msg['Subject'])))
+              reply_to = email.header.decode_header(msg['Reply-To'])[0][0]
+              message_id = email.header.decode_header(msg['Message-ID'])[0][0]
+              date = email.header.decode_header(msg['Date'])[0][0]
+
+              ctx = ssl.create_default_context()
+              with smtplib.SMTP_SSL(host='${discourseDomain}', context=ctx) as smtp:
+                  reply = EmailMessage()
+                  reply['Subject'] = 'Re: ' + subject
+                  reply['To'] = reply_to
+                  reply['From'] = 'alice@${clientDomain}'
+                  reply['In-Reply-To'] = message_id
+                  reply['References'] = message_id
+                  reply['Date'] = date
+                  reply.set_content("Test reply.")
+
+                  smtp.send_message(reply)
+                  smtp.quit()
+            '';
+          in
+            [ replyToEmail ];
+
+        networking.firewall.allowedTCPPorts = [ 25 ];
+      };
+
+
+    testScript = { nodes }:
+      let
+        request = builtins.toJSON {
+          title = "Private message";
+          raw = "This is a test message.";
+          target_usernames = admin.username;
+          archetype = "private_message";
+        };
+      in ''
+        discourse.start()
+        client.start()
+
+        discourse.wait_for_unit("discourse.service")
+        discourse.wait_for_file("/run/discourse/sockets/unicorn.sock")
+        discourse.wait_until_succeeds("curl -sS -f https://${discourseDomain}")
+        discourse.succeed(
+            "curl -sS -f https://${discourseDomain}/session/csrf -c cookie -b cookie -H 'Accept: application/json' | jq -r '\"X-CSRF-Token: \" + .csrf' > csrf_token",
+            "curl -sS -f https://${discourseDomain}/session -c cookie -b cookie -H @csrf_token -H 'Accept: application/json' -d 'login=${nodes.discourse.config.services.discourse.admin.username}' -d \"password=${adminPassword}\" | jq -e '.user.username == \"${nodes.discourse.config.services.discourse.admin.username}\"'",
+            "curl -sS -f https://${discourseDomain}/login -v -H 'Accept: application/json' -c cookie -b cookie 2>&1 | grep ${nodes.discourse.config.services.discourse.admin.username}",
+        )
+
+        client.wait_for_unit("postfix.service")
+        client.wait_for_unit("dovecot2.service")
+
+        discourse.succeed(
+            "sudo -u discourse discourse-rake api_key:create_master[master] >api_key",
+            'curl -sS -f https://${discourseDomain}/posts -X POST -H "Content-Type: application/json" -H "Api-Key: $(<api_key)" -H "Api-Username: system" -d \'${request}\' ',
+        )
+
+        client.wait_until_succeeds("reply-to-email")
+
+        discourse.wait_until_succeeds(
+            'curl -sS -f https://${discourseDomain}/topics/private-messages/system -H "Accept: application/json" -H "Api-Key: $(<api_key)" -H "Api-Username: system" | jq -e \'if .topic_list.topics[0].id != null then .topic_list.topics[0].id else null end\' >topic_id'
+        )
+        discourse.succeed(
+            'curl -sS -f https://${discourseDomain}/t/$(<topic_id) -H "Accept: application/json" -H "Api-Key: $(<api_key)" -H "Api-Username: system" | jq -e \'if .post_stream.posts[1].cooked == "<p>Test reply.</p>" then true else null end\' '
+        )
+      '';
+  })
diff --git a/nixpkgs/nixos/tests/docker-tools.nix b/nixpkgs/nixos/tests/docker-tools.nix
index 6638ec4927ce..80d527b453fa 100644
--- a/nixpkgs/nixos/tests/docker-tools.nix
+++ b/nixpkgs/nixos/tests/docker-tools.nix
@@ -161,12 +161,18 @@ import ./make-test-python.nix ({ pkgs, ... }: {
             "docker run --rm ${examples.layered-image.imageName} cat extraCommands",
         )
 
-    with subtest("Ensure building an image on top of a layered Docker images work"):
+    with subtest("Ensure images built on top of layered Docker images work"):
         docker.succeed(
             "docker load --input='${examples.layered-on-top}'",
             "docker run --rm ${examples.layered-on-top.imageName}",
         )
 
+    with subtest("Ensure layered images built on top of layered Docker images work"):
+        docker.succeed(
+            "docker load --input='${examples.layered-on-top-layered}'",
+            "docker run --rm ${examples.layered-on-top-layered.imageName}",
+        )
+
 
     def set_of_layers(image_name):
         return set(
@@ -205,6 +211,31 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         assert "FROM_CHILD=true" in env, "envvars from the child should be preserved"
         assert "LAST_LAYER=child" in env, "envvars from the child should take priority"
 
+    with subtest("Ensure environment variables of layered images are correctly inherited"):
+        docker.succeed(
+            "docker load --input='${examples.environmentVariablesLayered}'"
+        )
+        out = docker.succeed("docker run --rm ${examples.environmentVariablesLayered.imageName} env")
+        env = out.splitlines()
+        assert "FROM_PARENT=true" in env, "envvars from the parent should be preserved"
+        assert "FROM_CHILD=true" in env, "envvars from the child should be preserved"
+        assert "LAST_LAYER=child" in env, "envvars from the child should take priority"
+
+    with subtest(
+        "Ensure inherited environment variables of layered images are correctly resolved"
+    ):
+        # Read environment variables as stored in image config
+        config = docker.succeed(
+            "tar -xOf ${examples.environmentVariablesLayered} manifest.json | ${pkgs.jq}/bin/jq -r .[].Config"
+        ).strip()
+        out = docker.succeed(
+            f"tar -xOf ${examples.environmentVariablesLayered} {config} | ${pkgs.jq}/bin/jq -r '.config.Env | .[]'"
+        )
+        env = out.splitlines()
+        assert (
+            sum(entry.startswith("LAST_LAYER") for entry in env) == 1
+        ), "envvars overridden by child should be unique"
+
     with subtest("Ensure image with only 2 layers can be loaded"):
         docker.succeed(
             "docker load --input='${examples.two-layered-image}'"
@@ -219,6 +250,18 @@ import ./make-test-python.nix ({ pkgs, ... }: {
             "docker run bulk-layer ls /bin/hello",
         )
 
+    with subtest(
+        "Ensure the bulk layer with a base image respects the number of maxLayers"
+    ):
+        docker.succeed(
+            "docker load --input='${pkgs.dockerTools.examples.layered-bulk-layer}'",
+            # Ensure the image runs correctly
+            "docker run layered-bulk-layer ls /bin/hello",
+        )
+
+        # Ensure the image has the correct number of layers
+        assert len(set_of_layers("layered-bulk-layer")) == 4
+
     with subtest("Ensure correct behavior when no store is needed"):
         # This check tests that buildLayeredImage can build images that don't need a store.
         docker.succeed(
@@ -254,5 +297,29 @@ import ./make-test-python.nix ({ pkgs, ... }: {
             "docker run --rm ${examples.layeredStoreSymlink.imageName} bash -c 'test -L ${examples.layeredStoreSymlink.passthru.symlink}'",
             "docker rmi ${examples.layeredStoreSymlink.imageName}",
         )
+
+    with subtest("buildImage supports registry/ prefix in image name"):
+        docker.succeed(
+            "docker load --input='${examples.prefixedImage}'"
+        )
+        docker.succeed(
+            "docker images --format '{{.Repository}}' | grep -F '${examples.prefixedImage.imageName}'"
+        )
+
+    with subtest("buildLayeredImage supports registry/ prefix in image name"):
+        docker.succeed(
+            "docker load --input='${examples.prefixedLayeredImage}'"
+        )
+        docker.succeed(
+            "docker images --format '{{.Repository}}' | grep -F '${examples.prefixedLayeredImage.imageName}'"
+        )
+
+    with subtest("buildLayeredImage supports running chown with fakeRootCommands"):
+        docker.succeed(
+            "docker load --input='${examples.layeredImageWithFakeRootCommands}'"
+        )
+        docker.succeed(
+            "docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'"
+        )
   '';
 })
diff --git a/nixpkgs/nixos/tests/dokuwiki.nix b/nixpkgs/nixos/tests/dokuwiki.nix
index 40475d789d47..2664e1500ea4 100644
--- a/nixpkgs/nixos/tests/dokuwiki.nix
+++ b/nixpkgs/nixos/tests/dokuwiki.nix
@@ -9,7 +9,7 @@ let
       sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6";
     };
     # We need unzip to build this package
-    buildInputs = [ pkgs.unzip ];
+    nativeBuildInputs = [ pkgs.unzip ];
     # Installing simply means copying all files to the output directory
     installPhase = "mkdir -p $out; cp -R * $out/";
   };
@@ -24,7 +24,7 @@ let
       sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8";
     };
     # We need unzip to build this package
-    buildInputs = [ pkgs.unzip ];
+    nativeBuildInputs = [ pkgs.unzip ];
     sourceRoot = ".";
     # Installing simply means copying all files to the output directory
     installPhase = "mkdir -p $out; cp -R * $out/";
diff --git a/nixpkgs/nixos/tests/elk.nix b/nixpkgs/nixos/tests/elk.nix
index 8488c97c01e8..fee350de65b5 100644
--- a/nixpkgs/nixos/tests/elk.nix
+++ b/nixpkgs/nixos/tests/elk.nix
@@ -120,6 +120,7 @@ let
           };
       };
 
+    passthru.elkPackages = elk;
     testScript = ''
       import json
 
diff --git a/nixpkgs/nixos/tests/etebase-server.nix b/nixpkgs/nixos/tests/etebase-server.nix
new file mode 100644
index 000000000000..4fc3c1f6392f
--- /dev/null
+++ b/nixpkgs/nixos/tests/etebase-server.nix
@@ -0,0 +1,50 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+let
+  dataDir = "/var/lib/foobar";
+
+in {
+    name = "etebase-server";
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ felschr ];
+    };
+
+    machine = { pkgs, ... }:
+      {
+        services.etebase-server = {
+          inherit dataDir;
+          enable = true;
+          settings.global.secret_file =
+            toString (pkgs.writeText "secret" "123456");
+        };
+      };
+
+    testScript = ''
+      machine.wait_for_unit("etebase-server.service")
+      machine.wait_for_open_port(8001)
+
+      with subtest("Database & src-version were created"):
+          machine.wait_for_file("${dataDir}/src-version")
+          assert (
+              "${pkgs.etebase-server}"
+              in machine.succeed("cat ${dataDir}/src-version")
+          )
+          machine.wait_for_file("${dataDir}/db.sqlite3")
+          machine.wait_for_file("${dataDir}/static")
+
+      with subtest("Only allow access from allowed_hosts"):
+          machine.succeed("curl -sSfL http://0.0.0.0:8001/")
+          machine.fail("curl -sSfL http://127.0.0.1:8001/")
+          machine.fail("curl -sSfL http://localhost:8001/")
+
+      with subtest("Run tests"):
+          machine.succeed("etebase-server check")
+          machine.succeed("etebase-server test")
+
+      with subtest("Create superuser"):
+          machine.succeed(
+              "etebase-server createsuperuser --no-input --username admin --email root@localhost"
+          )
+    '';
+  }
+)
diff --git a/nixpkgs/nixos/tests/fsck.nix b/nixpkgs/nixos/tests/fsck.nix
index e522419fde2b..5453f3bc48b5 100644
--- a/nixpkgs/nixos/tests/fsck.nix
+++ b/nixpkgs/nixos/tests/fsck.nix
@@ -4,7 +4,7 @@ import ./make-test-python.nix {
   machine = { lib, ... }: {
     virtualisation.emptyDiskImages = [ 1 ];
 
-    fileSystems = lib.mkVMOverride {
+    virtualisation.fileSystems = {
       "/mnt" = {
         device = "/dev/vdb";
         fsType = "ext4";
diff --git a/nixpkgs/nixos/tests/geth.nix b/nixpkgs/nixos/tests/geth.nix
new file mode 100644
index 000000000000..10cbd6d9038c
--- /dev/null
+++ b/nixpkgs/nixos/tests/geth.nix
@@ -0,0 +1,41 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "geth";
+  meta = with pkgs.lib; {
+    maintainers = with maintainers; [bachp ];
+  };
+
+  machine = { ... }: {
+    services.geth."mainnet" = {
+      enable = true;
+      http = {
+        enable = true;
+      };
+    };
+    services.geth."testnet" = {
+      enable = true;
+      port = 30304;
+      network = "goerli";
+      http = {
+        enable = true;
+        port = 18545;
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    machine.wait_for_unit("geth-mainnet.service")
+    machine.wait_for_unit("geth-testnet.service")
+    machine.wait_for_open_port(8545)
+    machine.wait_for_open_port(18545)
+
+    machine.succeed(
+        'geth attach --exec "eth.chainId()" http://localhost:8545 | grep \'"0x0"\' '
+    )
+
+    machine.succeed(
+        'geth attach --exec "eth.chainId()" http://localhost:18545 | grep \'"0x5"\' '
+    )
+  '';
+})
diff --git a/nixpkgs/nixos/tests/gitlab.nix b/nixpkgs/nixos/tests/gitlab.nix
index ba085338944a..582f5faf9bc0 100644
--- a/nixpkgs/nixos/tests/gitlab.nix
+++ b/nixpkgs/nixos/tests/gitlab.nix
@@ -11,6 +11,8 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
 
   nodes = {
     gitlab = { ... }: {
+      imports = [ common/user-account.nix ];
+
       virtualisation.memorySize = if pkgs.stdenv.is64bit then 4096 else 2047;
       systemd.services.gitlab.serviceConfig.Restart = mkForce "no";
       systemd.services.gitlab-workhorse.serviceConfig.Restart = mkForce "no";
@@ -27,11 +29,33 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
         };
       };
 
+      services.dovecot2 = {
+        enable = true;
+        enableImap = true;
+      };
+
+      systemd.services.gitlab-backup.environment.BACKUP = "dump";
+
       services.gitlab = {
         enable = true;
         databasePasswordFile = pkgs.writeText "dbPassword" "xo0daiF4";
         initialRootPasswordFile = pkgs.writeText "rootPassword" initialRootPassword;
         smtp.enable = true;
+        extraConfig = {
+          incoming_email = {
+            enabled = true;
+            mailbox = "inbox";
+            address = "alice@localhost";
+            user = "alice";
+            password = "foobar";
+            host = "localhost";
+            port = 143;
+          };
+          pages = {
+            enabled = true;
+            host = "localhost";
+          };
+        };
         secrets = {
           secretFile = pkgs.writeText "secret" "r8X9keSKynU7p4aKlh4GO1Bo77g5a7vj";
           otpFile = pkgs.writeText "otpsecret" "Zu5hGx3YvQx40DvI8WoZJQpX2paSDOlG";
@@ -42,56 +66,89 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
     };
   };
 
-  testScript =
-  let
-    auth = pkgs.writeText "auth.json" (builtins.toJSON {
-      grant_type = "password";
-      username = "root";
-      password = initialRootPassword;
-    });
+  testScript = { nodes, ... }:
+    let
+      auth = pkgs.writeText "auth.json" (builtins.toJSON {
+        grant_type = "password";
+        username = "root";
+        password = initialRootPassword;
+      });
+
+      createProject = pkgs.writeText "create-project.json" (builtins.toJSON {
+        name = "test";
+      });
+
+      putFile = pkgs.writeText "put-file.json" (builtins.toJSON {
+        branch = "master";
+        author_email = "author@example.com";
+        author_name = "Firstname Lastname";
+        content = "some content";
+        commit_message = "create a new file";
+      });
+
+      # Wait for all GitLab services to be fully started.
+      waitForServices = ''
+        gitlab.wait_for_unit("gitaly.service")
+        gitlab.wait_for_unit("gitlab-workhorse.service")
+        gitlab.wait_for_unit("gitlab-pages.service")
+        gitlab.wait_for_unit("gitlab-mailroom.service")
+        gitlab.wait_for_unit("gitlab.service")
+        gitlab.wait_for_unit("gitlab-sidekiq.service")
+        gitlab.wait_for_file("${nodes.gitlab.config.services.gitlab.statePath}/tmp/sockets/gitlab.socket")
+        gitlab.wait_until_succeeds("curl -sSf http://gitlab/users/sign_in")
+      '';
 
-    createProject = pkgs.writeText "create-project.json" (builtins.toJSON {
-      name = "test";
-    });
+      # The actual test of GitLab. Only push data to GitLab if
+      # `doSetup` is is true.
+      test = doSetup: ''
+        gitlab.succeed(
+            "curl -isSf http://gitlab | grep -i location | grep -q http://gitlab/users/sign_in"
+        )
+        gitlab.succeed(
+            "${pkgs.sudo}/bin/sudo -u gitlab -H gitlab-rake gitlab:check 1>&2"
+        )
+        gitlab.succeed(
+            "echo \"Authorization: Bearer \$(curl -X POST -H 'Content-Type: application/json' -d @${auth} http://gitlab/oauth/token | ${pkgs.jq}/bin/jq -r '.access_token')\" >/tmp/headers"
+        )
+      '' + optionalString doSetup ''
+        gitlab.succeed(
+            "curl -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${createProject} http://gitlab/api/v4/projects"
+        )
+        gitlab.succeed(
+            "curl -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${putFile} http://gitlab/api/v4/projects/1/repository/files/some-file.txt"
+        )
+      '' + ''
+        gitlab.succeed(
+            "curl -H @/tmp/headers http://gitlab/api/v4/projects/1/repository/archive.tar.gz > /tmp/archive.tar.gz"
+        )
+        gitlab.succeed(
+            "curl -H @/tmp/headers http://gitlab/api/v4/projects/1/repository/archive.tar.bz2 > /tmp/archive.tar.bz2"
+        )
+        gitlab.succeed("test -s /tmp/archive.tar.gz")
+        gitlab.succeed("test -s /tmp/archive.tar.bz2")
+      '';
 
-    putFile = pkgs.writeText "put-file.json" (builtins.toJSON {
-      branch = "master";
-      author_email = "author@example.com";
-      author_name = "Firstname Lastname";
-      content = "some content";
-      commit_message = "create a new file";
-    });
-  in
-  ''
-    gitlab.start()
-    gitlab.wait_for_unit("gitaly.service")
-    gitlab.wait_for_unit("gitlab-workhorse.service")
-    gitlab.wait_for_unit("gitlab.service")
-    gitlab.wait_for_unit("gitlab-sidekiq.service")
-    gitlab.wait_for_file("/var/gitlab/state/tmp/sockets/gitlab.socket")
-    gitlab.wait_until_succeeds("curl -sSf http://gitlab/users/sign_in")
-    gitlab.succeed(
-        "curl -isSf http://gitlab | grep -i location | grep -q http://gitlab/users/sign_in"
-    )
-    gitlab.succeed(
-        "${pkgs.sudo}/bin/sudo -u gitlab -H gitlab-rake gitlab:check 1>&2"
-    )
-    gitlab.succeed(
-        "echo \"Authorization: Bearer \$(curl -X POST -H 'Content-Type: application/json' -d @${auth} http://gitlab/oauth/token | ${pkgs.jq}/bin/jq -r '.access_token')\" >/tmp/headers"
-    )
-    gitlab.succeed(
-        "curl -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${createProject} http://gitlab/api/v4/projects"
-    )
-    gitlab.succeed(
-        "curl -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${putFile} http://gitlab/api/v4/projects/1/repository/files/some-file.txt"
-    )
-    gitlab.succeed(
-        "curl -H @/tmp/headers http://gitlab/api/v4/projects/1/repository/archive.tar.gz > /tmp/archive.tar.gz"
-    )
-    gitlab.succeed(
-        "curl -H @/tmp/headers http://gitlab/api/v4/projects/1/repository/archive.tar.bz2 > /tmp/archive.tar.bz2"
-    )
-    gitlab.succeed("test -s /tmp/archive.tar.gz")
-    gitlab.succeed("test -s /tmp/archive.tar.bz2")
-  '';
+  in ''
+      gitlab.start()
+    ''
+    + waitForServices
+    + test true
+    + ''
+      gitlab.systemctl("start gitlab-backup.service")
+      gitlab.wait_for_unit("gitlab-backup.service")
+      gitlab.wait_for_file("${nodes.gitlab.config.services.gitlab.statePath}/backup/dump_gitlab_backup.tar")
+      gitlab.systemctl("stop postgresql.service gitlab.target")
+      gitlab.succeed(
+          "find ${nodes.gitlab.config.services.gitlab.statePath} -mindepth 1 -maxdepth 1 -not -name backup -execdir rm -r {} +"
+      )
+      gitlab.succeed("systemd-tmpfiles --create")
+      gitlab.succeed("rm -rf ${nodes.gitlab.config.services.postgresql.dataDir}")
+      gitlab.systemctl("start gitlab-config.service gitlab-postgresql.service")
+      gitlab.succeed(
+          "sudo -u gitlab -H gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=dump force=yes"
+      )
+      gitlab.systemctl("start gitlab.target")
+    ''
+    + waitForServices
+    + test false;
 })
diff --git a/nixpkgs/nixos/tests/glusterfs.nix b/nixpkgs/nixos/tests/glusterfs.nix
index cb07bc09511d..ef09264a0216 100644
--- a/nixpkgs/nixos/tests/glusterfs.nix
+++ b/nixpkgs/nixos/tests/glusterfs.nix
@@ -3,7 +3,7 @@ import ./make-test-python.nix ({pkgs, lib, ...}:
 let
   client = { pkgs, ... } : {
     environment.systemPackages = [ pkgs.glusterfs ];
-    fileSystems = pkgs.lib.mkVMOverride
+    virtualisation.fileSystems =
       { "/gluster" =
           { device = "server1:/gv0";
             fsType = "glusterfs";
@@ -22,7 +22,7 @@ let
 
     virtualisation.emptyDiskImages = [ 1024 ];
 
-    fileSystems = pkgs.lib.mkVMOverride
+    virtualisation.fileSystems =
       { "/data" =
           { device = "/dev/disk/by-label/data";
             fsType = "ext4";
diff --git a/nixpkgs/nixos/tests/hardened.nix b/nixpkgs/nixos/tests/hardened.nix
index d3f1f3172965..485efc0fb78c 100644
--- a/nixpkgs/nixos/tests/hardened.nix
+++ b/nixpkgs/nixos/tests/hardened.nix
@@ -18,7 +18,7 @@ import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... } : {
       boot.initrd.postDeviceCommands = ''
         ${pkgs.dosfstools}/bin/mkfs.vfat -n EFISYS /dev/vdb
       '';
-      fileSystems = lib.mkVMOverride {
+      virtualisation.fileSystems = {
         "/efi" = {
           device = "/dev/disk/by-label/EFISYS";
           fsType = "vfat";
@@ -65,17 +65,6 @@ import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... } : {
           machine.succeed("grep -Fq wireguard /proc/modules")
 
 
-      # Test hidepid
-      with subtest("hidepid=2 option is applied and works"):
-          # Linux >= 5.8 shows "invisible"
-          machine.succeed(
-              "grep -Fq hidepid=2 /proc/mounts || grep -Fq hidepid=invisible /proc/mounts"
-          )
-          # cannot use pgrep -u here, it segfaults when access to process info is denied
-          machine.succeed("[ `su - sybil -c 'ps --no-headers --user root | wc -l'` = 0 ]")
-          machine.succeed("[ `su - alice -c 'ps --no-headers --user root | wc -l'` != 0 ]")
-
-
       # Test kernel module hardening
       with subtest("No more kernel modules can be loaded"):
           # note: this better a be module we normally wouldn't load ...
diff --git a/nixpkgs/nixos/tests/hledger-web.nix b/nixpkgs/nixos/tests/hledger-web.nix
index 378d819437db..f8919f7d4bd0 100644
--- a/nixpkgs/nixos/tests/hledger-web.nix
+++ b/nixpkgs/nixos/tests/hledger-web.nix
@@ -13,25 +13,22 @@ rec {
   name = "hledger-web";
   meta.maintainers = with lib.maintainers; [ marijanp ];
 
-  nodes = {
-    server = { config, pkgs, ... }: rec {
+  nodes = rec {
+    server = { config, pkgs, ... }: {
       services.hledger-web = {
         host = "127.0.0.1";
         port = 5000;
         enable = true;
-        journalFile = journal;
+        capabilities.manage = true;
       };
-      networking.firewall.allowedTCPPorts = [ services.hledger-web.port ];
+      networking.firewall.allowedTCPPorts = [ config.services.hledger-web.port ];
+      systemd.services.hledger-web.preStart = ''
+        ln -s ${journal} /var/lib/hledger-web/.hledger.journal
+      '';
     };
-    apiserver = { config, pkgs, ... }: rec {
-      services.hledger-web = {
-        host = "127.0.0.1";
-        port = 5000;
-        enable = true;
-        serveApi = true;
-        journalFile = journal;
-      };
-      networking.firewall.allowedTCPPorts = [ services.hledger-web.port ];
+    apiserver = { ... }: {
+      imports = [ server ];
+      services.hledger-web.serveApi = true;
     };
   };
 
@@ -42,7 +39,7 @@ rec {
     server.wait_for_open_port(5000)
     with subtest("Check if web UI is accessible"):
         page = server.succeed("curl -L http://127.0.0.1:5000")
-        assert "test.journal" in page
+        assert ".hledger.journal" in page
 
     apiserver.wait_for_unit("hledger-web.service")
     apiserver.wait_for_open_port(5000)
diff --git a/nixpkgs/nixos/tests/home-assistant.nix b/nixpkgs/nixos/tests/home-assistant.nix
index 131f50747fef..726c7eb6acb6 100644
--- a/nixpkgs/nixos/tests/home-assistant.nix
+++ b/nixpkgs/nixos/tests/home-assistant.nix
@@ -24,6 +24,8 @@ in {
     services.home-assistant = {
       inherit configDir;
       enable = true;
+      # includes the package with all tests enabled
+      package = pkgs.home-assistant;
       config = {
         homeassistant = {
           name = "Home";
diff --git a/nixpkgs/nixos/tests/inspircd.nix b/nixpkgs/nixos/tests/inspircd.nix
new file mode 100644
index 000000000000..f4d82054011c
--- /dev/null
+++ b/nixpkgs/nixos/tests/inspircd.nix
@@ -0,0 +1,93 @@
+let
+  clients = [
+    "ircclient1"
+    "ircclient2"
+  ];
+  server = "inspircd";
+  ircPort = 6667;
+  channel = "nixos-cat";
+  iiDir = "/tmp/irc";
+in
+
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "inspircd";
+  nodes = {
+    "${server}" = {
+      networking.firewall.allowedTCPPorts = [ ircPort ];
+      services.inspircd = {
+        enable = true;
+        package = pkgs.inspircdMinimal;
+        config = ''
+          <bind address="" port="${toString ircPort}" type="clients">
+          <connect name="main" allow="*" pingfreq="15">
+        '';
+      };
+    };
+  } // lib.listToAttrs (builtins.map (client: lib.nameValuePair client {
+    imports = [
+      ./common/user-account.nix
+    ];
+
+    systemd.services.ii = {
+      requires = [ "network.target" ];
+      wantedBy = [ "default.target" ];
+
+      serviceConfig = {
+        Type = "simple";
+        ExecPreStartPre = "mkdir -p ${iiDir}";
+        ExecStart = ''
+          ${lib.getBin pkgs.ii}/bin/ii -n ${client} -s ${server} -i ${iiDir}
+        '';
+        User = "alice";
+      };
+    };
+  }) clients);
+
+  testScript =
+    let
+      msg = client: "Hello, my name is ${client}";
+      clientScript = client: [
+        ''
+          ${client}.wait_for_unit("network.target")
+          ${client}.systemctl("start ii")
+          ${client}.wait_for_unit("ii")
+          ${client}.wait_for_file("${iiDir}/${server}/out")
+        ''
+        # wait until first PING from server arrives before joining,
+        # so we don't try it too early
+        ''
+          ${client}.wait_until_succeeds("grep 'PING' ${iiDir}/${server}/out")
+        ''
+        # join ${channel}
+        ''
+          ${client}.succeed("echo '/j #${channel}' > ${iiDir}/${server}/in")
+          ${client}.wait_for_file("${iiDir}/${server}/#${channel}/in")
+        ''
+        # send a greeting
+        ''
+          ${client}.succeed(
+              "echo '${msg client}' > ${iiDir}/${server}/#${channel}/in"
+          )
+        ''
+        # check that all greetings arrived on all clients
+      ] ++ builtins.map (other: ''
+        ${client}.succeed(
+            "grep '${msg other}$' ${iiDir}/${server}/#${channel}/out"
+        )
+      '') clients;
+
+      # foldl', but requires a non-empty list instead of a start value
+      reduce = f: list:
+        builtins.foldl' f (builtins.head list) (builtins.tail list);
+    in ''
+      start_all()
+      ${server}.wait_for_open_port(${toString ircPort})
+
+      # run clientScript for all clients so that every list
+      # entry is executed by every client before advancing
+      # to the next one.
+    '' + lib.concatStrings
+      (reduce
+        (lib.zipListsWith (cs: c: cs + c))
+        (builtins.map clientScript clients));
+})
diff --git a/nixpkgs/nixos/tests/installer.nix b/nixpkgs/nixos/tests/installer.nix
index 789add331b79..904ec17229e1 100644
--- a/nixpkgs/nixos/tests/installer.nix
+++ b/nixpkgs/nixos/tests/installer.nix
@@ -325,10 +325,13 @@ let
             curl
           ]
           ++ optional (bootLoader == "grub" && grubVersion == 1) pkgs.grub
-          ++ optionals (bootLoader == "grub" && grubVersion == 2) [
-            (pkgs.grub2.override { zfsSupport = true; })
-            (pkgs.grub2_efi.override { zfsSupport = true; })
-          ];
+          ++ optionals (bootLoader == "grub" && grubVersion == 2) (let
+            zfsSupport = lib.any (x: x == "zfs")
+              (extraInstallerConfig.boot.supportedFilesystems or []);
+          in [
+            (pkgs.grub2.override { inherit zfsSupport; })
+            (pkgs.grub2_efi.override { inherit zfsSupport; })
+          ]);
 
           nix.binaryCaches = mkForce [ ];
           nix.extraOptions = ''
@@ -398,9 +401,9 @@ let
     createPartitions = ''
       machine.succeed(
           "flock /dev/vda parted --script /dev/vda -- mklabel gpt"
-          + " mkpart ESP fat32 1M 50MiB"  # /boot
+          + " mkpart ESP fat32 1M 100MiB"  # /boot
           + " set 1 boot on"
-          + " mkpart primary linux-swap 50MiB 1024MiB"
+          + " mkpart primary linux-swap 100MiB 1024MiB"
           + " mkpart primary ext2 1024MiB -1MiB",  # /
           "udevadm settle",
           "mkswap /dev/vda2 -L swap",
diff --git a/nixpkgs/nixos/tests/jq.nix b/nixpkgs/nixos/tests/jq.nix
deleted file mode 100644
index 075e6c43c09d..000000000000
--- a/nixpkgs/nixos/tests/jq.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }: {
-  name = "jq";
-  meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; };
-
-  nodes.jq = { pkgs, ... }: { environment.systemPackages = [ pkgs.jq ]; };
-
-  testScript = ''
-    assert "world" in jq.succeed('echo \'{"values":["hello","world"]}\'| jq \'.values[1]\''')
-  '';
-})
diff --git a/nixpkgs/nixos/tests/kafka.nix b/nixpkgs/nixos/tests/kafka.nix
index d5c54f7d9910..034601c815b9 100644
--- a/nixpkgs/nixos/tests/kafka.nix
+++ b/nixpkgs/nixos/tests/kafka.nix
@@ -30,11 +30,6 @@ let
           '';
           package = kafkaPackage;
           zookeeper = "zookeeper1:2181";
-          # These are the default options, but UseCompressedOops doesn't work with 32bit JVM
-          jvmOptions = [
-            "-server" "-Xmx1G" "-Xms1G" "-XX:+UseParNewGC" "-XX:+UseConcMarkSweepGC" "-XX:+CMSClassUnloadingEnabled"
-            "-XX:+CMSScavengeBeforeRemark" "-XX:+DisableExplicitGC" "-Djava.awt.headless=true" "-Djava.net.preferIPv4Stack=true"
-          ] ++ optionals (! pkgs.stdenv.isi686 ) [ "-XX:+UseCompressedOops" ];
         };
 
         networking.firewall.allowedTCPPorts = [ 9092 ];
@@ -82,4 +77,5 @@ let
 in with pkgs; {
   kafka_2_4  = makeKafkaTest "kafka_2_4"  apacheKafka_2_4;
   kafka_2_5  = makeKafkaTest "kafka_2_5"  apacheKafka_2_5;
+  kafka_2_6  = makeKafkaTest "kafka_2_6"  apacheKafka_2_6;
 }
diff --git a/nixpkgs/nixos/tests/keepassxc.nix b/nixpkgs/nixos/tests/keepassxc.nix
new file mode 100644
index 000000000000..98902187f6ac
--- /dev/null
+++ b/nixpkgs/nixos/tests/keepassxc.nix
@@ -0,0 +1,34 @@
+import ./make-test-python.nix ({ pkgs, ...} :
+
+{
+  name = "keepassxc";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ turion ];
+  };
+
+  machine = { ... }:
+
+  {
+    imports = [
+      ./common/user-account.nix
+      ./common/x11.nix
+    ];
+
+    services.xserver.enable = true;
+    test-support.displayManager.auto.user = "alice";
+    environment.systemPackages = [ pkgs.keepassxc ];
+  };
+
+  enableOCR = true;
+
+  testScript = { nodes, ... }: ''
+    start_all()
+    machine.wait_for_x()
+
+    # start KeePassXC window
+    machine.execute("su - alice -c keepassxc &")
+
+    machine.wait_for_text("KeePassXC ${pkgs.keepassxc.version}")
+    machine.screenshot("KeePassXC")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/kernel-generic.nix b/nixpkgs/nixos/tests/kernel-generic.nix
new file mode 100644
index 000000000000..fbead1dc23b7
--- /dev/null
+++ b/nixpkgs/nixos/tests/kernel-generic.nix
@@ -0,0 +1,37 @@
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+with pkgs.lib;
+
+let
+  makeKernelTest = version: linuxPackages: (import ./make-test-python.nix ({ pkgs, ... }: {
+    name = "kernel-${version}";
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ nequissimus ];
+    };
+
+    machine = { ... }:
+      {
+        boot.kernelPackages = linuxPackages;
+      };
+
+    testScript =
+      ''
+        assert "Linux" in machine.succeed("uname -s")
+        assert "${linuxPackages.kernel.modDirVersion}" in machine.succeed("uname -a")
+      '';
+  }));
+in
+with pkgs; {
+  linux_4_4 = makeKernelTest "4.4" linuxPackages_4_4;
+  linux_4_9 = makeKernelTest "4.9" linuxPackages_4_9;
+  linux_4_14 = makeKernelTest "4.14" linuxPackages_4_14;
+  linux_4_19 = makeKernelTest "4.19" linuxPackages_4_19;
+  linux_5_4 = makeKernelTest "5.4" linuxPackages_5_4;
+  linux_5_10 = makeKernelTest "5.10" linuxPackages_5_10;
+  linux_5_11 = makeKernelTest "5.11" linuxPackages_5_11;
+
+  linux_testing = makeKernelTest "testing" linuxPackages_testing;
+}
diff --git a/nixpkgs/nixos/tests/kernel-latest.nix b/nixpkgs/nixos/tests/kernel-latest.nix
deleted file mode 100644
index 323dde267a42..000000000000
--- a/nixpkgs/nixos/tests/kernel-latest.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
-  name = "kernel-latest";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ nequissimus ];
-  };
-
-  machine = { pkgs, ... }:
-    {
-      boot.kernelPackages = pkgs.linuxPackages_latest;
-    };
-
-  testScript =
-    ''
-      assert "Linux" in machine.succeed("uname -s")
-      assert "${pkgs.linuxPackages_latest.kernel.version}" in machine.succeed("uname -a")
-    '';
-})
diff --git a/nixpkgs/nixos/tests/kernel-lts.nix b/nixpkgs/nixos/tests/kernel-lts.nix
deleted file mode 100644
index 9b03e9db6d84..000000000000
--- a/nixpkgs/nixos/tests/kernel-lts.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
-  name = "kernel-lts";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ nequissimus ];
-  };
-
-  machine = { pkgs, ... }:
-    {
-      boot.kernelPackages = pkgs.linuxPackages;
-    };
-
-  testScript =
-    ''
-      assert "Linux" in machine.succeed("uname -s")
-      assert "${pkgs.linuxPackages.kernel.version}" in machine.succeed("uname -a")
-    '';
-})
diff --git a/nixpkgs/nixos/tests/kernel-testing.nix b/nixpkgs/nixos/tests/kernel-testing.nix
deleted file mode 100644
index 017007c0aec8..000000000000
--- a/nixpkgs/nixos/tests/kernel-testing.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
-  name = "kernel-testing";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ nequissimus ];
-  };
-
-  machine = { pkgs, ... }:
-    {
-      boot.kernelPackages = pkgs.linuxPackages_testing;
-    };
-
-  testScript =
-    ''
-      assert "Linux" in machine.succeed("uname -s")
-      assert "${pkgs.linuxPackages_testing.kernel.modDirVersion}" in machine.succeed("uname -a")
-    '';
-})
diff --git a/nixpkgs/nixos/tests/ksm.nix b/nixpkgs/nixos/tests/ksm.nix
new file mode 100644
index 000000000000..8f84b32020ab
--- /dev/null
+++ b/nixpkgs/nixos/tests/ksm.nix
@@ -0,0 +1,22 @@
+import ./make-test-python.nix ({ lib, ...} :
+
+{
+  name = "ksm";
+  meta = with lib.maintainers; {
+    maintainers = [ rnhmjoj ];
+  };
+
+  machine = { ... }: {
+    imports = [ ../modules/profiles/minimal.nix ];
+
+    hardware.ksm.enable = true;
+    hardware.ksm.sleep = 300;
+  };
+
+  testScript =
+    ''
+      machine.start()
+      machine.wait_until_succeeds("test $(</sys/kernel/mm/ksm/run) -eq 1")
+      machine.wait_until_succeeds("test $(</sys/kernel/mm/ksm/sleep_millisecs) -eq 300")
+    '';
+})
diff --git a/nixpkgs/nixos/tests/kubernetes/dns.nix b/nixpkgs/nixos/tests/kubernetes/dns.nix
index 890499a0fb8a..b6cd811c5aef 100644
--- a/nixpkgs/nixos/tests/kubernetes/dns.nix
+++ b/nixpkgs/nixos/tests/kubernetes/dns.nix
@@ -34,7 +34,7 @@ let
     name = "redis";
     tag = "latest";
     contents = [ pkgs.redis pkgs.bind.host ];
-    config.Entrypoint = "/bin/redis-server";
+    config.Entrypoint = ["/bin/redis-server"];
   };
 
   probePod = pkgs.writeText "probe-pod.json" (builtins.toJSON {
@@ -55,12 +55,11 @@ let
     name = "probe";
     tag = "latest";
     contents = [ pkgs.bind.host pkgs.busybox ];
-    config.Entrypoint = "/bin/tail";
+    config.Entrypoint = ["/bin/tail"];
   };
 
-  extraConfiguration = { config, pkgs, ... }: {
+  extraConfiguration = { config, pkgs, lib, ... }: {
     environment.systemPackages = [ pkgs.bind.host ];
-    # virtualisation.docker.extraOptions = "--dns=${config.services.kubernetes.addons.dns.clusterIp}";
     services.dnsmasq.enable = true;
     services.dnsmasq.servers = [
       "/cluster.local/${config.services.kubernetes.addons.dns.clusterIp}#53"
@@ -77,7 +76,7 @@ let
       # prepare machine1 for test
       machine1.wait_until_succeeds("kubectl get node machine1.${domain} | grep -w Ready")
       machine1.wait_until_succeeds(
-          "docker load < ${redisImage}"
+          "${pkgs.gzip}/bin/zcat ${redisImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
       )
       machine1.wait_until_succeeds(
           "kubectl create -f ${redisPod}"
@@ -86,7 +85,7 @@ let
           "kubectl create -f ${redisService}"
       )
       machine1.wait_until_succeeds(
-          "docker load < ${probeImage}"
+          "${pkgs.gzip}/bin/zcat ${probeImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
       )
       machine1.wait_until_succeeds(
           "kubectl create -f ${probePod}"
@@ -118,7 +117,7 @@ let
       # prepare machines for test
       machine1.wait_until_succeeds("kubectl get node machine2.${domain} | grep -w Ready")
       machine2.wait_until_succeeds(
-          "docker load < ${redisImage}"
+          "${pkgs.gzip}/bin/zcat ${redisImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
       )
       machine1.wait_until_succeeds(
           "kubectl create -f ${redisPod}"
@@ -127,7 +126,7 @@ let
           "kubectl create -f ${redisService}"
       )
       machine2.wait_until_succeeds(
-          "docker load < ${probeImage}"
+          "${pkgs.gzip}/bin/zcat ${probeImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
       )
       machine1.wait_until_succeeds(
           "kubectl create -f ${probePod}"
diff --git a/nixpkgs/nixos/tests/kubernetes/rbac.nix b/nixpkgs/nixos/tests/kubernetes/rbac.nix
index c922da515d91..3fc8ed0fbe38 100644
--- a/nixpkgs/nixos/tests/kubernetes/rbac.nix
+++ b/nixpkgs/nixos/tests/kubernetes/rbac.nix
@@ -85,7 +85,7 @@ let
     name = "kubectl";
     tag = "latest";
     contents = [ kubectl pkgs.busybox kubectlPod2 ];
-    config.Entrypoint = "/bin/sh";
+    config.Entrypoint = ["/bin/sh"];
   };
 
   base = {
@@ -97,7 +97,7 @@ let
       machine1.wait_until_succeeds("kubectl get node machine1.my.zyx | grep -w Ready")
 
       machine1.wait_until_succeeds(
-          "docker load < ${kubectlImage}"
+          "${pkgs.gzip}/bin/zcat ${kubectlImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
       )
 
       machine1.wait_until_succeeds(
@@ -134,7 +134,7 @@ let
       machine1.wait_until_succeeds("kubectl get node machine2.my.zyx | grep -w Ready")
 
       machine2.wait_until_succeeds(
-          "docker load < ${kubectlImage}"
+          "${pkgs.gzip}/bin/zcat ${kubectlImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
       )
 
       machine1.wait_until_succeeds(
diff --git a/nixpkgs/nixos/tests/locate.nix b/nixpkgs/nixos/tests/locate.nix
index 67ae610fe012..e8ba41812a8f 100644
--- a/nixpkgs/nixos/tests/locate.nix
+++ b/nixpkgs/nixos/tests/locate.nix
@@ -7,7 +7,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }:
     nodes = rec {
       a = {
         environment.systemPackages = with pkgs; [ sshfs ];
-        fileSystems = lib.mkVMOverride {
+        virtualisation.fileSystems = {
           "/ssh" = {
             device = "alice@b:/";
             fsType = "fuse.sshfs";
diff --git a/nixpkgs/nixos/tests/matrix-appservice-irc.nix b/nixpkgs/nixos/tests/matrix-appservice-irc.nix
new file mode 100644
index 000000000000..79b07ef83c57
--- /dev/null
+++ b/nixpkgs/nixos/tests/matrix-appservice-irc.nix
@@ -0,0 +1,162 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+  let
+    homeserverUrl = "http://homeserver:8448";
+  in
+  {
+    name = "matrix-appservice-irc";
+    meta = {
+      maintainers = pkgs.matrix-appservice-irc.meta.maintainers;
+    };
+
+    nodes = {
+      homeserver = { pkgs, ... }: {
+        # We'll switch to this once the config is copied into place
+        specialisation.running.configuration = {
+          services.matrix-synapse = {
+            enable = true;
+            database_type = "sqlite3";
+            app_service_config_files = [ "/registration.yml" ];
+
+            enable_registration = true;
+
+            listeners = [
+              # The default but tls=false
+              {
+                "bind_address" = "";
+                "port" = 8448;
+                "resources" = [
+                  { "compress" = true; "names" = [ "client" "webclient" ]; }
+                  { "compress" = false; "names" = [ "federation" ]; }
+                ];
+                "tls" = false;
+                "type" = "http";
+                "x_forwarded" = false;
+              }
+            ];
+          };
+
+          networking.firewall.allowedTCPPorts = [ 8448 ];
+        };
+      };
+
+      ircd = { pkgs, ... }: {
+        services.ngircd = {
+          enable = true;
+          config = ''
+            [Global]
+              Name = ircd.ircd
+              Info = Server Info Text
+              AdminInfo1 = _
+
+            [Channel]
+              Name = #test
+              Topic = a cool place
+
+            [Options]
+              PAM = no
+          '';
+        };
+        networking.firewall.allowedTCPPorts = [ 6667 ];
+      };
+
+      appservice = { pkgs, ... }: {
+        services.matrix-appservice-irc = {
+          enable = true;
+          registrationUrl = "http://appservice:8009";
+
+          settings = {
+            homeserver.url = homeserverUrl;
+            homeserver.domain = "homeserver";
+
+            ircService.servers."ircd" = {
+              name = "IRCd";
+              port = 6667;
+              dynamicChannels = {
+                enabled = true;
+                aliasTemplate = "#irc_$CHANNEL";
+              };
+            };
+          };
+        };
+
+        networking.firewall.allowedTCPPorts = [ 8009 ];
+      };
+
+      client = { pkgs, ... }: {
+        environment.systemPackages = [
+          (pkgs.writers.writePython3Bin "do_test"
+            { libraries = [ pkgs.python3Packages.matrix-client ]; } ''
+            import socket
+            from matrix_client.client import MatrixClient
+            from time import sleep
+
+            matrix = MatrixClient("${homeserverUrl}")
+            matrix.register_with_password(username="alice", password="foobar")
+
+            irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+            irc.connect(("ircd", 6667))
+            irc.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
+            irc.send(b"USER bob bob bob :bob\n")
+            irc.send(b"NICK bob\n")
+
+            m_room = matrix.join_room("#irc_#test:homeserver")
+            irc.send(b"JOIN #test\n")
+
+            # plenty of time for the joins to happen
+            sleep(10)
+
+            m_room.send_text("hi from matrix")
+            irc.send(b"PRIVMSG #test :hi from irc \r\n")
+
+            print("Waiting for irc message...")
+            while True:
+                buf = irc.recv(10000)
+                if b"hi from matrix" in buf:
+                    break
+
+            print("Waiting for matrix message...")
+
+
+            def callback(room, e):
+                if "hi from irc" in e['content']['body']:
+                    exit(0)
+
+
+            m_room.add_listener(callback, "m.room.message")
+            matrix.listen_forever()
+          ''
+          )
+        ];
+      };
+    };
+
+    testScript = ''
+      start_all()
+
+      ircd.wait_for_unit("ngircd.service")
+      ircd.wait_for_open_port(6667)
+
+      with subtest("start the appservice"):
+          appservice.wait_for_unit("matrix-appservice-irc.service")
+          appservice.wait_for_open_port(8009)
+
+      with subtest("copy the registration file"):
+          appservice.copy_from_vm("/var/lib/matrix-appservice-irc/registration.yml")
+          homeserver.copy_from_host(
+              pathlib.Path(os.environ.get("out", os.getcwd())) / "registration.yml", "/"
+          )
+          homeserver.succeed("chmod 444 /registration.yml")
+
+      with subtest("start the homeserver"):
+          homeserver.succeed(
+              "/run/current-system/specialisation/running/bin/switch-to-configuration test >&2"
+          )
+
+          homeserver.wait_for_unit("matrix-synapse.service")
+          homeserver.wait_for_open_port(8448)
+
+      with subtest("ensure messages can be exchanged"):
+          client.succeed("do_test")
+    '';
+
+  })
diff --git a/nixpkgs/nixos/tests/miniflux.nix b/nixpkgs/nixos/tests/miniflux.nix
index 9f8b52c3c857..797a2787d1aa 100644
--- a/nixpkgs/nixos/tests/miniflux.nix
+++ b/nixpkgs/nixos/tests/miniflux.nix
@@ -20,6 +20,13 @@ with lib;
         services.miniflux.enable = true;
       };
 
+    withoutSudo =
+      { ... }:
+      {
+        services.miniflux.enable = true;
+        security.sudo.enable = false;
+      };
+
     customized =
       { ... }:
       {
@@ -46,6 +53,13 @@ with lib;
         "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'"
     )
 
+    withoutSudo.wait_for_unit("miniflux.service")
+    withoutSudo.wait_for_open_port(${toString defaultPort})
+    withoutSudo.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep -q OK")
+    withoutSudo.succeed(
+        "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'"
+    )
+
     customized.wait_for_unit("miniflux.service")
     customized.wait_for_open_port(${toString port})
     customized.succeed("curl --fail 'http://localhost:${toString port}/healthcheck' | grep -q OK")
diff --git a/nixpkgs/nixos/tests/misc.nix b/nixpkgs/nixos/tests/misc.nix
index fda2e60a41b6..fb19b7060562 100644
--- a/nixpkgs/nixos/tests/misc.nix
+++ b/nixpkgs/nixos/tests/misc.nix
@@ -16,7 +16,7 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
       environment.variables.EDITOR = mkOverride 0 "emacs";
       documentation.nixos.enable = mkOverride 0 true;
       systemd.tmpfiles.rules = [ "d /tmp 1777 root root 10d" ];
-      fileSystems = mkVMOverride { "/tmp2" =
+      virtualisation.fileSystems = { "/tmp2" =
         { fsType = "tmpfs";
           options = [ "mode=1777" "noauto" ];
         };
diff --git a/nixpkgs/nixos/tests/musescore.nix b/nixpkgs/nixos/tests/musescore.nix
new file mode 100644
index 000000000000..96481a9a8bf4
--- /dev/null
+++ b/nixpkgs/nixos/tests/musescore.nix
@@ -0,0 +1,86 @@
+import ./make-test-python.nix ({ pkgs, ...} :
+
+let
+  # Make sure we don't have to go through the startup tutorial
+  customMuseScoreConfig = pkgs.writeText "MuseScore3.ini" ''
+    [application]
+    startup\firstStart=false
+
+    [ui]
+    application\startup\showTours=false
+    application\startup\showStartCenter=false
+    '';
+in
+{
+  name = "musescore";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ turion ];
+  };
+
+  machine = { ... }:
+
+  {
+    imports = [
+      ./common/x11.nix
+    ];
+
+    services.xserver.enable = true;
+    environment.systemPackages = with pkgs; [
+      musescore
+      pdfgrep
+    ];
+  };
+
+  enableOCR = true;
+
+  testScript = { ... }: ''
+    start_all()
+    machine.wait_for_x()
+
+    # Inject custom settings
+    machine.succeed("mkdir -p /root/.config/MuseScore/")
+    machine.succeed(
+        "cp ${customMuseScoreConfig} /root/.config/MuseScore/MuseScore3.ini"
+    )
+
+    # Start MuseScore window
+    machine.execute("DISPLAY=:0.0 mscore &")
+
+    # Wait until MuseScore has launched
+    machine.wait_for_window("MuseScore")
+
+    # Wait until the window has completely initialised
+    machine.wait_for_text("MuseScore")
+
+    # Start entering notes
+    machine.send_key("n")
+    # Type the beginning of https://de.wikipedia.org/wiki/Alle_meine_Entchen
+    machine.send_chars("cdef6gg5aaaa7g")
+    # Make sure the VM catches up with all the keys
+    machine.sleep(1)
+
+    machine.screenshot("MuseScore0")
+
+    # Go to the export dialogue and create a PDF
+    machine.send_key("alt-f")
+    machine.sleep(1)
+    machine.send_key("e")
+
+    # Wait until the export dialogue appears.
+    machine.wait_for_window("Export")
+    machine.screenshot("MuseScore1")
+    machine.send_key("ret")
+    machine.sleep(1)
+    machine.send_key("ret")
+
+    machine.screenshot("MuseScore2")
+
+    # Wait until PDF is exported
+    machine.wait_for_file("/root/Documents/MuseScore3/Scores/Untitled.pdf")
+
+    # Check that it contains the title of the score
+    machine.succeed("pdfgrep Title /root/Documents/MuseScore3/Scores/Untitled.pdf")
+
+    machine.screenshot("MuseScore3")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/mysql/mariadb-galera-mariabackup.nix b/nixpkgs/nixos/tests/mysql/mariadb-galera-mariabackup.nix
index a4b893a9f33a..0a40c010a471 100644
--- a/nixpkgs/nixos/tests/mysql/mariadb-galera-mariabackup.nix
+++ b/nixpkgs/nixos/tests/mysql/mariadb-galera-mariabackup.nix
@@ -2,7 +2,7 @@ import ./../make-test-python.nix ({ pkgs, ...} :
 
 let
   mysqlenv-common      = pkgs.buildEnv { name = "mysql-path-env-common";      pathsToLink = [ "/bin" ]; paths = with pkgs; [ bash gawk gnutar inetutils which ]; };
-  mysqlenv-mariabackup = pkgs.buildEnv { name = "mysql-path-env-mariabackup"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ gzip iproute netcat procps pv socat ]; };
+  mysqlenv-mariabackup = pkgs.buildEnv { name = "mysql-path-env-mariabackup"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ gzip iproute2 netcat procps pv socat ]; };
 
 in {
   name = "mariadb-galera-mariabackup";
diff --git a/nixpkgs/nixos/tests/networking.nix b/nixpkgs/nixos/tests/networking.nix
index 4fc5d48e0e17..1ea61f99a951 100644
--- a/nixpkgs/nixos/tests/networking.nix
+++ b/nixpkgs/nixos/tests/networking.nix
@@ -35,7 +35,7 @@ let
         extraConfig = flip concatMapStrings vlanIfs (n: ''
           subnet 192.168.${toString n}.0 netmask 255.255.255.0 {
             option routers 192.168.${toString n}.1;
-            range 192.168.${toString n}.2 192.168.${toString n}.254;
+            range 192.168.${toString n}.3 192.168.${toString n}.254;
           }
         '')
         ;
@@ -672,6 +672,30 @@ let
             ), "The IPv6 routing table has not been properly cleaned:\n{}".format(ipv6Residue)
       '';
     };
+    rename = {
+      name = "RenameInterface";
+      machine = { pkgs, ... }: {
+        virtualisation.vlans = [ 1 ];
+        networking = {
+          useNetworkd = networkd;
+          useDHCP = false;
+        };
+      } //
+      (if networkd
+       then { systemd.network.links."10-custom_name" = {
+                matchConfig.MACAddress = "52:54:00:12:01:01";
+                linkConfig.Name = "custom_name";
+              };
+            }
+       else { services.udev.initrdRules = ''
+               SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="custom_name"
+              '';
+            });
+      testScript = ''
+        machine.succeed("udevadm settle")
+        print(machine.succeed("ip link show dev custom_name"))
+      '';
+    };
     # even with disabled networkd, systemd.network.links should work
     # (as it's handled by udev, not networkd)
     link = {
diff --git a/nixpkgs/nixos/tests/nextcloud/basic.nix b/nixpkgs/nixos/tests/nextcloud/basic.nix
index 900504470427..5074b6cdafef 100644
--- a/nixpkgs/nixos/tests/nextcloud/basic.nix
+++ b/nixpkgs/nixos/tests/nextcloud/basic.nix
@@ -7,7 +7,7 @@ in {
     maintainers = [ globin eqyiel ];
   };
 
-  nodes = {
+  nodes = rec {
     # The only thing the client needs to do is download a file.
     client = { ... }: {
       services.davfs2.enable = true;
@@ -15,7 +15,7 @@ in {
         echo "http://nextcloud/remote.php/webdav/ ${adminuser} ${adminpass}" > /tmp/davfs2-secrets
         chmod 600 /tmp/davfs2-secrets
       '';
-      fileSystems = pkgs.lib.mkVMOverride {
+      virtualisation.fileSystems = {
         "/mnt/dav" = {
           device = "http://nextcloud/remote.php/webdav/";
           fsType = "davfs";
@@ -47,9 +47,14 @@ in {
 
       environment.systemPackages = [ cfg.services.nextcloud.occ ];
     };
+
+    nextcloudWithoutMagick = args@{ config, pkgs, lib, ... }:
+      lib.mkMerge
+      [ (nextcloud args)
+        { services.nextcloud.disableImagemagick = true; } ];
   };
 
-  testScript = let
+  testScript = { nodes, ... }: let
     withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
       #!${pkgs.runtimeShell}
       export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
@@ -68,8 +73,19 @@ in {
       #!${pkgs.runtimeShell}
       diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
     '';
+
+    findInClosure = what: drv: pkgs.runCommand "find-in-closure" { exportReferencesGraph = [ "graph" drv ]; inherit what; } ''
+      test -e graph
+      grep "$what" graph >$out || true
+    '';
+    nextcloudUsesImagick = findInClosure "imagick" nodes.nextcloud.config.system.build.vm;
+    nextcloudWithoutDoesntUseIt = findInClosure "imagick" nodes.nextcloudWithoutMagick.config.system.build.vm;
   in ''
-    start_all()
+    assert open("${nextcloudUsesImagick}").read() != ""
+    assert open("${nextcloudWithoutDoesntUseIt}").read() == ""
+
+    nextcloud.start()
+    client.start()
     nextcloud.wait_for_unit("multi-user.target")
     # This is just to ensure the nextcloud-occ program is working
     nextcloud.succeed("nextcloud-occ status")
diff --git a/nixpkgs/nixos/tests/nfs/kerberos.nix b/nixpkgs/nixos/tests/nfs/kerberos.nix
index 078f0b7814ce..75d1210496b0 100644
--- a/nixpkgs/nixos/tests/nfs/kerberos.nix
+++ b/nixpkgs/nixos/tests/nfs/kerberos.nix
@@ -40,7 +40,7 @@ in
         networking.domain = "nfs.test";
         networking.hostName = "client";
 
-        fileSystems = lib.mkVMOverride
+        virtualisation.fileSystems =
           { "/data" = {
               device  = "server.nfs.test:/";
               fsType  = "nfs";
diff --git a/nixpkgs/nixos/tests/nfs/simple.nix b/nixpkgs/nixos/tests/nfs/simple.nix
index 630c68a5b05d..6a01089c0828 100644
--- a/nixpkgs/nixos/tests/nfs/simple.nix
+++ b/nixpkgs/nixos/tests/nfs/simple.nix
@@ -4,7 +4,7 @@ let
 
   client =
     { pkgs, ... }:
-    { fileSystems = pkgs.lib.mkVMOverride
+    { virtualisation.fileSystems =
         { "/data" =
            { # nfs4 exports the export with fsid=0 as a virtual root directory
              device = if (version == 4) then "server:/" else "server:/data";
diff --git a/nixpkgs/nixos/tests/nixos-generate-config.nix b/nixpkgs/nixos/tests/nixos-generate-config.nix
index 5daa55a8abbe..7bf8d4da7b6d 100644
--- a/nixpkgs/nixos/tests/nixos-generate-config.nix
+++ b/nixpkgs/nixos/tests/nixos-generate-config.nix
@@ -11,12 +11,11 @@ import ./make-test-python.nix ({ lib, ... } : {
       }
     '';
 
-    system.nixos-generate-config.desktopConfiguration = ''
+    system.nixos-generate-config.desktopConfiguration = [''
       # DESKTOP
-      # services.xserver.enable = true;
-      # services.xserver.displayManager.gdm.enable = true;
-      # services.xserver.desktopManager.gnome3.enable = true;
-    '';
+      services.xserver.displayManager.gdm.enable = true;
+      services.xserver.desktopManager.gnome3.enable = true;
+    ''];
   };
   testScript = ''
     start_all()
diff --git a/nixpkgs/nixos/tests/ombi.nix b/nixpkgs/nixos/tests/ombi.nix
new file mode 100644
index 000000000000..bfca86af8175
--- /dev/null
+++ b/nixpkgs/nixos/tests/ombi.nix
@@ -0,0 +1,18 @@
+import ./make-test-python.nix ({ lib, ... }:
+
+with lib;
+
+{
+  name = "ombi";
+  meta.maintainers = with maintainers; [ woky ];
+
+  nodes.machine =
+    { pkgs, ... }:
+    { services.ombi.enable = true; };
+
+  testScript = ''
+    machine.wait_for_unit("ombi.service")
+    machine.wait_for_open_port("5000")
+    machine.succeed("curl --fail http://localhost:5000/")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/openldap.nix b/nixpkgs/nixos/tests/openldap.nix
index 392fae243467..f1a39ad7dde2 100644
--- a/nixpkgs/nixos/tests/openldap.nix
+++ b/nixpkgs/nixos/tests/openldap.nix
@@ -1,4 +1,9 @@
-{ pkgs, system ? builtins.currentSystem, ... }: let
+{ pkgs ? (import ../.. { inherit system; config = { }; })
+, system ? builtins.currentSystem
+, ...
+}:
+
+let
   dbContents = ''
     dn: dc=example
     objectClass: domain
@@ -16,7 +21,7 @@
   '';
 in {
   # New-style configuration
-  current = import ./make-test-python.nix {
+  current = import ./make-test-python.nix ({ pkgs, ... }: {
     inherit testScript;
     name = "openldap";
 
@@ -53,10 +58,10 @@ in {
         declarativeContents."dc=example" = dbContents;
       };
     };
-  };
+  }) { inherit pkgs system; };
 
   # Old-style configuration
-  oldOptions = import ./make-test-python.nix {
+  oldOptions = import ./make-test-python.nix ({ pkgs, ... }: {
     inherit testScript;
     name = "openldap";
 
@@ -72,10 +77,10 @@ in {
         declarativeContents."dc=example" = dbContents;
       };
     };
-  };
+  }) { inherit system pkgs; };
 
   # Manually managed configDir, for example if dynamic config is essential
-  manualConfigDir = import ./make-test-python.nix {
+  manualConfigDir = import ./make-test-python.nix ({ pkgs, ... }: {
     name = "openldap";
 
     machine = { pkgs, ... }: {
@@ -121,5 +126,5 @@ in {
           "systemctl restart openldap",
       )
     '' + testScript;
-  };
+  }) { inherit system pkgs; };
 }
diff --git a/nixpkgs/nixos/tests/orangefs.nix b/nixpkgs/nixos/tests/orangefs.nix
index 24b7737058c8..fe9f9cc37ea0 100644
--- a/nixpkgs/nixos/tests/orangefs.nix
+++ b/nixpkgs/nixos/tests/orangefs.nix
@@ -9,7 +9,7 @@ let
 
     virtualisation.emptyDiskImages = [ 4096 ];
 
-    fileSystems = pkgs.lib.mkVMOverride
+    virtualisation.fileSystems =
       { "/data" =
           { device = "/dev/disk/by-label/data";
             fsType = "ext4";
diff --git a/nixpkgs/nixos/tests/php/default.nix b/nixpkgs/nixos/tests/php/default.nix
index ee7a3b56a3ef..cf78c9db53b7 100644
--- a/nixpkgs/nixos/tests/php/default.nix
+++ b/nixpkgs/nixos/tests/php/default.nix
@@ -1,8 +1,15 @@
-{ system ? builtins.currentSystem,
-  config ? {},
-  pkgs ? import ../../.. { inherit system config; }
-}: {
-  fpm = import ./fpm.nix { inherit system pkgs; };
-  httpd = import ./httpd.nix { inherit system pkgs; };
-  pcre = import ./pcre.nix { inherit system pkgs; };
+{ system ? builtins.currentSystem
+, config ? {}
+, pkgs ? import ../../.. { inherit system config; }
+, php ? pkgs.php
+}:
+
+let
+  php' = php.buildEnv {
+    extensions = { enabled, all }: with all; enabled ++ [ apcu ];
+  };
+in {
+  fpm = import ./fpm.nix { inherit system pkgs; php = php'; };
+  httpd = import ./httpd.nix { inherit system pkgs; php = php'; };
+  pcre = import ./pcre.nix { inherit system pkgs; php = php'; };
 }
diff --git a/nixpkgs/nixos/tests/php/fpm.nix b/nixpkgs/nixos/tests/php/fpm.nix
index 9ad515ebdde0..b11f85d39cb6 100644
--- a/nixpkgs/nixos/tests/php/fpm.nix
+++ b/nixpkgs/nixos/tests/php/fpm.nix
@@ -1,8 +1,10 @@
-import ../make-test-python.nix ({pkgs, lib, ...}: {
-  name = "php-fpm-nginx-test";
+import ../make-test-python.nix ({pkgs, lib, php, ...}: {
+  name = "php-${php.version}-fpm-nginx-test";
   meta.maintainers = lib.teams.php.members;
 
   machine = { config, lib, pkgs, ... }: {
+    environment.systemPackages = [ php ];
+
     services.nginx = {
       enable = true;
 
@@ -10,7 +12,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
         testdir = pkgs.writeTextDir "web/index.php" "<?php phpinfo();";
       in {
         root = "${testdir}/web";
-        locations."~ \.php$".extraConfig = ''
+        locations."~ \\.php$".extraConfig = ''
           fastcgi_pass unix:${config.services.phpfpm.pools.foobar.socket};
           fastcgi_index index.php;
           include ${pkgs.nginx}/conf/fastcgi_params;
@@ -25,6 +27,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
 
     services.phpfpm.pools."foobar" = {
       user = "nginx";
+      phpPackage = php;
       settings = {
         "listen.group" = "nginx";
         "listen.mode" = "0600";
@@ -44,10 +47,11 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
 
     # Check so we get an evaluated PHP back
     response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/")
-    assert "PHP Version ${pkgs.php.version}" in response, "PHP version not detected"
+    assert "PHP Version ${php.version}" in response, "PHP version not detected"
 
     # Check so we have database and some other extensions loaded
-    for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
+    for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite", "apcu"]:
         assert ext in response, f"Missing {ext} extension"
+        machine.succeed(f'test -n "$(php -m | grep -i {ext})"')
   '';
 })
diff --git a/nixpkgs/nixos/tests/php/httpd.nix b/nixpkgs/nixos/tests/php/httpd.nix
index 27ea7a24e3a9..a5ca9b3c5d1f 100644
--- a/nixpkgs/nixos/tests/php/httpd.nix
+++ b/nixpkgs/nixos/tests/php/httpd.nix
@@ -1,5 +1,5 @@
-import ../make-test-python.nix ({pkgs, lib, ...}: {
-  name = "php-httpd-test";
+import ../make-test-python.nix ({pkgs, lib, php, ...}: {
+  name = "php-${php.version}-httpd-test";
   meta.maintainers = lib.teams.php.members;
 
   machine = { config, lib, pkgs, ... }: {
@@ -14,6 +14,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
           index = "index.php index.html";
         };
       };
+      phpPackage = php;
       enablePHP = true;
     };
   };
@@ -22,7 +23,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
 
     # Check so we get an evaluated PHP back
     response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/")
-    assert "PHP Version ${pkgs.php.version}" in response, "PHP version not detected"
+    assert "PHP Version ${php.version}" in response, "PHP version not detected"
 
     # Check so we have database and some other extensions loaded
     for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
diff --git a/nixpkgs/nixos/tests/php/pcre.nix b/nixpkgs/nixos/tests/php/pcre.nix
index 3ea19304bffd..97572f63af33 100644
--- a/nixpkgs/nixos/tests/php/pcre.nix
+++ b/nixpkgs/nixos/tests/php/pcre.nix
@@ -1,7 +1,7 @@
 let
   testString = "can-use-subgroups";
-in import ../make-test-python.nix ({lib, ...}: {
-  name = "php-httpd-pcre-jit-test";
+in import ../make-test-python.nix ({lib, php, ...}: {
+  name = "php-${php.version}-httpd-pcre-jit-test";
   meta.maintainers = lib.teams.php.members;
 
   machine = { lib, pkgs, ... }: {
@@ -9,6 +9,7 @@ in import ../make-test-python.nix ({lib, ...}: {
     services.httpd = {
       enable = true;
       adminAddr = "please@dont.contact";
+      phpPackage = php;
       enablePHP = true;
       phpOptions = "pcre.jit = true";
       extraConfig = let
diff --git a/nixpkgs/nixos/tests/plikd.nix b/nixpkgs/nixos/tests/plikd.nix
new file mode 100644
index 000000000000..8fec93c01f6b
--- /dev/null
+++ b/nixpkgs/nixos/tests/plikd.nix
@@ -0,0 +1,27 @@
+import ./make-test-python.nix ({ lib, ... }: {
+  name = "plikd";
+  meta = with lib.maintainers; {
+    maintainers = [ freezeboy ];
+  };
+
+  machine = { pkgs, ... }: let
+  in {
+    services.plikd.enable = true;
+    environment.systemPackages = [ pkgs.plik ];
+  };
+
+  testScript = ''
+    # Service basic test
+    machine.wait_for_unit("plikd")
+
+    # Network test
+    machine.wait_for_open_port("8080")
+    machine.succeed("curl --fail -v http://localhost:8080")
+
+    # Application test
+    machine.execute("echo test > /tmp/data.txt")
+    machine.succeed("plik --server http://localhost:8080 /tmp/data.txt | grep curl")
+
+    machine.succeed("diff data.txt /tmp/data.txt")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/podman.nix b/nixpkgs/nixos/tests/podman.nix
index 4985ff60365c..6078a936edea 100644
--- a/nixpkgs/nixos/tests/podman.nix
+++ b/nixpkgs/nixos/tests/podman.nix
@@ -96,6 +96,15 @@ import ./make-test-python.nix (
           podman.succeed(su_cmd("podman ps | grep sleeping"))
           podman.succeed(su_cmd("podman stop sleeping"))
           podman.succeed(su_cmd("podman rm sleeping"))
+
+      with subtest("Run container with init"):
+          podman.succeed(
+              "tar cv -C ${pkgs.pkgsStatic.busybox} . | podman import - busybox"
+          )
+          pid = podman.succeed("podman run --rm busybox readlink /proc/self").strip()
+          assert pid == "1"
+          pid = podman.succeed("podman run --rm --init busybox readlink /proc/self").strip()
+          assert pid == "2"
     '';
   }
 )
diff --git a/nixpkgs/nixos/tests/pomerium.nix b/nixpkgs/nixos/tests/pomerium.nix
new file mode 100644
index 000000000000..531b6212711f
--- /dev/null
+++ b/nixpkgs/nixos/tests/pomerium.nix
@@ -0,0 +1,102 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "pomerium";
+  meta = with lib.maintainers; {
+    maintainers = [ lukegb ];
+  };
+
+  nodes = let base = myIP: { pkgs, lib, ... }: {
+    virtualisation.vlans = [ 1 ];
+    networking = {
+      dhcpcd.enable = false;
+      firewall.allowedTCPPorts = [ 80 443 ];
+      hosts = {
+        "192.168.1.1" = [ "pomerium" "pom-auth" ];
+        "192.168.1.2" = [ "backend" "dummy-oidc" ];
+      };
+      interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+        { address = myIP; prefixLength = 24; }
+      ];
+    };
+  }; in {
+    pomerium = { pkgs, lib, ... }: {
+      imports = [ (base "192.168.1.1") ];
+      services.pomerium = {
+        enable = true;
+        settings = {
+          address = ":80";
+          insecure_server = true;
+          authenticate_service_url = "http://pom-auth";
+
+          idp_provider = "oidc";
+          idp_scopes = [ "oidc" ];
+          idp_client_id = "dummy";
+          idp_provider_url = "http://dummy-oidc";
+
+          policy = [{
+            from = "https://my.website";
+            to = "http://192.168.1.2";
+            allow_public_unauthenticated_access = true;
+            preserve_host_header = true;
+          } {
+            from = "https://login.required";
+            to = "http://192.168.1.2";
+            allowed_domains = [ "my.domain" ];
+            preserve_host_header = true;
+          }];
+        };
+        secretsFile = pkgs.writeText "pomerium-secrets" ''
+          # 12345678901234567890123456789012 in base64
+          COOKIE_SECRET=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=
+          IDP_CLIENT_SECRET=dummy
+        '';
+      };
+    };
+    backend = { pkgs, lib, ... }: {
+      imports = [ (base "192.168.1.2") ];
+      services.nginx.enable = true;
+      services.nginx.virtualHosts."my.website" = {
+        root = pkgs.runCommand "testdir" {} ''
+          mkdir "$out"
+          echo hello world > "$out/index.html"
+        '';
+      };
+      services.nginx.virtualHosts."dummy-oidc" = {
+        root = pkgs.runCommand "testdir" {} ''
+          mkdir -p "$out/.well-known"
+          cat <<EOF >"$out/.well-known/openid-configuration"
+            {
+              "issuer": "http://dummy-oidc",
+              "authorization_endpoint": "http://dummy-oidc/auth.txt",
+              "token_endpoint": "http://dummy-oidc/token",
+              "jwks_uri": "http://dummy-oidc/jwks.json",
+              "userinfo_endpoint": "http://dummy-oidc/userinfo",
+              "id_token_signing_alg_values_supported": ["RS256"]
+            }
+          EOF
+          echo hello I am login page >"$out/auth.txt"
+        '';
+      };
+    };
+  };
+
+  testScript = { ... }: ''
+    backend.wait_for_unit("nginx")
+    backend.wait_for_open_port(80)
+
+    pomerium.wait_for_unit("pomerium")
+    pomerium.wait_for_open_port(80)
+
+    with subtest("no authentication required"):
+        pomerium.succeed(
+            "curl --resolve my.website:80:127.0.0.1 http://my.website | grep -q 'hello world'"
+        )
+
+    with subtest("login required"):
+        pomerium.succeed(
+            "curl -I --resolve login.required:80:127.0.0.1 http://login.required | grep -q pom-auth"
+        )
+        pomerium.succeed(
+            "curl -L --resolve login.required:80:127.0.0.1 http://login.required | grep -q 'hello I am login page'"
+        )
+  '';
+})
diff --git a/nixpkgs/nixos/tests/privacyidea.nix b/nixpkgs/nixos/tests/privacyidea.nix
index b71ff0a1669f..4a94f0727946 100644
--- a/nixpkgs/nixos/tests/privacyidea.nix
+++ b/nixpkgs/nixos/tests/privacyidea.nix
@@ -12,10 +12,16 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
 
     services.privacyidea = {
       enable = true;
-      secretKey = "testing";
-      pepper = "testing";
+      secretKey = "$SECRET_KEY";
+      pepper = "$PEPPER";
       adminPasswordFile = pkgs.writeText "admin-password" "testing";
       adminEmail = "root@localhost";
+
+      # Don't try this at home!
+      environmentFile = pkgs.writeText "pi-secrets.env" ''
+        SECRET_KEY=testing
+        PEPPER=testing
+      '';
     };
     services.nginx = {
       enable = true;
@@ -29,6 +35,8 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
     machine.start()
     machine.wait_for_unit("multi-user.target")
     machine.succeed("curl --fail http://localhost | grep privacyIDEA")
+    machine.succeed("grep \"SECRET_KEY = 'testing'\" /var/lib/privacyidea/privacyidea.cfg")
+    machine.succeed("grep \"PI_PEPPER = 'testing'\" /var/lib/privacyidea/privacyidea.cfg")
     machine.succeed(
         "curl --fail http://localhost/auth -F username=admin -F password=testing | grep token"
     )
diff --git a/nixpkgs/nixos/tests/privoxy.nix b/nixpkgs/nixos/tests/privoxy.nix
new file mode 100644
index 000000000000..d16cc498691f
--- /dev/null
+++ b/nixpkgs/nixos/tests/privoxy.nix
@@ -0,0 +1,113 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+let
+  # Note: For some reason Privoxy can't issue valid
+  # certificates if the CA is generated using gnutls :(
+  certs = pkgs.runCommand "example-certs"
+    { buildInputs = [ pkgs.openssl ]; }
+    ''
+      mkdir $out
+
+      # generate CA keypair
+      openssl req -new -nodes -x509 \
+        -extensions v3_ca -keyout $out/ca.key \
+        -out $out/ca.crt -days 365 \
+        -subj "/O=Privoxy CA/CN=Privoxy CA"
+
+      # generate server key/signing request
+      openssl genrsa -out $out/server.key 3072
+      openssl req -new -key $out/server.key \
+        -out server.csr -sha256 \
+        -subj "/O=An unhappy server./CN=example.com"
+
+      # sign the request/generate the certificate
+      openssl x509 -req -in server.csr -CA $out/ca.crt \
+      -CAkey $out/ca.key -CAcreateserial -out $out/server.crt \
+      -days 500 -sha256
+    '';
+in
+
+{
+  name = "privoxy";
+  meta = with lib.maintainers; {
+    maintainers = [ rnhmjoj ];
+  };
+
+  machine = { ... }: {
+    services.nginx.enable = true;
+    services.nginx.virtualHosts."example.com" = {
+      addSSL = true;
+      sslCertificate = "${certs}/server.crt";
+      sslCertificateKey = "${certs}/server.key";
+      locations."/".root = pkgs.writeTextFile
+        { name = "bad-day";
+          destination = "/how-are-you/index.html";
+          text = "I've had a bad day!\n";
+        };
+      locations."/ads".extraConfig = ''
+        return 200 "Hot Nixpkgs PRs in your area. Click here!\n";
+      '';
+    };
+
+    services.privoxy = {
+      enable = true;
+      inspectHttps = true;
+      settings = {
+        ca-cert-file = "${certs}/ca.crt";
+        ca-key-file  = "${certs}/ca.key";
+        debug = 65536;
+      };
+      userActions = ''
+        {+filter{positive}}
+        example.com
+
+        {+block{Fake ads}}
+        example.com/ads
+      '';
+      userFilters = ''
+        FILTER: positive This is a filter example.
+        s/bad/great/ig
+      '';
+    };
+
+    security.pki.certificateFiles = [ "${certs}/ca.crt" ];
+
+    networking.hosts."::1" = [ "example.com" ];
+    networking.proxy.httpProxy = "http://localhost:8118";
+    networking.proxy.httpsProxy = "http://localhost:8118";
+  };
+
+  testScript =
+    ''
+      with subtest("Privoxy is running"):
+          machine.wait_for_unit("privoxy")
+          machine.wait_for_open_port("8118")
+          machine.succeed("curl -f http://config.privoxy.org")
+
+      with subtest("Privoxy can filter http requests"):
+          machine.wait_for_open_port("80")
+          assert "great day" in machine.succeed(
+              "curl -sfL http://example.com/how-are-you? | tee /dev/stderr"
+          )
+
+      with subtest("Privoxy can filter https requests"):
+          machine.wait_for_open_port("443")
+          assert "great day" in machine.succeed(
+              "curl -sfL https://example.com/how-are-you? | tee /dev/stderr"
+          )
+
+      with subtest("Blocks are working"):
+          machine.wait_for_open_port("443")
+          machine.fail("curl -f https://example.com/ads 1>&2")
+          machine.succeed("curl -f https://example.com/PRIVOXY-FORCE/ads 1>&2")
+
+      with subtest("Temporary certificates are cleaned"):
+          # Count current certificates
+          machine.succeed("test $(ls /run/privoxy/certs | wc -l) -gt 0")
+          # Forward in time 12 days, trigger the timer..
+          machine.succeed("date -s \"$(date --date '12 days')\"")
+          machine.systemctl("start systemd-tmpfiles-clean")
+          # ...and count again
+          machine.succeed("test $(ls /run/privoxy/certs | wc -l) -eq 0")
+    '';
+})
diff --git a/nixpkgs/nixos/tests/prometheus-exporters.nix b/nixpkgs/nixos/tests/prometheus-exporters.nix
index 89d17c9de8c0..62c0080dd516 100644
--- a/nixpkgs/nixos/tests/prometheus-exporters.nix
+++ b/nixpkgs/nixos/tests/prometheus-exporters.nix
@@ -75,6 +75,21 @@ let
       '';
     };
 
+    artifactory = {
+      exporterConfig = {
+        enable = true;
+        artiUsername = "artifactory-username";
+        artiPassword = "artifactory-password";
+      };
+      exporterTest = ''
+        wait_for_unit("prometheus-artifactory-exporter.service")
+        wait_for_open_port(9531)
+        succeed(
+            "curl -sSf http://localhost:9531/metrics | grep -q 'artifactory_up'"
+        )
+      '';
+    };
+
     bind = {
       exporterConfig = {
         enable = true;
@@ -121,6 +136,24 @@ let
       '';
     };
 
+    bitcoin = {
+      exporterConfig = {
+        enable = true;
+        rpcUser = "bitcoinrpc";
+        rpcPasswordFile = pkgs.writeText "password" "hunter2";
+      };
+      metricProvider = {
+        services.bitcoind.default.enable = true;
+        services.bitcoind.default.rpc.users.bitcoinrpc.passwordHMAC = "e8fe33f797e698ac258c16c8d7aadfbe$872bdb8f4d787367c26bcfd75e6c23c4f19d44a69f5d1ad329e5adf3f82710f7";
+      };
+      exporterTest = ''
+        wait_for_unit("prometheus-bitcoin-exporter.service")
+        wait_for_unit("bitcoind-default.service")
+        wait_for_open_port(9332)
+        succeed("curl -sSf http://localhost:9332/metrics | grep -q '^bitcoin_blocks '")
+      '';
+    };
+
     blackbox = {
       exporterConfig = {
         enable = true;
@@ -186,6 +219,22 @@ let
       '';
     };
 
+    # Access to WHOIS server is required to properly test this exporter, so
+    # just perform basic sanity check that the exporter is running and returns
+    # a failure.
+    domain = {
+      exporterConfig = {
+        enable = true;
+      };
+      exporterTest = ''
+        wait_for_unit("prometheus-domain-exporter.service")
+        wait_for_open_port(9222)
+        succeed(
+            "curl -sSf 'http://localhost:9222/probe?target=nixos.org' | grep -q 'domain_probe_success 0'"
+        )
+      '';
+    };
+
     dovecot = {
       exporterConfig = {
         enable = true;
@@ -218,6 +267,29 @@ let
       '';
     };
 
+    jitsi = {
+      exporterConfig = {
+        enable = true;
+      };
+      metricProvider = {
+        systemd.services.prometheus-jitsi-exporter.after = [ "jitsi-videobridge2.service" ];
+        services.jitsi-videobridge = {
+          enable = true;
+          apis = [ "colibri" "rest" ];
+        };
+      };
+      exporterTest = ''
+        wait_for_unit("jitsi-videobridge2.service")
+        wait_for_open_port(8080)
+        wait_for_unit("prometheus-jitsi-exporter.service")
+        wait_for_open_port(9700)
+        wait_until_succeeds(
+            'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep -q "key=participants"'
+        )
+        succeed("curl -sSf 'localhost:9700/metrics' | grep -q 'jitsi_participants 0'")
+      '';
+    };
+
     json = {
       exporterConfig = {
         enable = true;
@@ -248,6 +320,24 @@ let
       '';
     };
 
+    knot = {
+      exporterConfig = {
+        enable = true;
+      };
+      metricProvider = {
+        services.knot = {
+          enable = true;
+          extraArgs = [ "-v" ];
+        };
+      };
+      exporterTest = ''
+        wait_for_unit("knot.service")
+        wait_for_unit("prometheus-knot-exporter.service")
+        wait_for_open_port(9433)
+        succeed("curl -sSf 'localhost:9433' | grep -q 'knot_server_zone_count 0.0'")
+      '';
+    };
+
     keylight = {
       # A hardware device is required to properly test this exporter, so just
       # perform a couple of basic sanity checks that the exporter is running
@@ -547,6 +637,66 @@ let
       '';
     };
 
+    openldap = {
+      exporterConfig = {
+        enable = true;
+        ldapCredentialFile = "${pkgs.writeText "exporter.yml" ''
+          ldapUser: "cn=root,dc=example"
+          ldapPass: "notapassword"
+        ''}";
+      };
+      metricProvider = {
+        services.openldap = {
+          enable = true;
+          settings.children = {
+            "cn=schema".includes = [
+              "${pkgs.openldap}/etc/schema/core.ldif"
+              "${pkgs.openldap}/etc/schema/cosine.ldif"
+              "${pkgs.openldap}/etc/schema/inetorgperson.ldif"
+              "${pkgs.openldap}/etc/schema/nis.ldif"
+            ];
+            "olcDatabase={1}mdb" = {
+              attrs = {
+                objectClass = [ "olcDatabaseConfig" "olcMdbConfig" ];
+                olcDatabase = "{1}mdb";
+                olcDbDirectory = "/var/db/openldap";
+                olcSuffix = "dc=example";
+                olcRootDN = {
+                  # cn=root,dc=example
+                  base64 = "Y249cm9vdCxkYz1leGFtcGxl";
+                };
+                olcRootPW = {
+                  path = "${pkgs.writeText "rootpw" "notapassword"}";
+                };
+              };
+            };
+            "olcDatabase={2}monitor".attrs = {
+              objectClass = [ "olcDatabaseConfig" ];
+              olcDatabase = "{2}monitor";
+              olcAccess = [ "to dn.subtree=cn=monitor by users read" ];
+            };
+          };
+          declarativeContents."dc=example" = ''
+            dn: dc=example
+            objectClass: domain
+            dc: example
+
+            dn: ou=users,dc=example
+            objectClass: organizationalUnit
+            ou: users
+          '';
+        };
+      };
+      exporterTest = ''
+        wait_for_unit("prometheus-openldap-exporter.service")
+        wait_for_open_port(389)
+        wait_for_open_port(9330)
+        wait_until_succeeds(
+            "curl -sSf http://localhost:9330/metrics | grep -q 'openldap_scrape{result=\"ok\"} 1'"
+        )
+      '';
+    };
+
     openvpn = {
       exporterConfig = {
         enable = true;
@@ -802,6 +952,22 @@ let
       '';
     };
 
+    systemd = {
+      exporterConfig = {
+        enable = true;
+      };
+      metricProvider = { };
+      exporterTest = ''
+        wait_for_unit("prometheus-systemd-exporter.service")
+        wait_for_open_port(9558)
+        succeed(
+            "curl -sSf localhost:9558/metrics | grep -q '{}'".format(
+                'systemd_unit_state{name="basic.target",state="active",type="target"} 1'
+            )
+        )
+      '';
+    };
+
     tor = {
       exporterConfig = {
         enable = true;
diff --git a/nixpkgs/nixos/tests/restic.nix b/nixpkgs/nixos/tests/restic.nix
index 0cc8bd39afbb..16979eab8217 100644
--- a/nixpkgs/nixos/tests/restic.nix
+++ b/nixpkgs/nixos/tests/restic.nix
@@ -45,6 +45,10 @@ import ./make-test-python.nix (
                     '';
                     inherit passwordFile initialize paths pruneOpts;
                   };
+                  remoteprune = {
+                    inherit repository passwordFile;
+                    pruneOpts = [ "--keep-last 1" ];
+                  };
                 };
 
                 environment.sessionVariables.RCLONE_CONFIG_LOCAL_TYPE = "local";
@@ -84,6 +88,8 @@ import ./make-test-python.nix (
               "systemctl start restic-backups-rclonebackup.service",
               '${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^4 snapshot"',
               '${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots -c | grep -e "^4 snapshot"',
+              "systemctl start restic-backups-remoteprune.service",
+              '${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
           )
         '';
       }
diff --git a/nixpkgs/nixos/tests/ripgrep.nix b/nixpkgs/nixos/tests/ripgrep.nix
deleted file mode 100644
index 3ff3bf4be151..000000000000
--- a/nixpkgs/nixos/tests/ripgrep.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }: {
-  name = "ripgrep";
-  meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; };
-
-  nodes.ripgrep = { pkgs, ... }: { environment.systemPackages = [ pkgs.ripgrep ]; };
-
-  testScript = ''
-    ripgrep.succeed('echo "abc\nbcd\ncde" > /tmp/foo')
-    assert "bcd" in ripgrep.succeed("rg -N 'bcd' /tmp/foo")
-    assert "bcd\ncde" in ripgrep.succeed("rg -N 'cd' /tmp/foo")
-    assert "ripgrep ${pkgs.ripgrep.version}" in ripgrep.succeed("rg --version | head -1")
-  '';
-})
diff --git a/nixpkgs/nixos/tests/samba.nix b/nixpkgs/nixos/tests/samba.nix
index 142269752b34..d1d50caabfa5 100644
--- a/nixpkgs/nixos/tests/samba.nix
+++ b/nixpkgs/nixos/tests/samba.nix
@@ -8,7 +8,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
   nodes =
     { client =
         { pkgs, ... }:
-        { fileSystems = pkgs.lib.mkVMOverride
+        { virtualisation.fileSystems =
             { "/public" = {
                 fsType = "cifs";
                 device = "//server/public";
diff --git a/nixpkgs/nixos/tests/sbt-extras.nix b/nixpkgs/nixos/tests/sbt-extras.nix
deleted file mode 100644
index f1672bf20665..000000000000
--- a/nixpkgs/nixos/tests/sbt-extras.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
-  name = "sbt-extras";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ nequissimus ];
-  };
-
-  machine = { pkgs, ... }:
-    {
-      environment.systemPackages = [ pkgs.sbt-extras ];
-    };
-
-  testScript =
-    ''
-      machine.succeed("(sbt -h)")
-    '';
-})
diff --git a/nixpkgs/nixos/tests/sbt.nix b/nixpkgs/nixos/tests/sbt.nix
deleted file mode 100644
index 22541232ba65..000000000000
--- a/nixpkgs/nixos/tests/sbt.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
-  name = "sbt";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ nequissimus ];
-  };
-
-  machine = { pkgs, ... }:
-    {
-      environment.systemPackages = [ pkgs.sbt ];
-    };
-
-  testScript =
-    ''
-      machine.succeed(
-          "(sbt --offline --version 2>&1 || true) | grep 'getting org.scala-sbt sbt ${pkgs.sbt.version}  (this may take some time)'"
-      )
-    '';
-})
diff --git a/nixpkgs/nixos/tests/snapcast.nix b/nixpkgs/nixos/tests/snapcast.nix
index 2fef63625140..ef35d586c9c8 100644
--- a/nixpkgs/nixos/tests/snapcast.nix
+++ b/nixpkgs/nixos/tests/snapcast.nix
@@ -34,6 +34,10 @@ in {
             type = "tcp";
             location = "127.0.0.1:${toString tcpStreamPort}";
           };
+          meta = {
+            type = "meta";
+            location = "/mpd/bluetooth/tcp";
+          };
         };
       };
     };
diff --git a/nixpkgs/nixos/tests/snapper.nix b/nixpkgs/nixos/tests/snapper.nix
index 018102d7f640..098d8d9d72f5 100644
--- a/nixpkgs/nixos/tests/snapper.nix
+++ b/nixpkgs/nixos/tests/snapper.nix
@@ -9,7 +9,7 @@ import ./make-test-python.nix ({ ... }:
 
     virtualisation.emptyDiskImages = [ 4096 ];
 
-    fileSystems = lib.mkVMOverride {
+    virtualisation.fileSystems = {
       "/home" = {
         device = "/dev/disk/by-label/aux";
         fsType = "btrfs";
diff --git a/nixpkgs/nixos/tests/spike.nix b/nixpkgs/nixos/tests/spike.nix
index cb89df73877b..09035a156418 100644
--- a/nixpkgs/nixos/tests/spike.nix
+++ b/nixpkgs/nixos/tests/spike.nix
@@ -17,6 +17,6 @@ in
     ''
       machine.wait_for_unit("multi-user.target")
       output = machine.succeed("spike -m64 $(which pk) $(which hello)")
-      assert output == "Hello, world!\n"
+      assert "Hello, world!" in output
     '';
 })
diff --git a/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix b/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
index bce78f09fdcc..94f17605e001 100644
--- a/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
+++ b/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
@@ -43,7 +43,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
       # Everyone on the "isp" machine will be able to add routes to the kernel.
       security.wrappers.add-dhcpd-lease = {
         source = pkgs.writeShellScript "add-dhcpd-lease" ''
-          exec ${pkgs.iproute}/bin/ip -6 route replace "$1" via "$2"
+          exec ${pkgs.iproute2}/bin/ip -6 route replace "$1" via "$2"
         '';
         capabilities = "cap_net_admin+ep";
       };
@@ -165,7 +165,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
               # accept the delegated prefix.
               PrefixDelegationHint  = "::/48";
             };
-            ipv6PrefixDelegationConfig = {
+            ipv6SendRAConfig = {
               # Let networkd know that we would very much like to use DHCPv6
               # to obtain the "managed" information. Not sure why they can't
               # just take that from the upstream RAs.
@@ -179,24 +179,20 @@ import ./make-test-python.nix ({pkgs, ...}: {
             name = "eth2";
             networkConfig = {
               Description = "Client interface";
-              # the client shouldn't be allowed to send us RAs, that would be weird.
+              # The client shouldn't be allowed to send us RAs, that would be weird.
               IPv6AcceptRA = false;
 
-              # Just delegate prefixes from the DHCPv6 PD pool.
-              # If you also want to distribute a local ULA prefix you want to
-              # set this to `yes` as that includes both static prefixes as well
-              # as PD prefixes.
-              IPv6PrefixDelegation = "dhcpv6";
+              # Delegate prefixes from the DHCPv6 PD pool.
+              DHCPv6PrefixDelegation = true;
+              IPv6SendRA = true;
             };
-            # finally "act as router" (according to systemd.network(5))
-            ipv6PrefixDelegationConfig = {
-              RouterLifetimeSec = 300; # required as otherwise no RA's are being emitted
 
-              # In a production environment you should consider setting these as well:
+            # In a production environment you should consider setting these as well:
+            # ipv6SendRAConfig = {
               #EmitDNS = true;
               #EmitDomains = true;
               #DNS= = "fe80::1"; # or whatever "well known" IP your router will have on the inside.
-            };
+            # };
 
             # This adds a "random" ULA prefix to the interface that is being
             # advertised to the clients.
diff --git a/nixpkgs/nixos/tests/systemd-unit-path.nix b/nixpkgs/nixos/tests/systemd-unit-path.nix
new file mode 100644
index 000000000000..5998a187188a
--- /dev/null
+++ b/nixpkgs/nixos/tests/systemd-unit-path.nix
@@ -0,0 +1,47 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+let
+  exampleScript = pkgs.writeTextFile {
+    name = "example.sh";
+    text = ''
+      #! ${pkgs.runtimeShell} -e
+
+      while true; do
+          echo "Example script running" >&2
+          ${pkgs.coreutils}/bin/sleep 1
+      done
+    '';
+    executable = true;
+  };
+
+  unitFile = pkgs.writeTextFile {
+    name = "example.service";
+    text = ''
+      [Unit]
+      Description=Example systemd service unit file
+
+      [Service]
+      ExecStart=${exampleScript}
+
+      [Install]
+      WantedBy=multi-user.target
+    '';
+  };
+in
+{
+  name = "systemd-unit-path";
+
+  machine = { pkgs, lib, ... }: {
+    boot.extraSystemdUnitPaths = [ "/etc/systemd-rw/system" ];
+  };
+
+  testScript = ''
+    machine.wait_for_unit("multi-user.target")
+    machine.succeed("mkdir -p /etc/systemd-rw/system")
+    machine.succeed(
+        "cp ${unitFile} /etc/systemd-rw/system/example.service"
+    )
+    machine.succeed("systemctl start example.service")
+    machine.succeed("systemctl status example.service | grep 'Active: active'")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/systemd.nix b/nixpkgs/nixos/tests/systemd.nix
index f7c13a587c58..e0685f53a945 100644
--- a/nixpkgs/nixos/tests/systemd.nix
+++ b/nixpkgs/nixos/tests/systemd.nix
@@ -9,7 +9,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
 
     environment.systemPackages = [ pkgs.cryptsetup ];
 
-    fileSystems = lib.mkVMOverride {
+    virtualisation.fileSystems = {
       "/test-x-initrd-mount" = {
         device = "/dev/vdb";
         fsType = "ext2";
diff --git a/nixpkgs/nixos/tests/traefik.nix b/nixpkgs/nixos/tests/traefik.nix
index 4eeae29acadf..f27f6e1e6d69 100644
--- a/nixpkgs/nixos/tests/traefik.nix
+++ b/nixpkgs/nixos/tests/traefik.nix
@@ -11,8 +11,8 @@ import ./make-test-python.nix ({ pkgs, ... }: {
       environment.systemPackages = [ pkgs.curl ];
     };
     traefik = { config, pkgs, ... }: {
-      docker-containers.nginx = {
-        extraDockerOptions = [
+      virtualisation.oci-containers.containers.nginx = {
+        extraOptions = [
           "-l" "traefik.enable=true"
           "-l" "traefik.http.routers.nginx.entrypoints=web"
           "-l" "traefik.http.routers.nginx.rule=Host(`nginx.traefik.test`)"
diff --git a/nixpkgs/nixos/tests/turbovnc-headless-server.nix b/nixpkgs/nixos/tests/turbovnc-headless-server.nix
new file mode 100644
index 000000000000..35da9a53d2db
--- /dev/null
+++ b/nixpkgs/nixos/tests/turbovnc-headless-server.nix
@@ -0,0 +1,171 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "turbovnc-headless-server";
+  meta = {
+    maintainers = with lib.maintainers; [ nh2 ];
+  };
+
+  machine = { pkgs, ... }: {
+
+    environment.systemPackages = with pkgs; [
+      glxinfo
+      procps # for `pkill`, `pidof` in the test
+      scrot # for screenshotting Xorg
+      turbovnc
+    ];
+
+    programs.turbovnc.ensureHeadlessSoftwareOpenGL = true;
+
+    networking.firewall = {
+      # Reject instead of drop, for failures instead of hangs.
+      rejectPackets = true;
+      allowedTCPPorts = [
+        5900 # VNC :0, for seeing what's going on in the server
+      ];
+    };
+
+    # So that we can ssh into the VM, see e.g.
+    # http://blog.patapon.info/nixos-local-vm/#accessing-the-vm-with-ssh
+    services.openssh.enable = true;
+    services.openssh.permitRootLogin = "yes";
+    users.extraUsers.root.password = "";
+    users.mutableUsers = false;
+  };
+
+  testScript = ''
+    def wait_until_terminated_or_succeeds(
+        termination_check_shell_command,
+        success_check_shell_command,
+        get_detail_message_fn,
+        retries=60,
+        retry_sleep=0.5,
+    ):
+        def check_success():
+            command_exit_code, _output = machine.execute(success_check_shell_command)
+            return command_exit_code == 0
+
+        for _ in range(retries):
+            exit_check_exit_code, _output = machine.execute(termination_check_shell_command)
+            is_terminated = exit_check_exit_code != 0
+            if is_terminated:
+                if check_success():
+                    return
+                else:
+                    details = get_detail_message_fn()
+                    raise Exception(
+                        f"termination check ({termination_check_shell_command}) triggered without command succeeding ({success_check_shell_command}); details: {details}"
+                    )
+            else:
+                if check_success():
+                    return
+            time.sleep(retry_sleep)
+
+        if not check_success():
+            details = get_detail_message_fn()
+            raise Exception(
+                f"action timed out ({success_check_shell_command}); details: {details}"
+            )
+
+
+    # Below we use the pattern:
+    #     (cmd | tee stdout.log) 3>&1 1>&2 2>&3 | tee stderr.log
+    # to capture both stderr and stdout while also teeing them, see:
+    # https://unix.stackexchange.com/questions/6430/how-to-redirect-stderr-and-stdout-to-different-files-and-also-display-in-termina/6431#6431
+
+
+    # Starts headless VNC server, backgrounding it.
+    def start_xvnc():
+        xvnc_command = " ".join(
+            [
+                "Xvnc",
+                ":0",
+                "-iglx",
+                "-auth /root/.Xauthority",
+                "-geometry 1240x900",
+                "-depth 24",
+                "-rfbwait 5000",
+                "-deferupdate 1",
+                "-verbose",
+                "-securitytypes none",
+                # We don't enforce localhost listening such that we
+                # can connect from outside the VM using
+                #     env QEMU_NET_OPTS=hostfwd=tcp::5900-:5900 $(nix-build nixos/tests/turbovnc-headless-server.nix -A driver)/bin/nixos-test-driver
+                # for testing purposes, and so that we can in the future
+                # add another test case that connects the TurboVNC client.
+                # "-localhost",
+            ]
+        )
+        machine.execute(
+            # Note trailing & for backgrounding.
+            f"({xvnc_command} | tee /tmp/Xvnc.stdout) 3>&1 1>&2 2>&3 | tee /tmp/Xvnc.stderr &",
+        )
+
+
+    # Waits until the server log message that tells us that GLX is ready
+    # (requires `-verbose` above), avoiding screenshoting racing below.
+    def wait_until_xvnc_glx_ready():
+        machine.wait_until_succeeds("test -f /tmp/Xvnc.stderr")
+        wait_until_terminated_or_succeeds(
+            termination_check_shell_command="pidof Xvnc",
+            success_check_shell_command="grep 'GLX: Initialized DRISWRAST' /tmp/Xvnc.stderr",
+            get_detail_message_fn=lambda: "Contents of /tmp/Xvnc.stderr:\n"
+            + machine.succeed("cat /tmp/Xvnc.stderr"),
+        )
+
+
+    # Checks that we detect glxgears failing when
+    # `LIBGL_DRIVERS_PATH=/nonexistent` is set
+    # (in which case software rendering should not work).
+    def test_glxgears_failing_with_bad_driver_path():
+        machine.execute(
+            # Note trailing & for backgrounding.
+            "(env DISPLAY=:0 LIBGL_DRIVERS_PATH=/nonexistent glxgears -info | tee /tmp/glxgears-should-fail.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears-should-fail.stderr &"
+        )
+        machine.wait_until_succeeds("test -f /tmp/glxgears-should-fail.stderr")
+        wait_until_terminated_or_succeeds(
+            termination_check_shell_command="pidof glxgears",
+            success_check_shell_command="grep 'libGL error: failed to load driver: swrast' /tmp/glxgears-should-fail.stderr",
+            get_detail_message_fn=lambda: "Contents of /tmp/glxgears-should-fail.stderr:\n"
+            + machine.succeed("cat /tmp/glxgears-should-fail.stderr"),
+        )
+        machine.wait_until_fails("pidof glxgears")
+
+
+    # Starts glxgears, backgrounding it. Waits until it prints the `GL_RENDERER`.
+    # Does not quit glxgears.
+    def test_glxgears_prints_renderer():
+        machine.execute(
+            # Note trailing & for backgrounding.
+            "(env DISPLAY=:0 glxgears -info | tee /tmp/glxgears.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears.stderr &"
+        )
+        machine.wait_until_succeeds("test -f /tmp/glxgears.stderr")
+        wait_until_terminated_or_succeeds(
+            termination_check_shell_command="pidof glxgears",
+            success_check_shell_command="grep 'GL_RENDERER' /tmp/glxgears.stdout",
+            get_detail_message_fn=lambda: "Contents of /tmp/glxgears.stderr:\n"
+            + machine.succeed("cat /tmp/glxgears.stderr"),
+        )
+
+
+    with subtest("Start Xvnc"):
+        start_xvnc()
+        wait_until_xvnc_glx_ready()
+
+    with subtest("Ensure bad driver path makes glxgears fail"):
+        test_glxgears_failing_with_bad_driver_path()
+
+    with subtest("Run 3D application (glxgears)"):
+        test_glxgears_prints_renderer()
+
+        # Take screenshot; should display the glxgears.
+        machine.succeed("scrot --display :0 /tmp/glxgears.png")
+
+    # Copy files down.
+    machine.copy_from_vm("/tmp/glxgears.png")
+    machine.copy_from_vm("/tmp/glxgears.stdout")
+    machine.copy_from_vm("/tmp/glxgears-should-fail.stdout")
+    machine.copy_from_vm("/tmp/glxgears-should-fail.stderr")
+    machine.copy_from_vm("/tmp/Xvnc.stdout")
+    machine.copy_from_vm("/tmp/Xvnc.stderr")
+  '';
+
+})
diff --git a/nixpkgs/nixos/tests/unbound.nix b/nixpkgs/nixos/tests/unbound.nix
index c88231636226..d4b8bb15ced6 100644
--- a/nixpkgs/nixos/tests/unbound.nix
+++ b/nixpkgs/nixos/tests/unbound.nix
@@ -27,6 +27,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
         # disable the root anchor update as we do not have internet access during
         # the test execution
         services.unbound.enableRootTrustAnchor = false;
+
+        # we want to test the full-variant of the package to also get DoH support
+        services.unbound.package = pkgs.unbound-full;
       };
     };
 
@@ -81,13 +84,16 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
         networking.firewall.allowedTCPPorts = [
           53 # regular DNS
           853 # DNS over TLS
+          443 # DNS over HTTPS
         ];
         networking.firewall.allowedUDPPorts = [ 53 ];
 
         services.unbound = {
           enable = true;
           allowedAccess = [ "192.168.0.0/24" "fd21::/64" "::1" "127.0.0.0/8" ];
-          interfaces = [ "::1" "127.0.0.1" "192.168.0.2" "fd21::2" "192.168.0.2@853" "fd21::2@853" "::1@853" "127.0.0.1@853" ];
+          interfaces = [ "::1" "127.0.0.1" "192.168.0.2" "fd21::2"
+                         "192.168.0.2@853" "fd21::2@853" "::1@853" "127.0.0.1@853"
+                         "192.168.0.2@443" "fd21::2@443" "::1@443" "127.0.0.1@443" ];
           forwardAddresses = [
             (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv6.addresses).address
             (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv4.addresses).address
@@ -217,6 +223,14 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
                           expected,
                           ["+tcp", "+tls"] + args,
                       )
+                      query(
+                          machine,
+                          remote,
+                          query_type,
+                          zone,
+                          expected,
+                          ["+https"] + args,
+                      )
 
 
       client.start()
diff --git a/nixpkgs/nixos/tests/wiki-js.nix b/nixpkgs/nixos/tests/wiki-js.nix
new file mode 100644
index 000000000000..9aa87d15366b
--- /dev/null
+++ b/nixpkgs/nixos/tests/wiki-js.nix
@@ -0,0 +1,152 @@
+import ./make-test-python.nix ({ pkgs, lib, ...} : {
+  name = "wiki-js";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ ma27 ];
+  };
+
+  machine = { pkgs, ... }: {
+    virtualisation.memorySize = 2048;
+    services.wiki-js = {
+      enable = true;
+      settings.db.host = "/run/postgresql";
+      settings.db.user = "wiki-js";
+      settings.logLevel = "debug";
+    };
+    services.postgresql = {
+      enable = true;
+      ensureDatabases = [ "wiki" ];
+      ensureUsers = [
+        { name = "wiki-js";
+          ensurePermissions."DATABASE wiki" = "ALL PRIVILEGES";
+        }
+      ];
+    };
+    systemd.services.wiki-js = {
+      requires = [ "postgresql.service" ];
+      after = [ "postgresql.service" ];
+    };
+    environment.systemPackages = with pkgs; [ jq ];
+  };
+
+  testScript = let
+    payloads.finalize = pkgs.writeText "finalize.json" (builtins.toJSON {
+      adminEmail = "webmaster@example.com";
+      adminPassword = "notapassword";
+      adminPasswordConfirm = "notapassword";
+      siteUrl = "http://localhost:3000";
+      telemetry = false;
+    });
+    payloads.login = pkgs.writeText "login.json" (builtins.toJSON [{
+      operationName = null;
+      extensions = {};
+      query = ''
+        mutation ($username: String!, $password: String!, $strategy: String!) {
+          authentication {
+            login(username: $username, password: $password, strategy: $strategy) {
+              responseResult {
+                succeeded
+                errorCode
+                slug
+                message
+                __typename
+              }
+              jwt
+              mustChangePwd
+              mustProvideTFA
+              mustSetupTFA
+              continuationToken
+              redirect
+              tfaQRImage
+              __typename
+            }
+            __typename
+          }
+        }
+      '';
+      variables = {
+        password = "notapassword";
+        strategy = "local";
+        username = "webmaster@example.com";
+      };
+    }]);
+    payloads.content = pkgs.writeText "content.json" (builtins.toJSON [{
+      extensions = {};
+      operationName = null;
+      query = ''
+        mutation ($content: String!, $description: String!, $editor: String!, $isPrivate: Boolean!, $isPublished: Boolean!, $locale: String!, $path: String!, $publishEndDate: Date, $publishStartDate: Date, $scriptCss: String, $scriptJs: String, $tags: [String]!, $title: String!) {
+          pages {
+            create(content: $content, description: $description, editor: $editor, isPrivate: $isPrivate, isPublished: $isPublished, locale: $locale, path: $path, publishEndDate: $publishEndDate, publishStartDate: $publishStartDate, scriptCss: $scriptCss, scriptJs: $scriptJs, tags: $tags, title: $title) {
+              responseResult {
+                succeeded
+                errorCode
+                slug
+                message
+                __typename
+              }
+              page {
+                id
+                updatedAt
+                __typename
+              }
+              __typename
+            }
+            __typename
+          }
+        }
+      '';
+      variables = {
+        content = "# Header\n\nHello world!";
+        description = "";
+        editor = "markdown";
+        isPrivate = false;
+        isPublished = true;
+        locale = "en";
+        path = "home";
+        publishEndDate = "";
+        publishStartDate = "";
+        scriptCss = "";
+        scriptJs = "";
+        tags = [];
+        title = "Hello world";
+      };
+    }]);
+  in ''
+    machine.start()
+    machine.wait_for_unit("multi-user.target")
+    machine.wait_for_open_port(3000)
+
+    machine.succeed("curl -sSf localhost:3000")
+
+    with subtest("Setup"):
+        result = machine.succeed(
+            "set -o pipefail; curl -sSf localhost:3000/finalize -X POST -d "
+            + "@${payloads.finalize} -H 'Content-Type: application/json' "
+            + "| jq .ok | xargs echo"
+        )
+        assert result.strip() == "true", f"Expected true, got {result}"
+
+        # During the setup the service gets restarted, so we use this
+        # to check if the setup is done.
+        machine.wait_until_fails("curl -sSf localhost:3000")
+        machine.wait_until_succeeds("curl -sSf localhost:3000")
+
+    with subtest("Base functionality"):
+        auth = machine.succeed(
+            "set -o pipefail; curl -sSf localhost:3000/graphql -X POST "
+            + "-d @${payloads.login} -H 'Content-Type: application/json' "
+            + "| jq '.[0].data.authentication.login.jwt' | xargs echo"
+        ).strip()
+
+        assert auth
+
+        create = machine.succeed(
+            "set -o pipefail; curl -sSf localhost:3000/graphql -X POST "
+            + "-d @${payloads.content} -H 'Content-Type: application/json' "
+            + f"-H 'Authorization: Bearer {auth}' "
+            + "| jq '.[0].data.pages.create.responseResult.succeeded'|xargs echo"
+        )
+        assert create.strip() == "true", f"Expected true, got {create}"
+
+    machine.shutdown()
+  '';
+})
diff --git a/nixpkgs/nixos/tests/wireguard/basic.nix b/nixpkgs/nixos/tests/wireguard/basic.nix
index a31e92e8649d..36ab226cde0e 100644
--- a/nixpkgs/nixos/tests/wireguard/basic.nix
+++ b/nixpkgs/nixos/tests/wireguard/basic.nix
@@ -52,9 +52,9 @@ import ../make-test-python.nix ({ pkgs, lib, ...} :
               inherit (wg-snakeoil-keys.peer0) publicKey;
             };
 
-            postSetup = let inherit (pkgs) iproute; in ''
-              ${iproute}/bin/ip route replace 10.23.42.1/32 dev wg0
-              ${iproute}/bin/ip route replace fc00::1/128 dev wg0
+            postSetup = let inherit (pkgs) iproute2; in ''
+              ${iproute2}/bin/ip route replace 10.23.42.1/32 dev wg0
+              ${iproute2}/bin/ip route replace fc00::1/128 dev wg0
             '';
           };
         };
diff --git a/nixpkgs/nixos/tests/zfs.nix b/nixpkgs/nixos/tests/zfs.nix
index 03aa5e5399c6..ba5eb7cd528e 100644
--- a/nixpkgs/nixos/tests/zfs.nix
+++ b/nixpkgs/nixos/tests/zfs.nix
@@ -29,7 +29,7 @@ let
 
         # Setup regular fileSystems machinery to ensure forceImportAll can be
         # tested via the regular service units.
-        fileSystems = lib.mkVMOverride {
+        virtualisation.fileSystems = {
           "/forcepool" = {
             device = "forcepool";
             fsType = "zfs";
diff --git a/nixpkgs/pkgs/applications/accessibility/contrast/default.nix b/nixpkgs/pkgs/applications/accessibility/contrast/default.nix
index 689ad2735752..44bee86880a7 100644
--- a/nixpkgs/pkgs/applications/accessibility/contrast/default.nix
+++ b/nixpkgs/pkgs/applications/accessibility/contrast/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , fetchFromGitLab
 , cairo
 , dbus
@@ -7,17 +8,17 @@
 , glib
 , gtk3
 , libhandy_0
+, libsass
 , meson
 , ninja
 , pango
 , pkg-config
 , python3
-, rustc
 , rustPlatform
 , wrapGAppsHook
 }:
 
-rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
   pname = "contrast";
   version = "0.0.3";
 
@@ -30,7 +31,11 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0kk3mv7a6y258109xvgicmsi0lw0rcs00gfyivl5hdz7qh47iccy";
   };
 
-  cargoSha256 = "0vi8nv4hkhsgqgz36xacwkk5cxirg6li44nbmk3x7vx7c64hzybq";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-ePkPiWGn79PHrMsSEql5OXZW5uRMdTP+w0/DCcm2KG4=";
+  };
 
   nativeBuildInputs = [
     desktop-file-utils
@@ -39,6 +44,9 @@ rustPlatform.buildRustPackage rec {
     ninja
     pkg-config
     python3
+    rustPlatform.rust.cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.rustc
     wrapGAppsHook
     glib # for glib-compile-resources
   ];
@@ -49,6 +57,7 @@ rustPlatform.buildRustPackage rec {
     glib
     gtk3
     libhandy_0
+    libsass
     pango
   ];
 
@@ -56,12 +65,6 @@ rustPlatform.buildRustPackage rec {
     patchShebangs build-aux/meson_post_install.py
   '';
 
-  # Don't use buildRustPackage phases, only use it for rust deps setup
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-
   meta = with lib; {
     description = "Checks whether the contrast between two colors meet the WCAG requirements";
     homepage = "https://gitlab.gnome.org/World/design/contrast";
diff --git a/nixpkgs/pkgs/applications/accessibility/squeekboard/default.nix b/nixpkgs/pkgs/applications/accessibility/squeekboard/default.nix
new file mode 100644
index 000000000000..08042a7701b9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/accessibility/squeekboard/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, gnome3
+, glib
+, gtk3
+, wayland
+, wayland-protocols
+, libxml2
+, libxkbcommon
+, rustPlatform
+, feedbackd
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "squeekboard";
+  version = "unstable-2021-03-09";
+
+  src = fetchFromGitLab {
+    domain = "source.puri.sm";
+    owner = "Librem5";
+    repo = pname;
+    rev = "bffd212e102bf71a94c599aac0359a8d30d19008";
+    sha256 = "1j10zhyb8wyrcbryfj6f3drn9b0l9x0l7hnhy2imnjbfbnwwm4w7";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    cargoUpdateHook = ''
+      cat Cargo.toml.in Cargo.deps > Cargo.toml
+    '';
+    name = "${pname}-${version}";
+    sha256 = "1qaqiaxqc4x2x5bd31na4c49vbjwrmz5clmgli7733dv55rxxias";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    glib
+    wayland
+    wrapGAppsHook
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  buildInputs = [
+    gtk3
+    gnome3.gnome-desktop
+    wayland
+    wayland-protocols
+    libxml2
+    libxkbcommon
+    feedbackd
+  ];
+
+  meta = with lib; {
+    description = "A virtual keyboard supporting Wayland";
+    homepage = "https://source.puri.sm/Librem5/squeekboard";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ artturin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/accessibility/svkbd/default.nix b/nixpkgs/pkgs/applications/accessibility/svkbd/default.nix
new file mode 100644
index 000000000000..57e6cdba5ae8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/accessibility/svkbd/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchurl
+, writeText
+, pkg-config
+, libX11
+, libXft
+, libXi
+, libXinerama
+, libXtst
+, layout ? null
+, conf ? null
+, patches ? [ ]
+}:
+
+stdenv.mkDerivation rec {
+  pname = "svkbd";
+  version = "0.3";
+
+  src = fetchurl {
+    url = "https://dl.suckless.org/tools/svkbd-${version}.tar.gz";
+    sha256 = "108khx665d7dlzs04iy4g1nw3fyqpy6kd0afrwiapaibgv4xhfsk";
+  };
+
+  inherit patches;
+
+  postPatch = let
+    configFile = if lib.isDerivation conf || lib.isPath conf then
+      conf
+    else
+      writeText "config.def.h" conf;
+  in lib.optionalString (conf != null) ''
+    cp ${configFile} config.def.h
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libX11
+    libXft
+    libXi
+    libXinerama
+    libXtst
+  ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ] ++ lib.optional (layout != null) "LAYOUT=${layout}";
+
+  meta = with lib; {
+    description = "Simple virtual keyboard";
+    homepage = "https://tools.suckless.org/x/svkbd/";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/MMA/default.nix b/nixpkgs/pkgs/applications/audio/MMA/default.nix
index ade595732c3b..25cb96965092 100644
--- a/nixpkgs/pkgs/applications/audio/MMA/default.nix
+++ b/nixpkgs/pkgs/applications/audio/MMA/default.nix
@@ -9,7 +9,8 @@
     sha256 = "18k0hwlqky5x4y461fxmw77gvz7z8jyrvxicrqphsgvwwinzy732";
   };
 
-  buildInputs = [ makeWrapper python3 alsaUtils timidity ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python3 alsaUtils timidity ];
 
   patchPhase = ''
     sed -i 's@/usr/bin/aplaymidi@/${alsaUtils}/bin/aplaymidi@g' mma-splitrec
diff --git a/nixpkgs/pkgs/applications/audio/aacgain/default.nix b/nixpkgs/pkgs/applications/audio/aacgain/default.nix
index d4fc3fbe698e..0f9b511d4553 100644
--- a/nixpkgs/pkgs/applications/audio/aacgain/default.nix
+++ b/nixpkgs/pkgs/applications/audio/aacgain/default.nix
@@ -12,6 +12,10 @@ stdenv.mkDerivation {
 
   hardeningDisable = [ "format" ];
 
+  # -Wnarrowing is enabled by default in recent GCC versions,
+  # causing compilation to fail.
+  NIX_CFLAGS_COMPILE = "-Wno-narrowing";
+
   postPatch = ''
     (
       cd mp4v2
diff --git a/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix b/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix
index 636314bf1cac..418426530bfe 100644
--- a/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, jack2Full, minixml, pkg-config }:
+{ lib, stdenv, fetchurl, alsaLib, jack2, minixml, pkg-config }:
 
 stdenv.mkDerivation rec {
   name =  packageName + "-" + version ;
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib minixml jack2Full ];
+  buildInputs = [ alsaLib minixml jack2 ];
 
   meta = with lib; {
     description = "Tool for storing/restoring JACK and/or ALSA connections to/from cml files";
diff --git a/nixpkgs/pkgs/applications/audio/amarok/default.nix b/nixpkgs/pkgs/applications/audio/amarok/default.nix
index 063cfcaa9fae..c75adb11ed49 100644
--- a/nixpkgs/pkgs/applications/audio/amarok/default.nix
+++ b/nixpkgs/pkgs/applications/audio/amarok/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, fetchgit, lib
+{ mkDerivation, fetchurl, lib
 , extra-cmake-modules, kdoctools
 , qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
 , karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
@@ -7,19 +7,16 @@
 }:
 
 mkDerivation rec {
-  pname = "amarok-unstable";
-  version = "2020-06-12";
+  pname = "amarok";
+  version = "2.9.71";
 
-  src = fetchgit {
-    # master has the Qt5 version as of April 2018 but a formal release has not
-    # yet been made so change this back to the proper upstream when such a
-    # release is out
-    url    = "https://invent.kde.org/multimedia/amarok.git";
-    # url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
-    rev    = "fece39b0e81db310b6a6e08f93d83b0d498cd02b";
-    sha256 = "12casnq6w5yp2jlvnr466pjpkn0vriry8jzfq2qkjl564y0vhy9x";
+  src = fetchurl {
+    url = "mirror://kde/unstable/${pname}/${version}/${pname}-${version}.tar.xz";
+    sha256 = "0kz8wixjmy4yxq2gk11ybswryxb6alfymd3bzcar9xinscllhh3a";
   };
 
+  outputs = [ "out" "doc" ];
+
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
 
   propagatedBuildInputs = [
@@ -35,7 +32,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://amarok.kde.org";
     description = "A powerful music player with an intuitive interface";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/apple-music-electron/default.nix b/nixpkgs/pkgs/applications/audio/apple-music-electron/default.nix
index 1c6180ac2119..e4d43d7f01f8 100644
--- a/nixpkgs/pkgs/applications/audio/apple-music-electron/default.nix
+++ b/nixpkgs/pkgs/applications/audio/apple-music-electron/default.nix
@@ -1,12 +1,12 @@
 { appimageTools, lib, fetchurl }:
 let
   pname = "apple-music-electron";
-  version = "1.5.2";
+  version = "1.5.5";
   name = "Apple.Music-${version}";
 
   src = fetchurl {
-    url = "https://github.com/iiFir3z/Apple-Music-Electron/releases/download/${version}/${name}.AppImage";
-    sha256 = "1jl0wgwy6ajmfkzygwb7cm9m49nkhp3x6vd8kwmh6ccs3jy4ayp5";
+    url = "https://github.com/cryptofyre/Apple-Music-Electron/releases/download/v${version}/${name}.AppImage";
+    sha256 = "1gb6j3nvam9fcpsgiv56jccg9a4y14vzsyw11h3hckaigy90knpx";
   };
 
   appimageContents = appimageTools.extract { inherit name src; };
@@ -18,7 +18,7 @@ in appimageTools.wrapType2 {
 
     install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
     substituteInPlace $out/share/applications/${pname}.desktop \
-      --replace 'Exec=AppRun' 'Exec=$out/bin/apple-music-electron'
+      --replace "Exec=AppRun" "Exec=$out/bin/apple-music-electron"
     cp -r ${appimageContents}/usr/share/icons $out/share
   '';
 
diff --git a/nixpkgs/pkgs/applications/audio/ardour/5.nix b/nixpkgs/pkgs/applications/audio/ardour/5.nix
index 4a0656ed9ce2..9e8c075bfb07 100644
--- a/nixpkgs/pkgs/applications/audio/ardour/5.nix
+++ b/nixpkgs/pkgs/applications/audio/ardour/5.nix
@@ -8,7 +8,6 @@
 , doxygen
 , fftwSinglePrec
 , flac
-, glibc
 , glibmm
 , graphviz
 , gtkmm2
diff --git a/nixpkgs/pkgs/applications/audio/ardour/default.nix b/nixpkgs/pkgs/applications/audio/ardour/default.nix
index 26e25c687e77..b66432640710 100644
--- a/nixpkgs/pkgs/applications/audio/ardour/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ardour/default.nix
@@ -16,6 +16,7 @@
 , glibmm
 , graphviz
 , gtkmm2
+, harvid
 , itstool
 , libarchive
 , libjack2
@@ -35,6 +36,7 @@
 , lilv
 , lrdf
 , lv2
+, makeWrapper
 , pango
 , perl
 , pkg-config
@@ -49,6 +51,8 @@
 , taglib
 , vamp-plugin-sdk
 , wafHook
+, xjadeo
+, videoSupport ? false
 }:
 stdenv.mkDerivation rec {
   pname = "ardour";
@@ -70,6 +74,7 @@ stdenv.mkDerivation rec {
     doxygen
     graphviz # for dot
     itstool
+    makeWrapper
     perl
     pkg-config
     python3
@@ -121,7 +126,7 @@ stdenv.mkDerivation rec {
     suil
     taglib
     vamp-plugin-sdk
-  ];
+  ] ++ lib.optionals videoSupport [ harvid xjadeo ];
 
   wafConfigureFlags = [
     "--cxx11"
@@ -158,6 +163,10 @@ stdenv.mkDerivation rec {
         "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png"
     done
     install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
+  '' + lib.optionalString videoSupport ''
+    # `harvid` and `xjadeo` must be accessible in `PATH` for video to work.
+    wrapProgram "$out/bin/ardour6" \
+      --prefix PATH : "${lib.makeBinPath [ harvid xjadeo ]}"
   '';
 
   LINKFLAGS = "-lpthread";
@@ -174,8 +183,8 @@ stdenv.mkDerivation rec {
       https://community.ardour.org/donate
     '';
     homepage = "https://ardour.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ goibhniu magnetophon ];
+    maintainers = with maintainers; [ goibhniu magnetophon mitchmindtree ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/ashuffle/default.nix b/nixpkgs/pkgs/applications/audio/ashuffle/default.nix
index cf3321e241f0..e445132ee3c0 100644
--- a/nixpkgs/pkgs/applications/audio/ashuffle/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ashuffle/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ashuffle";
-  version = "3.4.0";
+  version = "3.10.1";
 
   src = fetchFromGitHub {
     owner = "joshkunz";
     repo = "ashuffle";
     rev = "v${version}";
-    sha256 = "09q6lwgc1dc8bg1mb9js9qz3xcsxph3548nxzvyb4v8111gixrp7";
+    sha256 = "103jhajqwryiaf52qqgshajcnsxsz4l8gn3sz6bxs7k0yq5x1knr";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/audio/audacity/default.nix b/nixpkgs/pkgs/applications/audio/audacity/default.nix
index c3daee55fc4b..36320a01061f 100644
--- a/nixpkgs/pkgs/applications/audio/audacity/default.nix
+++ b/nixpkgs/pkgs/applications/audio/audacity/default.nix
@@ -132,6 +132,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.audacityteam.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lheckemann ];
-    platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/bambootracker/default.nix b/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
index 5d89813216dc..09be8faa8a0f 100644
--- a/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
@@ -1,7 +1,8 @@
 { mkDerivation
-, lib
 , stdenv
+, lib
 , fetchFromGitHub
+, fetchpatch
 , qmake
 , pkg-config
 , qttools
@@ -21,10 +22,15 @@ mkDerivation rec {
     sha256 = "0iddqfw951dw9xpl4w7310sl4z544507ppb12i8g4fzvlxfw2ifc";
   };
 
-  postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
-    substituteInPlace BambooTracker/BambooTracker.pro \
-      --replace '# Temporary known-error downgrades here' 'CPP_WARNING_FLAGS += -Wno-missing-braces'
-  '';
+  # TODO Remove when updating past 0.4.6
+  # Fixes build failure on darwin
+  patches = [
+    (fetchpatch {
+      name = "bambootracker-Add_braces_in_initialization_of_std-array.patch";
+      url = "https://github.com/rerrahkr/BambooTracker/commit/0fc96c60c7ae6c2504ee696bb7dec979ac19717d.patch";
+      sha256 = "1z28af46mqrgnyrr4i8883gp3wablkk8rijnj0jvpq01s4m2sfjn";
+    })
+  ];
 
   nativeBuildInputs = [ qmake qttools pkg-config ];
 
@@ -34,12 +40,19 @@ mkDerivation rec {
 
   postConfigure = "make qmake_all";
 
+  # installs app bundle on darwin, re-extract the binary
+  # wrapQtAppsHook fails to wrap mach-o binaries, manually call wrapper (https://github.com/NixOS/nixpkgs/issues/102044)
+  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    mv $out/bin/BambooTracker{.app/Contents/MacOS/BambooTracker,}
+    rm -r $out/bin/BambooTracker.app
+    wrapQtApp $out/bin/BambooTracker
+  '';
+
   meta = with lib; {
     description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
     homepage = "https://rerrahkr.github.io/BambooTracker";
     license = licenses.gpl2Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ OPNA2608 ];
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/baudline/default.nix b/nixpkgs/pkgs/applications/audio/baudline/default.nix
index 29c5130f575c..7d6d51011cc2 100644
--- a/nixpkgs/pkgs/applications/audio/baudline/default.nix
+++ b/nixpkgs/pkgs/applications/audio/baudline/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     else
       throw "baudline isn't supported (yet?) on ${stdenv.hostPlatform.system}";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   # Prebuilt binary distribution.
   # "patchelf --set-rpath" seems to break the application (cannot start), using
diff --git a/nixpkgs/pkgs/applications/audio/bchoppr/default.nix b/nixpkgs/pkgs/applications/audio/bchoppr/default.nix
index db8f8ad793a2..b15b8d127a6d 100644
--- a/nixpkgs/pkgs/applications/audio/bchoppr/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bchoppr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bchoppr";
-  version = "1.10.0";
+  version = "1.10.4";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "sha256-LYndZhg4ILN0E8aRqgUBFzzzLv88TMSXG2OeFxImDu0=";
+    sha256 = "sha256-/csds8QOgn5IogyMg/5PMKdlCISakS3GDkyj2tTt0BY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 9644182861d0..28b5ef438e22 100644
--- a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
-  version = "3.3.2";
+  version = "3.3.7";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
-    sha256 = "sha256-R1e+eTheS9KqPIHw1QoMJgpSB1ss0gwTUGAojdJM0Zw=";
+    sha256 = "13jr45kzv0xjhhqk30qpq793349qyx8jpas4kl6i6bk3xfrd3fbz";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/audio/bschaffl/default.nix b/nixpkgs/pkgs/applications/audio/bschaffl/default.nix
index 6b0ca55f27f1..76d2e78a2663 100644
--- a/nixpkgs/pkgs/applications/audio/bschaffl/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bschaffl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bschaffl";
-  version = "1.4.2";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "sha256-R6QTADPE2PW/ySQla2lQbb308jrHXZ43DpFxUfQ0/NY=";
+    sha256 = "sha256-tu5JL0vcqRsZYmoaYGYm/aj95i7wLtnKYGbEPD7AsoM=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/bsequencer/default.nix b/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
index d45b42ddb9fa..692667c0003e 100644
--- a/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BSEQuencer";
-  version = "1.8.4";
+  version = "1.8.6";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "0hagnn104ybzdp13r95idw20fhmzif8p3kmiypnr20m6c64rdd29";
+    sha256 = "sha256-PZ2Ft7y2mbb5Wpa7mWPys2BVpcQC3WE5rKu2sRqkf8w=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/bshapr/default.nix b/nixpkgs/pkgs/applications/audio/bshapr/default.nix
index 7e45d6a826f9..04dd93b8f492 100644
--- a/nixpkgs/pkgs/applications/audio/bshapr/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bshapr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BShapr";
-  version = "0.9";
+  version = "0.10";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04zd3a178i2nivg5rjailzqvc5mlnilmhj1ziygmbhshbrywplri";
+    sha256 = "sha256-oEBsaIcw/Ltxr2CUPGBjwcxOPhNQoYPZDkfQE7QA940=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/bslizr/default.nix b/nixpkgs/pkgs/applications/audio/bslizr/default.nix
index d307307fd1d4..2a4e717e1bd5 100644
--- a/nixpkgs/pkgs/applications/audio/bslizr/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bslizr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BSlizr";
-  version = "1.2.8";
+  version = "1.2.10";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "1f7xrljvsy7a1p8c7wln2zhwarl3ara7gbjxkpyh47wfdpigpdb0";
+    sha256 = "sha256-tEGJrVg8dN9Torybx02qIpXsGOuCgn/Wb+jemfCjiK4=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/callaudiod/default.nix b/nixpkgs/pkgs/applications/audio/callaudiod/default.nix
index d742961939f6..6529cd860c8a 100644
--- a/nixpkgs/pkgs/applications/audio/callaudiod/default.nix
+++ b/nixpkgs/pkgs/applications/audio/callaudiod/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "callaudiod";
-  version = "0.0.4";
+  version = "0.1.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.com";
     owner = "mobian1";
     repo = pname;
     rev = version;
-    sha256 = "07k7xp5a9c4d4lq7amaj6cg6b3gsd77x9wvf7nzcf4vpaph4yiyj";
+    sha256 = "087589z45xvldn2m1g79y0xbwzylwkjmfk83s5xjixyq0wqmfppd";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/caudec/default.nix b/nixpkgs/pkgs/applications/audio/caudec/default.nix
index 0360922c8196..15ebb85136b0 100644
--- a/nixpkgs/pkgs/applications/audio/caudec/default.nix
+++ b/nixpkgs/pkgs/applications/audio/caudec/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
     patchShebangs ./install.sh
   '';
 
-  buildInputs = [ bash makeWrapper ];
+  nativeBuildInputs = [ bash makeWrapper ];
 
   installPhase = ''
     ./install.sh --prefix=$out/bin
diff --git a/nixpkgs/pkgs/applications/audio/cheesecutter/default.nix b/nixpkgs/pkgs/applications/audio/cheesecutter/default.nix
index 84f6b183033e..6c14cc67f81f 100644
--- a/nixpkgs/pkgs/applications/audio/cheesecutter/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cheesecutter/default.nix
@@ -8,13 +8,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "cheesecutter";
-  version = "unstable-2020-04-03";
+  version = "unstable-2021-02-27";
 
   src = fetchFromGitHub {
     owner = "theyamo";
     repo = "CheeseCutter";
-    rev = "68d6518f0e6249a2a5d122fc80201578337c1277";
-    sha256 = "0xspzjhc6cp3m0yd0mwxncg8n1wklizamxvidrnn21jgj3mnaq2q";
+    rev = "84450d3614b8fb2cabda87033baab7bedd5a5c98";
+    sha256 = "sha256:0q4a791nayya6n01l0f4kk497rdq6kiq0n72fqdpwqy138pfwydn";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/audio/clementine/default.nix b/nixpkgs/pkgs/applications/audio/clementine/default.nix
index be0f2f72529c..b84b4e6aa9a4 100644
--- a/nixpkgs/pkgs/applications/audio/clementine/default.nix
+++ b/nixpkgs/pkgs/applications/audio/clementine/default.nix
@@ -10,7 +10,7 @@ let
   withCD = config.clementine.cd or true;
   withCloud = config.clementine.cloud or true;
 
-  # On the update after all 1.4rc, qt5.15 will be supported.
+  # On the update after all 1.4rc, qt5.15 and protobuf 3.15 will be supported.
   version = "1.4.0rc1";
 
   src = fetchFromGitHub {
@@ -24,7 +24,7 @@ let
     ./clementine-spotify-blob.patch
   ];
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config makeWrapper ];
 
   buildInputs = [
     boost
@@ -68,7 +68,7 @@ let
     inherit src patches nativeBuildInputs postPatch;
 
     # gst_plugins needed for setup-hooks
-    buildInputs = buildInputs ++ [ makeWrapper ] ++ gst_plugins;
+    buildInputs = buildInputs ++ gst_plugins;
 
     preConfigure = ''
       rm -rf ext/{,lib}clementine-spotifyblob
@@ -102,7 +102,7 @@ let
     # Use the same patches and sources as Clementine
     inherit src nativeBuildInputs patches postPatch;
 
-    buildInputs = buildInputs ++ [ libspotify makeWrapper ];
+    buildInputs = buildInputs ++ [ libspotify ];
     # Only build and install the Spotify blob
     preBuild = ''
       cd ext/clementine-spotifyblob
diff --git a/nixpkgs/pkgs/applications/audio/clerk/default.nix b/nixpkgs/pkgs/applications/audio/clerk/default.nix
index 0724632a63e1..ebcd09ca6adf 100644
--- a/nixpkgs/pkgs/applications/audio/clerk/default.nix
+++ b/nixpkgs/pkgs/applications/audio/clerk/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper, rofi, mpc_cli, perl,
-util-linux, pythonPackages, libnotify }:
+util-linux, python3Packages, libnotify }:
 
 stdenv.mkDerivation {
   name = "clerk-2016-10-14";
@@ -11,10 +11,13 @@ stdenv.mkDerivation {
     sha256 = "0y045my65hr3hjyx13jrnyg6g3wb41phqb1m7azc4l6vx6r4124b";
   };
 
-  buildInputs = [ makeWrapper pythonPackages.mpd2 ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python3Packages.mpd2 ];
 
   dontBuild = true;
 
+  strictDeps = true;
+
   installPhase = ''
     DESTDIR=$out PREFIX=/ make install
     wrapProgram $out/bin/clerk \
diff --git a/nixpkgs/pkgs/applications/audio/csa/default.nix b/nixpkgs/pkgs/applications/audio/csa/default.nix
index 5121f6d616b2..0f7ad460a8c6 100644
--- a/nixpkgs/pkgs/applications/audio/csa/default.nix
+++ b/nixpkgs/pkgs/applications/audio/csa/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3;
     maintainers = [ maintainers.magnetophon ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix b/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix
index ba9df9039f6c..953a919d0c70 100644
--- a/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix
+++ b/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix
@@ -40,6 +40,8 @@ stdenv.mkDerivation rec {
                  "SHARE_DIR=${placeholder "out"}/share"
                  ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features";
     homepage = "https://csoundqt.github.io/";
diff --git a/nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix b/nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix
index cd45ef5926b0..66108deab1e3 100644
--- a/nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix
+++ b/nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix
@@ -5,7 +5,7 @@ symlinkJoin {
 
   paths = [ deadbeef ] ++ plugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     wrapProgram $out/bin/deadbeef \
diff --git a/nixpkgs/pkgs/applications/audio/denemo/default.nix b/nixpkgs/pkgs/applications/audio/denemo/default.nix
index 4abaec8dadd9..3a2dbd139d76 100644
--- a/nixpkgs/pkgs/applications/audio/denemo/default.nix
+++ b/nixpkgs/pkgs/applications/audio/denemo/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "denemo";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchurl {
     url = "https://ftp.gnu.org/gnu/denemo/denemo-${version}.tar.gz";
-    sha256 = "145kq0zfgdadykl3i6na221i4s5wzdrcqq48amzyfarnrqk2rmpd";
+    sha256 = "sha256-B6GbBL/o/z0emT+Iw6XvWmAsJCmIwSGCyV1DkhDyfBY=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/ebumeter/default.nix b/nixpkgs/pkgs/applications/audio/ebumeter/default.nix
new file mode 100644
index 000000000000..9ebcbec001d0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ebumeter/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl
+, libX11, libXft, libclthreads, libclxclient, libjack2, libpng, libsndfile, zita-resampler
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ebumeter";
+  version = "0.4.2";
+
+  src = fetchurl {
+    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+    sha256 = "1wm9j1phmpicrp7jdsvdbc3mghdd92l61yl9qbps0brq2ljjyd5s";
+  };
+
+  buildInputs = [
+    libX11 libXft libclthreads libclxclient libjack2 libpng libsndfile zita-resampler
+  ];
+
+  preConfigure = ''
+    cd source
+  '';
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Level metering according to the EBU R-128 recommendation";
+    homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/ecasound/default.nix b/nixpkgs/pkgs/applications/audio/ecasound/default.nix
index 0de66b24e70e..e2ec9bf8ab2c 100644
--- a/nixpkgs/pkgs/applications/audio/ecasound/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ecasound/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
+  CXXFLAGS = "-std=c++11";
   configureFlags = "--enable-liblilv --with-extra-cppflags=-Dnullptr=0";
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix b/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix
index 50d7af6d1164..44d5a0aa15aa 100644
--- a/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix
+++ b/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchFromGitHub, autoconf, automake, which, libtool, pkg-config
-, ronn
+, ronn, substituteAll
+, mbrolaSupport ? true, mbrola
 , pcaudiolibSupport ? true, pcaudiolib
 , sonicSupport ? true, sonic }:
 
@@ -14,13 +15,26 @@ stdenv.mkDerivation rec {
     sha256 = "0jkqhf2h94vbqq7mg7mmm23bq372fa7mdk941my18c3vkldcir1b";
   };
 
+  patches = lib.optionals mbrolaSupport [
+    # Hardcode correct mbrola paths.
+    (substituteAll {
+      src = ./mbrola.patch;
+      inherit mbrola;
+    })
+  ];
+
   nativeBuildInputs = [ autoconf automake which libtool pkg-config ronn ];
 
-  buildInputs = lib.optional pcaudiolibSupport pcaudiolib
+  buildInputs = lib.optional mbrolaSupport mbrola
+             ++ lib.optional pcaudiolibSupport pcaudiolib
              ++ lib.optional sonicSupport sonic;
 
   preConfigure = "./autogen.sh";
 
+  configureFlags = [
+    "--with-mbrola=${if mbrolaSupport then "yes" else "no"}"
+  ];
+
   postInstall = lib.optionalString stdenv.isLinux ''
     patchelf --set-rpath "$(patchelf --print-rpath $out/bin/espeak-ng)" $out/bin/speak-ng
   '';
@@ -29,7 +43,7 @@ stdenv.mkDerivation rec {
     description = "Open source speech synthesizer that supports over 70 languages, based on eSpeak";
     homepage = "https://github.com/espeak-ng/espeak-ng";
     changelog = "https://github.com/espeak-ng/espeak-ng/blob/${version}/CHANGELOG.md";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ aske ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/audio/espeak-ng/mbrola.patch b/nixpkgs/pkgs/applications/audio/espeak-ng/mbrola.patch
new file mode 100644
index 000000000000..2f6c61cca4ef
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/espeak-ng/mbrola.patch
@@ -0,0 +1,22 @@
+--- a/src/libespeak-ng/mbrowrap.c
++++ b/src/libespeak-ng/mbrowrap.c
+@@ -205,7 +205,7 @@
+ 		signal(SIGTERM, SIG_IGN);
+ 
+ 		snprintf(charbuf, sizeof(charbuf), "%g", mbr_volume);
+-		execlp("mbrola", "mbrola", "-e", "-v", charbuf,
++		execlp("@mbrola@/bin/mbrola", "mbrola", "-e", "-v", charbuf,
+ 		       voice_path, "-", "-.wav", (char *)NULL);
+ 		/* if execution reaches this point then the exec() failed */
+ 		snprintf(mbr_errorbuf, sizeof(mbr_errorbuf),
+--- a/src/libespeak-ng/synth_mbrola.c
++++ b/src/libespeak-ng/synth_mbrola.c
+@@ -85,7 +85,7 @@
+ 	if (!load_MBR())
+ 		return ENS_MBROLA_NOT_FOUND;
+ 
+-	sprintf(path, "%s/mbrola/%s", path_home, mbrola_voice);
++	sprintf(path, "@mbrola@/share/mbrola/voices/%s/%s", mbrola_voice, mbrola_voice);
+ #ifdef PLATFORM_POSIX
+ 	// if not found, then also look in
+ 	//   usr/share/mbrola/xx, /usr/share/mbrola/xx/xx, /usr/share/mbrola/voices/xx
diff --git a/nixpkgs/pkgs/applications/audio/espeak/default.nix b/nixpkgs/pkgs/applications/audio/espeak/default.nix
index b155c1c41b60..675f31b478ce 100644
--- a/nixpkgs/pkgs/applications/audio/espeak/default.nix
+++ b/nixpkgs/pkgs/applications/audio/espeak/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0n86gwh9pw0jqqpdz7mxggllfr8k0r7pc67ayy7w5z6z79kig6mz";
   };
 
-  buildInputs = [ unzip portaudio ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ portaudio ];
 
   patches = [
     ./gcc6.patch
diff --git a/nixpkgs/pkgs/applications/audio/espeak/edit.nix b/nixpkgs/pkgs/applications/audio/espeak/edit.nix
index aa0dc90adf58..0b9fa3dfbe54 100644
--- a/nixpkgs/pkgs/applications/audio/espeak/edit.nix
+++ b/nixpkgs/pkgs/applications/audio/espeak/edit.nix
@@ -8,8 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0x8s7vpb7rw5x37yjzy1f98m4f2csdg89libb74fm36gn8ly0hli";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ unzip portaudio wxGTK ];
+  nativeBuildInputs = [ pkg-config unzip ];
+  buildInputs = [ portaudio wxGTK ];
 
   # TODO:
   # Uhm, seems like espeakedit still wants espeak-data/ in $HOME, even thought
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust1.nix b/nixpkgs/pkgs/applications/audio/faust/faust1.nix
index 6d7d2e2c2bae..81ce11b9ea19 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust1.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust1.nix
@@ -30,7 +30,7 @@ let
 
     inherit src;
 
-    buildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
 
     passthru = {
       inherit wrap wrapWithBuildEnv;
@@ -159,8 +159,7 @@ let
 
     stdenv.mkDerivation ((faust2ApplBase args) // {
 
-      nativeBuildInputs = [ pkg-config ];
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ pkg-config makeWrapper ];
 
       propagatedBuildInputs = [ faust ] ++ propagatedBuildInputs;
 
@@ -195,7 +194,7 @@ let
 
     in stdenv.mkDerivation ((faust2ApplBase args) // {
 
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ makeWrapper ];
 
       postFixup = ''
         for script in "$out"/bin/*; do
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2.nix b/nixpkgs/pkgs/applications/audio/faust/faust2.nix
index 990d073528e1..051caf120fa2 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2.nix
@@ -168,8 +168,7 @@ let
 
     stdenv.mkDerivation ((faust2ApplBase args) // {
 
-      nativeBuildInputs = [ pkg-config ];
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ pkg-config makeWrapper ];
 
       propagatedBuildInputs = [ faust ] ++ propagatedBuildInputs;
 
@@ -209,7 +208,7 @@ let
 
     in stdenv.mkDerivation ((faust2ApplBase args) // {
 
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ makeWrapper ];
 
       postFixup = ''
         for script in "$out"/bin/*; do
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix b/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
index dd4cdd29c663..ab2450f1e529 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
@@ -1,6 +1,6 @@
 { faust
 , gtk2
-, jack2Full
+, jack2
 , alsaLib
 , opencv
 , libsndfile
@@ -18,7 +18,7 @@ faust.wrapWithBuildEnv {
 
   propagatedBuildInputs = [
     gtk2
-    jack2Full
+    jack2
     alsaLib
     opencv
     libsndfile
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix b/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
index 76e4b5ce8dbb..f6bc4d485fdd 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
@@ -1,5 +1,5 @@
 { faust
-, jack2Full
+, jack2
 , qt4
 , libsndfile
 , alsaLib
@@ -16,7 +16,7 @@ faust.wrapWithBuildEnv {
   ];
 
   propagatedBuildInputs = [
-    jack2Full
+    jack2
     qt4
     libsndfile
     alsaLib
diff --git a/nixpkgs/pkgs/applications/audio/freac/default.nix b/nixpkgs/pkgs/applications/audio/freac/default.nix
new file mode 100644
index 000000000000..c906f62894df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/freac/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+
+, boca
+, smooth
+, systemd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "freac";
+  version = "1.1.4";
+
+  src = fetchFromGitHub {
+    owner = "enzo1982";
+    repo = "freac";
+    rev = "v${version}";
+    sha256 = "sha256-JwZJOV4mxNKqhhdlfFcX06NwBxmbye2mgMfdM//bHYI=";
+  };
+
+  buildInputs = [
+    boca
+    smooth
+    systemd
+  ];
+
+  makeFlags = [
+    "prefix=$(out)"
+  ];
+
+  meta = with lib; {
+    description = "The fre:ac audio converter project";
+    license = licenses.gpl2Plus;
+    homepage = "https://www.freac.org/";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix b/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
index d9d2570d0a87..8391a7509995 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.43";
+  version = "1.46";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "sha256-OIQk7ngg1wsB6DFcxhrviPGlhzdaAWBi9C2roSNg1eI=";
+    sha256 = "sha256-Y6FgIbNCsxnM/B2bEB7oufBjU1BnBYaz7/oysWttIOc=";
   };
 
   # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
diff --git a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
index 1733aef41775..6524700ae156 100644
--- a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -1,12 +1,10 @@
-{ lib
+{ stdenv
+, lib
 , rustPlatform
 , fetchFromGitLab
-, fetchpatch
 , meson
 , ninja
 , gettext
-, cargo
-, rustc
 , python3
 , pkg-config
 , glib
@@ -19,9 +17,9 @@
 , wrapGAppsHook
 }:
 
-rustPlatform.buildRustPackage rec {
-  version = "0.4.8";
+stdenv.mkDerivation rec {
   pname = "gnome-podcasts";
+  version = "0.4.8";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
@@ -31,16 +29,21 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0y2332zjq7vf1v38wzwz98fs19vpzy9kl7y0xbdzqr303l59hjb1";
   };
 
-  cargoSha256 = "1jbii9k4bkrivdk1ffr6556q1sgk9j4jbzwnn8vbxmksyl1x328q";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-GInRA/V61r42spb/JYlM8+mATSkmOxdm2zHPRWaKcck=";
+  };
 
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
     gettext
-    cargo
-    rustc
     python3
+    rustPlatform.rust.cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.rustc
     wrapGAppsHook
     glib
   ];
@@ -58,12 +61,6 @@ rustPlatform.buildRustPackage rec {
     gst_all_1.gst-plugins-good
   ];
 
-  # use Meson/Ninja phases
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-
   # tests require network
   doCheck = false;
 
@@ -75,7 +72,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "Listen to your favorite podcasts";
     homepage = "https://wiki.gnome.org/Apps/Podcasts";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix b/nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix
deleted file mode 100644
index e10a961a9e64..000000000000
--- a/nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ lib, stdenv, fetchurl
-, flac, expat, libidn, qtbase, qtwebkit, libvorbis }:
-assert stdenv.hostPlatform.system == "x86_64-linux";
-
-stdenv.mkDerivation rec {
-  version = "beta_1.0.467.4929-r0"; # friendly to nix-env version sorting algo
-  product = "google-musicmanager";
-  name    = "${product}-${version}";
-
-  # When looking for newer versions, since google doesn't let you list their repo dirs,
-  # curl http://dl.google.com/linux/musicmanager/deb/dists/stable/Release
-  # fetch an appropriate packages file such as main/binary-amd64/Packages:
-  # curl http://dl.google.com/linux/musicmanager/deb/dists/stable/main/binary-amd64/Packages
-  # which will contain the links to all available *.debs for the arch.
-
-  src = fetchurl {
-    url    = "http://dl.google.com/linux/musicmanager/deb/pool/main/g/google-musicmanager-beta/${name}_amd64.deb";
-    sha256 = "0yaprpbp44var88kdj1h11fqkhgcklixr69jyia49v9m22529gg2";
-  };
-
-  unpackPhase = ''
-    ar vx ${src}
-    tar xvf data.tar.xz
-    tar xvf control.tar.gz
-  '';
-
-  prePatch = ''
-    sed -i "s@\(Exec=\).*@\1$out/bin/google-musicmanager@" opt/google/musicmanager/google-musicmanager.desktop
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    mkdir -p $out/lib
-    mkdir -p $out/share/applications
-
-    cp -r opt $out
-    find -name "*.so*" -exec cp "{}" $out/lib \;
-    ln -s $out/opt/google/musicmanager/google-musicmanager $out/bin
-    ln -s $out/opt/google/musicmanager/google-musicmanager.desktop $out/share/applications
-
-    for i in 16 32 48 128
-    do
-      iconDirectory=$out/usr/share/icons/hicolor/"$i"x"$i"/apps
-
-      mkdir -p $iconDirectory
-      ln -s $out/opt/google/musicmanager/product_logo_"$i".png $iconDirectory/google-musicmanager.png
-    done
-  '';
-
-  postFixup = ''
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "$(patchelf --print-rpath $out/opt/google/musicmanager/minidump_upload):${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}" \
-      $out/opt/google/musicmanager/minidump_upload
-
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "$(patchelf --print-rpath $out/opt/google/musicmanager/MusicManager):$out/lib:${lib.makeLibraryPath [
-        flac
-        expat
-        libidn
-        qtbase
-        qtwebkit
-        libvorbis
-        stdenv.cc.cc.lib
-      ]}" \
-      $out/opt/google/musicmanager/MusicManager
-  '';
-
-  meta = with lib; {
-    description = "Uploads music from your computer to Google Play";
-    homepage    = "https://support.google.com/googleplay/answer/1229970";
-    license     = licenses.unfree;
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix b/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix
index 0be1cc45717b..9d891d302349 100644
--- a/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix
+++ b/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
   };
 
   dontBuild = true;
-  buildInputs = [ dpkg makeWrapper ];
+  nativeBuildInputs = [ dpkg makeWrapper ];
 
   unpackPhase = ''
     dpkg -x $src .
@@ -74,9 +74,9 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://www.googleplaymusicdesktopplayer.com/";
-    description = "A beautiful cross platform Desktop Player for Google Play Music";
+    description = "A beautiful cross platform Desktop Player for Google Play Music and YouTube Music";
     license = lib.licenses.mit;
     platforms = [ "x86_64-linux" ];
-    maintainers = [ lib.maintainers.SuprDewd ];
+    maintainers = with lib.maintainers; [ anna328p SuprDewd ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/gtklick/default.nix b/nixpkgs/pkgs/applications/audio/gtklick/default.nix
index b3b95ca057e5..6b7f4e4d7b22 100644
--- a/nixpkgs/pkgs/applications/audio/gtklick/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gtklick/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchurl, pythonPackages, gettext, klick}:
+{ lib, fetchurl, python2Packages, gettext, klick}:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   pname = "gtklick";
   version = "0.6.4";
 
@@ -9,7 +9,7 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "7799d884126ccc818678aed79d58057f8cf3528e9f1be771c3fa5b694d9d0137";
   };
 
-  pythonPath = with pythonPackages; [
+  pythonPath = with python2Packages; [
     pyliblo
     pyGtkGlade
   ];
diff --git a/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix b/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
index e2c19ac156d4..bb92682b141f 100644
--- a/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
+++ b/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "helio-workstation";
-  version = "3.3";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner = "helio-fm";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-meeNqV1jKUwWc7P3p/LicPsbpzpKKFmQ1wP9DuXc9NY=";
+    sha256 = "sha256-zXsDu/xi7OV6VtnZK9ZJ8uwPeA5uTgNpAQsqe90iwG4=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/ingen/default.nix b/nixpkgs/pkgs/applications/audio/ingen/default.nix
index 55456b2fb6fd..a0defad0da0c 100644
--- a/nixpkgs/pkgs/applications/audio/ingen/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ingen/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv
-, lv2, makeWrapper, pkg-config, python, raul, rdflib, serd, sord, sratom
+, lv2, makeWrapper, pkg-config, python3, raul, serd, sord, sratom
 , wafHook
 , suil
 }:
@@ -16,24 +16,21 @@ stdenv.mkDerivation  rec {
     deepClone = true;
   };
 
-  nativeBuildInputs = [ pkg-config wafHook ];
+  nativeBuildInputs = [ pkg-config wafHook python3 python3.pkgs.wrapPython ];
   buildInputs = [
-    boost ganv glibmm gtkmm2 libjack2 lilv lv2 makeWrapper
-    python raul serd sord sratom suil
+    boost ganv glibmm gtkmm2 libjack2 lilv lv2
+    python3 raul serd sord sratom suil
   ];
 
-  preConfigure = ''
-    sed -e "s@{PYTHONDIR}/'@out/'@" -i wscript
-  '';
+  strictDeps = true;
 
-  propagatedBuildInputs = [ rdflib ];
+  pythonPath = [
+    python3
+    python3.pkgs.rdflib
+  ];
 
   postInstall = ''
-    for program in ingenams ingenish
-    do
-      wrapProgram $out/bin/$program \
-        --prefix PYTHONPATH : $out/${python.sitePackages}:$PYTHONPATH
-    done
+    wrapPythonProgramsIn "$out/bin" "$out $pythonPath"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/jalv/default.nix b/nixpkgs/pkgs/applications/audio/jalv/default.nix
index 611956089ed3..b640b55c5476 100644
--- a/nixpkgs/pkgs/applications/audio/jalv/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jalv/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkg-config, python
+{ lib, stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkg-config, python3
 , serd, sord , sratom, suil, wafHook }:
 
 stdenv.mkDerivation  rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation  rec {
 
   nativeBuildInputs = [ pkg-config wafHook ];
   buildInputs = [
-    gtk2 libjack2 lilv lv2 python serd sord sratom suil
+    gtk2 libjack2 lilv lv2 python3 serd sord sratom suil
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/jamin/default.nix b/nixpkgs/pkgs/applications/audio/jamin/default.nix
index f111c4e99d7c..325d115b5816 100644
--- a/nixpkgs/pkgs/applications/audio/jamin/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jamin/default.nix
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0g5v74cm0q3p3pzl6xmnp4rqayaymfli7c6z8s78h9rgd24fwbvn";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ fftwFloat gtk2 ladspaPlugins libjack2 liblo libxml2 makeWrapper ]
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ fftwFloat gtk2 ladspaPlugins libjack2 liblo libxml2 ]
     ++ (with perlPackages; [ perl XMLParser ]);
 
   NIX_LDFLAGS = "-ldl";
diff --git a/nixpkgs/pkgs/applications/audio/jamulus/default.nix b/nixpkgs/pkgs/applications/audio/jamulus/default.nix
index 13b488ce7d78..bf054b118e1b 100644
--- a/nixpkgs/pkgs/applications/audio/jamulus/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jamulus/default.nix
@@ -1,14 +1,14 @@
-{ mkDerivation, lib, fetchFromGitHub, fetchpatch, pkg-config, qtscript, qmake, libjack2
+{ mkDerivation, lib, fetchFromGitHub, pkg-config, qtscript, qmake, libjack2
 }:
 
 mkDerivation rec {
   pname = "jamulus";
-  version = "3.6.2";
+  version = "3.7.0";
   src = fetchFromGitHub {
-    owner = "corrados";
+    owner = "jamulussoftware";
     repo = "jamulus";
     rev = "r${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-b187Q8KXcU32C2hGFqs6R2CqWgmieq6ewQDx+elEgP4=";
+    sha256 = "sha256-8zCPT0jo4ExgmZWxGinumv3JauH4csM9DtuHmOiJQAM=";
   };
 
   nativeBuildInputs = [ pkg-config qmake ];
@@ -20,7 +20,7 @@ mkDerivation rec {
     description = "Enables musicians to perform real-time jam sessions over the internet";
     longDescription = "You also need to enable JACK and should enable several real-time optimizations. See project website for details";
     homepage = "https://github.com/corrados/jamulus/wiki";
-    license = lib.licenses.gpl2; # linked in git repo, at least
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.seb314 ];
   };
diff --git a/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix b/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix
new file mode 100644
index 000000000000..299fe547366a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchurl, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+  pname = "JMusicBot";
+  version = "0.3.4";
+
+  src = fetchurl {
+    url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
+    sha256 = "sha256-++/ot9k74pkN9Wl7IEjiMIv/q5zklIEdU6uFjam0tmU=";
+  };
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/lib
+    cp $src $out/lib/JMusicBot
+
+    makeWrapper ${jre}/bin/java $out/bin/JMusicBot \
+      --add-flags "-Xmx1G -Dnogui=true -jar $out/lib/JMusicBot"
+  '';
+
+  meta = with lib; {
+    description = "Discord music bot that's easy to set up and run yourself";
+    homepage = "https://github.com/jagrosh/MusicBot";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/keyfinder/default.nix b/nixpkgs/pkgs/applications/audio/keyfinder/default.nix
index 80cd8f4d9a0f..c3667ee57a5d 100644
--- a/nixpkgs/pkgs/applications/audio/keyfinder/default.nix
+++ b/nixpkgs/pkgs/applications/audio/keyfinder/default.nix
@@ -20,6 +20,8 @@ mkDerivation rec {
        --replace "\$\$[QT_INSTALL_PREFIX]" "$out"
   '';
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Musical key detection for digital audio (graphical UI)";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/audio/kmetronome/default.nix b/nixpkgs/pkgs/applications/audio/kmetronome/default.nix
index ca8df45e459e..02353fcf4f51 100644
--- a/nixpkgs/pkgs/applications/audio/kmetronome/default.nix
+++ b/nixpkgs/pkgs/applications/audio/kmetronome/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ alsaLib drumstick qtbase qtsvg ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://kmetronome.sourceforge.io/";
     description = "ALSA MIDI metronome with Qt interface";
diff --git a/nixpkgs/pkgs/applications/audio/lash/default.nix b/nixpkgs/pkgs/applications/audio/lash/default.nix
index eb355a434096..74bbeb9b7bb7 100644
--- a/nixpkgs/pkgs/applications/audio/lash/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lash/default.nix
@@ -15,8 +15,8 @@ stdenv.mkDerivation  rec {
   # http://permalink.gmane.org/gmane.linux.redhat.fedora.extras.cvs/822346
   patches = [ ./socket.patch ./gcc-47.patch ];
 
-  buildInputs = [ alsaLib gtk2 libjack2 libxml2 makeWrapper
-    pkg-config readline ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ alsaLib gtk2 libjack2 libxml2 readline ];
   propagatedBuildInputs = [ libuuid ];
   NIX_LDFLAGS = "-lm -lpthread -luuid";
 
diff --git a/nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix b/nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix
index efafc5b05b18..8a786c5c69ee 100644
--- a/nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchurl, pythonPackages }:
+{ lib, fetchurl, python2Packages }:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   pname = "lastfmsubmitd";
   version = "1.0.6";
 
diff --git a/nixpkgs/pkgs/applications/audio/linuxband/default.nix b/nixpkgs/pkgs/applications/audio/linuxband/default.nix
index 118b54ad8587..ec034ae238de 100644
--- a/nixpkgs/pkgs/applications/audio/linuxband/default.nix
+++ b/nixpkgs/pkgs/applications/audio/linuxband/default.nix
@@ -11,8 +11,8 @@ in stdenv.mkDerivation rec {
     sha256 = "1r71h4yg775m4gax4irrvygmrsclgn503ykmc2qwjsxa42ri4n2n";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ makeWrapper MMA libjack2 libsmf python pyGtkGlade pygtksourceview ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ MMA libjack2 libsmf python pyGtkGlade pygtksourceview ];
 
   patchPhase = ''
     sed -i 's@/usr/@${MMA}/@g' src/main/config/linuxband.rc.in
diff --git a/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix b/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix
index 638f54da5150..4d7d70aebd66 100644
--- a/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix
@@ -43,7 +43,9 @@ stdenv.mkDerivation rec {
   installPhase = let extension = if stdenv.isDarwin then "app" else "deb-exe";
     in "install -Dm555 lgpt.${extension} $out/bin/lgpt";
 
-  passthru.updateScript = unstableGitUpdater { };
+  passthru.updateScript = unstableGitUpdater {
+    url = "https://github.com/Mdashdotdashn/littlegptracker.git";
+  };
 
   meta = with lib; {
     description = "A music tracker similar to lsdj optimised to run on portable game consoles";
diff --git a/nixpkgs/pkgs/applications/audio/lollypop/default.nix b/nixpkgs/pkgs/applications/audio/lollypop/default.nix
index c85645565ee4..9ae05fb571b0 100644
--- a/nixpkgs/pkgs/applications/audio/lollypop/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lollypop/default.nix
@@ -25,7 +25,7 @@
 
 python3.pkgs.buildPythonApplication rec  {
   pname = "lollypop";
-  version = "1.4.5";
+  version = "1.4.17";
 
   format = "other";
   doCheck = false;
@@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication rec  {
     url = "https://gitlab.gnome.org/World/lollypop";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    sha256 = "1i5qcpp3fpkda08g6nkiiff8lsjmv5xsvpa0512kigq5z0lsagrx";
+    sha256 = "sha256-GrznUXIYUTYOKQ1znsCqmBdm5YImCABMK2NGRtx5fSk=";
   };
 
   nativeBuildInputs = [
@@ -106,7 +106,7 @@ python3.pkgs.buildPythonApplication rec  {
     description = "A modern music player for GNOME";
     homepage = "https://wiki.gnome.org/Apps/Lollypop";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ worldofpeace lovesegfault ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix b/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
index a25c522e12f5..e3f92d2da745 100644
--- a/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, makeWrapper
-, libsndfile, jack2Full
+, libsndfile, jack2
 , libGLU, libGL, lv2, cairo
 , ladspaH, php }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config php makeWrapper ];
-  buildInputs = [ jack2Full libsndfile libGLU libGL lv2 cairo ladspaH ];
+  buildInputs = [ jack2 libsndfile libGLU libGL lv2 cairo ladspaH ];
 
   makeFlags = [
     "PREFIX=${placeholder "out"}"
diff --git a/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
index d7f0a7fb20e9..400f268d439e 100644
--- a/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "CharacterCompressor";
   version = "0.3.3";
diff --git a/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
index 7a917d79c57f..0b80aef170a0 100644
--- a/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "CompBus";
   version = "1.1.1";
diff --git a/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
index 5ac711723253..56534309733d 100644
--- a/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "constant-detune-chorus";
   version = "0.1.3";
diff --git a/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
index 277b186fd4ab..4b1157de0b08 100644
--- a/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "LazyLimiter";
   version = "0.3.2";
diff --git a/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix
index de7e573cbeee..32f43eaed9cb 100644
--- a/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "MBdistortion";
   version = "1.1.1";
@@ -10,6 +10,13 @@ stdenv.mkDerivation rec {
     sha256 = "0mdzaqmxzgspfgx9w1hdip18y17hwpdcgjyq1rrfm843vkascwip";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/magnetophon/MBdistortion/commit/10e35084b88c559f1b63760cf40fd5ef5a6745a5.patch";
+      sha256 = "0hwjl3rzvn3id0sr0qs8f37jdmr915mdan8miaf78ra0ir3wnk76";
+    })
+  ];
+
   buildInputs = [ faust2jaqt faust2lv2 ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix
index 80c5bb89eeea..fff4292cd761 100644
--- a/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "RhythmDelay";
   version = "2.1";
diff --git a/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix
index 9bd4076f130a..6bc8cff22615 100644
--- a/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jack, faust2lv2, helmholtz, mrpeach, puredata-with-plugins }:
+{ lib, stdenv, fetchFromGitHub, faust2jack, faust2lv2, helmholtz, mrpeach, puredata-with-plugins }:
 stdenv.mkDerivation rec {
   pname = "VoiceOfFaust";
   version = "1.1.4";
diff --git a/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
index a90492f4235f..7ea5fa753c81 100644
--- a/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   name = "faustCompressors-v${version}";
   version = "1.2";
diff --git a/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix
index 414e350caa03..fd807dd42455 100644
--- a/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "pluginUtils";
   version = "1.1";
diff --git a/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
index 7dcdf985c824..07d4402578ca 100644
--- a/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "shelfMultiBand";
   version = "0.6.1";
diff --git a/nixpkgs/pkgs/applications/audio/mbrola/default.nix b/nixpkgs/pkgs/applications/audio/mbrola/default.nix
new file mode 100644
index 000000000000..01a9fdd636b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mbrola/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+let
+  voices = fetchFromGitHub {
+    owner = "numediart";
+    repo = "MBROLA-voices";
+    rev = "fe05a0ccef6a941207fd6aaad0b31294a1f93a51";  # using latest commit
+    sha256 = "1w0y2xjp9rndwdjagp2wxh656mdm3d6w9cs411g27rjyfy1205a0";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "mbrola";
+  version = "3.3";
+
+  src = fetchFromGitHub {
+    owner = "numediart";
+    repo = "MBROLA";
+    rev = version;
+    sha256 = "1w86gv6zs2cbr0731n49z8v6xxw0g8b0hzyv2iqb9mqcfh38l8zy";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -D Bin/mbrola $out/bin/mbrola
+
+    # TODO: package separately because it's very big
+    install -d $out/share/mbrola/voices
+    cp -R ${voices}/data/* $out/share/mbrola/voices/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Speech synthesizer based on the concatenation of diphones";
+    homepage = "https://github.com/numediart/MBROLA";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ davidak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix b/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix
index 30d654ab87ae..92f8506483f5 100644
--- a/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mda-lv2";
-  version = "1.2.4";
+  version = "1.2.6";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "1a3cv6w5xby9yn11j695rbh3c4ih7rxfxmkca9s1324ljphh06m8";
+    sha256 = "sha256-zWYRcCSuBJzzrKg/npBKcCdyJOI6lp9yqcXQEKSYV9s=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook python3 ];
diff --git a/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix b/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
index ec6fd4d8ed93..37cfd0fac40d 100644
--- a/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "MIDIVisualizer";
-  version = "6.2";
+  version = "6.3";
 
   src = fetchFromGitHub {
     owner = "kosua20";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-t7DRPV0FSg6v81GzHLK2O++sfjr2aFT+xg3+wFd0UFg=";
+    sha256 = "sha256-U/YmxHD6e13I++aW+z1Y5xtZ+MN0KUJLSskrF4+UgTE=";
   };
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper];
diff --git a/nixpkgs/pkgs/applications/audio/mmtc/default.nix b/nixpkgs/pkgs/applications/audio/mmtc/default.nix
index 0d1d2c5684f7..4bd922c8fb6f 100644
--- a/nixpkgs/pkgs/applications/audio/mmtc/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mmtc/default.nix
@@ -1,17 +1,27 @@
-{ fetchFromGitHub, lib, rustPlatform }:
+{ fetchFromGitHub, installShellFiles, lib, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mmtc";
-  version = "0.2.12";
+  version = "0.2.13";
 
   src = fetchFromGitHub {
     owner = "figsoda";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1chcnv8wql6v2vckpzvq6sxgpss7mnxaj008jdm8xalhw9d496s4";
+    sha256 = "0ag87hgdg6fvk80fgznba0xjlcajks5w5s6y8lvwhz9irn2kq2rz";
   };
 
-  cargoSha256 = "06b0hag3s5irvi57n0hc97agfw4sw783lkkl1b26iap6mfbvrqma";
+  cargoSha256 = "06xqh0mqbik00qyg8mn1ddbn15v3pdwvh1agghg22xgx53kmnxb3";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  preFixup = ''
+    completions=($releaseDir/build/mmtc-*/out/completions)
+    installShellCompletion ''${completions[0]}/mmtc.{bash,fish}
+    installShellCompletion --zsh ''${completions[0]}/_mmtc
+  '';
+
+  GEN_COMPLETIONS = "1";
 
   meta = with lib; {
     description = "Minimal mpd terminal client that aims to be simple yet highly configurable";
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/default.nix b/nixpkgs/pkgs/applications/audio/mopidy/default.nix
index 2c19afb16a22..44d48fb3783a 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mopidy/default.nix
@@ -12,8 +12,6 @@ let
 
     mopidy = callPackage ./mopidy.nix { };
 
-    mopidy-gmusic = callPackage ./gmusic.nix { };
-
     mopidy-iris = callPackage ./iris.nix { };
 
     mopidy-local = callPackage ./local.nix { };
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix b/nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix
deleted file mode 100644
index 6e76d6af87d3..000000000000
--- a/nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, python3Packages, mopidy }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "mopidy-gmusic";
-  version = "4.0.0";
-
-  src = python3Packages.fetchPypi {
-    inherit version;
-    pname = "Mopidy-GMusic";
-    sha256 = "14yswmlfs659rs3k595606m77lw9c6pjykb5pikqw21sb97haxl3";
-  };
-
-  propagatedBuildInputs = [
-    mopidy
-    python3Packages.requests
-    python3Packages.gmusicapi
-    python3Packages.cachetools
-  ];
-
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://www.mopidy.com/";
-    description = "Mopidy extension for playing music from Google Play Music";
-    license = licenses.asl20;
-    maintainers = [ maintainers.jgillich ];
-    hydraPlatforms = [];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/local.nix b/nixpkgs/pkgs/applications/audio/mopidy/local.nix
index de748ea7b325..ebe9885e4954 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/local.nix
+++ b/nixpkgs/pkgs/applications/audio/mopidy/local.nix
@@ -1,16 +1,15 @@
 { lib
 , mopidy
 , python3Packages
-, fetchpatch
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "Mopidy-Local";
-  version = "3.2.0";
+  version = "3.2.1";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "14f78sb3wkg83dg3xcqlq77dh059zzcwry5l9ilyhnmvmyrkhqx0";
+    sha256 = "18w39mxpv8p17whd6zfw5653d21q138f8xd6ili6ks2g2dbm25i9";
   };
 
   propagatedBuildInputs = [
@@ -22,14 +21,6 @@ python3Packages.buildPythonApplication rec {
     python3Packages.pytestCheckHook
   ];
 
-  patches = [
-    # Fix tests for Mopidy≥3.1.0. Remove with the next release.
-    (fetchpatch {
-      url = "https://github.com/mopidy/mopidy-local/commit/f1d7598d3a9587f0823acb97ecb615f4f4817fd2.patch";
-      sha256 = "193kd5zwsr0qpp2y8icdy13vqpglmjdm7x1rw5hliwyq18a34vjp";
-    })
-  ];
-
   meta = with lib; {
     homepage = "https://github.com/mopidy/mopidy-local";
     description = "Mopidy extension for playing music from your local music archive";
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix b/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
index 63a28eb0f58e..d53bfee9efd2 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
@@ -42,7 +42,7 @@ pythonPackages.buildPythonApplication rec {
     homepage = "https://www.mopidy.com/";
     description = ''
       An extensible music server that plays music from local disk, Spotify,
-      SoundCloud, Google Play Music, and more
+      SoundCloud, and more
     '';
     license = licenses.asl20;
     maintainers = [ maintainers.fpletz ];
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/somafm.nix b/nixpkgs/pkgs/applications/audio/mopidy/somafm.nix
index 0637731dcb57..81c689a343de 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/somafm.nix
+++ b/nixpkgs/pkgs/applications/audio/mopidy/somafm.nix
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    homepage = https://www.mopidy.com/;
+    homepage = "https://www.mopidy.com/";
     description = "Mopidy extension for playing music from SomaFM";
     license = licenses.mit;
     maintainers = [ maintainers.nickhu ];
diff --git a/nixpkgs/pkgs/applications/audio/mp3gain/default.nix b/nixpkgs/pkgs/applications/audio/mp3gain/default.nix
index fb774476a2e2..bf0a347d14bd 100644
--- a/nixpkgs/pkgs/applications/audio/mp3gain/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mp3gain/default.nix
@@ -7,7 +7,8 @@ stdenv.mkDerivation {
     sha256 = "0varr6y7k8zarr56b42r0ad9g3brhn5vv3xjg1c0v19jxwr4gh2w";
   };
 
-  buildInputs = [ unzip mpg123 ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ mpg123 ];
 
   sourceRoot = ".";
 
diff --git a/nixpkgs/pkgs/applications/audio/mpdevil/default.nix b/nixpkgs/pkgs/applications/audio/mpdevil/default.nix
new file mode 100644
index 000000000000..09256911f872
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mpdevil/default.nix
@@ -0,0 +1,52 @@
+{ lib, fetchFromGitHub
+, python3Packages
+, gdk-pixbuf, glib, gobject-introspection, gtk3
+, intltool
+, wrapGAppsHook }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "mpdevil";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "SoongNoonien";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0l7mqv7ys05al2hds4icb32hf14fqi3n7b0f5v1yx54cbl9cqfap";
+  };
+
+  nativeBuildInputs = [
+    glib.dev gobject-introspection gtk3 intltool wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gdk-pixbuf glib
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    beautifulsoup4 distutils_extra mpd2 notify-py pygobject3 requests
+  ];
+
+  postInstall = ''
+    glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  # Prevent double wrapping.
+  dontWrapGApps = true;
+  # Otherwise wrapGAppsHook do not pick up the dependencies correctly.
+  strictDeps = false;
+  # There aren't any checks.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A simple music browser for MPD";
+    homepage = "https://github.com/SoongNoonien/mpdevil";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bloomvdomino ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mpg123/default.nix b/nixpkgs/pkgs/applications/audio/mpg123/default.nix
index 0b46cffd19c8..5c7eb6b88cf1 100644
--- a/nixpkgs/pkgs/applications/audio/mpg123/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mpg123/default.nix
@@ -7,11 +7,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "mpg123-1.26.3";
+  name = "mpg123-1.26.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
-    sha256 = "0vkcfdx0mqq6lmpczsmpa2jsb0s6dryx3i7gvr32i3w9b9w9ij9h";
+    sha256 = "sha256-CBmRVA33pmaykEmthw8pPPoohjs2SIq01Yzqp7WEZFQ=";
   };
 
   outputs = [ "out" "conplay" ];
diff --git a/nixpkgs/pkgs/applications/audio/musescore/darwin.nix b/nixpkgs/pkgs/applications/audio/musescore/darwin.nix
index 8cc876ab19e8..131417293207 100644
--- a/nixpkgs/pkgs/applications/audio/musescore/darwin.nix
+++ b/nixpkgs/pkgs/applications/audio/musescore/darwin.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     homepage = "https://musescore.org/";
     license = licenses.gpl2;
     platforms = platforms.darwin;
-    maintainers = with maintainers; [ yurrriq ];
+    maintainers = [];
     repositories.git = "https://github.com/musescore/MuseScore";
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/musescore/default.nix b/nixpkgs/pkgs/applications/audio/musescore/default.nix
index 47f8e5a22e62..b43b770b24f9 100644
--- a/nixpkgs/pkgs/applications/audio/musescore/default.nix
+++ b/nixpkgs/pkgs/applications/audio/musescore/default.nix
@@ -3,17 +3,18 @@
 , portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects
 , qtquickcontrols2, qtscript, qtsvg, qttools
 , qtwebengine, qtxmlpatterns
+, nixosTests
 }:
 
 mkDerivation rec {
   pname = "musescore";
-  version = "3.6";
+  version = "3.6.2";
 
   src = fetchFromGitHub {
     owner = "musescore";
     repo = "MuseScore";
     rev = "v${version}";
-    sha256 = "sha256-0M+idYnrgXyH6WLp+2jIYRnFzTB93v+dG1XHmSNyPjE=";
+    sha256 = "sha256-GBGAD/qdOhoNfDzI+O0EiKgeb86GFJxpci35T6tZ+2s=";
   };
 
   patches = [
@@ -40,6 +41,8 @@ mkDerivation rec {
     qtscript qtsvg qttools qtwebengine qtxmlpatterns
   ];
 
+  passthru.tests = nixosTests.musescore;
+
   meta = with lib; {
     description = "Music notation and composition software";
     homepage = "https://musescore.org/";
diff --git a/nixpkgs/pkgs/applications/audio/muso/default.nix b/nixpkgs/pkgs/applications/audio/muso/default.nix
new file mode 100644
index 000000000000..436afac7df29
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/muso/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, rustPlatform
+, pkg-config, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "muso";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "quebin31";
+    repo = pname;
+    rev = "68cc90869bcc0f202830a318fbfd6bb9bdb75a39";
+    sha256 = "1dnfslliss173igympl7h1zc0qz0g10kf96dwrcj6aglmvvw426p";
+  };
+
+  nativeBuildInputs = [ pkg-config wrapGAppsHook ];
+
+  preConfigure = ''
+    substituteInPlace lib/utils.rs \
+      --replace "/usr/share/muso" "$out/share/muso"
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/muso
+    cp share/* $out/share/muso/
+  '';
+
+  cargoSha256 = "06jgk54r3f8gq6iylv5rgsawss3hc5kmvk02y4gl8iwfnw4xrvmg";
+
+  meta = with lib; {
+    description = "An automatic music sorter (based on ID3 tags)";
+    homepage = "https://github.com/quebin31/muso";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ bloomvdomino ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/ncmpc/default.nix b/nixpkgs/pkgs/applications/audio/ncmpc/default.nix
index a4a32be41dbb..e397534d126c 100644
--- a/nixpkgs/pkgs/applications/audio/ncmpc/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ncmpc/default.nix
@@ -18,13 +18,13 @@ assert pcreSupport -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "ncmpc";
-  version = "0.44";
+  version = "0.45";
 
   src = fetchFromGitHub {
     owner  = "MusicPlayerDaemon";
     repo   = "ncmpc";
     rev    = "v${version}";
-    sha256 = "sha256-Qu41TL8KSKC9L25D6Z8bEbJUJQ9QI08grTGZ+0qGdUQ=";
+    sha256 = "sha256-KDSHbEZ2PJLEIlXqPvBQ2ZPWno+IoajTjkl9faAXIko=";
   };
 
   buildInputs = [ glib ncurses libmpdclient boost ]
diff --git a/nixpkgs/pkgs/applications/audio/ncspot/bump-security-framework-crate.patch b/nixpkgs/pkgs/applications/audio/ncspot/bump-security-framework-crate.patch
new file mode 100644
index 000000000000..5c8008abb18a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ncspot/bump-security-framework-crate.patch
@@ -0,0 +1,19 @@
+Bump security-framework from 2.1.1 to 2.1.2
+
+security-framework=2.1.1 doesn't build on Darwin 10.12.
+https://github.com/kornelski/rust-security-framework/issues/124
+
+--- c/Cargo.lock
++++ i/Cargo.lock
+@@ -3138,9 +3138,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+ 
+ [[package]]
+ name = "security-framework"
+-version = "2.1.1"
++version = "2.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2dfd318104249865096c8da1dfabf09ddbb6d0330ea176812a62ec75e40c4166"
++checksum = "d493c5f39e02dfb062cd8f33301f90f9b13b650e8c1b1d0fd75c19dd64bff69d"
+ dependencies = [
+  "bitflags 1.2.1",
+  "core-foundation",
diff --git a/nixpkgs/pkgs/applications/audio/ncspot/default.nix b/nixpkgs/pkgs/applications/audio/ncspot/default.nix
index e78eaca54909..ad8d64b97205 100644
--- a/nixpkgs/pkgs/applications/audio/ncspot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ncspot/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, rustPlatform, pkg-config, ncurses, openssl
+{ stdenv, lib, fetchFromGitHub, rustPlatform, pkg-config, ncurses, openssl, libiconv
 , withALSA ? true, alsaLib ? null
 , withPulseAudio ? false, libpulseaudio ? null
 , withPortAudio ? false, portaudio ? null
@@ -14,22 +14,25 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "sha256-4V0LG9mDvezeLHHTAmfAXdssOAOlZs30b8IejKEKN4g=";
+    sha256 = "1h1il2mzngxmcsl169431lwzl0skv420arg9i06856r5wil37jf7";
   };
 
-  cargoSha256 = "sha256-POvIkoxLAXVBTsB37aAEUKhk6DRF9IfvfTcrP5PLFEQ=";
+  cargoSha256 = "13yn7l4hhl48lbpj0zsbraqzkkz6knc373j6rcf8d1p4z76yili4";
 
   cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
 
   nativeBuildInputs = [ pkg-config ];
 
+  cargoPatches = [ ./bump-security-framework-crate.patch ];
+
   buildInputs = [ ncurses openssl ]
+    ++ lib.optional stdenv.isDarwin libiconv
     ++ lib.optional withALSA alsaLib
     ++ lib.optional withPulseAudio libpulseaudio
     ++ lib.optional withPortAudio portaudio
diff --git a/nixpkgs/pkgs/applications/audio/netease-music-tui/cargo-lock.patch b/nixpkgs/pkgs/applications/audio/netease-music-tui/cargo-lock.patch
index 2b3366476d63..f47c233d6aee 100644
--- a/nixpkgs/pkgs/applications/audio/netease-music-tui/cargo-lock.patch
+++ b/nixpkgs/pkgs/applications/audio/netease-music-tui/cargo-lock.patch
@@ -1,25 +1,25 @@
 diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
-index 0000000..45720a8
+index 0000000..f191345
 --- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,2303 @@
+@@ -0,0 +1,2649 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
 +[[package]]
 +name = "addr2line"
-+version = "0.14.0"
++version = "0.14.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423"
++checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
 +dependencies = [
 + "gimli",
 +]
 +
 +[[package]]
 +name = "adler"
-+version = "0.2.3"
++version = "1.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
++checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 +
 +[[package]]
 +name = "aho-corasick"
@@ -31,10 +31,22 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "alsa"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "75c4da790adcb2ce5e758c064b4f3ec17a30349f9961d3e5e6c9688b052a9e18"
++dependencies = [
++ "alsa-sys",
++ "bitflags",
++ "libc",
++ "nix",
++]
++
++[[package]]
 +name = "alsa-sys"
-+version = "0.1.2"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58"
++checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527"
 +dependencies = [
 + "libc",
 + "pkg-config",
@@ -62,7 +74,7 @@ index 0000000..45720a8
 + "flate2",
 + "futures-core",
 + "memchr",
-+ "pin-project-lite 0.2.0",
++ "pin-project-lite 0.2.6",
 +]
 +
 +[[package]]
@@ -73,9 +85,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "backtrace"
-+version = "0.3.55"
++version = "0.3.56"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598"
++checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
 +dependencies = [
 + "addr2line",
 + "cfg-if 1.0.0",
@@ -141,15 +153,15 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "bumpalo"
-+version = "3.4.0"
++version = "3.6.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
++checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe"
 +
 +[[package]]
 +name = "byteorder"
-+version = "1.3.4"
++version = "1.4.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 +
 +[[package]]
 +name = "bytes"
@@ -168,6 +180,12 @@ index 0000000..45720a8
 +checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
 +
 +[[package]]
++name = "bytes"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
++
++[[package]]
 +name = "cassowary"
 +version = "0.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -175,9 +193,18 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.66"
++version = "1.0.67"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
++dependencies = [
++ "jobserver",
++]
++
++[[package]]
++name = "cesu8"
++version = "1.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
++checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
 +
 +[[package]]
 +name = "cexpr"
@@ -209,15 +236,15 @@ index 0000000..45720a8
 + "libc",
 + "num-integer",
 + "num-traits 0.2.14",
-+ "time 0.1.44",
++ "time 0.1.43",
 + "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "clang-sys"
-+version = "1.0.3"
++version = "1.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0659001ab56b791be01d4b729c44376edc6718cf389a502e579b77b758f3296c"
++checksum = "f54d78e30b388d4815220c8dd03fea5656b6c6d32adb59e89061552a102f8da1"
 +dependencies = [
 + "glob",
 + "libc",
@@ -231,6 +258,16 @@ index 0000000..45720a8
 +checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688"
 +
 +[[package]]
++name = "combine"
++version = "4.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cc4369b5e4c0cddf64ad8981c0111e7df4f7078f4d6ba98fb31f2e17c4c57b7e"
++dependencies = [
++ "bytes 1.0.1",
++ "memchr",
++]
++
++[[package]]
 +name = "config"
 +version = "0.9.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -239,18 +276,18 @@ index 0000000..45720a8
 + "lazy_static 1.4.0",
 + "nom 4.2.3",
 + "rust-ini",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde-hjson",
 + "serde_json",
-+ "toml",
++ "toml 0.4.10",
 + "yaml-rust",
 +]
 +
 +[[package]]
 +name = "const_fn"
-+version = "0.4.4"
++version = "0.4.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826"
++checksum = "076a6803b0dacd6a88cfe64deba628b01533ff5ef265687e6938280c1afd0a28"
 +
 +[[package]]
 +name = "constant_time_eq"
@@ -260,13 +297,13 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "cookie"
-+version = "0.14.3"
++version = "0.14.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "784ad0fbab4f3e9cef09f20e0aea6000ae08d2cb98ac4c0abc53df18803d702f"
++checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951"
 +dependencies = [
 + "percent-encoding",
-+ "time 0.2.23",
-+ "version_check 0.9.2",
++ "time 0.2.26",
++ "version_check 0.9.3",
 +]
 +
 +[[package]]
@@ -279,9 +316,9 @@ index 0000000..45720a8
 + "idna",
 + "log",
 + "publicsuffix",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde_json",
-+ "time 0.2.23",
++ "time 0.2.26",
 + "url",
 +]
 +
@@ -309,9 +346,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "coreaudio-rs"
-+version = "0.9.1"
++version = "0.10.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491"
++checksum = "11894b20ebfe1ff903cbdc52259693389eea03b94918a2def2c30c3bf227ad88"
 +dependencies = [
 + "bitflags",
 + "coreaudio-sys",
@@ -328,18 +365,26 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "cpal"
-+version = "0.10.0"
++version = "0.13.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3ded070249be850b5b59e1e3a44a70b8ae395e0e5c65b487131d8909a8208120"
++checksum = "8351ddf2aaa3c583fa388029f8b3d26f3c7035a20911fdd5f2e2ed7ab57dad25"
 +dependencies = [
-+ "alsa-sys",
++ "alsa",
 + "core-foundation-sys 0.6.2",
 + "coreaudio-rs",
-+ "failure",
++ "jni",
++ "js-sys",
 + "lazy_static 1.4.0",
 + "libc",
-+ "num-traits 0.2.14",
++ "mach",
++ "ndk",
++ "ndk-glue",
++ "nix",
++ "oboe",
++ "parking_lot",
 + "stdweb 0.1.3",
++ "thiserror",
++ "web-sys",
 + "winapi 0.3.9",
 +]
 +
@@ -354,9 +399,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "crossbeam-utils"
-+version = "0.8.1"
++version = "0.8.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
++checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"
 +dependencies = [
 + "autocfg",
 + "cfg-if 1.0.0",
@@ -364,6 +409,41 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "darling"
++version = "0.10.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858"
++dependencies = [
++ "darling_core",
++ "darling_macro",
++]
++
++[[package]]
++name = "darling_core"
++version = "0.10.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"
++dependencies = [
++ "fnv",
++ "ident_case",
++ "proc-macro2",
++ "quote",
++ "strsim",
++ "syn",
++]
++
++[[package]]
++name = "darling_macro"
++version = "0.10.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
++dependencies = [
++ "darling_core",
++ "quote",
++ "syn",
++]
++
++[[package]]
 +name = "dbus"
 +version = "0.7.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -374,6 +454,17 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "derivative"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
 +name = "dirs"
 +version = "2.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -402,9 +493,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "dtoa"
-+version = "0.4.6"
++version = "0.4.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
++checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0"
 +
 +[[package]]
 +name = "either"
@@ -414,23 +505,14 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "encoding_rs"
-+version = "0.8.26"
++version = "0.8.28"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283"
++checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065"
 +dependencies = [
 + "cfg-if 1.0.0",
 +]
 +
 +[[package]]
-+name = "error-chain"
-+version = "0.12.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
-+dependencies = [
-+ "version_check 0.9.2",
-+]
-+
-+[[package]]
 +name = "failure"
 +version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -454,9 +536,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "flate2"
-+version = "1.0.19"
++version = "1.0.20"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129"
++checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0"
 +dependencies = [
 + "cfg-if 1.0.0",
 + "crc32fast",
@@ -487,9 +569,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "form_urlencoded"
-+version = "1.0.0"
++version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
++checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
 +dependencies = [
 + "matches",
 + "percent-encoding",
@@ -513,9 +595,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "futures"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0"
++checksum = "7f55667319111d593ba876406af7c409c0ebb44dc4be6132a783ccf163ea14c1"
 +dependencies = [
 + "futures-channel",
 + "futures-core",
@@ -528,9 +610,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "futures-channel"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64"
++checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939"
 +dependencies = [
 + "futures-core",
 + "futures-sink",
@@ -538,15 +620,15 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "futures-core"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748"
++checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94"
 +
 +[[package]]
 +name = "futures-executor"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65"
++checksum = "891a4b7b96d84d5940084b2a37632dd65deeae662c114ceaa2c879629c9c0ad1"
 +dependencies = [
 + "futures-core",
 + "futures-task",
@@ -555,15 +637,15 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "futures-io"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb"
++checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59"
 +
 +[[package]]
 +name = "futures-macro"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556"
++checksum = "ea405816a5139fb39af82c2beb921d52143f556038378d6db21183a5c37fbfb7"
 +dependencies = [
 + "proc-macro-hack",
 + "proc-macro2",
@@ -573,24 +655,21 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "futures-sink"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d"
++checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3"
 +
 +[[package]]
 +name = "futures-task"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d"
-+dependencies = [
-+ "once_cell",
-+]
++checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80"
 +
 +[[package]]
 +name = "futures-util"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2"
++checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1"
 +dependencies = [
 + "futures-channel",
 + "futures-core",
@@ -599,7 +678,7 @@ index 0000000..45720a8
 + "futures-sink",
 + "futures-task",
 + "memchr",
-+ "pin-project 1.0.2",
++ "pin-project-lite 0.2.6",
 + "pin-utils",
 + "proc-macro-hack",
 + "proc-macro-nested",
@@ -608,16 +687,27 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "getrandom"
-+version = "0.1.15"
++version = "0.1.16"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
++checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
 +dependencies = [
-+ "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
 + "libc",
 + "wasi 0.9.0+wasi-snapshot-preview1",
 +]
 +
 +[[package]]
++name = "getrandom"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
++dependencies = [
++ "cfg-if 1.0.0",
++ "libc",
++ "wasi 0.10.2+wasi-snapshot-preview1",
++]
++
++[[package]]
 +name = "gimli"
 +version = "0.23.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -657,18 +747,18 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "hermit-abi"
-+version = "0.1.17"
++version = "0.1.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
 +dependencies = [
 + "libc",
 +]
 +
 +[[package]]
 +name = "hex"
-+version = "0.4.2"
++version = "0.4.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35"
++checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 +
 +[[package]]
 +name = "hound"
@@ -678,11 +768,11 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "http"
-+version = "0.2.2"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "84129d298a6d57d246960ff8eb831ca4af3f96d29e2e28848dae275408658e26"
++checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747"
 +dependencies = [
-+ "bytes 0.5.6",
++ "bytes 1.0.1",
 + "fnv",
 + "itoa",
 +]
@@ -699,9 +789,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "httparse"
-+version = "1.3.4"
++version = "1.3.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
++checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691"
 +
 +[[package]]
 +name = "httpdate"
@@ -711,9 +801,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "hyper"
-+version = "0.13.9"
++version = "0.13.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf"
++checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb"
 +dependencies = [
 + "bytes 0.5.6",
 + "futures-channel",
@@ -725,7 +815,7 @@ index 0000000..45720a8
 + "httparse",
 + "httpdate",
 + "itoa",
-+ "pin-project 1.0.2",
++ "pin-project",
 + "socket2",
 + "tokio",
 + "tower-service",
@@ -747,10 +837,16 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "ident_case"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
++
++[[package]]
 +name = "idna"
-+version = "0.2.0"
++version = "0.2.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
++checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21"
 +dependencies = [
 + "matches",
 + "unicode-bidi",
@@ -759,15 +855,24 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "indexmap"
-+version = "1.6.1"
++version = "1.6.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"
++checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3"
 +dependencies = [
 + "autocfg",
 + "hashbrown",
 +]
 +
 +[[package]]
++name = "instant"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
++dependencies = [
++ "cfg-if 1.0.0",
++]
++
++[[package]]
 +name = "iovec"
 +version = "0.1.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -793,15 +898,44 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "itoa"
-+version = "0.4.6"
++version = "0.4.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
++
++[[package]]
++name = "jni"
++version = "0.18.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
++checksum = "24967112a1e4301ca5342ea339763613a37592b8a6ce6cf2e4494537c7a42faf"
++dependencies = [
++ "cesu8",
++ "combine",
++ "jni-sys",
++ "log",
++ "thiserror",
++ "walkdir",
++]
++
++[[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.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2"
++dependencies = [
++ "libc",
++]
 +
 +[[package]]
 +name = "js-sys"
-+version = "0.3.46"
++version = "0.3.50"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175"
++checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c"
 +dependencies = [
 + "wasm-bindgen",
 +]
@@ -836,20 +970,20 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "lewton"
-+version = "0.9.4"
++version = "0.10.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0"
++checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030"
 +dependencies = [
 + "byteorder",
 + "ogg",
-+ "smallvec",
++ "tinyvec",
 +]
 +
 +[[package]]
 +name = "libc"
-+version = "0.2.81"
++version = "0.2.92"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
++checksum = "56d855069fafbb9b344c0f962150cd2c1187975cb1c22c1522c240d8c4986714"
 +
 +[[package]]
 +name = "libdbus-sys"
@@ -862,9 +996,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "libloading"
-+version = "0.6.6"
++version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e9367bdfa836b7e3cf895867f7a570283444da90562980ec2263d6e1569b16bc"
++checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a"
 +dependencies = [
 + "cfg-if 1.0.0",
 + "winapi 0.3.9",
@@ -882,17 +1016,26 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "linked-hash-map"
-+version = "0.5.3"
++version = "0.5.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
++checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
++
++[[package]]
++name = "lock_api"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
++dependencies = [
++ "scopeguard",
++]
 +
 +[[package]]
 +name = "log"
-+version = "0.4.11"
++version = "0.4.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
 +dependencies = [
-+ "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
 +]
 +
 +[[package]]
@@ -920,12 +1063,6 @@ index 0000000..45720a8
 +checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
 +
 +[[package]]
-+name = "maybe-uninit"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
-+
-+[[package]]
 +name = "memchr"
 +version = "2.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -949,12 +1086,13 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "minimp3"
-+version = "0.3.5"
++version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dce0cff6a0bfd3f8b6b2350819bbddd63bc65cc45e53888bdd0ff49dde16d2d5"
++checksum = "985438f75febf74c392071a975a29641b420dd84431135a6e6db721de4b74372"
 +dependencies = [
 + "minimp3-sys",
 + "slice-deque",
++ "thiserror",
 +]
 +
 +[[package]]
@@ -968,9 +1106,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "miniz_oxide"
-+version = "0.4.3"
++version = "0.4.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
++checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
 +dependencies = [
 + "adler",
 + "autocfg",
@@ -1018,9 +1156,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "native-tls"
-+version = "0.2.6"
++version = "0.2.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6fcc7939b5edc4e4f86b1b4a04bb1498afaaf871b1a6691838ed06fcb48d3a3f"
++checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4"
 +dependencies = [
 + "lazy_static 1.4.0",
 + "libc",
@@ -1035,6 +1173,51 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "ndk"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8794322172319b972f528bf90c6b467be0079f1fa82780ffb431088e741a73ab"
++dependencies = [
++ "jni-sys",
++ "ndk-sys",
++ "num_enum",
++ "thiserror",
++]
++
++[[package]]
++name = "ndk-glue"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c5caf0c24d51ac1c905c27d4eda4fa0635bbe0de596b8f79235e0b17a4d29385"
++dependencies = [
++ "lazy_static 1.4.0",
++ "libc",
++ "log",
++ "ndk",
++ "ndk-macro",
++ "ndk-sys",
++]
++
++[[package]]
++name = "ndk-macro"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d"
++dependencies = [
++ "darling",
++ "proc-macro-crate",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "ndk-sys"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c44922cb3dbb1c70b5e5f443d63b64363a898564d739ba5198e3a9138442868d"
++
++[[package]]
 +name = "net2"
 +version = "0.2.37"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1047,7 +1230,7 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "netease_music_tui"
-+version = "0.1.1"
++version = "0.1.3"
 +dependencies = [
 + "base64 0.11.0",
 + "byteorder",
@@ -1065,11 +1248,11 @@ index 0000000..45720a8
 + "mp3-duration",
 + "num-bigint",
 + "openssl",
-+ "rand",
++ "rand 0.7.3",
 + "regex",
 + "reqwest",
 + "rodio",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde_derive",
 + "serde_json",
 + "serde_urlencoded 0.6.1",
@@ -1082,6 +1265,18 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "nix"
++version = "0.20.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
++dependencies = [
++ "bitflags",
++ "cc",
++ "cfg-if 1.0.0",
++ "libc",
++]
++
++[[package]]
 +name = "nom"
 +version = "4.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1098,7 +1293,7 @@ index 0000000..45720a8
 +checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
 +dependencies = [
 + "memchr",
-+ "version_check 0.9.2",
++ "version_check 0.9.3",
 +]
 +
 +[[package]]
@@ -1113,6 +1308,17 @@ index 0000000..45720a8
 +]
 +
 +[[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",
++]
++
++[[package]]
 +name = "num-integer"
 +version = "0.1.44"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1151,6 +1357,28 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "num_enum"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "226b45a5c2ac4dd696ed30fa6b94b057ad909c7b7fc2e0d0808192bced894066"
++dependencies = [
++ "derivative",
++ "num_enum_derive",
++]
++
++[[package]]
++name = "num_enum_derive"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e"
++dependencies = [
++ "proc-macro-crate",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
 +name = "numtoa"
 +version = "0.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1158,36 +1386,59 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "object"
-+version = "0.22.0"
++version = "0.23.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
++
++[[package]]
++name = "oboe"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4cfb2390bddb9546c0f7448fd1d2abdd39e6075206f960991eb28c7fa7f126c4"
++dependencies = [
++ "jni",
++ "ndk",
++ "ndk-glue",
++ "num-derive",
++ "num-traits 0.2.14",
++ "oboe-sys",
++]
++
++[[package]]
++name = "oboe-sys"
++version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
++checksum = "fe069264d082fc820dfa172f79be3f2e088ecfece9b1c47b0c9fd838d2bef103"
++dependencies = [
++ "cc",
++]
 +
 +[[package]]
 +name = "ogg"
-+version = "0.7.1"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "13e571c3517af9e1729d4c63571a27edd660ade0667973bfc74a67c660c2b651"
++checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e"
 +dependencies = [
 + "byteorder",
 +]
 +
 +[[package]]
 +name = "once_cell"
-+version = "1.5.2"
++version = "1.7.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
++checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
 +
 +[[package]]
 +name = "openssl"
-+version = "0.10.32"
++version = "0.10.33"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70"
++checksum = "a61075b62a23fef5a29815de7536d940aa35ce96d18ce0cc5076272db678a577"
 +dependencies = [
 + "bitflags",
 + "cfg-if 1.0.0",
 + "foreign-types",
-+ "lazy_static 1.4.0",
 + "libc",
++ "once_cell",
 + "openssl-sys",
 +]
 +
@@ -1199,9 +1450,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "openssl-sys"
-+version = "0.9.60"
++version = "0.9.61"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6"
++checksum = "313752393519e876837e09e1fa183ddef0be7735868dced3196f4472d536277f"
 +dependencies = [
 + "autocfg",
 + "cc",
@@ -1211,6 +1462,31 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "parking_lot"
++version = "0.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
++dependencies = [
++ "instant",
++ "lock_api",
++ "parking_lot_core",
++]
++
++[[package]]
++name = "parking_lot_core"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
++dependencies = [
++ "cfg-if 1.0.0",
++ "instant",
++ "libc",
++ "redox_syscall 0.2.5",
++ "smallvec",
++ "winapi 0.3.9",
++]
++
++[[package]]
 +name = "peeking_take_while"
 +version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1224,38 +1500,18 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "pin-project"
-+version = "0.4.27"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"
-+dependencies = [
-+ "pin-project-internal 0.4.27",
-+]
-+
-+[[package]]
-+name = "pin-project"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7"
-+dependencies = [
-+ "pin-project-internal 1.0.2",
-+]
-+
-+[[package]]
-+name = "pin-project-internal"
-+version = "0.4.27"
++version = "1.0.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895"
++checksum = "bc174859768806e91ae575187ada95c91a29e96a98dc5d2cd9a1fed039501ba6"
 +dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
++ "pin-project-internal",
 +]
 +
 +[[package]]
 +name = "pin-project-internal"
-+version = "1.0.2"
++version = "1.0.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f"
++checksum = "a490329918e856ed1b083f244e3bfe2d8c4f336407e4ea9e1a9f479ff09049e5"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -1264,15 +1520,15 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "pin-project-lite"
-+version = "0.1.11"
++version = "0.1.12"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
++checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
 +
 +[[package]]
 +name = "pin-project-lite"
-+version = "0.2.0"
++version = "0.2.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c"
++checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
 +
 +[[package]]
 +name = "pin-utils"
@@ -1293,6 +1549,15 @@ index 0000000..45720a8
 +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
 +
 +[[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.8",
++]
++
++[[package]]
 +name = "proc-macro-hack"
 +version = "0.5.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1300,37 +1565,34 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "proc-macro-nested"
-+version = "0.1.6"
++version = "0.1.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
++checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
 +
 +[[package]]
 +name = "proc-macro2"
-+version = "1.0.24"
++version = "1.0.26"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
++checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
 +dependencies = [
 + "unicode-xid",
 +]
 +
 +[[package]]
 +name = "publicsuffix"
-+version = "1.5.4"
++version = "1.5.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3bbaa49075179162b49acac1c6aa45fb4dafb5f13cf6794276d77bc7fd95757b"
++checksum = "95b4ce31ff0a27d93c8de1849cf58162283752f065a90d508f1105fa6c9a213f"
 +dependencies = [
-+ "error-chain",
 + "idna",
-+ "lazy_static 1.4.0",
-+ "regex",
 + "url",
 +]
 +
 +[[package]]
 +name = "quote"
-+version = "1.0.8"
++version = "1.0.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
 +dependencies = [
 + "proc-macro2",
 +]
@@ -1341,11 +1603,23 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 +dependencies = [
-+ "getrandom",
++ "getrandom 0.1.16",
++ "libc",
++ "rand_chacha 0.2.2",
++ "rand_core 0.5.1",
++ "rand_hc 0.2.0",
++]
++
++[[package]]
++name = "rand"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
++dependencies = [
 + "libc",
-+ "rand_chacha",
-+ "rand_core",
-+ "rand_hc",
++ "rand_chacha 0.3.0",
++ "rand_core 0.6.2",
++ "rand_hc 0.3.0",
 +]
 +
 +[[package]]
@@ -1355,7 +1629,17 @@ index 0000000..45720a8
 +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
 +dependencies = [
 + "ppv-lite86",
-+ "rand_core",
++ "rand_core 0.5.1",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
++dependencies = [
++ "ppv-lite86",
++ "rand_core 0.6.2",
 +]
 +
 +[[package]]
@@ -1364,7 +1648,16 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
 +dependencies = [
-+ "getrandom",
++ "getrandom 0.1.16",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
++dependencies = [
++ "getrandom 0.2.2",
 +]
 +
 +[[package]]
@@ -1373,7 +1666,16 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
 +dependencies = [
-+ "rand_core",
++ "rand_core 0.5.1",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
++dependencies = [
++ "rand_core 0.6.2",
 +]
 +
 +[[package]]
@@ -1383,12 +1685,21 @@ index 0000000..45720a8
 +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
 +
 +[[package]]
++name = "redox_syscall"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
++dependencies = [
++ "bitflags",
++]
++
++[[package]]
 +name = "redox_termios"
-+version = "0.1.1"
++version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
++checksum = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f"
 +dependencies = [
-+ "redox_syscall",
++ "redox_syscall 0.2.5",
 +]
 +
 +[[package]]
@@ -1397,28 +1708,27 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
 +dependencies = [
-+ "getrandom",
-+ "redox_syscall",
++ "getrandom 0.1.16",
++ "redox_syscall 0.1.57",
 + "rust-argon2",
 +]
 +
 +[[package]]
 +name = "regex"
-+version = "1.4.2"
++version = "1.4.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
++checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19"
 +dependencies = [
 + "aho-corasick",
 + "memchr",
 + "regex-syntax",
-+ "thread_local",
 +]
 +
 +[[package]]
 +name = "regex-syntax"
-+version = "0.6.21"
++version = "0.6.23"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
++checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"
 +
 +[[package]]
 +name = "remove_dir_all"
@@ -1455,10 +1765,10 @@ index 0000000..45720a8
 + "mime_guess",
 + "native-tls",
 + "percent-encoding",
-+ "pin-project-lite 0.2.0",
-+ "serde 1.0.118",
++ "pin-project-lite 0.2.6",
++ "serde 1.0.125",
 + "serde_urlencoded 0.7.0",
-+ "time 0.2.23",
++ "time 0.2.26",
 + "tokio",
 + "tokio-socks",
 + "tokio-tls",
@@ -1471,14 +1781,13 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "rodio"
-+version = "0.10.0"
++version = "0.13.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1e0e0dfa7c8b17c6428f6e992a22ea595922cc86f946191b6b59e7ce96b77262"
++checksum = "b65c2eda643191f6d1bb12ea323a9db8d9ba95374e9be3780b5a9fb5cfb8520f"
 +dependencies = [
 + "claxon",
 + "cpal",
 + "hound",
-+ "lazy_static 1.4.0",
 + "lewton",
 + "minimp3",
 +]
@@ -1529,6 +1838,15 @@ index 0000000..45720a8
 +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
 +
 +[[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.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1539,10 +1857,16 @@ index 0000000..45720a8
 +]
 +
 +[[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.0.0"
++version = "2.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69"
++checksum = "3670b1d2fdf6084d192bc71ead7aabe6c06aa2ea3fbd9cc3ac111fa5c2b1bd84"
 +dependencies = [
 + "bitflags",
 + "core-foundation",
@@ -1553,9 +1877,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "security-framework-sys"
-+version = "2.0.0"
++version = "2.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b"
++checksum = "3676258fd3cfe2c9a0ec99ce3038798d847ce3e4bb17746373eb9f0f1ac16339"
 +dependencies = [
 + "core-foundation-sys 0.8.2",
 + "libc",
@@ -1584,9 +1908,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "serde"
-+version = "1.0.118"
++version = "1.0.125"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800"
++checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
 +dependencies = [
 + "serde_derive",
 +]
@@ -1606,9 +1930,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "serde_derive"
-+version = "1.0.118"
++version = "1.0.125"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df"
++checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -1617,13 +1941,13 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "serde_json"
-+version = "1.0.60"
++version = "1.0.64"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779"
++checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
 +dependencies = [
 + "itoa",
 + "ryu",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 +]
 +
 +[[package]]
@@ -1643,7 +1967,7 @@ index 0000000..45720a8
 +dependencies = [
 + "dtoa",
 + "itoa",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "url",
 +]
 +
@@ -1656,7 +1980,7 @@ index 0000000..45720a8
 + "form_urlencoded",
 + "itoa",
 + "ryu",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 +]
 +
 +[[package]]
@@ -1701,12 +2025,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "smallvec"
-+version = "0.6.13"
++version = "1.6.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
-+dependencies = [
-+ "maybe-uninit",
-+]
++checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
 +
 +[[package]]
 +name = "socket2"
@@ -1721,11 +2042,11 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "standback"
-+version = "0.2.13"
++version = "0.2.17"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf906c8b8fc3f6ecd1046e01da1d8ddec83e48c8b08b84dcc02b585a6bedf5a8"
++checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
 +dependencies = [
-+ "version_check 0.9.2",
++ "version_check 0.9.3",
 +]
 +
 +[[package]]
@@ -1756,7 +2077,7 @@ index 0000000..45720a8
 +dependencies = [
 + "proc-macro2",
 + "quote",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde_derive",
 + "syn",
 +]
@@ -1770,7 +2091,7 @@ index 0000000..45720a8
 + "base-x",
 + "proc-macro2",
 + "quote",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde_derive",
 + "serde_json",
 + "sha1",
@@ -1784,10 +2105,16 @@ index 0000000..45720a8
 +checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
 +
 +[[package]]
++name = "strsim"
++version = "0.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
++
++[[package]]
 +name = "syn"
-+version = "1.0.55"
++version = "1.0.68"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a571a711dddd09019ccc628e1b17fe87c59b09d513c06c026877aa708334f37a"
++checksum = "3ce15dd3ed8aa2f8eeac4716d6ef5ab58b6b9256db41d7e1a0224c2788e8fd87"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -1808,44 +2135,44 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "tempfile"
-+version = "3.1.0"
++version = "3.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
++checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
 +dependencies = [
-+ "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
 + "libc",
-+ "rand",
-+ "redox_syscall",
++ "rand 0.8.3",
++ "redox_syscall 0.2.5",
 + "remove_dir_all",
 + "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "termion"
-+version = "1.5.5"
++version = "1.5.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c22cec9d8978d906be5ac94bceb5a010d885c626c4c8855721a4dbd20e3ac905"
++checksum = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e"
 +dependencies = [
 + "libc",
 + "numtoa",
-+ "redox_syscall",
++ "redox_syscall 0.2.5",
 + "redox_termios",
 +]
 +
 +[[package]]
 +name = "thiserror"
-+version = "1.0.22"
++version = "1.0.24"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e"
++checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
 +dependencies = [
 + "thiserror-impl",
 +]
 +
 +[[package]]
 +name = "thiserror-impl"
-+version = "1.0.22"
++version = "1.0.24"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56"
++checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -1859,42 +2186,32 @@ index 0000000..45720a8
 +checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1"
 +dependencies = [
 + "libc",
-+ "redox_syscall",
++ "redox_syscall 0.1.57",
 + "winapi 0.3.9",
 +]
 +
 +[[package]]
-+name = "thread_local"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-+dependencies = [
-+ "lazy_static 1.4.0",
-+]
-+
-+[[package]]
 +name = "time"
-+version = "0.1.44"
++version = "0.1.43"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
++checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
 +dependencies = [
 + "libc",
-+ "wasi 0.10.0+wasi-snapshot-preview1",
 + "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "time"
-+version = "0.2.23"
++version = "0.2.26"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bcdaeea317915d59b2b4cd3b5efcd156c309108664277793f5351700c02ce98b"
++checksum = "08a8cbfbf47955132d0202d1662f49b2423ae35862aee471f3ba4b133358f372"
 +dependencies = [
 + "const_fn",
 + "libc",
 + "standback",
 + "stdweb 0.4.20",
 + "time-macros",
-+ "version_check 0.9.2",
++ "version_check 0.9.3",
 + "winapi 0.3.9",
 +]
 +
@@ -1923,9 +2240,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "tinyvec"
-+version = "1.1.0"
++version = "1.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
++checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023"
 +dependencies = [
 + "tinyvec_macros",
 +]
@@ -1938,9 +2255,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "tokio"
-+version = "0.2.24"
++version = "0.2.25"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48"
++checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092"
 +dependencies = [
 + "bytes 0.5.6",
 + "fnv",
@@ -1950,7 +2267,7 @@ index 0000000..45720a8
 + "memchr",
 + "mio",
 + "num_cpus",
-+ "pin-project-lite 0.1.11",
++ "pin-project-lite 0.1.12",
 + "slab",
 + "tokio-macros",
 +]
@@ -1999,7 +2316,7 @@ index 0000000..45720a8
 + "futures-core",
 + "futures-sink",
 + "log",
-+ "pin-project-lite 0.1.11",
++ "pin-project-lite 0.1.12",
 + "tokio",
 +]
 +
@@ -2009,24 +2326,33 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
 +dependencies = [
-+ "serde 1.0.118",
++ "serde 1.0.125",
++]
++
++[[package]]
++name = "toml"
++version = "0.5.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
++dependencies = [
++ "serde 1.0.125",
 +]
 +
 +[[package]]
 +name = "tower-service"
-+version = "0.3.0"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
++checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
 +
 +[[package]]
 +name = "tracing"
-+version = "0.1.22"
++version = "0.1.25"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"
++checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f"
 +dependencies = [
 + "cfg-if 1.0.0",
 + "log",
-+ "pin-project-lite 0.2.0",
++ "pin-project-lite 0.2.6",
 + "tracing-core",
 +]
 +
@@ -2041,11 +2367,11 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "tracing-futures"
-+version = "0.2.4"
++version = "0.2.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
++checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
 +dependencies = [
-+ "pin-project 0.4.27",
++ "pin-project",
 + "tracing",
 +]
 +
@@ -2077,7 +2403,7 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
 +dependencies = [
-+ "version_check 0.9.2",
++ "version_check 0.9.3",
 +]
 +
 +[[package]]
@@ -2091,9 +2417,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "unicode-normalization"
-+version = "0.1.16"
++version = "0.1.17"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"
++checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
 +dependencies = [
 + "tinyvec",
 +]
@@ -2118,9 +2444,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "url"
-+version = "2.2.0"
++version = "2.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e"
++checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b"
 +dependencies = [
 + "form_urlencoded",
 + "idna",
@@ -2142,9 +2468,20 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "version_check"
-+version = "0.9.2"
++version = "0.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
++
++[[package]]
++name = "walkdir"
++version = "2.3.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
++checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
++dependencies = [
++ "same-file",
++ "winapi 0.3.9",
++ "winapi-util",
++]
 +
 +[[package]]
 +name = "want"
@@ -2164,27 +2501,27 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "wasi"
-+version = "0.10.0+wasi-snapshot-preview1"
++version = "0.10.2+wasi-snapshot-preview1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
 +
 +[[package]]
 +name = "wasm-bindgen"
-+version = "0.2.69"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e"
++checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9"
 +dependencies = [
 + "cfg-if 1.0.0",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde_json",
 + "wasm-bindgen-macro",
 +]
 +
 +[[package]]
 +name = "wasm-bindgen-backend"
-+version = "0.2.69"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62"
++checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae"
 +dependencies = [
 + "bumpalo",
 + "lazy_static 1.4.0",
@@ -2197,9 +2534,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "wasm-bindgen-futures"
-+version = "0.4.19"
++version = "0.4.23"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35"
++checksum = "81b8b767af23de6ac18bf2168b690bed2902743ddf0fb39252e36f9e2bfc63ea"
 +dependencies = [
 + "cfg-if 1.0.0",
 + "js-sys",
@@ -2209,9 +2546,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "wasm-bindgen-macro"
-+version = "0.2.69"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084"
++checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f"
 +dependencies = [
 + "quote",
 + "wasm-bindgen-macro-support",
@@ -2219,9 +2556,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "wasm-bindgen-macro-support"
-+version = "0.2.69"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549"
++checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -2232,15 +2569,15 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "wasm-bindgen-shared"
-+version = "0.2.69"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"
++checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489"
 +
 +[[package]]
 +name = "web-sys"
-+version = "0.3.46"
++version = "0.3.50"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3"
++checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be"
 +dependencies = [
 + "js-sys",
 + "wasm-bindgen",
@@ -2275,6 +2612,15 @@ index 0000000..45720a8
 +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-x86_64-pc-windows-gnu"
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2301,9 +2647,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "yaml-rust"
-+version = "0.4.4"
++version = "0.4.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"
++checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
 +dependencies = [
-+ "linked-hash-map 0.5.3",
++ "linked-hash-map 0.5.4",
 +]
diff --git a/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix b/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix
index 0322459685f2..a8f90ef34efd 100644
--- a/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix
+++ b/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "netease-music-tui";
-  version = "v0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "betta-cyber";
     repo = "netease-music-tui";
-    rev = version;
-    sha256 = "0m5b3q493d32kxznm4apn56216l07b1c49km236i03mpfvdw7m1f";
+    rev = "v${version}";
+    sha256 = "09355a6d197ckayh9833y39dsarklgpgrq3raapiv25z59di30qq";
   };
 
   cargoPatches = [ ./cargo-lock.patch ];
@@ -16,8 +16,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ alsaLib openssl ];
 
-  cargoSha256 = "1kfbnwy3lkbhz0ggxwr5n6qd1plipkr1ycr3z2r7c0amrzzbkc7l";
-  verifyCargoDeps = true;
+  cargoSha256 = "0f06wc7h2zjipifvxsskxvihjf6mykrjrm7yk0zf98ra079bc9g9";
 
   meta = with lib; {
     homepage = "https://github.com/betta-cyber/netease-music-tui";
diff --git a/nixpkgs/pkgs/applications/audio/netease-music-tui/update-cargo-lock.sh b/nixpkgs/pkgs/applications/audio/netease-music-tui/update-cargo-lock.sh
new file mode 100644
index 000000000000..b7ca4216ace5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/netease-music-tui/update-cargo-lock.sh
@@ -0,0 +1,20 @@
+#!nix-shell
+#!nix-shell -i bash -p coreutils gnugrep git cargo
+
+# This updates cargo-lock.patch for the netease-music-tui version listed in
+# default.nix.
+
+set -eu -o verbose
+
+here=$PWD
+version=$(cat default.nix | grep '^  version = "' | cut -d '"' -f 2)
+checkout=$(mktemp -d)
+git clone -b "$version" --depth=1 https://github.com/betta-cyber/netease-music-tui "$checkout"
+cd "$checkout"
+
+cargo generate-lockfile
+git add -f Cargo.lock
+git diff HEAD -- Cargo.lock > "$here"/cargo-lock.patch
+
+cd "$here"
+rm -rf "$checkout"
diff --git a/nixpkgs/pkgs/applications/audio/new-session-manager/default.nix b/nixpkgs/pkgs/applications/audio/new-session-manager/default.nix
index 0badb85f02c4..eedd193b2c54 100644
--- a/nixpkgs/pkgs/applications/audio/new-session-manager/default.nix
+++ b/nixpkgs/pkgs/applications/audio/new-session-manager/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "new-session-manager";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "linuxaudio";
     repo = "new-session-manager";
     rev = "v${version}";
-    sha256 = "sha256-YP5AHoFP8P1o0Y2jAipRcNPxPRuM7COs5tBMm6Eojoc=";
+    sha256 = "sha256-hcw+Fn5s1S786eqmR95RmkFcIaRzWaH38YE9DXVQJU0=";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja ];
diff --git a/nixpkgs/pkgs/applications/audio/noisetorch/default.nix b/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
index fea6e097de7a..6f63bf542f41 100644
--- a/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
+++ b/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "NoiseTorch";
-  version = "0.9.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "lawl";
@@ -11,7 +11,10 @@ buildGoModule rec {
     sha256 = "1a4g112h83m55pga8kq2a1wzxpycj59v4bygyjfyi1s09q1y97qg";
   };
 
-  patches = [ ./version.patch ];
+  patches = [
+    # Get version from environment instead of git tags
+    ./version.patch
+  ];
 
   vendorSha256 = null;
 
diff --git a/nixpkgs/pkgs/applications/audio/nootka/default.nix b/nixpkgs/pkgs/applications/audio/nootka/default.nix
index b1b60540b8c2..11424c0be181 100644
--- a/nixpkgs/pkgs/applications/audio/nootka/default.nix
+++ b/nixpkgs/pkgs/applications/audio/nootka/default.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
     "-DENABLE_PULSEAUDIO=ON"
   ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Application for practicing playing musical scores and ear training";
     homepage = "https://nootka.sourceforge.io/";
diff --git a/nixpkgs/pkgs/applications/audio/nootka/unstable.nix b/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
index 1fb70c195dc0..aa49daaa1e71 100644
--- a/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
+++ b/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
     qtbase qtdeclarative qtquickcontrols2
   ];
 
+  dontWrapQtApps = true;
+
   cmakeFlags = [
     "-DCMAKE_INCLUDE_PATH=${libjack2}/include/jack;${libpulseaudio.dev}/include/pulse"
     "-DENABLE_JACK=ON"
diff --git a/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix b/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
index c3ab0ffcebd1..d770396a6ad3 100644
--- a/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ocenaudio";
-  version = "3.9.6";
+  version = "3.10.2";
 
   src = fetchurl {
     url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
-    sha256 = "07r49133kk99ya4grwby3admy892mkk9cfxz3wh0v81aznhpw4jg";
+    sha256 = "sha256-mmo6/zc/3R8ptXfY01RKUOLgmDhWTHiYBMlGqpdMTAo=";
   };
 
 
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
   dontUnpack = true;
   dontBuild = true;
   dontStrip = true;
+  dontWrapQtApps = true;
 
   installPhase = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/applications/audio/openmpt123/default.nix b/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
index 8e6113a716d2..7f412d528db0 100644
--- a/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
+++ b/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
@@ -2,14 +2,14 @@
 , usePulseAudio ? config.pulseaudio or false, libpulseaudio }:
 
 let
-  version = "0.5.5";
+  version = "0.5.6";
 in stdenv.mkDerivation {
   pname = "openmpt123";
   inherit version;
 
   src = fetchurl {
     url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
-    sha256 = "sha256-8eAUg+vxpoDZ7AMMmvIPXypawPHgZCwYvVWTz6qc62s=";
+    sha256 = "sha256-F96ngrM0wUb0rNlIx8Mf/dKvyJnrNH6+Ab4WBup59Lg=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/audio/oxefmsynth/default.nix b/nixpkgs/pkgs/applications/audio/oxefmsynth/default.nix
new file mode 100644
index 000000000000..427029f3c863
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/oxefmsynth/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, fetchFromGitHub, unzip, fetchzip, libX11 }:
+
+let
+
+  vst-sdk = stdenv.mkDerivation rec {
+    name = "vstsdk3610_11_06_2018_build_37";
+    src = fetchzip {
+      url = "https://web.archive.org/web/20181016150224if_/https://download.steinberg.net/sdk_downloads/${name}.zip";
+      sha256 = "0da16iwac590wphz2sm5afrfj42jrsnkr1bxcy93lj7a369ildkj";
+    };
+    installPhase = "cp -r . $out";
+  };
+
+in stdenv.mkDerivation rec {
+  pname = "oxefmsynth";
+  version = "1.3.5";
+
+  src = fetchFromGitHub {
+    owner = "oxesoft";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1rk71ls33a38wx8i22plsi7d89cqqxrfxknq5i4f9igsw1ipm4gn";
+  };
+
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=narrowing" ];
+
+  buildFlags = [ "VSTSDK_PATH=${vst-sdk}/VST2_SDK" ];
+
+  buildInputs = [ libX11 ];
+
+  installPhase = ''
+    mkdir -p $out/lib/lxvst
+    install -Dm644 oxevst64.so -t $out/lib/lxvst
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/oxesoft/oxefmsynth";
+    description = "An open source VST 2.4 instrument plugin";
+    maintainers = [ maintainers.hirenashah ];
+    platforms = [ "x86_64-linux" ];
+    license = licenses.gpl3Only;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
index 9b50b40a5bb5..feaf9ed70cfb 100644
--- a/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation {
     sha256 = "0h1fj7lmvq9j6rmw33rb8k0byxb898bi2xhcwkqalb84avhywgvs";
   };
 
-  buildInputs = [ unzip puredata ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ puredata ];
 
   unpackPhase = ''
     unzip $src
diff --git a/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix
index 1eb6eb389317..811b8c2ee9aa 100644
--- a/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1h7qgqd8srrxw2y1rkdw5js4k6f5vc8x6nlm2mq9mq9vjck7n1j7";
   };
 
-  buildInputs = [ unzip puredata ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ puredata ];
 
   unpackPhase = ''
     unzip $src
diff --git a/nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix
index e5e67ec44dd4..7fd2adefce07 100644
--- a/nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "14k2xk5zrzrw1zprdbwx45hrlc7ck8vq4drpd3l455i5r8yk4y6b";
   };
 
-  buildInputs = [ unzip puredata fftw ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ puredata fftw ];
 
   unpackPhase = ''
     mkdir source
diff --git a/nixpkgs/pkgs/applications/audio/picard/default.nix b/nixpkgs/pkgs/applications/audio/picard/default.nix
index 200e457c5685..785c334e1523 100644
--- a/nixpkgs/pkgs/applications/audio/picard/default.nix
+++ b/nixpkgs/pkgs/applications/audio/picard/default.nix
@@ -40,11 +40,6 @@ in pythonPackages.buildPythonApplication rec {
     dateutil
   ];
 
-  prePatch = ''
-    # Pesky unicode punctuation.
-    substituteInPlace setup.cfg --replace "‘" "'"
-  '';
-
   # In order to spare double wrapping, we use:
   preFixup = ''
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
diff --git a/nixpkgs/pkgs/applications/audio/playbar2/default.nix b/nixpkgs/pkgs/applications/audio/playbar2/default.nix
index 7545c17131f9..dfbfb43e625c 100644
--- a/nixpkgs/pkgs/applications/audio/playbar2/default.nix
+++ b/nixpkgs/pkgs/applications/audio/playbar2/default.nix
@@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
     kwindowsystem
   ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Mpris2 Client for Plasma5";
     homepage = "https://github.com/audoban/PlayBar2";
diff --git a/nixpkgs/pkgs/applications/audio/plexamp/default.nix b/nixpkgs/pkgs/applications/audio/plexamp/default.nix
index c484f6e19247..cb682f91b6d3 100644
--- a/nixpkgs/pkgs/applications/audio/plexamp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/plexamp/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "plexamp";
-  version = "3.4.1";
+  version = "3.4.4";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
     name="${pname}-${version}.AppImage";
-    sha256 = "Vv+e1q5ThuXDPX8baSU+7/U63p6/dvh0ZvScO1Loj+U=";
+    sha256 = "1iz6qi12ljafb49l73rba5rwi5sdbd8ck5h2r6jiy260lgr2iiyk";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -32,8 +32,9 @@ in appimageTools.wrapType2 {
   meta = with lib; {
     description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
     homepage = "https://plexamp.com/";
+    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/26";
     license = licenses.unfree;
-    maintainers = with maintainers; [ killercup ];
+    maintainers = with maintainers; [ killercup synthetica ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/pragha/default.nix b/nixpkgs/pkgs/applications/audio/pragha/default.nix
new file mode 100644
index 000000000000..da5a64f708eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pragha/default.nix
@@ -0,0 +1,103 @@
+{ lib
+, intltool
+, mkDerivation
+, installShellFiles
+, pkg-config
+, fetchFromGitHub
+, dbus-glib
+, desktop-file-utils
+, hicolor-icon-theme
+, pcre
+, qtbase
+, sqlite
+, taglib
+, zlib
+, gtk3
+, libpeas
+, libcddb
+, libcdio
+, gst_all_1, withGstPlugins ? true
+, glyr, withGlyr ? true
+, liblastfmSF, withLastfm ? true
+, libcdio-paranoia, withCD ? true
+, keybinder3, withKeybinder ? false
+, libnotify, withLibnotify ? false
+, libsoup, withLibsoup ? false
+, libgudev, withGudev ? false # experimental
+, libmtp, withMtp ? false # experimental
+, xfce, withXfce4ui ? false
+, totem-pl-parser, withTotemPlParser ? false
+# , grilo, withGrilo ? false
+# , rygel, withRygel ? true
+}:
+
+assert withGlyr -> withLastfm;
+assert withLastfm -> withCD;
+
+mkDerivation rec {
+  pname = "pragha";
+  version = "1.3.99.1";
+
+  src = fetchFromGitHub {
+    owner = "pragha-music-player";
+    repo = "pragha";
+    rev = "v${version}";
+    sha256 = "sha256-C4zh2NHqP4bwKMi5s+3AfEtKqxRlzL66H8OyNonGzxE=";
+  };
+
+  nativeBuildInputs = [
+    intltool
+    pkg-config
+    xfce.xfce4-dev-tools
+    desktop-file-utils
+    installShellFiles
+  ];
+
+  buildInputs = with gst_all_1; [
+    dbus-glib
+    gstreamer
+    gst-plugins-base
+    gtk3
+    hicolor-icon-theme
+    libpeas
+    pcre
+    qtbase
+    sqlite
+    taglib
+    zlib
+  ]
+  ++ lib.optionals withGstPlugins [ gst-plugins-good gst-plugins-bad gst-plugins-ugly ]
+  ++ lib.optionals withCD [ libcddb libcdio libcdio-paranoia ]
+  ++ lib.optional withGudev libgudev
+  ++ lib.optional withKeybinder keybinder3
+  ++ lib.optional withLibnotify libnotify
+  ++ lib.optional withLastfm liblastfmSF
+  ++ lib.optional withGlyr glyr
+  ++ lib.optional withLibsoup libsoup
+  ++ lib.optional withMtp libmtp
+  ++ lib.optional withXfce4ui xfce.libxfce4ui
+  ++ lib.optional withTotemPlParser totem-pl-parser
+  # ++ lib.optional withGrilo grilo
+  # ++ lib.optional withRygel rygel
+  ;
+
+  CFLAGS = [ "-DHAVE_PARANOIA_NEW_INCLUDES" ];
+
+  NIX_CFLAGS_COMPILE = "-I${lib.getDev gst_all_1.gst-plugins-base}/include/gstreamer-1.0";
+
+  postInstall = ''
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+
+    install -m 444 data/${pname}.desktop $out/share/applications
+    install -d $out/share/pixmaps
+    installManPage data/${pname}.1
+  '';
+
+  meta = with lib; {
+    description = "A lightweight GTK+ music manager - fork of Consonance Music Manager";
+    homepage = "https://pragha-music-player.github.io/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ mbaeten ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/projectm/default.nix b/nixpkgs/pkgs/applications/audio/projectm/default.nix
index 8f4cfb499f2c..6ca8d55bb249 100644
--- a/nixpkgs/pkgs/applications/audio/projectm/default.nix
+++ b/nixpkgs/pkgs/applications/audio/projectm/default.nix
@@ -13,13 +13,13 @@
 
 mkDerivation rec {
   pname = "projectm";
-  version = "3.1.8";
+  version = "3.1.12";
 
   src = fetchFromGitHub {
     owner = "projectM-visualizer";
     repo = "projectM";
     rev = "v${version}";
-    sha256 = "17zyxj1q0zj17jskq8w9bn2ijn34ldvdq61wy01yf5wgngax2r4z";
+    sha256 = "sha256-oEfOx93JyR94II5NkUCvMwqxuV7ktpOHZ8PNMLCiqDw=";
   };
 
   nativeBuildInputs = [
@@ -56,7 +56,7 @@ mkDerivation rec {
     description = "Cross-platform Milkdrop-compatible music visualizer";
     license = lib.licenses.lgpl21;
     platforms = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ ajs124 ];
+    maintainers = with lib.maintainers; [ ];
     longDescription = ''
       The open-source project that reimplements the esteemed Winamp Milkdrop by Geiss in a more modern, cross-platform reusable library.
       Read an audio input and produces mesmerizing visuals, detecting tempo, and rendering advanced equations into a limitless array of user-contributed visualizations.
diff --git a/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix b/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
index 6a093c91daf8..72e8ba135dd3 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 rec {
   pname = "pt2-clone";
-  version = "1.28";
+  version = "1.29";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "pt2-clone";
     rev = "v${version}";
-    sha256 = "1c2x43f46l7556kl9y9qign0g6ywdkh7ywkzv6c9y63n68ph20x2";
+    sha256 = "sha256-xnw4UL30nUv/Ru6x/7d05gC0X9nREMdXO9QWBjVoIvo=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix b/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
index 843c131ea65b..9d1d6df1da50 100644
--- a/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
@@ -7,13 +7,13 @@ let
 
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "1.68";
+  version = "1.69";
 
   src = fetchFromGitHub {
     owner = "graysky2";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wrzfanwy18wyawpg8rfvfgjh3lwngqwmfpi4ww3530rfmi84cf0";
+    sha256 = "sha256-5WRhVIQlSwWuyvkzrnNW0rdVet9ZzM47gISJpznM8mU=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix b/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix
index 0ba926fab4f9..33b15e977e7a 100644
--- a/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -45,13 +46,15 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "pulseeffects";
-  version = "5.0.0";
+  # 5.0.3 crashes. Test carefully before updating.
+  # https://github.com/wwmm/pulseeffects/issues/927
+  version = "5.0.2";
 
   src = fetchFromGitHub {
     owner = "wwmm";
     repo = "pulseeffects";
     rev = "v${version}";
-    sha256 = "1zs13bivxlgcb24lz1pgmgy2chcjxnmn4lz7g1n0ygiaaj4c30xj";
+    sha256 = "14ir25q6bws26im6qmj3k6hkfdh5pc6mbvln7wkdwy5dv0vix3cm";
   };
 
   nativeBuildInputs = [
@@ -87,6 +90,15 @@ in stdenv.mkDerivation rec {
     zita-convolver
   ];
 
+  patches = [
+    (fetchpatch {
+      # Fix build failure.
+      # https://github.com/wwmm/pulseeffects/pull/934
+      url = "https://github.com/wwmm/pulseeffects/commit/ab7354a6850d23840b4c9af212dbebf4f31a562f.patch";
+      sha256 = "1hd05xn6sp0xs632mqgwk19hl40kh2f69mx5mgzahysrj057w22c";
+    })
+  ];
+
   postPatch = ''
     chmod +x meson_post_install.py
     patchShebangs meson_post_install.py
@@ -104,6 +116,8 @@ in stdenv.mkDerivation rec {
   BOOST_INCLUDEDIR = "${lib.getDev boost}/include";
   BOOST_LIBRARYDIR = "${lib.getLib boost}/lib";
 
+  separateDebugInfo = true;
+
   meta = with lib; {
     description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
     homepage = "https://github.com/wwmm/pulseeffects";
diff --git a/nixpkgs/pkgs/applications/audio/puredata/wrapper.nix b/nixpkgs/pkgs/applications/audio/puredata/wrapper.nix
index 80968e2700b4..3444ef9acbdc 100644
--- a/nixpkgs/pkgs/applications/audio/puredata/wrapper.nix
+++ b/nixpkgs/pkgs/applications/audio/puredata/wrapper.nix
@@ -7,7 +7,7 @@ in symlinkJoin {
 
   paths = [ puredata ] ++ plugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     wrapProgram $out/bin/pd \
diff --git a/nixpkgs/pkgs/applications/audio/qmidinet/default.nix b/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
index d7b4b8343213..ea5430a82a2f 100644
--- a/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
@@ -1,12 +1,12 @@
 { mkDerivation, lib, fetchurl, pkg-config, qtbase, qttools, alsaLib, libjack2 }:
 
 mkDerivation rec {
-  version = "0.6.3";
+  version = "0.9.1";
   pname = "qmidinet";
 
   src = fetchurl {
     url = "mirror://sourceforge/qmidinet/${pname}-${version}.tar.gz";
-    sha256 = "04jbvnf6yp9l0bhl1ym6zqkmaz8c2az3flq7qgflaxzj3isns1p1";
+    sha256 = "sha256-cDgF5hbjy5DzGn4Rlmb76XzRa2wURVwPu2rQRKENxQU=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/nixpkgs/pkgs/applications/audio/qmmp/default.nix b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
index b75af645bb38..25263f2a2cbd 100644
--- a/nixpkgs/pkgs/applications/audio/qmmp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
@@ -29,11 +29,11 @@
 # handle that.
 
 mkDerivation rec {
-  name = "qmmp-1.4.2";
+  name = "qmmp-1.4.4";
 
   src = fetchurl {
     url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
-    sha256 = "1kvzw0n90crg3dgy8834qrjv0zb3ia5cny7virax9ax73y653jfa";
+    sha256 = "sha256-sZRZVhCf2ceETuV4AULA0kVkuIMn3C+aYdKThqvPnVQ=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/qsynth/default.nix b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
index f708207cce91..417c478e9e5c 100644
--- a/nixpkgs/pkgs/applications/audio/qsynth/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
@@ -4,11 +4,11 @@
 
 mkDerivation  rec {
   pname = "qsynth";
-  version = "0.6.3";
+  version = "0.9.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
-    sha256 = "0xiqmpzpxjvh32vivfj6h33w0ahmyfjzjb41b6fnf92bbg9k6mqv";
+    sha256 = "sha256-VNcI5QOVacHBcI6psEvhm7+cOTpwr2pMVXmk7nMXNiY=";
   };
 
   nativeBuildInputs = [ autoconf pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix b/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix
index 3fb476b65cc4..8bc2553f521b 100644
--- a/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix
+++ b/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "16kanzp5i353x972zjkwgi3m8z90wc58613mlfzb0n01djdnm6k5";
   };
 
-  buildInputs = [ perlPackages.perl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perlPackages.perl ];
 
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/applications/audio/reaper/default.nix b/nixpkgs/pkgs/applications/audio/reaper/default.nix
index 212b4c716ffa..19def55a15c2 100644
--- a/nixpkgs/pkgs/applications/audio/reaper/default.nix
+++ b/nixpkgs/pkgs/applications/audio/reaper/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "6.21";
+  version = "6.25";
 
   src = fetchurl {
     url = "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_x86_64.tar.xz";
-    sha256 = "11nvfjfrri9y0k7n7psz3yk1l7mxp9f6yi69pq7hvn9d4n26p5vd";
+    sha256 = "0i1idlr4ar28wvwcvwn9hqzb63kki1x1995cr87a9slxfa7zcshb";
   };
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
@@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
+
     XDG_DATA_HOME="$out/share" ./install-reaper.sh \
       --install $out/opt \
       --integrate-user-desktop
@@ -57,6 +59,8 @@ stdenv.mkDerivation rec {
     mkdir $out/bin
     ln -s $out/opt/REAPER/reaper $out/bin/
     ln -s $out/opt/REAPER/reamote-server $out/bin/
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/renoise/default.nix b/nixpkgs/pkgs/applications/audio/renoise/default.nix
index 8d495b936292..fd9a9f00502d 100644
--- a/nixpkgs/pkgs/applications/audio/renoise/default.nix
+++ b/nixpkgs/pkgs/applications/audio/renoise/default.nix
@@ -14,7 +14,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "renoise";
-  version = "3.2.2";
+  version = "3.3.1";
 
   src =
     if stdenv.hostPlatform.system == "x86_64-linux" then
@@ -24,11 +24,11 @@ stdenv.mkDerivation rec {
               "https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
               "https://web.archive.org/web/https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
           ];
-          sha256 = "1v249kmyidx55kppk3sry7yg6hl1a91ixhnwz36h4y134fs7bkrl";
+          sha256 = "05baicks5dx278z2dx6h5n2vabsn64niwqssgys36xy469l9m1h0";
         }
         else
           releasePath
-    else throw "Platform is not supported by Renoise";
+    else throw "Platform is not supported. Use instalation native to your platform https://www.renoise.com/";
 
   buildInputs = [ alsaLib libjack2 libX11 libXcursor libXext libXrandr ];
 
@@ -47,6 +47,16 @@ stdenv.mkDerivation rec {
 
     mkdir $out/bin
     ln -s $out/renoise $out/bin/renoise
+
+    # Desktop item
+    mkdir -p $out/share/applications
+    cp -r Installer/renoise.desktop $out/share/applications/renoise.desktop
+
+    # Desktop item icons
+    mkdir -p $out/share/icons/hicolor/{48x48,64x64,128x128}/apps
+    cp Installer/renoise-48.png $out/share/icons/hicolor/48x48/apps/renoise.png
+    cp Installer/renoise-64.png $out/share/icons/hicolor/64x64/apps/renoise.png
+    cp Installer/renoise-128.png $out/share/icons/hicolor/128x128/apps/renoise.png
   '';
 
   postFixup = ''
@@ -61,6 +71,9 @@ stdenv.mkDerivation rec {
         --set-rpath $out/lib \
         $path
     done
+
+    substituteInPlace $out/share/applications/renoise.desktop \
+      --replace Exec=renoise Exec=$out/bin/renoise
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/audio/rosegarden/default.nix b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
index 5c7493ef7dba..b95e5fdc76d2 100644
--- a/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
@@ -3,12 +3,12 @@
 , liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }:
 
 stdenv.mkDerivation (rec {
-  version = "20.06";
+  version = "20.12";
   pname = "rosegarden";
 
   src = fetchurl {
     url = "mirror://sourceforge/rosegarden/${pname}-${version}.tar.bz2";
-    sha256 = "1i9x9rkqwwdrk77xl5ra8i48cjirbc7fbisnj0nnclccwaq0wk6r";
+    sha256 = "sha256-iGaEr8WFipV4I00fhFGI2xMBFPf784IIxNXs2hUTHFs=";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/rubyripper/default.nix b/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
index b7abfa40b863..e8a275db98d8 100644
--- a/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
   preConfigure = "patchShebangs .";
 
   configureFlags = [ "--enable-cli" ];
-  buildInputs = [ ruby cdparanoia makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ruby cdparanoia ];
   postInstall = ''
     wrapProgram "$out/bin/rrip_cli" \
       --prefix PATH : "${ruby}/bin" \
diff --git a/nixpkgs/pkgs/applications/audio/samplv1/default.nix b/nixpkgs/pkgs/applications/audio/samplv1/default.nix
index 4b06a99d4735..8f0a48081215 100644
--- a/nixpkgs/pkgs/applications/audio/samplv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/samplv1/default.nix
@@ -5,11 +5,11 @@
 
 mkDerivation rec {
   pname = "samplv1";
-  version = "0.9.18";
+  version = "0.9.20";
 
   src = fetchurl {
     url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz";
-    sha256 = "ePhM9OTLJp1Wa2D9Y1Dqq/69WlEhEp3ih9yNUIJU5Y4=";
+    sha256 = "sha256-9tm72lV9i/155TVweNwO2jpPsCJkh6r82g7Z1wCI1ho=";
   };
 
   nativeBuildInputs = [ qttools pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/seq66/default.nix b/nixpkgs/pkgs/applications/audio/seq66/default.nix
index 93f9e9503b95..71d70c2dd580 100644
--- a/nixpkgs/pkgs/applications/audio/seq66/default.nix
+++ b/nixpkgs/pkgs/applications/audio/seq66/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://github.com/ahlstromcj/seq66";
     description = "Loop based midi sequencer with Qt GUI derived from seq24 and sequencer64";
diff --git a/nixpkgs/pkgs/applications/audio/sfizz/default.nix b/nixpkgs/pkgs/applications/audio/sfizz/default.nix
index 85bc9e3542c6..153e52c82e17 100644
--- a/nixpkgs/pkgs/applications/audio/sfizz/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sfizz/default.nix
@@ -1,20 +1,49 @@
-{ lib, stdenv, fetchFromGitHub , cmake, libjack2, libsndfile, pkg-config }:
+{ lib, stdenv, fetchFromGitHub
+, libjack2, libsndfile, xorg, freetype, libxkbcommon
+, cairo, glib, gnome3, flac, libogg, libvorbis, libopus
+, cmake, pkg-config
+}:
 
 stdenv.mkDerivation rec {
   pname = "sfizz";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "sfztools";
     repo = pname;
     rev = version;
-    sha256 = "0zpmvmh7n0064rxfqxb7z9rnz493k7yq7nl0vxppqnasg97jn5f3";
+    sha256 = "sha256-3RdY5+BPsdk6vctDy24w5aJsVOV9qzSgXs62Pm5UEKs=";
     fetchSubmodules = true;
   };
 
+  buildInputs = [
+    libjack2
+    libsndfile
+    flac
+    libogg
+    libvorbis
+    libopus
+    xorg.libX11
+    xorg.libxcb
+    xorg.libXau
+    xorg.libXdmcp
+    xorg.xcbutil
+    xorg.xcbutilcursor
+    xorg.xcbutilrenderutil
+    xorg.xcbutilkeysyms
+    xorg.xcbutilimage
+    libxkbcommon
+    cairo
+    glib
+    gnome3.zenity
+    freetype
+  ];
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ libjack2 libsndfile ];
+  postPatch = ''
+  substituteInPlace editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp \
+    --replace '"/usr/bin/zenity' '"${gnome3.zenity}/bin/zenity'
+  '';
 
   cmakeFlags = [
     "-DCMAKE_BUILD_TYPE=Release"
diff --git a/nixpkgs/pkgs/applications/audio/shortwave/default.nix b/nixpkgs/pkgs/applications/audio/shortwave/default.nix
index a503d3b344cb..36ee6c12eef9 100644
--- a/nixpkgs/pkgs/applications/audio/shortwave/default.nix
+++ b/nixpkgs/pkgs/applications/audio/shortwave/default.nix
@@ -1,10 +1,11 @@
-{ lib
+{ stdenv
+, lib
 , fetchFromGitLab
-, cargo
 , dbus
 , desktop-file-utils
 , gdk-pixbuf
 , gettext
+, gitMinimal
 , glib
 , gst_all_1
 , gtk3
@@ -14,14 +15,12 @@
 , openssl
 , pkg-config
 , python3
-, rust
-, rustc
 , rustPlatform
 , sqlite
 , wrapGAppsHook
 }:
 
-rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
   pname = "shortwave";
   version = "1.1.1";
 
@@ -33,18 +32,24 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1vlhp2ss06j41simjrrjg38alp85jddhqyvccy6bhfzm0gzynwld";
   };
 
-  cargoSha256 = "181699rlpr5dszc18wg0kbss3gfskxaz9lpxpgsc4yfb6ip89qnk";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-0+KEbjTLecL0u/3S9FWf2r2h9ZrgcRTY163kS3NKJqA=";
+  };
 
   nativeBuildInputs = [
-    cargo
     desktop-file-utils
     gettext
+    gitMinimal
     glib # for glib-compile-schemas
     meson
     ninja
     pkg-config
     python3
-    rustc
+    rustPlatform.rust.cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.rustc
     wrapGAppsHook
   ];
 
@@ -63,12 +68,6 @@ rustPlatform.buildRustPackage rec {
     gst-plugins-bad
   ]);
 
-  # Don't use buildRustPackage phases, only use it for rust deps setup
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-
   postPatch = ''
     patchShebangs build-aux/meson/postinstall.py
   '';
diff --git a/nixpkgs/pkgs/applications/audio/snapcast/default.nix b/nixpkgs/pkgs/applications/audio/snapcast/default.nix
index 681601c7d884..18d073caba71 100644
--- a/nixpkgs/pkgs/applications/audio/snapcast/default.nix
+++ b/nixpkgs/pkgs/applications/audio/snapcast/default.nix
@@ -20,8 +20,8 @@ let
 
   aixlog = dependency {
     name    = "aixlog";
-    version = "1.4.0";
-    sha256  = "0f2bs5j1jjajcpa251dslnwkgglaam3b0cm6wdx5l7mbwvnmib2g";
+    version = "1.5.0";
+    sha256  = "09mnkrans9zmwfxsiwgkm0rba66c11kg5zby9x3rjic34gnmw6ay";
   };
 
   popl = dependency {
@@ -34,13 +34,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "snapcast";
-  version = "0.23.0";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner  = "badaix";
     repo   = "snapcast";
     rev    = "v${version}";
-    sha256 = "0183hhghzn0fhw2qzc1s009q7miabpcf0pxaqjdscsl8iivxqknd";
+    sha256 = "13yz8alplnqwkcns3mcli01qbyy6l3h62xx0v71ygcrz371l4g9g";
   };
 
   nativeBuildInputs = [ cmake pkg-config boost170.dev ];
@@ -64,6 +64,6 @@ stdenv.mkDerivation rec {
     description = "Synchronous multi-room audio player";
     homepage = "https://github.com/badaix/snapcast";
     maintainers = with maintainers; [ fpletz ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix b/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix
index 349f4636a798..c84aa039c52e 100644
--- a/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix
@@ -9,7 +9,7 @@
 , pkg-config
 , boost
 , bash
-, jack2Full
+, jack2
 , supercollider
 , qwt
 , osmid
@@ -102,7 +102,7 @@ mkDerivation rec {
   dontWrapQtApps = true;
   preFixup = ''
     wrapQtApp "$out/bin/sonic-pi" \
-      --prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2Full}/bin \
+      --prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2}/bin \
       --set AUBIO_LIB "${aubio}/lib/libaubio.so"
   '';
 
diff --git a/nixpkgs/pkgs/applications/audio/spectmorph/default.nix b/nixpkgs/pkgs/applications/audio/spectmorph/default.nix
index a368d62ce7d0..6292d771a512 100644
--- a/nixpkgs/pkgs/applications/audio/spectmorph/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spectmorph/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Allows to analyze samples of musical instruments, and to combine them (morphing) to construct hybrid sounds";
     homepage = "http://spectmorph.org";
diff --git a/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix b/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
new file mode 100644
index 000000000000..211e45f7b177
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub
+, lib
+, cmake
+, mkDerivation
+, libxcb
+, qtbase
+, qtsvg
+}:
+
+mkDerivation rec {
+   pname = "spotify-qt";
+   version = "3.5";
+
+   src = fetchFromGitHub {
+      owner = "kraxarn";
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "1bgd0q4sbbww3lbrx2zwgaz0sl7qh195s4kvgsq16gv7ij82bskn";
+   };
+
+   buildInputs = [ libxcb qtbase qtsvg ];
+
+   nativeBuildInputs = [ cmake ];
+
+   cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=" ];
+
+   installFlags = [ "DESTDIR=$(out)" ];
+
+   meta = with lib; {
+    description = "Lightweight unofficial Spotify client using Qt";
+    homepage = "https://github.com/kraxarn/spotify-qt";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ kiyengar ];
+    platforms = platforms.unix;
+   };
+}
diff --git a/nixpkgs/pkgs/applications/audio/spotify/default.nix b/nixpkgs/pkgs/applications/audio/spotify/default.nix
index 43ecb67d64a3..3be5af2755be 100644
--- a/nixpkgs/pkgs/applications/audio/spotify/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotify/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, lib, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
-, glib, pango, cairo, atk, gdk-pixbuf, gtk2, cups, nspr, nss, libpng, libnotify
+, glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss, libpng, libnotify
 , libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3
-, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa
+, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon
 }:
 
 let
@@ -10,14 +10,14 @@ let
   # If an update breaks things, one of those might have valuable info:
   # https://aur.archlinux.org/packages/spotify/
   # https://community.spotify.com/t5/Desktop-Linux
-  version = "1.1.46.916.g416cacf1";
+  version = "1.1.55.498.gf9a83c60";
   # To get the latest stable revision:
   # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
   # To get general information:
   # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
   # More examples of api usage:
   # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
-  rev = "43";
+  rev = "46";
 
   deps = [
     alsaLib
@@ -34,12 +34,13 @@ let
     freetype
     gdk-pixbuf
     glib
-    gtk2
+    gtk3
     libdrm
     libgcrypt
     libnotify
     libpng
     libpulseaudio
+    libxkbcommon
     mesa
     nss
     pango
@@ -78,10 +79,10 @@ stdenv.mkDerivation {
   # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
   src = fetchurl {
     url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
-    sha512 = "5b3d5d1f52a554c8e775b8aed16ef84e96bf3b61a2b53266e10d3c47e341899310af13cc8513b04424fc14532e36543a6fae677f80a036e3f51c75166d8d53d1";
+    sha512 = "dabb55d2ba41f977b6d3f03bfcf147d11785136dd1277efc62011c8371ef25cc04531266bd16608639b9b6a500c1a18a45f44ba7a43e17ab5ac139e36eff7149";
   };
 
-  buildInputs = [ squashfsTools makeWrapper ];
+  nativeBuildInputs = [ makeWrapper squashfsTools ];
 
   dontStrip = true;
   dontPatchELF = true;
diff --git a/nixpkgs/pkgs/applications/audio/spotifyd/default.nix b/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
index 776c9576bb46..3c4370d1614e 100644
--- a/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
@@ -1,24 +1,24 @@
 { lib, fetchFromGitHub, rustPackages, pkg-config, openssl
-, withALSA ? true, alsaLib ? null
-, withPulseAudio ? false, libpulseaudio ? null
-, withPortAudio ? false, portaudio ? null
+, withALSA ? true, alsaLib
+, withPulseAudio ? false, libpulseaudio
+, withPortAudio ? false, portaudio
 , withMpris ? false
 , withKeyring ? false
-, dbus ? null
+, dbus
 }:
 
 rustPackages.rustPlatform.buildRustPackage rec {
   pname = "spotifyd";
-  version = "0.3.0";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "Spotifyd";
     repo = "spotifyd";
     rev = "v${version}";
-    sha256 = "055njhy9if4qpsbgbr6615xxhcx9plava1m4l323vi4dbw09wh5r";
+    sha256 = "1a578h13iv8gqmskzlncfr42jlg5gp0zfcizv4wbd48y9hl8fh2l";
   };
 
-  cargoSha256 = "1ijrl208607abjwpr3cajcbj6sr35bk6ik778a58zf28kzdhrawc";
+  cargoSha256 = "1sm5yfgjx5xfnqqh1v8ycwzxw4kl6dq5gcvsdnc4h1cj3pdhbpcc";
 
   cargoBuildFlags = [
     "--no-default-features"
@@ -39,7 +39,8 @@ rustPackages.rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "An open source Spotify client running as a UNIX daemon";
     homepage = "https://github.com/Spotifyd/spotifyd";
-    license = with licenses; [ gpl3 ];
+    changelog = "https://github.com/Spotifyd/spotifyd/raw/v${version}/CHANGELOG.md";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ anderslundstedt Br1ght0ne marsam ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/applications/audio/strawberry/default.nix b/nixpkgs/pkgs/applications/audio/strawberry/default.nix
index eb7aac16c64a..76ed0e9cc1fe 100644
--- a/nixpkgs/pkgs/applications/audio/strawberry/default.nix
+++ b/nixpkgs/pkgs/applications/audio/strawberry/default.nix
@@ -35,13 +35,13 @@
 
 mkDerivation rec {
   pname = "strawberry";
-  version = "0.8.5";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "jonaski";
     repo = pname;
     rev = version;
-    sha256 = "sha256-+ZQ80J94Teqt4Gy6fw/pS7FwILK/TPehtJDy72Bdy1E=";
+    sha256 = "sha256:0d9asg21j9ai23sb35cimws8bd8fsnpha777rgscraa7i09q0rx2";
   };
 
   buildInputs = [
@@ -67,7 +67,6 @@ mkDerivation rec {
     libselinux
     libsepol
     p11-kit
-    util-linux
   ]
   ++ lib.optionals withGstreamer (with gst_all_1; [
     gstreamer
@@ -77,7 +76,11 @@ mkDerivation rec {
   ])
   ++ lib.optional withVlc libvlc;
 
-  nativeBuildInputs = [ cmake ninja pkg-config qttools ];
+  nativeBuildInputs = [
+    cmake ninja pkg-config qttools
+  ] ++ lib.optionals stdenv.isLinux [
+    util-linux
+  ];
 
   cmakeFlags = [
     "-DUSE_SYSTEM_TAGLIB=ON"
@@ -91,7 +94,7 @@ mkDerivation rec {
     description = "Music player and music collection organizer";
     homepage = "https://www.strawberrymusicplayer.org/";
     changelog = "https://raw.githubusercontent.com/jonaski/strawberry/${version}/Changelog";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ peterhoeg ];
     # upstream says darwin should work but they lack maintainers as of 0.6.6
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/sublime-music/default.nix b/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
index 1f74998166fb..f584b13a2922 100644
--- a/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3Packages, gobject-introspection, gtk3, pango, wrapGAppsHook
+{ fetchFromGitLab, lib, python3Packages, gobject-introspection, gtk3, pango, wrapGAppsHook
 , chromecastSupport ? false
 , serverSupport ? false
 , keyringSupport ? true
@@ -8,11 +8,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sublime-music";
-  version = "0.11.7";
+  version = "0.11.10";
 
-  src = python3Packages.fetchPypi {
-    inherit pname version;
-    sha256 = "1x6b02gw46gp6qcgv67j7k3gr1dpfczbyma6dxanag8pnpqrj8qi";
+  src = fetchFromGitLab {
+    owner = "sublime-music";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1g78gmiywg07kaywfc9q0yab2bzxs936vb3157ni1z0flbmcwrry";
   };
 
   nativeBuildInputs = [
@@ -30,6 +32,7 @@ python3Packages.buildPythonApplication rec {
   ;
 
   propagatedBuildInputs = with python3Packages; [
+    bleach
     dataclasses-json
     deepdiff
     fuzzywuzzy
@@ -52,12 +55,22 @@ python3Packages.buildPythonApplication rec {
 
   # no tests
   doCheck = false;
-  pythonImportsCheck = [ "sublime" ];
+  pythonImportsCheck = [ "sublime_music" ];
+
+  postInstall = ''
+    install -Dm444 sublime-music.desktop      -t $out/share/applications
+    install -Dm444 sublime-music.metainfo.xml -t $out/share/metainfo
+
+    for size in 16 22 32 48 64 72 96 128 192 512 1024; do
+        install -Dm444 logo/rendered/"$size".png \
+          $out/share/icons/hicolor/"$size"x"$size"/apps/sublime-music.png
+    done
+  '';
 
   meta = with lib; {
     description = "GTK3 Subsonic/Airsonic client";
     homepage = "https://sublimemusic.app/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ albakham ];
+    maintainers = with maintainers; [ albakham sumnerevans ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/sunvox/default.nix b/nixpkgs/pkgs/applications/audio/sunvox/default.nix
index abc31d9f1801..ef7133630b5e 100644
--- a/nixpkgs/pkgs/applications/audio/sunvox/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sunvox/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     sha256 = "0lqzr68n2c6aifw2vbyars91wn1chmgb9xfdk463g4vjqiava3ih";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   unpackPhase = "unzip $src";
 
@@ -44,5 +44,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.warmplace.ru/soft/sunvox/";
     maintainers = with maintainers; [ puffnfresh ];
     platforms = [ "i686-linux" "x86_64-linux" ];
+    # hash mismatch
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/surge/default.nix b/nixpkgs/pkgs/applications/audio/surge/default.nix
index 831253246947..ed15d49cfe03 100644
--- a/nixpkgs/pkgs/applications/audio/surge/default.nix
+++ b/nixpkgs/pkgs/applications/audio/surge/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "surge";
-  version = "1.7.1";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "surge-synthesizer";
     repo = pname;
     rev = "release_${version}";
-    sha256 = "1b3ccc78vrpzy18w7070zfa250dnd1bww147xxcnj457vd6n065s";
+    sha256 = "0lla860g7zgn9n1zgy14g4j72d5n5y7isyxz2w5xy2fzdpdg24ql";
     leaveDotGit = true; # for SURGE_VERSION
     fetchSubmodules = true;
   };
@@ -20,9 +20,10 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteInPlace src/common/SurgeStorage.cpp --replace "/usr/share/Surge" "$out/share/surge"
-    substituteInPlace src/common/gui/PopupEditorDialog.cpp --replace '"zenity' '"${zenity}/bin/zenity'
     substituteInPlace src/linux/UserInteractionsLinux.cpp --replace '"zenity' '"${zenity}/bin/zenity'
     substituteInPlace vstgui.surge/vstgui/lib/platform/linux/x11fileselector.cpp --replace /usr/bin/zenity ${zenity}/bin/zenity
+    patchShebangs scripts/linux/emit-vector-piggy
+    patchShebangs scripts/linux/generate-lv2-ttl
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/tetraproc/default.nix b/nixpkgs/pkgs/applications/audio/tetraproc/default.nix
index 1fe56096e951..b5012029480e 100644
--- a/nixpkgs/pkgs/applications/audio/tetraproc/default.nix
+++ b/nixpkgs/pkgs/applications/audio/tetraproc/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, makeWrapper
-, expat, fftwFloat, fontconfig, freetype, libjack2, jack2Full, libclthreads, libclxclient
+, expat, fftwFloat, fontconfig, freetype, libjack2, jack2, libclthreads, libclxclient
 , libsndfile, libxcb, xorg
 }:
 
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     # Make sure Jack is avalable in $PATH for tetraproc
-    wrapProgram $out/bin/tetraproc --prefix PATH : "${jack2Full}/bin"
+    wrapProgram $out/bin/tetraproc --prefix PATH : "${jack2}/bin"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/tuijam/default.nix b/nixpkgs/pkgs/applications/audio/tuijam/default.nix
deleted file mode 100644
index 8a08b64508d7..000000000000
--- a/nixpkgs/pkgs/applications/audio/tuijam/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ buildPythonApplication
-, fetchFromGitHub
-, lib
-, python3Packages
-, youtube-dl
-}:
-
-buildPythonApplication rec {
-  pname = "tuijam";
-  version = "unstable-2020-06-05";
-
-  src = fetchFromGitHub {
-    owner = "cfangmeier";
-    repo = pname;
-    rev = "7baec6f6e80ee90da0d0363b430dd7d5695ff03b";
-    sha256 = "1l0s88jvj99jkxnczw5nfj78m8vihh29g815n4mg9jblad23mgx5";
-  };
-
-  buildInputs = [ python3Packages.Babel ];
-
-  # the package has no tests
-  doCheck = false;
-
-  propagatedBuildInputs = with python3Packages; [
-    gmusicapi
-    google_api_python_client
-    mpv
-    pydbus
-    pygobject3
-    pyyaml
-    requests
-    rsa
-    urwid
-  ];
-
-  meta = with lib; {
-    description = "A fancy TUI client for Google Play Music";
-    longDescription = ''
-      TUIJam seeks to make a simple, attractive, terminal-based interface to
-      listening to music for Google Play Music All-Access subscribers.
-    '';
-    homepage    = "https://github.com/cfangmeier/tuijam";
-    license     = licenses.mit;
-    maintainers = with maintainers; [ kalbasit ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/vkeybd/default.nix b/nixpkgs/pkgs/applications/audio/vkeybd/default.nix
index 3409d8a49070..943bd0d8032b 100644
--- a/nixpkgs/pkgs/applications/audio/vkeybd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/vkeybd/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation  rec {
     sha256 = "0107b5j1gf7dwp7qb4w2snj4bqiyps53d66qzl2rwj4jfpakws5a";
   };
 
-  buildInputs = [ alsaLib libX11 makeWrapper tcl tk ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ alsaLib libX11 tcl tk ];
 
   configurePhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/applications/backup/pika-backup/borg-path.patch b/nixpkgs/pkgs/applications/backup/pika-backup/borg-path.patch
new file mode 100644
index 000000000000..c4ed649ffc92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/pika-backup/borg-path.patch
@@ -0,0 +1,13 @@
+diff --git a/src/borg/utils.rs b/src/borg/utils.rs
+index 4e30913..30d7d6f 100644
+--- a/src/borg/utils.rs
++++ b/src/borg/utils.rs
+@@ -223,7 +223,7 @@ impl BorgCall {
+     }
+ 
+     pub fn cmd(&self) -> Command {
+-        let mut cmd = Command::new("borg");
++        let mut cmd = Command::new("@borg@");
+ 
+         cmd.args(self.args())
+             .stderr(Stdio::piped())
diff --git a/nixpkgs/pkgs/applications/backup/pika-backup/default.nix b/nixpkgs/pkgs/applications/backup/pika-backup/default.nix
new file mode 100644
index 000000000000..f04a5a2d8bfb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/pika-backup/default.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, rustPlatform
+, substituteAll
+, desktop-file-utils
+, meson
+, ninja
+, pkg-config
+, python3
+, wrapGAppsHook
+, borgbackup
+, dbus
+, gdk-pixbuf
+, glib
+, gtk3
+, libhandy
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pika-backup";
+  version = "0.2.3";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "pika-backup";
+    rev = "v${version}";
+    sha256 = "sha256-jy22eyuzM2y7vByT3TOlAUuTKtPepkB9iiHQT1YGQ88=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "1ndcpgw18w3l5f7vv5vw8lxhgd5y1zxfarwnyfx13m7kcv8m3vyj";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./borg-path.patch;
+      borg = "${borgbackup}/bin/borg";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs build-aux
+  '';
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    python3
+    wrapGAppsHook
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  buildInputs = [
+    dbus
+    gdk-pixbuf
+    glib
+    gtk3
+    libhandy
+  ];
+
+  meta = with lib; {
+    description = "Simple backups based on borg";
+    homepage = "https://wiki.gnome.org/Apps/PikaBackup";
+    changelog = "https://gitlab.gnome.org/World/pika-backup/-/blob/v${version}/CHANGELOG.md";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/backup/vorta/default.nix b/nixpkgs/pkgs/applications/backup/vorta/default.nix
index a1b5944a51e1..c37bf0f20f79 100644
--- a/nixpkgs/pkgs/applications/backup/vorta/default.nix
+++ b/nixpkgs/pkgs/applications/backup/vorta/default.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "vorta";
-  version = "0.7.2";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "borgbase";
     repo = "vorta";
     rev = "v${version}";
-    sha256 = "1amq0fz3xrnxplzd6ih2azx6b4k1w496kcr7f8agfp617f5rkwa5";
+    sha256 = "sha256-qPO8qmXYDDFwV+8hAUyfF4Ins0vkwEJbw4JPguUSYOw=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix
index bd1c9611d561..f578313323c0 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix
@@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   meta = {
     description = "Peer-to-peer electronic cash system (Classic client)";
     longDescription= ''
diff --git a/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix b/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
index 3958a44cdafe..6952d9c00729 100644
--- a/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
-  dotnetPackages, dotnetCorePackages, writeScript, bash
+  dotnetPackages, dotnetCorePackages
 }:
 
 let
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "btcpayserver";
-  version = "1.0.5.9";
+  version = "1.0.7.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "011pp94i49fx587ng16m6ml63vwiysjvpkijihrk6xamz78zddgx";
+    sha256 = "1hxpbzc4l1zxrcvmdm93vvphhksfwd0mw2dv6h8vi4451p77dhd9";
   };
 
   nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix b/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
index 5ee5e2612115..b579fc8f7f89 100644
--- a/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
+++ b/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
@@ -1,8 +1,13 @@
 { fetchNuGet }: [
   (fetchNuGet {
+    name = "AngleSharp.Css";
+    version = "0.14.2";
+    sha256 = "1d34a8ab5dri4wlw07jvk7b1z0d0zizwihwpdfva3sxhb4279ahd";
+  })
+  (fetchNuGet {
     name = "AngleSharp";
-    version = "0.9.11";
-    sha256 = "17vf1bizskkxr8pf547lk2b48m12wv3si83gxk145i73bf9gi64a";
+    version = "0.14.0";
+    sha256 = "1zgwhh1fp2mmaplvpgm86rpmslix3wqfxf0d3hxx1gxwfgr6wxm6";
   })
   (fetchNuGet {
     name = "AWSSDK.Core";
@@ -15,24 +20,29 @@
     sha256 = "1lf1hfbx792dpa1hxgn0a0jrrvldd16hgbxx229dk2qcz5qlnc38";
   })
   (fetchNuGet {
+    name = "BIP78.Sender";
+    version = "0.2.0";
+    sha256 = "0gyynn15rc1x9p2703ffi4jnbpbd0k3wvg839xrk2skmaw8nxamf";
+  })
+  (fetchNuGet {
     name = "BTCPayServer.Hwi";
     version = "1.1.3";
     sha256 = "1c8hfnrjh2ad8qh75d63gsl170q8czf3j1hk8sv8fnbgnxdnkm7a";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.All";
-    version = "1.2.4";
-    sha256 = "1f4wgs8ijk1wmppz5lmas7l6m83szz57jyk6ak0dxhccdld9rdaj";
+    version = "1.2.7";
+    sha256 = "0jzmzvlpf6iba2fsc6cyi69vlaim9slqm2sapknmd7drl3gcn2zj";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.Charge";
-    version = "1.2.1";
-    sha256 = "0iv9frbr6xfxif3pnfd7c87y8mv31nqkdrnhvnaswrx43nv6s272";
+    version = "1.2.3";
+    sha256 = "1rdrwmijx0v4z0xsq4acyvdcj7hv6arfh3hwjy89rqnkkznrzgwv";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.CLightning";
-    version = "1.2.1";
-    sha256 = "14km69jzmnyqg19w27g6znml4z0xkm8l4j7rj0x36bw67cjmgahv";
+    version = "1.2.3";
+    sha256 = "02197rh03q8d0mv40zf67wp1rd2gbxi5l8krd2rzj84n267bcfvc";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.Common";
@@ -40,19 +50,24 @@
     sha256 = "17di8ndkw8z0ci0zk15mcrqpmganwkz9ys2snr2rqpw5mrlhpwa0";
   })
   (fetchNuGet {
+    name = "BTCPayServer.Lightning.Common";
+    version = "1.2.2";
+    sha256 = "07xb7fsqvfjmcawxylriw60i73h0cvfb765aznhp9ffyrmjaql7z";
+  })
+  (fetchNuGet {
     name = "BTCPayServer.Lightning.Eclair";
-    version = "1.2.0";
-    sha256 = "0w7nwsr0n2hrqak023xa294palsk3r96wlgw2ks8d3p5kxm8kskp";
+    version = "1.2.2";
+    sha256 = "03dymhwxb5s28kb187g5h4aysnz2xzml89p47nmwz9lkg2h4s73h";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.LND";
-    version = "1.2.1";
-    sha256 = "0ql4qyvz0rms6ls46pi3bgak3r6hj2c5ivnzahiq6cb84pbl61cr";
+    version = "1.2.4";
+    sha256 = "0qnj5rsp6hnybsr58zny9dfbsxksg1674q0z9944jwkzm7pcqyg4";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.Ptarmigan";
-    version = "1.2.0";
-    sha256 = "1yd6nhlssb9k08p5491knlwwjij9324ildir99sa9cp24rlq5nis";
+    version = "1.2.2";
+    sha256 = "17yl85vqfp7l12bv3f3w1b861hm41i7cfhs78gaq04s4drvcnj6k";
   })
   (fetchNuGet {
     name = "BuildBundlerMinifier";
@@ -75,11 +90,6 @@
     sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma";
   })
   (fetchNuGet {
-    name = "DBriize";
-    version = "1.0.1.3";
-    sha256 = "0rsm68hwq2ky8i6mv3ckdjkj4vjygnkgk3disva0skl3apk833dc";
-  })
-  (fetchNuGet {
     name = "DigitalRuby.ExchangeSharp";
     version = "0.6.3";
     sha256 = "1vb7ahafcd3lcbiiz552aisilwm1yq3j600gkf1wik8vhvsk02fs";
@@ -136,8 +146,18 @@
   })
   (fetchNuGet {
     name = "HtmlSanitizer";
-    version = "4.0.217";
-    sha256 = "0szay9mf5mmrp1hx0yc175aaalv76qg0j515lfs133j1d95lj26d";
+    version = "5.0.372";
+    sha256 = "1gllp58vdbql2ybwf05i2178x7p4g8zyyk64317d1pyss5217g7r";
+  })
+  (fetchNuGet {
+    name = "McMaster.NETCore.Plugins.Mvc";
+    version = "1.3.1";
+    sha256 = "1dh58ijwn6q6id0jpzr4hpfl0y4ak43zq4m8rsi5j2qv8vasq1mi";
+  })
+  (fetchNuGet {
+    name = "McMaster.NETCore.Plugins";
+    version = "1.3.1";
+    sha256 = "0jrp7sshnvg7jcb52gfhwmg1jy31k9dxdf4061yggwcgpfskyg7n";
   })
   (fetchNuGet {
     name = "Microsoft.AspNet.SignalR.Client";
@@ -211,11 +231,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.Bcl.AsyncInterfaces";
-    version = "1.1.0";
-    sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Bcl.AsyncInterfaces";
     version = "1.1.1";
     sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw";
   })
@@ -296,13 +311,13 @@
   })
   (fetchNuGet {
     name = "Microsoft.DotNet.PlatformAbstractions";
-    version = "3.1.4";
-    sha256 = "1s5h96zdc3vh1v03gizmqfw5hmksajw10bdrj79pm8brbyzipxia";
+    version = "3.1.0";
+    sha256 = "1fg1zggza45pa8zlcf8llqh6v47fqi44azsia68kmsg2q9r1r4mq";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Abstractions";
-    version = "3.1.0";
-    sha256 = "1bd6hilnwp47z3l14qspdxi5f5nhv6rivarc6w8wil425bq0h3pd";
+    name = "Microsoft.DotNet.PlatformAbstractions";
+    version = "3.1.4";
+    sha256 = "1s5h96zdc3vh1v03gizmqfw5hmksajw10bdrj79pm8brbyzipxia";
   })
   (fetchNuGet {
     name = "Microsoft.EntityFrameworkCore.Abstractions";
@@ -311,11 +326,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.EntityFrameworkCore.Analyzers";
-    version = "3.1.0";
-    sha256 = "1pjn4wwhxgsiap7byld114kx6m0nm6696r8drspqic7lskm4y305";
-  })
-  (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Analyzers";
     version = "3.1.4";
     sha256 = "1zaqn9z7ns6p6jgnffzkgpziqr2wqs68g2sa0c11kaclhlhgvvbv";
   })
@@ -346,31 +356,16 @@
   })
   (fetchNuGet {
     name = "Microsoft.EntityFrameworkCore";
-    version = "3.1.0";
-    sha256 = "1l12lsk1xfrv5pjnm0b9w9kncgdh0pcjcbxl4zrsg82s7bs7dhda";
-  })
-  (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore";
     version = "3.1.4";
     sha256 = "11w63yp7fk9qwmnq3lmpf1h30mlbzfx4zpm89vrs0lprj86g0742";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Caching.Abstractions";
-    version = "3.1.0";
-    sha256 = "0j5m2a48rwyzzvbz0hpr2md35iv78b86zyqjnrjq0y4vb7sairc0";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.Caching.Abstractions";
     version = "3.1.4";
     sha256 = "09f96pvpyzylpdaiw3lsvr7p6rs4i21mmhsxl6pkivg5lpfb79sk";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Caching.Memory";
-    version = "3.1.0";
-    sha256 = "1hi61647apn25kqjcb37nqafp8fikymdrk43j3kxjbwwwx507jy1";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.Caching.Memory";
     version = "3.1.4";
     sha256 = "0b8ijxjd8lgq8mgnvh3wl4y4wbjj3v5b763y6gslm75fn43iyad8";
   })
@@ -391,11 +386,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Configuration.Abstractions";
-    version = "3.1.0";
-    sha256 = "1f7h52kamljglx5k08ccryilvk6d6cvr9c26lcb6b2c091znzk0q";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Abstractions";
     version = "3.1.4";
     sha256 = "0r33m68y1vgpmqams4sgciizl0w6y97qkp93m0hyn0nlkxqf72l6";
   })
@@ -406,11 +396,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Configuration.Binder";
-    version = "3.1.0";
-    sha256 = "13jj7jxihiswmhmql7r5jydbca4x5qj6h7zq10z17gagys6dc7pw";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Binder";
     version = "3.1.4";
     sha256 = "1bnf213zlrh0m3sbhsv601yx21l5xp254jiy2g4hm7zpm8vsz1hz";
   })
@@ -441,11 +426,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Configuration";
-    version = "3.1.0";
-    sha256 = "1rszgz0rd5kvib5fscz6ss3pkxyjwqy0xpd4f2ypgzf5z5g5d398";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration";
     version = "3.1.4";
     sha256 = "0npc18pjl86d06czb0fy6ln3prfpwfb16p6709xx2jrsl96dp9bp";
   })
@@ -461,11 +441,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.DependencyInjection.Abstractions";
-    version = "3.1.0";
-    sha256 = "1pvms778xkyv1a3gfwrxnh8ja769cxi416n7pcidn9wvg15ifvbh";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
     version = "3.1.4";
     sha256 = "03ys96pqca93zwxvh0vprzms09i9y0lmq32w98m6klbizq01fc06";
   })
@@ -476,11 +451,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.DependencyInjection";
-    version = "3.1.0";
-    sha256 = "1xc61dy07bn2q73mx1z3ylrw80xpa682qjby13gklnqq636a3gab";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyInjection";
     version = "3.1.4";
     sha256 = "0rhyjgdpjm56drvrvqd9v1xq1qhyrpwwn2pjsz17g2s462rwliqx";
   })
@@ -491,6 +461,11 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.DependencyModel";
+    version = "3.1.0";
+    sha256 = "12nrdw3q9wl5zry8gb3sw003a0iyk2gvps2ij813l7lim38wy1mi";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyModel";
     version = "3.1.1";
     sha256 = "0qa04dspjl4qk7l8d66wqyrvhp5dxcfn2j4r8mmj362xyrp3r8sh";
   })
@@ -561,11 +536,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Logging.Abstractions";
-    version = "3.1.0";
-    sha256 = "1zyalrcksszmn9r5xjnirfh7847axncgzxkk3k5srbvlcch8fw8g";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
     version = "3.1.4";
     sha256 = "1rkl0yqmi5vfivn641866v2mdsgdy8amym546y6lzbab39g24b5n";
   })
@@ -581,11 +551,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Logging";
-    version = "3.1.0";
-    sha256 = "1d3yhqj1rav7vswm747j7w8fh8paybji4rz941hhlq4b12mfqfh4";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.Logging";
     version = "3.1.4";
     sha256 = "04asfrhfrcl3ijilry2pr28ql5m6pgrwapadikgcg66jjxbx75zq";
   })
@@ -601,11 +566,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Options";
-    version = "3.1.0";
-    sha256 = "0akccwhpn93a4qrssyb3rszdsp3j4p9hlxbsb7yhqb78xydaqhyh";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.Options";
     version = "3.1.4";
     sha256 = "0jphncx82l7jm5xi49dfxhbh24wv86sy44022chd7bkizllsypp4";
   })
@@ -631,11 +591,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Primitives";
-    version = "3.1.0";
-    sha256 = "1w1y22njywwysi8qjnj4m83qhbq0jr4mmjib0hfawz6cwamh7xrb";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.Primitives";
     version = "3.1.4";
     sha256 = "12xvysk024aghrcwzv4525vznnk8lqmknl2vqqxhq4k5hjxpsysp";
   })
@@ -670,6 +625,11 @@
     sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141";
   })
   (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.0";
+    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
+  })
+  (fetchNuGet {
     name = "Microsoft.NETCore.Targets";
     version = "1.0.1";
     sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
@@ -700,19 +660,19 @@
     sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
   })
   (fetchNuGet {
+    name = "Microsoft.Win32.SystemEvents";
+    version = "4.7.0";
+    sha256 = "0pjll2a62hc576hd4wgyasva0lp733yllmk54n37svz5ac7nfz0q";
+  })
+  (fetchNuGet {
     name = "MySqlConnector";
     version = "0.61.0";
     sha256 = "0b0mc41dsih4p1ky3kcmibsz4bw14w439nraq5732wjfkq2sqdxg";
   })
   (fetchNuGet {
     name = "NBitcoin.Altcoins";
-    version = "2.0.21";
-    sha256 = "0xmygiwjlia7fbxy63893jb15g6fxggxxr9bbm8znd9bs3jzp2g1";
-  })
-  (fetchNuGet {
-    name = "NBitcoin";
-    version = "5.0.33";
-    sha256 = "030q609b9lhapq4wfl1w3impjw5m40kz2rg1s9jn3bn8yjfmsi4a";
+    version = "2.0.28";
+    sha256 = "1zfirfmhgigp733km9rqkgz560h5wg88bpba499x49h5j650cnn4";
   })
   (fetchNuGet {
     name = "NBitcoin";
@@ -726,8 +686,13 @@
   })
   (fetchNuGet {
     name = "NBitcoin";
-    version = "5.0.60";
-    sha256 = "0pin4ldfz5lfxyd47mj1ypyp8lmj0v5nq5zvygdjna956vphd39v";
+    version = "5.0.67";
+    sha256 = "049marx1jwr7srlpqspimrqqgahh53gi2iyp7bpzn5npsbzh9v3h";
+  })
+  (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.73";
+    sha256 = "0vqgcb0ws5fnkrdzqfkyh78041c6q4l22b93rr0006dd4bmqrmg1";
   })
   (fetchNuGet {
     name = "NBitpayClient";
@@ -736,8 +701,8 @@
   })
   (fetchNuGet {
     name = "NBXplorer.Client";
-    version = "3.0.19";
-    sha256 = "0nahfxdsryf5snjy87770m51v2jcry02lmb10ilsg4h2ig4pjdk4";
+    version = "3.0.20";
+    sha256 = "1mwa6ncmg5r6q7yn6skm9dgqm631c7r7nadcg9mvbw81113h0xxy";
   })
   (fetchNuGet {
     name = "NETStandard.Library";
@@ -766,11 +731,6 @@
   })
   (fetchNuGet {
     name = "Newtonsoft.Json";
-    version = "11.0.1";
-    sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
-  })
-  (fetchNuGet {
-    name = "Newtonsoft.Json";
     version = "11.0.2";
     sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2";
   })
@@ -850,6 +810,11 @@
     sha256 = "1lv1ljaz8df835jgmp3ny1xgqqjf1s9f25baw7bf8d24qlf25i2g";
   })
   (fetchNuGet {
+    name = "QRCoder";
+    version = "1.4.1";
+    sha256 = "1xgwhpqrm4ycnj8nk4ibxfwkmkiwc5i15l1za3ci5alghlpcb6ch";
+  })
+  (fetchNuGet {
     name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
@@ -871,11 +836,6 @@
   })
   (fetchNuGet {
     name = "runtime.native.System.Net.Http";
-    version = "4.0.1";
-    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
-  })
-  (fetchNuGet {
-    name = "runtime.native.System.Net.Http";
     version = "4.3.0";
     sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
   })
@@ -950,9 +910,14 @@
     sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
   })
   (fetchNuGet {
+    name = "Selenium.Support";
+    version = "3.141.0";
+    sha256 = "1gqwzbfq7i9jz830b0jibsis0qfxs8sl10n1nja02c6s637cwzib";
+  })
+  (fetchNuGet {
     name = "Selenium.WebDriver.ChromeDriver";
-    version = "85.0.4183.8700";
-    sha256 = "0klyqmwa6yc0ibbmci51mzb2vl6n13qlk06chc9w78i0a43fs382";
+    version = "88.0.4324.9600";
+    sha256 = "0jm8dpfp329xsrg69lzq2m6x9yin1m43qgrhs15cz2qx9f02pdx9";
   })
   (fetchNuGet {
     name = "Selenium.WebDriver";
@@ -1066,11 +1031,6 @@
   })
   (fetchNuGet {
     name = "System.Collections.Immutable";
-    version = "1.7.0";
-    sha256 = "1gik4sn9jsi1wcy1pyyp0r4sn2g17cwrsh24b2d52vif8p2h24zx";
-  })
-  (fetchNuGet {
-    name = "System.Collections.Immutable";
     version = "1.7.1";
     sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
   })
@@ -1136,21 +1096,11 @@
   })
   (fetchNuGet {
     name = "System.Diagnostics.DiagnosticSource";
-    version = "4.0.0";
-    sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
-  })
-  (fetchNuGet {
-    name = "System.Diagnostics.DiagnosticSource";
     version = "4.3.0";
     sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
   })
   (fetchNuGet {
     name = "System.Diagnostics.DiagnosticSource";
-    version = "4.7.0";
-    sha256 = "0cr0v5dz8l5ackxv6b772fjcyj2nimqmrmzanjs4cw2668v568n1";
-  })
-  (fetchNuGet {
-    name = "System.Diagnostics.DiagnosticSource";
     version = "4.7.1";
     sha256 = "1mivaifniyrqwlnvzsfaxzrh2sd981bwzs3cbvs5wi7jjzbcqr4p";
   })
@@ -1180,6 +1130,11 @@
     sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
   })
   (fetchNuGet {
+    name = "System.Drawing.Common";
+    version = "4.7.0";
+    sha256 = "0yfw7cpl54mgfcylvlpvrl0c8r1b0zca6p7r3rcwkvqy23xqcyhg";
+  })
+  (fetchNuGet {
     name = "System.Dynamic.Runtime";
     version = "4.0.11";
     sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
@@ -1191,21 +1146,11 @@
   })
   (fetchNuGet {
     name = "System.Globalization.Calendars";
-    version = "4.0.1";
-    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
-  })
-  (fetchNuGet {
-    name = "System.Globalization.Calendars";
     version = "4.3.0";
     sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
   })
   (fetchNuGet {
     name = "System.Globalization.Extensions";
-    version = "4.0.1";
-    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
-  })
-  (fetchNuGet {
-    name = "System.Globalization.Extensions";
     version = "4.3.0";
     sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
   })
@@ -1301,11 +1246,6 @@
   })
   (fetchNuGet {
     name = "System.Net.Http";
-    version = "4.1.0";
-    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
-  })
-  (fetchNuGet {
-    name = "System.Net.Http";
     version = "4.3.0";
     sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
   })
@@ -1330,11 +1270,6 @@
     sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
   })
   (fetchNuGet {
-    name = "System.Net.Requests";
-    version = "4.0.11";
-    sha256 = "13mka55sa6dg6nw4zdrih44gnp8hnj5azynz47ljsh2791lz3d9h";
-  })
-  (fetchNuGet {
     name = "System.Net.Security";
     version = "4.3.0";
     sha256 = "1aa5igz31ivk6kpgsrwck3jccab7wd88wr52lddmgypmbh9mmf87";
@@ -1351,11 +1286,6 @@
   })
   (fetchNuGet {
     name = "System.Net.WebHeaderCollection";
-    version = "4.0.1";
-    sha256 = "10bxpxj80c4z00z3ksrfswspq9qqsw8jwxcbzvymzycb97m9b55q";
-  })
-  (fetchNuGet {
-    name = "System.Net.WebHeaderCollection";
     version = "4.3.0";
     sha256 = "0ms3ddjv1wn8sqa5qchm245f3vzzif6l6fx5k92klqpn7zf4z562";
   })
@@ -1596,21 +1526,11 @@
   })
   (fetchNuGet {
     name = "System.Security.Cryptography.Cng";
-    version = "4.2.0";
-    sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
-  })
-  (fetchNuGet {
-    name = "System.Security.Cryptography.Cng";
     version = "4.3.0";
     sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
   })
   (fetchNuGet {
     name = "System.Security.Cryptography.Csp";
-    version = "4.0.0";
-    sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
-  })
-  (fetchNuGet {
-    name = "System.Security.Cryptography.Csp";
     version = "4.3.0";
     sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
   })
@@ -1626,11 +1546,6 @@
   })
   (fetchNuGet {
     name = "System.Security.Cryptography.OpenSsl";
-    version = "4.0.0";
-    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
-  })
-  (fetchNuGet {
-    name = "System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
   })
@@ -1651,11 +1566,6 @@
   })
   (fetchNuGet {
     name = "System.Security.Cryptography.X509Certificates";
-    version = "4.1.0";
-    sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
-  })
-  (fetchNuGet {
-    name = "System.Security.Cryptography.X509Certificates";
     version = "4.3.0";
     sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
   })
@@ -1691,6 +1601,11 @@
   })
   (fetchNuGet {
     name = "System.Text.Encoding.CodePages";
+    version = "4.5.0";
+    sha256 = "19x38911pawq4mrxrm04l2bnxwxxlzq8v8rj4cbxnfjj8pnd3vj3";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
     version = "4.5.1";
     sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w";
   })
diff --git a/nixpkgs/pkgs/applications/blockchains/clightning.nix b/nixpkgs/pkgs/applications/blockchains/clightning.nix
index 745ac349975c..44ed4d1541c0 100644
--- a/nixpkgs/pkgs/applications/blockchains/clightning.nix
+++ b/nixpkgs/pkgs/applications/blockchains/clightning.nix
@@ -20,11 +20,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "0.9.3";
+  version = "0.10.0";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "b4563921ed8bccd59d32b031f81825dc57fbe90882f0ecd5da89e48b59ff18b2";
+    sha256 = "5154e67780dddbf12f64c4b1994c3ee3834236f05b6462adf25e8a5f3fa407ea";
   };
 
   nativeBuildInputs = [ autogen autoconf automake gettext libtool pkg-config py3 unzip which ];
diff --git a/nixpkgs/pkgs/applications/blockchains/crypto-org-wallet.nix b/nixpkgs/pkgs/applications/blockchains/crypto-org-wallet.nix
new file mode 100644
index 000000000000..be45967018d0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/crypto-org-wallet.nix
@@ -0,0 +1,33 @@
+{ lib, fetchurl, makeDesktopItem, appimageTools, imagemagick }:
+
+let
+  pname = "chain-desktop-wallet";
+  version = "0.1.1";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/crypto-com/${pname}/releases/download/v${version}/${name}-x86_64.AppImage";
+    sha256 = "12076hf8dlz0hg1pb2ixwlslrh8gi6s1iawnvhnn6vz4jmjvq356";
+  };
+
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+in appimageTools.wrapType2 rec {
+  inherit name src;
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+    install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
+    ${imagemagick}/bin/convert ${appimageContents}/${pname}.png -resize 512x512 ${pname}_512.png
+    install -m 444 -D ${pname}_512.png $out/share/icons/hicolor/512x512/apps/${pname}.png
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun --no-sandbox %U' "Exec=$out/bin/${pname}"
+  '';
+
+  meta = with lib; {
+    description = "Crypto.org Chain desktop wallet (Beta)";
+    homepage = "https://github.com/crypto-com/chain-desktop-wallet";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ th0rgal ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/ergo/default.nix b/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
index 3c5bc5ea5ced..597db2ae8ffb 100644
--- a/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ergo";
-  version = "3.3.6";
+  version = "4.0.8";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "1zi559ixjxxsrpvvjbxa1d0g96px3h9amjvy149sfhp7b8w5hhk3";
+    sha256 = "sha256-swU4CnX2BxL3ILH/sXux8ZHMo5nAPLQOIiWmr4C8BOQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
index 776253ac9cdd..0f99f28b42f6 100644
--- a/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
+++ b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
@@ -1,21 +1,34 @@
 { lib, stdenv, buildGoModule, fetchFromGitHub, libobjc, IOKit }:
 
-buildGoModule rec {
+let
+  # A list of binaries to put into separate outputs
+  bins = [
+    "geth"
+  ];
+
+in buildGoModule rec {
   pname = "go-ethereum";
-  version = "1.9.25";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cbgqs17agwdap4g37sb2g6mhyn7qkqbjk7kwb5jvj8nbi5n3kbd";
+    sha256 = "sha256-4lHT0P8Euau0AJNtg1YstJJRQ58WTUlIH+HCKEjCq/s=";
   };
 
   runVend = true;
-  vendorSha256 = "08wgah8gxb5bscm5ca6zkfgssnmw2y2l6k9gfw7gbxyflsx74lya";
+  vendorSha256 = "sha256-DgyOvplk1JWn6D/z4zbXHLNLuAVQ5beEHi0NuSv236A=";
 
   doCheck = false;
 
+  outputs = [ "out" ] ++ bins;
+
+  # Move binaries to separate outputs and symlink them back to $out
+  postInstall = lib.concatStringsSep "\n" (
+    builtins.map (bin: "mkdir -p \$${bin}/bin && mv $out/bin/${bin} \$${bin}/bin/ && ln -s \$${bin}/bin/${bin} $out/bin/") bins
+  );
+
   subPackages = [
     "cmd/abidump"
     "cmd/abigen"
@@ -40,7 +53,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://geth.ethereum.org/";
     description = "Official golang implementation of the Ethereum protocol";
-    license = with licenses; [ lgpl3 gpl3 ];
+    license = with licenses; [ lgpl3Plus gpl3Plus ];
     maintainers = with maintainers; [ adisbladis lionello xrelkd RaghavSood ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index d130b3d04541..2dea189dca40 100644
--- a/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -1,13 +1,13 @@
-{ lib, fetchurl, makeDesktopItem, appimageTools, imagemagick }:
+{ lib, fetchurl, appimageTools, imagemagick }:
 
 let
   pname = "ledger-live-desktop";
-  version = "2.21.3";
+  version = "2.24.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    sha256 = "11r6gwzg5qym7h40d8mrpw8c6zbdi534c2y7ghy2k0a4k3ybk8x1";
+    sha256 = "1xdqj825vwh3kg35v7568zr1jhvldb4wcazzgzcaawkr4qzfdb2n";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/blockchains/lnd.nix b/nixpkgs/pkgs/applications/blockchains/lnd.nix
index f5c1329090f5..147d826dfa6f 100644
--- a/nixpkgs/pkgs/applications/blockchains/lnd.nix
+++ b/nixpkgs/pkgs/applications/blockchains/lnd.nix
@@ -1,18 +1,18 @@
 { buildGoModule
 , fetchFromGitHub
 , lib
-, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" ]
+, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" "routerrpc" ]
 }:
 
 buildGoModule rec {
   pname = "lnd";
-  version = "0.12.0-beta";
+  version = "0.12.1-beta";
 
   src = fetchFromGitHub {
     owner = "lightningnetwork";
     repo = "lnd";
     rev = "v${version}";
-    sha256 = "0mjfmmi5d5d2hny3938rxxdgar3qyk6x909l25fvjr4q3l4sz4x0";
+    sha256 = "0ly6909cg0qzdsp9idp1g7zqd6liw7f142d7n7vga64s1ksvv6lx";
   };
 
   vendorSha256 = "00q8dydskzg4rhxnnpzpbmmvc3q4wzm8z3dps2bv0nx3fk0fmrl3";
diff --git a/nixpkgs/pkgs/applications/blockchains/lndmanage.nix b/nixpkgs/pkgs/applications/blockchains/lndmanage.nix
new file mode 100644
index 000000000000..56db469ff453
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/lndmanage.nix
@@ -0,0 +1,44 @@
+{ lib, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "lndmanage";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "bitromortac";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "19sqf7cjslwpfzcdbyq182dx7gnn9hii77sahbnh88v69qxgwzvb";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    cycler
+    decorator
+    googleapis-common-protos
+    grpcio
+    grpcio-tools
+    kiwisolver
+    networkx
+    numpy
+    protobuf
+    pyparsing
+    python-dateutil
+    six
+    pygments
+  ];
+
+  preBuild = ''
+    substituteInPlace setup.py --replace '==' '>='
+  '';
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  meta = with lib; {
+    description = "Channel management tool for lightning network daemon (LND) operators";
+    homepage = "https://github.com/bitromortac/lndmanage";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmilata ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
index 9bf1ca586c26..5f430bc8869e 100644
--- a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
@@ -10,15 +10,13 @@
 , randomx, zeromq, libgcrypt, libgpgerror
 , hidapi, rapidjson, quirc
 , trezorSupport ? true
-,   libusb1  ? null
-,   protobuf ? null
-,   python3  ? null
+,   libusb1
+,   protobuf
+,   python3
 }:
 
 with lib;
 
-assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
-
 let
   arch = if stdenv.isx86_64  then "x86-64"
     else if stdenv.isi686    then "i686"
diff --git a/nixpkgs/pkgs/applications/blockchains/monero/default.nix b/nixpkgs/pkgs/applications/blockchains/monero/default.nix
index 41931bc9ec3d..3be8b908c7a2 100644
--- a/nixpkgs/pkgs/applications/blockchains/monero/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/monero/default.nix
@@ -63,6 +63,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://getmonero.org/";
     license     = licenses.bsd3;
     platforms   = platforms.all;
-    maintainers = with maintainers; [ ehmry rnhmjoj ];
+    maintainers = with maintainers; [ rnhmjoj ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix b/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix
index b884f044efe0..17e884c5794e 100644
--- a/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix
@@ -1,5 +1,5 @@
 { lib, appimageTools, fetchurl, makeDesktopItem
-, gsettings-desktop-schemas, gtk2
+, gsettings-desktop-schemas, gtk3
 }:
 
 let
@@ -30,7 +30,7 @@ in appimageTools.wrapType2 rec {
   inherit name src;
 
   profile = ''
-    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk2}/share/gsettings-schemas/${gtk2.name}:$XDG_DATA_DIRS
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
   '';
 
   multiPkgs = null; # no p32bit needed
diff --git a/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch b/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch
deleted file mode 100644
index 5bbec1d39bea..000000000000
--- a/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b43f02f6..4470abbf 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -119,7 +119,7 @@ endif (RAIBLOCKS_SECURE_RPC)
- 
- include_directories (${CMAKE_SOURCE_DIR})
- 
--set(Boost_USE_STATIC_LIBS        ON)
-+add_definitions(-DBOOST_LOG_DYN_LINK)
- set(Boost_USE_MULTITHREADED      ON)
- 
- if (BOOST_CUSTOM)
diff --git a/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix b/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix
index 60ad51152f69..0e39587fabb3 100644
--- a/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix
@@ -1,28 +1,24 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, wrapQtAppsHook, boost, libGL
-, qtbase}:
+, qtbase, python }:
 
 stdenv.mkDerivation rec {
 
   pname = "nano-wallet";
-  version = "20.0";
+  version = "21.3";
 
   src = fetchFromGitHub {
     owner = "nanocurrency";
-    repo = "raiblocks";
+    repo = "nano-node";
     rev = "V${version}";
-    sha256 = "12nrjjd89yjzx20d85ccmp395pl0djpx0x0qb8dgka8xfy11k7xn";
+    sha256 = "0f6chl5vrzdr4w8g3nivfxk3qm6m11js401998afnhz0xaysm4pm";
     fetchSubmodules = true;
   };
 
-  # Use a patch to force dynamic linking
-  patches = [
-    ./CMakeLists.txt.patch
-  ];
-
   cmakeFlags = let
     options = {
+      PYTHON_EXECUTABLE = "${python}/bin/python";
+      NANO_SHARED_BOOST = "ON";
       BOOST_ROOT = boost;
-      Boost_USE_STATIC_LIBS = "OFF";
       RAIBLOCKS_GUI = "ON";
       RAIBLOCKS_TEST = "ON";
       Qt5_DIR = "${qtbase.dev}/lib/cmake/Qt5";
@@ -37,17 +33,15 @@ stdenv.mkDerivation rec {
   buildInputs = [ boost libGL qtbase ];
 
   buildPhase = ''
+    runHook preBuild
     make nano_wallet
-  '';
-
-  # Move executables under bin directory
-  postInstall = ''
-    mkdir -p $out/bin
-    mv $out/nano* $out/bin/
+    runHook postBuild
   '';
 
   checkPhase = ''
+    runHook preCheck
     ./core_test
+    runHook postCheck
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix b/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
index 45143a797e5b..ffa061edc727 100644
--- a/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "nbxplorer";
-  version = "2.1.46";
+  version = "2.1.49";
 
   src = fetchFromGitHub {
     owner = "dgarage";
     repo = "NBXplorer";
     rev = "v${version}";
-    sha256 = "1aph7yiwmch7s7x1qkzqv1shs3v6kg8i2s7266la0yp9ksf3w35p";
+    sha256 = "0xg5gbq6rbzgsbgwf94qcy2b0m5kdspi6hc5a64smaj9i7i0136l";
   };
 
   nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix b/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
index 85d395089de1..b0bf85f623f7 100644
--- a/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
@@ -181,23 +181,18 @@
   })
   (fetchNuGet {
     name = "NBitcoin.Altcoins";
-    version = "2.0.21";
-    sha256 = "0xmygiwjlia7fbxy63893jb15g6fxggxxr9bbm8znd9bs3jzp2g1";
+    version = "2.0.28";
+    sha256 = "1zfirfmhgigp733km9rqkgz560h5wg88bpba499x49h5j650cnn4";
   })
   (fetchNuGet {
     name = "NBitcoin.TestFramework";
-    version = "2.0.12";
-    sha256 = "1d6lmymc9x3p74c8hc2x3m61ncnkqqgrddw9cw2m0zkvilkncsns";
-  })
-  (fetchNuGet {
-    name = "NBitcoin";
-    version = "5.0.58";
-    sha256 = "0qim9xbbj380254iyi1jsh2gnr90ddwd2593jw9a8bjwnlk7qr2c";
+    version = "2.0.21";
+    sha256 = "1k26fkss6d7x2yqlid31z5i04b5dmlbbbwijg9c8i3d996i1z7sq";
   })
   (fetchNuGet {
     name = "NBitcoin";
-    version = "5.0.60";
-    sha256 = "0pin4ldfz5lfxyd47mj1ypyp8lmj0v5nq5zvygdjna956vphd39v";
+    version = "5.0.73";
+    sha256 = "0vqgcb0ws5fnkrdzqfkyh78041c6q4l22b93rr0006dd4bmqrmg1";
   })
   (fetchNuGet {
     name = "NETStandard.Library";
@@ -221,8 +216,8 @@
   })
   (fetchNuGet {
     name = "Newtonsoft.Json";
-    version = "11.0.1";
-    sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
+    version = "11.0.2";
+    sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2";
   })
   (fetchNuGet {
     name = "Newtonsoft.Json";
diff --git a/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix b/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
index 8ad7c8fdd6c9..e4d8d72fb4cb 100644
--- a/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "openethereum";
-  version = "3.1.1";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "openethereum";
     repo = "openethereum";
     rev = "v${version}";
-    sha256 = "sha256-RUrJuJF0R0mc7XdLyk915fRWtMfzjp5QE6oeWxHfyEQ=";
+    sha256 = "sha256-+bzMo0s+wdp8T/YjPk6mrPSPid1G8WScB8FJhXdL9JQ=";
   };
 
-  cargoSha256 = "sha256-b+winsCzU0sXGDX6nUtWq4JrIyTcJ3uva7RlV5VsXfk=";
+  cargoSha256 = "sha256-ibjjJ5zGF6wbO24/RoYKsTYsMNXHb1EdekDwSICPc5g=";
 
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
   nativeBuildInputs = [
@@ -37,8 +37,14 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = [ "--features final" ];
 
-  # test result: FAILED. 88 passed; 13 failed; 0 ignored; 0 measured; 0 filtered out
-  doCheck = false;
+  # Fix tests by preventing them from writing to /homeless-shelter.
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # Exclude some tests that don't work in the sandbox
+  # - Nat test requires network access
+  checkFlags = "--skip configuration::tests::should_resolve_external_nat_hosts";
 
   meta = with lib; {
     description = "Fast, light, robust Ethereum implementation";
diff --git a/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix b/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix
index feced9eecb01..99bc49e8db33 100644
--- a/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix
+++ b/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix
@@ -17,11 +17,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "particl-core";
-  version = "0.19.2.3";
+  version = "0.19.2.5";
 
   src = fetchurl {
     url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
-    sha256 = "sha256-nAsQvYWUejSu/4MMIwZhlV5Gjza/Da4jcp6/01lppvg=";
+    sha256 = "sha256-uI4T8h6RvCikk8h/sZmGlj3Uj3Xhu0vDn/fPb6rLcSg=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
index 9a5a1faac5ac..4436264ba261 100644
--- a/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
@@ -7,16 +7,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "polkadot";
-  version = "0.8.28-1";
+  version = "0.8.29";
 
   src = fetchFromGitHub {
     owner = "paritytech";
     repo = "polkadot";
     rev = "v${version}";
-    sha256 = "sha256-a+w/909PZuHsgIQEtO2IWQijsERfAKJUZ8K30+PhD3k=";
+    sha256 = "sha256-O5GIbX7qp+Te5QQuqytC9rsQJ5FuXtUl5h2DZXsfMPk=";
   };
 
-  cargoSha256 = "sha256-Zz844XDx5qj2hQlf99uvHV6e5wmDAlYh3zBvcpdoiIo=";
+  cargoSha256 = "sha256-4VmRIrd79odnYrHuBLdFwere+7bvtUI3daVs3ZUKsdY=";
 
   nativeBuildInputs = [ clang ];
 
@@ -35,8 +35,8 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "Polkadot Node Implementation";
     homepage = "https://polkadot.network";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ akru andresilva RaghavSood ];
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ akru andresilva asymmetric RaghavSood ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
index d85e7dcfebfd..e86d145bdf41 100644
--- a/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wasabiwallet";
-  version = "1.1.12.3";
+  version = "1.1.12.5";
 
   src = fetchurl {
     url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
-    sha256 = "1x4gqmiwdp5bjq7c5hjch3srsvf73d92lswnp355l7l7cxh2hcsx";
+    sha256 = "sha256-6KIsSsCAyZ6uYSbDBIKdtM4adGOttvJ78obCptcd57s=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/applications/blockchains/zcash/default.nix b/nixpkgs/pkgs/applications/blockchains/zcash/default.nix
index 6a8bebf6178e..77601aa3d563 100644
--- a/nixpkgs/pkgs/applications/blockchains/zcash/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/zcash/default.nix
@@ -1,23 +1,25 @@
 { rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper
-, cargo, pkg-config
-, bash, curl, coreutils, boost17x, db62, libsodium, libevent, utf8cpp, util-linux
+, fetchpatch, cargo, pkg-config, curl, coreutils, boost174, db62, hexdump
+, libsodium, libevent, utf8cpp, util-linux, withWallet ? true, withDaemon ? true
+, withUtils ? true
 }:
 
-rustPlatform.buildRustPackage rec {
+rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
   pname = "zcash";
-  version = "4.1.1";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
     owner = "zcash";
     repo  = "zcash";
     rev = "v${version}";
-    sha256 = "185zrw276g545np0niw5hlhlppkjbf5a1r4rwhnbaimdjdii2dil";
+    sha256 = "00pn1jw8j90y7i8nc92b51znz4gczphvdzbkbcjx63cf6vk7v4ks";
   };
 
-  cargoSha256 = "0qxr6asf8zsya0f1ri39z2cnfpjk96hgwjchz2c7j87vibbvg6dc";
+  cargoSha256 = "1rl9sjbvpfrv1mlyb04vw1935qx0kz9cs177xl7izdva1ixk9blr";
 
-  nativeBuildInputs = [ autoreconfHook cargo makeWrapper pkg-config ];
-  buildInputs = [ bash boost17x db62 libevent libsodium utf8cpp ];
+  nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ];
+  buildInputs = [ boost174 libevent libsodium utf8cpp ]
+    ++ lib.optional withWallet db62;
 
   # Use the stdenv default phases (./configure; make) instead of the
   # ones from buildRustPackage.
@@ -26,6 +28,14 @@ rustPlatform.buildRustPackage rec {
   checkPhase = "checkPhase";
   installPhase = "installPhase";
 
+  patches = [
+    # See https://github.com/zcash/zcash/pull/5015
+    (fetchpatch {
+      url = "https://github.com/zcash/zcash/commit/a0ac27ec6ed434a233c7ad2468258f6e6e7e9688.patch";
+      sha256 = "0pmx1spql9p8vvpjgw7qf3qy46f4mh9ni16bq4ss1xz1z9zgjc4k";
+    })
+  ];
+
   postPatch = ''
     # Have to do this here instead of in preConfigure because
     # cargoDepsCopy gets unset after postPatch.
@@ -34,10 +44,12 @@ rustPlatform.buildRustPackage rec {
 
   configureFlags = [
     "--disable-tests"
-    "--with-boost-libdir=${lib.getLib boost17x}/lib"
+    "--with-boost-libdir=${lib.getLib boost174}/lib"
     "CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp"
     "RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
-  ];
+  ] ++ lib.optional (!withWallet) "--disable-wallet"
+    ++ lib.optional (!withDaemon) "--without-daemon"
+    ++ lib.optional (!withUtils) "--without-utils";
 
   enableParallelBuilding = true;
 
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 d1cd2e7d3e41..72f386798709 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lightdm-mini-greeter";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "prikhi";
     repo = "lightdm-mini-greeter";
     rev = version;
-    sha256 = "10hga7pmfyjdvj4xwm3djwrhk50brcpycj3p3c57pa0vnx4ill3s";
+    sha256 = "sha256-Pm7ExfusFIPktX2C4UE07qgOVhcWhVxnaD3QARpmu7Y=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
index 6a96f560ddcb..be9ba0f75616 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
@@ -101,6 +101,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  dontWrapQtApps = true;
+
   preConfigure = "NOCONFIGURE=1 ./autogen.sh";
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
index 90f7a03d0dd2..b012699a16ba 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
@@ -9,7 +9,7 @@
 , useGTK2 ? false
 , gtk2
 , gtk3 # gtk3 seems better supported
-, exo
+, xfce4-dev-tools
 , at-spi2-core
 , librsvg
 , hicolor-icon-theme
@@ -31,8 +31,8 @@ stdenv.mkDerivation rec {
     sha256 = "1g7wc3d3vqfa7mrdhx1w9ywydgjbffla6rbrxq9k3sc62br97qms";
   };
 
-  nativeBuildInputs = [ pkg-config intltool wrapGAppsHook ];
-  buildInputs = [ lightdm exo librsvg hicolor-icon-theme ]
+  nativeBuildInputs = [ pkg-config intltool xfce4-dev-tools wrapGAppsHook ];
+  buildInputs = [ lightdm librsvg hicolor-icon-theme ]
     ++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]);
 
   configureFlags = [
@@ -42,6 +42,13 @@ stdenv.mkDerivation rec {
     "--sbindir=${placeholder "out"}/bin" # for wrapGAppsHook to wrap automatically
   ] ++ lib.optional useGTK2 "--with-gtk2";
 
+  postPatch = ''
+    # exo-csource has been dropped from exo, and replaced by xdt-csource from xfce4-dev-tools
+    for f in configure.ac src/Makefile.am; do
+      substituteInPlace $f --replace exo-csource xdt-csource
+    done
+  '';
+
   preConfigure = ''
     configureFlagsArray+=( --enable-at-spi-command="${at-spi2-core}/libexec/at-spi-bus-launcher --launch-immediately" )
   '';
@@ -66,7 +73,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://launchpad.net/lightdm-gtk-greeter";
     platforms = platforms.linux;
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/display-managers/sddm/default.nix b/nixpkgs/pkgs/applications/display-managers/sddm/default.nix
index f43d3ca9be38..029501c7787a 100644
--- a/nixpkgs/pkgs/applications/display-managers/sddm/default.nix
+++ b/nixpkgs/pkgs/applications/display-managers/sddm/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitHub
+{ mkDerivation, lib, fetchFromGitHub, fetchpatch
 , cmake, extra-cmake-modules, pkg-config, libxcb, libpthreadstubs
 , libXdmcp, libXau, qtbase, qtdeclarative, qtquickcontrols2, qttools, pam, systemd
 }:
@@ -19,6 +19,12 @@ in mkDerivation {
 
   patches = [
     ./sddm-ignore-config-mtime.patch
+    # Load `/etc/profile` for `environment.variables` with zsh default shell.
+    # See: https://github.com/sddm/sddm/pull/1382
+    (fetchpatch {
+      url = "https://github.com/sddm/sddm/commit/e1dedeeab6de565e043f26ac16033e613c222ef9.patch";
+      sha256 = "sha256-OPyrUI3bbH+PGDBfoL4Ohb4wIvmy9TeYZhE0JxR/D58=";
+    })
   ];
 
   postPatch =
diff --git a/nixpkgs/pkgs/applications/editors/android-studio/common.nix b/nixpkgs/pkgs/applications/editors/android-studio/common.nix
index 1c3c4aade5ff..678d6a0a3532 100644
--- a/nixpkgs/pkgs/applications/editors/android-studio/common.nix
+++ b/nixpkgs/pkgs/applications/editors/android-studio/common.nix
@@ -65,15 +65,15 @@ let
       sha256 = sha256Hash;
     };
 
+    nativeBuildInputs = [ unzip ];
     buildInputs = [
       makeWrapper
-      unzip
     ];
     installPhase = ''
       cp -r . $out
       wrapProgram $out/bin/studio.sh \
+        --set-default JAVA_HOME "$out/jre" \
         --set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
-        --set JAVA_HOME "$out/jre" \
         --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \
         --set FONTCONFIG_FILE ${fontsConf} \
         --prefix PATH : "${lib.makeBinPath [
diff --git a/nixpkgs/pkgs/applications/editors/android-studio/default.nix b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
index 1dc8b9ca7ff4..466dfb2516e1 100644
--- a/nixpkgs/pkgs/applications/editors/android-studio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
@@ -9,18 +9,18 @@ let
     inherit buildFHSUserEnv;
   };
   stableVersion = {
-    version = "4.1.2.0"; # "Android Studio 4.1.2"
-    build = "201.7042882";
-    sha256Hash = "1f9bclvyvm3sg9an7wxlfwd8jwnb9cl726dvggmysa6r7shc7xw9";
+    version = "4.1.3.0"; # "Android Studio 4.1.3"
+    build = "201.7199119";
+    sha256Hash = "06xwgk7bwcmljka8xa56cfwwg858r0bl0xp2jb9hdnkwljf796gm";
   };
   betaVersion = {
-    version = "4.2.0.20"; # "Android Studio 4.2 Beta 4"
-    build = "202.7094744";
-    sha256Hash = "10c4qfq6d9ggs88s8h3pryhlnzw17m60qci78rjbh32wmm02sciz";
+    version = "4.2.0.22"; # "Android Studio 4.2 Beta 6"
+    build = "202.7188722";
+    sha256Hash = "0mzwkx1csx194wzg7dc1cii3c16wbmlbq1jdv9ly4nmdxlvc2rxb";
   };
   latestVersion = { # canary & dev
-    version = "2020.3.1.5"; # "Android Studio Arctic Fox (2020.3.1) Canary 5"
-    sha256Hash = "0x749sbg7qa5ncwwaywcldlhyyyyfh05bms2czz1rv6h7zgq16vq";
+    version = "2020.3.1.10"; # "Android Studio Arctic Fox (2020.3.1) Canary 10"
+    sha256Hash = "15xxyjjjy5pnimc66dcwnqb7z4lq7ll4fl401a3br5ca4d1hpgsj";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/nixpkgs/pkgs/applications/editors/apostrophe/default.nix b/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
index 4265e0ef1046..5d435fa68231 100644
--- a/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
+++ b/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
@@ -2,45 +2,42 @@
 , wrapGAppsHook, pkg-config, desktop-file-utils
 , appstream-glib, pythonPackages, glib, gobject-introspection
 , gtk3, webkitgtk, glib-networking, gnome3, gspell, texlive
-, shared-mime-info, haskellPackages}:
+, shared-mime-info, haskellPackages, libhandy
+}:
 
 let
-  pythonEnv = pythonPackages.python.withPackages(p: with p;
-    [ regex setuptools python-Levenshtein pyenchant pygobject3 pycairo pypandoc ]);
-  texliveDist = texlive.combined.scheme-medium;
+  pythonEnv = pythonPackages.python.withPackages(p: with p; [
+    regex setuptools python-Levenshtein pyenchant
+    pygobject3 pycairo pypandoc chardet
+  ]);
 
 in stdenv.mkDerivation rec {
   pname = "apostrophe";
-  version = "2.2.0.3";
+  version = "2.4";
 
   src = fetchFromGitLab {
     owner  = "somas";
     repo   = pname;
     domain = "gitlab.gnome.org";
     rev    = "v${version}";
-    sha256 = "06bl1hc69ixk2vcb2ig74mwid14sl5zq6rfna7lx9na6j3l04879";
+    sha256 = "1qzy3zhi18wf42m034s8kcmx9gl05j620x3hf6rnycq2fvy7g4gz";
   };
 
   nativeBuildInputs = [ meson ninja cmake pkg-config desktop-file-utils
     appstream-glib wrapGAppsHook ];
 
   buildInputs = [ glib pythonEnv gobject-introspection gtk3
-    gnome3.adwaita-icon-theme webkitgtk gspell texliveDist
-    glib-networking ];
+    gnome3.adwaita-icon-theme webkitgtk gspell texlive
+    glib-networking libhandy ];
 
   postPatch = ''
     patchShebangs --build build-aux/meson_post_install.py
-
-    substituteInPlace ${pname}/config.py --replace "/usr/share/${pname}" "$out/share/${pname}"
-
-    # get rid of unused distributed dependencies
-    rm -r ${pname}/pylocales
   '';
 
   preFixup = ''
     gappsWrapperArgs+=(
       --prefix PYTHONPATH : "$out/lib/python${pythonEnv.pythonVersion}/site-packages/"
-      --prefix PATH : "${texliveDist}/bin"
+      --prefix PATH : "${texlive}/bin"
       --prefix PATH : "${haskellPackages.pandoc-citeproc}/bin"
       --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
     )
diff --git a/nixpkgs/pkgs/applications/editors/atom/default.nix b/nixpkgs/pkgs/applications/editors/atom/default.nix
index e7a9a26f066c..875f8612fde6 100644
--- a/nixpkgs/pkgs/applications/editors/atom/default.nix
+++ b/nixpkgs/pkgs/applications/editors/atom/default.nix
@@ -3,18 +3,19 @@
 let
   versions = {
     atom = {
-      version = "1.48.0";
-      sha256 = "1693bxbylf6jhld9bdcr5pigk36wqlbj89praldpz9s96yxig9s1";
+      version = "1.54.0";
+      sha256 = "sha256-21AURgomEjuiTzeJ4MIx0mkyVi0b0mVdmFsFGNLXRP4";
     };
 
     atom-beta = {
-      version = "1.49.0";
+      version = "1.55.0";
       beta = 0;
-      sha256 = "1fr6m4a7shdj3wpn6g4n95cqpkkg2x9srwjf7bqxv9f3d5jb1y33";
+      sha256 = "sha256-PICkTt54cPkDJVnXBTtSHUQVbmosOpZfVAiD5A3/n+Q=";
+      broken = true;
     };
   };
 
-  common = pname: {version, sha256, beta ? null}:
+  common = pname: {version, sha256, beta ? null, broken ? false}:
       let fullVersion = version + lib.optionalString (beta != null) "-beta${toString beta}";
       name = "${pname}-${fullVersion}";
   in stdenv.mkDerivation {
@@ -88,6 +89,7 @@ let
       license = licenses.mit;
       maintainers = with maintainers; [ offline ysndr ];
       platforms = platforms.x86_64;
+      inherit broken;
     };
   };
 in lib.mapAttrs common versions
diff --git a/nixpkgs/pkgs/applications/editors/atom/env.nix b/nixpkgs/pkgs/applications/editors/atom/env.nix
index 5e3c1070ad2b..3c0f348ebd52 100644
--- a/nixpkgs/pkgs/applications/editors/atom/env.nix
+++ b/nixpkgs/pkgs/applications/editors/atom/env.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, zlib, glib, alsaLib, dbus, gtk3, atk, pango, freetype, fontconfig
 , libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
 , gconf, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
-, at-spi2-core
+, at-spi2-core, libdbusmenu
 }:
 
 let
@@ -11,7 +11,7 @@ let
     xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
     xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
     xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
-    xorg.libxcb libsecret libuuid at-spi2-atk at-spi2-core
+    xorg.libxcb libsecret libuuid at-spi2-atk at-spi2-core libdbusmenu
   ];
 
   libPathNative = lib.makeLibraryPath packages;
diff --git a/nixpkgs/pkgs/applications/editors/bluefish/default.nix b/nixpkgs/pkgs/applications/editors/bluefish/default.nix
index 2507cb13d7a1..59d1f11312dc 100644
--- a/nixpkgs/pkgs/applications/editors/bluefish/default.nix
+++ b/nixpkgs/pkgs/applications/editors/bluefish/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, intltool, wrapGAppsHook, pkg-config , gtk, libxml2
-, enchant, gucharmap, python, gnome3
+, enchant, gucharmap, python3, gnome3
 }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ intltool pkg-config wrapGAppsHook ];
   buildInputs = [ gnome3.adwaita-icon-theme gtk libxml2
-    enchant gucharmap python ];
+    enchant gucharmap python3 ];
 
   meta = with lib; {
     description = "A powerful editor targeted towards programmers and webdevelopers";
diff --git a/nixpkgs/pkgs/applications/editors/bluej/default.nix b/nixpkgs/pkgs/applications/editors/bluej/default.nix
index c0ca16a284a5..9b28de9440fc 100644
--- a/nixpkgs/pkgs/applications/editors/bluej/default.nix
+++ b/nixpkgs/pkgs/applications/editors/bluej/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "A simple integrated development environment for Java";
     homepage = "https://www.bluej.org/";
     license = licenses.gpl2ClasspathPlus;
-    maintainers = [ maintainers.charvp ];
+    maintainers = [ maintainers.chvp ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/code-browser/default.nix b/nixpkgs/pkgs/applications/editors/code-browser/default.nix
index a4ae4a811bfd..ea4398cc4a5c 100644
--- a/nixpkgs/pkgs/applications/editors/code-browser/default.nix
+++ b/nixpkgs/pkgs/applications/editors/code-browser/default.nix
@@ -39,6 +39,9 @@ stdenv.mkDerivation rec {
   ]
   ++ lib.optionals withQt [ "UI=qt" ]
   ++ lib.optionals withGtk [ "UI=gtk" ];
+
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Folding text editor, designed to hierarchically structure any kind of text file and especially source code";
     homepage = "https://tibleiz.net/code-browser/";
diff --git a/nixpkgs/pkgs/applications/editors/cudatext/default.nix b/nixpkgs/pkgs/applications/editors/cudatext/default.nix
index 2d9138bc32e3..efb3adaaa28a 100644
--- a/nixpkgs/pkgs/applications/editors/cudatext/default.nix
+++ b/nixpkgs/pkgs/applications/editors/cudatext/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cudatext";
-  version = "1.122.3";
+  version = "1.129.3";
 
   src = fetchFromGitHub {
     owner = "Alexey-T";
     repo = "CudaText";
     rev = version;
-    sha256 = "1h56hj433z0n4l97zl1cwkjv0qvz4qmvf469zzjzf1nj4zj8px2b";
+    sha256 = "1sg9wg6w3w0phrnnzpj7h2g22y0x7a3dl57djzydayxmg8fnn2ys";
   };
 
   postPatch = ''
@@ -91,7 +91,12 @@ stdenv.mkDerivation rec {
     install -Dm644 setup/debfiles/cudatext-512.png -t $out/share/pixmaps
     install -Dm644 setup/debfiles/cudatext.desktop -t $out/share/applications
   '' + lib.concatMapStringsSep "\n" (lexer: ''
-    install -Dm644 CudaText-lexers/${lexer}/*.{cuda-lexmap,lcf} $out/share/cudatext/data/lexlib
+    if [ -d "CudaText-lexers/${lexer}" ]; then
+      install -Dm644 CudaText-lexers/${lexer}/*.{cuda-lexmap,lcf} $out/share/cudatext/data/lexlib
+    else
+      echo "${lexer} lexer not found"
+      exit 1
+    fi
   '') additionalLexers;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/editors/cudatext/deps.json b/nixpkgs/pkgs/applications/editors/cudatext/deps.json
index 89f6dbc75fa8..a0044aaf833a 100644
--- a/nixpkgs/pkgs/applications/editors/cudatext/deps.json
+++ b/nixpkgs/pkgs/applications/editors/cudatext/deps.json
@@ -6,38 +6,38 @@
   },
   "ATBinHex-Lazarus": {
     "owner": "Alexey-T",
-    "rev": "2020.11.22",
-    "sha256": "0dkvzm32ls03pfp40fxvsyrkfmyznc5yrj65cp4a8pp9kpkvzlz7"
+    "rev": "2021.02.13",
+    "sha256": "1p2r2q1al6rcsdbbg8ilm4xn6w48bj348khxdmpak7vfwx9741h8"
   },
   "ATFlatControls": {
     "owner": "Alexey-T",
-    "rev": "2021.01.12",
-    "sha256": "1mavv3krs4srdp362prf4sncssxjh11la5j4lkx0wk5csrmd1pc9"
+    "rev": "2021.03.05",
+    "sha256": "1p2pzha5dd4p23j2bv6jxphj596dlb5v8ixjzg4x2zglz2hir6yz"
   },
   "ATSynEdit": {
     "owner": "Alexey-T",
-    "rev": "2021.01.19",
-    "sha256": "0lpgfwljwh9mypscbpj5c7fivhza0hizjgqypval3v0209cx38d1"
+    "rev": "2021.03.16",
+    "sha256": "1sq9j2zaif019gl6nf391lyp8k9s38f5s6ci7k3z5v90hkz1dcql"
   },
   "ATSynEdit_Cmp": {
     "owner": "Alexey-T",
-    "rev": "2021.01.17",
-    "sha256": "14i4jdpbmh6sjpvbwipdvvmmqqw8wg592b34a9wdf2f9qxq2p4ly"
+    "rev": "2021.03.08",
+    "sha256": "0xvnvx4qzp6nxi912i4zlnal91k6vbcsyfbz05ib73sz68xqd5qv"
   },
   "EControl": {
     "owner": "Alexey-T",
-    "rev": "2021.01.12",
-    "sha256": "107zyd65vc72fl4mvyirhv2a9m47l9bs6gwqiwar7hrn02zns6bq"
+    "rev": "2021.03.16",
+    "sha256": "159s1rpl829bmaa4bllqhjm8z0vji1ncsd6hw2s8z8hz28n905k8"
   },
   "ATSynEdit_Ex": {
     "owner": "Alexey-T",
-    "rev": "2020.10.04",
-    "sha256": "0z66cm9pgdi7whqaim6hva4aa08zrr1881n1fal7lnz6wlla824k"
+    "rev": "2021.03.16",
+    "sha256": "1a4mxcwjm9naxh4piqm5y93w2xd5rgl0vcn108wy1pkr221agg2q"
   },
   "Python-for-Lazarus": {
     "owner": "Alexey-T",
-    "rev": "2021.01.16",
-    "sha256": "07qv3x1cm3r12gxfnqzxly6nff39bghwwgxzl2lxi1qbpqhcs2l5"
+    "rev": "2021.02.18",
+    "sha256": "0fy6bmpdcl2aa8pb7zban6midkfwdj99x14hdghrv7cp8l4gcsg5"
   },
   "Emmet-Pascal": {
     "owner": "Alexey-T",
@@ -46,8 +46,8 @@
   },
   "CudaText-lexers": {
     "owner": "Alexey-T",
-    "rev": "2021.01.16",
-    "sha256": "13zyg0cm1c1662l3f7sy462pbc39l1cwm5214nx8ijngf8kgn2zh"
+    "rev": "2021.02.01",
+    "sha256": "051jnrhfpl9n5pgrssf68lj732zxhvjbvna4746ngmdyxvw6dqfd"
   },
   "bgrabitmap": {
     "owner": "bgrabitmap",
diff --git a/nixpkgs/pkgs/applications/editors/eclipse/default.nix b/nixpkgs/pkgs/applications/editors/eclipse/default.nix
index cff482e887d3..2c067250309b 100644
--- a/nixpkgs/pkgs/applications/editors/eclipse/default.nix
+++ b/nixpkgs/pkgs/applications/editors/eclipse/default.nix
@@ -162,7 +162,7 @@ in rec {
       # Eclipse.
       name = (lib.meta.appendToName "with-plugins" eclipse).name;
     in
-      runCommand name { buildInputs = [ makeWrapper ]; } ''
+      runCommand name { nativeBuildInputs = [ makeWrapper ]; } ''
         mkdir -p $out/bin $out/etc
 
         # Prepare an eclipse.ini with the plugin directory.
diff --git a/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
index 000129f74dff..2f97e3613227 100644
--- a/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
+++ b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
@@ -413,6 +413,22 @@ rec {
     };
   };
 
+  freemarker = buildEclipseUpdateSite rec {
+    name = "freemarker-${version}";
+    version = "1.5.305";
+
+    src = fetchzip {
+      url = "https://github.com/ddekany/jbosstools-freemarker/releases/download/v${version}/freemarker.site-${version}.zip";
+      sha256 = "1qrhi300vk07gi14r445wvy0bvghbjd6c4k7q09pqpaxv6raiczn";
+      stripRoot = false;
+    };
+
+    meta = with lib; {
+      homepage = "https://github.com/ddekany/jbosstools-freemarker";
+      description = "Plugin that provides an editor for Apache FreeMarker files";
+    };
+  };
+
   gnuarmeclipse = buildEclipseUpdateSite rec {
     name = "gnuarmeclipse-${version}";
     version = "3.1.1-201606210758";
diff --git a/nixpkgs/pkgs/applications/editors/edit/default.nix b/nixpkgs/pkgs/applications/editors/edit/default.nix
index 25e620c51e4e..7ef81a4ebc04 100644
--- a/nixpkgs/pkgs/applications/editors/edit/default.nix
+++ b/nixpkgs/pkgs/applications/editors/edit/default.nix
@@ -2,39 +2,39 @@
 
 stdenv.mkDerivation {
   pname = "edit-nightly";
-  version = "20160425";
+  version = "20180228";
 
   src = fetchgit {
     url = "git://c9x.me/ed.git";
-    rev = "323d49b68c5e804ed3b8cada0e2274f1589b3484";
-    sha256 = "0wv8i3ii7cd9bqhjpahwp2g5fcmyk365nc7ncmvl79cxbz3f7y8v";
+    rev = "77d96145b163d79186c722a7ffccfff57601157c";
+    sha256 = "0rsmp7ydmrq3xx5q19566is9a2v2w5yfsphivfc7j4ljp32jlyyy";
   };
 
+  nativeBuildInputs = [
+    unzip
+    pkg-config
+    cwebbin
+  ];
+
   buildInputs = [
-     unzip
-     pkg-config
-     ncurses
-     libX11
-     libXft
-     cwebbin
+    ncurses
+    libX11
+    libXft
   ];
 
-  buildPhase = ''
+  preBuild = ''
     ctangle *.w
-    make
   '';
 
   installPhase = ''
-    mkdir -p $out/bin/
-    cp obj/edit $out/bin/edit
+    install -Dm755 obj/edit -t $out/bin
   '';
 
   meta = with lib; {
     description = "A relaxing mix of Vi and ACME";
-    homepage = "http://c9x.me/edit";
+    homepage = "https://c9x.me/edit";
     license = licenses.publicDomain;
     maintainers = [ maintainers.vrthra ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
-
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
index b841c0df9593..857b0562c001 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -4,10 +4,10 @@
       elpaBuild {
         pname = "ace-window";
         ename = "ace-window";
-        version = "0.9.0";
+        version = "0.10.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ace-window-0.9.0.el";
-          sha256 = "1m7fc4arcxn7fp0hnzyp20czjp4zx3rjaspfzpxzgc8sbghi81a3";
+          url = "https://elpa.gnu.org/packages/ace-window-0.10.0.tar";
+          sha256 = "1kfyf7za4zc41gf0k3rq8byvwkw7q5pxnyynh5i0gv686zrzak1i";
         };
         packageRequires = [ avy ];
         meta = {
@@ -223,10 +223,10 @@
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "13.0.3";
+        version = "13.0.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auctex-13.0.3.tar";
-          sha256 = "1ljpkr0z15fyh907jbgky238dvci5vqi3xhvslyhblhp8sg9cbsi";
+          url = "https://elpa.gnu.org/packages/auctex-13.0.5.tar";
+          sha256 = "072wwsqfl8n2gi2inbp0s8k1ydr6fh1zyvc3rgynwzibjjniy319";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -343,10 +343,10 @@
       elpaBuild {
         pname = "bnf-mode";
         ename = "bnf-mode";
-        version = "0.4.4";
+        version = "0.4.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/bnf-mode-0.4.4.tar";
-          sha256 = "0acr3x96zknxs90dc9mpnrwiaa81883h36lx5q1lxfn78vjfw14x";
+          url = "https://elpa.gnu.org/packages/bnf-mode-0.4.5.tar";
+          sha256 = "0bj5ffqi54cdrraj5bp4v2cpbxjzly1p467dx1hzrlwv2b1svy2y";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -497,10 +497,10 @@
       elpaBuild {
         pname = "clipboard-collector";
         ename = "clipboard-collector";
-        version = "0.2";
+        version = "0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/clipboard-collector-0.2.el";
-          sha256 = "19scspkxgm3b1jkv10jy6nw9gv1q6sfjys09l37mvsva3djxa1dl";
+          url = "https://elpa.gnu.org/packages/clipboard-collector-0.3.tar";
+          sha256 = "09zxbivmc1zhcj8ksac2a0qpqh74rrx2slnj6cwz1n1nixn19743";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -591,10 +591,10 @@
       elpaBuild {
         pname = "company-math";
         ename = "company-math";
-        version = "1.3";
+        version = "1.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/company-math-1.3.tar";
-          sha256 = "0fc9ms0s9w81sxp3qcfva3n3d2qys0pj19pnm621a6v1xdsc7i1l";
+          url = "https://elpa.gnu.org/packages/company-math-1.4.tar";
+          sha256 = "17p5ib65lg8lj2gwip5qgsznww96pch16pr16b41lls5dx4k6d6z";
         };
         packageRequires = [ company math-symbol-lists ];
         meta = {
@@ -636,16 +636,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    counsel = callPackage ({ elpaBuild, emacs, fetchurl, lib, swiper }:
+    counsel = callPackage ({ elpaBuild, emacs, fetchurl, ivy, lib, swiper }:
       elpaBuild {
         pname = "counsel";
         ename = "counsel";
-        version = "0.13.1";
+        version = "0.13.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/counsel-0.13.1.tar";
-          sha256 = "0m4dmhj33cxaapn9lf7bj1r680gi2wd7cw9xlssjklzvic29a6db";
+          url = "https://elpa.gnu.org/packages/counsel-0.13.4.tar";
+          sha256 = "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031";
         };
-        packageRequires = [ emacs swiper ];
+        packageRequires = [ emacs ivy swiper ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/counsel.html";
           license = lib.licenses.free;
@@ -685,10 +685,10 @@
       elpaBuild {
         pname = "csv-mode";
         ename = "csv-mode";
-        version = "1.14";
+        version = "1.15";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/csv-mode-1.14.tar";
-          sha256 = "1jz4134pk8dwzsqih9wybx4l9yl244cgcilw8rdnnqmm8i6vxgrp";
+          url = "https://elpa.gnu.org/packages/csv-mode-1.15.tar";
+          sha256 = "0pigqhqg5mfza6jdskcr9yvrzdxnd68iyp3vyb8p8wskdacmbiyx";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -726,16 +726,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    dash = callPackage ({ elpaBuild, fetchurl, lib }:
+    dash = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "dash";
         ename = "dash";
-        version = "2.12.0";
+        version = "2.18.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/dash-2.12.0.tar";
-          sha256 = "02r547vian59zr55z6ri4p2b7q5y5k256wi9j8a317vjzyh54m05";
+          url = "https://elpa.gnu.org/packages/dash-2.18.1.tar";
+          sha256 = "17mrvmrfh5c3kri4r3gf1c3gz4i5vl9ac60grpx4103b56y4cgra";
         };
-        packageRequires = [];
+        packageRequires = [ emacs ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/dash.html";
           license = lib.licenses.free;
@@ -940,10 +940,10 @@
       elpaBuild {
         pname = "easy-kill";
         ename = "easy-kill";
-        version = "0.9.3";
+        version = "0.9.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/easy-kill-0.9.3.tar";
-          sha256 = "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb";
+          url = "https://elpa.gnu.org/packages/easy-kill-0.9.4.tar";
+          sha256 = "1pqqv4dhfm00wqch4wy3n2illsvxlz9r6r64925cvq3i7wq4la1x";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -955,10 +955,10 @@
       elpaBuild {
         pname = "ebdb";
         ename = "ebdb";
-        version = "0.6.21";
+        version = "0.6.22";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ebdb-0.6.21.tar";
-          sha256 = "0pp190wr6z98kggmw9ls486f9vxfimdjdbqsp263qiyi21ws98if";
+          url = "https://elpa.gnu.org/packages/ebdb-0.6.22.tar";
+          sha256 = "0dljl21n6508c7ash7l6zgxhpn2wdfzga0va63d4k9nwnqmkvsgz";
         };
         packageRequires = [ cl-lib emacs seq ];
         meta = {
@@ -985,10 +985,10 @@
       elpaBuild {
         pname = "ebdb-i18n-chn";
         ename = "ebdb-i18n-chn";
-        version = "1.3.1";
+        version = "1.3.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ebdb-i18n-chn-1.3.1.el";
-          sha256 = "02drr89i4kzjm1rs22sj0nv9sj95dmqk40xvxd75qzfn8y33k9vl";
+          url = "https://elpa.gnu.org/packages/ebdb-i18n-chn-1.3.2.tar";
+          sha256 = "06ii9xi2y157vfbhx75mn80ash22d1xgcyp9kzz1s0lkxwlv74zj";
         };
         packageRequires = [ ebdb pyim ];
         meta = {
@@ -1118,10 +1118,10 @@
       elpaBuild {
         pname = "elisp-benchmarks";
         ename = "elisp-benchmarks";
-        version = "1.9";
+        version = "1.11";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.9.tar";
-          sha256 = "14qmybmjlgkjns6vlbsf46f276ykydnbm0f6mij2w3b9qx7z2nb2";
+          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.11.tar";
+          sha256 = "0s1mpapvcivy25zbhw6ghpg0ym23vb4dsrz876rl4z2rfyckxral";
         };
         packageRequires = [];
         meta = {
@@ -1205,10 +1205,10 @@
       elpaBuild {
         pname = "excorporate";
         ename = "excorporate";
-        version = "0.9.1";
+        version = "0.9.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/excorporate-0.9.1.tar";
-          sha256 = "15rk0br7dmvni10f3mm94ylybl3jbf2ps1sypis6hxbazxxr443j";
+          url = "https://elpa.gnu.org/packages/excorporate-0.9.3.tar";
+          sha256 = "1ybj0ww7x7l7ymykk6hs720whabavmwnrwq7x8dkn41wma181zzy";
         };
         packageRequires = [ emacs fsm nadvice soap-client url-http-ntlm ];
         meta = {
@@ -1295,10 +1295,10 @@
       elpaBuild {
         pname = "flymake";
         ename = "flymake";
-        version = "1.0.9";
+        version = "1.1.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/flymake-1.0.9.el";
-          sha256 = "0xm1crhjcs14iqkf481igbf40wj2ib3hjzinw1gn8w1n0462ymp6";
+          url = "https://elpa.gnu.org/packages/flymake-1.1.1.tar";
+          sha256 = "0lk2v34b59b24j3hsmi8d0v7fgpwcipv7ka9i88cdgjmjjmzgz5q";
         };
         packageRequires = [ eldoc emacs ];
         meta = {
@@ -1588,6 +1588,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    hiddenquote = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "hiddenquote";
+        ename = "hiddenquote";
+        version = "1.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/hiddenquote-1.1.tar";
+          sha256 = "1j692ka84z6k9c3bhcn28irym5fga4d1wvhmvzvixdbfwn58ivw5";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/hiddenquote.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     highlight-escape-sequences = callPackage ({ elpaBuild
                                               , fetchurl
                                               , lib }:
@@ -1699,10 +1714,10 @@
       elpaBuild {
         pname = "ivy";
         ename = "ivy";
-        version = "0.13.1";
+        version = "0.13.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ivy-0.13.1.tar";
-          sha256 = "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx";
+          url = "https://elpa.gnu.org/packages/ivy-0.13.4.tar";
+          sha256 = "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1710,6 +1725,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    ivy-avy = callPackage ({ avy, elpaBuild, emacs, fetchurl, ivy, lib }:
+      elpaBuild {
+        pname = "ivy-avy";
+        ename = "ivy-avy";
+        version = "0.13.4";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ivy-avy-0.13.4.tar";
+          sha256 = "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi";
+        };
+        packageRequires = [ avy emacs ivy ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/ivy-avy.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     ivy-explorer = callPackage ({ elpaBuild, emacs, fetchurl, ivy, lib }:
       elpaBuild {
         pname = "ivy-explorer";
@@ -1725,6 +1755,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    ivy-hydra = callPackage ({ elpaBuild, emacs, fetchurl, hydra, ivy, lib }:
+      elpaBuild {
+        pname = "ivy-hydra";
+        ename = "ivy-hydra";
+        version = "0.13.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ivy-hydra-0.13.5.tar";
+          sha256 = "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x";
+        };
+        packageRequires = [ emacs hydra ivy ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/ivy-hydra.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     ivy-posframe = callPackage ({ elpaBuild
                                 , emacs
                                 , fetchurl
@@ -1839,10 +1884,10 @@
       elpaBuild {
         pname = "kiwix";
         ename = "kiwix";
-        version = "1.0.1";
+        version = "1.0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/kiwix-1.0.1.tar";
-          sha256 = "1dly6pilf71hq3mra9kc63i6iynzkxjmp9gwy0rhnvhq4b4qr01d";
+          url = "https://elpa.gnu.org/packages/kiwix-1.0.3.tar";
+          sha256 = "061b816xp8ykqd56z0nvc69aql9y4mba42p6x6vc0j6gr9n3c1j6";
         };
         packageRequires = [ emacs request ];
         meta = {
@@ -1884,10 +1929,10 @@
       elpaBuild {
         pname = "leaf";
         ename = "leaf";
-        version = "4.3.2";
+        version = "4.4.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/leaf-4.3.2.tar";
-          sha256 = "190sfnnii9jnj8amjkdabd8w9k2xyalhg4h488a5gzjxdzz2s6zi";
+          url = "https://elpa.gnu.org/packages/leaf-4.4.4.tar";
+          sha256 = "1npg06zmy21kg2qsqgfm03l7vjib697i96awypcdb0hw5mvmc1a1";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2004,10 +2049,10 @@
       elpaBuild {
         pname = "map";
         ename = "map";
-        version = "2.1";
+        version = "3.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/map-2.1.el";
-          sha256 = "0ydz5w1n4vwhhzxxj003s7jv8n1wjijwfryk5z93bwhnr0cak0i0";
+          url = "https://elpa.gnu.org/packages/map-3.0.tar";
+          sha256 = "00wf8lgh1b1i5l838y6di8194rf5gf5djklkhmxj1nlikz66j2ls";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2150,31 +2195,54 @@
           license = lib.licenses.free;
         };
       }) {};
-    modus-operandi-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+    modus-operandi-theme = callPackage ({ elpaBuild
+                                        , emacs
+                                        , fetchurl
+                                        , lib
+                                        , modus-themes }:
       elpaBuild {
         pname = "modus-operandi-theme";
         ename = "modus-operandi-theme";
-        version = "0.12.0";
+        version = "0.13.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.12.0.el";
-          sha256 = "1mllyysn701qfnglxs7n2f6mrzrz55v9hcwspvafc6fl2blr393y";
+          url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.13.2.tar";
+          sha256 = "1sw18ijp9rhaf8y8x8z5rmxy23pxd3gaicgmp2zndcfmm54gwsic";
         };
-        packageRequires = [ emacs ];
+        packageRequires = [ emacs modus-themes ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/modus-operandi-theme.html";
           license = lib.licenses.free;
         };
       }) {};
-    modus-vivendi-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+    modus-themes = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "modus-themes";
+        ename = "modus-themes";
+        version = "1.2.4";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/modus-themes-1.2.4.tar";
+          sha256 = "0wz6dgkrq4ryvj0kxnzqxwh4i8b9lw15d5dsazjpqa7gfwffpzp0";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/modus-themes.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    modus-vivendi-theme = callPackage ({ elpaBuild
+                                       , emacs
+                                       , fetchurl
+                                       , lib
+                                       , modus-themes }:
       elpaBuild {
         pname = "modus-vivendi-theme";
         ename = "modus-vivendi-theme";
-        version = "0.12.0";
+        version = "0.13.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.12.0.el";
-          sha256 = "01f6z5xjnmki1k9m83jwva42lxidb31pdpwm4wpxjzxqmb96picn";
+          url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.13.2.tar";
+          sha256 = "1qn3kzxwf81zc7gprd9wblhb8b8akdkxwajpgk036y8i4cmvmspn";
         };
-        packageRequires = [ emacs ];
+        packageRequires = [ emacs modus-themes ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/modus-vivendi-theme.html";
           license = lib.licenses.free;
@@ -2358,10 +2426,10 @@
       elpaBuild {
         pname = "oauth2";
         ename = "oauth2";
-        version = "0.15";
+        version = "0.16";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/oauth2-0.15.el";
-          sha256 = "0ij17g6i8d4cyzc8v6sy2qglwhzd767331gavll6d507krdh3ca3";
+          url = "https://elpa.gnu.org/packages/oauth2-0.16.tar";
+          sha256 = "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316";
         };
         packageRequires = [ cl-lib nadvice ];
         meta = {
@@ -2369,6 +2437,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    ob-haxe = callPackage ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "ob-haxe";
+        ename = "ob-haxe";
+        version = "1.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ob-haxe-1.0.tar";
+          sha256 = "1x19b3aappv4d3mvpf01r505l1sfndbzbpr5sbid411g9g9k3rwr";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/ob-haxe.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     objed = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "objed";
@@ -2598,10 +2681,10 @@
       elpaBuild {
         pname = "phps-mode";
         ename = "phps-mode";
-        version = "0.3.65";
+        version = "0.4.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/phps-mode-0.3.65.tar";
-          sha256 = "18pqxwfmciz9d2w808mvspkcifrja85y2qjwmb6pbdnkj9dr6yad";
+          url = "https://elpa.gnu.org/packages/phps-mode-0.4.2.tar";
+          sha256 = "0ngh54jdh56563crgvf0r4gd6zfvhbkxs9prp12930gav8mdm3sh";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2643,10 +2726,10 @@
       elpaBuild {
         pname = "posframe";
         ename = "posframe";
-        version = "0.8.4";
+        version = "0.8.8";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/posframe-0.8.4.tar";
-          sha256 = "1sn35ibp5y4y80l1xm4b8i94ld953a9gbkk99zqd9mrq9bwjyhdp";
+          url = "https://elpa.gnu.org/packages/posframe-0.8.8.tar";
+          sha256 = "1ij6brzcxv9viz37qafcinlfx5l20w8x8s6786r1rsda5n1xsmvd";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2658,10 +2741,10 @@
       elpaBuild {
         pname = "project";
         ename = "project";
-        version = "0.5.3";
+        version = "0.5.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/project-0.5.3.el";
-          sha256 = "0cpf69m41h8gfcqnq72h11925zdk35b7hw7bfy83xm83xwp12rxx";
+          url = "https://elpa.gnu.org/packages/project-0.5.4.tar";
+          sha256 = "0arjvhzzcf8b80w94yvpgfdlhsjwf5jk1r7vcai5a4dg3bi9cxyb";
         };
         packageRequires = [ emacs xref ];
         meta = {
@@ -2699,6 +2782,36 @@
           license = lib.licenses.free;
         };
       }) {};
+    pyim = callPackage ({ async, elpaBuild, emacs, fetchurl, lib, xr }:
+      elpaBuild {
+        pname = "pyim";
+        ename = "pyim";
+        version = "3.6";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/pyim-3.6.tar";
+          sha256 = "1fmbzh33s9xdvrfjhkqr9ydcqbiv8lr04k5idvbpc9vwjjjan5y0";
+        };
+        packageRequires = [ async emacs xr ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/pyim.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyim-basedict = callPackage ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "pyim-basedict";
+        ename = "pyim-basedict";
+        version = "0.5.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/pyim-basedict-0.5.0.tar";
+          sha256 = "0h946wsnbbii32kl2kpv0k1kq118ymvpd5q1mphfsf126dz9sv78";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/pyim-basedict.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     python = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "python";
@@ -2778,10 +2891,10 @@
       elpaBuild {
         pname = "rcirc-color";
         ename = "rcirc-color";
-        version = "0.4.1";
+        version = "0.4.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/rcirc-color-0.4.1.el";
-          sha256 = "1zs3i3xr8zbjr8hzr1r1qx7mqb2wckpn25qh9444c9as2dnh9sn9";
+          url = "https://elpa.gnu.org/packages/rcirc-color-0.4.2.tar";
+          sha256 = "0pa9p018kwsy44cmkli7x6cz1abxkyi26ac7w3vh99qp7x97dia3";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2994,14 +3107,29 @@
           license = lib.licenses.free;
         };
       }) {};
+    repology = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "repology";
+        ename = "repology";
+        version = "1.1.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/repology-1.1.0.tar";
+          sha256 = "031245rrhazj53bk1csa6x3ygzvg74w2hwjf08ficwvmdn97li90";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/repology.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     rich-minority = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "rich-minority";
         ename = "rich-minority";
-        version = "1.0.1";
+        version = "1.0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/rich-minority-1.0.1.el";
-          sha256 = "1pr89k3jz044vf582klphl1zf0r7hj2g7ga8j1dwbrpr9ngiicgc";
+          url = "https://elpa.gnu.org/packages/rich-minority-1.0.3.tar";
+          sha256 = "1w61qvx2rw6a6gmrm61080zghil95nzdv4w06c0pvyb62m4rwab0";
         };
         packageRequires = [ cl-lib ];
         meta = {
@@ -3028,10 +3156,10 @@
       elpaBuild {
         pname = "rt-liberation";
         ename = "rt-liberation";
-        version = "2.1";
+        version = "2.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/rt-liberation-2.1.tar";
-          sha256 = "1ahl1ys72rvqs2bf9zv9648h65fx0283ibqlk1b8ayahc04w6qbl";
+          url = "https://elpa.gnu.org/packages/rt-liberation-2.3.tar";
+          sha256 = "0sqq5zfzx9dir6d6zvg7vj5v629b508bbxsp7j0sp21rr4fw9nn0";
         };
         packageRequires = [];
         meta = {
@@ -3120,6 +3248,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    setup = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "setup";
+        ename = "setup";
+        version = "0.1.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/setup-0.1.2.tar";
+          sha256 = "1q29phch4fvmvc255kgvzsnzdqp6kaip7ybpxprd0kkdjs3jrsqv";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/setup.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     shelisp = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "shelisp";
@@ -3424,10 +3567,10 @@
       elpaBuild {
         pname = "swiper";
         ename = "swiper";
-        version = "0.13.1";
+        version = "0.13.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/swiper-0.13.1.tar";
-          sha256 = "0k39pa89y0bfvdfqg3nc5pjq5mwxwimc4ma3z28vaf14zd38x9m1";
+          url = "https://elpa.gnu.org/packages/swiper-0.13.4.tar";
+          sha256 = "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v";
         };
         packageRequires = [ emacs ivy ];
         meta = {
@@ -3533,10 +3676,10 @@
       elpaBuild {
         pname = "tramp";
         ename = "tramp";
-        version = "2.5.0";
+        version = "2.5.0.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/tramp-2.5.0.tar";
-          sha256 = "1jpnqyk108nksaym2b9v243y5zkpr4px9d070wsb9cwm3xrcd8rh";
+          url = "https://elpa.gnu.org/packages/tramp-2.5.0.2.tar";
+          sha256 = "16f782rjkmxxs5sz3wv4d46i7hbl483ashmrkvljf7lpnrl91s93";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3574,6 +3717,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    transient = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "transient";
+        ename = "transient";
+        version = "0.3.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/transient-0.3.0.tar";
+          sha256 = "1a457apfl762nn5xf1h3hbvrgs9hybkxh0jwb2y713zkhhck66cp";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/transient.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     trie = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA }:
       elpaBuild {
         pname = "trie";
@@ -3677,10 +3835,10 @@
       elpaBuild {
         pname = "valign";
         ename = "valign";
-        version = "3.0.0";
+        version = "3.1.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/valign-3.0.0.el";
-          sha256 = "16f889x6yc1af2bmbly2lww4sy1s864ll75xdxp28i5m57gj25w8";
+          url = "https://elpa.gnu.org/packages/valign-3.1.1.tar";
+          sha256 = "1nla0zfj0rxwhdjgnsy2c34wzrxfxiwl89cjb6aicyvfxninz7j0";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3739,10 +3897,10 @@
       elpaBuild {
         pname = "verilog-mode";
         ename = "verilog-mode";
-        version = "2020.6.27.14326051";
+        version = "2021.2.2.263931197";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/verilog-mode-2020.6.27.14326051.el";
-          sha256 = "194gn8cj01jb9xcl0qq3gq6mzxfdyn459ysb35fnib7pcnafm188";
+          url = "https://elpa.gnu.org/packages/verilog-mode-2021.2.2.263931197.tar";
+          sha256 = "0rizadyzrsprc3mw3h2ag4760wapx5gxzsr11rgrllwzzqwin1ks";
         };
         packageRequires = [];
         meta = {
@@ -3892,10 +4050,10 @@
       elpaBuild {
         pname = "which-key";
         ename = "which-key";
-        version = "3.3.2";
+        version = "3.5.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/which-key-3.3.2.tar";
-          sha256 = "01g5jcikhgxnri1rpbjq191220b4r3bimz2jzs1asc766w42q2gb";
+          url = "https://elpa.gnu.org/packages/which-key-3.5.1.tar";
+          sha256 = "187cssvqpd0wj01rgd19pp1k6aj9m2n5fdqznkga6w1h6cb5cm2b";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4032,10 +4190,10 @@
       elpaBuild {
         pname = "xr";
         ename = "xr";
-        version = "1.20";
+        version = "1.21";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/xr-1.20.tar";
-          sha256 = "0i3vfsp110z60gabn9x9rv21fvm7nnr234mvmpp7gx4l4hpadvzy";
+          url = "https://elpa.gnu.org/packages/xr-1.21.tar";
+          sha256 = "0mc10d33lsqs0ihcja8w78jzh2pk0dfm9m86kap6r3hi6wkr1cmi";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix
index 8b9ad33fce78..034b698137b6 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix
@@ -20,7 +20,7 @@ instantenous and formats commits for you.
 
 */
 
-{ lib, stdenv, texinfo }:
+{ lib, stdenv, texinfo, writeText }:
 
 self: let
 
@@ -31,7 +31,7 @@ self: let
   };
 
   elpaBuild = import ../../../build-support/emacs/elpa.nix {
-    inherit lib stdenv texinfo;
+    inherit lib stdenv texinfo writeText;
     inherit (self) emacs;
   };
 
@@ -53,6 +53,9 @@ self: let
       seq = if lib.versionAtLeast self.emacs.version "27"
             then null
             else super.seq;
+      project = if lib.versionAtLeast self.emacs.version "28"
+                then null
+                else super.project;
     };
 
     elpaPackages = super // overrides;
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix
index 5f7d602264f0..ef67cdbf61aa 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix
@@ -1,4 +1,4 @@
-{ lib, external, pkgs }: self: with self; with lib.licenses; {
+{ lib, pkgs }: self: with self; with lib.licenses; {
 
   elisp-ffi = melpaBuild rec {
     pname = "elisp-ffi";
@@ -9,7 +9,7 @@
       rev = version;
       sha256 = "0z2n3h5l5fj8wl8i1ilfzv11l3zba14sgph6gz7dx7q12cnp9j22";
     };
-    buildInputs = [ external.libffi ];
+    buildInputs = [ pkgs.libffi ];
     preBuild = "make";
     recipe = pkgs.writeText "recipe" ''
       (elisp-ffi
@@ -29,15 +29,15 @@
     };
   };
 
-  agda2-mode = with external; trivialBuild {
+  agda2-mode = trivialBuild {
     pname = "agda-mode";
-    version = Agda.version;
+    version = pkgs.haskellPackages.Agda.version;
 
     phases = [ "buildPhase" "installPhase" ];
 
     # already byte-compiled by Agda builder
     buildPhase = ''
-      agda=`${Agda}/bin/agda-mode locate`
+      agda=`${pkgs.haskellPackages.Agda}/bin/agda-mode locate`
       cp `dirname $agda`/*.el* .
     '';
 
@@ -47,21 +47,21 @@
         Wrapper packages that liberates init.el from `agda-mode locate` magic.
         Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el.
       '';
-      homepage = Agda.meta.homepage;
-      license = Agda.meta.license;
+      homepage = pkgs.haskellPackages.Agda.meta.homepage;
+      license = pkgs.haskellPackages.Agda.meta.license;
     };
   };
 
   agda-input = self.trivialBuild {
     pname = "agda-input";
 
-    inherit (external.Agda) src version;
+    inherit (pkgs.haskellPackages.Agda) src version;
 
     postUnpack = "mv $sourceRoot/src/data/emacs-mode/agda-input.el $sourceRoot";
 
     meta = {
       description = "Standalone package providing the agda-input method without building Agda.";
-      inherit (external.Agda.meta) homepage license;
+      inherit (pkgs.haskellPackages.Agda.meta) homepage license;
     };
   };
 
@@ -74,10 +74,10 @@
 
   ghc-mod = melpaBuild {
     pname = "ghc";
-    version = external.ghc-mod.version;
-    src = external.ghc-mod.src;
+    version = pkgs.haskellPackages.ghc-mod.version;
+    src = pkgs.haskellPackages.ghc-mod.src;
     packageRequires = [ haskell-mode ];
-    propagatedUserEnvPkgs = [ external.ghc-mod ];
+    propagatedUserEnvPkgs = [ pkgs.haskellPackages.ghc-mod ];
     recipe = pkgs.writeText "recipe" ''
       (ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el"))
     '';
@@ -113,19 +113,83 @@
 
   jam-mode = callPackage ./jam-mode { };
 
+  llvm-mode = trivialBuild {
+    pname = "llvm-mode";
+    inherit (pkgs.llvmPackages.llvm) src version;
+
+    dontConfigure = true;
+    buildPhase = ''
+      cp utils/emacs/*.el .
+    '';
+
+    meta = {
+      inherit (pkgs.llvmPackages.llvm.meta) homepage license;
+      description = "Major mode for the LLVM assembler language.";
+    };
+  };
+
+  matrix-client = melpaBuild {
+    pname = "matrix-client";
+    version = "0.3.0";
+
+    src = pkgs.fetchFromGitHub {
+      owner = "alphapapa";
+      repo = "matrix-client.el";
+      rev = "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed";
+      sha256 = "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq";
+    };
+
+    patches = [
+      (pkgs.fetchpatch {
+        url = "https://github.com/alphapapa/matrix-client.el/commit/5f49e615c7cf2872f48882d3ee5c4a2bff117d07.patch";
+        sha256 = "07bvid7s1nv1377p5n61q46yww3m1w6bw4vnd4iyayw3fby1lxbm";
+      })
+    ];
+
+    packageRequires = [
+      anaphora
+      cl-lib
+      self.map
+      dash-functional
+      esxml
+      f
+      ov
+      tracking
+      rainbow-identifiers
+      dash
+      s
+      request
+      frame-purpose
+      a
+      ht
+    ];
+
+    recipe = pkgs.writeText "recipe" ''
+      (matrix-client
+      :repo "alphapapa/matrix-client.el"
+      :fetcher github)
+    '';
+
+    meta = {
+      description = "A chat client and API wrapper for Matrix.org";
+      license = gpl3Plus;
+    };
+
+  };
+
   org-mac-link =
     callPackage ./org-mac-link { };
 
   ott-mode = self.trivialBuild {
     pname = "ott-mod";
 
-    inherit (external.ott) src version;
+    inherit (pkgs.ott) src version;
 
     postUnpack = "mv $sourceRoot/emacs/ott-mode.el $sourceRoot";
 
     meta = {
       description = "Standalone package providing ott-mode without building ott and with compiled bytecode.";
-      inherit (external.Agda.meta) homepage license;
+      inherit (pkgs.haskellPackages.Agda.meta) homepage license;
     };
   };
 
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index 62979b4226dd..e5e2bac964f3 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -22,7 +22,7 @@ instantenous and formats commits for you.
 
 */
 
-{ lib, external, pkgs }: variant: self:
+{ lib, pkgs }: variant: self:
 let
   dontConfigure = pkg:
     if pkg != null then pkg.override (args: {
@@ -47,8 +47,13 @@ let
       });
     }) else null;
 
+  buildWithGit = pkg: pkg.overrideAttrs (attrs: {
+    nativeBuildInputs =
+      (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ];
+  });
+
   fix-rtags = pkg:
-    if pkg != null then dontConfigure (externalSrc pkg external.rtags)
+    if pkg != null then dontConfigure (externalSrc pkg pkgs.rtags)
     else null;
 
   generateMelpa = lib.makeOverridable ({ archiveJson ? ./recipes-archive-melpa.json
@@ -74,9 +79,9 @@ let
         };
 
         auto-complete-clang-async = super.auto-complete-clang-async.overrideAttrs (old: {
-          buildInputs = old.buildInputs ++ [ external.llvmPackages.llvm ];
-          CFLAGS = "-I${external.llvmPackages.clang}/include";
-          LDFLAGS = "-L${external.llvmPackages.clang}/lib";
+          buildInputs = old.buildInputs ++ [ pkgs.llvmPackages.llvm ];
+          CFLAGS = "-I${pkgs.llvmPackages.clang}/include";
+          LDFLAGS = "-L${pkgs.llvmPackages.clang}/lib";
         });
 
         # part of a larger package
@@ -120,33 +125,35 @@ let
           packageRequires = with self; [ evil ];
         });
 
-        evil-magit = super.evil-magit.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        eopengrok = super.eopengrok.overrideAttrs (attrs: {
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
         ess-R-data-view = super.ess-R-data-view.override {
           inherit (self.melpaPackages) ess ctable popup;
         };
 
-        forge = super.forge.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
         flycheck-rtags = fix-rtags super.flycheck-rtags;
 
         pdf-tools = super.pdf-tools.overrideAttrs (old: {
-          nativeBuildInputs = [ external.pkg-config ];
-          buildInputs = with external; old.buildInputs ++ [ autoconf automake libpng zlib poppler ];
-          preBuild = "make server/epdfinfo";
+          nativeBuildInputs = [
+            pkgs.autoconf
+            pkgs.automake
+            pkgs.pkg-config
+            pkgs.removeReferencesTo
+          ];
+          buildInputs = old.buildInputs ++ [ pkgs.libpng pkgs.zlib pkgs.poppler ];
+          preBuild = ''
+            make server/epdfinfo
+            remove-references-to ${lib.concatStringsSep " " (
+              map (output: "-t " + output) (
+                [
+                  pkgs.glib.dev
+                  pkgs.libpng.dev
+                  pkgs.poppler.dev
+                  pkgs.zlib.dev
+                  pkgs.cairo.dev
+                ]
+                ++ lib.optional pkgs.stdenv.isLinux pkgs.stdenv.cc.libc.dev
+              )
+            )} server/epdfinfo
+          '';
           recipe = pkgs.writeText "recipe" ''
             (pdf-tools
             :repo "politza/pdf-tools" :fetcher github
@@ -155,7 +162,7 @@ let
         });
 
         # Build same version as Haskell package
-        hindent = (externalSrc super.hindent external.hindent).overrideAttrs (attrs: {
+        hindent = (externalSrc super.hindent pkgs.haskellPackages.hindent).overrideAttrs (attrs: {
           packageRequires = [ self.haskell-mode ];
         });
 
@@ -181,7 +188,7 @@ let
           dontUseCmakeBuildDir = true;
           doCheck = true;
           packageRequires = [ self.emacs ];
-          nativeBuildInputs = [ external.cmake external.llvmPackages.llvm external.llvmPackages.clang ];
+          nativeBuildInputs = [ pkgs.cmake pkgs.llvmPackages.llvm pkgs.llvmPackages.clang ];
         });
 
         # tries to write a log file to $HOME
@@ -211,113 +218,81 @@ let
           '';
         });
 
-        magit = super.magit.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        evil-magit = buildWithGit super.evil-magit;
 
-        magit-find-file = super.magit-find-file.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        eopengrok = buildWithGit super.eopengrok;
 
-        magit-gh-pulls = super.magit-gh-pulls.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        forge = buildWithGit super.forge;
 
-        magit-imerge = super.magit-imerge.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit = buildWithGit super.magit;
 
-        magit-lfs = super.magit-lfs.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-find-file = buildWithGit super.magit-find-file;
 
-        magit-org-todos = super.magit-org-todos.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-gh-pulls = buildWithGit super.magit-gh-pulls;
 
-        magit-tbdiff = super.magit-tbdiff.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-imerge = buildWithGit super.magit-imerge;
 
-        magit-topgit = super.magit-topgit.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-lfs = buildWithGit super.magit-lfs;
 
-        magit-vcsh = super.magit-vcsh.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-org-todos = buildWithGit super.magit-org-todos;
 
-        magit-gerrit = super.magit-gerrit.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-tbdiff = buildWithGit super.magit-tbdiff;
 
-        magit-annex = super.magit-annex.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-topgit = buildWithGit super.magit-topgit;
 
-        magit-todos = super.magit-todos.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-vcsh = buildWithGit super.magit-vcsh;
 
-        magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-gerrit = buildWithGit super.magit-gerrit;
 
-        magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-annex = buildWithGit super.magit-annex;
 
-        magithub = super.magithub.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-todos = buildWithGit super.magit-todos;
 
-        magit-svn = super.magit-svn.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-filenotify = buildWithGit super.magit-filenotify;
 
-        kubernetes = super.kubernetes.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-gitflow = buildWithGit super.magit-gitflow;
 
-        kubernetes-evil = super.kubernetes-evil.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magithub = buildWithGit super.magithub;
+
+        magit-svn = buildWithGit super.magit-svn;
+
+        kubernetes = buildWithGit super.kubernetes;
+
+        kubernetes-evil = buildWithGit super.kubernetes-evil;
+
+        egg = buildWithGit super.egg;
+
+        kapacitor = buildWithGit super.kapacitor;
+
+        gerrit = buildWithGit super.gerrit;
+
+        gerrit-download = buildWithGit super.gerrit-download;
+
+        github-pullrequest = buildWithGit super.github-pullrequest;
+
+        jist = buildWithGit super.jist;
+
+        mandoku = buildWithGit super.mandoku;
+
+        mandoku-tls = buildWithGit super.mandoku-tls;
+
+        magit-p4 = buildWithGit super.magit-p4;
+
+        magit-rbr = buildWithGit super.magit-rbr;
+
+        magit-diff-flycheck = buildWithGit super.magit-diff-flycheck;
+
+        magit-reviewboard = buildWithGit super.magit-reviewboard;
+
+        magit-patch-changelog = buildWithGit super.magit-patch-changelog;
+
+        magit-circleci = buildWithGit super.magit-circleci;
+
+        magit-delta = buildWithGit super.magit-delta;
+
+        orgit = buildWithGit super.orgit;
+
+        orgit-forge = buildWithGit super.orgit-forge;
 
         # upstream issue: missing file header
         mhc = super.mhc.override {
@@ -330,18 +305,36 @@ let
         # part of a larger package
         notmuch = dontConfigure super.notmuch;
 
-        rtags = dontConfigure (externalSrc super.rtags external.rtags);
+        rtags = dontConfigure (externalSrc super.rtags pkgs.rtags);
 
         rtags-xref = dontConfigure super.rtags;
 
         shm = super.shm.overrideAttrs (attrs: {
-          propagatedUserEnvPkgs = [ external.structured-haskell-mode ];
+          propagatedUserEnvPkgs = [ pkgs.haskellPackages.structured-haskell-mode ];
         });
 
         # Telega has a server portion for it's network protocol
         telega = super.telega.overrideAttrs (old: {
           buildInputs = old.buildInputs ++ [ pkgs.tdlib ];
-          nativeBuildInputs = [ external.pkg-config ];
+          nativeBuildInputs = [ pkgs.pkg-config ];
+
+          patches = [
+            (pkgs.fetchpatch {
+              name = "telega-server-bin-store-prefer.patch";
+              url = "https://github.com/zevlg/telega.el/commit/72550f984ca869309d197203ef7de99182d71729.patch";
+              sha256 = "18xvz53bygksak6h5f8cz79y83p2va15i8qz7n4s3g9gsklmkj2p";
+            })
+          ];
+
+          postPatch = ''
+            substituteInPlace telega-customize.el \
+              --replace 'defcustom telega-server-command "telega-server"' \
+                        "defcustom telega-server-command \"$out/bin/telega-server\""
+
+            substituteInPlace telega-sticker.el --replace '"dwebp"' '"${pkgs.libwebp}/bin/dwebp"'
+
+            substituteInPlace telega-vvnote.el --replace '"ffmpeg' '"${pkgs.ffmpeg}/bin/ffmpeg'
+          '';
 
           postBuild = ''
             cd source/server
@@ -358,12 +351,12 @@ let
         treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ];
         });
 
         vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: {
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ];
         });
 
         zmq = super.zmq.overrideAttrs (old: {
@@ -372,11 +365,11 @@ let
             make
           '';
           nativeBuildInputs = [
-            external.autoconf
-            external.automake
-            external.pkg-config
-            external.libtool
-            (external.zeromq.override { enableDrafts = true; })
+            pkgs.autoconf
+            pkgs.automake
+            pkgs.pkg-config
+            pkgs.libtool
+            (pkgs.zeromq.override { enableDrafts = true; })
           ];
           postInstall = ''
             mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-*
@@ -459,13 +452,7 @@ let
         window-numbering = markBroken super.window-numbering;
 
         editorconfig = super.editorconfig.overrideAttrs (attrs: {
-          propagatedUserEnvPkgs = [ external.editorconfig-core-c ];
-        });
-
-        egg = super.egg.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+          propagatedUserEnvPkgs = [ pkgs.editorconfig-core-c ];
         });
 
         # missing dependencies
@@ -473,95 +460,8 @@ let
           packageRequires = with self; [ evil highlight ];
         });
 
-        kapacitor = super.kapacitor.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        gerrit = super.gerrit.overrideAttrs (attrs: {
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        gerrit-download = super.gerrit-download.overrideAttrs (attrs: {
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        github-pullrequest = super.github-pullrequest.overrideAttrs (attrs: {
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
         helm-rtags = fix-rtags super.helm-rtags;
 
-        jist = super.jist.overrideAttrs (attrs: {
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        mandoku = super.mandoku.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        mandoku-tls = super.mandoku-tls.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-p4 = super.magit-p4.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-rbr = super.magit-rbr.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-diff-flycheck = super.magit-diff-flycheck.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-reviewboard = super.magit-reviewboard.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-patch-changelog = super.magit-patch-changelog.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-circleci = super.magit-circleci.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        orgit =
-          (super.orgit.overrideAttrs (attrs: {
-            # searches for Git at build time
-            nativeBuildInputs =
-              (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-          }));
-
-        orgit-forge = super.orgit-forge.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
         # tries to write to $HOME
         php-auto-yasnippets = super.php-auto-yasnippets.overrideAttrs (attrs: {
           HOME = "/tmp";
@@ -570,7 +470,7 @@ let
         racer = super.racer.overrideAttrs (attrs: {
           postPatch = attrs.postPatch or "" + ''
             substituteInPlace racer.el \
-              --replace /usr/local/src/rust/src ${external.rustPlatform.rustcSrc}
+              --replace /usr/local/src/rust/src ${pkgs.rustPlatform.rustcSrc}
           '';
         });
 
@@ -599,7 +499,7 @@ let
         w3m = super.w3m.override (args: {
           melpaBuild = drv: args.melpaBuild (drv // {
             prePatch =
-              let w3m = "${lib.getBin external.w3m}/bin/w3m"; in
+              let w3m = "${lib.getBin pkgs.w3m}/bin/w3m"; in
               ''
                 substituteInPlace w3m.el \
                 --replace 'defcustom w3m-command nil' \
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix
index 7adb58c8bd73..01ad01f90495 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix
@@ -4,10 +4,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "20210111";
+        version = "20210322";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-20210111.tar";
-          sha256 = "1hn3i583h3idmiv1plbp0p6qi3myl317vl43qyxjks2nvqfj5313";
+          url = "https://orgmode.org/elpa/org-20210322.tar";
+          sha256 = "0iv54rhwa0972yr1wqzmlkggs5vc6qajz8mmyfhynp65ap088g6v";
         };
         packageRequires = [];
         meta = {
@@ -19,10 +19,10 @@
       elpaBuild {
         pname = "org-plus-contrib";
         ename = "org-plus-contrib";
-        version = "20210111";
+        version = "20210322";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-plus-contrib-20210111.tar";
-          sha256 = "1qw44y4v4vg0vhz1i55x4fjiaxfaqcch0mqm98sc5f31fw3r4zga";
+          url = "https://orgmode.org/elpa/org-plus-contrib-20210322.tar";
+          sha256 = "0riswc3ira8hsawm37yypji55z47bw2477kaw3qx7ghz3n62r9nf";
         };
         packageRequires = [];
         meta = {
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json b/nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
index 5dcb01dcefac..7703579db80f 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
@@ -191,6 +191,29 @@
   }
  },
  {
+  "ename": "aas",
+  "commit": "30cedefefdab6d423bfc8851463a7892c266be70",
+  "sha256": "0nn740r5w62a783ky9nsm3bzagcvamj0psd120vkdx28ml3g9xyr",
+  "fetcher": "github",
+  "repo": "ymarco/auto-activating-snippets",
+  "unstable": {
+   "version": [
+    20210316,
+    2027
+   ],
+   "commit": "af9d405a0f6ea078ae5b6567f664f4166f9f0ab0",
+   "sha256": "0jsnvnpvrrz5b4vh9jf3sjjm0pgh4241zw54bjkqa1ld9vvxwkxn"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "commit": "ffafc54e02475b9e7f7bcbe1d8ed3f11bcb4b542",
+   "sha256": "054sfzvm1ihaxy4hnhl424y5py8k7wi73rb0lqvbi4v8iphihzhr"
+  }
+ },
+ {
   "ename": "abc-mode",
   "commit": "aaee9dc5de06747374f311d86a550d3cc15beed1",
   "sha256": "0qf5lbszyscmagiqhc0d05vzkhdky7ini4w33z1h3j5417sscrcx",
@@ -241,11 +264,11 @@
   "repo": "afroisalreadyinu/abl-mode",
   "unstable": {
    "version": [
-    20190403,
-    904
+    20210122,
+    1508
    ],
-   "commit": "44b7d946bc3a693f5a931c4a62c0a67d42e8d4dc",
-   "sha256": "070c408bq5pliq0xbd1861l6db4sbfpnj3r6aknbqh2vb7l4yimb"
+   "commit": "fdd83e732b2c870f4ddc0f62b5b261e03bfb212a",
+   "sha256": "1ny3386n5h3s3lg9235vj17vwsx6n1y99kln6vgqy6kk37q0ig42"
   }
  },
  {
@@ -279,16 +302,16 @@
   "repo": "abstools/abs-mode",
   "unstable": {
    "version": [
-    20201021,
-    958
+    20210303,
+    1059
    ],
    "deps": [
     "erlang",
     "flymake",
     "maude-mode"
    ],
-   "commit": "9101779ef8861cb1f46d288946356e600359a4e0",
-   "sha256": "08ymmf030gsk7hfvbjp302micnz2fa087i6f44l2i7yz592myhsz"
+   "commit": "5a766c734fcdf3b6c2ad88bbeb5c1cd79cdeaf44",
+   "sha256": "10ywyz0g4nnkap66xc7ynr9lq9z9jpsd0i3qwxs3fqkjwixwylz5"
   },
   "stable": {
    "version": [
@@ -1006,22 +1029,22 @@
     "auto-complete",
     "yasnippet"
    ],
-   "commit": "7d97ecc07e6b4ac772670e26583f11e77fdc69fd",
-   "sha256": "00jdn4dw975bb6fgf7wyxjbmvs31p8bav376d017kk56q9w6mv1f"
+   "commit": "9770c95bf2df93d9cb0f200723b03b3d9a480640",
+   "sha256": "188z1i209z61nwfcgffgp90rdcsnl75izxpqv4x1vbaay5fvg33f"
   },
   "stable": {
    "version": [
     2,
-    3,
-    1
+    4,
+    0
    ],
    "deps": [
     "ac-php-core",
     "auto-complete",
     "yasnippet"
    ],
-   "commit": "1477a463e7b2fadf2542d9563b28424481d19bf3",
-   "sha256": "04163qnz5kq3cwmkm5yfvahq8d8ybmchlimzdp15p1izhfpvxnfn"
+   "commit": "33ed12bb2ec627a8a05360885f071e4a88fff399",
+   "sha256": "1ffayysbqh7vq65vhbmqg9yp03fqfnwj3drwyinr5ia81acp37nz"
   }
  },
  {
@@ -1032,8 +1055,8 @@
   "repo": "xcwen/ac-php",
   "unstable": {
    "version": [
-    20201015,
-    903
+    20210218,
+    559
    ],
    "deps": [
     "dash",
@@ -1043,14 +1066,14 @@
     "s",
     "xcscope"
    ],
-   "commit": "7d97ecc07e6b4ac772670e26583f11e77fdc69fd",
-   "sha256": "00jdn4dw975bb6fgf7wyxjbmvs31p8bav376d017kk56q9w6mv1f"
+   "commit": "9770c95bf2df93d9cb0f200723b03b3d9a480640",
+   "sha256": "188z1i209z61nwfcgffgp90rdcsnl75izxpqv4x1vbaay5fvg33f"
   },
   "stable": {
    "version": [
     2,
-    3,
-    1
+    4,
+    0
    ],
    "deps": [
     "dash",
@@ -1060,8 +1083,8 @@
     "s",
     "xcscope"
    ],
-   "commit": "1477a463e7b2fadf2542d9563b28424481d19bf3",
-   "sha256": "04163qnz5kq3cwmkm5yfvahq8d8ybmchlimzdp15p1izhfpvxnfn"
+   "commit": "33ed12bb2ec627a8a05360885f071e4a88fff399",
+   "sha256": "1ffayysbqh7vq65vhbmqg9yp03fqfnwj3drwyinr5ia81acp37nz"
   }
  },
  {
@@ -1110,8 +1133,8 @@
     "auto-complete",
     "rtags"
    ],
-   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
-   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
+   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
+   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
   },
   "stable": {
    "version": [
@@ -1401,14 +1424,14 @@
   "repo": "abo-abo/ace-link",
   "unstable": {
    "version": [
-    20200518,
-    957
+    20210121,
+    923
    ],
    "deps": [
     "avy"
    ],
-   "commit": "298f02f7dd117f9ec01f6aa2a2ddfecae0efb7f4",
-   "sha256": "1i243wfwrbxn00sh96248lpqfb7cvxqqwlc78nf8kim4ymylpp41"
+   "commit": "e1b1c91b280d85fce2194fea861a9ae29e8b03dd",
+   "sha256": "190m4ikm9580gmd0yf9k7a7q9l7087zdm9gm1hv12wg8g8g6pzca"
   },
   "stable": {
    "version": [
@@ -1484,14 +1507,14 @@
   "repo": "mrkkrp/ace-popup-menu",
   "unstable": {
    "version": [
-    20190713,
-    1337
+    20210318,
+    1748
    ],
    "deps": [
     "avy-menu"
    ],
-   "commit": "390f0711d2a42675980d8b531fd5dc396b85f24b",
-   "sha256": "00va4glq9iibrfrnhinv8a7f5q0z7xvfyxnjf1rl4z770drz9j4n"
+   "commit": "9a2056c53faba0bd7b7f44fb3faabf4d34b8497f",
+   "sha256": "0i7a708y9x4xdny3ccqwngn4la5vg0539c7qk87d163gl61mbk7k"
   },
   "stable": {
    "version": [
@@ -1716,11 +1739,11 @@
   "repo": "codesuki/add-node-modules-path",
   "unstable": {
    "version": [
-    20180710,
-    2342
+    20210305,
+    312
    ],
-   "commit": "f31e69ccb681f882aebb806ce6e9478e3ac39708",
-   "sha256": "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"
+   "commit": "7d9be65b3be062842b7ead862dec15d6f25db4a2",
+   "sha256": "0za0jjba2qdpqdkcp5bch6ma8crf0vsi7bxj2rasn2icqgxyn89m"
   },
   "stable": {
    "version": [
@@ -1756,6 +1779,30 @@
   }
  },
  {
+  "ename": "ado-mode",
+  "commit": "337f21eb8f4af233b4c0bc658cd82e8479b49aaa",
+  "sha256": "1gybsnj7s21vm1iakz4hy5d6skzcfi6455wnikv9dpwy1069rw32",
+  "fetcher": "github",
+  "repo": "louabill/ado-mode",
+  "unstable": {
+   "version": [
+    20210219,
+    1548
+   ],
+   "commit": "438e2b9ca1ce9fd1043998359dfe5a32a0ddb6d0",
+   "sha256": "1fpk7lc5z9v8an9x8j1v3l2pkbg93368qv23jzsqs84r3ndw5b7k"
+  },
+  "stable": {
+   "version": [
+    16,
+    1,
+    4
+   ],
+   "commit": "29d56532c7ab6f680c596add31fd80cd79186e89",
+   "sha256": "1hvxxjwbxw8ivj5399f745l3gcrgf2j0qpbli50pxz0h91pcvi5p"
+  }
+ },
+ {
   "ename": "adoc-mode",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "0jd3zr4zpb4qqn504azl0y02cryv7n9wphv64b0fbpipr7w5hm2c",
@@ -1864,25 +1911,25 @@
   "repo": "agda/agda",
   "unstable": {
    "version": [
-    20200922,
-    1231
+    20210220,
+    2039
    ],
    "deps": [
     "annotation",
     "eri"
    ],
-   "commit": "c5400349d7d9cb1e54af19bdb2046b52ecada5bc",
-   "sha256": "02kma8f6v6vxzbfzd2limwabp8a5hzjyg9kfabgp1j0dwvsl64pf"
+   "commit": "ecb93230ad9327991e542731756cbe1405c85d5f",
+   "sha256": "1acs54ngr26qw5hbhq7xdw4wspqhhmr97gj6rnwxhz4yx02wxd9w"
   },
   "stable": {
    "version": [
     2,
     6,
     1,
-    1
+    3
    ],
-   "commit": "fce01db8f9d2ceb9c3a4aa179330ea4aa7587a71",
-   "sha256": "0fzq9pfkvsdin04vzcz2vyjq3gx0lfhbpwpz0zyfa3b84dgffxq7"
+   "commit": "e5486b79cc78689e3fd07b6c924d0085063915ea",
+   "sha256": "1zl7c0rb5rg867a431apxlzj2flg3hjidamqa5prc1bzpmfaywyz"
   }
  },
  {
@@ -2331,11 +2378,11 @@
   "repo": "domtronn/all-the-icons.el",
   "unstable": {
    "version": [
-    20210114,
-    1520
+    20210313,
+    2205
    ],
-   "commit": "ed978fa64fdefc817e8b1b826c87e8928a26f2ce",
-   "sha256": "0l5jc0f5q5p4i2c5s6vrryxkc0fapxffz8x1yvk32j151rz932rc"
+   "commit": "a8c84176af7f3b97019423ebf3e02f983f4ebdf9",
+   "sha256": "07vscdf28wjjxsqaich694r94rf9iffjbqsvmqcq8h0qhqzfp2pq"
   },
   "stable": {
    "version": [
@@ -2352,20 +2399,20 @@
  },
  {
   "ename": "all-the-icons-dired",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1qj639z24ln29hv6c51g1vsa2jsy4qrlhf8c7d5w9bxcrcn2fnr9",
+  "commit": "26f650e465b22a0afdb77318aebfcfbdb832c9ce",
+  "sha256": "0qa2x3c9j779yr1q0kfi4696zhbgc1drafskl7rymdpia3vqkwd0",
   "fetcher": "github",
-  "repo": "jtbm37/all-the-icons-dired",
+  "repo": "wyuenho/all-the-icons-dired",
   "unstable": {
    "version": [
-    20200403,
-    1018
+    20210302,
+    1410
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5",
-   "sha256": "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"
+   "commit": "f401fe289cd93936e7747b1541aa98117b7ca96f",
+   "sha256": "1j5vbrsxy6blickkbblagyn6binvpalc2kxr7b438xhx8mgfbapv"
   }
  },
  {
@@ -2395,14 +2442,14 @@
   "repo": "seagle0128/all-the-icons-ibuffer",
   "unstable": {
    "version": [
-    20201218,
-    356
+    20210325,
+    512
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "0260cd194d150126bcb81823742ab53036942c73",
-   "sha256": "1snxbi5wv5qa78vx487rdrarpydrabxz3s6a9ck54wkf91mkbcvv"
+   "commit": "5a984b4d7f811e2ad08fdc461a1e89205804b7bd",
+   "sha256": "05bglgqc4q5p9zr6ylllg16crpxcnb6p51xkk5v1nljgi3n9786l"
   },
   "stable": {
    "version": [
@@ -2457,15 +2504,15 @@
   "repo": "seagle0128/all-the-icons-ivy-rich",
   "unstable": {
    "version": [
-    20201215,
-    1647
+    20210303,
+    1747
    ],
    "deps": [
     "all-the-icons",
     "ivy-rich"
    ],
-   "commit": "6eb63a158cd5e1b47635704ebdd3e010e7b914f8",
-   "sha256": "1xvcgylx2h9mrpm56icqsflyxvy88mprgxrs6byhkvkm3p7jzin2"
+   "commit": "2efbbf231ea3b3248177051a10c52c151686c4b4",
+   "sha256": "1rrnanmmq07jx83w51b9gpwv2al1xw01xqb6xbpzd4bi2gjlayy5"
   },
   "stable": {
    "version": [
@@ -2489,11 +2536,11 @@
   "repo": "cryon/almost-mono-themes",
   "unstable": {
    "version": [
-    20200211,
-    2126
+    20210306,
+    1040
    ],
-   "commit": "2f5935a1a9d042751c7135cac79875886edb2556",
-   "sha256": "1q1ry37rcpzwwl2bwf3j8nmhap7v72fg0hdzxlls89gm3jl3nb97"
+   "commit": "a7dc21078e25dab2b054d64e5b40ecce2878edb2",
+   "sha256": "12q9wddkynl90hl8vcy69hwl2g9flfz7r4fsp81bwc3vv130s7cg"
   }
  },
  {
@@ -2714,37 +2761,37 @@
   "repo": "DarwinAwardWinner/amx",
   "unstable": {
    "version": [
-    20210101,
-    1921
+    20210305,
+    118
    ],
    "deps": [
     "s"
    ],
-   "commit": "b99149715266b5c2c48f5a0fc43716d36575da5f",
-   "sha256": "14k1wrjfhawb18fyrfdv2lv0nwfpliw0f14hrhdb3kmshp5dsb3x"
+   "commit": "37f9c7ae55eb0331b27200fb745206fc58ceffc0",
+   "sha256": "0h1cxqqf0hixh25j679r57bq9dv0b20icf268wbnsim5xp88ngf8"
   },
   "stable": {
    "version": [
     3,
-    3
+    4
    ],
    "deps": [
     "s"
    ],
-   "commit": "394734e42aa8c43940df358e77a69248b42f2a9c",
-   "sha256": "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"
+   "commit": "37f9c7ae55eb0331b27200fb745206fc58ceffc0",
+   "sha256": "0h1cxqqf0hixh25j679r57bq9dv0b20icf268wbnsim5xp88ngf8"
   }
  },
  {
   "ename": "anaconda-mode",
-  "commit": "c756ccbae044bc23131060355532261aa9a12409",
-  "sha256": "1cr4qyk2brm1kvm7i9cmvihid8799df7yhmmdizv3sj5l6qnsyfr",
+  "commit": "83b7dcc75e35d9527bce39c5dca3ade0b68ddeb7",
+  "sha256": "1p1bik1fh50hf6ylbhlszzwdah7gp3ay93j4a0xz49cksd1a4ksq",
   "fetcher": "github",
   "repo": "pythonic-emacs/anaconda-mode",
   "unstable": {
    "version": [
-    20210101,
-    833
+    20210304,
+    1723
    ],
    "deps": [
     "dash",
@@ -2752,8 +2799,8 @@
     "pythonic",
     "s"
    ],
-   "commit": "80afec20f91f13614647b192522fff460505db6f",
-   "sha256": "04f6kw4rd8k6waiyfbk7x8qdrqm411mdsdzjh2w9rvmv7y36ckh8"
+   "commit": "344727c9e07e108896740c782689bf3588edcce5",
+   "sha256": "020ix7jlzx3k9g9flwcq8ddgplby62gcfj28wxhq0pcngy8fnqjz"
   },
   "stable": {
    "version": [
@@ -2779,15 +2826,11 @@
   "repo": "didibus/anakondo",
   "unstable": {
    "version": [
-    20200503,
-    123
-   ],
-   "deps": [
-    "clojure-mode",
-    "projectile"
+    20210221,
+    1727
    ],
-   "commit": "ba6b56c18f2b0ae035b448813b27114d19fb821c",
-   "sha256": "0dbhkinfn6ahvi9pi7kghlc0fccil15lx0pd1rpgv4d7n3bnsdna"
+   "commit": "c48518560815c49d8d78fb9069906d17e883385e",
+   "sha256": "1fzsqd150gpmrj8kz3zy9cd78x9vank7ra720mljhyf04z0h1mj6"
   },
   "stable": {
    "version": [
@@ -3061,11 +3104,11 @@
   "repo": "bastibe/annotate.el",
   "unstable": {
    "version": [
-    20210108,
-    1828
+    20210322,
+    1739
    ],
-   "commit": "d4eff870d9c1575731890acfdde89511d0322ec1",
-   "sha256": "11k5j7xgnxq4s5ar56f3qmbr8vnrhi231zv0iiv2p0nqryaaj354"
+   "commit": "54ac759facadacbfea5c1e7c2975e2da6434cdda",
+   "sha256": "18pr4bympwl6c2a1bsk4s8ixg4l7ykcxfh1bk42vvbcqnbmvd7dw"
   },
   "stable": {
    "version": [
@@ -3103,18 +3146,18 @@
     20200914,
     644
    ],
-   "commit": "c5400349d7d9cb1e54af19bdb2046b52ecada5bc",
-   "sha256": "02kma8f6v6vxzbfzd2limwabp8a5hzjyg9kfabgp1j0dwvsl64pf"
+   "commit": "ecb93230ad9327991e542731756cbe1405c85d5f",
+   "sha256": "1acs54ngr26qw5hbhq7xdw4wspqhhmr97gj6rnwxhz4yx02wxd9w"
   },
   "stable": {
    "version": [
     2,
     6,
     1,
-    1
+    3
    ],
-   "commit": "fce01db8f9d2ceb9c3a4aa179330ea4aa7587a71",
-   "sha256": "0fzq9pfkvsdin04vzcz2vyjq3gx0lfhbpwpz0zyfa3b84dgffxq7"
+   "commit": "e5486b79cc78689e3fd07b6c924d0085063915ea",
+   "sha256": "1zl7c0rb5rg867a431apxlzj2flg3hjidamqa5prc1bzpmfaywyz"
   }
  },
  {
@@ -3555,11 +3598,19 @@
   "repo": "emacsorphanage/applescript-mode",
   "unstable": {
    "version": [
-    20090321,
-    632
+    20210223,
+    1539
+   ],
+   "commit": "a45c426b7e4a450faea004ef5b842fd37e17a7c6",
+   "sha256": "1f7bvcv4qqqa5bsfrcs69yc1phgnyrh5mbnb2hhgq72z8ymmrn7q"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
    ],
-   "commit": "8f888cd80af1e0902b5609143facd3051bc94892",
-   "sha256": "0d3bqx6346vmniv001jgd6wggp80kv1kqc38sdgd88862gkqnqyg"
+   "commit": "42b3db3838821f240e05752de4337359d25d8c04",
+   "sha256": "1z0z0pxy5f5lsw4pskk77dfql5s89iqb6zzkm4pr5r5pcqbhla1s"
   }
  },
  {
@@ -3593,11 +3644,11 @@
   "repo": "waymondo/apropospriate-theme",
   "unstable": {
    "version": [
-    20191220,
-    2017
+    20210316,
+    2156
    ],
-   "commit": "543341f0836b24e001375c530c4706e9345ec1e3",
-   "sha256": "03917db85x4c2a1ba94wmik21wwnwf9xpz6wc0d0ay0zkkvqsn5g"
+   "commit": "22b394e3c9fc8db3a33c0f7fa36263ce44b0dec5",
+   "sha256": "1075f1gp9q210h4varmrj69g35wf8dygamzwsgfp38kqggdqdrxq"
   },
   "stable": {
    "version": [
@@ -3639,8 +3690,8 @@
     "let-alist",
     "request"
    ],
-   "commit": "5fe8b035b2b6bc165728444bb8e9792d14b7409d",
-   "sha256": "1wbpjz5jgpph6c6wk29dxz8r368ai6jx9cb4y2mdcpngig8kmazm"
+   "commit": "c107a2e21cd1ac6008d8baaeeedb3fab26583d45",
+   "sha256": "19xrm4nwwsf86ysqnqx7jfl78gbg66jj4yfw3h99y3nd82j2rdws"
   }
  },
  {
@@ -3724,11 +3775,11 @@
   "repo": "motform/arduino-cli-mode",
   "unstable": {
    "version": [
-    20201001,
-    1357
+    20210321,
+    1641
    ],
-   "commit": "00893089344cfeef387e6da1844fa49d14ff4fa9",
-   "sha256": "1p37c18ax1nki5175xz2c75pjbsg5wsd3m6qaln9x0mj5hdgz860"
+   "commit": "1724860a6a930a539472bb56bc3cae0e317dc055",
+   "sha256": "184phkylr4ax586glx7qx2f8yfdbbjx94vwq698z2yxs4jphni91"
   }
  },
  {
@@ -3739,14 +3790,14 @@
   "repo": "stardiviner/arduino-mode",
   "unstable": {
    "version": [
-    20201231,
-    214
+    20210216,
+    926
    ],
    "deps": [
     "spinner"
    ],
-   "commit": "10af99792c8e4b97ea542c55bfed246781fdd1ba",
-   "sha256": "1gz4hmmijlilqqh7scyidh5kbbmyvq12dhnjgnn9h6y9q5qabibq"
+   "commit": "969b49ef6c954a067b3cbca43a4cdc1c04b1a62a",
+   "sha256": "0cjygkddlla2ygiyn506mwqjfn52lqpwfbv1fbwcqljvfspc65am"
   }
  },
  {
@@ -3980,11 +4031,11 @@
   "repo": "jwiegley/emacs-async",
   "unstable": {
    "version": [
-    20200809,
-    501
+    20210117,
+    718
    ],
-   "commit": "14f48de586b0977e3470f053b810d77b07ea427a",
-   "sha256": "16m67s2mpr2ak7vyc3dxzln3v5136b85dsirjkd2fm2n934q9h0r"
+   "commit": "d7e7f79ee42311a0187aa2ab4f4e2f8843fa28da",
+   "sha256": "11r6jzqyywgzxmpq2z97j3ni5b1sv6z5lrjmkqip396bxmw9zxm1"
   },
   "stable": {
    "version": [
@@ -4130,11 +4181,11 @@
   "repo": "jonathanchu/atom-one-dark-theme",
   "unstable": {
    "version": [
-    20200831,
-    342
+    20210128,
+    1640
    ],
-   "commit": "321739d50b8a3b9152972134e83e69a67e12ee81",
-   "sha256": "0a6lx2pav0a0k6lfq8ar03z33dis29diq1gvxfdqwa3sayn6fbab"
+   "commit": "b34b62e85593812b55ee552a1cb0eecfb04767bb",
+   "sha256": "1n98fxspx1qmm5p5s591jy2baviqy8b5hjn9hsrvqbmixc7arrhv"
   },
   "stable": {
    "version": [
@@ -4154,15 +4205,15 @@
   "repo": "alpha22jp/atomic-chrome",
   "unstable": {
    "version": [
-    20180617,
-    724
+    20210221,
+    59
    ],
    "deps": [
     "let-alist",
     "websocket"
    ],
-   "commit": "a505f638866f9e7b913784be0dc84f338e9ad449",
-   "sha256": "081465ahis2rvlklzn2vakbwn5dgr43ks4csp3arnlj11b43f3ai"
+   "commit": "c73367d8aa660f2b3c3f70ef5c39f5b502d60404",
+   "sha256": "07bw5fjmszxsvvcb0415zfawfmzqwj0qdvaigxrbb5rinazwb0pn"
   },
   "stable": {
    "version": [
@@ -4186,8 +4237,8 @@
   "repo": "jyp/attrap",
   "unstable": {
    "version": [
-    20200908,
-    1252
+    20210219,
+    1001
    ],
    "deps": [
     "dash",
@@ -4195,8 +4246,8 @@
     "flycheck",
     "s"
    ],
-   "commit": "9c881548debcf59b8aadda0ef4abca3c9a68dd80",
-   "sha256": "01x2nwqzrnngvmw6zynh6xhfg3jx7l22mv3gndi5xzxqngqh137s"
+   "commit": "778382eba8e1a449862b1573e90c1e79cf5caeb1",
+   "sha256": "0a2n1p2nasd2ikv86p3sm5sn4qb3avj2sni9gja3yn6kdqn8s8jp"
   },
   "stable": {
    "version": [
@@ -4221,26 +4272,26 @@
   "repo": "tsuu32/auctex-cluttex",
   "unstable": {
    "version": [
-    20201029,
-    1241
+    20210226,
+    302
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "e01f42ef4db28d284db010dbb590b197520f73d4",
-   "sha256": "0iq14adyry26n5c6i67fd6aiwlcw4a9shndljlvvzc7g82kdw7vl"
+   "commit": "9a15742a6de1285831329eac93f9e35752472685",
+   "sha256": "1ra2qkr9wadnx5aqg6paxk8w4h9m6c4jrl4b7zb5l6s1csw1llj1"
   },
   "stable": {
    "version": [
     0,
-    1,
+    2,
     0
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "e358f7148092d8ed64703641b5621e130cce458d",
-   "sha256": "1whzcp9wvpwn1c33n7mqxx8v6g4apg3cq5h2ffl74423ysymry71"
+   "commit": "4e05ad8976f352e67d56d9a479a4a570dfe7ba73",
+   "sha256": "0zgd7yascqn2dwjd20f1v962q7b24wibla5fwnbl9df1x36asqhs"
   }
  },
  {
@@ -4370,11 +4421,11 @@
   "repo": "DamienCassou/auth-source-pass",
   "unstable": {
    "version": [
-    20201108,
-    1043
+    20210210,
+    1908
    ],
-   "commit": "aa7f17116ec3f760eb414d655ba20016b11a4a0e",
-   "sha256": "08q1dicdj4fgmn47mslinrl7wfnpix98xdwvhz78cvqhclb1662s"
+   "commit": "468bba286fc20d739ed7724ec884357907ac8bda",
+   "sha256": "1pazl19rd4fvnfi9i2ssaygby5pw2a821aysy8jswsij57lw40dy"
   },
   "stable": {
    "version": [
@@ -4457,8 +4508,8 @@
    "deps": [
     "packed"
    ],
-   "commit": "f8619d1616b523918323914ec77bfbee2c559781",
-   "sha256": "1qcszjjqkq811p8pafjx0knm4giv7dls4x1xamhzbndjz0d022kz"
+   "commit": "4952a1a1cadf1bdf7018610a71f8c3acb67962c2",
+   "sha256": "17p7jmr8qd3hgx79iiljsi2kpy24g8v2ynxiz023wanasxr6bdc6"
   },
   "stable": {
    "version": [
@@ -4488,8 +4539,8 @@
     "cl-lib",
     "popup"
    ],
-   "commit": "6bbb6c7ab8e5aa2d389807fce65bbc5ce7065900",
-   "sha256": "0cxs9is3ifn9grqaw50dvpsjkkmwh398a6lqc93fny7p6d1hd9ja"
+   "commit": "aafd3f566a8002a1e9b3e197721a2660c0a835ff",
+   "sha256": "0ipa5kaprisrmyyqlgzi5giq0449hjflfm81i9a5vy82ikz5lsxg"
   },
   "stable": {
    "version": [
@@ -4795,11 +4846,11 @@
   "repo": "mina86/auto-dim-other-buffers.el",
   "unstable": {
    "version": [
-    20200801,
-    2029
+    20210210,
+    1744
    ],
-   "commit": "cad370fb6c9fc7186c2af221932e097af5900a2d",
-   "sha256": "0hjxadi8245zwwsp0kdz0c6i1j25drbky5cvksdnc8xw2l91kpbs"
+   "commit": "62c936d502f35d168b9e59a66c994d74a62ad2cf",
+   "sha256": "07ilprnidpg8wn28h8ra9ml6pxaixg734ybya0gj1ac6sc3ky52s"
   }
  },
  {
@@ -4894,14 +4945,14 @@
   "repo": "rranelli/auto-package-update.el",
   "unstable": {
    "version": [
-    20200826,
-    2227
+    20210211,
+    2036
    ],
    "deps": [
     "dash"
    ],
-   "commit": "c0df65ac9845ba2c7c9f53bbdbe013f1024f96f9",
-   "sha256": "0fy45psfsfsfrailiqv86bxsb3vxb36wyf7farb0zaxlrqay8qvd"
+   "commit": "22130fb17d00d79497253c94f3e88382cb40c3ac",
+   "sha256": "1z0yfhg44zsra1c29w05fa6gkqidmwjaszxvjhkx4n3mzy3vhqf2"
   },
   "stable": {
    "version": [
@@ -5259,8 +5310,8 @@
     20190331,
     2230
    ],
-   "commit": "c6ccdc83e85719a8bb07ef715cf5fd06866a479c",
-   "sha256": "0z8rykhhhwccy0zg6v3gnghfiawqw3afv4pvxr1hrympiyhyvhvp"
+   "commit": "74e1fcbeca25734235afec9c6a4d0cf73736b62c",
+   "sha256": "0yrcsr4360v222klahbccfq3vb4kp5xdsibydwircv36xhxplzq3"
   }
  },
  {
@@ -5396,15 +5447,27 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20210112,
-    2334
+    20210125,
+    2115
    ],
    "deps": [
     "avy",
     "embark"
    ],
-   "commit": "14dcc650d9339a6458bb0babfed35de13e76fa50",
-   "sha256": "15shi1i8071833mjzrwyy5iw818sxcqym0cb0zvi9bk5nvprp58b"
+   "commit": "49cd0aff39e7bc9173ec49d1c14d7ab8d9d25355",
+   "sha256": "19ihm3v7ck5rx4wff5hkrrzqbjk9g9vm8j0axvdf77hr6vzjsak8"
+  },
+  "stable": {
+   "version": [
+    0,
+    10
+   ],
+   "deps": [
+    "avy",
+    "embark"
+   ],
+   "commit": "47daded610b245caf01a97d74c940aff91fe14e2",
+   "sha256": "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"
   }
  },
  {
@@ -5435,14 +5498,14 @@
   "repo": "mrkkrp/avy-menu",
   "unstable": {
    "version": [
-    20190713,
-    1348
+    20210321,
+    1732
    ],
    "deps": [
     "avy"
    ],
-   "commit": "970204989bcd4a4f8223c2fe980a08dc58441045",
-   "sha256": "196pwh83p0yrnagpiig8h2mq9xxm7wk9q8x832ffwizip4yni80b"
+   "commit": "2c5e0c08d6cb27c213a8eda5c7033e3ff2aa9661",
+   "sha256": "11sa9a5vh546dpnxmrhxps77c225vkrfqsb6qlsnli2kmp5cxj48"
   },
   "stable": {
    "version": [
@@ -5602,11 +5665,11 @@
   "url": "https://bitbucket.org/pdo/axiom-environment",
   "unstable": {
    "version": [
-    20201212,
-    1109
+    20210312,
+    2248
    ],
-   "commit": "47d6dffc29286badb2b1d7143b219e5c1be15bdb",
-   "sha256": "1dppyda9jkwh6fj8m4kziq84w0b5yzxrhq87jhkv54jjra6yxbb4"
+   "commit": "ac8228a702290732ba12c5d13b38576a57afb0d6",
+   "sha256": "1nrlgrckvh2fiwis9bmr95h2bpxfkz1nknxdz61380f2caqwwhw7"
   }
  },
  {
@@ -5977,11 +6040,11 @@
   "repo": "belak/base16-emacs",
   "unstable": {
    "version": [
-    20200929,
-    2159
+    20210320,
+    519
    ],
-   "commit": "93b1513a9994355492314e809cdbfb0d21f1e30d",
-   "sha256": "0sw483bzm5ax07cyvjbm6qaji5m0xw4mzcgrxi5ki81i0y79x59q"
+   "commit": "0c3aa33520ae4cb467c76ce53d438827df77eb1a",
+   "sha256": "0ibwxwyncyrgbpvhcx523813njdgln34wmqf0x826qv4hh4ai0yw"
   },
   "stable": {
    "version": [
@@ -6081,14 +6144,26 @@
   "repo": "dykstrom/basic-mode",
   "unstable": {
    "version": [
-    20180919,
-    1752
+    20210316,
+    1253
+   ],
+   "deps": [
+    "seq"
+   ],
+   "commit": "eaa5f24d2fb303d9e5d7de2a28c7c18b01532ab6",
+   "sha256": "1qvrf6mdrxzzd66888saddjrg5008rrgk0shg6vsyd39gk2bai22"
+  },
+  "stable": {
+   "version": [
+    0,
+    4,
+    3
    ],
    "deps": [
     "seq"
    ],
-   "commit": "812f078240f9de09491701853569335ba6d9b5ff",
-   "sha256": "1492klgbkxb46x02kmhngccx4p9fmjvf6m4ay89j7pyaixvcqj8v"
+   "commit": "0f135eb6581dabe69fff07f31082c8f53b4dcc70",
+   "sha256": "13z1b9wqhrx5c87ymc7jikvais7xd1jzx5qsnn03d6wmlm1y027z"
   }
  },
  {
@@ -6129,21 +6204,20 @@
   "repo": "AlonTzarafi/battle-haxe",
   "unstable": {
    "version": [
-    20200222,
-    56
+    20210219,
+    354
    ],
    "deps": [
     "async",
     "cl-lib",
     "company",
     "dash",
-    "dash-functional",
     "f",
     "helm",
     "s"
    ],
-   "commit": "64d20c9ea3fd503fdefafda122e7095c192e72a3",
-   "sha256": "15ykwqg100vjl014awwwzmch84vwqyrlm46c22w9x3dgqk8yxyi2"
+   "commit": "2f32c81dcecfc68fd410cb9d2aca303d6e3028c7",
+   "sha256": "0br1iy9zcjqaxmm691axrcbfxmid76rsbkcp1vrpzrdqvrkskpww"
   }
  },
  {
@@ -6157,8 +6231,8 @@
     20200627,
     1625
    ],
-   "commit": "2cf143b616df3de4b199538341d674c58386719e",
-   "sha256": "1p9pxxdx39jmf8sav660ps6mqwbsgcl4v1i9xb8xsd5qdxmwjqli"
+   "commit": "43026c5e09dfca86fb84b9a857708ad419f2215f",
+   "sha256": "0bwabpx56ybk114456x0p4k8xqh0s060ig40jdsqibq89h6m1nab"
   },
   "stable": {
    "version": [
@@ -6303,14 +6377,14 @@
   "repo": "tohojo/bbdb-vcard",
   "unstable": {
    "version": [
-    20201016,
-    1902
+    20210325,
+    2208
    ],
    "deps": [
     "bbdb"
    ],
-   "commit": "8d2fa496e58ded18f5eb589c1781adaf48a5f73f",
-   "sha256": "0ssmr4cyywqhr42fjmk5z3hb1z7ddbbz8y9sc5bzad7wncbybwbv"
+   "commit": "113c66115ce68316e209f51ebce56de8dded3606",
+   "sha256": "1sr5kd2gvw1b4hl147yb60cgx6j730vdnpyr09p7vmpw65hzwlwm"
   },
   "stable": {
    "version": [
@@ -6440,11 +6514,11 @@
   "repo": "DamienCassou/beginend",
   "unstable": {
    "version": [
-    20200526,
-    2005
+    20210320,
+    1115
    ],
-   "commit": "9c7a92779d75f6fd985cf707ff5241bc98ccea6c",
-   "sha256": "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"
+   "commit": "18d0bbde367dfe259d697d1c589e3040d69797ee",
+   "sha256": "13gdlaiqi3jnavwrwj5ic9aqycfvbzw8d4v0413nwzag35bz4mpl"
   },
   "stable": {
    "version": [
@@ -6597,17 +6671,17 @@
  },
  {
   "ename": "better-defaults",
-  "commit": "7bb729c1ad8602a5c0c27e81c9442981a54a924a",
-  "sha256": "13bqcmx2gagm2ykg921ik3awp8zvw5d4lb69rr6gkpjlqp7nq2cm",
-  "fetcher": "github",
-  "repo": "technomancy/better-defaults",
+  "commit": "8bec8e696afde1b89502f312efc0054ca59502a6",
+  "sha256": "0vl6ivjjg4sy67ma18ya64r4wn64z2kqbxaa435s9ayszmbpmpa2",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~technomancy/better-defaults",
   "unstable": {
    "version": [
-    20200717,
-    2012
+    20210222,
+    1928
    ],
-   "commit": "293237a22a4f24171dd9910d6517a0eccf526fdf",
-   "sha256": "0f3alik361d81kdwpigcgkj9rxww23prqfhjfdh97fnycp3r1nyb"
+   "commit": "4c5409406ee35c5ba46880c6cfe98df4b14dc631",
+   "sha256": "0agj1zyspm3bqj7apfjwhllnmydyj00x2iv7nvy03szpnwvm11fq"
   },
   "stable": {
    "version": [
@@ -6705,14 +6779,14 @@
   "repo": "zk-phi/bfbuilder",
   "unstable": {
    "version": [
-    20200816,
-    519
+    20210228,
+    1740
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "00cbf1010dc3fee5a0b8e7c0e0b6041bb6251bdf",
-   "sha256": "1n1aq3kwsjc3hlgas73bs22pvrn69hfba1wcbqs2j28j2j9j00b2"
+   "commit": "689f320a9a1326cdeff43b8538e0d739f8519c4b",
+   "sha256": "0wrzyv38dmsdfjwsbf89pa5l2gzbbx86jmy8nflfs86im0g9qcp1"
   }
  },
  {
@@ -6759,8 +6833,8 @@
    "deps": [
     "biblio-core"
    ],
-   "commit": "eb9baf1d2bf6a073d24ccb717025baa693e98f3e",
-   "sha256": "0s7wld8ikfyn2rz8zr4g3lj59b2g95mj1jnqw6xvmxys0ahnb0r5"
+   "commit": "242c3f3ac1198b1e969e2a34d6348354a9d83345",
+   "sha256": "0m1ih8p7s3335wah1wzaiipqphvjd88nyig582ja3ra6xkvazf00"
   },
   "stable": {
    "version": [
@@ -6800,16 +6874,16 @@
   "repo": "cpitclaudel/biblio.el",
   "unstable": {
    "version": [
-    20200416,
-    307
+    20210311,
+    2310
    ],
    "deps": [
     "dash",
     "let-alist",
     "seq"
    ],
-   "commit": "eb9baf1d2bf6a073d24ccb717025baa693e98f3e",
-   "sha256": "0s7wld8ikfyn2rz8zr4g3lj59b2g95mj1jnqw6xvmxys0ahnb0r5"
+   "commit": "242c3f3ac1198b1e969e2a34d6348354a9d83345",
+   "sha256": "0m1ih8p7s3335wah1wzaiipqphvjd88nyig582ja3ra6xkvazf00"
   },
   "stable": {
    "version": [
@@ -6840,8 +6914,8 @@
     "a",
     "pdf-tools"
    ],
-   "commit": "e086c59a14701cd041641b51c952fa704ee963df",
-   "sha256": "0w1crw5lsk22jfw2w5qq6ab7zxdzp38akasvyvxakvpp1782xq9p"
+   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
+   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
   }
  },
  {
@@ -6889,8 +6963,8 @@
   "repo": "tmalsburg/helm-bibtex",
   "unstable": {
    "version": [
-    20210108,
-    1155
+    20210223,
+    840
    ],
    "deps": [
     "biblio",
@@ -6900,8 +6974,8 @@
     "parsebib",
     "s"
    ],
-   "commit": "94807a3d3419f90b505eddc3272e244475eeb4f2",
-   "sha256": "08wfvqdzs05bmfjjaqfxffjbl4j7632bnpncs9khrh6lifz03xh2"
+   "commit": "ca09076c3d6e51cc4ffe208c8176fccf3710fcc6",
+   "sha256": "1jf2zapmkg2fdn9ldq8cn3aw02iqpjh26h6yjj93q3h0clsk5ia2"
   },
   "stable": {
    "version": [
@@ -7027,8 +7101,8 @@
     "bind-key",
     "key-chord"
    ],
-   "commit": "365c73d2618dd0040a32c2601c5456ab5495b812",
-   "sha256": "10c0rmi5axypx0xy3fib739rjnakl32spwcirzxz1p5r0x9gya4a"
+   "commit": "a7422fb8ab1baee19adb2717b5b47b9c3812a84c",
+   "sha256": "1zz2gg475254hbbxw4y82b2m2iy8cvx0phh030daax315hdbsaqb"
   },
   "stable": {
    "version": [
@@ -7052,11 +7126,11 @@
   "repo": "jwiegley/use-package",
   "unstable": {
    "version": [
-    20200805,
-    1727
+    20210210,
+    1609
    ],
-   "commit": "365c73d2618dd0040a32c2601c5456ab5495b812",
-   "sha256": "10c0rmi5axypx0xy3fib739rjnakl32spwcirzxz1p5r0x9gya4a"
+   "commit": "a7422fb8ab1baee19adb2717b5b47b9c3812a84c",
+   "sha256": "1zz2gg475254hbbxw4y82b2m2iy8cvx0phh030daax315hdbsaqb"
   },
   "stable": {
    "version": [
@@ -7100,26 +7174,26 @@
   "repo": "rnkn/binder",
   "unstable": {
    "version": [
-    20201222,
-    1603
+    20210131,
+    1227
    ],
    "deps": [
     "seq"
    ],
-   "commit": "8a10a66116797e132b19f57026a1976753d332e9",
-   "sha256": "0qjrcvmmhirzw08r81jnxl79kmgiwwhjnvif16amkf1l8r8qiawq"
+   "commit": "9cec78c685dbca51ab9d1014eb535a541083effc",
+   "sha256": "065cqvdjdb5w60b7ga7q51920ib5vpz63zq9s68q0fjwb55q3k8z"
   },
   "stable": {
    "version": [
     0,
     4,
-    3
+    4
    ],
    "deps": [
     "seq"
    ],
-   "commit": "8d479f1ad0573008e7f60dad2f6549c7d2f96598",
-   "sha256": "1wfbm3z4irgh22lrfkdf05y9y3ayl1jcmf2iqgncrj12j5a5jwa7"
+   "commit": "3cf7c254703f5c3a90c2cd617b522d09e7913c7b",
+   "sha256": "01y9yd1rvi1ll3pp2i44g7ivkvz1cvc22207f8a3dbv90jw4c66m"
   }
  },
  {
@@ -7483,6 +7557,30 @@
   }
  },
  {
+  "ename": "blox",
+  "commit": "cacd156d195ffddeba880a8ebb4f38a07db0b15f",
+  "sha256": "0w0j9xskvyb91i473wr1rj4q61i151ckslm87hszh9sqc9wv38p3",
+  "fetcher": "github",
+  "repo": "kennethloeffler/blox",
+  "unstable": {
+   "version": [
+    20210225,
+    1900
+   ],
+   "commit": "2bf0e618451fb1da11263d8a35ffcd9210590c0a",
+   "sha256": "0lkhdm9jhy8wlmrmd9nqrbrczh5k75q38n6bq3gfhppycmysh9d5"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    0
+   ],
+   "commit": "f27e79d6da65d8877ebb4e84a40350b61c3f0362",
+   "sha256": "1id5jgaa4yjkgzn00s54lcbdwll85nw0dfsa228mvkvigdn5rya6"
+  }
+ },
+ {
   "ename": "bm",
   "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
   "sha256": "07459r7m12j2nsb7qrb26bx32alylhaaq3z448n42lz02a8dc63g",
@@ -7512,8 +7610,8 @@
   "repo": "josteink/bmx-mode",
   "unstable": {
    "version": [
-    20180929,
-    1132
+    20210319,
+    620
    ],
    "deps": [
     "cl-lib",
@@ -7521,8 +7619,8 @@
     "dash",
     "s"
    ],
-   "commit": "30122e2a6bfb00834e18363e7909182b2701ce82",
-   "sha256": "1kk98g2zlgz9s7r95986p7f9dch23r8dk78k2dgy07ifnqickvfx"
+   "commit": "6f008707efe0bb5646f0c1b0d6f57f0a8800e200",
+   "sha256": "0v6b8w4hy1yw713mkkh74b7c638hnk24ccbizfsylnk00ynrrza1"
   }
  },
  {
@@ -7675,8 +7773,8 @@
   "repo": "boogie-org/boogie-friends",
   "unstable": {
    "version": [
-    20201108,
-    230
+    20210323,
+    1836
    ],
    "deps": [
     "cl-lib",
@@ -7685,8 +7783,8 @@
     "flycheck",
     "yasnippet"
    ],
-   "commit": "462acddf8012c896a510f539fa3d16eb3c4dc71b",
-   "sha256": "0lz39j1alzzchfz67xp70cj1z6ckapdyqbl2gnax8xqyw7f3816f"
+   "commit": "bc5572f796bc3ecafadadcbd93de73052304c856",
+   "sha256": "0x1lw3cx9vx0l9xr9683p2385msny8dkp2w5l6kfa8imbyclpkp2"
   }
  },
  {
@@ -7721,16 +7819,17 @@
   "repo": "jyp/boon",
   "unstable": {
    "version": [
-    20201118,
-    1521
+    20210323,
+    1341
    ],
    "deps": [
     "dash",
     "expand-region",
-    "multiple-cursors"
+    "multiple-cursors",
+    "pcre2el"
    ],
-   "commit": "3dd9669d01e48860bb7ea12be8c764a4bc6808ea",
-   "sha256": "0j5v2mm6gd463x6jcbp5ly71g2qaiajrbc3ina2rzbmj0ccqr39l"
+   "commit": "17a7a9219a5a9b7156f58f7f30227fc2b79b6020",
+   "sha256": "1jcvz9vy5sz9bysrlg2b9d3732zab8hmg8hg5ghwjx5kgxl2yfzh"
   },
   "stable": {
    "version": [
@@ -7761,8 +7860,8 @@
     "epkg",
     "magit"
    ],
-   "commit": "5de2a7aa0c126f5b18506e187bca66079e68f51d",
-   "sha256": "18d845xpfp1dklqqghxxzy6zglm8w11lyi3ww44yfmrmxgi8xsvd"
+   "commit": "d0283edfaead36564ba4e64dcf8785f6d65f288c",
+   "sha256": "076n6jh084f6pra12cbl3fp1gv3229rj5nxbpcmr9rpp50x2c790"
   },
   "stable": {
    "version": [
@@ -7924,20 +8023,20 @@
   "repo": "jadler/brazilian-holidays",
   "unstable": {
    "version": [
-    20201109,
-    2052
+    20210302,
+    107
    ],
-   "commit": "d9e685b21be4d5264cbee0cf74a846af380af4d4",
-   "sha256": "10jp4yd2v7p8qg9x1s24z3ldbcf1klbxk1754vf25rrrzsxbb6il"
+   "commit": "68811fd5f3e9d9c0572995c3ca46ead2c35eb421",
+   "sha256": "03p3s5cxyi3dzi4ry9l30dwcs9a3rbg8ijsb595hj56al80k9y3q"
   },
   "stable": {
    "version": [
     2,
     1,
-    1
+    2
    ],
-   "commit": "d9e685b21be4d5264cbee0cf74a846af380af4d4",
-   "sha256": "10jp4yd2v7p8qg9x1s24z3ldbcf1klbxk1754vf25rrrzsxbb6il"
+   "commit": "68811fd5f3e9d9c0572995c3ca46ead2c35eb421",
+   "sha256": "03p3s5cxyi3dzi4ry9l30dwcs9a3rbg8ijsb595hj56al80k9y3q"
   }
  },
  {
@@ -7948,14 +8047,14 @@
   "url": "https://bitbucket.org/MikeWoolley/brf-mode",
   "unstable": {
    "version": [
-    20200811,
-    1622
+    20210325,
+    2154
    ],
    "deps": [
     "fringe-helper"
    ],
-   "commit": "4e12ec16d6b896402f8bcdc1cd468d4064a2df6f",
-   "sha256": "1pdrpvff6hvhjv512z1vkivd848ar5li4p63jnbvl90hp7kpy7c3"
+   "commit": "733a44bc491d9d28f9eefc2550616e97b1419cee",
+   "sha256": "0dfd3w3g31fjzqvzn57xw3whr60fy8yj8hnga8b4n9698dihw0bn"
   },
   "stable": {
    "version": [
@@ -8104,11 +8203,11 @@
   "repo": "topikettunen/brutal-emacs",
   "unstable": {
    "version": [
-    20200415,
-    602
+    20210226,
+    1538
    ],
-   "commit": "ee63563b7cb07aeec342722ae684426cb0465a98",
-   "sha256": "1wx6771iv4psvlwhng0n09g0w3yml1pw3ga5lghjz9j6hba0bc6s"
+   "commit": "8173b7d041cccfa3e5bb3f3f85ec8c6109fd264b",
+   "sha256": "1y6b9q3byvwsi6d5sjc642189c5cjbinylqis3d248qws2dp6kvq"
   }
  },
  {
@@ -8705,8 +8804,8 @@
     "alert",
     "dash"
    ],
-   "commit": "d4b1fc8f6d32eb69c066775558442dcc84208ba0",
-   "sha256": "03qrfb2rzx2aqkzn7pm0z97l9sfv13znd1dndjjp5gdga0nr2wjz"
+   "commit": "eed66036d65b0ee26ce02371d14dce16a360acb4",
+   "sha256": "070p6mziljnyqzadbvwwmdv11gdmwi4h6q4rbnlp6dj91yiizksi"
   }
  },
  {
@@ -8954,6 +9053,30 @@
   }
  },
  {
+  "ename": "ca65-mode",
+  "commit": "e479ed85d361e3439fb69e4b0cc0f0fd608f9c7a",
+  "sha256": "04s9z3brwc1zr5v2h7p1d129jg44j00x3qdd9md2cwiaxbr4c3ns",
+  "fetcher": "github",
+  "repo": "wendelscardua/ca65-mode",
+  "unstable": {
+   "version": [
+    20210218,
+    106
+   ],
+   "commit": "590d90cc0e1c1864dd7ce03df99b741ba866d52a",
+   "sha256": "0snmxnhi7g5qx7p1z9zzlpc2zd20iq94hfvf2vavjpxw1fz4sk46"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    3
+   ],
+   "commit": "590d90cc0e1c1864dd7ce03df99b741ba866d52a",
+   "sha256": "0snmxnhi7g5qx7p1z9zzlpc2zd20iq94hfvf2vavjpxw1fz4sk46"
+  }
+ },
+ {
   "ename": "cabledolphin",
   "commit": "0c8bd2715aec4793abc37d6899adabd568955a08",
   "sha256": "04slrx0vkcm66q59158limn0cpxn18ghlqyx7z8nrn7frrc03z03",
@@ -9113,15 +9236,14 @@
   "repo": "walseb/calc-at-point",
   "unstable": {
    "version": [
-    20200406,
-    1618
+    20210219,
+    1252
    ],
    "deps": [
-    "dash",
-    "dash-functional"
+    "dash"
    ],
-   "commit": "11e40c8db9493ada71964b73069c6db529016492",
-   "sha256": "06dmm6b2xflkwgk5mysi3ycbi6yz5n0sci191a15nnzxg7vh1fbf"
+   "commit": "0c1a9e94b519b0edb0abcbacdf6101eea2f2a524",
+   "sha256": "04yg0rf6i95s913hs6zn01rajpbc1gk2hcpzkxyjy3mj1lqhh45s"
   }
  },
  {
@@ -9286,16 +9408,16 @@
   "repo": "chenyanming/calibredb.el",
   "unstable": {
    "version": [
-    20201225,
-    854
+    20210321,
+    944
    ],
    "deps": [
     "dash",
     "s",
     "transient"
    ],
-   "commit": "1f38fc34a8c159846450d18b1ee50cc960349ee7",
-   "sha256": "18m8g9scjllckq1c71z2dl1khgjq02d65vjakxbiyp0c049f40mq"
+   "commit": "a3b04c0c37b1e8ceff2472e21a3579e64e944528",
+   "sha256": "04fzskx066v5091467da3plsxkqx3acbaqmk282k8cdaxsnr4ifd"
   },
   "stable": {
    "version": [
@@ -9320,8 +9442,8 @@
   "repo": "beacoder/call-graph",
   "unstable": {
    "version": [
-    20200402,
-    910
+    20210311,
+    831
    ],
    "deps": [
     "anaconda-mode",
@@ -9330,8 +9452,8 @@
     "ivy",
     "tree-mode"
    ],
-   "commit": "2f47dcb65ed8dc5393df846b4175a4872e254c05",
-   "sha256": "0xn8xk2x3ih22vlfjvnl6853ddpk57q70z9b0vwhjvwmi4idz7xp"
+   "commit": "3e5c510c51dd8b3491a32a1d67ad6268033348ee",
+   "sha256": "1jj8bj9a05dq0igxd2ddf0p9gc9sbffcn0wy3b26qlcspcvbpm1h"
   },
   "stable": {
    "version": [
@@ -9491,15 +9613,15 @@
   "repo": "kwrooijen/cargo.el",
   "unstable": {
    "version": [
-    20210103,
-    2111
+    20210217,
+    904
    ],
    "deps": [
     "markdown-mode",
     "rust-mode"
    ],
-   "commit": "9c7d885562c7d5935ec2e97585acf95813a084be",
-   "sha256": "0j1ls97m4rc9mkjp57k4ba1ljvzlhmpn31z7drkqhx9yff0q0fan"
+   "commit": "9442af81d64f73935d3590948c97594f0bc79d4a",
+   "sha256": "1xci8kx10vxaniyzxgzzs0zd7m7s0grd0bbrxaxhyjjdvic77mq1"
   },
   "stable": {
    "version": [
@@ -9530,6 +9652,21 @@
   }
  },
  {
+  "ename": "cascading-dir-locals",
+  "commit": "4140f4b373119deba3142cbc6037e6634d74a4de",
+  "sha256": "1g5disv23wn70h7sr0z9pbh9ws66rbzw7s8q07xzvhk1yfggr0ls",
+  "fetcher": "github",
+  "repo": "fritzgrabo/cascading-dir-locals",
+  "unstable": {
+   "version": [
+    20210221,
+    1516
+   ],
+   "commit": "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0",
+   "sha256": "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"
+  }
+ },
+ {
   "ename": "caseformat",
   "commit": "ba158fbeebcda6b6122b18c97ab8042b1c0a0bc0",
   "sha256": "1qwyr74jbx4jpfcw8sccg47q1vdg094rr06m111gsz2yaj9m0gfk",
@@ -9571,27 +9708,26 @@
   "repo": "cask/cask",
   "unstable": {
    "version": [
-    20201206,
-    1419
+    20210319,
+    2155
    ],
    "deps": [
     "ansi",
     "cl-lib",
-    "dash",
     "epl",
     "f",
     "package-build",
     "s",
     "shut-up"
    ],
-   "commit": "b0afdf94c0a2424db86b264bcac175b75c4395b3",
-   "sha256": "0hjc2pig7chhvb94qyccmnndy16xlyzwq37x4pm2s44yl1vra02k"
+   "commit": "7ae2d54004b26ebb891f7a011c86cff706acbf1a",
+   "sha256": "1ksw4rcbghjjni7v622cdfd84312fs39xhiyzbk7xmh57clrbx4f"
   },
   "stable": {
    "version": [
     0,
     8,
-    5
+    6
    ],
    "deps": [
     "ansi",
@@ -9603,8 +9739,8 @@
     "s",
     "shut-up"
    ],
-   "commit": "6fd81cdbe2c4c0a13798a6f2a1e1a6392a4bbc86",
-   "sha256": "0wgm0f39diswmp1ccx5a0qwfpcy8hczzp8b2s7bpi5qb49al55d0"
+   "commit": "610894d57f467a55fb146ade4d6f8173e4e9579b",
+   "sha256": "1y12m5sjgws4a4bikr8d1ccysy55j7xx3cp1qii4pw62bkf9y2bq"
   }
  },
  {
@@ -9783,8 +9919,8 @@
     20200904,
     1431
    ],
-   "commit": "1cd0f65e4e116aaa1dddce98e95ce79911ff85ac",
-   "sha256": "1w9k8gadkm0l39j8i9n5c3zwsgv1rqi9q3gpx050wn5mv33aryak"
+   "commit": "cec99365fb3ad725c44514b918696ab153596b8d",
+   "sha256": "0q1vxcm163cs0pwnpnbjanpm49hshiyfx4m915i1wxsa7q9vvv67"
   }
  },
  {
@@ -9832,8 +9968,8 @@
     20200904,
     1431
    ],
-   "commit": "1cd0f65e4e116aaa1dddce98e95ce79911ff85ac",
-   "sha256": "1w9k8gadkm0l39j8i9n5c3zwsgv1rqi9q3gpx050wn5mv33aryak"
+   "commit": "cec99365fb3ad725c44514b918696ab153596b8d",
+   "sha256": "0q1vxcm163cs0pwnpnbjanpm49hshiyfx4m915i1wxsa7q9vvv67"
   }
  },
  {
@@ -9967,15 +10103,15 @@
   "repo": "ema2159/centaur-tabs",
   "unstable": {
    "version": [
-    20210114,
-    2059
+    20210309,
+    1822
    ],
    "deps": [
     "cl-lib",
     "powerline"
    ],
-   "commit": "50fd573ce9ed9f914940c79c82e411511ca5c8a8",
-   "sha256": "0dxis8w931chcbfwggc0jdirsxys42n2g21wqnqy892k70p7by1j"
+   "commit": "df972095135de90b47413190f61ec4f5af33f9f1",
+   "sha256": "0is51bc9zd9lr0y59md2ci4ddlfylp5jb9hwyll9r6j8gn3lrzza"
   },
   "stable": {
    "version": [
@@ -10102,8 +10238,8 @@
     20171115,
     2108
    ],
-   "commit": "a1f30acc05097d9def5925e8b48de3df4237610b",
-   "sha256": "18ixkfz41wa3h4041rlj6zxg30m3afhn1vfvcf6dz2vnj1z22h2z"
+   "commit": "9914e9c951e1598bafb6bce8cf5ad5cbe260d290",
+   "sha256": "1ziq8xq94nys5g95jrng1w33rsmhfi0k3bfbsfh8ifvz2lhd1ai5"
   },
   "stable": {
    "version": [
@@ -10149,6 +10285,40 @@
   }
  },
  {
+  "ename": "cfn-mode",
+  "commit": "3ac23c6e0cceb3dd52519a9946dcd500936d8e97",
+  "sha256": "0yk7zlgbr0s3lc2b05g057g55x3rl767xd317hb162lg0d7d900v",
+  "fetcher": "gitlab",
+  "repo": "worr/cfn-mode",
+  "unstable": {
+   "version": [
+    20210129,
+    2037
+   ],
+   "deps": [
+    "f",
+    "s",
+    "yaml-mode"
+   ],
+   "commit": "a4ca40978e680f9edc86c141e696e0ae57c63533",
+   "sha256": "0ggq4q2c1xi26m4rlvjm8f51wlj7h351pp6m20k6l25856858vhi"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    2
+   ],
+   "deps": [
+    "f",
+    "s",
+    "yaml-mode"
+   ],
+   "commit": "f3462930067de8f79c3d2e8da14d1924f609d3ab",
+   "sha256": "15ndphxz1jy4wbk52f6l3hk67b29844ljmmxd8wmahmi6c8nh3si"
+  }
+ },
+ {
   "ename": "cframe",
   "commit": "6e39555b2538cc8a955766c5533871396e8fe712",
   "sha256": "0pngdaflk1pk2xmwbij4b520b3mlacnjab4r3jby0phah44ziv4l",
@@ -10187,30 +10357,30 @@
   "repo": "Alexander-Miller/cfrs",
   "unstable": {
    "version": [
-    20210108,
-    1152
+    20210217,
+    1848
    ],
    "deps": [
     "dash",
     "posframe",
     "s"
    ],
-   "commit": "d4cee9074b31b283b1475bfc8fe3c63ab51dbb61",
-   "sha256": "122gls0zwxl3km5h0gw5ykccxxdfy8svvr7s7lm78ylmp6prpx2p"
+   "commit": "7c42f2c82c7ae689f3ef291b066688c58ab96298",
+   "sha256": "1x8y4cc1cgln4qv6yzhsiqgnziilg5fh07bvg9ygcjmdhvnhsvcm"
   },
   "stable": {
    "version": [
     1,
     5,
-    1
+    4
    ],
    "deps": [
     "dash",
     "posframe",
     "s"
    ],
-   "commit": "f47e9b7b96172023cbc0e3aaeb62462829d3134d",
-   "sha256": "1sia4dnp2jfjx2npklgg9yhdgs5vzjxvyk6nj0z1fvpqxfdkg60m"
+   "commit": "7c42f2c82c7ae689f3ef291b066688c58ab96298",
+   "sha256": "1x8y4cc1cgln4qv6yzhsiqgnziilg5fh07bvg9ygcjmdhvnhsvcm"
   }
  },
  {
@@ -10236,11 +10406,11 @@
   "repo": "challenger-deep-theme/emacs",
   "unstable": {
    "version": [
-    20201214,
-    1705
+    20210120,
+    941
    ],
-   "commit": "b0d5f103db8ee846580617cc3a2f44f89edd5a6d",
-   "sha256": "03k4bvidvhcfqvk3hqni546pfz6lb8jwhxynsyacq1vcmvx1j8xw"
+   "commit": "2a799259406a8b96a688873093ffab6630a3ad3b",
+   "sha256": "1rl3rkrbms96wv51mwxih9b4zg1dzh3jcmx4ylgamg77abd03sg3"
   }
  },
  {
@@ -10251,14 +10421,14 @@
   "repo": "magnars/change-inner.el",
   "unstable": {
    "version": [
-    20150707,
-    1544
+    20210126,
+    1456
    ],
    "deps": [
     "expand-region"
    ],
-   "commit": "52c543a4b9808c0d15b565fcdf646c9779de33e8",
-   "sha256": "1m9sq93bwajbld3lnlzkjbsby5zlm9sxjzqynryyvsb9zr1d0a9z"
+   "commit": "42cad58aed2caec260f8e8ff61f78a7d3db72d1b",
+   "sha256": "0hs5hw36yagchpihx18059gi8b85hrccm82ynh89y7dkk1pw3wy1"
   }
  },
  {
@@ -10296,14 +10466,14 @@
   "repo": "mrkkrp/char-menu",
   "unstable": {
    "version": [
-    20190713,
-    1343
+    20210321,
+    1657
    ],
    "deps": [
     "avy-menu"
    ],
-   "commit": "a1ccf5ed786af6e2441037964668d817b9c7362f",
-   "sha256": "19yl7gmzalhrhr3spi8vs6wpxpv6m3m1d9564naznswxx19sjcjy"
+   "commit": "d77c4d64fc8acc386a0fb9727d346c838e75f011",
+   "sha256": "11hls33r3lq46griyvpfnwkgwfwa4adfjzd03hcx2dn5ji0x0yxb"
   },
   "stable": {
    "version": [
@@ -10519,21 +10689,6 @@
   }
  },
  {
-  "ename": "chicken-scheme",
-  "commit": "03f4992471185bf41720ff6fc725fd5fa1291a41",
-  "sha256": "0ns49p7nsifpi7wrzr02ljrr0p6hxanrg54zaixakvjkxwcgfabr",
-  "fetcher": "github",
-  "repo": "dleslie/chicken-scheme.el",
-  "unstable": {
-   "version": [
-    20141116,
-    1939
-   ],
-   "commit": "19b0b08b5592063e852cae094b394c7d1f923639",
-   "sha256": "0j61lvr99viaharg4553whcppp7lxhimkk5lps0izz9mnd8y2wm5"
-  }
- },
- {
   "ename": "chinese-conv",
   "commit": "a798158829f8fd84dd3e5e3ec5987d98ff54e641",
   "sha256": "1lqpq7pg0nqqqj29f8is6c724vl75wscmm1v08j480pfks3l8cnr",
@@ -10638,14 +10793,14 @@
   "repo": "SavchenkoValeriy/emacs-chocolate-theme",
   "unstable": {
    "version": [
-    20191021,
-    1346
+    20210128,
+    1647
    ],
    "deps": [
     "autothemer"
    ],
-   "commit": "1c6cd8d2fdc939bd4d26117d61e57c11cfe26512",
-   "sha256": "1knnj1kzjccr7hg5zbj4qfnkgjkf221bf7wv83km9hs7zs7brj5x"
+   "commit": "ccc05f7ad96d3d1332727689bf6250443adc7ec0",
+   "sha256": "1d8a9jwv9y0sncw24k840c8yyrig30f2d6q2zqlc09f05yzq9p9p"
   }
  },
  {
@@ -10700,8 +10855,8 @@
   "repo": "contrapunctus-1/chronometrist",
   "unstable": {
    "version": [
-    20210106,
-    2147
+    20210211,
+    601
    ],
    "deps": [
     "anaphora",
@@ -10710,14 +10865,14 @@
     "seq",
     "ts"
    ],
-   "commit": "cef185de5ce47236c6ba70a7613f7aa51365e5ec",
-   "sha256": "10jc1xw3rz18h1an8psbmrp9a1y11xcf53j0hi7vvch85w75hfc6"
+   "commit": "d1b42bbf0d134ee6ed6f423956a355ba0a7ac968",
+   "sha256": "1k7r5rc6vzrnhp9j5bkv45yzqz7zbqrkiry4fzc8w6f36pcw862f"
   },
   "stable": {
    "version": [
     0,
     6,
-    2
+    5
    ],
    "deps": [
     "anaphora",
@@ -10726,8 +10881,8 @@
     "seq",
     "ts"
    ],
-   "commit": "cef185de5ce47236c6ba70a7613f7aa51365e5ec",
-   "sha256": "10jc1xw3rz18h1an8psbmrp9a1y11xcf53j0hi7vvch85w75hfc6"
+   "commit": "d1b42bbf0d134ee6ed6f423956a355ba0a7ac968",
+   "sha256": "1k7r5rc6vzrnhp9j5bkv45yzqz7zbqrkiry4fzc8w6f36pcw862f"
   }
  },
  {
@@ -10818,8 +10973,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20210104,
-    915
+    20210325,
+    825
    ],
    "deps": [
     "clojure-mode",
@@ -10830,8 +10985,8 @@
     "sesman",
     "spinner"
    ],
-   "commit": "3fac28541e03812990c771bd774bf8ea65c228c9",
-   "sha256": "1216nws4mcvmrlkdvpb83slqqwkqiwdyw0fxp2b1nkm2lmrcq7bs"
+   "commit": "4278d7cf0b54af5cc84f4a521ee1ed6e81a96adc",
+   "sha256": "1538cfygk1yr8nr5axjqa29jd2n8v6mwk6plgvnrdrp1msspcvm2"
   },
   "stable": {
    "version": [
@@ -11022,14 +11177,14 @@
   "repo": "jorgenschaefer/circe",
   "unstable": {
    "version": [
-    20210111,
-    2141
+    20210323,
+    1704
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "265f36c1e6c8db598742778dc64f9799896f5dc1",
-   "sha256": "0vf76rrgkpybi67n14g6gn1a7by7b90gxa8rz2m50xl3vdphnibk"
+   "commit": "e67e2d1149ebf3e79cd2162e78802af3ed5f82da",
+   "sha256": "0jrpa8kndq2v69nr9jva970q0n3662x2g0chg89nd2d3gbv693mw"
   },
   "stable": {
    "version": [
@@ -11082,14 +11237,14 @@
   "repo": "sulami/circleci-api.el",
   "unstable": {
    "version": [
-    20201221,
-    1036
+    20210227,
+    1607
    ],
    "deps": [
     "request"
    ],
-   "commit": "870d6b550210cb1fd97a8dabad2c284e54416b4b",
-   "sha256": "0ph12r4lfy653qbp00hbry06n0gddfm3c7kmqp2v3c03bdsn5l9c"
+   "commit": "2e39c5896819bb2063f9d7795c4299f419cf5542",
+   "sha256": "0j184sgqxh3f34ni6bfb69mfir94glcyl0wpqmpsn9siq54s82ag"
   }
  },
  {
@@ -11424,26 +11579,26 @@
   "repo": "redguardtoo/cliphist",
   "unstable": {
    "version": [
-    20190920,
-    149
+    20210301,
+    748
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "3105e5c4b4d2d0338edb6effd9329426854b80b1",
-   "sha256": "0jbn2nczhsv9adhkc6mnrmxyjbpkbqq475gry0khhqlmzm49y618"
+   "commit": "1ef50459fa6044c4d571cec0009368948bcf5fc5",
+   "sha256": "0xba2gxwy1y8zl9nvga186873icvwfi0yan3qbw2vdkpzry5ifhk"
   },
   "stable": {
    "version": [
     0,
     5,
-    6
+    7
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "232ab0b3f6d502de61ebe76681a6a04d4223b877",
-   "sha256": "0is772r0b7i8rvra9zb94g9aczv8b6q0dmdk67wbli5rv5drfjyq"
+   "commit": "1ef50459fa6044c4d571cec0009368948bcf5fc5",
+   "sha256": "0xba2gxwy1y8zl9nvga186873icvwfi0yan3qbw2vdkpzry5ifhk"
   }
  },
  {
@@ -11529,8 +11684,8 @@
   "repo": "clojure-emacs/clj-refactor.el",
   "unstable": {
    "version": [
-    20210101,
-    1036
+    20210322,
+    2122
    ],
    "deps": [
     "cider",
@@ -11543,14 +11698,14 @@
     "seq",
     "yasnippet"
    ],
-   "commit": "9dcc50da7ce6f3c10276c87f09022e80c03e8bef",
-   "sha256": "10b83yyhkppgzjxaqk8l1c2476x8cvnpn6vf1gj2v5y23c7s2mbs"
+   "commit": "9f3e7357117e96135de051b78deabc0a327c7b06",
+   "sha256": "1k9w8bzl92cz0dl7lly6ba3i2vcvdfngqk0abji00pmpgrkla1rk"
   },
   "stable": {
    "version": [
     2,
     5,
-    0
+    1
    ],
    "deps": [
     "cider",
@@ -11563,8 +11718,8 @@
     "seq",
     "yasnippet"
    ],
-   "commit": "92d372393a031e5fa73ef926447afe72b574cb45",
-   "sha256": "0lnis1qwk1gyxgapl06d7ww1mlb9a8ahl8zwa7y2n3jrgfm25qp4"
+   "commit": "b24ce76acefe792975f00147c94b4dd784e65b80",
+   "sha256": "1pyskl9xcqrk6r2zbp5i9402inngqps7wwb4nbdbrgi4di9b8in7"
   }
  },
  {
@@ -11791,11 +11946,11 @@
   "repo": "clojure-emacs/clojure-mode",
   "unstable": {
    "version": [
-    20201126,
-    1558
+    20210322,
+    704
    ],
-   "commit": "53ef8ac076ae7811627fbdd408e519ab7fca9a0b",
-   "sha256": "0rhvrfmg6rgpas8v1hf5gmm9bqyk16nfjgcwl13fxzxsdyh0va7m"
+   "commit": "a14671e03c867c9d759ee9e59cdc5cecbf271245",
+   "sha256": "1jnqwcspm7c3v33wywvm605hsf6vp29ym3smy2jaq8j5vwywi8k3"
   },
   "stable": {
    "version": [
@@ -11815,14 +11970,14 @@
   "repo": "clojure-emacs/clojure-mode",
   "unstable": {
    "version": [
-    20200922,
-    656
+    20210322,
+    704
    ],
    "deps": [
     "clojure-mode"
    ],
-   "commit": "53ef8ac076ae7811627fbdd408e519ab7fca9a0b",
-   "sha256": "0rhvrfmg6rgpas8v1hf5gmm9bqyk16nfjgcwl13fxzxsdyh0va7m"
+   "commit": "a14671e03c867c9d759ee9e59cdc5cecbf271245",
+   "sha256": "1jnqwcspm7c3v33wywvm605hsf6vp29ym3smy2jaq8j5vwywi8k3"
   },
   "stable": {
    "version": [
@@ -11947,8 +12102,8 @@
    "deps": [
     "emacsql-sqlite"
    ],
-   "commit": "c864c1fadfea4a05fff29cb60891b7a32ac88c78",
-   "sha256": "06j0sc6dx8f34wc8i7dzkp8jwvwnrpnl8i93vpc1qw0ih0jwa2zh"
+   "commit": "1d5e9cbb69bc2992eaafa1bc084343efbd3e0c4c",
+   "sha256": "1s3pb8zn3ypc2pvkp7g7wvml02m06lk9d7c29pq1yqn9f5sisrcg"
   },
   "stable": {
    "version": [
@@ -12124,17 +12279,19 @@
     20210104,
     1831
    ],
-   "commit": "e6b6e457a0e8d33402bc7d64d85b20a8ca0546a0",
-   "sha256": "1p5vd3dmp7q0nw5px2gplrrdi6zgd3qlvmc3ql7xclgaxbp0zrs2"
+   "commit": "b22c800604e22a0ffdb13aa5fd4cfb7ee26896a4",
+   "sha256": "1gf0l4jwhm0xf4j1gnnb8158g8cycv2m2ijxbpc5fhwdbcfdfc13"
   },
   "stable": {
    "version": [
     3,
-    19,
-    3
+    20,
+    0,
+    -1,
+    5
    ],
-   "commit": "19ff734e76a35d59eb0f973197cadb1c271c766c",
-   "sha256": "0yzwnb1vikbhqzrqq6ngzqv45dcngajjc3b2f4cc002ry3bnn1mv"
+   "commit": "fab7fe7ef5a5462952297611c1dd668a603e3a36",
+   "sha256": "12v6v1hpw0ykkikj4qid3m4m7sb164rgpx6fxin4hvsm20pjcrd4"
   }
  },
  {
@@ -12279,6 +12436,21 @@
   }
  },
  {
+  "ename": "code-cells",
+  "commit": "75600cc888a717d300c6ca05b629fa7acba9390b",
+  "sha256": "1z8cf6bkpv21r42d10kvih5pb31k0iw4r18i8l96wfizad8bva93",
+  "fetcher": "github",
+  "repo": "astoff/code-cells.el",
+  "unstable": {
+   "version": [
+    20210111,
+    744
+   ],
+   "commit": "d03621b1033cc33054e30169517c57d020c13050",
+   "sha256": "0c2agyg28lqsmkkjcnhx8wdn531lh0zsy37q939wf231lpl4asvj"
+  }
+ },
+ {
   "ename": "code-library",
   "commit": "197bdc508c4fd9712125553a108ca6c9fedcaefc",
   "sha256": "0gi8lz2q0vis4nyziykq15jp3m3vykfwycbk6amhf1ybkn9k3ywj",
@@ -12637,8 +12809,8 @@
     20210107,
     2111
    ],
-   "commit": "71b72baed2008e38ad1eb6558934e64094351cd7",
-   "sha256": "1z39lha9jb1bxr1xlyy5clqqqvnafipx0rf8pdjw9qhbjh4kk2x1"
+   "commit": "1445a556af9da3681ae0e7e7242352e9fe39fe73",
+   "sha256": "1d6wxzw1wf378jzvlzfsdq5gqq2i196lr8dszj4df472vsiw1hqi"
   },
   "stable": {
    "version": [
@@ -13078,11 +13250,11 @@
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20210114,
-    35
+    20210327,
+    150
    ],
-   "commit": "288a7617c4c3e5f22a887a17a697ac2bfe4e567d",
-   "sha256": "1h5wkgv7gny7dp01mq35fj9g18v62813gx6qvw7812rypaj068yw"
+   "commit": "7207cb143829edbcaa2a4b4c0011090747d2207c",
+   "sha256": "017rjccvidcjsc5pbb36hwdssnvpnfm4wjciv75aaq6d5jhj0889"
   },
   "stable": {
    "version": [
@@ -13220,8 +13392,8 @@
     "axiom-environment",
     "company"
    ],
-   "commit": "47d6dffc29286badb2b1d7143b219e5c1be15bdb",
-   "sha256": "1dppyda9jkwh6fj8m4kziq84w0b5yzxrhq87jhkv54jjra6yxbb4"
+   "commit": "ac8228a702290732ba12c5d13b38576a57afb0d6",
+   "sha256": "1nrlgrckvh2fiwis9bmr95h2bpxfkz1nknxdz61380f2caqwwhw7"
   }
  },
  {
@@ -13323,8 +13495,8 @@
   "repo": "cpitclaudel/company-coq",
   "unstable": {
    "version": [
-    20200729,
-    401
+    20210324,
+    1603
    ],
    "deps": [
     "cl-lib",
@@ -13333,8 +13505,8 @@
     "dash",
     "yasnippet"
    ],
-   "commit": "4da7b41e25943c0e30171ed25c761c5311999f0d",
-   "sha256": "1pmj4bdpnaydqai9lcxkjyik6yhbqjb2xb1wdfxpv1agzazmfyx1"
+   "commit": "7423ee253951a439b2491e1cd2ea8bb876d25cb7",
+   "sha256": "15rd9ga4ydhl6ljzdg26a3kcaqlhaygp67507wrrf8j3801ivks4"
   },
   "stable": {
    "version": [
@@ -13391,8 +13563,8 @@
   "repo": "tsukimizake/company-dcd",
   "unstable": {
    "version": [
-    20201009,
-    1328
+    20210307,
+    649
    ],
    "deps": [
     "cl-lib",
@@ -13402,8 +13574,8 @@
     "popwin",
     "yasnippet"
    ],
-   "commit": "26245d79b5ab38314dd3a90877e425b18854bcab",
-   "sha256": "1aqcbi99333qdyd27xw3x4n4r2q8yx0pb2wyzlff4qw1z90bpr9f"
+   "commit": "858500115d4f0285f963698ede9492f409a90e52",
+   "sha256": "1b7xcqx297dc5z1rc96gd7y9cx8a7yhgmqh5cpnwfb45hm5s71hs"
   }
  },
  {
@@ -13599,62 +13771,30 @@
   "repo": "jcs-elpa/company-fuzzy",
   "unstable": {
    "version": [
-    20201119,
-    315
+    20210123,
+    1814
    ],
    "deps": [
     "company",
+    "ht",
     "s"
    ],
-   "commit": "ae004dc234b2cd2e4a0fd8a35aa8c966a15074c7",
-   "sha256": "1073hf1ximvhaf5vaxmz5arfph51ywqld52fkwjna6bf2djmchrf"
+   "commit": "4d6d56a8b92af72aa3b1e0af1a7e7add965bf468",
+   "sha256": "1yr050zgygjvhwjmm2yd5p889y24vars90cr4pyqc4zhmgzrdkw5"
   },
   "stable": {
    "version": [
     1,
-    0,
+    2,
     1
    ],
    "deps": [
     "company",
+    "ht",
     "s"
    ],
-   "commit": "ae004dc234b2cd2e4a0fd8a35aa8c966a15074c7",
-   "sha256": "1073hf1ximvhaf5vaxmz5arfph51ywqld52fkwjna6bf2djmchrf"
-  }
- },
- {
-  "ename": "company-ghc",
-  "commit": "28f6a983444f796c81df7e5ee94d74c480b21298",
-  "sha256": "07adykza4dqs64bk8vjmgryr54khxmcy28hms5z8i1qpsk9vmvnn",
-  "fetcher": "github",
-  "repo": "iquiw/company-ghc",
-  "unstable": {
-   "version": [
-    20170918,
-    833
-   ],
-   "deps": [
-    "cl-lib",
-    "company",
-    "ghc"
-   ],
-   "commit": "8b264b5c3c0e42c0d0c4e9315559896c9b0edfdc",
-   "sha256": "0cmyrz251ls6ygyas455mj4pnmzfdqag1sp8v5zggw74wsl5wm23"
-  },
-  "stable": {
-   "version": [
-    1,
-    1,
-    0
-   ],
-   "deps": [
-    "cl-lib",
-    "company",
-    "ghc"
-   ],
-   "commit": "64e4f9d0cf9377138a8dee34c69e7d578fd71090",
-   "sha256": "0y9i0q37xjbnlnlxq7xjvnpn6ykzbd55g6nbw10z1wg0m2v7f96r"
+   "commit": "4d6d56a8b92af72aa3b1e0af1a7e7add965bf468",
+   "sha256": "1yr050zgygjvhwjmm2yd5p889y24vars90cr4pyqc4zhmgzrdkw5"
   }
  },
  {
@@ -13744,6 +13884,24 @@
   }
  },
  {
+  "ename": "company-ipa",
+  "commit": "4ba3b53bd37c252eed24a5e8c61b7d9c91f9e2ee",
+  "sha256": "0xxx0kzspcxk9lblhcw19bjzsv64jwdda8jvv6hf9liql3c3npp9",
+  "fetcher": "gitlab",
+  "repo": "mguzmann89/company-ipa",
+  "unstable": {
+   "version": [
+    20210307,
+    1838
+   ],
+   "deps": [
+    "company"
+   ],
+   "commit": "8634021cac885f53f3274ef6dcce7eab19321046",
+   "sha256": "0629my156zxjb3h636iirdd2rr58z3vsdinhq0w0y6f3544i05hx"
+  }
+ },
+ {
   "ename": "company-irony",
   "commit": "d2b6a8d57b192325dcd30fddc9ff8dd1516ad680",
   "sha256": "15adamk1b9y1i6k06i5ahf1wn70cgwlhgk0x6fk8pl5izg05z1km",
@@ -13852,19 +14010,18 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20171102,
-    1454
+    20210305,
+    1705
    ],
    "deps": [
     "company",
     "dash",
-    "dash-functional",
     "f",
     "lean-mode",
     "s"
    ],
-   "commit": "cc1f5fadf8e9ae08aa25828985edc97df04d94a7",
-   "sha256": "0v03bisr0ljk1ypbicgh9izxwazz8ry5xcd7r1lqb339xqb0bzqb"
+   "commit": "5c50338ac149ca5225fc737be291db1f63c45f1d",
+   "sha256": "13vrg0pp7ca0lh4j9cyg4pgfnbvf2kvbrgvvcmn1h7l9py2n8alj"
   }
  },
  {
@@ -13886,42 +14043,6 @@
   }
  },
  {
-  "ename": "company-lsp",
-  "commit": "5125f53307c1af3d9ccf2bae3c25e7d23dfe1932",
-  "sha256": "09nbi6vxw8l26gfgsc1k3bx4m8i1px1b0jxaywszky5bv4fdy03l",
-  "fetcher": "github",
-  "repo": "tigersoldier/company-lsp",
-  "unstable": {
-   "version": [
-    20190612,
-    1553
-   ],
-   "deps": [
-    "company",
-    "dash",
-    "lsp-mode",
-    "s"
-   ],
-   "commit": "f921ffa0cdc542c21dc3dd85f2c93df4288e83bd",
-   "sha256": "0dd2plznnnc2l1gqhsxnvrs8n1scp6zbcd4457wrq9z2f7pb5ig2"
-  },
-  "stable": {
-   "version": [
-    2,
-    1,
-    0
-   ],
-   "deps": [
-    "company",
-    "dash",
-    "lsp-mode",
-    "s"
-   ],
-   "commit": "4eb6949f19892be7bf682381cde005791a48583a",
-   "sha256": "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"
-  }
- },
- {
   "ename": "company-lua",
   "commit": "c8191ab2aaa72041be46091e363d216cf1b73fde",
   "sha256": "13sm7ya2ndqxwdjarhxbmg7fvr3413c7p3n6yf1i4rabbliqsf2c",
@@ -14021,8 +14142,8 @@
     "maxima",
     "seq"
    ],
-   "commit": "1600cfc059a80ed8fa0d381b88f29ba658811cc5",
-   "sha256": "030sg31xh46vrmsafvn04sdvyv4vzqf8rf5ghrlina1gav6kybfd"
+   "commit": "5e80033e6fa9089d5cd6fa93f6484b544f2ba059",
+   "sha256": "0qh19a3yi5cccj01wxrlyaw1zcaxvpjhxc5qk3mf4f1l8gm1sfi2"
   },
   "stable": {
    "version": [
@@ -14074,8 +14195,8 @@
     "company",
     "native-complete"
    ],
-   "commit": "be7ced29c5a86e29c364f19d248634b8b54d0e52",
-   "sha256": "1lyad89byq54fva58njf7wiq2rw3767fxif1ykijirzx7q14ahxd"
+   "commit": "cf142e84eaa4dd91bc75d96a5d26dab5e38eba4c",
+   "sha256": "01li6c271v5j35chg3a8nl9az3bwq4hk1j8lfjq5a27p91iszpc0"
   }
  },
  {
@@ -14093,8 +14214,8 @@
     "cl-lib",
     "company"
    ],
-   "commit": "3ef9aa76c43347694d355db4c75cfd3d049cdbe1",
-   "sha256": "0kvxmpwf206grfirkpf8rwnkprb96lhna4bgaixf71g160dm3770"
+   "commit": "82bdb730ad5971c594d9c99c069f3c7bb067897d",
+   "sha256": "0qrlqir7fa2zf97yfsg8phj5dqgjz2rzn5zspfk9qlys3j8i483d"
   }
  },
  {
@@ -14145,8 +14266,8 @@
     "company",
     "nixos-options"
    ],
-   "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
-   "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+   "commit": "053a2d5110ce05b7f99bcc2ac4804b70cbe87916",
+   "sha256": "05vxac2llww4ba5w0dmf0hza60l5i847hfabs0q5i8kzmw4f8s8z"
   },
   "stable": {
    "version": [
@@ -14164,38 +14285,6 @@
   }
  },
  {
-  "ename": "company-org-roam",
-  "commit": "aeb95e34be27dd78a237c0bfe1da94802fa68eae",
-  "sha256": "0k4w9g1rl94rpcvbcdmvsy47vzs53wz4b4hy9khj4yjn023nbsj7",
-  "fetcher": "github",
-  "repo": "org-roam/company-org-roam",
-  "unstable": {
-   "version": [
-    20200711,
-    355
-   ],
-   "deps": [
-    "company",
-    "dash",
-    "org-roam"
-   ],
-   "commit": "1132663bd68022aa7ea005ff53c7c7571890769d",
-   "sha256": "1xk53lyf5sn16cs2gv874sajs5jlsxbxpksbjx9nk8glzrq7r6r3"
-  },
-  "stable": {
-   "version": [
-    0,
-    1
-   ],
-   "deps": [
-    "company",
-    "org-roam"
-   ],
-   "commit": "a4c3f60883de783b190d4eb8bcc85f5912d9393a",
-   "sha256": "087z699i7y0q72s5qc7ks09bzin9cl3gm3aqs4ka99lzg676lrl8"
-  }
- },
- {
   "ename": "company-php",
   "commit": "ac283f1b65c3ba6278e9d3236e5a19734e42b123",
   "sha256": "1gnhklfkg17vxfx7fw65lr4nr07jx71y84mhs9zszwcr9p840hh5",
@@ -14211,22 +14300,22 @@
     "cl-lib",
     "company"
    ],
-   "commit": "7d97ecc07e6b4ac772670e26583f11e77fdc69fd",
-   "sha256": "00jdn4dw975bb6fgf7wyxjbmvs31p8bav376d017kk56q9w6mv1f"
+   "commit": "9770c95bf2df93d9cb0f200723b03b3d9a480640",
+   "sha256": "188z1i209z61nwfcgffgp90rdcsnl75izxpqv4x1vbaay5fvg33f"
   },
   "stable": {
    "version": [
     2,
-    3,
-    1
+    4,
+    0
    ],
    "deps": [
     "ac-php-core",
     "cl-lib",
     "company"
    ],
-   "commit": "1477a463e7b2fadf2542d9563b28424481d19bf3",
-   "sha256": "04163qnz5kq3cwmkm5yfvahq8d8ybmchlimzdp15p1izhfpvxnfn"
+   "commit": "33ed12bb2ec627a8a05360885f071e4a88fff399",
+   "sha256": "1ffayysbqh7vq65vhbmqg9yp03fqfnwj3drwyinr5ia81acp37nz"
   }
  },
  {
@@ -14244,8 +14333,8 @@
     "company",
     "phpactor"
    ],
-   "commit": "62d2372ea55c0c5fb4e77076988472ebb5d85f24",
-   "sha256": "1sfrdap157zc7lk9vwsy91p813ip8dmazgfjwh7jwzyvcj7dsimc"
+   "commit": "80788a817b0257363c1eee11a57cc0f873f0eef1",
+   "sha256": "1w4zxp6j77xd9qcz9skpj8jbl8ink1fgdd5f1dhx0486g882mi2l"
   },
   "stable": {
    "version": [
@@ -14333,8 +14422,8 @@
     "company",
     "pollen-mode"
    ],
-   "commit": "d0a33591498013886c2c4676e204cd684954e82a",
-   "sha256": "0lg65hzdjwbc3dav79f3jm7251yyq8ghcbccvkb32vwz281xhjnh"
+   "commit": "09a9dc48c468dcd385982b9629f325e70d569faf",
+   "sha256": "15z6sdkg9vygczr1imk3c5v6cbpqgsvnkydzkcmxnbwnqlx1agpc"
   }
  },
  {
@@ -14377,27 +14466,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200716,
-    1414
+    20210227,
+    600
    ],
    "deps": [
     "company",
     "prescient"
    ],
-   "commit": "42adc802d3ba6c747bed7ea1f6e3ffbbdfc7192d",
-   "sha256": "0v12707jwd2ynk8gp3shgarl6yp3ynal7d4jzds6l2lknr6wi50w"
+   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
+   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
   },
   "stable": {
    "version": [
     5,
-    0
+    1
    ],
    "deps": [
     "company",
     "prescient"
    ],
-   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
-   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+   "commit": "2c0e9fc061ab723ec532428f312974ca7d8def12",
+   "sha256": "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"
   }
  },
  {
@@ -14573,8 +14662,8 @@
     "company",
     "rtags"
    ],
-   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
-   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
+   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
+   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
   },
   "stable": {
    "version": [
@@ -14639,8 +14728,8 @@
     "company",
     "solidity-mode"
    ],
-   "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
-   "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
+   "commit": "b4fd719715be098921b6cbfb2ff9da31f3bd0d05",
+   "sha256": "0gsgj5485k7415wzq73xbj3ax9hh2l1j46ma5d0xkww3md3c3kca"
   },
   "stable": {
    "version": [
@@ -14701,15 +14790,15 @@
   "repo": "stan-dev/stan-mode",
   "unstable": {
    "version": [
-    20200221,
-    2025
+    20210130,
+    1325
    ],
    "deps": [
     "company",
     "stan-mode"
    ],
-   "commit": "2dd330604563d143031fc8ffd516266217aa1f9b",
-   "sha256": "1l49fqd4wh9bkdpb4mk5a1cbl5i3iwc3q690viakhpb4840jmlry"
+   "commit": "9bb858b9f1314dcf1a5df23e39f9af522098276b",
+   "sha256": "031418nkp9qwlxda8i3ankp3lq94sv8a8ijwrbcwb4w3ssr9j3ds"
   },
   "stable": {
    "version": [
@@ -14781,8 +14870,8 @@
   "repo": "TommyX12/company-tabnine",
   "unstable": {
    "version": [
-    20210111,
-    347
+    20210310,
+    2247
    ],
    "deps": [
     "cl-lib",
@@ -14791,8 +14880,8 @@
     "s",
     "unicode-escape"
    ],
-   "commit": "a6edb64cd1087f0453d08a72c3c0169cebcd9f4c",
-   "sha256": "069zzs80zwxhhnwnvybyvhd0qrwdd60r7ihffn5bmngmxf5nmi8i"
+   "commit": "98e9e8b38b6ca289fbe265b0a7b62c7fe38ed0e2",
+   "sha256": "162ca70xwmdd8lsdawzpykd6kaqfljflaxy2nwjn8f89f80ih3fg"
   }
  },
  {
@@ -14881,6 +14970,36 @@
   }
  },
  {
+  "ename": "company-wordfreq",
+  "commit": "8df1cb0929505984e9fe739a01c196715f065b1e",
+  "sha256": "0980iay8d10xwx5i05zwyz85d8pcbj8y7kamyxfh47mxkaczip2i",
+  "fetcher": "github",
+  "repo": "johannes-mueller/company-wordfreq.el",
+  "unstable": {
+   "version": [
+    20210201,
+    1839
+   ],
+   "deps": [
+    "company"
+   ],
+   "commit": "3787785af2135c42af7b22562da554628141afdb",
+   "sha256": "0iwhi1pw14finc9n9avlv79wnyl8628cmdka5j83hjv1bs2fnysw"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    1
+   ],
+   "deps": [
+    "company"
+   ],
+   "commit": "3787785af2135c42af7b22562da554628141afdb",
+   "sha256": "0iwhi1pw14finc9n9avlv79wnyl8628cmdka5j83hjv1bs2fnysw"
+  }
+ },
+ {
   "ename": "company-ycm",
   "commit": "44e168f757cb51249db2deb9f781eff99cf6fb7c",
   "sha256": "1q4d63c7nr3g7q0smd55pp636vqa9lf1pkwjn9iq265369npvina",
@@ -14985,6 +15104,36 @@
   }
  },
  {
+  "ename": "compiler-explorer",
+  "commit": "28f8011009f8e92c020fe7599d9ede24b532e998",
+  "sha256": "1kqgdld32pfbxhxyrcjshj8ip06r8kxd7znvpsba39fp9s2k0pjh",
+  "fetcher": "github",
+  "repo": "mkcms/compiler-explorer.el",
+  "unstable": {
+   "version": [
+    20210212,
+    2218
+   ],
+   "deps": [
+    "request"
+   ],
+   "commit": "13dd0d44590dbf513aa0d70b518a3d2b1644179c",
+   "sha256": "0qwsajgwl28r4kpfxr5vzqwzspcjg0bb0n7cln8fp55bbq8wprq7"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "request"
+   ],
+   "commit": "0195db82b767e9defa36a2e298e6ac4aa4b47e69",
+   "sha256": "1ky63d2szw4sfgjd8xyfxswg2x7b8vnqnly6h1yisxc17994vl4v"
+  }
+ },
+ {
   "ename": "completions-frame",
   "commit": "dcbb088900f76c05b04ffe25d32e43a477a0556f",
   "sha256": "1ng5wmk1vp6yqrcyld23mrs8xdfa010l9acjy1vgkcsxjp3nmv3x",
@@ -15297,11 +15446,19 @@
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20210115,
-    618
+    20210323,
+    1627
+   ],
+   "commit": "19540d37783dc34bdb98d7cea24e8bb57090dab4",
+   "sha256": "0vsgxfxb9bhgncxyhrvxpaan4pwca2vwvpr4qjcgqh1bb147rrkr"
+  },
+  "stable": {
+   "version": [
+    0,
+    6
    ],
-   "commit": "6e7fd01c217b2ee6cc5e02dd74d7e687c2ccf267",
-   "sha256": "0vzbv51q6ax824kcrr7hv4l93s91ii583lsx2wc0nvi0vklbq50i"
+   "commit": "3184edd6ccf9cfb300511feb297b9012ce902bbe",
+   "sha256": "09n3q3dyi83s4fk4z7csnjicbxd69ws4zp4371c1lbxcvvq2fdnd"
   }
  },
  {
@@ -15312,15 +15469,78 @@
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20210112,
-    1845
+    20210301,
+    2310
    ],
    "deps": [
     "consult",
     "flycheck"
    ],
-   "commit": "6e7fd01c217b2ee6cc5e02dd74d7e687c2ccf267",
-   "sha256": "0vzbv51q6ax824kcrr7hv4l93s91ii583lsx2wc0nvi0vklbq50i"
+   "commit": "19540d37783dc34bdb98d7cea24e8bb57090dab4",
+   "sha256": "0vsgxfxb9bhgncxyhrvxpaan4pwca2vwvpr4qjcgqh1bb147rrkr"
+  },
+  "stable": {
+   "version": [
+    0,
+    6
+   ],
+   "deps": [
+    "consult",
+    "flycheck"
+   ],
+   "commit": "3184edd6ccf9cfb300511feb297b9012ce902bbe",
+   "sha256": "09n3q3dyi83s4fk4z7csnjicbxd69ws4zp4371c1lbxcvvq2fdnd"
+  }
+ },
+ {
+  "ename": "consult-notmuch",
+  "commit": "e61a3f8cba4e5e303379f80c9fdd773fdde66406",
+  "sha256": "09kslrizpk5jh9czjn4xrcs1k9661dgly9z08dwsvb76pnjzd7wg",
+  "fetcher": "git",
+  "url": "https://codeberg.org/jao/consult-notmuch.git",
+  "unstable": {
+   "version": [
+    20210312,
+    2201
+   ],
+   "deps": [
+    "consult",
+    "notmuch"
+   ],
+   "commit": "67cf219fcce211237347a783ce6982402341d5fd",
+   "sha256": "03amdvzj09dsdjc7y6xvxn429by9vzyv5wghyairn9n0rf8c3r1m"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "deps": [
+    "consult",
+    "notmuch"
+   ],
+   "commit": "0bcdad24c8cc4ac530fcafd90ab728ed5dfbf0ed",
+   "sha256": "1s9glbwdwk29pp5nj4ab6giakhjqx4rcy4zbf7ml7h83qi59sd68"
+  }
+ },
+ {
+  "ename": "consult-spotify",
+  "commit": "fb515b013942cf5ef4590e7cbc17f11f10c7692f",
+  "sha256": "0y393qwvjv7blc8d4qih9ksm2521az28v29hgczjlady0fjp9bn9",
+  "fetcher": "git",
+  "url": "https://codeberg.org/jao/espotify",
+  "unstable": {
+   "version": [
+    20210220,
+    2229
+   ],
+   "deps": [
+    "consult",
+    "espotify",
+    "marginalia"
+   ],
+   "commit": "b70b4737ece5a081411069eb08103ddbbf8e584a",
+   "sha256": "1kplm8rhyp5fssfi8pswafnck96m6zjkyvqjcwil459liy8lpw46"
   }
  },
  {
@@ -15636,26 +15856,28 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210109,
-    1641
+    20210322,
+    24
    ],
    "deps": [
+    "ivy",
     "swiper"
    ],
-   "commit": "cbce9ce71429c98c67bd76ef15d049ecced042f7",
-   "sha256": "08lgvpvkhp2i9q73bnr2v17w864rwp6wjnrl3b7qg06dacfs2rvl"
+   "commit": "47b496544e238041bca5e3c9ca55848648344312",
+   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
   },
   "stable": {
    "version": [
     0,
     13,
-    0
+    4
    ],
    "deps": [
+    "ivy",
     "swiper"
    ],
-   "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
-   "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+   "commit": "8cf3f1821cbd1c266296bbd5e59582ae6b8b90a6",
+   "sha256": "1k8ja0cjdb13xi5b05rab3r0z53qkhjwjagxzw3fpzlyd7rxzi14"
   }
  },
  {
@@ -15666,15 +15888,15 @@
   "repo": "gexplorer/counsel-ag-popup",
   "unstable": {
    "version": [
-    20210114,
-    1548
+    20210121,
+    805
    ],
    "deps": [
     "counsel",
     "transient"
    ],
-   "commit": "cf0ee4f5bdb43a576f5cde00d52744ddb49177d5",
-   "sha256": "1k9d0581imp65d6w9vmc8bx6phyx0pvl7mas56p06hgnwg1i9cyk"
+   "commit": "41d85fe36edd72da68f5009ad9cf9013cd19960d",
+   "sha256": "1gfppiwx0cilg97bfb2cpdk7j10rdm473kklrkvb6wlwwg3j9w3q"
   }
  },
  {
@@ -15735,15 +15957,15 @@
   "repo": "hlissner/emacs-counsel-css",
   "unstable": {
    "version": [
-    20200331,
-    632
+    20210310,
+    452
    ],
    "deps": [
     "cl-lib",
     "counsel"
    ],
-   "commit": "6427dfcbda0d2bbd81db03f9d6b56b06c260ac02",
-   "sha256": "1g8gz5mz2qclia64qmgw02h5ivywgn46d6djlr7vcdfyp774cf64"
+   "commit": "f7647b4195b9b4e97f1ee1acede6054ae38df630",
+   "sha256": "06xvyf9cnyq9zlp7rkq0a0h85yk967icifhg1pfhsz17za97yg94"
   },
   "stable": {
    "version": [
@@ -15795,6 +16017,40 @@
   }
  },
  {
+  "ename": "counsel-edit-mode",
+  "commit": "73f84ab4a5b2cc5625968961601bad2a50ecc1f1",
+  "sha256": "0hlg10a7vg8lk08l439z0ldfidccgk6ngsjs1p384s24nqzrds9b",
+  "fetcher": "github",
+  "repo": "tyler-dodge/counsel-edit-mode",
+  "unstable": {
+   "version": [
+    20210103,
+    1508
+   ],
+   "deps": [
+    "counsel",
+    "ht",
+    "s"
+   ],
+   "commit": "82234306562f47ec50db212888dbcf21ef0b70f8",
+   "sha256": "0jfl33npvw6rqk734ml87bfvnjrsgzim0z397j1bg7klva60j7q6"
+  },
+  "stable": {
+   "version": [
+    0,
+    6,
+    1
+   ],
+   "deps": [
+    "counsel",
+    "ht",
+    "s"
+   ],
+   "commit": "75563c48135a4f52230d08e818e35d72fd55c2a4",
+   "sha256": "05ryph35ynzq7r5wp8m1q9vhnjv60x24sphzvbp8is0dp0fgwr0d"
+  }
+ },
+ {
   "ename": "counsel-etags",
   "commit": "87528349a3ab305bfe98f30c5404913272817a38",
   "sha256": "1h3dlczm1m21d4h41vz9ngg5fi02g6f95qalfxdnsvz0d4w4yxk0",
@@ -15802,14 +16058,14 @@
   "repo": "redguardtoo/counsel-etags",
   "unstable": {
    "version": [
-    20201228,
-    741
+    20210226,
+    1218
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "c10951946d6dd935e4ab5d18db5da228e1c22806",
-   "sha256": "09n0mpp0pchb85f7qkizd686rpkfagmr7sd0sxsh81xhzdavam47"
+   "commit": "e41a39cd07c594b5fa1c6757e9464be56a3dadea",
+   "sha256": "1dcph2ak1r5yrw0hfygrb6d80y3jkx1fsj1rrp7sg3p37rnfhq94"
   },
   "stable": {
    "version": [
@@ -15869,15 +16125,15 @@
   "repo": "FelipeLema/emacs-counsel-gtags",
   "unstable": {
    "version": [
-    20201211,
-    1755
+    20210222,
+    1803
    ],
    "deps": [
     "counsel",
     "seq"
    ],
-   "commit": "e4a662c38cd217bae9c0bd80f2c9b53cc2cffcb7",
-   "sha256": "0gb8gbphckyk834mxl704fawvykigmk0cl8klmyfap0nb55h846b"
+   "commit": "1d52eaeffeb60266434d4f7416a108ca058fde91",
+   "sha256": "13jx6hscdcfqwzk1pcmzrv7frglcnd1ywl22ddxzzymi339r4lyj"
   },
   "stable": {
    "version": [
@@ -15975,8 +16231,8 @@
     "dash",
     "ivy"
    ],
-   "commit": "c5f781f241f8b16b7c3b6fb3e56e2938ba1dd87a",
-   "sha256": "10img15z5lfn8ml8d6v5mjf1nr73i8mjn9xy23ydp16n2idshh3d"
+   "commit": "6ba0f2ac7e4e5b8c1baec90296d9f24407d8d632",
+   "sha256": "1kp83cql4gn9g3d8g5mw3mrmpfj407kzpsi5wmwl1jr1pmw3v3jc"
   }
  },
  {
@@ -16178,16 +16434,16 @@
   "repo": "AdamNiederer/cov",
   "unstable": {
    "version": [
-    20201214,
-    550
+    20210320,
+    1641
    ],
    "deps": [
     "elquery",
     "f",
     "s"
    ],
-   "commit": "5efa13e7d3e06f206b29879d8f66afd6b0d26f52",
-   "sha256": "01d7kgsdv09lllmhi2dvywb61n2aj3j665xcxqjidwfl03vsw16g"
+   "commit": "766b09cbe92cb5b689a36a9c136013a51da95712",
+   "sha256": "1p5b39574dpw0lljhm4l200if65fjpgnnbqsimf31r0y4rm1pr0d"
   }
  },
  {
@@ -16576,6 +16832,29 @@
   }
  },
  {
+  "ename": "crossword",
+  "commit": "d74c680a2eada669fa092d05fa5c16ac81b9ad13",
+  "sha256": "11kpsdzpr4cv49xvzh49qfn77if397y6p2bxh7ql772mbhhb2h1m",
+  "fetcher": "github",
+  "repo": "Boruch-Baum/emacs-crossword",
+  "unstable": {
+   "version": [
+    20210216,
+    1703
+   ],
+   "commit": "cb2e2a435ea9f4fa8c7517b4909af8b62bca8a3e",
+   "sha256": "18dk9623ff2kxfhbdnh4l68n5dfxqgrm6ilmv85dfj685kahd0d3"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "commit": "fa80bfef81168509ddbd840d95c6671efe91c253",
+   "sha256": "12kgzzsnh9bh6aiip53ib28yapajg326xd7g45apjkl8irazr4db"
+  }
+ },
+ {
   "ename": "crux",
   "commit": "575e3442a925500a5806e0b900208c1e6bfd11ae",
   "sha256": "10lim1sngqbdqqwyq6ksqjjqpkm97aj1jk550sgwj28338lnw73c",
@@ -16583,14 +16862,14 @@
   "repo": "bbatsov/crux",
   "unstable": {
    "version": [
-    20201129,
-    1921
+    20210309,
+    838
    ],
    "deps": [
     "seq"
    ],
-   "commit": "ba4a1f38eee0ae7597f67a1424bbf5c0c09473bf",
-   "sha256": "0swykynbxsvxwxqjf41aqydkfrwy6f5ngl4pp8py5r5vh78a91ih"
+   "commit": "20c07848049716a0e1aa2560e23b5f4149f2a74f",
+   "sha256": "0v65zy9f5wsq9vpibfccyyv6ww4fwgyx3vc38vz83j0c5b2c9r6n"
   },
   "stable": {
    "version": [
@@ -16694,11 +16973,16 @@
   "repo": "emacs-csharp/csharp-mode",
   "unstable": {
    "version": [
-    20210114,
-    2018
+    20210321,
+    914
    ],
-   "commit": "1d02a54f71b0c6ae0b5be9f764271ac31b1b0167",
-   "sha256": "02mbxqf4y04ancz89jkb8dmpmx3pmzxnxm5vc4fc6d828nzv56fx"
+   "deps": [
+    "tree-sitter",
+    "tree-sitter-indent",
+    "tree-sitter-langs"
+   ],
+   "commit": "f977800161ccdb58d5650a8ca60017c83863d80a",
+   "sha256": "1j173ir1c95jhj5671yah6jmz2qfk3sfspl0naz48s0bs2n5bxcw"
   },
   "stable": {
    "version": [
@@ -16844,6 +17128,25 @@
   }
  },
  {
+  "ename": "ct",
+  "commit": "a216297f766f14428c689a184bf1ba0a03f02a29",
+  "sha256": "01p6jz0kdsr3h033nwg7xbyp55w3pszdg6bkkhdygiyhsaqlw4y1",
+  "fetcher": "github",
+  "repo": "neeasade/ct.el",
+  "unstable": {
+   "version": [
+    20210219,
+    1344
+   ],
+   "deps": [
+    "dash",
+    "hsluv"
+   ],
+   "commit": "c302ee94feee0c5efc511e8f9fd8cb2f6dfe3490",
+   "sha256": "0230h5qvg5jbpyry4xxmh41c0wpinmm04k5hc1qsc2mvqhv3n9n5"
+  }
+ },
+ {
   "ename": "ctable",
   "commit": "8bc29a8d518ce7a584277089bd4654f52ac0f358",
   "sha256": "040qmlgfvjc1f908n52m5ll2fizbrhjzbd0kgrsw37bvm3029rx1",
@@ -16851,11 +17154,14 @@
   "repo": "kiwanami/emacs-ctable",
   "unstable": {
    "version": [
-    20171006,
-    11
+    20210128,
+    629
    ],
-   "commit": "b8830d1ca95abb100a81bc32011bd17d5ecba000",
-   "sha256": "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"
+   "deps": [
+    "cl-lib"
+   ],
+   "commit": "48b73742757a3ae5736d825fe49e00034cc453b5",
+   "sha256": "16yrx1z44xs24z2a0gwzf1xhhks1wrzafc5ihf6lbw843rq2jar0"
   },
   "stable": {
    "version": [
@@ -16913,19 +17219,19 @@
   "repo": "raxod502/ctrlf",
   "unstable": {
    "version": [
-    20201020,
-    1353
+    20210308,
+    25
    ],
-   "commit": "5acefdc9a6f8e35febf6f71b6a34a0d4fc499269",
-   "sha256": "0h707npbc4n9zx3pzla8cwaij48f80gg8fyjrdha4wb4y8ld6llq"
+   "commit": "f9ef7a5e1b53f5ea9d486c93d47806e7d7f432ef",
+   "sha256": "0b5kyfr7qyv5id61d16r07k37yn690sx42rjnj2jk6q2rwib5zj7"
   },
   "stable": {
    "version": [
     1,
-    2
+    3
    ],
-   "commit": "d398a9bfbd959489fd6515b62dbf818a61d0e4d6",
-   "sha256": "1f0k3432brc96am6az6xr1nks1vacqzixhdgwfn2xklb8if9a5xi"
+   "commit": "d7fad32584c3e569046691bf7f27b21e294c0a2a",
+   "sha256": "06wq6scqy2ax0h6aahy2r7hn3bbmkzl4w99bkrc3cqd4ij78sc8g"
   }
  },
  {
@@ -16951,11 +17257,11 @@
   "repo": "maurooaranda/ctune",
   "unstable": {
    "version": [
-    20190914,
-    1305
+    20210205,
+    1428
    ],
-   "commit": "d7643461f5aa33cc04e4d808123e4ed1d85500ee",
-   "sha256": "03gby644xqah7q9sjba9w6c7askc1s7ka4bx814x6vrlla6089h4"
+   "commit": "3f7abc6e74d4e5954b476ba9a1dc652f96b10c05",
+   "sha256": "1lcgkh0hhgx4rvc84kgbg3sczqp53gz6859c30hq1agn1zhbwrvy"
   },
   "stable": {
    "version": [
@@ -17126,6 +17432,45 @@
   }
  },
  {
+  "ename": "current-word-highlight",
+  "commit": "02d60c15b4624735ba7e62f7c27a27487f1c7caf",
+  "sha256": "0jrcgvc60hzcnd66b0na4rd0lnr92pgfrkwwfvih2qjzxf5lpl72",
+  "fetcher": "github",
+  "repo": "kijimaD/current-word-highlight",
+  "unstable": {
+   "version": [
+    20210323,
+    1401
+   ],
+   "commit": "d860f4e170ffa4cef840da93647f458cc409d554",
+   "sha256": "1mpimgsqkanvgmdvh9zm0vsyf6j4mhsf65p7kx389as82qb7hdy2"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    3
+   ],
+   "commit": "2d7c5547e4b0da361b1533d2ff30e3f62f4b682c",
+   "sha256": "1d1mz0j51i09g2fn25iik7wk0cc9i6ps8qviik73fy7ivvxjn0vp"
+  }
+ },
+ {
+  "ename": "curry-on-theme",
+  "commit": "a87da8c1522b826252193faa67c933a0eb3a3266",
+  "sha256": "08nfpzpg4q46p62l3kfxnfcmnmzjbi35vfgvlwl1aan29sw0ciid",
+  "fetcher": "github",
+  "repo": "mvarela/Curry-On-theme",
+  "unstable": {
+   "version": [
+    20210322,
+    1717
+   ],
+   "commit": "b53a61d443cc75906d9f97e19f19be71f1e19bc4",
+   "sha256": "1idh5by5fzndaywf86lckz7mxr5kxggbzlgpjjvmahlnma110a1j"
+  }
+ },
+ {
   "ename": "cursor-test",
   "commit": "6439f7561cfab4f6f3beb132d2a65e94b3deba9e",
   "sha256": "1c1d5xq4alamlwyqxjx557aykz5dw87acp0lyglsrzzkdynbwlb1",
@@ -17264,11 +17609,11 @@
   "repo": "mrkkrp/cyphejor",
   "unstable": {
    "version": [
-    20210111,
-    841
+    20210319,
+    1423
    ],
-   "commit": "037c0f2d0cd0e23acd2aacb621d7694080f5eef6",
-   "sha256": "16jca2abc66vcf92js5m5489np7a4ymb27i78rkqwsrwcniz178j"
+   "commit": "cf580995f891e339a9485ba91d6cb81a2abd61e4",
+   "sha256": "1k0zwgr80figw0xkni2ih87bi566q3j4009dhicq4ldv2lyaybl9"
   },
   "stable": {
    "version": [
@@ -17306,17 +17651,17 @@
     20190111,
     2150
    ],
-   "commit": "30fc474830b4a5beb88cdc53a31797ed794cddb8",
-   "sha256": "08wb26skxw4gh1gzpbxxgi63x44zbb50xd6mi5nbsg538fqb9arj"
+   "commit": "8609e0fa7d361f1392823ff6e1a618720cd62df3",
+   "sha256": "101nvcjf6x38fbcg8fhg5xryid3plncmj36i7137gnhsn1r9fsdv"
   },
   "stable": {
    "version": [
     0,
     29,
-    21
+    22
    ],
-   "commit": "976f5483c6df8570f34076ef25af7e7512dd9347",
-   "sha256": "1951kwfnngy2k7m3adqi17rb7f17yrr5n9zpvvmw7vxpfmca66ka"
+   "commit": "3e470fcc3a4e9a33b66d5db6ab761c773888a1ea",
+   "sha256": "1fbi0ladg9c37hw3js72i72nza8hfjzm5c8w95c6bmzsl22lszwi"
   }
  },
  {
@@ -17342,11 +17687,11 @@
   "repo": "Emacs-D-Mode-Maintainers/Emacs-D-Mode",
   "unstable": {
    "version": [
-    20201201,
-    1136
+    20210119,
+    1853
    ],
-   "commit": "1931ec9ee7af6767883452a822914ad3fd98ddad",
-   "sha256": "0sf7bn11hfcmmlx3vrp0aix2g1nvng7wfwbkbvj682prr9zld3c3"
+   "commit": "199743df55c6bfce3cdb08405bd8519768c8dfa9",
+   "sha256": "18jzrql5g2sd322w25phws7d1v8906lyc0ipn6cknlrv4pjmdazv"
   },
   "stable": {
    "version": [
@@ -17458,11 +17803,11 @@
   "repo": "rails-to-cosmos/danneskjold-theme",
   "unstable": {
    "version": [
-    20201120,
-    1520
+    20210325,
+    935
    ],
-   "commit": "412f5c80f3da1699ae69b878405fd71e65b6358a",
-   "sha256": "1icwdkaybs1cpqgvdzvgqickgcpm0ykpr4345jzhc193gfb1iccc"
+   "commit": "ca13f96e5dfa319ceb7b094ee452ddf55b67905c",
+   "sha256": "0cyl8g5gbdypj44yk91sq4frkqahpwkgvnk1i3zda79m453dzg06"
   }
  },
  {
@@ -17473,8 +17818,8 @@
   "repo": "jyp/dante",
   "unstable": {
    "version": [
-    20210101,
-    907
+    20210301,
+    1738
    ],
    "deps": [
     "company",
@@ -17485,8 +17830,8 @@
     "lcr",
     "s"
    ],
-   "commit": "7b32bf21d5b9f7232c4b5c3760abf306e9ed9a0c",
-   "sha256": "1if4p6ikj7dry2c0xyli4m02f6xabriddm25xp4nksm8mj9cjgby"
+   "commit": "8741419333fb85ed2c1d71f5902688f5201b0a40",
+   "sha256": "1i4rz1lp78wzn8x9xgjar8h66csdkf5836ny8lwd68m7z5gh0w21"
   },
   "stable": {
    "version": [
@@ -17514,21 +17859,21 @@
   "repo": "emacs-lsp/dap-mode",
   "unstable": {
    "version": [
-    20201118,
-    1304
+    20210317,
+    151
    ],
    "deps": [
     "bui",
     "dash",
-    "dash-functional",
     "f",
+    "ht",
     "lsp-mode",
     "lsp-treemacs",
     "posframe",
     "s"
    ],
-   "commit": "612388d0b85e77972a9c28391bac6224a63408c7",
-   "sha256": "1z1vimfwjb5bfqdijh38cii222sw07l2mgbw4bwhwp93kasczw9a"
+   "commit": "ae395aa991d55eaddb2d2b80cd469089b9d19bb7",
+   "sha256": "1bxpnaj466n6sw00zc4fbw7i7nmkr0b6g8qvai6vql503lmm5f89"
   },
   "stable": {
    "version": [
@@ -17715,11 +18060,11 @@
   "repo": "bradyt/dart-mode",
   "unstable": {
    "version": [
-    20190827,
-    2102
+    20210301,
+    0
    ],
-   "commit": "04fcd649f19d49390079fbf2920a10bf37f6a634",
-   "sha256": "1rpdrq8w8vishjpakxvj20dgnnp2qksi1nrd0qllllb5sjyih56d"
+   "commit": "43975c92080e307c4bc14a4773a61195d2062fd9",
+   "sha256": "0zpjrq3cra6q6pd52skm11wj0j75v8cnamv504hlq4rgd87vkz2p"
   },
   "stable": {
    "version": [
@@ -17781,20 +18126,20 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20210114,
-    2017
+    20210308,
+    2109
    ],
-   "commit": "6f5888c77523c2373c5252ef2113612beac7e78f",
-   "sha256": "1kg6c0jv44wlc0pidphg0cpmxfkn72r9391x0jgl1w22bhsvy4cz"
+   "commit": "a17b6b5409825891423b3867cd7bea84852d6ddd",
+   "sha256": "0swjqkz5bq1f9vphjc6a1mwr7b3rlr8j9jg56f9gwj9gcv9mgjab"
   },
   "stable": {
    "version": [
     2,
-    17,
-    0
+    18,
+    1
    ],
-   "commit": "721436b04da4e2795387cb48a98ac6de37ece0fd",
-   "sha256": "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"
+   "commit": "1a53e13d7964c84cf756ead353eb6dc094b65fd5",
+   "sha256": "1cvfd36vv0wqb16bnqqxh99hy2yks0j2i4l8qjkg3bxjgk7ldmva"
   }
  },
  {
@@ -17854,26 +18199,26 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20210103,
-    1524
+    20210210,
+    1449
    ],
    "deps": [
     "dash"
    ],
-   "commit": "6f5888c77523c2373c5252ef2113612beac7e78f",
-   "sha256": "1kg6c0jv44wlc0pidphg0cpmxfkn72r9391x0jgl1w22bhsvy4cz"
+   "commit": "a17b6b5409825891423b3867cd7bea84852d6ddd",
+   "sha256": "0swjqkz5bq1f9vphjc6a1mwr7b3rlr8j9jg56f9gwj9gcv9mgjab"
   },
   "stable": {
    "version": [
     2,
-    17,
-    0
+    18,
+    1
    ],
    "deps": [
     "dash"
    ],
-   "commit": "721436b04da4e2795387cb48a98ac6de37ece0fd",
-   "sha256": "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"
+   "commit": "1a53e13d7964c84cf756ead353eb6dc094b65fd5",
+   "sha256": "1cvfd36vv0wqb16bnqqxh99hy2yks0j2i4l8qjkg3bxjgk7ldmva"
   }
  },
  {
@@ -17884,14 +18229,14 @@
   "repo": "emacs-dashboard/emacs-dashboard",
   "unstable": {
    "version": [
-    20210113,
-    922
+    20210325,
+    757
    ],
    "deps": [
     "page-break-lines"
    ],
-   "commit": "fb5e47576a1c91374b008221277f0a45b2491085",
-   "sha256": "0c4rj8lm7dikjbnr2ynzhmzchg7mjirawp0hqxd5jgdv0lbn267n"
+   "commit": "00f1dc84d3fbaf439d23645aa531eee59e28f688",
+   "sha256": "0afn7p79na8351gimmjrj2z4y3slyvsrinm8gx7qphflz2a13m2z"
   },
   "stable": {
    "version": [
@@ -18071,26 +18416,25 @@
   "repo": "doublep/datetime",
   "unstable": {
    "version": [
-    20200621,
-    2103
+    20210307,
+    2203
    ],
    "deps": [
     "extmap"
    ],
-   "commit": "c51eeb6df180f6c7d1676d1c0af78255bb0fdf95",
-   "sha256": "11w32jnkc596ybbhqih5d4rbvqk50cc6yyc9759acnzlqfd188xs"
+   "commit": "276f9d4304180301edabc160d5d17f46532489a1",
+   "sha256": "0g6qgp6zvrbiaq6yfzqs3bmnry43xspp3ra3hm17x80b6izdsn90"
   },
   "stable": {
    "version": [
     0,
-    6,
-    6
+    7
    ],
    "deps": [
     "extmap"
    ],
-   "commit": "55297bf409f35dbc4bcd26b458b83e349ed11452",
-   "sha256": "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"
+   "commit": "276f9d4304180301edabc160d5d17f46532489a1",
+   "sha256": "0g6qgp6zvrbiaq6yfzqs3bmnry43xspp3ra3hm17x80b6izdsn90"
   }
  },
  {
@@ -18231,8 +18575,8 @@
     "ccc",
     "cdb"
    ],
-   "commit": "1cd0f65e4e116aaa1dddce98e95ce79911ff85ac",
-   "sha256": "1w9k8gadkm0l39j8i9n5c3zwsgv1rqi9q3gpx050wn5mv33aryak"
+   "commit": "cec99365fb3ad725c44514b918696ab153596b8d",
+   "sha256": "0q1vxcm163cs0pwnpnbjanpm49hshiyfx4m915i1wxsa7q9vvv67"
   }
  },
  {
@@ -18274,16 +18618,16 @@
   "repo": "Wilfred/deadgrep",
   "unstable": {
    "version": [
-    20210113,
-    829
+    20210219,
+    748
    ],
    "deps": [
     "dash",
     "s",
     "spinner"
    ],
-   "commit": "bb374c625939ac2dd9e2408c2cc180b1c9f4aa20",
-   "sha256": "0galdbka4dmlrryn5pbyd7frc676hb91y0zf6di8p9j2v3r7gzqv"
+   "commit": "ca16c37ffa5caa5f698bc049012489a2e3071bcc",
+   "sha256": "055yxchqbqp4pbw9w9phibnp0a2qw1jsb1a5xbfc558phi2vbxdd"
   },
   "stable": {
    "version": [
@@ -18459,8 +18803,8 @@
     20201227,
     2319
    ],
-   "commit": "dd143e7e6cf5384d203a76e50fe677a77f1cd615",
-   "sha256": "1zpf35x1w4ldijqx3a2qlykhy9xgw3mqzxhfv0r3qn37k7lg0m58"
+   "commit": "e5aad0510139cca42b37614d3599951ac0a28ccc",
+   "sha256": "0kp3ngmdwip7c4c9mvw1l04p13gjjfaigwdiaycbzd5jzlgdh6rq"
   }
  },
  {
@@ -18806,20 +19150,43 @@
   "repo": "DamienCassou/desktop-environment",
   "unstable": {
    "version": [
-    20201229,
-    1107
+    20210129,
+    2018
    ],
-   "commit": "9ece03e3e687ff97d79eb2a9f6cc506a932f89ca",
-   "sha256": "1hsjzwwlhqxqgp5ii8a23wq2fc7a8dzfnqhjyakn39wp7dm925sz"
+   "commit": "2c3e0750c11485931f447ea82f80bc90ae07aeba",
+   "sha256": "0ciha9q6j0fp0197ga0ifi4j527sp2pk6862mm70skpfv6bm8dx2"
   },
   "stable": {
    "version": [
     0,
-    4,
+    5,
     0
    ],
-   "commit": "c7507bfb10464b0527b3e2c5287a256cf3bf7ba3",
-   "sha256": "0s33jncjg8c2xlr90qjk1ishwmwxm9yg0z6n3kzilawcilpxidsh"
+   "commit": "9da8f4bddb78668085a7fc367f9021549f9e5f70",
+   "sha256": "03rl1z860jmirjrrg0xsjx0bqk73k043c8bz6049zhndh7pidri7"
+  }
+ },
+ {
+  "ename": "desktop-mail-user-agent",
+  "commit": "d0ac6ab8716a772a38e368bfe91229aa9bcbee29",
+  "sha256": "1w8yr1viwkcp3g499zgk20j0q38891s9smgwvn8bly25bas9z1x7",
+  "fetcher": "github",
+  "repo": "lassik/emacs-desktop-mail-user-agent",
+  "unstable": {
+   "version": [
+    20210309,
+    1355
+   ],
+   "commit": "64d0a75491414b119e044ea8fdf771753491a8cc",
+   "sha256": "0gkx1sdplnnihfvqj2cwnfdcd08s13zxv3in3a68fi8w2l6cn7ki"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "commit": "6b665208bd9471cd8e4b4a81237b22c93a734528",
+   "sha256": "0i2j4i6xv3nrkc0v9ch2f6vw9hfg54ghwb1yqmdg2j7wqh3mm0hq"
   }
  },
  {
@@ -18941,11 +19308,11 @@
   "repo": "raxod502/diary-manager",
   "unstable": {
    "version": [
-    20200404,
-    1549
+    20210226,
+    416
    ],
-   "commit": "4f9d3104f0d89fe3e39c878d2035e6b6d9510659",
-   "sha256": "094x2n9nlqwxdppkw7wsyxwp34gf0b1dfyxp97nn712mfy98g1fc"
+   "commit": "12f194bd411e52b72bdf555e48e9a831e5ff8357",
+   "sha256": "0mn90abd2ak5f9b1s3q5h3l2lfhi91mwx4j50hs8q91s0r43hixz"
   },
   "stable": {
    "version": [
@@ -19074,8 +19441,8 @@
     20201006,
     1436
    ],
-   "commit": "940f967bca64a8012892040c2e2f262d8709c41a",
-   "sha256": "1pm4a3jx2aq1cz9s9nfs1zm0s4crqarai3hr6dyihjqyf0szwrvq"
+   "commit": "3fcf861f1f8b91d97000bda32345bc92df8e2d37",
+   "sha256": "0x0awnasdjkmmrm11dqs4spkx2j3prkiqrmf5w3lxp2v28i4m2qk"
   }
  },
  {
@@ -19086,14 +19453,14 @@
   "repo": "dgutov/diff-hl",
   "unstable": {
    "version": [
-    20210113,
-    1930
+    20210318,
+    1413
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "dc3e12f14f5fddff3811310cd48640e2c9e626da",
-   "sha256": "1ackhs5rajydwfjgm4a9mwqhc75dk1jsby4yxkqbji495kwq4rsq"
+   "commit": "1af31fe1c177646ef7419c95b5d9c25655187ceb",
+   "sha256": "10gh6fl0j41ga612kk2yh82zh67hbd86rg640r1fk6gc0lcmwqih"
   },
   "stable": {
    "version": [
@@ -19116,16 +19483,16 @@
   "repo": "dieggsy/difflib.el",
   "unstable": {
    "version": [
-    20171227,
-    1518
+    20210224,
+    2242
    ],
    "deps": [
     "cl-generic",
     "ht",
     "s"
    ],
-   "commit": "b08850251812d71e62fd6956081299590acdf37b",
-   "sha256": "03k5iy610f1m2nmkdk69p49fcfqfyxmy3h6fqvqsr2v1hix8i54a"
+   "commit": "646fc4388274fe765bbf4661e17a24e4d081250c",
+   "sha256": "1qagl3ffg01zjqrgpq32h4ya869066n8ll9yq8lk40argjm523fa"
   },
   "stable": {
    "version": [
@@ -19143,6 +19510,35 @@
   }
  },
  {
+  "ename": "diffpdf",
+  "commit": "6a084a863fa9c680997efc02fdf69c95bfc3fed3",
+  "sha256": "0bd7aj4fxb7rg88mlwxryli54p5mxrzir7zj23d7xcvf82wb4aqa",
+  "fetcher": "github",
+  "repo": "ShuguangSun/diffpdf.el",
+  "unstable": {
+   "version": [
+    20210307,
+    932
+   ],
+   "deps": [
+    "transient"
+   ],
+   "commit": "fdb37bb696aaec6cb2bcece3760866760e68edc4",
+   "sha256": "1ig7hk9vhlym91gzk4s6h2a6aj425nln29m6f2hpq9jh3qicgh9i"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "transient"
+   ],
+   "commit": "fdb37bb696aaec6cb2bcece3760866760e68edc4",
+   "sha256": "1ig7hk9vhlym91gzk4s6h2a6aj425nln29m6f2hpq9jh3qicgh9i"
+  }
+ },
+ {
   "ename": "diffscuss-mode",
   "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
   "sha256": "1mycjis38gqwha7jgj05fzv0041ghk6khy5d2dlcyy2nh3bb68rb",
@@ -19188,20 +19584,20 @@
   "repo": "retroj/digistar-mode",
   "unstable": {
    "version": [
-    20200827,
-    9
+    20210129,
+    1719
    ],
-   "commit": "f46d58ea690c7c9ff9aca19441dff23284bab7cf",
-   "sha256": "0x29502mn9cpbsfiqsdaa90j2566zfai5lbv2c49w5wxxm904b7j"
+   "commit": "e12b128023b7696a23545f812877e8c6531d261c",
+   "sha256": "17ja51xcwmiy66000k08z8c7za4rivsi1w8w650s8byd4v9nkc75"
   },
   "stable": {
    "version": [
     0,
     9,
-    1
+    2
    ],
-   "commit": "f46d58ea690c7c9ff9aca19441dff23284bab7cf",
-   "sha256": "0x29502mn9cpbsfiqsdaa90j2566zfai5lbv2c49w5wxxm904b7j"
+   "commit": "e12b128023b7696a23545f812877e8c6531d261c",
+   "sha256": "17ja51xcwmiy66000k08z8c7za4rivsi1w8w650s8byd4v9nkc75"
   }
  },
  {
@@ -19307,6 +19703,24 @@
   }
  },
  {
+  "ename": "dime",
+  "commit": "227c61618e491c4da2b2b48daf7f1bebd2271558",
+  "sha256": "1pd464l4rj1nychdhmi23m98cfxkhvdpxhzni33j275jqin335mp",
+  "fetcher": "github",
+  "repo": "dylan-lang/dylan-emacs-support",
+  "unstable": {
+   "version": [
+    20210319,
+    1414
+   ],
+   "deps": [
+    "dylan"
+   ],
+   "commit": "c51cdb2d947494d8161a429134f9e9d23070a173",
+   "sha256": "0p4kp2gp27xgs4fw0cfd4qz06yp6kvn0k1pq902arzcxkrqz6lj3"
+  }
+ },
+ {
   "ename": "diminish",
   "commit": "1bfb4acb381cada46458cf60eae9b88d007294d5",
   "sha256": "1h6a31jllypk47akjflz89xk6h47na96pim17d6g4rpqcafc2k43",
@@ -19588,20 +20002,20 @@
   "repo": "knu/dired-fdclone.el",
   "unstable": {
    "version": [
-    20180403,
-    608
+    20210226,
+    532
    ],
-   "commit": "903d7a736d240ef7352989a4e5d0ff9129c2ee3c",
-   "sha256": "0vkdsm29g1cvvv1j8xgjwr94x20zx8k2wvmncrpakcwq6d47cfxw"
+   "commit": "3ba369f5fc48a8fdf06d1c6ee1167b5a6eb7c1b3",
+   "sha256": "1qh19f0ry7ri7vibcsb9y36ni7k8spjlnl01knlx7cs65qza8mpf"
   },
   "stable": {
    "version": [
     1,
     5,
-    4
+    6
    ],
-   "commit": "903d7a736d240ef7352989a4e5d0ff9129c2ee3c",
-   "sha256": "0vkdsm29g1cvvv1j8xgjwr94x20zx8k2wvmncrpakcwq6d47cfxw"
+   "commit": "1473c20fe91ebbe8c44bf2c6551a5f76fbc3b65b",
+   "sha256": "0dca8arnh07mdvrwiaxfgfirrsjcwl4vdap7czd4rdkbmgvkv994"
   }
  },
  {
@@ -19687,11 +20101,11 @@
   "repo": "mattiasb/dired-hide-dotfiles",
   "unstable": {
    "version": [
-    20170314,
-    2039
+    20210222,
+    1919
    ],
-   "commit": "b715f643ec805b3b8aca334595e6589320f04a49",
-   "sha256": "1n6l25lrhp1x8nhc54kqal96wq96kkfyvz5yzvlw1qd3yk4s567i"
+   "commit": "6a379f23f64045f5950d229254ce6f32dbbf5364",
+   "sha256": "0cwsjndvnv9a62ism7ckj27jdqx362947lyizka78qvmv369avv3"
   },
   "stable": {
    "version": [
@@ -19969,11 +20383,11 @@
   "repo": "vifon/dired-rifle.el",
   "unstable": {
    "version": [
-    20200308,
-    2358
+    20210316,
+    1452
    ],
-   "commit": "99e4110c80d65ca43e2b0ec078e3202995e392d7",
-   "sha256": "034qak8kdp7laz1ylqy9np5ajhwf741mdl0bj5kb7rrrsijxada6"
+   "commit": "cc1af692bbac651f5e5111d9ab1c0805989d65e5",
+   "sha256": "08csqjpwlqln2yk5by9zwh6jsl5kn33jy240d7a1py1d892b7xy8"
   }
  },
  {
@@ -20014,8 +20428,8 @@
     "dash",
     "s"
    ],
-   "commit": "947a008387a939f466ca122bda2ea98bb17710e3",
-   "sha256": "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"
+   "commit": "fb0f161ac3cce1b224f52547f5bc7e1dcd283191",
+   "sha256": "0c92cqdsllly2dqrgfa9x8nmdyia1p9gkzyaf4427m1wd08dnfra"
   },
   "stable": {
    "version": [
@@ -20038,26 +20452,26 @@
   "repo": "jojojames/dired-sidebar",
   "unstable": {
    "version": [
-    20210109,
-    1854
+    20210301,
+    2158
    ],
    "deps": [
     "dired-subtree"
    ],
-   "commit": "18986f015c993508af0b1b4e43e11dbd7af98057",
-   "sha256": "1zla8q26sif8795n5vncwgz2j7c45bh3gnjkwqgpdg4carrw5s60"
+   "commit": "92e7f77ec65c2089d75edb63ca312f55e3033be0",
+   "sha256": "0ad9r63jp257z95jb5537nbw64q6shdg4m5cmlx8asb7fp2wgsf8"
   },
   "stable": {
    "version": [
     0,
-    1,
+    2,
     0
    ],
    "deps": [
     "dired-subtree"
    ],
-   "commit": "347f56480228c2aac97e14f4f5a762c4582d1323",
-   "sha256": "1ahmvbwwdnjddn8qk6gq5gjfkvi1mvm13a968n7zpcpnphk6ygzb"
+   "commit": "cfc70763131ae668ff7b4884651f894fd102ffb6",
+   "sha256": "090dqaqyjmkzrz4szjpk1iip0bdvb0frp4l79393f8ki8w7c16c1"
   }
  },
  {
@@ -20158,8 +20572,16 @@
   "repo": "Boruch-Baum/emacs-diredc",
   "unstable": {
    "version": [
-    20210113,
-    1
+    20210316,
+    1841
+   ],
+   "commit": "dd945de3e0c66a164f003a96d473376b58fc6dc7",
+   "sha256": "1d4rdrc827nnb9p56la1sd9nzwjbxbnr8fgmcgardlz3qw97j3q1"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
    ],
    "commit": "887434054c2cfc521ceb990266cc7bbc12c4a72a",
    "sha256": "16rwxv2mrn79m8hqg79kq7z6fz2l8amh17kny4y3qnsvakpi0hch"
@@ -20176,8 +20598,8 @@
     20191227,
     2028
    ],
-   "commit": "cd052dfef602fe79d8dfbcf9f06e6da74412218b",
-   "sha256": "1zhnr4wkb0gifhf1gfssipanifaiixvz6wqlmscxyp7hdm8xjvad"
+   "commit": "4ca32658aebaf2335f0368a0fd08f52eb1aee960",
+   "sha256": "1dwzlxz0q9wqn1az1b0bfl8ywib4nd5grdfqaa06fqd63zlp71pg"
   },
   "stable": {
    "version": [
@@ -20219,14 +20641,14 @@
   "repo": "wbolster/emacs-direnv",
   "unstable": {
    "version": [
-    20200529,
-    1305
+    20210117,
+    1213
    ],
    "deps": [
     "dash"
    ],
-   "commit": "f5484b0fc33d4e5116612626294efb362ff9ecd4",
-   "sha256": "0772z4v2jjinqlqhrdcsvk912gdi0dkxag7q5nm0rnkx2pyk7ynw"
+   "commit": "381176f301dea8414a5a395c0d6546507838f6ce",
+   "sha256": "0hmj5m3wiqwdmjzxbzkf4sg8gaswdv5rv6jqgqvz3h9sm17fnps7"
   },
   "stable": {
    "version": [
@@ -20552,11 +20974,11 @@
   "repo": "mnp/dispwatch",
   "unstable": {
    "version": [
-    20191130,
-    52
+    20210305,
+    342
    ],
-   "commit": "6abf276b8d66df4996c7e98e7a40cbad8747beb7",
-   "sha256": "17163bncxf11295bxzbmji09qy0klxzb0w8vxaazij6sxlk90mnm"
+   "commit": "03abbac89a9f625aaa1a808dd49ae4906f466421",
+   "sha256": "0wf3cyf5clkmh620q83x361nsnh60jhyfp90iqmabk3qs9x8amgs"
   }
  },
  {
@@ -20631,14 +21053,14 @@
   "repo": "unhammer/dix",
   "unstable": {
    "version": [
-    20200108,
-    1057
+    20210312,
+    1850
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "391832823f3f9835d957bc0224e122b376e5d825",
-   "sha256": "1h7wxi1nk6051arzx8671sf3m178ci9gs3a78h4hp8z0jrz364kz"
+   "commit": "17f33f9a8bb50156261e10c045d54eb866ea84fa",
+   "sha256": "1aajxj4xvi8jpskfhh52n6388w1skj1y9aq2xdvwj7cizy57lqn2"
   },
   "stable": {
    "version": [
@@ -20668,8 +21090,8 @@
     "dix",
     "evil"
    ],
-   "commit": "391832823f3f9835d957bc0224e122b376e5d825",
-   "sha256": "1h7wxi1nk6051arzx8671sf3m178ci9gs3a78h4hp8z0jrz364kz"
+   "commit": "17f33f9a8bb50156261e10c045d54eb866ea84fa",
+   "sha256": "1aajxj4xvi8jpskfhh52n6388w1skj1y9aq2xdvwj7cizy57lqn2"
   },
   "stable": {
    "version": [
@@ -20744,10 +21166,10 @@
  },
  {
   "ename": "django-mode",
-  "commit": "bdc46811612ff96cb1e09552b9f095d68528dcb3",
-  "sha256": "1rdkzqvicjpfh9k66m31ky6jshx9fqw7pza7add36bk6xg8lbara",
+  "commit": "bb974042c92a37403f855c0b3fb3cfdc8807ed19",
+  "sha256": "1wydqd3pbwshmd2a52hczbq3vfj2dsv9dgs7ivqkawryigdj3qfc",
   "fetcher": "github",
-  "repo": "myfreeweb/django-mode",
+  "repo": "unrelentingtech/django-mode",
   "unstable": {
    "version": [
     20170522,
@@ -20764,10 +21186,10 @@
  },
  {
   "ename": "django-snippets",
-  "commit": "bdc46811612ff96cb1e09552b9f095d68528dcb3",
-  "sha256": "1qs9fw104kidbr5zbxc1q71yy033nq3wxh98vvzk4z4fppnd29sw",
+  "commit": "bb974042c92a37403f855c0b3fb3cfdc8807ed19",
+  "sha256": "0fz9jywfxwhh9kq5w12jyizvxxhfjzybfl3gxrhg5sj0qakfpll8",
   "fetcher": "github",
-  "repo": "myfreeweb/django-mode",
+  "repo": "unrelentingtech/django-mode",
   "unstable": {
    "version": [
     20131229,
@@ -20994,8 +21416,8 @@
   "repo": "Silex/docker.el",
   "unstable": {
    "version": [
-    20200610,
-    715
+    20210313,
+    1943
    ],
    "deps": [
     "dash",
@@ -21005,8 +21427,8 @@
     "tablist",
     "transient"
    ],
-   "commit": "3773112eea3fc99704b5ca50c1e9a3db2cb8e4f3",
-   "sha256": "0gi86ggjyfmfas7pswj7wirn5n7zs6rvb5b95nchnf4xf0nzwia1"
+   "commit": "ed0cdf08597ceb3a1f85e065d1b2b7aefd7e35ee",
+   "sha256": "1p0281gaj09jpavlkv24dzvf0gdh9r7ki1z53x0q49dm1fcday6m"
   },
   "stable": {
    "version": [
@@ -21139,22 +21561,19 @@
   "repo": "spotify/dockerfile-mode",
   "unstable": {
    "version": [
-    20210106,
-    235
+    20210326,
+    1812
    ],
-   "commit": "58b7380189de21496235382900838aa0db2dcf92",
-   "sha256": "1n3kis5g7m25sl68iw9jw7jkfz7jab82v37xk492d77rr9cbvjwx"
+   "commit": "3b1374563f62d71aec11ebd33d37109459e54571",
+   "sha256": "1gvsibvg543jby99b7r13x0q4d9n21nl5sh0y2rb7alk0chx3pmx"
   },
   "stable": {
    "version": [
     1,
-    3
-   ],
-   "deps": [
-    "s"
+    4
    ],
-   "commit": "d31f7685ebc5832d957e25070a930aa42984327d",
-   "sha256": "1br73dsls42fn4rwagljkpa3l4wwj6f7jxfn3gmgl6c54z81av3v"
+   "commit": "ed1d04c89cd8b53963f2dcae7cb3a46967e0abbf",
+   "sha256": "1ypkihd9si769r6k0lfrv8jq8mjv4gyhiwyi820sayfppvma5rj0"
   }
  },
  {
@@ -21196,6 +21615,36 @@
   }
  },
  {
+  "ename": "docstr",
+  "commit": "d2638156924dc2a327dca5f20ca63479878690c2",
+  "sha256": "1kga9h5vy4nzwhcvshxk1lpg1n7lfbygxbdpln7vfizpw065f3m7",
+  "fetcher": "github",
+  "repo": "jcs-elpa/docstr",
+  "unstable": {
+   "version": [
+    20210317,
+    1612
+   ],
+   "deps": [
+    "s"
+   ],
+   "commit": "5ce0d758dbabb6c250f761fcb6754930cd793c2a",
+   "sha256": "0x9sxcp40p83isjc6smhg00n42056q5dsf0w71gglb1gc5rqhhl6"
+  },
+  "stable": {
+   "version": [
+    5,
+    7,
+    0
+   ],
+   "deps": [
+    "s"
+   ],
+   "commit": "63b0460a4785b4b4aee5cc072b52fb2d3a7eef6e",
+   "sha256": "0qw8ycb2jmv015agm0yc1p3aymxccv79wfczypf0ncrkv448sbvi"
+  }
+ },
+ {
   "ename": "doct",
   "commit": "f075d73b3269eec73dda992ce2bee67ccdfe4911",
   "sha256": "0z4h2pmlmzaz2726pmd2y7g63k5ncw4fwd5jh5rv744f5pxxfs2m",
@@ -21203,11 +21652,11 @@
   "repo": "progfolio/doct",
   "unstable": {
    "version": [
-    20210113,
-    1646
+    20210126,
+    310
    ],
-   "commit": "a795fa4eafd42e016b6c9fed93d2f370c4f5eef5",
-   "sha256": "1z8yzphckcbykz5nxz75vbc75zigv3f5lwwpnk35ipzb20xnm563"
+   "commit": "8ac08633ae413a6605b6506d2739eece7475272e",
+   "sha256": "09nmxq66cmwpbqc4l8p9f76pn6dmckfvpkj9fk99zsnhan4d8870"
   }
  },
  {
@@ -21322,16 +21771,16 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20210107,
-    1407
+    20210322,
+    1517
    ],
    "deps": [
     "all-the-icons",
     "dash",
     "shrink-path"
    ],
-   "commit": "4956606a5455a3968ca10cbdb8de3889e6bd1d85",
-   "sha256": "1agv0jdfqvyw227mr3c4wnpjby48ccggfjglbidnfl7knd9i982d"
+   "commit": "00bc89b8ded4c452ccf65edce5dce6f9a1e41611",
+   "sha256": "1k5qhxjh7h6hwdjxgjb1vxj9kclpli9wrrv350z5f40l4fwzawlw"
   },
   "stable": {
    "version": [
@@ -21349,6 +21798,25 @@
   }
  },
  {
+  "ename": "doom-modeline-now-playing",
+  "commit": "de6f7f4030bc93babc3907a96d07029dd75caec4",
+  "sha256": "14wl5zr5g2bwzwly27wc6vpgk11cz1asx7xwx9mqwjf8nygr7bpq",
+  "fetcher": "github",
+  "repo": "elken/doom-modeline-now-playing",
+  "unstable": {
+   "version": [
+    20210202,
+    1948
+   ],
+   "deps": [
+    "async",
+    "doom-modeline"
+   ],
+   "commit": "bed9e4da626ede148c7d362188b2e7729e2a8a4f",
+   "sha256": "1rz50wyinj9nmz37wam4rsdi5igmvdfp6pwn3rmzqsrdp3j81smv"
+  }
+ },
+ {
   "ename": "doom-themes",
   "commit": "c5084bc2c3fe378af6ff39d65e40649c6359b7b5",
   "sha256": "0plqhis9ki3ck1pbv4hiqk4x428fps8qsfx72mamdayyx2nncdrs",
@@ -21356,14 +21824,14 @@
   "repo": "hlissner/emacs-doom-themes",
   "unstable": {
    "version": [
-    20210113,
-    1858
+    20210322,
+    1750
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "18cddefb3c8b9da63086496142ad6756f0bc9167",
-   "sha256": "0ix7kfxhs45w763ajzi2qxr7f94rd4g4xfi6szv3c75q6y5mb3y3"
+   "commit": "4199e74db170200995ee8dfbb55ffae004d6e219",
+   "sha256": "0vfhnywww560rf0b7h2gc9w4x4738xwq12c8qi9y267110zg62mz"
   },
   "stable": {
    "version": [
@@ -21444,8 +21912,8 @@
     20190325,
     1917
    ],
-   "commit": "b61df3561ea9bed1848cf69b6bb53f7fdf6916dc",
-   "sha256": "063jw3b94l43j31piygjcjzqp2gf828xr3da1hd3qimp25c9fsv6"
+   "commit": "93d9b1ec833a871bde2fd0f78abc269872808048",
+   "sha256": "07sh6sskzx8cxf2z4z1xjnrbr440974024953m0w7rqm0gn4cb28"
   },
   "stable": {
    "version": [
@@ -21465,14 +21933,14 @@
   "repo": "zk-phi/download-region",
   "unstable": {
    "version": [
-    20200816,
-    1009
+    20210306,
+    415
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "0dca3b224649bba80a7e9ecbf1d1b6f6be962455",
-   "sha256": "1yka864dzz8nxskcllqyxk04313hlyfc9a4p0apmk56q19fcpwgn"
+   "commit": "e0a721858a22896fa1d7f1d5689dd0878dbc58fa",
+   "sha256": "1hvnwqx61g4idqww1axs4xa3jxrd68lvipgvca22ybr2fpdny1xx"
   }
  },
  {
@@ -21607,11 +22075,11 @@
   "repo": "dracula/emacs",
   "unstable": {
    "version": [
-    20201120,
-    758
+    20210220,
+    1358
    ],
-   "commit": "18e8aa5ed78d10b372414b7def917337224bf2f5",
-   "sha256": "0fw3qar6dwcq5ahf9ca2glshka1ddb4im21hfy069sbdaxdajj4d"
+   "commit": "b5e50ed1e30ee054fb6a0827e78382b038e83c46",
+   "sha256": "0bdlcvx95r0hwxpvdfac6xjcs59jn4mi29yny7bjz3x463czidcy"
   },
   "stable": {
    "version": [
@@ -21834,8 +22302,8 @@
   "repo": "dtk01/dtk",
   "unstable": {
    "version": [
-    20201006,
-    1835
+    20210227,
+    2121
    ],
    "deps": [
     "cl-lib",
@@ -21843,8 +22311,8 @@
     "s",
     "seq"
    ],
-   "commit": "86d1558711cc6e843a1a5470113ff9cb1ad608d8",
-   "sha256": "03k96gr7hxw76dpykbzjfvrpkl2m1ifm4y0jc9skf2p448fd1ssw"
+   "commit": "2a2a635e2b1d8243a41df0450e45fc8c75c6674b",
+   "sha256": "0kd8lkvaxqaz4ns8mwyczbbjyi68r3gicngnrichwlbl27am1zvm"
   }
  },
  {
@@ -21870,19 +22338,19 @@
   "repo": "jscheid/dtrt-indent",
   "unstable": {
    "version": [
-    20201208,
-    1925
+    20210307,
+    2140
    ],
-   "commit": "854b9a1ce93d9926018a0eb18e6e552769c5407d",
-   "sha256": "0hw8md2qp8r89ndgz82yf4iydm5yc9cj2s3g75h6hm940mp4fgxm"
+   "commit": "37529fc7a98564164c87103e5107a6dca32b0e44",
+   "sha256": "1h2j25b6qayydl841zwbh73fw1177xgskrqm27cqmfx0bcpx7qq3"
   },
   "stable": {
    "version": [
     1,
-    3
+    4
    ],
-   "commit": "854b9a1ce93d9926018a0eb18e6e552769c5407d",
-   "sha256": "0hw8md2qp8r89ndgz82yf4iydm5yc9cj2s3g75h6hm940mp4fgxm"
+   "commit": "95c08dc4841b37902fad63a5a976d20e7a5ce3b0",
+   "sha256": "11r68sh3yrrfib7pixnazispwsffrygmgplffrv8qq57xrqzyxih"
   }
  },
  {
@@ -21952,16 +22420,16 @@
   "repo": "jacktasia/dumb-jump",
   "unstable": {
    "version": [
-    20201205,
-    1625
+    20210303,
+    1714
    ],
    "deps": [
     "dash",
     "popup",
     "s"
    ],
-   "commit": "ff9fc9360d39f5e07c1f480f8b0656b49606781b",
-   "sha256": "13anm4wrm7v5x9wsv5h0bxsvr36h228afqp0zxyv008xghqmzwbv"
+   "commit": "8bc195000e17ce6c72755a8fb55ca0fcd36add76",
+   "sha256": "0dc31yy4r41nwwv57dzbd6zgwddizqh4q4qagpqx645l509s7k7i"
   },
   "stable": {
    "version": [
@@ -22002,20 +22470,20 @@
   "repo": "ocaml/dune",
   "unstable": {
    "version": [
-    20191016,
-    1241
+    20210213,
+    757
    ],
-   "commit": "13642e22a405de7c4361e94dd9aaa35ad1b09847",
-   "sha256": "0liha8qf1f4w5x8kklxc30yrn9krcrs9wvvj7chmgrg3m4mk3172"
+   "commit": "a88ce5bbc996b550071c8df890276eb1b10e778c",
+   "sha256": "1957i1d2lv9jfd8ck22vj0wd59sk5gd04xi5qbvzw1y9dl9xshp7"
   },
   "stable": {
    "version": [
     2,
     8,
-    1
+    4
    ],
-   "commit": "b796156167490e777131403f651e83779e954000",
-   "sha256": "118fc0bwqp4yn4b6sfir53y3b7acgmpd2n0d7dc2cdjcv72bv0bm"
+   "commit": "b6a3f66fb15378fc7170e94778f4d2c0b142ad92",
+   "sha256": "1p3r197cfb96675n2s7mbggndqspcxxmk9lkncirixm3k7ww36l1"
   }
  },
  {
@@ -22056,20 +22524,20 @@
   "repo": "integral-dw/dw-passphrase-generator",
   "unstable": {
    "version": [
-    20201006,
-    1927
+    20210307,
+    1834
    ],
-   "commit": "9c989595536775b380d46f28452c136070b8e4ab",
-   "sha256": "0xhf8gik49gc8lb4i7wcff2c3554xkqav0wsy3qipm02npslxdax"
+   "commit": "8c5b5c9d435de97ce9b95b9280feb1c0a57a60f8",
+   "sha256": "1793bwfn3c2f9dxcs8mmps3riy25y5baz1fvbpdr9pq19sl58bj5"
   },
   "stable": {
    "version": [
     1,
     0,
-    0
+    1
    ],
-   "commit": "9c989595536775b380d46f28452c136070b8e4ab",
-   "sha256": "0xhf8gik49gc8lb4i7wcff2c3554xkqav0wsy3qipm02npslxdax"
+   "commit": "66d92f592b35fd168f23d7c58d698a1ed2dcaa0a",
+   "sha256": "1pfz1wwrdpdkd29309dryy7ficl1h1rfmgv7fbpy9p33vs9mdi9p"
   }
  },
  {
@@ -22091,18 +22559,18 @@
   }
  },
  {
-  "ename": "dylan-mode",
-  "commit": "94481ba3ebba6a99f11efab5a33e8bc6ea2d857a",
-  "sha256": "0kimvz8vmcvgxi0wvf7dqv6plj31xlksmvgip8h3bhyy7slxj3yy",
+  "ename": "dylan",
+  "commit": "227c61618e491c4da2b2b48daf7f1bebd2271558",
+  "sha256": "0i0139jv2l9yw82hpmavw0jkzi3jxbz663xls604nhdggi7kqgzg",
   "fetcher": "github",
-  "repo": "dylan-lang/dylan-mode",
+  "repo": "dylan-lang/dylan-emacs-support",
   "unstable": {
    "version": [
-    20201212,
-    2106
+    20210317,
+    1405
    ],
-   "commit": "6277d31e6ec896ceaa9533ed156cece26359ba17",
-   "sha256": "12wkm04smmd3hgx6k3waa0wma0p8r23nh1ksm484znd7gij2bcrl"
+   "commit": "c51cdb2d947494d8161a429134f9e9d23070a173",
+   "sha256": "0p4kp2gp27xgs4fw0cfd4qz06yp6kvn0k1pq902arzcxkrqz6lj3"
   }
  },
  {
@@ -22498,28 +22966,28 @@
   "repo": "masasam/emacs-easy-hugo",
   "unstable": {
    "version": [
-    20201205,
-    1908
+    20210303,
+    2352
    ],
    "deps": [
     "popup",
     "request"
    ],
-   "commit": "eacc00637380fbd9a2cc95821e91969ab75e76eb",
-   "sha256": "12vlkbi15c54wpy0ak5mq89x354f86qk1y9g413bacafg5hxnn95"
+   "commit": "b3c9ca2a4e1d90013a7d990056d56cdf2bdf8e40",
+   "sha256": "1g48c2142yqs8ir2872q0zdl46qprx2mhhhd9jvcscakm4xv3cdf"
   },
   "stable": {
    "version": [
     3,
     9,
-    50
+    55
    ],
    "deps": [
     "popup",
     "request"
    ],
-   "commit": "eacc00637380fbd9a2cc95821e91969ab75e76eb",
-   "sha256": "12vlkbi15c54wpy0ak5mq89x354f86qk1y9g413bacafg5hxnn95"
+   "commit": "b3c9ca2a4e1d90013a7d990056d56cdf2bdf8e40",
+   "sha256": "1g48c2142yqs8ir2872q0zdl46qprx2mhhhd9jvcscakm4xv3cdf"
   }
  },
  {
@@ -22643,16 +23111,15 @@
   "repo": "rexim/ebf",
   "unstable": {
    "version": [
-    20160211,
-    1758
+    20210225,
+    1211
    ],
    "deps": [
     "cl-lib",
-    "dash",
-    "dash-functional"
+    "dash"
    ],
-   "commit": "4cd9c26354d8be6571354b2954d21fba882e78a2",
-   "sha256": "1pgn6fcg5cnbpk93hc2vw95sna07x0s1v2i6lq9bmij2msvar611"
+   "commit": "6cbeb4d62416f4cfd5be8906667342af8ecc44a6",
+   "sha256": "1d9vbn8gmiqcpxqmsv8ir3cc7clm7x1c6hz8drws3cakxk0wffn9"
   },
   "stable": {
    "version": [
@@ -22677,25 +23144,26 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20210110,
-    1450
+    20210316,
+    840
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "a0c1cd12f2a635c89f4ecad1f3ec5701a78ebd00",
-   "sha256": "03np9b9xkd2h7c6il2a6vvlpcm80vnaf16ryark9cv9wraa5q4d1"
+   "commit": "1a23ce943991d5dce4a3c3d71d7b5d6b6f9897fe",
+   "sha256": "1wwgfgcr83mvjp9w1yizg49j85j92kd2fyiyyl6x9v8bs4xsn4pi"
   },
   "stable": {
    "version": [
     2,
-    29
+    30,
+    1
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "dd18665862413fc1e1aea0becb318a9e6d281d10",
-   "sha256": "1d0xnhdcsz2ysq145k2l0f2r4vb0pkai1v6wl6sfba7xi5fc323i"
+   "commit": "6a3351c4bee70517facf0eac457a17a1efc21144",
+   "sha256": "0ppp6a8qyllh1kjrh8fa8dvhv98wnq0w742mzh8gahkjbrsjdwcj"
   }
  },
  {
@@ -22790,8 +23258,8 @@
   "repo": "ecukes/ecukes",
   "unstable": {
    "version": [
-    20201010,
-    1529
+    20210202,
+    1241
    ],
    "deps": [
     "ansi",
@@ -22801,8 +23269,8 @@
     "f",
     "s"
    ],
-   "commit": "f13723e0d7c2abbcb7a870091201ec80103bf202",
-   "sha256": "187zbmk1k14y7lwnbgycsk7g42c55bmp8vmyrvwylkz2lq65n0b2"
+   "commit": "d173cdf487bc2c62305e2232db96290bc021950f",
+   "sha256": "182qgddfv8nd89y1l55rs5vm5i61ayc8cxbplb8zx0alnid9xrw1"
   },
   "stable": {
    "version": [
@@ -22969,6 +23437,21 @@
   }
  },
  {
+  "ename": "edebug-inline-result",
+  "commit": "235b422e95ecce5671a16d44bc648379b6859bed",
+  "sha256": "036fpy7f748c8z7di94ya1dwz2ckri3qm6bsl809myr5wsghp2w1",
+  "fetcher": "github",
+  "repo": "stardiviner/edebug-inline-result",
+  "unstable": {
+   "version": [
+    20210213,
+    25
+   ],
+   "commit": "86a9ed9e4f58c2e9870b8918dc898ccd78d2d3f8",
+   "sha256": "1zf09s03xkhpbhkj99ilzp679lhkyiaaa5kmyj4lb380di1nrw2w"
+  }
+ },
+ {
   "ename": "edebug-x",
   "commit": "204e40cd450f4223598be1f385f08ec82b44f70c",
   "sha256": "0mzrip6y346mix4ny1xj8rkji1w531ix24k3cczmlmm4hm7l29ql",
@@ -23150,14 +23633,15 @@
   "repo": "editorconfig/editorconfig-emacs",
   "unstable": {
    "version": [
-    20210112,
-    901
+    20210309,
+    1345
    ],
    "deps": [
-    "cl-lib"
+    "cl-lib",
+    "nadvice"
    ],
-   "commit": "9dd9789b77521eb9d128f9ebd4cfc7ef45072d0f",
-   "sha256": "1fi3mn16pw7iflhwsnhvdgzyghzgmv1kxdiw4ycnc7rb4q162an5"
+   "commit": "9da2dab6474e1f735a2e9fbc7f26a553497c58c2",
+   "sha256": "0vpspvng3g0l2lqig3fvmxhxl4dqqs9zcyfgymjak03nfcilm394"
   },
   "stable": {
    "version": [
@@ -23299,8 +23783,8 @@
     20201122,
     25
    ],
-   "commit": "84c49302e9d6d5f9b2b110e61a7a1774d79f111f",
-   "sha256": "12dqavx3d665drwsdzh2g81xzf5iaa4i76d2q37yihb1xx7ibk3q"
+   "commit": "537e2e165984b53b45cf760ea9e4b86794b8a09d",
+   "sha256": "07cnp40rbl2p4mn40cib6mvby1svxqd8kb3dxb3a8idb736nzqrp"
   }
  },
  {
@@ -23487,8 +23971,8 @@
     20200107,
     2333
    ],
-   "commit": "a874f97af30b59daefaf08e1b4b6846b2214d1a5",
-   "sha256": "1vqllbkiwjcq3y68cbrvh7xq4r4xsm04qh628sbc95l09gwrsk2x"
+   "commit": "df4e47f7c8adfe90d9bf408459772a6cb4e71b70",
+   "sha256": "1n0dcrhwpl24whxzwhxf7qjlqlllzl5aahdq8h2zdgb6xz912k64"
   },
   "stable": {
    "version": [
@@ -23508,8 +23992,8 @@
   "repo": "joaotavora/eglot",
   "unstable": {
    "version": [
-    20210113,
-    1843
+    20210326,
+    1008
    ],
    "deps": [
     "eldoc",
@@ -23518,8 +24002,8 @@
     "project",
     "xref"
    ],
-   "commit": "e5a9648beec6e83f5b4471261b07e1da6630da1d",
-   "sha256": "1ny2myy1yxz9xqd0cs3hciasyc6gfvr2gshgza3pry7w5z481yy3"
+   "commit": "2fbcab293e11e1502a0128ca5f59de0ea7888a75",
+   "sha256": "0fsar0ab0wj74jkbgkbigcg4ia6hg574yvqr2wq2s8lw7m22j8c4"
   },
   "stable": {
    "version": [
@@ -23538,6 +24022,37 @@
   }
  },
  {
+  "ename": "eglot-fsharp",
+  "commit": "e03ae15749da9aab38ce2bc615d863f47fc23341",
+  "sha256": "197bqbkjb128a9p14rrrwcqf64962655krl052pqswns9is4bvf3",
+  "fetcher": "github",
+  "repo": "fsharp/emacs-fsharp-mode",
+  "unstable": {
+   "version": [
+    20210126,
+    454
+   ],
+   "deps": [
+    "eglot",
+    "fsharp-mode",
+    "jsonrpc"
+   ],
+   "commit": "78898a1535878394d83643c383f4320e7b5fcefd",
+   "sha256": "0d60jfaf8av0b7vx44lbqzb7v70dszvr2w1yjh1cxn71dnjphp4j"
+  },
+  "stable": {
+   "version": [
+    1,
+    10
+   ],
+   "deps": [
+    "eglot"
+   ],
+   "commit": "4a1df3342931f09edc933cb481da70cc5a5ef268",
+   "sha256": "0dkfd4nlc0hxikvby1271y6zppsvcc0jr12m2w1zrng1pqx666di"
+  }
+ },
+ {
   "ename": "eglot-jl",
   "commit": "5f04bf5d68dc12aa3f3fd66591d45cc894e59df6",
   "sha256": "0ffbxzhx1fqgqlfk8gqdgyfsc98rqw7mbrdd99qx9gds1pzzx4r8",
@@ -23638,8 +24153,8 @@
   "repo": "millejoh/emacs-ipython-notebook",
   "unstable": {
    "version": [
-    20210115,
-    120
+    20210322,
+    1150
    ],
    "deps": [
     "anaphora",
@@ -23650,8 +24165,8 @@
     "websocket",
     "with-editor"
    ],
-   "commit": "fbf1f71f52881dc23580053a6e188badb541388c",
-   "sha256": "1jnwl5yvw6bvj2hw0bnlzs4mz6xsv610ll1pk1rw3kricrnbmh1b"
+   "commit": "142ff5078b3074ce3ac8bf90abd8c38d9733253e",
+   "sha256": "05b4gqxfjap6bhfcxjj6v6kv2bhni5a1mzh9ylril5f81xj323gy"
   },
   "stable": {
    "version": [
@@ -23734,8 +24249,8 @@
     "direx",
     "spinner"
    ],
-   "commit": "6eecf51e4c5e6f7d24ab90e8def34f6cea4eda52",
-   "sha256": "0yk5bblrzf0bvnkzdkb0bzk8mfp4b6j84cjg60k3i4dyyp17h847"
+   "commit": "c24519e5b7fc1051257b0ec67fc6dec84d6b996e",
+   "sha256": "1qsps36cxvd8vpssr7xjydgmgq8zslck0j77920xm27wvfyrj2a2"
   },
   "stable": {
    "version": [
@@ -23817,8 +24332,8 @@
     20200912,
     1653
    ],
-   "commit": "215ff5e56cedcc18866aba6e451b61c06a050e74",
-   "sha256": "0qnyzvvpvzy3cvnq07yfi1v13i91qwa6xfb4p9j9yr2r3gsgdc1g"
+   "commit": "84dd1837f9ac80a329ab0c2de6859777f445f8ff",
+   "sha256": "098x17hg9dc28s7g50mxhv6m6fgch1xp1di7rplkg7w1dfphpc5a"
   },
   "stable": {
    "version": [
@@ -23931,11 +24446,11 @@
   "repo": "raxod502/el-patch",
   "unstable": {
    "version": [
-    20200716,
-    1428
+    20210226,
+    411
    ],
-   "commit": "a47067b4d63f3674d284a772bfe773021540c043",
-   "sha256": "17gpysk41qf40xa4vab79d3dmi7l3xay5gb27wn7fmj9nrzbm4sm"
+   "commit": "5e823dc9a29e3be22597d93912f06119c38030d6",
+   "sha256": "0i7gvjy97cbfll93h5b9zyr1p075lklx7rdahkdy46c4kw6vy5py"
   },
   "stable": {
    "version": [
@@ -24148,11 +24663,11 @@
   "repo": "Mstrodl/elcord",
   "unstable": {
    "version": [
-    20200611,
-    2314
+    20210323,
+    2234
    ],
-   "commit": "01b26d1af2f33a7c7c5a1c24d8bfb6d40115a7b0",
-   "sha256": "1lj87zfcvmzm34rlq5s4y4x2nwckwg5qxlhlgl4qry3bf16bmkcf"
+   "commit": "25531186c10b74a10ee24990f9e967296cc70342",
+   "sha256": "14lk3whvj45ilb7mv60dfpxhbw3jsddglz0mq5vhdgy6n8wkcpa9"
   }
  },
  {
@@ -24197,20 +24712,20 @@
   "repo": "doublep/eldev",
   "unstable": {
    "version": [
-    20201223,
-    2049
+    20210325,
+    2223
    ],
-   "commit": "9ca9abb3edca233ab52ada40531bec4ce3a8e642",
-   "sha256": "1nz2y9nqyxlb7bsg9chgdjkqmsfklh39shlvqhwl15im144ww9f7"
+   "commit": "a7211e47c1dd543ca5d84b7b85ca205fc6315abe",
+   "sha256": "0806wzrmcl58rp1gs2d3z0dz68h3jigwi0azf8rypz1fp5dkks7j"
   },
   "stable": {
    "version": [
     0,
-    7,
-    2
+    8,
+    1
    ],
-   "commit": "a25ea7a9f6c15c18457e737ef61a0ff81970c5cc",
-   "sha256": "1xxcxgycn0a03irjcdq2pcb4p1bddhfjspni7lliwpv6zjqgkyhb"
+   "commit": "c4f9b7ff4d12c59cc80b4a67f856601ba7cff2cd",
+   "sha256": "19s45hdhcg5l608awfxvmhd61xzp7dd5pvviv89xzzksx74l1188"
   }
  },
  {
@@ -24221,11 +24736,11 @@
   "repo": "casouri/eldoc-box",
   "unstable": {
    "version": [
-    20200316,
-    1956
+    20210313,
+    1824
    ],
-   "commit": "c1a1b77ec0c7fff9ecf7122d10dcd16eebcd3829",
-   "sha256": "1gg3gxw5ks4fds7lgl9mqxyb2qjrdsdwyyc183nfz6aq0m4w91yb"
+   "commit": "d4574ee392b9a8c537bec895be37468b600c25ac",
+   "sha256": "08fscq9amwqap741i25j7swb0gwzipkczqrvrgg3430jb3i0d663"
   },
   "stable": {
    "version": [
@@ -24302,14 +24817,14 @@
   "repo": "stan-dev/stan-mode",
   "unstable": {
    "version": [
-    20200830,
-    1032
+    20210130,
+    1325
    ],
    "deps": [
     "stan-mode"
    ],
-   "commit": "2dd330604563d143031fc8ffd516266217aa1f9b",
-   "sha256": "1l49fqd4wh9bkdpb4mk5a1cbl5i3iwc3q690viakhpb4840jmlry"
+   "commit": "9bb858b9f1314dcf1a5df23e39f9af522098276b",
+   "sha256": "031418nkp9qwlxda8i3ankp3lq94sv8a8ijwrbcwb4w3ssr9j3ds"
   },
   "stable": {
    "version": [
@@ -24347,14 +24862,14 @@
   "repo": "davidshepherd7/electric-operator",
   "unstable": {
    "version": [
-    20201123,
-    836
+    20210320,
+    1511
    ],
    "deps": [
     "dash"
    ],
-   "commit": "9856ff8e1351086d0d738c1db300af63d6c085ba",
-   "sha256": "0wfgz1ry1gqwk941fs4i3z8gq6s53v1fr2lwhsi06hvgs8nxaqgm"
+   "commit": "ecc59d313dd9ddfc4d6a2a3c7a9374aaf214e653",
+   "sha256": "0qy8s0vqaxkksplasang3n9bqnq7q43lfyd0jl39nynlrg8avhpc"
   },
   "stable": {
    "version": [
@@ -24378,11 +24893,11 @@
   "repo": "xwl/electric-spacing",
   "unstable": {
    "version": [
-    20200607,
-    1405
+    20210313,
+    1118
    ],
-   "commit": "f039011edb922cdc56c1d2bd0e49bb4575c35ab3",
-   "sha256": "1qfjk928y8bnx2ksciv0f0ackahj78x3qsr84m9qcvsvlg9cql5p"
+   "commit": "fb1437a3386f55440abdbe7c107c86e5b028bdc5",
+   "sha256": "00pmp1596p24i7pasmm080aly8ifinp9hbvia2l4jf8mbfg2ndlw"
   }
  },
  {
@@ -24416,6 +24931,39 @@
   }
  },
  {
+  "ename": "elescope",
+  "commit": "62debdf1f79d96c98b3957a11b203cfef289ac9c",
+  "sha256": "120ll2fgkyxxnlk84y1s5v05i08qi8055fjj8k3v2qyyz6z7w87b",
+  "fetcher": "github",
+  "repo": "freesteph/elescope",
+  "unstable": {
+   "version": [
+    20210312,
+    1147
+   ],
+   "deps": [
+    "ivy",
+    "request",
+    "seq"
+   ],
+   "commit": "36566c8c1f5f993f67eadc85d18539ff375c0f98",
+   "sha256": "0qpgkv0h71pkbm006ni56hbimmn9wfvciaicxylhpbcqkd7n1gc1"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "deps": [
+    "ivy",
+    "request",
+    "seq"
+   ],
+   "commit": "7711f7e34d04ea52a258f69ee0c94ef1240c5655",
+   "sha256": "0y2cv5af05mjcr5qba88q7ga6w04yxpymn4s28g2c4591lmbkhsj"
+  }
+ },
+ {
   "ename": "elf-mode",
   "commit": "368d1ff91f310e5ffe68f872ab0a91584a41a66e",
   "sha256": "0xwpaqg4mc0a0d8a4dxbd1sqzvi01gfhwr75f7i3sjzx0fj8vcwd",
@@ -24447,20 +24995,20 @@
   "repo": "skeeto/elfeed",
   "unstable": {
    "version": [
-    20201220,
-    1359
+    20210309,
+    2323
    ],
-   "commit": "de4b64b3f5d9fd41d9dc72023632ae535dc912e2",
-   "sha256": "04x3589jc39j3q2la82cidw3zpph10p5sj57m1kfz3ajyvh7rlm0"
+   "commit": "e29c8b91450bd42d90041231f769c4e5fe5070da",
+   "sha256": "12m4q8zfmn6g0kz2v3vmch4kbmivxshj9xk58j2f3f3c8fvk6567"
   },
   "stable": {
    "version": [
     3,
-    3,
-    0
+    4,
+    1
    ],
-   "commit": "9b5a0ce648cdaa59f7c96414ee868038e08ea29d",
-   "sha256": "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"
+   "commit": "0ccd59aaace34546017a1a0d7c393749747d5bc6",
+   "sha256": "1ghdvfn4f9y69r59i1ga9b3ib1r8sbqg6q1v5rz3f9paagfavrd1"
   }
  },
  {
@@ -24566,26 +25114,26 @@
   "repo": "sp1ff/elfeed-score",
   "unstable": {
    "version": [
-    20201219,
-    2359
+    20210302,
+    2051
    ],
    "deps": [
     "elfeed"
    ],
-   "commit": "5fff4152bdb2a5f38ab83f7fa6b2943647935f94",
-   "sha256": "18jwg4a2ssswvbw50z9b84ca76i3q6vmv0ab90p432pjywpkwh73"
+   "commit": "f59cbc38c83007e160722347c8cb5438d5fe13a0",
+   "sha256": "07xid0a31ghknbfwj8dxzbqkg4sfayjhlqvp17p2bzlf1mj0zjyd"
   },
   "stable": {
    "version": [
     0,
-    6,
-    4
+    7,
+    7
    ],
    "deps": [
     "elfeed"
    ],
-   "commit": "5fff4152bdb2a5f38ab83f7fa6b2943647935f94",
-   "sha256": "18jwg4a2ssswvbw50z9b84ca76i3q6vmv0ab90p432pjywpkwh73"
+   "commit": "f59cbc38c83007e160722347c8cb5438d5fe13a0",
+   "sha256": "07xid0a31ghknbfwj8dxzbqkg4sfayjhlqvp17p2bzlf1mj0zjyd"
   }
  },
  {
@@ -24596,28 +25144,28 @@
   "repo": "skeeto/elfeed",
   "unstable": {
    "version": [
-    20191123,
-    1738
+    20210226,
+    258
    ],
    "deps": [
     "elfeed",
     "simple-httpd"
    ],
-   "commit": "de4b64b3f5d9fd41d9dc72023632ae535dc912e2",
-   "sha256": "04x3589jc39j3q2la82cidw3zpph10p5sj57m1kfz3ajyvh7rlm0"
+   "commit": "e29c8b91450bd42d90041231f769c4e5fe5070da",
+   "sha256": "12m4q8zfmn6g0kz2v3vmch4kbmivxshj9xk58j2f3f3c8fvk6567"
   },
   "stable": {
    "version": [
     3,
-    3,
-    0
+    4,
+    1
    ],
    "deps": [
     "elfeed",
     "simple-httpd"
    ],
-   "commit": "9b5a0ce648cdaa59f7c96414ee868038e08ea29d",
-   "sha256": "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"
+   "commit": "0ccd59aaace34546017a1a0d7c393749747d5bc6",
+   "sha256": "1ghdvfn4f9y69r59i1ga9b3ib1r8sbqg6q1v5rz3f9paagfavrd1"
   }
  },
  {
@@ -24628,14 +25176,14 @@
   "repo": "TobiasZawada/elgrep",
   "unstable": {
    "version": [
-    20191203,
-    1227
+    20210205,
+    733
    ],
    "deps": [
     "async"
    ],
-   "commit": "c475cee98bc607746901318ef9da463c96d5e04e",
-   "sha256": "02jfpi8bvjxw5jnjjpzq87xf1xjly745k8s74jc9lpginip3kj95"
+   "commit": "b627cc0f307161e580e9450ad5334687b9406a16",
+   "sha256": "17nbjr5dll5n0m52p3isw8gkkza5iqxlhamhv7x61vjd8w72gl3d"
   },
   "stable": {
    "version": [
@@ -24673,16 +25221,16 @@
   "repo": "Wilfred/elisp-def",
   "unstable": {
    "version": [
-    20201215,
-    706
+    20210126,
+    750
    ],
    "deps": [
     "dash",
     "f",
     "s"
    ],
-   "commit": "679fa7d2d702263b6a55f30a1b8cfbb2fd817549",
-   "sha256": "0xzb89zk13db34kis68xc2b0b649335hxlnvjr4q1inf3yyzmiav"
+   "commit": "dfca043ec0cbead67bd9c526cb009daf771d0fa2",
+   "sha256": "16ryl9idrfpf8whx7srd6a0b3j50qhvc8brkk7iq42p7srr79ly0"
   },
   "stable": {
    "version": [
@@ -24706,11 +25254,11 @@
   "repo": "xuchunyang/elisp-demos",
   "unstable": {
    "version": [
-    20201128,
-    1009
+    20210312,
+    542
    ],
-   "commit": "ed9578dfdbbdd6874d497fc9873ebfe09f869570",
-   "sha256": "1268wk05j0xjqah56x7mwxvkqbaal8nal894imy42ls043ppvqd3"
+   "commit": "924b07d28e4f5b82f0e1377bcde800068f0a6d9d",
+   "sha256": "1pf37rlpmr8fjaxqk47p7dv84nksgh3r63m23jpi1g49myvwfzgi"
   },
   "stable": {
    "version": [
@@ -24901,14 +25449,14 @@
   "repo": "elixir-editors/emacs-elixir",
   "unstable": {
    "version": [
-    20201216,
-    1838
+    20210324,
+    1605
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "9de08c17d54e190d220aa03cca58bd41497f44b6",
-   "sha256": "0v6w2qkw52zrq0wwly0dli7gii2g64194m5169zslfrhk9rymkyp"
+   "commit": "0212b06f079f4965b6032bbbe7f86876575770de",
+   "sha256": "0n9b901kzk95r28a17amx25xyffvxbfrxw62sakrn0q3pbq988s2"
   },
   "stable": {
    "version": [
@@ -24980,8 +25528,8 @@
   "repo": "jcollard/elm-mode",
   "unstable": {
    "version": [
-    20210106,
-    228
+    20210224,
+    2314
    ],
    "deps": [
     "dash",
@@ -24989,8 +25537,8 @@
     "reformatter",
     "s"
    ],
-   "commit": "706ffb8779c7ace330d6e020bb046e331266586a",
-   "sha256": "1rc6qdkiv13ggjwwcgzmri16i2g5x7jwbjc7g8590rndwbg9w9lc"
+   "commit": "e9fcf9cc2779cf7f5ae7ee4be339164b26755c69",
+   "sha256": "05g3r5hc6slaca8g7n6i6bk9lpq9jsb2kv2q5v8nbz96abqg56zm"
   },
   "stable": {
    "version": [
@@ -25279,20 +25827,20 @@
   "repo": "redguardtoo/elpa-mirror",
   "unstable": {
    "version": [
-    20210107,
-    219
+    20210325,
+    1219
    ],
-   "commit": "49088c9bcdd66316a133252cf657187c4064488a",
-   "sha256": "15n1gbr6h6nm856drss8d1yrc6a3x191bsikhw64zkf7bdlqnxaw"
+   "commit": "2d50b2861ab0ba6a2a518de44823869fb4b14dfc",
+   "sha256": "0x0sfim9l5xl4fysy61w7migf504ynnmnraiwisdxl9bap7iraw9"
   },
   "stable": {
    "version": [
     2,
     1,
-    3
+    4
    ],
-   "commit": "49088c9bcdd66316a133252cf657187c4064488a",
-   "sha256": "15n1gbr6h6nm856drss8d1yrc6a3x191bsikhw64zkf7bdlqnxaw"
+   "commit": "47f194c77830946c66bc6ffecdecadc5a3191402",
+   "sha256": "00c33b0k5rw66xbzv1ggz1ai1yaqa705vqb25b54sirwr0s37wly"
   }
  },
  {
@@ -25342,8 +25890,8 @@
   "repo": "jorgenschaefer/elpy",
   "unstable": {
    "version": [
-    20201115,
-    1811
+    20210227,
+    56
    ],
    "deps": [
     "company",
@@ -25352,8 +25900,8 @@
     "s",
     "yasnippet"
    ],
-   "commit": "4032c7251eb2d74ec8a301a3988b62b7a0f00932",
-   "sha256": "0bmfazghviwkn14vbk2iabgrnb0xk3xw8cp2cyrg68rxmbpvl527"
+   "commit": "c31cd91325595573c489b92ad58e492a839d2dec",
+   "sha256": "0myypqnb4001zf9rpn6sakq900kn6mqhyjkp8vvc5y3j6123gj07"
   },
   "stable": {
    "version": [
@@ -25655,11 +26203,11 @@
   "repo": "emacscollective/elx",
   "unstable": {
    "version": [
-    20200728,
-    819
+    20210228,
+    2103
    ],
-   "commit": "f9f810ffcd3cce7ed15848c72ce299609ec09414",
-   "sha256": "1p3zpg4p4a1cn13sg3hsa33gs1bdra1mlmxkagx883p3808i5qha"
+   "commit": "de9d42c86fc3e71239492f64bf4ed7325b056363",
+   "sha256": "0778izaq1hjcc9i7d0v3p9xb08y6bwj9brcmpyd2yj3lfajbhxdx"
   },
   "stable": {
    "version": [
@@ -25672,6 +26220,24 @@
   }
  },
  {
+  "ename": "emacs-everywhere",
+  "commit": "12713e28c8c1fd736f06d4a3271d466941954665",
+  "sha256": "1ah5isnn6d934rqp0s0bby3k4w6fymjkbsxg8f1m7wckramdi8hn",
+  "fetcher": "github",
+  "repo": "tecosaur/emacs-everywhere",
+  "unstable": {
+   "version": [
+    20210303,
+    1507
+   ],
+   "deps": [
+    "cl-lib"
+   ],
+   "commit": "99997af93310128cc95b8ddceacb448daed2403a",
+   "sha256": "03syfvwsbrrmghdav3xkmpjvdfh1q1qr880a6f6wkri9iazg021g"
+  }
+ },
+ {
   "ename": "emacsc",
   "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
   "sha256": "1fbf9al3yds0il18jz6hbpj1fsjlpb1kgp450gb6r09lc46x77mk",
@@ -25679,20 +26245,20 @@
   "repo": "knu/emacsc",
   "unstable": {
    "version": [
-    20190917,
-    1102
+    20210302,
+    806
    ],
-   "commit": "57940b93881efabb375df18093b99800bfb5d5f7",
-   "sha256": "032g44dad90cas2b80cxhzbim2sxd8rliyxf65ccfrqi1xg3vkff"
+   "commit": "409fc548bb650c6e832b459c756b13de68147117",
+   "sha256": "04k3gnfhqy0i4vb03k1jr3r43sfpxs6dyx863gsgz6qnkkbqrydn"
   },
   "stable": {
    "version": [
     1,
     3,
-    20190917
+    20210302
    ],
-   "commit": "57940b93881efabb375df18093b99800bfb5d5f7",
-   "sha256": "032g44dad90cas2b80cxhzbim2sxd8rliyxf65ccfrqi1xg3vkff"
+   "commit": "409fc548bb650c6e832b459c756b13de68147117",
+   "sha256": "04k3gnfhqy0i4vb03k1jr3r43sfpxs6dyx863gsgz6qnkkbqrydn"
   }
  },
  {
@@ -25958,19 +26524,19 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20210115,
-    613
+    20210326,
+    1428
    ],
-   "commit": "14dcc650d9339a6458bb0babfed35de13e76fa50",
-   "sha256": "15shi1i8071833mjzrwyy5iw818sxcqym0cb0zvi9bk5nvprp58b"
+   "commit": "49cd0aff39e7bc9173ec49d1c14d7ab8d9d25355",
+   "sha256": "19ihm3v7ck5rx4wff5hkrrzqbjk9g9vm8j0axvdf77hr6vzjsak8"
   },
   "stable": {
    "version": [
     0,
-    9
+    10
    ],
-   "commit": "8b1291dfd6187815158299d25dc32b0bbc5af71d",
-   "sha256": "0b1p3pmdy21bix3fh57c2kb5mp0bmrwdc5q9vfdb9pni9sxw3n6v"
+   "commit": "47daded610b245caf01a97d74c940aff91fe14e2",
+   "sha256": "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"
   }
  },
  {
@@ -25981,15 +26547,27 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20210113,
-    1434
+    20210308,
+    1615
+   ],
+   "deps": [
+    "consult",
+    "embark"
+   ],
+   "commit": "49cd0aff39e7bc9173ec49d1c14d7ab8d9d25355",
+   "sha256": "19ihm3v7ck5rx4wff5hkrrzqbjk9g9vm8j0axvdf77hr6vzjsak8"
+  },
+  "stable": {
+   "version": [
+    0,
+    10
    ],
    "deps": [
     "consult",
     "embark"
    ],
-   "commit": "14dcc650d9339a6458bb0babfed35de13e76fa50",
-   "sha256": "15shi1i8071833mjzrwyy5iw818sxcqym0cb0zvi9bk5nvprp58b"
+   "commit": "47daded610b245caf01a97d74c940aff91fe14e2",
+   "sha256": "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"
   }
  },
  {
@@ -26144,15 +26722,15 @@
   "url": "https://git.savannah.gnu.org/git/emms.git",
   "unstable": {
    "version": [
-    20210113,
-    2138
+    20210310,
+    2103
    ],
    "deps": [
     "cl-lib",
     "seq"
    ],
-   "commit": "50bdbcc619e376ac2d7472b7097b3a5ba2d1f64e",
-   "sha256": "1mbfdvh0fs824zvlw3vcy5rdbqdrq4dcx8031yyiq9qpxziswicd"
+   "commit": "de0c4079ccdf3e17b722e3ddf2a275e66703b6bb",
+   "sha256": "1m334c1c1b6jfh100xfdxfqs89i5q1vw6dwjf4alydl0d08q91lc"
   },
   "stable": {
    "version": [
@@ -26482,8 +27060,8 @@
     "ht",
     "seq"
    ],
-   "commit": "cfa00865388809363df3f884b4dd554a5d44f835",
-   "sha256": "0dw0wkirphwk7iv61b9z5qbg850nnyrivi6d2a80al1nmxkla2sg"
+   "commit": "1b726412f19896abf5e4857d4c32220e33400b55",
+   "sha256": "1g8dviwmwifzjvy9rvnhr9hsxwv37ksqikqccrbjyrpcyv57z1a5"
   },
   "stable": {
    "version": [
@@ -26539,8 +27117,8 @@
   "repo": "Wilfred/emacs-refactor",
   "unstable": {
    "version": [
-    20210110,
-    1928
+    20210301,
+    213
    ],
    "deps": [
     "cl-lib",
@@ -26553,8 +27131,8 @@
     "projectile",
     "s"
    ],
-   "commit": "d0540df81c1b5f9f75f69ff92331bbf4b16f2e2c",
-   "sha256": "1py0140pvi8vyy3digjsz3clp98md05mik8w2xnjb47mb4af39jb"
+   "commit": "648c2e87516fac37b84fd9bc34a6362d2a9001e2",
+   "sha256": "1crgj5skqckvw1l445ywkdq23bqkj6b6yf5y3pcyay1aasvjbhmb"
   },
   "stable": {
    "version": [
@@ -26644,11 +27222,11 @@
   "repo": "zenspider/enhanced-ruby-mode",
   "unstable": {
    "version": [
-    20201222,
-    858
+    20210120,
+    201
    ],
-   "commit": "28f30c056cfe2fd7135a71576c183d242dff3b52",
-   "sha256": "1jslhi3nzn6b16481fkmq1mqrg7f8p5mqi4hqdkywpprqcygrwn1"
+   "commit": "e960bf941d9fa9d92eabf7c03a8bbb51ba1ac453",
+   "sha256": "0qmklr7d6g98ijd4l4j65x7cx18aafngppvynr4jvlinzsnr263q"
   },
   "stable": {
    "version": [
@@ -26659,6 +27237,21 @@
   }
  },
  {
+  "ename": "enlightened-theme",
+  "commit": "93728d3fe62331b49627c1cfa1c4273a43407da8",
+  "sha256": "18ry83hdmf3fx544s42rhkl5jnlvcvbfbardhwyciyp375jzam92",
+  "fetcher": "hg",
+  "url": "https://hg.sr.ht/~slondr/enlightened",
+  "unstable": {
+   "version": [
+    20210220,
+    2327
+   ],
+   "commit": "1bfebd8f47e8a8357c9e557cf6e95d7027861e6d",
+   "sha256": "10f8ccavmf4xz6fpd0psbvjdcxsrypswnhcqi92nirb2z72kq4hj"
+  }
+ },
+ {
   "ename": "enlive",
   "commit": "388fa2580e687d9608b11cdc069841831b414b29",
   "sha256": "1dyayk37zik12qfh8zbjmhsch64yqsx3acrlm7hcnavx465hmhnz",
@@ -26733,25 +27326,26 @@
   "repo": "purcell/envrc",
   "unstable": {
    "version": [
-    20210106,
-    2359
+    20210207,
+    810
    ],
    "deps": [
+    "inheritenv",
     "seq"
    ],
-   "commit": "d1b991f19a4c4781e73bbc3badd368727fae942c",
-   "sha256": "0ssf9i6iym2rb530k2w5aj392qa73i6p5y0vwrs5qhkv9lagqq7p"
+   "commit": "110a221f8205655a31fa51bffd45e1e9da056ffc",
+   "sha256": "1zjqkp701nlc0cldqxwj97jflz3imv1nzpq2sqjm4ir45lwp8jci"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
    "deps": [
     "seq"
    ],
-   "commit": "a15003d6b540b1b07847310d5ed4c39046336a7d",
-   "sha256": "1sspy227b733dxx6czml5lmx9g7nsxwgnazk1b9ip81q0cm0dv55"
+   "commit": "d1b991f19a4c4781e73bbc3badd368727fae942c",
+   "sha256": "0ssf9i6iym2rb530k2w5aj392qa73i6p5y0vwrs5qhkv9lagqq7p"
   }
  },
  {
@@ -26848,14 +27442,14 @@
   "repo": "emacscollective/epkg",
   "unstable": {
    "version": [
-    20210105,
-    1456
+    20210227,
+    1459
    ],
    "deps": [
     "closql"
    ],
-   "commit": "94c8389a8b660a68ae7e5458583b06b30ba0edb9",
-   "sha256": "0r2lvcrs34ixk5xx81b20m0s8x795l7plmry394lgh28gwr437jj"
+   "commit": "245157564b9bd1575480044c8b24007b2090dacb",
+   "sha256": "1bdbwbrrz4brkmg50808vsj70d5yaxb1a71n014nx1a09wnw1hmj"
   },
   "stable": {
    "version": [
@@ -27282,6 +27876,21 @@
   }
  },
  {
+  "ename": "erc-yank",
+  "commit": "0b66abddb134e0b4cc76ad73784fa529e6ea7312",
+  "sha256": "0rpn1zfn2g6lylicil3a4scvygqymb5pdmkyyy2r2mw4xlixh375",
+  "fetcher": "github",
+  "repo": "jwiegley/erc-yank",
+  "unstable": {
+   "version": [
+    20210220,
+    1815
+   ],
+   "commit": "55d96f18c5df9d8fce51fa073d7a12c47a46ac80",
+   "sha256": "1chigywld4v2shc7ij6gyxfq0xzwyms5nal85b3yh7km2pim5i8h"
+  }
+ },
+ {
   "ename": "erc-youtube",
   "commit": "a80ee9617a30a8ad1d457a0b0c7f35e6ec1c0bb2",
   "sha256": "12ylxkskkgfv5x7vlkib963ichb3rlmdzkf4zh8a39cgl8wsmacx",
@@ -27489,18 +28098,18 @@
     20200914,
     644
    ],
-   "commit": "c5400349d7d9cb1e54af19bdb2046b52ecada5bc",
-   "sha256": "02kma8f6v6vxzbfzd2limwabp8a5hzjyg9kfabgp1j0dwvsl64pf"
+   "commit": "ecb93230ad9327991e542731756cbe1405c85d5f",
+   "sha256": "1acs54ngr26qw5hbhq7xdw4wspqhhmr97gj6rnwxhz4yx02wxd9w"
   },
   "stable": {
    "version": [
     2,
     6,
     1,
-    1
+    3
    ],
-   "commit": "fce01db8f9d2ceb9c3a4aa179330ea4aa7587a71",
-   "sha256": "0fzq9pfkvsdin04vzcz2vyjq3gx0lfhbpwpz0zyfa3b84dgffxq7"
+   "commit": "e5486b79cc78689e3fd07b6c924d0085063915ea",
+   "sha256": "1zl7c0rb5rg867a431apxlzj2flg3hjidamqa5prc1bzpmfaywyz"
   }
  },
  {
@@ -27511,20 +28120,21 @@
   "repo": "erlang/otp",
   "unstable": {
    "version": [
-    20201215,
-    830
+    20210315,
+    1640
    ],
-   "commit": "ed4bc369fe6724083bd0decac961fb7b3462d202",
-   "sha256": "1bsf9y6rxwndafvi1lh2vgawjd9k469rhbqb42p6wjc4872lbb0q"
+   "commit": "94c9738e10326554af80d128c76e4bded1c7b983",
+   "sha256": "1vyk87yy9vpscrxvcd0f14fvbd200af0fiwgw26fdd5f5j6iz2hk"
   },
   "stable": {
    "version": [
-    23,
-    2,
+    24,
+    0,
+    -1,
     1
    ],
-   "commit": "2c89431fa867d5b1cc56f26a9282bcfb6fcdec58",
-   "sha256": "1xya7rv9j2528w7x0kivb3zl0rdzdwv82xp22yh7bw22vhfyrk4y"
+   "commit": "655bd1a27673720bcee187e9fd9f07d739860ad3",
+   "sha256": "00k0x24diq2z24582bjk65c07ky1kf5h1zihs06ndl782i5cqjfa"
   }
  },
  {
@@ -27830,14 +28440,14 @@
   "repo": "dieggsy/esh-autosuggest",
   "unstable": {
    "version": [
-    20190228,
-    401
+    20210224,
+    2242
    ],
    "deps": [
     "company"
    ],
-   "commit": "972094808d231a86dc6e43862191167b1997d840",
-   "sha256": "1nkf3n20bc8fhdw8vmmnrwhaddhmqpjsrxm304ci6r6b4zz71nq6"
+   "commit": "0f144815ebcc1f911a6a7e6df170f8cc10744c92",
+   "sha256": "1lss6q24pdkzbxdn3lj85xci1md9bs28j8ib3qsk1cmv6m691y28"
   },
   "stable": {
    "version": [
@@ -28093,11 +28703,11 @@
   "repo": "akreisher/eshell-syntax-highlighting",
   "unstable": {
    "version": [
-    20201013,
-    623
+    20210223,
+    936
    ],
-   "commit": "6cc32ee59d79d965e40269c764d90aa898252f0a",
-   "sha256": "09yjiamz3gvpchhzf424419q4gx7wybm2bcm5j2bw688qswd9rrc"
+   "commit": "eeace52ebb2c730f3665fb235017cd57dc6050a2",
+   "sha256": "1anlan2ldvx0qzj44dhb44flcs3h0d57v79qzn21jpy4d0y0m3kq"
   },
   "stable": {
    "version": [
@@ -28253,6 +28863,21 @@
   }
  },
  {
+  "ename": "espotify",
+  "commit": "fb515b013942cf5ef4590e7cbc17f11f10c7692f",
+  "sha256": "05kl2l272gafzp4c79f9fg63xc0rc9r5cjz32v7dhd2m0dv257vc",
+  "fetcher": "git",
+  "url": "https://codeberg.org/jao/espotify",
+  "unstable": {
+   "version": [
+    20210224,
+    126
+   ],
+   "commit": "b70b4737ece5a081411069eb08103ddbbf8e584a",
+   "sha256": "1kplm8rhyp5fssfi8pswafnck96m6zjkyvqjcwil459liy8lpw46"
+  }
+ },
+ {
   "ename": "espresso-theme",
   "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
   "sha256": "1njc1ppi1jvb3mdckr19kbk7g0a3dx8j4d6j101ygszzrr24ycmv",
@@ -28361,11 +28986,11 @@
   "repo": "emacs-ess/ESS",
   "unstable": {
    "version": [
-    20210113,
-    915
+    20210326,
+    1730
    ],
-   "commit": "19de88d2b3b2436955ce0f7e6cf8544d4ffaf8ac",
-   "sha256": "048b0274cj6hkri6hzsmp7r8g9vkx2vxxjljx24vvzxyqfwmn445"
+   "commit": "c101d44bd70a3f51bf546e18e74e98f62f4a3eba",
+   "sha256": "06b056fmkbvsdzf0l7zywghkax3fqszbkywv822qr3hiwb62lc21"
   },
   "stable": {
    "version": [
@@ -28517,8 +29142,8 @@
     "f",
     "s"
    ],
-   "commit": "d4e5a340b7bcc58c434867b97923094bd0680283",
-   "sha256": "1yzki5f2k7gmj4m0871h4h46zalv2x71rbpa6glkfx7bm9kyc193"
+   "commit": "925cafd876e2cc37bc756bb7fcf3f34534b457e2",
+   "sha256": "1hb83cjr711yg4dphbyg9nfkdmd1a6bcsqw964nwdarflw6jss24"
   }
  },
  {
@@ -28529,15 +29154,15 @@
   "repo": "ShuguangSun/ess-view-data",
   "unstable": {
    "version": [
-    20201202,
-    1124
+    20210326,
+    1431
    ],
    "deps": [
     "csv-mode",
     "ess"
    ],
-   "commit": "9aeb18c0adc3e0fed75640a15500944becd5f3ef",
-   "sha256": "0mspy45wrc42r7agksyzrlf6ir3wqnyx19hfikm0fh81bn23im2h"
+   "commit": "283251e8ac19ac0c0f89a4b0f0eb38482167e52b",
+   "sha256": "0kp94y27csj08868rbiwdfzgjx9q71j7d0whpqhsh27qhc189crq"
   },
   "stable": {
    "version": [
@@ -28590,11 +29215,15 @@
   "repo": "tali713/esxml",
   "unstable": {
    "version": [
-    20201226,
-    2146
+    20210323,
+    1102
    ],
-   "commit": "f3d60206eda3cd66bea07c903198d12c4761e326",
-   "sha256": "1gyydxm1dja4qn9al7b5g9gm7y75qwbn516migxiy20vdzhvksfx"
+   "deps": [
+    "cl-lib",
+    "kv"
+   ],
+   "commit": "9f96449f6059cb75491dc812ddeb1b6200ec6740",
+   "sha256": "1xzxmgsg0j72sf1vjh9gjswz3c29js0kqhm7r3jrqrh3a5agdnml"
   },
   "stable": {
    "version": [
@@ -28614,14 +29243,15 @@
   "repo": "zcaudate/eta",
   "unstable": {
    "version": [
-    20210103,
-    645
+    20210115,
+    1655
    ],
    "deps": [
+    "dash",
     "ht"
    ],
-   "commit": "850c3aff1d7999348aea30530e722e561b672f9c",
-   "sha256": "1ridnn2b1sp8rp3z9x3igavaq40d66chq25lhfimb6yw84544l0b"
+   "commit": "c7540ac50163f368fec1918dfc334304d9b36c51",
+   "sha256": "02xkrcrf62z303axy4jxr9d2xy6sbxgp6x5dj917xd04hygiqwj0"
   }
  },
  {
@@ -28683,15 +29313,15 @@
   "repo": "dieggsy/eterm-256color",
   "unstable": {
    "version": [
-    20190123,
-    401
+    20210224,
+    2241
    ],
    "deps": [
     "f",
     "xterm-color"
    ],
-   "commit": "0f0dab497239ebedbc9c4a48b3ec8cce4a47e980",
-   "sha256": "00ins8n92p5aspr6bjrvn5y5w0ximakk22yklsfmkav4h10al4as"
+   "commit": "05fdbd336a888a0f4068578a6d385d8bf812a4e8",
+   "sha256": "0ln1agcgr607n5akm0ax659g11kfbik7cq8ssnqpr3z7riiv95dm"
   },
   "stable": {
    "version": [
@@ -28757,15 +29387,15 @@
   "repo": "zzkt/ethermacs",
   "unstable": {
    "version": [
-    20201017,
-    2006
+    20210124,
+    1110
    ],
    "deps": [
     "let-alist",
     "request"
    ],
-   "commit": "36956db9fa65ff88f3213a80b11f1fad0765d972",
-   "sha256": "1aqwnfdp3cb7zc38iy37hyvzr0qii182c6w6z7k9rq1arjg1vs2b"
+   "commit": "6d9c86dac6ab569d1842fcfa8bbe63ee9de8cd71",
+   "sha256": "0pawqmwv3cmr2fw5w0nvq36ms882k68w61nyb1d0bvzbjvrbbc03"
   }
  },
  {
@@ -28943,15 +29573,15 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20210109,
-    807
+    20210325,
+    2108
    ],
    "deps": [
     "cl-lib",
     "goto-chg"
    ],
-   "commit": "cc9d6886b418389752a0591b9fcb270e83234cf9",
-   "sha256": "14nin675kb2q7fchawj5f2r7bdga9cxp7jbhmaa8vac03zs6xb4x"
+   "commit": "7eace67fc6d1f992e447f216baf9a8b7be634c1e",
+   "sha256": "13cgja2ss5afrpabz0rlhrh89vaw7dzaf1gh43b3hdbma8gh9li8"
   },
   "stable": {
    "version": [
@@ -29089,10 +29719,10 @@
  },
  {
   "ename": "evil-colemak-basics",
-  "commit": "945417d19faf492fb678aee3ba692d14e7518d85",
-  "sha256": "1sbbli0hdmpc23f3g5n95svqfdg3rlvf71plyvpv1a6va9jhi83k",
+  "commit": "fcc76e080a9b16879980beca5ae71afd9d6a6486",
+  "sha256": "0crvmlyrvia5bfa4nq5h5y5pg0nkgds5rmjmhrga3627m0na0dyv",
   "fetcher": "github",
-  "repo": "wbolster/evil-colemak-basics",
+  "repo": "wbolster/emacs-evil-colemak-basics",
   "unstable": {
    "version": [
     20200630,
@@ -29102,8 +29732,8 @@
     "evil",
     "evil-snipe"
    ],
-   "commit": "2354c9fa3d396fa5b1de8608e6920420b89ee323",
-   "sha256": "1cb7dv8wgixrfyx0mnc82i0ydg5bz7snn2643xi261kbrwhg51yj"
+   "commit": "584f8f9496bf5250a439c9c9fee1d94f3b4883f0",
+   "sha256": "0hv8068yaiqwswzhiikrlyl53w43yqi35m9xypvq6v9dwisrqg00"
   },
   "stable": {
    "version": [
@@ -29145,28 +29775,28 @@
   "repo": "emacs-evil/evil-collection",
   "unstable": {
    "version": [
-    20210115,
-    641
+    20210323,
+    310
    ],
    "deps": [
     "annalist",
     "evil"
    ],
-   "commit": "a67450ff537b9681a5fed25010ce28d4128e6db2",
-   "sha256": "0iyp72pp5db5pg7nrw81ij7r7gkzsl11d5hcvllcm7qwpj99az8q"
+   "commit": "b45ec5b3156d27a18a949e4bf55643107a21abc2",
+   "sha256": "09sxky26kpdxjdc52vpabxq8h88fx9rnarykn1d2a063bpldz2rp"
   },
   "stable": {
    "version": [
     0,
     0,
-    4
+    5
    ],
    "deps": [
     "annalist",
     "evil"
    ],
-   "commit": "04df79eadc952eaa9469094426b008426d3c5bee",
-   "sha256": "0ydr06krlj6v1r7hq3m5iy875mhmjr9amcfjjgqglfnzhic29g18"
+   "commit": "a615e4a7f642e0c3acd8628111624355380aa18f",
+   "sha256": "0dxrwcf5dnww0a9mvwjkcgm8ry3y282v9l85jh0645zk71nz1in3"
   }
  },
  {
@@ -29177,26 +29807,26 @@
   "repo": "linktohack/evil-commentary",
   "unstable": {
    "version": [
-    20170413,
-    1451
+    20210210,
+    1702
    ],
    "deps": [
     "evil"
    ],
-   "commit": "395f91014b69844b81660c155f42eb9b1b3d199d",
-   "sha256": "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"
+   "commit": "2dab6ac34d1617971768ad219d73af48f7473fec",
+   "sha256": "0zgigbfn0h1snls4d5xdjcg6mksaz6si0xm4827jyh5s8r0brc6w"
   },
   "stable": {
    "version": [
     2,
-    1,
-    1
+    2,
+    0
    ],
    "deps": [
     "evil"
    ],
-   "commit": "395f91014b69844b81660c155f42eb9b1b3d199d",
-   "sha256": "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"
+   "commit": "ca182e27156198db533bf6d48b7e5f6f54081397",
+   "sha256": "1l8zi9wlg1f7ffm8gh92qwk3q7h6cdl8b8zkd9hcda53mq6klpjr"
   }
  },
  {
@@ -29369,8 +29999,8 @@
     "cl-lib",
     "evil"
    ],
-   "commit": "3030e21ee16a42dfce7f7cf86147b778b3f5d8c1",
-   "sha256": "0zchmnzkq7bz2c4hl95xwnz5w243ya4ryi6hgbdss7mc9rnyyarh"
+   "commit": "ac50f21b29b6e3a111e10a9e88ae61c907ac5ee8",
+   "sha256": "0yl6lw2vz2qf97rvfmd83i3v41yl8bp7srhmxgxmhwksy589s5y9"
   }
  },
  {
@@ -29399,14 +30029,14 @@
   "repo": "Dewdrops/evil-extra-operator",
   "unstable": {
    "version": [
-    20161213,
-    403
+    20210225,
+    1239
    ],
    "deps": [
     "evil"
    ],
-   "commit": "e16a9b36f9901254da9af8a73871061616410fc3",
-   "sha256": "116srvfck3b244shxm9cmw3yvpprjgr840fvcv6jwwpfaphafxw4"
+   "commit": "fb249889acacc3e28869491195391fa6f617ae56",
+   "sha256": "049325xd7yk707mncz8mm8cshryh2ir1zf6ahwikr11iwsxgfajd"
   }
  },
  {
@@ -29674,38 +30304,6 @@
   }
  },
  {
-  "ename": "evil-magit",
-  "commit": "50315ec837d2951bf5b2bb75809a35dd7ffc8fe8",
-  "sha256": "02ncki7qrl22804576h76xl4d5lvvk32lzn9gvxn63hb19r0s980",
-  "fetcher": "github",
-  "repo": "emacs-evil/evil-magit",
-  "unstable": {
-   "version": [
-    20201107,
-    1529
-   ],
-   "deps": [
-    "evil",
-    "magit"
-   ],
-   "commit": "f4a8c8d3a5a699baea9356be7c1c5fd8867f610c",
-   "sha256": "1a14n8nl6470vbzw1a2y9rw5l7pw21qnnhxrw963gy063jyl9m8i"
-  },
-  "stable": {
-   "version": [
-    0,
-    4,
-    2
-   ],
-   "deps": [
-    "evil",
-    "magit"
-   ],
-   "commit": "a24186be7cc2cdab24b56f6dcc4665eeb8349c1a",
-   "sha256": "12hr2w5r2hgagb3hqbi59v73rxpjml5prc3m7dw3wzsm0rf1rwh3"
-  }
- },
- {
   "ename": "evil-mark-replace",
   "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
   "sha256": "14j2d46288shlixb57nh5vlqdi3aiv20djvcbhiw1cm9ar2c3y4v",
@@ -29743,14 +30341,14 @@
   "repo": "redguardtoo/evil-matchit",
   "unstable": {
    "version": [
-    20210110,
-    1011
+    20210325,
+    123
    ],
    "deps": [
     "evil"
    ],
-   "commit": "9cdaddd55d28b50d1319baee8038972796e8b178",
-   "sha256": "15j6li3fnj4q6l54c6r31ng3hrcb703c06c3wk5w4spc4nsgzfvc"
+   "commit": "8c8c94bea899718f393ad041202a355e6f24ea19",
+   "sha256": "0vygxkvri6363wi3byjd2r23bjyvjkfy58n2kshslaq18z5vylzl"
   },
   "stable": {
    "version": [
@@ -29773,15 +30371,15 @@
   "repo": "gabesoft/evil-mc",
   "unstable": {
    "version": [
-    20200228,
-    1535
+    20210206,
+    1941
    ],
    "deps": [
     "cl-lib",
     "evil"
    ],
-   "commit": "7dfb2ca5ac00c249cb2f55cd6fa91fb2bfb1117e",
-   "sha256": "18a4xcxadchyh9vrg9pqjmby40d5d0j78y1298kpflx78m5c9rgx"
+   "commit": "f04fb17f35f2722f2ac93c862b4450bb8e5b739a",
+   "sha256": "1d7mdqw4bx6p8y3c843n40g21099pmvras3bf9il5nhg4i3b12z8"
   },
   "stable": {
    "version": [
@@ -29878,20 +30476,20 @@
   "repo": "redguardtoo/evil-nerd-commenter",
   "unstable": {
    "version": [
-    20201017,
-    1148
+    20210311,
+    37
    ],
-   "commit": "563cdc154b1f29d181b883563dd37be7eafafdee",
-   "sha256": "0q3m6i2hin6sb3aqng37nfvz97bj099c3727srxcw2m4gw7z4cp2"
+   "commit": "b8ac35fe019df5602c31912f65303a3d8ad0066c",
+   "sha256": "1vyl8lidhjph7k86n8q09mwqpasaxsmwb8vi5i2gcd6klds9hg0d"
   },
   "stable": {
    "version": [
     3,
     5,
-    1
+    4
    ],
-   "commit": "fa40dab8d2f010db17e1e62dfd245c1504d0542f",
-   "sha256": "0dn712k54qsxy82jqbqip77k5i3zv8m7afj2yi39zqx28iqvic0z"
+   "commit": "b8ac35fe019df5602c31912f65303a3d8ad0066c",
+   "sha256": "1vyl8lidhjph7k86n8q09mwqpasaxsmwb8vi5i2gcd6klds9hg0d"
   }
  },
  {
@@ -30476,14 +31074,14 @@
   "repo": "7696122/evil-terminal-cursor-changer",
   "unstable": {
    "version": [
-    20170401,
-    842
+    20210130,
+    1855
    ],
    "deps": [
     "evil"
    ],
-   "commit": "b49ca4393d2f3cc6014174950059b36a5cb22949",
-   "sha256": "1zra2h0x20whshbc4sfyj6w73jv6ak435mr9n6r6s7brqqqgpa36"
+   "commit": "a88c680c631676ff8f6c5156b529f86d6b9f0841",
+   "sha256": "1b9y21p56a000z62mknbnr22ypkv1j58r24i8bg9836n23y8l717"
   }
  },
  {
@@ -30500,8 +31098,8 @@
    "deps": [
     "evil"
    ],
-   "commit": "cc9d6886b418389752a0591b9fcb270e83234cf9",
-   "sha256": "14nin675kb2q7fchawj5f2r7bdga9cxp7jbhmaa8vac03zs6xb4x"
+   "commit": "7eace67fc6d1f992e447f216baf9a8b7be634c1e",
+   "sha256": "13cgja2ss5afrpabz0rlhrh89vaw7dzaf1gh43b3hdbma8gh9li8"
   },
   "stable": {
    "version": [
@@ -30531,8 +31129,8 @@
     "auctex",
     "evil"
    ],
-   "commit": "ac313efb22d621c093d8d30233bd7dc8b4cc54b4",
-   "sha256": "1wrx8ihimn1sx3vzzfppcwv0yfh3x95jrkxqvzj0ykckipm3zk0b"
+   "commit": "5f0d6fb11bce66d32c27c765e93557f6ca89cc7d",
+   "sha256": "1856liiy75w3r6s5ss6hnzcrypymfp6fpnw0i6ybrw351fkw4k9w"
   },
   "stable": {
    "version": [
@@ -31102,8 +31700,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "d14d6d2966efe5a1409f84a6b9d998268f74761d",
-   "sha256": "0jgy17s7gkjpdls8ql8qfpncd5vrwm50i3svmnlqic6ds4mkc7s0"
+   "commit": "bf4bdc8b8911e7a2c04e624b9a343164c3878282",
+   "sha256": "0b19lhidn2kvkc4aaa1x634y2biryq85di1iwxdh8070k4j2yw9s"
   },
   "stable": {
    "version": [
@@ -31208,8 +31806,8 @@
     20200304,
     1839
    ],
-   "commit": "ea6b4cbb9985ddae532bd2faf9bb00570c9f2781",
-   "sha256": "1pc3nnyb6cy4x6xnm25kdhmjmfm2rar7cnxsfck2wg5nm11p0klm"
+   "commit": "4b8322774d9c1d8b64a0049d1dbbc1e7ce80c1a0",
+   "sha256": "1x6sbychbz91q7mnfn882ir9blfw98mjcrzby38z1xlx3c9phwyi"
   },
   "stable": {
    "version": [
@@ -31289,11 +31887,11 @@
   "repo": "extemporelang/extempore-emacs-mode",
   "unstable": {
    "version": [
-    20200518,
-    1043
+    20210316,
+    205
    ],
-   "commit": "7d0ca861e6b483be1f4a08e63c5ade9cd07b4799",
-   "sha256": "0mw041jccyn8s1n3wpas397k2vrp9ryq9lfj16ipk9iqs4la6hlx"
+   "commit": "81d79cb2f611aef10fd7b05f6d47977a66502a08",
+   "sha256": "0bmpmiaz32id2yplfp2vmg3bjbfypg8k0mac8m7v6jclaprw3mal"
   }
  },
  {
@@ -31351,15 +31949,15 @@
   "repo": "ananthakumaran/exunit.el",
   "unstable": {
    "version": [
-    20190919,
-    1238
+    20210222,
+    1453
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "c77b0397b80d772c98fcc34c9ab131a8350fbf40",
-   "sha256": "08lhsjmibgvd4cjrvyxhwn7cqrpd83bgsvh2xqppi9mnw1xwgzd5"
+   "commit": "5bb115f3270cfe29d36286da889f0ee5bba03cfd",
+   "sha256": "0xz7vnj2wjzih0rm1bsf1ynjy46wmm0aifa9g8362d8570anmkj5"
   }
  },
  {
@@ -31416,6 +32014,26 @@
   }
  },
  {
+  "ename": "exwm-float",
+  "commit": "0da450683bfd7c2da29ebfa0ffad7d66b268aae4",
+  "sha256": "1w4l8z3p55zrjjawg09ih0wnxdbzvhcpvazgz5z20dxfbj3cvryr",
+  "fetcher": "gitlab",
+  "repo": "mtekman/exwm-float.el",
+  "unstable": {
+   "version": [
+    20210207,
+    2035
+   ],
+   "deps": [
+    "exwm",
+    "popwin",
+    "xelb"
+   ],
+   "commit": "eb1b60b4a65e1ca5e323ef68a284ec6af72e637a",
+   "sha256": "1bwnw6qacdrm54lx4hc36f9lnidfw1wl399n7wasa24n9wrbr8z0"
+  }
+ },
+ {
   "ename": "exwm-mff",
   "commit": "78f94ec4d5f83020003cbdb7b954213dfb0f242b",
   "sha256": "10qjdhdkvyavjl43cyq9czvfbx8s0riiby0fss6v0snxdhg4qysd",
@@ -31771,19 +32389,19 @@
   "repo": "WJCFerguson/emacs-faff-theme",
   "unstable": {
    "version": [
-    20210108,
-    1527
+    20210324,
+    1332
    ],
-   "commit": "e475a0805cd9f4bb0f7397e4d37b868f42d96c00",
-   "sha256": "1djgrjnqapxjpnjly3mk9xna27fgl53rj257slz2dm3svhyghk2n"
+   "commit": "38cddb422572ca6f7dc004583bb8ba6a99b3315a",
+   "sha256": "19c0n5yjannz7sqwmw65j7clvwx6idnzy5lmc01ayghf3w2ksir2"
   },
   "stable": {
    "version": [
     2,
-    16
+    17
    ],
-   "commit": "e475a0805cd9f4bb0f7397e4d37b868f42d96c00",
-   "sha256": "1djgrjnqapxjpnjly3mk9xna27fgl53rj257slz2dm3svhyghk2n"
+   "commit": "2db5c559ca7356189083fb698a053bb1fee922a9",
+   "sha256": "1gk2dxmxv0sgkng7zgakz0gq9i0zh3wrwzsi785s338vjyypwm3g"
   }
  },
  {
@@ -32124,11 +32742,11 @@
   "repo": "yqrashawn/fd-dired",
   "unstable": {
    "version": [
-    20201217,
-    547
+    20210311,
+    321
    ],
-   "commit": "9fb966df33e7dde9360b8707f7a0197694f46abd",
-   "sha256": "0gx84kr8fnx8nic3iasqjdi1z6g9shfghin13kh5i9h7d8n83xkq"
+   "commit": "7d18938751d047eef18bfb5975195419f0d1e2d3",
+   "sha256": "0182hg9iayz371lv4flls3gwsvn7bad027h5bn7lizvxxmgg3c6s"
   },
   "stable": {
    "version": [
@@ -32246,11 +32864,11 @@
   "repo": "technomancy/fennel-mode",
   "unstable": {
    "version": [
-    20201221,
-    543
+    20210322,
+    1527
    ],
-   "commit": "bebc9dd58a845928114082c5ab4538b9869b4fc7",
-   "sha256": "1dyzfxcaq0gzw957386gapha4kai2y0hv6qqpv7gs4hsilvr8vzb"
+   "commit": "ba14a7ddc21f8bc2b9bc58abd1655abbe12118d7",
+   "sha256": "0lypgn8hppivq3w8jddgbyfs7x67xjkbx2j0is96lfdb0zykp9b9"
   },
   "stable": {
    "version": [
@@ -32538,27 +33156,50 @@
   }
  },
  {
+  "ename": "find-dupes-dired",
+  "commit": "f119ddd30a27e63e01d2be7928534a0708c8b8c6",
+  "sha256": "1ps1rhc1aa64gdx2dxhkkzjdricsqqljyzm1p6yzqy5a0jvicglg",
+  "fetcher": "github",
+  "repo": "ShuguangSun/find-dupes-dired",
+  "unstable": {
+   "version": [
+    20210204,
+    49
+   ],
+   "commit": "3c9783589e43717b682c9e37dd229839735402e8",
+   "sha256": "1wd7n08cf1mnd7czca3mcsfyh4nlkl36arhc3lnh7lzi98nyd0zv"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "commit": "f39e2afbc33e02a6bf62116f6ce71b8368068698",
+   "sha256": "1i86dqiw5b8wcqy4gc6nk3xk9narc3b40xl0bqyp0n6a1mckx9kh"
+  }
+ },
+ {
   "ename": "find-file-in-project",
-  "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
-  "sha256": "0aznnv82xhnilc9j4cdmcgh6ksv7bhjjm3pa76hynnyrfn7kq7wy",
+  "commit": "3bd8d837d8fe1712df6f62f825985d9e12d97fc6",
+  "sha256": "06kp64zxc9br4vsdl419fz68igqzmkzglhzzcb643vszi9dd5djq",
   "fetcher": "github",
-  "repo": "technomancy/find-file-in-project",
+  "repo": "redguardtoo/find-file-in-project",
   "unstable": {
    "version": [
-    20210112,
-    532
+    20210323,
+    118
    ],
-   "commit": "c4c7ec595c54c3006299717b1fd83e357864b2d5",
-   "sha256": "0mhp70h7n6h5s4dls5pslp45xxlrg6bbs7hkpbl3p1jhxx414fwr"
+   "commit": "595c6ac9d5e5b2dc138b472a40bc85c7f20a56c0",
+   "sha256": "1fqg4jg3x7vrcap46vbncazzjaj6yan57rdmi2n8xbhmw3jcc8z9"
   },
   "stable": {
    "version": [
     6,
     0,
-    0
+    3
    ],
-   "commit": "7cc9c05d05da5139e8361b72ca83ca30f44fae7d",
-   "sha256": "1iagywiihwv96y9p811xlx4cmbsj8h76niymprv1vm4fj6cmihr6"
+   "commit": "6a6328c59a96b09e771cbcc5f4188f20d0757aca",
+   "sha256": "17l5b9nibhfymyndppq0avbdr2rh20527fyr1q5i1c3xkn4d6wvp"
   }
  },
  {
@@ -32569,11 +33210,11 @@
   "repo": "h/find-file-in-repository",
   "unstable": {
    "version": [
-    20190404,
-    828
+    20210301,
+    2202
    ],
-   "commit": "b44d78682082270dc6b59cdc911333d0d3e7edaa",
-   "sha256": "1icsxp2b3grvdbv6bh9hpxz1hrqa7vvjzajjwi2knvjbq41d99bn"
+   "commit": "10f5bd919ce35691addc5ce0d281597a46813a79",
+   "sha256": "0x8f0nw7w9lvkcrxgyfmdb8apw5da57lkbkxxysc8z5z6qzngqrr"
   },
   "stable": {
    "version": [
@@ -32847,20 +33488,20 @@
   "repo": "wwwjfy/emacs-fish",
   "unstable": {
    "version": [
-    20200213,
-    2137
+    20210215,
+    1114
    ],
-   "commit": "db257db81058b0b12f788c324c264cc59b9a5bf4",
-   "sha256": "1f6viga13k90ws8v18az3vh3rdc5vd28xkpx9vfv3542bx1np1im"
+   "commit": "a7c953b1491ac3a3e00a7b560f2c9f46b3cb5c04",
+   "sha256": "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"
   },
   "stable": {
    "version": [
     0,
     1,
-    5
+    6
    ],
-   "commit": "688c82decad108029b0434e3bce6c3d129ede6f3",
-   "sha256": "1s961nhwxpb9xyc26rxpn6hvwn63sng452l03mm2ply32b247f9p"
+   "commit": "a7c953b1491ac3a3e00a7b560f2c9f46b3cb5c04",
+   "sha256": "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"
   }
  },
  {
@@ -32895,11 +33536,11 @@
   "repo": "mrkkrp/fix-input",
   "unstable": {
    "version": [
-    20190713,
-    1349
+    20210320,
+    1244
    ],
-   "commit": "7aef6fb29840a2f3c7e3c01eeeb7838a0e702050",
-   "sha256": "0hf4x16fr5z5l2ypp41sw78dz5qpi14pphpbh8zdg4ky5sa8d4fd"
+   "commit": "10b3aebc3d4411e6889f3428e8f097c0fbf8585c",
+   "sha256": "0c850rc9nnbvwf1sbp66xk6p246ylrfpqqhh6bcl7lm8b8v0kfzh"
   },
   "stable": {
    "version": [
@@ -32942,14 +33583,14 @@
   "repo": "mrkkrp/fix-word",
   "unstable": {
    "version": [
-    20190713,
-    1338
+    20210319,
+    1414
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "46487e5279a3079730e2d7146ace7c8ad42371ac",
-   "sha256": "0ij0bjrb446h07lyhflfk06sk802jylgdl11ib00r89zai8sq8r7"
+   "commit": "80cf4529915c34d2d39b4d3410781a19ef264e9f",
+   "sha256": "193bwcsj42w07aj8k32zl895yp0kw4rgrphn10dd81jv5411r6ij"
   },
   "stable": {
    "version": [
@@ -33240,15 +33881,15 @@
   "repo": "wanderlust/flim",
   "unstable": {
    "version": [
-    20201117,
-    825
+    20210324,
+    1102
    ],
    "deps": [
     "apel",
     "oauth2"
    ],
-   "commit": "068b35e863be9245e717e79def55f93580188bc8",
-   "sha256": "00jkappcri9y9yx35pg1gm1x81qmybkisc06rl4zxi9w76ch4rkk"
+   "commit": "ddf5b6eceb73d7dbf6ff3a2d5281a2957cc2b836",
+   "sha256": "1pf7jg0psirjm2s84hcmjxkhd5s8vlgprn1miykxks2yxkvk01xf"
   }
  },
  {
@@ -33408,11 +34049,11 @@
   "repo": "amake/flutter.el",
   "unstable": {
    "version": [
-    20201202,
-    138
+    20210304,
+    1341
    ],
-   "commit": "696228a619f6078b16f9f77071112f6ad2a25c4e",
-   "sha256": "0c39jgxykl1z74r0q7xiamwcnh6slidxrwg2f8ksdvyppgnqldwh"
+   "commit": "960b63576a13b7bd3495d0ad1883ed736873543b",
+   "sha256": "0l6k8ydrdbwms8va45jw88514ichj1qxbxkq8mfvvacb3rkb0gj0"
   }
  },
  {
@@ -33430,8 +34071,8 @@
     "flutter",
     "flycheck"
    ],
-   "commit": "696228a619f6078b16f9f77071112f6ad2a25c4e",
-   "sha256": "0c39jgxykl1z74r0q7xiamwcnh6slidxrwg2f8ksdvyppgnqldwh"
+   "commit": "960b63576a13b7bd3495d0ad1883ed736873543b",
+   "sha256": "0l6k8ydrdbwms8va45jw88514ichj1qxbxkq8mfvvacb3rkb0gj0"
   }
  },
  {
@@ -33541,8 +34182,8 @@
   "repo": "flycheck/flycheck",
   "unstable": {
    "version": [
-    20201228,
-    2104
+    20210321,
+    852
    ],
    "deps": [
     "dash",
@@ -33550,8 +34191,8 @@
     "pkg-info",
     "seq"
    ],
-   "commit": "01396a5eff9fa494285e0d3139838231c05e3948",
-   "sha256": "0s740sbchr84yddcg0zbs4v4s52smy178f8fq5y07i3vsdnfly8m"
+   "commit": "f8c679fff349850c80541a31de50009c3c15d4c9",
+   "sha256": "0v0zyq7zn89j036sp8ijxwpb0n435sf444ki618y7mv77k2qflxx"
   },
   "stable": {
    "version": [
@@ -33635,14 +34276,14 @@
   "repo": "leotaku/flycheck-aspell",
   "unstable": {
    "version": [
-    20200830,
-    2357
+    20210213,
+    1822
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "99f5fa5b3d2f67807fba67754c77ddc63e9cf441",
-   "sha256": "09wx5xnjd1rrv1z1pv959wl67ihccvn7rbvjsrldar80jn4nhpmx"
+   "commit": "8cd2e747c3f3c1a0879f66b42db090b2878af508",
+   "sha256": "0m6s8kjk1xpr9pp1s7r39mmm5ry2sa05ync3vjr4kr2m7s5fqchh"
   }
  },
  {
@@ -33713,6 +34354,36 @@
   }
  },
  {
+  "ename": "flycheck-cfn",
+  "commit": "3ac23c6e0cceb3dd52519a9946dcd500936d8e97",
+  "sha256": "16ls9xbg7s8c4li51zvv9frlinrwflp6blgxw5psnvvdrm6gavi5",
+  "fetcher": "gitlab",
+  "repo": "worr/cfn-mode",
+  "unstable": {
+   "version": [
+    20201120,
+    2307
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "a4ca40978e680f9edc86c141e696e0ae57c63533",
+   "sha256": "0ggq4q2c1xi26m4rlvjm8f51wlj7h351pp6m20k6l25856858vhi"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "b4ffad5cabea7e858c66dc824d545653b1cdcb70",
+   "sha256": "1la7qhczg9bgs1klinwj21mjywsg1nm3sxd5cyc09bxjzbflzzz6"
+  }
+ },
+ {
   "ename": "flycheck-checkbashisms",
   "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
   "sha256": "1gjfv3zkgc07wgrxia509pdl2z23a29m5x1p0w8bdjrp5zc4j7pw",
@@ -34240,27 +34911,27 @@
   "repo": "flycheck/flycheck-eldev",
   "unstable": {
    "version": [
-    20200614,
-    1904
+    20210305,
+    2231
    ],
    "deps": [
     "dash",
     "flycheck"
    ],
-   "commit": "c2e2bea1e69fe5f50a9629dec1d9b468ee92de54",
-   "sha256": "0rkzjzghfgypplnsx4w4ih9dh8xyysy9wb0jqmbg13zvc3jcb600"
+   "commit": "2ed17db874da51fba3d2991a1e05cf375fca9619",
+   "sha256": "0kzcx6sjwxzamal0za2vnll77kpvshr12zwxc9czxvc9vpckf921"
   },
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
    "deps": [
     "dash",
     "flycheck"
    ],
-   "commit": "1bddbfaa1de22879ea2b900c9f8d6f16940ee9fb",
-   "sha256": "0ma26gk9a3lw60i172wcwdsyfa19j7fj579b4yb7gf9ibca2hs5m"
+   "commit": "d222ce6a8e59385ffeeee7c3a36ee41cf9a8561e",
+   "sha256": "0lipvy48ilc8cxkzk64j7384rx0w57hjcgxbn9dp31c8i5pygj6y"
   }
  },
  {
@@ -34424,6 +35095,36 @@
   }
  },
  {
+  "ename": "flycheck-google-cpplint",
+  "commit": "d8aae034af2142a1bcec47414e00083b2afc7e4f",
+  "sha256": "17jm3r5mrn7hnk53cd9hahqgyqnc7jb4zh8ghg7i1zcg3k7wlbav",
+  "fetcher": "github",
+  "repo": "flycheck/flycheck-google-cpplint",
+  "unstable": {
+   "version": [
+    20210210,
+    300
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "6e2bc77da6e2a8812246b4717d97b68675ed84f1",
+   "sha256": "02m22d9y152aj7aba736j5gxpniqr0rc2k8iyq9cgbgavfhbr3ac"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    2
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "95f2038831d1e04a4ea6f91f0a846a4f989606b7",
+   "sha256": "1nlyv81pyqmyz18dlzw5h23prhkvyzb0aasjxba8mm33avx0fvvb"
+  }
+ },
+ {
   "ename": "flycheck-gradle",
   "commit": "382d9afd2bbb0c137719c308a67d185b86d84331",
   "sha256": "0zd92lx0mqjqwzclvvhfwwahq80qspyv9k7qcxjc0bl3avjk6a47",
@@ -34472,21 +35173,21 @@
  },
  {
   "ename": "flycheck-grammarly",
-  "commit": "5fdf51167be86e0871125d5548bddc0c926b79dd",
-  "sha256": "0rdgb9ig3gda33xwl8p9c11gf274v02zibzd660ncp0cipapvqp7",
+  "commit": "81d4d4888a531dc4428b76bd1ebf0c008e7e5b0e",
+  "sha256": "11jhq2pw5pwlb7v78n963r8msy6lzj0naykn8iijqf68j9qazcsy",
   "fetcher": "github",
-  "repo": "jcs-elpa/flycheck-grammarly",
+  "repo": "emacs-grammarly/flycheck-grammarly",
   "unstable": {
    "version": [
-    20201028,
-    647
+    20210217,
+    909
    ],
    "deps": [
     "flycheck",
     "grammarly"
    ],
-   "commit": "64e8ffc0ddf05586398a49ae2ad5704cae6eb4c8",
-   "sha256": "1yd95pc00q838af9mwmifwh0ncbndv7jzyqi5l26jxv3zbhmkdq1"
+   "commit": "67c1135193f98cfa4ee1ff83cc502dc11f648334",
+   "sha256": "1ns5rrpxxwf1n0g568g1dajvpr5i49hnv8v4i4g2sfxyszkijyj7"
   },
   "stable": {
    "version": [
@@ -34601,6 +35302,36 @@
   }
  },
  {
+  "ename": "flycheck-hledger",
+  "commit": "502709e2195bf0001891e438081e274fa3824af3",
+  "sha256": "1sdglh0s00af8qiqvi583gksi2yl8z47r1hry2dbm9vs0p0sf1z8",
+  "fetcher": "github",
+  "repo": "DamienCassou/flycheck-hledger",
+  "unstable": {
+   "version": [
+    20210119,
+    1000
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "0eeaa707b74f96761404daa2f807fbd7af904b75",
+   "sha256": "15xwnxvda3kj81q2rm8cz2qj17l9cwjqak4y6v02cv37nax0jmfh"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    0
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "9e45dd3f6b6cf51acf7312939aa437ae156be2e7",
+   "sha256": "0q6b0vyd55x71kv4k7jp8xzgy5zf9md8mgy3y6pwmpga9dmv149j"
+  }
+ },
+ {
   "ename": "flycheck-indent",
   "commit": "b1c1163d5acc402716c4a6cf877f13665138b74b",
   "sha256": "0d6wa3w377s22psbficabyqi03z8kp32662yxcly1dlv5zyyh6nd",
@@ -34676,8 +35407,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "e1c3adfc148caf721691a55cae686b5f31209204",
-   "sha256": "0b8hs7cdywqblbf5dkgck00x18xirlxi7kqd21cqfd276wvn8wyp"
+   "commit": "7febbea9ed407eccc4bfd24ae0d3afd1c19394f7",
+   "sha256": "1vvsswadiks9mpb49vz2q8z69wq0jalsvgalhn10k3pyz7p0abnd"
   },
   "stable": {
    "version": [
@@ -34834,8 +35565,8 @@
     "flycheck",
     "keg"
    ],
-   "commit": "18c675aa2ff1749eb42f081f0549398b82cd4540",
-   "sha256": "1mz5rfzyv4varn09pza5yb851vmsbicsz4zgc0y7zni2bhlj9250"
+   "commit": "e4c7d9d8f823fa717df5f0e7039d525758429fc9",
+   "sha256": "0idr47ssysz3qp2cdrciapljwm7zh76fnj3vgpz9i2wdmgr12m2d"
   }
  },
  {
@@ -35064,8 +35795,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "cf45af2a71f6e7a21e01c556613c5b5cdc983ac9",
-   "sha256": "1qhix0i8d9qrc0jg3r17v6fmrz07pjw5kk04fm72i8n4c16vb6r1"
+   "commit": "5e74a5a796e73fca7f3fd15986fefa56529b8e98",
+   "sha256": "11sdxlqwk4wa3pgbfyxjq100yra11iya61wnx6c01n2fxmf82iih"
   },
   "stable": {
    "version": [
@@ -35128,8 +35859,8 @@
     "flycheck",
     "package-lint"
    ],
-   "commit": "64cf27d69051e02a32e3c517cbfea23f9d2d7557",
-   "sha256": "0m2bmdwrj7ccf6ndv089qbbrz1msbcgls0ckbbhzpxxq39as2rpv"
+   "commit": "303f9e0708292937a668e1145f5eaa19d7d374e2",
+   "sha256": "0xav8x3vs7i8kvvhnq86scahjzv6m9mnpiibapflc995wqs4yq02"
   },
   "stable": {
    "version": [
@@ -35164,24 +35895,6 @@
   }
  },
  {
-  "ename": "flycheck-perl6",
-  "commit": "2f6ecdb2ce6bc74a27dca01ab4942778e986ac8f",
-  "sha256": "0czc0fqx7g543afzkbjyz4bhxfl4s3v5swn9xrkayv8cgk8acvp4",
-  "fetcher": "github",
-  "repo": "hinrik/flycheck-perl6",
-  "unstable": {
-   "version": [
-    20180509,
-    2201
-   ],
-   "deps": [
-    "flycheck"
-   ],
-   "commit": "b804702305d7a6e26f762ff98cfdeec2e9dd4cb7",
-   "sha256": "0gys38rlx9lx35bia6nj7kfhz1v5xfrirgf8adwk7b2hfjazrsib"
-  }
- },
- {
   "ename": "flycheck-pest",
   "commit": "f0c1b89d79456ecaa22b95f3c292799f5d1aa133",
   "sha256": "06nvryshinagp26idjcb1r98k39x4k82cjj735l9kiwpiag53ash",
@@ -35292,26 +36005,26 @@
   "repo": "ponylang/flycheck-pony",
   "unstable": {
    "version": [
-    20190227,
-    235
+    20210118,
+    1326
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "43421fb43ab4fec759061a11e9d9166bb7da013d",
-   "sha256": "03byayxvhrkm88s7157cfzi91ziggs872yis9ys04ndk1pdf940f"
+   "commit": "039a6c9d0324208d4f4b006693c16248fcf5519b",
+   "sha256": "1sr1n7gv5n22w018z5nxfnknjqmk2lc8h2flv4d2f23aihlss9h3"
   },
   "stable": {
    "version": [
     0,
-    2,
-    2
+    3,
+    0
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "9356cbcd404eaf381ab0c4b0f9c47232f723fa7e",
-   "sha256": "1rzz3cl0pxn3hhrkxcdiy17wl4dzbn8kxm3hq90zmhag1gbfy4zz"
+   "commit": "22787cf8223ca9ec309e30a42c20a8e706d8bfbe",
+   "sha256": "1dpxhljgw0k6y7973ssqfnmc7vp4fv87ajsq1bm8g4m04vj4127q"
   }
  },
  {
@@ -35385,15 +36098,15 @@
   "repo": "alexmurray/flycheck-posframe",
   "unstable": {
    "version": [
-    20201122,
-    2307
+    20210316,
+    618
    ],
    "deps": [
     "flycheck",
     "posframe"
    ],
-   "commit": "66b73ddb93b357fe9b849d2aa14d5cc9e89e9ffd",
-   "sha256": "0hggigwbpcq4w5nrjhp8g7vahl9zdixwrhga8ag8zvrdfr0g1cym"
+   "commit": "8f60c9bf124ab9597d681504a73fdf116a0bde12",
+   "sha256": "0qh9hzvs95jvfrspglzkwhfq6a5pinab94bbh5vzkg8jc2fq6drf"
   }
  },
  {
@@ -35545,6 +36258,24 @@
   }
  },
  {
+  "ename": "flycheck-raku",
+  "commit": "a285426ee792eab3138ceb012f3825d91a7c85b1",
+  "sha256": "13il1cl60rv18xnp381z57l4nv4jc4isavjsqbrrqpyjpi81c3g8",
+  "fetcher": "github",
+  "repo": "Raku/flycheck-raku",
+  "unstable": {
+   "version": [
+    20210316,
+    820
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "4163c0dcc1447bc98bb20b835eb23cb68a638ba9",
+   "sha256": "0z19zz5dq0pjkzrjg2fbrh9szlgd0lq2j9wmkf4pzkrcb519kchn"
+  }
+ },
+ {
   "ename": "flycheck-relint",
   "commit": "e20128460e942a78a88bd9e6389a8fcbb14343ad",
   "sha256": "1q443078jf6cxzwxz6mc4m9drzfcd86q0lcw5vszmfyzn35nwyzb",
@@ -35559,8 +36290,8 @@
     "flycheck",
     "relint"
    ],
-   "commit": "86ebb4dac919eda01341b15b9c896742b9d17c30",
-   "sha256": "1k638y125xyb0bc5i2zrkypwb770jn1ndky6qak31n4ws41xynbd"
+   "commit": "4d112871b82d5ea6d0d3e4aaacc55a45536707b7",
+   "sha256": "1plqica209q1x8kzyy4iz97bvd8vqxgv1l00mlf946q201ps7yb1"
   },
   "stable": {
    "version": [
@@ -35590,8 +36321,8 @@
     "flycheck",
     "rtags"
    ],
-   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
-   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
+   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
+   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
   },
   "stable": {
    "version": [
@@ -35649,15 +36380,15 @@
   "repo": "stan-dev/stan-mode",
   "unstable": {
    "version": [
-    20200830,
-    1032
+    20210130,
+    1325
    ],
    "deps": [
     "flycheck",
     "stan-mode"
    ],
-   "commit": "2dd330604563d143031fc8ffd516266217aa1f9b",
-   "sha256": "1l49fqd4wh9bkdpb4mk5a1cbl5i3iwc3q690viakhpb4840jmlry"
+   "commit": "9bb858b9f1314dcf1a5df23e39f9af522098276b",
+   "sha256": "031418nkp9qwlxda8i3ankp3lq94sv8a8ijwrbcwb4w3ssr9j3ds"
   },
   "stable": {
    "version": [
@@ -35749,8 +36480,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "77a000095b321ac5d2378cf03ccf2377ccc37f59",
-   "sha256": "1rp0v681kvdsi84lk4m1lj8bfllwqw1ivl53q3zy34ja186xviww"
+   "commit": "f83b2bb7086e54beb2bd2df406a498927a7b2fba",
+   "sha256": "04rdc8jsb8gx2bhrf7rwpyrw4pw04638j574g6614f9h1whpw9jw"
   },
   "stable": {
    "version": [
@@ -35860,14 +36591,14 @@
   "repo": "Wilfred/flycheck-title",
   "unstable": {
    "version": [
-    20170216,
-    2346
+    20210321,
+    558
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "6faea67be8661faf8152217869d16e993cc2bc49",
-   "sha256": "08b2cq5bzmq9aa8b8glx5js2nhfpgdsd0r2sgvi0ij937yz8lf37"
+   "commit": "74e4375f372f7b9ce0fdfa34dc74a048376679ae",
+   "sha256": "0ivdv7gsbi3p6nzkyr0dl4iw3846dwys9mrx3pbnf9awzrcihnid"
   },
   "stable": {
    "version": [
@@ -36042,11 +36773,11 @@
   "repo": "leotaku/flycheck-aspell",
   "unstable": {
    "version": [
-    20201212,
-    1038
+    20210213,
+    1822
    ],
-   "commit": "99f5fa5b3d2f67807fba67754c77ddc63e9cf441",
-   "sha256": "09wx5xnjd1rrv1z1pv959wl67ihccvn7rbvjsrldar80jn4nhpmx"
+   "commit": "8cd2e747c3f3c1a0879f66b42db090b2878af508",
+   "sha256": "0m6s8kjk1xpr9pp1s7r39mmm5ry2sa05ync3vjr4kr2m7s5fqchh"
   }
  },
  {
@@ -36079,24 +36810,6 @@
   }
  },
  {
-  "ename": "flymake-cppcheck",
-  "commit": "2a83d56c6e150de5d4fdbd89f271f18e5304afd8",
-  "sha256": "11brzgq2zl32a8a2dgj2imsldjqaqvxwk2jypf4bmfwa3mkcqh3d",
-  "fetcher": "github",
-  "repo": "senda-akiha/flymake-cppcheck",
-  "unstable": {
-   "version": [
-    20140415,
-    1257
-   ],
-   "deps": [
-    "flymake-easy"
-   ],
-   "commit": "7eac8c7b9c74ebb5e600686f1f3891767dc87bb2",
-   "sha256": "1xwpznllgz47f6h7mzwy601179sxdj6i8qvnfa6fn4cx4dz5z3iv"
-  }
- },
- {
   "ename": "flymake-css",
   "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
   "sha256": "0kqm3wn9symqc9ivnh11gqgq8ql2bhpqvxfm86d8vwm082hd92c5",
@@ -36133,14 +36846,14 @@
   "repo": "flymake/emacs-flymake-cursor",
   "unstable": {
    "version": [
-    20120322,
-    1757
+    20210126,
+    1733
    ],
    "deps": [
     "flymake"
    ],
-   "commit": "ecc539082c3fc9e91bba33d72c26989217411593",
-   "sha256": "0cdf5m3rfwsim505qjyyml0r5zzqx7jrlc8ayfvix70f3bmxnibs"
+   "commit": "afd458daf88f475cfacdd22375635e43a5017564",
+   "sha256": "17fzs4r22nlf27xcdfj9qs337879xkk9hgq121dgxd93xy3n0ky7"
   },
   "stable": {
    "version": [
@@ -36320,24 +37033,6 @@
   }
  },
  {
-  "ename": "flymake-google-cpplint",
-  "commit": "01f8e5c2b63e80f0411860fde38bf694df3bfc8f",
-  "sha256": "0q7v70xbprh03f1yabq216q4q82a58s2c1ykr6ig49cg1jdgzkf3",
-  "fetcher": "github",
-  "repo": "senda-akiha/flymake-google-cpplint",
-  "unstable": {
-   "version": [
-    20140205,
-    1325
-   ],
-   "deps": [
-    "flymake-easy"
-   ],
-   "commit": "426e56ae1278d7a078c368e9d495003825ada0bd",
-   "sha256": "1gckz68050pj9pg7yn3wwn13x2nrv6y4ggswkgcyijxi7x0sqana"
-  }
- },
- {
   "ename": "flymake-gradle",
   "commit": "7cccc8537324e0faf7fd35325e3ccd3b2e05771a",
   "sha256": "00wpymzw2j2zx37nq8qf77pk04r0hxlmlwykcj6yzq9bfgi75wnf",
@@ -36354,20 +37049,20 @@
  },
  {
   "ename": "flymake-grammarly",
-  "commit": "a8a5e3f1d6b2976b0544ca23189f58486f2065f1",
-  "sha256": "08gqywxms7mn4xihj3sqm7kw02zjcfhxm0ldcvwaihjnkxmfrll4",
+  "commit": "8271fbd6a4b47d0d3aa6f50547ac502c4f2a7e4a",
+  "sha256": "06va2zmg8m8al7rxpa7znvln9yhsjlxhnxgs8q76flx9fhg0pm2j",
   "fetcher": "github",
-  "repo": "jcs-elpa/flymake-grammarly",
+  "repo": "emacs-grammarly/flymake-grammarly",
   "unstable": {
    "version": [
-    20201028,
-    647
+    20210217,
+    909
    ],
    "deps": [
     "grammarly"
    ],
-   "commit": "28efe445c91daa9a604d518f00cae6b1375179df",
-   "sha256": "05icajswb649g3d3qhj96dzz5zc9faf1hr93ni0039gqk312p48a"
+   "commit": "41d10f26a76208612fa184d1155ab40130f4cbf0",
+   "sha256": "1f5vflanpq0kdqnp2jz6aj5v0v4wvmr01rlgxjz3yz31bp444a0d"
   },
   "stable": {
    "version": [
@@ -36545,8 +37240,8 @@
    "deps": [
     "flymake-easy"
    ],
-   "commit": "ae58795f948402e987cda4c15f10354f8ec2d0fd",
-   "sha256": "1hr35xxj6w34h7xs13n6sxs69j3z3i0r1qim3hgyiym797xjsa0p"
+   "commit": "03b4e5e7ad11938781257a783e717ab95fe65952",
+   "sha256": "1yayfh4j155fpwybh26w6hvdg1whrd8wmaz8w406s4rqpsw93q92"
   },
   "stable": {
    "version": [
@@ -36651,6 +37346,24 @@
   }
  },
  {
+  "ename": "flymake-nasm",
+  "commit": "003b8973f810f771da88e30b4aa7457967f21364",
+  "sha256": "1i12dz0xzvbyajnlb64scv894zj2nbsz354mv9rjhkgvc9zw2hnl",
+  "fetcher": "github",
+  "repo": "juergenhoetzel/flymake-nasm",
+  "unstable": {
+   "version": [
+    20210310,
+    1540
+   ],
+   "deps": [
+    "flymake-quickdef"
+   ],
+   "commit": "27e58d7f3a48ca6fc12238fe6c888a3fdffc3f75",
+   "sha256": "0j4zai3par1i27szs2rws72qrqjcr3yz55pp56hl397r40kzwgmq"
+  }
+ },
+ {
   "ename": "flymake-perlcritic",
   "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
   "sha256": "1i0bc81cby2nsala2mhghzv7clhbf1gpp54vdxiq2wdanqy25vmk",
@@ -36664,8 +37377,8 @@
    "deps": [
     "flymake"
    ],
-   "commit": "edfaa86500ddfa8a6a6f51f5581a81a821277df6",
-   "sha256": "1f4l2r4gp03s18255jawc7s5abpjjrw54937wzygmvzvqvmaiikj"
+   "commit": "c70eb881d4fb27aeb72c0bf8de6707b9de49bd51",
+   "sha256": "1w7msjg4sa0h0a4ycl9382agv1bhzcr9z0i6hmhcg7333rd31ilh"
   },
   "stable": {
    "version": [
@@ -36741,10 +37454,10 @@
  },
  {
   "ename": "flymake-phpcs",
-  "commit": "6e4d444198f593cfb03c7ca84f3e90db13ef5a01",
-  "sha256": "0zzxi3c203fiw6jp1ar9bb9f28x2lg23bczgy8n5cicrq59jfsn9",
+  "commit": "a35c3043bfc1ce5a3e0fe1c472c6f494a413ba7c",
+  "sha256": "1gki8ljlq0x954a7fvsz4qj634w40dmlirjg5bm4585ssnsh04wc",
   "fetcher": "github",
-  "repo": "senda-akiha/flymake-phpcs",
+  "repo": "flymake/flymake-phpcs",
   "unstable": {
    "version": [
     20140713,
@@ -36753,8 +37466,19 @@
    "deps": [
     "flymake-easy"
    ],
-   "commit": "bba25dbda15955b609ceae0893cf3be74ec67230",
-   "sha256": "1z6m3bggd3gmxvx92j16jmqm5h9jjxnmsd7adyf12ziy5n5rqcbc"
+   "commit": "8e5ab5103c8f40a2ab6c86def6327e480ae93657",
+   "sha256": "19cggpaj14w3j3q6dgv7ybjqbr2pqbwhingz4yi7wkrr0w6s0lsa"
+  },
+  "stable": {
+   "version": [
+    1,
+    1
+   ],
+   "deps": [
+    "flymake-easy"
+   ],
+   "commit": "f947ba3066c1fa903d2ec69d67bf84413f51eb3f",
+   "sha256": "10qaw7dhklxqzimfsj87clb297y7rnd3bpn061bh04cwnayjn2hr"
   }
  },
  {
@@ -37004,11 +37728,11 @@
   "repo": "federicotdn/flymake-shellcheck",
   "unstable": {
    "version": [
-    20200921,
-    2341
+    20210314,
+    2048
    ],
-   "commit": "060da4097c1caadc1eb1d6feac4deaedaadb6dc0",
-   "sha256": "021qmkysx8gmwxnxcx6izs1q1h66ncvrwlvpk1wsxw9lf9symm7c"
+   "commit": "ac534e9ef15c82ac86ae65fe5004d29dbc8c92c7",
+   "sha256": "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"
   }
  },
  {
@@ -37121,11 +37845,11 @@
   "repo": "d12frosted/flyspell-correct",
   "unstable": {
    "version": [
-    20200904,
-    526
+    20210124,
+    1143
    ],
-   "commit": "0d5076f93b4c903a69a5f9ed19bab45d107acd10",
-   "sha256": "0zx45lm292mvq6q1i9288qg7nfy0xnxvvaa7qgv3yfi5zdsjq619"
+   "commit": "d19a090b978a249fc8f6d8b14309a5705a6bb483",
+   "sha256": "1p9s1qcqk834r0lkqzch8gb7c8qrpvbhxfyb44bgjd9qcw0kzr3s"
   },
   "stable": {
    "version": [
@@ -37145,15 +37869,15 @@
   "repo": "d12frosted/flyspell-correct",
   "unstable": {
    "version": [
-    20200215,
-    1337
+    20210124,
+    1143
    ],
    "deps": [
     "avy-menu",
     "flyspell-correct"
    ],
-   "commit": "0d5076f93b4c903a69a5f9ed19bab45d107acd10",
-   "sha256": "0zx45lm292mvq6q1i9288qg7nfy0xnxvvaa7qgv3yfi5zdsjq619"
+   "commit": "d19a090b978a249fc8f6d8b14309a5705a6bb483",
+   "sha256": "1p9s1qcqk834r0lkqzch8gb7c8qrpvbhxfyb44bgjd9qcw0kzr3s"
   },
   "stable": {
    "version": [
@@ -37177,15 +37901,15 @@
   "repo": "d12frosted/flyspell-correct",
   "unstable": {
    "version": [
-    20200215,
-    1337
+    20210124,
+    1143
    ],
    "deps": [
     "flyspell-correct",
     "helm"
    ],
-   "commit": "0d5076f93b4c903a69a5f9ed19bab45d107acd10",
-   "sha256": "0zx45lm292mvq6q1i9288qg7nfy0xnxvvaa7qgv3yfi5zdsjq619"
+   "commit": "d19a090b978a249fc8f6d8b14309a5705a6bb483",
+   "sha256": "1p9s1qcqk834r0lkqzch8gb7c8qrpvbhxfyb44bgjd9qcw0kzr3s"
   },
   "stable": {
    "version": [
@@ -37209,15 +37933,15 @@
   "repo": "d12frosted/flyspell-correct",
   "unstable": {
    "version": [
-    20201202,
-    636
+    20210124,
+    1143
    ],
    "deps": [
     "flyspell-correct",
     "ivy"
    ],
-   "commit": "0d5076f93b4c903a69a5f9ed19bab45d107acd10",
-   "sha256": "0zx45lm292mvq6q1i9288qg7nfy0xnxvvaa7qgv3yfi5zdsjq619"
+   "commit": "d19a090b978a249fc8f6d8b14309a5705a6bb483",
+   "sha256": "1p9s1qcqk834r0lkqzch8gb7c8qrpvbhxfyb44bgjd9qcw0kzr3s"
   },
   "stable": {
    "version": [
@@ -37241,15 +37965,15 @@
   "repo": "d12frosted/flyspell-correct",
   "unstable": {
    "version": [
-    20200828,
-    629
+    20210124,
+    1143
    ],
    "deps": [
     "flyspell-correct",
     "popup"
    ],
-   "commit": "0d5076f93b4c903a69a5f9ed19bab45d107acd10",
-   "sha256": "0zx45lm292mvq6q1i9288qg7nfy0xnxvvaa7qgv3yfi5zdsjq619"
+   "commit": "d19a090b978a249fc8f6d8b14309a5705a6bb483",
+   "sha256": "1p9s1qcqk834r0lkqzch8gb7c8qrpvbhxfyb44bgjd9qcw0kzr3s"
   },
   "stable": {
    "version": [
@@ -37273,11 +37997,11 @@
   "repo": "rolandwalker/flyspell-lazy",
   "unstable": {
    "version": [
-    20201028,
-    111
+    20210308,
+    1253
    ],
-   "commit": "d57382cf06462931cb354f5630469425fce56396",
-   "sha256": "0ahq75izwjmkzdkj25k3iml76csgkqav912dnlairqsnc9il6bj8"
+   "commit": "0fc5996bcee20b46cbd227ae948d343c3bef7339",
+   "sha256": "1r9sz6p8p2g3n59pqfqllr5324pg7q3fji6lki9qpy0l5yd6j1p4"
   },
   "stable": {
    "version": [
@@ -37344,16 +38068,15 @@
   "repo": "troyp/fn.el",
   "unstable": {
    "version": [
-    20170210,
-    204
+    20210304,
+    1812
    ],
    "deps": [
     "cl-lib",
-    "dash",
-    "dash-functional"
+    "dash"
    ],
-   "commit": "f685fd0c08ec3b1d1b9974b37e62edd78a000cb8",
-   "sha256": "1k8pwlpcvlwr4pavg85ja8hdc7rrbafqs1mhhqr5gbq8cp822sja"
+   "commit": "98e3fe1b4785e162d9aca978a2db106baa79260f",
+   "sha256": "0qaxbqwqxxgvw1lb6icsv3mx215mg682n3jsrmqfsvgl9nc97ps6"
   },
   "stable": {
    "version": [
@@ -37559,15 +38282,15 @@
   "repo": "rolandwalker/font-utils",
   "unstable": {
    "version": [
-    20150806,
-    1751
+    20210124,
+    43
    ],
    "deps": [
     "pcache",
     "persistent-soft"
    ],
-   "commit": "9192d3f8ee6a4e75f34c3fed10378674cc2b11d3",
-   "sha256": "1k90w8v5rpswqb8fn1cc8sq5w12gf4sn6say5dhvqd63512b0055"
+   "commit": "88fb9b046e7094303e4f5b43e84b0f5d5283c508",
+   "sha256": "1qhrvmx8pcjb2hg3y3ra07nv3bcga3ckqxd9i89wrgay5kk7avcy"
   },
   "stable": {
    "version": [
@@ -37644,8 +38367,8 @@
     20191004,
     1850
    ],
-   "commit": "e086c59a14701cd041641b51c952fa704ee963df",
-   "sha256": "0w1crw5lsk22jfw2w5qq6ab7zxdzp38akasvyvxakvpp1782xq9p"
+   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
+   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
   }
  },
  {
@@ -37722,8 +38445,8 @@
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20210112,
-    1148
+    20210314,
+    2238
    ],
    "deps": [
     "closql",
@@ -37735,8 +38458,8 @@
     "markdown-mode",
     "transient"
    ],
-   "commit": "47be4eebfa34f87e502aad30f59907ad09552979",
-   "sha256": "0fbj6css456abzslr09vxr46xikxydjh78kmd0kqfidsp1rx6xsj"
+   "commit": "f4c95dd0e633b3dd332d6f91122c864ab3640912",
+   "sha256": "02jhimj1ykz0mfg63iwaaxg1i9fdijczcd1g5fz02zwj1v2dgqgh"
   },
   "stable": {
    "version": [
@@ -37791,27 +38514,28 @@
   "repo": "lassik/emacs-format-all-the-code",
   "unstable": {
    "version": [
-    20210107,
-    1425
+    20210315,
+    640
    ],
    "deps": [
+    "inheritenv",
     "language-id"
    ],
-   "commit": "05bd6d0b4aa3d8b22291de5827da64b7be155590",
-   "sha256": "0fgc0kj9zb0f08i2mcm8ny9f8cqlk9v8185qmc6wmq1i7kaczsvr"
+   "commit": "94239d35944830ce009d01ac3369e0d61f9723c2",
+   "sha256": "1q27yr916vhk0ah1406vs540f8hpp8bca1f118xwhyj1fw3yrbaw"
   },
   "stable": {
    "version": [
     0,
-    3,
+    4,
     0
    ],
    "deps": [
-    "cl-lib",
+    "inheritenv",
     "language-id"
    ],
-   "commit": "8c8c47a863a397d947999fff4358caf20bafca0a",
-   "sha256": "0ayb57p114z64ppf74g2wpm2g2iga2vrl8rhay7fnfv1j2i4xjss"
+   "commit": "caa0269ce89789a702823041ca7b309ddaffb5ce",
+   "sha256": "1y5a704xbnvb46rp1ra9cjjazzs795hvh3p0di2hr5jsql0a0zwa"
   }
  },
  {
@@ -37875,11 +38599,11 @@
   "repo": "larsbrinkhoff/forth-mode",
   "unstable": {
    "version": [
-    20170527,
-    1930
+    20210123,
+    900
    ],
-   "commit": "522256d98d1a909983bcfd3ae20c65226d5929b6",
-   "sha256": "110ycl8zkimy2818rhp3hk3mn2y25m695shdsy6dwxnrv90agss6"
+   "commit": "f44fa6481ffe2b4321d462c3fab78a858f2a8ae9",
+   "sha256": "08p9ddxs3ya7an2p485wrw5ywimbgnqrihriyc4aaq963zpssk2c"
   }
  },
  {
@@ -37935,26 +38659,26 @@
   "repo": "rnkn/fountain-mode",
   "unstable": {
    "version": [
-    20201226,
-    1636
+    20210225,
+    1517
    ],
    "deps": [
     "seq"
    ],
-   "commit": "c7ac77fef71fc20c4c7bee73516ec3c0f656a91a",
-   "sha256": "00m4x3nylvwsaki6m7gvk1grcaap96rnx10mpsxlapkpbrydhpk0"
+   "commit": "9b0079c10c73e5f0785a8e727c1240ea9a781a5d",
+   "sha256": "02qxrq582cmcc6wmflh314z724kzxfp2l31h5b71372lck3f0slq"
   },
   "stable": {
    "version": [
     3,
     4,
-    0
+    1
    ],
    "deps": [
     "seq"
    ],
-   "commit": "3e7ef35fae455f77abb63c34e926c2d0e3070d7f",
-   "sha256": "161wn66gc2z7fd4f89827dpww6hjmnassbi15yis5rqbklj1h2z6"
+   "commit": "707b8fdc9a0e1de1a911ca312c23c0c1672f3ec3",
+   "sha256": "14zhbcfqyp093kd1bxl7f2hf5l5995qmgpmnxfgw9qcc781crj73"
   }
  },
  {
@@ -38157,15 +38881,16 @@
   "url": "https://git.launchpad.net/frecentf.el",
   "unstable": {
    "version": [
-    20201217,
-    2150
+    20210211,
+    1630
    ],
    "deps": [
+    "async",
     "frecency",
     "persist"
    ],
-   "commit": "23a41b8d06b1e345e6b99d1efd38a219f376faff",
-   "sha256": "1sgsi7kdk3r1lh0iilpyz241qpzj46xp4ifhbszjxs6p2gcwi5y9"
+   "commit": "b385061a3103890df2d4b2e46a8b3ac775aeec00",
+   "sha256": "09s6fkshkd3mfhf0zynl50p70cnpx67qigi55is2byvhh5950fx5"
   }
  },
  {
@@ -38221,20 +38946,20 @@
   "repo": "rnkn/freeze-it",
   "unstable": {
    "version": [
-    20200416,
-    1605
+    20210201,
+    731
    ],
-   "commit": "968cb4580bbd7d23ee78e53152e30e0cdf0f5e41",
-   "sha256": "0v9yriw45rg12mz72gmhwi2mz19h6svh3dsw1fpbww4qcx4mnjvd"
+   "commit": "752fe042ba3153473cd149875388c8dd9b4a8a26",
+   "sha256": "0x4sp6n6dksa8vps465i8sqvdzacr7hrxd4jlxj9gqkcspalrjgy"
   },
   "stable": {
    "version": [
     0,
     2,
-    1
+    2
    ],
-   "commit": "b93af18633bc783c2cb8443808aeeaaca33e1146",
-   "sha256": "0gljal6hmchx5zyd268kwlqn8pqq206y8a89ff7kq6qaql88mngn"
+   "commit": "1f252a922612e0d6ee62a683b7cdab8956460f11",
+   "sha256": "0bwd3hw5qdijmvbfm69iyhijjx12yqvsa8n08cawxfa26cs6hi1g"
   }
  },
  {
@@ -38417,16 +39142,41 @@
   "repo": "waymondo/frog-jump-buffer",
   "unstable": {
    "version": [
-    20201117,
-    1803
+    20210308,
+    2316
    ],
    "deps": [
     "avy",
     "dash",
     "frog-menu"
    ],
-   "commit": "39aeb02f5a38f3637b5e1d0560b366daa131d421",
-   "sha256": "1zgzvcrybcx5vvvqhxxhridsfcjggcyb2kxzsmp6fmd4bdhd4crx"
+   "commit": "3481626cccea8e77e4eee79b05f99c9171559f7b",
+   "sha256": "1v7p3ln8jw3qm2ka0jl55wq9smal5k31rzsina9i8c5mcslml1l2"
+  }
+ },
+ {
+  "ename": "frontside-javascript",
+  "commit": "73ac023ee296b2b890265832d68d1d1d9f59fe33",
+  "sha256": "1yqp9zpahd808q5c2cpb2sb7xh8z75vqbrb5jxxrng4n4dxqj3yj",
+  "fetcher": "github",
+  "repo": "thefrontside/frontmacs",
+  "unstable": {
+   "version": [
+    20210206,
+    2008
+   ],
+   "deps": [
+    "add-node-modules-path",
+    "company",
+    "flycheck",
+    "js2-mode",
+    "js2-refactor",
+    "rjsx-mode",
+    "tide",
+    "web-mode"
+   ],
+   "commit": "2b0e27a2f5fa18079b00753b3bf9635818e11f71",
+   "sha256": "0cv0vrz8mv7b8hm3ac8l7zjscavsxix0wiv646n5vx03282zfgpk"
   }
  },
  {
@@ -38454,21 +39204,20 @@
  },
  {
   "ename": "fsharp-mode",
-  "commit": "7a41e8a101b1b76870402eb8f60130be9e9f189d",
-  "sha256": "1bcgy40z5d1663rafh4vhbm8d24yxnbw23sagki4427sywinl11x",
+  "commit": "fb0dd36a02a45ae31a21da0fd5551843243f597b",
+  "sha256": "0kl8hwm7101i3pc949xj22d85mxmqhk86qbwjzbgxdh64lwp5hnc",
   "fetcher": "github",
   "repo": "fsharp/emacs-fsharp-mode",
   "unstable": {
    "version": [
-    20210106,
-    1632
+    20210131,
+    1150
    ],
    "deps": [
-    "eglot",
     "s"
    ],
-   "commit": "e3dccd65a16a1675722b1eed7aca1a729a2fc8ed",
-   "sha256": "1wyc3lzvjl01cy18cyzq1xms4kid9iqkm31fxrv87awmzpxsvqi5"
+   "commit": "78898a1535878394d83643c383f4320e7b5fcefd",
+   "sha256": "0d60jfaf8av0b7vx44lbqzb7v70dszvr2w1yjh1cxn71dnjphp4j"
   },
   "stable": {
    "version": [
@@ -38528,14 +39277,14 @@
   "repo": "factor/factor",
   "unstable": {
    "version": [
-    20200514,
-    1516
+    20210323,
+    1426
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "527567aa9f668e9fa63df7d258b82004473dd7e4",
-   "sha256": "1w1k193hc2ihi2wh9gbsp9wcwl2gxqia21868ad7v3xadyik0a6i"
+   "commit": "5bfeab6c0e13bfefddb98b30b6e60489a1574d8e",
+   "sha256": "193wbn2y0562gm08yaq8dim1y52vvxvz6vxh3gpxgk95zrr0ll1s"
   },
   "stable": {
    "version": [
@@ -38592,32 +39341,32 @@
  },
  {
   "ename": "fullframe",
-  "commit": "13d1dc5c39543b65c6bb4150c3690211872c00dc",
-  "sha256": "08sh8lmb6g8asv28fcb36ilcn0ka4fc6ka0pnslid0h4c32fxp2a",
-  "fetcher": "github",
-  "repo": "tomterl/fullframe",
+  "commit": "9eb2ecf435ad197ed6636ee5fb101375aa76d5b0",
+  "sha256": "01vwijpy10gxjwz9zkd2ri2dzhidrqsihpy90kwb5ip9kbgc4jhr",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~tomterl/fullframe",
   "unstable": {
    "version": [
-    20201022,
-    939
+    20210226,
+    1057
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8cc4aebf4a1054812b34f9704c38c1616571078c",
-   "sha256": "13f1lhdsm2sx9h8k9iz3mv5xqfxkfwji2aa6855z0jwn8rqqzqsf"
+   "commit": "886b831c001b44ec95aec4ff36e8bc1b3003c786",
+   "sha256": "1q276p3bagx9fhzyzjmz449f95k1z287x4p34980d06klj11lrab"
   },
   "stable": {
    "version": [
     0,
     5,
-    0
+    1
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d6a5217f7f2a5a5edcb75140f3fa69b3a50f1cdd",
-   "sha256": "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"
+   "commit": "886b831c001b44ec95aec4ff36e8bc1b3003c786",
+   "sha256": "1q276p3bagx9fhzyzjmz449f95k1z287x4p34980d06klj11lrab"
   }
  },
  {
@@ -38730,19 +39479,19 @@
   "repo": "auto-complete/fuzzy-el",
   "unstable": {
    "version": [
-    20150730,
-    337
+    20210317,
+    140
    ],
-   "commit": "a36bde2f6e94d6b2bfaae68d73bbd39734e5b907",
-   "sha256": "1aj7r16bnx2jr2gpzwsmr3yqmfza5qbdcn78chcsfqxv5c8bgswa"
+   "commit": "edce468a3077d03ca63e1559f7ffebfa09c8effd",
+   "sha256": "126wbccdilqi7yf1w7z9gjr6zr4lmrrii6bz65jg5ffnpx8kj30d"
   },
   "stable": {
    "version": [
     0,
-    1
+    3
    ],
-   "commit": "939f4e9a3f08d83925b41dd3d23b2321f3f6b09c",
-   "sha256": "1g7my9ha5cnwg3pjwa86wncg5gphv18xpnpmj3xc3vg7z5m45rss"
+   "commit": "122939ee0a82efa1bcf405de3134debe34e4a0b6",
+   "sha256": "07kpixgqc6vky91bi7j4r0q78ccc3azydwmkaz4z7lr3ncbc6ymj"
   }
  },
  {
@@ -38920,25 +39669,25 @@
  },
  {
   "ename": "gams-mode",
-  "commit": "c895a716636b00c2a158d33aab18f664a8601833",
-  "sha256": "0hx9mv4sqskz4nn7aks64hqd4vn3m7b34abzhy9bnmyw6d5zzfci",
+  "commit": "0c7f6a46adc9bc4b256006e86653a77f8f891db6",
+  "sha256": "1qlzmrs8771cgp63agwr2j1826jck80420plqy704ckc24f85i00",
   "fetcher": "github",
   "repo": "ShiroTakeda/gams-mode",
   "unstable": {
    "version": [
-    20200131,
-    1335
+    20210227,
+    251
    ],
-   "commit": "bb4e8a223c8aac5ec9268d1cfcf1a9ea9b3d8a49",
-   "sha256": "084xjxj03d0ghh1lgrgwlkzf78y3szh47m3qva4r344yg0051yz3"
+   "commit": "52e984d64c48f518222e0f6bd326236f78d7bf7a",
+   "sha256": "0fjdm2mlwibi6cz0r7cm4ylxzg7i8fljkwfhflb84xqcaknwr2sk"
   },
   "stable": {
    "version": [
     6,
-    6
+    7
    ],
-   "commit": "bb4e8a223c8aac5ec9268d1cfcf1a9ea9b3d8a49",
-   "sha256": "084xjxj03d0ghh1lgrgwlkzf78y3szh47m3qva4r344yg0051yz3"
+   "commit": "52e984d64c48f518222e0f6bd326236f78d7bf7a",
+   "sha256": "0fjdm2mlwibi6cz0r7cm4ylxzg7i8fljkwfhflb84xqcaknwr2sk"
   }
  },
  {
@@ -39033,11 +39782,11 @@
   "repo": "godotengine/emacs-gdscript-mode",
   "unstable": {
    "version": [
-    20210104,
-    1919
+    20210131,
+    1551
    ],
-   "commit": "b53d56e467a77dfd6c26eec5b78e2241083b1408",
-   "sha256": "120yjlwf8pyrv5n0bdzxnr2lbppwgir4l8c128jq0cx3mbfamjlz"
+   "commit": "16c631cd6f2f2eeb11730442c9897008e1e10f7a",
+   "sha256": "1ygwvavwrhpjrgw58psawcwp01y8j0xhsvc2bywiz8a1d2pngn1q"
   },
   "stable": {
    "version": [
@@ -39134,11 +39883,11 @@
   "repo": "jaor/geiser",
   "unstable": {
    "version": [
-    20210103,
-    953
+    20210303,
+    1351
    ],
-   "commit": "c7a427edf33ab1ebdca7d3df67d740f97037a950",
-   "sha256": "0lvgmfwlmyxgbyqlw8c79q79ramws88s746nckz0qyy5fckx0ri3"
+   "commit": "8e61c27b628373523b7c467d5f71aac8c873258b",
+   "sha256": "1hnfyr4sbznmmqamk6zwwyq8z4a8vi628a0wfxmj8lyzjb2dqyi1"
   },
   "stable": {
    "version": [
@@ -39198,6 +39947,24 @@
   }
  },
  {
+  "ename": "geiser-mit",
+  "commit": "a327661f80b577f53ae8874ce9ab499d95c442c8",
+  "sha256": "1zbisdf8mw183qxx7khlfni31lp6airza8q8vvcp5frz277kk9cg",
+  "fetcher": "gitlab",
+  "repo": "emacs-geiser/mit",
+  "unstable": {
+   "version": [
+    20210308,
+    257
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "1caea838ddbbf3d8e0c6f39656f8ff3b445e371a",
+   "sha256": "0r3ycjcrqbfnlci31bzr7l4nqrfklj839k3ba0c19vfga8wyakfq"
+  }
+ },
+ {
   "ename": "gemini-mode",
   "commit": "4fd0ef91c2a4259d6e4e8833d687b6aeae14e65a",
   "sha256": "0a0g3rpvcixnch0903jggffv2wa4s9j91mfsga4yrvwlwzswz6rd",
@@ -39205,11 +39972,20 @@
   "url": "https://git.carcosa.net/jmcbray/gemini.el.git",
   "unstable": {
    "version": [
-    20201120,
-    2054
+    20210226,
+    1419
+   ],
+   "commit": "0a227125a4112266c06ed7247de039090314b525",
+   "sha256": "0fiix0ssaannim5kxpckhd5z6fssij3igv1dg9y7143dzxf274zz"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
    ],
-   "commit": "3b4bcc568ca9e537118f3b803f4218b0d57fee0b",
-   "sha256": "1lc2pgqjyanfwfykrg8a9d5kra4zihdvr612z9x927r16cj470ac"
+   "commit": "0a227125a4112266c06ed7247de039090314b525",
+   "sha256": "0fiix0ssaannim5kxpckhd5z6fssij3igv1dg9y7143dzxf274zz"
   }
  },
  {
@@ -39345,8 +40121,8 @@
   "repo": "thisch/gerrit.el",
   "unstable": {
    "version": [
-    20201216,
-    2245
+    20210219,
+    806
    ],
    "deps": [
     "dash",
@@ -39354,8 +40130,8 @@
     "magit",
     "s"
    ],
-   "commit": "00b0201cef4fd2ade108289a8444e1b354a882f6",
-   "sha256": "0k9bwxqd2zs3bbikqgfnshk7snycfxkzlipih4m0pcnpk1fdp6sv"
+   "commit": "19a8d6805541cede2523b70fa6601667b420f32f",
+   "sha256": "1aqcqyi4933p4cixrmjb2g1yghbdshir61q3l90igw6h6nfwbiiq"
   }
  },
  {
@@ -39416,18 +40192,18 @@
   "repo": "mkjunker/ggo-mode",
   "unstable": {
    "version": [
-    20130524,
-    1143
+    20210310,
+    1345
    ],
-   "commit": "e326899d9ed8217c7a4ea6cfdc4dd7aea61d6c1b",
-   "sha256": "0bwjiq4a4f5pg0ngvc3lmkk7aki8n9zqfa1dym0lk4vy6yfhcbhp"
+   "commit": "6a7617b5af3d13029e4d680a375e8107c40d0fac",
+   "sha256": "1l39j3vkjszn3xkg2dk7r8k4fy4hjn0gp5n3bm6wv25wc8946dx4"
   },
   "stable": {
    "version": [
-    20130521
+    20210310
    ],
-   "commit": "ea5097f87072309c7b77204888d459d084bf630f",
-   "sha256": "1m9ra9qp7bgf6anfqyn56n3xa9a25ran10k9wd355qknd5skq1zz"
+   "commit": "6a7617b5af3d13029e4d680a375e8107c40d0fac",
+   "sha256": "1l39j3vkjszn3xkg2dk7r8k4fy4hjn0gp5n3bm6wv25wc8946dx4"
   }
  },
  {
@@ -39507,37 +40283,6 @@
   }
  },
  {
-  "ename": "ghc",
-  "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
-  "sha256": "02nc7a9khqpd4ca2snam8dq72m53q8x7v5awx56bjq31z6vcmav5",
-  "fetcher": "github",
-  "repo": "DanielG/ghc-mod",
-  "unstable": {
-   "version": [
-    20180121,
-    1218
-   ],
-   "deps": [
-    "haskell-mode"
-   ],
-   "commit": "391e187a5dfef4421aab2508fa6ff7875cc8259d",
-   "sha256": "1z142vgv72yfly7nyknzlcpm51sx5zqi26by3c7g68dbb4dxhq57"
-  },
-  "stable": {
-   "version": [
-    5,
-    8,
-    0,
-    0
-   ],
-   "deps": [
-    "haskell-mode"
-   ],
-   "commit": "35690941aadbe44d9401102ab44a39753e0bb2b5",
-   "sha256": "0fcaxj2lhkhkm2h91d9fdqas2b99wblwl74l2y6ckpf05hrc4w1q"
-  }
- },
- {
   "ename": "ghc-imported-from",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "063kbymk4r1yrg5ks660d2byrnia6gs6nimjzrvqfi2ib1psc7jc",
@@ -39644,15 +40389,15 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20201211,
-    1717
+    20210227,
+    1925
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "5fae5e31586a11a2025168030e0eb3876502611c",
-   "sha256": "0i19h9zl8wky1296f0d7dcx9dpfmfixinnaf4l1w1bf4p2xmyfiw"
+   "commit": "f26c1f7e575209da047e77c18d415f9dc11015e2",
+   "sha256": "1cvsslki8nkfh7j7fy0j3f21mf0qc5cz7hv0dm3hw7k25wkrbvb9"
   },
   "stable": {
    "version": [
@@ -39843,6 +40588,21 @@
   }
  },
  {
+  "ename": "git-assembler-mode",
+  "commit": "5f909805296a0959a6317ac6714784854108cfde",
+  "sha256": "1i894n7vhd1r86sbrkf3yr4fv6nc8y5wgqvx42csc0441988cp38",
+  "fetcher": "gitlab",
+  "repo": "wavexx/git-assembler-mode.el",
+  "unstable": {
+   "version": [
+    20210207,
+    1545
+   ],
+   "commit": "1243bdc1a9cdc79802ece05c90731ee14e4f92c9",
+   "sha256": "1rc8z2r8lxzx836j7nk61snps8r0szzifg0inzfv3nb2z8bsiw0b"
+  }
+ },
+ {
   "ename": "git-attr",
   "commit": "3417e4bc586df60b5e6239b1f7683b87953f5b7c",
   "sha256": "084l3zdcgy1ka2wq1fz9d6ryhg38gxvr52njlv43gwibzvbqniyi",
@@ -39995,16 +40755,16 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210102,
-    1242
+    20210309,
+    1106
    ],
    "deps": [
     "dash",
     "transient",
     "with-editor"
    ],
-   "commit": "25f432551347468ce97b8b03987e59092e91f8f0",
-   "sha256": "0vxsh75xynpfkfvmyyz8x3rppbwr9rgk7zjfil2af2kzba3p27vl"
+   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
+   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
   },
   "stable": {
    "version": [
@@ -40097,11 +40857,11 @@
   "repo": "emacsorphanage/git-gutter",
   "unstable": {
    "version": [
-    20210109,
-    640
+    20210127,
+    1100
    ],
-   "commit": "5c2ae01562b3ff2def870ed822fd0869326977d6",
-   "sha256": "0bf12nfyhpvdbxajbwna2z19ii42ih8h4p8jrvgqvh0r3lhavdiw"
+   "commit": "cca61a1c6b0c0fd6ecb1b0366711c618581eabb6",
+   "sha256": "1q6qrrxa3mf3pkkqr8piaij3yrgqh48xrrn3a442wn2i427q63kc"
   },
   "stable": {
    "version": [
@@ -40287,20 +41047,20 @@
   "repo": "sshaw/git-link",
   "unstable": {
    "version": [
-    20201214,
-    2330
+    20210318,
+    313
    ],
-   "commit": "9a3e893751791b17db85d691444e50e346cb2bd3",
-   "sha256": "1jdgkjiv6pn2whim71fsyfady8lv180y56j9z6bfx3gg3pp2dcbd"
+   "commit": "2b510cf3f28bed842853294fc4ee23c7f8b6435a",
+   "sha256": "0c5p5llxlgi09lymjnh0jpp36v5vfmi6rjb77123gcnsqi0031wn"
   },
   "stable": {
    "version": [
     0,
     8,
-    2
+    3
    ],
-   "commit": "9a3e893751791b17db85d691444e50e346cb2bd3",
-   "sha256": "1jdgkjiv6pn2whim71fsyfady8lv180y56j9z6bfx3gg3pp2dcbd"
+   "commit": "f76bffd42fb4ed8ffe09d48c084f6577b0b99fa6",
+   "sha256": "0l7xmvmj5s93hc39wjjv75f22zbhahnmcxpmvx3dfvsbig9pmk75"
   }
  },
  {
@@ -40491,8 +41251,8 @@
     20180318,
     1956
    ],
-   "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
-   "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+   "commit": "14adca24eb6b0b4e311ad144c5d41972c6b044b2",
+   "sha256": "1z3xyjlbxni98hqdnd46lg89dcmcaqjsv73wv16ia4z6lrkhv5dp"
   },
   "stable": {
    "version": [
@@ -40539,8 +41299,8 @@
     20180318,
     1956
    ],
-   "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
-   "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+   "commit": "14adca24eb6b0b4e311ad144c5d41972c6b044b2",
+   "sha256": "1z3xyjlbxni98hqdnd46lg89dcmcaqjsv73wv16ia4z6lrkhv5dp"
   },
   "stable": {
    "version": [
@@ -40672,21 +41432,6 @@
   }
  },
  {
-  "ename": "github-issues",
-  "commit": "f761e76236e9372d5fae6b5c5dcb1992c5d64d37",
-  "sha256": "12c6yb3v7xwkzc51binfgl4jb3sm3al5nlrklbsxhn44alazsvb0",
-  "fetcher": "github",
-  "repo": "inkel/github-issues.el",
-  "unstable": {
-   "version": [
-    20160616,
-    1841
-   ],
-   "commit": "816f7712b0eb05bffec0add3507302862d2629c4",
-   "sha256": "1x6jbnx9lwgy64nl9lpp01xcj9cbx5fq435iwhiarjdsm4kvixb5"
-  }
- },
- {
   "ename": "github-modern-theme",
   "commit": "35763febad20f29320d459394f810668db6c3353",
   "sha256": "07xv4psw34mrpb1f5fsvj8vcm9k3xlm43zxr6qmj00p46b35z25r",
@@ -40752,8 +41497,8 @@
   "repo": "charignon/github-review",
   "unstable": {
    "version": [
-    20201012,
-    40
+    20210314,
+    2203
    ],
    "deps": [
     "a",
@@ -40762,8 +41507,8 @@
     "ghub",
     "s"
    ],
-   "commit": "db723740e02348c0760407e532ad667ef89210ec",
-   "sha256": "16d09z1p9ljpc6h2kj30qk6hrs5zgixxj7qrgi3i3kc5djcy2km0"
+   "commit": "341b7a1352e4ee1f1119756360ac0714abbaf460",
+   "sha256": "15lqiknl7ilskpy1s9qdfi0qjvrkvmj8nw110cf8ifwvvyxyqbhb"
   }
  },
  {
@@ -40842,8 +41587,8 @@
     20180318,
     1956
    ],
-   "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
-   "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+   "commit": "14adca24eb6b0b4e311ad144c5d41972c6b044b2",
+   "sha256": "1z3xyjlbxni98hqdnd46lg89dcmcaqjsv73wv16ia4z6lrkhv5dp"
   },
   "stable": {
    "version": [
@@ -41001,14 +41746,14 @@
   "repo": "TxGVNN/gitlab-pipeline",
   "unstable": {
    "version": [
-    20200903,
-    201
+    20210322,
+    439
    ],
    "deps": [
     "ghub"
    ],
-   "commit": "ecb3a2277f6a1c7fed73f9381834724c143c85da",
-   "sha256": "1nqrim3fpgf5npzl14sd0h6dlhi925hns2f75l4arrhbcjgcn984"
+   "commit": "089400ac1d411a2b58cf1a64f28911079d5c898f",
+   "sha256": "0zck5488fswqcl7ahknm6nan5al8db73p2jbxnwcv2cxcia81qza"
   },
   "stable": {
    "version": [
@@ -41190,15 +41935,29 @@
   "url": "https://git.launchpad.net/global-tags.el",
   "unstable": {
    "version": [
-    20201215,
-    1900
+    20210225,
+    1553
+   ],
+   "deps": [
+    "async",
+    "ht",
+    "project"
+   ],
+   "commit": "344d084ec5ff6c99b31c5ea57e5352c85b57ae26",
+   "sha256": "0x8m3srxhy0bdl6wqvi7m3q9jai73m5bavij1jwqhr3pc2caxzxm"
+  },
+  "stable": {
+   "version": [
+    0,
+    7
    ],
    "deps": [
     "async",
+    "ht",
     "project"
    ],
-   "commit": "8f46692749e05113d4d14870dd67c6efa06626c7",
-   "sha256": "1sjv3ydqv1gv2nqbdwywj52xc2b2ix9f8sjb14022v0bwywk3v2j"
+   "commit": "344d084ec5ff6c99b31c5ea57e5352c85b57ae26",
+   "sha256": "0x8m3srxhy0bdl6wqvi7m3q9jai73m5bavij1jwqhr3pc2caxzxm"
   }
  },
  {
@@ -41346,11 +42105,11 @@
   "repo": "juergenhoetzel/emacs-gnome-screencast",
   "unstable": {
    "version": [
-    20200115,
-    2230
+    20210125,
+    2001
    ],
-   "commit": "8c5e787230b2b8a51520ab970d5b505cbbc8f32f",
-   "sha256": "1zalx97b92vxjczm798arxyxhl29hla9c9j4da9ykpyspf3wry4d"
+   "commit": "6450ee470e84ff14a15c5c3c0489c79ff593f165",
+   "sha256": "0809psw8jz344hm4vzhapdr79l325dz57p88x509f8kq3fsvv44f"
   },
   "stable": {
    "version": [
@@ -41510,8 +42269,8 @@
   "repo": "deusmax/gnus-notes",
   "unstable": {
    "version": [
-    20210103,
-    2050
+    20210207,
+    1010
    ],
    "deps": [
     "async",
@@ -41522,8 +42281,8 @@
     "org",
     "s"
    ],
-   "commit": "8cacba653f8912355d45847c5e5376eb83e6898f",
-   "sha256": "11d98vasn74p7ifyw8qnyzm4na8l0pnbh7a04cr2znnwqjbnzd7s"
+   "commit": "1457bba34b40d5197aa14dbf0856925f83025ae1",
+   "sha256": "01jm2maa8q0zjpqa95c84k9b9jx5rgwvvhaqbwvw8ccz883mcdjm"
   },
   "stable": {
    "version": [
@@ -41552,11 +42311,11 @@
   "repo": "unhammer/gnus-recent",
   "unstable": {
    "version": [
-    20210107,
-    1346
+    20210115,
+    1107
    ],
-   "commit": "6f13a00c5736c269ed850094cfbc9ea474e24dfe",
-   "sha256": "1x91da1vb48hn2qqdn144gj9n2sas252llcf5jlqqkl8w5wk6z3i"
+   "commit": "52f05e7431b5ce5487e8a990eb2ad01cade973bc",
+   "sha256": "178b8l2f5ykrq1yllg9rmn1vsyp3aqslrga1gxx1rc4grx22x31z"
   },
   "stable": {
    "version": [
@@ -41972,8 +42731,8 @@
     "cl-lib",
     "go-mode"
    ],
-   "commit": "fdf46fe0e110a8e0dddb5aac4ab20a93ee9c5d88",
-   "sha256": "00986s42kfyyxzvlwd2wvllxqkmiq0iajj1wahpdnsbajrrk14sc"
+   "commit": "49a538028e63dbe20f428c52d91f09b70b564626",
+   "sha256": "1zmpbna0picp8iyscrqgvxz5pbkbpapzij0vprkqzfznvihn926n"
   },
   "stable": {
    "version": [
@@ -42065,11 +42824,11 @@
   "repo": "dominikh/go-mode.el",
   "unstable": {
    "version": [
-    20201204,
-    1652
+    20210201,
+    1458
    ],
-   "commit": "fdf46fe0e110a8e0dddb5aac4ab20a93ee9c5d88",
-   "sha256": "00986s42kfyyxzvlwd2wvllxqkmiq0iajj1wahpdnsbajrrk14sc"
+   "commit": "49a538028e63dbe20f428c52d91f09b70b564626",
+   "sha256": "1zmpbna0picp8iyscrqgvxz5pbkbpapzij0vprkqzfznvihn926n"
   },
   "stable": {
    "version": [
@@ -42188,8 +42947,8 @@
    "deps": [
     "go-mode"
    ],
-   "commit": "fdf46fe0e110a8e0dddb5aac4ab20a93ee9c5d88",
-   "sha256": "00986s42kfyyxzvlwd2wvllxqkmiq0iajj1wahpdnsbajrrk14sc"
+   "commit": "49a538028e63dbe20f428c52d91f09b70b564626",
+   "sha256": "1zmpbna0picp8iyscrqgvxz5pbkbpapzij0vprkqzfznvihn926n"
   },
   "stable": {
    "version": [
@@ -42391,11 +43150,11 @@
   "repo": "minad/goggles",
   "unstable": {
    "version": [
-    20210113,
-    1945
+    20210208,
+    124
    ],
-   "commit": "8b7d223eca9b26acb0e3eca4b58d39a3b933bf08",
-   "sha256": "1s0smkprlnmml4a2rqhzb81mz7dlxswnvqsn3wra4brbrs3almhi"
+   "commit": "b014b2414fad8bb3a9a7b6a7e765822887c28fe8",
+   "sha256": "1p3pagldf17mpyv0qmks5hq8y4q59bim0zh42p3b7c4y89nv7qw7"
   }
  },
  {
@@ -42528,11 +43287,11 @@
   "repo": "io12/good-scroll.el",
   "unstable": {
    "version": [
-    20210105,
-    903
+    20210123,
+    159
    ],
-   "commit": "beac144c37227d23e5ceefb8ce1f45aa484ca5c9",
-   "sha256": "1yv07vpgqla7nk0imn7dlzsv392jvhk3w63frvhcmijq5ciafc45"
+   "commit": "5d0479e5a0fe1589fe549f2fc1966f80a4718a4f",
+   "sha256": "046iimmkljbfcz66cj73cnizxn15hw7bzi3glls2h6vh8sxak7d7"
   },
   "stable": {
    "version": [
@@ -42570,8 +43329,8 @@
     20180130,
     1736
    ],
-   "commit": "d5b510476350b9ba99a83a7ceee114012f515394",
-   "sha256": "169aijgk0viyyq3s6sw6fl61ajw6gan9kwv2igawwki5ljfc2rkr"
+   "commit": "6e239d7f906ee456b926be229f3e4ee6bad53e42",
+   "sha256": "04mz13p5n6az94mq0mhd1zw7jdpf26sm4mk0p2r92vfy2xqnjqnd"
   }
  },
  {
@@ -42752,21 +43511,21 @@
   "repo": "nlamirault/gotest.el",
   "unstable": {
    "version": [
-    20191128,
-    1111
+    20210221,
+    1905
    ],
    "deps": [
     "f",
     "go-mode",
     "s"
    ],
-   "commit": "70f63eafda1f6a2f0a01a9320cc4d2edee9a17b2",
-   "sha256": "090xf2w5zgffndpjvg4qfdm77cpsc8vpr00h6j0skjpr3bni79cx"
+   "commit": "9b1dc4eba1b22d751cb2f0a12e29912e010fac60",
+   "sha256": "0693fcli1nv9mn60gh30xspwiwhab8vxf09i1s9yxs80ai712i12"
   },
   "stable": {
    "version": [
     0,
-    14,
+    15,
     0
    ],
    "deps": [
@@ -42774,8 +43533,8 @@
     "go-mode",
     "s"
    ],
-   "commit": "8a5ef7363f83edb3b77c5e23876f13dd8c23b2b9",
-   "sha256": "1ksi37kmy9mnrjr5lf9f0ga5nvi3r2kc85g6yvdfj0mbsjm1pnp7"
+   "commit": "9b1dc4eba1b22d751cb2f0a12e29912e010fac60",
+   "sha256": "0693fcli1nv9mn60gh30xspwiwhab8vxf09i1s9yxs80ai712i12"
   }
  },
  {
@@ -42786,11 +43545,11 @@
   "url": "https://depp.brause.cc/gotham-theme.git",
   "unstable": {
    "version": [
-    20200506,
-    1250
+    20210318,
+    2207
    ],
-   "commit": "a549cd031859e24fd37a779323e1542aefe86d43",
-   "sha256": "0smjajazr86r8f1szw1xdrinfbn455xhl6bbhyhhmrk6sw0pnc6n"
+   "commit": "51876a72dbe5a16aeadde2e885da6bbf75909bd1",
+   "sha256": "042cpdl7srfj1ha3z27xj03bzp3vrz6ql4x0zzvjxsyj08z1q80y"
   },
   "stable": {
    "version": [
@@ -42810,11 +43569,11 @@
   "repo": "jcs-elpa/goto-char-preview",
   "unstable": {
    "version": [
-    20200927,
-    509
+    20210323,
+    332
    ],
-   "commit": "6209973933bec4081145dbcb8e3e442cb29a8c52",
-   "sha256": "1ckpdgfr7da37fwx9pw0vc8bdcmbpdpygfn8gkwwmz3yjk3021h7"
+   "commit": "6ab5128c028aac3ae070ba8df041b8039487253a",
+   "sha256": "0d8dihhl7cn3afwhn09drymm7c5hsf8v2m6rvpq5z7nkskkjw80v"
   },
   "stable": {
    "version": [
@@ -42897,11 +43656,11 @@
   "repo": "jcs-elpa/goto-line-preview",
   "unstable": {
    "version": [
-    20210113,
-    616
+    20210323,
+    422
    ],
-   "commit": "605a182c389b60b11dad0738babc66d227a4ed23",
-   "sha256": "1p5bpb5870mkfqgx8dqapx6mvfc6h2g8hzngljd71i3b5idlxx0s"
+   "commit": "c83688ea95b4308145555fea50e953a26d67b1b2",
+   "sha256": "0hi4jikr5hk4v28790mw1rj1myvr1pwldy7wh3n8bajhqdhbr59v"
   },
   "stable": {
    "version": [
@@ -42930,14 +43689,14 @@
     "magit-popup",
     "s"
    ],
-   "commit": "c43a1c86c89e6e30e54d4a21b2d95c03c6ed0c4d",
-   "sha256": "0d43gkppk06w58xsawbnil83170k6h387jr5a4v48zy2amdq7rp2"
+   "commit": "7ce0a83a88e6cca59d10df0e7824739854558bd2",
+   "sha256": "0jhy8flny9dlddw8fhymxm7s5c9sl3yxnqh8icdwb9vhgq754wcy"
   },
   "stable": {
    "version": [
     0,
     24,
-    0
+    1
    ],
    "deps": [
     "dash",
@@ -42945,8 +43704,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "1ec59a7c0002598c594fb58e03907d7ff0ca84b4",
-   "sha256": "0bz01ybpj1lk7g34n6wwy53aaa4jvs3xhsv50y34z5wvxa8ypdsj"
+   "commit": "f49dcf5ec6e16562de30674b36b18e6bdcd47411",
+   "sha256": "1slw2pawlcx9zfvsazsir2kj32g30b80c7a0yiqyrd7cv1hjnr8g"
   }
  },
  {
@@ -43151,22 +43910,22 @@
  },
  {
   "ename": "grammarly",
-  "commit": "1bbf7e3434cea3d0f6f72747ea653188ce25f68f",
-  "sha256": "0h0gikvbyraflm921jmf2jkj1nfgxsdq1ybih449zbhxkvb494d4",
+  "commit": "6bfa47f73110bdf2ca1b223dbed16f73c08a12f2",
+  "sha256": "14cmvd50g3v7c6d96mqck4d0pbjvs92s4axkhwc9zw1h2sl4wni2",
   "fetcher": "github",
-  "repo": "jcs-elpa/grammarly",
+  "repo": "emacs-grammarly/grammarly",
   "unstable": {
    "version": [
-    20201028,
-    612
+    20210219,
+    1713
    ],
    "deps": [
     "request",
     "s",
     "websocket"
    ],
-   "commit": "cda079ea8e14455230108994c1bba53ba63a3bdc",
-   "sha256": "1c6c1bp23r6kpp5xk65njcc9prxgglkdzb9k4px961mbmc4s8hsl"
+   "commit": "e11a5a67307f05e08812be190b23460a1bf97687",
+   "sha256": "10ral5vipq3jvg3l8l2vgia97dpsjzkjvidp63n5z6mpjdwblka1"
   },
   "stable": {
    "version": [
@@ -43435,11 +44194,11 @@
   "repo": "fredcamps/green-is-the-new-black-emacs",
   "unstable": {
    "version": [
-    20200529,
-    242
+    20210203,
+    1511
    ],
-   "commit": "9b682c0000bc732e4c55e876ac968877eada0402",
-   "sha256": "0yilp68qw2a4z8b8mmr2yl2lmwkd3ibk6j5ix6x3vlcmfmrfl3bj"
+   "commit": "09f6908064dd1854379a072d7cdd706959256299",
+   "sha256": "1ad676aiyj0p8jxpmkb0mhfznd6hzpdliji56ix6sbj5jdyxm8jv"
   },
   "stable": {
    "version": [
@@ -43546,8 +44305,8 @@
     20200725,
     725
    ],
-   "commit": "7a37b76342ebcc30b08b1a6a7d8a043d7fede5b2",
-   "sha256": "0mcyj8g1d124zpif9m4x911d877fdf3hahdpp76grsvn2qpzq2az"
+   "commit": "98d566db769b865f102a0c6802a08ebce8ae5e7f",
+   "sha256": "0dh0a2msrbr31lzrp9b0xrp78g4h02qcsxjjzgmqyb6fqzhbr3kd"
   },
   "stable": {
    "version": [
@@ -43678,20 +44437,20 @@
   "repo": "ROCKTAKEY/grugru",
   "unstable": {
    "version": [
-    20210115,
-    646
+    20210127,
+    432
    ],
-   "commit": "7a3437feb777996dcb8f484b79e898cfdb714bfe",
-   "sha256": "0jfz54phg3db8cgp9sj1grvj3sf10jaq359024j72l71s5cqwmlx"
+   "commit": "4ac2bf3877e3af7d23ace3165b9c8ed536ff4832",
+   "sha256": "05nw45hgbygfvbymghsp425474d4nrgl8pjii8jwd1ym155bf13k"
   },
   "stable": {
    "version": [
     1,
-    17,
+    20,
     0
    ],
-   "commit": "6820ae3aa9203f5e23e0cd80f51b410aaf1d32f3",
-   "sha256": "0sf3lkdvqb55bin8bx5jd06ncqiy9lkx7mx5i8q27r8wmi58q7v6"
+   "commit": "e7f0fca4bfd4815e5ed794f13f89b1e28ce57d26",
+   "sha256": "15h1h5gg369h2dm9yp97ac6l5qajm7f9c0s2cgpymv21gyx2ikr5"
   }
  },
  {
@@ -43803,16 +44562,16 @@
   "repo": "wbolster/emacs-gsettings",
   "unstable": {
    "version": [
-    20190513,
-    1003
+    20210208,
+    2042
    ],
    "deps": [
     "dash",
     "gvariant",
     "s"
    ],
-   "commit": "3009335a077636347defd08d24fb092495d16d3e",
-   "sha256": "0xvj0p533laxvhv9jvgdzw5pix6zlai3jp43n2bi0kwmq21clwgz"
+   "commit": "1bd1909a22121a8200cca678302f1533856b9008",
+   "sha256": "1g195dg359iff4cq5ywwd5jjxwhvwd4qj6j8631g7wkjz1rx7bxb"
   },
   "stable": {
    "version": [
@@ -43908,14 +44667,14 @@
   "repo": "tmalsburg/guess-language.el",
   "unstable": {
    "version": [
-    20201229,
-    1021
+    20210308,
+    1514
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "afbc3456ebdfe4bb5f8754a91c8398f8b5b7636c",
-   "sha256": "1x0f3v98p6lxb31rgkv2a9kr5jqrmvpsa7nqr960s41rkyx4wvi6"
+   "commit": "7e511d23ee4315a79081c53596398c471572fb0f",
+   "sha256": "03bm6j8d1v5z1gz1chlpp7s3jzi0lnq6nqdw8r7z1ik5si59dvj5"
   }
  },
  {
@@ -43990,8 +44749,8 @@
   "repo": "alezost/guix.el",
   "unstable": {
    "version": [
-    20201222,
-    907
+    20210224,
+    1601
    ],
    "deps": [
     "bui",
@@ -44000,8 +44759,8 @@
     "geiser",
     "magit-popup"
    ],
-   "commit": "bb2a0539f8d68b2292b3d0f3174c139b4c304028",
-   "sha256": "1qf584slf4lqg4qgxj7vblmx0f0jgas03m5cc93a3wfkgkfm19w6"
+   "commit": "8ce6d219e87c5097abff9ce6f1f5a4293cdfcb31",
+   "sha256": "0awbd8x154c4dk4av7inpgd63n07xzng84vvc8qckmgljknc0j7k"
   },
   "stable": {
    "version": [
@@ -44173,8 +44932,8 @@
    "deps": [
     "s"
    ],
-   "commit": "9079bc333e715a13e57ab366522b15d0307e32cd",
-   "sha256": "0qigmp1fwphp909vq0h4kj5m97knnwjvjw3w9d1i074gwdq54j9g"
+   "commit": "847fd910e9d0ac76e2cfeb87512e6923a39d7d5f",
+   "sha256": "1h2j1gbs47l5njny174146b2naf1wv3bgwv932abhjamj7vl06mq"
   },
   "stable": {
    "version": [
@@ -44220,20 +44979,20 @@
   "repo": "clarete/hackernews.el",
   "unstable": {
    "version": [
-    20201019,
-    5
+    20210226,
+    1226
    ],
-   "commit": "c793275565372f63bf9dc1229d5b893a5bd0278e",
-   "sha256": "1fld3q2j58ka130v7gqm24ngw5ghy9vk63141y7bkjs5zb8mahpl"
+   "commit": "cea521750eddb3a70ccd38789d12b09bbdc7e906",
+   "sha256": "0mc9v8az97kap11f8np55xkbrl4mbiy6jfg76jaagkdsfizqpx5a"
   },
   "stable": {
    "version": [
     0,
     6,
-    0
+    1
    ],
-   "commit": "aec997970f2c2f8e0077c1f6584e4d1996ae3864",
-   "sha256": "15asarr271p582xbmhvhh9q0lgka25h6k65xh82rqvig4mirhn1l"
+   "commit": "c9c2bb0f13f5bd64c74dbdf945d9613192c0e454",
+   "sha256": "17lkjcka6ydd6khhz5jbjlybfpx05153z0d8s1rxaxcwl7z2y6cf"
   }
  },
  {
@@ -44615,11 +45374,11 @@
   "repo": "haskell/haskell-mode",
   "unstable": {
    "version": [
-    20201230,
-    342
+    20210325,
+    2112
    ],
-   "commit": "3a019e65b504861d7ea23afbfecd14e5ef63e846",
-   "sha256": "011x9mp4ili0g9dq6ql33dq7xgv479di37phai0q282hkh5487q0"
+   "commit": "1baa12abfa2c81128e5b13d1351f2978a4a54b4f",
+   "sha256": "12lalrjbf018wkc40pqmpc2jrm64avk0smkili4cqkhspcidci8s"
   },
   "stable": {
    "version": [
@@ -44638,15 +45397,15 @@
   "repo": "haskell/haskell-snippets",
   "unstable": {
    "version": [
-    20160919,
-    22
+    20210228,
+    344
    ],
    "deps": [
     "cl-lib",
     "yasnippet"
    ],
-   "commit": "07b0f460b946fd1be26c29652cb0468b47782f3a",
-   "sha256": "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"
+   "commit": "1c29c4a68ce89848b8d371c6510d1de3b586c8b3",
+   "sha256": "1lwnggarmavyf164cfzbzzkq9ffahhd3bz7gw644czs49sndcawf"
   },
   "stable": {
    "version": [
@@ -44695,8 +45454,8 @@
     20181110,
     1859
    ],
-   "commit": "f33ba22a6e5060fb14c9fd3dda728d6724f2f9dd",
-   "sha256": "1lmr8j2g7v3jn2q9h65c7qhzzk4asz0mlqarnl2h0g7xjk0wmi6z"
+   "commit": "57e8ac22bd499b632ab94657b855c7c43b166dda",
+   "sha256": "11792hjxfsnkfwj3q2v6d090x6klf5g257dd75casnsadrlbka2b"
   }
  },
  {
@@ -44949,30 +45708,30 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20210114,
-    1521
+    20210326,
+    1959
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "d0073fd556e5e2296b4fea824929dfab9b1895b8",
-   "sha256": "0wz12f190vsp71bcwygvagksqfihm85rj80bc4a3sx96wyrdjbqm"
+   "commit": "98af298c517148fbb31774a548c85ecdc1bcf8ab",
+   "sha256": "0gdi08krvk648fq4hk2b3aiks6plff9cpixghwsgin6rl3k33h67"
   },
   "stable": {
    "version": [
     3,
     7,
-    0
+    1
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "5ad6c83681fda7bfd5a745fedecaa924630253dd",
-   "sha256": "0lxq13bsbh7xawgsq08kjm7s28x9yl8mid3538flv5kcc1rv2b9y"
+   "commit": "8b0b9953a71ba07c24fdfc4d26fab21fb66e4d1f",
+   "sha256": "0b8sfpvy02ijk9xi9b44762b718jqfq063wcg75dk3q452d27s1h"
   }
  },
  {
@@ -45045,26 +45804,6 @@
   }
  },
  {
-  "ename": "helm-addressbook",
-  "commit": "4bb805b0f2d2055aa4e88bd41239d75ec34f5785",
-  "sha256": "1d8byi6sr5gz1rx3kglnkp47sn9dqdd83s12d84wyay06ix3cqqi",
-  "fetcher": "github",
-  "repo": "emacs-helm/helm-addressbook",
-  "unstable": {
-   "version": [
-    20170903,
-    728
-   ],
-   "deps": [
-    "addressbook-bookmark",
-    "cl-lib",
-    "helm"
-   ],
-   "commit": "62497f72d46afd3a9f9f94b27d062a82fb232de4",
-   "sha256": "1lmq7j19qv3pabs5arapx3lv2xhf0sgn4b2hl0l0kzph52fvics7"
-  }
- },
- {
   "ename": "helm-ag",
   "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
   "sha256": "0jzfycbaz88r6scsiw74prcnbvilsaphljdys6i5k9g5rhn5sxh5",
@@ -45072,14 +45811,14 @@
   "repo": "emacsorphanage/helm-ag",
   "unstable": {
    "version": [
-    20200915,
-    1650
+    20210305,
+    334
    ],
    "deps": [
     "helm"
    ],
-   "commit": "db52f860b50aa4d5edfa1c6c97802d36aef7f78b",
-   "sha256": "1l95vskrvk88a2glpn2pdylcpy7qxqg5qgmjnh9w24xfyc77g513"
+   "commit": "51e164b4bb1a9826fe8b39c0d02b4064c9352b9f",
+   "sha256": "0371s2y06pipjn0ka8c1a0r6g8migz5sbm8hqqilng1cr1dm3x7a"
   },
   "stable": {
    "version": [
@@ -45119,14 +45858,14 @@
   "repo": "emacs-helm/helm-apt",
   "unstable": {
    "version": [
-    20200823,
-    1546
+    20210324,
+    1929
    ],
    "deps": [
     "helm"
    ],
-   "commit": "42923e367f6ccc1c94b1a5c070993e0ad96c9ea3",
-   "sha256": "1q5pxd0vjxqrvk0gf0nxbc9b77xidaijkddh6zz3j7fbjmzyrp4x"
+   "commit": "c952b5dc26015bc9c947973df99246212d276b63",
+   "sha256": "0k095s738vv3cgvs1p40ivh68kaslc0xb5kplxp67ic89rg49w9i"
   },
   "stable": {
    "version": [
@@ -45271,8 +46010,8 @@
     "cl-lib",
     "helm"
    ],
-   "commit": "94807a3d3419f90b505eddc3272e244475eeb4f2",
-   "sha256": "08wfvqdzs05bmfjjaqfxffjbl4j7632bnpncs9khrh6lifz03xh2"
+   "commit": "ca09076c3d6e51cc4ffe208c8176fccf3710fcc6",
+   "sha256": "1jf2zapmkg2fdn9ldq8cn3aw02iqpjh26h6yjj93q3h0clsk5ia2"
   },
   "stable": {
    "version": [
@@ -45877,26 +46616,26 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20210105,
-    504
+    20210324,
+    1445
    ],
    "deps": [
     "async"
    ],
-   "commit": "d0073fd556e5e2296b4fea824929dfab9b1895b8",
-   "sha256": "0wz12f190vsp71bcwygvagksqfihm85rj80bc4a3sx96wyrdjbqm"
+   "commit": "98af298c517148fbb31774a548c85ecdc1bcf8ab",
+   "sha256": "0gdi08krvk648fq4hk2b3aiks6plff9cpixghwsgin6rl3k33h67"
   },
   "stable": {
    "version": [
     3,
     7,
-    0
+    1
    ],
    "deps": [
     "async"
    ],
-   "commit": "5ad6c83681fda7bfd5a745fedecaa924630253dd",
-   "sha256": "0lxq13bsbh7xawgsq08kjm7s28x9yl8mid3538flv5kcc1rv2b9y"
+   "commit": "8b0b9953a71ba07c24fdfc4d26fab21fb66e4d1f",
+   "sha256": "0b8sfpvy02ijk9xi9b44762b718jqfq063wcg75dk3q452d27s1h"
   }
  },
  {
@@ -46171,26 +46910,6 @@
   }
  },
  {
-  "ename": "helm-elscreen",
-  "commit": "dfe42a7fe2dc051c6c49aa75bce89bfe1b5fdbbb",
-  "sha256": "186k66kf2ak2ihha39989cz1aarqrvbgp213y1fwh9qsn1kxclnd",
-  "fetcher": "github",
-  "repo": "emacs-helm/helm-elscreen",
-  "unstable": {
-   "version": [
-    20170709,
-    914
-   ],
-   "deps": [
-    "cl-lib",
-    "elscreen",
-    "helm"
-   ],
-   "commit": "b8212866939dc4a1e1dc23ad572407b688e130e3",
-   "sha256": "0gy6lbdngiwfl9vfw32clagbmv70f93slc9zkm3dz3mca37435kz"
-  }
- },
- {
   "ename": "helm-emmet",
   "commit": "acbc5e9fab159ad2d63b10c0fa6ac18636bb2379",
   "sha256": "1dkn9qa3dv2im11lm19wfh5jwwwp42sv7jc0p6qg35rhzwdpfg03",
@@ -46404,15 +47123,15 @@
   "repo": "emacs-helm/helm-exwm",
   "unstable": {
    "version": [
-    20200325,
-    1022
+    20210215,
+    858
    ],
    "deps": [
     "exwm",
     "helm"
    ],
-   "commit": "00ddb4d2a127087a0b99f0a440562bd54408572d",
-   "sha256": "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"
+   "commit": "5b35a42ff10fbcbf673268987df700ea6b6288e8",
+   "sha256": "1j7a3jn1599cy7n2q42vqc9kwz252k018vy3sbj8a8v0cz2xvy5z"
   },
   "stable": {
    "version": [
@@ -46743,40 +47462,6 @@
   }
  },
  {
-  "ename": "helm-ghc",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "0bv0sfpya1jyay9p80lv0w6h9kdp96r8lnp6nj15w660p1b51c0d",
-  "fetcher": "github",
-  "repo": "david-christiansen/helm-ghc",
-  "unstable": {
-   "version": [
-    20141105,
-    1459
-   ],
-   "deps": [
-    "cl-lib",
-    "ghc",
-    "helm"
-   ],
-   "commit": "e5ee7b8d3b745d162553aecfbd41381c4de85f35",
-   "sha256": "16p1gisbza48qircsvrwx020n96ss1c6s68d7cgqqfc0bf2467is"
-  },
-  "stable": {
-   "version": [
-    0,
-    1,
-    0
-   ],
-   "deps": [
-    "cl-lib",
-    "ghc",
-    "helm"
-   ],
-   "commit": "d3603ee18299b789be255297dc42af16dd431869",
-   "sha256": "00ls9v3jdpz3wka90crd193z3ipwnf1b0slmldn4vb9ivrndh6wn"
-  }
- },
- {
   "ename": "helm-ghq",
   "commit": "e94eec646def7c77b15f6a6ac1841200848e62c7",
   "sha256": "14f3cbsj7jhlhrp561d8pasllnx1cmi7jk6v2fja7ghzj76dnvq6",
@@ -47230,16 +47915,16 @@
   "repo": "yyoncho/helm-icons",
   "unstable": {
    "version": [
-    20200719,
-    1359
+    20210315,
+    1339
    ],
    "deps": [
     "dash",
     "f",
     "treemacs"
    ],
-   "commit": "d8c15dc61c1f321686b447e83abb17e14bc6f1c6",
-   "sha256": "0na4nks6l7917r64rc49b38lwsdj7wvslnnikms92882z5c8c6nn"
+   "commit": "7e8d1e213a164aa63b868e610ef8a4fd1ff58769",
+   "sha256": "0g5n9f8vfv3zbylxh6w2xrym4fzd4jqx5n4g6gjp8sscaw5zaxkd"
   }
  },
  {
@@ -47466,16 +48151,16 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20200620,
-    915
+    20210305,
+    1705
    ],
    "deps": [
     "dash",
     "helm",
     "lean-mode"
    ],
-   "commit": "cc1f5fadf8e9ae08aa25828985edc97df04d94a7",
-   "sha256": "0v03bisr0ljk1ypbicgh9izxwazz8ry5xcd7r1lqb339xqb0bzqb"
+   "commit": "5c50338ac149ca5225fc737be291db1f63c45f1d",
+   "sha256": "13vrg0pp7ca0lh4j9cyg4pgfnbvf2kvbrgvvcmn1h7l9py2n8alj"
   }
  },
  {
@@ -47542,14 +48227,14 @@
   "repo": "emacs-helm/helm-ls-git",
   "unstable": {
    "version": [
-    20200519,
-    912
+    20210324,
+    1515
    ],
    "deps": [
     "helm"
    ],
-   "commit": "4da1a53f2f0a078ee2e896a914a1b19c0bf1d5ed",
-   "sha256": "12fi08w20yjsdfkxl1pk9q4w0z9l92va5fa5ghay9w33xlymc8dc"
+   "commit": "48696448e52d266f5b2cb5ee1390071dab4d16e8",
+   "sha256": "1nhza9af2xfwq1idk4g69kr4wyyf9samk3vi40jvkfnwap4w3ip4"
   },
   "stable": {
    "version": [
@@ -47621,16 +48306,16 @@
   "repo": "emacs-lsp/helm-lsp",
   "unstable": {
    "version": [
-    20200910,
-    518
+    20210226,
+    2027
    ],
    "deps": [
     "dash",
     "helm",
     "lsp-mode"
    ],
-   "commit": "fc09aa0903ee6abe4955e9a6062dcea667ebff5a",
-   "sha256": "1gcs6aky8h6g9wkrqjl8j50zm4lnvnjv4xcfxxg2z0j7vln81pbx"
+   "commit": "74a02f89088484c42ffc184ece338b73abd4d6f6",
+   "sha256": "1p130xj03wh3pqwf1bb3xl86pqnv1kpmn90mwfg0g52jwl0grv6b"
   },
   "stable": {
    "version": [
@@ -47858,8 +48543,8 @@
     "helm",
     "nixos-options"
    ],
-   "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
-   "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+   "commit": "053a2d5110ce05b7f99bcc2ac4804b70cbe87916",
+   "sha256": "05vxac2llww4ba5w0dmf0hza60l5i847hfabs0q5i8kzmw4f8s8z"
   },
   "stable": {
    "version": [
@@ -47945,14 +48630,14 @@
   "repo": "emacs-helm/helm-org",
   "unstable": {
    "version": [
-    20200311,
-    633
+    20210324,
+    1927
    ],
    "deps": [
     "helm"
    ],
-   "commit": "b7a18dfc17e8b933956d61d68c435eee03a96c24",
-   "sha256": "0sbk8c05v28xz7mdpzrlawn5iwf3hkkr1fj8lsi861l4fhjbmcap"
+   "commit": "d67186d3a64e610c03a5f3d583488f018fb032e4",
+   "sha256": "07wsz9hbv83m3k03cxvlr2hxd2lkxx9qpphn9j6axmysi9i5bc8q"
   },
   "stable": {
    "version": [
@@ -47974,18 +48659,19 @@
   "repo": "akirak/org-multi-wiki",
   "unstable": {
    "version": [
-    20210111,
-    1022
+    20210228,
+    1853
    ],
    "deps": [
     "dash",
     "helm",
     "helm-org-ql",
+    "org",
     "org-multi-wiki",
     "org-ql"
    ],
-   "commit": "c9005cbe4077cce3743b680dec97c11fa179bb36",
-   "sha256": "1428lky09cvlqdb8b9zf0x49cxmigrkhvhi391b2mj2qzgmjzcvm"
+   "commit": "bf8039aadddaf02569fab473f766071ef7e63563",
+   "sha256": "0hmn9yy2d7wy6zz81ddd96rksmvs9k5529dfqrkrpl4v3bn3g52d"
   },
   "stable": {
    "version": [
@@ -48176,29 +48862,29 @@
   "repo": "emacs-helm/helm-pass",
   "unstable": {
    "version": [
-    20190315,
-    1335
+    20210221,
+    1655
    ],
    "deps": [
     "auth-source-pass",
     "helm",
     "password-store"
    ],
-   "commit": "ed5798f2d83937575e8f23fde33323bca9e85131",
-   "sha256": "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"
+   "commit": "4ce46f1801f2e76e53482c65aa0619d427a3fbf9",
+   "sha256": "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"
   },
   "stable": {
    "version": [
     0,
-    3
+    4
    ],
    "deps": [
     "auth-source-pass",
     "helm",
     "password-store"
    ],
-   "commit": "ed5798f2d83937575e8f23fde33323bca9e85131",
-   "sha256": "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"
+   "commit": "4ce46f1801f2e76e53482c65aa0619d427a3fbf9",
+   "sha256": "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"
   }
  },
  {
@@ -48771,8 +49457,8 @@
     "helm",
     "rtags"
    ],
-   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
-   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
+   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
+   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
   },
   "stable": {
    "version": [
@@ -48897,8 +49583,8 @@
   "repo": "emacs-helm/helm-searcher",
   "unstable": {
    "version": [
-    20210108,
-    1818
+    20210221,
+    923
    ],
    "deps": [
     "f",
@@ -48906,14 +49592,14 @@
     "s",
     "searcher"
    ],
-   "commit": "d27c7cafc79b6e5e11881014eee9817e3897762f",
-   "sha256": "117m2c8ms66gqwsxgdwywx166bif2i2y5dgq1w0yw5j4h02q3ji7"
+   "commit": "181f60cb8505aec05393a9dbf414733d19f76d2a",
+   "sha256": "06bnnbay56ngiddkvvwmy3fv4v2gjss8gm7gjcp2064m9njgw5mx"
   },
   "stable": {
    "version": [
     0,
     2,
-    4
+    5
    ],
    "deps": [
     "f",
@@ -48921,8 +49607,8 @@
     "s",
     "searcher"
    ],
-   "commit": "7b3016faeca201843d849c00d11665a90c1709fb",
-   "sha256": "07whjqsi7jq4i3fypzasq2iivsj025x3701wfgsj2f02xyvgfk4p"
+   "commit": "3c0e4997126b5e7ba2db2dba8f1dbc5cb92d2459",
+   "sha256": "1fcinlxrvzmlrn17gfpv3n2wf9si084p6yi3jg0jzagnprris8lx"
   }
  },
  {
@@ -48952,25 +49638,26 @@
   "repo": "emacs-helm/helm-selector",
   "unstable": {
    "version": [
-    20201219,
-    1639
+    20210125,
+    857
    ],
    "deps": [
     "helm"
    ],
-   "commit": "6a943b9952c749c2a83c284cfcf5b56f5f6622ad",
-   "sha256": "0msc8byspjd0ygpbnxkiv2g9qv5kxpcp2vh2sjg7yxrfbishj8hq"
+   "commit": "4da4711c4cfd14527abe20d66787beeb49171b26",
+   "sha256": "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"
   },
   "stable": {
    "version": [
     0,
-    5
+    6,
+    1
    ],
    "deps": [
     "helm"
    ],
-   "commit": "7542a6dffe338db8109b0233e4d4c8f4b22354a0",
-   "sha256": "1cv659sqmrvk316fp7mjc58vvbcg1j6s2q4rwgqrpbyszrxl3i63"
+   "commit": "4da4711c4cfd14527abe20d66787beeb49171b26",
+   "sha256": "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"
   }
  },
  {
@@ -48992,6 +49679,24 @@
   }
  },
  {
+  "ename": "helm-shell-history",
+  "commit": "93d2ca7bf89a96a8a2eac59d2a34d8f152fa9752",
+  "sha256": "1krb7i00rf9dwq9pq8zppiyhhahpk661qbg8hazg7bpsb58kxy8r",
+  "fetcher": "github",
+  "repo": "anoopemacs/helm-shell-history",
+  "unstable": {
+   "version": [
+    20210214,
+    948
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "0c861f3db721e54053fc65f5651cf548cc1cb600",
+   "sha256": "00dkwym5xkvxa3w4dgpbk22rhrwl7v73cv6ay3pqcv7rjcc2m3s8"
+  }
+ },
+ {
   "ename": "helm-slime",
   "commit": "c35d43a7a8219de4a7f675147f598966aaecb9db",
   "sha256": "0qv4c1dd28zqbjxpshga967szrh75a4k51n4x86xkbax7ycca4hh",
@@ -49033,30 +49738,30 @@
   "repo": "emacs-helm/helm-sly",
   "unstable": {
    "version": [
-    20210114,
-    1928
+    20210205,
+    1424
    ],
    "deps": [
     "cl-lib",
     "helm",
     "sly"
    ],
-   "commit": "7fbd6544511d8669c8122b6a9128fd09e835c3fe",
-   "sha256": "061qihf8fwka7jpcvn1z76rcjbipfri41xfkn17i7pg4nzmqhaaw"
+   "commit": "3691626c80620e992a338c3222283d9149f1ecb5",
+   "sha256": "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"
   },
   "stable": {
    "version": [
     0,
-    5,
-    1
+    7,
+    2
    ],
    "deps": [
     "cl-lib",
     "helm",
     "sly"
    ],
-   "commit": "ccf8e83644bc1b2113eab46693e64d3f0c56198f",
-   "sha256": "13s2dj09mcdwlibjlahyyq2dxjkjlpxs88dbdyvcd64249jmahsx"
+   "commit": "3691626c80620e992a338c3222283d9149f1ecb5",
+   "sha256": "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"
   }
  },
  {
@@ -49203,26 +49908,26 @@
   "repo": "emacs-helm/helm-switch-to-repl",
   "unstable": {
    "version": [
-    20201214,
-    1216
+    20210206,
+    844
    ],
    "deps": [
     "helm"
    ],
-   "commit": "e6cae905c9d224bcca02437696afae7d6633c4a9",
-   "sha256": "1zwzpar34b98p0fiwy9q1bxrb67nv79pv9cz4kmyypclrmrhgqa2"
+   "commit": "f0e732e7217fc0373b0805245fa15920cf676619",
+   "sha256": "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"
   },
   "stable": {
    "version": [
     0,
     1,
-    1
+    2
    ],
    "deps": [
     "helm"
    ],
-   "commit": "e6cae905c9d224bcca02437696afae7d6633c4a9",
-   "sha256": "1zwzpar34b98p0fiwy9q1bxrb67nv79pv9cz4kmyypclrmrhgqa2"
+   "commit": "f0e732e7217fc0373b0805245fa15920cf676619",
+   "sha256": "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"
   }
  },
  {
@@ -49483,16 +50188,16 @@
   "repo": "emacs-helm/helm-w3m",
   "unstable": {
    "version": [
-    20181029,
-    726
+    20210315,
+    723
    ],
    "deps": [
     "cl-lib",
     "helm",
     "w3m"
    ],
-   "commit": "c15d926631198d6d759ec8881837bcca5a64963b",
-   "sha256": "0qaqcwhwmckfmg3axiad35azn0l74k1niw4ix0v1bn2vqrxanqcw"
+   "commit": "0a25a2b1df9bc660a90d633beb301b3815556e4e",
+   "sha256": "0cdfk1r2rcc5hflwjpmsijss6xf5lwzn7x68jq4b4xdlckkqf9d7"
   },
   "stable": {
    "version": [
@@ -49682,18 +50387,17 @@
   "repo": "Wilfred/helpful",
   "unstable": {
    "version": [
-    20201012,
-    614
+    20210319,
+    802
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "elisp-refs",
     "f",
     "s"
    ],
-   "commit": "584ecc887bb92133119f93a6716cdf7af0b51dca",
-   "sha256": "04kk8rrkgkggjxqppivc4dbn13dkc786dv0masby0wy58vlxpsfv"
+   "commit": "7e4b1f0d5572a4e2b8ee7a9b084ef863d0315a73",
+   "sha256": "0qrz3klqs94aj6bxh49qymf9fvpa73xpp6djkxwpypgb2wv8hk6n"
   },
   "stable": {
    "version": [
@@ -49833,14 +50537,14 @@
   "repo": "jojojames/hg-histedit",
   "unstable": {
    "version": [
-    20190707,
-    11
+    20210302,
+    2334
    ],
    "deps": [
     "with-editor"
    ],
-   "commit": "2448d00bc390fed3e53091d968ec1222c8e7e35b",
-   "sha256": "0qp29yiyplv8h0z2yk5h0473a7nj401h14gi3fqsxqq9brx3s9jy"
+   "commit": "a05149483b9c5f7848ece0ba6028c900595a6a25",
+   "sha256": "04zps0d4s99f5a8ahrpyf8b6qw0c1y7rd1bsaq9nc6m4qblsvwc8"
   }
  },
  {
@@ -49851,11 +50555,11 @@
   "repo": "omajid/hgignore-mode",
   "unstable": {
    "version": [
-    20160501,
-    7
+    20210314,
+    431
    ],
-   "commit": "7aa9f3b8a9c610dbd80b952061b40194e1d9c5bd",
-   "sha256": "0l22sqi9lmy25idh231p0hgq22b3dxwb9wq60yxk8dck9zlkv7rr"
+   "commit": "2c5aa4c238848f5b4f2955afcfb5f21ea513653b",
+   "sha256": "0jn9rzhrmmv4lf7rdapdjclk6623d1mir2lq3c46428skhzjlph7"
   }
  },
  {
@@ -49897,6 +50601,30 @@
   }
  },
  {
+  "ename": "hiccup-cli",
+  "commit": "524a84be8692bd29b93e4897467e2e798be5fa53",
+  "sha256": "0xv6bq2ryz71lqqm1z6wg0lf1qmqwydg17zi614dsajsa5xhrjkb",
+  "fetcher": "github",
+  "repo": "kwrooijen/hiccup-cli",
+  "unstable": {
+   "version": [
+    20210208,
+    652
+   ],
+   "commit": "b56ae0d5cd5ce3ef24ed13be5103e231c91ef4e2",
+   "sha256": "0cl84mlgrjwjxgk2kx4930rarxyc6n07lvy54gmb907i4l6flw61"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "commit": "cfbb957a1f86bc1d28e778bfdffdeaaa2ae79286",
+   "sha256": "0f3b7wsq9b0xswvj4073ykkcc36kybz16bz4q068qziig22d9szb"
+  }
+ },
+ {
   "ename": "hide-lines",
   "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
   "sha256": "18h5ygi6idpb5wjlmjjvjmwcw7xiljkfxdvq7pm8wnw75p705x4d",
@@ -50151,11 +50879,11 @@
   "repo": "antonj/Highlight-Indentation-for-Emacs",
   "unstable": {
    "version": [
-    20201110,
-    1327
+    20210221,
+    1418
    ],
-   "commit": "4fc4e346c17e4e975a8c8ece3d4e7240357e2869",
-   "sha256": "1laj0h8vm058miwv0pl8hsh5pyfg98h4y9szzq03ilry4ifx9jz5"
+   "commit": "d88db4248882da2d4316e76ed673b4ac1fa99ce3",
+   "sha256": "02a3r3f6nd37yx1gsr6nv168wmx5r5c7b47a5r5fw16d2zlkfmix"
   },
   "stable": {
    "version": [
@@ -50229,10 +50957,10 @@
  },
  {
   "ename": "highlight-parentheses",
-  "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
-  "sha256": "1d38wxk5bwblddr74crzwjwpgyr8zgcl5h5ilywg35jpv7n66lp5",
-  "fetcher": "github",
-  "repo": "tsdh/highlight-parentheses.el",
+  "commit": "40bb1119bea79bb9e91378c99e2aa60936de013a",
+  "sha256": "0ly9d01ja517psf1sqg12wyljykixi5c6qbhahyjy7n331kkpkmr",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~tsdh/highlight-parentheses.el",
   "unstable": {
    "version": [
     20210104,
@@ -50241,8 +50969,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "013ac29970d5209c14da0af6c5bb9bbbcca40c02",
-   "sha256": "01p8j248vcmbcdskr3146ag979c0m74gddy3yzp3x8hz9a4mgqx0"
+   "commit": "723abf9b6092d7e19548316de1f907ed0d67c780",
+   "sha256": "1kkxxq5cw090vw3cddzdq51f208vxw326hsqb1zi8f6z3vsm2h7s"
   },
   "stable": {
    "version": [
@@ -50303,11 +51031,11 @@
   "repo": "zk-phi/highlight-stages",
   "unstable": {
    "version": [
-    20161212,
-    1457
+    20210306,
+    418
    ],
-   "commit": "29cbc5b78261916da042ddb107420083da49b271",
-   "sha256": "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"
+   "commit": "95daa710f3d8fc83f42c5da38003fc71ae0da1fc",
+   "sha256": "0yhwsbpnlsfnbppviwnn0y3gm02rds684841301sbmawplz457z7"
   }
  },
  {
@@ -50392,26 +51120,26 @@
   "repo": "mihaimaruseac/hindent",
   "unstable": {
    "version": [
-    20200904,
-    2236
+    20210201,
+    148
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1917b7b9ac2cb3dcb152f4435de61d1858a4064b",
-   "sha256": "0rpmmzwjqij5v8k33qlpq323za96447pdwrwzwk4474n4v5xsp50"
+   "commit": "e146d672ea4c00fe17018e7e76e49d59570eeb2b",
+   "sha256": "0bcrlw76nihbffm7p5jh9vf3r1756p6vwa7hbwp933r4caaiyqid"
   },
   "stable": {
    "version": [
     5,
     3,
-    1
+    2
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1583be4a8a01b765841f7306284528ae713abb7b",
-   "sha256": "1l8v3vq3yw7zr1yxyscfw8lggcf0klnyszhv18505c6myybp2dkp"
+   "commit": "e146d672ea4c00fe17018e7e76e49d59570eeb2b",
+   "sha256": "0bcrlw76nihbffm7p5jh9vf3r1756p6vwa7hbwp933r4caaiyqid"
   }
  },
  {
@@ -50493,10 +51221,10 @@
  },
  {
   "ename": "history",
-  "commit": "f51d4cc6521546c99197adeb35459fcd53bd67d4",
-  "sha256": "0s8pcz53bk1w4h5847204vb6j838vr8za66ni1b2y4pas76zjr5g",
+  "commit": "d1172402073d66c671de75ddf5c9b6ac3f6d64cd",
+  "sha256": "14n0h6lca450w68lk20q98bdbkfadmsqmv1sb73m0pnvzyh5c04z",
   "fetcher": "github",
-  "repo": "boyw165/history",
+  "repo": "tcw165/history",
   "unstable": {
    "version": [
     20160821,
@@ -50604,11 +51332,11 @@
   "repo": "ideasman42/emacs-hl-block-mode",
   "unstable": {
    "version": [
-    20201126,
-    818
+    20210320,
+    1051
    ],
-   "commit": "82f42045c11ad8c6f13db3a32dcda970a378d164",
-   "sha256": "1ydks5mrzsxj7q3kvv8ji6vy4jxfra7lhd3vfyqldp3inhz3rpkz"
+   "commit": "717b4f743c633362a8b28c883c454c5ef3711722",
+   "sha256": "16b1hnxzfygn3pgck5d8m612iwn42bxsx0zhdqrzmjl9sjvvps4h"
   }
  },
  {
@@ -50677,11 +51405,11 @@
   "repo": "tarsius/hl-todo",
   "unstable": {
    "version": [
-    20210105,
-    744
+    20210117,
+    1140
    ],
-   "commit": "9661a462d86b22293caaa4c3d94f971a15dbf1d5",
-   "sha256": "0w0l990wqdv9fdxf8a02fx0aj6ffp83jp3zh81jf3j5i0l75xfkr"
+   "commit": "4d18ccde596aef84ef278aa60144390ab41f0046",
+   "sha256": "0r9yz485g393yh4nh1a8nqhk1yxjapq2dzjs3l13ld34hql776yc"
   },
   "stable": {
    "version": [
@@ -50709,8 +51437,8 @@
     "htmlize",
     "popup"
    ],
-   "commit": "bad680b33c2ca20a6088986a10735a5df3cb9996",
-   "sha256": "0vd2fn011l5iqi1ja8j3l0wq90wr70b8dk75mh3xrrl8jp55xwxl"
+   "commit": "f1deebb0cbe9ca040856d3cc99942335250d9566",
+   "sha256": "0hnmia3c052php3i2g1sbsp402fgi17yv6as044ck617p7avz971"
   }
  },
  {
@@ -50777,16 +51505,16 @@
   "repo": "thanhvg/emacs-hnreader",
   "unstable": {
    "version": [
-    20200726,
-    654
+    20210319,
+    527
    ],
    "deps": [
     "org",
     "promise",
     "request"
    ],
-   "commit": "7ff808d4728ce4e269b6d99a73604063dd9b374a",
-   "sha256": "0kxx8pvl99qdbldsn6lvxj69j1jpmmc33wxcr2aw3h423ibcna3s"
+   "commit": "ae52af1424ccde2b20e88ff8c589eb772162a560",
+   "sha256": "12h1lvm6bwdln7jnl1adl1vqgi603yvsvb4dbg9yvy1np8b6mj7r"
   }
  },
  {
@@ -50850,6 +51578,26 @@
   }
  },
  {
+  "ename": "holy-books",
+  "commit": "6b74662e2f4bee4b7c06be029bfa75eca35d5d86",
+  "sha256": "1s9kkjnbmm7vxh767asmnv4h040ksyqzhn3h7x5h0iszhrp6nmp2",
+  "fetcher": "github",
+  "repo": "alhassy/holy-books",
+  "unstable": {
+   "version": [
+    20210227,
+    2225
+   ],
+   "deps": [
+    "dash",
+    "org",
+    "s"
+   ],
+   "commit": "53ee29d1b1a1a9cbd664c318b01aa1c13011efff",
+   "sha256": "0n7qnr23h22lsp2n19z3j30zq6l2rvqj1mldkaki0gvw5whi4r3w"
+  }
+ },
+ {
   "ename": "home-end",
   "commit": "f67c9cf33e0f11a9bd6e1521af86d180177111c4",
   "sha256": "0xnpb0n4kd7b0m80g2a88ylfk5gbvkcgwb78nig98dmgjg48z2ly",
@@ -50863,6 +51611,17 @@
    "deps": [
     "keypress-multi-event"
    ],
+   "commit": "fbddad2c1268720ce17662a232b48f666e489526",
+   "sha256": "0wabzpah1vkg8ns21agvrs9s7rm1r0cxghmfv6c2zq71886glv1y"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "keypress-multi-event"
+   ],
    "commit": "30676ceec0d4ad84038cd0d65ee45ae810ab185c",
    "sha256": "0czvnk74988p6gqz5jz83gkvvqdrdmzn4qz6cc8dmbyxk1zg6l8y"
   }
@@ -51064,16 +51823,16 @@
   "repo": "thanhvg/emacs-howdoyou",
   "unstable": {
    "version": [
-    20201002,
-    1901
+    20210217,
+    1723
    ],
    "deps": [
     "org",
     "promise",
     "request"
    ],
-   "commit": "e7c2e75a0365bca16e8910e295f330c35fa016ae",
-   "sha256": "1wsbd4rjfh27w5qzrzd1h6xpqp7s5amw33wdaa2cfp7c67pnm4kc"
+   "commit": "27e9e015b930175896c07536c25e379a4e1997af",
+   "sha256": "14f3fqz8sjmjh7si5gk31fh7bnvc9p1rfd9p2l39zvasvk1sxki0"
   }
  },
  {
@@ -51084,14 +51843,14 @@
   "url": "https://scm.osdn.net/gitroot/howm/howm.git",
   "unstable": {
    "version": [
-    20201231,
-    1042
+    20210217,
+    1128
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c11a6b7ad3d683d2910572fa7f2a87ffdf503317",
-   "sha256": "0fjwgxaf7lzby6hz96xz9b97mv4vhczs14cq6j6vxygrkykafwam"
+   "commit": "bac98b873d07baf039fe252b9d67f71c235dca06",
+   "sha256": "0rhyhkm84fsff5lyvb0z9rnbhmqn4ix0d8wixzll2n2yclj9d9my"
   }
  },
  {
@@ -51120,25 +51879,25 @@
   "repo": "Wilfred/ht.el",
   "unstable": {
    "version": [
-    20210113,
-    822
+    20210119,
+    741
    ],
    "deps": [
     "dash"
    ],
-   "commit": "5876209c9712bd1acbbf1d31f6e3293e5ab88971",
-   "sha256": "03cn43vd2zq67hzb1hy82b7lshzslxzndjj1z1liv1kspww2hkch"
+   "commit": "c4c1be487d6ecb353d07881526db05d7fc90ea87",
+   "sha256": "1i3ps5zrr719nrcrsyhlmfdazzcz1agrmx424mbyca5vra8cc35i"
   },
   "stable": {
    "version": [
     2,
-    2
+    3
    ],
    "deps": [
     "dash"
    ],
-   "commit": "a23a72342fda1eb3cc8d792f86efabe45eb0d1fd",
-   "sha256": "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"
+   "commit": "2eddb85a66508ad607e94fd8384b18feb07a2449",
+   "sha256": "0can9v336lgnq0q2ha3js0565jzp3dlwwqxhcbx5swk5kp148f07"
   }
  },
  {
@@ -51542,11 +52301,11 @@
   "repo": "Riyyi/emacs-hybrid-reverse",
   "unstable": {
    "version": [
-    20210107,
-    1435
+    20210325,
+    2311
    ],
-   "commit": "30072ccf0a49bb47360dce12965db1b1e2f2b57d",
-   "sha256": "16p7k3lwlykpgrc2pkbdx7z209bzps9ksizjhgbcfbkn67xpavka"
+   "commit": "81e6651203ef666af4ddc63dc726cfb1443fe16b",
+   "sha256": "0m7k91kwhy8v602li3rfzmcb4qb443w2iv8qh38ncsl0l6bsc982"
   }
  },
  {
@@ -51704,6 +52463,24 @@
   }
  },
  {
+  "ename": "i-ching",
+  "commit": "28b05f2e04d286f3115e33e9d3e717caef8a0a46",
+  "sha256": "14g095dd8gzp64xwnnha1smd5jqgswzfaw9vfz4ihyglsjvl23m1",
+  "fetcher": "github",
+  "repo": "zzkt/i-ching",
+  "unstable": {
+   "version": [
+    20210222,
+    1519
+   ],
+   "deps": [
+    "request"
+   ],
+   "commit": "51a3180ed07ae9f8b7ff3f2b822d998495864a07",
+   "sha256": "1rrykszzcyvrmks2clrpdq5kdldcqp38wc908bhq2b4qw7w3d7sw"
+  }
+ },
+ {
   "ename": "i2b2-mode",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "1jnlisdnp9sz54p444vlq00y3080i4ljcvclri9fy382g1s5ags5",
@@ -51810,19 +52587,19 @@
   "repo": "muffinmad/emacs-ibuffer-project",
   "unstable": {
    "version": [
-    20200210,
-    2252
+    20210205,
+    1940
    ],
-   "commit": "8cc8c96cb15874dd55cdbfce759f528de0046f9f",
-   "sha256": "0ysjyirw9gkrs8wivvvxfgdq8radpkl6nhh2a0ac3s42vrwbf9g1"
+   "commit": "2483d2dbd715c4bd892d1fbc968a17a01888cb2d",
+   "sha256": "165g2lsg8apdpn7i36h0x5j80clpjpf3d1d1l8g8ahf5280flcfw"
   },
   "stable": {
    "version": [
     2,
-    0
+    1
    ],
-   "commit": "8cc8c96cb15874dd55cdbfce759f528de0046f9f",
-   "sha256": "0ysjyirw9gkrs8wivvvxfgdq8radpkl6nhh2a0ac3s42vrwbf9g1"
+   "commit": "2483d2dbd715c4bd892d1fbc968a17a01888cb2d",
+   "sha256": "165g2lsg8apdpn7i36h0x5j80clpjpf3d1d1l8g8ahf5280flcfw"
   }
  },
  {
@@ -51880,11 +52657,11 @@
   "repo": "jojojames/ibuffer-sidebar",
   "unstable": {
    "version": [
-    20180219,
-    131
+    20210215,
+    1849
    ],
-   "commit": "7ddf1b5a158b33e9a7d3fe5dad7ea626a464d2bc",
-   "sha256": "18rl379bfilzvyi4f4kmy74l4vq2q8hhy5i8kflcgvn0ibipwqjz"
+   "commit": "59e20690fc4f5ccd751e7a13a60664b97f053a1c",
+   "sha256": "1z6japr7n950222x33jinb34z7j6n5spj9cn8nq8f8yf8rgp6n2j"
   }
  },
  {
@@ -51978,11 +52755,11 @@
   "repo": "oantolin/icomplete-vertical",
   "unstable": {
    "version": [
-    20210105,
-    500
+    20210227,
+    2146
    ],
-   "commit": "288166784de29db2f5f61722cc11151deca3f34a",
-   "sha256": "0if14qqixkkg8nfikfzhqqnsclhkbx4n8885gm9w0zlibkcj65pk"
+   "commit": "e490b01f7420bc15bc8e7b4594964208c3d31107",
+   "sha256": "1b069vnjlwnwk62332ndwizjp44dhjxvajv2nndpxqrkpqg9s8jb"
   },
   "stable": {
    "version": [
@@ -52001,27 +52778,27 @@
   "repo": "plandes/icsql",
   "unstable": {
    "version": [
-    20210115,
-    137
+    20210304,
+    1843
    ],
    "deps": [
     "buffer-manage",
     "choice-program"
    ],
-   "commit": "41ca05a6d234c55c2963599648a9e3c433ad5902",
-   "sha256": "0skazm21xjp8w80g4iqpi1dj48xnhka03l46v6zz48v5686iqv5d"
+   "commit": "759a63d373681e09d71e0f5522d063a811d7127e",
+   "sha256": "191cwfjrcv2yvgh0f6n0f2s64w6r2v19vvc41x4g1x48szzrzbg2"
   },
   "stable": {
    "version": [
     0,
-    3
+    6
    ],
    "deps": [
     "buffer-manage",
     "choice-program"
    ],
-   "commit": "41ca05a6d234c55c2963599648a9e3c433ad5902",
-   "sha256": "0skazm21xjp8w80g4iqpi1dj48xnhka03l46v6zz48v5686iqv5d"
+   "commit": "bc600ecb6e6134e98dfb67f10301bde5a4e07adf",
+   "sha256": "0j27iiwgzysd9ymb4nc0m1300sqz0gqmri7ky9zfgv2g5gpjs4w0"
   }
  },
  {
@@ -52182,25 +52959,25 @@
  },
  {
   "ename": "ido-complete-space-or-hyphen",
-  "commit": "59e11094068d3a0c0e4edc1f82158c43d3b15e0e",
-  "sha256": "1wk0cq5gjnprmpyvhh80ksz3fash42hckvmx8m95crbzjg9j0gbc",
+  "commit": "af424a73243aabec86c5bcd688a0cf29ad57199c",
+  "sha256": "084lgxjq2wfvhp1pv0dcn3ac8hy6jhjpyv1bxan6pdr2v5bc0lz2",
   "fetcher": "github",
-  "repo": "doitian/ido-complete-space-or-hyphen",
+  "repo": "DarwinAwardWinner/ido-complete-space-or-hyphen",
   "unstable": {
    "version": [
-    20180929,
-    150
+    20210206,
+    1505
    ],
-   "commit": "ed60ebed113e4e1552efeab0c416f7c88428268e",
-   "sha256": "15h0alwi7qfqyi7w7gdl06ykxvafbx1p4614rg81kmzgs4dpqgy3"
+   "commit": "d1244243e042b8d5b6b991db752a17a44ea169bc",
+   "sha256": "1gl646lj1i2yxmgrgwd0sz9abq3zqf9z4qkl6ilp49ijk4cks63g"
   },
   "stable": {
    "version": [
     1,
-    1
+    3
    ],
-   "commit": "ad9baaec10e06be3f85db97b6c8fd970cf20df77",
-   "sha256": "1ffmsmi31jc0gqnbdxrd8ipsy790bn6hgq3rmayylavmdpg3qfd5"
+   "commit": "d1244243e042b8d5b6b991db752a17a44ea169bc",
+   "sha256": "1gl646lj1i2yxmgrgwd0sz9abq3zqf9z4qkl6ilp49ijk4cks63g"
   }
  },
  {
@@ -52211,16 +52988,16 @@
   "repo": "DarwinAwardWinner/ido-completing-read-plus",
   "unstable": {
    "version": [
-    20210103,
-    1621
+    20210206,
+    1750
    ],
    "deps": [
     "cl-lib",
     "memoize",
     "seq"
    ],
-   "commit": "f91e5a1d696c13db029fd62806fe9bcb9702be26",
-   "sha256": "0yhl6wa3fkvkfx87vhjl8dhn3igzrilby2vxhllgysb5kbd9adzc"
+   "commit": "36a8bb93a59a16c8d5a5163c8cfde3770a1052df",
+   "sha256": "03v0d93fwp5k2n8mmkj3szqm80ilbzkqqdaz5v1v2ar0p4sajl8v"
   },
   "stable": {
    "version": [
@@ -52463,11 +53240,11 @@
   "repo": "creichert/ido-vertical-mode.el",
   "unstable": {
    "version": [
-    20201012,
-    1514
+    20210205,
+    436
    ],
-   "commit": "5a6e17048528c328c129db6dccfe605f301ddef2",
-   "sha256": "19mwbz6a67a76pm9820w3rvz0mb54gx09nq5fzz4lkwn94578kyn"
+   "commit": "b1659e967da0687abceca733b389ace24004fa66",
+   "sha256": "0wihhkbcfsfy3drqhg443vlz931c0nvpr9rdmp8l8m33ca1bbx5i"
   },
   "stable": {
    "version": [
@@ -52539,15 +53316,15 @@
   "repo": "idris-hackers/idris-mode",
   "unstable": {
    "version": [
-    20200522,
-    808
+    20210223,
+    850
    ],
    "deps": [
     "cl-lib",
     "prop-menu"
    ],
-   "commit": "b77eadd8ac2048d5c882b4464bd9673e45dd6a59",
-   "sha256": "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"
+   "commit": "80aabd2566082aa67d17eccdd80e9f1fb10c9ec8",
+   "sha256": "1cmmasfmgnzhixhczigz1c2jzhr9yj4v6mwvgxs99vbg2k3p9rcq"
   },
   "stable": {
    "version": [
@@ -52585,11 +53362,11 @@
   "repo": "victorhge/iedit",
   "unstable": {
    "version": [
-    20210114,
-    1621
+    20210203,
+    23
    ],
-   "commit": "dc3b419f1b945bd806bf40b7a478e7a2144c2077",
-   "sha256": "1xqq0hl8wcxa64pfn11pxcb7gcfgczaw166h0qksczwib2v4racc"
+   "commit": "0d6d2387188763a88cdf84f749e6f32d5a72bbd6",
+   "sha256": "0v34zqbfr7z3mr5c9nyksxkdgmnyvvsr9zaq202hhq25lwlhrkpq"
   },
   "stable": {
    "version": [
@@ -52681,10 +53458,10 @@
  },
  {
   "ename": "image+",
-  "commit": "02d7400477a993b7a3cae327501dbf8db97dfa28",
-  "sha256": "1a9dxswnqn6cvx28180kclpjc0vc6fimzp7n91gpdwnmy123x6hg",
+  "commit": "98ecbfb97550c3dfffaab63fcfe27786f3574bff",
+  "sha256": "14xcb0a5ihq16amri3n8avbg1jjx4hg3dnynxd4903gig72kywbx",
   "fetcher": "github",
-  "repo": "mhayashi1120/Emacs-imagex",
+  "repo": "emacsorphanage/image-plus",
   "unstable": {
    "version": [
     20150707,
@@ -52840,11 +53617,11 @@
   "repo": "QiangF/imbot",
   "unstable": {
    "version": [
-    20201204,
-    801
+    20210319,
+    126
    ],
-   "commit": "17b586307065f868a999e58fab30749d1b722aa2",
-   "sha256": "14c48zgdi54i9yz8ya6vgclafzqpfnjxsxf4dvzxcn74p4sb246z"
+   "commit": "0fdc71bfa66ecc1f8a54cdcd2458eb47eab41ecd",
+   "sha256": "1ibd9i75x6gb0nprbdi0giklllfwsmvghi3fm19qm7hiw3kg9j3m"
   }
  },
  {
@@ -52855,26 +53632,26 @@
   "repo": "vspinu/imenu-anywhere",
   "unstable": {
    "version": [
-    20190512,
-    1939
+    20210201,
+    1704
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "88b0e120284058b32252e4b0ed1a07c9fe44092f",
-   "sha256": "1w0n4hx29zc6n06qfq3ryc4dcfmk7wx3lw083yv7fi12hjj255vm"
+   "commit": "06ec33d79e33edf01b9118aead1eabeae8ee08b1",
+   "sha256": "0lbwfhcl40ayxskvmsvdrg8p63qp086xpzw61bqk4b3fxndxl04h"
   },
   "stable": {
    "version": [
     1,
     1,
-    4
+    6
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "fc7f0fd2f19e5ebee70156a99bf87393123893e3",
-   "sha256": "0g2gb7jrys81kphmhlvhvzwl8l75j36y6pqjawh9wmzzwad876q5"
+   "commit": "06ec33d79e33edf01b9118aead1eabeae8ee08b1",
+   "sha256": "0lbwfhcl40ayxskvmsvdrg8p63qp086xpzw61bqk4b3fxndxl04h"
   }
  },
  {
@@ -52909,25 +53686,25 @@
   "repo": "bmag/imenu-list",
   "unstable": {
    "version": [
-    20190115,
-    2130
+    20210325,
+    1536
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "46008738f8fef578a763c308cf6695e5b4d4aa77",
-   "sha256": "14l3yw9y1nk103s7z5i1fmd6kvlb2p6ayi6sf9l1x1ydg9glrpl8"
+   "commit": "b03b86aee6ac30067906dddc385db8188657d023",
+   "sha256": "0vi4cj6cijra3d0khiqc185iqzhkzillbwnhglxi82r4zrzwnyzg"
   },
   "stable": {
    "version": [
     0,
-    8
+    9
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "27170d27c9594989587c03c23f753a809f6a0e10",
-   "sha256": "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"
+   "commit": "6cded436010a39592175238e4d02263a7cdb44c4",
+   "sha256": "09x1n2bgwgximcmnrfn32d5hr6wa0iz8acaj78a93azzx065xxgk"
   }
  },
  {
@@ -52985,11 +53762,11 @@
   "repo": "petergardfjall/emacs-immaterial-theme",
   "unstable": {
    "version": [
-    20210109,
-    1653
+    20210126,
+    1127
    ],
-   "commit": "288b367ea0efccd5e98efbdf925591ffc989a654",
-   "sha256": "1y62yfg67lnbc89l6k4gw5fibahnlpn23g415a6zdk2vz89n6y0k"
+   "commit": "c5684a17c78e6e05ea0bdb63e44373b064db935a",
+   "sha256": "09fw0bgqr7fhwhm7vgdd12iw9nbgn19qna7k6vv1ljsdfcmwg5s5"
   },
   "stable": {
    "version": [
@@ -53193,6 +53970,30 @@
   }
  },
  {
+  "ename": "indent-control",
+  "commit": "c2c3a73f54091f5347877d51a68b0e009253583b",
+  "sha256": "0nd7crp6k1mklhz0y1zypc3jmjfydy6d1ksx24sm9zj83i3fp339",
+  "fetcher": "github",
+  "repo": "jcs-elpa/indent-control",
+  "unstable": {
+   "version": [
+    20210309,
+    1151
+   ],
+   "commit": "383ea506a6e6145bbb6327a7b1e509b40edf446b",
+   "sha256": "1828wh72ij2dhrvlwzx70j6q2gjqs96dk2h6wk508pphqw3yn29x"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    4
+   ],
+   "commit": "2594740d8e8b324722d133a2db051ba4941eb170",
+   "sha256": "0v42lv5ig5hpnc02saqqmrjcvy8n216s7jnlc4f9jjyl7bl7lfsx"
+  }
+ },
+ {
   "ename": "indent-guide",
   "commit": "5d7110054801e3af5e5ef710a29f73116a2bc746",
   "sha256": "029fj9rr9vfmkysi6lzpwra92j6ppw675qpj3sinfq7fqqlicvp7",
@@ -53332,8 +54133,8 @@
   "repo": "NicolasPetton/Indium",
   "unstable": {
    "version": [
-    20201103,
-    2040
+    20210309,
+    1210
    ],
    "deps": [
     "company",
@@ -53342,8 +54143,8 @@
     "json-process-client",
     "seq"
    ],
-   "commit": "b870d1ed6b350d3753e7a148c61c373ca76ba78a",
-   "sha256": "1fscqkpk3z6pxgy1kf548jbck5p57k02badm7j8ggixbvng63d3g"
+   "commit": "8499e156bf7286846c3a2bf8c9e0c4d4f24b224c",
+   "sha256": "1hii97gz1qpr9nbnpb6am4i6a6vwxnbzcy65gyjvsfc122m3qn03"
   },
   "stable": {
    "version": [
@@ -53385,14 +54186,14 @@
   "repo": "clojure-emacs/inf-clojure",
   "unstable": {
    "version": [
-    20200801,
-    1128
+    20210322,
+    1421
    ],
    "deps": [
     "clojure-mode"
    ],
-   "commit": "e291da3cd0c11271ad7372594139974057612172",
-   "sha256": "1cnr72s3d224l7wk742hlj5mlgr65pchfc2w6dz9gx3ww6by9b8l"
+   "commit": "1e99b8246bb1fe7666d613a9ae566e2a939fc2bb",
+   "sha256": "0bqznd3mn0fd8km5in9k2i87pxcjv6wszdgjp4ajzw742dznkb2f"
   },
   "stable": {
    "version": [
@@ -53438,6 +54239,30 @@
   }
  },
  {
+  "ename": "inf-elixir",
+  "commit": "9d4add1ea6aeca5f19e2827628751ea321912219",
+  "sha256": "0vaxp92d2v094gqwdw2xvfrh13iqshr94hab81135a9pgggy4rc9",
+  "fetcher": "github",
+  "repo": "J3RN/inf-elixir",
+  "unstable": {
+   "version": [
+    20210315,
+    1723
+   ],
+   "commit": "b526ce852886d1863163e054fcbbcbb83c55b32a",
+   "sha256": "1kmv2j1g299wb8dqq43zk61jigkfl9rnqxbfnclzsqfdlnhvw6ii"
+  },
+  "stable": {
+   "version": [
+    2,
+    1,
+    0
+   ],
+   "commit": "9c21ae6d7a1313c856fd508880ee121fbea99f4d",
+   "sha256": "0w6fj1sh1pdsrk5sis2zkbdz0ixbpndaizvlqv2riw3sgpnc41f3"
+  }
+ },
+ {
   "ename": "inf-mongo",
   "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
   "sha256": "0f12yb3dgkjnpr4d36jwfnncqzz7kl3bnnrmjw7hv223p2ryzwpx",
@@ -53460,11 +54285,11 @@
   "repo": "nonsequitur/inf-ruby",
   "unstable": {
    "version": [
-    20201228,
-    1237
+    20210314,
+    123
    ],
-   "commit": "1fc972ecda6a2155806d75d202481327703a0681",
-   "sha256": "0kv98g30kgfpyd0ghiclk17ac2y17j7bi77km59gdw5i1b5k1a27"
+   "commit": "c6990a60c740b2d69495e34e95b29f13014b3cde",
+   "sha256": "05nz7hvly47n7d945gdb1x8xgzla5r9k629if81rgjh99w24dpgc"
   },
   "stable": {
    "version": [
@@ -53670,6 +54495,29 @@
   }
  },
  {
+  "ename": "inheritenv",
+  "commit": "40b820a8d2f250b2bc67082049bafe712c329da3",
+  "sha256": "13ah98c141lvrm4yq6mryk2ji2fl3vnac6vp8lgri8rpvwkk46nz",
+  "fetcher": "github",
+  "repo": "purcell/inheritenv",
+  "unstable": {
+   "version": [
+    20210204,
+    354
+   ],
+   "commit": "7e4c8b0d0a43b6f1c6c4d6dbd2f3bf5ce7f20067",
+   "sha256": "1qc54wx5f1yvap9hxi1k5qqsascxxs9lq317qpzipmbazw7qk7ch"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "commit": "bc680a2670156cd482edba83d8c81142282174ba",
+   "sha256": "0ygzf70vfb7qwpsllcq5i3brprsnx3sxy2zng02mzwrr5jkx4ypc"
+  }
+ },
+ {
   "ename": "ini-mode",
   "commit": "000cca577d000bafe7bf5711d0bfe7593fb6975a",
   "sha256": "0f6fbmg4wmlzghcibfbcx3z124b2017rhsasi5smgx9i2vkydzrm",
@@ -53789,8 +54637,8 @@
     20210109,
     1112
    ],
-   "commit": "c010838770bad2a3fc37fcb5c497bf92d5aca27b",
-   "sha256": "0pf5q4n4p2szmvgh6zcfb7q9p58fac3k5bvqxq6wialz14m779lr"
+   "commit": "e8ae7b2345b8b21dd866fc043906ceecd40832c7",
+   "sha256": "19fxqb6x05480wa4dp4mv2a6cw5sgc8bsm3syqpbhmflymfvxnsy"
   }
  },
  {
@@ -54060,8 +54908,8 @@
     20191129,
     958
    ],
-   "commit": "383eb955bf0084a6e6ec03c9bd34511e20e0407d",
-   "sha256": "11bm00pw0bg8z6b5gyfmb2iss5libp6m4x0mc8agazabxzhmzyx9"
+   "commit": "e1791a96a2633a9f5ea99fc0a20ebacedcefdaaa",
+   "sha256": "1biysf8cqfw4q7d2dnlisviign3n5knvrb0g6zdalzv8pnd1cxqr"
   },
   "stable": {
    "version": [
@@ -54074,40 +54922,6 @@
   }
  },
  {
-  "ename": "intero",
-  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
-  "sha256": "1a25lsm1psjvn9az3vd0an46p9qwrrmn09r16dqnhsjcaiabinxi",
-  "fetcher": "github",
-  "repo": "chrisdone/intero",
-  "unstable": {
-   "version": [
-    20200125,
-    848
-   ],
-   "deps": [
-    "company",
-    "flycheck",
-    "haskell-mode"
-   ],
-   "commit": "fdb0550a2ddb5692d470336aa4a057717d572695",
-   "sha256": "0myjhj416cbvlfv2x9h624nygfis94jaw9gqf75sjv6y4inkzy73"
-  },
-  "stable": {
-   "version": [
-    0,
-    1,
-    40
-   ],
-   "deps": [
-    "company",
-    "flycheck",
-    "haskell-mode"
-   ],
-   "commit": "107640cc3a3ea12db24ae674ff7a820f6073f3d5",
-   "sha256": "0yr6g2f35rmym6nkdgm6wdczirc5b9f7sza2sad0mx02b81qmaci"
-  }
- },
- {
   "ename": "interval-list",
   "commit": "afee0fed80f4fa444116b12653c034d760f5f1fb",
   "sha256": "0926z3lxkmpxalpq7hj355cjzbgpdiw7z4s8xdrpa1pi818d35zf",
@@ -54152,15 +54966,15 @@
   "repo": "dcjohnson/inverse-acme-theme",
   "unstable": {
    "version": [
-    20170823,
-    254
+    20210204,
+    1640
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "74d6f3e2f6534371509dd2d77006435156c276d6",
-   "sha256": "15fk60ky8kbj665yjylmgc4nn4qsk57fvarqzwv3fns64yfshkv3"
+   "commit": "79008920ce7923312ada6f95a3ec1f96ce513c0b",
+   "sha256": "169zsp8kd8dq8mcfzm228wm8c97rv56clsg6z8dp8aaz7nw1kxgf"
   }
  },
  {
@@ -54350,15 +55164,15 @@
   "repo": "Sarcasm/irony-mode",
   "unstable": {
    "version": [
-    20201018,
-    1707
+    20210321,
+    1750
    ],
    "deps": [
     "cl-lib",
     "json"
    ],
-   "commit": "76fd37f9616f5c851106654c8fb5eb98670d351f",
-   "sha256": "1kbskyfw04l8cra6phlxblhkn38p5l6mm2xyjdsxxlfhcc0vwi02"
+   "commit": "ec6dce7ee16ffaa9a735204534aa4aa074d14487",
+   "sha256": "0pabzcr06jywa3n4bax8dxxkmb1ffq3cpw1jnxnqpx18h96pfar2"
   },
   "stable": {
    "version": [
@@ -54394,6 +55208,21 @@
   }
  },
  {
+  "ename": "iscroll",
+  "commit": "1a654105396633a1018cddb459a46630071455b3",
+  "sha256": "06nzfza043n2ypjp0kc009n3ax4avafvgfqdhkzr7x6bzgxvkx6d",
+  "fetcher": "github",
+  "repo": "casouri/iscroll",
+  "unstable": {
+   "version": [
+    20210128,
+    1938
+   ],
+   "commit": "d6e11066169d232fe23c2867d44c012722ddfc5a",
+   "sha256": "0pbcr5bwmw2ikwg266q2fpxaf0z5h5cl1rp3rhhn9i9yn7hlfc78"
+  }
+ },
+ {
   "ename": "isearch-dabbrev",
   "commit": "b9dfc7c1112bac8744910c58f77a98a901fd8065",
   "sha256": "1hl7zl5vjcsk3z452874g4nfcnmna8m2242dc9cgpl5jddzwqa7x",
@@ -54495,29 +55324,6 @@
   }
  },
  {
-  "ename": "isolate",
-  "commit": "c8091f8d72c24a103f6dcaadc18bbec745c1c3d3",
-  "sha256": "1ldyvw01nq2ynxaaqmw9ihk9kwfss9rqpaydn9f41bqj15xrypjc",
-  "fetcher": "github",
-  "repo": "casouri/isolate",
-  "unstable": {
-   "version": [
-    20190808,
-    731
-   ],
-   "commit": "e93cb652f150705347480a2ee13b63fa625b1edf",
-   "sha256": "0fa4z1mm62s1x4fd6d4pwl6zvksx1xiv6id9fy7rdbs0vznsjgqb"
-  },
-  "stable": {
-   "version": [
-    1,
-    2
-   ],
-   "commit": "700aa3c7945580c876d29c3c064282c33ebb365c",
-   "sha256": "0j96rzfabn6lgv9xxyndpq3d2nys5z1brrrd7bga786zzwlp78a9"
-  }
- },
- {
   "ename": "isortify",
   "commit": "c756ccbae044bc23131060355532261aa9a12409",
   "sha256": "0bqs84prlwk94x543mv22wjnz0s7gqbdi7ryvdc20s7vdr18fn82",
@@ -54681,20 +55487,20 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210114,
-    1859
+    20210311,
+    1638
    ],
-   "commit": "cbce9ce71429c98c67bd76ef15d049ecced042f7",
-   "sha256": "08lgvpvkhp2i9q73bnr2v17w864rwp6wjnrl3b7qg06dacfs2rvl"
+   "commit": "47b496544e238041bca5e3c9ca55848648344312",
+   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
   },
   "stable": {
    "version": [
     0,
     13,
-    0
+    4
    ],
-   "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
-   "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+   "commit": "8cf3f1821cbd1c266296bbd5e59582ae6b8b90a6",
+   "sha256": "1k8ja0cjdb13xi5b05rab3r0z53qkhjwjagxzw3fpzlyd7rxzi14"
   }
  },
  {
@@ -54705,15 +55511,28 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200615,
-    938
+    20210310,
+    1230
    ],
    "deps": [
     "avy",
     "ivy"
    ],
-   "commit": "cbce9ce71429c98c67bd76ef15d049ecced042f7",
-   "sha256": "08lgvpvkhp2i9q73bnr2v17w864rwp6wjnrl3b7qg06dacfs2rvl"
+   "commit": "47b496544e238041bca5e3c9ca55848648344312",
+   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
+  },
+  "stable": {
+   "version": [
+    0,
+    13,
+    4
+   ],
+   "deps": [
+    "avy",
+    "ivy"
+   ],
+   "commit": "8cf3f1821cbd1c266296bbd5e59582ae6b8b90a6",
+   "sha256": "1k8ja0cjdb13xi5b05rab3r0z53qkhjwjagxzw3fpzlyd7rxzi14"
   }
  },
  {
@@ -54732,8 +55551,8 @@
     "cl-lib",
     "swiper"
    ],
-   "commit": "94807a3d3419f90b505eddc3272e244475eeb4f2",
-   "sha256": "08wfvqdzs05bmfjjaqfxffjbl4j7632bnpncs9khrh6lifz03xh2"
+   "commit": "ca09076c3d6e51cc4ffe208c8176fccf3710fcc6",
+   "sha256": "1jf2zapmkg2fdn9ldq8cn3aw02iqpjh26h6yjj93q3h0clsk5ia2"
   },
   "stable": {
    "version": [
@@ -54938,30 +55757,30 @@
   "repo": "jcs-elpa/ivy-file-preview",
   "unstable": {
    "version": [
-    20201127,
-    629
+    20210124,
+    1639
    ],
    "deps": [
     "f",
     "ivy",
     "s"
    ],
-   "commit": "402b4b915bc7daa14d16a48b47a2e453ce80dcd3",
-   "sha256": "0z1czcqdkdxn1c92fa640idacc8c1b9ykfk8r94d2174ki93jd9j"
+   "commit": "b237ee8e9fd2fd1b52254ef84cd06a0bb6c10a24",
+   "sha256": "0bimn8j3md579sg7bypsynmjnq1mlmmslci1k98sc8kfnky8260c"
   },
   "stable": {
    "version": [
     0,
     4,
-    3
+    5
    ],
    "deps": [
     "f",
     "ivy",
     "s"
    ],
-   "commit": "4727ac0dd7906807c830e2abdd3e081812105ad6",
-   "sha256": "0ia0a38f3dfiqz96fc405ax472zyj92yn61qs9mpdz8ql3pv2dwb"
+   "commit": "b237ee8e9fd2fd1b52254ef84cd06a0bb6c10a24",
+   "sha256": "0bimn8j3md579sg7bypsynmjnq1mlmmslci1k98sc8kfnky8260c"
   }
  },
  {
@@ -55060,28 +55879,28 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200608,
-    1010
+    20210311,
+    1108
    ],
    "deps": [
     "hydra",
     "ivy"
    ],
-   "commit": "cbce9ce71429c98c67bd76ef15d049ecced042f7",
-   "sha256": "08lgvpvkhp2i9q73bnr2v17w864rwp6wjnrl3b7qg06dacfs2rvl"
+   "commit": "47b496544e238041bca5e3c9ca55848648344312",
+   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
   },
   "stable": {
    "version": [
     0,
     13,
-    0
+    4
    ],
    "deps": [
     "hydra",
     "ivy"
    ],
-   "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
-   "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+   "commit": "8cf3f1821cbd1c266296bbd5e59582ae6b8b90a6",
+   "sha256": "1k8ja0cjdb13xi5b05rab3r0z53qkhjwjagxzw3fpzlyd7rxzi14"
   }
  },
  {
@@ -55111,15 +55930,15 @@
   "repo": "ROCKTAKEY/ivy-migemo",
   "unstable": {
    "version": [
-    20201214,
-    307
+    20210206,
+    919
    ],
    "deps": [
     "ivy",
     "migemo"
    ],
-   "commit": "0f34245dae2f890c685be767e3dc2c24c65dfe28",
-   "sha256": "1d013v8nb83g1hkfc5vxf5y7m67fi8346xm912hyyy03871kb469"
+   "commit": "9cdf3823b3303d69c0c77dfee91136817da12aea",
+   "sha256": "0nxk1i208zm6p666920gh1nmrfhfqglhgs07b5ir4b7mz3m5caab"
   },
   "stable": {
    "version": [
@@ -55234,15 +56053,15 @@
   "repo": "tumashu/ivy-posframe",
   "unstable": {
    "version": [
-    20201215,
-    39
+    20210122,
+    45
    ],
    "deps": [
     "ivy",
     "posframe"
    ],
-   "commit": "83047d440ff132d5a45acde5955f71853edeefb9",
-   "sha256": "03n1a9qzc53i3lx0ywayc2v8p0n4ydl7ly6niaj9dj15ik0nzxsp"
+   "commit": "3132719a9a7c04431fe65f1dced8acafe789bdf6",
+   "sha256": "133l0rd3iwphj9xcgww5m54mmyfd7icr46s792awlpc1ch7748c3"
   },
   "stable": {
    "version": [
@@ -55266,27 +56085,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200716,
-    1414
+    20210227,
+    600
    ],
    "deps": [
     "ivy",
     "prescient"
    ],
-   "commit": "42adc802d3ba6c747bed7ea1f6e3ffbbdfc7192d",
-   "sha256": "0v12707jwd2ynk8gp3shgarl6yp3ynal7d4jzds6l2lknr6wi50w"
+   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
+   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
   },
   "stable": {
    "version": [
     5,
-    0
+    1
    ],
    "deps": [
     "ivy",
     "prescient"
    ],
-   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
-   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+   "commit": "2c0e9fc061ab723ec532428f312974ca7d8def12",
+   "sha256": "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"
   }
  },
  {
@@ -55328,14 +56147,14 @@
   "repo": "Yevgnen/ivy-rich",
   "unstable": {
    "version": [
-    20201224,
-    4
+    20210212,
+    1441
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "f8a1f5c90d2a113b597ef5903634c089fce3365b",
-   "sha256": "1bwp26b7m3zxl00ywav7qfwlszxms3z00w41k7nvb47a4s0cvffl"
+   "commit": "7b9b7b20c3ead81da90232cd6707dfad3c1f1eb3",
+   "sha256": "03p13z609ighdq4axls93alqfl7pclx12g4vdd7lwpcy0r0cgyf8"
   },
   "stable": {
    "version": [
@@ -55365,8 +56184,8 @@
     "ivy",
     "rtags"
    ],
-   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
-   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
+   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
+   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
   },
   "stable": {
    "version": [
@@ -55389,8 +56208,8 @@
   "repo": "jcs-elpa/ivy-searcher",
   "unstable": {
    "version": [
-    20201001,
-    834
+    20210221,
+    923
    ],
    "deps": [
     "f",
@@ -55398,14 +56217,14 @@
     "s",
     "searcher"
    ],
-   "commit": "8eb55ff22b4b833094232acb35ec46261f069fa3",
-   "sha256": "0in9xihr2v6xn7iqlj5zz0h127bg4yf9hmrfvgxn53pcivzj9vw9"
+   "commit": "3a2f5073a0d5842a6b3c386e70cc484e3c4ea77b",
+   "sha256": "1bk8kaxqq1m76x1i4hy3jqcy05pr6dlzjd4dbyi8lrx9sxnfrnkk"
   },
   "stable": {
    "version": [
     0,
     3,
-    8
+    10
    ],
    "deps": [
     "f",
@@ -55413,8 +56232,8 @@
     "s",
     "searcher"
    ],
-   "commit": "8eb55ff22b4b833094232acb35ec46261f069fa3",
-   "sha256": "0in9xihr2v6xn7iqlj5zz0h127bg4yf9hmrfvgxn53pcivzj9vw9"
+   "commit": "46a461eb873083bc53d7fd3a15b266c52b3cbfb4",
+   "sha256": "1qsbbpmk3211lm29mks7r3dfphyikbkkj94028748y6ngwqk1vb4"
   }
  },
  {
@@ -55895,14 +56714,14 @@
   "repo": "zk-phi/jaword",
   "unstable": {
    "version": [
-    20200816,
-    647
+    20210306,
+    420
    ],
    "deps": [
     "tinysegmenter"
    ],
-   "commit": "45e350895fc55f087a2102fded5b306811089a7d",
-   "sha256": "02ncm22wldx8g3iibdw92gk4hdig0209f7bmhxrhgdv8xp544c2h"
+   "commit": "783544a265f91b2e568b52311afb36e3691d5ad3",
+   "sha256": "09gn08c9wz60jc8jh5y3bv7qymp0ciz62bk5sjwkwgnq5mkpsf49"
   }
  },
  {
@@ -55995,8 +56814,8 @@
     "auto-complete",
     "jedi-core"
    ],
-   "commit": "9d5f29116c4d42cae561a9d69e6fba2b61e2cf43",
-   "sha256": "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"
+   "commit": "3a9c503c35359d6bca6ff90c384c104c8743cdab",
+   "sha256": "1rx3qiicgg9p0chbfx8v1aypk93p6r5wlkia0b2sqr796r7xdn35"
   },
   "stable": {
    "version": [
@@ -56020,16 +56839,16 @@
   "repo": "tkf/emacs-jedi",
   "unstable": {
    "version": [
-    20191011,
-    1750
+    20210202,
+    856
    ],
    "deps": [
     "cl-lib",
     "epc",
     "python-environment"
    ],
-   "commit": "9d5f29116c4d42cae561a9d69e6fba2b61e2cf43",
-   "sha256": "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"
+   "commit": "3a9c503c35359d6bca6ff90c384c104c8743cdab",
+   "sha256": "1rx3qiicgg9p0chbfx8v1aypk93p6r5wlkia0b2sqr796r7xdn35"
   },
   "stable": {
    "version": [
@@ -56188,20 +57007,19 @@
   "repo": "Emiller88/emacs-jest",
   "unstable": {
    "version": [
-    20201130,
-    1920
+    20210219,
+    1508
    ],
    "deps": [
     "cl-lib",
     "dash",
-    "dash-functional",
     "js2-mode",
     "magit-popup",
     "projectile",
     "s"
    ],
-   "commit": "b70698d25ffeaa99520d4571659abb3005657398",
-   "sha256": "1n3qn9zgc09bpblv7rmm7lxdaz2ii7wjws0vd30ppdc8dy301gfp"
+   "commit": "0fe875082e54bdbfe924808aa155b938ed90d401",
+   "sha256": "0dxzml0i4x072jwxsbv0nnj3ws1i3z1x2ybg3fqfnfvzy2vynx3w"
   }
  },
  {
@@ -56212,11 +57030,11 @@
   "repo": "rymndhng/jest-test-mode",
   "unstable": {
    "version": [
-    20200329,
-    506
+    20210228,
+    132
    ],
-   "commit": "f04d08db36715d7509fd68448f74f917c6c1a382",
-   "sha256": "1pmzls19wpg60ql0b5l6rhml8hh8mzpbc0dgylzhps1jghi055s1"
+   "commit": "fb2bacab9475410c79e6e4ca344f093f7698466d",
+   "sha256": "0m3p75659krzcyc54ri0x8bwr1zxhkrfmyz8z7z5mjpydb8qb1v8"
   }
  },
  {
@@ -56396,11 +57214,11 @@
   "repo": "Michael-Allan/Java_Mode_Tamed",
   "unstable": {
    "version": [
-    20210114,
-    900
+    20210305,
+    646
    ],
-   "commit": "6a307c7ee17d44f1b0fe3dfba2bc34e0ca055818",
-   "sha256": "0q8y512l91r32igdksc6i2gwv0csl35xqlnx1cw41fwdpnbvdx4m"
+   "commit": "2e5e85392532fea07848000089137d51d008f42a",
+   "sha256": "0dcgs0p01hk9aljmv8z36gxqcpcw4p77yl2nvz1gql66lb4p7h6s"
   }
  },
  {
@@ -56788,14 +57606,14 @@
  },
  {
   "ename": "js2-refactor",
-  "commit": "8935264dfea9bacc89fef312215624d1ad9fc437",
-  "sha256": "09dcfwpxxyw0ffgjjjaaxbsj0x2nwfrmxy1a05h8ba3r3jl4kl1r",
+  "commit": "974d846518908d21c0e8edfea6f26174ea044a0c",
+  "sha256": "09gdsy93vpmdk110yyljvbcalxhpwpxy8vgv1l1by11k0p10b7nc",
   "fetcher": "github",
-  "repo": "magnars/js2-refactor.el",
+  "repo": "js-emacs/js2-refactor.el",
   "unstable": {
    "version": [
-    20190630,
-    2108
+    20210306,
+    2003
    ],
    "deps": [
     "dash",
@@ -56804,8 +57622,8 @@
     "s",
     "yasnippet"
    ],
-   "commit": "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28",
-   "sha256": "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"
+   "commit": "a0977c4ce1918cc266db9d6cd7a2ab63f3a76b9a",
+   "sha256": "0pjadcb5i8g8wkaf4hvh270r5z3qcsksnpcq5gzacqbgz5j2qcaf"
   },
   "stable": {
    "version": [
@@ -57071,8 +57889,8 @@
     20190714,
     1521
    ],
-   "commit": "1623346b308dc8f593346dc947fdc4092d674834",
-   "sha256": "1kkn4xjn9i207x580902jfpcrhpkvpyzxk4jh1bclbryki9602zv"
+   "commit": "2f41d292b87916f6989e7ff5dc94da18ae6a9e4e",
+   "sha256": "1z5v7z98dinlayxzik45gjja93daxym75mh2shsy4wz8yclkw22p"
   },
   "stable": {
    "version": [
@@ -57216,11 +58034,11 @@
   "repo": "JuliaEditorSupport/julia-emacs",
   "unstable": {
    "version": [
-    20200917,
-    713
+    20210323,
+    612
    ],
-   "commit": "8ea90c7927f6d87a291cfb0216f34dacf43c722e",
-   "sha256": "1ymanbalx41xri5kiqs83a80a72yr9831if6cz2m24pg3g7rwr9c"
+   "commit": "fe6f6f7a80f8d60ecffa5b2cb43667bb9dc11705",
+   "sha256": "0afgdga2p7ipdimvi2xncmqxv87x2khg603iifyylfq26wyxscr7"
   },
   "stable": {
    "version": [
@@ -57239,23 +58057,26 @@
   "repo": "tpapp/julia-repl",
   "unstable": {
    "version": [
-    20210114,
-    1549
+    20210124,
+    923
    ],
    "deps": [
     "s"
    ],
-   "commit": "0774d3b5b954e82e5bbcbe5123c689341297b01e",
-   "sha256": "056zv48nbqvnadca4q2hh0aal2bz00f9ayzqpwnsxl482p8bi93k"
+   "commit": "7ce38a9caf2a9c105afe66f464a2f30e816d69f3",
+   "sha256": "11vpqqnxqj9nxh8kccj4y6h3f8lib6jxnsk6vxc2j2fqw6alnafm"
   },
   "stable": {
    "version": [
     1,
-    2,
+    3,
     0
    ],
-   "commit": "b8155b8a1e23e1ad740fd7bd49b5d841b1365c7d",
-   "sha256": "0qdn70h6k03l3xmv4xmbvrs1lx632jihhmkvjxk5hp4nk5phh9rk"
+   "deps": [
+    "s"
+   ],
+   "commit": "7ce38a9caf2a9c105afe66f464a2f30e816d69f3",
+   "sha256": "11vpqqnxqj9nxh8kccj4y6h3f8lib6jxnsk6vxc2j2fqw6alnafm"
   }
  },
  {
@@ -57324,14 +58145,14 @@
   "repo": "shg/julia-vterm.el",
   "unstable": {
    "version": [
-    20201223,
-    741
+    20210327,
+    657
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "06ee45bffb6e711278a7af5207899d2b4316706c",
-   "sha256": "1zwhbwm285gqy9bfhlaaa9wp3lz959i3d1s41msl70jxbrnjz7pw"
+   "commit": "1d70c7f9fb91654e38fc868baf0ef72399f75ded",
+   "sha256": "1zhc71vsc7xjkabqkpv3pbf8hippqiqrd3ng1ws4b9fn1kv68av3"
   },
   "stable": {
    "version": [
@@ -57477,8 +58298,8 @@
   "repo": "nnicandro/emacs-jupyter",
   "unstable": {
    "version": [
-    20200417,
-    1907
+    20210116,
+    255
    ],
    "deps": [
     "cl-lib",
@@ -57486,8 +58307,8 @@
     "websocket",
     "zmq"
    ],
-   "commit": "360cae2c70ab28c7a7848c0c56473d984f0243e5",
-   "sha256": "1bn0jwpigpl5n45vpz73vv12g078151vyhkkhkwy5xqx627swxf9"
+   "commit": "6ce8d01e3a550a3268b415bf9d9b635d4dba5940",
+   "sha256": "1l0a6abyshrr6wb9xhgwgkdcarnhxj929rg52zf63xix351dlqi9"
   },
   "stable": {
    "version": [
@@ -57506,6 +58327,30 @@
   }
  },
  {
+  "ename": "just-mode",
+  "commit": "4ae56fd7c24a37769aeaba2de086a126d6ff23d3",
+  "sha256": "0sm5l2jb0k17661738jfx6hz06j6kdadwsc86ck750mpw0pb391r",
+  "fetcher": "github",
+  "repo": "leon-barrett/just-mode.el",
+  "unstable": {
+   "version": [
+    20210311,
+    2359
+   ],
+   "commit": "45c248fe72d4a15c5a9f26bc0b27adb874265f53",
+   "sha256": "065nnm4r6n83lbsn47idrxn3j1vpwnik683fgc4afhi5mm4ij89b"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    4
+   ],
+   "commit": "8c0d9bec38f717be1549e74839360e35587739e0",
+   "sha256": "1568fwh6y9584lyx57iq9ncw0xn4j1ywdbq38sk9hlpgbpsy8ln4"
+  }
+ },
+ {
   "ename": "jvm-mode",
   "commit": "7cdb7d7d7b955405eb6357277b5d049df8aa85ce",
   "sha256": "1r283b4s0pzq4hgwcz5cnhlvdvq4gy0x51g3vp0762s8qx969a5w",
@@ -57543,14 +58388,14 @@
   "repo": "TxGVNN/emacs-k8s-mode",
   "unstable": {
    "version": [
-    20201215,
-    1656
+    20210219,
+    1317
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "9d37e64b9bdc1778481687ca04e2ee5a96bc0474",
-   "sha256": "054pasvk5xspdndsc962z3d3z5jgpd28ysag5pxa8dfh3yz65vxq"
+   "commit": "0df142ac98bcd072dd7017053c9c9c476345aeef",
+   "sha256": "1nxcp1hq9d1j7whfak60j4dmzsfmq2mgmdxxvlj3az7p7vannd2v"
   },
   "stable": {
    "version": [
@@ -57694,16 +58539,16 @@
   "repo": "jmorag/kakoune.el",
   "unstable": {
    "version": [
-    20201111,
-    2159
+    20210212,
+    2031
    ],
    "deps": [
     "expand-region",
     "multiple-cursors",
     "ryo-modal"
    ],
-   "commit": "fa27e48b49d42ed6d8b4492d7c734b0f1e647fc1",
-   "sha256": "1qg6crhqraj78frdqbqr260j9l0h8cdp96bqzwjwai8ia16zskn7"
+   "commit": "34af1bc1225b044d9a15d8c276b7e33b12cb8720",
+   "sha256": "08b1r4yz7ikzwxn4hlip75vmd77hc8nsmiphdw46a9h6w9aw0v30"
   }
  },
  {
@@ -57808,8 +58653,8 @@
     "parseedn",
     "s"
    ],
-   "commit": "1376d50f1fc91f9345351aeb4960b54bf83be59e",
-   "sha256": "06zp5kshcsxf91d4as0nw1ncxx1a8ii6npzvk485sjrghnldsccm"
+   "commit": "755b0dfb3bd676c769c4b4aeb81c2cd5828bd207",
+   "sha256": "1snrzah6pcxd9vm6crxz85c5nl6zfhfbc0581z765g2vg87qcb12"
   },
   "stable": {
    "version": [
@@ -57834,15 +58679,15 @@
   "repo": "ogdenwebb/emacs-kaolin-themes",
   "unstable": {
    "version": [
-    20201216,
-    717
+    20210315,
+    1754
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "5694f27f6e17bf2d840fa04728d392b5df77e20c",
-   "sha256": "1c5hdr654f012lj3ssxsavbnij0i109nykwcsgl2c2pb9yxqr5rw"
+   "commit": "80d0a5824fedb332432d5999af9842316b7dc3f2",
+   "sha256": "0309vmrbw7a4r0gnsdd5jyfql2fl3lbh3gsnagynvq7rzv9ryr1c"
   },
   "stable": {
    "version": [
@@ -57930,11 +58775,11 @@
   "repo": "delaanthonio/kconfig-mode",
   "unstable": {
    "version": [
-    20200628,
-    1721
+    20210321,
+    1106
    ],
-   "commit": "d9fdf751646abe2b75b7bbeb46e7552e0f36f290",
-   "sha256": "0dhkggvni5k4rnj2m6lva99hj1925b4w24dh9nv3m9w0x7b49263"
+   "commit": "7d03fa239e6879854c3b26c8e750489eceb58503",
+   "sha256": "0j07h1g8xcs6lq6gyi594zb353x9igi9k9iz8nci8gy79l3n7l3m"
   }
  },
  {
@@ -57984,14 +58829,14 @@
   "repo": "conao3/keg.el",
   "unstable": {
    "version": [
-    20201204,
-    406
+    20210226,
+    2246
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "18c675aa2ff1749eb42f081f0549398b82cd4540",
-   "sha256": "1mz5rfzyv4varn09pza5yb851vmsbicsz4zgc0y7zni2bhlj9250"
+   "commit": "e4c7d9d8f823fa717df5f0e7039d525758429fc9",
+   "sha256": "0idr47ssysz3qp2cdrciapljwm7zh76fnj3vgpz9i2wdmgr12m2d"
   }
  },
  {
@@ -58005,8 +58850,8 @@
     20200601,
     333
    ],
-   "commit": "18c675aa2ff1749eb42f081f0549398b82cd4540",
-   "sha256": "1mz5rfzyv4varn09pza5yb851vmsbicsz4zgc0y7zni2bhlj9250"
+   "commit": "e4c7d9d8f823fa717df5f0e7039d525758429fc9",
+   "sha256": "0idr47ssysz3qp2cdrciapljwm7zh76fnj3vgpz9i2wdmgr12m2d"
   }
  },
  {
@@ -58035,6 +58880,14 @@
     20201109,
     1358
    ],
+   "commit": "7fd89c306c975a1fa3ab16ba7a4d3b102130a868",
+   "sha256": "1m1p3iydn5s3dlmjv751ligbwxkg472rhcbk80q2y1lnwjsnbhdy"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
    "commit": "dda02615b45a86c806d61e0484e08aa51343f8d8",
    "sha256": "08zxn25jbd3sqwd2bsbnh9kj8jf5jygyf8x4i8i6k89jw2fd7mds"
   }
@@ -58168,11 +59021,11 @@
   "repo": "tarsius/keycast",
   "unstable": {
    "version": [
-    20201229,
-    1006
+    20210123,
+    1149
    ],
-   "commit": "b02892ec77ef8b83c957652c7859422d6f46e051",
-   "sha256": "1ggl3k2h9y7nwhawpddl0mk9smm5bpq42fyp1pq64z67zrb4217l"
+   "commit": "a3a0798349adf3e33277091fa8dee63173b68edf",
+   "sha256": "08n4lfd6zb0qwpaw48q7p1mi6rn5rzja02113fphz7ra2kapbpva"
   },
   "stable": {
    "version": [
@@ -58265,26 +59118,26 @@
   "repo": "tarsius/keymap-utils",
   "unstable": {
    "version": [
-    20201125,
-    1434
+    20210125,
+    823
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "6cefdf42d95a20565d51974d73ad38749c46cddd",
-   "sha256": "0qlp9hfb3kzp36c03zjxv7sxgsikqmfjm0ynvgqch3bccwqbsz1v"
+   "commit": "0b282e19ac3d23b9a74f656b137b9eebeb2aaa39",
+   "sha256": "0ni03xnakai9ncq07gwzqy4walgijd04bnxslk3b4xnnk60i8m2h"
   },
   "stable": {
    "version": [
     3,
-    0,
-    3
+    1,
+    0
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "195e0ca5b1b9967faf94a3e5a634d8975b796705",
-   "sha256": "0ckv9mbqb1f2lp17sv3nxjwww4ph9v3bhlxwvchvkkdlbcg87i5n"
+   "commit": "0b282e19ac3d23b9a74f656b137b9eebeb2aaa39",
+   "sha256": "0ni03xnakai9ncq07gwzqy4walgijd04bnxslk3b4xnnk60i8m2h"
   }
  },
  {
@@ -58298,6 +59151,14 @@
     20190109,
     530
    ],
+   "commit": "f7041deccd9d03066c2fe41c3443c42a4713ac02",
+   "sha256": "1pj621z2ywwx6kybhyifm9grp9bkhk6f3fwancn0x53c33zp2daq"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
    "commit": "9de65a27e10d8ae47aa6d28c02c3eb82ee8c0b2e",
    "sha256": "1ybbayxfix63rwc8p5kl4wxxlk6vg53abw40fqrlkbc6qrr7nm5c"
   }
@@ -58485,14 +59346,14 @@
   "repo": "mrkkrp/kill-or-bury-alive",
   "unstable": {
    "version": [
-    20190713,
-    1340
+    20210320,
+    1231
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "7db85a3f3004ff400e24105d1875f4e3a6eec7a6",
-   "sha256": "02nv6hzzr60gn24ra88smrwmkfjcb33c987dcgxqv7rzjpdjagnx"
+   "commit": "388067e764bf3922234196e2e9dd9e8f664c634d",
+   "sha256": "0rxzl3rsa45jq8b8bjirsc6yry95zxlyp81v5r4hkvgyxqhcp3c1"
   },
   "stable": {
    "version": [
@@ -58600,11 +59461,11 @@
   "repo": "kivy/kivy",
   "unstable": {
    "version": [
-    20180702,
-    2029
+    20210318,
+    2106
    ],
-   "commit": "554e98fb7c439d182a48dce7276932139a325f02",
-   "sha256": "1afw0ak9wbf63d23sfp78a9ial4vscw002p0b47rlsq895j683cb"
+   "commit": "09c957050af1c37d381d855ac886fb2aa2896d39",
+   "sha256": "1lfbl1kvnw09qbcsxks14kj9ya1gsahs9wmgznn100d7nqnjwhsc"
   },
   "stable": {
    "version": [
@@ -58624,14 +59485,14 @@
   "repo": "stardiviner/kiwix.el",
   "unstable": {
    "version": [
-    20210113,
-    1834
+    20210219,
+    51
    ],
    "deps": [
     "request"
    ],
-   "commit": "e5821f5ccb34262aedcb4ea3a19e583c6a97e2f8",
-   "sha256": "1g9cn34r948a0g9wyda1kzlq33ddgmarl9j6wbb76g0fgkh7qjh9"
+   "commit": "0c5e1619f079df822686cf42af5859111b6afd44",
+   "sha256": "179wsr1ffsl4hm4vnb0zzbw338jni5pz8ndgkfq21jppgzk8mlna"
   },
   "stable": {
    "version": [
@@ -58663,17 +59524,17 @@
  },
  {
   "ename": "klere-theme",
-  "commit": "07a3e348d69738ae59fce3570a61b0cdc565fdb8",
-  "sha256": "1lgvk6q2853rpk15i91zf917r8wmrb7bnagp4x02fws49x83hqrs",
-  "fetcher": "github",
-  "repo": "WammKD/emacs-klere-theme",
+  "commit": "b6f489036d7d3d171f0ff2613e3192f73c956b3d",
+  "sha256": "0hqj3jf5l79gf59llx2qy6ml7r5bdwjnm8c7r0qfhyvrk0lp7smm",
+  "fetcher": "git",
+  "url": "https://codeberg.org/WammKD/emacs-klere-theme.git",
   "unstable": {
    "version": [
-    20180415,
-    1823
+    20210320,
+    1912
    ],
-   "commit": "c064f9e5c44173c239fce239a62c8d5e61827672",
-   "sha256": "1rfdk35k1cj1z5gnsckcy93mqgj1amqzb13b89k11bnzc2m6r7zl"
+   "commit": "f9eacacc00455e6c42961ec41f24f864c2a05ace",
+   "sha256": "10a84q8ilzs5b8f8yf2awlyfa8v3s6gr1lz459nlnkq9fflxwdj1"
   }
  },
  {
@@ -58888,8 +59749,8 @@
   "repo": "abrochard/kubel",
   "unstable": {
    "version": [
-    20201223,
-    1730
+    20210326,
+    2053
    ],
    "deps": [
     "dash",
@@ -58897,8 +59758,8 @@
     "transient",
     "yaml-mode"
    ],
-   "commit": "9b1aa4830a4470ff8f11ecc0bc80b5cdaee473fd",
-   "sha256": "1n1z8w2n7raxfmd4la2knzvs9vnprcdhxjlp21k6r757k75na3qn"
+   "commit": "91d1c8e97e4168fc49548c3449b4a60568c96790",
+   "sha256": "16s6iy3igb40r29x4bpb2x9763pf1fg5cygfdgabjq8xq36slmg8"
   },
   "stable": {
    "version": [
@@ -58930,8 +59791,8 @@
     "evil",
     "kubel"
    ],
-   "commit": "9b1aa4830a4470ff8f11ecc0bc80b5cdaee473fd",
-   "sha256": "1n1z8w2n7raxfmd4la2knzvs9vnprcdhxjlp21k6r757k75na3qn"
+   "commit": "91d1c8e97e4168fc49548c3449b4a60568c96790",
+   "sha256": "16s6iy3igb40r29x4bpb2x9763pf1fg5cygfdgabjq8xq36slmg8"
   },
   "stable": {
    "version": [
@@ -58954,16 +59815,16 @@
   "repo": "chrisbarrett/kubernetes-el",
   "unstable": {
    "version": [
-    20200911,
-    756
+    20210219,
+    625
    ],
    "deps": [
     "dash",
     "magit",
     "magit-popup"
    ],
-   "commit": "f4c763016620a4ddb41698bb8aa02b18e07ac509",
-   "sha256": "129qfb8c18lj6ln8brf9jqzp16vq930hf31rav7xqzsfp0h8ixwg"
+   "commit": "de4ff6ccdf58a939908d384efe9cf06b2bcabe12",
+   "sha256": "0nz34h601him6x1a6fkvzvr4r3f5d55cz520ddsmin9zwpq7rlhq"
   },
   "stable": {
    "version": [
@@ -58995,8 +59856,8 @@
     "evil",
     "kubernetes"
    ],
-   "commit": "f4c763016620a4ddb41698bb8aa02b18e07ac509",
-   "sha256": "129qfb8c18lj6ln8brf9jqzp16vq930hf31rav7xqzsfp0h8ixwg"
+   "commit": "de4ff6ccdf58a939908d384efe9cf06b2bcabe12",
+   "sha256": "0nz34h601him6x1a6fkvzvr4r3f5d55cz520ddsmin9zwpq7rlhq"
   },
   "stable": {
    "version": [
@@ -59109,6 +59970,68 @@
   }
  },
  {
+  "ename": "l",
+  "commit": "36d7dce3ad5cfc4047800c84945b714df2af0632",
+  "sha256": "0wkgl3sw7wr3fqlgb3hzw64fawha4lnxbh12w9d7196bfwnm3ny2",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~tarsius/l",
+  "unstable": {
+   "version": [
+    20210214,
+    1130
+   ],
+   "deps": [
+    "seq"
+   ],
+   "commit": "518203abc6cee13c73c2d91282354ed59f00f15e",
+   "sha256": "1s3fndzjhz0xvbhdb0y7raa7zqrpws1xm79blgfcxcrv2fbmbzan"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "seq"
+   ],
+   "commit": "518203abc6cee13c73c2d91282354ed59f00f15e",
+   "sha256": "1s3fndzjhz0xvbhdb0y7raa7zqrpws1xm79blgfcxcrv2fbmbzan"
+  }
+ },
+ {
+  "ename": "laas",
+  "commit": "db04bf3e4da0a51cbbab7db4c6070f1d06053c90",
+  "sha256": "1cpd9zflk57fb70xjlkfwr9ghv11xmvad5px0fzb6gf51gqh3g6x",
+  "fetcher": "github",
+  "repo": "tecosaur/LaTeX-auto-activating-snippets",
+  "unstable": {
+   "version": [
+    20210308,
+    336
+   ],
+   "deps": [
+    "aas",
+    "auctex",
+    "yasnippet"
+   ],
+   "commit": "78b10f0e1629283f8ba0f5bd1e28cf9a606362fd",
+   "sha256": "077hnz3gzqzp1pnfksr88p2q33l4ghz6rlxlqajnmb42cv64rxv1"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "deps": [
+    "aas",
+    "yasnippet"
+   ],
+   "commit": "94be7523159ee261077a33094775c7f73218a900",
+   "sha256": "0qyj4xwsxhn78akkv08ka9k47aa3jssd4mgws7ccbnqj68fv78gg"
+  }
+ },
+ {
   "ename": "lab-themes",
   "commit": "c5817cb4cb3a573f93bacfb8ef340bef0e1c5df4",
   "sha256": "10gvrrbqp6rxc9kwk8315pa1ldmja42vwr31xskjaq0l4fd28kx0",
@@ -59185,16 +60108,16 @@
   "repo": "Deducteam/lambdapi",
   "unstable": {
    "version": [
-    20210115,
-    651
+    20210325,
+    1344
    ],
    "deps": [
     "eglot",
     "highlight",
     "math-symbol-lists"
    ],
-   "commit": "e4205c5da3a0c99f0b29677736711ee069e2c175",
-   "sha256": "0kxdli25dbzq7mjinnvfxy2x9zy79062l45kafpayywa1ipwgfkp"
+   "commit": "5a3c307928438afec317bbb88d56fd67ae89f87c",
+   "sha256": "1y3szymdb8xf6kv6g9hlmf89bcy3r8c1qzf9gh968yml2gqzrfhb"
   }
  },
  {
@@ -59301,25 +60224,25 @@
   "repo": "lassik/emacs-language-id",
   "unstable": {
    "version": [
-    20201217,
-    1633
+    20210207,
+    1829
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "3f0ad28202207c266bd8fc7904b224db69ceccf6",
-   "sha256": "0rc6hggdqpfvcq1kx6ghnzqzn7842331b0qfng42vmqn44mk9skx"
+   "commit": "2c99ce29b86fc635649f4e89723912dc1cc4f36c",
+   "sha256": "12fzzdc4jns440gb71iydsicni646gciaxv50p0wrfk9mbppidck"
   },
   "stable": {
    "version": [
     0,
-    10
+    12
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "3f0ad28202207c266bd8fc7904b224db69ceccf6",
-   "sha256": "0rc6hggdqpfvcq1kx6ghnzqzn7842331b0qfng42vmqn44mk9skx"
+   "commit": "2c99ce29b86fc635649f4e89723912dc1cc4f36c",
+   "sha256": "12fzzdc4jns440gb71iydsicni646gciaxv50p0wrfk9mbppidck"
   }
  },
  {
@@ -59570,11 +60493,11 @@
   "repo": "pekingduck/launchctl-el",
   "unstable": {
    "version": [
-    20200531,
-    1043
+    20210309,
+    1113
    ],
-   "commit": "96886b7e64d15ffd3319c8b4b04310ccdc648576",
-   "sha256": "0mw1c14ysh186lbgmmyp01hszdgjm605diqfq6a17a7dd7fn549a"
+   "commit": "86cbb8980de4641b552a792389cc2cb9b2718ee4",
+   "sha256": "08prmsx6ski5j1pnzr7v3hxvbdrb5by8x2dihwhz0wjgfsqj13mr"
   }
  },
  {
@@ -59682,11 +60605,11 @@
   "repo": "conao3/leaf.el",
   "unstable": {
    "version": [
-    20201211,
-    412
+    20210316,
+    1822
    ],
-   "commit": "e0c4b7484ab6ee3bbf8413f620ccb99af4328d2f",
-   "sha256": "18vvl8a5s6n1kky31n0khnv89998gy9vfk5q58hkczfadc6nss76"
+   "commit": "ab5cc26b56a6a53a3338ebfde17b746522c2c14c",
+   "sha256": "1ds545sh8hg2vg5l7fm4v6z31lzax14ivdni3a37278jfx82xxrx"
   },
   "stable": {
    "version": [
@@ -59719,6 +60642,25 @@
   }
  },
  {
+  "ename": "leaf-defaults",
+  "commit": "326fab332b9dec9660414906aafd220986372906",
+  "sha256": "1a08xjjjf9w3scw2bzbvlxak4nmjjia9icnf01ilhcfmlqa3rwdc",
+  "fetcher": "github",
+  "repo": "conao3/leaf-defaults.el",
+  "unstable": {
+   "version": [
+    20210301,
+    118
+   ],
+   "deps": [
+    "leaf",
+    "leaf-keywords"
+   ],
+   "commit": "96ce39d4f16736f1e654e24eac16a2603976c724",
+   "sha256": "1z56x3wnyakilgxak2yyf6rf35072996szxfz712lmdwqs6xfqv4"
+  }
+ },
+ {
   "ename": "leaf-keywords",
   "commit": "dfe671ccd5a87ba4157f55e2a16a39dfaa10c027",
   "sha256": "0i5hn1051hfbppbsv2m5p7h1rrn9pbvsps6vsk84ssqvhj7ryvyb",
@@ -59726,14 +60668,14 @@
   "repo": "conao3/leaf-keywords.el",
   "unstable": {
    "version": [
-    20201225,
-    1406
+    20210222,
+    1243
    ],
    "deps": [
     "leaf"
    ],
-   "commit": "64c5ec702b7fab83770c539d613d8c6610ce510d",
-   "sha256": "0qzmnbn91g02g6vhilx081xz6n1360a3ri64rpzd8avcgmrkb1vr"
+   "commit": "4146621f4ae80ef0c30160337119441c1f6334b6",
+   "sha256": "16iv1cvlky2gij1ndx2d6q8l35axm72bx52n6v5y3h21aibj197n"
   },
   "stable": {
    "version": [
@@ -59817,18 +60759,17 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20200930,
-    604
+    20210305,
+    1705
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "f",
     "flycheck",
     "s"
    ],
-   "commit": "cc1f5fadf8e9ae08aa25828985edc97df04d94a7",
-   "sha256": "0v03bisr0ljk1ypbicgh9izxwazz8ry5xcd7r1lqb339xqb0bzqb"
+   "commit": "5c50338ac149ca5225fc737be291db1f63c45f1d",
+   "sha256": "13vrg0pp7ca0lh4j9cyg4pgfnbvf2kvbrgvvcmn1h7l9py2n8alj"
   }
  },
  {
@@ -59879,11 +60820,11 @@
   "repo": "pfitaxel/learn-ocaml.el",
   "unstable": {
    "version": [
-    20200224,
-    2229
+    20210209,
+    4
    ],
-   "commit": "86505672be0aabc9fa1048bc453ab2fc855b27e1",
-   "sha256": "00j6j2n0z616r9p78wp8hk62d9s2dpzlmflfm7ilrx40dnd4nlgj"
+   "commit": "ac7e2887baebedd51afbadc9e4c6f7b59351b0bb",
+   "sha256": "0v6nw2yqy8lhwssq2myx91jjlsg8d97f60yhrpjk3qc62037q60b"
   }
  },
  {
@@ -59924,11 +60865,11 @@
   "repo": "ledger/ledger-mode",
   "unstable": {
    "version": [
-    20210106,
-    227
+    20210322,
+    2306
    ],
-   "commit": "bcd8cefb720702db88986a52bb66e08e2e451c05",
-   "sha256": "1l2lhz45lc7njdv3kl5g8z5ig6vykxlp446raaif14k2flhw24a0"
+   "commit": "32fef097970e66b6cc75ee8233a7edaeee6431df",
+   "sha256": "1yv2lb3wpnck5ig8n4z7nwlksi6frnfjlh6fqslwqnxyz5n3xsr0"
   },
   "stable": {
    "version": [
@@ -59963,8 +60904,8 @@
   "repo": "kaiwk/leetcode.el",
   "unstable": {
    "version": [
-    20200730,
-    1433
+    20210121,
+    1600
    ],
    "deps": [
     "aio",
@@ -59973,8 +60914,8 @@
     "log4e",
     "spinner"
    ],
-   "commit": "153a3a6a9ffb64ffce37b3d203c13a85cc1884ab",
-   "sha256": "0600njpn3dvd8xrj21r5p69mc1r76ri1bjcxy2krp53dnsy3nvfb"
+   "commit": "9c44791407c3f4f76d903ee43367547803ae9c32",
+   "sha256": "14nlmgbkb8vyb0r25sdg03lg2h38gj83vspp9v9vsqyiiirhnvnh"
   },
   "stable": {
    "version": [
@@ -60208,6 +61149,25 @@
   }
  },
  {
+  "ename": "lexic",
+  "commit": "d7c4ddd3b6eb8243e6a4bdb9188e95ad24bfcf5e",
+  "sha256": "1im7x26gkhk3lkfx8r36q9aa0wayhi1dvbsrighn3pg86bl1k5cs",
+  "fetcher": "github",
+  "repo": "tecosaur/lexic",
+  "unstable": {
+   "version": [
+    20210318,
+    1315
+   ],
+   "deps": [
+    "dash",
+    "visual-fill-column"
+   ],
+   "commit": "4ded6be2ce3e8dadc5635a534827181a8c8ab602",
+   "sha256": "116qjizqa83zy6xas5cah58sf22ha05pps2004wfgng487ln9n59"
+  }
+ },
+ {
   "ename": "lfe-mode",
   "commit": "c44bdb00707c9ef90160e0a44f7148b480635132",
   "sha256": "0smncyby53ipm8yqslz88sqjafk0x6r8d0qwk4wzk0pbgfyklhgs",
@@ -60218,8 +61178,8 @@
     20201007,
     2214
    ],
-   "commit": "e5f20c459a13b35ed1e71b1d2667363af168e958",
-   "sha256": "0fapq9b14lxx5qm55yhcj2f1ym0kfrh6796ffb2i032bprh8n3m6"
+   "commit": "339021e29a50c71045736f322e961efbfc37bd99",
+   "sha256": "0416fcd1jnvhfj1bm3x60yi8n9cbxyyz11ri5k1g7b454pw54yb5"
   },
   "stable": {
    "version": [
@@ -60455,6 +61415,30 @@
   }
  },
  {
+  "ename": "ligo-mode",
+  "commit": "c8a86d223f5e764419aaf964d69a30350f74f904",
+  "sha256": "1289n7xbpx6ppil6rixck81xw3x0acrpcnxchml5yrwqrbr8czli",
+  "fetcher": "gitlab",
+  "repo": "ligolang/ligo",
+  "unstable": {
+   "version": [
+    20210303,
+    1751
+   ],
+   "commit": "cadaa46a6eafa305e9b176f6decc649708e6fec9",
+   "sha256": "04imm0j7d8f7xcfbha8vhyf66hsq1sv0y3r1i582r91psrzhlai6"
+  },
+  "stable": {
+   "version": [
+    0,
+    12,
+    0
+   ],
+   "commit": "70d42b3922d152e8be946c2415151d0551b591d4",
+   "sha256": "17k0v1nfcsq5kdfk05cdkh8nbbi5bqniydqcr6whzw3aawnjryyc"
+  }
+ },
+ {
   "ename": "line-reminder",
   "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
   "sha256": "1s3ibn7c1j6m7wdkb0z37apgfc0g8vhhrqcnmldf19zi3k13bm0x",
@@ -60462,26 +61446,26 @@
   "repo": "jcs-elpa/line-reminder",
   "unstable": {
    "version": [
-    20200914,
-    611
+    20210216,
+    1451
    ],
    "deps": [
     "indicators"
    ],
-   "commit": "65332e11735e2b3321bcab8e1456c13b6b6c1aa5",
-   "sha256": "1wcfzpl0vnpw8bfqbxb4jqkiziwcivwh7rdg0kjai1c3xhzfpwds"
+   "commit": "bc488bbdba2172629183891758cfa9466a64182f",
+   "sha256": "1993rwd9bgr1lqxgxzwp6h2r57ljsbjh5r08f57jaalanjp4iq55"
   },
   "stable": {
    "version": [
     0,
     4,
-    4
+    5
    ],
    "deps": [
     "indicators"
    ],
-   "commit": "65332e11735e2b3321bcab8e1456c13b6b6c1aa5",
-   "sha256": "1wcfzpl0vnpw8bfqbxb4jqkiziwcivwh7rdg0kjai1c3xhzfpwds"
+   "commit": "bc488bbdba2172629183891758cfa9466a64182f",
+   "sha256": "1993rwd9bgr1lqxgxzwp6h2r57ljsbjh5r08f57jaalanjp4iq55"
   }
  },
  {
@@ -60495,8 +61479,8 @@
     20180219,
     1024
    ],
-   "commit": "30cc83af69216ceced310c058ffae48bbe67fed1",
-   "sha256": "143l1fb3i0z7dxd39lw5qds62kv5ii9wy4gbqy3jg11swva0xkcd"
+   "commit": "a49afb9c168eaf8aaaf94f0c631b7b74db9a1d82",
+   "sha256": "0213ppx15rdb5cxg7w8978880fzv3dh2m9p6idkmlfj7bndfd411"
   },
   "stable": {
    "version": [
@@ -60724,20 +61708,20 @@
   "repo": "marcowahl/lisp-butt-mode",
   "unstable": {
    "version": [
-    20200727,
-    1441
+    20210215,
+    2206
    ],
-   "commit": "1b178fec96cb200574a17cb26ac0742d9df571a9",
-   "sha256": "01hj2kzy1mrzqc806jvgvkiyf7mkjacg944l3dblblyl7zgx8plx"
+   "commit": "2b719baf0ccba79e28fcb3c2633c4849d976ac23",
+   "sha256": "0rxqam6cgi404m8n45mw73j3jdd2gb3iwpmyyixbv3cxfb7y1b0l"
   },
   "stable": {
    "version": [
     2,
     0,
-    2
+    4
    ],
-   "commit": "008d2093608ee8fac184a6682e4ccf7b461dcaa1",
-   "sha256": "1kxvwd9y9q5ax9509b3xy3qqjpamfxzljyvbm1fc89qy50pdjxyr"
+   "commit": "2b719baf0ccba79e28fcb3c2633c4849d976ac23",
+   "sha256": "0rxqam6cgi404m8n45mw73j3jdd2gb3iwpmyyixbv3cxfb7y1b0l"
   }
  },
  {
@@ -60763,14 +61747,11 @@
   "repo": "lispunion/emacs-lisp-local",
   "unstable": {
    "version": [
-    20200409,
-    1330
-   ],
-   "deps": [
-    "cl-lib"
+    20210307,
+    1545
    ],
-   "commit": "ff745a937f79df51cac0209b3cc3c35ce1d1fc61",
-   "sha256": "0ffwjv5fpzia772iavn9ily5m7l73pxf0amgqizzmbx12rx3kkhg"
+   "commit": "3a3237a5c25db9526dfbe1b3ac1e7125f8f459b0",
+   "sha256": "1nm2kmilhk2hm9nfd1f6drhlpwkpk31s1072y8im16ci7i13lig4"
   },
   "stable": {
    "version": [
@@ -60807,8 +61788,8 @@
   "repo": "abo-abo/lispy",
   "unstable": {
    "version": [
-    20201226,
-    1746
+    20210121,
+    926
    ],
    "deps": [
     "ace-window",
@@ -60817,8 +61798,8 @@
     "iedit",
     "zoutline"
    ],
-   "commit": "1ad128be0afc04b58967c1158439d99931becef4",
-   "sha256": "15an4nbpri49imvkbhhynsmczkzhl4i037r8hcg4mam3w5nw14y8"
+   "commit": "38a7df4cbb16cfe3d62dc8ea98b50e2d9a572e58",
+   "sha256": "1q3sgk8ffwajmh8l7c4p4fz36xw4fqds8yqblbi5kardaa8bs8cs"
   },
   "stable": {
    "version": [
@@ -60853,8 +61834,8 @@
     "evil",
     "lispy"
    ],
-   "commit": "0f13f26cd6aa71f9fd852186ad4a00c4294661cd",
-   "sha256": "0ah59s9c24addlx1rxgm11jihn7w45xrf0wrmrb7mbmqf3rj3izc"
+   "commit": "89316f01822b2135e52ca27fd308d207ef618052",
+   "sha256": "10k3hxxpx2v2k4dyad7j1bzmr1q7rzvv4y6c67pa9zcqyaw8m91v"
   }
  },
  {
@@ -61084,14 +62065,14 @@
   "repo": "sulami/literate-calc-mode.el",
   "unstable": {
    "version": [
-    20201214,
-    1221
+    20210324,
+    1547
    ],
    "deps": [
     "s"
    ],
-   "commit": "1cf4fa18731248c6519667c16a6832b616b2b86f",
-   "sha256": "19icc2c3s4jmn0i55dfllpvbwm6f3wmscfp8nrgini2wk89260jl"
+   "commit": "211eec1e8b03503a53fa3eb4528375f36972f759",
+   "sha256": "1kawczbjdvjzyz3fflp1ij0vi9qcrl0yhrv7knx9j1zh187jp7z7"
   }
  },
  {
@@ -61131,14 +62112,11 @@
   "repo": "jingtaozf/literate-elisp",
   "unstable": {
    "version": [
-    20200708,
-    803
-   ],
-   "deps": [
-    "cl-lib"
+    20210318,
+    350
    ],
-   "commit": "722b7b3988336642167e0e0db12800a23410ab07",
-   "sha256": "19fckshqp1dxf7msjjk6cd506i0ydzqb1fqz879pfbbvhg6iclva"
+   "commit": "6979fc6369d55519d52ca1e8f7d80d73ce54c383",
+   "sha256": "180lsghxcjrn21c79jl7g9kkvd4lf4xabgbwbqlck7barfj256jv"
   },
   "stable": {
    "version": [
@@ -61338,6 +62316,36 @@
   }
  },
  {
+  "ename": "llama",
+  "commit": "773b273063715a9b4373f23c583880948d812826",
+  "sha256": "13i2s5aqgk3hb3b3rvm597dhapajbsybr3vrkjswq5p36mda66fq",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~tarsius/llama",
+  "unstable": {
+   "version": [
+    20210201,
+    837
+   ],
+   "deps": [
+    "seq"
+   ],
+   "commit": "f2f1476e88153b167bf4ce755f7455fcb3f98458",
+   "sha256": "0qnzbamf763h8fwjsn7i47a1amb8nixl25zw58jh4hhl470czi2f"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "seq"
+   ],
+   "commit": "2027ce79165bf40314ad838c282920c53b5d7eae",
+   "sha256": "1jnll9xaxfwwvs0xjpdz8y6xlrsckm3a8ri5ml8k3fp81yby9as5"
+  }
+ },
+ {
   "ename": "lms",
   "commit": "7d6c24152f88dad15ef9f304c0016a97ede71dab",
   "sha256": "1nksla9i7b4nmnzppyw6fq5kzh8jyqjfxn45g60c4mi2mn3p95a1",
@@ -61455,11 +62463,11 @@
   "repo": "fourier/loccur",
   "unstable": {
    "version": [
-    20191022,
-    1955
+    20210224,
+    2041
    ],
-   "commit": "284d7bb285bd382be6c1936077de7e2246fa2374",
-   "sha256": "16jslrdzxlcl6s5jiylqfv48xrm7fqk765jwcgzayjl94939r22l"
+   "commit": "01b7afa62589432a98171074abb8c5a1e089034a",
+   "sha256": "1b1x1xsiwqzsiss1jc6w990v1vfvbn5d5w67yzmx59s9ldjmdqq2"
   }
  },
  {
@@ -61622,11 +62630,11 @@
   "repo": "Wilfred/logstash-conf.el",
   "unstable": {
    "version": [
-    20200725,
-    1843
+    20210123,
+    1949
    ],
-   "commit": "131565042f8f12b9b88bd477959246dd034fa7d6",
-   "sha256": "1cyrmhnc38piw8q6d8j8xwyk0vl0a00mzjhmswkwd76w06adr9md"
+   "commit": "ebc4731c45709ad1e0526f4f4164020ae83cbeff",
+   "sha256": "1bjmd1xy45p4v2307sxd6mna9iqxvvz82sx5jbdf3hz5d71w5vfn"
   },
   "stable": {
    "version": [
@@ -61785,35 +62793,6 @@
   }
  },
  {
-  "ename": "love-minor-mode",
-  "commit": "0f224c4c7519b3668b1270c957227e486896b7b6",
-  "sha256": "1skg039h2hn8dh47ww6n9l776s2yda8ariab4v9f56kb21bncr4m",
-  "fetcher": "github",
-  "repo": "ejmr/love-minor-mode",
-  "unstable": {
-   "version": [
-    20170727,
-    536
-   ],
-   "deps": [
-    "lua-mode"
-   ],
-   "commit": "3ca8f3405338f2d6f4fbcdd5e89342a46378543a",
-   "sha256": "1hwm7yxbwvb27pa35cgcxyjfjdjhk2a33i417q2akc7vppdbcmzh"
-  },
-  "stable": {
-   "version": [
-    1,
-    2
-   ],
-   "deps": [
-    "lua-mode"
-   ],
-   "commit": "3ca8f3405338f2d6f4fbcdd5e89342a46378543a",
-   "sha256": "1hwm7yxbwvb27pa35cgcxyjfjdjhk2a33i417q2akc7vppdbcmzh"
-  }
- },
- {
   "ename": "lox-mode",
   "commit": "8a4f385fd128097781b563ad91d4aa8301167f5e",
   "sha256": "14mqn4r2jmz661gyvzm48s9qb98w75sjflmrgqg6sslaca98jrpi",
@@ -61850,8 +62829,8 @@
    "deps": [
     "lispy"
    ],
-   "commit": "c3da907fdc1c7da8b0c19721605bf63d9d1be404",
-   "sha256": "1znjl9v72sy87ir6ia1qkgrfnxdgh9fk5pdl4k002labmsi2aw93"
+   "commit": "076ce9acb68f6ac1b39127b634a91ffd865d13d8",
+   "sha256": "10sab50wmr3zn7jgzx93201ymhmacqacn3m2qllsqkfw2gpsi6dn"
   }
  },
  {
@@ -61862,8 +62841,8 @@
   "repo": "emacs-lsp/lsp-dart",
   "unstable": {
    "version": [
-    20210110,
-    15
+    20210313,
+    1940
    ],
    "deps": [
     "dap-mode",
@@ -61874,14 +62853,14 @@
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "be9f979fa9cb098d064c3ab26d1f7ea7c65cbd23",
-   "sha256": "03g97sm3y5y1y8crwlc8kvpgrrljyym5yq6qz9llpwy8cg9srchw"
+   "commit": "f3b70ec0e6adf3a51e15f9a3effb182c2363493d",
+   "sha256": "0iyp844wnvxjrp860dgkr10qrfsaj2rcssj8dv93hhv8pg91fhsk"
   },
   "stable": {
    "version": [
     1,
-    17,
-    12
+    18,
+    0
    ],
    "deps": [
     "dap-mode",
@@ -61892,8 +62871,8 @@
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "be9f979fa9cb098d064c3ab26d1f7ea7c65cbd23",
-   "sha256": "03g97sm3y5y1y8crwlc8kvpgrrljyym5yq6qz9llpwy8cg9srchw"
+   "commit": "f3b70ec0e6adf3a51e15f9a3effb182c2363493d",
+   "sha256": "0iyp844wnvxjrp860dgkr10qrfsaj2rcssj8dv93hhv8pg91fhsk"
   }
  },
  {
@@ -61904,15 +62883,15 @@
   "repo": "emacs-lsp/lsp-docker",
   "unstable": {
    "version": [
-    20201102,
-    1802
+    20210217,
+    1102
    ],
    "deps": [
     "dash",
     "lsp-mode"
    ],
-   "commit": "38f75193f7a8a0e095975104f3ff1c58b3c7c59c",
-   "sha256": "0ghbcih8hshiyw0mwr2qjhzjbs1sikxl1ih4m41fk4pzd86vjbm4"
+   "commit": "a5b9ae58fc46b683bccd97d6722f9bd1663fd79a",
+   "sha256": "0gddfn5rxf7n4l9llziad95cmnn2zlyam7fwh1jbirrhwidg024q"
   }
  },
  {
@@ -61948,6 +62927,46 @@
   }
  },
  {
+  "ename": "lsp-grammarly",
+  "commit": "ececaeddf8d7d17ddd9bb20401ff96edb707c06f",
+  "sha256": "1lwk5pwiglp6xzh8d7fwb0nzr3zaqxcbfx6h9wl7vlnz6sz29z4m",
+  "fetcher": "github",
+  "repo": "emacs-grammarly/lsp-grammarly",
+  "unstable": {
+   "version": [
+    20210317,
+    538
+   ],
+   "deps": [
+    "grammarly",
+    "ht",
+    "keytar",
+    "lsp-mode",
+    "request",
+    "s"
+   ],
+   "commit": "f5675c58ba80258331dda99072c5bfac524dbf48",
+   "sha256": "0ziv51c9fq4yv8ll7087cd2bwqkl309b1a0gds67d160pj9swwhh"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    1
+   ],
+   "deps": [
+    "grammarly",
+    "ht",
+    "keytar",
+    "lsp-mode",
+    "request",
+    "s"
+   ],
+   "commit": "739a7efc7de6e2b0eca9e72268790431a0fb3185",
+   "sha256": "1ksa685ggp9z0zndscwy9azxjibxd9l79qzvh50i7mz4x9xzdjbd"
+  }
+ },
+ {
   "ename": "lsp-haskell",
   "commit": "1a7b69312e688211089a23b75910c05efb507e35",
   "sha256": "0pdcxnfp8ng24bfk695wpx5wcdqnjrjsfpks0xicih3mcdm1x9l8",
@@ -61955,15 +62974,15 @@
   "repo": "emacs-lsp/lsp-haskell",
   "unstable": {
    "version": [
-    20210108,
-    1332
+    20210209,
+    2150
    ],
    "deps": [
     "haskell-mode",
     "lsp-mode"
    ],
-   "commit": "5d3f4814f6ac44547a62551472cc76fbaebcccf7",
-   "sha256": "0qak0vl9jicx9sv4sa2ash5agxxsx8qycp4jk3wxs96q5kjshf62"
+   "commit": "7efbef3d206989faa8b691a4230a3ed872542187",
+   "sha256": "15xp3gjj9zdvxbhcgw21108s9y99rfmih5sqlk7f0m9hw5mqw4zm"
   }
  },
  {
@@ -61992,16 +63011,16 @@
   "repo": "emacs-lsp/lsp-ivy",
   "unstable": {
    "version": [
-    20201113,
-    2220
+    20210320,
+    913
    ],
    "deps": [
     "dash",
     "ivy",
     "lsp-mode"
    ],
-   "commit": "c70ee8b54357c56d1b972393ee53e57a2e545fbb",
-   "sha256": "01klra1yr3jk2fhk1s07ziygkfvv5qxgi8v30i8z13v5v4vi5mfx"
+   "commit": "515e5977b3d1f6cb521984f084868f28efd47e72",
+   "sha256": "1m05c80bf7d7kkk58c91c2f3lyln0wh6mvxbyi856fh1clb5gv13"
   },
   "stable": {
    "version": [
@@ -62025,13 +63044,12 @@
   "repo": "emacs-lsp/lsp-java",
   "unstable": {
    "version": [
-    20210105,
-    1625
+    20210309,
+    1856
    ],
    "deps": [
     "dap-mode",
     "dash",
-    "dash-functional",
     "f",
     "ht",
     "lsp-mode",
@@ -62039,8 +63057,8 @@
     "request",
     "treemacs"
    ],
-   "commit": "33364a268a61366f1a07596e9fe7bd0f6d73fd90",
-   "sha256": "0ii26773cm945z1s4vyfqgzjsizv1a9wiadgg3klnfz9748y93a4"
+   "commit": "542aaf16d6d3a410b0e41861d80f3fd6b5be7bb9",
+   "sha256": "07kpx8gx9v9v6zhpl7kyg3q4dgpkxk1n089cn1hdxr5vapw7xac9"
   },
   "stable": {
    "version": [
@@ -62119,15 +63137,15 @@
   "repo": "non-Jedi/lsp-julia",
   "unstable": {
    "version": [
-    20200912,
-    1106
+    20210310,
+    1116
    ],
    "deps": [
     "julia-mode",
     "lsp-mode"
    ],
-   "commit": "c523c250c4bd2777203101ab417e9b7312472f46",
-   "sha256": "0zgxgghsx9dw4b0i4p0l1kvp3bka7aw80iyr7x05sp1mwwchh2gb"
+   "commit": "c487ed715c49d863e8a8e76d13b37b6e694520d4",
+   "sha256": "0dqf34gq8rnskqj7m3vp8pxmzysg5bdchbyfhfz6h5yc0p52rvr4"
   },
   "stable": {
    "version": [
@@ -62157,8 +63175,8 @@
    "deps": [
     "lsp-mode"
    ],
-   "commit": "2140e65fc5d759cdf163128ef6ab15c246d6039b",
-   "sha256": "10qf62c6raqhikhmfrav6qhc1mj229mrabzs1swyc06sx1sgkiwf"
+   "commit": "5fc536f24dc659f998bc673129d9e7c4b20d297c",
+   "sha256": "1k34zpg6f3i1pb68zh6fc7azd4hmbclnjpad1893q2zhqwxqdwz8"
   },
   "stable": {
    "version": [
@@ -62181,21 +63199,20 @@
   "repo": "emacs-lsp/lsp-metals",
   "unstable": {
    "version": [
-    20201230,
-    706
+    20210217,
+    1027
    ],
    "deps": [
     "dap-mode",
     "dash",
-    "dash-functional",
     "f",
     "ht",
     "lsp-mode",
     "lsp-treemacs",
     "treemacs"
    ],
-   "commit": "c76eeb6b580fadf6a16357be8c22c197d22574fd",
-   "sha256": "0r1sihiximsgjf7dyh9rndxwy26d5kfz04y13b0gq2lhvrgjbbkv"
+   "commit": "51a89c1861eb505882c20393227f303ac33276e4",
+   "sha256": "1l4ic84qpcn2z54knzhw1mj61s699gpyg6a01vbq9mbpx1sxs9lf"
   },
   "stable": {
    "version": [
@@ -62224,20 +63241,19 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20210114,
-    1955
+    20210326,
+    1728
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "f",
     "ht",
     "lv",
     "markdown-mode",
     "spinner"
    ],
-   "commit": "0062a7cd4ab674390287e6b20d93ac42ed1f5512",
-   "sha256": "16awnan07b6ayf0rnxs8hal468bc7i24gw0l849s04v41y2i35cg"
+   "commit": "7d72c9e79b17bb96477326bc97a9251bf64eb0fb",
+   "sha256": "0ngz46b1b4zilgbf90ghzcni7qz9qdwhmng4jpdqs3hv9a4n5c15"
   },
   "stable": {
    "version": [
@@ -62288,15 +63304,15 @@
   "repo": "emacs-lsp/lsp-origami",
   "unstable": {
    "version": [
-    20200914,
-    1846
+    20210126,
+    843
    ],
    "deps": [
     "lsp-mode",
     "origami"
    ],
-   "commit": "aa309589668d32a8b4bb23c8f41163f6ae208f7b",
-   "sha256": "1l5n01icyp00ljcs5sfk3wbp74gn53p0mj1l4fqdpi70c1wahwmv"
+   "commit": "bedea3d25552d6969e917a15a0acc3d333ddc742",
+   "sha256": "0sbqplrchfz7d662xk1xjrgxvijd3dzwpvphaksv6agv4bjikbad"
   },
   "stable": {
    "version": [
@@ -62385,16 +63401,16 @@
   "repo": "emacs-lsp/lsp-pyright",
   "unstable": {
    "version": [
-    20201014,
-    1620
+    20210220,
+    1714
    ],
    "deps": [
     "dash",
     "ht",
     "lsp-mode"
    ],
-   "commit": "71ff088ac4c93b0edd012f305a3dfd1602c5d21e",
-   "sha256": "03fgw10fq1s98xrmfzg8y9xv14yig3lgjc44x7mvlc5awsmv5lxa"
+   "commit": "65fb14128127fb1ddf68dd4cb3140d6c7911a093",
+   "sha256": "0qhs4cv01b7aqq5r6bk91xgwsp8yg1bpn68xk90iirsxlgfb1ffq"
   }
  },
  {
@@ -62405,14 +63421,14 @@
   "repo": "emacs-lsp/lsp-python-ms",
   "unstable": {
    "version": [
-    20201023,
-    1750
+    20210217,
+    1823
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "c4ebc7a11398733055a1dc07f9cffacd04d1c2dc",
-   "sha256": "0sdvqnk598gdzjrzrgwqg2m8fzs9dpbbzsp70hqnrkp14x9jklmi"
+   "commit": "689f6cf815c8ee2ca2332f31dfda8ddefb0b7e26",
+   "sha256": "13vc2pwxl2cl2qa3gjkpa6si3760y7xyrlg1ygk3g1633w756h80"
   },
   "stable": {
    "version": [
@@ -62475,8 +63491,26 @@
    "deps": [
     "lsp-mode"
    ],
-   "commit": "948c3a35fd05496a77af2d8935e754db112cb4c3",
-   "sha256": "1n9jfaq1w2vxhv2gpvmj3qyc8bwacyj6kdyw62hlgbl7xnhhhc6d"
+   "commit": "ff204ed820df8c3035ebdc4b5a583640d52caeeb",
+   "sha256": "1q9ml3r827am27fhs9vlrgsxnq43k3zjb3h5mi999da1nhqwcs49"
+  }
+ },
+ {
+  "ename": "lsp-tailwindcss",
+  "commit": "c837c3b97d7e833d22a1605dcf3c2ebc35c19e0c",
+  "sha256": "0cnkj1ahp48i8zx1qh0fbxf40cnv6d1i9c579kmkfmfbnvxpp080",
+  "fetcher": "github",
+  "repo": "merrickluo/lsp-tailwindcss",
+  "unstable": {
+   "version": [
+    20210315,
+    624
+   ],
+   "deps": [
+    "lsp-mode"
+   ],
+   "commit": "d11cdc25be8e20400a1f9005f716648dd2ce4a3f",
+   "sha256": "1gls3c2ai2axnsl2dh4vy8l6hr1fyzv4hxi6yss5fw0xs8rqq7c5"
   }
  },
  {
@@ -62487,19 +63521,18 @@
   "repo": "emacs-lsp/lsp-treemacs",
   "unstable": {
    "version": [
-    20201230,
-    2214
+    20210216,
+    1250
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "f",
     "ht",
     "lsp-mode",
     "treemacs"
    ],
-   "commit": "64e375fcc700d4d47cf52ad912e6863d479e3bfa",
-   "sha256": "19wy4xk0ll8pxdyq74a0zjlqkssc6ww21ac79zihndv90604c5km"
+   "commit": "3bae4a91e05d55d5ca92da272ffcd497f370e9df",
+   "sha256": "03dvf5vf74p3vjzv98csidw6hzpx2w7f20xmyy12cpiip76wanf0"
   },
   "stable": {
    "version": [
@@ -62520,23 +63553,22 @@
  },
  {
   "ename": "lsp-ui",
-  "commit": "883d739e46c32c95adcf41835078ba3604188eda",
-  "sha256": "0n4z7gmpkbz9azbk8pi4f368396y4s9bpqvkdykzq6ykqyswk4bm",
+  "commit": "c4b521f55483fd176f4a3f4fc5e0799fe4506580",
+  "sha256": "0g6pkdr05yihw6fl651yih5fa51kv2l1xy4sr4487z2m4azb223b",
   "fetcher": "github",
   "repo": "emacs-lsp/lsp-ui",
   "unstable": {
    "version": [
-    20210110,
-    1507
+    20210326,
+    507
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "fbe9a859f0b50097270ccf1314952de2d2039c12",
-   "sha256": "01xw3jpwffk5gg86s5n2i1jwn0xslc9bdbacfxy0iyrn6qp5jr1i"
+   "commit": "1dbea9ff206a626d5c2d735e3f8fcdac59827963",
+   "sha256": "175am5hycgxmd4329mnwgcjfpyycxyjip5wl96n297zxnb4m94wb"
   },
   "stable": {
    "version": [
@@ -62565,8 +63597,8 @@
     20201110,
     1250
    ],
-   "commit": "9454aeeb665df360543b47e162f03276a16b01a5",
-   "sha256": "0ssqqhvc08g5917i4lmsr698zr57v9hpnbw67l1lx48ra4vr6fcr"
+   "commit": "2d9a468b94acd8480299d47449b53136060b7b23",
+   "sha256": "1586k3friamcyfg1xszhkh1vaddrfxji1mn7rd7s8id8f7sp8mnv"
   },
   "stable": {
    "version": [
@@ -62781,8 +63813,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "703ee41303dc251b7672b7cba5aeb6aa54a76c90",
-   "sha256": "0cplbz7mc2zrxfk8g349ahb7gzli2hn5kda9155nbk8dw74xmj7d"
+   "commit": "94240ebb716f11af8427b6295c3f44c0c43419d3",
+   "sha256": "0c3l50qpdzracjncsbjv5chpvjdphhzwqk4jwv31fw6p62i1zvlb"
   },
   "stable": {
    "version": [
@@ -62868,6 +63900,25 @@
   }
  },
  {
+  "ename": "macrostep-geiser",
+  "commit": "2e154604ed9abf51f3779fdbff00850d13a91a9e",
+  "sha256": "09md4gmbk1lhrnj288vcq5apxjwys56np4msm2yfalfh2bhxzcg6",
+  "fetcher": "github",
+  "repo": "nbfalcon/macrostep-geiser",
+  "unstable": {
+   "version": [
+    20210324,
+    2141
+   ],
+   "deps": [
+    "geiser",
+    "macrostep"
+   ],
+   "commit": "8600fca05fd12a2e0ffe63238ddbfcb37c285dac",
+   "sha256": "1912hxbb7mbra91vjw1fnzbb4fd9ri59lc1hcrw196c7a4hzgv0y"
+  }
+ },
+ {
   "ename": "madhat2r-theme",
   "commit": "44a382a388821908306c0b8350fba91218515e1b",
   "sha256": "0y588skd6c2ykyp54d38ibwrqglnaanr15d45d51cvcvp9k7x508",
@@ -62938,14 +63989,14 @@
   "repo": "zk-phi/magic-latex-buffer",
   "unstable": {
    "version": [
-    20200816,
-    648
+    20210306,
+    422
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8a6e33f79a930d2c1977409f1980afc4cc99b909",
-   "sha256": "1f052yx0fib6vv2kqr21fv1nlsxc1b0mlcxasppxr6kig1jbj2x9"
+   "commit": "903ec91872760e47c0e5715795f8465173615098",
+   "sha256": "0n2f3y6b6n8ipvk99ai1hwqddkwg5y97ks068wvp4rr4fspxkm9k"
   }
  },
  {
@@ -62980,18 +64031,17 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210105,
-    1030
+    20210326,
+    329
    ],
    "deps": [
-    "async",
     "dash",
     "git-commit",
     "transient",
     "with-editor"
    ],
-   "commit": "25f432551347468ce97b8b03987e59092e91f8f0",
-   "sha256": "0vxsh75xynpfkfvmyyz8x3rppbwr9rgk7zjfil2af2kzba3p27vl"
+   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
+   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
   },
   "stable": {
    "version": [
@@ -63019,15 +64069,15 @@
   "repo": "magit/magit-annex",
   "unstable": {
    "version": [
-    20200516,
-    2028
+    20210210,
+    2312
    ],
    "deps": [
     "cl-lib",
     "magit"
    ],
-   "commit": "c5ecb4b53ea2461e737ea00242ef1e69e35da398",
-   "sha256": "0f1psh03hsb57h3r66zfa0jmwkky12121lhvpynlgj330ryxl5bj"
+   "commit": "870174f23faa00b003b3eb63452228511c2da597",
+   "sha256": "156d0gd0a2cx9rn0zb9i96s3l62rys1dpxcdix2j6aix6iv669ql"
   },
   "stable": {
    "version": [
@@ -63059,8 +64109,8 @@
     "magit",
     "transient"
    ],
-   "commit": "3425ad5b16cb48d6802b7e9ed044b4cd7a99c785",
-   "sha256": "10iinizl99aivrf9zihykabb5lyg62kxbmydwaf7swzxf4dgxn2k"
+   "commit": "2d4bdacf498ed3ff7d2c3574d346b2d24cbb12da",
+   "sha256": "0rbbprjax6af0np1m5prilh2ndbhhlzfrq8sb8mn5vi3is2w1mgs"
   }
  },
  {
@@ -63078,8 +64128,8 @@
     "magit",
     "xterm-color"
    ],
-   "commit": "fc4de96e3faa1c983728239c5e41cc9f074b73a2",
-   "sha256": "0gyjsjjjdbns8vlbja8wvmba8sq85ah7cawqqm0xjinrpfrhh8b7"
+   "commit": "1164a6c3e501e944f1a6a2e91f15374a193bb8d3",
+   "sha256": "1a24qpqdk00prprm5s4gwfi1hvdljp2808rg33qaaa1087zdavqj"
   }
  },
  {
@@ -63274,8 +64324,8 @@
    "deps": [
     "magit"
    ],
-   "commit": "f4b88f0c127faa154f138907bf4e98b1baf12fb6",
-   "sha256": "10l0z0c0q6sbf3id5dajws30cxzjvi5rgx1hl8jf6nxr5zcmcmm1"
+   "commit": "a6130871e5f4421618e66d9254d0b5df9f3a1ef2",
+   "sha256": "1zrgqcxp2jshp52m0sa73kk071hvisqlrk79k9is6smkjss97s8c"
   },
   "stable": {
    "version": [
@@ -63330,15 +64380,15 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210103,
-    1554
+    20210124,
+    1829
    ],
    "deps": [
     "libgit",
     "magit"
    ],
-   "commit": "25f432551347468ce97b8b03987e59092e91f8f0",
-   "sha256": "0vxsh75xynpfkfvmyyz8x3rppbwr9rgk7zjfil2af2kzba3p27vl"
+   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
+   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
   }
  },
  {
@@ -63373,10 +64423,10 @@
  },
  {
   "ename": "magit-p4",
-  "commit": "440d47ca465845eaa601ca8a6e4b15fc197e522b",
-  "sha256": "19p7h3a21jjr2h52ika14lyczdv6z36gl7hk1v17bffffac8q069",
+  "commit": "e6c16a59ca48a0b17cae90354e8929d31a5eef1f",
+  "sha256": "1c5qv1f2d8c114a5z21j0nkw285k3gx787l0c3cd9ls7awxfp1is",
   "fetcher": "github",
-  "repo": "qoocku/magit-p4",
+  "repo": "emacsorphanage/magit-p4",
   "unstable": {
    "version": [
     20170414,
@@ -63486,14 +64536,14 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210103,
-    1631
+    20210224,
+    1417
    ],
    "deps": [
     "dash"
    ],
-   "commit": "25f432551347468ce97b8b03987e59092e91f8f0",
-   "sha256": "0vxsh75xynpfkfvmyyz8x3rppbwr9rgk7zjfil2af2kzba3p27vl"
+   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
+   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
   },
   "stable": {
    "version": [
@@ -63550,13 +64600,13 @@
    "version": [
     2,
     2,
-    1
+    2
    ],
    "deps": [
     "magit"
    ],
-   "commit": "c833903732a14478f5c4cfc561bae7c50671b36c",
-   "sha256": "01kcsc53q3mbhgjssjpby7ypnhqsr48rkl1xz3ahaypmlp929gl9"
+   "commit": "99601f47f47a421576809595ca7463fd010760b1",
+   "sha256": "00lsfkmsz26pz1paqn73skgx747250vc2pa0n8n0h7ywxj9dkzvb"
   }
  },
  {
@@ -63567,14 +64617,14 @@
   "repo": "magit/magit-tbdiff",
   "unstable": {
    "version": [
-    20200519,
-    418
+    20210327,
+    350
    ],
    "deps": [
     "magit"
    ],
-   "commit": "e52e8ab4906996c410f6c6db890b9bfe0951d4ce",
-   "sha256": "0mp466bnm63pas8z0p6b0684i3rakb6cs5xzkz8jv3z3x34ak12c"
+   "commit": "99cb9c0501f0f1ea7ec3ebf0fb398f3d36cddafb",
+   "sha256": "189c4hrgbrwx44nidf4xv30yyb2y7lid57by0fn9hyi21nbk2gmx"
   },
   "stable": {
    "version": [
@@ -63815,15 +64865,15 @@
   "repo": "jerrypnz/major-mode-hydra.el",
   "unstable": {
    "version": [
-    20191030,
-    2354
+    20210221,
+    834
    ],
    "deps": [
     "dash",
     "pretty-hydra"
    ],
-   "commit": "20362323f66883c1336ffe70be24f91509addf54",
-   "sha256": "16krmj2lnk7j5ygdjw4hl020qqxg11bnc8sz15yr4fpy1p7hq5cz"
+   "commit": "84c1929a5153be169ca5c36737439d51dffde505",
+   "sha256": "1yw9xdyqbf285ljsspg8ajjx1bp1g27xpg85p84fsh88nr015rh5"
   },
   "stable": {
    "version": [
@@ -64282,11 +65332,19 @@
   "repo": "minad/marginalia",
   "unstable": {
    "version": [
-    20210114,
-    1652
+    20210324,
+    906
    ],
-   "commit": "327ad58bd69a372dc10dbb5b5d3d47f246e28020",
-   "sha256": "0nx5322278vr44aq27kaj5nr0rcq4d3wcbfyb3fpl80asj672m09"
+   "commit": "5ce5a0e6d23d92391167a49d994f093764ee0dee",
+   "sha256": "009ki4m5i0lvh9ml2jz93j4sbjab51c4qazz1858mq888hldpwr9"
+  },
+  "stable": {
+   "version": [
+    0,
+    4
+   ],
+   "commit": "e741b243b30f6cfe85e568cc551acff9a1e5e74f",
+   "sha256": "0piwzxp1zmwp876kyca0xcgyxgn8bn4wh5fnn88dkvdzi8mcgmkh"
   }
  },
  {
@@ -64394,11 +65452,11 @@
   "repo": "jrblevin/markdown-mode",
   "unstable": {
    "version": [
-    20210112,
-    1557
+    20210220,
+    1301
    ],
-   "commit": "3e380572a5177d0fa527c15efd15e340f53a923b",
-   "sha256": "1zhxw0cp95zy3qy9ai9k81zja5m31964nyyrjqzlywxx7zjk4x9g"
+   "commit": "051734091aba17a54af96b81beebdbfc84c26459",
+   "sha256": "11qybgasg4im76j4kryynqvqbqpxm1xfs5dxgjhr3whn3wiqba51"
   },
   "stable": {
    "version": [
@@ -64461,8 +65519,8 @@
   "repo": "ancane/markdown-preview-mode",
   "unstable": {
    "version": [
-    20181213,
-    1339
+    20210207,
+    2114
    ],
    "deps": [
     "cl-lib",
@@ -64470,8 +65528,8 @@
     "web-server",
     "websocket"
    ],
-   "commit": "f98d9114ca87e3e8e5ce70e601d13061eda15415",
-   "sha256": "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"
+   "commit": "01af98ac1adcc9cb247fbc6c80fb159c30360ee6",
+   "sha256": "0n6ywxq12jqacdpah350ha6gqryxsh0iix93m0xnyy34dq2by4rc"
   },
   "stable": {
    "version": [
@@ -64766,16 +65824,15 @@
   "repo": "matsievskiysv/math-preview",
   "unstable": {
    "version": [
-    20210108,
-    1121
+    20210219,
+    1431
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "s"
    ],
-   "commit": "6c83ab7c6e3df95e60e942a9017d0c218228d429",
-   "sha256": "1v32nip530j4lvvm9gsjr9f6i0p0i59lx3f3j32m25q0yvv4s8z6"
+   "commit": "08aa7c47ffc85c9cba1c9812e1c14250cc4192e4",
+   "sha256": "1z371v68aw92iaj5mbsk47mfr44scgkwazbf9i6gzygq84fdm6dh"
   }
  },
  {
@@ -64824,11 +65881,11 @@
   "url": "https://git.code.sf.net/p/matlab-emacs/src",
   "unstable": {
    "version": [
-    20201204,
-    736
+    20210302,
+    1630
    ],
-   "commit": "935c67274b84503640a9f90cce87b533461385ca",
-   "sha256": "08xjcva2fryw81zw1hd0glvq9pzkpnkcrkwp2i19032zzk3hqcxm"
+   "commit": "a47515461ae22fcb90b6f8e45a6304bcb44b953c",
+   "sha256": "0wffq7hn5vmgvyysvhkgngcp77mq5fddia1q3n90rmb0ql2z2qg2"
   }
  },
  {
@@ -64907,15 +65964,15 @@
   "repo": "sasanidas/maxima",
   "unstable": {
    "version": [
-    20201226,
-    1538
+    20210124,
+    2005
    ],
    "deps": [
     "s",
     "test-simple"
    ],
-   "commit": "1600cfc059a80ed8fa0d381b88f29ba658811cc5",
-   "sha256": "030sg31xh46vrmsafvn04sdvyv4vzqf8rf5ghrlina1gav6kybfd"
+   "commit": "5e80033e6fa9089d5cd6fa93f6484b544f2ba059",
+   "sha256": "0qh19a3yi5cccj01wxrlyaw1zcaxvpjhxc5qk3mf4f1l8gm1sfi2"
   },
   "stable": {
    "version": [
@@ -65345,16 +66402,16 @@
   "repo": "DogLooksGood/meow",
   "unstable": {
    "version": [
-    20210114,
-    1624
+    20210326,
+    1659
    ],
    "deps": [
     "cl-lib",
     "dash",
     "s"
    ],
-   "commit": "d012944ac149358d0e978b10ff0e8a090921e044",
-   "sha256": "0i89v52damd9jhg9sdqghxrcbdybix2cw8hzx6lawg847wc09j06"
+   "commit": "28b9f855f175b390cb00c35a0e55cc50725a0938",
+   "sha256": "12j1l48ahipw1w10kqg54ikfclib8a178cg9q6k9sn2q4v9bx0j6"
   }
  },
  {
@@ -65365,20 +66422,19 @@
   "repo": "ocaml/merlin",
   "unstable": {
    "version": [
-    20191025,
-    851
+    20210129,
+    1443
    ],
-   "commit": "a1a6e02756426f58a885846cbe56c4704b2a79e1",
-   "sha256": "1drx20bj1bb45n6wan0ys04qp4ccqjapi4056qn0ry6fdzx3c35d"
+   "commit": "cc17ed60630fb1831ad950fe62970b1c7a7f4c8b",
+   "sha256": "0mfvxg74h9mcs8pp9p3m498vflnpncvsa514qf36kajmbdbxn0sk"
   },
   "stable": {
    "version": [
-    3,
     4,
-    2
+    1
    ],
-   "commit": "c9761a552380838e9f530b5c47c0ea3c47c33565",
-   "sha256": "0i2nwkdh6cfzmnsdsr8aw86vs8j1k5jkjzrs61b9384wnffdbbmj"
+   "commit": "ab02f60994c81166820791b5f465f467d752b8dc",
+   "sha256": "1lsrn6739736gr72c83hnxdynqmvjbs8pq3spb74v39k7xixmh99"
   }
  },
  {
@@ -65418,14 +66474,14 @@
   "repo": "abrochard/mermaid-mode",
   "unstable": {
    "version": [
-    20200819,
-    1759
+    20210327,
+    7
    ],
    "deps": [
     "f"
    ],
-   "commit": "6ec97ab934023a8aa094705bb1c9803fd85d24c1",
-   "sha256": "1hhpihmacbam3fgk7pjlzn7hnakz38ksds052nzirvw6a68ynzgk"
+   "commit": "b8847cc15eee1a7e3c7e0eefc91f2296256f84b9",
+   "sha256": "002bv1z8hr5h30dp9m8jq0h8lzi668lj2asx89jigfsrz4z6k4kg"
   }
  },
  {
@@ -65436,11 +66492,11 @@
   "repo": "wentasah/meson-mode",
   "unstable": {
    "version": [
-    20200907,
-    743
+    20210321,
+    1136
    ],
-   "commit": "d995dafa388ec03c0113cd1ac46403c20ad18ab0",
-   "sha256": "1swipsr9j0r2rpngz0dwykqnbs84j3pspx70dxmqyjm7qqabypnq"
+   "commit": "88717d5256d4cf47a85756dc5e204ea23eec165d",
+   "sha256": "1y8j8qgy6pw80ja4ppzkdrcnq3k6qwzc1i81g7399rkpbj62kd53"
   },
   "stable": {
    "version": [
@@ -65513,16 +66569,16 @@
   "repo": "seblemaguer/metal-archives.el",
   "unstable": {
    "version": [
-    20201214,
-    1027
+    20210223,
+    1638
    ],
    "deps": [
     "alert",
     "ht",
     "request"
    ],
-   "commit": "a7602a32e7fd3c7779bc5b5c5e398ea31713ee45",
-   "sha256": "0s7lzhnafw98447kgpwimlmvfwqaaljvnqwvqppgkqglk551lmd4"
+   "commit": "a218d63b990365edeef6a2394f72d1f2286aeeae",
+   "sha256": "1mpsc1xvgl6g3bz0dx10i3x5abivna01f1carwyz9w47zs599svk"
   }
  },
  {
@@ -65542,8 +66598,8 @@
     "metal-archives",
     "org-ml"
    ],
-   "commit": "a7602a32e7fd3c7779bc5b5c5e398ea31713ee45",
-   "sha256": "0s7lzhnafw98447kgpwimlmvfwqaaljvnqwvqppgkqglk551lmd4"
+   "commit": "a218d63b990365edeef6a2394f72d1f2286aeeae",
+   "sha256": "1mpsc1xvgl6g3bz0dx10i3x5abivna01f1carwyz9w47zs599svk"
   }
  },
  {
@@ -65626,14 +66682,14 @@
   "repo": "ianxm/emacs-tracker",
   "unstable": {
    "version": [
-    20200602,
-    1032
+    20210207,
+    1100
    ],
    "deps": [
     "seq"
    ],
-   "commit": "6283e1fc5ddb65323513eb77638181551bda967b",
-   "sha256": "12sw627rhvqldbg8cvgg4fim91h3r9qlki5ni1fi0y5sa9iqh20j"
+   "commit": "e0ddd7a17da899fa85b1d49f1260042f8caa0612",
+   "sha256": "0k9lk2z8rnc2pa4wb2afj9byfryqlnw5hg1vs3bx6f0hs8rwa8yh"
   }
  },
  {
@@ -65659,11 +66715,11 @@
   "repo": "kazu-yamamoto/Mew",
   "unstable": {
    "version": [
-    20210113,
-    11
+    20210131,
+    740
    ],
-   "commit": "1dabdcd19ac93223ebc1a488666958e8c224449f",
-   "sha256": "0p5wwxfxds5h5v6jp4z2f423lzz3b3y84da8gw593byqzxd0sbf3"
+   "commit": "8c6bc6bf9562beb74b3b4fda47b2fe473139eb1c",
+   "sha256": "0bf30kkrmi0qw8i0viv1dnvrd52a66rp6vcklidrnv4dh5b782n8"
   },
   "stable": {
    "version": [
@@ -65697,18 +66753,19 @@
   "repo": "danielsz/meyvn-el",
   "unstable": {
    "version": [
-    20200311,
-    2209
+    20210130,
+    2016
    ],
    "deps": [
     "cider",
     "dash",
+    "geiser",
     "parseedn",
     "projectile",
     "s"
    ],
-   "commit": "36166b9bffeb1b5f967be2ab6f3a504632c33a65",
-   "sha256": "1w16sx15fk2m04gl6ahkw2scw6bvpl6bf4g0gf7532rxg339xgjg"
+   "commit": "a49731f39020b7c7626ba12e4c7b2f1c17a69341",
+   "sha256": "13m1qym94qvy197ngd8lyn8nzfsbxbr5ss29mkbvaidhi13jdrwa"
   },
   "stable": {
    "version": [
@@ -65934,11 +66991,11 @@
   "repo": "muffinmad/emacs-mini-frame",
   "unstable": {
    "version": [
-    20201223,
-    1013
+    20210212,
+    2041
    ],
-   "commit": "0912cf4f500403be32735bc50e331fd06910471f",
-   "sha256": "1hnhgx1nyhj814dlcg8mgijnfh30a5vzzinivh2ywgr151wv3b9w"
+   "commit": "41afb3d79cd269726e955ef0896dc077562de0f5",
+   "sha256": "0yghz9pdjsm9v6lbjckm6c5h9ak7iylx8sqgyjwl6nihkpvv4jyp"
   }
  },
  {
@@ -65964,14 +67021,14 @@
   "repo": "kiennq/emacs-mini-modeline",
   "unstable": {
    "version": [
-    20201221,
-    1825
+    20210312,
+    452
    ],
    "deps": [
     "dash"
    ],
-   "commit": "7dcd0ab81bb7c298377708061176f5c5a50f77db",
-   "sha256": "1bik23ci0h9gki7ysw7r5wj5z9ib56167qzk7sac2wqw9xmi8dbb"
+   "commit": "3e67b8e59d46659df4b37dedf75485a366c93600",
+   "sha256": "1iqdbm90qj90a522qmssbqn5im0kxdw1kxq7z821ss3fag960xw8"
   },
   "stable": {
    "version": [
@@ -66277,20 +67334,20 @@
   "repo": "jabranham/mixed-pitch",
   "unstable": {
    "version": [
-    20210103,
-    7
+    20210203,
+    2211
    ],
-   "commit": "beb22e85f6073a930f7338a78bd186e3090abdd7",
-   "sha256": "1dhljrh44dsnixd8hbb11k6dgap8r8n7jknhfy2afdzq889fih74"
+   "commit": "d5f64b967d831ea776f07aa2c80cc5fa88a3e869",
+   "sha256": "0gs5pmpkfm4skycmq6agy1hdxjwzw6wvfdkvczdygzvn8hjq2inn"
   },
   "stable": {
    "version": [
     1,
     1,
-    0
+    1
    ],
-   "commit": "734fbdf2d2c17beee151faf39bd10174a87eea5d",
-   "sha256": "1i0yd7akkyqhkd8g2g793n6syiy0mbnlq9apg7p1s4xycmwxx684"
+   "commit": "beb22e85f6073a930f7338a78bd186e3090abdd7",
+   "sha256": "1dhljrh44dsnixd8hbb11k6dgap8r8n7jknhfy2afdzq889fih74"
   }
  },
  {
@@ -66319,11 +67376,11 @@
   "repo": "Mulling/mlso-theme",
   "unstable": {
    "version": [
-    20200828,
-    1221
+    20210215,
+    1755
    ],
-   "commit": "b47243006470798caa4d3f8fe1af9bd5ef06bbee",
-   "sha256": "0gwa2izmi2ljh4avfpfq778ym1p91gsssbqz2q95m9py1vvb3xr7"
+   "commit": "177a269d1f16dc5902f08d56d12a084ea028c8ab",
+   "sha256": "000h78k729irpn31xykq1r6kdnrcfvv5m9cc8g9l1lfp6pjhmd9c"
   }
  },
  {
@@ -66393,14 +67450,14 @@
   "repo": "mrkkrp/mmt",
   "unstable": {
    "version": [
-    20190713,
-    1347
+    20210321,
+    1829
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d7729563e656a3e8adef6bce60348861ba183c09",
-   "sha256": "05f218f0lncgx2bbipjz7db09rrka8fq0qf5qkvbgssagxyl7rav"
+   "commit": "05cdbb643469676b91a44badecf84deccb50f262",
+   "sha256": "09zlqx9xrcj80vdd07yz9gzq5p8mayjlqkrcv7c8vm5wn5dl3gnq"
   },
   "stable": {
    "version": [
@@ -66534,8 +67591,8 @@
     20210115,
     157
    ],
-   "commit": "cc538e5702274ad9e8c6c41c807f890ca38f427f",
-   "sha256": "0ai424aggmavj3yjqpzi8a7cxxz96bm3wdbs7vy4g68xxb88ll7n"
+   "commit": "5b01b3cc51388faf1ba823683c3600790099c84c",
+   "sha256": "0nmi6bsbbgcxihjb865bmm2zrirnzi1lq02d6cl1df57k47md4ny"
   },
   "stable": {
    "version": [
@@ -66555,11 +67612,11 @@
   "repo": "mrkkrp/modalka",
   "unstable": {
    "version": [
-    20190713,
-    1335
+    20210318,
+    1748
    ],
-   "commit": "4b2b92b14ed0b64fb0a0fa80a374ec9f87fbfeb6",
-   "sha256": "18dbnicaqryq4xhv4d7hds61k85kj3bnpcqv7rippvlyrqm2r6wx"
+   "commit": "0accefac11451b9c9196a56223b5fe1e26d75e6e",
+   "sha256": "04i776arnyg2gzzhiifarb73dr4w3sg38kw9cwp1bl1x5w49x47x"
   },
   "stable": {
    "version": [
@@ -66649,6 +67706,21 @@
   }
  },
  {
+  "ename": "mode-line-idle",
+  "commit": "6c854955505f809f7a70e8918ea3a0187e62257c",
+  "sha256": "0wvy7p27d4qa5f6cg1zqrm8wzfvd0wfwcc5aimcs1hkxlzl1kr6b",
+  "fetcher": "gitlab",
+  "repo": "ideasman42/emacs-mode-line-idle",
+  "unstable": {
+   "version": [
+    20210215,
+    2345
+   ],
+   "commit": "02b1da6278e43cc9cc0356110cc6bfbb37eb8241",
+   "sha256": "0ky330b2sfbzkbxbfp9b21hdywsjw26bllspglz08hrbni7jmry8"
+  }
+ },
+ {
   "ename": "modern-cpp-font-lock",
   "commit": "4bfc2386049adfe7a8e20da9b69fb73d6cb71387",
   "sha256": "0h43icb5rqbkc5699kdy2mrjs5448phl18jch45ylp2wy2r8c2qj",
@@ -66752,20 +67824,20 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20210114,
-    1245
+    20210326,
+    1916
    ],
-   "commit": "cefa14959c9118c279adccd151ac77e05b8beb3e",
-   "sha256": "1zqyvqkgy9w0ay0i61gq0mz5dwjdymcq4c2cbypq0adph4dlhkjq"
+   "commit": "e07461ca01b04a6536961eb538769f9889813852",
+   "sha256": "18gwyy5an1k9pf9n6ccygs4k7nbrv6scp7wyvaabayzxqv50lhsn"
   },
   "stable": {
    "version": [
     1,
-    0,
-    2
+    2,
+    3
    ],
-   "commit": "ab0f558397bb674342176c37c22190c0c1e54cc1",
-   "sha256": "1v82payjgx8z0qdklsrkim7xkb6hqrbs34d5qpq0sii43jwhiy5j"
+   "commit": "0a36239baf908585cdf32c6188eb86713d9bf6c6",
+   "sha256": "1l392hz6zs6wg06x2zxnk7s0h5cpmvbkcynh68gjmqjj84l7mqrk"
   }
  },
  {
@@ -66776,11 +67848,11 @@
   "repo": "kuanyui/moe-theme.el",
   "unstable": {
    "version": [
-    20200930,
-    853
+    20210308,
+    1053
    ],
-   "commit": "76116f6eeb93c7902042f275a496629393730e08",
-   "sha256": "091wrp80y4k80w8wnv8pxipyf33dxb4qs0yn3m83bb1drn2x3g2p"
+   "commit": "b23975ba57a68f69551424552f484227db8a7b97",
+   "sha256": "0vr02ng574k1xfykxn2j2xhl78x4zsvzcszswqjrlps55bvxkm7b"
   },
   "stable": {
    "version": [
@@ -66958,11 +68030,11 @@
   "repo": "belak/emacs-monokai-pro-theme",
   "unstable": {
    "version": [
-    20200525,
-    1430
+    20210206,
+    1820
    ],
-   "commit": "d1bc669200bf5753cf1963e5e65269e0d60648d5",
-   "sha256": "0zqrn1pvlrgbf0yc34bycahvrl8sl67jmc0436yx3lgjwpkvhf0f"
+   "commit": "d0489741a80d818713c290a1a4bdd985877228bb",
+   "sha256": "1nmnmijqfxdxz0cxyfq9fn34cy5bbf6cdg0qvg5mjxrjcfsl57dc"
   }
  },
  {
@@ -67060,20 +68132,20 @@
   "repo": "jessieh/mood-one-theme",
   "unstable": {
    "version": [
-    20200904,
-    1639
+    20210221,
+    18
    ],
-   "commit": "47f043c1a883e3b0fd550eafffe71b915eb892c1",
-   "sha256": "0zh0l2zpnms4s1c33ksj6rr8cc6bd9pxnc73cwvmaysak1650jfq"
+   "commit": "42e402a89473458f55a71c5bbe785575e9a927ba",
+   "sha256": "1ma5138src6iglkhd2h8w9k4gqqaxvsngz08cd4v2s8dhqkcayw8"
   },
   "stable": {
    "version": [
     1,
-    1,
-    0
+    2,
+    1
    ],
-   "commit": "82b471852a23bc4de972cac32da322c2b168ad9c",
-   "sha256": "09ykh1c21kphfzli1qzrlx13bn6p22873y6rwkx9fnj2232gv9vi"
+   "commit": "42e402a89473458f55a71c5bbe785575e9a927ba",
+   "sha256": "1ma5138src6iglkhd2h8w9k4gqqaxvsngz08cd4v2s8dhqkcayw8"
   }
  },
  {
@@ -67108,20 +68180,20 @@
   "repo": "takaxp/moom",
   "unstable": {
    "version": [
-    20201122,
-    528
+    20210324,
+    825
    ],
-   "commit": "56a6a11b612aa295ef250e5a9879dc5df3b3234d",
-   "sha256": "0smddm5x5m5mv15wdfm04y8hxfzvxh4gkmjr1h8dlp686jg5mvl3"
+   "commit": "f94cf84138a81212ffe856599834f7824a1b6e95",
+   "sha256": "0rdvcv8hwrxxbb9s8sfx5331a08kdk28x8chnnq3pj58pxqvagy3"
   },
   "stable": {
    "version": [
     1,
-    3,
+    5,
     0
    ],
-   "commit": "1d8344cec018a417cb5845c0717c7400c281caa1",
-   "sha256": "0ig5j4dzb0vxx145yv4ly93hndc2hkbx6dfng2zy7agf124ygh37"
+   "commit": "d0076ea22b2afc4c3faeea2138e836b1c8f08988",
+   "sha256": "0hz525xmv6kslss3yn8ibj6bi2xp442knad0030px7giia6y1pf6"
   }
  },
  {
@@ -67315,20 +68387,20 @@
   "repo": "wyuenho/move-dup",
   "unstable": {
    "version": [
-    20200819,
-    940
+    20210127,
+    1938
    ],
-   "commit": "c5a346d3058011b8152cceeb45858f9b4cef1b69",
-   "sha256": "1dfsfxy7v85qc2gl14gxhngnvkcdbq9gadnsabs1fq56qdgmq814"
+   "commit": "5906503e0b9b832b1d5062c9cd27cf72a2ce4817",
+   "sha256": "138h20zlhqdyacs6563naxlcbksbp9r4ck2jliikix5gaq950chg"
   },
   "stable": {
    "version": [
-    1,
-    1,
-    2
+    2,
+    0,
+    0
    ],
-   "commit": "c5a346d3058011b8152cceeb45858f9b4cef1b69",
-   "sha256": "1dfsfxy7v85qc2gl14gxhngnvkcdbq9gadnsabs1fq56qdgmq814"
+   "commit": "bf2e578b89d7e7bf0b5500d9afcf49ac6ec2dcd1",
+   "sha256": "1hl7sddhs6wzn3z4h55znbix8n7jl9b85sd1b5s6x5n8wxj28gvz"
   }
  },
  {
@@ -67440,11 +68512,11 @@
   "repo": "google/mozc",
   "unstable": {
    "version": [
-    20200822,
-    1229
+    20210306,
+    1053
    ],
-   "commit": "1f4fa17372bd196e87042738a16ab08bf904bcbf",
-   "sha256": "180glmkk6wnq5pc02543phih1f71vpvykqkwxs2qv7s7dyf2qg58"
+   "commit": "473a26ccd17304f6c64eaac8c61090659bcdb936",
+   "sha256": "114nimj1q9dn18in2bdzkswkxd3rm0xxzxiix4jv6hzhsm8rznw8"
   },
   "stable": {
    "version": [
@@ -67661,16 +68733,16 @@
   "repo": "kljohann/mpv.el",
   "unstable": {
    "version": [
-    20200315,
-    2158
+    20210207,
+    1140
    ],
    "deps": [
     "cl-lib",
     "json",
     "org"
    ],
-   "commit": "2d40c4550558eb1bf35a69446777c4e9cae7a623",
-   "sha256": "0f9iq83dfj73gbx7zndvh32b102582lzv4xb8gvqjs26k5bywdxj"
+   "commit": "2d24187f7bdb0495c90d5109a730742e735636ba",
+   "sha256": "1siwl0pjmklpzywn5jmq7jgnsynpa6qafm6mqg9h8gxxbswd5xbi"
   },
   "stable": {
    "version": [
@@ -67711,14 +68783,14 @@
   "repo": "andrmuel/mqtt-mode",
   "unstable": {
    "version": [
-    20180605,
-    1731
+    20180611,
+    1735
    ],
    "deps": [
     "dash"
    ],
-   "commit": "36d1d4296d79e17b8f35e8e14f2708980eb502db",
-   "sha256": "1116xvwpavg7icm263s0clgxhw3qqm4aqiw4ky94w9a8ydazx51l"
+   "commit": "613e70e9b9940e635e779994b5c83f86eb62c8e6",
+   "sha256": "1ci1w4yma6axiigz55b2ip0r7zy8v215532jc0rkb3wyn14nsrh7"
   },
   "stable": {
    "version": [
@@ -67931,6 +69003,24 @@
   }
  },
  {
+  "ename": "mu4e-marker-icons",
+  "commit": "52f7c75f26eb02a58ed023a9d709fdcc09e11587",
+  "sha256": "1lyxcw7a842z4ss47sa8gzyh84p886d3qsszz9vl6978gy77i4al",
+  "fetcher": "github",
+  "repo": "stardiviner/mu4e-marker-icons",
+  "unstable": {
+   "version": [
+    20210124,
+    514
+   ],
+   "deps": [
+    "all-the-icons"
+   ],
+   "commit": "e5c4f9b14eab69a0a28f108c6fee3390e19bd080",
+   "sha256": "1a3cinvi0j92j65qfgzmnx6z0xvq4l2jkvw9wydhm3bkmi3v6ni4"
+  }
+ },
+ {
   "ename": "mu4e-overview",
   "commit": "ec240f0f9bc43c5abca557607b0b89a24696744e",
   "sha256": "076lpfj6zrg2ivgbslg9whm4mci278kg45a3km7iadilwipiaxsk",
@@ -67977,15 +69067,15 @@
   "repo": "lordpretzel/mu4e-views",
   "unstable": {
    "version": [
-    20201229,
-    216
+    20210228,
+    1556
    ],
    "deps": [
     "ht",
     "xwidgets-reuse"
    ],
-   "commit": "55e5467a25d424b2c10b5392e68b370164efa230",
-   "sha256": "1gagaxpb4psshs8x61icilx4576al2qjs612d65ss857gfmzachi"
+   "commit": "1a0ceeb874e2a56b3ebe06c8375221031bb90a5c",
+   "sha256": "0v7d899pvpwvvp9x0yaskhjf1c6bjmqajk2mclfkykadrh89z61j"
   },
   "stable": {
    "version": [
@@ -68032,6 +69122,18 @@
    ],
    "commit": "34dfba027bf11e4cca2c547ce80b73d7324c7ba6",
    "sha256": "011qr9jc90arg3y8y49hjmv94968ym81a36db0dvxyf08hspz006"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "anaphora",
+    "s"
+   ],
+   "commit": "34dfba027bf11e4cca2c547ce80b73d7324c7ba6",
+   "sha256": "011qr9jc90arg3y8y49hjmv94968ym81a36db0dvxyf08hspz006"
   }
  },
  {
@@ -68259,14 +69361,14 @@
   "repo": "magnars/multiple-cursors.el",
   "unstable": {
    "version": [
-    20201215,
-    1559
+    20210323,
+    1128
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "a9d7764f80b241978f3d4e76bc981ef10bab5d70",
-   "sha256": "0r5dgzra3wimny5kaqhkfj1723mbwsdjabi26jp77hxkrhx7v905"
+   "commit": "7b13b03c995e13ad86e499d40ec49c4dc281f889",
+   "sha256": "1fysnjbh0dai1bzx4122fp4qhbyn82m8hh3smd0xhwphjwrbnl57"
   },
   "stable": {
    "version": [
@@ -68289,15 +69391,14 @@
   "repo": "matsievskiysv/multistate",
   "unstable": {
    "version": [
-    20200514,
-    2206
+    20210124,
+    2014
    ],
    "deps": [
-    "cl-lib",
     "ht"
    ],
-   "commit": "eadd0df2745bf10500a9ad4ee8f66f3cb470bef0",
-   "sha256": "081rangw4iqk1lcahk01skh518ljdp6g4ww7zydjr813x7jzv2kv"
+   "commit": "a7ab9dc7aac0b6d6d2f872de4e0d1b8550834a9b",
+   "sha256": "1r4l0s8401yfm3dl83yqffim5m1gsqzqz9pv3dvq3v8rb94m9n9s"
   }
  },
  {
@@ -68338,16 +69439,16 @@
   "repo": "Wilfred/mustache.el",
   "unstable": {
    "version": [
-    20201119,
-    529
+    20210224,
+    710
    ],
    "deps": [
     "dash",
     "ht",
     "s"
    ],
-   "commit": "7f4b1cf0483366a77539081fde94fa6079b514a0",
-   "sha256": "0yg726jdcvkfxss1sw261rz1df3zv9g95rx3b3g8g5xncxi0cqvh"
+   "commit": "6fcb31f5075edc5fc70c63426b2aef91352ca80f",
+   "sha256": "1rq2p376016y68w6447sd7h6zgzrxbb3skh7fjw7xfq1p6f19kr4"
   },
   "stable": {
    "version": [
@@ -68472,15 +69573,15 @@
   "repo": "agzam/mw-thesaurus.el",
   "unstable": {
    "version": [
-    20210106,
-    1857
+    20210224,
+    449
    ],
    "deps": [
     "dash",
     "request"
    ],
-   "commit": "cb0637bd3799820d6738f5d66b8bc2de2333e0e4",
-   "sha256": "1j5x1rfnxvghdmai7cv9sjqw1azq59pk8h5vm0krgnan2rpx5k4k"
+   "commit": "96f02694bc28f31c2a280a05d47e6ff589f525f3",
+   "sha256": "0gy3lyncyvwimkhfmd0qh1kkc0qgf7sgvbyr1aljdn9qh7n5l34k"
   }
  },
  {
@@ -68749,8 +69850,8 @@
     20181120,
     2224
    ],
-   "commit": "670b81e3eddef2e7353a4eedc9553a85306445db",
-   "sha256": "1inbizxlfgndwxsn8cwnpf4vm42rby7pkjqxyzl7ldq4qln7q8v1"
+   "commit": "d8baeada19b56176c66aed5fa220751e3de11cb8",
+   "sha256": "0xa44mks90xhwkjvrgxll0hzwhkf317i3gxqlajl9cx8v3bhczz1"
   }
  },
  {
@@ -69038,11 +70139,11 @@
   "repo": "CeleritasCelery/emacs-native-shell-complete",
   "unstable": {
    "version": [
-    20200814,
-    2301
+    20210315,
+    2048
    ],
-   "commit": "be7ced29c5a86e29c364f19d248634b8b54d0e52",
-   "sha256": "1lyad89byq54fva58njf7wiq2rw3767fxif1ykijirzx7q14ahxd"
+   "commit": "cf142e84eaa4dd91bc75d96a5d26dab5e38eba4c",
+   "sha256": "01li6c271v5j35chg3a8nl9az3bwq4hk1j8lfjq5a27p91iszpc0"
   }
  },
  {
@@ -69435,8 +70536,8 @@
   "repo": "felko/neuron-mode",
   "unstable": {
    "version": [
-    20201229,
-    1005
+    20210227,
+    1737
    ],
    "deps": [
     "company",
@@ -69444,8 +70545,8 @@
     "markdown-mode",
     "s"
    ],
-   "commit": "81ed1f3288eab9aed2cb0b1eb11af69f988b7d0b",
-   "sha256": "1dgvlk0apd7ddzzg5jcpsrdhps37my59jyvkv1sqp31km0nby6qk"
+   "commit": "a968a923aad07ab15fb35deb79ac95581a427b4c",
+   "sha256": "1mb55bbsb32gxms488pjw9fsqiic2qfmwkhm3pwcgy194723vcaa"
   }
  },
  {
@@ -69615,6 +70716,30 @@
   }
  },
  {
+  "ename": "nikki",
+  "commit": "f1e2937a2b4947c922d42f0dea4e764d713a7c29",
+  "sha256": "0jfg1bziqhbgfrl77ddl2krkrd11xcpy6v2fqcpxmrd0i7jb17qc",
+  "fetcher": "github",
+  "repo": "th994/nikki",
+  "unstable": {
+   "version": [
+    20210227,
+    1707
+   ],
+   "commit": "b2ea20d04a061df88d72bd8dd0412a6e7876458d",
+   "sha256": "0a4kv2zb6wmacfjsihzr1ac6rsynay30zl2qiyzv21js6wmrwn9c"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    6
+   ],
+   "commit": "b2ea20d04a061df88d72bd8dd0412a6e7876458d",
+   "sha256": "0a4kv2zb6wmacfjsihzr1ac6rsynay30zl2qiyzv21js6wmrwn9c"
+  }
+ },
+ {
   "ename": "nikola",
   "commit": "2e8e1a5169f0841db4980aebe97235845bbe7183",
   "sha256": "1zdakql4p0h2l4i3gipzbx9kwmc41qq2zr0rx794722khcka4sz1",
@@ -69676,11 +70801,11 @@
   "repo": "m-cat/nimbus-theme",
   "unstable": {
    "version": [
-    20201222,
-    1503
+    20210318,
+    1654
    ],
-   "commit": "5ff56a6a68cde7cd0a67fc60e3e993be52604a6d",
-   "sha256": "1073x878gdg97xym31mx3l7zpbc51pkspigpxqlpq48q62llcigj"
+   "commit": "a4d9d69442c9edac3f2cacabd2a7401dbefe7ff3",
+   "sha256": "1h828cxjacfqlhm719w2kwh91i0r1lai6wswpp7wp21wvvp28v5r"
   }
  },
  {
@@ -69694,8 +70819,8 @@
     20181024,
     1439
    ],
-   "commit": "68f09b03c090840162d1852f1e92afa8e117cc4e",
-   "sha256": "1ampghm9laigs0frqfw2yjsm0whh2vff5gqp96i4d88n9ar0wj5n"
+   "commit": "8cd25aa78c2ff2ca8b3712f8c3630d1a095856d9",
+   "sha256": "0qq1p2pjpnvhrblbsh80k43ksrzb1nw48gw8srw32vih91pv02x5"
   },
   "stable": {
    "version": [
@@ -69793,11 +70918,11 @@
   "repo": "NixOS/nix-mode",
   "unstable": {
    "version": [
-    20210115,
-    340
+    20210124,
+    204
    ],
-   "commit": "e8e5211f6e083cf0ba9aac52acb6657818a32972",
-   "sha256": "1zhvj1j5pvsfa0xzky819fc1xlhy3a4snkyyp1dczbfdnk34kan9"
+   "commit": "0023fc5b100ec0c939ffe699d1a7d1afcf1f417a",
+   "sha256": "1fjf16dah95i3vlxk63rlixskgq18kn69fyg6dgpiw7pm98kjviy"
   },
   "stable": {
    "version": [
@@ -69817,15 +70942,15 @@
   "repo": "travisbhartwell/nix-emacs",
   "unstable": {
    "version": [
-    20191126,
-    759
+    20210325,
+    1622
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
-   "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+   "commit": "053a2d5110ce05b7f99bcc2ac4804b70cbe87916",
+   "sha256": "05vxac2llww4ba5w0dmf0hza60l5i847hfabs0q5i8kzmw4f8s8z"
   }
  },
  {
@@ -69854,8 +70979,8 @@
     20160209,
     1841
    ],
-   "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
-   "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+   "commit": "053a2d5110ce05b7f99bcc2ac4804b70cbe87916",
+   "sha256": "05vxac2llww4ba5w0dmf0hza60l5i847hfabs0q5i8kzmw4f8s8z"
   },
   "stable": {
    "version": [
@@ -69884,8 +71009,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "213251f82a69edc033766ec96948e83aeb428cd2",
-   "sha256": "1hx13p9rs33j2ajbg0dp6a371hr0dcxbcyzr5xlvkg6gf746lmg8"
+   "commit": "0df268136d14f27770fa5bb3bdb991e987337cf4",
+   "sha256": "137hvv9ry2h5975v06x22bdirdn7ms0gv216wkz6y68897k7hv3p"
   },
   "stable": {
    "version": [
@@ -69977,18 +71102,17 @@
   "repo": "dickmao/nndiscourse",
   "unstable": {
    "version": [
-    20200829,
-    1751
+    20210219,
+    1949
    ],
    "deps": [
     "anaphora",
     "dash",
-    "dash-functional",
     "json-rpc",
     "rbenv"
    ],
-   "commit": "152f3176fff026572d2cfa22adaeb32f42410083",
-   "sha256": "1sljvp31jccffd6h21lf01lkr4qa093ia0bh7kakx9azvqdz55qf"
+   "commit": "c6074af3b60ef7af7d9c45b8ad1daa21296a5e04",
+   "sha256": "0hx8sg6wa688f2bzddbzl81b553vjv8aaafizns9r8icsws7acc0"
   }
  },
  {
@@ -69999,17 +71123,16 @@
   "repo": "dickmao/nnhackernews",
   "unstable": {
    "version": [
-    20200730,
-    1052
+    20210219,
+    1948
    ],
    "deps": [
     "anaphora",
     "dash",
-    "dash-functional",
     "request"
    ],
-   "commit": "baeb84dd0be0e7631d1f49da30a53eb61863b04c",
-   "sha256": "15r5hph17pdy5c5jyxh5sia5yqd81ckki185m9jqg9yls749hy55"
+   "commit": "b5a221b63c8b311d50807fdfab4ae6b965844f06",
+   "sha256": "1lq3rh52x0f059lxk0cczins2vggiwjs5m1drj7dkb8lmlxc41y4"
   }
  },
  {
@@ -70092,14 +71215,14 @@
   "repo": "emacscollective/no-littering",
   "unstable": {
    "version": [
-    20210108,
-    1350
+    20210124,
+    1559
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "6e8950ad296c0f57d80d034eb0b7adf538c02906",
-   "sha256": "10zjxc6ipm9330awx7k9hzjf28qpnaw2rcz67dc0jbdgxkn16gl8"
+   "commit": "57357e15643158b4e0d9b3b4f70a82f5fc73178a",
+   "sha256": "1kbbbx1agzcxc5n1b6cavdx3wjxz6mgi9rafja8mk8cyaaiz0rkd"
   },
   "stable": {
    "version": [
@@ -70398,20 +71521,20 @@
   "url": "https://git.notmuchmail.org/git/notmuch",
   "unstable": {
    "version": [
-    20210113,
-    1123
+    20210205,
+    1412
    ],
-   "commit": "1bbbde4a0c3153f6caa30724bd173397be43144f",
-   "sha256": "0lawmpg52yc7fsh2rrmwajds2yhx9jr3h8g04ikf4cma95v4d8s2"
+   "commit": "4e209ca99ac8084a357c6fc8d7773f6207cfa16d",
+   "sha256": "07ygvb6skrz0vxvvswjf35qdgps2p8cfhmjxqprkj1x59k7dvwi6"
   },
   "stable": {
    "version": [
     0,
     31,
-    3
+    4
    ],
-   "commit": "d812256aeb91646b5b1c644fa67f07c483cca651",
-   "sha256": "1wm1myzacz1dcg7vdfd3akia3xan7ssfspf1fflrwm18hdalss5v"
+   "commit": "3a3208bb7b8bfca1c0bcaa5b45b6ef71aa768612",
+   "sha256": "04q9zwy6mpck82zk70xnx2knh2jmqhf676703kjw0fbvdrzw9qik"
   }
  },
  {
@@ -70487,8 +71610,8 @@
    "deps": [
     "notmuch"
    ],
-   "commit": "bac7b56e1a758670e7e6d57d233b45f45961d321",
-   "sha256": "0wx064c2njjq32dqbv68hysds5bm43921vsr34xb4lk748lk2qhv"
+   "commit": "9f3e8bbce4c8c6cd80fb71b92d315d4f3334b450",
+   "sha256": "1rrd3ymc7k8irq1w4496h4whks7lnfam7ibfwgcra074ligfrs4p"
   },
   "stable": {
    "version": [
@@ -70511,15 +71634,15 @@
   "url": "https://depp.brause.cc/nov.el.git",
   "unstable": {
    "version": [
-    20201207,
-    3
+    20210323,
+    1105
    ],
    "deps": [
     "dash",
     "esxml"
    ],
-   "commit": "0ece7ccbf79c074a3e4fbad1d1fa06647093f8e4",
-   "sha256": "116klnjyggwfwvs9nqhpv97m00k63q6lg41ph41kywsqkfy42dlk"
+   "commit": "b3c7cc28e95fe25ce7b443e5f49e2e45360944a3",
+   "sha256": "0va9xjrq30cv5kb59a4rq5mcm83ggnv774r8spmskff3hj8012wf"
   },
   "stable": {
    "version": [
@@ -70732,20 +71855,20 @@
   "repo": "joostkremers/nswbuff",
   "unstable": {
    "version": [
-    20201207,
-    805
+    20210129,
+    850
    ],
-   "commit": "76e5d96f31368a74121076df679255e1ea97f5d9",
-   "sha256": "08yf7cdmq6nqn4bhm4asj3yavcifwjgkyzhdcr3dm9a9jv1b3w0m"
+   "commit": "2aa3a96abbc76f007923f3fbb19a5246e29ae500",
+   "sha256": "0lhl49cs0sdr7p22spxf83sixp1pzjiq11plmxc8i0lqv735b9sn"
   },
   "stable": {
    "version": [
     1,
-    1,
+    2,
     1
    ],
-   "commit": "76e5d96f31368a74121076df679255e1ea97f5d9",
-   "sha256": "08yf7cdmq6nqn4bhm4asj3yavcifwjgkyzhdcr3dm9a9jv1b3w0m"
+   "commit": "71e241763ca0a4a1d1b432e172d46bed4f44dbe7",
+   "sha256": "1sswhr52rp8c4v4fv30sww1gadbdrlk3l35j8xmqfw6hbgzxb5dn"
   }
  },
  {
@@ -70864,6 +71987,38 @@
   }
  },
  {
+  "ename": "numpydoc",
+  "commit": "e7e20f00482f143ac67589a48f7bc591e075b5da",
+  "sha256": "1p2ls9qmbl58p4cyrk4f769blc72lfgbwd3sy4hhkv75m4qj4lws",
+  "fetcher": "github",
+  "repo": "douglasdavis/numpydoc.el",
+  "unstable": {
+   "version": [
+    20210305,
+    2006
+   ],
+   "deps": [
+    "dash",
+    "s"
+   ],
+   "commit": "a8bc2a58220e7eb92d61a637c2c6d8cb2ccb270b",
+   "sha256": "1c2nhg00naqj2m4avjsk03bpdbkspsjkng5fdhf6nx58ny9xdj5p"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "deps": [
+    "dash",
+    "s"
+   ],
+   "commit": "1549f362fda96b75760f20cee9b471362823ef4e",
+   "sha256": "1d5ff42fifssb38qvmhr8p6rvgak7z1mjhandirla05bjb4cramp"
+  }
+ },
+ {
   "ename": "nv-delete-back",
   "commit": "7542fa39060b507a6f455225367e45e89d3e2f92",
   "sha256": "13izzym4alda05k7ra67lyjx6dx23fjqz2dqk7mrzhik9x552hsr",
@@ -70886,17 +72041,16 @@
   "repo": "rejeep/nvm.el",
   "unstable": {
    "version": [
-    20201005,
-    2328
+    20210217,
+    744
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "f",
     "s"
    ],
-   "commit": "f15334f78de7786617a15c9de54f4c79a92865fb",
-   "sha256": "10v4593yz3afrqj6zilq3dw2fngf0f20dy2mrgbcickvdbvkifby"
+   "commit": "6f47fac1bc42526a7474488f560d064c08f8dd6e",
+   "sha256": "01rfgxkahpx17q8k72hxibysysv8pgx6bfy5gbc6finm3f7ak6ia"
   },
   "stable": {
    "version": [
@@ -70984,6 +72138,25 @@
   }
  },
  {
+  "ename": "oauth2-request",
+  "commit": "d8fd29717d69408c845d44077b5223902051dbd9",
+  "sha256": "1yb9wgc1p6rbsarb7yhwwrpsjz2adnf9k590c9sif9vx3llras2g",
+  "fetcher": "github",
+  "repo": "conao3/oauth2-request.el",
+  "unstable": {
+   "version": [
+    20210215,
+    657
+   ],
+   "deps": [
+    "oauth2",
+    "request"
+   ],
+   "commit": "86ff048635e002b00e23d6bed2ec6f36c17bca8e",
+   "sha256": "0z9vkssdxkikwjcb3vrby5dfcixy4lw9r2jp7g9nls6w88l184jf"
+  }
+ },
+ {
   "ename": "ob-ammonite",
   "commit": "508358506a6994baf120be2acba86762f5727c6c",
   "sha256": "0wr7p3sfn9m8vz87lzas943zcm8vkzgfki9pbs3rh3fxvdc197lb",
@@ -71066,8 +72239,8 @@
    "deps": [
     "axiom-environment"
    ],
-   "commit": "47d6dffc29286badb2b1d7143b219e5c1be15bdb",
-   "sha256": "1dppyda9jkwh6fj8m4kziq84w0b5yzxrhq87jhkv54jjra6yxbb4"
+   "commit": "ac8228a702290732ba12c5d13b38576a57afb0d6",
+   "sha256": "1nrlgrckvh2fiwis9bmr95h2bpxfkz1nknxdz61380f2caqwwhw7"
   }
  },
  {
@@ -71721,6 +72894,24 @@
   }
  },
  {
+  "ename": "ob-reticulate",
+  "commit": "cccdf7cfda6b23877d0649145808f0a4e9321b1a",
+  "sha256": "0jjrdykpcswbwjvy4zzs7sfjyxnzvvc17wa67arharpxgg4d8083",
+  "fetcher": "github",
+  "repo": "jackkamm/ob-reticulate",
+  "unstable": {
+   "version": [
+    20210214,
+    2229
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "8109fb02fb6339b1cf9290df29fc0c1109a33c04",
+   "sha256": "1wr0acf0nhdz48n8p1q80sv0bd929n7v8ahcrx5zc7wcimbqshl1"
+  }
+ },
+ {
   "ename": "ob-rust",
   "commit": "843affc2fd481647c5377bf9a96b636b39718034",
   "sha256": "1syzwh399wcwqhg1f3fvl12978dr574wji7cknqvll3hyh0zwd65",
@@ -71728,11 +72919,11 @@
   "repo": "micanzhang/ob-rust",
   "unstable": {
    "version": [
-    20180911,
-    1535
+    20210204,
+    244
    ],
-   "commit": "6a82587598cd097e9642be916243c31f1231b24a",
-   "sha256": "041mvlwnkxa93fjbln0yc6pgykh6k7fwg1nigr6njgaxlfnssmlm"
+   "commit": "30fe7e7181f44443d02e905dda77f83ec4944e76",
+   "sha256": "103j84iblzw87p12w1vjinfsq6zif47lvmjzs0456d8kwli0hpkp"
   }
  },
  {
@@ -72073,17 +73264,17 @@
     20201204,
     945
    ],
-   "commit": "7c6e115c38e447e7cfd4d1d128bed363d3d10c4b",
-   "sha256": "0jik0j3mjyd8fxdlcdkxp0znlw29fm3knqa7i4fgwz6cvzkl9fa0"
+   "commit": "448ac7c1496e2a6e83d63a7bcd9cf4e35bb2b1fb",
+   "sha256": "0rgh3c17h3k5bj897by7v64xbpf9pqpkg1kicka3w4g8gc0mb3v8"
   },
   "stable": {
    "version": [
     0,
-    16,
+    17,
     0
    ],
-   "commit": "101d2306f5b0b23bbc25e1155c1ffd51a0bbf61e",
-   "sha256": "0yf1kf3yhiw39qpybz2aszwl7kjshiv45d81gq7q7xgn9nqnf0z4"
+   "commit": "bfd6bbe95c614d1d982244c4fd0ba494275d2245",
+   "sha256": "0vy69sjl184czpwbhcbgzyh8kgj6n3jq8ckllcbwic859aq8lqvn"
   }
  },
  {
@@ -72109,11 +73300,11 @@
   "repo": "dgtized/occur-context-resize.el",
   "unstable": {
    "version": [
-    20170904,
-    2309
+    20210121,
+    50
    ],
-   "commit": "cdee5a631ceed9337579d4090e0acf8140747f80",
-   "sha256": "0h7ypw45h5rcbwx4c4mn2ps9hp84dpjp3iay2nc9zaavv05n7ysa"
+   "commit": "9d62a5b5c39ab7921dfc12dd0ab139b38dd16582",
+   "sha256": "1s2j0205sp40nz1ljwa2nf2zm5mlkvsp95xfrra6rzbdrvbsfxyi"
   }
  },
  {
@@ -72267,26 +73458,26 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20210107,
-    1519
+    20210223,
+    1351
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "7edfa815105543a183b1503fa49531f77a713840",
-   "sha256": "09sl4bpd5k25cb82q57f39hb74hsilg9271zbs6nxvrshks23wy3"
+   "commit": "e880c4f65ad20e22ab845fc2918ca74cc37bf39a",
+   "sha256": "197fn08xhk6cbvi4hqf51v40x0ki5n8h1896g3bpl4fasfy5zicp"
   },
   "stable": {
    "version": [
     3,
-    15,
+    17,
     0
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "7edfa815105543a183b1503fa49531f77a713840",
-   "sha256": "09sl4bpd5k25cb82q57f39hb74hsilg9271zbs6nxvrshks23wy3"
+   "commit": "e880c4f65ad20e22ab845fc2918ca74cc37bf39a",
+   "sha256": "197fn08xhk6cbvi4hqf51v40x0ki5n8h1896g3bpl4fasfy5zicp"
   }
  },
  {
@@ -72391,20 +73582,20 @@
   "repo": "rnkn/olivetti",
   "unstable": {
    "version": [
-    20201029,
-    922
+    20210202,
+    709
    ],
-   "commit": "b76a020aedb57a6a7d0ae61cde13434f5c802a44",
-   "sha256": "1qq0lx0wrflx1r2m7gidnvcv7cipc6dzh1clf5mp50mm2cp88n50"
+   "commit": "61d26644fd9dd2d45b80b9b82f5f930ed17530d0",
+   "sha256": "1nvnahwjqs9i2cinkpwg689lg134wp7l6f9f1k1jwn0dh1amqmvp"
   },
   "stable": {
    "version": [
     1,
     11,
-    2
+    3
    ],
-   "commit": "b76a020aedb57a6a7d0ae61cde13434f5c802a44",
-   "sha256": "1qq0lx0wrflx1r2m7gidnvcv7cipc6dzh1clf5mp50mm2cp88n50"
+   "commit": "a2dbd3dc4e7000fec29febbd089cd4558a7322b9",
+   "sha256": "0zcph7l0hxisbvsyzb1dw3paq5a5sjp5lrq5nq9zggvgc6zvx7sh"
   }
  },
  {
@@ -72614,8 +73805,8 @@
     "popup",
     "s"
    ],
-   "commit": "8ec59296b2e2a12d8ea146fb7056091fbb7bdd10",
-   "sha256": "02kx5gx1hk5r3lks3y9myq3x90zcz0snhckyf7sx45ydgnjxm5j4"
+   "commit": "5fad6835bee15792774183164dd423ba18cf1e01",
+   "sha256": "1ww202j6bh8ycw2wfngy9rw1hv5qrjg66bgp2yj28j12ag1qxn2r"
   },
   "stable": {
    "version": [
@@ -72959,11 +74150,11 @@
   "repo": "oantolin/orderless",
   "unstable": {
    "version": [
-    20210105,
-    448
+    20210323,
+    2341
    ],
-   "commit": "cbc0109eac542ef4fe0be027af1c62c4bbf846ee",
-   "sha256": "0cp8yspghfbgy2nhcqw8irqyhphw4jdr36864m45ralzzxc6lqac"
+   "commit": "44935d8962be5724d8a3a4358ce0a4222450ee26",
+   "sha256": "1f76k6cp0m6r47s91za3sad09vrka41x9vwxh40bi9achwc3538q"
   },
   "stable": {
    "version": [
@@ -73140,6 +74331,21 @@
   }
  },
  {
+  "ename": "org-appear",
+  "commit": "d4c5bea920593d5da72b4208c0727b5ced0a588a",
+  "sha256": "1b88r4nsvm1ndicwc2rgkznmfcyb6bz7fb05fw667dw6mzmlpxk1",
+  "fetcher": "github",
+  "repo": "awth13/org-appear",
+  "unstable": {
+   "version": [
+    20210307,
+    1335
+   ],
+   "commit": "0b3b029d5851c77ee792727b280f062eaf2c22c7",
+   "sha256": "136z40r0i9q9wqbj4yxa8d4c2ygx7dzp9i126ra56sm6cdkvz0cj"
+  }
+ },
+ {
   "ename": "org-attach-screenshot",
   "commit": "f545cd8d1da39e7fbd61020e178de30053ba774b",
   "sha256": "0108kahyd499q87wzvirv5d6p7jrb7ckz8r96pwqzgflj3njbnmn",
@@ -73147,11 +74353,41 @@
   "repo": "dfeich/org-screenshot",
   "unstable": {
    "version": [
-    20201130,
-    1607
+    20210221,
+    1336
+   ],
+   "commit": "6a5d5f8fd7cda1200cf088f415b9983e89a03075",
+   "sha256": "0gqqcgadlzzbqd4sqbwbwx41app6ryz2l3lrng8bz9hq9cx547jj"
+  }
+ },
+ {
+  "ename": "org-auto-tangle",
+  "commit": "8cdae87606068b7b47530e0744e91aead86d288e",
+  "sha256": "1cr34yjr43ah9bqvrghlyx2vag7xnamgfijb417k5m70cbk8vcb8",
+  "fetcher": "github",
+  "repo": "yilkalargaw/org-auto-tangle",
+  "unstable": {
+   "version": [
+    20210214,
+    917
+   ],
+   "deps": [
+    "async"
+   ],
+   "commit": "ea2ca74a68eb44d935b7240ffc8f19c8a4db334a",
+   "sha256": "0wskvkwrw0vgknq895by10bcwglaikgkrs1z54f6wyfyksa801ja"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    13
+   ],
+   "deps": [
+    "async"
    ],
-   "commit": "a467a1f04a416252f067b95c0f00a9f10d03c433",
-   "sha256": "1mi9h69zdm4yhvpsgiqvg214f5k818y3w1hz626cw0vr2jxmgdf2"
+   "commit": "ea2ca74a68eb44d935b7240ffc8f19c8a4db334a",
+   "sha256": "0wskvkwrw0vgknq895by10bcwglaikgkrs1z54f6wyfyksa801ja"
   }
  },
  {
@@ -73337,8 +74573,8 @@
    "deps": [
     "org"
    ],
-   "commit": "f7939ef5071895930eebccf490ea7cb25cc54b2c",
-   "sha256": "0lplrdy5432ckif94vl9phh07c6qfm8cxa1mjyn1dypn2sh8p9gi"
+   "commit": "e9b9b3e5bb3c63cecb1367df49205c346d9c050a",
+   "sha256": "0j1f75p40p033acnkds2mxhqx5wilmlhak8cgn196x6y8j1ra7d8"
   }
  },
  {
@@ -73581,11 +74817,11 @@
   "repo": "thisirs/org-context",
   "unstable": {
    "version": [
-    20200615,
-    1554
+    20210216,
+    1526
    ],
-   "commit": "8ef429124c13b1a68f7672cb6e6cb9c8b9d9db93",
-   "sha256": "178hpp3ylafmr2n3ydcqwqjxa8avlb8g1n3swzndc3jjk0gy6vck"
+   "commit": "a08f1f607f819791b9b95ad4f91c5eaa9fdbb091",
+   "sha256": "18ld5kqr0l7nklybdwbwrnkrh06w71myfynbwp9rh8q4lhzh73jc"
   }
  },
  {
@@ -73611,29 +74847,29 @@
   "url": "https://git.spwhitton.name/org-d20",
   "unstable": {
    "version": [
-    20201113,
-    453
+    20210212,
+    139
    ],
    "deps": [
     "dash",
     "s",
     "seq"
    ],
-   "commit": "bab77ede4b1aaf879e7c24e0522da624ee23bf2e",
-   "sha256": "1bcvdl5h4nz2x1zvrq700vf2mbkyhvrslfkabmirhs7hd2q0n41n"
+   "commit": "e6149dcfbb6302d10109dd792fd0ffae7bfe2595",
+   "sha256": "129zdnz97h6px0yz0f0if4gw96zxmsg24xc8vg51crsazqqz8l3b"
   },
   "stable": {
    "version": [
     0,
-    4
+    5
    ],
    "deps": [
     "dash",
     "s",
     "seq"
    ],
-   "commit": "bab77ede4b1aaf879e7c24e0522da624ee23bf2e",
-   "sha256": "1bcvdl5h4nz2x1zvrq700vf2mbkyhvrslfkabmirhs7hd2q0n41n"
+   "commit": "e6149dcfbb6302d10109dd792fd0ffae7bfe2595",
+   "sha256": "129zdnz97h6px0yz0f0if4gw96zxmsg24xc8vg51crsazqqz8l3b"
   }
  },
  {
@@ -73704,14 +74940,14 @@
   "repo": "abo-abo/org-download",
   "unstable": {
    "version": [
-    20210105,
-    1758
+    20210118,
+    958
    ],
    "deps": [
     "async"
    ],
-   "commit": "97bec7412e1a4d6e9031c7a0568d0f065cd9fd00",
-   "sha256": "0jb49q2ayhw1s2dnd323lqc7fy9k3sznxn4dv73s4945j8w2lqcc"
+   "commit": "947ca223643d28e189480e607df68449c15786cb",
+   "sha256": "1yzv4r2820pbdpx09rdrrb9lk1dv4axhxif22f1svf8pggisrsd8"
   },
   "stable": {
    "version": [
@@ -73924,6 +75160,29 @@
   }
  },
  {
+  "ename": "org-elp",
+  "commit": "36d4b3e08482f4c51a3d43fc961fd7d1408c5cfe",
+  "sha256": "1px2q2sxx4624aj09ibmqhjcmx8s0fvvmg42pvyx9gblkayl3nbf",
+  "fetcher": "github",
+  "repo": "guanyilun/org-elp",
+  "unstable": {
+   "version": [
+    20210201,
+    1544
+   ],
+   "commit": "983fd7af4244835601be090211344ed92c36d360",
+   "sha256": "0v2cgw360sigl0jm8fm1hld71xbcjw9j8xjlr176cn4g308zw1sa"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "commit": "f9d48042eed49b9936d162cecb4188456a9cc19b",
+   "sha256": "0spwyrxirmnf8182xsjrvpl8zf2662434zzhnw4qs7fz7wld2f11"
+  }
+ },
+ {
   "ename": "org-emms",
   "commit": "4fa5c221790acca40316510fd495951f418c8e15",
   "sha256": "0g7d2y1dgy2hgiwaxz9crxf3nv8aqzxhyf2jmnmhphdv2s9ipvjw",
@@ -74027,8 +75286,8 @@
   "repo": "kidd/org-gcal.el",
   "unstable": {
    "version": [
-    20201113,
-    2330
+    20210313,
+    420
    ],
    "deps": [
     "alert",
@@ -74036,8 +75295,8 @@
     "request",
     "request-deferred"
    ],
-   "commit": "0a6f9a7385410b70853eb65c14344ad76cc6815f",
-   "sha256": "0m6h2psshkr2kvckp2bmaj2y1cp3kbyw2nwwvwg2k3yymkqr8l7l"
+   "commit": "d38acdad70883dc3fe34a4cd41024e5a8099ddb2",
+   "sha256": "17lnsn045l99w787mbrq623div40w3c59rgryvx04px085bb2i5g"
   },
   "stable": {
    "version": [
@@ -74181,28 +75440,28 @@
   "repo": "marcIhm/org-id-cleanup",
   "unstable": {
    "version": [
-    20201127,
-    1712
+    20210320,
+    1023
    ],
    "deps": [
     "dash",
     "org"
    ],
-   "commit": "1654be88f5a5e1c57e5d204f060f9a07ff4242cc",
-   "sha256": "0gzrdrr0b8rs2lb96j0zczmfvsy37fwri3dxzdpyvddb4x5a1rl2"
+   "commit": "0877bd57f95ad96a342505a6ecef0c15977f6bd6",
+   "sha256": "02q343sznbw1ma9zcxnpa7sy37s85ph9phpg479pfz5c51kji09h"
   },
   "stable": {
    "version": [
     1,
     5,
-    2
+    7
    ],
    "deps": [
     "dash",
     "org"
    ],
-   "commit": "a5c5ff8f2d3ae1fd3ef81511bd4b0226f6764935",
-   "sha256": "17r36k2gdk8n1433a84c490js1x22yjwr21ihcjj13mnfcglmzhp"
+   "commit": "0877bd57f95ad96a342505a6ecef0c15977f6bd6",
+   "sha256": "02q343sznbw1ma9zcxnpa7sy37s85ph9phpg479pfz5c51kji09h"
   }
  },
  {
@@ -74237,30 +75496,30 @@
   "repo": "marcIhm/org-index",
   "unstable": {
    "version": [
-    20201117,
-    1211
+    20210320,
+    1013
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "0863397ba2782e229fa6216beb074dd44eb0c031",
-   "sha256": "062dm9famamziqjczyk6w6ynk0qw6dp4k6a5k81iscz0gdlv6cfm"
+   "commit": "47dda7d3dce11e8ab9a3847f8c6a1cbb8345f861",
+   "sha256": "1s1y0xlin1yx716awzbq6lvzz5c3c5i9qvacgm006bypg8qlmz1a"
   },
   "stable": {
    "version": [
     7,
-    0,
-    0
+    1,
+    6
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "3ada80bca278bb0fb791f7498cced6e8c9752064",
-   "sha256": "1y1nrw39bc1ng6p4asy4lv3y20vdvx1cqa03s5jf9nccddn5j924"
+   "commit": "47dda7d3dce11e8ab9a3847f8c6a1cbb8345f861",
+   "sha256": "1s1y0xlin1yx716awzbq6lvzz5c3c5i9qvacgm006bypg8qlmz1a"
   }
  },
  {
@@ -74271,14 +75530,14 @@
   "repo": "shg/org-inline-pdf.el",
   "unstable": {
    "version": [
-    20210107,
-    940
+    20210119,
+    529
    ],
    "deps": [
     "org"
    ],
-   "commit": "a449c614d63712cd55e8c38d4679667117c132c1",
-   "sha256": "0grsmhif0pmdsvc6lifxip1jh57h5him6ipzkr1rvbs5l47qndk7"
+   "commit": "f9a3321712626d2f43a8849203ceb089cf8233b1",
+   "sha256": "195bzlfqf91f7prv4xh1x1p5xnyygr0mzwqxbsw2apc0haaz6ajk"
   },
   "stable": {
    "version": [
@@ -74320,16 +75579,16 @@
   "repo": "ahungry/org-jira",
   "unstable": {
    "version": [
-    20201119,
-    154
+    20210325,
+    424
    ],
    "deps": [
     "cl-lib",
     "dash",
     "request"
    ],
-   "commit": "df45be17fb66490f625b60c99d9954e614885101",
-   "sha256": "1hsfkkm3ykdf7n8a6k0mpzilhjpy7vllwrl2s4rfb9mhnaq5yb8y"
+   "commit": "7beb2023c36106aefe1a260a7618e285d52eb0a1",
+   "sha256": "0srn5z0r3g8mjb8pibwipzjm5p3w8dwzldfdmlyli1a6akcinsxv"
   },
   "stable": {
    "version": [
@@ -74354,26 +75613,26 @@
   "repo": "bastibe/org-journal",
   "unstable": {
    "version": [
-    20210109,
-    913
+    20210326,
+    1207
    ],
    "deps": [
     "org"
    ],
-   "commit": "08d5fce95023c015372678d353388ad0dae8952b",
-   "sha256": "0f1826xi9z895a1wgnvvv5nqpi2r0l6f8h761zk8ng9j1rhkz865"
+   "commit": "043bb9e26f75066dc1787cdc9265daca7a14dd4e",
+   "sha256": "0x4fvxdrllih2n643v3wgq0rl72dyhk11xqi2l1h718iaz4kqi5i"
   },
   "stable": {
    "version": [
     2,
     1,
-    1
+    2
    ],
    "deps": [
     "org"
    ],
-   "commit": "25ebb8f1c8cd8993fb75a15e2bb8144fb6f9e006",
-   "sha256": "1p9i6v3bwi1ab576vc9qg1ki91197d6nkkg857s52zsan1zlkzzw"
+   "commit": "c26e73a017963f6638044f1f63354c453f2db54a",
+   "sha256": "0s82sh2svc0mzr1ak414n5r2j0dmwvvyx4swk2c61zivc2gjd778"
   }
  },
  {
@@ -74399,30 +75658,30 @@
   "repo": "gizmomogwai/org-kanban",
   "unstable": {
    "version": [
-    20200729,
-    2120
+    20210315,
+    28
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "70b4c9823b32ae299f3da521966b6c5abacf73e2",
-   "sha256": "159g13m1zpc1b2ggs9iw2l51pj0h433y1x00bgznhc9fvamysasd"
+   "commit": "198ffa2066aadcdd9530dcc9b82cb5626c49e257",
+   "sha256": "1lh7hgzbkmhv7hqc0fvgvivkihg96c41ms1v7rcknnp3f1kj195h"
   },
   "stable": {
    "version": [
     0,
     6,
-    1
+    3
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "fbb27c3983ad735a333c766815642a6615cea2ed",
-   "sha256": "0xclk323hq4lszqmvba4v8785v57bxfxln5n1hy0vaf0f45hfkjw"
+   "commit": "198ffa2066aadcdd9530dcc9b82cb5626c49e257",
+   "sha256": "1lh7hgzbkmhv7hqc0fvgvivkihg96c41ms1v7rcknnp3f1kj195h"
   }
  },
  {
@@ -74452,8 +75711,8 @@
   "repo": "yangsheng6810/org-latex-impatient",
   "unstable": {
    "version": [
-    20201123,
-    845
+    20210312,
+    2250
    ],
    "deps": [
     "dash",
@@ -74461,8 +75720,8 @@
     "posframe",
     "s"
    ],
-   "commit": "d8be05fd6857c72a1766e3fa9dafa1602ccf88e3",
-   "sha256": "0vidxcv07brz4adik1826g0v7zyyz80r84kzz01rcxcc471fl957"
+   "commit": "a27ec1491c7d897904e84d9b9db380e1a4c7914a",
+   "sha256": "0r0yn0z4d5y5mzc8awg8wcb3lvb058c7gk7v5mghnwln50zvqqia"
   }
  },
  {
@@ -74473,14 +75732,14 @@
   "repo": "stardiviner/org-link-beautify",
   "unstable": {
    "version": [
-    20210114,
-    1508
+    20210222,
+    227
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "e20c116f7a7a42f0cd6af580ef6e53e006c5b538",
-   "sha256": "1321z866ahs07kil4yzqvsnjcdldapg1gvfx9k9rdx11x3awja2q"
+   "commit": "4662b3a7b9244aa35aae2f469f87be4a44a6b1bb",
+   "sha256": "1wb00rm6zdlb8hrhph783wi8zjra8m09gi6m2nnfr37al3986g0s"
   }
  },
  {
@@ -74551,15 +75810,14 @@
   "repo": "dfeich/org-listcruncher",
   "unstable": {
    "version": [
-    20180815,
-    603
+    20210304,
+    1602
    ],
    "deps": [
-    "cl-lib",
     "seq"
    ],
-   "commit": "65c09c5deba065752eb88875c54dc26abcdfaffb",
-   "sha256": "11chlfvil0wbvzaplzdymn4ajz85956hcs8bh3zds6ij806mqa4y"
+   "commit": "b0269843f317b6715dbde8a4e955aac9c38cbdb6",
+   "sha256": "1ywwngjqfvppxbb0dghqzr0kg9dxyqidjgjrh4ncc0zc9iamcx2w"
   }
  },
  {
@@ -74603,14 +75861,14 @@
   "repo": "org-mime/org-mime",
   "unstable": {
    "version": [
-    20201224,
-    1404
+    20210309,
+    1028
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "b47811562ba5c0882e9bacf9124b18fb5d0f4a61",
-   "sha256": "0xnrgf5p9l920lfzfxa7msjfgm6ic7xfn4mycxjv9jmdnkdm85hw"
+   "commit": "eb21c02ba8f97fe69c14dc657a7883b982664649",
+   "sha256": "0bgrp39mi8pqfr8hfd2lgjil3br55bgilhj09hy3v6klzypbdviy"
   },
   "stable": {
    "version": [
@@ -74652,30 +75910,30 @@
   "repo": "ndwarshuis/org-ml",
   "unstable": {
    "version": [
-    20201229,
-    418
+    20210224,
+    2308
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "d856ac6f0afed0299a47ed77830c676fd0fa9e55",
-   "sha256": "1rydmbjzq24vzfpfrb93ad4wibhpc4rnk7crqbx1p11sdby85h95"
+   "commit": "1b02583a5cdb8f6b7cd82b31ec80b53753cb7729",
+   "sha256": "1p1k5zmc0dklbvnck0zhsxqmndask822ikaa40d1ik105w1vx3bz"
   },
   "stable": {
    "version": [
     5,
-    5,
-    3
+    6,
+    1
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "a396e4a11394b5e00aef1450488b61aeddbd9b55",
-   "sha256": "1rydmbjzq24vzfpfrb93ad4wibhpc4rnk7crqbx1p11sdby85h95"
+   "commit": "4fe1f194a8eba00858b78d611ad8a7f14392722d",
+   "sha256": "1p1k5zmc0dklbvnck0zhsxqmndask822ikaa40d1ik105w1vx3bz"
   }
  },
  {
@@ -74704,11 +75962,11 @@
   "repo": "unhammer/org-mru-clock",
   "unstable": {
    "version": [
-    20210113,
-    1416
+    20210216,
+    1141
    ],
-   "commit": "e08e2ab2b71763f53f2029471057d58f96085a69",
-   "sha256": "10v1ric4xppx92vv722d50as350pw14cqkjlswi0nqssgihxrk11"
+   "commit": "99ac0c85060f9e4710de73db4a19120a0a23c39e",
+   "sha256": "1xqb9pcj6hw1z6anvy5hm78a90m442cg868d62yyynwkzjyns64q"
   },
   "stable": {
    "version": [
@@ -74728,14 +75986,14 @@
   "repo": "jeremy-compostella/org-msg",
   "unstable": {
    "version": [
-    20210111,
-    2224
+    20210209,
+    2056
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "c19f54beebe268833c44a015861bf02531591011",
-   "sha256": "06c8hlj3zpsx9xsw7xr06db8c61iczyvn3kkwpg54p03sjzmpsnx"
+   "commit": "89e746c0a864031eef940758230bc7263a6f2289",
+   "sha256": "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r"
   }
  },
  {
@@ -74746,8 +76004,8 @@
   "repo": "akirak/org-multi-wiki",
   "unstable": {
    "version": [
-    20210111,
-    1022
+    20210324,
+    1820
    ],
    "deps": [
     "dash",
@@ -74755,8 +76013,8 @@
     "org-ql",
     "s"
    ],
-   "commit": "c9005cbe4077cce3743b680dec97c11fa179bb36",
-   "sha256": "1428lky09cvlqdb8b9zf0x49cxmigrkhvhi391b2mj2qzgmjzcvm"
+   "commit": "bf8039aadddaf02569fab473f766071ef7e63563",
+   "sha256": "0hmn9yy2d7wy6zz81ddd96rksmvs9k5529dfqrkrpl4v3bn3g52d"
   },
   "stable": {
    "version": [
@@ -74864,8 +76122,8 @@
   "repo": "fuxialexander/org-pdftools",
   "unstable": {
    "version": [
-    20210110,
-    2132
+    20210118,
+    1611
    ],
    "deps": [
     "org",
@@ -74873,8 +76131,29 @@
     "org-pdftools",
     "pdf-tools"
    ],
-   "commit": "812bbff3212097bb9f8d2acc4b25826ed45dde92",
-   "sha256": "1iaswir2fwbhnwlyi2a1h9azgfdsa8m5ydgyckf67a2y5ykwkwv7"
+   "commit": "a5b61bca3f8c91b0859bb0df1a929f9a31a57b99",
+   "sha256": "18iy03hc7jb7qsfj25f6hmrwli6fyjbf14c1p5bhp5gwk49rm9p1"
+  }
+ },
+ {
+  "ename": "org-notifications",
+  "commit": "cd49aa8b5692ce460f3a3e9f6310f82665de4a47",
+  "sha256": "03gbdn1igdhna7kpcvwwf21mkyp94fwv1glsajd1l88r1a9n3dss",
+  "fetcher": "github",
+  "repo": "doppelc/org-notifications",
+  "unstable": {
+   "version": [
+    20210310,
+    1149
+   ],
+   "deps": [
+    "alert",
+    "org",
+    "seq",
+    "sound-wav"
+   ],
+   "commit": "41a8a6b57e11a5b676b03925d473066655364808",
+   "sha256": "1fb4jm1zhfllzzrdbasgp1r3ggjs3xa4pfd5papi6mfcz9ypxqsh"
   }
  },
  {
@@ -75019,39 +76298,6 @@
   }
  },
  {
-  "ename": "org-password-manager",
-  "commit": "38249f32d150d10b6ed86679361d99ace2375a02",
-  "sha256": "148rv5kzmnqlfn8z2474wn0bxir49d4mb40mjrv76kvyzyj7nly9",
-  "fetcher": "github",
-  "repo": "leafac/org-password-manager",
-  "unstable": {
-   "version": [
-    20180227,
-    1810
-   ],
-   "deps": [
-    "dash",
-    "org",
-    "s"
-   ],
-   "commit": "4b30a36e71182553a02e4dd415369290d98ec03a",
-   "sha256": "1a6i3g032c5xzsnaf7rprn22kk68y1ay3w21p3q52p3lvlzhnfis"
-  },
-  "stable": {
-   "version": [
-    0,
-    0,
-    1
-   ],
-   "deps": [
-    "org",
-    "s"
-   ],
-   "commit": "d3a33ddfe583180bdb76cfb8bbd772e0078b24a3",
-   "sha256": "0pqmnhd3qdg06agj6h8v8lm4m5q8px0qmd7a1bfn6i5g2bq9zrck"
-  }
- },
- {
   "ename": "org-pdftools",
   "commit": "d52346a042a72b76729d259c7f12f45d38ac27cd",
   "sha256": "1pgfx0zgdp9kg8mxqxm5qac7vnd0j1ghfwq04rvqi9r1d51zpynl",
@@ -75059,16 +76305,16 @@
   "repo": "fuxialexander/org-pdftools",
   "unstable": {
    "version": [
-    20210110,
-    2052
+    20210118,
+    1611
    ],
    "deps": [
     "org",
     "org-noter",
     "pdf-tools"
    ],
-   "commit": "812bbff3212097bb9f8d2acc4b25826ed45dde92",
-   "sha256": "1iaswir2fwbhnwlyi2a1h9azgfdsa8m5ydgyckf67a2y5ykwkwv7"
+   "commit": "a5b61bca3f8c91b0859bb0df1a929f9a31a57b99",
+   "sha256": "18iy03hc7jb7qsfj25f6hmrwli6fyjbf14c1p5bhp5gwk49rm9p1"
   }
  },
  {
@@ -75079,11 +76325,11 @@
   "repo": "tumashu/org-picklink",
   "unstable": {
    "version": [
-    20191203,
-    59
+    20210210,
+    516
    ],
-   "commit": "f79040ed988bdeec63b098b187e00f2b80d3d570",
-   "sha256": "0a0dzg8w617sn079mshihfv5sm74xphab81kmvi1dqcc5iyi15kh"
+   "commit": "bfdc22b436482752be41c5d6f6f37dca76b1c7c3",
+   "sha256": "1asq336rff0f1zh5crsj3xwyx4xiwdypzy6dlqrxzszkxx8sd4dd"
   }
  },
  {
@@ -75437,28 +76683,28 @@
   "repo": "oer/org-re-reveal",
   "unstable": {
    "version": [
-    20210111,
-    1807
+    20210121,
+    1011
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "7b536b497edc46e6231f33d2c1eea9cd9a7eabbb",
-   "sha256": "16kpprrcylrysbpqsz2k47q0qb1yjz9y7az71aik1nskinnml83v"
+   "commit": "18a2456befcfda5f681b2b4041f3262f93e52cba",
+   "sha256": "1274zq6qhzl8l7hpbh2spgmf9hqrilcm31m3mbybj6gm085g17dz"
   },
   "stable": {
    "version": [
     3,
-    6,
+    7,
     0
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "7b536b497edc46e6231f33d2c1eea9cd9a7eabbb",
-   "sha256": "16kpprrcylrysbpqsz2k47q0qb1yjz9y7az71aik1nskinnml83v"
+   "commit": "d404eb13d9e34354c081870ebdd69711937682b3",
+   "sha256": "1vzn0l8ig4rzh5h8j7kxn8kslqrij97qqv98fbnlwmrw4z87v8dr"
   }
  },
  {
@@ -75569,8 +76815,8 @@
   "repo": "jkitchin/org-ref",
   "unstable": {
    "version": [
-    20210113,
-    1549
+    20210324,
+    1337
    ],
    "deps": [
     "bibtex-completion",
@@ -75585,8 +76831,8 @@
     "pdf-tools",
     "s"
    ],
-   "commit": "cd0b4997fad3a050a0092d1458d34286ef5122d2",
-   "sha256": "1rn9x5p4kmm83smg7c9xalbziliqq02fwfl4v1cgczqyb7vir7nz"
+   "commit": "3ca9beb744621f007d932deb8a4197467012c23a",
+   "sha256": "1n262rsmil2n7dilf711gs8rciv8gd7wf3vadb0zcbkbn703jbk9"
   },
   "stable": {
    "version": [
@@ -75712,8 +76958,8 @@
   "repo": "org-roam/org-roam",
   "unstable": {
    "version": [
-    20210111,
-    1138
+    20210308,
+    457
    ],
    "deps": [
     "dash",
@@ -75723,8 +76969,8 @@
     "org",
     "s"
    ],
-   "commit": "05a9bc44f2d158cc355c904382f2c7b079aeee15",
-   "sha256": "18s3qp671g28qy1qllnm4lay7mvyar8qcqqjn8yd3417gxwndqhh"
+   "commit": "8ad57b121831eda8d226faa14ff2ba7ab652849c",
+   "sha256": "162qhb6rkpl1n0l8yhnwgagsx56ykaj9lchsny1id5z1257kgw9w"
   },
   "stable": {
    "version": [
@@ -75752,28 +76998,29 @@
   "repo": "org-roam/org-roam-bibtex",
   "unstable": {
    "version": [
-    20201220,
-    1653
+    20210322,
+    2231
    ],
    "deps": [
     "bibtex-completion",
+    "org-ref",
     "org-roam"
    ],
-   "commit": "9ba15069c3f7ecd1080873cd3a7d587eb7c72d08",
-   "sha256": "0nfsrrca1p5xlildcbjisfhhrwiwgd6jv0nfn4a2gdpxd77v39d6"
+   "commit": "ffe0cdbcfd7421c10268fb3437fc5bd6ceadcbd2",
+   "sha256": "1a9k9nxcqzyfip06m59la1rq8siswhg9zys3y6i3iz5wfy5vd0lk"
   },
   "stable": {
    "version": [
     0,
-    4,
+    5,
     0
    ],
    "deps": [
     "bibtex-completion",
     "org-roam"
    ],
-   "commit": "71da772469bcb49d4a93ee9d9704fbee9488aa28",
-   "sha256": "13pll793khyfncpwm2dg24w747sqp7kgf7m3fqw2xzhv9cx2g7nq"
+   "commit": "81b6fedf99996a78199067e61935964dea9389ee",
+   "sha256": "1xb7nskz73dfa2rgwmf4s3iq10f43zagggia3ddhx109wmy2m9a9"
   }
  },
  {
@@ -75784,8 +77031,8 @@
   "repo": "org-roam/org-roam-server",
   "unstable": {
    "version": [
-    20210109,
-    935
+    20210321,
+    1040
    ],
    "deps": [
     "dash",
@@ -75795,24 +77042,25 @@
     "s",
     "simple-httpd"
    ],
-   "commit": "c7793202e9929dc2a415482779141e7b429421ce",
-   "sha256": "1z29xngyxmq0pd8kfx6z8n8hps4apnffnsi8qc0hvmyhp197hkqc"
+   "commit": "2122a61e9e9be205355c7e2c1e4b65986d6985a5",
+   "sha256": "05fh2065hl17vqsph5kgraaq303q2j48aqvll2mdpl666rhdlws8"
   },
   "stable": {
    "version": [
     1,
-    0,
-    4
+    1,
+    2
    ],
    "deps": [
     "dash",
+    "f",
     "org",
     "org-roam",
     "s",
     "simple-httpd"
    ],
-   "commit": "fe0364ef63928337f442c1d987d17cfe9619df2d",
-   "sha256": "0a5b625i7gv467xm8p92nvrh2wzgmldm8gzcbrc15al1gvnwpbqm"
+   "commit": "2093ea5a1a1f2d128dd377778472a481913717b4",
+   "sha256": "1jp8mkqx1l3w166b16l2d5zsqjcc836bkclplgjk4laysb6msry8"
   }
  },
  {
@@ -75999,17 +77247,16 @@
   "repo": "alhassy/org-special-block-extras",
   "unstable": {
    "version": [
-    20210114,
-    2006
+    20210228,
+    212
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "org",
     "s"
    ],
-   "commit": "0c5a7b97be4e5e11093276af310442ab5776ab90",
-   "sha256": "1311yxmsdb9gms0v20dd7ak0vdkkgda5p89zrp21v4dazjh7rl9a"
+   "commit": "143146d5bab10e32d4a24f4c3e5e30905b0f3176",
+   "sha256": "1wbb5isfm1ixv2zbys75cn276zcr2927j3h2crb081acygm78qqv"
   },
   "stable": {
    "version": [
@@ -76033,30 +77280,32 @@
   "repo": "ndwarshuis/org-sql",
   "unstable": {
    "version": [
-    20201222,
-    206
+    20210306,
+    329
    ],
    "deps": [
     "dash",
+    "f",
     "org-ml",
     "s"
    ],
-   "commit": "ddbab360a49d4c0cab964cd1fdb80d2135a10272",
-   "sha256": "0rhc5sb6drzndxay52qb3f1kbxfnwvz99i1jpjs4adsmyhx35xai"
+   "commit": "c93834332a333f6a602d3bbe0b39c79abb2f78cb",
+   "sha256": "1wp3d3b1wdw8v5drwbrfxrbq8psf82bs9cwjin2psfgb4n1166dy"
   },
   "stable": {
    "version": [
-    1,
-    1,
+    3,
+    0,
     0
    ],
    "deps": [
     "dash",
+    "f",
     "org-ml",
     "s"
    ],
-   "commit": "6160de13bcef3ad91c706d8a7b1601703b424616",
-   "sha256": "0rhc5sb6drzndxay52qb3f1kbxfnwvz99i1jpjs4adsmyhx35xai"
+   "commit": "1cc854e814f86bc35f536563837a97a832a06122",
+   "sha256": "1wp3d3b1wdw8v5drwbrfxrbq8psf82bs9cwjin2psfgb4n1166dy"
   }
  },
  {
@@ -76067,15 +77316,14 @@
   "repo": "akirak/org-starter",
   "unstable": {
    "version": [
-    20201202,
-    234
+    20210314,
+    1558
    ],
    "deps": [
-    "dash",
-    "dash-functional"
+    "dash"
    ],
-   "commit": "23368e36453ff15b2de06e85702d6f0e0bc9f098",
-   "sha256": "1iznmya5kk3y9irka7f6yyrnzv3b3zh6kdr2wvyir930kcv52n63"
+   "commit": "786257e682bf147022d5b19e6df6e7c9939193af",
+   "sha256": "1vfw06c08yhpc1dbqb4gprh9l3j0rgsyvhhgmvcv3y5cq2yaibhb"
   },
   "stable": {
    "version": [
@@ -76106,8 +77354,8 @@
     "org-starter",
     "swiper"
    ],
-   "commit": "23368e36453ff15b2de06e85702d6f0e0bc9f098",
-   "sha256": "1iznmya5kk3y9irka7f6yyrnzv3b3zh6kdr2wvyir930kcv52n63"
+   "commit": "786257e682bf147022d5b19e6df6e7c9939193af",
+   "sha256": "1vfw06c08yhpc1dbqb4gprh9l3j0rgsyvhhgmvcv3y5cq2yaibhb"
   },
   "stable": {
    "version": [
@@ -76131,20 +77379,20 @@
   "repo": "bastibe/org-static-blog",
   "unstable": {
    "version": [
-    20210113,
-    731
+    20210321,
+    2008
    ],
-   "commit": "0da4f8cc3a09bdd107da18ab381a4cabb461430d",
-   "sha256": "1684cxa1qj3b90zckhph7vawwxwa0djpaqwps0vh9p8yngy794z2"
+   "commit": "e0265c97dd9d014760eb6280be6c8bb81793cdf5",
+   "sha256": "0g0mwgc5mrwchqj679b8jzxn2j4pfnysyp3xlpx41gk24hakpfqh"
   },
   "stable": {
    "version": [
     1,
-    4,
+    5,
     0
    ],
-   "commit": "58019b6dd1ae1323b72d491e65bf9636a9278dd6",
-   "sha256": "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"
+   "commit": "734dd263cf79e4d5a0077f8b5ce344ea45bf7f3d",
+   "sha256": "1p9v40mm8p25b9xgfahwqqx4c36aqnl9yyjjdhkp6x5xkhkdf7by"
   }
  },
  {
@@ -76221,26 +77469,26 @@
   "repo": "integral-dw/org-superstar-mode",
   "unstable": {
    "version": [
-    20200818,
-    2257
+    20210216,
+    1925
    ],
    "deps": [
     "org"
    ],
-   "commit": "7f83636db215bf5a10edbfdf11d12a132864a914",
-   "sha256": "086h7fj7k0199m3i01whmqzi4kb4h6ncikdmv6skxs41hzpnjvk4"
+   "commit": "9d64c42e5029910153ec74cb9b5747b074281140",
+   "sha256": "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"
   },
   "stable": {
    "version": [
     1,
-    4,
+    5,
     0
    ],
    "deps": [
     "org"
    ],
-   "commit": "94f35c20f8b84a63defa145e3e6ae735fa33dd5d",
-   "sha256": "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"
+   "commit": "9d64c42e5029910153ec74cb9b5747b074281140",
+   "sha256": "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"
   }
  },
  {
@@ -76349,6 +77597,25 @@
   }
  },
  {
+  "ename": "org-tag-beautify",
+  "commit": "faa48723cbc4486c2d8262d00aa9967bfad81738",
+  "sha256": "1dn164z53c38bfzx8m22dynfx2wlw8cgcm63q6kvz5xsxqqwwsmp",
+  "fetcher": "github",
+  "repo": "stardiviner/org-tag-beautify",
+  "unstable": {
+   "version": [
+    20210304,
+    1124
+   ],
+   "deps": [
+    "all-the-icons",
+    "org-pretty-tags"
+   ],
+   "commit": "e655ced70140cbec8fe12f9207614ca2b3a6c37c",
+   "sha256": "0853avvi2qpr19ca6c9ix8ls7r2r5v5f38nzkr4lbindmmxl6kpv"
+  }
+ },
+ {
   "ename": "org-tanglesync",
   "commit": "2db07414d2d39b2d40a2ae91491032844b82d801",
   "sha256": "11h97qihb3n82jan08fhg5zjh8jqcwjrhf6b933gy6b4h1nwlmdj",
@@ -76465,26 +77732,26 @@
   "repo": "Fuco1/org-timeline",
   "unstable": {
    "version": [
-    20190612,
-    1759
+    20210210,
+    2306
    ],
    "deps": [
     "dash"
    ],
-   "commit": "f628519a12ce3d534b9aa5043b0273880cf29790",
-   "sha256": "16qjbw5l39j3kc4lfpm18ba81w9bhy9cdd3fii1n7dwyx76av73i"
+   "commit": "af1b44e18048278a116da89faf138310f09c74c6",
+   "sha256": "05gp5hqfwx668a0qvpx1wn8957qgn6g9jhrhiwgscnnxch2dp0c0"
   },
   "stable": {
    "version": [
     0,
-    3,
+    4,
     0
    ],
    "deps": [
     "dash"
    ],
-   "commit": "aed995c1db6c8bfd9db0a75a978f5e261aab38e5",
-   "sha256": "1jz44lag1j4rawqjpcgb9zrs88vfi7vjgdh756hs2ln7i1cnvgh5"
+   "commit": "55cafb5512a174c3898aaacd71ab58832b9fe321",
+   "sha256": "106603835m3dy3bzjiasq2w574faxnn5kb72gr0y0mdkd0iwh8qa"
   }
  },
  {
@@ -76585,11 +77852,11 @@
   "repo": "takaxp/org-tree-slide",
   "unstable": {
    "version": [
-    20201215,
-    1117
+    20210224,
+    1213
    ],
-   "commit": "d6e8e91433dfe4968f1343b483f2680f45a77d52",
-   "sha256": "1zz12xk8vl2qic5hpvl0jcwysbmrfb6rfigvf8hr3nhdm9fp36aw"
+   "commit": "9d2ba1df456d8d7c6372c8c294dbe3ee81540b33",
+   "sha256": "145avv616k190wzirlrh7rljysfffhh3j37wr7p6sk13wayqc27h"
   },
   "stable": {
    "version": [
@@ -76678,8 +77945,8 @@
   "repo": "org-trello/org-trello",
   "unstable": {
    "version": [
-    20200508,
-    1705
+    20210314,
+    1856
    ],
    "deps": [
     "dash",
@@ -76688,8 +77955,8 @@
     "request-deferred",
     "s"
    ],
-   "commit": "56c519a00c6e3c8f6923cd0460342089d58c41c9",
-   "sha256": "09028167pi9pzgcb8fpvqgvzviq1fxvgby5lb99wvyy94vjxwnk2"
+   "commit": "0435d77cd32cf475ce71b81cda4bb48066c44f31",
+   "sha256": "1nnii5d5qf0bgfpywmhzprh6f1hk39k2wnhnjl0ahqm99bl46fps"
   },
   "stable": {
    "version": [
@@ -76719,8 +77986,8 @@
     20200919,
     1348
    ],
-   "commit": "e086c59a14701cd041641b51c952fa704ee963df",
-   "sha256": "0w1crw5lsk22jfw2w5qq6ab7zxdzp38akasvyvxakvpp1782xq9p"
+   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
+   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
   }
  },
  {
@@ -76731,11 +77998,11 @@
   "repo": "flexibeast/org-vcard",
   "unstable": {
    "version": [
-    20200720,
-    638
+    20210208,
+    305
    ],
-   "commit": "1ae97371b207dabfecaf6b4f7118abafe6cc5e2b",
-   "sha256": "0k9slz20gxcdpvpz8kgvvwff6cif74wybpqgg9x03wqqqda3f37v"
+   "commit": "f4b7445550deb30e170a25fc42541e99730e21d0",
+   "sha256": "07dwxxwvahl153w6nsgfwrxgiw0s6c12kmvqvni19n6aiv3zavaj"
   },
   "stable": {
    "version": [
@@ -76808,17 +78075,16 @@
   "repo": "akhramov/org-wild-notifier.el",
   "unstable": {
    "version": [
-    20200926,
-    1502
+    20210308,
+    1348
    ],
    "deps": [
     "alert",
     "async",
-    "dash",
-    "dash-functional"
+    "dash"
    ],
-   "commit": "b83d31422abcf9527d5ec0344f2fa2df5b76a357",
-   "sha256": "0cdd93sqx0ijajqa2z91bg6h6m1njsaqzwygr8q28dd2pazxq5xc"
+   "commit": "b616924f9b6e2c26c21e07ad6bccfc26826b7be3",
+   "sha256": "0ps3kzi95ybr7adrspmhflw9jw3h5d6lf0kl5cn45myyyjapckjj"
   },
   "stable": {
    "version": [
@@ -76844,30 +78110,30 @@
   "repo": "marcIhm/org-working-set",
   "unstable": {
    "version": [
-    20201118,
-    810
+    20210320,
+    1019
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "cf4bd2bfb11d0e0ed8c9228c07df8eb8150504f4",
-   "sha256": "10ailnbq2hhn8cnw1lcibhm8vgvy1437h48gbwxkk2kf25wpm73p"
+   "commit": "f5512304dccc152816f9957f5627c814bcb0f683",
+   "sha256": "0kg2bjwp66fml3836zfr15aadh5d7srg8ai69g0nxk1kmalbxkdv"
   },
   "stable": {
    "version": [
     2,
     4,
-    0
+    4
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "cf4bd2bfb11d0e0ed8c9228c07df8eb8150504f4",
-   "sha256": "10ailnbq2hhn8cnw1lcibhm8vgvy1437h48gbwxkk2kf25wpm73p"
+   "commit": "f5512304dccc152816f9957f5627c814bcb0f683",
+   "sha256": "0kg2bjwp66fml3836zfr15aadh5d7srg8ai69g0nxk1kmalbxkdv"
   }
  },
  {
@@ -76990,15 +78256,15 @@
   "repo": "ardumont/org2jekyll",
   "unstable": {
    "version": [
-    20200622,
-    1519
+    20210220,
+    1845
    ],
    "deps": [
-    "dash-functional",
+    "dash",
     "s"
    ],
-   "commit": "571249c977e0340edb3ef3af45b7841b62ec8065",
-   "sha256": "1hjqawygbmvdlvzi908b2l4k7ca3g0dg32mpk7vld8xwi49hb1kp"
+   "commit": "e469373e0c656cec475c145037be1902d2622f09",
+   "sha256": "1pqrvrs54ggm2hr7b7m9n4wglbmakw0q9651mwxylz6bwm66kcc1"
   },
   "stable": {
    "version": [
@@ -77022,8 +78288,8 @@
   "repo": "tumashu/org2web",
   "unstable": {
    "version": [
-    20171005,
-    2317
+    20210203,
+    324
    ],
    "deps": [
     "cl-lib",
@@ -77035,8 +78301,8 @@
     "org",
     "simple-httpd"
    ],
-   "commit": "5243b399927a4c474bb3b8d1c8a00799df1f27d7",
-   "sha256": "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"
+   "commit": "6f5c5f0cc5c877ac3a383782bbe8751264d807b6",
+   "sha256": "12rgrmcp91y27zcq8kcqvndb38n6ix4amf13cc2gjhi6aayxxx7k"
   },
   "stable": {
    "version": [
@@ -77081,8 +78347,8 @@
   "repo": "jcs-elpa/organize-imports-java",
   "unstable": {
    "version": [
-    20210113,
-    1838
+    20210121,
+    606
    ],
    "deps": [
     "dash",
@@ -77090,8 +78356,8 @@
     "ht",
     "s"
    ],
-   "commit": "6e0b1d094bc624a895d198874a8a423dfc033247",
-   "sha256": "0fhnlzg0gh9bkb471kxgsx69zqk1xybnii4lyv2lshylxac918a6"
+   "commit": "50c11af264505b026aed77d6b67a132f7d4f7e6b",
+   "sha256": "0q5qz7bm8k17v9mzixb4fbdcn9czcskkrrlnk38sgj390d2pyc7c"
   },
   "stable": {
    "version": [
@@ -77149,15 +78415,15 @@
   "repo": "magit/orgit",
   "unstable": {
    "version": [
-    20200714,
-    1943
+    20210309,
+    1906
    ],
    "deps": [
     "magit",
     "org"
    ],
-   "commit": "ac9b1a42863a864fde9d225890ef5464bffdc646",
-   "sha256": "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"
+   "commit": "609fd0ccfb5268704b5bc7d7ac1014d4960b9707",
+   "sha256": "00rmp5pbn7bn4mrfzlkh9dc5m80qw72bs5jxdss9sk38v1gvxbr3"
   },
   "stable": {
    "version": [
@@ -77190,8 +78456,8 @@
     "org",
     "orgit"
    ],
-   "commit": "63a19d1df1434e583aac1329ba4dcfa2ee59d7c1",
-   "sha256": "1vd7wnas53z0985if22sv0wpww2dp0g8b0z9hwlzdhlcrsjay5fz"
+   "commit": "051d92661ef12b67ffadb231324806d87d1e6a54",
+   "sha256": "0x8wmqp9x2c7qv0ipj2rvjf7bc7z0pn8s253gjxpxmakz3l8wnyk"
   },
   "stable": {
    "version": [
@@ -77291,8 +78557,8 @@
     20201129,
     604
    ],
-   "commit": "c63c1682de9a10c6d6946978c154f09bb6fa7284",
-   "sha256": "0vp4s8m1rg0q3pd8vdk8ys03dzsibglpkx30hfw10z847fbif85w"
+   "commit": "5c065aa584d18257a58cd7c5439df5ce23d989c3",
+   "sha256": "1pmkkihnrch7z705mc94dmr8bxb4mgg7c5iirmrar4hhg84l13q2"
   },
   "stable": {
    "version": [
@@ -77312,11 +78578,11 @@
   "repo": "tbanel/orgaggregate",
   "unstable": {
    "version": [
-    20200829,
-    708
+    20210315,
+    1415
    ],
-   "commit": "bab95388b182c07bc9f0679426514fe7e8c997d9",
-   "sha256": "18qasx17hgfrmzkljjpni4m2lgic3imyksjg6wa7xrjf0y3kwmgw"
+   "commit": "639ec296ccca4e2f7405e9ef72506fad609f2167",
+   "sha256": "0nkm6y851sm1bp8ch9d7dxi1z07qs1254ab8zjv16hvq8arp0s6c"
   }
  },
  {
@@ -77342,14 +78608,14 @@
   "repo": "tbanel/orgtbljoin",
   "unstable": {
    "version": [
-    20200825,
-    640
+    20210225,
+    923
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "e93e8eaeab2137bc391cf6d0643619ce6b066d19",
-   "sha256": "0rbcdgsb7vzsjiwk5zskv15sf8npxdsbvpzd9r6s7aib83mb5kqa"
+   "commit": "f411d38de5e36f65336a37e43cfe9a5125b6543a",
+   "sha256": "05m6xq1c3cc2vpwfgknjx6rad8lr2hd6prbziq04qxp8x8qcs3sj"
   }
  },
  {
@@ -77539,14 +78805,14 @@
   "repo": "xuchunyang/osx-dictionary.el",
   "unstable": {
    "version": [
-    20191206,
-    519
+    20210309,
+    115
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1b79ff64c72485cb078db9ab7ee3256b11a99f4b",
-   "sha256": "1lnjpsb09w48ibjvabqkxqh997mv61zpvqhx3d35q4lw5sirgjxg"
+   "commit": "4d4cc19fdd4ac8408bd5acc7694e7a7096b1e3b3",
+   "sha256": "1zmng3qx7i4wkz1vrxw0vw3kyirnb8a0pn46zq6zhzj33ybn9582"
   },
   "stable": {
    "version": [
@@ -77648,8 +78914,8 @@
     20200215,
     513
    ],
-   "commit": "703ee41303dc251b7672b7cba5aeb6aa54a76c90",
-   "sha256": "0cplbz7mc2zrxfk8g349ahb7gzli2hn5kda9155nbk8dw74xmj7d"
+   "commit": "94240ebb716f11af8427b6295c3f44c0c43419d3",
+   "sha256": "0c3l50qpdzracjncsbjv5chpvjdphhzwqk4jwv31fw6p62i1zvlb"
   },
   "stable": {
    "version": [
@@ -77739,11 +79005,11 @@
   "repo": "tarsius/outline-minor-faces",
   "unstable": {
    "version": [
-    20201031,
-    1318
+    20210214,
+    1715
    ],
-   "commit": "a34602b59063dd22ca6877466b85b2728f03c242",
-   "sha256": "1k3zfcmlwfby7yixjdxfynhys2kyhggg0n3d251a9frzrkyg6gxb"
+   "commit": "bb6db842e4fc2ed4d635001938ebafe93925f48c",
+   "sha256": "0h54wdsh6g0wmqf356s6br08hq29p6cdrsd14q9w6qaxhmfzbs7m"
   },
   "stable": {
    "version": [
@@ -77771,21 +79037,6 @@
   }
  },
  {
-  "ename": "outlined-elisp-mode",
-  "commit": "ae918c301e1c0ae39574ae76d70059718724293b",
-  "sha256": "165sivmv5h4nvh08ampq95x6b0bkzxgrdjbxjxlq6rv00vaidn7v",
-  "fetcher": "github",
-  "repo": "zk-phi/outlined-elisp-mode",
-  "unstable": {
-   "version": [
-    20131108,
-    1127
-   ],
-   "commit": "c16cb02b540448919ad148f2be6a41523ee5489c",
-   "sha256": "0d9hfr4kb6rkhwacdn70bkfchgam26gj92zfyaqw77a2sgwcmwwv"
-  }
- },
- {
   "ename": "outlook",
   "commit": "c5ce3e6800213b117578a1022f25407f2ec1604f",
   "sha256": "0yq9zl7dr8kkm4rps5np4dwvjfhzsxq9wd1af7zwcmms4l3qry6k",
@@ -78045,6 +79296,36 @@
   }
  },
  {
+  "ename": "ox-bb",
+  "commit": "da730e416206f4cb7a2e1552a3079cec9af89ae5",
+  "sha256": "1gpx9kls1pmnbr5izv3qxlkd3bg7wbk4il3q3xw006lxcmwl48v8",
+  "fetcher": "github",
+  "repo": "mmitch/ox-bb",
+  "unstable": {
+   "version": [
+    20210222,
+    2002
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "a79dc519cd28c000ebca4254a4744ce2b9b82168",
+   "sha256": "1ffpslv58kzw9nhrfv2cp42vq0pdx5gm1bk20g6k697ijiz1r1jj"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "37e22316afac9dd73dec072ac6420e5c1c4471b6",
+   "sha256": "0a2vp4br1s4zjvjz7z7j3kzzlnb4rzmash1425rz55zg2v3zsi0a"
+  }
+ },
+ {
   "ename": "ox-bibtex-chinese",
   "commit": "6c09c708c4372451502923cd3cb756f4f98ba97b",
   "sha256": "0f3xigrkhc86vv23f76fdd4rjsspsd2ck5c65biq2ds247f4gm61",
@@ -78067,15 +79348,15 @@
   "repo": "jkitchin/ox-clip",
   "unstable": {
    "version": [
-    20210113,
-    1749
+    20210323,
+    2145
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "bae9075745f21da2dfce311ae3ca8ad12d75046c",
-   "sha256": "04hnl7w6hf2jwd788p3p633bdfcziwll8638mlmslpws84iwx905"
+   "commit": "2095537695135c7f1bc19db043925eb7d482907b",
+   "sha256": "0pingsmmdpw9g88rri7rkw8ajp1f982vx9rh97nfn51ppr94ihbw"
   }
  },
  {
@@ -78200,14 +79481,14 @@
   "repo": "kaushalmodi/ox-hugo",
   "unstable": {
    "version": [
-    20201111,
-    1638
+    20210129,
+    2241
    ],
    "deps": [
     "org"
    ],
-   "commit": "6bc8ee08023695fa167ac0ddf1fc61e1975fa1ce",
-   "sha256": "0sb4ms9wd6085g6c6kfjm4bk9z1z02l8dbn15xs9axzksk4zcq6x"
+   "commit": "02140a294a8d0d15ca42a1956af794fd7ec18140",
+   "sha256": "1sjfiypk3707jh4r4ndym8chiahw0imlawkx7hsrv2ld65hc78lp"
   },
   "stable": {
    "version": [
@@ -78352,8 +79633,8 @@
    "deps": [
     "org"
    ],
-   "commit": "be0a0dde62fde8cdf8d72b6968344906aa8c6f54",
-   "sha256": "1afikv50ii4xk9pkg4m6dx246bjnwka37lccif8i5r48hfy5w4bq"
+   "commit": "c4487689309dddff3228603754b69ab381cfa5dc",
+   "sha256": "17p42zv2slnfahrh9ln3rrh3fjnh2bk4j4fxljn589cgv0wblwqc"
   },
   "stable": {
    "version": [
@@ -78534,11 +79815,14 @@
   "repo": "DarkBuffalo/ox-report",
   "unstable": {
    "version": [
-    20201208,
-    1749
+    20210219,
+    2023
+   ],
+   "deps": [
+    "org-msg"
    ],
-   "commit": "b7b1d682a724ef4ea729327395aa6577cba27133",
-   "sha256": "1cznkrcxi0pfs7i1fvz6zg8b3z2axcmqmjw62s15p0fhn4d2czxf"
+   "commit": "7e135fb51f252ab1ec5a31e05a1c7e638b656b85",
+   "sha256": "1lg00p7nr3y5wjm7r53c93gx0ycqjgsrj4w5jxw6fzrdacqdnsz9"
   },
   "stable": {
    "version": [
@@ -78557,14 +79841,14 @@
   "repo": "yjwen/org-reveal",
   "unstable": {
    "version": [
-    20201211,
-    1518
+    20210215,
+    1605
    ],
    "deps": [
     "org"
    ],
-   "commit": "e8673f4825b1c6e97f8ba895ccaf8c460cba5a09",
-   "sha256": "08gsb4c7a3hvkp3vdzad2wbs3n6ldxddhqp7bxsgsw7z3gfb4snv"
+   "commit": "499c5777174dbc7318e3f32fd50357c2823b228a",
+   "sha256": "1sf7ksda0898lgig1qhdzqm9v2jgrr033ainpb9406ij1v63gsh7"
   }
  },
  {
@@ -78722,6 +80006,21 @@
   }
  },
  {
+  "ename": "ox-timeline",
+  "commit": "da58cd5a678314a359f6bdec404574b473ff361b",
+  "sha256": "0b0jb8n38rrllv4w2kcdh33k3vpjl0dyy7v4lpczsy23880pyfbq",
+  "fetcher": "github",
+  "repo": "jjuliano/org-simple-timeline",
+  "unstable": {
+   "version": [
+    20210118,
+    536
+   ],
+   "commit": "238e05b01dde37fa27a3a8943cc04dcc9b9b83b2",
+   "sha256": "0949gabr0wfsrzzaf217jsaawkc3gj1lxkrzwp3bigmxngsn4ykn"
+  }
+ },
+ {
   "ename": "ox-trac",
   "commit": "4b73753ef9229d0fdfbe237acc63126f1786a494",
   "sha256": "0f8b3i83vzxzfa91p4ahlqz6njql18xy5nk265sjxpy9zr898rsa",
@@ -78946,26 +80245,26 @@
  },
  {
   "ename": "package+",
-  "commit": "49cfbbc4535aa7e175aa819d67b8aa52a6f94384",
-  "sha256": "1mbsxr4llz8ny7n7w3lykld9yvbaywlfqnvr9l0aiv9rvmdv03bn",
+  "commit": "e6af50f8f11d89eca83f96f312fd9a143edae6d9",
+  "sha256": "1gyhy0jgqj9vv7ddm4xi5x5jaqdhkkc4mqcyr7134v2355nbpqlj",
   "fetcher": "github",
   "repo": "zenspider/package",
   "unstable": {
    "version": [
-    20201222,
-    255
+    20210124,
+    640
    ],
-   "commit": "59b0f6daf219a2e0a0a0389d56471eb2a876f21d",
-   "sha256": "139ffhhjv45fbxqjasv46v0057sjbynqi9x6g7vikrph0js7bnja"
+   "commit": "06fbc904e09d3349b669c2624a587fee5accf5ef",
+   "sha256": "0mmziyswrfj1a43cy6qn1d8b1a302z4w3xk4z5yi5frdr22j684c"
   },
   "stable": {
    "version": [
     1,
-    3,
+    4,
     0
    ],
-   "commit": "59b0f6daf219a2e0a0a0389d56471eb2a876f21d",
-   "sha256": "139ffhhjv45fbxqjasv46v0057sjbynqi9x6g7vikrph0js7bnja"
+   "commit": "2729bfd012c53733d3e00267d81d849ce5aa8e2d",
+   "sha256": "1ky1zm1rwkl0cphvdhg5vhzfg7syp8dhq774dq526nlrbfsvmiph"
   }
  },
  {
@@ -78976,14 +80275,14 @@
   "repo": "melpa/package-build",
   "unstable": {
    "version": [
-    20210113,
-    329
+    20210318,
+    1411
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "71484efbf5f5df74c0db9936019c2e08f5ef3789",
-   "sha256": "08w97l0xycnm2z43n51bmgkf38cgaj4jq8p3qxyw3gx76605i8ck"
+   "commit": "0f13dd6655f6d4ff71b77c6d2c93727e5f43b254",
+   "sha256": "0l4qwz2s63r26y5v02yrpncjdiyspw7pill0bjjlcawvxffykw9i"
   },
   "stable": {
    "version": [
@@ -79020,15 +80319,15 @@
   "repo": "purcell/package-lint",
   "unstable": {
    "version": [
-    20210111,
-    341
+    20210326,
+    241
    ],
    "deps": [
     "cl-lib",
     "let-alist"
    ],
-   "commit": "348b15a1da1d62dee378b33971e39758b96c6575",
-   "sha256": "0zj7qxb3b0yrrfwa8n9hhzrnsyh9msf38glmn8r087p27x0ifwzr"
+   "commit": "16e589114cc1f2514d95a58d53e1ae7c2ce941b4",
+   "sha256": "03bcnxd39r9k63zwb6gnqrhs0q629izakj2hmhk83hiy1131v7jl"
   },
   "stable": {
    "version": [
@@ -79057,8 +80356,8 @@
    "deps": [
     "package-lint"
    ],
-   "commit": "348b15a1da1d62dee378b33971e39758b96c6575",
-   "sha256": "0zj7qxb3b0yrrfwa8n9hhzrnsyh9msf38glmn8r087p27x0ifwzr"
+   "commit": "16e589114cc1f2514d95a58d53e1ae7c2ce941b4",
+   "sha256": "03bcnxd39r9k63zwb6gnqrhs0q629izakj2hmhk83hiy1131v7jl"
   },
   "stable": {
    "version": [
@@ -79110,14 +80409,14 @@
   "repo": "Silex/package-utils",
   "unstable": {
    "version": [
-    20180514,
-    1415
+    20210221,
+    822
    ],
    "deps": [
     "restart-emacs"
    ],
-   "commit": "5621b95c56b55499f0463fd8b29501da25d861bd",
-   "sha256": "1mhsf0l0253d9b7n3c68mw5kwnsk7wf217y7m2fiybh51bdgjfnd"
+   "commit": "6a26accfdf9c0f1cbceb09d970bf9c25a72f562a",
+   "sha256": "1gmr3ncr98fb7j3iwig9bbawkpj1f0vmq3nmapwqbaqv6gyy93h1"
   },
   "stable": {
    "version": [
@@ -79143,8 +80442,8 @@
     20201120,
     2047
    ],
-   "commit": "3b96dedb404f614479c1b321fac3e4bf11ba0782",
-   "sha256": "0fbv8ryxjz1ndfv4ximmr5m1rd9xkmi8dp0x14r8g5wiy9959asb"
+   "commit": "47437da7839394b079699eb4cfcc00627ab2df8e",
+   "sha256": "0hp80n3mxnkssq431h9b9xlz21dqkyzjsajylrnbfvqqwqh293qk"
   },
   "stable": {
    "version": [
@@ -79164,17 +80463,16 @@
   "repo": "codingteam/pacmacs.el",
   "unstable": {
    "version": [
-    20160131,
-    832
+    20210225,
+    1255
    ],
    "deps": [
     "cl-lib",
     "dash",
-    "dash-functional",
     "f"
    ],
-   "commit": "d813e9c62c2540fe619234824fc60e128c786442",
-   "sha256": "0zx72qbqy2n1r6mjylw67zb6nnchp2b49vsdyl0k5bdaq2xyqv6i"
+   "commit": "5e0bcba1eeb10a4218087ff9cd6217d662fb775b",
+   "sha256": "15w7wr3bdqmwg459nl6vyf4ymrhqxk9pvli5q55qyvy905n3281j"
   }
  },
  {
@@ -79227,8 +80525,8 @@
     20210104,
     2224
    ],
-   "commit": "69caea070379f3324c530e96e06625c3cd097cb9",
-   "sha256": "0plfyzmh93x1r3zgfjyx23cc7vi1pcniipclzlms1iwfkl7zsqvp"
+   "commit": "3b8549cd414d4d7ee0168ab9917124133566d3db",
+   "sha256": "1jdr9rl90vs78pjdnxcl2igc1ll97ryxxgbyqxzkhbivixi4v87n"
   },
   "stable": {
    "version": [
@@ -79273,6 +80571,24 @@
   }
  },
  {
+  "ename": "pair-tree",
+  "commit": "ca9422233229d8703641d87d9250ad3f38c11fd7",
+  "sha256": "0rv6yp2vzcvnjkrlihm2a2a62879rcqwnzw7ph535drvwfl0inws",
+  "fetcher": "github",
+  "repo": "zainab-ali/pair-tree.el",
+  "unstable": {
+   "version": [
+    20210214,
+    1651
+   ],
+   "deps": [
+    "dash"
+   ],
+   "commit": "972ba441c40edf9b2c212f64fc6670104749662b",
+   "sha256": "1v4d17hdh3dvb2a4n10gxlr20zal8c7v456wiknkfrpv06d8awap"
+  }
+ },
+ {
   "ename": "palimpsest",
   "commit": "14f6d011a0314637a2f4c1b00efa4912e67b7fa4",
   "sha256": "18kklfdlcg982pdrslh0xqa42h28f91bdm7q2zn890d6dcivp6bk",
@@ -79413,28 +80729,27 @@
   "repo": "joostkremers/pandoc-mode",
   "unstable": {
    "version": [
-    20201120,
-    2241
+    20210317,
+    2340
    ],
    "deps": [
     "dash",
     "hydra"
    ],
-   "commit": "0630a112ae7d3eab1a4c47c7ef380915560a6bb2",
-   "sha256": "1k31pkvd9m798i6phcr0y3wd34fgq6ii41hx3lszmikvxb1yvm2y"
+   "commit": "2ad3cfa3045e0a3bcbdee02819c6fd356a8bc40c",
+   "sha256": "1m6c5y95asrw7fkn9sah6a38glr66vb35d3g6gc8lcvh2ikmgjn1"
   },
   "stable": {
    "version": [
     2,
-    30,
-    1
+    31
    ],
    "deps": [
     "dash",
     "hydra"
    ],
-   "commit": "0630a112ae7d3eab1a4c47c7ef380915560a6bb2",
-   "sha256": "1k31pkvd9m798i6phcr0y3wd34fgq6ii41hx3lszmikvxb1yvm2y"
+   "commit": "500e80666fb779457be8771c5613c177187ba0cc",
+   "sha256": "1c3gay9fkikg7h46djw1nf86fzckmv7w1zbz5fbar20klcr12pbm"
   }
  },
  {
@@ -79471,8 +80786,8 @@
     20200510,
     5
    ],
-   "commit": "e086c59a14701cd041641b51c952fa704ee963df",
-   "sha256": "0w1crw5lsk22jfw2w5qq6ab7zxdzp38akasvyvxakvpp1782xq9p"
+   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
+   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
   }
  },
  {
@@ -79653,20 +80968,20 @@
   "repo": "tarsius/paren-face",
   "unstable": {
    "version": [
-    20200103,
-    1238
+    20210127,
+    1749
    ],
-   "commit": "eb4a51b8ef455e0914108105e7c0008d675457cc",
-   "sha256": "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas"
+   "commit": "6790c7fdec490a69e7d460c0bea36ad343776f9b",
+   "sha256": "1zyrrrr8rmksr3rfsv96psk1z15wbbx1bvcfp3hf5ciyc2n79000"
   },
   "stable": {
    "version": [
     1,
     0,
-    6
+    7
    ],
-   "commit": "eb4a51b8ef455e0914108105e7c0008d675457cc",
-   "sha256": "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas"
+   "commit": "6790c7fdec490a69e7d460c0bea36ad343776f9b",
+   "sha256": "1zyrrrr8rmksr3rfsv96psk1z15wbbx1bvcfp3hf5ciyc2n79000"
   }
  },
  {
@@ -79693,38 +81008,6 @@
   }
  },
  {
-  "ename": "parinfer",
-  "commit": "470ab2b5cceef23692523b4668b15a0775a0a5ba",
-  "sha256": "05w4w7j6xyj19dm63073amd4n7fw4zm3qnn4x02fk2011iw8fq7i",
-  "fetcher": "github",
-  "repo": "DogLooksGood/parinfer-mode",
-  "unstable": {
-   "version": [
-    20201021,
-    254
-   ],
-   "deps": [
-    "cl-lib",
-    "dash"
-   ],
-   "commit": "91856b9c5817ead97aa034fe108c4a6e884802b2",
-   "sha256": "0l16x34af9y60n6502iihl9nz1w4kq8hx1dipi6xa16kr5gs8ba6"
-  },
-  "stable": {
-   "version": [
-    0,
-    4,
-    10
-   ],
-   "deps": [
-    "cl-lib",
-    "dash"
-   ],
-   "commit": "5b3b247d68eeaf7404598cbcbf2158e07f16e65d",
-   "sha256": "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"
-  }
- },
- {
   "ename": "parinfer-rust-mode",
   "commit": "b35f28995db0c21ecaadd5504a10aa2ee5ac2070",
   "sha256": "06003hh19k1087s8lvsbl04as2yph1zw9qr844s4rbyi838d4pc1",
@@ -79732,20 +81015,20 @@
   "repo": "justinbarclay/parinfer-rust-mode",
   "unstable": {
    "version": [
-    20201124,
-    616
+    20210325,
+    1714
    ],
-   "commit": "ca9e7b6f8c3c70daf6a933952955b6931a24af83",
-   "sha256": "17gf7ahvplgr7x3afpdm5zh8w8y45vzjcyb4jg8vn67grq3kij74"
+   "commit": "f130fa04ec75131686872f24a253d0a1d5522fa4",
+   "sha256": "1i85c00cjvj79i104xswg5xjz7wkvcgar04fgjc9zphrihnp409x"
   },
   "stable": {
    "version": [
     0,
     8,
-    2
+    3
    ],
-   "commit": "0953765ec361c1c0d6f36eb3c5dd706752af2482",
-   "sha256": "1d9885l1aifrdrg6c4m2kakhs3bbmfmsm02q96j0k0mzzwr7rs41"
+   "commit": "c825606e6aca4a2ed18c0af321df5f36a3c8c774",
+   "sha256": "1fix225ikfabsy9r4kc3znx6k4k5wbw5n45mkir3fdyis0pcwg6x"
   }
  },
  {
@@ -79789,32 +81072,32 @@
  },
  {
   "ename": "parse-it",
-  "commit": "3f163ca64c2533603410f320c7e9b9b1c2635458",
-  "sha256": "076b981jdhgv7kqdj6xnckp3x25wfymy0il9fffrpyfs7hrcdzgf",
+  "commit": "9e89bebbccf9ccf85841b00bf113925f8fb20775",
+  "sha256": "0l3h3sjr3xipj8lm7ph03jl326mcxscsbh0gx7gfrwfaynjb61kl",
   "fetcher": "github",
   "repo": "jcs-elpa/parse-it",
   "unstable": {
    "version": [
-    20201103,
-    1107
+    20210306,
+    821
    ],
    "deps": [
     "s"
    ],
-   "commit": "580713c0c578f6c91f6851ae2120e8a9b7871bb0",
-   "sha256": "0c61gyks581xx47a4lrdjx64d1x1py7qmzsxklvwlcx0gq6pzalm"
+   "commit": "f910af3b1d98b88a0f41794bbe7fd57411e9b909",
+   "sha256": "02miw5sf4bbwmz58ya98ijjhqx92vamyzw8c5v2k6id3pxaypng4"
   },
   "stable": {
    "version": [
     0,
     2,
-    0
+    1
    ],
    "deps": [
     "s"
    ],
-   "commit": "580713c0c578f6c91f6851ae2120e8a9b7871bb0",
-   "sha256": "0c61gyks581xx47a4lrdjx64d1x1py7qmzsxklvwlcx0gq6pzalm"
+   "commit": "f910af3b1d98b88a0f41794bbe7fd57411e9b909",
+   "sha256": "02miw5sf4bbwmz58ya98ijjhqx92vamyzw8c5v2k6id3pxaypng4"
   }
  },
  {
@@ -79956,16 +81239,16 @@
   "repo": "NicolasPetton/pass",
   "unstable": {
    "version": [
-    20201230,
-    1556
+    20210203,
+    810
    ],
    "deps": [
     "f",
     "password-store",
     "password-store-otp"
    ],
-   "commit": "a095d24cf06a7b0fbc3add480c101304a91cf788",
-   "sha256": "1nv6xs90zkv3qd0jxjwxlx132cz0ias0i7n2kvih6fp5gfkrzdci"
+   "commit": "5651da53137db9adcb125b4897c2fe27eeb4368d",
+   "sha256": "0xrdi06m55mzm14fw0ly0xbfyh2g43k3np2fm771nwzdw5kmin4v"
   },
   "stable": {
    "version": [
@@ -80013,17 +81296,17 @@
  },
  {
   "ename": "password-generator",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1ziiz4x4slfadlm7fjpmwvq4a9fi3ird74b6v5na499ylqnzrl59",
+  "commit": "fd591276073bf87fd9debdffc396f650790d566a",
+  "sha256": "0kb424axcik38a9zn2a6mabs3ya6bs8zh06d26jzyaa4d2q75246",
   "fetcher": "github",
-  "repo": "zargener/emacs-password-genarator",
+  "repo": "vandrlexay/emacs-password-genarator",
   "unstable": {
    "version": [
-    20201123,
-    1610
+    20210224,
+    1705
    ],
-   "commit": "d754391d11d1d384833eb82fd34e02d2baec36cb",
-   "sha256": "1658mzzdk012rwn049dxzrqp1k4vfbvrsksnh06zdn8m6n7xqi28"
+   "commit": "778f98d507d337f916bb3251fae6e351ebe50aa2",
+   "sha256": "07k2jsjfl3cyk0piikvn03280hbmggvkwkfin8s1wz54495504g5"
   }
  },
  {
@@ -80034,11 +81317,11 @@
   "repo": "juergenhoetzel/password-mode",
   "unstable": {
    "version": [
-    20170412,
-    629
+    20210323,
+    1816
    ],
-   "commit": "ed764a4ec1011526457c71b7c37fa9a659a866ab",
-   "sha256": "102zydbkr2zrr7w0j11n7pivnsdmq3c6lykf3qc84jifp7j58pgr"
+   "commit": "114b721ebbf384b6af6fd46797e83896a9e14aca",
+   "sha256": "1zwc3wk770plfwlywqwiviqv9hiskf3fsl2nv9zp4gmvphzrqvql"
   }
  },
  {
@@ -80057,8 +81340,8 @@
     "s",
     "with-editor"
    ],
-   "commit": "f152064da9832d6d3d2b4e75f43f63bf2d50716f",
-   "sha256": "0qxzqiljiqxzi1jlgm0c5f1pjz1jnnhq74lm0x9q68cim1vch48n"
+   "commit": "918992c19231b33b3d4a3288a7288a620e608cb4",
+   "sha256": "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"
   },
   "stable": {
    "version": [
@@ -80631,11 +81914,11 @@
   "repo": "jeremy-compostella/pdfgrep",
   "unstable": {
    "version": [
-    20200306,
-    209
+    20210203,
+    1730
    ],
-   "commit": "1576fc98754d3bdaa40573a037a80f1973110756",
-   "sha256": "1c3p3vdhy6wibxwpc76bvvm0583zmjmxs9pa453z3msbq33kc7j8"
+   "commit": "a4ca0a1e6521de93f28bb6736a5344b4974d144c",
+   "sha256": "093sm3ywa338lhhz2ib3ylcgklsbxcsqck2qsaq26i2qxr0r7lq2"
   }
  },
  {
@@ -80682,8 +81965,8 @@
     20160321,
     2237
    ],
-   "commit": "1d410a4e48db07a942e54d3b83a85c7a7ec0aab3",
-   "sha256": "1b7csqypqkalkzq6vrbq5ry1gdk0qnhnk43rlj514mph0s1nywdd"
+   "commit": "29f6e7058f635b0084880a1f890a6c92501e8c29",
+   "sha256": "06lzb3mzrf2hqbdj4m8vfayf1xar9dgkwznzsqkbj6gjwxbz6xvd"
   }
  },
  {
@@ -80981,14 +82264,14 @@
   "repo": "nex3/perspective-el",
   "unstable": {
    "version": [
-    20210104,
-    2243
+    20210310,
+    25
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "2f2b59e693f08b8d9c81062fca25e6076b6e7f8d",
-   "sha256": "04r5h5zs5r6s22p5ynhpr860r2r552z9pyf4kbabfg1gz9jag7yp"
+   "commit": "cbdc3e5dc77ccb681f8719db0a85af8850b757d2",
+   "sha256": "0q5sxwf0dkm1glnwsgm8387vzfxjj14g48ih72dpvarxysrrv2ql"
   },
   "stable": {
    "version": [
@@ -81190,14 +82473,14 @@
   "repo": "zk-phi/phi-autopair",
   "unstable": {
    "version": [
-    20200914,
-    355
+    20210306,
+    424
    ],
    "deps": [
     "paredit"
    ],
-   "commit": "8bebd5d3018746812847b6c47ab7c79a36382e7c",
-   "sha256": "1mf5blmws9kc3h4d9iy7r38w6kvi5w2gvmlbrxlwmh95a3y1n3nz"
+   "commit": "6a67c37d31a3ff9261fc9f812547a0c86721fc90",
+   "sha256": "0m1n77sq7cr1j6chf13zf4x34qyjycbimfpwk0msq1zc6cqjcm7n"
   }
  },
  {
@@ -81208,14 +82491,14 @@
   "repo": "zk-phi/phi-grep",
   "unstable": {
    "version": [
-    20200816,
-    1027
+    20210306,
+    425
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d9dbf69dcf0e06944dcfb89375b09d0d2b0ef4ee",
-   "sha256": "1lgixvg5668kb1y8a2xxm1nlbppj5a8sswjrcxasqnxmrif6lkls"
+   "commit": "7e2804c7ab4e875c7511917692c4b192662aa1ae",
+   "sha256": "1znim5mfd8s4dzwsg8gp2im1i837pw990r9r7mcv5zkzyll7wiq3"
   }
  },
  {
@@ -81355,38 +82638,6 @@
   }
  },
  {
-  "ename": "php-auto-yasnippets",
-  "commit": "28b2d8802f98e339ff01ecf9733b71b6c631123e",
-  "sha256": "047i51ks2nn7ydrx2hjx9qvsh3lxnyxp8a6c3h3nb1acy84f5bd1",
-  "fetcher": "github",
-  "repo": "emacs-php/php-auto-yasnippets",
-  "unstable": {
-   "version": [
-    20170331,
-    114
-   ],
-   "deps": [
-    "php-mode",
-    "yasnippet"
-   ],
-   "commit": "03e1f0899c081813901ac15c2f7a675a37cca9f5",
-   "sha256": "0d7y6njsd1s2r5df2k8wvvwgxpwwyaqkhdd2b3p1php8rrbj3mg8"
-  },
-  "stable": {
-   "version": [
-    2,
-    3,
-    1
-   ],
-   "deps": [
-    "php-mode",
-    "yasnippet"
-   ],
-   "commit": "1950d83cbcc5c5d62cd3bc432e1595870fe8cabf",
-   "sha256": "0zs11811kx6x1zgc1icd8gw420saa7z6zshpzmrddnbznya4qql6"
-  }
- },
- {
   "ename": "php-boris",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "0kklwk8b98czsg567vgzzdfnv76yn1id3ah2q2qqdhaky1yzw7ak",
@@ -81472,20 +82723,20 @@
   "repo": "emacs-php/php-mode",
   "unstable": {
    "version": [
-    20210103,
-    1738
+    20210310,
+    1724
    ],
-   "commit": "8cdc727e6d4eef81655b90574784e9540f407cda",
-   "sha256": "1v09ldgdjayj66q8vn97n6hh0zqk3pxqg100ibbcyz6vfrsa5pdm"
+   "commit": "a2bca9be4c34a9dc38393602cb2708df24587838",
+   "sha256": "1rc67f3jzjhqykcn16s2ibviibxmr7b9y2c20hdwg49r41ax4f9v"
   },
   "stable": {
    "version": [
     1,
-    23,
+    24,
     0
    ],
-   "commit": "08c6e0f6719fafa60cf76f741d83524fd84163d6",
-   "sha256": "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"
+   "commit": "7e1b55354ce41043148ce2d3270b032c318f0f90",
+   "sha256": "0bs9q62bd7885c39v7x1qz3w1fhpmpdgm72xwsk2yygw0ii425nn"
   }
  },
  {
@@ -81588,8 +82839,8 @@
   "repo": "emacs-php/phpactor.el",
   "unstable": {
    "version": [
-    20200618,
-    1845
+    20210311,
+    1615
    ],
    "deps": [
     "async",
@@ -81597,8 +82848,8 @@
     "f",
     "php-runtime"
    ],
-   "commit": "62d2372ea55c0c5fb4e77076988472ebb5d85f24",
-   "sha256": "1sfrdap157zc7lk9vwsy91p813ip8dmazgfjwh7jwzyvcj7dsimc"
+   "commit": "80788a817b0257363c1eee11a57cc0f873f0eef1",
+   "sha256": "1w4zxp6j77xd9qcz9skpj8jbl8ink1fgdd5f1dhx0486g882mi2l"
   },
   "stable": {
    "version": [
@@ -81615,36 +82866,6 @@
   }
  },
  {
-  "ename": "phpcbf",
-  "commit": "77ef54e3fb2715a081786dc54f99ae74def5c77c",
-  "sha256": "1hf88ys4grffpqgavrbc72dn3m7crafgid2ygzx9c5j55syh8mfv",
-  "fetcher": "github",
-  "repo": "nishimaki10/emacs-phpcbf",
-  "unstable": {
-   "version": [
-    20181228,
-    423
-   ],
-   "deps": [
-    "s"
-   ],
-   "commit": "fb0bc6073a57126cf1a8404723aa0a715dd761aa",
-   "sha256": "0k2wl137nippcfx3g35kfprz2fiv8rbbi7dcpxciwnbqmn6ry7rf"
-  },
-  "stable": {
-   "version": [
-    0,
-    9,
-    2
-   ],
-   "deps": [
-    "s"
-   ],
-   "commit": "b556b548ceb061b002389d6165d2cc63d8bddb5d",
-   "sha256": "09rinyx0621d7613xmbyvrrlav6d4ia332wkgg0m9dn265g3h56z"
-  }
- },
- {
   "ename": "phpstan",
   "commit": "43808f57146a395b92ed498803fa948a33e5f3c2",
   "sha256": "1nx9d4mhxhvbgrxawkpkw03b75bg1xpli1x83g2bhs8ar8lypjik",
@@ -81843,11 +83064,11 @@
   "repo": "kljohann/pikchr-mode",
   "unstable": {
    "version": [
-    20201212,
-    2228
+    20210324,
+    2125
    ],
-   "commit": "dd4bb08f189c96039128dddceba26bfdabd1431b",
-   "sha256": "0w964qn9qag4pfwrs9pyv226ivmy1lw4s068hyi9f0jkm2fhd2za"
+   "commit": "5d424c5c97ac854cc44c369e654e4f906fcae3c8",
+   "sha256": "07qjz0mzl6cqgavv5sc9n1v7zq5q6f8is6nn126v0zk6rskp366q"
   }
  },
  {
@@ -82099,16 +83320,15 @@
   "repo": "pwalsh/pipenv.el",
   "unstable": {
    "version": [
-    20201206,
-    1408
+    20210127,
+    1444
    ],
    "deps": [
-    "f",
     "pyvenv",
     "s"
    ],
-   "commit": "f516a1a8677a6a1ce9683056e9f77b1e785e8431",
-   "sha256": "0ksjshvv8vnx2v91bfykajjnlcc5i0by0lrg0a34f8f3zjyaqcab"
+   "commit": "8f50c68d415307a2cbc65cc4df20df18e1776e9b",
+   "sha256": "0l81vbwp7gmcg1n7i8cwa01rpwc24db7gxqvmhln8piy1r2ymh6x"
   }
  },
  {
@@ -82210,11 +83430,11 @@
   "repo": "juergenhoetzel/pkgbuild-mode",
   "unstable": {
    "version": [
-    20210114,
-    1506
+    20210123,
+    1507
    ],
-   "commit": "e4f0067bdce3e071a7d9316a6e142e1c61215169",
-   "sha256": "1mvn4w3k1wf8yls0mjl667yzlir1qyvxamlzdx62yhqpr9y55sip"
+   "commit": "8a5e95c8514315cb40c47f1acdb68a4ace921497",
+   "sha256": "1p903a3jbw1jp5l6d6mb50dq5zd8951qxh2b97vy30p3nnl8i0lj"
   },
   "stable": {
    "version": [
@@ -82451,11 +83671,11 @@
   "repo": "thomasluquet/playerctl.el",
   "unstable": {
    "version": [
-    20180301,
-    1354
+    20210221,
+    1956
    ],
-   "commit": "3eee541423c2e5eb9f23a26fa9aa88c9c5a19ad1",
-   "sha256": "16qvn1mss5j8vpf1qpq4lwl4hwng64caw3c3shixsncfmgw25z6f"
+   "commit": "f480cd30bad76e4bc337e4be0cac6300e8154fce",
+   "sha256": "0f2f9dpi1yxckicybmdp7ns8x1hqhdygcvw8b7z0mhbwwxc7ml6m"
   }
  },
  {
@@ -82990,14 +84210,14 @@
   "repo": "lijunsong/pollen-mode",
   "unstable": {
    "version": [
-    20191223,
-    1920
+    20210120,
+    422
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d0a33591498013886c2c4676e204cd684954e82a",
-   "sha256": "0lg65hzdjwbc3dav79f3jm7251yyq8ghcbccvkb32vwz281xhjnh"
+   "commit": "09a9dc48c468dcd385982b9629f325e70d569faf",
+   "sha256": "15z6sdkg9vygczr1imk3c5v6cbpqgsvnkydzkcmxnbwnqlx1agpc"
   }
  },
  {
@@ -83008,16 +84228,16 @@
   "repo": "polymode/poly-R",
   "unstable": {
    "version": [
-    20200316,
-    1315
+    20210210,
+    1053
    ],
    "deps": [
     "poly-markdown",
     "poly-noweb",
     "polymode"
    ],
-   "commit": "51ffeb6ec45dd44eafa4d22ad2d6150cc4b248fc",
-   "sha256": "0a4wx73jkngw5nbq1fa4jfhba6bsmyn6vnsf887x3xhb5v3ykhsg"
+   "commit": "c42ff3a4d0da96ccb7f826dca5c6b2eb558a2ab5",
+   "sha256": "0sazc0vnks2jnrmgz9p2r821l4m9wrggr6mgcwh6v7lzwj76x3f7"
   },
   "stable": {
    "version": [
@@ -83316,8 +84536,8 @@
     20200606,
     1106
    ],
-   "commit": "3284ff10017d280ba82f27dc20fe5223b0df709c",
-   "sha256": "0756c0fi5msqdsks95bcs0ghhk90b340y4zrkijhaz4b2cnm07h4"
+   "commit": "b3871e946d278a256d95a3bd4615b1df234ad75a",
+   "sha256": "08xn2my8n5m9mqr7zd1956vybakys17kldb6dijax1651fdjy772"
   },
   "stable": {
    "version": [
@@ -83365,11 +84585,11 @@
   "repo": "baudtack/pomodoro.el",
   "unstable": {
    "version": [
-    20210111,
-    1934
+    20210225,
+    2018
    ],
-   "commit": "662b1f176d6faddd07be32ee6eb974ca02d5ec03",
-   "sha256": "02iji913mh03hdlzdl4m7lfzzqp3p7437cay5mn8ba4prpqqz76j"
+   "commit": "ed888b24d0b89a5dec6f5278b1064c530c827321",
+   "sha256": "0yv1339q5s31wxw8y34pb09b0rlvz9m3gzqb4dc1q8ncq8xb8wl5"
   }
  },
  {
@@ -83425,8 +84645,8 @@
   "repo": "ponylang/ponylang-mode",
   "unstable": {
    "version": [
-    20201113,
-    1633
+    20210118,
+    1325
    ],
    "deps": [
     "company-ctags",
@@ -83438,8 +84658,8 @@
     "yafolding",
     "yasnippet"
    ],
-   "commit": "ef3ce7122e2fd112bde0e49a529934be1fea0ad5",
-   "sha256": "0kh9p66lhv4fs778cy4dysnvlvwj7zaa1f9ivw2hnqjycqf2bz53"
+   "commit": "91ca19b2a93029a393f8873e273777b553d308e1",
+   "sha256": "07sn00k8krsb0bikbbypznvwrk13k4jdk6d66iai0a66s9dr84ys"
   },
   "stable": {
    "version": [
@@ -83509,6 +84729,21 @@
   }
  },
  {
+  "ename": "popper",
+  "commit": "fd5bfc5df356ea6c91f2fd120b8f912d093a0de6",
+  "sha256": "0iz784hzrhmxr7zv1jx13fk0k9h1c15rbgakry0nyjm4x366rmhj",
+  "fetcher": "github",
+  "repo": "karthink/popper",
+  "unstable": {
+   "version": [
+    20210326,
+    2042
+   ],
+   "commit": "096078acea59df6109906641e9dd44893ed4f6a2",
+   "sha256": "1cvb40ad3zazfqjzwqgz4bnn9a2pl8yi52b0qfd56ccp32b24n91"
+  }
+ },
+ {
   "ename": "popup",
   "commit": "083fb071191bccd6feb3fb84569373a597440fb1",
   "sha256": "151g00h9rkid76qf6c53n8bncsfaikmhj8fqcb3r3a6mbngcd5k2",
@@ -83516,14 +84751,11 @@
   "repo": "auto-complete/popup-el",
   "unstable": {
    "version": [
-    20210108,
-    1821
-   ],
-   "deps": [
-    "cl-lib"
+    20210317,
+    138
    ],
-   "commit": "bd5a0df7e5bc68af46eef37afe9e80764a1d4fd8",
-   "sha256": "1y9wv5c9x1rsfdhh3r7mah7yyx2cs7asjzhgsn1pbq7zdjpv5p0p"
+   "commit": "866a091b83369873b4d1c5d62a590fbb0a150bd0",
+   "sha256": "059x15zlc6c17yg5ahdca3bryr10nh9xbb61dv0gdc2wg2c0pzzi"
   },
   "stable": {
    "version": [
@@ -83661,11 +84893,11 @@
   "repo": "emacsorphanage/popwin",
   "unstable": {
    "version": [
-    20200908,
-    816
+    20210215,
+    1849
    ],
-   "commit": "215d6cb509b11c63394a20666565cd9e9b2c2eab",
-   "sha256": "1x1iimzbwb5izbia6aj6xv49jybzln2qxm5ybcrcq7xync5swiv1"
+   "commit": "1184368d3610bd0d0ca4a3db4068048c562c2b50",
+   "sha256": "0inm6wbfkw6b9bwikd77d0zmk6ma9fzfs11acblp5imq202v76ra"
   },
   "stable": {
    "version": [
@@ -83762,20 +84994,20 @@
   "repo": "tumashu/posframe",
   "unstable": {
    "version": [
-    20210113,
-    314
+    20210311,
+    937
    ],
-   "commit": "efd7ea490defc53a5b78e7469a3a35d225b766cc",
-   "sha256": "1in1w9h1hal1qbcqxlk3mqn3q5qpcpni8a2c05dxqaqavbvz2y4j"
+   "commit": "fff21ccb706b576f4074883f9fa87d2bcc534096",
+   "sha256": "1r9i3jsdvzvbr8kggfradvk65i1d0wq96shs4dhfsr3pw7phaxv3"
   },
   "stable": {
    "version": [
     0,
     8,
-    4
+    5
    ],
-   "commit": "efd7ea490defc53a5b78e7469a3a35d225b766cc",
-   "sha256": "1in1w9h1hal1qbcqxlk3mqn3q5qpcpni8a2c05dxqaqavbvz2y4j"
+   "commit": "3454a4cb9d218c38f9c5b88798dfb2f7f85ad936",
+   "sha256": "039a84gwb0phjm7jcklmji1pcpbxmp4s40djhac8sbzmwdv39zi4"
   }
  },
  {
@@ -83857,14 +85089,14 @@
   "repo": "milkypostman/powerline",
   "unstable": {
    "version": [
-    20201129,
-    2306
+    20210317,
+    110
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "b293abf83c0a2b2988af19dd0ef0426c3b1d1501",
-   "sha256": "01nqff1pg9nxv49g2mmapnrjl8978wwyr6afkr3rm7zlnjz1cjas"
+   "commit": "cfff1cfe63793ea1a8bcfcae50c296558384cf08",
+   "sha256": "12s3mp2dyslq1ilah64gpz7a2j0ca9yls7wvj9kcmjca1931s8s3"
   },
   "stable": {
    "version": [
@@ -84045,19 +85277,19 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20210101,
-    2227
+    20210227,
+    600
    ],
-   "commit": "42adc802d3ba6c747bed7ea1f6e3ffbbdfc7192d",
-   "sha256": "0v12707jwd2ynk8gp3shgarl6yp3ynal7d4jzds6l2lknr6wi50w"
+   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
+   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
   },
   "stable": {
    "version": [
     5,
-    0
+    1
    ],
-   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
-   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+   "commit": "2c0e9fc061ab723ec532428f312974ca7d8def12",
+   "sha256": "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"
   }
  },
  {
@@ -84113,28 +85345,28 @@
   "repo": "jscheid/prettier.el",
   "unstable": {
    "version": [
-    20201222,
-    953
+    20210313,
+    1047
    ],
    "deps": [
     "iter2",
     "nvm"
    ],
-   "commit": "5b584f21b8dd9a53ceb7745c2d91c513358892e7",
-   "sha256": "1m5298i60s1rdy2r8wnyialkfbafd99wp9q0bzsbr7grq3cdp2ic"
+   "commit": "5232b886bb6a4fb3848d63db1bcfcb30487a180f",
+   "sha256": "0sbka039sccqip36y98s1b5z6rd5w5q0jzl5kbdq4wmzi7j823ri"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
    "deps": [
     "iter2",
     "nvm"
    ],
-   "commit": "d5ccedc7a8ed84aff292bce688c73648dc8f567f",
-   "sha256": "1rk2hwpxvnc1hadvdg86jnzz4nh5kmkwp18iwvsbkgmx47cnyni3"
+   "commit": "8b38172bb6644b71b718c0732e5b9f1cd32e587a",
+   "sha256": "0zkicnfj1y2zpwbwm4ccrpvzr5z6rpkk82mdzaszkx0sksd3hzxm"
   }
  },
  {
@@ -84175,17 +85407,16 @@
   "repo": "jerrypnz/major-mode-hydra.el",
   "unstable": {
    "version": [
-    20190930,
-    2106
+    20210221,
+    834
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "hydra",
     "s"
    ],
-   "commit": "20362323f66883c1336ffe70be24f91509addf54",
-   "sha256": "16krmj2lnk7j5ygdjw4hl020qqxg11bnc8sz15yr4fpy1p7hq5cz"
+   "commit": "84c1929a5153be169ca5c36737439d51dffde505",
+   "sha256": "1yw9xdyqbf285ljsspg8ajjx1bp1g27xpg85p84fsh88nr015rh5"
   },
   "stable": {
    "version": [
@@ -84417,16 +85648,16 @@
   "repo": "rejeep/prodigy.el",
   "unstable": {
    "version": [
-    20191212,
-    1242
+    20210116,
+    816
    ],
    "deps": [
     "dash",
     "f",
     "s"
    ],
-   "commit": "6ae71f27b09b172f03fb55b9eeef001206baacd3",
-   "sha256": "16w1xidfbqlbdxq45ff6am9j1hzlxz3pwqvimwk4432prrvnf8zg"
+   "commit": "168f5ace1671876d8c3bd350c0853bd0196bddda",
+   "sha256": "15rshpq0h5i252xamxh70acdz9jddn5xwgswzk5h2b24kxsbfnli"
   },
   "stable": {
    "version": [
@@ -84679,14 +85910,14 @@
   "repo": "bbatsov/projectile",
   "unstable": {
    "version": [
-    20210104,
-    1216
+    20210309,
+    722
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "c31bd41c0b9d6fba8837ebfd3a31dec0b3cd73c6",
-   "sha256": "10pibv07mb3mwmz6r2kmd7xdz5rly7hfbxvhmxd536zbr2s9rr1j"
+   "commit": "1528ed4f082e7aaca19f22394eb4bed879645b7c",
+   "sha256": "04x9gjjw1c4fiy631fkvwdp677s1p0yj1s4d5bw68832i1i5fq8y"
   },
   "stable": {
    "version": [
@@ -84721,26 +85952,6 @@
   }
  },
  {
-  "ename": "projectile-direnv",
-  "commit": "602485c251bc573e855dfd33e4e94052afbab93f",
-  "sha256": "1s5dapdcblcbcqyv8df26v8wxl8bhrs9ybl5h5qbzz49gigd8nqh",
-  "fetcher": "github",
-  "repo": "christianromney/projectile-direnv",
-  "unstable": {
-   "version": [
-    20160306,
-    138
-   ],
-   "deps": [
-    "dash",
-    "projectile",
-    "s"
-   ],
-   "commit": "d5d29e5228f840b7a25358a2fd50353ef2dc9b16",
-   "sha256": "1bq47a6lckgin93cqy5wj277rlrw2cgfywgmbdpxvmbhygpg5hqr"
-  }
- },
- {
   "ename": "projectile-git-autofetch",
   "commit": "7fdfdeb69fd78fc1bb2c62392f860a8c434f1762",
   "sha256": "0m0raddsw5yvjrw2v6bdaswffmva8y9hxksdgf9axpvrd3rzlk9n",
@@ -84779,8 +85990,8 @@
   "repo": "asok/projectile-rails",
   "unstable": {
    "version": [
-    20201004,
-    1011
+    20210325,
+    2120
    ],
    "deps": [
     "f",
@@ -84789,13 +86000,13 @@
     "projectile",
     "rake"
    ],
-   "commit": "7a256b1b1444fe0001f97095d99252e946dd9777",
-   "sha256": "1d8wcjrhw0k4ws0bdl1q37pm0cz1smqink1d8hi8fs505brbpfdp"
+   "commit": "f1fe6e8eff485dc560e6ffe7f0b9c46a61509a58",
+   "sha256": "1b9wsn6mm1ajh81f6bmp3ajxch3j05bzslzxjakw93gjg69w74y1"
   },
   "stable": {
    "version": [
     0,
-    20,
+    21,
     0
    ],
    "deps": [
@@ -84805,8 +86016,8 @@
     "projectile",
     "rake"
    ],
-   "commit": "228f6316f2da229bc82fbbcf52323da951a17871",
-   "sha256": "1l9l0hza6p1l750i7lvys6gnrdy2j0dmlg6nbb6zr2cq6jbf1lkd"
+   "commit": "8d6b3734958f5dc7a620dc1b44754986d3726f3d",
+   "sha256": "03cj0cpmqyxcvqscnjcgcfz5k1ga6knr5jcb5prnv9hfjfqgk3pb"
   }
  },
  {
@@ -85030,11 +86241,11 @@
   "repo": "chuntaro/emacs-promise",
   "unstable": {
    "version": [
-    20200727,
-    900
+    20210307,
+    727
    ],
-   "commit": "d7b59805e7a8da1f5edea9313b6e2d0f1115fec0",
-   "sha256": "08f30fwwh86mnymbjxr9gswkgvsfdxa1mqajsmsbkk5nvmz1jx0n"
+   "commit": "cec51feb5f957e8febe6325335cf57dc2db6be30",
+   "sha256": "1kxsdgg5byw9zddf8jkc3h87mb4k5pnjdpskaagkahc0xg3w18d7"
   },
   "stable": {
    "version": [
@@ -85110,11 +86321,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20210110,
-    1959
+    20210321,
+    2132
    ],
-   "commit": "0d731606bee81b2d73895a23b69e84796ea7e4e7",
-   "sha256": "1j0fhd5cmhx6h3hnk2xb30hn6sxfp1js3zgldqpvk4qrws5vs25h"
+   "commit": "f0f0476d07401aba2cf428a71f7ee960cd1b3154",
+   "sha256": "1h6bwk1l3fm34xx8nbwh2s3g8ab5zbnx1givgaf64hf3z7r44xic"
   },
   "stable": {
    "version": [
@@ -85217,8 +86428,8 @@
     20200619,
     1742
    ],
-   "commit": "48234f5f012582843bb476ee3afef36cda94cb66",
-   "sha256": "1rn10w72a98k2r98lv3vaq6k8vwasdkc6c1r8lix441hd1jl60gj"
+   "commit": "aedb8d726c8d2a371d999354d44ca7e1bdbb1e73",
+   "sha256": "1qw9mmkxrv78062zw8bvrhp4nc4mhz8j76j534flvdy5w5cwv38q"
   },
   "stable": {
    "version": [
@@ -85314,20 +86525,19 @@
   "repo": "purescript-emacs/psc-ide-emacs",
   "unstable": {
    "version": [
-    20200702,
-    1540
+    20210219,
+    2247
    ],
    "deps": [
     "company",
     "dash",
-    "dash-functional",
     "flycheck",
     "let-alist",
     "s",
     "seq"
    ],
-   "commit": "663f4e2cf9cbafdd4b9a60c34346596e2a40c87c",
-   "sha256": "06zgi5inlg244qhabsp4a24kda83i6rdpxf78qb7ygpxwdj4hf44"
+   "commit": "ce97d719458ea099b40c02f05b6609601c727e66",
+   "sha256": "0xfw93pdf744h2yswc53qwyawfzkc31rv8dmha3irq7k1nklhq6y"
   }
  },
  {
@@ -85373,15 +86583,15 @@
   "repo": "thierryvolpiatto/psession",
   "unstable": {
    "version": [
-    20210102,
-    1856
+    20210203,
+    828
    ],
    "deps": [
     "async",
     "cl-lib"
    ],
-   "commit": "a3fbcbb94a41450c9a5fdbea3b4ac2134c2aa082",
-   "sha256": "1w0ifzmd35c9rrc1vwas63hz7f1l8w0dlzwikmiiza6jy51qn9dd"
+   "commit": "ed53362af4dfc813505c30ca40227072df16fdfc",
+   "sha256": "0crq5ynhqi6lbq471nskcnjplyj6i80rxl3z00iyisc9184r7wwb"
   },
   "stable": {
    "version": [
@@ -85461,14 +86671,14 @@
   "repo": "nbfalcon/ptemplate",
   "unstable": {
    "version": [
-    20201213,
-    1355
+    20210324,
+    1446
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "7caca3ed9f2c1bce77943d8ef3db6721e2b027e5",
-   "sha256": "0p23rlhv7xqwhzd0a2ybvn799xpr2n7jdinx5r07sdxmsjrmgzv9"
+   "commit": "b81cc7be8865745c3a60177a244d2a69729ab21b",
+   "sha256": "1j6lgb7knnnydyd1jryai8vlr7i5jc2d7l693yyhs79jdypzss4c"
   }
  },
  {
@@ -85479,14 +86689,14 @@
   "repo": "nbfalcon/ptemplate-templates",
   "unstable": {
    "version": [
-    20210109,
-    2155
+    20210324,
+    1443
    ],
    "deps": [
     "ptemplate"
    ],
-   "commit": "26f1e4d40ac0e89e82c3210591064770f86490bf",
-   "sha256": "1yjigz22laz0f5m10kcslhg184lsqsfr72samk59l13jpnr676qg"
+   "commit": "3788387973dde3101f9a3f2064572be033c59ad6",
+   "sha256": "17jc7gjawbj7b5v2i2jfxwnjgi023xrr28dyigzv6yw72fzqcnlh"
   }
  },
  {
@@ -85646,14 +86856,14 @@
   "repo": "voxpupuli/puppet-mode",
   "unstable": {
    "version": [
-    20200505,
-    344
+    20210305,
+    645
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "0e2e32a3b1644edd8010bd3d44e83def683348b3",
-   "sha256": "082r71wn5klihv8npc8qsvsyw4jyib5mqpnqr029kv7cvlcyfghk"
+   "commit": "ab25cf379236f4e1bd4bc9c1d77a93c95800e9bf",
+   "sha256": "0djrq3wl7crpjd2p1zzzz1spqfdrfzf7991g5fi8zwbf3pi79gpd"
   },
   "stable": {
    "version": [
@@ -85678,8 +86888,8 @@
     20210109,
     244
    ],
-   "commit": "8410baff69ba934b64d78340c7fd20aa1e67dbfb",
-   "sha256": "1gc5rg5rggljmcfz93kz03fy21455nvp7vz79pknqyf8k67aah4h"
+   "commit": "0acd1af446424ba855153161fe07a20f67dc0a89",
+   "sha256": "0rxdsmx8826az4blhnnvqrx7bjky9hwph6gkyrh33sck26xhh3g5"
   }
  },
  {
@@ -86074,31 +87284,27 @@
   "repo": "tumashu/pyim",
   "unstable": {
    "version": [
-    20210109,
-    1118
+    20210319,
+    1102
    ],
    "deps": [
     "async",
-    "popup",
-    "pyim-basedict",
     "xr"
    ],
-   "commit": "09a3b590cd83bf94b92ea772765db581e3aeb2f1",
-   "sha256": "0v5b7p8icn9gvdqmbh7xy79xnqi80qhskg00ag8zabmg624mpn2x"
+   "commit": "f48c3edee78ba5f020bcb42830db99a14761f176",
+   "sha256": "1ld3bqvfrda6fa4dv3g0wilznrdrsv544sr370sn3a9xlmy4fwp9"
   },
   "stable": {
    "version": [
-    2,
-    0
+    3,
+    2
    ],
    "deps": [
     "async",
-    "popup",
-    "pyim-basedict",
     "xr"
    ],
-   "commit": "e9b46009c0e80f45ad95c64237bf69cb28dc12e7",
-   "sha256": "06ahzyi2h353xj17mzsm9fxmkc6cyzd1mjzmvqfw8cyv538nijc0"
+   "commit": "0c8cd00d2da981e3833bface7d0c476cbb3e93d2",
+   "sha256": "102ns8vjmpb56afc3vyd62zfvvrnjdclm1fsn4jzj45b2in5wmxx"
   }
  },
  {
@@ -86109,11 +87315,11 @@
   "repo": "tumashu/pyim-basedict",
   "unstable": {
    "version": [
-    20190719,
-    1252
+    20210311,
+    159
    ],
-   "commit": "d499104189a9462cb80f8efd9713e4064dc7093d",
-   "sha256": "0k1afdknyham46z6fv001rnlsxzl50183fz9skw3y0wxxv2v04r4"
+   "commit": "7495c974ada99f9fed96d8e85d8b97dabce9532c",
+   "sha256": "02asrh0adgjc5nn1ps7dq5zr38hkscnzc04sdpyjzvnmfcqsw7qb"
   },
   "stable": {
    "version": [
@@ -86230,8 +87436,8 @@
     20200503,
     1624
    ],
-   "commit": "168bee7f23d9956c12b419b18aa9f5974151e3d7",
-   "sha256": "00y3klba3m1j43mfggh7pvy93khk1ga1lyb98r5mlfffrymvr209"
+   "commit": "5d5f65727829240ffcb84b7be8c5d1e4dcefa0ed",
+   "sha256": "1j4a7fwbsyjsz0lh7vrw2kyw8khqbaskzqnx03a91br8q3dv0xba"
   }
  },
  {
@@ -86472,11 +87678,11 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20201230,
-    2132
+    20210301,
+    812
    ],
-   "commit": "41b123b4d4906cce7591900a952bb75a38c5296c",
-   "sha256": "1dl6vpwqxrdy26gh8kw5xkyj1ka88plm60c6ka2g6ji2s851b6ki"
+   "commit": "fe7656a7c701eb988c2ec9192f1ce298818b5a92",
+   "sha256": "1ds4avwadwv20r8ihallyhg79r8cshgxnb2dv7kj0dgn9401djqj"
   },
   "stable": {
    "version": [
@@ -86496,18 +87702,17 @@
   "repo": "wbolster/emacs-python-pytest",
   "unstable": {
    "version": [
-    20210111,
-    1046
+    20210219,
+    1947
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "projectile",
     "s",
     "transient"
    ],
-   "commit": "3fadf1f8bc363d57c54eedd1bf98e6d9db9f0a62",
-   "sha256": "0ij72rjf3qnsbg3zripxyx3lwzliplm24pfrg867dr6lxczkxwv2"
+   "commit": "31ae5e0e6813de8d889103f7b8dde252b04b1ae4",
+   "sha256": "1kf62adlm5nf7r3qar8h1cx11xxrz95bfqii62i9xqdi3i8z7b2l"
   },
   "stable": {
    "version": [
@@ -86596,30 +87801,28 @@
   "repo": "pythonic-emacs/pythonic",
   "unstable": {
    "version": [
-    20200806,
-    434
+    20210122,
+    1247
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "51233ec7ec9fbafd13e2b0479c7b2ee0930ccca5",
-   "sha256": "1v4n6wx0qff2ndlxy11acm21jq5yflk28axs6jc6yh7mdj44js9x"
+   "commit": "fe75bc17baae314bf8f5e0b12aad3fccfc6c5397",
+   "sha256": "1g5mfn37d01259s2xii2d41027xpif4czxipq4sa7d6sfyq50h7h"
   },
   "stable": {
    "version": [
     0,
-    1,
-    1
+    2,
+    0
    ],
    "deps": [
-    "cl-lib",
-    "dash",
     "f",
     "s"
    ],
-   "commit": "c59a158942634d3c07e506b2376d96e8d5d1466f",
-   "sha256": "0219s900kdpi3cxllvmwm8hb2lwqzikplq578f7pyxhzljjh2lma"
+   "commit": "e0e5cc882f2f1316268ec461a34d4be8abc313b7",
+   "sha256": "0hbvy8wdi5dgxn86j8z54y2fhcvm605xxm6xv054nl6fw2hh2h5h"
   }
  },
  {
@@ -86653,11 +87856,11 @@
   "repo": "psaris/q-mode",
   "unstable": {
    "version": [
-    20201231,
-    140
+    20210307,
+    2102
    ],
-   "commit": "e4499e7fcdfafd8d1825eb705c34a7748ca5ee64",
-   "sha256": "1bb9w75rxvsx024y0yx41rrskkmhpyfslw3xi414d2w5wmh82zbm"
+   "commit": "a30a84afae9bb72bc601b213ae68821479b0bb03",
+   "sha256": "1q85vxvv76vmb9zhc91p2aqh333h1p48737spriv5sw9wvis0gdm"
   }
  },
  {
@@ -86791,11 +87994,11 @@
   "repo": "quelpa/quelpa",
   "unstable": {
    "version": [
-    20210101,
-    937
+    20210317,
+    1221
    ],
-   "commit": "42835119977a6512274d8337e866479af4f26dec",
-   "sha256": "1qqzkk3ym4p3q8b33szmww4ixp1sjmirihnvkgmvfpv0rrc15icc"
+   "commit": "ec61039dfd50967ca545cb955bf1dd349682dcf3",
+   "sha256": "0hlcckp9vc5rpxp7w30l25ncz7wxywx5jkr12836zcz2mzc8jbhp"
   },
   "stable": {
    "version": [
@@ -86807,6 +88010,38 @@
   }
  },
  {
+  "ename": "quelpa-leaf",
+  "commit": "2c6b25a8bde336bef7d0bd0ef0261b2b2c08abb1",
+  "sha256": "1gn0g4w6qas62fq1dgxa5vplpq4qry6fz98xva1rl44yv1miigjp",
+  "fetcher": "github",
+  "repo": "quelpa/quelpa-leaf",
+  "unstable": {
+   "version": [
+    20210124,
+    348
+   ],
+   "deps": [
+    "leaf",
+    "quelpa"
+   ],
+   "commit": "eacc544b93f6fdc3be69a6ffbf960380a63fc715",
+   "sha256": "0ka2qk1y7byrq4rbmyhr06kfgc76afpmpdcxk3nf4g3krgi778dw"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "deps": [
+    "leaf",
+    "quelpa"
+   ],
+   "commit": "d367e3cd54d9ac949569f4cb7c0ff092a76391ab",
+   "sha256": "048216i1kn65d0ckzy1j08lg1lq2169jg7a4mchvcw3z7rmhx8f5"
+  }
+ },
+ {
   "ename": "quelpa-use-package",
   "commit": "c599f1254808a9d9bab87c35769052d5df2a01bf",
   "sha256": "0p09w419kldgl913hgqfzyv2pck27vqq2i1xsx7g29biwgnp9hl9",
@@ -86925,11 +88160,11 @@
   "repo": "emacsorphanage/quickrun",
   "unstable": {
    "version": [
-    20201130,
-    952
+    20210327,
+    141
    ],
-   "commit": "80087806741a4d7fd5ce0f74c8e27f4779a737d9",
-   "sha256": "19i07v4m3rss9ici3j5iayn717kbr8pmxss5iinzgdf4bi1yx293"
+   "commit": "57db985c6d293747dc8c40c4e08b465e148613a8",
+   "sha256": "02fzzfq5z4qabas75ihfbvz9pkz9ya2rblrzck8wk0fswzdq32nw"
   },
   "stable": {
    "version": [
@@ -87051,8 +88286,8 @@
   "repo": "racer-rust/emacs-racer",
   "unstable": {
    "version": [
-    20191001,
-    2344
+    20210307,
+    243
    ],
    "deps": [
     "dash",
@@ -87061,8 +88296,8 @@
     "rust-mode",
     "s"
    ],
-   "commit": "a0bdf778f01e8c4b8a92591447257422ac0b455b",
-   "sha256": "1dzp2l6lcdrcss5xp32yvil4c1din09awnxg0f71fls6kh2g2fcq"
+   "commit": "1e63e98626737ea9b662d4a9b1ffd6842b1c648c",
+   "sha256": "12a429lajk09qp1jxgig54p8z6wndfgr4jwdmgkc9s2df9sw02d3"
   },
   "stable": {
    "version": [
@@ -87087,15 +88322,15 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20210110,
-    1607
+    20210326,
+    1308
    ],
    "deps": [
     "faceup",
     "pos-tip"
    ],
-   "commit": "871aff8dc5a4bbc6f1d760fdbceb1f71fcf70b1f",
-   "sha256": "1z8lxaj24ykpa27y6v5zjwmdnaxhd7m8my5q7yxr4inlzyhhgckp"
+   "commit": "5115c4786075b39525008755a5fb843c397ca743",
+   "sha256": "0am68bv4wg1lw20k9y83529zkg5d7ql8q9ibgpw1qlx2ll4zxgla"
   }
  },
  {
@@ -87208,14 +88443,14 @@
   "repo": "stardiviner/emacs-rainbow-fart",
   "unstable": {
    "version": [
-    20201228,
-    6
+    20210202,
+    846
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "63b6a77a38235e7917d200886922156506853c42",
-   "sha256": "1pfpinplhkn5d91rlbgh359w4d7hp399vpximipj69bnx3nizic6"
+   "commit": "61acc77535720f7ed3b8f680fa9d9a1871832f11",
+   "sha256": "063a76lvyx83h7smplghcg5zxkncx017kjc25y74diwsda16sn0z"
   }
  },
  {
@@ -87365,11 +88600,11 @@
   "repo": "ralesi/ranger.el",
   "unstable": {
    "version": [
-    20200607,
-    2002
+    20210125,
+    330
    ],
-   "commit": "caf75f0060e503af078c7e5bb50d9aaa508e6f3e",
-   "sha256": "0xfg38ginrd0sdn194gpapi67q6i81csddgsf0rqmwihazpgs060"
+   "commit": "2498519cb21dcd5791d240607a72a204d1761668",
+   "sha256": "1wzshhg6dchny9drm8lf8sw4s24icgyb4my58xvhm55dp4zl5p3b"
   },
   "stable": {
    "version": [
@@ -88228,8 +89463,8 @@
     20201202,
     126
    ],
-   "commit": "d0e61f19a29108d676849e0925f00d002a26d32d",
-   "sha256": "1r3fmc5c2aqfqpfzdxkj6qi86j8vwmrj1gk3xz263pl3q96pzcya"
+   "commit": "f831f61797e03a0a1df8d99637a8738ba84d7cdd",
+   "sha256": "0lfpqzbrxs261cpb1hpmszcck13zkmqs67qf736cg2zx9ypfhx1g"
   }
  },
  {
@@ -88319,8 +89554,8 @@
     20201219,
     1739
    ],
-   "commit": "54d9914b270975e92fec56bcb3911c7335aeed7d",
-   "sha256": "1v2maw9jpvvfv6a6qkh3nasshf3pjzbqpyxsarhk2054d982qy5c"
+   "commit": "348030d5d65524b4f6a2dfad1d53f2ca92dbd49c",
+   "sha256": "1h96qy2741vsnrsnq5klxf2swm2kib7lfr3ni1rwsygib10hkqb5"
   }
  },
  {
@@ -88339,6 +89574,27 @@
   }
  },
  {
+  "ename": "reddigg",
+  "commit": "ec2ec4f094e1faee764ad73a5f9addfbd47117df",
+  "sha256": "04gzhbflh8q5bnyfsw769dlv9s4y2kkqnix3p9pzqz6inmbabg3w",
+  "fetcher": "github",
+  "repo": "thanhvg/emacs-reddigg",
+  "unstable": {
+   "version": [
+    20210301,
+    2307
+   ],
+   "deps": [
+    "ht",
+    "org",
+    "promise",
+    "request"
+   ],
+   "commit": "196200eeccc4e821c5200c2e04429aeaafe4d536",
+   "sha256": "06q6vb0gxq323zhrq3im7xadgxgb9b8h0bxqak8xfmcnny0mcjlr"
+  }
+ },
+ {
   "ename": "redis",
   "commit": "10fbb970956ee19d812c17900f3c01c5fee0c3f2",
   "sha256": "1awnilb8bk0izp6yw0187ybh9slf1hc51014xvvmj90darxby79a",
@@ -88514,8 +89770,8 @@
     20200814,
     435
    ],
-   "commit": "5aa8c1867950b9b2ba6e583271f9c0d715853c5a",
-   "sha256": "1aypb17k408i4lg9v3fnb5q2n8m3iry4ca4c7axjbvax09dawznk"
+   "commit": "576d339aa80f40c6053592988001bdb285c1cf21",
+   "sha256": "1hdr5vr5xzlpj5xyapgbm9drrham6r776lmj8sjqaqrdffgxj8dh"
   },
   "stable": {
    "version": [
@@ -88641,11 +89897,11 @@
   "repo": "YangZhao11/register-channel",
   "unstable": {
    "version": [
-    20180926,
-    2349
+    20210120,
+    1618
    ],
-   "commit": "9272923757402d177a0b2deab1d9c3c74601c48e",
-   "sha256": "0k9qgrbzbxx4sjffnr02qx5wm71i3m61w7mh2j4hq9jf8k6nbkq4"
+   "commit": "ed7f563e92170b758dc878fcb5df88d46d5d44cc",
+   "sha256": "1ih1s274004faq78fgdxw3gy7i58nbanbp39ax2wi8zz6ivm9lqa"
   }
  },
  {
@@ -88816,32 +90072,32 @@
  },
  {
   "ename": "repl-toggle",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "16k9fk1nl2llk9qli52kiirlx9rlz8yhjh3cy6v5y2b3k0y1cf0b",
-  "fetcher": "github",
-  "repo": "tomterl/repl-toggle",
+  "commit": "ce2df1e493e3bcd63dfb07c3c5475d2dbf410fb8",
+  "sha256": "099sz9c0fl7b65qahc3gf2hlzmrm19spzm8bsl30wyc9vycik9yk",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~tomterl/repl-toggle",
   "unstable": {
    "version": [
-    20210114,
-    932
+    20210226,
+    1055
    ],
    "deps": [
     "fullframe"
    ],
-   "commit": "091aea753f59f2af5c581e73d15b4dd7ee394d94",
-   "sha256": "0r2zr6dxzml418rmar5v6yw6x1wfbrk89lqqvgsbjfps3yk9b27a"
+   "commit": "7028ae65f136215f8e07a43afc33a6b99fe82857",
+   "sha256": "0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp"
   },
   "stable": {
    "version": [
     0,
-    6,
+    7,
     1
    ],
    "deps": [
     "fullframe"
    ],
-   "commit": "a36caac7649fbffbe30f7b06541c9efd723563fc",
-   "sha256": "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"
+   "commit": "7028ae65f136215f8e07a43afc33a6b99fe82857",
+   "sha256": "0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp"
   }
  },
  {
@@ -88998,11 +90254,11 @@
   "repo": "tkf/emacs-request",
   "unstable": {
    "version": [
-    20201026,
-    2324
+    20210214,
+    37
    ],
-   "commit": "0183da84cb45eb94da996cd2eab714ef0d7504cc",
-   "sha256": "16q2mb0ir3a6kpgbkv6ag0zs10pj4gr2j1qdizzfqx7m4piyfj0n"
+   "commit": "accd430ee706f5b10fb20003b06bd8209bcdaa82",
+   "sha256": "0ffbc6x340whbrcfi5n0k81134x6knfc9g7z299fn47b2ihgd6jc"
   },
   "stable": {
    "version": [
@@ -89022,15 +90278,15 @@
   "repo": "tkf/emacs-request",
   "unstable": {
    "version": [
-    20181129,
-    317
+    20210214,
+    37
    ],
    "deps": [
     "deferred",
     "request"
    ],
-   "commit": "0183da84cb45eb94da996cd2eab714ef0d7504cc",
-   "sha256": "16q2mb0ir3a6kpgbkv6ag0zs10pj4gr2j1qdizzfqx7m4piyfj0n"
+   "commit": "accd430ee706f5b10fb20003b06bd8209bcdaa82",
+   "sha256": "0ffbc6x340whbrcfi5n0k81134x6knfc9g7z299fn47b2ihgd6jc"
   },
   "stable": {
    "version": [
@@ -89259,28 +90515,28 @@
   "repo": "jcs-elpa/reveal-in-folder",
   "unstable": {
    "version": [
-    20201224,
-    1242
+    20210129,
+    1921
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "5143c92c806fd3a80e6729a42167be9caea88f45",
-   "sha256": "1kpnk1fhzgiv2dc3y6fk27ina7j11s6siagqpi5fckbbi18hd84i"
+   "commit": "f62be2d11c8a9182cf84f0efe7ed054cc304262d",
+   "sha256": "0ksw9s96mmb1qlypz9mc9br9139ha5jmahi42x4i8qppcn6zs5ja"
   },
   "stable": {
    "version": [
     0,
     1,
-    1
+    2
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "29240e4845a44d10134652b427580301318f1288",
-   "sha256": "0ckaq8z38mj17abzarvq0awsqvwnff22mxa6pgsl7ks67hzq5kb4"
+   "commit": "f62be2d11c8a9182cf84f0efe7ed054cc304262d",
+   "sha256": "0ksw9s96mmb1qlypz9mc9br9139ha5jmahi42x4i8qppcn6zs5ja"
   }
  },
  {
@@ -89318,6 +90574,15 @@
     20200520,
     853
    ],
+   "commit": "2db53105f2f8ee533df903b7482e571e28ce3c7b",
+   "sha256": "19mjwk24nwhwn0ylr7m2f9vbyf91ksicznxj1w41jp5slh5h7pr0"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    7
+   ],
    "commit": "90add9a1f8c4a3c78029d38087ff4d22fe5372d3",
    "sha256": "05k2zp2hldzq5h6nl8gx79dd8lvfn507ad4x3naichdqgn2013nn"
   }
@@ -89346,6 +90611,21 @@
   }
  },
  {
+  "ename": "revert-buffer-all",
+  "commit": "02ff00238a8af45d9e26e0b7b6b19a507ea06f86",
+  "sha256": "1lyxwh3kjlhyi5ln2lmbhyn28fxdd3l58djc9mqbzwdfm81qprsv",
+  "fetcher": "gitlab",
+  "repo": "ideasman42/emacs-revert-buffer-all",
+  "unstable": {
+   "version": [
+    20210322,
+    159
+   ],
+   "commit": "14efdbf24ebe0d743ccb3f0d43acae98939c94fd",
+   "sha256": "1kimlfq98a8gym0kb6z8b5mys0gsqz8iywnxrbh5s3ck6s911dn7"
+  }
+ },
+ {
   "ename": "review-mode",
   "commit": "f2f9e2667389577d0703874ca69ebe4800ae3e01",
   "sha256": "0wapicggkngpdzi0yxc0b24s526fs819rc2d6miv6ix3gnw11n0n",
@@ -89410,28 +90690,28 @@
   "repo": "dajva/rg.el",
   "unstable": {
    "version": [
-    20210113,
-    1559
+    20210305,
+    1621
    ],
    "deps": [
     "transient",
     "wgrep"
    ],
-   "commit": "c34266646951618af916684e954c33a9b1f86085",
-   "sha256": "12v7x427rwg8q9i7c81bzd4r4jpqwsv0442dahjxiivlrxqdb18h"
+   "commit": "10e64887c224002572e1f1e19c74453cba606c3f",
+   "sha256": "1519lh5j5zki2dfzd1a1hl1d24nap99hv80647rvpr3mzbcsg29s"
   },
   "stable": {
    "version": [
     2,
     0,
-    2
+    3
    ],
    "deps": [
     "transient",
     "wgrep"
    ],
-   "commit": "2ec8d1d36cfb9750c9a65c4a2687ea76399fccb3",
-   "sha256": "15qcnsnbni0aincm9pxpfhff3c5ivd5zs2s2qchjzhcn4kdm6kxr"
+   "commit": "bb89400d4d5e4eb22917f7048256745ea566a844",
+   "sha256": "0d8habjr4nv0xbgsk7nj5zid5zywf00vbl5zcx7anda5w1cy2zvr"
   }
  },
  {
@@ -89567,8 +90847,8 @@
   "repo": "DogLooksGood/emacs-rime",
   "unstable": {
    "version": [
-    20210113,
-    742
+    20210207,
+    1432
    ],
    "deps": [
     "cl-lib",
@@ -89576,8 +90856,8 @@
     "popup",
     "posframe"
    ],
-   "commit": "8012c6a09195d940c2ba24d7c63974fb5b3b0e51",
-   "sha256": "0wnx4saydjy6h97hg9277sqykxs2qh7731qs27n5nhxq2rbyw01p"
+   "commit": "519e6eb3b5e8e668c2835d27f54fcf5776242576",
+   "sha256": "1q0kzdy3nxswsriq4fxr00wmw43x737dd7pnkf9g6v8hd7gsqkzc"
   },
   "stable": {
    "version": [
@@ -89782,14 +91062,14 @@
   "repo": "dgutov/robe",
   "unstable": {
    "version": [
-    20201214,
-    2255
+    20210202,
+    111
    ],
    "deps": [
     "inf-ruby"
    ],
-   "commit": "596d27e37440cad6cd65dcf83d03c502efc01eb4",
-   "sha256": "09gc6yy2d5z75s37zw1xiv0qh44nvf4j24w8qd15270wkaczfixa"
+   "commit": "126650a06224f1a616b10c02bd9ad8a763a512ef",
+   "sha256": "11yhl9dpf7ni4l9qpr8akpzr2y6j99n3w5hx4yp8v9gppgb1q37w"
   },
   "stable": {
    "version": [
@@ -89875,10 +91155,10 @@
  },
  {
   "ename": "ron-mode",
-  "commit": "67c658fe2ee340f3902c7ff5c0138995e69fe5dc",
-  "sha256": "1w0zicbva3xvqi1qz87fbr4ciq28hg70f0n2q70drh4nqb4ahwm2",
+  "commit": "e61a3f8cba4e5e303379f80c9fdd773fdde66406",
+  "sha256": "19hb9snfkm8fdbn8i9whvq0g85xlr4l6hbjyf1vb8355yrwsdcvs",
   "fetcher": "git",
-  "url": "https://codeberg.org/Hutzdog/ron-mode",
+  "url": "https://codeberg.org/Hutzdog/ron-mode.git",
   "unstable": {
    "version": [
     20200830,
@@ -89935,11 +91215,11 @@
   "repo": "daichirata/emacs-rotate",
   "unstable": {
    "version": [
-    20160909,
-    836
+    20210126,
+    637
    ],
-   "commit": "091b5ac4fc310773253efb317e3dbe8e46959ba6",
-   "sha256": "0msjn7ays71mcw6qmdk0mpjp1rvd7fwz917vmvlcd7cpmvkyfbds"
+   "commit": "4e9ac3ff800880bd9b705794ef0f7c99d72900a6",
+   "sha256": "1v4xaqfh3madrc8jcr16xzs40vvmk2ml1qwgsxkcm11l6pglmnnk"
   }
  },
  {
@@ -89980,37 +91260,14 @@
   "repo": "zk-phi/rpn-calc",
   "unstable": {
    "version": [
-    20200816,
-    545
+    20210306,
+    426
    ],
    "deps": [
     "popup"
    ],
-   "commit": "1554be19acc2644898a2175fa277d1159327c8dc",
-   "sha256": "1b4v9x8f9ykz2dqiv7p7c2f6kbl374i2723idmnvm2c9bc0hbpyv"
-  }
- },
- {
-  "ename": "rsense",
-  "commit": "e2149ce3baef9ac01d5b2e8b1a933a3e1206015f",
-  "sha256": "1901xqlpc8fg4sl9j58jn40i2djs8s0cdcqcrzrq02lvk8ssfdf5",
-  "fetcher": "github",
-  "repo": "m2ym/rsense",
-  "unstable": {
-   "version": [
-    20100511,
-    405
-   ],
-   "commit": "8b5ee58318747ca1dde84ee41d48c4f50175cf35",
-   "sha256": "0xkr1qn8fm3kv5c11janq5acp1q02abvxc463zijvm2qk735yl4d"
-  },
-  "stable": {
-   "version": [
-    0,
-    3
-   ],
-   "commit": "e4297052ef32d06237e8bd1534a0caf70a34ad28",
-   "sha256": "0mfkq8n28lal4lqwp6v0ilz8wrwgg61sbm0jggznwisjqqy3lzrh"
+   "commit": "320123ede874a8fc6cde542baa0d106950318071",
+   "sha256": "0fq7ym2wyfb5pgm75llc8wzyzr3kb5s3i2mw3ry076yk5c4gjsi2"
   }
  },
  {
@@ -90055,8 +91312,8 @@
     20201218,
     1821
    ],
-   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
-   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
+   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
+   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
   },
   "stable": {
    "version": [
@@ -90081,8 +91338,8 @@
    "deps": [
     "rtags"
    ],
-   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
-   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
+   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
+   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
   },
   "stable": {
    "version": [
@@ -90146,26 +91403,26 @@
  },
  {
   "ename": "rubocop",
-  "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
-  "sha256": "07ma4fv015wzpj5j4rdb0ckwwmhkxs3k5vy33qxgwghqmn6xby6x",
+  "commit": "d30b73ad1fea01f4f3a2c4f00f7119c6f52fa7e6",
+  "sha256": "1gc9z5pwjapq2jiykb1ry31wl8n4fsy4g8zbpy7g4z4rqikf32gn",
   "fetcher": "github",
-  "repo": "rubocop-hq/rubocop-emacs",
+  "repo": "rubocop/rubocop-emacs",
   "unstable": {
    "version": [
-    20190326,
-    1424
+    20210309,
+    1241
    ],
-   "commit": "03bf15558a6eb65e4f74000cab29412efd46660e",
-   "sha256": "0bl1l2qbpdknn93wr95a49gdnpl3pwpjj3rka3s44hvihny9p8q0"
+   "commit": "f5fd18aa810c3d3269188cbbd731ddc09006f8f5",
+   "sha256": "1kwxqryhhdj83jism19jw8fz0bgwxrmgq7f887yyjsm7b5glzvhx"
   },
   "stable": {
    "version": [
     0,
-    5,
+    6,
     0
    ],
-   "commit": "980bedb455e3551d35a212fae515c054888907c1",
-   "sha256": "152ara2p59imry2ymfnk5mycbc07rblcmfmqjgm5fijb2x94xv8p"
+   "commit": "608a3c1dccab9a3af467ce75d94dedfbfd37b21d",
+   "sha256": "0bxz80j7bnrlrd6gd548rvd5jf6m36wyxfc4vzxbcim1xcfjyp09"
   }
  },
  {
@@ -90372,15 +91629,15 @@
   "repo": "ruby-test-mode/ruby-test-mode",
   "unstable": {
    "version": [
-    20201027,
-    905
+    20210205,
+    1107
    ],
    "deps": [
     "pcre2el",
     "ruby-mode"
    ],
-   "commit": "4af8a51483e5ed3104693a0052c2aebf8361c52c",
-   "sha256": "178dbacbhs7j74ia4ay1h84k9cx6jacyw82q6g0hnm2kgzg4x85k"
+   "commit": "d66db4aca6e6a246f65f7195ecfbc7581d35fb7a",
+   "sha256": "0rwq5g6p8n45vqf35dklkzdrhbp9i9gx03v7s1b4s4h83hlhlh51"
   },
   "stable": {
    "version": [
@@ -90455,6 +91712,21 @@
   }
  },
  {
+  "ename": "run-command",
+  "commit": "55089aac37c8934be2882c33bf96cc61322fec23",
+  "sha256": "1bcm39sy09h16j06rvshchlbzgvm12qa8snvfs99fdz3riikb2v2",
+  "fetcher": "github",
+  "repo": "bard/emacs-run-command",
+  "unstable": {
+   "version": [
+    20210323,
+    1742
+   ],
+   "commit": "92b70a1ed0aa9bdbed3915efe47b3ba92fe2cb74",
+   "sha256": "1jvclzlr9lhvb05zdnqw2l3y2m1nca2m5z8m1a7rmq9bk1wwl4pa"
+  }
+ },
+ {
   "ename": "run-stuff",
   "commit": "68b7cb0ffe90cd56e2ca6e91e33668be586a1da7",
   "sha256": "038brammgivaq2423sx0iy6n7d7lyx3r939a0b85ix8zvkcbinia",
@@ -90462,11 +91734,11 @@
   "repo": "ideasman42/emacs-run-stuff",
   "unstable": {
    "version": [
-    20201109,
-    351
+    20210308,
+    453
    ],
-   "commit": "54787de62839c48428f2e1edc4e2aa64851e9849",
-   "sha256": "0zbf2nvnwx6yyjjk4xfdpn15bna6r32n02q32qzk6bnqipw54ca3"
+   "commit": "e5ee96c50c350cf860982b7b5deff1ed8d488c8a",
+   "sha256": "0g60kk49dbn331z06gpi3c8pqjsb780iwd07bl87bgbcxcpa2fg9"
   }
  },
  {
@@ -90553,11 +91825,11 @@
   "repo": "rust-lang/rust-mode",
   "unstable": {
    "version": [
-    20201204,
-    1527
+    20210226,
+    1106
    ],
-   "commit": "c5c7ed31a2e1106ab4835b135618a34570796dc7",
-   "sha256": "1r2qm3n4788pyyglp23ghzbfq8xzni1vb2jgzc6v65x1047j5rl3"
+   "commit": "e9e9e32c4f82a9b895543c120b327ab5536ec42b",
+   "sha256": "0f63lms4arkqj6161v2787dgfra23a01vi82s9dcylk9z6bqyz4v"
   },
   "stable": {
    "version": [
@@ -90600,8 +91872,8 @@
   "repo": "brotzeit/rustic",
   "unstable": {
    "version": [
-    20210103,
-    1235
+    20210315,
+    1728
    ],
    "deps": [
     "dash",
@@ -90614,8 +91886,8 @@
     "spinner",
     "xterm-color"
    ],
-   "commit": "4570312648cb8d4788f4fe749d67c0fce2de42e4",
-   "sha256": "1l6b0ljr6xwpjq46qgna2brprj81ppxwzhaj5s1xbwffzi67dc1z"
+   "commit": "d97ec8623c4c7e7ad3bb32e3d3773ba29a34bb0d",
+   "sha256": "1mimrn4aaplmdrwmgp6wax489vp0njd7j95abdnjf0ggc7qbgzcv"
   }
  },
  {
@@ -90990,14 +92262,11 @@
   "repo": "nicolaisingh/saveplace-pdf-view",
   "unstable": {
    "version": [
-    20201216,
-    934
-   ],
-   "deps": [
-    "pdf-tools"
+    20210217,
+    1312
    ],
-   "commit": "b0370912049222f3a4c943856de3d69d48d53a35",
-   "sha256": "1ky1d3aycc1r96z3fy484p99xlmry9y9z61s7l7mw0m231k7kpbd"
+   "commit": "54ed966b842501c3c092dbf57b372e37b033c578",
+   "sha256": "0i03qb6qc2agp9s5s7l08f1wl8anqndh6xshg1c3w357vd1whv7i"
   }
  },
  {
@@ -91061,11 +92330,11 @@
   "repo": "hvesalai/emacs-sbt-mode",
   "unstable": {
    "version": [
-    20201021,
-    1937
+    20210306,
+    1603
    ],
-   "commit": "7b121fce50430a44bd743583c87d7645bf157be2",
-   "sha256": "0jqq2a5rp6nfi4n2rpdxd8yzc01jhm2mfg3lmn7aacmnwi6554ji"
+   "commit": "0bdc36ba3b3955c1106a5cda69be98bd38195cb6",
+   "sha256": "03wikgh94a0qc3xyvrvzxi4rrrd713ykpgva8z4ly85mh193215s"
   },
   "stable": {
    "version": [
@@ -91088,8 +92357,8 @@
     20200830,
     301
    ],
-   "commit": "85f1e8f2dabb94fb1c853a7c60c1dda07163ac8e",
-   "sha256": "16cnp54gvkx7kc6kr74mahvjwhkpc7y60c8v16m8n7si6h77lfqd"
+   "commit": "3413825c2de675c087fbb39f9aeec4145495fad1",
+   "sha256": "036ffrfkdakix7z8ksfw78wk1plqnkcf26acn9sksbxcyk4lbjnk"
   }
  },
  {
@@ -91100,14 +92369,14 @@
   "repo": "zk-phi/scad-preview",
   "unstable": {
    "version": [
-    20200816,
-    549
+    20210306,
+    426
    ],
    "deps": [
     "scad-mode"
    ],
-   "commit": "75fe00a9aaf875ac97930bdb334aef9e479e41d5",
-   "sha256": "0vdb9ib76fjdvm3f13v3kh7x04izq993crrzsqp0vs5nilbkrs8c"
+   "commit": "8b2e7feb722ab2bde1ce050fe040f72ae0b05cad",
+   "sha256": "13hsd3sh1azcrbdbjnr1z5q0n5xw3ifzhvsnfqbqdz2pkpr5mfig"
   }
  },
  {
@@ -91118,11 +92387,11 @@
   "repo": "hvesalai/emacs-scala-mode",
   "unstable": {
    "version": [
-    20201106,
-    2057
+    20210205,
+    851
    ],
-   "commit": "2bf56219924e0cbc0325547799144b02d4085935",
-   "sha256": "1cs5d9x69q2akzf7a64awapjxljbqggxv391k885ld3zqglqkzks"
+   "commit": "1ab5f645606e40db07b813a1600835d1442c060a",
+   "sha256": "1hzlgypb5pp8rpylm8qbbcqya5b0kjgq44m4n2wq6bix77iphsd8"
   },
   "stable": {
    "version": [
@@ -91277,20 +92546,20 @@
  },
  {
   "ename": "scpaste",
-  "commit": "9007fb32097bc63731c3615dae9342fcef2558a2",
-  "sha256": "02dqmx6v3jxdn5yz1z74624sc6sz2bm4qjyi78w9akhp2jplwlk1",
-  "fetcher": "github",
-  "repo": "technomancy/scpaste",
+  "commit": "8bec8e696afde1b89502f312efc0054ca59502a6",
+  "sha256": "1x2ikbb1k34yfrr45pk4a8171l3azbgl0mrd4pb44qz7z1rpn57m",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~technomancy/scpaste",
   "unstable": {
    "version": [
-    20200717,
-    2007
+    20210223,
+    1902
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "2aa1513fa0a402f03b993c0a6929daf39820b02b",
-   "sha256": "1cvkqb5v0v790nmhg4wi6kv6mbzfkfcgvn2xh9bmny37dcv0i2gk"
+   "commit": "4ec352fb9fe261ffb8b78449dea986dc34d337b3",
+   "sha256": "0219jzj3rwcx4k6f4grzrarq0v05jgmmracis3jb25rv0cln3i9r"
   },
   "stable": {
    "version": [
@@ -91405,14 +92674,14 @@
   "repo": "zk-phi/scratch-palette",
   "unstable": {
    "version": [
-    20200816,
-    551
+    20210306,
+    427
    ],
    "deps": [
     "popwin"
    ],
-   "commit": "c39cacb11992383887fa096ace85510baed94aef",
-   "sha256": "1va9c97cvdqf6404kixvgk0qwrlnc1lrz6khpkdp2w7w1brhf2f7"
+   "commit": "e4642ed8a2b744ba48a8e11ca83861f8e4b9c5b3",
+   "sha256": "1cvcsj6ayhfwdpp2mb75ja8bif33z085dip76bvyqliwjnjl2sgn"
   }
  },
  {
@@ -91475,8 +92744,8 @@
     20201013,
     123
    ],
-   "commit": "3cd1e1801aaddd011992d284280b5b43ccbee17b",
-   "sha256": "0mgc3wc1kga7n3zwy7i338vdxy0nfhv61ra9708lc14rx6zjwk9f"
+   "commit": "ad94790492d0d66686f3457cea1caeba8bbbdc51",
+   "sha256": "1b725iz5xhqki33jydq9vrxvrbfraxq2q79jdbrjy548rbsxzyjf"
   }
  },
  {
@@ -91647,15 +92916,15 @@
   "repo": "jcs-elpa/searcher",
   "unstable": {
    "version": [
-    20201010,
-    641
+    20210124,
+    1524
    ],
    "deps": [
     "dash",
     "f"
    ],
-   "commit": "432d2ea9f7d0ab7274ff2927d26e7adca85be169",
-   "sha256": "07kwcyg8v5svqq2v24qn4rd43r590gr9nmv3270aqad8lqjlrrn8"
+   "commit": "447b6f0c3b4429e70a474a325151913100bc6417",
+   "sha256": "1w0l0r4n0w99523klia1pfyh0y3jvskhk2wrwzdx09mad0bdfj1b"
   },
   "stable": {
    "version": [
@@ -91673,10 +92942,10 @@
  },
  {
   "ename": "searchq",
-  "commit": "9738c1be0511540bfd8f324334518c72c9c38c94",
-  "sha256": "0flsc07v887pm62mslrv7zqnhl62l6348nkm77mizm1592q3kjgr",
+  "commit": "cd08b1a89eba9dcc0ed7f6d6ccb783b6ba0c00ca",
+  "sha256": "0n3azkzfflxi8fif4m3q886l5gp33z2ylfl2j3h0w36xlgc9h58l",
   "fetcher": "github",
-  "repo": "boyw165/searchq",
+  "repo": "tcw165/searchq",
   "unstable": {
    "version": [
     20150829,
@@ -91755,6 +93024,21 @@
   }
  },
  {
+  "ename": "seen-mode",
+  "commit": "f29f5a7850d058984a39ecf6aaa81a9e465356f6",
+  "sha256": "0v2qjqf89fz9ss4m39zwrhpijk1flglmyys9wm4nxi5dp32pppji",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~shiorid/seen.el",
+  "unstable": {
+   "version": [
+    20210311,
+    1935
+   ],
+   "commit": "57c960d76ad3dc551ac5a57ebe8682ef9fdc6d31",
+   "sha256": "1bn6jrvnz4bh7jm0a4g9z29zld5lm6jc77gh0i5m9ia38wzr00jx"
+  }
+ },
+ {
   "ename": "seethru",
   "commit": "7945732d9789143b386603dd7c96ef14ba68ddaf",
   "sha256": "1lcwslkki9s15xr2dmh2iic4ax8ia0j20hjnjmkv612wv04b806v",
@@ -91877,19 +93161,19 @@
   "repo": "raxod502/selectrum",
   "unstable": {
    "version": [
-    20210114,
-    2154
+    20210325,
+    1415
    ],
-   "commit": "3abbfd9bc7d8991cce20202942a5b59a6c8d8dab",
-   "sha256": "05g0cwyv77ajbbq3ja4bsgh84m1829mqrp5mxg5gbwhjp9xr974r"
+   "commit": "f5a1f6b6c89719f80c29388c2c784d6b4e346081",
+   "sha256": "1p3da5pzmzhbqgcgzkii6hh1klrdfch6fnq4g3pa9mxrnis8v4py"
   },
   "stable": {
    "version": [
     3,
-    0
+    1
    ],
-   "commit": "bec406a47bd95f5b7363be239783a01631858520",
-   "sha256": "0j10yxlikyg7qxcmp4fnddyd5nc3hlz080d1zcbijq020a08k86g"
+   "commit": "a9ecaa018f249c15fae8e1af5d4df337e846e92f",
+   "sha256": "02jrki6vzyfyi1bbslki5pk2348flh9dz18jkc4y7p60bvbr52cb"
   }
  },
  {
@@ -91900,27 +93184,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20201214,
-    227
+    20210321,
+    1927
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "42adc802d3ba6c747bed7ea1f6e3ffbbdfc7192d",
-   "sha256": "0v12707jwd2ynk8gp3shgarl6yp3ynal7d4jzds6l2lknr6wi50w"
+   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
+   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
   },
   "stable": {
    "version": [
     5,
-    0
+    1
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
-   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+   "commit": "2c0e9fc061ab723ec532428f312974ca7d8def12",
+   "sha256": "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"
   }
  },
  {
@@ -91965,15 +93249,15 @@
   "repo": "wanderlust/semi",
   "unstable": {
    "version": [
-    20201115,
-    116
+    20210214,
+    853
    ],
    "deps": [
     "apel",
     "flim"
    ],
-   "commit": "f279ebe1c1f9c14bdd5d3da01af24277a6167b69",
-   "sha256": "1a387s4h167lsray5k5gzm8jpnrg5az7y982iamk67rz5i1ccgz5"
+   "commit": "20d75302509b5fba9849e74b61c1ce93e5819864",
+   "sha256": "14qy9k64fi8asd4ka9hv5v0aa7mkdnx6252n02gldg760janr7xl"
   }
  },
  {
@@ -92085,16 +93369,30 @@
   "repo": "twlz0ne/separedit.el",
   "unstable": {
    "version": [
-    20200827,
-    725
+    20210323,
+    905
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "edit-indirect"
    ],
-   "commit": "dc0b3448f3d9738f5233c34c5c8fc172eda26323",
-   "sha256": "0qjfhal2pjw1lk7qyb89lwibabpycibf5vsadinvqnn77m25sx04"
+   "commit": "bebc27121d6d2da900810d552cd5e423ca870bee",
+   "sha256": "1b87pqvx4p8kwmc63scw9n4v1qj2rp0avx32jl5v3lbgbhvsr3zz"
+  }
+ },
+ {
+  "ename": "sequed",
+  "commit": "340eeeb2c21e313fedab8e1a28a1257374a7aea1",
+  "sha256": "1vym45gax05ay0naspwyqc1h48iwmqaq7b6vzxabsc72w8kw4sgs",
+  "fetcher": "github",
+  "repo": "brannala/sequed",
+  "unstable": {
+   "version": [
+    20210315,
+    2012
+   ],
+   "commit": "50c5dca413a12fe2d8a89eae833f10967c2f38d2",
+   "sha256": "16hsjk04xw88ddr2gbwlb4v8didqmk7ffwphp1iqy3a02wf4kif6"
   }
  },
  {
@@ -92437,6 +93735,21 @@
   }
  },
  {
+  "ename": "shades-of-purple-theme",
+  "commit": "fec35f46d061fdd454de7406253a1e24b2b501ed",
+  "sha256": "1gff2c53wvcfdvh1vx35rm3njp2y5742jkmfm0lbi6q68fz19d3j",
+  "fetcher": "github",
+  "repo": "arturovm/shades-of-purple-emacs",
+  "unstable": {
+   "version": [
+    20210213,
+    1939
+   ],
+   "commit": "96c58f2421165d67f300cc5014715fc0517e8f8c",
+   "sha256": "17cnwc235wm6la3wh1wcrs621jqzka7xnrrbcsk4kv8fnidi81n4"
+  }
+ },
+ {
   "ename": "shadowenv",
   "commit": "b2651055ab67448f90a93cf594342b8212202b82",
   "sha256": "1qxnbvpnvk3666hwfrh4pnfgb2mrfha6hiri8zfdspdh8g535ygq",
@@ -92444,11 +93757,11 @@
   "repo": "Shopify/shadowenv.el",
   "unstable": {
    "version": [
-    20190903,
-    1907
+    20210216,
+    2031
    ],
-   "commit": "5f24c90bb8e7333ee4315619672dc2ec69d198be",
-   "sha256": "0msrhh41nyvyy17skd5y5lzdz7a6lxnlqnflgz4xf2qpnc390kd6"
+   "commit": "e4563469fe20b9e6e63d7b19c86ac8b8b615df1d",
+   "sha256": "1p7a4lps2w6dnc5i1fiwx22ij4in70a0h0bl5bp7ab5ba6l22kaw"
   }
  },
  {
@@ -92784,8 +94097,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "465dc1fcaeed778b504d3d349a30e611368dcc00",
-   "sha256": "1gzky5xs63y7xl7j2hs81aja8qq6c5l3vk07hh050flw4yfxyi23"
+   "commit": "49c9e11567874bc4c5c4b3578a6b8f6b1948c691",
+   "sha256": "002y0ci1hh55qhyyp1m6gw5d9ncbcfk9bhk6qg30s3x1g1dhq2bi"
   },
   "stable": {
    "version": [
@@ -92849,11 +94162,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20201021,
-    552
+    20210218,
+    2329
    ],
-   "commit": "f29aadae07bd58689720271b1f6538edfec5c476",
-   "sha256": "130ydwzpzw4s4h3jhh5h066iib7s9c8xa43imvlvcqs3vghp7p1x"
+   "commit": "7da7afc51aec1ab02056512b921e29a8c68615c9",
+   "sha256": "1fcfmzahmamrxrklbwrrig4gv745lpznpbxx5rlmb7wpndf2cpdy"
   }
  },
  {
@@ -93039,26 +94352,27 @@
   "repo": "chenyanming/shrface",
   "unstable": {
    "version": [
-    20201108,
-    640
+    20210321,
+    844
    ],
    "deps": [
+    "language-detection",
     "org"
    ],
-   "commit": "da8acfb347c14e82a9c56cfd65e57b8adb8eb5d2",
-   "sha256": "1gc5w4svkfvd4a0sqyaq4570iabql4w6yayamcpf20n7i8wvlpws"
+   "commit": "a73268705e3558ee91dc05674c5c3bed7fe28202",
+   "sha256": "1jjs0pclv0ya4d65wzafkvgb7lmg7f13jj0pihs1ch507fyiw3gp"
   },
   "stable": {
    "version": [
     2,
     6,
-    1
+    3
    ],
    "deps": [
     "org"
    ],
-   "commit": "716b8a51ab331952f5b617152055799e32efb77e",
-   "sha256": "10yrkza38ylvahgq5ga78brkzi5c2ms2v9800a0y8ld019zxkr7r"
+   "commit": "3dc6b980a4235b084abeae500a377e60026c28ef",
+   "sha256": "1gg0z15a4rygi0dxabnlpjh56sa7kwxw3fji6ibk70l1jwgd7ydc"
   }
  },
  {
@@ -93127,18 +94441,17 @@
   "url": "https://git.savannah.nongnu.org/git/emacs-shroud.git",
   "unstable": {
    "version": [
-    20200124,
-    1833
+    20210220,
+    1952
    ],
    "deps": [
     "bui",
     "dash",
-    "dash-functional",
     "epg",
     "s"
    ],
-   "commit": "bf8a854ecd440c525b870f9439f6785700af80d3",
-   "sha256": "1rfmykbv2jipkb8by9jsx51gdh62spilffj3c49h3rfcllqnbv2g"
+   "commit": "2e6ff2bab4a1e798c090c9d7fbd90b7f3463d5c5",
+   "sha256": "08nnpzdrh4sq3vddfcdagaxvn4liprmc3dd17lbrvw5qlcadrbvg"
   },
   "stable": {
    "version": [
@@ -93248,20 +94561,20 @@
   "repo": "rnkn/side-notes",
   "unstable": {
    "version": [
-    20200926,
-    1404
+    20210201,
+    724
    ],
-   "commit": "f5135f652d2b21f55b4809151143845c6807de01",
-   "sha256": "1jnh4djxp4k0c1r6yq0n0zi9vadsj9daqnajs33g2npvhmyav0sr"
+   "commit": "3993e8de44c141420efbec3cdb4c5620b862a200",
+   "sha256": "1ivm2xr7mc8hp7g1l6l3a4mm5byn2cp7m6bv2g222997xbpk0il5"
   },
   "stable": {
    "version": [
     0,
     4,
-    0
+    1
    ],
-   "commit": "27c964334b8e30fa88e4278ae58dc3d00df34f1f",
-   "sha256": "1xl2ykdscrwpxm02ypnf68mkxf9dkp64cj465b69s874x10bxfc3"
+   "commit": "d41255fc2b8cadfc7882c617c7d1aff71524ed46",
+   "sha256": "0jsfa5dfs0kl9c7pjxi1niq1mknsxnqm9gs18l0lb9ipbzb949sr"
   }
  },
  {
@@ -93314,11 +94627,11 @@
   "repo": "mswift42/silkworm-theme",
   "unstable": {
    "version": [
-    20191005,
-    1903
+    20210215,
+    1120
    ],
-   "commit": "6cb44e3bfb095588aa3bdf8d0d45b583521f9e2c",
-   "sha256": "0w5h1gl8npmwmpvhhwchrknd977w4l3vvd2lib7qphinj117fhzv"
+   "commit": "ff80e9294da0fb093e15097ac62153ef4a64a889",
+   "sha256": "09zrhfk6w74kc4sml20k6vhnd8b07yppn69rffan5mhr3qr69176"
   },
   "stable": {
    "version": [
@@ -93429,19 +94742,19 @@
   "repo": "gexplorer/simple-modeline",
   "unstable": {
    "version": [
-    20201218,
-    840
+    20210312,
+    1048
    ],
-   "commit": "38973dec2912e2136d8fde5f2667063863fee15a",
-   "sha256": "0y70hc3x8rxr8b5x8d0a23gpcadzrn43wmrsvqqxmmkqqp45n7gj"
+   "commit": "119d8224a8ae0ee17b09ac1fed6cdb9cb1d048fd",
+   "sha256": "1rnzrx7gcaw056cqvnb1wai4hala0r0gpk3a4kyyghyp9hmrxbb5"
   },
   "stable": {
    "version": [
     1,
-    2
+    4
    ],
-   "commit": "f0b983ba3b5b44390ba2dbd419bb6f29908f95fb",
-   "sha256": "164f95pj38a9hz315fs91ppvgn32a26v7vjz1pnrsvmllricm4zp"
+   "commit": "119d8224a8ae0ee17b09ac1fed6cdb9cb1d048fd",
+   "sha256": "1rnzrx7gcaw056cqvnb1wai4hala0r0gpk3a4kyyghyp9hmrxbb5"
   }
  },
  {
@@ -93470,14 +94783,14 @@
   "repo": "andreas-roehler/simple-paren",
   "unstable": {
    "version": [
-    20200120,
-    2036
+    20210206,
+    2015
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "2a4ba8f99f39abf17976db8118e32b80eff0798b",
-   "sha256": "0897i5ggdivi2knblcbkyv9lpnwgdlr8ql9brd09bkdsbzhsqb6y"
+   "commit": "7b17fcc467e485dce5550be901d26223b8ad3f23",
+   "sha256": "1ksckai0hr2345vpjsahv0kzk8h52vrg2wki290v5aj64iy2nw76"
   }
  },
  {
@@ -93639,8 +94952,8 @@
   "repo": "chrisbarrett/skeletor.el",
   "unstable": {
    "version": [
-    20191129,
-    841
+    20210129,
+    239
    ],
    "deps": [
     "cl-lib",
@@ -93649,8 +94962,8 @@
     "let-alist",
     "s"
    ],
-   "commit": "eb21383a9c9e7cf7ae2bbb85cb6d4f42aa3cb37f",
-   "sha256": "1vq4g8kpq9q4zyybw4k4hgvn13avxz653gdfrx4x5wvfqcr91mbx"
+   "commit": "f6e560a0bfe459e0b8a268047920ce1148f2ebf6",
+   "sha256": "0xal5m59z8whrsr6id52gb6f22jy6dp349xvs6xxjdfamj1083r7"
   },
   "stable": {
    "version": [
@@ -93670,6 +94983,29 @@
   }
  },
  {
+  "ename": "sketch-themes",
+  "commit": "d1b2026ff5fe7a2893dd4c71d9089e97c4fd48f1",
+  "sha256": "18n6blkrn72zyjj4ik3f6w2axmn0rwk8lpbcaynl3y7v7ij35m0r",
+  "fetcher": "github",
+  "repo": "dawranliou/sketch-themes",
+  "unstable": {
+   "version": [
+    20210325,
+    1700
+   ],
+   "commit": "407094c03e934043aa6d70369bf3e1bd841d1c91",
+   "sha256": "1glm8cxd91kq6910rrzgh3xaas67fylvgqxq2ld6gzcgmxzhv8yl"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "commit": "df8182628052bf55e7779fb6967383629059b5c0",
+   "sha256": "0184vmhl3m84qavx1vnrp16fwfpd1fpynfb5vwaa4nvg55ly247i"
+  }
+ },
+ {
   "ename": "skewer-less",
   "commit": "fb63f7417f39bd718972f54e57360708eb48b977",
   "sha256": "0fhv5cnp5bgw3krfmb0jl18kw2hzx2p81falj57lg3p8rn23dryl",
@@ -93873,15 +95209,15 @@
   "repo": "slime/slime",
   "unstable": {
    "version": [
-    20210105,
-    2148
+    20210214,
+    2243
    ],
    "deps": [
     "cl-lib",
     "macrostep"
    ],
-   "commit": "48bfe6cccfdf879cd7137b00eb2ca160665a92f8",
-   "sha256": "1b3kjxjx30lan77vgiskvh9g5cqz4j44xa221vnh9ccixqwqhhim"
+   "commit": "68c58c0194ff03cd147fcec99f0ee90ba9178875",
+   "sha256": "0lammq7116hm79nldxlghi978m7bldccfdc9vy1rlfjj4mhnrlq0"
   },
   "stable": {
    "version": [
@@ -93905,60 +95241,59 @@
   "repo": "anwyn/slime-company",
   "unstable": {
    "version": [
-    20200424,
-    1045
+    20210124,
+    1627
    ],
    "deps": [
     "company",
     "slime"
    ],
-   "commit": "cec203c45ebd678b05341d1cdbe420ad07a1b8e0",
-   "sha256": "0dwj6kv8laivhisd9jrzdn1lxynqqxmimvyz3z0zz6qf0ijsl0wm"
+   "commit": "f20ecc4104d4c35052696e7e760109fb02060e72",
+   "sha256": "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"
   },
   "stable": {
    "version": [
     1,
-    3
+    6
    ],
    "deps": [
     "company",
     "slime"
    ],
-   "commit": "cec203c45ebd678b05341d1cdbe420ad07a1b8e0",
-   "sha256": "0dwj6kv8laivhisd9jrzdn1lxynqqxmimvyz3z0zz6qf0ijsl0wm"
+   "commit": "f20ecc4104d4c35052696e7e760109fb02060e72",
+   "sha256": "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"
   }
  },
  {
   "ename": "slime-docker",
-  "commit": "15ec3f7208287161571c8fc3b29369ceabb44e5f",
-  "sha256": "13zkkrpww51ndsblpyz2msiwrjnaz6yrk61jbzrwp0r7a2v0djsa",
+  "commit": "19cafb22be7286f56391dc98b362fb2aa55a9a80",
+  "sha256": "1vrns4fys01chk2cq10wb8w559lc7899s9dhwysg6818nvqj9my1",
   "fetcher": "github",
-  "repo": "daewok/slime-docker",
+  "repo": "cl-docker-images/slime-docker",
   "unstable": {
    "version": [
-    20190430,
-    157
+    20210124,
+    2145
    ],
    "deps": [
-    "cl-lib",
     "docker-tramp",
     "slime"
    ],
-   "commit": "151cec4a11965cdc00d231900a50f2c9f455fce2",
-   "sha256": "1sp6qi2i1cl41ga9y6fwf7q855y0b59fcbxdiggdhigwd5zslzcv"
+   "commit": "903470fe3860402794a4f268c1efffd44a30f273",
+   "sha256": "089yskdbkr7k25sns5vms7f0hqdbpnjg3ih95nhia1nghxcqj482"
   },
   "stable": {
    "version": [
     0,
-    7
+    8,
+    2
    ],
    "deps": [
-    "cl-lib",
     "docker-tramp",
     "slime"
    ],
-   "commit": "1ba41c2d86540a84b47466b0b6957f8063f23aa8",
-   "sha256": "168s5xsf7l6s8x5hcmzmk5j9d8a3wpr4s3dlm697dg2n1717gl2z"
+   "commit": "903470fe3860402794a4f268c1efffd44a30f273",
+   "sha256": "089yskdbkr7k25sns5vms7f0hqdbpnjg3ih95nhia1nghxcqj482"
   }
  },
  {
@@ -94099,11 +95434,11 @@
   "repo": "joaotavora/sly",
   "unstable": {
    "version": [
-    20210114,
-    912
+    20210303,
+    1148
    ],
-   "commit": "eb67be9698794ba66a09f46b7cfffab742863a91",
-   "sha256": "11yclc8i6gpy26m1yj6bid6da22639zpil1qzj87m5gfvxiv4zg6"
+   "commit": "5966d68727898fa6130fb6bb02208f70aa8d5ce3",
+   "sha256": "00yk9g0gi4gsa99n2gsq41mkwgvmih52mngmk4g8ajzxsv0pbwq0"
   },
   "stable": {
    "version": [
@@ -94123,15 +95458,15 @@
   "repo": "mmgeorge/sly-asdf",
   "unstable": {
    "version": [
-    20200306,
-    433
+    20210308,
+    332
    ],
    "deps": [
     "popup",
     "sly"
    ],
-   "commit": "32ce14994e8faee9321605cec36d156b02996c46",
-   "sha256": "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"
+   "commit": "bcaeba9b73b582ae1c4fadc23c71ee7e38d9a64e",
+   "sha256": "09gs99244g45v4bkvl4a5wshjr24cvwd8dg2w7y6j6aw2aikczrh"
   },
   "stable": {
    "version": [
@@ -94369,11 +95704,11 @@
   "repo": "jojojames/smart-jump",
   "unstable": {
    "version": [
-    20210110,
-    214
+    20210304,
+    844
    ],
-   "commit": "947499023b7c31b99fc172e2a4c1a105ad9c8555",
-   "sha256": "1yyyh1507lr4dlp39k8slwfz0fdjh2hx5ypn5zx5hyjjncw7x2r7"
+   "commit": "3392eb35e3cde37e6f5f2a48dc0db15ca535143c",
+   "sha256": "14yhln54mnh7257q49r86zypg04jy5bf6ahvmm1cbv6n25npawk5"
   }
  },
  {
@@ -94607,15 +95942,15 @@
   "repo": "Fuco1/smartparens",
   "unstable": {
    "version": [
-    20201229,
-    1937
+    20210213,
+    1851
    ],
    "deps": [
     "cl-lib",
     "dash"
    ],
-   "commit": "63695c64233d215a92bf08e762f643cdb595bdd9",
-   "sha256": "0yx9xamrpjpn6qshcdzc43pj3avb0nq4q40nmid28vb4giab4927"
+   "commit": "fb1ce4b4013fe6f86dde9dd5bd5d4c032ab0d45b",
+   "sha256": "0wl3fg761ddigqfcbgprgn8d03qapbsh803qp36pq09mgi29s161"
   },
   "stable": {
    "version": [
@@ -95050,18 +96385,27 @@
   }
  },
  {
-  "ename": "snippet",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1yld7y1hsrqs0f0iq7zfwknil5zqv65npm67nh548hbyy3rhgd68",
+  "ename": "snitch",
+  "commit": "8d08307e483c328075bbf933b2ea0c03bffe8b7c",
+  "sha256": "1zck9r251jj3q6q1glxj20812yhkv630qnd2y7q1kkjgp68gby7g",
   "fetcher": "github",
-  "repo": "pkazmier/snippet.el",
+  "repo": "mrmekon/snitch-el",
   "unstable": {
    "version": [
-    20130210,
-    2315
+    20210202,
+    1730
+   ],
+   "commit": "3b3e7f1bf612c4624764d1ec4b1a96e4d2850b05",
+   "sha256": "00r36xjglp7d1gkxkqlymqjkd8pmr5g0bg468xq9s5hp7g5md4ig"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    0
    ],
-   "commit": "11d00dd803874b93836f2010b08bd2c97b0f3c63",
-   "sha256": "1nyrfbjrg74wrqlh8229rf7ym07k2a0wscjm0kbg3sam9ryc546y"
+   "commit": "14e91336fb04c23d7b23836642eef3f2edef03bf",
+   "sha256": "1l06biw2af8yqivhmpwb6dxnslvm0xw4wr1ckmjq3yn7zx542viw"
   }
  },
  {
@@ -95213,14 +96557,14 @@
   "repo": "hlissner/emacs-solaire-mode",
   "unstable": {
    "version": [
-    20201006,
-    22
+    20210309,
+    2115
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c697925f7e03819a4046a233f6ab31664aca9d6a",
-   "sha256": "1fwyranv159sgfsc07h7vjn7c2js95zk2hw06d1dr1ddnl5hgrvf"
+   "commit": "a8fe09d8f5a9cb541c59dcd75a136f1d2a06b8bd",
+   "sha256": "1fwjy5m66nz2ipshmr7dky8v4pdwynq54282anb0rfa34dim4mrh"
   },
   "stable": {
    "version": [
@@ -95243,14 +96587,14 @@
   "repo": "bbatsov/solarized-emacs",
   "unstable": {
    "version": [
-    20210112,
-    1050
+    20210202,
+    1730
    ],
    "deps": [
     "dash"
    ],
-   "commit": "93d124962106f4cec72e9c8ab8cb243c581d9d46",
-   "sha256": "11gsxakwmkymlmm8jjbkxi6ryhvfri06n2g8kh4s6abm15pnq6sh"
+   "commit": "4d4b004460271e310ca45606d24a60e95ca3151d",
+   "sha256": "1fjvi10asfz5qya91swma2k9w7a79kh7a3lik23gdqzxs0swmn4g"
   },
   "stable": {
    "version": [
@@ -95274,15 +96618,15 @@
   "repo": "ethereum/emacs-solidity",
   "unstable": {
    "version": [
-    20200113,
-    1721
+    20210122,
+    1746
    ],
    "deps": [
     "flycheck",
     "solidity-mode"
    ],
-   "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
-   "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
+   "commit": "b4fd719715be098921b6cbfb2ff9da31f3bd0d05",
+   "sha256": "0gsgj5485k7415wzq73xbj3ax9hh2l1j46ma5d0xkww3md3c3kca"
   },
   "stable": {
    "version": [
@@ -95309,8 +96653,8 @@
     20200529,
     1924
    ],
-   "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
-   "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
+   "commit": "b4fd719715be098921b6cbfb2ff9da31f3bd0d05",
+   "sha256": "0gsgj5485k7415wzq73xbj3ax9hh2l1j46ma5d0xkww3md3c3kca"
   },
   "stable": {
    "version": [
@@ -95428,20 +96772,20 @@
   "repo": "mssola/soria",
   "unstable": {
    "version": [
-    20200803,
-    1402
+    20210201,
+    1830
    ],
-   "commit": "d5274cc4a8e19ed0f1393a09192def951d025a11",
-   "sha256": "1zdcwccndgmn83xmlxqlx6azd03g7dxd2ldc3dj6yxbjasfx00x5"
+   "commit": "f765f193ccaf4ad438e1d9be842efd2f4394efa4",
+   "sha256": "1p6kzsci8hgccpjcy6swwa6yk741l6ay48rb35gmf03j04abszm0"
   },
   "stable": {
    "version": [
     0,
-    3,
-    3
+    4,
+    0
    ],
-   "commit": "d5274cc4a8e19ed0f1393a09192def951d025a11",
-   "sha256": "1zdcwccndgmn83xmlxqlx6azd03g7dxd2ldc3dj6yxbjasfx00x5"
+   "commit": "bca7a42db1245543d81373e67d71278a0e3135a2",
+   "sha256": "1i1hb5xg97frkhpmv608dlqs8wclwf78sq9q3sy9776m5zfdhcxl"
   }
  },
  {
@@ -95836,11 +97180,11 @@
   "repo": "nashamri/spacemacs-theme",
   "unstable": {
    "version": [
-    20200825,
-    1818
+    20210206,
+    1428
    ],
-   "commit": "1f5b03254de6bfa9645711f2b79781f5cca8d203",
-   "sha256": "04x8x557va2nsl1wginvaq9ha9wfk8l45dgs88sxm60jyrci802x"
+   "commit": "c8c468580048e2464f012d171b2101bfb208e33d",
+   "sha256": "1rbv04smfyhm5qm3ghn9vsl0sm4lv20gkpw2zdzrf0l3nkb7dx45"
   }
  },
  {
@@ -95917,8 +97261,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "62f198256453265af48bef3a0207e80143fbff1e",
-   "sha256": "0a49678yaq2vc04w4xp0i9lpb7bdf1fwhjkg0xnzssvnjcnk368k"
+   "commit": "e8c9345e2e2427282b3dc9cd1e297e3c76d34f7f",
+   "sha256": "1i799cq0dydq7jdhc1b2ridlsmmkk85286g9r6nj6kif3177l171"
   },
   "stable": {
    "version": [
@@ -95956,11 +97300,11 @@
   "repo": "condy0919/spdx.el",
   "unstable": {
    "version": [
-    20210109,
-    1842
+    20210306,
+    1600
    ],
-   "commit": "e451b29f2702c60b664ad1e3e3ae253cfb969fa0",
-   "sha256": "0am4da6j5mianjj6ib5hf87z5v2q3wc8xlmgmna4mi70rx4bkz3x"
+   "commit": "b9f49bab9551e8ca1232582acffdd0a90aaa35f3",
+   "sha256": "0k9dlkxns8yhv1yzfjlr5gkfc26ihhqjfsjchqg9fvfxqnd39pic"
   }
  },
  {
@@ -96087,11 +97431,11 @@
   "repo": "ideasman42/emacs-spell-fu",
   "unstable": {
    "version": [
-    20201006,
-    1441
+    20210324,
+    1207
    ],
-   "commit": "a7db58747131dca2eee0e0757c3d254d391ddd1c",
-   "sha256": "05f58nz2bhb5bzy06glpv7pjfqpalv5pyggm43zsh1kl2pxwzb9a"
+   "commit": "30c5eea9440915c2795670ecdbf836f3cb9dcc1b",
+   "sha256": "0h2gsq4ms1236nzardhd06b2090v21i0xyljri0lkpj0p3f6p986"
   }
  },
  {
@@ -96102,16 +97446,16 @@
   "repo": "naiquevin/sphinx-doc.el",
   "unstable": {
    "version": [
-    20160116,
-    1117
+    20210213,
+    1250
    ],
    "deps": [
     "cl-lib",
     "dash",
     "s"
    ],
-   "commit": "f39da2e6cae55d5d7c7ce887e69755b7529bcd67",
-   "sha256": "1wif9wf8hwxk0q09cdnrmyas7zjg8l5b8jd6sjxd40ypn6dmz2ch"
+   "commit": "1eda612a44ef027e5229895daa77db99a21b8801",
+   "sha256": "0q72i95yx3xa57jlgr7dik6prf20hi8bp8xf3f5c6ificv7i5378"
   },
   "stable": {
    "version": [
@@ -96514,22 +97858,25 @@
   "repo": "purcell/sqlformat",
   "unstable": {
    "version": [
-    20200327,
-    2329
+    20210305,
+    209
    ],
    "deps": [
     "reformatter"
    ],
-   "commit": "9e6351dc97a6f58f221d6e1baa7bab292309c437",
-   "sha256": "1r49c8ick1vk7zl4h0472z0p6j3d5b839al3s687acgqdymb24kk"
+   "commit": "0351dad6bec06a381484c0c95309d46a7a8acdb4",
+   "sha256": "0hra8lrg4fkqr6x6cq9mbqx8y7fkbccgzxmqfngy8cj2dbcvp9k9"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
-   "commit": "b70b05bf469a27c1a2940eeaa1a5c8cc93d805fd",
-   "sha256": "14n2yjmi4ls8rmpvvw6d7cz5f6dcg7laaljxnhwbagfd5j4sdfrm"
+   "deps": [
+    "reformatter"
+   ],
+   "commit": "0cdb882874ba0853f4f831a07a85b511258472b2",
+   "sha256": "07ka6fqcbvbvzsdmwris89cj3dpg3qcfhmww2h6qs69za3h7mify"
   }
  },
  {
@@ -96625,11 +97972,11 @@
   "repo": "srcery-colors/srcery-emacs",
   "unstable": {
    "version": [
-    20200813,
-    1430
+    20210201,
+    1444
    ],
-   "commit": "c10f71465a416050ee4b9633aeabaee823ff3ba9",
-   "sha256": "1a5bblc5sfd0akrvjs2hysjs7a9fz4p6y44l00nmk43yl7bh0678"
+   "commit": "760dc6cb854383ab087d9b924de7273deddefe6a",
+   "sha256": "15anfzsfgddrlskppk068dzlz4zkg7xyk9727a7hwg4845126q6w"
   },
   "stable": {
    "version": [
@@ -96672,11 +98019,11 @@
   "repo": "srfi-explorations/emacs-srfi",
   "unstable": {
    "version": [
-    20210113,
-    2052
+    20210325,
+    445
    ],
-   "commit": "1fe8720e2e1e8884eac512d28257d655306a9686",
-   "sha256": "1s99ynhkak2qpfy448yi1iwxss4zwz1p61279xv1771jx7aclcd3"
+   "commit": "633a0ff419438987f6271ff5a5da26307950a3cd",
+   "sha256": "070p4wyphhm7115afvq7lhxkb69c7l7fz3q5nkwbpjsdp5s8isns"
   },
   "stable": {
    "version": [
@@ -96789,11 +98136,11 @@
   "repo": "jhgorrell/ssh-config-mode-el",
   "unstable": {
    "version": [
-    20201223,
+    20210217,
     1051
    ],
-   "commit": "a236e04f2950bd9d7f7c79ad992d1f8b57df950d",
-   "sha256": "0d5vx8k18avnja6mlhzrsj3z5brs70fj3s7151zgjq5i12n6aqm2"
+   "commit": "820f60af17e71898303f4f3c2576f0619528a492",
+   "sha256": "1haypfhpbxsv2rm1wpskjdm0ddv34qvaiiyw8qhy1nn64q4b5xx0"
   }
  },
  {
@@ -96865,11 +98212,11 @@
   "repo": "stan-dev/stan-mode",
   "unstable": {
    "version": [
-    20200830,
-    1032
+    20210130,
+    1325
    ],
-   "commit": "2dd330604563d143031fc8ffd516266217aa1f9b",
-   "sha256": "1l49fqd4wh9bkdpb4mk5a1cbl5i3iwc3q690viakhpb4840jmlry"
+   "commit": "9bb858b9f1314dcf1a5df23e39f9af522098276b",
+   "sha256": "031418nkp9qwlxda8i3ankp3lq94sv8a8ijwrbcwb4w3ssr9j3ds"
   },
   "stable": {
    "version": [
@@ -96889,15 +98236,15 @@
   "repo": "stan-dev/stan-mode",
   "unstable": {
    "version": [
-    20200830,
-    1032
+    20210130,
+    1325
    ],
    "deps": [
     "stan-mode",
     "yasnippet"
    ],
-   "commit": "2dd330604563d143031fc8ffd516266217aa1f9b",
-   "sha256": "1l49fqd4wh9bkdpb4mk5a1cbl5i3iwc3q690viakhpb4840jmlry"
+   "commit": "9bb858b9f1314dcf1a5df23e39f9af522098276b",
+   "sha256": "031418nkp9qwlxda8i3ankp3lq94sv8a8ijwrbcwb4w3ssr9j3ds"
   },
   "stable": {
    "version": [
@@ -97049,14 +98396,14 @@
   "repo": "Kungsgeten/steam.el",
   "unstable": {
    "version": [
-    20190916,
-    627
+    20210307,
+    1756
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "f32951f4e0a4bc92813d0121d9df0257101b8992",
-   "sha256": "1fl4875992xxv0amcqj7b516f35k19h8fd7pij0by5b808k5ls6x"
+   "commit": "b0b79d9bd8f1f15c43ab60997f5a341a769651af",
+   "sha256": "144kkh1k09hfi7c8rn750m7p70jka4m0h8cakr16avkprrrpmxxc"
   }
  },
  {
@@ -97100,16 +98447,16 @@
     20200606,
     1308
    ],
-   "commit": "417b344e3c97beb2e50c2c919b0d01cb0d4ed9a5",
-   "sha256": "105va5nb5wgqkw25rdc2d591c6fcd9wa3dzsyvg3y83fcxhqgi7g"
+   "commit": "c0a2d92567d024c2136e9a25ce720fb0b565d31c",
+   "sha256": "192c1j33d6b1j2wdz6js70lql4ysl6d3vjnw3sqzcp22cgjlb2pp"
   },
   "stable": {
    "version": [
-    0,
-    23
+    1,
+    0
    ],
-   "commit": "e6dd7eff206a6515aefced2ad701beaf625d7b7d",
-   "sha256": "157vdhdjzxsf7077916ibn0jbsxw9d71m8mwm4kn0i0ip7sj9xdg"
+   "commit": "11aa5944459e464a96f41d934e23da5320c13333",
+   "sha256": "0nc388hi362rks9q60yvs2gbbf9v6qp031c0linv29wdqvavwva1"
   }
  },
  {
@@ -97443,11 +98790,11 @@
   "repo": "PythonNut/su.el",
   "unstable": {
    "version": [
-    20200820,
-    57
+    20210226,
+    42
    ],
-   "commit": "eadfacdbcb8d54d83f6f6cfe7990b492f7217453",
-   "sha256": "0xwkkzs4pl3wgjq7n43klkh814h3kzh0mwnka07dbb0gv1xmaigl"
+   "commit": "787f78989253f4568942a4cece5f135f005e135f",
+   "sha256": "1sr6lwjd2py0pncbx4qxa8wfxa3fnmfhxr944aid672hba2pdx7s"
   }
  },
  {
@@ -97550,6 +98897,24 @@
   }
  },
  {
+  "ename": "subsonic",
+  "commit": "2aae45d7195a93eab44fc5fec2285a5f9d8187de",
+  "sha256": "19v5qv6pf21f9nddzl3jka75k5x4c81i4ywvy2arqq2nz5avqvlf",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~amk/subsonic.el",
+  "unstable": {
+   "version": [
+    20210321,
+    1937
+   ],
+   "deps": [
+    "transient"
+   ],
+   "commit": "cb7c6c14f00367188a5565fed9c23a857f27a4d0",
+   "sha256": "1k69c0zhfjy90y7hvvlsppjvan5zrif4p48i4ih7wiy47giwicb4"
+  }
+ },
+ {
   "ename": "sudden-death",
   "commit": "3f20f389a2d7ddf49ca64d945b41584a7c120faf",
   "sha256": "1wrhb3d27j07i64hvjggyajm752w4mhrhq09lfvyhz6ykp1ly3fh",
@@ -97619,6 +98984,30 @@
   }
  },
  {
+  "ename": "sudo-utils",
+  "commit": "20960a5caad9e3f51160fa1786ba422f0e01dc99",
+  "sha256": "1jlzw4bl8mdr7yijsb93d32cqnn7rphbdsf9cnkzrlr7dkcrnwyg",
+  "fetcher": "github",
+  "repo": "alpha-catharsis/sudo-utils",
+  "unstable": {
+   "version": [
+    20210119,
+    1930
+   ],
+   "commit": "089f7833fa256f293284a6286bf9cb2b78eff40d",
+   "sha256": "03kks8sqw1j8ywzk3bvcb8i6v3px5zr05c4pnrwmls724m79sagd"
+  },
+  "stable": {
+   "version": [
+    3,
+    0,
+    1
+   ],
+   "commit": "089f7833fa256f293284a6286bf9cb2b78eff40d",
+   "sha256": "03kks8sqw1j8ywzk3bvcb8i6v3px5zr05c4pnrwmls724m79sagd"
+  }
+ },
+ {
   "ename": "sudoku",
   "commit": "f9861d5d4cf18466b17ac8e53f3874df5312d3f3",
   "sha256": "14nbidjnsm9lwknmqgfr721b484z5156j723kr1wbfv70j8h9kys",
@@ -97837,11 +99226,11 @@
   "repo": "leafOfTree/svelte-mode",
   "unstable": {
    "version": [
-    20210111,
-    1314
+    20210222,
+    1037
    ],
-   "commit": "266db1fc882efe17bba7033d69ec663ab4cca5f9",
-   "sha256": "0v1brx89qswf9803spxi9rb02mfppg1fhx7azd9q7wvh4r1n98v3"
+   "commit": "25d0018036f44ff9bd685a1c9a76d8ba57c1024d",
+   "sha256": "070i3k5djw2m1763ihqngpxfmdxq7gs058fvjaaf62dpkqy9vv3a"
   }
  },
  {
@@ -97882,11 +99271,11 @@
   "repo": "rougier/svg-tag-mode",
   "unstable": {
    "version": [
-    20201129,
-    608
+    20210301,
+    2205
    ],
-   "commit": "87489d28450559078aa15b4a435143a297508e48",
-   "sha256": "0gyhmv60dx0zxx4bmhzsd7q5vfnkpfwlj6539bn272fwcr7zncp8"
+   "commit": "95b5404997d7194b4946df0a475fd93203a36cb9",
+   "sha256": "06j19jx3bkdsds5rjqdvaqxfq42gsn8yanqd6jrd8rysncds8an0"
   }
  },
  {
@@ -98144,26 +99533,26 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20201208,
-    1419
+    20210310,
+    1230
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "cbce9ce71429c98c67bd76ef15d049ecced042f7",
-   "sha256": "08lgvpvkhp2i9q73bnr2v17w864rwp6wjnrl3b7qg06dacfs2rvl"
+   "commit": "47b496544e238041bca5e3c9ca55848648344312",
+   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
   },
   "stable": {
    "version": [
     0,
     13,
-    0
+    4
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
-   "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+   "commit": "8cf3f1821cbd1c266296bbd5e59582ae6b8b90a6",
+   "sha256": "1k8ja0cjdb13xi5b05rab3r0z53qkhjwjagxzw3fpzlyd7rxzi14"
   }
  },
  {
@@ -98411,13 +99800,13 @@
   "repo": "wolray/symbol-overlay",
   "unstable": {
    "version": [
-    20200828,
-    425
+    20210118,
+    807
    ],
    "deps": [
     "seq"
    ],
-   "commit": "39f772b531117edba596e7a1210b3dbb87d56adb",
+   "commit": "5bcd6d7e3f3b6501ccec3e6c378f33f7e7488c99",
    "sha256": "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"
   },
   "stable": {
@@ -98466,11 +99855,10 @@
   "repo": "countvajhula/symex.el",
   "unstable": {
    "version": [
-    20210113,
-    1943
+    20210327,
+    20
    ],
    "deps": [
-    "dash-functional",
     "evil",
     "evil-cleverparens",
     "evil-surround",
@@ -98478,20 +99866,17 @@
     "lispy",
     "paredit",
     "seq",
-    "smartparens",
     "undo-tree"
    ],
-   "commit": "c535794b539627b26b7e73481e41f3c870d4b33e",
-   "sha256": "0pyyjbwcacql4l45fi6jxxvrm4alz9rm8pp6abikh5di98yidjm6"
+   "commit": "a3d6d74089e0fa0031cdef5114393d2f569d68d9",
+   "sha256": "1qfn95mbq92p31g9yw68sf8854v3jk2251xy6asxqv8n9ckkhji9"
   },
   "stable": {
    "version": [
-    0,
-    8,
-    1
+    1,
+    0
    ],
    "deps": [
-    "dash-functional",
     "evil",
     "evil-cleverparens",
     "evil-surround",
@@ -98502,8 +99887,8 @@
     "smartparens",
     "undo-tree"
    ],
-   "commit": "2c9d94cf44ffc1337729db13f7ea3e3e8c470dbd",
-   "sha256": "02848n7b0gswdv01mk85xz3khkf24c4y1c0rsw09arnjjkhjgzwh"
+   "commit": "d37532a9dcff8ec5a2fdc54f27b517890f972bfb",
+   "sha256": "19ffgdvmnys2hby1iwb85kwr74iadnp8mfd0816jlaafjsga7inf"
   }
  },
  {
@@ -98795,11 +100180,11 @@
   "repo": "holomorph/systemd-mode",
   "unstable": {
    "version": [
-    20191219,
-    2304
+    20210209,
+    2052
    ],
-   "commit": "51c148e09a129ddf33d95276aa0e89d4ef6f8dd2",
-   "sha256": "0mikrj91qip5f0sj62c4gamvw7h6wc0yz8cfyzj9h3gxrllkp87k"
+   "commit": "b6ae63a236605b1c5e1069f7d3afe06ae32a7bae",
+   "sha256": "0q1f5mnx6npr6c94x93lyza87kxjy08v7x4by13wp23fxaqxgzaf"
   },
   "stable": {
    "version": [
@@ -98855,6 +100240,54 @@
   }
  },
  {
+  "ename": "tab-bar-echo-area",
+  "commit": "82df49c34664a5078d92e6015abc6f965d34791e",
+  "sha256": "0y91iyllpy4hf2y9saw4p3rj1q34fziw40f64glcsbnv37jkifp3",
+  "fetcher": "github",
+  "repo": "fritzgrabo/tab-bar-echo-area",
+  "unstable": {
+   "version": [
+    20210315,
+    1609
+   ],
+   "commit": "d2ff6b1acb553bf1546e730640397b9e33ca5279",
+   "sha256": "1agjb68bjfjzgacrip2mjwzfdbvj3xn8cs3f6q5kdjg5v7lg9c9h"
+  }
+ },
+ {
+  "ename": "tab-bar-groups",
+  "commit": "7c3efd2b2a7030a45244adf07ec9014c6e4540e9",
+  "sha256": "0c1a26ynjbf6dp2g7lx6iwnrqhri93k57fhfb2dvkb7ya58df7v3",
+  "fetcher": "github",
+  "repo": "fritzgrabo/tab-bar-groups",
+  "unstable": {
+   "version": [
+    20210321,
+    2129
+   ],
+   "deps": [
+    "s"
+   ],
+   "commit": "b83315c9a63ba2f6bbeaaa449a3b78b84a87ec1c",
+   "sha256": "03pc85g5f5ys0s45ccg3z7dni4cxngs3532xf9ng94a421yhxmkr"
+  }
+ },
+ {
+  "ename": "tab-bar-lost-commands",
+  "commit": "6f2d6b740ab3a35d111381f3358b9f6b52c3df7c",
+  "sha256": "149rf304ylksdv5l23gz4zkx42cv5ym286j2k0qbj51gfg73kks4",
+  "fetcher": "github",
+  "repo": "fritzgrabo/tab-bar-lost-commands",
+  "unstable": {
+   "version": [
+    20210215,
+    1412
+   ],
+   "commit": "e587cdb5d6d2c8d509c43db4b5bb285415916c4e",
+   "sha256": "1bnpcfh0lzjz4f1lbj2jqz7ly6d3bv8jhi4lxr5pj3g21437xf4y"
+  }
+ },
+ {
   "ename": "tab-group",
   "commit": "ad758d865bde8c97d27c0d57cabe1606f8b36974",
   "sha256": "1i5lxpf3wmqnqj9mzgcn4gp1gjxp737awrzl1dml5wnarbbj4fs9",
@@ -99107,11 +100540,11 @@
   "repo": "saf-dmitry/taskpaper-mode",
   "unstable": {
    "version": [
-    20210104,
-    1044
+    20210310,
+    1632
    ],
-   "commit": "fe4030a3b44a283dc3e1062d40f2bb7ab08db542",
-   "sha256": "0y9c40dw9fcrjf9pdqiva12fha6d3yww6yip1g7dadi648hzr0ip"
+   "commit": "d6edb345f31a13918d603d44b90a4ce30b34632b",
+   "sha256": "0jx095yjpsh28r6a23w2fxqv0rysbwz49c22vri2s8hzw011m55p"
   },
   "stable": {
    "version": [
@@ -99298,28 +100731,28 @@
   "repo": "zevlg/telega.el",
   "unstable": {
    "version": [
-    20210114,
-    1122
+    20210326,
+    1352
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "d72bd42f57c0a09c2e91ecb69516b2eaab1991bd",
-   "sha256": "05czr9wwvqbhrvvslv2nsgip78ayfx4p6lfbdxnq44qjmfvamx0y"
+   "commit": "c047b20cf3c367d06fba097e4c8a58967524d7ab",
+   "sha256": "0h29jscvmyw4s11wkpy538v71c87badz6ac8whs6nk3g04scsv8n"
   },
   "stable": {
    "version": [
     0,
     7,
-    9
+    22
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "f87858583ca7c0e4328f3373aa57d715fd25bbb7",
-   "sha256": "14954lpkd22p3q66lykbl0fvapdly9cll313jrag5qzbcccrxq5j"
+   "commit": "3ed57544faf0fdd17dd8762126466b15dc471f8f",
+   "sha256": "1frljw1gipsr9l6cpb1skwi5b566x9yx3dhcc7bxfq11inh7bc74"
   }
  },
  {
@@ -99353,16 +100786,16 @@
   "repo": "dbordak/telephone-line",
   "unstable": {
    "version": [
-    20200516,
-    2102
+    20210322,
+    2248
    ],
    "deps": [
     "cl-generic",
     "cl-lib",
     "seq"
    ],
-   "commit": "110c578ccf6c0421cfd9eec7aa3e960b6fd49fb4",
-   "sha256": "157df4h9hr5mmwp0q5w0rdv7ndrjk3014r5xwwblszvx33s70gbk"
+   "commit": "aebac4658e553902369a3bf465bacc1f07a01106",
+   "sha256": "1kbxhrlg3pddg10zb9h3ky72f6l67nb5cziv17i3d0shx2z0sw17"
   },
   "stable": {
    "version": [
@@ -99386,11 +100819,11 @@
   "repo": "lassik/emacs-teletext",
   "unstable": {
    "version": [
-    20201019,
-    700
+    20210312,
+    1951
    ],
-   "commit": "e674ff636e9d15cade171ef432aaeead8109dc48",
-   "sha256": "0ws2b1kmhrbnhmy2ld7kjkximqpbb8cdcpvz33638ylcvb46vd1x"
+   "commit": "7ec1118b9e4a8663fe9ec933e9e13f7c2d57e986",
+   "sha256": "1ffnxb088kvr3g0kjjwr6hdxd20pmlbi52bhpla3phmyzl8vz38k"
   }
  },
  {
@@ -99437,20 +100870,20 @@
   "repo": "clarete/templatel",
   "unstable": {
    "version": [
-    20210111,
-    521
+    20210319,
+    2222
    ],
-   "commit": "6dd630e5786e500441b5acbfe5868d7172a2dbcf",
-   "sha256": "1kqxmainf31d1s2qbwanwzp9dij0i6zj9pp3833clnybf4l90cr6"
+   "commit": "ef93f4190c785166b49a310bf2d8695d3227ab40",
+   "sha256": "13hwa7v5yyji98g9rz2m4ql89nx2wi0hhhikm9y552l25qayrgxz"
   },
   "stable": {
    "version": [
     0,
     1,
-    3
+    5
    ],
-   "commit": "8c4ba0d5db5280a78d94bb1cc3dbd2f1abd37e9e",
-   "sha256": "177m72c2gdmp2jq55z1sgff8izpv39n1s7qsin2bfl4p9ccwywmr"
+   "commit": "971153aa43addf88bfe0922bcac19cb0edd3f86d",
+   "sha256": "0ldb01sxzrvchjy160karvmksinicw3d14jazriy84dxks8i6w8a"
   }
  },
  {
@@ -99897,11 +101330,11 @@
   "repo": "TxGVNN/terraform-doc",
   "unstable": {
    "version": [
-    20200803,
-    1545
+    20210322,
+    837
    ],
-   "commit": "d609290021ea7f2d10caadffc9131663838f8ad4",
-   "sha256": "1gvydmi37d7jxibn7nfg1rhb6phfn3kgrlmq250g7321g15j1q3v"
+   "commit": "77181c75cbde5954542688659cd4f2352ed29fbe",
+   "sha256": "1bcwja7hm11hxd1nmf1z93hkzcvkkpxavvbivg6j336ygzr1r82g"
   },
   "stable": {
    "version": [
@@ -100200,6 +101633,21 @@
   }
  },
  {
+  "ename": "theme-anchor",
+  "commit": "74f79dc5db5246a2f70e4d4ad76601be8b5c79d8",
+  "sha256": "15819kkxvhk03yfzd0qp78d5ayc33cm064gy7fdpi0aq28nbw6ba",
+  "fetcher": "github",
+  "repo": "GongYiLiao/theme-anchor",
+  "unstable": {
+   "version": [
+    20210327,
+    340
+   ],
+   "commit": "a6f5986a9569a4647fd4e3b6533b50efaf5aa1fd",
+   "sha256": "10fg2si0s5lavk8ljnycb0942fkl3dpkny5n6arir3jd17ypp3sv"
+  }
+ },
+ {
   "ename": "theme-changer",
   "commit": "d08b24a2aec1012751054c68f7d55bac1bd1fd11",
   "sha256": "1qbmsghkl5gs728q0gaalc7p8q7nzv3l045jc0jdxxnb7na3gc5w",
@@ -100374,18 +101822,18 @@
     20200212,
     1903
    ],
-   "commit": "442466ab9411594350d4f9ef012f9892d4034773",
-   "sha256": "0srj6fnk7damyh6snwnvl599iad4ys7dw944vp0d4wpay0sxqvcl"
+   "commit": "3b42e95dc9167a28554991af0d172543475f2003",
+   "sha256": "1gw54kpzqdldivr4kyw08n12mpqkg303wxhc2wqjnn95dhmxql07"
   },
   "stable": {
    "version": [
     2021,
-    1,
-    11,
+    3,
+    15,
     0
    ],
-   "commit": "c72b2fa29856d45c91f5ed6c98fca6d723246977",
-   "sha256": "1y2hjw2a0dq6vzyfg7hcn09dbw00rfyblzibf5i7s08jbvp2zzin"
+   "commit": "6d68811e7ee75f8e0b450b9b1778bfad2c44c715",
+   "sha256": "16yixl9qq6zh47zjnad9rv2vbjq936ms212j0wfdax7qhg094af8"
   }
  },
  {
@@ -100435,26 +101883,26 @@
   "repo": "tidalcycles/Tidal",
   "unstable": {
    "version": [
-    20210107,
-    1831
+    20210211,
+    1531
    ],
    "deps": [
     "haskell-mode"
    ],
-   "commit": "0a3a5f9d0aad689ad87649647944d6dca6c16bb5",
-   "sha256": "1lrwjxx0a3lalwbpndf751b1wn2yv3j2x58xa5kby63dxnxf77ph"
+   "commit": "f26eb3062cca9369b2a05bd208633e8b4f91c28e",
+   "sha256": "0vx4nfpcan9c6qi9x0z1a03sm33ifrclnvd0rs43fjb6s05xhwwq"
   },
   "stable": {
    "version": [
     1,
-    6,
-    1
+    7,
+    2
    ],
    "deps": [
     "haskell-mode"
    ],
-   "commit": "7377b6c8ddc23d197018af203456063864df1457",
-   "sha256": "0vj55135h0mw093b9rlnq8hka9sj4kmhnv8xj46z2kcqj0qcq7q8"
+   "commit": "223b0f4388dce62c82eb2fb86cf1351d42aef198",
+   "sha256": "0k93i9smhw5bws2xiybha15g26mwyq0zj6xzxccwh0bfpl76xzqq"
   }
  },
  {
@@ -100465,8 +101913,8 @@
   "repo": "ananthakumaran/tide",
   "unstable": {
    "version": [
-    20210105,
-    812
+    20210323,
+    1647
    ],
    "deps": [
     "cl-lib",
@@ -100475,8 +101923,8 @@
     "s",
     "typescript-mode"
    ],
-   "commit": "e622d4d879d8b1de2517962b243146ec18b6cfff",
-   "sha256": "1963yf9nzx4hgp16c9vyn3drx9ypyni4xrrz1kylkb3mcm10y97v"
+   "commit": "2a3ac4f38472d66e2d8a6bbe5dadb52bc008acbd",
+   "sha256": "1fj2fghiycnzds2zxfxgj1d9mdzsvs9rvl9bwy2f1vwawqk1m48w"
   },
   "stable": {
    "version": [
@@ -100792,8 +102240,8 @@
    "deps": [
     "request"
    ],
-   "commit": "269bda7001613c0b70c0662d2a74d200765c1dcb",
-   "sha256": "0z8hkp15sdb0x0g67v6xa8ds28awz4i2vcbryj5zfpl15d0fiqc2"
+   "commit": "d59405bd72f3379417b9e73f06e8848b43cb021d",
+   "sha256": "19yb4cxcaif73yvf62d4891l5rvp8ynhxl0f2wc9lvssg0lpx5y0"
   }
  },
  {
@@ -100853,11 +102301,11 @@
   "repo": "snosov1/toc-org",
   "unstable": {
    "version": [
-    20201105,
-    826
+    20210323,
+    1256
    ],
-   "commit": "aef220c266f53d36055f74f4a243c6483c563d2a",
-   "sha256": "1gknxlypzgmyi30mdii94018mk5z28xqbla4hb5p1ihhl7p32r1p"
+   "commit": "c4c61c5a382f94a3a4537e254243006dec2dcca4",
+   "sha256": "00a2al7ghrlabf65kfj1mk30p2pl37h6ppwlgghbgiy7rwlzkdbm"
   },
   "stable": {
    "version": [
@@ -100951,8 +102399,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "c6ccdc83e85719a8bb07ef715cf5fd06866a479c",
-   "sha256": "0z8rykhhhwccy0zg6v3gnghfiawqw3afv4pvxr1hrympiyhyvhvp"
+   "commit": "74e1fcbeca25734235afec9c6a4d0cf73736b62c",
+   "sha256": "0yrcsr4360v222klahbccfq3vb4kp5xdsibydwircv36xhxplzq3"
   }
  },
  {
@@ -101245,14 +102693,14 @@
   "repo": "trueroad/tr-emacs-ime-module",
   "unstable": {
    "version": [
-    20201128,
-    928
+    20210202,
+    1057
    ],
    "deps": [
     "w32-ime"
    ],
-   "commit": "9406b498e6a256a5928f03cd089fdd2823b03876",
-   "sha256": "0q4f7c1nrvz58ycbjgfih1m3xyb0x4wn405yz4gm1172j0phcmlj"
+   "commit": "8fd8ae64f71d1d69d7e1bcc47a6f65aa7f8e6993",
+   "sha256": "020qvjszwkx5klgh865vs5z17ym651i4zzq7c4sz6qwv361ygfm8"
   },
   "stable": {
    "version": [
@@ -101320,8 +102768,8 @@
     20201101,
     1045
    ],
-   "commit": "265f36c1e6c8db598742778dc64f9799896f5dc1",
-   "sha256": "0vf76rrgkpybi67n14g6gn1a7by7b90gxa8rz2m50xl3vdphnibk"
+   "commit": "e67e2d1149ebf3e79cd2162e78802af3ed5f82da",
+   "sha256": "0jrpa8kndq2v69nr9jva970q0n3662x2g0chg89nd2d3gbv693mw"
   },
   "stable": {
    "version": [
@@ -101424,20 +102872,20 @@
   "repo": "magit/transient",
   "unstable": {
    "version": [
-    20210103,
-    1546
+    20210315,
+    1902
    ],
-   "commit": "7811dcff825210c17bd15525fb6a98854501af99",
-   "sha256": "1nwpwviica8fv8q8pfgx0r4888giq48x0phgl2mkvbz8rr6nyn50"
+   "commit": "cc16a5eaa73617a281b0bbf71b24432c38994e30",
+   "sha256": "15ah0h7i96wn4w5321gydr6pxahb8mc8dk58b9paqv06klp5q2cd"
   },
   "stable": {
    "version": [
     0,
-    2,
+    3,
     0
    ],
-   "commit": "a269614c69ad8b2703e6e5093d0017d6afad6cca",
-   "sha256": "0w50sh55c04gacx2pp19rvi0fwj9h19c9gzd8dpa82zjiidfxckr"
+   "commit": "9ca983bab26d1a8e189a8c44471d9575284b268d",
+   "sha256": "0g694ydmb9zjn99hxgfjd3m73kpmnkbrgqhr73b4crbxza5sl29c"
   }
  },
  {
@@ -101485,14 +102933,14 @@
   "repo": "holomorph/transmission",
   "unstable": {
    "version": [
-    20210106,
-    2057
+    20210218,
+    2015
    ],
    "deps": [
     "let-alist"
    ],
-   "commit": "7cf0d739a8a7834d6c3896b62122a0fc6953d371",
-   "sha256": "1gy4fmjpymabs4z5k3j07di6hqpx6w592w4qvq1iccapy1kqxbj1"
+   "commit": "b5c1d391b4be469a07536e901e54a8680387025f",
+   "sha256": "1z3gzax6i9cwipmi64hg3h98haimlb0xsz4zm1ggqwwq1zd5csvp"
   },
   "stable": {
    "version": [
@@ -101631,6 +103079,24 @@
   }
  },
  {
+  "ename": "tray",
+  "commit": "26905a583fa78d1cf23e34ed983bbc132f5d71a4",
+  "sha256": "1c5rjyi7y5bni8mviafyfiwzrd6af3s82n87298d4356sjrggf2b",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~tarsius/tray",
+  "unstable": {
+   "version": [
+    20210214,
+    1119
+   ],
+   "deps": [
+    "transient"
+   ],
+   "commit": "e2b169daae9d1d6f7e9fc32365247027fb4e87ba",
+   "sha256": "1wrip00q6lbpllhaz0c7llnm774dq2mizr39ynfssvsdci38z1lm"
+  }
+ },
+ {
   "ename": "tree-mode",
   "commit": "84f836338818946a6bb31d35d6ae959571128ed5",
   "sha256": "1b15xgh96j4qas1kh4ghczcn7hb1ri86wnjgn9wz2d6bw3c6077b",
@@ -101653,26 +103119,26 @@
   "repo": "ubolonton/emacs-tree-sitter",
   "unstable": {
    "version": [
-    20201229,
-    1403
+    20210320,
+    1052
    ],
    "deps": [
     "tsc"
    ],
-   "commit": "e7f2f625c1b9a2dce4f6b16a5affbb4f57337ae0",
-   "sha256": "0175mr8wqkrv83lyx7q9vbb6j90abqfbd3h1qc1kqb80p03l5vcr"
+   "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
+   "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
   },
   "stable": {
    "version": [
     0,
-    13,
-    0
+    15,
+    1
    ],
    "deps": [
     "tsc"
    ],
-   "commit": "a3aef9113365032d55fedbbe08ab7b04f5268d14",
-   "sha256": "1n8mxd7fhs2brblrfr5892j5xqgh247d8ngnkhwq6acn8hfxn7qf"
+   "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
+   "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
   }
  },
  {
@@ -101683,45 +103149,57 @@
   "url": "https://codeberg.org/FelipeLema/tree-sitter-indent.el.git",
   "unstable": {
    "version": [
-    20201231,
-    1842
+    20210322,
+    2033
    ],
    "deps": [
     "seq",
     "tree-sitter"
    ],
-   "commit": "a11aa84a768cff2d40db7ef0c6029742b7ce46a1",
-   "sha256": "1zxzmqdyw681vzxwhs7bi4xylqy99v0jajsv03mppsslxl4l2fwm"
+   "commit": "18d263720c5a8f7fde0db368c7c36ea70437fc0b",
+   "sha256": "0iwi44309837hx0sl8py175ayn7haannp1sz2d0jk7binka7n4md"
+  },
+  "stable": {
+   "version": [
+    0,
+    3
+   ],
+   "deps": [
+    "seq",
+    "tree-sitter"
+   ],
+   "commit": "831a48571ccf14b8a8c607504a6e8e9263ff6dd4",
+   "sha256": "1dfmlmmf13qzzfpmpc6lgwjhz8hnz5ys2fw4w3rrz6swfaa2vr53"
   }
  },
  {
   "ename": "tree-sitter-langs",
-  "commit": "18f57da9ff7c07ce05c9dbd23eba87f2f34e17f3",
-  "sha256": "147p5hmpys4qhg5ymsmgbc3wx3x2jjw625waprfph7sr6h2cfrps",
+  "commit": "4029e21f74841db0c82f4a343a3b51b09cae2f25",
+  "sha256": "0jygxdlh94blfn5gxn949ic2v2x49cvl0rfzmvig3igyfwmm33sp",
   "fetcher": "github",
-  "repo": "ubolonton/emacs-tree-sitter",
+  "repo": "ubolonton/tree-sitter-langs",
   "unstable": {
    "version": [
-    20210113,
-    1755
+    20210314,
+    1704
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "e7f2f625c1b9a2dce4f6b16a5affbb4f57337ae0",
-   "sha256": "0175mr8wqkrv83lyx7q9vbb6j90abqfbd3h1qc1kqb80p03l5vcr"
+   "commit": "5d362ce98dcf656d7a55fcad6ae21c0a2caca861",
+   "sha256": "11nfyyzyz9x4w4l4hpz0y27awknlwx3kn9dwvkzdn174jk2kxp9a"
   },
   "stable": {
    "version": [
     0,
-    13,
+    10,
     0
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "a3aef9113365032d55fedbbe08ab7b04f5268d14",
-   "sha256": "1n8mxd7fhs2brblrfr5892j5xqgh247d8ngnkhwq6acn8hfxn7qf"
+   "commit": "5d362ce98dcf656d7a55fcad6ae21c0a2caca861",
+   "sha256": "11nfyyzyz9x4w4l4hpz0y27awknlwx3kn9dwvkzdn174jk2kxp9a"
   }
  },
  {
@@ -101768,22 +103246,21 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20210110,
-    2030
+    20210324,
+    2101
    ],
    "deps": [
     "ace-window",
     "cfrs",
     "cl-lib",
     "dash",
-    "f",
     "ht",
     "hydra",
     "pfuture",
     "s"
    ],
-   "commit": "16d757fc697a73cbf7920caf2f598e839e7e0e56",
-   "sha256": "036chafmgx0zdqa00yb5y0y6lq6mfimlvwhzkdy1n982jgqvk12f"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -101812,15 +103289,15 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20210107,
-    1251
+    20210324,
+    2101
    ],
    "deps": [
     "all-the-icons",
     "treemacs"
    ],
-   "commit": "16d757fc697a73cbf7920caf2f598e839e7e0e56",
-   "sha256": "036chafmgx0zdqa00yb5y0y6lq6mfimlvwhzkdy1n982jgqvk12f"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   }
  },
  {
@@ -101838,8 +103315,8 @@
     "evil",
     "treemacs"
    ],
-   "commit": "16d757fc697a73cbf7920caf2f598e839e7e0e56",
-   "sha256": "036chafmgx0zdqa00yb5y0y6lq6mfimlvwhzkdy1n982jgqvk12f"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -101868,8 +103345,8 @@
    "deps": [
     "treemacs"
    ],
-   "commit": "16d757fc697a73cbf7920caf2f598e839e7e0e56",
-   "sha256": "036chafmgx0zdqa00yb5y0y6lq6mfimlvwhzkdy1n982jgqvk12f"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -101900,8 +103377,8 @@
     "pfuture",
     "treemacs"
    ],
-   "commit": "16d757fc697a73cbf7920caf2f598e839e7e0e56",
-   "sha256": "036chafmgx0zdqa00yb5y0y6lq6mfimlvwhzkdy1n982jgqvk12f"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -101933,8 +103410,8 @@
     "persp-mode",
     "treemacs"
    ],
-   "commit": "16d757fc697a73cbf7920caf2f598e839e7e0e56",
-   "sha256": "036chafmgx0zdqa00yb5y0y6lq6mfimlvwhzkdy1n982jgqvk12f"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -101958,16 +103435,16 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20210114,
-    2135
+    20210116,
+    1155
    ],
    "deps": [
     "dash",
     "perspective",
     "treemacs"
    ],
-   "commit": "16d757fc697a73cbf7920caf2f598e839e7e0e56",
-   "sha256": "036chafmgx0zdqa00yb5y0y6lq6mfimlvwhzkdy1n982jgqvk12f"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   }
  },
  {
@@ -101985,8 +103462,8 @@
     "projectile",
     "treemacs"
    ],
-   "commit": "16d757fc697a73cbf7920caf2f598e839e7e0e56",
-   "sha256": "036chafmgx0zdqa00yb5y0y6lq6mfimlvwhzkdy1n982jgqvk12f"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -102092,11 +103569,11 @@
   "repo": "ianpan870102/tron-legacy-emacs-theme",
   "unstable": {
    "version": [
-    20200601,
-    533
+    20210315,
+    712
    ],
-   "commit": "af17842821400a6fd466bb2769d13606e98550c0",
-   "sha256": "19pabaiza0lrvqa8yi0p83rffm9g44n6789m395iayfcxq49lylq"
+   "commit": "4d543fbb9cb2098af1be0f5b10e1e4cd5245a9d0",
+   "sha256": "0fyprvi4s331r6a54xa4dljw0k330kiyhzcfnnjhbsqxc86264pz"
   },
   "stable": {
    "version": [
@@ -102240,20 +103717,20 @@
   "repo": "ubolonton/emacs-tree-sitter",
   "unstable": {
    "version": [
-    20201229,
-    1403
+    20210320,
+    1052
    ],
-   "commit": "e7f2f625c1b9a2dce4f6b16a5affbb4f57337ae0",
-   "sha256": "0175mr8wqkrv83lyx7q9vbb6j90abqfbd3h1qc1kqb80p03l5vcr"
+   "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
+   "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
   },
   "stable": {
    "version": [
     0,
-    13,
-    0
+    15,
+    1
    ],
-   "commit": "a3aef9113365032d55fedbbe08ab7b04f5268d14",
-   "sha256": "1n8mxd7fhs2brblrfr5892j5xqgh247d8ngnkhwq6acn8hfxn7qf"
+   "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
+   "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
   }
  },
  {
@@ -102323,14 +103800,14 @@
   "repo": "ocaml/tuareg",
   "unstable": {
    "version": [
-    20200518,
-    1820
+    20210320,
+    1929
    ],
    "deps": [
     "caml"
    ],
-   "commit": "ccde45bbc292123ec20617f1af7f7e19f7481545",
-   "sha256": "1yxv4bnqarilnpg5j7wywall8170hwvm0q4xx06yqjgcn8pq1lac"
+   "commit": "37a673020152ae0dbcaa250118b155d84e448f68",
+   "sha256": "0b9bnfwcnxkwjrdb4vm7y8wznqz4z990pv1s473gs97l7p04b1j9"
   },
   "stable": {
    "version": [
@@ -102622,15 +104099,15 @@
   "repo": "mrkkrp/typit",
   "unstable": {
    "version": [
-    20200217,
-    2059
+    20210318,
+    1747
    ],
    "deps": [
     "f",
     "mmt"
    ],
-   "commit": "f567867a0a519e17ad3552837b48d3d45fb73aa5",
-   "sha256": "0a5xds0mhfnq6kyc13s385vf4x4cqqpk2jiw1in7qg382fl8w2p0"
+   "commit": "fa125bf43757737fbcf91958b76c38b440d54b4c",
+   "sha256": "1l0qb8gjgsmjjdvxlma7g6fn2z6rj246p2kczrikq8ajg1xh61sr"
   },
   "stable": {
    "version": [
@@ -102881,28 +104358,28 @@
   "repo": "undercover-el/undercover.el",
   "unstable": {
    "version": [
-    20200830,
-    1638
+    20210123,
+    2157
    ],
    "deps": [
     "dash",
     "shut-up"
    ],
-   "commit": "a73c50aedbca0416d0e4d4fbeee27131bdd117aa",
-   "sha256": "0jkbwj8qb10nsl7imcnjlhrp1c9skw088cirrvn7380hlq07w346"
+   "commit": "c36a7366aa080558125fa651ed6a28d5df735b37",
+   "sha256": "0qji4738q0yx2n0xrpk12q2akx8rgsvpfgnnfxrnk8xiywjfrqwz"
   },
   "stable": {
    "version": [
     0,
-    7,
+    8,
     0
    ],
    "deps": [
     "dash",
     "shut-up"
    ],
-   "commit": "9515b247649d05219bf96b1843eed7c4d02a332e",
-   "sha256": "1dh4cpn1l1shchr0gg6jyld1qbjn3fy12s43pksfww4sm4rjn9rn"
+   "commit": "0bc3583065e49647db47d8a595fec13cb517d12f",
+   "sha256": "19d3373fy635vbfwr1yhxirwqn68qzny9byv74smxws4ly04mr02"
   }
  },
  {
@@ -102987,8 +104464,8 @@
     20200701,
     1435
    ],
-   "commit": "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca",
-   "sha256": "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"
+   "commit": "f4db4c9b9875134df6f5279281099361ae11c2e9",
+   "sha256": "0s88mz3x9iwz4hj1n4l4nmya473hcv8wsps8dyx4mmgzgpdb1lvf"
   }
  },
  {
@@ -103002,8 +104479,8 @@
     20201218,
     400
    ],
-   "commit": "702210384a0c68f04aabc23e08ebd4d6f43ea2c7",
-   "sha256": "0brd92jln528j7hh8gyv5wz451cfpayvkz9fic7b0wisnwgvq26b"
+   "commit": "a0389147365c10c974ad68b797b185affb935fe3",
+   "sha256": "0qdls5h0ryh93ziwd5gibhknz8n9v66fyp55iwjk8zblgahnm6ym"
   }
  },
  {
@@ -103014,11 +104491,11 @@
   "repo": "jackkamm/undo-propose-el",
   "unstable": {
    "version": [
-    20200204,
-    1612
+    20210207,
+    45
    ],
-   "commit": "5a9eb34ed945a4d62362528cc7557b9c4e81a12b",
-   "sha256": "10ybvgdrw9hzqwbzvsr3hmzci4yp9rxi5nbcm6iafrsn7p1vv1wj"
+   "commit": "91a1dfe516d90dab69c368f6669bacb2458ec5e9",
+   "sha256": "15rmg7gl4yz3kfb1096fq20y0fnfc35jmppg7nl4vi71xv4db35d"
   }
  },
  {
@@ -103062,8 +104539,8 @@
     20210106,
     220
    ],
-   "commit": "8375d87ec184fbe964189e2f9b7263cdb1396694",
-   "sha256": "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"
+   "commit": "eef1614c79eb259cb782437a25680246793a924d",
+   "sha256": "0vx0sv8595lbx8x23ly3dg6zb73skp4cxi8l6m2h4l4v8fs6r0fl"
   },
   "stable": {
    "version": [
@@ -103652,14 +105129,14 @@
   "repo": "jwiegley/use-package",
   "unstable": {
    "version": [
-    20210106,
-    2145
+    20210207,
+    1926
    ],
    "deps": [
     "bind-key"
    ],
-   "commit": "365c73d2618dd0040a32c2601c5456ab5495b812",
-   "sha256": "10c0rmi5axypx0xy3fib739rjnakl32spwcirzxz1p5r0x9gya4a"
+   "commit": "a7422fb8ab1baee19adb2717b5b47b9c3812a84c",
+   "sha256": "1zz2gg475254hbbxw4y82b2m2iy8cvx0phh030daax315hdbsaqb"
   },
   "stable": {
    "version": [
@@ -103691,8 +105168,8 @@
     "key-chord",
     "use-package"
    ],
-   "commit": "365c73d2618dd0040a32c2601c5456ab5495b812",
-   "sha256": "10c0rmi5axypx0xy3fib739rjnakl32spwcirzxz1p5r0x9gya4a"
+   "commit": "a7422fb8ab1baee19adb2717b5b47b9c3812a84c",
+   "sha256": "1zz2gg475254hbbxw4y82b2m2iy8cvx0phh030daax315hdbsaqb"
   },
   "stable": {
    "version": [
@@ -103754,8 +105231,8 @@
     "system-packages",
     "use-package"
    ],
-   "commit": "365c73d2618dd0040a32c2601c5456ab5495b812",
-   "sha256": "10c0rmi5axypx0xy3fib739rjnakl32spwcirzxz1p5r0x9gya4a"
+   "commit": "a7422fb8ab1baee19adb2717b5b47b9c3812a84c",
+   "sha256": "1zz2gg475254hbbxw4y82b2m2iy8cvx0phh030daax315hdbsaqb"
   },
   "stable": {
    "version": [
@@ -103868,11 +105345,11 @@
   "repo": "ideasman42/emacs-utimeclock",
   "unstable": {
    "version": [
-    20201213,
-    438
+    20210124,
+    138
    ],
-   "commit": "cd3ab3a419ed50f51a7746849c80cb69910b89ca",
-   "sha256": "0anmmy46cbph9sjngcz3hbyzir8glzb6fqzl36wzfnxj54rzcf7l"
+   "commit": "d4b2014c5684b33ff73b4940bdff7b1138c1f85d",
+   "sha256": "00cx125pq6jad1v8pxq016hzg6wz1d06l4pc6z9r60l89y2m9hm2"
   }
  },
  {
@@ -104021,14 +105498,14 @@
   "repo": "dougm/vagrant-tramp",
   "unstable": {
    "version": [
-    20200118,
-    2324
+    20210217,
+    704
    ],
    "deps": [
     "dash"
    ],
-   "commit": "f67925928dd844b74e4002f433e6f0ebd3aae357",
-   "sha256": "1s022vcjzm78v1j7z29pda3lk9x93fvks4qw5v9kh2yzsrxdq4h8"
+   "commit": "5f00b42a0c023c461cef7af4de7652d90c788b4d",
+   "sha256": "1mshxcbwdjs2fs7lzqhs3pqbmdmy2fyzkf9b6r8rsxqlisa4x6sn"
   }
  },
  {
@@ -104087,11 +105564,11 @@
   "repo": "arthurgleckler/validate-html",
   "unstable": {
    "version": [
-    20200913,
-    2002
+    20210131,
+    1704
    ],
-   "commit": "04321596380c7a87ed85762b6764e98b2ef31bf8",
-   "sha256": "09c24i4b5yg21qzlyss4si607d1n63sj5dr2pysikkzzd81b9hki"
+   "commit": "39890f7d00579954a660fc3b1c0195231325efd6",
+   "sha256": "0xb1gnf0f408z9p6iscb9g5c5xj2d460gyzk1mr0wjm847b9cs42"
   }
  },
  {
@@ -104136,11 +105613,11 @@
   "repo": "thisirs/vc-auto-commit",
   "unstable": {
    "version": [
-    20170107,
-    1333
+    20210216,
+    1517
    ],
-   "commit": "446f664f4ec835532f4f18ba18b5fb731f6030aa",
-   "sha256": "18jjl656ps75p7n3hf16mcjrgiagnjvb8m8dl4i261cbnq98qmav"
+   "commit": "56f478016a541b395092a9d3cdc0da84a37b30a1",
+   "sha256": "1aw5j6akrkzr4pgf10scbfqr9axny3pf3k7yslg7g5ss1fd71afl"
   }
  },
  {
@@ -104151,11 +105628,11 @@
   "repo": "thisirs/vc-check-status",
   "unstable": {
    "version": [
-    20170107,
-    1334
+    20210216,
+    1525
    ],
-   "commit": "37734beb16bfd8633ea328059bf9a47eed826d5c",
-   "sha256": "0mspksr2i6hkb7bhs38ydmn0d2mn7g1hjva60paq86kl7k76f7ra"
+   "commit": "d95ef8f0799cd3dd83726ffa9b01b076f378ce34",
+   "sha256": "10sr9qxfx64f7a2kj93vi7lmm1pdj6qf81ci0ykkmrffmjdlf846"
   }
  },
  {
@@ -104196,11 +105673,11 @@
   "repo": "venks1/emacs-fossil",
   "unstable": {
    "version": [
-    20201121,
-    1726
+    20210124,
+    812
    ],
-   "commit": "31b0ee6285cca98d376eb5b6e1bc832c419c9fd0",
-   "sha256": "1jva2vnpz97mrzpix5z2y8z9qph7p1r39ajyvdzjfx6vlvwgsv0i"
+   "commit": "5d66231e25f34aaedb4befa0fcd80a9c30d7e607",
+   "sha256": "01r8j7a8b3icfgyxpgxh3pimzwig0xbhmggahzllgn96w5fafgpv"
   }
  },
  {
@@ -104327,11 +105804,11 @@
   "repo": "plapadoo/vdf-mode",
   "unstable": {
    "version": [
-    20200713,
-    1838
+    20210303,
+    714
    ],
-   "commit": "8fbf6157440345879a0543bcab233e790a7b60ee",
-   "sha256": "1m237py9jcxkm6z3wgsxzhikc3lidd28gfflcmr0wm588sdx48sl"
+   "commit": "0910d4f847e9c817eb8da5434b3879048ec4ac92",
+   "sha256": "0a69crh9m447kxy4g47y02lymdcp5abbsfh9v68hnwydwnwjxyap"
   },
   "stable": {
    "version": [
@@ -104555,15 +106032,15 @@
   "repo": "applied-science/emacs-vega-view",
   "unstable": {
    "version": [
-    20200520,
-    1202
+    20210227,
+    1507
    ],
    "deps": [
     "cider",
     "parseedn"
    ],
-   "commit": "8a9e3f9344fd1b81ec52ea9655313c0490ab5d7b",
-   "sha256": "1b49lszx5gs9yc1zisklqqgijygdnfy2zryhipn7i1nvmpjzglv9"
+   "commit": "bb8159ad25886d81fcc2d3a9ec5af7ef669a87a6",
+   "sha256": "18g0fygi8dgwj2harnrqvilv0v3rrrdphqybmnshjmnfngkak55s"
   }
  },
  {
@@ -104574,11 +106051,11 @@
   "repo": "federicotdn/verb",
   "unstable": {
    "version": [
-    20210112,
-    2239
+    20210315,
+    1753
    ],
-   "commit": "91827971f655936d8a8df95c9d2f39eaee667c97",
-   "sha256": "1bvvj25shkasy4b14ifkvh195w401xggmhjkflld5frzp7pm6zvp"
+   "commit": "9c5e9baf43388d5a69ea2fb216d9936628b36a84",
+   "sha256": "1jl4b1ka1xaavfm4gpqgg01f76mlvy0g0rdifmwwz9w8apw306j0"
   },
   "stable": {
    "version": [
@@ -104964,6 +106441,21 @@
   }
  },
  {
+  "ename": "virtual-comment",
+  "commit": "fe865358d240a8797d08010cc22d1451d6a8be46",
+  "sha256": "16ykignpbrd4i31wp25fj74mz6c5sakk6sd1lxib408f980zf6j5",
+  "fetcher": "github",
+  "repo": "thanhvg/emacs-virtual-comment",
+  "unstable": {
+   "version": [
+    20210210,
+    255
+   ],
+   "commit": "dadf36158c7ff89291bea4695999860cca2d094e",
+   "sha256": "10vnw6p5zg3azn1hf74014497qyxbxh6rr27lba45nrnxiz6wfmp"
+  }
+ },
+ {
   "ename": "virtualenv",
   "commit": "923e4fcf29423ad55b13132d53759bc436466ef9",
   "sha256": "1djqzzlbwsp9xyjqjbjwdck73wzikbpq19irzamybk90nc98wirl",
@@ -105056,11 +106548,11 @@
   "repo": "joostkremers/visual-fill-column",
   "unstable": {
    "version": [
-    20201229,
-    2303
+    20210323,
+    2039
    ],
-   "commit": "5b08b9ae9da5b95e42e94e4c9ec01d63e8848ea2",
-   "sha256": "1zg69lqg7yxxr4bw5lhcs5r8pljqalxqqbzvv3zrcifx7n24qzi9"
+   "commit": "a93dc5fc64340d8abda1272f67d46d4cc09a4c85",
+   "sha256": "1csybmfm5zgn2jpl9g3cb49vd26ds7x972wxiig3ri4zrmyn7y2l"
   },
   "stable": {
    "version": [
@@ -105322,11 +106814,11 @@
   "repo": "ianpan870102/vscode-dark-plus-emacs-theme",
   "unstable": {
    "version": [
-    20201116,
-    749
+    20210325,
+    917
    ],
-   "commit": "4a4c7502ceda44d189a5fb09018ef2bc3f3c8d5f",
-   "sha256": "0vgg301za0bgdgcj8kfniysvjq1iyia3jk6lvi6vwrzc8sy9hx6z"
+   "commit": "6e7a02b624628d05fd5cfb5f26d044618a00c905",
+   "sha256": "1xdb6pwl8p6rzb7l6qf8nz2rn6ggjg9krimqsl167551bkjri4gw"
   },
   "stable": {
    "version": [
@@ -105361,11 +106853,11 @@
   "repo": "akermu/emacs-libvterm",
   "unstable": {
    "version": [
-    20210111,
-    522
+    20210326,
+    1458
    ],
-   "commit": "9d2ef5e535e79781a0c1d2523f82d096eb48765f",
-   "sha256": "03nslg391cagq9kdxkgyjcw3abfd5xswza5bq8rl8mrp9f8v7i17"
+   "commit": "1bc4516f53955dcbf397cf999f38e67eec835d8c",
+   "sha256": "0lvdr7ifb3cb5ll8pl0lyw4qzg0v1plzl4fg5drn3z6aanznva38"
   }
  },
  {
@@ -105376,14 +106868,14 @@
   "repo": "jixiuf/vterm-toggle",
   "unstable": {
    "version": [
-    20201204,
-    1537
+    20210313,
+    305
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "61cb072af997aa961e2aebe0125b883ff3bd6f43",
-   "sha256": "082gcdb3lnjn361hnsc1pzxx8dma7pm4iv03kd284fszs032amp2"
+   "commit": "a0429842e6197a6ec83c0de30701127a4edb9e92",
+   "sha256": "1h0ssi84b0amhdjxjw6xyjb525d67b4jx0qpqk3fr08s9c87z8k9"
   }
  },
  {
@@ -105467,8 +106959,8 @@
   "repo": "mihaiolteanu/vuiet",
   "unstable": {
    "version": [
-    20200616,
-    1136
+    20210323,
+    911
    ],
    "deps": [
     "bind-key",
@@ -105477,8 +106969,8 @@
     "s",
     "versuri"
    ],
-   "commit": "3dab1ea2253d5bc2974a1a064d2b1af3bd6b24f6",
-   "sha256": "1q1rcnsda1392kqh944hdj30d79300ycl46ck1bzx4szx3m3p801"
+   "commit": "16f9d9ee4744f4170ab9eab361783e3e32e3b627",
+   "sha256": "19pfxdg4kmvir6fgn9i4mqqlqk7lq77170kva6avxz12jz36i22r"
   },
   "stable": {
    "version": [
@@ -105497,6 +106989,39 @@
   }
  },
  {
+  "ename": "vulpea",
+  "commit": "cd29b11820d9d35717a9a03a7ed5b8f53cbe7bdb",
+  "sha256": "00kxpvysyzmc43d1pb8cdzp1nrwlzbl6wx9fw9c0sssjanchm3xn",
+  "fetcher": "github",
+  "repo": "d12frosted/vulpea",
+  "unstable": {
+   "version": [
+    20210314,
+    1818
+   ],
+   "deps": [
+    "org",
+    "org-roam",
+    "s"
+   ],
+   "commit": "ee35c562768a3a46b9d2c2f28dd2def105c05446",
+   "sha256": "19gx5i6jdb8dgpwaw0vmmla1v451svixahyf1pnfk6615rsb3m08"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "deps": [
+    "org",
+    "org-roam",
+    "s"
+   ],
+   "commit": "4088c95bdd64ca1afbc59bacee571c7260988175",
+   "sha256": "03kynwkl4q91xz9wsmyx8g3aqgls1r8p5dxhixg586sr9xr4xck0"
+  }
+ },
+ {
   "ename": "vyper-mode",
   "commit": "492d42d60bc188a567c5e438b838a275a124c699",
   "sha256": "0mf1w4mw0ijmd9zxip1df85cp15fbvv9j5dqjmb8lfm4m43wpd96",
@@ -105563,11 +107088,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20210105,
-    2310
+    20210321,
+    2346
    ],
-   "commit": "f29aadae07bd58689720271b1f6538edfec5c476",
-   "sha256": "130ydwzpzw4s4h3jhh5h066iib7s9c8xa43imvlvcqs3vghp7p1x"
+   "commit": "7da7afc51aec1ab02056512b921e29a8c68615c9",
+   "sha256": "1fcfmzahmamrxrklbwrrig4gv745lpznpbxx5rlmb7wpndf2cpdy"
   }
  },
  {
@@ -105788,16 +107313,16 @@
   "repo": "wanderlust/wanderlust",
   "unstable": {
    "version": [
-    20210105,
-    1556
+    20210312,
+    843
    ],
    "deps": [
     "apel",
     "flim",
     "semi"
    ],
-   "commit": "cf16d1272cd04ccc845476a1db9fb2ab690b0f55",
-   "sha256": "05mx1g5gqrbzl4p41kxsk2hl15vrfx8nf97xf2zn9c9s8nq0qj0n"
+   "commit": "6e189fc944a9bbde76c5a6d9b6a38d57e85e6390",
+   "sha256": "0yphp7bqgmhd89hgqy8rg6kmkkzmhz3sjkzm9b1paic7fx9s0maj"
   }
  },
  {
@@ -106033,11 +107558,11 @@
   "repo": "fxbois/web-mode",
   "unstable": {
    "version": [
-    20201227,
-    1048
+    20210131,
+    1758
    ],
-   "commit": "a3ce21f795e03c7a5489a24b2b3c4fce2d7a2f59",
-   "sha256": "1234cr8hd25z181vg64r10l4gmdc1nr7dij2qnp4xs9ag3zkdf1y"
+   "commit": "8ef47935d638902ba35a557cae5edd6ab6ab1346",
+   "sha256": "1csskh7wyyjjpn81if2ss29vaz8vqzszb9yg99ffkgkyx2fr57y1"
   },
   "stable": {
    "version": [
@@ -106126,11 +107651,14 @@
   "repo": "eschulte/emacs-web-server",
   "unstable": {
    "version": [
-    20201217,
-    1252
+    20210209,
+    58
    ],
-   "commit": "4d865cc4720f668aed7a8c3bcfddfbf534ecfb67",
-   "sha256": "14kx3anbffs53hdcq7347b3rd33lk6ajvwrz5mhnnj1kmdxy7dxh"
+   "deps": [
+    "cl-lib"
+   ],
+   "commit": "3aa5084bcb733aa77997b9210b4437903f6f29ce",
+   "sha256": "1cg27byi1g0s3yfzdkji4xzc15ci5kqb2j0mj5dfdms4db12dir4"
   }
  },
  {
@@ -106171,32 +107699,32 @@
  },
  {
   "ename": "weblorg",
-  "commit": "8c9f6e5452a31772f90c1b5a5fa34b5a833073bb",
-  "sha256": "0gcxksn353zl0kzi387dm3fyy9n4gpjsjy5qlbr7iq4pcby4zbjb",
+  "commit": "61f6ede846bbf5e364c626524c567d4e3e99b906",
+  "sha256": "13snxyxfpjp7aznqwvkikkdpgn0vnar51mqxl2zbiwr8iksh9hpz",
   "fetcher": "github",
   "repo": "emacs-love/weblorg",
   "unstable": {
    "version": [
-    20210111,
-    526
+    20210308,
+    109
    ],
    "deps": [
     "templatel"
    ],
-   "commit": "1d0b5b9bc640a7147e1aa42867c7794fb5d039cc",
-   "sha256": "1fanpp3a40fkwdxc3ixvz6ykvkxh61mq2jxl1dgf0rrxc82mzhms"
+   "commit": "faf78dfe01f25a3f32d6dcf199b5944cfc46b2c7",
+   "sha256": "0j9hnk5kymwq81qskn5l319qiilk5zck9134r44z0wx3bl0rc5gf"
   },
   "stable": {
    "version": [
     0,
     1,
-    0
+    1
    ],
    "deps": [
     "templatel"
    ],
-   "commit": "5ef2daff8498be07ea9b0f50a92d84c8d21d3a49",
-   "sha256": "14797vv2i3b5dgzdazacw2g9r3i5zam4xr3554xzpq1l8ran0g2p"
+   "commit": "3c860c7b52ccee2f8d0b96e8a9e65e9695eb6e0a",
+   "sha256": "1lia9g9dpmn7l7valyw7mvh7ipy2nanhjbd60gha1k4p4ypx3sla"
   }
  },
  {
@@ -106207,28 +107735,28 @@
   "repo": "etu/webpaste.el",
   "unstable": {
    "version": [
-    20201129,
-    1909
+    20210306,
+    1215
    ],
    "deps": [
     "cl-lib",
     "request"
    ],
-   "commit": "a9c4aa418526dbaf19348325ca30c249e2cf8440",
-   "sha256": "1lwv4zqws7kkxzbcgppgsn93vv6njc4qfh9i15bxjsj7jx3lwkgm"
+   "commit": "87ea8b15f417037bb1a46ac849b2f60f08c0bfeb",
+   "sha256": "1ixvkxdf8sz2xxdjb28pc9bdnz321m736b1riffhfh4w755z7vzp"
   },
   "stable": {
    "version": [
     3,
     2,
-    0
+    1
    ],
    "deps": [
     "cl-lib",
     "request"
    ],
-   "commit": "9662b1c9c40e822d90842c82a778f65c709d3358",
-   "sha256": "08545ihkzflw80rwklnxiswrpdrl8kr74xzxm5wsgrf36fkj9rn2"
+   "commit": "b063ddde87226281ce95f8ff0d7ce32d5dea29aa",
+   "sha256": "1d481pdnh7cnbyka7wn59czlci63zwfqms8n515svg92qm573ckd"
   }
  },
  {
@@ -106363,11 +107891,11 @@
   "repo": "jstaursky/weyland-yutani-theme",
   "unstable": {
    "version": [
-    20201209,
-    1505
+    20210327,
+    311
    ],
-   "commit": "86c72ef8e3d25bee94c35254ad03b5d3e4836994",
-   "sha256": "148p1c6cwxcri2732ngbbmd27g1m61gsxbgs0f1qbpqhsy0pplz2"
+   "commit": "782b45736c36dcd48e614167d46ff7fc0edd2a7b",
+   "sha256": "0m6mpwvhvhb02rk2lkylw5w7q9nqm3sqdyzyz5bcqm3layck4pcv"
   }
  },
  {
@@ -106378,11 +107906,11 @@
   "repo": "mhayashi1120/Emacs-wgrep",
   "unstable": {
    "version": [
-    20200217,
-    1030
+    20210322,
+    2207
    ],
-   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
-   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+   "commit": "f9687c28bbc2e84f87a479b6ce04407bb97cfb23",
+   "sha256": "090k2kznhdmzzd4hrs834mbr8kwady2ks1684kgzqjzvwhv36v6i"
   },
   "stable": {
    "version": [
@@ -106408,8 +107936,8 @@
    "deps": [
     "wgrep"
    ],
-   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
-   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+   "commit": "f9687c28bbc2e84f87a479b6ce04407bb97cfb23",
+   "sha256": "090k2kznhdmzzd4hrs834mbr8kwady2ks1684kgzqjzvwhv36v6i"
   },
   "stable": {
    "version": [
@@ -106438,8 +107966,8 @@
    "deps": [
     "wgrep"
    ],
-   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
-   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+   "commit": "f9687c28bbc2e84f87a479b6ce04407bb97cfb23",
+   "sha256": "090k2kznhdmzzd4hrs834mbr8kwady2ks1684kgzqjzvwhv36v6i"
   },
   "stable": {
    "version": [
@@ -106462,14 +107990,14 @@
   "repo": "mhayashi1120/Emacs-wgrep",
   "unstable": {
    "version": [
-    20200128,
-    109
+    20210322,
+    2148
    ],
    "deps": [
     "wgrep"
    ],
-   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
-   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+   "commit": "f9687c28bbc2e84f87a479b6ce04407bb97cfb23",
+   "sha256": "090k2kznhdmzzd4hrs834mbr8kwady2ks1684kgzqjzvwhv36v6i"
   },
   "stable": {
    "version": [
@@ -106498,8 +108026,8 @@
    "deps": [
     "wgrep"
    ],
-   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
-   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+   "commit": "f9687c28bbc2e84f87a479b6ce04407bb97cfb23",
+   "sha256": "090k2kznhdmzzd4hrs834mbr8kwady2ks1684kgzqjzvwhv36v6i"
   },
   "stable": {
    "version": [
@@ -106537,20 +108065,20 @@
   "repo": "justbur/emacs-which-key",
   "unstable": {
    "version": [
-    20201216,
-    1720
+    20210324,
+    1821
    ],
-   "commit": "428aedfce0157920814fbb2ae5d00b4aea89df88",
-   "sha256": "116c3krgi7iyv708jwzqjz72wf1j1aczgv5cvkdscrn7zgpyvm8c"
+   "commit": "c632dbf27a77c1c73ce559041b3a78ec5f78b187",
+   "sha256": "1dsr7x0mbw8jmdm26278a9lqmh3mkrkzr24fp6ssf316hh51cc3v"
   },
   "stable": {
    "version": [
     3,
     5,
-    0
+    1
    ],
-   "commit": "ae59b7edb0d82aa0251803fdfbde6b865083c8b8",
-   "sha256": "13lgjsm9pwgjsxg7lzc1c9sw2bzssxikfj6grnshqfll8kz8yr4r"
+   "commit": "c0608e812a8d1bc7aefeacdfaeb56a7272eabf44",
+   "sha256": "1g07i6hyv9glhk6xq1z9vn81vi2f0byy7dp3rg4gw22sm6f6d1al"
   }
  },
  {
@@ -106593,14 +108121,11 @@
   "repo": "Fuco1/whitaker",
   "unstable": {
    "version": [
-    20150814,
-    1122
-   ],
-   "deps": [
-    "dash"
+    20210203,
+    1149
    ],
-   "commit": "eaf26ea647b729ca705b73ea70312d5ffdf89448",
-   "sha256": "1y75cylvqgn54h8yqahz4wi1qj5yhbs66i7x23jmbmah3q0rycab"
+   "commit": "a6fda24ccb69a18c0706633326d5cc4fcfaed83a",
+   "sha256": "00s7cljadn4f713kvwgvlapzh208fpqwyxlv4sxbsw6ba3gdllrd"
   },
   "stable": {
    "version": [
@@ -106622,11 +108147,11 @@
   "repo": "mswift42/white-sand-theme",
   "unstable": {
    "version": [
-    20151117,
-    1648
+    20210131,
+    813
    ],
-   "commit": "97621edd69267dd143760d94393db2c2558c9ea4",
-   "sha256": "0sh92g5vd518f80klvljqkjpw4ji909439dpc3sfaccf5jiwn9xn"
+   "commit": "729dd52cc1936250183d6761eed406c4be514a71",
+   "sha256": "0vlq6wywhc08z4ivyahpagcxbxfww6ipbmvgw4sgc8c6h3vb8v9s"
   }
  },
  {
@@ -106655,8 +108180,8 @@
     20200304,
     2227
    ],
-   "commit": "c344cfd78df23980ee48fb85fbc16989b7d4cffe",
-   "sha256": "1jwz89j6v8mmdim8knnwjz2ip0cwn5lq6x8nz78xns1ba5fg293b"
+   "commit": "3c5a7161c0dd0caa65e9a61640b06aff101be848",
+   "sha256": "1i4xnl178lbaqnrxxk9qxzz3v0krj4wawh8zyprh2xirgxqspks8"
   },
   "stable": {
    "version": [
@@ -106728,8 +108253,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "4a1d44ec7b1421913cb39a6e83854329be910e68",
-   "sha256": "0az61n9c4mf2l68y67lmp34d678n13s06kpx62r4v5kaar2vhz8i"
+   "commit": "3c1a55103e52c7a3010ee0043af22484d23a441e",
+   "sha256": "0bkfx18jpy8b91yq917va5x2mkrzqlyi6a38bi90zfqhxz5h69g4"
   },
   "stable": {
    "version": [
@@ -106799,8 +108324,8 @@
     "makey",
     "s"
    ],
-   "commit": "a0d8456b9f71fcb40a28ec9235132df506aa6ecc",
-   "sha256": "1bndpdzscb917sp32khmifk7vdkj4psh7c8rf4j5s5zs7033qwka"
+   "commit": "58a0e556b4b96e1d23082a7ec2e8c0d4183a1a24",
+   "sha256": "0nvyacv711bb56cj9zrja6svzwhmdw22qg1c1bwprnh4nig43a03"
   }
  },
  {
@@ -106858,11 +108383,11 @@
   "repo": "progfolio/wikinfo",
   "unstable": {
    "version": [
-    20210112,
-    324
+    20210121,
+    1642
    ],
-   "commit": "b3c2824ab7cd653741b2b905f5c3279e312857cc",
-   "sha256": "01l3qwaqrcgrwlvfhxw2db06svcqhiahp6jbn8x8k5fmq7mk5hr3"
+   "commit": "afa32f2b3c23e6d1565698faf9697fa445059bb9",
+   "sha256": "1wxdb34xsvqydr54w44b84hbins8ay1md49vphp6jqbj99q992dg"
   }
  },
  {
@@ -106873,15 +108398,15 @@
   "repo": "progfolio/wikinforg",
   "unstable": {
    "version": [
-    20201227,
-    1454
+    20210126,
+    405
    ],
    "deps": [
     "org",
     "wikinfo"
    ],
-   "commit": "8496c243f8d98ba2787b63f7d19fbae3831832d2",
-   "sha256": "1w7q3badp6r653grsblmnambv99r52c34gmnpdz0f5ybmw83002p"
+   "commit": "2eb31ab00e4c8ad53dc15234f29527b9f0f54d71",
+   "sha256": "0sghvnvbbv3d7kdvcv2dbbzbv38b3jjzbrhjv6fn5lynyr929vqr"
   }
  },
  {
@@ -107051,15 +108576,15 @@
   "repo": "bmag/emacs-purpose",
   "unstable": {
    "version": [
-    20190628,
-    1827
+    20210315,
+    1848
    ],
    "deps": [
     "imenu-list",
     "let-alist"
    ],
-   "commit": "f6421966761ad911fe8861aba2b110c5dd60d1ea",
-   "sha256": "1p0y5gnrw7q65py2wjdf1hrdpiw5c2zbgvfbfmb13257jq5mga38"
+   "commit": "aa4e7376ab72b7f67cf8ad46b67a2eaec2f8cd61",
+   "sha256": "1l7nrms211jslxibq18wxxdx7rv6i18by8lzhk692fp6s5af2fi3"
   },
   "stable": {
    "version": [
@@ -107277,14 +108802,11 @@
   "repo": "magit/with-editor",
   "unstable": {
    "version": [
-    20210110,
-    1545
-   ],
-   "deps": [
-    "async"
+    20210319,
+    1930
    ],
-   "commit": "139ef3933ea7aa3fe67b87450a6a1ac0895e5c81",
-   "sha256": "1zdgn2ajpbdxnc7qf98z7590w8y1s0iqj27fv7m8ndkrn8c1cx0x"
+   "commit": "ebcbd3b137154e6c5a2b976bacbb89d48ddfa242",
+   "sha256": "0qir7kzvnlchpvmpl8gj11yqly6j5m260mmxny9xxwx0dzwaya4k"
   },
   "stable": {
    "version": [
@@ -107389,8 +108911,8 @@
     20200509,
     2010
    ],
-   "commit": "0d5e910f19657ab376f72e5848be50d13d3b8e50",
-   "sha256": "1ksm11k8gxkjn9byacy08xrz91gvzyf7fjnxv7j5ffpsccbh0wg3"
+   "commit": "228732caf5272dd25e5c8acb2c6c86b0ac29ece8",
+   "sha256": "08j0ab7i0fk3d9d805mzwszlc82afr1sjw7isnx8k35d90cnmf3d"
   },
   "stable": {
    "version": [
@@ -107607,8 +109129,8 @@
   "repo": "abo-abo/worf",
   "unstable": {
    "version": [
-    20201226,
-    1859
+    20210309,
+    1513
    ],
    "deps": [
     "ace-link",
@@ -107616,8 +109138,8 @@
     "swiper",
     "zoutline"
    ],
-   "commit": "7ddd86aa3c62955714c2d60decd7a78c06b4771a",
-   "sha256": "02ci6hnjv80n3gjl04lxkcjvc2bzvn34w0z721qira1g7m2ysa8a"
+   "commit": "fff12d4d3bb1ddf70cd0abb78aecd9133b367990",
+   "sha256": "1fbi0rv9pvh9bf72fjc3pfql9xfnw7zif0rsw0r2gn4sdn7202id"
   },
   "stable": {
    "version": [
@@ -107657,11 +109179,11 @@
   "repo": "pashinin/workgroups2",
   "unstable": {
    "version": [
-    20201217,
-    1159
+    20210325,
+    939
    ],
-   "commit": "c9403c68a7e6491134110d7cacc130c34eae85a0",
-   "sha256": "0zkg6b45nc8ap8c8r95r25wyxymnslp3k1x2mmnmj0ivyi0bxjib"
+   "commit": "808248353b7617fd5b307defc3e1e8ccfed45045",
+   "sha256": "1akxxh3400j9rd7zagmhjfrvvg14g4mlzzgbc1y0n2l33k690fz4"
   },
   "stable": {
    "version": [
@@ -107897,11 +109419,11 @@
   "repo": "redguardtoo/wucuo",
   "unstable": {
    "version": [
-    20201208,
-    811
+    20210316,
+    156
    ],
-   "commit": "609bab2d72690c2eb1562e87dfa468b927eb1295",
-   "sha256": "0h14af90zcbinrn8q5csjc7px4yag20as995mvcn0ik8h9xk6jc7"
+   "commit": "d66e6808367048b7694383cf545102e7cad6ba8c",
+   "sha256": "0ahz85n49x2579hpzir2xsqwm0mwlv9x2h91haq0w0l73llnj35q"
   },
   "stable": {
    "version": [
@@ -107914,6 +109436,21 @@
   }
  },
  {
+  "ename": "wwg",
+  "commit": "f2428271e2ad88d1349cf25aa18144491a1b95b8",
+  "sha256": "02wld1rxj6kcmrmcvx2v5ah068hk6c66bv9xs94sysvx3l6za18z",
+  "fetcher": "github",
+  "repo": "ag91/writer-word-goals",
+  "unstable": {
+   "version": [
+    20210314,
+    2101
+   ],
+   "commit": "d62ece22ab7c8c46d874f5ae61712aa517b25ce2",
+   "sha256": "16m77snvipr7blwsd12p7biqxqq9hchq3qmd0h79h9kci1990j2r"
+  }
+ },
+ {
   "ename": "wwtime",
   "commit": "28f034fbabe9de76e2e4ae44be8c8240b08f0535",
   "sha256": "0n37k23lkjgaj9wxnr41yk3mwvy62mc9im5l86czqmw5gy4l63ic",
@@ -108036,11 +109573,11 @@
   "repo": "xahlee/xah-elisp-mode",
   "unstable": {
    "version": [
-    20210112,
-    109
+    20210208,
+    2056
    ],
-   "commit": "134f9d259b68f5c3644dbed203d0d4142e2f3ce9",
-   "sha256": "15x15dzk67xif8ybnv9jid5xzmwimxx086ysdhryqqzrlxc3igiq"
+   "commit": "3ae341944297d59bf33f5580364af2858198781e",
+   "sha256": "09w44nmxdvc7pxyz959qj59dfqxplj22qqdal7206bb12r1l88zr"
   }
  },
  {
@@ -108066,11 +109603,11 @@
   "repo": "xahlee/xah-fly-keys",
   "unstable": {
    "version": [
-    20210114,
-    751
+    20210319,
+    1553
    ],
-   "commit": "015ec792050b4df00bb640602903258431ca6a44",
-   "sha256": "0h8sr9ig5ww2dwg5d22dfndyq68fv5mm1lf99k76wy5dxkqs5w5c"
+   "commit": "f35ef2e8cb8208c30a7ba02df52f32d915073fe6",
+   "sha256": "13xf12ci1anm6r8j90i6mj8pfmb8ffvhyzinz42046achhpymwnl"
   }
  },
  {
@@ -108533,20 +110070,20 @@
  },
  {
   "ename": "xref-js2",
-  "commit": "b5dab444ead98210b4ab3a6f9a61d013aed6d5b7",
-  "sha256": "1mfyszdi1wx2lqd9fyqm0ra227dcsjs8asc1dw2li0alwh7n4xs3",
+  "commit": "940abb73967f518c5ff2724bfa1adabbe6ed8f0d",
+  "sha256": "08az9z1ahs0x8307zrxc1yrvbqj26y4ipcxzgbdbbcil36c27z63",
   "fetcher": "github",
-  "repo": "NicolasPetton/xref-js2",
+  "repo": "js-emacs/xref-js2",
   "unstable": {
    "version": [
-    20190915,
-    2032
+    20210310,
+    1238
    ],
    "deps": [
     "js2-mode"
    ],
-   "commit": "6f1ed5dae0c2485416196a51f2fa92f32e4b8262",
-   "sha256": "0pbnhliq3zivijksdhdqd7m3ndc3z7kw2g21zwihq28faps96ikj"
+   "commit": "fd6b723e7f1f9793d189a815e1904364dc026b03",
+   "sha256": "0iny4qswyicrax36d4sgyfrw3giwjd1440bmlksd36y8zjkqqym0"
   },
   "stable": {
    "version": [
@@ -108568,11 +110105,11 @@
   "repo": "ideasman42/emacs-xref-rst",
   "unstable": {
    "version": [
-    20210110,
-    640
+    20210320,
+    1123
    ],
-   "commit": "3e7360553f46461cbcacdb18cbb7a214d55b89f7",
-   "sha256": "1cqp0azbnhsi7l2xis6b0pwcpn4v40cqx5p79ymhhza8ch8q7rx6"
+   "commit": "f5bcb89e026562abb8da4ea337457d43fed2e71b",
+   "sha256": "0hhhah6aq5wc6jqvf836h8ysmym1jk78acrdf6n486ck537zh5i3"
   }
  },
  {
@@ -108840,8 +110377,8 @@
     20200511,
     2005
    ],
-   "commit": "91159ce448e3bc9cc5759051e2b126599567893e",
-   "sha256": "1f0zb417y40iwx3x116lyp74hv9x6z5c500ydvig3qsjf7l82dx2"
+   "commit": "96068216a4f0c4894bf780cd36164fe840cf81d5",
+   "sha256": "11wrvmnr74pqga8a00gd4zskan8wkgah9fyn0bwgp0x4qx4xni17"
   }
  },
  {
@@ -108860,6 +110397,21 @@
   }
  },
  {
+  "ename": "yaml",
+  "commit": "b96babefbbaf18adcbe7db6065766fd6ba5aa016",
+  "sha256": "057v3magsdhxbb3n9z09cli48f56kzlqyiwwg3009nfvpkf5vm2q",
+  "fetcher": "github",
+  "repo": "zkry/yaml.el",
+  "unstable": {
+   "version": [
+    20210326,
+    533
+   ],
+   "commit": "9ebddb55238d746dc5a5d46db04c9f360c140b99",
+   "sha256": "124lv7jjscaq7pgn72gk7zhrl54c27zqnyh8z51mn8j8mbpvf68a"
+  }
+ },
+ {
   "ename": "yaml-imenu",
   "commit": "71e7c2df9e34093ad2634d5a56133fa30126fb5c",
   "sha256": "03r7020gyr96m1z7p947nb7z8szzlkqv21g1hm10sqa8qp7k0qli",
@@ -108978,11 +110530,11 @@
   "repo": "Kungsgeten/yankpad",
   "unstable": {
    "version": [
-    20201228,
-    1208
+    20210205,
+    1318
    ],
-   "commit": "06d85f04133fbd49a6469174032f4c10a0abe98d",
-   "sha256": "16a4qfliym93rj7bsjijzwlv8r8h9kbxrd53wdk9fb6vgdk2vv9h"
+   "commit": "fb9cb7753af971701dcd96a51efb4d70e2b2a18f",
+   "sha256": "1xaal77cqics6fdm51j7pm12k61v0qxg68krgb7yi1fd90fm2iy3"
   },
   "stable": {
    "version": [
@@ -109465,11 +111017,11 @@
   "repo": "ryuslash/yoshi-theme",
   "unstable": {
    "version": [
-    20200909,
-    513
+    20210324,
+    1847
    ],
-   "commit": "1ca48766209d941f0300d725ce9bec5a8bc2d642",
-   "sha256": "1abzv19aghgjkzc15wcii3fvapjx221imap48gfn2d3ckbppy8lb"
+   "commit": "4ea0f4d8128951432169b1e6db3dd4ac42492e93",
+   "sha256": "177zh0d6ax9j1fdv569b0adnb873b2913b9pmj26y8ipsbg4iwa6"
   },
   "stable": {
    "version": [
@@ -109516,6 +111068,21 @@
   }
  },
  {
+  "ename": "ytdious",
+  "commit": "946fc7cf4d5e6cd346c331bec7af519ab93f53c4",
+  "sha256": "1yg5kfr0kbr55ral50m56njkfl3lz2shlp2fs4cgmwrbp9pvzb9p",
+  "fetcher": "github",
+  "repo": "spiderbit/ytdious",
+  "unstable": {
+   "version": [
+    20210228,
+    2111
+   ],
+   "commit": "941460b51e43ef6764e15e2b9c4af54c3e56115f",
+   "sha256": "0ihqzxahqvk8jnn05k06lzhi6pd9c1a2q7qqybnmds85amkwmsad"
+  }
+ },
+ {
   "ename": "ytdl",
   "commit": "3531012169cb78d00cdf89fa54a7aff684200083",
   "sha256": "0s2ngslz6l4mkib09inv5r4g122jsnyiyh9ijjb27y3pr48cj23d",
@@ -109737,10 +111304,10 @@
  },
  {
   "ename": "zenscript-mode",
-  "commit": "2879811c121d24f14f23fb45afabd31fbd4246e1",
-  "sha256": "141im3qrpssjzlpiy72zzdyhqdcshpn68yvdqdvcxajrakkh8d0w",
+  "commit": "c991dec83a2fdf5c9cdb4c291a8c80246591abef",
+  "sha256": "1vff9ax25j68gzdcnainynk55cb0brkg9rrv25ng9g6lixbrjs8a",
   "fetcher": "github",
-  "repo": "eutropius225/zenscript-mode",
+  "repo": "eutro/zenscript-mode",
   "unstable": {
    "version": [
     20210102,
@@ -109829,25 +111396,25 @@
   "repo": "NicolasPetton/zerodark-theme",
   "unstable": {
    "version": [
-    20190528,
-    923
+    20210216,
+    1640
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "df22536a244293591575e56970bf83814faa7c14",
-   "sha256": "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"
+   "commit": "ee49ea9e875d7a3da63386880ca3a9e10b1051e5",
+   "sha256": "06q1v0fkxyxadrpgy28gh85j19vi4ars2xrbbm1bz28xrcbnps04"
   },
   "stable": {
    "version": [
     4,
-    6
+    7
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "df22536a244293591575e56970bf83814faa7c14",
-   "sha256": "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"
+   "commit": "342055346446bb8306ac2d3d2ac1f4236c84a404",
+   "sha256": "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"
   }
  },
  {
@@ -109858,15 +111425,15 @@
   "repo": "EFLS/zetteldeft",
   "unstable": {
    "version": [
-    20201230,
-    2127
+    20210326,
+    942
    ],
    "deps": [
     "ace-window",
     "deft"
    ],
-   "commit": "ca3793959669b577296e1787aa029effa29a15c5",
-   "sha256": "1rxp0nwnjpwz3j44yj7afjj04hx4y3157a7vrgy0dlivhjzmdgag"
+   "commit": "293d406203c5c060ceb64874812bc193ac91fb74",
+   "sha256": "08r0ipi6wbqfna4jwpvyp64vkzy3jdrjy0vac43gi2s3cbxl3wmg"
   },
   "stable": {
    "version": [
@@ -110020,14 +111587,14 @@
   "repo": "sshirokov/ZNC.el",
   "unstable": {
    "version": [
-    20160627,
-    2032
+    20210304,
+    2337
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ce468d185e4a949c45fdd7586313144bc69d4fe5",
-   "sha256": "0jh11lbzsndsz9i143av7510417nzwy4j3mmpq7cjixfbmnxdq06"
+   "commit": "e795739ec182d217ffaf3c595819c308911540ee",
+   "sha256": "108bw2k255rkngfkp5iff1frsirc06j70ar1gcrh9lc3fcxdawlp"
   }
  },
  {
@@ -110265,15 +111832,15 @@
   "repo": "egh/zotxt-emacs",
   "unstable": {
    "version": [
-    20210115,
-    456
+    20210222,
+    347
    ],
    "deps": [
     "deferred",
     "request"
    ],
-   "commit": "87d8c4836c5f43530db8f00a66b7b69087236875",
-   "sha256": "01w529yr96kx7xg2w670ci61aljd1alrbqy1qxnj9yiymqsnmys1"
+   "commit": "a760009b9ecfa0b3362e77a6b44453821768d02e",
+   "sha256": "0vfdpgb0ln3xrx4i32mqisaj7qm2yx73rhagx6adr8hjw78gysfy"
   },
   "stable": {
    "version": [
@@ -110371,14 +111938,14 @@
   "repo": "fourier/ztree",
   "unstable": {
    "version": [
-    20191108,
-    2234
+    20210215,
+    2111
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "0a5b25f364490a58ef7371534a39c75d11f54132",
-   "sha256": "0a0p9srdkc79isw99al3vba50vc435654wix07r9jcgdh856zbsr"
+   "commit": "dc5f76923436ea87b802b56a54185b6888177a8c",
+   "sha256": "17y1hjhygh2kq487ab1s8n2ba9npdmqg6354jv3gha6ar3mib1qi"
   }
  },
  {
@@ -110428,15 +111995,15 @@
   "repo": "mrkkrp/zzz-to-char",
   "unstable": {
    "version": [
-    20190713,
-    1344
+    20210321,
+    1707
    ],
    "deps": [
     "avy",
     "cl-lib"
    ],
-   "commit": "b0a50b8cb6925c3184405f81be9ef9be9da69f09",
-   "sha256": "003rg7x1vfv946j1m6yalzsgr88wvm3443pqf9yqwnzl2a3djq0g"
+   "commit": "18d26571b91a9c56b6a7e0d2a58188e833ab5d0f",
+   "sha256": "0cl76m06cm0wmb8bx6g6xrxaks2vr6zqpibc9d94gbkr5jzccg9k"
   },
   "stable": {
    "version": [
diff --git a/nixpkgs/pkgs/applications/editors/emacs/26.nix b/nixpkgs/pkgs/applications/editors/emacs/26.nix
deleted file mode 100644
index a151006a995d..000000000000
--- a/nixpkgs/pkgs/applications/editors/emacs/26.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-import ./generic.nix (rec {
-  version = "26.3";
-  sha256 = "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d";
-  patches = [
-    ./clean-env-26.patch
-    ./tramp-detect-wrapped-gvfsd-26.patch
-  ];
-})
diff --git a/nixpkgs/pkgs/applications/editors/emacs/27.nix b/nixpkgs/pkgs/applications/editors/emacs/27.nix
index 1037c0cd91dc..b629c2d21207 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/27.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/27.nix
@@ -1,8 +1,7 @@
 import ./generic.nix (rec {
-  version = "27.1";
-  sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
+  version = "27.2";
+  sha256 = "sha256-tKfMTnjmPzeGJOCRkhW5EK9bsqCvyBn60pgnLp9Awbk=";
   patches = [
-    ./clean-env.patch
     ./tramp-detect-wrapped-gvfsd.patch
   ];
 })
diff --git a/nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch b/nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch
deleted file mode 100644
index 88befda899a7..000000000000
--- a/nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Dump temacs in an empty environment to prevent -dev paths from ending
-up in the dumped image.
-
-diff --git a/src/Makefile.in b/src/Makefile.in
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -535,7 +535,7 @@ ifeq ($(CANNOT_DUMP),yes)
- 	ln -f temacs$(EXEEXT) $@
- else
- 	unset EMACS_HEAP_EXEC; \
--	LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
-+	env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
-   ifneq ($(PAXCTL_dumped),)
- 	$(PAXCTL_dumped) $@
-   endif
diff --git a/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch b/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch
deleted file mode 100644
index 2ffe8b777a00..000000000000
--- a/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Dump temacs in an empty environment to prevent -dev paths from ending
-up in the dumped image.
-
-diff --git a/src/Makefile.in b/src/Makefile.in
-index fd05a45df5..13f529c253 100644
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -570,7 +570,7 @@ emacs$(EXEEXT): temacs$(EXEEXT) \
-                 lisp.mk $(etc)/DOC $(lisp) \
-                 $(lispsource)/international/charprop.el ${charsets}
- ifeq ($(DUMPING),unexec)
--	LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
-+	env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
-   ifneq ($(PAXCTL_dumped),)
- 	      $(PAXCTL_dumped) emacs$(EXEEXT)
-   endif
diff --git a/nixpkgs/pkgs/applications/editors/emacs/generic.nix b/nixpkgs/pkgs/applications/editors/emacs/generic.nix
index 9377d3ba89c9..6726790d50fe 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/generic.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/generic.nix
@@ -63,6 +63,12 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
       rm -fr .git
     '')
 
+    # Reduce closure size by cleaning the environment of the emacs dumper
+    ''
+      substituteInPlace src/Makefile.in \
+        --replace 'RUN_TEMACS = ./temacs' 'RUN_TEMACS = env -i ./temacs'
+    ''
+
     ''
     substituteInPlace lisp/international/mule-cmds.el \
       --replace /usr/share/locale ${gettext}/share/locale
@@ -130,7 +136,7 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
       else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
              "--with-gif=no" "--with-tiff=no" ])
     ++ lib.optional withXwidgets "--with-xwidgets"
-    ++ lib.optional nativeComp "--with-nativecomp"
+    ++ lib.optional nativeComp "--with-native-compilation"
     ++ lib.optional withImageMagick "--with-imagemagick"
     ;
 
@@ -159,6 +165,14 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
   '' + lib.optionalString (nativeComp && withNS) ''
     ln -snf $out/lib/emacs/*/native-lisp $out/Applications/Emacs.app/Contents/native-lisp
   '' + lib.optionalString nativeComp ''
+    echo "Generating native-compiled trampolines..."
+    # precompile trampolines in parallel, but avoid spawning one process per trampoline.
+    # 1000 is a rough lower bound on the number of trampolines compiled.
+    $out/bin/emacs --batch --eval "(mapatoms (lambda (s) \
+      (when (subr-primitive-p (symbol-function s)) (print s))))" \
+      | xargs -n $((1000/NIX_BUILD_CORES + 1)) -P $NIX_BUILD_CORES \
+        $out/bin/emacs --batch -l comp --eval "(while argv \
+          (comp-trampoline-compile (intern (pop argv))))"
     mkdir -p $out/share/emacs/native-lisp
     $out/bin/emacs --batch \
       --eval "(add-to-list 'comp-eln-load-path \"$out/share/emacs/native-lisp\")" \
diff --git a/nixpkgs/pkgs/applications/editors/emacs/macport.nix b/nixpkgs/pkgs/applications/editors/emacs/macport.nix
index 3c57d3bc81a6..b8fcc678faa1 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/macport.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/macport.nix
@@ -26,8 +26,6 @@ stdenv.mkDerivation rec {
     sha256 = "0f2wzdw2a3ac581322b2y79rlj3c9f33ddrq9allj97r1si6v5xk";
   };
 
-  patches = [ ./clean-env.patch ];
-
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ pkg-config autoconf automake ];
@@ -57,6 +55,11 @@ stdenv.mkDerivation rec {
     # Fix sandbox impurities.
     substituteInPlace Makefile.in --replace '/bin/pwd' 'pwd'
     substituteInPlace lib-src/Makefile.in --replace '/bin/pwd' 'pwd'
+
+
+    # Reduce closure size by cleaning the environment of the emacs dumper
+    substituteInPlace src/Makefile.in \
+      --replace 'RUN_TEMACS = ./temacs' 'RUN_TEMACS = env -i ./temacs'
   '';
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch b/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
index 5af6fcaba8c0..b27dfd47e60e 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
+++ b/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
@@ -1,12 +1,11 @@
 diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
-index 34a234c..b5a471c 100644
+index 9e26c8fd6d..fa220e513c 100644
 --- a/lisp/net/tramp-gvfs.el
 +++ b/lisp/net/tramp-gvfs.el
-@@ -122,6 +122,7 @@
- 	 (tramp-compat-funcall 'dbus-get-unique-name :system)
- 	 (tramp-compat-funcall 'dbus-get-unique-name :session)
- 	 (or (tramp-compat-process-running-p "gvfs-fuse-daemon")
+@@ -125,5 +125,6 @@
+ 	     ;; for some processes.  Better we don't check.
+ 	     (<= emacs-major-version 25)
+ 	     (tramp-compat-process-running-p "gvfs-fuse-daemon")
 +	     (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
  	     (tramp-compat-process-running-p "gvfsd-fuse"))))
    "Non-nil when GVFS is available.")
- 
diff --git a/nixpkgs/pkgs/applications/editors/formiko/default.nix b/nixpkgs/pkgs/applications/editors/formiko/default.nix
new file mode 100644
index 000000000000..53fee165f5e5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/formiko/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, wrapGAppsHook
+, gobject-introspection
+, gtk3
+, docutils
+, gtksourceview
+, gtkspell3
+, librsvg
+, pygobject3
+, webkitgtk
+}:
+
+buildPythonApplication rec {
+  pname = "formiko";
+  version = "1.4.3";
+
+  src = fetchFromGitHub {
+    owner = "ondratu";
+    repo = "formiko";
+    rev = version;
+    sha256 = "0n7w585gbrpn2xcd5n04hivrjarpr2wj260y2kpxpgh93vn52sdi";
+  };
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    gobject-introspection
+    gtk3
+  ];
+  propagatedBuildInputs = [
+    docutils
+    gobject-introspection
+    gtk3
+    gtksourceview
+    gtkspell3
+    librsvg
+    pygobject3
+    webkitgtk
+  ];
+
+  # Needs a display
+  doCheck = false;
+
+  meta = with lib; {
+    description = "reStructuredText editor and live previewer";
+    homepage = "https://github.com/ondratu/formiko";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/fte/default.nix b/nixpkgs/pkgs/applications/editors/fte/default.nix
index 3814c8a879fd..4f78267dbe5d 100644
--- a/nixpkgs/pkgs/applications/editors/fte/default.nix
+++ b/nixpkgs/pkgs/applications/editors/fte/default.nix
@@ -3,7 +3,8 @@
 stdenv.mkDerivation rec {
   name = "fte-0.50.02";
 
-  buildInputs = [ unzip perl libX11 libXpm gpm ncurses slang ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ perl libX11 libXpm gpm ncurses slang ];
 
   ftesrc = fetchurl {
     url = "mirror://sourceforge/fte/fte-20110708-src.zip";
diff --git a/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix b/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
index 23a81c9cb00a..2249009af777 100644
--- a/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
+++ b/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "ghostwriter";
-  version = "2.0.0-rc4";
+  version = "2.0.0-rc5";
 
   src = fetchFromGitHub {
     owner = "wereturtle";
     repo = pname;
     rev = version;
-    sha256 = "07547503a209hc0fcg902w3x0s1m899c10nj3gqz3hak0cmrasi3";
+    sha256 = "sha256-Gc0/AHxxJd5Cq3dBQ0Xy2TF78CBmQFYUzm4s7q1aHEE=";
   };
 
   nativeBuildInputs = [ qmake pkg-config qttools ];
diff --git a/nixpkgs/pkgs/applications/editors/glow/default.nix b/nixpkgs/pkgs/applications/editors/glow/default.nix
index 06013b50d63b..81cba221622a 100644
--- a/nixpkgs/pkgs/applications/editors/glow/default.nix
+++ b/nixpkgs/pkgs/applications/editors/glow/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "glow";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "glow";
     rev = "v${version}";
-    sha256 = "1y5cdqmyc2z2qk74l0r2c4mnw0jfibrf2ry7qcnmh96nhalq9m7j";
+    sha256 = "13ip29yxjc2fhsk12m6hj6mswrgc9a4m8gf0hiffd1nh5313mqxi";
   };
 
-  vendorSha256 = "11x6hshbqg1a39a1hwpfivgrhyk7ykw2aqylira3dqv039b1f639";
+  vendorSha256 = "0i49b1yq9x5n59k29yacxyif928r0w7hl6azfvr5k3rssg0y4l7f";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix b/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
index 67cb0028ae58..da7b70cecd2a 100644
--- a/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
+++ b/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
@@ -35,7 +35,6 @@
 , wrapGAppsHook
 , dbus
 , xvfb_run
-, glib
 }:
 
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/applications/editors/gophernotes/default.nix b/nixpkgs/pkgs/applications/editors/gophernotes/default.nix
index e48ee4dd13c7..161acb54bbad 100644
--- a/nixpkgs/pkgs/applications/editors/gophernotes/default.nix
+++ b/nixpkgs/pkgs/applications/editors/gophernotes/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gophernotes";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "gopherdata";
     repo = "gophernotes";
     rev = "v${version}";
-    sha256 = "0hs92bdrsjqafdkhg2fk3z16h307i32mvbm9f6bb80bgsciysh27";
+    sha256 = "sha256-EEMKV+k5qcep4z7J5r1nSLxmb0fbfpJOPmz5bE91cd8=";
   };
 
-  vendorSha256 = "1ylqf1sx0h2kixnq9f3prn3sha43q3ybd5ay57yy5z79qr8zqvxs";
+  vendorSha256 = "sha256-Wy4HcPlrlYUjRQHhw+UPAa+Rn1FvJobWGxgFiJKJTAg=";
 
   meta = with lib; {
     description = "Go kernel for Jupyter notebooks";
diff --git a/nixpkgs/pkgs/applications/editors/greenfoot/default.nix b/nixpkgs/pkgs/applications/editors/greenfoot/default.nix
index 324d8b13f21e..34f489bfba3e 100644
--- a/nixpkgs/pkgs/applications/editors/greenfoot/default.nix
+++ b/nixpkgs/pkgs/applications/editors/greenfoot/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     description = "A simple integrated development environment for Java";
     homepage = "https://www.greenfoot.org/";
     license = licenses.gpl2ClasspathPlus;
-    maintainers = [ maintainers.charvp ];
+    maintainers = [ maintainers.chvp ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/hecate/default.nix b/nixpkgs/pkgs/applications/editors/hecate/default.nix
index 5429497d209e..29a3e1ff1caa 100644
--- a/nixpkgs/pkgs/applications/editors/hecate/default.nix
+++ b/nixpkgs/pkgs/applications/editors/hecate/default.nix
@@ -21,6 +21,5 @@ buildGoPackage rec {
     longDescription = "The Hex Editor From Hell!";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ramkromberg ];
-    platforms = with platforms; linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/jed/default.nix b/nixpkgs/pkgs/applications/editors/jed/default.nix
index 7b197be0e6fa..29c8bc258ccb 100644
--- a/nixpkgs/pkgs/applications/editors/jed/default.nix
+++ b/nixpkgs/pkgs/applications/editors/jed/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   ];
 
   configureFlags = [
-    "CC=cc"
+    "CC=${stdenv.cc.targetPrefix}cc"
     "--with-slang=${slang}"
     "JED_ROOT=${placeholder "out"}/share/jed"
   ];
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/common.nix b/nixpkgs/pkgs/applications/editors/jetbrains/common.nix
index 62f1178866ce..635a8dbf46f7 100644
--- a/nixpkgs/pkgs/applications/editors/jetbrains/common.nix
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/common.nix
@@ -3,7 +3,7 @@
 , vmopts ? null
 }:
 
-{ name, product, version, src, wmClass, jdk, meta }:
+{ name, product, version, src, wmClass, jdk, meta, extraLdPath ? [] }:
 
 with lib;
 
@@ -72,11 +72,11 @@ with stdenv; lib.makeOverridable mkDerivation rec {
 
     makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${execName}" \
       --prefix PATH : "$out/libexec/${name}:${lib.optionalString (stdenv.isDarwin) "${jdk}/jdk/Contents/Home/bin:"}${lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath ([
         # Some internals want libstdc++.so.6
         stdenv.cc.cc.lib libsecret
         libnotify
-      ]}" \
+      ] ++ extraLdPath)}" \
       --set JDK_HOME "$jdk" \
       --set ${hiName}_JDK "$jdk" \
       --set ANDROID_JAVA_HOME "$jdk" \
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
index c2415cf4f21b..e7628715a21e 100644
--- a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv, callPackage, fetchurl
-, python
 , jdk, cmake, libxml2, zlib, python3, ncurses5
 , dotnet-sdk_3
 , vmopts ? null
@@ -12,7 +11,7 @@ let
   # Sorted alphabetically
 
   buildClion = { name, version, src, license, description, wmClass, ... }:
-    lib.overrideDerivation (mkJetBrainsProduct {
+    (mkJetBrainsProduct {
       inherit name version src wmClass jdk;
       product = "CLion";
       meta = with lib; {
@@ -25,7 +24,7 @@ let
         maintainers = with maintainers; [ edwtjo mic92 ];
         platforms = platforms.linux;
       };
-    }) (attrs: {
+    }).overrideAttrs (attrs: {
       postFixup = (attrs.postFixup or "") + optionalString (stdenv.isLinux) ''
         (
           cd $out/clion-${version}
@@ -97,7 +96,7 @@ let
     });
 
   buildGoland = { name, version, src, license, description, wmClass, ... }:
-    lib.overrideDerivation (mkJetBrainsProduct {
+    (mkJetBrainsProduct {
       inherit name version src wmClass jdk;
       product = "Goland";
       meta = with lib; {
@@ -112,7 +111,7 @@ let
         maintainers = [ maintainers.miltador ];
         platforms = platforms.linux;
       };
-    }) (attrs: {
+    }).overrideAttrs (attrs: {
       postFixup = (attrs.postFixup or "") + ''
         interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
         patchelf --set-interpreter $interp $out/goland*/plugins/go/lib/dlv/linux/dlv
@@ -125,6 +124,7 @@ let
     (mkJetBrainsProduct {
       inherit name version src wmClass jdk;
       product = "IDEA";
+      extraLdPath = [ zlib ];
       meta = with lib; {
         homepage = "https://www.jetbrains.com/idea/";
         inherit description license;
@@ -134,8 +134,8 @@ let
           with JUnit, TestNG, popular SCMs, Ant & Maven. Also known
           as IntelliJ.
         '';
-        maintainers = with maintainers; [ edwtjo ];
-        platforms = platforms.linux ++ platforms.darwin;
+        maintainers = with maintainers; [ edwtjo gytis-ivaskevicius ];
+        platforms = [ "x86_64-darwin" "i686-darwin" "i686-linux" "x86_64-linux" ];
       };
     });
 
@@ -198,11 +198,11 @@ let
         platforms = platforms.linux;
       };
     }).override {
-      propagatedUserEnvPkgs = [ python ];
+      propagatedUserEnvPkgs = [ python3 ];
     };
 
   buildRider = { name, version, src, license, description, wmClass, ... }:
-    lib.overrideDerivation (mkJetBrainsProduct {
+    (mkJetBrainsProduct {
       inherit name version src wmClass jdk;
       product = "Rider";
       meta = with lib; {
@@ -219,7 +219,7 @@ let
         maintainers = [ maintainers.miltador ];
         platforms = platforms.linux;
       };
-    }) (attrs: {
+    }).overrideAttrs (attrs: {
       patchPhase = lib.optionalString (!stdenv.isDarwin) (attrs.patchPhase + ''
         rm -rf lib/ReSharperHost/linux-x64/dotnet
         mkdir -p lib/ReSharperHost/linux-x64/dotnet/
@@ -241,7 +241,7 @@ let
     });
 
   buildWebStorm = { name, version, src, license, description, wmClass, ... }:
-    lib.overrideDerivation (mkJetBrainsProduct {
+    (mkJetBrainsProduct {
       inherit name version src wmClass jdk;
       product = "WebStorm";
       meta = with lib; {
@@ -255,7 +255,7 @@ let
         maintainers = with maintainers; [ abaldeau ];
         platforms = platforms.linux;
       };
-    }) (attrs: {
+    }).overrideAttrs (attrs: {
       patchPhase = (attrs.patchPhase or "") + optionalString (stdenv.isLinux) ''
         # Webstorm tries to use bundled jre if available.
         # Lets prevent this for the moment
@@ -269,12 +269,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2020.3.1"; /* updated by script */
+    version = "2020.3.3"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "1jfvwir79s0kcqmlx6bbkmc42bplgl7814mnqfcsdzni1qv62pws"; /* updated by script */
+      sha256 = "10s0jkxi892pg7d2slh7cvrd0ch2223qms3c9v1ax0n6ymfkcw14"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -282,12 +282,12 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2020.3.1"; /* updated by script */
+    version = "2020.3.2"; /* updated by script */
     description = "Your Swiss Army Knife for Databases and SQL";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
-      sha256 = "0jk7ywxk983ld5x71a59dh1hvlnli3sbvg7fbicahas5ml8clxfv"; /* updated by script */
+      sha256 = "1wjaavgslwpz4jniszswdy10rk3622i1w3awdwhgjlcc6mwkwz1f"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
     update-channel = "DataGrip RELEASE";
@@ -295,12 +295,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2020.3.1"; /* updated by script */
+    version = "2020.3.4"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "12gi1a2bmafmy7qgqwv3a7b5b46dlhw4ahmkm5pkq6pmxl4y6dmk"; /* updated by script */
+      sha256 = "148rs9w0fqr5xzhnq5bd473j4vnb69kf8yxxjmwdp25z2d7x47ip"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand RELEASE";
@@ -308,12 +308,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.3"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "0zkjmvi27b69xrkn4s6f5788n5yn044phgf48kamfqfs37q4xf1d"; /* updated by script */
+      sha256 = "1msfl8qq0aday4ssip73r0y096mrb89mr7z2j4mpqhkzgsmvpjk0"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -321,12 +321,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.3"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
-      sha256 = "1vac21d9p52z4k1dl903rc2dbbcf873xbg8rx1fp9nsaaphnc9lq"; /* updated by script */
+      sha256 = "0szq8lqp1h7kci8kqd1bb3g16j3p5f4dfmbccbyrrwsram3hvjgi"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -334,12 +334,12 @@ in
 
   mps = buildMps rec {
     name = "mps-${version}";
-    version = "2020.3"; /* updated by script */
+    version = "2020.3.2"; /* updated by script */
     description = "Create your own domain-specific language";
-    license = lib.licenses.unfree;
+    license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/mps/2020.3/MPS-${version}.tar.gz";
-      sha256 = "0dr1z2sxarz1xif4swxx28hpzsyjd86m0c3xdaw5lmpqwqlzvc5h"; /* updated by script */
+      sha256 = "0vskzia48jq50bjdqw993gizvvd59f3qlszbsdp7xg5a3afbk7p3"; /* updated by script */
     };
     wmClass = "jetbrains-mps";
     update-channel = "MPS RELEASE";
@@ -347,12 +347,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2020.3.1"; /* updated by script */
+    version = "2020.3.3"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "1c5j3mbg8scsl4c90cjahdk5gs5q72y5a8fhkqa9zmy6di42k99x"; /* updated by script */
+      sha256 = "0arff0882xw1azbxpn1n3wbc5ncg8gmfim3jf6rq2dky8kp9ylkm"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm RELEASE";
@@ -360,12 +360,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.4"; /* updated by script */
     description = "PyCharm Community Edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "1z3w6aah635fdrhrzp5af6sgj269jk7mv8vgdd83gxillkx9vq9k"; /* updated by script */
+      sha256 = "0xh0hb0v3ilgqjljh22c75hkllqgqbpppplni2dz2pv9rb3r5dv5"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm RELEASE";
@@ -373,12 +373,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.4"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "1fbb8v40q7vgn5v5dyxb211abr8swnxa3gw18kh3vlk6yc2crzfw"; /* updated by script */
+      sha256 = "18gkjc52qpghs721rkbsj03kaf6n8c8sxg57b2d82hjckjgm6q10"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm RELEASE";
@@ -386,12 +386,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.4"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
-      sha256 = "1dkgbd2nqkjcswf7j3pnrsaq9n5wk42abz2c4wgkrh1zrpgihd0j"; /* updated by script */
+      sha256 = "1v99yqj83aw9j400z3v24n7xnyxzw5vm0b3rwd4yb8w3ajl59gq1"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
@@ -399,12 +399,12 @@ in
 
   ruby-mine = buildRubyMine rec {
     name = "ruby-mine-${version}";
-    version = "2020.3.1"; /* updated by script */
+    version = "2020.3.2"; /* updated by script */
     description = "The Most Intelligent Ruby and Rails IDE";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "0drxzz6k0cmhir4szg8nwmsi9qh380vrryghmpvx9w83yrcain4c"; /* updated by script */
+      sha256 = "17x3sz4jkz2px25gj813xqrrb2cm7mdl6m5a22zg086phym66g3c"; /* updated by script */
     };
     wmClass = "jetbrains-rubymine";
     update-channel = "RubyMine RELEASE";
@@ -412,12 +412,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.3"; /* updated by script */
     description = "Professional IDE for Web and JavaScript development";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "1jpa4gfy0xmmscjqca4pvvwvh4h3lg02nbf1m5wcsjdcywbk9y40"; /* updated by script */
+      sha256 = "0szq7qz5p1ksmqdy1rma5rfl0d9dy9qmhz8k5id4zdpyz2jsacfb"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WebStorm RELEASE";
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/update.pl b/nixpkgs/pkgs/applications/editors/jetbrains/update.pl
index b4a96228db40..6f0a451849a0 100755
--- a/nixpkgs/pkgs/applications/editors/jetbrains/update.pl
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/update.pl
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i perl -p perl perlPackages.LWPProtocolhttps perlPackages.FileSlurp
+#!nix-shell -i perl -p perl perlPackages.LWPProtocolHttps perlPackages.FileSlurp
 
 use strict;
 use List::Util qw(reduce);
diff --git a/nixpkgs/pkgs/applications/editors/jucipp/default.nix b/nixpkgs/pkgs/applications/editors/jucipp/default.nix
index 95b41ba5caf0..7304219e2369 100644
--- a/nixpkgs/pkgs/applications/editors/jucipp/default.nix
+++ b/nixpkgs/pkgs/applications/editors/jucipp/default.nix
@@ -15,6 +15,9 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ xnwdd ];
+    # error: token ""1.1"" is not valid in preprocessor expression
+    # TODO: fix pname being different from the attribute name
+    broken = true;
   };
 
   src = fetchgit {
diff --git a/nixpkgs/pkgs/applications/editors/jupp/default.nix b/nixpkgs/pkgs/applications/editors/jupp/default.nix
index e134113e23fa..c31c1fe10c05 100644
--- a/nixpkgs/pkgs/applications/editors/jupp/default.nix
+++ b/nixpkgs/pkgs/applications/editors/jupp/default.nix
@@ -1,31 +1,41 @@
-{ lib, stdenv, fetchurl, ncurses, gpm }:
+{ lib
+, stdenv
+, fetchurl
+, ncurses
+, gpm
+}:
 
 stdenv.mkDerivation rec {
-
   pname = "jupp";
-  version = "39";
+  version = "40";
   srcName = "joe-3.1${pname}${version}";
 
   src = fetchurl {
     urls = [
       "https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz"
-      "https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ];
-    sha256 = "14gys92dy3kq9ikigry7q2x4w5v2z76d97vp212bddrxiqy5np8d";
+      "https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz"
+    ];
+    sha256 = "S+1DnN5/K+KU6W5J7z6RPqkPvl6RTbiIQD46J+gDWxo=";
   };
 
   preConfigure = "chmod +x ./configure";
 
-  buildInputs = [ ncurses gpm ];
+  buildInputs = [
+    gpm
+    ncurses
+  ];
 
   configureFlags = [
     "--enable-curses"
-    "--enable-termcap"
-    "--enable-termidx"
     "--enable-getpwnam"
     "--enable-largefile"
+    "--enable-termcap"
+    "--enable-termidx"
   ];
 
   meta = with lib; {
+    homepage = "http://www.mirbsd.org/jupp.htm";
+    downloadPage = "https://www.mirbsd.org/MirOS/dist/jupp/";
     description = "A portable fork of Joe's editor";
     longDescription = ''
       This is the portable version of JOE's Own Editor, which is currently
@@ -35,8 +45,8 @@ stdenv.mkDerivation rec {
       and has a lot of bugs fixed. It is based upon an older version of joe
       because these behave better overall.
     '';
-    homepage = "http://www.mirbsd.org/jupp.htm";
-    license = licenses.gpl1;
+    license = licenses.gpl1Only;
     maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix
new file mode 100644
index 000000000000..5ff2a03441de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix
@@ -0,0 +1,46 @@
+# Deprecated aliases - for backward compatibility
+
+lib: overriden:
+
+with overriden;
+
+let
+  # Removing recurseForDerivation prevents derivations of aliased attribute
+  # set to appear while listing all the packages available.
+  removeRecurseForDerivations = alias: with lib;
+    if alias.recurseForDerivations or false then
+      removeAttrs alias ["recurseForDerivations"]
+    else alias;
+
+  # Disabling distribution prevents top-level aliases for non-recursed package
+  # sets from building on Hydra.
+  removeDistribute = alias: with lib;
+    if isDerivation alias then
+      dontDistribute alias
+    else alias;
+
+  # Make sure that we are not shadowing something from
+  # all-packages.nix.
+  checkInPkgs = n: alias: if builtins.hasAttr n overriden
+                          then throw "Alias ${n} is still in kakounePlugins"
+                          else alias;
+
+  mapAliases = aliases:
+     lib.mapAttrs (n: alias: removeDistribute
+                             (removeRecurseForDerivations
+                              (checkInPkgs n alias)))
+                     aliases;
+
+  deprecations = lib.mapAttrs (old: info:
+    throw "${old} was renamed to ${info.new} on ${info.date}. Please update to ${info.new}."
+  ) (builtins.fromJSON (builtins.readFile ./deprecated.json));
+
+in
+mapAliases ({
+  kak-auto-pairs         = auto-pairs-kak; # backwards compat, added 2021-01-04
+  kak-buffers            = kakoune-buffers; # backwards compat, added 2021-01-04
+  kak-fzf                = fzf-kak; # backwards compat, added 2021-01-04
+  kak-powerline          = powerline-kak; # backwards compat, added 2021-01-04
+  kak-prelude            = prelude-kak; # backwards compat, added 2021-01-04
+  kak-vertical-selection = kakoune-vertical-selection; # backwards compat, added 2021-01-04
+} // deprecations)
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/build-kakoune-plugin.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/build-kakoune-plugin.nix
new file mode 100644
index 000000000000..f35a175312c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/build-kakoune-plugin.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, rtpPath ? "share/kak/autoload/plugins" }:
+rec {
+  buildKakounePlugin = attrs@{
+    name ? "${attrs.pname}-${attrs.version}",
+    namePrefix ? "kakplugin-",
+    src,
+    unpackPhase ? "",
+    configurePhase ? "",
+    buildPhase ? "",
+    preInstall ? "",
+    postInstall ? "",
+    path ? lib.getName name,
+    ...
+  }:
+    stdenv.mkDerivation ((builtins.removeAttrs attrs [ "namePrefix" "path" ]) // {
+      name = namePrefix + name;
+
+      installPhase = ''
+        runHook preInstall
+
+        target=$out/${rtpPath}/${path}
+        mkdir -p $out/${rtpPath}
+        cp -r . $target
+
+        runHook postInstall
+      '';
+    });
+
+  buildKakounePluginFrom2Nix = attrs: buildKakounePlugin ({
+    buildPhase = ":";
+    configurePhase = ":";
+  } // attrs);
+}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix
deleted file mode 100644
index 3fa91113bbad..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchFromGitLab }:
-
-stdenv.mkDerivation {
-  name = "case.kak";
-  version = "unstable-2020-04-06";
-
-  src = fetchFromGitLab {
-    owner = "FlyingWombat";
-    repo = "case.kak";
-    rev = "6f1511820aa3abfa118e0f856118adc8113e2185";
-    sha256 = "002njrlwgakqgp74wivbppr9qyn57dn4n5bxkr6k6nglk9qndwdp";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc/case.kak $out/share/kak/autoload/plugins
-  '';
-
-  meta = with lib; {
-    description = "Case convention conversion for Kakoune";
-    homepage = "https://gitlab.com/FlyingWombat/case.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platform = platforms.all;
-  };
-}
-
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix
index 950229baee08..1fe16a4e60c1 100644
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix
@@ -1,17 +1,25 @@
-{ pkgs, parinfer-rust, rep }:
+{ callPackage, config, kakouneUtils, lib }:
 
-{
-  inherit parinfer-rust rep;
+let
 
-  case-kak = pkgs.callPackage ./case.kak.nix { };
-  kak-ansi = pkgs.callPackage ./kak-ansi.nix { };
-  kak-auto-pairs = pkgs.callPackage ./kak-auto-pairs.nix { };
-  kak-buffers = pkgs.callPackage ./kak-buffers.nix { };
-  kak-fzf = pkgs.callPackage ./kak-fzf.nix { };
-  kak-plumb = pkgs.callPackage ./kak-plumb.nix { };
-  kak-powerline = pkgs.callPackage ./kak-powerline.nix { };
-  kak-prelude = pkgs.callPackage ./kak-prelude.nix { };
-  kak-vertical-selection = pkgs.callPackage ./kak-vertical-selection.nix { };
-  openscad-kak = pkgs.callPackage ./openscad.kak.nix { };
-  quickscope-kak = pkgs.callPackage ./quickscope.kak.nix { };
-}
+  inherit (kakouneUtils.override {}) buildKakounePluginFrom2Nix;
+
+  plugins = callPackage ./generated.nix {
+    inherit buildKakounePluginFrom2Nix overrides;
+  };
+
+  # TL;DR
+  # * Add your plugin to ./kakoune-plugin-names
+  # * run ./update.py
+  #
+  # If additional modifications to the build process are required,
+  # add to ./overrides.nix.
+  overrides = callPackage ./overrides.nix {
+    inherit buildKakounePluginFrom2Nix;
+  };
+
+  aliases = lib.optionalAttrs (config.allowAliases or true) (import ./aliases.nix lib plugins);
+
+in
+
+plugins // aliases
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/deprecated.json b/nixpkgs/pkgs/applications/editors/kakoune/plugins/deprecated.json
new file mode 100644
index 000000000000..0967ef424bce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/deprecated.json
@@ -0,0 +1 @@
+{}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/generated.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/generated.nix
new file mode 100644
index 000000000000..4fada31a0f54
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/generated.nix
@@ -0,0 +1,211 @@
+# This file has been generated by ./pkgs/applications/editors/kakoune/plugins/update.py. Do not edit!
+{ lib, buildKakounePluginFrom2Nix, fetchFromGitHub, overrides ? (self: super: {}) }:
+let
+  packages = ( self:
+{
+  active-window-kak = buildKakounePluginFrom2Nix {
+    pname = "active-window-kak";
+    version = "2020-05-13";
+    src = fetchFromGitHub {
+      owner = "greenfork";
+      repo = "active-window.kak";
+      rev = "988db69cfbb88bd741d089bb43b0be551693e7c1";
+      sha256 = "1fv1cp9q212gamf9z2papl5xcl2w31fpcmbgdzbxcxdl1pvfsqp8";
+    };
+    meta.homepage = "https://github.com/greenfork/active-window.kak/";
+  };
+
+  auto-pairs-kak = buildKakounePluginFrom2Nix {
+    pname = "auto-pairs-kak";
+    version = "2020-10-04";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "auto-pairs.kak";
+      rev = "fd735ec149ef0d9ca5f628a95b1e52858b5afbdc";
+      sha256 = "07795kv9njlnp6mckwv141ny2ns6wyf5r0dfjaxh9ngd105zgif1";
+    };
+    meta.homepage = "https://github.com/alexherbo2/auto-pairs.kak/";
+  };
+
+  connect-kak = buildKakounePluginFrom2Nix {
+    pname = "connect-kak";
+    version = "2021-02-24";
+    src = fetchFromGitHub {
+      owner = "kakounedotcom";
+      repo = "connect.kak";
+      rev = "a536605a208149eed58986bda54f3dda215dfe61";
+      sha256 = "1svw64zk28sn271vjyzvq21zaln13vnx59rxnxah6adq8n5nkr4a";
+    };
+    meta.homepage = "https://github.com/kakounedotcom/connect.kak/";
+  };
+
+  fzf-kak = buildKakounePluginFrom2Nix {
+    pname = "fzf-kak";
+    version = "2021-03-15";
+    src = fetchFromGitHub {
+      owner = "andreyorst";
+      repo = "fzf.kak";
+      rev = "4e6c9a857511fccdbbc835a1c9acb205b6486a4c";
+      sha256 = "0syhhdlsm7vg6hcd2n2acag9g562z49rbb5smh5p2gnplhmp93i0";
+    };
+    meta.homepage = "https://github.com/andreyorst/fzf.kak/";
+  };
+
+  kakoune-buffer-switcher = buildKakounePluginFrom2Nix {
+    pname = "kakoune-buffer-switcher";
+    version = "2020-12-27";
+    src = fetchFromGitHub {
+      owner = "occivink";
+      repo = "kakoune-buffer-switcher";
+      rev = "6a27c45db87a23070c34fab36d2f8d812cd002a6";
+      sha256 = "1rmwy317908v8p54806m721bpzm8sgygb9abri34537ka6r05y5j";
+    };
+    meta.homepage = "https://github.com/occivink/kakoune-buffer-switcher/";
+  };
+
+  kakoune-buffers = buildKakounePluginFrom2Nix {
+    pname = "kakoune-buffers";
+    version = "2020-06-11";
+    src = fetchFromGitHub {
+      owner = "Delapouite";
+      repo = "kakoune-buffers";
+      rev = "67959fbad727ba8470fe8cd6361169560f4fb532";
+      sha256 = "09prhzz4yzf6ryw0npd1gpcfp77681vgawpp1ilfvbf25xgbbz33";
+    };
+    meta.homepage = "https://github.com/Delapouite/kakoune-buffers/";
+  };
+
+  kakoune-easymotion = buildKakounePluginFrom2Nix {
+    pname = "kakoune-easymotion";
+    version = "2020-03-09";
+    src = fetchFromGitHub {
+      owner = "danr";
+      repo = "kakoune-easymotion";
+      rev = "0ca75450023a149efc70e8e383e459b571355c70";
+      sha256 = "15czvl0qj2k767pysr6xk2v31mkhvcbmv76xs2a8yrslchms70b5";
+    };
+    meta.homepage = "https://github.com/danr/kakoune-easymotion/";
+  };
+
+  kakoune-extra-filetypes = buildKakounePluginFrom2Nix {
+    pname = "kakoune-extra-filetypes";
+    version = "2021-01-15";
+    src = fetchFromGitHub {
+      owner = "kakoune-editor";
+      repo = "kakoune-extra-filetypes";
+      rev = "c6f8aaccd8c9cd6b487964c8943416e21fbe7c18";
+      sha256 = "1vkff8xbycfgxv8x09cvc79qcg5fdzn2x77mbmifmkq236khrwrg";
+    };
+    meta.homepage = "https://github.com/kakoune-editor/kakoune-extra-filetypes/";
+  };
+
+  kakoune-rainbow = buildKakounePluginFrom2Nix {
+    pname = "kakoune-rainbow";
+    version = "2020-09-01";
+    src = fetchFromGitHub {
+      owner = "listentolist";
+      repo = "kakoune-rainbow";
+      rev = "d09103e8d268cf4621215bf162a0244c9482be3c";
+      sha256 = "1i3id7xw0j4z1a14mscr68ckpgvcwsjpl86lr864wy7w7qcmblx6";
+    };
+    meta.homepage = "https://github.com/listentolist/kakoune-rainbow/";
+  };
+
+  kakoune-registers = buildKakounePluginFrom2Nix {
+    pname = "kakoune-registers";
+    version = "2020-06-19";
+    src = fetchFromGitHub {
+      owner = "Delapouite";
+      repo = "kakoune-registers";
+      rev = "9531947baecd83c1d4c3bea0adf10f4462f1e120";
+      sha256 = "08v9ndghh7wvr8rsrqm05gksk9ai5vnwvw9gwqasbppb48cv4a8c";
+    };
+    meta.homepage = "https://github.com/Delapouite/kakoune-registers/";
+  };
+
+  kakoune-vertical-selection = buildKakounePluginFrom2Nix {
+    pname = "kakoune-vertical-selection";
+    version = "2019-04-11";
+    src = fetchFromGitHub {
+      owner = "occivink";
+      repo = "kakoune-vertical-selection";
+      rev = "c420f8b867ce47375fac303886e31623669a42b7";
+      sha256 = "13jdyd2j45wvgqvxdzw9zww14ly93bqjb6700zzxj7mkbiff6wsb";
+    };
+    meta.homepage = "https://github.com/occivink/kakoune-vertical-selection/";
+  };
+
+  openscad-kak = buildKakounePluginFrom2Nix {
+    pname = "openscad-kak";
+    version = "2020-12-10";
+    src = fetchFromGitHub {
+      owner = "mayjs";
+      repo = "openscad.kak";
+      rev = "ba51bbdcd96ccf94bb9239bef1481b6f37125849";
+      sha256 = "15dybd6dnnwla6mj8sw83nwd62para1syxzifznl6rz6kp8vqjjj";
+    };
+    meta.homepage = "https://github.com/mayjs/openscad.kak/";
+  };
+
+  powerline-kak = buildKakounePluginFrom2Nix {
+    pname = "powerline-kak";
+    version = "2021-02-25";
+    src = fetchFromGitHub {
+      owner = "andreyorst";
+      repo = "powerline.kak";
+      rev = "64ad98b6c85e63345563671b043960464d51c4b0";
+      sha256 = "09w2sk19qi64hgsyg4gb407vyppnlgk272mqbinz2r3apy6szkl3";
+    };
+    meta.homepage = "https://github.com/andreyorst/powerline.kak/";
+  };
+
+  prelude-kak = buildKakounePluginFrom2Nix {
+    pname = "prelude-kak";
+    version = "2021-02-24";
+    src = fetchFromGitHub {
+      owner = "kakounedotcom";
+      repo = "prelude.kak";
+      rev = "5dbdc020c546032885c1fdb463e366cc89fc15ad";
+      sha256 = "1pncr8azqvl2z9yvzhc68p1s9fld8cvak8yz88zgrp5ypx2cxl8c";
+    };
+    meta.homepage = "https://github.com/kakounedotcom/prelude.kak/";
+  };
+
+  replace-mode-kak = buildKakounePluginFrom2Nix {
+    pname = "replace-mode-kak";
+    version = "2020-10-07";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "replace-mode.kak";
+      rev = "5f4c73cdbaf5aeb964ee35ad4b9081b233af90c0";
+      sha256 = "1cmylx99bm7jwfb4hclb69sdc4n8f29ssyy2byjiw53ni9rnc8q0";
+    };
+    meta.homepage = "https://github.com/alexherbo2/replace-mode.kak/";
+  };
+
+  sleuth-kak = buildKakounePluginFrom2Nix {
+    pname = "sleuth-kak";
+    version = "2020-11-06";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "sleuth.kak";
+      rev = "911db8bd208ad0d289b8fa15a2ac665ff39bd6bd";
+      sha256 = "0g41c0038fpmihqva71xl4vfbmvsp13i47gp6fnmaikajpynzc51";
+    };
+    meta.homepage = "https://github.com/alexherbo2/sleuth.kak/";
+  };
+
+  tabs-kak = buildKakounePluginFrom2Nix {
+    pname = "tabs-kak";
+    version = "2021-02-16";
+    src = fetchFromGitHub {
+      owner = "enricozb";
+      repo = "tabs.kak";
+      rev = "1aaa8cd89e404cbbd76d44ff8089de0951612fbf";
+      sha256 = "0dfz6j6yxl65jbh4xvpiy2abr2sdjyalynzhl28y7l1gzqv4ni3j";
+    };
+    meta.homepage = "https://github.com/enricozb/tabs.kak/";
+  };
+
+});
+in lib.fix' (lib.extends overrides packages)
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix
deleted file mode 100644
index f34ee6d29990..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  name = "kak-ansi";
-  version = "0.2.1";
-
-  src = fetchFromGitHub {
-    owner = "eraserhd";
-    repo = "kak-ansi";
-    rev = "v${version}";
-    sha256 = "0ddjih8hfyf6s4g7y46p1355kklaw1ydzzh61141i0r45wyb2d0d";
-  };
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/kak/autoload/plugins/
-    cp kak-ansi-filter $out/bin/
-    # Hard-code path of filter and don't try to build when Kakoune boots
-    sed '
-      /^declare-option.* ansi_filter /i\
-declare-option -hidden str ansi_filter %{'"$out"'/bin/kak-ansi-filter}
-      /^declare-option.* ansi_filter /,/^}/d
-    ' rc/ansi.kak >$out/share/kak/autoload/plugins/ansi.kak
-  '';
-
-  meta = with lib; {
-    description = "Kakoune support for rendering ANSI code";
-    homepage = "https://github.com/eraserhd/kak-ansi";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
deleted file mode 100644
index 36842f999a56..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-stdenv.mkDerivation {
-  name = "kak-auto-pairs";
-  version = "2020-07-14";
-  src = fetchFromGitHub {
-    owner = "alexherbo2";
-    repo = "auto-pairs.kak";
-    rev = "5b4b3b723c34c8b7f40cee60868204974349bf9f";
-    sha256 = "1wgrv03f1lkzflbbaz8n23glij5rvfxf8pcqysd668mbx1hcrk9i";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/auto-pairs
-  '';
-
-  meta = with lib;
-  { description = "Kakoune extension to enable automatic closing of pairs";
-    homepage = "https://github.com/alexherbo2/auto-pairs.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
deleted file mode 100644
index 7075ae3ef0a3..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchFromGitHub, lib }:
-stdenv.mkDerivation {
-  name = "kak-buffers";
-  version = "2019-04-03";
-  src = fetchFromGitHub {
-    owner = "Delapouite";
-    repo = "kakoune-buffers";
-    rev = "3b35b23ac2be661a37c085d34dd04d066450f757";
-    sha256 = "0f3g0v1sjinii3ig9753jjj35v2km4h9bcfw9xgzwz8b10d75bax";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r buffers.kak $out/share/kak/autoload/plugins
-  '';
-
-  meta = with lib;
-  { description = "Ease navigation between opened buffers in Kakoune";
-    homepage = "https://github.com/Delapouite/kakoune-buffers";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
deleted file mode 100644
index b52584b44562..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, fzf }:
-
-assert lib.asserts.assertOneOf "fzf" fzf.pname [ "fzf" "skim" ];
-
-stdenv.mkDerivation {
-  name = "kak-fzf";
-  version = "2020-07-26";
-
-  src = fetchFromGitHub {
-    owner = "andreyorst";
-    repo = "fzf.kak";
-    rev = "f23daa698ad95493fbd675ae153e3cac13ef34e9";
-    hash = "sha256-BfXHTJ371ThOizMI/4BAbdJoaltGSP586hz4HqX1KWA=";
-  };
-
-  configurePhase = ''
-    if [[ -x "${fzf}/bin/fzf" ]]; then
-      fzfImpl='${fzf}/bin/fzf'
-    else
-      fzfImpl='${fzf}/bin/sk'
-    fi
-
-    substituteInPlace rc/fzf.kak \
-      --replace \'fzf\' \'"$fzfImpl"\'
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/fzf
-  '';
-
-  meta = with lib;
-  { description = "Kakoune plugin that brings integration with fzf";
-    homepage = "https://github.com/andreyorst/fzf.kak";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix
deleted file mode 100644
index 0c59ca9a08f0..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, kakoune-unwrapped, plan9port, ... }:
-
-stdenv.mkDerivation rec {
-  pname = "kak-plumb";
-  version = "0.1.1";
-
-  src = fetchFromGitHub {
-    owner = "eraserhd";
-    repo = "kak-plumb";
-    rev = "v${version}";
-    sha256 = "1rz6pr786slnf1a78m3sj09axr4d2lb5rg7sfa4mfg1zcjh06ps6";
-  };
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/kak/autoload/plugins/
-    substitute rc/plumb.kak $out/share/kak/autoload/plugins/plumb.kak \
-      --replace '9 plumb' '${plan9port}/bin/9 plumb'
-    substitute edit-client $out/bin/edit-client \
-      --replace '9 9p' '${plan9port}/bin/9 9p' \
-      --replace 'kak -p' '${kakoune-unwrapped}/bin/kak -p'
-    chmod +x $out/bin/edit-client
-  '';
-
-  meta = with lib; {
-    description = "Kakoune integration with the Plan 9 plumber";
-    homepage = "https://github.com/eraserhd/kak-plumb";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
deleted file mode 100644
index 318ae2958b61..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, git, fetchFromGitHub, lib }:
-stdenv.mkDerivation {
-  name = "kak-powerline";
-  version = "2020-08-22";
-  src = fetchFromGitHub {
-    owner = "jdugan6240";
-    repo = "powerline.kak";
-    rev = "d641b2cd8024f872bcda23f9256e7aff36da02ae";
-    sha256 = "65948f5ef3ab2f46f6d186ad752665c251d887631d439949decc2654a67958a4";
-  };
-
-  configurePhase = ''
-    substituteInPlace rc/modules/git.kak \
-      --replace \'git\' \'${git}/bin/git\'
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/powerline
-  '';
-
-  meta = with lib;
-  { description = "Kakoune modeline, but with passion";
-    homepage = "https://github.com/jdugan6240/powerline.kak";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
deleted file mode 100644
index e6f06f4b8e64..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-stdenv.mkDerivation {
-  name = "kak-prelude";
-  version = "2020-06-09";
-
-  src = fetchFromGitHub {
-    owner = "alexherbo2";
-    repo = "prelude.kak";
-    rev = "f1e0f4d5cb62a36924e3f8ba6824d6aed8c19d23";
-    sha256 = "1pncr8azqvl2z9yvzhc68p1s9fld8cvak8yz88zgrp5ypx2cxl8c";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/prelude
-  '';
-
-  meta = with lib;
-  { description = "Prelude of shell blocks for Kakoune.";
-    homepage = "https://github.com/alexherbo2/prelude.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ buffet ];
-    platform = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
deleted file mode 100644
index 2ef9d44854fb..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchFromGitHub, lib }:
-stdenv.mkDerivation {
-  name = "kak-vertical-selection";
-  version = "2019-04-11";
-  src = fetchFromGitHub {
-    owner = "occivink";
-    repo = "kakoune-vertical-selection";
-    rev = "c420f8b867ce47375fac303886e31623669a42b7";
-    sha256 = "13jdyd2j45wvgqvxdzw9zww14ly93bqjb6700zzxj7mkbiff6wsb";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r vertical-selection.kak $out/share/kak/autoload/plugins
-  '';
-
-  meta = with lib;
-  { description = "Select up and down lines that match the same pattern in Kakoune";
-    homepage = "https://github.com/occivink/kakoune-vertical-selection";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
new file mode 100644
index 000000000000..b18741460890
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
@@ -0,0 +1,17 @@
+alexherbo2/auto-pairs.kak
+alexherbo2/replace-mode.kak
+alexherbo2/sleuth.kak
+andreyorst/fzf.kak
+andreyorst/powerline.kak
+danr/kakoune-easymotion
+Delapouite/kakoune-buffers
+Delapouite/kakoune-registers
+enricozb/tabs.kak@main
+greenfork/active-window.kak
+kakoune-editor/kakoune-extra-filetypes
+kakounedotcom/connect.kak
+kakounedotcom/prelude.kak
+listentolist/kakoune-rainbow
+mayjs/openscad.kak
+occivink/kakoune-buffer-switcher
+occivink/kakoune-vertical-selection
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kakoune-utils.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kakoune-utils.nix
new file mode 100644
index 000000000000..11a1cc130d6c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kakoune-utils.nix
@@ -0,0 +1,4 @@
+{ lib, stdenv }:
+{
+  inherit (import ./build-kakoune-plugin.nix { inherit lib stdenv; }) buildKakounePlugin buildKakounePluginFrom2Nix;
+}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix
deleted file mode 100644
index 57c1033ebbdd..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation {
-  pname = "openscad.kak";
-  version = "unstable-2019-11-08";
-
-  src = fetchFromGitHub {
-    owner = "mayjs";
-    repo = "openscad.kak";
-    rev = "d9143d5e7834e3356b49720664d5647cab9db7cc";
-    sha256 = "0j4dqhrn56z77hdalfdxagwz8h6nwr8s9i4w0bs2644k72lsm2ix";
-  };
-
-  installPhase = ''
-    install -Dm644 rc/openscad.kak -t $out/share/kak/autoload/plugins/
-  '';
-
-  meta = with lib; {
-    description = "Syntax highlighting for OpenSCAD files";
-    homepage = "https://github.com/mayjs/openscad.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix
new file mode 100644
index 000000000000..2ca24cf661a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix
@@ -0,0 +1,161 @@
+{ lib, stdenv, fetchFromGitHub, fetchFromGitLab, fetchgit
+, buildKakounePluginFrom2Nix
+, kak-lsp, parinfer-rust, rep
+, fzf, git, guile, kakoune-unwrapped, lua5_3, plan9port
+}:
+
+self: super: {
+  inherit kak-lsp parinfer-rust rep;
+
+  case-kak = buildKakounePluginFrom2Nix {
+    pname = "case-kak";
+    version = "2020-04-06";
+    src = fetchFromGitLab {
+      owner = "FlyingWombat";
+      repo = "case.kak";
+      rev = "6f1511820aa3abfa118e0f856118adc8113e2185";
+      sha256 = "002njrlwgakqgp74wivbppr9qyn57dn4n5bxkr6k6nglk9qndwdp";
+    };
+    meta.homepage = "https://gitlab.com/FlyingWombat/case.kak";
+  };
+
+  fzf-kak = super.fzf-kak.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      if [[ -x "${fzf}/bin/fzf" ]]; then
+        fzfImpl='${fzf}/bin/fzf'
+      else
+        fzfImpl='${fzf}/bin/sk'
+      fi
+
+      substituteInPlace $out/share/kak/autoload/plugins/fzf-kak/rc/fzf.kak \
+        --replace \'fzf\' \'"$fzfImpl"\'
+    '';
+  });
+
+  kak-ansi = stdenv.mkDerivation rec {
+    pname = "kak-ansi";
+    version = "0.2.3";
+
+    src = fetchFromGitHub {
+      owner = "eraserhd";
+      repo = "kak-ansi";
+      rev = "v${version}";
+      sha256 = "pO7M3MjKMJQew9O20KALEvsXLuCKPYGGTtuN/q/kj8Q=";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin $out/share/kak/autoload/plugins/
+      cp kak-ansi-filter $out/bin/
+      # Hard-code path of filter and don't try to build when Kakoune boots
+      sed '
+        /^declare-option.* ansi_filter /i\
+declare-option -hidden str ansi_filter %{'"$out"'/bin/kak-ansi-filter}
+        /^declare-option.* ansi_filter /,/^}/d
+      ' rc/ansi.kak >$out/share/kak/autoload/plugins/ansi.kak
+    '';
+
+    meta = with lib; {
+      description = "Kakoune support for rendering ANSI code";
+      homepage = "https://github.com/eraserhd/kak-ansi";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+
+  kak-plumb = stdenv.mkDerivation rec {
+    pname = "kak-plumb";
+    version = "0.1.1";
+
+    src = fetchFromGitHub {
+      owner = "eraserhd";
+      repo = "kak-plumb";
+      rev = "v${version}";
+      sha256 = "1rz6pr786slnf1a78m3sj09axr4d2lb5rg7sfa4mfg1zcjh06ps6";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin $out/share/kak/autoload/plugins/
+      substitute rc/plumb.kak $out/share/kak/autoload/plugins/plumb.kak \
+        --replace '9 plumb' '${plan9port}/bin/9 plumb'
+      substitute edit-client $out/bin/edit-client \
+        --replace '9 9p' '${plan9port}/bin/9 9p' \
+        --replace 'kak -p' '${kakoune-unwrapped}/bin/kak -p'
+      chmod +x $out/bin/edit-client
+    '';
+
+    meta = with lib; {
+      description = "Kakoune integration with the Plan 9 plumber";
+      homepage = "https://github.com/eraserhd/kak-plumb";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+
+  kakoune-rainbow = super.kakoune-rainbow.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      mkdir -p $out/bin
+      mv $out/share/kak/autoload/plugins/kakoune-rainbow/bin/kak-rainbow.scm $out/bin
+      substituteInPlace $out/bin/kak-rainbow.scm \
+        --replace '/usr/bin/env -S guile' '${guile}/bin/guile'
+      substituteInPlace $out/share/kak/autoload/plugins/kakoune-rainbow/rainbow.kak \
+        --replace '%sh{dirname "$kak_source"}' "'$out'"
+    '';
+  });
+
+  kakoune-state-save = buildKakounePluginFrom2Nix {
+    pname = "kakoune-state-save";
+    version = "2020-02-09";
+
+    src = fetchFromGitLab {
+      owner = "Screwtapello";
+      repo = "kakoune-state-save";
+      rev = "ab7c0c765326a4a80af78857469ee8c80814c52a";
+      sha256 = "AAOCG0TY3G188NnkkwMCSbkkNe487F4gwiFWwG9Yo+A=";
+    };
+
+    meta = with lib; {
+      description = "Help Kakoune save and restore state between sessions";
+      homepage = "https://gitlab.com/Screwtapello/kakoune-state-save";
+      license = licenses.mit;
+      maintainers = with maintainers; [ Flakebi ];
+      platforms = platforms.all;
+    };
+  };
+
+  powerline-kak = super.powerline-kak.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      substituteInPlace $out/share/kak/autoload/plugins/powerline-kak/rc/modules/git.kak \
+        --replace ' git ' ' ${git}/bin/git '
+    '';
+  });
+
+  quickscope-kak = buildKakounePluginFrom2Nix rec {
+    pname = "quickscope-kak";
+    version = "1.0.0";
+
+    src = fetchgit {
+      url = "https://git.sr.ht/~voroskoi/quickscope.kak";
+      rev = "v${version}";
+      sha256 = "0y1g3zpa2ql8l9rl5i2w84bka8a09kig9nq9zdchaff5pw660mcx";
+    };
+
+    buildInputs = [ lua5_3 ];
+
+    installPhase = ''
+      mkdir -p $out/share/kak/autoload/plugins/
+      cp quickscope.* $out/share/kak/autoload/plugins/
+      # substituteInPlace does not like the pipe
+      sed -e 's,[|] *lua,|${lua5_3}/bin/lua,' quickscope.kak >$out/share/kak/autoload/plugins/quickscope.kak
+    '';
+
+    meta = with lib; {
+      description = "Highlight f and t jump positions";
+      homepage = "https://sr.ht/~voroskoi/quickscope.kak/";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix
deleted file mode 100644
index 8e60e17e7928..000000000000
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchgit, lua5_3 }:
-
-stdenv.mkDerivation rec {
-  pname = "quickscope-kak";
-  version = "1.0.0";
-
-  src = fetchgit {
-    url = "https://git.sr.ht/~voroskoi/quickscope.kak";
-    rev = "v${version}";
-    sha256 = "0y1g3zpa2ql8l9rl5i2w84bka8a09kig9nq9zdchaff5pw660mcx";
-  };
-
-  buildInputs = [ lua5_3 ];
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins/
-    cp quickscope.* $out/share/kak/autoload/plugins/
-    # substituteInPlace does not like the pipe
-    sed -e 's,[|] *lua,|${lua5_3}/bin/lua,' quickscope.kak >$out/share/kak/autoload/plugins/quickscope.kak
-  '';
-
-  meta = with lib; {
-    description = "Highlight f and t jump positions";
-    homepage = "https://sr.ht/~voroskoi/quickscope.kak/";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/update.py b/nixpkgs/pkgs/applications/editors/kakoune/plugins/update.py
new file mode 100755
index 000000000000..b6a4bfe4f415
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/update.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -p nix-prefetch-git -p python3 -p python3Packages.GitPython nix -i python3
+
+# format:
+# $ nix run nixpkgs.python3Packages.black -c black update.py
+# type-check:
+# $ nix run nixpkgs.python3Packages.mypy -c mypy update.py
+# linted:
+# $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265,E402 update.py
+
+import inspect
+import os
+import sys
+from typing import List, Tuple
+from pathlib import Path
+
+# Import plugin update library from maintainers/scripts/pluginupdate.py
+ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))))
+sys.path.insert(
+    0, os.path.join(ROOT.parent.parent.parent.parent.parent, "maintainers", "scripts")
+)
+import pluginupdate
+
+GET_PLUGINS = f"""(with import <localpkgs> {{}};
+let
+  inherit (kakouneUtils.override {{}}) buildKakounePluginFrom2Nix;
+  generated = callPackage {ROOT}/generated.nix {{
+    inherit buildKakounePluginFrom2Nix;
+  }};
+  hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath ["src" "outputHash"] value;
+  getChecksum = name: value:
+    if hasChecksum value then {{
+      submodules = value.src.fetchSubmodules or false;
+      sha256 = value.src.outputHash;
+      rev = value.src.rev;
+    }} else null;
+  checksums = lib.mapAttrs getChecksum generated;
+in lib.filterAttrs (n: v: v != null) checksums)"""
+
+HEADER = "# This file has been generated by ./pkgs/applications/editors/kakoune/plugins/update.py. Do not edit!"
+
+
+def generate_nix(plugins: List[Tuple[str, str, pluginupdate.Plugin]], outfile: str):
+    sorted_plugins = sorted(plugins, key=lambda v: v[2].name.lower())
+
+    with open(outfile, "w+") as f:
+        f.write(HEADER)
+        f.write(
+            """
+{ lib, buildKakounePluginFrom2Nix, fetchFromGitHub, overrides ? (self: super: {}) }:
+let
+  packages = ( self:
+{"""
+        )
+        for owner, repo, plugin in sorted_plugins:
+            if plugin.has_submodules:
+                submodule_attr = "\n      fetchSubmodules = true;"
+            else:
+                submodule_attr = ""
+
+            f.write(
+                f"""
+  {plugin.normalized_name} = buildKakounePluginFrom2Nix {{
+    pname = "{plugin.normalized_name}";
+    version = "{plugin.version}";
+    src = fetchFromGitHub {{
+      owner = "{owner}";
+      repo = "{repo}";
+      rev = "{plugin.commit}";
+      sha256 = "{plugin.sha256}";{submodule_attr}
+    }};
+    meta.homepage = "https://github.com/{owner}/{repo}/";
+  }};
+"""
+            )
+        f.write(
+            """
+});
+in lib.fix' (lib.extends overrides packages)
+"""
+        )
+    print(f"updated {outfile}")
+
+
+def main():
+    editor = pluginupdate.Editor("kakoune", ROOT, GET_PLUGINS, generate_nix)
+    pluginupdate.update_plugins(editor)
+
+
+if __name__ == "__main__":
+    main()
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix b/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix
index 7ac56d9cb1e0..451507885ce0 100644
--- a/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix
+++ b/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix
@@ -9,7 +9,7 @@ in
   symlinkJoin {
     name = "kakoune-${kakoune.version}";
 
-    buildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
 
     paths = [ kakoune ] ++ requestedPlugins;
 
diff --git a/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix b/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix
index 23c8f0698cf0..44b4fd7bc19f 100644
--- a/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix
+++ b/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake extra-cmake-modules ];
   buildInputs = [ kdevelop-pg-qt threadweaver ktexteditor kdevelop-unwrapped ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     maintainers = [ maintainers.aanderse ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-python.nix b/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-python.nix
index 041c25f1728c..0567ee39d7dd 100644
--- a/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-python.nix
+++ b/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-python.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake extra-cmake-modules ];
   buildInputs = [ threadweaver ktexteditor kdevelop-unwrapped ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     maintainers = [ maintainers.aanderse ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix b/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix
index cb1265735f98..e1478ef6a03c 100644
--- a/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix
+++ b/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qtbase ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     maintainers = [ maintainers.ambrop72 ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/editors/kibi/default.nix b/nixpkgs/pkgs/applications/editors/kibi/default.nix
index 71833be33002..337a46c0ec6b 100644
--- a/nixpkgs/pkgs/applications/editors/kibi/default.nix
+++ b/nixpkgs/pkgs/applications/editors/kibi/default.nix
@@ -5,15 +5,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kibi";
-  version = "0.2.1";
+  version = "0.2.2";
 
-  cargoSha256 = "1cbiidq0w5f9ynb09b6828p7p7y5xhpgz47n2jsl8mp96ydhy5lv";
+  cargoSha256 = "sha256-8iEUOLFwHBLS0HQL/oLnv6lcV3V9Hm4jMqXkqPvIF9E=";
 
   src = fetchFromGitHub {
     owner = "ilai-deutel";
     repo = "kibi";
     rev = "v${version}";
-    sha256 = "1x5bvvq33380k2qhs1bwz3f9zl5q1sl7iic47pxfkzv24bpjnypb";
+    sha256 = "sha256-ox1qKWxJlUIFzEqeyzG2kqZix3AHnOKFrlpf6O5QM+k=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/editors/kodestudio/default.nix b/nixpkgs/pkgs/applications/editors/kodestudio/default.nix
index e0704cdbc859..aa7b7b194486 100644
--- a/nixpkgs/pkgs/applications/editors/kodestudio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/kodestudio/default.nix
@@ -29,7 +29,8 @@ in
         inherit sha256;
     };
 
-    buildInputs = [ makeWrapper libXScrnSaver ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ libXScrnSaver ];
 
     desktopItem = makeDesktopItem {
       name = "kodestudio";
diff --git a/nixpkgs/pkgs/applications/editors/manuskript/default.nix b/nixpkgs/pkgs/applications/editors/manuskript/default.nix
index 49dafe8fc1a3..3d3fa196117f 100644
--- a/nixpkgs/pkgs/applications/editors/manuskript/default.nix
+++ b/nixpkgs/pkgs/applications/editors/manuskript/default.nix
@@ -57,6 +57,6 @@ python3Packages.buildPythonApplication rec {
     '';
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.steveej ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/monodevelop/default.nix b/nixpkgs/pkgs/applications/editors/monodevelop/default.nix
index e5fde3e501ec..12b66370d506 100644
--- a/nixpkgs/pkgs/applications/editors/monodevelop/default.nix
+++ b/nixpkgs/pkgs/applications/editors/monodevelop/default.nix
@@ -34,10 +34,10 @@ stdenv.mkDerivation rec {
   patchFlags = [ "-p2" ];
   patches = [ ./git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch ];
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
     autoconf automake shared-mime-info intltool
-    mono gtk-sharp-2_0 gnome-sharp unzip
+    mono gtk-sharp-2_0 gnome-sharp
     dotnetPackages.NUnit
     dotnetPackages.NUnitRunners
     dotnetPackages.Nuget
diff --git a/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix b/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix
index 63be87ee86c7..90879b352e18 100644
--- a/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix
+++ b/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix
@@ -14,7 +14,7 @@ in stdenv.mkDerivation rec {
     sha256 = metadata.sha256;
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/applications/editors/nano/default.nix b/nixpkgs/pkgs/applications/editors/nano/default.nix
index cb53eb9d9d45..b55252855662 100644
--- a/nixpkgs/pkgs/applications/editors/nano/default.nix
+++ b/nixpkgs/pkgs/applications/editors/nano/default.nix
@@ -16,11 +16,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "nano";
-  version = "5.5";
+  version = "5.6.1";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "0jkyd3yzcidnvnj1k9bmplzlbd303x6xxblpp5np7zs1kfzq22rr";
+    sha256 = "02cbxqizbdlfwnz8dpq4fbzmdi4yk6fv0cragvpa0748w1cp03bn";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix b/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
index 208339c2e38d..8e86683f9bfe 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   # The default build script tries to get the version through Git, so we
   # replace it
-  prePatch = ''
+  postPatch = ''
     cat << EOF > build.rs
     use std::env;
     use std::fs::File;
@@ -31,13 +31,13 @@ rustPlatform.buildRustPackage rec {
         f.write_all(b"const VERSION: &str = \"${version}\";").unwrap();
     }
     EOF
-  '';
 
-  buildPhase = ''
-    make build
+    # Install the binary ourselves, since the Makefile doesn't have the path
+    # containing the target architecture
+    sed -e "/target\/release/d" -i Makefile
   '';
 
-  installPhase = ''
+  postInstall = ''
     make install PREFIX="${placeholder "out"}"
   '';
 
diff --git a/nixpkgs/pkgs/applications/editors/neovim/neovim-qt.nix b/nixpkgs/pkgs/applications/editors/neovim/neovim-qt.nix
new file mode 100644
index 000000000000..d925ddd2a528
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/neovim-qt.nix
@@ -0,0 +1,43 @@
+{ lib, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper
+, msgpack, neovim, pythonPackages, qtbase }:
+
+mkDerivation rec {
+  pname = "neovim-qt-unwrapped";
+  version = "0.2.16.1";
+
+  src = fetchFromGitHub {
+    owner  = "equalsraf";
+    repo   = "neovim-qt";
+    rev    = "v${version}";
+    sha256 = "0x5brrim3f21bzdmh6wyrhrislwpx1248wbx56csvic6v78hzqny";
+  };
+
+  cmakeFlags = [
+    "-DUSE_SYSTEM_MSGPACK=1"
+    "-DENABLE_TESTS=0"  # tests fail because xcb platform plugin is not found
+  ];
+
+  buildInputs = [
+    neovim.unwrapped # only used to generate help tags at build time
+    qtbase
+  ] ++ (with pythonPackages; [
+    jinja2 python msgpack
+  ]);
+
+  nativeBuildInputs = [ cmake doxygen ];
+
+  preCheck = ''
+    # The GUI tests require a running X server, disable them
+    sed -i ../test/CMakeLists.txt -e '/^add_xtest_gui/d'
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Neovim client library and GUI, in Qt5";
+    homepage = "https://github.com/equalsraf/neovim-qt";
+    license     = licenses.isc;
+    maintainers = with maintainers; [ peterhoeg ];
+    inherit (neovim.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/neovim/qt.nix b/nixpkgs/pkgs/applications/editors/neovim/qt.nix
index 8eaa9204c435..5210b6b67c8b 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/qt.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/qt.nix
@@ -1,79 +1,38 @@
 { lib, stdenv, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper
-, msgpack, neovim, pythonPackages, qtbase }:
+, msgpack, neovim, pythonPackages, qtbase, neovim-qt-unwrapped }:
 
 let
-  unwrapped = mkDerivation rec {
-    pname = "neovim-qt-unwrapped";
-    version = "0.2.16.1";
-
-    src = fetchFromGitHub {
-      owner  = "equalsraf";
-      repo   = "neovim-qt";
-      rev    = "v${version}";
-      sha256 = "0x5brrim3f21bzdmh6wyrhrislwpx1248wbx56csvic6v78hzqny";
-    };
-
-    cmakeFlags = [
-      "-DUSE_SYSTEM_MSGPACK=1"
-      "-DENABLE_TESTS=0"  # tests fail because xcb platform plugin is not found
-    ];
-
-    buildInputs = [
-      neovim.unwrapped # only used to generate help tags at build time
-      qtbase
-    ] ++ (with pythonPackages; [
-      jinja2 python msgpack
-    ]);
-
-    nativeBuildInputs = [ cmake doxygen ];
-
-    preCheck = ''
-      # The GUI tests require a running X server, disable them
-      sed -i ../test/CMakeLists.txt \
-        -e '/^add_xtest_gui/d'
-    '';
-
-    doCheck = true;
-
-    meta = with lib; {
-      description = "Neovim client library and GUI, in Qt5";
-      homepage = "https://github.com/equalsraf/neovim-qt";
-      license     = licenses.isc;
-      maintainers = with maintainers; [ peterhoeg ];
-      inherit (neovim.meta) platforms;
-      inherit version;
-    };
-  };
+  unwrapped = neovim-qt-unwrapped;
 in
-  stdenv.mkDerivation {
-    pname = "neovim-qt";
-    version = unwrapped.version;
-    buildCommand = if stdenv.isDarwin then ''
-      mkdir -p $out/Applications
-      cp -r ${unwrapped}/bin/nvim-qt.app $out/Applications
-
-      chmod -R a+w "$out/Applications/nvim-qt.app/Contents/MacOS"
-      wrapProgram "$out/Applications/nvim-qt.app/Contents/MacOS/nvim-qt" \
-        --prefix PATH : "${neovim}/bin"
-    '' else ''
-      makeWrapper '${unwrapped}/bin/nvim-qt' "$out/bin/nvim-qt" \
-        --prefix PATH : "${neovim}/bin"
-
-      # link .desktop file
-      mkdir -p "$out/share/pixmaps"
-      ln -s '${unwrapped}/share/applications' "$out/share/applications"
-      ln -s '${unwrapped}/share/pixmaps/nvim-qt.png' "$out/share/pixmaps/nvim-qt.png"
-    '';
-
-    preferLocalBuild = true;
-
-    nativeBuildInputs = [
-      makeWrapper
-    ];
-
-    passthru = {
-      inherit unwrapped;
-    };
+stdenv.mkDerivation {
+  pname = "neovim-qt";
+  version = unwrapped.version;
+  buildCommand = if stdenv.isDarwin then ''
+    mkdir -p $out/Applications
+    cp -r ${unwrapped}/bin/nvim-qt.app $out/Applications
+
+    chmod -R a+w $out/Applications/nvim-qt.app/Contents/MacOS
+    wrapProgram $out/Applications/nvim-qt.app/Contents/MacOS/nvim-qt \
+      --prefix PATH : ${neovim}/bin
+  '' else ''
+    makeWrapper ${unwrapped}/bin/nvim-qt $out/bin/nvim-qt \
+      --prefix PATH : ${neovim}/bin
+
+    # link .desktop file
+    mkdir -p $out/share/pixmaps
+    ln -s ${unwrapped}/share/applications $out/share/applications
+    ln -s ${unwrapped}/share/pixmaps/nvim-qt.png $out/share/pixmaps/nvim-qt.png
+  '';
+
+  preferLocalBuild = true;
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  passthru = {
+    inherit unwrapped;
+  };
 
-    inherit (unwrapped) meta;
-  }
+  inherit (unwrapped) meta;
+}
diff --git a/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix b/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
index 5c6c6c1a8d57..41ff62a619fb 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
@@ -106,7 +106,7 @@ let
 
     preferLocalBuild = true;
 
-    buildInputs = [makeWrapper];
+    nativeBuildInputs = [ makeWrapper ];
     passthru = { unwrapped = neovim; };
 
     meta = neovim.meta // {
diff --git a/nixpkgs/pkgs/applications/editors/netbeans/default.nix b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
index 9206b296b9ac..83c5bb6f9309 100644
--- a/nixpkgs/pkgs/applications/editors/netbeans/default.nix
+++ b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "12.2";
+  version = "12.3";
   desktopItem = makeDesktopItem {
     name = "netbeans";
     exec = "netbeans";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
-    sha512 = "b25cda9830e8fe1d05687b08cc5fa9bcac7e8e6d12776998a4da7e483b3be0d04493345e56be7e6198fa8f86428d57d4459bfa7372c2e3f918f4a1101d0a31a7";
+    sha512 = "2fy696qrfbdkzmq4cwd6l7v6rsc0bf9akh61w3azc544bq3vxl3v6s31hvg3ba0nsh0jv3nbdrk6jp1l4hwgcg9zg7kf2012a1vv2nk";
   };
 
   buildCommand = ''
@@ -56,7 +56,8 @@ stdenv.mkDerivation {
     ln -s ${desktopItem}/share/applications/* $out/share/applications
   '';
 
-  buildInputs = [ makeWrapper perl python unzip libicns imagemagick ];
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ perl python libicns imagemagick ];
 
   meta = {
     description = "An integrated development environment for Java, C, C++ and PHP";
diff --git a/nixpkgs/pkgs/applications/editors/poke/default.nix b/nixpkgs/pkgs/applications/editors/poke/default.nix
new file mode 100644
index 000000000000..47b9677e314c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/poke/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, fetchurl
+, gettext
+, help2man
+, pkg-config
+, texinfo
+, makeWrapper
+, boehmgc
+, readline
+, guiSupport ? false, tcl, tcllib, tk
+, miSupport ? true, json_c
+, nbdSupport ? !stdenv.isDarwin, libnbd
+, textStylingSupport ? true
+, dejagnu
+}:
+
+let
+  isCross = stdenv.hostPlatform != stdenv.buildPlatform;
+in stdenv.mkDerivation rec {
+  pname = "poke";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-zWjfY8dBtBYLEsvqAvJ8RxWCeUZuNEOTDSU1pFLAatY=";
+  };
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    gettext
+    help2man
+    pkg-config
+    texinfo
+  ] ++ lib.optional guiSupport makeWrapper;
+
+  buildInputs = [ boehmgc readline ]
+  ++ lib.optional guiSupport tk
+  ++ lib.optional miSupport json_c
+  ++ lib.optional nbdSupport libnbd
+  ++ lib.optional textStylingSupport gettext
+  ++ lib.optional (!isCross) dejagnu;
+
+  configureFlags = lib.optionals guiSupport [
+    "--with-tcl=${tcl}/lib"
+    "--with-tk=${tk}/lib"
+    "--with-tkinclude=${tk.dev}/include"
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = !isCross;
+  checkInputs = lib.optionals (!isCross) [ dejagnu ];
+
+  postFixup = lib.optionalString guiSupport ''
+    wrapProgram "$out/bin/poke-gui" \
+      --prefix TCLLIBPATH ' ' ${tcllib}/lib/tcllib${tcllib.version}
+  '';
+
+  meta = with lib; {
+    description = "Interactive, extensible editor for binary data";
+    homepage = "http://www.jemarch.net/poke";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres metadark ];
+    platforms = platforms.unix;
+    changelog = "https://git.savannah.gnu.org/cgit/poke.git/plain/ChangeLog?h=releases/poke-${version}";
+  };
+}
+
+# TODO: Enable guiSupport by default once it's more than just a stub
diff --git a/nixpkgs/pkgs/applications/editors/qemacs/default.nix b/nixpkgs/pkgs/applications/editors/qemacs/default.nix
new file mode 100644
index 000000000000..065dccb2b219
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/qemacs/default.nix
@@ -0,0 +1,24 @@
+{ fetchurl, lib, stdenv, xlibsWrapper, libXv, libpng }:
+
+stdenv.mkDerivation rec {
+  pname = "qemacs";
+  version = "0.3.3";
+
+  src = fetchurl {
+    url = "https://bellard.org/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "156z4wpj49i6j388yjird5qvrph7hz0grb4r44l4jf3q8imadyrg";
+  };
+
+  buildInputs = [ xlibsWrapper libpng libXv ];
+
+  preInstall = ''
+    mkdir -p $out/bin $out/man
+  '';
+
+  meta = with lib; {
+    homepage = "https://bellard.org/qemacs/";
+    description = "Very small but powerful UNIX editor";
+    license = licenses.lgpl2Only;
+    maintainers = with maintainers; [ iblech ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/qxmledit/default.nix b/nixpkgs/pkgs/applications/editors/qxmledit/default.nix
index fa4e73a37682..d2aea1344da8 100644
--- a/nixpkgs/pkgs/applications/editors/qxmledit/default.nix
+++ b/nixpkgs/pkgs/applications/editors/qxmledit/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
     export QXMLEDIT_INST_DOC_DIR="$doc"
   '';
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Simple XML editor based on qt libraries" ;
     homepage = "https://sourceforge.net/projects/qxmledit";
diff --git a/nixpkgs/pkgs/applications/editors/retext/default.nix b/nixpkgs/pkgs/applications/editors/retext/default.nix
index 19cc7bc29708..533e353a43e6 100644
--- a/nixpkgs/pkgs/applications/editors/retext/default.nix
+++ b/nixpkgs/pkgs/applications/editors/retext/default.nix
@@ -33,6 +33,10 @@ in python3.pkgs.buildPythonApplication {
         paths = map (path: "${path}/lib/aspell") enchantAspellDicts;
       }}"
     )
+
+    substituteInPlace $out/share/applications/me.mitya57.ReText.desktop \
+      --replace "Exec=ReText-${version}.data/scripts/retext %F" "Exec=$out/bin/retext %F" \
+      --replace "Icon=ReText-${version}.data/data/share/retext/icons/retext.svg" "Icon=$out/share/retext/icons/retext.svg"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/editors/sigil/default.nix b/nixpkgs/pkgs/applications/editors/sigil/default.nix
index b34441d100c3..d3d6e97f3fe2 100644
--- a/nixpkgs/pkgs/applications/editors/sigil/default.nix
+++ b/nixpkgs/pkgs/applications/editors/sigil/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "sigil";
-  version = "1.4.3";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     repo = "Sigil";
     owner = "Sigil-Ebook";
     rev = version;
-    sha256 = "1hk8kmhvkwfimbxzhwbnb8qdpf4n36cdzl9wfvi574i9pps36hnz";
+    sha256 = "sha256-BqNaIsUJE0KmFcmTjJERbclzaRe1dMjareWxUye2se0=";
   };
 
   pythonPath = with python3Packages; [ lxml ];
diff --git a/nixpkgs/pkgs/applications/editors/spacevim/default.nix b/nixpkgs/pkgs/applications/editors/spacevim/default.nix
index 2193d0ea5bb0..661bec463a78 100644
--- a/nixpkgs/pkgs/applications/editors/spacevim/default.nix
+++ b/nixpkgs/pkgs/applications/editors/spacevim/default.nix
@@ -1,6 +1,6 @@
-{ ripgrep, git, fzf, makeWrapper, vim_configurable, vimPlugins, fetchFromGitHub, writeTextDir
-, lib, stdenv, runCommandNoCC, remarshal, formats, spacevim_config ? import ./init.nix }:
-with stdenv;
+{ ripgrep, git, fzf, makeWrapper, vim_configurable, vimPlugins, fetchFromGitHub
+, lib, stdenv, formats, runCommand, spacevim_config ? import ./init.nix }:
+
 let
   format = formats.toml {};
   vim-customized = vim_configurable.customize {
@@ -10,28 +10,37 @@ let
     # ~/.cache/vimfiles/repos
     vimrcConfig.packages.myVimPackage = with vimPlugins; { start = [ ]; };
   };
-  spacevimdir = format.generate "init.toml" spacevim_config;
-in mkDerivation rec {
+  spacevimdir = runCommand "SpaceVim.d" { } ''
+    mkdir -p $out
+    cp ${format.generate "init.toml" spacevim_config} $out/init.toml
+  '';
+in stdenv.mkDerivation rec {
   pname = "spacevim";
-  version = "1.5.0";
+  version = "1.6.0";
   src = fetchFromGitHub {
     owner = "SpaceVim";
     repo = "SpaceVim";
     rev = "v${version}";
-    sha256 = "1xw4l262x7wzs1m65bddwqf3qx4254ykddsw3c3p844pb3mzqhh7";
+    sha256 = "sha256-QQdtjEdbuzmf0Rw+u2ZltLihnJt8LqkfTrLDWLAnCLE=";
   };
 
   nativeBuildInputs = [ makeWrapper vim-customized];
   buildInputs = [ vim-customized ];
 
   buildPhase = ''
+    runHook preBuild
     # generate the helptags
     vim -u NONE -c "helptags $(pwd)/doc" -c q
+    runHook postBuild
   '';
 
-  patches = [ ./helptags.patch ];
+  patches = [
+    # Don't generate helptags at runtime into read-only $SPACEVIMDIR
+    ./helptags.patch
+  ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin
 
     cp -r $(pwd) $out/SpaceVim
@@ -40,6 +49,7 @@ in mkDerivation rec {
     makeWrapper "${vim-customized}/bin/vim" "$out/bin/spacevim" \
         --add-flags "-u $out/SpaceVim/vimrc" --set SPACEVIMDIR "${spacevimdir}/" \
         --prefix PATH : ${lib.makeBinPath [ fzf git ripgrep]}
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/editors/spacevim/helptags.patch b/nixpkgs/pkgs/applications/editors/spacevim/helptags.patch
index e8b31c574194..bc0f9140c7be 100644
--- a/nixpkgs/pkgs/applications/editors/spacevim/helptags.patch
+++ b/nixpkgs/pkgs/applications/editors/spacevim/helptags.patch
@@ -2,7 +2,7 @@ diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim
 index 16688680..fcafd6f7 100644
 --- a/autoload/SpaceVim.vim
 +++ b/autoload/SpaceVim.vim
-@@ -1255,13 +1255,6 @@ function! SpaceVim#end() abort
+@@ -1355,13 +1355,6 @@ function! SpaceVim#end() abort
      let &helplang = 'jp'
    endif
    ""
diff --git a/nixpkgs/pkgs/applications/editors/standardnotes/default.nix b/nixpkgs/pkgs/applications/editors/standardnotes/default.nix
index e66febbf7fc2..0d50c24d3976 100644
--- a/nixpkgs/pkgs/applications/editors/standardnotes/default.nix
+++ b/nixpkgs/pkgs/applications/editors/standardnotes/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, appimageTools, autoPatchelfHook, desktop-file-utils
-, fetchurl, runtimeShell, libsecret, gtk3, gsettings-desktop-schemas }:
+, fetchurl, libsecret, gtk3, gsettings-desktop-schemas }:
 
 let
   version = "3.5.18";
diff --git a/nixpkgs/pkgs/applications/editors/sublime/2/default.nix b/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
index e46d6ef97e4c..7102d6951390 100644
--- a/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
+++ b/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     if stdenv.hostPlatform.system == "i686-linux" then
       fetchurl {
         name = "sublimetext-2.0.2.tar.bz2";
-        url = [
+        urls = [
           "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2"
           "https://download.sublimetext.com/Sublime%20Text%202.0.2.tar.bz2"
         ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     else
       fetchurl {
         name = "sublimetext-2.0.2.tar.bz2";
-        url = [
+        urls = [
           "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2"
           "https://download.sublimetext.com/Sublime%20Text%202.0.2%20x64.tar.bz2"
         ];
diff --git a/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix b/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
index e474ff5f19bb..6e3580a563cc 100644
--- a/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
+++ b/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
     sha256 = "08y5haclgxvcii3hpdvn1ah8qd0f3n8xgxxs8zryj02b8n7cz3vx";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [mono gtk-sharp-2_0 makeWrapper gnome2.libglade gtk2 ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [mono gtk-sharp-2_0 gnome2.libglade gtk2 ];
 
   installPhase = ''
     mkdir -p $out/bin $out/lib/supertux-editor
diff --git a/nixpkgs/pkgs/applications/editors/texstudio/default.nix b/nixpkgs/pkgs/applications/editors/texstudio/default.nix
index 77af6b679396..12b9c638c4c1 100644
--- a/nixpkgs/pkgs/applications/editors/texstudio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "texstudio";
-  version = "3.0.4";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "${pname}-org";
     repo = pname;
     rev = version;
-    sha256 = "03q1mdz47crflkvpc364ky52farad7517jhszb1fg1s3c2bnndn0";
+    sha256 = "sha256-MFCQwhdF+WCTqDt4q5qw431y/zqEy9vHudcUYb4BYNQ=";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
diff --git a/nixpkgs/pkgs/applications/editors/textadept/10/default.nix b/nixpkgs/pkgs/applications/editors/textadept/10/default.nix
index 9d86bdc4c5bf..fe22f3424f2e 100644
--- a/nixpkgs/pkgs/applications/editors/textadept/10/default.nix
+++ b/nixpkgs/pkgs/applications/editors/textadept/10/default.nix
@@ -4,9 +4,9 @@ stdenv.mkDerivation rec {
   version = "10.8";
   pname = "textadept";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
-    gtk2 ncurses glib unzip zip
+    gtk2 ncurses glib zip
   ];
 
   src = fetchhg {
diff --git a/nixpkgs/pkgs/applications/editors/textadept/11/default.nix b/nixpkgs/pkgs/applications/editors/textadept/11/default.nix
index a0037ca6c2bf..3050599ba580 100644
--- a/nixpkgs/pkgs/applications/editors/textadept/11/default.nix
+++ b/nixpkgs/pkgs/applications/editors/textadept/11/default.nix
@@ -1,20 +1,20 @@
-{ lib, stdenv, fetchhg, fetchFromGitHub, fetchurl, gtk2, glib, pkg-config, unzip, ncurses, zip }:
+{ lib, stdenv, fetchFromGitHub, fetchurl, gtk2, glib, pkg-config, unzip, ncurses, zip }:
 
 stdenv.mkDerivation rec {
-  version = "11.0_beta";
+  version = "11.1";
   pname = "textadept11";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip zip ];
   buildInputs = [
-    gtk2 ncurses glib unzip zip
+    gtk2 ncurses glib
   ];
 
   src = fetchFromGitHub {
     name = "textadept11";
     owner = "orbitalquark";
     repo = "textadept";
-    rev = "8da5f6b4a13f14b9dd3cb9dc23ad4f7bf41e91c1";
-    sha256 = "0v11v3x8g6v696m3l1bm52zy2g9xzz7hlmn912sn30nhcag3raxs";
+    rev = "1df99d561dd2055a01efa9183bb9e1b2ad43babc";
+    sha256 = "0g4bh5dp391vi32aa796vszpbxyl2dm5231v9dwc8l9v0b2786qn";
   };
 
   preConfigure =
@@ -40,7 +40,9 @@ stdenv.mkDerivation rec {
   '';
 
   makeFlags = [
-    "PREFIX=$(out) WGET=true PIXMAPS_DIR=$(out)/share/pixmaps"
+    "PREFIX=$(out)"
+    "WGET=true"
+    "PIXMAPS_DIR=$(out)/share/pixmaps"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/editors/textadept/11/deps.nix b/nixpkgs/pkgs/applications/editors/textadept/11/deps.nix
index 2ab72574bbd0..b9c7e94ee3bc 100644
--- a/nixpkgs/pkgs/applications/editors/textadept/11/deps.nix
+++ b/nixpkgs/pkgs/applications/editors/textadept/11/deps.nix
@@ -3,13 +3,13 @@
       url = "https://www.scintilla.org/scintilla445.tgz";
       sha256 = "1v1kyxj7rv5rxadbg8gl8wh1jafpy7zj0wr6dcyxq9209dl6h8ag";
     };
-    "9e2ffa159299899c9345aea15c17ba1941953871.zip" = {
-      url = "https://github.com/orbitalquark/scinterm/archive/9e2ffa159299899c9345aea15c17ba1941953871.zip";
-      sha256 = "12h7prgp689w45p4scxd8vvsyw8fkv27g6gvgis55xr44daa6122";
+    "6a774158d8a3c7bc7ea120bc01cdb016fa351a7e.zip" = {
+      url = "https://github.com/orbitalquark/scinterm/archive/6a774158d8a3c7bc7ea120bc01cdb016fa351a7e.zip";
+      sha256 = "083xvpw14dxbyrv4i48q76bmr44hs637qv363n6ibfs8xv1kq7iv";
     };
-    "scintillua_4.4.5-1.zip" = {
-      url = "https://github.com/orbitalquark/scintillua/archive/scintillua_4.4.5-1.zip";
-      sha256 = "095wpbid2kvr5xgkhd5bd4sd7ljgk6gd9palrjkmdcwfgsf1lp04";
+    "scintillua_4.4.5-2.zip" = {
+      url = "https://github.com/orbitalquark/scintillua/archive/scintillua_4.4.5-2.zip";
+      sha256 = "1061y2gg78zb2mml8msyarxgdwbf7g8g2v08fr1qqsqi2pbb7mfc";
     };
     "lua-5.3.5.tar.gz" = {
       url = "http://www.lua.org/ftp/lua-5.3.5.tar.gz";
@@ -19,17 +19,17 @@
       url = "http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-1.0.2.tar.gz";
       sha256 = "1zjzl7acvcdavmcg5l7wi12jd4rh95q9pl5aiww7hv0v0mv6bmj8";
     };
-    "v1_7_0_2.zip" = {
-      url = "https://github.com/keplerproject/luafilesystem/archive/v1_7_0_2.zip";
-      sha256 = "0y44ymc7higz5dd2w3c6ib7mwmpr6yvszcl7lm12nf8x3y4snx4i";
+    "v1_8_0.zip" = {
+      url = "https://github.com/keplerproject/luafilesystem/archive/v1_8_0.zip";
+      sha256 = "12p1p5qpdql44y3cc035h8rs8rgdqp6nrnrixlp5544agb5bx9p3";
     };
     "64587546482a1a6324706d75c80b77d2f87118a4.zip" = {
       url = "https://github.com/orbitalquark/gtdialog/archive/64587546482a1a6324706d75c80b77d2f87118a4.zip";
       sha256 = "10mglbnn8r1cakqn9h285pwfnh7kfa98v7j8qh83c24n66blyfh9";
     };
-    "cdk-5.0-20150928.tgz" = {
-      url = "http://invisible-mirror.net/archives/cdk/cdk-5.0-20150928.tgz";
-      sha256 = "0j74l874y33i26y5kjg3pf1vswyjif8k93pqhi0iqykpbxfsg382";
+    "cdk-5.0-20200923.tgz" = {
+      url = "http://invisible-mirror.net/archives/cdk/cdk-5.0-20200923.tgz";
+      sha256 = "1vdakz119a13d7p7w53hk56fdmbkhv6y9xvdapcfnbnbh3l5szq0";
     };
     "libtermkey-0.20.tar.gz" = {
       url = "http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.20.tar.gz";
diff --git a/nixpkgs/pkgs/applications/editors/texworks/default.nix b/nixpkgs/pkgs/applications/editors/texworks/default.nix
index 87990b6eae8f..9db68f71ea8e 100644
--- a/nixpkgs/pkgs/applications/editors/texworks/default.nix
+++ b/nixpkgs/pkgs/applications/editors/texworks/default.nix
@@ -1,27 +1,19 @@
-{ mkDerivation, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
 , qtscript, poppler, hunspell
 , withLua ? true, lua
 , withPython ? true, python3 }:
 
 mkDerivation rec {
   pname = "texworks";
-  version = "0.6.5";
+  version = "0.6.6";
 
   src = fetchFromGitHub {
     owner = "TeXworks";
     repo = "texworks";
     rev = "release-${version}";
-    sha256 = "1lw1p4iyzxypvjhnav11g6rwf6gx7kyzwy2iprvv8zzpqcdkjp2z";
+    sha256 = "0l8jl1b8lpas7yz6m0qc2nikyn54lx2ljzmjjz3zgxgd6l502006";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-compilation-with-qt-5.15.patch";
-      url = "https://github.com/TeXworks/texworks/commit/a5352a3a94e3685125650b65e6197de060326cc2.patch";
-      sha256 = "0pf7h1m11x0s039bxknm7rxdp9b4g8ch86y38jlyy56c74mw97i6";
-    })
-  ];
-
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ qtscript poppler hunspell ]
                 ++ lib.optional withLua lua
diff --git a/nixpkgs/pkgs/applications/editors/tiled/default.nix b/nixpkgs/pkgs/applications/editors/tiled/default.nix
index b6222c8a6d2c..4fbbacf8f1eb 100644
--- a/nixpkgs/pkgs/applications/editors/tiled/default.nix
+++ b/nixpkgs/pkgs/applications/editors/tiled/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "tiled";
-  version = "1.4.3";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "bjorn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0n8p7bp5pqq72c65av3v7wbazwphh78pw27nqvpiyp9y8k5w4pg0";
+    sha256 = "sha256-Pf9nA5DUAJ+PPNG+oP7RO4/TD8fy4ADsyq625a6cbFk=";
   };
 
   nativeBuildInputs = [ pkg-config qmake ];
diff --git a/nixpkgs/pkgs/applications/editors/typora/default.nix b/nixpkgs/pkgs/applications/editors/typora/default.nix
index 3c55cffdcf12..a9afc774bc05 100644
--- a/nixpkgs/pkgs/applications/editors/typora/default.nix
+++ b/nixpkgs/pkgs/applications/editors/typora/default.nix
@@ -17,11 +17,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "typora";
-  version = "0.9.95";
+  version = "0.9.98";
 
   src = fetchurl {
     url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
-    sha256 = "0kgzk7z707vlbjrvykrnw2h6wscmc3h5hxycyz1z1j2cz26fns4p";
+    sha256 = "sha256-JiqjxT8ZGttrcJrcQmBoGPnRuuYWZ9u2083RxZoLMus=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/editors/vim/common.nix b/nixpkgs/pkgs/applications/editors/vim/common.nix
index 4ae7600f4a1d..71e7be66b1eb 100644
--- a/nixpkgs/pkgs/applications/editors/vim/common.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "8.2.1522";
+  version = "8.2.2567";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "0dah3392cq06pagik5y7kcq61mslqvfsh7vqldv3kvhr5ilqb8qy";
+    sha256 = "sha256-FS3TZX7FKnnNpGYKbng2LIfWA9z2jqg7d2HC6t3xYTU=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/editors/vim/configurable.nix b/nixpkgs/pkgs/applications/editors/vim/configurable.nix
index 734b189d1e48..4215b20180e3 100644
--- a/nixpkgs/pkgs/applications/editors/vim/configurable.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/configurable.nix
@@ -75,7 +75,6 @@ in stdenv.mkDerivation rec {
   patches = [ ./cflags-prune.diff ] ++ lib.optional ftNixSupport ./ft-nix-support.patch;
 
   configureFlags = [
-    "--enable-gui=${guiSupport}"
     "--with-features=${features}"
     "--disable-xsmp"              # XSMP session management
     "--disable-xsmp_interact"     # XSMP interaction
@@ -95,6 +94,7 @@ in stdenv.mkDerivation rec {
     "--disable-carbon_check"
     "--disable-gtktest"
   ]
+    ++ lib.optional (guiSupport == "gtk2" || guiSupport == "gtk3") "--enable-gui=${guiSupport}"
   ++ lib.optional stdenv.isDarwin
      (if darwinSupport then "--enable-darwin" else "--disable-darwin")
   ++ lib.optionals luaSupport [
@@ -127,8 +127,22 @@ in stdenv.mkDerivation rec {
   ++ lib.optional (guiSupport == "gtk3") wrapGAppsHook
   ;
 
-  buildInputs = [ ncurses libX11 libXext libSM libXpm libXt libXaw libXau
-    libXmu glib libICE ]
+  buildInputs = [
+    ncurses
+    glib
+  ]
+    # All X related dependencies
+    ++ lib.optionals (guiSupport == "gtk2" || guiSupport == "gtk3") [
+      libSM
+      libICE
+      libX11
+      libXext
+      libXpm
+      libXt
+      libXaw
+      libXau
+      libXmu
+    ]
     ++ lib.optional (guiSupport == "gtk2") gtk2-x11
     ++ lib.optional (guiSupport == "gtk3") gtk3-x11
     ++ lib.optionals darwinSupport [ CoreServices CoreData Cocoa Foundation libobjc ]
diff --git a/nixpkgs/pkgs/applications/editors/vim/macvim-configurable.nix b/nixpkgs/pkgs/applications/editors/vim/macvim-configurable.nix
index 6ea6b6c60940..7ed3dee9b6b9 100644
--- a/nixpkgs/pkgs/applications/editors/vim/macvim-configurable.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/macvim-configurable.nix
@@ -29,7 +29,7 @@ let
           "/Applications/MacVim.app/Contents/MacOS"
           "/Applications/MacVim.app/Contents/bin"
         ];
-        buildInputs = [ makeWrapper ];
+        nativeBuildInputs = [ makeWrapper ];
         # We need to do surgery on the resulting app. We can't just make a wrapper for vim because this
         # is a GUI app. We need to copy the actual GUI executable image as AppKit uses the loaded image's
         # path to locate the bundle. We can use symlinks for other executables and resources though.
diff --git a/nixpkgs/pkgs/applications/editors/viw/default.nix b/nixpkgs/pkgs/applications/editors/viw/default.nix
index 3aad18ef11cb..0ba381901b98 100644
--- a/nixpkgs/pkgs/applications/editors/viw/default.nix
+++ b/nixpkgs/pkgs/applications/editors/viw/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ ncurses ];
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
   checkFlags = [ "test-command" "test-buffer" "test-state" ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/editors/vscode/generic.nix b/nixpkgs/pkgs/applications/editors/vscode/generic.nix
index 470683bad43f..370d5b1561ce 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/generic.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/generic.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, makeDesktopItem
-, unzip, libsecret, libXScrnSaver, wrapGAppsHook
+, unzip, libsecret, libXScrnSaver, libxshmfence, wrapGAppsHook
 , gtk2, atomEnv, at-spi2-atk, autoPatchelfHook
 , systemd, fontconfig, libdbusmenu
 
@@ -60,14 +60,12 @@ in
       '';
     };
 
-    buildInputs = (if stdenv.isDarwin
-      then [ unzip ]
-      else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
-        ++ [ libsecret libXScrnSaver ];
+    buildInputs = [ libsecret libXScrnSaver libxshmfence ]
+      ++ lib.optionals (!stdenv.isDarwin) ([ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages);
 
     runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib libdbusmenu ];
 
-    nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
+    nativeBuildInputs = [unzip] ++ lib.optional (!stdenv.isDarwin) autoPatchelfHook;
 
     dontBuild = true;
     dontConfigure = true;
diff --git a/nixpkgs/pkgs/applications/editors/vscode/update-vscode.sh b/nixpkgs/pkgs/applications/editors/vscode/update-vscode.sh
index d1ae71cd11e2..68249c20d132 100755
--- a/nixpkgs/pkgs/applications/editors/vscode/update-vscode.sh
+++ b/nixpkgs/pkgs/applications/editors/vscode/update-vscode.sh
@@ -19,18 +19,18 @@ fi
 VSCODE_VER=$(curl --fail --silent https://api.github.com/repos/Microsoft/vscode/releases/latest | jq --raw-output .tag_name)
 sed -i "s/version = \".*\"/version = \"${VSCODE_VER}\"/" "$ROOT/vscode.nix"
 
-VSCODE_LINUX_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-x64/stable"
+VSCODE_LINUX_URL="https://update.code.visualstudio.com/${VSCODE_VER}/linux-x64/stable"
 VSCODE_LINUX_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_URL})
 sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODE_LINUX_SHA256}\"/" "$ROOT/vscode.nix"
 
-VSCODE_DARWIN_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/darwin/stable"
+VSCODE_DARWIN_URL="https://update.code.visualstudio.com/${VSCODE_VER}/darwin/stable"
 VSCODE_DARWIN_SHA256=$(nix-prefetch-url ${VSCODE_DARWIN_URL})
 sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODE_DARWIN_SHA256}\"/" "$ROOT/vscode.nix"
 
-VSCODE_LINUX_AARCH64_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-arm64/stable"
+VSCODE_LINUX_AARCH64_URL="https://update.code.visualstudio.com/${VSCODE_VER}/linux-arm64/stable"
 VSCODE_LINUX_AARCH64_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_AARCH64_URL})
 sed -i "s/aarch64-linux = \".\{52\}\"/aarch64-linux = \"${VSCODE_LINUX_AARCH64_SHA256}\"/" "$ROOT/vscode.nix"
 
-VSCODE_LINUX_ARMV7L_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-armhf/stable"
+VSCODE_LINUX_ARMV7L_URL="https://update.code.visualstudio.com/${VSCODE_VER}/linux-armhf/stable"
 VSCODE_LINUX_ARMV7L_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_ARMV7L_URL})
 sed -i "s/armv7l-linux = \".\{52\}\"/armv7l-linux = \"${VSCODE_LINUX_ARMV7L_SHA256}\"/" "$ROOT/vscode.nix"
diff --git a/nixpkgs/pkgs/applications/editors/vscode/vscode.nix b/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
index e772796c34eb..09a58e7dfd1a 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0c0m5qkqv3zhcxmwx72b7z67sjcd1miv8d10kxpk9vffyrxkmj93";
-    x86_64-darwin = "1spd5rbhra4n38lp0sgxd2cr1bngsmi32a43g02vdmmhkmk0iixc";
-    aarch64-linux = "1ql3hn6c59g7d0cwhg54ixww2i9jmkjw3nyzz97yw8wk63zwz024";
-    armv7l-linux = "0pdqcbw7rygvdzys787kf8ag17g9qyv7k33dqhi5h2zc96j867c0";
+    x86_64-linux = "0z1diiiykv4ilsiljffz9sl2mlvrxq0xwm8ga2ralfvjwbhzr6dn";
+    x86_64-darwin = "02gzw46w3kzw1ya9nx8fkhvzi0mbpz2fyp47n58jki2zkdsfiwzh";
+    aarch64-linux = "0bkvgdxch95dqcb41ncsjkaaswmwv6zad4hzdsr3famjm2vym1ky";
+    armv7l-linux = "0wdp97ihdnx9bcyn2dh6wzhb7qvdj6x730r7ng1q3i9jhd19wfi3";
   }.${system};
 in
   callPackage ./generic.nix rec {
@@ -25,7 +25,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.53.2";
+    version = "1.55.0";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
@@ -34,7 +34,7 @@ in
 
     src = fetchurl {
       name = "VSCode_${version}_${plat}.${archive_fmt}";
-      url = "https://vscode-update.azurewebsites.net/${version}/${plat}/stable";
+      url = "https://update.code.visualstudio.com/${version}/${plat}/stable";
       inherit sha256;
     };
 
diff --git a/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix b/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
index bdc5552a64f9..b11a8a8f103a 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1b9pzfi034idhi6f3n0sz3fckf95ckf2qx3sgfn9fx2g52r9m9z1";
-    x86_64-darwin = "1983d8hn04xl5vw7p6842cv5x08q7vilqg7nhvy5yg3lj9q2rpp0";
-    aarch64-linux = "09l32abkq110ib4hjd0yv9avr8a2vg5vs7w4jpk0p499gzrysh2l";
-    armv7l-linux = "1s0gbq1fapq2i905c0xxfyh0656qnb7dmg00khlwbplxzd6i6m18";
+    x86_64-linux = "0zzdbknmljf1hizmxnrby17i8v3kp98rklinywnr632jwgjms81j";
+    x86_64-darwin = "0mccq1b0l6r1ipxp5gvyam43c2hh8hxdvwqikkz6g7y93p29wz9g";
+    aarch64-linux = "12gpday6gzl1adcykqhgz3xrdm9568a26gsndmplkn2n6l6agnp0";
+    armv7l-linux = "0l886vdw7az0nvvhh14pjawz0yyib59ymychy7gbk8ay5g9vfv03";
   }.${system};
 
   sourceRoot = {
@@ -33,7 +33,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.53.2";
+    version = "1.55.0";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix b/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix
index c30b52782ef3..d2c91f155d53 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix
@@ -57,7 +57,8 @@ in
 # When no extensions are requested, we simply redirect to the original
 # non-wrapped vscode executable.
 runCommand "${wrappedPkgName}-with-extensions-${wrappedPkgVersion}" {
-  buildInputs = [ vscode makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ vscode ];
   dontPatchELF = true;
   dontStrip = true;
   meta = vscode.meta;
diff --git a/nixpkgs/pkgs/applications/editors/xed-editor/default.nix b/nixpkgs/pkgs/applications/editors/xed-editor/default.nix
new file mode 100644
index 000000000000..d7b0703b8d5e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/xed-editor/default.nix
@@ -0,0 +1,71 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, libxml2
+, libpeas
+, glib
+, gtk3
+, gtksourceview4
+, gspell
+, xapps
+, pkg-config
+, meson
+, ninja
+, wrapGAppsHook
+, intltool
+, itstool }:
+
+stdenv.mkDerivation rec {
+  pname = "xed-editor";
+  version = "2.8.4";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = "xed";
+    rev = version;
+    sha256 = "1hqr4157kp110p01jygqnnzj86zxlfiq4b53j345vqpx0f80c340";
+  };
+
+  nativeBuildInputs = [
+    meson
+    cmake
+    pkg-config
+    intltool
+    itstool
+    ninja
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    libxml2
+    glib
+    gtk3
+    gtksourceview4
+    libpeas
+    gspell
+    xapps
+  ];
+
+  postInstall = ''
+    glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    if [[ "$($out/bin/xed --version)" == "xed - Version ${version}" ]] ; then
+      echo "${pname} smoke test passed"
+    else
+      echo "${pname} smoke test failed"
+      return 1
+    fi
+  '';
+
+  meta = with lib; {
+    description = "Light weight text editor from Linux Mint";
+    homepage = "https://github.com/linuxmint/xed";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ tu-maurice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/zile/default.nix b/nixpkgs/pkgs/applications/editors/zile/default.nix
index 7d36a2fd7f5f..3d0e98602add 100644
--- a/nixpkgs/pkgs/applications/editors/zile/default.nix
+++ b/nixpkgs/pkgs/applications/editors/zile/default.nix
@@ -1,20 +1,39 @@
-{ fetchurl, lib, stdenv, glib, libgee, pkg-config, ncurses, boehmgc, perl, help2man, vala }:
+{ lib
+, stdenv
+, fetchurl
+, boehmgc
+, glib
+, help2man
+, libgee
+, ncurses
+, perl
+, pkg-config
+, vala
+}:
 
 stdenv.mkDerivation rec {
-  name = "zile-2.6.0.90";
+  pname = "zile";
+  version = "2.6.1";
 
   src = fetchurl {
-    url = "mirror://gnu/zile/${name}.tar.gz";
-    sha256 = "1bhdwnasmqhy0hi3fqmpzr8xkw5zlqjpmf1cj42h4cg3fnamp6r3";
+    url = "mirror://gnu/zile/${pname}-${version}.tar.gz";
+    hash = "sha256-v7rN33aOORc6J0Z5JP5AmZCj6XvjYyoCl5hl+7mvAnc=";
   };
 
-  buildInputs = [ glib libgee ncurses boehmgc vala ];
-  nativeBuildInputs = [ perl pkg-config ]
-    # `help2man' wants to run Zile, which won't work when the
-    # newly-produced binary can't be run at build-time.
-    ++ lib.optional
-         (stdenv.hostPlatform == stdenv.buildPlatform)
-         help2man;
+  buildInputs = [
+    boehmgc
+    glib
+    libgee
+    ncurses
+  ];
+  nativeBuildInputs = [
+    perl
+    pkg-config
+    vala
+  ]
+  # `help2man' wants to run Zile, which won't work when the
+  # newly-produced binary can't be run at build-time.
+  ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) help2man;
 
   # Tests can't be run because most of them rely on the ability to
   # fiddle with the terminal.
@@ -24,33 +43,38 @@ stdenv.mkDerivation rec {
   gl_cv_func_fstatat_zero_flag="yes";
 
   meta = with lib; {
-    description = "Lightweight Emacs clone";
-
+    homepage = "https://www.gnu.org/software/zile/";
+    description = "Zile Implements Lua Editors";
     longDescription = ''
-      GNU Zile, which is a lightweight Emacs clone.  Zile is short
-      for Zile Is Lossy Emacs.  Zile has been written to be as
-      similar as possible to Emacs; every Emacs user should feel at
-      home.
-
-      Zile has all of Emacs's basic editing features: it is 8-bit
-      clean (though it currently lacks Unicode support), and the
-      number of editing buffers and windows is only limited by
-      available memory and screen space respectively.  Registers,
-      minibuffer completion and auto fill are available.  Function
-      and variable names are identical with Emacs's (except those
-      containing the word "emacs", which instead contain the word
-      "zile"!).
-
-      However, all of this is packed into a program which typically
-      compiles to about 130Kb.
-    '';
+      GNU Zile is a text editor development kit, so that you can (relatively)
+      quickly develop your own ideal text editor without reinventing the wheel
+      for many of the common algorithms and data-structures needed to do so.
 
-    homepage = "https://www.gnu.org/software/zile/";
+      It comes with an example implementation of a lightweight Emacs clone,
+      called Zemacs. Every Emacs user should feel at home with Zemacs. Zemacs is
+      aimed at small footprint systems and quick editing sessions (it starts up
+      and shuts down instantly).
 
-    license = licenses.gpl3Plus;
+      More editors implemented over the Zile frameworks are forthcoming as the
+      data-structures and interfaces improve: Zz an emacs inspired editor using
+      Lua as an extension language; Zee a minimalist non-modal editor; Zi a
+      lightweight vi clone; and more...
 
-    maintainers = with maintainers; [ pSub ];
+      Zile is a collection of algorithms and data-structures that currently
+      support all basic Emacs-like editing features: it is 8-bit clean (though
+      Unicode support is not ready yet), and the number of editing buffers and
+      windows is only limited by available memoryand screen space
+      respectively. Registers, minibuffer completion and auto fill are
+      available.
 
+      Zemacs implements a subset of Emacs with identical function and variable
+      names, continuing the spirit of the earlier Zile editor implemented in C.
+      GNU Zile, which is a lightweight Emacs clone.  Zile is short for Zile Is
+      Lossy Emacs.  Zile has been written to be as similar as possible to Emacs;
+      every Emacs user should feel at home.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ pSub AndersonTorres ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix b/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
index 81e81c88537d..21b4cfa94b13 100644
--- a/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv
 , mkDerivation
 , fetchFromGitHub
+, fetchpatch
 , substituteAll
 , gdal
 , cmake
@@ -19,7 +20,7 @@
 
 mkDerivation rec {
   pname = "OpenOrienteering-Mapper";
-  version = "0.9.4";
+  version = "0.9.5";
 
   buildInputs = [
     gdal
@@ -38,14 +39,21 @@ mkDerivation rec {
     owner = "OpenOrienteering";
     repo = "mapper";
     rev = "v${version}";
-    sha256 = "13k9dirqm74lknhr8w121zr1hjd9gm1y73cj4rrj98rx44dzmk7b";
+    sha256 = "1w8ikqpgi0ksrzjal5ihfaik4grc5v3gdnnv79j20xkr2p4yn1h5";
   };
 
-  patches = (substituteAll {
-    # See https://github.com/NixOS/nixpkgs/issues/86054
-    src = ./fix-qttranslations-path.diff;
-    inherit qttranslations;
-  });
+  patches = [
+    # https://github.com/NixOS/nixpkgs/issues/86054
+    (substituteAll {
+      src = ./fix-qttranslations-path.diff;
+      inherit qttranslations;
+    })
+    # https://github.com/OpenOrienteering/mapper/pull/1907
+    (fetchpatch {
+      url = "https://github.com/OpenOrienteering/mapper/commit/bc52aa567e90a58d6963b44d5ae1909f3f841508.patch";
+      sha256 = "1bkckapzccn6k0ri6bgrr0nhis9498fnwj7b32s2ysym8zcg0355";
+    })
+  ];
 
   cmakeFlags = [
     # Building the manual and bundling licenses fails
@@ -81,7 +89,8 @@ mkDerivation rec {
       and provides a free alternative to the existing proprietary solution.
     '';
     homepage = "https://www.openorienteering.org/apps/mapper/";
-    license = licenses.gpl3;
+    changelog = "https://github.com/OpenOrienteering/mapper/releases/tag/v${version}";
+    license = licenses.gpl3Plus;
     platforms = with platforms; linux ++ darwin;
     maintainers = with maintainers; [ mpickering sikmir ];
   };
diff --git a/nixpkgs/pkgs/applications/gis/saga/default.nix b/nixpkgs/pkgs/applications/gis/saga/default.nix
index 96c2e8066820..47defd44c640 100644
--- a/nixpkgs/pkgs/applications/gis/saga/default.nix
+++ b/nixpkgs/pkgs/applications/gis/saga/default.nix
@@ -12,7 +12,7 @@
 , dxflib
 , curl
 , libiodbc
-, lzma
+, xz
 , libharu
 , opencv
 , vigra
@@ -32,11 +32,11 @@
 
 mkDerivation rec {
   pname = "saga";
-  version = "7.8.2";
+  version = "7.9.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/saga-gis/SAGA%20-%20${lib.versions.major version}/SAGA%20-%20${version}/saga-${version}.tar.gz";
-    sha256 = "1008l8f4733vsxy3y6d1yg8m4h8pp65d2p48ljc9kp5nyrg5vfy5";
+    sha256 = "sha256-ob23JbQnBxNO1QA8zUhLjgo5YBR90pwm8JT62bsPBdg=";
   };
 
   nativeBuildInputs = [
@@ -64,7 +64,7 @@ mkDerivation rec {
     vigra
     postgresql
     libiodbc
-    lzma
+    xz
     qhull
     giflib
   ]
diff --git a/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix b/nixpkgs/pkgs/applications/graphics/ImageMagick/6.x.nix
index 66ad424253eb..de96650167f0 100644
--- a/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/ImageMagick/6.x.nix
@@ -16,13 +16,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "6.9.11-60";
+  version = "6.9.12-3";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick6";
     rev = version;
-    sha256 = "12810882a0kf4zlgyi290z9bjs921m05njbljkjfw6s1hf0mncl0";
+    sha256 = "sha256-h9c0N9AcFVpNYpKl+95q1RVJWuacN4N4kbAJIKJp8Jc=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
@@ -77,9 +77,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "http://www.imagemagick.org/";
+    homepage = "https://legacy.imagemagick.org/";
+    changelog = "https://legacy.imagemagick.org/script/changelog.php";
     description = "A software suite to create, edit, compose, or convert bitmap images";
     platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ erictapen ];
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix b/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
index 58c47721b6b1..49021f5e3c39 100644
--- a/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -14,8 +14,8 @@ let
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "7.0.10-61";
-    sha256 = "sha256-c/90N5H9iz5JYmn7/ynHgSOAmO5NTtkxajChZvjfMP8=";
+    version = "7.0.11-3";
+    sha256 = "sha256-y937OxAHNTbWa96oQmTpp/ivxtPVL16hr4SvzZWugQo=";
     patches = [];
   };
 in
@@ -84,6 +84,7 @@ stdenv.mkDerivation {
     homepage = "http://www.imagemagick.org/";
     description = "A software suite to create, edit, compose, or convert bitmap images";
     platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ erictapen ];
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/avocode/default.nix b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
index 8726fc1d7935..0e4f182ea50f 100644
--- a/nixpkgs/pkgs/applications/graphics/avocode/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "avocode";
-  version = "4.11.1";
+  version = "4.12.0";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "sha256-Qe5mV9GBLHsmzMQg6dKib/sTnNdyOTj4wYQ9xd/iqJM=";
+    sha256 = "sha256-qbG0Ii3Xmj1UGGS+n+LdiNPAHBkpQZMGEzrDvOcaUNA=";
   };
 
   libPath = lib.makeLibraryPath (with xorg; [
@@ -58,8 +58,8 @@ stdenv.mkDerivation rec {
     comment = "The bridge between designers and developers";
   };
 
-  nativeBuildInputs = [makeWrapper wrapGAppsHook];
-  buildInputs = [ unzip gtk3 gnome3.adwaita-icon-theme ];
+  nativeBuildInputs = [makeWrapper wrapGAppsHook unzip];
+  buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
 
   # src is producing multiple folder on unzip so we must
   # override unpackCmd to extract it into newly created folder
diff --git a/nixpkgs/pkgs/applications/graphics/batik/default.nix b/nixpkgs/pkgs/applications/graphics/batik/default.nix
index 4b5974825543..a88209bfbd89 100644
--- a/nixpkgs/pkgs/applications/graphics/batik/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/batik/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "batik";
-  version = "1.13";
+  version = "1.14";
 
   src = fetchurl {
     url = "mirror://apache/xmlgraphics/batik/binaries/batik-bin-${version}.tar.gz";
-    sha256 = "16sq90nbs6psgm3xz30sbs6r5dnpd3qzsvr1xvnp4yipwjcmhmkw";
+    sha256 = "sha256-D06qgb5wdS5AahnznDnAGISPCZY/CPqJdGQFRwUsRhg=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/graphics/blockbench-electron/default.nix b/nixpkgs/pkgs/applications/graphics/blockbench-electron/default.nix
new file mode 100644
index 000000000000..174733a4fdc1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/blockbench-electron/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_8 }:
+
+stdenv.mkDerivation rec {
+  pname = "blockbench-electron";
+  version = "3.7.5";
+
+  src = fetchurl {
+    url = "https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage";
+    sha256 = "0qqklhncd4khqmgp7jg7wap2rzkrg8b6dflmz0wmm5zxxp5vcy1c";
+    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_8}/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 = [ maintainers.ronthecookie ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/dia/default.nix b/nixpkgs/pkgs/applications/graphics/dia/default.nix
index d9de3eb7fc12..d07904c8597b 100644
--- a/nixpkgs/pkgs/applications/graphics/dia/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/dia/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit, autoconf, automake, libtool, gtk2, pkg-config, perlPackages,
-libxml2, gettext, python, libxml2Python, docbook5, docbook_xsl,
+libxml2, gettext, python2, libxml2Python, docbook5, docbook_xsl,
 libxslt, intltool, libart_lgpl, withGNOME ? false, libgnomeui,
 gtk-mac-integration-gtk2 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   ];
 
   buildInputs =
-    [ gtk2 libxml2 gettext python libxml2Python docbook5
+    [ gtk2 libxml2 gettext python2 libxml2Python docbook5
       libxslt docbook_xsl libart_lgpl ]
       ++ lib.optional withGNOME libgnomeui
       ++ lib.optional stdenv.isDarwin gtk-mac-integration-gtk2;
diff --git a/nixpkgs/pkgs/applications/graphics/drawio/default.nix b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
index 31dff2f9c2d6..4155767a361a 100644
--- a/nixpkgs/pkgs/applications/graphics/drawio/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
@@ -4,18 +4,18 @@
 , alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, dbus, cups, expat
 , gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor
 , libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst
-, libxcb, libuuid, nspr, nss, pango
+, libxcb, libuuid, libxshmfence, nspr, nss, pango
 
 , systemd
 }:
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "14.1.5";
+  version = "14.5.1";
 
   src = fetchurl {
-    url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
-    hash = "sha256-dM/DGtUDnJBD4Cfhm/zbxfgBhUcIlEzlF4z3cmQuW14=";
+    url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
+    hash = "sha256-ZrEoeeEhHQOLm/L3KA43Ru5fruIPK35CCUsllwpPB58=";
   };
 
   nativeBuildInputs = [
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
     libXi
     libXrandr
     libXrender
+    libxshmfence
     libXtst
     libxcb
     libuuid
@@ -66,7 +67,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/share
-    cp -r opt/draw.io $out/share/
+    cp -r opt/drawio $out/share/
 
     # Application icon
     mkdir -p $out/share/icons/hicolor
@@ -77,11 +78,11 @@ stdenv.mkDerivation rec {
 
     # Symlink wrapper
     mkdir -p $out/bin
-    ln -s $out/share/draw.io/drawio $out/bin/drawio
+    ln -s $out/share/drawio/drawio $out/bin/drawio
 
     # Update binary path
     substituteInPlace $out/share/applications/drawio.desktop \
-      --replace /opt/draw.io/drawio $out/bin/drawio
+      --replace /opt/drawio/drawio $out/bin/drawio
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/graphics/eddy/default.nix b/nixpkgs/pkgs/applications/graphics/eddy/default.nix
new file mode 100644
index 000000000000..6b8f465a1061
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/eddy/default.nix
@@ -0,0 +1,47 @@
+{ python3Packages
+, fetchFromGitHub
+, lib
+, jre
+, qt5
+, wrapQtAppsHook
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "eddy";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "obdasystems";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "12j77bbva5py9bd57c80cmjvf8vll40h19n81h16lvv2r2r7jynh";
+  };
+
+  propagatedBuildInputs = [
+    qt5.qtbase
+    wrapQtAppsHook
+    python3Packages.setuptools
+    python3Packages.rfc3987
+    python3Packages.JPype1
+    python3Packages.pyqt5
+  ];
+
+  # Tests fail with: ImportError: cannot import name 'QtXmlPatterns' from 'PyQt5'
+  doCheck = false;
+
+  preBuild = ''
+    export HOME=/tmp
+  '';
+
+  preFixup = ''
+    wrapQtApp "$out/bin/eddy" --prefix JAVA_HOME : ${jre}
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.obdasystems.com/eddy";
+    description = "Graphical editor for the specification and visualization of Graphol ontologies";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ koslambrou ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/fondo/default.nix b/nixpkgs/pkgs/applications/graphics/fondo/default.nix
index 49e8fee513d7..04ac87c55da9 100644
--- a/nixpkgs/pkgs/applications/graphics/fondo/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/fondo/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fondo";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "calo001";
     repo = pname;
     rev = version;
-    sha256 = "sha256-eGHgZm9Q6JnY6OQNAyrFvRsuyuFnruMJNckOCCiO4Ug=";
+    sha256 = "sha256-EATZRmYSGUzWYaPqFT4mLTGGvwUp+Mn93yMF2JsPaYo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/freecad/default.nix b/nixpkgs/pkgs/applications/graphics/freecad/default.nix
index 1c4f05b42dac..440cc7fa38df 100644
--- a/nixpkgs/pkgs/applications/graphics/freecad/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/freecad/default.nix
@@ -1,49 +1,115 @@
-{ lib, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
-xercesc, ode, eigen, qtbase, qttools, qtwebengine, qtxmlpatterns, wrapQtAppsHook,
-opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
-gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkg-config, mpi ? null }:
+{ lib
+, stdenv
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, ninja
+, GitPython
+, boost
+, coin3d
+, eigen
+, gfortran
+, gts
+, hdf5
+, libGLU
+, libXmu
+, libf2c
+, libspnav
+, matplotlib
+, medfile
+, mpi
+, ode
+, opencascade-occt
+, pivy
+, pkg-config
+, pycollada
+, pyside2
+, pyside2-tools
+, python
+, pyyaml
+, qtbase
+, qttools
+, qtwebengine
+, qtx11extras
+, qtxmlpatterns
+, scipy
+, shiboken2
+, soqt
+, spaceNavSupport ? stdenv.isLinux
+, swig
+, vtk
+, wrapQtAppsHook
+, xercesc
+, zlib
+}:
 
-assert mpi != null;
-
-let
-  pythonPackages = python3Packages;
-in mkDerivation rec {
-  pname = "freecad-unstable";
-  version = "2020-12-08";
+mkDerivation rec {
+  pname = "freecad";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "FreeCAD";
     repo = "FreeCAD";
-    rev = "daea30341ea2d5eaf2bfb65614128a5fa2abc8b7";
-    sha256 = "1fza64lygqq35v7kzgqmiq5dvl5rpgkhlzv06f9dszdz44hznina";
+    rev = version;
+    hash = "sha256-itIrO+/mKXOPNs+2POKT8u4YZuqx/QAwVBWrHgKP1qQ=";
   };
 
   nativeBuildInputs = [
     cmake
     ninja
     pkg-config
-    pythonPackages.pyside2-tools
+    pyside2-tools
     wrapQtAppsHook
   ];
 
   buildInputs = [
-    coin3d xercesc ode eigen opencascade-occt gts
-    zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
-    libGLU libXmu qtbase qttools qtwebengine qtxmlpatterns
-  ] ++ (with pythonPackages; [
-    matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
     GitPython # for addon manager
-    scipy pyyaml # (at least for) PyrateWorkbench
-  ]);
+    boost
+    coin3d
+    eigen
+    gfortran
+    gts
+    hdf5
+    libGLU
+    libXmu
+    libf2c
+    matplotlib
+    medfile
+    mpi
+    ode
+    opencascade-occt
+    pivy
+    pycollada
+    pyside2
+    pyside2-tools
+    python
+    pyyaml # (at least for) PyrateWorkbench
+    qtbase
+    qttools
+    qtwebengine
+    qtxmlpatterns
+    scipy
+    shiboken2
+    soqt
+    swig
+    vtk
+    xercesc
+    zlib
+  ] ++ lib.optionals spaceNavSupport [
+    libspnav
+    qtx11extras
+  ];
 
   cmakeFlags = [
+    "-DBUILD_FLAT_MESH:BOOL=ON"
     "-DBUILD_QT5=ON"
-    "-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
+    "-DSHIBOKEN_INCLUDE_DIR=${shiboken2}/include"
     "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
-    ("-DPYSIDE_INCLUDE_DIR=${pythonPackages.pyside2}/include"
-      + ";${pythonPackages.pyside2}/include/PySide2/QtCore"
-      + ";${pythonPackages.pyside2}/include/PySide2/QtWidgets"
-      + ";${pythonPackages.pyside2}/include/PySide2/QtGui"
+    ("-DPYSIDE_INCLUDE_DIR=${pyside2}/include"
+      + ";${pyside2}/include/PySide2/QtCore"
+      + ";${pyside2}/include/PySide2/QtWidgets"
+      + ";${pyside2}/include/PySide2/QtGui"
       )
     "-DPYSIDE_LIBRARY=PySide2::pyside2"
   ];
@@ -66,13 +132,31 @@ in mkDerivation rec {
 
   postFixup = ''
     mv $out/share/doc $out
+    ln -s $out/bin/FreeCAD $out/bin/freecad
+    ln -s $out/bin/FreeCADCmd $out/bin/freecadcmd
   '';
 
   meta = with lib; {
-    description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
     homepage = "https://www.freecadweb.org/";
+    description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
+    longDescription = ''
+      FreeCAD is an open-source parametric 3D modeler made primarily to design
+      real-life objects of any size. Parametric modeling allows you to easily
+      modify your design by going back into your model history and changing its
+      parameters.
+
+      FreeCAD allows you to sketch geometry constrained 2D shapes and use them
+      as a base to build other objects. It contains many components to adjust
+      dimensions or extract design details from 3D models to create high quality
+      production ready drawings.
+
+      FreeCAD is designed to fit a wide range of uses including product design,
+      mechanical engineering and architecture. Whether you are a hobbyist, a
+      programmer, an experienced CAD user, a student or a teacher, you will feel
+      right at home with FreeCAD.
+    '';
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ viric gebner ];
+    maintainers = with maintainers; [ viric gebner AndersonTorres ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/default.nix
index 62f1a3627716..2491d8d3a8ab 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchurl
+, fetchpatch
 , substituteAll
 , autoreconfHook
 , pkg-config
@@ -72,6 +73,12 @@ in stdenv.mkDerivation rec {
     # Use absolute paths instead of relying on PATH
     # to make sure plug-ins are loaded by the correct interpreter.
     ./hardcode-plugin-interpreters.patch
+
+    # Fix crash without dot.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gimp/-/commit/f83fd22c4b8701ffc4ce14383e5e22756a4bce04.patch";
+      sha256 = "POuvBhOSStO7hBGp4HgNx5F9pElFRoqN3W+i3u4zOnk=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
index db3bd494b6b1..307866c377ad 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -81,6 +81,29 @@ in
     };
   };
 
+  farbfeld = pluginDerivation rec {
+    pname = "farbfeld";
+    version = "unstable-2019-08-12";
+
+    src = fetchFromGitHub {
+      owner = "ids1024";
+      repo = "gimp-farbfeld";
+      rev = "5feacebf61448bd3c550dda03cd08130fddc5af4";
+      sha256 = "1vmw7k773vrndmfffj0m503digdjmkpcqy2r3p3i5x0qw9vkkkc6";
+    };
+
+    installPhase = ''
+      installPlugin farbfeld
+    '';
+
+    meta = {
+      description = "Gimp plug-in for the farbfeld image format";
+      homepage = "https://github.com/ids1024/gimp-farbfeld";
+      license = lib.licenses.mit;
+      maintainers = with lib.maintainers; [ sikmir ];
+    };
+  };
+
   fourier = pluginDerivation rec {
     /* menu:
        Filters/Generic/FFT Forward
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix b/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
index 8fde04d0d1df..bb81a374fea2 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
@@ -11,7 +11,7 @@ in symlinkJoin {
 
   paths = [ gimp ] ++ selectedPlugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     for each in gimp-${versionBranch} gimp-console-${versionBranch}; do
diff --git a/nixpkgs/pkgs/applications/graphics/glimpse/wrapper.nix b/nixpkgs/pkgs/applications/graphics/glimpse/wrapper.nix
index cdfb2f668731..daa540d31e50 100644
--- a/nixpkgs/pkgs/applications/graphics/glimpse/wrapper.nix
+++ b/nixpkgs/pkgs/applications/graphics/glimpse/wrapper.nix
@@ -12,7 +12,7 @@ symlinkJoin {
 
   paths = [ glimpse ] ++ selectedPlugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     for each in glimpse-${versionBranch} glimpse-console-${versionBranch}; do
diff --git a/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix b/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
index 24e064e721ba..583dcf7c618a 100644
--- a/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--enable-shared"
+    "--with-frozenpaths"
     "--with-quantum-depth=${toString quantumdepth}"
     "--with-gslib=yes"
   ];
diff --git a/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix b/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
index 0e65d3199ab5..616a0b713566 100644
--- a/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "gscan2pdf";
-  version = "2.9.1";
+  version = "2.11.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1ls6n1a8vjgwkb40drpc3rapjligaf9fp218539fnwvhv26div69";
+    sha256 = "0aigngfi5dbjihn43c6sg865i1ybfzj0w81zclzy8r9nqiqq0wma";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -23,15 +23,19 @@ perlPackages.buildPerlPackage rec {
     [ librsvg sane-backends sane-frontends ] ++
     (with perlPackages; [
       Gtk3
+      Gtk3ImageView
       Gtk3SimpleList
       Cairo
       CairoGObject
       Glib
       GlibObjectIntrospection
       GooCanvas2
+      GraphicsTIFF
+      IPCSystemSimple
       LocaleCodes
       LocaleGettext
-      PDFAPI2
+      PDFBuilder
+      ImagePNGLibpng
       ImageSane
       SetIntSpan
       PerlMagick
@@ -93,9 +97,21 @@ perlPackages.buildPerlPackage rec {
     xvfb_run
     file
     tesseract # tests are expecting tesseract 3.x precisely
-  ];
+  ] ++ (with perlPackages; [
+    TestPod
+  ]);
 
   checkPhase = ''
+    # Temporarily disable a dubiously failing test:
+    # t/169_import_scan.t ........................... 1/1
+    # #   Failed test 'variable-height scan imported with expected size'
+    # #   at t/169_import_scan.t line 50.
+    # #          got: '179'
+    # #     expected: '296'
+    # # Looks like you failed 1 test of 1.
+    # t/169_import_scan.t ........................... Dubious, test returned 1 (wstat 256, 0x100)
+    rm t/169_import_scan.t
+
     xvfb-run -s '-screen 0 800x600x24' \
       make test
   '';
diff --git a/nixpkgs/pkgs/applications/graphics/gthumb/default.nix b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
index faa25f4aef0e..26de91ee2252 100644
--- a/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , gnome3
 , pkg-config
 , meson
diff --git a/nixpkgs/pkgs/applications/graphics/hydrus/default.nix b/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
index f5b8b8062155..df1fcc9eb661 100644
--- a/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
@@ -1,6 +1,6 @@
 { lib
 , fetchFromGitHub
-, lzma
+, xz
 , qt5
 , wrapQtAppsHook
 , miniupnpc_2
@@ -8,16 +8,16 @@
 , pythonPackages
 }:
 
-pythonPackages.buildPythonPackage {
+pythonPackages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "426";
+  version = "431";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
-    rev = "1acdc258e5bb2ae22f5eafaf3dac8d9265dba5e2";
-    sha256 = "1snihd433hx36s6d5hsnq4qg0xs6ag4822lwm5fqak64n22ad2qb";
+    rev = "v${version}";
+    sha256 = "0mfql27n725k6ynvhkgzmxxpfbjlzil2fjpy082gz257kb0880zy";
   };
 
   nativeBuildInputs = [
@@ -39,11 +39,12 @@ pythonPackages.buildPythonPackage {
     service-identity
     twisted
     lz4
-    lzma
+    xz
     pysocks
     matplotlib
     qtpy
     pyside2
+    mpv
   ];
 
   checkInputs = with pythonPackages; [ nose httmock ];
diff --git a/nixpkgs/pkgs/applications/graphics/imagej/default.nix b/nixpkgs/pkgs/applications/graphics/imagej/default.nix
index 7e3238e94bbc..65d3c9735dfd 100644
--- a/nixpkgs/pkgs/applications/graphics/imagej/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/imagej/default.nix
@@ -15,7 +15,7 @@ let
       url = "https://wsr.imagej.net/distros/cross-platform/ij150.zip";
       sha256 = "97aba6fc5eb908f5160243aebcdc4965726693cb1353d9c0d71b8f5dd832cb7b";
     };
-    buildInputs = [ unzip makeWrapper ];
+    nativeBuildInputs = [ makeWrapper unzip ];
     inherit jre;
 
     # JAR files that are intended to be used by other packages
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/default.nix b/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
index ba6af5d781f2..11340fa74686 100644
--- a/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
@@ -7,6 +7,7 @@
 , fetchurl
 , gettext
 , gdl
+, ghostscript
 , glib
 , glib-networking
 , glibmm
@@ -74,6 +75,12 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs share/extensions
+    substituteInPlace share/extensions/eps_input.inx \
+      --replace "location=\"path\">ps2pdf" "location=\"absolute\">${ghostscript}/bin/ps2pdf"
+    substituteInPlace share/extensions/ps_input.inx \
+      --replace "location=\"path\">ps2pdf" "location=\"absolute\">${ghostscript}/bin/ps2pdf"
+    substituteInPlace share/extensions/ps_input.py \
+      --replace "call('ps2pdf'" "call('${ghostscript}/bin/ps2pdf'"
     patchShebangs share/templates
     patchShebangs man/fix-roff-punct
   '';
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix b/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix
index cca7b1fc3a54..c558a6bb0622 100644
--- a/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix
@@ -10,7 +10,7 @@ symlinkJoin {
 
   paths = [ inkscape ] ++ inkscapeExtensions;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     rm -f $out/bin/inkscape
diff --git a/nixpkgs/pkgs/applications/graphics/leocad/default.nix b/nixpkgs/pkgs/applications/graphics/leocad/default.nix
index 39a287900a9a..9c16e23ebb59 100644
--- a/nixpkgs/pkgs/applications/graphics/leocad/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/leocad/default.nix
@@ -1,31 +1,53 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchurl
+, qmake
+, qttools
+, zlib
+}:
+
 /*
 To use aditional parts libraries
 set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/
 */
 
-{ lib, stdenv, fetchFromGitHub, qt4, qmake4Hook, zlib }:
+let
+  parts = fetchurl {
+    url = "https://web.archive.org/web/20190715142541/https://www.ldraw.org/library/updates/complete.zip";
+    sha256 = "sha256-PW3XCbFwRaNkx4EgCnl2rXH7QgmpNgjTi17kZ5bladA=";
+  };
 
-stdenv.mkDerivation rec {
+in
+mkDerivation rec {
   pname = "leocad";
-  version = "19.07.1";
+  version = "21.03";
 
   src = fetchFromGitHub {
     owner = "leozide";
     repo = "leocad";
     rev = "v${version}";
-    sha256 = "02kv1m18g6s4dady9jv4sjivfkrp192bmdw2a3d9lzlp60zks0p2";
+    sha256 = "sha256-69Ocfk5dBXwcRqAZWEP9Xg41o/tAQo76dIOk9oYhCUE=";
   };
 
-  nativeBuildInputs = [ qmake4Hook ];
-  buildInputs = [ qt4 zlib ];
-  postPatch = ''
-    export qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
-  '';
+  nativeBuildInputs = [ qmake qttools ];
+
+  buildInputs = [ zlib ];
+
+  qmakeFlags = [
+    "INSTALL_PREFIX=${placeholder "out"}"
+    "DISABLE_UPDATE_CHECK=1"
+  ];
+
+  qtWrapperArgs = [
+    "--set-default LEOCAD_LIB ${parts}"
+  ];
 
   meta = with lib; {
     description = "CAD program for creating virtual LEGO models";
     homepage = "https://www.leocad.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/lightburn/default.nix b/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
index 18fe87b128de..8188a3949dc9 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 = "0.9.20";
+  version = "0.9.22";
 
   nativeBuildInputs = [
     p7zip
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
-    sha256 = "sha256-FtkBIoz5u70DbZZBH4uSaAkmOphWA9H0uYuukIPVGUM=";
+    sha256 = "sha256-DOiO36suytukkviqYyLL47DFVzsJt2ZfSnnni95CLaA=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/megapixels/default.nix b/nixpkgs/pkgs/applications/graphics/megapixels/default.nix
index 29aaed1278d5..1a7033788451 100644
--- a/nixpkgs/pkgs/applications/graphics/megapixels/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/megapixels/default.nix
@@ -7,10 +7,11 @@
 , wrapGAppsHook
 , gtk3
 , gnome3
+, zbar
 , tiffSupport ? true
 , libraw
 , jpgSupport ? true
-, imagemagick
+, graphicsmagick
 , exiftool
 }:
 
@@ -20,24 +21,24 @@ let
   inherit (lib) makeBinPath optional optionals optionalString;
   runtimePath = makeBinPath (
     optional tiffSupport libraw
-    ++ optionals jpgSupport [ imagemagick exiftool ]
+    ++ optionals jpgSupport [ graphicsmagick exiftool ]
   );
 in
 stdenv.mkDerivation rec {
   pname = "megapixels";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchgit {
     url = "https://git.sr.ht/~martijnbraam/megapixels";
     rev = version;
-    sha256 = "136rv9sx0kgfkpqn5s90j7j4qhb8h04p14g5qhqshb89kmmsmxiw";
+    sha256 = "1y8irwi8lbjs948j90gpic96dx5wjmwacd41hb3d9vzhkyni2dvb";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook ];
 
-  buildInputs = [ gtk3 gnome3.adwaita-icon-theme ]
+  buildInputs = [ gtk3 gnome3.adwaita-icon-theme zbar ]
   ++ optional tiffSupport libraw
-  ++ optional jpgSupport imagemagick;
+  ++ optional jpgSupport graphicsmagick;
 
   preFixup = optionalString (tiffSupport || jpgSupport) ''
     gappsWrapperArgs+=(
diff --git a/nixpkgs/pkgs/applications/graphics/meshlab/default.nix b/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
index 67b64ee575c0..8633494a4ca4 100644
--- a/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
@@ -1,7 +1,6 @@
 { mkDerivation
 , lib
 , fetchFromGitHub
-, fetchpatch
 , libGLU
 , qtbase
 , qtscript
@@ -19,13 +18,13 @@
 
 mkDerivation rec {
   pname = "meshlab";
-  version = "2020.07";
+  version = "2020.12";
 
   src = fetchFromGitHub {
     owner = "cnr-isti-vclab";
     repo = "meshlab";
     rev = "Meshlab-${version}";
-    sha256 = "0vj849b57zk3k6lx35zzcjhr9gdy4hxqnnkb8chwy7hw262cm3ri";
+    sha256 = "QrnqXEVqI1ADUYWalZ0h/0+xS+gDZTinm0weT39onw0=";
     fetchSubmodules = true; # for vcglib
   };
 
@@ -46,17 +45,11 @@ mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  patches = [
-    # Make cmake use the system qhull. The next meshlab will not need this patch because it is already in master.
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/cnr-isti-vclab/meshlab/pull/747.patch";
-      sha256 = "0wx9f6zn458xz3lsqcgvsbwh1pgi3g0lah93nlbsb0sagng7n565";
-    })
-  ];
-
   preConfigure = ''
-    substituteAll ${./meshlab.desktop} install/linux/resources/meshlab.desktop
-    cd src
+    substituteAll ${./meshlab.desktop} scripts/Linux/resources/meshlab.desktop
+    cmakeDir=$PWD/src
+    mkdir ../build
+    cd ../build
   '';
 
   cmakeFlags = [
@@ -75,19 +68,12 @@ mkDerivation rec {
 
   postFixup = ''
     patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlab-wrapped
-    patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlabserver-wrapped
   '';
 
-  # Meshlab is not format-security clean; without disabling hardening, we get:
-  # src/common/GLLogStream.h:61:37: error: format not a string literal and no format arguments [-Werror=format-security]
-  #  61 |         int chars_written = snprintf(buf, buf_size, f, std::forward<Ts>(ts)...);
-  #     |
-  hardeningDisable = [ "format" ];
-
   meta = {
     description = "A system for processing and editing 3D triangular meshes";
     homepage = "https://www.meshlab.net/";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
   };
diff --git a/nixpkgs/pkgs/applications/graphics/monado/default.nix b/nixpkgs/pkgs/applications/graphics/monado/default.nix
index 395ae028423a..fe5f99de121f 100644
--- a/nixpkgs/pkgs/applications/graphics/monado/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/monado/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitLab
-, fetchpatch
 , writeText
 , cmake
 , doxygen
@@ -44,24 +44,16 @@
 
 stdenv.mkDerivation rec {
   pname = "monado";
-  version = "0.4.1";
+  version = "21.0.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "114aif79dqyn2qg07mkv6lzmqn15k6fdcii818rdf5g4bp7zzzgm";
+    sha256 = "07zxs96i3prjqww1f68496cl2xxqaidx32lpfyy0pn5am4c297zc";
   };
 
-  patches = [
-    # fix libsurvive autodetection, drop with the next version update
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/monado/monado/-/commit/345e9eab56e2de9e8b07cf72c2a67cf2ebd01e62.patch";
-      sha256 = "17c110an6sxc8rn7dfz30rfkbayg64w68licicwc8cqabi6cgrm3";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     doxygen
diff --git a/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix b/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix
index f5595da47adf..5982e4abe0f7 100644
--- a/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix
+++ b/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , boost
 , cmake
 , ilmbase
@@ -11,26 +10,20 @@
 , openexr
 , robin-map
 , unzip
+, fmt
 }:
 
 stdenv.mkDerivation rec {
   pname = "openimageio";
-  version = "2.1.9.0";
+  version = "2.2.12.0";
 
   src = fetchFromGitHub {
     owner = "OpenImageIO";
     repo = "oiio";
     rev = "Release-${version}";
-    sha256 = "1bbxx3bcc5jlb90ffxbk29gb8227097rdr8vg97vj9axw2mjd5si";
+    sha256 = "16z8lnsqhljbfaarfwx9rc95p0a9wxf4p271j6kxdfknjb88p56i";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/OpenImageIO/oiio/pull/2441/commits/e9bdd69596103edf41b659ad8ab0ca4ce002f6f5.patch";
-      sha256 = "0x1wmjf1jrm19d1izhs1cs3y1if9al1zx48lahkfswyjag3r5dn0";
-    })
-  ];
-
   outputs = [ "bin" "out" "dev" "doc" ];
 
   nativeBuildInputs = [
@@ -47,6 +40,7 @@ stdenv.mkDerivation rec {
     opencolorio
     openexr
     robin-map
+    fmt
   ];
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/graphics/openimageio/2539_backport.patch b/nixpkgs/pkgs/applications/graphics/openimageio/2539_backport.patch
new file mode 100644
index 000000000000..c484b2ef9cf9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/openimageio/2539_backport.patch
@@ -0,0 +1,31 @@
+diff --git a/src/libOpenImageIO/exif.cpp b/src/libOpenImageIO/exif.cpp
+index 10b75c21..0287d9c5 100644
+--- a/src/libOpenImageIO/exif.cpp
++++ b/src/libOpenImageIO/exif.cpp
+@@ -213,6 +213,9 @@ static const EXIF_tag_info exif_tag_table[] = {
+ 
+ 
+ 
++// libtiff > 4.1.0 defines these in tiff.h. For older libtiff, let's define
++// them ourselves.
++#ifndef GPSTAG_VERSIONID
+ enum GPSTag {
+     GPSTAG_VERSIONID = 0, 
+     GPSTAG_LATITUDEREF = 1,  GPSTAG_LATITUDE = 2,
+@@ -237,6 +240,7 @@ enum GPSTag {
+     GPSTAG_DIFFERENTIAL = 30,
+     GPSTAG_HPOSITIONINGERROR = 31
+ };
++#endif
+ 
+ static const EXIF_tag_info gps_tag_table[] = {
+     { GPSTAG_VERSIONID,		"GPS:VersionID",	TIFF_BYTE, 4 }, 
+@@ -270,7 +274,7 @@ static const EXIF_tag_info gps_tag_table[] = {
+     { GPSTAG_AREAINFORMATION,	"GPS:AreaInformation",	TIFF_UNDEFINED, 1 },
+     { GPSTAG_DATESTAMP,		"GPS:DateStamp",	TIFF_ASCII, 0 },
+     { GPSTAG_DIFFERENTIAL,	"GPS:Differential",	TIFF_SHORT, 1 },
+-    { GPSTAG_HPOSITIONINGERROR,	"GPS:HPositioningError",TIFF_RATIONAL, 1 },
++    { GPSTAG_GPSHPOSITIONINGERROR,     "GPS:HPositioningError",TIFF_RATIONAL, 1 },
+     { -1, NULL }  // signal end of table
+ };
+ 
diff --git a/nixpkgs/pkgs/applications/graphics/openimageio/default.nix b/nixpkgs/pkgs/applications/graphics/openimageio/default.nix
index 8bd82c783932..2461fcc27657 100644
--- a/nixpkgs/pkgs/applications/graphics/openimageio/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/openimageio/default.nix
@@ -33,6 +33,11 @@ stdenv.mkDerivation rec {
     "dist_dir="
   ];
 
+  patches = [
+    # Backported from https://github.com/OpenImageIO/oiio/pull/2539 for 1.8.17
+    ./2539_backport.patch
+  ];
+
   meta = with lib; {
     homepage = "http://www.openimageio.org";
     description = "A library and tools for reading and writing images";
diff --git a/nixpkgs/pkgs/applications/graphics/openscad/default.nix b/nixpkgs/pkgs/applications/graphics/openscad/default.nix
index 3accf2fd5904..ac41a23f8bb8 100644
--- a/nixpkgs/pkgs/applications/graphics/openscad/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/openscad/default.nix
@@ -25,6 +25,7 @@
 , mkDerivation
 , qtmacextras
 , qmake
+, spacenavSupport ? stdenv.isLinux, libspnav
 }:
 
 mkDerivation rec {
@@ -46,9 +47,15 @@ mkDerivation rec {
     qtbase qtmultimedia qscintilla
   ] ++ lib.optionals stdenv.isLinux [ libGLU libGL ]
     ++ lib.optional stdenv.isDarwin qtmacextras
+    ++ lib.optional spacenavSupport libspnav
   ;
 
-  qmakeFlags = [ "VERSION=${version}" ];
+  qmakeFlags = [ "VERSION=${version}" ] ++
+    lib.optionals spacenavSupport [
+      "ENABLE_SPNAV=1"
+      "SPNAV_INCLUDEPATH=${libspnav}/include"
+      "SPNAV_LIBPATH=${libspnav}/lib"
+    ];
 
   # src/lexer.l:36:10: fatal error: parser.hxx: No such file or directory
   enableParallelBuilding = false; # true by default due to qmake
diff --git a/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix b/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix
index da5aa7bf6efe..14a130d7f412 100644
--- a/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix
@@ -1,5 +1,5 @@
 { boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint
-, libpng, libtiff, libusb1, lz4, lzma, lzo, openblas, pkg-config, qtbase
+, libpng, libtiff, libusb1, lz4, xz, lzo, openblas, pkg-config, qtbase
 , qtmultimedia, qtscript, lib, stdenv, superlu, wrapQtAppsHook, }:
 let source = import ./source.nix { inherit fetchFromGitHub; };
 in stdenv.mkDerivation rec {
@@ -21,7 +21,7 @@ in stdenv.mkDerivation rec {
     libtiff
     libusb1
     lz4
-    lzma
+    xz
     lzo
     openblas
     qtbase
diff --git a/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix b/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
index 857a68df0923..96df57d71981 100644
--- a/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "pdfcpu";
-  version = "0.3.8";
+  version = "0.3.9";
 
   src = fetchFromGitHub {
     owner = "pdfcpu";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Rx/LUp5s2DhEKuLUklYXjtTXjqBju+5YzK1hNfBCnIE=";
+    sha256 = "sha256-btkGn/67KVFB272j7u5MKZCeby2fyRthLLeXj8VgX7s=";
   };
 
   vendorSha256 = "sha256-/SsDDFveovJfuEdnOkxHAWccS8PJW5k9IHSxSJAgHMQ=";
diff --git a/nixpkgs/pkgs/applications/graphics/photoflare/default.nix b/nixpkgs/pkgs/applications/graphics/photoflare/default.nix
index 0c25364b76aa..cc4f4342c618 100644
--- a/nixpkgs/pkgs/applications/graphics/photoflare/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/photoflare/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "photoflare";
-  version = "1.6.6";
+  version = "1.6.7.1";
 
   src = fetchFromGitHub {
     owner = "PhotoFlare";
     repo = "photoflare";
     rev = "v${version}";
-    sha256 = "07lrlxagv1bljj607s8m0zsbzx9jrvi18bnxahnm7r4i5car5x2d";
+    sha256 = "sha256-7b7ICcHuMjOMtyQDkokoHeZrF4G+bOzgRJP4mkns+Zc=";
   };
 
   nativeBuildInputs = [ qmake qttools ];
@@ -19,13 +19,11 @@ mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-I${graphicsmagick}/include/GraphicsMagick";
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "A cross-platform image editor with a powerful features and a very friendly graphical user interface";
     homepage = "https://photoflare.io";
     maintainers = [ maintainers.omgbebebe ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix b/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix
index f444ebfe5be3..9fd629ca8e9c 100644
--- a/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix
@@ -81,7 +81,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
   meta = with lib; {
     description = "Photo and video importer for cameras, phones, and memory cards";
     homepage = "https://www.damonlynch.net/rapid/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jfrankenau ];
   };
diff --git a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
index c51794881e94..626610728ae6 100644
--- a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
@@ -13,14 +13,14 @@ let
   pythonPackages = python3Packages;
 in
 mkDerivation rec {
-  version = "1.11";
+  version = "1.12";
   pname = "renderdoc";
 
   src = fetchFromGitHub {
     owner = "baldurk";
     repo = "renderdoc";
     rev = "v${version}";
-    sha256 = "01r4fq03fpyhwvn47wx3dw29vcadcd0qml00h36q38cq3pi9x42j";
+    sha256 = "4k0WsTsz4WwPZC8Dj85l2ntJOZkLgmBBOJcX9Bb4U7I=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
index 3cce81ef8af0..d2ff4339890d 100644
--- a/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, avahi, libsoup, libjpeg, libpng, gnutls
-, sane-backends, meson, ninja }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, avahi, libjpeg, libpng
+, libxml2, gnutls, sane-backends }:
 stdenv.mkDerivation rec {
   pname = "sane-airscan";
-  version = "0.99.16";
+  version = "0.99.24";
 
   nativeBuildInputs = [ meson ninja pkg-config ];
-  buildInputs = [ avahi libsoup libjpeg libpng gnutls sane-backends ];
+  buildInputs = [ avahi gnutls libjpeg libpng libxml2 sane-backends ];
 
   src = fetchFromGitHub {
     owner = "alexpevzner";
     repo = pname;
     rev = version;
-    sha256 = "00lgcdbpns0shwlpkvrpfm4z05s7v5q3al4kcw6ii7xnkzmv1721";
+    sha256 = "sha256-2zSLC9P7Q/GMefHvmrUz6nV2hgScb4BhPAkahNBouqk=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix
index ad2681d25fe5..821a97e35871 100644
--- a/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix
@@ -1,10 +1,107 @@
-{ callPackage, fetchurl, ... } @ args:
+{ stdenv, lib, fetchurl, runtimeShell
+, gettext, pkg-config, python3
+, avahi, libgphoto2, libieee1284, libjpeg, libpng, libtiff, libusb1, libv4l, net-snmp
+, curl, systemd, libxml2, poppler
 
-callPackage ./generic.nix (args // rec {
-  version = "1.0.30";
+# List of { src name backend } attibute sets - see installFirmware below:
+, extraFirmware ? []
+
+# For backwards compatibility with older setups; use extraFirmware instead:
+, gt68xxFirmware ? null, snapscanFirmware ? null
+}:
+
+stdenv.mkDerivation {
+  pname = "sane-backends";
+  version = "1.0.32";
 
   src = fetchurl {
-    url = "https://gitlab.com/sane-project/backends/uploads/c3dd60c9e054b5dee1e7b01a7edc98b0/sane-backends-${version}.tar.gz";
-    sha256 = "18vryaycps3zpjzxh0wjgg8nv2f4pdvcfxxmdfj28qbzqjlrcp9z";
+    # raw checkouts of the repo do not work because, the configure script is
+    # only functional in manually uploaded release tarballs.
+    # https://gitlab.com/sane-project/backends/-/issues/440
+    # unfortunately this make the url unpredictable on update, to find the link
+    # go to https://gitlab.com/sane-project/backends/-/releases and choose
+    # the link with other in the URL.
+    url = "https://gitlab.com/sane-project/backends/uploads/104f09c07d35519cc8e72e604f11643f/sane-backends-1.0.32.tar.gz";
+    sha256 = "055iicihxa6b28iv5fnz13n67frdr5nrydq2c846f9x7q0vw4a1s";
+  };
+
+  outputs = [ "out" "doc" "man" ];
+
+  nativeBuildInputs = [
+    gettext
+    pkg-config
+    python3
+  ];
+
+  buildInputs = [
+    avahi
+    libgphoto2
+    libieee1284
+    libjpeg
+    libpng
+    libtiff
+    libusb1
+    libv4l
+    net-snmp
+    curl
+    systemd
+    libxml2
+    poppler
+  ];
+
+  enableParallelBuilding = true;
+
+  configureFlags =
+    lib.optional (avahi != null)   "--with-avahi"
+    ++ lib.optional (libusb1 != null) "--with-usb"
+  ;
+
+  postInstall = let
+
+    compatFirmware = extraFirmware
+      ++ lib.optional (gt68xxFirmware != null) {
+        src = gt68xxFirmware.fw;
+        inherit (gt68xxFirmware) name;
+        backend = "gt68xx";
+      }
+      ++ lib.optional (snapscanFirmware != null) {
+        src = snapscanFirmware;
+        name = "your-firmwarefile.bin";
+        backend = "snapscan";
+      };
+
+    installFirmware = f: ''
+      mkdir -p $out/share/sane/${f.backend}
+      ln -sv ${f.src} $out/share/sane/${f.backend}/${f.name}
+    '';
+
+  in ''
+    mkdir -p $out/etc/udev/rules.d/
+    ./tools/sane-desc -m udev > $out/etc/udev/rules.d/49-libsane.rules || \
+    cp tools/udev/libsane.rules $out/etc/udev/rules.d/49-libsane.rules
+    # the created 49-libsane references /bin/sh
+    substituteInPlace $out/etc/udev/rules.d/49-libsane.rules \
+      --replace "RUN+=\"/bin/sh" "RUN+=\"${runtimeShell}"
+
+    substituteInPlace $out/lib/libsane.la \
+      --replace "-ljpeg" "-L${lib.getLib libjpeg}/lib -ljpeg"
+
+    # net.conf conflicts with the file generated by the nixos module
+    rm $out/etc/sane.d/net.conf
+  '' + lib.concatStrings (builtins.map installFirmware compatFirmware);
+
+  meta = with lib; {
+    description = "SANE (Scanner Access Now Easy) backends";
+    longDescription = ''
+      Collection of open-source SANE backends (device drivers).
+      SANE is a universal scanner interface providing standardized access to
+      any raster image scanner hardware: flatbed scanners, hand-held scanners,
+      video- and still-cameras, frame-grabbers, etc. For a list of supported
+      scanners, see http://www.sane-project.org/sane-backends.html.
+    '';
+    homepage = "http://www.sane-project.org/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ peti ];
+    platforms = platforms.linux;
   };
-})
+}
diff --git a/nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix
deleted file mode 100644
index 88d47b58932a..000000000000
--- a/nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-{ lib, stdenv
-, gettext, pkg-config
-, avahi, libgphoto2, libieee1284, libjpeg, libpng, libtiff, libusb1, libv4l, net-snmp
-
-# List of { src name backend } attibute sets - see installFirmware below:
-, extraFirmware ? []
-
-# For backwards compatibility with older setups; use extraFirmware instead:
-, gt68xxFirmware ? null, snapscanFirmware ? null
-
-# Passed from versioned package (e.g. default.nix, git.nix):
-, version, src, ...
-}:
-
-stdenv.mkDerivation {
-  inherit src version;
-
-  name = "sane-backends-${version}";
-
-  outputs = [ "out" "doc" "man" ];
-
-  nativeBuildInputs = [
-    gettext
-    pkg-config
-  ];
-
-  buildInputs = [
-    avahi
-    libgphoto2
-    libieee1284
-    libjpeg
-    libpng
-    libtiff
-    libusb1
-    libv4l
-    net-snmp
-  ];
-
-  enableParallelBuilding = true;
-
-  configureFlags = []
-    ++ lib.optional (avahi != null)   "--enable-avahi"
-    ++ lib.optional (libusb1 != null) "--with-usb"
-  ;
-
-  postInstall = let
-
-    compatFirmware = extraFirmware
-      ++ lib.optional (gt68xxFirmware != null) {
-        src = gt68xxFirmware.fw;
-        inherit (gt68xxFirmware) name;
-        backend = "gt68xx";
-      }
-      ++ lib.optional (snapscanFirmware != null) {
-        src = snapscanFirmware;
-        name = "your-firmwarefile.bin";
-        backend = "snapscan";
-      };
-
-    installFirmware = f: ''
-      mkdir -p $out/share/sane/${f.backend}
-      ln -sv ${f.src} $out/share/sane/${f.backend}/${f.name}
-    '';
-
-  in ''
-    mkdir -p $out/etc/udev/rules.d/
-    ./tools/sane-desc -m udev > $out/etc/udev/rules.d/49-libsane.rules || \
-    cp tools/udev/libsane.rules $out/etc/udev/rules.d/49-libsane.rules
-    # the created 49-libsane references /bin/sh
-    substituteInPlace $out/etc/udev/rules.d/49-libsane.rules \
-      --replace "RUN+=\"/bin/sh" "RUN+=\"${stdenv.shell}"
-
-    substituteInPlace $out/lib/libsane.la \
-      --replace "-ljpeg" "-L${libjpeg.out}/lib -ljpeg"
-
-    # net.conf conflicts with the file generated by the nixos module
-    rm -f $out/etc/sane.d/net.conf
-  '' + lib.concatStrings (builtins.map installFirmware compatFirmware);
-
-  meta = with lib; {
-    description = "SANE (Scanner Access Now Easy) backends";
-    longDescription = ''
-      Collection of open-source SANE backends (device drivers).
-      SANE is a universal scanner interface providing standardized access to
-      any raster image scanner hardware: flatbed scanners, hand-held scanners,
-      video- and still-cameras, frame-grabbers, etc. For a list of supported
-      scanners, see http://www.sane-project.org/sane-backends.html.
-    '';
-    homepage = "http://www.sane-project.org/";
-    license = licenses.gpl2Plus;
-
-    maintainers = with maintainers; [ peti ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/graphics/sane/backends/git.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/git.nix
deleted file mode 100644
index 2edd739068d9..000000000000
--- a/nixpkgs/pkgs/applications/graphics/sane/backends/git.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ callPackage, fetchgit, ... } @ args:
-
-callPackage ./generic.nix (args // {
-  version = "2017-12-01";
-  src = fetchgit {
-    sha256 = "0qf7d7268kdxnb723c03m6icxhbgx0vw8gqvck2q1w5b948dy9g8";
-    rev = "e895ee55bec8a3320a0e972b32c05d35b47fe226";
-    url = "https://gitlab.com/sane-project/backends.git";
-  };
-})
diff --git a/nixpkgs/pkgs/applications/graphics/sane/config.nix b/nixpkgs/pkgs/applications/graphics/sane/config.nix
index 304df652f157..397e17837bcc 100644
--- a/nixpkgs/pkgs/applications/graphics/sane/config.nix
+++ b/nixpkgs/pkgs/applications/graphics/sane/config.nix
@@ -1,9 +1,10 @@
 { lib, stdenv }:
 
-{ paths }:
+{ paths, disabledDefaultBackends ? [] }:
 
 with lib;
-let installSanePath = path: ''
+let
+installSanePath = path: ''
       if [ -e "${path}/lib/sane" ]; then
         find "${path}/lib/sane" -maxdepth 1 -not -type d | while read backend; do
           symlink "$backend" "$out/lib/sane/$(basename "$backend")"
@@ -27,6 +28,10 @@ let installSanePath = path: ''
         done
       fi
     '';
+    disableBackend = backend: ''
+      grep -q '${backend}' $out/etc/sane.d/dll.conf || { echo '${backend} is not a default plugin in $SANE_CONFIG_DIR/dll.conf'; exit 1; }
+      substituteInPlace $out/etc/sane.d/dll.conf --replace '${backend}' '# ${backend} disabled in nixos config'
+    '';
 in
 stdenv.mkDerivation {
   name = "sane-config";
@@ -42,5 +47,7 @@ stdenv.mkDerivation {
     }
 
     mkdir -p $out/etc/sane.d $out/etc/sane.d/dll.d $out/lib/sane
-  '' + concatMapStrings installSanePath paths;
+  ''
+  + (concatMapStrings installSanePath paths)
+  + (concatMapStrings disableBackend disabledDefaultBackends);
 }
diff --git a/nixpkgs/pkgs/applications/graphics/shotwell/default.nix b/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
index bd9ad301d349..204d87a59c4e 100644
--- a/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
     description = "Popular photo organizer for the GNOME desktop";
     homepage = "https://wiki.gnome.org/Apps/Shotwell";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [domenkozar];
+    maintainers = with maintainers; [];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/solvespace/default.nix b/nixpkgs/pkgs/applications/graphics/solvespace/default.nix
index 98348129d9bd..b00f7f33210c 100644
--- a/nixpkgs/pkgs/applications/graphics/solvespace/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/solvespace/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchgit, cmake, pkg-config, zlib, libpng, cairo, freetype
-, json_c, fontconfig, gtkmm3, pangomm, glew, libGLU, xorg, pcre
-, wrapGAppsHook
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, zlib, libpng, cairo, freetype
+, json_c, fontconfig, gtkmm3, pangomm, glew, libGLU, xorg, pcre, wrapGAppsHook
 }:
 stdenv.mkDerivation rec {
-  name = "solvespace-2.3-20190501";
-  rev = "e7b75f19c34c923780db776592b47152650d8f22";
-  src = fetchgit {
-    url = "https://github.com/solvespace/solvespace";
-    inherit rev;
-    sha256 = "07k4mbzxf0dmzwdhjx5nc09y7rn1schkaypsw9kz0l7ppylprpp2";
+  pname = "solvespace";
+  version = "v3.0.rc2";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "1z0873gwcr0hybrpqy4hwislir6k2zb4s62lbsivq5nbkizy7gjm";
     fetchSubmodules = true;
   };
 
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     +# include(GetGitCommitHash)
      # and instead uncomment the following, adding the complete git hash of the checkout you are using:
     -# set(GIT_COMMIT_HASH 0000000000000000000000000000000000000000)
-    +set(GIT_COMMIT_HASH $rev)
+    +set(GIT_COMMIT_HASH $version)
     EOF
   '';
 
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A parametric 3d CAD program";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = [ maintainers.edef ];
     platforms = platforms.linux;
     homepage = "http://solvespace.com";
diff --git a/nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix b/nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix
index 313920d8154e..1dfc4393c46b 100644
--- a/nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix
+++ b/nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix
@@ -17,7 +17,7 @@ let
   tesseractWithData = tesseractBase.overrideAttrs (_: {
     inherit tesseractBase tessdata;
 
-    buildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
 
     buildCommand = ''
       makeWrapper {$tesseractBase,$out}/bin/tesseract --set-default TESSDATA_PREFIX $out/share/tessdata
diff --git a/nixpkgs/pkgs/applications/graphics/tev/default.nix b/nixpkgs/pkgs/applications/graphics/tev/default.nix
index ac8da654f057..3c48bbab0b85 100644
--- a/nixpkgs/pkgs/applications/graphics/tev/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/tev/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "tev";
-  version = "1.16";
+  version = "1.17";
 
   src = fetchFromGitHub {
     owner = "Tom94";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "0fn5j9klzrjvz3bq8p9yp9nqikn2fr7bp98c1sxwpwwaadkqy9xf";
+    sha256 = "12wsy2zdfhg0ygkpvz58rk86qiy259fi9grb0jxiz8zcyd6x1ngk";
   };
 
   nativeBuildInputs = [ cmake wrapGAppsHook ];
@@ -26,6 +26,10 @@ stdenv.mkDerivation rec {
       --replace "/usr/" "''${out}/"
   '';
 
+  cmakeFlags = [
+    "-DTEV_DEPLOY=1" # Only relevant not to append "dev" to the version
+  ];
+
   postInstall = ''
     wrapProgram $out/bin/tev \
       "''${gappsWrapperArgs[@]}" \
diff --git a/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix b/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix
index 0c5c8f3ff281..3187f573de70 100644
--- a/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix
@@ -38,7 +38,7 @@ in
     sourceRoot = "Unigine_Valley-${version}";
     instPath = "lib/unigine/valley";
 
-    buildInputs = [file makeWrapper];
+    nativeBuildInputs = [file makeWrapper];
 
     libPath = lib.makeLibraryPath [
       stdenv.cc.cc  # libstdc++.so.6
diff --git a/nixpkgs/pkgs/applications/graphics/yed/default.nix b/nixpkgs/pkgs/applications/graphics/yed/default.nix
index 8a498fbe7ea3..d2873f641428 100644
--- a/nixpkgs/pkgs/applications/graphics/yed/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/yed/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yEd";
-  version = "3.20.1";
+  version = "3.21.1";
 
   src = fetchzip {
     url = "https://www.yworks.com/resources/yed/demo/${pname}-${version}.zip";
-    sha256 = "0sd73s700f3gqq5zq1psrqjg6ff2gv49f8vd37v6bv65vdxqxryq";
+    sha256 = "1jw28hkd7p0n660gid8yh5y0kdcz6ycn4hsgjlf0pq48x9kv6w0c";
   };
 
   nativeBuildInputs = [ makeWrapper unzip wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix b/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix
index c47c41a1cdc7..b5fc70494fcd 100644
--- a/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix
@@ -6,7 +6,8 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/zvtm/${pname}/${version}/${pname}-${version}.zip";
     sha256 = "1yg2rck81sqqrgfi5kn6c1bz42dr7d0zqpcsdjhicssi1y159f23";
   };
-  buildInputs = [jre unzip];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [jre];
   buildPhase = "";
   installPhase = ''
     mkdir -p "$out"/{bin,share/java/zvtm/plugins,share/doc/zvtm}
diff --git a/nixpkgs/pkgs/applications/kde/akonadi-contacts.nix b/nixpkgs/pkgs/applications/kde/akonadi-contacts.nix
index 2076723a372b..ad94c79e0f3c 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi-contacts.nix
+++ b/nixpkgs/pkgs/applications/kde/akonadi-contacts.nix
@@ -2,9 +2,9 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules,
   qtwebengine,
-  grantlee,
+  grantlee, grantleetheme,
   kdbusaddons, ki18n, kiconthemes, kio, kitemmodels, ktextwidgets, prison,
-  akonadi, akonadi-mime, kcontacts, kmime,
+  akonadi, akonadi-mime, kcontacts, kmime, libkleo,
 }:
 
 mkDerivation {
@@ -16,9 +16,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     qtwebengine
-    grantlee
+    grantlee grantleetheme
     kdbusaddons ki18n kiconthemes kio kitemmodels ktextwidgets prison
-    akonadi-mime kcontacts kmime
+    akonadi-mime kcontacts kmime libkleo
   ];
   propagatedBuildInputs = [ akonadi ];
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch b/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
index 58390cba226b..3e5ccc9cdaa5 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
+++ b/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
@@ -1,6 +1,6 @@
-From 90969b9b36400d47b1afe761fb8468c1acb8a04a Mon Sep 17 00:00:00 2001
+From f4d718502ecd8242500078a7783e27caba72871e Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Mon, 13 Jul 2020 11:41:19 -0500
+Date: Sun, 31 Jan 2021 11:00:03 -0600
 Subject: [PATCH 1/3] akonadi paths
 
 ---
@@ -11,10 +11,10 @@ Subject: [PATCH 1/3] akonadi paths
  4 files changed, 11 insertions(+), 40 deletions(-)
 
 diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
-index 23b4a1f..c13b658 100644
+index 31e0cf2..6436e87 100644
 --- a/src/akonadicontrol/agentmanager.cpp
 +++ b/src/akonadicontrol/agentmanager.cpp
-@@ -61,7 +61,7 @@ public:
+@@ -48,7 +48,7 @@ public:
                  []() {
                      QCoreApplication::instance()->exit(255);
                  });
@@ -23,7 +23,7 @@ index 23b4a1f..c13b658 100644
      }
  
      ~StorageProcessControl() override
-@@ -84,7 +84,7 @@ public:
+@@ -70,7 +70,7 @@ public:
                  []() {
                      qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
                  });
@@ -33,10 +33,10 @@ index 23b4a1f..c13b658 100644
  
      ~AgentServerProcessControl() override
 diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
-index 4e58f7e..e8bb532 100644
+index c98946c..aa307ca 100644
 --- a/src/akonadicontrol/agentprocessinstance.cpp
 +++ b/src/akonadicontrol/agentprocessinstance.cpp
-@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
+@@ -49,7 +49,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
      } else {
          Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
          const QStringList arguments = QStringList() << executable << identifier();
@@ -46,10 +46,10 @@ index 4e58f7e..e8bb532 100644
      }
      return true;
 diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
-index cac40f5..527649b 100644
+index d595a3a..99324f6 100644
 --- a/src/server/storage/dbconfigmysql.cpp
 +++ b/src/server/storage/dbconfigmysql.cpp
-@@ -83,7 +83,6 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -69,7 +69,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -57,7 +57,7 @@ index cac40f5..527649b 100644
      QString defaultCleanShutdownCommand;
  
  #ifndef Q_OS_WIN
-@@ -92,16 +91,7 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -78,16 +77,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
  #endif
  
      const bool defaultInternalServer = true;
@@ -75,7 +75,7 @@ index cac40f5..527649b 100644
      if (!mysqladminPath.isEmpty()) {
  #ifndef Q_OS_WIN
          defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/%4 shutdown")
-@@ -111,10 +101,10 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -97,10 +87,10 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
  #endif
      }
  
@@ -88,7 +88,7 @@ index cac40f5..527649b 100644
      qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
  
      mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
-@@ -131,7 +121,7 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -117,7 +107,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -97,7 +97,7 @@ index cac40f5..527649b 100644
      mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString();
      settings.endGroup();
  
-@@ -141,9 +131,6 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -127,9 +117,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
          // intentionally not namespaced as we are the only one in this db instance when using internal mode
          mDatabaseName = QStringLiteral("akonadi");
      }
@@ -107,17 +107,17 @@ index cac40f5..527649b 100644
  
      qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath;
  
-@@ -152,9 +139,6 @@ bool DbConfigMysql::init(QSettings &settings)
-     settings.setValue(QStringLiteral("Name"), mDatabaseName);
-     settings.setValue(QStringLiteral("Host"), mHostName);
-     settings.setValue(QStringLiteral("Options"), mConnectionOptions);
--    if (!mMysqldPath.isEmpty()) {
--        settings.setValue(QStringLiteral("ServerPath"), mMysqldPath);
--    }
-     settings.setValue(QStringLiteral("StartServer"), mInternalServer);
-     settings.endGroup();
-     settings.sync();
-@@ -209,7 +193,7 @@ bool DbConfigMysql::startInternalServer()
+@@ -139,9 +126,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
+         settings.setValue(QStringLiteral("Name"), mDatabaseName);
+         settings.setValue(QStringLiteral("Host"), mHostName);
+         settings.setValue(QStringLiteral("Options"), mConnectionOptions);
+-        if (!mMysqldPath.isEmpty()) {
+-            settings.setValue(QStringLiteral("ServerPath"), mMysqldPath);
+-        }
+         settings.setValue(QStringLiteral("StartServer"), mInternalServer);
+         settings.endGroup();
+         settings.sync();
+@@ -214,7 +198,7 @@ bool DbConfigMysql::startInternalServer()
  #endif
  
      // generate config file
@@ -127,10 +127,10 @@ index cac40f5..527649b 100644
      const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
      if (globalConfig.isEmpty()) {
 diff --git a/src/server/storage/dbconfigpostgresql.cpp b/src/server/storage/dbconfigpostgresql.cpp
-index 09cdbd5..1c8996b 100644
+index dd273fc..05288d9 100644
 --- a/src/server/storage/dbconfigpostgresql.cpp
 +++ b/src/server/storage/dbconfigpostgresql.cpp
-@@ -141,9 +141,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
+@@ -127,9 +127,7 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -140,7 +140,7 @@ index 09cdbd5..1c8996b 100644
      QString defaultPgData;
  
  #ifndef Q_WS_WIN // We assume that PostgreSQL is running as service on Windows
-@@ -154,12 +152,8 @@ bool DbConfigPostgresql::init(QSettings &settings)
+@@ -140,12 +138,8 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
  
      mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
      if (mInternalServer) {
@@ -154,7 +154,7 @@ index 09cdbd5..1c8996b 100644
          defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
      }
  
-@@ -178,20 +172,14 @@ bool DbConfigPostgresql::init(QSettings &settings)
+@@ -164,20 +158,14 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -177,14 +177,14 @@ index 09cdbd5..1c8996b 100644
      qCDebug(AKONADISERVER_LOG) << "Found pg_upgrade:" << mPgUpgradePath;
      mPgData = settings.value(QStringLiteral("PgData"), defaultPgData).toString();
      if (mPgData.isEmpty()) {
-@@ -207,7 +195,6 @@ bool DbConfigPostgresql::init(QSettings &settings)
-         settings.setValue(QStringLiteral("Port"), mHostPort);
-     }
-     settings.setValue(QStringLiteral("Options"), mConnectionOptions);
--    settings.setValue(QStringLiteral("ServerPath"), mServerPath);
-     settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
-     settings.setValue(QStringLiteral("StartServer"), mInternalServer);
-     settings.endGroup();
+@@ -194,7 +182,6 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
+             settings.setValue(QStringLiteral("Port"), mHostPort);
+         }
+         settings.setValue(QStringLiteral("Options"), mConnectionOptions);
+-        settings.setValue(QStringLiteral("ServerPath"), mServerPath);
+         settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
+         settings.setValue(QStringLiteral("StartServer"), mInternalServer);
+         settings.endGroup();
 -- 
-2.25.4
+2.29.2
 
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch b/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
index ac9b3146e179..24f59f679161 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
+++ b/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
@@ -1,6 +1,6 @@
-From b8c6a2a017321649db8fec553a644b8da2300514 Mon Sep 17 00:00:00 2001
+From badd4be311afd37a99126c60490f1ae5daced6c4 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Mon, 13 Jul 2020 11:41:35 -0500
+Date: Sun, 31 Jan 2021 11:00:15 -0600
 Subject: [PATCH 2/3] akonadi timestamps
 
 ---
@@ -8,10 +8,10 @@ Subject: [PATCH 2/3] akonadi timestamps
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
-index 527649b..08c3dd4 100644
+index 99324f6..3c170a8 100644
 --- a/src/server/storage/dbconfigmysql.cpp
 +++ b/src/server/storage/dbconfigmysql.cpp
-@@ -235,8 +235,7 @@ bool DbConfigMysql::startInternalServer()
+@@ -240,8 +240,7 @@ bool DbConfigMysql::startInternalServer()
      bool confUpdate = false;
      QFile actualFile(actualConfig);
      // update conf only if either global (or local) is newer than actual
@@ -22,5 +22,5 @@ index 527649b..08c3dd4 100644
          QFile localFile(localConfig);
          if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
 -- 
-2.25.4
+2.29.2
 
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch b/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
index 1a0bc000c804..3aa61da73e41 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
+++ b/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
@@ -1,6 +1,6 @@
-From 7afe018382cf68b477b35f87b666424d62d19ef4 Mon Sep 17 00:00:00 2001
+From 82bfa975af60757374ffad787e56a981d6df0f98 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Mon, 13 Jul 2020 11:41:55 -0500
+Date: Sun, 31 Jan 2021 11:01:24 -0600
 Subject: [PATCH 3/3] akonadi revert make relocatable
 
 ---
@@ -9,10 +9,10 @@ Subject: [PATCH 3/3] akonadi revert make relocatable
  2 files changed, 3 insertions(+), 6 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d927471..83a74c0 100644
+index 4bb5fec..35720b4 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -330,9 +330,6 @@ configure_package_config_file(
+@@ -343,9 +343,6 @@ configure_package_config_file(
      "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in"
      "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake"
      INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
@@ -23,29 +23,23 @@ index d927471..83a74c0 100644
  
  install(FILES
 diff --git a/KF5AkonadiConfig.cmake.in b/KF5AkonadiConfig.cmake.in
-index 421e1df..e3abf27 100644
+index bcf7320..1574319 100644
 --- a/KF5AkonadiConfig.cmake.in
 +++ b/KF5AkonadiConfig.cmake.in
-@@ -24,8 +24,8 @@ if(BUILD_TESTING)
-     find_dependency(Qt5Test "@QT_REQUIRED_VERSION@")
- endif()
+@@ -1,10 +1,10 @@
+ @PACKAGE_INIT@
  
 -set_and_check(AKONADI_DBUS_INTERFACES_DIR  "@PACKAGE_AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
 -set_and_check(AKONADI_INCLUDE_DIR          "@PACKAGE_AKONADI_INCLUDE_DIR@")
 +set_and_check(AKONADI_DBUS_INTERFACES_DIR  "@AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
 +set_and_check(AKONADI_INCLUDE_DIR          "@AKONADI_INCLUDE_DIR@")
  
- find_dependency(Boost "@Boost_MINIMUM_VERSION@")
- 
-@@ -33,7 +33,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiTargets.cmake)
- include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiMacros.cmake)
- 
  # The directory where akonadi-xml.xsd and kcfg2dbus.xsl are installed
 -set(KF5Akonadi_DATA_DIR "@PACKAGE_KF5Akonadi_DATA_DIR@")
 +set(KF5Akonadi_DATA_DIR "@KF5Akonadi_DATA_DIR@")
  
- ####################################################################################
- # CMAKE_AUTOMOC
+ # set the directories
+ if(NOT AKONADI_INSTALL_DIR)
 -- 
-2.25.4
+2.29.2
 
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/default.nix b/nixpkgs/pkgs/applications/kde/akonadi/default.nix
index d24e19f89e7e..fd662d7e9926 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/default.nix
+++ b/nixpkgs/pkgs/applications/kde/akonadi/default.nix
@@ -2,8 +2,8 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, shared-mime-info, qtbase, accounts-qt,
   boost, kaccounts-integration, kcompletion, kconfigwidgets, kcrash, kdbusaddons,
-  kdesignerplugin, ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
-  signond,
+  kdesignerplugin, ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mariadb, qttools,
+  signond, xz,
 }:
 
 mkDerivation {
@@ -21,15 +21,15 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [
     kaccounts-integration kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin
-    ki18n kiconthemes kio kwindowsystem accounts-qt qttools signond
+    ki18n kiconthemes kio kwindowsystem xz accounts-qt qttools signond
   ];
   propagatedBuildInputs = [ boost kitemmodels ];
   outputs = [ "out" "dev" ];
   CXXFLAGS = [
-    ''-DNIXPKGS_MYSQL_MYSQLD=\"${lib.getBin mysql}/bin/mysqld\"''
-    ''-DNIXPKGS_MYSQL_MYSQLADMIN=\"${lib.getBin mysql}/bin/mysqladmin\"''
-    ''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB=\"${lib.getBin mysql}/bin/mysql_install_db\"''
-    ''-DNIXPKGS_MYSQL_MYSQLCHECK=\"${lib.getBin mysql}/bin/mysqlcheck\"''
+    ''-DNIXPKGS_MYSQL_MYSQLD=\"${lib.getBin mariadb}/bin/mysqld\"''
+    ''-DNIXPKGS_MYSQL_MYSQLADMIN=\"${lib.getBin mariadb}/bin/mysqladmin\"''
+    ''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB=\"${lib.getBin mariadb}/bin/mysql_install_db\"''
+    ''-DNIXPKGS_MYSQL_MYSQLCHECK=\"${lib.getBin mariadb}/bin/mysqlcheck\"''
     ''-DNIXPKGS_POSTGRES_PG_CTL=\"\"''
     ''-DNIXPKGS_POSTGRES_PG_UPGRADE=\"\"''
     ''-DNIXPKGS_POSTGRES_INITDB=\"\"''
diff --git a/nixpkgs/pkgs/applications/kde/ark/default.nix b/nixpkgs/pkgs/applications/kde/ark/default.nix
index 69a56254d65b..ef27380a3308 100644
--- a/nixpkgs/pkgs/applications/kde/ark/default.nix
+++ b/nixpkgs/pkgs/applications/kde/ark/default.nix
@@ -1,18 +1,12 @@
-{
-  mkDerivation, lib, config,
-
-  extra-cmake-modules, kdoctools,
-
-  breeze-icons, karchive, kconfig, kcrash, kdbusaddons, ki18n,
-  kiconthemes, kitemmodels, khtml, kio, kparts, kpty, kservice, kwidgetsaddons,
-
-  libarchive, libzip,
-
-  # Archive tools
-  p7zip, lrzip,
-
-  # Unfree tools
-  unfreeEnableUnrar ? false, unrar,
+{ mkDerivation, lib, config
+, extra-cmake-modules, kdoctools
+, breeze-icons, karchive, kconfig, kcrash, kdbusaddons, ki18n
+, kiconthemes, kitemmodels, khtml, kio, kparts, kpty, kservice, kwidgetsaddons
+, libarchive, libzip
+# Archive tools
+, p7zip, lrzip
+# Unfree tools
+, unfreeEnableUnrar ? false, unrar
 }:
 
 let
@@ -21,20 +15,23 @@ in
 
 mkDerivation {
   pname = "ark";
-  meta = {
-    description = "Graphical file compression/decompression utility";
-    license = with lib.licenses;
-      [ gpl2 lgpl3 ] ++ lib.optional unfreeEnableUnrar unfree;
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
 
   outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+
   buildInputs = [ libarchive libzip ] ++ extraTools;
+
   propagatedBuildInputs = [
     breeze-icons karchive kconfig kcrash kdbusaddons khtml ki18n kiconthemes kio
     kitemmodels kparts kpty kservice kwidgetsaddons
   ];
 
   qtWrapperArgs = [ "--prefix" "PATH" ":" (lib.makeBinPath extraTools) ];
+
+  meta = with lib; {
+    description = "Graphical file compression/decompression utility";
+    license = with licenses; [ gpl2 lgpl3 ] ++ optional unfreeEnableUnrar unfree;
+    maintainers = [ maintainers.ttuegel ];
+  };
 }
diff --git a/nixpkgs/pkgs/applications/kde/calendarsupport.nix b/nixpkgs/pkgs/applications/kde/calendarsupport.nix
index b316ab4e5689..c7ef5c4615ce 100644
--- a/nixpkgs/pkgs/applications/kde/calendarsupport.nix
+++ b/nixpkgs/pkgs/applications/kde/calendarsupport.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam, fetchpatch,
   extra-cmake-modules, kdoctools,
-  akonadi, akonadi-calendar, akonadi-mime, akonadi-notes, kcalutils, kdepim-apps-libs,
+  akonadi, akonadi-calendar, akonadi-mime, akonadi-notes, kcalutils,
   kholidays, kidentitymanagement, kmime, pimcommon, qttools,
 }:
 
@@ -11,16 +11,9 @@ mkDerivation {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
   };
-  patches = [
-    # Patch for Qt 5.15.2 until version 20.12.0
-    (fetchpatch {
-      url = "https://invent.kde.org/pim/calendarsupport/-/commit/b4193facb223bd5b73a65318dec8ced51b66adf7.patch";
-      sha256 = "sha256:1da11rqbxxrl06ld3avc41p064arz4n6w5nxq8r008v8ws3s64dy";
-    })
-  ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    akonadi akonadi-mime akonadi-notes kcalutils kdepim-apps-libs kholidays pimcommon qttools
+    akonadi akonadi-mime akonadi-notes kcalutils kholidays pimcommon qttools
   ];
   propagatedBuildInputs = [ akonadi-calendar kidentitymanagement kmime ];
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/applications/kde/default.nix b/nixpkgs/pkgs/applications/kde/default.nix
index 33f392fdccc7..f8719c353b0a 100644
--- a/nixpkgs/pkgs/applications/kde/default.nix
+++ b/nixpkgs/pkgs/applications/kde/default.nix
@@ -91,6 +91,7 @@ let
       kalarm = callPackage ./kalarm.nix {};
       kalarmcal = callPackage ./kalarmcal.nix {};
       kalzium = callPackage ./kalzium.nix {};
+      kamoso = callPackage ./kamoso.nix {};
       kapman = callPackage ./kapman.nix {};
       kapptemplate = callPackage ./kapptemplate.nix { };
       kate = callPackage ./kate.nix {};
@@ -109,10 +110,9 @@ let
       kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix {};
       kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers.nix {};
       kdenetwork-filesharing = callPackage ./kdenetwork-filesharing.nix {};
-      kdenlive = callPackage ./kdenlive.nix {};
+      kdenlive = callPackage ./kdenlive {};
       kdepim-runtime = callPackage ./kdepim-runtime {};
       kdepim-addons = callPackage ./kdepim-addons.nix {};
-      kdepim-apps-libs = callPackage ./kdepim-apps-libs {};
       kdf = callPackage ./kdf.nix {};
       kdialog = callPackage ./kdialog.nix {};
       kdiamond = callPackage ./kdiamond.nix {};
diff --git a/nixpkgs/pkgs/applications/kde/dolphin.nix b/nixpkgs/pkgs/applications/kde/dolphin.nix
index 3774c7e00b63..a558ad266773 100644
--- a/nixpkgs/pkgs/applications/kde/dolphin.nix
+++ b/nixpkgs/pkgs/applications/kde/dolphin.nix
@@ -5,7 +5,7 @@
   kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
   kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
   kparts, ktexteditor, kwindowsystem, phonon, solid,
-  wayland, qtwayland
+  wayland, qtbase, qtwayland
 }:
 
 mkDerivation {
@@ -13,6 +13,7 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 fdl12 ];
     maintainers = [ lib.maintainers.ttuegel ];
+    broken = lib.versionOlder qtbase.version "5.14";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedUserEnvPkgs = [ baloo ];
diff --git a/nixpkgs/pkgs/applications/kde/fetch.sh b/nixpkgs/pkgs/applications/kde/fetch.sh
index e3bba77f9728..861cd5f83561 100644
--- a/nixpkgs/pkgs/applications/kde/fetch.sh
+++ b/nixpkgs/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( http://download.kde.org/stable/release-service/20.08.3/src -A '*.tar.xz' )
+WGET_ARGS=( http://download.kde.org/stable/release-service/20.12.2/src -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix b/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix
index 2a8b82352b40..b8695a301547 100644
--- a/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix
+++ b/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  ffmpeg_3, kio
+  ffmpeg_4, kio, taglib
 }:
 
 mkDerivation {
@@ -11,5 +11,5 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ ffmpeg_3 kio ];
+  buildInputs = [ ffmpeg_4 kio taglib ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/filelight.nix b/nixpkgs/pkgs/applications/kde/filelight.nix
index 1aeff531862f..95a89b01b8cd 100644
--- a/nixpkgs/pkgs/applications/kde/filelight.nix
+++ b/nixpkgs/pkgs/applications/kde/filelight.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kio, kparts, kxmlgui, qtscript, solid
+  kio, kparts, kxmlgui, qtbase, qtscript, solid
 }:
 
 mkDerivation {
@@ -9,6 +9,7 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ fridh vcunat ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/kde/incidenceeditor.nix b/nixpkgs/pkgs/applications/kde/incidenceeditor.nix
index 981c184d1515..7f2c284ad74d 100644
--- a/nixpkgs/pkgs/applications/kde/incidenceeditor.nix
+++ b/nixpkgs/pkgs/applications/kde/incidenceeditor.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  akonadi, akonadi-mime, calendarsupport, eventviews, kdepim-apps-libs,
+  akonadi, akonadi-mime, calendarsupport, eventviews,
   kdiagram, kldap, kmime, pimcommon, qtbase
 }:
 
@@ -13,7 +13,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    akonadi akonadi-mime calendarsupport eventviews kdepim-apps-libs kdiagram
+    akonadi akonadi-mime calendarsupport eventviews kdiagram
     kldap kmime pimcommon qtbase
   ];
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/applications/kde/kaddressbook.nix b/nixpkgs/pkgs/applications/kde/kaddressbook.nix
index 452c5142157d..2672d815fb0a 100644
--- a/nixpkgs/pkgs/applications/kde/kaddressbook.nix
+++ b/nixpkgs/pkgs/applications/kde/kaddressbook.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam, fetchpatch,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-search, grantlee, grantleetheme, kcmutils, kcompletion,
-  kcrash, kdbusaddons, kdepim-apps-libs, ki18n, kontactinterface, kparts,
+  kcrash, kdbusaddons, ki18n, kontactinterface, kparts,
   kpimtextedit, kxmlgui, libkdepim, libkleo, mailcommon, pimcommon, prison,
   qgpgme, qtbase,
 }:
@@ -13,17 +13,10 @@ mkDerivation {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
   };
-  patches = [
-    # Patch for Qt 5.15.2 until version 20.12.0
-    (fetchpatch {
-      url = "https://invent.kde.org/pim/kaddressbook/-/commit/8aee8d40ae2a1c920d3520163d550d3b49720226.patch";
-      sha256 = "sha256:0dsy119cd5w9khiwgk6fb7xnjzmj94rfphf327k331lf15zq4853";
-    })
-  ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-search grantlee grantleetheme kcmutils kcompletion kcrash
-    kdbusaddons kdepim-apps-libs ki18n kontactinterface kparts kpimtextedit
+    kdbusaddons ki18n kontactinterface kparts kpimtextedit
     kxmlgui libkdepim libkleo mailcommon pimcommon prison qgpgme qtbase
   ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kalarm.nix b/nixpkgs/pkgs/applications/kde/kalarm.nix
index 70ee3f741854..8709f26bd121 100644
--- a/nixpkgs/pkgs/applications/kde/kalarm.nix
+++ b/nixpkgs/pkgs/applications/kde/kalarm.nix
@@ -3,12 +3,13 @@
   extra-cmake-modules,
 
   kauth, kcodecs, kcompletion, kconfig, kconfigwidgets, kdbusaddons, kdoctools,
-  kguiaddons, ki18n, kiconthemes, kjobwidgets, kcmutils, kdelibs4support, kio,
-  knotifications, kservice, kwidgetsaddons, kwindowsystem, kxmlgui, phonon,
+  kguiaddons, ki18n, kiconthemes, kidletime, kjobwidgets, kcmutils,
+  kdelibs4support, kio, knotifications, knotifyconfig, kservice, kwidgetsaddons,
+  kwindowsystem, kxmlgui, phonon,
 
   kimap, akonadi, akonadi-contacts, akonadi-mime, kalarmcal, kcalendarcore, kcalutils,
   kholidays, kidentitymanagement, libkdepim, mailcommon, kmailtransport, kmime,
-  pimcommon, kpimtextedit, kdepim-apps-libs, messagelib,
+  pimcommon, kpimtextedit, messagelib,
 
   qtx11extras,
 
@@ -24,12 +25,13 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kauth kcodecs kcompletion kconfig kconfigwidgets kdbusaddons kdoctools
-    kguiaddons ki18n kiconthemes kjobwidgets kcmutils kdelibs4support kio
-    knotifications kservice kwidgetsaddons kwindowsystem kxmlgui phonon
+    kguiaddons ki18n kiconthemes kidletime kjobwidgets kcmutils kdelibs4support
+    kio knotifications knotifyconfig kservice kwidgetsaddons kwindowsystem
+    kxmlgui phonon
 
-    kimap akonadi akonadi-contacts akonadi-mime kalarmcal kcalendarcore kcalutils
-    kholidays kidentitymanagement libkdepim mailcommon kmailtransport kmime
-    pimcommon kpimtextedit kdepim-apps-libs messagelib
+    kimap akonadi akonadi-contacts akonadi-mime kalarmcal kcalendarcore
+    kcalutils kholidays kidentitymanagement libkdepim mailcommon kmailtransport
+    kmime pimcommon kpimtextedit messagelib
 
     qtx11extras
   ];
diff --git a/nixpkgs/pkgs/applications/kde/kamoso.nix b/nixpkgs/pkgs/applications/kde/kamoso.nix
new file mode 100644
index 000000000000..3e5eb53858f1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kamoso.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, kdoctools
+, wrapQtAppsHook
+, qtdeclarative
+, qtgraphicaleffects
+, qtquickcontrols2
+, kirigami2
+, kpurpose
+, gst_all_1
+, pcre
+}:
+
+let
+  gst = with gst_all_1; [ gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad ];
+
+in
+mkDerivation {
+  pname = "kamoso";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapQtAppsHook ];
+  buildInputs = [ pcre ] ++ gst;
+  propagatedBuildInputs = [
+    qtdeclarative
+    qtgraphicaleffects
+    qtquickcontrols2
+    kirigami2
+    kpurpose
+  ];
+
+  cmakeFlags = [
+    "-DOpenGL_GL_PREFERENCE=GLVND"
+    "-DGSTREAMER_VIDEO_INCLUDE_DIR=${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"
+  ];
+
+  qtWrapperArgs = [
+    "--prefix GST_PLUGIN_PATH : ${lib.makeSearchPath "lib/gstreamer-1.0" gst}"
+  ];
+
+  meta.license = with lib.licenses; [ lgpl21Only gpl3Only ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kcachegrind.nix b/nixpkgs/pkgs/applications/kde/kcachegrind.nix
index 308ed35dc4ed..72c22c21ec54 100644
--- a/nixpkgs/pkgs/applications/kde/kcachegrind.nix
+++ b/nixpkgs/pkgs/applications/kde/kcachegrind.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  karchive, ki18n, kio, perl, python, php, qttools
+  karchive, ki18n, kio, perl, python3, php, qttools
   , kdbusaddons
 }:
 
@@ -12,5 +12,5 @@ mkDerivation {
     maintainers = with lib.maintainers; [ orivej ];
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ karchive ki18n kio perl python php qttools kdbusaddons ];
+  buildInputs = [ karchive ki18n kio perl python3 php qttools kdbusaddons ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kdebugsettings.nix b/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
index f4dd7ec145d0..7f24ec8e2fc0 100644
--- a/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
+++ b/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   gettext,
   kcoreaddons, kconfig, kdbusaddons, kwidgetsaddons, kitemviews, kcompletion,
-  python
+  qtbase, python3
 }:
 
 mkDerivation {
@@ -11,10 +11,11 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.rittelle ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    gettext kcoreaddons kconfig kdbusaddons kwidgetsaddons kitemviews kcompletion python
+    gettext kcoreaddons kconfig kdbusaddons kwidgetsaddons kitemviews kcompletion python3
   ];
   propagatedUserEnvPkgs = [ ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix b/nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix
index 94656b026710..a7da03ffdd14 100644
--- a/nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix
+++ b/nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kcoreaddons, ki18n, kio, kwidgetsaddons, samba
+  kcoreaddons, kdeclarative, ki18n, kio, kwidgetsaddons, samba, qtbase,
 }:
 
 mkDerivation {
@@ -9,7 +9,8 @@ mkDerivation {
   meta = {
     license = [ lib.licenses.gpl2 lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ kcoreaddons ki18n kio kwidgetsaddons samba ];
+  buildInputs = [ kcoreaddons kdeclarative ki18n kio kwidgetsaddons samba ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kdenlive.nix b/nixpkgs/pkgs/applications/kde/kdenlive/default.nix
index 47afcd0a67e3..47afcd0a67e3 100644
--- a/nixpkgs/pkgs/applications/kde/kdenlive.nix
+++ b/nixpkgs/pkgs/applications/kde/kdenlive/default.nix
diff --git a/nixpkgs/pkgs/applications/kde/ffmpeg-path.patch b/nixpkgs/pkgs/applications/kde/kdenlive/ffmpeg-path.patch
index a0cef882f596..a0cef882f596 100644
--- a/nixpkgs/pkgs/applications/kde/ffmpeg-path.patch
+++ b/nixpkgs/pkgs/applications/kde/kdenlive/ffmpeg-path.patch
diff --git a/nixpkgs/pkgs/applications/kde/mlt-path.patch b/nixpkgs/pkgs/applications/kde/kdenlive/mlt-path.patch
index 9bfb66c1a839..9bfb66c1a839 100644
--- a/nixpkgs/pkgs/applications/kde/mlt-path.patch
+++ b/nixpkgs/pkgs/applications/kde/kdenlive/mlt-path.patch
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-addons.nix b/nixpkgs/pkgs/applications/kde/kdepim-addons.nix
index 0939b0ecd26f..42532644a1a6 100644
--- a/nixpkgs/pkgs/applications/kde/kdepim-addons.nix
+++ b/nixpkgs/pkgs/applications/kde/kdepim-addons.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, shared-mime-info,
   akonadi-import-wizard, akonadi-notes, calendarsupport, eventviews,
   incidenceeditor, kcalendarcore, kcalutils, kconfig, kdbusaddons, kdeclarative,
-  kdepim-apps-libs, kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
+  kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
   libksieve, mailcommon, mailimporter, messagelib, poppler, prison, kpkpass,
   kitinerary, kontactinterface
 }:
@@ -18,7 +18,7 @@ mkDerivation {
   buildInputs = [
     akonadi-import-wizard akonadi-notes calendarsupport eventviews
     incidenceeditor kcalendarcore kcalutils kconfig kdbusaddons kdeclarative
-    kdepim-apps-libs kholidays ki18n kmime ktexteditor ktnef libgravatar
+    kholidays ki18n kmime ktexteditor ktnef libgravatar
     libksieve mailcommon mailimporter messagelib poppler prison kpkpass
     kitinerary kontactinterface
   ];
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix
deleted file mode 100644
index 19f476fd781e..000000000000
--- a/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  mkDerivation, lib, kdepimTeam,
-  extra-cmake-modules, kdoctools,
-  akonadi, akonadi-contacts, grantlee, grantleetheme, kconfig, kconfigwidgets,
-  kcontacts, ki18n, kiconthemes, kio, libkleo, pimcommon, prison,
-}:
-
-mkDerivation {
-  pname = "kdepim-apps-libs";
-  meta = {
-    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
-    maintainers = kdepimTeam;
-  };
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [
-    akonadi akonadi-contacts grantlee grantleetheme kconfig kconfigwidgets
-    kcontacts ki18n kiconthemes kio libkleo pimcommon prison
-  ];
-  outputs = [ "out" "dev" ];
-}
diff --git a/nixpkgs/pkgs/applications/kde/kmail.nix b/nixpkgs/pkgs/applications/kde/kmail.nix
index fa3fe033035f..e742f566678f 100644
--- a/nixpkgs/pkgs/applications/kde/kmail.nix
+++ b/nixpkgs/pkgs/applications/kde/kmail.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi-search, kbookmarks, kcalutils, kcmutils, kcompletion, kconfig,
-  kconfigwidgets, kcoreaddons, kdelibs4support, kdepim-apps-libs, libkdepim,
+  kconfigwidgets, kcoreaddons, kdelibs4support, libkdepim,
   kdepim-runtime, kguiaddons, ki18n, kiconthemes, kinit, kio, kldap,
   kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
   kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
@@ -19,7 +19,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi-search kbookmarks kcalutils kcmutils kcompletion kconfig
-    kconfigwidgets kcoreaddons kdelibs4support kdepim-apps-libs kguiaddons ki18n
+    kconfigwidgets kcoreaddons kdelibs4support kguiaddons ki18n
     kiconthemes kinit kio kldap kmail-account-wizard kmailtransport libkdepim
     knotifications knotifyconfig kontactinterface kparts kpty kservice
     ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
diff --git a/nixpkgs/pkgs/applications/kde/kompare.nix b/nixpkgs/pkgs/applications/kde/kompare.nix
index a449a1e4f51e..d4d49c6a9426 100644
--- a/nixpkgs/pkgs/applications/kde/kompare.nix
+++ b/nixpkgs/pkgs/applications/kde/kompare.nix
@@ -12,15 +12,5 @@ mkDerivation {
   buildInputs = [
     kiconthemes kparts ktexteditor kwidgetsaddons libkomparediff2
   ];
-
-  patches = [
-    (fetchpatch {
-      # Portaway from Obsolete methods of QPrinter
-      # Part of v20.12.0
-      url = "https://invent.kde.org/sdk/kompare/-/commit/68d3eee36c48a2f44ccfd3f9e5a36311b829104b.patch";
-      sha256 = "B2i5n5cUDjCqTEF0OyTb1+LhPa5yWCnFycwijf35kwU=";
-    })
-  ];
-
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/konqueror.nix b/nixpkgs/pkgs/applications/kde/konqueror.nix
index 72fcf8ff220a..eb188ccef116 100644
--- a/nixpkgs/pkgs/applications/kde/konqueror.nix
+++ b/nixpkgs/pkgs/applications/kde/konqueror.nix
@@ -2,7 +2,7 @@
 , mkDerivation
 , extra-cmake-modules, kdoctools
 , kdelibs4support, kcmutils, khtml, kdesu
-, qtwebkit, qtwebengine, qtx11extras, qtscript, qtwayland
+, qtbase, qtwebkit, qtwebengine, qtx11extras, qtscript, qtwayland
 }:
 
 mkDerivation {
@@ -24,5 +24,6 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
 }
diff --git a/nixpkgs/pkgs/applications/kde/kontact.nix b/nixpkgs/pkgs/applications/kde/kontact.nix
index 3dfa28e9dfe7..801c6845e409 100644
--- a/nixpkgs/pkgs/applications/kde/kontact.nix
+++ b/nixpkgs/pkgs/applications/kde/kontact.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   qtwebengine,
   kcmutils, kcrash, kdbusaddons, kparts, kwindowsystem,
-  akonadi, grantleetheme, kdepim-apps-libs, kontactinterface, kpimtextedit,
+  akonadi, grantleetheme, kontactinterface, kpimtextedit,
   mailcommon, libkdepim, pimcommon
 }:
 
@@ -17,7 +17,7 @@ mkDerivation {
   buildInputs = [
     qtwebengine
     kcmutils kcrash kdbusaddons kparts kwindowsystem
-    akonadi grantleetheme kdepim-apps-libs kontactinterface kpimtextedit
+    akonadi grantleetheme kontactinterface kpimtextedit
     mailcommon libkdepim pimcommon
   ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/korganizer.nix b/nixpkgs/pkgs/applications/kde/korganizer.nix
index f28e0406b134..a6a28427772e 100644
--- a/nixpkgs/pkgs/applications/kde/korganizer.nix
+++ b/nixpkgs/pkgs/applications/kde/korganizer.nix
@@ -5,7 +5,7 @@
   phonon,
   knewstuff,
   akonadi-calendar, akonadi-contacts, akonadi-notes, akonadi-search,
-  calendarsupport, eventviews, incidenceeditor, kcalutils, kdepim-apps-libs,
+  calendarsupport, eventviews, incidenceeditor, kcalutils,
   kholidays, kidentitymanagement, kldap, kmailtransport, kontactinterface,
   kpimtextedit, pimcommon,
 }:
@@ -22,7 +22,7 @@ mkDerivation {
     phonon
     knewstuff
     akonadi-calendar akonadi-contacts akonadi-notes akonadi-search
-    calendarsupport eventviews incidenceeditor kcalutils kdepim-apps-libs
+    calendarsupport eventviews incidenceeditor kcalutils
     kholidays kidentitymanagement kldap kmailtransport kontactinterface
     kpimtextedit pimcommon
   ];
diff --git a/nixpkgs/pkgs/applications/kde/kpat.nix b/nixpkgs/pkgs/applications/kde/kpat.nix
index d1e47af6b724..96bd6dd542ec 100644
--- a/nixpkgs/pkgs/applications/kde/kpat.nix
+++ b/nixpkgs/pkgs/applications/kde/kpat.nix
@@ -5,6 +5,7 @@
 , shared-mime-info
 , libkdegames
 , freecell-solver
+, black-hole-solver
 }:
 
 mkDerivation {
@@ -14,6 +15,7 @@ mkDerivation {
     shared-mime-info
   ];
   buildInputs = [
+    black-hole-solver
     knewstuff
     libkdegames
     freecell-solver
diff --git a/nixpkgs/pkgs/applications/kde/krdc.nix b/nixpkgs/pkgs/applications/kde/krdc.nix
index 01cc39d9895d..b0e79b0ff896 100644
--- a/nixpkgs/pkgs/applications/kde/krdc.nix
+++ b/nixpkgs/pkgs/applications/kde/krdc.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib,
   extra-cmake-modules, kdoctools, makeWrapper,
   kcmutils, kcompletion, kconfig, kdnssd, knotifyconfig, kwallet, kwidgetsaddons,
-  kwindowsystem, libvncserver, freerdp
+  kwindowsystem, libvncserver, freerdp, qtbase,
 }:
 
 mkDerivation {
@@ -21,5 +21,6 @@ mkDerivation {
     license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
+    broken = lib.versionOlder qtbase.version "5.14";
   };
 }
diff --git a/nixpkgs/pkgs/applications/kde/libksane.nix b/nixpkgs/pkgs/applications/kde/libksane.nix
index 33a2ef48f90b..79274d4396f4 100644
--- a/nixpkgs/pkgs/applications/kde/libksane.nix
+++ b/nixpkgs/pkgs/applications/kde/libksane.nix
@@ -9,7 +9,7 @@ mkDerivation {
   pname = "libksane";
   meta = with lib; {
     license = licenses.gpl2;
-    maintainers = with maintainers; [ pshendry ];
+    maintainers = with maintainers; [ polendri ];
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ki18n ktextwidgets kwallet kwidgetsaddons sane-backends ];
diff --git a/nixpkgs/pkgs/applications/kde/messagelib.nix b/nixpkgs/pkgs/applications/kde/messagelib.nix
index d47a5504417a..6709a1f072a5 100644
--- a/nixpkgs/pkgs/applications/kde/messagelib.nix
+++ b/nixpkgs/pkgs/applications/kde/messagelib.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-mime, akonadi-notes, akonadi-search, gpgme, grantlee,
   grantleetheme, karchive, kcodecs, kconfig, kconfigwidgets, kcontacts,
-  kdepim-apps-libs, kiconthemes, kidentitymanagement, kio, kjobwidgets, kldap,
+  kiconthemes, kidentitymanagement, kio, kjobwidgets, kldap,
   kmailtransport, kmbox, kmime, kwindowsystem, libgravatar, libkdepim, libkleo,
   pimcommon, qca-qt5, qtwebengine, syntax-highlighting
 }:
@@ -17,7 +17,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi-notes akonadi-search gpgme grantlee grantleetheme karchive kcodecs
-    kconfig kconfigwidgets kdepim-apps-libs kiconthemes kio kjobwidgets kldap
+    kconfig kconfigwidgets kiconthemes kio kjobwidgets kldap
     kmailtransport kmbox kmime kwindowsystem libgravatar libkdepim qca-qt5
     syntax-highlighting
   ];
diff --git a/nixpkgs/pkgs/applications/kde/minuet.nix b/nixpkgs/pkgs/applications/kde/minuet.nix
index ca7d6124ed59..cc7be0bf79a6 100644
--- a/nixpkgs/pkgs/applications/kde/minuet.nix
+++ b/nixpkgs/pkgs/applications/kde/minuet.nix
@@ -1,5 +1,5 @@
 { mkDerivation, qtbase
-, lib, extra-cmake-modules, gettext, python
+, lib, extra-cmake-modules, gettext, python3
 , drumstick, fluidsynth
 , kcoreaddons, kcrash, kdoctools
 , qtquickcontrols2, qtsvg, qttools, qtdeclarative
@@ -13,7 +13,7 @@ mkDerivation {
     broken = lib.versionOlder qtbase.version "5.14";
   };
 
-  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python qtdeclarative ];
+  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python3 qtdeclarative ];
 
   propagatedBuildInputs = [
     drumstick fluidsynth
diff --git a/nixpkgs/pkgs/applications/kde/srcs.nix b/nixpkgs/pkgs/applications/kde/srcs.nix
index 5ff13eaf2408..c1def1bd613b 100644
--- a/nixpkgs/pkgs/applications/kde/srcs.nix
+++ b/nixpkgs/pkgs/applications/kde/srcs.nix
@@ -4,1731 +4,1795 @@
 
 {
   akonadi = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-20.08.3.tar.xz";
-      sha256 = "1hwaan45cyw2nmfmdp5pbhvm00xdxy9la68ms3sa8a67zcsfljhl";
-      name = "akonadi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-20.12.2.tar.xz";
+      sha256 = "0659vgj8y77i0axdwwajaw6kxfa48j6s56nl6xhnv8686ss8plkw";
+      name = "akonadi-20.12.2.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-calendar-20.08.3.tar.xz";
-      sha256 = "18rwvn5i6i4ng335rxpwx3a2m4vyq96w9m3fa1gvmr8ls7vkaqrk";
-      name = "akonadi-calendar-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-calendar-20.12.2.tar.xz";
+      sha256 = "0vzv4yycb2nnz5ifsydv0k080wgnhjzim6lfd6qrh38mgxpb2hzw";
+      name = "akonadi-calendar-20.12.2.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-calendar-tools-20.08.3.tar.xz";
-      sha256 = "1pnm3xi26bnbjmnv9zwi9w5rkr1pdry50hzy3gxw7b0g11zz036w";
-      name = "akonadi-calendar-tools-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-calendar-tools-20.12.2.tar.xz";
+      sha256 = "06bzha5h14x6m4xzbbz2h3s00v4pc2a8d716dav9bqi0pvvq3cj0";
+      name = "akonadi-calendar-tools-20.12.2.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadiconsole-20.08.3.tar.xz";
-      sha256 = "061r0p9pj22x0hiz6piz4vramll3w5xy92sx8nfhcp2gmnvj9890";
-      name = "akonadiconsole-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadiconsole-20.12.2.tar.xz";
+      sha256 = "12fslhpxah99fzvg3a1g67n69mi4xvgz9ra787pdvzrs0lca9xa0";
+      name = "akonadiconsole-20.12.2.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-contacts-20.08.3.tar.xz";
-      sha256 = "18n9x41fmh4q9q9lfv882iwk6j1hvgpl11y4qn873vwr9sdrcf4s";
-      name = "akonadi-contacts-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-contacts-20.12.2.tar.xz";
+      sha256 = "05y1rpvq1shiqlgql56k052glsslawy742q4n2hs301xhg0izavz";
+      name = "akonadi-contacts-20.12.2.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-import-wizard-20.08.3.tar.xz";
-      sha256 = "0gny0rxvyks5w4rdb73ly06lyvz7kcfvff1268bn6i96xr83kmim";
-      name = "akonadi-import-wizard-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-import-wizard-20.12.2.tar.xz";
+      sha256 = "1gqjr5k6kkxi77vq0f6mc5mr31qvjsiicj6sxwpbm0c34vydfzym";
+      name = "akonadi-import-wizard-20.12.2.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-mime-20.08.3.tar.xz";
-      sha256 = "12ps633y64mj72iryd9z2nmrf7lxbkqj7xnzj28549cvg6jizgl7";
-      name = "akonadi-mime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-mime-20.12.2.tar.xz";
+      sha256 = "0zdgkny32zwa2r2yhi285f56jkj0ini6p3sv5hi7f43mi7r5m994";
+      name = "akonadi-mime-20.12.2.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-notes-20.08.3.tar.xz";
-      sha256 = "1z90r37lqc7ydmily730idd4s8rcbr6i3a8x9m647snbala16z36";
-      name = "akonadi-notes-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-notes-20.12.2.tar.xz";
+      sha256 = "0rbg2vwk0a1zbfw5cmz0jx3yzap7j6yi7c0igq1fgg3an7sw4j2v";
+      name = "akonadi-notes-20.12.2.tar.xz";
     };
   };
   akonadi-search = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-search-20.08.3.tar.xz";
-      sha256 = "0izpkvjybp6r79rai0p5j74bm0f8ksgsl3z34ggb51j6vj9rla7h";
-      name = "akonadi-search-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-search-20.12.2.tar.xz";
+      sha256 = "0m7l7f26gj018d5pipbgmmxiqky98avpypxbydrms6afdglvi5ja";
+      name = "akonadi-search-20.12.2.tar.xz";
     };
   };
   akregator = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akregator-20.08.3.tar.xz";
-      sha256 = "1gqh820s5by3r9lz7r16r0krh916idsks6sgy26hcrwfmva45wn5";
-      name = "akregator-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akregator-20.12.2.tar.xz";
+      sha256 = "11y2mmf2svbxvqb1bjwzrivkq8w508fwg7513bzl62pbjqa8g3gk";
+      name = "akregator-20.12.2.tar.xz";
     };
   };
   analitza = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/analitza-20.08.3.tar.xz";
-      sha256 = "16s6kjyclj73lq8z8mvrbsl75h1nrnv7syp6wpip6gvfs5ynai90";
-      name = "analitza-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/analitza-20.12.2.tar.xz";
+      sha256 = "09qpqjyps9h8wc8dvbnj8iz2xc4naxjdicqxsbfwfly5wbf8xq6x";
+      name = "analitza-20.12.2.tar.xz";
     };
   };
   ark = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ark-20.08.3.tar.xz";
-      sha256 = "03kwjp2nj570k9ph8bgj042sjj4x0h9jwv8nwx0pfpcxkgxv5pzy";
-      name = "ark-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ark-20.12.2.tar.xz";
+      sha256 = "1p8ylvk4g1x2mmfdprz911iivcvr4mciam427b6ygdrhqc7rbbqb";
+      name = "ark-20.12.2.tar.xz";
     };
   };
   artikulate = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/artikulate-20.08.3.tar.xz";
-      sha256 = "0bx97qi6zi7jmlzm3g7qamnzg0966g4w9xpskbxbr4cgjr312x19";
-      name = "artikulate-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/artikulate-20.12.2.tar.xz";
+      sha256 = "0s6vjhipb4i6bv9ff7nzm9gza8jghih9kf7f7ynq10109fk8gy6i";
+      name = "artikulate-20.12.2.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/audiocd-kio-20.08.3.tar.xz";
-      sha256 = "01n4nyda7l7by1nyx2sgxdl8qkdfndk0w6hj0qc6a7fllcfj5cpb";
-      name = "audiocd-kio-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/audiocd-kio-20.12.2.tar.xz";
+      sha256 = "0kd7yxl571pwrijwn78pigdclwqpmd50b5cj4lna481q78f91zsa";
+      name = "audiocd-kio-20.12.2.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/baloo-widgets-20.08.3.tar.xz";
-      sha256 = "0ciidrsvwc3ppxhw7w5116q4lfbsvij9jsvyzm292pmjln2vikrg";
-      name = "baloo-widgets-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/baloo-widgets-20.12.2.tar.xz";
+      sha256 = "0w9jrx2mz1kyn2az6jx4kympl6zd950waz4zj97cjrcq2dg5a85g";
+      name = "baloo-widgets-20.12.2.tar.xz";
     };
   };
   blinken = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/blinken-20.08.3.tar.xz";
-      sha256 = "1gfw0w66nm3sx81bnr0p0yz1bhjj63lvd3cr86x3b2pny5rcw1da";
-      name = "blinken-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/blinken-20.12.2.tar.xz";
+      sha256 = "0a0nkmbx1bkqjs7cf5qqm877wqvzdx9cxm9395jfxcycn5pyfps9";
+      name = "blinken-20.12.2.tar.xz";
     };
   };
   bomber = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/bomber-20.08.3.tar.xz";
-      sha256 = "1nw1a9cf0nqgk00hvzcqch3bl97lx6bih0wsax5q0z1kzwlz0kgr";
-      name = "bomber-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/bomber-20.12.2.tar.xz";
+      sha256 = "08lyj6rn9jhhwzpwh2c14v8jiwishi1wk19nm5wazy2iajbd88jv";
+      name = "bomber-20.12.2.tar.xz";
     };
   };
   bovo = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/bovo-20.08.3.tar.xz";
-      sha256 = "06pbivyvfgjx6zkadvwfwnrg9vjy4rf52k2a74qjcnl2ms16sr1g";
-      name = "bovo-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/bovo-20.12.2.tar.xz";
+      sha256 = "05xx11rqqsxm084hfxnx1wzmr2wdpny3w608h8g5vby2jgdj47b7";
+      name = "bovo-20.12.2.tar.xz";
     };
   };
   calendarsupport = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/calendarsupport-20.08.3.tar.xz";
-      sha256 = "09w06n745764fs440nh0piy5sahfn50kh3zrljhgzadcij6165vd";
-      name = "calendarsupport-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/calendarsupport-20.12.2.tar.xz";
+      sha256 = "0gz3p4az49430zwgmlqjcfzjlgnaf7cl1x0qaaxyl8il14ambrbd";
+      name = "calendarsupport-20.12.2.tar.xz";
     };
   };
   cantor = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/cantor-20.08.3.tar.xz";
-      sha256 = "1njqycx0v3zq5mdcvfdfgxs8vgl01v80s27qgapsxxrgr9hgxbhl";
-      name = "cantor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/cantor-20.12.2.tar.xz";
+      sha256 = "1w513a06xshdw4fcn6wmliygpjsyvqcbmfjg2bdibpsnznmk4y4p";
+      name = "cantor-20.12.2.tar.xz";
     };
   };
   cervisia = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/cervisia-20.08.3.tar.xz";
-      sha256 = "1bsc72kxcmzx25408ngzqzj4a0168vqfr3a2gvmm6d8klbgpm3gv";
-      name = "cervisia-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/cervisia-20.12.2.tar.xz";
+      sha256 = "08m962r6wkvih1yfj22z3nyfx6r3ac9pcc7i7dxxdkfcxhqpprhb";
+      name = "cervisia-20.12.2.tar.xz";
     };
   };
   dolphin = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/dolphin-20.08.3.tar.xz";
-      sha256 = "107n763qix95b1hgy86hddpj9x2clzhaiw8q8yjn9lzj1rz5facx";
-      name = "dolphin-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/dolphin-20.12.2.tar.xz";
+      sha256 = "19mss2vs074xv5qc644y87f8v99mdndhhd7hclqgq6gckxcjzy2r";
+      name = "dolphin-20.12.2.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/dolphin-plugins-20.08.3.tar.xz";
-      sha256 = "0fmay0sycfj9s7zyxbldgcal5lj2psi0n9zrgq812s5qr4rb5c8c";
-      name = "dolphin-plugins-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/dolphin-plugins-20.12.2.tar.xz";
+      sha256 = "0zjy429cqb6nspmiharvszjhpn662y23s9wbdqs04h2p6pi8raxn";
+      name = "dolphin-plugins-20.12.2.tar.xz";
     };
   };
   dragon = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/dragon-20.08.3.tar.xz";
-      sha256 = "14qsb7h8w58i9jsh1gpcj8pwjgy7y3mqfy51hca82yrd82z5b9rn";
-      name = "dragon-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/dragon-20.12.2.tar.xz";
+      sha256 = "0yssqbfgm92bls5cfy0xcqnqfqx00ns2i6rlwdlx38kfh0r47cag";
+      name = "dragon-20.12.2.tar.xz";
     };
   };
   elisa = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/elisa-20.08.3.tar.xz";
-      sha256 = "0893nbj0jsapnfd09cp961k2m7lq6sjvzynpa4hfp9ch1jbc912c";
-      name = "elisa-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/elisa-20.12.2.tar.xz";
+      sha256 = "1sl55kynkwxaypdm6zjdk85yxxq9754xm6ybxm7qdafq691g9zjr";
+      name = "elisa-20.12.2.tar.xz";
     };
   };
   eventviews = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/eventviews-20.08.3.tar.xz";
-      sha256 = "158j5g3i0wbbxpg9jmr50dvbpms4c4vgcnpmn3b3vfbszzwsy6rg";
-      name = "eventviews-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/eventviews-20.12.2.tar.xz";
+      sha256 = "1g4aqhh2b5s45m0qqp46wazcc7rzcp3mmds4q9x3isckqpijzp39";
+      name = "eventviews-20.12.2.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ffmpegthumbs-20.08.3.tar.xz";
-      sha256 = "186hpq949r3xx2a64nqjy4pcn67d6kdvsy80zr238lgb9qqcqygi";
-      name = "ffmpegthumbs-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ffmpegthumbs-20.12.2.tar.xz";
+      sha256 = "0iw1g7x31jkbmniawvjwy8wk573rv05idk08q1vavxa5vixxqsbg";
+      name = "ffmpegthumbs-20.12.2.tar.xz";
     };
   };
   filelight = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/filelight-20.08.3.tar.xz";
-      sha256 = "1jljsnjdhnqphh1kanj6hi2rswq3i9119iah1j33jy5pladcyf5q";
-      name = "filelight-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/filelight-20.12.2.tar.xz";
+      sha256 = "0m38il0rz7zip9rxing4j5fppwyrjgv1d7n3vrp3x4wnmd08j46q";
+      name = "filelight-20.12.2.tar.xz";
     };
   };
   granatier = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/granatier-20.08.3.tar.xz";
-      sha256 = "195bc2rcz11v76c0cwa9mb7rfixjn7sb0a52wrzz0sf9624m0rcs";
-      name = "granatier-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/granatier-20.12.2.tar.xz";
+      sha256 = "0gssfcqq1czh5l1dwi5lpj0f9bgv2jf0wma9i5j0aqrf9b086g7f";
+      name = "granatier-20.12.2.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/grantlee-editor-20.08.3.tar.xz";
-      sha256 = "1k2rdicd68jdk3pazyn3q0vj99n0vnkpzkrnacpymkjy85cjgrv9";
-      name = "grantlee-editor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/grantlee-editor-20.12.2.tar.xz";
+      sha256 = "0fbb9zia4kjc7rw4s27vsy6isvkx56k50gn6y1cyfl0gqy70v4cw";
+      name = "grantlee-editor-20.12.2.tar.xz";
     };
   };
   grantleetheme = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/grantleetheme-20.08.3.tar.xz";
-      sha256 = "07b7v5v2vyz3vyj1jjzryzaak8bbqg8a2caxwb6s7cwhy19y6my5";
-      name = "grantleetheme-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/grantleetheme-20.12.2.tar.xz";
+      sha256 = "1cv23ias36mp4zm84fk21f3f7nx3jz7xpiyz0nvz6xcsiww77762";
+      name = "grantleetheme-20.12.2.tar.xz";
     };
   };
   gwenview = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/gwenview-20.08.3.tar.xz";
-      sha256 = "09mwp3z97hgd7c15w0hz8k61qn5icb81rj27nxzy877ph1xnrixc";
-      name = "gwenview-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/gwenview-20.12.2.tar.xz";
+      sha256 = "0cr6jjnvin8jv6hnajxg6zlph5syg2zjrcwd784dlzv23hna9v5n";
+      name = "gwenview-20.12.2.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/incidenceeditor-20.08.3.tar.xz";
-      sha256 = "15kkl8z1nig9qyxfrq54c3sqh1xs1lzlbm5rphj34y0yb8dbn8kx";
-      name = "incidenceeditor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/incidenceeditor-20.12.2.tar.xz";
+      sha256 = "1q48ydma2rcpn3dnf9p08mqfs481n5fhc9m5wl2cvm6as54sfmp8";
+      name = "incidenceeditor-20.12.2.tar.xz";
+    };
+  };
+  itinerary = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/itinerary-20.12.2.tar.xz";
+      sha256 = "1dkgsiqww9z6k0xbvn15w630jdhmxr1kkz5dcv1n9yl7bgj32s35";
+      name = "itinerary-20.12.2.tar.xz";
     };
   };
   juk = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/juk-20.08.3.tar.xz";
-      sha256 = "1jvj0r4grm55cnck4apnh4fh44mv1ycm0pprrkh57iwj1dlf7kif";
-      name = "juk-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/juk-20.12.2.tar.xz";
+      sha256 = "1dc6n07hkd8as2q1i2l3jzqcijw3qd4ihx1205nzn7z256bby58n";
+      name = "juk-20.12.2.tar.xz";
     };
   };
   k3b = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/k3b-20.08.3.tar.xz";
-      sha256 = "0qg2p6gdg0clgv6qab5vr0i451m9hqqmpwq335w8m9nwb6wg30cx";
-      name = "k3b-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/k3b-20.12.2.tar.xz";
+      sha256 = "0gqg8r2p6nksbdg4c8wqz57dj8d1cw7cmrgzc1l2pin4v3qdx94g";
+      name = "k3b-20.12.2.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kaccounts-integration-20.08.3.tar.xz";
-      sha256 = "006cglw5ai274a1r5jbk109mdrvw8v6fp3cdyi1kbrq7lp3123a2";
-      name = "kaccounts-integration-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kaccounts-integration-20.12.2.tar.xz";
+      sha256 = "15py7fp6sajvx0c7zi7zhfx16sqn8kkkvglkvcq0b9kglswpvkfj";
+      name = "kaccounts-integration-20.12.2.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kaccounts-providers-20.08.3.tar.xz";
-      sha256 = "1vpv366bzj0sk7dqyxrq06a8ixgaaqi125mf2gmybvhj5yvrn3fp";
-      name = "kaccounts-providers-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kaccounts-providers-20.12.2.tar.xz";
+      sha256 = "0205l3k3nzx6cnar90zrbgmabapyry4a991lqflkpxgdrkh0ajc0";
+      name = "kaccounts-providers-20.12.2.tar.xz";
     };
   };
   kaddressbook = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kaddressbook-20.08.3.tar.xz";
-      sha256 = "00mia1jh2c5rcnsyx3wizjdg65pvpazfb8ayppjzv4rrc2nhr9nn";
-      name = "kaddressbook-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kaddressbook-20.12.2.tar.xz";
+      sha256 = "0xqsl7fav1vqq4iqy2m02s92rnr28pi1ak3sv0ra7q1gb89rhi0y";
+      name = "kaddressbook-20.12.2.tar.xz";
     };
   };
   kajongg = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kajongg-20.08.3.tar.xz";
-      sha256 = "0wr045xqm1q03vy0jbgrldpdc9k3lgnhd39yhi574la367ayffpa";
-      name = "kajongg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kajongg-20.12.2.tar.xz";
+      sha256 = "0vh6qb3d54nnxrxacq9fn7jq1hshhhnvw9ff0wgh214jlr0gnbqk";
+      name = "kajongg-20.12.2.tar.xz";
     };
   };
   kalarm = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalarm-20.08.3.tar.xz";
-      sha256 = "0194rapyvnpmhkba0rgclrai1ywx9anr8dski0j6z1yg0kgav8df";
-      name = "kalarm-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kalarm-20.12.2.tar.xz";
+      sha256 = "1lpg1viwn868hw0dd8zs11iafkhzlr3cydfplnh4ss6visga50kb";
+      name = "kalarm-20.12.2.tar.xz";
     };
   };
   kalarmcal = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalarmcal-20.08.3.tar.xz";
-      sha256 = "1i9hi3y4j2pmdmlj13kl13vfplxrh8w23fxz0mmawi1wn533fp66";
-      name = "kalarmcal-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kalarmcal-20.12.2.tar.xz";
+      sha256 = "17lll9671318dxhxpnjaih31xz5b971gw6kmrgz2ljq5nz1l027b";
+      name = "kalarmcal-20.12.2.tar.xz";
     };
   };
   kalgebra = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalgebra-20.08.3.tar.xz";
-      sha256 = "0k7miil5ilrw68j6xl9g6cf3zfw7g52h0gfwd5j248nx2nxr150c";
-      name = "kalgebra-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kalgebra-20.12.2.tar.xz";
+      sha256 = "0dwvm4b0wpkd3i79q3xs2v3majwa56hgq8r4vv071a8ci8fn27bz";
+      name = "kalgebra-20.12.2.tar.xz";
     };
   };
   kalzium = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalzium-20.08.3.tar.xz";
-      sha256 = "1r80bnpdrybsdwcblpj7cg32dv90l79gs0i42gpm6inilfr3vp5n";
-      name = "kalzium-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kalzium-20.12.2.tar.xz";
+      sha256 = "0jdg0akxmylbvh80cz31cycrdqvyafsv9j7hfpdhrizdy7vvqywg";
+      name = "kalzium-20.12.2.tar.xz";
     };
   };
   kamera = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kamera-20.08.3.tar.xz";
-      sha256 = "06fwxdgbyywdrf1r0w17w3chfr0s8jhqswz9chmdfds9f2bb45cr";
-      name = "kamera-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kamera-20.12.2.tar.xz";
+      sha256 = "1licmi05g1qpfh88annqd89av77jsmhxnsidgkvf4ffczwd097l6";
+      name = "kamera-20.12.2.tar.xz";
     };
   };
   kamoso = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kamoso-20.08.3.tar.xz";
-      sha256 = "0zhl3va65ajz3hdggg0jvvgvj14s461pjw9adw9bnfcbs4jzkl2y";
-      name = "kamoso-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kamoso-20.12.2.tar.xz";
+      sha256 = "0ar19nlw2bxrbn4wky8ky3x5m70rf7fb0fviniblqcrggyymgmb9";
+      name = "kamoso-20.12.2.tar.xz";
     };
   };
   kanagram = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kanagram-20.08.3.tar.xz";
-      sha256 = "1cyx8yq03xaw34ic69ghz9gafk8l30qinp0kkp9a1wh4pry8rnxf";
-      name = "kanagram-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kanagram-20.12.2.tar.xz";
+      sha256 = "00p2mpprbq9zi1zzscb4d0fdj2knnfkjxclf3q982jz4laxyqalf";
+      name = "kanagram-20.12.2.tar.xz";
     };
   };
   kapman = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kapman-20.08.3.tar.xz";
-      sha256 = "0nh1f0v026rib5ahj1mhvs99yabrgdq71bis465vfpm4favnirzy";
-      name = "kapman-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kapman-20.12.2.tar.xz";
+      sha256 = "1fs33p9g52k5nywpih7nns3mh0apfhnn174k9711vwnamr73ph6k";
+      name = "kapman-20.12.2.tar.xz";
     };
   };
   kapptemplate = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kapptemplate-20.08.3.tar.xz";
-      sha256 = "1r98ym9sazjzknxfw58hjiyxhmi49fyhrdn02v0b8fm711vprxab";
-      name = "kapptemplate-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kapptemplate-20.12.2.tar.xz";
+      sha256 = "19rnxw0q8w890ns237vpaapipm3zjz7n0rn9yzxa5cqaf30l7jv5";
+      name = "kapptemplate-20.12.2.tar.xz";
     };
   };
   kate = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kate-20.08.3.tar.xz";
-      sha256 = "1m7ximinknc0l9zqv4p25ybn6zysz59l4vvdb9xkhjp53aqskdz9";
-      name = "kate-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kate-20.12.2.tar.xz";
+      sha256 = "1kdznizqh28parijpsi67jmb8mlx4gn7z4szlh5kjd1mv9rikvm7";
+      name = "kate-20.12.2.tar.xz";
     };
   };
   katomic = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/katomic-20.08.3.tar.xz";
-      sha256 = "1v31x6371r9ccvc676vq5dlpkp4829xf0r37dnvdxlfm22mgsdnk";
-      name = "katomic-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/katomic-20.12.2.tar.xz";
+      sha256 = "1sxh6x09is33b3zdgj3d6zn9z19qc25v4hskffmw5xivnwz9vzfl";
+      name = "katomic-20.12.2.tar.xz";
     };
   };
   kbackup = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbackup-20.08.3.tar.xz";
-      sha256 = "1sayzvj46ckhn5zgp7qi6zmrmd7bjh5mg05mcl5pfwv4dcvxkrng";
-      name = "kbackup-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kbackup-20.12.2.tar.xz";
+      sha256 = "138x20p27a0yx4n6xamc660nk0zzrap7zhkkwpy9ayh07rgh1222";
+      name = "kbackup-20.12.2.tar.xz";
     };
   };
   kblackbox = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kblackbox-20.08.3.tar.xz";
-      sha256 = "0vka2pswbza1z8f97nhxcjrczx4w1x0qyjpzs9ycn9a14smqpsrh";
-      name = "kblackbox-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kblackbox-20.12.2.tar.xz";
+      sha256 = "1c6by0hi9bzs6j1y0qxrvz6ahdxhzivnw9hg4jndmhgbsqqix4q5";
+      name = "kblackbox-20.12.2.tar.xz";
     };
   };
   kblocks = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kblocks-20.08.3.tar.xz";
-      sha256 = "1jc063xn6dphydf49kv0izzy0nv06dr412xxjvkp7vccwv9qd5gf";
-      name = "kblocks-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kblocks-20.12.2.tar.xz";
+      sha256 = "06slcac3hvdmb5lymyqb1z8mn3r756xz2ghwdqz1d2mn3n2jd0bw";
+      name = "kblocks-20.12.2.tar.xz";
     };
   };
   kbounce = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbounce-20.08.3.tar.xz";
-      sha256 = "0863vlirljvf101mdv6jxprj9axs4cikrnld3wvxrcqw3w2dy6wy";
-      name = "kbounce-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kbounce-20.12.2.tar.xz";
+      sha256 = "19xvvxmbwpwkwsm0mxjnh92m352lkshsjgi8yrax1hdblymr60v1";
+      name = "kbounce-20.12.2.tar.xz";
     };
   };
   kbreakout = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbreakout-20.08.3.tar.xz";
-      sha256 = "14nd1dnbdyxv59y8iildhydhxgal38hvj7bk6544glwl8yalak8z";
-      name = "kbreakout-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kbreakout-20.12.2.tar.xz";
+      sha256 = "1n1vrj08j1drc1apikhgwdbmb5daypgnkw6yxhqc3xi2a3wglkqz";
+      name = "kbreakout-20.12.2.tar.xz";
     };
   };
   kbruch = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbruch-20.08.3.tar.xz";
-      sha256 = "03s1hl4h8rsx0gn7wqfssi1ga4igx48jb47gpw6f9rfjm8f199vb";
-      name = "kbruch-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kbruch-20.12.2.tar.xz";
+      sha256 = "0hjwmzsdlpg8przlmpp0xsa19v7376bpjk5kwyajywhayzzw99xp";
+      name = "kbruch-20.12.2.tar.xz";
     };
   };
   kcachegrind = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcachegrind-20.08.3.tar.xz";
-      sha256 = "17j06z9cpj5qhfbp1xgw4qmhi4jckf2i99c9brys4ifb3p0rkbrs";
-      name = "kcachegrind-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcachegrind-20.12.2.tar.xz";
+      sha256 = "0ich4hxfmq909zkn06p8pgxpf7sg9ndq51b533h2clbq3m9qwy2w";
+      name = "kcachegrind-20.12.2.tar.xz";
     };
   };
   kcalc = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcalc-20.08.3.tar.xz";
-      sha256 = "1mk30fkv51w3fqlpkzgm1yj5sp98h26kkphplqkjva5v6s1jzmjy";
-      name = "kcalc-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcalc-20.12.2.tar.xz";
+      sha256 = "0dv8519wnlfdp2d2ml2r5qx3gjh8g6im742vqqk7m1660ijgc8zx";
+      name = "kcalc-20.12.2.tar.xz";
     };
   };
   kcalutils = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcalutils-20.08.3.tar.xz";
-      sha256 = "1i2yh4gvdwlylj7f7p32g1z7lzh3p19rrbd96l1gqhy700f2whpw";
-      name = "kcalutils-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcalutils-20.12.2.tar.xz";
+      sha256 = "1k4cr1iq945zs6c35f3s1w8kfm3kh7aybmk5py3lsz0zmlab36hc";
+      name = "kcalutils-20.12.2.tar.xz";
     };
   };
   kcharselect = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcharselect-20.08.3.tar.xz";
-      sha256 = "1p6rijjfa2jk4vr0ivjn6p5qf2ys5kvhw0cwfyjs45ff7zg0s2ga";
-      name = "kcharselect-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcharselect-20.12.2.tar.xz";
+      sha256 = "0fqf6bw98l499a144xk7hslxm6zdlpa0lcq0bgwnfsd0fs03wlp3";
+      name = "kcharselect-20.12.2.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcolorchooser-20.08.3.tar.xz";
-      sha256 = "1874qa04whiivyydxfcn0f1xch515ga1af4ym42zqz64j3kq7i47";
-      name = "kcolorchooser-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcolorchooser-20.12.2.tar.xz";
+      sha256 = "08y4qzr43nikgzli14yzj7w8vqzl905f0rwx0ri5247259jna3rk";
+      name = "kcolorchooser-20.12.2.tar.xz";
     };
   };
   kcron = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcron-20.08.3.tar.xz";
-      sha256 = "1piwssyg9fvah25gql6w0n8xf634f6gy475cz52gb1bl7rp72q6j";
-      name = "kcron-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcron-20.12.2.tar.xz";
+      sha256 = "025a647zl125568l8vqnljir110jbnkxd4921a892ip7pnhp0v95";
+      name = "kcron-20.12.2.tar.xz";
     };
   };
   kdebugsettings = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdebugsettings-20.08.3.tar.xz";
-      sha256 = "11xnvr9qib3hnp48whsw659c724s2114p5dr3fswvhm3hkw1aky7";
-      name = "kdebugsettings-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdebugsettings-20.12.2.tar.xz";
+      sha256 = "1dzdvscklgbcfjalcc1mfh3vgiai2dvbsz00b4c96r8jxpm7bvcn";
+      name = "kdebugsettings-20.12.2.tar.xz";
     };
   };
   kdeconnect-kde = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdeconnect-kde-20.08.3.tar.xz";
-      sha256 = "0x10ga81qlsahavmv356xzjxyds41y2b4v338rqcyqkxvfmxj01k";
-      name = "kdeconnect-kde-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdeconnect-kde-20.12.2.tar.xz";
+      sha256 = "0wcx1bn121b62pwdkf7k24sa03kgixvrbp5y5iy11im7kj5i3ji1";
+      name = "kdeconnect-kde-20.12.2.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kde-dev-scripts-20.08.3.tar.xz";
-      sha256 = "0x8ba4mlxx17vk674738xln2dy696b148fa3s87za4yb4jj9gc5n";
-      name = "kde-dev-scripts-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kde-dev-scripts-20.12.2.tar.xz";
+      sha256 = "03kqd01yhii2b6g4gsjg09vwmzv53vr5d7y3d4db13kgg0f1z352";
+      name = "kde-dev-scripts-20.12.2.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kde-dev-utils-20.08.3.tar.xz";
-      sha256 = "0k7zb1km89nnqfi2p1mhp6dvwkhmgbcgw89301acag34yy954dvn";
-      name = "kde-dev-utils-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kde-dev-utils-20.12.2.tar.xz";
+      sha256 = "105pp4yhgynn3gq0bi7q1vyy1qn8pcd0hgx17v674hf8afy4627r";
+      name = "kde-dev-utils-20.12.2.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdeedu-data-20.08.3.tar.xz";
-      sha256 = "1k164h4n8r4yjlll5900fz764lr0qiy3q1fpcpkr8f1n7qs7f797";
-      name = "kdeedu-data-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdeedu-data-20.12.2.tar.xz";
+      sha256 = "04x8papz62m5kanrqpjddzijda761i4j8y4cmqpnxkg2jrwfqqls";
+      name = "kdeedu-data-20.12.2.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdegraphics-mobipocket-20.08.3.tar.xz";
-      sha256 = "0ifxbwn7pmxr7y4ri617a303b27nqwqa418isgfrfk11jc4yyxhq";
-      name = "kdegraphics-mobipocket-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdegraphics-mobipocket-20.12.2.tar.xz";
+      sha256 = "02a4ivpvfziaa464l8c9ivydagcb912ld95isgvc5jl4g85lm166";
+      name = "kdegraphics-mobipocket-20.12.2.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdegraphics-thumbnailers-20.08.3.tar.xz";
-      sha256 = "0mbzkw7pxcfmkpb8ivhahnxkkrkjhmbjqy2l9gqx35gp5855gmxf";
-      name = "kdegraphics-thumbnailers-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdegraphics-thumbnailers-20.12.2.tar.xz";
+      sha256 = "1p47fvb6mdk23rx9jhm9x60sny9z6plgdjih5lzy9k3hvl0sl8zk";
+      name = "kdegraphics-thumbnailers-20.12.2.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdenetwork-filesharing-20.08.3.tar.xz";
-      sha256 = "0id19wmiivdrx10r1hwbwi7bx6g1v9g5lpbhlmfrapvy82ijfmbg";
-      name = "kdenetwork-filesharing-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdenetwork-filesharing-20.12.2.tar.xz";
+      sha256 = "0y60az09hkhd1hvwa7h7c834dc0mfnd89f78v8m31il8g2xniziz";
+      name = "kdenetwork-filesharing-20.12.2.tar.xz";
     };
   };
   kdenlive = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdenlive-20.08.3.tar.xz";
-      sha256 = "187d5khqq9ckmqp8amd7ghlvig1z97w2jzm9s4zsfhjzyqv3d3wz";
-      name = "kdenlive-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdenlive-20.12.2.tar.xz";
+      sha256 = "0gh1cjhakdl7hx236rsxiv62mafd2vvvpg5ndwlp0zfpsx7kzjrz";
+      name = "kdenlive-20.12.2.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-addons-20.08.3.tar.xz";
-      sha256 = "17m8pwiig46pc6x4ylvymb3b6c7xcm2df3vjma665kcir1dr0q7p";
-      name = "kdepim-addons-20.08.3.tar.xz";
-    };
-  };
-  kdepim-apps-libs = {
-    version = "20.08.3";
-    src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-apps-libs-20.08.3.tar.xz";
-      sha256 = "08iw1p9mv4jic7pk6skxc5anp7k46lhcdqxpq1i6wlhbrk6bpsvg";
-      name = "kdepim-apps-libs-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdepim-addons-20.12.2.tar.xz";
+      sha256 = "0zj22ggn98sqz3nnvzffhbv2cq672j885f2p8qla6swhyw91cq8n";
+      name = "kdepim-addons-20.12.2.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-runtime-20.08.3.tar.xz";
-      sha256 = "0zz2zwq3gr177vgkwz6b70q4n2ra4ym58f167pgvi9kxv3884fib";
-      name = "kdepim-runtime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdepim-runtime-20.12.2.tar.xz";
+      sha256 = "0p5c4l4xixcvpzx7mri2jxa3nwk4824lp5sy93sspf2nlgdv3zsn";
+      name = "kdepim-runtime-20.12.2.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdesdk-kioslaves-20.08.3.tar.xz";
-      sha256 = "1kwzms0qha058cm92d4f8pr89r3bqaqx5zfw6gz05s6lg892j5in";
-      name = "kdesdk-kioslaves-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdesdk-kioslaves-20.12.2.tar.xz";
+      sha256 = "1xgp3fi6nnygjw2p832ylmhsj70dm33c4rf3h79sc2dp7aihnapy";
+      name = "kdesdk-kioslaves-20.12.2.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdesdk-thumbnailers-20.08.3.tar.xz";
-      sha256 = "10fc0agpvzpqdxqynd70vzya0g1nbdw0ylbnl9w35n9jhww42jff";
-      name = "kdesdk-thumbnailers-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdesdk-thumbnailers-20.12.2.tar.xz";
+      sha256 = "0jk2x2b8qwhfbf9hy8j0yslggn3zwp18q21ip299b4cpx1w72bgq";
+      name = "kdesdk-thumbnailers-20.12.2.tar.xz";
     };
   };
   kdf = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdf-20.08.3.tar.xz";
-      sha256 = "02k5nhsf1zzkx9cl3r2500pj2zfmvjhlfsb3smgpka6in7iivxyp";
-      name = "kdf-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdf-20.12.2.tar.xz";
+      sha256 = "0fx9b5njsmvzznrgz2r9xz8yh977v865zvsih60hdrz6gaflg1rx";
+      name = "kdf-20.12.2.tar.xz";
     };
   };
   kdialog = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdialog-20.08.3.tar.xz";
-      sha256 = "0knl6176bjazjiacg1qqaldlqcjlb3bi829sliq1sdh4lzzwrbzk";
-      name = "kdialog-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdialog-20.12.2.tar.xz";
+      sha256 = "1v2yflxpqg2h2jgxql1mnk8c1v1n4ljard5bgh1dw898r7b8g2xd";
+      name = "kdialog-20.12.2.tar.xz";
     };
   };
   kdiamond = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdiamond-20.08.3.tar.xz";
-      sha256 = "0ls1kg3wank1al46knq12jilmp8gaa4rn7zbgflcrhgy5gw8l5px";
-      name = "kdiamond-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdiamond-20.12.2.tar.xz";
+      sha256 = "17z1g2jxz26pqx5xjc5h7w5s2xy72p00ydnfhsv1bi1kfd79ry8k";
+      name = "kdiamond-20.12.2.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/keditbookmarks-20.08.3.tar.xz";
-      sha256 = "0m8ap5hvjgldj9hdk6shpkv8xylhhjla2xn1zs86pvj4la3zh4f8";
-      name = "keditbookmarks-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/keditbookmarks-20.12.2.tar.xz";
+      sha256 = "0slma1vrm0cmr2v970ingbckqa3viw6jgfss0z7fpx4bilw65bd7";
+      name = "keditbookmarks-20.12.2.tar.xz";
     };
   };
   kfind = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kfind-20.08.3.tar.xz";
-      sha256 = "10i5mw6q2parq5w7pi955kgfvdlw8hwis2p7r9vkvabjdk69nkdr";
-      name = "kfind-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kfind-20.12.2.tar.xz";
+      sha256 = "0vfi5ipwncq7d4z1gbilw6kyyrn5d986wr3f2zhsyhpwmsh9ycnb";
+      name = "kfind-20.12.2.tar.xz";
     };
   };
   kfloppy = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kfloppy-20.08.3.tar.xz";
-      sha256 = "1cp0pwgldscc7va508gk43im3fv0lsxd5sbhpw8kxlzjlpbwlp8v";
-      name = "kfloppy-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kfloppy-20.12.2.tar.xz";
+      sha256 = "1sz6bgw54w8s4bdyyajy0zgxw5kcm45p0gizf7ghw33x5vxryg4g";
+      name = "kfloppy-20.12.2.tar.xz";
     };
   };
   kfourinline = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kfourinline-20.08.3.tar.xz";
-      sha256 = "0h1n44dncr2siw447n7b0gkx3380vajvqjsgjvapkg7m7bmz7nsv";
-      name = "kfourinline-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kfourinline-20.12.2.tar.xz";
+      sha256 = "1ld2srgmriab70j08nvqbaswjp2miljwd8rbpy2dyvzfprmci3xk";
+      name = "kfourinline-20.12.2.tar.xz";
     };
   };
   kgeography = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kgeography-20.08.3.tar.xz";
-      sha256 = "1mk5cip55chc8pmh8wfl7an5x076ywisr0i7isqcjaij2cv54283";
-      name = "kgeography-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kgeography-20.12.2.tar.xz";
+      sha256 = "0v1355y3fwzq63hq0wz9rskzncnlfdybmqcx23pk57jazsmv6ndi";
+      name = "kgeography-20.12.2.tar.xz";
     };
   };
   kget = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kget-20.08.3.tar.xz";
-      sha256 = "144ydk8bbfirph464mkkvwpnynj465i2ynhm8n9d330kcrhnaxd0";
-      name = "kget-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kget-20.12.2.tar.xz";
+      sha256 = "1xya4raai9jqqzb3kga3mrm7jznkaa0fr4sq8j28qd45bgx2385p";
+      name = "kget-20.12.2.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kgoldrunner-20.08.3.tar.xz";
-      sha256 = "101cdl04wb6xbq95b51ax36570y9ahkcy5gccqsyvc307ij9yg7r";
-      name = "kgoldrunner-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kgoldrunner-20.12.2.tar.xz";
+      sha256 = "1ai5hfhwlsiw6ywpmwg9q85hsn3ih44v7n3wj70fsrldh87cn9ps";
+      name = "kgoldrunner-20.12.2.tar.xz";
     };
   };
   kgpg = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kgpg-20.08.3.tar.xz";
-      sha256 = "1ip21yal37yxg5i5sfy6lgfb3sz9lld0dwa7a1w4lbddf9w3akd6";
-      name = "kgpg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kgpg-20.12.2.tar.xz";
+      sha256 = "1szg6fmmnxi94s5r2gxn4mlsiqahharyh05bisy5w7cl9w9c70xg";
+      name = "kgpg-20.12.2.tar.xz";
     };
   };
   khangman = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/khangman-20.08.3.tar.xz";
-      sha256 = "1zwdd2gpjkld3vkawp0lj83il257ryxf8wpmbgzn1wz8sxxi01jj";
-      name = "khangman-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/khangman-20.12.2.tar.xz";
+      sha256 = "1bhcdr2v6zgawn819vbqnvgrm52xymgjyr396qbx5mc0srz88bzk";
+      name = "khangman-20.12.2.tar.xz";
     };
   };
   khelpcenter = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/khelpcenter-20.08.3.tar.xz";
-      sha256 = "1xan4awwgs08k7ksfy80rfcxqd6bi8i1fjdgy55hh7wshv76zf5r";
-      name = "khelpcenter-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/khelpcenter-20.12.2.tar.xz";
+      sha256 = "1mxs0imw64av8dybh91xxy4mmdcikjkqv6apsw29pp3s29irxpdx";
+      name = "khelpcenter-20.12.2.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kidentitymanagement-20.08.3.tar.xz";
-      sha256 = "0vkydvf4yw3qlqrg9m1zdm6j0c1crxdvc7l24yls9fjbj957vbls";
-      name = "kidentitymanagement-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kidentitymanagement-20.12.2.tar.xz";
+      sha256 = "1vcpfcriinx0ywz3jz26810h2cqmlfvyyxd0mzh3jp7rl0kkasgj";
+      name = "kidentitymanagement-20.12.2.tar.xz";
     };
   };
   kig = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kig-20.08.3.tar.xz";
-      sha256 = "1dvizdfkvl7p7hr4xm4zh51lpr8qr3s5j5zz162s7arr7sws4w8h";
-      name = "kig-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kig-20.12.2.tar.xz";
+      sha256 = "08wvgykrhzf2j4qb0fz4irbyaxjp5ka7jmmjn8y27srz0x4zgkrz";
+      name = "kig-20.12.2.tar.xz";
     };
   };
   kigo = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kigo-20.08.3.tar.xz";
-      sha256 = "0sx3klivzn8h96mpnbkiv2nbi2l6w0j6fclj7q3ql3cm81jh6n15";
-      name = "kigo-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kigo-20.12.2.tar.xz";
+      sha256 = "1a4hv5g2wdpvf56zrr0rna6hdvm2cy6sz1jlhj7hf1lcx3lgfj9g";
+      name = "kigo-20.12.2.tar.xz";
     };
   };
   killbots = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/killbots-20.08.3.tar.xz";
-      sha256 = "1j41my0brpqpvd8xibv39z4x4kmw1sqz7wy7ibhh0zir3jh64n83";
-      name = "killbots-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/killbots-20.12.2.tar.xz";
+      sha256 = "01lmkflndqmrzyrabmh5jqrk2zywcn5s82aag3m0wdqbyrqc5pas";
+      name = "killbots-20.12.2.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kimagemapeditor-20.08.3.tar.xz";
-      sha256 = "1m9mrksdl08ijmpmx3lhdysnm70mrnqz9rlbcn1h95p2sq0bk8cg";
-      name = "kimagemapeditor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kimagemapeditor-20.12.2.tar.xz";
+      sha256 = "06awvhcjg8nd0wjcqqzccnlpci6cd35flvfs3k05czk70sgqzysq";
+      name = "kimagemapeditor-20.12.2.tar.xz";
     };
   };
   kimap = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kimap-20.08.3.tar.xz";
-      sha256 = "16paglkqgnyzwjydhn02qw7zg0d4casir4bsfch15wdmqv389mrg";
-      name = "kimap-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kimap-20.12.2.tar.xz";
+      sha256 = "14kjgn6b1qnfr3zsr3r73wf15n47qqx9vw5z11yv161andrr105d";
+      name = "kimap-20.12.2.tar.xz";
     };
   };
   kio-extras = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kio-extras-20.08.3.tar.xz";
-      sha256 = "0i7k9asc97r9z4lfk5hyf7mcbx0za7j6v4dhqn43j5v4x2i0201c";
-      name = "kio-extras-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kio-extras-20.12.2.tar.xz";
+      sha256 = "1r2sw8i7lf0zyb5bvz4002vdi2bf9jv01735caiw9smxr1lgcz93";
+      name = "kio-extras-20.12.2.tar.xz";
     };
   };
   kio-gdrive = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kio-gdrive-20.08.3.tar.xz";
-      sha256 = "0pp0nvsnfdm8vskw194qjfac4agnlsjm44w1704b5sqx6i27dafy";
-      name = "kio-gdrive-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kio-gdrive-20.12.2.tar.xz";
+      sha256 = "0rwwakhsn9bnmxxnr0620jyp00x7iqqsaz5nd2lmhyjkc4mqv2km";
+      name = "kio-gdrive-20.12.2.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kipi-plugins-20.08.3.tar.xz";
-      sha256 = "1pplhv8yjfl1ifx9ykf4w2lgma8jvshihmd5c5mz9liqk3lawq15";
-      name = "kipi-plugins-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kipi-plugins-20.12.2.tar.xz";
+      sha256 = "120yi7kfqv74368c78s4gfg7fp2h32v1c3jic2lnsy5y3iad22l8";
+      name = "kipi-plugins-20.12.2.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kirigami-gallery-20.08.3.tar.xz";
-      sha256 = "0l100ng8ai55s0vl8nkpq4vysy2nc6sk1dbisc2mp7br74ykyfp9";
-      name = "kirigami-gallery-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kirigami-gallery-20.12.2.tar.xz";
+      sha256 = "039ddgrvw1l4jvc3yjs0c6fi8kss5ma8hs6cbs8xvw0cyi9604qw";
+      name = "kirigami-gallery-20.12.2.tar.xz";
     };
   };
   kiriki = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kiriki-20.08.3.tar.xz";
-      sha256 = "1gddjii84cbz1dg8k0pnd3dyzar4lvj03j9v84vabggjjjbpir0f";
-      name = "kiriki-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kiriki-20.12.2.tar.xz";
+      sha256 = "0bslysqnnxkjfyxv8vkfmvwjhlw2zdlghbngg21k1ljvgr2jfx6j";
+      name = "kiriki-20.12.2.tar.xz";
     };
   };
   kiten = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kiten-20.08.3.tar.xz";
-      sha256 = "0n9mq86gcl6s2f45l8lbp4gsdj356l78xjkdvm14f6qlh81vsqlc";
-      name = "kiten-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kiten-20.12.2.tar.xz";
+      sha256 = "18p4g9cqn25s2zjygwvi9s81ma0b8rhfj9z0i2kd415b2sxalk3y";
+      name = "kiten-20.12.2.tar.xz";
     };
   };
   kitinerary = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kitinerary-20.08.3.tar.xz";
-      sha256 = "169pmy5fyjkbya8r2kdkd9s83sim0jplc3lx8bv2xh6r10mvzgm6";
-      name = "kitinerary-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kitinerary-20.12.2.tar.xz";
+      sha256 = "0z9jyj9wlda44qdncjnp6cyp7dwk89dl9nj68j5birmn83ykaawp";
+      name = "kitinerary-20.12.2.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kjumpingcube-20.08.3.tar.xz";
-      sha256 = "19246jwwd686x8i0jrvz2c8mpkf6qhm7rnskzin59dqzr76xrpgz";
-      name = "kjumpingcube-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kjumpingcube-20.12.2.tar.xz";
+      sha256 = "04qry2b82yk2k4v1pj8pvqi27my42k5ssmc5rpzkh0vq8pzwgkjh";
+      name = "kjumpingcube-20.12.2.tar.xz";
     };
   };
   kldap = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kldap-20.08.3.tar.xz";
-      sha256 = "1ihaazsnb9r30m2qhzcp2ns9f5fs7l3agsc9f9wxi4cyw73bq0n3";
-      name = "kldap-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kldap-20.12.2.tar.xz";
+      sha256 = "1njgsxbqgz0grqagf695qv285x8slgnp4rg377jz1cnz597nzl6b";
+      name = "kldap-20.12.2.tar.xz";
     };
   };
   kleopatra = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kleopatra-20.08.3.tar.xz";
-      sha256 = "1r879g7hw3c5cww58z0kvqj47pgzbiq1vpgxz847smrylqajcpyi";
-      name = "kleopatra-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kleopatra-20.12.2.tar.xz";
+      sha256 = "12ayl3gar9bi06v418sflr6fr5k86m8x2ls4laig1ymansbvnwlz";
+      name = "kleopatra-20.12.2.tar.xz";
     };
   };
   klettres = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/klettres-20.08.3.tar.xz";
-      sha256 = "0irc0f7vjznlsczan30zzprbnvgnbg19vabr97cw9rkkfa28azx9";
-      name = "klettres-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/klettres-20.12.2.tar.xz";
+      sha256 = "0ixykb36a7hgz89zxc8x7fp0di67vmalvpa9rivdff3lp7il87n3";
+      name = "klettres-20.12.2.tar.xz";
     };
   };
   klickety = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/klickety-20.08.3.tar.xz";
-      sha256 = "1qsm9grmy0bnalpdghg48xi68zzk6ysmg6n0d74ldmmnirv3r0zf";
-      name = "klickety-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/klickety-20.12.2.tar.xz";
+      sha256 = "0dgv6bnz7aw95nxjqkhcanl06hpdx4g8qwkrvnfsiphjbldhfig7";
+      name = "klickety-20.12.2.tar.xz";
     };
   };
   klines = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/klines-20.08.3.tar.xz";
-      sha256 = "1l95ph1sjp3r1q065k3rj18lm36krl7bh41zgqh021p692ywc48c";
-      name = "klines-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/klines-20.12.2.tar.xz";
+      sha256 = "14mrqfw7y5xcq237a6prfqy8pj34iz5mnfqs373p0jbvdqkc5843";
+      name = "klines-20.12.2.tar.xz";
     };
   };
   kmag = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmag-20.08.3.tar.xz";
-      sha256 = "0y44gz3qn91vl840xz25l5kc5jj82k5qqxkgsvvyld2s99rif84k";
-      name = "kmag-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmag-20.12.2.tar.xz";
+      sha256 = "1vwn5n3c8kq3d3d7sssqpq8iz9g0af4xnvcvjqh4s7fcxmsr3ryv";
+      name = "kmag-20.12.2.tar.xz";
     };
   };
   kmahjongg = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmahjongg-20.08.3.tar.xz";
-      sha256 = "0wgp9m7xzf5ysmrrnyng4p4jypvzfnqkyw62gknl0qhk531cgq3h";
-      name = "kmahjongg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmahjongg-20.12.2.tar.xz";
+      sha256 = "055nihkvfij6a71qn6lw3sbb74zz5r7cp2dghlkai9405ri4gdyc";
+      name = "kmahjongg-20.12.2.tar.xz";
     };
   };
   kmail = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmail-20.08.3.tar.xz";
-      sha256 = "0g59s7wl0n4bp8kw559rdlamlqxl47qvwfms9kr9ign35rvs0ghg";
-      name = "kmail-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmail-20.12.2.tar.xz";
+      sha256 = "09idfdh04687jzh125jw2244ymaqhx6j3563m2cbf2spph0r1vqj";
+      name = "kmail-20.12.2.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmail-account-wizard-20.08.3.tar.xz";
-      sha256 = "0vama5a02dfgxrl4iz88lbi8dvq3d9b055xil770d90pwp0sljcz";
-      name = "kmail-account-wizard-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmail-account-wizard-20.12.2.tar.xz";
+      sha256 = "0a9pz1m3jabi21nrlcj0fqrj1hsgmarw91sxx5qvs74fp2b59368";
+      name = "kmail-account-wizard-20.12.2.tar.xz";
     };
   };
   kmailtransport = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmailtransport-20.08.3.tar.xz";
-      sha256 = "07552qj3ngwvyss7f8cy87c0gmzc47agn54wk85qq0v1fwr73n6z";
-      name = "kmailtransport-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmailtransport-20.12.2.tar.xz";
+      sha256 = "11knn52fc5r637s1w3fzbkapjx6xs1n9v9933ji17zhry7c5rlzv";
+      name = "kmailtransport-20.12.2.tar.xz";
     };
   };
   kmbox = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmbox-20.08.3.tar.xz";
-      sha256 = "0ipmwcicn3qklybqy9v41lh7byn7j62ja8b0xf06z9nliwkk4b0b";
-      name = "kmbox-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmbox-20.12.2.tar.xz";
+      sha256 = "0r76s03g4da2sds6y632gvg228gwsl7gs8ml9rf0fdjb8ymql1hl";
+      name = "kmbox-20.12.2.tar.xz";
     };
   };
   kmime = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmime-20.08.3.tar.xz";
-      sha256 = "1ndbx712vm4v0fi7p8j28d8z35h3bmsixc97z5r9dg03v1kzd36v";
-      name = "kmime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmime-20.12.2.tar.xz";
+      sha256 = "1jpfhsac2pji80cad0yab59lq7q7c1han0gajvwys1j15jyj11gi";
+      name = "kmime-20.12.2.tar.xz";
     };
   };
   kmines = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmines-20.08.3.tar.xz";
-      sha256 = "1mn5hip3vnzmkk1hy14glsplp7f5pm56yv0d5mz25icfgw0xa6lp";
-      name = "kmines-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmines-20.12.2.tar.xz";
+      sha256 = "0378cd1zh6w8slap4wry8m69l27nvi7j2dwz2vwkl76zh31q4pwi";
+      name = "kmines-20.12.2.tar.xz";
     };
   };
   kmix = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmix-20.08.3.tar.xz";
-      sha256 = "00gm93faqmqx0hhkxi3k2pn6sq82k2f622vqgk7mwznkpg66mf4k";
-      name = "kmix-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmix-20.12.2.tar.xz";
+      sha256 = "12kij1y2lbyx71bg32pwb9s9p928pyw44flz9bv2jrzkkf4zwfxk";
+      name = "kmix-20.12.2.tar.xz";
     };
   };
   kmousetool = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmousetool-20.08.3.tar.xz";
-      sha256 = "09qznykysr42rzz5cmqvhvz91cr8dbzwjd73hwaib2lfs3c2cgbl";
-      name = "kmousetool-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmousetool-20.12.2.tar.xz";
+      sha256 = "0ybrczxsmfrj43nr931ylbdgpqmcfx47ifbv2qjn72i8iggrv0cl";
+      name = "kmousetool-20.12.2.tar.xz";
     };
   };
   kmouth = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmouth-20.08.3.tar.xz";
-      sha256 = "0ajhnl1sjllfb42nyafpirmlgcs6waqp8qxvgsz5dk5zkb8daqmr";
-      name = "kmouth-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmouth-20.12.2.tar.xz";
+      sha256 = "1vq41r1vhr5iaxlb5dzpq3vwqk1rn1zxw3k4j7g2xq5xxmibj944";
+      name = "kmouth-20.12.2.tar.xz";
     };
   };
   kmplot = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmplot-20.08.3.tar.xz";
-      sha256 = "0cv7q1wmbb3fkf4s6ns4q1il5zr4q02b3xghpp661ma82d8jhjcy";
-      name = "kmplot-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmplot-20.12.2.tar.xz";
+      sha256 = "0l6j68zg9xdrgglw7gnji0spjf7pcggym90cccw67jdn2wxc8g6q";
+      name = "kmplot-20.12.2.tar.xz";
     };
   };
   knavalbattle = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knavalbattle-20.08.3.tar.xz";
-      sha256 = "1028i8zl5ynm3vvqajsms2hq8gmmjmjc5dc6r3jyh6r964vxq3nq";
-      name = "knavalbattle-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/knavalbattle-20.12.2.tar.xz";
+      sha256 = "0x47rzs7afqygcy45crc10ix4dsivnpmxis9r0w4lpzbq3qzd585";
+      name = "knavalbattle-20.12.2.tar.xz";
     };
   };
   knetwalk = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knetwalk-20.08.3.tar.xz";
-      sha256 = "13pspvi2p68irpbr3f2ck78qmvfl3vahm5qjw2fwhidhpindf9nl";
-      name = "knetwalk-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/knetwalk-20.12.2.tar.xz";
+      sha256 = "11h7b5amm4bcng0h8hfcn1r1nkd82h0rl47wvnqczsgjqp2r9h6a";
+      name = "knetwalk-20.12.2.tar.xz";
     };
   };
   knights = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knights-20.08.3.tar.xz";
-      sha256 = "0zqb87mr2x085hi3r9cvdrx2kvxmclh4ffi1ajcb8v1f79wiwzin";
-      name = "knights-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/knights-20.12.2.tar.xz";
+      sha256 = "1p5w61x4ldb5sp77l1c0v7aczi62xpvf1084316byhb5cqmxsqm9";
+      name = "knights-20.12.2.tar.xz";
     };
   };
   knotes = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knotes-20.08.3.tar.xz";
-      sha256 = "0ysw8js2s6njilg4v4vqrl1bzcmqvk42l68pzvyflr112zviqz28";
-      name = "knotes-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/knotes-20.12.2.tar.xz";
+      sha256 = "11dvczl04lmzlhbmqp508bqrsrqqmmprp3nsvakmmidpgnvcm26l";
+      name = "knotes-20.12.2.tar.xz";
     };
   };
   kolf = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kolf-20.08.3.tar.xz";
-      sha256 = "1ywyny8iq2sxglsvpgw6p3w3w567k6cw6waywfcfy0lcnfarg1n0";
-      name = "kolf-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kolf-20.12.2.tar.xz";
+      sha256 = "1jw22m7a2jdw9zmssiihwm35zpq7bg8zk0a68fh5nxbyv43q8fj5";
+      name = "kolf-20.12.2.tar.xz";
     };
   };
   kollision = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kollision-20.08.3.tar.xz";
-      sha256 = "1l8a32bni40jz5jna0ip9ggbx7zp1hhiw2mip7v8f6qc4arbknl8";
-      name = "kollision-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kollision-20.12.2.tar.xz";
+      sha256 = "0g0mf9p1pz9wahc92k9iw1vb8v64y1kj7zgiyzmil6qr1pjyzlgm";
+      name = "kollision-20.12.2.tar.xz";
     };
   };
   kolourpaint = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kolourpaint-20.08.3.tar.xz";
-      sha256 = "0d64gnnb553rxscr8710h5bx8ijxd87jrbix07k41y79i5x60irh";
-      name = "kolourpaint-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kolourpaint-20.12.2.tar.xz";
+      sha256 = "13pb09r9qrgwaii9x3a6qk3qgk288a821p4xgiwaiv9lcbjz56fn";
+      name = "kolourpaint-20.12.2.tar.xz";
     };
   };
   kompare = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kompare-20.08.3.tar.xz";
-      sha256 = "0r9m2vcw9hbdkfdy24pfpqs2b5r0jyxh1ma2h66hfv4ycd470ilc";
-      name = "kompare-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kompare-20.12.2.tar.xz";
+      sha256 = "18n5sw52kwwmbgyb2q5lizpa57by8gmx665bj68wi2hvzdihmxmv";
+      name = "kompare-20.12.2.tar.xz";
     };
   };
   konqueror = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/konqueror-20.08.3.tar.xz";
-      sha256 = "1ssjj83jcbcq8i7wx5zd12z7crh2zg6awbpy38maq3c7747nqz7k";
-      name = "konqueror-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/konqueror-20.12.2.tar.xz";
+      sha256 = "0zvr71yz2053y341b12zw92v0yk5whgivcr0iyz488lfw9wq0n4d";
+      name = "konqueror-20.12.2.tar.xz";
     };
   };
   konquest = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/konquest-20.08.3.tar.xz";
-      sha256 = "1wq0j02dzdah6yhx8r2cg191617hid9fs780yr317fprkwkgb8cb";
-      name = "konquest-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/konquest-20.12.2.tar.xz";
+      sha256 = "0p4y7s37a3vchplpidlv4bc94gwnsm4k7sl4s2ra0prqga83yxbj";
+      name = "konquest-20.12.2.tar.xz";
     };
   };
   konsole = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/konsole-20.08.3.tar.xz";
-      sha256 = "0jjidy756x8n456qbm977a73l8229kk8i489jh52296k8pkh6yjx";
-      name = "konsole-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/konsole-20.12.2.tar.xz";
+      sha256 = "0wq8xbppg4fla8x669rvkz4mrpbpaplr0ysdvnc4djbwnzabs6zw";
+      name = "konsole-20.12.2.tar.xz";
     };
   };
   kontact = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kontact-20.08.3.tar.xz";
-      sha256 = "0qasgxvq7xps0zxk4hf2sizmy90mxyq70m2pq49pq17ij2pa9ynl";
-      name = "kontact-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kontact-20.12.2.tar.xz";
+      sha256 = "05pvrbsbrz39znim2jrcslnji8n4imig8f717jv89nlmllp5sk2i";
+      name = "kontact-20.12.2.tar.xz";
     };
   };
   kontactinterface = {
-    version = "20.08.3";
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/kontactinterface-20.12.2.tar.xz";
+      sha256 = "0i3kxim4rc4mvqlq06g0a8h106gb93v4s0kymysd4a4yw3pq4fas";
+      name = "kontactinterface-20.12.2.tar.xz";
+    };
+  };
+  kontrast = {
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kontactinterface-20.08.3.tar.xz";
-      sha256 = "1ah2814js08sm49ykarqdw7z03w4fbym5cc4vwmzimcvh2bc78j3";
-      name = "kontactinterface-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kontrast-20.12.2.tar.xz";
+      sha256 = "0cqqclyqm0z59n296jh6pnb2zdzligmvsd2icb1qzxn2r69inipa";
+      name = "kontrast-20.12.2.tar.xz";
+    };
+  };
+  konversation = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/konversation-20.12.2.tar.xz";
+      sha256 = "0m13qpvzxm5arawsqh2hygs266jv9915lhc3xhs0b1wbhjb3ii8l";
+      name = "konversation-20.12.2.tar.xz";
     };
   };
   kopete = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kopete-20.08.3.tar.xz";
-      sha256 = "1lsab66k0xq1g0w0cxcpadmf9kkc09x8wwbv4i8y3aj2mn7849gh";
-      name = "kopete-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kopete-20.12.2.tar.xz";
+      sha256 = "0ahcxkvi5ibdl3krm3aw5gamcyfi4s4af2wl6r3sk73l7q4kpxvi";
+      name = "kopete-20.12.2.tar.xz";
     };
   };
   korganizer = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/korganizer-20.08.3.tar.xz";
-      sha256 = "112h6vn2y9d3q3z62cwg3zrak3xgx9affibc9cvr6fzhp4z0x9ps";
-      name = "korganizer-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/korganizer-20.12.2.tar.xz";
+      sha256 = "1f2j60gdx3hxz64lhx9cyi7sa75s2qr8zghhk8h1wgdwaz9hvjz8";
+      name = "korganizer-20.12.2.tar.xz";
+    };
+  };
+  kosmindoormap = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/kosmindoormap-20.12.2.tar.xz";
+      sha256 = "0rr6lgfbjdvnxipx0dnzp4hlrvq61ha015mz7qkly88ckwp6m05q";
+      name = "kosmindoormap-20.12.2.tar.xz";
     };
   };
   kpat = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kpat-20.08.3.tar.xz";
-      sha256 = "1id4b9jkphi8pp29gc2vb3n9f0g8kl9yy5v8cnyv3jq673aj0fs9";
-      name = "kpat-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kpat-20.12.2.tar.xz";
+      sha256 = "1gcv343aabwcgx3kb9khkvilnxipq200pz14d8qdj41lsa71cynx";
+      name = "kpat-20.12.2.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kpimtextedit-20.08.3.tar.xz";
-      sha256 = "1m4r5zbhbjvj3za78xfp3dibyf7mp9gan5ir5zd0k2p7adp3i652";
-      name = "kpimtextedit-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kpimtextedit-20.12.2.tar.xz";
+      sha256 = "1ccvzwbxbsbb4b5hfjvf30fv44b1byjzb08x4vagbrqb47ck763y";
+      name = "kpimtextedit-20.12.2.tar.xz";
     };
   };
   kpkpass = {
-    version = "20.08.3";
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/kpkpass-20.12.2.tar.xz";
+      sha256 = "1m0cqlrpjmfam0lyjjzpd8wgsv9v0x6fr76qr5ndyrfbfcv0qin3";
+      name = "kpkpass-20.12.2.tar.xz";
+    };
+  };
+  kpmcore = {
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kpkpass-20.08.3.tar.xz";
-      sha256 = "0zw3xx5mi38za0xbvld97f5bqvwwgyz47kybyrdm7jrhvmmiiiis";
-      name = "kpkpass-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kpmcore-20.12.2.tar.xz";
+      sha256 = "1z8fln51jsgar69m2x8rb95zxbq6r28cycpa7y52gaiywahbsin4";
+      name = "kpmcore-20.12.2.tar.xz";
+    };
+  };
+  kpublictransport = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/kpublictransport-20.12.2.tar.xz";
+      sha256 = "1n7gy9pnykxd39ralfxrrvbsgxn68f1jzvbmkyvj759xrl2na1kq";
+      name = "kpublictransport-20.12.2.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kqtquickcharts-20.08.3.tar.xz";
-      sha256 = "0l7v8vrc7by0w0yshnh21jaqhspmhkvm5cd0hpay6jc9v2azkcf3";
-      name = "kqtquickcharts-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kqtquickcharts-20.12.2.tar.xz";
+      sha256 = "06lrvckmddyxl11kyic99dhfn8il88hs1vsnr89y3m8543ij885n";
+      name = "kqtquickcharts-20.12.2.tar.xz";
     };
   };
   krdc = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/krdc-20.08.3.tar.xz";
-      sha256 = "1g9lxdldljh5a2s4g7g9b98lij168l99ah0vr6nvdl53n35pfr8n";
-      name = "krdc-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/krdc-20.12.2.tar.xz";
+      sha256 = "0wzv25pdalwgcb74dav4jkxpvak0nix46njn04w2vhy3rdlgplzr";
+      name = "krdc-20.12.2.tar.xz";
     };
   };
   kreversi = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kreversi-20.08.3.tar.xz";
-      sha256 = "0d3y072q61xcik9lf0pz0c9njvarwlvf6hqv5fp5jyqaf2902pmi";
-      name = "kreversi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kreversi-20.12.2.tar.xz";
+      sha256 = "1c0xisbbq6p6ghl5rvhiddpgsa91m4bq8hmrpdw8s02j4g8aix39";
+      name = "kreversi-20.12.2.tar.xz";
     };
   };
   krfb = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/krfb-20.08.3.tar.xz";
-      sha256 = "13nypbcdhh53wq72w59z5q46a09g1w4yyi1pmsjwa8r7jnk8cafk";
-      name = "krfb-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/krfb-20.12.2.tar.xz";
+      sha256 = "0js84sc9s8h7b1zkdg2k83qhh2q3dz5yfk17am480b3889pyjyd8";
+      name = "krfb-20.12.2.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kross-interpreters-20.08.3.tar.xz";
-      sha256 = "0mr5vpbbcv66s6dyrrypy1ai6ba744z8cn4r0iwys35p6am075qj";
-      name = "kross-interpreters-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kross-interpreters-20.12.2.tar.xz";
+      sha256 = "04g8fqcr88k7b8sivkqasj8d5fywhmm69g4spv1rpm4m89gr70jn";
+      name = "kross-interpreters-20.12.2.tar.xz";
     };
   };
   kruler = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kruler-20.08.3.tar.xz";
-      sha256 = "1vhl8acccdqfdj7lci8r2mig9qf1js4f8v7b4fqljpnc3gdg8749";
-      name = "kruler-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kruler-20.12.2.tar.xz";
+      sha256 = "0xayhfav4723m5z5bgv4zxa95zvsfgvfh0wf80y8c7wwfgsyn9ja";
+      name = "kruler-20.12.2.tar.xz";
     };
   };
   kshisen = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kshisen-20.08.3.tar.xz";
-      sha256 = "1vy8qh8s60a4ikyw3sh4cbr3p3fk35d4dwdqc263gn4skyrsb1l9";
-      name = "kshisen-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kshisen-20.12.2.tar.xz";
+      sha256 = "079sr9k8zg01imy2c54wx371fcxlzsm122ng0zl4cn69dndczjkf";
+      name = "kshisen-20.12.2.tar.xz";
     };
   };
   ksirk = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksirk-20.08.3.tar.xz";
-      sha256 = "1kxc1b05r8x6pvaiwpvjpgrr88qkm5qs4d3s1ym8rki60c724qpl";
-      name = "ksirk-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksirk-20.12.2.tar.xz";
+      sha256 = "10ksb77ljwfm25m8jrxh4cbss0lrjdmiigjbmyppxcls1rz8a6cn";
+      name = "ksirk-20.12.2.tar.xz";
     };
   };
   ksmtp = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksmtp-20.08.3.tar.xz";
-      sha256 = "1p9clzvmsym2fijwvs3s0zqx57bk82mlks52j5ni3il6lvklaayc";
-      name = "ksmtp-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksmtp-20.12.2.tar.xz";
+      sha256 = "0rcs5zcrj8sscr0h0vx4ndbj3ziyxns5glk5bzpj1092b11pwllw";
+      name = "ksmtp-20.12.2.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksnakeduel-20.08.3.tar.xz";
-      sha256 = "03ydbwknn20gadjpwcw0z8zw777hgj8j10w4gvp2dwpb07rdg1pn";
-      name = "ksnakeduel-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksnakeduel-20.12.2.tar.xz";
+      sha256 = "1cd1nldrmhimc1f059hqjkb8g8yjri7gf9cyxz7j0p48dxg93ns4";
+      name = "ksnakeduel-20.12.2.tar.xz";
     };
   };
   kspaceduel = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kspaceduel-20.08.3.tar.xz";
-      sha256 = "1ii3lnxd11d3ihl8j1abh9qn9q0qq8ra9hbrwjs5df2kk36bnirj";
-      name = "kspaceduel-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kspaceduel-20.12.2.tar.xz";
+      sha256 = "0mz3s5q8fyl76ck8b9s65w2q90a5cz2p4clnbxam8f72fk2g0g1v";
+      name = "kspaceduel-20.12.2.tar.xz";
     };
   };
   ksquares = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksquares-20.08.3.tar.xz";
-      sha256 = "1ch7lbylzb9ngdzvpzqq5f30gkm2l4rzk6iqa8xm53rawr7jjqcy";
-      name = "ksquares-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksquares-20.12.2.tar.xz";
+      sha256 = "11mfyyjrdlh8dzpzwvyr48rfg758hr14sb0cw1zvd7d7cz86dr31";
+      name = "ksquares-20.12.2.tar.xz";
     };
   };
   ksudoku = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksudoku-20.08.3.tar.xz";
-      sha256 = "0hnqbd3krxi3zwj8p4n9ydhwfwhw8wljhjdfv0llv0nhj1wb89p9";
-      name = "ksudoku-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksudoku-20.12.2.tar.xz";
+      sha256 = "01i4niy1nlikbw1j7qlwldcaniwb1pl4hr4p6icgsvfzr8pjl09z";
+      name = "ksudoku-20.12.2.tar.xz";
     };
   };
   ksystemlog = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksystemlog-20.08.3.tar.xz";
-      sha256 = "11fc2mn4hkcibpxp7s2gihpp05yix7ws84a0bm6vjiqlidmrk192";
-      name = "ksystemlog-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksystemlog-20.12.2.tar.xz";
+      sha256 = "1fyrpkk5ipp5q8sairmyx9bayndbbr9srrwdhp7grhbiw8kbjlc7";
+      name = "ksystemlog-20.12.2.tar.xz";
     };
   };
   kteatime = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kteatime-20.08.3.tar.xz";
-      sha256 = "1vj738s2a7nnrvxi847mdmn1vg79kh9k8gqaflcwnvyxanf6n4f7";
-      name = "kteatime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kteatime-20.12.2.tar.xz";
+      sha256 = "18rpnvagrcmd62qss31rkv81kkjcz9kcisj9q0j41p770jvan8id";
+      name = "kteatime-20.12.2.tar.xz";
     };
   };
   ktimer = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktimer-20.08.3.tar.xz";
-      sha256 = "1rc1z93s24b7p2ixr4xbpg0sj8ls90gzfijwj9f8b0lrwd905ysv";
-      name = "ktimer-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktimer-20.12.2.tar.xz";
+      sha256 = "17sw7wl9844sg180h0x2skaj4bnkv6qin6cwklsp058wyf06w5wy";
+      name = "ktimer-20.12.2.tar.xz";
     };
   };
   ktnef = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktnef-20.08.3.tar.xz";
-      sha256 = "1lj93sqyi522k91jiyf7d26vx5sgn5njhyaf8plsfz5rj82dw1m4";
-      name = "ktnef-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktnef-20.12.2.tar.xz";
+      sha256 = "147dxalzgqfmacr0f44pbxg0ks5p7ck607gkbzf5asxgn4dlvgxq";
+      name = "ktnef-20.12.2.tar.xz";
+    };
+  };
+  ktorrent = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/ktorrent-20.12.2.tar.xz";
+      sha256 = "1fvbg3700my5algzif4dyy7zsc74qrby7ldfbj7snlxa4scws042";
+      name = "ktorrent-20.12.2.tar.xz";
     };
   };
   ktouch = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktouch-20.08.3.tar.xz";
-      sha256 = "1ssxd7f75866rn5k192bnm016d8674q13ibcgmaxqsmr7wqkyd39";
-      name = "ktouch-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktouch-20.12.2.tar.xz";
+      sha256 = "0j3xzm5ghnfvqb98xwrjzkrdm991af8rgnay38s081ykvj2hxj3n";
+      name = "ktouch-20.12.2.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-accounts-kcm-20.08.3.tar.xz";
-      sha256 = "0039svbzx7fphyk6cw4hb8k4h7l6q31pbwvp6pvls450rycz8i8y";
-      name = "ktp-accounts-kcm-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-accounts-kcm-20.12.2.tar.xz";
+      sha256 = "0dyr3600yrd2hjs2s54210h1kj95w5mz9pl2fpwzcqgkmmd9vss5";
+      name = "ktp-accounts-kcm-20.12.2.tar.xz";
     };
   };
   ktp-approver = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-approver-20.08.3.tar.xz";
-      sha256 = "1kqsdw7vkcd0ka98y2r7qz7dp5hsrr2m8k1xlh3gpj7fdxpla2bh";
-      name = "ktp-approver-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-approver-20.12.2.tar.xz";
+      sha256 = "1h3fi19qqmik6f7h12manb8yval0qqj7jdhrpp07ck67m7mibwzr";
+      name = "ktp-approver-20.12.2.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-auth-handler-20.08.3.tar.xz";
-      sha256 = "0wbhg458ysipwma8sygimasq71sbrzmx3vwqi51ai8y5hwrx04j4";
-      name = "ktp-auth-handler-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-auth-handler-20.12.2.tar.xz";
+      sha256 = "158n88pcxj7hdmsmhcqbfpqc4lhrpzighxgb4wdrzizi9dwpxb3h";
+      name = "ktp-auth-handler-20.12.2.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-call-ui-20.08.3.tar.xz";
-      sha256 = "1fh8bz9kc6f8v28x12xp3vw19swgcq07zyjzhd6qcnwf1bv6gl7i";
-      name = "ktp-call-ui-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-call-ui-20.12.2.tar.xz";
+      sha256 = "0xhf79gqr6b8hiscv6jnmjnl8nb7c6vsvxn7hzvri9nm7hfmldya";
+      name = "ktp-call-ui-20.12.2.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-common-internals-20.08.3.tar.xz";
-      sha256 = "193yx4g1fwlwysy5scb7m24wqmvwmfyyb9sv7arw7zn5czlg480z";
-      name = "ktp-common-internals-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-common-internals-20.12.2.tar.xz";
+      sha256 = "06m8g80lj2cnx5cnfi6m1fy6pg6rm78kxg7v1493xcsfzizlc276";
+      name = "ktp-common-internals-20.12.2.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-contact-list-20.08.3.tar.xz";
-      sha256 = "0093z17r1xqlb1zlgxfayrnrkyl8zmnnasfd8i97dx712wmbbxxa";
-      name = "ktp-contact-list-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-contact-list-20.12.2.tar.xz";
+      sha256 = "037si47l8nc18d7yzh6d7i3gy710y5npxv4wcal6yg8mlr2qzjli";
+      name = "ktp-contact-list-20.12.2.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-contact-runner-20.08.3.tar.xz";
-      sha256 = "063jylnq3gm0s0jh1xs6b591a161sb6gdi840l40mqlhhg7i8x55";
-      name = "ktp-contact-runner-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-contact-runner-20.12.2.tar.xz";
+      sha256 = "1pv7smf5mld5rgld2nsqjwgl7vwsf99f3z4hamlbq6bpdg02w936";
+      name = "ktp-contact-runner-20.12.2.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-desktop-applets-20.08.3.tar.xz";
-      sha256 = "1i69qzfa455phjnd5ycflyggcbq7ycn2cc7a3ni5195isjzq6r6s";
-      name = "ktp-desktop-applets-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-desktop-applets-20.12.2.tar.xz";
+      sha256 = "1mx1q1gk756pkbpwghsvkspj3npgfzp2lf4jqldkyygvyqn3gxx4";
+      name = "ktp-desktop-applets-20.12.2.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-filetransfer-handler-20.08.3.tar.xz";
-      sha256 = "0a26ziacl3fkd0a0h1579jnwjzjlsz0zymj9k4da4sb60zad5y72";
-      name = "ktp-filetransfer-handler-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-filetransfer-handler-20.12.2.tar.xz";
+      sha256 = "16ys5cyx1pzcv0affy8agp0sbci9rkvpknfffldrvlgqppxza5rd";
+      name = "ktp-filetransfer-handler-20.12.2.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-kded-module-20.08.3.tar.xz";
-      sha256 = "105vh6b7a0v02arksbwxn30slpcg11cpvb7dqmvf041iyr13sqsv";
-      name = "ktp-kded-module-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-kded-module-20.12.2.tar.xz";
+      sha256 = "1wkvi5l9fvq24c3vdflg0azjxykid61i6mi59cnrnr866a1rbgrg";
+      name = "ktp-kded-module-20.12.2.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-send-file-20.08.3.tar.xz";
-      sha256 = "08pp3029jplc6rcbav40cgy787gn3jjl312gbgvnwzglxaqvcg4b";
-      name = "ktp-send-file-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-send-file-20.12.2.tar.xz";
+      sha256 = "0j32c81rabbxh3m0jnnahny01qz2h7yc7l90w39r2jkv9r5f3yvf";
+      name = "ktp-send-file-20.12.2.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-text-ui-20.08.3.tar.xz";
-      sha256 = "1anxl9wa5ndyi9r9w0kpivx8nv1xpx28xjvkdplkc75cc1wl88sw";
-      name = "ktp-text-ui-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-text-ui-20.12.2.tar.xz";
+      sha256 = "09wkpyadf3dvnrbxrasr66yw4hqnb3kbk6va9bs836fvcaiwagwd";
+      name = "ktp-text-ui-20.12.2.tar.xz";
     };
   };
   ktuberling = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktuberling-20.08.3.tar.xz";
-      sha256 = "0q6ynmn6w5q65a77fq8n9vxqswrimln22b1zfgxmb2i3qwnhkrmz";
-      name = "ktuberling-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktuberling-20.12.2.tar.xz";
+      sha256 = "0yndqhgw9s2hydfsz2x3lr1m22ii2whc4kcp2jbkj9ssiymp8s68";
+      name = "ktuberling-20.12.2.tar.xz";
     };
   };
   kturtle = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kturtle-20.08.3.tar.xz";
-      sha256 = "0riv76vwvz94zixqhhwkxw8sz2r2xqai39yh9hr31d28q9rza384";
-      name = "kturtle-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kturtle-20.12.2.tar.xz";
+      sha256 = "1a46c6j7jng9l789wdpp7qj639872dfj268hj8nq63n27f82whr0";
+      name = "kturtle-20.12.2.tar.xz";
     };
   };
   kubrick = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kubrick-20.08.3.tar.xz";
-      sha256 = "03k73gr33dr3va69vc70fsfcdwkqz70bg87yk2l2j33x8wsgl4wx";
-      name = "kubrick-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kubrick-20.12.2.tar.xz";
+      sha256 = "0g3zxdbj5l28msvs8gpn15g739pwwids7wxmky6w3b4qyn427j8m";
+      name = "kubrick-20.12.2.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kwalletmanager-20.08.3.tar.xz";
-      sha256 = "1l07vxl2x3jl8553rbvr3p0k3rc95nmrw4vhxxynl3102xshrg5i";
-      name = "kwalletmanager-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kwalletmanager-20.12.2.tar.xz";
+      sha256 = "02lx3p7860pigslx6s3bjg54sjjv1q93f9aknv5d32iblv2gaxiw";
+      name = "kwalletmanager-20.12.2.tar.xz";
     };
   };
   kwave = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kwave-20.08.3.tar.xz";
-      sha256 = "0zk8ik03qcc6y0vhpih8sk2jpkxwxalmqmaan2767k9h92grdpc8";
-      name = "kwave-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kwave-20.12.2.tar.xz";
+      sha256 = "0nankggamy1jxllnsv642kav57kwkbxpkd2mz6rarjinfnnqi7kd";
+      name = "kwave-20.12.2.tar.xz";
     };
   };
   kwordquiz = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kwordquiz-20.08.3.tar.xz";
-      sha256 = "1kiqk3xyd0l7kqdxqjqs8mw4drcdbdri9xxi5gcav57ndcinknqb";
-      name = "kwordquiz-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kwordquiz-20.12.2.tar.xz";
+      sha256 = "1iik5khnsarxjipmd8znbiqs20bd65hanhmdmp7awqs7p0k4a0sq";
+      name = "kwordquiz-20.12.2.tar.xz";
     };
   };
   libgravatar = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libgravatar-20.08.3.tar.xz";
-      sha256 = "09dvx2rb1j7q4r0gkbhz0vjk8ya3njqprpjqdhwcq7xwc2j9h0hr";
-      name = "libgravatar-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libgravatar-20.12.2.tar.xz";
+      sha256 = "07pnj708wrvfmmy7j2vsx9j1sl9wx3hd7vfnpqa4zd24ci7x7y3d";
+      name = "libgravatar-20.12.2.tar.xz";
     };
   };
   libkcddb = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkcddb-20.08.3.tar.xz";
-      sha256 = "0r36hs79hmq0znsds0d04lj7ffs6l2d866kyn1z1fdwr9b3crirg";
-      name = "libkcddb-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkcddb-20.12.2.tar.xz";
+      sha256 = "1px7cgc75ypxaqknamqgxps4796388j99ycrbgrlyrhzws1mva8k";
+      name = "libkcddb-20.12.2.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkcompactdisc-20.08.3.tar.xz";
-      sha256 = "1nglk3kbx5czqla3cnpnf1fk71pf2cl9h6rgb40ak1xw4z31d456";
-      name = "libkcompactdisc-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkcompactdisc-20.12.2.tar.xz";
+      sha256 = "0yj2gkl1d76mf2lp02apxh4lmb9rnzvp0c8y0992ssnfsrivalp4";
+      name = "libkcompactdisc-20.12.2.tar.xz";
     };
   };
   libkdcraw = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkdcraw-20.08.3.tar.xz";
-      sha256 = "1806i99qsrmixdg5b0hyi8h55fk00q6wxsnrblbwcmsb268jddp7";
-      name = "libkdcraw-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkdcraw-20.12.2.tar.xz";
+      sha256 = "1hgw087frq9yzzwp2mkl3xqz2gd4v82kyiym2316i1xpmbkgcqfm";
+      name = "libkdcraw-20.12.2.tar.xz";
     };
   };
   libkdegames = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkdegames-20.08.3.tar.xz";
-      sha256 = "1ccbcwwqb53bgqlr1rq9plpw21mipxp8rsi1f7l0p1jzpw054p08";
-      name = "libkdegames-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkdegames-20.12.2.tar.xz";
+      sha256 = "0fcl06z5zl1hycj8f8q9dz6fc9lb0dqd5ciha4yig98ybzi3zn8r";
+      name = "libkdegames-20.12.2.tar.xz";
     };
   };
   libkdepim = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkdepim-20.08.3.tar.xz";
-      sha256 = "1v77g02v5sdqprh8psx5xpjgf8v91il60ca59yivm5jvc3hdf3f6";
-      name = "libkdepim-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkdepim-20.12.2.tar.xz";
+      sha256 = "0f9c96w7ijlvfg9dr0w9wwaf05fn0z32zx8nn8jp42pzcbn6yr56";
+      name = "libkdepim-20.12.2.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkeduvocdocument-20.08.3.tar.xz";
-      sha256 = "0ghkx6x5sn5fl934ybhl32knwv9zky0n1vkjw2w93lpms45xmw76";
-      name = "libkeduvocdocument-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkeduvocdocument-20.12.2.tar.xz";
+      sha256 = "0lki60mv82ygss2bxgwg178xabvfn85zlg0pwk2gj30zg0jiaw66";
+      name = "libkeduvocdocument-20.12.2.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkexiv2-20.08.3.tar.xz";
-      sha256 = "1lh3947w6xgzl2r1wm6m4kd478q6bv89f0c3c38ldv30imfw7rfl";
-      name = "libkexiv2-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkexiv2-20.12.2.tar.xz";
+      sha256 = "10j82xk7y7vf9y9ss83hc9fd9c1dbd55nwjf28bj7myqaji4wdpb";
+      name = "libkexiv2-20.12.2.tar.xz";
     };
   };
   libkgapi = {
-    version = "20.08.3";
-    src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkgapi-20.08.3.tar.xz";
-      sha256 = "1kmgf9v9rvb67l7aw5xsx7v44l4pz8rl6p09lk26irq7gd4k68la";
-      name = "libkgapi-20.08.3.tar.xz";
-    };
-  };
-  libkgeomap = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkgeomap-20.08.3.tar.xz";
-      sha256 = "14ipksxnvgk2s1sw7a70153iy9aik9mf4i7k8y3pzdr3l3155ayk";
-      name = "libkgeomap-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkgapi-20.12.2.tar.xz";
+      sha256 = "1yaas07ixxjnb5a37dq93skqs0vk08rdr9ll30jr7kdll311s5ni";
+      name = "libkgapi-20.12.2.tar.xz";
     };
   };
   libkipi = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkipi-20.08.3.tar.xz";
-      sha256 = "1b5qby7xm926qnzrf1zpb89fwx1a2syhqnznmdjxifj499p1jqjb";
-      name = "libkipi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkipi-20.12.2.tar.xz";
+      sha256 = "1axjvkrmjszxyh0fdm9k25g4gpzmn4hsw222k2qj3smvnhdj37zk";
+      name = "libkipi-20.12.2.tar.xz";
     };
   };
   libkleo = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkleo-20.08.3.tar.xz";
-      sha256 = "1d6dal4qnrikg6ma2ird4b2sdivqqkkhamvd3s1srcxppc3aiq79";
-      name = "libkleo-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkleo-20.12.2.tar.xz";
+      sha256 = "0xsljfiqqggdp31c7irjn6lgacdds5kb7sr3khg24bsgip9488k1";
+      name = "libkleo-20.12.2.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkmahjongg-20.08.3.tar.xz";
-      sha256 = "0xabp1vzbzs52m3bb9nzm1d9md1n4j4pr13izn6nv28ja7477nnm";
-      name = "libkmahjongg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkmahjongg-20.12.2.tar.xz";
+      sha256 = "1yl2smx0ybr164pl8nv5a7jibq3pmpf0v4ijvardp53j51bs2c2q";
+      name = "libkmahjongg-20.12.2.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkomparediff2-20.08.3.tar.xz";
-      sha256 = "0nk0jkf0jwaz1yqzzp44c6xyjgw42gclkcvw8w61w1f8sdl40wb8";
-      name = "libkomparediff2-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkomparediff2-20.12.2.tar.xz";
+      sha256 = "03fn3l1qhzivck7jzfp7fwpgix701paj03rzvc46rs4f1bfmb1d9";
+      name = "libkomparediff2-20.12.2.tar.xz";
     };
   };
   libksane = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libksane-20.08.3.tar.xz";
-      sha256 = "0d2cnmvk16g1vnx9jd7jvp3bpw07ss54khmhqip8iskkvcfll9j0";
-      name = "libksane-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libksane-20.12.2.tar.xz";
+      sha256 = "1bhwfsyfd2z4hagfggz3ckxbyqrifcbwyn79h59qpng7nkzsgw4b";
+      name = "libksane-20.12.2.tar.xz";
     };
   };
   libksieve = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libksieve-20.08.3.tar.xz";
-      sha256 = "0bhpdqynazssql2iivvpb9l8npa441345gcn59fc0va6barl9sam";
-      name = "libksieve-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libksieve-20.12.2.tar.xz";
+      sha256 = "0rjchcpc4sx53siv3b9hq6s12qh96rrb4xmnk3gjhsvqq9gmyq3j";
+      name = "libksieve-20.12.2.tar.xz";
+    };
+  };
+  libktorrent = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/libktorrent-20.12.2.tar.xz";
+      sha256 = "15ywv00vklvqw7x6id4vycf4rmi4j3s6z70c68h1b6v8n9j3rz3b";
+      name = "libktorrent-20.12.2.tar.xz";
     };
   };
   lokalize = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/lokalize-20.08.3.tar.xz";
-      sha256 = "0iab8sd1qh7h0zna7lc3v43z6rcmxba9v4nynhl5miiac4r6ddr8";
-      name = "lokalize-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/lokalize-20.12.2.tar.xz";
+      sha256 = "1ms7x5aw5z63q2xy6f3x8dl1k39yjqbabzh8qznaqs172bwmwzz7";
+      name = "lokalize-20.12.2.tar.xz";
     };
   };
   lskat = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/lskat-20.08.3.tar.xz";
-      sha256 = "1rcmh592w5gd5b69czfxycypidj74y2d91cw92rccariadz9vnjz";
-      name = "lskat-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/lskat-20.12.2.tar.xz";
+      sha256 = "087zrwy5pabyy7zpkplxn9is2msr9kpa8r7bpc6kxylx85sd4nsr";
+      name = "lskat-20.12.2.tar.xz";
     };
   };
   mailcommon = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/mailcommon-20.08.3.tar.xz";
-      sha256 = "0bhs60cz4qcrqkmw2sm6cd2laq8lzj9vcwi8kjqkajsidh342wdv";
-      name = "mailcommon-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/mailcommon-20.12.2.tar.xz";
+      sha256 = "0qbbr5m5glcp7rh3aljkrfs27ypdcb5b72q602irivhbgv56c6v5";
+      name = "mailcommon-20.12.2.tar.xz";
     };
   };
   mailimporter = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/mailimporter-20.08.3.tar.xz";
-      sha256 = "0w6yfgqx0adlkwx32vmb23kl6n50737jiabmad3pnhqw8rv41h80";
-      name = "mailimporter-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/mailimporter-20.12.2.tar.xz";
+      sha256 = "16alrfyvgwih9i7fzvmfhbmlsp0l942qml43w2rwkg974g8188yv";
+      name = "mailimporter-20.12.2.tar.xz";
     };
   };
   marble = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/marble-20.08.3.tar.xz";
-      sha256 = "1xpxgy724z97k063fdk0l3mrl8i6nvnhj35b4987jqji76i92ffb";
-      name = "marble-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/marble-20.12.2.tar.xz";
+      sha256 = "0kgiwsx58yhng92v5c90bz02vsn70p6y7gf6qr5fvljbldrxq3a2";
+      name = "marble-20.12.2.tar.xz";
+    };
+  };
+  markdownpart = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/markdownpart-20.12.2.tar.xz";
+      sha256 = "08fifhw40q2xhi3lp76a3b7jgipq3v1gvp1f5id83jvv9bg5m85k";
+      name = "markdownpart-20.12.2.tar.xz";
     };
   };
   mbox-importer = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/mbox-importer-20.08.3.tar.xz";
-      sha256 = "1qh0f93df228cqlcqdwc7g6im3g0gkfmzir3ccsmb5iv0ygvjl6f";
-      name = "mbox-importer-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/mbox-importer-20.12.2.tar.xz";
+      sha256 = "1jiapp7pblanra83p720nj1rzqd566ij28za9jrkn3nj3xv2zm62";
+      name = "mbox-importer-20.12.2.tar.xz";
     };
   };
   messagelib = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/messagelib-20.08.3.tar.xz";
-      sha256 = "16amni6qrq96h8jr313gc7k9frwr20d4pk9y2i61a1xm2w3xsqd4";
-      name = "messagelib-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/messagelib-20.12.2.tar.xz";
+      sha256 = "07mzwsn0bmfsrsn6wlmz7kwrix4d33b007jvx37nckmarr6xcx54";
+      name = "messagelib-20.12.2.tar.xz";
     };
   };
   minuet = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/minuet-20.08.3.tar.xz";
-      sha256 = "1l45g7labnyz0pkwcfhjl5a3ypr7cy3bsshr06ab85364yjwazvi";
-      name = "minuet-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/minuet-20.12.2.tar.xz";
+      sha256 = "00d08qwfa4pvlcysp1af3n91bwb8idkl6gjwxrin3kliwns0ivfj";
+      name = "minuet-20.12.2.tar.xz";
     };
   };
   okular = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/okular-20.08.3.tar.xz";
-      sha256 = "1q59ikcwsfgjc0202daingxv15iarnzba6szdncznzcafd6hhk9z";
-      name = "okular-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/okular-20.12.2.tar.xz";
+      sha256 = "1959flll9rrwsgb3gpifvsciyvl70j46xb0acfx9zrvsddvbpabq";
+      name = "okular-20.12.2.tar.xz";
     };
   };
   palapeli = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/palapeli-20.08.3.tar.xz";
-      sha256 = "107z3izfznrq7g5aqb5a7r8a4ibaia90g334d7wwvd7prm7hdgfp";
-      name = "palapeli-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/palapeli-20.12.2.tar.xz";
+      sha256 = "1z80892gp6hg75vl6aicfvf5013412b5xglrpsp86lbx2r7d6ikw";
+      name = "palapeli-20.12.2.tar.xz";
     };
   };
   parley = {
-    version = "20.08.3";
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/parley-20.12.2.tar.xz";
+      sha256 = "16lymvvwglzvrfl74p7w9l2vahhrkm58fn6iicn5w1751bavjiq7";
+      name = "parley-20.12.2.tar.xz";
+    };
+  };
+  partitionmanager = {
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/parley-20.08.3.tar.xz";
-      sha256 = "0wli09zkk5z50y1gzp5wc9k056xjaadlq97j09lf6lqyg6kb56ya";
-      name = "parley-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/partitionmanager-20.12.2.tar.xz";
+      sha256 = "1f0nmz99fhp6c48sg92fwssxdvmwx2bj4l7phb0gqfnfqk4sw1xd";
+      name = "partitionmanager-20.12.2.tar.xz";
     };
   };
   picmi = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/picmi-20.08.3.tar.xz";
-      sha256 = "1lkpazsi9dyb2y9q5bk56d80x7x035rf4hdap25i8qfj3ilykv3w";
-      name = "picmi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/picmi-20.12.2.tar.xz";
+      sha256 = "024afpylfb6n6dd0g1iif257a0mgzmmmjl24h2riz4cyfvd26mkc";
+      name = "picmi-20.12.2.tar.xz";
     };
   };
   pimcommon = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/pimcommon-20.08.3.tar.xz";
-      sha256 = "0mpl7li2y5xjzk4hdb85d1x7cz15cicd91c1krlw74q7pbrjinlq";
-      name = "pimcommon-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/pimcommon-20.12.2.tar.xz";
+      sha256 = "0fbmahp9m1jzi626rggmp09j3338z8f86hszvwfnk7ydn16hy5rs";
+      name = "pimcommon-20.12.2.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/pim-data-exporter-20.08.3.tar.xz";
-      sha256 = "0f08c16d3730fbdsbrwlr9w5c4l9xcmd1bdbv5m38h5r2ddlkvzr";
-      name = "pim-data-exporter-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/pim-data-exporter-20.12.2.tar.xz";
+      sha256 = "13z8r2rq1453zprvpjnf5y5v3x1828l8gyvbivf0dmfhb3hi1bih";
+      name = "pim-data-exporter-20.12.2.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/pim-sieve-editor-20.08.3.tar.xz";
-      sha256 = "1falzw2a2v912fdzlyljsw9rcy1whrn9ys9ccrskkpvjn8y444x4";
-      name = "pim-sieve-editor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/pim-sieve-editor-20.12.2.tar.xz";
+      sha256 = "11ji1033yq4lwpi2b331i4f5kpak66h6zyviv344wyab05ljkyhd";
+      name = "pim-sieve-editor-20.12.2.tar.xz";
     };
   };
   poxml = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/poxml-20.08.3.tar.xz";
-      sha256 = "0gzg3vbsjrfhs1jg59g7b3gf3b4qajiffkb94njkz8v1f0fadlxp";
-      name = "poxml-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/poxml-20.12.2.tar.xz";
+      sha256 = "1hnm13x102fq7g4pginhdpq473dw9y52kw497773b72my94yj2zz";
+      name = "poxml-20.12.2.tar.xz";
     };
   };
   print-manager = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/print-manager-20.08.3.tar.xz";
-      sha256 = "18nl9gpmzz4g9fqzyvbh858nxz23b2vyi505qacqvcrz13r0l78z";
-      name = "print-manager-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/print-manager-20.12.2.tar.xz";
+      sha256 = "1r19fsgnqdlmrpgbby13nj4v97nqlxlx8c0f7yv3izgncpavr0id";
+      name = "print-manager-20.12.2.tar.xz";
     };
   };
   rocs = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/rocs-20.08.3.tar.xz";
-      sha256 = "0bd9x7kh2s4z79ff9byd3ly7k040c574zwrrgi8sq21yd531hxhj";
-      name = "rocs-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/rocs-20.12.2.tar.xz";
+      sha256 = "06sy6g32cigls1znvh5wvs7gw9h492d8zjqm6b50wsw0hbx61kvz";
+      name = "rocs-20.12.2.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/signon-kwallet-extension-20.08.3.tar.xz";
-      sha256 = "1s0syq9aw2q34k1wxrpjqqi12xay1h0vc4s2d8l184hzzg8qq71i";
-      name = "signon-kwallet-extension-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/signon-kwallet-extension-20.12.2.tar.xz";
+      sha256 = "0ycr0dn8bp51dc510gqxik0rm0wk5728px7cps9csy33izfjpx9p";
+      name = "signon-kwallet-extension-20.12.2.tar.xz";
     };
   };
   spectacle = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/spectacle-20.08.3.tar.xz";
-      sha256 = "16dwbsk9hik7gmz9s4x78hibz4x9d1fpx8x2i2giry5hwzknfcw4";
-      name = "spectacle-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/spectacle-20.12.2.tar.xz";
+      sha256 = "0v0vzspr0vwqi7m7yhnhavxzkfqdnz1g06ispfl1lmpjg1xh90by";
+      name = "spectacle-20.12.2.tar.xz";
     };
   };
   step = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/step-20.08.3.tar.xz";
-      sha256 = "05ljsmgpra1az64yddy8idi46cv3afaf2v4n7d5j81a8vvlz7fj1";
-      name = "step-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/step-20.12.2.tar.xz";
+      sha256 = "1drdv95rimdsgarcc00jlfm3jmcan2ln32yq0q2nbbxsj0c502k7";
+      name = "step-20.12.2.tar.xz";
     };
   };
   svgpart = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/svgpart-20.08.3.tar.xz";
-      sha256 = "0wwq576dblqmfknr0qs8kskw7nar6hah95fqicdn97xdy4nvzhc6";
-      name = "svgpart-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/svgpart-20.12.2.tar.xz";
+      sha256 = "1v1qd5sgb89gkvb62jad8ava2y599a4acb6hkqyh758y798ylgwj";
+      name = "svgpart-20.12.2.tar.xz";
     };
   };
   sweeper = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/sweeper-20.08.3.tar.xz";
-      sha256 = "0i4zvbljdzkj47vh8kizam7vsc9k7mvf8dqd2j6ixr4p0cqvw5a8";
-      name = "sweeper-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/sweeper-20.12.2.tar.xz";
+      sha256 = "0yh6dqw37v8l54635k7g27dnsrl319kfxrkiiy09cx6pjzf87k1h";
+      name = "sweeper-20.12.2.tar.xz";
     };
   };
   umbrello = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/umbrello-20.08.3.tar.xz";
-      sha256 = "1hh5gyggb4f3pjip8dfvx00hi83gj65c92jgzkzahj7p35mkplgl";
-      name = "umbrello-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/umbrello-20.12.2.tar.xz";
+      sha256 = "0zzic469brh0w41w4ni66mfrj0p44xm1h32iwbb7imgnpw6dqksf";
+      name = "umbrello-20.12.2.tar.xz";
     };
   };
   yakuake = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/yakuake-20.08.3.tar.xz";
-      sha256 = "05zd2xm5vgrgz0bxbkh1mpiknlqzpzk5jb74lnd5x7wn5b80ngv0";
-      name = "yakuake-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/yakuake-20.12.2.tar.xz";
+      sha256 = "16irzxl6xfyanr7lrvap0ng911lml10bbjr0axk2a7m0gc1llrn4";
+      name = "yakuake-20.12.2.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/zeroconf-ioslave-20.08.3.tar.xz";
-      sha256 = "1afga0liiy9n98kb0gmxzbb6ckhdgbrdc4ig1x9pwp98wr1fzmcg";
-      name = "zeroconf-ioslave-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/zeroconf-ioslave-20.12.2.tar.xz";
+      sha256 = "0yqni8vwwwya3cv006cf5svs1jhn6369clvrl6m79iacy0iirynk";
+      name = "zeroconf-ioslave-20.12.2.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/1password-gui/default.nix b/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
index 709d16672098..0b3e21cc03a0 100644
--- a/nixpkgs/pkgs/tools/security/1password-gui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "1password";
-  version = "0.9.12-3";
+  version = "8.0.30";
 
   src = fetchurl {
     url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
-    hash = "sha256-IK4BuZKM2U8vz7m8waJhoh3tQ539wGLcIDNiYGUou24=";
+    hash = "sha256-j+fp/f8nta+OOuOFU4mmUrGYlVmAqdaXO4rLJ0in+m8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/security/1password-gui/update.sh b/nixpkgs/pkgs/applications/misc/1password-gui/update.sh
index 7703aba99847..7703aba99847 100755
--- a/nixpkgs/pkgs/tools/security/1password-gui/update.sh
+++ b/nixpkgs/pkgs/applications/misc/1password-gui/update.sh
diff --git a/nixpkgs/pkgs/applications/misc/9menu/default.nix b/nixpkgs/pkgs/applications/misc/9menu/default.nix
new file mode 100644
index 000000000000..8e6b7b3bcbec
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/9menu/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, meson
+, ninja
+, libX11
+, libXext
+}:
+
+stdenv.mkDerivation rec {
+  pname = "9menu";
+  version = "unstable-2021-02-24";
+
+  src = fetchFromGitHub {
+    owner = "arnoldrobbins";
+    repo = pname;
+    rev = "00cbf99c48dc580ca28f81ed66c89a98b7a182c8";
+    sha256 = "arca8Gbr4ytiCk43cifmNj7SUrDgn1XB26zAhZrVDs0=";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja ];
+  buildInputs = [ libX11 libXext ];
+
+  meta = with lib; {
+    homepage = "https://github.com/arnoldrobbins/9menu";
+    description = "Simple X11 menu program for running commands";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = libX11.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/almanah/default.nix b/nixpkgs/pkgs/applications/misc/almanah/default.nix
index b8029b6229d2..eb5dc8950f90 100644
--- a/nixpkgs/pkgs/applications/misc/almanah/default.nix
+++ b/nixpkgs/pkgs/applications/misc/almanah/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "almanah";
-  version = "0.12.2";
+  version = "0.12.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "IWYOnOu0C9uQ9k1dgWkJ6Kv+o/jY+6Llfsi4PusHE24=";
+    sha256 = "lMpDQOxlGljP66APR49aPbTZnfrGakbQ2ZcFvmiPMFo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/ape/default.nix b/nixpkgs/pkgs/applications/misc/ape/default.nix
index f16d6e157332..c359d606a859 100644
--- a/nixpkgs/pkgs/applications/misc/ape/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ape/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
   inherit pname;
   version = "2019-08-10";
 
-  buildInputs = [ swiProlog makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ swiProlog ];
 
   src = fetchFromGitHub {
      owner = "Attempto";
diff --git a/nixpkgs/pkgs/applications/misc/archivy/default.nix b/nixpkgs/pkgs/applications/misc/archivy/default.nix
index c670a4b367d9..70b3c71c0b39 100644
--- a/nixpkgs/pkgs/applications/misc/archivy/default.nix
+++ b/nixpkgs/pkgs/applications/misc/archivy/default.nix
@@ -1,15 +1,15 @@
-{ lib, python3, fetchPypi, appdirs, attrs, requests,
-beautifulsoup4, click-plugins, elasticsearch, flask_login, flask_wtf,
-pypandoc, python-dotenv, python-frontmatter, tinydb, validators,
-watchdog, wtforms, html2text, flask-compress }:
+{ lib, buildPythonApplication, fetchPypi, appdirs, attrs
+, beautifulsoup4, click-plugins, elasticsearch, flask-compress
+, flask_login, flask_wtf, html2text, python-dotenv, python-frontmatter
+, requests, tinydb, validators, werkzeug, wtforms }:
 
-python3.pkgs.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "archivy";
-  version = "1.0.0";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "FDyUfahjv4zqOVFr0nRhcgxr7mskFP1W/PlhZWx/6E8=";
+    sha256 = "sha256-yUXsTPb5oJYZA9MlHz7eLowRjD/ltq5VLTHeOMqcL/M=";
   };
 
   # Relax some dependencies
@@ -30,18 +30,17 @@ python3.pkgs.buildPythonApplication rec {
     beautifulsoup4
     click-plugins
     elasticsearch
+    flask-compress
     flask_login
     flask_wtf
-    pypandoc
+    html2text
     python-dotenv
     python-frontmatter
-    tinydb
     requests
+    tinydb
     validators
-    watchdog
+    werkzeug
     wtforms
-    html2text
-    flask-compress
   ];
 
   # __init__.py attempts to mkdir in read-only file system
diff --git a/nixpkgs/pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch b/nixpkgs/pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch
new file mode 100644
index 000000000000..6aacbcc65bcb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch
@@ -0,0 +1,24 @@
+From e7446c9bcb47674c9d0ee3b5bab129e9b86eb1c9 Mon Sep 17 00:00:00 2001
+From: Walter Franzini <walter.franzini@gmail.com>
+Date: Fri, 7 Jun 2019 17:57:11 +0200
+Subject: [PATCH] musl does not support rewind pipe, make it build anyway
+
+---
+ src/formats.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/formats.c b/src/formats.c
+index f3efe764..477bf451 100644
+--- a/src/formats.c
++++ b/src/formats.c
+@@ -424,7 +424,6 @@ static void UNUSED rewind_pipe(FILE * fp)
+   /* To fix this #error, either simply remove the #error line and live without
+    * file-type detection with pipes, or add support for your compiler in the
+    * lines above.  Test with cat monkey.wav | ./sox --info - */
+-  #error FIX NEEDED HERE
+   #define NO_REWIND_PIPE
+   (void)fp;
+ #endif
+-- 
+2.19.2
+
diff --git a/nixpkgs/pkgs/applications/misc/audio/sox/default.nix b/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
index dd5dbde52868..946150d2b881 100644
--- a/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
+++ b/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
@@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
   # configure.ac uses pkg-config only to locate libopusfile
   nativeBuildInputs = optional enableOpusfile pkg-config;
 
+  patches = [ ./0001-musl-rewind-pipe-workaround.patch ];
+
   buildInputs =
     optional (enableAlsa && stdenv.isLinux) alsaLib ++
     optional enableLibao libao ++
diff --git a/nixpkgs/pkgs/applications/misc/audio/soxr/arm64-check.patch b/nixpkgs/pkgs/applications/misc/audio/soxr/arm64-check.patch
new file mode 100644
index 000000000000..ac16a214c3aa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/audio/soxr/arm64-check.patch
@@ -0,0 +1,79 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Misty De Meo <mistydemeo@gmail.com>
+Date: Tue, 15 Sep 2020 16:57:26 -0700
+Subject: [PATCH] Check for __arm64__, not just __arm__
+
+On at least one 64-bit ARM processor I've tested (Apple Silicon on macOS),
+__arm__ isn't defined but __arm64__ is. As a result, some of the
+ARM-specific macros are missing and calls to them fail.
+---
+ src/cr-core.c    | 2 +-
+ src/dev32s.h     | 2 +-
+ src/pffft-wrap.c | 2 +-
+ src/pffft.c      | 4 ++--
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/cr-core.c b/src/cr-core.c
+index 159a5d9..fe5ea8a 100644
+--- a/src/cr-core.c
++++ b/src/cr-core.c
+@@ -80,7 +80,7 @@ static void cubic_stage_fn(stage_t * p, fifo_t * output_fifo)
+   #define DEFINED_X86 0
+ #endif
+ 
+-#if defined __arm__
++#if defined(__arm__) || defined(__arm64__)
+   #define DEFINED_ARM 1
+ #else
+   #define DEFINED_ARM 0
+diff --git a/src/dev32s.h b/src/dev32s.h
+index 7edae86..a14d7ad 100644
+--- a/src/dev32s.h
++++ b/src/dev32s.h
+@@ -31,7 +31,7 @@ SIMD_INLINE(void) vStorSum(float * a, v4_t b) {
+   v4_t t = vAdd(_mm_movehl_ps(b, b), b);
+   _mm_store_ss(a, vAdd(t, _mm_shuffle_ps(t,t,1)));}
+ 
+-#elif defined __arm__
++#elif defined(__arm__) || defined(__arm64__)
+ 
+ #include <arm_neon.h>
+ 
+diff --git a/src/pffft-wrap.c b/src/pffft-wrap.c
+index c920f06..1641fc4 100644
+--- a/src/pffft-wrap.c
++++ b/src/pffft-wrap.c
+@@ -40,7 +40,7 @@ static void pffft_zconvolve(PFFFT_Setup *s, const float *a, const float *b, floa
+ 
+   float ar, ai, br, bi;
+ 
+-#ifdef __arm__
++#if defined(__arm__) || defined(__arm64__)
+   __builtin_prefetch(va);
+   __builtin_prefetch(vb);
+   __builtin_prefetch(va+2);
+diff --git a/src/pffft.c b/src/pffft.c
+index 46c841e..8c775a9 100644
+--- a/src/pffft.c
++++ b/src/pffft.c
+@@ -157,7 +157,7 @@ typedef __m128 v4sf;
+ /*
+   ARM NEON support macros
+ */
+-#elif !defined(PFFFT_SIMD_DISABLE) && defined(__arm__)
++#elif !defined(PFFFT_SIMD_DISABLE) && (defined(__arm__) || defined(__arm64__))
+ #  include <arm_neon.h>
+ typedef float32x4_t v4sf;
+ #  define SIMD_SZ 4
+@@ -1732,7 +1732,7 @@ void pffft_zconvolve_accumulate(PFFFT_Setup *s, const float *a, const float *b,
+   const v4sf * RESTRICT vb = (const v4sf*)b;
+   v4sf * RESTRICT vab = (v4sf*)ab;
+ 
+-#ifdef __arm__
++#if defined(__arm__) || defined(__arm64__)
+   __builtin_prefetch(va);
+   __builtin_prefetch(vb);
+   __builtin_prefetch(vab);
+-- 
+2.30.1
+
diff --git a/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix b/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix
index 3f3ed0a0b156..8460b4856dcc 100644
--- a/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix
+++ b/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix
@@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
     sha256 = "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di";
   };
 
+  patches = [
+    # Remove once https://sourceforge.net/p/soxr/code/merge-requests/5/ is merged.
+    ./arm64-check.patch
+  ];
+
   outputs = [ "out" "doc" ]; # headers are just two and very small
 
   preConfigure = if stdenv.isDarwin then ''
diff --git a/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix b/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
index 6e276d592b0e..b7e738cfc125 100644
--- a/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation {
     sha256 = "1yx9s1j47cq0v40cwq2gn7bdizpw46l95ba4zl9z4gg31mfvm807";
   };
 
-  buildInputs = [ snack tcl tk makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ snack tcl tk ];
 
   installPhase = ''
     mkdir -p $out/{bin,nix-support,share/wavesurfer/}
diff --git a/nixpkgs/pkgs/applications/misc/authy/default.nix b/nixpkgs/pkgs/applications/misc/authy/default.nix
new file mode 100644
index 000000000000..65200d851770
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/authy/default.nix
@@ -0,0 +1,110 @@
+{ alsaLib, at-spi2-atk, at-spi2-core, atk, autoPatchelfHook, cairo, cups
+, dbus, electron_9, expat, fetchurl, gdk-pixbuf, glib, gtk3, lib
+, libappindicator-gtk3, libdbusmenu-gtk3, libuuid, makeWrapper
+, nspr, nss, pango, squashfsTools, stdenv, systemd, xorg
+}:
+
+let
+  # Currently only works with electron 9
+  electron = electron_9;
+in
+
+stdenv.mkDerivation rec {
+  pname = "authy";
+  version = "1.8.3";
+  rev = "5";
+
+  buildInputs = [
+    alsaLib
+    at-spi2-atk
+    at-spi2-core
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    gdk-pixbuf
+    glib
+    gtk3
+    libappindicator-gtk3
+    libdbusmenu-gtk3
+    libuuid
+    nspr
+    nss
+    pango
+    stdenv.cc.cc
+    systemd
+    xorg.libX11
+    xorg.libXScrnSaver
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXtst
+    xorg.libxcb
+  ];
+
+  src = fetchurl {
+    url = "https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_${rev}.snap";
+    sha256 = "1yfvkmy34mc1dan9am11yka88jv7a4dslsszy4kcc8vap4cjmgpn";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper squashfsTools ];
+
+  unpackPhase = ''
+    runHook preUnpack
+    unsquashfs "$src"
+    cd squashfs-root
+    if ! grep -q '${version}' meta/snap.yaml; then
+      echo "Package version differs from version found in snap metadata:"
+      grep 'version: ' meta/snap.yaml
+      echo "While the nix package specifies: ${version}."
+      echo "You probably chose the wrong revision or forgot to update the nix version."
+      exit 1
+    fi
+    runHook postUnpack
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/
+
+    cp -r ./* $out/
+    rm -R ./*
+
+    # The snap package has the `ffmpeg.so` file which is copied over with other .so files
+    mv $out/*.so $out/lib/
+
+    # Replace icon name in Desktop file
+    sed -i 's|''${SNAP}/meta/gui/icon.png|authy|g' "$out/meta/gui/authy.desktop"
+
+    # Move the desktop file, icon, binary to their appropriate locations
+    mkdir -p $out/bin $out/share/applications $out/share/pixmaps/apps
+    cp $out/meta/gui/authy.desktop $out/share/applications/
+    cp $out/meta/gui/icon.png $out/share/pixmaps/authy.png
+    cp $out/${pname} $out/bin/${pname}
+
+    # Cleanup
+    rm -r $out/{data-dir,gnome-platform,meta,scripts,usr,*.sh,*.so}
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+      --add-flags $out/resources/app.asar
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.authy.com";
+    description = "Twilio Authy two factor authentication desktop application";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ iammrinal0 ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/avrdudess/default.nix b/nixpkgs/pkgs/applications/misc/avrdudess/default.nix
index 29469d9fff91..14b372d91e59 100644
--- a/nixpkgs/pkgs/applications/misc/avrdudess/default.nix
+++ b/nixpkgs/pkgs/applications/misc/avrdudess/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "18llpvjsfhypzijrvfbzmcg3g141f307mzsrg11wcdxh9syxqak6";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   phases = [ "buildPhase" ];
 
diff --git a/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix b/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix
index 9472af7a16fe..56894a29a662 100644
--- a/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix
@@ -12,7 +12,7 @@
 , at-spi2-atk
 , gnutar
 , atomEnv
-, kerberos
+, libkrb5
 }:
 
 # from justinwoo/azuredatastudio-nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
         at-spi2-core
         at-spi2-atk
         stdenv.cc.cc.lib
-        kerberos
+        libkrb5
       ]
     )
     targetPath
diff --git a/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix b/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix
index 4a023849f390..cec4e8dd8c91 100644
--- a/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
-, curl, python, bind, iproute, bc, gitMinimal }:
+, curl, python3, bind, iproute2, bc, gitMinimal }:
 let
   version = "1.23.0";
   deps = lib.makeBinPath [
     curl
-    python
+    python3
     bind.dnsutils
-    iproute
+    iproute2
     bc
     gitMinimal
   ];
@@ -22,13 +22,15 @@ stdenv.mkDerivation {
     sha256 = "044nxgd3ic2qr6hgq5nymn3dyf5i4s8mv5z4az6jvwlrjnvbg8cp";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
-  patchPhase = ''
+  postPatch = ''
     patchShebangs install.sh
     substituteInPlace install.sh --replace /usr/local "$out"
   '';
 
+  strictDeps = true;
+
   dontBuild = true;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/bemenu/default.nix b/nixpkgs/pkgs/applications/misc/bemenu/default.nix
index 8de0ceeae654..42c0f7d05fd8 100644
--- a/nixpkgs/pkgs/applications/misc/bemenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bemenu/default.nix
@@ -2,12 +2,12 @@
 , pango, fribidi, harfbuzz, pcre, pkg-config
 , ncursesSupport ? true, ncurses ? null
 , waylandSupport ? true, wayland ? null, wayland-protocols ? null
-, x11Support ? true, xlibs ? null, xorg ? null
+, x11Support ? true, xorg ? null
 }:
 
 assert ncursesSupport -> ncurses != null;
 assert waylandSupport -> ! lib.elem null [wayland wayland-protocols];
-assert x11Support -> xlibs != null && xorg != null;
+assert x11Support -> xorg != null;
 
 stdenv.mkDerivation rec {
   pname = "bemenu";
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   ] ++ optional ncursesSupport ncurses
     ++ optionals waylandSupport [ wayland wayland-protocols ]
     ++ optionals x11Support [
-      xlibs.libX11 xlibs.libXinerama xlibs.libXft
+      xorg.libX11 xorg.libXinerama xorg.libXft
       xorg.libXdmcp xorg.libpthreadstubs xorg.libxcb
     ];
 
diff --git a/nixpkgs/pkgs/applications/misc/birdtray/default.nix b/nixpkgs/pkgs/applications/misc/birdtray/default.nix
index ce8db160a755..f007fb71377b 100644
--- a/nixpkgs/pkgs/applications/misc/birdtray/default.nix
+++ b/nixpkgs/pkgs/applications/misc/birdtray/default.nix
@@ -36,11 +36,15 @@ mkDerivation rec {
       --subst-var-by qttranslations ${qttranslations}
   '';
 
+  # Wayland support is broken.
+  # https://github.com/gyunaev/birdtray/issues/113#issuecomment-621742315
+  qtWrapperArgs = [ "--set QT_QPA_PLATFORM xcb" ];
+
   meta = with lib; {
     description = "Mail system tray notification icon for Thunderbird";
     homepage = "https://github.com/gyunaev/birdtray";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ Flakebi ];
+    maintainers = with maintainers; [ Flakebi oxalica ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/blender/darwin.patch b/nixpkgs/pkgs/applications/misc/blender/darwin.patch
index bfbfb5e48e02..da2d6fa4a3d7 100644
--- a/nixpkgs/pkgs/applications/misc/blender/darwin.patch
+++ b/nixpkgs/pkgs/applications/misc/blender/darwin.patch
@@ -1,15 +1,16 @@
-diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
+diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
+index 31da529..90308aa 100644
 --- a/build_files/cmake/platform/platform_apple.cmake
 +++ b/build_files/cmake/platform/platform_apple.cmake
-@@ -80,7 +80,6 @@ else()
+@@ -77,7 +77,6 @@ else()
    message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
  endif()
  if(NOT EXISTS "${LIBDIR}/")
 -  message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
  endif()
  
- # -------------------------------------------------------------------------
-@@ -112,10 +111,6 @@ if(WITH_CODEC_SNDFILE)
+ # Prefer lib directory paths
+@@ -113,10 +112,6 @@ if(WITH_CODEC_SNDFILE)
    find_library(_sndfile_VORBIS_LIBRARY NAMES vorbis HINTS ${LIBDIR}/ffmpeg/lib)
    find_library(_sndfile_VORBISENC_LIBRARY NAMES vorbisenc HINTS ${LIBDIR}/ffmpeg/lib)
    list(APPEND LIBSNDFILE_LIBRARIES
@@ -20,7 +21,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
    )
  
    print_found_status("SndFile libraries" "${LIBSNDFILE_LIBRARIES}")
-@@ -132,7 +127,7 @@ if(WITH_PYTHON)
+@@ -133,7 +128,7 @@ if(WITH_PYTHON)
      # normally cached but not since we include them with blender
      set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
      set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
@@ -29,7 +30,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
      set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
      # set(PYTHON_LINKFLAGS "-u _PyMac_Error")  # won't  build with this enabled
    else()
-@@ -173,9 +168,7 @@ endif()
+@@ -174,9 +169,7 @@ endif()
  if(WITH_CODEC_FFMPEG)
    set(FFMPEG_FIND_COMPONENTS
      avcodec avdevice avformat avutil
@@ -40,20 +41,20 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
    find_package(FFmpeg)
  endif()
  
-@@ -266,7 +259,6 @@ if(WITH_BOOST)
+@@ -267,7 +260,6 @@ if(WITH_BOOST)
  endif()
  
  if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
--  set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it !
+-  string(APPEND PLATFORM_LINKFLAGS " -liconv") # boost_locale and ffmpeg needs it !
  endif()
  
- if(WITH_OPENIMAGEIO)
-@@ -439,7 +431,7 @@ else()
+ if(WITH_PUGIXML)
+@@ -451,7 +443,7 @@ else()
    set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic")
  endif()
  
 -if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
 +if(FALSE)
    # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
-   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
+   string(APPEND CMAKE_CXX_FLAGS " -ftemplate-depth=1024")
  endif()
diff --git a/nixpkgs/pkgs/applications/misc/blender/default.nix b/nixpkgs/pkgs/applications/misc/blender/default.nix
index 9921fdc7a797..451cc9a33f37 100644
--- a/nixpkgs/pkgs/applications/misc/blender/default.nix
+++ b/nixpkgs/pkgs/applications/misc/blender/default.nix
@@ -7,8 +7,11 @@
 , jackaudioSupport ? false, libjack2
 , cudaSupport ? config.cudaSupport or false, cudatoolkit
 , colladaSupport ? true, opencollada
+, spaceNavSupport ? stdenv.isLinux, libspnav
 , makeWrapper
 , pugixml, llvmPackages, SDL, Cocoa, CoreGraphics, ForceFeedback, OpenAL, OpenGL
+, potrace
+, openxr-loader
 , embree, gmp
 }:
 
@@ -23,16 +26,16 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "blender";
-  version = "2.91.0";
+  version = "2.92.0";
 
   src = fetchurl {
     url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
-    sha256 = "0x396lgmk0dq9115yrc36s8zwxzmjr490sr5n2y6w27y17yllyjm";
+    sha256 = "15a5vffn18a920286x0avbc2rap56k6y531wgibq68r90g2cz4g7";
   };
 
   patches = lib.optional stdenv.isDarwin ./darwin.patch;
 
-  nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
+  nativeBuildInputs = [ cmake makeWrapper ] ++ optional cudaSupport addOpenGLRunpath;
   buildInputs =
     [ boost ffmpeg gettext glew ilmbase
       freetype libjpeg libpng libsamplerate libsndfile libtiff
@@ -40,23 +43,26 @@ stdenv.mkDerivation rec {
       alembic
       (opensubdiv.override { inherit cudaSupport; })
       tbb
-      makeWrapper
       embree
       gmp
+      pugixml
+      potrace
     ]
     ++ (if (!stdenv.isDarwin) then [
       libXi libX11 libXext libXrender
       libGLU libGL openal
       libXxf86vm
+      openxr-loader
       # OpenVDB currently doesn't build on darwin
       openvdb
     ]
     else [
-      pugixml llvmPackages.openmp SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
+      llvmPackages.openmp SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
     ])
     ++ optional jackaudioSupport libjack2
     ++ optional cudaSupport cudatoolkit
-    ++ optional colladaSupport opencollada;
+    ++ optional colladaSupport opencollada
+    ++ optional spaceNavSupport libspnav;
 
   postPatch = ''
     # allow usage of dynamically linked embree
@@ -102,6 +108,7 @@ stdenv.mkDerivation rec {
       "-DWITH_PYTHON_INSTALL=OFF"
       "-DWITH_PYTHON_INSTALL_NUMPY=OFF"
       "-DPYTHON_NUMPY_PATH=${python3Packages.numpy}/${python.sitePackages}"
+      "-DPYTHON_NUMPY_INCLUDE_DIRS=${python3Packages.numpy}/${python.sitePackages}/numpy/core/include"
       "-DWITH_OPENVDB=ON"
       "-DWITH_TBB=ON"
       "-DWITH_IMAGE_OPENJPEG=ON"
diff --git a/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix b/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix
new file mode 100644
index 000000000000..c0c76b4ef49d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, makeWrapper, ghcWithPackages, packages ? (_:[]) }:
+let
+  blucontrolEnv = ghcWithPackages (self: [ self.blucontrol ] ++ packages self);
+in
+  stdenv.mkDerivation {
+    pname = "blucontrol-with-packages";
+    version = blucontrolEnv.version;
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    buildCommand = ''
+      makeWrapper ${blucontrolEnv}/bin/blucontrol $out/bin/blucontrol \
+        --prefix PATH : ${lib.makeBinPath [ blucontrolEnv ]}
+    '';
+
+    # trivial derivation
+    preferLocalBuild = true;
+    allowSubstitues = false;
+
+    meta = with lib; {
+      description = "Configurable blue light filter";
+      longDescription = ''
+        This application is a blue light filter, with the main focus on configurability.
+        Configuration is done in Haskell in the style of xmonad.
+        Blucontrol makes use of monad transformers and allows monadic calculation of gamma values and recoloring. The user chooses, what will be captured in the monadic state.
+      '';
+      license = licenses.bsd3;
+      homepage = "https://github.com/jumper149/blucontrol";
+      platforms = platforms.unix;
+      maintainers = with maintainers; [ jumper149 ];
+    };
+  }
diff --git a/nixpkgs/pkgs/applications/misc/bottles/default.nix b/nixpkgs/pkgs/applications/misc/bottles/default.nix
new file mode 100644
index 000000000000..5c6e9a0f9fef
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/bottles/default.nix
@@ -0,0 +1,77 @@
+{ lib, fetchFromGitHub
+, meson, ninja, pkg-config, wrapGAppsHook
+, desktop-file-utils, gsettings-desktop-schemas, libnotify
+, python3Packages, gettext
+, appstream-glib, gdk-pixbuf, glib, gobject-introspection, gspell, gtk3
+, steam-run-native
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "bottles";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = "bottlesdevs";
+    repo = pname;
+    rev = version;
+    sha256 = "1hbjnd06h0h47gcwb1s1b9py5nwmia1m35da6zydbl70vs75imhn";
+  };
+
+  postPatch = ''
+    chmod +x build-aux/meson/postinstall.py
+    patchShebangs build-aux/meson/postinstall.py
+  '';
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+    gettext
+    appstream-glib
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    glib
+    gobject-introspection
+    gsettings-desktop-schemas
+    gspell
+    gtk3
+    libnotify
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pycairo
+    pygobject3
+    lxml
+    dbus-python
+    gst-python
+    liblarch
+  ] ++ [ steam-run-native ];
+
+  format = "other";
+  strictDeps = false; # broken with gobject-introspection setup hook, see https://github.com/NixOS/nixpkgs/issues/56943
+  dontWrapGApps = true; # prevent double wrapping
+
+  preConfigure = ''
+    substituteInPlace build-aux/meson/postinstall.py \
+      --replace "'update-desktop-database'" "'${desktop-file-utils}/bin/update-desktop-database'"
+    substituteInPlace src/runner.py \
+      --replace " {runner}" " ${steam-run-native}/bin/steam-run {runner}" \
+      --replace " {dxvk_setup}" " ${steam-run-native}/bin/steam-run {dxvk_setup}"
+  '';
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = with lib; {
+    description = "An easy-to-use wineprefix manager";
+    homepage = "https://github.com/bottlesdevs/Bottles";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ bloomvdomino ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/caerbannog/default.nix b/nixpkgs/pkgs/applications/misc/caerbannog/default.nix
new file mode 100644
index 000000000000..6f4558b868fa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/caerbannog/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, fetchFromSourcehut
+, python3
+, glib
+, gobject-introspection
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+, atk
+, libhandy
+, libnotify
+, pango
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "caerbannog";
+  version = "0.3";
+  format = "other";
+
+  src = fetchFromSourcehut {
+    owner = "~craftyguy";
+    repo = "caerbannog";
+    rev = version;
+    sha256 = "0wqkb9zcllxm3fdsr5lphknkzy8r1cr80f84q200hbi99qql1dxh";
+  };
+
+  nativeBuildInputs = [
+    glib
+    gobject-introspection
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    atk
+    gobject-introspection
+    libhandy
+    libnotify
+    pango
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    anytree
+    fuzzyfinder
+    gpgme
+    pygobject3
+  ];
+
+  meta = with lib; {
+    description = "Mobile-friendly Gtk frontend for password-store";
+    homepage = "https://sr.ht/~craftyguy/caerbannog/";
+    changelog = "https://git.sr.ht/~craftyguy/caerbannog/refs/${version}";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/calibre/default.nix b/nixpkgs/pkgs/applications/misc/calibre/default.nix
index 7917975f4f28..f7e984620413 100644
--- a/nixpkgs/pkgs/applications/misc/calibre/default.nix
+++ b/nixpkgs/pkgs/applications/misc/calibre/default.nix
@@ -21,27 +21,25 @@
 , libusb1
 , libmtp
 , xdg-utils
-, makeDesktopItem
 , removeReferencesTo
 }:
 
 mkDerivation rec {
   pname = "calibre";
-  version = "5.10.1";
+  version = "5.13.0";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
-    sha256 = "18pnqxdyvgmw12yarxhvsgs4jk6c5hp05gf8khybcd78330954v9";
+    sha256 = "sha256-GDFAZxZmkio7e7kVjhYqhNdhXIlUPJF0iMWVl0uWVCM=";
   };
 
   patches = [
-    # Patches from Debian that:
-    # - disable plugin installation (very insecure)
+    # Plugin installation (very insecure) disabled (from Debian)
     ./disable_plugins.patch
-    # - switches the version update from enabled to disabled by default
+    # Automatic version update disabled by default (from Debian)
     ./no_updates_dialog.patch
-    # the unrar patch is not from debian
-  ] ++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
+  ]
+  ++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
 
   escaped_pyqt5_dir = builtins.replaceStrings ["/"] ["\\/"] (toString python3Packages.pyqt5);
   platform_tag =
@@ -59,8 +57,7 @@ mkDerivation rec {
       setup/build.py
 
     # Remove unneeded files and libs
-    rm -rf resources/calibre-portable.* \
-           src/odf
+    rm -rf src/odf resources/calibre-portable.*
   '';
 
   dontUseQmakeConfigure = true;
@@ -89,6 +86,7 @@ mkDerivation rec {
     with python3Packages; [
       apsw
       beautifulsoup4
+      cchardet
       css-parser
       cssselect
       dateutil
@@ -173,11 +171,16 @@ mkDerivation rec {
   disallowedReferences = [ podofo.dev ];
 
   meta = with lib; {
-    description = "Comprehensive e-book software";
     homepage = "https://calibre-ebook.com";
-    license = with licenses; if unrarSupport then unfreeRedistributable else gpl3;
-    maintainers = with maintainers; [ domenkozar pSub AndersonTorres ];
+    description = "Comprehensive e-book software";
+    longDescription = ''
+      calibre is a powerful and easy to use e-book manager. Users say it’s
+      outstanding and a must-have. It’ll allow you to do nearly everything and
+      it takes things a step beyond normal e-book software. It’s also completely
+      free and open source and great for both casual users and computer experts.
+    '';
+    license = with licenses; if unrarSupport then unfreeRedistributable else gpl3Plus;
+    maintainers = with maintainers; [ pSub AndersonTorres ];
     platforms = platforms.linux;
-    inherit version;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/cataract/build.nix b/nixpkgs/pkgs/applications/misc/cataract/build.nix
index f894dc91bd8a..0adab84830d2 100644
--- a/nixpkgs/pkgs/applications/misc/cataract/build.nix
+++ b/nixpkgs/pkgs/applications/misc/cataract/build.nix
@@ -5,7 +5,7 @@
 , pkg-config
 , libxml2
 , exiv2
-, imagemagick
+, imagemagick6
 , version
 , sha256
 , rev }:
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ glib libxml2 exiv2 imagemagick ];
+  buildInputs = [ glib libxml2 exiv2 imagemagick6 ];
 
   prePatch = ''
     sed -i 's|#include <exiv2/exif.hpp>|#include <exiv2/exiv2.hpp>|' src/jpeg-utils.cpp
diff --git a/nixpkgs/pkgs/applications/misc/cherrytree/default.nix b/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
index c74ac5ffb306..0ce89afa6cea 100644
--- a/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, pythonPackages, gettext }:
+{ lib, fetchFromGitHub, python2Packages, gettext }:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   pname = "cherrytree";
   version = "0.39.4";
 
@@ -14,7 +14,7 @@ pythonPackages.buildPythonApplication rec {
 
   nativeBuildInputs = [ gettext ];
 
-  propagatedBuildInputs = with pythonPackages; [ pygtk dbus-python pygtksourceview ];
+  propagatedBuildInputs = with python2Packages; [ pygtk dbus-python pygtksourceview ];
 
   patches = [ ./subprocess.patch ];
 
diff --git a/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix b/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix
index 74dd82a3c6e5..524f89855370 100644
--- a/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix
@@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
     sed '1i#include <cmath>' -i src/Transformer/SpectrumCircleTransformer.cpp
   '';
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake makeWrapper ];
 
-  buildInputs = [ fftw ncurses5 libpulseaudio makeWrapper ];
+  buildInputs = [ fftw ncurses5 libpulseaudio ];
 
   buildFlags = [ "ENABLE_PULSE=1" ];
 
diff --git a/nixpkgs/pkgs/applications/misc/clight/clightd.nix b/nixpkgs/pkgs/applications/misc/clight/clightd.nix
index 547e7e0b6da9..192cddc2e172 100644
--- a/nixpkgs/pkgs/applications/misc/clight/clightd.nix
+++ b/nixpkgs/pkgs/applications/misc/clight/clightd.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , dbus, cmake, pkg-config
 , glib, udev, polkit, libusb1, libjpeg, libmodule
 , pcre, libXdmcp, util-linux, libpthreadstubs
@@ -9,42 +9,34 @@
 
 stdenv.mkDerivation rec {
   pname = "clightd";
-  version = "5.1";
+  version = "5.3";
 
   src = fetchFromGitHub {
     owner = "FedeDP";
     repo = "Clightd";
     rev = version;
-    sha256 = "sha256-BEGum0t+FrCTAEQwTsWeYpoIqimTAz+Bv/ZQPQ3fePY=";
+    sha256 = "sha256-CuTYCNZ9oiDsm5mUDmjbxkmAl61PEXv3WMrZRzgdZeE=";
   };
 
-  patches = [
-    # Not needed by next version bump
-    (fetchpatch {
-      url = "https://github.com/FedeDP/Clightd/commit/a52a2888e3798c572dad359a017cb0d40e7c5fb7.patch";
-      sha256 = "sha256-nUzNBia1EvBQxinAfjyKbuldBoHLY1hfMaxgG2lKQWg=";
-    })
-  ];
-
   # dbus-1.pc has datadir=/etc
   SYSTEM_BUS_DIR = "${placeholder "out"}/share/dbus-1/system-services";
-  # systemd.pc has prefix=${systemd.out}
-  MODULE_LOAD_DIR = "${placeholder "out"}/lib/modules-load.d";
   # polkit-gobject-1.pc has prefix=${polkit.out}
   POLKIT_ACTION_DIR = "${placeholder "out"}/share/polkit-1/actions";
 
   postPatch = ''
-    sed -i "s@/etc@$out\0@" CMakeLists.txt
     sed -i "s@pkg_get_variable(SYSTEM_BUS_DIR.*@set(SYSTEM_BUS_DIR $SYSTEM_BUS_DIR)@" CMakeLists.txt
-    sed -i "s@pkg_get_variable(MODULE_LOAD_DIR.*@set(MODULE_LOAD_DIR $MODULE_LOAD_DIR)@" CMakeLists.txt
     sed -i "s@pkg_get_variable(POLKIT_ACTION_DIR.*@set(POLKIT_ACTION_DIR $POLKIT_ACTION_DIR)@" CMakeLists.txt
   '';
 
   cmakeFlags = with lib;
-     optional enableDdc "-DENABLE_DDC=1"
-  ++ optional enableDpms "-DENABLE_DPMS=1"
-  ++ optional enableGamma "-DENABLE_GAMMA=1"
-  ++ optional enableScreen "-DENABLE_SCREEN=1";
+    [ "-DSYSTEMD_SERVICE_DIR=${placeholder "out"}/lib/systemd/system"
+      "-DDBUS_CONFIG_DIR=${placeholder "out"}/etc/dbus-1/system.d"
+      # systemd.pc has prefix=${systemd.out}
+      "-DMODULE_LOAD_DIR=${placeholder "out"}/lib/modules-load.d"
+    ] ++ optional enableDdc    "-DENABLE_DDC=1"
+      ++ optional enableDpms   "-DENABLE_DPMS=1"
+      ++ optional enableGamma  "-DENABLE_GAMMA=1"
+      ++ optional enableScreen "-DENABLE_SCREEN=1";
 
   nativeBuildInputs = [
     dbus
diff --git a/nixpkgs/pkgs/applications/misc/clipit/default.nix b/nixpkgs/pkgs/applications/misc/clipit/default.nix
index 630ee3c36830..fafcf3d54404 100644
--- a/nixpkgs/pkgs/applications/misc/clipit/default.nix
+++ b/nixpkgs/pkgs/applications/misc/clipit/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, fetchpatch, lib, stdenv
+{ fetchFromGitHub, lib, stdenv
 , autoreconfHook, intltool, pkg-config
 , gtk3, libayatana-appindicator, xdotool, which, wrapGAppsHook }:
 
diff --git a/nixpkgs/pkgs/applications/misc/clipmenu/default.nix b/nixpkgs/pkgs/applications/misc/clipmenu/default.nix
index e3a0046205e0..c47dd972ccfd 100644
--- a/nixpkgs/pkgs/applications/misc/clipmenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/clipmenu/default.nix
@@ -27,8 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   makeFlags = [ "PREFIX=$(out)" ];
-  buildInputs = [ makeWrapper ];
-  nativeBuildInputs = [ xsel clipnotify ];
+  nativeBuildInputs = [ makeWrapper xsel clipnotify ];
 
   postFixup = ''
     sed -i "$out/bin/clipctl" -e 's,clipmenud\$,\.clipmenud-wrapped\$,'
diff --git a/nixpkgs/pkgs/applications/misc/cointop/default.nix b/nixpkgs/pkgs/applications/misc/cointop/default.nix
index e57ffd352717..d62d96e530e8 100644
--- a/nixpkgs/pkgs/applications/misc/cointop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cointop/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "cointop";
-  version = "1.5.5";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "miguelmota";
     repo = pname;
     rev = "v${version}";
-    sha256 = "051jxa07c58ym1w0mwckwxh60v28gqcpqw5nv8sm5wxil1crcayr";
+    sha256 = "sha256-h4102oWYSuY4uq/Pyo9u25Pdsai7AK2W9yUmS/zdjrw=";
   };
 
   goPackagePath = "github.com/miguelmota/cointop";
diff --git a/nixpkgs/pkgs/applications/misc/coolreader/default.nix b/nixpkgs/pkgs/applications/misc/coolreader/default.nix
index d3f3eb6fcf5a..dc32cbf2c2a4 100644
--- a/nixpkgs/pkgs/applications/misc/coolreader/default.nix
+++ b/nixpkgs/pkgs/applications/misc/coolreader/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "coolreader";
-  version = "3.2.49";
+  version = "3.2.55";
 
   src = fetchFromGitHub {
     owner = "buggins";
     repo = pname;
     rev = "cr${version}";
-    sha256 = "10i3w4zjlilz3smjzbwm50d91ns3w0wlgmsf38fn2lv76zczv8ia";
+    sha256 = "sha256-gYAaYGEjw7p6y4h5j6j/4Ld+b37Nv+kt04Wp+qb8gzY=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/applications/misc/cpu-x/default.nix b/nixpkgs/pkgs/applications/misc/cpu-x/default.nix
index d0ef6f05aebd..2de06f8c0315 100644
--- a/nixpkgs/pkgs/applications/misc/cpu-x/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cpu-x/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpu-x";
-  version = "4.0.1";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "X0rg";
     repo = "CPU-X";
     rev = "v${version}";
-    sha256 = "191zkkswlbbsw492yygc3idf7wh3bxs97drrqvqqw0mqvrzykxm3";
+    sha256 = "sha256-LWIcE86o+uU8G9DtumiH6iTqHhvq4y/QyQX7J3FhKEc=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook nasm makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/misc/crow-translate/default.nix b/nixpkgs/pkgs/applications/misc/crow-translate/default.nix
index 8cb87274c1dc..76a5541f6dba 100644
--- a/nixpkgs/pkgs/applications/misc/crow-translate/default.nix
+++ b/nixpkgs/pkgs/applications/misc/crow-translate/default.nix
@@ -1,6 +1,6 @@
 { lib
-
 , mkDerivation
+, nix-update-script
 , fetchFromGitHub
 , substituteAll
 , cmake
@@ -37,22 +37,28 @@ let
     rev = "1.4.1";
     sha256 = "1c6a8mdxms5vh8l7shi2kqdhafbzm50pbz6g1hhgg6qslla0vfn0";
   };
+  circleflags = fetchFromGitHub {
+    owner = "HatScripts";
+    repo = "circle-flags";
+    rev = "v2.0.0";
+    sha256 = "1xz5b6nhcxxzalcgwnw36npap71i70s50g6b63avjgjkwz1ys5j4";
+  };
 in
 mkDerivation rec {
   pname = "crow-translate";
-  version = "2.6.2";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "crow-translate";
     repo = "crow-translate";
     rev = version;
-    sha256 = "1jgpqynmxmh6mrknpk5fh96lbdg799axp4cyn5rvalg3sdxajmqc";
+    sha256 = "sha256-fmlNUhNorV/MUdfdDXM6puAblTTa6p2slVT/EKy5THg=";
   };
 
   patches = [
     (substituteAll {
       src = ./dont-fetch-external-libs.patch;
-      inherit singleapplication qtaskbarcontrol qhotkey qonlinetranslator;
+      inherit singleapplication qtaskbarcontrol qhotkey qonlinetranslator circleflags;
     })
     (substituteAll {
       # See https://github.com/NixOS/nixpkgs/issues/86054
@@ -61,10 +67,23 @@ mkDerivation rec {
     })
   ];
 
+  postPatch = "cp -r ${circleflags}/flags/* data/icons";
+
   nativeBuildInputs = [ cmake extra-cmake-modules qttools ];
 
   buildInputs = [ leptonica tesseract4 qtmultimedia qtx11extras ];
 
+  postInstall = ''
+    substituteInPlace $out/share/applications/io.crow_translate.CrowTranslate.desktop \
+      --replace "Exec=qdbus" "Exec=${lib.getBin qttools}/bin/qdbus"
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with lib; {
     description = "A simple and lightweight translator that allows to translate and speak text using Google, Yandex and Bing";
     homepage = "https://crow-translate.github.io/";
diff --git a/nixpkgs/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch b/nixpkgs/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
index b5f8d4606aa0..eff303a852c5 100644
--- a/nixpkgs/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
+++ b/nixpkgs/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
@@ -1,8 +1,26 @@
+diff --git i/CMakeLists.txt w/CMakeLists.txt
+index 2576203..26162a0 100644
+--- i/CMakeLists.txt
++++ w/CMakeLists.txt
+@@ -91,12 +91,11 @@ qt5_add_translation(QM_FILES
+ )
+ 
+ configure_file(src/cmake.h.in cmake.h)
+-configure_file(data/icons/flags.qrc ${CircleFlags_SOURCE_DIR}/flags/flags.qrc COPYONLY)
+ 
+ add_executable(${PROJECT_NAME}
+     ${QM_FILES}
+     data/icons/engines/engines.qrc
+-    ${CircleFlags_SOURCE_DIR}/flags/flags.qrc
++    data/icons/flags.qrc
+     src/addlanguagedialog.cpp
+     src/addlanguagedialog.ui
+     src/cli.cpp
 diff --git i/cmake/ExternalLibraries.cmake w/cmake/ExternalLibraries.cmake
-index d8c88ae..47a12c0 100644
+index 21eba0a..b613d3e 100644
 --- i/cmake/ExternalLibraries.cmake
 +++ w/cmake/ExternalLibraries.cmake
-@@ -2,24 +2,20 @@ include(FetchContent)
+@@ -2,29 +2,24 @@ include(FetchContent)
  
  set(QAPPLICATION_CLASS QApplication)
  FetchContent_Declare(SingleApplication
@@ -30,4 +48,10 @@ index d8c88ae..47a12c0 100644
 +    SOURCE_DIR @qonlinetranslator@
  )
  
- FetchContent_MakeAvailable(SingleApplication QTaskbarControl QHotkey QOnlineTranslator)
+ FetchContent_Declare(CircleFlags
+-    GIT_REPOSITORY https://github.com/HatScripts/circle-flags
+-    GIT_TAG v2.0.0
++    SOURCE_DIR @circleflags@
+ )
+ 
+ FetchContent_MakeAvailable(SingleApplication QTaskbarControl QHotkey QOnlineTranslator CircleFlags)
diff --git a/nixpkgs/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch b/nixpkgs/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
index 816b6c51886a..9e0f587ec7a4 100644
--- a/nixpkgs/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
+++ b/nixpkgs/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
@@ -1,13 +1,13 @@
-diff --git i/src/settings/appsettings.cpp w/src/settings/appsettings.cpp
-index 7be4573..e65994e 100644
---- i/src/settings/appsettings.cpp
-+++ w/src/settings/appsettings.cpp
-@@ -82,7 +82,7 @@ void AppSettings::applyLanguage(QLocale::Language lang)
-         QLocale::setDefault(QLocale(lang));
+diff --git c/src/settings/appsettings.cpp i/src/settings/appsettings.cpp
+index ff99f64..fa929ae 100644
+--- c/src/settings/appsettings.cpp
++++ i/src/settings/appsettings.cpp
+@@ -80,7 +80,7 @@ void AppSettings::applyLanguage(QLocale::Language lang)
+     QLocale::setDefault(locale);
  
-     s_appTranslator.load(QLocale(), QStringLiteral(PROJECT_NAME), QStringLiteral("_"), QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("translations"), QStandardPaths::LocateDirectory));
--    s_qtTranslator.load(QLocale(), QStringLiteral("qt"), QStringLiteral("_"), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
-+    s_qtTranslator.load(QLocale(), QStringLiteral("qt"), QStringLiteral("_"), QLatin1String("@qttranslations@/translations"));
+     s_appTranslator.load(locale, QStringLiteral(PROJECT_NAME), QStringLiteral("_"), QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("translations"), QStandardPaths::LocateDirectory));
+-    s_qtTranslator.load(locale, QStringLiteral("qtbase"), QStringLiteral("_"), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
++    s_qtTranslator.load(locale, QStringLiteral("qtbase"), QStringLiteral("_"), QLatin1String("@qttranslations@/translations"));
  }
  
  QLocale::Language AppSettings::defaultLanguage()
diff --git a/nixpkgs/pkgs/applications/misc/cura/plugins.nix b/nixpkgs/pkgs/applications/misc/cura/plugins.nix
index 699df0e1936f..4bf7ba8d852a 100644
--- a/nixpkgs/pkgs/applications/misc/cura/plugins.nix
+++ b/nixpkgs/pkgs/applications/misc/cura/plugins.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages, libspnav }:
 
 let
 
@@ -6,13 +6,13 @@ let
 
     octoprint = stdenv.mkDerivation rec {
       pname = "Cura-OctoPrintPlugin";
-      version = "3.5.16";
+      version = "3.5.18";
 
       src = fetchFromGitHub {
         owner = "fieldOfView";
         repo = pname;
-        rev = "8affa8aa9796cb37129d3b7222fff03f86c936cd";
-        sha256 = "0l4qfcashkdmpdm8nm3klz6hmi1f0bmbpb9b1yn4mvg0fam6c5xi";
+        rev = "7bd73946fbf22d18337dc900a81a011ece26bee0";
+        sha256 = "057b2f5f49p96lkh2wsr9w6yh2003x4a85irqsgbzp6igmk8imdn";
       };
 
       propagatedBuildInputs = with python3Packages; [
@@ -32,6 +32,35 @@ let
       };
     };
 
+    rawmouse = stdenv.mkDerivation rec {
+      pname = "RawMouse";
+      version = "1.0.13";
+
+      src = fetchFromGitHub {
+        owner = "smartavionics";
+        repo = pname;
+        rev = version;
+        sha256 = "1cj40pgsfcwliz47mkiqjbslkwcm34qb1pajc2mcljgflcnickly";
+      };
+
+      buildPhase = ''
+        substituteInPlace RawMouse/config.json --replace \
+          /usr/local/lib/libspnav.so ${libspnav}/lib/libspnav.so
+      '';
+
+      installPhase = ''
+        mkdir -p $out/lib/cura/plugins/RawMouse
+        cp -rv . $out/lib/cura/plugins/RawMouse/
+      '';
+
+      meta = with lib; {
+        description = "Cura plugin for HID mice such as 3Dconnexion spacemouse";
+        homepage = "https://github.com/smartavionics/RawMouse";
+        license = licenses.agpl3Plus;
+        maintainers = with maintainers; [ gebner ];
+      };
+    };
+
   };
 
 in self
diff --git a/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix b/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix
index 821b88f9b20d..a8d041de1079 100644
--- a/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix
+++ b/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, runtimeShell, lib, fetchurl, python, pythonPackages, unzip }:
+{ stdenv, runtimeShell, lib, fetchurl, python2Packages, unzip }:
 
 # This package uses a precompiled "binary" distribution of CuraByDagoma,
 # distributed by the editor.
@@ -13,7 +13,9 @@
 # I guess people owning a 3D printer generally don't use i686.
 # If, however, someone needs it, we certainly can find a solution.
 
-stdenv.mkDerivation rec {
+let
+  pythonPackages = python2Packages;
+in stdenv.mkDerivation rec {
   pname = "curabydagoma";
   # Version is the date, UNIX format
   version = "1520506579";
@@ -26,7 +28,7 @@ stdenv.mkDerivation rec {
   };
   unpackCmd = "unzip $curSrc && tar zxf CuraByDagoma_amd64.tar.gz";
   nativeBuildInputs = [ unzip ];
-  buildInputs = [ python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ];
+  buildInputs = [ pythonPackages.python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ];
 
   # Compile all pyc files because the included pyc files may be older than the
   # py files. However, Python doesn't realize that because the packages
@@ -46,7 +48,7 @@ stdenv.mkDerivation rec {
     cat > $out/bin/curabydago <<EOF
     #!${runtimeShell}
     export PYTHONPATH=$PYTHONPATH
-    ${python.out}/bin/python $out/curabydago/cura.py
+    ${pythonPackages.python.interpreter} $out/curabydago/cura.py
     EOF
     chmod a+x $out/bin/curabydago
 
diff --git a/nixpkgs/pkgs/applications/misc/curaengine/stable.nix b/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
index 23041c2fe37e..148553da1621 100644
--- a/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
+++ b/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
@@ -12,7 +12,9 @@ stdenv.mkDerivation {
   };
 
   postPatch = ''
-    sed -i 's,--static,,g' Makefile
+    substituteInPlace Makefile --replace "--static" ""
+  '' + lib.optionalString stdenv.isi686 ''
+    substituteInPlace Makefile --replace "-flto" ""
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/dasel/default.nix b/nixpkgs/pkgs/applications/misc/dasel/default.nix
index 061e3bc62de9..a78ac11d67c2 100644
--- a/nixpkgs/pkgs/applications/misc/dasel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dasel/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "dasel";
-  version = "1.13.0";
+  version = "1.13.6";
 
   src = fetchFromGitHub {
     owner = "TomWright";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-310zrxVjUECg/3+ydo9J8EdF0RbguBIT2PklEgpgRFU=";
+    sha256 = "sha256-PTi1blbMVsuftLrFIYNDI8ZFEwRxDA53Md9oZTv7nHs=";
   };
 
   vendorSha256 = "sha256-BdX4DO77mIf/+aBdkNVFUzClsIml1UMcgvikDbbdgcY=";
diff --git a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
index 05d282aaf064..ad53599855ab 100644
--- a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
@@ -1,61 +1,143 @@
-{ lib, stdenv, fetchurl, makeDesktopItem, makeWrapper
-, fontconfig, freetype, glib, gtk3
-, jdk, libX11, libXrender, libXtst, zlib }:
-
-# The build process is almost like eclipse's.
-# See `pkgs/applications/editors/eclipse/*.nix`
+{ lib
+, stdenv
+, copyDesktopItems
+, fetchFromGitHub
+, makeDesktopItem
+, makeWrapper
+, fontconfig
+, freetype
+, glib
+, gtk3
+, jdk
+, libX11
+, libXrender
+, libXtst
+, zlib
+, maven
+}:
 
 stdenv.mkDerivation rec {
   pname = "dbeaver-ce";
-  version = "7.3.2";
-
-  desktopItem = makeDesktopItem {
-    name = "dbeaver";
-    exec = "dbeaver";
-    icon = "dbeaver";
-    desktopName = "dbeaver";
-    comment = "SQL Integrated Development Environment";
-    genericName = "SQL Integrated Development Environment";
-    categories = "Development;";
+  version = "21.0.2"; # When updating also update fetchedMavenDeps.sha256
+
+  src = fetchFromGitHub {
+    owner = "dbeaver";
+    repo = "dbeaver";
+    rev = version;
+    sha256 = "sha256-3EMSiEq1wdg4dxBU90RVVv0Hrf5dXPc1MPI0+WMk48k=";
   };
 
-  buildInputs = [
-    fontconfig freetype glib gtk3
-    jdk libX11 libXrender libXtst zlib
-  ];
+  fetchedMavenDeps = stdenv.mkDerivation {
+    name = "dbeaver-${version}-maven-deps";
+    inherit src;
+
+    buildInputs = [
+      maven
+    ];
+
+    buildPhase = "mvn package -Dmaven.repo.local=$out/.m2 -P desktop,all-platforms";
+
+    # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
+    installPhase = ''
+      find $out -type f \
+        -name \*.lastUpdated -or \
+        -name resolver-status.properties -or \
+        -name _remote.repositories \
+        -delete
+    '';
+
+    # don't do any fixup
+    dontFixup = true;
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "sha256-xKlFFQXd2U513KZKQa7ttSFNX2gxVr9hNsvyaoN/rEE=";
+  };
 
   nativeBuildInputs = [
+    copyDesktopItems
     makeWrapper
+    maven
   ];
 
-  src = fetchurl {
-    url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "sha256-4BVXcR8/E4uIrPQJe9KU9577j4XLTxJWTO8g0vCHWts=";
-  };
+  buildInputs = [
+    fontconfig
+    freetype
+    glib
+    gtk3
+    jdk
+    libX11
+    libXrender
+    libXtst
+    zlib
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "dbeaver";
+      exec = "dbeaver";
+      icon = "dbeaver";
+      desktopName = "dbeaver";
+      comment = "SQL Integrated Development Environment";
+      genericName = "SQL Integrated Development Environment";
+      categories = "Development;";
+    })
+  ];
+
+  buildPhase = ''
+    runHook preBuild
 
-  installPhase = ''
-    # remove bundled jre
-    rm -rf jre
+    mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 -P desktop,all-platforms
 
-    mkdir -p $out/
-    cp -r . $out/dbeaver
+    runHook postBuild
+  '';
 
-    # Patch binaries.
-    interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
-    patchelf --set-interpreter $interpreter $out/dbeaver/dbeaver
+  installPhase =
+    let
+      productTargetPath = "product/community/target/products/org.jkiss.dbeaver.core.product";
 
-    makeWrapper $out/dbeaver/dbeaver $out/bin/dbeaver \
-      --prefix PATH : ${jdk}/bin \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk3 libXtst ])} \
-      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+      platformMap = {
+        aarch64-linux = "aarch64";
+        x86_64-darwin = "x86_64";
+        x86_64-linux  = "x86_64";
+      };
 
-    # Create desktop item.
-    mkdir -p $out/share/applications
-    cp ${desktopItem}/share/applications/* $out/share/applications
+      systemPlatform = platformMap.${stdenv.hostPlatform.system} or (throw "dbeaver not supported on ${stdenv.hostPlatform.system}");
+    in
+    if stdenv.isDarwin then ''
+      runHook preInstall
 
-    mkdir -p $out/share/pixmaps
-    ln -s $out/dbeaver/icon.xpm $out/share/pixmaps/dbeaver.xpm
-  '';
+      mkdir -p $out/Applications $out/bin
+      cp -r ${productTargetPath}/macosx/cocoa/${systemPlatform}/DBeaver.app $out/Applications
+
+      sed -i "/^-vm/d; /bin\/java/d" $out/Applications/DBeaver.app/Contents/Eclipse/dbeaver.ini
+
+      ln -s $out/Applications/DBeaver.app/Contents/MacOS/dbeaver $out/bin/dbeaver
+
+      wrapProgram $out/Applications/DBeaver.app/Contents/MacOS/dbeaver \
+        --prefix JAVA_HOME : ${jdk.home} \
+        --prefix PATH : ${jdk}/bin
+
+      runHook postInstall
+    '' else ''
+      runHook preInstall
+
+      mkdir -p $out/
+      cp -r ${productTargetPath}/linux/gtk/${systemPlatform}/dbeaver $out/dbeaver
+
+      # Patch binaries.
+      interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
+      patchelf --set-interpreter $interpreter $out/dbeaver/dbeaver
+
+      makeWrapper $out/dbeaver/dbeaver $out/bin/dbeaver \
+        --prefix PATH : ${jdk}/bin \
+        --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk3 libXtst ])} \
+        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+
+      mkdir -p $out/share/pixmaps
+      ln -s $out/dbeaver/icon.xpm $out/share/pixmaps/dbeaver.xpm
+
+      runHook postInstall
+    '';
 
   meta = with lib; {
     homepage = "https://dbeaver.io/";
@@ -67,7 +149,7 @@ stdenv.mkDerivation rec {
       Teradata, Firebird, Derby, etc.
     '';
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" ];
-    maintainers = [ maintainers.jojosch ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
+    maintainers = with maintainers; [ jojosch ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/deadd-notification-center/default.nix b/nixpkgs/pkgs/applications/misc/deadd-notification-center/default.nix
index 35627b28d154..5d77f301c821 100644
--- a/nixpkgs/pkgs/applications/misc/deadd-notification-center/default.nix
+++ b/nixpkgs/pkgs/applications/misc/deadd-notification-center/default.nix
@@ -7,19 +7,25 @@
 , gtk3
 , gobject-introspection
 , libxml2
+, fetchpatch
 }:
 stdenv.mkDerivation rec {
   pname = "deadd-notification-center";
-  version = "1.7.3";
+  version = "2021-03-10";
 
   src = fetchFromGitHub {
     owner = "phuhl";
     repo = "linux_notification_center";
-    rev = version;
-    sha256 = "QaOLrtlhQyhMOirk6JO1yMGRrgycHmF9FAdKNbN2TRk=";
+    rev = "640ce0f";
+    sha256 = "12ldr8vppylr90849g3mpjphmnr4lp0vsdkj01a5f4bv4ksx35fm";
   };
 
-  dontUnpack = true;
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/phuhl/linux_notification_center/commit/5244e1498574983322be97925e1ff7ebe456d974.patch";
+      sha256 = "sha256-hbqbgBmuewOhtx0na2tmFa5W128ZrBvDcyPme/mRzlI=";
+    })
+  ];
 
   nativeBuildInputs = [
     autoPatchelfHook
@@ -33,15 +39,18 @@ stdenv.mkDerivation rec {
     hicolor-icon-theme
   ];
 
-  installPhase = ''
-    mkdir -p $out/bin $out/share/dbus-1/services
-
-    cp $src/.out/${pname} $out/bin/
-    chmod +x $out/bin/${pname}
+  buildFlags = [
+    # Exclude stack from `make all` to use the prebuilt binary from .out/
+    "service"
+  ];
 
-    sed "s|##PREFIX##|$out|g" $src/${pname}.service.in > \
-      $out/share/dbus-1/services/com.ph-uhl.deadd.notification.service
-  '';
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "SERVICEDIR_SYSTEMD=${placeholder "out"}/etc/systemd/user"
+    "SERVICEDIR_DBUS=${placeholder "out"}/share/dbus-1/services"
+    # Override systemd auto-detection.
+    "SYSTEMD=1"
+  ];
 
   meta = with lib; {
     description = "A haskell-written notification center for users that like a desktop with style";
diff --git a/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix b/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix
index f5e5dccd0f39..186826e6f7d4 100644
--- a/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix
+++ b/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix
@@ -9,13 +9,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "diff-pdf";
-  version = "0.4.1";
+  version = "0.5";
 
   src = fetchFromGitHub {
     owner = "vslavik";
     repo = "diff-pdf";
     rev = "v${version}";
-    sha256 = "1y5ji4c4m69vzs0z051fkhfdrjnyxb6kzac5flhdkfb2hgp1jnxl";
+    sha256 = "sha256-Si8v5ZY1Q/AwQTaxa1bYG8bgqxWj++c4Hh1LzXSmSwE=";
   };
 
   nativeBuildInputs = [ autoconf automake pkg-config ];
diff --git a/nixpkgs/pkgs/applications/misc/ding/default.nix b/nixpkgs/pkgs/applications/misc/ding/default.nix
index 36e2923522de..649fbe55fae2 100644
--- a/nixpkgs/pkgs/applications/misc/ding/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ding/default.nix
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-aabIH894WihsBTo1LzIBzIZxxyhRYVxLcHpDQwmwmOU=";
   };
 
-  buildInputs = [ aspellEnv fortune gnugrep makeWrapper tk tre ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ aspellEnv fortune gnugrep tk tre ];
 
   patches = [ ./dict.patch ];
 
diff --git a/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix b/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix
index a8817a542e31..d5208ea7b02d 100644
--- a/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "dmensamenu";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "dotlambda";
     repo = "dmensamenu";
     rev = version;
-    sha256 = "15c8g2vdban3dw3g979icypgpx52irpvv39indgk19adicgnzzqp";
+    sha256 = "1ck1i1k40bli6m3n49ff6987hglby9fn4vfr28jpkm3h70s2km3n";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/misc/dockbarx/default.nix b/nixpkgs/pkgs/applications/misc/dockbarx/default.nix
index b31c17cc319a..5bc8de522dec 100644
--- a/nixpkgs/pkgs/applications/misc/dockbarx/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dockbarx/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, pythonPackages, gnome2, keybinder }:
+{ lib, fetchFromGitHub, python2Packages, gnome2, keybinder }:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   ver = "0.93";
   name = "dockbarx-${ver}";
 
@@ -24,7 +24,7 @@ pythonPackages.buildPythonApplication rec {
     substituteInPlace dockx_applets/volume-control.py         --replace /usr/share/             $out/share/
   '';
 
-  propagatedBuildInputs = (with pythonPackages; [ pygtk pyxdg dbus-python pillow xlib ])
+  propagatedBuildInputs = (with python2Packages; [ pygtk pyxdg dbus-python pillow xlib ])
     ++ (with gnome2; [ gnome_python gnome_python_desktop ])
     ++ [ keybinder ];
 
diff --git a/nixpkgs/pkgs/applications/misc/dotfiles/default.nix b/nixpkgs/pkgs/applications/misc/dotfiles/default.nix
index 911a319a963f..b62d154feb15 100644
--- a/nixpkgs/pkgs/applications/misc/dotfiles/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dotfiles/default.nix
@@ -1,10 +1,10 @@
-{ lib, pythonPackages }:
+{ lib, python3Packages }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "dotfiles";
   version = "0.6.4";
 
-  src = pythonPackages.fetchPypi {
+  src = python3Packages.fetchPypi {
     inherit version pname;
     sha256 = "03qis6m9r2qh00sqbgwsm883s4bj1ibwpgk86yh4l235mdw8jywv";
   };
@@ -12,8 +12,8 @@ pythonPackages.buildPythonApplication rec {
   # No tests in archive
   doCheck = false;
 
-  checkInputs = with pythonPackages; [ pytest ];
-  propagatedBuildInputs = with pythonPackages; [ click ];
+  checkInputs = with python3Packages; [ pytest ];
+  propagatedBuildInputs = with python3Packages; [ click ];
 
   meta = with lib; {
     description = "Easily manage your dotfiles";
diff --git a/nixpkgs/pkgs/applications/misc/dunst/default.nix b/nixpkgs/pkgs/applications/misc/dunst/default.nix
index eed07a2356e6..5dffbf56a36a 100644
--- a/nixpkgs/pkgs/applications/misc/dunst/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dunst/default.nix
@@ -1,18 +1,19 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
 , pkg-config, which, perl, libXrandr
 , cairo, dbus, systemd, gdk-pixbuf, glib, libX11, libXScrnSaver
-, libXinerama, libnotify, pango, xorgproto, librsvg, dunstify ? false
+, gtk3, wayland, wayland-protocols
+, libXinerama, libnotify, pango, xorgproto, librsvg
 }:
 
 stdenv.mkDerivation rec {
   pname = "dunst";
-  version = "1.5.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "dunst-project";
     repo = "dunst";
     rev = "v${version}";
-    sha256 = "0irwkqcgwkqaylcpvqgh25gn2ysbdm2kydipxfzcq1ddj9ns6f9c";
+    sha256 = "0lga1kj2vjbj9g9rl93nivngjmk5fkxdxwal8w96x9whwk9jvdga";
   };
 
   nativeBuildInputs = [ perl pkg-config which systemd makeWrapper ];
@@ -20,6 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     cairo dbus gdk-pixbuf glib libX11 libXScrnSaver
     libXinerama libnotify pango xorgproto librsvg libXrandr
+    gtk3 wayland wayland-protocols
   ];
 
   outputs = [ "out" "man" ];
@@ -27,15 +29,12 @@ stdenv.mkDerivation rec {
   makeFlags = [
     "PREFIX=$(out)"
     "VERSION=$(version)"
+    "SYSCONFDIR=$(out)/etc"
     "SERVICEDIR_DBUS=$(out)/share/dbus-1/services"
     "SERVICEDIR_SYSTEMD=$(out)/lib/systemd/user"
   ];
 
-  buildFlags = if dunstify then [ "dunstify" ] else [];
-
-  postInstall = lib.optionalString dunstify ''
-    install -Dm755 dunstify $out/bin
-  '' + ''
+  postInstall = ''
     wrapProgram $out/bin/dunst \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
   '';
diff --git a/nixpkgs/pkgs/applications/misc/electrum/default.nix b/nixpkgs/pkgs/applications/misc/electrum/default.nix
index 273077b3bdae..44f35e503ca0 100644
--- a/nixpkgs/pkgs/applications/misc/electrum/default.nix
+++ b/nixpkgs/pkgs/applications/misc/electrum/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , fetchFromGitHub
 , wrapQtAppsHook
@@ -19,7 +20,7 @@
 }:
 
 let
-  version = "4.0.9";
+  version = "4.1.1";
 
   libsecp256k1_name =
     if stdenv.isLinux then "libsecp256k1.so.0"
@@ -35,7 +36,7 @@ let
     owner = "spesmilo";
     repo = "electrum";
     rev = version;
-    sha256 = "0cmdyfabllw4wnpqpdxp3l6hjnm0cvkwxn0z8ph4x54sf4zq9iz3";
+    sha256 = "0zvv8nmjzw5pchykz5p28483nby4lp4ah7iqr08pv36gy89l51v5";
 
     extraPostFetch = ''
       mv $out ./all
@@ -50,7 +51,7 @@ python3.pkgs.buildPythonApplication {
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "1fvjiagi78f32nxgr2rx8jas8hxfvpp1c8fpfcalvykmlhdc2gva";
+    sha256 = "0yg6ld92a4xgn7y8i51hmr3kmgmrbrjwniikkmyq9q141h2drb80";
   };
 
   postUnpack = ''
@@ -77,10 +78,10 @@ python3.pkgs.buildPythonApplication {
     requests
     tlslite-ng
     # plugins
+    btchip
     ckcc-protocol
     keepkey
     trezor
-    btchip
   ] ++ lib.optionals enableQt [ pyqt5 qdarkstyle ];
 
   preBuild = ''
@@ -112,7 +113,7 @@ python3.pkgs.buildPythonApplication {
     wrapQtApp $out/bin/electrum
   '';
 
-  checkInputs = with python3.pkgs; [ pytestCheckHook pycryptodomex ];
+  checkInputs = with python3.pkgs; [ pytestCheckHook pyaes pycryptodomex ];
 
   pytestFlagsArray = [ "electrum/tests" ];
 
@@ -150,6 +151,6 @@ python3.pkgs.buildPythonApplication {
     homepage = "https://electrum.org/";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ ehmry joachifm np prusnak ];
+    maintainers = with maintainers; [ joachifm np prusnak ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/extract_url/default.nix b/nixpkgs/pkgs/applications/misc/extract_url/default.nix
index 9daaf7268c39..35ea33bde3a2 100644
--- a/nixpkgs/pkgs/applications/misc/extract_url/default.nix
+++ b/nixpkgs/pkgs/applications/misc/extract_url/default.nix
@@ -5,7 +5,7 @@
 
 let
   perlDeps =
-    [ perlPackages.MIMEtools perlPackages.HTMLParser ]
+    [ perlPackages.MIMETools perlPackages.HTMLParser ]
     ++ lib.optional cursesSupport perlPackages.CursesUI
     ++ lib.optional uriFindSupport perlPackages.URIFind;
 
diff --git a/nixpkgs/pkgs/applications/misc/far2l/default.nix b/nixpkgs/pkgs/applications/misc/far2l/default.nix
index b414cbdd0ed4..87eaed975352 100644
--- a/nixpkgs/pkgs/applications/misc/far2l/default.nix
+++ b/nixpkgs/pkgs/applications/misc/far2l/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, cmake, pkg-config, wxGTK30, glib, pcre, m4, bash
+{ lib, stdenv, fetchFromGitHub, makeWrapper, cmake, pkg-config, wxGTK30, glib, pcre, m4, bash
 , xdg-utils, gvfs, zip, unzip, gzip, bzip2, gnutar, p7zip, xz, imagemagick
 , libuchardet, spdlog, xercesc, fmt, openssl, libssh, samba, neon, libnfs, libarchive }:
 
diff --git a/nixpkgs/pkgs/applications/misc/flavours/default.nix b/nixpkgs/pkgs/applications/misc/flavours/default.nix
index 6ee546fa7c55..b116fbbbd7c8 100644
--- a/nixpkgs/pkgs/applications/misc/flavours/default.nix
+++ b/nixpkgs/pkgs/applications/misc/flavours/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "flavours";
-  version = "0.3.5";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "Misterio77";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1lvbq026ap02f22mv45s904a0f81dr2f07j6bq0wnwl5wd5w0wpj";
+    sha256 = "sha256-rDy859jg+F8XC4sJogIgdn1FoT8cf7S+KORt+7kboAc=";
   };
 
-  cargoSha256 = "0wgi65k180mq1q6j4nma0wpfdvl67im5v5gmhzv1ap6xg3bicdg1";
+  cargoSha256 = "sha256-cAXiAPhHdxdd8pFQ0Gq7eHO2p/Dam53gDbE583UYY/k=";
 
   meta = with lib; {
     description = "An easy to use base16 scheme manager/builder that integrates with any workflow";
diff --git a/nixpkgs/pkgs/applications/misc/font-manager/default.nix b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
index 3efef4553136..766ec9a55d9c 100644
--- a/nixpkgs/pkgs/applications/misc/font-manager/default.nix
+++ b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
@@ -1,17 +1,18 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja, gettext, python3,
-  pkg-config, libxml2, json-glib , sqlite, itstool, librsvg, yelp-tools,
-  vala, gtk3, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection
+  pkg-config, libxml2, json-glib , sqlite, itstool, yelp-tools,
+  vala, gtk3, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection,
+  libsoup, webkitgtk
 }:
 
 stdenv.mkDerivation rec {
   pname = "font-manager";
-  version = "0.7.9";
+  version = "0.8.5-1";
 
   src = fetchFromGitHub {
     owner = "FontManager";
     repo = "master";
     rev = version;
-    sha256 = "1nc0i824v2szz0j9a5rwl8gygih15xbxnxpnx9d3wr0yq9057q6q";
+    sha256 = "1p0hfnf06892hn25a6zv8fnhbh4ln11nn2fv1vjqs63rr59fprbk";
   };
 
   nativeBuildInputs = [
@@ -33,9 +34,10 @@ stdenv.mkDerivation rec {
     libxml2
     json-glib
     sqlite
-    librsvg
     gtk3
     gnome3.adwaita-icon-theme
+    libsoup
+    webkitgtk
   ];
 
   postPatch = ''
@@ -55,7 +57,7 @@ stdenv.mkDerivation rec {
 
       Font Manager is NOT a professional-grade font management solution.
     '';
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix b/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix
index 5d0f07492a1b..8692ac98933b 100644
--- a/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix
+++ b/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix
@@ -6,8 +6,8 @@ let
   srcs = {
     foxtrot = fetchbzr {
       url = "lp:foxtrotgps";
-      rev = "326";
-      sha256 = "191pgcy5rng8djy22a5z9s8gssc73f9p5hm4ig52ra189cb48d8k";
+      rev = "329";
+      sha256 = "0fwgnsrah63h1xdgm5xdi5ancrz89shdp5sdzw1qc1m7i9a03rid";
     };
     screenshots = fetchbzr {
       url = "lp:foxtrotgps/screenshots";
@@ -17,23 +17,21 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "foxtrotgps";
-  version = "1.2.2+326";
+  version = "1.2.2+329";
 
   # Pull directly from bzr because gpsd API version 9 is not supported on latest release
   src = srcs.foxtrot;
 
-  patches = [
-    ./gps-status-fix.patch
+  nativeBuildInputs = [
+    pkg-config autoreconfHook texinfo help2man
+    imagemagick wrapGAppsHook intltool
   ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook texinfo help2man imagemagick wrapGAppsHook ];
-
   buildInputs = [
     curl.dev
     gnome2.libglade.dev
     gpsd
     gtk2.dev
-    intltool
     libexif
     sqlite.dev
     (python3Packages.python.withPackages (pythonPackages: with python3Packages;
@@ -58,7 +56,7 @@ in stdenv.mkDerivation rec {
       innovation.
     '';
     homepage = "https://www.foxtrotgps.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ wucke13 ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch b/nixpkgs/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch
deleted file mode 100644
index e9b3624a174b..000000000000
--- a/nixpkgs/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- foxtrot/src/gps_functions.c.orig	2020-12-04 15:02:22.290163204 -0600
-+++ foxtrot/src/gps_functions.c	2020-12-04 15:04:54.470648534 -0600
-@@ -762,7 +762,11 @@
- 		{
- 			gpsdata->fix.time = (time_t) 0;
- 		}
-+#if GPSD_API_MAJOR_VERSION >= 9
-+      gpsdata->valid = (libgps_gpsdata.fix.status != STATUS_NO_FIX);
-+#else
- 		gpsdata->valid = (libgps_gpsdata.status != STATUS_NO_FIX);
-+#endif
- 		if (gpsdata->valid)
- 		{
- 			gpsdata->seen_valid = TRUE;
diff --git a/nixpkgs/pkgs/applications/misc/free42/default.nix b/nixpkgs/pkgs/applications/misc/free42/default.nix
index 29c6df8a72ea..51867a6acee7 100644
--- a/nixpkgs/pkgs/applications/misc/free42/default.nix
+++ b/nixpkgs/pkgs/applications/misc/free42/default.nix
@@ -1,6 +1,8 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, makeDesktopItem
+, copyDesktopItems
 , pkg-config
 , gtk3
 , alsaLib
@@ -8,16 +10,16 @@
 
 stdenv.mkDerivation rec {
   pname = "free42";
-  version = "2.5.24a";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "thomasokken";
     repo = pname;
     rev = "v${version}";
-    sha256 = "xP0kzpmX6Q5Dg7azvyUZIdoi52AYkUmiCkUA1aVY+nQ=";
+    sha256 = "sha256-Htk2NHgYVL622URx67BUtounAUopLTahaSqfAqd3+ZI=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ copyDesktopItems pkg-config ];
   buildInputs = [ gtk3 alsaLib ];
 
   postPatch = ''
@@ -55,6 +57,29 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "com.thomasokken.free42bin";
+      desktopName = "Free42Bin";
+      genericName = "Calculator";
+      exec = "free42bin";
+      type = "Application";
+      comment = meta.description;
+      categories = "Utility;Calculator;";
+      terminal = "false";
+    })
+    (makeDesktopItem {
+      name = "com.thomasokken.free42dec";
+      desktopName = "Free42Dec";
+      genericName = "Calculator";
+      exec = "free42dec";
+      type = "Application";
+      comment = meta.description;
+      categories = "Utility;Calculator;";
+      terminal = "false";
+    })
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/thomasokken/free42";
     description = "A software clone of HP-42S Calculator";
diff --git a/nixpkgs/pkgs/applications/misc/freeplane/default.nix b/nixpkgs/pkgs/applications/misc/freeplane/default.nix
new file mode 100644
index 000000000000..0568198f41d9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/freeplane/default.nix
@@ -0,0 +1,118 @@
+{ stdenv, lib, fetchpatch, fetchFromGitHub, makeWrapper, writeText, runtimeShell, jdk11, perl, gradle_5, which }:
+
+let
+  pname = "freeplane";
+  version = "1.8.11";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "release-${version}";
+    sha256 = "07xjx9pf62dvy8lx6vnbwwcn1zqy89cmdmwy792k7gb12wz81nnc";
+  };
+
+  deps = stdenv.mkDerivation {
+    name = "${pname}-deps";
+    inherit src;
+
+    nativeBuildInputs = [ jdk11 perl gradle_5 ];
+
+    buildPhase = ''
+      GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk11} --no-daemon jar
+    '';
+
+    # Mavenize dependency paths
+    # e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.0.jar
+    installPhase = ''
+      find ./caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
+        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
+        | sh
+    '';
+
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "0r7f6713m0whh5hlk1id7z9j5v9494r41sivn9fzl63q70kzz92g";
+  };
+
+  # Point to our local deps repo
+  gradleInit = writeText "init.gradle" ''
+    logger.lifecycle 'Replacing Maven repositories with ${deps}...'
+    gradle.projectsLoaded {
+      rootProject.allprojects {
+        buildscript {
+          repositories {
+            clear()
+            maven { url '${deps}' }
+          }
+        }
+        repositories {
+          clear()
+          maven { url '${deps}' }
+        }
+      }
+    }
+    settingsEvaluated { settings ->
+      settings.pluginManagement {
+        repositories {
+          maven { url '${deps}' }
+        }
+      }
+    }
+  '';
+
+  # downloaded from unicode.org and twemoji.maxcdn.com by code in freeplane/emoji.gradle
+  # the below hash is for versions of freeplane that use twemoji 12.1.4, and emoji 12.1
+  emoji = stdenv.mkDerivation rec {
+    name = "${pname}-emoji";
+    inherit src;
+
+    nativeBuildInputs = [ jdk11 gradle_5 ];
+
+    buildPhase = ''
+      GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk11} --no-daemon --offline --init-script ${gradleInit} emojiGraphicsClasses emojiListClasses
+    '';
+
+    installPhase = ''
+      mkdir -p $out/emoji/txt $out/resources/images
+      cp freeplane/build/emoji/txt/emojilist.txt $out/emoji/txt
+      cp -r freeplane/build/emoji/resources/images/emoji/. $out/resources/images/emoji
+    '';
+
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "0zikbakbr2fhyv4h4h52ajhznjka0hg6hiqfy1528a39i6psipn3";
+  };
+
+in stdenv.mkDerivation rec {
+  inherit pname version src;
+
+  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ jdk11 gradle_5 ];
+
+  buildPhase = ''
+    mkdir -p -- ./freeplane/build/emoji/{txt,resources/images}
+    cp ${emoji}/emoji/txt/emojilist.txt ./freeplane/build/emoji/txt/emojilist.txt
+    cp -r ${emoji}/resources/images/emoji ./freeplane/build/emoji/resources/images/emoji
+    GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk11} --no-daemon --offline --init-script ${gradleInit} -x test -x :freeplane:downloadEmoji build
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin $out/share
+
+    cp -a ./BIN/. $out/share/${pname}
+    makeWrapper $out/share/${pname}/${pname}.sh $out/bin/${pname} \
+      --set FREEPLANE_BASE_DIR $out/share/${pname} \
+      --set JAVA_HOME ${jdk11} \
+      --prefix PATH : ${lib.makeBinPath [ jdk11 which ]}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Mind-mapping software";
+    homepage = "https://freeplane.org/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ chaduffy ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix b/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
index 5eebda9610e4..ad0970e0fe29 100644
--- a/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.16.4";
+  version = "1.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "744deddf22fdbc51d1d89776c41b0f1127d2b4d212bd092718fad2c0dc7f160f";
+    sha256 = "1cfaa3a617d5d222d4b9b41634b1bdede2673a8620d6b0e62fb755ae224ca2ac";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/applications/misc/gammu/default.nix b/nixpkgs/pkgs/applications/misc/gammu/default.nix
index 0a6796a9b077..736685f5eb1f 100644
--- a/nixpkgs/pkgs/applications/misc/gammu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gammu/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python, pkg-config, cmake, bluez, libusb1, curl
+{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, bluez, libusb1, curl
 , libiconv, gettext, sqlite
 , dbiSupport ? false, libdbi ? null, libdbiDrivers ? null
 , postgresSupport ? false, postgresql ? null
@@ -21,7 +21,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config cmake ];
 
-  buildInputs = [ python bluez libusb1 curl gettext sqlite libiconv ]
+  strictDeps = true;
+
+  buildInputs = [ bluez libusb1 curl gettext sqlite libiconv ]
   ++ optionals dbiSupport [ libdbi libdbiDrivers ]
   ++ optionals postgresSupport [ postgresql ];
 
diff --git a/nixpkgs/pkgs/applications/misc/gcalcli/default.nix b/nixpkgs/pkgs/applications/misc/gcalcli/default.nix
index 20aefe2ab1d6..e19e89ec6c0b 100644
--- a/nixpkgs/pkgs/applications/misc/gcalcli/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gcalcli/default.nix
@@ -21,7 +21,7 @@ buildPythonApplication rec {
 
   propagatedBuildInputs = [
     dateutil gflags httplib2 parsedatetime six vobject
-    google_api_python_client oauth2client uritemplate
+    google-api-python-client oauth2client uritemplate
     libnotify
   ] ++ lib.optional (!isPy3k) futures;
 
diff --git a/nixpkgs/pkgs/applications/misc/gcstar/default.nix b/nixpkgs/pkgs/applications/misc/gcstar/default.nix
index f482b8af2898..f77bf04c2c89 100644
--- a/nixpkgs/pkgs/applications/misc/gcstar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gcstar/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     JSON
     ImageExifTool
     librelative
-    LWPUserAgent
+    LWP
     LWPProtocolHttps
     MP3Info
     MP3Tag
diff --git a/nixpkgs/pkgs/applications/misc/gkrellm/default.nix b/nixpkgs/pkgs/applications/misc/gkrellm/default.nix
index 2cc20b424b1d..aaaab255c763 100644
--- a/nixpkgs/pkgs/applications/misc/gkrellm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gkrellm/default.nix
@@ -1,5 +1,6 @@
 { lib, fetchurl, stdenv, gettext, pkg-config, glib, gtk2, libX11, libSM, libICE, which
-, IOKit ? null }:
+, IOKit, copyDesktopItems, makeDesktopItem, wrapGAppsHook
+}:
 
 with lib;
 
@@ -11,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y";
   };
 
-  nativeBuildInputs = [ pkg-config which ];
+  nativeBuildInputs = [ copyDesktopItems pkg-config which wrapGAppsHook ];
   buildInputs = [gettext glib gtk2 libX11 libSM libICE]
     ++ optionals stdenv.isDarwin [ IOKit ];
 
@@ -19,7 +20,7 @@ stdenv.mkDerivation rec {
 
   # Makefiles are patched to fix references to `/usr/X11R6' and to add
   # `-lX11' to make sure libX11's store path is in the RPATH.
-  patchPhase = ''
+  postPatch = ''
     echo "patching makefiles..."
     for i in Makefile src/Makefile server/Makefile
     do
@@ -30,6 +31,23 @@ stdenv.mkDerivation rec {
   makeFlags = [ "STRIP=-s" ];
   installFlags = [ "DESTDIR=$(out)" ];
 
+  # This icon is used by the desktop file.
+  postInstall = ''
+    install -Dm444 -T src/icon.xpm $out/share/pixmaps/gkrellm.xpm
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "gkrellm";
+      exec = "gkrellm";
+      icon = "gkrellm";
+      desktopName = "GKrellM";
+      genericName = "System monitor";
+      comment = "The GNU Krell Monitors";
+      categories = "System;Monitor;";
+    })
+  ];
+
   meta = {
     description = "Themeable process stack of system monitors";
     longDescription = ''
@@ -40,7 +58,7 @@ stdenv.mkDerivation rec {
 
     homepage = "http://gkrellm.srcbox.net";
     license = licenses.gpl3Plus;
-    maintainers = [ ];
+    maintainers = with maintainers; [ khumba ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix b/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix
index c6617cc2324c..34f4aa71a38a 100644
--- a/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix
@@ -4,8 +4,8 @@
 , pkg-config
 , gettext
 , fetchFromGitLab
-, python3
-, libhandy_0
+, python3Packages
+, libhandy
 , libpwquality
 , wrapGAppsHook
 , gtk3
@@ -15,9 +15,9 @@
 , desktop-file-utils
 , appstream-glib }:
 
-python3.pkgs.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "gnome-passwordsafe";
-  version = "3.99.2";
+  version = "5.0";
   format = "other";
   strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
 
@@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "World";
     repo = "PasswordSafe";
     rev = version;
-    sha256 = "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf";
+    sha256 = "8EFKLNK7rZlYL2g/7FmaC5r5hcdblsnod/aB8NYiBvY=";
   };
 
   nativeBuildInputs = [
@@ -44,26 +44,13 @@ python3.pkgs.buildPythonApplication rec {
     gtk3
     glib
     gdk-pixbuf
-    libhandy_0
+    libhandy
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with python3Packages; [
     pygobject3
     construct
-
-    # pykeepass 3.2.1 changed some exception types, and is not backwards compatible.
-    # Remove override once the MR is merged upstream.
-    # https://gitlab.gnome.org/World/PasswordSafe/-/merge_requests/79
-    (pykeepass.overridePythonAttrs (old: rec {
-      version = "3.2.0";
-      src = fetchPypi {
-        pname = "pykeepass";
-        inherit version;
-        sha256 = "1ysjn92bixq8wkwhlbhrjj9z0h80qnlnj7ks5478ndkzdw5gxvm1";
-      };
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ pycryptodome ];
-    }))
-
+    pykeepass
   ] ++ [
     libpwquality # using the python bindings
   ];
diff --git a/nixpkgs/pkgs/applications/misc/go-org/default.nix b/nixpkgs/pkgs/applications/misc/go-org/default.nix
new file mode 100644
index 000000000000..cc2225af07ca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/go-org/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "go-org";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "niklasfasching";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-nMZzRbu3lxunIlnnmb49Ljt8oSiYpj+8gZ0u/OFRRDM=";
+  };
+
+  vendorSha256 = "sha256-njx89Ims7GZql8sbVmH/E9gM/ONRWiPRLVs+FzsCSzI=";
+
+  postInstallCheck = ''
+    $out/bin/go-org > /dev/null
+  '';
+
+  meta = with lib; {
+    description = "Org-mode parser and static site generator in go";
+    homepage = "https://niklasfasching.github.io/go-org";
+    license = licenses.mit;
+    maintainers = with maintainers; [ payas ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix b/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
index fa58c2d3965a..c3b9a3226a3c 100644
--- a/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
+++ b/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, fetchpatch, mkDerivation
 , qtbase, qtsvg, qtserialport, qtwebengine, qtmultimedia, qttools
 , qtconnectivity, qtcharts, libusb-compat-0_1
-, yacc, flex, zlib, qmake, makeDesktopItem, makeWrapper
+, bison, flex, zlib, qmake, makeDesktopItem, makeWrapper
 }:
 
 let
@@ -29,7 +29,7 @@ in mkDerivation rec {
     qtbase qtsvg qtserialport qtwebengine qtmultimedia qttools zlib
     qtconnectivity qtcharts libusb-compat-0_1
   ];
-  nativeBuildInputs = [ flex makeWrapper qmake yacc ];
+  nativeBuildInputs = [ flex makeWrapper qmake bison ];
 
   patches = [
     # allow building with bison 3.7
diff --git a/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock b/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock
index eed618a5cbd1..73bc5d068d73 100644
--- a/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock
@@ -1,20 +1,20 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     crass (1.0.6)
     execjs (2.7.0)
-    ffi (1.13.1)
+    ffi (1.14.2)
     gemojione (4.3.3)
       json
     github-markup (3.0.5)
-    gollum (5.1.2)
+    gollum (5.2.1)
       gemojione (~> 4.1)
-      gollum-lib (~> 5.0)
+      gollum-lib (~> 5.1)
       kramdown (~> 2.3)
       kramdown-parser-gfm (~> 1.1.0)
-      mustache (>= 0.99.5, < 1.0.0)
-      octicons (~> 8.5)
+      mustache-sinatra (~> 1.0)
+      octicons (~> 12.0)
       rss (~> 0.2.9)
       sass (~> 3.5)
       sinatra (~> 2.0)
@@ -22,40 +22,44 @@ GEM
       sprockets (~> 3.7)
       sprockets-helpers (~> 1.2)
       therubyrhino (~> 2.1.0)
-      uglifier (~> 3.2)
+      uglifier (~> 4.2)
       useragent (~> 0.16.2)
-    gollum-lib (5.0.6)
+    gollum-lib (5.1)
       gemojione (~> 4.1)
       github-markup (~> 3.0)
       gollum-rugged_adapter (~> 1.0)
       loofah (~> 2.3)
       nokogiri (~> 1.8)
-      octicons (~> 8.5)
+      octicons (~> 12.0)
       rouge (~> 3.1)
       twitter-text (= 1.14.7)
     gollum-rugged_adapter (1.0)
       mime-types (>= 1.15)
       rugged (~> 0.99)
-    json (2.3.1)
+    json (2.5.1)
     kramdown (2.3.0)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
-    loofah (2.8.0)
+    loofah (2.9.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2020.1104)
-    mini_portile2 (2.4.0)
+    mime-types-data (3.2021.0225)
+    mini_portile2 (2.5.0)
     multi_json (1.15.0)
     mustache (0.99.8)
+    mustache-sinatra (1.0.1)
+      mustache (<= 0.99.8)
     mustermann (1.1.1)
       ruby2_keywords (~> 0.0.1)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
-    octicons (8.5.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    octicons (12.1.0)
       nokogiri (>= 1.6.3.1)
+    racc (1.5.2)
     rack (2.2.3)
     rack-protection (2.1.0)
       rack
@@ -63,10 +67,10 @@ GEM
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rexml (3.2.4)
-    rouge (3.25.0)
+    rouge (3.26.0)
     rss (0.2.9)
       rexml
-    ruby2_keywords (0.0.2)
+    ruby2_keywords (0.0.4)
     rugged (0.99.0)
     sass (3.7.4)
       sass-listen (~> 4.0.0)
@@ -95,7 +99,7 @@ GEM
     tilt (2.0.10)
     twitter-text (1.14.7)
       unf (~> 0.1.0)
-    uglifier (3.2.0)
+    uglifier (4.2.0)
       execjs (>= 0.3.0, < 3)
     unf (0.1.4)
       unf_ext
diff --git a/nixpkgs/pkgs/applications/misc/gollum/default.nix b/nixpkgs/pkgs/applications/misc/gollum/default.nix
index fc80a5ddb8aa..4a365b5a17ed 100644
--- a/nixpkgs/pkgs/applications/misc/gollum/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gollum/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/gollum/gollum";
     changelog = "https://github.com/gollum/gollum/blob/v${version}/HISTORY.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ jgillich primeos nicknovitski ];
+    maintainers = with maintainers; [ erictapen jgillich nicknovitski ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/gollum/gemset.nix b/nixpkgs/pkgs/applications/misc/gollum/gemset.nix
index d259167856a1..690eba645dc1 100644
--- a/nixpkgs/pkgs/applications/misc/gollum/gemset.nix
+++ b/nixpkgs/pkgs/applications/misc/gollum/gemset.nix
@@ -4,10 +4,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   crass = {
     groups = ["default"];
@@ -34,10 +34,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "15hgiy09i8ywjihyzyvjvk42ivi3kmy6dm21s5sgg9j7y3h3zkkx";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.14.2";
   };
   gemojione = {
     dependencies = ["json"];
@@ -61,15 +61,15 @@
     version = "3.0.5";
   };
   gollum = {
-    dependencies = ["gemojione" "gollum-lib" "kramdown" "kramdown-parser-gfm" "mustache" "octicons" "rss" "sass" "sinatra" "sinatra-contrib" "sprockets" "sprockets-helpers" "therubyrhino" "uglifier" "useragent"];
+    dependencies = ["gemojione" "gollum-lib" "kramdown" "kramdown-parser-gfm" "mustache-sinatra" "octicons" "rss" "sass" "sinatra" "sinatra-contrib" "sprockets" "sprockets-helpers" "therubyrhino" "uglifier" "useragent"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pmvxj7pka7pjpw060a9pfxsci1hmx45hk9hbp5m49xkkiiqf1gx";
+      sha256 = "0n89c77amabvv4aq8jq5r6581hqzw79w8khr13w6kvv6iabq1vaz";
       type = "gem";
     };
-    version = "5.1.2";
+    version = "5.2.1";
   };
   gollum-lib = {
     dependencies = ["gemojione" "github-markup" "gollum-rugged_adapter" "loofah" "nokogiri" "octicons" "rouge" "twitter-text"];
@@ -77,10 +77,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02mc1w4hn9kjrgvg0r46x1bd0h8hq7lqs432dgjfn2dw36kchja4";
+      sha256 = "0p721ymkf2xcskjgr9308b6g581cbxgvhprj9srqskssxvsfdsln";
       type = "gem";
     };
-    version = "5.0.6";
+    version = "5.1";
   };
   gollum-rugged_adapter = {
     dependencies = ["mime-types" "rugged"];
@@ -98,10 +98,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   kramdown = {
     dependencies = ["rexml"];
@@ -131,10 +131,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
+      sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.9.0";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -152,20 +152,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
+      sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
       type = "gem";
     };
-    version = "3.2020.1104";
+    version = "3.2021.0225";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   multi_json = {
     groups = ["default"];
@@ -187,6 +187,17 @@
     };
     version = "0.99.8";
   };
+  mustache-sinatra = {
+    dependencies = ["mustache"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rvdwg1zk3sybpi9hzn6jj0k8rndkq19y7cl0jmqr0g2xx21z7mr";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
   mustermann = {
     dependencies = ["ruby2_keywords"];
     groups = ["default"];
@@ -199,15 +210,15 @@
     version = "1.1.1";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.1";
   };
   octicons = {
     dependencies = ["nokogiri"];
@@ -215,10 +226,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fy6shpfmla58dxx3kb2zi1hs7vmdw6pqrksaa8yrva05s4l3y75";
+      sha256 = "0kpy7h7pffjqb2xbmld7nwnb2x6rll3yz5ccr7nrqnrk2d3cmpmn";
+      type = "gem";
+    };
+    version = "12.1.0";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
       type = "gem";
     };
-    version = "8.5.0";
+    version = "1.5.2";
   };
   rack = {
     groups = ["default"];
@@ -277,10 +298,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yvcv901lrh5rfnk1h4h56hf2m6n9pd6w8n96vag74aakgz3gaxn";
+      sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
       type = "gem";
     };
-    version = "3.25.0";
+    version = "3.26.0";
   };
   rss = {
     dependencies = ["rexml"];
@@ -298,10 +319,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
       type = "gem";
     };
-    version = "0.0.2";
+    version = "0.0.4";
   };
   rugged = {
     groups = ["default"];
@@ -427,10 +448,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wmqvn4xncw6h3d5gp2a44170zwxfyj3iq4rsjp16zarvzbdmgnz";
+      sha256 = "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f";
       type = "gem";
     };
-    version = "3.2.0";
+    version = "4.2.0";
   };
   unf = {
     dependencies = ["unf_ext"];
diff --git a/nixpkgs/pkgs/applications/misc/gphoto2/default.nix b/nixpkgs/pkgs/applications/misc/gphoto2/default.nix
index 5635aadda9df..8d612ceb413d 100644
--- a/nixpkgs/pkgs/applications/misc/gphoto2/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gphoto2/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gphoto2";
-  version = "2.5.26";
+  version = "2.5.27";
 
   src = fetchFromGitHub {
     owner = "gphoto";
     repo = "gphoto2";
     rev = "v${version}";
-    sha256 = "1w01j3qvjl2nlfs38rnsmjvn3r0r2xf7prxz1i6yarbpj3fzwqqc";
+    sha256 = "sha256-zzlyA2IedyBZ4/TdSmrqbe2le8rFMQ6tY6jF5skJ7l4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix b/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix
index f043aa66947f..85c7fbae789f 100644
--- a/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix
@@ -38,6 +38,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   doCheck = true;
   preCheck = ''
     patchShebangs testo
diff --git a/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix b/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix
index 4025b313128b..8501b7c0875b 100644
--- a/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix
+++ b/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix
@@ -10,6 +10,8 @@ mkDerivation {
   nativeBuildInputs = [ qmake qttools ];
   buildInputs = [ qtwebkit ];
 
+  dontWrapQtApps = true;
+
   postPatch = ''
     substituteInPlace mainwindow.cc \
       --replace "QApplication::applicationDirPath() + \"/" "\"" \
diff --git a/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix b/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix
index a1357ff0a084..00a3914e1735 100644
--- a/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix
@@ -29,8 +29,8 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "prefix=${placeholder "out"}"
-    "CC=cc"
-    "CXX=c++"
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "CXX=${stdenv.cc.targetPrefix}c++"
     "CFLAGS=-DENABLE_NLS"
   ];
 
diff --git a/nixpkgs/pkgs/applications/misc/gpxsee/default.nix b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
index 5ea01dfa19fd..c9c815771a8e 100644
--- a/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "gpxsee";
-  version = "8.5";
+  version = "8.9";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "sha256-ygBM8HtCF8d4KVOakP4ssFyTgAsPQDfjAMJaEqo+Ml4=";
+    sha256 = "sha256-nl9iu8ezgMZ1wy2swDXYRDLlkSz1II+C65UUWNvGBxg=";
   };
 
   patches = (substituteAll {
diff --git a/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix b/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix
index 6c3ba132d0b2..e6350dfb7cbc 100644
--- a/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix
@@ -2,21 +2,23 @@
 
 stdenv.mkDerivation rec {
   pname = "gremlin-console";
-  version = "3.4.8";
+  version = "3.4.10";
   src = fetchzip {
     url = "http://www-eu.apache.org/dist/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip";
-    sha256 = "13ycr6ppyrz9rq7dasabjdk8lcsxdj3krb4j7d2jmbh2hij1rdvf";
+    sha256 = "sha256-4/EcVjIc+8OMkll8OxE5oXiqk+w9k1Nv9ld8N7oFFp0=";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/opt
     cp -r ext lib $out/opt/
     install -D bin/gremlin.sh $out/opt/bin/gremlin-console
     makeWrapper $out/opt/bin/gremlin-console $out/bin/gremlin-console \
       --prefix PATH ":" "${openjdk}/bin/" \
       --set CLASSPATH "$out/opt/lib/"
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix b/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix
index 21128ac9119a..2d855d0c9fcc 100644
--- a/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gsimplecal";
-  version = "2.1";
+  version = "2.2";
 
   src = fetchurl {
     url = "https://github.com/dmedvinsky/gsimplecal/archive/v${version}.tar.gz";
-    sha256 = "1sa05ifjp41xipfspk5n6l3wzpzmp3i45q88l01p4l6k6drsq336";
+    sha256 = "sha256-f19cnTX83LZT2d01B1EdWSaHcfHqpFPTo5glYkAokq8=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/misc/gxkb/default.nix b/nixpkgs/pkgs/applications/misc/gxkb/default.nix
new file mode 100644
index 000000000000..8f6284c7d606
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gxkb/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk3, libwnck3, libxklavier
+, appindicatorSupport ? true, libayatana-appindicator-gtk3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gxkb";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "zen-tools";
+    repo = "gxkb";
+    rev = "v${version}";
+    sha256 = "1fmppvpfz8rip71agsc464fdz423qw0xy8i3pcic14cy5gcwh069";
+  };
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  buildInputs = [ gtk3 libwnck3 libxklavier ] ++ lib.optional appindicatorSupport libayatana-appindicator-gtk3;
+
+  configureFlags = lib.optional appindicatorSupport "--enable-appindicator=yes";
+  outputs = [ "out" "man" ];
+
+  meta = with lib; {
+    description = "X11 keyboard indicator and switcher";
+    homepage = "https://zen-tools.github.io/gxkb/";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.omgbebebe ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/hugo/default.nix b/nixpkgs/pkgs/applications/misc/hugo/default.nix
index 35246a45da27..bb748a1074c3 100644
--- a/nixpkgs/pkgs/applications/misc/hugo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/hugo/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.80.0";
+  version = "0.82.0";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xs9y5lj0mya6ag625x8j91mn9l9r13gxaqxyvl1fl40y2yjz1zm";
+    sha256 = "sha256-D0bwy8LJihlfM+E3oys85yjadjZNfPv5xnq4ekaZPCU=";
   };
 
-  vendorSha256 = "172mcs8p43bsdkd2hxg9qn6018fh8f36kxx0vgnq5q6fqsb6s1f6";
+  vendorSha256 = "sha256-pJBm+yyy1DbH28oVBQA+PHSDtSg3RcgbRlurrwnnEls=";
 
   doCheck = false;
 
@@ -21,6 +21,17 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    $out/bin/hugo gen man
+    installManPage man/*
+    installShellCompletion --cmd hugo \
+      --bash <($out/bin/hugo gen autocomplete --type=bash) \
+      --fish <($out/bin/hugo gen autocomplete --type=fish) \
+      --zsh <($out/bin/hugo gen autocomplete --type=zsh)
+  '';
+
   meta = with lib; {
     description = "A fast and modern static website engine";
     homepage = "https://gohugo.io";
diff --git a/nixpkgs/pkgs/applications/misc/icesl/default.nix b/nixpkgs/pkgs/applications/misc/icesl/default.nix
index 9f1431a23409..5c50ac245381 100644
--- a/nixpkgs/pkgs/applications/misc/icesl/default.nix
+++ b/nixpkgs/pkgs/applications/misc/icesl/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "0sl54fsb2gz6dy0bwdscpdq1ab6ph5b7zald3bwzgkqsvna7p1jr";
   } else throw "Unsupported architecture";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
     cp -r ./ $out
     mkdir $out/oldbin
diff --git a/nixpkgs/pkgs/applications/misc/index-fm/default.nix b/nixpkgs/pkgs/applications/misc/index-fm/default.nix
new file mode 100644
index 000000000000..328db9650014
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/index-fm/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, cmake
+, extra-cmake-modules
+, breeze-icons
+, karchive
+, kcoreaddons
+, ki18n
+, kio
+, kirigami2
+, mauikit
+, qtmultimedia
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+  pname = "index";
+  version = "1.2.1";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "maui";
+    repo = "index-fm";
+    rev = "v${version}";
+    sha256 = "1v6z44c88cqgr3b758yq6l5d2zj1vhlnaq7v8rrhs7s5dsimzlx8";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    breeze-icons
+    karchive
+    kcoreaddons
+    ki18n
+    kio
+    kirigami2
+    mauikit
+    qtmultimedia
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "Multi-platform file manager";
+    homepage = "https://invent.kde.org/maui/index-fm";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix b/nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix
deleted file mode 100644
index 0b8bcbfffac1..000000000000
--- a/nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ lib, stdenv, fetchurl, java, runtimeShell }:
-
-stdenv.mkDerivation rec {
-  pname = "jbidwatcher";
-  version = "2.5.6";
-
-  src = fetchurl {
-    url = "http://www.jbidwatcher.com/download/JBidwatcher-${version}.jar";
-    sha256 = "1cw59wh72w1zzibs8x64dma3jc4hry64wjksqs52nc3vpnf0fzfr";
-  };
-
-  buildInputs = [ java ];
-
-  jarfile = "$out/share/java/${pname}/JBidwatcher.jar";
-
-  dontUnpack = true;
-
-  dontBuild = true;
-
-  installPhase = ''
-    mkdir -p "$out/bin"
-    echo > "$out/bin/${pname}" "#!${runtimeShell}"
-    echo >>"$out/bin/${pname}" "${java}/bin/java -Xmx512m -jar ${jarfile}"
-    chmod +x "$out/bin/${pname}"
-    install -D -m644 ${src} ${jarfile}
-  '';
-
-  meta = {
-    homepage = "http://www.jbidwatcher.com/";
-    description = "Monitor and snipe Ebay auctions";
-    license = "LGPL";
-
-    longDescription = ''
-      A Java-based application allowing you to monitor auctions you're
-      not part of, submit bids, snipe (bid at the last moment), and
-      otherwise track your auction-site experience. It includes
-      adult-auction management, MANY currencies (pound, dollar (US,
-      Canada, Australian, and New Taiwanese) and euro, presently),
-      drag-and-drop of auction URLs, an original, unique and powerful
-      'multisniping' feature, a relatively nice UI, and is known to work
-      cleanly under Linux, Windows, Solaris, and MacOSX from the same
-      binary.
-    '';
-
-    platforms = lib.platforms.linux ++ lib.platforms.darwin;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock
index 65c747c40a50..15ef5d3b4c60 100644
--- a/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.1.0)
+    activesupport (6.1.3.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -10,19 +10,19 @@ GEM
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
     colorator (1.1.0)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     em-websocket (0.5.2)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0.6.0)
     eventmachine (1.2.7)
-    ffi (1.13.1)
+    ffi (1.15.0)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
     html-pipeline (2.14.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
-    i18n (1.8.5)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     jekyll (4.2.0)
       addressable (~> 2.4)
@@ -56,22 +56,24 @@ GEM
       gemoji (~> 3.0)
       html-pipeline (~> 2.2)
       jekyll (>= 3.0, < 5.0)
-    kramdown (2.3.0)
+    kramdown (2.3.1)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
     liquid (4.0.3)
-    listen (3.3.3)
+    listen (3.5.1)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     mercenary (0.4.0)
-    mini_portile2 (2.4.0)
-    minitest (5.14.2)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
+    mini_portile2 (2.5.0)
+    minitest (5.14.4)
+    nokogiri (1.11.2)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     pathutil (0.16.2)
       forwardable-extended (~> 2.6)
     public_suffix (4.0.6)
+    racc (1.5.2)
     rb-fsevent (0.10.4)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
@@ -82,7 +84,7 @@ GEM
       ffi (~> 1.9)
     terminal-table (2.0.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
-    tzinfo (2.0.3)
+    tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
     unicode-display_width (1.7.0)
     zeitwerk (2.4.2)
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix b/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix
index cc7be93510c6..fadbf8e32ba8 100644
--- a/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix
+++ b/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pflc2fch1bbgzk1rqgj21l6mgx025l92kd9arxjls98nf5am44v";
+      sha256 = "0l0khgrb7zn611xjnmygv5wdxh7wq645f613wldn5397q5w3l9lc";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   em-websocket = {
     dependencies = ["eventmachine" "http_parser.rb"];
@@ -67,10 +67,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   forwardable-extended = {
     groups = ["default"];
@@ -119,10 +119,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.10";
   };
   jekyll = {
     dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
@@ -218,10 +218,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+      sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -250,10 +250,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zpcgha7g33wvy2xbbc663cbjyvg9l1325lg3gzgcn3baydr9rha";
+      sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj";
       type = "gem";
     };
-    version = "3.3.3";
+    version = "3.5.1";
   };
   mercenary = {
     groups = ["default"];
@@ -270,31 +270,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.2";
+    version = "5.14.4";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.2";
   };
   pathutil = {
     dependencies = ["forwardable-extended"];
@@ -317,6 +317,16 @@
     };
     version = "4.0.6";
   };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rb-fsevent = {
     groups = ["default"];
     platforms = [];
@@ -396,10 +406,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1av5jzdij6vriwmf8crfvwaz2kik721ymg8svpxj3kx47kfha5vg";
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
       type = "gem";
     };
-    version = "2.0.3";
+    version = "2.0.4";
   };
   unicode-display_width = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock
index 969909ca6d0a..b3d3b9ca4993 100644
--- a/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.1.0)
+    activesupport (6.1.3.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -17,24 +17,26 @@ GEM
       execjs
     coffee-script-source (1.12.2)
     colorator (1.1.0)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     em-websocket (0.5.2)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0.6.0)
     eventmachine (1.2.7)
     execjs (2.7.0)
-    faraday (1.1.0)
+    faraday (1.3.0)
+      faraday-net_http (~> 1.0)
       multipart-post (>= 1.2, < 3)
       ruby2_keywords
+    faraday-net_http (1.0.1)
     fast-stemmer (1.0.2)
-    ffi (1.13.1)
+    ffi (1.15.0)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
     html-pipeline (2.14.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
-    i18n (1.8.5)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     jekyll (4.2.0)
       addressable (~> 2.4)
@@ -64,7 +66,7 @@ GEM
       html-pipeline (~> 2.3)
       jekyll (>= 3.7, < 5.0)
     jekyll-paginate (1.1.0)
-    jekyll-polyglot (1.3.3)
+    jekyll-polyglot (1.4.0)
       jekyll (>= 3.0)
     jekyll-redirect-from (0.16.0)
       jekyll (>= 3.3, < 5.0)
@@ -80,7 +82,7 @@ GEM
       gemoji (~> 3.0)
       html-pipeline (~> 2.2)
       jekyll (>= 3.0, < 5.0)
-    kramdown (2.3.0)
+    kramdown (2.3.1)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
@@ -90,31 +92,33 @@ GEM
     liquid (4.0.3)
     liquid-c (4.0.0)
       liquid (>= 3.0.0)
-    listen (3.3.3)
+    listen (3.5.1)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     mercenary (0.4.0)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2020.1104)
-    mini_portile2 (2.4.0)
-    minitest (5.14.2)
+    mime-types-data (3.2021.0225)
+    mini_portile2 (2.5.0)
+    minitest (5.14.4)
     multipart-post (2.1.1)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
-    octokit (4.19.0)
+    nokogiri (1.11.2)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    octokit (4.20.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
     pathutil (0.16.2)
       forwardable-extended (~> 2.6)
     public_suffix (4.0.6)
+    racc (1.5.2)
     rb-fsevent (0.10.4)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
-    rdoc (6.2.1)
+    rdoc (6.3.0)
     rexml (3.2.4)
     rouge (3.26.0)
-    ruby2_keywords (0.0.2)
+    ruby2_keywords (0.0.4)
     safe_yaml (1.0.5)
     sassc (2.4.0)
       ffi (~> 1.9)
@@ -124,7 +128,7 @@ GEM
     terminal-table (2.0.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
     tomlrb (1.3.0)
-    tzinfo (2.0.3)
+    tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
     unicode-display_width (1.7.0)
     yajl-ruby (1.4.1)
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix b/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix
index bfbe428c861d..7a6814aaa32d 100644
--- a/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix
+++ b/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pflc2fch1bbgzk1rqgj21l6mgx025l92kd9arxjls98nf5am44v";
+      sha256 = "0l0khgrb7zn611xjnmygv5wdxh7wq645f613wldn5397q5w3l9lc";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -90,10 +90,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   em-websocket = {
     dependencies = ["eventmachine" "http_parser.rb"];
@@ -127,15 +127,25 @@
     version = "2.7.0";
   };
   faraday = {
-    dependencies = ["multipart-post" "ruby2_keywords"];
+    dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16dapwi5pivrl25r4lkr1mxjrzkznj4wlcb08fzkmxnj4g5c6y35";
+      sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.3.0";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
+      type = "gem";
+    };
+    version = "1.0.1";
   };
   fast-stemmer = {
     groups = ["default"];
@@ -164,10 +174,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   forwardable-extended = {
     groups = ["default"];
@@ -216,10 +226,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.10";
   };
   jekyll = {
     dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
@@ -303,10 +313,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "4ad9140733250b65bc1ffab84650c588d036d23129e82f0349d31e56f1fe10a8";
+      sha256 = "0klf363dsdsi90rsnc9047b3hbg88gagkq2sqzmmg5r1nhy7hyyr";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.4.0";
   };
   jekyll-redirect-from = {
     dependencies = ["jekyll"];
@@ -380,10 +390,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+      sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -458,10 +468,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zpcgha7g33wvy2xbbc663cbjyvg9l1325lg3gzgcn3baydr9rha";
+      sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj";
       type = "gem";
     };
-    version = "3.3.3";
+    version = "3.5.1";
   };
   mercenary = {
     groups = ["default"];
@@ -489,30 +499,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
+      sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
       type = "gem";
     };
-    version = "3.2020.1104";
+    version = "3.2021.0225";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.2";
+    version = "5.14.4";
   };
   multipart-post = {
     groups = ["default"];
@@ -525,15 +535,15 @@
     version = "2.1.1";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.2";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -541,10 +551,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dz8na8fk445yqrwpkl31fimnap7p4xf9m9qm9i7cpvaxxgk2n24";
+      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
       type = "gem";
     };
-    version = "4.19.0";
+    version = "4.20.0";
   };
   pathutil = {
     dependencies = ["forwardable-extended"];
@@ -567,6 +577,16 @@
     };
     version = "4.0.6";
   };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rb-fsevent = {
     groups = ["default"];
     platforms = [];
@@ -593,10 +613,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08862mr1575j8g32wma4pv2qwj4xpllk29i5j61hgf9nwn64afhc";
+      sha256 = "1rz1492df18161qwzswm86gav0dnqz715kxzw5yfnv0ka43d4zc4";
       type = "gem";
     };
-    version = "6.2.1";
+    version = "6.3.0";
   };
   rexml = {
     groups = ["default"];
@@ -623,10 +643,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
       type = "gem";
     };
-    version = "0.0.2";
+    version = "0.0.4";
   };
   safe_yaml = {
     groups = ["default"];
@@ -687,10 +707,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1av5jzdij6vriwmf8crfvwaz2kik721ymg8svpxj3kx47kfha5vg";
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
       type = "gem";
     };
-    version = "2.0.3";
+    version = "2.0.4";
   };
   unicode-display_width = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/applications/misc/josm/default.nix b/nixpkgs/pkgs/applications/misc/josm/default.nix
index 28c7de12c8c8..badda6b17ee6 100644
--- a/nixpkgs/pkgs/applications/misc/josm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/josm/default.nix
@@ -1,20 +1,20 @@
 { lib, stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
 let
   pname = "josm";
-  version = "17428";
+  version = "17702";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      sha256 = "0fhnq0836jp72br808hhw1ki70zc9wqcwfhnizb8pzjvs4wgx36w";
+      sha256 = "1p7p0jd87sxrs5n0r82apkilx0phgmjw7vpdg8qrr5msda4rsmpk";
     };
     macosx = fetchurl {
-      url = "https://josm.openstreetmap.de/download/macosx/josm-macosx-${version}.zip";
-      sha256 = "126yy6y7mkpqzkrkqkzzn3mwnl1yjkmd5k895k7mmk2inmcsvqgm";
+      url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java16.zip";
+      sha256 = "0r17cphxm852ykb8mkil29rr7sb0bj5w69qd5wz8zf2f9djk9npk";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
       rev = version;
-      sha256 = "198kq490y5wzxz0a5prb9anykq6dzg0imxfkchsas233inbzggql";
+      sha256 = "1b7dryvakph8znh2ahgywch66l4bl5rmgsr79axnz1xi12g8ac12";
     };
   };
 in
@@ -23,7 +23,8 @@ stdenv.mkDerivation {
 
   dontUnpack = true;
 
-  buildInputs = lib.optionals (!stdenv.isDarwin) [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = lib.optionals (!stdenv.isDarwin) [ jre ];
 
   installPhase =
     if stdenv.isDarwin then ''
diff --git a/nixpkgs/pkgs/applications/misc/jrnl/default.nix b/nixpkgs/pkgs/applications/misc/jrnl/default.nix
index 8d2cabb5b8b2..37142cd20eb5 100644
--- a/nixpkgs/pkgs/applications/misc/jrnl/default.nix
+++ b/nixpkgs/pkgs/applications/misc/jrnl/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonApplication rec {
   pname = "jrnl";
-  version = "2.7";
+  version = "2.8";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "jrnl-org";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hyjjw9mxy73n3pkliaaif135h2sd4iy43pw9d5zynid5abnr3yz";
+    sha256 = "1zpsvrjhami9y7204yjbdzi04bkkz6i3apda9fh3hbq83y6wzprz";
   };
 
   nativeBuildInputs = [ poetry ];
diff --git a/nixpkgs/pkgs/applications/misc/kdbplus/default.nix b/nixpkgs/pkgs/applications/misc/kdbplus/default.nix
index d27a10af20c6..8ee8337bea2a 100644
--- a/nixpkgs/pkgs/applications/misc/kdbplus/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kdbplus/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   };
 
   dontStrip = true;
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   phases = "unpackPhase installPhase";
   unpackPhase = "mkdir ${pname}-${version} && cd ${pname}-${version} && unzip -qq ${src}";
diff --git a/nixpkgs/pkgs/applications/misc/keepass/default.nix b/nixpkgs/pkgs/applications/misc/keepass/default.nix
index 32572ffcdb3b..843193bba182 100644
--- a/nixpkgs/pkgs/applications/misc/keepass/default.nix
+++ b/nixpkgs/pkgs/applications/misc/keepass/default.nix
@@ -12,7 +12,8 @@ with builtins; buildDotnetPackage rec {
 
   sourceRoot = ".";
 
-  buildInputs = [ unzip makeWrapper icoutils ];
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ icoutils ];
 
   patches = [
     (substituteAll {
diff --git a/nixpkgs/pkgs/applications/misc/keepassx/community.nix b/nixpkgs/pkgs/applications/misc/keepassx/community.nix
index c7e87dbbfd44..af259c199d89 100644
--- a/nixpkgs/pkgs/applications/misc/keepassx/community.nix
+++ b/nixpkgs/pkgs/applications/misc/keepassx/community.nix
@@ -34,6 +34,8 @@
 , withKeePassNetworking ? true
 , withKeePassTouchID ? true
 , withKeePassFDOSecrets ? true
+
+, nixosTests
 }:
 
 with lib;
@@ -118,6 +120,8 @@ stdenv.mkDerivation rec {
     wrapQtApp $out/Applications/KeePassXC.app/Contents/MacOS/KeePassXC
   '';
 
+  passthru.tests = nixosTests.keepassxc;
+
   meta = {
     description = "Password manager to store your passwords safely and auto-type them into your everyday websites and applications";
     longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI, CLI, and browser integration with the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser).";
diff --git a/nixpkgs/pkgs/applications/misc/keeweb/default.nix b/nixpkgs/pkgs/applications/misc/keeweb/default.nix
index 391e698dcf7f..3b2ca74c6423 100644
--- a/nixpkgs/pkgs/applications/misc/keeweb/default.nix
+++ b/nixpkgs/pkgs/applications/misc/keeweb/default.nix
@@ -1,10 +1,10 @@
-{ lib, stdenv, fetchurl, appimageTools, undmg, libsecret }:
+{ lib, stdenv, fetchurl, appimageTools, undmg, libsecret, libxshmfence }:
 let
   inherit (stdenv.hostPlatform) system;
   throwSystem = throw "Unsupported system: ${system}";
 
   pname = "keeweb";
-  version = "1.16.7";
+  version = "1.17.0";
   name = "${pname}-${version}";
 
   suffix = {
@@ -16,9 +16,9 @@ let
   src = fetchurl {
     url = "https://github.com/keeweb/keeweb/releases/download/v${version}/KeeWeb-${version}.${suffix}";
     sha256 = {
-      x86_64-linux = "0a4yh2jh9sph17mqqi62gm5jc4yffkysq6yiggyzz5f8xw4p315j";
-      x86_64-darwin = "0ix1apddqvz561pw5lx47x091wlfj27zh8k8v7kn5xvm09hswfkr";
-      aarch64-darwin = "0p0kql79kcb3w947g1ljhbj15b8aqrwcrbi0cknb12f6iq47lkz7";
+      x86_64-linux = "1c7zvwnd46d3lrlcdigv341flz44jl6mnvr6zqny5mfz221ynbj7";
+      x86_64-darwin = "1n4haxychm5jjhjnpncavjh0wr4dagqi78qfsx5gwlv86hzryzwy";
+      aarch64-darwin = "1j7z63cbfms02f2lhl949wy3lc376jw8kqmjfn9j949s0l5fanpb";
     }.${system} or throwSystem;
   };
 
@@ -29,6 +29,7 @@ let
   meta = with lib; {
     description = "Free cross-platform password manager compatible with KeePass";
     homepage = "https://keeweb.info/";
+    changelog = "https://github.com/keeweb/keeweb/blob/v${version}/release-notes.md";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
@@ -37,7 +38,7 @@ let
   linux = appimageTools.wrapType2 rec {
     inherit name src meta;
 
-    extraPkgs = pkgs: with pkgs; [ libsecret ];
+    extraPkgs = pkgs: with pkgs; [ libsecret libxshmfence ];
 
     extraInstallCommands = ''
       mv $out/bin/{${name},${pname}}
@@ -54,11 +55,11 @@ let
 
     nativeBuildInputs = [ undmg ];
 
-    sourceRoot = "KeeWeb.app";
+    sourceRoot = ".";
 
     installPhase = ''
-      mkdir -p $out/Applications/KeeWeb.app
-      cp -R . $out/Applications/KeeWeb.app
+      mkdir -p $out/Applications
+      cp -r *.app $out/Applications
     '';
   };
 in
diff --git a/nixpkgs/pkgs/applications/misc/khard/default.nix b/nixpkgs/pkgs/applications/misc/khard/default.nix
index 3bec8db06874..64e41eaa3d25 100644
--- a/nixpkgs/pkgs/applications/misc/khard/default.nix
+++ b/nixpkgs/pkgs/applications/misc/khard/default.nix
@@ -1,4 +1,4 @@
-{ lib, glibcLocales, python3 }:
+{ lib, python3 }:
 
 python3.pkgs.buildPythonApplication rec {
   version = "0.17.0";
@@ -9,6 +9,11 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "062nv4xkfsjc11k9m52dh6xjn9z68a4a6x1s8z05wwv4jbp1lkhn";
   };
 
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+  nativeBuildInputs = [
+    python3.pkgs.setuptools-scm
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     atomicwrites
     configobj
diff --git a/nixpkgs/pkgs/applications/misc/kiwix/default.nix b/nixpkgs/pkgs/applications/misc/kiwix/default.nix
index dff50bafaf80..f3406d4159b8 100644
--- a/nixpkgs/pkgs/applications/misc/kiwix/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kiwix/default.nix
@@ -1,109 +1,48 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config
-, zip, python, zlib, which, icu, libmicrohttpd, lzma, aria2, wget, bc
-, libuuid, libX11, libXext, libXt, libXrender, glib, dbus, dbus-glib
-, gtk2, gdk-pixbuf, pango, cairo, freetype, fontconfig, alsaLib, atk, cmake
-, xapian, ctpp2, zimlib
+{ lib, mkDerivation, fetchFromGitHub
+, callPackage
+, pkg-config
+, makeWrapper
+, qmake
+, qtbase
+, qtwebengine
+, qtsvg
+, qtimageformats
+, aria2
 }:
 
-with lib;
-
-let
-  xulrunner64_tar = fetchurl {
-    url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.tar.bz2";
-    sha256 = "0i3m30gm5z7qmas14id6ypvbmnb2k7jhz8aby2wz5vvv49zqmx3s";
-  };
-  xulrunnersdk64_tar = fetchurl {
-    url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.sdk.tar.bz2";
-    sha256 = "0z90v7c4mq15g5klmsj8vs2r10fbygj3qzynx4952hkv8ihw8n3a";
-  };
-  xulrunner32_tar = fetchurl {
-    url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-i686.tar.bz2";
-    sha256 = "0yln6pxz8f6b9wm9124sx049z8mgi17lgd63rcv2hnix825y8gjb";
-  };
-  xulrunnersdk32_tar = fetchurl {
-    url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-i686.sdk.tar.bz2";
-    sha256 = "1h9vcbvf8wgds6i2z20y7krpys0mqsqhv1ijyfljanp6vyll9fvi";
-  };
-
-  xulrunner = if stdenv.hostPlatform.system == "x86_64-linux"
-              then { tar = xulrunner64_tar; sdk = xulrunnersdk64_tar; }
-              else { tar = xulrunner32_tar; sdk = xulrunnersdk32_tar; };
-
-  pugixml = stdenv.mkDerivation rec {
-    version = "1.2";
-    pname = "pugixml";
-
-    src = fetchurl {
-      url = "http://download.kiwix.org/dev/${pname}-${version}.tar.gz";
-      sha256 = "0sqk0vdwjq44jxbbkj1cy8qykrmafs1sickzldb2w2nshsnjshhg";
-    };
-
-    nativeBuildInputs = [ cmake ];
-
-    unpackPhase = ''
-      # not a nice src archive: all the files are in the root :(
-      mkdir ${pname}-${version}
-      cd ${pname}-${version}
-      tar -xf ${src}
-
-      # and the build scripts are in there :'(
-      cd scripts
-    '';
-  };
-
-in
-
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "kiwix";
-  version = "0.9";
+  version = "2.0.5";
 
-  src = fetchurl {
-    url = "http://download.kiwix.org/src/kiwix-${version}-src.tar.xz";
-    sha256 = "0577phhy2na59cpcqjgldvksp0jwczyg0l6c9ghnr19i375l7yqc";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "${pname}-desktop";
+    rev = version;
+    sha256 = "12v43bcg4g8fcp02y2srsfdvcb7dpl4pxb9z7a235006s0kfv8yn";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [
-    zip python zlib xapian which icu libmicrohttpd
-    lzma zimlib ctpp2 aria2 wget bc libuuid makeWrapper pugixml
+  nativeBuildInputs = [
+    qmake
+    pkg-config
   ];
 
-  postUnpack = ''
-    cd kiwix*
-    mkdir static
-    cp Makefile.in static/
-
-    cd src/dependencies
-
-    tar -xf ${xulrunner.tar}
-    tar -xf ${xulrunner.sdk}
-
-    cd ../../..
-  '';
-
-  configureFlags = [
-    "--disable-staticbins"
+  buildInputs = [
+    qtbase
+    qtwebengine
+    qtsvg
+    qtimageformats
+    (callPackage ./lib.nix {})
   ];
 
-  postInstall = ''
-    cp -r src/dependencies/xulrunner $out/lib/kiwix
-
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/lib/kiwix/xulrunner/xulrunner
-
-    rm $out/bin/kiwix
-    makeWrapper $out/lib/kiwix/kiwix-launcher $out/bin/kiwix \
-      --suffix LD_LIBRARY_PATH : ${makeLibraryPath [stdenv.cc.cc libX11 libXext libXt libXrender glib dbus dbus-glib gtk2 gdk-pixbuf pango cairo freetype fontconfig alsaLib atk]} \
-      --suffix PATH : ${aria2}/bin
-  '';
+  qtWrapperArgs = [
+    "--prefix PATH : ${lib.makeBinPath [ aria2 ]}"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "An offline reader for Web content";
     homepage = "https://kiwix.org";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ robbinch ];
-    knownVulnerabilities = [
-      "CVE-2015-1032"
-    ];
+    maintainers = with maintainers; [ ajs124 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/kiwix/lib.nix b/nixpkgs/pkgs/applications/misc/kiwix/lib.nix
new file mode 100644
index 000000000000..dcde5c390a47
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kiwix/lib.nix
@@ -0,0 +1,55 @@
+{ stdenv, lib, fetchFromGitHub
+, meson, ninja, pkg-config
+, python3
+, curl
+, icu
+, pugixml
+, zimlib
+, zlib
+, libmicrohttpd
+, mustache-hpp
+, gtest
+}:
+
+
+stdenv.mkDerivation rec {
+  pname = "kiwix-lib";
+  version = "9.4.1";
+
+  src = fetchFromGitHub {
+    owner = "kiwix";
+    repo = pname;
+    rev = version;
+    sha256 = "034nk6l623v78clrs2d0k1vg69sbzrd8c0q79qiqmlkinck1nkxw";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    python3
+  ];
+
+  buildInputs = [
+    icu
+    zlib
+    mustache-hpp
+  ];
+
+  propagatedBuildInputs = [
+    curl
+    libmicrohttpd
+    pugixml
+    zimlib
+  ];
+
+  checkInputs = [
+    gtest
+  ];
+
+  doCheck = true;
+
+  postPatch = ''
+    patchShebangs scripts
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/misc/klayout/default.nix b/nixpkgs/pkgs/applications/misc/klayout/default.nix
index 60905be3b1b2..d1326848d2d6 100644
--- a/nixpkgs/pkgs/applications/misc/klayout/default.nix
+++ b/nixpkgs/pkgs/applications/misc/klayout/default.nix
@@ -1,17 +1,17 @@
 { lib, mkDerivation, fetchFromGitHub, fetchpatch
-, python, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
+, python3, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
 , which, perl, makeWrapper
 }:
 
 mkDerivation rec {
   pname = "klayout";
-  version = "0.26.8";
+  version = "0.26.10";
 
   src = fetchFromGitHub {
     owner = "KLayout";
     repo = "klayout";
     rev = "v${version}";
-    sha256 = "0pkhvxcfk70dnmgczyyq585mxrfwqai44ikshs4c1imh92z25llq";
+    sha256 = "sha256-h2jCmLZ2pRlK8VblQosBX0ZcoHDnn4oYeSqzA3y1Tzg=";
   };
 
   postPatch = ''
@@ -21,11 +21,11 @@ mkDerivation rec {
 
   nativeBuildInputs = [
     which
+    python3
+    ruby
   ];
 
   buildInputs = [
-    python
-    ruby
     qtbase
     qtmultimedia
     qttools
diff --git a/nixpkgs/pkgs/applications/misc/koreader/default.nix b/nixpkgs/pkgs/applications/misc/koreader/default.nix
index a903600b46d2..eadd5cae50d5 100644
--- a/nixpkgs/pkgs/applications/misc/koreader/default.nix
+++ b/nixpkgs/pkgs/applications/misc/koreader/default.nix
@@ -11,12 +11,12 @@
 let font-droid = nerdfonts.override { fonts = [ "DroidSansMono" ]; };
 in stdenv.mkDerivation rec {
   pname = "koreader";
-  version = "2021.01.1";
+  version = "2021.03";
 
   src = fetchurl {
     url =
       "https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb";
-    sha256 = "0kignyia2xrg84bqzsp8rid4c79zg11lhw52z1854jw9v9324pja";
+    sha256 = "sha256-XdCyx+SdcV1QitDVkOl9EZCHpU8Qiwu0qhcXkU6b+9o=";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/applications/misc/lavalauncher/default.nix b/nixpkgs/pkgs/applications/misc/lavalauncher/default.nix
new file mode 100644
index 000000000000..533d3757a6ef
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/lavalauncher/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchgit
+, meson
+, ninja
+, pkg-config
+, scdoc
+, cairo
+, librsvg
+, wayland
+, wayland-protocols
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lavalauncher";
+  version = "2.0.0";
+
+  src = fetchgit {
+    url = "https://git.sr.ht/~leon_plickat/lavalauncher";
+    rev = "v${version}";
+    sha256 = "MXREycR4ZetTe71ZwEqyozMJN9OLTDvU0W4J8qkTQAs=";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config scdoc ];
+  buildInputs = [
+    cairo
+    librsvg
+    wayland
+    wayland-protocols
+  ];
+
+  meta = with lib; {
+    homepage = "https://git.sr.ht/~leon_plickat/lavalauncher";
+    description = "A simple launcher panel for Wayland desktops";
+    longDescription = ''
+      LavaLauncher is a simple launcher panel for Wayland desktops.
+
+      It displays a dynamically sized bar with user defined buttons. Buttons
+      consist of an image, which is displayed as the button icon on the bar, and
+      at least one shell command, which is executed when the user activates the
+      button.
+
+      Buttons can be activated with pointer and touch events.
+
+      A single LavaLauncher instance can provide multiple such bars, across
+      multiple outputs.
+
+      The Wayland compositor must implement the Layer-Shell and XDG-Output for
+      LavaLauncher to work.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/librecad/default.nix b/nixpkgs/pkgs/applications/misc/librecad/default.nix
index 08bf01aea611..691ebb4ba682 100644
--- a/nixpkgs/pkgs/applications/misc/librecad/default.nix
+++ b/nixpkgs/pkgs/applications/misc/librecad/default.nix
@@ -1,7 +1,6 @@
 { lib
 , boost
 , fetchFromGitHub
-, fetchpatch
 , installShellFiles
 , mkDerivationWith
 , muparser
@@ -11,36 +10,20 @@
 , qtsvg
 , qttools
 , runtimeShell
-, gcc8Stdenv
+, stdenv
 }:
 
-let
-  stdenv = gcc8Stdenv;
-in
-
-  # Doesn't build with gcc9
 mkDerivationWith stdenv.mkDerivation rec {
   pname = "librecad";
-  version = "2.2.0-rc1";
+  version = "2.2.0-rc2";
 
   src = fetchFromGitHub {
     owner = "LibreCAD";
     repo = "LibreCAD";
     rev = version;
-    sha256 = "0kwj838hqzbw95gl4x6scli9gj3gs72hdmrrkzwq5rjxam18k3f3";
+    sha256 = "sha256-RNg7ioMriH4A7V65+4mh8NhsUHs/8IbTt38nVkYilCE=";
   };
 
-  patches = [
-    ./fix_qt_5_11_build.patch
-    (
-      fetchpatch {
-        # Fix missing app name and icon on Wayland.
-        url = "https://github.com/LibreCAD/LibreCAD/commit/a17f8281093403f0c7c36996232665ed21906688.patch";
-        sha256 = "1x46psh4bcx2hxck4l83ki43g1252vb033i2x94h4rpai9hww4d5";
-      }
-    )
-  ];
-
   postPatch = ''
     substituteInPlace scripts/postprocess-unix.sh \
       --replace /bin/sh ${runtimeShell}
@@ -88,16 +71,11 @@ mkDerivationWith stdenv.mkDerivation rec {
     qttools
   ];
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "2D CAD package based on Qt";
     homepage = "https://librecad.org";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [
-      kiwi
-      viric
-    ];
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ kiwi viric ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch b/nixpkgs/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch
deleted file mode 100644
index 04701e5ab1ee..000000000000
--- a/nixpkgs/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/librecad/src/ui/forms/qg_commandwidget.cpp b/librecad/src/ui/forms/qg_commandwidget.cpp
-index 835e47d..2c878e8 100644
---- a/librecad/src/ui/forms/qg_commandwidget.cpp
-+++ b/librecad/src/ui/forms/qg_commandwidget.cpp
-@@ -27,6 +27,7 @@
- 
- #include <algorithm>
- 
-+#include <QAction>
- #include <QKeyEvent>
- #include <QFileDialog>
- #include <QSettings>
-diff --git a/librecad/src/ui/generic/colorwizard.cpp b/librecad/src/ui/generic/colorwizard.cpp
-index 2beaceb..84068ad 100644
---- a/librecad/src/ui/generic/colorwizard.cpp
-+++ b/librecad/src/ui/generic/colorwizard.cpp
-@@ -27,6 +27,7 @@
- #include "colorwizard.h"
- #include "ui_colorwizard.h"
- 
-+#include <QAction>
- #include <QColorDialog>
- #include <QLineEdit>
- #include <QListWidget>
-diff --git a/librecad/src/ui/generic/widgetcreator.cpp b/librecad/src/ui/generic/widgetcreator.cpp
-index 7c35144..0e394f2 100644
---- a/librecad/src/ui/generic/widgetcreator.cpp
-+++ b/librecad/src/ui/generic/widgetcreator.cpp
-@@ -27,6 +27,7 @@
- #include "widgetcreator.h"
- #include "ui_widgetcreator.h"
- 
-+#include <QActionGroup>
- #include <QSettings>
- #include <QLineEdit>
- #include <QPushButton>
diff --git a/nixpkgs/pkgs/applications/misc/logseq/default.nix b/nixpkgs/pkgs/applications/misc/logseq/default.nix
new file mode 100644
index 000000000000..373d44118d7c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/logseq/default.nix
@@ -0,0 +1,52 @@
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron }:
+
+stdenv.mkDerivation rec {
+  pname = "logseq";
+  version = "0.0.15";
+
+  src = fetchurl {
+    url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
+    sha256 = "4mnS2ikDPmIyT4P8zXssk6AVx50C24bsP4WpD5xJbD8=";
+    name = "${pname}-${version}.AppImage";
+  };
+
+  appimageContents = appimageTools.extract {
+    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}/Logseq.desktop $out/share/applications/${pname}.desktop
+
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace Exec=Logseq Exec=${pname} \
+      --replace Icon=Logseq Icon=$out/share/${pname}/resources/app/icons/logseq.png
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+      --add-flags $out/share/${pname}/resources/app
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base";
+    homepage = "https://github.com/logseq/logseq";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ weihua ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/logseq/update.sh b/nixpkgs/pkgs/applications/misc/logseq/update.sh
new file mode 100755
index 000000000000..9f83eefad191
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/logseq/update.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts
+
+version="$(curl -sL "https://api.github.com/repos/logseq/logseq/releases" | jq '.[0].tag_name' --raw-output)"
+update-source-version logseq "$version"
diff --git a/nixpkgs/pkgs/applications/misc/lscolors/cargo.lock.patch b/nixpkgs/pkgs/applications/misc/lscolors/cargo.lock.patch
new file mode 100644
index 000000000000..2f233a0667b8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/lscolors/cargo.lock.patch
@@ -0,0 +1,159 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..3528c6c
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,153 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "ansi_term"
++version = "0.12.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "getrandom"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.86"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
++
++[[package]]
++name = "lscolors"
++version = "0.7.1"
++dependencies = [
++ "ansi_term",
++ "tempfile",
++]
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
++
++[[package]]
++name = "rand"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
++dependencies = [
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
++dependencies = [
++ "ppv-lite86",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
++dependencies = [
++ "getrandom",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
++dependencies = [
++ "bitflags",
++]
++
++[[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 = "tempfile"
++version = "3.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "rand",
++ "redox_syscall",
++ "remove_dir_all",
++ "winapi",
++]
++
++[[package]]
++name = "wasi"
++version = "0.10.2+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/nixpkgs/pkgs/applications/misc/lscolors/default.nix b/nixpkgs/pkgs/applications/misc/lscolors/default.nix
new file mode 100644
index 000000000000..76e4792ab1c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/lscolors/default.nix
@@ -0,0 +1,26 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "lscolors";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "sharkdp";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0av3v31fvanvn59bdm9d0v9zh5lzrq0f4vqhg6xlvabkgsa8jk04";
+  };
+
+  cargoPatches = [
+    ./cargo.lock.patch
+  ];
+
+  cargoSha256 = "02k23idwy0sb4lnjrwnyah3qp22zj161ilbc13p75k0hdijfaxl5";
+
+  meta = with lib; {
+    description = "Rust library and tool to colorize paths using LS_COLORS";
+    homepage = "https://github.com/sharkdp/lscolors";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/lutris/default.nix b/nixpkgs/pkgs/applications/misc/lutris/default.nix
index cb8494e1c48d..bacaf88e5cf5 100644
--- a/nixpkgs/pkgs/applications/misc/lutris/default.nix
+++ b/nixpkgs/pkgs/applications/misc/lutris/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonApplication, lib, fetchFromGitHub, fetchpatch
+{ buildPythonApplication, lib, fetchFromGitHub
 
 # build inputs
 , atk
diff --git a/nixpkgs/pkgs/applications/misc/lyx/default.nix b/nixpkgs/pkgs/applications/misc/lyx/default.nix
index 800de77f1c57..7cab86df9671 100644
--- a/nixpkgs/pkgs/applications/misc/lyx/default.nix
+++ b/nixpkgs/pkgs/applications/misc/lyx/default.nix
@@ -3,12 +3,12 @@
 }:
 
 mkDerivation rec {
-  version = "2.3.6";
+  version = "2.3.6.1";
   pname = "lyx";
 
   src = fetchurl {
     url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${pname}-${version}.tar.xz";
-    sha256 = "160whjwwrmxizdakjlkf9xc86bhqfnslw47fixgqq4qhbapcxxkg";
+    sha256 = "sha256-xr7SYzQZiY4Bp8w1AxDX2TS/WRyrcln8JYGqTADq+ng=";
   };
 
   # LaTeX is used from $PATH, as people often want to have it with extra pkgs
diff --git a/nixpkgs/pkgs/applications/misc/marktext/default.nix b/nixpkgs/pkgs/applications/misc/marktext/default.nix
index 83a7aabaef7b..c98d40ab2e14 100644
--- a/nixpkgs/pkgs/applications/misc/marktext/default.nix
+++ b/nixpkgs/pkgs/applications/misc/marktext/default.nix
@@ -25,7 +25,7 @@ appimageTools.wrapType2 rec {
   multiPkgs = null; # no 32bit needed
   extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
     p.libsecret
-    p.xlibs.libxkbfile
+    p.xorg.libxkbfile
   ];
 
   # Strip version from binary name.
diff --git a/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix b/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
index 3e8aacb98957..89d7c2df741a 100644
--- a/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -2,11 +2,11 @@
 , desktop-file-utils, libSM, imagemagick }:
 
 stdenv.mkDerivation rec {
-  version = "20.09";
+  version = "21.03";
   pname = "mediainfo-gui";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "0rqg9z7s5bk7vlvjrs4gackzg7ib05a0dffi2ihsjf5a7kw7wcir";
+    sha256 = "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/applications/misc/mediainfo/default.nix b/nixpkgs/pkgs/applications/misc/mediainfo/default.nix
index 7c81e9607f92..70f463c02364 100644
--- a/nixpkgs/pkgs/applications/misc/mediainfo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mediainfo/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "20.09";
+  version = "21.03";
   pname = "mediainfo";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "0rqg9z7s5bk7vlvjrs4gackzg7ib05a0dffi2ihsjf5a7kw7wcir";
+    sha256 = "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/applications/misc/megasync/default.nix b/nixpkgs/pkgs/applications/misc/megasync/default.nix
index c302a4b4a074..9ae6fda9fcec 100644
--- a/nixpkgs/pkgs/applications/misc/megasync/default.nix
+++ b/nixpkgs/pkgs/applications/misc/megasync/default.nix
@@ -6,7 +6,6 @@
 , curl
 , doxygen
 , fetchFromGitHub
-, fetchpatch
 , ffmpeg_3
 , libmediainfo
 , libraw
@@ -39,7 +38,7 @@ mkDerivation rec {
   };
 
   nativeBuildInputs =
-    [ autoconf automake doxygen lsb-release pkg-config qttools swig ];
+    [ autoconf automake doxygen lsb-release pkg-config qttools swig unzip ];
   buildInputs = [
     c-ares
     cryptopp
@@ -54,7 +53,6 @@ mkDerivation rec {
     qtbase
     qtx11extras
     sqlite
-    unzip
     wget
   ];
 
diff --git a/nixpkgs/pkgs/applications/misc/merkaartor/default.nix b/nixpkgs/pkgs/applications/misc/merkaartor/default.nix
index 8eee8c1f09fe..010d28eef591 100644
--- a/nixpkgs/pkgs/applications/misc/merkaartor/default.nix
+++ b/nixpkgs/pkgs/applications/misc/merkaartor/default.nix
@@ -1,5 +1,20 @@
-{ mkDerivation, lib, fetchFromGitHub, qmake, pkg-config, fetchpatch
-, boost, gdal, proj, qtbase, qtsvg, qtwebview, qtwebkit }:
+{ mkDerivation
+, lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, qmake
+, qttools
+, qttranslations
+, gdal
+, proj
+, qtsvg
+, qtwebkit
+, withGeoimage ? true, exiv2
+, withGpsdlib ? (!stdenv.isDarwin), gpsd
+, withLibproxy ? false, libproxy
+, withZbar ? false, zbar
+}:
 
 mkDerivation rec {
   pname = "merkaartor";
@@ -13,24 +28,48 @@ mkDerivation rec {
   };
 
   patches = [
+    # Fix build with Qt 5.15 (missing QPainterPath include)
     (fetchpatch {
       url = "https://github.com/openstreetmap/merkaartor/commit/e72553a7ea2c7ba0634cc3afcd27a9f7cfef089c.patch";
       sha256 = "NAisplnS3xHSlRpX+fH15NpbaD+uM57OCsTYGKlIR7U=";
     })
+    # Added a condition to use the new timespec_t on gpsd APIs >= 9
+    (fetchpatch {
+      url = "https://github.com/openstreetmap/merkaartor/commit/13b358fa7899bb34e277b32a4c0d92833050f2c6.patch";
+      sha256 = "129fpjm7illz7ngx3shps5ivrxwf14apw55842xhskwwb0rf5szb";
+    })
   ];
 
-  nativeBuildInputs = [ qmake pkg-config ];
+  nativeBuildInputs = [ qmake qttools ];
+
+  buildInputs = [ gdal proj qtsvg qtwebkit ]
+    ++ lib.optional withGeoimage exiv2
+    ++ lib.optional withGpsdlib gpsd
+    ++ lib.optional withLibproxy libproxy
+    ++ lib.optional withZbar zbar;
 
-  buildInputs = [ boost gdal proj qtbase qtsvg qtwebview qtwebkit ];
+  preConfigure = ''
+    lrelease src/src.pro
+  '';
 
-  enableParallelBuilding = true;
+  qmakeFlags = [ "TRANSDIR_SYSTEM=${qttranslations}/translations" ]
+    ++ lib.optional withGeoimage "GEOIMAGE=1"
+    ++ lib.optional withGpsdlib "GPSDLIB=1"
+    ++ lib.optional withLibproxy "LIBPROXY=1"
+    ++ lib.optional withZbar "ZBAR=1";
 
-  NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H";
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    mv binaries/bin/merkaartor.app $out/Applications
+    mv binaries/bin/plugins $out/Applications/merkaartor.app/Contents
+    wrapQtApp $out/Applications/merkaartor.app/Contents/MacOS/merkaartor
+  '';
 
   meta = with lib; {
     description = "OpenStreetMap editor";
     homepage = "http://merkaartor.be/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix b/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
new file mode 100644
index 000000000000..b1b77a53ea00
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, python3
+, fetchFromGitLab
+, appstream
+, desktop-file-utils
+, glib
+, gobject-introspection
+, gtk3
+, libhandy
+, librsvg
+, meson
+, ninja
+, pkg-config
+, poppler_gi
+, wrapGAppsHook
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "metadata-cleaner";
+  version = "1.0.4";
+
+  format = "other";
+
+  src = fetchFromGitLab {
+    owner = "rmnvgr";
+    repo = "metadata-cleaner";
+    rev = "v${version}";
+    sha256 = "sha256-F/xh4dFX7W50kFzpWpGKyMUhxOlDO3WDXBzXVsDViY8=";
+  };
+
+  nativeBuildInputs = [
+    appstream
+    desktop-file-utils
+    glib
+    gtk3
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gtk3
+    libhandy
+    librsvg
+    poppler_gi
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    mat2
+    pygobject3
+  ];
+
+  meta = with lib; {
+    description = "Python GTK application to view and clean metadata in files, using mat2";
+    homepage = "https://gitlab.com/rmnvgr/metadata-cleaner";
+    license = with licenses; [ gpl3Plus cc-by-sa-40 ];
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/milu/default.nix b/nixpkgs/pkgs/applications/misc/milu/default.nix
index 23da8abc6682..a941f6251498 100644
--- a/nixpkgs/pkgs/applications/misc/milu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/milu/default.nix
@@ -22,10 +22,9 @@ stdenv.mkDerivation {
     cp bin/milu $out/bin
   '';
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
      glib
-     unzip
      llvmPackages.libclang
   ];
 
diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/default.nix b/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
index ad001eb30457..f82881eb5bdf 100644
--- a/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
@@ -14,11 +14,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mkgmap";
-  version = "4600";
+  version = "4608";
 
   src = fetchurl {
     url = "http://www.mkgmap.org.uk/download/mkgmap-r${version}-src.tar.gz";
-    sha256 = "1xnqbyrf5cbxmggkk1pjcj5d1767kbp15v12zy2fpbbn3yf0k3sh";
+    sha256 = "uj/iZZHML4nqEKdFBQSDdegkalZFJdzEE4xQrOruEp0=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/misc/mob/default.nix b/nixpkgs/pkgs/applications/misc/mob/default.nix
index 12843ffb98c6..50e95e311729 100644
--- a/nixpkgs/pkgs/applications/misc/mob/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mob/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "mob";
-  version = "1.2.0";
+  version = "1.4.0";
   goPackagePath = "github.com/remotemobprogramming/mob";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "remotemobprogramming";
     repo = pname;
-    sha256 = "sha256-hBzSf3UUW2FUp1jG1sPt7vN1iDybdMox/h6xHVrM7DY=";
+    sha256 = "sha256-JiTRTH8ai27H1xySyKTWiu/MG0C61Tz+hVI6tkSRp+k=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix b/nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix
new file mode 100644
index 000000000000..666009b99a0b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, wrapQtAppsHook
+, pkg-config
+, qmake
+, qtquickcontrols2
+, SDL2
+, SDL2_ttf
+, libva
+, libvdpau
+, libxkbcommon
+, alsaLib
+, libpulseaudio
+, openssl
+, libopus
+, ffmpeg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "moonlight-qt";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "moonlight-stream";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "e7fwb76zzidtF1COqrQ6gSF7bCX20j/CGjPu1Cb4HGc=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    wrapQtAppsHook
+    pkg-config
+    qmake
+  ];
+
+  buildInputs = [
+    qtquickcontrols2
+    SDL2
+    SDL2_ttf
+    libva
+    libvdpau
+    libxkbcommon
+    alsaLib
+    libpulseaudio
+    openssl
+    libopus
+    ffmpeg
+  ];
+
+  meta = with lib; {
+    description = "Play your PC games on almost any device";
+    homepage = "https://moonlight-stream.org";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ luc65r ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/mpvc/default.nix b/nixpkgs/pkgs/applications/misc/mpvc/default.nix
index 64b55cce7a04..69aca239d311 100644
--- a/nixpkgs/pkgs/applications/misc/mpvc/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mpvc/default.nix
@@ -17,7 +17,8 @@ stdenv.mkDerivation {
     wrapProgram $out/bin/mpvc --prefix PATH : "${socat}/bin/"
   '';
 
-  buildInputs = [ socat makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ socat ];
 
   meta = with lib; {
     description = "A mpc-like control interface for mpv";
diff --git a/nixpkgs/pkgs/applications/misc/mupdf/default.nix b/nixpkgs/pkgs/applications/misc/mupdf/default.nix
index 61c395e64a9b..21c699da3fac 100644
--- a/nixpkgs/pkgs/applications/misc/mupdf/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mupdf/default.nix
@@ -1,11 +1,27 @@
-{ stdenv, lib, fetchurl, fetchpatch, pkg-config, freetype, harfbuzz, openjpeg
-, jbig2dec, libjpeg , darwin
+{ stdenv
+, lib
+, fetchurl
+, fetchpatch
+, pkg-config
+, freetype
+, harfbuzz
+, openjpeg
+, jbig2dec
+, libjpeg
+, darwin
 , gumbo
-, enableX11 ? true, libX11, libXext, libXi, libXrandr
-, enableCurl ? true, curl, openssl
-, enableGL ? true, freeglut, libGLU
+, enableX11 ? true
+, libX11
+, libXext
+, libXi
+, libXrandr
+, enableCurl ? true
+, curl
+, openssl
+, enableGL ? true
+, freeglut
+, libGLU
 }:
-
 let
 
   # OpenJPEG version is hardcoded in package source
@@ -13,7 +29,8 @@ let
     lib.versions.majorMinor (lib.getVersion openjpeg);
 
 
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   version = "1.18.0";
   pname = "mupdf";
 
@@ -22,24 +39,28 @@ in stdenv.mkDerivation rec {
     sha256 = "0rljl44y8p8hgaqializlyrgpij1wbnrzyp0ll5kcg7w05nylq48";
   };
 
-  patches =
-    lib.optional stdenv.isDarwin ./darwin.patch ++ [
+  patches = lib.optional stdenv.isDarwin ./darwin.patch ++ [
+    (fetchpatch {
+      name = "pdfocr.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=a507b139adf37d2c742e039815601cdc2aa00a84";
+      sha256 = "1fx6pdgwrbk3bqsx53764d61llfj9s5q8lxqkna7mjnp7mg4krj3";
+    })
     (fetchpatch {
-        name = "pdfocr.patch";
-        url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=a507b139adf37d2c742e039815601cdc2aa00a84";
-        sha256 = "1fx6pdgwrbk3bqsx53764d61llfj9s5q8lxqkna7mjnp7mg4krj3";
-      })
+      name = "pdf-layer.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=b82e9b6d6b46877e5c3763cc3bc641c66fa7eb54";
+      sha256 = "0ma8jq8d9a0mf26qjklgi4gdaflpjik1br1nhafzvjz7ccl56ksm";
+    })
     (fetchpatch {
-        name = "pdf-layer.patch";
-        url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=b82e9b6d6b46877e5c3763cc3bc641c66fa7eb54";
-        sha256 = "0ma8jq8d9a0mf26qjklgi4gdaflpjik1br1nhafzvjz7ccl56ksm";
-      })
+      name = "pixmap.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=32e4e8b4bcbacbf92af7c88337efae21986d9603";
+      sha256 = "1zqkxgwrhcwsdya98pcmpq2815jjmv3fwsp0sba9f5nq5xi6whbj";
+    })
     (fetchpatch {
-        name = "pixmap.patch";
-        url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=32e4e8b4bcbacbf92af7c88337efae21986d9603";
-        sha256 = "1zqkxgwrhcwsdya98pcmpq2815jjmv3fwsp0sba9f5nq5xi6whbj";
-      })
-    ];
+      name = "CVE-2021-3407.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=cee7cefc610d42fd383b3c80c12cbc675443176a";
+      sha256 = "18g9jsj90jnqibaff8pqi70a7x8ygc3sh4jl4xnvlv8vr7fxxbh6";
+    })
+  ];
 
   postPatch = ''
     sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c
@@ -48,17 +69,21 @@ in stdenv.mkDerivation rec {
   # Use shared libraries to decrease size
   buildFlags = [ "shared" ];
 
-  makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ];
+  makeFlags = [ "prefix=$(out)" "USE_SYSTEM_LIBS=yes" ]
+    ++ lib.optionals (!enableX11) [ "HAVE_X11=no" ]
+    ++ lib.optionals (!enableGL) [ "HAVE_GLUT=no" ];
+
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU gumbo ]
-                ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
-                ++ lib.optionals enableCurl [ curl openssl ]
-                ++ lib.optionals enableGL (
-                  if stdenv.isDarwin then
-                    with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
-                  else
-                    [ freeglut libGLU ])
-                ;
+  buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg gumbo ]
+    ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
+    ++ lib.optionals enableCurl [ curl openssl ]
+    ++ lib.optionals enableGL (
+    if stdenv.isDarwin then
+      with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
+    else
+      [ freeglut libGLU ]
+  )
+  ;
   outputs = [ "bin" "dev" "out" "man" "doc" ];
 
   preConfigure = ''
@@ -81,6 +106,7 @@ in stdenv.mkDerivation rec {
     EOF
 
     moveToOutput "bin" "$bin"
+  '' + lib.optionalString enableX11 ''
     ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
     mkdir -p $bin/share/applications
     cat > $bin/share/applications/mupdf.desktop <<EOF
diff --git a/nixpkgs/pkgs/applications/misc/nnn/default.nix b/nixpkgs/pkgs/applications/misc/nnn/default.nix
index 4a72eecf9b37..a39e8267cf7f 100644
--- a/nixpkgs/pkgs/applications/misc/nnn/default.nix
+++ b/nixpkgs/pkgs/applications/misc/nnn/default.nix
@@ -7,13 +7,13 @@ assert withNerdIcons -> withIcons == false;
 
 stdenv.mkDerivation rec {
   pname = "nnn";
-  version = "3.5";
+  version = "3.6";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1fa7cmwrzn6kx87kms8i98p9azdlwyh2gnif29l340syl9hkr5qy";
+    sha256 = "1hwv7ncp8pmzdir30877ni4qlmczmb3yjdkbfd1pssr08y1srsc7";
   };
 
   configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf);
@@ -22,10 +22,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ readline ncurses ];
 
-  makeFlags = [
-    "DESTDIR=${placeholder "out"}"
-    "PREFIX="
-  ] ++ lib.optional withIcons [ "O_ICONS=1" ]
+  makeFlags = [ "PREFIX=$(out)" ]
+    ++ lib.optional withIcons [ "O_ICONS=1" ]
     ++ lib.optional withNerdIcons [ "O_NERD=1" ];
 
   # shell completions
@@ -38,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Small ncurses-based file browser forked from noice";
     homepage = "https://github.com/jarun/nnn";
+    changelog = "https://github.com/jarun/nnn/blob/v${version}/CHANGELOG";
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ jfrankenau Br1ght0ne ];
diff --git a/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix b/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix
index c4c54ba7c53b..2dbcef8779f5 100644
--- a/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix
+++ b/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nwg-launchers";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vuvYL9N9xdg27uhiTe2OqxZ3/n/9EjlqPxtNMXpqpE8=";
+    sha256 = "sha256-krhFtFQZSwfKPHmVxPGNySPL2Y9+kA0fxjZ/D+mNks4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/obsidian/default.nix b/nixpkgs/pkgs/applications/misc/obsidian/default.nix
index b64654ad6758..f35a3f1b71e1 100644
--- a/nixpkgs/pkgs/applications/misc/obsidian/default.nix
+++ b/nixpkgs/pkgs/applications/misc/obsidian/default.nix
@@ -30,27 +30,24 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "obsidian";
-  version = "0.10.13";
+  version = "0.11.9";
 
   src = fetchurl {
     url =
-      "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.asar.gz";
-    sha256 = "J4kaNtB6DVivNDhrGwrRZJBvu4Bpzl0jY1ZtlAtQiZE=";
+      "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.tar.gz";
+    sha256 = "XymM3qma8H2dm2tq8Zg+oKxOzb48azqlqn701pN5gdI=";
   };
 
   nativeBuildInputs = [ makeWrapper graphicsmagick ];
 
-  unpackPhase = ''
-    gzip -dc $src > obsidian.asar
-  '';
-
   installPhase = ''
     mkdir -p $out/bin
 
     makeWrapper ${electron}/bin/electron $out/bin/obsidian \
-      --add-flags $out/share/electron/obsidian.asar
+      --add-flags $out/share/obsidian/app.asar
 
-    install -m 444 -D obsidian.asar $out/share/electron/obsidian.asar
+    install -m 444 -D resources/app.asar $out/share/obsidian/app.asar
+    install -m 444 -D resources/obsidian.asar $out/share/obsidian/obsidian.asar
 
     install -m 444 -D "${desktopItem}/share/applications/"* \
       -t $out/share/applications/
diff --git a/nixpkgs/pkgs/applications/misc/omegat.nix b/nixpkgs/pkgs/applications/misc/omegat.nix
index 7b91d245f810..0a46393bd220 100644
--- a/nixpkgs/pkgs/applications/misc/omegat.nix
+++ b/nixpkgs/pkgs/applications/misc/omegat.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "0axz7r30p34z5hgvdglznc82g7yvm3g56dv5190jixskx6ba58rs";
   };
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   unpackCmd = "unzip -o $curSrc";  # tries to go interactive without -o
 
diff --git a/nixpkgs/pkgs/applications/misc/onboard/default.nix b/nixpkgs/pkgs/applications/misc/onboard/default.nix
index d52120e0fb7d..745d03bb189e 100644
--- a/nixpkgs/pkgs/applications/misc/onboard/default.nix
+++ b/nixpkgs/pkgs/applications/misc/onboard/default.nix
@@ -6,7 +6,6 @@
 , atspiSupport ? true
 , bash
 , glib
-, glibcLocales
 , dconf
 , gobject-introspection
 , gsettings-desktop-schemas
@@ -130,8 +129,7 @@ python3.pkgs.buildPythonApplication rec {
       --replace "/etc" "$out/etc"
 
     substituteInPlace  ./Onboard/LanguageSupport.py \
-      --replace "/usr/share/xml/iso-codes" "${isocodes}/share/xml/iso-codes" \
-      --replace "/usr/bin/yelp" "${yelp}/bin/yelp"
+      --replace "/usr/share/xml/iso-codes" "${isocodes}/share/xml/iso-codes"
 
     substituteInPlace  ./Onboard/Indicator.py \
       --replace   "/usr/bin/yelp" "${yelp}/bin/yelp"
diff --git a/nixpkgs/pkgs/applications/misc/openjump/default.nix b/nixpkgs/pkgs/applications/misc/openjump/default.nix
index 28becefa5b12..d6b20a7f01e5 100644
--- a/nixpkgs/pkgs/applications/misc/openjump/default.nix
+++ b/nixpkgs/pkgs/applications/misc/openjump/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
     cd $out; unzip $src
   '';
 
-  buildInputs = [unzip makeWrapper];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   installPhase = ''
     dir=$(echo $out/OpenJUMP-*)
diff --git a/nixpkgs/pkgs/applications/misc/openlp/default.nix b/nixpkgs/pkgs/applications/misc/openlp/default.nix
new file mode 100644
index 000000000000..1ee482564747
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/openlp/default.nix
@@ -0,0 +1,86 @@
+# This file contains all runtime glue: Bindings to optional runtime dependencies
+# for pdfSupport, presentationSupport, and media playback.
+{ lib, mkDerivation, wrapGAppsHook, python3Packages
+
+# qt deps
+, qtbase, qtmultimedia
+
+# optional deps
+, pdfSupport ? false, mupdf  # alternatively could use ghostscript
+, presentationSupport ? false, libreoffice-unwrapped
+, vlcSupport ? false
+, gstreamerSupport ? false, gst_all_1, gstPlugins ? (gst: [
+    gst.gst-plugins-base
+    gst.gst-plugins-good
+    gst.gst-plugins-bad
+    gst.gst-plugins-ugly
+  ])
+
+#, enableMySql ? false      # Untested. If interested, contact maintainer.
+#, enablePostgreSql ? false # Untested. If interested, contact maintainer.
+#, enableJenkinsApi ? false # Untested. If interested, contact maintainer.
+}:
+
+let p = gstPlugins gst_all_1;
+# If gstreamer is activated but no plugins are given, it will at runtime
+# create the false illusion of being usable.
+in assert gstreamerSupport -> (builtins.isList p && builtins.length p > 0);
+
+let
+  # optional packages
+  libreofficePath = "${libreoffice-unwrapped}/lib/libreoffice/program";
+
+  # lib functions
+  inherit (lib.lists) optional optionals;
+  wrapSetVar = var: ''--set ${var} "''$${var}"'';
+
+  # base pkg/lib
+  baseLib = python3Packages.callPackage ./lib.nix { };
+in mkDerivation {
+  inherit (baseLib) pname version src;
+
+  nativeBuildInputs = [ python3Packages.wrapPython wrapGAppsHook ];
+  buildInputs = [ qtbase ] ++ optionals gstreamerSupport
+    ([ qtmultimedia.bin gst_all_1.gstreamer ] ++ gstPlugins gst_all_1);
+  propagatedBuildInputs = optional pdfSupport mupdf
+    ++ optional presentationSupport libreoffice-unwrapped;
+  pythonPath = [ baseLib ] ++ optional vlcSupport python3Packages.python-vlc;
+    # ++ optional enableMySql mysql-connector  # Untested. If interested, contact maintainer.
+    # ++ optional enablePostgreSql psycopg2    # Untested. If interested, contact maintainer.
+    # ++ optional enableJenkinsApi jenkinsapi  # Untested. If interested, contact maintainer.
+
+  PYTHONPATH = libreofficePath;
+  URE_BOOTSTRAP = "vnd.sun.star.pathname:${libreofficePath}/fundamentalrc";
+  UNO_PATH = libreofficePath;
+  LD_LIBRARY_PATH = libreofficePath;
+  JAVA_HOME = "${libreoffice-unwrapped.jdk.home}";
+
+  dontWrapQtApps = true;
+  dontWrapGApps = true;
+
+  # defined in gappsWrapperHook
+  wrapPrefixVariables = optionals presentationSupport
+    [ "PYTHONPATH" "LD_LIBRARY_PATH" "JAVA_HOME" ];
+  makeWrapperArgs = [
+    "\${gappsWrapperArgs[@]}"
+    "\${qtWrapperArgs[@]}"
+  ] ++ optionals presentationSupport
+    ([ "--prefix PATH : ${libreoffice-unwrapped}/bin" ]
+      ++ map wrapSetVar [ "URE_BOOTSTRAP" "UNO_PATH" ]);
+
+  installPhase = ''
+    install -D openlp.py $out/bin/openlp
+  '';
+
+  preFixup = ''
+    wrapPythonPrograms
+  '';
+
+  meta = baseLib.meta // {
+    hydraPlatforms = [ ]; # this is only the wrapper; baseLib gets built
+  };
+
+  passthru = {
+    inherit baseLib;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/openlp/lib.nix b/nixpkgs/pkgs/applications/misc/openlp/lib.nix
new file mode 100644
index 000000000000..6f0634b5c934
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/openlp/lib.nix
@@ -0,0 +1,103 @@
+# This file contains the base package, some of which is compiled.
+# Runtime glue to optinal runtime dependencies is in 'default.nix'.
+{ fetchurl, lib, qt5
+
+# python deps
+, python, buildPythonPackage
+, alembic, beautifulsoup4, chardet, lxml, Mako, pyenchant
+, pyqt5_with_qtwebkit, pyxdg, sip, sqlalchemy, sqlalchemy_migrate
+}:
+
+buildPythonPackage rec {
+  pname = "openlp";
+  version = "2.4.6";
+
+  src = fetchurl {
+    url = "https://get.openlp.org/${version}/OpenLP-${version}.tar.gz";
+    sha256 = "f63dcf5f1f8a8199bf55e806b44066ad920d26c9cf67ae432eb8cdd1e761fc30";
+  };
+
+  doCheck = false;
+  # FIXME: checks must be disabled because they are lacking the qt env.
+  #        They fail like this, even if built and wrapped with all Qt and
+  #        runtime dependencies:
+  #
+  #     running install tests
+  #     qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
+  #     This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
+  #
+  #     Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.
+  #
+  # See also https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/
+
+  #checkInputs = [ mock nose ];
+  nativeBuildInputs = [ qt5.qttools ];
+  propagatedBuildInputs = [
+    alembic
+    beautifulsoup4
+    chardet
+    lxml
+    Mako
+    pyenchant
+    pyqt5_with_qtwebkit
+    pyxdg
+    sip
+    sqlalchemy
+    sqlalchemy_migrate
+  ];
+
+  prePatch = ''
+    echo 'from vlc import *' > openlp/core/ui/media/vendor/vlc.py
+  '';
+
+  dontWrapQtApps = true;
+  dontWrapGApps = true;
+  postInstall = ''
+    ( # use subshell because of cd
+      tdestdir="$out/i18n"
+      mkdir -p "$tdestdir"
+      cd ./resources/i18n
+      for file in *.ts; do
+          lconvert -i "$file" -o "$tdestdir/''${file%%ts}qm"
+      done
+    )
+  '';
+
+  preFixup = ''
+    rm -r $out/${python.sitePackages}/tests
+    rm -r $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Free church presentation software";
+    homepage = "https://openlp.org/";
+    downloadPage = "https://openlp.org/#downloads";
+    platforms = platforms.unix;
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.jorsn ];
+
+    longDescription = ''
+      OpenLP is a free church presentation software.
+
+      Features:
+
+      * Cross platform between Linux, Windows, OS X and FreeBSD
+      * Display songs, Bible verses, presentations, images, audio and video
+      * Control OpenLP remotely via the Android remote, iOS remote or mobile web browser
+      * Quickly and easily import songs from other popular presentation packages
+      * Easy enough to use to get up and running in less than 10 minutes
+
+      Remark: This pkg only supports sqlite dbs. If you wish to have support for
+            mysql or postgresql dbs, or Jenkins, please contact the maintainer.
+
+      Bugs which affect this software packaged in Nixpkgs:
+
+      1. The package must disable checks, because they are lacking the qt env.
+         (see pkg source and https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/)
+      2. There is a segfault on exit. Not a real problem, according to debug log, everything
+         shuts down correctly. Maybe related to https://forums.openlp.org/discussion/3620/crash-on-exit.
+         Plan: Wait for OpenLP-3, since it is already in beta 1
+         (2021-02-09; news: https://openlp.org/blog/).
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/openring/default.nix b/nixpkgs/pkgs/applications/misc/openring/default.nix
new file mode 100644
index 000000000000..6d840b1d9e79
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/openring/default.nix
@@ -0,0 +1,25 @@
+{ buildGoModule, fetchFromSourcehut, lib }:
+
+buildGoModule rec {
+  pname = "openring";
+  version = "unstable-2021-04-03";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = "f13edb5dfd882ce608d61cf6b6740650ce9d84a3";
+    sha256 = "sha256-Z65V77JZ9jCzBg7T2+d5Agxxd+MV2R7nYcLedYP5eOE=";
+  };
+
+  vendorSha256 = "sha256-BbBTmkGyLrIWphXC+dBaHaVzHuXRZ+4N/Jt2k3nF7Z4=";
+
+  # The package has no tests.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A webring for static site generators";
+    homepage = "https://git.sr.ht/~sircmpwn/openring";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ sumnerevans ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/orpie/default.nix b/nixpkgs/pkgs/applications/misc/orpie/default.nix
index 2bf102fee257..45e043b6dcfa 100644
--- a/nixpkgs/pkgs/applications/misc/orpie/default.nix
+++ b/nixpkgs/pkgs/applications/misc/orpie/default.nix
@@ -4,6 +4,8 @@ ocamlPackages.buildDunePackage rec {
   pname = "orpie";
   version = "1.6.1";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner = "pelzlpj";
     repo = pname;
diff --git a/nixpkgs/pkgs/applications/misc/osmscout-server/default.nix b/nixpkgs/pkgs/applications/misc/osmscout-server/default.nix
new file mode 100644
index 000000000000..a3815dae00fc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/osmscout-server/default.nix
@@ -0,0 +1,65 @@
+{ lib, mkDerivation, fetchFromGitHub, fetchpatch, pkg-config
+, qmake, qttools, kirigami2, qtquickcontrols2, qtlocation
+, libosmscout, mapnik, valhalla, libpostal, osrm-backend, protobuf
+, libmicrohttpd_0_9_70, sqlite, marisa, kyotocabinet, boost
+}:
+
+let
+  date = fetchFromGitHub {
+    owner = "HowardHinnant";
+    repo = "date";
+    rev = "a2fdba1adcb076bf9a8343c07524afdf09aa8dcc";
+    sha256 = "00sf1pbaz0g0gsa0dlm23lxk4h46xm1jv1gzbjj5rr9sf1qccyr5";
+  };
+in
+mkDerivation rec {
+  pname = "osmscout-server";
+  version = "1.17.1";
+
+  src = fetchFromGitHub {
+    owner = "rinigus";
+    repo = "osmscout-server";
+    rev = version;
+    sha256 = "0rpsi6nyhcz6bv0jab4vixkxhjmn84xi0q2xz15a097hn46cklx9";
+    fetchSubmodules = true;
+  };
+
+  # Two patches required to work with valhalla 3.1
+  patches = [
+    # require C++14 to match latest Valhalla
+    (fetchpatch {
+      url = "https://github.com/rinigus/osmscout-server/commit/78b41b9b4c607fe9bfd6fbd61ae31cb7c8a725cd.patch";
+      sha256 = "0gk9mdwa75awl0bj30gm8waj454d8k2yixxwh05m0p550cbv3lg0";
+    })
+    # add Valhalla 3.1 config
+    (fetchpatch {
+      url = "https://github.com/rinigus/osmscout-server/commit/584de8bd47700053960fa139a2d7f8d3d184c876.patch";
+      sha256 = "0liz72n83q93bzzyyiqjkxa6hp9zjx7v9rgsmpwf88gc4caqm2dz";
+    })
+  ];
+
+  nativeBuildInputs = [ qmake pkg-config qttools ];
+  buildInputs = [
+    kirigami2 qtquickcontrols2 qtlocation
+    mapnik valhalla libosmscout osrm-backend libmicrohttpd_0_9_70
+    libpostal sqlite marisa kyotocabinet boost protobuf date
+  ];
+
+  # OSMScout server currently defaults to an earlier version of valhalla,
+  # but valhalla 3.1 support has been added. (See patches above)
+  # Replace the default valhalla.json with the valhalla 3.1 version
+  postPatch = ''
+    mv data/valhalla.json-3.1 data/valhalla.json
+  '';
+
+  # Choose to build the kirigami UI variant
+  qmakeFlags = [ "SCOUT_FLAVOR=kirigami" ];
+
+  meta = with lib; {
+    description = "Maps server providing tiles, geocoder, and router";
+    homepage = "https://github.com/rinigus/osmscout-server";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.Thra11 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/pdfpc/default.nix b/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
index 84ba3ced8fc7..ec78c43dbe04 100644
--- a/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, vala, gtk3, libgee, fetchpatch
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, vala, gtk3, libgee
 , poppler, libpthreadstubs, gstreamer, gst-plugins-base, gst-plugins-good, gst-libav, librsvg, pcre, gobject-introspection, wrapGAppsHook
 , webkitgtk, discount, json-glib }:
 
diff --git a/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix b/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
index 37905b8e444a..404c95f52a85 100644
--- a/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdfsam-basic";
-  version = "4.2.2";
+  version = "4.2.3";
 
   src = fetchurl {
     url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
-    sha256 = "sha256-fbcU3NZdQ8NR5tLjEJyOPneVWNMBddLdttLeVwIUtpg=";
+    sha256 = "sha256-WmJ+atndIXm5Z6RvRVSvf2de1Gda+cs5kSw4iotPVfU=";
   };
 
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/pdfslicer/default.nix b/nixpkgs/pkgs/applications/misc/pdfslicer/default.nix
new file mode 100644
index 000000000000..31bc47140159
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pdfslicer/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gettext
+, intltool
+, pkg-config
+, wrapGAppsHook
+, gtkmm3
+, libuuid
+, poppler
+, qpdf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pdfslicer";
+  version = "1.8.8";
+
+  src = fetchFromGitHub {
+    owner = "junrrein";
+    repo = "pdfslicer";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "0sja0ddd9c8wjjpzk2ag8q1lxpj09adgmhd7wnsylincqnj2jyls";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    gettext
+    intltool
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtkmm3
+    libuuid
+    poppler
+    qpdf
+  ];
+
+  meta = with lib; {
+    description = "A simple application to extract, merge, rotate and reorder pages of PDF documents";
+    homepage = "https://junrrein.github.io/pdfslicer/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
index 57ec820a0902..bb365ecfefd8 100644
--- a/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake extra-cmake-modules ];
   buildInputs = [ plasma-framework kwindowsystem plasma-pa ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "A fork of the default volume plasmoid with a Windows 7 theme (vertical sliders)";
     homepage = "https://github.com/Zren/plasma-applet-volumewin7mixer";
diff --git a/nixpkgs/pkgs/applications/misc/playonlinux/0001-fix-locale.patch b/nixpkgs/pkgs/applications/misc/playonlinux/0001-fix-locale.patch
new file mode 100644
index 000000000000..2ae1a17ca8b9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/playonlinux/0001-fix-locale.patch
@@ -0,0 +1,17 @@
+diff --git a/python/lib/lng.py b/python/lib/lng.py
+index a390d920..00c3527e 100755
+--- a/python/lib/lng.py
++++ b/python/lib/lng.py
+@@ -12,11 +12,7 @@ class Lang(object):
+ 
+ class iLang(object):
+     def __init__(self):
+-        if(os.environ["DEBIAN_PACKAGE"] == "TRUE"):
+-            languages = os.listdir('/usr/share/locale')
+-        else:
+-            languages = os.listdir(Variables.playonlinux_env+'/lang/locale')
+-
++        languages = os.listdir('@out@/share/playonlinux/lang/locale')
+         if(os.environ["POL_OS"] == "Mac"):
+             wxLocale = wx.Locale().FindLanguageInfo(os.environ["RLANG"])
+ 
diff --git a/nixpkgs/pkgs/applications/misc/playonlinux/default.nix b/nixpkgs/pkgs/applications/misc/playonlinux/default.nix
index d805aa0c0aa9..320d771bc67c 100644
--- a/nixpkgs/pkgs/applications/misc/playonlinux/default.nix
+++ b/nixpkgs/pkgs/applications/misc/playonlinux/default.nix
@@ -9,7 +9,7 @@
 , imagemagick
 , netcat-gnu
 , p7zip
-, python2
+, python3
 , unzip
 , wget
 , wine
@@ -22,6 +22,9 @@
 , jq
 , xorg
 , libGL
+, steam-run-native
+# needed for avoiding crash on file selector
+, gsettings-desktop-schemas
 }:
 
 let
@@ -54,9 +57,10 @@ let
   ld64 = "${stdenv.cc}/nix-support/dynamic-linker";
   libs = pkgs: lib.makeLibraryPath [ xorg.libX11 libGL ];
 
-  python = python2.withPackages(ps: with ps; [
-    wxPython
+  python = python3.withPackages(ps: with ps; [
+    wxPython_4_1
     setuptools
+    natsort
   ]);
 
 in stdenv.mkDerivation {
@@ -68,8 +72,16 @@ in stdenv.mkDerivation {
     sha256 = "0n40927c8cnjackfns68zwl7h4d7dvhf7cyqdkazzwwx4k2xxvma";
   };
 
+  patches = [
+    ./0001-fix-locale.patch
+  ];
+
   nativeBuildInputs = [ makeWrapper ];
 
+  preBuild = ''
+    makeFlagsArray+=(PYTHON="python -m py_compile")
+  '';
+
   buildInputs = [
     xorg.libX11
     libGL
@@ -77,6 +89,7 @@ in stdenv.mkDerivation {
   ];
 
   postPatch = ''
+    substituteAllInPlace python/lib/lng.py
     patchShebangs python tests/python
     sed -i "s/ %F//g" etc/PlayOnLinux.desktop
   '';
@@ -87,8 +100,16 @@ in stdenv.mkDerivation {
 
     install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop
 
-    makeWrapper $out/share/playonlinux/playonlinux $out/bin/playonlinux \
-      --prefix PATH : ${binpath}
+    makeWrapper $out/share/playonlinux/playonlinux{,-wrapper} \
+      --prefix PATH : ${binpath} \
+      --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/GConf
+    # steam-run is needed to run the downloaded wine executables
+    mkdir -p $out/bin
+    cat > $out/bin/playonlinux <<EOF
+    #!${stdenv.shell} -e
+    exec ${steam-run-native}/bin/steam-run $out/share/playonlinux/playonlinux-wrapper "\$@"
+    EOF
+    chmod a+x $out/bin/playonlinux
 
     bunzip2 $out/share/playonlinux/bin/check_dd_x86.bz2
     patchelf --set-interpreter $(cat ${ld32}) --set-rpath ${libs pkgsi686Linux} $out/share/playonlinux/bin/check_dd_x86
@@ -107,7 +128,7 @@ in stdenv.mkDerivation {
     description = "GUI for managing Windows programs under linux";
     homepage = "https://www.playonlinux.com/";
     license = licenses.gpl3;
-    maintainers = [ maintainers.a1russell ];
+    maintainers = [ maintainers.pasqui23 ];
     platforms = [ "x86_64-linux" "i686-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/portfolio-filemanager/default.nix b/nixpkgs/pkgs/applications/misc/portfolio-filemanager/default.nix
new file mode 100644
index 000000000000..6b4946976bf6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/portfolio-filemanager/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, python3
+, fetchFromGitHub
+, appstream-glib
+, desktop-file-utils
+, gettext
+, glib
+, gobject-introspection
+, gtk3
+, libhandy
+, librsvg
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "portfolio";
+  version = "0.9.10";
+
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "tchx84";
+    repo = "Portfolio";
+    rev = "v${version}";
+    sha256 = "06hk0kx6h8w263qa71bik68rg4r8qs94b6s60pyhzicfc822k0j4";
+  };
+
+  postPatch = ''
+    patchShebangs build-aux/meson
+  '';
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    gettext
+    glib
+    gobject-introspection
+    gtk3
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gobject-introspection
+    libhandy
+    librsvg
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pygobject3
+  ];
+
+  postInstall = ''
+    ln -s dev.tchx84.Portfolio "$out/bin/portfolio"
+  '';
+
+  meta = with lib; {
+    description = "A minimalist file manager for those who want to use Linux mobile devices";
+    homepage = "https://github.com/tchx84/Portfolio";
+    changelog = "https://github.com/tchx84/Portfolio/blob/v${version}/CHANGELOG.md";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/projectlibre/default.nix b/nixpkgs/pkgs/applications/misc/projectlibre/default.nix
index fd83d74edd54..ceb61d71866c 100644
--- a/nixpkgs/pkgs/applications/misc/projectlibre/default.nix
+++ b/nixpkgs/pkgs/applications/misc/projectlibre/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0vy5vgbp45ai957gaby2dj1hvmbxfdlfnwcanwqm9f8q16qipdbq";
   };
 
-  buildInputs = [ ant jdk makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ant jdk ];
   buildPhase = ''
     export ANT_OPTS=-Dbuild.sysclasspath=ignore
     ${ant}/bin/ant -f openproj_build/build.xml
diff --git a/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index 14894159843b..4175cb2b2220 100644
--- a/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -1,6 +1,4 @@
-{
-  stdenv, lib, fetchFromGitHub, makeDesktopItem, prusa-slicer
-}:
+{ lib, fetchFromGitHub, makeDesktopItem, prusa-slicer }:
 let
   appname = "SuperSlicer";
   version = "2.2.54.2";
diff --git a/nixpkgs/pkgs/applications/misc/pueue/default.nix b/nixpkgs/pkgs/applications/misc/pueue/default.nix
index dd46c566cd82..cc1ae14350e4 100644
--- a/nixpkgs/pkgs/applications/misc/pueue/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pueue/default.nix
@@ -1,20 +1,22 @@
-{ lib, rustPlatform, fetchFromGitHub, installShellFiles }:
+{ stdenv, lib, rustPlatform, fetchFromGitHub, installShellFiles, SystemConfiguration, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "pueue";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "Nukesor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yOUVDq/wRY35ZQjQVwTLYHKukkKpoggN51wBDdZnhI4=";
+    sha256 = "sha256-wcOF34GzlB6YKISkjDgYgsaN1NmWBMIntfT23A6byx8=";
   };
 
-  cargoSha256 = "sha256-56jJ8IjxWTBlaDd1CVit4RP659Mgw2j2wMWcSDYVihM=";
+  cargoSha256 = "sha256-7SJjtHNSabE/VqdiSwKZ/yNzk6GSMNsQLaSx/MjN5NA=";
 
   nativeBuildInputs = [ installShellFiles ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration libiconv ];
+
   checkFlags = [ "--skip=test_single_huge_payload" "--skip=test_create_unix_socket" ];
 
   postInstall = ''
@@ -27,6 +29,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "A daemon for managing long running shell commands";
     homepage = "https://github.com/Nukesor/pueue";
+    changelog = "https://github.com/Nukesor/pueue/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/pure-maps/default.nix b/nixpkgs/pkgs/applications/misc/pure-maps/default.nix
new file mode 100644
index 000000000000..3f964824e6dd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pure-maps/default.nix
@@ -0,0 +1,49 @@
+{ lib, mkDerivation, fetchFromGitHub
+, qmake, qttools, kirigami2, qtquickcontrols2, qtlocation, qtsensors
+, nemo-qml-plugin-dbus, mapbox-gl-qml, s2geometry
+, python3, pyotherside
+}:
+
+mkDerivation rec {
+  pname = "pure-maps";
+  version = "2.6.5";
+
+  src = fetchFromGitHub {
+    owner = "rinigus";
+    repo = "pure-maps";
+    rev = version;
+    sha256 = "17gfb7rdaadmcdba4mhish0jrz9lmiban6fpzwhyvn8z1rc43zx9";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    qmake python3 qttools python3.pkgs.wrapPython
+  ];
+
+  buildInputs = [
+    kirigami2 qtquickcontrols2 qtlocation qtsensors
+    nemo-qml-plugin-dbus pyotherside mapbox-gl-qml s2geometry
+  ];
+
+  postPatch = ''
+    substituteInPlace pure-maps.pro \
+      --replace '$$[QT_HOST_BINS]/lconvert' 'lconvert'
+  '';
+
+  qmakeFlags = [ "FLAVOR=kirigami" ];
+
+  pythonPath = with python3.pkgs; [ gpxpy ];
+
+  preInstall = ''
+    buildPythonPath "$pythonPath"
+    qtWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH")
+  '';
+
+  meta = with lib; {
+    description = "Display vector and raster maps, places, routes, and provide navigation instructions with a flexible selection of data and service providers";
+    homepage = "https://github.com/rinigus/pure-maps";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.Thra11 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/qcad/default.nix b/nixpkgs/pkgs/applications/misc/qcad/default.nix
index c6b9d82bcf41..19e5d18fe93c 100644
--- a/nixpkgs/pkgs/applications/misc/qcad/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qcad/default.nix
@@ -10,21 +10,24 @@
 , qtsvg
 , qtxmlpatterns
 , qttools
-, lib, stdenv
+, lib
+, stdenv
+, installShellFiles
 }:
 
 mkDerivationWith stdenv.mkDerivation rec {
   pname = "qcad";
-  version = "3.25.2.0";
+  version = "3.26.1.0";
 
   src = fetchFromGitHub {
     owner = "qcad";
     repo = "qcad";
     rev = "v${version}";
-    sha256 = "1lz6q9n2p0l7k8rwqsdj6av9p3426423g5avc4y6s7nbk36280mz";
+    sha256 = "sha256-OWAc7g8DiJR3z6dUF5D0Yo3wnRKd1Xe7D1eq15NRW5c=";
   };
 
   patches = [
+    # Patch directory lookup, remove __DATE__ and executable name
     ./application-dir.patch
   ];
 
@@ -35,7 +38,7 @@ mkDerivationWith stdenv.mkDerivation rec {
         src/3rdparty/qt-labs-qtscriptgenerator-5.14.0/qt-labs-qtscriptgenerator-5.14.0.pro \
         src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version}/qt-labs-qtscriptgenerator-${qtbase.version}.pro
     fi
- '';
+  '';
 
   qmakeFlags = [
     "MUPARSER_DIR=${muparser}"
@@ -64,15 +67,27 @@ mkDerivationWith stdenv.mkDerivation rec {
     cp -r scripts $out/lib
     cp -r plugins $out/lib/plugins
     cp -r patterns $out/lib/patterns
+    cp -r fonts $out/lib/fonts
+    cp -r libraries $out/lib/libraries
+    cp -r linetypes $out/lib/linetypes
+    cp -r ts $out/lib/ts
 
     # workaround to fix the library browser:
     rm -r $out/lib/plugins/sqldrivers
     ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/sqldrivers
 
+    rm -r $out/lib/plugins/printsupport
+    ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/printsupport
+
+    rm -r $out/lib/plugins/imageformats
+    ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/imageformats
+
     install -Dm644 scripts/qcad_icon.svg $out/share/icons/hicolor/scalable/apps/qcad.svg
 
+    installManPage qcad.1
+
     runHook postInstall
-    '';
+  '';
 
   buildInputs = [
     boost
@@ -88,14 +103,13 @@ mkDerivationWith stdenv.mkDerivation rec {
     pkg-config
     qmake
     qttools
+    installShellFiles
   ];
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "2D CAD package based on Qt";
     homepage = "https://qcad.org";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ yvesf ];
     platforms = qtbase.meta.platforms;
   };
diff --git a/nixpkgs/pkgs/applications/misc/qlcplus/default.nix b/nixpkgs/pkgs/applications/misc/qlcplus/default.nix
index 721c95c028bc..261a597f8d74 100644
--- a/nixpkgs/pkgs/applications/misc/qlcplus/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qlcplus/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitHub, qmake, pkg-config, udev
+{ lib, mkDerivation, fetchFromGitHub, fetchpatch, qmake, pkg-config, udev
 , qtmultimedia, qtscript, alsaLib, ola, libftdi1, libusb-compat-0_1
 , libsndfile, libmad
 }:
@@ -14,6 +14,14 @@ mkDerivation rec {
     sha256 = "PB1Y8N1TrJMcS7A2e1nKjsUlAxOYjdJqBhbyuDCAbGs=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "qt5.15-deprecation-fixes.patch";
+      url = "https://github.com/mcallegari/qlcplus/commit/e4ce4b0226715876e8e9e3b23785d43689b2bb64.patch";
+      sha256 = "1zhrg6ava1nyc97xcx75r02zzkxmar0973w4jwkm5ch3iqa8bqnh";
+    })
+  ];
+
   nativeBuildInputs = [ qmake pkg-config ];
   buildInputs = [
     udev qtmultimedia qtscript alsaLib ola libftdi1 libusb-compat-0_1 libsndfile libmad
diff --git a/nixpkgs/pkgs/applications/misc/qpdfview/default.nix b/nixpkgs/pkgs/applications/misc/qpdfview/default.nix
index 6ae81fca27cf..954c17097618 100644
--- a/nixpkgs/pkgs/applications/misc/qpdfview/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qpdfview/default.nix
@@ -14,11 +14,13 @@ let
   buildInputs = [
     qtbase qtsvg poppler djvulibre libspectre cups file ghostscript
   ];
+  # apply upstream fix for qt5.15 https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104
+  patches = [ ./qpdfview-qt515-compat.patch ];
 in
 mkDerivation {
   pname = s.baseName;
   inherit (s) version;
-  inherit nativeBuildInputs buildInputs;
+  inherit nativeBuildInputs buildInputs patches;
   src = fetchurl {
     inherit (s) url sha256;
   };
@@ -40,7 +42,7 @@ mkDerivation {
   meta = {
     inherit (s) version;
     description = "A tabbed document viewer";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
     homepage = "https://launchpad.net/qpdfview";
diff --git a/nixpkgs/pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch b/nixpkgs/pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch
new file mode 100644
index 000000000000..1fbf5ec3f101
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch
@@ -0,0 +1,17 @@
+Fix compatibility with Qt 5.15.
+
+Patch copied from upstream source repository:
+
+https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104
+
+--- a/sources/model.h	2017-04-19 21:01:25 +0000
++++ b/sources/model.h	2020-06-09 06:24:11 +0000
+@@ -24,6 +24,7 @@
+ #define DOCUMENTMODEL_H
+ 
+ #include <QList>
++#include <QPainterPath>
+ #include <QtPlugin>
+ #include <QWidget>
+ #include <QVector>
+
diff --git a/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix b/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix
index fafd91f7811c..1bdcd6ea8a6f 100644
--- a/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix
@@ -31,6 +31,5 @@ mkDerivation {
     homepage = "https://centrabit.com/";
     license = licenses.gpl3;
     platforms = qt5.qtbase.meta.platforms;
-    maintainers = [ maintainers.ehmry ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/ranger/default.nix b/nixpkgs/pkgs/applications/misc/ranger/default.nix
index 10ea22a1eca0..4bd8a182d6f1 100644
--- a/nixpkgs/pkgs/applications/misc/ranger/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ranger/default.nix
@@ -42,7 +42,7 @@ python3Packages.buildPythonApplication rec {
 
   meta =  with lib; {
     description = "File manager with minimalistic curses interface";
-    homepage = "http://ranger.github.io/";
+    homepage = "https://ranger.github.io/";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [ toonn magnetophon ];
diff --git a/nixpkgs/pkgs/applications/misc/reddsaver/default.nix b/nixpkgs/pkgs/applications/misc/reddsaver/default.nix
index fae4948d8baf..279d3e4b15d9 100644
--- a/nixpkgs/pkgs/applications/misc/reddsaver/default.nix
+++ b/nixpkgs/pkgs/applications/misc/reddsaver/default.nix
@@ -7,27 +7,27 @@
 }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.2.3";
   pname = "reddsaver";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "manojkarthick";
     repo = "reddsaver";
     rev = "v${version}";
-    sha256 = "sha256-K6SyfYx8VG0t6yogHwd80AxQuj3TXofHLEqZcDsRs1s=";
+    sha256 = "0ffci3as50f55n1v36hji4n0b3lkch5ylc75awjz65jz2gd2y2j4";
   };
 
-  cargoSha256 = "sha256-VDr7fcE13Wy7KoGG3U1GSbWqF5Oad4EobgzOL7dtJDo=";
+  cargoSha256 = "1cx3sqr7zb1vlfdvbcxp0yva9xh654qczpy8s09c8cviy8hac5sr";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
     ++ lib.optional stdenv.isDarwin Security;
 
-  # package does not contain tests as of v0.2.3
+  # package does not contain tests as of v0.3.2
   docCheck = false;
 
   meta = with lib; {
-    description = "CLI tool to download saved images from Reddit";
+    description = "CLI tool to download saved media from Reddit";
     homepage = "https://github.com/manojkarthick/reddsaver";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = [ maintainers.manojkarthick ];
diff --git a/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix b/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix
index 844fd19e22cc..8c4fa2efb227 100644
--- a/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix
+++ b/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, fetchFromGitiles, pkg-config, libssh2
-, qtbase, qtdeclarative, qtgraphicaleffects, qtimageformats, qtquickcontrols
+{ mkDerivation, lib, fetchFromGitHub, fetchFromGitiles, pkg-config, libssh2
+, qtbase, qtdeclarative, qtgraphicaleffects, qtimageformats, qtquickcontrols2
 , qtsvg, qttools, qtquick1, qtcharts
 , qmake
 }:
@@ -13,7 +13,7 @@ let
 
 in
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "redis-desktop-manager";
   version = "0.9.1";
 
@@ -28,10 +28,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config qmake ];
   buildInputs = [
     libssh2 qtbase qtdeclarative qtgraphicaleffects qtimageformats
-    qtquick1 qtquickcontrols qtsvg qttools qtcharts
+    qtquick1 qtquickcontrols2 qtsvg qttools qtcharts
   ];
 
   dontUseQmakeConfigure = true;
+  dontWrapQtApps = true;
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated" ];
 
@@ -76,7 +77,7 @@ EOF
   meta = with lib; {
     description = "Cross-platform open source Redis DB management tool";
     homepage = "https://redisdesktop.com/";
-    license = licenses.lgpl21;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ cstrahan ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix b/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix
index fa5ee0c753aa..b8d25f0db1de 100644
--- a/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix
+++ b/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix
@@ -35,6 +35,8 @@ stdenv.mkDerivation {
     kwindowsystem
   ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "KDE Plasma 5 widget for controlling Redshift";
     homepage = "https://github.com/kotelnik/plasma-applet-redshift-control";
diff --git a/nixpkgs/pkgs/applications/misc/regextester/default.nix b/nixpkgs/pkgs/applications/misc/regextester/default.nix
index eac131d6ef72..b7eb2367528d 100644
--- a/nixpkgs/pkgs/applications/misc/regextester/default.nix
+++ b/nixpkgs/pkgs/applications/misc/regextester/default.nix
@@ -6,7 +6,7 @@
 , pkg-config
 , glib
 , gtk3
-, gnome3
+, libgee
 , meson
 , ninja
 , gobject-introspection
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     pantheon.elementary-icon-theme
     pantheon.granite
     glib
-    gnome3.libgee
+    libgee
     gsettings-desktop-schemas
     gtk3
   ];
diff --git a/nixpkgs/pkgs/applications/misc/robo3t/default.nix b/nixpkgs/pkgs/applications/misc/robo3t/default.nix
index 30fd51fa9905..1b19d9ab9cc0 100644
--- a/nixpkgs/pkgs/applications/misc/robo3t/default.nix
+++ b/nixpkgs/pkgs/applications/misc/robo3t/default.nix
@@ -1,19 +1,23 @@
-{ lib, stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig, libGL,
+{ lib, stdenv, fetchurl, curl, zlib, glib, xorg, dbus, fontconfig, libGL,
   freetype, xkeyboard_config, makeDesktopItem, makeWrapper }:
 
+let
+  curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; };
+in
+
 stdenv.mkDerivation rec {
   pname = "robo3t";
-  version = "1.3.1";
-  rev = "7419c406";
+  version = "1.4.3";
+  rev = "48f7dfd";
 
   src = fetchurl {
-    url = "https://download-test.robomongo.org/linux/robo3t-${version}-linux-x86_64-${rev}.tar.gz";
-    sha256 = "1mp5i8iahd4qkwgi5ix98hlg17ivw5da27n0drnr0wk458wn99hi";
+    url = "https://github.com/Studio3T/robomongo/releases/download/v${version}/robo3t-${version}-linux-x86_64-${rev}.tar.gz";
+    sha256 = "sha256-pH4q/O3bq45ZZn+s/12iScd0WbfkcLjK4MBdVCMXK00=";
   };
 
   icon = fetchurl {
-    url = "https://github.com/Studio3T/robomongo/raw/${version}/trash/install/linux/robomongo.png";
-    sha256 = "15li8536x600kkfkb3h6mw7y0f2ljkv951pc45dpiw036vldibv2";
+    url = "https://github.com/Studio3T/robomongo/raw/${rev}/install/macosx/robomongo.iconset/icon_128x128.png";
+    sha256 = "sha256-2PkUxBq2ow0wl09k8B6LJJUQ+y4GpnmoAeumKN1u5xg=";
   };
 
   desktopItem = makeDesktopItem {
@@ -43,6 +47,7 @@ stdenv.mkDerivation rec {
     fontconfig
     freetype
     libGL
+    curlWithGnuTls
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/robomongo/default.nix b/nixpkgs/pkgs/applications/misc/robomongo/default.nix
index e8bba1f7a340..af5285909c6c 100644
--- a/nixpkgs/pkgs/applications/misc/robomongo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/robomongo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig,
+{ lib, stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig,
   freetype, xkeyboard_config, makeDesktopItem, makeWrapper }:
 
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix b/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix
index 4e69f9cce145..2f98fe164161 100644
--- a/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix
+++ b/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix
@@ -1,4 +1,4 @@
-{ symlinkJoin, lib, rofi-unwrapped, makeWrapper, hicolor-icon-theme, theme ? null, plugins ? [] }:
+{ symlinkJoin, lib, rofi-unwrapped, makeWrapper, wrapGAppsHook, gdk-pixbuf, hicolor-icon-theme, theme ? null, plugins ? [], symlink-dmenu ? false }:
 
 symlinkJoin {
   name = "rofi-${rofi-unwrapped.version}";
@@ -7,21 +7,30 @@ symlinkJoin {
     rofi-unwrapped.out
   ] ++ (lib.forEach plugins (p: p.out));
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+  buildInputs = [ gdk-pixbuf ];
+
   preferLocalBuild = true;
   passthru.unwrapped = rofi-unwrapped;
+
+  dontWrapGApps = true;
+
   postBuild = ''
     rm -rf $out/bin
     mkdir $out/bin
     ln -s ${rofi-unwrapped}/bin/* $out/bin
-
     rm $out/bin/rofi
+
+    gappsWrapperArgsHook
     makeWrapper ${rofi-unwrapped}/bin/rofi $out/bin/rofi \
+      ''${gappsWrapperArgs[@]} \
       --prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share \
       ${lib.optionalString (plugins != []) ''--prefix XDG_DATA_DIRS : ${lib.concatStringsSep ":" (lib.forEach plugins (p: "${p.out}/share"))}''} \
       ${lib.optionalString (theme != null) ''--add-flags "-theme ${theme}"''} \
       ${lib.optionalString (plugins != []) ''--add-flags "-plugin-path $out/lib/rofi"''}
 
+    ${lib.optionalString symlink-dmenu "ln -s ${rofi-unwrapped}/bin/rofi $out/bin/dmenu"}
+
     rm $out/bin/rofi-theme-selector
     makeWrapper ${rofi-unwrapped}/bin/rofi-theme-selector $out/bin/rofi-theme-selector \
       --prefix XDG_DATA_DIRS : $out/share
diff --git a/nixpkgs/pkgs/applications/misc/sc-im/default.nix b/nixpkgs/pkgs/applications/misc/sc-im/default.nix
index 0ae7a5c1ec09..9a05ac22afb8 100644
--- a/nixpkgs/pkgs/applications/misc/sc-im/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sc-im/default.nix
@@ -1,43 +1,56 @@
-{ lib, stdenv, fetchFromGitHub, yacc, ncurses, libxml2, libzip, libxls, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, pkg-config
+, which
+, bison
+, gnuplot
+, libxls
+, libxml2
+, libzip
+, ncurses
+}:
 
 stdenv.mkDerivation rec {
-  version = "0.7.0";
   pname = "sc-im";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "andmarti1424";
     repo = "sc-im";
     rev = "v${version}";
-    sha256 = "0xi0n9qzby012y2j7hg4fgcwyly698sfi4i9gkvy0q682jihprbk";
+    sha256 = "sha256-AIYa3d1ml1f5GNLKijeFPX+UabgEqzdXiP60BGvBPsQ=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ yacc ncurses libxml2 libzip libxls ];
+  sourceRoot = "${src.name}/src";
 
-  buildPhase = ''
-    cd src
+  nativeBuildInputs = [
+    makeWrapper
+    pkg-config
+    which
+    bison
+  ];
 
-    sed 's/LDLIBS += -lm/& -lncurses/' -i Makefile
+  buildInputs = [
+    gnuplot
+    libxls
+    libxml2
+    libzip
+    ncurses
+  ];
 
-    sed -e "\|^prefix  = /usr/local|   s|/usr/local|$out|" \
-        -e "\|^#LDLIBS += -lxlsreader| s|^#||            " \
-        -e "\|^#CFLAGS += -DXLS|       s|^#||            " \
-        -i Makefile
+  makeFlags = [ "prefix=${placeholder "out"}" ];
 
-    make
-    export DESTDIR=$out
-  '';
-
-  installPhase = ''
-    make install prefix=
+  postInstall = ''
+    wrapProgram "$out/bin/sc-im" --prefix PATH : "${lib.makeBinPath [ gnuplot ]}"
   '';
 
   meta = with lib; {
     homepage = "https://github.com/andmarti1424/sc-im";
-    description = "SC-IM - Spreadsheet Calculator Improvised - SC fork";
+    description = "An ncurses spreadsheet program for terminal";
     license = licenses.bsdOriginal;
-    maintainers = [ ];
+    maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/nixpkgs/pkgs/applications/misc/sent/default.nix b/nixpkgs/pkgs/applications/misc/sent/default.nix
index f4b811e0752d..fcf021a5ac7f 100644
--- a/nixpkgs/pkgs/applications/misc/sent/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sent/default.nix
@@ -2,10 +2,11 @@
 , patches ? [] }:
 
 stdenv.mkDerivation rec {
-  name = "sent-1";
+  pname = "sent";
+  version = "1";
 
   src = fetchurl {
-    url = "https://dl.suckless.org/tools/${name}.tar.gz";
+    url = "https://dl.suckless.org/tools/sent-${version}.tar.gz";
     sha256 = "0cxysz5lp25mgww73jl0mgip68x7iyvialyzdbriyaff269xxwvv";
   };
 
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
     description = "A simple plaintext presentation tool";
     homepage = "https://tools.suckless.org/sent/";
     license = licenses.isc;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/senv/default.nix b/nixpkgs/pkgs/applications/misc/senv/default.nix
new file mode 100644
index 000000000000..6df8dc781e70
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/senv/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "senv";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "SpectralOps";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "014422sdks2xlpsgvynwibz25jg1fj5s8dcf8b1j6djgq5glhfaf";
+  };
+
+  vendorSha256 = "05n55yf75r7i9kl56kw9x6hgmyf5bva5dzp9ni2ws0lb1389grfc";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Friends don't let friends leak secrets on their terminal window";
+    homepage = "https://github.com/SpectralOps/senv";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/sidequest/default.nix b/nixpkgs/pkgs/applications/misc/sidequest/default.nix
index 6dad2eaf8128..c83cd7726591 100644
--- a/nixpkgs/pkgs/applications/misc/sidequest/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sidequest/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, buildFHSUserEnv, makeDesktopItem, makeWrapper, atomEnv, libuuid, at-spi2-atk, icu, openssl, zlib }:
   let
     pname = "sidequest";
-    version = "0.10.11";
+    version = "0.10.19";
 
     desktopItem = makeDesktopItem rec {
       name = "SideQuest";
@@ -15,11 +15,11 @@
       inherit pname version;
 
       src = fetchurl {
-        url = "https://github.com/the-expanse/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz";
-        sha256 = "0fw952kdh1gn00y6sx2ag0rnb2paxq9ikg4bzgmbj7rrd1c6l2k9";
+        url = "https://github.com/SideQuestVR/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz";
+        sha256 = "14zqp12nigc4kv6hppyx2s59mmriimnzczay4xi3vh7zcw207px2";
       };
 
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ makeWrapper ];
 
       buildCommand = ''
         mkdir -p "$out/lib/SideQuest" "$out/bin"
@@ -46,8 +46,8 @@
 
       meta = with lib; {
         description = "An open app store and side-loading tool for Android-based VR devices such as the Oculus Go, Oculus Quest or Moverio BT 300";
-        homepage = "https://github.com/the-expanse/SideQuest";
-        downloadPage = "https://github.com/the-expanse/SideQuest/releases";
+        homepage = "https://github.com/SideQuestVR/SideQuest";
+        downloadPage = "https://github.com/SideQuestVR/SideQuest/releases";
         license = licenses.mit;
         maintainers = with maintainers; [ joepie91 rvolosatovs ];
         platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/misc/simplenote/default.nix b/nixpkgs/pkgs/applications/misc/simplenote/default.nix
index 840b37351c79..5032836ab9f3 100644
--- a/nixpkgs/pkgs/applications/misc/simplenote/default.nix
+++ b/nixpkgs/pkgs/applications/misc/simplenote/default.nix
@@ -17,10 +17,10 @@ let
 
   pname = "simplenote";
 
-  version = "2.2.0";
+  version = "2.8.0";
 
   sha256 = {
-    x86_64-linux = "123b0fh14068s2z3k6s5mmh46xwlz02qfnpmj838zlm5hckjmifv";
+    x86_64-linux = "sha256-W8+LzWMPDCrFZCm9p/Gcj7OXqJw/gs7lMxTKjOQChQY=";
   }.${system} or throwSystem;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix b/nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix
new file mode 100644
index 000000000000..1221db1ad962
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, libspnav, libX11, mesa_glu }:
+
+stdenv.mkDerivation {
+  pname = "spacenav-cube-example";
+  version = libspnav.version;
+
+  src = libspnav.src;
+
+  sourceRoot = "source/examples/cube";
+
+  buildInputs = [ libX11 mesa_glu libspnav ];
+
+  configureFlags = [ "--disable-debug" ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp cube $out/bin/spacenav-cube-example
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://spacenav.sourceforge.net/";
+    description = "An example application to test the spacenavd driver";
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sohalt ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix b/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix
index 2b97d2f0188b..62a6d4785f12 100644
--- a/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix
+++ b/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "spicetify-cli";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "khanhas";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Gkq19OlX6ci2i5mno77O/v3VfUkv6FRQFcH98qaUuXs=";
+    sha256 = "sha256-HASFaPqm/A1QQ4nkd2hgeyqWplwE1RTrWA937rJA5Oo=";
   };
 
-  vendorSha256 = "sha256-ARhWKYh8Wy2UEYGabn6l/kbnJ0nHYTIt4hn9wuVgBkw=";
+  vendorSha256 = "sha256-g0RYIVIq4oMXdRZDBDnVYg7ombN5WEo/6O9hChQvOYs=";
 
   # used at runtime, but not installed by default
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/misc/spnavcfg/default.nix b/nixpkgs/pkgs/applications/misc/spnavcfg/default.nix
new file mode 100644
index 000000000000..caeaa42192de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/spnavcfg/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchFromGitHub, pkg-config, gtk2 }:
+
+stdenv.mkDerivation rec {
+  pname = "spnavcfg";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "FreeSpacenav";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "180mkdis15gxs79rr3f7hpwa1p6v81bybw37pzzdjnmqwqrc08a0";
+  };
+
+  postPatch = ''
+    sed -i s/4775/775/ Makefile.in
+  '';
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ gtk2 ];
+
+  meta = with lib; {
+    homepage = "http://spacenav.sourceforge.net/";
+    description = "Interactive configuration GUI for space navigator input devices";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ gebner ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/stork/default.nix b/nixpkgs/pkgs/applications/misc/stork/default.nix
new file mode 100644
index 000000000000..16d56eeaa95f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/stork/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "stork";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "jameslittle230";
+    repo = "stork";
+    rev = "v${version}";
+    sha256 = "sha256-pBJ9n1pQafXagQt9bnj4N1jriczr47QLtKiv+UjWgTg=";
+  };
+
+  cargoSha256 = "sha256-u8L4ZeST4ExYB2y8E+I49HCy41dOfhR1fgPpcVMVDuk=";
+
+  meta = with lib; {
+    description = "Impossibly fast web search, made for static sites";
+    homepage = "https://github.com/jameslittle230/stork";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ chuahou ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/subsurface/default.nix b/nixpkgs/pkgs/applications/misc/subsurface/default.nix
index 51d015c6e410..19fdd4640e40 100644
--- a/nixpkgs/pkgs/applications/misc/subsurface/default.nix
+++ b/nixpkgs/pkgs/applications/misc/subsurface/default.nix
@@ -1,16 +1,17 @@
 { lib, stdenv, fetchurl, fetchFromGitHub, autoreconfHook, cmake, wrapQtAppsHook, pkg-config, qmake
 , curl, grantlee, libgit2, libusb-compat-0_1, libssh2, libxml2, libxslt, libzip, zlib
 , qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit, libXcomposite
+, bluez
 }:
 
 let
-  version = "4.9.6";
+  version = "4.9.10";
 
   subsurfaceSrc = (fetchFromGitHub {
     owner = "Subsurface";
     repo = "subsurface";
     rev = "v${version}";
-    sha256 = "1w1ak0fi6ljhg2jc4mjqyrbpax3iawrnsaqq6ls7qdzrhi37rggf";
+    sha256 = "12ndhjplz3cwndwzhfc959dc0i6rm2qf3v2d8n9kba8nj63iblfs";
     fetchSubmodules = true;
   });
 
@@ -52,6 +53,8 @@ let
 
     buildInputs = [ qtbase qtlocation libXcomposite ];
 
+    dontWrapQtApps = true;
+
     pluginsSubdir = "lib/qt-${qtbase.qtCompatVersion}/plugins";
 
     installPhase = ''
@@ -82,6 +85,7 @@ in stdenv.mkDerivation {
     libdc googlemaps
     curl grantlee libgit2 libssh2 libusb-compat-0_1 libxml2 libxslt libzip
     qtbase qtconnectivity qtsvg qttools qtwebkit
+    bluez
   ];
 
   nativeBuildInputs = [ cmake wrapQtAppsHook pkg-config ];
@@ -103,7 +107,7 @@ in stdenv.mkDerivation {
     '';
     homepage = "https://subsurface-divelog.org";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ mguentner ];
+    maintainers = with maintainers; [ mguentner adisbladis ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/sunwait/default.nix b/nixpkgs/pkgs/applications/misc/sunwait/default.nix
new file mode 100644
index 000000000000..c9581fe79f6c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sunwait/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "sunwait";
+  version = "2020-10-26";
+
+  src = fetchFromGitHub {
+    owner = "risacher";
+    repo = "sunwait";
+    rev = "102cb417ecbb7a3757ba9ee4b94d6db3225124c4";
+    sha256 = "0cs8rdcnzsl10zia2k49a6c2z6gvp5rnf31sgn3hn5c7kgy7l3ax";
+  };
+
+  installPhase = ''
+    install -Dm755 sunwait -t $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Calculates sunrise or sunset times with civil, nautical, astronomical and custom twilights";
+    homepage = "https://github.com/risacher/sunwait";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ etu ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/surface-control/default.nix b/nixpkgs/pkgs/applications/misc/surface-control/default.nix
index 2c5db1fe15ab..7904af3e7e15 100644
--- a/nixpkgs/pkgs/applications/misc/surface-control/default.nix
+++ b/nixpkgs/pkgs/applications/misc/surface-control/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "surface-control";
-  version = "0.3.1-1";
+  version = "0.3.1-2";
 
   src = fetchFromGitHub {
     owner = "linux-surface";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wclzlix0a2naxbdg3wym7yw19p2wqpcjmkf7gn8cs00shrmzjld";
+    sha256 = "sha256-SLJ4mwBafLGL5pneMTHLc4S4Tgds2xLqByWFH95TK1k=";
   };
 
-  cargoSha256 = "0vi26v9mvx298kx6k5g7h8dnn7r208an9knadc23vxcrrxjr6pn5";
+  cargoSha256 = "sha256-a+4oOkO90TObfYnq9NZsWy5RmYFYN1BKvUKxpvjiJc8=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/misc/swappy/default.nix b/nixpkgs/pkgs/applications/misc/swappy/default.nix
index bf1fdf63fed5..69d7836e7622 100644
--- a/nixpkgs/pkgs/applications/misc/swappy/default.nix
+++ b/nixpkgs/pkgs/applications/misc/swappy/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib
+, stdenv
+, fetchFromGitHub
 , meson
 , ninja
 , wayland
@@ -6,27 +8,29 @@
 , pango
 , gtk
 , pkg-config
-, cmake
 , scdoc
 , libnotify
-, gio-sharp
 , glib
+, wrapGAppsHook
+, hicolor-icon-theme
 }:
 
 stdenv.mkDerivation rec {
-  name = "swappy-${version}";
-  version = "1.2.1";
+  pname = "swappy";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "jtheoof";
-    repo = "swappy";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "14ac2jmnak7avcz0jhqjm30vk7pv3gq5aq5rdyh84k8c613kkicf";
+    sha256 = "12z643c7vzffhjsxaz1lak99i4nwm688pha0hh4pg69jf5wz5xx3";
   };
 
-  nativeBuildInputs = [ glib meson ninja pkg-config cmake scdoc ];
+  nativeBuildInputs = [ glib meson ninja pkg-config scdoc wrapGAppsHook ];
 
-  buildInputs = [ cairo pango gtk libnotify wayland glib ];
+  buildInputs = [
+    cairo pango gtk libnotify wayland glib hicolor-icon-theme
+  ];
 
   strictDeps = true;
 
@@ -37,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jtheoof/swappy";
-    description = "A Wayland native snapshot editing tool, inspired by Snappy on macOS ";
+    description = "A Wayland native snapshot editing tool, inspired by Snappy on macOS";
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
index afbf5b364ed4..0b97110b1dd5 100644
--- a/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
@@ -1,5 +1,20 @@
-{ lib, stdenv, fetchurl, fetchsvn, makeWrapper, makeDesktopItem, jdk, jre, ant
-, gtk3, gsettings-desktop-schemas, p7zip, libXxf86vm }:
+{ lib
+, stdenv
+, fetchurl
+, fetchsvn
+, makeWrapper
+, makeDesktopItem
+# sweethome3d 6.4.2 does not yet build with jdk 9 and later.
+# this is fixed on trunk (7699?) but let's build with jdk8 until then.
+, jdk8
+# it can run on the latest stable jre fine though
+, jre
+, ant
+, gtk3
+, gsettings-desktop-schemas
+, p7zip
+, libXxf86vm
+}:
 
 let
 
@@ -27,23 +42,30 @@ let
       categories = "Graphics;2DGraphics;3DGraphics;";
     };
 
-    patchPhase = ''
+    postPatch = ''
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/amd64/libnativewindow_awt.so
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/amd64/libnativewindow_x11.so
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_awt.so
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_x11.so
     '';
 
-    buildInputs = [ ant jdk makeWrapper p7zip gtk3 gsettings-desktop-schemas ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ ant jdk8 p7zip gtk3 gsettings-desktop-schemas ];
 
     buildPhase = ''
+      runHook preBuild
+
       ant furniture textures help
       mkdir -p $out/share/{java,applications}
       mv "build/"*.jar $out/share/java/.
       ant
+
+      runHook postBuild
     '';
 
     installPhase = ''
+      runHook preInstall
+
       mkdir -p $out/bin
       cp install/${module}-${version}.jar $out/share/java/.
 
@@ -59,6 +81,8 @@ let
         --set MESA_GL_VERSION_OVERRIDE 2.1 \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
         --add-flags "-Dsun.java2d.opengl=true -jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
+
+      runHook postInstall
     '';
 
     dontStrip = true;
diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
index 08bc5b90fd9c..f5dbd0510a32 100644
--- a/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
+++ b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
@@ -1,5 +1,17 @@
-{ lib, stdenv, fetchcvs, makeWrapper, makeDesktopItem, jdk, jre, ant
-, gtk3, gsettings-desktop-schemas, sweethome3dApp }:
+{ lib
+, stdenv
+, fetchcvs
+, makeWrapper
+, makeDesktopItem
+# sweethome3d 6.4.2 does not yet build with jdk 9 and later.
+# this is fixed on trunk (7699?) but let's build with jdk8 until then.
+, jdk8
+# it can run on the latest stable jre fine though
+, jre
+, ant
+, gtk3
+, gsettings-desktop-schemas
+, sweethome3dApp }:
 
 let
 
@@ -23,15 +35,20 @@ let
       categories = "Graphics;2DGraphics;3DGraphics;";
     };
 
-    buildInputs = [ ant jre jdk makeWrapper gtk3 gsettings-desktop-schemas ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ ant jre jdk8 gtk3 gsettings-desktop-schemas ];
 
-    patchPhase = ''
+    postPatch = ''
       sed -i -e 's,../SweetHome3D,${application.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 = ''
-      ant -lib ${application.src}/libtest -lib ${application.src}/lib -lib ${jdk}/lib
+      runHook preBuild
+
+      ant -lib ${application.src}/libtest -lib ${application.src}/lib -lib ${jdk8}/lib
+
+      runHook postBuild
     '';
 
     installPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix b/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
index 2a395a227ba6..dc4569c6fca3 100644
--- a/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
+++ b/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
@@ -19,24 +19,29 @@
 }:
 
 mkDerivation rec {
-  version = "1.1.2";
+  version = "1.1.3";
   pname = "syncthingtray";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "syncthingtray";
     rev = "v${version}";
-    sha256 = "sha256-I5QhnYp4ga3ERJ3w4qjh5gFFU+S1Htw26vHK/2M8j5s=";
+    sha256 = "sha256-ovit2XSkxSjcbpqQUv8IzMqfsfItbtXLbx0/Vy0+J0Y=";
   };
 
   buildInputs = [ qtbase cpp-utilities qtutilities ]
     ++ lib.optionals webviewSupport [ qtwebengine ]
     ++ lib.optionals jsSupport [ qtdeclarative ]
     ++ lib.optionals kioPluginSupport [ kio ]
-    ++ lib.optionals plasmoidSupport [ extra-cmake-modules plasma-framework ]
+    ++ lib.optionals plasmoidSupport [ plasma-framework ]
   ;
 
-  nativeBuildInputs = [ cmake qttools ];
+  nativeBuildInputs = [
+    cmake
+    qttools
+  ]
+    ++ lib.optionals plasmoidSupport [ extra-cmake-modules ]
+  ;
 
   # No tests are available by upstream, but we test --help anyway
   doInstallCheck = true;
@@ -56,7 +61,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Martchus/syncthingtray";
     description = "Tray application and Dolphin/Plasma integration for Syncthing";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/applications/misc/tabula/default.nix b/nixpkgs/pkgs/applications/misc/tabula/default.nix
index 1804f3c04e89..b396c578c903 100644
--- a/nixpkgs/pkgs/applications/misc/tabula/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tabula/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix b/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix
deleted file mode 100644
index 0235c8af7c53..000000000000
--- a/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{stdenv, fetchurl,
-zlib, libpng, libjpeg, perl, expat, qt3,
-libX11, libXext, libSM, libICE,
-}:
-
-stdenv.mkDerivation rec {
-  name = "taskjuggler-2.4.3";
-  src = fetchurl {
-    url = "http://www.taskjuggler.org/download/${name}.tar.bz2";
-    sha256 = "14gkxa2vwfih5z7fffbavps7m44z5bq950qndigw2icam5ks83jl";
-  };
-
-  buildInputs =
-    [zlib libpng libX11 libXext libSM libICE perl expat libjpeg]
-    ;
-
-  patches = [ ./timezone-glibc.patch ];
-
-  preConfigure = ''
-    for i in $(grep -R "/bin/bash" .  | sed 's/:.*//'); do
-      substituteInPlace $i --replace /bin/bash $(type -Pp bash)
-    done
-    for i in $(grep -R "/usr/bin/perl" .  | sed 's/:.*//'); do
-      substituteInPlace $i --replace /usr/bin/perl ${perl}/bin/perl
-    done
-
-    # Fix install
-    for i in docs/en/Makefile.in Examples/BigProject/Common/Makefile.in Examples/BigProject/Makefile.in Examples/BigProject/Project1/Makefile.in Examples/BigProject/Project2/Makefile.in Examples/FirstProject/Makefile.in Examples/ShiftSchedule/Makefile.in; do
-      # Do not use variable substitution because there is some text after the last '@'
-      substituteInPlace $i --replace 'docprefix = @PACKAGES_DIR@' 'docprefix = $(docdir)/'
-    done
-
-    # Comment because the ical export need the KDE support.
-    for i in Examples/FirstProject/AccountingSoftware.tjp; do
-      substituteInPlace $i --replace "icalreport" "# icalreport"
-    done
-
-    for i in TestSuite/testdir TestSuite/createrefs \
-      TestSuite/Scheduler/Correct/Expression.sh; do
-      substituteInPlace $i --replace '/bin/rm' 'rm'
-    done
-
-    # Some tests require writing at $HOME
-    HOME=$TMPDIR
-  '';
-
-  configureFlags = [
-    "--without-arts" "--disable-docs"
-    "--x-includes=${libX11.dev}/include"
-    "--x-libraries=${libX11.out}/lib"
-    "--with-qt-dir=${qt3}"
-  ];
-
-  preInstall = ''
-    mkdir -p $out/share/emacs/site-lisp/
-    cp Contrib/emacs/taskjug.el $out/share/emacs/site-lisp/
-  '';
-
-  # kde_locale is not defined when installing without kde.
-  installFlags = [ "kde_locale=\${out}/share/locale" ];
-
-  meta = {
-    homepage = "http://www.taskjuggler.org";
-    license = lib.licenses.gpl2;
-    description = "Project management tool";
-    longDescription = ''
-      TaskJuggler is a modern and powerful, Open Source project management
-      tool. Its new approach to project planing and tracking is more
-      flexible and superior to the commonly used Gantt chart editing
-      tools. It has already been successfully used in many projects and
-      scales easily to projects with hundreds of resources and thousands of
-      tasks.
-    '';
-  };
-}
diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch b/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch
deleted file mode 100644
index f599e8a1730c..000000000000
--- a/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From the discussion in http://groups.google.com/group/taskjuggler-users/browse_thread/thread/f65a3efd4dcae2fc/a44c711a9d28ebee?show_docid=a44c711a9d28ebee
-
-From: Chris Schlaeger <cs@kde.org>
-Date: Sat, 27 Feb 2010 06:33:35 +0000 (+0100)
-Subject: Try to fix time zone check for glibc 2.11.
-X-Git-Url: http://www.taskjuggler.org/cgi-bin/gitweb.cgi?p=taskjuggler.git;a=commitdiff_plain;h=2382ed54f90c3c899badb3f56aaa2b3b5dba361e;hp=c666c5068312fec7db75e17d1c567d94127d1dda
-
-Try to fix time zone check for glibc 2.11.
-
-Reported-by: Lee <pFQh8RQn4fqB@dyweni.com>
----
-
-diff --git a/taskjuggler/Utility.cpp b/taskjuggler/Utility.cpp
-index 5e2bf21..9b7fce2 100644
---- a/taskjuggler/Utility.cpp
-+++ b/taskjuggler/Utility.cpp
-@@ -206,16 +206,28 @@ setTimezone(const char* tZone)
- 
-     /* To validate the tZone value we call tzset(). It will convert the zone
-      * into a three-letter acronym in case the tZone value is good. If not, it
--     * will just copy the wrong value to tzname[0] (glibc < 2.5) or fall back
--     * to UTC. */
-+     * will
-+     * - copy the wrong value to tzname[0] (glibc < 2.5)
-+     * - or fall back to UTC (glibc >= 2.5 && < 2.11)
-+     * - copy the part before the '/' to tzname[0] (glibc >= 2.11).
-+     */
-     tzset();
-+    char* region = new(char[strlen(tZone) + 1]);
-+    region[0] = 0;
-+    if (strchr(tZone, '/'))
-+    {
-+        strcpy(region, tZone);
-+        *strchr(region, '/') = 0;
-+    }
-     if (timezone2tz(tZone) == 0 &&
--        (strcmp(tzname[0], tZone) == 0 ||
-+        (strcmp(tzname[0], tZone) == 0 || strcmp(tzname[0], region) == 0 ||
-          (strcmp(tZone, "UTC") != 0 && strcmp(tzname[0], "UTC") == 0)))
-     {
-         UtilityError = QString(i18n("Illegal timezone '%1'")).arg(tZone);
-+        delete region;
-         return false;
-     }
-+    delete region;
- 
-     if (!LtHashTab)
-         return true;
diff --git a/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix b/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix
index 530d60c76313..9c1e778bdf3e 100644
--- a/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix
@@ -5,19 +5,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "taskwarrior-tui";
-  version = "0.9.10";
+  version = "0.10.4";
 
   src = fetchFromGitHub {
     owner = "kdheepak";
     repo = "taskwarrior-tui";
     rev = "v${version}";
-    sha256 = "sha256-NQzZhWoLeDF7iTgIljbVi0ULAe7DeIn45Cu6bgFCfKQ=";
+    sha256 = "1rs6xpnmqzp45jkdzi8x06i8764gk7zl86sp6s0hiirbfqf7vwsy";
   };
 
   # Because there's a test that requires terminal access
   doCheck = false;
 
-  cargoSha256 = "sha256-9qfqQ7zFw+EwY7o35Y6RhBJ8h5eXnTAsdbqo/w0zO5w=";
+  cargoSha256 = "0xblxsp7jgqbb3kr5k7yy6ziz18a8wlkrhls0vz9ak2n0ngddg3r";
 
   meta = with lib; {
     description = "A terminal user interface for taskwarrior ";
diff --git a/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix b/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix
index b3f26c87c50e..ee781c75e693 100644
--- a/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix
+++ b/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix
@@ -1,19 +1,37 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libuuid, gnutls }:
+{ lib, stdenv, fetchurl, cmake, libuuid, gnutls, python3, bash }:
 
 stdenv.mkDerivation rec {
   pname = "taskwarrior";
-  version = "2.5.2";
-
-  src = fetchFromGitHub {
-    owner = "GothenburgBitFactory";
-    repo = "taskwarrior";
-    rev = "v${version}";
-    sha256 = "0jv5b56v75qhdqbrfsddfwizmbizcsv3mn8gp92nckwlx9hrk5id";
-    fetchSubmodules = true;
-  };
+  version = "2.5.3";
+
+  srcs = [
+    (fetchurl {
+      url = " https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${version}/${sourceRoot}.tar.gz";
+      sha256 = "0fwnxshhlha21hlgg5z1ad01w13zm1hlmncs274y5n8i15gdfhvj";
+    })
+    (fetchurl {
+      url = "https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${version}/tests-${version}.tar.gz";
+      sha256 = "165xmf9h6rb7l6l9nlyygj0mx9bi1zyd78z0lrl3nadhmgzggv0b";
+    })
+  ];
+
+  sourceRoot = "task-${version}";
+
+  postUnpack = ''
+    mv test ${sourceRoot}
+  '';
 
   nativeBuildInputs = [ cmake libuuid gnutls ];
 
+  doCheck = true;
+  preCheck = ''
+    find test -type f -exec sed -i \
+      -e "s|/usr/bin/env python3|${python3.interpreter}|" \
+      -e "s|/usr/bin/env bash|${bash}/bin/bash|" \
+      {} +
+  '';
+  checkTarget = "test";
+
   postInstall = ''
     mkdir -p "$out/share/bash-completion/completions"
     ln -s "../../doc/task/scripts/bash/task.sh" "$out/share/bash-completion/completions/task.bash"
@@ -28,6 +46,6 @@ stdenv.mkDerivation rec {
     homepage = "https://taskwarrior.org";
     license = licenses.mit;
     maintainers = with maintainers; [ marcweber ];
-    platforms = platforms.linux ++ platforms.darwin;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/tellico/default.nix b/nixpkgs/pkgs/applications/misc/tellico/default.nix
index 7037b40816ca..65cd003253dc 100644
--- a/nixpkgs/pkgs/applications/misc/tellico/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tellico/default.nix
@@ -1,29 +1,30 @@
 { lib
 , fetchurl
 , mkDerivation
-, libkcddb
-, kinit
-, kdelibs4support
-, solid
-, kxmlgui
+, cmake
+, exempi
+, extra-cmake-modules
 , karchive
+, kdoctools
 , kfilemetadata
 , khtml
+, kitemmodels
 , knewstuff
-, libksane
-, cmake
-, exempi
-, extra-cmake-modules
+, kxmlgui
 , libcdio
-, poppler
+, libkcddb
+, libksane
 , makeWrapper
-, kdoctools
+, poppler
+, qtcharts
+, qtwebengine
+, solid
 , taglib
 }:
 
 mkDerivation rec {
-  name = "tellico";
-  version = "3.3.3";
+  pname = "tellico";
+  version = "3.4";
 
   src = fetchurl {
     # version 3.3.0 just uses 3.3 in its name
@@ -31,7 +32,7 @@ mkDerivation rec {
       "https://tellico-project.org/files/tellico-${version}.tar.xz"
       "https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz"
     ];
-    sha256 = "sha256-9cdbUTa2Mt3/yNylOSdGjgDETD74sR0dU4C58uW0Y6o=";
+    sha256 = "sha256-YXMJrAkfehe3ox4WZ19igyFbXwtjO5wxN3bmgP01jPs=";
   };
 
   nativeBuildInputs = [
@@ -43,17 +44,18 @@ mkDerivation rec {
 
   buildInputs = [
     exempi
-    extra-cmake-modules
     karchive
-    libkcddb
-    kdelibs4support
     kfilemetadata
     khtml
+    kitemmodels
     knewstuff
     kxmlgui
     libcdio
+    libkcddb
     libksane
     poppler
+    qtcharts
+    qtwebengine
     solid
     taglib
   ];
diff --git a/nixpkgs/pkgs/applications/misc/ticker/default.nix b/nixpkgs/pkgs/applications/misc/ticker/default.nix
new file mode 100644
index 000000000000..fd37a692d841
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ticker/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "ticker";
+  version = "4.0.3";
+
+  src = fetchFromGitHub {
+    owner = "achannarasappa";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-YVpspFBwao/7M2nTVMw+ANc0roL0vBO4DpNUb7Thp3Q=";
+  };
+
+  vendorSha256 = "sha256-nidOIjrTL4llV5GORebXOOPGeL6TxkurDY82cIc7+mU=";
+
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X github.com/achannarasappa/ticker/cmd.Version=v${version}")
+  '';
+
+  # Tests require internet
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Terminal stock ticker with live updates and position tracking";
+    homepage = "https://github.com/achannarasappa/ticker";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/tickrs/default.nix b/nixpkgs/pkgs/applications/misc/tickrs/default.nix
index d49c62219026..8866e2a07c2e 100644
--- a/nixpkgs/pkgs/applications/misc/tickrs/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tickrs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tickrs";
-  version = "0.10.2";
+  version = "0.14.4";
 
   src = fetchFromGitHub {
     owner = "tarkah";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kX5Vp+yNlzBj1ewm7zNtpmbk5B2OQi0nrUNV7l6XUH0=";
+    sha256 = "sha256-OOsBo+NCfn++2XyfQVoeEPcbSv645Ng7g9s4W7X2xg4=";
   };
 
-  cargoSha256 = "sha256-X7ULfb2+9l8ik12SwWCTdUfki6xbk8pCnFaiEvCwYGw=";
+  cargoSha256 = "sha256-PW8f4PZGctHd8YBBRvmueR8UgtyDQZpqf2lTU1t68iM=";
 
   nativeBuildInputs = [ perl ];
 
diff --git a/nixpkgs/pkgs/applications/misc/tipp10/default.nix b/nixpkgs/pkgs/applications/misc/tipp10/default.nix
index 3333760a759a..37aafb7827ef 100644
--- a/nixpkgs/pkgs/applications/misc/tipp10/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tipp10/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "tipp10";
-  version = "unstable-20200616";
+  version = "3.2.1";
 
   src = fetchFromGitLab {
     owner = "tipp10";
     repo = "tipp10";
-    rev = "2dd6d45c8a91cff7075675d8875721456cdd5f1b";
-    sha256 = "16x51rv4r6cz5vsmrfbakqzbfxy456h82ibzacknp35f41cjdqq4";
+    rev = "v${version}";
+    sha256 = "4cxN2AnvYhZAMuA/qfmdLVICJNk6VCpRnfelbxYRvPg=";
   };
 
   nativeBuildInputs = [ cmake qttools ];
@@ -17,8 +17,8 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Learn and train typing with the ten-finger system";
-    homepage = "https://gitlab.com/a_a/tipp10";
-    license = licenses.gpl2;
+    homepage = "https://gitlab.com/tipp10/tipp10";
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ petabyteboy ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix b/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix
index cdcb54cbc6c4..945b0b324910 100644
--- a/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix
+++ b/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix
@@ -1,65 +1,51 @@
-{ stdenv, lib, fetchurl, makeDesktopItem, dpkg, atk, at-spi2-atk, glib, pango, gdk-pixbuf
-, gtk3, cairo, freetype, fontconfig, dbus, xorg, nss, nspr, alsaLib, cups, expat
-, udev, libpulseaudio, util-linux, makeWrapper }:
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_11, libsecret }:
 
 stdenv.mkDerivation rec {
   pname = "todoist-electron";
-  version = "1.24.0";
+  version = "0.2.4";
 
   src = fetchurl {
-    url = "https://github.com/KryDos/todoist-linux/releases/download/${version}/Todoist_${version}_amd64.deb";
-    sha256 = "0g35518z6nf6pnfyx4ax75rq8b8br72mi6wv6jzgac9ric1q4h2s";
+    url = "https://electron-dl.todoist.com/linux/Todoist-${version}.AppImage";
+    sha256 = "1xrf2qjhq116z18qx7n1zd7mhvkb2dccaq7az4w6fs216l8q5zf2";
   };
 
-  desktopItem = makeDesktopItem {
-    name = "Todoist";
-    exec = "todoist %U";
-    icon = "todoist";
-    comment = "Todoist for Linux";
-    desktopName = "Todoist";
-    categories = "Utility";
+  appimageContents = appimageTools.extractType2 {
+    name = "${pname}-${version}";
+    inherit src;
   };
 
-  nativeBuildInputs = [ makeWrapper dpkg ];
-  unpackPhase = ''
-    mkdir pkg
-    dpkg-deb -x $src pkg
-    sourceRoot=pkg
-  '';
-  installPhase = let
-    libPath = lib.makeLibraryPath ([
-      stdenv.cc.cc gtk3 atk at-spi2-atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
-      nss nspr alsaLib libpulseaudio cups expat udev util-linux
-    ] ++ (with xorg; [
-      libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libxcb
-      libXrender libX11 libXtst libXScrnSaver
-    ]));
-  in ''
-    mkdir -p "$out/bin"
-    mv opt "$out/"
-    mv usr/share "$out/share"
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
 
-    # Patch binary
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${libPath}:\$ORIGIN" \
-      $out/opt/Todoist/todoist
+    mkdir -p $out/bin $out/share/${pname} $out/share/applications $out/share/icons/hicolor/512x512
 
-    # Hacky workaround for RPATH problems
-    makeWrapper $out/opt/Todoist/todoist $out/bin/todoist \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpulseaudio udev ]}
+    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+    cp -a ${appimageContents}/todoist.desktop $out/share/applications/${pname}.desktop
+    cp -a ${appimageContents}/usr/share/icons/hicolor/0x0/apps $out/share/icons/hicolor/512x512
+
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+
+    runHook postInstall
+  '';
 
-    # Desktop item
-    mkdir -p "$out/share"
-    rm -r "$out/share/applications"
-    cp -r "${desktopItem}/share/applications" "$out/share/applications"
+  postFixup = ''
+    makeWrapper ${electron_11}/bin/electron $out/bin/${pname} \
+      --add-flags $out/share/${pname}/resources/app.asar \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc libsecret ]}"
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/KryDos/todoist-linux";
-    description = "The Linux wrapper for Todoist web version";
+    homepage = "https://todoist.com";
+    description = "The official Todoist electron app";
     platforms = [ "x86_64-linux" ];
-    license = licenses.mit;
-    maintainers = with maintainers; [ i077 ];
+    license = licenses.unfree;
+    maintainers = with maintainers; [ i077 kylesferrazza ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/translate-shell/default.nix b/nixpkgs/pkgs/applications/misc/translate-shell/default.nix
index 03ed031be857..319ba3643da4 100644
--- a/nixpkgs/pkgs/applications/misc/translate-shell/default.nix
+++ b/nixpkgs/pkgs/applications/misc/translate-shell/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "075vqnha21rhr1b61dim7dqlfwm1yffyzcaa83s36rpk9r5sddzx";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installFlags = [ "PREFIX=$(out)" ];
 
diff --git a/nixpkgs/pkgs/applications/misc/tty-share/default.nix b/nixpkgs/pkgs/applications/misc/tty-share/default.nix
index a402a669fbea..08c88e376bb6 100644
--- a/nixpkgs/pkgs/applications/misc/tty-share/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tty-share/default.nix
@@ -3,13 +3,13 @@
 # Upstream has a `./vendor` directory with all deps which we rely upon.
 buildGoPackage rec {
   pname = "tty-share";
-  version = "2.0.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "elisescu";
     repo = "tty-share";
     rev = "v${version}";
-    sha256 = "1d2vd3d1lb4n0jq4s0p5mii1vz4r3z36hykr5mnx53srsni1wsj5";
+    sha256 = "sha256-+bdQ7KyGEdJJAopzGnDOcLvFNyiKqpagPR1EoU1VR5E=";
   };
 
   goPackagePath = "github.com/elisescu/tty-share";
diff --git a/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix b/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix
index 9b2fcf3d17a1..9ea26b52bc34 100644
--- a/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   patchPhase = "sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile";
 
-  makeFlags = [ "CC=cc" "PREFIX=${placeholder "out"}" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=${placeholder "out"}" ];
 
   meta = with lib; {
     description = "Klondike Solitaire in your ncurses terminal";
diff --git a/nixpkgs/pkgs/applications/misc/udiskie/default.nix b/nixpkgs/pkgs/applications/misc/udiskie/default.nix
index 87c49a19a196..d780f9e35d55 100644
--- a/nixpkgs/pkgs/applications/misc/udiskie/default.nix
+++ b/nixpkgs/pkgs/applications/misc/udiskie/default.nix
@@ -1,37 +1,50 @@
-{ lib, fetchFromGitHub, asciidoc-full, gettext
-, gobject-introspection, gtk3, libappindicator-gtk3, libnotify, librsvg
-, udisks2, wrapGAppsHook
-, python3Packages
+{ lib
+, fetchFromGitHub
+, asciidoc-full
+, buildPythonApplication
+, docopt
+, gettext
+, gobject-introspection
+, gtk3
+, keyutils
+, libappindicator-gtk3
+, libnotify
+, librsvg
+, nose
+, pygobject3
+, pyyaml
+, udisks2
+, wrapGAppsHook
 }:
 
-python3Packages.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "udiskie";
-  version = "2.2.0";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "coldfix";
     repo = "udiskie";
-    rev = version;
-    sha256 = "0kn5w6bm3rmbszphzbxpjfnkawb2naa230svzkpmh3n6dcdvk4qa";
+    rev = "v${version}";
+    hash = "sha256-eucAFMzLf2RfMfVgFTfPAgVNpDADddvTUZQO/XbBhGo=";
   };
 
   nativeBuildInputs = [
+    asciidoc-full # Man page
     gettext
-    asciidoc-full        # For building man page.
     gobject-introspection
     wrapGAppsHook
   ];
 
   buildInputs = [
-    librsvg              # required for loading svg icons (udiskie uses svg icons)
     gobject-introspection
-    libnotify
     gtk3
-    udisks2
     libappindicator-gtk3
+    libnotify
+    librsvg # Because it uses SVG icons
+    udisks2
   ];
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = [
     docopt
     pygobject3
     pyyaml
@@ -44,7 +57,7 @@ python3Packages.buildPythonApplication rec {
     cp -v doc/udiskie.8 $out/share/man/man8/
   '';
 
-  checkInputs = with python3Packages; [
+  checkInputs = [
     nose
     keyutils
   ];
@@ -54,9 +67,23 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
+    homepage = "https://github.com/coldfix/udiskie";
     description = "Removable disk automounter for udisks";
+    longDescription = ''
+      udiskie is a udisks2 front-end that allows to manage removeable media such
+      as CDs or flash drives from userspace.
+
+      Its features include:
+      - automount removable media
+      - notifications
+      - tray icon
+      - command line tools for manual un-/mounting
+      - LUKS encrypted devices
+      - unlocking with keyfiles (requires udisks 2.6.4)
+      - loop devices (mounting iso archives)
+      - password caching (requires python keyutils 0.3)
+    '';
     license = licenses.mit;
-    homepage = "https://github.com/coldfix/udiskie";
     maintainers = with maintainers; [ AndersonTorres ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/unipicker/default.nix b/nixpkgs/pkgs/applications/misc/unipicker/default.nix
new file mode 100644
index 000000000000..fc47a872848f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/unipicker/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, lib, fzf, xclip }:
+
+stdenv.mkDerivation rec {
+   pname = "unipicker";
+   version = "unstable-2018-07-10";
+
+   src = fetchFromGitHub {
+      owner = "jeremija";
+      repo = pname;
+      rev = "767571c87cdb1e654408d19fc4db98e5e6725c04";
+      sha256 = "1k4v53pm3xivwg9vq2kndpcmah0yn4679r5jzxvg38bbkfdk86c1";
+   };
+
+   buildInputs = [
+      fzf
+      xclip
+   ];
+
+   preInstall = ''
+      substituteInPlace unipicker --replace "/etc/unipickerrc" "$out/etc/unipickerrc"
+      substituteInPlace unipickerrc --replace "/usr/local" "$out"
+   '';
+
+   makeFlags = [
+      "PREFIX=$(out)"
+      "DESTDIR=$(out)"
+   ];
+
+   meta = with lib; {
+    description = "A CLI utility for searching unicode characters by description and optionally copying them to clipboard";
+    homepage = "https://github.com/jeremija/unipicker";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kiyengar ];
+    platforms = with platforms; unix;
+   };
+}
diff --git a/nixpkgs/pkgs/applications/misc/upwork/default.nix b/nixpkgs/pkgs/applications/misc/upwork/default.nix
index 36fd4047761c..9b8821b5115e 100644
--- a/nixpkgs/pkgs/applications/misc/upwork/default.nix
+++ b/nixpkgs/pkgs/applications/misc/upwork/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, dpkg, wrapGAppsHook, autoPatchelfHook, writeShellScript
+{ lib, stdenv, fetchurl, dpkg, wrapGAppsHook, autoPatchelfHook
 , alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype
 , gdk-pixbuf, glib, gtk3, libnotify, libX11, libXcomposite, libXcursor, libXdamage, libuuid
 , libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "upwork";
-  version = "5.4.9.6";
+  version = "5.5.0.1";
 
   src = fetchurl {
-    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_4_9_6_2565cdd0547940a2/${pname}_${version}_amd64.deb";
-    sha256 = "ff6246b3b4a1ed79cc9bca2934652fefb40bdac4b7e95997f3a46e354ce52456";
+    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_5_0_1_291c031686ed44ff/${pname}_${version}_amd64.deb";
+    sha256 = "49192ecfb10929b5b51cf8899186059649c894109ec172695cd7cfaa50923f6a";
   };
 
   dontWrapGApps = true;
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    runHook preInstall
     mv usr $out
     mv opt $out
     sed -e "s|/opt/Upwork|$out/bin|g" -i $out/share/applications/upwork.desktop
@@ -44,6 +45,7 @@ stdenv.mkDerivation rec {
       $out/bin/upwork \
       --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
       --prefix LD_LIBRARY_PATH : ${libPath}
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/misc/vifm/default.nix b/nixpkgs/pkgs/applications/misc/vifm/default.nix
index 18d190a9dd6c..7bc4bd1ff768 100644
--- a/nixpkgs/pkgs/applications/misc/vifm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/vifm/default.nix
@@ -40,5 +40,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://vifm.info/";
     inherit version;
     updateWalker = true;
+    changelog = "https://github.com/vifm/vifm/blob/v${version}/ChangeLog";
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/viking/default.nix b/nixpkgs/pkgs/applications/misc/viking/default.nix
index 61ebfb0fcc6a..72c0fefd4e6c 100644
--- a/nixpkgs/pkgs/applications/misc/viking/default.nix
+++ b/nixpkgs/pkgs/applications/misc/viking/default.nix
@@ -1,60 +1,57 @@
-{ fetchurl, fetchpatch, lib, stdenv, makeWrapper
-, pkg-config, intltool, gettext, gtk2, expat, curl
-, gpsd, bc, file, gnome-doc-utils, libexif, libxml2, libxslt, scrollkeeper
-, docbook_xml_dtd_412, gexiv2, gpsbabel, expect
+{ lib, stdenv, fetchurl
+, docbook_xml_dtd_45, docbook_xsl, intltool, itstool, libxslt, pkg-config, wrapGAppsHook, yelp-tools
+, curl, gdk-pixbuf, gtk3, json-glib, libxml2
+, gpsbabel
+, withGeoClue ? true, geoclue2
+, withGeoTag ? true, gexiv2
+, withMagic ? true, file
 , withMapnik ? false, mapnik
 , withMBTiles ? true, sqlite
-, withOAuth ? true, liboauth
 , withMd5Hash ? true, nettle
-, withGeoClue ? true, geoclue2 }:
+, withOAuth ? true, liboauth
+, withRealtimeGPSTracking ? true, gpsd
+}:
 
 stdenv.mkDerivation rec {
   pname = "viking";
-  version = "1.8";
+  version = "1.9";
 
   src = fetchurl {
-    url = "mirror://sourceforge/viking/viking/viking-${version}.tar.bz2";
-    sha256 = "1a0g0fbj4q5s9p8fv0mqvxws10q3naj81l72sz30vvqpbz6vqp45";
+    url = "mirror://sourceforge/viking/viking-${version}.tar.bz2";
+    sha256 = "0fybpy6k0vmjp231h5ckysl3c0rcnh2afznijwq6y78j4hywyjpy";
   };
 
-  patches = [
-    # Fix build without mapnik and sqlite https://github.com/viking-gps/viking/pull/79
-    (fetchpatch {
-      url = "https://github.com/viking-gps/viking/commit/995feefcb97bdb1590ed018224cf47ce197fe0c1.patch";
-      sha256 = "1xb0b76kg690fag9mw3yfj5k766jmqp1sm8q4f29n1h3nz5g8izd";
-    })
-  ];
+  nativeBuildInputs = [ docbook_xml_dtd_45 docbook_xsl intltool itstool libxslt pkg-config wrapGAppsHook yelp-tools ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
-    libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2
-  ] ++ lib.optional withMapnik mapnik
+  buildInputs = [ curl gdk-pixbuf gtk3 json-glib libxml2 ]
     ++ lib.optional withGeoClue geoclue2
+    ++ lib.optional withGeoTag  gexiv2
+    ++ lib.optional withMagic   file
+    ++ lib.optional withMapnik  mapnik
+    ++ lib.optional withMBTiles sqlite
     ++ lib.optional withMd5Hash nettle
-    ++ lib.optional withOAuth liboauth
-    ++ lib.optional withMBTiles sqlite;
+    ++ lib.optional withOAuth   liboauth
+    ++ lib.optional withRealtimeGPSTracking gpsd;
 
   configureFlags = [
-    "--disable-scrollkeeper"
-    (lib.enableFeature withMapnik "mapnik")
     (lib.enableFeature withGeoClue "geoclue")
-    (lib.enableFeature withMd5Hash "nettle")
-    (lib.enableFeature withOAuth "oauth")
+    (lib.enableFeature withGeoTag  "geotag")
+    (lib.enableFeature withMagic   "magic")
+    (lib.enableFeature withMapnik  "mapnik")
     (lib.enableFeature withMBTiles "mbtiles")
+    (lib.enableFeature withMd5Hash "nettle")
+    (lib.enableFeature withOAuth   "oauth")
+    (lib.enableFeature withRealtimeGPSTracking "realtime-gps-tracking")
   ];
 
-  preBuild = ''
-    sed -i help/Makefile \
-        -e 's|--noout|--noout --nonet --path "${scrollkeeper}/share/xml/scrollkeeper/dtds"|g'
-    sed -i help/Makefile -e 's|--postvalid||g'
-  '';
+  hardeningDisable = [ "format" ];
 
   doCheck = true;
 
-  postInstall = ''
-    wrapProgram $out/bin/viking \
-      --prefix PATH : "${gpsbabel}/bin" \
-      --prefix PATH : "${expect}/bin"
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : ${lib.makeBinPath [ gpsbabel ]}
+    )
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/misc/visidata/default.nix b/nixpkgs/pkgs/applications/misc/visidata/default.nix
index b7f9d6ca1a66..fc609b280f99 100644
--- a/nixpkgs/pkgs/applications/misc/visidata/default.nix
+++ b/nixpkgs/pkgs/applications/misc/visidata/default.nix
@@ -44,7 +44,7 @@ buildPythonApplication rec {
     description = "Interactive terminal multitool for tabular data";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.raskin ];
-    platforms = with lib.platforms; linux ++ darwin;
     homepage = "http://visidata.org/";
+    changelog = "https://github.com/saulpw/visidata/blob/v${version}/CHANGELOG.md";
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/vit/default.nix b/nixpkgs/pkgs/applications/misc/vit/default.nix
index 3ae4aacb872b..d5c454a06e85 100644
--- a/nixpkgs/pkgs/applications/misc/vit/default.nix
+++ b/nixpkgs/pkgs/applications/misc/vit/default.nix
@@ -8,12 +8,12 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "vit";
-  version = "2.0.0";
+  version = "2.1.0";
   disabled = lib.versionOlder python.version "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5282d8076d9814d9248071aec8784cffbd968601542533ccb28ca61d1d08205e";
+    sha256 = "fd34f0b827953dfdecdc39f8416d41c50c24576c33a512a047a71c1263eb3e0f";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/waybar/default.nix b/nixpkgs/pkgs/applications/misc/waybar/default.nix
index 0cbe325f62af..d730f966347c 100644
--- a/nixpkgs/pkgs/applications/misc/waybar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/waybar/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , meson
 , pkg-config
 , ninja
@@ -36,6 +37,17 @@ stdenv.mkDerivation rec {
     sha256 = "1kzrgqaclfk6gcwhknxn28xl74gm5swipgn8kk8avacb4nsw1l9q";
   };
 
+  patches = [
+    # XXX: REMOVE ON NEXT VERSION BUMP
+    # Fixes compatibility of the bluetooth and network modules with linux kernel
+    # >=5.11
+    # c.f. https://github.com/Alexays/Waybar/issues/994
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/Alexays/Waybar/pull/1015.patch";
+      sha256 = "sha256-jQZEM3Yru2yxcXAzapU47DoAv4ZoabrV80dH42I2OFk=";
+    })
+  ];
+
   nativeBuildInputs = [
     meson ninja pkg-config scdoc wrapGAppsHook cmake
   ] ++ lib.optional withMediaPlayer gobject-introspection;
@@ -82,7 +94,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Highly customizable Wayland bar for Sway and Wlroots based compositors";
     license = licenses.mit;
-    maintainers = with maintainers; [ FlorianFranzen minijackson synthetica ];
+    maintainers = with maintainers; [ FlorianFranzen minijackson synthetica lovesegfault ];
     platforms = platforms.unix;
     homepage = "https://github.com/alexays/waybar";
   };
diff --git a/nixpkgs/pkgs/applications/misc/wordnet/default.nix b/nixpkgs/pkgs/applications/misc/wordnet/default.nix
index 32c1f0eaa64a..27694174d703 100644
--- a/nixpkgs/pkgs/applications/misc/wordnet/default.nix
+++ b/nixpkgs/pkgs/applications/misc/wordnet/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "08pgjvd2vvmqk3h641x63nxp7wqimb9r30889mkyfh2agc62sjbc";
   };
 
-  buildInputs = [ tcl tk xlibsWrapper makeWrapper ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ tcl tk xlibsWrapper ]
     ++ lib.optionals stdenv.isDarwin [ Cocoa ];
 
   hardeningDisable = [ "format" ];
diff --git a/nixpkgs/pkgs/applications/misc/worker/default.nix b/nixpkgs/pkgs/applications/misc/worker/default.nix
index 12ac72b6021a..20ed6d55f366 100644
--- a/nixpkgs/pkgs/applications/misc/worker/default.nix
+++ b/nixpkgs/pkgs/applications/misc/worker/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "worker";
-  version = "4.5.0";
+  version = "4.7.0";
 
   src = fetchurl {
     url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz";
-    sha256 = "02xrdg1v784p4gfqjm1mlxqwi40qlbzhp68p5ksj96cjv6av5b5s";
+    sha256 = "sha256-9x/nHd2nUeFSH7a2qH4qlyH4FRH/NfNvTE1LEaMMSwU=";
   };
 
   buildInputs = [ libX11 ];
diff --git a/nixpkgs/pkgs/applications/misc/writefreely/default.nix b/nixpkgs/pkgs/applications/misc/writefreely/default.nix
new file mode 100644
index 000000000000..5f38d405cb82
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/writefreely/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoModule, fetchFromGitHub, go-bindata }:
+
+buildGoModule rec {
+  pname = "writefreely";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "writeas";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-6LpRfDu3xvE1eIRLfZliKnzsrrG5pjjf2ydxn9HQJJU=";
+  };
+
+  vendorSha256 = "sha256-U17AkMJQr/OIMED0i2ThcNVw3+aOvRLbpLNP/wEv6k8=";
+
+  nativeBuildInputs = [ go-bindata ];
+
+  preBuild = ''
+    make assets
+    export buildFlagsArray=(
+      "-ldflags=-s -w -X github.com/writeas/writefreely.softwareVer=${version}"
+      "-tags='sqlite'"
+    )
+  '';
+
+  subPackages = [ "cmd/writefreely" ];
+
+  meta = with lib; {
+    description = "Build a digital writing community";
+    homepage = "https://github.com/writeas/writefreely";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/wtf/default.nix b/nixpkgs/pkgs/applications/misc/wtf/default.nix
index 4a7b7ad63b75..962059600a4c 100644
--- a/nixpkgs/pkgs/applications/misc/wtf/default.nix
+++ b/nixpkgs/pkgs/applications/misc/wtf/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "wtf";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "wtfutil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xzMXbF0M7asZtyo8DmM5yyNoHKy0H6amRDhu6hjHgq4=";
+    sha256 = "sha256-JVHcunpS+2/0d7XaUZ95m9QpVHCG1Tq8LJ9KNURSRy8=";
    };
 
-  vendorSha256 = "sha256-6ij0NQMjDnZJhuqkUR7MdBLAMS5Xa2HKIgQjegKJyvc=";
+  vendorSha256 = "sha256-4uRhbRPfCRYwFlfucXOYhLruj7hkV4G9Sxjh9yQkDEQ=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/misc/xchm/default.nix b/nixpkgs/pkgs/applications/misc/xchm/default.nix
index f3764ce60f3f..a7037522c627 100644
--- a/nixpkgs/pkgs/applications/misc/xchm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xchm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xchm";
-  version = "1.31";
+  version = "1.32";
 
   src = fetchFromGitHub {
     owner = "rzvncj";
     repo = "xCHM";
     rev = version;
-    sha256 = "1mzafbpc1c211byf8bnwl13by7vi8xvxlaykyrajb1bj0ynbmmgp";
+    sha256 = "sha256-Ss8kdfUAMC8v05rdt2SoO6vPyssG5v8gOzdf/v18cdg=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/misc/xfontsel/default.nix b/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
index 10034fbe1b1d..365f6217861b 100644
--- a/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0700lf6hx7dg88wq1yll7zjvf9gbwh06xff20yffkxb289y0pai5";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [libX11 makeWrapper libXaw];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [libX11 libXaw];
 
   # Without this, it gets Xmu as a dependency, but without rpath entry
   NIX_LDFLAGS = "-lXmu";
diff --git a/nixpkgs/pkgs/applications/misc/xygrib/default.nix b/nixpkgs/pkgs/applications/misc/xygrib/default.nix
index 68adc2abbf9d..864ea27ede77 100644
--- a/nixpkgs/pkgs/applications/misc/xygrib/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xygrib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, cmake, bzip2, qtbase, qttools, libnova, proj, libpng, openjpeg } :
+{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, cmake, bzip2, qtbase, qttools, libnova, proj, libpng, openjpeg }:
 
 stdenv.mkDerivation rec {
   version = "1.2.6.1";
@@ -13,26 +13,29 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake qttools wrapQtAppsHook ];
   buildInputs = [ bzip2 qtbase libnova proj openjpeg libpng ];
-  cmakeFlags = [ "-DOPENJPEG_INCLUDE_DIR=${openjpeg.dev}/include/openjpeg-2.3" ]
+  cmakeFlags = [ "-DOPENJPEG_INCLUDE_DIR=${openjpeg.dev}/include/openjpeg-${lib.versions.majorMinor openjpeg.version}" ]
     ++ lib.optionals stdenv.isDarwin [ "-DLIBNOVA_LIBRARY=${libnova}/lib/libnova.dylib" ];
 
-  postInstall = if stdenv.isDarwin then ''
-    mkdir -p "$out/Applications" "$out/XyGrib/XyGrib.app/Contents/Resources"
-    cp "../data/img/xyGrib.icns" "$out/XyGrib/XyGrib.app/Contents/Resources/xyGrib.icns"
-    mv $out/XyGrib/XyGrib.app $out/Applications
-    wrapQtApp "$out/Applications/XyGrib.app/Contents/MacOS/XyGrib"
-  '' else ''
-    wrapQtApp $out/XyGrib/XyGrib
-    mkdir -p $out/bin
-    ln -s $out/XyGrib/XyGrib $out/bin/xygrib
-  '';
+  postInstall =
+    if stdenv.isDarwin then ''
+      mkdir -p "$out/Applications" "$out/XyGrib/XyGrib.app/Contents/Resources"
+      cp "../data/img/xyGrib.icns" "$out/XyGrib/XyGrib.app/Contents/Resources/xyGrib.icns"
+      mv $out/XyGrib/XyGrib.app $out/Applications
+      wrapQtApp "$out/Applications/XyGrib.app/Contents/MacOS/XyGrib"
+    '' else ''
+      wrapQtApp $out/XyGrib/XyGrib
+      mkdir -p $out/bin
+      ln -s $out/XyGrib/XyGrib $out/bin/xygrib
+    '';
 
   meta = with lib; {
     homepage = "https://opengribs.org";
     description = "Weather Forecast Visualization";
-    longDescription = ''XyGrib is a leading opensource weather visualization package.
-                        It interacts with OpenGribs's Grib server providing a choice
-                        of global and large area atmospheric and wave models.'';
+    longDescription = ''
+      XyGrib is a leading opensource weather visualization package.
+      It interacts with OpenGribs's Grib server providing a choice
+      of global and large area atmospheric and wave models.
+    '';
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = with maintainers; [ j03 SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix b/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
index d787705be159..05f6c2b6a65e 100644
--- a/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
+++ b/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
@@ -6,7 +6,7 @@
 , jbig2dec
 , libjpeg
 , mupdf
-, openjpeg_2
+, openjpeg
 , pkg-config
 , zathura_core
 }:
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     jbig2dec
     libjpeg
     mupdf
-    openjpeg_2
+    openjpeg
     zathura_core
   ] ++ lib.optional stdenv.isDarwin gtk-mac-integration;
 
diff --git a/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix b/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix
index 60e3bb9fd535..49f78729a310 100644
--- a/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix
+++ b/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix
@@ -4,8 +4,7 @@ symlinkJoin {
 
   paths = with zathura_core; [ man dev out ] ++ plugins;
 
-
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = let
     fishCompletion = "share/fish/vendor_completions.d/zathura.fish";
diff --git a/nixpkgs/pkgs/applications/misc/zettlr/default.nix b/nixpkgs/pkgs/applications/misc/zettlr/default.nix
index 3d762d9ab2a7..eb8c81dae7e8 100644
--- a/nixpkgs/pkgs/applications/misc/zettlr/default.nix
+++ b/nixpkgs/pkgs/applications/misc/zettlr/default.nix
@@ -1,18 +1,26 @@
-{ appimageTools, lib, fetchurl, gtk3, gsettings-desktop-schemas}:
+{ appimageTools
+, lib
+, fetchurl
+, gtk3
+, gsettings-desktop-schemas
+, texlive
+, pandoc
+}:
 
 # Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
 let
   pname = "zettlr";
-  version = "1.7.5";
+  version = "1.8.7";
   name = "${pname}-${version}";
   src = fetchurl {
     url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
-    sha256 = "040lx01ywdpla34d4abkmh51kchr11s17la6fk6yq77y8zb87xzi";
+    sha256 = "0zbmlk5qk92b3zycs0bmdwgc8fn4a4dv1yvq9q8q2wxz4ammx6c0";
   };
   appimageContents = appimageTools.extractType2 {
     inherit name src;
   };
-in appimageTools.wrapType2 rec {
+in
+appimageTools.wrapType2 rec {
   inherit name src;
 
   profile = ''
@@ -20,11 +28,11 @@ in appimageTools.wrapType2 rec {
   '';
 
   multiPkgs = null; # no 32bit needed
-  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+  extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ texlive pandoc ];
   extraInstallCommands = ''
     mv $out/bin/{${name},${pname}}
-    install -m 444 -D ${appimageContents}/zettlr.desktop $out/share/applications/zettlr.desktop
-    install -m 444 -D ${appimageContents}/zettlr.png $out/share/icons/hicolor/512x512/apps/zettlr.png
+    install -m 444 -D ${appimageContents}/Zettlr.desktop $out/share/applications/zettlr.desktop
+    install -m 444 -D ${appimageContents}/Zettlr.png $out/share/icons/hicolor/512x512/apps/zettlr.png
     substituteInPlace $out/share/applications/zettlr.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
   '';
 
diff --git a/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix b/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
index a1ea1d64c63f..f6006468d85b 100644
--- a/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
@@ -17,7 +17,7 @@
 , glib
 , gtk3
 , icu
-, iproute
+, iproute2
 , krb5
 , lib
 , mesa
@@ -48,6 +48,7 @@
 , python37Packages
 , stdenv
 , systemd
+, xdg-utils
 , zlib
 }:
 with lib;
@@ -92,7 +93,7 @@ let
     systemd
     zlib
   ];
-  rpath = lib.makeLibraryPath deps ;
+  rpath = lib.makeLibraryPath deps;
 in
 stdenv.mkDerivation rec {
   pname = "appgate-sdp";
@@ -133,7 +134,7 @@ stdenv.mkDerivation rec {
         --replace "/bin/sh" "${bash}/bin/sh" \
         --replace "cat" "${coreutils}/bin/cat" \
         --replace "chattr" "${e2fsprogs}/bin/chattr" \
-        --replace "mv" "${coreutils}/bin/mv" \
+        --replace "mv " "${coreutils}/bin/mv " \
         --replace "pkill" "${procps}/bin/pkill"
     done
 
@@ -145,7 +146,7 @@ stdenv.mkDerivation rec {
         --replace "/bin/sh" "${bash}/bin/sh" \
         --replace "/opt/" "$out/opt/" \
         --replace "chattr" "${e2fsprogs}/bin/chattr" \
-        --replace "mv" "${coreutils}/bin/mv"
+        --replace "mv " "${coreutils}/bin/mv "
     done
 
     substituteInPlace $out/lib/systemd/system/appgatedriver.service \
@@ -169,12 +170,13 @@ stdenv.mkDerivation rec {
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "$ORIGIN:$out/opt/appgate/service/:$out/opt/appgate/:${rpath}" $binary
     done
 
-    wrapProgram $out/opt/appgate/appgate-driver --prefix PATH : ${lib.makeBinPath [ iproute networkmanager dnsmasq ]}
+    wrapProgram $out/opt/appgate/appgate-driver --prefix PATH : ${lib.makeBinPath [ iproute2 networkmanager dnsmasq ]}
     wrapProgram $out/opt/appgate/linux/set_dns --set PYTHONPATH $PYTHONPATH
+    wrapProgram $out/bin/appgate --prefix PATH : ${xdg-utils}/bin
   '';
   meta = with lib; {
     description = "Appgate SDP (Software Defined Perimeter) desktop client";
-    homepage = https://www.appgate.com/support/software-defined-perimeter-support;
+    homepage = "https://www.appgate.com/support/software-defined-perimeter-support";
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ymatsiuk ];
diff --git a/nixpkgs/pkgs/applications/networking/bee/bee-clef.nix b/nixpkgs/pkgs/applications/networking/bee/bee-clef.nix
index a94386ea3f11..9e36f8670d46 100644
--- a/nixpkgs/pkgs/applications/networking/bee/bee-clef.nix
+++ b/nixpkgs/pkgs/applications/networking/bee/bee-clef.nix
@@ -1,4 +1,4 @@
-{ version ? "release", stdenv, lib, substituteAll, fetchFromGitHub, go-ethereum }:
+{ version ? "release", stdenv, lib, fetchFromGitHub, go-ethereum }:
 
 stdenv.mkDerivation rec {
   pname = "bee-clef";
diff --git a/nixpkgs/pkgs/applications/networking/bee/bee.nix b/nixpkgs/pkgs/applications/networking/bee/bee.nix
index 5ffff9187500..b0d05d928c05 100644
--- a/nixpkgs/pkgs/applications/networking/bee/bee.nix
+++ b/nixpkgs/pkgs/applications/networking/bee/bee.nix
@@ -1,4 +1,4 @@
-{ version ? "release", stdenv, lib, fetchFromGitHub, buildGoModule, coreutils }:
+{ version ? "release", lib, fetchFromGitHub, buildGoModule, coreutils }:
 
 let
 
@@ -9,16 +9,16 @@ let
       rev = "824636a2c2629c329ab10275cef6a0b7395343ad";
       goVersionString = "g" + builtins.substring 0 7 rev;     # this seems to be some kind of standard of git describe...
       sha256 = "0ly1yqjq29arbak8lchdradf39l5bmxpbfir6ljjc7nyqdxz0sxg";
-      vendorSha256 = "0w1db7xpissdpf8i5bb96z92zbasj5x9kk3kcisxn0dwla6n55n3";
+      vendorSha256 = "sha256-w5ZijaK8Adt1ZHPMmXqRWq0v0jdprRKRu03rePtZLXA=";
     };
     release = rec {
       pname = "bee";
-      version = "0.4.2";
+      version = "0.5.0";
       rev = "refs/tags/v${version}";
-      sha256 = "1jg7aivsgdb9bm87dlmwpf1g6gla8j6v55xmzs8h5xmwqcybbmag";
-      vendorSha256 = "0w1db7xpissdpf8i5bb96z92zbasj5x9kk3kcisxn0dwla6n55n3";
+      sha256 = "sha256-3Oy9RhgMPRFjUs3Dj8XUhAqoxx5BTi32OiK4Y8YEG2Q=";
+      vendorSha256 = "sha256-w5ZijaK8Adt1ZHPMmXqRWq0v0jdprRKRu03rePtZLXA=";
     };
-    "0.4.2" = release;
+    "0.5.0" = release;
     "0.4.1" = rec {
       pname = "bee";
       version = "0.4.1";
diff --git a/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix b/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix
index e951f4c53c0f..04871239eda4 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "amfora";
-  version = "1.7.2";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "makeworld-the-better-one";
     repo = "amfora";
     rev = "v${version}";
-    sha256 = "KAOIx401G/kB/TclhidOnUja1P+mLo/mUwAqGJfVfyg=";
+    sha256 = "sha256-q83fKs27vkrUs3+AoKZ2342llj6u3bvbLsdnT9DnVUs=";
   };
 
-  vendorSha256 = "rOEM7iEkm42g8yJxY7qdTCSbkPMDHqlAsK7/ud8IDLY=";
+  vendorSha256 = "sha256-0blHwZwOcgC4LcmZSJPRvyQzArCsaMGgIw+cesO+qOo=";
 
   postInstall = lib.optionalString (!stdenv.isDarwin) ''
     sed -i "s:amfora:$out/bin/amfora:" amfora.desktop
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/makeworld-the-better-one/amfora";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ deifactor ];
+    changelog = "https://github.com/makeworld-the-better-one/amfora/blob/v${version}/CHANGELOG.md";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix b/nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix
new file mode 100644
index 000000000000..831fabf2deb1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, cmake
+, corrosion
+, extra-cmake-modules
+, kconfig
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kirigami2
+, knotifications
+, kpurpose
+, kwindowsystem
+, qtquickcontrols2
+, qtwebengine
+, rustPlatform
+}:
+
+mkDerivation rec {
+  pname = "angelfish";
+  version = "1.8.0";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "plasma-mobile";
+    repo = "angelfish";
+    rev = "v${version}";
+    sha256 = "0pj2kw7lmxh7diwdcmk24qxqslavhvf23r2i6h549gbllbzk219f";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "0cyrmhlg0kjr14842ckbjdljc2zc28al0y9i8w5l0qzr18krgc0m";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    corrosion
+    extra-cmake-modules
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  cmakeFlags = [
+    "-DRust_CARGO=${rustPlatform.rust.cargo}/bin/cargo"
+  ];
+
+  buildInputs = [
+    kconfig
+    kcoreaddons
+    kdbusaddons
+    ki18n
+    kirigami2
+    knotifications
+    kpurpose
+    kwindowsystem
+    qtquickcontrols2
+    qtwebengine
+  ];
+
+  meta = with lib; {
+    description = "Web browser for Plasma Mobile";
+    homepage = "https://apps.kde.org/en/mobile.angelfish";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
index 98c8a8afae0c..6702fdaf7a96 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, rustPlatform, fetchurl, pkg-config, ncurses, openssl, Security }:
+{ lib, stdenv, rustPlatform, fetchFromSourcehut, pkg-config, ncurses, openssl, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "asuka";
   version = "0.8.1";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz";
-    sha256 = "07i80qmdpwfdgwrk1gzs10wln91v23qjrsk0x134xf5mjnakxc06";
+  src = fetchFromSourcehut {
+    owner = "~julienxx";
+    repo = pname;
+    rev = version;
+    sha256 = "1y8v4qc5dng3v9k0bky1xlf3qi9pk2vdsi29lff4ha5310467f0k";
   };
 
   cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw";
diff --git a/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix b/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix
index c24f91c4e103..5794bce31f05 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchgit, buildGoModule }:
+{ lib, fetchgit, buildGoModule, installShellFiles }:
 
 buildGoModule rec {
   pname = "bombadillo";
@@ -10,8 +10,16 @@ buildGoModule rec {
     sha256 = "02w6h44sxzmk3bkdidl8xla0i9rwwpdqljnvcbydx5kyixycmg0q";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
 
+  outputs = [ "out" "man" ];
+
+  postInstall = ''
+    installManPage bombadillo.1
+  '';
+
   meta = with lib; {
     description = "Non-web client for the terminal, supporting Gopher, Gemini and more";
     homepage = "https://bombadillo.colorfield.space/";
diff --git a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
index 6e772c7931db..f544660913f3 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
@@ -30,6 +30,7 @@
 , libXrandr
 , libXrender
 , libXScrnSaver
+, libxshmfence
 , libXtst
 , mesa
 , nspr
@@ -72,6 +73,7 @@ rpath = lib.makeLibraryPath [
   libXi
   libXrandr
   libXrender
+  libxshmfence
   libXtst
   libuuid
   mesa
@@ -88,11 +90,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.19.88";
+  version = "1.21.77";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "jySedvm9V3O4kri1PgoqC0OsC1gvB0Nwx8leoUZnHK0=";
+    sha256 = "Q7paeGAvdmc4+FP28ASLlJhN1ui7M5fDpxnrh+gbEm4=";
   };
 
   dontConfigure = true;
@@ -158,7 +160,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://brave.com/";
     description = "Privacy-oriented browser for Desktop and Laptop computers";
-    changelog = "https://github.com/brave/brave-browser/blob/v${version}/CHANGELOG.md";
+    changelog = "https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md";
     longDescription = ''
       Brave browser blocks the ads and trackers that slow you down,
       chew up your bandwidth, and invade your privacy. Brave lets you
diff --git a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
index be3d8295f991..259a8780901e 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
@@ -1,5 +1,5 @@
 { lib
-, fetchurl
+, fetchFromSourcehut
 , rustPlatform
 , pkg-config
 , wrapGAppsHook
@@ -15,9 +15,11 @@ rustPlatform.buildRustPackage rec {
   pname = "castor";
   version = "0.8.16";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~julienxx/castor/archive/${version}.tar.gz";
-    sha256 = "1qwsprwazkzcs70h219fhh5jj5s5hm1k120fn3pk4qivii4lyhah";
+  src = fetchFromSourcehut {
+    owner = "~julienxx";
+    repo = pname;
+    rev = version;
+    sha256 = "0rwg1w7srjwa23mkypl8zk6674nhph4xsc6nc01f6g5k959szylr";
   };
 
   cargoSha256 = "0yn2kfiaz6d8wc8rdqli2pwffp5vb1v3zi7520ysrd5b6fc2csf2";
@@ -39,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   postInstall = "make PREFIX=$out copy-data";
 
   # Sometimes tests fail when run in parallel
-  cargoParallelTestThreads = false;
+  dontUseCargoParallelThreads = true;
 
   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";
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
index c4a5508b7537..1fecadc2ec0b 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -89,5 +89,6 @@ mkChromiumDerivation (base: rec {
       then ["aarch64-linux" "x86_64-linux"]
       else [];
     timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
+    broken = elem channel [ "beta" "dev" ];
   };
 })
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
index d93fc5ceb405..8d0a59f29190 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
@@ -8,7 +8,7 @@
 , libusb1, pciutils, nss, re2
 
 , python2Packages, perl, pkg-config
-, nspr, systemd, kerberos
+, nspr, systemd, libkrb5
 , util-linux, alsaLib
 , bison, gperf
 , glib, gtk3, dbus-glib
@@ -17,7 +17,7 @@
 , protobuf, speechd, libXdamage, cups
 , ffmpeg, libxslt, libxml2, at-spi2-core
 , jre8
-, pipewire_0_2
+, pipewire
 , libva
 , libdrm, wayland, mesa, libxkbcommon # Ozone
 
@@ -135,12 +135,12 @@ let
     buildInputs = defaultDependencies ++ [
       nspr nss systemd
       util-linux alsaLib
-      bison gperf kerberos
+      bison gperf libkrb5
       glib gtk3 dbus-glib
       libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL
       pciutils protobuf speechd libXdamage at-spi2-core
       jre
-      pipewire_0_2
+      pipewire
       libva
       libdrm wayland mesa.drivers libxkbcommon
     ] ++ optional gnomeKeyringSupport libgnome-keyring3
@@ -250,13 +250,10 @@ let
       symbol_level = 0;
       fieldtrial_testing_like_official_build = true;
 
-      # Google API keys, see:
-      #   http://www.chromium.org/developers/how-tos/api-keys
-      # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
-      # please get your own set of keys.
+      # Google API key, see: https://www.chromium.org/developers/how-tos/api-keys
+      # Note: The API key is for NixOS/nixpkgs use ONLY.
+      # For your own distribution, please get your own set of keys.
       google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
-      google_default_client_id = "404761575300.apps.googleusercontent.com";
-      google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
     } // optionalAttrs proprietaryCodecs {
       # enable support for the H.264 codec
       proprietary_codecs = true;
@@ -266,6 +263,7 @@ let
       use_pulseaudio = true;
       link_pulseaudio = true;
     } // optionalAttrs (chromiumVersionAtLeast "89") {
+      rtc_pipewire_version = "0.3"; # TODO: Can be removed once ungoogled-chromium is at M90
       # Disable PGO (defaults to 2 since M89) because it fails without additional changes:
       # error: Could not read profile ../../chrome/build/pgo_profiles/chrome-linux-master-1610647094-405a32bcf15e5a84949640f99f84a5b9f61e2f2e.profdata: Unsupported instrumentation profile format version
       chrome_pgo_phase = 0;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
index 79899d822b00..1ad7bc8bfa88 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,8 +1,8 @@
 { newScope, config, stdenv, fetchurl, makeWrapper
-, llvmPackages_11, ed, gnugrep, coreutils, xdg-utils
+, llvmPackages_11, llvmPackages_12, ed, gnugrep, coreutils, xdg-utils
 , glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
 , libva ? null
-, pipewire_0_2
+, pipewire
 , gcc, nspr, nss, runCommand
 , lib
 
@@ -13,7 +13,6 @@
 , gnomeKeyringSupport ? false
 , proprietaryCodecs ? true
 , enableWideVine ? false
-, enableVaapi ? false # Disabled by default due to unofficial support
 , ungoogled ? false # Whether to build chromium or ungoogled-chromium
 , cupsSupport ? true
 , pulseSupport ? config.pulseaudio or stdenv.isLinux
@@ -40,6 +39,8 @@ let
           inherit (upstream-info.deps.gn) url rev sha256;
         };
       });
+    } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "90") {
+      llvmPackages = llvmPackages_12;
     });
 
     browser = callPackage ./browser.nix { inherit channel enableWideVine ungoogled; };
@@ -161,14 +162,13 @@ in stdenv.mkDerivation {
 
   buildCommand = let
     browserBinary = "${chromiumWV}/libexec/chromium/chromium";
-    libPath = lib.makeLibraryPath [ libva pipewire_0_2 ];
+    libPath = lib.makeLibraryPath [ libva pipewire ];
 
   in with lib; ''
     mkdir -p "$out/bin"
 
     eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
-      --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \
-      ${lib.optionalString enableVaapi "--add-flags --enable-accelerated-video-decode"}
+      --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)}
 
     ed -v -s "$out/bin/chromium" << EOF
     2i
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py b/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
new file mode 100755
index 000000000000..1aafc6147fd9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i python3 -p python3Packages.feedparser python3Packages.requests
+
+# This script prints the Git commit message for stable channel updates.
+
+import re
+import textwrap
+
+import feedparser
+import requests
+
+feed = feedparser.parse('https://chromereleases.googleblog.com/feeds/posts/default')
+html_tags = re.compile(r'<[^>]+>')
+
+for entry in feed.entries:
+    if entry.title != 'Stable Channel Update for Desktop':
+        continue
+    url = requests.get(entry.link).url.split('?')[0]
+    content = entry.content[0].value
+    if re.search(r'Linux', content) is None:
+        continue
+    #print(url)  # For debugging purposes
+    version = re.search(r'\d+(\.\d+){3}', content).group(0)
+    print('chromium: TODO -> ' + version)
+    print('\n' + url)
+    if fixes := re.search(r'This update includes .+ security fixes\.', content):
+        fixes = html_tags.sub('', fixes.group(0))
+        zero_days = re.search(r'Google is aware of reports that .+ in the wild\.', content)
+        if zero_days:
+            fixes += " " + zero_days.group(0)
+        print('\n' + '\n'.join(textwrap.wrap(fixes, width=72)))
+    if cve_list := re.findall(r'CVE-[^: ]+', content):
+        cve_string = ' '.join(cve_list)
+        print("\nCVEs:\n" + '\n'.join(textwrap.wrap(cve_string, width=72)))
+    break  # We only care about the most recent stable channel update
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 38d1d535076e..94c45120cc6a 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,62 +1,62 @@
 {
   "stable": {
-    "version": "88.0.4324.150",
-    "sha256": "1hrqrggg4g1hjmaajbpydwsij2mfkfj5ccs1lj76nv4qj91yj4mf",
-    "sha256bin64": "0xyhvhppxk95clk6vycg2yca1yyzpi13rs3lhs4j9a482api6ks0",
+    "version": "89.0.4389.114",
+    "sha256": "007df9p78bbmk3iyfi8qn57mmn68qqrdhx6z8n2hl8ksd7lspw7j",
+    "sha256bin64": "06wblyvyr93032fbzwm6qpzz4jjm6adziq4i4n6kmfdix2ajif8a",
     "deps": {
       "gn": {
-        "version": "2020-11-05",
+        "version": "2021-01-07",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "53d92014bf94c3893886470a1c7c1289f8818db0",
-        "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
+        "rev": "595e3be7c8381d4eeefce62a63ec12bae9ce5140",
+        "sha256": "08y7cjlgjdbzja5ij31wxc9i191845m01v1hc7y176svk9y0hj1d"
       }
     },
     "chromedriver": {
-      "version": "88.0.4324.96",
-      "sha256_linux": "0hhy3c50hlnic6kz19565s8wv2yn7k45hxnkxbvb46zhcc5s2z41",
-      "sha256_darwin": "11mzcmp6dr8wzyv7v2jic7l44lr77phi4y3z1ghszhfdz5dil5xp"
+      "version": "89.0.4389.23",
+      "sha256_linux": "169inx1xl7750mdd1g7yji72m33kvpk7h1dy4hyj0qignrifdm0r",
+      "sha256_darwin": "1a84nn4rnd215h4sjghmw03mdr49wyab8j4vlnv3xp516yn07gr3"
     }
   },
   "beta": {
-    "version": "89.0.4389.47",
-    "sha256": "022fq3mbd3j9a7lf02936ks0yvf73bwz1ws6m6zmnn9v8waardj2",
-    "sha256bin64": "09gjbg8678xfh22r3gzjvrkhgda77pr8an4j5ka5672jvhj4hbq9",
+    "version": "90.0.4430.61",
+    "sha256": "01vssy3q64pv9rw4cdxv5rdg7yrxmhyc03a5r75fhxc95fj66iac",
+    "sha256bin64": "07l8dzyv0hav1gls3xw91q9ay2l8xxmsf7yagg940cya9ncl0lhi",
     "deps": {
       "gn": {
-        "version": "2021-01-07",
+        "version": "2021-02-09",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "595e3be7c8381d4eeefce62a63ec12bae9ce5140",
-        "sha256": "08y7cjlgjdbzja5ij31wxc9i191845m01v1hc7y176svk9y0hj1d"
+        "rev": "dfcbc6fed0a8352696f92d67ccad54048ad182b3",
+        "sha256": "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"
       }
     }
   },
   "dev": {
-    "version": "90.0.4412.3",
-    "sha256": "1yjpfircdl38nrjh3an469g7q8178jyvawkfpnzc5aqsgkpkl442",
-    "sha256bin64": "1asdjicb4l4l2ak3fkxcwdx1avpc1m8wvyhxmj1k3bqa4qmvz3hz",
+    "version": "91.0.4464.5",
+    "sha256": "1djwlb74cgfc5ns7w2m10qcd2d2fz0i90k5szcfsm899c7x3zgyf",
+    "sha256bin64": "0kqr5mlbq23ahmyg67lh15j5sqa29wi301s8rvfgh0gxf10vgc2l",
     "deps": {
       "gn": {
-        "version": "2021-01-25",
+        "version": "2021-03-30",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "55ad154c961d8326315b1c8147f4e504cd95e9e6",
-        "sha256": "0x5i1axkg44z412357sdb6kgs1h9ykzy8p5c7s40bybs4hg33lkc"
+        "rev": "5667cc61018864b17542e0baff8b790f245583b0",
+        "sha256": "0mr7jqk1r46ngrx4hrg8gxnzqxfxc1c9a966gpsjlgc00k390m5s"
       }
     }
   },
   "ungoogled-chromium": {
-    "version": "88.0.4324.150",
-    "sha256": "1hrqrggg4g1hjmaajbpydwsij2mfkfj5ccs1lj76nv4qj91yj4mf",
-    "sha256bin64": "0xyhvhppxk95clk6vycg2yca1yyzpi13rs3lhs4j9a482api6ks0",
+    "version": "89.0.4389.114",
+    "sha256": "007df9p78bbmk3iyfi8qn57mmn68qqrdhx6z8n2hl8ksd7lspw7j",
+    "sha256bin64": "06wblyvyr93032fbzwm6qpzz4jjm6adziq4i4n6kmfdix2ajif8a",
     "deps": {
       "gn": {
-        "version": "2020-11-05",
+        "version": "2021-01-07",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "53d92014bf94c3893886470a1c7c1289f8818db0",
-        "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
+        "rev": "595e3be7c8381d4eeefce62a63ec12bae9ce5140",
+        "sha256": "08y7cjlgjdbzja5ij31wxc9i191845m01v1hc7y176svk9y0hj1d"
       },
       "ungoogled-patches": {
-        "rev": "88.0.4324.150-1",
-        "sha256": "0hzap19pbnfcskpzbqq7dqrankmlrq9q7m1xrf7aygqiir0ksp4y"
+        "rev": "89.0.4389.114-1",
+        "sha256": "0cr2i51gxhgl55c8f9w0ra3m5q2dk03sf7p2qn4bqq1l1l72hw6s"
       }
     }
   }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
index 12adbc0a9b79..9a7551a6fff4 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, xlibsWrapper, bzip2, zlib
-, brotli, zstd, lzma, openssl, autoreconfHook, gettext, pkg-config, libev
+, brotli, zstd, xz, openssl, autoreconfHook, gettext, pkg-config, libev
 , gpm, libidn, tre, expat
 , # Incompatible licenses, LGPLv3 - GPLv2
   enableGuile        ? false,                                         guile ? null
@@ -13,17 +13,17 @@ assert enablePython -> python != null;
 
 stdenv.mkDerivation rec {
   pname = "elinks";
-  version = "0.13.5";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "rkd77";
     repo = "felinks";
     rev = "v${version}";
-    sha256 = "067l9m47j40039q8mvvnxd1amwrac3x6vv0c0svimfpvj4ammgkg";
+    sha256 = "sha256-LxJJ0yBlw9hJ/agyL9dbVe4STKdXE8rtk1mMFqe1fFI=";
   };
 
   buildInputs = [
-    ncurses xlibsWrapper bzip2 zlib brotli zstd lzma
+    ncurses xlibsWrapper bzip2 zlib brotli zstd xz
     openssl libidn tre expat libev
   ]
     ++ lib.optional stdenv.isLinux gpm
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 6b8a3b1c3381..93b89e9031e0 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -13,7 +13,7 @@
 , glibc
 , gtk2
 , gtk3
-, kerberos
+, libkrb5
 , libX11
 , libXScrnSaver
 , libxcb
@@ -33,6 +33,7 @@
 , nspr
 , nss
 , pango
+, pciutils
 , libheimdal
 , libpulseaudio
 , systemd
@@ -92,7 +93,6 @@ stdenv.mkDerivation {
   libPath = lib.makeLibraryPath
     [ stdenv.cc.cc
       alsaLib
-      (lib.getDev alsaLib)
       atk
       cairo
       curl
@@ -106,7 +106,7 @@ stdenv.mkDerivation {
       glibc
       gtk2
       gtk3
-      kerberos
+      libkrb5
       mesa
       libX11
       libXScrnSaver
@@ -126,9 +126,9 @@ stdenv.mkDerivation {
       nspr
       nss
       pango
+      pciutils
       libheimdal
       libpulseaudio
-      (lib.getDev libpulseaudio)
       systemd
       ffmpeg
     ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [
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 4d72f2106198..0971dd3b63fc 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,965 +1,975 @@
 {
-  version = "85.0.2";
+  version = "87.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ach/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ach/firefox-87.0.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "24a938fb96347b938db028452e5a1b9f6c63c43f1e9b7ff0bf2a43f92d1df45c";
+      sha256 = "656c92c9a588aed2059f4f68968735f884db6ee94b0619d983bd4affd2100174";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/af/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/af/firefox-87.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "5799e2c1c5408da29f9922cd1a694a0ef7d4250b504dd827d5cdeeb41bc7de6e";
+      sha256 = "0f8fe2b470177df3525fbf533934c66a5e4abdaa3dfb7848962ac148b224592d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/an/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/an/firefox-87.0.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "04ee06350b7cc1f1ab808e8cff3d02060effbb9fa656c2f687b7cbe9d18b9c2b";
+      sha256 = "a96ae593965364871d35ba0fd6dcd1029254110ee59f4a7abe27cf6d273c7be6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ar/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ar/firefox-87.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "a92dbd6c4253a8ded0cf4681a6c165e6809e495d1aba84d2158b80d571c1c660";
+      sha256 = "58eaefaba44b4b0592442e709604b597c74fd81390f8fcc410a8e605956a0bdd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ast/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ast/firefox-87.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "eeee2c9a00ab94630f331d7f1e781ba5085415d816d403e14f356717cf5fa967";
+      sha256 = "ca33473b77b8a57c305fe89cdd66b95810441aa54295ed687736a24c9160e45f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/az/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/az/firefox-87.0.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "107fab10c5ac5947676509fce31dec23e70b4cc2f1467e914157fab0555dbada";
+      sha256 = "6965f0b68279228a575dfb503eabae8d75f32e0fa8de119f4d48f0e9ec36d61c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/be/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/be/firefox-87.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "a04273533574232e0b2c370e2d48ab2206b53b45743543fe0efeea8bd51988cc";
+      sha256 = "a19d6d94cc15d269dbddccae06b4c92a3436e57d45dbebe8c6a2ff23df66fd28";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/bg/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/bg/firefox-87.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "0b18c8862ce9c26cb63919c3bd3aa911b6179eebcbc9a38001953b49dd09ad36";
+      sha256 = "885a44cf0acedc5ffbfcc73cce41f6eb2dcab13d070eeb156e64277b346a4fb1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/bn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/bn/firefox-87.0.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "8aa13bccd6fcd9f9c91a18dae807394dc46ea32103608c829d4dd073861b95f3";
+      sha256 = "09773257768f061819fa92ec229c1f94b217c04e78781d8e59a8dc1225f92be7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/br/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/br/firefox-87.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "121f9474e56deb5f2a606aa153c8f3c6b857f0966c9843257d22a8be01b609a6";
+      sha256 = "23ec95e130593c51384a64165c33f02c4c5af753313fbaf8fa0f94bca1184506";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/bs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/bs/firefox-87.0.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "c4781d938cd86988edc31674a46acb0120209b101d9b563c20ec6a213d161a03";
+      sha256 = "30455df45e86894fd5a75ef6b9989b64f49da8ac8bee9656ea2724cfca59555c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ca-valencia/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ca-valencia/firefox-87.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "f0b0e35ae0ba98d0585c45a660c85345b71f834e61875f923713f0c05a78509d";
+      sha256 = "8ca8a4ee40ac57140560c3aeb664d60be5ecd8842f328544924a97d910c02303";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ca/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ca/firefox-87.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "1208d84a85694ce1327c9a8ab6cdb6aeb45b990704bbb9fef9b1edd664597fbb";
+      sha256 = "3cc1cd1c7657a704d3c6c1a42934eac75439c05af5617d2d24991d62d412237e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/cak/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/cak/firefox-87.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "ddbc3a5d3283994b7408fd8970023b71178c83db12ba8be54553395791bc9ace";
+      sha256 = "160c598f55c012fc92c0882f7062a82b8057177398edfcdeb41c60aa83570f1f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/cs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/cs/firefox-87.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "c02faaf56a820c45bb38119c03becc53cd2ae25e93bed3ad93cc88f091b00a2d";
+      sha256 = "1209d5401b55441126bcc64faa9d7692c92d2c009a40587923c048bec0cf2508";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/cy/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/cy/firefox-87.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "1d206ea516202af87511d13cbd8482b9dcbeca2447ac8b684937668afac68439";
+      sha256 = "d177530e3e31900a38e9127b5d60bcc3b937c76e8b12b13c289a29e2afd06c40";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/da/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/da/firefox-87.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "68976d8cd0ce910c6b8155a68a955f4dfd182fe7625ea3386f083fff27f216a9";
+      sha256 = "2e623b11e18d38dee391863115af75fae4119894a89606aa6f4194d04a1773c2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/de/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/de/firefox-87.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "6510c8105420027f1632da15060d332f9ec93353c03111a592477bf45dae5925";
+      sha256 = "a29837d6c062ded4aed732cee06fe23773a57d62aecbca1e1a56c9d7a37423df";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/dsb/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/dsb/firefox-87.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "736a478e15f11126ad5dbdca66cd8938d72602041ff0c1f5f78101d4f62b1aa3";
+      sha256 = "cf584f97b136444861845bf1db0fe9d65d809f4a167a0f8bed780f94048fbb12";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/el/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/el/firefox-87.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "d0c2f1c156d239c2c410d15216a8d331cde8cdb7d54bdf40aa6519f582b93bbf";
+      sha256 = "73d03707575ef3270f7419d031fc85babdc498b1576d316abac273cd88dde30b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/en-CA/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/en-CA/firefox-87.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "0b68ac180a828a94743349cb53f64224d0013de610a5c9cffed9a9242caadab1";
+      sha256 = "1d11c8a1f23df4e88668beecee244f2d0743b006e46d96e4a6a35bffc341569d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/en-GB/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/en-GB/firefox-87.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "978397ce347115b87ac24c174ac4363bd345ef8471d25bfc4a639722ed7098e1";
+      sha256 = "d885931198cf3958fca683ee4c301f25610f6b4d5777068fd812bd53048aecb6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/en-US/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/en-US/firefox-87.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "98763f4b1526811967d71e1bbb9552a9a3fd877321ecb497083b9e313b528c31";
+      sha256 = "3c9207bee0a998634c4fd12293acfae207d16508749ad405bf1e8717d06acf02";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/eo/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/eo/firefox-87.0.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "a44c9b60e0e8342dcff31ab0bc2776680b9a94bea51ef237fc4b1f013fea6ab6";
+      sha256 = "3d57787fc840f80271f4d26810f347929a96479ca58bd416bf1f94e3499a07b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/es-AR/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/es-AR/firefox-87.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "3229e32a2db2f5a7638a734c538fbaf1b83f9dd203bb67008460783239da04c8";
+      sha256 = "294c83cce5bbead7c263e950ed8bb2787d4735f4086521726400ef97c5d26b35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/es-CL/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/es-CL/firefox-87.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "574c90358de584b2bf4ec874a8f5a22fd777ceeca92c2894fe978a793faea7c2";
+      sha256 = "4e57c8a517084eee27edb6ad706a250ebb323419407f1ef9c9f9ae4f0dc8d8b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/es-ES/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/es-ES/firefox-87.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "1e92995900cfdbb94d673d5efb02e84321dc8917edab1ce6c86b98f860f483a8";
+      sha256 = "9cdea632b1c1365d3c6ec08e9acd154819d081f025473b027da8d5e873da66bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/es-MX/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/es-MX/firefox-87.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "56de604e9b32c7552825d87c0c2802bff66d72faad5d173fc71388118a47c046";
+      sha256 = "3698541ca4e9eb7f5c422082cbacd407870ffb170c9f9d0fe5f0c55dfe2b5449";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/et/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/et/firefox-87.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "53297a8e1f8c5d3ac05d44c3aac1f886d7065cec6666548c3a571ec06702eb63";
+      sha256 = "86a1986a7c63f63c559d36d3d42e95def0eb8a89075879c3253156e80ed161c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/eu/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/eu/firefox-87.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "3b392831ee487279ffbc2156421243990a2abe94cdcf233c375f7949c28571a1";
+      sha256 = "5db12874991a1583ec09c934e18c93225b9831acc857d8c1b633f48c65e7a415";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/fa/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/fa/firefox-87.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "bdaf06e327bc17ff05d82e27d85d4ff747b8af58e8a0b95599d4af0068c6948c";
+      sha256 = "5066d7b66933924442d683aaa19aec9385b66eaf49a55b155653ffba57c287d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ff/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ff/firefox-87.0.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "8e029e2f755f107bbdaf4833332f94b062284529230ef148ec404d9954da5b83";
+      sha256 = "35c8271fa506fcb43c20ccafb928b109125f3a17f80870a82365bc36f787b5ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/fi/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/fi/firefox-87.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "b1cf30bbd4046c3f6b200b876bfa022b34771d1aebb48a56b35817d5d0f46d18";
+      sha256 = "a3a0dc8cee1db20eb795aea5e94efafc96fc624e50159d8be7f449a093ffd291";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/fr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/fr/firefox-87.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "95f5265e9e7be13a8d50ff4e0c45f1247531fc78076081cf7045ffcf5e366846";
+      sha256 = "d9c1cdbbe2bacb06608f60745ab213cf80b27051c6b58f0ed7ef834b839da7fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/fy-NL/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/fy-NL/firefox-87.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "f22756db0256f2d7b3ccb15c15f1006834e8a53251ba8a315f0d72365d7140e3";
+      sha256 = "6f15a66cee03b494edf6a68641e0d5f886fe8528e23b9e129b11702cb9a4442e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ga-IE/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ga-IE/firefox-87.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "7c67dc57553eca0c59293cff6f3097e56719d3c6b67d6599ea56ef799992e566";
+      sha256 = "31fcb9d815afc52db6328b076d89eab85a89d4553748ee7741912d23c420fea2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/gd/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/gd/firefox-87.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "a1a4ceefc1f83454280e70316fcc9d0c2bb635a77596bafeed2f06d3cb133340";
+      sha256 = "c9d0b868022bf5c0335ed488df0d6006541cdb7609f8854aedf22b931017ed31";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/gl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/gl/firefox-87.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "02afd3809826d41a75f6554cc7f49eb65725df2721f16484907eb0ad3cb172c4";
+      sha256 = "b546355345950e17202c4f2676731b0fe126d4d551131648f10e8c61cb8a2f26";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/gn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/gn/firefox-87.0.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "dc4de709435a0015d3c4fcb615cf8ed96814b2f6038c37ee5045e632891f8719";
+      sha256 = "51c403ad0460db69e2ed6213410d9fe2cb6ae9a5f100bd4f5ac7d36cc68b65c3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/gu-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/gu-IN/firefox-87.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "f9a66be242916abf1576397204c8fd0c88574fcc68fb06480d82a6d7008f1f67";
+      sha256 = "dad776c9a4809c574967bb18d1ef96ab8eb5e95df713fe88fce044b755951550";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/he/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/he/firefox-87.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "8739ec72ada89c64be8ebf692734a80f7a825c7201b4f7d43c3b0b8e18f8edba";
+      sha256 = "972135a17b091e8338762c4f3e9c60d826dd8b4f4e65c22d6cb07daabac95558";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/hi-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/hi-IN/firefox-87.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "db9f6f97951291d86f8406d919377ef1121195665734edcb4ae731ebb15efa12";
+      sha256 = "5eec4571d25c0c62a0d773af25b2be93d158e06302a6e5d47a0fa60f0819941a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/hr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/hr/firefox-87.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "b8fe4cf3e7c9d30c377504d58ae11c612cf74f0a02c3b25d4efe3ed6ee7365f6";
+      sha256 = "3183694fccb7a9560911d3d0813bf22ef79e1fdc8e72a5547258ff28b5ddbb6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/hsb/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/hsb/firefox-87.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "73207d15a6146e4bfe5b2324421993382a41f8648c0fe5e4f2ef72ed5182fc74";
+      sha256 = "82c02b623b0833468950a174a6c46bbf6c657252f0f876abb48e5b839a51f0c8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/hu/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/hu/firefox-87.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "d57ac494fa650d1f0d46f9109952c1493ed476dcf26fbe843c3e9c5a722eac3a";
+      sha256 = "0db68343a32b3a69b323b8cf7eade47a453499e092eae5d57414739e2ea92619";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/hy-AM/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/hy-AM/firefox-87.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "58ea459134ccddc63156161300f075cb747125a16aeeb8f616662783b2a8be73";
+      sha256 = "65b9c3902feac56c5563fe24a8c1d0f3510fca9b90062f88e4072a0ef6258c06";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ia/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ia/firefox-87.0.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "d0e4ab532d39eb094de62ae41fb40055e8dc20f2b69856f0ff28633f3c2a5139";
+      sha256 = "50023eb339a5886cabdf7b71a65ab130fd0a5609cf18ceec9266100ce96e7c92";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/id/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/id/firefox-87.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "f60c707585e197263fd64a85a120cd4c52da17194d54a2fc538bdface62b1c08";
+      sha256 = "9a7279bcaeed8c6f6c44c4af728eddada5a96fd3c0204d10cd647d09721ec4e5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/is/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/is/firefox-87.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "f0d2a9052ebefee0f7774e47fe13de41ba8c2b7cba5ca784d6d218fbb2549a75";
+      sha256 = "697d1ac2cbc467d8526b8cf6a525b21a22fecb78f421936901ed3ecf91911146";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/it/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/it/firefox-87.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "4946d59a1b5fe36ddeacb371efe2072f66623d82eb4f26cf0fe6b96e8dd54203";
+      sha256 = "4f51f5c632f21a0b589e2c358972f69107ccde6a32c5619e5b9273cd54198e98";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ja/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ja/firefox-87.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "2a9f7705b5ef1258f925a6e48ccd99243003cb429bef9bba4ad56dfbd294ce11";
+      sha256 = "2ce4af36d057c26f8b9f95b3c578dc738ea9ee80fbbb20f0c7257312499fb3bc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ka/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ka/firefox-87.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "443b974d1631602734402a2a6dedaec8a7cc017e1abbb768ceb5e767978c36af";
+      sha256 = "9d4d54895d3237c7431c367a5c9fc07b99b11c91a1645e89fa7668111bb70ffd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/kab/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/kab/firefox-87.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "8f8283696206450cf21a4c88384ca915030a1dd7df9e93911b620dc9375e5db6";
+      sha256 = "4e67ce270e0a56f5acbe61a22368bc011ccf420201716bd36f5aec42a5d477bc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/kk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/kk/firefox-87.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "c9d78fdd7ac9d79dbb713a7130baceb4f19aca6bf8e7218950190ff95d921b6d";
+      sha256 = "c1f1feaad98c108f73d575c2b59c3ff2fa26f9fb97a8d30182aeb4bd587063b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/km/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/km/firefox-87.0.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "1fb2612268f53fe300955daadae60be238070dae35555707027a8a62ce4ec3f7";
+      sha256 = "f99973849aa9e9ca4f7534cc6eb3bb7ccd75cf95f600a4a124dd2750da16d2a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/kn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/kn/firefox-87.0.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "86208426d917883c2eb6ea9248feead33d4115093bddf5f1c690ed176adb9c84";
+      sha256 = "4625c75234dfdd35aaa383ebcef3ba9e093c73aec2ca524a0f7b5b28a2438de1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ko/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ko/firefox-87.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "b8057874e199124ebf283ab67e184dd2fed016b1bcb31a2f220e2e5d38d4f438";
+      sha256 = "d65454c1b36d26d7df7a1eb510f73e7fea47431c6e51dc2119ae6932e11f351e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/lij/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/lij/firefox-87.0.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "2e5bdea7a0f68efb0e6bdbe64a1df287644e14ce5fbb896040f3315c6412fc43";
+      sha256 = "ef7668799697e1d9c35661f1f6c403307a6deb6b2f265a2906d8baa699c224a4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/lt/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/lt/firefox-87.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "e1f79eba23036cdee87b9a5a2f48284bc006a191644d26e50a7ec61cb26d26c4";
+      sha256 = "bd34fdcad69d3e0c79e226899d0df49e5244a4072446fd1cb7a290261f8473c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/lv/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/lv/firefox-87.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "4d8f26a3b6211799a87dbbab6692f4a00c81b1d70c6af990a684b1b65c255482";
+      sha256 = "34c379fa36cb7d1de95c99bfae8476f57a40d6d041941ad1884a8314f8511499";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/mk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/mk/firefox-87.0.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "3e5741eee9b27aa91827ef19e9b2b0200719120d07dccd37f5752ba1b746e29b";
+      sha256 = "4a9020fd5864d35efda8ee36454d72392ef3d2e5c50f0bcd6e6f3326dc8fb984";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/mr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/mr/firefox-87.0.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "247a11da64a28084d68d450cfa92ba66868891796d60a09ff9bf28d2af347a05";
+      sha256 = "6195db5fcfb95148c243d7fa4675fac0467f1093191bbb02dba714723a4f833a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ms/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ms/firefox-87.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "79e1823ce9d454d70660464776f1d492f67c3489f7e9ed20fef5a7331def0cf2";
+      sha256 = "95410958dbe73ead9ef89fcd81bdc3bd0bc6079cb8997962fd43fa07c6b546c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/my/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/my/firefox-87.0.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "ebe50de263127be29aecc611c2e4b5c60068245fe64ee0a72beb2680253f85dc";
+      sha256 = "c43a08c4410d7d5d48c29ebbb96765d45dcd20335125bc664f5593d56440e8f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/nb-NO/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/nb-NO/firefox-87.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "7e5f1266acf220fa8db165c3cc3ed2bf287ca809e3dce9b74e6284a8a3bd9e63";
+      sha256 = "7f39e801ca6ce05bf6398b914acff4a3cd9016503a4401f9b51f92bd4b2c6737";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ne-NP/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ne-NP/firefox-87.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "0b7fecf7497937709d83e002951ec4425b080fe4a6f6cc967a3eab65db93a212";
+      sha256 = "b3ccaa031229d8e369f1acedb49bd159d282cd771205beb2876a8c7d4fc90413";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/nl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/nl/firefox-87.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "7125adcabd21b4edb2828b295713b3a35cd174abea748d5d4f8456c3e18e5707";
+      sha256 = "3647e87528883cd7bc3310000f77237dac6dc57b62b664c434b16b9bf736930c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/nn-NO/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/nn-NO/firefox-87.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "560d195e6b472228403b2fd5651c7a61e84491e788faafb77af511e3c74e7fb5";
+      sha256 = "3a94b93c5bd68f82ff9d310295f6397b902390061d21c0560a0906415e7150f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/oc/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/oc/firefox-87.0.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "ae15b401c284e5e68819e68b0e9e76ca909ff167f2d15b3d77b546708a7e7369";
+      sha256 = "a6fcecb568052565e051879487b34fce54b0e3ca3cc761dd27749d949153523b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/pa-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/pa-IN/firefox-87.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "32d9ef570e718ef79b004fcbb9a7e212d06e8171c0056f90709423495c3c7bdd";
+      sha256 = "14b10789c0d94e60c85be5594a0a11654a31e60518c78c04e4bea2b5e64843bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/pl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/pl/firefox-87.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "2201fb7b8edb8ce2b3446a4accf3f0ace2b1a18a7690a20b6e64ecb5ee1a61e2";
+      sha256 = "44aadea74c71dc86d7a5e0cbc04acbe2e26e46add5daaf0f8b31c4a17b439346";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/pt-BR/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/pt-BR/firefox-87.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "f80d4d45078bb3884d8302913ac738f33cd984709e95e279d341284b9c29749c";
+      sha256 = "057eb47c7f45a1c0005a508bb36ee04b3edfce0e23e175fa311c9f1cc49b7e03";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/pt-PT/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/pt-PT/firefox-87.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "aba0a4166f0b815e1bc96c4faca818e82adc4b4d1bb8d26cd1f086de681eb56b";
+      sha256 = "dd33f93ef7acd1e183902bd85b292b7073beb9fca3b46279f0405bcd06016771";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/rm/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/rm/firefox-87.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "450640a39b0773a255c97d884d51f7dd0de04da523e28dcfb9680e750b68e965";
+      sha256 = "dd7649d8de678648f54a6dab7a66246abb6b514ccb5044eebff5f6689bae99d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ro/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ro/firefox-87.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "eb20d1a28f510ca98baf24c10feb186d21900690d9f0c8be5c180b72c9d3408d";
+      sha256 = "bcbc82632f8a6802285f23bf0238738a5abe5e77d70596261cf7fbe6649c9560";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ru/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ru/firefox-87.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "7b0c8c5b5cdbb66b36366289f7b65263abb19c174ac89cbb2970a5742eec2d66";
+      sha256 = "bedcd965e2a460bbe2aef0fad6bfe524044ad29225d26009d5311b8796bcb64f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/si/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/si/firefox-87.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "1f2e5c35d9766cb46c9c5ce5ff0f6c95ca12d0c14d12cc29d098562b8f35e9b1";
+      sha256 = "bb93e1dc7621094f32e385632844169a8dc51369be8c5ca459dc17708e1d1ed8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/sk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/sk/firefox-87.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "528d3270d9bd722545fb57ab09059e0f43c0f605e479c0869cbe0757d1f38d8e";
+      sha256 = "d7dfbfcded930a7d8aa03e482c66004202824256255cf08aee5a84a41d825285";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/sl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/sl/firefox-87.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "d4948a03a97424c7b499e339a509b2ebba9b716c84e4713b140576bd787178ca";
+      sha256 = "3ab06c56331850805e8e925deefb3cd0d21913fe88e04d6cd16ad9c59041d444";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/son/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/son/firefox-87.0.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "34a841faec9720c9ec32d6e00ca775d266f47ca3b660876cbd4a1d7c9d7b87af";
+      sha256 = "6b93d5b1eeaf64ed591a285b1384d63dec16f388609c845e12f4565ed2bb32af";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/sq/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/sq/firefox-87.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "aa5688e676bbb8ae87f089d78d4d6cb2a9c3393bf252a7c277ab6a8c97a80951";
+      sha256 = "834a04d54a73886c58d0360c675b137b44a69b34003e5d77ba8516397e976874";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/sr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/sr/firefox-87.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "882263a340ef6b11b35e91262620218078c87b193f3d0ca8eb3a9365dfb98d60";
+      sha256 = "d629d7004fd5c3298e61ec154c7983b8b7bcc4ee8552ebbd53df81eec85e5cb0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/sv-SE/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/sv-SE/firefox-87.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "5b8baf5ee22e5da51040afb4cbdb4a6f165aecb117d181561c97903a0e63b74d";
+      sha256 = "c3d19f42894dac47f78684ea1a9bc9d7a6fbfd51b4186bcb06679a6666a280e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ta/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/szl/firefox-87.0.tar.bz2";
+      locale = "szl";
+      arch = "linux-x86_64";
+      sha256 = "3572e4ef3dc20960e60f342e0dcbb4ca374c9184cf84c40d644c3677b8dbf4b8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ta/firefox-87.0.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "14a00497f7a4f27680e95126b4584a13d3376b8d4f39fe0a0de9a7356bd8dca2";
+      sha256 = "b2f40c2f906fa1cdc67ba12faaab62468e71b9c9ec1c28790db56a4728e5f897";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/te/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/te/firefox-87.0.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "0de38fdd91056121d68734c76b799534921e8adf37566465a72b4fce9d5af693";
+      sha256 = "81f135e5b9e1c90cb22baee13c5ebd5d2a954f3d3a31be74489eb9bbf4dda7ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/th/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/th/firefox-87.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "80aff43b79ab4343d6b9bb2a5eebada3ef376313fe47cb2d1d7ad51f2f2a57ad";
+      sha256 = "dac4e7326e9a2b0c6eec8361ebcf23afc95087f5fabb964c7802856bd8de02cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/tl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/tl/firefox-87.0.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "acdcbb66a68421030634bf1ea1c265ff38e84dbe010aa41058da64ce966d1e57";
+      sha256 = "9be7f3be1ebdfc19c8da8a70b1eef8108c6508dc6c37b39824ef11756f62768c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/tr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/tr/firefox-87.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "a3365e32fb78743ae45f89ae1740a7c51cd11e927454cc836bac4e9f62cd9abe";
+      sha256 = "d7be3f1cab9759042cc30002063764dc66a9f622df71291daf93faa204090b02";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/trs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/trs/firefox-87.0.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "a9da73cdade15ce508678c8347c6bf03c2d93578cfd095e0c586682efba7f2fd";
+      sha256 = "31b5dc1f40614975a8e3fa05caa0dd8dcab6b15dd0ff1ac4626d9c19b3e763ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/uk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/uk/firefox-87.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "05ebea023813ea0755e105f6f1451ee0d85bba5e52660230f25487bb9d997bd0";
+      sha256 = "a53842d484e2a632931a72b16b3c8e30c902dc1e46c3cf2a7711bea1fd0911b2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ur/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ur/firefox-87.0.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "ee4cda80858fc6ab33996a546be8de565a5d4d969ce26d0d1aa70ba7a923e496";
+      sha256 = "1353882717c9ae8e35523ab403870fb08f06ddec2df0730637195b1ee112e746";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/uz/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/uz/firefox-87.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "7be525a02c9bbd4beee8678eb8488f50337aaf16883ebd41f5b2f67586b4e57d";
+      sha256 = "43feb49aefcd292f61faadda2771251017c6104038ab1474d43f5cae1e8ee3ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/vi/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/vi/firefox-87.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "cc6a9d73810294f3261aaf26d4678c4a49b88375f48321384443f027a5a0b5ba";
+      sha256 = "d74a8de627e877e9c28cd19832605e039398dcea312a4784099151972d380516";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/xh/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/xh/firefox-87.0.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "5eee0a8b232448992ab37546d698d4f212df53c562f29261023e64cf5762138c";
+      sha256 = "3251086b6f58c311906c49a6b499db17eaa3122a8ffcafb6f303db0489530560";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/zh-CN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/zh-CN/firefox-87.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "94ac5a87b53fc8aa6769a4f6faf56d0089965514d8e811ca94ce2cd996e536e2";
+      sha256 = "4d3471f60685d251b10dd1dc06610bb3ebf9d7a4e03616a6f6d988278868dc05";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/zh-TW/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/zh-TW/firefox-87.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "025c04100a427e231db031aa43694a51191ded2c31f22913bcd694c734bd516d";
+      sha256 = "8fcfa5987a0cfa37d5408c88701378e970960d21d181342ea2a3d6c43f4e4cc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ach/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ach/firefox-87.0.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "9f770cc6655b31ee907f949e0ba2f197d0d6fb3ae33ec1fcab311ffb7b109fb2";
+      sha256 = "42ba93ba360aac202bd0b653a982dea3c1ea0d5cd6c530deef47c29c189c197f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/af/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/af/firefox-87.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "7ecd58201a5f3eb6fce474bdcbb0f672c8f492f30de3ec4f8f3cc48c2c967313";
+      sha256 = "9aef316b230194ec02ebb1e7780e61d85b1a4cd398d56ec0c5238bfb9af8278d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/an/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/an/firefox-87.0.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "362d8bf290f67ea40c93fa058813c073a51911940b916595c0a8f1599ef46713";
+      sha256 = "a645abc8fafb548a495efdf9e88ce96af06d0fa4703ed5ea6b63ae79d309f3f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ar/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ar/firefox-87.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "6b66c3f25eeea055e42a74ce6c327f09e8fe4f18acb1f947deee351d2cdda1da";
+      sha256 = "c85e9eaf8480ec226eab70a8b434f56fbd5f4f8a7e57f13b341d478142e4ef99";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ast/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ast/firefox-87.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "0efef2406fe4d8093a1ce6bb56d1a54eaef5bb429b6fa560fff7373a7435cb3d";
+      sha256 = "96a1fe1ab748ba2f99a23fd149f1d0b60a27f4d96ad12bb2473ec0393597e968";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/az/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/az/firefox-87.0.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "bb0dc33a53a2f871b9743f17a36f50fabed87c137521404675e69df69f121350";
+      sha256 = "52d3bc8e60196814f7ed1d1732faf32b4129a25379e9f526db7e6b755bbd5746";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/be/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/be/firefox-87.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "7459818c037c45ff2969998b8d3f481eb8384802e5444e2f3c58340f316aec14";
+      sha256 = "8cadf14d2ce8341e8a6a11a298203e121125d12ca63833642186b79ae79b5643";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/bg/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/bg/firefox-87.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "55f10b4a5cc1d06dcb81aca68c59a0aa64d7934e01c3f5f3dbcc27dd7497e3a5";
+      sha256 = "b60d8361c16f9b200255e6a904fdbf8da00a6f33a95280e456b471d54cac75d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/bn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/bn/firefox-87.0.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "6491efbf19bdf11b877d04dc22707864c07e9b52452408cf386bcb7bda3cf840";
+      sha256 = "1818bdfc297e2928255c006f8772478ce574c34748102ef64c5645ff59e3e2c3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/br/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/br/firefox-87.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "4ae74e5843edbb01d35b7564b1e998f58fc1c50d849fca9a9e97e540abe6f140";
+      sha256 = "7989cb7ba1a6984891c6eaa48a35b09281d0b8c7532c46cb1c87008bff5b68fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/bs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/bs/firefox-87.0.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "c796121189e7bcf5ec5a90218db35fb34393d4e70ab7100567b3f7aa43daaea4";
+      sha256 = "d618086558e44219582ff263d9555855bd562e0a8b9d588c2a03734d003e1138";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ca-valencia/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ca-valencia/firefox-87.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "a2097281cb1d5191992399686c26754a57d0a3bf241961374e335c225c4f7324";
+      sha256 = "8f74cf450192bc9dfd2877269f98663ebeb06fdd0cd6d25db3261e5d1f6b36c2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ca/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ca/firefox-87.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "4135f8421b6594a468dad1057d2684cc8c5e3fee1b095653d42c86c6b4b62ab2";
+      sha256 = "dee6a1ded1c10b4771294435c23e433ed209dfe55db9cbcc0454b0da23d26cec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/cak/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/cak/firefox-87.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "93799eaee71f6e1914c9161d075163bbc7c42d85b196301eb6891bb7c3debba6";
+      sha256 = "9e55f71f4040c21d79fabe4487cf5b660baca37c23875a31015e70a520fe0737";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/cs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/cs/firefox-87.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "25678ecf83437174adca71c682ff36145b0f68e45cdaec515fda671907c21133";
+      sha256 = "3121a7d49718ebf6c9a8babe0f57962547b54b99864f917d045f78ea4a4aede7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/cy/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/cy/firefox-87.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "85b571e0fe4f0bdedb8b433f8363a7649a1c5fdfeba40b35f069ef1518a28600";
+      sha256 = "02c5a049462f3d4c0a538a62756af8b4e59b1acdfc4d92d43639ee3a27e568a1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/da/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/da/firefox-87.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "d998daa0d89d7d4a632c576f9d81d5fe7af3c0e54332968d593d88e5f81fa246";
+      sha256 = "8bc3ad5f69850d0fd4c91ef2296462fc2c641e8eb9835ac5ffe88a9dd518821a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/de/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/de/firefox-87.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "a84adef78975397d45941ced4b17abfacc2a26a0b758336c99eb174b33f51c89";
+      sha256 = "2e9e562e10477f4a54d677bf2cd6becf87e4f40336fea8f4337f5e7d928f28f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/dsb/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/dsb/firefox-87.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "6647771748299fe56d9f023e612de6c3dfcd1b711cdcde74ea39bafb957deb5c";
+      sha256 = "fc1881741d5aeaa5cc34e9b86515c8ad637984d88814c48f8f014dfab55bf02c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/el/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/el/firefox-87.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "73a7a168b65362901a4b198200e2a5167244e886131203543bcf83f2998261cc";
+      sha256 = "cc44c88c82adbdcde8690825851711b48212a49aa74b7485cc51d234a5027cfa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/en-CA/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/en-CA/firefox-87.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "d47e5707ab2ea2e369adffaaa49c52f461d3c01b6b28b31b0876bc5284d2de66";
+      sha256 = "c6a32c84bd3ed42ee801a5780cf45a6061fc8b37de4220907a98d674831c0a00";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/en-GB/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/en-GB/firefox-87.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "6a50517b8ecd2fdbb897dca8de5a948214180fcb25ba3654faee7bb563d049d9";
+      sha256 = "cbf4e049602873ae13eabc2176657bdfb95fd4277360991ab4ef2a4e7be697f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/en-US/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/en-US/firefox-87.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "83ace0384a14e383e65716ef9305d72e39832b855ebecf2035e6267b4c9a97a5";
+      sha256 = "9127aee106dd9f09fac0c3cb89c5d75553384da4ec9be5943b60a5f55f31fccc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/eo/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/eo/firefox-87.0.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "2e8b25943115edae1dda4265aa3fd1edd8683318e47aa3b11f9e2f3d6f89a372";
+      sha256 = "7f75cb2fa8c73bc98a4d5b0f60ddbc66eff63a9caa271b98bb8eb4897fecdd49";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/es-AR/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/es-AR/firefox-87.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "559b0de8d0d846f58e15675e31e0db57ba00ad2b98d3a042c1d6d25a9727e1a0";
+      sha256 = "090b13b1698e70c0d13409ffac5b45a044356556e3ecab970fd34907e16cfc11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/es-CL/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/es-CL/firefox-87.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "3297f38424fc6cdf2ddefa72732f977cb1ba1b309dbd3d845b63a038d748359c";
+      sha256 = "1453a40f9c2ae6794dc886d1c5462e4341141fe84792e32a08b0e6c4ac5183c9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/es-ES/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/es-ES/firefox-87.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "614e69e978f0e814b54150a013872081d6365d9e5bb03ee1147c5310d6315dff";
+      sha256 = "3dc986b05c389dab03cacd1672c8621f1ec93e5781dd79ec18358e3a1f2e8f84";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/es-MX/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/es-MX/firefox-87.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "765d1ca2685a462f173d7ba1863a2263008cba71738548dcdab83f6c010b7dc9";
+      sha256 = "e6b18f0adf5ff99d1c7f84dbabc00b44ad7c3c2a4b95586f58d18421f28dfa1c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/et/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/et/firefox-87.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "1465b6447bd476f98060321562ec0ab47b117f1271dc97f9924da573c77b5a3d";
+      sha256 = "573cabc8b8eed9e80d43ce960660737fad1f3bf43266d3e72ea475bec931eb9d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/eu/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/eu/firefox-87.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "4f25ccef829ad465d62676aec9c6daff9e5910cdb5447c0d9b5befee89b7e4f7";
+      sha256 = "5b3d1ecd842b30029fa1749ad7a1aa6486bf96f977d5f274ecababe7909c71b0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/fa/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/fa/firefox-87.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "c2bed62b36d648133edd1541799b231dbfb1c0c5fb6213ac28c3abc0a38ee66d";
+      sha256 = "41edf84920463d8c1f6ac8a8c0c5068143652129ec42377e3a3973d54e8477c0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ff/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ff/firefox-87.0.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "527591e25cd83c6ba7fe443dd40ad6963dd1b7f69a693e76cd1e18a2bf74c082";
+      sha256 = "492d2b1307558b1b19b5d1d88bcc0eb151d00ebc1331356520068597614919f4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/fi/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/fi/firefox-87.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "3c89fb2c42b854fa800c47e5c91d19defe56be5f6474c500bab309eb84df0a74";
+      sha256 = "f495c5d6965c2fdfd06d23616f4b017c600e07efc22984be743c3eadcb5eceb5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/fr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/fr/firefox-87.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "a7b033c9df0e11abb6dae08f62dbfb34f740fb9d849e0bd8a027ecf0461ff5ac";
+      sha256 = "ba0cbea290a3911a6bc24fd52e726234f90213b05756a57aeeb01a8ebcc7af73";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/fy-NL/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/fy-NL/firefox-87.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "d162a3c113182178a7de0c5f3dab907badf9625ab50e8a922ceb4c34c4616c31";
+      sha256 = "9e9dfcea10f89836b3d63420f90f992b123dcec3beceb3eb739d47b15ced4a1a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ga-IE/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ga-IE/firefox-87.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "637d65856d46474d51cff1da13b9b1e74984cb646cc5a6a643fcbc7fc1ec37fe";
+      sha256 = "316b6877a46f452d628509bf94c4e729080d93cb8590d8c17f9ce030823a3b86";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/gd/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/gd/firefox-87.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "aab2f06d6ed6108fe48350ce0275d3d244f175e6c2427f54b403d6bd6ddc18cd";
+      sha256 = "34f2b2660f76ca13697ca029fe06cbdada7e8a0ee3f703c55b5290af4f59d687";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/gl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/gl/firefox-87.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "a5945bf732fc6e3edddb0e7bb9067c591f4fc347f56a35c8622311706d8c135b";
+      sha256 = "b61531887132193a3b68fc1394682305bf242bb8244f19c6e6dc158b0e6dda61";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/gn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/gn/firefox-87.0.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "6036a369187f5e30322d140e1add09cc0a51e5d092693a5acb65176c872bf53b";
+      sha256 = "286d7c949488a93370055dc650a70825df689b496de47382c7c326d0be16cf11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/gu-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/gu-IN/firefox-87.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "2b6d3c13a44b1234f591536c8f7f3cf5d1b56af53f366150e0565a36d4fa678e";
+      sha256 = "c04e2f3cd9514b8494122af0baa474b2e3ac91d62939ec1117f3b07efbffecc0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/he/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/he/firefox-87.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "c3d01e14f24de5635a9c0d3c7625fcb9b84129ce9505d2601390f2d40fff5a3a";
+      sha256 = "9f4436ba36fe3d73f22c0837fa124e712c58169d9db1cccaad91187d895f4b95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/hi-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/hi-IN/firefox-87.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "23f1dd3a9603d797abf6a1411c7b6e44d4fb2dc7b26294670ce4c63cb859e42f";
+      sha256 = "e1c3674ef1a401c6f8f5f9f3f4cfdc9a858fc670f71d0b09d79677820ed6ddb1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/hr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/hr/firefox-87.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "e30d8a599b28b05a3f83692dbadeb9185829b1a87c84ab5449f142ad1a7a8a44";
+      sha256 = "7dc0f6c2cf38f90741a8c0a2f5df22b32abb6399d9b24cc827f1ae972a481b23";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/hsb/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/hsb/firefox-87.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "1a6cb70573e9e0356e18a18d1a0a4d2f7188549c19cbed7e28d3b801915c22ca";
+      sha256 = "d59ee63de2bcb95575a782294cad35a0ea99eb4c8e4bde8539cd20326d85b41b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/hu/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/hu/firefox-87.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "c2cc048b05e197e028606535fdeb62a205c037eb5823560f187ec4152be41d97";
+      sha256 = "c9d13a693183290db6a62eda37da63f0d1535db5604a6f62d88b990ac3ea39ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/hy-AM/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/hy-AM/firefox-87.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "a4b6b0d0f05ce86d13dbf08448724106278891cb79387e29f9ba3874c1aa6ec7";
+      sha256 = "7edb84df00e57987f4cbef235a1fecc22b6dd7aaafe101f62e002e4e59caf56e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ia/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ia/firefox-87.0.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "f7d761ea9ee5d6037886a9aa8eb93747ae9f943957a296cdcca0dbbb0e7a2b38";
+      sha256 = "501cafeb34aef4d8dae63f47446abf8b04dcfee93b9931ec06f809823a6c675a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/id/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/id/firefox-87.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "1599cd0ea460ee1280753bea5d5c84419506f72f8d87818114665ced3237407f";
+      sha256 = "9913aec5634c32300c2f556017be415ef6516a4380af3e597b2abd8e449e82a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/is/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/is/firefox-87.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "ec9b790cc55ed72fcd79afb6502db207906f89aff4053d62efa12a37bbe85b93";
+      sha256 = "71b1bf3205043c5c23988de6955a51091ec812e82701d0f37c12e937ed774b69";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/it/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/it/firefox-87.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "97c625e01e9a565ef10079ae980cd2ee45761f428594158f6c05fb4a3f1142c9";
+      sha256 = "7a842251175a2db53e0bec3b65c2db0007a1fe5d84ec126fa9029c6d9dbc732c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ja/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ja/firefox-87.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "625dc84ed56bb46032eae0087ae96d17127594efd99e4aeea410d4c8bef93819";
+      sha256 = "6a8aa33e333fcfa9bb2a011d08af0d10b445be1a22dacc4458c121e8943b1f62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ka/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ka/firefox-87.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "45a00fe06fc302d59744b8c9dfc9d7a4e27ed4ac3727848f52597208020ce16a";
+      sha256 = "f2d2cc7b079e0ca69de3568b10bdf6d7f74ef7f8b0bd05a89442be41df3d2239";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/kab/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/kab/firefox-87.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "32b8ce9f195ecc610e3327402953609eb8621cbe116e22bba76131c9dd1b9738";
+      sha256 = "7211457301c54fed01aa3b0735fc7f0814d4fbfeb7862ebe438f5cebf7fed6e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/kk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/kk/firefox-87.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "651f3c7314b919af1348771ef7c5ea986fe3d9d7e42e056172fa55d675e17e3e";
+      sha256 = "8b18ac077d961279b2bb179ea37819de964e488ab528d4591ce2479ecae167ee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/km/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/km/firefox-87.0.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "1a62be10235639a7c2256521838fee8637ebd575cee39c5744a65ef057afe1b8";
+      sha256 = "6b06454f9e061ae6d099ffbb2079d92538b32eb619d12858c3d759f004c427c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/kn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/kn/firefox-87.0.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "1cdb648165896ccda8da7ef6862605723089cbd8e3c9e6b8692ffeb2d28f9593";
+      sha256 = "4b8d711f0f33c850d2bf39f16ef0da7e004374445ad8bb3e69e0b74ff0765cd1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ko/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ko/firefox-87.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "70781041791a7c64e518de27955cf2b57ce3d3ee7afad36737f62783b5255d64";
+      sha256 = "f6da2239dc4e457623a64f2ac5e56868e70115941ddd3c19093ba180a3aeea7a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/lij/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/lij/firefox-87.0.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "ea44fdf528da53d7f2ba9d447c70079873f802647ee708f6580447af6adc1834";
+      sha256 = "fc45263e353af69c7dc2e5d74edefa793b0f1d2bb86f496dd75ad66bdfc7ffe1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/lt/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/lt/firefox-87.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "ffca3845c97f4d87e0d601c483e2bde8fa8f7f59b44ee85259fc70b1dcfb727f";
+      sha256 = "f030574f0bfb8574ce07159fdd213f1e21c4293bf7e1961080e6ef10f7f14b42";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/lv/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/lv/firefox-87.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "b513e100141d1df78de9f05dac72da91c6cf65a8fcc22b9091ec00e6c6ee21ef";
+      sha256 = "7648c4616260b09161a3431120fd99c97c5630347ad4ac196956eae4cb4b18f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/mk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/mk/firefox-87.0.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "c65febe8a9f9b59ecdc61880a5c1a5b2b29fc53ffbc8d968f1773fe60adb082e";
+      sha256 = "c7bfcf5ee846d340d454d6cce2e66c0245bca10d1b74887170ba3820c392155a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/mr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/mr/firefox-87.0.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "b4d3b6758c67f72e8f8c9dbb0e32fcd7b527b701e41d3d492e3e7ba7817cc544";
+      sha256 = "808207c6efa62312abf14091992022a3d37ba906c8003316d6af943228ba534a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ms/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ms/firefox-87.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "2fe81086a7a15bb29b909987063c058c1826bee6c0c645cae1e7a0907207d1ae";
+      sha256 = "f836343cd1116657b8f8f28f49df99b36a13a4255d0499945953b64934f80e64";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/my/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/my/firefox-87.0.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "40661cc4fa51c2782bd0da0d6f460c3a5fbfaab72e91b15c77f9b7b537484ab8";
+      sha256 = "1c01f7dcea9ecbf1af3cc29cb38aa8cd928dc6c10f67fdb20f98a588951336de";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/nb-NO/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/nb-NO/firefox-87.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "9ce253d8bc316fb976c4f64135f7767060aed90111b54dac687011a772e650ab";
+      sha256 = "f196268af59a118a4c5ca50b5c7f9ace27d642fd1952085dd693f09462eb27a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ne-NP/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ne-NP/firefox-87.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "7fb96857d5da6726e68038a9659ac7c18b8e746d0dd5e4823655c8fd093238a4";
+      sha256 = "6a80edda7e3b0f97282840eaacd9d4d003e6562c4931a14736bd1aba6ea8eb7c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/nl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/nl/firefox-87.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "1d03b2eb31dca3cfbfb38af4e59d3eb84845b8fdaf488b76949a98f744253935";
+      sha256 = "495a43b18aa2078bd86468cbd1545ea04b0fc63c847a459156489c18432fe5ff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/nn-NO/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/nn-NO/firefox-87.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "64fdf6e8e8086c04c53c84f792382c32579b43548f9410dc074b2aff95165d88";
+      sha256 = "a3d58b74e2ee2c97a2b4aa5855040f34f79024df55d8de6623991df61cfc3b46";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/oc/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/oc/firefox-87.0.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "6db5c30ca7d449534289f5b84e328484edd5d04512cde11f097f28f5ffb986bb";
+      sha256 = "c71e444eb03df8c4b28dc34d4cfc32db2471ba12389f448c28a9dc03fc0dbfb1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/pa-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/pa-IN/firefox-87.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "102ac2026af2d21f27502f190dfeb0f39b148ce39324e480f653f6868df770d3";
+      sha256 = "69eedac3a7f2912f179e2c5838f4dbe109c1b1c570ea1f375d5563a622553f13";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/pl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/pl/firefox-87.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "f0a03e6a95a67af8e6949f5b6ad32179f7bf4978f050ca3c453287bdfaca6252";
+      sha256 = "106012905a00d898ad3fa43c733c1f568c0df2e74165276feb5b3f5eb79a3b20";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/pt-BR/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/pt-BR/firefox-87.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "7177392c8f0c049ad685676aa6aab258274b7d5871c06467f7e87292779b7575";
+      sha256 = "18434861a77abb7810008af068589250ae5621c1719ed4d37643c7aa3607070a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/pt-PT/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/pt-PT/firefox-87.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "1fcae4be8cb31d30b1187b7d94fde71c41eb95c858467136af32fd7ad1117147";
+      sha256 = "b27fc0941804f4bedf10c15e26fd14fc381416a2c29fbe9b4d01f328e2164022";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/rm/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/rm/firefox-87.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "86f801260baccff9e8d9036dae46b0796edc8d90c9a2238da1e1547ac2684da9";
+      sha256 = "2283c43282caeee2798a93af96979e46a103b3ab7c645e72384fe19973c49534";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ro/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ro/firefox-87.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "c1b02e43cc649acef6cdc9498814a4582b46b42de96dc48fcbac4d83b44ba35b";
+      sha256 = "6d7ba9b40f17f373c4eb151a4bbf6399d27a8e5071342d25a374afc67914bace";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ru/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ru/firefox-87.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "c067538578c2891f062716f56f3ae057ef8db2814a03ec7f1eb8855b95f9ace0";
+      sha256 = "77341829394b41ed8cf63090c30b993e3a540b838bb476239398795eb026442b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/si/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/si/firefox-87.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "8131b12c390e31c06752115abf62426565433261e73ffa37a8389b102ccd06bf";
+      sha256 = "b7aaa753f54ca1aa5172c39e9899c662f62cb81628f29d29ed8774c68697d1fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/sk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/sk/firefox-87.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "f45f32063d34930b7e0ba4c087e97a78af642a59270c62fbea86b0bd87e06171";
+      sha256 = "fc70db60786a652dfa0d8614c24bb4b5cb46849a468903723c9e9cdfebd9eb52";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/sl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/sl/firefox-87.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "df8602e60a895887170ff2d18aae487730ef8e0bcfe08010fbe0da30f05af91e";
+      sha256 = "392eccb8277c76b4178b6fb74c8974ad31e0b36fe8778b5933b37f6249d3c9b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/son/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/son/firefox-87.0.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "3dd3bb220c4cfeee6ecd79977e1a619470a2504a4597f314286497164984cd9f";
+      sha256 = "c95c7ff206a42cf5c4caba9a3377834c1b8b4d258de566efed15ab0815b64726";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/sq/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/sq/firefox-87.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "cc04ff65bb4fbc714e21a416af26256d4b203f327e5678c71378fa507242ec6e";
+      sha256 = "7eb9cbe937262ed47711df80143b49d369bfb185119a3fb51f8a723bb99b1f9d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/sr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/sr/firefox-87.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "abb30a4c0eb7ea9910b21c0f10cace395f9d413ce39051494c97ddd1e18e2c10";
+      sha256 = "4d4b88503ccc6d5f5c16988c626027516681d265b32ee205324919a170caa1b7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/sv-SE/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/sv-SE/firefox-87.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "76ae51342d5b8a93ae5f3927a69b9b1a6cd4877b98a7a103f8250bbe105ecf6a";
+      sha256 = "fe2fdf76541c95166fae7b9d1c0b3390552968ac0a8f47f2e23da750c8b8753a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/szl/firefox-87.0.tar.bz2";
+      locale = "szl";
+      arch = "linux-i686";
+      sha256 = "af91e1a4d0afefd890ce9ab04ac800427670a314089b67dc41e12bfa43ecf112";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ta/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ta/firefox-87.0.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "1e9866ac793705555c15ae4d0e16753e90e8deae19e6694ce9f85e8dfa6ee476";
+      sha256 = "043162612ff54115953c25333fcc03d801176db1d379cb7c94f22c0da5a1ae00";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/te/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/te/firefox-87.0.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "66dcd400f89054f194f1a794c8731c7344b04f97209023559bfcd0f008e005c8";
+      sha256 = "2fca2c54dd357d8d5e3bb8804dbc3cfcc7fd1c17f538eaf1e1fd60c95baf7252";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/th/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/th/firefox-87.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "adef4cf7769510a8b47628eff5ee0f3b00c23862634fd8f6975daf599cf7b056";
+      sha256 = "b049f6cc876fce2d57387d2c90afff4f261baf38e582821656efd455fdbadc03";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/tl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/tl/firefox-87.0.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "465d089eb0c68d8279e3cc7f8ceb5c08527fc48b0292cc8ce523879c4643fbb1";
+      sha256 = "be18fe1caae3a85e3a48b0a5a45cb175bd11c31d1cfbe726dbe4952c50338299";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/tr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/tr/firefox-87.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "00d75ff3605672f6704fb600208872e536f76907ed25a4f90325cabc1924f991";
+      sha256 = "5c43338e0fc0138c280f9231e05c14a553d2b0504053b5c090adb7ecb96cf8d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/trs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/trs/firefox-87.0.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "299be659a464911dd27d92c36f567f675a26aa6d92af63deb002e172ba6b40e0";
+      sha256 = "510ee9988f4d1c6e0e50fc07d00d2aa80380f89f8db4b0655c7a9c0aaf07fc51";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/uk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/uk/firefox-87.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "49c2084ec32c03fd2821c8f1220bbbf954b98705e44a6a7fa65ec6f1abb12c02";
+      sha256 = "a01aa11750b6027f01b45763d691c425b65aa577fe9fcae6f492b40bb8ff6056";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ur/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ur/firefox-87.0.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "d703344d8f03186b0fb246108892432f137cc033ae66bef395e7216cfa7bbdd3";
+      sha256 = "f2e83dfd361dc8abfc3fab5554d1c545b216a05f57718aa1f8976f7c2dda3b17";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/uz/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/uz/firefox-87.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "02379c1fd1766eb15d9e99f8a6f08074df943c49ecf6b50a6b29ae8e922bf347";
+      sha256 = "4c570ba3aa3480efd63ba230b550d750a49289b3bafe9ede881b28184ac26ca1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/vi/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/vi/firefox-87.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "0577b4c2891ba646a67a93b4d6373095b98466e32b95993abc79e7bfd240f7d5";
+      sha256 = "846862d789b275ba1184b1f65a95570043ee1f8e2f7da5678252c192a8d31966";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/xh/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/xh/firefox-87.0.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "83e40e1b33b2782d5dc68d32286da290188e8b5c3d689e5352d53411f95bed4c";
+      sha256 = "5c5a88654bcec7a8c5bb7245567270542823a377c7843a6b14d8f12cf57b7b59";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/zh-CN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/zh-CN/firefox-87.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "695e647135b911a5e60374595197cd096b7bc180e63ee3069e4550a612354369";
+      sha256 = "b7774306c5941feb5b7abf4fbc3e3d3af854145fff741f561708b5ee94d1816b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/zh-TW/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/zh-TW/firefox-87.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "5dcc5aa463f3c2325dcc7f4f768580dca6adf66e052470ec932bfabe9b3f8f29";
+      sha256 = "d115d7086947003940bc270b6a83aa612324f7913e044a194c1e05648e241b17";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
index 98ded55885de..3d65acb7c9f5 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
@@ -23,8 +23,8 @@
 , ffmpegSupport ? true
 , gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
 , waylandSupport ? true, libxkbcommon
-, ltoSupport ? stdenv.isLinux, overrideCC, buildPackages
-, gssSupport ? true, kerberos
+, ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages
+, gssSupport ? true, libkrb5
 , pipewireSupport ? waylandSupport && webrtcSupport, pipewire
 
 ## privacy-related options
@@ -111,6 +111,13 @@ let
                 else stdenv;
 
   nss_pkg = if lib.versionOlder ffversion "83" then nss_3_53 else nss;
+
+  # --enable-release adds -ffunction-sections & LTO that require a big amount of
+  # RAM and the 32-bit memory space cannot handle that linking
+  # We also disable adding "-g" for easier linking
+  releaseFlags = if stdenv.is32bit
+                 then [ "--disable-release" "--disable-debug-symbols" ]
+                 else [ "--enable-release" ];
 in
 
 buildStdenv.mkDerivation ({
@@ -120,8 +127,9 @@ buildStdenv.mkDerivation ({
   inherit src unpackPhase meta;
 
   patches = [
-    ./env_var_for_system_dir.patch
   ] ++
+  lib.optional (lib.versionOlder ffversion "86") ./env_var_for_system_dir-ff85.patch ++
+  lib.optional (lib.versionAtLeast ffversion "86") ./env_var_for_system_dir-ff86.patch ++
   lib.optional (lib.versionOlder ffversion "83") ./no-buildconfig-ffx76.patch ++
   lib.optional (lib.versionAtLeast ffversion "84") ./no-buildconfig-ffx84.patch ++
   lib.optional (ltoSupport && lib.versionOlder ffversion "84") ./lto-dependentlibs-generation-ffx83.patch ++
@@ -153,7 +161,7 @@ buildStdenv.mkDerivation ({
     xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
     xorg.pixman yasm libGLU libGL
     xorg.xorgproto
-    xorg.libXext unzip makeWrapper
+    xorg.libXext makeWrapper
     libevent libstartup_notification /* cairo */
     libpng jemalloc glib
     nasm icu67 libvpx_1_8
@@ -166,7 +174,7 @@ buildStdenv.mkDerivation ({
   ++ lib.optional  alsaSupport alsaLib
   ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
   ++ lib.optional  gtk3Support gtk3
-  ++ lib.optional  gssSupport kerberos
+  ++ lib.optional  gssSupport libkrb5
   ++ lib.optional  waylandSupport libxkbcommon
   ++ lib.optional  pipewireSupport pipewire
   ++ lib.optional  (lib.versionAtLeast ffversion "82") gnum4
@@ -214,6 +222,7 @@ buildStdenv.mkDerivation ({
       rust-cbindgen
       rustc
       which
+      unzip
     ]
     ++ lib.optional gtk3Support wrapGAppsHook
     ++ lib.optionals buildStdenv.isDarwin [ xcbuild rsync ]
@@ -296,9 +305,9 @@ buildStdenv.mkDerivation ({
   ++ lib.optional (!drmSupport) "--disable-eme"
 
   ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ]
-                    else [ "--disable-debug" "--enable-release"
+                    else ([ "--disable-debug"
                            "--enable-optimize"
-                           "--enable-strip" ])
+                           "--enable-strip" ] ++ releaseFlags))
   ++ lib.optional enableOfficialBranding "--enable-official-branding"
   ++ extraConfigureFlags;
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch
index 18d31356989a..18d31356989a 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch
new file mode 100644
index 000000000000..f7a9cb773455
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch
@@ -0,0 +1,21 @@
+diff -r 22fc47c968f2 toolkit/xre/nsXREDirProvider.cpp
+--- a/toolkit/xre/nsXREDirProvider.cpp	Mon Dec 14 15:09:17 2020 +0000
++++ b/toolkit/xre/nsXREDirProvider.cpp	Tue Feb 23 23:38:56 2021 +0100
+@@ -11,6 +11,7 @@
+ 
+ #include "jsapi.h"
+ #include "xpcpublic.h"
++#include "prenv.h"
+ 
+ #include "nsIAppStartup.h"
+ #include "nsIFile.h"
+@@ -305,7 +306,8 @@
+       "/usr/lib/mozilla"_ns
+ #    endif
+       ;
+-  rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir));
++  const char* pathVar = PR_GetEnv("MOZ_SYSTEM_DIR");
++  rv = NS_NewNativeLocalFile((pathVar && *pathVar) ? nsDependentCString(pathVar) : reinterpret_cast<const nsCString&>(dirname), false, getter_AddRefs(localDir));
+ #  endif
+ 
+   if (NS_SUCCEEDED(rv)) {
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
index c70500edff85..62ce8251f051 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -3,16 +3,16 @@
 rec {
   firefox = firefoxCommon rec {
     pname = "firefox";
-    ffversion = "85.0.2";
+    ffversion = "87.0";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "2m46li5ni1m4xv42h99rn2hhhv2mqy229wihmzxmgvws1rh2h11yf6x2a07akkjrsp2dmwxmmkhmf9dhakgj9i55z5qqi99azyx07df";
+      sha512 = "c1c08be2283e7a162c8be2f2647ec2bb85cab592738dc45e4b4ffb72969229cc0019a30782a4cb27f09a13b088c63841071dd202b3543dfba295140a7d6246a4";
     };
 
     meta = {
       description = "A web browser built from Firefox source tree";
       homepage = "http://www.mozilla.com/en-US/firefox/";
-      maintainers = with lib.maintainers; [ eelco lovesegfault ];
+      maintainers = with lib.maintainers; [ eelco lovesegfault hexa ];
       platforms = lib.platforms.unix;
       badPlatforms = lib.platforms.darwin;
       broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
@@ -28,16 +28,16 @@ rec {
 
   firefox-esr-78 = firefoxCommon rec {
     pname = "firefox-esr";
-    ffversion = "78.7.1esr";
+    ffversion = "78.9.0esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "138dcfpdkp78yqgygac212vg5fm5ich2a82p7258ch8hk6bpvpdxbws4sdqwljs92x831dblcsshwkl06vh48899489gx87mdkqd0nm";
+      sha512 = "28582fc0a03fb50c0a817deb1083817bb7f2f5d38e98439bf655ed4ee18c83568b3002a59ef76edf357bfb11f55832a221d14130f116aac19d850768fba3ac8b";
     };
 
     meta = {
       description = "A web browser built from Firefox Extended Support Release source tree";
       homepage = "http://www.mozilla.com/en-US/firefox/";
-      maintainers = with lib.maintainers; [ eelco ];
+      maintainers = with lib.maintainers; [ eelco hexa ];
       platforms = lib.platforms.unix;
       badPlatforms = lib.platforms.darwin;
       broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 96a4e15adf87..26fb49ef2a3e 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -8,7 +8,7 @@
 , tridactyl-native
 , fx_cast_bridge
 , udev
-, kerberos
+, libkrb5
 , libva
 , mesa # firefox wants gbm for drm+dmabuf
 }:
@@ -51,27 +51,6 @@ let
       alsaSupport = browser.alsaSupport or false;
       pipewireSupport = browser.pipewireSupport or false;
 
-      # FIXME: This should probably be an assertion now?
-      plugins =
-        let
-          removed = lib.filter (a: builtins.hasAttr a cfg) [
-            "enableAdobeFlash"
-            "enableAdobeReader"
-            "enableBluejeans"
-            "enableDjvu"
-            "enableFriBIDPlugin"
-            "enableGoogleTalkPlugin"
-            "enableMPlayer"
-            "enableVLC"
-            "icedtea"
-            "jre"
-          ];
-        in if removed != [] then
-          throw "Your configuration mentions ${lib.concatMapStringsSep ", " (p: browserName + "." + p) removed}. All plugin related options have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins)."
-        else
-          []
-        ;
-
       nativeMessagingHosts =
         ([ ]
           ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass)
@@ -86,7 +65,7 @@ let
       libs =   lib.optionals stdenv.isLinux [ udev libva mesa libnotify xorg.libXScrnSaver ]
             ++ lib.optional (pipewireSupport && lib.versionAtLeast version "83") pipewire
             ++ lib.optional ffmpegSupport ffmpeg
-            ++ lib.optional gssSupport kerberos
+            ++ lib.optional gssSupport libkrb5
             ++ lib.optional useGlvnd libglvnd
             ++ lib.optionals (cfg.enableQuakeLive or false)
             (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ])
@@ -164,7 +143,24 @@ let
       #                           #
       #############################
 
-    in stdenv.mkDerivation {
+      # TODO: remove this after the next release (21.03)
+      configPlugins = lib.filter (a: builtins.hasAttr a cfg) [
+        "enableAdobeFlash"
+        "enableAdobeReader"
+        "enableBluejeans"
+        "enableDjvu"
+        "enableFriBIDPlugin"
+        "enableGoogleTalkPlugin"
+        "enableMPlayer"
+        "enableVLC"
+        "icedtea"
+        "jre"
+      ];
+      pluginsError =
+        "Your configuration mentions ${lib.concatMapStringsSep ", " (p: browserName + "." + p) configPlugins}. All plugin related options have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins).";
+
+    in if configPlugins != [] then throw pluginsError else
+      (stdenv.mkDerivation {
       inherit pname version;
 
       desktopItem = makeDesktopItem {
@@ -262,12 +258,9 @@ let
 
         makeWrapper "$oldExe" \
           "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \
-            --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \
             --suffix LD_LIBRARY_PATH ':' "$libs" \
             --suffix-each GTK_PATH ':' "$gtk_modules" \
-            --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \
             --prefix PATH ':' "${xdg-utils}/bin" \
-            --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \
             --suffix PATH ':' "$out${browser.execdir or "/bin"}" \
             --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \
             --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \
@@ -351,9 +344,6 @@ let
 
       preferLocalBuild = true;
 
-      # Let each plugin tell us (through its `mozillaPlugin') attribute
-      # where to find the plugin in its tree.
-      plugins = map (x: x + x.mozillaPlugin) plugins;
       libs = lib.makeLibraryPath libs + ":" + lib.makeSearchPathOutput "lib" "lib64" libs;
       gtk_modules = map (x: x + x.gtkModule) gtk_modules;
 
@@ -362,14 +352,9 @@ let
       disallowedRequisites = [ stdenv.cc ];
 
       meta = browser.meta // {
-        description =
-          browser.meta.description
-          + " (with plugins: "
-          + lib.concatStrings (lib.intersperse ", " (map (x: x.name) plugins))
-          + ")";
+        description = browser.meta.description;
         hydraPlatforms = [];
         priority = (browser.meta.priority or 0) - 1; # prefer wrapper over the package
       };
-    };
-in
-  lib.makeOverridable wrapper
+    });
+in lib.makeOverridable wrapper
diff --git a/nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix b/nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix
new file mode 100644
index 000000000000..7baca62e6732
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchFromSourcehut, pkg-config, bearssl, scdoc }:
+
+stdenv.mkDerivation rec {
+  pname = "gmni";
+  version = "unstable-2021-03-26";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "gmni";
+    rev = "77b73efbcd3ea7ed9e3e4c0aa19d9247e21d3c87";
+    sha256 = "1wvnzyv7vyddcd39y6q5aflpnnsdl4k4y5aj5ssb7vgkld0h1b7r";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ bearssl scdoc ];
+
+  meta = with lib; {
+    description = "A Gemini client";
+    homepage = "https://git.sr.ht/~sircmpwn/gmni";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ bsima jb55 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
index c5e5aff77e01..d903cb3c0831 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -5,7 +5,7 @@
 , libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb
 , alsaLib, libXdamage, libXtst, libXrandr, libxshmfence, expat, cups
 , dbus, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
-, kerberos, libdrm, mesa
+, libkrb5, libdrm, mesa
 , libxkbcommon, wayland # ozone/wayland
 
 # Command line programs
@@ -39,6 +39,12 @@
 
 , gsettings-desktop-schemas
 , gnome3
+
+# For video acceleration via VA-API (--enable-features=VaapiVideoDecoder)
+, libvaSupport ? true, libva
+
+# For Vulkan support (--enable-features=Vulkan)
+, vulkanSupport ? true, vulkan-loader
 }:
 
 with lib;
@@ -60,9 +66,11 @@ let
     liberation_ttf curl util-linux xdg-utils wget
     flac harfbuzz icu libpng opusWithCustomModes snappy speechd
     bzip2 libcap at-spi2-atk at-spi2-core
-    kerberos libdrm mesa coreutils
+    libkrb5 libdrm mesa coreutils
     libxkbcommon wayland
   ] ++ optional pulseSupport libpulseaudio
+    ++ optional libvaSupport libva
+    ++ optional vulkanSupport vulkan-loader
     ++ [ gtk3 ];
 
   suffix = if channel != "stable" then "-" + channel else "";
diff --git a/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix b/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
index 64f4c27c96c6..30e154e5222c 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lagrange";
-  version = "1.1.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "skyjake";
     repo = "lagrange";
     rev = "v${version}";
-    sha256 = "0c7w4a19cwx3bkmbhc9c1wx0zmqd3a1grrj4ffifdic95wdihv7x";
+    sha256 = "sha256-85KshJEL7ri10mSm/KgcT03WLEwRMMTGczb6mGx66Jw=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
index ec57bcfae184..a6cf5ad531e5 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
@@ -8,12 +8,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.21";
+  version = "2.22";
   pname = "links2";
 
   src = fetchurl {
     url = "${meta.homepage}/download/links-${version}.tar.bz2";
-    sha256 = "0qqdcghsdqm7l6kyi0k752ws3ak5crw85pqkcb11wy67j62yspi8";
+    sha256 = "sha256-A2SYazp/Ho4xcb6jYrU/ceHdM2CohC1m/cZVgOvCCE0=";
   };
 
   buildInputs = with lib;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
index 917da034c304..8656b4aaa276 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
@@ -1,34 +1,56 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, wrapGAppsHook
-, help2man, luafilesystem, luajit, sqlite
-, webkitgtk, gtk3, gst_all_1, glib-networking
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, wrapGAppsHook
+, help2man
+, glib-networking
+, gst_all_1
+, gtk3
+, luafilesystem
+, luajit
+, sqlite
+, webkitgtk
 }:
 
 stdenv.mkDerivation rec {
   pname = "luakit";
-  version = "2.2.1";
+  version = "2.3";
 
   src = fetchFromGitHub {
     owner = "luakit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-78B8vXkWsFMJIHA72Qrk2SWubrY6YuArqcM0UAPjpzc=";
+    hash = "sha256-5YeJkbWk1wHxWXqWOvhEDeScWPU/aRVhuOWRHLSHVZM=";
   };
 
   nativeBuildInputs = [
-    pkg-config help2man wrapGAppsHook
+    pkg-config
+    help2man
+    wrapGAppsHook
   ];
-
   buildInputs = [
-    webkitgtk luafilesystem luajit sqlite gtk3
+    gtk3
     glib-networking # TLS support
-  ] ++ ( with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good
-                           gst-plugins-bad gst-plugins-ugly gst-libav ]);
+    luafilesystem
+    luajit
+    sqlite
+    webkitgtk
+  ] ++ ( with gst_all_1; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+    gst-plugins-ugly
+    gst-libav
+  ]);
+
 
+  # build-utils/docgen/gen.lua:2: module 'lib.lousy.util' not found
+  # TODO: why is not this the default? The test runner adds
+  # ';./lib/?.lua;./lib/?/init.lua' to package.path, but the build-utils
+  # scripts don't add an equivalent
   preBuild = ''
-    # build-utils/docgen/gen.lua:2: module 'lib.lousy.util' not found
-    # TODO: why is not this the default? The test runner adds
-    # ';./lib/?.lua;./lib/?/init.lua' to package.path, but the build-utils
-    # scripts don't add an equivalent
     export LUA_PATH="$LUA_PATH;./?.lua;./?/init.lua"
   '';
 
@@ -52,6 +74,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "https://luakit.github.io/";
     description = "Fast, small, webkit-based browser framework extensible in Lua";
     longDescription = ''
       Luakit is a highly configurable browser framework based on the WebKit web
@@ -60,9 +83,8 @@ stdenv.mkDerivation rec {
       power users, developers and anyone who wants to have fine-grained control
       over their web browser’s behaviour and interface.
     '';
-    homepage    = "https://luakit.github.io/";
     license     = licenses.gpl3Only;
-    platforms   = platforms.unix;
     maintainers = [ maintainers.AndersonTorres ];
+    platforms   = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix b/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
index b4bec6ead3f6..1f8cb7464651 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, lispPackages, sbcl
+{ stdenv, lib, lispPackages
 , makeWrapper, wrapGAppsHook, gst_all_1
 , glib, gdk-pixbuf, cairo
 , mime-types, pango, gtk3
@@ -52,6 +52,6 @@ stdenv.mkDerivation rec {
     homepage = "https://nyxt.atlas.engineer";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lewo ];
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
index 8207040f1b8c..554167c35745 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -16,14 +16,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "29.0.1";
+  version = "29.1.1";
 
   src = fetchFromGitHub {
     githubBase = "repo.palemoon.org";
     owner = "MoonchildProductions";
     repo = "Pale-Moon";
     rev = "${version}_Release";
-    sha256 = "18flr64041cvffj6jbzx0njnynvyk3k5yljb446a4lwmksvd3nmq";
+    sha256 = "1ppdmj816zwccb0l0mgpq14ckdwg785wmqz41wran0nl63fg6i1x";
     fetchSubmodules = true;
   };
 
@@ -43,14 +43,14 @@ in stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    desktop-file-utils file gnum4 perl pkg-config python2 wget which wrapGAppsHook
+    desktop-file-utils file gnum4 perl pkg-config python2 wget which wrapGAppsHook unzip
   ];
 
   buildInputs = [
     alsaLib bzip2 cairo dbus dbus-glib ffmpeg fontconfig freetype
     gnome2.GConf gtk2 hunspell libevent libjpeg libnotify
     libstartup_notification libGLU libGL
-    libpulseaudio unzip yasm zip zlib
+    libpulseaudio yasm zip zlib
   ]
   ++ (with xorg; [
     libX11 libXext libXft libXi libXrender libXScrnSaver
diff --git a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
index b1235fe2d8f2..6cb947cb8164 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -31,12 +31,12 @@ let
 
 in mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "qutebrowser";
-  version = "2.0.2";
+  version = "2.1.1";
 
   # the release tarballs are different from the git checkout!
   src = fetchurl {
     url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0fxkazz4ykmkiww27l92yr96hq00qn5vvjmknxcy4cl97d2pxa28";
+    sha256 = "sha256-txsArX1JiRGXjlu9FTpt0EUKxq3j5b85j8luFTKDQs4=";
   };
 
   # Needs tox
@@ -60,6 +60,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
     # scripts and userscripts libs
     tldextract beautifulsoup4
     pyreadability pykeepass stem
+    pynacl
     # extensive ad blocking
     adblock
   ]
@@ -109,17 +110,18 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
     done
   '';
 
-  postFixup = ''
-    wrapProgram $out/bin/qutebrowser \
-      "''${gappsWrapperArgs[@]}" \
-      "''${qtWrapperArgs[@]}" \
+  preFixup = ''
+    makeWrapperArgs+=(
+      "''${gappsWrapperArgs[@]}"
+      "''${qtWrapperArgs[@]}"
       --add-flags '--backend ${backend}'
+    )
   '';
 
   meta = with lib; {
     homepage    = "https://github.com/The-Compiler/qutebrowser";
     description = "Keyboard-focused browser with a minimal GUI";
     license     = licenses.gpl3Plus;
-    maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry ];
+    maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 9b0a9078ee5a..b4ca094be130 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -33,9 +33,6 @@
 
 , gmp
 
-# Pluggable transport dependencies
-, python27
-
 # Wrapper runtime
 , coreutils
 , glibcLocales
@@ -91,19 +88,19 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "10.0.9";
+  version = "10.0.15";
 
   lang = "en-US";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
-      sha256 = "Dtlfm/memHSxir5XkUGkJICGEM+tPs//ET4PdVM1HPM=";
+      sha256 = "1ah69jmfgik063f9gkvyv9d4k706pqihmzc4k7cc95zyd17v8wrs";
     };
 
     i686-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
-      sha256 = "GZywFEX/5Br+Zu1w6pegoNOTrSIVQNE2LINsa3Vdlxs=";
+      sha256 = "0gyhxfs4qpg6ys038d52cxnmb4khbng1w4hcsavi2rlgv18bz75p";
     };
   };
 in
@@ -133,7 +130,7 @@ stdenv.mkDerivation rec {
 
     # Unpack & enter
     mkdir -p "$TBB_IN_STORE"
-    tar xf "${src}" -C "$TBB_IN_STORE" --strip-components=2
+    tar xf "$src" -C "$TBB_IN_STORE" --strip-components=2
     pushd "$TBB_IN_STORE"
 
     # Set ELF interpreter
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix
index ab894e7b7f06..495c2bb15d68 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix
@@ -2,13 +2,13 @@
 
 mkYarnPackage rec {
   pname = "vieb";
-  version = "3.1.0";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "jelmerro";
     repo = pname;
     rev = version;
-    sha256 = "10l36q75nmqv0azxhmwms6hjicbgyvpk8k6ljrh9d7zxryd3xwz0";
+    sha256 = "0h5yzmvs9zhhpg9l7rrgwd4rqd9n00n2ifwqf05kpymzliy6xsnk";
   };
 
   packageJSON = ./package.json;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json b/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json
index a03478bcd822..cf04c6892c89 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json
+++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json
@@ -1,14 +1,9 @@
 {
   "name": "vieb",
   "productName": "Vieb",
-  "version": "3.1.0",
+  "version": "3.4.0",
   "description": "Vim Inspired Electron Browser",
   "main": "app/index.js",
-  "babel": {
-    "plugins": [
-      "@babel/plugin-proposal-optional-chaining"
-    ]
-  },
   "scripts": {
     "test": "jest -u && eslint .",
     "start": "electron app",
@@ -29,16 +24,15 @@
   "email": "Jelmerro@users.noreply.github.com",
   "license": "GPL-3.0+",
   "devDependencies": {
-    "@babel/plugin-proposal-optional-chaining": "^7.12.7",
-    "archiver": "^5.0.2",
-    "electron": "^11.0.3",
-    "electron-builder": "^22.9.1",
-    "eslint": "^7.15.0",
+    "archiver": "^5.2.0",
+    "electron": "^11.2.1",
+    "electron-builder": "^22.10.4",
+    "eslint": "^7.19.0",
     "jest": "^26.6.3"
   },
   "dependencies": {
-    "@cliqz/adblocker-electron": "^1.18.8",
-    "darkreader": "^4.9.26",
+    "@cliqz/adblocker-electron": "^1.20.0",
+    "darkreader": "^4.9.27",
     "is-svg": "^4.2.1",
     "rimraf": "^3.0.2"
   }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock
index a9266f10513f..45858ae2b28e 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock
+++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock
@@ -7,26 +7,33 @@
   resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f"
   integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==
 
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4":
-  version "7.10.4"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
-  integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
+"@babel/code-frame@7.12.11":
+  version "7.12.11"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
+  integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
   dependencies:
     "@babel/highlight" "^7.10.4"
 
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
+  integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
+  dependencies:
+    "@babel/highlight" "^7.12.13"
+
 "@babel/core@^7.1.0", "@babel/core@^7.7.5":
-  version "7.12.10"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd"
-  integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==
-  dependencies:
-    "@babel/code-frame" "^7.10.4"
-    "@babel/generator" "^7.12.10"
-    "@babel/helper-module-transforms" "^7.12.1"
-    "@babel/helpers" "^7.12.5"
-    "@babel/parser" "^7.12.10"
-    "@babel/template" "^7.12.7"
-    "@babel/traverse" "^7.12.10"
-    "@babel/types" "^7.12.10"
+  version "7.12.16"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.16.tgz#8c6ba456b23b680a6493ddcfcd9d3c3ad51cab7c"
+  integrity sha512-t/hHIB504wWceOeaOoONOhu+gX+hpjfeN6YRBT209X/4sibZQfSF1I0HFRRlBe97UZZosGx5XwUg1ZgNbelmNw==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@babel/generator" "^7.12.15"
+    "@babel/helper-module-transforms" "^7.12.13"
+    "@babel/helpers" "^7.12.13"
+    "@babel/parser" "^7.12.16"
+    "@babel/template" "^7.12.13"
+    "@babel/traverse" "^7.12.13"
+    "@babel/types" "^7.12.13"
     convert-source-map "^1.7.0"
     debug "^4.1.0"
     gensync "^1.0.0-beta.1"
@@ -35,139 +42,123 @@
     semver "^5.4.1"
     source-map "^0.5.0"
 
-"@babel/generator@^7.12.10":
-  version "7.12.10"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.10.tgz#2b188fc329fb8e4f762181703beffc0fe6df3460"
-  integrity sha512-6mCdfhWgmqLdtTkhXjnIz0LcdVCd26wS2JXRtj2XY0u5klDsXBREA/pG5NVOuVnF2LUrBGNFtQkIqqTbblg0ww==
+"@babel/generator@^7.12.13", "@babel/generator@^7.12.15":
+  version "7.12.15"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz#4617b5d0b25cc572474cc1aafee1edeaf9b5368f"
+  integrity sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==
   dependencies:
-    "@babel/types" "^7.12.10"
+    "@babel/types" "^7.12.13"
     jsesc "^2.5.1"
     source-map "^0.5.0"
 
-"@babel/helper-function-name@^7.10.4":
-  version "7.10.4"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a"
-  integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==
-  dependencies:
-    "@babel/helper-get-function-arity" "^7.10.4"
-    "@babel/template" "^7.10.4"
-    "@babel/types" "^7.10.4"
-
-"@babel/helper-get-function-arity@^7.10.4":
-  version "7.12.10"
-  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf"
-  integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==
-  dependencies:
-    "@babel/types" "^7.12.10"
-
-"@babel/helper-member-expression-to-functions@^7.12.1":
-  version "7.12.7"
-  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855"
-  integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==
-  dependencies:
-    "@babel/types" "^7.12.7"
-
-"@babel/helper-module-imports@^7.12.1":
-  version "7.12.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
-  integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==
-  dependencies:
-    "@babel/types" "^7.12.5"
-
-"@babel/helper-module-transforms@^7.12.1":
-  version "7.12.1"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c"
-  integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==
-  dependencies:
-    "@babel/helper-module-imports" "^7.12.1"
-    "@babel/helper-replace-supers" "^7.12.1"
-    "@babel/helper-simple-access" "^7.12.1"
-    "@babel/helper-split-export-declaration" "^7.11.0"
-    "@babel/helper-validator-identifier" "^7.10.4"
-    "@babel/template" "^7.10.4"
-    "@babel/traverse" "^7.12.1"
-    "@babel/types" "^7.12.1"
+"@babel/helper-function-name@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a"
+  integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==
+  dependencies:
+    "@babel/helper-get-function-arity" "^7.12.13"
+    "@babel/template" "^7.12.13"
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-get-function-arity@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"
+  integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-member-expression-to-functions@^7.12.13":
+  version "7.12.16"
+  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.16.tgz#41e0916b99f8d5f43da4f05d85f4930fa3d62b22"
+  integrity sha512-zYoZC1uvebBFmj1wFAlXwt35JLEgecefATtKp20xalwEK8vHAixLBXTGxNrVGEmTT+gzOThUgr8UEdgtalc1BQ==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-module-imports@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0"
+  integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-module-transforms@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz#01afb052dcad2044289b7b20beb3fa8bd0265bea"
+  integrity sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==
+  dependencies:
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/helper-replace-supers" "^7.12.13"
+    "@babel/helper-simple-access" "^7.12.13"
+    "@babel/helper-split-export-declaration" "^7.12.13"
+    "@babel/helper-validator-identifier" "^7.12.11"
+    "@babel/template" "^7.12.13"
+    "@babel/traverse" "^7.12.13"
+    "@babel/types" "^7.12.13"
     lodash "^4.17.19"
 
-"@babel/helper-optimise-call-expression@^7.10.4":
-  version "7.12.10"
-  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d"
-  integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==
+"@babel/helper-optimise-call-expression@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
+  integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==
   dependencies:
-    "@babel/types" "^7.12.10"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0":
-  version "7.10.4"
-  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
-  integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
+    "@babel/types" "^7.12.13"
 
-"@babel/helper-replace-supers@^7.12.1":
-  version "7.12.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9"
-  integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==
-  dependencies:
-    "@babel/helper-member-expression-to-functions" "^7.12.1"
-    "@babel/helper-optimise-call-expression" "^7.10.4"
-    "@babel/traverse" "^7.12.5"
-    "@babel/types" "^7.12.5"
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.8.0":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz#174254d0f2424d8aefb4dd48057511247b0a9eeb"
+  integrity sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==
 
-"@babel/helper-simple-access@^7.12.1":
-  version "7.12.1"
-  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136"
-  integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==
+"@babel/helper-replace-supers@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz#00ec4fb6862546bd3d0aff9aac56074277173121"
+  integrity sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==
   dependencies:
-    "@babel/types" "^7.12.1"
+    "@babel/helper-member-expression-to-functions" "^7.12.13"
+    "@babel/helper-optimise-call-expression" "^7.12.13"
+    "@babel/traverse" "^7.12.13"
+    "@babel/types" "^7.12.13"
 
-"@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
-  version "7.12.1"
-  resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
-  integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==
+"@babel/helper-simple-access@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4"
+  integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==
   dependencies:
-    "@babel/types" "^7.12.1"
+    "@babel/types" "^7.12.13"
 
-"@babel/helper-split-export-declaration@^7.11.0":
-  version "7.11.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
-  integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==
+"@babel/helper-split-export-declaration@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05"
+  integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==
   dependencies:
-    "@babel/types" "^7.11.0"
+    "@babel/types" "^7.12.13"
 
-"@babel/helper-validator-identifier@^7.10.4":
-  version "7.10.4"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
-  integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
+"@babel/helper-validator-identifier@^7.12.11":
+  version "7.12.11"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
+  integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
 
-"@babel/helpers@^7.12.5":
-  version "7.12.5"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e"
-  integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==
+"@babel/helpers@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.13.tgz#3c75e993632e4dadc0274eae219c73eb7645ba47"
+  integrity sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==
   dependencies:
-    "@babel/template" "^7.10.4"
-    "@babel/traverse" "^7.12.5"
-    "@babel/types" "^7.12.5"
+    "@babel/template" "^7.12.13"
+    "@babel/traverse" "^7.12.13"
+    "@babel/types" "^7.12.13"
 
-"@babel/highlight@^7.10.4":
-  version "7.10.4"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
-  integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
+"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c"
+  integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==
   dependencies:
-    "@babel/helper-validator-identifier" "^7.10.4"
+    "@babel/helper-validator-identifier" "^7.12.11"
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.1.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.7":
-  version "7.12.10"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.10.tgz#824600d59e96aea26a5a2af5a9d812af05c3ae81"
-  integrity sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA==
-
-"@babel/plugin-proposal-optional-chaining@^7.12.7":
-  version "7.12.7"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c"
-  integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.10.4"
-    "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
-    "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.12.16":
+  version "7.12.16"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.16.tgz#cc31257419d2c3189d394081635703f549fc1ed4"
+  integrity sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==
 
 "@babel/plugin-syntax-async-generators@^7.8.4":
   version "7.8.4"
@@ -184,11 +175,11 @@
     "@babel/helper-plugin-utils" "^7.8.0"
 
 "@babel/plugin-syntax-class-properties@^7.8.3":
-  version "7.12.1"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978"
-  integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+  integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.10.4"
+    "@babel/helper-plugin-utils" "^7.12.13"
 
 "@babel/plugin-syntax-import-meta@^7.8.3":
   version "7.10.4"
@@ -239,7 +230,7 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
   integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
@@ -247,42 +238,42 @@
     "@babel/helper-plugin-utils" "^7.8.0"
 
 "@babel/plugin-syntax-top-level-await@^7.8.3":
-  version "7.12.1"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0"
-  integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.3.3":
-  version "7.12.7"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc"
-  integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==
-  dependencies:
-    "@babel/code-frame" "^7.10.4"
-    "@babel/parser" "^7.12.7"
-    "@babel/types" "^7.12.7"
-
-"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5":
-  version "7.12.10"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.10.tgz#2d1f4041e8bf42ea099e5b2dc48d6a594c00017a"
-  integrity sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==
-  dependencies:
-    "@babel/code-frame" "^7.10.4"
-    "@babel/generator" "^7.12.10"
-    "@babel/helper-function-name" "^7.10.4"
-    "@babel/helper-split-export-declaration" "^7.11.0"
-    "@babel/parser" "^7.12.10"
-    "@babel/types" "^7.12.10"
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178"
+  integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/template@^7.12.13", "@babel/template@^7.3.3":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327"
+  integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@babel/parser" "^7.12.13"
+    "@babel/types" "^7.12.13"
+
+"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz#689f0e4b4c08587ad26622832632735fb8c4e0c0"
+  integrity sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@babel/generator" "^7.12.13"
+    "@babel/helper-function-name" "^7.12.13"
+    "@babel/helper-split-export-declaration" "^7.12.13"
+    "@babel/parser" "^7.12.13"
+    "@babel/types" "^7.12.13"
     debug "^4.1.0"
     globals "^11.1.0"
     lodash "^4.17.19"
 
-"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3":
-  version "7.12.10"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.10.tgz#7965e4a7260b26f09c56bcfcb0498af1f6d9b260"
-  integrity sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw==
+"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.3.0", "@babel/types@^7.3.3":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz#8be1aa8f2c876da11a9cf650c0ecf656913ad611"
+  integrity sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==
   dependencies:
-    "@babel/helper-validator-identifier" "^7.10.4"
+    "@babel/helper-validator-identifier" "^7.12.11"
     lodash "^4.17.19"
     to-fast-properties "^2.0.0"
 
@@ -291,36 +282,45 @@
   resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
   integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
 
-"@cliqz/adblocker-content@^1.18.8":
-  version "1.18.8"
-  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.18.8.tgz#96473f14c098a20091298d34a6addcd430aceebd"
-  integrity sha512-YZ1xYBVG3LmxsdTYvTs/Bc7pzCw/Dy4HFo6N+oIuGP+Le/0aGSkACUl3ue5I2+Cx0WmL0Z8I4QonTKDc06HR+A==
+"@cliqz/adblocker-content@^1.20.0":
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.20.0.tgz#fcfa2845a577ba8d9af282afbae2fc437b3f1c70"
+  integrity sha512-KcokmK2B+tAnVMi7nGHgzXUVf78wAODG1Uk+K3tBPf9VAo3mwldYZ472uTj6LUfZv5oeTwe4PwfmPWXWZy3Eew==
+  dependencies:
+    "@cliqz/adblocker-extended-selectors" "^1.20.0"
 
-"@cliqz/adblocker-electron-preload@^1.18.8":
-  version "1.18.8"
-  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.18.8.tgz#c2058647e015b6f61c222e7d58040347324c63b0"
-  integrity sha512-/FAzyhNUj+8fwqSGth7ndaC+8huEANvVquYkDVmjM38uryxFgcJJI6Bij1l1zABIbskAaSN4G4RI3oERyd9/KQ==
+"@cliqz/adblocker-electron-preload@^1.20.0":
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.20.0.tgz#997b694fbb1b1206e04b1fd570690234cc7ef630"
+  integrity sha512-brNQFjIoGTMClmFphtoK0EnjOlbqfxr6sA3CrOZiHfG0e07Id5GoU95re8+s8xA+/nd1GrJl/k5/b4aks+S9Gw==
   dependencies:
-    "@cliqz/adblocker-content" "^1.18.8"
+    "@cliqz/adblocker-content" "^1.20.0"
 
-"@cliqz/adblocker-electron@^1.18.8":
-  version "1.18.8"
-  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.18.8.tgz#5f697c5dc65cd936b3908078a6e4516ec995567a"
-  integrity sha512-CrsFjSwenWQogsAg4sHFaXZbu7hzs9dMdsZM5wxb+5QfZ3MSH3PBYAeAUnsmP3UOTZ423+6ErOUE1vzj3UrK9w==
+"@cliqz/adblocker-electron@^1.20.0":
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.20.0.tgz#bacfb9feaf1d3dab339b992e3defa111a4b5ed3c"
+  integrity sha512-zD881g+YxxO4BM6NB5qZtSevg9Cj7QtlCJ4tkcKZnD9MDQsNXQVIFFEWwqhd00kLkTUS0+jT0px9b81cigAPNg==
   dependencies:
-    "@cliqz/adblocker" "^1.18.8"
-    "@cliqz/adblocker-electron-preload" "^1.18.8"
+    "@cliqz/adblocker" "^1.20.0"
+    "@cliqz/adblocker-electron-preload" "^1.20.0"
     tldts-experimental "^5.6.21"
 
-"@cliqz/adblocker@^1.18.8":
-  version "1.18.8"
-  resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.18.8.tgz#f6e5724fe6573c2e68f2545d90bcce3e1ecfbae9"
-  integrity sha512-19m0GhlOcdSvQ/BqVuaMgbYkgQ4ys8koBRW4K7Ua4V5fFWL0t8ckdcZ/gBOqwECS2m8agXSpEbbyJjNmHBHpMQ==
+"@cliqz/adblocker-extended-selectors@^1.20.0":
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.20.0.tgz#95ede657b670f627b39f92d85a97093cecee6ffe"
+  integrity sha512-dnBPIngGe1eDWvYX49eP2yyCE2AY1QD5E+8SaXW6lslnjS0GQnkcXCAkkGR2am4Qdk78HAiWTXL65Zt9hdkupA==
+
+"@cliqz/adblocker@^1.20.0":
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.20.0.tgz#514746e9ee72fcd886f1e2e1aaf13b28fc63f232"
+  integrity sha512-lkEj0Pj1ikwMURrvoFv0YnLfaXFuJI+jexI7zdh4fDmlwRppzDDgOhPXgCczoAlYacJk5x2mf7pan6JybRD9Kw==
   dependencies:
+    "@cliqz/adblocker-content" "^1.20.0"
+    "@cliqz/adblocker-extended-selectors" "^1.20.0"
     "@remusao/guess-url-type" "^1.1.2"
     "@remusao/small" "^1.1.2"
     "@remusao/smaz" "^1.7.1"
-    "@types/chrome" "^0.0.126"
+    "@types/chrome" "^0.0.128"
     "@types/firefox-webext-browser" "^82.0.0"
     tldts-experimental "^5.6.21"
 
@@ -341,25 +341,36 @@
     ajv-keywords "^3.4.1"
 
 "@electron/get@^1.0.1":
-  version "1.12.2"
-  resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3"
-  integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==
+  version "1.12.4"
+  resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz#a5971113fc1bf8fa12a8789dc20152a7359f06ab"
+  integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==
   dependencies:
     debug "^4.1.1"
     env-paths "^2.2.0"
     fs-extra "^8.1.0"
     got "^9.6.0"
     progress "^2.0.3"
-    sanitize-filename "^1.6.2"
+    semver "^6.2.0"
     sumchecker "^3.0.1"
   optionalDependencies:
     global-agent "^2.0.2"
     global-tunnel-ng "^2.7.1"
 
-"@eslint/eslintrc@^0.2.2":
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76"
-  integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==
+"@electron/universal@1.0.4":
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.4.tgz#231ac246c39d45b80e159bd21c3f9027dcaa10f5"
+  integrity sha512-ajZoumi4XwqwmZe8YVhu4XGkZBCPyWZsVCQONPTIe9TUlleSN+dic3YpXlaWcilx/HOzTdldTKtabNTeI0gDoA==
+  dependencies:
+    "@malept/cross-spawn-promise" "^1.1.0"
+    asar "^3.0.3"
+    debug "^4.3.1"
+    dir-compare "^2.4.0"
+    fs-extra "^9.0.1"
+
+"@eslint/eslintrc@^0.3.0":
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318"
+  integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==
   dependencies:
     ajv "^6.12.4"
     debug "^4.1.1"
@@ -368,7 +379,7 @@
     ignore "^4.0.6"
     import-fresh "^3.2.1"
     js-yaml "^3.13.1"
-    lodash "^4.17.19"
+    lodash "^4.17.20"
     minimatch "^3.0.4"
     strip-json-comments "^3.1.1"
 
@@ -384,9 +395,9 @@
     resolve-from "^5.0.0"
 
 "@istanbuljs/schema@^0.1.2":
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
-  integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
+  version "0.1.3"
+  resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+  integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
 
 "@jest/console@^26.6.2":
   version "26.6.2"
@@ -559,40 +570,47 @@
     "@types/yargs" "^15.0.0"
     chalk "^4.0.0"
 
+"@malept/cross-spawn-promise@^1.1.0":
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d"
+  integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==
+  dependencies:
+    cross-spawn "^7.0.1"
+
 "@remusao/guess-url-type@^1.1.2":
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/@remusao/guess-url-type/-/guess-url-type-1.2.0.tgz#fb1402b4c47266161501704d74427b8d49e4b3e4"
-  integrity sha512-alnTonifD/Ii/0pI9EA5nVgdk/eOihU4OOYMIXq4U4cS0NocnaYCozqV4OVkmArPPnz9s4ap4GM1ODftBpBW0w==
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@remusao/guess-url-type/-/guess-url-type-1.2.1.tgz#b3e7c32abdf98d0fb4f93cc67cad580b5fe4ba57"
+  integrity sha512-rbOqre2jW8STjheOsOaQHLgYBaBZ9Owbdt8NO7WvNZftJlaG3y/K9oOkl8ZUpuFBisIhmBuMEW6c+YrQl5inRA==
 
 "@remusao/small@^1.1.2":
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/@remusao/small/-/small-1.2.0.tgz#1f56d59418d4c121cd8814e4bea5ed95dcf4b7a9"
-  integrity sha512-18Bwa/EjqQ5WfdERqmG3YgOohO7J2sS8+v31JgmYnEg3wAtcAOPVBRkD24IzVS0eJOQk1P2Yd++aP0ldirk7MQ==
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@remusao/small/-/small-1.2.1.tgz#63bfe4548832289f94ac868a0c305970c9a0e5f9"
+  integrity sha512-7MjoGt0TJMVw1GPKgWq6SJPws1SLsUXQRa43Umht+nkyw2jnpy3WpiLNqGdwo5rHr5Wp9B2W/Pm5RQp656UJdw==
 
-"@remusao/smaz-compress@^1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@remusao/smaz-compress/-/smaz-compress-1.9.0.tgz#ec79c87f5780865da616cd214b3b8978807d1e9a"
-  integrity sha512-PAze3aYCcUfX+a6E6sVMoxVtUkeQgX+oiY6DqbiRkNtUqzjtcl9JVyEAWGbBEgOuv2jdEATAlyIf0W18NKDEnw==
+"@remusao/smaz-compress@^1.9.1":
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/@remusao/smaz-compress/-/smaz-compress-1.9.1.tgz#fc75eaf9bcac2d58bc4c3d518183a7cb9612d275"
+  integrity sha512-E2f48TwloQu3r6BdLOGF2aczeH7bJ/32oJGqvzT9SKur0cuUnLcZ7ZXP874E2fwmdE+cXzfC7bKzp79cDnmeyw==
   dependencies:
-    "@remusao/trie" "^1.4.0"
+    "@remusao/trie" "^1.4.1"
 
-"@remusao/smaz-decompress@^1.9.0":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@remusao/smaz-decompress/-/smaz-decompress-1.9.0.tgz#9b3fba7c8e0c2045de63fd0ad0e5b37b447bb7cf"
-  integrity sha512-7uXEX8cSMWy+ai7j8sJpVQuY+CHj2e5D+PjxY//4wbAJlw1a/X+CYPt7BuxLBzpVoioB5Y7++1USjCkrw0pl8g==
+"@remusao/smaz-decompress@^1.9.1":
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/@remusao/smaz-decompress/-/smaz-decompress-1.9.1.tgz#8094f997e8fb591a678cda9cf08c209c825eba5b"
+  integrity sha512-TfjKKprYe3n47od8auhvJ/Ikj9kQTbDTe71ynKlxslrvvUhlIV3VQSuwYuMWMbdz1fIs0H/fxCN1Z8/H3km6/A==
 
 "@remusao/smaz@^1.7.1":
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/@remusao/smaz/-/smaz-1.9.0.tgz#d02c2fb007483d4b4d050fb2fdaf523fcef08d40"
-  integrity sha512-HMMPam5jLhP0ymtMUQ8sm2p9zwDJwHD09krORXN/l/TR+NlSCdU2gSAoVNr9idD9OmMGfeXPFQYCofEUZfjbTQ==
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/@remusao/smaz/-/smaz-1.9.1.tgz#a2b9b045385f81e1615a68d932b7cc8b04c9db8d"
+  integrity sha512-e6BLuP8oaXCZ9+v46Is4ilAZ/Vq6YLgmBP204Ixgk1qTjXmqvFYG7+AS7v9nsZdGOy96r9DWGFbbDVgMxwu1rA==
   dependencies:
-    "@remusao/smaz-compress" "^1.9.0"
-    "@remusao/smaz-decompress" "^1.9.0"
+    "@remusao/smaz-compress" "^1.9.1"
+    "@remusao/smaz-decompress" "^1.9.1"
 
-"@remusao/trie@^1.4.0":
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/@remusao/trie/-/trie-1.4.0.tgz#b439210445339f0ca95ff200d98b898d431a4ce1"
-  integrity sha512-mIr0m4/xj6qxHtJjAFb4I8tXXmjTniUYTB2Hv+xK5hXf/YWocEPlJ+V31bv5HJwo6ly64DUnZDBeBxolT3WE7w==
+"@remusao/trie@^1.4.1":
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/@remusao/trie/-/trie-1.4.1.tgz#755d09f8a007476334e611f42719b2d581f00720"
+  integrity sha512-yvwa+aCyYI/UjeD39BnpMypG8N06l86wIDW1/PAc6ihBRnodIfZDwccxQN3n1t74wduzaz74m4ZMHZnB06567Q==
 
 "@sindresorhus/is@^0.14.0":
   version "0.14.0"
@@ -600,9 +618,9 @@
   integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
 
 "@sinonjs/commons@^1.7.0":
-  version "1.8.1"
-  resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217"
-  integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==
+  version "1.8.2"
+  resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b"
+  integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==
   dependencies:
     type-detect "4.0.8"
 
@@ -653,10 +671,10 @@
   dependencies:
     "@babel/types" "^7.3.0"
 
-"@types/chrome@^0.0.126":
-  version "0.0.126"
-  resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.126.tgz#f9f3436712f0c7c12ea9798abc9b95575ad7b23a"
-  integrity sha512-191z7uoyfbGU+z7/m45j9XbWugWqVHVPMM4hJV5cZ+3YzGCT9wFjMUHO3Wr3Xvo8aVodvRNu28u7lvEaAnfbzg==
+"@types/chrome@^0.0.128":
+  version "0.0.128"
+  resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.128.tgz#5dbd8b2539a367353fbe4386f119b510105f8b6a"
+  integrity sha512-eGc599TDtersMBW1cSnExHm0IHrXrO5xdk6Sa2Dq30ED+hR1rpT1ez0NNcCgvGO52nmktGfyvd3Uyquzv3LL4g==
   dependencies:
     "@types/filesystem" "*"
     "@types/har-format" "*"
@@ -683,17 +701,25 @@
   resolved "https://registry.yarnpkg.com/@types/firefox-webext-browser/-/firefox-webext-browser-82.0.0.tgz#4d0f5cfebd7321d2cbf0ccfb6032570f0138b958"
   integrity sha512-zKHePkjMx42KIUUZCPcUiyu1tpfQXH9VR4iDYfns3HvmKVJzt/TAFT+DFVroos8BI9RH78YgF3Hi/wlC6R6cKA==
 
-"@types/fs-extra@^9.0.1":
-  version "9.0.5"
-  resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.5.tgz#2afb76a43a4bef80a363b94b314d0ca1694fc4f8"
-  integrity sha512-wr3t7wIW1c0A2BIJtdVp4EflriVaVVAsCAIHVzzh8B+GiFv9X1xeJjCs4upRXtzp7kQ6lP5xvskjoD4awJ1ZeA==
+"@types/fs-extra@^9.0.5":
+  version "9.0.7"
+  resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.7.tgz#a9ef2ffdab043def080c5bec94c03402f793577f"
+  integrity sha512-YGq2A6Yc3bldrLUlm17VNWOnUbnEzJ9CMgOeLFtQF3HOCN5lQBO8VyjG00a5acA5NNSM30kHVGp1trZgnVgi1Q==
+  dependencies:
+    "@types/node" "*"
+
+"@types/glob@^7.1.1":
+  version "7.1.3"
+  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183"
+  integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==
   dependencies:
+    "@types/minimatch" "*"
     "@types/node" "*"
 
 "@types/graceful-fs@^4.1.2":
-  version "4.1.4"
-  resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz#4ff9f641a7c6d1a3508ff88bc3141b152772e753"
-  integrity sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15"
+  integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==
   dependencies:
     "@types/node" "*"
 
@@ -721,40 +747,58 @@
   dependencies:
     "@types/istanbul-lib-report" "*"
 
+"@types/minimatch@*":
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
+  integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
+
 "@types/node@*":
-  version "14.14.13"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.13.tgz#9e425079799322113ae8477297ae6ef51b8e0cdf"
-  integrity sha512-vbxr0VZ8exFMMAjCW8rJwaya0dMCDyYW2ZRdTyjtrCvJoENMpdUHOT/eTzvgyA5ZnqRZ/sI0NwqAxNHKYokLJQ==
+  version "14.14.27"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.27.tgz#c7127f8da0498993e13b1a42faf1303d3110d2f2"
+  integrity sha512-Ecfmo4YDQPwuqTCl1yBxLV5ihKfRlkBmzUEDcfIRvDxOTGQEeikr317Ln7Gcv0tjA8dVgKI3rniqW2G1OyKDng==
 
 "@types/node@^12.0.12":
-  version "12.19.9"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.9.tgz#990ad687ad8b26ef6dcc34a4f69c33d40c95b679"
-  integrity sha512-yj0DOaQeUrk3nJ0bd3Y5PeDRJ6W0r+kilosLA+dzF3dola/o9hxhMSg2sFvVcA2UHS5JSOsZp4S0c1OEXc4m1Q==
+  version "12.20.0"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.0.tgz#692dfdecd6c97f5380c42dd50f19261f9f604deb"
+  integrity sha512-0/41wHcurotvSOTHQUFkgL702c3pyWR1mToSrrX3pGPvGfpHTv3Ksx0M4UVuU5VJfjVb62Eyr1eKO1tWNUCg2Q==
 
 "@types/normalize-package-data@^2.4.0":
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
   integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
 
+"@types/plist@^3.0.1":
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01"
+  integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==
+  dependencies:
+    "@types/node" "*"
+    xmlbuilder ">=11.0.1"
+
 "@types/prettier@^2.0.0":
-  version "2.1.5"
-  resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.5.tgz#b6ab3bba29e16b821d84e09ecfaded462b816b00"
-  integrity sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.1.tgz#374e31645d58cb18a07b3ecd8e9dede4deb2cccd"
+  integrity sha512-DxZZbyMAM9GWEzXL+BMZROWz9oo6A9EilwwOMET2UVu2uZTqMWS5S69KVtuVKaRjCUpcrOXRalet86/OpG4kqw==
 
 "@types/stack-utils@^2.0.0":
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff"
   integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==
 
+"@types/verror@^1.10.3":
+  version "1.10.4"
+  resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz#805c0612b3a0c124cf99f517364142946b74ba3b"
+  integrity sha512-OjJdqx6QlbyZw9LShPwRW+Kmiegeg3eWNI41MQQKaG3vjdU2L9SRElntM51HmHBY1cu7izxQJ1lMYioQh3XMBg==
+
 "@types/yargs-parser@*":
-  version "15.0.0"
-  resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d"
-  integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==
+  version "20.2.0"
+  resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9"
+  integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==
 
-"@types/yargs@^15.0.0", "@types/yargs@^15.0.5":
-  version "15.0.11"
-  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.11.tgz#361d7579ecdac1527687bcebf9946621c12ab78c"
-  integrity sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==
+"@types/yargs@^15.0.0", "@types/yargs@^15.0.12":
+  version "15.0.13"
+  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc"
+  integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==
   dependencies:
     "@types/yargs-parser" "*"
 
@@ -791,7 +835,7 @@ ajv-keywords@^3.4.1:
   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
   integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
 
-ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4:
+ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4:
   version "6.12.6"
   resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
   integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -801,6 +845,16 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
+ajv@^7.0.2:
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.1.0.tgz#f982ea7933dc7f1012eae9eec5a86687d805421b"
+  integrity sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    json-schema-traverse "^1.0.0"
+    require-from-string "^2.0.2"
+    uri-js "^4.2.2"
+
 ansi-align@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb"
@@ -820,6 +874,11 @@ ansi-escapes@^4.2.1:
   dependencies:
     type-fest "^0.11.0"
 
+ansi-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+  integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
 ansi-regex@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
@@ -830,7 +889,7 @@ ansi-regex@^5.0.0:
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
   integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
 
-ansi-styles@^3.2.0, ansi-styles@^3.2.1:
+ansi-styles@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
   integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
@@ -860,37 +919,38 @@ anymatch@^3.0.3:
     normalize-path "^3.0.0"
     picomatch "^2.0.4"
 
-app-builder-bin@3.5.10:
-  version "3.5.10"
-  resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz#4a7f9999fccc0c435b6284ae1366bc76a17c4a7d"
-  integrity sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ==
+app-builder-bin@3.5.12:
+  version "3.5.12"
+  resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.12.tgz#bbe174972cc1f481f73d6d92ad47a8b4c7eb4530"
+  integrity sha512-lQARM2AielmFoBeIo6LZigAe+58Wwe07ZWkt+wVeDxzyieNmeWjlvz/V5dKzinydwdHd+CNswN86sww46yijjA==
 
-app-builder-lib@22.9.1:
-  version "22.9.1"
-  resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.9.1.tgz#ccb8f1a02b628514a5dfab9401fa2a976689415c"
-  integrity sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A==
+app-builder-lib@22.10.4:
+  version "22.10.4"
+  resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.10.4.tgz#3fc70821b76beb9c8279d9de22960ef2174da153"
+  integrity sha512-q7B1cr8Ry4a7o08EKShLfwsnIVf5By7YhVwcoqgEwPKxtoj1qF0kB4wyBP79rJylYi0Zj2cSkJJ/gD/ef9xhoQ==
   dependencies:
     "7zip-bin" "~5.0.3"
     "@develar/schema-utils" "~2.6.5"
+    "@electron/universal" "1.0.4"
     async-exit-hook "^2.0.1"
     bluebird-lst "^1.0.9"
-    builder-util "22.9.1"
-    builder-util-runtime "8.7.2"
+    builder-util "22.10.4"
+    builder-util-runtime "8.7.3"
     chromium-pickle-js "^0.2.0"
-    debug "^4.3.0"
+    debug "^4.3.1"
     ejs "^3.1.5"
-    electron-publish "22.9.1"
+    electron-publish "22.10.4"
     fs-extra "^9.0.1"
-    hosted-git-info "^3.0.5"
+    hosted-git-info "^3.0.7"
     is-ci "^2.0.0"
     isbinaryfile "^4.0.6"
-    js-yaml "^3.14.0"
+    js-yaml "^3.14.1"
     lazy-val "^1.0.4"
     minimatch "^3.0.4"
-    normalize-package-data "^2.5.0"
+    normalize-package-data "^3.0.0"
     read-config-file "6.0.0"
     sanitize-filename "^1.6.3"
-    semver "^7.3.2"
+    semver "^7.3.4"
     temp-file "^3.3.7"
 
 archiver-utils@^2.1.0:
@@ -909,10 +969,10 @@ archiver-utils@^2.1.0:
     normalize-path "^3.0.0"
     readable-stream "^2.0.0"
 
-archiver@^5.0.2:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.1.0.tgz#05b0f6f7836f3e6356a0532763d2bb91017a7e37"
-  integrity sha512-iKuQUP1nuKzBC2PFlGet5twENzCfyODmvkxwDV0cEFXavwcLrIW5ssTuHi9dyTPvpWr6Faweo2eQaQiLIwyXTA==
+archiver@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.2.0.tgz#25aa1b3d9febf7aec5b0f296e77e69960c26db94"
+  integrity sha512-QEAKlgQuAtUxKeZB9w5/ggKXh21bZS+dzzuQ0RPBC20qtDCbTyzqmisoeJP46MP39fg4B4IcyvR+yeyEBdblsQ==
   dependencies:
     archiver-utils "^2.1.0"
     async "^3.2.0"
@@ -949,6 +1009,18 @@ array-unique@^0.3.2:
   resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
   integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
 
+asar@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz#1fef03c2d6d2de0cbad138788e4f7ae03b129c7b"
+  integrity sha512-k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw==
+  dependencies:
+    chromium-pickle-js "^0.2.0"
+    commander "^5.0.0"
+    glob "^7.1.6"
+    minimatch "^3.0.4"
+  optionalDependencies:
+    "@types/glob" "^7.1.1"
+
 asn1@~0.2.3:
   version "0.2.4"
   resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
@@ -966,10 +1038,10 @@ assign-symbols@^1.0.0:
   resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
   integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
 
-astral-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
-  integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+astral-regex@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
 
 async-exit-hook@^2.0.1:
   version "2.0.1"
@@ -1047,9 +1119,9 @@ babel-plugin-jest-hoist@^26.6.2:
     "@types/babel__traverse" "^7.0.6"
 
 babel-preset-current-node-syntax@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz#cf5feef29551253471cfa82fc8e0f5063df07a77"
-  integrity sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
+  integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
   dependencies:
     "@babel/plugin-syntax-async-generators" "^7.8.4"
     "@babel/plugin-syntax-bigint" "^7.8.3"
@@ -1077,7 +1149,7 @@ balanced-match@^1.0.0:
   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
   integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
 
-base64-js@^1.3.1:
+base64-js@^1.2.3, base64-js@^1.3.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
   integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -1103,9 +1175,9 @@ bcrypt-pbkdf@^1.0.0:
     tweetnacl "^0.14.3"
 
 bl@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489"
-  integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+  integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
   dependencies:
     buffer "^5.5.0"
     inherits "^2.0.4"
@@ -1128,19 +1200,19 @@ boolean@^3.0.1:
   resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.2.tgz#df1baa18b6a2b0e70840475e1d93ec8fe75b2570"
   integrity sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==
 
-boxen@^4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64"
-  integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==
+boxen@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.0.tgz#64fe9b16066af815f51057adcc800c3730120854"
+  integrity sha512-5bvsqw+hhgUi3oYGK0Vf4WpIkyemp60WBInn7+WNfoISzAqk/HX4L7WNROq38E6UR/y3YADpv6pEm4BfkeEAdA==
   dependencies:
     ansi-align "^3.0.0"
-    camelcase "^5.3.1"
-    chalk "^3.0.0"
-    cli-boxes "^2.2.0"
-    string-width "^4.1.0"
-    term-size "^2.1.0"
-    type-fest "^0.8.1"
+    camelcase "^6.2.0"
+    chalk "^4.1.0"
+    cli-boxes "^2.2.1"
+    string-width "^4.2.0"
+    type-fest "^0.20.2"
     widest-line "^3.1.0"
+    wrap-ansi "^7.0.0"
 
 brace-expansion@^1.1.7:
   version "1.1.11"
@@ -1190,12 +1262,17 @@ buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3:
   resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
   integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
 
+buffer-equal@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe"
+  integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74=
+
 buffer-from@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
   integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
 
-buffer@^5.5.0:
+buffer@^5.1.0, buffer@^5.5.0:
   version "5.7.1"
   resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
   integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
@@ -1203,30 +1280,30 @@ buffer@^5.5.0:
     base64-js "^1.3.1"
     ieee754 "^1.1.13"
 
-builder-util-runtime@8.7.2:
-  version "8.7.2"
-  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz#d93afc71428a12789b437e13850e1fa7da956d72"
-  integrity sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==
+builder-util-runtime@8.7.3:
+  version "8.7.3"
+  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.3.tgz#0aaafa52d25295c939496f62231ca9ff06c30e40"
+  integrity sha512-1Q2ReBqFblimF5g/TLg2+0M5Xzv0Ih5LxJ/BMWXvEy/e6pQKeeEpbkPMGsN6OiQgkygaZo5VXCXIjOkOQG5EoQ==
   dependencies:
-    debug "^4.1.1"
+    debug "^4.3.2"
     sax "^1.2.4"
 
-builder-util@22.9.1:
-  version "22.9.1"
-  resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.9.1.tgz#b7087a5cde477f90d718ca5d7fafb6ae261b16af"
-  integrity sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw==
+builder-util@22.10.4:
+  version "22.10.4"
+  resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.10.4.tgz#54e8be83dd0dec28073d866ff087cee8e7ce6cf6"
+  integrity sha512-XdcbFG3otEkNRKxW2wS1npNviCb/IrzusEQ55lMB+6YEHxBOfTbf8vnPt0pDumfwmxls9xczABU+mfqN/W4uDw==
   dependencies:
     "7zip-bin" "~5.0.3"
     "@types/debug" "^4.1.5"
-    "@types/fs-extra" "^9.0.1"
-    app-builder-bin "3.5.10"
+    "@types/fs-extra" "^9.0.5"
+    app-builder-bin "3.5.12"
     bluebird-lst "^1.0.9"
-    builder-util-runtime "8.7.2"
+    builder-util-runtime "8.7.3"
     chalk "^4.1.0"
-    debug "^4.3.0"
+    debug "^4.3.1"
     fs-extra "^9.0.1"
     is-ci "^2.0.0"
-    js-yaml "^3.14.0"
+    js-yaml "^3.14.1"
     source-map-support "^0.5.19"
     stat-mode "^1.0.0"
     temp-file "^3.3.7"
@@ -1269,7 +1346,7 @@ camelcase@^5.0.0, camelcase@^5.3.1:
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
   integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
 
-camelcase@^6.0.0:
+camelcase@^6.0.0, camelcase@^6.2.0:
   version "6.2.0"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
   integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
@@ -1295,14 +1372,6 @@ chalk@^2.0.0, chalk@^2.4.2:
     escape-string-regexp "^1.0.5"
     supports-color "^5.3.0"
 
-chalk@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
-  integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
-  dependencies:
-    ansi-styles "^4.1.0"
-    supports-color "^7.1.0"
-
 chalk@^4.0.0, chalk@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
@@ -1341,11 +1410,19 @@ class-utils@^0.3.5:
     isobject "^3.0.0"
     static-extend "^0.1.1"
 
-cli-boxes@^2.2.0:
+cli-boxes@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
   integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==
 
+cli-truncate@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086"
+  integrity sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==
+  dependencies:
+    slice-ansi "^1.0.0"
+    string-width "^2.0.0"
+
 cliui@^6.0.0:
   version "6.0.0"
   resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
@@ -1413,6 +1490,11 @@ color-name@~1.1.4:
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
   integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
+colors@1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
+  integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
+
 combined-stream@^1.0.6, combined-stream@~1.0.6:
   version "1.0.8"
   resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -1420,6 +1502,18 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
   dependencies:
     delayed-stream "~1.0.0"
 
+commander@2.9.0:
+  version "2.9.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
+  integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=
+  dependencies:
+    graceful-readlink ">= 1.0.0"
+
+commander@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
+  integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+
 component-emitter@^1.2.1:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
@@ -1483,9 +1577,9 @@ copy-descriptor@^0.1.0:
   integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
 
 core-js@^3.6.5:
-  version "3.8.1"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.1.tgz#f51523668ac8a294d1285c3b9db44025fda66d47"
-  integrity sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==
+  version "3.8.3"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz#c21906e1f14f3689f93abcc6e26883550dd92dd0"
+  integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==
 
 core-util-is@1.0.2, core-util-is@~1.0.0:
   version "1.0.2"
@@ -1501,13 +1595,20 @@ crc-32@^1.2.0:
     printj "~1.1.0"
 
 crc32-stream@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.1.tgz#0f047d74041737f8a55e86837a1b826bd8ab0067"
-  integrity sha512-FN5V+weeO/8JaXsamelVYO1PHyeCsuL3HcG4cqsj0ceARcocxalaShCsohZMSAF+db7UYFwBy1rARK/0oFItUw==
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007"
+  integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==
   dependencies:
     crc-32 "^1.2.0"
     readable-stream "^3.4.0"
 
+crc@^3.8.0:
+  version "3.8.0"
+  resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6"
+  integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==
+  dependencies:
+    buffer "^5.1.0"
+
 cross-spawn@^6.0.0:
   version "6.0.5"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@@ -1519,7 +1620,7 @@ cross-spawn@^6.0.0:
     shebang-command "^1.2.0"
     which "^1.2.9"
 
-cross-spawn@^7.0.0, cross-spawn@^7.0.2:
+cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2:
   version "7.0.3"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
   integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -1550,10 +1651,10 @@ cssstyle@^2.2.0:
   dependencies:
     cssom "~0.3.6"
 
-darkreader@^4.9.26:
-  version "4.9.26"
-  resolved "https://registry.yarnpkg.com/darkreader/-/darkreader-4.9.26.tgz#ad92139742f22fc406ae14d12ec6e5672a7eedde"
-  integrity sha512-8Mixd/u3VTXEjld7dl+Rtz6NvHkCDpp9JweZemLsxtS9o00YxRDLTH+lkJTGg2jD+qOQblh7ahyLvEby5JBNDw==
+darkreader@^4.9.27:
+  version "4.9.27"
+  resolved "https://registry.yarnpkg.com/darkreader/-/darkreader-4.9.27.tgz#69b641d6a3c22b07fb0424406dfd9a3661b37197"
+  integrity sha512-DG8zsicuCbAYKaKvLUaiikeei5jN5dIpe0jyaPw4kDa2L5zVnWc/ZxNUYOFriKVAmicwqE5gH5EOfyI0MVt3KA==
 
 dashdash@^1.12.0:
   version "1.14.1"
@@ -1578,13 +1679,20 @@ debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
   dependencies:
     ms "2.0.0"
 
-debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.0:
+debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
   version "4.3.1"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
   integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
   dependencies:
     ms "2.1.2"
 
+debug@^4.3.2:
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
+  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+  dependencies:
+    ms "2.1.2"
+
 decamelize@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -1676,17 +1784,44 @@ diff-sequences@^26.6.2:
   resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1"
   integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==
 
-dmg-builder@22.9.1:
-  version "22.9.1"
-  resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.9.1.tgz#64647224f37ee47fc9bd01947c21cc010a30511f"
-  integrity sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ==
+dir-compare@^2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz#785c41dc5f645b34343a4eafc50b79bac7f11631"
+  integrity sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==
+  dependencies:
+    buffer-equal "1.0.0"
+    colors "1.0.3"
+    commander "2.9.0"
+    minimatch "3.0.4"
+
+dmg-builder@22.10.4:
+  version "22.10.4"
+  resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.10.4.tgz#8dab30754346791eb728091359558fd4a8dbb45f"
+  integrity sha512-+28HZgKAuyCQnQwLSAwkHUqtMB/egHF5ACUABCB4Nev02/ZfjFPUTF/WloTaEbue34zLLUGxPXh+BJF8Xw26ow==
   dependencies:
-    app-builder-lib "22.9.1"
-    builder-util "22.9.1"
+    app-builder-lib "22.10.4"
+    builder-util "22.10.4"
     fs-extra "^9.0.1"
     iconv-lite "^0.6.2"
-    js-yaml "^3.14.0"
+    js-yaml "^3.14.1"
     sanitize-filename "^1.6.3"
+  optionalDependencies:
+    dmg-license "^1.0.8"
+
+dmg-license@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.8.tgz#d52e234815f1a07a59706e5f2a2fea71991cf784"
+  integrity sha512-47GOb6b4yVzpovXC34heXElpH++ICg9GuWBeOTaokUNLAoAdWpE4VehudYEEtu96j2jXsgQWYf78nW7r+0Y3eg==
+  dependencies:
+    "@types/plist" "^3.0.1"
+    "@types/verror" "^1.10.3"
+    ajv "^6.10.0"
+    cli-truncate "^1.1.0"
+    crc "^3.8.0"
+    iconv-corefoundation "^1.1.5"
+    plist "^3.0.1"
+    smart-buffer "^4.0.2"
+    verror "^1.10.0"
 
 doctrine@^3.0.0:
   version "3.0.0"
@@ -1733,50 +1868,50 @@ ecc-jsbn@~0.1.1:
     safer-buffer "^2.1.0"
 
 ejs@^3.1.5:
-  version "3.1.5"
-  resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b"
-  integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==
+  version "3.1.6"
+  resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a"
+  integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==
   dependencies:
     jake "^10.6.1"
 
-electron-builder@^22.9.1:
-  version "22.9.1"
-  resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.9.1.tgz#a2962db6f2757bc01d02489f38fafe0809f68f60"
-  integrity sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA==
+electron-builder@^22.10.4:
+  version "22.10.4"
+  resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.10.4.tgz#e1f400cf41ebb632fbf79aa86c5e0ab1ea1ed7e5"
+  integrity sha512-V+JtiizJd3kt24TT+0OHG7+oPAzjhhjmQVn9G6OC2WE7VBJxrDuD6lMVRgo6WlU8uvDCh7fTRUsdh0Tnu0GeQA==
   dependencies:
-    "@types/yargs" "^15.0.5"
-    app-builder-lib "22.9.1"
+    "@types/yargs" "^15.0.12"
+    app-builder-lib "22.10.4"
     bluebird-lst "^1.0.9"
-    builder-util "22.9.1"
-    builder-util-runtime "8.7.2"
+    builder-util "22.10.4"
+    builder-util-runtime "8.7.3"
     chalk "^4.1.0"
-    dmg-builder "22.9.1"
+    dmg-builder "22.10.4"
     fs-extra "^9.0.1"
     is-ci "^2.0.0"
     lazy-val "^1.0.4"
     read-config-file "6.0.0"
     sanitize-filename "^1.6.3"
-    update-notifier "^4.1.1"
-    yargs "^16.0.3"
+    update-notifier "^5.0.1"
+    yargs "^16.2.0"
 
-electron-publish@22.9.1:
-  version "22.9.1"
-  resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.9.1.tgz#7cc76ac4cc53efd29ee31c1e5facb9724329068e"
-  integrity sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w==
+electron-publish@22.10.4:
+  version "22.10.4"
+  resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.10.4.tgz#944b00aa6a7746c31ce900ffd8106d243326dca8"
+  integrity sha512-cjVM0+9DQoV4TWfH8lVWoelJ89O2i5yDARVp5GCMHrB43XEU0Nr5eKYysgsbOSnZk5W8z1vfGpFWHj+AeAEDYg==
   dependencies:
-    "@types/fs-extra" "^9.0.1"
+    "@types/fs-extra" "^9.0.5"
     bluebird-lst "^1.0.9"
-    builder-util "22.9.1"
-    builder-util-runtime "8.7.2"
+    builder-util "22.10.4"
+    builder-util-runtime "8.7.3"
     chalk "^4.1.0"
     fs-extra "^9.0.1"
     lazy-val "^1.0.4"
-    mime "^2.4.6"
+    mime "^2.4.7"
 
-electron@^11.0.3:
-  version "11.1.0"
-  resolved "https://registry.yarnpkg.com/electron/-/electron-11.1.0.tgz#8dfdf579d1eb79feef3e3d2937fc022e72129c90"
-  integrity sha512-RFAhR/852VMaRd9NSe7jprwSoG9dLc6u1GwnqRWg+/3cy/8Zrwt1Betw1lXiZH7hGuB9K2cqju83Xv5Pq5ZSGA==
+electron@^11.2.1:
+  version "11.2.3"
+  resolved "https://registry.yarnpkg.com/electron/-/electron-11.2.3.tgz#8ad1d9858436cfca0e2e5ea7fea326794ae58ebb"
+  integrity sha512-6yxOc42nDAptHKNlUG/vcOh2GI9x2fqp2nQbZO0/3sz2CrwsJkwR3i3oMN9XhVJaqI7GK1vSCJz0verOkWlXcQ==
   dependencies:
     "@electron/get" "^1.0.1"
     "@types/node" "^12.0.12"
@@ -1895,13 +2030,13 @@ eslint-visitor-keys@^2.0.0:
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
   integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
 
-eslint@^7.15.0:
-  version "7.15.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.15.0.tgz#eb155fb8ed0865fcf5d903f76be2e5b6cd7e0bc7"
-  integrity sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==
+eslint@^7.19.0:
+  version "7.20.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.20.0.tgz#db07c4ca4eda2e2316e7aa57ac7fc91ec550bdc7"
+  integrity sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw==
   dependencies:
-    "@babel/code-frame" "^7.0.0"
-    "@eslint/eslintrc" "^0.2.2"
+    "@babel/code-frame" "7.12.11"
+    "@eslint/eslintrc" "^0.3.0"
     ajv "^6.10.0"
     chalk "^4.0.0"
     cross-spawn "^7.0.2"
@@ -1912,7 +2047,7 @@ eslint@^7.15.0:
     eslint-utils "^2.1.0"
     eslint-visitor-keys "^2.0.0"
     espree "^7.3.1"
-    esquery "^1.2.0"
+    esquery "^1.4.0"
     esutils "^2.0.2"
     file-entry-cache "^6.0.0"
     functional-red-black-tree "^1.0.1"
@@ -1925,7 +2060,7 @@ eslint@^7.15.0:
     js-yaml "^3.13.1"
     json-stable-stringify-without-jsonify "^1.0.1"
     levn "^0.4.1"
-    lodash "^4.17.19"
+    lodash "^4.17.20"
     minimatch "^3.0.4"
     natural-compare "^1.4.0"
     optionator "^0.9.1"
@@ -1934,7 +2069,7 @@ eslint@^7.15.0:
     semver "^7.2.1"
     strip-ansi "^6.0.0"
     strip-json-comments "^3.1.0"
-    table "^5.2.3"
+    table "^6.0.4"
     text-table "^0.2.0"
     v8-compile-cache "^2.0.3"
 
@@ -1952,10 +2087,10 @@ esprima@^4.0.0, esprima@^4.0.1:
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
 
-esquery@^1.2.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
-  integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
+esquery@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+  integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
   dependencies:
     estraverse "^5.1.0"
 
@@ -2140,9 +2275,9 @@ file-entry-cache@^6.0.0:
     flat-cache "^3.0.4"
 
 filelist@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb"
-  integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b"
+  integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==
   dependencies:
     minimatch "^3.0.4"
 
@@ -2180,9 +2315,9 @@ flat-cache@^3.0.4:
     rimraf "^3.0.2"
 
 flatted@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067"
-  integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
+  integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
 
 for-in@^1.0.2:
   version "1.0.2"
@@ -2225,14 +2360,14 @@ fs-extra@^8.1.0:
     universalify "^0.1.0"
 
 fs-extra@^9.0.1:
-  version "9.0.1"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc"
-  integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+  integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
   dependencies:
     at-least-node "^1.0.0"
     graceful-fs "^4.2.0"
     jsonfile "^6.0.1"
-    universalify "^1.0.0"
+    universalify "^2.0.0"
 
 fs.realpath@^1.0.0:
   version "1.0.0"
@@ -2240,9 +2375,9 @@ fs.realpath@^1.0.0:
   integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
 
 fsevents@^2.1.2:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.2.1.tgz#1fb02ded2036a8ac288d507a65962bd87b97628d"
-  integrity sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
 
 function-bind@^1.1.1:
   version "1.1.1"
@@ -2302,7 +2437,7 @@ glob-parent@^5.0.0:
   dependencies:
     is-glob "^4.0.1"
 
-glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
   version "7.1.6"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
   integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@@ -2327,12 +2462,12 @@ global-agent@^2.0.2:
     semver "^7.3.2"
     serialize-error "^7.0.1"
 
-global-dirs@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201"
-  integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==
+global-dirs@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686"
+  integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==
   dependencies:
-    ini "^1.3.5"
+    ini "2.0.0"
 
 global-tunnel-ng@^2.7.1:
   version "2.7.1"
@@ -2381,9 +2516,14 @@ got@^9.6.0:
     url-parse-lax "^3.0.0"
 
 graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
-  version "4.2.4"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
-  integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
+  version "4.2.6"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
+  integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
+
+"graceful-readlink@>= 1.0.0":
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
+  integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
 
 growly@^1.3.0:
   version "1.3.0"
@@ -2461,10 +2601,10 @@ hosted-git-info@^2.1.4:
   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
   integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
 
-hosted-git-info@^3.0.5:
-  version "3.0.7"
-  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c"
-  integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==
+hosted-git-info@^3.0.6, hosted-git-info@^3.0.7:
+  version "3.0.8"
+  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d"
+  integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==
   dependencies:
     lru-cache "^6.0.0"
 
@@ -2504,6 +2644,14 @@ human-signals@^1.1.1:
   resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
   integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
 
+iconv-corefoundation@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.5.tgz#90596d444a579aeb109f5ca113f6bb665a41be2b"
+  integrity sha512-hI4m7udfV04OcjleOmDaR4gwXnH4xumxN+ZmywHDiKf2CmAzsT9SVYe7Y4pdnQbyZfXwAQyrElykbE5PrPRfmQ==
+  dependencies:
+    cli-truncate "^1.1.0"
+    node-addon-api "^1.6.3"
+
 iconv-lite@0.4.24:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -2529,9 +2677,9 @@ ignore@^4.0.6:
   integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
 
 import-fresh@^3.0.0, import-fresh@^3.2.1:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e"
-  integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
   dependencies:
     parent-module "^1.0.0"
     resolve-from "^4.0.0"
@@ -2567,7 +2715,12 @@ inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
 
-ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
+ini@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
+  integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
+
+ini@^1.3.4, ini@~1.3.0:
   version "1.3.8"
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
   integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
@@ -2608,7 +2761,7 @@ is-ci@^2.0.0:
   dependencies:
     ci-info "^2.0.0"
 
-is-core-module@^2.1.0:
+is-core-module@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
   integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
@@ -2691,18 +2844,18 @@ is-glob@^4.0.0, is-glob@^4.0.1:
   dependencies:
     is-extglob "^2.1.1"
 
-is-installed-globally@^0.3.1:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141"
-  integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==
+is-installed-globally@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520"
+  integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==
   dependencies:
-    global-dirs "^2.0.1"
-    is-path-inside "^3.0.1"
+    global-dirs "^3.0.0"
+    is-path-inside "^3.0.2"
 
-is-npm@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d"
-  integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==
+is-npm@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8"
+  integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==
 
 is-number@^3.0.0:
   version "3.0.0"
@@ -2721,7 +2874,7 @@ is-obj@^2.0.0:
   resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
   integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
 
-is-path-inside@^3.0.1:
+is-path-inside@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017"
   integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==
@@ -3238,7 +3391,7 @@ js-tokens@^4.0.0:
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
   integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
 
-js-yaml@^3.13.1, js-yaml@^3.14.0:
+js-yaml@^3.13.1, js-yaml@^3.14.1:
   version "3.14.1"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
   integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
@@ -3303,6 +3456,11 @@ json-schema-traverse@^0.4.1:
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
+json-schema-traverse@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
 json-schema@0.2.3:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
@@ -3319,9 +3477,9 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
   integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
 
 json5@^2.1.2:
-  version "2.1.3"
-  resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
-  integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+  integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
   dependencies:
     minimist "^1.2.5"
 
@@ -3387,7 +3545,7 @@ kleur@^3.0.3:
   resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
   integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
 
-latest-version@^5.0.0:
+latest-version@^5.1.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
   integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==
@@ -3469,7 +3627,7 @@ lodash.union@^4.6.0:
   resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
   integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
 
-lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.19:
+lodash@^4.17.10, lodash@^4.17.19, lodash@^4.17.20:
   version "4.17.20"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
   integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
@@ -3556,22 +3714,22 @@ micromatch@^4.0.2:
     braces "^3.0.1"
     picomatch "^2.0.5"
 
-mime-db@1.44.0:
-  version "1.44.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
-  integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
+mime-db@1.45.0:
+  version "1.45.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
+  integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
 
 mime-types@^2.1.12, mime-types@~2.1.19:
-  version "2.1.27"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
-  integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
+  version "2.1.28"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd"
+  integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==
   dependencies:
-    mime-db "1.44.0"
+    mime-db "1.45.0"
 
-mime@^2.4.6:
-  version "2.4.6"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1"
-  integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==
+mime@^2.4.7:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1"
+  integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==
 
 mimic-fn@^2.1.0:
   version "2.1.0"
@@ -3583,7 +3741,7 @@ mimic-response@^1.0.0, mimic-response@^1.0.1:
   resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
   integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
 
-minimatch@^3.0.4:
+minimatch@3.0.4, minimatch@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
   integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@@ -3647,6 +3805,11 @@ nice-try@^1.0.4:
   resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
   integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
 
+node-addon-api@^1.6.3:
+  version "1.7.2"
+  resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
+  integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
+
 node-int64@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -3658,9 +3821,9 @@ node-modules-regexp@^1.0.0:
   integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
 
 node-notifier@^8.0.0:
-  version "8.0.0"
-  resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.0.tgz#a7eee2d51da6d0f7ff5094bc7108c911240c1620"
-  integrity sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==
+  version "8.0.1"
+  resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz#f86e89bbc925f2b068784b31f382afdc6ca56be1"
+  integrity sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==
   dependencies:
     growly "^1.3.0"
     is-wsl "^2.2.0"
@@ -3679,6 +3842,16 @@ normalize-package-data@^2.5.0:
     semver "2 || 3 || 4 || 5"
     validate-npm-package-license "^3.0.1"
 
+normalize-package-data@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a"
+  integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==
+  dependencies:
+    hosted-git-info "^3.0.6"
+    resolve "^1.17.0"
+    semver "^7.3.2"
+    validate-npm-package-license "^3.0.1"
+
 normalize-path@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
@@ -3846,9 +4019,9 @@ parent-module@^1.0.0:
     callsites "^3.0.0"
 
 parse-json@^5.0.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646"
-  integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+  integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
   dependencies:
     "@babel/code-frame" "^7.0.0"
     error-ex "^1.3.1"
@@ -3924,6 +4097,15 @@ pkg-dir@^4.2.0:
   dependencies:
     find-up "^4.0.0"
 
+plist@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c"
+  integrity sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==
+  dependencies:
+    base64-js "^1.2.3"
+    xmlbuilder "^9.0.7"
+    xmldom "0.1.x"
+
 posix-character-classes@^0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -4000,7 +4182,7 @@ punycode@^2.1.0, punycode@^2.1.1:
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
 
-pupa@^2.0.1:
+pupa@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62"
   integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==
@@ -4175,6 +4357,11 @@ require-directory@^2.1.1:
   resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
   integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
 
+require-from-string@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
 require-main-filename@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
@@ -4202,12 +4389,12 @@ resolve-url@^0.2.1:
   resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
   integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
 
-resolve@^1.10.0, resolve@^1.18.1:
-  version "1.19.0"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
-  integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
+resolve@^1.10.0, resolve@^1.17.0, resolve@^1.18.1:
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+  integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
   dependencies:
-    is-core-module "^2.1.0"
+    is-core-module "^2.2.0"
     path-parse "^1.0.6"
 
 responselike@^1.0.2:
@@ -4283,7 +4470,7 @@ sane@^4.0.3:
     minimist "^1.1.1"
     walker "~1.0.5"
 
-sanitize-filename@^1.6.2, sanitize-filename@^1.6.3:
+sanitize-filename@^1.6.3:
   version "1.6.3"
   resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378"
   integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==
@@ -4324,7 +4511,7 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
   resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 
-semver@^7.2.1, semver@^7.3.2:
+semver@^7.2.1, semver@^7.3.2, semver@^7.3.4:
   version "7.3.4"
   resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
   integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
@@ -4397,15 +4584,27 @@ slash@^3.0.0:
   resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
   integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
 
-slice-ansi@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
-  integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
+slice-ansi@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
+  integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==
   dependencies:
-    ansi-styles "^3.2.0"
-    astral-regex "^1.0.0"
     is-fullwidth-code-point "^2.0.0"
 
+slice-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+  dependencies:
+    ansi-styles "^4.0.0"
+    astral-regex "^2.0.0"
+    is-fullwidth-code-point "^3.0.0"
+
+smart-buffer@^4.0.2:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba"
+  integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==
+
 snapdragon-node@^2.0.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -4456,9 +4655,9 @@ source-map-support@^0.5.19, source-map-support@^0.5.6:
     source-map "^0.6.0"
 
 source-map-url@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
-  integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
+  integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
 
 source-map@^0.5.0, source-map@^0.5.6:
   version "0.5.7"
@@ -4566,6 +4765,14 @@ string-length@^4.0.1:
     char-regex "^1.0.2"
     strip-ansi "^6.0.0"
 
+string-width@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+  dependencies:
+    is-fullwidth-code-point "^2.0.0"
+    strip-ansi "^4.0.0"
+
 string-width@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
@@ -4598,6 +4805,13 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
+strip-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+  integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+  dependencies:
+    ansi-regex "^3.0.0"
+
 strip-ansi@^5.1.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
@@ -4671,20 +4885,20 @@ symbol-tree@^3.2.4:
   resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
   integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
 
-table@^5.2.3:
-  version "5.4.6"
-  resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
-  integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
+table@^6.0.4:
+  version "6.0.7"
+  resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34"
+  integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==
   dependencies:
-    ajv "^6.10.2"
-    lodash "^4.17.14"
-    slice-ansi "^2.1.0"
-    string-width "^3.0.0"
+    ajv "^7.0.2"
+    lodash "^4.17.20"
+    slice-ansi "^4.0.0"
+    string-width "^4.2.0"
 
 tar-stream@^2.1.4:
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa"
-  integrity sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
+  integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
   dependencies:
     bl "^4.0.3"
     end-of-stream "^1.4.1"
@@ -4700,11 +4914,6 @@ temp-file@^3.3.7:
     async-exit-hook "^2.0.1"
     fs-extra "^8.1.0"
 
-term-size@^2.1.0:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54"
-  integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==
-
 terminal-link@^2.0.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
@@ -4732,17 +4941,17 @@ throat@^5.0.0:
   resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
   integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==
 
-tldts-core@^5.6.64:
-  version "5.6.64"
-  resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.6.64.tgz#0f80d0c9607d7583acc477a10dae7e62e7c08063"
-  integrity sha512-uzVHDyya5Qy7VtMaaWYdNxvBBp8PKhRMt6FrzB5lDJiFtUIma4JdxRCxGxbyOoJig1DOmqcQDjnH3+C2etvyaA==
+tldts-core@^5.7.6:
+  version "5.7.6"
+  resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.7.6.tgz#af99b4ab79761dfa6c44d1d61a3f76bb5c3def8b"
+  integrity sha512-VfRarBs7nbY9Af3In4O1A3d7T6eZh+w/IjRPpBo8VgRHAo7LJ+GrzCVo1yoOPmm3tdO1vUXtwBnchWN0dpL6lQ==
 
 tldts-experimental@^5.6.21:
-  version "5.6.64"
-  resolved "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.6.64.tgz#f867449964d94c6a17a499335658f42a9fbdc7d3"
-  integrity sha512-PaA3Lau6l7PsxvMd9Ptocalu/K9RA3Ia5QovHTuLdJZfaJJNFrC3FEQpzYqxQ4bGqB7bpPeFXZDLisA/d4KWKg==
+  version "5.7.6"
+  resolved "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.7.6.tgz#10c255872af89ab68659c3a345c7a65015920024"
+  integrity sha512-FRpjSRsxsa46/PRc2erEx8B9uZQYsdBQPG/s3B7IGhWxi1VG6GOwTJWGyfFBy3LWfge7Kw3Yrh89ZS01tUKMIQ==
   dependencies:
-    tldts-core "^5.6.64"
+    tldts-core "^5.7.6"
 
 tmpl@1.0.x:
   version "1.0.4"
@@ -4868,6 +5077,11 @@ type-fest@^0.13.1:
   resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
   integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
 
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
 type-fest@^0.6.0:
   version "0.6.0"
   resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
@@ -4912,11 +5126,6 @@ universalify@^0.1.0:
   resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
   integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
 
-universalify@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"
-  integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==
-
 universalify@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
@@ -4930,29 +5139,30 @@ unset-value@^1.0.0:
     has-value "^0.3.1"
     isobject "^3.0.0"
 
-update-notifier@^4.1.1:
-  version "4.1.3"
-  resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3"
-  integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==
+update-notifier@^5.0.1:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9"
+  integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==
   dependencies:
-    boxen "^4.2.0"
-    chalk "^3.0.0"
+    boxen "^5.0.0"
+    chalk "^4.1.0"
     configstore "^5.0.1"
     has-yarn "^2.1.0"
     import-lazy "^2.1.0"
     is-ci "^2.0.0"
-    is-installed-globally "^0.3.1"
-    is-npm "^4.0.0"
+    is-installed-globally "^0.4.0"
+    is-npm "^5.0.0"
     is-yarn-global "^0.3.0"
-    latest-version "^5.0.0"
-    pupa "^2.0.1"
+    latest-version "^5.1.0"
+    pupa "^2.1.1"
+    semver "^7.3.4"
     semver-diff "^3.1.1"
     xdg-basedir "^4.0.0"
 
 uri-js@^4.2.2:
-  version "4.4.0"
-  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
-  integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
+  version "4.4.1"
+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
   dependencies:
     punycode "^2.1.0"
 
@@ -4999,9 +5209,9 @@ v8-compile-cache@^2.0.3:
   integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
 
 v8-to-istanbul@^7.0.0:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz#b4fe00e35649ef7785a9b7fcebcea05f37c332fc"
-  integrity sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07"
+  integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==
   dependencies:
     "@types/istanbul-lib-coverage" "^2.0.1"
     convert-source-map "^1.6.0"
@@ -5015,7 +5225,7 @@ validate-npm-package-license@^3.0.1:
     spdx-correct "^3.0.0"
     spdx-expression-parse "^3.0.0"
 
-verror@1.10.0:
+verror@1.10.0, verror@^1.10.0:
   version "1.10.0"
   resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
   integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
@@ -5141,9 +5351,9 @@ write-file-atomic@^3.0.0:
     typedarray-to-buffer "^3.1.5"
 
 ws@^7.2.3:
-  version "7.4.1"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb"
-  integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==
+  version "7.4.3"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd"
+  integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==
 
 xdg-basedir@^4.0.0:
   version "4.0.0"
@@ -5155,11 +5365,26 @@ xml-name-validator@^3.0.0:
   resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
   integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
 
+xmlbuilder@>=11.0.1:
+  version "15.1.1"
+  resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
+  integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
+
+xmlbuilder@^9.0.7:
+  version "9.0.7"
+  resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
+  integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
+
 xmlchars@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
   integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
 
+xmldom@0.1.x:
+  version "0.1.31"
+  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff"
+  integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==
+
 y18n@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
@@ -5205,7 +5430,7 @@ yargs@^15.4.1:
     y18n "^4.0.0"
     yargs-parser "^18.1.2"
 
-yargs@^16.0.3:
+yargs@^16.2.0:
   version "16.2.0"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
   integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix
index 6f92c3a385cf..e4bfdf726172 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix
@@ -10,155 +10,147 @@
       };
     }
     {
-      name = "_babel_code_frame___code_frame_7.10.4.tgz";
+      name = "_babel_code_frame___code_frame_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
-        sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+        name = "_babel_code_frame___code_frame_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz";
+        sha1 = "f4ad435aa263db935b8f10f2c552d23fb716a63f";
       };
     }
     {
-      name = "_babel_core___core_7.12.10.tgz";
+      name = "_babel_code_frame___code_frame_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_core___core_7.12.10.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz";
-        sha1 = "b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd";
+        name = "_babel_code_frame___code_frame_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
       };
     }
     {
-      name = "_babel_generator___generator_7.12.10.tgz";
+      name = "_babel_core___core_7.12.16.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.12.10.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.10.tgz";
-        sha1 = "2b188fc329fb8e4f762181703beffc0fe6df3460";
+        name = "_babel_core___core_7.12.16.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.12.16.tgz";
+        sha1 = "8c6ba456b23b680a6493ddcfcd9d3c3ad51cab7c";
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+      name = "_babel_generator___generator_7.12.15.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
-        sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
+        name = "_babel_generator___generator_7.12.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz";
+        sha1 = "4617b5d0b25cc572474cc1aafee1edeaf9b5368f";
       };
     }
     {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.10.tgz";
+      name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.10.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz";
-        sha1 = "b158817a3165b5faa2047825dfa61970ddcc16cf";
+        name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
+        sha1 = "93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a";
       };
     }
     {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.7.tgz";
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz";
-        sha1 = "aa77bd0396ec8114e5e30787efa78599d874a855";
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
+        sha1 = "bc63451d403a3b3082b97e1d8b3fe5bd4091e583";
       };
     }
     {
-      name = "_babel_helper_module_imports___helper_module_imports_7.12.5.tgz";
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.16.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz";
-        sha1 = "1bfc0229f794988f76ed0a4d4e90860850b54dfb";
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.16.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.16.tgz";
+        sha1 = "41e0916b99f8d5f43da4f05d85f4930fa3d62b22";
       };
     }
     {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.12.1.tgz";
+      name = "_babel_helper_module_imports___helper_module_imports_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz";
-        sha1 = "7954fec71f5b32c48e4b303b437c34453fd7247c";
+        name = "_babel_helper_module_imports___helper_module_imports_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz";
+        sha1 = "ec67e4404f41750463e455cc3203f6a32e93fcb0";
       };
     }
     {
-      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.10.tgz";
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.10.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz";
-        sha1 = "94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d";
+        name = "_babel_helper_module_transforms___helper_module_transforms_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz";
+        sha1 = "01afb052dcad2044289b7b20beb3fa8bd0265bea";
       };
     }
     {
-      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
+      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
-        sha1 = "2f75a831269d4f677de49986dff59927533cf375";
+        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz";
+        sha1 = "5c02d171b4c8615b1e7163f888c1c81c30a2aaea";
       };
     }
     {
-      name = "_babel_helper_replace_supers___helper_replace_supers_7.12.5.tgz";
+      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz";
-        sha1 = "f009a17543bbbbce16b06206ae73b63d3fca68d9";
+        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz";
+        sha1 = "174254d0f2424d8aefb4dd48057511247b0a9eeb";
       };
     }
     {
-      name = "_babel_helper_simple_access___helper_simple_access_7.12.1.tgz";
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz";
-        sha1 = "32427e5aa61547d38eb1e6eaf5fd1426fdad9136";
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz";
+        sha1 = "00ec4fb6862546bd3d0aff9aac56074277173121";
       };
     }
     {
-      name = "_babel_helper_skip_transparent_expression_wrappers___helper_skip_transparent_expression_wrappers_7.12.1.tgz";
+      name = "_babel_helper_simple_access___helper_simple_access_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_skip_transparent_expression_wrappers___helper_skip_transparent_expression_wrappers_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz";
-        sha1 = "462dc63a7e435ade8468385c63d2b84cce4b3cbf";
+        name = "_babel_helper_simple_access___helper_simple_access_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz";
+        sha1 = "8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4";
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
-        sha1 = "f8a491244acf6a676158ac42072911ba83ad099f";
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
+        sha1 = "e9430be00baf3e88b0e13e6f9d4eaf2136372b05";
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
-        sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
+        sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed";
       };
     }
     {
-      name = "_babel_helpers___helpers_7.12.5.tgz";
+      name = "_babel_helpers___helpers_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helpers___helpers_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz";
-        sha1 = "1a1ba4a768d9b58310eda516c449913fe647116e";
+        name = "_babel_helpers___helpers_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.13.tgz";
+        sha1 = "3c75e993632e4dadc0274eae219c73eb7645ba47";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.10.4.tgz";
+      name = "_babel_highlight___highlight_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
-        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+        name = "_babel_highlight___highlight_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz";
+        sha1 = "8ab538393e00370b26271b01fa08f7f27f2e795c";
       };
     }
     {
-      name = "_babel_parser___parser_7.12.10.tgz";
+      name = "_babel_parser___parser_7.12.16.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.12.10.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.10.tgz";
-        sha1 = "824600d59e96aea26a5a2af5a9d812af05c3ae81";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.12.7.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz";
-        sha1 = "e02f0ea1b5dc59d401ec16fb824679f683d3303c";
+        name = "_babel_parser___parser_7.12.16.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.16.tgz";
+        sha1 = "cc31257419d2c3189d394081635703f549fc1ed4";
       };
     }
     {
@@ -178,11 +170,11 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.1.tgz";
+      name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz";
-        sha1 = "bcb297c5366e79bebadef509549cd93b04f19978";
+        name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz";
+        sha1 = "b5c987274c4a3a82b89714796931a6b53544ae10";
       };
     }
     {
@@ -250,35 +242,35 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.1.tgz";
+      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz";
-        sha1 = "dd6c0b357ac1bb142d98537450a319625d13d2a0";
+        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz";
+        sha1 = "c5f0fa6e249f5b739727f923540cf7a806130178";
       };
     }
     {
-      name = "_babel_template___template_7.12.7.tgz";
+      name = "_babel_template___template_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_template___template_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz";
-        sha1 = "c817233696018e39fbb6c491d2fb684e05ed43bc";
+        name = "_babel_template___template_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz";
+        sha1 = "530265be8a2589dbb37523844c5bcb55947fb327";
       };
     }
     {
-      name = "_babel_traverse___traverse_7.12.10.tgz";
+      name = "_babel_traverse___traverse_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.12.10.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.10.tgz";
-        sha1 = "2d1f4041e8bf42ea099e5b2dc48d6a594c00017a";
+        name = "_babel_traverse___traverse_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz";
+        sha1 = "689f0e4b4c08587ad26622832632735fb8c4e0c0";
       };
     }
     {
-      name = "_babel_types___types_7.12.10.tgz";
+      name = "_babel_types___types_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.12.10.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.10.tgz";
-        sha1 = "7965e4a7260b26f09c56bcfcb0498af1f6d9b260";
+        name = "_babel_types___types_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz";
+        sha1 = "8be1aa8f2c876da11a9cf650c0ecf656913ad611";
       };
     }
     {
@@ -290,35 +282,43 @@
       };
     }
     {
-      name = "_cliqz_adblocker_content___adblocker_content_1.18.8.tgz";
+      name = "_cliqz_adblocker_content___adblocker_content_1.20.0.tgz";
+      path = fetchurl {
+        name = "_cliqz_adblocker_content___adblocker_content_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.20.0.tgz";
+        sha1 = "fcfa2845a577ba8d9af282afbae2fc437b3f1c70";
+      };
+    }
+    {
+      name = "_cliqz_adblocker_electron_preload___adblocker_electron_preload_1.20.0.tgz";
       path = fetchurl {
-        name = "_cliqz_adblocker_content___adblocker_content_1.18.8.tgz";
-        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.18.8.tgz";
-        sha1 = "96473f14c098a20091298d34a6addcd430aceebd";
+        name = "_cliqz_adblocker_electron_preload___adblocker_electron_preload_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.20.0.tgz";
+        sha1 = "997b694fbb1b1206e04b1fd570690234cc7ef630";
       };
     }
     {
-      name = "_cliqz_adblocker_electron_preload___adblocker_electron_preload_1.18.8.tgz";
+      name = "_cliqz_adblocker_electron___adblocker_electron_1.20.0.tgz";
       path = fetchurl {
-        name = "_cliqz_adblocker_electron_preload___adblocker_electron_preload_1.18.8.tgz";
-        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.18.8.tgz";
-        sha1 = "c2058647e015b6f61c222e7d58040347324c63b0";
+        name = "_cliqz_adblocker_electron___adblocker_electron_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.20.0.tgz";
+        sha1 = "bacfb9feaf1d3dab339b992e3defa111a4b5ed3c";
       };
     }
     {
-      name = "_cliqz_adblocker_electron___adblocker_electron_1.18.8.tgz";
+      name = "_cliqz_adblocker_extended_selectors___adblocker_extended_selectors_1.20.0.tgz";
       path = fetchurl {
-        name = "_cliqz_adblocker_electron___adblocker_electron_1.18.8.tgz";
-        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.18.8.tgz";
-        sha1 = "5f697c5dc65cd936b3908078a6e4516ec995567a";
+        name = "_cliqz_adblocker_extended_selectors___adblocker_extended_selectors_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.20.0.tgz";
+        sha1 = "95ede657b670f627b39f92d85a97093cecee6ffe";
       };
     }
     {
-      name = "_cliqz_adblocker___adblocker_1.18.8.tgz";
+      name = "_cliqz_adblocker___adblocker_1.20.0.tgz";
       path = fetchurl {
-        name = "_cliqz_adblocker___adblocker_1.18.8.tgz";
-        url  = "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.18.8.tgz";
-        sha1 = "f6e5724fe6573c2e68f2545d90bcce3e1ecfbae9";
+        name = "_cliqz_adblocker___adblocker_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.20.0.tgz";
+        sha1 = "514746e9ee72fcd886f1e2e1aaf13b28fc63f232";
       };
     }
     {
@@ -338,19 +338,27 @@
       };
     }
     {
-      name = "_electron_get___get_1.12.2.tgz";
+      name = "_electron_get___get_1.12.4.tgz";
+      path = fetchurl {
+        name = "_electron_get___get_1.12.4.tgz";
+        url  = "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz";
+        sha1 = "a5971113fc1bf8fa12a8789dc20152a7359f06ab";
+      };
+    }
+    {
+      name = "_electron_universal___universal_1.0.4.tgz";
       path = fetchurl {
-        name = "_electron_get___get_1.12.2.tgz";
-        url  = "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz";
-        sha1 = "6442066afb99be08cefb9a281e4b4692b33764f3";
+        name = "_electron_universal___universal_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.4.tgz";
+        sha1 = "231ac246c39d45b80e159bd21c3f9027dcaa10f5";
       };
     }
     {
-      name = "_eslint_eslintrc___eslintrc_0.2.2.tgz";
+      name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
       path = fetchurl {
-        name = "_eslint_eslintrc___eslintrc_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz";
-        sha1 = "d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76";
+        name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz";
+        sha1 = "d736d6963d7003b6514e6324bec9c602ac340318";
       };
     }
     {
@@ -362,11 +370,11 @@
       };
     }
     {
-      name = "_istanbuljs_schema___schema_0.1.2.tgz";
+      name = "_istanbuljs_schema___schema_0.1.3.tgz";
       path = fetchurl {
-        name = "_istanbuljs_schema___schema_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz";
-        sha1 = "26520bf09abe4a5644cd5414e37125a8954241dd";
+        name = "_istanbuljs_schema___schema_0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz";
+        sha1 = "e45e384e4b8ec16bce2fd903af78450f6bf7ec98";
       };
     }
     {
@@ -458,51 +466,59 @@
       };
     }
     {
-      name = "_remusao_guess_url_type___guess_url_type_1.2.0.tgz";
+      name = "_malept_cross_spawn_promise___cross_spawn_promise_1.1.1.tgz";
+      path = fetchurl {
+        name = "_malept_cross_spawn_promise___cross_spawn_promise_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz";
+        sha1 = "504af200af6b98e198bce768bc1730c6936ae01d";
+      };
+    }
+    {
+      name = "_remusao_guess_url_type___guess_url_type_1.2.1.tgz";
       path = fetchurl {
-        name = "_remusao_guess_url_type___guess_url_type_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@remusao/guess-url-type/-/guess-url-type-1.2.0.tgz";
-        sha1 = "fb1402b4c47266161501704d74427b8d49e4b3e4";
+        name = "_remusao_guess_url_type___guess_url_type_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@remusao/guess-url-type/-/guess-url-type-1.2.1.tgz";
+        sha1 = "b3e7c32abdf98d0fb4f93cc67cad580b5fe4ba57";
       };
     }
     {
-      name = "_remusao_small___small_1.2.0.tgz";
+      name = "_remusao_small___small_1.2.1.tgz";
       path = fetchurl {
-        name = "_remusao_small___small_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@remusao/small/-/small-1.2.0.tgz";
-        sha1 = "1f56d59418d4c121cd8814e4bea5ed95dcf4b7a9";
+        name = "_remusao_small___small_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@remusao/small/-/small-1.2.1.tgz";
+        sha1 = "63bfe4548832289f94ac868a0c305970c9a0e5f9";
       };
     }
     {
-      name = "_remusao_smaz_compress___smaz_compress_1.9.0.tgz";
+      name = "_remusao_smaz_compress___smaz_compress_1.9.1.tgz";
       path = fetchurl {
-        name = "_remusao_smaz_compress___smaz_compress_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@remusao/smaz-compress/-/smaz-compress-1.9.0.tgz";
-        sha1 = "ec79c87f5780865da616cd214b3b8978807d1e9a";
+        name = "_remusao_smaz_compress___smaz_compress_1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/@remusao/smaz-compress/-/smaz-compress-1.9.1.tgz";
+        sha1 = "fc75eaf9bcac2d58bc4c3d518183a7cb9612d275";
       };
     }
     {
-      name = "_remusao_smaz_decompress___smaz_decompress_1.9.0.tgz";
+      name = "_remusao_smaz_decompress___smaz_decompress_1.9.1.tgz";
       path = fetchurl {
-        name = "_remusao_smaz_decompress___smaz_decompress_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@remusao/smaz-decompress/-/smaz-decompress-1.9.0.tgz";
-        sha1 = "9b3fba7c8e0c2045de63fd0ad0e5b37b447bb7cf";
+        name = "_remusao_smaz_decompress___smaz_decompress_1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/@remusao/smaz-decompress/-/smaz-decompress-1.9.1.tgz";
+        sha1 = "8094f997e8fb591a678cda9cf08c209c825eba5b";
       };
     }
     {
-      name = "_remusao_smaz___smaz_1.9.0.tgz";
+      name = "_remusao_smaz___smaz_1.9.1.tgz";
       path = fetchurl {
-        name = "_remusao_smaz___smaz_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@remusao/smaz/-/smaz-1.9.0.tgz";
-        sha1 = "d02c2fb007483d4b4d050fb2fdaf523fcef08d40";
+        name = "_remusao_smaz___smaz_1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/@remusao/smaz/-/smaz-1.9.1.tgz";
+        sha1 = "a2b9b045385f81e1615a68d932b7cc8b04c9db8d";
       };
     }
     {
-      name = "_remusao_trie___trie_1.4.0.tgz";
+      name = "_remusao_trie___trie_1.4.1.tgz";
       path = fetchurl {
-        name = "_remusao_trie___trie_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/@remusao/trie/-/trie-1.4.0.tgz";
-        sha1 = "b439210445339f0ca95ff200d98b898d431a4ce1";
+        name = "_remusao_trie___trie_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/@remusao/trie/-/trie-1.4.1.tgz";
+        sha1 = "755d09f8a007476334e611f42719b2d581f00720";
       };
     }
     {
@@ -514,11 +530,11 @@
       };
     }
     {
-      name = "_sinonjs_commons___commons_1.8.1.tgz";
+      name = "_sinonjs_commons___commons_1.8.2.tgz";
       path = fetchurl {
-        name = "_sinonjs_commons___commons_1.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz";
-        sha1 = "e7df00f98a203324f6dc7cc606cad9d4a8ab2217";
+        name = "_sinonjs_commons___commons_1.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz";
+        sha1 = "858f5c4b48d80778fde4b9d541f27edc0d56488b";
       };
     }
     {
@@ -570,11 +586,11 @@
       };
     }
     {
-      name = "_types_chrome___chrome_0.0.126.tgz";
+      name = "_types_chrome___chrome_0.0.128.tgz";
       path = fetchurl {
-        name = "_types_chrome___chrome_0.0.126.tgz";
-        url  = "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.126.tgz";
-        sha1 = "f9f3436712f0c7c12ea9798abc9b95575ad7b23a";
+        name = "_types_chrome___chrome_0.0.128.tgz";
+        url  = "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.128.tgz";
+        sha1 = "5dbd8b2539a367353fbe4386f119b510105f8b6a";
       };
     }
     {
@@ -610,19 +626,27 @@
       };
     }
     {
-      name = "_types_fs_extra___fs_extra_9.0.5.tgz";
+      name = "_types_fs_extra___fs_extra_9.0.7.tgz";
+      path = fetchurl {
+        name = "_types_fs_extra___fs_extra_9.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.7.tgz";
+        sha1 = "a9ef2ffdab043def080c5bec94c03402f793577f";
+      };
+    }
+    {
+      name = "_types_glob___glob_7.1.3.tgz";
       path = fetchurl {
-        name = "_types_fs_extra___fs_extra_9.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.5.tgz";
-        sha1 = "2afb76a43a4bef80a363b94b314d0ca1694fc4f8";
+        name = "_types_glob___glob_7.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz";
+        sha1 = "e6ba80f36b7daad2c685acd9266382e68985c183";
       };
     }
     {
-      name = "_types_graceful_fs___graceful_fs_4.1.4.tgz";
+      name = "_types_graceful_fs___graceful_fs_4.1.5.tgz";
       path = fetchurl {
-        name = "_types_graceful_fs___graceful_fs_4.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz";
-        sha1 = "4ff9f641a7c6d1a3508ff88bc3141b152772e753";
+        name = "_types_graceful_fs___graceful_fs_4.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz";
+        sha1 = "21ffba0d98da4350db64891f92a9e5db3cdb4e15";
       };
     }
     {
@@ -658,19 +682,27 @@
       };
     }
     {
-      name = "_types_node___node_14.14.13.tgz";
+      name = "_types_minimatch___minimatch_3.0.3.tgz";
       path = fetchurl {
-        name = "_types_node___node_14.14.13.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.13.tgz";
-        sha1 = "9e425079799322113ae8477297ae6ef51b8e0cdf";
+        name = "_types_minimatch___minimatch_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz";
+        sha1 = "3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d";
       };
     }
     {
-      name = "_types_node___node_12.19.9.tgz";
+      name = "_types_node___node_14.14.27.tgz";
       path = fetchurl {
-        name = "_types_node___node_12.19.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.19.9.tgz";
-        sha1 = "990ad687ad8b26ef6dcc34a4f69c33d40c95b679";
+        name = "_types_node___node_14.14.27.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.27.tgz";
+        sha1 = "c7127f8da0498993e13b1a42faf1303d3110d2f2";
+      };
+    }
+    {
+      name = "_types_node___node_12.20.0.tgz";
+      path = fetchurl {
+        name = "_types_node___node_12.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.20.0.tgz";
+        sha1 = "692dfdecd6c97f5380c42dd50f19261f9f604deb";
       };
     }
     {
@@ -682,11 +714,19 @@
       };
     }
     {
-      name = "_types_prettier___prettier_2.1.5.tgz";
+      name = "_types_plist___plist_3.0.2.tgz";
+      path = fetchurl {
+        name = "_types_plist___plist_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz";
+        sha1 = "61b3727bba0f5c462fe333542534a0c3e19ccb01";
+      };
+    }
+    {
+      name = "_types_prettier___prettier_2.2.1.tgz";
       path = fetchurl {
-        name = "_types_prettier___prettier_2.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.5.tgz";
-        sha1 = "b6ab3bba29e16b821d84e09ecfaded462b816b00";
+        name = "_types_prettier___prettier_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.1.tgz";
+        sha1 = "374e31645d58cb18a07b3ecd8e9dede4deb2cccd";
       };
     }
     {
@@ -698,19 +738,27 @@
       };
     }
     {
-      name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
+      name = "_types_verror___verror_1.10.4.tgz";
       path = fetchurl {
-        name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
-        sha1 = "cb3f9f741869e20cce330ffbeb9271590483882d";
+        name = "_types_verror___verror_1.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz";
+        sha1 = "805c0612b3a0c124cf99f517364142946b74ba3b";
       };
     }
     {
-      name = "_types_yargs___yargs_15.0.11.tgz";
+      name = "_types_yargs_parser___yargs_parser_20.2.0.tgz";
       path = fetchurl {
-        name = "_types_yargs___yargs_15.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.11.tgz";
-        sha1 = "361d7579ecdac1527687bcebf9946621c12ab78c";
+        name = "_types_yargs_parser___yargs_parser_20.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz";
+        sha1 = "dd3e6699ba3237f0348cd085e4698780204842f9";
+      };
+    }
+    {
+      name = "_types_yargs___yargs_15.0.13.tgz";
+      path = fetchurl {
+        name = "_types_yargs___yargs_15.0.13.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz";
+        sha1 = "34f7fec8b389d7f3c1fd08026a5763e072d3c6dc";
       };
     }
     {
@@ -770,6 +818,14 @@
       };
     }
     {
+      name = "ajv___ajv_7.1.0.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_7.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-7.1.0.tgz";
+        sha1 = "f982ea7933dc7f1012eae9eec5a86687d805421b";
+      };
+    }
+    {
       name = "ansi_align___ansi_align_3.0.0.tgz";
       path = fetchurl {
         name = "ansi_align___ansi_align_3.0.0.tgz";
@@ -794,6 +850,14 @@
       };
     }
     {
+      name = "ansi_regex___ansi_regex_3.0.0.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+      };
+    }
+    {
       name = "ansi_regex___ansi_regex_4.1.0.tgz";
       path = fetchurl {
         name = "ansi_regex___ansi_regex_4.1.0.tgz";
@@ -842,19 +906,19 @@
       };
     }
     {
-      name = "app_builder_bin___app_builder_bin_3.5.10.tgz";
+      name = "app_builder_bin___app_builder_bin_3.5.12.tgz";
       path = fetchurl {
-        name = "app_builder_bin___app_builder_bin_3.5.10.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz";
-        sha1 = "4a7f9999fccc0c435b6284ae1366bc76a17c4a7d";
+        name = "app_builder_bin___app_builder_bin_3.5.12.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.12.tgz";
+        sha1 = "bbe174972cc1f481f73d6d92ad47a8b4c7eb4530";
       };
     }
     {
-      name = "app_builder_lib___app_builder_lib_22.9.1.tgz";
+      name = "app_builder_lib___app_builder_lib_22.10.4.tgz";
       path = fetchurl {
-        name = "app_builder_lib___app_builder_lib_22.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.9.1.tgz";
-        sha1 = "ccb8f1a02b628514a5dfab9401fa2a976689415c";
+        name = "app_builder_lib___app_builder_lib_22.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.10.4.tgz";
+        sha1 = "3fc70821b76beb9c8279d9de22960ef2174da153";
       };
     }
     {
@@ -866,11 +930,11 @@
       };
     }
     {
-      name = "archiver___archiver_5.1.0.tgz";
+      name = "archiver___archiver_5.2.0.tgz";
       path = fetchurl {
-        name = "archiver___archiver_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/archiver/-/archiver-5.1.0.tgz";
-        sha1 = "05b0f6f7836f3e6356a0532763d2bb91017a7e37";
+        name = "archiver___archiver_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/archiver/-/archiver-5.2.0.tgz";
+        sha1 = "25aa1b3d9febf7aec5b0f296e77e69960c26db94";
       };
     }
     {
@@ -914,6 +978,14 @@
       };
     }
     {
+      name = "asar___asar_3.0.3.tgz";
+      path = fetchurl {
+        name = "asar___asar_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz";
+        sha1 = "1fef03c2d6d2de0cbad138788e4f7ae03b129c7b";
+      };
+    }
+    {
       name = "asn1___asn1_0.2.4.tgz";
       path = fetchurl {
         name = "asn1___asn1_0.2.4.tgz";
@@ -938,11 +1010,11 @@
       };
     }
     {
-      name = "astral_regex___astral_regex_1.0.0.tgz";
+      name = "astral_regex___astral_regex_2.0.0.tgz";
       path = fetchurl {
-        name = "astral_regex___astral_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
-        sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
+        name = "astral_regex___astral_regex_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
       };
     }
     {
@@ -1034,11 +1106,11 @@
       };
     }
     {
-      name = "babel_preset_current_node_syntax___babel_preset_current_node_syntax_1.0.0.tgz";
+      name = "babel_preset_current_node_syntax___babel_preset_current_node_syntax_1.0.1.tgz";
       path = fetchurl {
-        name = "babel_preset_current_node_syntax___babel_preset_current_node_syntax_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz";
-        sha1 = "cf5feef29551253471cfa82fc8e0f5063df07a77";
+        name = "babel_preset_current_node_syntax___babel_preset_current_node_syntax_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz";
+        sha1 = "b4399239b89b2a011f9ddbe3e4f401fc40cff73b";
       };
     }
     {
@@ -1082,11 +1154,11 @@
       };
     }
     {
-      name = "bl___bl_4.0.3.tgz";
+      name = "bl___bl_4.1.0.tgz";
       path = fetchurl {
-        name = "bl___bl_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz";
-        sha1 = "12d6287adc29080e22a705e5764b2a9522cdc489";
+        name = "bl___bl_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz";
+        sha1 = "451535264182bec2fbbc83a62ab98cf11d9f7b3a";
       };
     }
     {
@@ -1114,11 +1186,11 @@
       };
     }
     {
-      name = "boxen___boxen_4.2.0.tgz";
+      name = "boxen___boxen_5.0.0.tgz";
       path = fetchurl {
-        name = "boxen___boxen_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz";
-        sha1 = "e411b62357d6d6d36587c8ac3d5d974daa070e64";
+        name = "boxen___boxen_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/boxen/-/boxen-5.0.0.tgz";
+        sha1 = "64fe9b16066af815f51057adcc800c3730120854";
       };
     }
     {
@@ -1170,6 +1242,14 @@
       };
     }
     {
+      name = "buffer_equal___buffer_equal_1.0.0.tgz";
+      path = fetchurl {
+        name = "buffer_equal___buffer_equal_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz";
+        sha1 = "59616b498304d556abd466966b22eeda3eca5fbe";
+      };
+    }
+    {
       name = "buffer_from___buffer_from_1.1.1.tgz";
       path = fetchurl {
         name = "buffer_from___buffer_from_1.1.1.tgz";
@@ -1186,19 +1266,19 @@
       };
     }
     {
-      name = "builder_util_runtime___builder_util_runtime_8.7.2.tgz";
+      name = "builder_util_runtime___builder_util_runtime_8.7.3.tgz";
       path = fetchurl {
-        name = "builder_util_runtime___builder_util_runtime_8.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz";
-        sha1 = "d93afc71428a12789b437e13850e1fa7da956d72";
+        name = "builder_util_runtime___builder_util_runtime_8.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.3.tgz";
+        sha1 = "0aaafa52d25295c939496f62231ca9ff06c30e40";
       };
     }
     {
-      name = "builder_util___builder_util_22.9.1.tgz";
+      name = "builder_util___builder_util_22.10.4.tgz";
       path = fetchurl {
-        name = "builder_util___builder_util_22.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.9.1.tgz";
-        sha1 = "b7087a5cde477f90d718ca5d7fafb6ae261b16af";
+        name = "builder_util___builder_util_22.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.10.4.tgz";
+        sha1 = "54e8be83dd0dec28073d866ff087cee8e7ce6cf6";
       };
     }
     {
@@ -1266,14 +1346,6 @@
       };
     }
     {
-      name = "chalk___chalk_3.0.0.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
-        sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
-      };
-    }
-    {
       name = "chalk___chalk_4.1.0.tgz";
       path = fetchurl {
         name = "chalk___chalk_4.1.0.tgz";
@@ -1330,6 +1402,14 @@
       };
     }
     {
+      name = "cli_truncate___cli_truncate_1.1.0.tgz";
+      path = fetchurl {
+        name = "cli_truncate___cli_truncate_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz";
+        sha1 = "2b2dfd83c53cfd3572b87fc4d430a808afb04086";
+      };
+    }
+    {
       name = "cliui___cliui_6.0.0.tgz";
       path = fetchurl {
         name = "cliui___cliui_6.0.0.tgz";
@@ -1410,6 +1490,14 @@
       };
     }
     {
+      name = "colors___colors_1.0.3.tgz";
+      path = fetchurl {
+        name = "colors___colors_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz";
+        sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
+      };
+    }
+    {
       name = "combined_stream___combined_stream_1.0.8.tgz";
       path = fetchurl {
         name = "combined_stream___combined_stream_1.0.8.tgz";
@@ -1418,6 +1506,22 @@
       };
     }
     {
+      name = "commander___commander_2.9.0.tgz";
+      path = fetchurl {
+        name = "commander___commander_2.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
+        sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+      };
+    }
+    {
+      name = "commander___commander_5.1.0.tgz";
+      path = fetchurl {
+        name = "commander___commander_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz";
+        sha1 = "46abbd1652f8e059bddaef99bbdcb2ad9cf179ae";
+      };
+    }
+    {
       name = "component_emitter___component_emitter_1.3.0.tgz";
       path = fetchurl {
         name = "component_emitter___component_emitter_1.3.0.tgz";
@@ -1482,11 +1586,11 @@
       };
     }
     {
-      name = "core_js___core_js_3.8.1.tgz";
+      name = "core_js___core_js_3.8.3.tgz";
       path = fetchurl {
-        name = "core_js___core_js_3.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.8.1.tgz";
-        sha1 = "f51523668ac8a294d1285c3b9db44025fda66d47";
+        name = "core_js___core_js_3.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz";
+        sha1 = "c21906e1f14f3689f93abcc6e26883550dd92dd0";
       };
     }
     {
@@ -1506,11 +1610,19 @@
       };
     }
     {
-      name = "crc32_stream___crc32_stream_4.0.1.tgz";
+      name = "crc32_stream___crc32_stream_4.0.2.tgz";
       path = fetchurl {
-        name = "crc32_stream___crc32_stream_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.1.tgz";
-        sha1 = "0f047d74041737f8a55e86837a1b826bd8ab0067";
+        name = "crc32_stream___crc32_stream_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz";
+        sha1 = "c922ad22b38395abe9d3870f02fa8134ed709007";
+      };
+    }
+    {
+      name = "crc___crc_3.8.0.tgz";
+      path = fetchurl {
+        name = "crc___crc_3.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz";
+        sha1 = "ad60269c2c856f8c299e2c4cc0de4556914056c6";
       };
     }
     {
@@ -1562,11 +1674,11 @@
       };
     }
     {
-      name = "darkreader___darkreader_4.9.26.tgz";
+      name = "darkreader___darkreader_4.9.27.tgz";
       path = fetchurl {
-        name = "darkreader___darkreader_4.9.26.tgz";
-        url  = "https://registry.yarnpkg.com/darkreader/-/darkreader-4.9.26.tgz";
-        sha1 = "ad92139742f22fc406ae14d12ec6e5672a7eedde";
+        name = "darkreader___darkreader_4.9.27.tgz";
+        url  = "https://registry.yarnpkg.com/darkreader/-/darkreader-4.9.27.tgz";
+        sha1 = "69b641d6a3c22b07fb0424406dfd9a3661b37197";
       };
     }
     {
@@ -1602,6 +1714,14 @@
       };
     }
     {
+      name = "debug___debug_4.3.2.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz";
+        sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b";
+      };
+    }
+    {
       name = "decamelize___decamelize_1.2.0.tgz";
       path = fetchurl {
         name = "decamelize___decamelize_1.2.0.tgz";
@@ -1730,11 +1850,27 @@
       };
     }
     {
-      name = "dmg_builder___dmg_builder_22.9.1.tgz";
+      name = "dir_compare___dir_compare_2.4.0.tgz";
+      path = fetchurl {
+        name = "dir_compare___dir_compare_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz";
+        sha1 = "785c41dc5f645b34343a4eafc50b79bac7f11631";
+      };
+    }
+    {
+      name = "dmg_builder___dmg_builder_22.10.4.tgz";
+      path = fetchurl {
+        name = "dmg_builder___dmg_builder_22.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.10.4.tgz";
+        sha1 = "8dab30754346791eb728091359558fd4a8dbb45f";
+      };
+    }
+    {
+      name = "dmg_license___dmg_license_1.0.8.tgz";
       path = fetchurl {
-        name = "dmg_builder___dmg_builder_22.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.9.1.tgz";
-        sha1 = "64647224f37ee47fc9bd01947c21cc010a30511f";
+        name = "dmg_license___dmg_license_1.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.8.tgz";
+        sha1 = "d52e234815f1a07a59706e5f2a2fea71991cf784";
       };
     }
     {
@@ -1794,35 +1930,35 @@
       };
     }
     {
-      name = "ejs___ejs_3.1.5.tgz";
+      name = "ejs___ejs_3.1.6.tgz";
       path = fetchurl {
-        name = "ejs___ejs_3.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz";
-        sha1 = "aed723844dc20acb4b170cd9ab1017e476a0d93b";
+        name = "ejs___ejs_3.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz";
+        sha1 = "5bfd0a0689743bb5268b3550cceeebbc1702822a";
       };
     }
     {
-      name = "electron_builder___electron_builder_22.9.1.tgz";
+      name = "electron_builder___electron_builder_22.10.4.tgz";
       path = fetchurl {
-        name = "electron_builder___electron_builder_22.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.9.1.tgz";
-        sha1 = "a2962db6f2757bc01d02489f38fafe0809f68f60";
+        name = "electron_builder___electron_builder_22.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.10.4.tgz";
+        sha1 = "e1f400cf41ebb632fbf79aa86c5e0ab1ea1ed7e5";
       };
     }
     {
-      name = "electron_publish___electron_publish_22.9.1.tgz";
+      name = "electron_publish___electron_publish_22.10.4.tgz";
       path = fetchurl {
-        name = "electron_publish___electron_publish_22.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.9.1.tgz";
-        sha1 = "7cc76ac4cc53efd29ee31c1e5facb9724329068e";
+        name = "electron_publish___electron_publish_22.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.10.4.tgz";
+        sha1 = "944b00aa6a7746c31ce900ffd8106d243326dca8";
       };
     }
     {
-      name = "electron___electron_11.1.0.tgz";
+      name = "electron___electron_11.2.3.tgz";
       path = fetchurl {
-        name = "electron___electron_11.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/electron/-/electron-11.1.0.tgz";
-        sha1 = "8dfdf579d1eb79feef3e3d2937fc022e72129c90";
+        name = "electron___electron_11.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/electron/-/electron-11.2.3.tgz";
+        sha1 = "8ad1d9858436cfca0e2e5ea7fea326794ae58ebb";
       };
     }
     {
@@ -1978,11 +2114,11 @@
       };
     }
     {
-      name = "eslint___eslint_7.15.0.tgz";
+      name = "eslint___eslint_7.20.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_7.15.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.15.0.tgz";
-        sha1 = "eb155fb8ed0865fcf5d903f76be2e5b6cd7e0bc7";
+        name = "eslint___eslint_7.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.20.0.tgz";
+        sha1 = "db07c4ca4eda2e2316e7aa57ac7fc91ec550bdc7";
       };
     }
     {
@@ -2002,11 +2138,11 @@
       };
     }
     {
-      name = "esquery___esquery_1.3.1.tgz";
+      name = "esquery___esquery_1.4.0.tgz";
       path = fetchurl {
-        name = "esquery___esquery_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
-        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
+        name = "esquery___esquery_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
+        sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
       };
     }
     {
@@ -2202,11 +2338,11 @@
       };
     }
     {
-      name = "filelist___filelist_1.0.1.tgz";
+      name = "filelist___filelist_1.0.2.tgz";
       path = fetchurl {
-        name = "filelist___filelist_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz";
-        sha1 = "f10d1a3ae86c1694808e8f20906f43d4c9132dbb";
+        name = "filelist___filelist_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz";
+        sha1 = "80202f21462d4d1c2e214119b1807c1bc0380e5b";
       };
     }
     {
@@ -2242,11 +2378,11 @@
       };
     }
     {
-      name = "flatted___flatted_3.1.0.tgz";
+      name = "flatted___flatted_3.1.1.tgz";
       path = fetchurl {
-        name = "flatted___flatted_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz";
-        sha1 = "a5d06b4a8b01e3a63771daa5cb7a1903e2e57067";
+        name = "flatted___flatted_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz";
+        sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469";
       };
     }
     {
@@ -2298,11 +2434,11 @@
       };
     }
     {
-      name = "fs_extra___fs_extra_9.0.1.tgz";
+      name = "fs_extra___fs_extra_9.1.0.tgz";
       path = fetchurl {
-        name = "fs_extra___fs_extra_9.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz";
-        sha1 = "910da0062437ba4c39fedd863f1675ccfefcb9fc";
+        name = "fs_extra___fs_extra_9.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz";
+        sha1 = "5954460c764a8da2094ba3554bf839e6b9a7c86d";
       };
     }
     {
@@ -2314,11 +2450,11 @@
       };
     }
     {
-      name = "fsevents___fsevents_2.2.1.tgz";
+      name = "fsevents___fsevents_2.3.2.tgz";
       path = fetchurl {
-        name = "fsevents___fsevents_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.2.1.tgz";
-        sha1 = "1fb02ded2036a8ac288d507a65962bd87b97628d";
+        name = "fsevents___fsevents_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz";
+        sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a";
       };
     }
     {
@@ -2418,11 +2554,11 @@
       };
     }
     {
-      name = "global_dirs___global_dirs_2.0.1.tgz";
+      name = "global_dirs___global_dirs_3.0.0.tgz";
       path = fetchurl {
-        name = "global_dirs___global_dirs_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz";
-        sha1 = "acdf3bb6685bcd55cb35e8a052266569e9469201";
+        name = "global_dirs___global_dirs_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz";
+        sha1 = "70a76fe84ea315ab37b1f5576cbde7d48ef72686";
       };
     }
     {
@@ -2466,11 +2602,19 @@
       };
     }
     {
-      name = "graceful_fs___graceful_fs_4.2.4.tgz";
+      name = "graceful_fs___graceful_fs_4.2.6.tgz";
+      path = fetchurl {
+        name = "graceful_fs___graceful_fs_4.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha1 = "ff040b2b0853b23c3d31027523706f1885d76bee";
+      };
+    }
+    {
+      name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
       path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
-        sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
+        name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+        sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
       };
     }
     {
@@ -2570,11 +2714,11 @@
       };
     }
     {
-      name = "hosted_git_info___hosted_git_info_3.0.7.tgz";
+      name = "hosted_git_info___hosted_git_info_3.0.8.tgz";
       path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_3.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz";
-        sha1 = "a30727385ea85acfcee94e0aad9e368c792e036c";
+        name = "hosted_git_info___hosted_git_info_3.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz";
+        sha1 = "6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d";
       };
     }
     {
@@ -2626,6 +2770,14 @@
       };
     }
     {
+      name = "iconv_corefoundation___iconv_corefoundation_1.1.5.tgz";
+      path = fetchurl {
+        name = "iconv_corefoundation___iconv_corefoundation_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.5.tgz";
+        sha1 = "90596d444a579aeb109f5ca113f6bb665a41be2b";
+      };
+    }
+    {
       name = "iconv_lite___iconv_lite_0.4.24.tgz";
       path = fetchurl {
         name = "iconv_lite___iconv_lite_0.4.24.tgz";
@@ -2658,11 +2810,11 @@
       };
     }
     {
-      name = "import_fresh___import_fresh_3.2.2.tgz";
+      name = "import_fresh___import_fresh_3.3.0.tgz";
       path = fetchurl {
-        name = "import_fresh___import_fresh_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz";
-        sha1 = "fc129c160c5d68235507f4331a6baad186bdbc3e";
+        name = "import_fresh___import_fresh_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
       };
     }
     {
@@ -2706,6 +2858,14 @@
       };
     }
     {
+      name = "ini___ini_2.0.0.tgz";
+      path = fetchurl {
+        name = "ini___ini_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz";
+        sha1 = "e5fd556ecdd5726be978fa1001862eacb0a94bc5";
+      };
+    }
+    {
       name = "ini___ini_1.3.8.tgz";
       path = fetchurl {
         name = "ini___ini_1.3.8.tgz";
@@ -2866,19 +3026,19 @@
       };
     }
     {
-      name = "is_installed_globally___is_installed_globally_0.3.2.tgz";
+      name = "is_installed_globally___is_installed_globally_0.4.0.tgz";
       path = fetchurl {
-        name = "is_installed_globally___is_installed_globally_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz";
-        sha1 = "fd3efa79ee670d1187233182d5b0a1dd00313141";
+        name = "is_installed_globally___is_installed_globally_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz";
+        sha1 = "9a0fd407949c30f86eb6959ef1b7994ed0b7b520";
       };
     }
     {
-      name = "is_npm___is_npm_4.0.0.tgz";
+      name = "is_npm___is_npm_5.0.0.tgz";
       path = fetchurl {
-        name = "is_npm___is_npm_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz";
-        sha1 = "c90dd8380696df87a7a6d823c20d0b12bbe3c84d";
+        name = "is_npm___is_npm_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz";
+        sha1 = "43e8d65cc56e1b67f8d47262cf667099193f45a8";
       };
     }
     {
@@ -3370,6 +3530,14 @@
       };
     }
     {
+      name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
+      };
+    }
+    {
       name = "json_schema___json_schema_0.2.3.tgz";
       path = fetchurl {
         name = "json_schema___json_schema_0.2.3.tgz";
@@ -3394,11 +3562,11 @@
       };
     }
     {
-      name = "json5___json5_2.1.3.tgz";
+      name = "json5___json5_2.2.0.tgz";
       path = fetchurl {
-        name = "json5___json5_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
-        sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
+        name = "json5___json5_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz";
+        sha1 = "2dfefe720c6ba525d9ebd909950f0515316c89a3";
       };
     }
     {
@@ -3682,27 +3850,27 @@
       };
     }
     {
-      name = "mime_db___mime_db_1.44.0.tgz";
+      name = "mime_db___mime_db_1.45.0.tgz";
       path = fetchurl {
-        name = "mime_db___mime_db_1.44.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz";
-        sha1 = "fa11c5eb0aca1334b4233cb4d52f10c5a6272f92";
+        name = "mime_db___mime_db_1.45.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz";
+        sha1 = "cceeda21ccd7c3a745eba2decd55d4b73e7879ea";
       };
     }
     {
-      name = "mime_types___mime_types_2.1.27.tgz";
+      name = "mime_types___mime_types_2.1.28.tgz";
       path = fetchurl {
-        name = "mime_types___mime_types_2.1.27.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz";
-        sha1 = "47949f98e279ea53119f5722e0f34e529bec009f";
+        name = "mime_types___mime_types_2.1.28.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz";
+        sha1 = "1160c4757eab2c5363888e005273ecf79d2a0ecd";
       };
     }
     {
-      name = "mime___mime_2.4.6.tgz";
+      name = "mime___mime_2.5.0.tgz";
       path = fetchurl {
-        name = "mime___mime_2.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
-        sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
+        name = "mime___mime_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz";
+        sha1 = "2b4af934401779806ee98026bb42e8c1ae1876b1";
       };
     }
     {
@@ -3794,6 +3962,14 @@
       };
     }
     {
+      name = "node_addon_api___node_addon_api_1.7.2.tgz";
+      path = fetchurl {
+        name = "node_addon_api___node_addon_api_1.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz";
+        sha1 = "3df30b95720b53c24e59948b49532b662444f54d";
+      };
+    }
+    {
       name = "node_int64___node_int64_0.4.0.tgz";
       path = fetchurl {
         name = "node_int64___node_int64_0.4.0.tgz";
@@ -3810,11 +3986,11 @@
       };
     }
     {
-      name = "node_notifier___node_notifier_8.0.0.tgz";
+      name = "node_notifier___node_notifier_8.0.1.tgz";
       path = fetchurl {
-        name = "node_notifier___node_notifier_8.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.0.tgz";
-        sha1 = "a7eee2d51da6d0f7ff5094bc7108c911240c1620";
+        name = "node_notifier___node_notifier_8.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz";
+        sha1 = "f86e89bbc925f2b068784b31f382afdc6ca56be1";
       };
     }
     {
@@ -3826,6 +4002,14 @@
       };
     }
     {
+      name = "normalize_package_data___normalize_package_data_3.0.0.tgz";
+      path = fetchurl {
+        name = "normalize_package_data___normalize_package_data_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz";
+        sha1 = "1f8a7c423b3d2e85eb36985eaf81de381d01301a";
+      };
+    }
+    {
       name = "normalize_path___normalize_path_2.1.1.tgz";
       path = fetchurl {
         name = "normalize_path___normalize_path_2.1.1.tgz";
@@ -4018,11 +4202,11 @@
       };
     }
     {
-      name = "parse_json___parse_json_5.1.0.tgz";
+      name = "parse_json___parse_json_5.2.0.tgz";
       path = fetchurl {
-        name = "parse_json___parse_json_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz";
-        sha1 = "f96088cdf24a8faa9aea9a009f2d9d942c999646";
+        name = "parse_json___parse_json_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz";
+        sha1 = "c76fc66dee54231c962b22bcc8a72cf2f99753cd";
       };
     }
     {
@@ -4130,6 +4314,14 @@
       };
     }
     {
+      name = "plist___plist_3.0.1.tgz";
+      path = fetchurl {
+        name = "plist___plist_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz";
+        sha1 = "a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c";
+      };
+    }
+    {
       name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
       path = fetchurl {
         name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
@@ -4402,6 +4594,14 @@
       };
     }
     {
+      name = "require_from_string___require_from_string_2.0.2.tgz";
+      path = fetchurl {
+        name = "require_from_string___require_from_string_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
+      };
+    }
+    {
       name = "require_main_filename___require_main_filename_2.0.0.tgz";
       path = fetchurl {
         name = "require_main_filename___require_main_filename_2.0.0.tgz";
@@ -4442,11 +4642,11 @@
       };
     }
     {
-      name = "resolve___resolve_1.19.0.tgz";
+      name = "resolve___resolve_1.20.0.tgz";
       path = fetchurl {
-        name = "resolve___resolve_1.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz";
-        sha1 = "1af5bf630409734a067cae29318aac7fa29a267c";
+        name = "resolve___resolve_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz";
+        sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975";
       };
     }
     {
@@ -4682,11 +4882,27 @@
       };
     }
     {
-      name = "slice_ansi___slice_ansi_2.1.0.tgz";
+      name = "slice_ansi___slice_ansi_1.0.0.tgz";
+      path = fetchurl {
+        name = "slice_ansi___slice_ansi_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz";
+        sha1 = "044f1a49d8842ff307aad6b505ed178bd950134d";
+      };
+    }
+    {
+      name = "slice_ansi___slice_ansi_4.0.0.tgz";
+      path = fetchurl {
+        name = "slice_ansi___slice_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
+      };
+    }
+    {
+      name = "smart_buffer___smart_buffer_4.1.0.tgz";
       path = fetchurl {
-        name = "slice_ansi___slice_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
-        sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
+        name = "smart_buffer___smart_buffer_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz";
+        sha1 = "91605c25d91652f4661ea69ccf45f1b331ca21ba";
       };
     }
     {
@@ -4730,11 +4946,11 @@
       };
     }
     {
-      name = "source_map_url___source_map_url_0.4.0.tgz";
+      name = "source_map_url___source_map_url_0.4.1.tgz";
       path = fetchurl {
-        name = "source_map_url___source_map_url_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
-        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+        name = "source_map_url___source_map_url_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz";
+        sha1 = "0af66605a745a5a2f91cf1bbf8a7afbc283dec56";
       };
     }
     {
@@ -4866,6 +5082,14 @@
       };
     }
     {
+      name = "string_width___string_width_2.1.1.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+      };
+    }
+    {
       name = "string_width___string_width_3.1.0.tgz";
       path = fetchurl {
         name = "string_width___string_width_3.1.0.tgz";
@@ -4898,6 +5122,14 @@
       };
     }
     {
+      name = "strip_ansi___strip_ansi_4.0.0.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+      };
+    }
+    {
       name = "strip_ansi___strip_ansi_5.2.0.tgz";
       path = fetchurl {
         name = "strip_ansi___strip_ansi_5.2.0.tgz";
@@ -4994,19 +5226,19 @@
       };
     }
     {
-      name = "table___table_5.4.6.tgz";
+      name = "table___table_6.0.7.tgz";
       path = fetchurl {
-        name = "table___table_5.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz";
-        sha1 = "1292d19500ce3f86053b05f0e8e7e4a3bb21079e";
+        name = "table___table_6.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz";
+        sha1 = "e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34";
       };
     }
     {
-      name = "tar_stream___tar_stream_2.1.4.tgz";
+      name = "tar_stream___tar_stream_2.2.0.tgz";
       path = fetchurl {
-        name = "tar_stream___tar_stream_2.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz";
-        sha1 = "c4fb1a11eb0da29b893a5b25476397ba2d053bfa";
+        name = "tar_stream___tar_stream_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz";
+        sha1 = "acad84c284136b060dc3faa64474aa9aebd77287";
       };
     }
     {
@@ -5018,14 +5250,6 @@
       };
     }
     {
-      name = "term_size___term_size_2.2.1.tgz";
-      path = fetchurl {
-        name = "term_size___term_size_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz";
-        sha1 = "2a6a54840432c2fb6320fea0f415531e90189f54";
-      };
-    }
-    {
       name = "terminal_link___terminal_link_2.1.1.tgz";
       path = fetchurl {
         name = "terminal_link___terminal_link_2.1.1.tgz";
@@ -5058,19 +5282,19 @@
       };
     }
     {
-      name = "tldts_core___tldts_core_5.6.64.tgz";
+      name = "tldts_core___tldts_core_5.7.6.tgz";
       path = fetchurl {
-        name = "tldts_core___tldts_core_5.6.64.tgz";
-        url  = "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.6.64.tgz";
-        sha1 = "0f80d0c9607d7583acc477a10dae7e62e7c08063";
+        name = "tldts_core___tldts_core_5.7.6.tgz";
+        url  = "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.7.6.tgz";
+        sha1 = "af99b4ab79761dfa6c44d1d61a3f76bb5c3def8b";
       };
     }
     {
-      name = "tldts_experimental___tldts_experimental_5.6.64.tgz";
+      name = "tldts_experimental___tldts_experimental_5.7.6.tgz";
       path = fetchurl {
-        name = "tldts_experimental___tldts_experimental_5.6.64.tgz";
-        url  = "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.6.64.tgz";
-        sha1 = "f867449964d94c6a17a499335658f42a9fbdc7d3";
+        name = "tldts_experimental___tldts_experimental_5.7.6.tgz";
+        url  = "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.7.6.tgz";
+        sha1 = "10c255872af89ab68659c3a345c7a65015920024";
       };
     }
     {
@@ -5226,6 +5450,14 @@
       };
     }
     {
+      name = "type_fest___type_fest_0.20.2.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.20.2.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
+        sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
+      };
+    }
+    {
       name = "type_fest___type_fest_0.6.0.tgz";
       path = fetchurl {
         name = "type_fest___type_fest_0.6.0.tgz";
@@ -5282,14 +5514,6 @@
       };
     }
     {
-      name = "universalify___universalify_1.0.0.tgz";
-      path = fetchurl {
-        name = "universalify___universalify_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz";
-        sha1 = "b61a1da173e8435b2fe3c67d29b9adf8594bd16d";
-      };
-    }
-    {
       name = "universalify___universalify_2.0.0.tgz";
       path = fetchurl {
         name = "universalify___universalify_2.0.0.tgz";
@@ -5306,19 +5530,19 @@
       };
     }
     {
-      name = "update_notifier___update_notifier_4.1.3.tgz";
+      name = "update_notifier___update_notifier_5.1.0.tgz";
       path = fetchurl {
-        name = "update_notifier___update_notifier_4.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz";
-        sha1 = "be86ee13e8ce48fb50043ff72057b5bd598e1ea3";
+        name = "update_notifier___update_notifier_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz";
+        sha1 = "4ab0d7c7f36a231dd7316cf7729313f0214d9ad9";
       };
     }
     {
-      name = "uri_js___uri_js_4.4.0.tgz";
+      name = "uri_js___uri_js_4.4.1.tgz";
       path = fetchurl {
-        name = "uri_js___uri_js_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz";
-        sha1 = "aa714261de793e8a82347a7bcc9ce74e86f28602";
+        name = "uri_js___uri_js_4.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz";
+        sha1 = "9b1a52595225859e55f669d928f88c6c57f2a77e";
       };
     }
     {
@@ -5386,11 +5610,11 @@
       };
     }
     {
-      name = "v8_to_istanbul___v8_to_istanbul_7.0.0.tgz";
+      name = "v8_to_istanbul___v8_to_istanbul_7.1.0.tgz";
       path = fetchurl {
-        name = "v8_to_istanbul___v8_to_istanbul_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz";
-        sha1 = "b4fe00e35649ef7785a9b7fcebcea05f37c332fc";
+        name = "v8_to_istanbul___v8_to_istanbul_7.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz";
+        sha1 = "5b95cef45c0f83217ec79f8fc7ee1c8b486aee07";
       };
     }
     {
@@ -5546,11 +5770,11 @@
       };
     }
     {
-      name = "ws___ws_7.4.1.tgz";
+      name = "ws___ws_7.4.3.tgz";
       path = fetchurl {
-        name = "ws___ws_7.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz";
-        sha1 = "a333be02696bd0e54cea0434e21dcc8a9ac294bb";
+        name = "ws___ws_7.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz";
+        sha1 = "1f9643de34a543b8edb124bdcbc457ae55a6e5cd";
       };
     }
     {
@@ -5570,6 +5794,22 @@
       };
     }
     {
+      name = "xmlbuilder___xmlbuilder_15.1.1.tgz";
+      path = fetchurl {
+        name = "xmlbuilder___xmlbuilder_15.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz";
+        sha1 = "9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5";
+      };
+    }
+    {
+      name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
+      path = fetchurl {
+        name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
+        sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
+      };
+    }
+    {
       name = "xmlchars___xmlchars_2.2.0.tgz";
       path = fetchurl {
         name = "xmlchars___xmlchars_2.2.0.tgz";
@@ -5578,6 +5818,14 @@
       };
     }
     {
+      name = "xmldom___xmldom_0.1.31.tgz";
+      path = fetchurl {
+        name = "xmldom___xmldom_0.1.31.tgz";
+        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz";
+        sha1 = "b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff";
+      };
+    }
+    {
       name = "y18n___y18n_4.0.1.tgz";
       path = fetchurl {
         name = "y18n___y18n_4.0.1.tgz";
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
index 2fe27c16720d..96355789eb39 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE, libxkbcommon
+{ lib, stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE, libxkbcommon, libxshmfence
 , libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr
 , alsaLib, dbus, cups, libexif, ffmpeg_3, systemd
 , freetype, fontconfig, libXft, libXrender, libxcb, expat
@@ -18,11 +18,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "3.5.2115.87-1";
+  version = "3.7.2218.45-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "0m0w2sj6kdd2b67f3kfcf4qyyxhqnmi2qzjwmqpmns9a485s6bn0";
+    sha256 = "11q3whw01nbwvzccgn55b4lkr7dzlql961406r6by8xqvf8zgmp4";
   };
 
   unpackPhase = ''
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ patchelf makeWrapper ];
 
   buildInputs = [
-    stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb libxkbcommon
+    stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb libxkbcommon libxshmfence
     libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
     atk at-spi2-atk at-spi2-core alsaLib dbus cups gtk3 gdk-pixbuf libexif ffmpeg_3 systemd
     freetype fontconfig libXrender libuuid expat glib nss nspr
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix
index 3b3a0a858907..81c95418e691 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0l743f2yyaq1vvc3iicajgnfpjxjsfvjcqvanndbxs23skgjcv6r";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   unpackPhase = ''
     unzip $src
diff --git a/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix
index d9e997f514b6..327fc5f31e2f 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix
@@ -41,12 +41,12 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gnum4 makeWrapper perl pkg-config python2
+    gnum4 makeWrapper perl pkg-config python2 unzip
   ];
 
   buildInputs = [
     alsaLib dbus dbus-glib ffmpeg fontconfig freetype yasm zip jack2 gtk2
-    unzip gnome2.GConf xorg.libXt
+    gnome2.GConf xorg.libXt
   ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/networking/calls/default.nix b/nixpkgs/pkgs/applications/networking/calls/default.nix
index 01797397f4ef..8937404e91d3 100644
--- a/nixpkgs/pkgs/applications/networking/calls/default.nix
+++ b/nixpkgs/pkgs/applications/networking/calls/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitLab
 , meson
 , ninja
-, cmake
 , pkg-config
 , libhandy
 , modemmanager
@@ -13,37 +12,46 @@
 , feedbackd
 , callaudiod
 , evolution-data-server
+, glib
 , folks
 , desktop-file-utils
+, appstream-glib
 , libpeas
 , dbus
 , vala
 , wrapGAppsHook
-, xorg
 , xvfb_run
-, libxml2
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, gobject-introspection
 }:
 
 stdenv.mkDerivation rec {
   pname = "calls";
-  version = "0.2.0";
+  version = "0.3.1";
 
   src = fetchFromGitLab {
     domain = "source.puri.sm";
     owner = "Librem5";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qmjdhnr95dawccw1ss8hc3lk0cypj86xg2amjq7avzn86ryd76l";
+    sha256 = "0igap5ynq269xqaky6fqhdg2dpsvxa008z953ywa4s5b5g5dk3dd";
   };
 
+  outputs = [ "out" "devdoc" ];
+
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
     desktop-file-utils
+    appstream-glib
     vala
-    cmake
     wrapGAppsHook
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
   ];
 
   buildInputs = [
@@ -64,10 +72,10 @@ stdenv.mkDerivation rec {
     xvfb_run
   ];
 
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
   mesonFlags = [
-    # docs fail to build
-    # https://source.puri.sm/Librem5/calls/issues/99
-    "-Dgtk_doc=false"
+    "-Dgtk_doc=true"
   ];
 
   doCheck = true;
@@ -75,6 +83,7 @@ stdenv.mkDerivation rec {
   checkPhase = ''
     runHook preCheck
     NO_AT_BRIDGE=1 \
+    XDG_DATA_DIRS=${folks}/share/gsettings-schemas/${folks.name} \
     xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
       --config-file=${dbus.daemon}/share/dbus-1/session.conf \
       meson test --print-errorlogs
diff --git a/nixpkgs/pkgs/applications/networking/charles/default.nix b/nixpkgs/pkgs/applications/networking/charles/default.nix
index 03d1911333e3..1e44d46689ff 100644
--- a/nixpkgs/pkgs/applications/networking/charles/default.nix
+++ b/nixpkgs/pkgs/applications/networking/charles/default.nix
@@ -3,11 +3,12 @@ lib, stdenv
 , makeWrapper
 , makeDesktopItem
 , fetchurl
+, jdk11
 , jdk8
 }:
 
 let
-  generic = { version, sha256, ... }@attrs:
+  generic = { version, sha256, platform ? "", jdk, ... }@attrs:
   let
     desktopItem = makeDesktopItem {
       categories = "Network;Development;WebDevelopment;Java;";
@@ -25,13 +26,13 @@ let
       inherit version;
 
       src = fetchurl {
-        url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}.tar.gz";
+        url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}${platform}.tar.gz";
         inherit sha256;
       };
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ makeWrapper ];
 
       installPhase = ''
-        makeWrapper ${jdk8.jre}/bin/java $out/bin/charles \
+        makeWrapper ${jdk}/bin/java $out/bin/charles \
           --add-flags "-Xmx1024M -Dcharles.config='~/.charles.config' -jar $out/share/java/charles.jar"
 
         for fn in lib/*.jar; do
@@ -56,12 +57,15 @@ let
 
 in {
   charles4 = (generic {
-    version = "4.2.8";
-    sha256 = "1jzjdhzxgrq7pdfryfkg0hsjpyni14ma4x8jbdk1rqll78ccr080";
+    version = "4.6.1";
+    sha256 = "1kl83jjj5wjhdpj34gcj04vf1asxlqlfx9zi91ln4v90swlaaclv";
+    platform = "_amd64";
+    jdk = jdk11;
   });
   charles3 = (generic {
     version = "3.12.3";
     sha256 = "13zk82ny1w5zd9qcs9qkq0kdb22ni5byzajyshpxdfm4zv6p32ss";
+    jdk = jdk8.jre;
   });
 }
 
diff --git a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
index 6b1df1acf5ad..8310d0584925 100644
--- a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2021.2.1";
+  version = "2021.3.3";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    sha256 = "sha256-kmlyj6Q+OAJ0cKMeWxajPDBm99WpRf+Gpvc+Jy79DCo=";
+    sha256 = "sha256-St2WBdy76OVFlYoY1RGwQj1WsUpPtsL7yX1MFwztKgs=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
index 8460322f05b1..6e5d05ff0d75 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,13 +19,13 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "2.12.7";
+  version = "2.12.10";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "sha256-bMbfFAI4oGZc7FOlU8LczbjAq1cYmJg5WTXkQKS9vgo=";
+    sha256 = "sha256-A4s6D3/1FsqrJ+Jaql4IuyD9ySChL3SXqVvl8wUDRDE=";
   };
 
   vendorSha256 = "sha256-4XPMixVNj6PUKobNLwpsOBT7Zs/7pkhDtQacLIB5EfE=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
index c3e9a774fa90..f1c98e0ed84c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "1.8.3";
-  commit = "ef5010c3a0b5e027fd642732d03c5b0391b1e574";
+  version = "1.8.6";
+  commit = "28aea3dfdede00443b52cc584814d80e8f896200";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    sha256 = "sha256-do5DAxaQ1gBdvNN/YGKAkmkFcJ+j/ojBaWPwrXXQko0=";
+    sha256 = "sha256-kJ3/1owK5T+FbcvjmK2CO+i/KwmVZRSGzF6fCt8J9E8=";
   };
 
-  vendorSha256 = "sha256-6DOay+aeXz7EQKe5SzQSmg/5KyUI0g6wzPgx/+F2RW4=";
+  vendorSha256 = "sha256-rZ/ox180h9scocheYtMmKkoHY2/jH+I++vYX8R0fdlA=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
index 728e23ff380f..dcb6b823667e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.16.0";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    sha256 = "sha256-1sak6CaqFhiBIoaa7kERXLHsgn24oMgBlOJaQDuF61E=";
+    sha256 = "sha256-D549pInoK8ispgcn8LYdix19Hp7wO6w2/d2Y1L/9Px8=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
index de032cc60e99..a251886ebdd7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub, fetchurl, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, fetchurl, installShellFiles }:
 
 buildGoModule rec {
   pname = "cloudfoundry-cli";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
index a45f3553b921..1d8a8228af15 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,26 +1,39 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
+
+let
+  version = "0.11.0";
+
+  manifests = fetchzip {
+    url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
+    sha256 = "sha256-nqvFJriNMK3SvAsNzhE8MCzVNR8j/TjYU+f1PbuxkuI=";
+    stripRoot = false;
+  };
+in
 
 buildGoModule rec {
+  inherit version;
+
   pname = "fluxcd";
-  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "fluxcd";
     repo = "flux2";
     rev = "v${version}";
-    sha256 = "1k7zcn8l60qfgiixkjcmp94w87w88n475mmhf58vl5pfz21p9vky";
+    sha256 = "sha256-V4cZuRlC1Hu4gBG5/8ZNBKlSBFLgOtSJ3GbpjW5/8xM=";
   };
 
-  vendorSha256 = "16yixz47zrzjkb2k4n03zfivpc2cavcrrv4fz8s5a4xzfrcp4nvx";
+  vendorSha256 = "sha256-aVVvrOjCKxzFer5uZRSu1LCQKkGkPcBdKdebN5uHUUg=";
 
   nativeBuildInputs = [ installShellFiles ];
 
-  doCheck = false;
-
   subPackages = [ "cmd/flux" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
 
+  postUnpack = ''
+    cp -r ${manifests} source/cmd/flux/manifests
+  '';
+
   doInstallCheck = true;
   installCheckPhase = ''
     $out/bin/flux --version | grep ${version} > /dev/null
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
index 4a8f42e3cc7e..1d02e675f9c4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fluxctl";
-  version = "1.21.1";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "sha256-/go8V1EjY/iL3csoNpPyeWORvWCf0WnnaSOgiZ8UFQ8=";
+    sha256 = "sha256-SaDO3a50CLhgLafCdgKEfHpuHdIweSy5L/TUgEUv5CM=";
   };
 
-  vendorSha256 = "sha256-GEU0Q2Elhiel20xvup+i1DSXCjQdA9s7cWykcbKR5KA=";
+  vendorSha256 = "sha256-4uSw/9lI/rdDqy78jNC9eHYW/v/sMFb+sQvwYG6GZks=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
index 4f3dfcfc03f7..659e8ee41701 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
@@ -1,9 +1,12 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config, which, maven, cmake, jre, bash
+{ lib, stdenv, fetchurl, makeWrapper, pkg-config, which, maven, cmake, jre, jdk8, bash
 , coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2
 }:
 
 let
-  common = { version, sha256, dependencies-sha256, tomcat, opensslPkg ? openssl }:
+  maven-jdk8 = maven.override {
+    jdk = jdk8;
+  };
+  common = { version, sha256, dependencies-sha256, maven, tomcat, opensslPkg ? openssl }:
     let
       # compile the hadoop tarball from sources, it requires some patches
       binary-distributon = stdenv.mkDerivation rec {
@@ -131,6 +134,7 @@ in {
     dependencies-sha256 = "1lsr9nvrynzspxqcamb10d596zlnmnfpxhkd884gdiva0frm0b1r";
     tomcat = tomcat_6_0_48;
     opensslPkg = openssl_1_0_2;
+    maven = maven-jdk8;
   };
   hadoop_2_8 = common {
     version = "2.8.4";
@@ -138,6 +142,7 @@ in {
     dependencies-sha256 = "1j4f461487fydgr5978nnm245ksv4xbvskfr8pbmfhcyss6b7w03";
     tomcat = tomcat_6_0_48;
     opensslPkg = openssl_1_0_2;
+    maven = maven-jdk8;
   };
   hadoop_2_9 = common {
     version = "2.9.1";
@@ -145,17 +150,20 @@ in {
     dependencies-sha256 = "1d5i8jj5y746rrqb9lscycnd7acmxlkz64ydsiyqsh5cdqgy2x7x";
     tomcat = tomcat_6_0_48;
     opensslPkg = openssl_1_0_2;
+    maven = maven-jdk8;
   };
   hadoop_3_0 = common {
     version = "3.0.3";
     sha256 = "1vvkci0kx4b48dg0niifn2d3r4wwq8pb3c5z20wy8pqsqrqhlci5";
     dependencies-sha256 = "1kzkna9ywacm2m1cirj9cyip66bgqjhid2xf9rrhq6g10lhr8j9m";
     tomcat = null;
+    maven = maven-jdk8;
   };
   hadoop_3_1 = common {
     version = "3.1.1";
     sha256 = "04hhdbyd4x1hy0fpy537f8mi0864hww97zap29x7dk1smrffwabd";
     dependencies-sha256 = "1q63jsxg3d31x0p8hvhpvbly2b07almyzsbhwphbczl3fhlqgiwn";
     tomcat = null;
+    maven = maven-jdk8;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
index 5da9e9220a80..501956ec9382 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 = "helm";
-  version = "3.5.2";
+  version = "3.5.3";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-XFWJtzKQrZL6lcr8JNiEQ8ldG5289x5pE21E8XgoYkA=";
+    sha256 = "sha256-7xO07JDy6ujWlDF+5Xd3myRQ8ajTppCXz9fNe4yizVw=";
   };
-  vendorSha256 = "sha256-mjWQxCCtTgj1VCFjnuJWgDjwMt/r4jiFC9Of+CXRgPg=";
+  vendorSha256 = "sha256-lpEoUgABtJczwShNdvD+zYAPDFTJqILSei2YY6mQ2mw=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix
new file mode 100644
index 000000000000..edd19a25f9ba
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix
@@ -0,0 +1,11 @@
+{ callPackage }:
+
+{
+
+  helm-diff = callPackage ./helm-diff.nix {};
+
+  helm-s3 = callPackage ./helm-s3.nix {};
+
+  helm-secrets = callPackage ./helm-secrets.nix {};
+
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
new file mode 100644
index 000000000000..ce6491bfba47
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
@@ -0,0 +1,35 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "helm-diff";
+  version = "3.1.3";
+
+  src = fetchFromGitHub {
+    owner = "databus23";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-h26EOjKNrlcrs2DAYj0NmDRgNRKozjfw5DtxUgHNTa4=";
+  };
+
+  vendorSha256 = "sha256-+n/QBuZqtdgUkaBG7iqSuBfljn+AdEzDoIo5SI8ErQA=";
+
+  # NOTE: Remove the install and upgrade hooks.
+  postPatch = ''
+    sed -i '/^hooks:/,+2 d' plugin.yaml
+  '';
+
+  postInstall = ''
+    install -dm755 $out/${pname}
+    mv $out/bin $out/${pname}/
+    mv $out/${pname}/bin/{helm-,}diff
+    install -m644 -Dt $out/${pname} plugin.yaml
+  '';
+
+  meta = with lib; {
+    description = "A Helm plugin that shows a diff";
+    inherit (src.meta) homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
new file mode 100644
index 000000000000..661048a0c72c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
@@ -0,0 +1,38 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "helm-s3";
+  version = "0.10.0";
+
+  src = fetchFromGitHub {
+    owner = "hypnoglow";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-2BQ/qtoL+iFbuLvrJGUuxWFKg9u1sVDRcRm2/S0mgyc=";
+  };
+
+  vendorSha256 = "sha256-/9TiY0XdkiNxW5JYeC5WD9hqySCyYYU8lB+Ft5Vm96I=";
+
+  # NOTE: Remove the install and upgrade hooks.
+  postPatch = ''
+    sed -i '/^hooks:/,+2 d' plugin.yaml
+  '';
+
+  checkPhase = ''
+    make test-unit
+  '';
+
+  postInstall = ''
+    install -dm755 $out/${pname}
+    mv $out/bin $out/${pname}/
+    install -m644 -Dt $out/${pname} plugin.yaml
+  '';
+
+  meta = with lib; {
+    description = "A Helm plugin that shows a diff";
+    inherit (src.meta) homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
new file mode 100644
index 000000000000..bef5d230ece3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchFromGitHub, makeWrapper, coreutils, findutils, getopt, gnugrep, gnused, sops, vault }:
+
+stdenv.mkDerivation rec {
+  pname = "helm-secrets";
+  version = "3.5.0";
+
+  src = fetchFromGitHub {
+    owner = "jkroepke";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-EXCr0QjupsBBKTm6Opw5bcNwAD4FGGyOiqaa8L91/OI=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ getopt sops ];
+
+  # NOTE: helm-secrets is comprised of shell scripts.
+  dontBuild = true;
+
+  # NOTE: Remove the install and upgrade hooks.
+  postPatch = ''
+    sed -i '/^hooks:/,+2 d' plugin.yaml
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -dm755 $out/${pname} $out/${pname}/scripts
+    install -m644 -Dt $out/${pname} plugin.yaml
+    cp -r scripts/* $out/${pname}/scripts
+    wrapProgram $out/${pname}/scripts/run.sh \
+        --prefix PATH : ${lib.makeBinPath [ coreutils findutils getopt gnugrep gnused sops vault ]}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Helm plugin that helps manage secrets";
+    inherit (src.meta) homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix
new file mode 100644
index 000000000000..21a29e31243b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix
@@ -0,0 +1,46 @@
+{ symlinkJoin, lib, makeWrapper, writeText }:
+
+helm:
+
+let
+  wrapper = {
+    plugins ? [],
+    extraMakeWrapperArgs ? ""
+  }:
+  let
+
+  initialMakeWrapperArgs = [
+      "${helm}/bin/helm" "${placeholder "out"}/bin/helm"
+      "--argv0" "$0" "--set" "HELM_PLUGINS" "${pluginsDir}"
+  ];
+
+  pluginsDir = symlinkJoin {
+    name = "helm-plugins";
+    paths = plugins;
+  };
+in
+  symlinkJoin {
+    name = "helm-${lib.getVersion helm}";
+
+    # Remove the symlinks created by symlinkJoin which we need to perform
+    # extra actions upon
+    postBuild = ''
+      rm $out/bin/helm
+      makeWrapper ${lib.escapeShellArgs initialMakeWrapperArgs}  ${extraMakeWrapperArgs}
+    '';
+    paths = [ helm pluginsDir ];
+
+    preferLocalBuild = true;
+
+    nativeBuildInputs = [ makeWrapper ];
+    passthru = { unwrapped = helm; };
+
+    meta = helm.meta // {
+      # To prevent builds on hydra
+      hydraPlatforms = [];
+      # prefer wrapper over the package
+      priority = (helm.meta.priority or 0) - 1;
+    };
+  };
+in
+  lib.makeOverridable wrapper
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
index 72fcc2f9c35f..3c6d66769060 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.138.4";
+  version = "0.138.7";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "sha256-Y0/0wC00s7QY7/B6igOoPKXv5TE2P8NoGd9UhfVmLOk=";
+    sha256 = "sha256-LFNsSd+S+mQiTk7bCnSD/Kp/D0Jefxo80eRsGkStBhs=";
   };
 
   vendorSha256 = "sha256-WlV6moJymQ7VyZXXuViCNN1WP4NzBUszavxpKjQR8to=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
index ccfeb6ed87a5..ed828feefdae 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "helmsman";
-  version = "3.6.4";
+  version = "3.6.6";
 
   src = fetchFromGitHub {
     owner = "Praqma";
     repo = "helmsman";
     rev = "v${version}";
-    sha256 = "sha256-4oJ/undqDSNn+Xn8eFEgOx+7263tmdXTHxXBkyFLpsE=";
+    sha256 = "sha256-SGVch7mMtHi5GYFOrSss4dk29aRTQmBzkPYOetPdF88=";
   };
 
   vendorSha256 = "sha256-mktq5Dnk1mBO2yy5SeMDxa/akXdO5i2WafMTGtH53H8=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
index a7d99fc5bd59..1c7a39d91bd7 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.9.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    sha256 = "sha256-GfQjgtjFynYa8SfQyoGjsyXEv0XuaK8ZbTcMhQGkcTg=";
+    sha256 = "sha256-WcIcI+y8tTY0YfyuR/DUCjN1xbGpCOBWvEHBo+q2EV8=";
   };
-  vendorSha256 = "sha256-Xj9nC9ijLVmrSvgKq33yUyMO+RmeDkf7FKKCehP4GFE=";
+  vendorSha256 = "sha256-pSiJfQTvJ6OisdrWTH6mOcAn/wBA1OcVaGtOwBe1qvQ=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
index 739992e6bc0b..285e1db536de 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
@@ -3,7 +3,7 @@
 , makeWrapper
 , socat
 , iptables
-, iproute
+, iproute2
 , bridge-utils
 , conntrack-tools
 , buildGoPackage
@@ -19,6 +19,7 @@
 , fetchurl
 , fetchzip
 , fetchgit
+, zstd
 }:
 
 with lib;
@@ -43,9 +44,9 @@ with lib;
 # 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.19.4+k3s2";     # k3s git tag
+  k3sVersion = "1.20.4+k3s1";     # k3s git tag
   traefikChartVersion = "1.81.0"; # taken from ./scripts/download at the above k3s tag
-  k3sRootVersion = "0.7.1";       # taken from ./scripts/download at the above k3s tag
+  k3sRootVersion = "0.8.1";       # taken from ./scripts/download at the above k3s tag
   k3sCNIVersion = "0.8.6-k3s1";   # taken from ./scripts/version.sh at the above k3s tag
   # bundled into the k3s binary
   traefikChart = fetchurl {
@@ -64,7 +65,7 @@ let
   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 = "1wjg54816plbdwgv0dibq6dzmcakcmx0wiqijvr4f3gsxgk59zwf";
+    sha256 = "sha256-r3Nkzl9ccry7cgD3YWlHvEWOsWnnFGIkyRH9sx12gks=";
     stripRoot = false;
   };
   k3sPlugins = buildGoPackage rec {
@@ -95,7 +96,7 @@ let
     url = "https://github.com/k3s-io/k3s";
     rev = "v${k3sVersion}";
     leaveDotGit = true; # ./scripts/version.sh depends on git
-    sha256 = "1qxjdgnq8mf54760f0vngcqa2y3b048pcmfsf1g593b2ij1kg1zi";
+    sha256 = "0rmn3nh8a94axv6lb2xjnn3gpq0scnvj69bvcs74azvw62fvq016";
   };
   # Stage 1 of the k3s build:
   # Let's talk about how k3s is structured.
@@ -126,7 +127,12 @@ let
 
     src = k3sRepo;
 
-    patches = [ ./patches/0001-Use-rm-from-path-in-go-generate.patch ./patches/0002-Add-nixpkgs-patches.patch ];
+    # Patch build scripts so that we can use them.
+    # This makes things more dynamically linked (because nix can deal with
+    # dynamically linked dependencies just fine), removes the upload at the
+    # end, and skips building runc + cni, since we have our own derivations for
+    # those.
+    patches = [ ./patches/0002-Add-nixpkgs-patches.patch ];
 
     nativeBuildInputs = [ git pkg-config ];
     buildInputs = [ libseccomp ];
@@ -166,9 +172,10 @@ let
 
     src = k3sRepo;
 
-    patches = [ ./patches/0001-Use-rm-from-path-in-go-generate.patch ./patches/0002-Add-nixpkgs-patches.patch ];
+    # See the above comment in k3sBuildStage1
+    patches = [ ./patches/0002-Add-nixpkgs-patches.patch ];
 
-    nativeBuildInputs = [ git pkg-config ];
+    nativeBuildInputs = [ git pkg-config zstd ];
     # These dependencies are embedded as compressed files in k3s at runtime.
     # Propagate them to avoid broken runtime references to libraries.
     propagatedBuildInputs = [ k3sPlugins k3sBuildStage1 runc ];
@@ -233,7 +240,7 @@ stdenv.mkDerivation rec {
     kmod
     socat
     iptables
-    iproute
+    iproute2
     bridge-utils
     ethtool
     util-linux
@@ -255,10 +262,12 @@ stdenv.mkDerivation rec {
   # Use a wrapper script to reference all the binaries that k3s tries to
   # execute, but that we didn't bundle with it.
   installPhase = ''
+    runHook preInstall
     mkdir -p "$out/bin"
     makeWrapper ${k3sBin}/bin/k3s "$out/bin/k3s" \
       --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \
       --prefix PATH : "$out/bin"
+    runHook postInstall
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch b/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch
deleted file mode 100644
index c439241e8558..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e79ddef65d08599ae3fe8ff39d202ea2416650b8 Mon Sep 17 00:00:00 2001
-From: Euan Kemp <euank@euank.com>
-Date: Sun, 31 May 2020 17:27:05 -0700
-Subject: [PATCH 1/2] Use 'rm' from path in go generate
-
-/bin/rm is less portable. On some distros, like nixos, it doesn't exist
-at all.
----
- main.go | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/main.go b/main.go
-index 62908bb7bb..0527222887 100644
---- a/main.go
-+++ b/main.go
-@@ -1,5 +1,5 @@
- //go:generate go run pkg/codegen/cleanup/main.go
--//go:generate /bin/rm -rf pkg/generated
-+//go:generate rm -rf pkg/generated
- //go:generate go run pkg/codegen/main.go
- //go:generate go fmt pkg/deploy/zz_generated_bindata.go
- //go:generate go fmt pkg/static/zz_generated_bindata.go
--- 
-2.25.4
-
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
index 11e2b0a29153..ee16f923b788 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.24.2";
+  version = "0.24.6";
 
   src = fetchFromGitHub {
     owner  = "derailed";
     repo   = "k9s";
     rev    = "v${version}";
-    sha256 = "0cr7ap9yfd9flcph98rxap2f46fc3v689v31mc8n7vxi9jr07irh";
+    sha256 = "sha256-uqtjAvtsF+4cz3M60Xj9sCNotaoPzaeeTKnXQUB4CIo=";
   };
 
   buildFlagsArray = ''
@@ -18,7 +18,7 @@ buildGoModule rec {
       -X github.com/derailed/k9s/cmd.commit=${src.rev}
   '';
 
-  vendorSha256 = "01g50sfk0k7v60m3anfiq2w9pzl2wpa985s22ciq911h3fscka3f";
+  vendorSha256 = "sha256-/4Aof09MYHPc4VJJV2EyB7T9zNFtYY4JeDGJi67FQic=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix
new file mode 100644
index 000000000000..683a91ffee85
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kconf";
+  version = "1.10.1";
+
+  src = fetchFromGitHub {
+    owner = "particledecay";
+    repo = "kconf";
+    rev = "v${version}";
+    sha256 = "NlTpHQFOJJcIt/xMT3fvdrlxANyg//wtYMmXzEtaFXo=";
+  };
+
+  vendorSha256 = "2d4o87wE9QZltk2YOHc20XVYF8n0EOrDf5mJ6i6EB0c=";
+
+  meta = with lib; {
+    description = "An opinionated command line tool for managing multiple kubeconfigs";
+    homepage = "https://github.com/particledecay/kconf";
+    license = licenses.mit;
+    maintainers = with maintainers; [ thmzlt ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
index ae9380c5139a..577e52ed49d6 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kpt";
-  version = "0.37.1";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "GoogleContainerTools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4SGCYkx9U6XNUrJfVPgNEhFA75CF8GOrtS4BSm6f7mM=";
+    sha256 = "sha256-MBZa4LdpCZnVVbjzkYpPi9/CYGqVLeYy2N/AS1PSYBE=";
   };
 
-  vendorSha256 = "sha256-y/l9k3oTrN+9OGgyiVzCyYi+6lJpcKaEygirytbn9aI=";
+  vendorSha256 = "sha256-P0cN8aw62nPD1OlUAw1E36YxptxtPqqruZfDDG4Ag2w=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix
new file mode 100644
index 000000000000..78cbaca80ab1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kube-capacity";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "robscott";
+    repo = pname;
+    sha256 = "127583hmpj04y522wir76a39frm6zg9z7mb4ny5lxxjqhn0q0cd5";
+  };
+
+  vendorSha256 = "sha256-EgLWZs282IV1euCUCc5ucf267E2Z7GF9SgoImiGvuVM=";
+
+  meta = with lib; {
+    description =
+      "A simple CLI that provides an overview of the resource requests, limits, and utilization in a Kubernetes cluster";
+    homepage = "https://github.com/robscott/kube-capacity";
+    changelog = "https://github.com/robscott/kube-capacity/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bryanasdev000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
index 8e20093f5b21..586fc6cf806b 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "kube-router";
-  version = "1.1.0";
+  version = "1.1.1";
 
   goPackagePath = "github.com/cloudnativelabs/kube-router";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nsd371w667qhgiygxcg4kmynwldb0pbip6x03rc7j854hg8l7k0";
+    sha256 = "sha256-U7vjWtVXmyEPYFS1fAPOgV3WILGPhWsmoawV7B0pZaE=";
   };
 
   buildFlagsArray = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
new file mode 100644
index 000000000000..76bd115a9b13
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kube-score";
+  version = "1.10.1";
+
+  src = fetchFromGitHub {
+    owner = "zegl";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-TYsuSPWTiIlPscul/QO59+lt6sbjJdt7pJuJYO5R9Tc=";
+  };
+
+  vendorSha256 = "sha256-ob7mNheyeTcDWml4gi1SD3Pq+oWtJeySIUg2ZrCj0y0=";
+
+  meta = with lib; {
+    description = "Kubernetes object analysis with recommendations for improved reliability and security";
+    homepage    = "https://github.com/zegl/kube-score";
+    license     = licenses.mit;
+    maintainers = [ maintainers.j4m3s ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
index 5bfceefad5a5..d0aa1029d632 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.0-k3s2" }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.5-k3s1" }:
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "4.2.0";
+  version = "4.4.1";
 
   excludedPackages = "tools";
 
@@ -10,20 +10,17 @@ buildGoModule rec {
     owner = "rancher";
     repo = "k3d";
     rev = "v${version}";
-    sha256 = "sha256-R2RbQlceOD/uY3IdLLiM23gESh/oWnsiTWxHeH/Si18=";
+    sha256 = "sha256-u9P+7qNomamd4BkqWBxA6rDom0hF6t10QfDTjqOMGeE=";
   };
 
   vendorSha256 = null;
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-w"
-    "-s"
-    "-X github.com/rancher/k3d/v4/version.Version=v${version}"
-    "-X github.com/rancher/k3d/v4/version.K3sVersion=v${k3sVersion}"
-  ];
+  preBuild = let t = "github.com/rancher/k3d/v4/version"; in
+    ''
+      buildFlagsArray+=("-ldflags" "-s -w -X ${t}.Version=v${version} -X ${t}.K3sVersion=v${k3sVersion}")
+    '';
 
   doCheck = false;
 
@@ -34,8 +31,17 @@ buildGoModule rec {
       --zsh <($out/bin/k3d completion zsh)
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/k3d --help
+    $out/bin/k3d version | grep "k3d version v${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/rancher/k3d";
+    changelog = "https://github.com/rancher/k3d/blob/v${version}/CHANGELOG.md";
     description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container - k3d";
     longDescription = ''
       k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s
@@ -44,7 +50,7 @@ buildGoModule rec {
       multi-node k3s cluster on a single machine using docker.
     '';
     license = licenses.mit;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ kuznero jlesquembre ngerstle jk ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
index 561bcbf7ad3b..4fda7db9f198 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -1,6 +1,6 @@
 { lib, buildGoPackage, fetchFromGitHub, ... }:
 
-let version = "0.17.0"; in
+let version = "0.18.0"; in
 
 buildGoPackage {
   pname = "kubecfg";
@@ -10,7 +10,7 @@ buildGoPackage {
     owner = "bitnami";
     repo = "kubecfg";
     rev = "v${version}";
-    sha256 = "sha256-/91im204vBS3NjrMOvwTVO6tEBgdpirqJFqCnbIB+iQ=";
+    sha256 = "sha256-TJbuJZDj9ZwEaN8LV/M30+5+IgN8EZCTTBBDB0OgdEE=";
   };
 
   goPackagePath = "github.com/bitnami/kubecfg";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
new file mode 100644
index 000000000000..ca5e30154da4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubeconform";
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "yannh";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-lduHYYskEPUimEX54ymOyo5jY7GGBB42YTefDMNS4qo=";
+  };
+
+  vendorSha256 = null;
+
+  meta = with lib; {
+    description = "A FAST Kubernetes manifests validator, with support for Custom Resources!";
+    homepage    = "https://github.com/yannh/kubeconform/";
+    license     = licenses.asl20;
+    maintainers = [ maintainers.j4m3s ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
new file mode 100644
index 000000000000..5d056907264d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubectl-doctor";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "emirozer";
+    repo = pname;
+    rev = version;
+    sha256 = "0x784jbcwd34vzdnhg2yldh5ivkxvs2qlbsvaammbxkn04ch1ijz";
+  };
+
+  vendorSha256 = "04xq5kp1m7c98gb4fd0dni258vpfnhv535gl2qllfcp2mvk3mn55";
+
+  postInstall = ''
+    mv $out/bin/{cmd,kubectl-doctor}
+  '';
+
+  meta = with lib; {
+    description = "kubectl cluster triage plugin for k8s";
+    homepage = "https://github.com/emirozer/kubectl-doctor";
+    changelog = "https://github.com/emirozer/kubectl-doctor/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.zimbatm ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix
new file mode 100644
index 000000000000..04677cb4277f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubectl-example";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "seredot";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "18vp53cda93qjssxygwqp55yc80a93781839gf3138awngf731yq";
+  };
+
+  vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+
+  meta = with lib; {
+    description = "kubectl plugin for retrieving resource example YAMLs";
+    homepage = "https://github.com/seredot/kubectl-example";
+    changelog = "https://github.com/seredot/kubectl-example/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bryanasdev000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
index d7f829dc00e3..0a928ac9299f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubelogin";
-  version = "0.0.7";
+  version = "0.0.9";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jw8v6ff0iwkwxlhcr35cvhy4zg31dsm1s3q4fxgi901yj1wn6zy";
+    sha256 = "sha256-0+4hrC7A60dbf+1uvTVU2JRynvA3O/lXfgcra1fV9bI=";
   };
 
-  vendorSha256 = "0al8y65xvnwl34jkpqyf6zwr21xn30zswknlym9nnn1n47fyayxb";
+  vendorSha256 = "sha256-erGqCpWlAQanY1ghpNVRhzUEIXv3lCiBGRs888MmHN8=";
 
   buildFlagsArray = ''
     -ldflags=
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
index d4ec9cf5ef30..12127e223a3d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -20,19 +20,21 @@
 
 stdenv.mkDerivation rec {
   pname = "kubernetes";
-  version = "1.19.5";
+  version = "1.20.5";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "15bv620fj4x731f2z2a9dcdss18rk379kc40g49bpqsdn42jjx2z";
+    sha256 = "sha256-RDaD7tlTtAucW8ido9FumKb5E9n6F9H8HwxQ9TPyOLk=";
   };
 
   nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ];
 
   outputs = [ "out" "man" "pause" ];
 
+  patches = [ ./fixup-addonmanager-lib-path.patch ];
+
   postPatch = ''
     # go env breaks the sandbox
     substituteInPlace "hack/lib/golang.sh" \
@@ -53,7 +55,7 @@ stdenv.mkDerivation rec {
 
   postBuild = ''
     ./hack/update-generated-docs.sh
-    (cd build/pause && cc pause.c -o pause)
+    (cd build/pause/linux && cc pause.c -o pause)
   '';
 
   installPhase = ''
@@ -61,14 +63,19 @@ stdenv.mkDerivation rec {
       install -D _output/local/go/bin/''${p##*/} -t $out/bin
     done
 
-    install -D build/pause/pause -t $pause/bin
+    install -D build/pause/linux/pause -t $pause/bin
     installManPage docs/man/man1/*.[1-9]
 
-    cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons
+    # Unfortunately, kube-addons-main.sh only looks for the lib file in either the current working dir
+    # or in /opt. We have to patch this for now.
+    substitute cluster/addons/addon-manager/kube-addons-main.sh $out/bin/kube-addons \
+      --subst-var out
+
+    chmod +x $out/bin/kube-addons
     patchShebangs $out/bin/kube-addons
     wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
 
-    cp ${./mk-docker-opts.sh} $out/bin/mk-docker-opts.sh
+    cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons-lib.sh
 
     for tool in kubeadm kubectl; do
       installShellCompletion --cmd $tool \
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch
new file mode 100644
index 000000000000..ef2904bdcfe7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch
@@ -0,0 +1,23 @@
+diff --git a/cluster/addons/addon-manager/kube-addons-main.sh b/cluster/addons/addon-manager/kube-addons-main.sh
+index 849973470d1..e4fef30eaea 100755
+--- a/cluster/addons/addon-manager/kube-addons-main.sh
++++ b/cluster/addons/addon-manager/kube-addons-main.sh
+@@ -17,17 +17,7 @@
+ # Import required functions. The addon manager is installed to /opt in
+ # production use (see the Dockerfile)
+ # Disabling shellcheck following files as the full path would be required.
+-if [ -f "kube-addons.sh" ]; then
+-  # shellcheck disable=SC1091
+-  source "kube-addons.sh"
+-elif [ -f "/opt/kube-addons.sh" ]; then
+-  # shellcheck disable=SC1091
+-  source "/opt/kube-addons.sh"
+-else
+-  # If the required source is missing, we have to fail.
+-  log ERR "== Could not find kube-addons.sh (not in working directory or /opt) at $(date -Is) =="
+-  exit 1
+-fi
++source "@out@/bin/kube-addons-lib.sh"
+ 
+ # The business logic for whether a given object should be created
+ # was already enforced by salt, and /etc/kubernetes/addons is the
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
deleted file mode 100755
index 22a459f51349..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright 2014 The Kubernetes Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Generate Docker daemon options based on flannel env file.
-
-# exit on any error
-set -e
-
-usage() {
-  echo "$0 [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY]
-
-Generate Docker daemon options based on flannel env file
-OPTIONS:
-    -f  Path to flannel env file. Defaults to /run/flannel/subnet.env
-    -d  Path to Docker env file to write to. Defaults to /run/docker_opts.env
-    -i  Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500
-    -c  Output combined Docker options into DOCKER_OPTS var
-    -k  Set the combined options key to this value (default DOCKER_OPTS=)
-    -m  Do not output --ip-masq (useful for older Docker version)
-" >/dev/stderr
-  exit 1
-}
-
-flannel_env="/run/flannel/subnet.env"
-docker_env="/run/docker_opts.env"
-combined_opts_key="DOCKER_OPTS"
-indiv_opts=false
-combined_opts=false
-ipmasq=true
-val=""
-
-while getopts "f:d:icmk:" opt; do
-  case $opt in
-    f)
-      flannel_env=$OPTARG
-      ;;
-    d)
-      docker_env=$OPTARG
-      ;;
-    i)
-      indiv_opts=true
-      ;;
-    c)
-      combined_opts=true
-      ;;
-    m)
-      ipmasq=false
-      ;;
-    k)
-      combined_opts_key=$OPTARG
-      ;;
-    \?)
-      usage
-      ;;
-  esac
-done
-
-if [[ $indiv_opts = false ]] && [[ $combined_opts = false ]]; then
-  indiv_opts=true
-  combined_opts=true
-fi
-
-if [[ -f "${flannel_env}" ]]; then
-  source "${flannel_env}"
-fi
-
-if [[ -n "$FLANNEL_SUBNET" ]]; then
-  # shellcheck disable=SC2034  # Variable name referenced in OPT_LOOP below
-  DOCKER_OPT_BIP="--bip=$FLANNEL_SUBNET"
-fi
-
-if [[ -n "$FLANNEL_MTU" ]]; then
-  # shellcheck disable=SC2034  # Variable name referenced in OPT_LOOP below
-  DOCKER_OPT_MTU="--mtu=$FLANNEL_MTU"
-fi
-
-if [[ "$FLANNEL_IPMASQ" = true ]] && [[ $ipmasq = true ]]; then
-  # shellcheck disable=SC2034  # Variable name referenced in OPT_LOOP below
-  DOCKER_OPT_IPMASQ="--ip-masq=false"
-fi
-
-eval docker_opts="\$${combined_opts_key}"
-docker_opts+=" "
-
-echo -n "" >"${docker_env}"
-
-# OPT_LOOP
-for opt in $(compgen -v DOCKER_OPT_); do
-  eval val=\$"${opt}"
-
-  if [[ "$indiv_opts" = true ]]; then
-    echo "$opt=\"$val\"" >>"${docker_env}"
-  fi
-
-  docker_opts+="$val "
-done
-
-if [[ "$combined_opts" = true ]]; then
-  echo "${combined_opts_key}=\"${docker_opts}\"" >>"${docker_env}"
-fi
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
index f2071494f168..cf0c84514270 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.14.1";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-sUeXzmgSOkpqzqrX9+wNGj2X7gcf5QSpavXK4MJe8qE=";
+    sha256 = "sha256-wzaNFM/4V2mWqhkqeT70ieQuhgNK79U2b7PhxKqn/X0=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
index 28b3b7199974..af8e04667b7f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubeval";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "instrumenta";
     repo = "kubeval";
     rev = version;
-    sha256 = "05li0qv4q7fy2lr50r6c1r8dhx00jb1g01qmgc72a9zqp378yiq0";
+    sha256 = "sha256-c5UESyWK1rfnD0etOuIroBUSqZQuu57jio7/ArItMP0=";
   };
 
-  vendorSha256 = "1kpwvi84i3h1yjprd6m6hn8l9j235931871y3qk9cl0g8q0hv9ja";
+  vendorSha256 = "sha256-SqYNAUYPUJYmHj4cFEYqQ8hEkYWmmpav9AGOSFDc/M4=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix
new file mode 100644
index 000000000000..0c8f7f1574ce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub}:
+
+buildGoModule rec {
+  name = "kuttl";
+  pname = "kuttl";
+  version = "0.9.0";
+  cli = "kubectl-kuttl";
+
+  src = fetchFromGitHub {
+    owner  = "kudobuilder";
+    repo   = "kuttl";
+    rev    = "v${version}";
+    sha256 = "sha256:1cji0py2340mvcpplwq3licdkzjx7q5f27fdjjxvbhrgksnyw6hs";
+  };
+
+  vendorSha256 = "sha256:1shra42ifa2knxp58fj5hn074jg89f3nqdqk4rqbp3ybir84ahsd";
+
+  subPackages = [ "cmd/kubectl-kuttl" ];
+
+  buildFlagsArray = ''
+    -ldflags=-s -w
+    -X  github.com/kudobuilder/kuttl/pkg/version.gitVersion=${version}
+  '';
+
+  meta = with lib; {
+    description = "The KUbernetes Test TooL (KUTTL) provides a declarative approach to testing production-grade Kubernetes operators";
+    homepage = "https://github.com/kudobuilder/kuttl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ diegolelis ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix b/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
index 656badfe5a0d..a4dac9dd6242 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "lens";
-  version = "3.6.7";
+  version = "4.2.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "https://github.com/lensapp/lens/releases/download/v${version}/Lens-${version}.AppImage";
-    sha256 = "0var7d31ab6lq2vq6brk2dnhlnhqjp2gdqhygif567cdmcpn4vz8";
+    url = "https://github.com/lensapp/lens/releases/download/v${version}/Lens-${version}.x86_64.AppImage";
+    sha256 = "0g60d1h2dn41qdzdnqavwknqynjqil7s8kcqy01h021r81rdpn2q";
     name="${pname}.AppImage";
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
index 81ca2283d204..79cfebd2aff4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
@@ -11,9 +11,9 @@
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.17.1";
+  version = "1.18.1";
 
-  vendorSha256 = "1flny2f7n3vqhl9vkwsqxvzl8q3fv8v0h1p0d0qaqp9lgn02q3bh";
+  vendorSha256 = "sha256-rw1tqz+Y5iSXWIxXV4433Hwgyfz8jYMzKWurCi2hmhM=";
 
   doCheck = false;
 
@@ -21,7 +21,7 @@ buildGoModule rec {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "1m4kw77j4swwg3vqwmwrys7cq790w4g6y4gvdg33z9n1y9xzqys3";
+    sha256 = "sha256-8QI/Kn5LHSD3at7icmEDhjuYP811A4l+2KrRmKTwi8w=";
   };
 
   nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
index 28f7b540722e..ef025dfc6a7f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -2,50 +2,58 @@
 , buildGoModule
 , fetchFromGitHub
 , makeWrapper
+, installShellFiles
 , buildkit
 , cni-plugins
-, extraPackages ? []
+, extraPackages ? [ ]
 }:
 
-let
-  binPath = lib.makeBinPath ([
-    buildkit
-  ] ++ extraPackages);
-in
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.5.0";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
-    owner = "AkihiroSuda";
+    owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lSvYiTh67gK9kJls7VsayV8T3H6RzFEEKe49BOWnUBw=";
+    sha256 = "sha256-4NIyit2HnDXWnHALGzz5KWxe4PU8CwMRwCoIlN/WX78=";
   };
 
-  vendorSha256 = "sha256-qywiaNoO3pI7sfyPbwWR8BLd86RvJ2xSWwCJUsm3RkM=";
+  vendorSha256 = "sha256-qwUAC8LURsn6C3zKzcsuFsOTurjPV9V8Z/1Y9G0eohk=";
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-w"
-    "-s"
-    "-X github.com/AkihiroSuda/nerdctl/pkg/version.Version=v${version}"
-    "-X github.com/AkihiroSuda/nerdctl/pkg/version.Revision=<unknown>"
-  ];
+  preBuild = let t = "github.com/containerd/nerdctl/pkg/version"; in
+    ''
+      buildFlagsArray+=("-ldflags" "-s -w -X ${t}.Version=v${version} -X ${t}.Revision=<unknown>")
+    '';
+
+  # Many checks require a containerd socket and running nerdctl after it's built
+  doCheck = false;
 
   postInstall = ''
     wrapProgram $out/bin/nerdctl \
-      --prefix PATH : "${binPath}" \
+      --prefix PATH : "${lib.makeBinPath ([ buildkit ] ++ extraPackages)}" \
       --prefix CNI_PATH : "${cni-plugins}/bin"
+
+    installShellCompletion --cmd nerdctl \
+      --bash <($out/bin/nerdctl completion bash)
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/nerdctl --help
+    $out/bin/nerdctl --version | grep "nerdctl version ${version}"
+    runHook postInstallCheck
   '';
 
   meta = with lib; {
+    homepage = "https://github.com/containerd/nerdctl/";
+    changelog = "https://github.com/containerd/nerdctl/releases/tag/v${version}";
     description = "A Docker-compatible CLI for containerd";
-    homepage = src.meta.homepage;
     license = licenses.asl20;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ jk ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
index 3885278f1f13..6515885fd8e2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
@@ -2,7 +2,6 @@
 , poetry2nix
 , lib
 , overrides ? (self: super: {})
-, stdenv
 }:
 
 let
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
index 6d298b8df83e..3fc06b0bc73a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
@@ -3,7 +3,7 @@
 pkgs.mkShell {
   buildInputs = [
     pkgs.poetry2nix.cli
-    pkgs.pkgconfig
+    pkgs.pkg-config
     pkgs.libvirt
     pkgs.poetry
   ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
index ffc682ca4d90..e53a9c39ea7e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "node-problem-detector";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8qY99sEEOFY2eMfuZSWv49nw1LKVHn50P1gYQN6y2f4=";
+    sha256 = "sha256-GyWvwgLtE8N+HLmGKUOjv5HXl2sdnecjh5y6VCOs+/0=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix
index 6ae59033835c..99c43aeeee46 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix
@@ -6,6 +6,6 @@
 
 callPackage ./generic.nix {
   inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
-  version = "1.0.3";
-  sha256 = "142rwpli8mbyg4vhhybnym34rk9w1ns4ddfhqjr1ygmxb1rlsngi";
+  version = "1.0.4";
+  sha256 = "0znaxz9mzbqb59p6rwa5h89m344m2ci39jsx8dfh1v5fc17r0fcq";
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
index ebf3cb417d69..0e97b541a5dc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
@@ -1,38 +1,53 @@
-{ lib, stdenv, fetchurl }:
-let
-  version = "0.16.3";
+{ lib, stdenv, fetchzip }:
 
-  system = stdenv.hostPlatform.system;
+let
+  inherit (stdenv.hostPlatform) system;
   suffix = {
     x86_64-linux = "Linux-64bit";
     aarch64-linux = "Linux-arm64";
     x86_64-darwin = "macOS-64bit";
   }."${system}" or (throw "Unsupported system: ${system}");
-
   baseurl = "https://github.com/vmware-tanzu/octant/releases/download";
-  fetchsrc = sha256: fetchurl {
-    url = "${baseurl}/v${version}/octant_${version}_${suffix}.tar.gz";
-    sha256 = sha256."${system}";
-  };
+  fetchsrc = version: sha256: fetchzip {
+      url = "${baseurl}/v${version}/octant_${version}_${suffix}.tar.gz";
+      sha256 = sha256."${system}";
+    };
 in
 stdenv.mkDerivation rec {
   pname = "octant";
-  inherit version;
+  version = "0.18.0";
 
-  src = fetchsrc {
-    x86_64-linux = "1c6v7d8i494k32b0zrjn4fn1idza95r6h99c33c5za4hi7gqvy0x";
-    aarch64-linux = "153jd4wsq8qc598w7y4d30dy20ljyhrl68cc3pig1p712l5258zs";
-    x86_64-darwin = "0y2qjdlyvhrzwg0fmxsr3jl39kd13276a7wg0ndhdjfwxvdwpxkz";
+  src = fetchsrc version {
+    x86_64-linux = "sha256-D/pHOXR7XQoJCGqUep1lBAY4239HH35m+evFd21pcK0=";
+    aarch64-linux = "sha256-aL1axz3ebqrKQ3xK2UgDMQ+o6ZKgIvwy6Phici7WT2c=";
+    x86_64-darwin = "sha256-MFxOAAEnLur0LJJNU0SSlO+bH4f18zOfZNA49fKEQEw=";
   };
 
-  doCheck = false;
+  dontConfigure = true;
+  dontBuild = true;
 
   installPhase = ''
-    mkdir -p "$out/bin"
-    mv octant $out/bin
+    runHook preInstall
+    install -D octant $out/bin/octant
+    runHook postInstall
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/octant --help
+    $out/bin/octant version | grep "${version}"
+    runHook postInstallCheck
   '';
 
+  dontPatchELF = true;
+  dontPatchShebangs = true;
+
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
+    homepage = "https://octant.dev/";
+    changelog = "https://github.com/vmware-tanzu/octant/blob/v${version}/CHANGELOG.md";
     description = "Highly extensible platform for developers to better understand the complexity of Kubernetes clusters.";
     longDescription = ''
       Octant is a tool for developers to understand how applications run on a Kubernetes cluster.
@@ -40,9 +55,8 @@ stdenv.mkDerivation rec {
       Octant offers a combination of introspective tooling, cluster navigation, and object management along with a
       plugin system to further extend its capabilities.
     '';
-    homepage = "https://octant.dev/";
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ jk ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
index e956715d9b0c..988b2d02df98 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "starboard-octant-plugin";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-u+yxAGVVFsZpiexToNDUfQATsYOkKWHkYF9roK0OInY=";
+    sha256 = "sha256-wis2ECCVXQeD7GiCMJQai+wDM8QJ1j5dPnE5O/I3wpM=";
   };
 
-  vendorSha256 = "sha256-c5sel3xs4npTENqRQu8d9hUOK1OFQodF3M0ZpUpr1po=";
+  vendorSha256 = "sha256-T0wDbAl5GXphZIBrM36OwRCojnJ/cbXNqsjtCzUDZ6s=";
 
   buildFlagsArray = [ "-ldflags=" "-s" "-w" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/update.sh b/nixpkgs/pkgs/applications/networking/cluster/octant/update.sh
new file mode 100755
index 000000000000..4ffe4aefb30c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/update.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused gawk nix-prefetch
+
+set -euo pipefail
+
+ROOT="$(dirname "$(readlink -f "$0")")"
+NIX_DRV="$ROOT/default.nix"
+if [ ! -f "$NIX_DRV" ]; then
+  echo "ERROR: cannot find default.nix in $ROOT"
+  exit 1
+fi
+
+fetch_arch() {
+  VER="$1"; ARCH="$2"
+  URL="https://github.com/vmware-tanzu/octant/releases/download/v${VER}/octant_${VER}_${ARCH}.tar.gz"
+  nix-prefetch "{ stdenv, fetchzip }:
+stdenv.mkDerivation rec {
+  pname = \"octant\"; version = \"${VER}\";
+  src = fetchzip { url = \"$URL\"; };
+}
+"
+}
+
+replace_sha() {
+  sed -i "s#$1 = \"sha256-.\{44\}\"#$1 = \"$2\"#" "$NIX_DRV"
+}
+
+OCTANT_VER=$(curl -Ls -w "%{url_effective}" -o /dev/null https://github.com/vmware-tanzu/octant/releases/latest | awk -F'/' '{print $NF}' | sed 's/v//')
+
+OCTANT_LINUX_X64_SHA256=$(fetch_arch "$OCTANT_VER" "Linux-64bit")
+OCTANT_DARWIN_X64_SHA256=$(fetch_arch "$OCTANT_VER" "Linux-arm64")
+OCTANT_LINUX_AARCH64_SHA256=$(fetch_arch "$OCTANT_VER" "macOS-64bit")
+
+sed -i "s/version = \".*\"/version = \"$OCTANT_VER\"/" "$NIX_DRV"
+
+replace_sha "x86_64-linux" "$OCTANT_LINUX_X64_SHA256"
+replace_sha "x86_64-darwin" "$OCTANT_LINUX_AARCH64_SHA256"
+replace_sha "aarch64-linux" "$OCTANT_DARWIN_X64_SHA256"
diff --git a/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
index 53209d2edd67..a1d4b1468376 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, util-linux
-, coreutils, kerberos, ncurses, clang, installShellFiles
+, coreutils, libkrb5, ncurses, clang, installShellFiles
 , components ? [
   "cmd/oc"
   "cmd/openshift"
@@ -33,7 +33,7 @@ in buildGoPackage rec {
 
   goPackagePath = "github.com/openshift/origin";
 
-  buildInputs = [ kerberos ncurses ];
+  buildInputs = [ libkrb5 ncurses ];
 
   nativeBuildInputs = [ which rsync go-bindata clang installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix
new file mode 100644
index 000000000000..52c9c191218c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "pgo-client";
+  version = "4.6.2";
+
+  src = fetchFromGitHub {
+    owner = "CrunchyData";
+    repo = "postgres-operator";
+    rev = "v${version}";
+    sha256 = "sha256-zPFsLKbuVq2wMjFsqjBGiatPBwGR/X6q3mj8o5BE+r0=";
+  };
+
+  vendorSha256 = "sha256-DU1kc7YDQ+denj6tHVGt79s494aBFZ2KM7PVSn951KI=";
+
+  subPackages = [ "cmd/pgo" ];
+
+  meta = with lib; {
+    description = "A CLI client for Crunchy PostgreSQL Kubernetes Operator";
+    homepage = "https://github.com/CrunchyData/postgres-operator";
+    changelog = "https://github.com/CrunchyData/postgres-operator/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bryanasdev000 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
index a4f15586ad0e..7bcd905c9997 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "qbec";
-  version = "0.13.4";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "splunk";
     repo = "qbec";
     rev = "v${version}";
-    sha256 = "sha256-jbGEkBBXb1dDv4E7vEPVyvDahz27Kpyo3taenCH/vfw=";
+    sha256 = "sha256-F5xnW9069Xrl6isvmeYtfTZUZSiSq47HLs5/p3HCf6E=";
   };
 
-  vendorSha256 = "sha256-rzxtLaGUl8hxcJ+GWlrkjN+f7mb0lXrtkHj/pBO8HzQ=";
+  vendorSha256 = "sha256-wtpXqIixjRYYSIPe43Q5627g6mu05WdvwCi9cXVgCBs=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix b/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
index f344b8c3eb97..8f4324f43435 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -5,7 +5,7 @@ let rev = "f6e19140201d6bf2f1274bf6567087bc25154210";
 in
 buildGoModule rec {
   pname = "sonobuoy";
-  version = "0.20.0"; # Do not forget to update `rev` above
+  version = "0.50.0"; # Do not forget to update `rev` above
 
   buildFlagsArray =
     let t = "github.com/vmware-tanzu/sonobuoy";
@@ -17,13 +17,13 @@ buildGoModule rec {
     '';
 
   src = fetchFromGitHub {
-    sha256 = "11qawsv82i1pl4mwfc85wb4fbq961bplvmygnjfm79m8z87863ri";
+    sha256 = "sha256-LhprsDlWZjNRE6pu7V9WBszy/+bNpn5KoRopIoWvdsg=";
     rev = "v${version}";
     repo = "sonobuoy";
     owner = "vmware-tanzu";
   };
 
-  vendorSha256 = "1kxzd4czv8992y7y47la5jjrbhk76sxcj3v5sx0k4xplgki7np6i";
+  vendorSha256 = "sha256-0Vx74nz0djJB12UPybo2Z8KVpSyKHuKPFymh/Rlpv88=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
index 071636ec4431..76230b8e1003 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g";
   };
 
-  buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre pythonPackages.python pythonPackages.numpy ]
     ++ optional RSupport R;
 
   untarDir = "${pname}-${version}-bin-without-hadoop";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
new file mode 100644
index 000000000000..364f7653efa3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
@@ -0,0 +1,44 @@
+From bea6307ec2a77d90d59c13940381d73ec0f05b70 Mon Sep 17 00:00:00 2001
+From: Graham Christensen <graham@grahamc.com>
+Date: Mon, 1 Mar 2021 10:57:44 -0500
+Subject: [PATCH] Disable NIC tests that fail in the Nix sandbox.
+
+---
+ agent/managedInstances/fingerprint/fingerprint_integ_test.go | 2 ++
+ agent/ssm/service_test.go                                    | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/agent/managedInstances/fingerprint/fingerprint_integ_test.go b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+index a1f969ff..631ea1f5 100644
+--- a/agent/managedInstances/fingerprint/fingerprint_integ_test.go
++++ b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+@@ -28,12 +28,14 @@ func TestHostnameInfo(t *testing.T) {
+ }
+ 
+ func TestPrimaryIpInfo(t *testing.T) {
++	t.Skip("The Nix build sandbox has no non-loopback IPs, causing this test to fail.");
+ 	ip, err := primaryIpInfo()
+ 	assert.NoError(t, err, "expected no error fetching the primary ip")
+ 	assert.NotEmpty(t, ip, "expected to fetch primary ip")
+ }
+ 
+ func TestMacAddrInfo(t *testing.T) {
++	t.Skip("The Nix build sandbox has no non-loopback interfaces, causing this test to fail.");
+ 	mac, err := macAddrInfo()
+ 	assert.NoError(t, err, "expected no error fetching the mac addr")
+ 	assert.NotEmpty(t, mac, "expected to fetch mac address")
+diff --git a/agent/ssm/service_test.go b/agent/ssm/service_test.go
+index f4b34f83..d8216dba 100644
+--- a/agent/ssm/service_test.go
++++ b/agent/ssm/service_test.go
+@@ -85,6 +85,7 @@ func (suite *SsmServiceTestSuite) TestUpdateEmptyInstanceInformation() {
+ // Test function for update instance information
+ // This function update the agent name, agent statuc, and agent version.
+ func (suite *SsmServiceTestSuite) TestUpdateInstanceInformation() {
++	suite.T().Skip("The Nix build sandbox has no interfaces for IP and MAC address reports.");
+ 	// Give mock value to test UpdateInstanceInformation, assert the error is nil, assert the log.Debug function get called.
+ 	response, err := suite.sdkService.UpdateInstanceInformation(suite.logMock, "2.2.3.2", "active", "Amazon-ssm-agent")
+ 	assert.Nil(suite.T(), err, "Err should be nil")
+-- 
+2.29.2
+
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch
new file mode 100644
index 000000000000..234e510d3d17
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch
@@ -0,0 +1,46 @@
+From 473e3f8544915a35b3a45c548743978b34e5310e Mon Sep 17 00:00:00 2001
+From: Cole Helbling <cole.e.helbling@outlook.com>
+Date: Tue, 2 Mar 2021 00:24:00 -0800
+Subject: [PATCH] version-gen: don't use unnecessary constants
+
+This prevents the tool from being built with Nix, because this project
+doesn't use Go modules (or something; I'm not really familiar with Go,
+much less Go + Nix).
+---
+ agent/version/versiongenerator/version-gen.go | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/agent/version/versiongenerator/version-gen.go b/agent/version/versiongenerator/version-gen.go
+index d710effc..55c9a001 100644
+--- a/agent/version/versiongenerator/version-gen.go
++++ b/agent/version/versiongenerator/version-gen.go
+@@ -22,8 +22,6 @@ import (
+ 	"path/filepath"
+ 	"strings"
+ 	"text/template"
+-
+-	"github.com/aws/amazon-ssm-agent/agent/appconfig"
+ )
+ 
+ const versiongoTemplate = `// This is an autogenerated file and should not be edited.
+@@ -59,7 +57,7 @@ func main() {
+ 	versionStr := strings.TrimSpace(string(versionContent))
+ 
+ 	fmt.Printf("Agent Version: %v", versionStr)
+-	if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), appconfig.ReadWriteAccess); err != nil {
++	if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), 0600); err != nil {
+ 		log.Fatalf("Error writing to VERSION file. %v", err)
+ 	}
+ 
+@@ -108,7 +106,7 @@ func main() {
+ 
+ 	releaseNoteOutFile := strings.Join(releaseNoteLines, "\n")
+ 
+-	if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), appconfig.ReadWriteAccess); err != nil {
++	if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), 0600); err != nil {
+ 		log.Fatalf("Error writing to RELEASENOTES.md file. %v", err)
+ 	}
+ 
+-- 
+2.30.0
+
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
index 928fb351c6a0..3aa583f3ae39 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
@@ -1,63 +1,110 @@
-{ lib, fetchFromGitHub, buildGoPackage, bash, makeWrapper }:
+{ lib
+, writeShellScriptBin
+, buildGoPackage
+, makeWrapper
+, fetchFromGitHub
+, coreutils
+, nettools
+, dmidecode
+, util-linux
+, bashInteractive
+}:
 
+let
+  # Tests use lsb_release, so we mock it (the SSM agent used to not
+  # read from our /etc/os-release file, but now it does) because in
+  # reality, it won't (shouldn't) be used when active on a system with
+  # /etc/os-release. If it is, we fake the only two fields it cares about.
+  fake-lsb-release = writeShellScriptBin "lsb_release" ''
+    . /etc/os-release || true
+
+    case "$1" in
+      -i) echo "''${NAME:-unknown}";;
+      -r) echo "''${VERSION:-unknown}";;
+    esac
+  '';
+in
 buildGoPackage rec {
-  pname   = "amazon-ssm-agent";
-  version = "2.3.1319.0";
+  pname = "amazon-ssm-agent";
+  version = "3.0.755.0";
 
   goPackagePath = "github.com/aws/${pname}";
-  subPackages   = [
-    "agent"
-    "agent/framework/processor/executer/outofproc/worker"
-    "agent/framework/processor/executer/outofproc/worker"
-    "agent/framework/processor/executer/outofproc/sessionworker"
-    "agent/session/logging"
-    "agent/cli-main"
-  ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   src = fetchFromGitHub {
-    rev    = version;
-    owner  = "aws";
-    repo   = pname;
-    sha256 = "1yiyhj7ckqa32b1rnbwn7zx89rsj00m5imn1xlpsw002ywxsxbnv";
+    rev = version;
+    owner = "aws";
+    repo = "amazon-ssm-agent";
+    hash = "sha256-yVQJL1MJ1JlAndlrXfEbNLQihlbLhSoQXTKzJMRzhao=";
   };
 
+  patches = [
+    # Some tests use networking, so we skip them.
+    ./0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
+
+    # They used constants from another package that I couldn't figure
+    # out how to resolve, so hardcoded the constants.
+    ./0002-version-gen-don-t-use-unnecessary-constants.patch
+  ];
+
+  preConfigure = ''
+    rm -r ./Tools/src/goreportcard
+    printf "#!/bin/sh\ntrue" > ./Tools/src/checkstyle.sh
+
+    substituteInPlace agent/platform/platform_unix.go \
+        --replace "/usr/bin/uname" "${coreutils}/bin/uname" \
+        --replace '"/bin", "hostname"' '"${nettools}/bin/hostname"' \
+        --replace '"lsb_release"' '"${fake-lsb-release}/bin/lsb_release"'
+
+    substituteInPlace agent/managedInstances/fingerprint/hardwareInfo_unix.go \
+        --replace /usr/sbin/dmidecode ${dmidecode}/bin/dmidecode
+
+    substituteInPlace agent/session/shell/shell_unix.go \
+        --replace '"script"' '"${util-linux}/bin/script"'
+
+    echo "${version}" > VERSION
+  '';
+
   preBuild = ''
-    mv go/src/${goPackagePath}/vendor strange-vendor
-    mv strange-vendor/src go/src/${goPackagePath}/vendor
+    cp -r go/src/${goPackagePath}/vendor/src go
 
-    cd go/src/${goPackagePath}
-    echo ${version} > VERSION
+    pushd go/src/${goPackagePath}
 
-    substituteInPlace agent/plugins/inventory/gatherers/application/dataProvider.go \
-      --replace '"github.com/aws/amazon-ssm-agent/agent/plugins/configurepackage/localpackages"' ""
+    # Note: if this step fails, please patch the code to fix it! Please only skip
+    # tests if it is not feasible for the test to pass in a sandbox.
+    make quick-integtest
 
-    go run agent/version/versiongenerator/version-gen.go
-    substituteInPlace agent/appconfig/constants_unix.go \
-      --replace /usr/bin/ssm-document-worker $bin/bin/ssm-document-worker \
-      --replace /usr/bin/ssm-session-worker $bin/bin/ssm-session-worker \
-      --replace /usr/bin/ssm-session-logger $bin/bin/ssm-session-logger
-    cd -
+    make pre-release
+    make pre-build
+
+    popd
   '';
 
   postBuild = ''
-    mv go/bin/agent go/bin/amazon-ssm-agent
-    mv go/bin/worker go/bin/ssm-document-worker
-    mv go/bin/sessionworker go/bin/ssm-session-worker
-    mv go/bin/logging go/bin/ssm-session-logger
-    mv go/bin/cli-main go/bin/ssm-cli
+    pushd go/bin
+
+    rm integration-cli versiongenerator generator
+
+    mv core amazon-ssm-agent
+    mv agent ssm-agent-worker
+    mv cli-main ssm-cli
+    mv worker ssm-document-worker
+    mv logging ssm-session-logger
+    mv sessionworker ssm-session-worker
+
+    popd
   '';
 
-  postInstall = ''
-    wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bash}/bin
+  postFixup = ''
+    wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bashInteractive}/bin
   '';
 
   meta = with lib; {
     description = "Agent to enable remote management of your Amazon EC2 instance configuration";
-    homepage    = "https://github.com/aws/amazon-ssm-agent";
-    license     = licenses.asl20;
-    platforms   = platforms.unix;
+    homepage = "https://github.com/aws/amazon-ssm-agent";
+    license = licenses.asl20;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ copumpkin manveru ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
index 163deb1bef88..4fdcdf1ea2b1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "starboard";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZIAdYuJ8LS8x2h+VXQrkgdmKkw9VKl7FcnOVZNSnXM0=";
+    sha256 = "sha256-w+xaZPEMmJYDPQG4MuAlWMhwhEyeVcpaeDwqsnIbIHA=";
   };
 
   vendorSha256 = "sha256-aVKQcRZgxhIph+y28HhR15DUjwiz/4+t1bMrYXjPW7Q=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
index 44ad3dfd72c7..8e7731590aad 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
@@ -2,20 +2,22 @@
 
 buildGoModule rec {
   pname = "tanka";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-y2HhtYKgC9Y397dZ14eQoPZxqS1fTOXVD8B4wdLIHzM=";
+    sha256 = "sha256-ckXvDB3TU9HAXowAAr/fRmX3mylVvPKW8I74R/vUaRY=";
   };
 
   vendorSha256 = "sha256-vpm2y/CxRNWkz6+AOMmmZH5AjRQWAa6WD5Fnx5lqJYw=";
 
   doCheck = false;
 
-  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
+  subPackages = [ "cmd/tk" ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -extldflags \"-static\" -X github.com/grafana/tanka/pkg/tanka.CURRENT_VERSION=v${version}" ];
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -26,7 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Flexible, reusable and concise configuration for Kubernetes";
-    homepage = "https://github.com/grafana/tanka/";
+    homepage = "https://tanka.dev";
     license = licenses.asl20;
     maintainers = with maintainers; [ mikefaille ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
index 581af59f0c8f..c59c03714890 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
@@ -2,23 +2,20 @@
 
 buildGoModule rec {
   pname = "tektoncd-cli";
-  version = "0.16.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "tektoncd";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-IY9iJa4HcZ60jDPdP47jjC0FiOJesvf2vEENMAYVd4Q=";
+    sha256 = "sha256-xwUTSJ0rlNzQqGQp6jL03L4SuHUvvD3aWXxa1Xp0UyM=";
   };
 
   vendorSha256 = null;
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-s"
-    "-w"
-    "-X github.com/tektoncd/cli/pkg/cmd/version.clientVersion=${version}"
-  ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X github.com/tektoncd/cli/pkg/cmd/version.clientVersion=${version}")
+  '';
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -40,6 +37,14 @@ buildGoModule rec {
       --zsh <($out/bin/tkn completion zsh)
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/tkn --help
+    $out/bin/tkn version | grep "Client version: ${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     homepage = "https://tekton.dev";
     changelog = "https://github.com/tektoncd/cli/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
index a5b6e7d2f5e7..313bd46a5194 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -1,24 +1,26 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-buildGoPackage rec {
+{ lib, buildGoModule, fetchFromGitHub }:
+buildGoModule rec {
   pname = "terraform-docs";
-  version = "0.9.1";
-
-  goPackagePath = "github.com/segmentio/${pname}";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
-    owner  = "segmentio";
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "00sfzdqhf8g85m03r6mbzfas5vvc67iq7syb8ljcgxg8l1knxnjx";
+    owner = "terraform-docs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-zQFPuHxfFvfwPVV0vPeA+A6XCw2Vt4tY4S2JBGcqaBQ=";
   };
 
+  vendorSha256 = "sha256-HO2E8i5A/2Xi7Pq+Mqb/2ogK1to8IvZjRuDXfzGvOXk=";
+
+  subPackages = [ "." ];
+
   preBuild = ''
     buildFlagsArray+=("-ldflags" "-X main.version=${version}")
   '';
 
   meta = with lib; {
     description = "A utility to generate documentation from Terraform modules in various output formats";
-    homepage = "https://github.com/segmentio/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-providers/providers.json b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 198a05621a52..329b1be682cc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -359,10 +359,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/google",
     "repo": "terraform-provider-google",
-    "rev": "v3.47.0",
-    "sha256": "05xb0q56y9088qbyaf3vzjm9im1s2azxffhjffjpzi0i79k0g2p0",
-    "vendorSha256": "1h83p7ncv7b4ci7qdig7hb81zk9458fq9aqqbkryawf1w7wbaq2a",
-    "version": "3.47.0"
+    "rev": "v3.62.0",
+    "sha256": "0x0qp8nk88667hvlpgxrdjsgirw8iwv85gn3k9xb37a3lw7xs4qz",
+    "vendorSha256": "0w6aavj1c4blpvsy00vz4dcj8rnxx6a586b16lqp6s1flqmlqrbi",
+    "version": "3.62.0"
   },
   "google-beta": {
     "owner": "hashicorp",
@@ -398,10 +398,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/helm",
     "repo": "terraform-provider-helm",
-    "rev": "v1.3.2",
-    "sha256": "0mpbf03483jqrwd9cx4pdn2pcv4swfs5nbp021gaqr0jf1w970x6",
+    "rev": "v2.0.2",
+    "sha256": "119zvlkwa7ygwsjxxdl7z8cqb0c4m6gy21356jnsasf4c3557rrb",
     "vendorSha256": null,
-    "version": "1.3.2"
+    "version": "2.0.2"
   },
   "heroku": {
     "owner": "terraform-providers",
@@ -504,16 +504,19 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
     "repo": "terraform-provider-kubernetes",
-    "rev": "v1.13.3",
-    "sha256": "01hkbb81r3k630s3ww6379p66h1fsd5cd1dz14jm833nsr142c0i",
-    "version": "1.13.3"
+    "rev": "v2.0.2",
+    "sha256": "129aylw6hxa44syfnb0kkkihwvlaa6d1jnxrcbwkql6xxhn9zizf",
+    "vendorSha256": null,
+    "version": "2.0.2"
   },
   "kubernetes-alpha": {
     "owner": "hashicorp",
+    "provider-source-address": "registry.terraform.io/hashicorp/kubernetes-alpha",
     "repo": "terraform-provider-kubernetes-alpha",
-    "rev": "nightly20200608",
-    "sha256": "1g171sppf3kq5qlp6g0qqdm0x8lnpizgw8bxjlhp9b6cl4kym70m",
-    "version": "nightly20200608"
+    "rev": "v0.3.2",
+    "sha256": "0lgh42fvfwvj6cw8i7800k016ay4babqiz38q0y7apq4s7vs62sb",
+    "vendorSha256": null,
+    "version": "0.3.2"
   },
   "launchdarkly": {
     "owner": "terraform-providers",
@@ -1071,9 +1074,9 @@
   "vultr": {
     "owner": "vultr",
     "repo": "terraform-provider-vultr",
-    "rev": "v1.5.0",
-    "sha256": "04qy366ignn53bbdj9s3032qr1x7h84q36qzl5ywydlw2va0qbsd",
-    "version": "1.5.0"
+    "rev": "v2.1.3",
+    "sha256": "sha256-fvqkzg3j2TYAMbPc8Ifh35sBe0D76LYH6Ut5Ugdyexg=",
+    "version": "2.1.3"
   },
   "wavefront": {
     "owner": "terraform-providers",
@@ -1083,10 +1086,11 @@
     "version": "2.3.0"
   },
   "yandex": {
-    "owner": "terraform-providers",
+    "owner": "yandex-cloud",
     "repo": "terraform-provider-yandex",
-    "rev": "v0.40.0",
-    "sha256": "0dymhdrdm00m9xn4xka3zbvjqnckhl06vz5zm6rqivkmw8m2q0mz",
-    "version": "0.40.0"
+    "rev": "v0.54.0",
+    "sha256": "0q9m7520zl7q1liri6x849xjp221wbc9l2w6dj19mmgfwspqv02l",
+    "vendorSha256": "0rzldsb8gyhvnsd26wg9byqngzzj64pi86v2hb4i63rlfmnn77xi",
+    "version": "0.54.0"
   }
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
index e1f1a0ef38a5..f97bbce83faa 100755
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i bash -p coreutils curl jq moreutils
+#! nix-shell -I nixpkgs=../../../../.. -i bash -p coreutils curl jq moreutils nix
 # shellcheck shell=bash
 # vim: ft=sh
 #
@@ -161,7 +161,8 @@ if [[ -z "$vendorSha256" ]]; then
       exit 1
     fi
     rm -f vendor_log.txt
-    vendorSha256=${BASH_REMATCH[1]}
+    # trim the results in case it they have a sha256: prefix or contain more than one line
+    vendorSha256=$(echo "${BASH_REMATCH[1]#sha256:}" | head -n 1)
     # Deal with nix unstable
     if [[ $vendorSha256 = sha256-* ]]; then
       vendorSha256=$(nix to-base32 "$vendorSha256")
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
index 317666a2c7cd..6cd2cf52efc1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
@@ -117,7 +117,7 @@ let
         else
           lib.appendToName "with-plugins" (stdenv.mkDerivation {
             inherit (terraform) name meta;
-            buildInputs = [ makeWrapper ];
+            nativeBuildInputs = [ makeWrapper ];
 
             buildCommand = pluginDir + ''
               mkdir -p $out/bin/
@@ -157,9 +157,9 @@ in rec {
   });
 
   terraform_0_14 = pluggable (generic {
-    version = "0.14.6";
-    sha256 = "0ba3vd6lswy4pd0qywdbx8cf71j5z3p8p8kdjs9m4qbyrzsbq0fk";
-    vendorSha256 = "0pk5mgj19a8by7wbn5xd6kgr1kxrazhvg851fvs8mq3j0ayb32nb";
+    version = "0.14.10";
+    sha256 = "05vfb8hzma3qxq4w1h25mmgv96g90if214zlar0sm9fq8zsvb1yw";
+    vendorSha256 = "1d93aqkjdrvabkvix6h1qaxpjzv7w1wa7xa44czdnjs2lapx4smm";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile
new file mode 100644
index 000000000000..e6a4991e899d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem 'terraforming'
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock
new file mode 100644
index 000000000000..ae2a40cc35b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock
@@ -0,0 +1,92 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    aws-eventstream (1.1.1)
+    aws-partitions (1.436.0)
+    aws-sdk-autoscaling (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-cloudwatch (1.50.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-core (3.113.0)
+      aws-eventstream (~> 1, >= 1.0.2)
+      aws-partitions (~> 1, >= 1.239.0)
+      aws-sigv4 (~> 1.1)
+      jmespath (~> 1.0)
+    aws-sdk-dynamodb (1.60.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ec2 (1.230.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-efs (1.39.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-elasticache (1.54.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-elasticloadbalancing (1.31.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-elasticloadbalancingv2 (1.61.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-iam (1.51.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-kms (1.43.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-rds (1.117.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-redshift (1.58.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-route53 (1.48.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-s3 (1.93.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sdk-kms (~> 1)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sns (1.39.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sqs (1.38.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sigv4 (1.2.3)
+      aws-eventstream (~> 1, >= 1.0.2)
+    jmespath (1.4.0)
+    multi_json (1.12.2)
+    terraforming (0.18.0)
+      aws-sdk-autoscaling (~> 1)
+      aws-sdk-cloudwatch (~> 1)
+      aws-sdk-dynamodb (~> 1.18)
+      aws-sdk-ec2 (~> 1)
+      aws-sdk-efs (~> 1, >= 1.13.0)
+      aws-sdk-elasticache (~> 1)
+      aws-sdk-elasticloadbalancing (~> 1)
+      aws-sdk-elasticloadbalancingv2 (~> 1)
+      aws-sdk-iam (~> 1)
+      aws-sdk-kms (~> 1)
+      aws-sdk-rds (~> 1)
+      aws-sdk-redshift (~> 1)
+      aws-sdk-route53 (~> 1)
+      aws-sdk-s3 (~> 1)
+      aws-sdk-sns (~> 1)
+      aws-sdk-sqs (~> 1)
+      multi_json (~> 1.12.1)
+      thor
+    thor (1.1.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  terraforming
+
+BUNDLED WITH
+   2.1.4
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix
new file mode 100644
index 000000000000..85d522257cde
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix
@@ -0,0 +1,20 @@
+{ lib, bundlerApp, bundlerUpdateScript, ruby }:
+
+bundlerApp rec {
+  inherit ruby;
+
+  pname = "terraforming";
+  gemdir = ./.;
+  exes = [ "terraforming" ];
+
+  passthru.updateScript = bundlerUpdateScript "terraforming";
+
+  meta = with lib; {
+    inherit (ruby.meta) platforms;
+
+    description = "Export existing AWS resources to Terraform style (tf, tfstate)";
+    homepage    = "https://github.com/dtan4/terraforming";
+    license     = with licenses; mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix b/nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix
new file mode 100644
index 000000000000..9882efc29e80
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix
@@ -0,0 +1,261 @@
+{
+  aws-eventstream = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  aws-partitions = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gn09cafg2n6gdc3ja80r3xjllly05r0m7x3w3b3rywir6k6ai4f";
+      type = "gem";
+    };
+    version = "1.436.0";
+  };
+  aws-sdk-autoscaling = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0br6hfi2i5rri8ivamkmnx00p640s24pqmp8s67sm5asvdfzx4vr";
+      type = "gem";
+    };
+    version = "1.59.0";
+  };
+  aws-sdk-cloudwatch = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xga00dn925rfgz4p2zf734aaik00dqb9psll27lg5626jd6xr0c";
+      type = "gem";
+    };
+    version = "1.50.0";
+  };
+  aws-sdk-core = {
+    dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1774xyfqf307qvh5npvf01948ayrviaadq576r4jxin6xvlg8j9z";
+      type = "gem";
+    };
+    version = "3.113.0";
+  };
+  aws-sdk-dynamodb = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dfsmkzv9cziykzc56g9pwxmbdqjpykxka3fq07b6iarzh38j1i3";
+      type = "gem";
+    };
+    version = "1.60.0";
+  };
+  aws-sdk-ec2 = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c7qqly2f94db3643xwjj9mcb34vilx11awbv40v2f8z7xisvvz3";
+      type = "gem";
+    };
+    version = "1.230.0";
+  };
+  aws-sdk-efs = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kmpz86sxkm6nzcf80nd65902fy29hz8lvx1kjwl5idx07ls8pnd";
+      type = "gem";
+    };
+    version = "1.39.0";
+  };
+  aws-sdk-elasticache = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05kn2k437rnsf9nkwc1x5i2klrasjgyk1pj89f2gb0za86swjcza";
+      type = "gem";
+    };
+    version = "1.54.0";
+  };
+  aws-sdk-elasticloadbalancing = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j3px8dn2yxsnmy010kfkwa1a2flbdxachmly20f436ysi3ql3v3";
+      type = "gem";
+    };
+    version = "1.31.0";
+  };
+  aws-sdk-elasticloadbalancingv2 = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16hknbqv5s1im04dch9kdbc79x072613imdih62w48mvsf12c1mm";
+      type = "gem";
+    };
+    version = "1.61.0";
+  };
+  aws-sdk-iam = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x2768blsy8lpib9pi2f2d67flabar3bq6chmbj07iqzpwvpz569";
+      type = "gem";
+    };
+    version = "1.51.0";
+  };
+  aws-sdk-kms = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01pd0f4srsa65zl4zq4014p9j5yrr2yy9h9ab17g3w9d0qqm2vsh";
+      type = "gem";
+    };
+    version = "1.43.0";
+  };
+  aws-sdk-rds = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hwxgcka6bmzdn5pazss0fv8xgbbgas4h2cwpzwhkjkwhh23dx6a";
+      type = "gem";
+    };
+    version = "1.117.0";
+  };
+  aws-sdk-redshift = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sp186v00lj517hia6rsn28ph8rqknz9r79vbkbyh5fgrbh2j6bd";
+      type = "gem";
+    };
+    version = "1.58.0";
+  };
+  aws-sdk-route53 = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p9g0scw9c6qancdwvaw3kkj3pywchy2vl3qz2rqpjncqvj04pn5";
+      type = "gem";
+    };
+    version = "1.48.0";
+  };
+  aws-sdk-s3 = {
+    dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iy2f9z43pc6fgwmga2cz8nf9gy2pwcw4jib141vp8z8dhylqj94";
+      type = "gem";
+    };
+    version = "1.93.0";
+  };
+  aws-sdk-sns = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pmxi871r2nkl6by89vsy05ahk8dr6hmkny56fycrby6r9kri9q4";
+      type = "gem";
+    };
+    version = "1.39.0";
+  };
+  aws-sdk-sqs = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01m2l8y4q4fixjvl70w5bi1ihmmx2y4krms9kkjwd3ch21y14hif";
+      type = "gem";
+    };
+    version = "1.38.0";
+  };
+  aws-sigv4 = {
+    dependencies = ["aws-eventstream"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  jmespath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x";
+      type = "gem";
+    };
+    version = "1.12.2";
+  };
+  terraforming = {
+    dependencies = ["aws-sdk-autoscaling" "aws-sdk-cloudwatch" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-efs" "aws-sdk-elasticache" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-iam" "aws-sdk-kms" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-s3" "aws-sdk-sns" "aws-sdk-sqs" "multi_json" "thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03fyhqx6bxpbn26pbcz748gz7rh7q3r9r0jimq7vj07fl454fmwh";
+      type = "gem";
+    };
+    version = "0.18.0";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
index 9e2b9709afc2..eb230062feec 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,25 +2,30 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.28.4";
+  version = "0.28.18";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LilIwg3Zu7Zi7AhJeW0j2qUmSOGy1HHjvvB07FUcEeI=";
+    sha256 = "sha256-W0HjGILezhuc1lXvGCHw23h8Sx1uw4YLLsOOBZYGvU8=";
   };
 
-  vendorSha256 = "sha256-lRJerUYafpkXAGf8MEM8SeG3aB86mlMo7iLpeHFAnd4=";
+  vendorSha256 = "sha256-kcRM76xfajtQist1aJTmaRludxRlfvHQ9ucB3LOgnBk=";
 
   doCheck = false;
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-s"
-    "-w"
-    "-X main.VERSION=v${version}"
-  ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X main.VERSION=v${version}")
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/terragrunt --help
+    $out/bin/terragrunt --version | grep "v${version}"
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
     homepage = "https://terragrunt.gruntwork.io";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
index 415a895e523f..ccbe9d9a7ac0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ buildGoModule rec {
   /* Do not use "dev" as a version. If you do, Tilt will consider itself
     running in development environment and try to serve assets from the
     source tree, which is not there once build completes.  */
-  version = "0.18.8";
+  version = "0.18.10";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-ICJrY4XUrxVeZlMx69SB/ounfIwLFSguf9bhLOpYP3E=";
+    sha256 = "sha256-SvvvHGR3UPyV61MaoFB68SaZKUT3ItYOPT1a7AddxlY=";
   };
   vendorSha256 = null;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
index 6b878cec9279..65826683d5f0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "velero";
-  version = "1.5.3";
+  version = "1.5.4";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "vmware-tanzu";
     repo = "velero";
-    sha256 = "sha256-DZ6phJxc8n9LCSsER09K3j+pUJxkYrBZQaI4h+bcV94=";
+    sha256 = "sha256-YHBqIM3NV2L13w9WCzldUWmdBMec7ZndzYgGHblS8Dg=";
   };
 
   buildFlagsArray = ''
@@ -40,6 +40,6 @@ buildGoModule rec {
       "https://github.com/vmware-tanzu/velero/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.mbode maintainers.bryanasdev000 ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
index 3d62a1dcf29b..7675dc0de880 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -2,29 +2,45 @@
 
 buildGoModule rec {
   pname = "waypoint";
-  version = "0.2.1";
+  version = "0.2.4";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-bCvi5xIL6xAtQ9mgf4feh076sAmog/3eGBlgvcLXJyc=";
+    sha256 = "sha256-6sV2e/m0qVSRWgdvVZ9VxEL/J57nTcTClxHF5X8/8PQ=";
   };
 
   deleteVendor = true;
-  vendorSha256 = "sha256-ArebHOjP3zvpASVAoaPXpSbrG/jq+Jbx7+EaQ1uHSVY=";
+  vendorSha256 = "sha256-NPE3YHulqllWDGrxQgPmy/KKE7xFPOUorLQNIU8cP50=";
 
   nativeBuildInputs = [ go-bindata ];
 
   # GIT_{COMMIT,DIRTY} filled in blank to prevent trying to run git and ending up blank anyway
   buildPhase = ''
+    runHook preBuild
     make bin GIT_DESCRIBE="v${version}" GIT_COMMIT="" GIT_DIRTY=""
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -D waypoint $out/bin/waypoint
+    runHook postInstall
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    # `version` tries to write to ~/.config/waypoint
+    export HOME="$TMPDIR"
+
+    $out/bin/waypoint --help
+    $out/bin/waypoint version # | grep "Waypoint v${version}"
+    runHook postInstallCheck
+  '';
+
+  # Binary is static
   dontPatchELF = true;
   dontPatchShebangs = true;
 
diff --git a/nixpkgs/pkgs/applications/networking/compactor/default.nix b/nixpkgs/pkgs/applications/networking/compactor/default.nix
index d0db8cc10b95..f4535c9120cd 100644
--- a/nixpkgs/pkgs/applications/networking/compactor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/compactor/default.nix
@@ -1,5 +1,5 @@
 { autoconf, automake, boost, cbor-diag, cddl, fetchFromGitHub, file, libctemplate, libmaxminddb
-, libpcap, libtins, libtool, lzma, openssl, pkg-config, lib, stdenv, tcpdump, wireshark-cli
+, libpcap, libtins, libtool, xz, openssl, pkg-config, lib, stdenv, tcpdump, wireshark-cli
 }:
 
 stdenv.mkDerivation rec {
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     libpcap
     openssl
     libtins
-    lzma
+    xz
     libctemplate
     libmaxminddb
   ];
diff --git a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
index 55a16f42f16e..39073985fa1a 100644
--- a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,19 +2,21 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "3.6.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-I1PaDHPocQuoSOyfnxDWwIR+7S9l/odX4SCeAae/jv8=";
+    sha256 = "sha256-VSNvyigaGfGDbcng6ltdq+X35zT2tb2p4j/4KAjd1Yk=";
   };
 
-  vendorSha256 = "sha256-H0i5MoVX5O0CgHOvefDEyzBWvBZvJZUrC9xBq9CHgeE=";
+  vendorSha256 = "sha256-VU0uJDp5koVU+wDwr3ctrDY0R3vd/JmpA7gtWWpwpfw=";
 
   subPackages = [ "." ];
 
+  buildFlagsArray = [ "-ldflags=-s -w" ];
+
   meta = with lib; {
     description = "Synchronize your DNS to multiple providers from a simple DSL";
     homepage = "https://stackexchange.github.io/dnscontrol/";
diff --git a/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
index dae9ad3bc33c..51f62529e9c9 100644
--- a/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
@@ -17,11 +17,6 @@ buildRustPackage rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ];
 
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -p $releaseDir/cfdyndns $out/bin/
-  '';
-
   meta = with lib; {
     description = "CloudFlare Dynamic DNS Client";
     homepage = "https://github.com/colemickens/cfdyndns";
diff --git a/nixpkgs/pkgs/applications/networking/errbot/default.nix b/nixpkgs/pkgs/applications/networking/errbot/default.nix
index 642677a9addc..f4a44275b693 100644
--- a/nixpkgs/pkgs/applications/networking/errbot/default.nix
+++ b/nixpkgs/pkgs/applications/networking/errbot/default.nix
@@ -1,75 +1,90 @@
-{ lib, fetchFromGitHub, python, glibcLocales }:
+{ lib
+, ansi
+, buildPythonApplication
+, colorlog
+, daemonize
+, deepmerge
+, dulwich
+, fetchFromGitHub
+, flask
+, glibcLocales
+, hypchat
+, irc
+, jinja2
+, markdown
+, mock
+, pyasn1
+, pyasn1-modules
+, pygments
+, pygments-markdown-lexer
+, pyopenssl
+, pytestCheckHook
+, requests
+, slackclient
+, sleekxmpp
+, telegram
+, webtest
+}:
 
-let
-  py = python.override {
-    packageOverrides = self: super: {
-      # errbot requires markdown<3, and is not compatible with it either.
-      markdown = super.markdown.overridePythonAttrs (oldAttrs: rec {
-        version = "2.6.11";
-        src = super.fetchPypi {
-          pname = "Markdown";
-          inherit version;
-          sha256 = "108g80ryzykh8bj0i7jfp71510wrcixdi771lf2asyghgyf8cmm8";
-        };
-      });
-
-      # errbot requires slackclient 1.x, see https://github.com/errbotio/errbot/pull/1367
-      # latest 1.x release would be 1.3.2, but it requires an older websocket_client than the one in nixpkgs
-      # so let's just vendor the known-working version until they've migrated to 2.x.
-      slackclient = super.slackclient.overridePythonAttrs (oldAttrs: rec {
-        version = "1.2.1";
-        pname = "slackclient";
-        src = fetchFromGitHub {
-          owner  = "slackapi";
-          repo   = "python-slackclient";
-          rev    = version;
-          sha256 = "073fwf6fm2sqdp5ms3vm1v3ljh0pldi69k048404rp6iy3cfwkp0";
-        };
-
-        propagatedBuildInputs = with self; [ websocket_client requests six ];
-
-        checkInputs = with self; [ pytest codecov coverage mock pytestcov pytest-mock responses flake8 ];
-        # test_server.py fails because it needs connection (I think);
-        checkPhase = ''
-          py.test --cov-report= --cov=slackclient tests --ignore=tests/test_server.py
-        '';
-      });
-    };
-  };
-
-in
-py.pkgs.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "errbot";
-  version = "6.1.1";
+  version = "6.1.7";
 
   src = fetchFromGitHub {
     owner = "errbotio";
     repo = "errbot";
     rev = version;
-    sha256 = "1s4dl1za5imwsv6j3y7m47dy91hmqd5n221kkqm9ni4mpzgpffz0";
+    sha256 = "02h44qd3d91zy657hyqsw3gskgxg31848pw6zpb8dhd1x84z5y77";
   };
 
   LC_ALL = "en_US.utf8";
 
   buildInputs = [ glibcLocales ];
-  propagatedBuildInputs = with py.pkgs; [
-    webtest requests jinja2 flask dulwich
-    pyopenssl colorlog markdown ansi pygments
-    daemonize pygments-markdown-lexer telegram irc slackclient
-    sleekxmpp pyasn1 pyasn1-modules hypchat
+
+  propagatedBuildInputs = [
+    ansi
+    colorlog
+    daemonize
+    deepmerge
+    dulwich
+    flask
+    hypchat
+    irc
+    jinja2
+    markdown
+    pyasn1
+    pyasn1-modules
+    pygments
+    pygments-markdown-lexer
+    pyopenssl
+    requests
+    slackclient
+    sleekxmpp
+    telegram
+    webtest
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  # Slack backend test has an import issue
+  pytestFlagsArray = [ "--ignore=tests/backend_tests/slack_test.py" ];
+
+  disabledTests = [
+    "backup"
+    "broken_plugin"
+    "plugin_cycle"
   ];
 
-  checkInputs = with py.pkgs; [ mock pytest ];
-  # avoid tests that do network calls
-  checkPhase = ''
-    pytest tests -k 'not backup and not broken_plugin and not plugin_cycle'
-  '';
+  pythonImportsCheck = [ "errbot" ];
 
   meta = with lib; {
     description = "Chatbot designed to be simple to extend with plugins written in Python";
     homepage = "http://errbot.io/";
     maintainers = with maintainers; [ fpletz globin ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
     # flaky on darwin, "RuntimeError: can't start new thread"
   };
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
index d550a1265470..c9339601a4b3 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkg-config, vala, gettext, python3
 , appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts
-, gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas, pantheon
+, gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas
 , curl, glib, gnome3, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2
 }:
 
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
index b032d3de332f..38bc05b1f868 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -3,27 +3,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "newsboat";
-  version = "2.22.1";
+  version = "2.23";
 
   src = fetchFromGitHub {
     owner = "newsboat";
     repo = "newsboat";
     rev = "r${version}";
-    sha256 = "1j3z34dhqw0f1v6v2lfwcvzqnm2kr2940bgxibfi0npacp74izh3";
+    sha256 = "0a0g9km515kipqmz6c09aj3lgy3nkzqwgnp87fh8f2vr098fn144";
   };
 
-  cargoSha256 = "08ywaka1lib8yrqjmfx1i37f7b33y3i6jj7f50pwhw8n6lr9f7lc";
+  cargoSha256 = "11dn1ixc7i29cv8kpqfkmikdqzr2v79vlyfxcvjwhgd0r34w4xhn";
 
-  postPatch = ''
-    substituteInPlace Makefile --replace "|| true" ""
-  ''
-    # TODO: Check if that's still needed
-    + lib.optionalString stdenv.isDarwin ''
-      # Allow other ncurses versions on Darwin
-      substituteInPlace config.sh \
-        --replace "ncurses5.4" "ncurses"
-    ''
-  ;
+  # TODO: Check if that's still needed
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    # Allow other ncurses versions on Darwin
+    substituteInPlace config.sh \
+      --replace "ncurses5.4" "ncurses"
+  '';
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
index e8a76b3d491a..ac7af8e53b37 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitLab
 , meson
@@ -17,25 +18,33 @@
 , gst_all_1
 }:
 
-rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
   pname = "newsflash";
-  version = "1.1.1";
+  version = "1.4.0";
 
   src = fetchFromGitLab {
     owner = "news-flash";
     repo = "news_flash_gtk";
     rev = version;
-    sha256 = "1z47h23g87dqmr9sfjl36fs5xjm2wj7z2bri9g0a4jcpwzl5awsd";
+    hash = "sha256-EInI5Unaz9m8/gJ7vAzJVyMynJGq0KZh12dNK8r1wnY=";
   };
 
-  cargoSha256 = "0rnrdh9ganj63hf9j890yj9pahcgza95z7x020w72mbb4648hq26";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-xrWZhjfYnO6M3LMTP6l3+oZOusvUWuRBDesIlsiEJ6s=";
+  };
 
   patches = [
+    # Post install tries to generate an icon cache & update the
+    # desktop database. The gtk setup hook drop-icon-theme-cache.sh
+    # would strip out the icon cache and the desktop database wouldn't
+    # be included in $out. They will generated by xdg.mime.enable &
+    # gtk.iconCache.enable instead.
     ./no-post-install.patch
   ];
 
   postPatch = ''
-    chmod +x build-aux/cargo.sh
     patchShebangs .
   '';
 
@@ -50,7 +59,11 @@ rustPlatform.buildRustPackage rec {
 
     # Provides glib-compile-resources to compile gresources
     glib
-  ];
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
 
   buildInputs = [
     gtk3
@@ -72,13 +85,6 @@ rustPlatform.buildRustPackage rec {
     gst-plugins-bad
   ]);
 
-  # Unset default rust phases to use meson & ninja instead
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-  installCheckPhase = null;
-
   meta = with lib; {
     description = "A modern feed reader designed for the GNOME desktop";
     homepage = "https://gitlab.com/news-flash/news_flash_gtk";
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
index 23b79dccd6df..9ecadd56f150 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
@@ -1,32 +1,19 @@
-{ pythonPackages, fetchurl, fetchpatch, lib, nixosTests }:
+{ pythonPackages, fetchurl, lib, nixosTests }:
 
 with pythonPackages;
 
 buildPythonApplication rec {
   pname = "rss2email";
-  version = "3.12.2";
+  version = "3.13";
 
   propagatedBuildInputs = [ feedparser html2text ];
   checkInputs = [ beautifulsoup4 ];
 
   src = fetchurl {
     url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz";
-    sha256 = "12w6x80wsw6xm17fxyymnl45aavsagg932zw621wcjz154vjghjr";
+    sha256 = "09vp2y0ibv20y9yysniv6njzigif4h74pkj31l2a8xw5g19gclna";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "rss2email-feedparser6.patch";
-      url = "https://github.com/rss2email/rss2email/pull/149/commits/338343c92f956c31ff5249ef4bcf7aeea81f687e.patch";
-      sha256 = "0h8b3g9332vdrkqbh6lp00k97asrhmlxi13zghrgc78ia13czy3z";
-    })
-    (fetchpatch {
-      name = "rss2email-feedparser6-test.patch";
-      url = "https://github.com/rss2email/rss2email/pull/149/commits/8c99651eced3f29f05ba2c0ca02abb8bb9a18967.patch";
-      sha256 = "1scljak6xyqxlilg3j39v4qm9a9jks1bnvnrh62hyf3g53yw2xlg";
-    })
-  ];
-
   outputs = [ "out" "man" "doc" ];
 
   postPatch = ''
@@ -45,8 +32,10 @@ buildPythonApplication rec {
     cp AUTHORS COPYING CHANGELOG README.rst $doc/share/doc/rss2email/
   '';
 
-  postCheck = ''
+  checkPhase = ''
+    runHook preCheck
     env PATH=$out/bin:$PATH python ./test/test.py
+    runHook postCheck
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
index d0ce431be76b..1438d61f9995 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rssguard";
-  version = "3.8.4";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "martinrotter";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2NC5Y8WxVYrzpuqDzhXXJ16b04Em1HqZaE2VK9tmfYk=";
+    sha256 = "sha256-pprWJIYAFYSTPhWVCW4dz3GWeAS53Vo8UXiyQ56Mwjo=";
   };
 
   buildInputs =  [ qtwebengine qttools ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
       for ownCloud/Nextcloud.
     '';
     homepage = "https://github.com/martinrotter/rssguard";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/firehol/default.nix b/nixpkgs/pkgs/applications/networking/firehol/default.nix
index ee0b561e675e..424c67721046 100644
--- a/nixpkgs/pkgs/applications/networking/firehol/default.nix
+++ b/nixpkgs/pkgs/applications/networking/firehol/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, pkgs
-, autoconf, automake, curl, iprange, iproute, ipset, iptables, iputils
+, autoconf, automake, curl, iprange, iproute2, ipset, iptables, iputils
 , kmod, nettools, procps, tcpdump, traceroute, util-linux, whois
 
 # If true, just install FireQOS without FireHOL
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake ];
   buildInputs = [
-    curl iprange iproute ipset iptables iputils kmod
+    curl iprange iproute2 ipset iptables iputils kmod
     nettools procps tcpdump traceroute util-linux whois
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/flexget/default.nix b/nixpkgs/pkgs/applications/networking/flexget/default.nix
index 2e5713627e4b..fd68dfc49f47 100644
--- a/nixpkgs/pkgs/applications/networking/flexget/default.nix
+++ b/nixpkgs/pkgs/applications/networking/flexget/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FlexGet";
-  version = "3.1.98";
+  version = "3.1.106";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "d2d17a5ea821a580c55680294fce9ecf7012ef86c086c742414ec5bcb8468972";
+    sha256 = "f0ff300a1762d701b77eb16142dcc13d9d099bbed695f1e950392c1d1bb988eb";
   };
 
   postPatch = ''
@@ -55,7 +55,7 @@ python3Packages.buildPythonApplication rec {
     terminaltables
     zxcvbn
     # plugins
-    transmissionrpc
+    transmission-rpc
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
index 877cdec4ca8d..f8e9fcc87b0b 100644
--- a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "filezilla";
-  version = "3.51.0";
+  version = "3.53.0";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
-    sha256 = "0k3c7gm16snc6dr9a3xgq14ajyqj4hxcrd6hk6jk5fsi9x51rgl2";
+    sha256 = "sha256-MJXnYN9PVADttNqj3hshLElHk2Dy9FzE67clMMh85CA=";
   };
 
   # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769
diff --git a/nixpkgs/pkgs/applications/networking/giara/default.nix b/nixpkgs/pkgs/applications/networking/giara/default.nix
new file mode 100644
index 000000000000..940756855b99
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/giara/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, fetchFromGitLab
+, meson
+, gobject-introspection
+, pkg-config
+, ninja
+, python3
+, wrapGAppsHook
+, gtk3
+, gdk-pixbuf
+, webkitgtk
+, gtksourceview4
+, libhandy
+, glib-networking
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "giara";
+  version = "0.3";
+
+  format = "other";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = pname;
+    rev = version;
+    sha256 = "004qmkfrgd37axv0b6hfh6v7nx4pvy987k5yv4bmlmkj9sbqm6f9";
+  };
+
+  nativeBuildInputs = [
+    meson
+    gobject-introspection
+    pkg-config
+    ninja
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    gdk-pixbuf
+    webkitgtk
+    gtksourceview4
+    libhandy
+    glib-networking
+  ];
+
+  pythonPath = with python3.pkgs; [
+    pygobject3
+    pycairo
+    dateutil
+    praw
+    pillow
+    mistune
+    beautifulsoup4
+  ];
+
+  # Fix setup-hooks https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
+  meta = with lib; {
+    description = "A Reddit app, built with Python, GTK and Handy; Created with mobile Linux in mind";
+    maintainers = with maintainers; [ dasj19 ];
+    homepage = "https://gitlab.gnome.org/World/giara";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix
index 3d22dca36d95..b3d8a5b3fead 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/default.nix
@@ -1,7 +1,7 @@
 { callPackage, libsForQt5 }:
 
 let
-  stableVersion = "2.2.17";
+  stableVersion = "2.2.18";
   previewVersion = stableVersion;
   addVersion = args:
     let version = if args.stable then stableVersion else previewVersion;
@@ -26,8 +26,8 @@ let
   };
   mkGui = args: libsForQt5.callPackage (import ./gui.nix (addVersion args // extraArgs)) { };
   mkServer = args: callPackage (import ./server.nix (addVersion args // extraArgs)) { };
-  guiSrcHash = "0dfyxr983w6lmbcvaf32bnm9cz7y7fp9jfaz8zxp1dvr6dr06cmv";
-  serverSrcHash = "0m5ajd2zkafx89hvp202m351h1dygfc3jssl3m7nd7r42csyi2vj";
+  guiSrcHash = "118z6asl6hsv0777rld4plnrwzkbkh3gb9lg9i6bqrjs93p028fw";
+  serverSrcHash = "0gd37zpvibhlvqqpflpwlrgg8g9rpbxwi9w9fsym00mfwf7sdd3b";
 in {
   guiStable = mkGui {
     stable = true;
diff --git a/nixpkgs/pkgs/applications/networking/gns3/gui.nix b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
index 8eb688bcd56d..f206c645ae21 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/gui.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
@@ -44,6 +44,6 @@ in python.pkgs.buildPythonPackage rec {
     changelog = "https://github.com/GNS3/gns3-gui/releases/tag/v${version}";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/gns3/server.nix b/nixpkgs/pkgs/applications/networking/gns3/server.nix
index 5ba6b57d5bd7..b0d215c47bb4 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/server.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/server.nix
@@ -6,17 +6,6 @@ let
   defaultOverrides = commonOverrides ++ [
     (mkOverride "aiofiles" "0.5.0"
       "98e6bcfd1b50f97db4980e182ddd509b7cc35909e903a8fe50d8849e02d815af")
-    (self: super: {
-      py-cpuinfo = super.py-cpuinfo.overridePythonAttrs (oldAttrs: rec {
-        version = "7.0.0";
-        src = fetchFromGitHub {
-           owner = "workhorsy";
-           repo = "py-cpuinfo";
-           rev = "v${version}";
-           sha256 = "10qfaibyb2syiwiyv74l7d97vnmlk079qirgnw3ncklqjs0s3gbi";
-        };
-      });
-    })
   ];
 
   python = python3.override {
@@ -62,6 +51,6 @@ in python.pkgs.buildPythonPackage {
     changelog = "https://github.com/GNS3/gns3-server/releases/tag/v${version}";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/ids/snort/default.nix b/nixpkgs/pkgs/applications/networking/ids/snort/default.nix
index 17ace3021d87..714ca1c8990f 100644
--- a/nixpkgs/pkgs/applications/networking/ids/snort/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/snort/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "13lzvjli6kbsnkd7lf0rm71l2mnz38pxk76ia9yrjb6clfhlbb73";
   };
 
-  buildInputs = [ makeWrapper pkg-config luajit openssl libpcap pcre libdnet daq zlib flex bison libtirpc ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ pkg-config luajit openssl libpcap pcre libdnet daq zlib flex bison libtirpc ];
 
   NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
index f7b526f29b55..a12e914097c3 100644
--- a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , cmake
 , flex
@@ -10,47 +11,48 @@
 , curl
 , libmaxminddb
 , gperftools
-, python
+, python3
 , swig
 , gettext
-, fetchpatch
 , coreutils
+, ncurses
+, caf
 }:
-let
-  preConfigure = (import ./script.nix {inherit coreutils;});
-in
+
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "3.2.3";
+  version = "4.0.0";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "1in25clpbb2vdhms3iypj6r5sp8d1dxjcfn85c272sh7shnmqagr";
+    sha256 = "0m7zy5k2595vf5xr2r4m75rfsdddigrv2hilm1c3zaif4srxmvpj";
   };
 
   nativeBuildInputs = [ cmake flex bison file ];
-  buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig ]
+  buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python3 swig ncurses ]
     ++ lib.optionals stdenv.isDarwin [ gettext ];
 
-  #see issue https://github.com/zeek/zeek/issues/804 to modify hardlinking duplicate files.
-  inherit preConfigure;
-
-  patches = lib.optionals stdenv.cc.isClang [
-    # Fix pybind c++17 build with Clang. See: https://github.com/pybind/pybind11/issues/1604
-    (fetchpatch {
-      url = "https://github.com/pybind/pybind11/commit/759221f5c56939f59d8f342a41f8e2d2cacbc8cf.patch";
-      sha256 = "17qznp8yavnv84fjsbghv3d59z6k6rx74j49w0izakmgw5a95w84";
-      extraPrefix = "auxil/broker/bindings/python/3rdparty/pybind11/";
-      stripLen = 1;
-    })
-  ];
+  outputs = [ "out" "lib" "py" ];
 
   cmakeFlags = [
-    "-DPY_MOD_INSTALL_DIR=${placeholder "out"}/${python.sitePackages}"
+    "-DCAF_ROOT=${caf}"
+    "-DZEEK_PYTHON_DIR=${placeholder "py"}/lib/${python3.libPrefix}/site-packages"
     "-DENABLE_PERFTOOLS=true"
     "-DINSTALL_AUX_TOOLS=true"
   ];
 
+  postInstall = ''
+    for file in $out/share/zeek/base/frameworks/notice/actions/pp-alarms.zeek $out/share/zeek/base/frameworks/notice/main.zeek; do
+      substituteInPlace $file \
+         --replace "/bin/rm" "${coreutils}/bin/rm" \
+         --replace "/bin/cat" "${coreutils}/bin/cat"
+    done
+
+    for file in $out/share/zeek/policy/misc/trim-trace-file.zeek $out/share/zeek/base/frameworks/logging/postprocessors/scp.zeek $out/share/zeek/base/frameworks/logging/postprocessors/sftp.zeek; do
+      substituteInPlace $file --replace "/bin/rm" "${coreutils}/bin/rm"
+    done
+  '';
+
   meta = with lib; {
     description = "Powerful network analysis framework much different from a typical IDS";
     homepage = "https://www.zeek.org";
diff --git a/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix
deleted file mode 100644
index 4c8bbcf22c03..000000000000
--- a/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{coreutils}:
-''
-   sed -i 's|/bin/mv|${coreutils}/bin/mv|' scripts/base/frameworks/logging/writers/ascii.zeek
-   sed -i 's|/bin/mv|${coreutils}/bin/mv|' scripts/policy/misc/trim-trace-file.zeek
-   sed -i 's|/bin/cat|${coreutils}/bin/cat|' scripts/base/frameworks/notice/actions/pp-alarms.zeek
-   sed -i 's|/bin/cat|${coreutils}/bin/cat|' scripts/base/frameworks/notice/main.zeek
-
-   sed -i "1i##! test dpd" $PWD/scripts/base/frameworks/dpd/__load__.zeek
-   sed -i "1i##! test x509" $PWD/scripts/base/files/x509/__load__.zeek
-   sed -i "1i##! test files-extract" $PWD/scripts/base/files/extract/__load__.zeek
-   sed -i "1i##! test files-hash" $PWD/scripts/base/files/hash/__load__.zeek
-   sed -i "1i##! test files-pe" $PWD/scripts/base/files/pe/__load__.zeek
-   sed -i "1i##! test analyzer" $PWD/scripts/base/frameworks/analyzer/__load__.zeek
-   sed -i "1i##! test cluster" $PWD/scripts/base/frameworks/cluster/__load__.zeek
-   sed -i "1i##! test config" $PWD/scripts/base/frameworks/config/__load__.zeek
-   sed -i "1i##! test contro" $PWD/scripts/base/frameworks/control/__load__.zeek
-   sed -i "1i##! test files" $PWD/scripts/base/frameworks/files/__load__.zeek
-   sed -i "1i##! test files-magic" $PWD/scripts/base/frameworks/files/magic/__load__.zeek
-   sed -i "1i##! test input" $PWD/scripts/base/frameworks/input/__load__.zeek
-   sed -i "1i##! test intel" $PWD/scripts/base/frameworks/intel/__load__.zeek
-   sed -i "1i##! test logging" $PWD/scripts/base/frameworks/logging/__load__.zeek
-   sed -i "1i##! test logging-postprocessors" $PWD/scripts/base/frameworks/logging/postprocessors/__load__.zeek
-   sed -i "1i##! test netcontrol" $PWD/scripts/base/frameworks/netcontrol/__load__.zeek
-   sed -i "1i##! test netcontrol-plugins" $PWD/scripts/base/frameworks/netcontrol/plugins/__load__.zeek
-   sed -i "1i##! test notice" $PWD/scripts/base/frameworks/notice/__load__.zeek
-   sed -i "1i##! test openflow" $PWD/scripts/base/frameworks/openflow/__load__.zeek
-   sed -i "1i##! test openflow-plugins" $PWD/scripts/base/frameworks/openflow/plugins/__load__.zeek
-   sed -i "1i##! test packet-filter" $PWD/scripts/base/frameworks/packet-filter/__load__.zeek
-   sed -i "1i##! test reporter" $PWD/scripts/base/frameworks/reporter/__load__.zeek
-   sed -i "1i##! test signatures" $PWD/scripts/base/frameworks/signatures/__load__.zeek
-   sed -i "1i##! test software" $PWD/scripts/base/frameworks/software/__load__.zeek
-   sed -i "1i##! test sumstats" $PWD/scripts/base/frameworks/sumstats/__load__.zeek
-   sed -i "1i##! test sumstats-plugins" $PWD/scripts/base/frameworks/sumstats/plugins/__load__.zeek
-   sed -i "1i##! test conn" $PWD/scripts/base/protocols/conn/__load__.zeek
-   sed -i "1i##! test dce-rpc" $PWD/scripts/base/protocols/dce-rpc/__load__.zeek
-   sed -i "1i##! test dhcp" $PWD/scripts/base/protocols/dhcp/__load__.zeek
-   sed -i "1i##! test dnp3" $PWD/scripts/base/protocols/dnp3/__load__.zeek
-   sed -i "1i##! test dns" $PWD/scripts/base/protocols/dns/__load__.zeek
-   sed -i "1i##! test ftp" $PWD/scripts/base/protocols/ftp/__load__.zeek
-   sed -i "1i##! test http" $PWD/scripts/base/protocols/http/__load__.zeek
-   sed -i "1i##! test tunnels" $PWD/scripts/base/protocols/tunnels/__load__.zeek
-   sed -i "1i##! test imap" $PWD/scripts/base/protocols/imap/__load__.zeek
-   sed -i "1i##! test irc" $PWD/scripts/base/protocols/irc/__load__.zeek
-   sed -i "1i##! test krb" $PWD/scripts/base/protocols/krb/__load__.zeek
-   sed -i "1i##! test modbus" $PWD/scripts/base/protocols/modbus/__load__.zeek
-   sed -i "1i##! test mqtt" $PWD/scripts/base/protocols/mqtt/__load__.zeek
-   sed -i "1i##! test mysql" $PWD/scripts/base/protocols/mysql/__load__.zeek
-   sed -i "1i##! test ntlm" $PWD/scripts/base/protocols/ntlm/__load__.zeek
-   sed -i "1i##! test ntp" $PWD/scripts/base/protocols/ntp/__load__.zeek
-   sed -i "1i##! test pop3" $PWD/scripts/base/protocols/pop3/__load__.zeek
-   sed -i "1i##! test radius" $PWD/scripts/base/protocols/radius/__load__.zeek
-   sed -i "1i##! test rdp" $PWD/scripts/base/protocols/rdp/__load__.zeek
-   sed -i "1i##! test rfb" $PWD/scripts/base/protocols/rfb/__load__.zeek
-   sed -i "1i##! test sip" $PWD/scripts/base/protocols/sip/__load__.zeek
-   sed -i "1i##! test smb" $PWD/scripts/base/protocols/smb/__load__.zeek
-   sed -i "1i##! test smtp" $PWD/scripts/base/protocols/smtp/__load__.zeek
-   sed -i "1i##! test snmp" $PWD/scripts/base/protocols/snmp/__load__.zeek
-   sed -i "1i##! test socks" $PWD/scripts/base/protocols/socks/__load__.zeek
-   sed -i "1i##! test ssh" $PWD/scripts/base/protocols/ssh/__load__.zeek
-   sed -i "1i##! test ssl" $PWD/scripts/base/protocols/ssl/__load__.zeek
-   sed -i "1i##! test syslog" $PWD/scripts/base/protocols/syslog/__load__.zeek
-   sed -i "1i##! test xmpp" $PWD/scripts/base/protocols/xmpp/__load__.zeek
-   sed -i "1i##! test unified2" $PWD/scripts/policy/files/unified2/__load__.zeek
-   sed -i "1i##! test intel-seen" $PWD/scripts/policy/frameworks/intel/seen/__load__.zeek
-   sed -i "1i##! test notice" $PWD/scripts/policy/frameworks/notice/__load__.zeek
-   sed -i "1i##! test barnyard2" $PWD/scripts/policy/integration/barnyard2/__load__.zeek
-   sed -i "1i##! test collective-intel" $PWD/scripts/policy/integration/collective-intel/__load__.zeek
-   sed -i "1i##! test detect-traceroute" $PWD/scripts/policy/misc/detect-traceroute/__load__.zeek
-''
diff --git a/nixpkgs/pkgs/applications/networking/ike/default.nix b/nixpkgs/pkgs/applications/networking/ike/default.nix
index 7a8c3d395f64..7b4ddb6134db 100644
--- a/nixpkgs/pkgs/applications/networking/ike/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ike/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, fetchpatch, cmake, openssl, libedit, flex, bison, qt4, makeWrapper
-, gcc, nettools, iproute, linuxHeaders }:
+, gcc, nettools, iproute2, linuxHeaders }:
 
 # NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp";
 # launch with "iked -f /etc/iked.conf"
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ cmake flex bison makeWrapper ];
-  buildInputs = [ openssl libedit qt4 nettools iproute ];
+  buildInputs = [ openssl libedit qt4 nettools iproute2 ];
 
   postPatch = ''
     # fix build with bison3
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.shrew.net/software";
     description = "IPsec Client for FreeBSD, NetBSD and many Linux based operating systems";
     platforms = platforms.unix;
-    maintainers = [ maintainers.domenkozar ];
+    maintainers = [ ];
     license = licenses.sleepycat;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
index 8023c70fe5fd..95bf8c026627 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
@@ -1,6 +1,5 @@
-{ lib, fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkg-config, glib, json-glib }:
+{ lib, fetchFromGitHub, fetchpatch, stdenv, bitlbee, autoconf, automake, libtool, pkg-config, json-glib }:
 
-with lib;
 stdenv.mkDerivation rec {
   pname = "bitlbee-facebook";
   version = "1.2.1";
@@ -12,6 +11,17 @@ stdenv.mkDerivation rec {
     sha256 = "1yjhjhk3jzjip13lq009vlg84lm2lzwhac5jy0aq3vkcz6rp94rc";
   };
 
+  # TODO: This patch should be included with the next release after v1.2.1
+  #       these lines should be removed when this happens.
+  patches = [
+    (fetchpatch {
+        name = "FB_ORCA_AGENT_version_bump.patch";
+        url = "https://github.com/bitlbee/bitlbee-facebook/commit/49ea312d98b0578b9b2c1ff759e2cfa820a41f4d.patch";
+        sha256 = "0nzyyg8pw4f2jcickcpxq7r2la5wgl7q6iz94lhzybrkhss5753d";
+      }
+    )
+  ];
+
   nativeBuildInputs = [ autoconf automake libtool pkg-config ];
 
   buildInputs = [ bitlbee json-glib ];
@@ -21,11 +31,11 @@ stdenv.mkDerivation rec {
     ./autogen.sh
   '';
 
-  meta = {
+  meta = with lib; {
     description = "The Facebook protocol plugin for bitlbee";
-
     homepage = "https://github.com/bitlbee/bitlbee-facebook";
     license = licenses.gpl2Plus;
-    platforms = lib.platforms.linux;
+    maintainers = with maintainers; [ toonn ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index 1a83a04a1fa8..c5a718c3a702 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, fetchpatch, stdenv, gnutls, glib, pkg-config, check, libotr, python
+{ lib, fetchurl, fetchpatch, stdenv, gnutls, glib, pkg-config, check, libotr, python2
 , enableLibPurple ? false, pidgin ? null
 , enablePam ? false, pam ? null
 }:
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ] ++ optional doCheck check;
 
-  buildInputs = [ gnutls libotr python ]
+  buildInputs = [ gnutls libotr python2 ]
     ++ optional enableLibPurple pidgin
     ++ optional enablePam pam;
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix
index 7ed3b1673831..805278b4e456 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix
@@ -1,7 +1,7 @@
-{ lib, fetchdarcs, pythonPackages, libvncserver, zlib
+{ lib, fetchdarcs, python2Packages, libvncserver, zlib
 , gnutls, libvpx, makeDesktopItem, mkDerivationWith }:
 
-mkDerivationWith pythonPackages.buildPythonApplication rec {
+mkDerivationWith python2Packages.buildPythonApplication rec {
 
   pname = "blink";
   version = "3.2.0";
@@ -17,16 +17,16 @@ mkDerivationWith pythonPackages.buildPythonApplication rec {
     sed -i 's|@out@|'"''${out}"'|g' blink/resources.py
   '';
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with python2Packages; [
     pyqt5_with_qtwebkit
     cjson
     sipsimple
     twisted
-    google_api_python_client
+    google-api-python-client
   ];
 
   buildInputs = [
-    pythonPackages.cython
+    python2Packages.cython
     zlib
     libvncserver
     libvpx
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
index e58e73fdc85b..0134fac0e202 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
@@ -1,21 +1,25 @@
-{ lib, fetchurl, appimageTools }:
+{ lib, fetchurl, appimageTools, gsettings-desktop-schemas, gtk3 }:
 
 let
   pname = "deltachat-electron";
-  version = "1.3.0";
+  version = "1.15.5";
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url =
-      "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
-    sha256 = "1xyp8cg11px8rras12sncjmq85alyvz7ycw1v1py8w8rlz60wkij";
+    url = "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
+    sha256 = "sha256-BTGwgC0zSr1tq/X4v/fS/12E7/mGVYQ0m+Bt6o7VL4o=";
   };
 
   appimageContents = appimageTools.extract { inherit name src; };
 
-in appimageTools.wrapType2 {
+in
+appimageTools.wrapType2 {
   inherit name src;
 
+  profile = ''
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
   extraInstallCommands = ''
     mv $out/bin/${name} $out/bin/${pname}
     install -m 444 -D \
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
index 0474f21a2b92..29a69b401920 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -27,6 +27,15 @@ stdenv.mkDerivation rec {
     sha256 = "0wy1hb3kz3k4gqqwx308n37cqag2d017jwfz0b5s30nkx2pbwspw";
   };
 
+  patches = [
+    # Fixes https://github.com/dino/dino/issues/1010 (double' is not a supported generic type argument)
+    (fetchpatch {
+      name = "dino-vala-boxing.patch";
+      url = "https://github.com/dino/dino/commit/9acb54df9254609f2fe4de83c9047d408412de28.patch";
+      sha256 = "1jz4r7d8b1ljwgq846wihp864b6gjdkgh6fnmxh13b2i10x52xsm";
+    })
+  ];
+
   nativeBuildInputs = [
     vala
     cmake
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
index c7ddc495546d..fe75418ebe33 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -7,10 +7,10 @@ in {
     pname = "discord";
     binaryName = "Discord";
     desktopName = "Discord";
-    version = "0.0.13";
+    version = "0.0.14";
     src = fetchurl {
       url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
-      sha256 = "0d5z6cbj9dg3hjw84pyg75f8dwdvi2mqxb9ic8dfqzk064ssiv7y";
+      sha256 = "1rq490fdl5pinhxk8lkfcfmfq7apj79jzf3m14yql1rc9gpilrf2";
     };
   };
   ptb = callPackage ./base.nix rec {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index a5f21f11dfed..72a5b86c6256 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
   "name": "element-desktop",
   "productName": "Element",
   "main": "src/electron-main.js",
-  "version": "1.7.20",
+  "version": "1.7.24",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
@@ -62,7 +62,7 @@
   },
   "build": {
     "appId": "im.riot.app",
-    "electronVersion": "10.2.0",
+    "electronVersion": "11.2.3",
     "files": [
       "package.json",
       {
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 7da0186022a7..dcb22815e9e6 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -8,12 +8,12 @@
 
 let
   executableName = "element-desktop";
-  version = "1.7.20";
+  version = "1.7.24";
   src = fetchFromGitHub {
     owner = "vector-im";
     repo = "element-desktop";
     rev = "v${version}";
-    sha256 = "sha256-kQMswcEGsefQ8HCWxYPgvxOKP5cgvXx8oCl5Inh6sOg=";
+    sha256 = "sha256-16sqiOwJvKTs6MPmdkuiPhnr1G7ErWCT5ctp5xqZRlk=";
   };
 in mkYarnPackage rec {
   name = "element-desktop-${version}";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 6ee48d53288c..1b6d83bd3542 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -12,11 +12,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "element-web";
-  version = "1.7.20";
+  version = "1.7.24";
 
   src = fetchurl {
     url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
-    sha256 = "sha256-8R7l/Pmymd5+/Fri7z2/TDj1h2FL0QgLICoXajePing=";
+    sha256 = "sha256-u6mcO+MMjrr2YujVVcsaA7qsruirmHJz3o8nAPOecSU=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
index 14cf45e97bbd..23a4aebb0265 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
@@ -1,12 +1,9 @@
 { lib, stdenv
 , fetchFromGitLab
 , nix-update-script
-, fetchpatch
 , meson
 , ninja
 , gettext
-, cargo
-, rustc
 , python3
 , rustPlatform
 , pkg-config
@@ -24,7 +21,7 @@
 , wrapGAppsHook
 }:
 
-rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
   pname = "fractal";
   version = "4.4.0";
 
@@ -36,16 +33,21 @@ rustPlatform.buildRustPackage rec {
     sha256 = "DSNVd9YvI7Dd3s3+M0+wE594tmL1yPNMnD1W9wLhSuw=";
   };
 
-  cargoSha256 = "xim5sOzeXJjRXbTOg2Gk/LHU0LioiyMK5nSr1LwMPjc=";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-xim5sOzeXJjRXbTOg2Gk/LHU0LioiyMK5nSr1LwMPjc=";
+  };
 
   nativeBuildInputs = [
-    cargo
     gettext
     meson
     ninja
     pkg-config
     python3
-    rustc
+    rustPlatform.rust.cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.rustc
     wrapGAppsHook
     glib
   ];
@@ -76,12 +78,6 @@ rustPlatform.buildRustPackage rec {
     patchShebangs scripts/meson_post_install.py scripts/test.sh
   '';
 
-  # Don't use buildRustPackage phases, only use it for rust deps setup
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-
   passthru = {
     updateScript = nix-update-script {
       attrPath = pname;
@@ -92,7 +88,6 @@ rustPlatform.buildRustPackage rec {
     description = "Matrix group messaging app";
     homepage = "https://gitlab.gnome.org/GNOME/fractal";
     license = licenses.gpl3;
-    broken = stdenv.isDarwin;
     maintainers = with maintainers; [ dtzWill worldofpeace ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index a2d12124dbf1..0fea57ea9cc7 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -13,20 +13,21 @@
 
 buildGoModule rec {
   pname = "gomuks";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = pname;
     rev = "v${version}";
-    sha256 = "169xyd44jyfh5njwmhsmkah8njfgnp9q9c2b13p0ry5saicwm5h5";
+    sha256 = "0g0aa6h6bm00mdgkb38wm66rcrhqfvs2xj9rl04bwprsa05q5lca";
   };
 
-  vendorSha256 = "1l8qnz0qy90zpywfx7pbkqpxg7rkvc9j622zcmkf38kdc1z6w20a";
+  vendorSha256 = "14ya5advpv4q5il235h5dxy8c2ap2yzrvqs0sjqgw0v1vm6vpwdx";
 
   doCheck = false;
 
-  buildInputs = [ makeWrapper olm ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ olm ];
 
   # Upstream issue: https://github.com/tulir/gomuks/issues/260
   patches = lib.optional stdenv.isLinux (substituteAll {
@@ -54,8 +55,8 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://maunium.net/go/gomuks/";
     description = "A terminal based Matrix client written in Go";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ charvp emily ];
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ chvp emily ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
index f3736bfc64f6..cbbe74481c23 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -47,7 +47,7 @@ in stdenv.mkDerivation {
     sha256 = "03pz8wskafn848yvciq29kwdvqcgjrk6sjnm8nk9acl89xf0sn96";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildCommand = ''
     ar x $src
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
index feffbe312d5e..d10c5359e355 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -2,19 +2,20 @@
 , fetchurl
 , appimageTools
 , makeWrapper
-, electron_10
+, electron_12
+, xorg
 }:
 
 let
-  electron = electron_10;
+  electron = electron_12;
 in
 stdenv.mkDerivation rec {
   pname = "jitsi-meet-electron";
-  version = "2.4.2";
+  version = "2.7.0";
 
   src = fetchurl {
     url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
-    sha256 = "1lv3ca9qlggyb8vcg8zlxv46i8fgx5qrx7i7y71dlqblajalf42p";
+    sha256 = "1g8was4anrsdpv4h11z544mi0v79him2xjyknixyrqfy87cbh97n";
     name = "${pname}-${version}.AppImage";
   };
 
@@ -47,7 +48,7 @@ stdenv.mkDerivation rec {
   postFixup = ''
     makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/share/${pname}/resources/app.asar \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc xorg.libXtst ]}"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix
index 3b6b9bfc6f91..42ea1c52fa9b 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, mkDerivation, fetchFromGitHub
 , qmake, pkg-config, olm, wrapQtAppsHook
-, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qttools, qtgraphicaleffects
+, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qtgraphicaleffects
 , python3Packages, pyotherside, libXScrnSaver
 }:
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix
index cd456b336dd6..c0e0c80b4595 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix
@@ -3,8 +3,6 @@
 , fetchFromGitLab
 , pkg-config
 , cmake
-, qtbase
-, qttools
 , qtquickcontrols2
 , qtmultimedia
 , qtgraphicaleffects
@@ -26,14 +24,14 @@
 
 mkDerivation rec {
   pname = "neochat";
-  version = "1.0.1";
+  version = "1.1.1";
 
   src = fetchFromGitLab {
     domain = "invent.kde.org";
     owner = "network";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xGqGFJHyoZXHLv/n3UGr/KVbgs5Gc9kKKWIuKMr9DtQ=";
+    sha256 = "sha256-HvLPsU+fxlyPDP7i9OSnZ/C1RjouOQCp+4WCl6FlFJo=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
index 57db6a0750e9..927f89c94939 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -23,6 +23,9 @@
 , olm
 , pkg-config
 , nlohmann_json
+, voipSupport ? true
+, gst_all_1
+, libnice
 }:
 
 mkDerivation rec {
@@ -59,12 +62,24 @@ mkDerivation rec {
     qtquickcontrols2
     qtgraphicaleffects
     qtkeychain
-  ] ++ lib.optional stdenv.isDarwin qtmacextras;
+  ] ++ lib.optional stdenv.isDarwin qtmacextras
+    ++ lib.optionals voipSupport (with gst_all_1; [
+      gstreamer
+      gst-plugins-base
+      (gst-plugins-good.override { qt5Support = true; })
+      gst-plugins-bad
+      libnice
+    ]);
 
   cmakeFlags = [
     "-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389
   ];
 
+  preFixup = lib.optionalString voipSupport ''
+    # add gstreamer plugins path to the wrapper
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+  '';
+
   meta = with lib; {
     description = "Desktop client for the Matrix protocol";
     homepage = "https://github.com/Nheko-Reborn/nheko";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix
index 46f8458f1533..f702a667ae16 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pidgin-carbons";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "gkdr";
     repo  = "carbons";
     rev   = "v${version}";
-    sha256 = "1aq9bwgpmbwrigq6ywf0pjkngqcm0qxncygaj1fi57npjhcjs6ln";
+    sha256 = "sha256-qiyIvmJbRmCrAi/93UxDVtO76nSdtzUVfT/sZGxxAh8=";
   };
 
   makeFlags = [ "PURPLE_PLUGIN_DIR=$(out)/lib/pidgin" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
index 2862e4df796a..9845491f235d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share"
   ];
 
-  buildFlags = [ "CC=cc" ]; # fix build on darwin
+  buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; # fix build on darwin
 
   meta = with lib; {
     homepage = "https://github.com/matrix-org/purple-matrix";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 65b9c245a383..edbc28f793b0 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -29,11 +29,13 @@ let unwrapped = stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0";
 
-  buildInputs = [
+  buildInputs = let
+    python-with-dbus = python.withPackages (pp: with pp; [ dbus-python ]);
+  in [
     aspell startupnotification
     gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
     libxml2 nss nspr
-    libXScrnSaver ncurses python
+    libXScrnSaver ncurses python-with-dbus
     avahi dbus dbus-glib intltool libidn
     libICE libXext libSM cyrus_sasl
   ]
@@ -72,6 +74,15 @@ let unwrapped = stdenv.mkDerivation rec {
       --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
   '';
 
+  doInstallCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+  # In particular, this detects missing python imports in some of the tools.
+  postInstallCheck = ''
+    for f in "''${!outputBin}"/bin/{purple-remote,pidgin}; do
+      echo "Testing: $f --help"
+      "$f" --help
+    done
+  '';
+
   meta = with lib; {
     description = "Multi-protocol instant messaging client";
     homepage = "http://pidgin.im";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
index c373d23948b8..5aaed6eb211b 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -4,7 +4,7 @@
 
 , autoAwaySupport ? true,       libXScrnSaver ? null, libX11 ? null
 , notifySupport ? true,         libnotify ? null, gdk-pixbuf ? null
-, traySupport ? true,           gnome2 ? null
+, traySupport ? true,           gtk2 ? null
 , pgpSupport ? true,            gpgme ? null
 , pythonPluginSupport ? true,   python ? null
 , omemoSupport ? true,          libsignal-protocol-c ? null, libgcrypt ? null
@@ -12,7 +12,7 @@
 
 assert autoAwaySupport     -> libXScrnSaver != null && libX11 != null;
 assert notifySupport       -> libnotify != null && gdk-pixbuf != null;
-assert traySupport         -> gnome2 != null;
+assert traySupport         -> gtk2 != null;
 assert pgpSupport          -> gpgme != null;
 assert pythonPluginSupport -> python != null;
 assert omemoSupport        -> libsignal-protocol-c != null && libgcrypt != null;
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     curl libmesode cmocka libmicrohttpd sqlite
   ] ++ optionals autoAwaySupport     [ libXScrnSaver libX11 ]
     ++ optionals notifySupport       [ libnotify gdk-pixbuf ]
-    ++ optionals traySupport         [ gnome2.gtk ]
+    ++ optionals traySupport         [ gtk2 ]
     ++ optionals pgpSupport          [ gpgme ]
     ++ optionals pythonPluginSupport [ python ]
     ++ optionals omemoSupport        [ libsignal-protocol-c libgcrypt ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
index e5221d861d36..6d6e70ff26a0 100755
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -1,7 +1,7 @@
-{ lib, mkDerivation, fetchurl, makeFontsConf, appimageTools,
-  qtbase, qtsvg, qtmultimedia, qtwebsockets, qtimageformats,
-  autoPatchelfHook, desktop-file-utils, imagemagick, makeWrapper,
-  twemoji-color-font, xorg, libsodium, libopus, libGL, zlib, alsaLib }:
+{ lib, mkDerivation, fetchurl, makeFontsConf, appimageTools
+, qtbase, qtsvg, qtmultimedia, qtwebsockets, qtimageformats
+, autoPatchelfHook, desktop-file-utils, imagemagick
+, twemoji-color-font, xorg, libsodium, libopus, libGL, alsaLib }:
 
 mkDerivation rec {
   pname = "ripcord";
@@ -19,9 +19,9 @@ mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoPatchelfHook desktop-file-utils imagemagick ];
-  buildInputs = [ libsodium libopus libGL alsaLib ] ++
-                [ qtbase qtsvg qtmultimedia qtwebsockets qtimageformats ] ++
-                (with xorg; [ libX11 libXScrnSaver libXcursor xkeyboardconfig ]);
+  buildInputs = [ libsodium libopus libGL alsaLib ]
+    ++ [ qtbase qtsvg qtmultimedia qtwebsockets qtimageformats ]
+    ++ (with xorg; [ libX11 libXScrnSaver libXcursor xkeyboardconfig ]);
 
   fontsConf = makeFontsConf {
     fontDirectories = [ twemoji-color-font ];
@@ -60,10 +60,8 @@ mkDerivation rec {
   meta = with lib; {
     description = "Desktop chat client for Slack and Discord";
     homepage = "https://cancel.fm/ripcord/";
-
     # See: https://cancel.fm/ripcord/shareware-redistribution/
     license = licenses.unfreeRedistributable;
-
     maintainers = with maintainers; [ infinisil ];
     platforms = [ "x86_64-linux" ];
   };
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 601489d4532d..05ab8b49a69e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "signal-cli";
-  version = "0.7.4";
+  version = "0.8.1";
 
   # Building from source would be preferred, but is much more involved.
   src = fetchurl {
     url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
-    sha256 = "18dv2944nsryl6372jqgb52z3s1grvgfc5sb1b1rgn0y84g8g46n";
+    sha256 = "sha256-Lq1RSJ1VIa6MFTiTbGqNy7IqliJwGeuegm/1+RRtu+I=";
   };
 
   buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 19e48bf88d68..e821e182cd40 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -25,7 +25,7 @@ let
       else "");
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "1.39.6"; # Please backport all updates to the stable channel.
+  version = "1.40.1"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "04fd81vc0dxk0b47crm5zacf4x79pdn483xicygnc1z6v7mnrmgk";
+    sha256 = "0k57r1x64w38n0295qdrf3p19d3z8m530h46ps0j2x0krhah47w7";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index fe7a2e3ba0f3..764a5ac3db51 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, dpkg
 , alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome3
 , gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
-, at-spi2-atk, libuuid, at-spi2-core }:
+, at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon }:
 
 let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.68.0.100";
+  version = "8.69.0.77";
 
   rpath = lib.makeLibraryPath [
     alsaLib
@@ -40,8 +40,11 @@ let
     pango
     stdenv.cc.cc
     systemd
-    libv4l
 
+    libv4l
+    libdrm
+    mesa
+    libxkbcommon
     xorg.libxkbfile
     xorg.libX11
     xorg.libXcomposite
@@ -65,7 +68,7 @@ let
           "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "gHjgQRdNABO+R+fcDurHDAQtZpckIxLbODM6Txz+LH4=";
+        sha256 = "PaqlPp+BRS0cH7XI4x1/5HqYti63rQThmTtPaghIQH0=";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
index 44642ab8a930..1775e45d4e6e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -26,6 +26,7 @@
 , libuuid
 , libxcb
 , libxkbcommon
+, libxshmfence
 , mesa
 , nspr
 , nss
@@ -41,11 +42,11 @@ let
 
   pname = "slack";
 
-  x86_64-darwin-version = "4.12.2";
-  x86_64-darwin-sha256 = "0qflv2glfy7d77zjgqi7qcjr53c9dni26gmqkg9vk2xijmmd3xy7";
+  x86_64-darwin-version = "4.14.0";
+  x86_64-darwin-sha256 = "0kpjsnriav6rcddjkz0z9arxjd09i6bw2krnmf3dc31my64nmxs6";
 
-  x86_64-linux-version = "4.12.2";
-  x86_64-linux-sha256 = "sha256-G5uQI078N7AbhEJs6a/17Hoi5DSdwvYLM1T/ttrEw4s=";
+  x86_64-linux-version = "4.14.0";
+  x86_64-linux-sha256 = "0xy9i8ssjba62ca7lfan58rhwx69wkapfd0jzkaj95qhqnv019fg";
 
   version = {
     x86_64-darwin = x86_64-darwin-version;
@@ -117,6 +118,7 @@ let
       xorg.libXi
       xorg.libXrandr
       xorg.libXrender
+      xorg.libxshmfence
       xorg.libXtst
       xorg.libxkbfile
     ] + ":${stdenv.cc.cc.lib}/lib64";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
index 0ce5f764128d..47027da9a919 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, dpkg, alsaLib, atk, cairo, cups, dbus, expat, fontconfig
-, freetype, gdk-pixbuf, glib, gnome2, nspr, nss, pango, udev, xorg }:
+, freetype, gdk-pixbuf, glib, gnome2, gtk2, nspr, nss, pango, udev, xorg }:
 let
   fullPath = lib.makeLibraryPath [
     alsaLib
@@ -13,7 +13,7 @@ let
     gdk-pixbuf
     glib
     gnome2.GConf
-    gnome2.gtk
+    gtk2
     nspr
     nss
     pango
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
index 1625878a2d07..aaa00e031d16 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "teams";
-  version = "1.3.00.30857";
+  version = "1.4.00.4855";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb";
-    sha256 = "06r48h1fr2si2g5ng8hsnbcmr70iapnafj21v5bzrzzrigzb2n2h";
+    sha256 = "1g0lsydz4l536qf890drdz6g86xb0sm3326hz3ymj9pi8vvbs7d9";
   };
 
   nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook ];
@@ -38,9 +38,13 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     gappsWrapperArgs+=(--prefix PATH : "${coreutils}/bin:${gawk}/bin:${xdg-utils}/bin")
+    gappsWrapperArgs+=(--add-flags --disable-namespace-sandbox)
+    gappsWrapperArgs+=(--add-flags --disable-setuid-sandbox)
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/{opt,bin}
 
     mv share/teams $out/opt/
@@ -54,6 +58,8 @@ stdenv.mkDerivation rec {
     # Work-around screen sharing bug
     # https://docs.microsoft.com/en-us/answers/questions/42095/sharing-screen-not-working-anymore-bug.html
     rm $out/opt/teams/resources/app.asar.unpacked/node_modules/slimcore/bin/rect-overlay
+
+    runHook postInstall
   '';
 
   dontAutoPatchelf = true;
@@ -76,6 +82,11 @@ stdenv.mkDerivation rec {
       echo "Adding runtime dependencies to RPATH of Node module $mod"
       patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod"
     done;
+
+    # fix for https://docs.microsoft.com/en-us/answers/questions/298724/open-teams-meeting-link-on-linux-doens39t-work.html?childToView=309406#comment-309406
+    # while we create the wrapper ourselves, gappsWrapperArgs leads to the same issue
+    # another option would be to introduce gappsWrapperAppendedArgs, to allow control of positioning
+    substituteInPlace "$out/bin/teams" --replace '.teams-wrapped"  --disable-namespace-sandbox --disable-setuid-sandbox "$@"' '.teams-wrapped" "$@" --disable-namespace-sandbox --disable-setuid-sandbox'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
index 3dfbb69e83c7..e266265291b3 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
@@ -4,13 +4,13 @@ let
   arch = if stdenv.is64bit then "amd64" else "x86";
 in stdenv.mkDerivation rec {
   pname = "teamspeak-server";
-  version = "3.13.2";
+  version = "3.13.3";
 
   src = fetchurl {
     url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2";
     sha256 = if stdenv.is64bit
-      then "1l9i9667wppwxbbnf6kxamnqlbxzkz9ync4rsypfla124b6cidpz"
-      else "0qhd05abiycsgc16r1p6y8bfdrl6zji21xaqwdizpr0jb01z335g";
+      then "sha256-+b9S0ekQmXF5KwvVcmHIDpp0iZRO2W1ls8eYhDzjUUw="
+      else "sha256-Qu6xPzbUdqO93j353cfQILlFYqmwFSnFWG9TjniX0+c=";
   };
 
   buildInputs = [ stdenv.cc.cc postgresql.lib ];
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 676902d68ef6..bfd4f28d0c0d 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
@@ -1,6 +1,6 @@
 { mkDerivation, lib, fetchFromGitHub, pkg-config, python3, cmake, ninja
 , qtbase, qtimageformats, libdbusmenu, hunspell, xdg-utils, ffmpeg_3, openalSoft
-, lzma, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected
+, xz, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected
 , range-v3
 }:
 
@@ -21,7 +21,7 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config python3 cmake ninja ];
 
   buildInputs = [
-    qtbase qtimageformats ffmpeg_3 openalSoft lzma lz4 xxHash libdbusmenu
+    qtbase qtimageformats ffmpeg_3 openalSoft xz lz4 xxHash libdbusmenu
     zlib minizip openssl hunspell libtgvoip microsoft_gsl tl-expected range-v3
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 693a01f5d89a..4d6e22bd89cd 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -1,10 +1,11 @@
-{ mkDerivation, lib, fetchurl, callPackage
+{ mkDerivation, lib, fetchurl, fetchpatch, callPackage
 , pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
 , qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
 , dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
-, tl-expected, hunspell
-# TODO: Shouldn't be required:
-, pcre, xorg, util-linux, libselinux, libsepol, epoxy, at-spi2-core, libXtst
+, tl-expected, hunspell, glibmm
+# Transitive dependencies:
+, pcre, xorg, util-linux, libselinux, libsepol, epoxy
+, at-spi2-core, libXtst, libthai, libdatrie
 , xdg-utils
 }:
 
@@ -19,15 +20,19 @@ with lib;
 
 let
   tg_owt = callPackage ./tg_owt.nix {};
+  tgcalls-gcc10-fix = fetchpatch { # "Fix build on GCC 10, second attempt."
+    url = "https://github.com/TelegramMessenger/tgcalls/commit/eded7cc540123eaf26361958b9a61c65cb2f7cfc.patch";
+    sha256 = "19n1hvn44pp01zc90g93vq2bcr2gdnscaj5il9f82klgh4llvjli";
+  };
 
 in mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.5.8";
+  version = "2.7.1";
 
   # Telegram-Desktop with submodules
   src = fetchurl {
     url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
-    sha256 = "0zj1g24fi4m84p6zj9yk55v8sbhn0jdpdhp33y12d2msz0qwp2cw";
+    sha256 = "01fxzcfz3xankmdar55ja55pb9hkvlf1plgpgjpsda9xwqgbxgs1";
   };
 
   postPatch = ''
@@ -35,6 +40,7 @@ in mkDerivation rec {
       --replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"'
     substituteInPlace Telegram/CMakeLists.txt \
       --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
+    patch -d Telegram/ThirdParty/tgcalls/ -p1 < "${tgcalls-gcc10-fix}"
   '';
 
   # We want to run wrapProgram manually (with additional parameters)
@@ -46,10 +52,11 @@ in mkDerivation rec {
   buildInputs = [
     qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu enchant2 lz4 xxHash
     dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
-    tl-expected hunspell
+    tl-expected hunspell glibmm
     tg_owt
-    # TODO: Shouldn't be required:
-    pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy at-spi2-core libXtst
+    # Transitive dependencies:
+    pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy
+    at-spi2-core libXtst libthai libdatrie
   ];
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
index b5a6579db57c..6bd72134e027 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, cmake, ninja, yasm
 , libjpeg, openssl, libopus, ffmpeg, alsaLib, libpulseaudio, protobuf
+, xorg, libXtst
 }:
 
 let
-  rev = "be23804afce3bb2e80a1d57a7c1318c71b82b7de";
-  sha256 = "0avdxkig8z1ainzyxkm9vmlvkyqbjalwb4h9s9kcail82mnldnhc";
+  rev = "2d804d2c9c5d05324c8ab22f2e6ff8306521b3c3";
+  sha256 = "0kz0i381iwsgcc3yzsq7njx3gkqja4bb9fsgc24vhg0md540qhyn";
 
 in stdenv.mkDerivation {
   pname = "tg_owt";
@@ -23,6 +24,7 @@ in stdenv.mkDerivation {
 
   buildInputs = [
     libjpeg openssl libopus ffmpeg alsaLib libpulseaudio protobuf
+    xorg.libX11 libXtst
   ];
 
   cmakeFlags = [
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 3fe88c287c58..deb01f1ef220 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, libxslt, telepathy-glib, libxml2, dbus-glib, dbus
+{ lib, stdenv, fetchurl, pkg-config, libxslt, telepathy-glib, python2, libxml2, dbus-glib, dbus
 , sqlite, libsoup, libnice, gnutls}:
 
 stdenv.mkDerivation rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config libxslt ];
-  buildInputs = [ libxml2 dbus-glib sqlite libsoup libnice telepathy-glib gnutls telepathy-glib.python ];
+  buildInputs = [ libxml2 dbus-glib sqlite libsoup libnice telepathy-glib gnutls python2 ];
 
   checkInputs = [ dbus.daemon ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
index 74e4d1039e77..11acf05c19e9 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, pidgin, telepathy-glib, glib, dbus-glib, pkg-config, libxslt }:
+{ lib, stdenv, fetchurl, fetchpatch, pidgin, telepathy-glib, python2, glib, dbus-glib, pkg-config, libxslt }:
 
 stdenv.mkDerivation rec {
   pname = "telepathy-haze";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1jgrp32p6rllj089ynbsk3n9xrvsvzmwzhf0ql05kkgj0nf08xiy";
   };
 
-  buildInputs = [ glib telepathy-glib dbus-glib pidgin telepathy-glib.python ];
+  buildInputs = [ glib telepathy-glib dbus-glib pidgin python2 ];
 
   nativeBuildInputs = [ pkg-config libxslt ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix
index bc66d77e2246..fe7ef49cd0d3 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, glib, dconf, pkg-config, dbus-glib, telepathy-glib, libxslt, makeWrapper }:
+{ lib, stdenv, fetchurl, glib, dconf, pkg-config, dbus-glib, telepathy-glib, python2, libxslt, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "telepathy-idle";
@@ -9,8 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ glib telepathy-glib dbus-glib libxslt telepathy-glib.python (lib.getLib dconf) makeWrapper ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ glib telepathy-glib dbus-glib libxslt python2 (lib.getLib dconf) ];
 
   preFixup = ''
     wrapProgram "$out/libexec/telepathy-idle" \
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
index bae29f4b31f1..a6b1a5256f46 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, dbus-glib, libxml2, sqlite, telepathy-glib, pkg-config
+{ lib, stdenv, fetchurl, dbus-glib, libxml2, sqlite, telepathy-glib, python2, pkg-config
 , dconf, makeWrapper, intltool, libxslt, gobject-introspection, dbus }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   ];
   buildInputs = [
     dbus-glib libxml2 sqlite telepathy-glib
-    dbus telepathy-glib.python
+    dbus python2
   ];
 
   configureFlags = [ "--enable-call" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
index cf166f7e2d34..99465cc7971e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libxslt, glib, libxml2, telepathy-glib, avahi, libsoup
+{ lib, stdenv, fetchurl, libxslt, glib, libxml2, telepathy-glib, python2, avahi, libsoup
 , libuuid, openssl, pcre, sqlite, pkg-config }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   # pcre needed because https://github.com/NixOS/nixpkgs/pull/15046
   buildInputs = [ glib libxml2 telepathy-glib avahi libsoup libuuid openssl
-    sqlite pcre telepathy-glib.python ];
+    sqlite pcre python2 ];
 
   nativeBuildInputs = [ libxslt pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
index 087dd502946d..dfc2613d3e9e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0rb4lvv40pz6ab5kxq40ycvh7kh1yxn7swzgv2ff2nbhi62xnzp0";
   };
 
-  buildInputs = [ python unzip wxPython wrapPython ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ python wxPython wrapPython ];
   pythonPath = [ wxPython ];
 
   preConfigure = "cd torchat/src; rm portable.txt";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
index 668e614c4746..e5a2c201d873 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     description = "Lightweight Tox client";
     homepage = "https://github.com/uTox/uTox";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ domenkozar ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
index 4389ee153c56..0224edc652fa 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
     sha256 = "0rs26x0lycavybn6k1hbb5kzms0zzcmxlrmi4g8k7vyafj6s8dqh";
   };
 
-  buildInputs = [ dpkg makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ dpkg ];
 
   dontUnpack = true;
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
index d7deb7ee052c..27312a18ec40 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -1,54 +1,73 @@
-{ stdenv, lib, fetchurl, rpmextract, autoPatchelfHook
+{ stdenv, lib, fetchurl, rpmextract, undmg, autoPatchelfHook
 , xorg, gtk3, gnome2, nss, alsaLib, udev, libnotify
 , wrapGAppsHook }:
 
 let
-  version = "5.0.1";
-in stdenv.mkDerivation {
   pname = "vk-messenger";
-  inherit version;
+  version = "5.2.3";
+
   src = {
     i686-linux = fetchurl {
       url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm";
-      sha256 = "1ji23x13lzbkiqfrrwx1pj6gmms0p58cjmjc0y4g16kqhlxl60v6";
+      sha256 = "09zi2rzsank6lhw1z9yar1rp634y6qskvr2i0rvqg2fij7cy6w19";
     };
     x86_64-linux = fetchurl {
       url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm";
-      sha256 = "01vvmia2qrxvrvavk9hkkyvfg4pg15m01grwb28884vy4nqw400y";
+      sha256 = "1m6saanpv1k5wc5s58jpf0wsgjsj7haabx8nycm1fjyhky1chirb";
+    };
+    x86_64-darwin = fetchurl {
+      url = "https://web.archive.org/web/20210310071550/https://desktop.userapi.com/mac/master/vk.dmg";
+      sha256 = "0j5qsr0fyl55d0x46xm4h2ykwr4y9z1dsllhqx5lnc15nc051s9b";
     };
   }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
-  nativeBuildInputs = [ rpmextract autoPatchelfHook wrapGAppsHook ];
-  buildInputs = (with xorg; [
-    libXdamage libXtst libXScrnSaver libxkbfile
-  ]) ++ [
-    gtk3 nss alsaLib
-  ];
-  runtimeDependencies = [ (lib.getLib udev) libnotify ];
-
-  unpackPhase = ''
-    rpmextract $src
-  '';
-
-  buildPhase = ''
-    substituteInPlace usr/share/applications/vk.desktop \
-      --replace /usr/share/pixmaps/vk.png vk
-  '';
-
-  installPhase = ''
-    mkdir $out
-    cd usr
-    cp -r --parents bin $out
-    cp -r --parents share/vk $out
-    cp -r --parents share/applications $out
-    cp -r --parents share/pixmaps $out
-  '';
-
   meta = with lib; {
     description = "Simple and Convenient Messaging App for VK";
     homepage = "https://vk.com/messenger";
     license = licenses.unfree;
     maintainers = [ maintainers.gnidorah ];
-    platforms = ["i686-linux" "x86_64-linux"];
+    platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
+  };
+
+  linux = stdenv.mkDerivation {
+    inherit pname version src meta;
+
+    nativeBuildInputs = [ rpmextract autoPatchelfHook wrapGAppsHook ];
+    buildInputs = (with xorg; [
+      libXdamage libXtst libXScrnSaver libxkbfile
+    ]) ++ [ gtk3 nss alsaLib ];
+
+    runtimeDependencies = [ (lib.getLib udev) libnotify ];
+
+    unpackPhase = ''
+      rpmextract $src
+    '';
+
+    buildPhase = ''
+      substituteInPlace usr/share/applications/vk.desktop \
+        --replace /usr/share/pixmaps/vk.png vk
+    '';
+
+    installPhase = ''
+      mkdir $out
+      cd usr
+      cp -r --parents bin $out
+      cp -r --parents share/vk $out
+      cp -r --parents share/applications $out
+      cp -r --parents share/pixmaps $out
+    '';
+  };
+
+  darwin = stdenv.mkDerivation {
+    inherit pname version src meta;
+
+    nativeBuildInputs = [ undmg ];
+
+    sourceRoot = ".";
+
+    installPhase = ''
+      mkdir -p $out/Applications
+      cp -r *.app $out/Applications
+    '';
   };
-}
+in if stdenv.isDarwin then darwin else linux
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
new file mode 100644
index 000000000000..7c0f80d22383
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
@@ -0,0 +1,38 @@
+{ fetchFromGitHub, lib, stdenv, gnome3, cmake, pkg-config,
+  libappindicator-gtk3, gst_all_1, pcre }:
+
+stdenv.mkDerivation rec {
+  pname = "whatsapp-for-linux";
+  version = "1.1.5";
+
+  src = fetchFromGitHub {
+    owner = "eneshecan";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1gzahls4givd2kbjdwx6yb3jv7a3r1krw40qihiz7hkamkrpaiaz";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    gnome3.gtkmm
+    gnome3.webkitgtk
+    libappindicator-gtk3
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-libav
+    pcre
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/eneshecan/whatsapp-for-linux";
+    description = "Whatsapp desktop messaging app";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ bartuka ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 966583d2089a..4dc29dd22835 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -22,13 +22,13 @@ let
   pname = "wire-desktop";
 
   version = {
-    x86_64-darwin = "3.21.3959";
-    x86_64-linux = "3.21.2936";
+    x86_64-darwin = "3.24.4059";
+    x86_64-linux = "3.24.2939";
   }.${system} or throwSystem;
 
   sha256 = {
-    x86_64-darwin = "0fgzzqf1wnkjbcr0j0vjn6sggkz0z1kx6w4gi7gk4c4markdicm1";
-    x86_64-linux = "033804nkz1fdmq3p8iplrlx708x1fjlr09bmrpy36lqg5h7m3yd6";
+    x86_64-darwin = "1zjv3d8jp0wldrzl02q9kir7q3y5bcb6hsfli6wip8bmaq78dksy";
+    x86_64-linux = "1k9n58pr5fnqv9vacay5vrbs4pvq2p36c0dpg9rjdcnb2fwaqg5p";
   }.${system} or throwSystem;
 
   meta = with lib; {
@@ -95,9 +95,17 @@ let
 
     buildInputs = atomEnv.packages;
 
-    unpackPhase = "dpkg-deb -x $src .";
+    unpackPhase = ''
+      runHook preUnpack
+
+      dpkg-deb -x $src .
+
+      runHook postUnpack
+    '';
 
     installPhase = ''
+      runHook preInstall
+
       mkdir -p "$out/bin"
       cp -R "opt" "$out"
       cp -R "usr/share" "$out/share"
@@ -106,6 +114,8 @@ let
       # Desktop file
       mkdir -p "$out/share/applications"
       cp "${desktopItem}/share/applications/"* "$out/share/applications"
+
+      runHook postInstall
     '';
 
     runtimeDependencies = [
@@ -134,17 +144,29 @@ let
     ];
 
     unpackPhase = ''
+      runHook preUnpack
+
       xar -xf $src
       cd com.wearezeta.zclient.mac.pkg
+
+      runHook postUnpack
     '';
 
     buildPhase = ''
+      runHook preBuild
+
       cat Payload | gunzip -dc | cpio -i
+
+      runHook postBuild
     '';
 
     installPhase = ''
+      runHook preInstall
+
       mkdir -p $out/Applications
       cp -r Wire.app $out/Applications
+
+      runHook postInstall
     '';
   };
 
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 c431b5d0ce66..cdac4a2829b6 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -2,7 +2,6 @@
 , lib
 , fetchurl
 , makeWrapper
-, fetchFromGitHub
 # Dynamic libraries
 , alsaLib
 , atk
@@ -24,21 +23,19 @@
 , pciutils
 , procps
 , util-linux
-, qttools
 , pulseaudioSupport ? true, libpulseaudio ? null
 }:
 
 assert pulseaudioSupport -> libpulseaudio != null;
 
 let
-  version = "5.5.7011.0206";
+  version = "5.6.13632.0328";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
-      sha256 = "00ahly3kjjznn73vcxgm5wj2pxgw6wdk6vzgd8svfmnl5kqq6c02";
+      sha256 = "0nskpg3rbv40jcbih95sfdr0kfv5hjv50z9jdz1cddl8v7hbqg71";
     };
   };
-  dontUnpack = true;
 
   libs = lib.makeLibraryPath ([
     # $ LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH:$PWD ldd zoom | grep 'not found'
@@ -68,8 +65,10 @@ let
     xorg.libXtst
   ] ++ lib.optional (pulseaudioSupport) libpulseaudio);
 
-in stdenv.mkDerivation {
-  name = "zoom-${version}";
+in stdenv.mkDerivation rec {
+  pname = "zoom";
+  inherit version;
+  src = srcs.${stdenv.hostPlatform.system};
 
   dontUnpack = true;
 
@@ -80,7 +79,7 @@ in stdenv.mkDerivation {
   installPhase = ''
     runHook preInstall
     mkdir $out
-    tar -C $out -xf ${srcs.${stdenv.hostPlatform.system}}
+    tar -C $out -xf ${src}
     mv $out/usr/* $out/
     runHook postInstall
   '';
@@ -101,9 +100,13 @@ in stdenv.mkDerivation {
     rm $out/bin/zoom
     # Zoom expects "zopen" executable (needed for web login) to be present in CWD. Or does it expect
     # everybody runs Zoom only after cd to Zoom package directory? Anyway, :facepalm:
+    # Also clear Qt environment variables to prevent
+    # zoom from tripping over "foreign" Qt ressources.
     makeWrapper $out/opt/zoom/ZoomLauncher $out/bin/zoom \
       --run "cd $out/opt/zoom" \
-      --prefix PATH : ${lib.makeBinPath [ coreutils glib.dev pciutils procps qttools.dev util-linux ]} \
+      --unset QML2_IMPORT_PATH \
+      --unset QT_PLUGIN_PATH \
+      --prefix PATH : ${lib.makeBinPath [ coreutils glib.dev pciutils procps util-linux ]} \
       --prefix LD_LIBRARY_PATH ":" ${libs}
 
     # Backwards compatiblity: we used to call it zoom-us
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
index 8f4b2200cc55..77935b30f06d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "zulip-term";
-  version = "0.5.2";
+  version = "0.6.0";
 
   # no tests on PyPI
   src = fetchFromGitHub {
     owner = "zulip";
     repo = "zulip-terminal";
     rev = version;
-    sha256 = "1xhhy3v4wck74a83avil0rnmsi2grrh03cww19n5mv80p2q1cjmf";
+    sha256 = "sha256-nlvZaGMVRRCu8PZHxPWjNSxkqhZs0T/tE1js/3pDUFk=";
   };
 
   patches = [
@@ -26,7 +26,9 @@ python3.pkgs.buildPythonApplication rec {
     urwid-readline
     beautifulsoup4
     lxml
-    mypy-extensions
+    typing-extensions
+    python-dateutil
+    tzlocal
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
index a177499154ee..6b143abda3b3 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
@@ -5,12 +5,12 @@
 
 let
   pname = "zulip";
-  version = "5.5.0";
+  version = "5.6.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
-    sha256 = "059zfcvaq8wnsz2lfd4gdb17b6nngqk3vgisy2kb29ifqf3lpzqi";
+    sha256 = "19sdmkxxzaidb89m8k56p94hq2yaxwn9islzrzwb86f50hlrq46w";
     name="${pname}-${version}.AppImage";
   };
 
@@ -34,7 +34,7 @@ in appimageTools.wrapType2 {
     description = "Desktop client for Zulip Chat";
     homepage = "https://zulip.com";
     license = licenses.asl20;
-    maintainers = with maintainers; [ jonafato ];
+    maintainers = with maintainers; [ andersk jonafato ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/insync/default.nix b/nixpkgs/pkgs/applications/networking/insync/default.nix
index b52a81932e4f..380aad6c3291 100644
--- a/nixpkgs/pkgs/applications/networking/insync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/insync/default.nix
@@ -12,9 +12,7 @@ stdenv.mkDerivation rec {
     else
       throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 
-  buildInputs = [ makeWrapper ];
-
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
 
   postPatch = ''
     patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" client/insync-portable
diff --git a/nixpkgs/pkgs/applications/networking/ipfs/default.nix b/nixpkgs/pkgs/applications/networking/ipfs/default.nix
index c54b4428819c..1b648108e787 100644
--- a/nixpkgs/pkgs/applications/networking/ipfs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ipfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ipfs";
-  version = "0.7.0";
+  version = "0.8.0";
   rev = "v${version}";
 
   # go-ipfs makes changes to it's source tarball that don't match the git source.
   src = fetchurl {
     url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
-    sha256 = "1fkzwm4qxxpmbjammk6s5qcyjxivfa0ydqz4mpz1w756c4jq0jf3";
+    sha256 = "sha256-uK3+Ekr5AM6mmGmjFSj1Rotm5pbH657BYUlP9B39WEw=";
   };
 
   # tarball contains multiple files/directories
diff --git a/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix b/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix
new file mode 100644
index 000000000000..871dcc84c1de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix
@@ -0,0 +1,23 @@
+{ ctags, fetchurl, lib, libressl, man, ncurses, pkg-config, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "catgirl";
+  version = "1.6";
+
+  src = fetchurl {
+    url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz";
+    sha256 = "0shg02zidqqmvywqqsaazlgg9rd5lhhrvjx6n0lzmdfaawxywciv";
+  };
+
+  nativeBuildInputs = [ ctags pkg-config ];
+  buildInputs = [ libressl man ncurses ];
+  strictDeps = true;
+
+  meta = with lib; {
+    homepage = "https://git.causal.agency/catgirl/about/";
+    license = licenses.gpl3Plus;
+    description = "A TLS-only terminal IRC client";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ xfnw ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
index 030737848a96..0d0144fbf915 100644
--- a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   preConfigure = ''
     export QMAKEFEATURES=${libcommuni}/features
   '';
diff --git a/nixpkgs/pkgs/applications/networking/irc/convos/default.nix b/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
index 9a42d0aa99b1..4bbc1589ed2e 100644
--- a/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
@@ -6,13 +6,13 @@ with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "convos";
-  version = "5.11";
+  version = "6.06";
 
   src = fetchFromGitHub {
-    owner = "Nordaaker";
+    owner = "convos-chat";
     repo = pname;
-    rev = version;
-    sha256 = "08k8dqdgz2b3p8g1zfg9i74r5nm1w0sqdm759d1f3jcyp737r47x";
+    rev = "v${version}";
+    sha256 = "0b3c8hj9cjmpzy9k949vdv1y3v7b94nh0mq15rcv3ax0sj3gd0qr";
   };
 
   nativeBuildInputs = [ makeWrapper ]
@@ -28,7 +28,7 @@ perlPackages.buildPerlPackage rec {
 
   propagatedBuildInputs = [ openssl ];
 
-  checkInputs = with perlPackages; [ TestDeep TestMore ];
+  checkInputs = with perlPackages; [ TestDeep ];
 
   postPatch = ''
     patchShebangs script/convos
@@ -54,6 +54,9 @@ perlPackages.buildPerlPackage rec {
     #
     rm t/web-user.t
 
+    # Another web test fails, so we also remove this.
+    rm t/web-login.t
+
     # Module::Install is a runtime dependency not covered by the tests, so we add
     # a test for it.
     #
diff --git a/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
index 91617a267827..7c9714b3555a 100644
--- a/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, ncurses, glib, openssl, perl, libintl, libgcrypt, libotr }:
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, ncurses, glib, openssl, perl, libintl, libgcrypt, libotr }:
 
 stdenv.mkDerivation rec {
   pname = "irssi";
@@ -9,6 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "0g2nxazn4lszmd6mf1s36x5ablk4999g1qx7byrnvgnjsihjh62k";
   };
 
+  # Fix irssi on GLib >2.62 input being stuck after entering a NUL byte
+  # See https://github.com/irssi/irssi/issues/1180 - remove after next update.
+  patches = fetchpatch {
+    url = "https://github.com/irssi/irssi/releases/download/1.2.2/glib-2-63.patch";
+    sha256 = "1ad1p7395n8dfmv97wrf751wwzgncqfh9fp27kq5kfdvh661da1i";
+  };
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ncurses glib openssl perl libintl libgcrypt libotr ];
 
diff --git a/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix
deleted file mode 100644
index c4a67c8098a3..000000000000
--- a/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, fetchFromGitHub, python27Packages }:
-
-python27Packages.buildPythonApplication rec {
-  version = "2016-07-29";
-  name = "qweechat-unstable-${version}";
-  namePrefix = "";
-
- src = fetchFromGitHub {
-    owner = "weechat";
-    repo = "qweechat";
-    rev = "f5e54d01691adb3abef47e051a6412186c33313c";
-    sha256 = "0dhlriwvkrsn7jj01p2wqhf2p63n9qd173jsgccgxlacm2zzvhaz";
-  };
-
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace 'qweechat = qweechat.qweechat' 'qweechat = qweechat.qweechat:main'
-  '';
-
-  propagatedBuildInputs = with python27Packages; [
-     pyside setuptools
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/weechat/qweechat";
-    description = "Qt remote GUI for WeeChat";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ ramkromberg ];
-    platforms = with platforms; linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
index 384a8b0dff39..1cce4287ddb1 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
@@ -27,12 +27,12 @@ let
   in
     assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
     stdenv.mkDerivation rec {
-      version = "3.0.1";
+      version = "3.1";
       pname = "weechat";
 
       src = fetchurl {
         url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
-        sha256 = "0f50kib8l99vlp9wqszq2r2g5panzphsgs7viga8lyc83v229b33";
+        sha256 = "06w147wzrzp6xbqiz6s5nq5xdjy7jn3f18xajxy50pynjd6vmfh5";
       };
 
       outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
index 0fa1e55349ec..1923e86abe20 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
@@ -1,10 +1,14 @@
-{ callPackage, luaPackages, python3Packages }:
+{ callPackage, luaPackages, perlPackages, python3Packages }:
 
 {
   colorize_nicks = callPackage ./colorize_nicks { };
 
   go = callPackage ./go { };
 
+  multiline = callPackage ./multiline {
+    inherit (perlPackages) PodParser;
+  };
+
   weechat-matrix-bridge = callPackage ./weechat-matrix-bridge {
     inherit (luaPackages) cjson luaffi;
   };
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix
new file mode 100644
index 000000000000..447d415c163c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchurl, substituteAll, PodParser }:
+
+stdenv.mkDerivation {
+  pname = "multiline";
+  version = "0.6.3";
+
+  src = fetchurl {
+    url = "https://raw.githubusercontent.com/weechat/scripts/945315bed4bc2beaf1e47f9b946ffe8f638f77fe/perl/multiline.pl";
+    sha256 = "1smialb21ny7brhij4sbw46xvsmrdv6ig2da0ip63ga2afngwsy4";
+  };
+
+  dontUnpack = true;
+  prePatch = ''
+    cp $src multiline.pl
+  '';
+
+  patches = [
+    # The script requires a special Perl environment.
+    (substituteAll {
+      src = ./libpath.patch;
+      env = PodParser;
+    })
+  ];
+
+  passthru.scripts = [ "multiline.pl" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D multiline.pl $out/share/multiline.pl
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Multi-line edit box";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch
new file mode 100644
index 000000000000..34299f20d8c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch
@@ -0,0 +1,9 @@
+diff --git a/multiline.pl b/multiline.pl
+index 54474d4..42fbef8 100644
+--- a/multiline.pl
++++ b/multiline.pl
+@@ -1,3 +1,4 @@
++use lib '@env@/lib/perl5/site_perl';
+ use strict; use warnings;
+ $INC{'Encode/ConfigLocal.pm'}=1;
+ require Encode;
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch
new file mode 100644
index 000000000000..45e620db258d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch
@@ -0,0 +1,35 @@
+From 5dd2593369645b11a9dc03e1930617d2f5dbd039 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Wed, 11 Nov 2020 11:48:49 +0100
+Subject: [PATCH] hardcode json file path
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
+---
+ wee_slack.py | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/wee_slack.py b/wee_slack.py
+index a3d779c..5942289 100644
+--- a/wee_slack.py
++++ b/wee_slack.py
+@@ -5136,13 +5136,7 @@ def create_slack_debug_buffer():
+ 
+ def load_emoji():
+     try:
+-        weechat_dir = w.info_get('weechat_dir', '')
+-        weechat_sharedir = w.info_get('weechat_sharedir', '')
+-        local_weemoji, global_weemoji = ('{}/weemoji.json'.format(path)
+-                for path in (weechat_dir, weechat_sharedir))
+-        path = (global_weemoji if os.path.exists(global_weemoji) and
+-                not os.path.exists(local_weemoji) else local_weemoji)
+-        with open(path, 'r') as ef:
++        with open('@out@/share/wee-slack/weemoji.json', 'r') as ef:
+             emojis = json.loads(ef.read())
+             if 'emoji' in emojis:
+                 print_error('The weemoji.json file is in an old format. Please update it.')
+-- 
+2.29.0
+
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
index 089271812a7a..679e278c8a09 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wee-slack";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     repo = "wee-slack";
     owner = "wee-slack";
     rev = "v${version}";
-    sha256 = "0s4qd1z40c1bczkvc840jwjmzbv7nyj06xqs1si9v54qmkh4gaq4";
+    sha256 = "sha256-6Z/H15bKe0PKpNe9PCgc5mLOii3CILCAVon7EgzIkx8=";
   };
 
   patches = [
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
         paths = with python3Packages; [ websocket_client six ];
       }}/${python3Packages.python.sitePackages}";
     })
-    ./hardcode-json-file-path.patch
+    ./0001-hardcode-json-file-path.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch
deleted file mode 100644
index 7413a9229ce6..000000000000
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/wee_slack.py
-+++ b/wee_slack.py
-@@ -4560,8 +4560,7 @@
- 
- def load_emoji():
-     try:
--        DIR = w.info_get('weechat_dir', '')
--        with open('{}/weemoji.json'.format(DIR), 'r') as ef:
-+        with open('@out@/share/wee-slack/weemoji.json', 'r') as ef:
-             emojis = json.loads(ef.read())
-             if 'emoji' in emojis:
-                 print_error('The weemoji.json file is in an old format. Please update it.')
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
index b55266e5f374..78f9fc082e31 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A WeeChat script that sends highlight and message notifications through notify-send";
-    homepage = "https://github.com/s3rvac/weechat-notify-srnd";
+    homepage = "https://github.com/s3rvac/weechat-notify-send";
     license = licenses.mit;
     maintainers = with maintainers; [ tobim ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/jnetmap/default.nix b/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
index bac0048cc28d..e6332832e3ec 100644
--- a/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
+++ b/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0nxsfa600jhazwbabxmr9j37mhwysp0fyrvczhv3f1smiy8rjanl";
   };
 
-  buildInputs = [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   dontUnpack = true;
 
diff --git a/nixpkgs/pkgs/applications/networking/lieer/default.nix b/nixpkgs/pkgs/applications/networking/lieer/default.nix
index 3ad2762a2cfc..420b9b28ccfc 100644
--- a/nixpkgs/pkgs/applications/networking/lieer/default.nix
+++ b/nixpkgs/pkgs/applications/networking/lieer/default.nix
@@ -14,7 +14,7 @@ python3Packages.buildPythonApplication rec {
   propagatedBuildInputs = with python3Packages; [
     notmuch
     oauth2client
-    google_api_python_client
+    google-api-python-client
     tqdm
     setuptools
   ];
diff --git a/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix b/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix
index b568775481c1..69d3bde42e80 100644
--- a/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix
@@ -6,18 +6,17 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "maestral-qt";
-  version = "1.3.1";
+  version = "1.4.3";
   disabled = python3.pkgs.pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "SamSchott";
     repo = "maestral-qt";
     rev = "v${version}";
-    sha256 = "sha256-2S2sa2/HVt3IRsE98PT2XwpONjaYENBzYW+ezBFrJYI=";
+    sha256 = "sha256-+eBwBZx+kp2ACbFjtYK6ux9lcPmEQsunvxAAZ2HgAYw=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
-    bugsnag
     click
     markdown2
     maestral
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
index b43e6bb093c4..09ce39027b5a 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -1,16 +1,17 @@
-{ lib, buildGoModule, fetchurl
-, go, ncurses, notmuch, scdoc
-, python3, perl, w3m, dante
-, fetchFromGitHub
+{ lib, buildGoModule, fetchFromSourcehut
+, ncurses, notmuch, scdoc
+, python3, w3m, dante
 }:
 
 buildGoModule rec {
   pname = "aerc";
   version = "0.5.2";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz";
-    sha256 = "h7kiRA5TuZ8mDSMymWU33stFLIOMd06TQLYzKW+faO4=";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = version;
+    sha256 = "1ja639qry8h2d6y7qshf62ypkzs2rzady59p81scqh8nx0g9bils";
   };
 
   runVend = true;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix
index 62882818d726..d169e1fdea65 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, ncurses, tcl, openssl, pam, kerberos
+{lib, stdenv, fetchurl, ncurses, tcl, openssl, pam, libkrb5
 , openldap
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    ncurses tcl openssl pam kerberos openldap
+    ncurses tcl openssl pam libkrb5 openldap
   ];
 
   hardeningDisable = [ "format" ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 7eaefdd91c42..4a13cf68a882 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -1,52 +1,137 @@
-{ lib, config, fetchurl, stdenv, wrapGAppsHook, autoreconfHook
-, curl, dbus, dbus-glib, enchant, gtk2, gnutls, gnupg, gpgme, gumbo
-, libarchive, libcanberra-gtk2, libetpan, libnotify, libsoup, libxml2, networkmanager
-, openldap, perl, pkg-config, poppler, python, shared-mime-info
-, glib-networking, gsettings-desktop-schemas, libSM, libytnef, libical
-# Build options
-# TODO: A flag to build the manual.
-# TODO: Plugins that complain about their missing dependencies, even when
-#       provided:
-#         gdata requires libgdata
-#         geolocation requires libchamplain
-, enableLdap ? false
-, enableNetworkManager ? config.networking.networkmanager.enable or false
+{ stdenv, lib, fetchgit, wrapGAppsHook, autoreconfHook, bison, flex
+, curl, gtk2, gtk3, pkg-config, python2, python3, shared-mime-info
+, glib-networking, gsettings-desktop-schemas
+
+# Use the experimental gtk3 branch.
+, useGtk3 ? false
+
+# Package compatibility: old parameters whose name were not directly derived
 , enablePgp ? true
-, enablePluginArchive ? false
-, enablePluginLitehtmlViewer ? false
 , enablePluginNotificationDialogs ? true
 , enablePluginNotificationSounds ? true
-, enablePluginPdf ? false
-, enablePluginPython ? false
-, enablePluginRavatar ? false
-, enablePluginRssyl ? false
-, enablePluginSmime ? false
-, enablePluginSpamassassin ? false
-, enablePluginSpamReport ? false
-, enablePluginVcalendar ? false
-, enableSpellcheck ? false
+, enablePluginPdf ? true
+, enablePluginRavatar ? true
+, enableSpellcheck ? true
+
+# Arguments to include external libraries
+, enableLibSM ? true, libSM
+, enableGnuTLS ? true, gnutls
+, enableEnchant ? enableSpellcheck, enchant
+, enableDbus ? true, dbus, dbus-glib
+, enableLdap ? true, openldap
+, enableNetworkManager ? true, networkmanager
+, enableLibetpan ? true, libetpan
+, enableValgrind ? true, valgrind
+, enableSvg ? true, librsvg
+
+# Configure claws-mail's plugins
+, enablePluginAcpiNotifier ? true
+, enablePluginAddressKeeper ? true
+, enablePluginArchive ? true, libarchive
+, enablePluginAttRemover ? true
+, enablePluginAttachWarner ? true
+, enablePluginBogofilter ? true
+, enablePluginBsfilter ? true
+, enablePluginClamd ? true
+, enablePluginDillo ? true
+, enablePluginFancy ? useGtk3, libsoup, webkitgtk
+, enablePluginFetchInfo ? true
+, enablePluginLibravatar ? enablePluginRavatar
+, enablePluginLitehtmlViewer ? true, gumbo
+, enablePluginMailmbox ? true
+, enablePluginManageSieve ? true
+, enablePluginNewMail ? true
+, enablePluginNotification ? (enablePluginNotificationDialogs || enablePluginNotificationSounds), libcanberra-gtk2, libcanberra-gtk3, libnotify
+, enablePluginPdfViewer ? enablePluginPdf, poppler
+, enablePluginPerl ? true, perl
+, enablePluginPython ? true
+, enablePluginPgp ? enablePgp, gnupg, gpgme
+, enablePluginRssyl ? true, libxml2
+, enablePluginSmime ? true
+, enablePluginSpamassassin ? true
+, enablePluginSpamReport ? true
+, enablePluginTnefParse ? true, libytnef
+, enablePluginVcalendar ? true, libical
 }:
 
 with lib;
 
-stdenv.mkDerivation rec {
-  pname = "claws-mail";
-  version = "3.17.8";
+let
+  version = if useGtk3 then "3.99.0" else "3.17.8";
 
-  src = fetchurl {
-    url = "https://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
-    sha256 = "sha256-zbeygUmV1vSpw7HwvBRn7Vw88qXg2hcwqqJaisyv3a8=";
+  # The official release uses gtk2 and contains the version tag.
+  gtk2src = {
+    sha256 = "0l4f8q11iyj8pi120lrapgq51k5j64xf0jlczkzbm99rym752ch5";
   };
 
-  outputs = [ "out" "dev" ];
+  # The corresponding commit in the gtk3 branch.
+  gtk3src = {
+    sha256 = "176h1swh1zx6dqyzfz470x4a1xicnv0zhy8ir47k7p23g6y17i2k";
+  };
+
+  python = if useGtk3 then python3 else python2;
+  pythonPkgs = if useGtk3
+    then
+      with python.pkgs; [ python wrapPython pygobject3 ]
+    else
+      with python.pkgs; [ python wrapPython pygtk pygobject2 ];
 
-  patches = [
-    ./mime.patch
+  features = [
+    { flags = [ "acpi_notifier-plugin" ]; enabled = enablePluginAcpiNotifier; }
+    { flags = [ "address_keeper-plugin" ]; enabled = enablePluginAddressKeeper; }
+    { flags = [ "archive-plugin" ]; enabled = enablePluginArchive; deps = [ libarchive ]; }
+    { flags = [ "att_remover-plugin" ]; enabled = enablePluginAttRemover; }
+    { flags = [ "attachwarner-plugin" ]; enabled = enablePluginAttachWarner; }
+    { flags = [ "bogofilter-plugin" ]; enabled = enablePluginBogofilter; }
+    { flags = [ "bsfilter-plugin" ]; enabled = enablePluginBsfilter; }
+    { flags = [ "clamd-plugin" ]; enabled = enablePluginClamd; }
+    { flags = [ "dbus" ]; enabled = enableDbus; deps = [ dbus dbus-glib ]; }
+    { flags = [ "dillo-plugin" ]; enabled = enablePluginDillo; }
+    { flags = [ "enchant" ]; enabled = enableEnchant; deps = [ enchant ]; }
+    { flags = [ "fancy-plugin" ]; enabled = enablePluginFancy; deps = [ libsoup webkitgtk ]; }
+    { flags = [ "fetchinfo-plugin" ]; enabled = enablePluginFetchInfo; }
+    { flags = [ "gnutls" ]; enabled = enableGnuTLS; deps = [ gnutls ]; }
+    { flags = [ "ldap" ]; enabled = enableLdap; deps = [ openldap ]; }
+    { flags = [ "libetpan" ]; enabled = enableLibetpan; deps = [ libetpan ]; }
+    { flags = [ "libravatar-plugin" ]; enabled = enablePluginLibravatar; }
+    { flags = [ "libsm" ]; enabled = enableLibSM; deps = [ libSM ]; }
+    { flags = [ "litehtml_viewer-plugin" ]; enabled = enablePluginLitehtmlViewer; deps = [ gumbo ]; }
+    { flags = [ "mailmbox-plugin" ]; enabled = enablePluginMailmbox; }
+    { flags = [ "managesieve-plugin" ]; enabled = enablePluginManageSieve; }
+    { flags = [ "networkmanager" ]; enabled = enableNetworkManager; deps = [ networkmanager ]; }
+    { flags = [ "newmail-plugin" ]; enabled = enablePluginNewMail; }
+    { flags = [ "notification-plugin" ]; enabled = enablePluginNotification; deps = [ libnotify ] ++ [(if useGtk3 then libcanberra-gtk3 else libcanberra-gtk2)]; }
+    { flags = [ "pdf_viewer-plugin" ]; enabled = enablePluginPdfViewer; deps = [ poppler ]; }
+    { flags = [ "perl-plugin" ]; enabled = enablePluginPerl; deps = [ perl ]; }
+    { flags = [ "pgpcore-plugin" "pgpinline-plugin" "pgpmime-plugin" ]; enabled = enablePluginPgp; deps = [ gnupg gpgme ]; }
+    { flags = [ "python-plugin" ]; enabled = enablePluginPython; }
+    { flags = [ "rssyl-plugin" ]; enabled = enablePluginRssyl; deps = [ libxml2 ]; }
+    { flags = [ "smime-plugin" ]; enabled = enablePluginSmime; }
+    { flags = [ "spam_report-plugin" ]; enabled = enablePluginSpamReport; }
+    { flags = [ "spamassassin-plugin" ]; enabled = enablePluginSpamassassin; }
+    { flags = [ "svg" ]; enabled = enableSvg; deps = [ librsvg ]; }
+    { flags = [ "tnef_parse-plugin" ]; enabled = enablePluginTnefParse; deps = [ libytnef ]; }
+    { flags = [ "valgrind" ]; enabled = enableValgrind; deps = [ valgrind ]; }
+    { flags = [ "vcalendar-plugin" ]; enabled = enablePluginVcalendar; deps = [ libical ]; }
   ];
+in stdenv.mkDerivation rec {
+  pname = "claws-mail";
+  inherit version;
+
+  src = fetchgit ({
+    rev = version;
+    url = "git://git.claws-mail.org/claws.git";
+  } // (if useGtk3 then gtk3src else gtk2src));
+
+  outputs = [ "out" "dev" ];
+
+  patches = [ ./mime.patch ];
 
   preConfigure = ''
     # autotools check tries to dlopen libpython as a requirement for the python plugin
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python}/lib
+    # generate version without .git
+    [ -e version ] || echo "echo ${version}" > version
   '';
 
   postPatch = ''
@@ -54,51 +139,29 @@ stdenv.mkDerivation rec {
         --subst-var-by MIMEROOTDIR ${shared-mime-info}/share
   '';
 
-  nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook python.pkgs.wrapPython ];
-  propagatedBuildInputs = with python.pkgs; [ python ] ++ optionals enablePluginPython [ pygtk pygobject2 ];
+  nativeBuildInputs = [ autoreconfHook pkg-config bison flex wrapGAppsHook ];
+  propagatedBuildInputs = pythonPkgs;
 
   buildInputs =
-    [ curl dbus dbus-glib gtk2 gnutls gsettings-desktop-schemas
-      libetpan perl glib-networking libSM libytnef
-    ]
-    ++ optional enableSpellcheck enchant
-    ++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ]
-    ++ optional enablePluginArchive libarchive
-    ++ optional enablePluginNotificationSounds libcanberra-gtk2
-    ++ optional enablePluginNotificationDialogs libnotify
-    ++ optional enablePluginLitehtmlViewer gumbo
-    ++ optional enablePluginRssyl libxml2
-    ++ optional enableNetworkManager networkmanager
-    ++ optional enableLdap openldap
-    ++ optional enablePluginPdf poppler
-    ++ optional enablePluginVcalendar libical;
+    [ curl gsettings-desktop-schemas glib-networking ]
+    ++ [(if useGtk3 then gtk3 else gtk2)]
+    ++ concatMap (f: optionals f.enabled f.deps) (filter (f: f ? deps) features)
+  ;
 
   configureFlags =
-    optional (!enableLdap) "--disable-ldap"
-    ++ optional (!enableNetworkManager) "--disable-networkmanager"
-    ++ optionals (!enablePgp) [
-      "--disable-pgpcore-plugin"
-      "--disable-pgpinline-plugin"
-      "--disable-pgpmime-plugin"
-    ]
-    ++ optional (!enablePluginArchive) "--disable-archive-plugin"
-    ++ optional (!enablePluginLitehtmlViewer) "--disable-litehtml_viewer-plugin"
-    ++ optional (!enablePluginPdf) "--disable-pdf_viewer-plugin"
-    ++ optional (!enablePluginPython) "--disable-python-plugin"
-    ++ optional (!enablePluginRavatar) "--disable-libravatar-plugin"
-    ++ optional (!enablePluginRssyl) "--disable-rssyl-plugin"
-    ++ optional (!enablePluginSmime) "--disable-smime-plugin"
-    ++ optional (!enablePluginSpamassassin) "--disable-spamassassin-plugin"
-    ++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin"
-    ++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
-    ++ optional (!enableSpellcheck) "--disable-enchant";
+    [
+      "--disable-manual"   # Missing docbook-tools, e.g., docbook2html
+      "--disable-compface" # Missing compface library
+      "--disable-jpilot"   # Missing jpilot library
 
-  enableParallelBuilding = true;
+      "--disable-gdata-plugin" # Complains about missing libgdata, even when provided
+    ] ++
+    (map (feature: map (flag: strings.enableFeature feature.enabled flag) feature.flags) features);
 
-  pythonPath = with python.pkgs; [ pygobject2 pygtk ];
+  enableParallelBuilding = true;
 
   preFixup = ''
-    buildPythonPath "$out $pythonPath"
+    buildPythonPath "$out $pythonPkgs"
     gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share" --prefix PYTHONPATH : "$program_PYTHONPATH")
   '';
 
@@ -110,8 +173,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "The user-friendly, lightweight, and fast email client";
     homepage = "https://www.claws-mail.org/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ fpletz globin orivej ];
+    maintainers = with maintainers; [ fpletz globin orivej oxzi ajs124 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix
deleted file mode 100644
index d5223092446d..000000000000
--- a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix
+++ /dev/null
@@ -1,121 +0,0 @@
-{ lib, config, fetchgit, stdenv, wrapGAppsHook, autoreconfHook, bison, flex
-, curl, dbus, dbus-glib, enchant, gtk3, gnutls, gnupg, gpgme
-, libarchive, libcanberra-gtk3, libetpan, libnotify, libsoup, libxml2, networkmanager
-, openldap, perl, pkg-config, poppler, python, shared-mime-info, webkitgtk
-, glib-networking, gsettings-desktop-schemas, libSM, libytnef, libical
-# Build options
-# TODO: A flag to build the manual.
-# TODO: Plugins that complain about their missing dependencies, even when
-#       provided:
-#         gdata requires libgdata
-#         geolocation requires libchamplain
-, enableLdap ? false
-, enableNetworkManager ? config.networking.networkmanager.enable or false
-, enablePgp ? true
-, enablePluginArchive ? false
-, enablePluginFancy ? true
-, enablePluginNotificationDialogs ? true
-, enablePluginNotificationSounds ? true
-, enablePluginPdf ? false
-, enablePluginPython ? false
-, enablePluginRavatar ? false
-, enablePluginRssyl ? false
-, enablePluginSmime ? false
-, enablePluginSpamassassin ? false
-, enablePluginSpamReport ? false
-, enablePluginVcalendar ? false
-, enableSpellcheck ? false
-}:
-
-with lib;
-
-stdenv.mkDerivation rec {
-  pname = "claws-mail-gtk3";
-  version = "3.99.0";
-
-  src = fetchgit {
-    url = "git://git.claws-mail.org/claws.git";
-    rev = version;
-    sha256 = "176h1swh1zx6dqyzfz470x4a1xicnv0zhy8ir47k7p23g6y17i2k";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  patches = [ ./mime.patch ];
-
-  preConfigure = ''
-    # autotools check tries to dlopen libpython as a requirement for the python plugin
-    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python}/lib
-    # generate version without .git
-    [ -e version ] || echo "echo ${version}" > version
-  '';
-
-  postPatch = ''
-    substituteInPlace src/procmime.c \
-        --subst-var-by MIMEROOTDIR ${shared-mime-info}/share
-  '';
-
-  nativeBuildInputs = [ autoreconfHook bison flex pkg-config wrapGAppsHook python.pkgs.wrapPython ];
-  propagatedBuildInputs = with python.pkgs; [ python ] ++ optionals enablePluginPython [ pygtk pygobject2 ];
-
-  buildInputs =
-    [ curl dbus dbus-glib gtk3 gnutls gsettings-desktop-schemas
-      libetpan perl glib-networking libSM libytnef
-    ]
-    ++ optional enableSpellcheck enchant
-    ++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ]
-    ++ optional enablePluginArchive libarchive
-    ++ optional enablePluginNotificationSounds libcanberra-gtk3
-    ++ optional enablePluginNotificationDialogs libnotify
-    ++ optional enablePluginFancy libsoup
-    ++ optional enablePluginRssyl libxml2
-    ++ optional enableNetworkManager networkmanager
-    ++ optional enableLdap openldap
-    ++ optional enablePluginPdf poppler
-    ++ optional enablePluginFancy webkitgtk
-    ++ optional enablePluginVcalendar libical;
-
-  configureFlags =
-    optional (!enableLdap) "--disable-ldap"
-    ++ optional (!enableNetworkManager) "--disable-networkmanager"
-    ++ optionals (!enablePgp) [
-      "--disable-pgpcore-plugin"
-      "--disable-pgpinline-plugin"
-      "--disable-pgpmime-plugin"
-    ]
-    ++ optional (!enablePluginArchive) "--disable-archive-plugin"
-    ++ optional (!enablePluginFancy) "--disable-fancy-plugin"
-    ++ optional (!enablePluginPdf) "--disable-pdf_viewer-plugin"
-    ++ optional (!enablePluginPython) "--disable-python-plugin"
-    ++ optional (!enablePluginRavatar) "--disable-libravatar-plugin"
-    ++ optional (!enablePluginRssyl) "--disable-rssyl-plugin"
-    ++ optional (!enablePluginSmime) "--disable-smime-plugin"
-    ++ optional (!enablePluginSpamassassin) "--disable-spamassassin-plugin"
-    ++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin"
-    ++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
-    ++ optional (!enableSpellcheck) "--disable-enchant";
-
-  enableParallelBuilding = true;
-
-  pythonPath = with python.pkgs; [ pygobject2 pygtk ];
-
-  preFixup = ''
-    buildPythonPath "$out $pythonPath"
-    gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share" --prefix PYTHONPATH : "$program_PYTHONPATH")
-  '';
-
-  postInstall = ''
-    mkdir -p $out/share/applications
-    cp claws-mail.desktop $out/share/applications
-  '';
-
-  NIX_CFLAGS_COMPILE = [ "-Wno-deprecated-declarations" ];
-
-  meta = {
-    description = "The user-friendly, lightweight, and fast email client";
-    homepage = "https://www.claws-mail.org/";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ fpletz globin orivej ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index b8aaabca0fb0..e17507366ffa 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -10,6 +10,7 @@
 , gtk3
 , glib
 , libnotify
+, libpst
 , gspell
 , evolution-data-server
 , libgdata
@@ -41,11 +42,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.38.3";
+  version = "3.38.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1kfshljvkpbh965rjlyy1qjjm0ic3rdxisyy9c5jjvv2qlk65b3z";
+    sha256 = "NB+S0k4rRMJ4mwA38aiU/xZUh9qksAuA+uMTii4Fr9Q=";
   };
 
   nativeBuildInputs = [
@@ -80,6 +81,7 @@ stdenv.mkDerivation rec {
     libgweather
     libical
     libnotify
+    libpst
     librsvg
     libsecret
     nspr
@@ -99,7 +101,6 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DENABLE_AUTOAR=OFF"
     "-DENABLE_LIBCRYPTUI=OFF"
-    "-DENABLE_PST_IMPORT=OFF"
     "-DENABLE_YTNEF=OFF"
     "-DWITH_SPAMASSASSIN=${spamassassin}/bin/spamassassin"
     "-DWITH_SA_LEARN=${spamassassin}/bin/sa-learn"
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix
index 050082c6f933..ea3f09b8f4c3 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix
@@ -4,7 +4,7 @@ symlinkJoin {
   name = "evolution-with-plugins";
   paths = [ gnome3.evolution-data-server ] ++ plugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     for i in $out/bin/* $out/libexec/**; do
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix
index 1fa9c66c8ff6..9a2bd563fc8d 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix
@@ -1,5 +1,4 @@
 { lib
-, callPackage
 , fetchFromGitHub
 , gettext
 , xorg # for lndir
@@ -24,13 +23,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "mailnag";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "pulb";
     repo = "mailnag";
     rev = "v${version}";
-    sha256 = "08jqs3v01a9gkjca9xgjidhdgvnlm4541z9bwh9m3k5p2g76sz96";
+    sha256 = "0m1cyzwzm7z4p2v31dx098a1iar7dbilwyjcxiqnjx05nlmiqvgf";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix
index 1d1dc030c314..cab43750a56e 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix
@@ -44,7 +44,7 @@ python2Packages.buildPythonApplication rec {
     homepage = "https://www.mailpile.is/";
     license = [ licenses.asl20 licenses.agpl3 ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.domenkozar ];
+    maintainers = [ ];
     knownVulnerabilities = [
       "Numerous and uncounted, upstream has requested we not package it. See more: https://github.com/NixOS/nixpkgs/pull/23058#issuecomment-283515104"
     ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix
index 2ac32f34304f..278561e0e5f4 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "mblaze";
-  version = "1.0";
+  version = "1.1";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = [ ruby ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
@@ -11,11 +11,13 @@ stdenv.mkDerivation rec {
     owner = "leahneukirchen";
     repo = "mblaze";
     rev = "v${version}";
-    sha256 = "0hxy3mjjv4hg856sl1r15fdmqaw4s9c26b3lidsd5x0kpqy601ai";
+    sha256 = "sha256-Ho2Qoxs93ig4yYUOaoqdYnLA8Y4+7CfRM0dju89JOa4=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
 
+  enableParallelBuilding = true;
+
   postInstall = ''
     installShellCompletion contrib/_mblaze
   '' + lib.optionalString (ruby != null) ''
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
index 874fa0d42e5d..27c06c95d993 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -4,7 +4,7 @@
 , cyrus_sasl ? null
 , gnupg ? null
 , gpgme ? null
-, kerberos ? null
+, libkrb5 ? null
 , headerCache  ? true
 , sslSupport   ? true
 , saslSupport  ? true
@@ -27,11 +27,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "2.0.5";
+  version = "2.0.6";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "0k80s27sf7djb7zxj81ihksr8jkr71mfaa8976fzh41i1pn5l7g2";
+    sha256 = "165mpivdhvhavglykwlz0hss2akxd6i6l40rgxs29mjzi52irqw1";
   };
 
   patches = optional smimeSupport (fetchpatch {
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
     [ ncurses which perl ]
     ++ optional headerCache  gdbm
     ++ optional sslSupport   openssl
-    ++ optional gssSupport   kerberos
+    ++ optional gssSupport   libkrb5
     ++ optional saslSupport  cyrus_sasl
     ++ optional gpgmeSupport gpgme;
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
index c0ebb3d8078f..b2187371f299 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,8 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
-, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
-, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, runtimeShell, sqlite, zlib
-, glibcLocales
-, fetchpatch
+{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which
+, ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl
+, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
 }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    cyrus_sasl gss gpgme kerberos libidn ncurses
+    cyrus_sasl gss gpgme libkrb5 libidn ncurses
     notmuch openssl perl lmdb
     mailcap sqlite
   ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
index ddffe0747062..6919e31342e4 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -12,7 +12,7 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "0.31.3";
+  version = "0.31.4";
   pname = "notmuch";
 
   passthru = {
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   src = fetchgit {
     url = "https://git.notmuchmail.org/git/notmuch";
-    sha256 = "1wm1myzacz1dcg7vdfd3akia3xan7ssfspf1fflrwm18hdalss5v";
+    sha256 = "sha256-M+LEf257OcDlHOCYYxzEVQpop+i2gzO/QJPdajz/CRM=";
     rev = version;
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
index 5e2c74fb3f1a..dda6abac8e56 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
@@ -16,7 +16,7 @@
 , glibc
 , gtk2
 , gtk3
-, kerberos
+, libkrb5
 , libX11
 , libXScrnSaver
 , libXcomposite
@@ -94,7 +94,7 @@ stdenv.mkDerivation {
       glibc
       gtk2
       gtk3
-      kerberos
+      libkrb5
       libX11
       libXScrnSaver
       libXcomposite
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index b1905359cd3c..d16cbfc1bca0 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -20,7 +20,7 @@
 , gpgme
 , gtk2
 , gtk3
-, kerberos
+, libkrb5
 , libcanberra
 , libGL
 , libGLU
@@ -63,12 +63,11 @@ let
   defaultSource = lib.findFirst (sourceMatches "en-US") {} sources;
 
   source = lib.findFirst (sourceMatches systemLocale) defaultSource sources;
-
-  name = "thunderbird-bin-${version}";
 in
 
 stdenv.mkDerivation {
-  inherit name;
+  pname = "thunderbird-bin";
+  inherit version;
 
   src = fetchurl {
     url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
@@ -94,7 +93,7 @@ stdenv.mkDerivation {
       glibc
       gtk2
       gtk3
-      kerberos
+      libkrb5
       libX11
       libXScrnSaver
       libXcomposite
@@ -169,7 +168,8 @@ stdenv.mkDerivation {
     '';
 
   passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
-    inherit name writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell;
+    inherit writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell;
+    name = "thunderbird-bin-${version}";
     baseName = "thunderbird";
     channel = "release";
     basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index e86e847e8f37..e7b5496e9101 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,665 +1,665 @@
 {
-  version = "78.7.1";
+  version = "78.9.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/af/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/af/thunderbird-78.9.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "b9d7bacd982db97e531775ceca569e011603dbd2806a64bce43ef2ff30e6c8f4";
+      sha256 = "58bc04e46def73b3530323e56d143db324a5a80f426b37ff396e2e43cf8b0042";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ar/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/ar/thunderbird-78.9.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "144647297e15556de5273e4f41712fc348b3dd401d71356d556c1ed09221037d";
+      sha256 = "9520899691eb7e4e7dad95ce643da5cb966c1058b3cc952b55bd66d7a09473ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ast/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/ast/thunderbird-78.9.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "9adb0d16ab633e4ffa3628969ccb542488fc299da5250c058828144f6f773781";
+      sha256 = "769e7cd3699577a1f69e62492c8058eca635ffaf6acab6ca3a4112301aab751f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/be/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/be/thunderbird-78.9.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "3e54fa9ca34bcc11d411a979ed6bcd0a68b67da08cdba49e1f8a59794bc2dff0";
+      sha256 = "c1b35990af2731b52da57b4b6b0e4a7733ea2e8d499e95b3b086dde3bdccb657";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/bg/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/bg/thunderbird-78.9.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "d576d3193c8e263d44942043b7e13c8861b2234ebb66969ac2cd20f84d6d769f";
+      sha256 = "708709a3acb4689de7870d21c258ccbc03a1fdb92a43164841571e6643bf2988";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/br/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/br/thunderbird-78.9.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "cd85058134a3b1364049d11a32bd964f8f9488fb48ece65d32fbb9005831b1d4";
+      sha256 = "e84f1dea6f550a1827399d0e7f658f376c816d3f7abe962ec58115d36c28c1c5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ca/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/ca/thunderbird-78.9.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "5bf9ac27b8401f7c1479cacddc48e6310e6ac52e038f824193788dd6883512a6";
+      sha256 = "8191514f74876406cf6f332a0063032206d1b6f29414941dee3082ce1bc6e711";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/cak/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/cak/thunderbird-78.9.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "dfa2f97ee07f80adc5ded391bf01aea36e2aaf5a12ca9a510c5842756d9b9f8e";
+      sha256 = "9626ab3117cb4567ba65b24c5800f39fe7dc9c372c60f88ba0906eb72d63ffb0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/cs/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/cs/thunderbird-78.9.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "c76d755c9b54921a4edc9521aea2c51aa6301d954154fa6228195193000be56f";
+      sha256 = "294f60b4efa04fcc9bdea8c4107ac572613d63c742ae9492eb63f5eadcef1448";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/cy/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/cy/thunderbird-78.9.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "09475639dec1e370360c1c257b88ab45fbf2251bd22d1d50e9df078b035b8560";
+      sha256 = "865d631746754969d7dd59b096306aaacdb189b967e295676a3a7253a5af8ed3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/da/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/da/thunderbird-78.9.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "74cc98d1d99e9fd101e86051cf9aee26b40cfcb6203892adf6fd45fad5934926";
+      sha256 = "cb8b05cf1938326a4246f670bc324d83179f3ce1f3d4f3d8de57599da031ec9b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/de/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/de/thunderbird-78.9.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "509648ba2c7d9ef4db1755ae5e017d3dc1c73c5a3a94a293bbc9a505b5349e2a";
+      sha256 = "9dfc5b4490c8ba926ce30605e3575cf3b471fae1f1808fb5054667c2751956c2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/dsb/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/dsb/thunderbird-78.9.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "03dff2bbcb39d967c96934675134acd3ec74b39df3b6cc76846229ff92653483";
+      sha256 = "1752031e919fc1604c1d70ff5a9036d8752a0de78c0d0539860c45390b09e13f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/el/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/el/thunderbird-78.9.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "d6ec9ccdd2945d6de1718f32b551e922da1808d59acec937a16addaa0004e94a";
+      sha256 = "bc2c7b093dd00c352874c7ae6e3d88e455fe9b357caa0e358d51dde120398f41";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/en-CA/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/en-CA/thunderbird-78.9.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "bc97cadcf95bd0273708e1ea5cc8cdddd29f11b280213c1bd4f35a50d446763e";
+      sha256 = "5605286eb97815d5acfadc0a93888a1e8d08e9b8bb5e7b28328c9650f6a9d065";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/en-GB/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/en-GB/thunderbird-78.9.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "82fd7e16cc8d5df4e775187d7f3e32b9b1dab3647cd766cec1649c39d08d5165";
+      sha256 = "bc0a4c15cb3d4f1891e91a7bc5cde53065cca95fe5c72c18bd39e0bc618b5d01";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/en-US/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/en-US/thunderbird-78.9.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "463c1164b80f0f8bcb72f04fb0c17e32a637df988c0ea14d90469b1d7a958f82";
+      sha256 = "65e1539602d206cfb78cb7bdf864d251670242d775f62aad25a1a52dcf1e9e55";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/es-AR/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/es-AR/thunderbird-78.9.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "1ce69e73e8326e316d056a98efe601e7300714f1b65f69e2fcd175123fdca96b";
+      sha256 = "e246d1f0fda4091888dcac7c5e8d5367688d86e6f65237e942baee0c2c82136b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/es-ES/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/es-ES/thunderbird-78.9.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "a04161f56944527f8537d46e046fbed715a554e4dc581aa636f1cec3fb1e1351";
+      sha256 = "a24902cdd4eb9f70b435f52c9244769bc674fc16194a908976c28c8de3d94674";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/et/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/et/thunderbird-78.9.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "36c2e7ae029b65976b92cff62c3c3a97e8c44a73c2f5e48415260b23a23ff653";
+      sha256 = "891fb76d3f9044ea44230d72c6b8bd4db63c63c71dc83506e91b31329e1b0c11";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/eu/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/eu/thunderbird-78.9.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "538a42bb6eb11360fa70bd06058dbd47f2a3eec53fbbfe0232ddfbbeb4a4187c";
+      sha256 = "cfe8c0e314dffd57e653204aa5aebe790147f3a1060cc1f95da0045d1c188cd6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/fa/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/fa/thunderbird-78.9.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "6e2b18166237fdf0d020570957ee7d0815d846a0aca8df2036cdf99e651cfce9";
+      sha256 = "66aba0dbc241d954b18da9c94c6c8d7b33dbc8721560a23def882cde249d17ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/fi/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/fi/thunderbird-78.9.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "1769213bf789a21572014d4d97c823db14e11f7a32b91d57d98bebe39a80786d";
+      sha256 = "e05b5be90b40dd61a3686d3fb011745431f915a0d74e08a157668cfa1633d5f2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/fr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/fr/thunderbird-78.9.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "60017c2151aed3782567d9c10817e89c738d6bce322fd33f1188bc25dc12ac3f";
+      sha256 = "f4c80650f755a65c1371aa9bc35da6e1fc54f6c44dd6e6bed1f3ce8ce883656c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/fy-NL/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/fy-NL/thunderbird-78.9.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "3878ce39135e30a76c67182765f5fa7fc38b7019021aa86f0806028f67a7dfd5";
+      sha256 = "4ada1d224c11081bc7cf7fec51e6cbef695650cdb9b860320da9a070d01bcaed";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ga-IE/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/ga-IE/thunderbird-78.9.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "b2e66dd3fe5a78d2eb6691bc91521b3f22fbb5be88c556e2d5158057db0d6cfd";
+      sha256 = "e2b6437b4b10a636d585dd591c933df370a5b70bc0a447564ab8dbb4df5c22b9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/gd/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/gd/thunderbird-78.9.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "c4722ceb4eca2afaa3502f2bc419b0ffc6cd2600100c5a91bf2cb7cdda60cd66";
+      sha256 = "034b5dd31ac4df1ea8f19b52739fa632a53d063a6ca07e4d36194c55452aaef5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/gl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/gl/thunderbird-78.9.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "0f34fd28523062c90c521b40b0a67ad23e3b2ba05fe5c03cc1da29d480fde1e3";
+      sha256 = "1afb41188de30c672d3a15e7b8e8b0690ac8358069824edf7215f99f73333d32";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/he/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/he/thunderbird-78.9.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "8cf8a0b5e1bd3ed116ac1dcbcb1857db9ccff8452ff0d1f3ac2957cada5883c8";
+      sha256 = "492f33bbc7f6d6e53aaaa3587d22156afb32d0753609818eeefe7ea53bea788b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/hr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/hr/thunderbird-78.9.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "827d0c46d404d871661af45d301645a1c888941741c1b6cad27c7c37aed52800";
+      sha256 = "a61743f3661eb8ce93cc58dc80ce5950534dd7c89e067a3460daa4502761e3b2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/hsb/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/hsb/thunderbird-78.9.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "83e965004f0293c324393914cc931ccfa608360982d338859da1e7e2ae0f333f";
+      sha256 = "cb1d4f8da3071ecd4ce4f9ae43d1e4d7dcd8edbc6dbf4917bcd1730cc5a0477d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/hu/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/hu/thunderbird-78.9.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "120ca3f7b356c57d7fa2af63ebcb974ad0ba313fe9c615afa5553b2e7ab75e62";
+      sha256 = "a4ae0452d90d3c5c7778732811d97243b9b4767208239c8a24d4b4d368630d22";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/hy-AM/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/hy-AM/thunderbird-78.9.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "7d0c2c5854f0a5a2288cacb6bf0d2f8ecd838dffcc8ccd040f993af94cb92d13";
+      sha256 = "cab2129d4c4e99592ce6f22d676a03ff1cc5d5bf579a2426d0079e0f86215ade";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/id/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/id/thunderbird-78.9.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "29462ae0dd0eaa8ac9370b8fc46ad8ad679ef44996a7f80468890b8a75ce4a29";
+      sha256 = "a1df4c7e0c359cab8b10692bfee5161d3bd44696ee06774985642604304f9b93";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/is/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/is/thunderbird-78.9.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "084aee31331bb0bbdf466d3c3a6bb1834dfbdddaefe0e8c6e1d4a91eec0725ca";
+      sha256 = "bf6ec8c88f65d565f7dcecb1f3177a5a1e476da62d8aec82d3419e3ed1794798";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/it/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/it/thunderbird-78.9.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "f180ceb0cd9f2e1d3e975f30fffa968e938b18ebb3c45108b6758d36989918e6";
+      sha256 = "e028a6fa97dd9d37945137602d45230108fa30d63edea8df8531089724646e19";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ja/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/ja/thunderbird-78.9.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "662f124e3a32ab9e6b6fbefed9b58779060d927558bbc9527d83936191e3e044";
+      sha256 = "6435637e0582123c1b941b1c6209aa1bfdec471d3ce76a861c82e876b7637fee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ka/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/ka/thunderbird-78.9.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "2faece980493b0071e5d62a579f4e1c4d792a63293949d81fa96e70468044acc";
+      sha256 = "8d00d918c42450ac7a451a0a5a7407ecb334b51bd20c3f33871a29c82f338175";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/kab/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/kab/thunderbird-78.9.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "7382fc4e006bcb05c0db2dc88f8aad32a3abbce2bcb32f28d6271658caf934b8";
+      sha256 = "59af5f436ccf0d0914f800ff6cb31fb341d3d905d3d450ed43a09d8810e50bae";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/kk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/kk/thunderbird-78.9.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "c8c52e06cd3ac3a02dc0081a82b25223a1da5a918335f770660122c8a6ba750c";
+      sha256 = "70588dd395158e87bdf651a9ed2b1d92cc5792ed6c85160c2b1c2109d52a3ca2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ko/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/ko/thunderbird-78.9.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "67928b2f6861b1071ff76c457f6aef4a9eb0d80f896331bdb847543c62b0dd11";
+      sha256 = "7a3473a4bd51f6931326c30c387546d4b900fd70a837e8d45380afd4597c10e2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/lt/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/lt/thunderbird-78.9.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "aec1acfb847cea57772197d81d122e97915b03358c984293d40f6ce759b9e77a";
+      sha256 = "1e36db5d910184872af4e7623c59c79f8e522955c5dd5cba4a689a5bc2d857b0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ms/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/ms/thunderbird-78.9.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "9a4411e932789040abc939a64b9ad979104ffe868a969dabc27022dc9ff822fd";
+      sha256 = "058f825e44c24e837081bb05241c1ff47b390132dbd3cdb5b5d4ef51056bb2ab";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/nb-NO/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/nb-NO/thunderbird-78.9.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "c7cfcd78108d931c60e9a061ed459da9df0cee27b16085fd1c6f3d71d54cd2fd";
+      sha256 = "7f6335ff85c29aa634b7909e4b7a2da007f333648a98ad9f3bd8833d00f2f0da";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/nl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/nl/thunderbird-78.9.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "44e9a143f00636a9287b2f0774720fd372de25fff9de8ceb468bc81de1d7ade3";
+      sha256 = "0056c1250401f89ab8d9423f23d3148bcf34801b34247d4bc44b89e8edd0552f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/nn-NO/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/nn-NO/thunderbird-78.9.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "75269ac3171d14ca6145c3d00ba004489f89fc9210cf3af0d4e0248e24dac273";
+      sha256 = "f63e4305ba814a46edc4316af6ad02acd479306f2f1c02c1b04065ea20baf59f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/pa-IN/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/pa-IN/thunderbird-78.9.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "ef98d53446ad294eaa861919cc8e9e70f4f6458d3a4210a43ec37bd919db8aa7";
+      sha256 = "654902d560df0648cd2e9b7b1271d3606071865dd1cc4490741a5777be2c72c3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/pl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/pl/thunderbird-78.9.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "682c6b2a5e808e65e1e233fb48bbd68058a7f2745648d01d6342c90316b8135c";
+      sha256 = "62c4352b987bef61f69bb0300c9cc37b95ca5e6fde57a06646b14bef6e58dd78";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/pt-BR/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/pt-BR/thunderbird-78.9.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "761988b180f3077cd9710324fd87ec577de5f5ee11c79404b416c64ba322c65a";
+      sha256 = "139606374df552562100c01e8a330fc1f4f9e6dcbc6a39396137d2f069ad0fcd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/pt-PT/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/pt-PT/thunderbird-78.9.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "9182a7064d0f98a49b34b9bf78ae4d63fe6b588c51ceb48ffe0974455e767867";
+      sha256 = "eb6526b6ee0f768949489ca587c321ed8aabd258296c58e596b7a5413b458ed7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/rm/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/rm/thunderbird-78.9.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "33a8bec5ee7240fb44e350139f60e1d7c92361020bba2857634af03e40ee0f87";
+      sha256 = "36a22f1c8eb1a5c7fb0e9323a3c3eb03f8a63b2b6c62430780bf4508a7236c41";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ro/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/ro/thunderbird-78.9.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "a50168d1b5e62d7bec9d75714612614b9d2342fdc6b8f89959d50d1505cbf7d0";
+      sha256 = "92ae47ebf2ab176d46e04172206241aeae8a6eebf72b5f32d021782aa1675be8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ru/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/ru/thunderbird-78.9.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "555e630090fbc41711e88d0a8e822febf0619333c2bcace5bdfbfdfdddfbb0dd";
+      sha256 = "97680d44fae135e90368adb75ac27b4f23f1186d1435ba265a80027334f320ec";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/si/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/si/thunderbird-78.9.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "f977bd3fb4caaefb03eb8c967ae4850c0b7b2b8dfa0f7d7cedfba0847788cdb3";
+      sha256 = "6ddf49c8696deb3ab9ac55453b93116c923ad0025c9c8463b56bdc81e6d00bb9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/sk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/sk/thunderbird-78.9.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "f1e5c9787a2ae8f8aaceef1ca2963884031a6cb8dc0ab3c3230fa0021156cfc4";
+      sha256 = "5e2be4cab9101a67c61eee16c8c84513b196dd19f6d0dfee3559796a8a031138";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/sl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/sl/thunderbird-78.9.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "59a97046285bca3e5b8ba396d3afef69fe2cb5a41347e4e0a21e9ff66c03ae12";
+      sha256 = "ab9293a2a5caf948bf2e4b4680b9cf7440e7a272f9f028568e260c40d5a031ce";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/sq/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/sq/thunderbird-78.9.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "ed0cf7d341d42dedeaa224f7f1f8e005172134da591f65664a4aca717e6db44a";
+      sha256 = "113171842441b9553e6da58c7ce3e3382fb9aa780892b8ee4436ff9b2bf3dc59";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/sr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/sr/thunderbird-78.9.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "fd61b2e8e048f162e59a1a428100e6d0556d7120de1f8b46decdfe60509de0d7";
+      sha256 = "1b46f1597ab5aec2bca98adf9664cafd72ff51db23722108cbd4c0c89a1a8e70";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/sv-SE/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/sv-SE/thunderbird-78.9.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "87afa3b4b12848de156ea61d1727dea1ef5b86bc83b583df55f089bd1d1bec1e";
+      sha256 = "41284557a6ae1b267eb3c2fdcc4a547834e833f55b5c1ad9c8bd9121c9d39dc1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/th/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/th/thunderbird-78.9.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "0e9b959424106680bced6d924c184d1306f7f1fd34fb4d3e4d8a54cb191500bd";
+      sha256 = "99a342f303c3a890ee68514841d563fe493e2459a4d6f6769c42f986e122b7ba";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/tr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/tr/thunderbird-78.9.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "f2d037cea39d2698e71a0885587302644450149434ac7c3234c7ae32c5f4d103";
+      sha256 = "f827b3d8fb60540d00d20d4ec50dbd9e28af3798863fa4ccc1a862a08ebdd18d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/uk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/uk/thunderbird-78.9.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "663aa8509cc75c074697509981bf54ab00eeddc50c53acc0221225c3d7c63f9f";
+      sha256 = "d8e30faa9f43308c31504437ae2187d5c1ce00c16cd430f31eaacf8dbed71604";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/uz/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/uz/thunderbird-78.9.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "892209fbe5d48532710feab4ad8f38f9387e10b088d91a12c9778bc465af194c";
+      sha256 = "00e3e3a43519fa8136d3cde8527f3e9c44732ef6d5aac9cc2e1f28feaf940a50";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/vi/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/vi/thunderbird-78.9.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "a66d1d470f4a76cfa8b31fa3d60acb91cc7657455f9aebf930e127c2acbf4c8f";
+      sha256 = "f16b0fca32c85e648be8c8d4c9ddb6d8fde726f1386d0dd29ec050b39d827fe2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/zh-CN/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/zh-CN/thunderbird-78.9.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "10830b4a84ca22c19ee329cb00b92816e9b74f99c99a1ba6cfc86171470d655d";
+      sha256 = "51007e8318fbf673eb63bf20be8daa35ef8e2d6fee9fd9356dbba98d843dc813";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/zh-TW/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-x86_64/zh-TW/thunderbird-78.9.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "b88200643a70ba3391cfd3be6cbc7bb178c6170f26041d4153021736d03365f0";
+      sha256 = "ef7a5507b47725ba7bca853c1f5bf20eb36d31fbbc8c912596a5993f7dca57ac";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/af/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/af/thunderbird-78.9.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "e78e2ef7411b3e6c0f2ed5c0729dfdc144f94e8575f2f30ae1cbaeb7c73188dc";
+      sha256 = "435ba6c5a5901fe1daa1b19c36f1071086d21e2f321a52afe1db0c03a0044635";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ar/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/ar/thunderbird-78.9.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "42c3f3b177a50afd6640db6815e7c159048cebb6dd5613c2fdf9ef18871d40cf";
+      sha256 = "4ac307dbe93e69e6dbb629756363900256ec735c1927cad74acb0c5f8e255b92";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ast/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/ast/thunderbird-78.9.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "b8fb786756051169d96a4fecf05cdabf4becc8fbcabd56ba676e96286a80b9d2";
+      sha256 = "3d9a01438e82350e5a60ee7944226d9a0f46384673ddae01f8f8fe445df40312";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/be/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/be/thunderbird-78.9.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "4e3f8f26b1321d130fb16b5eb30c3b3c3a7863e6d43ee9604f1a6da97228c85f";
+      sha256 = "9a5b22648d8c7c05d5f0be0d1f450baadccf791353a23bc1b6889e8911d90c5a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/bg/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/bg/thunderbird-78.9.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "0385b615dfb21f33b3e84b6c9213d3d8980379bb4be07967f5309888078ac177";
+      sha256 = "77cf8d4912c2b5b34fa0235ddbb95cd90bcf83d1d528275b23de08dad59116c5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/br/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/br/thunderbird-78.9.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "e338d6b439577af562c4dbcd2951176d2c6cf87254203e6d20602de4563484c0";
+      sha256 = "9e7bcb749e0d88efd60e6bed2fc77e39deaf8a82db56c304529d44843657842d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ca/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/ca/thunderbird-78.9.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "71f1b5f1b35a9c5712ba6cedbf3de96f4a3814655c44ed1cda48d4e5a56c3e03";
+      sha256 = "0206a127cbf5f9b1c4c4711d4d05591d175c9e96c2354790c220e9587c356aba";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/cak/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/cak/thunderbird-78.9.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "0f616eb61c0de3e38d2092ae215613ba104be279027259def8bca4082bd74cd3";
+      sha256 = "e47d892a90c3b9ec29365cc0173066234e21cd989c4b588e43fecb61b10d1f80";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/cs/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/cs/thunderbird-78.9.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "8de26b3daa7b087fb94a349e909da703867665fb2b4add360584c8d61f0c84ee";
+      sha256 = "bdcfb9cf6e3207a41634eb54c472117c33b0df981d900c4dd0dbff0463ebe57a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/cy/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/cy/thunderbird-78.9.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "74e28fb04e08bcfd68215eec443fde725077850e412798c1f0870e776ecbeeb1";
+      sha256 = "5b0def675213d882ea653ffd7b5aa62f96000d4aaee8e06ad1fd5984ac99c8c7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/da/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/da/thunderbird-78.9.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "d50f37a31e4e5805084fa14bf639057b543deac99738871c402ad9af9684ce20";
+      sha256 = "617579da2580a0d9a5a6e64ef7c4b028fde31f82dcf8139104c380e51ec50227";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/de/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/de/thunderbird-78.9.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "7aa84ada2e6cb6b467a618b234a7cd0370f5d71fd1eb0f5da1addb6478665ad3";
+      sha256 = "5cdee984aa63595fbcb00303f14fd19d124ef9b267d490d5263c7554f4ea0dc7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/dsb/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/dsb/thunderbird-78.9.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "e273b80d5039097a34e7e2c96f65aca112e68d72a82782e783ea9412e49ab21f";
+      sha256 = "fa05969bcc025056b8ba9c056af0051fed91a967ebf9e21ccab7654aaaa6ba1f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/el/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/el/thunderbird-78.9.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "f31dfc543cca8d8f3c6e1cc40f8a07ead7b231222c8e04e5e2202c315c4708d8";
+      sha256 = "03b58dbcabb41c0140c18f1ff31dd32e4d2d006c85af75d73bcd656587e787ed";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/en-CA/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/en-CA/thunderbird-78.9.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "534f8008886a3028c09afb1c030923359f8ee0c85c6e961faa4c974b6c2c30da";
+      sha256 = "6cd222aacb8eba184dc3eef308fe7b564c70da2ba6c38e6e4e328e999b7229a4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/en-GB/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/en-GB/thunderbird-78.9.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "c9c138e5d92847c0c0ec82d1799fddf1267b95a5f6ef2cae7820f560aff53732";
+      sha256 = "9d3ca50977bd5c6f8a5bd998549db0dc2ccc6aa5d33c914e93d42e2ae69e8cbd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/en-US/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/en-US/thunderbird-78.9.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "6ec06f3a432301745ed24607b0549602ae31bf6e051ca9a4079f4cd6caf2041f";
+      sha256 = "84721e190b6b95733a47a16853e1fe1e0c7b0e4693d3b7752aa59583fba92f97";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/es-AR/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/es-AR/thunderbird-78.9.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "8debebc56ee0fbcbf2507f98f28f7807b55d4d768bd40c7820aa9e4f7dc9f0ad";
+      sha256 = "dcadcd68506406f718871d7576b47086d59ca159a5bc6d878d022141029df2db";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/es-ES/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/es-ES/thunderbird-78.9.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "58ac431d1b48a1c8224e414577a7405f20336cd990f6e4d8399e304cc5f38a3f";
+      sha256 = "46526dd5b4bb123e774d3a3fa8fd88a8982cfb36a252b09fa98aa6cb773ff0d2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/et/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/et/thunderbird-78.9.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "a80917893c189acbd745e56820b7f4fce1ebf14e99be8700db75817ffa3eccf5";
+      sha256 = "de0b695be00721244ff20b2046bb376342fba7c422980443b217f5d4cfa83d48";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/eu/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/eu/thunderbird-78.9.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "f305db54f9cc504777ee9d329ca1da97a8642f7505903b2744cb7d86382b0ccf";
+      sha256 = "543d45e256951cbf21bc61359e99daf2c80789a88641ae2231c1eb0ade133198";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/fa/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/fa/thunderbird-78.9.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "0a90e573bf94097f790dec0ef2771266bf115c0c4768c3952758f8c17f7cfb70";
+      sha256 = "6b95ebccf7ccca90c3310923f020ba6f05fa715d64c79acd770a491e15a9938f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/fi/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/fi/thunderbird-78.9.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "264104b86cd034927586520b6c4df25b1c75da4d97ea18bffd74261e553b4eb5";
+      sha256 = "145c2479a73955f9ffe6ebd2d41eced848770729f218381735aafe5c3cc0b3a6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/fr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/fr/thunderbird-78.9.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "2cbca14d94252f24dd50c971fd5ad367b4b3c0d3ccfd2d9ce8b18cb1df62a82c";
+      sha256 = "9178d90f346d62b6aa0bb4b081b6bebc214d333d6a042c46ee1af7661ffc3b03";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/fy-NL/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/fy-NL/thunderbird-78.9.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "d60c543f59ebdb539b9d3799d77f4ad1d05738cc5d1b78d016a7d2f036d72095";
+      sha256 = "fe3574999f0d1fff276fdfd7d432859d495c2b64137d33ee418ef1e4329b1b72";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ga-IE/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/ga-IE/thunderbird-78.9.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "2d0a19e3a702a72866af8c8e9aac64e9c41b3b1bc44de53ec42b56efd657cd63";
+      sha256 = "1570882cd8345f86de38179713a7f7acb94768c4874e571a20314fb01154e1bf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/gd/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/gd/thunderbird-78.9.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "93eaaf7d5c6cdf1947e25fbd053185f09f60329ba729a53f12d272f24dca6bf7";
+      sha256 = "9405a2a7ce52a48292bf4b6b20f3b1e96c12460a1e44a90ccdc31cdb21acda5e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/gl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/gl/thunderbird-78.9.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "02d78333abaed79e7a2fccc6af3edef3077e08cadcc83fa2856779b6d24e9113";
+      sha256 = "930a9a3e06bc28ede54ec43e8bb92cc30329d7f0271629b37ac3753191f7e133";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/he/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/he/thunderbird-78.9.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "d4dd60245672fc23e114d2cfef40ff69faf08a2f188969deff7d084d8aebd64f";
+      sha256 = "eb08c16b7df47fd501f61049b19f3f8f827870c8681b9230564276bc0cc9ada8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/hr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/hr/thunderbird-78.9.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "0aba235af4ebdd924d9d909755dd059025c1b502ab0056a24ef0eb5aea05b9ae";
+      sha256 = "c866290def37d2e16274820d5846bec52afc7c7da1f8df812df930f0c68c6b56";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/hsb/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/hsb/thunderbird-78.9.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "acc53828d809a21b3a5bc6b00cf5681b376284e4818c8db250f61a3117573f78";
+      sha256 = "0df5dc60047e68aadc7a96e194468d42e977c7a90d9faa8c4684f650763825f8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/hu/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/hu/thunderbird-78.9.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "39aac6a7e96fbc71c9e537f4312fa528c0f3b56a5d669638ca2a4ff2a4823cb8";
+      sha256 = "e76e78c1c77b59eb7a3ffad0da149dcc7f64d6b0305f5a5a607ad2745d224e17";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/hy-AM/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/hy-AM/thunderbird-78.9.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "bb1fdc6084ca5d761823b5391aa237d14d62f783007cbb2d6ccff1b69a7b3142";
+      sha256 = "0dde11bb6c6ba186925010cee97b59d3c64890b108ef478be5578218954a39cb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/id/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/id/thunderbird-78.9.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "340b91be60235a91b1a130d68e9b5ddc16d63eba381cc59efd2d396764bf2327";
+      sha256 = "ceea16b87a7d8b44b187d950f4c9fc5326ed7a550c38e0f41645004a324669a0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/is/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/is/thunderbird-78.9.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "4f3b255119669de976714089d11532342eb6c1ede95e98d8de09413cdaf28c4c";
+      sha256 = "a98177d8f62b1ffe056ba3c1f2ec9d7b3f47ad8d47459328692e9bee5e1d02d2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/it/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/it/thunderbird-78.9.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "1fdda6110ef1eec5702490dfb786fadeb6bbb73fa849526327baebdf3aeaf348";
+      sha256 = "259b8e4e08828b544ba61541629025d4a711f44dc4c476b3e3971a633301b298";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ja/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/ja/thunderbird-78.9.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "fd10c2307c71e143d76dfba7d26ea15a6a211878bcf1287128d5706018fb3083";
+      sha256 = "6f2511dab5530e58664f386cb65b26d82fe581faee01b1a76cdd29e3ee3a1955";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ka/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/ka/thunderbird-78.9.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "b796f8b6aaa28a23726afe915b741b7c89ed73f4e731bf7fad3848aade16001c";
+      sha256 = "368a85fcb387703df7422d1ce199a499d0e4796f4fdd4775aef27c5b36272fa7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/kab/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/kab/thunderbird-78.9.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "35941699918a3177b092c650a73d8bc8f6d06bdf8cbc5c33e492d93f6cb0f198";
+      sha256 = "33bfd965c79bd6935516729f3eedd65be2b3f754c9225d6ffdb4af201b0d13a2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/kk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/kk/thunderbird-78.9.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "3ea99defb54f2e672d48b424e842c876ad0ceacd87cd19cc643acb55586948ea";
+      sha256 = "20dfc052f78a58d4fd96a0df22b55559ca43d8792dfda372dfede1cb49c6b185";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ko/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/ko/thunderbird-78.9.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "4cfa908b81773b57486b8144eb61c949c70615eafc1b3d050b6ceb6292958769";
+      sha256 = "63479eb7fcaea17ea29c98b624c36ac20ff2ab9e42bae1a355c78f05d5f9e313";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/lt/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/lt/thunderbird-78.9.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "0d668e8a27f7044c610cff1028f245d2952abf6320ce905365bd42a39df85c23";
+      sha256 = "2d50db9e0698c991e10a6ec6e627b02d0aca9e18b857aa290e4aab926e8ee88b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ms/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/ms/thunderbird-78.9.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "a632e60198e189d33e87a01c084179bdfb8f8c1d1547dfa4747dec325d1c04c7";
+      sha256 = "66969627bd536d9a8e8d8717bab010ceb16350425d31ea114bc7e012ba1f0922";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/nb-NO/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/nb-NO/thunderbird-78.9.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "d0336060f8e8b632462df91dc0e3ba33f2a7dbf1da6084d41961c05fbbedd46b";
+      sha256 = "1db46ff207d356adaf761db2fac7961b20633dc6578ce562154a1bdb308256e3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/nl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/nl/thunderbird-78.9.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "4e9c1921dac5ce0008b7380d810d5ee4530c4d336c79c6a274c657ea338a4ca1";
+      sha256 = "0259c04b35bd30b5feb44da31b639938504f1402879205263eb63f7a59153f11";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/nn-NO/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/nn-NO/thunderbird-78.9.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "c33045aaa5d9054022431cf66f03ba2485ea7c68553ea245b73c8cf33b4458fc";
+      sha256 = "1de52759f96302447829e0de40319394ac0b1802ec60c0c242cf85c0ca5110c6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/pa-IN/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/pa-IN/thunderbird-78.9.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "8b3810587f61e029a2536cb0eceb8b0b26656adf9ce17e8a7f020ed41b6e5724";
+      sha256 = "39e0f5794e508dbf02c6aaedaead4173f5ae55d350aa3caeb7a1ad300a69e4e8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/pl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/pl/thunderbird-78.9.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "01c8e6ba91037b8e5f713fd7d0dc9b6025aa3dc83fd8b13f1490dd849ec5e87f";
+      sha256 = "25bc49f2225c8aca7ea467a240234fa9ec2c7ec34f751537a199f6cbb30b390b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/pt-BR/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/pt-BR/thunderbird-78.9.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "9ab3d18699c6de55a198028592da01b576d67920375cbc2154d356bdf7fd4ccc";
+      sha256 = "6091c0e84d89312db11a3714027881243db708ce3f28187e86076351786a3d70";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/pt-PT/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/pt-PT/thunderbird-78.9.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "3446b5b82aeb058ff880d82fa7da923231a7104bcef77bc08f640490c79b24b5";
+      sha256 = "45fae3c271d226dee2410f8f97eadb62783291c570bf12cd9f5fe5ab23acae23";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/rm/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/rm/thunderbird-78.9.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "0e1ba7a270021b2df2f189715ddd6b0d540c35dbfb3f45d8216b24e29c6ecd25";
+      sha256 = "56387dea25d3bc4742c297e0609be55a2db938d10a5e94db192018c706e7f398";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ro/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/ro/thunderbird-78.9.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "9845b2e33d758474c44e46804c7c49255f3acf9f25c8afa299320828cefb3ec8";
+      sha256 = "7e84c211675cbd59e805ffa499663b3c02dbc2075f2b734eaa9f41862e59c59f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ru/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/ru/thunderbird-78.9.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "60dc7072a6dfa0723972522d4a06be75c99e6e1b423e68e91af276f2a325913b";
+      sha256 = "c9374d0b813baa7aa837e2283d75c9c47d75fca7bfc640be4782d90b480fa145";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/si/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/si/thunderbird-78.9.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "fd08c36b8143196ca73aade09e3a8292bab0ce8b6e6d18705eed2594f342ce86";
+      sha256 = "ac8ff38bf196886f8b95c34a07ed701416c58b78758517377f6d8eefc85050ad";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/sk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/sk/thunderbird-78.9.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "068d927b94908224c7a789bfe33d1e884228d82d3f30e573a0006136d5841c5f";
+      sha256 = "dd44494bec41af06317266ee7d8f8f16ac6c648728636aa68c93f57ca9594231";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/sl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/sl/thunderbird-78.9.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "27d3a7f5549c48fa2724dc98b8df72bf2b843b0cc34d55371f050ca217cd2ed3";
+      sha256 = "2be1af23f71b22812a90ab2be33649ad53bf2d14acbbcc9540b835eade0fd9bf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/sq/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/sq/thunderbird-78.9.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "b8d3ca545ff88c854b13e1ee89793b33df39f3d6713aae8fb4a2fa3be2d6f73f";
+      sha256 = "5c65db4fcc190408aa8a1c5f0170ede3f86f1c9f07dacc6fd7a9aa54bff533d1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/sr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/sr/thunderbird-78.9.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "10d0f70e52bbb8b0978ff6c26359120bb537cc9f15b47a93744ad8ee6dbd7b96";
+      sha256 = "7a42279c8a4352c18d583503b2324f5dd98b6c927582fa1d5e8cd72a5b1ca782";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/sv-SE/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/sv-SE/thunderbird-78.9.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "15fd51de4cd82eaadfb0c9a5231cd6c8f83a58eca1eb66acafa037ca8ae76767";
+      sha256 = "3f508f801f1f4afc477ee1a0bd81d49d957429360b9691b5945a88b609dc9a21";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/th/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/th/thunderbird-78.9.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "07a6289101aa3d105c2a358ea53d1045bfc3616cd909e57b5a577bcba38dba0f";
+      sha256 = "bd50cac75236ee9e1ad7226c605b37cc2f4aa57eafc4978af9f2563aff7dda0c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/tr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/tr/thunderbird-78.9.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "6253f5e59cf07cfe8bbdd566b27ad9cd56aab29f40c42df1368d7e14d064a27a";
+      sha256 = "af134487b9c2d6f84df56e2da1fcbc7b4abd3960fa3d11a366281768812fd9e6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/uk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/uk/thunderbird-78.9.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "e4e37d8194d8df48810afc47463d044e4b4b9fdd0752b0199e4c6a7aa1b46d60";
+      sha256 = "a094a6fe935b002805252ad4694a15231587a66c31cff3064c2842332f1e82ae";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/uz/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/uz/thunderbird-78.9.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "983d9701e367017ada3b6583d9e6985a73609c642968f1c82ec9b08644fe82b5";
+      sha256 = "6b8b7622374c92036828990db1de3042e1a7cebf12974d30d73dcdd0e564d707";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/vi/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/vi/thunderbird-78.9.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "b743d0c18257880cf0d7c463a0e39f6029fede79a534bef9dbd5ffe6ba3b10e7";
+      sha256 = "4ffcd1d5f21145f857ee525169fe59ee8a1cdef6a1c4f3cc1918be1fc7c66e6a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/zh-CN/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/zh-CN/thunderbird-78.9.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "8cc5d4a05eef0498fe12476e7ee7a91dce0c69234b78278cc7985505708ff8ab";
+      sha256 = "8cd65c054b6fefcbd0ac9a057e277009c732af6baef08ccb3f57bee73b75ae20";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/zh-TW/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.0/linux-i686/zh-TW/thunderbird-78.9.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "5070474b2ac89d09e45bced9513b0f317d4dce76c57ce5f82c75feafb6d49ec3";
+      sha256 = "1e39b1e38bfcc1735801dcd6c073ba1eeb344b23d9e859495947a37d95a4b3b8";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix
index f3594d97801d..4433551d2e10 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix
@@ -98,6 +98,7 @@ stdenv.mkDerivation rec {
     rustc
     which
     yasm
+    unzip
   ] ++ lib.optional gtk3Support wrapGAppsHook;
 
   buildInputs = [
@@ -125,7 +126,6 @@ stdenv.mkDerivation rec {
     pango
     perl
     sqlite
-    unzip
     xorg.libX11
     xorg.libXScrnSaver
     xorg.libXcursor
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index 819fa25b86d7..23c83ce46f0e 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -73,13 +73,13 @@ assert waylandSupport -> gtk3Support == true;
 
 stdenv.mkDerivation rec {
   pname = "thunderbird";
-  version = "78.7.1";
+  version = "78.9.0";
 
   src = fetchurl {
     url =
       "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
     sha512 =
-      "328p14mgcam4dxx0asbgp4v2v559bwbw7z2kxd5yfwkna040r9ccrkkirma5580z9vkwb0rcjlmai9wrbacxrg8hg65d8vylvnkampy";
+      "35n9l1kjx52davwf1k5gdx2y81hws3mfb5755464z9db48n0vfj756jlg9d8f2m2s29js27bdswl64mralw4j085dl11661g7p9ypzs";
   };
 
   nativeBuildInputs = [
@@ -99,6 +99,7 @@ stdenv.mkDerivation rec {
     rustc
     which
     yasm
+    unzip
   ] ++ lib.optional gtk3Support wrapGAppsHook;
 
   buildInputs = [
@@ -126,7 +127,6 @@ stdenv.mkDerivation rec {
     pango
     perl
     sqlite
-    unzip
     xorg.libX11
     xorg.libXScrnSaver
     xorg.libXcursor
diff --git a/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
index da36589aeecb..2723f3420436 100644
--- a/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
+++ b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -10,7 +10,6 @@
 , itstool
 , libayatana-appindicator-gtk3
 , perlPackages
-, glibcLocales
 , meson
 , ninja
 }:
diff --git a/nixpkgs/pkgs/applications/networking/mpop/default.nix b/nixpkgs/pkgs/applications/networking/mpop/default.nix
index 01528df856c0..613226a2dc18 100644
--- a/nixpkgs/pkgs/applications/networking/mpop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mpop/default.nix
@@ -4,11 +4,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mpop";
-  version = "1.4.11";
+  version = "1.4.13";
 
   src = fetchurl {
     url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "1gcxvhin5y0q47svqbf90r5aip0cgywm8sq6m84ygda7km8xylwv";
+    sha256 = "sha256-s0mEZsZbZQrdGm55IJsnuoY3VnOkXJalknvtaFoyfcE=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/networking/msmtp/default.nix b/nixpkgs/pkgs/applications/networking/msmtp/default.nix
index 02131b41ea41..d8f53f4b2566 100644
--- a/nixpkgs/pkgs/applications/networking/msmtp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/msmtp/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "msmtp";
-  version = "1.8.14";
+  version = "1.8.15";
 
   src = fetchurl {
     url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "1W8GXXEUhunCNGGFFaAqSKSNq0BRs08+EI++y2+3c7Q=";
+    sha256 = "sha256-ImXcY56/Lt8waf/+CjvXZ0n4tY9AAdXN6uGYc5SQmc4=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
index 82140f2d77d8..9267d8d231cd 100644
--- a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -41,11 +41,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "mullvad-vpn";
-  version = "2021.1";
+  version = "2021.2";
 
   src = fetchurl {
-    url = "https://www.mullvad.net/media/app/MullvadVPN-${version}_amd64.deb";
-    sha256 = "1ksa327zaiwmcmzv4n4ycfzc4sqhj2492c5ir0mqlx7x2nnhx6q7";
+    url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb";
+    sha256 = "sha256-nNZK11MckiQ+z8NDgDc7aJ6yrXWI1hPOvMZkrGwDDgU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/mumble/default.nix b/nixpkgs/pkgs/applications/networking/mumble/default.nix
index 2eeb151bebeb..088391ba48f7 100644
--- a/nixpkgs/pkgs/applications/networking/mumble/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mumble/default.nix
@@ -1,22 +1,15 @@
-{ lib, stdenv, fetchurl, fetchFromGitHub, fetchpatch, pkg-config, qt5
+{ lib, stdenv, fetchFromGitHub, pkg-config, qt5
 , avahi, boost, libopus, libsndfile, protobuf, speex, libcap
 , alsaLib, python3
 , rnnoise
-, jackSupport ? false, libjack2 ? null
-, speechdSupport ? false, speechd ? null
-, pulseSupport ? false, libpulseaudio ? null
-, iceSupport ? false, zeroc-ice ? null
-, grpcSupport ? false, grpc ? null, c-ares ? null, abseil-cpp ? null, which ? null
+, jackSupport ? false, libjack2
+, speechdSupport ? false, speechd
+, pulseSupport ? false, libpulseaudio
+, iceSupport ? false, zeroc-ice
+, grpcSupport ? false, grpc, which
 , nixosTests
 }:
 
-assert jackSupport -> libjack2 != null;
-assert speechdSupport -> speechd != null;
-assert pulseSupport -> libpulseaudio != null;
-assert iceSupport -> zeroc-ice != null;
-assert grpcSupport -> (grpc != null && c-ares != null && abseil-cpp != null && which != null);
-
-with lib;
 let
   generic = overrides: source: qt5.mkDerivation (source // overrides // {
     pname = overrides.type;
@@ -42,8 +35,8 @@ let
       "CONFIG+=no-bundled-opus"
       "CONFIG+=no-bundled-speex"
       "DEFINES+=PLUGIN_PATH=${placeholder "out"}/lib/mumble"
-    ] ++ optional (!speechdSupport) "CONFIG+=no-speechd"
-      ++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio"
+    ] ++ lib.optional (!speechdSupport) "CONFIG+=no-speechd"
+      ++ lib.optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio"
       ++ (overrides.configureFlags or [ ]);
 
     preConfigure = ''
@@ -64,11 +57,9 @@ let
       runHook postInstall
     '';
 
-    enableParallelBuilding = true;
-
     passthru.tests.connectivity = nixosTests.mumble;
 
-    meta = {
+    meta = with lib; {
       description = "Low-latency, high quality voice chat software";
       homepage = "https://mumble.info";
       license = licenses.bsd3;
@@ -82,16 +73,16 @@ let
 
     nativeBuildInputs = [ qt5.qttools ];
     buildInputs = [ libopus libsndfile speex qt5.qtsvg rnnoise ]
-      ++ optional stdenv.isLinux alsaLib
-      ++ optional jackSupport libjack2
-      ++ optional speechdSupport speechd
-      ++ optional pulseSupport libpulseaudio;
+      ++ lib.optional stdenv.isLinux alsaLib
+      ++ lib.optional jackSupport libjack2
+      ++ lib.optional speechdSupport speechd
+      ++ lib.optional pulseSupport libpulseaudio;
 
     configureFlags = [
       "CONFIG+=no-server"
     ];
 
-    NIX_CFLAGS_COMPILE = optional speechdSupport "-I${speechd}/include/speech-dispatcher";
+    NIX_CFLAGS_COMPILE = lib.optional speechdSupport "-I${speechd}/include/speech-dispatcher";
 
     installPhase = ''
       # bin stuff
@@ -113,18 +104,18 @@ let
   server = source: generic {
     type = "murmur";
 
-    postPatch = optional iceSupport ''
+    postPatch = lib.optional iceSupport ''
       grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${zeroc-ice.dev}/share/ice/,g'
     '';
 
     configureFlags = [
       "CONFIG+=no-client"
-    ] ++ optional (!iceSupport) "CONFIG+=no-ice"
-      ++ optional grpcSupport "CONFIG+=grpc";
+    ] ++ lib.optional (!iceSupport) "CONFIG+=no-ice"
+      ++ lib.optional grpcSupport "CONFIG+=grpc";
 
     buildInputs = [ libcap ]
-      ++ optional iceSupport zeroc-ice
-      ++ optionals grpcSupport [ grpc c-ares abseil-cpp which ];
+      ++ lib.optional iceSupport zeroc-ice
+      ++ lib.optionals grpcSupport [ grpc which ];
 
     installPhase = ''
       # bin stuff
diff --git a/nixpkgs/pkgs/applications/networking/ncgopher/default.nix b/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
index 2e5e840d50dc..69f214cc5711 100644
--- a/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ncgopher";
-  version = "0.1.5";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "jansc";
     repo = "ncgopher";
     rev = "v${version}";
-    sha256 = "1mv89sanmr49b9za95jl5slpq960b246j2054r8xfafzqmbp44af";
+    sha256 = "sha256-Yny5zZe5x7/pWda839HcFkHFuL/jl1Q7ykTZzKy871I=";
   };
 
-  cargoSha256 = "12r4vgrg2bkr3p61yxcsg02kppg84vn956l0v1vb08i94rxzc8zk";
+  cargoSha256 = "sha256-IsRaDhnRamMSbtXG1r1j0jZYjFiSjRdwOaUVyqy4ZJw=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
index 42486458b2ca..67ddcf599725 100644
--- a/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
@@ -12,6 +12,7 @@
 , qtkeychain
 , qttools
 , qtwebengine
+, qtwebsockets
 , qtquickcontrols2
 , qtgraphicaleffects
 , sqlite
@@ -19,16 +20,17 @@
 
 mkDerivation rec {
   pname = "nextcloud-client";
-  version = "3.0.3";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    sha256 = "0idh8i71jivdjjs2y62l22yl3qxwgcr0hf53dad587bzgkkkr223";
+    sha256 = "sha256-8Ql6tOvWOjAvMJA87WlT9TbpnbciBsjDxRuYlMVi/m8=";
   };
 
   patches = [
+    # Explicitly move dbus configuration files to the store path rather than `/etc/dbus-1/services`.
     ./0001-Explicitly-copy-dbus-files-into-the-store-dir.patch
   ];
 
@@ -40,6 +42,7 @@ mkDerivation rec {
   buildInputs = [
     inotify-tools
     libcloudproviders
+    libsecret
     openssl
     pcre
     qtbase
@@ -48,6 +51,7 @@ mkDerivation rec {
     qtwebengine
     qtquickcontrols2
     qtgraphicaleffects
+    qtwebsockets
     sqlite
   ];
 
@@ -63,7 +67,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Nextcloud themed desktop client";
     homepage = "https://nextcloud.com";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ caugner ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/applications/networking/onionshare/default.nix b/nixpkgs/pkgs/applications/networking/onionshare/default.nix
index 77d08692f625..124ee9a20ead 100644
--- a/nixpkgs/pkgs/applications/networking/onionshare/default.nix
+++ b/nixpkgs/pkgs/applications/networking/onionshare/default.nix
@@ -1,30 +1,33 @@
 {
   lib,
   buildPythonApplication,
-  stdenv,
   substituteAll,
   fetchFromGitHub,
   isPy3k,
   flask,
   flask-httpauth,
+  flask-socketio,
   stem,
+  psutil,
   pyqt5,
   pycrypto,
-  pysocks,
-  pytest,
+  pyside2,
+  pytestCheckHook,
+  qrcode,
   qt5,
   requests,
+  unidecode,
   tor,
   obfs4,
 }:
 
 let
-  version = "2.2";
+  version = "2.3.1";
   src = fetchFromGitHub {
     owner = "micahflee";
     repo = "onionshare";
     rev = "v${version}";
-    sha256 = "0m8ygxcyp3nfzzhxs2dfnpqwh1vx0aws44lszpnnczz4fks3a5j4";
+    sha256 = "sha256-H09x3OF6l1HLHukGPvV2rZUjW9fxeKKMZkKbY9a2m9I=";
   };
   meta = with lib; {
     description = "Securely and anonymously send and receive files";
@@ -51,63 +54,76 @@ let
     maintainers = with maintainers; [ lourkeur ];
   };
 
-  common = buildPythonApplication {
-    pname = "onionshare-common";
-    inherit version meta src;
-
+in rec {
+  onionshare = buildPythonApplication {
+    pname = "onionshare-cli";
+    inherit version meta;
+    src = "${src}/cli";
+    patches = [
+      # hardcode store paths of dependencies
+      (substituteAll {
+        src = ./fix-paths.patch;
+        inherit tor obfs4;
+        inherit (tor) geoip;
+      })
+    ];
     disable = !isPy3k;
     propagatedBuildInputs = [
       flask
       flask-httpauth
+      flask-socketio
       stem
-      pyqt5
+      psutil
       pycrypto
-      pysocks
       requests
+      unidecode
     ];
+
     buildInputs = [
       tor
       obfs4
     ];
 
+    checkInputs = [
+      pytestCheckHook
+    ];
+
+    preCheck = ''
+      # Tests use the home directory
+      export HOME="$(mktemp -d)"
+    '';
+  };
+
+  onionshare-gui = buildPythonApplication {
+    pname = "onionshare";
+    inherit version meta;
+    src = "${src}/desktop/src";
     patches = [
+      # hardcode store paths of dependencies
       (substituteAll {
-        src = ./fix-paths.patch;
+        src = ./fix-paths-gui.patch;
         inherit tor obfs4;
         inherit (tor) geoip;
       })
     ];
-    postPatch = "substituteInPlace onionshare/common.py --subst-var-by common $out";
 
-    doCheck = false;
-  };
-in
-{
-  onionshare = stdenv.mkDerivation {
-    pname = "onionshare";
-    inherit version meta;
+    disable = !isPy3k;
+    propagatedBuildInputs = [
+      onionshare
+      pyqt5
+      pyside2
+      psutil
+      qrcode
+    ];
 
-    dontUnpack = true;
+    nativeBuildInputs = [ qt5.wrapQtAppsHook ];
 
-    inherit common;
-    installPhase = ''
-      mkdir -p $out/bin
-      cp $common/bin/onionshare -t $out/bin
+    preFixup = ''
+      wrapQtApp $out/bin/onionshare
     '';
-  };
-  onionshare-gui = stdenv.mkDerivation {
-    pname = "onionshare-gui";
-    inherit version meta;
 
-    nativeBuildInputs = [ qt5.wrapQtAppsHook ];
-
-    dontUnpack = true;
+    doCheck = false;
 
-    inherit common;
-    installPhase = ''
-      mkdir -p $out/bin
-      cp $common/bin/onionshare-gui -t $out/bin
-      wrapQtApp $out/bin/onionshare-gui
-    '';
+    pythonImportsCheck = [ "onionshare" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch
new file mode 100644
index 000000000000..cdc2e3d47dd8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch
@@ -0,0 +1,37 @@
+
+--- a/onionshare/gui_common.py
++++ b/onionshare/gui_common.py
+@@ -376,29 +376,10 @@ class GuiCommon:
+         }
+ 
+     def get_tor_paths(self):
+-        if self.common.platform == "Linux":
+-            tor_path = shutil.which("tor")
+-            obfs4proxy_file_path = shutil.which("obfs4proxy")
+-            prefix = os.path.dirname(os.path.dirname(tor_path))
+-            tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
+-            tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
+-        elif self.common.platform == "Windows":
+-            base_path = self.get_resource_path("tor")
+-            tor_path = os.path.join(base_path, "Tor", "tor.exe")
+-            obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe")
+-            tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip")
+-            tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6")
+-        elif self.common.platform == "Darwin":
+-            base_path = self.get_resource_path("tor")
+-            tor_path = os.path.join(base_path, "tor")
+-            obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy.exe")
+-            tor_geo_ip_file_path = os.path.join(base_path, "geoip")
+-            tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6")
+-        elif self.common.platform == "BSD":
+-            tor_path = "/usr/local/bin/tor"
+-            tor_geo_ip_file_path = "/usr/local/share/tor/geoip"
+-            tor_geo_ipv6_file_path = "/usr/local/share/tor/geoip6"
+-            obfs4proxy_file_path = "/usr/local/bin/obfs4proxy"
++        tor_path = "@tor@/bin/tor"
++        tor_geo_ip_file_path = "@geoip@/share/tor/geoip"
++        tor_geo_ipv6_file_path = "@geoip@/share/tor/geoip6"
++        obfs4proxy_file_path = "@obfs4@/bin/obfs4proxy"
+ 
+         return (
+             tor_path,
diff --git a/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch
index ddd0c75334bb..a290dd884104 100644
--- a/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch
+++ b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch
@@ -1,68 +1,31 @@
-diff --git a/onionshare/common.py b/onionshare/common.py
-index 3373462..7fd245b 100644
---- a/onionshare/common.py
-+++ b/onionshare/common.py
-@@ -87,66 +87,16 @@ class Common(object):
-                 ),
-                 "share",
-             )
--            if not os.path.exists(prefix):
--                # While running tests during stdeb bdist_deb, look 3 directories up for the share folder
--                prefix = os.path.join(
--                    os.path.dirname(
--                        os.path.dirname(os.path.dirname(os.path.dirname(prefix)))
--                    ),
--                    "share",
--                )
--
--        elif self.platform == "BSD" or self.platform == "Linux":
--            # Assume OnionShare is installed systemwide in Linux, since we're not running in dev mode
--            prefix = os.path.join(sys.prefix, "share/onionshare")
--
--        elif getattr(sys, "frozen", False):
--            # Check if app is "frozen"
--            # https://pythonhosted.org/PyInstaller/#run-time-information
--            if self.platform == "Darwin":
--                prefix = os.path.join(sys._MEIPASS, "share")
--            elif self.platform == "Windows":
--                prefix = os.path.join(os.path.dirname(sys.executable), "share")
-+        else:
-+            prefix = "@common@/share/onionshare"
-
-         return os.path.join(prefix, filename)
-
+--- a/onionshare_cli/common.py
++++ b/onionshare_cli/common.py
+@@ -86,33 +86,10 @@ class Common:
+         return path
+ 
      def get_tor_paths(self):
 -        if self.platform == "Linux":
--            tor_path = "/usr/bin/tor"
--            tor_geo_ip_file_path = "/usr/share/tor/geoip"
--            tor_geo_ipv6_file_path = "/usr/share/tor/geoip6"
--            obfs4proxy_file_path = "/usr/bin/obfs4proxy"
+-            tor_path = shutil.which("tor")
+-            if not tor_path:
+-                raise CannotFindTor()
+-            obfs4proxy_file_path = shutil.which("obfs4proxy")
+-            prefix = os.path.dirname(os.path.dirname(tor_path))
+-            tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
+-            tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
 -        elif self.platform == "Windows":
--            base_path = os.path.join(
--                os.path.dirname(os.path.dirname(self.get_resource_path(""))), "tor"
--            )
--            tor_path = os.path.join(os.path.join(base_path, "Tor"), "tor.exe")
--            obfs4proxy_file_path = os.path.join(
--                os.path.join(base_path, "Tor"), "obfs4proxy.exe"
--            )
--            tor_geo_ip_file_path = os.path.join(
--                os.path.join(os.path.join(base_path, "Data"), "Tor"), "geoip"
--            )
--            tor_geo_ipv6_file_path = os.path.join(
--                os.path.join(os.path.join(base_path, "Data"), "Tor"), "geoip6"
--            )
+-            base_path = self.get_resource_path("tor")
+-            tor_path = os.path.join(base_path, "Tor", "tor.exe")
+-            obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe")
+-            tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip")
+-            tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6")
 -        elif self.platform == "Darwin":
--            base_path = os.path.dirname(
--                os.path.dirname(os.path.dirname(self.get_resource_path("")))
--            )
--            tor_path = os.path.join(base_path, "Resources", "Tor", "tor")
--            tor_geo_ip_file_path = os.path.join(base_path, "Resources", "Tor", "geoip")
--            tor_geo_ipv6_file_path = os.path.join(
--                base_path, "Resources", "Tor", "geoip6"
--            )
--            obfs4proxy_file_path = os.path.join(
--                base_path, "Resources", "Tor", "obfs4proxy"
--            )
+-            tor_path = shutil.which("tor")
+-            if not tor_path:
+-                raise CannotFindTor()
+-            obfs4proxy_file_path = shutil.which("obfs4proxy")
+-            prefix = os.path.dirname(os.path.dirname(tor_path))
+-            tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
+-            tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
 -        elif self.platform == "BSD":
 -            tor_path = "/usr/local/bin/tor"
 -            tor_geo_ip_file_path = "/usr/local/share/tor/geoip"
@@ -72,63 +35,6 @@ index 3373462..7fd245b 100644
 +        tor_geo_ip_file_path = "@geoip@/share/tor/geoip"
 +        tor_geo_ipv6_file_path = "@geoip@/share/tor/geoip6"
 +        obfs4proxy_file_path = "@obfs4@/bin/obfs4proxy"
-
+ 
          return (
              tor_path,
-diff --git a/setup.py b/setup.py
-index 9af72fc..53ca47b 100644
---- a/setup.py
-+++ b/setup.py
-@@ -70,41 +70,41 @@ classifiers = [
- ]
- data_files = [
-     (
--        os.path.join(sys.prefix, "share/applications"),
-+        "share/applications",
-         ["install/org.onionshare.OnionShare.desktop"],
-     ),
-     (
--        os.path.join(sys.prefix, "share/icons/hicolor/scalable/apps"),
-+        "share/icons/hicolor/scalable/apps",
-         ["install/org.onionshare.OnionShare.svg"],
-     ),
-     (
--        os.path.join(sys.prefix, "share/metainfo"),
-+        "share/metainfo",
-         ["install/org.onionshare.OnionShare.appdata.xml"],
-     ),
--    (os.path.join(sys.prefix, "share/onionshare"), file_list("share")),
--    (os.path.join(sys.prefix, "share/onionshare/images"), file_list("share/images")),
--    (os.path.join(sys.prefix, "share/onionshare/locale"), file_list("share/locale")),
-+    ( "share/onionshare", file_list("share")),
-+    ( "share/onionshare/images", file_list("share/images")),
-+    ( "share/onionshare/locale", file_list("share/locale")),
-     (
--        os.path.join(sys.prefix, "share/onionshare/templates"),
-+        "share/onionshare/templates",
-         file_list("share/templates"),
-     ),
-     (
--        os.path.join(sys.prefix, "share/onionshare/static/css"),
-+        "share/onionshare/static/css",
-         file_list("share/static/css"),
-     ),
-     (
--        os.path.join(sys.prefix, "share/onionshare/static/img"),
-+        "share/onionshare/static/img",
-         file_list("share/static/img"),
-     ),
-     (
--        os.path.join(sys.prefix, "share/onionshare/static/js"),
-+        "share/onionshare/static/js",
-         file_list("share/static/js"),
-     ),
- ]
- if not platform.system().endswith("BSD") and platform.system() != "DragonFly":
-     data_files.append(
-         (
--            "/usr/share/nautilus-python/extensions/",
-+            "share/nautilus-python/extensions/",
-             ["install/scripts/onionshare-nautilus.py"],
-         )
-     )
diff --git a/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix b/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix
index 4587da48a4a0..2bd3cd739e66 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix
@@ -1,5 +1,15 @@
-{ lib, fetchurl, intltool, libtorrent-rasterbar, pythonPackages
-, gtk3, glib, gobject-introspection, librsvg, wrapGAppsHook }:
+{ lib
+, fetchurl
+, fetchpatch
+, intltool
+, libtorrent-rasterbar
+, pythonPackages
+, gtk3
+, glib
+, gobject-introspection
+, librsvg
+, wrapGAppsHook
+}:
 
 pythonPackages.buildPythonPackage rec {
   pname = "deluge";
@@ -10,28 +20,60 @@ pythonPackages.buildPythonPackage rec {
     sha256 = "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/deluge-torrent/deluge/commit/d6c96d629183e8bab2167ef56457f994017e7c85.patch";
+      sha256 = "sha256-slGMt2bgp36pjDztJUXFeZNbzdJsus0s9ARRD6IpNUw=";
+      name = "fix_ngettext_warning.patch";
+    })
+
+    (fetchpatch {
+      url = "https://github.com/deluge-torrent/deluge/commit/351664ec071daa04161577c6a1c949ed0f2c3206.patch";
+      sha256 = "sha256-ry1LFgMe9lys66xAvATcPqIa3rzBPWVnsf8FL1dXkHo=";
+      name = "fix_logging_on_py38.patch";
+    })
+  ];
+
   propagatedBuildInputs = with pythonPackages; [
-    twisted Mako chardet pyxdg pyopenssl service-identity
-    libtorrent-rasterbar.dev libtorrent-rasterbar.python setuptools
-    setproctitle pillow rencode six zope_interface
-    dbus-python pygobject3 pycairo
-    gtk3 gobject-introspection librsvg
+    twisted
+    Mako
+    chardet
+    pyxdg
+    pyopenssl
+    service-identity
+    libtorrent-rasterbar.dev
+    libtorrent-rasterbar.python
+    setuptools
+    setproctitle
+    pillow
+    rencode
+    six
+    zope_interface
+    dbus-python
+    pygobject3
+    pycairo
+    gtk3
+    gobject-introspection
+    librsvg
   ];
 
   nativeBuildInputs = [ intltool wrapGAppsHook glib ];
 
   checkInputs = with pythonPackages; [
-    pytest /* pytest-twisted */ pytestcov mock
-    mccabe pylint
+    pytestCheckHook
+    pytest-twisted
+    pytest-cov
+    mock
+    mccabe
+    pylint
   ];
 
   doCheck = false; # until pytest-twisted is packaged
 
   postInstall = ''
-     mkdir -p $out/share/applications
-     cp -R deluge/ui/data/pixmaps $out/share/
-     cp -R deluge/ui/data/icons $out/share/
-     cp deluge/ui/data/share/applications/deluge.desktop $out/share/applications
+    mkdir -p $out/share
+    cp -R deluge/ui/data/{icons,pixmaps} $out/share/
+    install -Dm444 -t $out/share/applications deluge/ui/data/share/applications/deluge.desktop
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix b/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
index c7a05f37ca80..f86eefe668f9 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
@@ -1,59 +1,48 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, qt4, boost, bzip2, libX11
-, fetchpatch, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext }:
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, bzip2, libX11
+, mkDerivation, qtbase, qttools, qtmultimedia, qtscript
+, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext, perl }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "eiskaltdcpp";
-  version = "2.2.10";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "eiskaltdcpp";
     repo = "eiskaltdcpp";
     rev = "v${version}";
-    sha256 = "1mqz0g69njmlghcra3izarjxbxi1jrhiwn4ww94b8jv8xb9cv682";
+    sha256 = "sha256-JmAopXFS6MkxW0wDQ1bC/ibRmWgOpzU0971hcqAehLU=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ qt4 boost bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext ]
+  buildInputs = [ qtbase qttools qtmultimedia qtscript bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext
+    (perl.withPackages (p: with p; [
+      GetoptLong
+      TermShellUI
+    ])) ]
     ++ lib.optional stdenv.isDarwin libiconv;
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/3b7b56bd7060b426b1f1bfded392ae6853644e2e.patch";
-      sha256 = "1rqjdsvirn3ks9w9qn893fb73mz84xm04wl13fvsvj8p42i5cjas";
-    })
-    (fetchpatch {
-      url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/bb9eb364a943fe2a67b3ea52ec6a3f9e911f07dc.patch";
-      sha256 = "1hjhf9a9j4z8v24g5qh5mcg3n0540lbn85y7kvxsh3khc5v3cywx";
-    })
-    (fetchpatch {
-      url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/ef4426f1f9a8255e335b0862234e6cc28befef5e.patch";
-      sha256 = "13j018c499n4b5as2n39ws64yj0cf4fskxbqab309vmnjkirxv6x";
-    })
-    (fetchpatch {
-      url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/a9c136c8707280d0eeb66be6b289d9718287c55c.patch";
-      sha256 = "0w8v4mbrzk7pmzc475ff96mzzwlh8a0p62kk7p829m5yqdwj4sc9";
-    })
-    (fetchpatch {
-      url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/3b9c502ff5c98856d4f8fdb7ed3c6ef34448bfb7.patch";
-      sha256 = "0fjwaq0wd9a164k5ysdjy89hx0ixnxc6q7cvyn1ba28snm0pgxb8";
-    })
-  ];
-
   cmakeFlags = [
-    "-DUSE_ASPELL=ON"
-    "-DUSE_QT_QML=ON"
+    "-DDBUS_NOTIFY=ON"
     "-DFREE_SPACE_BAR_C=ON"
+    "-DLUA_SCRIPT=ON"
+    "-DPERL_REGEX=ON"
+    "-DUSE_ASPELL=ON"
+    "-DUSE_CLI_JSONRPC=ON"
     "-DUSE_MINIUPNP=ON"
-    "-DLOCAL_MINIUPNP=ON"
-    "-DDBUS_NOTIFY=ON"
     "-DUSE_JS=ON"
-    "-DPERL_REGEX=ON"
-    "-DUSE_CLI_XMLRPC=ON"
-    "-DWITH_SOUNDS=ON"
-    "-DLUA_SCRIPT=ON"
     "-DWITH_LUASCRIPTS=ON"
+    "-DWITH_SOUNDS=ON"
   ];
 
+  postInstall = ''
+    ln -s $out/bin/$pname-qt $out/bin/$pname
+  '';
+
+  preFixup = ''
+    substituteInPlace $out/bin/eiskaltdcpp-cli-jsonrpc \
+      --replace "/usr/local" "$out"
+  '';
+
   meta = with lib; {
     description = "A cross-platform program that uses the Direct Connect and ADC protocols";
     homepage = "https://github.com/eiskaltdcpp/eiskaltdcpp";
diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
index b4efd89441ee..af290fc1cc5f 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnunet";
-  version = "0.13.2";
+  version = "0.14.0";
 
   src = fetchurl {
     url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
-    sha256 = "0b4a6bxwhpmj274d281vhny7i5rwydrdmab76xk6ji8vf0p705dn";
+    sha256 = "sha256-2u9gO9Mu0dM1yixcaqOnZcDfGcp69dc5CH5tkl6vRas=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix
index 4090814b3da8..2532671bc25e 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl
-, gnome3
+, glade
 , gnunet
 , gnutls
 , gtk3
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gnome3.glade
+    glade
     gnunet
     gnutls
     gtk3
@@ -39,5 +39,7 @@ stdenv.mkDerivation rec {
   meta = gnunet.meta // {
     description = "GNUnet GTK User Interface";
     homepage = "https://git.gnunet.org/gnunet-gtk.git";
+    # configure: error: compiling gnunet-gtk requires GNUnet core headers
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix b/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix
index 85a5217ff69c..a39b4aab8371 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     homepage = "http://retroshare.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.domenkozar ];
+    maintainers = [ ];
     broken = true; # broken by libupnp: 1.6.21 -> 1.8.3 (#41684)
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
index 3ceeb4b002e4..d80165c44056 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tixati";
-  version = "2.74";
+  version = "2.81";
 
   src = fetchurl {
     url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
-    sha256 = "1slsrqv97hnj1vxx3hw32dhqckbr05w622samjbrimh4dv8yrd29";
+    sha256 = "sha256-qwKxlmE59V+rXtuYWBMwD1O7OO4gb36lN8syFyQ6uLc=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix
index 809e4528df9a..ceccf44819fc 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix
@@ -12,9 +12,9 @@ stdenv.mkDerivation rec {
     sha256 = "1dyx778756zhvz5sxgdvy49p2c0x44w4nmcfd90wqrmgfknncnf5";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
-    unzip fpc lazarus stdenv.cc
+    fpc lazarus stdenv.cc
     libX11 glib gtk2 gdk-pixbuf pango atk cairo openssl
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
index 8cc674b1ea79..7e8b6b671cd2 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
@@ -12,7 +12,7 @@
 , pcre
   # Build options
 , enableGTK3 ? false
-, gnome3
+, gtk3
 , xorg
 , wrapGAppsHook
 , enableQt ? false
@@ -65,7 +65,7 @@ in stdenv.mkDerivation {
     pcre
   ]
   ++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ]
-  ++ lib.optionals enableGTK3 [ gnome3.gtk xorg.libpthreadstubs ]
+  ++ lib.optionals enableGTK3 [ gtk3 xorg.libpthreadstubs ]
   ++ lib.optionals enableSystemd [ systemd ]
   ++ lib.optionals stdenv.isLinux [ inotify-tools ]
   ;
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
index 36b7451e441b..3aa5b4a8da82 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgs, python3Packages, makeWrapper
-, enablePlayer ? true, libvlc ? null, qt5, lib }:
+{ stdenv, fetchurl, python3Packages, makeWrapper
+, enablePlayer ? true, libvlc, qt5, lib }:
 
 stdenv.mkDerivation rec {
   pname = "tribler";
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol";
     license = licenses.lgpl21;
     platforms = platforms.linux;
+    broken = true; # 2021-03-17 see https://github.com/NixOS/nixpkgs/issues/93053
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix b/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix
index 557914439a9c..fe8743ee1cd1 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "07w6ipyiy8hi88d6yxbbf3vkv26mj7dcz9yr8141hb2ig03v0h0p";
   };
 
-  buildInputs = [ makeWrapper jdk ant ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jdk ant ];
 
   buildPhase = "ant";
 
diff --git a/nixpkgs/pkgs/applications/networking/pcloud/default.nix b/nixpkgs/pkgs/applications/networking/pcloud/default.nix
index 4229fef4fe6f..312734dba147 100644
--- a/nixpkgs/pkgs/applications/networking/pcloud/default.nix
+++ b/nixpkgs/pkgs/applications/networking/pcloud/default.nix
@@ -21,18 +21,19 @@
   # Runtime dependencies;
   # A few additional ones (e.g. Node) are already shipped together with the
   # AppImage, so we don't have to duplicate them here.
-  alsaLib, dbus-glib, fuse, gnome3, libdbusmenu-gtk2, udev, nss
+  alsaLib, dbus-glib, fuse, gnome3, gtk3, libdbusmenu-gtk2, udev, nss
 }:
 
 let
   pname = "pcloud";
-  version = "1.8.9";
+  version = "1.9.1";
+  code = "XZXB3fXZgXyQbnTkTm5XOJH9i6NsKX9lL21V";
   name = "${pname}-${version}";
 
   # Archive link's code thanks to: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pcloud-drive
   src = fetchzip {
-    url = "https://api.pcloud.com/getpubzip?code=XZjfKzXZ6h3uGRFId48VRNHHkuqajhRvMlPV&filename=${name}.zip";
-    hash = "sha256:1bwdwfwgy3wwzlggi8qhf5q2bq2kqiqi3mgvsr9w0mxyaxxv13r8";
+    url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${name}.zip";
+    hash = "sha256-vUrz4thp9tcU9T8d52DJUAbt6Jnv+E3pbUytzMR8d/E=";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -56,7 +57,7 @@ in stdenv.mkDerivation {
     alsaLib
     dbus-glib
     fuse
-    gnome3.gtk
+    gtk3
     libdbusmenu-gtk2
     nss
     udev
@@ -92,7 +93,7 @@ in stdenv.mkDerivation {
 
     # This is required for the file picker dialog - otherwise pcloud just
     # crashes
-    export XDG_DATA_DIRS="${gnome3.gsettings-desktop-schemas}/share/gsettings-schemas/${gnome3.gsettings-desktop-schemas.name}:${gnome3.gtk}/share/gsettings-schemas/${gnome3.gtk.name}:$XDG_DATA_DIRS"
+    export XDG_DATA_DIRS="${gnome3.gsettings-desktop-schemas}/share/gsettings-schemas/${gnome3.gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
 
     exec "$out/app/pcloud"
     EOF
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix b/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
new file mode 100644
index 000000000000..4ef89e261635
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
@@ -0,0 +1,111 @@
+{ lib, stdenv, fetchFromGitHub, mkYarnPackage, writeText, python3Packages }:
+
+let
+  version = "0.2.3";
+  src = fetchFromGitHub {
+    owner = "ngoduykhanh";
+    repo = "PowerDNS-Admin";
+    rev = "v${version}";
+    sha256 = "16faz57d77mxkflkvwyi8gb9wvnq2vhw79b84v1fmqvxri1yaphw";
+  };
+
+  pythonDeps = with python3Packages; [
+    flask flask_assets flask_login flask_sqlalchemy flask_migrate flask-seasurf flask_mail flask-sslify
+    mysqlclient sqlalchemy
+    configobj bcrypt requests ldap pyotp qrcode dnspython_1
+    gunicorn python3-saml pyopenssl pytz cssmin jsmin authlib bravado-core
+    lima pytimeparse pyyaml
+  ];
+
+  assets = mkYarnPackage {
+    inherit src version;
+    packageJSON = ./package.json;
+    yarnNix = ./yarndeps.nix;
+
+    nativeBuildInputs = pythonDeps;
+    patchPhase = ''
+      sed -i -r -e "s|'cssmin',\s?'cssrewrite'|'cssmin'|g" powerdnsadmin/assets.py
+    '';
+    buildPhase = ''
+      # The build process expects the directory to be writable
+      # with node_modules at a specific path
+      # https://github.com/ngoduykhanh/PowerDNS-Admin/blob/master/.yarnrc
+
+      approot=deps/powerdns-admin-assets
+
+      ln -s $node_modules $approot/powerdnsadmin/static/node_modules
+      FLASK_APP=$approot/powerdnsadmin/__init__.py flask assets build
+    '';
+    installPhase = ''
+      # https://github.com/ngoduykhanh/PowerDNS-Admin/blob/54b257768f600c5548a1c7e50eac49c40df49f92/docker/Dockerfile#L43
+      mkdir $out
+      cp -r $approot/powerdnsadmin/static/{generated,assets,img} $out
+      find $node_modules/icheck/skins/square -name '*.png' -exec cp {} $out/generated \;
+
+      mkdir $out/fonts
+      cp $node_modules/ionicons/dist/fonts/* $out/fonts
+      cp $node_modules/bootstrap/dist/fonts/* $out/fonts
+      cp $node_modules/font-awesome/fonts/* $out/fonts
+    '';
+    distPhase = "true";
+  };
+
+  assetsPy = writeText "assets.py" ''
+    from flask_assets import Environment
+    assets = Environment()
+    assets.register('js_login', 'generated/login.js')
+    assets.register('js_validation', 'generated/validation.js')
+    assets.register('css_login', 'generated/login.css')
+    assets.register('js_main', 'generated/main.js')
+    assets.register('css_main', 'generated/main.css')
+  '';
+in stdenv.mkDerivation rec {
+  pname = "powerdns-admin";
+
+  inherit src version;
+
+  nativeBuildInputs = [ python3Packages.wrapPython ];
+
+  pythonPath = pythonDeps;
+
+  gunicornScript = ''
+    #!/bin/sh
+    if [ ! -z $CONFIG ]; then
+      exec python -m gunicorn.app.wsgiapp "powerdnsadmin:create_app(config='$CONFIG')" "$@"
+    fi
+
+    exec python -m gunicorn.app.wsgiapp "powerdnsadmin:create_app()" "$@"
+  '';
+
+  postPatch = ''
+    rm -r powerdnsadmin/static powerdnsadmin/assets.py
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    # Nasty hack: call wrapPythonPrograms to set program_PYTHONPATH (see tribler)
+    wrapPythonPrograms
+
+    mkdir -p $out/share $out/bin
+    cp -r powerdnsadmin $out/share/powerdnsadmin
+
+    ln -s ${assets} $out/share/powerdnsadmin/static
+    ln -s ${assetsPy} $out/share/powerdnsadmin/assets.py
+
+    echo "$gunicornScript" > $out/bin/powerdns-admin
+    chmod +x $out/bin/powerdns-admin
+    wrapProgram $out/bin/powerdns-admin \
+      --set PATH ${python3Packages.python}/bin \
+      --set PYTHONPATH $out/share:$program_PYTHONPATH
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A PowerDNS web interface with advanced features";
+    homepage = "https://github.com/ngoduykhanh/PowerDNS-Admin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/package.json b/nixpkgs/pkgs/applications/networking/powerdns-admin/package.json
new file mode 100644
index 000000000000..cb21306308cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/package.json
@@ -0,0 +1,16 @@
+{
+  "dependencies": {
+    "admin-lte": "2.4.9",
+    "bootstrap": "^3.4.1",
+    "bootstrap-validator": "^0.11.9",
+    "datatables.net-plugins": "^1.10.19",
+    "icheck": "^1.0.2",
+    "jquery-slimscroll": "^1.3.8",
+    "jquery-ui-dist": "^1.12.1",
+    "jquery.quicksearch": "^2.4.0",
+    "jtimeout": "^3.1.0",
+    "multiselect": "^0.9.12"
+  },
+  "name": "powerdns-admin-assets",
+  "version": "0.2.3"
+}
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/update-asset-deps.sh b/nixpkgs/pkgs/applications/networking/powerdns-admin/update-asset-deps.sh
new file mode 100755
index 000000000000..86dcb8cbf659
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/update-asset-deps.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../.. -i bash -p wget yarn2nix-moretea.yarn2nix jq
+
+# This script is based upon:
+# pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh
+
+set -euo pipefail
+
+if [[ $# -ne 1 || $1 == -* ]]; then
+    echo "Regenerates the Yarn dependency lock files for the powerdns-admin package."
+    echo "Usage: $0 <git release version>"
+    exit 1
+fi
+
+WEB_SRC="https://raw.githubusercontent.com/ngoduykhanh/PowerDNS-Admin/v$1"
+
+wget "$WEB_SRC/package.json" -O - | jq ".name = \"powerdns-admin-assets\" | .version = \"$1\"" > package.json
+wget "$WEB_SRC/yarn.lock" -O yarn.lock
+yarn2nix --lockfile=yarn.lock > yarndeps.nix
+rm yarn.lock
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix b/nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix
new file mode 100644
index 000000000000..ce65d28c0087
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix
@@ -0,0 +1,1453 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+    {
+      name = "JSONStream___JSONStream_1.3.3.tgz";
+      path = fetchurl {
+        name = "JSONStream___JSONStream_1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.3.tgz";
+        sha1 = "27b4b8fbbfeab4e71bcf551e7f27be8d952239bf";
+      };
+    }
+    {
+      name = "acorn_node___acorn_node_1.3.0.tgz";
+      path = fetchurl {
+        name = "acorn_node___acorn_node_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.3.0.tgz";
+        sha1 = "5f86d73346743810ef1269b901dbcbded020861b";
+      };
+    }
+    {
+      name = "acorn___acorn_4.0.13.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_4.0.13.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz";
+        sha1 = "105495ae5361d697bd195c825192e1ad7f253787";
+      };
+    }
+    {
+      name = "acorn___acorn_5.6.2.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_5.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-5.6.2.tgz";
+        sha1 = "b1da1d7be2ac1b4a327fb9eab851702c5045b4e7";
+      };
+    }
+    {
+      name = "admin_lte___admin_lte_2.4.9.tgz";
+      path = fetchurl {
+        name = "admin_lte___admin_lte_2.4.9.tgz";
+        url  = "https://registry.yarnpkg.com/admin-lte/-/admin-lte-2.4.9.tgz";
+        sha1 = "effc04dbb587ccb7d674d4cf663cc141f925ed73";
+      };
+    }
+    {
+      name = "almond___almond_0.3.3.tgz";
+      path = fetchurl {
+        name = "almond___almond_0.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/almond/-/almond-0.3.3.tgz";
+        sha1 = "a0e7c95ac7624d6417b4494b1e68bff693168a20";
+      };
+    }
+    {
+      name = "array_filter___array_filter_0.0.1.tgz";
+      path = fetchurl {
+        name = "array_filter___array_filter_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz";
+        sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec";
+      };
+    }
+    {
+      name = "array_map___array_map_0.0.0.tgz";
+      path = fetchurl {
+        name = "array_map___array_map_0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz";
+        sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662";
+      };
+    }
+    {
+      name = "array_reduce___array_reduce_0.0.0.tgz";
+      path = fetchurl {
+        name = "array_reduce___array_reduce_0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz";
+        sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b";
+      };
+    }
+    {
+      name = "asn1.js___asn1.js_4.10.1.tgz";
+      path = fetchurl {
+        name = "asn1.js___asn1.js_4.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz";
+        sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0";
+      };
+    }
+    {
+      name = "assert___assert_1.4.1.tgz";
+      path = fetchurl {
+        name = "assert___assert_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz";
+        sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91";
+      };
+    }
+    {
+      name = "astw___astw_2.2.0.tgz";
+      path = fetchurl {
+        name = "astw___astw_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/astw/-/astw-2.2.0.tgz";
+        sha1 = "7bd41784d32493987aeb239b6b4e1c57a873b917";
+      };
+    }
+    {
+      name = "balanced_match___balanced_match_1.0.0.tgz";
+      path = fetchurl {
+        name = "balanced_match___balanced_match_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    }
+    {
+      name = "base64_js___base64_js_1.3.0.tgz";
+      path = fetchurl {
+        name = "base64_js___base64_js_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz";
+        sha1 = "cab1e6118f051095e58b5281aea8c1cd22bfc0e3";
+      };
+    }
+    {
+      name = "bn.js___bn.js_4.11.9.tgz";
+      path = fetchurl {
+        name = "bn.js___bn.js_4.11.9.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
+        sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
+      };
+    }
+    {
+      name = "bootstrap_colorpicker___bootstrap_colorpicker_2.5.3.tgz";
+      path = fetchurl {
+        name = "bootstrap_colorpicker___bootstrap_colorpicker_2.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-2.5.3.tgz";
+        sha1 = "b50aff8590fbaa6b5aa63a5624e4213f1659a49d";
+      };
+    }
+    {
+      name = "bootstrap_datepicker___bootstrap_datepicker_1.8.0.tgz";
+      path = fetchurl {
+        name = "bootstrap_datepicker___bootstrap_datepicker_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.8.0.tgz";
+        sha1 = "c63513931e6f09f16ae9f11b62f32d950df3958e";
+      };
+    }
+    {
+      name = "bootstrap_daterangepicker___bootstrap_daterangepicker_2.1.30.tgz";
+      path = fetchurl {
+        name = "bootstrap_daterangepicker___bootstrap_daterangepicker_2.1.30.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-daterangepicker/-/bootstrap-daterangepicker-2.1.30.tgz";
+        sha1 = "f893dbfff5a4d7dfaab75460e8ea6969bb89689a";
+      };
+    }
+    {
+      name = "bootstrap_slider___bootstrap_slider_9.10.0.tgz";
+      path = fetchurl {
+        name = "bootstrap_slider___bootstrap_slider_9.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-9.10.0.tgz";
+        sha1 = "1103d6bc00cfbfa8cfc9a2599ab518c55643da3f";
+      };
+    }
+    {
+      name = "bootstrap_timepicker___bootstrap_timepicker_0.5.2.tgz";
+      path = fetchurl {
+        name = "bootstrap_timepicker___bootstrap_timepicker_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-timepicker/-/bootstrap-timepicker-0.5.2.tgz";
+        sha1 = "10ed9f2a2f0b8ccaefcde0fcf6a0738b919a3835";
+      };
+    }
+    {
+      name = "bootstrap_validator___bootstrap_validator_0.11.9.tgz";
+      path = fetchurl {
+        name = "bootstrap_validator___bootstrap_validator_0.11.9.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-validator/-/bootstrap-validator-0.11.9.tgz";
+        sha1 = "fb7058eef53623e78f5aa7967026f98f875a9404";
+      };
+    }
+    {
+      name = "bootstrap___bootstrap_3.4.1.tgz";
+      path = fetchurl {
+        name = "bootstrap___bootstrap_3.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz";
+        sha1 = "c3a347d419e289ad11f4033e3c4132b87c081d72";
+      };
+    }
+    {
+      name = "brace_expansion___brace_expansion_1.1.11.tgz";
+      path = fetchurl {
+        name = "brace_expansion___brace_expansion_1.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+      };
+    }
+    {
+      name = "brorand___brorand_1.1.0.tgz";
+      path = fetchurl {
+        name = "brorand___brorand_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
+        sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+      };
+    }
+    {
+      name = "browser_pack___browser_pack_6.1.0.tgz";
+      path = fetchurl {
+        name = "browser_pack___browser_pack_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz";
+        sha1 = "c34ba10d0b9ce162b5af227c7131c92c2ecd5774";
+      };
+    }
+    {
+      name = "browser_resolve___browser_resolve_1.11.2.tgz";
+      path = fetchurl {
+        name = "browser_resolve___browser_resolve_1.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz";
+        sha1 = "8ff09b0a2c421718a1051c260b32e48f442938ce";
+      };
+    }
+    {
+      name = "browserify_aes___browserify_aes_1.2.0.tgz";
+      path = fetchurl {
+        name = "browserify_aes___browserify_aes_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz";
+        sha1 = "326734642f403dabc3003209853bb70ad428ef48";
+      };
+    }
+    {
+      name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
+      path = fetchurl {
+        name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
+        sha1 = "8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0";
+      };
+    }
+    {
+      name = "browserify_des___browserify_des_1.0.1.tgz";
+      path = fetchurl {
+        name = "browserify_des___browserify_des_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.1.tgz";
+        sha1 = "3343124db6d7ad53e26a8826318712bdc8450f9c";
+      };
+    }
+    {
+      name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+      path = fetchurl {
+        name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
+        sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+      };
+    }
+    {
+      name = "browserify_sign___browserify_sign_4.0.4.tgz";
+      path = fetchurl {
+        name = "browserify_sign___browserify_sign_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz";
+        sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+      };
+    }
+    {
+      name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+      path = fetchurl {
+        name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
+        sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f";
+      };
+    }
+    {
+      name = "browserify___browserify_16.2.2.tgz";
+      path = fetchurl {
+        name = "browserify___browserify_16.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/browserify/-/browserify-16.2.2.tgz";
+        sha1 = "4b1f66ba0e54fa39dbc5aa4be9629142143d91b0";
+      };
+    }
+    {
+      name = "buffer_from___buffer_from_1.1.0.tgz";
+      path = fetchurl {
+        name = "buffer_from___buffer_from_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz";
+        sha1 = "87fcaa3a298358e0ade6e442cfce840740d1ad04";
+      };
+    }
+    {
+      name = "buffer_xor___buffer_xor_1.0.3.tgz";
+      path = fetchurl {
+        name = "buffer_xor___buffer_xor_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz";
+        sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+      };
+    }
+    {
+      name = "buffer___buffer_5.1.0.tgz";
+      path = fetchurl {
+        name = "buffer___buffer_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.1.0.tgz";
+        sha1 = "c913e43678c7cb7c8bd16afbcddb6c5505e8f9fe";
+      };
+    }
+    {
+      name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+      path = fetchurl {
+        name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
+        sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
+      };
+    }
+    {
+      name = "cached_path_relative___cached_path_relative_1.0.2.tgz";
+      path = fetchurl {
+        name = "cached_path_relative___cached_path_relative_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz";
+        sha1 = "a13df4196d26776220cc3356eb147a52dba2c6db";
+      };
+    }
+    {
+      name = "charm___charm_0.1.2.tgz";
+      path = fetchurl {
+        name = "charm___charm_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz";
+        sha1 = "06c21eed1a1b06aeb67553cdc53e23274bac2296";
+      };
+    }
+    {
+      name = "chart.js___chart.js_1.0.2.tgz";
+      path = fetchurl {
+        name = "chart.js___chart.js_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/chart.js/-/chart.js-1.0.2.tgz";
+        sha1 = "ad57d2229cfd8ccf5955147e8121b4911e69dfe7";
+      };
+    }
+    {
+      name = "cipher_base___cipher_base_1.0.4.tgz";
+      path = fetchurl {
+        name = "cipher_base___cipher_base_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz";
+        sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de";
+      };
+    }
+    {
+      name = "ckeditor___ckeditor_4.11.3.tgz";
+      path = fetchurl {
+        name = "ckeditor___ckeditor_4.11.3.tgz";
+        url  = "https://registry.yarnpkg.com/ckeditor/-/ckeditor-4.11.3.tgz";
+        sha1 = "91f66d7ddb5bff3874514fe539779686874ed655";
+      };
+    }
+    {
+      name = "classie___classie_1.0.0.tgz";
+      path = fetchurl {
+        name = "classie___classie_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/classie/-/classie-1.0.0.tgz";
+        sha1 = "fc9b29b47e64e374a2062fb624d05a61cd703ab2";
+      };
+    }
+    {
+      name = "combine_source_map___combine_source_map_0.8.0.tgz";
+      path = fetchurl {
+        name = "combine_source_map___combine_source_map_0.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz";
+        sha1 = "a58d0df042c186fcf822a8e8015f5450d2d79a8b";
+      };
+    }
+    {
+      name = "concat_map___concat_map_0.0.1.tgz";
+      path = fetchurl {
+        name = "concat_map___concat_map_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    }
+    {
+      name = "concat_stream___concat_stream_1.6.2.tgz";
+      path = fetchurl {
+        name = "concat_stream___concat_stream_1.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+      };
+    }
+    {
+      name = "console_browserify___console_browserify_1.1.0.tgz";
+      path = fetchurl {
+        name = "console_browserify___console_browserify_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz";
+        sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10";
+      };
+    }
+    {
+      name = "constants_browserify___constants_browserify_1.0.0.tgz";
+      path = fetchurl {
+        name = "constants_browserify___constants_browserify_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz";
+        sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+      };
+    }
+    {
+      name = "convert_source_map___convert_source_map_1.1.3.tgz";
+      path = fetchurl {
+        name = "convert_source_map___convert_source_map_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz";
+        sha1 = "4829c877e9fe49b3161f3bf3673888e204699860";
+      };
+    }
+    {
+      name = "core_util_is___core_util_is_1.0.2.tgz";
+      path = fetchurl {
+        name = "core_util_is___core_util_is_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    }
+    {
+      name = "create_ecdh___create_ecdh_4.0.3.tgz";
+      path = fetchurl {
+        name = "create_ecdh___create_ecdh_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz";
+        sha1 = "c9111b6f33045c4697f144787f9254cdc77c45ff";
+      };
+    }
+    {
+      name = "create_hash___create_hash_1.2.0.tgz";
+      path = fetchurl {
+        name = "create_hash___create_hash_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz";
+        sha1 = "889078af11a63756bcfb59bd221996be3a9ef196";
+      };
+    }
+    {
+      name = "create_hmac___create_hmac_1.1.7.tgz";
+      path = fetchurl {
+        name = "create_hmac___create_hmac_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz";
+        sha1 = "69170c78b3ab957147b2b8b04572e47ead2243ff";
+      };
+    }
+    {
+      name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+      path = fetchurl {
+        name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
+        sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec";
+      };
+    }
+    {
+      name = "datatables.net_bs___datatables.net_bs_1.10.19.tgz";
+      path = fetchurl {
+        name = "datatables.net_bs___datatables.net_bs_1.10.19.tgz";
+        url  = "https://registry.yarnpkg.com/datatables.net-bs/-/datatables.net-bs-1.10.19.tgz";
+        sha1 = "08763b4e4d0cef1a427d019dc15e717c7ed67a4d";
+      };
+    }
+    {
+      name = "datatables.net_plugins___datatables.net_plugins_1.10.20.tgz";
+      path = fetchurl {
+        name = "datatables.net_plugins___datatables.net_plugins_1.10.20.tgz";
+        url  = "https://registry.yarnpkg.com/datatables.net-plugins/-/datatables.net-plugins-1.10.20.tgz";
+        sha1 = "c89f6bed3fa7e6605cbeaa35d60f223659e84c8c";
+      };
+    }
+    {
+      name = "datatables.net___datatables.net_1.10.19.tgz";
+      path = fetchurl {
+        name = "datatables.net___datatables.net_1.10.19.tgz";
+        url  = "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.19.tgz";
+        sha1 = "97a1ed41c85e62d61040603481b59790a172dd1f";
+      };
+    }
+    {
+      name = "date_now___date_now_0.1.4.tgz";
+      path = fetchurl {
+        name = "date_now___date_now_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz";
+        sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
+      };
+    }
+    {
+      name = "defined___defined_1.0.0.tgz";
+      path = fetchurl {
+        name = "defined___defined_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz";
+        sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
+      };
+    }
+    {
+      name = "deps_sort___deps_sort_2.0.0.tgz";
+      path = fetchurl {
+        name = "deps_sort___deps_sort_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz";
+        sha1 = "091724902e84658260eb910748cccd1af6e21fb5";
+      };
+    }
+    {
+      name = "des.js___des.js_1.0.0.tgz";
+      path = fetchurl {
+        name = "des.js___des.js_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz";
+        sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc";
+      };
+    }
+    {
+      name = "detective___detective_5.1.0.tgz";
+      path = fetchurl {
+        name = "detective___detective_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/detective/-/detective-5.1.0.tgz";
+        sha1 = "7a20d89236d7b331ccea65832e7123b5551bb7cb";
+      };
+    }
+    {
+      name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
+      path = fetchurl {
+        name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
+        sha1 = "40e8ee98f55a2149607146921c63e1ae5f3d2875";
+      };
+    }
+    {
+      name = "domain_browser___domain_browser_1.2.0.tgz";
+      path = fetchurl {
+        name = "domain_browser___domain_browser_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz";
+        sha1 = "3d31f50191a6749dd1375a7f522e823d42e54eda";
+      };
+    }
+    {
+      name = "domhelper___domhelper_0.9.1.tgz";
+      path = fetchurl {
+        name = "domhelper___domhelper_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/domhelper/-/domhelper-0.9.1.tgz";
+        sha1 = "26554e5bac2c9e9585dca500978df5067d64bd00";
+      };
+    }
+    {
+      name = "duplexer2___duplexer2_0.1.4.tgz";
+      path = fetchurl {
+        name = "duplexer2___duplexer2_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz";
+        sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1";
+      };
+    }
+    {
+      name = "elliptic___elliptic_6.5.3.tgz";
+      path = fetchurl {
+        name = "elliptic___elliptic_6.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
+        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
+      };
+    }
+    {
+      name = "eve_raphael___eve_raphael_0.5.0.tgz";
+      path = fetchurl {
+        name = "eve_raphael___eve_raphael_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz";
+        sha1 = "17c754b792beef3fa6684d79cf5a47c63c4cda30";
+      };
+    }
+    {
+      name = "events___events_2.1.0.tgz";
+      path = fetchurl {
+        name = "events___events_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz";
+        sha1 = "2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5";
+      };
+    }
+    {
+      name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+      path = fetchurl {
+        name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
+        sha1 = "7fcbdb198dc71959432efe13842684e0525acb02";
+      };
+    }
+    {
+      name = "fastclick___fastclick_1.0.6.tgz";
+      path = fetchurl {
+        name = "fastclick___fastclick_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/fastclick/-/fastclick-1.0.6.tgz";
+        sha1 = "161625b27b1a5806405936bda9a2c1926d06be6a";
+      };
+    }
+    {
+      name = "flot___flot_0.8.3.tgz";
+      path = fetchurl {
+        name = "flot___flot_0.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/flot/-/flot-0.8.3.tgz";
+        sha1 = "6d9b93c7aa2cfb30dfa1af9c1ec4c94070b1217f";
+      };
+    }
+    {
+      name = "font_awesome___font_awesome_4.7.0.tgz";
+      path = fetchurl {
+        name = "font_awesome___font_awesome_4.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz";
+        sha1 = "8fa8cf0411a1a31afd07b06d2902bb9fc815a133";
+      };
+    }
+    {
+      name = "fs.realpath___fs.realpath_1.0.0.tgz";
+      path = fetchurl {
+        name = "fs.realpath___fs.realpath_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    }
+    {
+      name = "fullcalendar___fullcalendar_3.10.0.tgz";
+      path = fetchurl {
+        name = "fullcalendar___fullcalendar_3.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/fullcalendar/-/fullcalendar-3.10.0.tgz";
+        sha1 = "cc5e87d518fd6550e142816a31dd191664847919";
+      };
+    }
+    {
+      name = "function_bind___function_bind_1.1.1.tgz";
+      path = fetchurl {
+        name = "function_bind___function_bind_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+        sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+      };
+    }
+    {
+      name = "glob___glob_7.1.2.tgz";
+      path = fetchurl {
+        name = "glob___glob_7.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz";
+        sha1 = "c19c9df9a028702d678612384a6552404c636d15";
+      };
+    }
+    {
+      name = "has___has_1.0.3.tgz";
+      path = fetchurl {
+        name = "has___has_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+      };
+    }
+    {
+      name = "hash_base___hash_base_3.0.4.tgz";
+      path = fetchurl {
+        name = "hash_base___hash_base_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz";
+        sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+      };
+    }
+    {
+      name = "hash.js___hash.js_1.1.7.tgz";
+      path = fetchurl {
+        name = "hash.js___hash.js_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz";
+        sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42";
+      };
+    }
+    {
+      name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+      path = fetchurl {
+        name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
+        sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+      };
+    }
+    {
+      name = "htmlescape___htmlescape_1.1.1.tgz";
+      path = fetchurl {
+        name = "htmlescape___htmlescape_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz";
+        sha1 = "3a03edc2214bca3b66424a3e7959349509cb0351";
+      };
+    }
+    {
+      name = "https_browserify___https_browserify_1.0.0.tgz";
+      path = fetchurl {
+        name = "https_browserify___https_browserify_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz";
+        sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
+      };
+    }
+    {
+      name = "icheck___icheck_1.0.2.tgz";
+      path = fetchurl {
+        name = "icheck___icheck_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/icheck/-/icheck-1.0.2.tgz";
+        sha1 = "06d08da3d47ae448c153b2639b86e9ad7fdf7128";
+      };
+    }
+    {
+      name = "ieee754___ieee754_1.1.12.tgz";
+      path = fetchurl {
+        name = "ieee754___ieee754_1.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz";
+        sha1 = "50bf24e5b9c8bb98af4964c941cdb0918da7b60b";
+      };
+    }
+    {
+      name = "inflight___inflight_1.0.6.tgz";
+      path = fetchurl {
+        name = "inflight___inflight_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.4.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.1.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
+        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.3.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    }
+    {
+      name = "inline_source_map___inline_source_map_0.6.2.tgz";
+      path = fetchurl {
+        name = "inline_source_map___inline_source_map_0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz";
+        sha1 = "f9393471c18a79d1724f863fa38b586370ade2a5";
+      };
+    }
+    {
+      name = "inputmask___inputmask_3.3.11.tgz";
+      path = fetchurl {
+        name = "inputmask___inputmask_3.3.11.tgz";
+        url  = "https://registry.yarnpkg.com/inputmask/-/inputmask-3.3.11.tgz";
+        sha1 = "1421c94ae28c3dcd1b4d26337b508bb34998e2d8";
+      };
+    }
+    {
+      name = "insert_module_globals___insert_module_globals_7.1.0.tgz";
+      path = fetchurl {
+        name = "insert_module_globals___insert_module_globals_7.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.1.0.tgz";
+        sha1 = "dbb3cea71d3a43d5a07ef0310fe5f078aa4dbf35";
+      };
+    }
+    {
+      name = "ion_rangeslider___ion_rangeslider_2.3.0.tgz";
+      path = fetchurl {
+        name = "ion_rangeslider___ion_rangeslider_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ion-rangeslider/-/ion-rangeslider-2.3.0.tgz";
+        sha1 = "7957ce2e78acfc956b8c43009373da91f743347e";
+      };
+    }
+    {
+      name = "ionicons___ionicons_3.0.0.tgz";
+      path = fetchurl {
+        name = "ionicons___ionicons_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ionicons/-/ionicons-3.0.0.tgz";
+        sha1 = "40b8daf4fd7a31150bd002160f66496e22a98c3c";
+      };
+    }
+    {
+      name = "is_buffer___is_buffer_1.1.6.tgz";
+      path = fetchurl {
+        name = "is_buffer___is_buffer_1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+        sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+      };
+    }
+    {
+      name = "isarray___isarray_2.0.4.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz";
+        sha1 = "38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7";
+      };
+    }
+    {
+      name = "isarray___isarray_1.0.0.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    }
+    {
+      name = "jquery_knob___jquery_knob_1.2.11.tgz";
+      path = fetchurl {
+        name = "jquery_knob___jquery_knob_1.2.11.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-knob/-/jquery-knob-1.2.11.tgz";
+        sha1 = "f37c39dbc1c7a6a6c12cdb2ed4f6bffb683f10d6";
+      };
+    }
+    {
+      name = "jquery_mousewheel___jquery_mousewheel_3.1.13.tgz";
+      path = fetchurl {
+        name = "jquery_mousewheel___jquery_mousewheel_3.1.13.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz";
+        sha1 = "06f0335f16e353a695e7206bf50503cb523a6ee5";
+      };
+    }
+    {
+      name = "jquery_slimscroll___jquery_slimscroll_1.3.8.tgz";
+      path = fetchurl {
+        name = "jquery_slimscroll___jquery_slimscroll_1.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-slimscroll/-/jquery-slimscroll-1.3.8.tgz";
+        sha1 = "8481c44e7a47687653908a28f7f70aed64c84e36";
+      };
+    }
+    {
+      name = "jquery_sparkline___jquery_sparkline_2.4.0.tgz";
+      path = fetchurl {
+        name = "jquery_sparkline___jquery_sparkline_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-sparkline/-/jquery-sparkline-2.4.0.tgz";
+        sha1 = "1be8b7b704dd3857152708aefb1d4a4b3a69fb33";
+      };
+    }
+    {
+      name = "jquery_ui_dist___jquery_ui_dist_1.12.1.tgz";
+      path = fetchurl {
+        name = "jquery_ui_dist___jquery_ui_dist_1.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-ui-dist/-/jquery-ui-dist-1.12.1.tgz";
+        sha1 = "5c0815d3cc6f90ff5faaf5b268a6e23b4ca904fa";
+      };
+    }
+    {
+      name = "jquery_ui___jquery_ui_1.12.1.tgz";
+      path = fetchurl {
+        name = "jquery_ui___jquery_ui_1.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz";
+        sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
+      };
+    }
+    {
+      name = "jquery.quicksearch___jquery.quicksearch_2.4.0.tgz";
+      path = fetchurl {
+        name = "jquery.quicksearch___jquery.quicksearch_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jquery.quicksearch/-/jquery.quicksearch-2.4.0.tgz";
+        sha1 = "240c9f435e936c63bf8fbba355144ffdddf9ea26";
+      };
+    }
+    {
+      name = "jquery___jquery_3.3.1.tgz";
+      path = fetchurl {
+        name = "jquery___jquery_3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz";
+        sha1 = "958ce29e81c9790f31be7792df5d4d95fc57fbca";
+      };
+    }
+    {
+      name = "json_stable_stringify___json_stable_stringify_0.0.1.tgz";
+      path = fetchurl {
+        name = "json_stable_stringify___json_stable_stringify_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz";
+        sha1 = "611c23e814db375527df851193db59dd2af27f45";
+      };
+    }
+    {
+      name = "jsonify___jsonify_0.0.0.tgz";
+      path = fetchurl {
+        name = "jsonify___jsonify_0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz";
+        sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+      };
+    }
+    {
+      name = "jsonparse___jsonparse_1.3.1.tgz";
+      path = fetchurl {
+        name = "jsonparse___jsonparse_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz";
+        sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
+      };
+    }
+    {
+      name = "jtimeout___jtimeout_3.1.0.tgz";
+      path = fetchurl {
+        name = "jtimeout___jtimeout_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/jtimeout/-/jtimeout-3.1.0.tgz";
+        sha1 = "4cd65b28eff8b9f8c61d08889a9ac3abdf5d9893";
+      };
+    }
+    {
+      name = "jvectormap___jvectormap_1.2.2.tgz";
+      path = fetchurl {
+        name = "jvectormap___jvectormap_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/jvectormap/-/jvectormap-1.2.2.tgz";
+        sha1 = "2e4408b24a60473ff106c1e7243e375ae5ca85da";
+      };
+    }
+    {
+      name = "labeled_stream_splicer___labeled_stream_splicer_2.0.1.tgz";
+      path = fetchurl {
+        name = "labeled_stream_splicer___labeled_stream_splicer_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz";
+        sha1 = "9cffa32fd99e1612fd1d86a8db962416d5292926";
+      };
+    }
+    {
+      name = "lexical_scope___lexical_scope_1.2.0.tgz";
+      path = fetchurl {
+        name = "lexical_scope___lexical_scope_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz";
+        sha1 = "fcea5edc704a4b3a8796cdca419c3a0afaf22df4";
+      };
+    }
+    {
+      name = "lodash.memoize___lodash.memoize_3.0.4.tgz";
+      path = fetchurl {
+        name = "lodash.memoize___lodash.memoize_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz";
+        sha1 = "2dcbd2c287cbc0a55cc42328bd0c736150d53e3f";
+      };
+    }
+    {
+      name = "md5.js___md5.js_1.3.4.tgz";
+      path = fetchurl {
+        name = "md5.js___md5.js_1.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz";
+        sha1 = "e9bdbde94a20a5ac18b04340fc5764d5b09d901d";
+      };
+    }
+    {
+      name = "miller_rabin___miller_rabin_4.0.1.tgz";
+      path = fetchurl {
+        name = "miller_rabin___miller_rabin_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz";
+        sha1 = "f080351c865b0dc562a8462966daa53543c78a4d";
+      };
+    }
+    {
+      name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+      path = fetchurl {
+        name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+        sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
+      };
+    }
+    {
+      name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+      path = fetchurl {
+        name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
+        sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+      };
+    }
+    {
+      name = "minimatch___minimatch_3.0.4.tgz";
+      path = fetchurl {
+        name = "minimatch___minimatch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+      };
+    }
+    {
+      name = "minimist___minimist_0.0.8.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_0.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    }
+    {
+      name = "minimist___minimist_1.2.0.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
+        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+      };
+    }
+    {
+      name = "mkdirp___mkdirp_0.5.1.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_0.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
+        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+      };
+    }
+    {
+      name = "module_deps___module_deps_6.1.0.tgz";
+      path = fetchurl {
+        name = "module_deps___module_deps_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/module-deps/-/module-deps-6.1.0.tgz";
+        sha1 = "d1e1efc481c6886269f7112c52c3236188e16479";
+      };
+    }
+    {
+      name = "moment___moment_2.24.0.tgz";
+      path = fetchurl {
+        name = "moment___moment_2.24.0.tgz";
+        url  = "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz";
+        sha1 = "0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b";
+      };
+    }
+    {
+      name = "moment___moment_2.22.2.tgz";
+      path = fetchurl {
+        name = "moment___moment_2.22.2.tgz";
+        url  = "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz";
+        sha1 = "3c257f9839fc0e93ff53149632239eb90783ff66";
+      };
+    }
+    {
+      name = "morris.js___morris.js_0.5.0.tgz";
+      path = fetchurl {
+        name = "morris.js___morris.js_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/morris.js/-/morris.js-0.5.0.tgz";
+        sha1 = "725767135cfae059aae75999bb2ce6a1c5d1b44b";
+      };
+    }
+    {
+      name = "multiselect___multiselect_0.9.12.tgz";
+      path = fetchurl {
+        name = "multiselect___multiselect_0.9.12.tgz";
+        url  = "https://registry.yarnpkg.com/multiselect/-/multiselect-0.9.12.tgz";
+        sha1 = "d15536e986dd6a0029b160d6613bcedf81e4c7ed";
+      };
+    }
+    {
+      name = "once___once_1.4.0.tgz";
+      path = fetchurl {
+        name = "once___once_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    }
+    {
+      name = "os_browserify___os_browserify_0.3.0.tgz";
+      path = fetchurl {
+        name = "os_browserify___os_browserify_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz";
+        sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
+      };
+    }
+    {
+      name = "pace___pace_0.0.4.tgz";
+      path = fetchurl {
+        name = "pace___pace_0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/pace/-/pace-0.0.4.tgz";
+        sha1 = "d66405d5f5bc12d25441a6e26c878dbc69e77a77";
+      };
+    }
+    {
+      name = "pako___pako_1.0.6.tgz";
+      path = fetchurl {
+        name = "pako___pako_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz";
+        sha1 = "0101211baa70c4bca4a0f63f2206e97b7dfaf258";
+      };
+    }
+    {
+      name = "parents___parents_1.0.1.tgz";
+      path = fetchurl {
+        name = "parents___parents_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz";
+        sha1 = "fedd4d2bf193a77745fe71e371d73c3307d9c751";
+      };
+    }
+    {
+      name = "parse_asn1___parse_asn1_5.1.1.tgz";
+      path = fetchurl {
+        name = "parse_asn1___parse_asn1_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz";
+        sha1 = "f6bf293818332bd0dab54efb16087724745e6ca8";
+      };
+    }
+    {
+      name = "path_browserify___path_browserify_0.0.0.tgz";
+      path = fetchurl {
+        name = "path_browserify___path_browserify_0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz";
+        sha1 = "a0b870729aae214005b7d5032ec2cbbb0fb4451a";
+      };
+    }
+    {
+      name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+      path = fetchurl {
+        name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    }
+    {
+      name = "path_parse___path_parse_1.0.5.tgz";
+      path = fetchurl {
+        name = "path_parse___path_parse_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz";
+        sha1 = "3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1";
+      };
+    }
+    {
+      name = "path_platform___path_platform_0.11.15.tgz";
+      path = fetchurl {
+        name = "path_platform___path_platform_0.11.15.tgz";
+        url  = "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz";
+        sha1 = "e864217f74c36850f0852b78dc7bf7d4a5721bf2";
+      };
+    }
+    {
+      name = "pbkdf2___pbkdf2_3.0.16.tgz";
+      path = fetchurl {
+        name = "pbkdf2___pbkdf2_3.0.16.tgz";
+        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz";
+        sha1 = "7404208ec6b01b62d85bf83853a8064f8d9c2a5c";
+      };
+    }
+    {
+      name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+      path = fetchurl {
+        name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz";
+        sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa";
+      };
+    }
+    {
+      name = "process___process_0.11.10.tgz";
+      path = fetchurl {
+        name = "process___process_0.11.10.tgz";
+        url  = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
+        sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+      };
+    }
+    {
+      name = "public_encrypt___public_encrypt_4.0.2.tgz";
+      path = fetchurl {
+        name = "public_encrypt___public_encrypt_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz";
+        sha1 = "46eb9107206bf73489f8b85b69d91334c6610994";
+      };
+    }
+    {
+      name = "punycode___punycode_1.3.2.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz";
+        sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+      };
+    }
+    {
+      name = "punycode___punycode_1.4.1.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+      };
+    }
+    {
+      name = "querystring_es3___querystring_es3_0.2.1.tgz";
+      path = fetchurl {
+        name = "querystring_es3___querystring_es3_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz";
+        sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+      };
+    }
+    {
+      name = "querystring___querystring_0.2.0.tgz";
+      path = fetchurl {
+        name = "querystring___querystring_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz";
+        sha1 = "b209849203bb25df820da756e747005878521620";
+      };
+    }
+    {
+      name = "randombytes___randombytes_2.0.6.tgz";
+      path = fetchurl {
+        name = "randombytes___randombytes_2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz";
+        sha1 = "d302c522948588848a8d300c932b44c24231da80";
+      };
+    }
+    {
+      name = "randomfill___randomfill_1.0.4.tgz";
+      path = fetchurl {
+        name = "randomfill___randomfill_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz";
+        sha1 = "c92196fc86ab42be983f1bf31778224931d61458";
+      };
+    }
+    {
+      name = "raphael___raphael_2.2.7.tgz";
+      path = fetchurl {
+        name = "raphael___raphael_2.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/raphael/-/raphael-2.2.7.tgz";
+        sha1 = "231b19141f8d086986d8faceb66f8b562ee2c810";
+      };
+    }
+    {
+      name = "read_only_stream___read_only_stream_2.0.0.tgz";
+      path = fetchurl {
+        name = "read_only_stream___read_only_stream_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz";
+        sha1 = "2724fd6a8113d73764ac288d4386270c1dbf17f0";
+      };
+    }
+    {
+      name = "readable_stream___readable_stream_2.3.6.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_2.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
+        sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+      };
+    }
+    {
+      name = "resolve___resolve_1.1.7.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz";
+        sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
+      };
+    }
+    {
+      name = "resolve___resolve_1.7.1.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz";
+        sha1 = "aadd656374fd298aee895bc026b8297418677fd3";
+      };
+    }
+    {
+      name = "ripemd160___ripemd160_2.0.2.tgz";
+      path = fetchurl {
+        name = "ripemd160___ripemd160_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz";
+        sha1 = "a1c1a6f624751577ba5d07914cbc92850585890c";
+      };
+    }
+    {
+      name = "safe_buffer___safe_buffer_5.1.2.tgz";
+      path = fetchurl {
+        name = "safe_buffer___safe_buffer_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+      };
+    }
+    {
+      name = "select2___select2_4.0.5.tgz";
+      path = fetchurl {
+        name = "select2___select2_4.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/select2/-/select2-4.0.5.tgz";
+        sha1 = "7aac50692561985b34d3b82ec55e226f8960d40a";
+      };
+    }
+    {
+      name = "sha.js___sha.js_2.4.11.tgz";
+      path = fetchurl {
+        name = "sha.js___sha.js_2.4.11.tgz";
+        url  = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz";
+        sha1 = "37a5cf0b81ecbc6943de109ba2960d1b26584ae7";
+      };
+    }
+    {
+      name = "shasum___shasum_1.0.2.tgz";
+      path = fetchurl {
+        name = "shasum___shasum_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz";
+        sha1 = "e7012310d8f417f4deb5712150e5678b87ae565f";
+      };
+    }
+    {
+      name = "shell_quote___shell_quote_1.6.1.tgz";
+      path = fetchurl {
+        name = "shell_quote___shell_quote_1.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz";
+        sha1 = "f4781949cce402697127430ea3b3c5476f481767";
+      };
+    }
+    {
+      name = "slimscroll___slimscroll_0.9.1.tgz";
+      path = fetchurl {
+        name = "slimscroll___slimscroll_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/slimscroll/-/slimscroll-0.9.1.tgz";
+        sha1 = "f675cdc601d80ada20f16004d227d156fd1187b2";
+      };
+    }
+    {
+      name = "source_map___source_map_0.5.7.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    }
+    {
+      name = "stream_browserify___stream_browserify_2.0.1.tgz";
+      path = fetchurl {
+        name = "stream_browserify___stream_browserify_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz";
+        sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db";
+      };
+    }
+    {
+      name = "stream_combiner2___stream_combiner2_1.1.1.tgz";
+      path = fetchurl {
+        name = "stream_combiner2___stream_combiner2_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz";
+        sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe";
+      };
+    }
+    {
+      name = "stream_http___stream_http_2.8.3.tgz";
+      path = fetchurl {
+        name = "stream_http___stream_http_2.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz";
+        sha1 = "b2d242469288a5a27ec4fe8933acf623de6514fc";
+      };
+    }
+    {
+      name = "stream_splicer___stream_splicer_2.0.0.tgz";
+      path = fetchurl {
+        name = "stream_splicer___stream_splicer_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz";
+        sha1 = "1b63be438a133e4b671cc1935197600175910d83";
+      };
+    }
+    {
+      name = "string_decoder___string_decoder_1.1.1.tgz";
+      path = fetchurl {
+        name = "string_decoder___string_decoder_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+      };
+    }
+    {
+      name = "subarg___subarg_1.0.0.tgz";
+      path = fetchurl {
+        name = "subarg___subarg_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz";
+        sha1 = "f62cf17581e996b48fc965699f54c06ae268b8d2";
+      };
+    }
+    {
+      name = "syntax_error___syntax_error_1.4.0.tgz";
+      path = fetchurl {
+        name = "syntax_error___syntax_error_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz";
+        sha1 = "2d9d4ff5c064acb711594a3e3b95054ad51d907c";
+      };
+    }
+    {
+      name = "through2___through2_2.0.3.tgz";
+      path = fetchurl {
+        name = "through2___through2_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz";
+        sha1 = "0004569b37c7c74ba39c43f3ced78d1ad94140be";
+      };
+    }
+    {
+      name = "through___through_2.3.8.tgz";
+      path = fetchurl {
+        name = "through___through_2.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    }
+    {
+      name = "timers_browserify___timers_browserify_1.4.2.tgz";
+      path = fetchurl {
+        name = "timers_browserify___timers_browserify_1.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz";
+        sha1 = "c9c58b575be8407375cb5e2462dacee74359f41d";
+      };
+    }
+    {
+      name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+      path = fetchurl {
+        name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+        sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+      };
+    }
+    {
+      name = "tty_browserify___tty_browserify_0.0.1.tgz";
+      path = fetchurl {
+        name = "tty_browserify___tty_browserify_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz";
+        sha1 = "3f05251ee17904dfd0677546670db9651682b811";
+      };
+    }
+    {
+      name = "typedarray___typedarray_0.0.6.tgz";
+      path = fetchurl {
+        name = "typedarray___typedarray_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    }
+    {
+      name = "umd___umd_3.0.3.tgz";
+      path = fetchurl {
+        name = "umd___umd_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz";
+        sha1 = "aa9fe653c42b9097678489c01000acb69f0b26cf";
+      };
+    }
+    {
+      name = "url___url_0.11.0.tgz";
+      path = fetchurl {
+        name = "url___url_0.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz";
+        sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+      };
+    }
+    {
+      name = "util_deprecate___util_deprecate_1.0.2.tgz";
+      path = fetchurl {
+        name = "util_deprecate___util_deprecate_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    }
+    {
+      name = "util_extend___util_extend_1.0.3.tgz";
+      path = fetchurl {
+        name = "util_extend___util_extend_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz";
+        sha1 = "a7c216d267545169637b3b6edc6ca9119e2ff93f";
+      };
+    }
+    {
+      name = "util___util_0.10.3.tgz";
+      path = fetchurl {
+        name = "util___util_0.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz";
+        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+      };
+    }
+    {
+      name = "util___util_0.10.4.tgz";
+      path = fetchurl {
+        name = "util___util_0.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz";
+        sha1 = "3aa0125bfe668a4672de58857d3ace27ecb76901";
+      };
+    }
+    {
+      name = "vm_browserify___vm_browserify_1.0.1.tgz";
+      path = fetchurl {
+        name = "vm_browserify___vm_browserify_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.0.1.tgz";
+        sha1 = "a15d7762c4c48fa6bf9f3309a21340f00ed23063";
+      };
+    }
+    {
+      name = "wrappy___wrappy_1.0.2.tgz";
+      path = fetchurl {
+        name = "wrappy___wrappy_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    }
+    {
+      name = "xtend___xtend_4.0.1.tgz";
+      path = fetchurl {
+        name = "xtend___xtend_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz";
+        sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+      };
+    }
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
index 9b86c0847e3c..618234e6ff91 100644
--- a/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -2,34 +2,43 @@
 
 buildGoModule rec {
   pname = "protonmail-bridge";
-  version = "1.5.0";
+  version = "1.6.9";
 
   src = fetchFromGitHub {
     owner = "ProtonMail";
     repo = "proton-bridge";
     rev = "br-${version}";
-    sha256 = "lHqwKlFwz9iO7LJMGFTGCauw12z/BKnQte2sVoVkOaY=";
+    sha256 = "0p2315smxc5knxzr9413w62z65647znh9j9vyb6w5x4dqfp7vhz9";
   };
 
-  vendorSha256 = "eP+7fqBctX9XLCoHVJDI/qaa5tocgg3F5nfUM6dzNRg=";
+  vendorSha256 = "04aa7syp5hhpqxdpqlsmmbwywnbrh4ia0diym2935jbrqccnvm1k";
 
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ libsecret ];
 
   buildPhase = ''
-    make BUILD_TIME= build-nogui
+    runHook preBuild
+
+    patchShebangs ./utils/
+    make BUILD_TIME= -j$NIX_BUILD_CORES build-nogui
+
+    runHook postBuild
   '';
 
   installPhase = ''
-    install -Dm555 Desktop-Bridge $out/bin/protonmail-bridge
+    runHook preInstall
+
+    install -Dm555 proton-bridge $out/bin/protonmail-bridge
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     homepage = "https://github.com/ProtonMail/proton-bridge";
     changelog = "https://github.com/ProtonMail/proton-bridge/blob/master/Changelog.md";
     downloadPage = "https://github.com/ProtonMail/proton-bridge/releases";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ lightdiscord ];
     description = "Use your ProtonMail account with your local e-mail client";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix b/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix
deleted file mode 100644
index 8eb0c2298fd3..000000000000
--- a/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ pythonPackages, isPy3k, pkgs }:
-
-pythonPackages.buildPythonPackage {
-  name = "beautifulsoup-3.2.1";
-  disabled = isPy3k;
-
-  src = pkgs.fetchurl {
-    url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz";
-    sha256 = "1nshbcpdn0jpcj51x0spzjp519pkmqz0n0748j7dgpz70zlqbfpm";
-  };
-
-  # error: invalid command 'test'
-  doCheck = false;
-
-  meta = {
-    homepage = "http://www.crummy.com/software/BeautifulSoup/";
-    license = "bsd";
-    description = "Undemanding HTML/XML parser";
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/pyload/default.nix b/nixpkgs/pkgs/applications/networking/pyload/default.nix
deleted file mode 100644
index f70359cf7ac2..000000000000
--- a/nixpkgs/pkgs/applications/networking/pyload/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ lib, fetchFromGitHub, fetchpatch, pythonPackages, gocr, unrar, rhino, spidermonkey_38 }:
-
-let
-  beautifulsoup = pythonPackages.callPackage ./beautifulsoup.nix {
-    inherit pythonPackages;
-  };
-
-in pythonPackages.buildPythonApplication rec {
-  version = "0.4.9-next";
-  name = "pyLoad-" + version;
-
-  src = fetchFromGitHub {
-    owner = "pyload";
-    repo = "pyload";
-    rev = "721ea9f089217b9cb0f2799c051116421faac081";
-    sha256 = "1ad4r9slx1wgvd2fs4plfbpzi4i2l2bk0lybzsb2ncgh59m87h54";
-  };
-
-  patches =
-    let
-      # gets merged in next release version of pyload
-      configParserPatch = fetchpatch {
-        url = "https://patch-diff.githubusercontent.com/raw/pyload/pyload/pull/2625.diff";
-        sha256 = "1bisgx78kcr5c0x0i3h0ch5mykns5wx5wx7gvjj0pc71lfzlxzb9";
-      };
-      setupPyPatch = fetchpatch {
-        url = "https://patch-diff.githubusercontent.com/raw/pyload/pyload/pull/2638.diff";
-        sha256 = "006g4qbl582262ariflbyfrszcx8ck2ac1cpry1f82f76p4cgf6z";
-      };
-    in [ configParserPatch setupPyPatch ];
-
-  buildInputs = [
-    unrar rhino spidermonkey_38 gocr pythonPackages.paver
-  ];
-
-  propagatedBuildInputs = with pythonPackages; [
-    pycurl jinja2 beaker thrift simplejson pycrypto feedparser tkinter
-    beautifulsoup send2trash
-  ];
-
-  #remove this once the PR patches above are merged. Needed because githubs diff endpoint
-  #does not support diff -N
-  prePatch = ''
-    touch module/config/__init__.py
-  '';
-
-  preBuild = ''
-    ${pythonPackages.paver}/bin/paver generate_setup
-  '';
-
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Free and open source downloader for 1-click-hosting sites";
-    homepage = "https://github.com/pyload/pyload";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.mahe ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
index c742d076f9da..f88a2e3d8e88 100644
--- a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem
+{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, genericUpdater, writeShellScript
 , atk, cairo, gdk-pixbuf, glib, gnome2, gtk2, libGLU, libGL, pango, xorg
 , lsb-release, freetype, fontconfig, polkit, polkit_gnome
 , pulseaudio }:
@@ -28,6 +28,19 @@ in stdenv.mkDerivation rec {
     sha256 = "1qbq6r0yanjappsi8yglw8r54bwf32bjb2i63awmr6pk5kmhhy3r";
   };
 
+  passthru = {
+    updateScript = genericUpdater {
+      inherit pname version;
+      versionLister = writeShellScript "anydesk-versionLister" ''
+        echo "# Versions for $1:" >> "$2"
+        curl -s https://anydesk.com/en/downloads/linux \
+          | grep "https://[a-z0-9._/-]*-amd64.tar.gz" -o \
+          | uniq \
+          | sed 's,.*/anydesk-\(.*\)-amd64.tar.gz,\1,g'
+      '';
+    };
+  };
+
   buildInputs = [
     atk cairo gdk-pixbuf glib gtk2 stdenv.cc.cc pango
     gnome2.gtkglext libGLU libGL freetype fontconfig
diff --git a/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix b/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix
new file mode 100644
index 000000000000..96c66f054e25
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, lib
+, makeWrapper, dpkg, fetchurl, autoPatchelfHook
+, curl, libkrb5, lttng-ust, libpulseaudio, gtk3, openssl_1_1, icu, webkitgtk, librsvg, gdk-pixbuf, libsoup, glib-networking
+}:
+
+stdenv.mkDerivation rec {
+  pname = "aws-workspaces";
+  version = "3.1.3.925";
+
+  src = fetchurl {
+    # ref https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/Packages
+    urls = [
+      "https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb"
+      "https://web.archive.org/web/20210307233836/https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb"
+    ];
+    sha256 = "5b57edb4f6f8c950164fd8104bf62df4c452ab5b16cb65d48db3636959a0f0ad";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeWrapper
+  ];
+
+  # Crashes at startup when stripping:
+  # "Failed to create CoreCLR, HRESULT: 0x80004005"
+  dontStrip = true;
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+    libkrb5
+    curl
+    lttng-ust
+    libpulseaudio
+    gtk3
+    openssl_1_1.out
+    icu
+    webkitgtk
+    librsvg
+    gdk-pixbuf
+    libsoup
+    glib-networking
+  ];
+
+  unpackPhase = ''
+    ${dpkg}/bin/dpkg -x $src $out
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv $out/opt/workspacesclient/* $out/bin
+
+    wrapProgram $out/bin/workspacesclient \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \
+      --set GDK_PIXBUF_MODULE_FILE "${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
+      --set GIO_EXTRA_MODULES "${glib-networking.out}/lib/gio/modules"
+  '';
+
+  meta = with lib; {
+    description = "Client for Amazon WorkSpaces, a managed, secure Desktop-as-a-Service (DaaS) solution";
+    homepage = "https://clients.amazonworkspaces.com";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ]; # TODO Mac support
+    maintainers = [ maintainers.mausch ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
index 3a6054db3543..c73789ddeb7b 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
@@ -14,7 +14,7 @@ let
       Citrix Workspace at version ${x} is not supported anymore!
 
       Actively supported releases are listed here:
-      https://www.citrix.com/en-gb/support/product-lifecycle/milestones/receiver.html
+      https://www.citrix.com/support/product-lifecycle/milestones/receiver.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 0437a108d893..35faeb20b751 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -202,7 +202,7 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     description = "Citrix Workspace";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ pmenke ];
     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 75eb4645f4fb..1256f47041aa 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -11,7 +11,7 @@ let
   # Attribute-set with all actively supported versions of the Citrix workspace app
   # for Linux.
   #
-  # The latest versions can be found at https://www.citrix.com/de-de/downloads/workspace-app/linux/
+  # The latest versions can be found at https://www.citrix.com/downloads/workspace-app/linux/
   supportedVersions = lib.mapAttrs mkVersionInfo {
     "20.04.0" = {
       major     = "20";
@@ -78,6 +78,17 @@ let
       x86suffix = "14";
       homepage  = "https://www.citrix.com/de-de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
     };
+
+    "21.03.0" = {
+      major     = "21";
+      minor     = "3";
+      patch     = "0";
+      x64hash   = "004pgvxl81l99sqvrs5xzvjivjlc21rrlm2gky9hmbsm53nsl3zc";
+      x86hash   = "11nn9734a515dm1q880z9wmhvx8ikyh3riayyn42z22q4kd852n3";
+      x64suffix = "38";
+      x86suffix = "38";
+      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
diff --git a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
index 04f2efd5b070..8e0f4dde8168 100644
--- a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
@@ -18,13 +18,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "freerdp";
-  version = "2.2.0";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "FreeRDP";
     repo = "FreeRDP";
     rev = version;
-    sha256 = "02zlg5r704zbryx09a5rjjf7q137kj16i9qh25dw9q1y69ri619n";
+    sha256 = "sha256-qqpdMBDcVfXm/KB54zv23O8raGqBhAKqXo6Kj2VaI8w=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
index 02f1e7ed3444..3421050d1ede 100644
--- a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
@@ -13,13 +13,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "remmina";
-  version = "1.4.10";
+  version = "1.4.12";
 
   src = fetchFromGitLab {
     owner  = "Remmina";
     repo   = "Remmina";
     rev    = "v${version}";
-    sha256 = "sha256-n3YfLKCv6CoBeUIv+1yN6RIih63PTFj5zr+dZDJwYdw=";
+    sha256 = "sha256-CjlNEmca4Kob5rdpZa+YfvdOIDDDYfhNsGYqGDxSGKY=";
   };
 
   nativeBuildInputs = [ cmake ninja pkg-config wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
index 30bd5346ace6..1b564e8daf4b 100644
--- a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "teamviewer";
-  version = "15.8.3";
+  version = "15.15.5";
 
   src = fetchurl {
     url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
-    sha256 = "1c947yxgs0mv5x6qvy40dypbbhhjbglma1pwl66z39gzg51n2dmc";
+    sha256 = "sha256-H/CSc2RcjI+Fm8awYcXm3ioAJpbSNEMwGVrTozMux3A=";
   };
 
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
index a9ddf48bae60..48ea229c2447 100644
--- a/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
@@ -3,6 +3,7 @@
 , at-spi2-atk
 , atk
 , buildFHSUserEnv
+, cairo
 , dbus
 , fetchurl
 , fontconfig
@@ -52,7 +53,7 @@ let
       url = "https://download3.vmware.com/software/view/viewclients/CART21FQ4/VMware-Horizon-Client-Linux-2012-8.1.0-17349998.tar.gz";
       sha256 = "0afda1f3116e75a4e7f89990d8ee60ccea5f3bb8a2360652162fa11c795724ce";
     };
-    buildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
     installPhase = ''
       mkdir ext $out
       find ${sysArch} -type f -print0 | xargs -0n1 tar -Cext --strip-components=1 -xf
@@ -67,6 +68,9 @@ let
       # This libjpeg library interferes with Chromium, so we will be using ours instead.
       rm $out/lib/vmware/libjpeg.*
 
+      # This library causes the program to core-dump occasionally. Use ours instead.
+      rm $out/lib/vmware/view/crtbora/libcairo.*
+
       # Force the default GTK theme (Adwaita) because Horizon is prone to
       # UI usability issues when using non-default themes, such as Adwaita-dark.
       makeWrapper "$out/bin/vmware-view" "$out/bin/vmware-view_wrapper" \
@@ -84,6 +88,7 @@ let
     targetPkgs = pkgs: [
       at-spi2-atk
       atk
+      cairo
       dbus
       fontconfig
       freetype
diff --git a/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
index fcbad67038ce..7be719c18037 100644
--- a/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
@@ -1,26 +1,20 @@
 { lib, stdenv, fetchFromGitLab
 , meson, ninja, pkg-config, scdoc
-, openssh
 , mesa, lz4, zstd, ffmpeg, libva
 }:
 
 stdenv.mkDerivation rec {
   pname = "waypipe-unstable";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    sha256 = "sha256-LtfrSEwZikOXp/fdyJ/+EylRx19zdsHMkrl1eEf1/aY=";
+    sha256 = "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz";
   };
 
-  postPatch = ''
-    substituteInPlace src/waypipe.c \
-      --replace "/usr/bin/ssh" "${openssh}/bin/ssh"
-  '';
-
   nativeBuildInputs = [ meson ninja pkg-config scdoc ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix b/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix
index 314805a685cb..0b8e858d2557 100644
--- a/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, perlPackages, makeWrapper, perl, which, nx-libs
 , util-linux, coreutils, glibc, gawk, gnused, gnugrep, findutils, xorg
-, nettools, iproute, bc, procps, psmisc, lsof, pwgen, openssh, sshfs, bash
+, nettools, iproute2, bc, procps, psmisc, lsof, pwgen, openssh, sshfs, bash
 }:
 
 let
@@ -31,7 +31,7 @@ let
 
   binaryDeps = [
     perlEnv which nx-libs util-linux coreutils glibc.bin gawk gnused gnugrep
-    findutils nettools iproute bc procps psmisc lsof pwgen openssh sshfs
+    findutils nettools iproute2 bc procps psmisc lsof pwgen openssh sshfs
     xorg.xauth xorg.xinit xorg.xrandr xorg.xmodmap xorg.xwininfo xorg.fontutil
     xorg.xkbcomp xorg.setxkbmap
   ];
diff --git a/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix b/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
index b4f6f96e5878..51e8e553ec7d 100644
--- a/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "seaweedfs";
-  version = "2.24";
+  version = "2.35";
 
   src = fetchFromGitHub {
     owner = "chrislusf";
     repo = "seaweedfs";
     rev = version;
-    sha256 = "sha256-nz45vCRhWhgVG2pMA6TZVUIS4d9qBWW7NtTHuEsn4pg=";
+    sha256 = "sha256-J0vwc/sabc6T8+eh94luQdnVltmThapYwLCdyGjCnSc=";
   };
 
-  vendorSha256 = "sha256-v0wFlwODZt3LC+yTuNS1hAAkoedVPfTeEIvs6rUGUa4=";
+  vendorSha256 = "sha256-u1Aqcm6oJ1y2dVP9BJXV7/1nhNxEOtgZQppoA+cXbD0=";
 
   subPackages = [ "weed" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix b/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix
index 7e7206883d9f..fa129baabc14 100644
--- a/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix
@@ -3,22 +3,24 @@
 , fetchFromGitHub
 , genericUpdater
 , common-updater-scripts
+, makeWrapper
+, openssh
 }:
 
 buildGoModule rec {
   pname = "shellhub-agent";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "shellhub-io";
     repo = "shellhub";
     rev = "v${version}";
-    sha256 = "1vg236vc2v4g47lb68hb1vy3phamhsyb383fdbblh3vc4vf46j8a";
+    sha256 = "0vdasz3qph73xb9y831bnr1hpcw0669n9zckqn95v1bsjc936313";
   };
 
   modRoot = "./agent";
 
-  vendorSha256 = "1l8x9cvisjb8smnsg91v04j1vvawpjzp0lcq0ahw8slz8rfdm80c";
+  vendorSha256 = "059772rd1l7zyf2vlqjm35hg8ibmjc1p6cfazqd47n8mqqlqkilw";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.AgentVersion=v${version}" ];
 
@@ -31,6 +33,12 @@ buildGoModule rec {
     };
   };
 
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/agent --prefix PATH : ${lib.makeBinPath [ openssh ]}
+  '';
+
   meta = with lib; {
     description =
       "Enables easy access any Linux device behind firewall and NAT";
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
index 5c5bb1ff96e1..249d58ceb606 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, pkg-config, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
 , gnutls, libgcrypt, libgpgerror, geoip, openssl, lua5, python3, libcap, glib
-, libssh, nghttp2, zlib, cmake, fetchpatch, makeWrapper
+, libssh, nghttp2, zlib, cmake, makeWrapper
 , withQt ? true, qt5 ? null
 , ApplicationServices, SystemConfiguration, gmp
 }:
@@ -10,7 +10,7 @@ assert withQt  -> qt5  != null;
 with lib;
 
 let
-  version = "3.4.3";
+  version = "3.4.4";
   variant = if withQt then "qt" else "cli";
 
 in stdenv.mkDerivation {
@@ -20,7 +20,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "0ar6pxzrcpxdriz437d6ziwlhb8k5wlvrkalp3hgqwzwy1vwqrzl";
+    sha256 = "0aad3m8nh4i75dgjs68217135bzqmhmlgjklmpjh1ihmjwgd373j";
   };
 
   cmakeFlags = [
@@ -33,13 +33,11 @@ in stdenv.mkDerivation {
   # Avoid referencing -dev paths because of debug assertions.
   NIX_CFLAGS_COMPILE = [ "-DQT_NO_DEBUG" ];
 
-  nativeBuildInputs = [
-    bison cmake flex pkg-config
-  ] ++ optional withQt qt5.wrapQtAppsHook;
+  nativeBuildInputs = [ bison cmake flex makeWrapper pkg-config ] ++ optional withQt qt5.wrapQtAppsHook;
 
   buildInputs = [
     gettext pcre perl libpcap lua5 libssh nghttp2 openssl libgcrypt
-    libgpgerror gnutls geoip c-ares python3 glib zlib makeWrapper
+    libgpgerror gnutls geoip c-ares python3 glib zlib
   ] ++ optionals withQt  (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
     ++ optionals stdenv.isLinux  [ libcap libnl ]
     ++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ]
@@ -76,7 +74,7 @@ in stdenv.mkDerivation {
     install -Dm644 ../image/wsicon.svg $out/share/icons/wireshark.svg
     mkdir $dev/include/{epan/{wmem,ftypes,dfilter},wsutil,wiretap} -pv
 
-    cp config.h $dev/include/
+    cp config.h $dev/include/wireshark/
     cp ../ws_*.h $dev/include
     cp ../epan/*.h $dev/include/epan/
     cp ../epan/wmem/*.h $dev/include/epan/wmem/
@@ -96,7 +94,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.wireshark.org/";
     description = "Powerful network protocol analyzer";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
 
     longDescription = ''
       Wireshark (formerly known as "Ethereal") is a powerful network
diff --git a/nixpkgs/pkgs/applications/networking/sync/casync/default.nix b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix
index 0e82aa2dd85d..5bc29832c5f3 100644
--- a/nixpkgs/pkgs/applications/networking/sync/casync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix
@@ -1,27 +1,40 @@
-{ lib, stdenv, fetchFromGitHub
-, meson, ninja, pkg-config, python3, sphinx
-, acl, curl, fuse, libselinux, udev, xz, zstd
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, python3
+, sphinx
+, acl
+, curl
+, fuse
+, libselinux
+, udev
+, xz
+, zstd
 , fuseSupport ? true
 , selinuxSupport ? true
 , udevSupport ? true
-, glibcLocales, rsync
+, glibcLocales
+, rsync
 }:
 
 stdenv.mkDerivation {
   pname = "casync";
-  version = "2-219-ga8f6c84";
+  version = "2-226-gbd8898e";
 
   src = fetchFromGitHub {
-    owner  = "systemd";
-    repo   = "casync";
-    rev    = "a8f6c841ccfe59ca8c68aad64df170b64042dce8";
-    sha256 = "1i3c9wmpabpmx2wfbcyabmwfa66vz92iq5dlbm89v5mvgavz7bws";
+    owner = "systemd";
+    repo = "casync";
+    rev = "bd8898ed92685e12022dd33a04c87786b5262344";
+    sha256 = "04ibglizjzyd7ih13q6m7ic78n0mzw9nfmb3zd1fcm9j62qlq11i";
   };
 
   buildInputs = [ acl curl xz zstd ]
-                ++ lib.optionals (fuseSupport) [ fuse ]
-                ++ lib.optionals (selinuxSupport) [ libselinux ]
-                ++ lib.optionals (udevSupport) [ udev ];
+    ++ lib.optionals (fuseSupport) [ fuse ]
+    ++ lib.optionals (selinuxSupport) [ libselinux ]
+    ++ lib.optionals (udevSupport) [ udev ];
   nativeBuildInputs = [ meson ninja pkg-config python3 sphinx ];
   checkInputs = [ glibcLocales rsync ];
 
@@ -34,8 +47,8 @@ stdenv.mkDerivation {
 
   PKG_CONFIG_UDEV_UDEVDIR = "lib/udev";
   mesonFlags = lib.optionals (!fuseSupport) [ "-Dfuse=false" ]
-               ++ lib.optionals (!udevSupport) [ "-Dudev=false" ]
-               ++ lib.optionals (!selinuxSupport) [ "-Dselinux=false" ];
+    ++ lib.optionals (!udevSupport) [ "-Dudev=false" ]
+    ++ lib.optionals (!selinuxSupport) [ "-Dselinux=false" ];
 
   doCheck = true;
   preCheck = ''
@@ -44,9 +57,9 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Content-Addressable Data Synchronizer";
-    homepage    = "https://github.com/systemd/casync";
-    license     = licenses.lgpl21;
-    platforms   = platforms.linux;
+    homepage = "https://github.com/systemd/casync";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ flokli ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
index ec983276de82..300214e58b78 100644
--- a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "onedrive";
-  version = "2.4.7";
+  version = "2.4.10";
 
   src = fetchFromGitHub {
     owner = "abraunegg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12g2z6c4f65y8cc7vyhk9nlg1mpbsmlsj7ghlny452qhr13m7qpn";
+    sha256 = "sha256:0dvxjkni66g82j9wr6yy07sn7d7yr7bbc0py89pxybvsbid88l65";
   };
 
   nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkg-config ];
diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
index e2199cfcfb92..83cc029c089e 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
@@ -1,25 +1,30 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles
+, makeWrapper
+, enableCmount ? true, fuse, macfuse-stubs
+}:
 
 buildGoModule rec {
   pname = "rclone";
-  version = "1.54.0";
+  version = "1.55.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-A0c5bHP5W/NTwAh1ifGaw4AG37qYXK9P/Fjk68gkUNk=";
+    sha256 = "01pvcns3n735s848wc11q40pkkv646gn3cxkma866k44a9c2wirl";
   };
 
-  vendorSha256 = "sha256-Cpn/dUD9E2BzUlAISC+IDCW59OkEKZTpqdlvF/clV+M=";
+  vendorSha256 = "05f9nx5sa35q2szfkmnkhvqli8jlqja8ghiwyxk7cvgjl7fgd6zk";
 
   subPackages = [ "." ];
 
   outputs = [ "out" "man" ];
 
-  nativeBuildInputs = [ installShellFiles ];
+  buildInputs = lib.optional enableCmount (if stdenv.isDarwin then macfuse-stubs else fuse);
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/rclone/rclone/fs.Version=${version}" ];
+  buildFlagsArray = lib.optionals enableCmount [ "-tags=cmount" ]
+    ++ [ "-ldflags=-s -w -X github.com/rclone/rclone/fs.Version=${version}" ];
 
   postInstall =
     let
@@ -34,6 +39,8 @@ buildGoModule rec {
         ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
         installShellCompletion rclone.$shell
       done
+    '' + lib.optionalString (enableCmount && !stdenv.isDarwin) ''
+      wrapProgram $out/bin/rclone --prefix LD_LIBRARY_PATH : "${fuse}/lib"
     '';
 
   meta = with lib; {
@@ -41,6 +48,6 @@ buildGoModule rec {
     homepage = "https://rclone.org";
     changelog = "https://github.com/rclone/rclone/blob/v${version}/docs/content/changelog.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ danielfullmer marsam ];
+    maintainers = with maintainers; [ danielfullmer marsam SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix
index 7c7d3a1f418e..3479458088ed 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, fetchurl }:
 
 rec {
   version = "3.2.3";
diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix
index c50ea08510af..a38352a328aa 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix
@@ -15,7 +15,7 @@ assert enableXXHash -> xxHash != null;
 assert enableZstd -> zstd != null;
 
 let
-  base = import ./base.nix { inherit lib stdenv fetchurl; };
+  base = import ./base.nix { inherit lib fetchurl; };
 in
 stdenv.mkDerivation rec {
   name = "rsync-${base.version}";
diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix
index 5a4c2600569e..83eb4658d2f3 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, perl, rsync }:
 
 let
-  base = import ./base.nix { inherit stdenv lib fetchurl; };
+  base = import ./base.nix { inherit lib fetchurl; };
 in
 stdenv.mkDerivation {
   name = "rrsync-${base.version}";
diff --git a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
index 86126e861699..23bbd19b00e8 100644
--- a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation (rec {
     sha256 = "sha256-42hmdMwOYSWGiDCmhuqtpCWtvtyD2l+kA/bhHD/Qh5Y=";
   };
 
-  buildInputs = [ ocaml makeWrapper ncurses ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ocaml ncurses ];
 
   preBuild = (if enableX11 then ''
     sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" src/Makefile.OCaml
diff --git a/nixpkgs/pkgs/applications/networking/syncthing/default.nix b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
index 9d9be8966ca6..6d4b3fe34c42 100644
--- a/nixpkgs/pkgs/applications/networking/syncthing/default.nix
+++ b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
@@ -3,17 +3,17 @@
 let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
-      version = "1.13.1";
+      version = "1.14.0";
       name = "${stname}-${version}";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "1jvmcpyj4k43s4hv753pr9a1qg930nac90d5c8haqv30v1rw5pws";
+        sha256 = "1nkjbikin341v74fcwdaa2v5f3zhd8xr6pjhpka1fdw6vvnn4lnd";
       };
 
-      vendorSha256 = "140b0wqp5ayyyan7ml12jqd72s00cawhmdf8g699j5sav8j6hppi";
+      vendorSha256 = "1kr6yyigi7bbi4xwpk009q801wvmf3aaw4m40ki0s6gjn0wjl4j3";
 
       doCheck = false;
 
@@ -47,7 +47,7 @@ let
         description = "Open Source Continuous File Synchronization";
         changelog = "https://github.com/syncthing/syncthing/releases/tag/v${version}";
         license = licenses.mpl20;
-        maintainers = with maintainers; [ pshendry joko peterhoeg andrew-d ];
+        maintainers = with maintainers; [ joko peterhoeg andrew-d ];
         platforms = platforms.unix;
       };
     };
diff --git a/nixpkgs/pkgs/applications/networking/testssl/default.nix b/nixpkgs/pkgs/applications/networking/testssl/default.nix
index 611f4cf0c1f7..b4d17a1a4938 100644
--- a/nixpkgs/pkgs/applications/networking/testssl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/testssl/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "testssl.sh";
-  version = "3.0.2";
+  version = "3.0.4";
 
   src = fetchFromGitHub {
     owner = "drwetter";
     repo = pname;
     rev = version;
-    sha256 = "0vfpj3g3il3imbydx3j8gx1pgzrxi0czcl9jmi749vnkf5mkmh8w";
+    sha256 = "sha256-Rcvkzw1DfoRXrk0vlpL6CojEHYfYga3voc2hm4qxdmw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/networking/tsung/default.nix b/nixpkgs/pkgs/applications/networking/tsung/default.nix
index 41bc6c64da80..346fd1752578 100644
--- a/nixpkgs/pkgs/applications/networking/tsung/default.nix
+++ b/nixpkgs/pkgs/applications/networking/tsung/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "6394445860ef34faedf8c46da95a3cb206bc17301145bc920151107ffa2ce52a";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   propagatedBuildInputs = [
     erlang
     gnuplot
diff --git a/nixpkgs/pkgs/applications/networking/umurmur/default.nix b/nixpkgs/pkgs/applications/networking/umurmur/default.nix
index bf45db92098a..d1378598876d 100644
--- a/nixpkgs/pkgs/applications/networking/umurmur/default.nix
+++ b/nixpkgs/pkgs/applications/networking/umurmur/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "umurmur";
-  version = "0.2.19";
+  version = "0.2.20";
 
   src = fetchFromGitHub {
     owner = "umurmur";
     repo = "umurmur";
     rev = version;
-    sha256 = "sha256-86wveYlM493RIuU8aKac6XTOMPv0JxlZL4qH2N2AqRU=";
+    sha256 = "sha256-jp5+NbGmT90ksffvpLYIX2q5cPeVidDCYMPvLHCiP68=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/networking/websocketd/default.nix b/nixpkgs/pkgs/applications/networking/websocketd/default.nix
index c287abb0de24..636443c9b858 100644
--- a/nixpkgs/pkgs/applications/networking/websocketd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/websocketd/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "websocketd";
-  version = "0.3.1";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "joewalnes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qc4yi4kwy7bfi3fb17w58ff0i95yi6m4syldh8j79930syr5y8q";
+    sha256 = "sha256-cp4iBSQ6Cd0+NPZ2i79Mulg1z17u//OCm3yoArbZEHs=";
   };
 
-  vendorSha256 = "05k31z4h3b327mh940zh52im4xfk7kf5phb8b7xp4l9bgckhz4lb";
+  vendorSha256 = "sha256-i5IPJ3srUXL7WWjBW9w803VSoyjwA5JgPWKsAckPYxY=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/wg-bond/default.nix b/nixpkgs/pkgs/applications/networking/wg-bond/default.nix
index 32ffbde400b1..bef44d428627 100644
--- a/nixpkgs/pkgs/applications/networking/wg-bond/default.nix
+++ b/nixpkgs/pkgs/applications/networking/wg-bond/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1v2az0v6l8mqryvq3898hm7bpvqdd2c4kpv6ck7932jfjyna512k";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   postInstall = ''
     wrapProgram $out/bin/wg-bond --set PATH ${
       lib.makeBinPath [ wireguard-tools ]
diff --git a/nixpkgs/pkgs/applications/networking/zerobin/default.nix b/nixpkgs/pkgs/applications/networking/zerobin/default.nix
new file mode 100644
index 000000000000..b86fe7cc6410
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/zerobin/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+, nodePackages
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "zerobin";
+  version = "1.0.5";
+  src = fetchFromGitHub {
+    owner = "Tygs";
+    repo = "0bin";
+    rev = "v${version}";
+    sha256 = "1dfy3h823ylz4w2vv3mrmnmiyvf6rvyvsp4j3llr074w9id0zy16";
+  };
+
+  disabled = python3Packages.pythonOlder "3.7";
+
+  nativeBuildInputs = [
+    python3Packages.doit
+    python3Packages.pyscss
+    nodePackages.uglify-js
+  ];
+  propagatedBuildInputs = with python3Packages; [
+    appdirs
+    beaker
+    bleach
+    bottle
+    clize
+    lockfile
+    paste
+  ];
+  prePatch = ''
+    # replace /bin/bash in compress.sh
+    patchShebangs .
+
+    # relax version constraints of some dependencies
+    substituteInPlace setup.cfg \
+      --replace "bleach==3.1.5" "bleach>=3.1.5,<4" \
+      --replace "bottle==0.12.18" "bottle>=0.12.18,<1" \
+      --replace "Paste==3.4.3" "Paste>=3.4.3,<4"
+  '';
+  buildPhase = ''
+    runHook preBuild
+    doit build
+    runHook postBuild
+  '';
+
+  # zerobin has no check, but checking would fail with:
+  # nix_run_setup runserver: Received extra arguments: test
+  # See https://github.com/NixOS/nixpkgs/pull/98734#discussion_r495823510
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A client side encrypted pastebin";
+    homepage = "https://0bin.net/";
+    license = licenses.wtfpl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ julm ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/znc/default.nix b/nixpkgs/pkgs/applications/networking/znc/default.nix
index 557c2865fa1f..e5aec9117068 100644
--- a/nixpkgs/pkgs/applications/networking/znc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/znc/default.nix
@@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
   ] ++ optional (!withIPv6) [ "--disable-ipv6" ]
     ++ optional withDebug [ "--enable-debug" ];
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "Advanced IRC bouncer";
     homepage = "https://wiki.znc.in/ZNC";
diff --git a/nixpkgs/pkgs/applications/office/banking/default.nix b/nixpkgs/pkgs/applications/office/banking/default.nix
new file mode 100644
index 000000000000..c71c1eafa66c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/banking/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, fetchurl
+, fetchFromGitLab
+, python3
+, appstream-glib
+, desktop-file-utils
+, glib
+, gtk3
+, libxml2
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+, gobject-introspection
+, libhandy
+, librsvg
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "banking";
+  version = "0.3.0";
+  format = "other";
+
+  src = fetchFromGitLab {
+    owner = "tabos";
+    repo = "banking";
+    rev = version;
+    sha256 = "1w5x9iczw5hb9bfdm1df37n8xhdrida1yfrd82k9l8hb1k4q3h9d";
+  };
+
+  postPatch = ''
+    patchShebangs meson_post_install.py
+  '';
+
+  nativeBuildInputs = [
+    appstream-glib # for appstream-util
+    desktop-file-utils # for desktop-file-validate
+    glib # for glib-compile-resources
+    gtk3 # for gtk-update-icon-cache
+    libxml2 # for xmllint
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gtk3
+    libhandy
+    librsvg
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    cryptography
+    fints
+    mt-940
+    pygobject3
+  ];
+
+  meta = with lib; {
+    description = "Banking application for small screens";
+    homepage = "https://tabos.gitlab.io/project/banking/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/bookworm/default.nix b/nixpkgs/pkgs/applications/office/bookworm/default.nix
index 8ea277e1af3b..8bd1d8f974b3 100644
--- a/nixpkgs/pkgs/applications/office/bookworm/default.nix
+++ b/nixpkgs/pkgs/applications/office/bookworm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkg-config, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk, libgee
+{ lib, stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkg-config, libxml2, meson, ninja, gtk3, glib, webkitgtk, libgee
 , gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook
 , appstream, desktop-file-utils }:
 
diff --git a/nixpkgs/pkgs/applications/office/calligra/default.nix b/nixpkgs/pkgs/applications/office/calligra/default.nix
index a8ca37df36ad..e54a3cbad4cd 100644
--- a/nixpkgs/pkgs/applications/office/calligra/default.nix
+++ b/nixpkgs/pkgs/applications/office/calligra/default.nix
@@ -1,15 +1,14 @@
-{
-  mkDerivation, lib, fetchurl, extra-cmake-modules, kdoctools, makeWrapper,
-  boost, qtwebkit, qtx11extras, shared-mime-info,
-  breeze-icons, kactivities, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets,
-  kcoreaddons, kdbusaddons, kdiagram, kguiaddons, khtml, ki18n,
-  kiconthemes, kitemviews, kjobwidgets, kcmutils, kdelibs4support, kio, kross,
-  knotifications, knotifyconfig, kparts, ktextwidgets, kwallet, kwidgetsaddons,
-  kwindowsystem, kxmlgui, sonnet, threadweaver,
-  kcontacts, akonadi, akonadi-calendar, akonadi-contacts,
-  eigen, git, gsl, ilmbase, kproperty, kreport, lcms2, marble, pcre, libgit2, libodfgen,
-  librevenge, libvisio, libwpd, libwpg, libwps, okular, openexr, openjpeg, phonon,
-  poppler, pstoedit, qca-qt5, vc
+{ mkDerivation, lib, fetchurl, extra-cmake-modules, kdoctools
+, boost, qtwebkit, qtx11extras, shared-mime-info
+, breeze-icons, kactivities, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets
+, kcoreaddons, kdbusaddons, kdiagram, kguiaddons, khtml, ki18n
+, kiconthemes, kitemviews, kjobwidgets, kcmutils, kdelibs4support, kio, kross
+, knotifications, knotifyconfig, kparts, ktextwidgets, kwallet, kwidgetsaddons
+, kwindowsystem, kxmlgui, sonnet, threadweaver
+, kcontacts, akonadi, akonadi-calendar, akonadi-contacts
+, eigen, git, gsl, ilmbase, kproperty, kreport, lcms2, marble, pcre, libgit2, libodfgen
+, librevenge, libvisio, libwpd, libwpg, libwps, okular, openexr, openjpeg, phonon
+, poppler, pstoedit, qca-qt5, vc
 # TODO: package Spnav, m2mml LibEtonyek, Libqgit2
 }:
 
diff --git a/nixpkgs/pkgs/applications/office/cb2bib/default.nix b/nixpkgs/pkgs/applications/office/cb2bib/default.nix
index e57d490f05c1..b0a0fded80ae 100644
--- a/nixpkgs/pkgs/applications/office/cb2bib/default.nix
+++ b/nixpkgs/pkgs/applications/office/cb2bib/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
     runHook postConfigure
   '';
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Rapidly extract unformatted, or unstandardized bibliographic references from email alerts, journal Web pages and PDF files";
     homepage = "http://www.molspaces.com/d_cb2bib-overview.php";
diff --git a/nixpkgs/pkgs/applications/office/docear/default.nix b/nixpkgs/pkgs/applications/office/docear/default.nix
index 683e66815731..f8cd25ad7843 100644
--- a/nixpkgs/pkgs/applications/office/docear/default.nix
+++ b/nixpkgs/pkgs/applications/office/docear/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation {
     sha256 = "1g5n7r2x4gas6dl2fbyh7v9yxdcb6bzml8n3ldmpzv1rncgjcdp4";
   };
 
-  buildInputs = [ oraclejre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ oraclejre ];
 
   buildPhase = "";
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/office/fava/default.nix b/nixpkgs/pkgs/applications/office/fava/default.nix
index b070683e6f2a..4f32486ffe1f 100644
--- a/nixpkgs/pkgs/applications/office/fava/default.nix
+++ b/nixpkgs/pkgs/applications/office/fava/default.nix
@@ -1,40 +1,44 @@
-{ lib, python3, beancount }:
+{ lib, python3 }:
 
-let
-  inherit (python3.pkgs) buildPythonApplication fetchPypi;
-in
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "fava";
   version = "1.18";
 
-  src = fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
     sha256 = "21336b695708497e6f00cab77135b174c51feb2713b657e0e208282960885bf5";
   };
 
-  checkInputs = [ python3.pkgs.pytest ];
-  propagatedBuildInputs = with python3.pkgs;
-    [
-      Babel
-      cheroot
-      flaskbabel
-      flask
-      jinja2
-      beancount
-      click
-      markdown2
-      ply
-      simplejson
-      werkzeug
-      jaraco_functools
-    ];
-
-  # CLI test expects fava on $PATH.  Not sure why static_url fails.
-  # the entry_slices and render_entries requires other files to pass
-  checkPhase = ''
-    py.test tests -k 'not cli and not static_url and not entry_slice and not render_entries'
+  nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    Babel
+    cheroot
+    flaskbabel
+    flask
+    jinja2
+    beancount
+    click
+    markdown2
+    ply
+    simplejson
+    werkzeug
+    jaraco_functools
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$TEMPDIR
   '';
 
+  disabledTests = [
+    # runs fava in debug mode, which tries to interpret bash wrapper as Python
+    "test_cli"
+  ];
+
   meta = {
     homepage = "https://beancount.github.io/fava";
     description = "Web interface for beancount";
diff --git a/nixpkgs/pkgs/applications/office/gnumeric/default.nix b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
index f926391ac488..263a555ab4c1 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.48";
+  version = "1.12.49";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p";
+    sha256 = "kcBy7JXDLgCxVv/oAVyTsyuO3zaPkEFDYZPPoy6E7Vc=";
   };
 
   configureFlags = [ "--disable-component" ];
diff --git a/nixpkgs/pkgs/applications/office/homebank/default.nix b/nixpkgs/pkgs/applications/office/homebank/default.nix
index 17c72e8a3306..a586cea47ab3 100644
--- a/nixpkgs/pkgs/applications/office/homebank/default.nix
+++ b/nixpkgs/pkgs/applications/office/homebank/default.nix
@@ -2,10 +2,10 @@
 , libsoup, gnome3 }:
 
 stdenv.mkDerivation rec {
-  name = "homebank-5.5";
+  name = "homebank-5.5.1";
   src = fetchurl {
     url = "http://homebank.free.fr/public/${name}.tar.gz";
-    sha256 = "sha256-3tqmsCxQXNAsDsLdiyuk4MydH0WgHqsNpgqxvCp+bHU=";
+    sha256 = "sha256-m7OeqtPExo0ry+IeL2xKUnTjo/OFr7Ky/3OuX9mY2gg=";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/office/ib/controller/default.nix b/nixpkgs/pkgs/applications/office/ib/controller/default.nix
index 35aebf232606..0815dfc8982f 100644
--- a/nixpkgs/pkgs/applications/office/ib/controller/default.nix
+++ b/nixpkgs/pkgs/applications/office/ib/controller/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
 
   phases = [ "unpackPhase" "installPhase" ];
 
-  buildInputs = [ unzip jdk ib-tws ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ jdk ib-tws ];
 
   installPhase = ''
     mkdir -p $out $out/bin $out/etc/ib/controller $out/share/IBController
diff --git a/nixpkgs/pkgs/applications/office/impressive/default.nix b/nixpkgs/pkgs/applications/office/impressive/default.nix
index 4614a543694d..f46d893d8948 100644
--- a/nixpkgs/pkgs/applications/office/impressive/default.nix
+++ b/nixpkgs/pkgs/applications/office/impressive/default.nix
@@ -16,7 +16,8 @@ in stdenv.mkDerivation {
       sha256 = "1r7ihv41awnlnlry1kymb8fka053wdhzibfwcarn78rr3vs338vl";
     };
 
-    buildInputs = [ makeWrapper pythonEnv ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ pythonEnv ];
 
     configurePhase = ''
       # Let's fail at build time if the library we're substituting in doesn't
diff --git a/nixpkgs/pkgs/applications/office/ledger/default.nix b/nixpkgs/pkgs/applications/office/ledger/default.nix
index 7f543c9bbcc6..5478382cbd83 100644
--- a/nixpkgs/pkgs/applications/office/ledger/default.nix
+++ b/nixpkgs/pkgs/applications/office/ledger/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, boost, gmp, mpfr, libedit, python
+{ stdenv, lib, fetchFromGitHub, cmake, boost, gmp, mpfr, libedit, python3
 , texinfo, gnused, usePython ? true }:
 
 stdenv.mkDerivation rec {
@@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   buildInputs = [
-    (boost.override { enablePython = usePython; })
-    gmp mpfr libedit python gnused
+    (boost.override { enablePython = usePython; python = python3; })
+    gmp mpfr libedit python3 gnused
   ];
 
   nativeBuildInputs = [ cmake texinfo ];
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   # however, that would write to a different nixstore path, pass our own sitePackages location
   prePatch = lib.optionalString usePython ''
     substituteInPlace src/CMakeLists.txt \
-      --replace 'DESTINATION ''${Python_SITEARCH}' 'DESTINATION "${python.sitePackages}"'
+      --replace 'DESTINATION ''${Python_SITEARCH}' 'DESTINATION "${python3.sitePackages}"'
   '';
 
   installTargets = [ "doc" "install" ];
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/default.nix b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
index c917c4396913..c9b1099f8b96 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/default.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, lib, pam, python3, libxslt, perl, ArchiveZip, box2d, gettext
+{ stdenv, fetchurl, lib, pam, python3, libxslt, perl, ArchiveZip, box2d, gettext
 , IOCompress, zlib, libjpeg, expat, freetype, libwpd
 , libxml2, db, curl, fontconfig, libsndfile, neon
 , bison, flex, zip, unzip, gtk3, libmspack, getopt, file, cairo, which
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
index ea6fc1d777e9..3b8bba9ac19e 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -476,11 +476,11 @@
     md5name = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523-libjpeg-turbo-1.5.3.tar.gz";
   }
   {
-    name = "language-subtag-registry-2020-09-29.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2020-09-29.tar.bz2";
-    sha256 = "cbe9fca811a37056560aab73e9fc9d3522b46b6785cb02db165f521bf42c230f";
+    name = "language-subtag-registry-2020-12-18.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2020-12-18.tar.bz2";
+    sha256 = "62ce680d5db0f28001b64bd57db47f388c13629cdefc9af8e8af0fbe93689ba1";
     md5 = "";
-    md5name = "cbe9fca811a37056560aab73e9fc9d3522b46b6785cb02db165f521bf42c230f-language-subtag-registry-2020-09-29.tar.bz2";
+    md5name = "62ce680d5db0f28001b64bd57db47f388c13629cdefc9af8e8af0fbe93689ba1-language-subtag-registry-2020-12-18.tar.bz2";
   }
   {
     name = "JLanguageTool-1.7.0.tar.bz2";
@@ -546,11 +546,11 @@
     md5name = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e-liblangtag-0.6.2.tar.bz2";
   }
   {
-    name = "libnumbertext-1.0.6.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libnumbertext-1.0.6.tar.xz";
-    sha256 = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57";
+    name = "libnumbertext-1.0.7.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libnumbertext-1.0.7.tar.xz";
+    sha256 = "17b8249cb89ae11ae15a85612d2665626c0e0e3e56b35654363ba6566d8b61fc";
     md5 = "";
-    md5name = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57-libnumbertext-1.0.6.tar.xz";
+    md5name = "17b8249cb89ae11ae15a85612d2665626c0e0e3e56b35654363ba6566d8b61fc-libnumbertext-1.0.7.tar.xz";
   }
   {
     name = "ltm-1.0.zip";
@@ -735,18 +735,18 @@
     md5name = "016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3-poppler-21.01.0.tar.xz";
   }
   {
-    name = "postgresql-9.2.24.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/postgresql-9.2.24.tar.bz2";
-    sha256 = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126";
+    name = "postgresql-13.1.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/postgresql-13.1.tar.bz2";
+    sha256 = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f";
     md5 = "";
-    md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2";
+    md5name = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f-postgresql-13.1.tar.bz2";
   }
   {
-    name = "Python-3.8.4.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/Python-3.8.4.tar.xz";
-    sha256 = "5f41968a95afe9bc12192d7e6861aab31e80a46c46fa59d3d837def6a4cd4d37";
+    name = "Python-3.8.8rc1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/Python-3.8.8rc1.tar.xz";
+    sha256 = "bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6";
     md5 = "";
-    md5name = "5f41968a95afe9bc12192d7e6861aab31e80a46c46fa59d3d837def6a4cd4d37-Python-3.8.4.tar.xz";
+    md5name = "bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6-Python-3.8.8rc1.tar.xz";
   }
   {
     name = "QR-Code-generator-1.4.0.tar.gz";
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index 6fbc8c5cfc60..d3fbc261c366 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -8,8 +8,8 @@ rec {
 
   major = "7";
   minor = "1";
-  patch = "0";
-  tweak = "3";
+  patch = "2";
+  tweak = "2";
 
   subdir = "${major}.${minor}.${patch}";
 
@@ -17,13 +17,13 @@ rec {
 
   src = fetchurl {
     url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "1rpk90g1g8m70nrj4lwkg50aiild73d29yjlgyrgg8wx6hzq7l4y";
+    sha256 = "1y19p9701msf6jjzp9d5ighvmyjzj68qzhm2bk3l5p16ys8qk9bb";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "0m6cxyrxig8akv9183xdn6ialmjddicn676149nm506yc5y0szmi";
+    sha256 = "1j5251lbc35d521d92w52lgps0v5pg8mhr8y3r6x2nl9p0gvw957";
   };
 
   # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
 
   help = fetchSrc {
     name = "help";
-    sha256 = "1kvsi28n8x3gxpiszxh84x05aw23i3z4id63pgw2s7mfclby52k9";
+    sha256 = "1bsrkmzhhpyrmi7akmdfvz4zb543fc093az9965k14rp8l6rhnvf";
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/onlyoffice-bin/default.nix b/nixpkgs/pkgs/applications/office/onlyoffice-bin/default.nix
new file mode 100644
index 000000000000..bfd3c3529e7d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/onlyoffice-bin/default.nix
@@ -0,0 +1,168 @@
+{ stdenv
+, lib
+, fetchurl
+# Alphabetic ordering below
+, alsaLib
+, at-spi2-atk
+, atk
+, autoPatchelfHook
+, cairo
+, curl
+, dbus
+, dconf
+, dpkg
+, fontconfig
+, gdk-pixbuf
+, glib
+, glibc
+, gsettings-desktop-schemas
+, gst_all_1
+, gtk2
+, gtk3
+, libpulseaudio
+, libudev0-shim
+, makeWrapper
+, nspr
+, nss
+, pulseaudio
+, qt5
+, wrapGAppsHook
+, xkeyboard_config
+, xorg
+}:
+let
+
+  # Note on fonts:
+  #
+  # OnlyOffice does not distribute unfree fonts, but makes it easy to pick up
+  # any fonts you install. See:
+  #
+  # * https://helpcenter.onlyoffice.com/en/installation/docs-community-install-fonts-linux.aspx
+  # * https://www.onlyoffice.com/blog/2020/04/how-to-add-new-fonts-to-onlyoffice-desktop-editors/
+  #
+  # As recommended there, you should download
+  #
+  #     arial.ttf, calibri.ttf, cour.ttf, symbol.ttf, times.ttf, wingding.ttf
+  #
+  # into `~/.local/share/fonts/`, otherwise the default template fonts, and
+  # things like bullet points, will not look as expected.
+
+  # TODO: Find out which of these fonts we'd be allowed to distribute along
+  #       with this package, or how to make this easier for users otherwise.
+
+  # Not using the `noto-fonts-cjk` package from nixpkgs, because it was
+  # reported that its `.ttc` file is not picked up by OnlyOffice, see:
+  # https://github.com/NixOS/nixpkgs/pull/116343#discussion_r593979816
+  noto-fonts-cjk = fetchurl {
+    url =
+      let
+        version = "v20201206-cjk";
+      in
+        "https://github.com/googlefonts/noto-cjk/raw/${version}/NotoSansCJKsc-Regular.otf";
+    sha256 = "sha256-aJXSVNJ+p6wMAislXUn4JQilLhimNSedbc9nAuPVxo4=";
+  };
+
+  runtimeLibs = lib.makeLibraryPath [
+    curl
+    glibc
+    libudev0-shim
+    pulseaudio
+  ];
+
+in stdenv.mkDerivation rec {
+  pname = "onlyoffice-desktopeditors";
+  version = "6.1.0";
+  minor = "90";
+  src = fetchurl {
+    url = "https://github.com/ONLYOFFICE/DesktopEditors/releases/download/v${version}/onlyoffice-desktopeditors_${version}-${minor}_amd64.deb";
+    sha256 = "sha256-TUaECChM3GxtB54/zNIKjRIocnAxpBVK7XsX3z7aq8o=";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    makeWrapper
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    alsaLib
+    at-spi2-atk
+    atk
+    cairo
+    dbus
+    dconf
+    fontconfig
+    gdk-pixbuf
+    glib
+    gsettings-desktop-schemas
+    gst_all_1.gst-plugins-base
+    gst_all_1.gstreamer
+    gtk2
+    gtk3
+    libpulseaudio
+    nspr
+    nss
+    qt5.qtbase
+    qt5.qtdeclarative
+    qt5.qtsvg
+    xorg.libX11
+    xorg.libxcb
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXScrnSaver
+    xorg.libXtst
+  ];
+
+  dontWrapQtApps = true;
+
+  unpackPhase = ''
+    dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner
+  '';
+
+  preConfigure = ''
+    cp --no-preserve=mode,ownership ${noto-fonts-cjk} opt/onlyoffice/desktopeditors/fonts/
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,lib,share}
+
+    mv usr/bin/* $out/bin
+    mv usr/share/* $out/share/
+    mv opt/onlyoffice/desktopeditors $out/share
+
+    substituteInPlace $out/bin/onlyoffice-desktopeditors \
+      --replace "/opt/onlyoffice/" "$out/share/"
+
+    ln -s $out/share/desktopeditors/DesktopEditors $out/bin/DesktopEditors
+
+    wrapProgram $out/bin/DesktopEditors \
+        --set QT_XKB_CONFIG_ROOT ${xkeyboard_config}/share/X11/xkb \
+        --set QTCOMPOSE ${xorg.libX11.out}/share/X11/locale
+
+    substituteInPlace $out/share/applications/onlyoffice-desktopeditors.desktop \
+      --replace "/usr/bin/onlyoffice-desktopeditor" "$out/bin/DesktopEditor"
+
+    runHook preInstall
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${runtimeLibs}" )
+  '';
+
+  meta = with lib; {
+    description = "Office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents";
+    homepage = "https://www.onlyoffice.com/";
+    platforms = [ "x86_64-linux" ];
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ nh2 gtrunsec ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/paperless/default.nix b/nixpkgs/pkgs/applications/office/paperless/default.nix
index 499078611fcb..c2578696c688 100644
--- a/nixpkgs/pkgs/applications/office/paperless/default.nix
+++ b/nixpkgs/pkgs/applications/office/paperless/default.nix
@@ -5,7 +5,7 @@
 , callPackage
 
 , python3
-, imagemagick7
+, imagemagick
 , ghostscript
 , optipng
 , tesseract
@@ -65,7 +65,7 @@ let
 
     buildPhase = let
       # Paperless has explicit runtime checks that expect these binaries to be in PATH
-      extraBin = lib.makeBinPath [ imagemagick7 ghostscript optipng tesseract unpaper ];
+      extraBin = lib.makeBinPath [ imagemagick ghostscript optipng tesseract unpaper ];
     in ''
       ${python.interpreter} -m compileall $srcDir
 
diff --git a/nixpkgs/pkgs/applications/office/portfolio/default.nix b/nixpkgs/pkgs/applications/office/portfolio/default.nix
index 47cda0518219..73cd5d7cd6c1 100644
--- a/nixpkgs/pkgs/applications/office/portfolio/default.nix
+++ b/nixpkgs/pkgs/applications/office/portfolio/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.50.3";
+  version = "0.51.2";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "sha256-8sFBxcs3tnIQQ4S39aF8r9SGm9VOHPpgQYyLkUaOscw=";
+    sha256 = "sha256-5wBzGj4DkTOqtN7X8/EBDoiBtbYB6vGJJ5IkuME7a9A=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/pympress/default.nix b/nixpkgs/pkgs/applications/office/pympress/default.nix
index b4307eb286e5..ebc93edba6ef 100644
--- a/nixpkgs/pkgs/applications/office/pympress/default.nix
+++ b/nixpkgs/pkgs/applications/office/pympress/default.nix
@@ -1,13 +1,10 @@
 { lib
 , python3Packages
 , wrapGAppsHook
-, xvfb_run
 , gtk3
 , gobject-introspection
 , libcanberra-gtk3
-, dbus
 , poppler_gi
-, python3
  }:
 
 python3Packages.buildPythonApplication rec {
diff --git a/nixpkgs/pkgs/applications/office/pyspread/default.nix b/nixpkgs/pkgs/applications/office/pyspread/default.nix
index 0b657e38f7fe..54d3b8f5c3e2 100644
--- a/nixpkgs/pkgs/applications/office/pyspread/default.nix
+++ b/nixpkgs/pkgs/applications/office/pyspread/default.nix
@@ -1,44 +1,52 @@
 { lib
-, buildPythonApplication
-, fetchPypi
+, python3
+, fetchpatch
 , makeDesktopItem
-, makePythonPath
-, dateutil
-, matplotlib
-, numpy
-, pyenchant
-, pyqt5
-, pytest
-, python
 , qtsvg
-, runtimeShell
 , wrapQtAppsHook
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "pyspread";
-  version = "1.99.5";
+  version = "1.99.6";
 
-  src = fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-05bC+Uvx72FAh3qxkgXm8jdb/gHRv1D/M7tjOEdE3Xg=";
+    sha256 = "sha256-B1oyWUAXn63mmVFN9brJwbHxi7I5nYrK2JJU1DjAlb8=";
   };
 
-  pythonLibs = [
+  patches = [
+    # https://gitlab.com/pyspread/pyspread/-/merge_requests/34
+    (fetchpatch {
+      name = "entry-points.patch";
+      url = "https://gitlab.com/pyspread/pyspread/-/commit/3d8da6a7a7d76f7027d77ca95fac103961d729a2.patch";
+      excludes = [ "bin/pyspread" "bin/pyspread.bat" ];
+      sha256 = "1l614k7agv339hrin23jj7s1mq576vkdfkdim6wp224k7y37bnil";
+    })
+  ];
+
+  nativeBuildInputs = [
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtsvg
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
     dateutil
+    markdown2
     matplotlib
     numpy
     pyenchant
     pyqt5
-  ];
-
-  nativeBuildInputs = [ wrapQtAppsHook ];
-  buildInputs = pythonLibs ++ [
-    qtsvg
+    setuptools
   ];
 
   doCheck = false; # it fails miserably with a core dump
 
+  pythonImportsCheck = [ "pyspread" ];
+
   desktopItem = makeDesktopItem rec {
     name = pname;
     exec = name;
@@ -50,20 +58,11 @@ buildPythonApplication rec {
   };
 
   postInstall = ''
-    runHook preInstall
-    install -D $out/share/applications
-    install -m 644 $desktopItem/share/applications/* $out/share/applications
-    runHook postInstall
+    install -m 444 -Dt $out/share/applications ${desktopItem}/share/applications/*
   '';
 
-  fixupPhase = ''
-    runHook preFixup
-    sed -i -e "s|#!/bin/bash|#!${runtimeShell}|" $out/bin/pyspread
-    wrapProgram $out/bin/pyspread \
-      --prefix PYTHONPATH ':' $(toPythonPath $out):${makePythonPath pythonLibs} \
-      --prefix PATH ':' ${python}/bin/ \
-      ''${qtWrapperArgs[@]}
-    runHook postFixup
+  preFixup = ''
+    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/office/qownnotes/default.nix b/nixpkgs/pkgs/applications/office/qownnotes/default.nix
index 99b021429a65..e397743b22de 100644
--- a/nixpkgs/pkgs/applications/office/qownnotes/default.nix
+++ b/nixpkgs/pkgs/applications/office/qownnotes/default.nix
@@ -1,19 +1,19 @@
-{  mkDerivation, lib, fetchurl, qmake, qttools, qtbase, qtsvg, qtdeclarative, qtxmlpatterns, qtwayland, qtwebsockets, stdenv /* for isLinux */ }:
+{ mkDerivation, lib, fetchurl, qmake, qttools, qtbase, qtsvg, qtdeclarative, qtxmlpatterns, qtwayland, qtwebsockets, stdenv, qtx11extras }:
 
 mkDerivation rec {
   pname = "qownnotes";
-  version = "20.2.5";
+  version = "21.3.2";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
     # Can grab official version like so:
-    # $ curl https://download.tuxfamily.org/qownnotes/src/qownnotes-20.2.5.tar.xz.sha256
-    sha256 = "c26d2a86a521cd243ec0a4788e7627e91cb5877dace73d93dd7d35dd02e9e4c5";
+    # $ curl https://download.tuxfamily.org/qownnotes/src/qownnotes-21.3.2.tar.xz.sha256
+    sha256 = "a8e8ab2ca1ef6684407adeb8fc63abcafff407a367471e053c583a1c4215e5ee";
   };
 
   nativeBuildInputs = [ qmake qttools ];
   buildInputs = [
-    qtbase qtsvg qtdeclarative qtxmlpatterns qtwebsockets
+    qtbase qtsvg qtdeclarative qtxmlpatterns qtwebsockets qtx11extras
   ] ++ lib.optional stdenv.isLinux qtwayland;
 
   meta = with lib; {
@@ -21,7 +21,7 @@ mkDerivation rec {
 
     homepage = "https://www.qownnotes.org/";
     platforms = platforms.all;
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ dtzWill ];
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ dtzWill totoroot ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/semantik/default.nix b/nixpkgs/pkgs/applications/office/semantik/default.nix
new file mode 100644
index 000000000000..371dd52a8402
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/semantik/default.nix
@@ -0,0 +1,90 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, wafHook
+, pkg-config
+, cmake
+, qtbase
+, python3
+, qtwebengine
+, qtsvg
+, ncurses6
+, kio
+, kauth
+, kiconthemes
+, kconfigwidgets
+, kxmlgui
+, kcoreaddons
+, kconfig
+, kwidgetsaddons
+, ki18n
+, sonnet
+, kdelibs4support
+}:
+
+mkDerivation rec {
+  pname = "semantik";
+  version = "1.2.5";
+
+  src = fetchFromGitLab {
+    owner = "ita1024";
+    repo = "semantik";
+    rev = "semantik-${version}";
+    sha256 = "0dkg6mbnsbvbis17iz8v59wlhld93nc51abnkbyqvvkyyiqb006c";
+  };
+
+  patches = [ ./qt5.patch ];
+
+  postPatch = ''
+    echo "${lib.getDev qtwebengine}"
+    substituteInPlace wscript \
+      --replace @Qt5Base_dev@ "${lib.getDev qtbase}" \
+      --replace @KF5KIOCore_dev@ "${lib.getDev kio}" \
+      --replace @KF5Auth_dev@ "${lib.getDev kauth}" \
+      --replace @KF5IconThemes_dev@ "${lib.getDev kiconthemes}" \
+      --replace @KF5ConfigWidgets_dev@ "${lib.getDev kconfigwidgets}" \
+      --replace @KF5XmlGui_dev@ "${lib.getDev kxmlgui}" \
+      --replace @KF5CoreAddons_dev@ "${lib.getDev kcoreaddons}" \
+      --replace @KF5Config_dev@ "${lib.getDev kconfig}" \
+      --replace @KF5WidgetsAddons_dev@ "${lib.getDev kwidgetsaddons}" \
+      --replace @KF5I18n_dev@ "${lib.getDev ki18n}" \
+      --replace @KF5SonnetUi_dev@ "${lib.getDev sonnet}" \
+      --replace @Qt5Svg@ "${qtsvg}" \
+      --replace @Qt5Svg_dev@ "${lib.getDev qtsvg}" \
+      --replace @Qt5WebEngine@ "${qtwebengine}" \
+      --replace @Qt5WebEngine_dev@ "${lib.getDev qtwebengine}" \
+      --replace /usr/include/KF5/KDELibs4Support "${lib.getDev kdelibs4support}/include/KF5/KDELibs4Support"
+  '';
+
+  nativeBuildInputs = [ (lib.getDev qtsvg) (lib.getLib qtsvg) python3 pkg-config wafHook cmake ];
+
+  buildInputs = [
+    qtbase
+    qtwebengine
+    qtsvg
+    ncurses6
+    kio
+    kauth
+    kiconthemes
+    kconfigwidgets
+    kxmlgui
+    kcoreaddons
+    kconfig
+    kwidgetsaddons
+    ki18n
+    sonnet
+    kdelibs4support
+  ];
+
+  wafConfigureFlags = [
+    "--qtlibs=${lib.getLib qtbase}/lib"
+  ];
+
+  meta = with lib; {
+    description = "A mind-mapping application for KDE";
+    license = licenses.mit;
+    homepage = "https://waf.io/semantik.html";
+    maintainers = [ maintainers.shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/semantik/qt5.patch b/nixpkgs/pkgs/applications/office/semantik/qt5.patch
new file mode 100644
index 000000000000..6d41babdff47
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/semantik/qt5.patch
@@ -0,0 +1,78 @@
+diff --color -ur a/wscript b/wscript
+--- a/wscript	2020-08-17 19:49:43.389864343 +0200
++++ b/wscript	2020-08-18 00:22:51.172556519 +0200
+@@ -149,6 +149,26 @@
+ 	if not conf.env.QT_LRELEASE: conf.fatal('Semantik requires the program lrelease (from the Qt linguist package? - compilation only)')
+ 	conf.find_program('python3', var='PYTHON')
+ 	conf.load('python')
++	conf.env.HAVE_QT5SVG = 1
++	conf.env.DEFINES_QT5SVG = [ 'QT_SVG_LIB' ]
++	conf.env.INCLUDES_QT5SVG = [ '@Qt5Svg_dev@/include/QtSvg' ]
++	conf.env.LIBPATH_QT5SVG = '@Qt5Svg@/lib'
++	conf.env.LIB_QT5SVG = [ 'Qt5Svg', 'Qt5Core', 'Qt5Gui', 'Qt5Widgets' ]
++	conf.env.HAVE_QT5WEBENGINEWIDGETS = 1
++	conf.env.DEFINES_QT5WEBENGINEWIDGETS = [ 'QT_WEBENGINEWIDGETS_LIB' ]
++	conf.env.INCLUDES_QT5WEBENGINEWIDGETS = [ '@Qt5WebEngine_dev@/include/QtWebEngineWidgets' ]
++	conf.env.LIBPATH_QT5WEBENGINEWIDGETS = '@Qt5WebEngine@/lib'
++	conf.env.LIB_QT5WEBENGINEWIDGETS = [
++		'Qt5WebEngineWidgets',
++		'Qt5Core',
++		'Qt5Gui',
++		'Qt5WebEngineCore',
++		'Qt5Widgets',
++		'Qt5Network',
++		'Qt5Quick',
++		'Qt5PrintSupport'
++	]
++	print("conf.env.LIB_QT5SVG : ",conf.env)
+ 	if not conf.env.LIB_QT5SVG: conf.fatal('Could not find Qt5Svg - Semantik requires Qt >= 5')
+ 	if not conf.env.LIB_QT5WEBENGINEWIDGETS: conf.fatal('Could not find Qt5WebEngineWidgets - check `pkg-config --libs Qt5WebEngineWidgets`')
+ 	if not conf.env.LIB_QT5DBUS: conf.fatal('Install Qt Dbus')
+@@ -186,7 +206,11 @@
+ 		raise ValueError('Could not find QT_HOST_DATA')
+ 
+ 	specpath = conf.cmd_and_log(conf.env.QMAKE + ['-query', 'QMAKE_SPEC'], quiet=0, stdout=True)
++	path = "@Qt5Base_dev@"
++	print("\n\n[log] specpath = ",specpath,"\n")
++	print("\n\n[log] path = ",path,"\n")
+ 	specpath = os.path.join(path, 'mkspecs', specpath.strip())
++	print("\n\n[log] specpath = ",specpath,"\n")
+ 	if not os.path.exists(specpath):
+ 		raise ValueError('No spec path, cannot build')
+ 
+@@ -196,17 +220,28 @@
+ 
+ 	conf.env.append_value('INCLUDES_KDECORE', specpath)
+ 
+-	libs = ['KF5KIOCore', 'KF5Auth', 'KF5KIOWidgets',
+-		'KF5IconThemes', 'KF5ConfigWidgets', 'KF5XmlGui',
+-		'KF5CoreAddons', 'KF5ConfigGui', 'KF5ConfigCore',
+-		'KF5WidgetsAddons', 'KF5I18n', 'KF5SonnetUi']
++	libs = {
++            'KF5KIOCore': '@KF5KIOCore_dev@',
++            'KF5Auth': '@KF5Auth_dev@',
++            'KF5KIOWidgets': '@KF5KIOCore_dev@',
++            'KF5IconThemes': '@KF5IconThemes_dev@',
++            'KF5ConfigWidgets': '@KF5ConfigWidgets_dev@',
++            'KF5XmlGui': '@KF5XmlGui_dev@',
++            'KF5CoreAddons': '@KF5CoreAddons_dev@',
++            'KF5ConfigGui': '@KF5Config_dev@',
++            'KF5ConfigCore': '@KF5Config_dev@',
++            'KF5WidgetsAddons': '@KF5WidgetsAddons_dev@',
++            'KF5I18n': '@KF5I18n_dev@',
++            'KF5SonnetUi': '@KF5SonnetUi_dev@',
++        }
+ 
+-	for lib in libs:
++	for lib,mkspec_path in libs.items():
++		print("[log] mkspec : ", mkspec_path)
+ 		name = lib[3:]
+ 		if not name.startswith('K') and name != 'SonnetUi':
+ 			name = 'K' + name
+-
+-		p = '%s/qt_%s.pri' % (path, name)
++		p = '%s/qt_%s.pri' % (mkspec_path+"/mkspecs/modules", name)
++		print("[log] path :",path,", name : ",name)
+ 		for line in Utils.readf(p).splitlines():
+ 			lst = line.strip().split(' = ')
+ 			if lst[0].endswith('.name'):
diff --git a/nixpkgs/pkgs/applications/office/skanlite/default.nix b/nixpkgs/pkgs/applications/office/skanlite/default.nix
index 89cf2add212c..6cdbea755984 100644
--- a/nixpkgs/pkgs/applications/office/skanlite/default.nix
+++ b/nixpkgs/pkgs/applications/office/skanlite/default.nix
@@ -3,13 +3,12 @@
   libksane
 }:
 
-let
-  minorVersion = "2.2";
-in mkDerivation rec {
-  name = "skanlite-2.2.0";
+mkDerivation rec {
+  pname   = "skanlite";
+  version = "2.2.0";
 
   src = fetchurl {
-    url    = "mirror://kde/stable/skanlite/${minorVersion}/${name}.tar.xz";
+    url    = "mirror://kde/stable/skanlite/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "VP7MOZdUe64XIVr3r0aKIl1IPds3vjBTZzOS3N3VhOQ=";
   };
 
@@ -23,9 +22,9 @@ in mkDerivation rec {
 
   meta = with lib; {
     description = "KDE simple image scanning application";
-    homepage    = "http://www.kde.org/applications/graphics/skanlite/";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ pshendry ];
+    homepage    = "https://apps.kde.org/skanlite";
+    license     = licenses.gpl2Plus;
+    maintainers = with maintainers; [ polendri ];
     platforms   = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/skrooge/default.nix b/nixpkgs/pkgs/applications/office/skrooge/default.nix
index 067b06747d77..8f5beee38451 100644
--- a/nixpkgs/pkgs/applications/office/skrooge/default.nix
+++ b/nixpkgs/pkgs/applications/office/skrooge/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "skrooge";
-  version = "2.23.0";
+  version = "2.24.6";
 
   src = fetchurl {
     url = "http://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
-    sha256 = "10k3j67x5xm5whsvb84k9p70bkn4jbbbvdfan7q49dh2mmpair5a";
+    sha256 = "sha256-DReIm9lcq0j761wWTpJu7HnfEWz9QsRGgUtyVaXFs6A=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix b/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix
index bdd90fecb8ee..b1b24c3e6cb5 100644
--- a/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix
+++ b/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix
@@ -5,9 +5,9 @@
   # overridable. This is useful when the upstream archive was replaced
   # and nixpkgs is not in sync yet.
 , officeVersion ? {
-  version = "980";
+  version = "982";
   edition = "2018";
-  sha256 = "19pgil86aagiz6z4kx22gd4cxbbmrx42ix42arkfb6p6hav1plby";
+  hash = "sha256-euoZfAaDDTXzoaNLc/YdTngreTiYOBi7sGU161GP83w=";
 }
 
 , ... } @ args:
@@ -19,7 +19,7 @@ callPackage ./generic.nix (args // rec {
   suiteName = "FreeOffice";
 
   src = fetchurl {
-    inherit (officeVersion) sha256;
+    inherit (officeVersion) hash;
     url = "https://www.softmaker.net/down/softmaker-freeoffice-${version}-amd64.tgz";
   };
 
diff --git a/nixpkgs/pkgs/applications/office/softmaker/generic.nix b/nixpkgs/pkgs/applications/office/softmaker/generic.nix
index a80eaa459c01..56a951919e36 100644
--- a/nixpkgs/pkgs/applications/office/softmaker/generic.nix
+++ b/nixpkgs/pkgs/applications/office/softmaker/generic.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, autoPatchelfHook, makeDesktopItem, makeWrapper, copyDesktopItems
+{ lib, stdenv, autoPatchelfHook, makeDesktopItem, makeWrapper, copyDesktopItems
 
   # Dynamic Libraries
 , curl, libGL, libX11, libXext, libXmu, libXrandr, libXrender
diff --git a/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix b/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
index d0eb2ffdc935..9228037e8bf8 100644
--- a/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
+++ b/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
@@ -6,9 +6,9 @@
   # Softmaker Office or when the upstream archive was replaced and
   # nixpkgs is not in sync yet.
 , officeVersion ? {
-  version = "1020";
+  version = "1030";
   edition = "2021";
-  sha256 = "1v227pih1p33x7axsw7wz8pz5walpbqnk0iqng711ixk883nqxn5";
+  hash = "sha256-bpnyPyZnJc9RFVrFM2o3M7Gc4PSKFGpaM1Yo8ZKGHrE=";
 }
 
 , ... } @ args:
@@ -20,7 +20,7 @@ callPackage ./generic.nix (args // rec {
   suiteName = "SoftMaker Office";
 
   src = fetchurl {
-    inherit (officeVersion) sha256;
+    inherit (officeVersion) hash;
     url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
   };
 
diff --git a/nixpkgs/pkgs/applications/office/timeular/default.nix b/nixpkgs/pkgs/applications/office/timeular/default.nix
index 6c1068d45844..5bbfca23d6de 100644
--- a/nixpkgs/pkgs/applications/office/timeular/default.nix
+++ b/nixpkgs/pkgs/applications/office/timeular/default.nix
@@ -1,8 +1,7 @@
-{
-  lib,
-  fetchurl,
-  appimageTools,
-  libsecret
+{ lib
+, fetchurl
+, appimageTools
+, libsecret
 }:
 
 let
@@ -37,7 +36,7 @@ in appimageTools.wrapType2 rec {
       Assign an activity to each side and flip to start tracking your time.
       The desktop app tell you where every minute of your day is spent.
     '';
-    homepage = https://timeular.com;
+    homepage = "https://timeular.com";
     license = licenses.unfree;
     maintainers = with maintainers; [ ktor ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/office/treesheets/default.nix b/nixpkgs/pkgs/applications/office/treesheets/default.nix
index 552d28d1e950..1f084e182afc 100644
--- a/nixpkgs/pkgs/applications/office/treesheets/default.nix
+++ b/nixpkgs/pkgs/applications/office/treesheets/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0krsj7i5yr76imf83krz2lmlmpbsvpwqg2d4r0jwxiydjfyj4qr4";
   };
 
-  buildInputs = [ wxGTK makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ wxGTK ];
 
   preConfigure = "cd src";
 
diff --git a/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch b/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
index 1a4350ca71a1..21b6b1c579cd 100644
--- a/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
+++ b/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
@@ -1,17 +1,8 @@
-From 5be803a1171855f976a5b607970fa3949db72181 Mon Sep 17 00:00:00 2001
-From: Christian Kampka <christian@kampka.net>
-Date: Mon, 9 Dec 2019 19:40:27 +0100
-Subject: [PATCH] Use console logger instead of rolling files
-
----
- src/services/log.js | 26 +++-----------------------
- 1 file changed, 3 insertions(+), 23 deletions(-)
-
 diff --git a/src/services/log.js b/src/services/log.js
-index 1514c209..456c3749 100644
+index b4c39e99..4c249154 100644
 --- a/src/services/log.js
 +++ b/src/services/log.js
-@@ -1,35 +1,15 @@
+@@ -1,14 +1,5 @@
  "use strict";
  
 -const fs = require('fs');
@@ -21,49 +12,50 @@ index 1514c209..456c3749 100644
 -    fs.mkdirSync(dataDir.LOG_DIR, 0o700);
 -}
 -
--const logger = require('simple-node-logger').createRollingFileLogger({
--    errorEventName: 'error',
--    logDirectory: dataDir.LOG_DIR,
--    fileNamePattern: 'trilium-<DATE>.log',
--    dateFormat:'YYYY-MM-DD'
--});
+-let logFile = null;
 -
- function info(message) {
-     // info messages are logged asynchronously
-     setTimeout(() => {
-         console.log(message);
--
--        logger.info(message);
-     }, 0);
- }
+ const SECOND = 1000;
+ const MINUTE = 60 * SECOND;
+ const HOUR = 60 * MINUTE;
+@@ -16,41 +7,7 @@ const DAY = 24 * HOUR;
  
- function error(message) {
-     message = "ERROR: " + message;
+ const NEW_LINE = process.platform === "win32" ? '\r\n' : '\n';
  
--    // we're using .info() instead of .error() because simple-node-logger emits weird error for showError()
--    // errors are logged synchronously to make sure it doesn't get lost in case of crash
--    logger.info(message);
+-let todaysMidnight = null;
 -
-     console.trace(message);
- }
- 
-@@ -45,12 +25,12 @@ function request(req) {
-     if (req.url.includes(".js.map") || req.url.includes(".css.map")) {
-         return;
-     }
+-initLogFile();
+-
+-function getTodaysMidnight() {
+-    const now = new Date();
+-
+-    return new Date(now.getFullYear(), now.getMonth(), now.getDate());
+-}
+-
+-function initLogFile() {
+-    todaysMidnight = getTodaysMidnight();
+-
+-    const path = dataDir.LOG_DIR + '/trilium-' + formatDate() + '.log';
+-
+-    if (logFile) {
+-        logFile.end();
+-    }
+-
+-    logFile = fs.createWriteStream(path, {flags: 'a'});
+-}
+-
+-function checkDate(millisSinceMidnight) {
+-    if (millisSinceMidnight >= DAY) {
+-        initLogFile();
+-    }
+-}
+-
+ function log(str) {
+-    const millisSinceMidnight = Date.now() - todaysMidnight.getTime();
+-
+-    checkDate(millisSinceMidnight);
+-
+-    logFile.write(formatTime(millisSinceMidnight) + ' ' + str + NEW_LINE);
 -
--    logger.info(req.method + " " + req.url);
-+    if(process.env.DEBUG)
-+        console.log(req.method + " " + req.url);
+     console.log(str);
  }
  
- module.exports = {
-     info,
-     error,
-     request
--};
-\ No newline at end of file
-+};
--- 
-2.23.0
-
diff --git a/nixpkgs/pkgs/applications/office/trilium/default.nix b/nixpkgs/pkgs/applications/office/trilium/default.nix
index cb0781f74e19..32c9dc79d671 100644
--- a/nixpkgs/pkgs/applications/office/trilium/default.nix
+++ b/nixpkgs/pkgs/applications/office/trilium/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, wrapGAppsHook, zlib, libxkbfile }:
+{ lib, stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, wrapGAppsHook }:
 
 let
   description = "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases";
@@ -14,21 +14,21 @@ let
   meta = with lib; {
     inherit description;
     homepage = "https://github.com/zadam/trilium";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ emmanuelrosa dtzWill ];
+    maintainers = with maintainers; [ fliegendewurst ];
   };
 
-  version = "0.43.4";
+  version = "0.46.7";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "0kjysam5alsmnj93fcqq1ivawnra42gn7dch99rrfmvbkxp7hhr8";
+    sha256 = "0saqj32jcb9ga418bpdxy93hf1z8nmwzf76rfgnnac7286ciyinr";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "128mvmp15mjpb5ipkmr0yn7ahby26shbix3f8q094f4zpxjp83zx";
+    sha256 = "0b9bbm1iyaa5wf758085m6kfbq4li1iimj11ryf9xv9fzrbc4gvs";
   };
 
 in {
@@ -58,6 +58,7 @@ in {
     buildInputs = atomEnv.packages ++ [ gtk3 ];
 
     installPhase = ''
+      runHook preInstall
       mkdir -p $out/bin
       mkdir -p $out/share/trilium
       mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
@@ -67,6 +68,7 @@ in {
 
       ln -s ${trilium_svg} $out/share/icons/hicolor/scalable/apps/trilium.svg
       cp ${desktopItem}/share/applications/* $out/share/applications
+      runHook postInstall
     '';
 
     # LD_LIBRARY_PATH "shouldn't" be needed, remove when possible :)
@@ -91,16 +93,20 @@ in {
 
     buildInputs = [
       stdenv.cc.cc.lib
-      zlib
-      libxkbfile
     ];
 
-    patches = [ ./0001-Use-console-logger-instead-of-rolling-files.patch ] ;
+    patches = [
+      # patch logger to use console instead of rolling files
+      ./0001-Use-console-logger-instead-of-rolling-files.patch
+    ];
+
     installPhase = ''
+      runHook preInstall
       mkdir -p $out/bin
       mkdir -p $out/share/trilium-server
 
       cp -r ./* $out/share/trilium-server
+      runHook postInstall
     '';
 
     postFixup = ''
diff --git a/nixpkgs/pkgs/applications/office/wpsoffice/default.nix b/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
index e0f156f06c95..b18f22b6c1dc 100644
--- a/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
+++ b/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
@@ -23,7 +23,7 @@
 , libtool
 , libuuid
 , libxml2
-, lzma
+, xz
 , nspr
 , nss
 , openssl
@@ -55,13 +55,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook wrapQtAppsHook ];
 
-  meta = {
-    description = "Office program originally named Kingsoft Office";
-    homepage = "http://wps-community.org/";
+  meta = with lib; {
+    description = "Office suite, formerly Kingsoft Office";
+    homepage = "https://www.wps.com/";
     platforms = [ "x86_64-linux" ];
     hydraPlatforms = [];
-    license = lib.licenses.unfreeRedistributable;
-    maintainers = with lib.maintainers; [ mlatus th0rgal ];
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ mlatus th0rgal ];
   };
 
   buildInputs = with xorg; [
@@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
     libuuid
     libxcb
     libxml2
-    lzma
+    xz
     nspr
     nss
     openssl
diff --git a/nixpkgs/pkgs/applications/office/zotero/default.nix b/nixpkgs/pkgs/applications/office/zotero/default.nix
index 739b003bbef6..1584972cbebd 100644
--- a/nixpkgs/pkgs/applications/office/zotero/default.nix
+++ b/nixpkgs/pkgs/applications/office/zotero/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "5.0.89";
+  version = "5.0.96";
 
   src = fetchurl {
     url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    sha256 = "18p4qnnfx9f2frk7f2nk1d7jr4cjzg9z7lfzrk7vq11qgbjdpqbl";
+    sha256 = "sha256-W8Iu8UoTqC3aK7lB4bq1L7cNmjaEvjEK+ODcZ9kk3f8=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
       stdenv.cc.cc
     ];
 
-  patchPhase = ''
+  postPatch = ''
     sed -i '/pref("app.update.enabled", true);/c\pref("app.update.enabled", false);' defaults/preferences/prefs.js
   '';
 
@@ -103,33 +103,36 @@ stdenv.mkDerivation rec {
     mimeType = "text/plain";
   };
 
-  installPhase =
-  ''
-     mkdir -p "$prefix/usr/lib/zotero-bin-${version}"
-     cp -r * "$prefix/usr/lib/zotero-bin-${version}"
-     mkdir -p "$out/bin"
-     ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/"
+  installPhase = ''
+    runHook preInstall
 
-     # install desktop file and icons.
-     mkdir -p $out/share/applications
-     cp ${desktopItem}/share/applications/* $out/share/applications/
-     for size in 16 32 48 256; do
-       install -Dm444 chrome/icons/default/default$size.png \
-         $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
-     done
+    mkdir -p "$prefix/usr/lib/zotero-bin-${version}"
+    cp -r * "$prefix/usr/lib/zotero-bin-${version}"
+    mkdir -p "$out/bin"
+    ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/"
 
-     for executable in \
-       zotero-bin plugin-container \
-       updater minidump-analyzer
-     do
-       if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then
-         patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-           "$out/usr/lib/zotero-bin-${version}/$executable"
-       fi
-     done
-     find . -executable -type f -exec \
-       patchelf --set-rpath "$libPath" \
-         "$out/usr/lib/zotero-bin-${version}/{}" \;
+    # install desktop file and icons.
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications/
+    for size in 16 32 48 256; do
+      install -Dm444 chrome/icons/default/default$size.png \
+        $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
+    done
+
+    for executable in \
+      zotero-bin plugin-container \
+      updater minidump-analyzer
+    do
+      if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then
+        patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+          "$out/usr/lib/zotero-bin-${version}/$executable"
+      fi
+    done
+    find . -executable -type f -exec \
+      patchelf --set-rpath "$libPath" \
+        "$out/usr/lib/zotero-bin-${version}/{}" \;
+
+    runHook postInstall
   '';
 
   preFixup = ''
@@ -141,7 +144,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.zotero.org";
     description = "Collect, organize, cite, and share your research sources";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ i077 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/printing/pappl/default.nix b/nixpkgs/pkgs/applications/printing/pappl/default.nix
index 4c7b60c125cc..de0b9bada53c 100644
--- a/nixpkgs/pkgs/applications/printing/pappl/default.nix
+++ b/nixpkgs/pkgs/applications/printing/pappl/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pappl";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4evyOrPd8zb5y00L8h2t++ayW1S8WQ5P+6MXe6eju68=";
+    sha256 = "sha256-L4ptgAJAvyTUCVl6YotA8DnlISc9PwZM0WjXyOvxGJg=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/applications/radio/btlejack/default.nix b/nixpkgs/pkgs/applications/radio/btlejack/default.nix
new file mode 100644
index 000000000000..198c090b0ea1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/btlejack/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonApplication, fetchFromGitHub, pyserial, halo }:
+
+buildPythonApplication rec {
+  pname = "btlejack";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "virtualabs";
+    repo = "btlejack";
+    rev = "v${version}";
+    sha256 = "1r17079kx7dvsrbmw5sgvz3vj5m3pn2543gxj2xmw4s0lcihy378";
+  };
+
+  postPatch = ''
+    sed -i "s|^.*'argparse',$||" setup.py
+  '';
+
+  propagatedBuildInputs = [ pyserial halo ];
+
+  meta = with lib; {
+    homepage = "https://github.com/virtualabs/btlejack";
+    description = "Bluetooth Low Energy Swiss-army knife";
+    license = licenses.mit;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/radio/cqrlog/default.nix b/nixpkgs/pkgs/applications/radio/cqrlog/default.nix
new file mode 100644
index 000000000000..d86a08f3a1b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/cqrlog/default.nix
@@ -0,0 +1,101 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fpc
+, lazarus
+, atk
+, cairo
+, gdk-pixbuf
+, glib
+, gtk2-x11
+, libX11
+, pango
+, hamlib
+, mysql57
+, tqsl
+, xdg-utils
+, xplanet
+, autoPatchelfHook
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cqrlog";
+  version = "2.5.2";
+
+  src = fetchFromGitHub {
+    owner = "ok2cqr";
+    repo = "cqrlog";
+    rev = "v${version}";
+    sha256 = "0zzcg0bl6mq4wfifj998x9x09w8sigbh46synpqx034fpr0swyhb";
+  };
+
+  # Adds the possiblity to change the lazarus directory,
+  # otherwise, we would get error : "directory lcl not found"
+  patches = [ ./fix-makefile-lazarusdir.patch ];
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace @Lazarusdir@ "${lazarus}/share/lazarus" \
+      --replace /usr ""
+    substituteInPlace src/fTRXControl.pas \
+      --replace "/usr/bin/rigctld" "${hamlib}/bin/rigctld"
+    substituteInPlace src/fCallAttachment.pas \
+      --replace "/usr/bin/xdg-open" "${xdg-utils}/bin/xdg-open"
+    substituteInPlace src/fRotControl.pas \
+      --replace "/usr/bin/rotctld" "${hamlib}/bin/rotctld"
+    substituteInPlace src/fPreferences.pas \
+      --replace "/usr/bin/rigctld" "${hamlib}/bin/rigctld" \
+      --replace "/usr/bin/rotctld" "${hamlib}/bin/rotctld" \
+      --replace "/usr/bin/xplanet" "${xplanet}/bin/xplanet"
+    substituteInPlace src/fLoTWExport.pas \
+      --replace "/usr/bin/tqsl" "${tqsl}/bin/tqsl"
+    substituteInPlace src/dUtils.pas \
+      --replace "/usr/bin/xplanet" "${xplanet}/bin/xplanet" \
+      --replace "/usr/bin/rigctld" "${hamlib}/bin/rigctld"
+    # Order is important
+    substituteInPlace src/dData.pas \
+      --replace "/usr/bin/mysqld_safe" "${mysql57}/bin/mysqld_safe" \
+      --replace "/usr/bin/mysqld" "${mysql57}/bin/mysqld"
+
+    # To be fail when I need to patch a new hardcoded binary
+    ! grep -C src -RC0 "/usr"
+  '';
+
+  nativeBuildInputs = [ lazarus fpc autoPatchelfHook wrapGAppsHook ];
+  buildInputs = [
+    atk
+    cairo
+    gdk-pixbuf
+    glib
+    gtk2-x11
+    libX11
+    pango
+  ];
+  propagatedBuildInputs = [
+    hamlib
+    mysql57
+    tqsl
+    xdg-utils
+    xplanet
+  ];
+
+  makeFlags = [
+    "FPC=fpc"
+    "PP=fpc"
+    "DESTDIR=$(out)"
+  ];
+
+  postFixup = ''
+    libmysqlclient=$(find "${mysql57}/lib" -name "libmysqlclient.so.*" | tail -n1)
+    patchelf --add-needed "$libmysqlclient" "$out/bin/.cqrlog-wrapped"
+  '';
+
+  meta = with lib; {
+    description = "Linux logging program for amateur radio operators";
+    homepage = "https://www.cqrlog.com/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/radio/cqrlog/fix-makefile-lazarusdir.patch b/nixpkgs/pkgs/applications/radio/cqrlog/fix-makefile-lazarusdir.patch
new file mode 100644
index 000000000000..9170387966ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/cqrlog/fix-makefile-lazarusdir.patch
@@ -0,0 +1,13 @@
+Seulement dans b: logs
+diff --color -ur a/Makefile b/Makefile
+--- a/Makefile	2021-02-15 17:07:14.333810200 +0100
++++ b/Makefile	2021-02-15 17:19:18.599426984 +0100
+@@ -6,7 +6,7 @@
+ tmpdir   = /tmp
+ 
+ cqrlog: src/cqrlog.lpi
+-	$(CC) --ws=gtk2 --pcp=$(tmpdir)/.lazarus src/cqrlog.lpi
++	$(CC) --ws=gtk2 --pcp=$(tmpdir)/.lazarus --lazarusdir=@Lazarusdir@ src/cqrlog.lpi
+ 	$(ST) src/cqrlog
+ 	gzip tools/cqrlog.1 -c > tools/cqrlog.1.gz
+ 
diff --git a/nixpkgs/pkgs/applications/radio/dablin/default.nix b/nixpkgs/pkgs/applications/radio/dablin/default.nix
index e74cc551d497..a9f5fc991fff 100644
--- a/nixpkgs/pkgs/applications/radio/dablin/default.nix
+++ b/nixpkgs/pkgs/applications/radio/dablin/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config
-, mpg123, SDL2, gnome3, faad2, pcre
+, mpg123, SDL2, gtkmm3, faad2, pcre
 } :
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ faad2 mpg123 SDL2 gnome3.gtkmm pcre ];
+  buildInputs = [ faad2 mpg123 SDL2 gtkmm3 pcre ];
 
   meta = with lib; {
     description = "Play DAB/DAB+ from ETI-NI aligned stream";
diff --git a/nixpkgs/pkgs/applications/radio/direwolf/default.nix b/nixpkgs/pkgs/applications/radio/direwolf/default.nix
index e7da78034cc2..4f8ca550490a 100644
--- a/nixpkgs/pkgs/applications/radio/direwolf/default.nix
+++ b/nixpkgs/pkgs/applications/radio/direwolf/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, alsaLib, espeak, glibc, gpsd
-, hamlib, perl, python, udev }:
+, hamlib, perl, python3, udev }:
 
 with lib;
 
@@ -16,8 +16,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
+  strictDeps = true;
+
   buildInputs = [
-    espeak gpsd hamlib perl python
+    espeak gpsd hamlib perl python3
   ] ++ (optionals stdenv.isLinux [alsaLib udev]);
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix b/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix
index f48a21db75e7..44a8ed14c2ec 100644
--- a/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix
+++ b/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix
@@ -1,15 +1,16 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib
+, fetchFromGitHub
 , armadillo
-, boost
 , cmake
+, gmp
 , glog
-, gmock
+, gtest
 , openssl
 , gflags
-, gnuradio
+, gnuradio3_8
+, libpcap
 , orc
 , pkg-config
-, pythonPackages
 , uhd
 , log4cpp
 , blas, lapack
@@ -18,7 +19,7 @@
 , protobuf
 }:
 
-stdenv.mkDerivation rec {
+gnuradio3_8.pkgs.mkDerivation rec {
   pname = "gnss-sdr";
   version = "0.0.13";
 
@@ -29,27 +30,32 @@ stdenv.mkDerivation rec {
     sha256 = "0a3k47fl5dizzhbqbrbmckl636lznyjby2d2nz6fz21637hvrnby";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [
+    cmake
+    gnuradio3_8.unwrapped.python
+    gnuradio3_8.unwrapped.python.pkgs.Mako
+    gnuradio3_8.unwrapped.python.pkgs.six
+  ];
+
   buildInputs = [
+    gmp
     armadillo
-    boost.dev
+    gnuradio3_8.unwrapped.boost
     glog
-    gmock
-    openssl.dev
+    gtest
+    openssl
     gflags
-    gnuradio
     orc
-    pythonPackages.Mako
-    pythonPackages.six
-
     # UHD support is optional, but gnuradio is built with it, so there's
     # nothing to be gained by leaving it out.
-    uhd
+    gnuradio3_8.unwrapped.uhd
     log4cpp
     blas lapack
     matio
     pugixml
     protobuf
+    gnuradio3_8.pkgs.osmosdr
+    libpcap
   ];
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix b/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix
index a48efb9aa6d9..50993dd6f8ef 100644
--- a/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix
+++ b/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix
@@ -5,6 +5,7 @@
 # Remove gcc and python references
 , removeReferencesTo
 , pkg-config
+, volk
 , cppunit
 , swig
 , orc
@@ -43,11 +44,12 @@
   minor = "14";
   patch = "0";
 }
-, fetchSubmodules ? true
+# We use our build of volk and not the one bundled with the release
+, fetchSubmodules ? false
 }:
 
 let
-  sourceSha256 = "1nh4f9dmygprlbqybd3j1byg9fsr6065n140mvc4b0v8qqygmhrc";
+  sourceSha256 = "BiUDibXV/5cEYmAAaIxT4WTxF/ni4MJumF5oJ/vuOyc=";
   featuresInfo = {
     # Needed always
     basic = {
@@ -61,6 +63,9 @@ let
     };
     volk = {
       cmakeEnableFlag = "VOLK";
+      runtime = [
+        volk
+      ];
     };
     doxygen = {
       native = [ doxygen ];
@@ -213,19 +218,29 @@ let
     qt = qt4;
     gtk = gtk2;
   });
+  inherit (shared) hasFeature; # function
+in
+
+stdenv.mkDerivation rec {
+  inherit pname;
   inherit (shared)
     version
     src
-    hasFeature # function
     nativeBuildInputs
     buildInputs
     disallowedReferences
     postInstall
-    passthru
     doCheck
     dontWrapPythonPrograms
     meta
   ;
+
+  passthru = shared.passthru // {
+    # Deps that are potentially overriden and are used inside GR plugins - the same version must
+    inherit boost volk;
+  } // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+    inherit uhd;
+  };
   cmakeFlags = shared.cmakeFlags
     # From some reason, if these are not set, libcodec2 and gsm are
     # not detected properly (slightly different then what's in
@@ -236,6 +251,9 @@ let
       "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
       "-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm"
     ]
+    ++ lib.optionals (hasFeature "volk" features && volk != null) [
+      "-DENABLE_INTERNAL_VOLK=OFF"
+    ]
   ;
   stripDebugList = shared.stripDebugList
     # gr-fcd feature was dropped in 3.8
@@ -250,15 +268,6 @@ let
     + lib.optionalString (hasFeature "gnuradio-companion" features) ''
       sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt
     ''
-    # If python-support is disabled, don't install volk's (git submodule)
-    # volk_modtool - it references python.
-    #
-    # NOTE: The same is done for 3.8, but we don't put this string in
-    # ./shared.nix since on the next release of 3.8 it won't be needed there,
-    # but it will be needed for 3.7, probably for ever.
-    + lib.optionalString (!hasFeature "python-support" features) ''
-      sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt
-    ''
   ;
   patches = [
     # Don't install python referencing files if python support is disabled.
@@ -272,24 +281,4 @@ let
       sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8=";
     })
   ];
-in
-
-stdenv.mkDerivation rec {
-  inherit
-    pname
-    version
-    src
-    nativeBuildInputs
-    buildInputs
-    cmakeFlags
-    preConfigure
-    # disallowedReferences
-    stripDebugList
-    patches
-    postInstall
-    passthru
-    doCheck
-    dontWrapPythonPrograms
-    meta
-  ;
 }
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/3.8.nix b/nixpkgs/pkgs/applications/radio/gnuradio/3.8.nix
new file mode 100644
index 000000000000..9f90d3c03535
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/gnuradio/3.8.nix
@@ -0,0 +1,269 @@
+{ lib, stdenv
+, fetchFromGitHub
+, cmake
+# Remove gcc and python references
+, removeReferencesTo
+, pkg-config
+, volk
+, cppunit
+, swig
+, orc
+, boost
+, log4cpp
+, mpir
+, doxygen
+, python
+, codec2
+, gsm
+, fftwFloat
+, alsaLib
+, libjack2
+, CoreAudio
+, uhd
+, SDL
+, gsl
+, cppzmq
+, zeromq
+# Needed only if qt-gui is disabled, from some reason
+, icu
+# GUI related
+, gtk3
+, pango
+, gobject-introspection
+, cairo
+, qt5
+, libsForQt5
+# Features available to override, the list of them is in featuresInfo. They
+# are all turned on by default.
+, features ? {}
+# If one wishes to use a different src or name for a very custom build
+, overrideSrc ? {}
+, pname ? "gnuradio"
+, versionAttr ? {
+  major = "3.8";
+  minor = "3";
+  patch = "0";
+}
+# We use our build of volk and not the one bundled with the release
+, fetchSubmodules ? false
+}:
+
+let
+  sourceSha256 = "0lwbj3slhc8bjjvfw7yz45if21hajydgy2vsjvj2barzmhfb37fd";
+  featuresInfo = {
+    # Needed always
+    basic = {
+      native = [
+        cmake
+        pkg-config
+        orc
+      ];
+      runtime = [
+        boost
+        log4cpp
+        mpir
+      ]
+        # when gr-qtgui is disabled, icu needs to be included, otherwise
+        # building with boost 1.7x fails
+        ++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
+      pythonNative = with python.pkgs; [
+        Mako
+        six
+      ];
+    };
+    volk = {
+      cmakeEnableFlag = "VOLK";
+      runtime = [
+        volk
+      ];
+    };
+    doxygen = {
+      native = [ doxygen ];
+      cmakeEnableFlag = "DOXYGEN";
+    };
+    sphinx = {
+      pythonNative = with python.pkgs; [ sphinx ];
+      cmakeEnableFlag = "SPHINX";
+    };
+    python-support = {
+      pythonRuntime = [ python.pkgs.six ];
+      native = [
+        swig
+        python
+      ];
+      cmakeEnableFlag = "PYTHON";
+    };
+    testing-support = {
+      native = [ cppunit ];
+      cmakeEnableFlag = "TESTING";
+    };
+    gnuradio-runtime = {
+      cmakeEnableFlag = "GNURADIO_RUNTIME";
+    };
+    gr-ctrlport = {
+      # Thrift support is not really working well, and even the patch they
+      # recommend applying on 0.9.2 won't apply. See:
+      # https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
+      cmakeEnableFlag = "GR_CTRLPORT";
+      native = [
+        swig
+      ];
+    };
+    gnuradio-companion = {
+      pythonRuntime = with python.pkgs; [
+        pyyaml
+        Mako
+        numpy
+        pygobject3
+      ];
+      runtime = [
+        gtk3
+        pango
+        gobject-introspection
+        cairo
+      ];
+      cmakeEnableFlag = "GRC";
+    };
+    gr-blocks = {
+      cmakeEnableFlag = "GR_BLOCKS";
+    };
+    gr-fec = {
+      cmakeEnableFlag = "GR_FEC";
+    };
+    gr-fft = {
+      runtime = [ fftwFloat ];
+      cmakeEnableFlag = "GR_FFT";
+    };
+    gr-filter = {
+      runtime = [ fftwFloat ];
+      cmakeEnableFlag = "GR_FILTER";
+    };
+    gr-analog = {
+      cmakeEnableFlag = "GR_ANALOG";
+    };
+    gr-digital = {
+      cmakeEnableFlag = "GR_DIGITAL";
+    };
+    gr-dtv = {
+      cmakeEnableFlag = "GR_DTV";
+    };
+    gr-audio = {
+      runtime = []
+        ++ lib.optionals stdenv.isLinux [ alsaLib libjack2 ]
+        ++ lib.optionals stdenv.isDarwin [ CoreAudio ]
+      ;
+      cmakeEnableFlag = "GR_AUDIO";
+    };
+    gr-channels = {
+      cmakeEnableFlag = "GR_CHANNELS";
+    };
+    gr-qtgui = {
+      runtime = [ qt5.qtbase libsForQt5.qwt ];
+      pythonRuntime = [ python.pkgs.pyqt5 ];
+      cmakeEnableFlag = "GR_QTGUI";
+    };
+    gr-trellis = {
+      cmakeEnableFlag = "GR_TRELLIS";
+    };
+    gr-uhd = {
+      runtime = [ uhd ];
+      cmakeEnableFlag = "GR_UHD";
+    };
+    gr-utils = {
+      cmakeEnableFlag = "GR_UTILS";
+    };
+    gr-modtool = {
+      pythonRuntime = with python.pkgs; [
+        click
+        click-plugins
+      ];
+      cmakeEnableFlag = "GR_MODTOOL";
+    };
+    gr-video-sdl = {
+      runtime = [ SDL ];
+      cmakeEnableFlag = "GR_VIDEO_SDL";
+    };
+    gr-vocoder = {
+      runtime = [ codec2 gsm ];
+      cmakeEnableFlag = "GR_VOCODER";
+    };
+    gr-wavelet = {
+      cmakeEnableFlag = "GR_WAVELET";
+      runtime = [ gsl ];
+    };
+    gr-zeromq = {
+      runtime = [ cppzmq zeromq ];
+      cmakeEnableFlag = "GR_ZEROMQ";
+    };
+  };
+  shared = (import ./shared.nix {
+    inherit
+      stdenv
+      lib
+      python
+      removeReferencesTo
+      featuresInfo
+      features
+      versionAttr
+      sourceSha256
+      overrideSrc
+      fetchFromGitHub
+      fetchSubmodules
+    ;
+    qt = qt5;
+    gtk = gtk3;
+  });
+  inherit (shared) hasFeature; # function
+in
+
+stdenv.mkDerivation rec {
+  inherit pname;
+  inherit (shared)
+    version
+    src
+    nativeBuildInputs
+    buildInputs
+    disallowedReferences
+    stripDebugList
+    doCheck
+    dontWrapPythonPrograms
+    dontWrapQtApps
+    meta
+  ;
+  passthru = shared.passthru // {
+    # Deps that are potentially overriden and are used inside GR plugins - the same version must
+    inherit boost volk;
+  } // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+    inherit uhd;
+  } // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+    inherit (libsForQt5) qwt;
+  };
+  cmakeFlags = shared.cmakeFlags
+    # From some reason, if these are not set, libcodec2 and gsm are not
+    # detected properly. The issue is reported upstream:
+    # https://github.com/gnuradio/gnuradio/issues/4278
+    #
+    # NOTE: qradiolink needs libcodec2 to be detected in
+    # order to build, see https://github.com/qradiolink/qradiolink/issues/67
+    ++ lib.optionals (hasFeature "gr-vocoder" features) [
+      "-DLIBCODEC2_FOUND=TRUE"
+      "-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
+      "-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
+      "-DLIBCODEC2_HAS_FREEDV_API=ON"
+      "-DLIBGSM_FOUND=TRUE"
+      "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
+      "-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
+    ]
+    ++ lib.optionals (hasFeature "volk" features && volk != null) [
+      "-DENABLE_INTERNAL_VOLK=OFF"
+    ]
+  ;
+
+  postInstall = shared.postInstall
+    # This is the only python reference worth removing, if needed (3.7 doesn't
+    # set that reference).
+    + lib.optionalString (!hasFeature "python-support" features) ''
+      ${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
+    ''
+  ;
+}
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/ais.nix b/nixpkgs/pkgs/applications/radio/gnuradio/ais.nix
deleted file mode 100644
index 8d6e8509772c..000000000000
--- a/nixpkgs/pkgs/applications/radio/gnuradio/ais.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, pkg-config
-, boost
-, gnuradio
-, makeWrapper
-, cppunit
-, gr-osmosdr
-, log4cpp
-, pythonSupport ? true
-, python
-, swig
-, fetchpatch
-}:
-
-stdenv.mkDerivation {
-  pname = "gr-ais";
-  version = "2015-12-20";
-
-  src = fetchFromGitHub {
-    owner = "bistromath";
-    repo = "gr-ais";
-    rev = "cdc1f52745853f9c739c718251830eb69704b26e";
-    sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6";
-  };
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/bistromath/gr-ais/commit/8502d0252a2a1a9b8d1a71795eaeb5d820684054.patch";
-      sha256 = "1cwalphldvf6dbhzwz1gi53z0cb4921qsvlz4138q7m6dxccvssg";
-    })
-  ];
-
-  nativeBuildInputs = [ cmake makeWrapper pkg-config ];
-  buildInputs = [ boost gnuradio cppunit gr-osmosdr log4cpp ]
-    ++ lib.optionals pythonSupport [ python swig ];
-
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-    done
-  '';
-
-  meta = with lib; {
-    description = "Gnuradio block for ais";
-    homepage = "https://github.com/bistromath/gr-ais";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ mog ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/default.nix b/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
index 9223f160db30..d622fef424d2 100644
--- a/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
+++ b/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
@@ -5,8 +5,8 @@
 # Remove gcc and python references
 , removeReferencesTo
 , pkg-config
+, volk
 , cppunit
-, swig
 , orc
 , boost
 , log4cpp
@@ -22,8 +22,13 @@
 , uhd
 , SDL
 , gsl
+, libsodium
+, libsndfile
+, libunwind
 , cppzmq
 , zeromq
+# Needed only if qt-gui is disabled, from some reason
+, icu
 # GUI related
 , gtk3
 , pango
@@ -38,16 +43,15 @@
 , overrideSrc ? {}
 , pname ? "gnuradio"
 , versionAttr ? {
-  major = "3.8";
-  minor = "2";
+  major = "3.9";
+  minor = "1";
   patch = "0";
 }
-# Should be false on the release after 3.8.2.0
-, fetchSubmodules ? true
+, fetchSubmodules ? false
 }:
 
 let
-  sourceSha256 =  "1mnfwdy7w3160vi6110x2qkyq8l78qi8771zwak9n72bl7lhhpnf";
+  sourceSha256 = "0zydmrr3gkaqiv4jv8f42awrfzs177bqb349q34rnr6j3d32z2vp";
   featuresInfo = {
     # Needed always
     basic = {
@@ -57,32 +61,26 @@ let
         orc
       ];
       runtime = [
+        volk
         boost
         log4cpp
         mpir
-      ];
+      ]
+        # when gr-qtgui is disabled, icu needs to be included, otherwise
+        # building with boost 1.7x fails
+        ++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
       pythonNative = with python.pkgs; [
         Mako
         six
       ];
     };
-    # NOTE: Should be removed on the release after 3.8.2.0, see:
-    # https://github.com/gnuradio/gnuradio/commit/80c04479d
-    volk = {
-      cmakeEnableFlag = "VOLK";
-    };
     doxygen = {
       native = [ doxygen ];
       cmakeEnableFlag = "DOXYGEN";
     };
-    sphinx = {
-      pythonNative = with python.pkgs; [ sphinx ];
-      cmakeEnableFlag = "SPHINX";
-    };
     python-support = {
       pythonRuntime = [ python.pkgs.six ];
       native = [
-        swig
         python
       ];
       cmakeEnableFlag = "PYTHON";
@@ -91,17 +89,23 @@ let
       native = [ cppunit ];
       cmakeEnableFlag = "TESTING";
     };
+    post-install = {
+      cmakeEnableFlag = "POSTINSTALL";
+    };
     gnuradio-runtime = {
       cmakeEnableFlag = "GNURADIO_RUNTIME";
+      pythonRuntime = [
+        python.pkgs.pybind11
+      ];
     };
     gr-ctrlport = {
       # Thrift support is not really working well, and even the patch they
       # recommend applying on 0.9.2 won't apply. See:
-      # https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
-      cmakeEnableFlag = "GR_CTRLPORT";
-      native = [
-        swig
+      # https://github.com/gnuradio/gnuradio/blob/v3.9.0.0/gnuradio-runtime/lib/controlport/thrift/README
+      runtime = [
+        libunwind
       ];
+      cmakeEnableFlag = "GR_CTRLPORT";
     };
     gnuradio-companion = {
       pythonRuntime = with python.pkgs; [
@@ -110,11 +114,15 @@ let
         numpy
         pygobject3
       ];
+      native = [
+        python.pkgs.pytest
+      ];
       runtime = [
         gtk3
         pango
         gobject-introspection
         cairo
+        libsndfile
       ];
       cmakeEnableFlag = "GRC";
     };
@@ -160,7 +168,9 @@ let
       cmakeEnableFlag = "GR_TRELLIS";
     };
     gr-uhd = {
-      runtime = [ uhd ];
+      runtime = [
+        uhd
+      ];
       cmakeEnableFlag = "GR_UHD";
     };
     gr-utils = {
@@ -173,6 +183,9 @@ let
       ];
       cmakeEnableFlag = "GR_MODTOOL";
     };
+    gr-blocktool = {
+      cmakeEnableFlag = "GR_BLOCKTOOL";
+    };
     gr-video-sdl = {
       runtime = [ SDL ];
       cmakeEnableFlag = "GR_VIDEO_SDL";
@@ -183,12 +196,15 @@ let
     };
     gr-wavelet = {
       cmakeEnableFlag = "GR_WAVELET";
-      runtime = [ gsl ];
+      runtime = [ gsl libsodium ];
     };
     gr-zeromq = {
       runtime = [ cppzmq zeromq ];
       cmakeEnableFlag = "GR_ZEROMQ";
     };
+    gr-network = {
+      cmakeEnableFlag = "GR_NETWORK";
+    };
   };
   shared = (import ./shared.nix {
     inherit
@@ -207,82 +223,54 @@ let
     qt = qt5;
     gtk = gtk3;
   });
+  inherit (shared) hasFeature; # function
+in
+
+stdenv.mkDerivation rec {
+  inherit pname;
   inherit (shared)
     version
     src
-    hasFeature # function
     nativeBuildInputs
     buildInputs
     disallowedReferences
     stripDebugList
-    passthru
     doCheck
     dontWrapPythonPrograms
+    dontWrapQtApps
     meta
   ;
+  passthru = shared.passthru // {
+    # Deps that are potentially overriden and are used inside GR plugins - the same version must
+    inherit boost volk;
+  } // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+    inherit uhd;
+  } // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+    inherit (libsForQt5) qwt;
+  };
   cmakeFlags = shared.cmakeFlags
     # From some reason, if these are not set, libcodec2 and gsm are not
-    # detected properly. NOTE: qradiolink needs libcodec2 to be detected in
-    # order to build, see https://github.com/qradiolink/qradiolink/issues/67
+    # detected properly.
     ++ lib.optionals (hasFeature "gr-vocoder" features) [
+      "-DLIBCODEC2_FOUND=TRUE"
       "-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
       "-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
       "-DLIBCODEC2_HAS_FREEDV_API=ON"
+      "-DLIBGSM_FOUND=TRUE"
       "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
       "-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
     ]
   ;
 
   postInstall = shared.postInstall
-    # This is the only python reference worth removing, if needed (3.7 doesn't
-    # set that reference).
+    # This is the only python reference worth removing, if needed.
+    # Even if python support is enabled, and we don't care about this
+    # reference, pybind's path is not properly set. See:
+    # https://github.com/gnuradio/gnuradio/issues/4380
     + lib.optionalString (!hasFeature "python-support" features) ''
       ${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
+      ${removeReferencesTo}/bin/remove-references-to -t ${python} $(readlink -f $out/lib/libgnuradio-runtime.so)
+      ${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake
     ''
   ;
-  preConfigure = ""
-    # If python-support is disabled, don't install volk's (git submodule)
-    # volk_modtool - it references python.
-    #
-    # NOTE: on the next release, volk will always be required to be installed
-    # externally (submodule removed upstream). Hence this hook will fail and
-    # we'll need to package volk while able to tell it to install or not
-    # install python referencing files. When we'll be there, this will help:
-    # https://github.com/gnuradio/volk/pull/404
-    + lib.optionalString (!hasFeature "python-support" features) ''
-      sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt
-    ''
-  ;
-  patches = [
-    # Don't install python referencing files if python support is disabled.
-    # See: https://github.com/gnuradio/gnuradio/pull/3839
-    (fetchpatch {
-      url = "https://github.com/gnuradio/gnuradio/commit/4a4fd570b398b0b50fe875fcf0eb9c9db2ea5c6e.diff";
-      sha256 = "xz2E0ji6zfdOAhjfPecAcaVOIls1XP8JngLkBbBBW5Q=";
-    })
-    (fetchpatch {
-      url = "https://github.com/gnuradio/gnuradio/commit/dbc8ad7e7361fddc7b1dbc267c07a776a3f9664b.diff";
-      sha256 = "tQcCpcUbJv3yqAX8rSHN/pAuBq4ueEvoVo7sNzZGvf4=";
-    })
-  ];
-in
-
-stdenv.mkDerivation rec {
-  inherit
-    pname
-    version
-    src
-    nativeBuildInputs
-    buildInputs
-    cmakeFlags
-    preConfigure
-    # disallowedReferences
-    stripDebugList
-    patches
-    postInstall
-    passthru
-    doCheck
-    dontWrapPythonPrograms
-    meta
-  ;
 }
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/gsm.nix b/nixpkgs/pkgs/applications/radio/gnuradio/gsm.nix
deleted file mode 100644
index 28c5045081b0..000000000000
--- a/nixpkgs/pkgs/applications/radio/gnuradio/gsm.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, log4cpp
-, makeWrapper, cppunit, libosmocore, gr-osmosdr
-, pythonSupport ? true, python, swig
-}:
-
-assert pythonSupport -> python != null && swig != null;
-
-stdenv.mkDerivation {
-  pname = "gr-gsm";
-  version = "2016-08-25";
-
-  src = fetchFromGitHub {
-    owner = "ptrkrysik";
-    repo = "gr-gsm";
-    rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d";
-    sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [
-    boost gnuradio makeWrapper cppunit libosmocore gr-osmosdr log4cpp
-  ] ++ lib.optionals pythonSupport [ python swig ];
-
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:${gr-osmosdr}/lib/${python.libPrefix}/site-packages:$(toPythonPath "$out")
-    done
-  '';
-
-  meta = with lib; {
-    description = "Gnuradio block for gsm";
-    homepage = "https://github.com/ptrkrysik/gr-gsm";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ mog ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/limesdr.nix b/nixpkgs/pkgs/applications/radio/gnuradio/limesdr.nix
deleted file mode 100644
index afe3de645270..000000000000
--- a/nixpkgs/pkgs/applications/radio/gnuradio/limesdr.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio
-, pythonSupport ? true, python, swig, limesuite, log4cpp
-} :
-
-assert pythonSupport -> python != null && swig != null;
-
-let
-  version = "2.0.0";
-
-in stdenv.mkDerivation {
-  pname = "gr-limesdr";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "myriadrf";
-    repo = "gr-limesdr";
-    rev = "v${version}";
-    sha256 = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-  ] ++ lib.optionals pythonSupport [ swig ];
-
-  buildInputs = [
-    boost gnuradio limesuite log4cpp
-  ] ++ lib.optionals pythonSupport [ python ];
-
-
-  meta = with lib; {
-    description = "Gnuradio source and sink blocks for LimeSDR";
-    homepage = "https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.markuskowa ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/osmosdr.nix b/nixpkgs/pkgs/applications/radio/gnuradio/osmosdr.nix
deleted file mode 100644
index 436c4309a5b4..000000000000
--- a/nixpkgs/pkgs/applications/radio/gnuradio/osmosdr.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib, stdenv, fetchgit, cmake, pkg-config, makeWrapper
-, boost
-, pythonSupport ? true, python, swig
-, airspy
-, gnuradio
-, hackrf
-, libbladeRF
-, rtl-sdr
-, soapysdr-with-plugins
-, uhd
-, log4cpp
-}:
-
-assert pythonSupport -> python != null && swig != null;
-
-stdenv.mkDerivation rec {
-  pname = "gr-osmosdr";
-  version = "0.1.5";
-
-  src = fetchgit {
-    url = "git://git.osmocom.org/gr-osmosdr";
-    rev = "v${version}";
-    sha256 = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv";
-  };
-
-  nativeBuildInputs = [ cmake makeWrapper pkg-config ];
-  buildInputs = [
-    boost log4cpp airspy gnuradio hackrf libbladeRF rtl-sdr uhd
-  ] ++ lib.optionals stdenv.isLinux [ soapysdr-with-plugins ]
-    ++ lib.optionals pythonSupport [ python swig python.pkgs.cheetah ];
-
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-    done
-  '';
-
-  meta = with lib; {
-    description = "Gnuradio block for OsmoSDR and rtl-sdr";
-    homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ bjornfor ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/rds.nix b/nixpkgs/pkgs/applications/radio/gnuradio/rds.nix
deleted file mode 100644
index 4f15f2a961e4..000000000000
--- a/nixpkgs/pkgs/applications/radio/gnuradio/rds.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, log4cpp
-, makeWrapper, pythonSupport ? true, python, swig
-}:
-
-assert pythonSupport -> python != null && swig != null;
-
-stdenv.mkDerivation rec {
-  pname = "gr-rds";
-  version = "1.1.0";
-
-  src = fetchFromGitHub {
-    owner = "bastibl";
-    repo = "gr-rds";
-    rev = "v${version}";
-    sha256 = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [
-    boost gnuradio makeWrapper log4cpp
-  ] ++ lib.optionals pythonSupport [ python swig ];
-
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-    done
-  '';
-
-  meta = with lib; {
-    description = "Gnuradio block for radio data system";
-    homepage = "https://github.com/bastibl/gr-rds";
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ mog ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix b/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix
index 1d5d84f46495..f8ea2f0b1601 100644
--- a/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix
+++ b/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix
@@ -85,9 +85,6 @@ rec {
   ;
   postInstall = ""
     # Gcc references
-    + lib.optionalString (hasFeature "volk" features) ''
-      ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libvolk.so)
-    ''
     + lib.optionalString (hasFeature "gnuradio-runtime" features) ''
       ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libgnuradio-runtime.so)
     ''
@@ -103,12 +100,15 @@ rec {
       features
       featuresInfo
       python
-      qt
-      gtk
     ;
+  } // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+    inherit qt;
+  } // lib.optionalAttrs (hasFeature "gnuradio-companion" features) {
+    inherit gtk;
   };
   # Wrapping is done with an external wrapper
   dontWrapPythonPrograms = true;
+  dontWrapQtApps = true;
   # Tests should succeed, but it's hard to get LD_LIBRARY_PATH right in order
   # for it to happen.
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix b/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix
index aaf74abc2c50..d255b199bc90 100644
--- a/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix
+++ b/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix
@@ -1,9 +1,16 @@
 { lib
 , stdenv
+# The unwrapped gnuradio derivation
 , unwrapped
+# If it's a minimal build, we don't want to wrap it with lndir and
+# wrapProgram..
+, wrap ? true
+# For the wrapper
 , makeWrapper
 # For lndir
 , xorg
+# To define a the gnuradio.pkgs scope
+, newScope
 # For Emulating wrapGAppsHook
 , gsettings-desktop-schemas
 , glib
@@ -37,12 +44,16 @@ let
           []
       )
       ) unwrapped.featuresInfo)
-    ++ lib.optionals (unwrapped.hasFeature "python-support" unwrapped.features) [
-      # Add unwrapped itself as a python module
-      (unwrapped.python.pkgs.toPythonModule unwrapped)
-    ]
+    ++ lib.optionals
+      (unwrapped.hasFeature "python-support" unwrapped.features)
+      (
+        # Add unwrapped itself as a python module
+        [ (unwrapped.python.pkgs.toPythonModule unwrapped) ]
+        # Add all extraPackages as python modules
+        ++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages)
+      )
   ;
-  python3Env = unwrapped.python.withPackages(ps: pythonPkgs);
+  pythonEnv = unwrapped.python.withPackages(ps: pythonPkgs);
 
   name = (lib.appendToName "wrapped" unwrapped).name;
   makeWrapperArgs = builtins.concatStringsSep " " ([
@@ -88,48 +99,84 @@ let
       (if unwrapped.versionAttr.major == "3.8" then
         [
           "--prefix" "QT_PLUGIN_PATH" ":"
-          "${lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtPluginPrefix}"
+          "${
+            lib.makeSearchPath
+            unwrapped.qt.qtbase.qtPluginPrefix
+            (builtins.map lib.getBin [
+              unwrapped.qt.qtbase
+              unwrapped.qt.qtwayland
+            ])
+          }"
           "--prefix" "QML2_IMPORT_PATH" ":"
-          "${lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtQmlPrefix}"
+          "${
+            lib.makeSearchPath
+            unwrapped.qt.qtbase.qtQmlPrefix
+            (builtins.map lib.getBin [
+              unwrapped.qt.qtbase
+              unwrapped.qt.qtwayland
+            ])
+          }"
         ]
       else
-        # TODO: Add here qt4 related environment for 3.7?
+        # Add here qt4 related environment for 3.7?
         [
 
         ]
       )
     ++ extraMakeWrapperArgs
   );
-in
-stdenv.mkDerivation {
-  inherit name;
 
-  buildInputs = [
-    makeWrapper
-    xorg.lndir
-  ];
-
-  passthru = {
-    inherit python3Env pythonPkgs unwrapped;
+  packages = import ../../../top-level/gnuradio-packages.nix {
+    inherit lib stdenv newScope;
+    gnuradio = unwrapped;
   };
-
-  buildCommand = ''
-    mkdir $out
-    cd $out
-    lndir -silent ${unwrapped}
-    for i in $out/bin/*; do
-      if [[ ! -x "$i" ]]; then
-        continue
-      fi
-      cp -L "$i" "$i".tmp
-      mv -f "$i".tmp "$i"
-      if head -1 "$i" | grep -q ${unwrapped.python}; then
-        substituteInPlace "$i" \
-          --replace ${unwrapped.python} ${python3Env}
-      fi
-      wrapProgram "$i" ${makeWrapperArgs}
-    done
-  '';
-
-  inherit (unwrapped) meta;
-}
+  passthru = unwrapped.passthru // {
+    inherit
+      pythonEnv
+      pythonPkgs
+      unwrapped
+    ;
+    pkgs = packages;
+  };
+  self = if wrap then
+    stdenv.mkDerivation {
+      inherit name passthru;
+      buildInputs = [
+        makeWrapper
+        xorg.lndir
+      ];
+      buildCommand = ''
+        mkdir $out
+        cd $out
+        lndir -silent ${unwrapped}
+        ${lib.optionalString
+          (extraPackages != [])
+          (builtins.concatStringsSep "\n"
+            (builtins.map (pkg: ''
+              if [[ -d ${lib.getBin pkg}/bin/ ]]; then
+                lndir -silent ${pkg}/bin ./bin
+              fi
+            '') extraPackages)
+          )
+        }
+        for i in $out/bin/*; do
+          if [[ ! -x "$i" ]]; then
+            continue
+          fi
+          cp -L "$i" "$i".tmp
+          mv -f "$i".tmp "$i"
+          if head -1 "$i" | grep -q ${unwrapped.python}; then
+            substituteInPlace "$i" \
+              --replace ${unwrapped.python} ${pythonEnv}
+          fi
+          wrapProgram "$i" ${makeWrapperArgs}
+        done
+      '';
+      inherit (unwrapped) meta;
+    }
+  else
+    unwrapped.overrideAttrs(_: {
+      inherit passthru;
+    })
+  ;
+in self
diff --git a/nixpkgs/pkgs/applications/radio/gqrx/default.nix b/nixpkgs/pkgs/applications/radio/gqrx/default.nix
index 217818f67c29..cccdff1f3cc8 100644
--- a/nixpkgs/pkgs/applications/radio/gqrx/default.nix
+++ b/nixpkgs/pkgs/applications/radio/gqrx/default.nix
@@ -1,13 +1,23 @@
-{ lib, fetchFromGitHub, cmake, qtbase, qtsvg, gnuradio, boost, gr-osmosdr
-, mkDerivation
+{ lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, qt5
+, gnuradio3_8Minimal
+, log4cpp
+, mpir
+, fftwFloat
+, alsaLib
+, libjack2
 # drivers (optional):
-, rtl-sdr, hackrf
+, rtl-sdr
+, hackrf
 , pulseaudioSupport ? true, libpulseaudio
 }:
 
 assert pulseaudioSupport -> libpulseaudio != null;
 
-mkDerivation rec {
+gnuradio3_8Minimal.pkgs.mkDerivation rec {
   pname = "gqrx";
   version = "2.14.4";
 
@@ -18,9 +28,23 @@ mkDerivation rec {
     sha256 = "sha256-mMaxu0jq2GaNLWjLsJQXx+zCxtyiCAZQJJZ8GJtnllQ=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qt5.wrapQtAppsHook
+  ];
   buildInputs = [
-    qtbase qtsvg gnuradio boost gr-osmosdr rtl-sdr hackrf
+    log4cpp
+    mpir
+    fftwFloat
+    alsaLib
+    libjack2
+    gnuradio3_8Minimal.unwrapped.boost
+    qt5.qtbase
+    qt5.qtsvg
+    gnuradio3_8Minimal.pkgs.osmosdr
+    rtl-sdr
+    hackrf
   ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/radio/inspectrum/default.nix b/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
index 37131a686b52..9d61ab4b6019 100644
--- a/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
+++ b/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
@@ -1,17 +1,14 @@
 { lib
-, mkDerivation
+, gnuradio3_8Minimal
 , fetchFromGitHub
 , pkg-config
 , cmake
-, boost
 , fftwFloat
-, gnuradio
+, qt5
 , liquid-dsp
-, qtbase
-, wrapQtAppsHook
 }:
 
-mkDerivation rec {
+gnuradio3_8Minimal.pkgs.mkDerivation rec {
   pname = "inspectrum";
   version = "0.2.3";
 
@@ -22,13 +19,15 @@ mkDerivation rec {
     sha256 = "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355";
   };
 
-  nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
+  nativeBuildInputs = [
+    cmake
+    qt5.wrapQtAppsHook
+    pkg-config
+  ];
   buildInputs = [
     fftwFloat
-    boost
-    gnuradio
     liquid-dsp
-    qtbase
+    qt5.qtbase
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix b/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
index aea0944b29b4..67d7dbea1740 100644
--- a/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
+++ b/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
@@ -1,10 +1,8 @@
-{ lib, stdenv, fetchFromGitHub, qt4, qmake4Hook, libpulseaudio }:
-let
-  version = "1.1.9";
-in
-stdenv.mkDerivation {
+{ lib, stdenv, fetchFromGitHub, cmake, libpulseaudio, libX11 }:
+
+stdenv.mkDerivation rec {
   pname = "multimon-ng";
-  inherit version;
+  version = "1.1.9";
 
   src = fetchFromGitHub {
     owner = "EliasOenal";
@@ -13,16 +11,9 @@ stdenv.mkDerivation {
     sha256 = "01716cfhxfzsab9zjply9giaa4nn4b7rm3p3vizrwi7n253yiwm2";
   };
 
-  buildInputs = [ qt4 libpulseaudio ];
-
-  nativeBuildInputs = [ qmake4Hook ];
-
-  qmakeFlags = [ "multimon-ng.pro" ];
+  buildInputs = [ libpulseaudio libX11 ];
 
-  installPhase = ''
-    mkdir -p $out/bin
-    cp multimon-ng $out/bin
-  '';
+  nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
     description = "Multimon is a digital baseband audio protocol decoder";
@@ -39,6 +30,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/EliasOenal/multimon-ng";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
-    maintainers = [ maintainers.markuskowa ];
+    maintainers = with maintainers; [ markuskowa ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/radio/pothos/default.nix b/nixpkgs/pkgs/applications/radio/pothos/default.nix
new file mode 100644
index 000000000000..64f5093c4b98
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/pothos/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, doxygen
+, wrapQtAppsHook
+, pcre
+, poco
+, qtbase
+, qtsvg
+, libsForQt5
+, nlohmann_json
+, soapysdr-with-plugins
+, portaudio
+, alsaLib
+, muparserx
+, python3
+}:
+
+mkDerivation rec {
+  pname = "pothos";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "pothosware";
+    repo = "PothosCore";
+    rev = "pothos-${version}";
+    sha256 = "038c3ipvf4sgj0zhm3vcj07ymsva4ds6v89y43f5d3p4n8zc2rsg";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    # spuce's CMakeLists.txt uses QT5_USE_Modules, which does not seem to work on Nix
+    ./spuce.patch
+  ];
+
+  nativeBuildInputs = [ cmake pkg-config doxygen wrapQtAppsHook ];
+
+  buildInputs = [
+    pcre poco qtbase qtsvg libsForQt5.qwt nlohmann_json
+    soapysdr-with-plugins portaudio alsaLib muparserx python3
+  ];
+
+  postInstall = ''
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow.desktop $out/share/applications/pothos-flow.desktop
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-16.png $out/share/icons/hicolor/16x16/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-22.png $out/share/icons/hicolor/22x22/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-32.png $out/share/icons/hicolor/32x32/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-48.png $out/share/icons/hicolor/48x48/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-64.png $out/share/icons/hicolor/64x64/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-128.png $out/share/icons/hicolor/128x128/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow.xml $out/share/mime/application/pothos-flow.xml
+    rm -r $out/share/Pothos/Desktop
+  '';
+
+  dontWrapQtApps = true;
+  preFixup = ''
+    # PothosUtil does not need to be wrapped
+    wrapQtApp $out/bin/PothosFlow
+    wrapQtApp $out/bin/spuce_fir_plot
+    wrapQtApp $out/bin/spuce_iir_plot
+    wrapQtApp $out/bin/spuce_other_plot
+    wrapQtApp $out/bin/spuce_window_plot
+  '';
+
+  meta = with lib; {
+    description = "The Pothos data-flow framework";
+    homepage = "https://github.com/pothosware/PothosCore/wiki";
+    license = licenses.boost;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ eduardosm ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/radio/pothos/spuce.patch b/nixpkgs/pkgs/applications/radio/pothos/spuce.patch
new file mode 100644
index 000000000000..ed0377540a8a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/pothos/spuce.patch
@@ -0,0 +1,101 @@
+diff --git a/spuce/qt_fir/CMakeLists.txt b/spuce/qt_fir/CMakeLists.txt
+index fa2e580..e32113c 100644
+--- a/spuce/qt_fir/CMakeLists.txt
++++ b/spuce/qt_fir/CMakeLists.txt
+@@ -6,7 +6,7 @@ Message("Project spuce fir_plot")
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ set(CMAKE_AUTOMOC ON)
+ 
+-FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets)
++FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets PrintSupport)
+ 
+ set(SOURCES
+ 	make_filter.cpp 
+@@ -27,11 +27,7 @@ set_property(TARGET spuce_fir PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ set_property(TARGET spuce_fir_plot PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ set_property(TARGET spuce_fir_plot PROPERTY CXX_STANDARD 11)
+ 
+-TARGET_LINK_LIBRARIES(spuce_fir_plot spuce_fir ${QT_LIBRARIES} spuce)
+-QT5_USE_Modules(spuce_fir_plot Gui)
+-QT5_USE_Modules(spuce_fir_plot Core)
+-QT5_USE_Modules(spuce_fir_plot Widgets)
+-QT5_USE_Modules(spuce_fir_plot PrintSupport)
++TARGET_LINK_LIBRARIES(spuce_fir_plot spuce_fir ${QT_LIBRARIES} spuce Qt::Gui Qt::Core Qt::Widgets Qt::PrintSupport)
+ 
+ INSTALL(TARGETS spuce_fir_plot DESTINATION bin)
+ 
+diff --git a/spuce/qt_iir/CMakeLists.txt b/spuce/qt_iir/CMakeLists.txt
+index 4717226..debb5f9 100644
+--- a/spuce/qt_iir/CMakeLists.txt
++++ b/spuce/qt_iir/CMakeLists.txt
+@@ -6,7 +6,7 @@ Message("Project spuce iir_plot")
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ set(CMAKE_AUTOMOC ON)
+ 
+-FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets)
++FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets PrintSupport)
+ 
+ set(SOURCES
+ 	make_filter.cpp 	
+@@ -27,10 +27,6 @@ set_property(TARGET spuce_iir PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ set_property(TARGET spuce_iir_plot PROPERTY CXX_STANDARD 11)
+ set_property(TARGET spuce_iir_plot PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ 
+-TARGET_LINK_LIBRARIES(spuce_iir_plot spuce_iir ${QT_LIBRARIES} spuce)
+-QT5_USE_Modules(spuce_iir_plot Gui)
+-QT5_USE_Modules(spuce_iir_plot Core)
+-QT5_USE_Modules(spuce_iir_plot Widgets)
+-QT5_USE_Modules(spuce_iir_plot PrintSupport)
++TARGET_LINK_LIBRARIES(spuce_iir_plot spuce_iir ${QT_LIBRARIES} spuce Qt::Gui Qt::Core Qt::Widgets Qt::PrintSupport)
+ 
+ INSTALL(TARGETS spuce_iir_plot DESTINATION bin)
+diff --git a/spuce/qt_other/CMakeLists.txt b/spuce/qt_other/CMakeLists.txt
+index 29c270d..e1ed778 100644
+--- a/spuce/qt_other/CMakeLists.txt
++++ b/spuce/qt_other/CMakeLists.txt
+@@ -6,7 +6,7 @@ Message("Project spuce window_plot")
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ set(CMAKE_AUTOMOC ON)
+ 
+-FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets)
++FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets PrintSupport)
+ 
+ set(SOURCES	make_filter.cpp)
+ ADD_LIBRARY(spuce_other STATIC ${SOURCES})
+@@ -23,10 +23,6 @@ ADD_EXECUTABLE(spuce_other_plot ${other_plot_SOURCES} ${other_plot_HEADERS_MOC})
+ set_property(TARGET spuce_other_plot PROPERTY CXX_STANDARD 11)
+ set_property(TARGET spuce_other_plot PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ 
+-TARGET_LINK_LIBRARIES(spuce_other_plot spuce_other ${QT_LIBRARIES} spuce)
+-QT5_USE_Modules(spuce_other_plot Gui)
+-QT5_USE_Modules(spuce_other_plot Core)
+-QT5_USE_Modules(spuce_other_plot Widgets)
+-QT5_USE_Modules(spuce_other_plot PrintSupport)
++TARGET_LINK_LIBRARIES(spuce_other_plot spuce_other ${QT_LIBRARIES} spuce Qt::Gui Qt::Core Qt::Widgets Qt::PrintSupport)
+ 
+ INSTALL(TARGETS spuce_other_plot DESTINATION bin)
+diff --git a/spuce/qt_window/CMakeLists.txt b/spuce/qt_window/CMakeLists.txt
+index e95c85b..4a77ab8 100644
+--- a/spuce/qt_window/CMakeLists.txt
++++ b/spuce/qt_window/CMakeLists.txt
+@@ -6,7 +6,7 @@ Message("Project spuce window_plot")
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ set(CMAKE_AUTOMOC ON)
+ 
+-FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets)
++FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets PrintSupport)
+ 
+ set(SOURCES	make_filter.cpp)
+ 
+@@ -25,10 +25,6 @@ set_property(TARGET spuce_window_plot PROPERTY CXX_STANDARD 11)
+ set_property(TARGET spuce_win PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ set_property(TARGET spuce_window_plot PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ 
+-TARGET_LINK_LIBRARIES(spuce_window_plot spuce_win ${QT_LIBRARIES} spuce)
+-QT5_USE_Modules(spuce_window_plot Gui)
+-QT5_USE_Modules(spuce_window_plot Core)
+-QT5_USE_Modules(spuce_window_plot Widgets)
+-QT5_USE_Modules(spuce_window_plot PrintSupport)
++TARGET_LINK_LIBRARIES(spuce_window_plot spuce_win ${QT_LIBRARIES} spuce Qt::Gui Qt::Core Qt::Widgets Qt::PrintSupport)
+ 
+ INSTALL(TARGETS spuce_window_plot DESTINATION bin)
diff --git a/nixpkgs/pkgs/applications/radio/qradiolink/default.nix b/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
index 24c5f987f176..2dbd9f1aba9c 100644
--- a/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
+++ b/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
@@ -1,51 +1,71 @@
-{ lib, stdenv, fetchFromGitHub, alsaLib, boost
-, qt4, libpulseaudio, codec2, libconfig
-, gnuradio, gr-osmosdr, gsm
-, libopus, libjpeg, protobuf, qwt, speex
-} :
+{ lib
+, fetchFromGitHub
+, libpulseaudio
+, libconfig
+# Needs a gnuradio built with qt gui support
+, gnuradio3_8
+# Not gnuradioPackages'
+, codec2
+, log4cpp
+, gmp
+, gsm
+, libopus
+, libjpeg
+, libsndfile
+, libftdi
+, protobuf
+, speex
+, speexdsp
+}:
 
-let
-  version = "0.5.0";
-
-in stdenv.mkDerivation {
+gnuradio3_8.pkgs.mkDerivation rec {
   pname = "qradiolink";
-  inherit version;
+  version = "0.8.5-2";
 
   src = fetchFromGitHub {
-    owner = "kantooon";
+    owner = "qradiolink";
     repo = "qradiolink";
     rev = version;
-    sha256 = "0xhg5zhjznmls5m3rhpk1qx0dipxmca12s85w15d0i7qwva2f1gi";
+    sha256 = "MgHfKR3AJW3pIN9oCBr4BWxk1fGSCpLmMzjxvuTmuFA=";
   };
 
   preBuild = ''
-    cd ext
+    cd src/ext
     protoc --cpp_out=. Mumble.proto
     protoc --cpp_out=. QRadioLink.proto
-    cd ..
+    cd ../..
     qmake
   '';
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp qradiolink $out/bin
+    install -D qradiolink $out/bin/qradiolink
+    install -Dm644 src/res/icon.png $out/share/pixmaps/qradiolink.png
+    install -Dm644 qradiolink.desktop $out/share/applications/qradiolink.desktop
   '';
 
   buildInputs = [
-    qt4
-    alsaLib
-    boost
-    libpulseaudio
+    gnuradio3_8.unwrapped.boost
     codec2
+    log4cpp
+    gmp
+    libpulseaudio
     libconfig
     gsm
-    gnuradio
-    gr-osmosdr
+    gnuradio3_8.pkgs.osmosdr
     libopus
     libjpeg
-    protobuf
     speex
-    qwt
+    speexdsp
+    gnuradio3_8.qt.qtbase
+    gnuradio3_8.qt.qtmultimedia
+    libftdi
+    libsndfile
+    gnuradio3_8.qwt
+  ];
+  nativeBuildInputs = [
+    protobuf
+    gnuradio3_8.qt.qmake
+    gnuradio3_8.qt.wrapQtAppsHook
   ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/radio/svxlink/default.nix b/nixpkgs/pkgs/applications/radio/svxlink/default.nix
index 19e635da5ac8..d6a82049a23d 100644
--- a/nixpkgs/pkgs/applications/radio/svxlink/default.nix
+++ b/nixpkgs/pkgs/applications/radio/svxlink/default.nix
@@ -14,13 +14,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "svxlink";
-  version = "19.09.1";
+  version = "19.09.2";
 
   src = fetchFromGitHub {
     owner = "sm0svx";
     repo = pname;
     rev = version;
-    sha256 = "0xmbac821w9kl7imlz0mra19mlhi0rlpbyyay26w1y7h98j4g4yp";
+    sha256 = "sha256-riyFEuEmJ7+jYT3UoTTsMUwFdO3y5mjo4z0fcC3O8gY=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/radio/ubertooth/default.nix b/nixpkgs/pkgs/applications/radio/ubertooth/default.nix
new file mode 100644
index 000000000000..2f6eed575b4d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/ubertooth/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, libbtbb, libpcap , libusb1, bluez
+, udevGroup ? "ubertooth"
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ubertooth";
+  version = "2020-12-R1";
+
+  src = fetchFromGitHub {
+    owner = "greatscottgadgets";
+    repo = pname;
+    rev = version;
+    sha256 = "11r5ag2l5xn4pr7ycicm30w9c3ldn9yiqj1sqnjc79csxl2vrcfw";
+  };
+
+  sourceRoot = "source/host";
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ libbtbb libpcap libusb1 bluez ];
+
+  cmakeFlags = lib.optionals stdenv.isLinux [
+    "-DINSTALL_UDEV_RULES=TRUE"
+    "-DUDEV_RULES_PATH=etc/udev/rules.d"
+    "-DUDEV_RULES_GROUP=${udevGroup}"
+  ];
+
+  meta = with lib; {
+    description = "Open source wireless development platform suitable for Bluetooth experimentation";
+    homepage = "https://github.com/greatscottgadgets/ubertooth";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ oxzi ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/radio/uhd/3.5.nix b/nixpkgs/pkgs/applications/radio/uhd/3.5.nix
new file mode 100644
index 000000000000..d913927a7b99
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/uhd/3.5.nix
@@ -0,0 +1,159 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchFromGitHub
+, cmake
+, pkg-config
+# See https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html for dependencies explanations
+, boost
+, enableLibuhd_C_api ? true
+# requires numpy
+, enableLibuhd_Python_api ? false
+, python3
+, enableExamples ? false
+, enableUtils ? false
+, enableLiberio ? false
+, liberio
+, libusb1
+, enableDpdk ? false
+, dpdk
+# Devices
+, enableOctoClock ? true
+, enableMpmd ? true
+, enableB100 ? true
+, enableB200 ? true
+, enableUsrp1 ? true
+, enableUsrp2 ? true
+, enableX300 ? true
+, enableN230 ? true
+, enableN300 ? true
+, enableN320 ? true
+, enableE300 ? true
+, enableE320 ? true
+}:
+
+let
+  onOffBool = b: if b then "ON" else "OFF";
+  inherit (lib) optionals;
+in
+
+stdenv.mkDerivation rec {
+  pname = "uhd";
+  # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
+  # and xxx.yyy.zzz. Hrmpf... style keeps changing
+  version = "3.15.0.0";
+
+  src = fetchFromGitHub {
+    owner = "EttusResearch";
+    repo = "uhd";
+    rev = "v${version}";
+    sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf";
+  };
+  # Firmware images are downloaded (pre-built) from the respective release on Github
+  uhdImagesSrc = fetchurl {
+    url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz";
+    sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp";
+  };
+
+  cmakeFlags = [
+    "-DENABLE_LIBUHD=ON"
+    "-DENABLE_USB=ON"
+    "-DENABLE_TESTS=ON" # This installs tests as well so we delete them via postPhases
+    "-DENABLE_EXAMPLES=${onOffBool enableExamples}"
+    "-DENABLE_UTILS=${onOffBool enableUtils}"
+    "-DENABLE_LIBUHD_C_API=${onOffBool enableLibuhd_C_api}"
+    "-DENABLE_LIBUHD_PYTHON_API=${onOffBool enableLibuhd_Python_api}"
+    "-DENABLE_LIBERIO=${onOffBool enableLiberio}"
+    "-DENABLE_DPDK=${onOffBool enableDpdk}"
+    # Devices
+    "-DENABLE_OCTOCLOCK=${onOffBool enableOctoClock}"
+    "-DENABLE_MPMD=${onOffBool enableMpmd}"
+    "-DENABLE_B100=${onOffBool enableB100}"
+    "-DENABLE_B200=${onOffBool enableB200}"
+    "-DENABLE_USRP1=${onOffBool enableUsrp1}"
+    "-DENABLE_USRP2=${onOffBool enableUsrp2}"
+    "-DENABLE_X300=${onOffBool enableX300}"
+    "-DENABLE_N230=${onOffBool enableN230}"
+    "-DENABLE_N300=${onOffBool enableN300}"
+    "-DENABLE_N320=${onOffBool enableN320}"
+    "-DENABLE_E300=${onOffBool enableE300}"
+    "-DENABLE_E320=${onOffBool enableE320}"
+  ]
+    # TODO: Check if this still needed
+    # ABI differences GCC 7.1
+    # /nix/store/wd6r25miqbk9ia53pp669gn4wrg9n9cj-gcc-7.3.0/include/c++/7.3.0/bits/vector.tcc:394:7: note: parameter passing for argument of type 'std::vector<uhd::range_t>::iterator {aka __gnu_cxx::__normal_iterator<uhd::range_t*, std::vector<uhd::range_t> >}' changed in GCC 7.1
+    ++ [ (lib.optionalString stdenv.isAarch32 "-DCMAKE_CXX_FLAGS=-Wno-psabi") ]
+  ;
+
+  # Python + Mako are always required for the build itself but not necessary for runtime.
+  pythonEnv = python3.withPackages (ps: with ps; [ Mako ]
+    ++ optionals (enableLibuhd_Python_api) [ numpy setuptools ]
+    ++ optionals (enableUtils) [ requests six ]
+  );
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ]
+    # If both enableLibuhd_Python_api and enableUtils are off, we don't need
+    # pythonEnv in buildInputs as it's a 'build' dependency and not a runtime
+    # dependency
+    ++ optionals (!enableLibuhd_Python_api && !enableUtils) [ pythonEnv ]
+  ;
+  buildInputs = [
+    boost
+    libusb1
+  ]
+    # However, if enableLibuhd_Python_api *or* enableUtils is on, we need
+    # pythonEnv for runtime as well. The utilities' runtime dependencies are
+    # handled at the environment
+    ++ optionals (enableLibuhd_Python_api || enableUtils) [ pythonEnv ]
+    ++ optionals (enableLiberio) [ liberio ]
+    ++ optionals (enableDpdk) [ dpdk ]
+  ;
+
+  doCheck = true;
+
+  # Build only the host software
+  preConfigure = "cd host";
+  # TODO: Check if this still needed, perhaps relevant:
+  # https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html#build_instructions_unix_arm
+  patches = if stdenv.isAarch32 then ./neon.patch else null;
+
+  postPhases = [ "installFirmware" "removeInstalledTests" ]
+    ++ optionals (enableUtils) [ "moveUdevRules" ]
+  ;
+
+  # UHD expects images in `$CMAKE_INSTALL_PREFIX/share/uhd/images`
+  installFirmware = ''
+    mkdir -p "$out/share/uhd/images"
+    tar --strip-components=1 -xvf "${uhdImagesSrc}" -C "$out/share/uhd/images"
+  '';
+
+  # -DENABLE_TESTS=ON installs the tests, we don't need them in the output
+  removeInstalledTests = ''
+    rm -r $out/lib/uhd/tests
+  '';
+
+  # Moves the udev rules to the standard location, needed only if utils are
+  # enabled
+  moveUdevRules = ''
+    mkdir -p $out/lib/udev/rules.d
+    mv $out/lib/uhd/utils/uhd-usrp.rules $out/lib/udev/rules.d/
+  '';
+
+  meta = with lib; {
+    description = "USRP Hardware Driver (for Software Defined Radio)";
+    longDescription = ''
+      The USRP Hardware Driver (UHD) software is the hardware driver for all
+      USRP (Universal Software Radio Peripheral) devices.
+
+      USRP devices are designed and sold by Ettus Research, LLC and its parent
+      company, National Instruments.
+    '';
+    homepage = "https://uhd.ettus.com/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ bjornfor fpletz tomberek ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/radio/uhd/default.nix b/nixpkgs/pkgs/applications/radio/uhd/default.nix
index bafb2f637df4..9f2f39aab2c5 100644
--- a/nixpkgs/pkgs/applications/radio/uhd/default.nix
+++ b/nixpkgs/pkgs/applications/radio/uhd/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , fetchFromGitHub
 , cmake
@@ -8,14 +9,14 @@
 , enableLibuhd_C_api ? true
 # requires numpy
 , enableLibuhd_Python_api ? false
-, python3 ? null
+, python3
 , enableExamples ? false
 , enableUtils ? false
 , enableLiberio ? false
-, liberio ? null
-, libusb1 ? null
+, liberio
+, libusb1
 , enableDpdk ? false
-, dpdk ? null
+, dpdk
 # Devices
 , enableOctoClock ? true
 , enableMpmd ? true
@@ -40,18 +41,18 @@ stdenv.mkDerivation rec {
   pname = "uhd";
   # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
   # and xxx.yyy.zzz. Hrmpf... style keeps changing
-  version = "3.15.0.0";
+  version = "4.0.0.0";
 
   src = fetchFromGitHub {
     owner = "EttusResearch";
     repo = "uhd";
     rev = "v${version}";
-    sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf";
+    sha256 = "NCyiI4pIPw0nBRFdUGpgZ/x2mWz+Qm78ZGACUnSbGSs=";
   };
   # Firmware images are downloaded (pre-built) from the respective release on Github
   uhdImagesSrc = fetchurl {
     url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz";
-    sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp";
+    sha256 = "Xfx0bsHUQ5+Dp+xk0sVWWP83oyXQcUH5AX4PNEE7fY4=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/radio/unixcw/default.nix b/nixpkgs/pkgs/applications/radio/unixcw/default.nix
index 5e299cc59843..cdb84670c616 100644
--- a/nixpkgs/pkgs/applications/radio/unixcw/default.nix
+++ b/nixpkgs/pkgs/applications/radio/unixcw/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
   buildInputs = [libpulseaudio alsaLib pkg-config qt5.qtbase];
   CFLAGS   ="-lasound -lpulse-simple";
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "sound characters as Morse code on the soundcard or console speaker";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/radio/xlog/default.nix b/nixpkgs/pkgs/applications/radio/xlog/default.nix
index eb57048c5c2c..a013fe41d830 100644
--- a/nixpkgs/pkgs/applications/radio/xlog/default.nix
+++ b/nixpkgs/pkgs/applications/radio/xlog/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, glib, gtk2, pkg-config, hamlib }:
 stdenv.mkDerivation rec {
   pname = "xlog";
-  version = "2.0.19";
+  version = "2.0.20";
 
   src = fetchurl {
     url = "https://download.savannah.gnu.org/releases/xlog/${pname}-${version}.tar.gz";
-    sha256 = "0y38gkcm4mgv6wn31pjq6d5bm22m63rpwa55qjmrlywrmw76rppy";
+    sha256 = "sha256-pSGmKLHGc+Eb9OG27k1rYOMn/2BiRejrBajARjEgsUA=";
   };
 
   # glib-2.62 deprecations
diff --git a/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix b/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
index 33f00979c972..cd7405ae09d9 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
@@ -9,16 +9,16 @@
 
   eigen, zlib,
 
-  cfitsio, indilib, xplanet, libnova, libraw, gsl, wcslib, stellarsolver
+  cfitsio, indi-full, xplanet, libnova, libraw, gsl, wcslib, stellarsolver
 }:
 
 mkDerivation rec {
   pname = "kstars";
-  version = "3.5.1";
+  version = "3.5.2";
 
   src = fetchurl {
     url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
-    sha256 = "sha256-gf+yaXiYQFuO1/nvdP6OOuD4QrRtPAQTwQZAbYNKxUU=";
+    sha256 = "sha256-iX7rMQbctdK3AeH4ZvH+T4rv1ZHwn55urJh150KoXXU=";
   };
 
   patches = [
@@ -37,11 +37,11 @@ mkDerivation rec {
 
     eigen zlib
 
-    cfitsio indilib xplanet libnova libraw gsl wcslib stellarsolver
+    cfitsio indi-full xplanet libnova libraw gsl wcslib stellarsolver
   ];
 
   cmakeFlags = [
-    "-DINDI_NIX_ROOT=${indilib}"
+    "-DINDI_NIX_ROOT=${indi-full}"
     "-DXPLANET_NIX_ROOT=${xplanet}"
   ];
 
@@ -53,7 +53,7 @@ mkDerivation rec {
       The display includes up to 100 million stars, 13.000 deep-sky objects, all 8 planets, the Sun and Moon, and thousands of comets, asteroids, supernovae, and satellites.
       For students and teachers, it supports adjustable simulation speeds in order to view phenomena that happen over long timescales, the KStars Astrocalculator to predict conjunctions, and many common astronomical calculations.
     '';
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ timput hjones2199 ];
   };
diff --git a/nixpkgs/pkgs/applications/science/astronomy/phd2/default.nix b/nixpkgs/pkgs/applications/science/astronomy/phd2/default.nix
index 054a73dec7a0..0e0ad06bbe9f 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/phd2/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/phd2/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, cmake, gtk3, wxGTK30-gtk3,
-  curl, gettext, glib, indilib, libnova, wrapGAppsHook }:
+  curl, gettext, glib, indi-full, libnova, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "phd2";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
-  buildInputs = [ gtk3 wxGTK30-gtk3 curl gettext glib indilib libnova ];
+  buildInputs = [ gtk3 wxGTK30-gtk3 curl gettext glib indi-full libnova ];
 
   cmakeFlags = [
     "-DOPENSOURCE_ONLY=1"
diff --git a/nixpkgs/pkgs/applications/science/astronomy/siril/default.nix b/nixpkgs/pkgs/applications/science/astronomy/siril/default.nix
index cd78b644eb05..e51d181266a4 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/siril/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/siril/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchFromGitLab, fetchFromGitHub, pkg-config, meson, ninja,
-  git, criterion, wrapGAppsHook, gtk3, libconfig, gnuplot, opencv,
-  fftwFloat, cfitsio, gsl, exiv2, curl, librtprocess, ffmpeg,
-  libraw, libtiff, libpng, libjpeg, libheif, ffms
+{ lib, stdenv, fetchFromGitLab, pkg-config, meson, ninja, wrapGAppsHook
+, git, criterion, gtk3, libconfig, gnuplot, opencv, json-glib
+, fftwFloat, cfitsio, gsl, exiv2, librtprocess, wcslib, ffmpeg
+, libraw, libtiff, libpng, libjpeg, libheif, ffms
 }:
 
 stdenv.mkDerivation rec {
   pname = "siril";
-  version = "0.99.6";
+  version = "0.99.8.1";
 
   src = fetchFromGitLab {
     owner = "free-astro";
     repo = pname;
     rev = version;
-    sha256 = "06vh8x45gv0gwlnqjwxglf12jmpdaxkiv5sixkqh20420wabx3ha";
+    sha256 = "0h3slgpj6zdc0rwmyr9zb0vgf53283hpwb7h26skdswmggsk90i5";
   };
 
   nativeBuildInputs = [
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gtk3 cfitsio gsl exiv2 gnuplot curl opencv fftwFloat librtprocess
-    libconfig libraw libtiff libpng libjpeg libheif ffms ffmpeg
+    gtk3 cfitsio gsl exiv2 gnuplot opencv fftwFloat librtprocess wcslib
+    libconfig libraw libtiff libpng libjpeg libheif ffms ffmpeg json-glib
   ];
 
   # Necessary because project uses default build dir for flatpaks/snaps
@@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.siril.org/";
-    description = "Astronomical image processing tool";
-    license = licenses.gpl3;
+    description = "Astrophotographic image processing tool";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hjones2199 ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix b/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
index 235d06a9cd6f..7922f4d02adf 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "stellarium";
-  version = "0.20.4";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "Stellarium";
     repo = "stellarium";
     rev = "v${version}";
-    sha256 = "sha256-EhlcaMxlDyX2RneBrpbmLScc9vd77Tf7RPblbQqAqZ0=";
+    sha256 = "sha256-LOBWfKLtoFemiWBUVayIBG0DORvjI6h9kgaPH9hGmKY=";
   };
 
   nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix b/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
index f4e2db01fbc5..46d39c1a7ba3 100644
--- a/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, htslib, zlib, bzip2, lzma, curl, perl, python, bash }:
+{ lib, stdenv, fetchurl, htslib, zlib, bzip2, xz, curl, perl, python3, bash }:
 
 stdenv.mkDerivation rec {
   pname = "bcftools";
@@ -9,12 +9,19 @@ stdenv.mkDerivation rec {
     sha256 = "0r508mp15pqzf8r1269kb4v5naw9zsvbwd3cz8s1yj7carsf9viw";
   };
 
-  buildInputs = [ htslib zlib bzip2 lzma curl perl python ];
+  nativeBuildInputs = [
+    perl
+    python3
+  ];
+
+  buildInputs = [ htslib zlib bzip2 xz curl ];
+
+  strictDeps = true;
 
   makeFlags = [
     "HSTDIR=${htslib}"
     "prefix=$(out)"
-    "CC=cc"
+    "CC=${stdenv.cc.targetPrefix}cc"
   ];
 
   preCheck = ''
diff --git a/nixpkgs/pkgs/applications/science/biology/bedops/default.nix b/nixpkgs/pkgs/applications/science/biology/bedops/default.nix
new file mode 100644
index 000000000000..407ed0c01f76
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bedops/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetchFromGitHub, zlib, bzip2, jansson, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "bedops";
+  version = "2.4.39";
+
+  src = fetchFromGitHub {
+    owner = "bedops";
+    repo = "bedops";
+    rev = "v${version}";
+    sha256 = "sha256-vPrut3uhZK1Eg9vPcyxVNWW4zKeypdsb28oM1xbbpJo=";
+  };
+
+  buildInputs = [ zlib bzip2 jansson ];
+  nativeBuildInputs = [ makeWrapper ];
+
+  preConfigure = ''
+    # We use nixpkgs versions of these libraries
+    rm -r third-party
+    sed -i '/^LIBS/d' system.mk/*
+    sed -i 's|^LIBRARIES.*$|LIBRARIES = -lbz2 -lz -ljansson|' */*/*/*/Makefile
+    substituteInPlace applications/bed/starch/src/Makefile --replace '$(LIBRARIES)' ""
+
+    # Function name is different in nixpkgs provided libraries
+    for f in interfaces/src/data/starch/starchFileHelpers.c applications/bed/starch/src/starchcat.c ; do
+      substituteInPlace $f --replace deflateInit2cpp deflateInit2
+    done
+
+    # Don't force static
+    for f in */*/*/*/Makefile ; do
+      substituteInPlace $f --replace '-static' ""
+    done
+  '';
+
+  makeFlags = [ "BINDIR=$(out)/bin" ];
+
+  postFixup = ''
+    for f in $out/bin/* ; do
+      wrapProgram $f --prefix PATH : "$out/bin"
+    done
+  '';
+
+  meta = with lib; {
+    description = "Suite of tools for addressing questions arising in genomics studies";
+    homepage = "https://github.com/bedops/bedops";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix b/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix
index d0553bb0649a..aac36d2af310 100644
--- a/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchFromGitHub, zlib, python, bzip2, lzma}:
+{lib, stdenv, fetchFromGitHub, zlib, python3, bzip2, xz}:
 
 stdenv.mkDerivation rec {
   pname = "bedtools";
@@ -11,7 +11,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-NqKldF7ePJn3pT+AkESIQghBKSFFOEBBsTaKEbU+oaQ=";
   };
 
-  buildInputs = [ zlib python bzip2 lzma ];
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    python3
+  ];
+
+  buildInputs = [ zlib bzip2 xz ];
+
   cxx = if stdenv.cc.isClang then "clang++" else "g++";
   cc = if stdenv.cc.isClang then "clang" else "gcc";
   buildPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cxx} CC=${cc} -j $NIX_BUILD_CORES";
diff --git a/nixpkgs/pkgs/applications/science/biology/delly/default.nix b/nixpkgs/pkgs/applications/science/biology/delly/default.nix
index efaa4403f41d..fe81ff44d245 100644
--- a/nixpkgs/pkgs/applications/science/biology/delly/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/delly/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchpatch, fetchFromGitHub, htslib, zlib, bzip2, lzma, ncurses, boost }:
+{ lib, stdenv, fetchpatch, fetchFromGitHub, htslib, zlib, bzip2, xz, ncurses, boost }:
 
 stdenv.mkDerivation rec {
   pname = "delly";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
       sha256 = "sha256-DWwC35r8cQbePUzppkFQlev0YZdxk2+BSrNTW/DOY3M=";
   };
 
-  buildInputs = [ zlib htslib bzip2 lzma ncurses boost ];
+  buildInputs = [ zlib htslib bzip2 xz ncurses boost ];
 
   EBROOTHTSLIB = htslib;
 
diff --git a/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix b/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix
index 7eb3afd437af..b42fed8da281 100644
--- a/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix
@@ -16,7 +16,7 @@ python27Packages.buildPythonApplication rec {
     sha256 = "0abnmn0bh11jihf5d3cggiild1ykawzv5f5fhb4cyyi8fvy4hcxf";
   });
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   propagatedBuildInputs = [ python27Packages.biopython wget diamond hmmer ];
 
   # make emapper find diamond & hmmer
diff --git a/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix b/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix
index 32ab614b9682..8646b8ca54a8 100644
--- a/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, zlib, bzip2, lzma }:
+{ lib, stdenv, fetchFromGitHub, zlib, bzip2, xz }:
 
 stdenv.mkDerivation rec {
   pname = "freebayes";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  buildInputs = [ zlib bzip2 lzma ];
+  buildInputs = [ zlib bzip2 xz ];
 
   installPhase = ''
     install -vD bin/freebayes bin/bamleftalign scripts/* -t $out/bin
diff --git a/nixpkgs/pkgs/applications/science/biology/kent/default.nix b/nixpkgs/pkgs/applications/science/biology/kent/default.nix
index 26c55d3dc383..12bbfa09c251 100644
--- a/nixpkgs/pkgs/applications/science/biology/kent/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/kent/default.nix
@@ -3,7 +3,7 @@
 , libuuid
 , zlib
 , bzip2
-, lzma
+, xz
 , openssl
 , curl
 , libmysqlclient
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     sha256 = "0l5lmqqc6sqkf4hyk3z4825ly0vdlj5xdfad6zd0708cb1v81nbx";
   };
 
-  buildInputs = [ libpng libuuid zlib bzip2 lzma openssl curl libmysqlclient ];
+  buildInputs = [ libpng libuuid zlib bzip2 xz openssl curl libmysqlclient ];
 
   patchPhase = ''
     substituteInPlace ./src/checkUmask.sh \
diff --git a/nixpkgs/pkgs/applications/science/biology/last/default.nix b/nixpkgs/pkgs/applications/science/biology/last/default.nix
index 3a36a2194a13..0c5b81452fd5 100644
--- a/nixpkgs/pkgs/applications/science/biology/last/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/last/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "last";
-  version = "1170";
+  version = "1179";
 
   src = fetchurl {
     url = "http://last.cbrc.jp/last-${version}.zip";
-    sha256 = "sha256-hBuG6QGXtBrvNrtaZU+i8gxu2ZQw+srFRkbuWoL5JHc=";
+    sha256 = "sha256-949oiE7ZNkCOJuOK/huPkCN0c4TlVaTskkBe0joc0HU=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix b/nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix
new file mode 100644
index 000000000000..bfa561437e74
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchurl, python3, perl, glibc, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "meme-suite";
+  version = "5.1.1";
+
+  src = fetchurl {
+    url = "https://meme-suite.org/meme-software/${version}/meme-${version}.tar.gz";
+    sha256 = "38d73d256d431ad4eb7da2c817ce56ff2b4e26c39387ff0d6ada088938b38eb5";
+  };
+
+  buildInputs = [ zlib ];
+  nativeBuildInputs = [ perl python3 ];
+
+  meta = with lib; {
+    description = "Motif-based sequence analysis tools";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ gschwartz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix b/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix
index 687a2a985f28..9d9e46bc7800 100644
--- a/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, cmake, gcc, gcc-unwrapped }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.1";
+  version = "3.6";
   pname = "messer-slim";
 
   src = fetchurl {
     url = "https://github.com/MesserLab/SLiM/archive/v${version}.tar.gz";
-    sha256 = "1j3ssjvxpsc21mmzj59kwimglz8pdazi5w6wplmx11x744k77wa1";
+    sha256 = "sha256-djWUKB+NW2a/6oaAMcH0Ul/R/XPHvGDbwlfeFmkbMOY=";
   };
 
   nativeBuildInputs = [ cmake gcc gcc-unwrapped ];
diff --git a/nixpkgs/pkgs/applications/science/biology/octopus/default.nix b/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
index b7a4a4c1a2a0..0ef48ec6413b 100644
--- a/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
@@ -1,18 +1,30 @@
-{lib, stdenv, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, lzma, pkg-config}:
+{lib, stdenv, fetchpatch, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, xz, pkg-config}:
 
 stdenv.mkDerivation rec {
   pname = "octopus";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "luntergroup";
     repo = "octopus";
     rev = "v${version}";
-    sha256 = "0y3g0xc3x3adbcmds6hh60023pfv1qrz6ak7jd88fg9vxi9bdrfb";
+    sha256 = "sha256-TZ57uKTZ87FWpLNGPY8kbML1EDM8fnEFbXR+Z3dmiao=";
   };
 
+  patches = [
+    # Backport TZ patchs (https://github.com/luntergroup/octopus/issues/149)
+    (fetchpatch {
+      url = "https://github.com/luntergroup/octopus/commit/3dbd8cc33616129ad356e99a4dae82e4f6702250.patch";
+      sha256 = "sha256-UCufVU9x+L1zCEhkr/48KFYRvh8w26w8Jr+O+wULKK8=";
+    })
+    (fetchpatch {
+      url = "https://github.com/luntergroup/octopus/commit/af5a66a2792bd098fb53eb79fb4822625f09305e.patch";
+      sha256 = "sha256-r8jv6EZHfTWVLYUBau3F+ilOd9IeH8rmatorEY5LXP4=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ boost gmp htslib zlib lzma ];
+  buildInputs = [ boost gmp htslib zlib xz ];
 
   postInstall = ''
     mkdir $out/bin
diff --git a/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix b/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
index 52a17e8d01cd..ed0d043cd542 100644
--- a/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "picard-tools";
-  version = "2.25.0";
+  version = "2.25.1";
 
   src = fetchurl {
     url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
-    sha256 = "sha256-+vJDTahP4htRbVeBd2eSD97fwZ69wB2cro1tMxT36Jc=";
+    sha256 = "sha256-bW5iLWtGX5/HBMN7y6VbDaxa0U0HCIu9vfreXNAn7hw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/science/biology/platypus/default.nix b/nixpkgs/pkgs/applications/science/biology/platypus/default.nix
index 30bc68fb0e87..d602395b8757 100644
--- a/nixpkgs/pkgs/applications/science/biology/platypus/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/platypus/default.nix
@@ -13,7 +13,8 @@ in stdenv.mkDerivation {
     sha256 = "0nah6r54b8xm778gqyb8b7rsd76z8ji4g73sm6rvpw5s96iib1vw";
   };
 
-  buildInputs = [ htslib python zlib makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ htslib python zlib ];
 
   buildPhase = ''
     patchShebangs .
diff --git a/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix b/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix
index 22883cc522f1..28a21522c6b8 100644
--- a/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   makeFlags = [
-    "CC=cc"
+    "CC=${stdenv.cc.targetPrefix}cc"
     "INSTALLDIR=$(out)/bin"
   ];
 
diff --git a/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix b/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
index 8802736efac8..7b5141302f7b 100644
--- a/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, python3, which, dmd, ldc, zlib }:
+{ lib, stdenv, fetchFromGitHub, python3, which, ldc, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "sambamba";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "biod";
     repo = "sambamba";
     rev = "v${version}";
-    sha256 = "0k5wy06zrbsc40x6answgz7rz2phadyqwlhi9nqxbfqanbg9kq20";
+    sha256 = "sha256:0kx5a0fmvv9ldz2hnh7qavgf7711kqc73zxf51k4cca4hr58zxr9";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ which python3 dmd ldc ];
+  nativeBuildInputs = [ which python3 ldc ];
   buildInputs = [ zlib ];
 
   # Upstream's install target is broken; copy manually
diff --git a/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix b/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix
index 32701af8392c..4c32516b29f6 100644
--- a/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0i12mv93bfv8xjwc3rs2x73d6hkvi7kgbbbx3ry984l3ly4p6nnm";
   };
 
-  buildInputs = [ unzip jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ jre ];
 
   sourceRoot = "snpEff";
 
diff --git a/nixpkgs/pkgs/applications/science/biology/spades/default.nix b/nixpkgs/pkgs/applications/science/biology/spades/default.nix
index ec381693aedf..e6f33d6cde90 100644
--- a/nixpkgs/pkgs/applications/science/biology/spades/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/spades/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "SPAdes";
-  version = "3.14.1";
+  version = "3.15.2";
 
   src = fetchurl {
     url = "http://cab.spbu.ru/files/release${version}/${pname}-${version}.tar.gz";
-    sha256 = "1ji3afn6yvx7ysg7p9j0d1g28zrnxg1b7x90mhs2bj3lgs7vfafn";
+    sha256 = "03cxz4m1n4rc81lqb4p1pz2ammms7f31wvi4daywfkc13aal6fz9";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -19,9 +19,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "St. Petersburg genome assembler: assembly toolkit containing various assembly pipelines";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     homepage = "http://cab.spbu.ru/software/spades/";
-    platforms = platforms.unix;
+    platforms = with platforms; [ "x86_64-linux" "x86_64-darwin"];
     maintainers = [ maintainers.bzizou ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/biology/stacks/default.nix b/nixpkgs/pkgs/applications/science/biology/stacks/default.nix
index c208d80d5769..16091514f154 100644
--- a/nixpkgs/pkgs/applications/science/biology/stacks/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/stacks/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "stacks";
-  version = "2.53";
+  version = "2.55";
   src = fetchurl {
     url = "http://catchenlab.life.illinois.edu/stacks/source/${pname}-${version}.tar.gz";
-    sha256 = "1zchds205nwdqch1246953dr8c0019yas178qbq3jypbxvmgq7pf";
+    sha256 = "sha256-p8L0F3A+GdNsPgTQNn9Em5EjFCc9f7gUvyLIRCTd05c=";
   };
 
   buildInputs = [ zlib ];
diff --git a/nixpkgs/pkgs/applications/science/biology/star/default.nix b/nixpkgs/pkgs/applications/science/biology/star/default.nix
index 345863847377..9ad53502cd76 100644
--- a/nixpkgs/pkgs/applications/science/biology/star/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/star/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "star";
-  version = "2.7.7a";
+  version = "2.7.8a";
 
   src = fetchFromGitHub {
     repo = "STAR";
     owner = "alexdobin";
     rev = version;
-    sha256 = "sha256-0K49yjcnTzC56ZIB20OeTiMJ5EW8mRx+xEpyWEfFcts=";
+    sha256 = "sha256-2qqdCan67bcoUGgr5ro2LGGHDAyS/egTrT8pWX1chX0=";
   };
 
   sourceRoot = "source/source";
diff --git a/nixpkgs/pkgs/applications/science/biology/svaba/default.nix b/nixpkgs/pkgs/applications/science/biology/svaba/default.nix
index 87b77f6ac045..1aed501919f9 100644
--- a/nixpkgs/pkgs/applications/science/biology/svaba/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/svaba/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, zlib, bzip2, lzma, fetchFromGitHub } :
+{ lib, stdenv, zlib, bzip2, xz, fetchFromGitHub } :
 
 stdenv.mkDerivation rec {
   version = "1.1.0";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  buildInputs = [ zlib bzip2 lzma ];
+  buildInputs = [ zlib bzip2 xz ];
 
   installPhase = ''
     runHook preInstall
diff --git a/nixpkgs/pkgs/applications/science/biology/varscan/default.nix b/nixpkgs/pkgs/applications/science/biology/varscan/default.nix
index 65a19b83a70e..2a232d64693d 100644
--- a/nixpkgs/pkgs/applications/science/biology/varscan/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/varscan/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-+yO3KrZ2+1qJvQIJHCtsmv8hC5a+4E2d7mrvTYtygU0=";
   };
 
-  buildInputs = [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   phases = [ "installPhase" ];
 
diff --git a/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix b/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
index 8d9ea7a3917b..74a6b495587c 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -35,10 +35,10 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gwyddion";
-   version = "2.56";
+   version = "2.57";
   src = fetchurl {
     url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
-    sha256 = "0z83p3ifdkv5dds8s6fqqbycql1zmgppdc7ygqmm12z5zlrl9p12";
+    sha256 = "sha256-kx/WqtNDaJQyVehxZ3weddXyaM1knX+fCuv47A9GaH0=";
   };
 
   nativeBuildInputs = [ pkg-config file ];
diff --git a/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix b/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
index aa52fee0890d..bb523cddd196 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
@@ -17,14 +17,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "14.31.18";
+  version = "14.31.35";
   pname = "jmol";
 
   src = let
     baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
   in fetchurl {
     url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
-    sha256 = "0hkc7c08azbw3k91ygwz6r5y4yw6k8l7h4gcq5p71knd5k1fa5jd";
+    sha256 = "sha256-uB7d27eicfmE1TpjLAxUoC8LBYAOrg3B48M1/CxWZdg=";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix b/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
index 23635f8e6c6a..b4f0d955d6b2 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
@@ -4,12 +4,12 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "marvin";
-  version = "21.2.0";
+  version = "21.3.0";
 
   src = fetchurl {
     name = "marvin-${version}.deb";
     url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
-    sha256 = "sha256-CLvMspk7HqrtNM5TD45mZIz6vsS32eUuxFDJiBDs9VY=";
+    sha256 = "sha256-PM4Exi4YD6WibxqtewLzE4dDRgSVHiTT36p68uoQP4g=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix b/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix
index 6d70e9f984f6..a348c51c2815 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix
@@ -38,7 +38,7 @@ configureFlags = if useMpi then [ "LD=${mpi}/bin/mpif90" ] else [ "LD=${gfortran
       '';
     homepage = "https://www.quantum-espresso.org/";
     license = licenses.gpl2;
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = [ maintainers.costrouc ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix b/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix
index 70d07460a751..dac6713a495c 100644
--- a/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix
@@ -2,11 +2,11 @@
 
 let
   pname = "diylc";
-  version = "4.15.1";
+  version = "4.17.0";
   files = {
     app = fetchurl {
       url = "https://github.com/bancika/diy-layout-creator/releases/download/v${version}/diylc-${version}.zip";
-      sha256 = "09vzbxas654n8npxljqljf930y5gcjfvv3r4dv97dwk5sy66xvaf";
+      sha256 = "0cysqkrddhbs7rprm8xm21c286mz4apw66fxakhzlg50kjn0nwjv";
     };
     icon16 = fetchurl {
       url = "https://raw.githubusercontent.com/bancika/diy-layout-creator/v${version}/diylc/diylc-core/src/org/diylc/core/images/icon_small.png";
@@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ unzip ];
 
   installPhase = ''
+    runHook preInstall
+
     install -d $out/share/diylc
     ${unzip}/bin/unzip -UU ${files.app} -d $out/share/diylc
     rm $out/share/diylc/diylc.exe
@@ -59,6 +61,8 @@ stdenv.mkDerivation rec {
     ${jre8}/bin/java -Xms512m -Xmx2048m -Dorg.diylc.scriptRun=true -Dfile.encoding=UTF-8 -cp diylc.jar:lib org.diylc.DIYLCStarter
     EOF
     chmod +x $out/bin/diylc
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -67,5 +71,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/bancika/diy-layout-creator/releases";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ eduardosm ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/electronics/gnucap/default.nix b/nixpkgs/pkgs/applications/science/electronics/gnucap/default.nix
new file mode 100644
index 000000000000..c51e5de93d64
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/gnucap/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "gnucap";
+  version = "20210107";
+
+  src = fetchurl {
+    url = "https://git.savannah.gnu.org/cgit/gnucap.git/snapshot/${pname}-${version}.tar.gz";
+    sha256 = "12rlwd4mfc54qq1wrx5k8qk578xls5z4isf94ybkf2z6qxk4mhnj";
+  };
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Gnu Circuit Analysis Package";
+    longDescription = ''
+Gnucap is a modern general purpose circuit simulator with several advantages over Spice derivatives.
+It performs nonlinear dc and transient analyses, fourier analysis, and ac analysis.
+    '';
+    homepage = "http://www.gnucap.org/";
+    changelog = "https://git.savannah.gnu.org/cgit/gnucap.git/plain/NEWS?h=v${version}";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.raboof ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix b/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
index 971891a5b011..3a3994d9ad62 100644
--- a/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gtkwave";
-  version = "3.3.107";
+  version = "3.3.108";
 
   src = fetchurl {
     url    = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
-    sha256 = "0ma30jyc94iid3v3m8aw4i2lyiqfxkpsdvdmmaibynk400cbzivl";
+    sha256 = "sha256-LtlexZKih+Si/pH3oQpWdpzfZ6j+41Otgfx7nLMfFSQ=";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
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 2c5ee674a23d..346483b9231e 100644
--- a/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -1,17 +1,17 @@
 { lib, stdenv, fetchFromGitHub, cmake, ninja, pkg-config, python3Packages
 , boost, rapidjson, qtbase, qtsvg, igraph, spdlog, wrapQtAppsHook
-, fmt, graphviz, llvmPackages ? null
+, fmt, graphviz, llvmPackages, z3
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.1.9";
+  version = "3.2.6";
   pname = "hal-hardware-analyzer";
 
   src = fetchFromGitHub {
     owner = "emsec";
     repo = "hal";
     rev = "v${version}";
-    sha256 = "0yvvlx0hq73x20va4csa8kyx3x4z648s6l6qqirzjpmxa1w91xc6";
+    sha256 = "sha256-GRHRrAxZ10hmAXkGGSQEwNJTbnMbJ9jMyKnOUq+KoWo=";
   };
   # make sure bundled dependencies don't get in the way - install also otherwise
   # copies them in full to the output, bloating the package
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ cmake ninja pkg-config ];
-  buildInputs = [ qtbase qtsvg boost rapidjson igraph spdlog fmt graphviz wrapQtAppsHook ]
+  buildInputs = [ qtbase qtsvg boost rapidjson igraph spdlog fmt graphviz wrapQtAppsHook z3 ]
     ++ (with python3Packages; [ python pybind11 ])
     ++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
 
diff --git a/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix b/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix
index ef68eb999fac..dee0a851bf8c 100644
--- a/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix
@@ -6,7 +6,7 @@
 , epoxy
 , fetchFromGitHub
 , glm
-, gnome3
+, gtkmm3
 , lib
 , libgit2
 , librsvg
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     curl
     epoxy
     glm
-    gnome3.gtkmm
+    gtkmm3
     libgit2
     librsvg
     libuuid
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
index 3ed6234b4f86..1a5c0de5fb7f 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv
-, fetchFromGitLab
+{ lib
+, stdenv
 , cmake
 , libGLU
 , libGL
@@ -18,9 +18,7 @@
 , pcre
 , libpthreadstubs
 , libXdmcp
-, fetchpatch
 , lndir
-, callPackage
 
 , stable
 , baseName
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
index 88bb79788812..b91b5ad14a9c 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv
 , fetchFromGitLab
 , gnome3
+, dconf
 , wxGTK30
 , wxGTK31
 , makeWrapper
@@ -15,19 +16,15 @@
 , stable ? true
 , oceSupport ? false
 , withOCE ? false
-, opencascade
 , withOCCT ? false
 , withOCC ? true
-, opencascade-occt
 , ngspiceSupport ? false
 , withNgspice ? true
 , libngspice
 , scriptingSupport ? false
 , withScripting ? true
-, swig
 , python3
 , debug ? false
-, valgrind
 , with3d ? true
 , withI18n ? true
 , srcs ? { }
@@ -190,12 +187,12 @@ stdenv.mkDerivation rec {
   makeWrapperArgs = with passthru.libraries; [
     "--prefix XDG_DATA_DIRS : ${base}/share"
     "--prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share"
-    "--prefix XDG_DATA_DIRS : ${gnome3.defaultIconTheme}/share"
+    "--prefix XDG_DATA_DIRS : ${gnome3.adwaita-icon-theme}/share"
     "--prefix XDG_DATA_DIRS : ${wxGTK.gtk}/share/gsettings-schemas/${wxGTK.gtk.name}"
     "--prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}"
     # wrapGAppsHook did these two as well, no idea if it matters...
     "--prefix XDG_DATA_DIRS : ${cups}/share"
-    "--prefix GIO_EXTRA_MODULES : ${gnome3.dconf}/lib/gio/modules"
+    "--prefix GIO_EXTRA_MODULES : ${dconf}/lib/gio/modules"
 
     "--set-default KISYSMOD ${footprints}/share/kicad/modules"
     "--set-default KICAD_SYMBOL_DIR ${symbols}/share/kicad/library"
diff --git a/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix b/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix
index 394a17876155..53a67cea40bc 100644
--- a/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix
@@ -18,30 +18,25 @@ stdenv.mkDerivation rec {
   buildInputs = [ qtbase ];
 
   qmakeFlags = ["-r"];
-  enableParallelBuilding = true;
-
-  postInstall = ''
-    mkdir -p $out/share/librepcb/fontobene
-    cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/
-  '';
 
   # the build system tries to use 'git' at build time to find the HEAD hash.
   # that's a no-no, so replace it with a quick hack. NOTE: the # adds a comment
   # at the end of the line to remove the git call.
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace ./libs/librepcb/common/common.pro \
       --replace 'GIT_COMMIT_SHA' 'GIT_COMMIT_SHA="\\\"${src.rev}\\\"" # '
   '';
 
-  preFixup = ''
-    wrapQtApp $out/bin/librepcb
+  postInstall = ''
+    mkdir -p $out/share/librepcb/fontobene
+    cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/
   '';
 
   meta = with lib; {
     description = "A free EDA software to develop printed circuit boards";
     homepage    = "https://librepcb.org/";
     maintainers = with maintainers; [ luz thoughtpolice ];
-    license     = licenses.gpl3;
+    license     = licenses.gpl3Plus;
     platforms   = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix b/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix
index f8fbdffc6340..0eed8b1692aa 100644
--- a/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ngspice";
-  version = "33";
+  version = "34";
 
   src = fetchurl {
     url = "mirror://sourceforge/ngspice/ngspice-${version}.tar.gz";
-    sha256 = "1wa1hmpn13spmxqgbb1m7vgy32mwvjqwrxhymzll8z65q5nbd7dr";
+    sha256 = "sha256-ImP//GaUdUlyr3By7wHP5irHkIANrWUbwpC/yueb17U=";
   };
 
   nativeBuildInputs = [ flex bison ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix b/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix
index 69ff7b2e69f3..d28f1d181215 100644
--- a/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pcb";
-  version = "4.2.2";
+  version = "4.3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/pcb/${pname}-${version}.tar.gz";
-    sha256 = "0pbfyfadbia1jf9ywkf02j8mfdh8c3mj390c2jdqnl70vcdszvhw";
+    sha256 = "sha256-roUvRq+Eq6f1HYE/uRb8f82+6kP3E08VBQcCThdD+14=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix b/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
index 9bb04a3189ef..5a46e8f63840 100644
--- a/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, tcl, tk, libX11, glibc, which, yacc, flex, imake, xorgproto, gccmakedep }:
+{ lib, stdenv, fetchurl, tcl, tk, libX11, glibc, which, bison, flex, imake, xorgproto, gccmakedep }:
 
 let
   libiconvInc = lib.optionalString stdenv.isLinux "${glibc.dev}/include";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1pqywkidfpdbj18i03h97f4cimld4fb3mqfy8jjsxs12kihm18fs";
   };
 
-  nativeBuildInputs = [ which yacc flex imake gccmakedep ];
+  nativeBuildInputs = [ which bison flex imake gccmakedep ];
   buildInputs = [ tcl tk libX11 xorgproto ];
   dontUseImakeConfigure = true;
 
diff --git a/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix b/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
index fe988642c01e..5871ad01d91c 100644
--- a/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "verilator";
-  version = "4.108";
+  version = "4.110";
 
   src = fetchurl {
     url    = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
-    sha256 = "00i7am41w9v4smhl64z7s95wdb55f684y89mc0hbc07j1ggc33lf";
+    sha256 = "sha256-Rxb+AFhmGinWtZyvjnRxsu3b3tbtRO3njcHGUJTs/sw=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix b/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix
index 13364beed5cb..1cf08741206c 100644
--- a/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix
@@ -1,20 +1,20 @@
-{ lib, stdenv, fetchurl, dune, ocamlPackages }:
+{ lib, stdenv, fetchurl, dune_2, ocamlPackages }:
 
 stdenv.mkDerivation {
 
   pname = "acgtk";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchurl {
-    url = "https://acg.loria.fr/software/acg-1.5.1-20191113.tar.gz";
-    sha256 = "17595qfwhzz5q091ak6i6bg5wlppbn8zfn58x3hmmmjvx2yfajn1";
+    url = "https://acg.loria.fr/software/acg-1.5.2-20201204.tar.gz";
+    sha256 = "09yax7dyw8kgwzlb69r9d20y7rrymzwi3bbq2dh0qdq01vjz2xwq";
   };
 
-  buildInputs = [ dune ] ++ (with ocamlPackages; [
+  buildInputs = [ dune_2 ] ++ (with ocamlPackages; [
     ocaml findlib ansiterminal cairo2 cmdliner fmt logs menhir mtime yojson
   ]);
 
-  buildPhase = "dune build";
+  buildPhase = "dune build --profile=release";
 
   installPhase = ''
     dune install --prefix $out --libdir $OCAMLFIND_DESTDIR
diff --git a/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix b/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix
index 519b1f98138e..dd72d148e297 100644
--- a/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix
@@ -9,20 +9,22 @@ let
     sha256 = "124k2a4ikk4wdpmvgjpgl97x9skvr9qznk8m68dzsynzpv6yksaj";
   };
 
+  useDune2 = true;
+
   nativeBuildInputs = [ which ];
 
 in
 
 let alt-ergo-lib = ocamlPackages.buildDunePackage rec {
   pname = "alt-ergo-lib";
-  inherit version src nativeBuildInputs;
+  inherit version src useDune2 nativeBuildInputs;
   configureFlags = pname;
   propagatedBuildInputs = with ocamlPackages; [ num ocplib-simplex stdlib-shims zarith ];
 }; in
 
 let alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
   pname = "alt-ergo-parsers";
-  inherit version src nativeBuildInputs;
+  inherit version src useDune2 nativeBuildInputs;
   configureFlags = pname;
   buildInputs = with ocamlPackages; [ menhir ];
   propagatedBuildInputs = [ alt-ergo-lib ] ++ (with ocamlPackages; [ camlzip psmt2-frontend ]);
@@ -30,7 +32,7 @@ let alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
 
 ocamlPackages.buildDunePackage {
 
-  inherit pname version src nativeBuildInputs;
+  inherit pname version src useDune2 nativeBuildInputs;
 
   configureFlags = pname;
 
diff --git a/nixpkgs/pkgs/applications/science/logic/coq/default.nix b/nixpkgs/pkgs/applications/science/logic/coq/default.nix
index 62600ea90c20..560e8dd733af 100644
--- a/nixpkgs/pkgs/applications/science/logic/coq/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/coq/default.nix
@@ -8,7 +8,7 @@
 { lib, stdenv, fetchzip, writeText, pkg-config, gnumake42
 , customOCamlPackages ? null
 , ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ncurses
-, buildIde ? !(stdenv.isDarwin && lib.versionAtLeast version "8.10")
+, buildIde ? true
 , glib, gnome3, wrapGAppsHook
 , csdp ? null
 , version, coq-version ? null,
@@ -42,6 +42,7 @@ let
    "8.12.1".sha256     = "1rkcyjjrzcqw9xk93hsq0vvji4f8r5iq0f739mghk60bghkpnb7q";
    "8.12.2".sha256     = "18gscfm039pqhq4msq01nraig5dm9ab98bjca94zldf8jvdv0x2n";
    "8.13.0".sha256     = "0sjbqmz6qcvnz0hv87xha80qbhvmmyd675wyc5z4rgr34j2l1ymd";
+   "8.13.1".sha256     = "0xx2ns84mlip9bg2mkahy3pmc5zfcgrjxsviq9yijbzy1r95wf0n";
   };
   releaseRev = v: "V${v}";
   fetched = import ../../../../build-support/coq/meta-fetch/default.nix
@@ -126,7 +127,7 @@ self = stdenv.mkDerivation {
   buildInputs = [ ncurses ] ++ ocamlBuildInputs
     ++ optionals buildIde
       (if versionAtLeast "8.10"
-       then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.defaultIconTheme wrapGAppsHook ]
+       then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.adwaita-icon-theme wrapGAppsHook ]
        else [ ocamlPackages.lablgtk ]);
 
   postPatch = ''
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
new file mode 100644
index 000000000000..b382e6f9e754
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
@@ -0,0 +1,40 @@
+diff --git a/src/elan-dist/src/component/package.rs b/src/elan-dist/src/component/package.rs
+index fd9fe74..0fefa39 100644
+--- a/src/elan-dist/src/component/package.rs
++++ b/src/elan-dist/src/component/package.rs
+@@ -50,11 +50,35 @@ fn unpack_without_first_dir<R: Read>(archive: &mut tar::Archive<R>, path: &Path)
+         };
+ 
+         try!(entry.unpack(&full_path).chain_err(|| ErrorKind::ExtractingPackage));
++        nix_patchelf_if_needed(&full_path);
+     }
+ 
+     Ok(())
+ }
+ 
++fn nix_patchelf_if_needed(dest_path: &Path) {
++    let (is_bin, is_lib) = if let Some(p) = dest_path.parent() {
++        (p.ends_with("bin"), p.ends_with("lib"))
++    } else {
++        (false, false)
++    };
++
++    if is_bin {
++        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++            .arg("--set-interpreter")
++            .arg("@dynamicLinker@")
++            .arg(dest_path)
++            .output();
++    }
++    else if is_lib {
++        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++            .arg("--set-rpath")
++            .arg("@libPath@")
++            .arg(dest_path)
++            .output();
++    }
++}
++
+ #[derive(Debug)]
+ pub struct ZipPackage<'a>(temp::Dir<'a>);
+ 
diff --git a/nixpkgs/pkgs/applications/science/logic/elan/default.nix b/nixpkgs/pkgs/applications/science/logic/elan/default.nix
index bb10998b2f45..fab930e2c7b8 100644
--- a/nixpkgs/pkgs/applications/science/logic/elan/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/elan/default.nix
@@ -1,24 +1,46 @@
-{ lib, pkg-config, curl, openssl, zlib, fetchFromGitHub, rustPlatform }:
+{ stdenv, lib, runCommand, patchelf, makeWrapper, pkg-config, curl
+, openssl, gmp, zlib, fetchFromGitHub, rustPlatform }:
+
+let
+  libPath = lib.makeLibraryPath [ gmp ];
+in
 
 rustPlatform.buildRustPackage rec {
   pname = "elan";
-  version = "0.10.3";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "kha";
     repo = "elan";
     rev = "v${version}";
-    sha256 = "sha256-YkGfuqtvVfPcxJ8UqD5QidcNEy5brTWGEK4fR64Yz70=";
+    sha256 = "1sl69ygdwhf80sx6m76x5gp1kwsw0rr1lv814cgzm8hvyr6g0jqa";
   };
 
-  cargoSha256 = "sha256-2fYicpoEERwD4OjdpseKQOkDvZlb7NnOZcb6Tu+rQdA=";
+  cargoSha256 = "1f881maf8jizd5ip7pc1ncbiq7lpggp0byma13pvqk7gisnqyr4r";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
 
+  OPENSSL_NO_VENDOR = 1;
   buildInputs = [ curl zlib openssl ];
 
   cargoBuildFlags = [ "--features no-self-update" ];
 
+  patches = lib.optionals stdenv.isLinux [
+    # Run patchelf on the downloaded binaries.
+    # This necessary because Lean 4 now dynamically links to GMP.
+    (runCommand "0001-dynamically-patchelf-binaries.patch" {
+        CC = stdenv.cc;
+        patchelf = patchelf;
+        libPath = "$ORIGIN/../lib:${libPath}";
+      } ''
+     export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+     substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+       --subst-var patchelf \
+       --subst-var dynamicLinker \
+       --subst-var libPath
+    '')
+  ];
+
   postInstall = ''
     pushd $out/bin
     mv elan-init elan
@@ -27,6 +49,8 @@ rustPlatform.buildRustPackage rec {
     done
     popd
 
+    wrapProgram $out/bin/elan --prefix "LD_LIBRARY_PATH" : "${libPath}"
+
     # tries to create .elan
     export HOME=$(mktemp -d)
     mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
diff --git a/nixpkgs/pkgs/applications/science/logic/hol/default.nix b/nixpkgs/pkgs/applications/science/logic/hol/default.nix
index 6fc7286154ae..569c455e6532 100644
--- a/nixpkgs/pkgs/applications/science/logic/hol/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/hol/default.nix
@@ -3,14 +3,14 @@
 
 let
   pname = "hol4";
-  vnum = "10";
+  vnum = "14";
 in
 
 let
   version = "k.${vnum}";
   longVersion = "kananaskis-${vnum}";
   holsubdir = "hol-${longVersion}";
-  kernelFlag = if experimentalKernel then "-expk" else "-stdknl";
+  kernelFlag = if experimentalKernel then "--expk" else "--stdknl";
 in
 
 let
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/hol/hol/${longVersion}/${holsubdir}.tar.gz";
-    sha256 = "0x2wxksr305h1lrbklf6p42lp09rbhb4rsh74g0l70sgapyiac9b";
+    sha256 = "6Mc/qsEjzxGqzt6yP6x/1Tmqpwc1UDGlwV1Gl+4pMsY=";
   };
 
   buildInputs = [polymlEnableShared graphviz fontconfig liberation_ttf];
@@ -46,8 +46,8 @@ stdenv.mkDerivation {
     cd ${holsubdir}
 
     substituteInPlace tools/Holmake/Holmake_types.sml \
-      --replace "\"/bin/mv\"" "\"mv\"" \
-      --replace "\"/bin/cp\"" "\"cp\""
+      --replace "\"/bin/" "\"" \
+
 
     for f in tools/buildutils.sml help/src-sml/DOT;
     do
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
 
     poly < tools/smart-configure.sml
 
-    bin/build ${kernelFlag} -symlink
+    bin/build ${kernelFlag}
 
     mkdir -p "$out/bin"
     ln -st $out/bin  $out/src/${holsubdir}/bin/*
@@ -81,8 +81,7 @@ stdenv.mkDerivation {
     '';
     homepage = "http://hol.sourceforge.net/";
     license = licenses.bsd3;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ mudri ];
-    platforms = with platforms; linux;
-    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix b/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
index a0f81a543f18..600ae83ff912 100644
--- a/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
       sha256 = "1bibabhlsvf6qsjjkgxcpq3cvl1z7r8yfcgqbhbvsiv69n3gyfk3";
     };
 
-  buildInputs = [ perl polyml z3 makeWrapper ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl polyml z3 ]
              ++ lib.optionals (!stdenv.isDarwin) [ nettools java ];
 
   sourceRoot = dirname;
diff --git a/nixpkgs/pkgs/applications/science/logic/lean/default.nix b/nixpkgs/pkgs/applications/science/logic/lean/default.nix
index 7749f4fd72dd..b57ee0f61f13 100644
--- a/nixpkgs/pkgs/applications/science/logic/lean/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/lean/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lean";
-  version = "3.26.0";
+  version = "3.28.0";
 
   src = fetchFromGitHub {
     owner  = "leanprover-community";
     repo   = "lean";
     rev    = "v${version}";
-    sha256 = "sha256-xCULu6ljfyrA/Idr/BJ+3rLVmQqJZPoo+a7s++u50zU=";
+    sha256 = "sha256-IzoFE92F559WeSUCiYZ/fx2hrsyRzgOACr3/pzJ4OOY=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/science/logic/lean2/default.nix b/nixpkgs/pkgs/applications/science/logic/lean2/default.nix
index b3c6a51d440a..24d11c3a5319 100644
--- a/nixpkgs/pkgs/applications/science/logic/lean2/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/lean2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, gmp, mpfr, python
+{ lib, stdenv, fetchFromGitHub, cmake, gmp, mpfr, python2
 , gperftools, ninja, makeWrapper }:
 
 stdenv.mkDerivation {
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ cmake makeWrapper ninja ];
-  buildInputs = [ gmp mpfr python gperftools ];
+  buildInputs = [ gmp mpfr python2 gperftools ];
 
   preConfigure = ''
     patchShebangs bin/leantags
diff --git a/nixpkgs/pkgs/applications/science/logic/leo2/default.nix b/nixpkgs/pkgs/applications/science/logic/leo2/default.nix
index 520c47d7500b..fc2c1e5cba4c 100644
--- a/nixpkgs/pkgs/applications/science/logic/leo2/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/leo2/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1wjpmizb181iygnd18lx7p77fwaci2clgzs5ix5j51cc8f3pazmv";
   };
 
-  buildInputs = [ makeWrapper eprover ocaml perl zlib ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ eprover ocaml perl zlib ];
 
   sourceRoot = "leo2/src";
 
diff --git a/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix b/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix
index 56898f163b99..da9231efb813 100644
--- a/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ libGLU libGL qt5.qtbase boost ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "A toolset for model-checking concurrent systems and protocols";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/science/logic/poly/default.nix b/nixpkgs/pkgs/applications/science/logic/poly/default.nix
index db124c379cad..15e89138c6b3 100644
--- a/nixpkgs/pkgs/applications/science/logic/poly/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/poly/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchFromGitHub, gmp, cmake, python}:
+{lib, stdenv, fetchFromGitHub, gmp, cmake, python3}:
 
 stdenv.mkDerivation rec {
   pname = "libpoly";
@@ -14,7 +14,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ gmp python ];
+  buildInputs = [ gmp python3 ];
+
+  strictDeps = true;
 
   meta = with lib; {
     homepage = "https://github.com/SRI-CSL/libpoly";
diff --git a/nixpkgs/pkgs/applications/science/logic/sad/default.nix b/nixpkgs/pkgs/applications/science/logic/sad/default.nix
index 8e4d19973ef7..fe0ca1b3017b 100644
--- a/nixpkgs/pkgs/applications/science/logic/sad/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/sad/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, haskell, spass }:
+{ lib, stdenv, fetchurl, haskell, spass }:
 
 stdenv.mkDerivation {
   name = "system-for-automated-deduction-2.3.25";
diff --git a/nixpkgs/pkgs/applications/science/logic/satallax/default.nix b/nixpkgs/pkgs/applications/science/logic/satallax/default.nix
index dffb66b2fcf5..8c88f47327e9 100644
--- a/nixpkgs/pkgs/applications/science/logic/satallax/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/satallax/default.nix
@@ -3,7 +3,8 @@ stdenv.mkDerivation rec {
   pname = "satallax";
   version = "2.7";
 
-  buildInputs = [ocaml zlib which eprover makeWrapper coq];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ocaml zlib which eprover coq];
   src = fetchurl {
     url = "https://www.ps.uni-saarland.de/~cebrown/satallax/downloads/${pname}-${version}.tar.gz";
     sha256 = "1kvxn8mc35igk4vigi5cp7w3wpxk2z3bgwllfm4n3h2jfs0vkpib";
diff --git a/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix b/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix
index c4ba334b85ff..f002b808e0af 100644
--- a/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
     sha256 = "1mm6r9bq79zks50yk0agcpdkw9yy994m38ibmgpb3bi3wkpq9891";
   };
 
-  buildInputs = [ makeWrapper adoptopenjdk-bin ant ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ adoptopenjdk-bin ant ];
 
   buildPhase = "ant -f tlatools/org.lamport.tlatools/customBuild.xml compile dist";
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix b/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
index 1c33d923289f..defe218b119e 100644
--- a/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
+++ b/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -1,11 +1,8 @@
 { lib, fetchzip, makeWrapper, makeDesktopItem, stdenv
-, gtk, libXtst, glib, zlib
+, gtk3, libXtst, glib, zlib
 }:
 
 let
-  version = "1.7.0";
-  arch = "x86_64";
-
   desktopItem = makeDesktopItem rec {
     name = "TLA+Toolbox";
     exec = "tla-toolbox";
@@ -20,19 +17,21 @@ let
   };
 
 
-in stdenv.mkDerivation {
+in stdenv.mkDerivation rec {
   pname = "tla-toolbox";
-  inherit version;
+  version = "1.7.1";
   src = fetchzip {
-    url = "https://tla.msr-inria.inria.fr/tlatoolbox/products/TLAToolbox-${version}-linux.gtk.${arch}.zip";
-    sha256 = "0v15wscawair5bghr5ixb4i062kmh9by1m0hnz2r1sawlqyafz02";
+    url = "https://tla.msr-inria.inria.fr/tlatoolbox/products/TLAToolbox-${version}-linux.gtk.x86_64.zip";
+    sha256 = "02a2y2mkfab5cczw8g604m61h4xr0apir49zbd1aq6mmgcgngw80";
   };
 
-  buildInputs = [ makeWrapper  ];
+  nativeBuildInputs = [ makeWrapper ];
 
   phases = [ "installPhase" ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p "$out/bin"
     cp -r "$src" "$out/toolbox"
     chmod -R +w "$out/toolbox"
@@ -43,12 +42,17 @@ in stdenv.mkDerivation {
 
     patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      --set-rpath "${lib.makeLibraryPath [ zlib ]}:$(patchelf --print-rpath $(find "$out/toolbox" -name java))" \
       "$(find "$out/toolbox" -name java)"
 
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      "$(find "$out/toolbox" -name jspawnhelper)"
+
     makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
       --run "set -x; cd $out/toolbox" \
       --add-flags "-data ~/.tla-toolbox" \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk libXtst glib zlib ]}"
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}"
 
     echo -e "\nCreating TLA Toolbox icons..."
     pushd "$src"
@@ -63,6 +67,8 @@ in stdenv.mkDerivation {
 
     echo -e "\nCreating TLA Toolbox desktop entry..."
     cp -r "${desktopItem}/share/applications"* "$out/share/applications"
+
+    runHook postInstall
   '';
 
   meta = {
@@ -75,7 +81,7 @@ in stdenv.mkDerivation {
     '';
     # http://lamport.azurewebsites.net/tla/license.html
     license = with lib.licenses; [ mit ];
-    platforms = lib.platforms.linux;
+    platforms = [ "x86_64-linux" ];
     maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix b/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix
index 3528dbd3a647..d4fdbfd6937c 100644
--- a/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix
+++ b/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix
@@ -15,7 +15,8 @@ in stdenv.mkDerivation {
 
   phases = [ "buildPhase" "installPhase" ];
 
-  buildInputs = [ why3 makeWrapper ] ++ provers;
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ why3 ] ++ provers;
 
   buildPhase = ''
       mkdir -p $out/share/why3/
diff --git a/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix b/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
index cb0d668f5365..7fb73419c072 100644
--- a/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0v71x3fph2j3xrnysvkm7zsgnbxisfbdfgxzvzxxfdg59a6l3xid";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
 
diff --git a/nixpkgs/pkgs/applications/science/logic/z3/default.nix b/nixpkgs/pkgs/applications/science/logic/z3/default.nix
index cfef5960bd9c..e482a071bb43 100644
--- a/nixpkgs/pkgs/applications/science/logic/z3/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/z3/default.nix
@@ -57,9 +57,14 @@ stdenv.mkDerivation rec {
     mkdir -p $python/lib
     mv $lib/lib/python* $python/lib/
     ln -sf $lib/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary} $python/${python.sitePackages}/z3/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary}
+  '' + optionalString javaBindings ''
+    mkdir -p $java/share/java
+    mv com.microsoft.z3.jar $java/share/java
+    moveToOutput "lib/libz3java.${stdenv.hostPlatform.extensions.sharedLibrary}" "$java"
   '';
 
   outputs = [ "out" "lib" "dev" "python" ]
+    ++ optional javaBindings "java"
     ++ optional ocamlBindings "ocaml";
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix
index 7d052c6c5e9e..47b826078f24 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, fetchpatch, fetchurl, cmake, ctags, swig
 # data, compression
-, bzip2, curl, hdf5, json_c, lzma, lzo, protobuf, snappy
+, bzip2, curl, hdf5, json_c, xz, lzo, protobuf, snappy
 # maths
 , blas, lapack, eigen, nlopt, lp_solve, colpack, glpk
 # libraries
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
   buildInputs = with lib; [
-      blas lapack bzip2 colpack curl ctags eigen hdf5 json_c lp_solve lzma lzo
+      blas lapack bzip2 colpack curl ctags eigen hdf5 json_c lp_solve xz lzo
       protobuf nlopt snappy swig (libarchive.dev) libxml2 lapack glpk
     ]
     ++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix
new file mode 100644
index 000000000000..de6f92129838
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchFromGitHub, cmake, boost169, flatbuffers, fmt, rapidjson, spdlog, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "vowpal-wabbit";
+  version = "8.10.0";
+
+  src = fetchFromGitHub {
+    owner = "VowpalWabbit";
+    repo = "vowpal_wabbit";
+    rev = version;
+    sha256 = "1vxnwanflsx6zf8m9mrxms28ii7rl61xfxp3556y3iawmy11d6pl";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    boost169
+    flatbuffers
+    fmt
+    rapidjson
+    spdlog
+    zlib
+  ];
+
+  # -DBUILD_TESTS=OFF is set as both it saves time in the build and the default
+  # cmake flags appended by the builder include -DBUILD_TESTING=OFF for which
+  # this is the equivalent flag.
+  # Flatbuffers are an optional feature.
+  # BUILD_FLATBUFFERS=ON turns it on. This will still consume Flatbuffers as a
+  # system dependency
+  cmakeFlags = [
+    "-DVW_INSTALL=ON"
+    "-DBUILD_TESTS=OFF"
+    "-DBUILD_JAVA=OFF"
+    "-DBUILD_PYTHON=OFF"
+    "-DUSE_LATEST_STD=ON"
+    "-DRAPIDJSON_SYS_DEP=ON"
+    "-DFMT_SYS_DEP=ON"
+    "-DSPDLOG_SYS_DEP=ON"
+    "-DBUILD_FLATBUFFERS=ON"
+  ];
+
+  meta = with lib; {
+    description = "Machine learning system focused on online reinforcement learning";
+    homepage = "https://github.com/VowpalWabbit/vowpal_wabbit/";
+    license = licenses.bsd3;
+    longDescription = ''
+      Machine learning system which pushes the frontier of machine learning with techniques such as online,
+      hashing, allreduce, reductions, learning2search, active, and interactive and reinforcement learning
+    '';
+    maintainers = with maintainers; [ jackgerrits ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/R/default.nix b/nixpkgs/pkgs/applications/science/math/R/default.nix
index 7cbff99bf474..331faa6b1479 100644
--- a/nixpkgs/pkgs/applications/science/math/R/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/R/default.nix
@@ -12,11 +12,12 @@
 assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
-  name = "R-4.0.3";
+  pname = "R";
+  version = "4.0.4";
 
   src = fetchurl {
-    url = "https://cran.r-project.org/src/base/R-4/${name}.tar.gz";
-    sha256 = "03cypg2qf7v9mq9mr9alz9w5y9m5kdgwbc97bp26pyymg253m609";
+    url = "https://cran.r-project.org/src/base/R-${lib.versions.major version}/${pname}-${version}.tar.gz";
+    sha256 = "0bl098xcv8v316kqnf43v6gb4kcsv31ydqfm1f7qr824jzb2fgsj";
   };
 
   dontUseImakeConfigure = true;
@@ -33,7 +34,10 @@ stdenv.mkDerivation rec {
   ];
 
   prePatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace configure --replace "-install_name libR.dylib" "-install_name $out/lib/R/lib/libR.dylib"
+    substituteInPlace configure \
+      --replace "-install_name libRblas.dylib" "-install_name $out/lib/R/lib/libRblas.dylib" \
+      --replace "-install_name libRlapack.dylib" "-install_name $out/lib/R/lib/libRlapack.dylib" \
+      --replace "-install_name libR.dylib" "-install_name $out/lib/R/lib/libR.dylib"
   '';
 
   dontDisableStatic = static;
diff --git a/nixpkgs/pkgs/applications/science/math/calc/default.nix b/nixpkgs/pkgs/applications/science/math/calc/default.nix
index 81b7487bd27b..c5a3fd606c00 100644
--- a/nixpkgs/pkgs/applications/science/math/calc/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/calc/default.nix
@@ -3,23 +3,24 @@
 
 stdenv.mkDerivation rec {
   pname = "calc";
-  version = "2.12.7.6";
+  version = "2.12.9.1";
 
   src = fetchurl {
     urls = [
       "https://github.com/lcn2/calc/releases/download/${version}/${pname}-${version}.tar.bz2"
       "http://www.isthe.com/chongo/src/calc/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "sha256-Pg8nvW+RDy1Vb+Xg+5tnDxZEVkD80VcQGyZVayq8zsk=";
+    sha256 = "sha256-B3ko+RNT+LYSJG1P5cujgRMc1OJhDPqm1ONrMh+7fI4=";
   };
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace Makefile \
       --replace '-install_name ''${LIBDIR}/libcalc''${LIB_EXT_VERSION}' '-install_name ''${T}''${LIBDIR}/libcalc''${LIB_EXT_VERSION}' \
       --replace '-install_name ''${LIBDIR}/libcustcalc''${LIB_EXT_VERSION}' '-install_name ''${T}''${LIBDIR}/libcustcalc''${LIB_EXT_VERSION}'
   '';
 
-  buildInputs = [ util-linux makeWrapper ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ util-linux ]
              ++ lib.optionals enableReadline [ readline ncurses ];
 
   makeFlags = [
@@ -41,7 +42,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "C-style arbitrary precision calculator";
     homepage = "http://www.isthe.com/chongo/tech/comp/calc/";
-    license = licenses.lgpl21;
+    # The licensing situation depends on readline (see section 3 of the LGPL)
+    # If linked against readline then GPLv2 otherwise LGPLv2.1
+    license = with licenses; if enableReadline then gpl2Only else lgpl21Only;
     maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/science/math/cbc/default.nix b/nixpkgs/pkgs/applications/science/math/cbc/default.nix
index b75f3d3f7868..1909e4bb1d04 100644
--- a/nixpkgs/pkgs/applications/science/math/cbc/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/cbc/default.nix
@@ -2,14 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "cbc";
-  version = "2.10.3";
+  version = "2.10.4";
+
+  # Note: Cbc 2.10.5 contains Clp 1.17.5 which hits this bug
+  # that breaks or-tools https://github.com/coin-or/Clp/issues/130
 
   src = fetchurl {
     url = "https://www.coin-or.org/download/source/Cbc/Cbc-${version}.tgz";
-    sha256 = "1zzcg40ky5v96s7br2hqlkqdspwrn43kf3757g6c35wl29bq6f5d";
+    sha256 = "0zq66j1vvpslswhzi9yfgkv6vmg7yry4pdmfgqaqw2vhyqxnsy39";
   };
 
-  configureFlags = [ "-C" ];
+  # or-tools has a hard dependency on Cbc static libraries, so we build both
+  configureFlags = [ "-C" "--enable-static" ];
 
   enableParallelBuilding = true;
 
@@ -24,7 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.epl10;
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
-    broken = stdenv.isAarch64; # Missing <immintrin.h> after 2.10.0
     description = "A mixed integer programming solver";
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/math/dap/default.nix b/nixpkgs/pkgs/applications/science/math/dap/default.nix
new file mode 100644
index 000000000000..ed3290f6c27d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/dap/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dap";
+  version = "3.10";
+
+  src = fetchurl {
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "Bk5sty/438jLb1PpurMQ5OqMbr6JqUuuQjcg2bejh2Y=";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  meta = with lib; {
+    homepage = "https://www.gnu.org/software/dap";
+    description = "A small statistics and graphics package based on C";
+    longDescription = ''
+      Dap is a small statistics and graphics package based on C. Version 3.0 and
+      later of Dap can read SBS programs (based on the utterly famous, industry
+      standard statistics system with similar initials - you know the one I
+      mean)! The user wishing to perform basic statistical analyses is now freed
+      from learning and using C syntax for straightforward tasks, while
+      retaining access to the C-style graphics and statistics features provided
+      by the original implementation. Dap provides core methods of data
+      management, analysis, and graphics that are commonly used in statistical
+      consulting practice (univariate statistics, correlations and regression,
+      ANOVA, categorical data analysis, logistic regression, and nonparametric
+      analyses).
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/gap/default.nix b/nixpkgs/pkgs/applications/science/math/gap/default.nix
index 04a49becc973..ce93c14b334f 100644
--- a/nixpkgs/pkgs/applications/science/math/gap/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gap/default.nix
@@ -101,6 +101,9 @@ stdenv.mkDerivation rec {
       excludes = ["tst/testinstall/stringobj.tst"];
       sha256 = "1mz5b4mbw2jdd1ypp5s0dy6pp0jsvwsxr2dm4kbkls20r1r192sc";
     })
+
+    # fixes aarch64 gc crashes: https://github.com/gap-system/gap/pull/3965
+    ./mark-genstackfuncbags-as-noinline.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch b/nixpkgs/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch
new file mode 100644
index 000000000000..3a2f7231c091
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch
@@ -0,0 +1,13 @@
+diff --git a/src/gasman.c b/src/gasman.c
+index 417811401..314a74190 100644
+--- a/src/gasman.c
++++ b/src/gasman.c
+@@ -1861,7 +1861,7 @@ void SparcStackFuncBags( void )
+ #endif
+ 
+ 
+-void GenStackFuncBags ( void )
++NOINLINE void GenStackFuncBags ( void )
+ {
+     Bag *               top;            /* top of stack                    */
+     Bag *               p;              /* loop variable                   */
diff --git a/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix b/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
index dc952dc23295..20708004158b 100644
--- a/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
+++ b/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, unzip, fetchurl, electron_6, makeWrapper, geogebra }:
 let
   pname = "geogebra";
-  version = "6-0-620-0";
+  version = "6-0-631-0";
 
   srcIcon = geogebra.srcIcon;
   desktopItem = geogebra.desktopItem;
@@ -18,9 +18,9 @@ let
     src = fetchurl {
       urls = [
         "https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
-        "https://web.archive.org/web/20210101214511/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+        "https://web.archive.org/web/20210406083122/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
       ];
-      sha256 = "0xxzmphbfvmhnxnc1pkjgdhccjndyzmlvvaa8xfdrvswwwk7zh43";
+      sha256 = "1k4jxcvxxjxfrdghs4a29zpp4yid2vh1mfgp8xxr3qlzxnqv92ha";
     };
 
     dontConfigure = true;
@@ -53,9 +53,9 @@ let
     src = fetchurl {
       urls = [
         "https://download.geogebra.org/installers/6.0/GeoGebra-Classic-6-MacOS-Portable-${version}.zip"
-        "https://web.archive.org/web/20210101214236/https://download.geogebra.org/installers/6.0/GeoGebra-Classic-6-MacOS-Portable-${version}.zip"
+        "https://web.archive.org/web/20210406084052/https://download.geogebra.org/installers/6.0/GeoGebra-Classic-6-MacOS-Portable-${version}.zip"
       ];
-      sha256 = "13g05d45j6dn9zwxpxnln83j7w1cvcd7l8jnir30pxlmdi7h8r78";
+      sha256 = "0fa680yyz4nry1xvb9v6qqh1mib6grff5d3p7d90nyjlv101p262";
     };
 
     dontUnpack = true;
diff --git a/nixpkgs/pkgs/applications/science/math/gfan/default.nix b/nixpkgs/pkgs/applications/science/math/gfan/default.nix
index 587568f8c297..1a2835932c66 100644
--- a/nixpkgs/pkgs/applications/science/math/gfan/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gfan/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     substituteInPlace Makefile --replace "-fno-guess-branch-probability" ""
   '';
 
-  buildFlags = [ "CC=cc" "CXX=c++" ];
+  buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "CXX=${stdenv.cc.targetPrefix}c++" ];
   installFlags = [ "PREFIX=$(out)" ];
   buildInputs = [ gmp mpir cddlib ];
 
diff --git a/nixpkgs/pkgs/applications/science/math/gfm/default.nix b/nixpkgs/pkgs/applications/science/math/gfm/default.nix
index a8031b3e8a3d..1078be99c3a9 100644
--- a/nixpkgs/pkgs/applications/science/math/gfm/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gfm/default.nix
@@ -5,6 +5,7 @@
 , pkg-config
 , autoreconfHook
 , gnome2
+, gtk2
 , glib
 , libtifiles2
 , libticables2
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gnome2.gtk
+    gtk2
     gnome2.libglade
     glib
     libtifiles2
diff --git a/nixpkgs/pkgs/applications/science/math/giac/default.nix b/nixpkgs/pkgs/applications/science/math/giac/default.nix
index 8c391e253224..4700402ff21e 100644
--- a/nixpkgs/pkgs/applications/science/math/giac/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/giac/default.nix
@@ -1,34 +1,45 @@
 { stdenv, lib, fetchurl, fetchpatch, texlive, bison, flex, lapack, blas
 , gmp, mpfr, pari, ntl, gsl, mpfi, ecm, glpk, nauty
 , readline, gettext, libpng, libao, gfortran, perl
-, enableGUI ? false, libGL ? null, libGLU ? null, xorg ? null, fltk ? null
+, enableGUI ? false, libGL, libGLU, xorg, fltk
+, enableMicroPy ? false, python3
 }:
 
-assert enableGUI -> libGLU != null && libGL != null && xorg != null && fltk != null;
 assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "giac${lib.optionalString enableGUI "-with-xcas"}";
-  version = "1.5.0-87"; # TODO try to remove preCheck phase on upgrade
+  version = "1.6.0-47"; # TODO try to remove preCheck phase on upgrade
 
   src = fetchurl {
     url = "https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/giac_${version}.tar.gz";
-    sha256 = "1d0h1yb7qvh9x7wwv9yrzmcp712f49w1iljkxp4y6g9pzsmg1mmv";
+    sha256 = "sha256-c5A9/I6L/o3Y3dxEPoTKpw/fJqYMr6euLldaQ1HWT5c=";
   };
 
-  patches = lib.optionals (!enableGUI) [
-    # when enableGui is false, giac is compiled without fltk. That means some
-    # outputs differ in the make check. Patch around this:
+  patches = [
     (fetchpatch {
-      url    = "https://git.sagemath.org/sage.git/plain/build/pkgs/giac/patches/nofltk-check.patch?id=7553a3c8dfa7bcec07241a07e6a4e7dcf5bb4f26";
+      name = "pari_2_11.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/giac/patches/pari_2_11.patch?id=21ba7540d385a9864b44850d6987893dfa16bfc0";
+      sha256 = "sha256-vEo/5MNzMdYRPWgLFPsDcMT1W80Qzj4EPBjx/B8j68k=";
+    })
+  ] ++ lib.optionals (!enableGUI) [
+    # when enableGui is false, giac is compiled without fltk. That
+    # means some outputs differ in the make check. Patch around this:
+    (fetchpatch {
+      name = "nofltk-check.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/giac/patches/nofltk-check.patch?id=7553a3c8dfa7bcec07241a07e6a4e7dcf5bb4f26";
       sha256 = "0xkmfc028vg5w6va04gp2x2iv31n8v4shd6vbyvk4blzgfmpj2cw";
     })
   ];
 
   postPatch = ''
-    for i in doc/*/Makefile*; do
+    for i in doc/*/Makefile* micropython*/xcas/Makefile*; do
       substituteInPlace "$i" --replace "/bin/cp" "cp";
     done;
+  '' +
+  # workaround for 1.6.0-47, should not be necessary in future versions
+  lib.optionalString (!enableMicroPy) ''
+    sed -i -e 's/micropython-[0-9.]* //' Makefile*
   '';
 
   nativeBuildInputs = [
@@ -45,7 +56,7 @@ stdenv.mkDerivation rec {
     lapack blas
   ] ++ lib.optionals enableGUI [
     libGL libGLU fltk xorg.libX11
-  ];
+  ] ++ lib.optional enableMicroPy python3;
 
   /* fixes:
   configure:16211: checking for main in -lntl
@@ -59,13 +70,12 @@ stdenv.mkDerivation rec {
   outputs = [ "out" ] ++ lib.optional (!enableGUI) "doc";
 
   doCheck = true;
-  preCheck = ''
-    # One test in this file fails. That test just tests a part of the pari
-    # interface that isn't actually used in giac. Of course it would be better
-    # to only remove that one test, but that would require a patch.
-    # Removing the whole test set should be good enough for now.
-    # Upstream report: https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?f=4&t=2102#p10326
-    echo > check/chk_fhan11
+  preCheck = lib.optionalString (!enableGUI) ''
+    # even with the nofltk patch, some changes in src/misc.cc (grep
+    # for HAVE_LIBFLTK) made it so that giac behaves differently
+    # when fltk is disabled. disable these tests for now.
+    echo > check/chk_fhan2
+    echo > check/chk_fhan9
   '';
 
   enableParallelBuilding = true;
@@ -76,7 +86,7 @@ stdenv.mkDerivation rec {
     "--enable-ao" "--enable-ecm" "--enable-glpk"
   ] ++ lib.optionals enableGUI [
     "--enable-gui" "--with-x"
-  ];
+  ] ++ lib.optional (!enableMicroPy) "--disable-micropy";
 
   postInstall = ''
     # example Makefiles contain the full path to some commands
diff --git a/nixpkgs/pkgs/applications/science/math/ginac/default.nix b/nixpkgs/pkgs/applications/science/math/ginac/default.nix
index 6a38670adccf..901b9a340fea 100644
--- a/nixpkgs/pkgs/applications/science/math/ginac/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/ginac/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, cln, pkg-config, readline, gmp, python }:
+{ lib, stdenv, fetchurl, cln, pkg-config, readline, gmp, python3 }:
 
 stdenv.mkDerivation rec {
   name = "ginac-1.8.0";
@@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ readline ] ++ lib.optional stdenv.isDarwin gmp;
 
-  nativeBuildInputs = [ pkg-config python ];
+  nativeBuildInputs = [ pkg-config python3 ];
+
+  strictDeps = true;
 
   preConfigure = "patchShebangs ginsh";
 
diff --git a/nixpkgs/pkgs/applications/science/math/gmsh/default.nix b/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
index 4ed9c963ba39..fabb3b08c4da 100644
--- a/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
@@ -5,11 +5,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "gmsh";
-  version = "4.7.1";
+  version = "4.8.0";
 
   src = fetchurl {
     url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "0shwi41van3k0z6rnpl3sz5nh46xbyyljwfpcp8pwxbc26aw5169";
+    sha256 = "sha256-JYd4PEsClj+divtxfJlUyu+kY+ouChLhZZMH5qDX6ms=";
   };
 
   buildInputs = [ blas lapack gmm fltk libjpeg zlib libGLU libGL
diff --git a/nixpkgs/pkgs/applications/science/math/gurobi/default.nix b/nixpkgs/pkgs/applications/science/math/gurobi/default.nix
index 6066d0325f54..2bfeaa005687 100644
--- a/nixpkgs/pkgs/applications/science/math/gurobi/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gurobi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, autoPatchelfHook, python }:
+{ stdenv, lib, fetchurl, autoPatchelfHook, python2 }:
 
 let
   majorVersion = "8.1";
@@ -14,7 +14,9 @@ in stdenv.mkDerivation rec {
   sourceRoot = "gurobi${builtins.replaceStrings ["."] [""] version}/linux64";
 
   nativeBuildInputs = [ autoPatchelfHook ];
-  buildInputs = [ (python.withPackages (ps: [ ps.gurobipy ])) ];
+  buildInputs = [ (python2.withPackages (ps: [ ps.gurobipy ])) ];
+
+  strictDeps = true;
 
   buildPhase = ''
     cd src/build
diff --git a/nixpkgs/pkgs/applications/science/math/msieve/default.nix b/nixpkgs/pkgs/applications/science/math/msieve/default.nix
index 679b29cb062b..588df51554ab 100644
--- a/nixpkgs/pkgs/applications/science/math/msieve/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/msieve/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   ECM = if ecm == null then "0" else "1";
 
   # Doesn't hurt Linux but lets clang-based platforms like Darwin work fine too
-  makeFlags = [ "CC=cc" "all" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "all" ];
 
   installPhase = ''
     mkdir -p $out/bin/
diff --git a/nixpkgs/pkgs/applications/science/math/nasc/default.nix b/nixpkgs/pkgs/applications/science/math/nasc/default.nix
index 931e83defdc9..b55e4047fe47 100644
--- a/nixpkgs/pkgs/applications/science/math/nasc/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/nasc/default.nix
@@ -9,7 +9,6 @@
 , gtk3
 , glib
 , pantheon
-, libsoup
 , gtksourceview
 , libgee
 , nix-update-script
diff --git a/nixpkgs/pkgs/applications/science/math/palp/default.nix b/nixpkgs/pkgs/applications/science/math/palp/default.nix
index 97b5f88e55b4..ffe17bc3dec2 100644
--- a/nixpkgs/pkgs/applications/science/math/palp/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/palp/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , dimensions ? 6 # works for <= dimensions dimensions, but is only optimized for that exact value
 , doSymlink ? true # symlink the executables to the default location (without dimension postfix)
@@ -9,11 +10,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "palp";
-  version = "2.11";
+  version = "2.20";
 
   src = fetchurl {
-    url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/palp-${version}.tar.gz";
-    sha256 = "00jpm73fw9jjq58z6rysr1mwv489j6rpfqqlhm9ab0dln4kyhh05";
+    url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/${pname}-${version}.tar.gz";
+    sha256 = "1q1cl3vpdir16szy0jcadysydcrjp48hqxyx42kr8g9digkqjgkj";
   };
 
   hardeningDisable = [
@@ -25,8 +26,8 @@ stdenv.mkDerivation rec {
   '';
 
   preBuild = ''
-      echo Building PALP optimized for ${dim} dimensions
-      sed -i "s/^#define[^a-zA-Z]*POLY_Dmax.*/#define POLY_Dmax ${dim}/" Global.h
+    echo Building PALP optimized for ${dim} dimensions
+    sed -i "s/^#define[^a-zA-Z]*POLY_Dmax.*/#define POLY_Dmax ${dim}/" Global.h
   '';
 
   # palp has no tests of its own. This test is an adapted sage test that failed
@@ -42,14 +43,14 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    mkdir -p "$out/bin"
+    mkdir -p $out/bin
     for file in poly class cws nef mori; do
-        cp -p $file.x "$out/bin/$file-${dim}d.x"
+      cp -p $file.x "$out/bin/$file-${dim}d.x"
     done
   '' + lib.optionalString doSymlink ''
-    cd "$out/bin"
+    cd $out/bin
     for file in poly class cws nef mori; do
-        ln -sf $file-6d.x $file.x
+      ln -sf $file-6d.x $file.x
     done
   '';
 
diff --git a/nixpkgs/pkgs/applications/science/math/perseus/default.nix b/nixpkgs/pkgs/applications/science/math/perseus/default.nix
index 242f2e2cea5d..d53236d8070c 100644
--- a/nixpkgs/pkgs/applications/science/math/perseus/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/perseus/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "perseus-4-beta";
   version = "4-beta";
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   hardeningDisable = [ "stackprotector" ];
 
diff --git a/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix b/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
index 3d80d8c039ef..7ee867930895 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 rec {
   pname = "qalculate-gtk";
-  version = "3.16.0";
+  version = "3.17.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${version}";
-    sha256 = "1vqzrh5zxwfvih6c3lak0wkkw6bajl88xzl1zk84gxsk9wdymrk4";
+    sha256 = "sha256-Nxe1DZL8mh9aBWXQdlp5wC1l5b9mchlrRyE+LKC+yLI=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix b/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix
index eed1c8e3fd48..14330b0f19b3 100644
--- a/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gmp ];
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
   buildFlags = lib.optional stdenv.isDarwin ["CCFLAGS2=-lgmp -lc -lm" "CCFLAGS=-UUSE_SSE"];
   installFlags = [ "INSTALL_DIR=$(out)" ];
 
diff --git a/nixpkgs/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch
new file mode 100644
index 000000000000..88cb66506b1d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch
@@ -0,0 +1,16 @@
+diff --git a/src/sage/repl/rich_output/display_manager.py b/src/sage/repl/rich_output/display_manager.py
+index fb21f7a9c9..f39470777d 100644
+--- a/src/sage/repl/rich_output/display_manager.py
++++ b/src/sage/repl/rich_output/display_manager.py
+@@ -749,9 +749,9 @@ class DisplayManager(SageObject):
+             import sage.env
+             import re
+             import os
+-            with open(os.path.join(sage.env.THREEJS_DIR, 'build', 'three.min.js')) as f:
++            with open(os.path.join(sage.env.THREEJS_DIR, 'build', 'three.js')) as f:
+                 text = f.read().replace('\n','')
+-            version = re.search(r'REVISION="(\d+)"', text).group(1)
++            version = re.search(r"REVISION = '(\d+)'", text).group(1)
+             return """
+ <script src="https://cdn.jsdelivr.net/gh/mrdoob/three.js@r{0}/build/three.min.js"></script>
+ <script src="https://cdn.jsdelivr.net/gh/mrdoob/three.js@r{0}/examples/js/controls/OrbitControls.js"></script>
diff --git a/nixpkgs/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch
new file mode 100644
index 000000000000..3fdb8f768e9d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch
@@ -0,0 +1,131 @@
+diff --git a/src/sage/libs/eclib/interface.py b/src/sage/libs/eclib/interface.py
+index e898456720..6b98c12328 100644
+--- a/src/sage/libs/eclib/interface.py
++++ b/src/sage/libs/eclib/interface.py
+@@ -758,78 +758,78 @@ class mwrank_MordellWeil(SageObject):
+ 
+         sage: EQ = mwrank_MordellWeil(E, verbose=True)
+         sage: EQ.search(1)
+-        P1 = [0:1:0]     is torsion point, order 1
+-        P1 = [-3:0:1]     is generator number 1
+-        saturating up to 20...Checking 2-saturation
++        P1 = [0:1:0]         is torsion point, order 1
++        P1 = [-3:0:1]         is generator number 1
++        saturating up to 20...Checking 2-saturation...
+         Points have successfully been 2-saturated (max q used = 7)
+-        Checking 3-saturation
++        Checking 3-saturation...
+         Points have successfully been 3-saturated (max q used = 7)
+-        Checking 5-saturation
++        Checking 5-saturation...
+         Points have successfully been 5-saturated (max q used = 23)
+-        Checking 7-saturation
++        Checking 7-saturation...
+         Points have successfully been 7-saturated (max q used = 41)
+-        Checking 11-saturation
++        Checking 11-saturation...
+         Points have successfully been 11-saturated (max q used = 17)
+-        Checking 13-saturation
++        Checking 13-saturation...
+         Points have successfully been 13-saturated (max q used = 43)
+-        Checking 17-saturation
++        Checking 17-saturation...
+         Points have successfully been 17-saturated (max q used = 31)
+-        Checking 19-saturation
++        Checking 19-saturation...
+         Points have successfully been 19-saturated (max q used = 37)
+         done
+-        P2 = [-2:3:1]     is generator number 2
+-        saturating up to 20...Checking 2-saturation
++        P2 = [-2:3:1]         is generator number 2
++        saturating up to 20...Checking 2-saturation...
+         possible kernel vector = [1,1]
+         This point may be in 2E(Q): [14:-52:1]
+         ...and it is!
+         Replacing old generator #1 with new generator [1:-1:1]
+         Points have successfully been 2-saturated (max q used = 7)
+         Index gain = 2^1
+-        Checking 3-saturation
++        Checking 3-saturation...
+         Points have successfully been 3-saturated (max q used = 13)
+-        Checking 5-saturation
++        Checking 5-saturation...
+         Points have successfully been 5-saturated (max q used = 67)
+-        Checking 7-saturation
++        Checking 7-saturation...
+         Points have successfully been 7-saturated (max q used = 53)
+-        Checking 11-saturation
++        Checking 11-saturation...
+         Points have successfully been 11-saturated (max q used = 73)
+-        Checking 13-saturation
++        Checking 13-saturation...
+         Points have successfully been 13-saturated (max q used = 103)
+-        Checking 17-saturation
++        Checking 17-saturation...
+         Points have successfully been 17-saturated (max q used = 113)
+-        Checking 19-saturation
++        Checking 19-saturation...
+         Points have successfully been 19-saturated (max q used = 47)
+         done (index = 2).
+         Gained index 2, new generators = [ [1:-1:1] [-2:3:1] ]
+-        P3 = [-14:25:8]   is generator number 3
+-        saturating up to 20...Checking 2-saturation
++        P3 = [-14:25:8]       is generator number 3
++        saturating up to 20...Checking 2-saturation...
+         Points have successfully been 2-saturated (max q used = 11)
+-        Checking 3-saturation
++        Checking 3-saturation...
+         Points have successfully been 3-saturated (max q used = 13)
+-        Checking 5-saturation
++        Checking 5-saturation...
+         Points have successfully been 5-saturated (max q used = 71)
+-        Checking 7-saturation
++        Checking 7-saturation...
+         Points have successfully been 7-saturated (max q used = 101)
+-        Checking 11-saturation
++        Checking 11-saturation...
+         Points have successfully been 11-saturated (max q used = 127)
+-        Checking 13-saturation
++        Checking 13-saturation...
+         Points have successfully been 13-saturated (max q used = 151)
+-        Checking 17-saturation
++        Checking 17-saturation...
+         Points have successfully been 17-saturated (max q used = 139)
+-        Checking 19-saturation
++        Checking 19-saturation...
+         Points have successfully been 19-saturated (max q used = 179)
+         done (index = 1).
+-        P4 = [-1:3:1]    = -1*P1 + -1*P2 + -1*P3 (mod torsion)
+-        P4 = [0:2:1]     = 2*P1 + 0*P2 + 1*P3 (mod torsion)
+-        P4 = [2:13:8]    = -3*P1 + 1*P2 + -1*P3 (mod torsion)
+-        P4 = [1:0:1]     = -1*P1 + 0*P2 + 0*P3 (mod torsion)
+-        P4 = [2:0:1]     = -1*P1 + 1*P2 + 0*P3 (mod torsion)
+-        P4 = [18:7:8]    = -2*P1 + -1*P2 + -1*P3 (mod torsion)
+-        P4 = [3:3:1]     = 1*P1 + 0*P2 + 1*P3 (mod torsion)
+-        P4 = [4:6:1]     = 0*P1 + -1*P2 + -1*P3 (mod torsion)
+-        P4 = [36:69:64]  = 1*P1 + -2*P2 + 0*P3 (mod torsion)
+-        P4 = [68:-25:64]         = -2*P1 + -1*P2 + -2*P3 (mod torsion)
+-        P4 = [12:35:27]  = 1*P1 + -1*P2 + -1*P3 (mod torsion)
++        P4 = [-1:3:1]        = -1*P1 + -1*P2 + -1*P3 (mod torsion)
++        P4 = [0:2:1]         = 2*P1 + 0*P2 + 1*P3 (mod torsion)
++        P4 = [2:13:8]        = -3*P1 + 1*P2 + -1*P3 (mod torsion)
++        P4 = [1:0:1]         = -1*P1 + 0*P2 + 0*P3 (mod torsion)
++        P4 = [2:0:1]         = -1*P1 + 1*P2 + 0*P3 (mod torsion)
++        P4 = [18:7:8]        = -2*P1 + -1*P2 + -1*P3 (mod torsion)
++        P4 = [3:3:1]         = 1*P1 + 0*P2 + 1*P3 (mod torsion)
++        P4 = [4:6:1]         = 0*P1 + -1*P2 + -1*P3 (mod torsion)
++        P4 = [36:69:64]      = 1*P1 + -2*P2 + 0*P3 (mod torsion)
++        P4 = [68:-25:64]     = -2*P1 + -1*P2 + -2*P3 (mod torsion)
++        P4 = [12:35:27]      = 1*P1 + -1*P2 + -1*P3 (mod torsion)
+         sage: EQ
+         Subgroup of Mordell-Weil group: [[1:-1:1], [-2:3:1], [-14:25:8]]
+ 
+@@ -1076,7 +1076,7 @@ class mwrank_MordellWeil(SageObject):
+             sage: EQ.search(1)
+             P1 = [0:1:0]         is torsion point, order 1
+             P1 = [-3:0:1]         is generator number 1
+-            saturating up to 20...Checking 2-saturation
++            saturating up to 20...Checking 2-saturation...
+             ...
+             P4 = [12:35:27]      = 1*P1 + -1*P2 + -1*P3 (mod torsion)
+             sage: EQ
diff --git a/nixpkgs/pkgs/applications/science/math/sage/patches/pillow-update.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/pillow-update.patch
deleted file mode 100644
index 19d615522626..000000000000
--- a/nixpkgs/pkgs/applications/science/math/sage/patches/pillow-update.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff --git a/src/sage/repl/image.py b/src/sage/repl/image.py
-index d7d00b0..cd1607a 100644
---- a/src/sage/repl/image.py
-+++ b/src/sage/repl/image.py
-@@ -77,7 +77,7 @@ class Image(SageObject):
- 
-         - ``size`` -- 2-tuple, containing (width, height) in pixels.
- 
--        - ``color`` -- string or tuple of numeric. What colour to use
-+        - ``color`` -- string, numeric or tuple of numeric. What colour to use
-           for the image. Default is black.  If given, this should be a
-           a tuple with one value per band. When creating RGB images,
-           you can also use colour strings as supported by the
-@@ -91,9 +91,15 @@ class Image(SageObject):
-         EXAMPLES::
- 
-             sage: from sage.repl.image import Image
--            sage: Image('P', (16, 16), (13,))
-+            sage: Image('P', (16, 16), 13)
-             16x16px 8-bit Color image
-         """
-+        # pillow does not support Sage integers as color
-+        from sage.rings.integer import Integer
-+        if isinstance(color, Integer):
-+            color = int(color)
-+        elif isinstance(color, tuple):
-+            color = tuple(int(i) if isinstance(i, Integer) else i for i in color)
-         self._pil = PIL.Image.new(mode, size, color)
- 
-     @property
-@@ -233,7 +239,7 @@ class Image(SageObject):
-         EXAMPLES::
- 
-             sage: from sage.repl.image import Image
--            sage: img = Image('P', (12, 34), (13,))
-+            sage: img = Image('P', (12, 34), 13)
-             sage: filename = tmp_filename(ext='.png')
-             sage: img.save(filename)
-             sage: with open(filename, 'rb') as f:
diff --git a/nixpkgs/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch
deleted file mode 100644
index 83bd83a6d33b..000000000000
--- a/nixpkgs/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py
-index cb3667659e..867f547d71 100644
---- a/src/sage/doctest/forker.py
-+++ b/src/sage/doctest/forker.py
-@@ -200,6 +200,15 @@ def init_sage(controller=None):
-     from sage.cpython._py2_random import Random
-     sage.misc.randstate.DEFAULT_PYTHON_RANDOM = Random
- 
-+    # IPython's pretty printer sorts the repr of dicts by their keys by default
-+    # (or their keys' str() if they are not otherwise orderable).  However, it
-+    # disables this for CPython 3.6+ opting to instead display dicts' "natural"
-+    # insertion order, which is preserved in those versions).
-+    # However, this order is random in some instances.
-+    # Also modifications of code may affect the order.
-+    # So here we fore sorted dict printing.
-+    IPython.lib.pretty.for_type(dict, _sorted_dict_pprinter_factory('{', '}'))
-+
-     if controller is None:
-         import sage.repl.ipython_kernel.all_jupyter
-     else:
-@@ -222,15 +231,6 @@ def init_sage(controller=None):
-     from sage.repl.rich_output.backend_doctest import BackendDoctest
-     dm.switch_backend(BackendDoctest())
- 
--    # IPython's pretty printer sorts the repr of dicts by their keys by default
--    # (or their keys' str() if they are not otherwise orderable).  However, it
--    # disables this for CPython 3.6+ opting to instead display dicts' "natural"
--    # insertion order, which is preserved in those versions).
--    # However, this order is random in some instances.
--    # Also modifications of code may affect the order.
--    # So here we fore sorted dict printing.
--    IPython.lib.pretty.for_type(dict, _sorted_dict_pprinter_factory('{', '}'))
--
-     # Switch on extra debugging
-     from sage.structure.debug_options import debug
-     debug.refine_category_hash_check = True
diff --git a/nixpkgs/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch
deleted file mode 100644
index 2ee5db3e29c0..000000000000
--- a/nixpkgs/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/sage/interfaces/sagespawn.pyx b/src/sage/interfaces/sagespawn.pyx
-index 9041238f1d..469befbc66 100644
---- a/src/sage/interfaces/sagespawn.pyx
-+++ b/src/sage/interfaces/sagespawn.pyx
-@@ -228,7 +228,7 @@ class SagePtyProcess(PtyProcess):
-         Check that the process eventually dies after calling
-         ``terminate_async``::
- 
--            sage: s.ptyproc.terminate_async(interval=0.2)
-+            sage: s.ptyproc.terminate_async(interval=float(0.2))
-             sage: while True:
-             ....:     try:
-             ....:         os.kill(s.pid, 0)
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
index b8fb41596607..1fb605b35998 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
@@ -9,6 +9,20 @@
 # This is done because multiple derivations rely on these sources and they should
 # all get the same sources with the same patches applied.
 
+let
+  # Fetch a diff between `base` and `rev` on sage's git server.
+  # Used to fetch trac tickets by setting the `base` to the last release and the
+  # `rev` to the last commit of the ticket.
+  fetchSageDiff = { base, name, rev, sha256, ...}@args: (
+    fetchpatch ({
+      inherit name sha256;
+      url = "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}";
+      # We don't care about sage's own build system (which builds all its dependencies).
+      # Exclude build system changes to avoid conflicts.
+      excludes = [ "build/*" ];
+    } // builtins.removeAttrs args [ "rev" "base" "sha256" ])
+  );
+in
 stdenv.mkDerivation rec {
   version = "9.2";
   pname = "sage-src";
@@ -40,17 +54,13 @@ stdenv.mkDerivation rec {
     # https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE
     ./patches/sphinx-docbuild-subprocesses.patch
 
-    # Sage's workaround to pretty print dicts (in
-    # src/sage/doctest/forker.py:init_sage) runs too late (after
-    # controller.load_environment(), which imports sage.all.*) to to
-    # affect sage.sandpiles.Sandpile{Config,Divisor}'s pretty printer.
-    # Due to the sandpiles module being lazily loaded, this only
-    # affects the first run (subsequent runs read from an import cache
-    # at ~/.sage/cache and are not affected), which is probably why
-    # other distributions don't hit this bug. This breaks two sandpile
-    # tests, so do the workaround a little bit earlier.
-    # https://trac.sagemath.org/ticket/31053
-    ./patches/register-pretty-printer-earlier.patch
+    # Register sorted dict pprinter earlier (https://trac.sagemath.org/ticket/31053)
+    (fetchSageDiff {
+      base = "9.3.beta4";
+      name = "register-pretty-printer-earlier.patch";
+      rev = "d658230ce06ca19f4a3b3a4576297ee82f2d2151";
+      sha256 = "sha256-9mPUV7K5PoLDH2vVaYaOfvDLDpmxU0Aj7m/eaXYotDs=";
+    })
   ];
 
   # Since sage unfortunately does not release bugfix releases, packagers must
@@ -63,14 +73,28 @@ stdenv.mkDerivation rec {
 
     # fix intermittent errors in Sage 9.2's psage.py (this patch is
     # already included in Sage 9.3): https://trac.sagemath.org/ticket/30730
-    (fetchpatch {
+    (fetchSageDiff {
+      base = "9.2.rc2";
       name = "fix-psage-is-locked.patch";
-      url = "https://git.sagemath.org/sage.git/patch/?id=75df605f216ddc7b6ca719be942d666b241520e9";
+      rev = "75df605f216ddc7b6ca719be942d666b241520e9";
       sha256 = "0g9pl1wbb3sgs26d3bvv70cpa77sfskylv4kd255y1794f1fgk4q";
     })
 
     # fix intermittent errors in sagespawn.pyx: https://trac.sagemath.org/ticket/31052
-    ./patches/sagespawn-implicit-casting.patch
+    (fetchSageDiff {
+      base = "9.2";
+      name = "sagespawn-implicit-casting.patch";
+      rev = "2959ac792ebd6107fe87c9af1541083de5ba02d6";
+      sha256 = "sha256-bWIpEGir9Kawak5CJegBMNcHm/CqhWmdru+emeSsvO0=";
+    })
+
+    # fix intermittent errors in doctest/test.py: https://trac.sagemath.org/ticket/26912
+    (fetchSageDiff {
+      base = "9.3.beta8";
+      name = "set-cysignals-crash-ndebug.patch";
+      rev = "ca5257a5d0f32efc9f8f07e126020856270b1a18";
+      sha256 = "sha256-KViw63xE3O0eUiOYzoxNrr4NL+csql9GPJLDJCf/EZs=";
+    })
   ];
 
   # Patches needed because of package updates. We could just pin the versions of
@@ -79,20 +103,7 @@ stdenv.mkDerivation rec {
   # compatible with never dependency versions when possible. All these changes
   # should come from or be proposed to upstream. This list will probably never
   # be empty since dependencies update all the time.
-  packageUpgradePatches = let
-    # Fetch a diff between `base` and `rev` on sage's git server.
-    # Used to fetch trac tickets by setting the `base` to the last release and the
-    # `rev` to the last commit of the ticket.
-    fetchSageDiff = { base, rev, name ? "sage-diff-${base}-${rev}.patch", ...}@args: (
-      fetchpatch ({
-        inherit name;
-        url = "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}";
-        # We don't care about sage's own build system (which builds all its dependencies).
-        # Exclude build system changes to avoid conflicts.
-        excludes = [ "build/*" ];
-      } // builtins.removeAttrs args [ "rev" "base" ])
-    );
-  in [
+  packageUpgradePatches = [
     # After updating smypow to (https://trac.sagemath.org/ticket/3360) we can
     # now set the cache dir to be withing the .sage directory. This is not
     # strictly necessary, but keeps us from littering in the user's HOME.
@@ -102,10 +113,62 @@ stdenv.mkDerivation rec {
     ./patches/ignore-cmp-deprecation.patch
 
     # adapt sage's Image class to pillow 8.0.1 (https://trac.sagemath.org/ticket/30971)
-    ./patches/pillow-update.patch
+    (fetchSageDiff {
+      base = "9.3.beta2";
+      name = "pillow-8.0.1-update.patch";
+      rev = "f05f2d0aac9c4b5abe68105cee2cc7f2c8461847";
+      sha256 = "sha256-uY2UlgSd5hhOUUukB4Xc3Gjy0/e7p/qyq9jdvz10IOs=";
+    })
+
+    # don't use deprecated numpy type aliases (https://trac.sagemath.org/ticket/31364)
+    (fetchSageDiff {
+      base = "9.3.beta7";
+      name = "dont-use-deprecated-numpy-type-aliases.patch";
+      rev = "dfdef60515d4a4269e82d91280f76a7fdf10bf97";
+      sha256 = "sha256-77/3LkT5J7DQN8IPlGJKB6ZcJPaF7xwje06JNns+0AE=";
+    })
 
     # fix test output with sympy 1.7 (https://trac.sagemath.org/ticket/30985)
     ./patches/sympy-1.7-update.patch
+
+    # workaround until we use sage's fork of threejs, which contains a "version" file
+    ./patches/dont-grep-threejs-version-from-minified-js.patch
+
+    # updated eclib output has punctuation changes and tidier whitespace
+    ./patches/eclib-20210223-test-formatting.patch
+
+    # upgrade arb to 2.18.1 (https://trac.sagemath.org/ticket/28623)
+    (fetchSageDiff {
+      base = "9.3.beta3";
+      name = "arb-2.18.1-update.patch";
+      rev = "0c9c4ed35c2eaf34ae0d19387c07b7f460e4abce";
+      sha256 = "sha256-CjOJIsyyVCziAfvE6pWSihPO35IZMcY2/taXAsqhPLY=";
+    })
+
+    # giac 1.6.0-47 update (https://trac.sagemath.org/ticket/30537)
+    (fetchSageDiff {
+      base = "9.3.beta7";
+      name = "giac-1.6.0-47-update.patch";
+      rev = "f05720bf63dfaf33a4e3b6d3ed2c2c0ec46b5d31";
+      sha256 = "sha256-gDUq+84eXd5GxLBWUSI61GMJpBF2KX4LBVOt3mS1NF8=";
+    })
+
+    # Make gcd/lcm interact better with pari and gmpy2 (https://trac.sagemath.org/ticket/30849)
+    # needed for pari 2.13.1 update, which we will do in the future
+    (fetchSageDiff {
+      base = "9.3.beta0";
+      name = "make-gcd-lcm-interact-better-with-pari-and-gmpy2.patch";
+      rev = "75c1516f0abb9e6f8c335e38e4031f6ef674ed30";
+      sha256 = "sha256-RukkieIZcXNrju904H2oyGKdtpdE+9vNzvyjN2IBNg0=";
+    })
+
+    # cypari 2.1.2 update (https://trac.sagemath.org/ticket/31029)
+    (fetchSageDiff {
+      base = "9.3.beta3";
+      name = "cypari-2.1.2-update.patch";
+      rev = "b9aadfd08e81d74ca7c229bb80eb853b592887d0";
+      sha256 = "sha256-eKaMy7kpu+YKdL8bPStgocxBCTfc2Z/10RrGy2LENFw=";
+    })
   ];
 
   patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix b/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
index 1c2235bf71b4..245ddcedeee0 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
@@ -32,7 +32,7 @@
 , ntl
 , numpy
 , pari
-, pkgconfig
+, pkgconfig # the python module, not the pkg-config alias
 , pkg-config
 , planarity
 , ppl
diff --git a/nixpkgs/pkgs/applications/science/math/tilp2/default.nix b/nixpkgs/pkgs/applications/science/math/tilp2/default.nix
index 1b46f982b419..ebcca69f0940 100644
--- a/nixpkgs/pkgs/applications/science/math/tilp2/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/tilp2/default.nix
@@ -7,6 +7,7 @@
 , intltool
 , glib
 , gnome2
+, gtk2
 , gfm
 , libticables2
 , libticalcs2
@@ -36,7 +37,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    gnome2.gtk
+    gtk2
     gnome2.libglade
     gfm
     libticables2
diff --git a/nixpkgs/pkgs/applications/science/math/weka/default.nix b/nixpkgs/pkgs/applications/science/math/weka/default.nix
index 179801da379f..9d18763aa32d 100644
--- a/nixpkgs/pkgs/applications/science/math/weka/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/weka/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0zwmhspmqb0a7cm6k6i0s6q3w19ws1g9dx3cp2v3g3vsif6cdh31";
   };
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   # The -Xmx1000M comes suggested from their download page:
   # http://www.cs.waikato.ac.nz/ml/weka/downloading.html
diff --git a/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix b/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
index 89bdc4155481..25215d7abb56 100644
--- a/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxmaxima";
-  version = "20.06.6";
+  version = "21.02.0";
 
   src = fetchFromGitHub {
     owner = "wxMaxima-developers";
     repo = "wxmaxima";
     rev = "Version-${version}";
-    sha256 = "054f7n5kx75ng5j20rd5q27n9xxk03mrd7sbxyym1lsswzimqh4w";
+    sha256 = "sha256-5nvaaKsvSEs7QxOszjDK1Xkana2er1BCMZ83b1JZSqc=";
   };
 
   buildInputs = [ wxGTK maxima gnome3.adwaita-icon-theme ];
diff --git a/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix b/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix
index c6bfd6361f20..0eb89b63e475 100644
--- a/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix
+++ b/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix
@@ -3,23 +3,28 @@
 with lib;
 stdenv.mkDerivation {
   pname = "aliza";
-  version = "1.98.32";
+  version = "1.98.57";
   src = fetchurl {
     # See https://www.aliza-dicom-viewer.com/download
-    url = "https://drive.google.com/uc?export=download&id=1nggavPhY_633T-AW9PdkcAgbWtzv3QKG";
-    sha256 = "00vbgv8ca9ckgkicyyngrb01yhhcqc8hygg2bls7b44c47hcc8zz";
+    urls = [
+      "https://drive.google.com/uc?export=download&id=1-AXa3tjy_onecW2k7ftjAQl0KGTb0B1Y"
+      "https://web.archive.org/web/20210327224315/https://doc-0s-0s-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/1lgjid9ti29rdf5ebmd7o58iqhs3gfpo/1616884950000/16072287944266838401/*/1-AXa3tjy_onecW2k7ftjAQl0KGTb0B1Y?e=download"
+    ];
+    sha256 = "01qk2gadmc24pmfdnmpiz7vgfiqkvhznyq9rsr153frscg76gc9b";
     name = "aliza.rpm";
   };
 
-  buildInputs = [ rpmextract makeWrapper ];
+  nativeBuildInputs = [ makeWrapper rpmextract ];
 
   unpackCmd = "rpmextract $curSrc";
 
-  patchPhase = ''
+  postPatch = ''
     sed -i 's/^Exec.*$/Exec=aliza %F/' share/applications/aliza.desktop
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out
     cp -r bin share $out
 
diff --git a/nixpkgs/pkgs/applications/science/medicine/xmedcon/default.nix b/nixpkgs/pkgs/applications/science/medicine/xmedcon/default.nix
new file mode 100644
index 000000000000..e4a5f22891e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/medicine/xmedcon/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, lib
+, fetchurl
+, gtk3
+, glib
+, pkg-config
+, libpng
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xmedcon";
+  version = "0.21.0";
+
+  src = fetchurl {
+    url = "https://prdownloads.sourceforge.net/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "0yfnbrcil5i76z1wbg308pb1mnjbcxy6nih46qpqs038v1lhh4q8";
+  };
+
+  buildInputs = [
+    gtk3
+    glib
+    libpng
+    zlib
+  ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  meta = with lib; {
+    description = "An open source toolkit for medical image conversion ";
+    homepage = "https://xmedcon.sourceforge.io/Main/HomePage";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ arianvp flokli ];
+    platforms = with platforms; [ darwin linux ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix b/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
index db98e0db3487..3ab7d57f95a3 100644
--- a/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  buildInputs = [jre makeWrapper];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   installPhase = ''
     mkdir -pv $out/{share,bin}
diff --git a/nixpkgs/pkgs/applications/science/misc/root/5.nix b/nixpkgs/pkgs/applications/science/misc/root/5.nix
index 144827413b5e..75607fdda348 100644
--- a/nixpkgs/pkgs/applications/science/misc/root/5.nix
+++ b/nixpkgs/pkgs/applications/science/misc/root/5.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, fetchpatch, cmake, pcre, pkg-config, python2
-, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lz4, lzma, gsl_1, xxHash
+, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lz4, xz, gsl_1, xxHash
 , Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ pcre python2 zlib libxml2 lz4 lzma gsl_1 xxHash ]
+  buildInputs = [ pcre python2 zlib libxml2 lz4 xz gsl_1 xxHash ]
     ++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
     ++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
diff --git a/nixpkgs/pkgs/applications/science/misc/root/default.nix b/nixpkgs/pkgs/applications/science/misc/root/default.nix
index 2f3d57c31e7b..ab5352975f76 100644
--- a/nixpkgs/pkgs/applications/science/misc/root/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/root/default.nix
@@ -1,20 +1,20 @@
 { stdenv, lib, fetchurl, makeWrapper, cmake, ftgl, gl2ps, glew, gsl, llvm_5
-, libX11, libXpm, libXft, libXext, libGLU, libGL, libxml2, lz4, lzma, pcre
+, libX11, libXpm, libXft, libXext, libGLU, libGL, libxml2, lz4, xz, pcre
 , pkg-config, python, xxHash, zlib, zstd
 , libAfterImage, giflib, libjpeg, libtiff, libpng
 , Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
   pname = "root";
-  version = "6.22.06";
+  version = "6.22.08";
 
   src = fetchurl {
     url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
-    sha256 = "0mqvj42nax0bmz8h83jjlwjm3xxjy1n0n10inc8csip9ly28fs64";
+    sha256 = "0vrgi83hrw4n9zgx873fn4ba3vk54slrwk1cl4cc4plgxzv1y1kg";
   };
 
   nativeBuildInputs = [ makeWrapper cmake pkg-config ];
-  buildInputs = [ ftgl gl2ps glew pcre zlib zstd llvm_5 libxml2 lz4 lzma gsl xxHash libAfterImage giflib libjpeg libtiff libpng python.pkgs.numpy ]
+  buildInputs = [ ftgl gl2ps glew pcre zlib zstd llvm_5 libxml2 lz4 xz gsl xxHash libAfterImage giflib libjpeg libtiff libpng python.pkgs.numpy ]
     ++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
     ++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
diff --git a/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix b/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
index 771e79311c92..76937d19651b 100644
--- a/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
@@ -18,14 +18,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "simgrid";
-  version = "3.26";
+  version = "3.27";
 
   src = fetchFromGitLab {
     domain = "framagit.org";
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0kwiggdjqjhjvmwb1m7hb9clvm3xz948fy5ia67dif2pakwad754";
+    sha256 = "13nwsyk030fhl3srhpc28j5s6594z0m38606f4ygc4qhv9wxw011";
   };
 
   nativeBuildInputs = [ cmake perl python3 boost valgrind ]
@@ -105,6 +105,6 @@ stdenv.mkDerivation rec {
     homepage = "https://simgrid.org/";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ mickours mpoquet ];
-    platforms = ["x86_64-linux"];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix b/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
index edf26f7ec230..b2afc4701a55 100644
--- a/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
@@ -2,13 +2,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "snakemake";
-  version = "5.28.0";
+  version = "6.0.5";
 
   propagatedBuildInputs = with python3Packages; [
     appdirs
     ConfigArgParse
     datrie
     docutils
+    filelock
     GitPython
     jsonschema
     nbformat
@@ -17,19 +18,20 @@ python3Packages.buildPythonApplication rec {
     pyyaml
     ratelimiter
     requests
+    smart_open
     toposort
     wrapt
   ];
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "2367ce91baf7f8fa7738d33aff9670ffdf5410bbac49aeb209f73b45a3425046";
+    sha256 = "9441169034cce46086a8b45486d75175db645b932e766d28fed312ec837792d3";
   };
 
   doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json
 
   meta = with lib; {
-    homepage = "https://snakemake.readthedocs.io";
+    homepage = "https://snakemake.github.io";
     license = licenses.mit;
     description = "Python-based execution environment for make-like workflows";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/science/networking/sumo/default.nix b/nixpkgs/pkgs/applications/science/networking/sumo/default.nix
new file mode 100644
index 000000000000..af252da04f81
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/networking/sumo/default.nix
@@ -0,0 +1,68 @@
+{ lib, bzip2, cmake, eigen, fetchFromGitHub, ffmpeg, fox_1_6, gdal,
+  git, gl2ps, gpp , gtest, jdk, libGL, libGLU, libX11, libjpeg,
+  libpng, libtiff, openscenegraph , proj, python3, python37Packages,
+  stdenv, swig, xercesc, xorg, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "sumo";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "eclipse";
+    repo = "sumo";
+    rev = "v${lib.replaceStrings ["."] ["_"] version}";
+    sha256 = "1w9im1zz8xnkdwmv4v11kn1xcqm889268g1fw4y2s9f6shi41mxx";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    cmake
+    git
+    swig
+  ];
+
+  buildInputs = [
+    bzip2
+    eigen
+    ffmpeg
+    fox_1_6
+    gdal
+    gl2ps
+    gpp
+    gtest
+    jdk
+    libGL
+    libGLU
+    libX11
+    libjpeg
+    libpng
+    libtiff
+    openscenegraph
+    proj
+    python37Packages.setuptools
+    xercesc
+    zlib
+    python3
+  ] ++ (with xorg; [
+    libXcursor
+    libXext
+    libXfixes
+    libXft
+    libXrandr
+    libXrender
+  ]);
+
+  meta = with lib; {
+    description = "The SUMO traffic simulator";
+    longDescription = ''
+      Eclipse SUMO is an open source, highly
+      portable, microscopic and continuous traffic simulation package
+      designed to handle large networks. It allows for intermodal
+      simulation including pedestrians and comes with a large set of
+      tools for scenario creation.
+    '';
+    homepage = "https://github.com/eclipse/sumo";
+    license = licenses.epl20;
+    maintainers = with maintainers; [ mtreca ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/physics/professor/default.nix b/nixpkgs/pkgs/applications/science/physics/professor/default.nix
new file mode 100644
index 000000000000..6d52951ee9c9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/physics/professor/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchurl, eigen, makeWrapper, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "professor";
+  version = "2.3.3";
+
+  src = fetchurl {
+    name = "Professor-${version}.tar.gz";
+    url = "https://professor.hepforge.org/downloads/?f=Professor-${version}.tar.gz";
+    sha256 = "17q026r2fpfxzf74d1013ksy3a9m57rcr2q164n9x02ci40bmib0";
+  };
+
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile \
+      --replace '-shared -o' '-shared -install_name "$(out)/$@" -o'
+  '';
+
+  nativeBuildInputs = [ python3.pkgs.cython makeWrapper ];
+  buildInputs = [ python3 eigen ];
+  propagatedBuildInputs = with python3.pkgs; [ iminuit numpy matplotlib yoda ];
+
+  CPPFLAGS = [ "-I${eigen}/include/eigen3" ];
+  PREFIX = placeholder "out";
+
+  postInstall = ''
+    for prog in "$out"/bin/*; do
+      wrapProgram "$prog" --set PYTHONPATH "$PYTHONPATH:$(toPythonPath "$out")"
+    done
+  '';
+
+  doInstallCheck = true;
+  installCheckTarget = "check";
+
+  meta = with lib; {
+    description = "A tuning tool for Monte Carlo event generators";
+    homepage = "https://professor.hepforge.org/";
+    license = licenses.unfree; # no license specified
+    maintainers = [ maintainers.veprbl ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix b/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix
index 9a3af78240ee..858064a8d226 100644
--- a/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix
+++ b/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1iwa17s8ipj6a2b8zss5csb1k5y9s5js38syvq932rxcinbyjsl4";
   };
 
-  postPatch = ''
+  postPatch = lib.optional (stdenv.hostPlatform.libc == "glibc") ''
     sed -ie '/sys\/sysctl.h/d' ATOOLS/Org/Run_Parameter.C
   '';
 
diff --git a/nixpkgs/pkgs/applications/science/programming/plm/default.nix b/nixpkgs/pkgs/applications/science/programming/plm/default.nix
index dd61c3668cc6..e56282b68631 100644
--- a/nixpkgs/pkgs/applications/science/programming/plm/default.nix
+++ b/nixpkgs/pkgs/applications/science/programming/plm/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     name = "${pname}-${version}.jar";
   };
 
-  buildInputs = [ makeWrapper jre gcc valgrind ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre gcc valgrind ];
 
   phases = [ "installPhase" ];
 
diff --git a/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 9a304272fe9b..2fafa2ebf875 100644
--- a/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -19,9 +19,9 @@ stdenv.mkDerivation rec {
     sha256 = "07r60n9422g5sm7x5b62p044cp961l51vx0s8ig2hy24s74hkam1";
   };
 
-  nativeBuildInputs = [ wrapGAppsHook ];
+  nativeBuildInputs = [ wrapGAppsHook unzip ];
 
-  buildInputs = [ unzip gsettings-desktop-schemas gtk3 ];
+  buildInputs = [ gsettings-desktop-schemas gtk3 ];
 
   installPhase = ''
     mkdir -p $out/bin \
diff --git a/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix b/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix
index 703048118f62..51389d20b7d1 100644
--- a/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonApplication rec {
   pname = "MAVProxy";
-  version = "1.8.32";
+  version = "1.8.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f89ba880fe7351a13c68ba3f4c56acd6e246790b103f3ec79d9a527b5767b8f0";
+    sha256 = "b922c9b6cf4719667e195a02d8364ccebbe7966a9c18666f8ac22eae9d9e7a2c";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
index 82959e7f5e35..c4d9605ddf80 100644
--- a/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -6,7 +6,7 @@
 
 mkDerivation rec {
   pname = "qgroundcontrol";
-  version = "4.1.1";
+  version = "4.1.2";
 
   qtInputs = [
     qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
@@ -63,7 +63,7 @@ mkDerivation rec {
     owner = "mavlink";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1dji7jmwsrgcgzhra94wrgz67ydsdra7p10fw8gbw54gf6ncjfjm";
+    sha256 = "16q0g9b1kyan3qhhp5mmfnrx9h8q7qn83baplbiprqjgpvkxfll4";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/search/doodle/default.nix b/nixpkgs/pkgs/applications/search/doodle/default.nix
index 83dbb6511442..c4f6362465ff 100644
--- a/nixpkgs/pkgs/applications/search/doodle/default.nix
+++ b/nixpkgs/pkgs/applications/search/doodle/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, libextractor, gettext }:
 
 stdenv.mkDerivation rec {
-  name = "doodle-0.7.1";
+  name = "doodle-0.7.2";
 
   buildInputs = [ libextractor gettext ];
 
   src = fetchurl {
     url = "https://grothoff.org/christian/doodle/download/${name}.tar.gz";
-    sha256 = "086va4q8swiablv5x72yikrdh5swhy7kzmg5wlszi5a7vjya29xw";
+    sha256 = "sha256-dtRPfUjhBNgN+5zHMYmszISmBv1+K6yjKsbQBiAXWRA=";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/search/recoll/default.nix b/nixpkgs/pkgs/applications/search/recoll/default.nix
index 99e323d16daf..a07340469fef 100644
--- a/nixpkgs/pkgs/applications/search/recoll/default.nix
+++ b/nixpkgs/pkgs/applications/search/recoll/default.nix
@@ -33,25 +33,25 @@
 , withGui ? true
 }:
 
-assert stdenv.hostPlatform.system != "powerpc-linux";
-
 mkDerivation rec {
   pname = "recoll";
-  version = "1.27.12";
+  version = "1.28.6";
 
   src = fetchurl {
     url = "https://www.lesbonscomptes.com/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0bgadm8p319fws66ca4rpv9fx2bllbphgn892rh78db81lz20i5v";
+    sha256 = "sha256-fSblLddWTJKRzw4VAQp+p3xPe5grB2xITgN6vKr0xLc=";
   };
 
   configureFlags = [ "--enable-recollq" "--disable-webkit" ]
     ++ lib.optionals (!withGui) [ "--disable-qtgui" "--disable-x11mon" ]
     ++ (if stdenv.isLinux then [ "--with-inotify" ] else [ "--without-inotify" ]);
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    file pkg-config python3Packages.setuptools which
+  ];
 
-  buildInputs = with python3Packages; [
-    bison chmlib file python setuptools which xapian zlib
+  buildInputs = [
+    bison chmlib python3Packages.python xapian zlib
   ] ++ lib.optional withGui qtbase
     ++ lib.optional stdenv.isDarwin libiconv;
 
@@ -100,6 +100,6 @@ mkDerivation rec {
     homepage = "https://www.lesbonscomptes.com/recoll/";
     license = licenses.gpl2;
     platforms = platforms.unix;
-    maintainers = [ maintainers.jcumming ];
+    maintainers = with maintainers; [ jcumming kiyengar ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/system/glances/default.nix b/nixpkgs/pkgs/applications/system/glances/default.nix
index 26ca10e3f3fb..e41d9bee5b4b 100644
--- a/nixpkgs/pkgs/applications/system/glances/default.nix
+++ b/nixpkgs/pkgs/applications/system/glances/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonApplication, fetchFromGitHub, fetchpatch, isPyPy, lib
+{ stdenv, buildPythonApplication, fetchFromGitHub, isPyPy, lib
 , future, psutil, setuptools
 # Optional dependencies:
 , bottle, pysnmp
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
index 71986e6ec6f9..20d24a904e7b 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
@@ -52,16 +52,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "alacritty";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "alacritty";
     repo = pname;
     rev = "v${version}";
-    sha256 = "8alCFtr+3aJsqQ2Ra8u5/SRHfDvMq2kRvRCKo/zwMK0=";
+    sha256 = "sha256-VXV6w4OnhJBmvMKl7CynbhI9LclTKaSr+5DhHXMwSsc=";
   };
 
-  cargoSha256 = "kqRlxieChnhWtYYf67gi+2bncIzO56xpnv2uLjcINVM=";
+  cargoSha256 = "sha256-PWnNTMNZKxsfS1OAXe4G3zjfg5gK1SMTc0JJrW90iSM=";
 
   nativeBuildInputs = [
     cmake
@@ -90,12 +90,7 @@ rustPlatform.buildRustPackage rec {
       --replace xdg-open ${xdg-utils}/bin/xdg-open
   '';
 
-  installPhase = ''
-    runHook preInstall
-
-    install -D $releaseDir/alacritty $out/bin/alacritty
-
-  '' + (
+  postInstall = (
     if stdenv.isDarwin then ''
       mkdir $out/Applications
       cp -r extra/osx/Alacritty.app $out/Applications
@@ -126,8 +121,6 @@ rustPlatform.buildRustPackage rec {
     tic -xe alacritty,alacritty-direct -o "$terminfo/share/terminfo" extra/alacritty.info
     mkdir -p $out/nix-support
     echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
-
-    runHook postInstall
   '';
 
   dontPatchELF = true;
@@ -138,5 +131,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ Br1ght0ne mic92 cole-h ma27 ];
     platforms = platforms.unix;
+    changelog = "https://github.com/alacritty/alacritty/blob/v${version}/CHANGELOG.md";
   };
 }
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/evilvte/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/evilvte/default.nix
index 06dafe09168a..5d5ce5d772e5 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/evilvte/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/evilvte/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit, makeWrapper, pkg-config,
-  gnome2, glib, pango, cairo, gdk-pixbuf, atk, freetype, xorg,
+  gnome2, gtk2, glib, pango, cairo, gdk-pixbuf, atk, freetype, xorg,
   configH ? ""
 }:
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [
-    gnome2.vte glib pango gnome2.gtk cairo gdk-pixbuf atk freetype xorg.libX11
+    gnome2.vte glib pango gtk2 cairo gdk-pixbuf atk freetype xorg.libX11
     xorg.xorgproto xorg.libXext makeWrapper pkg-config
   ];
 
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
index 63642af708f6..08ef2f13734a 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
@@ -18,22 +18,28 @@
 , pkg-config
 , allowPgo ? true
 , python3  # for PGO
+# for clang stdenv check
+, foot
+, llvmPackages
+, llvmPackages_latest
 }:
 
 let
-  version = "1.6.4";
+  version = "1.7.1";
 
   # build stimuli file for PGO build and the script to generate it
   # independently of the foot's build, so we can cache the result
   # and avoid unnecessary rebuilds as it can take relatively long
   # to generate
+  #
+  # For every bump, make sure that the hash is still accurate.
   stimulusGenerator = stdenv.mkDerivation {
     pname = "foot-generate-alt-random-writes";
     inherit version;
 
     src = fetchurl {
       url = "https://codeberg.org/dnkl/foot/raw/tag/${version}/scripts/generate-alt-random-writes.py";
-      sha256 = "0pnc5nvqrbgx5618ylrkrs9fyxjh4jcsbryfk6vlnk8x4wyyaibz";
+      sha256 = "019bdiqfi3wx2lwrv3nhq83knc1r3lmqd5zgisa33wwshm2kyv7p";
     };
 
     dontUnpack = true;
@@ -65,8 +71,8 @@ let
 
   # https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#performance-optimized-pgo
   pgoCflags = {
-    "clang" = "-O3 -Wno-ignored-optimization-argument -Wno-profile-instr-out-of-date -Wno-profile-instr-unprofiled";
-    "gcc" = "-O3 -Wno-missing-profile";
+    "clang" = "-O3 -Wno-ignored-optimization-argument";
+    "gcc" = "-O3";
   }."${compilerName}";
 
   # ar with lto support
@@ -87,7 +93,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://codeberg.org/dnkl/${pname}/archive/${version}.tar.gz";
-    sha256 = "0awv53l3039s1rnkhdkzc0gwawlnd1m8cl4qhaijhxzzq68w0dfb";
+    sha256 = "1x6nyhlp0zynnbdjx87c4ybfx6fyr0r53vypkfima56dwbfh98ka";
   };
 
   nativeBuildInputs = [
@@ -128,12 +134,26 @@ stdenv.mkDerivation rec {
   preBuild = lib.optionalString doPgo ''
     meson configure -Db_pgo=generate
     ninja
+    # make sure there is _some_ profiling data on all binaries
+    ./footclient --version
+    ./foot --version
+    # generate pgo data of wayland independent code
     ./pgo ${stimuliFile} ${stimuliFile} ${stimuliFile}
     meson configure -Db_pgo=use
-  '' + lib.optionalString (doPgo && stdenv.cc.cc.pname == "clang") ''
+  '' + lib.optionalString (doPgo && compilerName == "clang") ''
     llvm-profdata merge default_*profraw --output=default.profdata
   '';
 
+  passthru.tests = {
+    clang-default-compilation = foot.override {
+      inherit (llvmPackages) stdenv;
+    };
+
+    clang-latest-compilation = foot.override {
+      inherit (llvmPackages_latest) stdenv;
+    };
+  };
+
   meta = with lib; {
     homepage = "https://codeberg.org/dnkl/foot/";
     changelog = "https://codeberg.org/dnkl/foot/releases/tag/${version}";
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix
index 092d4a0e09e0..7dd495f977ae 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -1,13 +1,14 @@
-{ stdenv, lib, fetchurl, dpkg, atk, glib, pango, gdk-pixbuf, gnome2, gtk2, cairo
+{ stdenv, lib, fetchurl, dpkg, atk, glib, pango, gdk-pixbuf, gnome2, gtk3, cairo
 , freetype, fontconfig, dbus, libXi, libXcursor, libXdamage, libXrandr
 , libXcomposite, libXext, libXfixes, libXrender, libX11, libXtst, libXScrnSaver
-, libxcb, nss, nspr, alsaLib, cups, expat, udev, libpulseaudio }:
+, libxcb, nss, nspr, alsaLib, cups, expat, udev, libpulseaudio, at-spi2-atk }:
 
 let
   libPath = lib.makeLibraryPath [
-    stdenv.cc.cc gtk2 gnome2.GConf atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
+    stdenv.cc.cc gtk3 gnome2.GConf atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
     libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libxcb
     libXrender libX11 libXtst libXScrnSaver nss nspr alsaLib cups expat udev libpulseaudio
+    at-spi2-atk
   ];
 in
 stdenv.mkDerivation rec {
@@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
     mkdir -p "$out/bin"
     mv opt "$out/"
     ln -s "$out/opt/Hyper/hyper" "$out/bin/hyper"
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${libPath}:\$ORIGIN" "$out/opt/Hyper/hyper"
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${libPath}:$out/opt/Hyper:\$ORIGIN" "$out/opt/Hyper/hyper"
     mv usr/* "$out/"
   '';
   dontPatchELF = true;
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/kgx/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/kgx/default.nix
new file mode 100644
index 000000000000..4e8cf06c1fdb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/terminal-emulators/kgx/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, genericBranding ? false
+, fetchFromGitLab
+, gettext
+, gnome3
+, libgtop
+, gtk3
+, libhandy
+, pcre2
+, vte
+, appstream-glib
+, desktop-file-utils
+, git
+, meson
+, ninja
+, pkg-config
+, python3
+, sassc
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation {
+  pname = "kgx";
+  version = "unstable-2021-03-13";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "ZanderBrown";
+    repo = "kgx";
+    rev = "105adb6a8d09418a3ce622442aef6ae623dee787";
+    sha256 = "0m34y0nbcfkyicb40iv0iqaq6f9r3f66w43lr803j3351nxqvcz2";
+  };
+
+  buildInputs = [
+    gettext
+    libgtop
+    gnome3.nautilus
+    gtk3
+    libhandy
+    pcre2
+    vte
+  ];
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    git
+    meson
+    ninja
+    pkg-config
+    python3
+    sassc
+    wrapGAppsHook
+  ];
+
+  mesonFlags = lib.optional genericBranding "-Dgeneric=true";
+
+  postPatch = ''
+    chmod +x build-aux/meson/postinstall.py
+    patchShebangs build-aux/meson/postinstall.py
+  '';
+
+  preFixup = ''
+    substituteInPlace $out/share/applications/org.gnome.zbrown.KingsCross.desktop \
+      --replace "Exec=kgx" "Exec=$out/bin/kgx"
+  '';
+
+  meta = with lib; {
+    description = "Simple user-friendly terminal emulator for the GNOME desktop";
+    homepage = "https://gitlab.gnome.org/ZanderBrown/kgx";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ zhaofengli ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix b/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix
index b03acb99530a..5255d40b9ce2 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix
@@ -40,7 +40,7 @@ let
 
         paths = [ rxvt-unicode-unwrapped ] ++ plugins ++ extraDeps;
 
-        buildInputs = [ makeWrapper ];
+        nativeBuildInputs = [ makeWrapper ];
 
         postBuild = ''
           wrapProgram $out/bin/urxvt \
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix
index 433e5c306180..82286289fbaf 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix
@@ -13,13 +13,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "terminator";
-  version = "1.92";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "gnome-terminator";
     repo = "terminator";
     rev = "v${version}";
-    sha256 = "105f660wzf9cpn24xzwaaa09igg5h3qhchafv190v5nqck6g1ssh";
+    sha256 = "sha256-Rd5XieB7K2BkSzrAr6Kmoa30xuwvsGKpPrsG2wrU1o8=";
   };
 
   nativeBuildInputs = [
@@ -27,6 +27,7 @@ python3.pkgs.buildPythonApplication rec {
     intltool
     gobject-introspection
     wrapGAppsHook
+    python3.pkgs.pytestrunner
   ];
 
   buildInputs = [
@@ -47,19 +48,13 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   postPatch = ''
-    patchShebangs run_tests tests po
+    patchShebangs tests po
     # dbus-python is correctly passed in propagatedBuildInputs, but for some reason setup.py complains.
     # The wrapped terminator has the correct path added, so ignore this.
     substituteInPlace setup.py --replace "'dbus-python'," ""
   '';
 
-  checkPhase = ''
-    runHook preCheck
-
-    ./run_tests
-
-    runHook postCheck
-  '';
+  doCheck = false;
 
   meta = with lib; {
     description = "Terminal emulator with support for tiling and tabs";
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix
index 67c660275f55..87394241ef76 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
     url = "https://github.com/Eugeny/terminus/releases/download/v${version}/terminus_${version}_amd64.deb";
     sha256 = "1r5n75n71zwahg4rxlnf9qzrb0651gxv0987m6bykqmfpnw91nmb";
   };
-  buildInputs = [ dpkg makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ dpkg ];
   unpackPhase = ''
     mkdir pkg
     dpkg-deb -x $src pkg
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
index 80956a512442..c0f4ea32576e 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
@@ -5,7 +5,7 @@
 , ninja
 , python3
 , pkg-config
-, dmd
+, ldc
 , dconf
 , dbus
 , gsettings-desktop-schemas
@@ -16,17 +16,18 @@
 , glib
 , wrapGAppsHook
 , libunwind
+, appstream
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "tilix";
-  version = "unstable-2019-10-02";
+  version = "1.9.4";
 
   src = fetchFromGitHub {
     owner = "gnunn1";
     repo = "tilix";
-    rev = "ffcd31e3c0e1a560ce89468152d8726065e8fb1f";
-    sha256 = "1bzv7xiqhyblz1rw8ln4zpspmml49vnshn1zsv9di5q7kfgpqrgq";
+    rev = "${version}";
+    sha256 = "sha256:020gr4q7kmqq8vnsh8rw97gf1p2n1yq4d7ncyjjh9l13zkaxqqv9";
   };
 
   # Default upstream else LDC fails to link
@@ -36,12 +37,13 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [
     desktop-file-utils
-    dmd
+    ldc
     meson
     ninja
     pkg-config
     python3
     wrapGAppsHook
+    appstream
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix
index 8983b3d99043..a5db50657077 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "xterm";
-  version = "366";
+  version = "367";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
       "https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
     ];
-    sha256 = "0vmzffy3hzgcgwx305h07ars5sxsq6nnl1ir4xqpxs9zjs2ji2w5";
+    sha256 = "07y51l06n344pjyxdddq6sdvxw25nl10irl4avynkqjnqyqsiw97";
   };
 
   buildInputs = [
@@ -115,5 +115,6 @@ stdenv.mkDerivation rec {
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ nequissimus vrthra ];
     platforms = with lib.platforms; linux ++ darwin;
+    changelog = "https://invisible-island.net/xterm/xterm.log.html";
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/bcompare/default.nix b/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
index 61ea5a9ddd4d..d90de1a526f4 100644
--- a/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   dontBuild = true;
   dontConfigure = true;
+  dontWrapQtApps = true;
 
   meta = with lib; {
     description = "GUI application that allows to quickly and easily compare files and folders";
diff --git a/nixpkgs/pkgs/applications/version-management/bumpver/default.nix b/nixpkgs/pkgs/applications/version-management/bumpver/default.nix
index ded8f7ba6993..756a031ae1e7 100644
--- a/nixpkgs/pkgs/applications/version-management/bumpver/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/bumpver/default.nix
@@ -2,11 +2,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "bumpver";
-  version = "2020.1108";
+  version = "2021.1110";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1bhbrq8fk8rsr78vq9xjz8v9lgv571va0nmg86dwmv6qnj6dymzm";
+    sha256 = "b6a0ddb78db7e00ae7ffe895bf8ef97f91e6310dfc1c4721896bdfd044b1cb03";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix b/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix
index ae1929565b6e..af2b5cdc9a3d 100644
--- a/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix
@@ -12,7 +12,7 @@ python2Packages.buildPythonApplication  rec {
     sha256 = "1ska0z15sjhyfi860rjazz9ya1gxbf5c0h8dfqwz88h7fccd22b4";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   checkInputs = [ subversion git breezy ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/gerrit/default.nix b/nixpkgs/pkgs/applications/version-management/gerrit/default.nix
index 2c5ddca5090f..d23f28470499 100644
--- a/nixpkgs/pkgs/applications/version-management/gerrit/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gerrit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gerrit";
-  version = "3.3.1";
+  version = "3.3.2";
 
   src = fetchurl {
     url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
-    sha256 = "0swj3lmxwh4a0gnkirqrh7znzizsizy3cnlinhhsi319qns2szb1";
+    sha256 = "sha256-tqlJANxJl2r0ZxPb7d8KU9cRMQUFPUIm/zMp4zREGL0=";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
index 1ffc06536750..036eef1c9c36 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
@@ -15,7 +15,8 @@ in
       sha256 = "1kn84rsvms1v5l1j2xgrk7dc7mnsmxkc6sqd94mnim22vnwvl8mz";
     };
 
-    buildInputs = [ jre makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ jre ];
 
     phases = "installPhase";
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/bit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/bit/default.nix
new file mode 100644
index 000000000000..1c88edfd901d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/bit/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, git
+}:
+
+buildGoModule rec {
+  pname = "bit";
+  version = "1.0.6";
+
+  src = fetchFromGitHub {
+    owner = "chriswalz";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-juQAFVqs0d4EtoX24EyrlKd2qRRseP+jKfM0ymkD39E=";
+  };
+
+  vendorSha256 = "sha256-3Y/B14xX5jaoL44rq9+Nn4niGViLPPXBa8WcJgTvYTA=";
+
+  propagatedBuildInputs = [ git ];
+
+  # Tests require a repository
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Command-line tool for git";
+    homepage = "https://github.com/chriswalz/bit";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
index 4b7785374694..20c7f41bc545 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.6.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    sha256 = "sha256-cEVYU7vMgVxVIKztL6LHcvQjrNRRMrB5XMP/7gPCr5A=";
+    sha256 = "02gm3fxqq91gn1hffy9kc6dkc0y7p09sl6f8njfpsaficij4bs7a";
   };
 
-  cargoSha256 = "sha256-iD3Cr1vo0FNyWvAN5m6ND+8sGyekgbkYmIxGTJkPEYE=";
+  cargoSha256 = "1crz7410xfixx2vb1c060fnygwkkp2k2lgh7y1mjjxjzhpybniw5";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
index 5aea15769c0b..565fe180ba13 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0hzyh66rlawxip4n2pvz7pbs0cq82clqv1d6c7hf60v1drjxw287";
   };
 
-  buildInputs = [mercurial.python mercurial makeWrapper];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [mercurial.python mercurial];
 
   installPhase = ''
     binPath=$out/bin
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 38413f990a01..6b79d152380a 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "1.5.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "1f23b8bn867b4zihz8m91xmkclcw1jnqkwi06klhm5576akahigq";
+    sha256 = "1q0vc9wr4n813mxkf7jjj3prw1n7xv4l985qd57pg4a2js1dqa1y";
   };
 
-  vendorSha256 = "00adc0xjrkjrjh0gxk55vhpgxb5x0j5ialzrdvhlrvhpnb44qrcq";
+  vendorSha256 = "1wv30z0jg195nkpz3rwvhixyw81lg2wzwwajq9g6s3rfjj8gs9v2";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
index 4bfe06fee747..74e2a34aec1a 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ghorg";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "gabrie30";
     repo = "ghorg";
     rev = version;
-    sha256 = "sha256-OoNHKDxYKTmfm1rrQxG7PnH7DINa2M/NKc/5iKaUybg=";
+    sha256 = "sha256-HkOMG7VG8jyvr1W1T/62murtNYE8wyT/p3lDtuxfm5M=";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix
index f56ce386e42b..defad82d5a1c 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ghq";
-  version = "1.1.5";
+  version = "1.1.7";
 
   src = fetchFromGitHub {
     owner = "x-motemen";
     repo = "ghq";
     rev = "v${version}";
-    sha256 = "098fik155viylq07az7crzbgswcvhpx0hr68xpvyx0rpri792jbq";
+    sha256 = "sha256-kEs844gj1/PW7Kkpn1tvxfruznRIh2pjHCoSWGF1upQ=";
   };
 
-  vendorSha256 = "0gll132g111vn1hdmdjpkha9rbyppz0qj1ld89gwlk2mqd57jxkd";
+  vendorSha256 = "sha256-5Eth9v98z1gxf1Fz5Lbn2roX7dSBmA7GRzg8uvT0hTI=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-googledrive/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-googledrive/default.nix
new file mode 100644
index 000000000000..89b2a5f23b05
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-googledrive/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, annexremote
+, drivelib
+, GitPython
+, tenacity
+, humanfriendly
+}:
+
+buildPythonApplication rec {
+  pname = "git-annex-remote-googledrive";
+  version = "1.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "118w0fyy6pck8hyj925ym6ak0xxqhkaq2vharnpl9b97nab4mqg8";
+  };
+
+  propagatedBuildInputs = [ annexremote drivelib GitPython tenacity humanfriendly ];
+
+  # while git-annex does come with a testremote command that *could* be used,
+  # testing this special remote obviously depends on authenticating with google
+  doCheck = false;
+
+  pythonImportsCheck = [ "git_annex_remote_googledrive" ];
+
+  meta = with lib; {
+    description = "A git-annex special remote for Google Drive";
+    homepage = "https://pypi.org/project/git-annex-remote-googledrive/";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ gravndal ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
index 7a24fe8e0359..a90390ddd3b3 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "git-bug";
-  version = "0.7.1"; # the `rev` below pins the version of the source to get
-  rev = "2d64b85db71a17ff3277bbbf7ac9d8e81f8e416c";
+  version = "0.7.2"; # the `rev` below pins the version of the source to get
+  rev = "cc4a93c8ce931b1390c61035b888ad17110b7bd6";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "MichaelMure";
     repo = "git-bug";
-    sha256 = "01ab3mlwh5g1vr3x85fppflg18gb8ip9mjfsp2b5rfigd9lxyyns";
+    sha256 = "0r6wh0y1fj3d3fbbrzq5n9k6z94xvwqww3xfbslkgyrin5bmziiq";
   };
 
-  vendorSha256 = "0c8b47lj4wl3s21lm0vx4z7hznylm8c4fb8b8gxm278kn3zys607";
+  vendorSha256 = "15hhsrwwjc4krfc2d0r15lys3vr9rb9xk62pan4jr9ycbv0dny90";
 
   doCheck = false;
 
@@ -32,7 +32,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Distributed bug tracker embedded in Git";
     homepage = "https://github.com/MichaelMure/git-bug";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ royneary ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix
index 20e6a993cab2..eec9b7ea1246 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchgit
 , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxslt, makeWrapper, xmlto
-, pythonPackages }:
+, python2Packages }:
 
 stdenv.mkDerivation {
   pname = "git-bz";
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     asciidoc docbook_xml_dtd_45 docbook_xsl libxslt makeWrapper xmlto
   ];
   buildInputs = []
-    ++ (with pythonPackages; [ python pysqlite ]);
+    ++ (with python2Packages; [ python pysqlite ]);
 
   postPatch = ''
     patchShebangs configure
@@ -27,8 +27,8 @@ stdenv.mkDerivation {
 
   postInstall = ''
     wrapProgram $out/bin/git-bz \
-      --prefix PYTHONPATH : "$(toPythonPath "${pythonPackages.pycrypto}")" \
-      --prefix PYTHONPATH : "$(toPythonPath "${pythonPackages.pysqlite}")"
+      --prefix PYTHONPATH : "$(toPythonPath "${python2Packages.pycrypto}")" \
+      --prefix PYTHONPATH : "$(toPythonPath "${python2Packages.pysqlite}")"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
index 5e105ad9dd3a..37c10bf2f982 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
@@ -5,13 +5,13 @@ let
 
 in buildPythonApplication rec {
   pname = "git-cola";
-  version = "3.8";
+  version = "3.9";
 
   src = fetchFromGitHub {
     owner = "git-cola";
     repo = "git-cola";
     rev = "v${version}";
-    sha256 = "1qxv2k8lxcxpqx46ka7f042xk90xns5w9lc4009cxmsqvcdba03a";
+    sha256 = "11186pdgaw5p4iv10dqcnynf5pws2v9nhqqqca7z5b7m20fpfjl7";
   };
 
   buildInputs = [ git gettext ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
index 08875dabd0fe..f0184c663777 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
@@ -13,9 +13,9 @@ stdenv.mkDerivation rec {
     sha256 = "13m9y0m6gc3mlw3pqv9x4i0him2ycbysizigdvdanhh514kga602";
   };
 
-  nativeBuildInputs = [ libxslt ];
+  nativeBuildInputs = [ libxslt makeWrapper ];
 
-  buildInputs = [ openssl makeWrapper ];
+  buildInputs = [ openssl ];
 
   patchPhase = ''
     substituteInPlace commands.cpp \
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
index f2291882b2b8..387a1cb59c58 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-extras";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner = "tj";
     repo = "git-extras";
     rev = version;
-    sha256 = "12ff9rhgqd71xm72r385hx0h8g75hz0ag0adzqcwfa54k0lhrrrz";
+    sha256 = "sha256-ACuTb1DGft2/32Ezg23jhpl9yua5kUTZ2kKL8KHU+BU=";
   };
 
   nativeBuildInputs = [ unixtools.column which ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix
index ac3de7cbc9ec..8c7ecee04768 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix
@@ -1,20 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, gitMinimal, python2Packages }:
+{ lib, stdenv, fetchFromGitHub, gitMinimal, docutils }:
 
 stdenv.mkDerivation rec {
   pname = "git-hub";
-  version = "1.1.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "sociomantic-tsunami";
     repo = "git-hub";
     rev = "v${version}";
-    sha256 = "0jkzg7vjvgb952qncndhki7n70714w61flbzf4mdcjc286lqjvwb";
+    sha256 = "1df9l8fpbxjgcgi72fwaqxiay5kpfihyc63f0gj67mns9n9ic1i7";
   };
 
-  buildInputs = [ python2Packages.python ];
   nativeBuildInputs = [
     gitMinimal        # Used during build to generate Bash completion.
-    python2Packages.docutils
+    docutils
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index 7f2163e67d66..99772f60bc50 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "2.16.1";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00xh3q3gmi88qcl0a61pw532iyw4xcls5h336cjzld70ps2r89g4";
+    sha256 = "0bb6ap8sdp4ad0xkh3y8vj46a363g5gdw0dzf9ycw0z9ah8ispfx";
   };
 
   nativeBuildInputs = [ installShellFiles pbr ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix
index 942a12e239b9..7b8b5fed90f4 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "prefix=$(out)" ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   # perl provides shasum
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix
index 5e5bba3df728..c67a575172cb 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "11n46bngvca5wbdbfcxzjhjbfdbad7sgf7h9gf956cb1q8swsdm0";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildPhase = null;
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix
index 2ecc5d872b88..1a1811b2f438 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "1g8i6vpjnnfh7vc1269c91bap267w4bxdqqwnzb8x18vqgn2fx8i";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildPhase = null;
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
index 037de14658d6..ec1c44b96134 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0v0yxydpw6r4awy0hb7sbnh520zsk86ibzh1xjf3983yhsvkfk5v";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
index eea7bed011b0..3143d7ef9c3a 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
@@ -14,7 +14,7 @@ in stdenv.mkDerivation {
     sha256 = "0hc7yavcp8jmn6b7wngjqhy8kl7f4191sfpik8ycvqghkvvimxj4";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     install -D git-secret $out/bin/git-secret
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
index 87cb7452c75b..add7bfc5526f 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "01if8y93wa0mwbkzkzx2v1vqh47zlz4k1dysl6yh5rmppd1psknz";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
index 90f6ba5ac5ac..1f7fd36e1d30 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -1,5 +1,4 @@
 { fetchurl, lib, stdenv, buildPackages
-, fetchpatch
 , curl, openssl, zlib, expat, perlPackages, python3, gettext, cpio
 , gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc
 , openssh, pcre2
@@ -8,6 +7,7 @@
 , svnSupport, subversionClient, perlLibs, smtpPerlLibs
 , perlSupport ? true
 , nlsSupport ? true
+, osxkeychainSupport ? stdenv.isDarwin
 , guiSupport
 , withManual ? true
 , pythonSupport ? true
@@ -19,11 +19,12 @@
 , gzip # needed at runtime by gitweb.cgi
 }:
 
+assert osxkeychainSupport -> stdenv.isDarwin;
 assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.30.0";
+  version = "2.31.0";
   svn = subversionClient.override { perlBindings = perlSupport; };
 
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -35,7 +36,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "06ad6dylgla34k9am7d5z8y3rryc8ln3ibq5z0d74rcm20hm0wsm";
+    sha256 = "0h4sg3xqa9pd2agrd7m18sqg319ls978d39qswyf30rjvg5n5wg8";
   };
 
   outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -65,10 +66,10 @@ stdenv.mkDerivation {
         --subst-var-by gettext ${gettext}
   '';
 
-  nativeBuildInputs = [ gettext perlPackages.perl ]
+  nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ]
     ++ lib.optionals withManual [ asciidoctor texinfo xmlto docbook2x
          docbook_xsl docbook_xsl_ns docbook_xml_dtd_45 libxslt ];
-  buildInputs = [curl openssl zlib expat cpio makeWrapper libiconv]
+  buildInputs = [curl openssl zlib expat cpio libiconv]
     ++ lib.optionals perlSupport [ perlPackages.perl ]
     ++ lib.optionals guiSupport [tcl tk]
     ++ lib.optionals withpcre2 [ pcre2 ]
@@ -115,7 +116,7 @@ stdenv.mkDerivation {
     make -C contrib/subtree
   '' + (lib.optionalString perlSupport ''
     make -C contrib/diff-highlight
-  '') + (lib.optionalString stdenv.isDarwin ''
+  '') + (lib.optionalString osxkeychainSupport ''
     make -C contrib/credential/osxkeychain
   '') + (lib.optionalString withLibsecret ''
     make -C contrib/credential/libsecret
@@ -129,7 +130,7 @@ stdenv.mkDerivation {
 
   installFlags = [ "NO_INSTALL_HARDLINKS=1" ];
 
-  preInstall = (lib.optionalString stdenv.isDarwin ''
+  preInstall = (lib.optionalString osxkeychainSupport ''
     mkdir -p $out/bin
     ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/
     rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o
@@ -248,8 +249,8 @@ stdenv.mkDerivation {
          notSupported "$out/$prog"
        done
      '')
-   + lib.optionalString stdenv.isDarwin ''
-    # enable git-credential-osxkeychain by default if darwin
+   + lib.optionalString osxkeychainSupport ''
+    # enable git-credential-osxkeychain on darwin if desired (default)
     mkdir -p $out/etc
     cat > $out/etc/gitconfig << EOF
     [credential]
@@ -310,6 +311,9 @@ stdenv.mkDerivation {
     # 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
+
     ${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
@@ -335,7 +339,7 @@ stdenv.mkDerivation {
     homepage = "https://git-scm.com/";
     description = "Distributed version control system";
     license = lib.licenses.gpl2;
-    changelog = "https://raw.githubusercontent.com/git/git/${version}/Documentation/RelNotes/${version}.txt";
+    changelog = "https://github.com/git/git/blob/v${version}/Documentation/RelNotes/${version}.txt";
 
     longDescription = ''
       Git, a popular distributed version control system designed to
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
index 08bf5eb6ba07..6572b9b7fc86 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-kHirHG/bfsU6tKyQ0khNSTyChhzHfzib+HyA3LOtBI8=";
   };
 
-  buildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ pkgs.makeWrapper ];
 
   preBuild = ''
     makeFlagsArray+=(prefix="$out")
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
index 81b2984087bd..caf179f645b1 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, rustPlatform, fetchFromGitHub, libiconv, perl, python3, Security, AppKit, openssl, xclip }:
 rustPlatform.buildRustPackage rec {
   pname = "gitui";
-  version = "0.11.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0yq98jslbac87zdzlwqc2kcd6hqy2wnza3l8n3asss1iaqcb0ilh";
+    sha256 = "0fc8vxpy1zarxd5lqgwdj2jzv35qsxaydczg0qkws1f88m43n33x";
   };
 
-  cargoSha256 = "16riggrhk1f6lg8y46wn89ab5b1iz6lw00ngid20x4z32d2ww70f";
+  cargoSha256 = "1j5cf5z8ksf5kvi6zfrabv1c127yb6s0dpkl9p8vqdgdc6mzghvd";
 
   nativeBuildInputs = [ python3 perl ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix
index eae572530c39..8e7e739e6100 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "glab";
-  version = "1.14.0";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "profclems";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-JvHuOMpt62tw7ewDev7unAgZGV+ZSo6wDuiPhWap2v0=";
+    sha256 = "sha256-KkkP/qkIrwJUxmZTY8zxJKMbOiaGl8XqJhHAU7oejGs=";
   };
 
-  vendorSha256 = "sha256-0nnrH3GJhd4wlRETo9iSlFkXq358m30k7Fsb5haHlpQ=";
+  vendorSha256 = "sha256-DO8eH0DAitxX0NOYQBs4/ME9TFQYfXedwbld1DnBWXk=";
   runVend = true;
 
   # Tests are trying to access /homeless-shelter
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
index 41c4e653a633..856ee616efb7 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "lab";
-  version = "0.19.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "zaquestion";
     repo = "lab";
     rev = "v${version}";
-    sha256 = "1l6xsikd1113qd4y0mvjsl64gbi4327m9v4d593f27fxink39j8s";
+    sha256 = "sha256-mkhJmrKpIISd0m0m8fQ9vKuEr6h23BBxK6yo5fB+xcA=";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "07zl5xhzgrgr5skba6cds5nal58pllf10gak0ap62j1k9gk2ych2";
+  vendorSha256 = "sha256-cf+DVnGjSNV2eZ8S/Vk+VPlykoSjngrQuPeA9IshBUg=";
 
   doCheck = false;
 
@@ -33,6 +33,6 @@ buildGoModule rec {
     description = "Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab";
     homepage = "https://zaquestion.github.io/lab";
     license = licenses.cc0;
-    maintainers = with maintainers; [ marsam dtzWill ];
+    maintainers = with maintainers; [ marsam dtzWill SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
index 26f46066531e..766cb417b745 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "radicle-upstream";
-  version = "0.1.6";
+  version = "0.1.11";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://releases.radicle.xyz/radicle-upstream-${version}.AppImage";
-    sha256 =  "1s299rxala6gqj69j5q4d4n5wfdk2zsb4r9qrhml0m79b4f79yar";
+    sha256 =  "1j0xc9ns3andycbrrzkn6ql6739b1dimzlxq17wwpmqhni9nh673";
   };
 
   contents = appimageTools.extractType2 { inherit name src; };
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
index 2f275827a2ef..8f06050d0902 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, unzip, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  name = "subgit-3.3.10";
+  name = "subgit-3.3.11";
 
   meta = {
     description = "A tool for a smooth, stress-free SVN to Git migration";
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://subgit.com/download/${name}.zip";
-    sha256 = "1z7cmaghfy5yjs50b3y6av9h2d6xmpamyxql7vvr3dy6kflvv8fk";
+    sha256 = "sha256-ltTpmXPCIGTmVDxKc6oelMEzQWXRbIf0NESzRugaXo0=";
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix
index 8c73c00f00c2..a40e959a50a4 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation {
 
   NIX_LDFLAGS = "-lsvn_fs-1";
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://github.com/svn-all-fast-export/svn2git";
     description = "A fast-import based converter for an svn repo to git repos";
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
index 69742b6d7603..74f10a142883 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "0ly2vrv6q31n0xhciwb7a1ilr5c6ndyi3bg81yfp4axiypps7l41";
   };
 
-  buildInputs = [ ruby makeWrapper ];
+  nativeBuildInputs = [ ruby makeWrapper ];
 
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
index 1f2a77d20199..753a3443c315 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tig";
-  version = "2.5.2";
+  version = "2.5.3";
 
   src = fetchFromGitHub {
     owner = "jonas";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-kkH4px34VpnO/S1VjgQGU9Mm4/VpmiOtvlz2ubtStAk=";
+    sha256 = "sha256-BXs7aKUYiU5L2OjhhmJ+dkHvNcrnw5qREwOTB6npLnw=";
   };
 
   nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
index aebd488fe305..3225744abc57 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1dkr69plk16wllk5bzlkchrzw63pk239dgbjhrb3mb61i065jdam";
   };
 
-  buildInputs = [ makeWrapper git openssl coreutils util-linux gnugrep gnused gawk ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ git openssl coreutils util-linux gnugrep gnused gawk ];
 
   patches = [ ./helper-scripts_depspathprefix.patch ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix b/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix
index 5dc75ce4d702..006809db6226 100644
--- a/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, pythonPackages }:
+{ lib, fetchFromGitHub, python2Packages }:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   pname = "git-crecord";
   version = "20161216.0";
 
@@ -11,7 +11,7 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "0v3y90zi43myyi4k7q3892dcrbyi9dn2q6xgk12nw9db9zil269i";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ docutils ];
+  propagatedBuildInputs = with python2Packages; [ docutils ];
 
   meta = {
     homepage = "https://github.com/andrewshadura/git-crecord";
diff --git a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
index c73a92771382..5976f1de6a76 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 @@
 
 buildGoPackage rec {
   pname = "git-lfs";
-  version = "2.13.2";
+  version = "2.13.3";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "git-lfs";
     repo = "git-lfs";
-    sha256 = "0gfpzdya48phwln61746ii78sq55mhzj938lz8x062xkkcsdvbf4";
+    sha256 = "sha256-T4s/xnu5nL6dkEIo7xGywaE+EPH2OnzsaCF9OCGu7WQ=";
   };
 
   goPackagePath = "github.com/git-lfs/git-lfs";
diff --git a/nixpkgs/pkgs/applications/version-management/git-repo/default.nix b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
index f6250563fc93..72f6d67c2f1d 100644
--- a/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-repo";
-  version = "2.12.2";
+  version = "2.13.1";
 
   src = fetchFromGitHub {
     owner = "android";
     repo = "tools_repo";
     rev = "v${version}";
-    sha256 = "sha256-E0HGianaTNRVJsFh8tb1wdxEARRXzkFG2OHU6op5oQ4=";
+    sha256 = "sha256-D6gh14XOZ6Fjypfhg9l5ozPhyf6u6M0Wc8HdagdPM/Q=";
   };
 
   patches = [ ./import-ssl-module.patch ];
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://android.googlesource.com/tools/repo";
     license = licenses.asl20;
-    maintainers = [ maintainers.primeos ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
index 566459afa18d..64c98768fdd3 100644
--- a/nixpkgs/pkgs/applications/version-management/gitea/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildGoPackage, fetchurl, makeWrapper
-, git, bash, gzip, openssh, pam
+{ lib
+, buildGoPackage
+, fetchurl
+, makeWrapper
+, git
+, bash
+, gzip
+, openssh
+, pam
 , sqliteSupport ? true
 , pamSupport ? true
 , nixosTests
@@ -9,11 +16,12 @@ with lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.13.2";
+  version = "1.13.6";
 
+  # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "sha256-uezg8GdNqgKVHgJj9rTqHFLWuLdyDp63fzr7DMslOII=";
+    sha256 = "1f0fsqcmmqygv0r796ddr2fjhh333i9nr0cqk9x2b2kbs1z264vf";
   };
 
   unpackPhase = ''
@@ -36,16 +44,18 @@ buildGoPackage rec {
 
   buildInputs = optional pamSupport pam;
 
-  preBuild = let
-    tags = optional pamSupport "pam"
+  preBuild =
+    let
+      tags = optional pamSupport "pam"
         ++ optional sqliteSupport "sqlite sqlite_unlock_notify";
-    tagsString = concatStringsSep " " tags;
-  in ''
-    export buildFlagsArray=(
-      -tags="${tagsString}"
-      -ldflags='-X "main.Version=${version}" -X "main.Tags=${tagsString}"'
-    )
-  '';
+      tagsString = concatStringsSep " " tags;
+    in
+    ''
+      export buildFlagsArray=(
+        -tags="${tagsString}"
+        -ldflags='-X "main.Version=${version}" -X "main.Tags=${tagsString}"'
+      )
+    '';
 
   outputs = [ "out" "data" ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
index 7dd8ff43974d..63fd61f6671e 100644
--- a/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gitkraken";
-  version = "7.5.0";
+  version = "7.5.4";
 
   src = fetchzip {
     url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-    sha256 = "1v89aza7iwph7k5phyld5m5856c5wbh8ncgg6lh7558v4xna0x57";
+    sha256 = "1laqki01zcmsl9s18dnwg3x3jbbs0xcipiyj2qlsb1sx9y4x05wm";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
index 9ea6d241060f..aa5338ea7c6b 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/data.json
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
@@ -1,13 +1,13 @@
 {
-  "version": "13.7.4",
-  "repo_hash": "1ggx76k6941rhccsd585p4h5k4zb87yvg0pmpzhwhh2q4ma2sywm",
+  "version": "13.10.2",
+  "repo_hash": "1q3qnfzhikbbsmzzbldwn6xvsyxr1jgv5lj7mgcji11j8qv1a625",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v13.7.4-ee",
+  "rev": "v13.10.2-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "13.7.4",
-    "GITLAB_PAGES_VERSION": "1.34.0",
-    "GITLAB_SHELL_VERSION": "13.14.0",
-    "GITLAB_WORKHORSE_VERSION": "8.58.2"
+    "GITALY_SERVER_VERSION": "13.10.2",
+    "GITLAB_PAGES_VERSION": "1.36.0",
+    "GITLAB_SHELL_VERSION": "13.17.0",
+    "GITLAB_WORKHORSE_VERSION": "13.10.2"
   }
 }
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
index ee6c8201fa3f..4cd64dc8ad93 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv
 , ruby, tzdata, git, nettools, nixosTests, nodejs, openssl
 , gitlabEnterprise ? false, callPackage, yarn
-, fixup_yarn_lock, replace
+, fixup_yarn_lock, replace, file
 }:
 
 let
@@ -32,6 +32,10 @@ let
         openssl = x.openssl // {
           buildInputs = [ openssl ];
         };
+        ruby-magic-static = x.ruby-magic-static // {
+          buildInputs = [ file ];
+          buildFlags = [ "--enable-system-libraries" ];
+        };
       };
     groups = [
       "default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "kerberos"
@@ -137,6 +141,7 @@ stdenv.mkDerivation {
     sed -i '/ask_to_continue/d' lib/tasks/gitlab/two_factor.rake
     sed -ri -e '/log_level/a config.logger = Logger.new(STDERR)' config/environments/production.rb
 
+    mv config/puma.rb.example config/puma.rb
     # Always require lib-files and application.rb through their store
     # path, not their relative state directory path. This gets rid of
     # warnings and means we don't have to link back to lib from the
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 0a7fcd7c260d..00215cc55e9e 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -1,23 +1,23 @@
 source 'https://rubygems.org'
 
-gem 'rugged', '~> 0.28'
+gem 'rugged', '~> 1.1'
 gem 'github-linguist', '~> 7.12', require: 'linguist'
 gem 'gitlab-markup', '~> 1.7.1'
-gem 'activesupport', '~> 6.0.3.3'
+gem 'activesupport', '~> 6.0.3.4'
 gem 'rdoc', '~> 6.0'
-gem 'gitlab-gollum-lib', '~> 4.2.7.9', require: false
-gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.2', require: false
+gem 'gitlab-gollum-lib', '~> 4.2.7.10.gitlab.1', require: false
+gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.3.gitlab.1', require: false
 gem 'grpc', '~> 1.30.2'
 gem 'sentry-raven', '~> 3.0', require: false
 gem 'faraday', '~> 1.0'
 gem 'rbtrace', require: false
 
 # Labkit provides observability functionality
-gem 'gitlab-labkit', '~> 0.13.2'
+gem 'gitlab-labkit', '~> 0.15.0'
 
 # Detects the open source license the repository includes
 # This version needs to be in sync with GitLab CE/EE
-gem 'licensee', '~> 8.9.0'
+gem 'licensee', '~> 9.14.1'
 
 gem 'google-protobuf', '~> 3.12'
 
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index eb5c86946d7a..32d761f9f3f7 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -2,20 +2,20 @@ GEM
   remote: https://rubygems.org/
   specs:
     abstract_type (0.0.7)
-    actionpack (6.0.3.3)
-      actionview (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionpack (6.0.3.4)
+      actionview (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionview (6.0.3.4)
+      activesupport (= 6.0.3.4)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activesupport (6.0.3.3)
+    activesupport (6.0.3.4)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -24,6 +24,8 @@ GEM
     adamantium (0.2.0)
       ice_nine (~> 0.11.0)
       memoizable (~> 0.4.0)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
     ast (2.4.1)
     binding_ninja (0.2.3)
     builder (3.2.4)
@@ -35,8 +37,9 @@ GEM
     concurrent-ruby (1.1.7)
     crass (1.0.6)
     diff-lcs (1.3)
+    dotenv (2.7.6)
     equalizer (0.0.11)
-    erubi (1.9.0)
+    erubi (1.10.0)
     escape_utils (1.2.1)
     factory_bot (5.0.2)
       activesupport (>= 4.2.0)
@@ -51,23 +54,24 @@ GEM
       mini_mime (~> 1.0)
       rugged (>= 0.25.1)
     github-markup (1.7.0)
-    gitlab-gollum-lib (4.2.7.9)
+    gitlab-gollum-lib (4.2.7.10.gitlab.1)
       gemojione (~> 3.2)
       github-markup (~> 1.6)
-      gitlab-gollum-rugged_adapter (~> 0.4.4.2)
+      gitlab-gollum-rugged_adapter (~> 0.4.4.3.gitlab.1)
       nokogiri (>= 1.6.1, < 2.0)
       rouge (~> 3.1)
       sanitize (~> 4.6.4)
       stringex (~> 2.6)
-    gitlab-gollum-rugged_adapter (0.4.4.2)
+    gitlab-gollum-rugged_adapter (0.4.4.3.gitlab.1)
       mime-types (>= 1.15)
-      rugged (~> 0.25)
-    gitlab-labkit (0.13.2)
-      actionpack (>= 5.0.0, < 6.1.0)
-      activesupport (>= 5.0.0, < 6.1.0)
+      rugged (~> 1.0)
+    gitlab-labkit (0.15.0)
+      actionpack (>= 5.0.0, < 7.0.0)
+      activesupport (>= 5.0.0, < 7.0.0)
       grpc (~> 1.19)
       jaeger-client (~> 1.1)
       opentracing (~> 0.4)
+      pg_query (~> 1.3)
       redis (> 3.0.0, < 5.0.0)
     gitlab-markup (1.7.1)
     google-protobuf (3.12.4)
@@ -83,10 +87,14 @@ GEM
     jaeger-client (1.1.0)
       opentracing (~> 0.3)
       thrift
-    json (2.3.1)
-    licensee (8.9.2)
-      rugged (~> 0.24)
-    loofah (2.7.0)
+    json (2.5.1)
+    licensee (9.14.1)
+      dotenv (~> 2.0)
+      octokit (~> 4.17)
+      reverse_markdown (~> 1.0)
+      rugged (>= 0.24, < 2.0)
+      thor (>= 0.19, < 2.0)
+    loofah (2.9.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     memoizable (0.4.2)
@@ -94,21 +102,26 @@ GEM
     method_source (0.9.2)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2020.0512)
+    mime-types-data (3.2020.1104)
     mini_mime (1.0.2)
-    mini_portile2 (2.4.0)
+    mini_portile2 (2.5.0)
     minitest (5.14.2)
     msgpack (1.3.3)
     multipart-post (2.1.1)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     nokogumbo (1.5.0)
       nokogiri
+    octokit (4.20.0)
+      faraday (>= 0.9)
+      sawyer (~> 0.8.0, >= 0.5.3)
     opentracing (0.5.0)
     optimist (3.0.1)
     parallel (1.19.2)
     parser (2.7.2.0)
       ast (~> 2.4.1)
+    pg_query (1.3.0)
     proc_to_ast (0.1.0)
       coderay
       parser
@@ -117,6 +130,8 @@ GEM
     pry (0.12.2)
       coderay (~> 1.1.0)
       method_source (~> 0.9.0)
+    public_suffix (4.0.6)
+    racc (1.5.2)
     rack (2.2.3)
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
@@ -131,8 +146,10 @@ GEM
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
     rdoc (6.2.0)
-    redis (4.1.3)
+    redis (4.2.5)
     regexp_parser (1.8.1)
+    reverse_markdown (1.4.0)
+      nokogiri
     rexml (3.2.4)
     rouge (3.26.0)
     rspec (3.8.0)
@@ -166,18 +183,22 @@ GEM
     rubocop-ast (0.2.0)
       parser (>= 2.7.0.1)
     ruby-progressbar (1.10.1)
-    rugged (0.28.4.1)
+    rugged (1.1.0)
     sanitize (4.6.6)
       crass (~> 1.0.2)
       nokogiri (>= 1.4.4)
       nokogumbo (~> 1.4)
+    sawyer (0.8.2)
+      addressable (>= 2.3.5)
+      faraday (> 0.8, < 2.0)
     sentry-raven (3.0.4)
       faraday (>= 1.0)
     stringex (2.8.5)
+    thor (1.1.0)
     thread_safe (0.3.6)
-    thrift (0.11.0.0)
+    thrift (0.13.0)
     timecop (0.9.1)
-    tzinfo (1.2.7)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
     unicode-display_width (1.7.0)
     unparser (0.4.7)
@@ -188,31 +209,31 @@ GEM
       equalizer (~> 0.0.9)
       parser (>= 2.6.5)
       procto (~> 0.0.2)
-    zeitwerk (2.4.0)
+    zeitwerk (2.4.2)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  activesupport (~> 6.0.3.3)
+  activesupport (~> 6.0.3.4)
   factory_bot
   faraday (~> 1.0)
   github-linguist (~> 7.12)
-  gitlab-gollum-lib (~> 4.2.7.9)
-  gitlab-gollum-rugged_adapter (~> 0.4.4.2)
-  gitlab-labkit (~> 0.13.2)
+  gitlab-gollum-lib (~> 4.2.7.10.gitlab.1)
+  gitlab-gollum-rugged_adapter (~> 0.4.4.3.gitlab.1)
+  gitlab-labkit (~> 0.15.0)
   gitlab-markup (~> 1.7.1)
   google-protobuf (~> 3.12)
   grpc (~> 1.30.2)
   grpc-tools (= 1.30.2)
-  licensee (~> 8.9.0)
+  licensee (~> 9.14.1)
   pry (~> 0.12.2)
   rbtrace
   rdoc (~> 6.0)
   rspec
   rspec-parameterized
   rubocop (~> 0.69)
-  rugged (~> 0.28)
+  rugged (~> 1.1)
   sentry-raven (~> 3.0)
   timecop
 
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 1b96307457c2..260b3b493999 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -4,18 +4,6 @@
 , libgit2, openssl, zlib, pcre, http-parser }:
 
 let
-  # libgit2 was updated to 1.1.0 in nixpkgs, but gitlab doesn't support that yet.
-  # See https://github.com/NixOS/nixpkgs/pull/106909
-  libgit = libgit2.overrideAttrs (attrs: rec {
-    version = "1.0.0";
-    src = fetchFromGitHub {
-      owner = "libgit2";
-      repo = "libgit2";
-      rev = "v${version}";
-      sha256 = "06cwrw93ycpfb5kisnsa5nsy95pm11dbh0vvdjg1jn25h9q5d3vc";
-    };
-  });
-
   rubyEnv = bundlerEnv rec {
     name = "gitaly-env";
     inherit ruby;
@@ -33,17 +21,17 @@ let
       };
   };
 in buildGoModule rec {
-  version = "13.7.4";
+  version = "13.10.2";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "1inb7xlv8admzy9q1bgxccbrhks0mmc8lng356h39crj5sgaqkmg";
+    sha256 = "sha256-5CjZs5tpEEsgQGBFa8BeZ7SDhIeGKqAHWwbR8hSoCPs=";
   };
 
-  vendorSha256 = "15i1ajvrff1bfpv3kmb1wm1mmriswwfw2v4cml0nv0zp6a5n5187";
+  vendorSha256 = "sha256-8AopoiLmg6kfvYbZDOfFWBy1o5tbnxsKxSBX20OasIE=";
 
   passthru = {
     inherit rubyEnv;
@@ -51,7 +39,7 @@ in buildGoModule rec {
 
   buildFlags = [ "-tags=static,system_libgit2" ];
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ rubyEnv.wrappedRuby libgit openssl zlib pcre http-parser ];
+  buildInputs = [ rubyEnv.wrappedRuby libgit2 openssl zlib pcre http-parser ];
   doCheck = false;
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index b4a6b0e78eb9..90655ef9e93f 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -13,10 +13,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p873nqwmpsvmkb5n86d70wndx1qhy15pc9mbcd1mc8sj174578b";
+      sha256 = "0fbjpnh5hrihc9l35q9why6ip0hcdj42axzbp6b4j1xcy1v1bicj";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -24,10 +24,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08pvmjddlw01q5r9zdfgddwp4csndpf5i2w47677z5r36jznz36q";
+      sha256 = "0gdz31cq08nrqq6bxqim2qcbzv0fr34z6ycl73dmawpafj33wdkj";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -35,10 +35,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dmkqbvndbz011a1byg6f990936vfadbnwjwjw9vjzr4kd8bxk96";
+      sha256 = "1axidc4mikgi4yxs0ynw2c54jyrs5lxprxmzv6m3aayi9rg6rk5j";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   adamantium = {
     dependencies = ["ice_nine" "memoizable"];
@@ -49,6 +49,17 @@
     };
     version = "0.2.0";
   };
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
   ast = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -134,6 +145,16 @@
     };
     version = "1.3";
   };
+  dotenv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
+      type = "gem";
+    };
+    version = "2.7.6";
+  };
   equalizer = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -147,10 +168,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+      sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.10.0";
   };
   escape_utils = {
     source = {
@@ -226,10 +247,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y21k8bix3h2qdys2kz2z831cclmx3zc15x67cp8s945dkmh39sj";
+      sha256 = "0r6smbqnh0m84fxwb2g11qjfbcsljfin4vhnf43nmmbql2l1i3ah";
       type = "gem";
     };
-    version = "4.2.7.9";
+    version = "4.2.7.10.gitlab.1";
   };
   gitlab-gollum-rugged_adapter = {
     dependencies = ["mime-types" "rugged"];
@@ -237,21 +258,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d32d3yfadzwrarv0biwbfbkz2bqcc0dc3q0imnk962jaay19gc4";
+      sha256 = "0rqi9h6k32azljmx2q0zibvs1m59wgh879h04jflxkcqyzj6wyyj";
       type = "gem";
     };
-    version = "0.4.4.2";
+    version = "0.4.4.3.gitlab.1";
   };
   gitlab-labkit = {
-    dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "redis"];
+    dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "pg_query" "redis"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vgd61xdclihifcdivddfs1gipxy1ql0kf9q47k9h0xisscyjhd2";
+      sha256 = "1l9bsjszp5zyzbdsr9ls09d4yr2sb0xjc40x4rv7fbzk19n9xs71";
       type = "gem";
     };
-    version = "0.13.2";
+    version = "0.15.0";
   };
   gitlab-markup = {
     groups = ["default"];
@@ -336,23 +357,25 @@
     version = "1.1.0";
   };
   json = {
-    groups = ["default" "development" "test"];
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   licensee = {
-    dependencies = ["rugged"];
+    dependencies = ["dotenv" "octokit" "reverse_markdown" "rugged" "thor"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+      sha256 = "0c551j4qy773d79hgypjaz43h5wjn08mnxnxy9s2vdjc40qm95k5";
       type = "gem";
     };
-    version = "8.9.2";
+    version = "9.14.1";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -360,10 +383,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1alz1x6rkhbw10qpszr384299rf52rcyasn0619a9p50vzs8vczq";
+      sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.9.0";
   };
   memoizable = {
     dependencies = ["thread_safe"];
@@ -398,10 +421,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z75svngyhsglx0y2f9rnil2j08f9ab54b3l95bpgz67zq2if753";
+      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
       type = "gem";
     };
-    version = "3.2020.0512";
+    version = "3.2020.1104";
   };
   mini_mime = {
     groups = ["default"];
@@ -414,12 +437,14 @@
     version = "1.0.2";
   };
   mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitest = {
     groups = ["default" "development" "test"];
@@ -452,15 +477,15 @@
     version = "2.1.1";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.1";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -471,6 +496,17 @@
     };
     version = "1.5.0";
   };
+  octokit = {
+    dependencies = ["faraday" "sawyer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
+      type = "gem";
+    };
+    version = "4.20.0";
+  };
   opentracing = {
     groups = ["default"];
     platforms = [];
@@ -512,6 +548,16 @@
     };
     version = "2.7.2.0";
   };
+  pg_query = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i9l3y502ddm2lq3ajhxhqq17vs9hgxkxm443yw221ccibcfh6qf";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
   proc_to_ast = {
     dependencies = ["coderay" "parser" "unparser"];
     source = {
@@ -538,6 +584,26 @@
     };
     version = "0.12.2";
   };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rack = {
     groups = ["default"];
     platforms = [];
@@ -615,10 +681,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08v2y91q1pmv12g9zsvwj66w3s8j9d82yrmxgyv4y4gz380j3wyh";
+      sha256 = "15x2sr6h094rjbvg8pkq6m3lcd5abpyx93aifvfdz3wv6x55xa48";
       type = "gem";
     };
-    version = "4.1.3";
+    version = "4.2.5";
   };
   regexp_parser = {
     groups = ["default" "development" "test"];
@@ -630,6 +696,17 @@
     };
     version = "1.8.1";
   };
+  reverse_markdown = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w786j869fjhjf72waj0hc9i4ghi45b78a2am27kij4sa2hmsc53";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
   rexml = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -752,10 +829,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rdidxgpk1b6y1jq9v77lcx5khq0s9q0s253lr8x57d3hk43iskx";
+      sha256 = "04aq913plcxjw71l5r62qgz3bx3466p0wvgyfqahg5n3nybmcwqy";
       type = "gem";
     };
-    version = "0.28.4.1";
+    version = "1.1.0";
   };
   sanitize = {
     dependencies = ["crass" "nokogiri" "nokogumbo"];
@@ -766,6 +843,17 @@
     };
     version = "4.6.6";
   };
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz";
+      type = "gem";
+    };
+    version = "0.8.2";
+  };
   sentry-raven = {
     dependencies = ["faraday"];
     groups = ["default"];
@@ -787,6 +875,16 @@
     };
     version = "2.8.5";
   };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
   thread_safe = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -800,10 +898,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02p107kwx7jnkh6fpdgvaji0xdg6xkaarngkqjml6s4zny4m8slv";
+      sha256 = "08076cmdx0g51yrkd7dlxlr45nflink3jhdiq7006ljc2pc3212q";
       type = "gem";
     };
-    version = "0.11.0.0";
+    version = "0.13.0";
   };
   timecop = {
     source = {
@@ -819,10 +917,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.7";
+    version = "1.2.9";
   };
   unicode-display_width = {
     groups = ["default" "development" "test"];
@@ -850,9 +948,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
+      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.4.2";
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index a1a9df57f044..c86c63a5656a 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,12 +2,12 @@
 
 buildGoModule rec {
   pname = "gitlab-shell";
-  version = "13.14.0";
+  version = "13.17.0";
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "171c4rfffb73198fhlwk8rq7xy4b4zrnssi8c1wd0x82kqv6csb0";
+    sha256 = "sha256-wDZLcCBbWjG6wIcEj02eqwWVfAYy1TuAo/xvJB8tt+0=";
   };
 
   buildInputs = [ ruby ];
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 3e292632d4c4..ff34a2d35959 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -1,18 +1,22 @@
 { lib, fetchFromGitLab, git, buildGoModule }:
-
+let
+  data = (builtins.fromJSON (builtins.readFile ../data.json));
+in
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "8.58.2";
+  version = "13.10.2";
 
   src = fetchFromGitLab {
-    owner = "gitlab-org";
-    repo = "gitlab-workhorse";
-    rev = "v${version}";
-    sha256 = "1ks8rla6hm618dxhr41x1ckzk3jxv0f7vl2547f7f1fl3zqna1zp";
+    owner = data.owner;
+    repo = data.repo;
+    rev = data.rev;
+    sha256 = data.repo_hash;
   };
 
-  vendorSha256 = "0vkw12w7vr0g4hf4f0im79y7l36d3ah01n1vl7siy94si47g8ir5";
+  sourceRoot = "source/workhorse";
+
+  vendorSha256 = "sha256-UCkUSv1ZjDHmTFnETU8dz4moYRDCvy6AYTTfjHBGKeE=";
   buildInputs = [ git ];
   buildFlagsArray = "-ldflags=-X main.Version=${version}";
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
index fcb954e38843..83e3d7fe1414 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
@@ -1,8 +1,8 @@
 diff --git a/config/environments/production.rb b/config/environments/production.rb
-index c5cbfcf64c..4d01f6fab8 100644
+index d9b3ee354b0..1eb0507488b 100644
 --- a/config/environments/production.rb
 +++ b/config/environments/production.rb
-@@ -70,10 +70,10 @@ Rails.application.configure do
+@@ -69,10 +69,10 @@
  
    config.action_mailer.delivery_method = :sendmail
    # Defaults to:
@@ -11,17 +11,17 @@ index c5cbfcf64c..4d01f6fab8 100644
 -  # #   arguments: '-i -t'
 -  # # }
 +  config.action_mailer.sendmail_settings = {
-+    location: '/usr/sbin/sendmail',
++    location: '/run/wrappers/bin/sendmail',
 +    arguments: '-i -t'
 +  }
    config.action_mailer.perform_deliveries = true
    config.action_mailer.raise_delivery_errors = true
  
 diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
-index bd696a7f2c..44e3863736 100644
+index 92e7501d49d..4ee5a1127df 100644
 --- a/config/gitlab.yml.example
 +++ b/config/gitlab.yml.example
-@@ -590,7 +590,7 @@ production: &base
+@@ -1168,7 +1168,7 @@ production: &base
    # CAUTION!
    # Use the default values unless you really know what you are doing
    git:
@@ -31,10 +31,10 @@ index bd696a7f2c..44e3863736 100644
    ## Webpack settings
    # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running
 diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
-index 0bea8a4f4b..290248547b 100644
+index bbed08f5044..2906e5c44af 100644
 --- a/config/initializers/1_settings.rb
 +++ b/config/initializers/1_settings.rb
-@@ -177,7 +177,7 @@ Settings.gitlab['ssh_user'] ||= Settings.gitlab['user']
+@@ -183,7 +183,7 @@
  Settings.gitlab['user_home'] ||= begin
    Etc.getpwnam(Settings.gitlab['user']).dir
                                   rescue ArgumentError # no user configured
@@ -43,7 +43,7 @@ index 0bea8a4f4b..290248547b 100644
  end
  Settings.gitlab['time_zone'] ||= nil
  Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil?
-@@ -507,7 +507,7 @@ Settings.backup['upload']['storage_class'] ||= nil
+@@ -751,7 +751,7 @@
  # Git
  #
  Settings['git'] ||= Settingslogic.new({})
@@ -52,37 +52,94 @@ index 0bea8a4f4b..290248547b 100644
  
  # Important: keep the satellites.path setting until GitLab 9.0 at
  # least. This setting is fed to 'rm -rf' in
+diff --git a/config/puma.rb.example b/config/puma.rb.example
+index 9fc354a8fe8..2352ca9b58c 100644
+--- a/config/puma.rb.example
++++ b/config/puma.rb.example
+@@ -5,12 +5,8 @@
+ # The default is "config.ru".
+ #
+ rackup 'config.ru'
+-pidfile '/home/git/gitlab/tmp/pids/puma.pid'
+-state_path '/home/git/gitlab/tmp/pids/puma.state'
+-
+-stdout_redirect '/home/git/gitlab/log/puma.stdout.log',
+-  '/home/git/gitlab/log/puma.stderr.log',
+-  true
++pidfile ENV['PUMA_PATH'] + '/tmp/pids/puma.pid'
++state_path ENV['PUMA_PATH'] + '/tmp/pids/puma.state'
+ 
+ # Configure "min" to be the minimum number of threads to use to answer
+ # requests and "max" the maximum.
+@@ -31,12 +27,12 @@ queue_requests false
+ 
+ # Bind the server to "url". "tcp://", "unix://" and "ssl://" are the only
+ # accepted protocols.
+-bind 'unix:///home/git/gitlab/tmp/sockets/gitlab.socket'
++bind "unix://#{ENV['PUMA_PATH']}/tmp/sockets/gitlab.socket"
+ 
+ workers 3
+ 
+-require_relative "/home/git/gitlab/lib/gitlab/cluster/lifecycle_events"
+-require_relative "/home/git/gitlab/lib/gitlab/cluster/puma_worker_killer_initializer"
++require_relative ENV['GITLAB_PATH'] + "lib/gitlab/cluster/lifecycle_events"
++require_relative ENV['GITLAB_PATH'] + "lib/gitlab/cluster/puma_worker_killer_initializer"
+ 
+ on_restart do
+   # Signal application hooks that we're about to restart
+@@ -80,7 +76,7 @@ if defined?(nakayoshi_fork)
+ end
+ 
+ # Use json formatter
+-require_relative "/home/git/gitlab/lib/gitlab/puma_logging/json_formatter"
++require_relative ENV['GITLAB_PATH'] + "lib/gitlab/puma_logging/json_formatter"
+ 
+ json_formatter = Gitlab::PumaLogging::JSONFormatter.new
+ log_formatter do |str|
 diff --git a/lib/api/api.rb b/lib/api/api.rb
-index e953f3d2ec..3a8d9f076b 100644
+index ada0da28749..8a3f5824008 100644
 --- a/lib/api/api.rb
 +++ b/lib/api/api.rb
-@@ -2,7 +2,7 @@ module API
-   class API < Grape::API
+@@ -4,7 +4,7 @@ module API
+   class API < ::API::Base
      include APIGuard
  
 -    LOG_FILENAME = Rails.root.join("log", "api_json.log")
 +    LOG_FILENAME = File.join(ENV["GITLAB_LOG_PATH"], "api_json.log")
  
-     NO_SLASH_URL_PART_REGEX = %r{[^/]+}
-     PROJECT_ENDPOINT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze
+     NO_SLASH_URL_PART_REGEX = %r{[^/]+}.freeze
+     NAMESPACE_OR_PROJECT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze
+diff --git a/lib/gitlab/authorized_keys.rb b/lib/gitlab/authorized_keys.rb
+index 50cd15b7a10..3ac89e5b8e9 100644
+--- a/lib/gitlab/authorized_keys.rb
++++ b/lib/gitlab/authorized_keys.rb
+@@ -157,7 +157,7 @@ def command(id)
+         raise KeyError, "Invalid ID: #{id.inspect}"
+       end
+ 
+-      "#{File.join(Gitlab.config.gitlab_shell.path, 'bin', 'gitlab-shell')} #{id}"
++      "#{File.join('/run/current-system/sw/bin', 'gitlab-shell')} #{id}"
+     end
+ 
+     def strip(key)
 diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb
-index a42e312b5d..ccaab9229e 100644
+index 89a4e36a232..ae379ffb27a 100644
 --- a/lib/gitlab/logger.rb
 +++ b/lib/gitlab/logger.rb
-@@ -26,7 +26,7 @@ module Gitlab
+@@ -37,7 +37,7 @@ def self.build
      end
  
      def self.full_log_path
 -      Rails.root.join("log", file_name)
-+        File.join(ENV["GITLAB_LOG_PATH"], file_name)
++      File.join(ENV["GITLAB_LOG_PATH"], file_name)
      end
  
      def self.cache_key
 diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb
-index 7d7400bdab..cb25211d44 100644
+index e0e7084e27e..19fab855b90 100644
 --- a/lib/gitlab/uploads_transfer.rb
 +++ b/lib/gitlab/uploads_transfer.rb
-@@ -1,7 +1,7 @@
+@@ -3,7 +3,7 @@
  module Gitlab
    class UploadsTransfer < ProjectTransfer
      def root_dir
@@ -92,10 +149,10 @@ index 7d7400bdab..cb25211d44 100644
    end
  end
 diff --git a/lib/system_check/app/log_writable_check.rb b/lib/system_check/app/log_writable_check.rb
-index 3e0c436d6e..28cefc5514 100644
+index 2c108f0c18d..3a16ff52d01 100644
 --- a/lib/system_check/app/log_writable_check.rb
 +++ b/lib/system_check/app/log_writable_check.rb
-@@ -21,7 +21,7 @@ module SystemCheck
+@@ -23,7 +23,7 @@ def show_error
        private
  
        def log_path
@@ -105,10 +162,10 @@ index 3e0c436d6e..28cefc5514 100644
      end
    end
 diff --git a/lib/system_check/app/uploads_directory_exists_check.rb b/lib/system_check/app/uploads_directory_exists_check.rb
-index 7026d0ba07..c56e1f7ed9 100644
+index 54dff63ab61..882da702f29 100644
 --- a/lib/system_check/app/uploads_directory_exists_check.rb
 +++ b/lib/system_check/app/uploads_directory_exists_check.rb
-@@ -4,12 +4,13 @@ module SystemCheck
+@@ -6,12 +6,13 @@ class UploadsDirectoryExistsCheck < SystemCheck::BaseCheck
        set_name 'Uploads directory exists?'
  
        def check?
@@ -120,15 +177,15 @@ index 7026d0ba07..c56e1f7ed9 100644
 +        uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')
          try_fixing_it(
 -          "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads"
-+            "sudo -u #{gitlab_user} mkdir #{uploads_dir}"
++          "sudo -u #{gitlab_user} mkdir #{uploads_dir}"
          )
          for_more_information(
-           see_installation_guide_section 'GitLab'
+           see_installation_guide_section('GitLab')
 diff --git a/lib/system_check/app/uploads_path_permission_check.rb b/lib/system_check/app/uploads_path_permission_check.rb
-index 7df6c06025..bb447c16b2 100644
+index 2e1cc687c43..ca69d63bcf6 100644
 --- a/lib/system_check/app/uploads_path_permission_check.rb
 +++ b/lib/system_check/app/uploads_path_permission_check.rb
-@@ -25,7 +25,7 @@ module SystemCheck
+@@ -27,7 +27,7 @@ def show_error
        private
  
        def rails_uploads_path
@@ -138,10 +195,10 @@ index 7df6c06025..bb447c16b2 100644
  
        def uploads_fullpath
 diff --git a/lib/system_check/app/uploads_path_tmp_permission_check.rb b/lib/system_check/app/uploads_path_tmp_permission_check.rb
-index b276a81eac..070e3ebd81 100644
+index 567c7540777..29906b1c132 100644
 --- a/lib/system_check/app/uploads_path_tmp_permission_check.rb
 +++ b/lib/system_check/app/uploads_path_tmp_permission_check.rb
-@@ -33,7 +33,7 @@ module SystemCheck
+@@ -35,7 +35,7 @@ def upload_path_tmp
        end
  
        def uploads_fullpath
@@ -150,14 +207,3 @@ index b276a81eac..070e3ebd81 100644
        end
      end
    end
---- a/lib/gitlab/authorized_keys.rb
-+++ b/lib/gitlab/authorized_keys.rb
-@@ -157,7 +157,7 @@
-         raise KeyError, "Invalid ID: #{id.inspect}"
-       end
- 
--      "#{File.join(Gitlab.config.gitlab_shell.path, 'bin', 'gitlab-shell')} #{id}"
-+      "#{File.join('/run/current-system/sw/bin', 'gitlab-shell')} #{id}"
-     end
- 
-     def strip(key)
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index 49d0841be3cd..af00e6e7af67 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -1,38 +1,37 @@
+# frozen_string_literal: true
+
 source 'https://rubygems.org'
 
 gem 'rails', '~> 6.0.3.1'
 
 gem 'bootsnap', '~> 1.4.6'
 
-# Improves copy-on-write performance for MRI
-gem 'nakayoshi_fork', '~> 0.0.4'
-
 # Responders respond_to and respond_with
 gem 'responders', '~> 3.0'
 
 gem 'sprockets', '~> 3.7.0'
 
 # Default values for AR models
-gem 'default_value_for', '~> 3.3.0'
+gem 'default_value_for', '~> 3.4.0'
 
 # Supported DBs
 gem 'pg', '~> 1.1'
 
-gem 'rugged', '~> 0.28'
-gem 'grape-path-helpers', '~> 1.5'
+gem 'rugged', '~> 1.1'
+gem 'grape-path-helpers', '~> 1.6.1'
 
 gem 'faraday', '~> 1.0'
-gem 'marginalia', '~> 1.9.0'
+gem 'marginalia', '~> 1.10.0'
 
 # Authentication libraries
 gem 'devise', '~> 4.7.2'
-# TODO: verify ARM compile issue on 3.1.13+ version (see https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18828)
-gem 'bcrypt', '3.1.12'
-gem 'doorkeeper', '~> 5.3.0'
-gem 'doorkeeper-openid_connect', '~> 1.7.4'
+gem 'bcrypt', '~> 3.1', '>= 3.1.14'
+gem 'doorkeeper', '~> 5.5.0.rc2'
+gem 'doorkeeper-openid_connect', '~> 1.7.5'
 gem 'omniauth', '~> 1.8'
 gem 'omniauth-auth0', '~> 2.0.0'
-gem 'omniauth-azure-oauth2', '~> 0.0.9'
+gem 'omniauth-azure-activedirectory-v2', '~> 0.1'
+gem 'omniauth-azure-oauth2', '~> 0.0.9' # Deprecated v1 version
 gem 'omniauth-cas3', '~> 1.1.4'
 gem 'omniauth-facebook', '~> 4.0.0'
 gem 'omniauth-github', '~> 1.4'
@@ -57,7 +56,7 @@ gem 'gssapi', group: :kerberos
 # Spam and anti-bot protection
 gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails'
 gem 'akismet', '~> 3.0'
-gem 'invisible_captcha', '~> 0.12.1'
+gem 'invisible_captcha', '~> 1.1.0'
 
 # Two-factor authentication
 gem 'devise-two-factor', '~> 3.1.0'
@@ -74,6 +73,9 @@ gem 'acme-client', '~> 2.0', '>= 2.0.6'
 # Browser detection
 gem 'browser', '~> 4.2'
 
+# OS detection for usage ping
+gem 'ohai', '~> 16.10'
+
 # GPG
 gem 'gpgme', '~> 2.0.19'
 
@@ -81,17 +83,15 @@ gem 'gpgme', '~> 2.0.19'
 # GitLab fork with several improvements to original library. For full list of changes
 # see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
 gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap'
-gem 'net-ldap'
+gem 'net-ldap', '~> 0.16.3'
 
 # API
-# Locked at Grape v1.4.0 until https://github.com/ruby-grape/grape/pull/2088 is merged
-# Remove config/initializers/grape_patch.rb
-gem 'grape', '= 1.4.0'
+gem 'grape', '~> 1.5.2'
 gem 'grape-entity', '~> 0.7.1'
 gem 'rack-cors', '~> 1.0.6', require: 'rack/cors'
 
 # GraphQL API
-gem 'graphql', '~> 1.11.4'
+gem 'graphql', '~> 1.11.8'
 # NOTE: graphiql-rails v1.5+ doesn't work: https://gitlab.com/gitlab-org/gitlab/issues/31771
 # TODO: remove app/views/graphiql/rails/editors/show.html.erb when https://github.com/rmosolgo/graphiql-rails/pull/71 is released:
 # https://gitlab.com/gitlab-org/gitlab/issues/31747
@@ -108,23 +108,23 @@ gem 'hashie-forbidden_attributes'
 gem 'kaminari', '~> 1.0'
 
 # HAML
-gem 'hamlit', '~> 2.11.0'
+gem 'hamlit', '~> 2.14.4'
 
 # Files attachments
 gem 'carrierwave', '~> 1.3'
 gem 'mini_magick', '~> 4.10.1'
 
 # for backups
-gem 'fog-aws', '~> 3.7'
+gem 'fog-aws', '~> 3.9'
 # Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
 # Also see config/initializers/fog_core_patch.rb.
 gem 'fog-core', '= 2.1.0'
-gem 'fog-google', '~> 1.12'
+gem 'gitlab-fog-google', '~> 1.13', require: 'fog/google'
 gem 'fog-local', '~> 0.6'
 gem 'fog-openstack', '~> 1.0'
 gem 'fog-rackspace', '~> 0.1.1'
 gem 'fog-aliyun', '~> 0.3'
-gem 'gitlab-fog-azure-rm', '~> 1.0', require: false
+gem 'gitlab-fog-azure-rm', '~> 1.0.1', require: false
 
 # for Google storage
 gem 'google-api-client', '~> 0.33'
@@ -145,7 +145,7 @@ gem 'aws-sdk-s3', '~> 1'
 gem 'faraday_middleware-aws-sigv4', '~>0.3.0'
 
 # Markdown and HTML processing
-gem 'html-pipeline', '~> 2.12'
+gem 'html-pipeline', '~> 2.13.2'
 gem 'deckar01-task_list', '2.3.1'
 gem 'gitlab-markup', '~> 1.7.1'
 gem 'github-markup', '~> 1.7.0', require: 'github/markup'
@@ -159,11 +159,11 @@ gem 'wikicloth', '0.8.1'
 gem 'asciidoctor', '~> 2.0.10'
 gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
 gem 'asciidoctor-plantuml', '~> 0.0.12'
-gem 'asciidoctor-kroki', '~> 0.2.2', require: false
+gem 'asciidoctor-kroki', '~> 0.4.0', require: false
 gem 'rouge', '~> 3.26.0'
 gem 'truncato', '~> 0.7.11'
 gem 'bootstrap_form', '~> 4.2.0'
-gem 'nokogiri', '~> 1.10.9'
+gem 'nokogiri', '~> 1.11.1'
 gem 'escape_utils', '~> 1.1'
 
 # Calendar rendering
@@ -184,21 +184,21 @@ group :unicorn do
 end
 
 group :puma do
-  gem 'gitlab-puma', '~> 4.3.3.gitlab.2', require: false
-  gem 'gitlab-puma_worker_killer', '~> 0.1.1.gitlab.1', require: false
+  gem 'puma', '~> 5.1.1', require: false
+  gem 'puma_worker_killer', '~> 0.3.1', require: false
 end
 
 # State machine
-gem 'state_machines-activerecord', '~> 0.6.0'
+gem 'state_machines-activerecord', '~> 0.8.0'
 
 # Issue tags
-gem 'acts-as-taggable-on', '~> 6.0'
+gem 'acts-as-taggable-on', '~> 7.0'
 
 # Background jobs
 gem 'sidekiq', '~> 5.2.7'
 gem 'sidekiq-cron', '~> 1.0'
 gem 'redis-namespace', '~> 1.7.0'
-gem 'gitlab-sidekiq-fetcher', '0.5.2', require: 'sidekiq-reliable-fetch'
+gem 'gitlab-sidekiq-fetcher', '0.5.5', require: 'sidekiq-reliable-fetch'
 
 # Cron Parser
 gem 'fugit', '~> 1.2.1'
@@ -236,13 +236,10 @@ gem 'connection_pool', '~> 2.0'
 gem 'redis-rails', '~> 5.0.2'
 
 # Discord integration
-gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
-
-# HipChat integration
-gem 'hipchat', '~> 1.5.0'
+gem 'discordrb-webhooks', '~> 3.4', require: false
 
 # Jira integration
-gem 'jira-ruby', '~> 2.0.0'
+gem 'jira-ruby', '~> 2.1.4'
 gem 'atlassian-jwt', '~> 0.2.0'
 
 # Flowdock integration
@@ -255,7 +252,7 @@ gem 'slack-messenger', '~> 2.3.4'
 gem 'hangouts-chat', '~> 0.0.5'
 
 # Asana integration
-gem 'asana', '0.10.2'
+gem 'asana', '~> 0.10.3'
 
 # FogBugz integration
 gem 'ruby-fogbugz', '~> 0.2.1'
@@ -271,13 +268,16 @@ gem 'babosa', '~> 1.0.2'
 gem 'loofah', '~> 2.2'
 
 # Working with license
-gem 'licensee', '~> 8.9'
+gem 'licensee', '~> 9.14.1'
 
 # Detect and convert string character encoding
 gem 'charlock_holmes', '~> 0.7.7'
 
 # Detect mime content type from content
-gem 'mimemagic', '~> 0.3.2'
+gem 'ruby-magic-static', '~> 0.3.4'
+
+# Fake version of the gem to trick bundler
+gem 'mimemagic', '~> 0.3.10'
 
 # Faster blank
 gem 'fast_blank'
@@ -289,6 +289,7 @@ gem 'gitlab_chronic_duration', '~> 0.10.6.2'
 gem 'rack-proxy', '~> 0.6.0'
 
 gem 'sassc-rails', '~> 2.1.0'
+gem 'autoprefixer-rails', '10.2.0.0'
 gem 'terser', '1.0.2'
 
 gem 'addressable', '~> 2.7'
@@ -297,7 +298,7 @@ gem 'gon', '~> 6.2'
 gem 'request_store', '~> 1.5'
 gem 'base32', '~> 0.3.0'
 
-gem "gitlab-license", "~> 1.0"
+gem "gitlab-license", "~> 1.3"
 
 # Protect against bruteforcing
 gem 'rack-attack', '~> 6.3.0'
@@ -306,12 +307,15 @@ gem 'rack-attack', '~> 6.3.0'
 gem 'sentry-raven', '~> 3.0'
 
 # PostgreSQL query parsing
-gem 'gitlab-pg_query', '~> 1.3', require: 'pg_query'
+gem 'pg_query', '~> 1.3.0'
 
 gem 'premailer-rails', '~> 1.10.3'
 
 # LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '0.13.3'
+gem 'gitlab-labkit', '~> 0.16.1'
+# Thrift is a dependency of gitlab-labkit, we want a version higher than 0.14.0
+# because of https://gitlab.com/gitlab-org/gitlab/-/issues/321900
+gem 'thrift', '>= 0.14.0'
 
 # I18n
 gem 'ruby_parser', '~> 3.15', require: false
@@ -320,7 +324,7 @@ gem 'gettext_i18n_rails', '~> 1.8.0'
 gem 'gettext_i18n_rails_js', '~> 1.3'
 gem 'gettext', '~> 3.3', require: false, group: :development
 
-gem 'batch-loader', '~> 1.4.0'
+gem 'batch-loader', '~> 2.0.1'
 
 # Perf bar
 gem 'peek', '~> 1.1'
@@ -331,6 +335,7 @@ gem 'snowplow-tracker', '~> 0.6.1'
 # Metrics
 group :metrics do
   gem 'method_source', '~> 1.0', require: false
+  gem 'webrick', '~> 1.6.1', require: false
 
   # Prometheus
   gem 'prometheus-client-mmap', '~> 0.12.0'
@@ -339,7 +344,7 @@ end
 
 group :development do
   gem 'brakeman', '~> 4.2', require: false
-  gem 'danger', '~> 8.0.6', require: false
+  gem 'lefthook', '~> 0.7', require: false
 
   gem 'letter_opener_web', '~> 1.3.4'
 
@@ -347,20 +352,21 @@ group :development do
   gem 'better_errors', '~> 2.7.1'
 
   # thin instead webrick
-  gem 'thin', '~> 1.7.0'
+  gem 'thin', '~> 1.8.0'
 end
 
 group :development, :test do
   gem 'deprecation_toolkit', '~> 1.5.1', require: false
-  gem 'bullet', '~> 6.1.0'
-  gem 'pry-byebug', '~> 3.9.0', platform: :mri
+  gem 'bullet', '~> 6.1.3'
+  gem 'gitlab-pry-byebug', platform: :mri, require: ['pry-byebug', 'pry-byebug/pry_remote_ext']
   gem 'pry-rails', '~> 0.3.9'
+  gem 'pry-remote'
 
   gem 'awesome_print', require: false
 
   gem 'database_cleaner', '~> 1.7.0'
-  gem 'factory_bot_rails', '~> 5.1.0'
-  gem 'rspec-rails', '~> 4.0.0'
+  gem 'factory_bot_rails', '~> 6.1.0'
+  gem 'rspec-rails', '~> 4.0.2'
 
   # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
   gem 'minitest', '~> 5.11.0'
@@ -371,11 +377,10 @@ group :development, :test do
   gem 'spring', '~> 2.1.0'
   gem 'spring-commands-rspec', '~> 1.0.4'
 
-  gem 'gitlab-styles', '~> 5.3.0', require: false
+  gem 'gitlab-styles', '~> 6.1.0', require: false
 
-  gem 'scss_lint', '~> 0.59.0', require: false
   gem 'haml_lint', '~> 0.36.0', require: false
-  gem 'bundler-audit', '~> 0.6.1', require: false
+  gem 'bundler-audit', '~> 0.7.0.1', require: false
 
   gem 'benchmark-ips', '~> 2.3.0', require: false
 
@@ -393,6 +398,11 @@ group :development, :test do
   gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
 end
 
+group :development, :test, :danger do
+  gem 'danger-gitlab', '~> 8.0', require: false
+  gem 'gitlab-dangerfiles', '~> 0.8.0', require: false
+end
+
 group :development, :test, :coverage do
   gem 'simplecov', '~> 0.18.5', require: false
   gem 'simplecov-cobertura', '~> 1.3.1', require: false
@@ -409,7 +419,7 @@ group :test do
   gem 'rspec_profiling', '~> 0.0.6'
   gem 'rspec-parameterized', require: false
 
-  gem 'capybara', '~> 3.33.0'
+  gem 'capybara', '~> 3.34.0'
   gem 'capybara-screenshot', '~> 1.0.22'
   gem 'selenium-webdriver', '~> 3.142'
 
@@ -429,7 +439,7 @@ end
 gem 'octokit', '~> 4.15'
 
 # https://gitlab.com/gitlab-org/gitlab/issues/207207
-gem 'gitlab-mail_room', '~> 0.0.8', require: 'mail_room'
+gem 'gitlab-mail_room', '~> 0.0.9', require: 'mail_room'
 
 gem 'email_reply_trimmer', '~> 0.1'
 gem 'html2text'
@@ -465,7 +475,7 @@ group :ed25519 do
 end
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 13.7.0.pre.rc1'
+gem 'gitaly', '~> 13.9.0.pre.rc1'
 
 gem 'grpc', '~> 1.30.2'
 
@@ -478,7 +488,7 @@ gem 'flipper', '~> 0.17.1'
 gem 'flipper-active_record', '~> 0.17.1'
 gem 'flipper-active_support_cache_store', '~> 0.17.1'
 gem 'unleash', '~> 0.1.5'
-gem 'gitlab-experiment', '~> 0.4.4'
+gem 'gitlab-experiment', '~> 0.5.0'
 
 # Structured logging
 gem 'lograge', '~> 0.5'
@@ -520,3 +530,5 @@ gem 'webauthn', '~> 2.3'
 
 # IPAddress utilities
 gem 'ipaddress', '~> 0.8.3'
+
+gem 'parslet', '~> 1.8'
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 1cd90080fd87..203d52ddb674 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -5,66 +5,66 @@ GEM
     abstract_type (0.0.7)
     acme-client (2.0.6)
       faraday (>= 0.17, < 2.0.0)
-    actioncable (6.0.3.3)
-      actionpack (= 6.0.3.3)
+    actioncable (6.0.3.4)
+      actionpack (= 6.0.3.4)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      activejob (= 6.0.3.3)
-      activerecord (= 6.0.3.3)
-      activestorage (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionmailbox (6.0.3.4)
+      actionpack (= 6.0.3.4)
+      activejob (= 6.0.3.4)
+      activerecord (= 6.0.3.4)
+      activestorage (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       mail (>= 2.7.1)
-    actionmailer (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      actionview (= 6.0.3.3)
-      activejob (= 6.0.3.3)
+    actionmailer (6.0.3.4)
+      actionpack (= 6.0.3.4)
+      actionview (= 6.0.3.4)
+      activejob (= 6.0.3.4)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.0.3.3)
-      actionview (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionpack (6.0.3.4)
+      actionview (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actiontext (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      activerecord (= 6.0.3.3)
-      activestorage (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actiontext (6.0.3.4)
+      actionpack (= 6.0.3.4)
+      activerecord (= 6.0.3.4)
+      activestorage (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       nokogiri (>= 1.8.5)
-    actionview (6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionview (6.0.3.4)
+      activesupport (= 6.0.3.4)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activejob (6.0.3.3)
-      activesupport (= 6.0.3.3)
+    activejob (6.0.3.4)
+      activesupport (= 6.0.3.4)
       globalid (>= 0.3.6)
-    activemodel (6.0.3.3)
-      activesupport (= 6.0.3.3)
-    activerecord (6.0.3.3)
-      activemodel (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    activemodel (6.0.3.4)
+      activesupport (= 6.0.3.4)
+    activerecord (6.0.3.4)
+      activemodel (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
     activerecord-explain-analyze (0.1.0)
       activerecord (>= 4)
       pg
-    activestorage (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      activejob (= 6.0.3.3)
-      activerecord (= 6.0.3.3)
+    activestorage (6.0.3.4)
+      actionpack (= 6.0.3.4)
+      activejob (= 6.0.3.4)
+      activerecord (= 6.0.3.4)
       marcel (~> 0.3.1)
-    activesupport (6.0.3.3)
+    activesupport (6.0.3.4)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
       tzinfo (~> 1.1)
       zeitwerk (~> 2.2, >= 2.2.2)
-    acts-as-taggable-on (6.5.0)
-      activerecord (>= 5.0, < 6.1)
+    acts-as-taggable-on (7.0.0)
+      activerecord (>= 5.0, < 6.2)
     adamantium (0.2.0)
       ice_nine (~> 0.11.0)
       memoizable (~> 0.4.0)
@@ -76,24 +76,26 @@ GEM
     apollo_upload_server (2.0.2)
       graphql (>= 1.8)
       rails (>= 4.2)
-    asana (0.10.2)
+    asana (0.10.3)
       faraday (~> 1.0)
       faraday_middleware (~> 1.0)
       faraday_middleware-multi_json (~> 0.0)
       oauth2 (~> 1.4)
-    asciidoctor (2.0.10)
+    asciidoctor (2.0.12)
     asciidoctor-include-ext (0.3.1)
       asciidoctor (>= 1.5.6, < 3.0.0)
-    asciidoctor-kroki (0.2.2)
+    asciidoctor-kroki (0.4.0)
       asciidoctor (~> 2.0)
     asciidoctor-plantuml (0.0.12)
       asciidoctor (>= 1.5.6, < 3.0.0)
-    ast (2.4.1)
+    ast (2.4.2)
     atlassian-jwt (0.2.0)
       jwt (~> 2.1.0)
     attr_encrypted (3.1.0)
       encryptor (~> 3.0.0)
     attr_required (1.0.1)
+    autoprefixer-rails (10.2.0.0)
+      execjs
     awesome_print (1.8.0)
     awrence (1.1.1)
     aws-eventstream (1.1.0)
@@ -115,17 +117,18 @@ GEM
       aws-sigv4 (~> 1.1)
     aws-sigv4 (1.2.1)
       aws-eventstream (~> 1, >= 1.0.2)
-    azure-storage-blob (2.0.0)
+    azure-storage-blob (2.0.1)
       azure-storage-common (~> 2.0)
-      nokogiri (~> 1.10.4)
-    azure-storage-common (2.0.1)
+      nokogiri (~> 1.11.0.rc2)
+    azure-storage-common (2.0.2)
       faraday (~> 1.0)
       faraday_middleware (~> 1.0.0.rc1)
-      nokogiri (~> 1.10.4)
+      net-http-persistent (~> 4.0)
+      nokogiri (~> 1.11.0.rc2)
     babosa (1.0.2)
     base32 (0.3.2)
-    batch-loader (1.4.0)
-    bcrypt (3.1.12)
+    batch-loader (2.0.1)
+    bcrypt (3.1.16)
     bcrypt_pbkdf (1.0.0)
     benchmark-ips (2.3.0)
     benchmark-memory (0.1.2)
@@ -144,14 +147,14 @@ GEM
     brakeman (4.2.1)
     browser (4.2.0)
     builder (3.2.4)
-    bullet (6.1.0)
+    bullet (6.1.3)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
-    bundler-audit (0.6.1)
+    bundler-audit (0.7.0.1)
       bundler (>= 1.2.0, < 3)
-      thor (~> 0.18)
+      thor (>= 0.18, < 2)
     byebug (11.1.3)
-    capybara (3.33.0)
+    capybara (3.34.0)
       addressable
       mini_mime (>= 0.1.3)
       nokogiri (~> 1.8)
@@ -169,6 +172,14 @@ GEM
     cbor (0.5.9.6)
     character_set (1.4.0)
     charlock_holmes (0.7.7)
+    chef-config (16.10.17)
+      addressable
+      chef-utils (= 16.10.17)
+      fuzzyurl
+      mixlib-config (>= 2.2.12, < 4.0)
+      mixlib-shellout (>= 2.0, < 4.0)
+      tomlrb (~> 1.2)
+    chef-utils (16.10.17)
     childprocess (3.0.0)
     chunky_png (1.3.5)
     citrus (3.0.2)
@@ -184,7 +195,7 @@ GEM
     concord (0.1.5)
       adamantium (~> 0.2.0)
       equalizer (~> 0.0.9)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     connection_pool (2.2.2)
     contracts (0.11.0)
     cork (0.3.0)
@@ -204,8 +215,8 @@ GEM
       git
     css_parser (1.7.0)
       addressable
-    daemons (1.2.6)
-    danger (8.0.6)
+    daemons (1.3.1)
+    danger (8.2.3)
       claide (~> 1.0)
       claide-plugins (>= 0.9.2)
       colored2 (~> 3.1)
@@ -217,28 +228,30 @@ GEM
       kramdown-parser-gfm (~> 1.0)
       no_proxy_fix
       octokit (~> 4.7)
-      terminal-table (~> 1)
+      terminal-table (>= 1, < 4)
+    danger-gitlab (8.0.0)
+      danger
+      gitlab (~> 4.2, >= 4.2.0)
     database_cleaner (1.7.0)
     debugger-ruby_core_source (1.3.8)
     deckar01-task_list (2.3.1)
       html-pipeline
     declarative (0.0.20)
     declarative-option (0.1.0)
-    default_value_for (3.3.0)
-      activerecord (>= 3.2.0, < 6.1)
+    default_value_for (3.4.0)
+      activerecord (>= 3.2.0, < 7.0)
     deprecation_toolkit (1.5.1)
       activesupport (>= 4.2)
-    derailed_benchmarks (1.7.0)
+    derailed_benchmarks (1.8.1)
       benchmark-ips (~> 2)
       get_process_mem (~> 0)
       heapy (~> 0)
       memory_profiler (~> 0)
-      mini_histogram (~> 0)
+      mini_histogram (>= 0.2.1)
       rack (>= 1)
       rake (> 10, < 14)
       ruby-statistics (>= 2.1)
       thor (>= 0.19, < 2)
-      unicode_plot (>= 0.0.4, < 1.0.0)
     device_detector (1.0.0)
     devise (4.7.3)
       bcrypt (~> 3.0)
@@ -252,34 +265,33 @@ GEM
       devise (~> 4.0)
       railties (< 6.1)
       rotp (~> 2.0)
-    diff-lcs (1.3)
+    diff-lcs (1.4.4)
     diff_match_patch (0.1.0)
     diffy (3.3.0)
-    discordrb-webhooks-blackst0ne (3.3.0)
-      rest-client (~> 2.0)
+    discordrb-webhooks (3.4.2)
+      rest-client (>= 2.0.0)
     docile (1.3.2)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
-    doorkeeper (5.3.3)
+    doorkeeper (5.5.0.rc2)
       railties (>= 5)
-    doorkeeper-openid_connect (1.7.4)
+    doorkeeper-openid_connect (1.7.5)
       doorkeeper (>= 5.2, < 5.5)
       json-jwt (>= 1.11.0)
-    dry-configurable (0.11.5)
+    dotenv (2.7.6)
+    dry-configurable (0.12.0)
       concurrent-ruby (~> 1.0)
-      dry-core (~> 0.4, >= 0.4.7)
-      dry-equalizer (~> 0.2)
+      dry-core (~> 0.5, >= 0.5.0)
     dry-container (0.7.2)
       concurrent-ruby (~> 1.0)
       dry-configurable (~> 0.1, >= 0.1.3)
-    dry-core (0.4.9)
+    dry-core (0.5.0)
       concurrent-ruby (~> 1.0)
     dry-equalizer (0.3.0)
     dry-inflector (0.2.0)
-    dry-logic (1.0.6)
+    dry-logic (1.1.0)
       concurrent-ruby (~> 1.0)
-      dry-core (~> 0.2)
-      dry-equalizer (~> 0.2)
+      dry-core (~> 0.5, >= 0.5)
     dry-types (1.4.0)
       concurrent-ruby (~> 1.0)
       dry-container (~> 0.3)
@@ -309,7 +321,6 @@ GEM
       launchy (~> 2.1)
       mail (~> 2.7)
     encryptor (3.0.0)
-    enumerable-statistics (2.0.1)
     equalizer (0.0.11)
     erubi (1.9.0)
     escape_utils (1.2.1)
@@ -321,11 +332,11 @@ GEM
     expression_parser (0.9.0)
     extended-markdown-filter (0.6.0)
       html-pipeline (~> 2.0)
-    factory_bot (5.1.0)
-      activesupport (>= 4.2.0)
-    factory_bot_rails (5.1.0)
-      factory_bot (~> 5.1.0)
-      railties (>= 4.2.0)
+    factory_bot (6.1.0)
+      activesupport (>= 5.0.0)
+    factory_bot_rails (6.1.0)
+      factory_bot (~> 6.1.0)
+      railties (>= 5.0.0)
     faraday (1.0.1)
       multipart-post (>= 1.2, < 3)
     faraday-cookie_jar (0.0.7)
@@ -348,6 +359,8 @@ GEM
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
+    ffi-yajl (2.3.4)
+      libyajl2 (~> 1.2)
     flipper (0.17.1)
     flipper-active_record (0.17.1)
       activerecord (>= 4.2, < 7)
@@ -363,7 +376,7 @@ GEM
       fog-json
       ipaddress (~> 0.8)
       xml-simple (~> 1.1)
-    fog-aws (3.7.0)
+    fog-aws (3.9.0)
       fog-core (~> 2.1)
       fog-json (~> 1.1)
       fog-xml (~> 0.1)
@@ -373,12 +386,6 @@ GEM
       excon (~> 0.58)
       formatador (~> 0.2)
       mime-types
-    fog-google (1.12.0)
-      fog-core (<= 2.1.0)
-      fog-json (~> 1.2)
-      fog-xml (~> 0.1.0)
-      google-api-client (>= 0.44.2, < 0.51)
-      google-cloud-env (~> 1.2)
     fog-json (1.2.0)
       fog-core
       multi_json (~> 1.10)
@@ -403,6 +410,7 @@ GEM
     fuubar (2.2.0)
       rspec-core (~> 3.0)
       ruby-progressbar (~> 1.4)
+    fuzzyurl (0.9.0)
     gemoji (3.0.1)
     gemojione (3.3.0)
       json
@@ -420,46 +428,55 @@ GEM
       rails (>= 3.2.0)
     git (1.7.0)
       rchardet (~> 1.8)
-    gitaly (13.7.0.pre.rc1)
+    gitaly (13.9.0.pre.rc1)
       grpc (~> 1.0)
     github-markup (1.7.0)
+    gitlab (4.16.1)
+      httparty (~> 0.14, >= 0.14.0)
+      terminal-table (~> 1.5, >= 1.5.1)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-experiment (0.4.4)
+    gitlab-dangerfiles (0.8.0)
+      danger
+    gitlab-experiment (0.5.0)
       activesupport (>= 3.0)
       scientist (~> 1.5, >= 1.5.0)
-    gitlab-fog-azure-rm (1.0.0)
+    gitlab-fog-azure-rm (1.0.1)
       azure-storage-blob (~> 2.0)
       azure-storage-common (~> 2.0)
       fog-core (= 2.1.0)
       fog-json (~> 1.2.0)
       mime-types
       ms_rest_azure (~> 0.12.0)
-    gitlab-labkit (0.13.3)
-      actionpack (>= 5.0.0, < 6.1.0)
-      activesupport (>= 5.0.0, < 6.1.0)
-      gitlab-pg_query (~> 1.3)
+    gitlab-fog-google (1.13.0)
+      addressable (>= 2.7.0)
+      fog-core (<= 2.1.0)
+      fog-json (~> 1.2)
+      fog-xml (~> 0.1.0)
+      google-api-client (>= 0.44.2, < 0.51)
+      google-cloud-env (~> 1.2)
+    gitlab-labkit (0.16.1)
+      actionpack (>= 5.0.0, < 7.0.0)
+      activesupport (>= 5.0.0, < 7.0.0)
       grpc (~> 1.19)
       jaeger-client (~> 1.1)
       opentracing (~> 0.4)
+      pg_query (~> 1.3)
       redis (> 3.0.0, < 5.0.0)
-    gitlab-license (1.0.0)
-    gitlab-mail_room (0.0.8)
+    gitlab-license (1.3.1)
+    gitlab-mail_room (0.0.9)
     gitlab-markup (1.7.1)
     gitlab-net-dns (0.9.1)
-    gitlab-pg_query (1.3.0)
-    gitlab-puma (4.3.5.gitlab.3)
-      nio4r (~> 2.0)
-    gitlab-puma_worker_killer (0.1.1.gitlab.1)
-      get_process_mem (~> 0.2)
-      gitlab-puma (>= 2.7, < 5)
-    gitlab-sidekiq-fetcher (0.5.2)
+    gitlab-pry-byebug (3.9.0)
+      byebug (~> 11.0)
+      pry (~> 0.13.0)
+    gitlab-sidekiq-fetcher (0.5.5)
       sidekiq (~> 5)
-    gitlab-styles (5.3.0)
-      rubocop (~> 0.89.1)
-      rubocop-gitlab-security (~> 0.1.0)
-      rubocop-performance (~> 1.8.1)
-      rubocop-rails (~> 2.8)
+    gitlab-styles (6.1.0)
+      rubocop (~> 0.91, >= 0.91.1)
+      rubocop-gitlab-security (~> 0.1.1)
+      rubocop-performance (~> 1.9.2)
+      rubocop-rails (~> 2.9)
       rubocop-rspec (~> 1.44)
     gitlab_chronic_duration (0.10.6.2)
       numerizer (~> 0.2)
@@ -497,7 +514,7 @@ GEM
       signet (~> 0.14)
     gpgme (2.0.20)
       mini_portile2 (~> 2.3)
-    grape (1.4.0)
+    grape (1.5.2)
       activesupport
       builder
       dry-types (>= 1.1)
@@ -507,10 +524,11 @@ GEM
     grape-entity (0.7.1)
       activesupport (>= 4.0)
       multi_json (>= 1.3.2)
-    grape-path-helpers (1.5.0)
+    grape-path-helpers (1.6.1)
       activesupport
       grape (~> 1.3)
       rake (> 12)
+      ruby2_keywords (~> 0.0.2)
     grape_logging (1.8.3)
       grape
       rack
@@ -521,7 +539,7 @@ GEM
       faraday (>= 1.0)
       faraday_middleware
       graphql-client
-    graphql (1.11.4)
+    graphql (1.11.8)
     graphql-client (0.16.0)
       activesupport (>= 3.0)
       graphql (~> 1.8)
@@ -561,7 +579,7 @@ GEM
       rainbow
       rubocop (>= 0.50.0)
       sysexits (~> 1.1)
-    hamlit (2.11.0)
+    hamlit (2.14.4)
       temple (>= 0.8.2)
       thor
       tilt
@@ -573,11 +591,9 @@ GEM
       hashie (>= 3.0)
     health_check (3.0.0)
       railties (>= 5.0)
-    heapy (0.1.4)
-    hipchat (1.5.2)
-      httparty
-      mimemagic
-    html-pipeline (2.12.2)
+    heapy (0.2.0)
+      thor
+    html-pipeline (2.13.2)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     html2text (0.2.0)
@@ -598,18 +614,18 @@ GEM
       mime-types (~> 3.0)
       multi_xml (>= 0.5.2)
     httpclient (2.8.3)
-    i18n (1.8.5)
+    i18n (1.8.9)
       concurrent-ruby (~> 1.0)
     i18n_data (0.8.0)
     icalendar (2.4.1)
     ice_nine (0.11.2)
-    invisible_captcha (0.12.1)
-      rails (>= 3.2.0)
+    invisible_captcha (1.1.0)
+      rails (>= 4.2)
     ipaddress (0.8.3)
     jaeger-client (1.1.0)
       opentracing (~> 0.3)
       thrift
-    jira-ruby (2.0.0)
+    jira-ruby (2.1.4)
       activesupport
       atlassian-jwt
       multipart-post
@@ -661,12 +677,14 @@ GEM
       rest-client (~> 2.0)
     launchy (2.4.3)
       addressable (~> 2.3)
+    lefthook (0.7.2)
     letter_opener (1.7.0)
       launchy (~> 2.2)
     letter_opener_web (1.3.4)
       actionmailer (>= 3.2)
       letter_opener (~> 1.0)
       railties (>= 3.2)
+    libyajl2 (1.2.0)
     license_finder (6.0.0)
       bundler
       rubyzip (>= 1, < 3)
@@ -674,8 +692,12 @@ GEM
       toml (= 0.2.0)
       with_env (= 1.1.0)
       xml-simple
-    licensee (8.9.2)
-      rugged (~> 0.24)
+    licensee (9.14.1)
+      dotenv (~> 2.0)
+      octokit (~> 4.17)
+      reverse_markdown (~> 1.0)
+      rugged (>= 0.24, < 2.0)
+      thor (>= 0.19, < 2.0)
     listen (3.2.1)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
@@ -686,7 +708,7 @@ GEM
       activesupport (>= 4)
       railties (>= 4)
       request_store (~> 1.0)
-    loofah (2.7.0)
+    loofah (2.8.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     lru_redux (1.1.0)
@@ -695,7 +717,7 @@ GEM
       mini_mime (>= 0.1.1)
     marcel (0.3.3)
       mimemagic (~> 0.3.2)
-    marginalia (1.9.0)
+    marginalia (1.10.0)
       actionpack (>= 2.3)
       activerecord (>= 2.3)
     memoist (0.16.2)
@@ -706,12 +728,20 @@ GEM
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2020.0512)
-    mimemagic (0.3.5)
-    mini_histogram (0.1.3)
+    mimemagic (0.3.10)
+      nokogiri (~> 1)
+      rake
+    mini_histogram (0.3.1)
     mini_magick (4.10.1)
     mini_mime (1.0.2)
-    mini_portile2 (2.4.0)
+    mini_portile2 (2.5.0)
     minitest (5.11.3)
+    mixlib-cli (2.1.8)
+    mixlib-config (3.0.9)
+      tomlrb
+    mixlib-log (3.0.9)
+    mixlib-shellout (3.2.5)
+      chef-utils
     ms_rest (0.7.6)
       concurrent-ruby (~> 1.0)
       faraday (>= 0.9, < 2.0.0)
@@ -730,17 +760,21 @@ GEM
       ruby2_keywords (~> 0.0.1)
     mustermann-grape (1.0.1)
       mustermann (>= 1.0.0)
-    nakayoshi_fork (0.0.4)
     nap (1.1.0)
     nenv (0.3.0)
-    net-ldap (0.16.2)
+    net-http-persistent (4.0.1)
+      connection_pool (~> 2.2)
+    net-ldap (0.16.3)
     net-ntp (2.1.3)
+    net-scp (3.0.0)
+      net-ssh (>= 2.6.5, < 7.0.0)
     net-ssh (6.0.0)
     netrc (0.11.0)
     nio4r (2.5.4)
     no_proxy_fix (0.1.2)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     nokogumbo (2.0.2)
       nokogiri (~> 1.8, >= 1.8.4)
     notiffany (0.1.3)
@@ -754,9 +788,22 @@ GEM
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 3)
-    octokit (4.15.0)
+    octokit (4.20.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
+    ohai (16.10.6)
+      chef-config (>= 12.8, < 17)
+      chef-utils (>= 16.0, < 17)
+      ffi (~> 1.9)
+      ffi-yajl (~> 2.2)
+      ipaddress
+      mixlib-cli (>= 1.7.0)
+      mixlib-config (>= 2.0, < 4.0)
+      mixlib-log (>= 2.0.1, < 4.0)
+      mixlib-shellout (>= 2.0, < 4.0)
+      plist (~> 3.1)
+      train-core
+      wmi-lite (~> 1.0)
     oj (3.10.6)
     omniauth (1.9.0)
       hashie (>= 3.4.6, < 3.7.0)
@@ -769,6 +816,8 @@ GEM
     omniauth-authentiq (0.3.3)
       jwt (>= 1.5)
       omniauth-oauth2 (>= 1.5)
+    omniauth-azure-activedirectory-v2 (0.1.1)
+      omniauth-oauth2
     omniauth-azure-oauth2 (0.0.10)
       jwt (>= 1.0, < 3.0)
       omniauth (~> 1.0)
@@ -840,13 +889,15 @@ GEM
       rubypants (~> 0.2)
     orm_adapter (0.5.0)
     os (1.1.1)
-    parallel (1.19.2)
-    parser (2.7.2.0)
+    parallel (1.20.1)
+    parser (3.0.0.0)
       ast (~> 2.4.1)
     parslet (1.8.2)
     peek (1.1.0)
       railties (>= 4.0.0)
     pg (1.2.3)
+    pg_query (1.3.0)
+    plist (3.6.0)
     png_quantizator (0.2.1)
     po_to_json (1.0.1)
       json (>= 1.6.0)
@@ -866,14 +917,20 @@ GEM
     pry (0.13.1)
       coderay (~> 1.1)
       method_source (~> 1.0)
-    pry-byebug (3.9.0)
-      byebug (~> 11.0)
-      pry (~> 0.13.0)
     pry-rails (0.3.9)
       pry (>= 0.10.4)
+    pry-remote (0.1.8)
+      pry (~> 0.9)
+      slop (~> 3.0)
     public_suffix (4.0.6)
+    puma (5.1.1)
+      nio4r (~> 2.0)
+    puma_worker_killer (0.3.1)
+      get_process_mem (~> 0.2)
+      puma (>= 2.7)
     pyu-ruby-sasl (0.0.3.3)
     raabro (1.1.6)
+    racc (1.5.2)
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
@@ -894,20 +951,20 @@ GEM
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
     rack-timeout (0.5.2)
-    rails (6.0.3.3)
-      actioncable (= 6.0.3.3)
-      actionmailbox (= 6.0.3.3)
-      actionmailer (= 6.0.3.3)
-      actionpack (= 6.0.3.3)
-      actiontext (= 6.0.3.3)
-      actionview (= 6.0.3.3)
-      activejob (= 6.0.3.3)
-      activemodel (= 6.0.3.3)
-      activerecord (= 6.0.3.3)
-      activestorage (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    rails (6.0.3.4)
+      actioncable (= 6.0.3.4)
+      actionmailbox (= 6.0.3.4)
+      actionmailer (= 6.0.3.4)
+      actionpack (= 6.0.3.4)
+      actiontext (= 6.0.3.4)
+      actionview (= 6.0.3.4)
+      activejob (= 6.0.3.4)
+      activemodel (= 6.0.3.4)
+      activerecord (= 6.0.3.4)
+      activestorage (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       bundler (>= 1.3.0)
-      railties (= 6.0.3.3)
+      railties (= 6.0.3.4)
       sprockets-rails (>= 2.0.0)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
@@ -921,15 +978,15 @@ GEM
     rails-i18n (6.0.0)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 7)
-    railties (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    railties (6.0.3.4)
+      actionpack (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.20.3, < 2.0)
     rainbow (3.0.0)
     raindrops (0.19.1)
-    rake (13.0.1)
+    rake (13.0.3)
     rb-fsevent (0.10.4)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
@@ -981,6 +1038,8 @@ GEM
       mime-types (>= 1.16, < 4.0)
       netrc (~> 0.8)
     retriable (3.1.2)
+    reverse_markdown (1.4.0)
+      nokogiri
     rexml (3.2.4)
     rinku (2.0.0)
     rotp (2.1.2)
@@ -989,35 +1048,35 @@ GEM
       chunky_png
     rqrcode-rails3 (0.1.7)
       rqrcode (>= 0.4.2)
-    rspec (3.9.0)
-      rspec-core (~> 3.9.0)
-      rspec-expectations (~> 3.9.0)
-      rspec-mocks (~> 3.9.0)
-    rspec-core (3.9.1)
-      rspec-support (~> 3.9.1)
-    rspec-expectations (3.9.1)
+    rspec (3.10.0)
+      rspec-core (~> 3.10.0)
+      rspec-expectations (~> 3.10.0)
+      rspec-mocks (~> 3.10.0)
+    rspec-core (3.10.1)
+      rspec-support (~> 3.10.0)
+    rspec-expectations (3.10.1)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.9.0)
-    rspec-mocks (3.9.1)
+      rspec-support (~> 3.10.0)
+    rspec-mocks (3.10.2)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.9.0)
+      rspec-support (~> 3.10.0)
     rspec-parameterized (0.4.2)
       binding_ninja (>= 0.2.3)
       parser
       proc_to_ast
       rspec (>= 2.13, < 4)
       unparser
-    rspec-rails (4.0.0)
+    rspec-rails (4.0.2)
       actionpack (>= 4.2)
       activesupport (>= 4.2)
       railties (>= 4.2)
-      rspec-core (~> 3.9)
-      rspec-expectations (~> 3.9)
-      rspec-mocks (~> 3.9)
-      rspec-support (~> 3.9)
+      rspec-core (~> 3.10)
+      rspec-expectations (~> 3.10)
+      rspec-mocks (~> 3.10)
+      rspec-support (~> 3.10)
     rspec-retry (0.6.1)
       rspec-core (> 3.3)
-    rspec-support (3.9.2)
+    rspec-support (3.10.2)
     rspec_junit_formatter (0.4.1)
       rspec-core (>= 2, < 4, != 2.12.0)
     rspec_profiling (0.0.6)
@@ -1025,26 +1084,26 @@ GEM
       pg
       rails
       sqlite3
-    rubocop (0.89.1)
+    rubocop (0.93.1)
       parallel (~> 1.10)
-      parser (>= 2.7.1.1)
+      parser (>= 2.7.1.5)
       rainbow (>= 2.2.2, < 4.0)
-      regexp_parser (>= 1.7)
+      regexp_parser (>= 1.8)
       rexml
-      rubocop-ast (>= 0.3.0, < 1.0)
+      rubocop-ast (>= 0.6.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 1.4.0, < 2.0)
-    rubocop-ast (0.8.0)
+    rubocop-ast (1.4.1)
       parser (>= 2.7.1.5)
     rubocop-gitlab-security (0.1.1)
       rubocop (>= 0.51)
-    rubocop-performance (1.8.1)
-      rubocop (>= 0.87.0)
+    rubocop-performance (1.9.2)
+      rubocop (>= 0.90.0, < 2.0)
       rubocop-ast (>= 0.4.0)
-    rubocop-rails (2.8.1)
+    rubocop-rails (2.9.1)
       activesupport (>= 4.2.0)
       rack (>= 1.1)
-      rubocop (>= 0.87.0)
+      rubocop (>= 0.90.0, < 2.0)
     rubocop-rspec (1.44.1)
       rubocop (~> 0.87)
       rubocop-ast (>= 0.7.1)
@@ -1052,8 +1111,10 @@ GEM
       i18n
     ruby-fogbugz (0.2.1)
       crack (~> 0.4)
+    ruby-magic-static (0.3.5)
+      mini_portile2 (~> 2.5.0)
     ruby-prof (1.3.1)
-    ruby-progressbar (1.10.1)
+    ruby-progressbar (1.11.0)
     ruby-saml (1.7.2)
       nokogiri (>= 1.5.10)
     ruby-statistics (2.1.2)
@@ -1063,7 +1124,7 @@ GEM
     rubyntlm (0.6.2)
     rubypants (0.2.0)
     rubyzip (2.0.0)
-    rugged (0.28.4.1)
+    rugged (1.1.0)
     safe_yaml (1.0.4)
     safety_net_attestation (0.4.0)
       jwt (~> 2.0)
@@ -1088,9 +1149,7 @@ GEM
     sawyer (0.8.2)
       addressable (>= 2.3.5)
       faraday (> 0.8, < 2.0)
-    scientist (1.5.0)
-    scss_lint (0.59.0)
-      sass (~> 3.5, >= 3.5.5)
+    scientist (1.6.0)
     securecompare (1.0.0)
     seed-fu (2.3.7)
       activerecord (>= 3.1)
@@ -1127,6 +1186,7 @@ GEM
     simplecov-html (0.12.2)
     sixarm_ruby_unaccent (1.2.0)
     slack-messenger (2.3.4)
+    slop (3.6.0)
     snowplow-tracker (0.6.1)
       contracts (~> 0.7, <= 0.11)
     spring (2.1.1)
@@ -1143,12 +1203,12 @@ GEM
     sshkey (2.0.0)
     stackprof (0.2.15)
     state_machines (0.5.0)
-    state_machines-activemodel (0.7.1)
-      activemodel (>= 4.1)
+    state_machines-activemodel (0.8.0)
+      activemodel (>= 5.1)
       state_machines (>= 0.5.0)
-    state_machines-activerecord (0.6.0)
-      activerecord (>= 4.1)
-      state_machines-activemodel (>= 0.5.0)
+    state_machines-activerecord (0.8.0)
+      activerecord (>= 5.1)
+      state_machines-activemodel (>= 0.8.0)
     swd (1.1.2)
       activesupport (>= 3)
       attr_required (>= 0.0.5)
@@ -1163,13 +1223,13 @@ GEM
       execjs (>= 0.3.0, < 3)
     test-prof (0.12.0)
     text (1.3.1)
-    thin (1.7.2)
+    thin (1.8.0)
       daemons (~> 1.0, >= 1.0.9)
       eventmachine (~> 1.0, >= 1.0.4)
       rack (>= 1, < 3)
-    thor (0.20.3)
+    thor (1.1.0)
     thread_safe (0.3.6)
-    thrift (0.13.0)
+    thrift (0.14.0)
     tilt (2.0.10)
     timecop (0.9.1)
     timeliness (0.3.10)
@@ -1179,13 +1239,21 @@ GEM
       parslet (~> 1.8.0)
     toml-rb (1.0.0)
       citrus (~> 3.0, > 3.0)
+    tomlrb (1.3.0)
     tpm-key_attestation (0.9.0)
       bindata (~> 2.4)
       openssl-signature_algorithm (~> 0.4.0)
+    train-core (3.4.9)
+      addressable (~> 2.5)
+      ffi (!= 1.13.0)
+      json (>= 1.8, < 3.0)
+      mixlib-shellout (>= 2.0, < 4.0)
+      net-scp (>= 1.2, < 4.0)
+      net-ssh (>= 2.9, < 7.0)
     truncato (0.7.11)
       htmlentities (~> 4.3.1)
       nokogiri (>= 1.7.0, <= 2.0)
-    tzinfo (1.2.8)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
     u2f (0.2.1)
     uber (0.1.0)
@@ -1193,8 +1261,6 @@ GEM
       unf_ext
     unf_ext (0.0.7.7)
     unicode-display_width (1.7.0)
-    unicode_plot (0.0.4)
-      enumerable-statistics (>= 2.0.1)
     unicode_utils (1.4.0)
     unicorn (5.5.5)
       kgio (~> 2.6)
@@ -1220,7 +1286,7 @@ GEM
     validate_email (0.1.6)
       activemodel (>= 3.0)
       mail (>= 2.2.5)
-    validate_url (1.0.8)
+    validate_url (1.0.13)
       activemodel (>= 3.0.0)
       public_suffix
     validates_hostname (1.0.11)
@@ -1247,6 +1313,7 @@ GEM
       addressable (>= 2.3.6)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
+    webrick (1.6.1)
     websocket-driver (0.7.3)
       websocket-extensions (>= 0.1.0)
     websocket-extensions (0.1.5)
@@ -1255,11 +1322,12 @@ GEM
       expression_parser
       rinku
     with_env (1.1.0)
+    wmi-lite (1.0.5)
     xml-simple (1.1.5)
     xpath (3.2.0)
       nokogiri (~> 1.8)
     yajl-ruby (1.4.1)
-    zeitwerk (2.4.1)
+    zeitwerk (2.4.2)
 
 PLATFORMS
   ruby
@@ -1268,25 +1336,26 @@ DEPENDENCIES
   RedCloth (~> 4.3.2)
   acme-client (~> 2.0, >= 2.0.6)
   activerecord-explain-analyze (~> 0.1)
-  acts-as-taggable-on (~> 6.0)
+  acts-as-taggable-on (~> 7.0)
   addressable (~> 2.7)
   akismet (~> 3.0)
   apollo_upload_server (~> 2.0.2)
-  asana (= 0.10.2)
+  asana (~> 0.10.3)
   asciidoctor (~> 2.0.10)
   asciidoctor-include-ext (~> 0.3.1)
-  asciidoctor-kroki (~> 0.2.2)
+  asciidoctor-kroki (~> 0.4.0)
   asciidoctor-plantuml (~> 0.0.12)
   atlassian-jwt (~> 0.2.0)
   attr_encrypted (~> 3.1.0)
+  autoprefixer-rails (= 10.2.0.0)
   awesome_print
   aws-sdk-cloudformation (~> 1)
   aws-sdk-core (~> 3)
   aws-sdk-s3 (~> 1)
   babosa (~> 1.0.2)
   base32 (~> 0.3.0)
-  batch-loader (~> 1.4.0)
-  bcrypt (= 3.1.12)
+  batch-loader (~> 2.0.1)
+  bcrypt (~> 3.1, >= 3.1.14)
   bcrypt_pbkdf (~> 1.0)
   benchmark-ips (~> 2.3.0)
   benchmark-memory (~> 0.1)
@@ -1295,9 +1364,9 @@ DEPENDENCIES
   bootstrap_form (~> 4.2.0)
   brakeman (~> 4.2)
   browser (~> 4.2)
-  bullet (~> 6.1.0)
-  bundler-audit (~> 0.6.1)
-  capybara (~> 3.33.0)
+  bullet (~> 6.1.3)
+  bundler-audit (~> 0.7.0.1)
+  capybara (~> 3.34.0)
   capybara-screenshot (~> 1.0.22)
   carrierwave (~> 1.3)
   charlock_holmes (~> 0.7.7)
@@ -1307,10 +1376,10 @@ DEPENDENCIES
   countries (~> 3.0)
   creole (~> 0.5.0)
   crystalball (~> 0.7.0)
-  danger (~> 8.0.6)
+  danger-gitlab (~> 8.0)
   database_cleaner (~> 1.7.0)
   deckar01-task_list (= 2.3.1)
-  default_value_for (~> 3.3.0)
+  default_value_for (~> 3.4.0)
   deprecation_toolkit (~> 1.5.1)
   derailed_benchmarks
   device_detector
@@ -1318,9 +1387,9 @@ DEPENDENCIES
   devise-two-factor (~> 3.1.0)
   diff_match_patch (~> 0.1.0)
   diffy (~> 3.3)
-  discordrb-webhooks-blackst0ne (~> 3.3)
-  doorkeeper (~> 5.3.0)
-  doorkeeper-openid_connect (~> 1.7.4)
+  discordrb-webhooks (~> 3.4)
+  doorkeeper (~> 5.5.0.rc2)
+  doorkeeper-openid_connect (~> 1.7.5)
   ed25519 (~> 1.2)
   elasticsearch-api (~> 6.8.2)
   elasticsearch-model (~> 6.1)
@@ -1329,7 +1398,7 @@ DEPENDENCIES
   email_spec (~> 2.2.0)
   erubi (~> 1.9.0)
   escape_utils (~> 1.1)
-  factory_bot_rails (~> 5.1.0)
+  factory_bot_rails (~> 6.1.0)
   faraday (~> 1.0)
   faraday_middleware-aws-sigv4 (~> 0.3.0)
   fast_blank
@@ -1339,9 +1408,8 @@ DEPENDENCIES
   flipper-active_support_cache_store (~> 0.17.1)
   flowdock (~> 0.7)
   fog-aliyun (~> 0.3)
-  fog-aws (~> 3.7)
+  fog-aws (~> 3.9)
   fog-core (= 2.1.0)
-  fog-google (~> 1.12)
   fog-local (~> 0.6)
   fog-openstack (~> 1.0)
   fog-rackspace (~> 0.1.1)
@@ -1351,52 +1419,51 @@ DEPENDENCIES
   gettext (~> 3.3)
   gettext_i18n_rails (~> 1.8.0)
   gettext_i18n_rails_js (~> 1.3)
-  gitaly (~> 13.7.0.pre.rc1)
+  gitaly (~> 13.9.0.pre.rc1)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
-  gitlab-experiment (~> 0.4.4)
-  gitlab-fog-azure-rm (~> 1.0)
-  gitlab-labkit (= 0.13.3)
-  gitlab-license (~> 1.0)
-  gitlab-mail_room (~> 0.0.8)
+  gitlab-dangerfiles (~> 0.8.0)
+  gitlab-experiment (~> 0.5.0)
+  gitlab-fog-azure-rm (~> 1.0.1)
+  gitlab-fog-google (~> 1.13)
+  gitlab-labkit (~> 0.16.1)
+  gitlab-license (~> 1.3)
+  gitlab-mail_room (~> 0.0.9)
   gitlab-markup (~> 1.7.1)
   gitlab-net-dns (~> 0.9.1)
-  gitlab-pg_query (~> 1.3)
-  gitlab-puma (~> 4.3.3.gitlab.2)
-  gitlab-puma_worker_killer (~> 0.1.1.gitlab.1)
-  gitlab-sidekiq-fetcher (= 0.5.2)
-  gitlab-styles (~> 5.3.0)
+  gitlab-pry-byebug
+  gitlab-sidekiq-fetcher (= 0.5.5)
+  gitlab-styles (~> 6.1.0)
   gitlab_chronic_duration (~> 0.10.6.2)
   gitlab_omniauth-ldap (~> 2.1.1)
   gon (~> 6.2)
   google-api-client (~> 0.33)
   google-protobuf (~> 3.12)
   gpgme (~> 2.0.19)
-  grape (= 1.4.0)
+  grape (~> 1.5.2)
   grape-entity (~> 0.7.1)
-  grape-path-helpers (~> 1.5)
+  grape-path-helpers (~> 1.6.1)
   grape_logging (~> 1.7)
   graphiql-rails (~> 1.4.10)
   graphlient (~> 0.4.0)
-  graphql (~> 1.11.4)
+  graphql (~> 1.11.8)
   graphql-docs (~> 1.6.0)
   grpc (~> 1.30.2)
   gssapi
   guard-rspec
   haml_lint (~> 0.36.0)
-  hamlit (~> 2.11.0)
+  hamlit (~> 2.14.4)
   hangouts-chat (~> 0.0.5)
   hashie
   hashie-forbidden_attributes
   health_check (~> 3.0)
-  hipchat (~> 1.5.0)
-  html-pipeline (~> 2.12)
+  html-pipeline (~> 2.13.2)
   html2text
   httparty (~> 0.16.4)
   icalendar
-  invisible_captcha (~> 0.12.1)
+  invisible_captcha (~> 1.1.0)
   ipaddress (~> 0.8.3)
-  jira-ruby (~> 2.0.0)
+  jira-ruby (~> 2.1.4)
   js_regex (~> 3.4)
   json (~> 2.3.0)
   json-schema (~> 2.8.0)
@@ -1406,33 +1473,35 @@ DEPENDENCIES
   knapsack (~> 1.17)
   kramdown (~> 2.3.0)
   kubeclient (~> 4.9.1)
+  lefthook (~> 0.7)
   letter_opener_web (~> 1.3.4)
   license_finder (~> 6.0)
-  licensee (~> 8.9)
+  licensee (~> 9.14.1)
   lockbox (~> 0.3.3)
   lograge (~> 0.5)
   loofah (~> 2.2)
   lru_redux
   mail (= 2.7.1)
-  marginalia (~> 1.9.0)
+  marginalia (~> 1.10.0)
   memory_profiler (~> 0.9)
   method_source (~> 1.0)
-  mimemagic (~> 0.3.2)
+  mimemagic (~> 0.3.10)
   mini_magick (~> 4.10.1)
   minitest (~> 5.11.0)
   multi_json (~> 1.14.1)
-  nakayoshi_fork (~> 0.0.4)
-  net-ldap
+  net-ldap (~> 0.16.3)
   net-ntp
   net-ssh (~> 6.0)
-  nokogiri (~> 1.10.9)
+  nokogiri (~> 1.11.1)
   oauth2 (~> 1.4)
   octokit (~> 4.15)
+  ohai (~> 16.10)
   oj (~> 3.10.6)
   omniauth (~> 1.8)
   omniauth-atlassian-oauth2 (~> 0.2.0)
   omniauth-auth0 (~> 2.0.0)
   omniauth-authentiq (~> 0.3.3)
+  omniauth-azure-activedirectory-v2 (~> 0.1)
   omniauth-azure-oauth2 (~> 0.0.9)
   omniauth-cas3 (~> 1.1.4)
   omniauth-facebook (~> 4.0.0)
@@ -1449,13 +1518,17 @@ DEPENDENCIES
   omniauth_openid_connect (~> 0.3.5)
   org-ruby (~> 0.9.12)
   parallel (~> 1.19)
+  parslet (~> 1.8)
   peek (~> 1.1)
   pg (~> 1.1)
+  pg_query (~> 1.3.0)
   png_quantizator (~> 0.2.1)
   premailer-rails (~> 1.10.3)
   prometheus-client-mmap (~> 0.12.0)
-  pry-byebug (~> 3.9.0)
   pry-rails (~> 0.3.9)
+  pry-remote
+  puma (~> 5.1.1)
+  puma_worker_killer (~> 0.3.1)
   rack (~> 2.2.3)
   rack-attack (~> 6.3.0)
   rack-cors (~> 1.0.6)
@@ -1481,19 +1554,19 @@ DEPENDENCIES
   rouge (~> 3.26.0)
   rqrcode-rails3 (~> 0.1.7)
   rspec-parameterized
-  rspec-rails (~> 4.0.0)
+  rspec-rails (~> 4.0.2)
   rspec-retry (~> 0.6.1)
   rspec_junit_formatter
   rspec_profiling (~> 0.0.6)
   ruby-fogbugz (~> 0.2.1)
+  ruby-magic-static (~> 0.3.4)
   ruby-prof (~> 1.3.0)
   ruby-progressbar (~> 1.10)
   ruby_parser (~> 3.15)
   rubyzip (~> 2.0.0)
-  rugged (~> 0.28)
+  rugged (~> 1.1)
   sanitize (~> 5.2.1)
   sassc-rails (~> 2.1.0)
-  scss_lint (~> 0.59.0)
   seed-fu (~> 2.3.7)
   selenium-webdriver (~> 3.142)
   sentry-raven (~> 3.0)
@@ -1511,11 +1584,12 @@ DEPENDENCIES
   sprockets (~> 3.7.0)
   sshkey (~> 2.0)
   stackprof (~> 0.2.15)
-  state_machines-activerecord (~> 0.6.0)
+  state_machines-activerecord (~> 0.8.0)
   sys-filesystem (~> 1.1.6)
   terser (= 1.0.2)
   test-prof (~> 0.12.0)
-  thin (~> 1.7.0)
+  thin (~> 1.8.0)
+  thrift (>= 0.14.0)
   timecop (~> 0.9.1)
   toml-rb (~> 1.0.0)
   truncato (~> 0.7.11)
@@ -1530,6 +1604,7 @@ DEPENDENCIES
   vmstat (~> 2.3.0)
   webauthn (~> 2.3)
   webmock (~> 3.9.1)
+  webrick (~> 1.6.1)
   wikicloth (= 0.8.1)
   yajl-ruby (~> 1.4.1)
 
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index a4758f7418ed..f6c26777f4f2 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wpmxbprsqclna9xpa6b7sspjb89p6jqfxalasa9f984hx77dx27";
+      sha256 = "0y3aa0965cdsqamxk8ac6brcvijl1zv4pvqils6xy3pbcrv0ljid";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
@@ -37,10 +37,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0smcxpn3glnmid3v2pk04sb3bdifbw7ad1c7fq6wfijkrpih8jiw";
+      sha256 = "10vb9s4frq22h5j6gyw2598k1jc29lg2czm95hf284l3mi4qly6a";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
@@ -48,10 +48,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1spq0dbfn0qkqg9sq0rsjn360b4j36zly8hawaivkrwr3rsvyz75";
+      sha256 = "1ykn5qkwdlcv5aa1gjhhmrxpjccwa7df6n4amvkmvxv5lggyma52";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -59,10 +59,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p873nqwmpsvmkb5n86d70wndx1qhy15pc9mbcd1mc8sj174578b";
+      sha256 = "0fbjpnh5hrihc9l35q9why6ip0hcdj42axzbp6b4j1xcy1v1bicj";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
@@ -70,10 +70,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05ysfz9dwnncdx0g452by7jdr35yryz6lmcrbb4r5wgjm57b4n25";
+      sha256 = "0r0j0m76ynjspmvj5qbzl06kl9i920v269iz62y62009xydv6rqz";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -81,10 +81,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08pvmjddlw01q5r9zdfgddwp4csndpf5i2w47677z5r36jznz36q";
+      sha256 = "0gdz31cq08nrqq6bxqim2qcbzv0fr34z6ycl73dmawpafj33wdkj";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -92,10 +92,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w54ckvc229iaax879hkhyc93j7z8p0v7acp6mk3h8xjfvmwy5jp";
+      sha256 = "0d0p8gjplrgym38dmchyzhv7lrrxngz0yrxl6xyvwxfxm1hgdk2k";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -103,10 +103,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "166jlx6kbby01vr37srh081a9fykgsz873yg5i9gl2ar3vw9gs56";
+      sha256 = "00jj8namy5niq7grl5lrsr4y351rxpj1b69k1i9gvb1hnpghl099";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -114,10 +114,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y2a4ss6ld6yrhpcbcb3kjn5gj6zk9qklp2aq5rl1awl8vbdbdb7";
+      sha256 = "06qvvp73z8kq9sd2mhw6p9124q5pfkswjga2fidz4c73zbr79r3g";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activerecord-explain-analyze = {
     dependencies = ["activerecord" "pg"];
@@ -136,10 +136,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nvfjkq979m1h4mk1ys7m4irwpswn4l9arb9yi06ffqpi1lpfl31";
+      sha256 = "0q734331wb7cfsh4jahj3lphpxvglzb17yvibwss1ml4g01xxm52";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -147,10 +147,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dmkqbvndbz011a1byg6f990936vfadbnwjwjw9vjzr4kd8bxk96";
+      sha256 = "1axidc4mikgi4yxs0ynw2c54jyrs5lxprxmzv6m3aayi9rg6rk5j";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   acts-as-taggable-on = {
     dependencies = ["activerecord"];
@@ -158,10 +158,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nvhd986xa6llyjnhikq4h1nrcf5b9r9s11if25qsj8358inrpga";
+      sha256 = "09m7lvm6id8mm8y9qycjr54l9gyqfb43x6yjz23cggisjg0px1fv";
       type = "gem";
     };
-    version = "6.5.0";
+    version = "7.0.0";
   };
   adamantium = {
     dependencies = ["ice_nine" "memoizable"];
@@ -232,20 +232,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c8n8i3jb2q09l6rgcw0lb4sq85jzz6vywqlrd0ivq989zh3sq2l";
+      sha256 = "14cs2k802hlvlmn0nwnx4k3g44944x0a8dsj3k14mjnbvcw1fkxh";
       type = "gem";
     };
-    version = "0.10.2";
+    version = "0.10.3";
   };
   asciidoctor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b2ajs3sabl0s27r7lhwkacw0yn0zfk4jpmidg9l8lzp2qlgjgbz";
+      sha256 = "1gjk9v83vw0pz4x0xqqnw231z9sgscm6vnacjw7hy5njkw8fskj9";
       type = "gem";
     };
-    version = "2.0.10";
+    version = "2.0.12";
   };
   asciidoctor-include-ext = {
     dependencies = ["asciidoctor"];
@@ -264,10 +264,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10yc07x2z9f122wnncf34s91vlfcd4wy8y9wshxc7j2m4a2jlzm5";
+      sha256 = "13gx22xld4rbxxirnsxyrsajy9v666r8a4ngms71611af5afgk6w";
       type = "gem";
     };
-    version = "0.2.2";
+    version = "0.4.0";
   };
   asciidoctor-plantuml = {
     dependencies = ["asciidoctor"];
@@ -285,10 +285,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
       type = "gem";
     };
-    version = "2.4.1";
+    version = "2.4.2";
   };
   atlassian-jwt = {
     dependencies = ["jwt"];
@@ -322,6 +322,17 @@
     };
     version = "1.0.1";
   };
+  autoprefixer-rails = {
+    dependencies = ["execjs"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p9j0sxw0nm27x7wj0n8a9zikwb0v8b6varr601rcgymsjj2v7wy";
+      type = "gem";
+    };
+    version = "10.2.0.0";
+  };
   awesome_print = {
     groups = ["development" "test"];
     platforms = [];
@@ -423,21 +434,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qpvjyaq8478hw4cxcf8lr303wn8g9mhrfmvihyzn3zn9hll4zvd";
+      sha256 = "01psx005lkrfk3zm816z76fa2pv4hd8jk7hxrjyy4hbvgcqi6rfy";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.0.1";
   };
   azure-storage-common = {
-    dependencies = ["faraday" "faraday_middleware" "nokogiri"];
+    dependencies = ["faraday" "faraday_middleware" "net-http-persistent" "nokogiri"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nhjw77r65xrkdn2h6cd76mglgx676hyr58igyfb9f7zbgvjp69s";
+      sha256 = "0h5bwswc5768hblcxsschjz3y0lf9kvz3k7qqwypdhy8sr1lfxg8";
       type = "gem";
     };
-    version = "2.0.1";
+    version = "2.0.2";
   };
   babosa = {
     groups = ["default"];
@@ -464,20 +475,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09jaxxddqpgq8ynwd2gpjq5rkhw00zdjnqisk9qbpjgxzk6f8gwi";
+      sha256 = "17d8wwj880zar5h8zxdmw878shgmljmmv957802fw5nkg3gi3xwk";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "2.0.1";
   };
   bcrypt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
+      sha256 = "02r1c3isfchs5fxivbq99gc3aq4vfyn8snhcy707dal1p8qz12qb";
       type = "gem";
     };
-    version = "3.1.12";
+    version = "3.1.16";
   };
   bcrypt_pbkdf = {
     groups = ["ed25519"];
@@ -599,10 +610,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18ifwnvn13755qkfigapyj5bflpby3phxzbb7x5336d0kzv5k7d9";
+      sha256 = "04wm807czdixpgnqp446vj8vc7dj96k26p90rmwll9ahlib37mmm";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3";
   };
   bundler-audit = {
     dependencies = ["thor"];
@@ -610,10 +621,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pm22xpn3xyymsainixnrk8v3l3xi9bzwkjkspx00cfzp84xvxbq";
+      sha256 = "04l9rs56rlvihbr2ybkrigjajgd3swa98lxvmdl8iylj1g5m7n0j";
       type = "gem";
     };
-    version = "0.6.1";
+    version = "0.7.0.1";
   };
   byebug = {
     groups = ["default" "development" "test"];
@@ -635,10 +646,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ji9kyb01dpnjbvpyb0c481cpnisd6wx6div6rywi9fihk66627w";
+      sha256 = "1i1bm7r8n67cafd9p3ck7vdmng921b41n9znvlfaz7cy8a3gsrgm";
       type = "gem";
     };
-    version = "3.33.0";
+    version = "3.34.0";
   };
   capybara-screenshot = {
     dependencies = ["capybara" "launchy"];
@@ -692,6 +703,27 @@
     };
     version = "0.7.7";
   };
+  chef-config = {
+    dependencies = ["addressable" "chef-utils" "fuzzyurl" "mixlib-config" "mixlib-shellout" "tomlrb"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z3lashvhqy9v5b3xn8vzzf07gnjw4mgdiiryxsg6kdasvj62j8z";
+      type = "gem";
+    };
+    version = "16.10.17";
+  };
+  chef-utils = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cypir7fza7jfqaj1j1jh37d3i6bvrmm6jamjlngk3xbdbd56hm7";
+      type = "gem";
+    };
+    version = "16.10.17";
+  };
   childprocess = {
     groups = ["default" "test"];
     platforms = [];
@@ -794,10 +826,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   connection_pool = {
     groups = ["default"];
@@ -910,21 +942,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";
+      sha256 = "0l5gai3vd4g7aqff0k1mp41j9zcsvm2rbwmqn115a325k9r7pf4w";
       type = "gem";
     };
-    version = "1.2.6";
+    version = "1.3.1";
   };
   danger = {
     dependencies = ["claide" "claide-plugins" "colored2" "cork" "faraday" "faraday-http-cache" "git" "kramdown" "kramdown-parser-gfm" "no_proxy_fix" "octokit" "terminal-table"];
-    groups = ["development"];
+    groups = ["danger" "default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nv02gq90nngnfa6hgiyyk60a31xfayk67va98k41gy9arhdkz5g";
+      type = "gem";
+    };
+    version = "8.2.3";
+  };
+  danger-gitlab = {
+    dependencies = ["danger" "gitlab"];
+    groups = ["danger" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lrifb0kbjk9033pzjnp8qqqkg2z212h8dgj71k15c6wb6rycqa7";
+      sha256 = "1a530kx5s5rbx5yx3jqay56lkksqh0yj468hcpg16faiyv8dfza9";
       type = "gem";
     };
-    version = "8.0.6";
+    version = "8.0.0";
   };
   database_cleaner = {
     groups = ["development" "test"];
@@ -987,10 +1030,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08hwnnqm3bxd4n627isliq79zysdlmfkf813403v0b4mkhika5my";
+      sha256 = "03zln3mp8wa734jl7abd6gby08xq8j6n4y2phzxfsssscx8xrlim";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.0";
   };
   deprecation_toolkit = {
     dependencies = ["activesupport"];
@@ -1004,15 +1047,15 @@
     version = "1.5.1";
   };
   derailed_benchmarks = {
-    dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "mini_histogram" "rack" "rake" "ruby-statistics" "thor" "unicode_plot"];
-    groups = ["default"];
+    dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "mini_histogram" "rack" "rake" "ruby-statistics" "thor"];
+    groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03lrvzvdjy6wyrnb3nw7nqn9jbhn6lncach58pj6m4l76b2n6jpr";
+      sha256 = "05nryqr18w61dyk9amajh7chn07zxardxnywayyis72kmd8f9q29";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.8.1";
   };
   device_detector = {
     groups = ["default"];
@@ -1051,10 +1094,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz";
       type = "gem";
     };
-    version = "1.3";
+    version = "1.4.4";
   };
   diff_match_patch = {
     groups = ["default"];
@@ -1076,16 +1119,16 @@
     };
     version = "3.3.0";
   };
-  discordrb-webhooks-blackst0ne = {
+  discordrb-webhooks = {
     dependencies = ["rest-client"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f0dw6ci5cbrxrvvqw2kqabpzyjisd4hflbi370rpb4cakkzgw39";
+      sha256 = "0viw73jd9vs9f92a9q2vxcd29755h7w8jwz36jmvcdl2najainyg";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.2";
   };
   docile = {
     groups = ["default" "development" "test"];
@@ -1114,10 +1157,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01scvhvrw44ksv1aaywpp9kfm4c8qs4gwnnha40r5mq0vpc0qrny";
+      sha256 = "1mdjnw5n2r3hclg4gmzx19w750sdcxw9y6dhcawbzb9wrbzj58wk";
       type = "gem";
     };
-    version = "5.3.3";
+    version = "5.5.0.rc2";
   };
   doorkeeper-openid_connect = {
     dependencies = ["doorkeeper" "json-jwt"];
@@ -1125,21 +1168,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yylcg4j7msxma0s8rx8990bfgr0c414a7vafs3gpgmbwy47wq45";
+      sha256 = "1cj7b45lxiifi6pw8gnylfzlhji572v0pj896rbyqjwyzlgj1sid";
+      type = "gem";
+    };
+    version = "1.7.5";
+  };
+  dotenv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
       type = "gem";
     };
-    version = "1.7.4";
+    version = "2.7.6";
   };
   dry-configurable = {
-    dependencies = ["concurrent-ruby" "dry-core" "dry-equalizer"];
+    dependencies = ["concurrent-ruby" "dry-core"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "033x4gvynfm33pchmpd5iw9n4c9q46j8vbwbcdmvb8b2r0gpzfdn";
+      sha256 = "0rvwvxrvcygvgfc3xjrihvdvnr0dh2144s8x80zfgfnz0jd5gac7";
       type = "gem";
     };
-    version = "0.11.5";
+    version = "0.12.0";
   };
   dry-container = {
     dependencies = ["concurrent-ruby" "dry-configurable"];
@@ -1158,10 +1211,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k9ff2sr4ymiwzg4mchzv66mn6rdsgjlinm6s4x5x91yhd0h4vpk";
+      sha256 = "14s45hxcqpp2mbvwlwzn018i8qhcjzgkirigdrv31jd741rpgy9s";
       type = "gem";
     };
-    version = "0.4.9";
+    version = "0.5.0";
   };
   dry-equalizer = {
     groups = ["default"];
@@ -1184,15 +1237,15 @@
     version = "0.2.0";
   };
   dry-logic = {
-    dependencies = ["concurrent-ruby" "dry-core" "dry-equalizer"];
+    dependencies = ["concurrent-ruby" "dry-core"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cqvylwv71sm9zrb0lpxmghn20zxnjswxwyhaj8y2wfniffyjgkc";
+      sha256 = "17dnc3g9y2nj42rdx2bdvsvvms10vgw4qzjb2iw2gln9hj8b797c";
       type = "gem";
     };
-    version = "1.0.6";
+    version = "1.1.0";
   };
   dry-types = {
     dependencies = ["concurrent-ruby" "dry-container" "dry-core" "dry-equalizer" "dry-inflector" "dry-logic"];
@@ -1311,16 +1364,6 @@
     };
     version = "3.0.0";
   };
-  enumerable-statistics = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0ac2f5g4m58l6bmap1ak6vgqykz2hy9n3c8r6dmlr2xjybdryc1f";
-      type = "gem";
-    };
-    version = "2.0.1";
-  };
   equalizer = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -1419,10 +1462,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04mvwcdh1056r79vq969vlncrcy53fkhw0iixpqvp8gnx5ajbsv6";
+      sha256 = "11ij9s4hasy963qjqbrrf0m8lm9m9pxkh2vf4wrnafa6gw6r9qk8";
       type = "gem";
     };
-    version = "5.1.0";
+    version = "6.1.0";
   };
   factory_bot_rails = {
     dependencies = ["factory_bot" "railties"];
@@ -1430,10 +1473,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02q7lwfdilwahza2jz0p0kc2rragv617q9r2yy72syv6lfy923sx";
+      sha256 = "0hfxkq6rarg0b8xfzqg200xyj176sn1xplqqqcrz5drhkqp30m14";
       type = "gem";
     };
-    version = "5.1.0";
+    version = "6.1.0";
   };
   faraday = {
     dependencies = ["multipart-post"];
@@ -1552,6 +1595,17 @@
     };
     version = "1.0.1";
   };
+  ffi-yajl = {
+    dependencies = ["libyajl2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pfmn0gprc3c15baxa9rx64pqllk64m60f5vg4gp0icpafkp0jx5";
+      type = "gem";
+    };
+    version = "2.3.4";
+  };
   flipper = {
     groups = ["default"];
     platforms = [];
@@ -1612,10 +1666,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1764kvyzigaxwmxgfggpqq15qpplm77j2nmvhf8f0gybsm3vbrbn";
+      sha256 = "10y32rm3vcfh82p2fdr2zq8ibknx1jslmai5m0r261bdr3brkssm";
       type = "gem";
     };
-    version = "3.7.0";
+    version = "3.9.0";
   };
   fog-core = {
     dependencies = ["builder" "excon" "formatador" "mime-types"];
@@ -1628,17 +1682,6 @@
     };
     version = "2.1.0";
   };
-  fog-google = {
-    dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client" "google-cloud-env"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1cl6rprichdn1i40c2ndri1c53cfb0x2xk58l9arwip9ivkasln4";
-      type = "gem";
-    };
-    version = "1.12.0";
-  };
   fog-json = {
     dependencies = ["fog-core" "multi_json"];
     groups = ["default"];
@@ -1726,6 +1769,16 @@
     };
     version = "2.2.0";
   };
+  fuzzyurl = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03qchs33vfwbsv5awxg3acfmlcrf5xbhnbrc83fdpamwya0glbjl";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
   gemoji = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -1808,10 +1861,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1al29diaj9zrkj1rxwrqd644f2winv81dmnjycvm0gsim0vvw2hq";
+      sha256 = "137gr4nbxhcyh4s60r2z0js8q2bfnmxiggwnf122wp9csywlnyg2";
       type = "gem";
     };
-    version = "13.7.0.pre.rc1";
+    version = "13.9.0.pre.rc1";
   };
   github-markup = {
     groups = ["default"];
@@ -1823,6 +1876,17 @@
     };
     version = "1.7.0";
   };
+  gitlab = {
+    dependencies = ["httparty" "terminal-table"];
+    groups = ["danger" "default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kq77304vn733xc8iipq4wpdk5qb0zwjryhm3fia3mfsrdcp1z8k";
+      type = "gem";
+    };
+    version = "4.16.1";
+  };
   gitlab-chronic = {
     dependencies = ["numerizer"];
     groups = ["default"];
@@ -1834,16 +1898,27 @@
     };
     version = "0.10.5";
   };
+  gitlab-dangerfiles = {
+    dependencies = ["danger"];
+    groups = ["danger" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09ggs890b5gfphnz7ayavs55l6xhw323spfd22dg246g0rw9vliy";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
   gitlab-experiment = {
     dependencies = ["activesupport" "scientist"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12ng0q49vl4k80m3hyx6bz915x1gmfmxjvgzdp3w0q77j4qv6nwi";
+      sha256 = "0x4hyva7ypi2mx5jcyxac8w7ffai1pkkjc49fk3avqh4aimlibfr";
       type = "gem";
     };
-    version = "0.4.4";
+    version = "0.5.0";
   };
   gitlab-fog-azure-rm = {
     dependencies = ["azure-storage-blob" "azure-storage-common" "fog-core" "fog-json" "mime-types" "ms_rest_azure"];
@@ -1851,41 +1926,52 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04l7ps0vvrqq8i25q7ic2zy2n8f8f1l7sn1shf5wccy1cbyj9pig";
+      sha256 = "05yc5fp45v7y6h838zrj4666ar1ddhn8i5bbdxm8j73yrn2kjnal";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
+  };
+  gitlab-fog-google = {
+    dependencies = ["addressable" "fog-core" "fog-json" "fog-xml" "google-api-client" "google-cloud-env"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ybmiclsdpkp1l91z6d4qkhha6cik6kgf4kzs3a2c26mhnnj6gxy";
+      type = "gem";
+    };
+    version = "1.13.0";
   };
   gitlab-labkit = {
-    dependencies = ["actionpack" "activesupport" "gitlab-pg_query" "grpc" "jaeger-client" "opentracing" "redis"];
+    dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "pg_query" "redis"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x4d5dl60cfvvqj89b8blpsxa7lbbblqwdqy8kc1z51gira7i803";
+      sha256 = "03i8fc1yzm5yzqxb8bxhjkhqpj17fy71vg2z02bcj4mzbj0piflx";
       type = "gem";
     };
-    version = "0.13.3";
+    version = "0.16.1";
   };
   gitlab-license = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q26cgp3ln3b36n3sc69r6hxafkxjwdr3m0d7jlch5j7vyib9bih";
+      sha256 = "01z5pb6fg1j83p73vys2fhj7qh60zkqbgiyp4nvw013a6hjlv3qk";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.3.1";
   };
   gitlab-mail_room = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05j8rpsbl2l5q4xnfh2cnws9axy1a19asg8nlw6jngba94raw5ir";
+      sha256 = "0745kls2bazgk6kbmlq1dmd42z8bgxkyn6ki9snxka8abi5kf037";
       type = "gem";
     };
-    version = "0.0.8";
+    version = "0.0.9";
   };
   gitlab-markup = {
     groups = ["default"];
@@ -1907,37 +1993,20 @@
     };
     version = "0.9.1";
   };
-  gitlab-pg_query = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0xvzs8gy6vbddzf9kin92lqb99vzwljikfgqvxbxqm7hzl16dilq";
-      type = "gem";
-    };
-    version = "1.3.0";
-  };
-  gitlab-puma = {
-    dependencies = ["nio4r"];
-    groups = ["puma"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05hazn3cq079zynj0viagly6bgh4x7pb2vqki9rgf2k39ljwrmld";
-      type = "gem";
-    };
-    version = "4.3.5.gitlab.3";
-  };
-  gitlab-puma_worker_killer = {
-    dependencies = ["get_process_mem" "gitlab-puma"];
-    groups = ["puma"];
-    platforms = [];
+  gitlab-pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    groups = ["development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iagbqh4djbxfd18srvfg9qcxn845ibs3kf0q1sd57k27lxj0har";
+      sha256 = "0sp33vzzw8b7q9d8kb4pw8cl5fzlbffdpwz125x1g3kdiwz8xp3j";
       type = "gem";
     };
-    version = "0.1.1.gitlab.1";
+    version = "3.9.0";
   };
   gitlab-sidekiq-fetcher = {
     dependencies = ["sidekiq"];
@@ -1945,10 +2014,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dvx2klf1a1xyf15q34fn59291v6jwx3z315rxb2dmkvcr9873m1";
+      sha256 = "055v0cxvxgy12iwhqa2xbsxa9j6ww7p1f5jqwncwsnr7l6f1f4c9";
       type = "gem";
     };
-    version = "0.5.2";
+    version = "0.5.5";
   };
   gitlab-styles = {
     dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-performance" "rubocop-rails" "rubocop-rspec"];
@@ -1956,10 +2025,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14zg4mxj780ssk6lg8mvy4br3327cdlq17k5sds8zk2glng9vmsh";
+      sha256 = "0y3livdpkdzp4cy47ycpwqa7nhrf6fb1ff2lwhh4l5n4dpqympwn";
       type = "gem";
     };
-    version = "5.3.0";
+    version = "6.1.0";
   };
   gitlab_chronic_duration = {
     dependencies = ["numerizer"];
@@ -2076,10 +2145,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03ylzpn9mng9kwk472xbsfnqcbnm0qcjjlscp17hijvpvafd8a09";
+      sha256 = "0adf01kihxbmh8q84r6zyfgdmpbyb0lwcar3fi8j6bl6qcsbgwqx";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.5.2";
   };
   grape-entity = {
     dependencies = ["activesupport" "multi_json"];
@@ -2093,15 +2162,15 @@
     version = "0.7.1";
   };
   grape-path-helpers = {
-    dependencies = ["activesupport" "grape" "rake"];
+    dependencies = ["activesupport" "grape" "rake" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "131s6a0xa0fj7w5d6xb2p2z3404w6rxbc33v7fcg50jrjgqphrjz";
+      sha256 = "1xdp7b5fnvm89szy8ghpl6wm125iq7f0qnhibj5bxqrvg3xyhc2m";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.6.1";
   };
   grape_logging = {
     dependencies = ["grape" "rack"];
@@ -2141,10 +2210,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01ldxhn59lfg5ivxc9m11v1qhw29ql95qcvwwcap49n0z7d1i3k5";
+      sha256 = "0rm59b6klp97287h01aj8hr12mhsya585as2z1sk8hq2lp51imfn";
       type = "gem";
     };
-    version = "1.11.4";
+    version = "1.11.8";
   };
   graphql-client = {
     dependencies = ["activesupport" "graphql"];
@@ -2250,10 +2319,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13wkrvyldk21xlc9illam495fpgf7w7bksaj8y6n00y036wmbg60";
+      sha256 = "1gjbdni9jdpsdahrx2q7cvrc6jkrzpf9rdi0rli8mdvwi9xjafz5";
       type = "gem";
     };
-    version = "2.11.0";
+    version = "2.14.4";
   };
   hana = {
     groups = ["default"];
@@ -2318,25 +2387,15 @@
     version = "3.0.0";
   };
   heapy = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1r9f38fpgjgaxskkwvsliijj6vfmgsff9pnranvvvzkdl67hk1hw";
-      type = "gem";
-    };
-    version = "0.1.4";
-  };
-  hipchat = {
-    dependencies = ["httparty" "mimemagic"];
-    groups = ["default"];
+    dependencies = ["thor"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k";
+      sha256 = "1sl56ma851i82g3ax08igbn48igriiy152xzx30wgzv1bn21w53l";
       type = "gem";
     };
-    version = "1.5.2";
+    version = "0.2.0";
   };
   html-pipeline = {
     dependencies = ["activesupport" "nokogiri"];
@@ -2344,10 +2403,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19hc7njr029pzqljpfhzhdi0p2rgn8ihn3bdnai2apy6nj1g1sg2";
+      sha256 = "00xqmlny1b4ixff8sk0rkl4wcgwqc6v93qv8l3rn8d1dppvq7pm1";
       type = "gem";
     };
-    version = "2.12.2";
+    version = "2.13.2";
   };
   html2text = {
     dependencies = ["nokogiri"];
@@ -2450,10 +2509,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.9";
   };
   i18n_data = {
     groups = ["default"];
@@ -2491,10 +2550,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15510dh1vh7l2xs2a4956nhxpnf10168r62i497nmcbyqpp1df88";
+      sha256 = "1lmlx3g4z894vwsgbpxhpmkn63n74mynklbwy07l7ccak552jw1n";
       type = "gem";
     };
-    version = "0.12.1";
+    version = "1.1.0";
   };
   ipaddress = {
     groups = ["default"];
@@ -2523,10 +2582,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bfqb5qkgbcjrspspa2lha2is0anjnby20x9gp7bfjr5j5j9my32";
+      sha256 = "17nv98nz3jp7q5hbnniscavqh4xv53mnda1vxyg3ncn8raaw0rs2";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.1.4";
   };
   jmespath = {
     groups = ["default"];
@@ -2721,6 +2780,16 @@
     };
     version = "2.4.3";
   };
+  lefthook = {
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17bv6zfdzwbbh8n0iw8zgjngsvyp2imrrfshj62yrlxpka9ka0z3";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
   letter_opener = {
     dependencies = ["launchy"];
     groups = ["default" "development"];
@@ -2743,6 +2812,16 @@
     };
     version = "1.3.4";
   };
+  libyajl2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n5j0p8dxf9xzb9n4bkdr8w0a8gg3jzrn9indri3n0fv90gcs5qi";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
   license_finder = {
     dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"];
     groups = ["development" "omnibus" "test"];
@@ -2755,15 +2834,15 @@
     version = "6.0.0";
   };
   licensee = {
-    dependencies = ["rugged"];
+    dependencies = ["dotenv" "octokit" "reverse_markdown" "rugged" "thor"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+      sha256 = "0c551j4qy773d79hgypjaz43h5wjn08mnxnxy9s2vdjc40qm95k5";
       type = "gem";
     };
-    version = "8.9.2";
+    version = "9.14.1";
   };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify"];
@@ -2813,10 +2892,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1alz1x6rkhbw10qpszr384299rf52rcyasn0619a9p50vzs8vczq";
+      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.8.0";
   };
   lru_redux = {
     groups = ["default"];
@@ -2866,10 +2945,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n870r50z859dkcjz6dqvbvm895rpzw047basvbbfv9gi22rlxlv";
+      sha256 = "1003hf828anbd3pxwzs9ir9sclh64mgj971n4a7ilgj9xs8r0a38";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.10.0";
   };
   memoist = {
     groups = ["default"];
@@ -2938,24 +3017,25 @@
     version = "3.2020.0512";
   };
   mimemagic = {
+    dependencies = ["nokogiri" "rake"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qfqb9w76kmpb48frbzbyvjc0dfxh5qiw1kxdbv2y2kp6fxpa1kf";
+      sha256 = "0cqm9n9122qpksn9v6mp0gn3lrzxhh72lwl7yb6j75gykdan6h41";
       type = "gem";
     };
-    version = "0.3.5";
+    version = "0.3.10";
   };
   mini_histogram = {
-    groups = ["default"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "127vmd85kwi85qjbb1431bi4j5gdy0pp6wrq1f88ja1pf3mlb50y";
+      sha256 = "156xs8k7fqqcbk1fbf0ndz6gfw380fb2jrycfvhb06269r84n4ba";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "0.3.1";
   };
   mini_magick = {
     groups = ["default"];
@@ -2982,10 +3062,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitest = {
     groups = ["development" "test"];
@@ -2997,6 +3077,48 @@
     };
     version = "5.11.3";
   };
+  mixlib-cli = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ydxlfgd7nnj3rp1y70k4yk96xz5cywldjii2zbnw3sq9pippwp6";
+      type = "gem";
+    };
+    version = "2.1.8";
+  };
+  mixlib-config = {
+    dependencies = ["tomlrb"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1askip583sfnz25gywd508l3vj5wnvx9vp7gm1sfnixm7amssrwq";
+      type = "gem";
+    };
+    version = "3.0.9";
+  };
+  mixlib-log = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n5dm5iz90ijvjn59jfm8gb8hgsvbj0f1kpzbl38b02z0z4a4v7x";
+      type = "gem";
+    };
+    version = "3.0.9";
+  };
+  mixlib-shellout = {
+    dependencies = ["chef-utils"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g99c3s5zvrwvlv3gjw5fvpdimybpfazqyszjim5kdjjbq0586hj";
+      type = "gem";
+    };
+    version = "3.2.5";
+  };
   ms_rest = {
     dependencies = ["concurrent-ruby" "faraday" "timeliness"];
     groups = ["default"];
@@ -3091,16 +3213,6 @@
     };
     version = "1.0.1";
   };
-  nakayoshi_fork = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1mj5czi7rxxmfq4v9qjz74lcqypvnjxhxqfs71zhb2rsfa97a6jg";
-      type = "gem";
-    };
-    version = "0.0.4";
-  };
   nap = {
     groups = ["default" "development"];
     platforms = [];
@@ -3121,15 +3233,26 @@
     };
     version = "0.3.0";
   };
+  net-http-persistent = {
+    dependencies = ["connection_pool"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yfypmfg1maf20yfd22zzng8k955iylz7iip0mgc9lazw36g8li7";
+      type = "gem";
+    };
+    version = "4.0.1";
+  };
   net-ldap = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg";
+      sha256 = "13lh6qizxi8fza8py73b2dvjp9p010dvbaq7diagir9nh8plsinv";
       type = "gem";
     };
-    version = "0.16.2";
+    version = "0.16.3";
   };
   net-ntp = {
     groups = ["default"];
@@ -3141,6 +3264,17 @@
     };
     version = "2.1.3";
   };
+  net-scp = {
+    dependencies = ["net-ssh"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b4h3ip8d1gkrc0znnw54hbxillk73mdnaf5pz330lmrcl1wiilg";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
   net-ssh = {
     groups = ["default"];
     platforms = [];
@@ -3182,15 +3316,15 @@
     version = "0.1.2";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.1";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -3251,10 +3385,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yg6dhd028j74sm8hpw9w7bwfwlkml9wiis7nq20ivfsbcz4g8ac";
+      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
       type = "gem";
     };
-    version = "4.15.0";
+    version = "4.20.0";
+  };
+  ohai = {
+    dependencies = ["chef-config" "chef-utils" "ffi" "ffi-yajl" "ipaddress" "mixlib-cli" "mixlib-config" "mixlib-log" "mixlib-shellout" "plist" "train-core" "wmi-lite"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08pc5l9p741g08x7xzbkkyi2kz5m5xr8rdj6hfna9bjzb1p80ddq";
+      type = "gem";
+    };
+    version = "16.10.6";
   };
   oj = {
     groups = ["default"];
@@ -3310,6 +3455,17 @@
     };
     version = "0.3.3";
   };
+  omniauth-azure-activedirectory-v2 = {
+    dependencies = ["omniauth-oauth2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bgdyzjh7x9knkzaa6bl9f5fvh05nd0gqxrqassww0vqh5qgyfpy";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
   omniauth-azure-oauth2 = {
     dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
     groups = ["default"];
@@ -3594,10 +3750,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17b127xxmm2yqdz146qwbs57046kn0js1h8synv01dwqz2z1kp2l";
+      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
       type = "gem";
     };
-    version = "1.19.2";
+    version = "1.20.1";
   };
   parser = {
     dependencies = ["ast"];
@@ -3605,10 +3761,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f7gmm60yla325wlnd3qkxs59qm2y0aan8ljpg6k18rwzrrfil6z";
+      sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
       type = "gem";
     };
-    version = "2.7.2.0";
+    version = "3.0.0.0";
   };
   parslet = {
     groups = ["default" "development" "test"];
@@ -3641,6 +3797,26 @@
     };
     version = "1.2.3";
   };
+  pg_query = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i9l3y502ddm2lq3ajhxhqq17vs9hgxkxm443yw221ccibcfh6qf";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  plist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1whhr897z6z6av85x2cipyjk46bwh6s4wx6nbrcd3iifnzvbqs7l";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
   png_quantizator = {
     groups = ["development" "test"];
     platforms = [];
@@ -3730,31 +3906,27 @@
     };
     version = "0.13.1";
   };
-  pry-byebug = {
-    dependencies = ["byebug" "pry"];
+  pry-rails = {
+    dependencies = ["pry"];
     groups = ["development" "test"];
-    platforms = [{
-      engine = "maglev";
-    } {
-      engine = "ruby";
-    }];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv";
+      sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "0.3.9";
   };
-  pry-rails = {
-    dependencies = ["pry"];
+  pry-remote = {
+    dependencies = ["pry" "slop"];
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6";
+      sha256 = "10g1wrkcy5v5qyg9fpw1cag6g5rlcl1i66kn00r7kwqkzrdhd7nm";
       type = "gem";
     };
-    version = "0.3.9";
+    version = "0.1.8";
   };
   public_suffix = {
     groups = ["default" "development" "test"];
@@ -3766,6 +3938,28 @@
     };
     version = "4.0.6";
   };
+  puma = {
+    dependencies = ["nio4r"];
+    groups = ["puma"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13640p5fk19705ygp8j6p07lccag3d80bx8bmjgpd5zsxxsdc50b";
+      type = "gem";
+    };
+    version = "5.1.1";
+  };
+  puma_worker_killer = {
+    dependencies = ["get_process_mem" "puma"];
+    groups = ["puma"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jk1bhmx5px8y1ip4ky80cq5cwdaybdg4y55shd2vsdmjv938mcw";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
   pyu-ruby-sasl = {
     groups = ["default"];
     platforms = [];
@@ -3786,6 +3980,16 @@
     };
     version = "1.1.6";
   };
+  racc = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rack = {
     groups = ["default" "development" "kerberos" "test"];
     platforms = [];
@@ -3889,10 +4093,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qqsiwsb13sxkvxj54aybjhbxqi45fyiykaz5isc1y9frm2yyw64";
+      sha256 = "0vs4kfgp5pr5032nnhdapq60ga6karann06ilq1yjx8qck87cfxg";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   rails-controller-testing = {
     dependencies = ["actionpack" "actionview" "activesupport"];
@@ -3944,10 +4148,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05b79r0ms8jrs91zml1190qfxmnmks90g0sd820ks9msyr8xdp7j";
+      sha256 = "0x28620cvfja8r06lk6f90pw5lvijz9qi4bjsa4z1d1rkr3v4r3w";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -3974,10 +4178,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
       type = "gem";
     };
-    version = "13.0.1";
+    version = "13.0.3";
   };
   rb-fsevent = {
     groups = ["default" "development" "test"];
@@ -4237,6 +4441,17 @@
     };
     version = "3.1.2";
   };
+  reverse_markdown = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w786j869fjhjf72waj0hc9i4ghi45b78a2am27kij4sa2hmsc53";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
   rexml = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -4305,10 +4520,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
+      sha256 = "1dwai7jnwmdmd7ajbi2q0k0lx1dh88knv5wl7c34wjmf94yv8w5q";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "3.10.0";
   };
   rspec-core = {
     dependencies = ["rspec-support"];
@@ -4316,10 +4531,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzc1wdjb1qnbimjl8i1q1r1z5hdv2lmcw7ysz7jawj4d1cvpqvd";
+      sha256 = "0wwnfhxxvrlxlk1a3yxlb82k2f9lm0yn0598x7lk8fksaz4vv6mc";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.1";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -4327,10 +4542,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fjbwvq7qaz6h3sh1bs9q2qiy4zwcrc8f7xwv82dx2bc09dmqzhd";
+      sha256 = "1sz9bj4ri28adsklnh257pnbq4r5ayziw02qf67wry0kvzazbb17";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.1";
   };
   rspec-mocks = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -4338,10 +4553,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+      sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.2";
   };
   rspec-parameterized = {
     dependencies = ["binding_ninja" "parser" "proc_to_ast" "rspec" "unparser"];
@@ -4360,10 +4575,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01cyd449g4lsgrlck7nn3ynn8c8vwfhjb913y05wil56y77wsfkl";
+      sha256 = "0aw5knjij21kzwis3vkcmqc16p55lbig1wq0i37093qga7zfsdg1";
       type = "gem";
     };
-    version = "4.0.0";
+    version = "4.0.2";
   };
   rspec-retry = {
     dependencies = ["rspec-core"];
@@ -4381,10 +4596,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zwpyq1na23pvgacpxs2v9nwfbjbw6x3arca5j3l1xagigqmzhc3";
+      sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl";
       type = "gem";
     };
-    version = "3.9.2";
+    version = "3.10.2";
   };
   rspec_junit_formatter = {
     dependencies = ["rspec-core"];
@@ -4414,10 +4629,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yh71v5d7aw6jz7505d2sv0n0ldf3wh0ly3lphdanjl0n8b42y9h";
+      sha256 = "0phrig25dykgi42z6mf1abllh3ws6sv7awa82hzvvvbjx2xlzd3k";
       type = "gem";
     };
-    version = "0.89.1";
+    version = "0.93.1";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -4425,10 +4640,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "165ws2vwnw33nlqgzvzzjjp1zhkc712a92lbpbjx8j83g44dmdy4";
+      sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "1.4.1";
   };
   rubocop-gitlab-security = {
     dependencies = ["rubocop"];
@@ -4447,10 +4662,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13v66wi5l56bvp97nlmyxscq8ipkzfha1g7nlhcrbikvmrm3h5kf";
+      sha256 = "01aahh54r9mwhdj7v2s6kmkdm1k1n1z27dlknlbgm281ny1aswrk";
       type = "gem";
     };
-    version = "1.8.1";
+    version = "1.9.2";
   };
   rubocop-rails = {
     dependencies = ["activesupport" "rack" "rubocop"];
@@ -4458,10 +4673,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14g703lv0cbqw504cdjsv0yydrsnm61rwg0n0mql4zl5hw1n7lfh";
+      sha256 = "0h656la1g644g54g3gidz45p6v8i1156nw6bi66cfx7078y1339d";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.9.1";
   };
   rubocop-rspec = {
     dependencies = ["rubocop" "rubocop-ast"];
@@ -4496,6 +4711,17 @@
     };
     version = "0.2.1";
   };
+  ruby-magic-static = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0whs2i868g1bgglrxl6aba47h8n9zqglsipskk6l83rfkm85ik3g";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
   ruby-prof = {
     groups = ["default"];
     platforms = [];
@@ -4511,10 +4737,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
       type = "gem";
     };
-    version = "1.10.1";
+    version = "1.11.0";
   };
   ruby-saml = {
     dependencies = ["nokogiri"];
@@ -4593,10 +4819,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rdidxgpk1b6y1jq9v77lcx5khq0s9q0s253lr8x57d3hk43iskx";
+      sha256 = "04aq913plcxjw71l5r62qgz3bx3466p0wvgyfqahg5n3nybmcwqy";
       type = "gem";
     };
-    version = "0.28.4.1";
+    version = "1.1.0";
   };
   safe_yaml = {
     groups = ["default" "test"];
@@ -4690,21 +4916,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09565ppvd851zxpspn5d5q28wqkfjyfxhvda9w80i16p3y937155";
-      type = "gem";
-    };
-    version = "1.5.0";
-  };
-  scss_lint = {
-    dependencies = ["sass"];
-    groups = ["development" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1s6dzk4n9pnmqciliggwpiny43vc3cx3n2d5gqa9aqng77ff7yv7";
+      sha256 = "0jklwk9aldvlmdv17m77g2f82j383alqd4jjnwn4c564q9wvz3fp";
       type = "gem";
     };
-    version = "0.59.0";
+    version = "1.6.0";
   };
   securecompare = {
     groups = ["default"];
@@ -4885,6 +5100,16 @@
     };
     version = "2.3.4";
   };
+  slop = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
   snowplow-tracker = {
     dependencies = ["contracts"];
     groups = ["default"];
@@ -4985,10 +5210,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05c2dw3115zj3pmyyqh2iypc7afj8ibhrghisg0d61z7gzmir1rd";
+      sha256 = "0b4dffzlj38adin6gm0ky72r5c507qdb1jprnm7h9gnlj2qxlcp9";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.8.0";
   };
   state_machines-activerecord = {
     dependencies = ["activerecord" "state_machines-activemodel"];
@@ -4996,10 +5221,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12g7yqy11fpfiprzc86pwa9jjky1h3haxj37kg47467fgg43p511";
+      sha256 = "1dmaf4f4cg3gamzgga3gamp0kv9lvianqzr9103dw0xbp00vfbq7";
       type = "gem";
     };
-    version = "0.6.0";
+    version = "0.8.0";
   };
   swd = {
     dependencies = ["activesupport" "attr_required" "httpclient"];
@@ -5091,20 +5316,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
+      sha256 = "0g5p3r47qxxfmfagdf8wb68pd24938cgzdfn6pmpysrn296pg5m5";
       type = "gem";
     };
-    version = "1.7.2";
+    version = "1.8.0";
   };
   thor = {
     groups = ["default" "development" "omnibus" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "0.20.3";
+    version = "1.1.0";
   };
   thread_safe = {
     groups = ["default" "development" "test"];
@@ -5121,10 +5346,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08076cmdx0g51yrkd7dlxlr45nflink3jhdiq7006ljc2pc3212q";
+      sha256 = "1v4q8wlc4kr952r24q9x60cvimn27g34h0j23imwqkrjcbngsj5n";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.14.0";
   };
   tilt = {
     groups = ["default" "development" "test"];
@@ -5198,6 +5423,16 @@
     };
     version = "1.0.0";
   };
+  tomlrb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00x5y9h4fbvrv4xrjk4cqlkm4vq8gv73ax4alj3ac2x77zsnnrk8";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
   tpm-key_attestation = {
     dependencies = ["bindata" "openssl-signature_algorithm"];
     groups = ["default"];
@@ -5209,6 +5444,17 @@
     };
     version = "0.9.0";
   };
+  train-core = {
+    dependencies = ["addressable" "ffi" "json" "mixlib-shellout" "net-scp" "net-ssh"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pbfbmi9l5hxr1zly1bc72fk8a6by4d19wdap8q3mi3rlflqzbfp";
+      type = "gem";
+    };
+    version = "3.4.9";
+  };
   truncato = {
     dependencies = ["htmlentities" "nokogiri"];
     groups = ["default"];
@@ -5226,10 +5472,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0skr6ih9cr3pwp8l84f0z7fy3q9kiq8hw0sg3zqw0hpbbyj05743";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.8";
+    version = "1.2.9";
   };
   u2f = {
     groups = ["default"];
@@ -5282,17 +5528,6 @@
     };
     version = "1.7.0";
   };
-  unicode_plot = {
-    dependencies = ["enumerable-statistics"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "09cv90pi414ns1knbi0zjbn59071qjgym974jpsgj7yjh70dpj0g";
-      type = "gem";
-    };
-    version = "0.0.4";
-  };
   unicode_utils = {
     groups = ["default"];
     platforms = [];
@@ -5395,10 +5630,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k0bfxzvdcf1nrqhvnyhijc4mwab9wn4qvqb0ynq6p8dj0f866zi";
+      sha256 = "1bwj34rz7961rrl545f006m2jdz1nrc0m72gfqmnb41xwsvpagbk";
       type = "gem";
     };
-    version = "1.0.8";
+    version = "1.0.13";
   };
   validates_hostname = {
     dependencies = ["activerecord" "activesupport"];
@@ -5475,6 +5710,16 @@
     };
     version = "3.9.1";
   };
+  webrick = {
+    groups = ["metrics"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z6nv626lzfl7wx407l5x5688layh9qd82k97hrm6pwgj6miwk8b";
+      type = "gem";
+    };
+    version = "1.6.1";
+  };
   websocket-driver = {
     dependencies = ["websocket-extensions"];
     groups = ["default" "test"];
@@ -5517,6 +5762,16 @@
     };
     version = "1.1.0";
   };
+  wmi-lite = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "110dv4arvwyky6f2pq19f20f1xcjpiz3zfbals0y49ijpq8agvql";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
   xml-simple = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -5553,9 +5808,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12n0hiawqayzchi0yga5n19hi63b2snd49fv3n23n2i4pp05jzrp";
+      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
       type = "gem";
     };
-    version = "2.4.1";
+    version = "2.4.2";
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/update.py b/nixpkgs/pkgs/applications/version-management/gitlab/update.py
index f662bd3097f9..993dad08ec6e 100755
--- a/nixpkgs/pkgs/applications/version-management/gitlab/update.py
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/update.py
@@ -68,7 +68,10 @@ class GitLabRepo:
         version = self.rev2version(rev)
 
         passthru = {v: self.get_file(v, rev).strip() for v in ['GITALY_SERVER_VERSION', 'GITLAB_PAGES_VERSION',
-                                                               'GITLAB_SHELL_VERSION', 'GITLAB_WORKHORSE_VERSION']}
+                                                               'GITLAB_SHELL_VERSION']}
+
+        passthru["GITLAB_WORKHORSE_VERSION"] = version
+
         return dict(version=self.rev2version(rev),
                     repo_hash=self.get_git_hash(rev),
                     owner=self.owner,
@@ -181,9 +184,6 @@ def update_gitlab_shell():
     gitlab_shell_version = data['passthru']['GITLAB_SHELL_VERSION']
     _call_nix_update('gitlab-shell', gitlab_shell_version)
 
-    repo = GitLabRepo(repo='gitlab-shell')
-    gitlab_shell_dir = pathlib.Path(__file__).parent / 'gitlab-shell'
-
 
 @cli.command('update-gitlab-workhorse')
 def update_gitlab_workhorse():
@@ -192,8 +192,6 @@ def update_gitlab_workhorse():
     gitlab_workhorse_version = data['passthru']['GITLAB_WORKHORSE_VERSION']
     _call_nix_update('gitlab-workhorse', gitlab_workhorse_version)
 
-    repo = GitLabRepo('gitlab-org', 'gitlab-workhorse')
-    gitlab_workhorse_dir = pathlib.Path(__file__).parent / 'gitlab-workhorse'
 
 @cli.command('update-all')
 @click.option('--rev', default='latest', help='The rev to use (vX.Y.Z-ee), or \'latest\'')
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
index ba24888d9522..8084d2ebb6db 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -2,11 +2,19 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "_babel_code_frame___code_frame_7.10.4.tgz";
+      name = "_babel_code_frame___code_frame_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
-        sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+        name = "_babel_code_frame___code_frame_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz";
+        sha1 = "f4ad435aa263db935b8f10f2c552d23fb716a63f";
+      };
+    }
+    {
+      name = "_babel_code_frame___code_frame_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_code_frame___code_frame_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
       };
     }
     {
@@ -18,19 +26,19 @@
       };
     }
     {
-      name = "_babel_core___core_7.10.2.tgz";
+      name = "_babel_core___core_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_core___core_7.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.10.2.tgz";
-        sha1 = "bd6786046668a925ac2bd2fd95b579b92a23b36a";
+        name = "_babel_core___core_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.12.13.tgz";
+        sha1 = "b73a87a3a3e7d142a66248bf6ad88b9ceb093425";
       };
     }
     {
-      name = "_babel_generator___generator_7.11.6.tgz";
+      name = "_babel_generator___generator_7.12.15.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.11.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz";
-        sha1 = "b868900f81b163b4d464ea24545c61cbac4dc620";
+        name = "_babel_generator___generator_7.12.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz";
+        sha1 = "4617b5d0b25cc572474cc1aafee1edeaf9b5368f";
       };
     }
     {
@@ -90,19 +98,19 @@
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+      name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
-        sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
+        name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
+        sha1 = "93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a";
       };
     }
     {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
-        sha1 = "98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2";
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
+        sha1 = "bc63451d403a3b3082b97e1d8b3fe5bd4091e583";
       };
     }
     {
@@ -114,35 +122,35 @@
       };
     }
     {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.11.0.tgz";
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
-        sha1 = "ae69c83d84ee82f4b42f96e2a09410935a8f26df";
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz";
+        sha1 = "c5715695b4f8bab32660dbdcdc2341dec7e3df40";
       };
     }
     {
-      name = "_babel_helper_module_imports___helper_module_imports_7.10.4.tgz";
+      name = "_babel_helper_module_imports___helper_module_imports_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
-        sha1 = "4c5c54be04bd31670a7382797d75b9fa2e5b5620";
+        name = "_babel_helper_module_imports___helper_module_imports_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz";
+        sha1 = "ec67e4404f41750463e455cc3203f6a32e93fcb0";
       };
     }
     {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.11.0.tgz";
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
-        sha1 = "b16f250229e47211abdd84b34b64737c2ab2d359";
+        name = "_babel_helper_module_transforms___helper_module_transforms_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz";
+        sha1 = "01afb052dcad2044289b7b20beb3fa8bd0265bea";
       };
     }
     {
-      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
+      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
-        sha1 = "50dc96413d594f995a77905905b05893cd779673";
+        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz";
+        sha1 = "5c02d171b4c8615b1e7163f888c1c81c30a2aaea";
       };
     }
     {
@@ -170,35 +178,35 @@
       };
     }
     {
-      name = "_babel_helper_replace_supers___helper_replace_supers_7.10.4.tgz";
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
-        sha1 = "d585cd9388ea06e6031e4cd44b6713cbead9e6cf";
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz";
+        sha1 = "00ec4fb6862546bd3d0aff9aac56074277173121";
       };
     }
     {
-      name = "_babel_helper_simple_access___helper_simple_access_7.10.4.tgz";
+      name = "_babel_helper_simple_access___helper_simple_access_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
-        sha1 = "0f5ccda2945277a2a7a2d3a821e15395edcf3461";
+        name = "_babel_helper_simple_access___helper_simple_access_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz";
+        sha1 = "8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4";
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
-        sha1 = "f8a491244acf6a676158ac42072911ba83ad099f";
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
+        sha1 = "e9430be00baf3e88b0e13e6f9d4eaf2136372b05";
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
-        sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
+        sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed";
       };
     }
     {
@@ -210,27 +218,27 @@
       };
     }
     {
-      name = "_babel_helpers___helpers_7.10.1.tgz";
+      name = "_babel_helpers___helpers_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helpers___helpers_7.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz";
-        sha1 = "a6827b7cb975c9d9cef5fd61d919f60d8844a973";
+        name = "_babel_helpers___helpers_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.13.tgz";
+        sha1 = "3c75e993632e4dadc0274eae219c73eb7645ba47";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.10.4.tgz";
+      name = "_babel_highlight___highlight_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
-        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+        name = "_babel_highlight___highlight_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz";
+        sha1 = "8ab538393e00370b26271b01fa08f7f27f2e795c";
       };
     }
     {
-      name = "_babel_parser___parser_7.11.5.tgz";
+      name = "_babel_parser___parser_7.12.15.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz";
-        sha1 = "c7ff6303df71080ec7a4f5b8c003c58f1cf51037";
+        name = "_babel_parser___parser_7.12.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.15.tgz";
+        sha1 = "2b20de7f0b4b332d9b119dd9c33409c538b8aacf";
       };
     }
     {
@@ -722,27 +730,27 @@
       };
     }
     {
-      name = "_babel_template___template_7.10.4.tgz";
+      name = "_babel_template___template_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_template___template_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
-        sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
+        name = "_babel_template___template_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz";
+        sha1 = "530265be8a2589dbb37523844c5bcb55947fb327";
       };
     }
     {
-      name = "_babel_traverse___traverse_7.11.5.tgz";
+      name = "_babel_traverse___traverse_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz";
-        sha1 = "be777b93b518eb6d76ee2e1ea1d143daa11e61c3";
+        name = "_babel_traverse___traverse_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz";
+        sha1 = "689f0e4b4c08587ad26622832632735fb8c4e0c0";
       };
     }
     {
-      name = "_babel_types___types_7.11.5.tgz";
+      name = "_babel_types___types_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz";
-        sha1 = "d9de577d01252d77c6800cee039ee64faf75662d";
+        name = "_babel_types___types_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz";
+        sha1 = "8be1aa8f2c876da11a9cf650c0ecf656913ad611";
       };
     }
     {
@@ -770,27 +778,51 @@
       };
     }
     {
-      name = "_gitlab_at.js___at.js_1.5.5.tgz";
+      name = "_eslint_eslintrc___eslintrc_0.4.0.tgz";
       path = fetchurl {
-        name = "_gitlab_at.js___at.js_1.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/at.js/-/at.js-1.5.5.tgz";
-        sha1 = "5f6bfe6baaef360daa9b038fa78798d7a6a916b4";
+        name = "_eslint_eslintrc___eslintrc_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz";
+        sha1 = "99cc0a0584d72f1df38b900fb062ba995f395547";
       };
     }
     {
-      name = "_gitlab_eslint_plugin___eslint_plugin_5.0.0.tgz";
+      name = "_gitlab_at.js___at.js_1.5.7.tgz";
       path = fetchurl {
-        name = "_gitlab_eslint_plugin___eslint_plugin_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-5.0.0.tgz";
-        sha1 = "502eb2bccb55d65d6310ce9ef2da76035b6fc319";
+        name = "_gitlab_at.js___at.js_1.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/at.js/-/at.js-1.5.7.tgz";
+        sha1 = "1ee6f838cc4410a1d797770934df91d90df8179e";
       };
     }
     {
-      name = "_gitlab_svgs___svgs_1.177.0.tgz";
+      name = "_gitlab_eslint_plugin___eslint_plugin_8.1.0.tgz";
       path = fetchurl {
-        name = "_gitlab_svgs___svgs_1.177.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.177.0.tgz";
-        sha1 = "e481ed327a11d3834c8b1668d7485b9eefef97f5";
+        name = "_gitlab_eslint_plugin___eslint_plugin_8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-8.1.0.tgz";
+        sha1 = "a98ac4219da3316d30ee717ef0603c8fa0c4d5d8";
+      };
+    }
+    {
+      name = "_gitlab_favicon_overlay___favicon_overlay_2.0.0.tgz";
+      path = fetchurl {
+        name = "_gitlab_favicon_overlay___favicon_overlay_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/favicon-overlay/-/favicon-overlay-2.0.0.tgz";
+        sha1 = "2f32d0b6a4d5b8ac44e2927083d9ab478a78c984";
+      };
+    }
+    {
+      name = "_gitlab_stylelint_config___stylelint_config_2.3.0.tgz";
+      path = fetchurl {
+        name = "_gitlab_stylelint_config___stylelint_config_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/stylelint-config/-/stylelint-config-2.3.0.tgz";
+        sha1 = "b27e8544ff52a4c5e23ff7a104c7efff1f7078f0";
+      };
+    }
+    {
+      name = "_gitlab_svgs___svgs_1.185.0.tgz";
+      path = fetchurl {
+        name = "_gitlab_svgs___svgs_1.185.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.185.0.tgz";
+        sha1 = "15b5c6d680b5fcfc2deb2a5decef427939e34ed7";
       };
     }
     {
@@ -802,11 +834,11 @@
       };
     }
     {
-      name = "_gitlab_ui___ui_24.8.1.tgz";
+      name = "_gitlab_ui___ui_28.9.1.tgz";
       path = fetchurl {
-        name = "_gitlab_ui___ui_24.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-24.8.1.tgz";
-        sha1 = "eb674d19aedf9c91b9a14aa7a66397d54b199fb7";
+        name = "_gitlab_ui___ui_28.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-28.9.1.tgz";
+        sha1 = "7d4d4502ff09fca19ab815504f80afbf03dd2fc1";
       };
     }
     {
@@ -922,14 +954,6 @@
       };
     }
     {
-      name = "_jest_types___types_25.5.0.tgz";
-      path = fetchurl {
-        name = "_jest_types___types_25.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz";
-        sha1 = "4d6a4793f7b9599fc3680877b856a97dbccf2a9d";
-      };
-    }
-    {
       name = "_jest_types___types_26.5.2.tgz";
       path = fetchurl {
         name = "_jest_types___types_26.5.2.tgz";
@@ -946,19 +970,35 @@
       };
     }
     {
-      name = "_mrmlnc_readdir_enhanced___readdir_enhanced_2.2.1.tgz";
+      name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
+      path = fetchurl {
+        name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz";
+        sha1 = "d4b3549a5db5de2683e0c1071ab4f140904bbf69";
+      };
+    }
+    {
+      name = "_nodelib_fs.stat___fs.stat_2.0.4.tgz";
       path = fetchurl {
-        name = "_mrmlnc_readdir_enhanced___readdir_enhanced_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz";
-        sha1 = "524af240d1a360527b730475ecfa1344aa540dde";
+        name = "_nodelib_fs.stat___fs.stat_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz";
+        sha1 = "a3f2dd61bab43b8db8fa108a121cfffe4c676655";
       };
     }
     {
-      name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz";
+      name = "_nodelib_fs.walk___fs.walk_1.2.6.tgz";
       path = fetchurl {
-        name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz";
-        sha1 = "2b5a3ab3f918cca48a8c754c08168e3f03eba61b";
+        name = "_nodelib_fs.walk___fs.walk_1.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
+        sha1 = "cce9396b30aa5afe9e3756608f5831adcb53d063";
+      };
+    }
+    {
+      name = "_npmcli_move_file___move_file_1.0.1.tgz";
+      path = fetchurl {
+        name = "_npmcli_move_file___move_file_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz";
+        sha1 = "de103070dac0f48ce49cf6693c23af59c0f70464";
       };
     }
     {
@@ -970,19 +1010,67 @@
       };
     }
     {
-      name = "_rails_actioncable___actioncable_6.0.3_3.tgz";
+      name = "_rails_actioncable___actioncable_6.1.0.tgz";
+      path = fetchurl {
+        name = "_rails_actioncable___actioncable_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.1.0.tgz";
+        sha1 = "f336f25450b1bc43b99bc60557a70b6e6bb1d3d2";
+      };
+    }
+    {
+      name = "_rails_ujs___ujs_6.1.0.tgz";
+      path = fetchurl {
+        name = "_rails_ujs___ujs_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.0.tgz";
+        sha1 = "9a48df6511cb2b472c9f596c1f37dc0af022e751";
+      };
+    }
+    {
+      name = "_sentry_browser___browser_5.30.0.tgz";
+      path = fetchurl {
+        name = "_sentry_browser___browser_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.30.0.tgz";
+        sha1 = "c28f49d551db3172080caef9f18791a7fd39e3b3";
+      };
+    }
+    {
+      name = "_sentry_core___core_5.30.0.tgz";
+      path = fetchurl {
+        name = "_sentry_core___core_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz";
+        sha1 = "6b203664f69e75106ee8b5a2fe1d717379b331f3";
+      };
+    }
+    {
+      name = "_sentry_hub___hub_5.30.0.tgz";
+      path = fetchurl {
+        name = "_sentry_hub___hub_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz";
+        sha1 = "2453be9b9cb903404366e198bd30c7ca74cdc100";
+      };
+    }
+    {
+      name = "_sentry_minimal___minimal_5.30.0.tgz";
       path = fetchurl {
-        name = "_rails_actioncable___actioncable_6.0.3_3.tgz";
-        url  = "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.0.3-3.tgz";
-        sha1 = "fb1a46d3d353512764d5fa3cea2f492391601b7a";
+        name = "_sentry_minimal___minimal_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz";
+        sha1 = "ce3d3a6a273428e0084adcb800bc12e72d34637b";
       };
     }
     {
-      name = "_rails_ujs___ujs_6.0.3_2.tgz";
+      name = "_sentry_types___types_5.30.0.tgz";
       path = fetchurl {
-        name = "_rails_ujs___ujs_6.0.3_2.tgz";
-        url  = "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.0.3-2.tgz";
-        sha1 = "e14c1f29086858215ce7ccd9ad6d8888c458b4a3";
+        name = "_sentry_types___types_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz";
+        sha1 = "19709bbe12a1a0115bc790b8942917da5636f402";
+      };
+    }
+    {
+      name = "_sentry_utils___utils_5.30.0.tgz";
+      path = fetchurl {
+        name = "_sentry_utils___utils_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz";
+        sha1 = "9a5bd7ccff85ccfe7856d493bffa64cabc41e980";
       };
     }
     {
@@ -1018,6 +1106,22 @@
       };
     }
     {
+      name = "_stylelint_postcss_css_in_js___postcss_css_in_js_0.37.2.tgz";
+      path = fetchurl {
+        name = "_stylelint_postcss_css_in_js___postcss_css_in_js_0.37.2.tgz";
+        url  = "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz";
+        sha1 = "7e5a84ad181f4234a2480803422a47b8749af3d2";
+      };
+    }
+    {
+      name = "_stylelint_postcss_markdown___postcss_markdown_0.36.2.tgz";
+      path = fetchurl {
+        name = "_stylelint_postcss_markdown___postcss_markdown_0.36.2.tgz";
+        url  = "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz";
+        sha1 = "0a540c4692f8dcdfc13c8e352c17e7bfee2bb391";
+      };
+    }
+    {
       name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
       path = fetchurl {
         name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
@@ -1154,14 +1258,6 @@
       };
     }
     {
-      name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
-      path = fetchurl {
-        name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz";
-        sha1 = "7a8cbf6a406f36c8add871625b278eaf0b0d255a";
-      };
-    }
-    {
       name = "_types_istanbul_reports___istanbul_reports_3.0.0.tgz";
       path = fetchurl {
         name = "_types_istanbul_reports___istanbul_reports_3.0.0.tgz";
@@ -1170,19 +1266,27 @@
       };
     }
     {
-      name = "_types_jest___jest_26.0.14.tgz";
+      name = "_types_json_schema___json_schema_7.0.7.tgz";
+      path = fetchurl {
+        name = "_types_json_schema___json_schema_7.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz";
+        sha1 = "98a993516c859eb0d5c4c8f098317a9ea68db9ad";
+      };
+    }
+    {
+      name = "_types_json5___json5_0.0.29.tgz";
       path = fetchurl {
-        name = "_types_jest___jest_26.0.14.tgz";
-        url  = "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.14.tgz";
-        sha1 = "078695f8f65cb55c5a98450d65083b2b73e5a3f3";
+        name = "_types_json5___json5_0.0.29.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
       };
     }
     {
-      name = "_types_json_schema___json_schema_7.0.4.tgz";
+      name = "_types_mdast___mdast_3.0.3.tgz";
       path = fetchurl {
-        name = "_types_json_schema___json_schema_7.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz";
-        sha1 = "38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339";
+        name = "_types_mdast___mdast_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz";
+        sha1 = "2d7d671b1cd1ea3deb306ea75036c2a0407d2deb";
       };
     }
     {
@@ -1194,6 +1298,14 @@
       };
     }
     {
+      name = "_types_minimist___minimist_1.2.1.tgz";
+      path = fetchurl {
+        name = "_types_minimist___minimist_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz";
+        sha1 = "283f669ff76d7b8260df8ab7a4262cc83d988256";
+      };
+    }
+    {
       name = "_types_node___node_10.12.9.tgz";
       path = fetchurl {
         name = "_types_node___node_10.12.9.tgz";
@@ -1210,6 +1322,14 @@
       };
     }
     {
+      name = "_types_parse_json___parse_json_4.0.0.tgz";
+      path = fetchurl {
+        name = "_types_parse_json___parse_json_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "2f8bb441434d163b35fb8ffdccd7138927ffb8c0";
+      };
+    }
+    {
       name = "_types_parse5___parse5_5.0.0.tgz";
       path = fetchurl {
         name = "_types_parse5___parse5_5.0.0.tgz";
@@ -1250,22 +1370,6 @@
       };
     }
     {
-      name = "_types_vfile_message___vfile_message_1.0.1.tgz";
-      path = fetchurl {
-        name = "_types_vfile_message___vfile_message_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-1.0.1.tgz";
-        sha1 = "e1e9895cc6b36c462d4244e64e6d0b6eaf65355a";
-      };
-    }
-    {
-      name = "_types_vfile___vfile_3.0.2.tgz";
-      path = fetchurl {
-        name = "_types_vfile___vfile_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz";
-        sha1 = "19c18cd232df11ce6fa6ad80259bc86c366b09b9";
-      };
-    }
-    {
       name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
       path = fetchurl {
         name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
@@ -1314,155 +1418,155 @@
       };
     }
     {
-      name = "_vue_test_utils___test_utils_1.0.0_beta.30.tgz";
+      name = "_vue_test_utils___test_utils_1.1.2.tgz";
       path = fetchurl {
-        name = "_vue_test_utils___test_utils_1.0.0_beta.30.tgz";
-        url  = "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.30.tgz";
-        sha1 = "d5f26d1e2411fdb7fa7fdedb61b4b4ea4194c49d";
+        name = "_vue_test_utils___test_utils_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.1.2.tgz";
+        sha1 = "fdb487448dceefeaf3d01d465f7c836a3d666dbc";
       };
     }
     {
-      name = "_webassemblyjs_ast___ast_1.8.5.tgz";
+      name = "_webassemblyjs_ast___ast_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_ast___ast_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz";
-        sha1 = "51b1c5fe6576a34953bf4b253df9f0d490d9e359";
+        name = "_webassemblyjs_ast___ast_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz";
+        sha1 = "bd850604b4042459a5a41cd7d338cbed695ed964";
       };
     }
     {
-      name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
+      name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz";
-        sha1 = "1ba926a2923613edce496fd5b02e8ce8a5f49721";
+        name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz";
+        sha1 = "3c3d3b271bddfc84deb00f71344438311d52ffb4";
       };
     }
     {
-      name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
+      name = "_webassemblyjs_helper_api_error___helper_api_error_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz";
-        sha1 = "c49dad22f645227c5edb610bdb9697f1aab721f7";
+        name = "_webassemblyjs_helper_api_error___helper_api_error_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz";
+        sha1 = "203f676e333b96c9da2eeab3ccef33c45928b6a2";
       };
     }
     {
-      name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
+      name = "_webassemblyjs_helper_buffer___helper_buffer_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz";
-        sha1 = "fea93e429863dd5e4338555f42292385a653f204";
+        name = "_webassemblyjs_helper_buffer___helper_buffer_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz";
+        sha1 = "a1442d269c5feb23fcbc9ef759dac3547f29de00";
       };
     }
     {
-      name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
+      name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz";
-        sha1 = "9a740ff48e3faa3022b1dff54423df9aa293c25e";
+        name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz";
+        sha1 = "647f8892cd2043a82ac0c8c5e75c36f1d9159f27";
       };
     }
     {
-      name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
+      name = "_webassemblyjs_helper_fsm___helper_fsm_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz";
-        sha1 = "ba0b7d3b3f7e4733da6059c9332275d860702452";
+        name = "_webassemblyjs_helper_fsm___helper_fsm_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz";
+        sha1 = "c05256b71244214671f4b08ec108ad63b70eddb8";
       };
     }
     {
-      name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
+      name = "_webassemblyjs_helper_module_context___helper_module_context_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz";
-        sha1 = "def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245";
+        name = "_webassemblyjs_helper_module_context___helper_module_context_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz";
+        sha1 = "25d8884b76839871a08a6c6f806c3979ef712f07";
       };
     }
     {
-      name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
+      name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz";
-        sha1 = "537a750eddf5c1e932f3744206551c91c1b93e61";
+        name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz";
+        sha1 = "4fed8beac9b8c14f8c58b70d124d549dd1fe5790";
       };
     }
     {
-      name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
+      name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz";
-        sha1 = "74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf";
+        name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz";
+        sha1 = "5a4138d5a6292ba18b04c5ae49717e4167965346";
       };
     }
     {
-      name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
+      name = "_webassemblyjs_ieee754___ieee754_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz";
-        sha1 = "712329dbef240f36bf57bd2f7b8fb9bf4154421e";
+        name = "_webassemblyjs_ieee754___ieee754_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz";
+        sha1 = "15c7a0fbaae83fb26143bbacf6d6df1702ad39e4";
       };
     }
     {
-      name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
+      name = "_webassemblyjs_leb128___leb128_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz";
-        sha1 = "044edeb34ea679f3e04cd4fd9824d5e35767ae10";
+        name = "_webassemblyjs_leb128___leb128_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz";
+        sha1 = "f19ca0b76a6dc55623a09cffa769e838fa1e1c95";
       };
     }
     {
-      name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
+      name = "_webassemblyjs_utf8___utf8_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz";
-        sha1 = "a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc";
+        name = "_webassemblyjs_utf8___utf8_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz";
+        sha1 = "04d33b636f78e6a6813227e82402f7637b6229ab";
       };
     }
     {
-      name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_edit___wasm_edit_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz";
-        sha1 = "962da12aa5acc1c131c81c4232991c82ce56e01a";
+        name = "_webassemblyjs_wasm_edit___wasm_edit_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz";
+        sha1 = "3fe6d79d3f0f922183aa86002c42dd256cfee9cf";
       };
     }
     {
-      name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_gen___wasm_gen_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz";
-        sha1 = "54840766c2c1002eb64ed1abe720aded714f98bc";
+        name = "_webassemblyjs_wasm_gen___wasm_gen_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz";
+        sha1 = "50bc70ec68ded8e2763b01a1418bf43491a7a49c";
       };
     }
     {
-      name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_opt___wasm_opt_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz";
-        sha1 = "b24d9f6ba50394af1349f510afa8ffcb8a63d264";
+        name = "_webassemblyjs_wasm_opt___wasm_opt_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz";
+        sha1 = "2211181e5b31326443cc8112eb9f0b9028721a61";
       };
     }
     {
-      name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_parser___wasm_parser_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz";
-        sha1 = "21576f0ec88b91427357b8536383668ef7c66b8d";
+        name = "_webassemblyjs_wasm_parser___wasm_parser_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz";
+        sha1 = "9d48e44826df4a6598294aa6c87469d642fff65e";
       };
     }
     {
-      name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
+      name = "_webassemblyjs_wast_parser___wast_parser_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz";
-        sha1 = "e10eecd542d0e7bd394f6827c49f3df6d4eefb8c";
+        name = "_webassemblyjs_wast_parser___wast_parser_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz";
+        sha1 = "3031115d79ac5bd261556cecc3fa90a3ef451914";
       };
     }
     {
-      name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
+      name = "_webassemblyjs_wast_printer___wast_printer_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz";
-        sha1 = "114bbc481fd10ca0e23b3560fa812748b0bae5bc";
+        name = "_webassemblyjs_wast_printer___wast_printer_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz";
+        sha1 = "4935d54c85fef637b00ce9f52377451d00d47899";
       };
     }
     {
@@ -1538,19 +1642,11 @@
       };
     }
     {
-      name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
-      path = fetchurl {
-        name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz";
-        sha1 = "294adb71b57398b0680015f0a38c563ee1db5384";
-      };
-    }
-    {
-      name = "acorn_walk___acorn_walk_6.2.0.tgz";
+      name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
       path = fetchurl {
-        name = "acorn_walk___acorn_walk_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz";
-        sha1 = "123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c";
+        name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b";
       };
     }
     {
@@ -1562,11 +1658,11 @@
       };
     }
     {
-      name = "acorn___acorn_6.3.0.tgz";
+      name = "acorn___acorn_6.4.2.tgz";
       path = fetchurl {
-        name = "acorn___acorn_6.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz";
-        sha1 = "0087509119ffa4fc0a0041d1e93a417e68cb856e";
+        name = "acorn___acorn_6.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz";
+        sha1 = "35866fd710528e92de10cf06016498e47e39e1e6";
       };
     }
     {
@@ -1610,19 +1706,27 @@
       };
     }
     {
-      name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+      name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
+      path = fetchurl {
+        name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha1 = "31f29da5ab6e00d1c2d329acf7b5929614d5014d";
+      };
+    }
+    {
+      name = "ajv___ajv_6.12.6.tgz";
       path = fetchurl {
-        name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
-        sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da";
+        name = "ajv___ajv_6.12.6.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
+        sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
       };
     }
     {
-      name = "ajv___ajv_6.12.5.tgz";
+      name = "ajv___ajv_7.0.4.tgz";
       path = fetchurl {
-        name = "ajv___ajv_6.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz";
-        sha1 = "19b0e8bae8f476e5ba666300387775fb1a00a4da";
+        name = "ajv___ajv_7.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-7.0.4.tgz";
+        sha1 = "827e5f5ae32f5e5c1637db61f253a112229b5e2f";
       };
     }
     {
@@ -1650,6 +1754,14 @@
       };
     }
     {
+      name = "ansi_colors___ansi_colors_4.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_colors___ansi_colors_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
+      };
+    }
+    {
       name = "ansi_escapes___ansi_escapes_4.3.0.tgz";
       path = fetchurl {
         name = "ansi_escapes___ansi_escapes_4.3.0.tgz";
@@ -1786,6 +1898,14 @@
       };
     }
     {
+      name = "apollo_link_http___apollo_link_http_1.5.17.tgz";
+      path = fetchurl {
+        name = "apollo_link_http___apollo_link_http_1.5.17.tgz";
+        url  = "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz";
+        sha1 = "499e9f1711bf694497f02c51af12d82de5d8d8ba";
+      };
+    }
+    {
       name = "apollo_link___apollo_link_1.2.14.tgz";
       path = fetchurl {
         name = "apollo_link___apollo_link_1.2.14.tgz";
@@ -1906,11 +2026,11 @@
       };
     }
     {
-      name = "array_includes___array_includes_3.0.3.tgz";
+      name = "array_includes___array_includes_3.1.2.tgz";
       path = fetchurl {
-        name = "array_includes___array_includes_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz";
-        sha1 = "184b48f62d92d7452bb31b323165c7f8bd02266d";
+        name = "array_includes___array_includes_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz";
+        sha1 = "a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8";
       };
     }
     {
@@ -1922,6 +2042,14 @@
       };
     }
     {
+      name = "array_union___array_union_2.1.0.tgz";
+      path = fetchurl {
+        name = "array_union___array_union_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz";
+        sha1 = "b798420adbeb1de828d84acd8a2e23d3efe85e8d";
+      };
+    }
+    {
       name = "array_uniq___array_uniq_1.0.3.tgz";
       path = fetchurl {
         name = "array_uniq___array_uniq_1.0.3.tgz";
@@ -1938,11 +2066,11 @@
       };
     }
     {
-      name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+      name = "array.prototype.flat___array.prototype.flat_1.2.4.tgz";
       path = fetchurl {
-        name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz";
-        sha1 = "0de82b426b0318dbfdb940089e38b043d37f6c7b";
+        name = "array.prototype.flat___array.prototype.flat_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz";
+        sha1 = "6ef638b43312bd401b4c6199fdec7e2dc9e9a123";
       };
     }
     {
@@ -2002,11 +2130,11 @@
       };
     }
     {
-      name = "astral_regex___astral_regex_1.0.0.tgz";
+      name = "astral_regex___astral_regex_2.0.0.tgz";
       path = fetchurl {
-        name = "astral_regex___astral_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
-        sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
+        name = "astral_regex___astral_regex_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
       };
     }
     {
@@ -2050,11 +2178,11 @@
       };
     }
     {
-      name = "autoprefixer___autoprefixer_9.6.1.tgz";
+      name = "autoprefixer___autoprefixer_9.8.6.tgz";
       path = fetchurl {
-        name = "autoprefixer___autoprefixer_9.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz";
-        sha1 = "51967a02d2d2300bb01866c1611ec8348d355a47";
+        name = "autoprefixer___autoprefixer_9.8.6.tgz";
+        url  = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz";
+        sha1 = "3b73594ca1bf9266320c5acf1588d74dea74210f";
       };
     }
     {
@@ -2122,11 +2250,11 @@
       };
     }
     {
-      name = "babel_loader___babel_loader_8.0.6.tgz";
+      name = "babel_loader___babel_loader_8.2.2.tgz";
       path = fetchurl {
-        name = "babel_loader___babel_loader_8.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz";
-        sha1 = "e33bdb6f362b03f4bb141a0c21ab87c501b70dfb";
+        name = "babel_loader___babel_loader_8.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz";
+        sha1 = "9363ce84c10c9a40e6c753748e1441b60c8a0b81";
       };
     }
     {
@@ -2194,11 +2322,11 @@
       };
     }
     {
-      name = "bail___bail_1.0.3.tgz";
+      name = "bail___bail_1.0.5.tgz";
       path = fetchurl {
-        name = "bail___bail_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz";
-        sha1 = "63cfb9ddbac829b02a3128cd53224be78e6c21a3";
+        name = "bail___bail_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz";
+        sha1 = "b6fa133404a392cbc1f8c4bf63f5953351e7a776";
       };
     }
     {
@@ -2322,11 +2450,11 @@
       };
     }
     {
-      name = "bn.js___bn.js_4.11.8.tgz";
+      name = "bn.js___bn.js_4.11.9.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_4.11.8.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
-        sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
+        name = "bn.js___bn.js_4.11.9.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
+        sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
       };
     }
     {
@@ -2458,19 +2586,11 @@
       };
     }
     {
-      name = "browserslist___browserslist_4.12.0.tgz";
+      name = "browserslist___browserslist_4.16.1.tgz";
       path = fetchurl {
-        name = "browserslist___browserslist_4.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz";
-        sha1 = "06c6d5715a1ede6c51fc39ff67fd647f740b656d";
-      };
-    }
-    {
-      name = "bs_logger___bs_logger_0.2.6.tgz";
-      path = fetchurl {
-        name = "bs_logger___bs_logger_0.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz";
-        sha1 = "eb7d365307a72cf974cc6cda76b68354ad336bd8";
+        name = "browserslist___browserslist_4.16.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz";
+        sha1 = "bf757a2da376b3447b800a16f0f1c96358138766";
       };
     }
     {
@@ -2554,11 +2674,11 @@
       };
     }
     {
-      name = "cacache___cacache_13.0.1.tgz";
+      name = "cacache___cacache_15.0.5.tgz";
       path = fetchurl {
-        name = "cacache___cacache_13.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz";
-        sha1 = "a8000c21697089082f85287a1aec6e382024a71c";
+        name = "cacache___cacache_15.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz";
+        sha1 = "69162833da29170d6732334643c60e005f5f17d0";
       };
     }
     {
@@ -2586,27 +2706,19 @@
       };
     }
     {
-      name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
+      name = "call_bind___call_bind_1.0.2.tgz";
       path = fetchurl {
-        name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
-        sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
-      };
-    }
-    {
-      name = "caller_callsite___caller_callsite_2.0.0.tgz";
-      path = fetchurl {
-        name = "caller_callsite___caller_callsite_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz";
-        sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+        name = "call_bind___call_bind_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz";
+        sha1 = "b1d4e89e688119c3c9a903ad30abb2f6a919be3c";
       };
     }
     {
-      name = "caller_path___caller_path_2.0.0.tgz";
+      name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
       path = fetchurl {
-        name = "caller_path___caller_path_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz";
-        sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+        name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
+        sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
       };
     }
     {
@@ -2618,14 +2730,6 @@
       };
     }
     {
-      name = "callsites___callsites_2.0.0.tgz";
-      path = fetchurl {
-        name = "callsites___callsites_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz";
-        sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
-      };
-    }
-    {
       name = "callsites___callsites_3.0.0.tgz";
       path = fetchurl {
         name = "callsites___callsites_3.0.0.tgz";
@@ -2650,11 +2754,11 @@
       };
     }
     {
-      name = "camelcase_keys___camelcase_keys_4.2.0.tgz";
+      name = "camelcase_keys___camelcase_keys_6.2.2.tgz";
       path = fetchurl {
-        name = "camelcase_keys___camelcase_keys_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz";
-        sha1 = "a2aa5fb1af688758259c32c141426d78923b9b77";
+        name = "camelcase_keys___camelcase_keys_6.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz";
+        sha1 = "5e755d6ba51aa223ec7d3d52f25778210f9dc3c0";
       };
     }
     {
@@ -2666,14 +2770,6 @@
       };
     }
     {
-      name = "camelcase___camelcase_4.1.0.tgz";
-      path = fetchurl {
-        name = "camelcase___camelcase_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz";
-        sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
-      };
-    }
-    {
       name = "camelcase___camelcase_5.3.1.tgz";
       path = fetchurl {
         name = "camelcase___camelcase_5.3.1.tgz";
@@ -2690,11 +2786,11 @@
       };
     }
     {
-      name = "caniuse_lite___caniuse_lite_1.0.30001081.tgz";
+      name = "caniuse_lite___caniuse_lite_1.0.30001185.tgz";
       path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30001081.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001081.tgz";
-        sha1 = "40615a3c416a047c5a4d45673e5257bf128eb3b5";
+        name = "caniuse_lite___caniuse_lite_1.0.30001185.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz";
+        sha1 = "3482a407d261da04393e2f0d61eefbc53be43b95";
       };
     }
     {
@@ -2722,11 +2818,11 @@
       };
     }
     {
-      name = "ccount___ccount_1.0.3.tgz";
+      name = "chalk___chalk_1.1.3.tgz";
       path = fetchurl {
-        name = "ccount___ccount_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz";
-        sha1 = "f1cec43f332e2ea5a569fd46f9f5bde4e6102aff";
+        name = "chalk___chalk_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
+        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
       };
     }
     {
@@ -2738,14 +2834,6 @@
       };
     }
     {
-      name = "chalk___chalk_1.1.3.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
-        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
-      };
-    }
-    {
       name = "chalk___chalk_3.0.0.tgz";
       path = fetchurl {
         name = "chalk___chalk_3.0.0.tgz";
@@ -2770,43 +2858,27 @@
       };
     }
     {
-      name = "character_entities_html4___character_entities_html4_1.1.2.tgz";
+      name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
       path = fetchurl {
-        name = "character_entities_html4___character_entities_html4_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz";
-        sha1 = "c44fdde3ce66b52e8d321d6c1bf46101f0150610";
+        name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz";
+        sha1 = "94bc1845dce70a5bb9d2ecc748725661293d8fc1";
       };
     }
     {
-      name = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
+      name = "character_entities___character_entities_1.2.4.tgz";
       path = fetchurl {
-        name = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz";
-        sha1 = "7c6defb81648498222c9855309953d05f4d63a9c";
+        name = "character_entities___character_entities_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz";
+        sha1 = "e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b";
       };
     }
     {
-      name = "character_entities___character_entities_1.2.2.tgz";
+      name = "character_reference_invalid___character_reference_invalid_1.1.4.tgz";
       path = fetchurl {
-        name = "character_entities___character_entities_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.2.tgz";
-        sha1 = "58c8f371c0774ef0ba9b2aca5f00d8f100e6e363";
-      };
-    }
-    {
-      name = "character_reference_invalid___character_reference_invalid_1.1.2.tgz";
-      path = fetchurl {
-        name = "character_reference_invalid___character_reference_invalid_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz";
-        sha1 = "21e421ad3d84055952dab4a43a04e73cd425d3ed";
-      };
-    }
-    {
-      name = "chardet___chardet_0.7.0.tgz";
-      path = fetchurl {
-        name = "chardet___chardet_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
-        sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e";
+        name = "character_reference_invalid___character_reference_invalid_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz";
+        sha1 = "083329cda0eae272ab3dbbf37e9a382c13af1560";
       };
     }
     {
@@ -2842,6 +2914,14 @@
       };
     }
     {
+      name = "chownr___chownr_2.0.0.tgz";
+      path = fetchurl {
+        name = "chownr___chownr_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz";
+        sha1 = "15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece";
+      };
+    }
+    {
       name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
       path = fetchurl {
         name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
@@ -2898,22 +2978,6 @@
       };
     }
     {
-      name = "cli_cursor___cli_cursor_3.1.0.tgz";
-      path = fetchurl {
-        name = "cli_cursor___cli_cursor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
-        sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
-      };
-    }
-    {
-      name = "cli_width___cli_width_2.2.0.tgz";
-      path = fetchurl {
-        name = "cli_width___cli_width_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
-        sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
-      };
-    }
-    {
       name = "clipboard___clipboard_1.7.1.tgz";
       path = fetchurl {
         name = "clipboard___clipboard_1.7.1.tgz";
@@ -2930,14 +2994,6 @@
       };
     }
     {
-      name = "cliui___cliui_4.1.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
-        sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
-      };
-    }
-    {
       name = "cliui___cliui_5.0.0.tgz";
       path = fetchurl {
         name = "cliui___cliui_5.0.0.tgz";
@@ -3026,14 +3082,6 @@
       };
     }
     {
-      name = "collapse_white_space___collapse_white_space_1.0.5.tgz";
-      path = fetchurl {
-        name = "collapse_white_space___collapse_white_space_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz";
-        sha1 = "c2495b699ab1ed380d29a1091e01063e75dbbe3a";
-      };
-    }
-    {
       name = "collect_v8_coverage___collect_v8_coverage_1.0.1.tgz";
       path = fetchurl {
         name = "collect_v8_coverage___collect_v8_coverage_1.0.1.tgz";
@@ -3090,6 +3138,14 @@
       };
     }
     {
+      name = "colorette___colorette_1.2.1.tgz";
+      path = fetchurl {
+        name = "colorette___colorette_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz";
+        sha1 = "4d0b921325c14faf92633086a536db6e89564b1b";
+      };
+    }
+    {
       name = "colors___colors_1.3.3.tgz";
       path = fetchurl {
         name = "colors___colors_1.3.3.tgz";
@@ -3170,11 +3226,11 @@
       };
     }
     {
-      name = "compression_webpack_plugin___compression_webpack_plugin_3.0.1.tgz";
+      name = "compression_webpack_plugin___compression_webpack_plugin_5.0.2.tgz";
       path = fetchurl {
-        name = "compression_webpack_plugin___compression_webpack_plugin_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.1.tgz";
-        sha1 = "be7a343e6dfbccbd64a77c5fbe29627d140fc321";
+        name = "compression_webpack_plugin___compression_webpack_plugin_5.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-5.0.2.tgz";
+        sha1 = "df84e682cfa1fb2a230e71cf83d50c323d5369c2";
       };
     }
     {
@@ -3226,11 +3282,11 @@
       };
     }
     {
-      name = "confusing_browser_globals___confusing_browser_globals_1.0.9.tgz";
+      name = "confusing_browser_globals___confusing_browser_globals_1.0.10.tgz";
       path = fetchurl {
-        name = "confusing_browser_globals___confusing_browser_globals_1.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz";
-        sha1 = "72bc13b483c0276801681871d4898516f8f54fdd";
+        name = "confusing_browser_globals___confusing_browser_globals_1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz";
+        sha1 = "30d1e7f3d1b882b25ec4933d1d1adac353d20a59";
       };
     }
     {
@@ -3370,11 +3426,11 @@
       };
     }
     {
-      name = "copy_webpack_plugin___copy_webpack_plugin_5.1.1.tgz";
+      name = "copy_webpack_plugin___copy_webpack_plugin_5.1.2.tgz";
       path = fetchurl {
-        name = "copy_webpack_plugin___copy_webpack_plugin_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz";
-        sha1 = "5481a03dea1123d88a988c6ff8b78247214f0b88";
+        name = "copy_webpack_plugin___copy_webpack_plugin_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz";
+        sha1 = "8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2";
       };
     }
     {
@@ -3394,11 +3450,11 @@
       };
     }
     {
-      name = "core_js___core_js_3.6.4.tgz";
+      name = "core_js___core_js_3.9.1.tgz";
       path = fetchurl {
-        name = "core_js___core_js_3.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz";
-        sha1 = "440a83536b458114b9cb2ac1580ba377dc470647";
+        name = "core_js___core_js_3.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.9.1.tgz";
+        sha1 = "cec8de593db8eb2a85ffb0dbdeb312cb6e5460ae";
       };
     }
     {
@@ -3418,11 +3474,11 @@
       };
     }
     {
-      name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
+      name = "cosmiconfig___cosmiconfig_7.0.0.tgz";
       path = fetchurl {
-        name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
-        sha1 = "040f726809c591e77a17c0a3626ca45b4f168b1a";
+        name = "cosmiconfig___cosmiconfig_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz";
+        sha1 = "ef9b44d773959cae63ddecd122de23853b60f8d3";
       };
     }
     {
@@ -3466,14 +3522,6 @@
       };
     }
     {
-      name = "cross_spawn___cross_spawn_6.0.5.tgz";
-      path = fetchurl {
-        name = "cross_spawn___cross_spawn_6.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
-      };
-    }
-    {
       name = "cross_spawn___cross_spawn_3.0.1.tgz";
       path = fetchurl {
         name = "cross_spawn___cross_spawn_3.0.1.tgz";
@@ -3482,6 +3530,14 @@
       };
     }
     {
+      name = "cross_spawn___cross_spawn_6.0.5.tgz";
+      path = fetchurl {
+        name = "cross_spawn___cross_spawn_6.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
+      };
+    }
+    {
       name = "cross_spawn___cross_spawn_7.0.3.tgz";
       path = fetchurl {
         name = "cross_spawn___cross_spawn_7.0.3.tgz";
@@ -3514,14 +3570,6 @@
       };
     }
     {
-      name = "crypto_random_string___crypto_random_string_3.0.1.tgz";
-      path = fetchurl {
-        name = "crypto_random_string___crypto_random_string_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-3.0.1.tgz";
-        sha1 = "29d7dc759d577a768afb3b7b2765dd9bd7ffe36a";
-      };
-    }
-    {
       name = "css_b64_images___css_b64_images_0.2.5.tgz";
       path = fetchurl {
         name = "css_b64_images___css_b64_images_0.2.5.tgz";
@@ -3530,6 +3578,14 @@
       };
     }
     {
+      name = "css_color_names___css_color_names_0.0.4.tgz";
+      path = fetchurl {
+        name = "css_color_names___css_color_names_0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz";
+        sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0";
+      };
+    }
+    {
       name = "css_loader___css_loader_2.1.1.tgz";
       path = fetchurl {
         name = "css_loader___css_loader_2.1.1.tgz";
@@ -3546,6 +3602,22 @@
       };
     }
     {
+      name = "css_shorthand_properties___css_shorthand_properties_1.1.1.tgz";
+      path = fetchurl {
+        name = "css_shorthand_properties___css_shorthand_properties_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz";
+        sha1 = "1c808e63553c283f289f2dd56fcee8f3337bd935";
+      };
+    }
+    {
+      name = "css_values___css_values_0.1.0.tgz";
+      path = fetchurl {
+        name = "css_values___css_values_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/css-values/-/css-values-0.1.0.tgz";
+        sha1 = "128b7ce103d4dc027a814a5d5995c54781d7b4c6";
+      };
+    }
+    {
       name = "css___css_2.2.4.tgz";
       path = fetchurl {
         name = "css___css_2.2.4.tgz";
@@ -3978,11 +4050,11 @@
       };
     }
     {
-      name = "debug___debug_4.1.1.tgz";
+      name = "debug___debug_4.3.1.tgz";
       path = fetchurl {
-        name = "debug___debug_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz";
-        sha1 = "3b72260255109c6b589cee050f1d516139664791";
+        name = "debug___debug_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
+        sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
       };
     }
     {
@@ -4226,14 +4298,6 @@
       };
     }
     {
-      name = "diff_sequences___diff_sequences_25.2.6.tgz";
-      path = fetchurl {
-        name = "diff_sequences___diff_sequences_25.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz";
-        sha1 = "5f467c00edd35352b7bca46d7927d60e687a76dd";
-      };
-    }
-    {
       name = "diff_sequences___diff_sequences_26.5.0.tgz";
       path = fetchurl {
         name = "diff_sequences___diff_sequences_26.5.0.tgz";
@@ -4266,6 +4330,14 @@
       };
     }
     {
+      name = "dir_glob___dir_glob_3.0.1.tgz";
+      path = fetchurl {
+        name = "dir_glob___dir_glob_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz";
+        sha1 = "56dbf73d992a4a93ba1584f4534063fd2e41717f";
+      };
+    }
+    {
       name = "dns_equal___dns_equal_1.0.0.tgz";
       path = fetchurl {
         name = "dns_equal___dns_equal_1.0.0.tgz";
@@ -4370,19 +4442,19 @@
       };
     }
     {
-      name = "domelementtype___domelementtype_1.3.0.tgz";
+      name = "domelementtype___domelementtype_1.3.1.tgz";
       path = fetchurl {
-        name = "domelementtype___domelementtype_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz";
-        sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2";
+        name = "domelementtype___domelementtype_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz";
+        sha1 = "d048c44b37b0d10a7f2a3d5fee3f4333d790481f";
       };
     }
     {
-      name = "domelementtype___domelementtype_2.0.1.tgz";
+      name = "domelementtype___domelementtype_2.1.0.tgz";
       path = fetchurl {
-        name = "domelementtype___domelementtype_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz";
-        sha1 = "1f8bdfe91f5a78063274e803b4bdcedf6e94f94d";
+        name = "domelementtype___domelementtype_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz";
+        sha1 = "a851c080a6d1c3d94344aed151d99f669edf585e";
       };
     }
     {
@@ -4394,35 +4466,27 @@
       };
     }
     {
-      name = "domhandler___domhandler_2.4.1.tgz";
-      path = fetchurl {
-        name = "domhandler___domhandler_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz";
-        sha1 = "892e47000a99be55bbf3774ffea0561d8879c259";
-      };
-    }
-    {
-      name = "dompurify___dompurify_2.2.4.tgz";
+      name = "domhandler___domhandler_2.4.2.tgz";
       path = fetchurl {
-        name = "dompurify___dompurify_2.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.4.tgz";
-        sha1 = "a98cd182b729bdd8715c3eb7a8bf8eafb2ff7410";
+        name = "domhandler___domhandler_2.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz";
+        sha1 = "8805097e933d65e85546f726d60f5eb88b44f803";
       };
     }
     {
-      name = "domutils___domutils_1.6.2.tgz";
+      name = "dompurify___dompurify_2.2.7.tgz";
       path = fetchurl {
-        name = "domutils___domutils_1.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz";
-        sha1 = "1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff";
+        name = "dompurify___dompurify_2.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.7.tgz";
+        sha1 = "a5f055a2a471638680e779bd08fc334962d11fd8";
       };
     }
     {
-      name = "dot_prop___dot_prop_4.2.0.tgz";
+      name = "domutils___domutils_1.7.0.tgz";
       path = fetchurl {
-        name = "dot_prop___dot_prop_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
-        sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
+        name = "domutils___domutils_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz";
+        sha1 = "56ea341e834e06e6748af7a1cb25da67ea9f8c2a";
       };
     }
     {
@@ -4474,11 +4538,11 @@
       };
     }
     {
-      name = "echarts___echarts_4.6.0.tgz";
+      name = "echarts___echarts_4.9.0.tgz";
       path = fetchurl {
-        name = "echarts___echarts_4.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/echarts/-/echarts-4.6.0.tgz";
-        sha1 = "b5a47a1046cec93ceeef954f9ee54751340558ec";
+        name = "echarts___echarts_4.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/echarts/-/echarts-4.9.0.tgz";
+        sha1 = "a9b9baa03f03a2a731e6340c55befb57a9e1347d";
       };
     }
     {
@@ -4514,19 +4578,19 @@
       };
     }
     {
-      name = "electron_to_chromium___electron_to_chromium_1.3.466.tgz";
+      name = "electron_to_chromium___electron_to_chromium_1.3.642.tgz";
       path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.466.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.466.tgz";
-        sha1 = "89f716db3afc4bb482ea2aaaa16c4808f89f762a";
+        name = "electron_to_chromium___electron_to_chromium_1.3.642.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.642.tgz";
+        sha1 = "8b884f50296c2ae2a9997f024d0e3e57facc2b94";
       };
     }
     {
-      name = "elliptic___elliptic_6.4.0.tgz";
+      name = "elliptic___elliptic_6.5.4.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz";
-        sha1 = "cac9af8762c85836187003c8dfe193e5e2eae5df";
+        name = "elliptic___elliptic_6.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz";
+        sha1 = "da37cebd31e79a1367e941b592ed1fbebd58abbb";
       };
     }
     {
@@ -4562,14 +4626,6 @@
       };
     }
     {
-      name = "emojis_list___emojis_list_2.1.0.tgz";
-      path = fetchurl {
-        name = "emojis_list___emojis_list_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz";
-        sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
-      };
-    }
-    {
       name = "emojis_list___emojis_list_3.0.0.tgz";
       path = fetchurl {
         name = "emojis_list___emojis_list_3.0.0.tgz";
@@ -4594,6 +4650,14 @@
       };
     }
     {
+      name = "ends_with___ends_with_0.2.0.tgz";
+      path = fetchurl {
+        name = "ends_with___ends_with_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/ends-with/-/ends-with-0.2.0.tgz";
+        sha1 = "2f9da98d57a50cfda4571ce4339000500f4e6b8a";
+      };
+    }
+    {
       name = "engine.io_client___engine.io_client_3.2.1.tgz";
       path = fetchurl {
         name = "engine.io_client___engine.io_client_3.2.1.tgz";
@@ -4618,14 +4682,6 @@
       };
     }
     {
-      name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
-      path = fetchurl {
-        name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
-        sha1 = "41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f";
-      };
-    }
-    {
       name = "enhanced_resolve___enhanced_resolve_0.9.1.tgz";
       path = fetchurl {
         name = "enhanced_resolve___enhanced_resolve_0.9.1.tgz";
@@ -4634,6 +4690,22 @@
       };
     }
     {
+      name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
+      path = fetchurl {
+        name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz";
+        sha1 = "2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec";
+      };
+    }
+    {
+      name = "enquirer___enquirer_2.3.6.tgz";
+      path = fetchurl {
+        name = "enquirer___enquirer_2.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
+        sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
+      };
+    }
+    {
       name = "ent___ent_2.2.0.tgz";
       path = fetchurl {
         name = "ent___ent_2.2.0.tgz";
@@ -4642,11 +4714,11 @@
       };
     }
     {
-      name = "entities___entities_1.1.1.tgz";
+      name = "entities___entities_1.1.2.tgz";
       path = fetchurl {
-        name = "entities___entities_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz";
-        sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
+        name = "entities___entities_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz";
+        sha1 = "bdfa735299664dfafd34529ed4f8522a275fea56";
       };
     }
     {
@@ -4682,11 +4754,11 @@
       };
     }
     {
-      name = "es_abstract___es_abstract_1.17.4.tgz";
+      name = "es_abstract___es_abstract_1.18.0_next.2.tgz";
       path = fetchurl {
-        name = "es_abstract___es_abstract_1.17.4.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz";
-        sha1 = "e3aedf19706b20e7c2594c35fc0d57605a79e184";
+        name = "es_abstract___es_abstract_1.18.0_next.2.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz";
+        sha1 = "088101a55f0541f595e7e057199e27ddc8f3a5c2";
       };
     }
     {
@@ -4722,6 +4794,14 @@
       };
     }
     {
+      name = "escalade___escalade_3.1.1.tgz";
+      path = fetchurl {
+        name = "escalade___escalade_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
+        sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40";
+      };
+    }
+    {
       name = "escape_goat___escape_goat_2.1.1.tgz";
       path = fetchurl {
         name = "escape_goat___escape_goat_2.1.1.tgz";
@@ -4754,14 +4834,6 @@
       };
     }
     {
-      name = "escaper___escaper_2.5.3.tgz";
-      path = fetchurl {
-        name = "escaper___escaper_2.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/escaper/-/escaper-2.5.3.tgz";
-        sha1 = "8b8fe90ba364054151ab7eff18b4ce43b1e13ab5";
-      };
-    }
-    {
       name = "escodegen___escodegen_1.14.3.tgz";
       path = fetchurl {
         name = "escodegen___escodegen_1.14.3.tgz";
@@ -4770,11 +4842,11 @@
       };
     }
     {
-      name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.0.0.tgz";
+      name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.2.1.tgz";
       path = fetchurl {
-        name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz";
-        sha1 = "8a7bcb9643d13c55df4dd7444f138bf4efa61e17";
+        name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz";
+        sha1 = "8a2eb38455dc5a312550193b319cdaeef042cd1e";
       };
     }
     {
@@ -4786,35 +4858,35 @@
       };
     }
     {
-      name = "eslint_import_resolver_jest___eslint_import_resolver_jest_2.1.2.tgz";
+      name = "eslint_import_resolver_jest___eslint_import_resolver_jest_3.0.0.tgz";
       path = fetchurl {
-        name = "eslint_import_resolver_jest___eslint_import_resolver_jest_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-jest/-/eslint-import-resolver-jest-2.1.2.tgz";
-        sha1 = "8720fbe8b8498e95cb2bc6ef52b46b713aedaa59";
+        name = "eslint_import_resolver_jest___eslint_import_resolver_jest_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-jest/-/eslint-import-resolver-jest-3.0.0.tgz";
+        sha1 = "fd61da30fe58f4c1074af1f069b4267c70a91fd6";
       };
     }
     {
-      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
+      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
       path = fetchurl {
-        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz";
-        sha1 = "58f15fb839b8d0576ca980413476aab2472db66a";
+        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
+        sha1 = "85ffa81942c25012d8231096ddf679c03042c717";
       };
     }
     {
-      name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.12.1.tgz";
+      name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.13.0.tgz";
       path = fetchurl {
-        name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.12.1.tgz";
-        sha1 = "771ae561e887ca4e53ee87605fbb36c5e290b0f5";
+        name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.0.tgz";
+        sha1 = "5cb19cf4b6996c8a2514aeb10f909e2c70488dc3";
       };
     }
     {
-      name = "eslint_module_utils___eslint_module_utils_2.5.2.tgz";
+      name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
       path = fetchurl {
-        name = "eslint_module_utils___eslint_module_utils_2.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz";
-        sha1 = "7878f7504824e1b857dd2505b59a8e5eda26a708";
+        name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
+        sha1 = "579ebd094f56af7797d19c9866c9c9486629bfa6";
       };
     }
     {
@@ -4834,19 +4906,19 @@
       };
     }
     {
-      name = "eslint_plugin_import___eslint_plugin_import_2.20.1.tgz";
+      name = "eslint_plugin_import___eslint_plugin_import_2.22.1.tgz";
       path = fetchurl {
-        name = "eslint_plugin_import___eslint_plugin_import_2.20.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz";
-        sha1 = "802423196dcb11d9ce8435a5fc02a6d3b46939b3";
+        name = "eslint_plugin_import___eslint_plugin_import_2.22.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz";
+        sha1 = "0896c7e6a0cf44109a2d97b95903c2bb689d7702";
       };
     }
     {
-      name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.0.tgz";
+      name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.2.tgz";
       path = fetchurl {
-        name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.1.0.tgz";
-        sha1 = "4f6d41b1a8622348c97559cbcd29badffa74dbfa";
+        name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.1.2.tgz";
+        sha1 = "50cc20d603b02b37727f8d174d4b83b9b8ef25a5";
       };
     }
     {
@@ -4858,11 +4930,11 @@
       };
     }
     {
-      name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.3.1.tgz";
+      name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.5.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.3.1.tgz";
-        sha1 = "1c364cb863a38cc1570c8020155b6004cca62178";
+        name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.5.0.tgz";
+        sha1 = "6c12e3aae172bfd3363b7ac8c3f3e944704867f4";
       };
     }
     {
@@ -4874,11 +4946,11 @@
       };
     }
     {
-      name = "eslint_plugin_vue___eslint_plugin_vue_6.2.2.tgz";
+      name = "eslint_plugin_vue___eslint_plugin_vue_7.5.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_vue___eslint_plugin_vue_6.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz";
-        sha1 = "27fecd9a3a24789b0f111ecdd540a9e56198e0fe";
+        name = "eslint_plugin_vue___eslint_plugin_vue_7.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.5.0.tgz";
+        sha1 = "cc6d983eb22781fa2440a7573cf39af439bb5725";
       };
     }
     {
@@ -4898,51 +4970,59 @@
       };
     }
     {
-      name = "eslint_scope___eslint_scope_5.0.0.tgz";
+      name = "eslint_scope___eslint_scope_5.1.1.tgz";
+      path = fetchurl {
+        name = "eslint_scope___eslint_scope_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
+      };
+    }
+    {
+      name = "eslint_utils___eslint_utils_2.1.0.tgz";
       path = fetchurl {
-        name = "eslint_scope___eslint_scope_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz";
-        sha1 = "e87c8887c73e8d1ec84f1ca591645c358bfc8fb9";
+        name = "eslint_utils___eslint_utils_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
       };
     }
     {
-      name = "eslint_utils___eslint_utils_1.4.3.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
       path = fetchurl {
-        name = "eslint_utils___eslint_utils_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
-        sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
+        name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
       };
     }
     {
-      name = "eslint_utils___eslint_utils_2.0.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
       path = fetchurl {
-        name = "eslint_utils___eslint_utils_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz";
-        sha1 = "7be1cc70f27a72a76cd14aa698bcabed6890e1cd";
+        name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
+        sha1 = "21fdc8fbcd9c795cc0321f0563702095751511a8";
       };
     }
     {
-      name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
+      name = "eslint___eslint_7.21.0.tgz";
       path = fetchurl {
-        name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
-        sha1 = "e2a82cea84ff246ad6fb57f9bde5b46621459ec2";
+        name = "eslint___eslint_7.21.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.21.0.tgz";
+        sha1 = "4ecd5b8c5b44f5dedc9b8a110b01bbfeb15d1c83";
       };
     }
     {
-      name = "eslint___eslint_6.8.0.tgz";
+      name = "espree___espree_6.2.1.tgz";
       path = fetchurl {
-        name = "eslint___eslint_6.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz";
-        sha1 = "62262d6729739f9275723824302fb227c8c93ffb";
+        name = "espree___espree_6.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz";
+        sha1 = "77fc72e1fd744a2052c20f38a5b575832e82734a";
       };
     }
     {
-      name = "espree___espree_6.1.2.tgz";
+      name = "espree___espree_7.3.1.tgz";
       path = fetchurl {
-        name = "espree___espree_6.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz";
-        sha1 = "6c272650932b4f91c3714e5e7b5f5e2ecf47262d";
+        name = "espree___espree_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz";
+        sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6";
       };
     }
     {
@@ -4954,19 +5034,19 @@
       };
     }
     {
-      name = "esquery___esquery_1.0.1.tgz";
+      name = "esquery___esquery_1.4.0.tgz";
       path = fetchurl {
-        name = "esquery___esquery_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz";
-        sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
+        name = "esquery___esquery_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
+        sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
       };
     }
     {
-      name = "esrecurse___esrecurse_4.2.1.tgz";
+      name = "esrecurse___esrecurse_4.3.0.tgz";
       path = fetchurl {
-        name = "esrecurse___esrecurse_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+        name = "esrecurse___esrecurse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
       };
     }
     {
@@ -4978,6 +5058,14 @@
       };
     }
     {
+      name = "estraverse___estraverse_5.2.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
+        sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
+      };
+    }
+    {
       name = "esutils___esutils_2.0.3.tgz";
       path = fetchurl {
         name = "esutils___esutils_2.0.3.tgz";
@@ -5146,14 +5234,6 @@
       };
     }
     {
-      name = "external_editor___external_editor_3.1.0.tgz";
-      path = fetchurl {
-        name = "external_editor___external_editor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz";
-        sha1 = "cb03f740befae03ea4d283caed2741a83f335495";
-      };
-    }
-    {
       name = "extglob___extglob_2.0.4.tgz";
       path = fetchurl {
         name = "extglob___extglob_2.0.4.tgz";
@@ -5202,11 +5282,11 @@
       };
     }
     {
-      name = "fast_glob___fast_glob_2.2.6.tgz";
+      name = "fast_glob___fast_glob_3.2.5.tgz";
       path = fetchurl {
-        name = "fast_glob___fast_glob_2.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz";
-        sha1 = "a5d5b697ec8deda468d85a74035290a025a95295";
+        name = "fast_glob___fast_glob_3.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz";
+        sha1 = "7939af2a656de79a4f1901903ee8adcaa7cb9661";
       };
     }
     {
@@ -5226,27 +5306,43 @@
       };
     }
     {
-      name = "fault___fault_1.0.2.tgz";
+      name = "fast_mersenne_twister___fast_mersenne_twister_1.0.2.tgz";
+      path = fetchurl {
+        name = "fast_mersenne_twister___fast_mersenne_twister_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/fast-mersenne-twister/-/fast-mersenne-twister-1.0.2.tgz";
+        sha1 = "5ead7caf3ace592a5789d11767732bd81cbaaa56";
+      };
+    }
+    {
+      name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
+      path = fetchurl {
+        name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz";
+        sha1 = "9990f7d3a88cc5a9ffd1f1745745251700d497e2";
+      };
+    }
+    {
+      name = "fastq___fastq_1.10.1.tgz";
       path = fetchurl {
-        name = "fault___fault_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz";
-        sha1 = "c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa";
+        name = "fastq___fastq_1.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz";
+        sha1 = "8b8f2ac8bf3632d67afcd65dac248d5fdc45385e";
       };
     }
     {
-      name = "faye_websocket___faye_websocket_0.10.0.tgz";
+      name = "fault___fault_1.0.4.tgz";
       path = fetchurl {
-        name = "faye_websocket___faye_websocket_0.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz";
-        sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
+        name = "fault___fault_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz";
+        sha1 = "eafcfc0a6d214fc94601e170df29954a4f842f13";
       };
     }
     {
-      name = "faye_websocket___faye_websocket_0.11.1.tgz";
+      name = "faye_websocket___faye_websocket_0.11.3.tgz";
       path = fetchurl {
-        name = "faye_websocket___faye_websocket_0.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz";
-        sha1 = "f0efe18c4f56e4f40afc7e06c719fd5ee6188f38";
+        name = "faye_websocket___faye_websocket_0.11.3.tgz";
+        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz";
+        sha1 = "5c0e9a8968e8912c286639fde977a8b209f2508e";
       };
     }
     {
@@ -5266,19 +5362,11 @@
       };
     }
     {
-      name = "figures___figures_3.2.0.tgz";
-      path = fetchurl {
-        name = "figures___figures_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz";
-        sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af";
-      };
-    }
-    {
-      name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+      name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
       path = fetchurl {
-        name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
-        sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
+        name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
       };
     }
     {
@@ -5346,11 +5434,11 @@
       };
     }
     {
-      name = "find_cache_dir___find_cache_dir_3.0.0.tgz";
+      name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
       path = fetchurl {
-        name = "find_cache_dir___find_cache_dir_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz";
-        sha1 = "cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc";
+        name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
+        sha1 = "89b33fad4a4670daa94f855f7fbe31d6d84fe880";
       };
     }
     {
@@ -5402,11 +5490,11 @@
       };
     }
     {
-      name = "flat_cache___flat_cache_2.0.1.tgz";
+      name = "flat_cache___flat_cache_3.0.4.tgz";
       path = fetchurl {
-        name = "flat_cache___flat_cache_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
-        sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
+        name = "flat_cache___flat_cache_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11";
       };
     }
     {
@@ -5418,6 +5506,14 @@
       };
     }
     {
+      name = "flatted___flatted_3.1.1.tgz";
+      path = fetchurl {
+        name = "flatted___flatted_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz";
+        sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469";
+      };
+    }
+    {
       name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
       path = fetchurl {
         name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
@@ -5434,14 +5530,6 @@
       };
     }
     {
-      name = "font_awesome___font_awesome_4.7.0.tgz";
-      path = fetchurl {
-        name = "font_awesome___font_awesome_4.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz";
-        sha1 = "8fa8cf0411a1a31afd07b06d2902bb9fc815a133";
-      };
-    }
-    {
       name = "for_in___for_in_1.0.2.tgz";
       path = fetchurl {
         name = "for_in___for_in_1.0.2.tgz";
@@ -5602,14 +5690,6 @@
       };
     }
     {
-      name = "get_caller_file___get_caller_file_1.0.3.tgz";
-      path = fetchurl {
-        name = "get_caller_file___get_caller_file_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
-        sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
-      };
-    }
-    {
       name = "get_caller_file___get_caller_file_2.0.5.tgz";
       path = fetchurl {
         name = "get_caller_file___get_caller_file_2.0.5.tgz";
@@ -5618,6 +5698,14 @@
       };
     }
     {
+      name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+      path = fetchurl {
+        name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha1 = "15f59f376f855c446963948f0d24cd3637b4abc6";
+      };
+    }
+    {
       name = "get_package_type___get_package_type_0.1.0.tgz";
       path = fetchurl {
         name = "get_package_type___get_package_type_0.1.0.tgz";
@@ -5642,11 +5730,11 @@
       };
     }
     {
-      name = "get_stdin___get_stdin_7.0.0.tgz";
+      name = "get_stdin___get_stdin_8.0.0.tgz";
       path = fetchurl {
-        name = "get_stdin___get_stdin_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz";
-        sha1 = "8d5de98f15171a125c5e516643c7a6d0ea8a96f6";
+        name = "get_stdin___get_stdin_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz";
+        sha1 = "cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53";
       };
     }
     {
@@ -5690,19 +5778,19 @@
       };
     }
     {
-      name = "gettext_extractor_vue___gettext_extractor_vue_4.0.2.tgz";
+      name = "gettext_extractor_vue___gettext_extractor_vue_5.0.0.tgz";
       path = fetchurl {
-        name = "gettext_extractor_vue___gettext_extractor_vue_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/gettext-extractor-vue/-/gettext-extractor-vue-4.0.2.tgz";
-        sha1 = "16e1cdbdaf37e5bdf3cb0aff63685bdc5e74e906";
+        name = "gettext_extractor_vue___gettext_extractor_vue_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/gettext-extractor-vue/-/gettext-extractor-vue-5.0.0.tgz";
+        sha1 = "dc463868d49e14097c4545c8ed4851d8d3edd6dd";
       };
     }
     {
-      name = "gettext_extractor___gettext_extractor_3.4.3.tgz";
+      name = "gettext_extractor___gettext_extractor_3.5.3.tgz";
       path = fetchurl {
-        name = "gettext_extractor___gettext_extractor_3.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/gettext-extractor/-/gettext-extractor-3.4.3.tgz";
-        sha1 = "882679cefc71888eb6e69297e6b2dc14c0384fef";
+        name = "gettext_extractor___gettext_extractor_3.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/gettext-extractor/-/gettext-extractor-3.5.3.tgz";
+        sha1 = "6ed46931c154a7485a80fa8b91b835ff7b8d0411";
       };
     }
     {
@@ -5722,14 +5810,6 @@
       };
     }
     {
-      name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz";
-      path = fetchurl {
-        name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz";
-        sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab";
-      };
-    }
-    {
       name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
       path = fetchurl {
         name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
@@ -5754,14 +5834,6 @@
       };
     }
     {
-      name = "global_modules___global_modules_2.0.0.tgz";
-      path = fetchurl {
-        name = "global_modules___global_modules_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz";
-        sha1 = "997605ad2345f27f51539bea26574421215c7780";
-      };
-    }
-    {
       name = "global_modules___global_modules_1.0.0.tgz";
       path = fetchurl {
         name = "global_modules___global_modules_1.0.0.tgz";
@@ -5770,6 +5842,14 @@
       };
     }
     {
+      name = "global_modules___global_modules_2.0.0.tgz";
+      path = fetchurl {
+        name = "global_modules___global_modules_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz";
+        sha1 = "997605ad2345f27f51539bea26574421215c7780";
+      };
+    }
+    {
       name = "global_prefix___global_prefix_1.0.2.tgz";
       path = fetchurl {
         name = "global_prefix___global_prefix_1.0.2.tgz";
@@ -5810,6 +5890,14 @@
       };
     }
     {
+      name = "globby___globby_11.0.2.tgz";
+      path = fetchurl {
+        name = "globby___globby_11.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz";
+        sha1 = "1af538b766a3b540ebfb58a32b2e2d5897321d83";
+      };
+    }
+    {
       name = "globby___globby_6.1.0.tgz";
       path = fetchurl {
         name = "globby___globby_6.1.0.tgz";
@@ -5826,14 +5914,6 @@
       };
     }
     {
-      name = "globby___globby_9.2.0.tgz";
-      path = fetchurl {
-        name = "globby___globby_9.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz";
-        sha1 = "fd029a706c703d29bdd170f4b6db3a3f7a7cb63d";
-      };
-    }
-    {
       name = "globjoin___globjoin_0.1.4.tgz";
       path = fetchurl {
         name = "globjoin___globjoin_0.1.4.tgz";
@@ -5850,11 +5930,11 @@
       };
     }
     {
-      name = "gonzales_pe___gonzales_pe_4.2.3.tgz";
+      name = "gonzales_pe___gonzales_pe_4.3.0.tgz";
       path = fetchurl {
-        name = "gonzales_pe___gonzales_pe_4.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.3.tgz";
-        sha1 = "41091703625433285e0aee3aa47829fc1fbeb6f2";
+        name = "gonzales_pe___gonzales_pe_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz";
+        sha1 = "fe9dec5f3c557eead09ff868c65826be54d067b3";
       };
     }
     {
@@ -5962,6 +6042,14 @@
       };
     }
     {
+      name = "hard_rejection___hard_rejection_2.1.0.tgz";
+      path = fetchurl {
+        name = "hard_rejection___hard_rejection_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz";
+        sha1 = "1c6eda5c1685c63942766d79bb40ae773cecd883";
+      };
+    }
+    {
       name = "has_ansi___has_ansi_2.0.0.tgz";
       path = fetchurl {
         name = "has_ansi___has_ansi_2.0.0.tgz";
@@ -6106,11 +6194,11 @@
       };
     }
     {
-      name = "highlight.js___highlight.js_9.13.1.tgz";
+      name = "highlight.js___highlight.js_10.6.0.tgz";
       path = fetchurl {
-        name = "highlight.js___highlight.js_9.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.13.1.tgz";
-        sha1 = "054586d53a6863311168488a0f58d6c505ce641e";
+        name = "highlight.js___highlight.js_10.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.6.0.tgz";
+        sha1 = "0073aa71d566906965ba6e1b7be7b2682f5e18b6";
       };
     }
     {
@@ -6146,6 +6234,14 @@
       };
     }
     {
+      name = "hosted_git_info___hosted_git_info_3.0.8.tgz";
+      path = fetchurl {
+        name = "hosted_git_info___hosted_git_info_3.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz";
+        sha1 = "6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d";
+      };
+    }
+    {
       name = "hpack.js___hpack.js_2.1.6.tgz";
       path = fetchurl {
         name = "hpack.js___hpack.js_2.1.6.tgz";
@@ -6162,11 +6258,11 @@
       };
     }
     {
-      name = "html_entities___html_entities_1.2.1.tgz";
+      name = "html_entities___html_entities_1.4.0.tgz";
       path = fetchurl {
-        name = "html_entities___html_entities_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz";
-        sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
+        name = "html_entities___html_entities_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz";
+        sha1 = "cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc";
       };
     }
     {
@@ -6186,19 +6282,19 @@
       };
     }
     {
-      name = "html_tags___html_tags_3.0.0.tgz";
+      name = "html_tags___html_tags_3.1.0.tgz";
       path = fetchurl {
-        name = "html_tags___html_tags_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/html-tags/-/html-tags-3.0.0.tgz";
-        sha1 = "41f57708c9e6b7b46a00a22317d614c4a2bab166";
+        name = "html_tags___html_tags_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz";
+        sha1 = "7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140";
       };
     }
     {
-      name = "htmlparser2___htmlparser2_3.10.0.tgz";
+      name = "htmlparser2___htmlparser2_3.10.1.tgz";
       path = fetchurl {
-        name = "htmlparser2___htmlparser2_3.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz";
-        sha1 = "5f5e422dcf6119c0d983ed36260ce9ded0bee464";
+        name = "htmlparser2___htmlparser2_3.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz";
+        sha1 = "bd679dc3f59897b6a34bb10749c855bb53a9392f";
       };
     }
     {
@@ -6234,6 +6330,14 @@
       };
     }
     {
+      name = "http_parser_js___http_parser_js_0.5.3.tgz";
+      path = fetchurl {
+        name = "http_parser_js___http_parser_js_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz";
+        sha1 = "01d2709c79d41698bb01d4decc5e9da4e4a033d9";
+      };
+    }
+    {
       name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
       path = fetchurl {
         name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
@@ -6250,11 +6354,11 @@
       };
     }
     {
-      name = "http_proxy___http_proxy_1.18.0.tgz";
+      name = "http_proxy___http_proxy_1.18.1.tgz";
       path = fetchurl {
-        name = "http_proxy___http_proxy_1.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz";
-        sha1 = "dbe55f63e75a347db7f3d99974f2692a314a6a3a";
+        name = "http_proxy___http_proxy_1.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz";
+        sha1 = "401541f0534884bbf95260334e72f88ee3976549";
       };
     }
     {
@@ -6378,19 +6482,11 @@
       };
     }
     {
-      name = "import_fresh___import_fresh_2.0.0.tgz";
-      path = fetchurl {
-        name = "import_fresh___import_fresh_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz";
-        sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
-      };
-    }
-    {
-      name = "import_fresh___import_fresh_3.2.1.tgz";
+      name = "import_fresh___import_fresh_3.3.0.tgz";
       path = fetchurl {
-        name = "import_fresh___import_fresh_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz";
-        sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66";
+        name = "import_fresh___import_fresh_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
       };
     }
     {
@@ -6426,14 +6522,6 @@
       };
     }
     {
-      name = "imports_loader___imports_loader_0.8.0.tgz";
-      path = fetchurl {
-        name = "imports_loader___imports_loader_0.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz";
-        sha1 = "030ea51b8ca05977c40a3abfd9b4088fe0be9a69";
-      };
-    }
-    {
       name = "imurmurhash___imurmurhash_0.1.4.tgz";
       path = fetchurl {
         name = "imurmurhash___imurmurhash_0.1.4.tgz";
@@ -6458,14 +6546,6 @@
       };
     }
     {
-      name = "indent_string___indent_string_3.2.0.tgz";
-      path = fetchurl {
-        name = "indent_string___indent_string_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz";
-        sha1 = "4a5fd6d27cc332f37e5419a504dbb837105c9289";
-      };
-    }
-    {
       name = "indent_string___indent_string_4.0.0.tgz";
       path = fetchurl {
         name = "indent_string___indent_string_4.0.0.tgz";
@@ -6514,11 +6594,11 @@
       };
     }
     {
-      name = "inherits___inherits_2.0.3.tgz";
+      name = "inherits___inherits_2.0.4.tgz";
       path = fetchurl {
-        name = "inherits___inherits_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
-        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+        name = "inherits___inherits_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
       };
     }
     {
@@ -6530,19 +6610,19 @@
       };
     }
     {
-      name = "ini___ini_1.3.5.tgz";
+      name = "inherits___inherits_2.0.3.tgz";
       path = fetchurl {
-        name = "ini___ini_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
-        sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+        name = "inherits___inherits_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
       };
     }
     {
-      name = "inquirer___inquirer_7.0.4.tgz";
+      name = "ini___ini_1.3.8.tgz";
       path = fetchurl {
-        name = "inquirer___inquirer_7.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz";
-        sha1 = "99af5bde47153abca23f5c7fc30db247f39da703";
+        name = "ini___ini_1.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz";
+        sha1 = "a29da425b48806f34767a4efce397269af28432c";
       };
     }
     {
@@ -6554,11 +6634,11 @@
       };
     }
     {
-      name = "interpret___interpret_1.2.0.tgz";
+      name = "interpret___interpret_1.4.0.tgz";
       path = fetchurl {
-        name = "interpret___interpret_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz";
-        sha1 = "d5061a6224be58e8083985f5014d844359576296";
+        name = "interpret___interpret_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz";
+        sha1 = "665ab8bc4da27a774a40584e812e3e0fa45b1a1e";
       };
     }
     {
@@ -6570,14 +6650,6 @@
       };
     }
     {
-      name = "invert_kv___invert_kv_2.0.0.tgz";
-      path = fetchurl {
-        name = "invert_kv___invert_kv_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
-        sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
-      };
-    }
-    {
       name = "ip_regex___ip_regex_2.1.0.tgz";
       path = fetchurl {
         name = "ip_regex___ip_regex_2.1.0.tgz";
@@ -6634,27 +6706,19 @@
       };
     }
     {
-      name = "is_alphabetical___is_alphabetical_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_alphabetical___is_alphabetical_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.2.tgz";
-        sha1 = "1fa6e49213cb7885b75d15862fb3f3d96c884f41";
-      };
-    }
-    {
-      name = "is_alphanumeric___is_alphanumeric_1.0.0.tgz";
+      name = "is_alphabetical___is_alphabetical_1.0.4.tgz";
       path = fetchurl {
-        name = "is_alphanumeric___is_alphanumeric_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz";
-        sha1 = "4a9cef71daf4c001c1d81d63d140cf53fd6889f4";
+        name = "is_alphabetical___is_alphabetical_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz";
+        sha1 = "9e7d6b94916be22153745d184c298cbf986a686d";
       };
     }
     {
-      name = "is_alphanumerical___is_alphanumerical_1.0.2.tgz";
+      name = "is_alphanumerical___is_alphanumerical_1.0.4.tgz";
       path = fetchurl {
-        name = "is_alphanumerical___is_alphanumerical_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz";
-        sha1 = "1138e9ae5040158dc6ff76b820acd6b7a181fd40";
+        name = "is_alphanumerical___is_alphanumerical_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz";
+        sha1 = "7eb9a2431f855f6b1ef1a78e326df515696c4dbf";
       };
     }
     {
@@ -6682,19 +6746,19 @@
       };
     }
     {
-      name = "is_buffer___is_buffer_2.0.3.tgz";
+      name = "is_buffer___is_buffer_2.0.5.tgz";
       path = fetchurl {
-        name = "is_buffer___is_buffer_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz";
-        sha1 = "4ecf3fcf749cbd1e472689e109ac66261a25e725";
+        name = "is_buffer___is_buffer_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz";
+        sha1 = "ebc252e400d22ff8d77fa09888821a24a658c191";
       };
     }
     {
-      name = "is_callable___is_callable_1.1.5.tgz";
+      name = "is_callable___is_callable_1.2.3.tgz";
       path = fetchurl {
-        name = "is_callable___is_callable_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz";
-        sha1 = "f7e46b596890456db74e7f6e976cb3273d06faab";
+        name = "is_callable___is_callable_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz";
+        sha1 = "8b1e0500b73a1d76c70487636f368e519de8db8e";
       };
     }
     {
@@ -6730,11 +6794,11 @@
       };
     }
     {
-      name = "is_decimal___is_decimal_1.0.2.tgz";
+      name = "is_decimal___is_decimal_1.0.4.tgz";
       path = fetchurl {
-        name = "is_decimal___is_decimal_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.2.tgz";
-        sha1 = "894662d6a8709d307f3a276ca4339c8fa5dff0ff";
+        name = "is_decimal___is_decimal_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz";
+        sha1 = "65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5";
       };
     }
     {
@@ -6754,14 +6818,6 @@
       };
     }
     {
-      name = "is_directory___is_directory_0.3.1.tgz";
-      path = fetchurl {
-        name = "is_directory___is_directory_0.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz";
-        sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
-      };
-    }
-    {
       name = "is_docker___is_docker_2.1.1.tgz";
       path = fetchurl {
         name = "is_docker___is_docker_2.1.1.tgz";
@@ -6850,11 +6906,11 @@
       };
     }
     {
-      name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
+      name = "is_hexadecimal___is_hexadecimal_1.0.4.tgz";
       path = fetchurl {
-        name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz";
-        sha1 = "b6e710d7d07bb66b98cb8cece5c9b4921deeb835";
+        name = "is_hexadecimal___is_hexadecimal_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz";
+        sha1 = "cc35c97588da4bd49a8eedd6bc4082d44dcb23a7";
       };
     }
     {
@@ -6866,6 +6922,14 @@
       };
     }
     {
+      name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
+      path = fetchurl {
+        name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
+        sha1 = "3de746c18dda2319241a53675908d8f766f11c24";
+      };
+    }
+    {
       name = "is_npm___is_npm_4.0.0.tgz";
       path = fetchurl {
         name = "is_npm___is_npm_4.0.0.tgz";
@@ -6890,14 +6954,6 @@
       };
     }
     {
-      name = "is_obj___is_obj_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_obj___is_obj_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz";
-        sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
-      };
-    }
-    {
       name = "is_obj___is_obj_2.0.0.tgz";
       path = fetchurl {
         name = "is_obj___is_obj_2.0.0.tgz";
@@ -6946,6 +7002,14 @@
       };
     }
     {
+      name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
+      path = fetchurl {
+        name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
+        sha1 = "45e42e37fccf1f40da8e5f76ee21515840c09287";
+      };
+    }
+    {
       name = "is_plain_object___is_plain_object_2.0.4.tgz";
       path = fetchurl {
         name = "is_plain_object___is_plain_object_2.0.4.tgz";
@@ -6962,27 +7026,11 @@
       };
     }
     {
-      name = "is_promise___is_promise_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_promise___is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
-        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
-      };
-    }
-    {
-      name = "is_regex___is_regex_1.0.5.tgz";
-      path = fetchurl {
-        name = "is_regex___is_regex_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz";
-        sha1 = "39d589a358bf18967f726967120b8fc1aed74eae";
-      };
-    }
-    {
-      name = "is_regexp___is_regexp_1.0.0.tgz";
+      name = "is_regex___is_regex_1.1.2.tgz";
       path = fetchurl {
-        name = "is_regexp___is_regexp_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz";
-        sha1 = "fd2d883545c46bac5a633e7b9a09e87fa2cb5069";
+        name = "is_regex___is_regex_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz";
+        sha1 = "81c8ebde4db142f2cf1c53fc86d6a45788266251";
       };
     }
     {
@@ -7010,6 +7058,14 @@
       };
     }
     {
+      name = "is_string___is_string_1.0.5.tgz";
+      path = fetchurl {
+        name = "is_string___is_string_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz";
+        sha1 = "40493ed198ef3ff477b8c7f92f644ec82a5cd3a6";
+      };
+    }
+    {
       name = "is_symbol___is_symbol_1.0.2.tgz";
       path = fetchurl {
         name = "is_symbol___is_symbol_1.0.2.tgz";
@@ -7034,14 +7090,6 @@
       };
     }
     {
-      name = "is_whitespace_character___is_whitespace_character_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_whitespace_character___is_whitespace_character_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz";
-        sha1 = "ede53b4c6f6fb3874533751ec9280d01928d03ed";
-      };
-    }
-    {
       name = "is_whitespace___is_whitespace_0.3.0.tgz";
       path = fetchurl {
         name = "is_whitespace___is_whitespace_0.3.0.tgz";
@@ -7058,14 +7106,6 @@
       };
     }
     {
-      name = "is_word_character___is_word_character_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_word_character___is_word_character_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.2.tgz";
-        sha1 = "46a5dac3f2a1840898b91e576cd40d493f3ae553";
-      };
-    }
-    {
       name = "is_wsl___is_wsl_1.1.0.tgz";
       path = fetchurl {
         name = "is_wsl___is_wsl_1.1.0.tgz";
@@ -7314,14 +7354,6 @@
       };
     }
     {
-      name = "jest_diff___jest_diff_25.5.0.tgz";
-      path = fetchurl {
-        name = "jest_diff___jest_diff_25.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz";
-        sha1 = "1dd26ed64f96667c068cef026b677dfa01afcfa9";
-      };
-    }
-    {
       name = "jest_diff___jest_diff_26.5.2.tgz";
       path = fetchurl {
         name = "jest_diff___jest_diff_26.5.2.tgz";
@@ -7362,14 +7394,6 @@
       };
     }
     {
-      name = "jest_get_type___jest_get_type_25.2.6.tgz";
-      path = fetchurl {
-        name = "jest_get_type___jest_get_type_25.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz";
-        sha1 = "0b0a32fab8908b44d508be81681487dbabb8d877";
-      };
-    }
-    {
       name = "jest_get_type___jest_get_type_26.3.0.tgz";
       path = fetchurl {
         name = "jest_get_type___jest_get_type_26.3.0.tgz";
@@ -7714,6 +7738,14 @@
       };
     }
     {
+      name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
+      };
+    }
+    {
       name = "json_schema___json_schema_0.2.3.tgz";
       path = fetchurl {
         name = "json_schema___json_schema_0.2.3.tgz";
@@ -7738,19 +7770,11 @@
       };
     }
     {
-      name = "json3___json3_3.3.2.tgz";
+      name = "json3___json3_3.3.3.tgz";
       path = fetchurl {
-        name = "json3___json3_3.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz";
-        sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
-      };
-    }
-    {
-      name = "json5___json5_2.1.3.tgz";
-      path = fetchurl {
-        name = "json5___json5_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
-        sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
+        name = "json3___json3_3.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz";
+        sha1 = "7fc10e375fc5ae42c4705a5cc0aa6f62be305b81";
       };
     }
     {
@@ -7762,6 +7786,14 @@
       };
     }
     {
+      name = "json5___json5_2.1.3.tgz";
+      path = fetchurl {
+        name = "json5___json5_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
+        sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
+      };
+    }
+    {
       name = "jsonc_parser___jsonc_parser_2.3.1.tgz";
       path = fetchurl {
         name = "jsonc_parser___jsonc_parser_2.3.1.tgz";
@@ -7874,11 +7906,11 @@
       };
     }
     {
-      name = "katex___katex_0.10.0.tgz";
+      name = "katex___katex_0.10.2.tgz";
       path = fetchurl {
-        name = "katex___katex_0.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/katex/-/katex-0.10.0.tgz";
-        sha1 = "da562e5d0d5cc3aa602e27af8a9b8710bfbce765";
+        name = "katex___katex_0.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/katex/-/katex-0.10.2.tgz";
+        sha1 = "39973edbb65eda5b6f9e7f41648781e557dd4932";
       };
     }
     {
@@ -7890,6 +7922,14 @@
       };
     }
     {
+      name = "khroma___khroma_1.2.0.tgz";
+      path = fetchurl {
+        name = "khroma___khroma_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/khroma/-/khroma-1.2.0.tgz";
+        sha1 = "46dcc9d7533923c228b51724db108f11fec108d8";
+      };
+    }
+    {
       name = "killable___killable_1.0.1.tgz";
       path = fetchurl {
         name = "killable___killable_1.0.1.tgz";
@@ -7922,11 +7962,11 @@
       };
     }
     {
-      name = "kind_of___kind_of_6.0.2.tgz";
+      name = "kind_of___kind_of_6.0.3.tgz";
       path = fetchurl {
-        name = "kind_of___kind_of_6.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz";
-        sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051";
+        name = "kind_of___kind_of_6.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
+        sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
       };
     }
     {
@@ -7946,11 +7986,11 @@
       };
     }
     {
-      name = "known_css_properties___known_css_properties_0.14.0.tgz";
+      name = "known_css_properties___known_css_properties_0.20.0.tgz";
       path = fetchurl {
-        name = "known_css_properties___known_css_properties_0.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.14.0.tgz";
-        sha1 = "d7032b4334a32dc22e6e46b081ec789daf18756c";
+        name = "known_css_properties___known_css_properties_0.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.20.0.tgz";
+        sha1 = "0570831661b47dd835293218381166090ff60e96";
       };
     }
     {
@@ -7962,14 +8002,6 @@
       };
     }
     {
-      name = "lcid___lcid_2.0.0.tgz";
-      path = fetchurl {
-        name = "lcid___lcid_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
-        sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
-      };
-    }
-    {
       name = "leven___leven_3.1.0.tgz";
       path = fetchurl {
         name = "leven___leven_3.1.0.tgz";
@@ -7986,6 +8018,14 @@
       };
     }
     {
+      name = "levn___levn_0.4.1.tgz";
+      path = fetchurl {
+        name = "levn___levn_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
+        sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
+      };
+    }
+    {
       name = "levn___levn_0.3.0.tgz";
       path = fetchurl {
         name = "levn___levn_0.3.0.tgz";
@@ -8050,14 +8090,6 @@
       };
     }
     {
-      name = "load_json_file___load_json_file_4.0.0.tgz";
-      path = fetchurl {
-        name = "load_json_file___load_json_file_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz";
-        sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
-      };
-    }
-    {
       name = "loader_runner___loader_runner_2.4.0.tgz";
       path = fetchurl {
         name = "loader_runner___loader_runner_2.4.0.tgz";
@@ -8066,14 +8098,6 @@
       };
     }
     {
-      name = "loader_utils___loader_utils_1.2.3.tgz";
-      path = fetchurl {
-        name = "loader_utils___loader_utils_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz";
-        sha1 = "1ff5dc6911c9f0a062531a4c04b609406108c2c7";
-      };
-    }
-    {
       name = "loader_utils___loader_utils_1.4.0.tgz";
       path = fetchurl {
         name = "loader_utils___loader_utils_1.4.0.tgz";
@@ -8082,6 +8106,14 @@
       };
     }
     {
+      name = "loader_utils___loader_utils_2.0.0.tgz";
+      path = fetchurl {
+        name = "loader_utils___loader_utils_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz";
+        sha1 = "e4cace5b816d425a166b5f097e10cd12b36064b0";
+      };
+    }
+    {
       name = "locate_path___locate_path_2.0.0.tgz";
       path = fetchurl {
         name = "locate_path___locate_path_2.0.0.tgz";
@@ -8266,14 +8298,6 @@
       };
     }
     {
-      name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
-      path = fetchurl {
-        name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
-        sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
-      };
-    }
-    {
       name = "lodash.pick___lodash.pick_4.4.0.tgz";
       path = fetchurl {
         name = "lodash.pick___lodash.pick_4.4.0.tgz";
@@ -8346,11 +8370,11 @@
       };
     }
     {
-      name = "log_symbols___log_symbols_3.0.0.tgz";
+      name = "log_symbols___log_symbols_4.0.0.tgz";
       path = fetchurl {
-        name = "log_symbols___log_symbols_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz";
-        sha1 = "f3a08516a5dea893336a7dee14d18a1cfdab77c4";
+        name = "log_symbols___log_symbols_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz";
+        sha1 = "69b3cc46d20f448eccdb75ea1fa733d9e821c920";
       };
     }
     {
@@ -8362,19 +8386,19 @@
       };
     }
     {
-      name = "loglevel___loglevel_1.6.7.tgz";
+      name = "loglevel___loglevel_1.7.1.tgz";
       path = fetchurl {
-        name = "loglevel___loglevel_1.6.7.tgz";
-        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz";
-        sha1 = "b3e034233188c68b889f5b862415306f565e2c56";
+        name = "loglevel___loglevel_1.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz";
+        sha1 = "005fde2f5e6e47068f935ff28573e125ef72f197";
       };
     }
     {
-      name = "longest_streak___longest_streak_2.0.2.tgz";
+      name = "longest_streak___longest_streak_2.0.4.tgz";
       path = fetchurl {
-        name = "longest_streak___longest_streak_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.2.tgz";
-        sha1 = "2421b6ba939a443bb9ffebf596585a50b4c38e2e";
+        name = "longest_streak___longest_streak_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz";
+        sha1 = "b8599957da5b5dab64dee3fe316fa774597d90e4";
       };
     }
     {
@@ -8418,11 +8442,11 @@
       };
     }
     {
-      name = "lowlight___lowlight_1.11.0.tgz";
+      name = "lowlight___lowlight_1.19.0.tgz";
       path = fetchurl {
-        name = "lowlight___lowlight_1.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/lowlight/-/lowlight-1.11.0.tgz";
-        sha1 = "1304d83005126d4e8b1dc0f07981e9b689ec2efc";
+        name = "lowlight___lowlight_1.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/lowlight/-/lowlight-1.19.0.tgz";
+        sha1 = "b8544199cafcf10c5731b21c7458c358f79a2a97";
       };
     }
     {
@@ -8442,6 +8466,14 @@
       };
     }
     {
+      name = "lru_cache___lru_cache_6.0.0.tgz";
+      path = fetchurl {
+        name = "lru_cache___lru_cache_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94";
+      };
+    }
+    {
       name = "lz_string___lz_string_1.4.4.tgz";
       path = fetchurl {
         name = "lz_string___lz_string_1.4.4.tgz";
@@ -8458,19 +8490,11 @@
       };
     }
     {
-      name = "make_dir___make_dir_3.0.0.tgz";
-      path = fetchurl {
-        name = "make_dir___make_dir_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz";
-        sha1 = "1b5f39f6b9270ed33f9f054c5c0f84304989f801";
-      };
-    }
-    {
-      name = "make_error___make_error_1.3.6.tgz";
+      name = "make_dir___make_dir_3.1.0.tgz";
       path = fetchurl {
-        name = "make_error___make_error_1.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz";
-        sha1 = "2eb2e37ea9b67c4891f684a1394799af484cf7a2";
+        name = "make_dir___make_dir_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz";
+        sha1 = "415e967046b3a7f1d185277d84aa58203726a13f";
       };
     }
     {
@@ -8482,22 +8506,6 @@
       };
     }
     {
-      name = "mamacro___mamacro_0.0.3.tgz";
-      path = fetchurl {
-        name = "mamacro___mamacro_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz";
-        sha1 = "ad2c9576197c9f1abf308d0787865bd975a3f3e4";
-      };
-    }
-    {
-      name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
-      path = fetchurl {
-        name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
-        sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
-      };
-    }
-    {
       name = "map_cache___map_cache_0.2.2.tgz";
       path = fetchurl {
         name = "map_cache___map_cache_0.2.2.tgz";
@@ -8514,11 +8522,11 @@
       };
     }
     {
-      name = "map_obj___map_obj_2.0.0.tgz";
+      name = "map_obj___map_obj_4.1.0.tgz";
       path = fetchurl {
-        name = "map_obj___map_obj_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz";
-        sha1 = "a65cd29087a92598b8791257a523e021222ac1f9";
+        name = "map_obj___map_obj_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz";
+        sha1 = "b91221b542734b9f14256c0132c897c5d7256fd5";
       };
     }
     {
@@ -8530,14 +8538,6 @@
       };
     }
     {
-      name = "markdown_escapes___markdown_escapes_1.0.2.tgz";
-      path = fetchurl {
-        name = "markdown_escapes___markdown_escapes_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz";
-        sha1 = "e639cbde7b99c841c0bacc8a07982873b46d2122";
-      };
-    }
-    {
       name = "markdown_it___markdown_it_11.0.0.tgz";
       path = fetchurl {
         name = "markdown_it___markdown_it_11.0.0.tgz";
@@ -8546,19 +8546,11 @@
       };
     }
     {
-      name = "markdown_it___markdown_it_8.4.2.tgz";
-      path = fetchurl {
-        name = "markdown_it___markdown_it_8.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz";
-        sha1 = "386f98998dc15a37722aa7722084f4020bdd9b54";
-      };
-    }
-    {
-      name = "markdown_table___markdown_table_1.1.2.tgz";
+      name = "markdown_it___markdown_it_10.0.0.tgz";
       path = fetchurl {
-        name = "markdown_table___markdown_table_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz";
-        sha1 = "c78db948fa879903a41bce522e3b96f801c63786";
+        name = "markdown_it___markdown_it_10.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz";
+        sha1 = "abfc64f141b1722d663402044e43927f1f50a8dc";
       };
     }
     {
@@ -8594,11 +8586,19 @@
       };
     }
     {
-      name = "mathml_tag_names___mathml_tag_names_2.1.1.tgz";
+      name = "mathjax___mathjax_3.1.2.tgz";
+      path = fetchurl {
+        name = "mathjax___mathjax_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/mathjax/-/mathjax-3.1.2.tgz";
+        sha1 = "95c0d45ce2330ef7b6a815cebe7d61ecc26bbabd";
+      };
+    }
+    {
+      name = "mathml_tag_names___mathml_tag_names_2.1.3.tgz";
       path = fetchurl {
-        name = "mathml_tag_names___mathml_tag_names_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz";
-        sha1 = "6dff66c99d55ecf739ca53c492e626f1d12a33cc";
+        name = "mathml_tag_names___mathml_tag_names_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz";
+        sha1 = "4ddadd67308e780cf16a47685878ee27b736a0a3";
       };
     }
     {
@@ -8618,11 +8618,27 @@
       };
     }
     {
-      name = "mdast_util_compact___mdast_util_compact_1.0.2.tgz";
+      name = "mdast_util_from_markdown___mdast_util_from_markdown_0.8.5.tgz";
+      path = fetchurl {
+        name = "mdast_util_from_markdown___mdast_util_from_markdown_0.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz";
+        sha1 = "d1ef2ca42bc377ecb0463a987910dae89bd9a28c";
+      };
+    }
+    {
+      name = "mdast_util_to_markdown___mdast_util_to_markdown_0.6.5.tgz";
+      path = fetchurl {
+        name = "mdast_util_to_markdown___mdast_util_to_markdown_0.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz";
+        sha1 = "b33f67ca820d69e6cc527a93d4039249b504bebe";
+      };
+    }
+    {
+      name = "mdast_util_to_string___mdast_util_to_string_2.0.0.tgz";
       path = fetchurl {
-        name = "mdast_util_compact___mdast_util_compact_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz";
-        sha1 = "c12ebe16fffc84573d3e19767726de226e95f649";
+        name = "mdast_util_to_string___mdast_util_to_string_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz";
+        sha1 = "b8cfe6a713e1091cb5b728fc48885a4767f8b97b";
       };
     }
     {
@@ -8642,14 +8658,6 @@
       };
     }
     {
-      name = "mem___mem_4.3.0.tgz";
-      path = fetchurl {
-        name = "mem___mem_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz";
-        sha1 = "461af497bc4ae09608cdb2e60eefb69bff744178";
-      };
-    }
-    {
       name = "memory_fs___memory_fs_0.2.0.tgz";
       path = fetchurl {
         name = "memory_fs___memory_fs_0.2.0.tgz";
@@ -8666,6 +8674,14 @@
       };
     }
     {
+      name = "memory_fs___memory_fs_0.5.0.tgz";
+      path = fetchurl {
+        name = "memory_fs___memory_fs_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz";
+        sha1 = "324c01288b88652966d161db77838720845a8e3c";
+      };
+    }
+    {
       name = "meow___meow_3.7.0.tgz";
       path = fetchurl {
         name = "meow___meow_3.7.0.tgz";
@@ -8674,11 +8690,11 @@
       };
     }
     {
-      name = "meow___meow_5.0.0.tgz";
+      name = "meow___meow_9.0.0.tgz";
       path = fetchurl {
-        name = "meow___meow_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz";
-        sha1 = "dfc73d63a9afc714a5e371760eb5c88b91078aa4";
+        name = "meow___meow_9.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz";
+        sha1 = "cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364";
       };
     }
     {
@@ -8706,27 +8722,19 @@
       };
     }
     {
-      name = "merge2___merge2_1.2.3.tgz";
-      path = fetchurl {
-        name = "merge2___merge2_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz";
-        sha1 = "7ee99dbd69bb6481689253f018488a1b902b0ed5";
-      };
-    }
-    {
-      name = "mermaid___mermaid_8.5.2.tgz";
+      name = "merge2___merge2_1.4.1.tgz";
       path = fetchurl {
-        name = "mermaid___mermaid_8.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.5.2.tgz";
-        sha1 = "0f1914cda53d4ea5377380e5ce07a38bef2ea7e8";
+        name = "merge2___merge2_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz";
+        sha1 = "4368892f885e907455a6fd7dc55c0c9d404990ae";
       };
     }
     {
-      name = "mersenne_twister___mersenne_twister_1.1.0.tgz";
+      name = "mermaid___mermaid_8.9.0.tgz";
       path = fetchurl {
-        name = "mersenne_twister___mersenne_twister_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz";
-        sha1 = "f916618ee43d7179efcf641bec4531eb9670978a";
+        name = "mermaid___mermaid_8.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.9.0.tgz";
+        sha1 = "e569517863ab903aa5389cd746b68ca958a8ca7c";
       };
     }
     {
@@ -8738,6 +8746,14 @@
       };
     }
     {
+      name = "micromark___micromark_2.11.4.tgz";
+      path = fetchurl {
+        name = "micromark___micromark_2.11.4.tgz";
+        url  = "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz";
+        sha1 = "d13436138eea826383e822449c9a5c50ee44665a";
+      };
+    }
+    {
       name = "micromatch___micromatch_3.1.10.tgz";
       path = fetchurl {
         name = "micromatch___micromatch_3.1.10.tgz";
@@ -8818,6 +8834,14 @@
       };
     }
     {
+      name = "min_indent___min_indent_1.0.1.tgz";
+      path = fetchurl {
+        name = "min_indent___min_indent_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz";
+        sha1 = "a63f681673b30571fbe8bc25686ae746eefa9869";
+      };
+    }
+    {
       name = "minify___minify_4.1.2.tgz";
       path = fetchurl {
         name = "minify___minify_4.1.2.tgz";
@@ -8826,11 +8850,11 @@
       };
     }
     {
-      name = "minimalistic_assert___minimalistic_assert_1.0.0.tgz";
+      name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
       path = fetchurl {
-        name = "minimalistic_assert___minimalistic_assert_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz";
-        sha1 = "702be2dda6b37f4836bcb3f5db56641b64a1d3d3";
+        name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+        sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
       };
     }
     {
@@ -8850,27 +8874,11 @@
       };
     }
     {
-      name = "minimist_options___minimist_options_3.0.2.tgz";
-      path = fetchurl {
-        name = "minimist_options___minimist_options_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz";
-        sha1 = "fba4c8191339e13ecf4d61beb03f070103f3d954";
-      };
-    }
-    {
-      name = "minimist___minimist_0.0.8.tgz";
+      name = "minimist_options___minimist_options_4.1.0.tgz";
       path = fetchurl {
-        name = "minimist___minimist_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
-      };
-    }
-    {
-      name = "minimist___minimist_1.1.3.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz";
-        sha1 = "3bedfd91a92d39016fcfaa1c681e8faa1a1efda8";
+        name = "minimist_options___minimist_options_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz";
+        sha1 = "c0655713c53a8a2ebd77ffa247d342c40f010619";
       };
     }
     {
@@ -8882,6 +8890,14 @@
       };
     }
     {
+      name = "minimist___minimist_0.0.8.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_0.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    }
+    {
       name = "minipass_collect___minipass_collect_1.0.2.tgz";
       path = fetchurl {
         name = "minipass_collect___minipass_collect_1.0.2.tgz";
@@ -8914,6 +8930,14 @@
       };
     }
     {
+      name = "minizlib___minizlib_2.1.2.tgz";
+      path = fetchurl {
+        name = "minizlib___minizlib_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz";
+        sha1 = "e90d3466ba209b932451508a11ce3d3632145931";
+      };
+    }
+    {
       name = "miragejs___miragejs_0.1.40.tgz";
       path = fetchurl {
         name = "miragejs___miragejs_0.1.40.tgz";
@@ -8938,19 +8962,19 @@
       };
     }
     {
-      name = "mkdirp___mkdirp_1.0.4.tgz";
+      name = "mkdirp___mkdirp_0.5.5.tgz";
       path = fetchurl {
-        name = "mkdirp___mkdirp_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
-        sha1 = "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e";
+        name = "mkdirp___mkdirp_0.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
       };
     }
     {
-      name = "https___registry.npmjs.org_mkdirp___mkdirp_0.5.1.tgz";
+      name = "mkdirp___mkdirp_1.0.4.tgz";
       path = fetchurl {
-        name = "https___registry.npmjs.org_mkdirp___mkdirp_0.5.1.tgz";
-        url  = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+        name = "mkdirp___mkdirp_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
+        sha1 = "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e";
       };
     }
     {
@@ -9026,6 +9050,14 @@
       };
     }
     {
+      name = "ms___ms_2.1.2.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
+        sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
+      };
+    }
+    {
       name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
       path = fetchurl {
         name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
@@ -9042,14 +9074,6 @@
       };
     }
     {
-      name = "mute_stream___mute_stream_0.0.8.tgz";
-      path = fetchurl {
-        name = "mute_stream___mute_stream_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz";
-        sha1 = "1630c42b2251ff81e2a283de96a5497ea92e5e0d";
-      };
-    }
-    {
       name = "nan___nan_2.14.1.tgz";
       path = fetchurl {
         name = "nan___nan_2.14.1.tgz";
@@ -9114,19 +9138,19 @@
       };
     }
     {
-      name = "node_fetch___node_fetch_2.6.0.tgz";
+      name = "node_fetch___node_fetch_2.6.1.tgz";
       path = fetchurl {
-        name = "node_fetch___node_fetch_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz";
-        sha1 = "e633456386d4aa55863f676a7ab0daa8fdecb0fd";
+        name = "node_fetch___node_fetch_2.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
+        sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
       };
     }
     {
-      name = "node_forge___node_forge_0.9.0.tgz";
+      name = "node_forge___node_forge_0.10.0.tgz";
       path = fetchurl {
-        name = "node_forge___node_forge_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz";
-        sha1 = "d624050edbb44874adca12bb9a52ec63cb782579";
+        name = "node_forge___node_forge_0.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz";
+        sha1 = "32dea2afb3e9926f02ee5ce8794902691a676bf3";
       };
     }
     {
@@ -9170,11 +9194,11 @@
       };
     }
     {
-      name = "node_releases___node_releases_1.1.58.tgz";
+      name = "node_releases___node_releases_1.1.70.tgz";
       path = fetchurl {
-        name = "node_releases___node_releases_1.1.58.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz";
-        sha1 = "8ee20eef30fa60e52755fcc0942def5a734fe935";
+        name = "node_releases___node_releases_1.1.70.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz";
+        sha1 = "66e0ed0273aa65666d7fe78febe7634875426a08";
       };
     }
     {
@@ -9226,6 +9250,14 @@
       };
     }
     {
+      name = "normalize_package_data___normalize_package_data_3.0.0.tgz";
+      path = fetchurl {
+        name = "normalize_package_data___normalize_package_data_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz";
+        sha1 = "1f8a7c423b3d2e85eb36985eaf81de381d01301a";
+      };
+    }
+    {
       name = "normalize_path___normalize_path_2.1.1.tgz";
       path = fetchurl {
         name = "normalize_path___normalize_path_2.1.1.tgz";
@@ -9346,11 +9378,11 @@
       };
     }
     {
-      name = "object_inspect___object_inspect_1.7.0.tgz";
+      name = "object_inspect___object_inspect_1.9.0.tgz";
       path = fetchurl {
-        name = "object_inspect___object_inspect_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67";
+        name = "object_inspect___object_inspect_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz";
+        sha1 = "c90521d74e1127b67266ded3394ad6116986533a";
       };
     }
     {
@@ -9370,19 +9402,19 @@
       };
     }
     {
-      name = "object.assign___object.assign_4.1.0.tgz";
+      name = "object.assign___object.assign_4.1.2.tgz";
       path = fetchurl {
-        name = "object.assign___object.assign_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
-        sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
+        name = "object.assign___object.assign_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz";
+        sha1 = "0ed54a342eceb37b38ff76eb831a0e788cb63940";
       };
     }
     {
-      name = "object.entries___object.entries_1.1.1.tgz";
+      name = "object.entries___object.entries_1.1.3.tgz";
       path = fetchurl {
-        name = "object.entries___object.entries_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz";
-        sha1 = "ee1cf04153de02bb093fec33683900f57ce5399b";
+        name = "object.entries___object.entries_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz";
+        sha1 = "c601c7f168b62374541a07ddbd3e2d5e4f7711a6";
       };
     }
     {
@@ -9394,11 +9426,11 @@
       };
     }
     {
-      name = "object.values___object.values_1.1.0.tgz";
+      name = "object.values___object.values_1.1.2.tgz";
       path = fetchurl {
-        name = "object.values___object.values_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz";
-        sha1 = "bf6810ef5da3e5325790eaaa2be213ea84624da9";
+        name = "object.values___object.values_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz";
+        sha1 = "7a2015e06fcb0f546bd652486ce8583a4731c731";
       };
     }
     {
@@ -9482,11 +9514,19 @@
       };
     }
     {
-      name = "orderedmap___orderedmap_1.0.0.tgz";
+      name = "optionator___optionator_0.9.1.tgz";
+      path = fetchurl {
+        name = "optionator___optionator_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
+        sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
+      };
+    }
+    {
+      name = "orderedmap___orderedmap_1.1.1.tgz";
       path = fetchurl {
-        name = "orderedmap___orderedmap_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.0.0.tgz";
-        sha1 = "d90fc2ba1ed085190907d601dec6e6a53f8d41ba";
+        name = "orderedmap___orderedmap_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.1.1.tgz";
+        sha1 = "c618e77611b3b21d0fe3edc92586265e0059c789";
       };
     }
     {
@@ -9514,14 +9554,6 @@
       };
     }
     {
-      name = "os_locale___os_locale_3.1.0.tgz";
-      path = fetchurl {
-        name = "os_locale___os_locale_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz";
-        sha1 = "a802a6ee17f24c10483ab9935719cef4ed16bf1a";
-      };
-    }
-    {
       name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
       path = fetchurl {
         name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
@@ -9546,14 +9578,6 @@
       };
     }
     {
-      name = "p_defer___p_defer_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_defer___p_defer_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
-        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
-      };
-    }
-    {
       name = "p_each_series___p_each_series_2.1.0.tgz";
       path = fetchurl {
         name = "p_each_series___p_each_series_2.1.0.tgz";
@@ -9570,14 +9594,6 @@
       };
     }
     {
-      name = "p_is_promise___p_is_promise_2.1.0.tgz";
-      path = fetchurl {
-        name = "p_is_promise___p_is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz";
-        sha1 = "918cebaea248a62cf7ffab8e3bca8c5f882fc42e";
-      };
-    }
-    {
       name = "p_limit___p_limit_1.2.0.tgz";
       path = fetchurl {
         name = "p_limit___p_limit_1.2.0.tgz";
@@ -9626,11 +9642,11 @@
       };
     }
     {
-      name = "p_map___p_map_3.0.0.tgz";
+      name = "p_map___p_map_4.0.0.tgz";
       path = fetchurl {
-        name = "p_map___p_map_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz";
-        sha1 = "d704d9af8a2ba684e2600d9a215983d4141a979d";
+        name = "p_map___p_map_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz";
+        sha1 = "bb2f95a5eda2ec168ec9274e06a747c3e2904d2b";
       };
     }
     {
@@ -9714,11 +9730,11 @@
       };
     }
     {
-      name = "parse_entities___parse_entities_1.2.0.tgz";
+      name = "parse_entities___parse_entities_2.0.0.tgz";
       path = fetchurl {
-        name = "parse_entities___parse_entities_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.0.tgz";
-        sha1 = "9deac087661b2e36814153cb78d7e54a4c5fd6f4";
+        name = "parse_entities___parse_entities_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz";
+        sha1 = "53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8";
       };
     }
     {
@@ -9730,14 +9746,6 @@
       };
     }
     {
-      name = "parse_json___parse_json_4.0.0.tgz";
-      path = fetchurl {
-        name = "parse_json___parse_json_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz";
-        sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
-      };
-    }
-    {
       name = "parse_json___parse_json_5.1.0.tgz";
       path = fetchurl {
         name = "parse_json___parse_json_5.1.0.tgz";
@@ -9906,6 +9914,14 @@
       };
     }
     {
+      name = "path_type___path_type_4.0.0.tgz";
+      path = fetchurl {
+        name = "path_type___path_type_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz";
+        sha1 = "84ed01c0a7ba380afe09d90a8c180dcd9d03043b";
+      };
+    }
+    {
       name = "pbkdf2___pbkdf2_3.0.14.tgz";
       path = fetchurl {
         name = "pbkdf2___pbkdf2_3.0.14.tgz";
@@ -9994,14 +10010,6 @@
       };
     }
     {
-      name = "pixelmatch___pixelmatch_4.0.2.tgz";
-      path = fetchurl {
-        name = "pixelmatch___pixelmatch_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz";
-        sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
-      };
-    }
-    {
       name = "pkg_dir___pkg_dir_2.0.0.tgz";
       path = fetchurl {
         name = "pkg_dir___pkg_dir_2.0.0.tgz";
@@ -10026,22 +10034,6 @@
       };
     }
     {
-      name = "pkg_up___pkg_up_2.0.0.tgz";
-      path = fetchurl {
-        name = "pkg_up___pkg_up_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz";
-        sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
-      };
-    }
-    {
-      name = "pngjs___pngjs_3.3.3.tgz";
-      path = fetchurl {
-        name = "pngjs___pngjs_3.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.3.tgz";
-        sha1 = "85173703bde3edac8998757b96e5821d0966a21b";
-      };
-    }
-    {
       name = "pofile___pofile_1.0.11.tgz";
       path = fetchurl {
         name = "pofile___pofile_1.0.11.tgz";
@@ -10066,11 +10058,11 @@
       };
     }
     {
-      name = "portfinder___portfinder_1.0.25.tgz";
+      name = "portfinder___portfinder_1.0.28.tgz";
       path = fetchurl {
-        name = "portfinder___portfinder_1.0.25.tgz";
-        url  = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz";
-        sha1 = "254fd337ffba869f4b9d37edc298059cb4d35eca";
+        name = "portfinder___portfinder_1.0.28.tgz";
+        url  = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz";
+        sha1 = "67c4622852bd5374dd1dd900f779f53462fac778";
       };
     }
     {
@@ -10090,14 +10082,6 @@
       };
     }
     {
-      name = "postcss_jsx___postcss_jsx_0.36.2.tgz";
-      path = fetchurl {
-        name = "postcss_jsx___postcss_jsx_0.36.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.2.tgz";
-        sha1 = "34bcd6752426a60b8df73f069e7595383060a794";
-      };
-    }
-    {
       name = "postcss_less___postcss_less_3.1.4.tgz";
       path = fetchurl {
         name = "postcss_less___postcss_less_3.1.4.tgz";
@@ -10106,14 +10090,6 @@
       };
     }
     {
-      name = "postcss_markdown___postcss_markdown_0.36.0.tgz";
-      path = fetchurl {
-        name = "postcss_markdown___postcss_markdown_0.36.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.36.0.tgz";
-        sha1 = "7f22849ae0e3db18820b7b0d5e7833f13a447560";
-      };
-    }
-    {
       name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
       path = fetchurl {
         name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
@@ -10154,14 +10130,6 @@
       };
     }
     {
-      name = "postcss_reporter___postcss_reporter_6.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_reporter___postcss_reporter_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz";
-        sha1 = "7c055120060a97c8837b4e48215661aafb74245f";
-      };
-    }
-    {
       name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
       path = fetchurl {
         name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
@@ -10170,43 +10138,35 @@
       };
     }
     {
-      name = "postcss_safe_parser___postcss_safe_parser_4.0.1.tgz";
+      name = "postcss_safe_parser___postcss_safe_parser_4.0.2.tgz";
       path = fetchurl {
-        name = "postcss_safe_parser___postcss_safe_parser_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz";
-        sha1 = "8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea";
+        name = "postcss_safe_parser___postcss_safe_parser_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz";
+        sha1 = "a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96";
       };
     }
     {
-      name = "postcss_sass___postcss_sass_0.3.5.tgz";
+      name = "postcss_sass___postcss_sass_0.4.4.tgz";
       path = fetchurl {
-        name = "postcss_sass___postcss_sass_0.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.3.5.tgz";
-        sha1 = "6d3e39f101a53d2efa091f953493116d32beb68c";
+        name = "postcss_sass___postcss_sass_0.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.4.tgz";
+        sha1 = "91f0f3447b45ce373227a98b61f8d8f0785285a3";
       };
     }
     {
-      name = "postcss_scss___postcss_scss_2.0.0.tgz";
+      name = "postcss_scss___postcss_scss_2.1.1.tgz";
       path = fetchurl {
-        name = "postcss_scss___postcss_scss_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz";
-        sha1 = "248b0a28af77ea7b32b1011aba0f738bda27dea1";
+        name = "postcss_scss___postcss_scss_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz";
+        sha1 = "ec3a75fa29a55e016b90bf3269026c53c1d2b383";
       };
     }
     {
-      name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
+      name = "postcss_selector_parser___postcss_selector_parser_6.0.4.tgz";
       path = fetchurl {
-        name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz";
-        sha1 = "4f875f4afb0c96573d5cf4d74011aee250a7e865";
-      };
-    }
-    {
-      name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
-        sha1 = "934cf799d016c83411859e09dcecade01286ec5c";
+        name = "postcss_selector_parser___postcss_selector_parser_6.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz";
+        sha1 = "56075a1380a04604c38b063ea7767a129af5c2b3";
       };
     }
     {
@@ -10226,19 +10186,27 @@
       };
     }
     {
-      name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
+      name = "postcss_value_parser___postcss_value_parser_4.1.0.tgz";
+      path = fetchurl {
+        name = "postcss_value_parser___postcss_value_parser_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
+        sha1 = "443f6a20ced6481a2bda4fa8532a6e55d789a2cb";
+      };
+    }
+    {
+      name = "postcss___postcss_7.0.35.tgz";
       path = fetchurl {
-        name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz";
-        sha1 = "99a983d365f7b2ad8d0f9b8c3094926eab4b936d";
+        name = "postcss___postcss_7.0.35.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz";
+        sha1 = "d2be00b998f7f211d8a276974079f2e92b970e24";
       };
     }
     {
-      name = "postcss___postcss_7.0.30.tgz";
+      name = "prelude_ls___prelude_ls_1.2.1.tgz";
       path = fetchurl {
-        name = "postcss___postcss_7.0.30.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.30.tgz";
-        sha1 = "cc9378beffe46a02cbc4506a0477d05fcea9a8e2";
+        name = "prelude_ls___prelude_ls_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
       };
     }
     {
@@ -10266,14 +10234,6 @@
       };
     }
     {
-      name = "prettier___prettier_1.18.2.tgz";
-      path = fetchurl {
-        name = "prettier___prettier_1.18.2.tgz";
-        url  = "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz";
-        sha1 = "6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea";
-      };
-    }
-    {
       name = "prettier___prettier_2.0.5.tgz";
       path = fetchurl {
         name = "prettier___prettier_2.0.5.tgz";
@@ -10282,11 +10242,19 @@
       };
     }
     {
-      name = "pretty_format___pretty_format_25.5.0.tgz";
+      name = "prettier___prettier_2.2.1.tgz";
+      path = fetchurl {
+        name = "prettier___prettier_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz";
+        sha1 = "795a1a78dd52f073da0cd42b21f9c91381923ff5";
+      };
+    }
+    {
+      name = "prettier___prettier_1.18.2.tgz";
       path = fetchurl {
-        name = "pretty_format___pretty_format_25.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz";
-        sha1 = "7873c1d774f682c34b8d48b6743a2bf2ac55791a";
+        name = "prettier___prettier_1.18.2.tgz";
+        url  = "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz";
+        sha1 = "6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea";
       };
     }
     {
@@ -10370,115 +10338,115 @@
       };
     }
     {
-      name = "prosemirror_commands___prosemirror_commands_1.0.7.tgz";
+      name = "prosemirror_collab___prosemirror_collab_1.2.2.tgz";
       path = fetchurl {
-        name = "prosemirror_commands___prosemirror_commands_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.0.7.tgz";
-        sha1 = "e5a2ba821e29ea7065c88277fe2c3d7f6b0b9d37";
+        name = "prosemirror_collab___prosemirror_collab_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.2.2.tgz";
+        sha1 = "8d2c0e82779cfef5d051154bd0836428bd6d9c4a";
       };
     }
     {
-      name = "prosemirror_dropcursor___prosemirror_dropcursor_1.1.1.tgz";
+      name = "prosemirror_commands___prosemirror_commands_1.1.7.tgz";
       path = fetchurl {
-        name = "prosemirror_dropcursor___prosemirror_dropcursor_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.1.1.tgz";
-        sha1 = "c60ed1ed6c58804a06a75db06a0d993b087b7622";
+        name = "prosemirror_commands___prosemirror_commands_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.1.7.tgz";
+        sha1 = "5b31ae0fe82835d36d22c780641c0b651f27dd03";
       };
     }
     {
-      name = "prosemirror_gapcursor___prosemirror_gapcursor_1.0.3.tgz";
+      name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.3.tgz";
       path = fetchurl {
-        name = "prosemirror_gapcursor___prosemirror_gapcursor_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.3.tgz";
-        sha1 = "acc6537fc5a35e9b38966f91a199a382dfc715c4";
+        name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.3.tgz";
+        sha1 = "583d6a82b4960d468132c07c40803cc1d697fda4";
       };
     }
     {
-      name = "prosemirror_history___prosemirror_history_1.0.3.tgz";
+      name = "prosemirror_gapcursor___prosemirror_gapcursor_1.1.5.tgz";
       path = fetchurl {
-        name = "prosemirror_history___prosemirror_history_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.0.3.tgz";
-        sha1 = "5fb8591adfc272afaaf0b41bec64ee7d9522a118";
+        name = "prosemirror_gapcursor___prosemirror_gapcursor_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.1.5.tgz";
+        sha1 = "0c37fd6cbb1d7c46358c2e7397f8da9a8b5c6246";
       };
     }
     {
-      name = "prosemirror_inputrules___prosemirror_inputrules_1.0.1.tgz";
+      name = "prosemirror_history___prosemirror_history_1.1.3.tgz";
       path = fetchurl {
-        name = "prosemirror_inputrules___prosemirror_inputrules_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.0.1.tgz";
-        sha1 = "f63305fd966379f218e82ca76a2a9b328b66dc7b";
+        name = "prosemirror_history___prosemirror_history_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.1.3.tgz";
+        sha1 = "4f76a1e71db4ef7cdf0e13dec6d8da2aeaecd489";
       };
     }
     {
-      name = "prosemirror_keymap___prosemirror_keymap_1.0.1.tgz";
+      name = "prosemirror_inputrules___prosemirror_inputrules_1.1.3.tgz";
       path = fetchurl {
-        name = "prosemirror_keymap___prosemirror_keymap_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.0.1.tgz";
-        sha1 = "03ef32b828e3a859dfb570eb84928bf2e5330bc2";
+        name = "prosemirror_inputrules___prosemirror_inputrules_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.3.tgz";
+        sha1 = "93f9199ca02473259c30d7e352e4c14022d54638";
       };
     }
     {
-      name = "prosemirror_markdown___prosemirror_markdown_1.3.0.tgz";
+      name = "prosemirror_keymap___prosemirror_keymap_1.1.4.tgz";
       path = fetchurl {
-        name = "prosemirror_markdown___prosemirror_markdown_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.3.0.tgz";
-        sha1 = "a100d14c27da7d8fb70818230d786898eeadb7fa";
+        name = "prosemirror_keymap___prosemirror_keymap_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.4.tgz";
+        sha1 = "8b481bf8389a5ac40d38dbd67ec3da2c7eac6a6d";
       };
     }
     {
-      name = "prosemirror_model___prosemirror_model_1.6.4.tgz";
+      name = "prosemirror_markdown___prosemirror_markdown_1.5.1.tgz";
       path = fetchurl {
-        name = "prosemirror_model___prosemirror_model_1.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.6.4.tgz";
-        sha1 = "2ac37a629448a7dbfd1635450e2fdd63c3450d7d";
+        name = "prosemirror_markdown___prosemirror_markdown_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.5.1.tgz";
+        sha1 = "877c7faea2225d3c52e988599bbe4457bcb3190f";
       };
     }
     {
-      name = "prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
+      name = "prosemirror_model___prosemirror_model_1.13.3.tgz";
       path = fetchurl {
-        name = "prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.0.1.tgz";
-        sha1 = "f216e0cf4809b6074aa27912449ac89897f1ae94";
+        name = "prosemirror_model___prosemirror_model_1.13.3.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.13.3.tgz";
+        sha1 = "3ccfde73b9c9e706933c72bdf7462906509ff1c9";
       };
     }
     {
-      name = "prosemirror_state___prosemirror_state_1.2.2.tgz";
+      name = "prosemirror_schema_list___prosemirror_schema_list_1.1.4.tgz";
       path = fetchurl {
-        name = "prosemirror_state___prosemirror_state_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.2.2.tgz";
-        sha1 = "8df26d95fd6fd327c0f9984a760e84d863204154";
+        name = "prosemirror_schema_list___prosemirror_schema_list_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.1.4.tgz";
+        sha1 = "471f9caf2d2bed93641d2e490434c0d2d4330df1";
       };
     }
     {
-      name = "prosemirror_tables___prosemirror_tables_0.7.10.tgz";
+      name = "prosemirror_state___prosemirror_state_1.3.4.tgz";
       path = fetchurl {
-        name = "prosemirror_tables___prosemirror_tables_0.7.10.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-0.7.10.tgz";
-        sha1 = "4b0f623422b4b8f84cdc9c559f8a87579846b3ba";
+        name = "prosemirror_state___prosemirror_state_1.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.4.tgz";
+        sha1 = "4c6b52628216e753fc901c6d2bfd84ce109e8952";
       };
     }
     {
-      name = "prosemirror_transform___prosemirror_transform_1.1.3.tgz";
+      name = "prosemirror_tables___prosemirror_tables_1.1.1.tgz";
       path = fetchurl {
-        name = "prosemirror_transform___prosemirror_transform_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.1.3.tgz";
-        sha1 = "28cfdf1f9ee514edc40466be7b7db39eed545fdf";
+        name = "prosemirror_tables___prosemirror_tables_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.1.tgz";
+        sha1 = "ad66300cc49500455cf1243bb129c9e7d883321e";
       };
     }
     {
-      name = "prosemirror_utils___prosemirror_utils_0.7.5.tgz";
+      name = "prosemirror_transform___prosemirror_transform_1.2.12.tgz";
       path = fetchurl {
-        name = "prosemirror_utils___prosemirror_utils_0.7.5.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.7.5.tgz";
-        sha1 = "11b477647b672ec8f10679ab298a5823dad6457a";
+        name = "prosemirror_transform___prosemirror_transform_1.2.12.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.12.tgz";
+        sha1 = "4398b568faf75a1540fbf5c659ca436a8657ed6f";
       };
     }
     {
-      name = "prosemirror_view___prosemirror_view_1.6.8.tgz";
+      name = "prosemirror_view___prosemirror_view_1.18.0.tgz";
       path = fetchurl {
-        name = "prosemirror_view___prosemirror_view_1.6.8.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.6.8.tgz";
-        sha1 = "33fc1a6e2731633e5d6dc1af1967378f15810b74";
+        name = "prosemirror_view___prosemirror_view_1.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.18.0.tgz";
+        sha1 = "92d27b2583877938c529e173e6e3a0f3f6aa0e1c";
       };
     }
     {
@@ -10626,27 +10594,27 @@
       };
     }
     {
-      name = "querystringify___querystringify_2.1.0.tgz";
+      name = "querystringify___querystringify_2.2.0.tgz";
       path = fetchurl {
-        name = "querystringify___querystringify_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz";
-        sha1 = "7ded8dfbf7879dcc60d0a644ac6754b283ad17ef";
+        name = "querystringify___querystringify_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz";
+        sha1 = "3345941b4153cb9d082d8eee4cda2016a9aef7f6";
       };
     }
     {
-      name = "quick_lru___quick_lru_1.1.0.tgz";
+      name = "quick_lru___quick_lru_4.0.1.tgz";
       path = fetchurl {
-        name = "quick_lru___quick_lru_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz";
-        sha1 = "4360b17c61136ad38078397ff11416e186dcfbb8";
+        name = "quick_lru___quick_lru_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz";
+        sha1 = "5b8878f113a58217848c6482026c73e1ba57727f";
       };
     }
     {
-      name = "randombytes___randombytes_2.0.6.tgz";
+      name = "randombytes___randombytes_2.1.0.tgz";
       path = fetchurl {
-        name = "randombytes___randombytes_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz";
-        sha1 = "d302c522948588848a8d300c932b44c24231da80";
+        name = "randombytes___randombytes_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz";
+        sha1 = "df6f84372f0270dc65cdf6291349ab7a473d4f2a";
       };
     }
     {
@@ -10682,11 +10650,11 @@
       };
     }
     {
-      name = "raw_loader___raw_loader_4.0.0.tgz";
+      name = "raw_loader___raw_loader_4.0.2.tgz";
       path = fetchurl {
-        name = "raw_loader___raw_loader_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.0.tgz";
-        sha1 = "d639c40fb9d72b5c7f8abc1fb2ddb25b29d3d540";
+        name = "raw_loader___raw_loader_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz";
+        sha1 = "1aac6b7d1ad1501e66efdac1522c73e59a584eb6";
       };
     }
     {
@@ -10722,14 +10690,6 @@
       };
     }
     {
-      name = "read_pkg_up___read_pkg_up_3.0.0.tgz";
-      path = fetchurl {
-        name = "read_pkg_up___read_pkg_up_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz";
-        sha1 = "3ed496685dba0f8fe118d0691dc51f4a1ff96f07";
-      };
-    }
-    {
       name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
       path = fetchurl {
         name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
@@ -10754,14 +10714,6 @@
       };
     }
     {
-      name = "read_pkg___read_pkg_3.0.0.tgz";
-      path = fetchurl {
-        name = "read_pkg___read_pkg_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz";
-        sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
-      };
-    }
-    {
       name = "read_pkg___read_pkg_5.2.0.tgz";
       path = fetchurl {
         name = "read_pkg___read_pkg_5.2.0.tgz";
@@ -10778,11 +10730,11 @@
       };
     }
     {
-      name = "readable_stream___readable_stream_3.0.6.tgz";
+      name = "readable_stream___readable_stream_3.6.0.tgz";
       path = fetchurl {
-        name = "readable_stream___readable_stream_3.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz";
-        sha1 = "351302e4c68b5abd6a2ed55376a7f9a25be3057a";
+        name = "readable_stream___readable_stream_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
       };
     }
     {
@@ -10818,11 +10770,11 @@
       };
     }
     {
-      name = "redent___redent_2.0.0.tgz";
+      name = "redent___redent_3.0.0.tgz";
       path = fetchurl {
-        name = "redent___redent_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz";
-        sha1 = "c1b2007b42d57eb1389079b3c8333639d5e1ccaa";
+        name = "redent___redent_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz";
+        sha1 = "e557b7998316bb53c9f1f56fa626352c6963059f";
       };
     }
     {
@@ -10866,11 +10818,11 @@
       };
     }
     {
-      name = "regexpp___regexpp_2.0.1.tgz";
+      name = "regexpp___regexpp_3.1.0.tgz";
       path = fetchurl {
-        name = "regexpp___regexpp_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
-        sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
+        name = "regexpp___regexpp_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz";
+        sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2";
       };
     }
     {
@@ -10922,27 +10874,27 @@
       };
     }
     {
-      name = "remark_parse___remark_parse_6.0.3.tgz";
+      name = "remark_parse___remark_parse_9.0.0.tgz";
       path = fetchurl {
-        name = "remark_parse___remark_parse_6.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-6.0.3.tgz";
-        sha1 = "c99131052809da482108413f87b0ee7f52180a3a";
+        name = "remark_parse___remark_parse_9.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz";
+        sha1 = "4d20a299665880e4f4af5d90b7c7b8a935853640";
       };
     }
     {
-      name = "remark_stringify___remark_stringify_6.0.4.tgz";
+      name = "remark_stringify___remark_stringify_9.0.1.tgz";
       path = fetchurl {
-        name = "remark_stringify___remark_stringify_6.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-6.0.4.tgz";
-        sha1 = "16ac229d4d1593249018663c7bddf28aafc4e088";
+        name = "remark_stringify___remark_stringify_9.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz";
+        sha1 = "576d06e910548b0a7191a71f27b33f1218862894";
       };
     }
     {
-      name = "remark___remark_10.0.1.tgz";
+      name = "remark___remark_13.0.0.tgz";
       path = fetchurl {
-        name = "remark___remark_10.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark/-/remark-10.0.1.tgz";
-        sha1 = "3058076dc41781bf505d8978c291485fe47667df";
+        name = "remark___remark_13.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz";
+        sha1 = "d15d9bf71a402f40287ebe36067b66d54868e425";
       };
     }
     {
@@ -10978,14 +10930,6 @@
       };
     }
     {
-      name = "replace_ext___replace_ext_1.0.0.tgz";
-      path = fetchurl {
-        name = "replace_ext___replace_ext_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz";
-        sha1 = "de63128373fcbf7c3ccfa4de5a480c45a67958eb";
-      };
-    }
-    {
       name = "request_light___request_light_0.2.5.tgz";
       path = fetchurl {
         name = "request_light___request_light_0.2.5.tgz";
@@ -11026,11 +10970,11 @@
       };
     }
     {
-      name = "require_main_filename___require_main_filename_1.0.1.tgz";
+      name = "require_from_string___require_from_string_2.0.2.tgz";
       path = fetchurl {
-        name = "require_main_filename___require_main_filename_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
-        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+        name = "require_from_string___require_from_string_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
       };
     }
     {
@@ -11146,14 +11090,6 @@
       };
     }
     {
-      name = "restore_cursor___restore_cursor_3.1.0.tgz";
-      path = fetchurl {
-        name = "restore_cursor___restore_cursor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
-        sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
-      };
-    }
-    {
       name = "ret___ret_0.1.15.tgz";
       path = fetchurl {
         name = "ret___ret_0.1.15.tgz";
@@ -11170,19 +11106,19 @@
       };
     }
     {
-      name = "rfdc___rfdc_1.1.4.tgz";
+      name = "reusify___reusify_1.0.4.tgz";
       path = fetchurl {
-        name = "rfdc___rfdc_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz";
-        sha1 = "ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2";
+        name = "reusify___reusify_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz";
+        sha1 = "90da382b1e126efc02146e90845a88db12925d76";
       };
     }
     {
-      name = "rimraf___rimraf_2.7.1.tgz";
+      name = "rfdc___rfdc_1.1.4.tgz";
       path = fetchurl {
-        name = "rimraf___rimraf_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
-        sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
+        name = "rfdc___rfdc_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz";
+        sha1 = "ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2";
       };
     }
     {
@@ -11210,11 +11146,11 @@
       };
     }
     {
-      name = "rope_sequence___rope_sequence_1.2.2.tgz";
+      name = "rope_sequence___rope_sequence_1.3.2.tgz";
       path = fetchurl {
-        name = "rope_sequence___rope_sequence_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.2.2.tgz";
-        sha1 = "49c4e5c2f54a48e990b050926771e2871bcb31ce";
+        name = "rope_sequence___rope_sequence_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.2.tgz";
+        sha1 = "a19e02d72991ca71feb6b5f8a91154e48e3c098b";
       };
     }
     {
@@ -11234,11 +11170,11 @@
       };
     }
     {
-      name = "run_async___run_async_2.3.0.tgz";
+      name = "run_parallel___run_parallel_1.1.10.tgz";
       path = fetchurl {
-        name = "run_async___run_async_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz";
-        sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0";
+        name = "run_parallel___run_parallel_1.1.10.tgz";
+        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz";
+        sha1 = "60a51b2ae836636c81377df16cb107351bcd13ef";
       };
     }
     {
@@ -11258,14 +11194,6 @@
       };
     }
     {
-      name = "rxjs___rxjs_6.5.4.tgz";
-      path = fetchurl {
-        name = "rxjs___rxjs_6.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz";
-        sha1 = "e0777fe0d184cec7872df147f303572d414e211c";
-      };
-    }
-    {
       name = "safe_buffer___safe_buffer_5.1.2.tgz";
       path = fetchurl {
         name = "safe_buffer___safe_buffer_5.1.2.tgz";
@@ -11338,19 +11266,19 @@
       };
     }
     {
-      name = "schema_utils___schema_utils_2.6.4.tgz";
+      name = "schema_utils___schema_utils_2.7.1.tgz";
       path = fetchurl {
-        name = "schema_utils___schema_utils_2.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz";
-        sha1 = "a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53";
+        name = "schema_utils___schema_utils_2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz";
+        sha1 = "1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7";
       };
     }
     {
-      name = "scope_css___scope_css_1.2.1.tgz";
+      name = "schema_utils___schema_utils_3.0.0.tgz";
       path = fetchurl {
-        name = "scope_css___scope_css_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/scope-css/-/scope-css-1.2.1.tgz";
-        sha1 = "c35768bc900cad030a3e0d663a818c0f6a57f40e";
+        name = "schema_utils___schema_utils_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz";
+        sha1 = "67502f6aa2b66a2d4032b4279a2944978a0913ef";
       };
     }
     {
@@ -11386,11 +11314,11 @@
       };
     }
     {
-      name = "selfsigned___selfsigned_1.10.7.tgz";
+      name = "selfsigned___selfsigned_1.10.8.tgz";
       path = fetchurl {
-        name = "selfsigned___selfsigned_1.10.7.tgz";
-        url  = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz";
-        sha1 = "da5819fd049d5574f28e88a9bcc6dbc6e6f3906b";
+        name = "selfsigned___selfsigned_1.10.8.tgz";
+        url  = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz";
+        sha1 = "0d17208b7d12c33f8eac85c41835f27fc3d81a30";
       };
     }
     {
@@ -11418,14 +11346,6 @@
       };
     }
     {
-      name = "semver___semver_7.3.2.tgz";
-      path = fetchurl {
-        name = "semver___semver_7.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz";
-        sha1 = "604962b052b81ed0786aae84389ffba70ffd3938";
-      };
-    }
-    {
       name = "semver___semver_6.3.0.tgz";
       path = fetchurl {
         name = "semver___semver_6.3.0.tgz";
@@ -11434,6 +11354,14 @@
       };
     }
     {
+      name = "semver___semver_7.3.4.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz";
+        sha1 = "27aaa7d2e4ca76452f98d3add093a72c943edc97";
+      };
+    }
+    {
       name = "semver___semver_5.3.0.tgz";
       path = fetchurl {
         name = "semver___semver_5.3.0.tgz";
@@ -11458,6 +11386,14 @@
       };
     }
     {
+      name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
+      path = fetchurl {
+        name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha1 = "b525e1238489a5ecfc42afacc3fe99e666f4b1aa";
+      };
+    }
+    {
       name = "serve_index___serve_index_1.9.1.tgz";
       path = fetchurl {
         name = "serve_index___serve_index_1.9.1.tgz";
@@ -11570,6 +11506,14 @@
       };
     }
     {
+      name = "shortcss___shortcss_0.1.3.tgz";
+      path = fetchurl {
+        name = "shortcss___shortcss_0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/shortcss/-/shortcss-0.1.3.tgz";
+        sha1 = "ee2a7904d80b7f5502c98408f4a2f313faadfb48";
+      };
+    }
+    {
       name = "sigmund___sigmund_1.0.1.tgz";
       path = fetchurl {
         name = "sigmund___sigmund_1.0.1.tgz";
@@ -11602,14 +11546,6 @@
       };
     }
     {
-      name = "slash___slash_2.0.0.tgz";
-      path = fetchurl {
-        name = "slash___slash_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz";
-        sha1 = "de552851a1759df3a8f206535442f5ec4ddeab44";
-      };
-    }
-    {
       name = "slash___slash_3.0.0.tgz";
       path = fetchurl {
         name = "slash___slash_3.0.0.tgz";
@@ -11618,19 +11554,11 @@
       };
     }
     {
-      name = "slice_ansi___slice_ansi_2.1.0.tgz";
-      path = fetchurl {
-        name = "slice_ansi___slice_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
-        sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
-      };
-    }
-    {
-      name = "slugify___slugify_1.3.1.tgz";
+      name = "slice_ansi___slice_ansi_4.0.0.tgz";
       path = fetchurl {
-        name = "slugify___slugify_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/slugify/-/slugify-1.3.1.tgz";
-        sha1 = "f572127e8535329fbc6c1edb74ab856b61ad7de2";
+        name = "slice_ansi___slice_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
       };
     }
     {
@@ -11698,19 +11626,19 @@
       };
     }
     {
-      name = "sockjs_client___sockjs_client_1.4.0.tgz";
+      name = "sockjs_client___sockjs_client_1.5.0.tgz";
       path = fetchurl {
-        name = "sockjs_client___sockjs_client_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz";
-        sha1 = "c9f2568e19c8fd8173b4997ea3420e0bb306c7d5";
+        name = "sockjs_client___sockjs_client_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz";
+        sha1 = "2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add";
       };
     }
     {
-      name = "sockjs___sockjs_0.3.19.tgz";
+      name = "sockjs___sockjs_0.3.21.tgz";
       path = fetchurl {
-        name = "sockjs___sockjs_0.3.19.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz";
-        sha1 = "d976bbe800af7bd20ae08598d582393508993c0d";
+        name = "sockjs___sockjs_0.3.21.tgz";
+        url  = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz";
+        sha1 = "b34ffb98e796930b60a0cfa11904d6a339a7d417";
       };
     }
     {
@@ -11834,11 +11762,11 @@
       };
     }
     {
-      name = "spdy___spdy_4.0.1.tgz";
+      name = "spdy___spdy_4.0.2.tgz";
       path = fetchurl {
-        name = "spdy___spdy_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz";
-        sha1 = "6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2";
+        name = "spdy___spdy_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz";
+        sha1 = "b74f466203a3eda452c02492b91fb9e84a27677b";
       };
     }
     {
@@ -11890,11 +11818,11 @@
       };
     }
     {
-      name = "ssri___ssri_7.1.0.tgz";
+      name = "ssri___ssri_8.0.0.tgz";
       path = fetchurl {
-        name = "ssri___ssri_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz";
-        sha1 = "92c241bf6de82365b5c7fb4bd76e975522e1294d";
+        name = "ssri___ssri_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz";
+        sha1 = "79ca74e21f8ceaeddfcb4b90143c458b8d988808";
       };
     }
     {
@@ -11906,14 +11834,6 @@
       };
     }
     {
-      name = "state_toggle___state_toggle_1.0.1.tgz";
-      path = fetchurl {
-        name = "state_toggle___state_toggle_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz";
-        sha1 = "c3cb0974f40a6a0f8e905b96789eb41afa1cde3a";
-      };
-    }
-    {
       name = "static_extend___static_extend_0.1.2.tgz";
       path = fetchurl {
         name = "static_extend___static_extend_0.1.2.tgz";
@@ -11954,14 +11874,6 @@
       };
     }
     {
-      name = "stickyfilljs___stickyfilljs_2.1.0.tgz";
-      path = fetchurl {
-        name = "stickyfilljs___stickyfilljs_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/stickyfilljs/-/stickyfilljs-2.1.0.tgz";
-        sha1 = "46dabb599d8275d185bdb97db597f86a2e3afa7b";
-      };
-    }
-    {
       name = "stream_browserify___stream_browserify_2.0.1.tgz";
       path = fetchurl {
         name = "stream_browserify___stream_browserify_2.0.1.tgz";
@@ -12026,14 +11938,6 @@
       };
     }
     {
-      name = "string_width___string_width_2.1.1.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
-        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
-      };
-    }
-    {
       name = "string_width___string_width_3.1.0.tgz";
       path = fetchurl {
         name = "string_width___string_width_3.1.0.tgz";
@@ -12050,19 +11954,19 @@
       };
     }
     {
-      name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.tgz";
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.3.tgz";
       path = fetchurl {
-        name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
-        sha1 = "9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74";
+        name = "string.prototype.trimend___string.prototype.trimend_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz";
+        sha1 = "a22bd53cca5c7cf44d7c9d5c732118873d6cd18b";
       };
     }
     {
-      name = "string.prototype.trimright___string.prototype.trimright_2.1.1.tgz";
+      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.3.tgz";
       path = fetchurl {
-        name = "string.prototype.trimright___string.prototype.trimright_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
-        sha1 = "440314b15996c866ce8a0341894d45186200c5d9";
+        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz";
+        sha1 = "9b4cb590e123bb36564401d59824298de50fd5aa";
       };
     }
     {
@@ -12082,14 +11986,6 @@
       };
     }
     {
-      name = "stringify_entities___stringify_entities_1.3.2.tgz";
-      path = fetchurl {
-        name = "stringify_entities___stringify_entities_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz";
-        sha1 = "a98417e5471fd227b3e45d3db1861c11caf668f7";
-      };
-    }
-    {
       name = "strip_ansi___strip_ansi_3.0.1.tgz";
       path = fetchurl {
         name = "strip_ansi___strip_ansi_3.0.1.tgz";
@@ -12146,14 +12042,6 @@
       };
     }
     {
-      name = "strip_css_comments___strip_css_comments_3.0.0.tgz";
-      path = fetchurl {
-        name = "strip_css_comments___strip_css_comments_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-css-comments/-/strip-css-comments-3.0.0.tgz";
-        sha1 = "7a5625eff8a2b226cf8947a11254da96e13dae89";
-      };
-    }
-    {
       name = "strip_eof___strip_eof_1.0.0.tgz";
       path = fetchurl {
         name = "strip_eof___strip_eof_1.0.0.tgz";
@@ -12178,19 +12066,19 @@
       };
     }
     {
-      name = "strip_indent___strip_indent_2.0.0.tgz";
+      name = "strip_indent___strip_indent_3.0.0.tgz";
       path = fetchurl {
-        name = "strip_indent___strip_indent_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz";
-        sha1 = "5ef8db295d01e6ed6cbf7aab96998d7822527b68";
+        name = "strip_indent___strip_indent_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz";
+        sha1 = "c32e1cee940b6b3432c771bc2c54bcce73cd3001";
       };
     }
     {
-      name = "strip_json_comments___strip_json_comments_3.0.1.tgz";
+      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
       path = fetchurl {
-        name = "strip_json_comments___strip_json_comments_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz";
-        sha1 = "85713975a91fb87bf1b305cca77395e40d2a64a7";
+        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
       };
     }
     {
@@ -12202,11 +12090,11 @@
       };
     }
     {
-      name = "style_loader___style_loader_1.1.3.tgz";
+      name = "style_loader___style_loader_1.3.0.tgz";
       path = fetchurl {
-        name = "style_loader___style_loader_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz";
-        sha1 = "9e826e69c683c4d9bf9db924f85e9abb30d5e200";
+        name = "style_loader___style_loader_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz";
+        sha1 = "828b4a3b3b7e7aa5847ce7bae9e874512114249e";
       };
     }
     {
@@ -12218,43 +12106,43 @@
       };
     }
     {
-      name = "stylelint_config_recommended___stylelint_config_recommended_2.2.0.tgz";
+      name = "stylelint_declaration_strict_value___stylelint_declaration_strict_value_1.7.7.tgz";
       path = fetchurl {
-        name = "stylelint_config_recommended___stylelint_config_recommended_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-2.2.0.tgz";
-        sha1 = "46ab139db4a0e7151fd5f94af155512886c96d3f";
+        name = "stylelint_declaration_strict_value___stylelint_declaration_strict_value_1.7.7.tgz";
+        url  = "https://registry.yarnpkg.com/stylelint-declaration-strict-value/-/stylelint-declaration-strict-value-1.7.7.tgz";
+        sha1 = "d2f0aabc7f3e701a8988207f27d9696bd1d1ed0d";
       };
     }
     {
-      name = "stylelint_scss___stylelint_scss_3.9.2.tgz";
+      name = "stylelint_scss___stylelint_scss_3.18.0.tgz";
       path = fetchurl {
-        name = "stylelint_scss___stylelint_scss_3.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.9.2.tgz";
-        sha1 = "5435174a57696ee52eae40146778a4e62f7ed3a3";
+        name = "stylelint_scss___stylelint_scss_3.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.18.0.tgz";
+        sha1 = "8f06371c223909bf3f62e839548af1badeed31e9";
       };
     }
     {
-      name = "stylelint___stylelint_10.1.0.tgz";
+      name = "stylelint___stylelint_13.9.0.tgz";
       path = fetchurl {
-        name = "stylelint___stylelint_10.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/stylelint/-/stylelint-10.1.0.tgz";
-        sha1 = "1bc4c4ce878107e7c396b19226d91ba28268911a";
+        name = "stylelint___stylelint_13.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/stylelint/-/stylelint-13.9.0.tgz";
+        sha1 = "93921ee6e11d4556b9f31131f485dc813b68e32a";
       };
     }
     {
-      name = "sugarss___sugarss_2.0.0.tgz";
+      name = "stylis___stylis_3.5.4.tgz";
       path = fetchurl {
-        name = "sugarss___sugarss_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz";
-        sha1 = "ddd76e0124b297d40bf3cca31c8b22ecb43bc61d";
+        name = "stylis___stylis_3.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz";
+        sha1 = "f665f25f5e299cf3d64654ab949a57c768b73fbe";
       };
     }
     {
-      name = "supports_color___supports_color_6.1.0.tgz";
+      name = "sugarss___sugarss_2.0.0.tgz";
       path = fetchurl {
-        name = "supports_color___supports_color_6.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
-        sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
+        name = "sugarss___sugarss_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz";
+        sha1 = "ddd76e0124b297d40bf3cca31c8b22ecb43bc61d";
       };
     }
     {
@@ -12274,6 +12162,14 @@
       };
     }
     {
+      name = "supports_color___supports_color_6.1.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
+        sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
+      };
+    }
+    {
       name = "supports_color___supports_color_7.2.0.tgz";
       path = fetchurl {
         name = "supports_color___supports_color_7.2.0.tgz";
@@ -12298,11 +12194,11 @@
       };
     }
     {
-      name = "swagger_ui_dist___swagger_ui_dist_3.32.4.tgz";
+      name = "swagger_ui_dist___swagger_ui_dist_3.44.1.tgz";
       path = fetchurl {
-        name = "swagger_ui_dist___swagger_ui_dist_3.32.4.tgz";
-        url  = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.32.4.tgz";
-        sha1 = "6fa920a99e38eaaf129580ac158cf730494a2190";
+        name = "swagger_ui_dist___swagger_ui_dist_3.44.1.tgz";
+        url  = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.44.1.tgz";
+        sha1 = "757385a79698b8ef7045287be585671db4e4a252";
       };
     }
     {
@@ -12322,11 +12218,11 @@
       };
     }
     {
-      name = "table___table_5.4.4.tgz";
+      name = "table___table_6.0.7.tgz";
       path = fetchurl {
-        name = "table___table_5.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-5.4.4.tgz";
-        sha1 = "6e0f88fdae3692793d1077fd172a4667afe986a6";
+        name = "table___table_6.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz";
+        sha1 = "e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34";
       };
     }
     {
@@ -12362,6 +12258,14 @@
       };
     }
     {
+      name = "tar___tar_6.0.5.tgz";
+      path = fetchurl {
+        name = "tar___tar_6.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz";
+        sha1 = "bde815086e10b39f1dcd298e89d596e1535e200f";
+      };
+    }
+    {
       name = "term_size___term_size_2.2.0.tgz";
       path = fetchurl {
         name = "term_size___term_size_2.2.0.tgz";
@@ -12466,14 +12370,6 @@
       };
     }
     {
-      name = "through___through_2.3.8.tgz";
-      path = fetchurl {
-        name = "through___through_2.3.8.tgz";
-        url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
-      };
-    }
-    {
       name = "thunky___thunky_0.1.0.tgz";
       path = fetchurl {
         name = "thunky___thunky_0.1.0.tgz";
@@ -12514,35 +12410,35 @@
       };
     }
     {
-      name = "tiptap_commands___tiptap_commands_1.4.0.tgz";
+      name = "tiptap_commands___tiptap_commands_1.17.1.tgz";
       path = fetchurl {
-        name = "tiptap_commands___tiptap_commands_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.4.0.tgz";
-        sha1 = "0cfb3ac138ee3099de56114cb119abd841fbcbe7";
+        name = "tiptap_commands___tiptap_commands_1.17.1.tgz";
+        url  = "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.17.1.tgz";
+        sha1 = "a8974a26d87db57b2fd4fc56a552520c69e43a4a";
       };
     }
     {
-      name = "tiptap_extensions___tiptap_extensions_1.8.0.tgz";
+      name = "tiptap_extensions___tiptap_extensions_1.35.1.tgz";
       path = fetchurl {
-        name = "tiptap_extensions___tiptap_extensions_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.8.0.tgz";
-        sha1 = "3067620a024f1a9e5fae4450790b143d7ebe4394";
+        name = "tiptap_extensions___tiptap_extensions_1.35.1.tgz";
+        url  = "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.35.1.tgz";
+        sha1 = "6227362b08dbad8d0ab0141b508876deca276c55";
       };
     }
     {
-      name = "tiptap_utils___tiptap_utils_1.1.1.tgz";
+      name = "tiptap_utils___tiptap_utils_1.13.1.tgz";
       path = fetchurl {
-        name = "tiptap_utils___tiptap_utils_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.1.1.tgz";
-        sha1 = "e7aad3e84eb35f7abed704d15da0420029789d0d";
+        name = "tiptap_utils___tiptap_utils_1.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.13.1.tgz";
+        sha1 = "f2150ded432465d66aa03a5ab333803415cddd20";
       };
     }
     {
-      name = "tiptap___tiptap_1.8.0.tgz";
+      name = "tiptap___tiptap_1.32.1.tgz";
       path = fetchurl {
-        name = "tiptap___tiptap_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/tiptap/-/tiptap-1.8.0.tgz";
-        sha1 = "c671188075ffa5ee4f86470f95818fd9ce6f1040";
+        name = "tiptap___tiptap_1.32.1.tgz";
+        url  = "https://registry.yarnpkg.com/tiptap/-/tiptap-1.32.1.tgz";
+        sha1 = "92b47008d163e31d25d44dc18809a7e928fe1daf";
       };
     }
     {
@@ -12682,35 +12578,19 @@
       };
     }
     {
-      name = "trim_newlines___trim_newlines_2.0.0.tgz";
+      name = "trim_newlines___trim_newlines_3.0.0.tgz";
       path = fetchurl {
-        name = "trim_newlines___trim_newlines_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz";
-        sha1 = "b403d0b91be50c331dfc4b82eeceb22c3de16d20";
+        name = "trim_newlines___trim_newlines_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz";
+        sha1 = "79726304a6a898aa8373427298d54c2ee8b1cb30";
       };
     }
     {
-      name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
+      name = "trough___trough_1.0.5.tgz";
       path = fetchurl {
-        name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz";
-        sha1 = "e0ec0810fd3c3f1730516b45f49083caaf2774d9";
-      };
-    }
-    {
-      name = "trim___trim_0.0.1.tgz";
-      path = fetchurl {
-        name = "trim___trim_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz";
-        sha1 = "5858547f6b290757ee95cccc666fb50084c460dd";
-      };
-    }
-    {
-      name = "trough___trough_1.0.3.tgz";
-      path = fetchurl {
-        name = "trough___trough_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz";
-        sha1 = "e29bd1614c6458d44869fc28b255ab7857ef7c24";
+        name = "trough___trough_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz";
+        sha1 = "b8b639cefad7d0bb2abd37d433ff8293efa5f406";
       };
     }
     {
@@ -12754,11 +12634,11 @@
       };
     }
     {
-      name = "ts_jest___ts_jest_26.4.1.tgz";
+      name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
       path = fetchurl {
-        name = "ts_jest___ts_jest_26.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.4.1.tgz";
-        sha1 = "08ec0d3fc2c3a39e4a46eae5610b69fafa6babd0";
+        name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
       };
     }
     {
@@ -12802,6 +12682,14 @@
       };
     }
     {
+      name = "type_check___type_check_0.4.0.tgz";
+      path = fetchurl {
+        name = "type_check___type_check_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
+        sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
+      };
+    }
+    {
       name = "type_check___type_check_0.3.2.tgz";
       path = fetchurl {
         name = "type_check___type_check_0.3.2.tgz";
@@ -12818,11 +12706,11 @@
       };
     }
     {
-      name = "type_fest___type_fest_0.5.2.tgz";
+      name = "type_fest___type_fest_0.18.1.tgz";
       path = fetchurl {
-        name = "type_fest___type_fest_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz";
-        sha1 = "d6ef42a0356c6cd45f49485c3b6281fc148e48a2";
+        name = "type_fest___type_fest_0.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz";
+        sha1 = "db4bc151a4a2cf4eebf9add5db75508db6cc841f";
       };
     }
     {
@@ -12866,11 +12754,11 @@
       };
     }
     {
-      name = "typescript___typescript_3.9.7.tgz";
+      name = "typescript___typescript_4.1.5.tgz";
       path = fetchurl {
-        name = "typescript___typescript_3.9.7.tgz";
-        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz";
-        sha1 = "98d600a5ebdc38f40cb277522f12dc800e9e25fa";
+        name = "typescript___typescript_4.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/typescript/-/typescript-4.1.5.tgz";
+        sha1 = "123a3b214aaff3be32926f0d8f1f6e704eb89a72";
       };
     }
     {
@@ -12930,14 +12818,6 @@
       };
     }
     {
-      name = "unherit___unherit_1.1.1.tgz";
-      path = fetchurl {
-        name = "unherit___unherit_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/unherit/-/unherit-1.1.1.tgz";
-        sha1 = "132748da3e88eab767e08fabfbb89c5e9d28628c";
-      };
-    }
-    {
       name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
       path = fetchurl {
         name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
@@ -12970,11 +12850,11 @@
       };
     }
     {
-      name = "unified___unified_7.1.0.tgz";
+      name = "unified___unified_9.2.0.tgz";
       path = fetchurl {
-        name = "unified___unified_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz";
-        sha1 = "5032f1c1ee3364bd09da12e27fdd4a7553c7be13";
+        name = "unified___unified_9.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz";
+        sha1 = "67a62c627c40589edebbf60f53edfd4d822027f8";
       };
     }
     {
@@ -13018,51 +12898,27 @@
       };
     }
     {
-      name = "unist_util_find_all_after___unist_util_find_all_after_1.0.2.tgz";
-      path = fetchurl {
-        name = "unist_util_find_all_after___unist_util_find_all_after_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz";
-        sha1 = "9be49cfbae5ca1566b27536670a92836bf2f8d6d";
-      };
-    }
-    {
-      name = "unist_util_is___unist_util_is_2.1.2.tgz";
-      path = fetchurl {
-        name = "unist_util_is___unist_util_is_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.2.tgz";
-        sha1 = "1193fa8f2bfbbb82150633f3a8d2eb9a1c1d55db";
-      };
-    }
-    {
-      name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
+      name = "unist_util_find_all_after___unist_util_find_all_after_3.0.2.tgz";
       path = fetchurl {
-        name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz";
-        sha1 = "86b5dad104d0bbfbeb1db5f5c92f3570575c12cb";
+        name = "unist_util_find_all_after___unist_util_find_all_after_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz";
+        sha1 = "fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6";
       };
     }
     {
-      name = "unist_util_stringify_position___unist_util_stringify_position_1.1.2.tgz";
+      name = "unist_util_is___unist_util_is_4.0.4.tgz";
       path = fetchurl {
-        name = "unist_util_stringify_position___unist_util_stringify_position_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz";
-        sha1 = "3f37fcf351279dcbca7480ab5889bb8a832ee1c6";
+        name = "unist_util_is___unist_util_is_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz";
+        sha1 = "3e9e8de6af2eb0039a59f50c9b3e99698a924f50";
       };
     }
     {
-      name = "unist_util_visit_parents___unist_util_visit_parents_2.0.1.tgz";
+      name = "unist_util_stringify_position___unist_util_stringify_position_2.0.3.tgz";
       path = fetchurl {
-        name = "unist_util_visit_parents___unist_util_visit_parents_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz";
-        sha1 = "63fffc8929027bee04bfef7d2cce474f71cb6217";
-      };
-    }
-    {
-      name = "unist_util_visit___unist_util_visit_1.4.1.tgz";
-      path = fetchurl {
-        name = "unist_util_visit___unist_util_visit_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz";
-        sha1 = "4724aaa8486e6ee6e26d7ff3c8685960d560b1e3";
+        name = "unist_util_stringify_position___unist_util_stringify_position_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz";
+        sha1 = "cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da";
       };
     }
     {
@@ -13138,11 +12994,11 @@
       };
     }
     {
-      name = "url_parse___url_parse_1.4.4.tgz";
+      name = "url_parse___url_parse_1.4.7.tgz";
       path = fetchurl {
-        name = "url_parse___url_parse_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz";
-        sha1 = "cac1556e95faa0303691fec5cf9d5a1bc34648f8";
+        name = "url_parse___url_parse_1.4.7.tgz";
+        url  = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz";
+        sha1 = "a8a83535e8c00a316e403a5db4ac1b9b853ae278";
       };
     }
     {
@@ -13250,11 +13106,11 @@
       };
     }
     {
-      name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
+      name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
       path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz";
-        sha1 = "00f7494d2ae2b688cfe2899df6ed2c54bef91dbe";
+        name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
+        sha1 = "9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132";
       };
     }
     {
@@ -13290,27 +13146,19 @@
       };
     }
     {
-      name = "vfile_location___vfile_location_2.0.4.tgz";
-      path = fetchurl {
-        name = "vfile_location___vfile_location_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.4.tgz";
-        sha1 = "2a5e7297dd0d9e2da4381464d04acc6b834d3e55";
-      };
-    }
-    {
-      name = "vfile_message___vfile_message_1.1.1.tgz";
+      name = "vfile_message___vfile_message_2.0.4.tgz";
       path = fetchurl {
-        name = "vfile_message___vfile_message_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz";
-        sha1 = "5833ae078a1dfa2d96e9647886cd32993ab313e1";
+        name = "vfile_message___vfile_message_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz";
+        sha1 = "5b43b88171d409eae58477d13f23dd41d52c371a";
       };
     }
     {
-      name = "vfile___vfile_3.0.1.tgz";
+      name = "vfile___vfile_4.2.1.tgz";
       path = fetchurl {
-        name = "vfile___vfile_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz";
-        sha1 = "47331d2abe3282424f4a4bb6acd20a44c4121803";
+        name = "vfile___vfile_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz";
+        sha1 = "03f1dce28fc625c625bc6514350fbdb00fa9e624";
       };
     }
     {
@@ -13442,11 +13290,11 @@
       };
     }
     {
-      name = "vue_eslint_parser___vue_eslint_parser_7.0.0.tgz";
+      name = "vue_eslint_parser___vue_eslint_parser_7.4.1.tgz";
       path = fetchurl {
-        name = "vue_eslint_parser___vue_eslint_parser_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz";
-        sha1 = "a4ed2669f87179dedd06afdd8736acbb3a3864d6";
+        name = "vue_eslint_parser___vue_eslint_parser_7.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.4.1.tgz";
+        sha1 = "e4adcf7876a7379758d9056a72235af18a587f92";
       };
     }
     {
@@ -13466,19 +13314,19 @@
       };
     }
     {
-      name = "vue_jest___vue_jest_4.0.0_rc.0.tgz";
+      name = "vue_jest___vue_jest_4.0.1.tgz";
       path = fetchurl {
-        name = "vue_jest___vue_jest_4.0.0_rc.0.tgz";
-        url  = "https://registry.yarnpkg.com/vue-jest/-/vue-jest-4.0.0-rc.0.tgz";
-        sha1 = "0ce263c7f923441d0eeb99841620e8e9470336f4";
+        name = "vue_jest___vue_jest_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/vue-jest/-/vue-jest-4.0.1.tgz";
+        sha1 = "683efc351c24456865b1356bae69d5bb663dafb5";
       };
     }
     {
-      name = "vue_loader___vue_loader_15.9.5.tgz";
+      name = "vue_loader___vue_loader_15.9.6.tgz";
       path = fetchurl {
-        name = "vue_loader___vue_loader_15.9.5.tgz";
-        url  = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.5.tgz";
-        sha1 = "7a960dc420a3439deaacdda038fdcdbf7c432706";
+        name = "vue_loader___vue_loader_15.9.6.tgz";
+        url  = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.6.tgz";
+        sha1 = "f4bb9ae20c3a8370af3ecf09b8126d38ffdb6b8b";
       };
     }
     {
@@ -13562,11 +13410,11 @@
       };
     }
     {
-      name = "w3c_keyname___w3c_keyname_1.1.8.tgz";
+      name = "w3c_keyname___w3c_keyname_2.2.4.tgz";
       path = fetchurl {
-        name = "w3c_keyname___w3c_keyname_1.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-1.1.8.tgz";
-        sha1 = "4e2219663760fd6535b7a1550f1552d71fc9372c";
+        name = "w3c_keyname___w3c_keyname_2.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.4.tgz";
+        sha1 = "4ade6916f6290224cdbd1db8ac49eab03d0eef6b";
       };
     }
     {
@@ -13586,19 +13434,19 @@
       };
     }
     {
-      name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz";
+      name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
       path = fetchurl {
-        name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz";
-        sha1 = "9948a1866cbbd6cb824dea13a7ed691f6c8ddff0";
+        name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz";
+        sha1 = "38500072ee6ece66f3769936950ea1771be1c957";
       };
     }
     {
-      name = "watchpack___watchpack_1.7.2.tgz";
+      name = "watchpack___watchpack_1.7.5.tgz";
       path = fetchurl {
-        name = "watchpack___watchpack_1.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz";
-        sha1 = "c02e4d4d49913c3e7e122c3325365af9d331e9aa";
+        name = "watchpack___watchpack_1.7.5.tgz";
+        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz";
+        sha1 = "1267e6c55e0b9b5be44c2023aed5437a2c26c453";
       };
     }
     {
@@ -13634,19 +13482,19 @@
       };
     }
     {
-      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
+      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.9.0.tgz";
       path = fetchurl {
-        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz";
-        sha1 = "39b3a8f829ca044682bc6f9e011c95deb554aefd";
+        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz";
+        sha1 = "f6f94db108fb574e415ad313de41a2707d33ef3c";
       };
     }
     {
-      name = "webpack_cli___webpack_cli_3.3.11.tgz";
+      name = "webpack_cli___webpack_cli_3.3.12.tgz";
       path = fetchurl {
-        name = "webpack_cli___webpack_cli_3.3.11.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz";
-        sha1 = "3bf21889bf597b5d82c38f215135a411edfdc631";
+        name = "webpack_cli___webpack_cli_3.3.12.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz";
+        sha1 = "94e9ada081453cd0aa609c99e500012fd3ad2d4a";
       };
     }
     {
@@ -13658,11 +13506,11 @@
       };
     }
     {
-      name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
+      name = "webpack_dev_server___webpack_dev_server_3.11.2.tgz";
       path = fetchurl {
-        name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
-        sha1 = "f35945036813e57ef582c2420ef7b470e14d3af0";
+        name = "webpack_dev_server___webpack_dev_server_3.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz";
+        sha1 = "695ebced76a4929f0d5de7fd73fafe185fe33708";
       };
     }
     {
@@ -13690,19 +13538,19 @@
       };
     }
     {
-      name = "webpack___webpack_4.42.0.tgz";
+      name = "webpack___webpack_4.46.0.tgz";
       path = fetchurl {
-        name = "webpack___webpack_4.42.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz";
-        sha1 = "b901635dd6179391d90740a63c93f76f39883eb8";
+        name = "webpack___webpack_4.46.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz";
+        sha1 = "bf9b4404ea20a073605e0a011d188d77cb6ad542";
       };
     }
     {
-      name = "websocket_driver___websocket_driver_0.6.5.tgz";
+      name = "websocket_driver___websocket_driver_0.7.4.tgz";
       path = fetchurl {
-        name = "websocket_driver___websocket_driver_0.6.5.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz";
-        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
+        name = "websocket_driver___websocket_driver_0.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz";
+        sha1 = "89ad5295bbf64b480abcba31e4953aca706f5760";
       };
     }
     {
@@ -13810,14 +13658,6 @@
       };
     }
     {
-      name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
-        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
-      };
-    }
-    {
       name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
       path = fetchurl {
         name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
@@ -13850,14 +13690,6 @@
       };
     }
     {
-      name = "write___write_1.0.3.tgz";
-      path = fetchurl {
-        name = "write___write_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
-        sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
-      };
-    }
-    {
       name = "ws___ws_6.2.1.tgz";
       path = fetchurl {
         name = "ws___ws_6.2.1.tgz";
@@ -13882,14 +13714,6 @@
       };
     }
     {
-      name = "x_is_string___x_is_string_0.1.0.tgz";
-      path = fetchurl {
-        name = "x_is_string___x_is_string_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz";
-        sha1 = "474b50865af3a49a9c4657f05acd145458f77d82";
-      };
-    }
-    {
       name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
       path = fetchurl {
         name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
@@ -14034,27 +13858,11 @@
       };
     }
     {
-      name = "yargs_parser___yargs_parser_20.2.1.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_20.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.1.tgz";
-        sha1 = "28f3773c546cdd8a69ddae68116b48a5da328e77";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_10.1.0.tgz";
+      name = "yaml___yaml_1.10.0.tgz";
       path = fetchurl {
-        name = "yargs_parser___yargs_parser_10.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz";
-        sha1 = "7202265b89f7e9e9f2e5765e0fe735a905edbaa8";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_11.1.1.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_11.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz";
-        sha1 = "879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4";
+        name = "yaml___yaml_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz";
+        sha1 = "3b593add944876077d4d683fee01081bd9fff31e";
       };
     }
     {
@@ -14074,19 +13882,11 @@
       };
     }
     {
-      name = "yargs___yargs_12.0.5.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_12.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz";
-        sha1 = "05f5997b609647b64f66b81e3b4b10a368e7ad13";
-      };
-    }
-    {
-      name = "yargs___yargs_13.2.4.tgz";
+      name = "yargs_parser___yargs_parser_20.2.4.tgz";
       path = fetchurl {
-        name = "yargs___yargs_13.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz";
-        sha1 = "0b562b794016eb9651b98bd37acf364aa5d6dc83";
+        name = "yargs_parser___yargs_parser_20.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz";
+        sha1 = "b42890f14566796f85ae8e3a25290d205f154a54";
       };
     }
     {
@@ -14146,11 +13946,19 @@
       };
     }
     {
-      name = "zrender___zrender_4.2.0.tgz";
+      name = "zrender___zrender_4.3.2.tgz";
+      path = fetchurl {
+        name = "zrender___zrender_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/zrender/-/zrender-4.3.2.tgz";
+        sha1 = "ec7432f9415c82c73584b6b7b8c47e1b016209c6";
+      };
+    }
+    {
+      name = "zwitch___zwitch_1.0.5.tgz";
       path = fetchurl {
-        name = "zrender___zrender_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/zrender/-/zrender-4.2.0.tgz";
-        sha1 = "d001302e155f28de1f9fc7fcd5c254bad28471cf";
+        name = "zwitch___zwitch_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz";
+        sha1 = "d11d7381ffed16b742f6af7b3f223d5cd9fe9920";
       };
     }
   ];
diff --git a/nixpkgs/pkgs/applications/version-management/gitstats/default.nix b/nixpkgs/pkgs/applications/version-management/gitstats/default.nix
index ccd13ba818b4..b987a3f55128 100644
--- a/nixpkgs/pkgs/applications/version-management/gitstats/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitstats/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, perl, python, gnuplot, coreutils, gnugrep }:
+{ lib, stdenv, fetchzip, perl, python2, gnuplot, coreutils, gnugrep }:
 
 stdenv.mkDerivation rec {
   pname = "gitstats";
@@ -11,7 +11,11 @@ stdenv.mkDerivation rec {
     name = "${pname}-${version}" + "-src";
   };
 
-  buildInputs = [ perl python ];
+  nativeBuildInputs = [ perl ];
+
+  buildInputs = [ python2 ];
+
+  strictDeps = true;
 
   postPatch = ''
     sed -e "s|gnuplot_cmd = .*|gnuplot_cmd = '${gnuplot}/bin/gnuplot'|" \
diff --git a/nixpkgs/pkgs/applications/version-management/meld/default.nix b/nixpkgs/pkgs/applications/version-management/meld/default.nix
index 268098b2d2d0..89e3a5ea0b53 100644
--- a/nixpkgs/pkgs/applications/version-management/meld/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/meld/default.nix
@@ -45,7 +45,6 @@ python3.pkgs.buildPythonApplication rec {
     gtksourceview4
     gsettings-desktop-schemas
     gnome3.adwaita-icon-theme
-    gobject-introspection # fixes https://github.com/NixOS/nixpkgs/issues/56943 for now
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -53,6 +52,10 @@ python3.pkgs.buildPythonApplication rec {
     pycairo
   ];
 
+  # gobject-introspection and some other similar setup hooks do not currently work with strictDeps.
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
diff --git a/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix b/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix
index 29440724274a..d2511e278632 100644
--- a/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix
+++ b/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix
@@ -21,7 +21,8 @@ in python2Packages.buildPythonApplication {
 
   inherit python; # pass it so that the same version can be used in hg2git
 
-  buildInputs = [ makeWrapper docutils unzip ]
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ docutils ]
     ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
 
   propagatedBuildInputs = [ hg-git dulwich ];
diff --git a/nixpkgs/pkgs/applications/version-management/mercurial/default.nix b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
index c841482126a1..26d263b060d4 100644
--- a/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
@@ -19,7 +19,8 @@ in python3Packages.buildPythonApplication rec {
 
   passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
 
-  buildInputs = [ makeWrapper docutils unzip ]
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ docutils ]
     ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix b/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix
index d6d55eaa4eb6..cfde0721bafc 100644
--- a/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, ocamlPackages, gnome2, pkg-config, makeWrapper, glib
-, libtool, libpng, yacc, expat, fontconfig, gd, pango, libjpeg, libwebp, xlibsWrapper, libXaw
+, libtool, libpng, bison, expat, fontconfig, gd, pango, libjpeg, libwebp, xlibsWrapper, libXaw
 }:
 # We need an old version of Graphviz for format compatibility reasons.
 # This version is vulnerable, but monotone-viz will never feed it bad input.
 let graphviz_2_0 = import ./graphviz-2.0.nix {
       inherit lib stdenv fetchurl pkg-config xlibsWrapper libpng libjpeg expat libXaw
-        yacc libtool fontconfig pango gd libwebp;
+        bison libtool fontconfig pango gd libwebp;
     }; in
 let inherit (gnome2) libgnomecanvas; in
 let inherit (ocamlPackages) ocaml lablgtk camlp4; in
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
   version = "1.0.2";
   pname = "monotone-viz";
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ocaml lablgtk libgnomecanvas glib graphviz_2_0 makeWrapper camlp4];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ocaml lablgtk libgnomecanvas glib graphviz_2_0 camlp4];
   src = fetchurl {
     url = "http://oandrieu.nerim.net/monotone-viz/${pname}-${version}-nolablgtk.tar.gz";
     sha256 = "1l5x4xqz5g1aaqbc1x80mg0yzkiah9ma9k9mivmn08alkjlakkdk";
diff --git a/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix b/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
index 8ecc5bf9ac8f..541a2262f999 100644
--- a/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
+++ b/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
@@ -1,9 +1,7 @@
 { lib, stdenv, fetchurl, pkg-config, xlibsWrapper, libpng, libjpeg, expat, libXaw
-, yacc, libtool, fontconfig, pango, gd, libwebp
+, bison, libtool, fontconfig, pango, gd, libwebp
 }:
 
-assert libpng != null && libjpeg != null && expat != null;
-
 stdenv.mkDerivation rec {
   name = "graphviz-2.0";
 
@@ -14,7 +12,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    xlibsWrapper libpng libjpeg expat libXaw yacc
+    xlibsWrapper libpng libjpeg expat libXaw bison
     libtool fontconfig pango gd libwebp
   ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/pijul/default.nix b/nixpkgs/pkgs/applications/version-management/pijul/default.nix
index eaad772f7349..776a794d649d 100644
--- a/nixpkgs/pkgs/applications/version-management/pijul/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/pijul/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pijul";
-  version = "1.0.0-alpha.38";
+  version = "1.0.0-alpha.46";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "0f14jkr1yswwyqz0l47b0287vpyz0g1qmksr3hkskhbmwlkf1q2b";
+    sha256 = "0x095g26qdch1m3izkn8ynwk1xg1qyz9ia8di23j61k7z2rqk0j5";
   };
 
-  cargoSha256 = "08p2dq48d1islk02xz1j39402fqxfh4isf8qi219aivl0yciwjn3";
+  cargoSha256 = "0cw1y4vmhn70a94512mppk0kfh9xdfm0v4rp3zm00y06jzq1a1fp";
 
   cargoBuildFlags = lib.optional gitImportSupport "--features=git";
 
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch b/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
index 98213c781a1b..c88645b85a28 100644
--- a/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
+++ b/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
@@ -44,7 +44,7 @@
              continue
 -        ui.write('<tag revision="%d" node="%s" name="%s"/>\n'
 +        ui.write(b'<tag revision="%d" node="%s" name="%s"/>\n'
-                  % (r, _x(node.hex(n)), _x(t)))
+                  % (r, _x(node.hex(n)), _u(t)))
  
  def _branches(ui, repo):
 @@ -104,136 +107,148 @@ def _branches(ui, repo):
@@ -59,7 +59,7 @@
          if lookup(r, n) in branchheads(t):
 -            ui.write('<branch revision="%d" node="%s" name="%s"/>\n'
 +            ui.write(b'<branch revision="%d" node="%s" name="%s"/>\n'
-                      % (r, _x(node.hex(n)), _x(t)))
+                      % (r, _x(node.hex(n)), _u(t)))
  
  def _manifest(ui, repo, path, rev):
      ctx = _changectx(repo, rev)
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/Gemfile b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
index beff147c374a..57a1f0736377 100644
--- a/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
+++ b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
@@ -1,28 +1,34 @@
 source 'https://rubygems.org'
 
-ruby '>= 2.3.0', '< 2.7.0' if Bundler::VERSION >= '1.12.0'
-gem "bundler", ">= 1.5.0"
+ruby '>= 2.4.0', '< 2.8.0'
+gem 'bundler', '>= 1.12.0'
 
-gem 'rails', '5.2.4.2'
+gem 'rails', '5.2.5'
 gem 'sprockets', '~> 3.7.2' if RUBY_VERSION < '2.5'
-gem "rouge", "~> 3.12.0"
-gem "request_store", "~> 1.4.1"
+gem 'rouge', '~> 3.26.0'
+gem 'request_store', '~> 1.5.0'
 gem "mini_mime", "~> 1.0.1"
 gem "actionpack-xml_parser"
-gem "roadie-rails", (RUBY_VERSION < "2.5" ? "~> 1.3.0" : "~> 2.1.0")
-gem "mimemagic"
+gem 'roadie-rails', (RUBY_VERSION < '2.5' ? '~> 1.3.0' : '~> 2.2.0')
+gem 'marcel'
 gem "mail", "~> 2.7.1"
-gem "csv", "~> 3.1.1"
-gem "nokogiri", "~> 1.10.0"
-gem "i18n", "~> 1.6.0"
+gem 'csv', (RUBY_VERSION < '2.5' ? ['>= 3.1.1', '<= 3.1.5'] : '~> 3.1.1')
+gem 'nokogiri', (RUBY_VERSION < '2.5' ? '~> 1.10.0' : '~> 1.11.1')
+gem 'i18n', '~> 1.8.2'
 gem "rbpdf", "~> 1.20.0"
+gem 'addressable'
+gem 'rubyzip', '~> 2.3.0'
 
 # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
 gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
 
+# TOTP-based 2-factor authentication
+gem 'rotp'
+gem 'rqrcode'
+
 # Optional gem for LDAP authentication
 group :ldap do
-  gem "net-ldap", "~> 0.16.0"
+  gem 'net-ldap', '~> 0.17.0'
 end
 
 # Optional gem for OpenID authentication
@@ -33,17 +39,17 @@ end
 
 # Optional gem for exporting the gantt to a PNG file
 group :minimagick do
-  gem "mini_magick", "~> 4.9.5"
+  gem 'mini_magick', '~> 4.11.0'
 end
 
 # Optional Markdown support, not for JRuby
 group :markdown do
-  gem "redcarpet", "~> 3.5.0"
+  gem 'redcarpet', '~> 3.5.1'
 end
 
 # Include database gems for the database adapters NixOS supports
 gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw]
-gem "pg", "~> 1.1.4", :platforms => [:mri, :mingw, :x64_mingw]
+gem "pg", "~> 1.2.2", :platforms => [:mri, :mingw, :x64_mingw]
 
 group :development do
   gem "yard"
@@ -52,16 +58,17 @@ end
 group :test do
   gem "rails-dom-testing"
   gem 'mocha', '>= 1.4.0'
-  gem "simplecov", "~> 0.17.0", :require => false
+  gem 'simplecov', '~> 0.18.5', :require => false
   gem "ffi", platforms: [:mingw, :x64_mingw, :mswin]
   # For running system tests
-  gem 'puma', '~> 3.7'
-  gem "capybara", (RUBY_VERSION < "2.4" ? "~> 3.15.1" : "~> 3.25.0")
+  gem 'puma'
+  gem 'capybara', '~> 3.31.0'
   gem "selenium-webdriver"
+  gem 'webdrivers', '~> 4.4', require: false
   # RuboCop
-  gem 'rubocop', '~> 0.76.0'
-  gem 'rubocop-performance', '~> 1.5.0'
-  gem 'rubocop-rails', '~> 2.3.0'
+  gem 'rubocop', '~> 1.12.0'
+  gem 'rubocop-performance', '~> 1.10.1'
+  gem 'rubocop-rails', '~> 2.9.0'
 end
 
 local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
index 60aed5e17922..d3afc9de341a 100644
--- a/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
@@ -1,19 +1,19 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    actioncable (5.2.4.2)
-      actionpack (= 5.2.4.2)
+    actioncable (5.2.5)
+      actionpack (= 5.2.5)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailer (5.2.4.2)
-      actionpack (= 5.2.4.2)
-      actionview (= 5.2.4.2)
-      activejob (= 5.2.4.2)
+    actionmailer (5.2.5)
+      actionpack (= 5.2.5)
+      actionview (= 5.2.5)
+      activejob (= 5.2.5)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (5.2.4.2)
-      actionview (= 5.2.4.2)
-      activesupport (= 5.2.4.2)
+    actionpack (5.2.5)
+      actionview (= 5.2.5)
+      activesupport (= 5.2.5)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
@@ -21,26 +21,26 @@ GEM
     actionpack-xml_parser (2.0.1)
       actionpack (>= 5.0)
       railties (>= 5.0)
-    actionview (5.2.4.2)
-      activesupport (= 5.2.4.2)
+    actionview (5.2.5)
+      activesupport (= 5.2.5)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.0.3)
-    activejob (5.2.4.2)
-      activesupport (= 5.2.4.2)
+    activejob (5.2.5)
+      activesupport (= 5.2.5)
       globalid (>= 0.3.6)
-    activemodel (5.2.4.2)
-      activesupport (= 5.2.4.2)
-    activerecord (5.2.4.2)
-      activemodel (= 5.2.4.2)
-      activesupport (= 5.2.4.2)
+    activemodel (5.2.5)
+      activesupport (= 5.2.5)
+    activerecord (5.2.5)
+      activemodel (= 5.2.5)
+      activesupport (= 5.2.5)
       arel (>= 9.0)
-    activestorage (5.2.4.2)
-      actionpack (= 5.2.4.2)
-      activerecord (= 5.2.4.2)
-      marcel (~> 0.3.1)
-    activesupport (5.2.4.2)
+    activestorage (5.2.5)
+      actionpack (= 5.2.5)
+      activerecord (= 5.2.5)
+      marcel (~> 1.0.0)
+    activesupport (5.2.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -48,9 +48,9 @@ GEM
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
     arel (9.0.0)
-    ast (2.4.0)
+    ast (2.4.2)
     builder (3.2.4)
-    capybara (3.25.0)
+    capybara (3.31.0)
       addressable
       mini_mime (>= 0.1.3)
       nokogiri (~> 1.8)
@@ -59,169 +59,189 @@ GEM
       regexp_parser (~> 1.5)
       xpath (~> 3.2)
     childprocess (3.0.0)
-    concurrent-ruby (1.1.6)
+    chunky_png (1.4.0)
+    concurrent-ruby (1.1.8)
     crass (1.0.6)
-    css_parser (1.7.1)
+    css_parser (1.9.0)
       addressable
-    csv (3.1.2)
-    docile (1.3.2)
-    erubi (1.9.0)
+    csv (3.1.9)
+    docile (1.3.5)
+    erubi (1.10.0)
     globalid (0.4.2)
       activesupport (>= 4.2.0)
     htmlentities (4.3.4)
-    i18n (1.6.0)
+    i18n (1.8.9)
       concurrent-ruby (~> 1.0)
-    jaro_winkler (1.5.4)
-    json (2.3.0)
-    loofah (2.5.0)
+    loofah (2.9.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mail (2.7.1)
       mini_mime (>= 0.1.1)
-    marcel (0.3.3)
-      mimemagic (~> 0.3.2)
+    marcel (1.0.0)
     method_source (1.0.0)
-    mimemagic (0.3.4)
-    mini_magick (4.9.5)
-    mini_mime (1.0.2)
-    mini_portile2 (2.4.0)
-    minitest (5.14.0)
-    mocha (1.11.2)
+    mini_magick (4.11.0)
+    mini_mime (1.0.3)
+    mini_portile2 (2.5.0)
+    minitest (5.14.4)
+    mocha (1.12.0)
     mysql2 (0.5.3)
-    net-ldap (0.16.2)
-    nio4r (2.5.2)
-    nokogiri (1.10.9)
-      mini_portile2 (~> 2.4.0)
-    parallel (1.19.1)
-    parser (2.7.1.0)
-      ast (~> 2.4.0)
-    pg (1.1.4)
-    public_suffix (4.0.4)
-    puma (3.12.4)
-    rack (2.2.2)
+    net-ldap (0.17.0)
+    nio4r (2.5.7)
+    nokogiri (1.11.2)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    parallel (1.20.1)
+    parser (3.0.0.0)
+      ast (~> 2.4.1)
+    pg (1.2.3)
+    public_suffix (4.0.6)
+    puma (5.2.2)
+      nio4r (~> 2.0)
+    racc (1.5.2)
+    rack (2.2.3)
     rack-openid (1.4.2)
       rack (>= 1.1.0)
       ruby-openid (>= 2.1.8)
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
-    rails (5.2.4.2)
-      actioncable (= 5.2.4.2)
-      actionmailer (= 5.2.4.2)
-      actionpack (= 5.2.4.2)
-      actionview (= 5.2.4.2)
-      activejob (= 5.2.4.2)
-      activemodel (= 5.2.4.2)
-      activerecord (= 5.2.4.2)
-      activestorage (= 5.2.4.2)
-      activesupport (= 5.2.4.2)
+    rails (5.2.5)
+      actioncable (= 5.2.5)
+      actionmailer (= 5.2.5)
+      actionpack (= 5.2.5)
+      actionview (= 5.2.5)
+      activejob (= 5.2.5)
+      activemodel (= 5.2.5)
+      activerecord (= 5.2.5)
+      activestorage (= 5.2.5)
+      activesupport (= 5.2.5)
       bundler (>= 1.3.0)
-      railties (= 5.2.4.2)
+      railties (= 5.2.5)
       sprockets-rails (>= 2.0.0)
     rails-dom-testing (2.0.3)
       activesupport (>= 4.2.0)
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.3.0)
       loofah (~> 2.3)
-    railties (5.2.4.2)
-      actionpack (= 5.2.4.2)
-      activesupport (= 5.2.4.2)
+    railties (5.2.5)
+      actionpack (= 5.2.5)
+      activesupport (= 5.2.5)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.19.0, < 2.0)
     rainbow (3.0.0)
-    rake (13.0.1)
+    rake (13.0.3)
     rbpdf (1.20.1)
       htmlentities
       rbpdf-font (~> 1.19.0)
     rbpdf-font (1.19.1)
-    redcarpet (3.5.0)
-    regexp_parser (1.7.0)
-    request_store (1.4.1)
+    redcarpet (3.5.1)
+    regexp_parser (1.8.2)
+    request_store (1.5.0)
       rack (>= 1.4)
+    rexml (3.2.4)
     roadie (4.0.0)
       css_parser (~> 1.4)
       nokogiri (~> 1.8)
-    roadie-rails (2.1.1)
-      railties (>= 5.1, < 6.1)
+    roadie-rails (2.2.0)
+      railties (>= 5.1, < 6.2)
       roadie (>= 3.1, < 5.0)
-    rouge (3.12.0)
-    rubocop (0.76.0)
-      jaro_winkler (~> 1.5.1)
+    rotp (6.2.0)
+    rouge (3.26.0)
+    rqrcode (1.2.0)
+      chunky_png (~> 1.0)
+      rqrcode_core (~> 0.2)
+    rqrcode_core (0.2.0)
+    rubocop (1.12.0)
       parallel (~> 1.10)
-      parser (>= 2.6)
+      parser (>= 3.0.0.0)
       rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 1.8, < 3.0)
+      rexml
+      rubocop-ast (>= 1.2.0, < 2.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 1.7)
-    rubocop-performance (1.5.2)
-      rubocop (>= 0.71.0)
-    rubocop-rails (2.3.2)
+      unicode-display_width (>= 1.4.0, < 3.0)
+    rubocop-ast (1.4.1)
+      parser (>= 2.7.1.5)
+    rubocop-performance (1.10.2)
+      rubocop (>= 0.90.0, < 2.0)
+      rubocop-ast (>= 0.4.0)
+    rubocop-rails (2.9.1)
+      activesupport (>= 4.2.0)
       rack (>= 1.1)
-      rubocop (>= 0.72.0)
+      rubocop (>= 0.90.0, < 2.0)
     ruby-openid (2.9.2)
-    ruby-progressbar (1.10.1)
+    ruby-progressbar (1.11.0)
     rubyzip (2.3.0)
     selenium-webdriver (3.142.7)
       childprocess (>= 0.5, < 4.0)
       rubyzip (>= 1.2.2)
-    simplecov (0.17.1)
+    simplecov (0.18.5)
       docile (~> 1.1)
-      json (>= 1.8, < 3)
-      simplecov-html (~> 0.10.0)
-    simplecov-html (0.10.2)
-    sprockets (4.0.0)
+      simplecov-html (~> 0.11)
+    simplecov-html (0.12.3)
+    sprockets (4.0.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
-    sprockets-rails (3.2.1)
+    sprockets-rails (3.2.2)
       actionpack (>= 4.0)
       activesupport (>= 4.0)
       sprockets (>= 3.0.0)
-    thor (1.0.1)
+    thor (1.1.0)
     thread_safe (0.3.6)
-    tzinfo (1.2.7)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
-    unicode-display_width (1.6.1)
-    websocket-driver (0.7.1)
+    unicode-display_width (2.0.0)
+    webdrivers (4.6.0)
+      nokogiri (~> 1.6)
+      rubyzip (>= 1.3.0)
+      selenium-webdriver (>= 3.0, < 4.0)
+    websocket-driver (0.7.3)
       websocket-extensions (>= 0.1.0)
-    websocket-extensions (0.1.4)
+    websocket-extensions (0.1.5)
     xpath (3.2.0)
       nokogiri (~> 1.8)
-    yard (0.9.24)
+    yard (0.9.26)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
   actionpack-xml_parser
-  bundler (>= 1.5.0)
-  capybara (~> 3.25.0)
+  addressable
+  bundler (>= 1.12.0)
+  capybara (~> 3.31.0)
   csv (~> 3.1.1)
   ffi
-  i18n (~> 1.6.0)
+  i18n (~> 1.8.2)
   mail (~> 2.7.1)
-  mimemagic
-  mini_magick (~> 4.9.5)
+  marcel
+  mini_magick (~> 4.11.0)
   mini_mime (~> 1.0.1)
   mocha (>= 1.4.0)
   mysql2 (~> 0.5.0)
-  net-ldap (~> 0.16.0)
-  nokogiri (~> 1.10.0)
-  pg (~> 1.1.4)
-  puma (~> 3.7)
+  net-ldap (~> 0.17.0)
+  nokogiri (~> 1.11.1)
+  pg (~> 1.2.2)
+  puma
   rack-openid
-  rails (= 5.2.4.2)
+  rails (= 5.2.5)
   rails-dom-testing
   rbpdf (~> 1.20.0)
-  redcarpet (~> 3.5.0)
-  request_store (~> 1.4.1)
-  roadie-rails (~> 2.1.0)
-  rouge (~> 3.12.0)
-  rubocop (~> 0.76.0)
-  rubocop-performance (~> 1.5.0)
-  rubocop-rails (~> 2.3.0)
+  redcarpet (~> 3.5.1)
+  request_store (~> 1.5.0)
+  roadie-rails (~> 2.2.0)
+  rotp
+  rouge (~> 3.26.0)
+  rqrcode
+  rubocop (~> 1.12.0)
+  rubocop-performance (~> 1.10.1)
+  rubocop-rails (~> 2.9.0)
   ruby-openid (~> 2.9.2)
+  rubyzip (~> 2.3.0)
   selenium-webdriver
-  simplecov (~> 0.17.0)
+  simplecov (~> 0.18.5)
   tzinfo-data
+  webdrivers (~> 4.4)
   yard
 
 RUBY VERSION
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/default.nix b/nixpkgs/pkgs/applications/version-management/redmine/default.nix
index ab5b4ffded58..e0559a9c48f9 100644
--- a/nixpkgs/pkgs/applications/version-management/redmine/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/redmine/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, bundlerEnv, ruby, makeWrapper }:
 
 let
-  version = "4.1.1";
+  version = "4.2.0";
   rubyEnv = bundlerEnv {
     name = "redmine-env-${version}";
 
@@ -16,7 +16,7 @@ in
 
     src = fetchurl {
       url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
-      sha256 = "1nndy5hz8zvfglxf1f3bsb1pkrfwinfxzkdan1vjs3rkckkszyh5";
+      sha256 = "1r87gy73dclnvcz55vziv6kbgyck0v8jlzx1wwkak8mgh32n8n19";
     };
 
     nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix b/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
index a8fd6eba6f0c..b545c9d6a3e2 100644
--- a/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
+++ b/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q4by8d41n972j8cdcddrwsh7qphcki50xvgm1syrawyck6w1f5v";
+      sha256 = "16g623zz4nnwj236xms4n85jbc2b1imddqsx3gd4x4b7xqlwlw9p";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kg2nayy8wmxhfp52217h80yqr0mcg793xw3cjlfg9lkvdh0nb5z";
+      sha256 = "1ifmlwlm4bs6gm3y4c701wkhyf4ym4kia44npz9fbc92ariawn2z";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w1l9i6q9xns4yl41l582pyc5i1xi40yyyq802drm58gwylv3wax";
+      sha256 = "1m9wdcnkls8cs31gfic5hffnrz0l1iyk0dldwx2q2z58qhh3sw0m";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   actionpack-xml_parser = {
     dependencies = ["actionpack" "railties"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fp3my6216lb9gp800s46y0404jwfl6xb3j9rvx4zf087497q8lp";
+      sha256 = "1xlcfcbmwlmcp6vi9ay5xw9lqnj70bl1gn19hafygv9w65sw0n2i";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qsvb89rwqrp779mvpn67qbzidg2q6d1fa8kwybvpc93nzb9zpvi";
+      sha256 = "00k5fl4bx9qmrkwn8mdfdh8h2did0bnr3nc3g0fdyvm7ql9981jc";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jcfdv00kmifj86d0z347nw55q1f8vwzr1aa9jrfnwz47ndi22di";
+      sha256 = "1bb600bsxd0gf4vwqq2qiklg7wd37b0as6ll3k5hjy9v6izj006b";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport" "arel"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yaqrh23c8krrjw6rvxv7pvnkpp46nk5aq9z2daby640si4xpmp5";
+      sha256 = "03zijqm7xdmmylzp68hadvq5rps67lsq10hnq6kpmhq496pp7wlj";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   activestorage = {
     dependencies = ["actionpack" "activerecord" "marcel"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d51zp17c9k4brivm8y46rszcz07s5rb75gmkm0dpzg3rz3v38s9";
+      sha256 = "1706qircxl9agrq5423zv0i9p7gvcxcligw8vvclk049hks87gqd";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y1397g5xxinjyxjsdmp8c92yn0y3bd2hl4wbmmrpd08bggy6flc";
+      sha256 = "1bizrvn05d59l1qzwkhqvwmzicamq4p66z2ziap5ks9y6hqgqmzj";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -135,10 +135,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.4.2";
   };
   builder = {
     groups = ["default"];
@@ -156,10 +156,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bq1y3gy98rqgw8z69b42isc2klb75fvlwvpi36vycf1yk0sfmmx";
+      sha256 = "0fhgnw6xgnphaka50b995mcmc2pjifmlr8ypz6dw2a6jkz3qqlcl";
       type = "gem";
     };
-    version = "3.25.0";
+    version = "3.31.0";
   };
   childprocess = {
     groups = ["default" "test"];
@@ -171,15 +171,25 @@
     };
     version = "3.0.0";
   };
+  chunky_png = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
   concurrent-ruby = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.8";
   };
   crass = {
     groups = ["default"];
@@ -197,40 +207,40 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw";
+      sha256 = "0xs4ind9xd099rb52b73pch8ha143dl8bhivqsbba4wrvxpbx751";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.9.0";
   };
   csv = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00szzw96bqz59r0kaab4p75qb0wq54iahmq37wpdg96bxc8y80f5";
+      sha256 = "07mgyalwdxaxnff86j5p6n5szmhqz7nrlkb40826mzggrmva8v1m";
       type = "gem";
     };
-    version = "3.1.2";
+    version = "3.1.9";
   };
   docile = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+      sha256 = "1bpdrsdqwv80qqc3f4xxzpii13lx9mlx3zay4bnmmscrx8c0p63z";
       type = "gem";
     };
-    version = "1.3.2";
+    version = "1.3.5";
   };
   erubi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+      sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.10.0";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -259,30 +269,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
-      type = "gem";
-    };
-    version = "1.6.0";
-  };
-  jaro_winkler = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
-      type = "gem";
-    };
-    version = "1.5.4";
-  };
-  json = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "1.8.9";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -290,10 +280,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040";
+      sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.9.0";
   };
   mail = {
     dependencies = ["mini_mime"];
@@ -307,15 +297,14 @@
     version = "2.7.1";
   };
   marcel = {
-    dependencies = ["mimemagic"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+      sha256 = "1vhp6lifwvqs2b0a276lj61n86c1l7d1xiswjj2w23f54gl51mpk";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "1.0.0";
   };
   method_source = {
     groups = ["default"];
@@ -327,65 +316,55 @@
     };
     version = "1.0.0";
   };
-  mimemagic = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0frrfvz52fh4v1sb2xr9pyxhrxm5f7jppqxagpmd7c5ific66l9p";
-      type = "gem";
-    };
-    version = "0.3.4";
-  };
   mini_magick = {
     groups = ["minimagick"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qy09qrd5bwh8mkbj514n5vcw9ni73218h9s3zmvbpmdwrnzi8j4";
+      sha256 = "1aj604x11d9pksbljh0l38f70b558rhdgji1s9i763hiagvvx2hs";
       type = "gem";
     };
-    version = "4.9.5";
+    version = "4.11.0";
   };
   mini_mime = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      sha256 = "1np6srnyagghhh2w4nyv09sz47v0i6ri3q6blicj94vgxqp12c94";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.3";
   };
   mini_portile2 = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitest = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.4";
   };
   mocha = {
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hxmkm8qxd04vwj8mqnpyrf2dwy7g1k9zipdfhl4y71cw7ijm9n4";
+      sha256 = "05yw6rwgjppq116jgqfg4pv4bql3ci4r2fmmg0m2c3sqib1bq41a";
       type = "gem";
     };
-    version = "1.11.2";
+    version = "1.12.0";
   };
   mysql2 = {
     groups = ["default"];
@@ -410,41 +389,41 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg";
+      sha256 = "1j19yxrz7h3hj7kiiln13c7bz7hvpdqr31bwi88dj64zifr7896n";
       type = "gem";
     };
-    version = "0.16.2";
+    version = "0.17.0";
   };
   nio4r = {
-    groups = ["default"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c";
+      sha256 = "00fwz0qq7agd2xkdz02i8li236qvwhma3p0jdn5bdvc21b7ydzd5";
       type = "gem";
     };
-    version = "2.5.2";
+    version = "2.5.7";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
       type = "gem";
     };
-    version = "1.10.9";
+    version = "1.11.2";
   };
   parallel = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2";
+      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
       type = "gem";
     };
-    version = "1.19.1";
+    version = "1.20.1";
   };
   parser = {
     dependencies = ["ast"];
@@ -452,10 +431,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07awrcwm2xibglrh7qwpj24vwzn9p64m7bmfr9xbrlffaznr0ii7";
+      sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
       type = "gem";
     };
-    version = "2.7.1.0";
+    version = "3.0.0.0";
   };
   pg = {
     groups = ["default"];
@@ -470,40 +449,51 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
+      sha256 = "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj";
       type = "gem";
     };
-    version = "1.1.4";
+    version = "1.2.3";
   };
   public_suffix = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l1kqw75asziwmzrig8rywxswxz8l91sc3pvns02ffsqac1a3wiz";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
       type = "gem";
     };
-    version = "4.0.4";
+    version = "4.0.6";
   };
   puma = {
+    dependencies = ["nio4r"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mg8yh478mh55pg7pv8z7xyvk35ra98hy61z9lwkfr8fzyyz57zs";
+      sha256 = "0wiprd0v4mjqv5p1vqaidr9ci2xm08lcxdz1k50mb1b6nrw6r74k";
+      type = "gem";
+    };
+    version = "5.2.2";
+  };
+  racc = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
       type = "gem";
     };
-    version = "3.12.4";
+    version = "1.5.2";
   };
   rack = {
     groups = ["default" "openid" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp";
+      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.2.3";
   };
   rack-openid = {
     dependencies = ["rack" "ruby-openid"];
@@ -533,10 +523,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x8k6n4yziwf386prhvr9d9plc9fwv0j8spw2bnmkwhf54v2ias4";
+      sha256 = "1p0sa36sngmfkmykcv5qhpr7rzsrc42cd9flhnxjs3r5b0jsl52c";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "nokogiri"];
@@ -566,10 +556,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p2rnd1xdqlk19k3m5gd058yzvwjj25k5hwn4km683b5dhylpd16";
+      sha256 = "072spzdpc8bv35nflr43i67njlriavqkrz6cgyd42adz6bqyval9";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.5";
   };
   rainbow = {
     groups = ["default" "test"];
@@ -586,10 +576,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
       type = "gem";
     };
-    version = "13.0.1";
+    version = "13.0.3";
   };
   rbpdf = {
     dependencies = ["htmlentities" "rbpdf-font"];
@@ -617,20 +607,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k";
+      sha256 = "0bvk8yyns5s1ls437z719y5sdv9fr8kfs8dmr6g8s761dv5n8zvi";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.5.1";
   };
   regexp_parser = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l2vcj9qffj5b3v9jsyi4k994bdj3rjz7l9ql8x04lndqxfrrrv2";
+      sha256 = "0x4s82lgf0l71y3xc9gp4qxkrgx1kv8f6avdqd68l46ijbyvicdm";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.8.2";
   };
   request_store = {
     dependencies = ["rack"];
@@ -638,10 +628,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1963330z03fk382fi8y231ygcbnh86m91dqlp5rh1mwy9ihzzl6d";
+      sha256 = "0cx74kispmnw3ljwb239j65a2j14n8jlsygy372hrsa8mxc71hxi";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.5.0";
+  };
+  rexml = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      type = "gem";
+    };
+    version = "3.2.4";
   };
   roadie = {
     dependencies = ["css_parser" "nokogiri"];
@@ -660,53 +660,95 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fmn7kkbpgipjsx65rw7hqa3bwinlqykx5qf1x28ya9ag8v2q0ph";
+      sha256 = "0jjcqnp37z65dksykzwjiz149kx65nw70lyx8dkw1fm5x7yraqvh";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  rotp = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11q7rkjx40yi6lpylgl2jkpy162mjw7mswrcgcax86vgpbpjx6i3";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "6.2.0";
   };
   rouge = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08fpnxbhqv5sqpnfjasl1ysxafssyq4q1yhcqamqqzmb9czj1czw";
+      sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
+      type = "gem";
+    };
+    version = "3.26.0";
+  };
+  rqrcode = {
+    dependencies = ["chunky_png" "rqrcode_core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f1cv9a9sjqc898qm3h7zmkhwglrjw5blsskbg3gsaws01d4bc47";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  rqrcode_core = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00kqasqja8zyzqvlgiwd9r0wndqk01qk5j68a8lhlz4ayrd4qy0y";
       type = "gem";
     };
-    version = "3.12.0";
+    version = "0.2.0";
   };
   rubocop = {
-    dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"];
+    dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07x51ixlx76y194xsszh5lbkaqakz44ykbrjxg3qaggbs18790q0";
+      sha256 = "1i3y0h6awywx4rdmjdan908jmnyk589pndbjypxkfbkqvjx514fw";
+      type = "gem";
+    };
+    version = "1.12.0";
+  };
+  rubocop-ast = {
+    dependencies = ["parser"];
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
       type = "gem";
     };
-    version = "0.76.0";
+    version = "1.4.1";
   };
   rubocop-performance = {
-    dependencies = ["rubocop"];
+    dependencies = ["rubocop" "rubocop-ast"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fk9nd3b24avgsqp726hy2pl1iyfjrh6jni97wkky6kqy0lq6zq2";
+      sha256 = "07c3kymvsid9aajwmmwr3n6apxgyjcbzbl2n6r5lpzkyz28jqn15";
       type = "gem";
     };
-    version = "1.5.2";
+    version = "1.10.2";
   };
   rubocop-rails = {
-    dependencies = ["rack" "rubocop"];
+    dependencies = ["activesupport" "rack" "rubocop"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q7ffsq1cjm4m949nh935kjzv4zf1pacnrl00siwh8flhcn3mmjf";
+      sha256 = "0h656la1g644g54g3gidz45p6v8i1156nw6bi66cfx7078y1339d";
       type = "gem";
     };
-    version = "2.3.2";
+    version = "2.9.1";
   };
   ruby-openid = {
     groups = ["openid"];
@@ -723,10 +765,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
       type = "gem";
     };
-    version = "1.10.1";
+    version = "1.11.0";
   };
   rubyzip = {
     groups = ["default" "test"];
@@ -750,25 +792,25 @@
     version = "3.142.7";
   };
   simplecov = {
-    dependencies = ["docile" "json" "simplecov-html"];
+    dependencies = ["docile" "simplecov-html"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1135k46nik05sdab30yxb8264lqiz01c8v000g16cl9pjc4mxrdw";
+      sha256 = "0ycx5q699ycbjhp28sjbkrd62vwxlrb7fh4v2m7sjsp2qhi6cf6r";
       type = "gem";
     };
-    version = "0.17.1";
+    version = "0.18.5";
   };
   simplecov-html = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
+      sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb";
       type = "gem";
     };
-    version = "0.10.2";
+    version = "0.12.3";
   };
   sprockets = {
     dependencies = ["concurrent-ruby" "rack"];
@@ -776,10 +818,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jm37zpvvm1arxjwrd6am0wrdbfhrhc5y0l4p2i3p11z04bsvgap";
+      sha256 = "0ikgwbl6jv3frfiy3xhg5yxw9d0064rgzghar1rg391xmrc4gm38";
       type = "gem";
     };
-    version = "4.0.0";
+    version = "4.0.2";
   };
   sprockets-rails = {
     dependencies = ["actionpack" "activesupport" "sprockets"];
@@ -787,20 +829,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+      sha256 = "0mwmz36265646xqfyczgr1mhkm1hfxgxxvgdgr4xfcbf2g72p1k2";
       type = "gem";
     };
-    version = "3.2.1";
+    version = "3.2.2";
   };
   thor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   thread_safe = {
     groups = ["default" "test"];
@@ -818,20 +860,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.7";
+    version = "1.2.9";
   };
   unicode-display_width = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x";
+      sha256 = "1bilbnc8j6jkb59lrf177i3p1pdyxll0n8400hzqr35vl3r3kv2m";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  webdrivers = {
+    dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hi6pgkfwgz1bzfclyrr449xy9y2f2bcrnnnlb5ghvvrqkgn0dry";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "4.6.0";
   };
   websocket-driver = {
     dependencies = ["websocket-extensions"];
@@ -839,20 +892,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2";
+      sha256 = "1i3rs4kcj0jba8idxla3s6xd1xfln3k8b4cb1dik2lda3ifnp3dh";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.7.3";
   };
   websocket-extensions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00i624ng1nvkz1yckj3f8yxxp6hi7xaqf40qh9q3hj2n1l9i8g6m";
+      sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw";
       type = "gem";
     };
-    version = "0.1.4";
+    version = "0.1.5";
   };
   xpath = {
     dependencies = ["nokogiri"];
@@ -870,9 +923,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g0bw2qcl48fxawrdf68l229508z53mrqisavji2lkxzv4w4j2pp";
+      sha256 = "0qzr5j1a1cafv81ib3i51qyl8jnmwdxlqi3kbiraldzpbjh4ln9h";
       type = "gem";
     };
-    version = "0.9.24";
+    version = "0.9.26";
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
index 3e89fe0a4dc2..7fb26476d8ae 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
@@ -1,5 +1,4 @@
 { lib, fetchgit, buildPythonPackage
-, python
 , buildGoModule
 , srht, redis, celery, pyyaml, markdown }:
 
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
index ea3f58e38906..5ce140273ebd 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
@@ -1,5 +1,4 @@
 { lib, fetchgit, buildPythonPackage
-, python
 , srht, pyyaml, PyGithub }:
 
 buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
index 8966cbe08001..a25a14f610c1 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
@@ -1,5 +1,4 @@
 { lib, fetchgit, buildPythonPackage
-, python
 , buildGoModule
 , srht, minio, pygit2, scmsrht }:
 
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
index fae311831f2f..c8fa64c8b4d9 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
@@ -1,5 +1,4 @@
 { lib, fetchhg, buildPythonPackage
-, python
 , srht, hglib, scmsrht, unidiff }:
 
 buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix
index 99b5663a9b89..8b6d92019976 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix
@@ -1,5 +1,4 @@
 { lib, fetchgit, buildPythonPackage
-, python
 , srht }:
 
 buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
index 25d22dede359..98191f564e96 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
@@ -1,5 +1,4 @@
 { lib, fetchgit, buildPythonPackage
-, python
 , srht, asyncpg, aiosmtpd, pygit2, emailthreads }:
 
 buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
index 24a31a3ef17f..e3751a6d5c8b 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
@@ -1,5 +1,4 @@
 { lib, fetchgit, buildPythonPackage
-, python
 , srht, pygit2 }:
 
 buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
index d07bd29357ac..b5b15520d253 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
@@ -1,5 +1,4 @@
 { lib, fetchgit, buildPythonPackage
-, python
 , buildGoModule
 , pgpy, srht, redis, bcrypt, qrcode, stripe, zxcvbn, alembic, pystache
 , sshpubkeys, weasyprint }:
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
index 12747f981032..dab518e70aee 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
@@ -1,5 +1,4 @@
 { lib, fetchgit, buildPythonPackage
-, python
 , srht, pyyaml }:
 
 buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
index 85ae3b2cf146..5e75efb08864 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
@@ -1,7 +1,6 @@
 { lib, fetchgit, buildPythonPackage
-, python
 , srht, redis, alembic, pystache
-, pytest, factory_boy, writeText }:
+, pytest, factory_boy }:
 
 buildPythonPackage rec {
   pname = "todosrht";
diff --git a/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix b/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
index 7b01ab21f495..1ca04a1634a2 100644
--- a/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
@@ -4,13 +4,13 @@ let
   common = opts: callPackage (import ./common.nix opts);
 in {
   sublime-merge = common {
-    buildVersion = "2039";
-    sha256 = "0l82408jli7g6nc267bnnnz0zz015lvpwva5fxj53mval32ii4i8";
+    buildVersion = "2047";
+    sha256 = "03a0whifhx9py25l96xpqhb4p6hi9qmnrk2bxz6gh02sinsp3mia";
   } {};
 
   sublime-merge-dev = common {
-    buildVersion = "2037";
-    sha256 = "1s0g18l2msmnn6w7f126andh2dygm9l94fxxhsi64v74mkawqg82";
+    buildVersion = "2046";
+    sha256 = "04laygxr4vm6mawlfmdn2vj0dwj1swab39znsgb1d6rhysz62kjd";
     dev = true;
   } {};
 }
diff --git a/nixpkgs/pkgs/applications/version-management/subversion/default.nix b/nixpkgs/pkgs/applications/version-management/subversion/default.nix
index 5540e53c84ed..d6cad454026c 100644
--- a/nixpkgs/pkgs/applications/version-management/subversion/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/subversion/default.nix
@@ -111,11 +111,6 @@ let
   });
 
 in {
-  subversion19 = common {
-    version = "1.9.12";
-    sha256 = "15z33gdnfiqblm5515020wfdwnp2837r3hnparava6m2fgyiafiw";
-  };
-
   subversion_1_10 = common {
     version = "1.10.6";
     sha256 = "19zc215mhpnm92mlyl5jbv57r5zqp6cavr3s2g9yglp6j4kfgj0q";
diff --git a/nixpkgs/pkgs/applications/video/alass/default.nix b/nixpkgs/pkgs/applications/video/alass/default.nix
new file mode 100644
index 000000000000..c57a224ee0aa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/alass/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, makeWrapper
+, ffmpeg
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "alass";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "kaegi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-q1IV9TtmznpR7RO75iN0p16nmTja5ADWqFj58EOPWvU=";
+  };
+
+  cargoSha256 = "sha256-6CVa/ypz37bm/3R0Gi65ovu4SIwWcgVde3Z2W1R16mk=";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/alass-cli" --prefix PATH : "${lib.makeBinPath [ ffmpeg ]}"
+  '';
+
+  meta = with lib; {
+    description = "Automatic Language-Agnostic Subtitle Synchronization";
+    homepage = "https://github.com/kaegi/alass";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ erictapen ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/avidemux/default.nix b/nixpkgs/pkgs/applications/video/avidemux/default.nix
index da3c25def3f1..9b2073bc799e 100644
--- a/nixpkgs/pkgs/applications/video/avidemux/default.nix
+++ b/nixpkgs/pkgs/applications/video/avidemux/default.nix
@@ -25,11 +25,11 @@ assert !withQT -> default != "qt5";
 
 stdenv.mkDerivation rec {
   pname = "avidemux";
-  version = "2.7.6";
+  version = "2.7.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/avidemux/avidemux/${version}/avidemux_${version}.tar.gz";
-    sha256 = "1kwkn976ppahrcr74bnv6sqx75pzl9y21m1mvr5ksi1m6lgp924s";
+    sha256 = "sha256-YopAT1If8oEnYHAK4+KqeOWBaw/z+2/QWsPnUkjZdAE=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/video/catt/default.nix b/nixpkgs/pkgs/applications/video/catt/default.nix
index d22657d651cb..e4225963cb2b 100644
--- a/nixpkgs/pkgs/applications/video/catt/default.nix
+++ b/nixpkgs/pkgs/applications/video/catt/default.nix
@@ -1,32 +1,26 @@
 { lib, python3 }:
 
-let
-  py = python3.override {
-    packageOverrides = self: super: {
-      PyChromecast = super.PyChromecast.overridePythonAttrs (oldAttrs: rec {
-        version = "6.0.0";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "05f8r3b2pdqbl76hwi5sv2xdi1r7g9lgm69x8ja5g22mn7ysmghm";
-        };
-      });
-    };
-  };
+with python3.pkgs;
 
-in with py.pkgs; buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "catt";
-  version = "0.11.0";
+  version = "0.12.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vq1wg79b7855za6v6bsfgypm0v3b4wakap4rash45mhzbgjj0kq";
+    sha256 = "fef58bf7a8ebaba98399d1077cc4615f53d0196aab2a989df369a66f7111963b";
   };
 
   propagatedBuildInputs = [
-    youtube-dl PyChromecast click ifaddr requests
+    click
+    ifaddr
+    PyChromecast
+    requests
+    youtube-dl
   ];
 
   doCheck = false; # attempts to access various URLs
+  pythonImportsCheck = [ "catt" ];
 
   meta = with lib; {
     description = "Cast All The Things allows you to send videos from many, many online sources to your Chromecast";
diff --git a/nixpkgs/pkgs/applications/video/cinelerra/default.nix b/nixpkgs/pkgs/applications/video/cinelerra/default.nix
index e0249f6d0b2f..c81811ea9379 100644
--- a/nixpkgs/pkgs/applications/video/cinelerra/default.nix
+++ b/nixpkgs/pkgs/applications/video/cinelerra/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool
 , pkg-config, faad2, faac, a52dec, alsaLib, fftw, lame, libavc1394
 , libiec61883, libraw1394, libsndfile, libvorbis, libogg, libjpeg
 , libtiff, freetype, mjpegtools, x264, gettext, openexr
@@ -7,23 +7,15 @@
 , fontconfig, intltool }:
 
 stdenv.mkDerivation {
-  name = "cinelerra-cv-2018-05-16";
+  name = "cinelerra-cv-2021-02-14";
 
   src = fetchFromGitHub {
     owner = "cinelerra-cv-team";
     repo = "cinelerra-cv";
-    rev = "d9c0dbf4393717f0a42f4b91c3e1ed5b16f955dc";
-    sha256 = "0a8kfm1v96sv6jh4568crg6nkr6n3579i9xksfj8w199s6yxzsbk";
+    rev = "7d0e8ede557d0cdf3606e0a8d97166a22f88d89e";
+    sha256 = "0n84y2wp47y89drc48cm1609gads5c6saw6c6bqcf5c5wcg1yfbj";
   };
 
-  patches = [
-    # avoid gcc10 error about narrowing
-    (fetchpatch {
-      url = "https://github.com/cinelerra-cv-team/cinelerra-cv/pull/2/commits/a1b2d9c3bd5730ec0284894f3d81892af3e77f1f.patch";
-      sha256 = "1cjyv1m174dblpa1bs5dggk24h4477zqvc5sbfc0m5rpkndx5ycp";
-    })
-  ];
-
   preConfigure = ''
     find -type f -print0 | xargs --null sed -e "s@/usr/bin/perl@${perl}/bin/perl@" -i
     ./autogen.sh
@@ -50,8 +42,8 @@ stdenv.mkDerivation {
     ];
 
   meta = with lib; {
-    description = "Video Editor";
-    homepage = "https://www.cinelerra.org/";
+    description = "Professional video editing and compositing environment (community version)";
+    homepage = "http://cinelerra-cv.wikidot.com/";
     maintainers = with maintainers; [ marcweber ];
     license = licenses.gpl2Only;
   };
diff --git a/nixpkgs/pkgs/applications/video/clipgrab/default.nix b/nixpkgs/pkgs/applications/video/clipgrab/default.nix
index 6db2450d1365..b24ff43ac671 100644
--- a/nixpkgs/pkgs/applications/video/clipgrab/default.nix
+++ b/nixpkgs/pkgs/applications/video/clipgrab/default.nix
@@ -5,10 +5,10 @@
 
 mkDerivation rec {
   pname = "clipgrab";
-  version = "3.9.5";
+  version = "3.9.6";
 
   src = fetchurl {
-    sha256 = "1p8pqa5s70basdm2zpmahc54shsxrr0fr7chvv425n5a9sqba4dh";
+    sha256 = "sha256-1rQu2Gh9PKSbC0tuQxLwFhzy280z4obpa+eXvDBzDW0=";
     # The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
     url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
   };
diff --git a/nixpkgs/pkgs/applications/video/corrscope/default.nix b/nixpkgs/pkgs/applications/video/corrscope/default.nix
new file mode 100644
index 000000000000..d691882a2c6f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/corrscope/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, mkDerivationWith
+, python3Packages
+, wrapQtAppsHook
+, ffmpeg
+, qtbase
+}:
+
+mkDerivationWith python3Packages.buildPythonApplication rec {
+  pname = "corrscope";
+  version = "0.7.0";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "0m62p3jlbx5dlp3j8wn1ka1sqpffsxbpsgv2h5cvj1n1lsgbss2s";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'attrs>=18.2.0,<19.0.0' 'attrs>=18.2.0' \
+      --replace 'numpy>=1.15,<2.0,!=1.19.4' 'numpy>=1.15,<2.0'
+  '';
+
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
+  buildInputs = [ ffmpeg qtbase ];
+
+  propagatedBuildInputs = with python3Packages; [ appdirs attrs click matplotlib numpy pyqt5 ruamel_yaml ];
+
+  dontWrapQtApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=(
+      --prefix PATH : ${ffmpeg}/bin
+      "''${qtWrapperArgs[@]}"
+    )
+  '';
+
+  preCheck = "export HOME=$TEMP";
+
+  meta = with lib; {
+    description = "Render wave files into oscilloscope views, featuring advanced correlation-based triggering algorithm";
+    longDescription = ''
+      Corrscope renders oscilloscope views of WAV files recorded from chiptune (game music from
+      retro sound chips).
+
+      Corrscope uses "waveform correlation" to track complex waves (including SNES and Sega
+      Genesis/FM synthesis) which jump around on other oscilloscope programs.
+    '';
+    homepage = "https://github.com/corrscope/corrscope";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/droidcam/default.nix b/nixpkgs/pkgs/applications/video/droidcam/default.nix
index 3e6a06db1a86..eed4c030cfab 100644
--- a/nixpkgs/pkgs/applications/video/droidcam/default.nix
+++ b/nixpkgs/pkgs/applications/video/droidcam/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "droidcam";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "aramg";
     repo = "droidcam";
     rev = "v${version}";
-    sha256 = "sha256-f7wLi4ReExkqb+SfOK0juzKbwdcqUVkklIUOIMtmnxM=";
+    sha256 = "sha256-Ny/PJu+ifs9hQRDUv1pONBb6fKJzoiNtjPOFc4veU8c=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/filebot/default.nix b/nixpkgs/pkgs/applications/video/filebot/default.nix
index 0e7cce4fee7f..a9d56cc91085 100644
--- a/nixpkgs/pkgs/applications/video/filebot/default.nix
+++ b/nixpkgs/pkgs/applications/video/filebot/default.nix
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "filebot";
-  version = "4.9.2";
+  version = "4.9.3";
 
   src = fetchurl {
     url = "https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
-    sha256 = "0hcyam8l0fzc9fnp1dpawk0s3rwhfph78w99y7zlcv5l4l4h04lz";
+    sha256 = "sha256-xgdCjo2RLp+EtUTfSiys7PURhnC00R9IOLPtz3427pA=";
   };
 
   unpackPhase = "tar xvf $src";
diff --git a/nixpkgs/pkgs/applications/video/freetube/default.nix b/nixpkgs/pkgs/applications/video/freetube/default.nix
new file mode 100644
index 000000000000..a5de2142d777
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/freetube/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, lib, fetchurl, appimageTools, makeWrapper, electron }:
+
+stdenv.mkDerivation rec {
+  pname = "freetube";
+  version = "0.12.0";
+
+  src = fetchurl {
+    url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${version}-beta/freetube_${version}_amd64.AppImage";
+    sha256 = "151fcm1swsasrwzm93fddx669q4xlfl3d58q1w58nyv7r6kh4fda";
+  };
+
+  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}/freetube.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}/bin/electron $out/bin/${pname} \
+      --add-flags $out/share/${pname}/resources/app.asar
+  '';
+
+  meta = with lib; {
+    description = "An Open Source YouTube app for privacy";
+    homepage = "https://freetubeapp.io/";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ ryneeverett ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/handbrake/default.nix b/nixpkgs/pkgs/applications/video/handbrake/default.nix
index 6317d7b1ab32..e14d902681df 100644
--- a/nixpkgs/pkgs/applications/video/handbrake/default.nix
+++ b/nixpkgs/pkgs/applications/video/handbrake/default.nix
@@ -9,7 +9,7 @@
 
 { stdenv, lib, fetchFromGitHub,
   # Main build tools
-  pkg-config, autoconf, automake, libtool, m4, lzma, python3,
+  pkg-config, autoconf, automake, libtool, m4, xz, python3,
   numactl,
   # Processing, video codecs, containers
   ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora, dav1d,
@@ -100,7 +100,7 @@ _EOF
     ffmpeg-full libogg libtheora x264 x265 libvpx dav1d
     libopus lame libvorbis a52dec speex libsamplerate
     libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz
-    libdvdread libdvdnav libdvdcss libbluray lzma
+    libdvdread libdvdnav libdvdcss libbluray xz
   ] ++ lib.optional (!stdenv.isDarwin) numactl
   ++ lib.optionals useGtk [
     glib gtk3 libappindicator-gtk3 libnotify
diff --git a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index 6dc42a47685b..e577abda95c5 100644
--- a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -1,25 +1,68 @@
-{ lib, buildPythonApplication, fetchFromGitHub, callPackage
-, mpv, python-mpv-jsonipc, jellyfin-apiclient-python
-, pillow, tkinter, pystray, jinja2, pywebview }:
+{ lib
+, buildPythonApplication
+, copyDesktopItems
+, fetchPypi
+, makeDesktopItem
+, flask
+, jellyfin-apiclient-python
+, jinja2
+, mpv
+, pillow
+, pydantic
+, pyqtwebengine
+, pystray
+, python-mpv-jsonipc
+, pywebview
+, qt5
+, tkinter
+, werkzeug
+}:
 
-let
-  shaderPack = callPackage ./shader-pack.nix {};
-in
 buildPythonApplication rec {
   pname = "jellyfin-mpv-shim";
-  version = "1.7.1";
+  version = "1.10.3";
 
-  src = fetchFromGitHub {
-    owner = "iwalton3";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0alrh5h3f8pq9mrq09jmpqa0yslxsjqwij6kwn24ggbwc10zkq75";
-    fetchSubmodules = true; # needed for display_mirror css file
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-Tl7P8SJ/ZuwIi8RxDWkhfd7LUd63xv5Ehg1UqaYHb1g=";
   };
 
-  patches = [
-    ./disable-desktop-client.patch
-    ./disable-update-check.patch
+  propagatedBuildInputs = [
+    jellyfin-apiclient-python
+    mpv
+    pillow
+    pydantic
+    python-mpv-jsonipc
+
+    # gui dependencies
+    pystray
+    tkinter
+
+    # display_mirror dependencies
+    jinja2
+    pywebview
+
+    # desktop dependencies
+    flask
+    pyqtwebengine
+    werkzeug
+  ];
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    qt5.wrapQtAppsHook
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Jellyfin Desktop";
+      exec = "jellyfin-desktop";
+      icon = "jellyfin-desktop";
+      desktopName = "jellyfin-desktop";
+      comment = "MPV-based desktop and cast client for Jellyfin";
+      genericName = "MPV-based desktop and cast client for Jellyfin";
+      categories = "Video;AudioVideo;TV;Player";
+    })
   ];
 
   # override $HOME directory:
@@ -34,31 +77,27 @@ buildPythonApplication rec {
   '';
 
   postPatch = ''
-    # link the default shader pack
-    ln -s ${shaderPack} jellyfin_mpv_shim/default_shader_pack
+    substituteInPlace jellyfin_mpv_shim/conf.py \
+      --replace "check_updates: bool = True" "check_updates: bool = False" \
+      --replace "notify_updates: bool = True" "notify_updates: bool = False"
   '';
 
-  propagatedBuildInputs = [
-    jellyfin-apiclient-python
-    mpv
-    pillow
-    python-mpv-jsonipc
-
-    # gui dependencies
-    pystray
-    tkinter
+  postInstall = ''
+    mkdir -p $out/share/pixmaps
+    cp jellyfin_mpv_shim/integration/jellyfin-256.png $out/share/pixmaps/jellyfin-desktop.png
+  '';
 
-    # display_mirror dependencies
-    jinja2
-    pywebview
-  ];
+  postFixup = ''
+    wrapQtApp $out/bin/jellyfin-desktop
+    wrapQtApp $out/bin/jellyfin-mpv-desktop
+  '';
 
   # no tests
   doCheck = false;
   pythonImportsCheck = [ "jellyfin_mpv_shim" ];
 
   meta = with lib; {
-    homepage = "https://github.com/iwalton3/jellyfin-mpv-shim";
+    homepage = "https://github.com/jellyfin/jellyfin-desktop";
     description = "Allows casting of videos to MPV via the jellyfin mobile and web app";
     license = licenses.gpl3;
     maintainers = with maintainers; [ jojosch ];
diff --git a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch
deleted file mode 100644
index 996225efb3a5..000000000000
--- a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/setup.py b/setup.py
-index a831959..2206e6e 100644
---- a/setup.py
-+++ b/setup.py
-@@ -25,7 +25,6 @@ setup(
-     entry_points={
-         'console_scripts': [
-             'jellyfin-mpv-shim=jellyfin_mpv_shim.mpv_shim:main',
--            'jellyfin-mpv-desktop=jellyfin_mpv_shim.mpv_shim:main_desktop',
-         ]
-     },
-     classifiers=[
diff --git a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch
deleted file mode 100644
index 6941b956e854..000000000000
--- a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/jellyfin_mpv_shim/conf.py b/jellyfin_mpv_shim/conf.py
-index 0ab9326..ccedc17 100644
---- a/jellyfin_mpv_shim/conf.py
-+++ b/jellyfin_mpv_shim/conf.py
-@@ -88,8 +88,8 @@ class Settings(object):
-         "sync_revert_seek":     True,
-         "sync_osd_message":     True,
-         "screenshot_menu":      True,
--        "check_updates":        True,
--        "notify_updates":       True,
-+        "check_updates":        False,
-+        "notify_updates":       False,
-         "lang":                 None,
-         "desktop_scale":        1.0,
-     }
diff --git a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
deleted file mode 100644
index 89a601af4add..000000000000
--- a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "jellyfin-mpv-shim-shader-pack";
-  version = "1.0.0";
-
-  src = fetchFromGitHub {
-    owner = "iwalton3";
-    repo = "default-shader-pack";
-    rev = "v${version}";
-    sha256 = "04y8gvjy4v3773b1kyan4dxqcf86b56x7v33m2k246jbn0rl2pgr";
-  };
-
-  installPhase = ''
-    mkdir -p $out
-    cp -a . $out
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/iwalton3/default-shader-pack";
-    description = "Preconfigured set of MPV shaders and configurations for MPV Shim media clients";
-    license = with licenses; [ mit lgpl3Plus unlicense ];
-    maintainers = with maintainers; [ jojosch ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix
new file mode 100644
index 000000000000..5d714cf17993
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildKodiAddon, fetchFromGitHub, requests, vfs-libarchive  }:
+
+buildKodiAddon rec {
+  pname = "a4ksubtitles";
+  namespace = "service.subtitles.a4ksubtitles";
+  version = "2.3.0";
+
+  src = fetchFromGitHub {
+    owner = "a4k-openproject";
+    repo = "a4kSubtitles";
+    rev = "${namespace}/${namespace}-${version}";
+    sha256 = "0hxvxkbihfyvixmlxf5n4ccn70w0244hhw3hr44rqvx00a0bg1lh";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    vfs-libarchive
+  ];
+
+  meta = with lib; {
+    homepage = "https://a4k-openproject.github.io/a4kSubtitles/";
+    description = "Multi-Source Subtitles Addon";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/addon-update-script/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/addon-update-script/default.nix
new file mode 100644
index 000000000000..17c1d45783fa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/addon-update-script/default.nix
@@ -0,0 +1,23 @@
+{ writeShellScript
+, nix
+, curl
+, gzip
+, xmlstarlet
+, common-updater-scripts
+}:
+
+{ attrPath }:
+
+let
+  url = "http://mirrors.kodi.tv/addons/matrix/addons.xml.gz";
+  updateScript = writeShellScript "update.sh" ''
+    set -ex
+
+    attrPath=$1
+    namespace=$(${nix}/bin/nix-instantiate $systemArg --eval -E "with import ./. {}; $attrPath.namespace" | tr -d '"')
+    version=$(${curl}/bin/curl -s -L ${url} | ${gzip}/bin/gunzip -c | ${xmlstarlet}/bin/xml select -T -t -m "//addons/addon[@id='$namespace']" -v @version)
+
+    ${common-updater-scripts}/bin/update-source-version "$attrPath" "$version"
+  '';
+in
+  [ updateScript attrPath ]
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/certifi/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/certifi/default.nix
new file mode 100644
index 000000000000..d122cacc878f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/certifi/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "certifi";
+  namespace = "script.module.certifi";
+  version = "2019.11.28+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "0vsd68izv1ix0hb1gm74qq3zff0sxmhfhjyh7y9005zzp2gpi62v";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.certifi";
+  };
+
+  meta = with lib; {
+    homepage = "https://certifi.io";
+    description = "Python package for providing Mozilla's CA Bundle";
+    license = licenses.mpl20;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/chardet/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/chardet/default.nix
new file mode 100644
index 000000000000..7c069592c673
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/chardet/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "chardet";
+  namespace = "script.module.chardet";
+  version = "3.0.4+matrix.3";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "05928dj4fsj2zg8ajdial3sdf8izddq64sr0al3zy1gqw91jp80f";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.chardet";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/Freso/script.module.chardet";
+    description = "Universal encoding detector";
+    license = licenses.lgpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/controllers/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/controllers/default.nix
new file mode 100644
index 000000000000..825ad5d53fc4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/controllers/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchFromGitHub, controller }:
+buildKodiAddon rec {
+  pname = "game-controller-${controller}";
+  namespace = "game.controller.${controller}";
+  version = "1.0.3";
+
+  sourceDir = "addons/" + namespace;
+
+  src = fetchFromGitHub {
+    owner = "kodi-game";
+    repo = "kodi-game-controllers";
+    rev = "01acb5b6e8b85392b3cb298b034aadb1b24ccf18";
+    sha256 = "0sbc0w0fwbp7rbmbgb6a1kglhnn5g85hijcbbvf5x6jdq9v3f1qb";
+  };
+
+  meta = with lib; {
+    description = "Add support for different gaming controllers.";
+    platforms = platforms.all;
+    license = licenses.odbl;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/dateutil/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/dateutil/default.nix
new file mode 100644
index 000000000000..665858d3d573
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/dateutil/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript, six }:
+
+buildKodiAddon rec {
+  pname = "dateutil";
+  namespace = "script.module.dateutil";
+  version = "2.8.1+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "1jr77017ihs7j3455i72af71wyvs792kbizq4539ccd98far8lm7";
+  };
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.dateutil";
+  };
+
+  meta = with lib; {
+    homepage = "https://dateutil.readthedocs.io/en/stable/";
+    description = "Extensions to the standard Python datetime module";
+    license = with licenses; [ asl20 bsd3 ];
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/idna/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/idna/default.nix
new file mode 100644
index 000000000000..662a45188ecc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/idna/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "idna";
+  namespace = "script.module.idna";
+  version = "2.8.1+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "02s75fhfmbs3a38wvxba51aj3lv5bidshjdkl6yjfji6waxpr9xh";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.idna";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/Freso/script.module.idna";
+    description = "Internationalized Domain Names for Python";
+    license = licenses.bsd3;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
new file mode 100644
index 000000000000..00e58ece0758
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, expat, glib, nspr, nss }:
+buildKodiBinaryAddon rec {
+  pname = "inputstream-adaptive";
+  namespace = "inputstream.adaptive";
+  version = "2.6.8";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "inputstream.adaptive";
+    rev = "${version}-${rel}";
+    sha256 = "0m2d5r0f82qv4kqmq5yxzpi1awkjir2b2s2mfwkjn8p55r7gzp7c";
+  };
+
+  extraBuildInputs = [ expat ];
+
+  extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
+
+  extraInstallPhase = let n = namespace; in ''
+    ln -s $out/lib/addons/${n}/libssd_wv.so $out/${addonDir}/${n}/libssd_wv.so
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/xbmc/inputstream.adaptive";
+    description = "Kodi inputstream addon for several manifest types";
+    platforms = platforms.all;
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
new file mode 100644
index 000000000000..32b55d5e0cb2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
@@ -0,0 +1,24 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, kodi, bzip2, zlib }:
+
+buildKodiBinaryAddon rec {
+  pname = "inputstream-ffmpegdirect";
+  namespace = "inputstream.ffmpegdirect";
+  version = "1.19.4";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "inputstream.ffmpegdirect";
+    rev = "${version}-${rel}";
+    sha256 = "1ppvs6zybbi73zq1qh8klyhj99byh61c6nijmb1gd5yhg7cywf72";
+  };
+
+  extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ];
+
+  meta = with lib; {
+    homepage = "https://github.com/xbmc/inputstream.ffmpegdirect/";
+    description = "InputStream Client for streams that can be opened by either FFmpeg's libavformat or Kodi's cURL";
+    platforms = platforms.all;
+    license = licenses.gpl2Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix
new file mode 100644
index 000000000000..c575cfccfccf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix
@@ -0,0 +1,24 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, openssl, rtmpdump, zlib }:
+
+buildKodiBinaryAddon rec {
+  pname = "inputstream-rtmp";
+  namespace = "inputstream.rtmp";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "inputstream.rtmp";
+    rev = "${version}-${rel}";
+    sha256 = "1q4k6plkjasnjs7gnbcc1x2mwr562ach7bkqk1z1y343s0dp9qnq";
+  };
+
+  extraBuildInputs = [ openssl rtmpdump zlib ];
+
+  meta = with lib; {
+    homepage = "https://github.com/xbmc/inputstream.rtmp/";
+    description = "Client for RTMP streams";
+    platforms = platforms.all;
+    license = licenses.gpl2Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
new file mode 100644
index 000000000000..b42c32fed109
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "inputstreamhelper";
+  namespace = "script.module.inputstreamhelper";
+  version = "0.5.2+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "18lkksljfa57w69yklbldf7dgyykrm84pd10mdjdqdm88fdiiijk";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.inputstreamhelper";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/emilsvennesson/script.module.inputstreamhelper";
+    description = "A simple Kodi module that makes life easier for add-on developers relying on InputStream based add-ons and DRM playback";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/jellyfin/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/jellyfin/default.nix
new file mode 100644
index 000000000000..03a037ce5387
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/jellyfin/default.nix
@@ -0,0 +1,49 @@
+{ lib, addonDir, buildKodiAddon, fetchFromGitHub, kodi, requests, dateutil, six, kodi-six, signals }:
+let
+  python = kodi.pythonPackages.python.withPackages (p: with p; [ pyyaml ]);
+in
+buildKodiAddon rec {
+  pname = "jellyfin";
+  namespace = "plugin.video.jellyfin";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "jellyfin";
+    repo = "jellyfin-kodi";
+    rev = "v${version}";
+    sha256 = "0fx20gmd5xlg59ks4433qh2b3jhbs5qrnc49zi4rkqqr4jr4nhnn";
+  };
+
+  nativeBuildInputs = [
+    python
+  ];
+
+  prePatch = ''
+    substituteInPlace .config/generate_xml.py \
+      --replace "'jellyfin-kodi/release.yaml'" "'release.yaml'" \
+      --replace "'jellyfin-kodi/addon.xml'" "'addon.xml'"
+  '';
+
+  buildPhase = ''
+    ${python}/bin/python3 .config/generate_xml.py py3
+  '';
+
+  postInstall = ''
+    mv /build/source/addon.xml $out${addonDir}/${namespace}/
+  '';
+
+  propagatedBuildInputs = [
+    requests
+    dateutil
+    six
+    kodi-six
+    signals
+  ];
+
+  meta = with lib; {
+    homepage = "https://jellyfin.org/";
+    description = "A whole new way to manage and view your media library";
+    license = licenses.gpl3Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/joystick/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/joystick/default.nix
new file mode 100644
index 000000000000..a1b9c3eeeefd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/joystick/default.nix
@@ -0,0 +1,22 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, tinyxml, udev }:
+buildKodiBinaryAddon rec {
+  pname = namespace;
+  namespace = "peripheral.joystick";
+  version = "1.7.1";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = namespace;
+    rev = "${version}-${rel}";
+    sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
+  };
+
+  extraBuildInputs = [ tinyxml udev ];
+
+  meta = with lib; {
+    description = "Binary addon for raw joystick input.";
+    platforms = platforms.all;
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/kodi-platform/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/kodi-platform/default.nix
new file mode 100644
index 000000000000..6d458f7377d7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/kodi-platform/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchFromGitHub, cmake, kodi, libcec_platform, tinyxml }:
+stdenv.mkDerivation rec {
+  pname = "kodi-platform";
+  version = "17.1";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = pname;
+    rev = "c8188d82678fec6b784597db69a68e74ff4986b5";
+    sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ kodi libcec_platform tinyxml ];
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/kodi-six/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/kodi-six/default.nix
new file mode 100644
index 000000000000..b4f1169b36db
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/kodi-six/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+
+buildKodiAddon rec {
+  pname = "kodi-six";
+  namespace = "script.module.kodi-six";
+  version = "0.1.3.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "14m232p9hx925pbk8knsg994m1nbpa5278zmcrnfblh4z84gjv4x";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.kodi-six";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/romanvm/kodi.six";
+    description = "Wrappers around Kodi Python API for seamless Python 2/3 compatibility";
+    license = licenses.gpl3Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/myconnpy/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/myconnpy/default.nix
new file mode 100644
index 000000000000..bd0c98137a5a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/myconnpy/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "myconnpy";
+  namespace = "script.module.myconnpy";
+  version = "8.0.18+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "1cx3qdzw9lkkmbyvyrmc2i193is20fihn2sfl7kmv43f708vam0k";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.myconnpy";
+  };
+
+  meta = with lib; {
+    homepage = "http://dev.mysql.com/doc/connector-python/en/index.html";
+    description = "MySQL Connector/Python";
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/netflix/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/netflix/default.nix
new file mode 100644
index 000000000000..e258270dad63
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/netflix/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildKodiAddon, fetchFromGitHub, signals, inputstream-adaptive, inputstreamhelper, requests, myconnpy }:
+
+buildKodiAddon rec {
+  pname = "netflix";
+  namespace = "plugin.video.netflix";
+  version = "1.15.0";
+
+  src = fetchFromGitHub {
+    owner = "CastagnaIT";
+    repo = namespace;
+    rev = "v${version}";
+    sha256 = "1jibzzm8viqpanby6lqxpb95gw5hw3lfsw4jasjskiinbf8n469k";
+  };
+
+  propagatedBuildInputs = [
+    signals
+    inputstream-adaptive
+    inputstreamhelper
+    requests
+    myconnpy
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/CastagnaIT/plugin.video.netflix";
+    description = "Netflix VOD Services Add-on";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/osmc-skin/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/osmc-skin/default.nix
new file mode 100644
index 000000000000..c83fd66a4333
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/osmc-skin/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildKodiAddon, fetchFromGitHub }:
+buildKodiAddon rec {
+  pname = "osmc-skin";
+  namespace = "skin.osmc";
+  version = "18.0.0";
+
+  src = fetchFromGitHub {
+    owner = "osmc";
+    repo = namespace;
+    rev = "40a6c318641e2cbeac58fb0e7dde9c2beac737a0";
+    sha256 = "1l7hyfj5zvjxjdm94y325bmy1naak455b9l8952sb0gllzrcwj6s";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/osmc/skin.osmc";
+    description = "The default skin for OSMC";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ worldofpeace ];
+    license = licenses.cc-by-nc-sa-30;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/pdfreader/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/pdfreader/default.nix
new file mode 100644
index 000000000000..8896a94c9c39
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/pdfreader/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildKodiAddon, fetchFromGitHub }:
+buildKodiAddon rec {
+  pname = "pdfreader";
+  namespace = "plugin.image.pdf";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner = "i96751414";
+    repo = "plugin.image.pdfreader";
+    rev = "v${version}";
+    sha256 = "0nkqhlm1gyagq6xpdgqvd5qxyr2ngpml9smdmzfabc8b972mwjml";
+  };
+
+  meta = with lib; {
+    homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
+    description = "A comic book reader";
+    license = licenses.gpl2Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix
new file mode 100644
index 000000000000..ba1a0241ffe8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix
@@ -0,0 +1,23 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, jsoncpp, libhdhomerun }:
+buildKodiBinaryAddon rec {
+  pname = "pvr-hdhomerun";
+  namespace = "pvr.hdhomerun";
+  version = "7.1.0";
+
+  src = fetchFromGitHub {
+    owner = "kodi-pvr";
+    repo = "pvr.hdhomerun";
+    rev = "${version}-${rel}";
+    sha256 = "0gbwjssnd319csq2kwlyjj1rskg19m1dxac5dl2dymvx5hn3zrgm";
+  };
+
+  extraBuildInputs = [ jsoncpp libhdhomerun ];
+
+  meta = with lib; {
+    homepage = "https://github.com/kodi-pvr/pvr.hdhomerun";
+    description = "Kodi's HDHomeRun PVR client addon";
+    platforms = platforms.all;
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/pvr-hts/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/pvr-hts/default.nix
new file mode 100644
index 000000000000..32b4a035bfee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/pvr-hts/default.nix
@@ -0,0 +1,21 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub }:
+buildKodiBinaryAddon rec {
+  pname = "pvr-hts";
+  namespace = "pvr.hts";
+  version = "8.2.4";
+
+  src = fetchFromGitHub {
+    owner = "kodi-pvr";
+    repo = "pvr.hts";
+    rev = "${version}-${rel}";
+    sha256 = "sha256-05RSB4ZwwZSzY2b1/MRw6zzl/HhMbeVhCVCOj3gSTWA=";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/kodi-pvr/pvr.hts";
+    description = "Kodi's Tvheadend HTSP client addon";
+    platforms = platforms.all;
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
new file mode 100644
index 000000000000..7fe0ed08e8fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
@@ -0,0 +1,35 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub
+, pugixml, zlib
+, inputstream-adaptive, inputstream-ffmpegdirect, inputstream-rtmp
+}:
+
+buildKodiBinaryAddon rec {
+  pname = "pvr-iptvsimple";
+  namespace = "pvr.iptvsimple";
+  version = "7.5.1";
+
+  src = fetchFromGitHub {
+    owner = "kodi-pvr";
+    repo = "pvr.iptvsimple";
+    rev = "${version}-${rel}";
+    sha256 = "1q470v9nipnrca0rbwvqlbxw9ccbl9s1k46hwwrh94vhyp5rjlib";
+  };
+
+  extraBuildInputs = [
+    pugixml
+    zlib
+  ];
+  propagatedBuildInputs = [
+    inputstream-adaptive
+    inputstream-ffmpegdirect
+    inputstream-rtmp
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/kodi-pvr/pvr.iptvsimple";
+    description = "Kodi's IPTV Simple client addon";
+    platforms = platforms.all;
+    license = licenses.gpl2Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/requests/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/requests/default.nix
new file mode 100644
index 000000000000..7d79abd0872e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/requests/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript, certifi, chardet, idna, urllib3 }:
+buildKodiAddon rec {
+  pname = "requests";
+  namespace = "script.module.requests";
+  version = "2.22.0+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "09576galkyzhw8fhy2h4aablm5rm2v08g0mdmg9nn55dlxhkkljq";
+  };
+
+  propagatedBuildInputs = [
+    certifi
+    chardet
+    idna
+    urllib3
+  ];
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.requests";
+  };
+
+  meta = with lib; {
+    homepage = "http://python-requests.org";
+    description = "Python HTTP for Humans";
+    license = licenses.asl20;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/signals/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/signals/default.nix
new file mode 100644
index 000000000000..bba7b112e9f0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/signals/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "signals";
+  namespace = "script.module.addon.signals";
+  version = "0.0.6+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "1qcjbakch8hvx02wc01zv014nmzgn6ahc4n2bj5mzr114ppd3hjs";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.signals";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/ruuk/script.module.addon.signals";
+    description = "Provides signal/slot mechanism for inter-addon communication";
+    license = licenses.lgpl21Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/six/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/six/default.nix
new file mode 100644
index 000000000000..8d7b8f936f3a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/six/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+
+buildKodiAddon rec {
+  pname = "six";
+  namespace = "script.module.six";
+  version = "1.14.0+matrix.2";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "1f9g43j4y5x7b1bgbwqqfj0p2bkqjpycj17dj7a9j271mcr5zhwb";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.six";
+  };
+
+  meta = with lib; {
+    homepage = "https://pypi.org/project/six/";
+    description = "Python 2 and 3 compatibility utilities";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/steam-controller/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/steam-controller/default.nix
new file mode 100644
index 000000000000..d2b79029f7cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/steam-controller/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildKodiBinaryAddon, fetchFromGitHub, libusb1 }:
+buildKodiBinaryAddon rec {
+  pname = namespace;
+  namespace = "peripheral.steamcontroller";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "kodi-game";
+    repo = namespace;
+    rev = "f68140ca44f163a03d3a625d1f2005a6edef96cb";
+    sha256 = "09lm8i119xlsxxk0c64rnp8iw0crr90v7m8iwi9r31qdmxrdxpmg";
+  };
+
+  extraBuildInputs = [ libusb1 ];
+
+  meta = with lib; {
+    description = "Binary addon for steam controller.";
+    platforms = platforms.all;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/steam-launcher/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/steam-launcher/default.nix
new file mode 100644
index 000000000000..c4a695b8f813
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/steam-launcher/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildKodiAddon, fetchFromGitHub, steam }:
+buildKodiAddon {
+  pname = "steam-launcher";
+  namespace = "script.steam.launcher";
+  version = "3.5.1";
+
+  src = fetchFromGitHub rec {
+    owner = "teeedubb";
+    repo = owner + "-xbmc-repo";
+    rev = "8260bf9b464846a1f1965da495d2f2b7ceb81d55";
+    sha256 = "1fj3ry5s44nf1jzxk4bmnpa4b9p23nrpmpj2a4i6xf94h7jl7p5k";
+  };
+
+  propagatedBuildInputs = [ steam ];
+
+  meta = with lib; {
+    homepage = "https://forum.kodi.tv/showthread.php?tid=157499";
+    description = "Launch Steam in Big Picture Mode from Kodi";
+    longDescription = ''
+      This add-on will close/minimise Kodi, launch Steam in Big
+      Picture Mode and when Steam BPM is exited (either by quitting
+      Steam or returning to the desktop) Kodi will
+      restart/maximise. Running pre/post Steam scripts can be
+      configured via the addon.
+    '';
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/svtplay/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/svtplay/default.nix
new file mode 100644
index 000000000000..db4fbb642c05
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/svtplay/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildKodiAddon, fetchFromGitHub }:
+buildKodiAddon rec {
+  pname = "svtplay";
+  namespace = "plugin.video.svtplay";
+  version = "5.1.12";
+
+  src = fetchFromGitHub {
+    owner = "nilzen";
+    repo = "xbmc-" + pname;
+    rev = "v${version}";
+    sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
+  };
+
+  meta = with lib; {
+    homepage = "https://forum.kodi.tv/showthread.php?tid=67110";
+    description = "Watch content from SVT Play";
+    longDescription = ''
+      With this addon you can stream content from SVT Play
+      (svtplay.se). The plugin fetches the video URL from the SVT
+      Play website and feeds it to the Kodi video player. HLS (m3u8)
+      is the preferred video format by the plugin.
+    '';
+    platforms = platforms.all;
+    license = licenses.gpl3Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/urllib3/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/urllib3/default.nix
new file mode 100644
index 000000000000..e3127a8d1188
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/urllib3/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "urllib3";
+  namespace = "script.module.urllib3";
+  version = "1.25.8+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "080yq8ns0sag6rmdag1hjwi0whcmp35wzqjp3by92m81cpszs75q";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.urllib3";
+  };
+
+  meta = with lib; {
+    homepage = "https://urllib3.readthedocs.io/en/latest/";
+    description = "HTTP library with thread-safe connection pooling, file post, and more";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix
new file mode 100644
index 000000000000..2db17f17abad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix
@@ -0,0 +1,22 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libarchive, xz, bzip2, zlib, lz4, lzo, openssl }:
+buildKodiBinaryAddon rec {
+  pname = namespace;
+  namespace = "vfs.libarchive";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = namespace;
+    rev = "${version}-${rel}";
+    sha256 = "1q62p1i6rvqk2zv6f1cpffkh95lgclys2xl4dwyhj3acmqdxd9i5";
+  };
+
+  extraBuildInputs = [ libarchive xz bzip2 zlib lz4 lzo openssl ];
+
+  meta = with lib; {
+    description = "LibArchive Virtual Filesystem add-on for Kodi";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix
new file mode 100644
index 000000000000..e41f008281ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix
@@ -0,0 +1,22 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, openssl, libssh, zlib }:
+buildKodiBinaryAddon rec {
+  pname = namespace;
+  namespace = "vfs.sftp";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = namespace;
+    rev = "${version}-${rel}";
+    sha256 = "06w74sh8yagrrp7a7rjaz3xrh1j3wdqald9c4b72c33gpk5997dk";
+  };
+
+  extraBuildInputs = [ openssl libssh zlib ];
+
+  meta = with lib; {
+    description = "SFTP Virtual Filesystem add-on for Kodi";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi/build-kodi-addon.nix b/nixpkgs/pkgs/applications/video/kodi/build-kodi-addon.nix
new file mode 100644
index 000000000000..572d5dda8053
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi/build-kodi-addon.nix
@@ -0,0 +1,25 @@
+{ stdenv, toKodiAddon, addonDir }:
+{ name ? "${attrs.pname}-${attrs.version}"
+, namespace
+, sourceDir ? ""
+, ... } @ attrs:
+toKodiAddon (stdenv.mkDerivation ({
+  name = "kodi-" + name;
+
+  dontStrip = true;
+
+  extraRuntimeDependencies = [ ];
+
+  installPhase = ''
+    runHook preInstall
+
+    cd $src/$sourceDir
+    d=$out${addonDir}/${namespace}
+    mkdir -p $d
+    sauce="."
+    [ -d ${namespace} ] && sauce=${namespace}
+    cp -R "$sauce/"* $d
+
+    runHook postInstall
+  '';
+} // attrs))
diff --git a/nixpkgs/pkgs/applications/video/kodi/build-kodi-binary-addon.nix b/nixpkgs/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
new file mode 100644
index 000000000000..e0ca5d1cf6eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
@@ -0,0 +1,35 @@
+{ stdenv, toKodiAddon, addonDir, cmake, kodi, kodi-platform, libcec_platform }:
+{ name ? "${attrs.pname}-${attrs.version}"
+, namespace
+, version
+, extraBuildInputs ? []
+, extraRuntimeDependencies ? []
+, extraInstallPhase ? "", ... } @ attrs:
+toKodiAddon (stdenv.mkDerivation ({
+  name = "kodi-" + name;
+
+  dontStrip = true;
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
+
+  inherit extraRuntimeDependencies;
+
+  # disables check ensuring install prefix is that of kodi
+  cmakeFlags = [
+    "-DOVERRIDE_PATHS=1"
+  ];
+
+  # kodi checks for addon .so libs existance in the addon folder (share/...)
+  # and the non-wrapped kodi lib/... folder before even trying to dlopen
+  # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
+  installPhase = let n = namespace; in ''
+    runHook preInstall
+
+    make install
+    ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
+    ${extraInstallPhase}
+
+    runHook postInstall
+  '';
+} // attrs))
diff --git a/nixpkgs/pkgs/applications/video/kodi/default.nix b/nixpkgs/pkgs/applications/video/kodi/default.nix
index 3aaa465a3ccb..3f382efff11b 100644
--- a/nixpkgs/pkgs/applications/video/kodi/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/default.nix
@@ -1,292 +1,14 @@
-{ stdenv, lib, fetchpatch, fetchurl, fetchFromGitHub, autoconf, automake, libtool, makeWrapper, linuxHeaders
-, pkg-config, cmake, gnumake, yasm, python2Packages
-, libgcrypt, libgpgerror, libunistring
-, boost, avahi, lame, autoreconfHook
-, gettext, pcre-cpp, yajl, fribidi, which
-, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
-, libxml2, systemd
-, alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl
-, libjpeg, libpng, libtiff
-, libmpeg2, libsamplerate, libmad
-, libogg, libvorbis, flac, libxslt
-, lzo, libcdio, libmodplug, libass, libbluray
-, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
-, curl, bzip2, zip, unzip, glxinfo
-, libcec, libcec_platform, dcadec, libuuid
-, libcrossguid, libmicrohttpd
-, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
-, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
-, lirc
-, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
-, dbusSupport ? true, dbus ? null
-, joystickSupport ? true, cwiid ? null
-, nfsSupport ? true, libnfs ? null
-, pulseSupport ? true, libpulseaudio ? null
-, rtmpSupport ? true, rtmpdump ? null
-, sambaSupport ? true, samba ? null
-, udevSupport ? true, udev ? null
-, usbSupport  ? false, libusb-compat-0_1 ? null
-, vdpauSupport ? true, libvdpau ? null
-, useWayland ? false, wayland ? null, wayland-protocols ? null
-, waylandpp ?  null, libxkbcommon ? null
-, useGbm ? false, mesa ? null, libinput ? null
-, buildPackages
-}:
-
-assert dbusSupport  -> dbus != null;
-assert nfsSupport   -> libnfs != null;
-assert pulseSupport -> libpulseaudio != null;
-assert rtmpSupport  -> rtmpdump != null;
-assert sambaSupport -> samba != null;
-assert udevSupport  -> udev != null;
-assert usbSupport   -> libusb-compat-0_1 != null && ! udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable
-assert vdpauSupport -> libvdpau != null;
-assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
-
+{ callPackage, ... } @ args:
 let
-  kodiReleaseDate = "20200728";
-  kodiVersion = "18.9";
-  rel = "Leia";
-
-  kodi_src = fetchFromGitHub {
-    owner  = "xbmc";
-    repo   = "xbmc";
-    rev    = "${kodiVersion}-${rel}";
-    sha256 = "0nnf7823pixj6n2fkjc8rbdjwayvhlbglij2by4rnjzzfgmqmw20";
-  };
-
-  cmakeProto = fetchurl {
-    url = "https://raw.githubusercontent.com/pramsey/libght/ca9b1121c352ea10170636e170040e1af015bad1/cmake/modules/CheckPrototypeExists.cmake";
-    sha256  = "1zai82gm5x55n3xvdv7mns3ja6a2k81x9zz0nk42j6s2yb0fkjxh";
-  };
-
-  cmakeProtoPatch = ''
-    # get rid of windows headers as they will otherwise be found first
-    rm -rf msvc
-
-    cp ${cmakeProto} cmake/${cmakeProto.name}
-    # we need to enable support for C++ for check_prototype_exists to do its thing
-    substituteInPlace CMakeLists.txt --replace 'LANGUAGES C' 'LANGUAGES C CXX'
-    if [ -f cmake/CheckHeadersSTDC.cmake ]; then
-      sed -i cmake/CheckHeadersSTDC.cmake \
-        -e '7iinclude(CheckPrototypeExists)'
-    fi
-  '';
-
-  kodiDependency = { name, version, rev, sha256, ... } @attrs:
-    let
-      attrs' = builtins.removeAttrs attrs ["name" "version" "rev" "sha256"];
-    in stdenv.mkDerivation ({
-      name = "kodi-${lib.toLower name}-${version}";
-      src = fetchFromGitHub {
-        owner = "xbmc";
-        repo  = name;
-        inherit rev sha256;
+  unwrapped = callPackage ./unwrapped.nix (removeAttrs args [ "callPackage" ]);
+  kodiPackages = callPackage ../../../top-level/kodi-packages.nix { kodi = unwrapped; };
+in
+  unwrapped.overrideAttrs (oldAttrs: {
+    passthru = oldAttrs.passthru // {
+      packages = kodiPackages;
+      withPackages = func: callPackage ./wrapper.nix {
+        kodi = unwrapped;
+        addons = kodiPackages.requiredKodiAddons (func kodiPackages);
       };
-    } // attrs');
-
-  ffmpeg = kodiDependency rec {
-    name    = "FFmpeg";
-    version = "4.0.3";
-    rev     = "${version}-${rel}-18.2";
-    sha256  = "1krsjlr949iy5l6ljxancza1yi6w1annxc5s6k283i9mb15qy8cy";
-    preConfigure = ''
-      cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
-      sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
-      sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt
-    '';
-    cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      "-DCROSSCOMPILING=ON"
-      "-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
-      "-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
-      "-DPKG_CONFIG_EXECUTABLE=pkg-config"
-    ];
-    buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
-      ++ lib.optional  vdpauSupport    libvdpau;
-    nativeBuildInputs = [ cmake nasm pkg-config gnutls ];
-  };
-
-  # We can build these externally but FindLibDvd.cmake forces us to build it
-  # them, so we currently just use them for the src.
-  libdvdcss = kodiDependency rec {
-    name              = "libdvdcss";
-    version           = "1.4.2";
-    rev               = "${version}-${rel}-Beta-5";
-    sha256            = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
-    buildInputs       = [ linuxHeaders ];
-    nativeBuildInputs = [ cmake pkg-config ];
-    postPatch = ''
-      rm -rf msvc
-
-      substituteInPlace config.h.cm \
-        --replace '#cmakedefine O_BINARY "''${O_BINARY}"' '#define O_BINARY 0'
-    '';
-    cmakeFlags = [
-      "-DBUILD_SHARED_LIBS=1"
-      "-DHAVE_LINUX_DVD_STRUCT=1"
-    ];
-  };
-
-  libdvdnav = kodiDependency rec {
-    name              = "libdvdnav";
-    version           = "6.0.0";
-    rev               = "${version}-${rel}-Alpha-3";
-    sha256            = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
-    buildInputs       = [ libdvdcss libdvdread ];
-    nativeBuildInputs = [ cmake pkg-config ];
-    postPatch         = cmakeProtoPatch;
-    postInstall = ''
-      mv $out/lib/liblibdvdnav.so $out/lib/libdvdnav.so
-    '';
-  };
-
-  libdvdread = kodiDependency rec {
-    name              = "libdvdread";
-    version           = "6.0.0";
-    rev               = "${version}-${rel}-Alpha-3";
-    sha256            = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
-    buildInputs       = [ libdvdcss ];
-    nativeBuildInputs = [ cmake pkg-config ];
-    configureFlags    = [ "--with-libdvdcss" ];
-    postPatch         = cmakeProtoPatch;
-  };
-
-in stdenv.mkDerivation {
-    name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}";
-
-    src = kodi_src;
-
-    buildInputs = [
-      gnutls libidn libtasn1 nasm p11-kit
-      libxml2 python2Packages.python
-      boost libmicrohttpd
-      gettext pcre-cpp yajl fribidi libva libdrm
-      openssl gperf tinyxml2 taglib libssh
-      alsaLib libGL libGLU fontconfig freetype ftgl
-      libjpeg libpng libtiff
-      libmpeg2 libsamplerate libmad
-      libogg libvorbis flac libxslt systemd
-      lzo libcdio libmodplug libass libbluray
-      sqlite libmysqlclient avahi lame
-      curl bzip2 zip unzip glxinfo
-      libcec libcec_platform dcadec libuuid
-      libgcrypt libgpgerror libunistring
-      libcrossguid libplist
-      bluez giflib glib harfbuzz lcms2 libpthreadstubs
-      ffmpeg flatbuffers fmt fstrcmp rapidjson
-      lirc
-      # libdvdcss libdvdnav libdvdread
-    ]
-    ++ lib.optional x11Support [
-      libX11 xorgproto libXt libXmu libXext.dev libXdmcp
-      libXinerama libXrandr.dev libXtst libXfixes
-    ]
-    ++ lib.optional  dbusSupport     dbus
-    ++ lib.optional joystickSupport cwiid
-    ++ lib.optional  nfsSupport      libnfs
-    ++ lib.optional  pulseSupport    libpulseaudio
-    ++ lib.optional  rtmpSupport     rtmpdump
-    ++ lib.optional  sambaSupport    samba
-    ++ lib.optional  udevSupport     udev
-    ++ lib.optional  usbSupport      libusb-compat-0_1
-    ++ lib.optional  vdpauSupport    libvdpau
-    ++ lib.optionals useWayland [
-      wayland
-      waylandpp.dev
-      wayland-protocols
-      # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
-      libxkbcommon.dev
-    ]
-    ++ lib.optional useGbm [
-      libxkbcommon.dev
-      mesa.dev
-      libinput.dev
-    ];
-
-    nativeBuildInputs = [
-      cmake
-      doxygen
-      makeWrapper
-      which
-      pkg-config gnumake
-      autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
-      jre_headless yasm gettext python2Packages.python flatbuffers
-
-      # for TexturePacker
-      giflib zlib libpng libjpeg lzo
-    ] ++ lib.optionals useWayland [ wayland-protocols waylandpp.bin ];
-
-    depsBuildBuild = [
-      buildPackages.stdenv.cc
-    ];
-
-    cmakeFlags = [
-      "-Dlibdvdcss_URL=${libdvdcss.src}"
-      "-Dlibdvdnav_URL=${libdvdnav.src}"
-      "-Dlibdvdread_URL=${libdvdread.src}"
-      "-DGIT_VERSION=${kodiReleaseDate}"
-      "-DENABLE_EVENTCLIENTS=ON"
-      "-DENABLE_INTERNAL_CROSSGUID=OFF"
-      "-DENABLE_OPTICAL=ON"
-      "-DLIRC_DEVICE=/run/lirc/lircd"
-      "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
-      "-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
-      "-DPYTHON_EXECUTABLE=${buildPackages.python2Packages.python}/bin/python"
-    ] ++ lib.optional useWayland [
-      "-DCORE_PLATFORM_NAME=wayland"
-      "-DWAYLAND_RENDER_SYSTEM=gl"
-      "-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
-    ] ++ lib.optional useGbm [
-      "-DCORE_PLATFORM_NAME=gbm"
-      "-DGBM_RENDER_SYSTEM=gles"
-    ];
-
-    # 14 tests fail but the biggest issue is that every test takes 30 seconds -
-    # I'm guessing there is a thing waiting to time out
-    doCheck = false;
-
-    # Need these tools on the build system when cross compiling,
-    # hacky, but have found no other way.
-    preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
-      CXX=c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
-      cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
-
-      CXX=c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
-      cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
-    '';
-
-    postPatch = ''
-      substituteInPlace xbmc/platform/linux/LinuxTimezone.cpp \
-        --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
-    '';
-
-    postInstall = ''
-      for p in $(ls $out/bin/) ; do
-        wrapProgram $out/bin/$p \
-          --prefix PATH            ":" "${lib.makeBinPath ([ python2Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo)}" \
-          --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
-              ([ curl systemd libmad libvdpau libcec libcec_platform libass ]
-                 ++ lib.optional nfsSupport libnfs
-                 ++ lib.optional rtmpSupport rtmpdump)}"
-      done
-
-      substituteInPlace $out/share/xsessions/kodi.desktop \
-        --replace kodi-standalone $out/bin/kodi-standalone
-    '';
-
-    doInstallCheck = true;
-
-    installCheckPhase = "$out/bin/kodi --version";
-
-    passthru = {
-      pythonPackages = python2Packages;
     };
-
-    meta = with lib; {
-      description = "Media center";
-      homepage    = "https://kodi.tv/";
-      license     = licenses.gpl2;
-      platforms   = platforms.linux;
-      maintainers = with maintainers; [ domenkozar titanous edwtjo peterhoeg sephalon ];
-    };
-}
+  })
diff --git a/nixpkgs/pkgs/applications/video/kodi/plugins.nix b/nixpkgs/pkgs/applications/video/kodi/packages.nix
index 7d9fdcc3d000..e6ce955e055b 100644
--- a/nixpkgs/pkgs/applications/video/kodi/plugins.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/packages.nix
@@ -1,39 +1,34 @@
 { lib, stdenv, callPackage, fetchFromGitHub
-, cmake, kodiPlain, libcec_platform, tinyxml, rapidxml
+, cmake, kodi, libcec_platform, tinyxml, pugixml
 , steam, udev, libusb1, jsoncpp, libhdhomerun, zlib
-, python2Packages, expat, glib, nspr, nss, openssl
-, libssh, libarchive, lzma, bzip2, lz4, lzo }:
+, python3Packages, expat, glib, nspr, nss, openssl
+, libssh, libarchive, xz, bzip2, lz4, lzo }:
 
 with lib;
 
 let self = rec {
 
-  pluginDir = "/share/kodi/addons";
-  rel = "Leia";
+  addonDir = "/share/kodi/addons";
+  rel = "Matrix";
 
-  kodi = kodiPlain;
+  inherit kodi;
 
   # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
-  toKodiPlugin = drv: drv.overrideAttrs(oldAttrs: {
+  toKodiAddon = drv: drv.overrideAttrs(oldAttrs: {
     # Use passthru in order to prevent rebuilds when possible.
     passthru = (oldAttrs.passthru or {})// {
-      kodiPluginFor = kodi;
-      requiredKodiPlugins = requiredKodiPlugins drv.propagatedBuildInputs;
+      kodiAddonFor = kodi;
+      requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
     };
   });
 
-  # Check whether a derivation provides a Kodi plugin.
-  hasKodiPlugin = drv: drv ? kodiPluginFor && drv.kodiPluginFor == kodi;
+  # Check whether a derivation provides a Kodi addon.
+  hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
 
-  # Get list of required Kodi plugins given a list of derivations.
-  requiredKodiPlugins = drvs: let
-      modules = filter hasKodiPlugin drvs;
-    in unique (modules ++ concatLists (catAttrs "requiredKodiPlugins" modules));
-
-  kodiWithPlugins = func: callPackage ./wrapper.nix {
-    inherit kodi;
-    plugins = requiredKodiPlugins (func self);
-  };
+  # Get list of required Kodi addons given a list of derivations.
+  requiredKodiAddons = drvs: let
+      modules = filter hasKodiAddon drvs;
+    in unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
 
   kodi-platform = stdenv.mkDerivation rec {
     project = "kodi-platform";
@@ -48,36 +43,45 @@ let self = rec {
     };
 
     nativeBuildInputs = [ cmake ];
-    buildInputs = [ kodiPlain libcec_platform tinyxml ];
+    buildInputs = [ kodi libcec_platform tinyxml ];
   };
 
-  mkKodiPlugin = { plugin, namespace, version, sourceDir ? null, ... }@args:
-  toKodiPlugin (stdenv.mkDerivation ({
-    name = "kodi-plugin-${plugin}-${version}";
+  buildKodiAddon =
+    { name ? "${attrs.pname}-${attrs.version}"
+    , namespace
+    , sourceDir ? ""
+    , ... } @ attrs:
+  toKodiAddon (stdenv.mkDerivation ({
+    name = "kodi-" + name;
 
     dontStrip = true;
 
     extraRuntimeDependencies = [ ];
 
     installPhase = ''
-      ${if sourceDir == null then "" else "cd $src/$sourceDir"}
-      d=$out${pluginDir}/${namespace}
+      cd $src/$sourceDir
+      d=$out${addonDir}/${namespace}
       mkdir -p $d
       sauce="."
       [ -d ${namespace} ] && sauce=${namespace}
       cp -R "$sauce/"* $d
     '';
-  } // args));
-
-  mkKodiABIPlugin = { plugin, namespace, version, extraBuildInputs ? [],
-    extraRuntimeDependencies ? [], extraInstallPhase ? "", ... }@args:
-  toKodiPlugin (stdenv.mkDerivation ({
-    name = "kodi-plugin-${plugin}-${version}";
+  } // attrs));
+
+  buildKodiBinaryAddon =
+    { name ? "${attrs.pname}-${attrs.version}"
+    , namespace
+    , version
+    , extraBuildInputs ? []
+    , extraRuntimeDependencies ? []
+    , extraInstallPhase ? "", ... } @ attrs:
+  toKodiAddon (stdenv.mkDerivation ({
+    name = "kodi-" + name;
 
     dontStrip = true;
 
     nativeBuildInputs = [ cmake ];
-    buildInputs = [ kodiPlain kodi-platform libcec_platform ] ++ extraBuildInputs;
+    buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
 
     inherit extraRuntimeDependencies;
 
@@ -86,25 +90,25 @@ let self = rec {
       "-DOVERRIDE_PATHS=1"
     ];
 
-    # kodi checks for plugin .so libs existance in the addon folder (share/...)
+    # kodi checks for addon .so libs existance in the addon folder (share/...)
     # and the non-wrapped kodi lib/... folder before even trying to dlopen
     # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
     installPhase = let n = namespace; in ''
       make install
-      ln -s $out/lib/addons/${n}/${n}.so.${version} $out${pluginDir}/${n}/${n}.so.${version}
+      ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
       ${extraInstallPhase}
     '';
-  } // args));
+  } // attrs));
 
-  advanced-launcher = mkKodiPlugin rec {
+  advanced-launcher = buildKodiAddon rec {
 
-    plugin = "advanced-launcher";
+    pname = "advanced-launcher";
     namespace = "plugin.program.advanced.launcher";
     version = "2.5.8";
 
     src = fetchFromGitHub {
       owner = "edwtjo";
-      repo = plugin;
+      repo = pname;
       rev = version;
       sha256 = "142vvgs37asq5m54xqhjzqvgmb0xlirvm0kz6lxaqynp0vvgrkx2";
     };
@@ -122,13 +126,14 @@ let self = rec {
       '';
       platforms = platforms.all;
       maintainers = with maintainers; [ edwtjo ];
+      broken = true; # requires port to python3
     };
 
   };
 
-  advanced-emulator-launcher = mkKodiPlugin rec {
+  advanced-emulator-launcher = buildKodiAddon rec {
 
-    plugin = "advanced-emulator-launcher";
+    pname = "advanced-emulator-launcher";
     namespace = "plugin.program.advanced.emulator.launcher";
     version = "0.9.6";
 
@@ -151,6 +156,7 @@ let self = rec {
       '';
       platforms = platforms.all;
       maintainers = with maintainers; [ edwtjo ];
+      broken = true; # requires port to python3
     };
 
   };
@@ -173,8 +179,8 @@ let self = rec {
     };
 
     mkController = controller: {
-        ${controller} = mkKodiPlugin rec {
-          plugin = pname + "-" + controller;
+        ${controller} = buildKodiAddon rec {
+          pname = pname + "-" + controller;
           namespace = "game.controller." + controller;
           sourceDir = "addons/" + namespace;
           inherit version src meta;
@@ -204,31 +210,31 @@ let self = rec {
       homepage = "https://forum.kodi.tv/showthread.php?tid=258159";
       description = "A ROM launcher for Kodi that uses HyperSpin assets.";
       maintainers = with maintainers; [ edwtjo ];
+      broken = true; # requires port to python3
     };
   in {
-    service = mkKodiPlugin {
-      plugin = pname + "-service";
+    service = buildKodiAddon {
+      pname = pname + "-service";
       version = "1.2.1";
       namespace = "service.hyper.launcher";
       inherit src meta;
     };
-    plugin = mkKodiPlugin {
-      plugin = pname;
+    plugin = buildKodiAddon {
       namespace = "plugin.hyper.launcher";
-      inherit version src meta;
+      inherit pname version src meta;
     };
   };
 
-  joystick = mkKodiABIPlugin rec {
+  joystick = buildKodiBinaryAddon rec {
+    pname = namespace;
     namespace = "peripheral.joystick";
-    version = "1.4.7";
-    plugin = namespace;
+    version = "1.7.1";
 
     src = fetchFromGitHub {
       owner = "xbmc";
       repo = namespace;
-      rev = "v${version}";
-      sha256 = "03gsp4kg41s3n4ib4wsv7m3krfipgwc2z07i4mnd5zvg0c4xrmap";
+      rev = "${version}-${rel}";
+      sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
     };
 
     meta = {
@@ -237,11 +243,11 @@ let self = rec {
       maintainers = with maintainers; [ edwtjo ];
     };
 
-    extraBuildInputs = [ udev ];
+    extraBuildInputs = [ tinyxml udev ];
   };
 
-  simpleplugin = mkKodiPlugin rec {
-    plugin = "simpleplugin";
+  simpleplugin = buildKodiAddon rec {
+    pname = "simpleplugin";
     namespace = "script.module.simpleplugin";
     version = "2.3.2";
 
@@ -256,21 +262,22 @@ let self = rec {
       homepage = src.meta.homepage;
       description = "Simpleplugin API";
       license = licenses.gpl3;
+      broken = true; # requires port to python3
     };
   };
 
-  svtplay = mkKodiPlugin rec {
+  svtplay = buildKodiAddon rec {
 
-    plugin = "svtplay";
+    pname = "svtplay";
     namespace = "plugin.video.svtplay";
-    version = "4.0.48";
+    version = "5.1.12";
 
     src = fetchFromGitHub {
-      name = plugin + "-" + version + ".tar.gz";
+      name = pname + "-" + version + ".tar.gz";
       owner = "nilzen";
-      repo = "xbmc-" + plugin;
-      rev = "dc18ad002cd69257611d0032fba91f57bb199165";
-      sha256 = "0klk1jpjc243ak306k94mag4b4s17w68v69yb8lzzydszqkaqa7x";
+      repo = "xbmc-" + pname;
+      rev = "v${version}";
+      sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
     };
 
     meta = {
@@ -288,16 +295,16 @@ let self = rec {
 
   };
 
-  steam-controller = mkKodiABIPlugin rec {
+  steam-controller = buildKodiBinaryAddon rec {
+    pname = namespace;
     namespace = "peripheral.steamcontroller";
-    version = "0.10.0";
-    plugin = namespace;
+    version = "0.11.0";
 
     src = fetchFromGitHub {
       owner = "kodi-game";
       repo = namespace;
-      rev = "ea345392ab5aa4485f3a48d2037fa8a8e8ab82de";
-      sha256 = "1hbd8fdvn7xkr9csz1g9wah78nhnq1rkazl4zwa31y70830k3279";
+      rev = "f68140ca44f163a03d3a625d1f2005a6edef96cb";
+      sha256 = "09lm8i119xlsxxk0c64rnp8iw0crr90v7m8iwi9r31qdmxrdxpmg";
     };
 
     extraBuildInputs = [ libusb1 ];
@@ -310,17 +317,17 @@ let self = rec {
 
   };
 
-  steam-launcher = mkKodiPlugin {
+  steam-launcher = buildKodiAddon {
 
-    plugin = "steam-launcher";
+    pname = "steam-launcher";
     namespace = "script.steam.launcher";
-    version = "3.1.4";
+    version = "3.5.1";
 
     src = fetchFromGitHub rec {
       owner = "teeedubb";
       repo = owner + "-xbmc-repo";
-      rev = "db67704c3e16bdcdd3bdfe2926c609f1f6bdc4fb";
-      sha256 = "001a7zs3a4jfzj8ylxv2klc33mipmqsd5aqax7q81fbgwdlndvbm";
+      rev = "8260bf9b464846a1f1965da495d2f2b7ceb81d55";
+      sha256 = "1fj3ry5s44nf1jzxk4bmnpa4b9p23nrpmpj2a4i6xf94h7jl7p5k";
     };
 
     propagatedBuildInputs = [ steam ];
@@ -339,17 +346,16 @@ let self = rec {
     };
   };
 
-  pdfreader = mkKodiPlugin rec {
-    plugin = "pdfreader";
+  pdfreader = buildKodiAddon rec {
+    pname = "pdfreader";
     namespace = "plugin.image.pdf";
-    version = "1.0.2";
+    version = "2.0.2";
 
-    src = fetchFromGitHub rec {
-      name = plugin + "-" + version + ".tar.gz";
-      owner = "teeedubb";
-      repo = owner + "-xbmc-repo";
-      rev = "0a405b95208ced8a1365ad3193eade8d1c2117ce";
-      sha256 = "1iv7d030z3xvlflvp4p5v3riqnwg9g0yvzxszy63v1a6x5kpjkqa";
+    src = fetchFromGitHub {
+      owner = "i96751414";
+      repo = "plugin.image.pdfreader";
+      rev = "v${version}";
+      sha256 = "0nkqhlm1gyagq6xpdgqvd5qxyr2ngpml9smdmzfabc8b972mwjml";
     };
 
     meta = {
@@ -359,17 +365,17 @@ let self = rec {
     };
   };
 
-  pvr-hts = mkKodiABIPlugin rec {
+  pvr-hts = buildKodiBinaryAddon rec {
 
-    plugin = "pvr-hts";
+    pname = "pvr-hts";
     namespace = "pvr.hts";
-    version = "4.4.14";
+    version = "8.2.2";
 
     src = fetchFromGitHub {
       owner = "kodi-pvr";
       repo = "pvr.hts";
       rev = "${version}-${rel}";
-      sha256 = "1bcwcwd2yjhw85yk6lyhf0iqiclrsz7r7vpbxgc650fwqbb146gr";
+      sha256 = "0jnn9gfjl556acqjf92wzzn371gxymhbbi665nqgg2gjcan0a49q";
     };
 
     meta = {
@@ -381,17 +387,17 @@ let self = rec {
 
   };
 
-  pvr-hdhomerun = mkKodiABIPlugin rec {
+  pvr-hdhomerun = buildKodiBinaryAddon rec {
 
-    plugin = "pvr-hdhomerun";
+    pname = "pvr-hdhomerun";
     namespace = "pvr.hdhomerun";
-    version = "3.5.0";
+    version = "7.1.0";
 
     src = fetchFromGitHub {
       owner = "kodi-pvr";
       repo = "pvr.hdhomerun";
       rev = "${version}-${rel}";
-      sha256 = "1zrkvfn0im2qmvqm93pa3cg8xkxv61sxlj8nsz4r5z9v9nhqadf6";
+      sha256 = "0gbwjssnd319csq2kwlyjj1rskg19m1dxac5dl2dymvx5hn3zrgm";
     };
 
     meta = {
@@ -405,17 +411,17 @@ let self = rec {
 
   };
 
-  pvr-iptvsimple = mkKodiABIPlugin rec {
+  pvr-iptvsimple = buildKodiBinaryAddon rec {
 
-    plugin = "pvr-iptvsimple";
+    pname = "pvr-iptvsimple";
     namespace = "pvr.iptvsimple";
-    version = "3.5.7";
+    version = "7.4.2";
 
     src = fetchFromGitHub {
       owner = "kodi-pvr";
       repo = "pvr.iptvsimple";
       rev = "${version}-${rel}";
-      sha256 = "17znib7c491h2ii4gagxradh0jyvgga0d548gbk4yjj2nc9qqc6d";
+      sha256 = "062i922qi0izkvn7v47yhyy2cf3fa7xc3k95b1gm9abfdwkk8ywr";
     };
 
     meta = {
@@ -426,12 +432,12 @@ let self = rec {
       license = licenses.gpl2Plus;
     };
 
-    extraBuildInputs = [ zlib rapidxml ];
+    extraBuildInputs = [ zlib pugixml ];
   };
 
-  osmc-skin = mkKodiPlugin rec {
+  osmc-skin = buildKodiAddon rec {
 
-    plugin = "osmc-skin";
+    pname = "osmc-skin";
     namespace = "skin.osmc";
     version = "18.0.0";
 
@@ -451,8 +457,8 @@ let self = rec {
     };
   };
 
-  yatp = python2Packages.toPythonModule (mkKodiPlugin rec {
-    plugin = "yatp";
+  yatp = python3Packages.toPythonModule (buildKodiAddon rec {
+    pname = "yatp";
     namespace = "plugin.video.yatp";
     version = "3.3.2";
 
@@ -467,28 +473,29 @@ let self = rec {
 
     propagatedBuildInputs = [
       simpleplugin
-      python2Packages.requests
-      python2Packages.libtorrent-rasterbar
+      python3Packages.requests
+      python3Packages.libtorrent-rasterbar
     ];
 
     meta = {
       homepage = src.meta.homepage;
       description = "Yet Another Torrent Player: libtorrent-based torrent streaming for Kodi";
       license = licenses.gpl3;
+      broken = true; # requires port to python3
     };
   });
 
-  inputstream-adaptive = mkKodiABIPlugin rec {
+  inputstream-adaptive = buildKodiBinaryAddon rec {
 
-    plugin = "inputstream-adaptive";
+    pname = "inputstream-adaptive";
     namespace = "inputstream.adaptive";
-    version = "2.4.6";
+    version = "2.6.7";
 
     src = fetchFromGitHub {
       owner = "peak3d";
       repo = "inputstream.adaptive";
       rev = "${version}-${rel}";
-      sha256 = "09d9b35mpaf3g5m51viyan9hv7d2i8ndvb9wm0j7rs5gwsf0k71z";
+      sha256 = "1pwqmbr78wp12jn6rwv63npdfc456adwz0amlxf6gvgg43li6p7s";
     };
 
     extraBuildInputs = [ expat ];
@@ -496,7 +503,7 @@ let self = rec {
     extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
 
     extraInstallPhase = let n = namespace; in ''
-      ln -s $out/lib/addons/${n}/libssd_wv.so $out/${pluginDir}/${n}/libssd_wv.so
+      ln -s $out/lib/addons/${n}/libssd_wv.so $out/${addonDir}/${n}/libssd_wv.so
     '';
 
     meta = {
@@ -507,16 +514,16 @@ let self = rec {
     };
   };
 
-  vfs-sftp = mkKodiABIPlugin rec {
+  vfs-sftp = buildKodiBinaryAddon rec {
+    pname = namespace;
     namespace = "vfs.sftp";
-    version = "1.0.6";
-    plugin = namespace;
+    version = "2.0.0";
 
     src = fetchFromGitHub {
       owner = "xbmc";
       repo = namespace;
       rev = "${version}-${rel}";
-      sha256 = "044kkzcpzvbyih4vys33r4hqw38xa82snmvl4qj1r80wnszc8af1";
+      sha256 = "06w74sh8yagrrp7a7rjaz3xrh1j3wdqald9c4b72c33gpk5997dk";
     };
 
     meta = with lib; {
@@ -529,16 +536,16 @@ let self = rec {
     extraBuildInputs = [ openssl libssh zlib ];
   };
 
-  vfs-libarchive = mkKodiABIPlugin rec {
+  vfs-libarchive = buildKodiBinaryAddon rec {
+    pname = namespace;
     namespace = "vfs.libarchive";
-    version = "1.0.7";
-    plugin = namespace;
+    version = "2.0.0";
 
     src = fetchFromGitHub {
       owner = "xbmc";
       repo = namespace;
       rev = "${version}-${rel}";
-      sha256 = "01qhv095h5j67ispm4iw18pd3kl7a0mnjkgm92al9qqiyif8lzgh";
+      sha256 = "1q62p1i6rvqk2zv6f1cpffkh95lgclys2xl4dwyhj3acmqdxd9i5";
     };
 
     meta = with lib; {
@@ -548,6 +555,6 @@ let self = rec {
       maintainers = with maintainers; [ minijackson ];
     };
 
-    extraBuildInputs = [ libarchive lzma bzip2 zlib lz4 lzo openssl ];
+    extraBuildInputs = [ libarchive xz bzip2 zlib lz4 lzo openssl ];
   };
 }; in self
diff --git a/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix b/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix
new file mode 100644
index 000000000000..6f926176eaf8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix
@@ -0,0 +1,243 @@
+{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
+, pkg-config, cmake, gnumake, yasm, python3Packages
+, libgcrypt, libgpgerror, libunistring
+, boost, avahi, lame
+, gettext, pcre-cpp, yajl, fribidi, which
+, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
+, gtest, ncurses, spdlog
+, libxml2, systemd
+, alsaLib, libGLU, libGL, fontconfig, freetype, ftgl
+, libjpeg, libpng, libtiff
+, libmpeg2, libsamplerate, libmad
+, libogg, libvorbis, flac, libxslt
+, lzo, libcdio, libmodplug, libass, libbluray
+, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
+, curl, bzip2, zip, unzip, glxinfo
+, libcec, libcec_platform, dcadec, libuuid
+, libcrossguid, libmicrohttpd
+, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
+, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
+, lirc
+, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
+, dbusSupport ? true, dbus
+, joystickSupport ? true, cwiid
+, nfsSupport ? true, libnfs
+, pulseSupport ? true, libpulseaudio
+, rtmpSupport ? true, rtmpdump
+, sambaSupport ? true, samba
+, udevSupport ? true, udev
+, usbSupport  ? false, libusb-compat-0_1
+, vdpauSupport ? true, libvdpau
+, waylandSupport ? false, wayland, wayland-protocols
+, waylandpp ?  null, libxkbcommon
+, gbmSupport ? false, mesa, libinput
+, buildPackages
+}:
+
+assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable
+assert gbmSupport || waylandSupport || x11Support;
+
+let
+  kodiReleaseDate = "20210219";
+  kodiVersion = "19.0";
+  rel = "Matrix";
+
+  kodi_src = fetchFromGitHub {
+    owner  = "xbmc";
+    repo   = "xbmc";
+    rev    = "${kodiVersion}-${rel}";
+    sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p";
+  };
+
+  ffmpeg = stdenv.mkDerivation rec {
+    pname = "kodi-ffmpeg";
+    version = "4.3.1";
+    src = fetchFromGitHub {
+      owner   = "xbmc";
+      repo    = "FFmpeg";
+      rev     = "${version}-${rel}-Beta1";
+      sha256  = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w";
+    };
+    preConfigure = ''
+      cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
+      sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
+      sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt
+    '';
+    cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DCROSSCOMPILING=ON"
+      "-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
+      "-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
+      "-DPKG_CONFIG_EXECUTABLE=pkg-config"
+    ];
+    buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
+      ++ lib.optional vdpauSupport libvdpau;
+    nativeBuildInputs = [ cmake nasm pkg-config gnutls ];
+  };
+
+  # We can build these externally but FindLibDvd.cmake forces us to build it
+  # them, so we currently just use them for the src.
+  libdvdcss = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "libdvdcss";
+    rev = "1.4.2-${rel}-Beta-5";
+    sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
+  };
+
+  libdvdnav = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "libdvdnav";
+    rev = "6.0.0-${rel}-Alpha-3";
+    sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
+  };
+
+  libdvdread = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "libdvdread";
+    rev = "6.0.0-${rel}-Alpha-3";
+    sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
+  };
+
+  kodi_platforms = lib.optional gbmSupport "gbm"
+    ++ lib.optional waylandSupport "wayland"
+    ++ lib.optional x11Support "x11";
+
+in stdenv.mkDerivation {
+    pname = "kodi";
+    version = kodiVersion;
+
+    src = kodi_src;
+
+    buildInputs = [
+      gnutls libidn libtasn1 nasm p11-kit
+      libxml2 python3Packages.python
+      boost libmicrohttpd
+      gettext pcre-cpp yajl fribidi libva libdrm
+      openssl gperf tinyxml2 taglib libssh
+      gtest ncurses spdlog
+      alsaLib libGL libGLU fontconfig freetype ftgl
+      libjpeg libpng libtiff
+      libmpeg2 libsamplerate libmad
+      libogg libvorbis flac libxslt systemd
+      lzo libcdio libmodplug libass libbluray
+      sqlite libmysqlclient avahi lame
+      curl bzip2 zip unzip glxinfo
+      libcec libcec_platform dcadec libuuid
+      libgcrypt libgpgerror libunistring
+      libcrossguid libplist
+      bluez giflib glib harfbuzz lcms2 libpthreadstubs
+      ffmpeg flatbuffers fmt fstrcmp rapidjson
+      lirc
+    ]
+    ++ lib.optional x11Support [
+      libX11 xorgproto libXt libXmu libXext.dev libXdmcp
+      libXinerama libXrandr.dev libXtst libXfixes
+    ]
+    ++ lib.optional  dbusSupport     dbus
+    ++ lib.optional  joystickSupport cwiid
+    ++ lib.optional  nfsSupport      libnfs
+    ++ lib.optional  pulseSupport    libpulseaudio
+    ++ lib.optional  rtmpSupport     rtmpdump
+    ++ lib.optional  sambaSupport    samba
+    ++ lib.optional  udevSupport     udev
+    ++ lib.optional  usbSupport      libusb-compat-0_1
+    ++ lib.optional  vdpauSupport    libvdpau
+    ++ lib.optionals waylandSupport [
+      wayland
+      waylandpp.dev
+      wayland-protocols
+      # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
+      libxkbcommon.dev
+    ]
+    ++ lib.optional gbmSupport [
+      libxkbcommon.dev
+      mesa.dev
+      libinput.dev
+    ];
+
+    nativeBuildInputs = [
+      cmake
+      doxygen
+      makeWrapper
+      which
+      pkg-config gnumake
+      autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
+      jre_headless yasm gettext python3Packages.python flatbuffers
+
+      # for TexturePacker
+      giflib zlib libpng libjpeg lzo
+    ] ++ lib.optionals waylandSupport [ wayland-protocols waylandpp.bin ];
+
+    depsBuildBuild = [
+      buildPackages.stdenv.cc
+    ];
+
+    cmakeFlags = [
+      "-DAPP_RENDER_SYSTEM=${if gbmSupport then "gles" else "gl"}"
+      "-Dlibdvdcss_URL=${libdvdcss}"
+      "-Dlibdvdnav_URL=${libdvdnav}"
+      "-Dlibdvdread_URL=${libdvdread}"
+      "-DGIT_VERSION=${kodiReleaseDate}"
+      "-DENABLE_EVENTCLIENTS=ON"
+      "-DENABLE_INTERNAL_CROSSGUID=OFF"
+      "-DENABLE_OPTICAL=ON"
+      "-DLIRC_DEVICE=/run/lirc/lircd"
+      "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
+      "-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
+      "-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
+    ] ++ lib.optional waylandSupport [
+      "-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
+    ];
+
+    # 14 tests fail but the biggest issue is that every test takes 30 seconds -
+    # I'm guessing there is a thing waiting to time out
+    doCheck = false;
+
+    preConfigure = ''
+      cmakeFlagsArray+=("-DCORE_PLATFORM_NAME=${lib.concatStringsSep " " kodi_platforms}")
+    '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+      # Need these tools on the build system when cross compiling,
+      # hacky, but have found no other way.
+      CXX=${stdenv.cc.targetPrefix}c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
+      cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
+
+      CXX=${stdenv.cc.targetPrefix}c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
+      cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
+    '';
+
+    postPatch = ''
+      substituteInPlace xbmc/platform/posix/PosixTimezone.cpp \
+        --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
+    '';
+
+    postInstall = ''
+      for p in $(ls $out/bin/) ; do
+        wrapProgram $out/bin/$p \
+          --prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ]
+            ++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \
+          --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
+              ([ curl systemd libmad libvdpau libcec libcec_platform libass ]
+                 ++ lib.optional nfsSupport libnfs
+                 ++ lib.optional rtmpSupport rtmpdump)}"
+      done
+
+      substituteInPlace $out/share/xsessions/kodi.desktop \
+        --replace kodi-standalone $out/bin/kodi-standalone
+    '';
+
+    doInstallCheck = true;
+
+    installCheckPhase = "$out/bin/kodi --version";
+
+    passthru = {
+      pythonPackages = python3Packages;
+      ffmpeg = ffmpeg;
+    };
+
+    meta = with lib; {
+      description = "Media center";
+      homepage    = "https://kodi.tv/";
+      license     = licenses.gpl2Plus;
+      platforms   = platforms.linux;
+      maintainers = teams.kodi.members;
+    };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi/wrapper.nix b/nixpkgs/pkgs/applications/video/kodi/wrapper.nix
index 80a36df3de74..86164682138d 100644
--- a/nixpkgs/pkgs/applications/video/kodi/wrapper.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/wrapper.nix
@@ -1,11 +1,14 @@
-{ lib, makeWrapper, buildEnv, kodi, plugins }:
+{ lib, makeWrapper, buildEnv, kodi, addons }:
 
 let
-  drvName = builtins.parseDrvName kodi.name;
-in buildEnv {
-  name = "${drvName.name}-with-plugins-${drvName.version}";
+  # linux distros are supposed to provide pillow and pycryptodome
+  requiredPythonPackages = with kodi.pythonPackages; [ pillow pycryptodome] ++ addons;
+in
 
-  paths = [ kodi ] ++ plugins;
+buildEnv {
+  name = "${kodi.name}-env";
+
+  paths = [ kodi ] ++ addons;
   pathsToLink = [ "/share" ];
 
   buildInputs = [ makeWrapper ];
@@ -15,16 +18,11 @@ in buildEnv {
     for exe in kodi{,-standalone}
     do
       makeWrapper ${kodi}/bin/$exe $out/bin/$exe \
-        --prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath plugins} \
+        --prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath requiredPythonPackages} \
         --prefix KODI_HOME : $out/share/kodi \
         --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
           (lib.concatMap
-            (plugin: plugin.extraRuntimeDependencies or []) plugins)}"
+            (plugin: plugin.extraRuntimeDependencies or []) addons)}"
     done
   '';
-
-  meta = kodi.meta // {
-    description = kodi.meta.description
-                + " (with plugins: ${lib.concatMapStringsSep ", " (x: x.name) plugins})";
-  };
 }
diff --git a/nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch b/nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch
deleted file mode 100644
index 62d5d0c0d4c0..000000000000
--- a/nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/plugin.video.yatp/server.py b/plugin.video.yatp/server.py
-index 1adcbb5..488b72c 100644
---- a/plugin.video.yatp/server.py
-+++ b/plugin.video.yatp/server.py
-@@ -20,24 +20,8 @@ addon = Addon()
- _ = addon.initialize_gettext()
- addon.log_notice('Starting Torrent Server...')
- 
--# A monkey-patch to set the necessary librorrent version
--librorrent_addon = Addon('script.module.libtorrent')
--orig_custom_version = librorrent_addon.get_setting('custom_version', False)
--orig_set_version = librorrent_addon.get_setting('set_version', False)
--librorrent_addon.set_setting('custom_version', 'true')
--if addon.libtorrent_version == '1.0.9':
--    librorrent_addon.set_setting('set_version', '4')
--elif addon.libtorrent_version == '1.1.0':
--    librorrent_addon.set_setting('set_version', '5')
--elif addon.libtorrent_version == '1.1.1':
--    librorrent_addon.set_setting('set_version', '6')
--else:
--    librorrent_addon.set_setting('set_version', '0')
--
- from libs.server import wsgi_app
- 
--librorrent_addon.set_setting('custom_version', orig_custom_version)
--librorrent_addon.set_setting('set_version', orig_set_version)
- # ======
- 
- if addon.enable_limits:
diff --git a/nixpkgs/pkgs/applications/video/lightworks/default.nix b/nixpkgs/pkgs/applications/video/lightworks/default.nix
index 1776aab00336..0312c34bf702 100644
--- a/nixpkgs/pkgs/applications/video/lightworks/default.nix
+++ b/nixpkgs/pkgs/applications/video/lightworks/default.nix
@@ -30,7 +30,8 @@ let
         }
       else throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 
-    buildInputs = [ dpkg makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ dpkg ];
 
     phases = [ "unpackPhase" "installPhase" ];
     unpackPhase = "dpkg-deb -x ${src} ./";
diff --git a/nixpkgs/pkgs/applications/video/makemkv/default.nix b/nixpkgs/pkgs/applications/video/makemkv/default.nix
index cec6468c43be..817daf31d0aa 100644
--- a/nixpkgs/pkgs/applications/video/makemkv/default.nix
+++ b/nixpkgs/pkgs/applications/video/makemkv/default.nix
@@ -13,21 +13,21 @@
 }:
 
 let
-  version = "1.15.4";
+  version = "1.16.3";
   # Using two URLs as the first one will break as soon as a new version is released
   src_bin = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
     ];
-    hash = "sha256-Reun5hp7Rnsf6N5yL6iQ1Vbhnz/AKnt/jYRqyOK625o=";
+    hash = "sha256-G2XceMwiFu4fWT4L3HJzDB/rD3eSX6ko6RdVw72QLzg=";
   };
   src_oss = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
     ];
-    hash = "sha256-gtBi1IRNF5ASk/ZdzkDmOuEIT9gazNaRNCftqbLEP+M=";
+    hash = "sha256-YUGozP9B6vmWQ4WxctSbezzu+0yLJXNKQk9TwnQF8F0=";
   };
 in mkDerivation {
   pname = "makemkv";
diff --git a/nixpkgs/pkgs/applications/video/minitube/default.nix b/nixpkgs/pkgs/applications/video/minitube/default.nix
index a5bd030e470c..84b5e2a1d735 100644
--- a/nixpkgs/pkgs/applications/video/minitube/default.nix
+++ b/nixpkgs/pkgs/applications/video/minitube/default.nix
@@ -1,28 +1,26 @@
 { mkDerivation, lib, fetchFromGitHub, phonon, phonon-backend-vlc, qtbase, qmake
 , qtdeclarative, qttools, qtx11extras, mpv
 
-# "Free" key generated by nckx <github@tobias.gr>. I no longer have a Google
-# account. You'll need to generate (and please share :-) a new one if it breaks.
-, withAPIKey ? "AIzaSyBtFgbln3bu1swQC-naMxMtKh384D3xJZE" }:
+# "Free" key generated by pasqui23
+, withAPIKey ? "AIzaSyBQvZXseEVvgu5Ega_DI-AIJ55v0OsHmVY" }:
 
 mkDerivation rec {
   pname = "minitube";
-  version = "3.6";
+  version = "3.8.1";
 
   src = fetchFromGitHub {
-    sha256 = "6IaBPYL/yGWKUHxPe1FnAR1gDHImXYGItYWq7VNjwEU=";
+    sha256 = "3lpZyPwo4NnxZJKfmCFsH4WdakV4KB5BtCr5xsleeIQ=";
     rev = version;
     repo = "minitube";
     owner = "flaviotordini";
     fetchSubmodules = true;
   };
 
-  buildInputs = [ phonon phonon-backend-vlc qtbase qtdeclarative qtx11extras mpv ];
   nativeBuildInputs = [ qmake qttools ];
 
-  qmakeFlags = [ "DEFINES+=APP_GOOGLE_API_KEY=${withAPIKey}" ];
+  buildInputs = [ phonon phonon-backend-vlc qtbase qtdeclarative qtx11extras mpv ];
 
-  enableParallelBuilding = true;
+  qmakeFlags = [ "DEFINES+=APP_GOOGLE_API_KEY=${withAPIKey}" ];
 
   meta = with lib; {
     description = "Stand-alone YouTube video player";
diff --git a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
index 39d2f1e21cee..d26acfd7c0b5 100644
--- a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
@@ -13,13 +13,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "53.0.0";
+  version = "55.0.0";
 
   src = fetchFromGitLab {
     owner  = "mbunkus";
     repo   = "mkvtoolnix";
     rev    = "release-${version}";
-    sha256 = "04wjs3sgb3gn85gl8y1svx177d1213hswx37zdsj80giw1k5df79";
+    sha256 = "129azp4cpdd05f6072gkxdjj811aqs29nbw6v6qm8vv47gfvjcf7";
   };
 
   nativeBuildInputs = [
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   CXXFLAGS = optional stdenv.cc.isClang "-std=c++17";
+  LDFLAGS = optional stdenv.cc.isClang "-lc++fs";
 
   dontWrapQtApps = true;
   postFixup = optionalString withGUI ''
@@ -60,7 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Cross-platform tools for Matroska";
     homepage    = "http://www.bunkus.org/videotools/mkvtoolnix/";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Only;
     maintainers = with maintainers; [ codyopel rnhmjoj ];
     platforms   = platforms.linux
       ++ optionals (!withGUI) platforms.darwin;
diff --git a/nixpkgs/pkgs/applications/video/mpv/default.nix b/nixpkgs/pkgs/applications/video/mpv/default.nix
index d4fc07d1a2ee..99cb08a02a0b 100644
--- a/nixpkgs/pkgs/applications/video/mpv/default.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/default.nix
@@ -95,13 +95,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "mpv";
-  version = "0.33.0";
+  version = "0.33.1";
 
   src = fetchFromGitHub {
     owner  = "mpv-player";
     repo   = "mpv";
     rev    = "v${version}";
-    sha256 = "sha256-3l32qQBpvWVjbLp5CZtO039oDQeH7C/cNAKtJxrzlRk=";
+    sha256 = "06rw1f55zcsj78ql8w70j9ljp2qb1pv594xj7q9cmq7i92a7hq45";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/video/mpv/scripts/thumbnail.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/thumbnail.nix
new file mode 100644
index 000000000000..cda15b2674c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/thumbnail.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub, lib, python3, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "mpv_thumbnail_script";
+  version = "unstable-2020-01-16";
+
+  src = fetchFromGitHub {
+    owner = "theamm";
+    repo = pname;
+    rev = "682becf5b5115c2a206b4f0bdee413d4be8b5bef";
+    sha256 = "0dgfrb8ypc5vlq35kzn423fm6l6348ivl85vb6j3ccc9a51xprw3";
+  };
+
+  nativeBuildInputs = [ python3 ];
+
+  postPatch = ''
+    patchShebangs concat_files.py
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/mpv/scripts
+    cp mpv_thumbnail_script_{client_osc,server}.lua $out/share/mpv/scripts
+    runHook postInstall
+  '';
+
+  passthru.scriptName = "mpv_thumbnail_script_{client_osc,server}.lua";
+
+  meta = with lib; {
+    description = "A lua script to show preview thumbnails in mpv's OSC seekbar";
+    homepage = "https://github.com/theamm/mpv_thumbnail_script";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/natron/default.nix b/nixpkgs/pkgs/applications/video/natron/default.nix
index a455869ebf91..bbbcf3d76876 100644
--- a/nixpkgs/pkgs/applications/video/natron/default.nix
+++ b/nixpkgs/pkgs/applications/video/natron/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl, qt4, pkg-config, boost, expat, cairo, python2Packages,
   cmake, flex, bison, pango, librsvg, librevenge, libxml2, libcdr, libzip,
   poppler, imagemagick, openexr, ffmpeg_3, opencolorio, openimageio,
-  qmake4Hook, libpng, libGL, lndir }:
+  qmake4Hook, libpng, libGL, lndir, libraw, openjpeg, libwebp, fetchFromGitHub }:
 
 let
-  minorVersion = "2.1";
-  version = "${minorVersion}.9";
+  minorVersion = "2.3";
+  version = "${minorVersion}.15";
   OpenColorIO-Configs = fetchurl {
-    url = "https://github.com/MrKepzie/OpenColorIO-Configs/archive/Natron-v${minorVersion}.tar.gz";
-    sha256 = "9eec5a02ca80c9cd8e751013cb347ea982fdddd592a4a9215cce462e332dac51";
+    url = "https://github.com/NatronGitHub/OpenColorIO-Configs/archive/Natron-v${minorVersion}.tar.gz";
+    sha256 = "AZK9J+RnMyxOYcAQOAQZj5QciPQ999m6jrtBt5rdpkA=";
   };
   seexpr = stdenv.mkDerivation rec {
     version = "1.0.1";
@@ -20,14 +20,15 @@ let
     nativeBuildInputs = [ cmake ];
     buildInputs = [ libpng flex bison ];
   };
-  buildPlugin = { pluginName, sha256, nativeBuildInputs ? [], buildInputs ? [], preConfigure ? "" }:
+  buildPlugin = { pluginName, sha256, nativeBuildInputs ? [], buildInputs ? [], preConfigure ? "", postPatch ? "" }:
     stdenv.mkDerivation {
-      name = "openfx-${pluginName}-${version}";
+      pname = "openfx-${pluginName}";
+      version = version;
       src = fetchurl {
-        url = "https://github.com/MrKepzie/Natron/releases/download/${version}/openfx-${pluginName}-${version}.tar.xz";
+        url = "https://github.com/NatronGitHub/openfx-${pluginName}/releases/download/Natron-${version}/openfx-${pluginName}-Natron-${version}.tar.xz";
         inherit sha256;
       };
-      inherit nativeBuildInputs buildInputs;
+      inherit nativeBuildInputs buildInputs postPatch;
       preConfigure = ''
         makeFlagsArray+=("CONFIG=release")
         makeFlagsArray+=("PLUGINPATH=$out/Plugins/OFX/Natron")
@@ -42,14 +43,19 @@ let
     url = "https://raw.githubusercontent.com/lvandeve/lodepng/a70c086077c0eaecbae3845e4da4424de5f43361/lodepng.h";
     sha256 = "14drdikd0vws3wwpyqq7zzm5z3kg98svv4q4w0hr45q6zh6hs0bq";
   };
+  cimgversion = "89b9d062ec472df3d33989e6d5d2a8b50ba0775c";
   CImgh = fetchurl {
-    url = "https://raw.githubusercontent.com/dtschump/CImg/572c12d82b2f59ece21be8f52645c38f1dd407e6/CImg.h";
-    sha256 = "0n4qfxj8j6rmj4svf68gg2pzg8d1pb74bnphidnf8i2paj6lwniz";
+    url = "https://raw.githubusercontent.com/dtschump/CImg/${cimgversion}/CImg.h";
+    sha256 = "sha256-NbYpZDNj2oZ+wqoEkRwwCjiujdr+iGOLA0Pa0Ynso6U=";
+  };
+  inpainth = fetchurl {
+    url = "https://raw.githubusercontent.com/dtschump/CImg/${cimgversion}/plugins/inpaint.h";
+    sha256 = "sha256-cd28a3VOs5002GkthHkbIUrxZfKuGhqIYO4Oxe/2HIQ=";
   };
   plugins = map buildPlugin [
     ({
       pluginName = "arena";
-      sha256 = "0qba13vn9qdfax7nqlz1ps27zspr5kh795jp1xvbmwjzjzjpkqkf";
+      sha256 = "tUb6myG03mRieUAfgRZfv5Ap+cLvbpNrLMYCGTiAq8c=";
       nativeBuildInputs = [ pkg-config ];
       buildInputs = [
         pango librsvg librevenge libcdr opencolorio libxml2 libzip
@@ -65,32 +71,37 @@ let
     })
     ({
       pluginName = "io";
-      sha256 = "0s196i9fkgr9iw92c94mxgs1lkxbhynkf83vmsgrldflmf0xjky7";
+      sha256 = "OQg6a5wNy9TFFySjmgd1subvXRxY/ZnSOCkaoUo+ZaA=";
       nativeBuildInputs = [ pkg-config ];
       buildInputs = [
         libpng ffmpeg_3 openexr opencolorio openimageio boost libGL
-        seexpr
+        seexpr libraw openjpeg libwebp
       ];
     })
     ({
       pluginName = "misc";
-      sha256 = "02h79jrll0c17azxj16as1mks3lmypm4m3da4mms9sg31l3n82qi";
+      sha256 = "XkdQyWI9ilF6IoP3yuHulNUZRPLX1m4lq/+RbXsrFEQ=";
       buildInputs = [
         libGL
       ];
-      preConfigure = ''
-        cp ${CImgh} CImg/CImg.h
+      postPatch = ''
+        cp '${inpainth}' CImg/Inpaint/inpaint.h
+        patch -p0 -dCImg < CImg/Inpaint/inpaint.h.patch # taken from the Makefile; it gets skipped if the file already exists
+        cp '${CImgh}' CImg/CImg.h
       '';
     })
   ];
 in
 stdenv.mkDerivation {
   inherit version;
-  name = "natron-${version}";
+  pname = "natron";
 
-  src = fetchurl {
-    url = "https://github.com/MrKepzie/Natron/releases/download/${version}/Natron-${version}.tar.xz";
-    sha256 = "1wdc0zqriw2jhlrhzs6af3kagrv22cm086ffnbr1x43mgc9hfhjp";
+  src = fetchFromGitHub {
+    owner = "NatronGitHub";
+    repo = "Natron";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-KuXJmmIsvwl4uqmAxXqWU+273jsdWrCuUSwWn5vuu8M=";
   };
 
   nativeBuildInputs = [ qmake4Hook pkg-config python2Packages.wrapPython ];
@@ -124,6 +135,5 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = [ maintainers.puffnfresh ];
     platforms = platforms.linux;
-    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
index 9fdb78c70382..caeffa56b178 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/default.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
@@ -17,6 +17,7 @@
 , libv4l
 , x264
 , curl
+, wayland
 , xorg
 , makeWrapper
 , pkg-config
@@ -67,6 +68,7 @@ in mkDerivation rec {
     qtx11extras
     qtsvg
     speex
+    wayland
     x264
     libvlc
     makeWrapper
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix b/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
index d9867b1bb2d2..b35398d65b5c 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
@@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
     "-DCMAKE_CXX_FLAGS=-I${obs-studio.src}/UI/obs-frontend-api"
   ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Network A/V plugin for OBS Studio";
     homepage = "https://github.com/Palakis/obs-ndi";
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix b/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix
index eb8e41868822..2716120682ea 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ qtbase obs-studio ];
 
+  dontWrapQtApps = true;
+
   patches = [
     # Fixes the segfault when stopping the plugin
     (fetchpatch {
diff --git a/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
index 2070d05d9806..169bd33b7095 100644
--- a/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
+++ b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
@@ -41,6 +41,8 @@ stdenv.mkDerivation rec {
     ++ optional stdenv.isDarwin llvmPackages.openmp
   ;
 
+  dontWrapQtApps = true;
+
   LIBOPENSHOT_AUDIO_DIR = libopenshot-audio;
   "UNITTEST++_INCLUDE_DIR" = "${unittest-cpp}/include/UnitTest++";
 
diff --git a/nixpkgs/pkgs/applications/video/pitivi/default.nix b/nixpkgs/pkgs/applications/video/pitivi/default.nix
index e388d5a67fe6..45c96fb180d3 100644
--- a/nixpkgs/pkgs/applications/video/pitivi/default.nix
+++ b/nixpkgs/pkgs/applications/video/pitivi/default.nix
@@ -1,5 +1,4 @@
 { lib
-, fetchFromGitHub
 , fetchurl
 , pkg-config
 , gettext
diff --git a/nixpkgs/pkgs/applications/video/qstopmotion/default.nix b/nixpkgs/pkgs/applications/video/qstopmotion/default.nix
index 53b46ceeb071..9a5bb5eb4620 100644
--- a/nixpkgs/pkgs/applications/video/qstopmotion/default.nix
+++ b/nixpkgs/pkgs/applications/video/qstopmotion/default.nix
@@ -24,11 +24,11 @@
 
 mkDerivation rec {
   pname = "qstopmotion";
-  version = "2.4.1";
+  version = "2.5.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${pname}/Version_${builtins.replaceStrings ["."] ["_"] version}/${pname}-${version}-Source.tar.gz";
-    sha256 = "03r6jxyq0bak2vsy2b78nk27m7fm96hnl8cx11l3l17704j4iglh";
+    sha256 = "sha256-jyBUyadkSuQKXOrr5XZ1jy6of1Qw8S2HPxuOrPc7RnE=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/quvi/tool.nix b/nixpkgs/pkgs/applications/video/quvi/tool.nix
index 6718fc1dc36d..87c8066a976c 100644
--- a/nixpkgs/pkgs/applications/video/quvi/tool.nix
+++ b/nixpkgs/pkgs/applications/video/quvi/tool.nix
@@ -9,8 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1h52s265rp3af16dvq1xlscp2926jqap2l4ah94vrfchv6m1hffb";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ lua5 curl quvi_scripts libquvi glib makeWrapper ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ lua5 curl quvi_scripts libquvi glib ];
   postInstall = ''
       wrapProgram $out/bin/quvi --set LUA_PATH "${lua5_sockets}/share/lua/${lua5.luaversion}/?.lua"
   '';
diff --git a/nixpkgs/pkgs/applications/video/shotcut/default.nix b/nixpkgs/pkgs/applications/video/shotcut/default.nix
index b8e07e9c3ef0..24cb3769aaca 100644
--- a/nixpkgs/pkgs/applications/video/shotcut/default.nix
+++ b/nixpkgs/pkgs/applications/video/shotcut/default.nix
@@ -25,13 +25,13 @@ assert lib.versionAtLeast mlt.version "6.24.0";
 
 mkDerivation rec {
   pname = "shotcut";
-  version = "21.01.29";
+  version = "21.02.27";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${version}";
-    sha256 = "0Q+63IRY4UbiYS+IMnn7hlr6w3IYtWynjBfTBvtWBMo=";
+    sha256 = "bcuJz27jDAB3OPEKq3xNgfv6C31UoMKosS4YIRZNMjM=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/video/smplayer/default.nix b/nixpkgs/pkgs/applications/video/smplayer/default.nix
index a8d2aaaff0ee..007ef4262ef2 100644
--- a/nixpkgs/pkgs/applications/video/smplayer/default.nix
+++ b/nixpkgs/pkgs/applications/video/smplayer/default.nix
@@ -1,26 +1,53 @@
-{ lib, mkDerivation, fetchurl, qmake, qtscript }:
+{ lib
+, stdenv
+, fetchurl
+, qmake
+, qtscript
+, wrapQtAppsHook
+}:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "smplayer";
-  version = "20.6.0";
+  version = "21.1.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0c59gfgm2ya8yb2nx7gy1zc0nrr4206213xy86y7jw0bk9mmjxmy";
+    hash = "sha256-Y0uq32XoQ8fpIJDScRfA7p3RYd6x1PWZSsYyAYYKf/c=";
   };
 
+  nativeBuildInputs = [ qmake wrapQtAppsHook ];
   buildInputs = [ qtscript ];
-  nativeBuildInputs = [ qmake ];
 
   dontUseQmakeConfigure = true;
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
 
-  meta = {
-    description = "A complete front-end for MPlayer";
-    longDescription = "Either mplayer or mpv should also be installed for smplayer to play medias";
+  meta = with lib; {
     homepage = "https://www.smplayer.info";
-    license = lib.licenses.gpl3Plus;
-    platforms = lib.platforms.linux;
+    description = "A complete front-end for MPlayer";
+    longDescription = ''
+      SMPlayer is a free media player for Windows and Linux with built-in codecs
+      that can play virtually all video and audio formats. It doesn't need any
+      external codecs. Just install SMPlayer and you'll be able to play all
+      formats without the hassle to find and install codec packs.
+
+      One of the most interesting features of SMPlayer: it remembers the
+      settings of all files you play. So you start to watch a movie but you have
+      to leave... don't worry, when you open that movie again it will be resumed
+      at the same point you left it, and with the same settings: audio track,
+      subtitles, volume...
+
+      SMPlayer is a graphical user interface (GUI) for the award-winning
+      MPlayer, which is capable of playing almost all known video and audio
+      formats. But apart from providing access for the most common and useful
+      options of MPlayer, SMPlayer adds other interesting features like the
+      possibility to play Youtube videos or download subtitles.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
+# TODO [ AndersonTorres ]: some form of wrapping mplayer/mpv around it
diff --git a/nixpkgs/pkgs/applications/video/sub-batch/default.nix b/nixpkgs/pkgs/applications/video/sub-batch/default.nix
index 070bcc90685f..9cda6eb0a2b0 100644
--- a/nixpkgs/pkgs/applications/video/sub-batch/default.nix
+++ b/nixpkgs/pkgs/applications/video/sub-batch/default.nix
@@ -1,21 +1,29 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , fetchFromGitHub
 , rustPlatform
+, makeWrapper
+, alass
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "sub-batch";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "kl";
     repo = pname;
-    # Upstream doesn't tag releases.
-    rev = "631bd6e2d931f8a8e12798f4b6460739a14bcfff";
-    sha256 = "sha256-424e40v2LBxlmgDKxvsT/iuUn/IKWPKMwih0cSQ5sFE=";
+    rev = "v${version}";
+    sha256 = "sha256-5fDnSmnnVB1RGrNrnmp40OGFF+OAhppnhOjVgnYxXr0=";
   };
 
-  cargoSha256 = "sha256-l+BTF9PGb8bG8QHhNCoBsrsVX8nlRjPlaea1ESFfMW0=";
+  cargoSha256 = "sha256-cj1htJcUPCeYbP0t15UcMv4WQAG7tUROb97v4rUeMvU=";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/sub-batch" --prefix PATH : "${lib.makeBinPath [ alass ]}"
+  '';
 
   meta = with lib; {
     description = "Match and rename subtitle files to video files and perform other batch operations on subtitle files";
diff --git a/nixpkgs/pkgs/applications/video/tartube/default.nix b/nixpkgs/pkgs/applications/video/tartube/default.nix
index 3619d4ee5e32..69f777541a46 100644
--- a/nixpkgs/pkgs/applications/video/tartube/default.nix
+++ b/nixpkgs/pkgs/applications/video/tartube/default.nix
@@ -15,13 +15,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tartube";
-  version = "2.3.085";
+  version = "2.3.110";
 
   src = fetchFromGitHub {
     owner = "axcore";
     repo = "tartube";
     rev = "v${version}";
-    sha256 = "bkz64nj6748552ZMRcL/I1lUXGpZjaATUEqv3Kkphck=";
+    sha256 = "0sdbd2lsc4bvgkwi55arjwbzwmq05abfmv6vsrvz4gsdv8s8wha5";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/vlc/default.nix b/nixpkgs/pkgs/applications/video/vlc/default.nix
index f79899259602..adb7ba970e29 100644
--- a/nixpkgs/pkgs/applications/video/vlc/default.nix
+++ b/nixpkgs/pkgs/applications/video/vlc/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread
     libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt libgpgerror
     libupnp libcaca libpulseaudio flac schroedinger libxml2 librsvg mpeg2dec
-    systemd gnutls avahi libcddb SDL SDL_image libmtp unzip taglib libarchive
+    systemd gnutls avahi libcddb SDL SDL_image libmtp taglib libarchive
     libkate libtiger libv4l samba libssh2 liboggz libass libdvbpsi libva
     xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms
     libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     ++ optional jackSupport libjack2
     ++ optionals chromecastSupport [ protobuf libmicrodns ];
 
-  nativeBuildInputs = [ autoreconfHook perl pkg-config removeReferencesTo ]
+  nativeBuildInputs = [ autoreconfHook perl pkg-config removeReferencesTo unzip ]
     ++ optionals withQt5 [ wrapQtAppsHook ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix b/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
index ac3dd320d3a3..7660edcc7683 100644
--- a/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -1,6 +1,6 @@
 {
   alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fetchzip, fontconfig, freetype,
-  gdk-pixbuf, glib, gnome3, libX11, libXScrnSaver, libXcomposite, libXcursor,
+  gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor,
   libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst,
   libxcb, nspr, nss, lib, stdenv, udev, libuuid, pango, at-spi2-atk, at-spi2-core
 }:
@@ -19,7 +19,7 @@
     freetype
     gdk-pixbuf
     glib
-    gnome3.gtk
+    gtk3
     pango
     libuuid
     libX11
diff --git a/nixpkgs/pkgs/applications/video/xplayer/default.nix b/nixpkgs/pkgs/applications/video/xplayer/default.nix
new file mode 100644
index 000000000000..d3f87f879c59
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/xplayer/default.nix
@@ -0,0 +1,103 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, autoconf-archive
+, clutter-gst
+, clutter-gtk
+, gettext
+, glib
+, gobject-introspection
+, gst-plugins-bad
+, gst-plugins-base
+, gst-plugins-good
+, gstreamer
+, gtk-doc
+, gtk3
+, intltool
+, itstool
+, libpeas
+, libxml2
+, libxplayer-plparser
+, pkg-config
+, python3
+, wrapGAppsHook
+, xapps
+, yelp-tools }:
+
+let
+  pythonenv = python3.withPackages (ps: [
+    ps.pygobject3
+    ps.dbus-python # For one plugin
+  ]);
+in
+
+stdenv.mkDerivation rec {
+  pname = "xplayer";
+  version = "2.4.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "1xcv6nr2gc0vji5afwy283v7bgx46kzgrq79hl8q9pz995qq2kbp";
+  };
+
+  # configure wants to find gst-inspect-1.0 via pkgconfig but
+  # the gstreamer toolsdir points to the wrong derivation output
+  postPatch = ''
+    substituteInPlace configure.ac \
+                      --replace '$gst10_toolsdir/gst-inspect-1.0' '${gstreamer.dev}/bin/gst-inspect-1.0' \
+  '';
+
+  preBuild = ''
+    makeFlagsArray+=(
+      "INCLUDES=-I${glib.dev}/include/gio-unix-2.0"
+      "CFLAGS=-Wno-error" # Otherwise a lot of deprecated warnings are treated as error
+    )
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook
+    wrapGAppsHook
+    autoconf-archive
+    gettext
+    gtk-doc
+    intltool
+    itstool
+    pkg-config
+    yelp-tools
+  ];
+
+  buildInputs = [
+    clutter-gst
+    clutter-gtk
+    glib
+    gobject-introspection
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gstreamer
+    gtk3
+    libpeas
+    libxml2
+    libxplayer-plparser
+    pythonenv
+    xapps
+    # to satisfy configure script
+    pythonenv.pkgs.pygobject3
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/xplayer \
+                --prefix PATH : ${lib.makeBinPath [ pythonenv ]}
+  '';
+
+  meta = with lib; {
+    description = "A generic media player from Linux Mint";
+    license = with licenses; [ gpl2Plus lgpl21Plus ];
+    homepage = "https://github.com/linuxmint/xplayer";
+    maintainers = with maintainers; [ tu-maurice ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/xplayer/plparser.nix b/nixpkgs/pkgs/applications/video/xplayer/plparser.nix
new file mode 100644
index 000000000000..da3daa445f6a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/xplayer/plparser.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, intltool
+, gobject-introspection
+, gmime
+, libxml2
+, libsoup
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xplayer-plparser";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "1i7sld8am6b1wwbpfb18v7qp17vk2a5p8xcfds50yznr30lddsb2";
+  };
+
+  nativeBuildInputs = [
+    intltool
+    pkg-config
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    gmime
+    libxml2
+    libsoup
+  ];
+
+  meta = with lib; {
+    description = "Playlist parsing library for xplayer";
+    homepage = "https://github.com/linuxmint/xplayer-plparser";
+    maintainers = with maintainers; [ tu-maurice ];
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/xscast/default.nix b/nixpkgs/pkgs/applications/video/xscast/default.nix
index 49f5b43bb734..6501a3990885 100644
--- a/nixpkgs/pkgs/applications/video/xscast/default.nix
+++ b/nixpkgs/pkgs/applications/video/xscast/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "0br27bq9bpglfdpv63h827bipgvhlh10liyhmhcxls4227kagz72";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     runHook preInstall
diff --git a/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix b/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
index 14d8d0c13fe6..aed59e05a980 100644
--- a/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
@@ -1,6 +1,7 @@
 { stdenv, lib, edk2, util-linux, nasm, iasl
 , csmSupport ? false, seabios ? null
 , secureBoot ? false
+, httpSupport ? false
 }:
 
 assert csmSupport -> seabios != null;
@@ -30,7 +31,8 @@ edk2.mkDerivation projectDscPath {
 
   buildFlags =
     lib.optional secureBoot "-DSECURE_BOOT_ENABLE=TRUE"
-    ++ lib.optionals csmSupport [ "-D CSM_ENABLE" "-D FD_SIZE_2MB" ];
+    ++ lib.optionals csmSupport [ "-D CSM_ENABLE" "-D FD_SIZE_2MB" ]
+    ++ lib.optionals httpSupport [ "-DNETWORK_HTTP_ENABLE=TRUE" "-DNETWORK_HTTP_BOOT_ENABLE=TRUE" ];
 
   postPatch = lib.optionalString csmSupport ''
     cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin
diff --git a/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix b/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix
index 2d865f418187..13b27c7d6cc1 100644
--- a/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix
@@ -22,5 +22,6 @@ mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ hrdinka ];
     platforms = with platforms; linux;
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/catatonit/default.nix b/nixpkgs/pkgs/applications/virtualization/catatonit/default.nix
new file mode 100644
index 000000000000..c44db31f50cb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/catatonit/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, glibc, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "catatonit";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "openSUSE";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "ciJ1MI7jr5P2PgxIykQ+BiwNUO8lQHGt0+U8CNbc5bI=";
+  };
+
+  patches = [
+    # Fix compilation with musl
+    (fetchpatch {
+      url = "https://github.com/openSUSE/catatonit/commit/75014b1c3099245b7d0f44f24d7f6dc4888a45fd.patch";
+      sha256 = "sha256-9VMNUT1U90ocjvE7EXYfLxuodDwTXXHYg89qqa5Jq0g=";
+    })
+  ];
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    readelf -d $out/bin/catatonit | grep 'There is no dynamic section in this file.'
+  '';
+
+  passthru.tests = { inherit (nixosTests) podman; };
+
+  meta = with lib; {
+    description = "A container init that is so simple it's effectively brain-dead";
+    homepage = "https://github.com/openSUSE/catatonit";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ erosennin ] ++ teams.podman.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix b/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
index 9e866d7cf4dc..3e9029cce0a6 100644
--- a/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
 
-  version = "0.21";
+  version = "0.22";
   pname = "charliecloud";
 
   src = fetchFromGitHub {
     owner = "hpc";
     repo = "charliecloud";
     rev = "v${version}";
-    sha256 = "Y/tH6Znq//HBA/FHfIm2Wpppx6TiL7CqKtZFDc/XSNc=";
+    sha256 = "sha256-+9u7WRKAJ9F70+I68xNRck5Q22XzgLKTCnjGbIcsyW8=";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
deleted file mode 100644
index 7a7378faa58b..000000000000
--- a/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index e566ed25..a661a963 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -689,7 +689,7 @@ dependencies = [
-  "serde",
-  "serde_derive",
-  "serde_json",
-- "vfio-bindings 0.2.0 (git+https://github.com/rust-vmm/vfio-bindings)",
-+ "vfio-bindings",
-  "vfio-ioctls",
-  "vm-allocator",
-  "vm-device",
-@@ -1346,17 +1346,12 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
- [[package]]
- name = "vfio-bindings"
- version = "0.2.0"
--source = "git+https://github.com/rust-vmm/vfio-bindings#f08cbcbf4041c981441d9c036c49ebad5098ed1c"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4a21f546f2bda37f5a8cfb138c87f95b8e34d2d78d6a7a92ba3785f4e08604a7"
- dependencies = [
-  "vmm-sys-util",
- ]
- 
--[[package]]
--name = "vfio-bindings"
--version = "0.2.0"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "4a21f546f2bda37f5a8cfb138c87f95b8e34d2d78d6a7a92ba3785f4e08604a7"
--
- [[package]]
- name = "vfio-ioctls"
- version = "0.1.0"
-@@ -1366,7 +1361,7 @@ dependencies = [
-  "kvm-bindings",
-  "kvm-ioctls",
-  "log 0.4.8",
-- "vfio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "vfio-bindings",
-  "vm-memory",
-  "vmm-sys-util",
- ]
-diff --git a/pci/Cargo.toml b/pci/Cargo.toml
-index 9c6955c7..4ecf8e6b 100644
---- a/pci/Cargo.toml
-+++ b/pci/Cargo.toml
-@@ -23,5 +23,5 @@ vm-memory = "0.2.1"
- vm-migration = { path = "../vm-migration" }
- 
- [dependencies.vfio-bindings]
--git = "https://github.com/rust-vmm/vfio-bindings"
-+version = "0.2.0"
- features = ["fam-wrappers"]
diff --git a/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
index 32d5be13d3b7..5a12be3afa6c 100644
--- a/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -1,28 +1,27 @@
-{ lib, fetchFromGitHub, rustPlatform, pkg-config, openssl }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, dtc, openssl }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cloud-hypervisor";
-  version = "0.8.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "cloud-hypervisor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "h2aWWjycTm84TS89/vhqnAvwOqeeSDtvvCt+Is6I0eI=";
+    sha256 = "0pnfg6dzpz8v40cwg3dmlj52x8pblavv7mkczar814dwbk01y7vr";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ];
+  buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc;
 
-  cargoPatches = [ ./cargo-lock-vendor-fix.patch ];
-  cargoSha256 = "fOIB+qVDqAAgQPW3bK2NfST24GzYJeRXgaMFXyNPcPQ=";
+  cargoSha256 = "0dbjds40znly11i0ssfv66w82ynxp00ixw1349m5ln9i9ms94sr4";
 
   meta = with lib; {
     homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
     description = "Open source Virtual Machine Monitor (VMM) that runs on top of KVM";
     changelog = "https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v${version}";
     license = with licenses; [ asl20 bsd3 ];
-    maintainers = with maintainers; [ offline ];
-    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ offline qyliss ];
+    platforms = [ "aarch64-linux" "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/cntr/default.nix b/nixpkgs/pkgs/applications/virtualization/cntr/default.nix
index 2283b45aee47..9b57be87e443 100644
--- a/nixpkgs/pkgs/applications/virtualization/cntr/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/cntr/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cntr";
-  version = "1.4.1";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "cntr";
     rev = version;
-    sha256 = "sha256-4ogyOKuz6702/sOQNvE+UP+cvQrPPU3VjL4b0FUfRNw=";
+    sha256 = "sha256-z+0bSxoLJTK4e5xS4CHZ2hNUI56Ci1gbWJsRcN6ZqZA=";
   };
 
-  cargoSha256 = "sha256-lblvun2T1qpFiowld77Ti2MFPzhs5pOWWRbErORXYCM=";
+  cargoSha256 = "sha256-o8o/ixjYdnezQZEp78brjmR2lvQbiwCJr4Y97tHiYbk=";
 
   meta = with lib; {
     description = "A container debugging tool based on FUSE";
diff --git a/nixpkgs/pkgs/applications/virtualization/conmon/default.nix b/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
index e5df1c655d88..5e84b883b6e6 100644
--- a/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "conmon";
-  version = "2.0.26";
+  version = "2.0.27";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-q2lh02iZ7FDBPjtoKY5p3c6Vcn9Ey8DCMn/Oe7/74ug=";
+    sha256 = "sha256-LMvhSoKd652XVPzuId8Ortf0f08FUP1zCn06PgtRwkA=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -27,7 +27,9 @@ stdenv.mkDerivation rec {
   makeFlags = [ "bin/conmon" ];
 
   installPhase = ''
+    runHook preInstall
     install -D bin/conmon -t $out/bin
+    runHook postInstall
   '';
 
   passthru.tests = { inherit (nixosTests) cri-o podman; };
diff --git a/nixpkgs/pkgs/applications/virtualization/containerd/default.nix b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
index 695109fd8a40..8a4302de64fa 100644
--- a/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
@@ -10,13 +10,13 @@
 
 buildGoPackage rec {
   pname = "containerd";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    sha256 = "09xvhjg5f8h90w1y94kqqnqzhbhd62dcdd9wb9sdqakisjk6zrl0";
+    sha256 = "0qjbfj1dw6pykxhh8zahcxlgpyjzgnrngk5vjaf34akwyan8nrxb";
   };
 
   goPackagePath = "github.com/containerd/containerd";
@@ -40,13 +40,8 @@ buildGoPackage rec {
   installPhase = ''
     install -Dm555 bin/* -t $out/bin
     installManPage man/*.[1-9]
-  '';
-
-  # completion installed separately so it can be overridden in docker
-  # can be moved to installPhase when docker uses containerd >= 1.4
-  postInstall = ''
-    installShellFiles --bash contrib/autocomplete/ctr
-    installShellFiles --zsh --name _ctr contrib/autocomplete/zsh_autocomplete
+    installShellCompletion --bash contrib/autocomplete/ctr
+    installShellCompletion --zsh --name _ctr contrib/autocomplete/zsh_autocomplete
   '';
 
   passthru.tests = { inherit (nixosTests) docker; };
diff --git a/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix b/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
index 995053715072..d3a440fefc58 100644
--- a/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
@@ -15,13 +15,13 @@
 
 buildGoModule rec {
   pname = "cri-o";
-  version = "1.20.0";
+  version = "1.20.1";
 
   src = fetchFromGitHub {
     owner = "cri-o";
     repo = "cri-o";
     rev = "v${version}";
-    sha256 = "sha256-3rougAl0vVH01ulbnfIO2x8OCyofWlvVsvlKjoAD2NE=";
+    sha256 = "sha256-cli/ipWxZgAeDMBUMuOU3l2mKv4POvOhi7ctbVdU6jc=";
   };
   vendorSha256 = null;
 
@@ -41,10 +41,13 @@ buildGoModule rec {
 
   BUILDTAGS = "apparmor seccomp selinux containers_image_openpgp containers_image_ostree_stub";
   buildPhase = ''
+    runHook preBuild
     make binaries docs BUILDTAGS="$BUILDTAGS"
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -Dm755 bin/* -t $out/bin
 
     for shell in bash fish zsh; do
@@ -52,6 +55,7 @@ buildGoModule rec {
     done
 
     installManPage docs/*.[1-9]
+    runHook postInstall
   '';
 
   passthru.tests = { inherit (nixosTests) cri-o; };
diff --git a/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix b/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix
index 5aca291a6018..a0a39beeda20 100644
--- a/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix
+++ b/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix
@@ -27,6 +27,8 @@ in runCommand cri-o.name {
   name = "${cri-o.pname}-wrapper-${cri-o.version}";
   inherit (cri-o) pname version passthru;
 
+  preferLocalBuild = true;
+
   meta = builtins.removeAttrs cri-o.meta [ "outputsToInstall" ];
 
   outputs = [
diff --git a/nixpkgs/pkgs/applications/virtualization/crun/default.nix b/nixpkgs/pkgs/applications/virtualization/crun/default.nix
index 3d73ccbf48a2..1aee54c8af82 100644
--- a/nixpkgs/pkgs/applications/virtualization/crun/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/crun/default.nix
@@ -11,6 +11,7 @@
 , yajl
 , nixosTests
 , criu
+, system
 }:
 
 let
@@ -27,6 +28,7 @@ let
     "test_pid_file.py"
     "test_preserve_fds.py"
     "test_resources"
+    "test_seccomp"
     "test_start.py"
     "test_uid_gid.py"
     "test_update.py"
@@ -36,19 +38,21 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "crun";
-  version = "0.17";
+  version = "0.19";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = version;
-    sha256 = "sha256-OdB7UXLG99ErbfSCvq87LxBy5EYkUvTfyQNG70RFbl4=";
+    sha256 = "sha256-G9asWedX03cP5Qg5HIzlSIwwqNL16kiyWairk+6Kabw=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ autoreconfHook go-md2man pkg-config python3 ];
 
-  buildInputs = [ criu libcap libseccomp systemd yajl ];
+  buildInputs = [ libcap libseccomp systemd yajl ]
+    # Criu currently only builds on x86_64-linux
+    ++ lib.optional (lib.elem system criu.meta.platforms) criu;
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix b/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
index 93f5f56ac55a..233ee13ead88 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonApplication rec {
-  version = "1.28.2";
+  version = "1.28.6";
   pname = "docker-compose";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2f148b590414915d029dad7551f4cdf0b03a774dc9baa674480217236d260cc1";
+    sha256 = "1d44906f7ab738ba2d1785130ed31b16111eee6dc5a1dbd7252091dae48c5281";
   };
 
   # lots of networking and other fails
@@ -21,12 +21,12 @@ buildPythonApplication rec {
   nativeBuildInputs = [ installShellFiles ];
   checkInputs = [ mock pytest nose ];
   propagatedBuildInputs = [
-    pyyaml backports_ssl_match_hostname colorama dockerpty docker
+    pyyaml colorama dockerpty docker
     ipaddress jsonschema requests six texttable websocket_client
     docopt cached-property paramiko distro python-dotenv
-  ] ++
-    lib.optional (pythonOlder "3.4") enum34 ++
-    lib.optional (pythonOlder "3.2") functools32;
+  ] ++ lib.optional (pythonOlder "3.7") backports_ssl_match_hostname
+  ++ lib.optional (pythonOlder "3.4") enum34
+  ++ lib.optional (pythonOlder "3.2") functools32;
 
   postPatch = ''
     # Remove upper bound on requires, see also
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/default.nix b/nixpkgs/pkgs/applications/virtualization/docker/default.nix
index 207ebdf2211f..a6f64444f871 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/default.nix
@@ -1,11 +1,11 @@
-{ lib, callPackage }:
+{ lib, callPackage, fetchFromGitHub }:
 
 with lib;
 
 rec {
   dockerGen = {
       version, rev, sha256
-      , mobyRev, mobySha256
+      , moby-src
       , runcRev, runcSha256
       , containerdRev, containerdSha256
       , tiniRev, tiniSha256, buildxSupport ? false
@@ -13,7 +13,7 @@ rec {
       , stdenv, fetchFromGitHub, fetchpatch, buildGoPackage
       , makeWrapper, installShellFiles, pkg-config
       , go-md2man, go, containerd, runc, docker-proxy, tini, libtool
-      , sqlite, iproute, lvm2, systemd, docker-buildx
+      , sqlite, iproute2, lvm2, systemd, docker-buildx
       , btrfs-progs, iptables, e2fsprogs, xz, util-linux, xfsprogs, git
       , procps, libseccomp
       , nixosTests
@@ -65,19 +65,14 @@ rec {
       inherit version;
       inherit docker-runc docker-containerd docker-proxy docker-tini;
 
-      src = fetchFromGitHub {
-        owner = "moby";
-        repo = "moby";
-        rev = mobyRev;
-        sha256 = mobySha256;
-      };
+      src = moby-src;
 
       goPackagePath = "github.com/docker/docker";
 
       nativeBuildInputs = [ makeWrapper pkg-config go-md2man go libtool installShellFiles ];
       buildInputs = [ sqlite lvm2 btrfs-progs systemd libseccomp ];
 
-      extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps util-linux git ]);
+      extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute2 iptables e2fsprogs xz xfsprogs procps util-linux git ]);
 
       buildPhase = ''
         export GOCACHE="$TMPDIR/go-cache"
@@ -211,6 +206,9 @@ rec {
       maintainers = with maintainers; [ offline tailhook vdemeester periklis ];
       platforms = with platforms; linux ++ darwin;
     };
+
+    # Exposed for tarsum build on non-linux systems (build-support/docker/default.nix)
+    inherit moby-src;
   });
 
   # Get revisions from
@@ -219,8 +217,12 @@ rec {
     version = "20.10.2";
     rev = "v${version}";
     sha256 = "0z0hpm5hrqh7p8my8lmiwpym2shs48my6p0zv2cc34wym0hcly51";
-    mobyRev = "v${version}";
-    mobySha256 = "0c2zycpnwj4kh8m8xckv1raj3fx07q9bfaj46rr85jihm4p2dp5w";
+    moby-src = fetchFromGitHub {
+      owner = "moby";
+      repo = "moby";
+      rev = "v${version}";
+      sha256 = "0c2zycpnwj4kh8m8xckv1raj3fx07q9bfaj46rr85jihm4p2dp5w";
+    };
     runcRev = "ff819c7e9184c13b7c2607fe6c30ae19403a7aff"; # v1.0.0-rc92
     runcSha256 = "0r4zbxbs03xr639r7848282j1ybhibfdhnxyap9p76j5w8ixms94";
     containerdRev = "269548fa27e0089a8b8278fc4fc781d7f65a939b"; # v1.4.3
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/gc.nix b/nixpkgs/pkgs/applications/virtualization/docker/gc.nix
index f7bd5a4b0696..52ca54501d75 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/gc.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/gc.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "07wf9yn0f771xkm3x12946x5rp83hxjkd70xgfgy35zvj27wskzm";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix b/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
index 56760c293eb1..e6b83286c00d 100644
--- a/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
@@ -5,7 +5,7 @@
 , git
 , glibcLocales
 , go
-, iproute
+, iproute2
 , iptables
 , makeWrapper
 , procps
@@ -87,7 +87,7 @@ in buildBazelPackage rec {
 
       # Needed for the 'runsc do' subcomand
       wrapProgram $out/bin/runsc \
-        --prefix PATH : ${lib.makeBinPath [ iproute iptables procps ]}
+        --prefix PATH : ${lib.makeBinPath [ iproute2 iptables procps ]}
     '';
   };
 
diff --git a/nixpkgs/pkgs/applications/virtualization/libnvidia-container/default.nix b/nixpkgs/pkgs/applications/virtualization/libnvidia-container/default.nix
index 3ce493c61789..dd16fb4d25a7 100644
--- a/nixpkgs/pkgs/applications/virtualization/libnvidia-container/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/libnvidia-container/default.nix
@@ -20,13 +20,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libnvidia-container";
-  version = "1.3.1";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0j6b8z9x9hrrs4xp11zyjjd7kyl7fzcicpiis8k1qb1q2afnqsrq";
+    sha256 = "0rr6ngkzqgw250nilv36fz7fhsqxcgl4nhld2hnr0sr4ngirqcjp";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
index 1afe994977c0..e56293dcc646 100644
--- a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook,
   fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps, libtirpc, rpcsvc-proto,
   libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst,
-  pkg-config, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute, dbus, systemd, which,
+  pkg-config, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute2, dbus, systemd, which,
   withX ? true }:
 
 stdenv.mkDerivation rec {
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram "$out/etc/vmware-tools/scripts/vmware/network" \
-      --prefix PATH ':' "${lib.makeBinPath [ iproute dbus systemd which ]}"
+      --prefix PATH ':' "${lib.makeBinPath [ iproute2 dbus systemd which ]}"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/virtualization/podman/default.nix b/nixpkgs/pkgs/applications/virtualization/podman/default.nix
index 91d45986f911..b64fc82f532e 100644
--- a/nixpkgs/pkgs/applications/virtualization/podman/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/podman/default.nix
@@ -16,15 +16,19 @@
 
 buildGoModule rec {
   pname = "podman";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman";
     rev = "v${version}";
-    sha256 = "1dsriw2vjzjaddxdhl3wbj2ppnsyi29f4bjwc8lzyz20wfwx4ay4";
+    sha256 = "sha256-Cql9ikk0lo/LeWNykEJSKgfGnBSUU5vOh/zUIEvMapk=";
   };
 
+  patches = [
+    ./remove-unconfigured-runtime-warn.patch
+  ];
+
   vendorSha256 = null;
 
   doCheck = false;
@@ -44,14 +48,18 @@ buildGoModule rec {
   ];
 
   buildPhase = ''
+    runHook preBuild
     patchShebangs .
     ${if stdenv.isDarwin
       then "make podman-remote"
       else "make podman"}
     make docs
+    runHook postBuild
   '';
 
-  installPhase = lib.optionalString stdenv.isDarwin ''
+  installPhase = ''
+    runHook preInstall
+  '' + lib.optionalString stdenv.isDarwin ''
     mv bin/{podman-remote,podman}
   '' + ''
     install -Dm555 bin/podman $out/bin/podman
@@ -59,6 +67,11 @@ buildGoModule rec {
     installShellCompletion --fish completions/fish/*
     installShellCompletion --zsh completions/zsh/*
     MANDIR=$man/share/man make install.man-nobuild
+  '' + lib.optionalString stdenv.isLinux ''
+    install -Dm644 contrib/tmpfile/podman.conf -t $out/lib/tmpfiles.d
+    install -Dm644 contrib/systemd/system/podman.{socket,service} -t $out/lib/systemd/system
+  '' + ''
+    runHook postInstall
   '';
 
   passthru.tests = { inherit (nixosTests) podman; };
diff --git a/nixpkgs/pkgs/applications/virtualization/podman/remove-unconfigured-runtime-warn.patch b/nixpkgs/pkgs/applications/virtualization/podman/remove-unconfigured-runtime-warn.patch
new file mode 100644
index 000000000000..8530cd93cdf3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/podman/remove-unconfigured-runtime-warn.patch
@@ -0,0 +1,23 @@
+Remove warning "WARN[0000] Found default OCIruntime /nix/store/.../bin/crun path which is missing from [engine.runtimes] in containers.conf
+
+It doesn't make sense as we promote using the podman wrapper where runtime paths will vary because they are nix store paths.
+---
+ vendor/github.com/containers/common/pkg/config/config.go | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/vendor/github.com/containers/common/pkg/config/config.go b/vendor/github.com/containers/common/pkg/config/config.go
+index 4a98c7e92..4a95a2a49 100644
+--- a/vendor/github.com/containers/common/pkg/config/config.go
++++ b/vendor/github.com/containers/common/pkg/config/config.go
+@@ -605,8 +605,7 @@ func (c *EngineConfig) findRuntime() string {
+ 				return name
+ 			}
+ 		}
+-		if path, err := exec.LookPath(name); err == nil {
+-			logrus.Warningf("Found default OCIruntime %s path which is missing from [engine.runtimes] in containers.conf", path)
++		if _, err := exec.LookPath(name); err == nil {
+ 			return name
+ 		}
+ 	}
+--
+2.30.0
diff --git a/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix b/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix
index 863888227b37..ae163583e699 100644
--- a/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix
+++ b/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix
@@ -31,6 +31,8 @@ in runCommand podman.name {
   name = "${podman.pname}-wrapper-${podman.version}";
   inherit (podman) pname version passthru;
 
+  preferLocalBuild = true;
+
   meta = builtins.removeAttrs podman.meta [ "outputsToInstall" ];
 
   outputs = [
@@ -46,6 +48,7 @@ in runCommand podman.name {
   ln -s ${podman.man} $man
 
   mkdir -p $out/bin
+  ln -s ${podman-unwrapped}/lib $out/lib
   ln -s ${podman-unwrapped}/share $out/share
   makeWrapper ${podman-unwrapped}/bin/podman $out/bin/podman \
     --prefix PATH : ${binPath}
diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/default.nix b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
index d83c6d350e2e..c04d3b339452 100644
--- a/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
@@ -50,8 +50,9 @@ stdenv.mkDerivation rec {
     sha256 = "1g0pvx4qbirpcn9mni704y03n3lvkmw2c0rbcwvydyr8ns4xh66b";
   };
 
-  nativeBuildInputs = [ python python.pkgs.sphinx pkg-config flex bison meson ninja autoPatchelfHook ]
-    ++ optionals gtkSupport [ wrapGAppsHook ];
+  nativeBuildInputs = [ python python.pkgs.sphinx pkg-config flex bison meson ninja ]
+    ++ optionals gtkSupport [ wrapGAppsHook ]
+    ++ optionals stdenv.isLinux [ autoPatchelfHook ];
   buildInputs =
     [ zlib glib perl pixman
       vde2 texinfo makeWrapper lzo snappy
@@ -76,7 +77,6 @@ stdenv.mkDerivation rec {
     ++ optionals libiscsiSupport [ libiscsi ]
     ++ optionals smbdSupport [ samba ];
 
-  enableParallelBuilding = true;
   dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build
 
   outputs = [ "out" "ga" ];
@@ -101,13 +101,21 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  hardeningDisable = [ "stackprotector" ];
+  # Otherwise tries to ensure /var/run exists.
+  postPatch = ''
+    sed -i "/install_subdir('run', install_dir: get_option('localstatedir'))/d" \
+        qga/meson.build
+  '';
 
   preConfigure = ''
     unset CPP # intereferes with dependency calculation
     # this script isn't marked as executable b/c it's indirectly used by meson. Needed to patch its shebang
     chmod +x ./scripts/shaderinclude.pl
     patchShebangs .
+    # avoid conflicts with libc++ include for <version>
+    mv VERSION QEMU_VERSION
+    substituteInPlace meson.build \
+      --replace "'VERSION'" "'QEMU_VERSION'"
   '' + optionalString stdenv.hostPlatform.isMusl ''
     NIX_CFLAGS_COMPILE+=" -D_LINUX_SYSINFO_H"
   '';
@@ -117,9 +125,9 @@ stdenv.mkDerivation rec {
       "--enable-docs"
       "--enable-tools"
       "--enable-guest-agent"
+      "--localstatedir=/var"
+      "--sysconfdir=/etc"
     ]
-    # disable sysctl check on darwin.
-    ++ optional stdenv.isDarwin "--cpu=x86_64"
     ++ optional numaSupport "--enable-numa"
     ++ optional seccompSupport "--enable-seccomp"
     ++ optional smartcardSupport "--enable-smartcard"
diff --git a/nixpkgs/pkgs/applications/virtualization/qtemu/default.nix b/nixpkgs/pkgs/applications/virtualization/qtemu/default.nix
index 3a5f26bfcc8d..9568a0bb695c 100644
--- a/nixpkgs/pkgs/applications/virtualization/qtemu/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/qtemu/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitLab, pkg-config, qmake, qtbase, qemu, makeWrapper }:
+{ lib, mkDerivation, fetchFromGitLab, pkg-config, qmake, qtbase, qemu }:
 
 mkDerivation rec {
   pname = "qtemu";
diff --git a/nixpkgs/pkgs/applications/virtualization/runc/default.nix b/nixpkgs/pkgs/applications/virtualization/runc/default.nix
index f9fbec9f4bac..152cbf6199b8 100644
--- a/nixpkgs/pkgs/applications/virtualization/runc/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/runc/default.nix
@@ -35,17 +35,21 @@ buildGoPackage rec {
   makeFlags = [ "BUILDTAGS+=seccomp" ];
 
   buildPhase = ''
+    runHook preBuild
     cd go/src/${goPackagePath}
     patchShebangs .
     make ${toString makeFlags} runc man
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -Dm755 runc $out/bin/runc
     installManPage man/*/*.[1-9]
     wrapProgram $out/bin/runc \
       --prefix PATH : ${lib.makeBinPath [ procps ]} \
       --prefix PATH : /run/current-system/systemd/bin
+    runHook postInstall
   '';
 
   passthru.tests = { inherit (nixosTests) cri-o docker podman; };
diff --git a/nixpkgs/pkgs/applications/virtualization/seabios/default.nix b/nixpkgs/pkgs/applications/virtualization/seabios/default.nix
index f97f13dab2a4..42e1eaf56d4d 100644
--- a/nixpkgs/pkgs/applications/virtualization/seabios/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/seabios/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, iasl, python }:
+{ lib, stdenv, fetchurl, iasl, python3 }:
 
 stdenv.mkDerivation rec {
 
@@ -10,7 +10,11 @@ stdenv.mkDerivation rec {
     sha256 = "1zc1brgafbbf5hmdr1qc1p859cabpz73l8sklq83xa4sn9icqw7b";
   };
 
-  buildInputs = [ iasl python ];
+  nativeBuildInputs = [ python3 ];
+
+  buildInputs = [ iasl ];
+
+  strictDeps = true;
 
   hardeningDisable = [ "pic" "stackprotector" "fortify" ];
 
diff --git a/nixpkgs/pkgs/applications/virtualization/singularity/default.nix b/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
index 3bc2df19d1de..28e28fa591a6 100644
--- a/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
@@ -5,7 +5,6 @@
 , openssl
 , libuuid
 , coreutils
-, go
 , which
 , makeWrapper
 , cryptsetup
@@ -16,11 +15,11 @@ with lib;
 
 buildGoPackage rec {
   pname = "singularity";
-  version = "3.7.1";
+  version = "3.7.2";
 
   src = fetchurl {
     url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
-    sha256 = "sha256-gtLGUGNWAZXsNFUZMb48MluV6OIAnpJ1X9farTRuCDw=";
+    sha256 = "sha256-NpFiIuJvuTRATwdm4P82jtrDbX/DHKVx9fYJRmYJBms=";
   };
 
   goPackagePath = "github.com/sylabs/singularity";
diff --git a/nixpkgs/pkgs/applications/virtualization/spike/default.nix b/nixpkgs/pkgs/applications/virtualization/spike/default.nix
index 12dfc713fd2c..054918dabf12 100644
--- a/nixpkgs/pkgs/applications/virtualization/spike/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/spike/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, dtc, nixosTests }:
+{ lib, stdenv, fetchgit, dtc, nixosTests, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "spike";
@@ -13,7 +13,15 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ dtc ];
   enableParallelBuilding = true;
 
-  patchPhase = ''
+  patches = [
+    # Add missing headers to fix build.
+    (fetchpatch {
+      url = "https://github.com/riscv/riscv-isa-sim/commit/b3855682c2d744c613d2ffd6b53e3f021ecea4f3.patch";
+      sha256 = "1v1mpp4iddf5n4h3kmj65g075m7xc31bxww7gldnmgl607ma7cnl";
+    })
+  ];
+
+  postPatch = ''
     patchShebangs scripts/*.sh
     patchShebangs tests/ebreak.py
   '';
diff --git a/nixpkgs/pkgs/applications/virtualization/umoci/default.nix b/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
index bef40bef87b1..82e6ca9086f3 100644
--- a/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
@@ -3,17 +3,18 @@
 , buildGoModule
 , go-md2man
 , installShellFiles
+, bash
 }:
 
 buildGoModule rec {
   pname = "umoci";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "umoci";
     rev = "v${version}";
-    sha256 = "0jaar26l940yh77cs31c3zndiycp85m3fz4zivcibzi68g6n6yzg";
+    sha256 = "0in8kyi4jprvbm3zsl3risbjj8b0ma62yl3rq8rcvcgypx0mn7d4";
   };
 
   vendorSha256 = null;
@@ -25,7 +26,8 @@ buildGoModule rec {
   nativeBuildInputs = [ go-md2man installShellFiles ];
 
   postInstall = ''
-    sed -i '/SHELL =/d' Makefile
+    substituteInPlace Makefile --replace \
+      '$(shell which bash)' '${lib.getBin bash}/bin/bash'
     make docs
     installManPage doc/man/*.[1-9]
   '';
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
index 360e6e36c1af..fe19f1f4a3e0 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
@@ -2,7 +2,7 @@
 , libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL, libcap, libGL
 , libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
 , qttools, qtsvg, qtwayland, pkg-config, which, docbook_xsl, docbook_xml_dtd_43
-, alsaLib, curl, libvpx, nettools, dbus, substituteAll, fetchpatch
+, alsaLib, curl, libvpx, nettools, dbus, substituteAll
 # If open-watcom-bin is not passed, VirtualBox will fall back to use
 # the shipped alternative sources (assembly).
 , open-watcom-bin ? null
@@ -103,6 +103,8 @@ in stdenv.mkDerivation {
       qtPluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix}:${qtwayland.bin}/${qtbase.qtPluginPrefix}";
     })
   ++ [
+    # NOTE: the patch for linux 5.11 can be removed when the next version of VirtualBox is released
+    ./linux-5-11.patch
     ./qtx11extras.patch
   ];
 
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/linux-5-11.patch b/nixpkgs/pkgs/applications/virtualization/virtualbox/linux-5-11.patch
new file mode 100644
index 000000000000..66b70bf0d97e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/linux-5-11.patch
@@ -0,0 +1,12 @@
+diff --git a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+index 7033b45..c8178a6 100644
+--- a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
++++ b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+@@ -39,6 +39,7 @@
+ #endif
+ #include <linux/netdevice.h>
+ #include <linux/etherdevice.h>
++#include <linux/ethtool.h>
+ #include <linux/rtnetlink.h>
+ #include <linux/miscdevice.h>
+ #include <linux/inetdevice.h>
diff --git a/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix b/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix
index b671c1f6fa4d..ea3b87b47e41 100644
--- a/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute2 }:
 stdenv.mkDerivation rec {
   pname = "x11docker";
   version = "6.6.2";
@@ -16,14 +16,14 @@ stdenv.mkDerivation rec {
   installPhase = ''
     install -D x11docker "$out/bin/x11docker";
     wrapProgram "$out/bin/x11docker" \
-      --prefix PATH : "${lib.makeBinPath [ getopt gnugrep gawk ps mount iproute nx-libs xorg.xdpyinfo xorg.xhost xorg.xinit ]}"
+      --prefix PATH : "${lib.makeBinPath [ getopt gnugrep gawk ps mount iproute2 nx-libs xorg.xdpyinfo xorg.xhost xorg.xinit ]}"
   '';
 
   meta = {
     description = "Run graphical applications with Docker";
     homepage = "https://github.com/mviereck/x11docker";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ jD91mZM2 ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/xen/generic.nix b/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
index 5019ce232824..3d0ff3a6f336 100644
--- a/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
+++ b/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
@@ -13,7 +13,7 @@ config:
 
 # Scripts
 , coreutils, gawk, gnused, gnugrep, diffutils, multipath-tools
-, iproute, inetutils, iptables, bridge-utils, openvswitch, nbd, drbd
+, iproute2, inetutils, iptables, bridge-utils, openvswitch, nbd, drbd
 , lvm2, util-linux, procps, systemd
 
 # Documentation
@@ -31,7 +31,7 @@ let
   scriptEnvPath = concatMapStringsSep ":" (x: "${x}/bin") [
     which perl
     coreutils gawk gnused gnugrep diffutils util-linux multipath-tools
-    iproute inetutils iptables bridge-utils openvswitch nbd drbd
+    iproute2 inetutils iptables bridge-utils openvswitch nbd drbd
   ];
 
   withXenfiles = f: concatStringsSep "\n" (mapAttrsToList f config.xenfiles);
diff --git a/nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix b/nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix
deleted file mode 100644
index 937184483405..000000000000
--- a/nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchFromGitHub, libxcb, libXinerama, xcbutil, xcbutilkeysyms, xcbutilwm }:
-
-stdenv.mkDerivation {
-  name = "bspwm-unstable-2016-09-30";
-
-
-  src = fetchFromGitHub {
-    owner   = "baskerville";
-    repo    = "bspwm";
-    rev     = "8664c007e44de162c1597fd7e163635b274fb747";
-    sha256  = "0clvpz32z38i8kr10hqlifa661szpfn93c63m2aq2h4dwmr44slz";
-  };
-
-  buildInputs = [ libxcb libXinerama xcbutil xcbutilkeysyms xcbutilwm ];
-
-  buildPhase = ''
-    make PREFIX=$out
-  '';
-
-  installPhase = ''
-    make PREFIX=$out install
-  '';
-
-  meta = {
-    description = "A tiling window manager based on binary space partitioning (git version)";
-    homepage = "https://github.com/baskerville/bspwm";
-    maintainers = [ lib.maintainers.meisternu lib.maintainers.epitrochoid ];
-    license = lib.licenses.bsd2;
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix b/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
index a4e5d7f70282..93ac815346e4 100644
--- a/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cagebreak";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "project-repo";
     repo = "cagebreak";
     rev = version;
-    hash = "sha256-P6zBVQEv+fKdverNIXhoEavu51uGKbSHx3Sh5FWsc2E=";
+    hash = "sha256-F7fqDVbJS6pVgmj6C1/l9PAaz5yzcYpaq6oc6a6v/Qk=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ];
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dxwayland=${lib.boolToString withXwayland}"
     "-Dversion_override=${version}"
+    "-Dman-pages=true"
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/window-managers/cwm/default.nix b/nixpkgs/pkgs/applications/window-managers/cwm/default.nix
index 69c9cc1c37cb..24c595081573 100644
--- a/nixpkgs/pkgs/applications/window-managers/cwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/cwm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, libX11, libXinerama, libXrandr, libXft, yacc, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, libX11, libXinerama, libXrandr, libXft, bison, pkg-config }:
 
 stdenv.mkDerivation rec {
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libX11 libXinerama libXrandr libXft yacc ];
+  buildInputs = [ libX11 libXinerama libXrandr libXft bison ];
 
   prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
 
diff --git a/nixpkgs/pkgs/applications/window-managers/dwl/default.nix b/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
index 9a56f865c348..d8f102ed7675 100644
--- a/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
@@ -2,6 +2,7 @@
 , lib
 , fetchFromGitHub
 , pkg-config
+, libinput
 , libxcb
 , libxkbcommon
 , wayland
@@ -11,31 +12,55 @@
 , patches ? [ ]
 , conf ? null
 , writeText
+, fetchpatch
 }:
 
+let
+  # Add two patches to fix compile errors with wlroots 0.13:
+  totalPatches = patches ++ [
+    # Fix the renamed constant WLR_KEY_PRESSED => WL_KEYBOARD_KEY_STATE_PRESSED
+    # https://github.com/djpohly/dwl/pull/66
+    (fetchpatch {
+      url = "https://github.com/djpohly/dwl/commit/a42613db9d9f6debfa4fb2363d75af9457d238ed.patch";
+      sha256 = "0h76hx1fhazi07gqg7sljh13f91v6bvjy7m9qqmimhvqgfwdcc0j";
+    })
+    # Use the new signature for wlr_backend_autocreate, which removes an argument:
+    # https://github.com/djpohly/dwl/pull/76
+    (fetchpatch {
+      url = "https://github.com/djpohly/dwl/commit/0ff13cf216056a36a261f4eed53c6a864989a9fb.patch";
+      sha256 = "18clpdb4il1vxf1b0cx0qrwild68s9dism8ab66zpmvxs5qag2dm";
+    })
+  ];
+in
+
 stdenv.mkDerivation rec {
   pname = "dwl";
-  version = "0.1";
+  version = "0.2";
 
   src = fetchFromGitHub {
     owner = "djpohly";
     repo = pname;
     rev = "v${version}";
-    sha256 = "QoKaeF5DbSX0xciwc/0VKpubn/001cJjoZ+UzVDX4qE=";
+    sha256 = "gUaFTkpIQDswEubllMgvxPfCaEYFO7mODzjPyW7XsGQ=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
+    libinput
     libxcb
     libxkbcommon
     wayland
     wayland-protocols
     wlroots
-  ] ++ lib.optionals enable-xwayland [ xwayland libX11 ];
+  ] ++ lib.optionals enable-xwayland [
+    libX11
+    xwayland
+  ];
 
   # Allow users to set their own list of patches
-  inherit patches;
+  patches = totalPatches;
 
+  # Last line of config.mk enables XWayland
   prePatch = lib.optionalString enable-xwayland ''
     sed -i -e '$ s|^#||' config.mk
   '';
diff --git a/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix b/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
index d419b0ebe3a8..e32cd38ec2d4 100644
--- a/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
+++ b/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
@@ -1,10 +1,10 @@
 { lib, rustPlatform, fetchFromGitHub, dbus, gdk-pixbuf, libnotify, makeWrapper, pkg-config, xorg
 , enableAlsaUtils ? true, alsaUtils, coreutils
-, enableNetwork ? true, dnsutils, iproute, wirelesstools }:
+, enableNetwork ? true, dnsutils, iproute2, wirelesstools }:
 
 let
   bins = lib.optionals enableAlsaUtils [ alsaUtils coreutils ]
-    ++ lib.optionals enableNetwork [ dnsutils iproute wirelesstools ];
+    ++ lib.optionals enableNetwork [ dnsutils iproute2 wirelesstools ];
 in
 
 rustPlatform.buildRustPackage rec {
diff --git a/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix b/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
index ad45f01915da..ce0b40c0bb76 100644
--- a/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
@@ -1,44 +1,42 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, python3, libX11, libXext, libXinerama, libXrandr, asciidoc
+{ lib, stdenv, fetchurl, cmake, pkg-config, python3, libX11, libXext, libXinerama, libXrandr, libXft, freetype, asciidoc
 , xdotool, xorgserver, xsetroot, xterm, runtimeShell
 , nixosTests }:
 
-# Doc generation is disabled by default when cross compiling because asciidoc
-# dependency is broken when cross compiling for now
-
-let
-  cross = stdenv.buildPlatform != stdenv.targetPlatform;
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "herbstluftwm";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchurl {
     url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz";
-    sha256 = "0r4qaklv97qcq8p0pnz4f2zqg69vfai6c2qi1ydi2kz24xqjf5hy";
+    sha256 = "0avfhr68f6fjnafjdcyxcx7dkg38f2nadmhpj971qyqzfq2f6i38";
   };
 
   outputs = [
     "out"
-    "doc" # share/doc exists with examples even without generated html documentation
-  ] ++ lib.optionals (!cross) [
+    "doc"
     "man"
   ];
 
   cmakeFlags = [
     "-DCMAKE_INSTALL_SYSCONF_PREFIX=${placeholder "out"}/etc"
-  ] ++ lib.optional cross "-DWITH_DOCUMENTATION=OFF";
+  ];
 
   nativeBuildInputs = [
     cmake
     pkg-config
-    python3
-  ] ++ lib.optional (!cross) asciidoc;
+  ];
+
+  depsBuildBuild = [
+    asciidoc
+  ];
 
   buildInputs = [
     libX11
     libXext
     libXinerama
     libXrandr
+    libXft
+    freetype
   ];
 
   patches = [
@@ -75,6 +73,9 @@ in stdenv.mkDerivation rec {
   '';
 
   pytestFlagsArray = [ "../tests" ];
+  disabledTests = [
+    "test_title_different_letters_are_drawn"
+  ];
 
   passthru = {
     tests.herbstluftwm = nixosTests.herbstluftwm;
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix b/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix
new file mode 100644
index 000000000000..d24715aa9804
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix
@@ -0,0 +1,26 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "i3-auto-layout";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "chmln";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ps08lga6qkgc8cgf5cx2lgwlqcnd2yazphh9xd2fznnzrllfxxz";
+  };
+
+  cargoSha256 = "1ch5mh515rlqmr65x96xcvrx6iaigqgjxc7sbwbznzkc5kmvwhc0";
+
+  # Currently no tests are implemented, so we avoid building the package twice
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Automatic, optimal tiling for i3wm";
+    homepage = "https://github.com/chmln/i3-auto-layout";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mephistophiles ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix b/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
index 9c97c72ad5df..df774aa417f3 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
@@ -1,5 +1,5 @@
 { fetchFromGitHub, lib, stdenv, perl, makeWrapper
-, iproute, acpi, sysstat, alsaUtils
+, iproute2, acpi, sysstat, alsaUtils
 , scripts ? [ "bandwidth" "battery" "cpu_usage" "disk" "iface"
               "load_average" "memory" "volume" "wifi" ]
 }:
@@ -30,13 +30,13 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     wrapProgram $out/libexec/i3blocks/bandwidth \
-      --prefix PATH : ${makeBinPath (optional (elem "bandwidth" scripts) iproute)}
+      --prefix PATH : ${makeBinPath (optional (elem "bandwidth" scripts) iproute2)}
     wrapProgram $out/libexec/i3blocks/battery \
       --prefix PATH : ${makeBinPath (optional (elem "battery" scripts) acpi)}
     wrapProgram $out/libexec/i3blocks/cpu_usage \
       --prefix PATH : ${makeBinPath (optional (elem "cpu_usage" scripts) sysstat)}
     wrapProgram $out/libexec/i3blocks/iface \
-      --prefix PATH : ${makeBinPath (optional (elem "iface" scripts) iproute)}
+      --prefix PATH : ${makeBinPath (optional (elem "iface" scripts) iproute2)}
     wrapProgram $out/libexec/i3blocks/volume \
       --prefix PATH : ${makeBinPath (optional (elem "volume" scripts) alsaUtils)}
   '';
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/default.nix b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
index d05b187ca78a..305c1d728f34 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "i3";
-  version = "4.19";
+  version = "4.19.2";
 
   src = fetchurl {
     url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz";
-    sha256 = "0wjq6lkidg0g474xsln1fhbxci7zclq3748sda10f1n7q01qp95c";
+    sha256 = "sha256-im7hd2idzyKWTSC2CTAU7k+gQZNF0/1RXVUS2ZgLsnk=";
   };
 
   nativeBuildInputs = [ pkg-config makeWrapper meson ninja installShellFiles ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix b/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
new file mode 100644
index 000000000000..35751da8172d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
@@ -0,0 +1,26 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "i3-ratiosplit";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "333fred";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0yfmr5zk2c2il9d31yjjbr48sqgcq6hp4a99hl5mjm2ajyhy5bz3";
+  };
+
+  cargoSha256 = "0d5qd1wid5l1pl3ckrlfgdb980myi5gxcir39caywb9pkbnfndz6";
+
+  # Currently no tests are implemented, so we avoid building the package twice
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Resize newly created windows";
+    homepage = "https://github.com/333fred/i3-ratiosplit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ svrana ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix b/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
index 6f22070dbc86..3581e4749431 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.13.c.1";
+  version = "2.13.c.2";
   pname = "i3lock-color";
 
   src = fetchFromGitHub {
     owner = "PandorasFox";
     repo = "i3lock-color";
     rev = version;
-    sha256 = "sha256-E+ejc26eyCJ0PnMpDgQrouaBIaUH0SWlzB08fQs8lDw=";
+    sha256 = "sha256-cMj1uB2Hf7v5Rukw9c5YeUmwbdTn1+PV13bUaOWzBp0=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix b/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
index be7e88a25019..88d035bce661 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
@@ -6,25 +6,26 @@
 , dbus
 , libpulseaudio
 , notmuch
+, openssl
 , ethtool
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "i3status-rust";
-  version = "0.14.3";
+  version = "0.14.7";
 
   src = fetchFromGitHub {
     owner = "greshake";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1k9dgmd4wz9950kr35da31rhph43gmvg8dif7hg1xw41xch6bi60";
+    sha256 = "1ndqh4bzwim32n8psgsgdd47xmlb45rhvcwla1wm506byb21nk4c";
   };
 
-  cargoSha256 = "0qqkcgl9iz4kxl1a2vv2p7vy7wxn970y28jynf3n7hfp16i3liy2";
+  cargoSha256 = "098dzwqwbhcyswm73m880z0w03i7xrq56x79vfyvacw4k27q2zm9";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
-  buildInputs = [ dbus libpulseaudio notmuch ];
+  buildInputs = [ dbus libpulseaudio notmuch openssl ];
 
   cargoBuildFlags = [
     "--features=notmuch"
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix b/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix
new file mode 100644
index 000000000000..97da815b5d7b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, rustPlatform, libxcb, python3 }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "i3wsr";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "roosta";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zpyncg29y8cv5nw0vgd69nywbj1ppxf6qfm4zc6zz0gk0vxy4pn";
+  };
+
+  cargoSha256 = "0snys419d32anf73jcvrq8h9kp1fq0maqcxz6ww04yg2jv6j47nc";
+
+  nativeBuildInputs = [ python3 ];
+  buildInputs = [ libxcb ];
+
+  # has not tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Automatically change i3 workspace names based on their contents";
+    longDescription = ''
+      Automatically sets the workspace names to match the windows on the workspace.
+      The chosen name for a workspace is a user-defined composite of the WM_CLASS X11
+      window property for each window in a workspace.
+    '';
+    homepage = "https://github.com/roosta/i3wsr";
+    license = licenses.mit;
+    maintainers = [ maintainers.sebbadk ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/icewm/default.nix b/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
index 571c13e94619..8f1a920296ae 100644
--- a/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , cmake
 , pkg-config
-, perl
 , asciidoc
 , expat
 , fontconfig
@@ -34,21 +34,26 @@
 , libxcb
 , mkfontdir
 , pcre
+, perl
 }:
 
 stdenv.mkDerivation rec {
   pname = "icewm";
-  version = "2.1.2";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner  = "bbidulock";
     repo = pname;
     rev = version;
-    sha256 = "sha256-n9mLD1WrHsO9W1rxopFQENxQEHp/sxuixV3PxLp2vOY=";
+    hash = "sha256-STM8t311lf0xIqs2Onmwg48xgE7V9VZrUfJrUzYRxL4=";
   };
 
-  nativeBuildInputs = [ cmake pkg-config perl asciidoc ];
-
+  nativeBuildInputs = [
+    asciidoc
+    cmake
+    perl
+    pkg-config
+  ];
   buildInputs = [
     expat
     fontconfig
@@ -90,6 +95,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "https://www.ice-wm.org/";
     description = "A simple, lightweight X window manager";
     longDescription = ''
       IceWM is a window manager for the X Window System. The goal of IceWM is
@@ -104,8 +110,7 @@ stdenv.mkDerivation rec {
       includes an optional external background wallpaper manager with
       transparency support, a simple session manager and a system tray.
     '';
-    homepage = "https://www.ice-wm.org/";
-    license = licenses.lgpl2;
+    license = licenses.lgpl2Only;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/applications/window-managers/labwc/default.nix b/nixpkgs/pkgs/applications/window-managers/labwc/default.nix
index 9d39bd537fde..c82eb76f6bf9 100644
--- a/nixpkgs/pkgs/applications/window-managers/labwc/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/labwc/default.nix
@@ -8,7 +8,6 @@
 , glib
 , libinput
 , libxml2
-, pandoc
 , pango
 , wayland
 , wayland-protocols
@@ -16,20 +15,22 @@
 , libxcb
 , libxkbcommon
 , xwayland
+, libdrm
+, scdoc
 }:
 
 stdenv.mkDerivation rec {
   pname = "labwc";
-  version = "unstable-2021-02-06";
+  version = "unstable-2021-03-15";
 
   src = fetchFromGitHub {
     owner = "johanmalm";
     repo = pname;
-    rev = "4a8fcf5c6d0b730b1e2e17e544ce7d7d3c72cd13";
-    sha256 = "g1ba8dchUN393eis0VAu1bIjQfthDGLaSijSavz4lfU=";
+    rev = "fddeb74527e5b860d9c1a91a237d390041c758b6";
+    sha256 = "0rhniv5j4bypqxxj0nbpa3hclmn8znal9rldv0mrgbizn3wsbs54";
   };
 
-  nativeBuildInputs = [ pkg-config meson ninja pandoc ];
+  nativeBuildInputs = [ pkg-config meson ninja scdoc ];
   buildInputs = [
     cairo
     glib
@@ -42,6 +43,7 @@ stdenv.mkDerivation rec {
     libxcb
     libxkbcommon
     xwayland
+    libdrm
   ];
 
   mesonFlags = [ "-Dxwayland=enabled" ];
diff --git a/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix b/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
index 72170401d793..bab0439bf8bc 100644
--- a/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
@@ -17,7 +17,8 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-j57LHPU3U3ipUGQDrZ8KCuELOVJ3BxhLXsJePOO6rTM=";
 
-  buildInputs = [ makeWrapper libX11 libXinerama ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ libX11 libXinerama ];
 
   postInstall = ''
     wrapProgram $out/bin/leftwm --prefix LD_LIBRARY_PATH : "${rpath}"
@@ -31,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mschneider ];
+    changelog = "https://github.com/leftwm/leftwm/blob/${version}/CHANGELOG";
   };
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix b/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix
index 7615c6c4bd80..cb76f0c465cc 100644
--- a/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix
@@ -1,20 +1,23 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
-, pkg-config
-, which
 , autoreconfHook
-, rep-gtk
-, pango
 , gdk-pixbuf-xlib
-, imlib
 , gettext
-, texinfo
+, gtk2
+, imlib
+, libICE
+, libSM
 , libXinerama
 , libXrandr
 , libXtst
-, libICE
-, libSM
+, librep
 , makeWrapper
+, pango
+, pkg-config
+, rep-gtk
+, texinfo
+, which
 }:
 
 stdenv.mkDerivation rec {
@@ -26,20 +29,42 @@ stdenv.mkDerivation rec {
     sha256 = "18p8srqqj9vjffg13qhspfz2gr1h4vfs10qzlv89g76r289iam31";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ which
-    rep-gtk pango gdk-pixbuf-xlib imlib gettext texinfo
-    libXinerama libXrandr libXtst libICE libSM
-    makeWrapper ];
+  nativeBuildInputs = [
+    autoreconfHook
+    gettext
+    librep
+    makeWrapper
+    pkg-config
+    texinfo
+    which
+  ];
+  buildInputs = [
+    gdk-pixbuf-xlib
+    gtk2
+    imlib
+    libICE
+    libSM
+    libXinerama
+    libXrandr
+    libXtst
+    librep
+    pango
+    rep-gtk
+  ];
 
-  patchPhase = ''
+  postPatch = ''
     sed -e 's|REP_DL_LOAD_PATH=|REP_DL_LOAD_PATH=$(REP_DL_LOAD_PATH):|g' -i Makedefs.in
     sed -e 's|$(repexecdir)|$(libdir)/rep|g' -i src/Makefile.in
   '';
 
+  strictDeps = true;
+
   postInstall = ''
-    for i in $out/lib/sawfish/sawfish-menu $out/bin/sawfish-about \
-             $out/bin/sawfish-client $out/bin/sawfish-config $out/bin/sawfish; do
+    for i in $out/lib/sawfish/sawfish-menu \
+             $out/bin/sawfish-about \
+             $out/bin/sawfish-client \
+             $out/bin/sawfish-config \
+             $out/bin/sawfish; do
       wrapProgram $i \
         --prefix REP_DL_LOAD_PATH : "$out/lib/rep" \
         --set REP_LOAD_PATH "$out/share/sawfish/lisp"
@@ -47,16 +72,17 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "http://sawfish.tuxfamily.org/";
     description = "An extensible, Lisp-based window manager";
     longDescription = ''
-      Sawfish is an extensible window manager using a Lisp-based scripting language.
-      Its policy is very minimal compared to most window managers. Its aim is simply
-      to manage windows in the most flexible and attractive manner possible.
-      All high-level WM functions are implemented in Lisp for future extensibility
-      or redefinition.
+      Sawfish is an extensible window manager using a Lisp-based scripting
+      language. Its policy is very minimal compared to most window managers. Its
+      aim is simply to manage windows in the most flexible and attractive manner
+      possible. All high-level WM functions are implemented in Lisp for future
+      extensibility or redefinition.
     '';
-    homepage = "https://sawfish.fandom.com/wiki/Main_Page";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.AndersonTorres ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/default.nix b/nixpkgs/pkgs/applications/window-managers/sway/default.nix
index b9565fc23a41..76a135c2dcc1 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sway/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, substituteAll, swaybg
 , meson, ninja, pkg-config, wayland, scdoc
 , libxkbcommon, pcre, json_c, libevdev, pango, cairo, libinput, librsvg
-, wlroots, wayland-protocols
+, wlroots, wayland-protocols, libdrm
 
 , gdkPixbufSupport ? true, gdk-pixbuf
 , xwaylandSupport ? !(lib.elem "-Dxwayland=disabled" (wlroots.mesonFlags or []))
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sway-unwrapped";
-  version = "1.5.1";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "swaywm";
     repo = "sway";
     rev = version;
-    sha256 = "1xsa3h8zhf29p0mi90baxpr76jkd9pd1gr97ky8cnjbcs4isj9j0";
+    sha256 = "0vnplva11yafhbijrk68wy7pw0psn9jm0caaymswq1s951xsn1c8";
   };
 
   patches = [
@@ -34,11 +34,13 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     wayland libxkbcommon pcre json_c libevdev pango cairo libinput librsvg
-    wlroots wayland-protocols
+    wlroots wayland-protocols libdrm
   ] ++ lib.optional gdkPixbufSupport gdk-pixbuf;
 
-  mesonFlags = [ "-Ddefault-wallpaper=false" ]
-    ++ lib.optional gdkPixbufSupport "-Dgdk-pixbuf=enabled"
+  mesonFlags = [
+    "-Ddefault-wallpaper=false"
+    "-Dsd-bus-provider=libsystemd"
+  ] ++ lib.optional gdkPixbufSupport "-Dgdk-pixbuf=enabled"
     ++ lib.optional xwaylandSupport "-Dxwayland=enabled";
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch b/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch
index 26a3d40d66cb..46a170abc04a 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch
+++ b/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch
@@ -1,22 +1,26 @@
-From 26f9c65ef037892977a824f0d7d7111066856b53 Mon Sep 17 00:00:00 2001
-From: Michael Weiss <dev.primeos@gmail.com>
-Date: Sat, 27 Apr 2019 14:26:16 +0200
+From 92283df3acbffa5c1bb21f23cdd686113d905114 Mon Sep 17 00:00:00 2001
+From: Patrick Hilhorst <git@hilhorst.be>
+Date: Wed, 31 Mar 2021 21:14:13 +0200
 Subject: [PATCH] Load configs from /etc but fallback to /nix/store
 
 This change will load all configuration files from /etc, to make it easy
 to override them, but fallback to /nix/store/.../etc/sway/config to make
 Sway work out-of-the-box with the default configuration on non NixOS
 systems.
+
+Original patch by Michael Weiss, updated for Sway 1.6 by Patrick Hilhorst
+
+Co-authored-by: Michael Weiss <dev.primeos@gmail.com>
 ---
  meson.build   | 3 ++-
- sway/config.c | 1 +
- 2 files changed, 3 insertions(+), 1 deletion(-)
+ sway/config.c | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/meson.build b/meson.build
-index 02b5d606..c03a9c0f 100644
+index b7a29660..8ae8ceb3 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -129,7 +129,8 @@ if scdoc.found()
+@@ -164,7 +164,8 @@ if scdoc.found()
  	endforeach
  endif
  
@@ -25,18 +29,20 @@ index 02b5d606..c03a9c0f 100644
 +add_project_arguments('-DNIX_SYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
  
  version = '"@0@"'.format(meson.project_version())
- if git.found()
+ git = find_program('git', native: true, required: false)
 diff --git a/sway/config.c b/sway/config.c
-index 4cd21bbc..dd855753 100644
+index 76b9ec08..fb5b51aa 100644
 --- a/sway/config.c
 +++ b/sway/config.c
-@@ -317,6 +317,7 @@ static char *get_config_path(void) {
- 		"$XDG_CONFIG_HOME/i3/config",
- 		SYSCONFDIR "/sway/config",
- 		SYSCONFDIR "/i3/config",
-+		NIX_SYSCONFDIR "/sway/config",
+@@ -374,7 +374,8 @@ static char *get_config_path(void) {
+ 		{ .prefix = home, .config_folder = ".i3"},
+ 		{ .prefix = config_home, .config_folder = "i3"},
+ 		{ .prefix = SYSCONFDIR, .config_folder = "sway"},
+-		{ .prefix = SYSCONFDIR, .config_folder = "i3"}
++		{ .prefix = SYSCONFDIR, .config_folder = "i3"},
++		{ .prefix = NIX_SYSCONFDIR, .config_folder = "sway"},
  	};
  
- 	char *config_home = getenv("XDG_CONFIG_HOME");
+ 	size_t num_config_paths = sizeof(config_paths)/sizeof(config_paths[0]);
 -- 
-2.19.2
+2.30.1
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix b/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix
new file mode 100644
index 000000000000..15bf977f8fd9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, rustPlatform, libxcb, python3 }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "swaywsr";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "pedroscaff";
+    repo = pname;
+    rev = "6c4671c702f647395d983aaf607286db1c692db6";
+    sha256 = "0bmpbhyvgnbi5baj6v0wdxpdh9cnlzvcc44vh3vihmzsp6i5q05a";
+  };
+
+  cargoSha256 = "15wa03279lflr16a6kw7zcn3nvalnjydk9g6nj7xqxmc7zkpf0rm";
+
+  nativeBuildInputs = [ python3 ];
+  buildInputs = [ libxcb ];
+
+  # has not tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Automatically change sway workspace names based on their contents";
+    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
+      window property for each window in a workspace.
+    '';
+    homepage = "https://github.com/pedroscaff/swaywsr";
+    license = licenses.mit;
+    maintainers = [ maintainers.sebbadk ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/wayfire/applications.nix b/nixpkgs/pkgs/applications/window-managers/wayfire/applications.nix
index 6c22227c0c51..a77d3f8bf5d8 100644
--- a/nixpkgs/pkgs/applications/window-managers/wayfire/applications.nix
+++ b/nixpkgs/pkgs/applications/window-managers/wayfire/applications.nix
@@ -1,23 +1,20 @@
-{ newScope, wayfirePlugins }:
+{ lib, newScope, wayfirePlugins }:
 
-let
-  self = with self; {
-    inherit wayfirePlugins;
+lib.makeExtensible (self: with self; {
+  inherit wayfirePlugins;
 
-    callPackage = newScope self;
+  callPackage = newScope self;
 
-    wayfire = callPackage ./. { };
+  wayfire = callPackage ./. { };
 
-    wcm = callPackage ./wcm.nix {
-      inherit (wayfirePlugins) wf-shell;
-    };
+  wcm = callPackage ./wcm.nix {
+    inherit (wayfirePlugins) wf-shell;
+  };
 
-    wrapWayfireApplication = callPackage ./wrapper.nix { };
+  wrapWayfireApplication = callPackage ./wrapper.nix { };
 
-    withPlugins = selector: self // {
-      wayfire = wrapWayfireApplication wayfire selector;
-      wcm = wrapWayfireApplication wcm selector;
-    };
+  withPlugins = selector: self // {
+    wayfire = wrapWayfireApplication wayfire selector;
+    wcm = wrapWayfireApplication wcm selector;
   };
-in
-self
+})
diff --git a/nixpkgs/pkgs/applications/window-managers/wayfire/wcm.nix b/nixpkgs/pkgs/applications/window-managers/wayfire/wcm.nix
index d6ac6aeb84e7..9d524019ad5f 100644
--- a/nixpkgs/pkgs/applications/window-managers/wayfire/wcm.nix
+++ b/nixpkgs/pkgs/applications/window-managers/wayfire/wcm.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, meson, ninja, pkg-config, wayland, wrapGAppsHook
-, gnome3, libevdev, libxml2, wayfire, wayland-protocols, wf-config, wf-shell
+, gtk3, libevdev, libxml2, wayfire, wayland-protocols, wf-config, wf-shell
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config wayland wrapGAppsHook ];
   buildInputs = [
-    gnome3.gtk libevdev libxml2 wayfire wayland
+    gtk3 libevdev libxml2 wayfire wayland
     wayland-protocols wf-config wf-shell
   ];
 
diff --git a/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix b/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix
index 3948e9a32abc..cc99e79fca8d 100644
--- a/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix
+++ b/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, meson, ninja, pkg-config, wayland, git
-, alsaLib, gnome3, gtk-layer-shell, pulseaudio, wayfire, wf-config
+, alsaLib, gtkmm3, gtk-layer-shell, pulseaudio, wayfire, wf-config
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config wayland ];
   buildInputs = [
-    alsaLib gnome3.gtkmm gtk-layer-shell pulseaudio wayfire wf-config
+    alsaLib gtkmm3 gtk-layer-shell pulseaudio wayfire wf-config
   ];
 
   mesonFlags = [ "--sysconfdir" "/etc" ];
diff --git a/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
index e427a85d0386..c201c55dcea5 100644
--- a/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
+++ b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
       --replace "/usr/bin/install" "install"
   '';
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   preInstall = ''
     runHook preInstall
diff --git a/nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix b/nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix
index b78b7c015703..0acad8edbe59 100644
--- a/nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix
@@ -29,8 +29,8 @@ stdenv.mkDerivation rec {
     EOF
   '';
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ unzip libixp_hg txt2tags dash python which
+  nativeBuildInputs = [ pkg-config unzip ];
+  buildInputs = [ libixp_hg txt2tags dash python which
                   libX11 libXrender libXext libXinerama libXrandr libXft ];
 
   # For some reason including mercurial in buildInputs did not help
diff --git a/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix b/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix
index ebabcf196d5b..830242667db6 100644
--- a/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/kalj/xmonad-log-applet";
     license = licenses.bsd3;
-    broken = desktopSupport == "gnomeflashback";
+    broken = desktopSupport == "gnomeflashback" || desktopSupport == "xfce4";
     description = "An applet that will display XMonad log information (${desktopSupport} version)";
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
diff --git a/nixpkgs/pkgs/build-support/agda/default.nix b/nixpkgs/pkgs/build-support/agda/default.nix
index d610a8f9a611..984d61f1f751 100644
--- a/nixpkgs/pkgs/build-support/agda/default.nix
+++ b/nixpkgs/pkgs/build-support/agda/default.nix
@@ -1,6 +1,6 @@
 # Builder for Agda packages.
 
-{ stdenv, lib, self, Agda, runCommandNoCC, makeWrapper, writeText, mkShell, ghcWithPackages }:
+{ stdenv, lib, self, Agda, runCommandNoCC, makeWrapper, writeText, mkShell, ghcWithPackages, nixosTests }:
 
 with lib.strings;
 
@@ -18,7 +18,10 @@ let
   in runCommandNoCC "${pname}-${version}" {
     inherit pname version;
     nativeBuildInputs = [ makeWrapper ];
-    passthru.unwrapped = Agda;
+    passthru = {
+      unwrapped = Agda;
+      tests = { inherit (nixosTests) agda; };
+    };
   } ''
     mkdir -p $out/bin
     makeWrapper ${Agda}/bin/agda $out/bin/agda \
diff --git a/nixpkgs/pkgs/build-support/appimage/default.nix b/nixpkgs/pkgs/build-support/appimage/default.nix
index 2a13d107bd0f..7659c9f42a10 100644
--- a/nixpkgs/pkgs/build-support/appimage/default.nix
+++ b/nixpkgs/pkgs/build-support/appimage/default.nix
@@ -184,6 +184,7 @@ rec {
       # libraries not on the upstream include list, but nevertheless expected
       # by at least one appimage
       libtool.lib # for Synfigstudio
+      xorg.libxshmfence # for apple-music-electron
       at-spi2-core
     ];
   };
diff --git a/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix b/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
index 8fef2ca6624c..dac1f3bd7c10 100644
--- a/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
+++ b/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
@@ -53,7 +53,8 @@ let
   dynamicLinker =
     /**/ if libc == null then null
     else if targetPlatform.libc == "musl"             then "${libc_lib}/lib/ld-musl-*"
-    else if targetPlatform.libc == "bionic"           then "/system/bin/linker"
+    else if (targetPlatform.libc == "bionic" && targetPlatform.is32bit) then "/system/bin/linker"
+    else if (targetPlatform.libc == "bionic" && targetPlatform.is64bit) then "/system/bin/linker64"
     else if targetPlatform.libc == "nblibc"           then "${libc_lib}/libexec/ld.elf_so"
     else if targetPlatform.system == "i686-linux"     then "${libc_lib}/lib/ld-linux.so.2"
     else if targetPlatform.system == "x86_64-linux"   then "${libc_lib}/lib/ld-linux-x86-64.so.2"
@@ -305,6 +306,10 @@ stdenv.mkDerivation {
       done
     ''
 
+    + optionalString stdenv.targetPlatform.isDarwin ''
+      echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags
+    ''
+
     + ''
       for flags in "$out/nix-support"/*flags*; do
         substituteInPlace "$flags" --replace $'\n' ' '
diff --git a/nixpkgs/pkgs/build-support/build-bazel-package/default.nix b/nixpkgs/pkgs/build-support/build-bazel-package/default.nix
index 3be72bd22c3f..988298ac72bf 100644
--- a/nixpkgs/pkgs/build-support/build-bazel-package/default.nix
+++ b/nixpkgs/pkgs/build-support/build-bazel-package/default.nix
@@ -108,8 +108,8 @@ in stdenv.mkDerivation (fBuildAttrs // {
       rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker}
       ${if removeRulesCC then "rm -rf $bazelOut/external/{rules_cc,\\@rules_cc.marker}" else ""}
       rm -rf $bazelOut/external/{embedded_jdk,\@embedded_jdk.marker}
-      ${if removeLocalConfigCc then "rm -rf $bazelOut/external/{local_config_cc,\@local_config_cc.marker}" else ""}
-      ${if removeLocal then "rm -rf $bazelOut/external/{local_*,\@local_*.marker}" else ""}
+      ${if removeLocalConfigCc then "rm -rf $bazelOut/external/{local_config_cc,\\@local_config_cc.marker}" else ""}
+      ${if removeLocal then "rm -rf $bazelOut/external/{local_*,\\@local_*.marker}" else ""}
 
       # Clear markers
       find $bazelOut/external -name '@*\.marker' -exec sh -c 'echo > {}' \;
diff --git a/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
index 6592621570ce..1911d08d2a1c 100644
--- a/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
+++ b/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
@@ -1,4 +1,6 @@
-{ lib, callPackage, runCommandLocal, writeShellScriptBin, coreutils, bubblewrap }:
+{ lib, callPackage, runCommandLocal, writeShellScriptBin, glibc, pkgsi686Linux, coreutils, bubblewrap }:
+
+let buildFHSEnv = callPackage ./env.nix { }; in
 
 args @ {
   name
@@ -60,29 +62,53 @@ let
   in concatStringsSep "\n  "
   (map (file: "--ro-bind-try /etc/${file} /etc/${file}") files);
 
+  # Create this on the fly instead of linking from /nix
+  # The container might have to modify it and re-run ldconfig if there are
+  # issues running some binary with LD_LIBRARY_PATH
+  createLdConfCache = ''
+    cat > /etc/ld.so.conf <<EOF
+    /lib
+    /lib/x86_64-linux-gnu
+    /lib64
+    /usr/lib
+    /usr/lib/x86_64-linux-gnu
+    /usr/lib64
+    /lib/i386-linux-gnu
+    /lib32
+    /usr/lib/i386-linux-gnu
+    /usr/lib32
+    EOF
+    ldconfig &> /dev/null
+  '';
   init = run: writeShellScriptBin "${name}-init" ''
     source /etc/profile
+    ${createLdConfCache}
     exec ${run} "$@"
   '';
 
   bwrapCmd = { initArgs ? "" }: ''
     blacklist=(/nix /dev /proc /etc)
     ro_mounts=()
+    symlinks=()
     for i in ${env}/*; do
       path="/''${i##*/}"
       if [[ $path == '/etc' ]]; then
-        continue
+        :
+      elif [[ -L $i ]]; then
+        symlinks+=(--symlink "$(${coreutils}/bin/readlink "$i")" "$path")
+        blacklist+=("$path")
+      else
+        ro_mounts+=(--ro-bind "$i" "$path")
+        blacklist+=("$path")
       fi
-      ro_mounts+=(--ro-bind "$i" "$path")
-      blacklist+=("$path")
     done
 
     if [[ -d ${env}/etc ]]; then
       for i in ${env}/etc/*; do
         path="/''${i##*/}"
-        # NOTE: we're binding /etc/fonts from the host so we don't want to
-        # override it with a path from the FHS environment.
-        if [[ $path == '/fonts' ]]; then
+        # NOTE: we're binding /etc/fonts and /etc/ssl/certs from the host so we
+        # don't want to override it with a path from the FHS environment.
+        if [[ $path == '/fonts' || $path == '/ssl' ]]; then
           continue
         fi
         ro_mounts+=(--ro-bind "$i" "/etc$path")
@@ -112,8 +138,26 @@ let
       ${lib.optionalString unshareCgroup "--unshare-cgroup"}
       --die-with-parent
       --ro-bind /nix /nix
+      # Our glibc will look for the cache in its own path in `/nix/store`.
+      # As such, we need a cache to exist there, because pressure-vessel
+      # depends on the existence of an ld cache. However, adding one
+      # globally proved to be a bad idea (see #100655), the solution we
+      # settled on being mounting one via bwrap.
+      # Also, the cache needs to go to both 32 and 64 bit glibcs, for games
+      # of both architectures to work.
+      --tmpfs ${glibc}/etc \
+      --symlink /etc/ld.so.conf ${glibc}/etc/ld.so.conf \
+      --symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \
+      --ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \
+      --remount-ro ${glibc}/etc \
+      --tmpfs ${pkgsi686Linux.glibc}/etc \
+      --symlink /etc/ld.so.conf ${pkgsi686Linux.glibc}/etc/ld.so.conf \
+      --symlink /etc/ld.so.cache ${pkgsi686Linux.glibc}/etc/ld.so.cache \
+      --ro-bind ${pkgsi686Linux.glibc}/etc/rpc ${pkgsi686Linux.glibc}/etc/rpc \
+      --remount-ro ${pkgsi686Linux.glibc}/etc \
       ${etcBindFlags}
       "''${ro_mounts[@]}"
+      "''${symlinks[@]}"
       "''${auto_mounts[@]}"
       ${init runScript}/bin/${name}-init ${initArgs}
     )
diff --git a/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix b/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
index 8b2d46c4ae98..b9c719a4c78b 100644
--- a/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
+++ b/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildEnv, writeText, pkgs, pkgsi686Linux }:
+{ stdenv, lib, buildEnv, writeText, writeShellScriptBin, pkgs, pkgsi686Linux }:
 
 { name, profile ? ""
 , targetPkgs ? pkgs: [], multiPkgs ? pkgs: []
@@ -49,6 +49,9 @@ let
     [ (toString gcc.cc.lib)
     ];
 
+  ldconfig = writeShellScriptBin "ldconfig" ''
+    exec ${pkgs.glibc.bin}/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache "$@"
+  '';
   etcProfile = writeText "profile" ''
     export PS1='${name}-chrootenv:\u@\h:\w\$ '
     export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive'
@@ -86,7 +89,8 @@ let
   # Composes a /usr-like directory structure
   staticUsrProfileTarget = buildEnv {
     name = "${name}-usr-target";
-    paths = [ etcPkg ] ++ basePkgs ++ targetPaths;
+    # ldconfig wrapper must come first so it overrides the original ldconfig
+    paths = [ etcPkg ldconfig ] ++ basePkgs ++ targetPaths;
     extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall;
     ignoreCollisions = true;
   };
@@ -132,7 +136,20 @@ let
     mkdir -m0755 usr
     cd usr
     ${setupLibDirs}
-    for i in bin sbin share include; do
+    ${lib.optionalString isMultiBuild ''
+    if [ -d "${staticUsrProfileMulti}/share" ]; then
+      cp -rLf ${staticUsrProfileMulti}/share share
+    fi
+    ''}
+    if [ -d "${staticUsrProfileTarget}/share" ]; then
+      if [ -d share ]; then
+        chmod -R 755 share
+        cp -rLTf ${staticUsrProfileTarget}/share share
+      else
+        cp -rLf ${staticUsrProfileTarget}/share share
+      fi
+    fi
+    for i in bin sbin include; do
       if [ -d "${staticUsrProfileTarget}/$i" ]; then
         cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
       fi
diff --git a/nixpkgs/pkgs/build-support/buildenv/default.nix b/nixpkgs/pkgs/build-support/buildenv/default.nix
index 7f2427777f92..c2186cf6bfa0 100644
--- a/nixpkgs/pkgs/build-support/buildenv/default.nix
+++ b/nixpkgs/pkgs/build-support/buildenv/default.nix
@@ -36,8 +36,9 @@ lib.makeOverridable
 , # Shell commands to run after building the symlink tree.
   postBuild ? ""
 
-, # Additional inputs. Handy e.g. if using makeWrapper in `postBuild`.
-  buildInputs ? []
+# Additional inputs
+, nativeBuildInputs ? [] # Handy e.g. if using makeWrapper in `postBuild`.
+, buildInputs ? []
 
 , passthru ? {}
 , meta ? {}
@@ -53,7 +54,8 @@ in
 runCommand name
   rec {
     inherit manifest ignoreCollisions checkCollisionContents passthru
-            meta pathsToLink extraPrefix postBuild buildInputs;
+            meta pathsToLink extraPrefix postBuild
+            nativeBuildInputs buildInputs;
     pkgs = builtins.toJSON (map (drv: {
       paths =
         # First add the usual output(s): respect if user has chosen explicitly,
@@ -72,7 +74,7 @@ runCommand name
     preferLocalBuild = true;
     allowSubstitutes = false;
     # XXX: The size is somewhat arbitrary
-    passAsFile = if builtins.stringLength pkgs >= 128*1024 then [ "pkgs" ] else null;
+    passAsFile = if builtins.stringLength pkgs >= 128*1024 then [ "pkgs" ] else [ ];
   }
   ''
     ${buildPackages.perl}/bin/perl -w ${builder}
diff --git a/nixpkgs/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/nixpkgs/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index 1450218aff27..b402893100b0 100644
--- a/nixpkgs/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/nixpkgs/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -132,12 +132,13 @@ if [ "$NIX_ENFORCE_NO_NATIVE_@suffixSalt@" = 1 ]; then
 fi
 
 if [[ "$isCpp" = 1 ]]; then
-    if [[ "$cppInclude" = 1 ]]; then
-        NIX_CFLAGS_COMPILE_@suffixSalt@+=" $NIX_CXXSTDLIB_COMPILE_@suffixSalt@"
-    fi
     NIX_CFLAGS_LINK_@suffixSalt@+=" $NIX_CXXSTDLIB_LINK_@suffixSalt@"
 fi
 
+if [[ "$cppInclude" = 1 ]]; then
+    NIX_CFLAGS_COMPILE_@suffixSalt@+=" $NIX_CXXSTDLIB_COMPILE_@suffixSalt@"
+fi
+
 source @out@/nix-support/add-hardening.sh
 
 # Add the flags for the C compiler proper.
@@ -198,7 +199,15 @@ fi
 
 PATH="$path_backup"
 # Old bash workaround, see above.
-exec @prog@ \
-    ${extraBefore+"${extraBefore[@]}"} \
-    ${params+"${params[@]}"} \
-    ${extraAfter+"${extraAfter[@]}"}
+
+if (( "${NIX_CC_USE_RESPONSE_FILE:-@use_response_file_by_default@}" >= 1 )); then
+    exec @prog@ @<(printf "%q\n" \
+       ${extraBefore+"${extraBefore[@]}"} \
+       ${params+"${params[@]}"} \
+       ${extraAfter+"${extraAfter[@]}"})
+else
+    exec @prog@ \
+       ${extraBefore+"${extraBefore[@]}"} \
+       ${params+"${params[@]}"} \
+       ${extraAfter+"${extraAfter[@]}"}
+fi
diff --git a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
index 341e2850437c..31689022b326 100644
--- a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
+++ b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
@@ -160,6 +160,7 @@ stdenv.mkDerivation {
         local dst="$1"
         local wrapper="$2"
         export prog="$3"
+        export use_response_file_by_default=${if isClang then "1" else "0"}
         substituteAll "$wrapper" "$out/bin/$dst"
         chmod +x "$out/bin/$dst"
       }
@@ -298,7 +299,10 @@ stdenv.mkDerivation {
     # vs libstdc++, etc.) since Darwin isn't `useLLVM` on all counts. (See
     # https://clang.llvm.org/docs/Toolchain.html for all the axes one might
     # break `useLLVM` into.)
-    + optionalString (isClang && gccForLibs != null && targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
+    + optionalString (isClang && gccForLibs != null
+                      && targetPlatform.isLinux
+                      && !(stdenv.targetPlatform.useAndroidPrebuilt or false)
+                      && !(stdenv.targetPlatform.useLLVM or false)) ''
       echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
     ''
 
@@ -451,6 +455,8 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" stackprotector pic"
     '' + optionalString (targetPlatform.libc == "newlib") ''
       hardening_unsupported_flags+=" stackprotector fortify pie pic"
+    '' + optionalString (targetPlatform.libc == "musl" && targetPlatform.isx86_32) ''
+      hardening_unsupported_flags+=" stackprotector"
     '' + optionalString targetPlatform.isNetBSD ''
       hardening_unsupported_flags+=" stackprotector fortify"
     '' + optionalString cc.langAda or false ''
@@ -479,6 +485,10 @@ stdenv.mkDerivation {
       substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash
     ''
 
+    + optionalString stdenv.targetPlatform.isDarwin ''
+      echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags
+    ''
+
     ##
     ## Extra custom steps
     ##
diff --git a/nixpkgs/pkgs/build-support/coq/default.nix b/nixpkgs/pkgs/build-support/coq/default.nix
index 8d86602bf38e..03922303ee34 100644
--- a/nixpkgs/pkgs/build-support/coq/default.nix
+++ b/nixpkgs/pkgs/build-support/coq/default.nix
@@ -25,13 +25,16 @@ in
   dropAttrs ? [],
   keepAttrs ? [],
   dropDerivationAttrs ? [],
+  useDune2ifVersion ? (x: false),
+  useDune2 ? false,
   ...
 }@args:
 let
   args-to-remove = foldl (flip remove) ([
     "version" "fetcher" "repo" "owner" "domain" "releaseRev"
     "displayVersion" "defaultVersion" "useMelquiondRemake"
-    "release" "extraBuildInputs" "extraPropagatedBuildInputs" "namePrefix" "meta"
+    "release" "extraBuildInputs" "extraPropagatedBuildInputs" "namePrefix"
+    "meta" "useDune2ifVersion" "useDune2"
     "extraInstallFlags" "setCOQBIN" "mlPlugin"
     "dropAttrs" "dropDerivationAttrs" "keepAttrs" ] ++ dropAttrs) keepAttrs;
   fetch = import ../coq/meta-fetch/default.nix
@@ -54,6 +57,7 @@ let
   append-version = p: n: p + display-pkg n "" coqPackages.${n}.version + "-";
   prefix-name = foldl append-version "" namePrefix;
   var-coqlib-install = (optionalString (versions.isGe "8.7" coq.coq-version) "COQMF_") + "COQLIB";
+  useDune2 = args.useDune2 or useDune2ifVersion fetched.version;
 in
 
 stdenv.mkDerivation (removeAttrs ({
@@ -62,7 +66,10 @@ stdenv.mkDerivation (removeAttrs ({
 
   inherit (fetched) version src;
 
-  buildInputs = [ coq ] ++ optionals mlPlugin coq.ocamlBuildInputs ++ extraBuildInputs;
+  buildInputs = [ coq ]
+    ++ optionals mlPlugin coq.ocamlBuildInputs
+    ++ optionals useDune2 [coq.ocaml coq.ocamlPackages.dune_2]
+    ++ extraBuildInputs;
   inherit enableParallelBuilding;
 
   meta = ({ platforms = coq.meta.platforms; } //
@@ -73,20 +80,30 @@ stdenv.mkDerivation (removeAttrs ({
     optionalAttrs (fetched.broken or false) { coqFilter = true; broken = true; }) //
     (args.meta or {}) ;
 
-} //
-(optionalAttrs setCOQBIN { COQBIN = "${coq}/bin/"; }) //
-(optionalAttrs (!args?installPhase && !args?useMelquiondRemake) {
+}
+// (optionalAttrs setCOQBIN { COQBIN = "${coq}/bin/"; })
+// (optionalAttrs (!args?installPhase && !args?useMelquiondRemake) {
   installFlags =
     [ "${var-coqlib-install}=$(out)/lib/coq/${coq.coq-version}/" ] ++
     optional (match ".*doc$" (args.installTargets or "") != null)
       "DOCDIR=$(out)/share/coq/${coq.coq-version}/" ++
     extraInstallFlags;
-}) //
-(optionalAttrs (args?useMelquiondRemake) rec {
+})
+// (optionalAttrs useDune2 {
+  installPhase = ''
+    runHook preInstall
+    dune install --prefix=$out
+    mv $out/lib/coq $out/lib/TEMPORARY
+    mkdir $out/lib/coq/
+    mv $out/lib/TEMPORARY $out/lib/coq/${coq.coq-version}
+    runHook postInstall
+  '';
+})
+// (optionalAttrs (args?useMelquiondRemake) rec {
   COQUSERCONTRIB = "$out/lib/coq/${coq.coq-version}/user-contrib";
   preConfigurePhases = "autoconf";
   configureFlags = [ "--libdir=${COQUSERCONTRIB}/${useMelquiondRemake.logpath or ""}" ];
   buildPhase = "./remake -j$NIX_BUILD_CORES";
   installPhase = "./remake install";
-}) //
-(removeAttrs args args-to-remove)) dropDerivationAttrs)
+})
+// (removeAttrs args args-to-remove)) dropDerivationAttrs)
diff --git a/nixpkgs/pkgs/build-support/coq/meta-fetch/default.nix b/nixpkgs/pkgs/build-support/coq/meta-fetch/default.nix
index b01ae72a2089..e7b15af4f06e 100644
--- a/nixpkgs/pkgs/build-support/coq/meta-fetch/default.nix
+++ b/nixpkgs/pkgs/build-support/coq/meta-fetch/default.nix
@@ -39,10 +39,13 @@ switch arg [
   { case = isPathString; out = { version = "dev"; src = arg; }; }
   { case = pred.union isVersion isShortVersion;
     out = let v = if isVersion arg then arg else shortVersion arg; in
-      if !release.${v}?sha256 then throw "meta-fetch: a sha256 must be provided for each release"
-      else {
-        version = release.${v}.version or v;
-        src = release.${v}.src or fetcher (location // { rev = releaseRev v; } // release.${v});
+      let
+        given-sha256 = release.${v}.sha256 or "";
+        sha256 = if given-sha256 == "" then lib.fakeSha256 else given-sha256;
+        rv = release.${v} // { inherit sha256; }; in
+      {
+        version = rv.version or v;
+        src = rv.src or fetcher (location // { rev = releaseRev v; } // rv);
       };
     }
   { case = isString;
diff --git a/nixpkgs/pkgs/build-support/docker/default.nix b/nixpkgs/pkgs/build-support/docker/default.nix
index 0c9d4f110ada..b03bfcca87f4 100644
--- a/nixpkgs/pkgs/build-support/docker/default.nix
+++ b/nixpkgs/pkgs/build-support/docker/default.nix
@@ -7,6 +7,7 @@
   coreutils,
   docker,
   e2fsprogs,
+  fakeroot,
   findutils,
   go,
   jq,
@@ -21,7 +22,6 @@
   runtimeShell,
   shadow,
   skopeo,
-  stdenv,
   storeDir ? builtins.storeDir,
   substituteAll,
   symlinkJoin,
@@ -120,7 +120,7 @@ rec {
     export GOPATH=$(pwd)
     export GOCACHE="$TMPDIR/go-cache"
     mkdir -p src/github.com/docker/docker/pkg
-    ln -sT ${docker.moby.src}/pkg/tarsum src/github.com/docker/docker/pkg/tarsum
+    ln -sT ${docker.moby-src}/pkg/tarsum src/github.com/docker/docker/pkg/tarsum
     go build
 
     mkdir -p $out/bin
@@ -448,7 +448,7 @@ rec {
     let
       stream = streamLayeredImage args;
     in
-      runCommand "${name}.tar.gz" {
+      runCommand "${baseNameOf name}.tar.gz" {
         inherit (stream) imageName;
         passthru = { inherit (stream) imageTag; };
         nativeBuildInputs = [ pigz ];
@@ -519,9 +519,9 @@ rec {
         };
       result = runCommand "docker-image-${baseName}.tar.gz" {
         nativeBuildInputs = [ jshon pigz coreutils findutils jq moreutils ];
-        # Image name and tag must be lowercase
+        # Image name must be lowercase
         imageName = lib.toLower name;
-        imageTag = if tag == null then "" else lib.toLower tag;
+        imageTag = if tag == null then "" else tag;
         inherit fromImage baseJson;
         layerClosure = writeReferencesToFile layer;
         passthru.buildArgs = args;
@@ -730,6 +730,8 @@ rec {
     name,
     # Image tag, the Nix's output hash will be used if null
     tag ? null,
+    # Parent image, to append to.
+    fromImage ? null,
     # Files to put on the image (a nix store path or list of paths).
     contents ? [],
     # Docker config; e.g. what command to run on the container.
@@ -739,6 +741,9 @@ rec {
     created ? "1970-01-01T00:00:01Z",
     # Optional bash script to run on the files prior to fixturizing the layer.
     extraCommands ? "",
+    # Optional bash script to run inside fakeroot environment.
+    # Could be used for changing ownership of files in customisation layer.
+    fakeRootCommands ? "",
     # We pick 100 to ensure there is plenty of room for extension. I
     # believe the actual maximum is 128.
     maxLayers ? 100
@@ -747,8 +752,10 @@ rec {
       (lib.assertMsg (maxLayers > 1)
       "the maxLayers argument of dockerTools.buildLayeredImage function must be greather than 1 (current value: ${toString maxLayers})");
     let
+      baseName = baseNameOf name;
+
       streamScript = writePython3 "stream" {} ./stream_layered_image.py;
-      baseJson = writeText "${name}-base.json" (builtins.toJSON {
+      baseJson = writeText "${baseName}-base.json" (builtins.toJSON {
          inherit config;
          architecture = defaultArch;
          os = "linux";
@@ -760,20 +767,26 @@ rec {
       # things like permissions set on 'extraCommands' are not overriden
       # by Nix. Then we precompute the sha256 for performance.
       customisationLayer = symlinkJoin {
-        name = "${name}-customisation-layer";
+        name = "${baseName}-customisation-layer";
         paths = contentsList;
-        inherit extraCommands;
+        inherit extraCommands fakeRootCommands;
+        nativeBuildInputs = [ fakeroot ];
         postBuild = ''
           mv $out old_out
           (cd old_out; eval "$extraCommands" )
 
           mkdir $out
 
-          tar \
-            --owner 0 --group 0 --mtime "@$SOURCE_DATE_EPOCH" \
-            --hard-dereference \
-            -C old_out \
-            -cf $out/layer.tar .
+          fakeroot bash -c '
+            source $stdenv/setup
+            cd old_out
+            eval "$fakeRootCommands"
+            tar \
+              --sort name \
+              --numeric-owner --mtime "@$SOURCE_DATE_EPOCH" \
+              --hard-dereference \
+              -cf $out/layer.tar .
+          '
 
           sha256sum $out/layer.tar \
             | cut -f 1 -d ' ' \
@@ -788,8 +801,8 @@ rec {
       # so they'll be excluded from the created images.
       unnecessaryDrvs = [ baseJson overallClosure ];
 
-      conf = runCommand "${name}-conf.json" {
-        inherit maxLayers created;
+      conf = runCommand "${baseName}-conf.json" {
+        inherit fromImage maxLayers created;
         imageName = lib.toLower name;
         passthru.imageTag =
           if tag != null
@@ -819,6 +832,27 @@ rec {
                          unnecessaryDrvs}
         }
 
+        # Compute the number of layers that are already used by a potential
+        # 'fromImage' as well as the customization layer. Ensure that there is
+        # still at least one layer available to store the image contents.
+        usedLayers=0
+
+        # subtract number of base image layers
+        if [[ -n "$fromImage" ]]; then
+          (( usedLayers += $(tar -xOf "$fromImage" manifest.json | jq '.[0].Layers | length') ))
+        fi
+
+        # one layer will be taken up by the customisation layer
+        (( usedLayers += 1 ))
+
+        if ! (( $usedLayers < $maxLayers )); then
+          echo >&2 "Error: usedLayers $usedLayers layers to store 'fromImage' and" \
+                    "'extraCommands', but only maxLayers=$maxLayers were" \
+                    "allowed. At least 1 layer is required to store contents."
+          exit 1
+        fi
+        availableLayers=$(( maxLayers - usedLayers ))
+
         # Create $maxLayers worth of Docker Layers, one layer per store path
         # unless there are more paths than $maxLayers. In that case, create
         # $maxLayers-1 for the most popular layers, and smush the remainaing
@@ -836,23 +870,27 @@ rec {
                 | (.[:$maxLayers-1] | map([.])) + [ .[$maxLayers-1:] ]
                 | map(select(length > 0))
             ' \
-              --argjson maxLayers "$(( maxLayers - 1 ))" # one layer will be taken up by the customisation layer
+              --argjson maxLayers "$availableLayers"
         )"
 
         cat ${baseJson} | jq '
           . + {
+            "store_dir": $store_dir,
+            "from_image": $from_image,
             "store_layers": $store_layers,
             "customisation_layer", $customisation_layer,
             "repo_tag": $repo_tag,
             "created": $created
           }
-          ' --argjson store_layers "$store_layers" \
+          ' --arg store_dir "${storeDir}" \
+            --argjson from_image ${if fromImage == null then "null" else "'\"${fromImage}\"'"} \
+            --argjson store_layers "$store_layers" \
             --arg customisation_layer ${customisationLayer} \
             --arg repo_tag "$imageName:$imageTag" \
             --arg created "$created" |
           tee $out
       '';
-      result = runCommand "stream-${name}" {
+      result = runCommand "stream-${baseName}" {
         inherit (conf) imageName;
         passthru = {
           inherit (conf) imageTag;
diff --git a/nixpkgs/pkgs/build-support/docker/examples.nix b/nixpkgs/pkgs/build-support/docker/examples.nix
index 86375a40baa0..f6b468942fe0 100644
--- a/nixpkgs/pkgs/build-support/docker/examples.nix
+++ b/nixpkgs/pkgs/build-support/docker/examples.nix
@@ -188,7 +188,25 @@ rec {
     };
   };
 
-  # 12. example of running something as root on top of a parent image
+  # 12 Create a layered image on top of a layered image
+  layered-on-top-layered = pkgs.dockerTools.buildLayeredImage {
+    name = "layered-on-top-layered";
+    tag = "latest";
+    fromImage = layered-image;
+    extraCommands = ''
+      mkdir ./example-output
+      chmod 777 ./example-output
+    '';
+    config = {
+      Env = [ "PATH=${pkgs.coreutils}/bin/" ];
+      WorkingDir = "/example-output";
+      Cmd = [
+        "${pkgs.bash}/bin/bash" "-c" "echo hello > foo; cat foo"
+      ];
+    };
+  };
+
+  # 13. example of running something as root on top of a parent image
   # Regression test related to PR #52109
   runAsRootParentImage = buildImage {
     name = "runAsRootParentImage";
@@ -197,7 +215,7 @@ rec {
     fromImage = bash;
   };
 
-  # 13. example of 3 layers images This image is used to verify the
+  # 14. example of 3 layers images This image is used to verify the
   # order of layers is correct.
   # It allows to validate
   # - the layer of parent are below
@@ -235,23 +253,23 @@ rec {
     '';
   };
 
-  # 14. Environment variable inheritance.
+  # 15. Environment variable inheritance.
   # Child image should inherit parents environment variables,
   # optionally overriding them.
-  environmentVariables = let
-    parent = pkgs.dockerTools.buildImage {
-      name = "parent";
-      tag = "latest";
-      config = {
-        Env = [
-          "FROM_PARENT=true"
-          "LAST_LAYER=parent"
-        ];
-      };
+  environmentVariablesParent = pkgs.dockerTools.buildImage {
+    name = "parent";
+    tag = "latest";
+    config = {
+      Env = [
+        "FROM_PARENT=true"
+        "LAST_LAYER=parent"
+      ];
     };
-  in pkgs.dockerTools.buildImage {
+  };
+
+  environmentVariables = pkgs.dockerTools.buildImage {
     name = "child";
-    fromImage = parent;
+    fromImage = environmentVariablesParent;
     tag = "latest";
     contents = [ pkgs.coreutils ];
     config = {
@@ -262,14 +280,27 @@ rec {
     };
   };
 
-  # 15. Create another layered image, for comparing layers with image 10.
+  environmentVariablesLayered = pkgs.dockerTools.buildLayeredImage {
+    name = "child";
+    fromImage = environmentVariablesParent;
+    tag = "latest";
+    contents = [ pkgs.coreutils ];
+    config = {
+      Env = [
+        "FROM_CHILD=true"
+        "LAST_LAYER=child"
+      ];
+    };
+  };
+
+  # 16. Create another layered image, for comparing layers with image 10.
   another-layered-image = pkgs.dockerTools.buildLayeredImage {
     name = "another-layered-image";
     tag = "latest";
     config.Cmd = [ "${pkgs.hello}/bin/hello" ];
   };
 
-  # 16. Create a layered image with only 2 layers
+  # 17. Create a layered image with only 2 layers
   two-layered-image = pkgs.dockerTools.buildLayeredImage {
     name = "two-layered-image";
     tag = "latest";
@@ -278,7 +309,7 @@ rec {
     maxLayers = 2;
   };
 
-  # 17. Create a layered image with more packages than max layers.
+  # 18. Create a layered image with more packages than max layers.
   # coreutils and hello are part of the same layer
   bulk-layer = pkgs.dockerTools.buildLayeredImage {
     name = "bulk-layer";
@@ -289,7 +320,19 @@ rec {
     maxLayers = 2;
   };
 
-  # 18. Create a "layered" image without nix store layers. This is not
+  # 19. Create a layered image with a base image and more packages than max
+  # layers. coreutils and hello are part of the same layer
+  layered-bulk-layer = pkgs.dockerTools.buildLayeredImage {
+    name = "layered-bulk-layer";
+    tag = "latest";
+    fromImage = two-layered-image;
+    contents = with pkgs; [
+      coreutils hello
+    ];
+    maxLayers = 4;
+  };
+
+  # 20. Create a "layered" image without nix store layers. This is not
   # recommended, but can be useful for base images in rare cases.
   no-store-paths = pkgs.dockerTools.buildLayeredImage {
     name = "no-store-paths";
@@ -321,7 +364,7 @@ rec {
     };
   };
 
-  # 19. Support files in the store on buildLayeredImage
+  # 21. Support files in the store on buildLayeredImage
   # See: https://github.com/NixOS/nixpkgs/pull/91084#issuecomment-653496223
   filesInStore = pkgs.dockerTools.buildLayeredImageWithNixDb {
     name = "file-in-store";
@@ -341,7 +384,7 @@ rec {
     };
   };
 
-  # 20. Ensure that setting created to now results in a date which
+  # 22. Ensure that setting created to now results in a date which
   # isn't the epoch + 1 for layered images.
   unstableDateLayered = pkgs.dockerTools.buildLayeredImage {
     name = "unstable-date-layered";
@@ -427,4 +470,31 @@ rec {
       tag = "latest";
       contents = [ pkgs.bash symlink ];
     } // { passthru = { inherit symlink; }; };
+
+  # image with registry/ prefix
+  prefixedImage = pkgs.dockerTools.buildImage {
+    name = "registry-1.docker.io/image";
+    tag = "latest";
+    config.Cmd = [ "${pkgs.hello}/bin/hello" ];
+  };
+
+  # layered image with registry/ prefix
+  prefixedLayeredImage = pkgs.dockerTools.buildLayeredImage {
+    name = "registry-1.docker.io/layered-image";
+    tag = "latest";
+    config.Cmd = [ "${pkgs.hello}/bin/hello" ];
+  };
+
+  # layered image with files owned by a user other than root
+  layeredImageWithFakeRootCommands = pkgs.dockerTools.buildLayeredImage {
+    name = "layered-image-with-fake-root-commands";
+    tag = "latest";
+    contents = [
+      pkgs.pkgsStatic.busybox
+    ];
+    fakeRootCommands = ''
+      mkdir -p ./home/jane
+      chown 1000 ./home/jane
+    '';
+  };
 }
diff --git a/nixpkgs/pkgs/build-support/docker/stream_layered_image.py b/nixpkgs/pkgs/build-support/docker/stream_layered_image.py
index e35bd0b0e8c0..d7c63eb43a78 100644
--- a/nixpkgs/pkgs/build-support/docker/stream_layered_image.py
+++ b/nixpkgs/pkgs/build-support/docker/stream_layered_image.py
@@ -33,6 +33,7 @@ function does all this.
 
 import io
 import os
+import re
 import sys
 import json
 import hashlib
@@ -126,16 +127,94 @@ class ExtractChecksum:
         return (self._digest.hexdigest(), self._size)
 
 
+FromImage = namedtuple("FromImage", ["tar", "manifest_json", "image_json"])
 # Some metadata for a layer
 LayerInfo = namedtuple("LayerInfo", ["size", "checksum", "path", "paths"])
 
 
-def add_layer_dir(tar, paths, mtime):
+def load_from_image(from_image_str):
+    """
+    Loads the given base image, if any.
+
+    from_image_str: Path to the base image archive.
+
+    Returns: A 'FromImage' object with references to the loaded base image,
+             or 'None' if no base image was provided.
+    """
+    if from_image_str is None:
+        return None
+
+    base_tar = tarfile.open(from_image_str)
+
+    manifest_json_tarinfo = base_tar.getmember("manifest.json")
+    with base_tar.extractfile(manifest_json_tarinfo) as f:
+        manifest_json = json.load(f)
+
+    image_json_tarinfo = base_tar.getmember(manifest_json[0]["Config"])
+    with base_tar.extractfile(image_json_tarinfo) as f:
+        image_json = json.load(f)
+
+    return FromImage(base_tar, manifest_json, image_json)
+
+
+def add_base_layers(tar, from_image):
+    """
+    Adds the layers from the given base image to the final image.
+
+    tar: 'tarfile.TarFile' object for new layers to be added to.
+    from_image: 'FromImage' object with references to the loaded base image.
+    """
+    if from_image is None:
+        print("No 'fromImage' provided", file=sys.stderr)
+        return []
+
+    layers = from_image.manifest_json[0]["Layers"]
+    checksums = from_image.image_json["rootfs"]["diff_ids"]
+    layers_checksums = zip(layers, checksums)
+
+    for num, (layer, checksum) in enumerate(layers_checksums, start=1):
+        layer_tarinfo = from_image.tar.getmember(layer)
+        checksum = re.sub(r"^sha256:", "", checksum)
+
+        tar.addfile(layer_tarinfo, from_image.tar.extractfile(layer_tarinfo))
+        path = layer_tarinfo.path
+        size = layer_tarinfo.size
+
+        print("Adding base layer", num, "from", path, file=sys.stderr)
+        yield LayerInfo(size=size, checksum=checksum, path=path, paths=[path])
+
+    from_image.tar.close()
+
+
+def overlay_base_config(from_image, final_config):
+    """
+    Overlays the final image 'config' JSON on top of selected defaults from the
+    base image 'config' JSON.
+
+    from_image: 'FromImage' object with references to the loaded base image.
+    final_config: 'dict' object of the final image 'config' JSON.
+    """
+    if from_image is None:
+        return final_config
+
+    base_config = from_image.image_json["config"]
+
+    # Preserve environment from base image
+    final_env = base_config.get("Env", []) + final_config.get("Env", [])
+    if final_env:
+        # Resolve duplicates (last one wins) and format back as list
+        resolved_env = {entry.split("=", 1)[0]: entry for entry in final_env}
+        final_config["Env"] = list(resolved_env.values())
+    return final_config
+
+
+def add_layer_dir(tar, paths, store_dir, mtime):
     """
     Appends given store paths to a TarFile object as a new layer.
 
     tar: 'tarfile.TarFile' object for the new layer to be added to.
     paths: List of store paths.
+    store_dir: the root directory of the nix store
     mtime: 'mtime' of the added files and the layer tarball.
            Should be an integer representing a POSIX time.
 
@@ -143,9 +222,9 @@ def add_layer_dir(tar, paths, mtime):
              the layer added.
     """
 
-    invalid_paths = [i for i in paths if not i.startswith("/nix/store/")]
+    invalid_paths = [i for i in paths if not i.startswith(store_dir)]
     assert len(invalid_paths) == 0, \
-        "Expecting absolute store paths, but got: {invalid_paths}"
+        f"Expecting absolute paths from {store_dir}, but got: {invalid_paths}"
 
     # First, calculate the tarball checksum and the size.
     extract_checksum = ExtractChecksum()
@@ -245,18 +324,23 @@ def main():
       else datetime.fromisoformat(conf["created"])
     )
     mtime = int(created.timestamp())
+    store_dir = conf["store_dir"]
+
+    from_image = load_from_image(conf["from_image"])
 
     with tarfile.open(mode="w|", fileobj=sys.stdout.buffer) as tar:
         layers = []
-        for num, store_layer in enumerate(conf["store_layers"]):
-            print(
-              "Creating layer", num,
-              "from paths:", store_layer,
-              file=sys.stderr)
-            info = add_layer_dir(tar, store_layer, mtime=mtime)
+        layers.extend(add_base_layers(tar, from_image))
+
+        start = len(layers) + 1
+        for num, store_layer in enumerate(conf["store_layers"], start=start):
+            print("Creating layer", num, "from paths:", store_layer,
+                  file=sys.stderr)
+            info = add_layer_dir(tar, store_layer, store_dir, mtime=mtime)
             layers.append(info)
 
-        print("Creating the customisation layer...", file=sys.stderr)
+        print("Creating layer", len(layers) + 1, "with customisation...",
+              file=sys.stderr)
         layers.append(
           add_customisation_layer(
             tar,
@@ -271,7 +355,7 @@ def main():
             "created": datetime.isoformat(created),
             "architecture": conf["architecture"],
             "os": "linux",
-            "config": conf["config"],
+            "config": overlay_base_config(from_image, conf["config"]),
             "rootfs": {
                 "diff_ids": [f"sha256:{layer.checksum}" for layer in layers],
                 "type": "layers",
diff --git a/nixpkgs/pkgs/build-support/emacs/elpa.nix b/nixpkgs/pkgs/build-support/emacs/elpa.nix
index 214aed9c3f9c..41a0670d0c84 100644
--- a/nixpkgs/pkgs/build-support/emacs/elpa.nix
+++ b/nixpkgs/pkgs/build-support/emacs/elpa.nix
@@ -1,6 +1,6 @@
 # builder for Emacs packages built for packages.el
 
-{ lib, stdenv, emacs, texinfo }:
+{ lib, stdenv, emacs, texinfo, writeText }:
 
 with lib;
 
@@ -19,7 +19,7 @@ let
 
 in
 
-import ./generic.nix { inherit lib stdenv emacs texinfo; } ({
+import ./generic.nix { inherit lib stdenv emacs texinfo writeText; } ({
 
   phases = "installPhase fixupPhase distPhase";
 
diff --git a/nixpkgs/pkgs/build-support/emacs/setup-hook.sh b/nixpkgs/pkgs/build-support/emacs/emacs-funcs.sh
index f6f2331b8e02..e1e6a3b62208 100644
--- a/nixpkgs/pkgs/build-support/emacs/setup-hook.sh
+++ b/nixpkgs/pkgs/build-support/emacs/emacs-funcs.sh
@@ -32,13 +32,3 @@ addEmacsVars () {
     fi
   done
 }
-
-if [[ ! -v emacsHookDone ]]; then
-  emacsHookDone=1
-
-  # If this is for a wrapper derivation, emacs and the dependencies are all
-  # run-time dependencies. If this is for precompiling packages into bytecode,
-  # emacs is a compile-time dependency of the package.
-  addEnvHooks "$hostOffset" addEmacsVars
-  addEnvHooks "$targetOffset" addEmacsVars
-fi
diff --git a/nixpkgs/pkgs/build-support/emacs/generic.nix b/nixpkgs/pkgs/build-support/emacs/generic.nix
index d84fa24923df..1456d9e423d8 100644
--- a/nixpkgs/pkgs/build-support/emacs/generic.nix
+++ b/nixpkgs/pkgs/build-support/emacs/generic.nix
@@ -1,6 +1,6 @@
 # generic builder for Emacs packages
 
-{ lib, stdenv, emacs, texinfo, ... }:
+{ lib, stdenv, emacs, texinfo, writeText, ... }:
 
 with lib;
 
@@ -49,7 +49,19 @@ stdenv.mkDerivation ({
   propagatedBuildInputs = packageRequires;
   propagatedUserEnvPkgs = packageRequires;
 
-  setupHook = ./setup-hook.sh;
+  setupHook = writeText "setup-hook.sh" ''
+    source ${./emacs-funcs.sh}
+
+    if [[ ! -v emacsHookDone ]]; then
+      emacsHookDone=1
+
+      # If this is for a wrapper derivation, emacs and the dependencies are all
+      # run-time dependencies. If this is for precompiling packages into bytecode,
+      # emacs is a compile-time dependency of the package.
+      addEnvHooks "$hostOffset" addEmacsVars
+      addEnvHooks "$targetOffset" addEmacsVars
+    fi
+  '';
 
   doCheck = false;
 
@@ -63,9 +75,16 @@ stdenv.mkDerivation ({
   addEmacsNativeLoadPath = true;
 
   postInstall = ''
+    # Besides adding the output directory to the native load path, make sure
+    # the current package's elisp files are in the load path, otherwise
+    # (require 'file-b) from file-a.el in the same package will fail.
+    mkdir -p $out/share/emacs/native-lisp
+    source ${./emacs-funcs.sh}
+    addEmacsVars "$out"
+
     find $out/share/emacs -type f -name '*.el' -print0 \
       | xargs -0 -n 1 -I {} -P $NIX_BUILD_CORES sh -c \
-          "emacs --batch --eval=\"(add-to-list 'comp-eln-load-path \\\"$out/share/emacs/native-lisp/\\\")\" -f batch-native-compile {} || true"
+          "emacs --batch -f batch-native-compile {} || true"
   '';
 }
 
diff --git a/nixpkgs/pkgs/build-support/emacs/melpa.nix b/nixpkgs/pkgs/build-support/emacs/melpa.nix
index d6fe3085837e..824611b20c8a 100644
--- a/nixpkgs/pkgs/build-support/emacs/melpa.nix
+++ b/nixpkgs/pkgs/build-support/emacs/melpa.nix
@@ -1,7 +1,7 @@
 # builder for Emacs packages built for packages.el
 # using MELPA package-build.el
 
-{ lib, stdenv, fetchFromGitHub, emacs, texinfo }:
+{ lib, stdenv, fetchFromGitHub, emacs, texinfo, writeText }:
 
 with lib;
 
@@ -28,7 +28,7 @@ let
 
 in
 
-import ./generic.nix { inherit lib stdenv emacs texinfo; } ({
+import ./generic.nix { inherit lib stdenv emacs texinfo writeText; } ({
 
   ename =
     if ename == null
diff --git a/nixpkgs/pkgs/build-support/emacs/wrapper.nix b/nixpkgs/pkgs/build-support/emacs/wrapper.nix
index f34835eaf096..fcbf5bcabe6d 100644
--- a/nixpkgs/pkgs/build-support/emacs/wrapper.nix
+++ b/nixpkgs/pkgs/build-support/emacs/wrapper.nix
@@ -147,9 +147,15 @@ runCommand
         # Begin the new site-start.el by loading the original, which sets some
         # NixOS-specific paths. Paths are searched in the reverse of the order
         # they are specified in, so user and system profile paths are searched last.
+        #
+        # NOTE: Avoid displaying messages early at startup by binding
+        # inhibit-message to t. This would prevent the Emacs GUI from showing up
+        # prematurely. The messages would still be logged to the *Messages*
+        # buffer.
         rm -f $siteStart $siteStartByteCompiled $subdirs $subdirsByteCompiled
         cat >"$siteStart" <<EOF
-        (load-file "$emacs/share/emacs/site-lisp/site-start.el")
+        (let ((inhibit-message t))
+          (load-file "$emacs/share/emacs/site-lisp/site-start.el"))
         (add-to-list 'load-path "$out/share/emacs/site-lisp")
         (add-to-list 'exec-path "$out/bin")
         ${optionalString nativeComp ''
diff --git a/nixpkgs/pkgs/build-support/expand-response-params/default.nix b/nixpkgs/pkgs/build-support/expand-response-params/default.nix
index 2a4bee74197b..402f0071a533 100644
--- a/nixpkgs/pkgs/build-support/expand-response-params/default.nix
+++ b/nixpkgs/pkgs/build-support/expand-response-params/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     src=$PWD
   '';
   buildPhase = ''
-    "$CC" -std=c99 -O3 -o "expand-response-params" expand-response-params.c
+    NIX_CC_USE_RESPONSE_FILE=0 "$CC" -std=c99 -O3 -o "expand-response-params" expand-response-params.c
   '';
   installPhase = ''
     mkdir -p $prefix/bin
diff --git a/nixpkgs/pkgs/build-support/fetchbitbucket/default.nix b/nixpkgs/pkgs/build-support/fetchbitbucket/default.nix
index a99f72e9eaa7..e6e40c4379bb 100644
--- a/nixpkgs/pkgs/build-support/fetchbitbucket/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchbitbucket/default.nix
@@ -6,5 +6,4 @@
   inherit name;
   url = "https://bitbucket.org/${owner}/${repo}/get/${rev}.tar.gz";
   meta.homepage = "https://bitbucket.org/${owner}/${repo}/";
-  extraPostFetch = ''rm -f "$out"/.hg_archival.txt''; # impure file; see #12002
 } // removeAttrs args [ "owner" "repo" "rev" ]) // { inherit rev; }
diff --git a/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git b/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git
index 3cb115c5e6e6..f2df9d9a8693 100755
--- a/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -105,7 +105,7 @@ fi
 
 init_remote(){
     local url=$1
-    clean_git init
+    clean_git init --initial-branch=master
     clean_git remote add origin "$url"
     ( [ -n "$http_proxy" ] && clean_git config http.proxy "$http_proxy" ) || true
 }
@@ -149,7 +149,19 @@ checkout_hash(){
     fi
 
     clean_git fetch -t ${builder:+--progress} origin || return 1
-    clean_git checkout -b "$branchName" "$hash" || return 1
+
+    local object_type=$(git cat-file -t "$hash")
+    if [[ "$object_type" == "commit" ]]; then
+        clean_git checkout -b "$branchName" "$hash" || return 1
+    elif [[ "$object_type" == "tree" ]]; then
+        clean_git config user.email "nix-prefetch-git@localhost"
+        clean_git config user.name "nix-prefetch-git"
+        local commit_id=$(git commit-tree "$hash" -m "Commit created from tree hash $hash")
+        clean_git checkout -b "$branchName" "$commit_id" || return 1
+    else
+        echo "Unrecognized git object type: $object_type"
+        return 1
+    fi
 }
 
 # Fetch only a branch/tag and checkout it.
diff --git a/nixpkgs/pkgs/build-support/fetchgithub/default.nix b/nixpkgs/pkgs/build-support/fetchgithub/default.nix
index 66671dd0a6ae..3f355d10f8a1 100644
--- a/nixpkgs/pkgs/build-support/fetchgithub/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchgithub/default.nix
@@ -1,17 +1,19 @@
 { lib, fetchgit, fetchzip }:
 
 { owner, repo, rev, name ? "source"
-, fetchSubmodules ? false, private ? false
+, fetchSubmodules ? false, leaveDotGit ? null
+, deepClone ? false, private ? false
 , githubBase ? "github.com", varPrefix ? null
 , ... # For hash agility
-}@args: assert private -> !fetchSubmodules;
+}@args:
 let
   baseUrl = "https://${githubBase}/${owner}/${repo}";
   passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "private" "githubBase" "varPrefix" ];
   varBase = "NIX${if varPrefix == null then "" else "_${varPrefix}"}_GITHUB_PRIVATE_";
+  useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone;
   # We prefer fetchzip in cases we don't need submodules as the hash
   # is more stable in that case.
-  fetcher = if fetchSubmodules then fetchgit else fetchzip;
+  fetcher = if useFetchGit then fetchgit else fetchzip;
   privateAttrs = lib.optionalAttrs private {
     netrcPhase = ''
       if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then
@@ -26,8 +28,14 @@ let
     '';
     netrcImpureEnvVars = [ "${varBase}USERNAME" "${varBase}PASSWORD" ];
   };
-  fetcherArgs = (if fetchSubmodules
-    then { inherit rev fetchSubmodules; url = "${baseUrl}.git"; }
+  fetcherArgs = (if useFetchGit
+    then {
+      inherit rev deepClone fetchSubmodules; url = "${baseUrl}.git";
+    } // lib.optionalAttrs (leaveDotGit != null) { inherit leaveDotGit; }
     else ({ url = "${baseUrl}/archive/${rev}.tar.gz"; } // privateAttrs)
   ) // passthruAttrs // { inherit name; };
-in fetcher fetcherArgs // { meta.homepage = baseUrl; inherit rev; }
+in
+
+assert private -> !useFetchGit;
+
+fetcher fetcherArgs // { meta.homepage = baseUrl; inherit rev; }
diff --git a/nixpkgs/pkgs/build-support/fetchnuget/default.nix b/nixpkgs/pkgs/build-support/fetchnuget/default.nix
index 960bc3c1ffb2..ad61b9a51d2b 100644
--- a/nixpkgs/pkgs/build-support/fetchnuget/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchnuget/default.nix
@@ -19,7 +19,7 @@ else
 
     sourceRoot = ".";
 
-    buildInputs = [ unzip ];
+    nativeBuildInputs = [ unzip ];
 
     dontBuild = true;
 
diff --git a/nixpkgs/pkgs/build-support/fetchs3/default.nix b/nixpkgs/pkgs/build-support/fetchs3/default.nix
index 8c551c20aa04..acad0749b663 100644
--- a/nixpkgs/pkgs/build-support/fetchs3/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchs3/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenvNoCC, runCommand, awscli }:
+{ lib, runCommand, awscli }:
 
 { s3url
 , name ? builtins.baseNameOf s3url
diff --git a/nixpkgs/pkgs/build-support/fetchsourcehut/default.nix b/nixpkgs/pkgs/build-support/fetchsourcehut/default.nix
new file mode 100644
index 000000000000..ed2f074200cd
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/fetchsourcehut/default.nix
@@ -0,0 +1,25 @@
+{ fetchzip, lib }:
+
+{ owner
+, repo, rev
+, domain ? "sr.ht"
+, vc ? "git"
+, name ? "source"
+, ... # For hash agility
+} @ args:
+
+with lib;
+
+assert (lib.assertOneOf "vc" vc [ "hg" "git" ]);
+
+let
+  baseUrl = "https://${vc}.${domain}/${owner}/${repo}";
+
+in fetchzip (recursiveUpdate {
+  inherit name;
+  url = "${baseUrl}/archive/${rev}.tar.gz";
+  meta.homepage = "${baseUrl}/";
+  extraPostFetch = optionalString (vc == "hg") ''
+    rm -f "$out/.hg_archival.txt"
+  ''; # impure file; see #12002
+} (removeAttrs args [ "owner" "repo" "rev" "domain" "vc" ])) // { inherit rev; }
diff --git a/nixpkgs/pkgs/build-support/fetchurl/default.nix b/nixpkgs/pkgs/build-support/fetchurl/default.nix
index c65738aef41a..8ce69a7f1878 100644
--- a/nixpkgs/pkgs/build-support/fetchurl/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchurl/default.nix
@@ -104,7 +104,9 @@ let
     if urls != [] && url == "" then
       (if lib.isList urls then urls
        else throw "`urls` is not a list")
-    else if urls == [] && url != "" then [url]
+    else if urls == [] && url != "" then
+      (if lib.isString url then [url]
+       else throw "`url` is not a string")
     else throw "fetchurl requires either `url` or `urls` to be set";
 
   hash_ =
diff --git a/nixpkgs/pkgs/build-support/fetchzip/default.nix b/nixpkgs/pkgs/build-support/fetchzip/default.nix
index b00983772e4b..cde4d4f579f4 100644
--- a/nixpkgs/pkgs/build-support/fetchzip/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchzip/default.nix
@@ -5,16 +5,19 @@
 # (e.g. due to minor changes in the compression algorithm, or changes
 # in timestamps).
 
-{ fetchurl, unzip }:
+{ lib, fetchurl, unzip }:
 
 { # Optionally move the contents of the unpacked tree up one level.
   stripRoot ? true
-, url
+, url ? ""
+, urls ? []
 , extraPostFetch ? ""
 , name ? "source"
 , ... } @ args:
 
-(fetchurl ({
+(fetchurl (let
+  basename = baseNameOf (if url != "" then url else builtins.head urls);
+in {
   inherit name;
 
   recursiveHash = true;
@@ -27,7 +30,7 @@
       mkdir "$unpackDir"
       cd "$unpackDir"
 
-      renamed="$TMPDIR/${baseNameOf url}"
+      renamed="$TMPDIR/${basename}"
       mv "$downloadedFile" "$renamed"
       unpackFile "$renamed"
     ''
diff --git a/nixpkgs/pkgs/build-support/go/garble.nix b/nixpkgs/pkgs/build-support/go/garble.nix
new file mode 100644
index 000000000000..da1e3152ba4c
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/go/garble.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, lib
+}:
+buildGoModule rec {
+  pname = "garble";
+  version = "20200107";
+
+  src = fetchFromGitHub {
+    owner = "burrowers";
+    repo = pname;
+    rev = "835f4aadf321521acf06aac4d5068473dc4b2ac1";
+    sha256 = "sha256-NodsVHRll2YZoxrhmniJvelQOStG82u3kJyc0t8OXD8=";
+  };
+
+  vendorSha256 = "sha256-x2fk2QmZDK2yjyfYdK7x+sQjvt7tuggmm8ieVjsNKek=";
+
+  preBuild = ''
+    # https://github.com/burrowers/garble/issues/184
+    substituteInPlace testdata/scripts/tiny.txt \
+      --replace "{6,8}" "{4,8}"
+  '' + lib.optionalString (!stdenv.isx86_64) ''
+    # The test assumex amd64 assembly
+    rm testdata/scripts/asm.txt
+  '';
+
+  meta = {
+    description = "Obfuscate Go code by wrapping the Go toolchain";
+    homepage = "https://github.com/burrowers/garble/";
+    maintainers = with lib.maintainers; [ davhau ];
+    license = lib.licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/build-support/ocaml/dune.nix b/nixpkgs/pkgs/build-support/ocaml/dune.nix
index f9f59b21510f..56fe8a60484e 100644
--- a/nixpkgs/pkgs/build-support/ocaml/dune.nix
+++ b/nixpkgs/pkgs/build-support/ocaml/dune.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv, ocaml, findlib, dune, dune_2 }:
+{ lib, stdenv, ocaml, findlib, dune_1, dune_2 }:
 
 { pname, version, buildInputs ? [], enableParallelBuilding ? true, ... }@args:
 
-let Dune = if args.useDune2 or false then dune_2 else dune; in
+let Dune = if args.useDune2 or false then dune_2 else dune_1; in
 
 if args ? minimumOCamlVersion &&
    ! lib.versionAtLeast ocaml.version args.minimumOCamlVersion
diff --git a/nixpkgs/pkgs/build-support/release/ant-build.nix b/nixpkgs/pkgs/build-support/release/ant-build.nix
index 996f4f45d07b..6b59241e01ed 100644
--- a/nixpkgs/pkgs/build-support/release/ant-build.nix
+++ b/nixpkgs/pkgs/build-support/release/ant-build.nix
@@ -108,7 +108,8 @@ stdenv.mkDerivation (
   {
     name = name + (if src ? version then "-" + src.version else "");
 
-    buildInputs = [ant jre zip unzip] ++ lib.optional (args ? buildInputs) args.buildInputs ;
+    nativeBuildInputs = [ unzip ];
+    buildInputs = [ant jre zip] ++ lib.optional (args ? buildInputs) args.buildInputs ;
 
     postHook = ''
       mkdir -p $out/nix-support
diff --git a/nixpkgs/pkgs/build-support/release/debian-build.nix b/nixpkgs/pkgs/build-support/release/debian-build.nix
index 4c2d82ce630b..bd54401e2356 100644
--- a/nixpkgs/pkgs/build-support/release/debian-build.nix
+++ b/nixpkgs/pkgs/build-support/release/debian-build.nix
@@ -3,7 +3,7 @@
 
 { name ? "debian-build"
 , diskImage
-, src, lib, stdenv, vmTools, checkinstall
+, src, stdenv, vmTools, checkinstall
 , fsTranslation ? false
 , # Features provided by this package.
   debProvides ? []
@@ -21,7 +21,7 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
     prePhases = "installExtraDebsPhase sysInfoPhase";
   }
 
-  // removeAttrs args ["vmTools"] //
+  // removeAttrs args ["vmTools" "lib"] //
 
   {
     name = name + "-" + diskImage.name + (if src ? version then "-" + src.version else "");
diff --git a/nixpkgs/pkgs/build-support/release/nix-build.nix b/nixpkgs/pkgs/build-support/release/nix-build.nix
index 97df52eaced2..ac51b90e0163 100644
--- a/nixpkgs/pkgs/build-support/release/nix-build.nix
+++ b/nixpkgs/pkgs/build-support/release/nix-build.nix
@@ -83,9 +83,9 @@ stdenv.mkDerivation (
     '';
   }
 
-  // args //
+  // removeAttrs args [ "lib" ] # Propagating lib causes the evaluation to fail, because lib is a function that can't be converted to a string
 
-  {
+  // {
     name = name + (if src ? version then "-" + src.version else "");
 
     postHook = ''
diff --git a/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index 84d1b2300f14..df3129d536dc 100644
--- a/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -9,12 +9,14 @@
 
   let
     baseRustcOpts =
-      [(if release then "-C opt-level=3" else "-C debuginfo=2")]
-      ++ ["-C codegen-units=$NIX_BUILD_CORES"]
-      ++ ["--remap-path-prefix=$NIX_BUILD_TOP=/" ]
-      ++ [(mkRustcDepArgs dependencies crateRenames)]
-      ++ [(mkRustcFeatureArgs crateFeatures)]
-      ++ extraRustcOpts
+      [
+        (if release then "-C opt-level=3" else "-C debuginfo=2")
+        "-C codegen-units=$NIX_BUILD_CORES"
+        "-C incremental=no"
+        "--remap-path-prefix=$NIX_BUILD_TOP=/"
+        (mkRustcDepArgs dependencies crateRenames)
+        (mkRustcFeatureArgs crateFeatures)
+      ] ++ extraRustcOpts
       ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--target ${rust.toRustTargetSpec stdenv.hostPlatform} -C linker=${stdenv.hostPlatform.config}-gcc"
       # since rustc 1.42 the "proc_macro" crate is part of the default crate prelude
       # https://github.com/rust-lang/cargo/commit/4d64eb99a4#diff-7f98585dbf9d30aa100c8318e2c77e79R1021-R1022
diff --git a/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
index d1010ac1adb3..3eaba1736fcd 100644
--- a/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
+++ b/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
@@ -24,7 +24,7 @@ let version_ = lib.splitString "-" crateVersion;
     version = lib.splitVersion (lib.head version_);
     rustcOpts = lib.foldl' (opts: opt: opts + " " + opt)
         (if release then "-C opt-level=3" else "-C debuginfo=2")
-        (["-C codegen-units=$NIX_BUILD_CORES"] ++ extraRustcOpts);
+        (["-C codegen-units=$NIX_BUILD_CORES -C incremental=no"] ++ extraRustcOpts);
     buildDeps = mkRustcDepArgs buildDependencies crateRenames;
     authors = lib.concatStringsSep ":" crateAuthors;
     optLevel = if release then 3 else 0;
diff --git a/nixpkgs/pkgs/build-support/rust/default.nix b/nixpkgs/pkgs/build-support/rust/default.nix
index 81ad162bebea..6d213c934954 100644
--- a/nixpkgs/pkgs/build-support/rust/default.nix
+++ b/nixpkgs/pkgs/build-support/rust/default.nix
@@ -2,8 +2,10 @@
 , lib
 , buildPackages
 , cacert
-, cargo
-, diffutils
+, cargoBuildHook
+, cargoCheckHook
+, cargoInstallHook
+, cargoSetupHook
 , fetchCargoTarball
 , runCommandNoCC
 , rustPlatform
@@ -25,6 +27,9 @@ let
       # Legacy hash
     , cargoSha256 ? ""
 
+      # Name for the vendored dependencies tarball
+    , cargoDepsName ? name
+
     , src ? null
     , srcs ? null
     , unpackPhase ? null
@@ -36,14 +41,11 @@ let
     , nativeBuildInputs ? []
     , cargoUpdateHook ? ""
     , cargoDepsHook ? ""
-    , cargoBuildFlags ? []
     , buildType ? "release"
     , meta ? {}
-    , target ? rust.toRustTargetSpec stdenv.hostPlatform
     , cargoVendorDir ? null
     , checkType ? buildType
     , depsExtraArgs ? {}
-    , cargoParallelTestThreads ? true
 
     # Toggles whether a custom sysroot is created when the target is a .json file.
     , __internal_dontAddSysroot ? false
@@ -62,7 +64,8 @@ let
 
       cargoDeps = if cargoVendorDir == null
         then fetchCargoTarball ({
-            inherit name src srcs sourceRoot unpackPhase cargoUpdateHook;
+            inherit src srcs sourceRoot unpackPhase cargoUpdateHook;
+            name = cargoDepsName;
             hash = cargoHash;
             patches = cargoPatches;
             sha256 = cargoSha256;
@@ -73,19 +76,7 @@ let
       # against the src fixed-output derivation to check consistency.
       validateCargoDeps = !(cargoHash == "" && cargoSha256 == "");
 
-      # Some cargo builds include build hooks that modify their own vendor
-      # dependencies. This copies the vendor directory into the build tree and makes
-      # it writable. If we're using a tarball, the unpackFile hook already handles
-      # this for us automatically.
-      setupVendorDir = if cargoVendorDir == null
-        then (''
-          unpackFile "$cargoDeps"
-          cargoDepsCopy=$(stripHash $cargoDeps)
-        '')
-        else ''
-          cargoDepsCopy="$sourceRoot/${cargoVendorDir}"
-        '';
-
+      target = rust.toRustTargetSpec stdenv.hostPlatform;
       targetIsJSON = lib.hasSuffix ".json" target;
       useSysroot = targetIsJSON && !__internal_dontAddSysroot;
 
@@ -101,18 +92,6 @@ let
         originalCargoToml = src + /Cargo.toml; # profile info is later extracted
       };
 
-      ccForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc";
-      cxxForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
-      ccForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
-      cxxForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
-      releaseDir = "target/${shortTarget}/${buildType}";
-      tmpDir = "${releaseDir}-tmp";
-
-      # Specify the stdenv's `diff` by abspath to ensure that the user's build
-      # inputs do not cause us to find the wrong `diff`.
-      # The `.nativeDrv` stanza works like nativeBuildInputs and ensures cross-compiling has the right version available.
-      diff = "${diffutils.nativeDrv or diffutils}/bin/diff";
-
     in
 
     # Tests don't currently work for `no_std`, and all custom sysroots are currently built without `std`.
@@ -122,11 +101,24 @@ let
     stdenv.mkDerivation ((removeAttrs args ["depsExtraArgs"]) // lib.optionalAttrs useSysroot {
       RUSTFLAGS = "--sysroot ${sysroot} " + (args.RUSTFLAGS or "");
     } // {
-      inherit cargoDeps;
+      inherit buildAndTestSubdir cargoDeps;
+
+      cargoBuildType = buildType;
+
+      cargoCheckType = checkType;
 
       patchRegistryDeps = ./patch-registry-deps;
 
-      nativeBuildInputs = nativeBuildInputs ++ [ cacert git cargo rustc ];
+      nativeBuildInputs = nativeBuildInputs ++ [
+        cacert
+        git
+        cargoBuildHook
+        cargoCheckHook
+        cargoInstallHook
+        cargoSetupHook
+        rustc
+      ];
+
       buildInputs = buildInputs ++ lib.optional stdenv.hostPlatform.isMinGW windows.pthreads;
 
       patches = cargoPatches ++ patches;
@@ -137,147 +129,18 @@ let
       postUnpack = ''
         eval "$cargoDepsHook"
 
-        ${setupVendorDir}
-
-        mkdir .cargo
-        config="$(pwd)/$cargoDepsCopy/.cargo/config";
-        if [[ ! -e $config ]]; then
-          config=${./fetchcargo-default-config.toml};
-        fi;
-        substitute $config .cargo/config \
-          --subst-var-by vendor "$(pwd)/$cargoDepsCopy"
-
-        cat >> .cargo/config <<'EOF'
-        [target."${rust.toRustTarget stdenv.buildPlatform}"]
-        "linker" = "${ccForBuild}"
-        ${lib.optionalString (stdenv.buildPlatform.config != stdenv.hostPlatform.config) ''
-        [target."${shortTarget}"]
-        "linker" = "${ccForHost}"
-        ${# https://github.com/rust-lang/rust/issues/46651#issuecomment-433611633
-          lib.optionalString (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isAarch64) ''
-        "rustflags" = [ "-C", "target-feature=+crt-static", "-C", "link-arg=-lgcc" ]
-        ''}
-        ''}
-        EOF
-
         export RUST_LOG=${logLevel}
       '' + (args.postUnpack or "");
 
-      # After unpacking and applying patches, check that the Cargo.lock matches our
-      # src package. Note that we do this after the patchPhase, because the
-      # patchPhase may create the Cargo.lock if upstream has not shipped one.
-      postPatch = (args.postPatch or "") + lib.optionalString validateCargoDeps ''
-        cargoDepsLockfile=$NIX_BUILD_TOP/$cargoDepsCopy/Cargo.lock
-        srcLockfile=$NIX_BUILD_TOP/$sourceRoot/Cargo.lock
-
-        echo "Validating consistency between $srcLockfile and $cargoDepsLockfile"
-        if ! ${diff} $srcLockfile $cargoDepsLockfile; then
-
-          # If the diff failed, first double-check that the file exists, so we can
-          # give a friendlier error msg.
-          if ! [ -e $srcLockfile ]; then
-            echo "ERROR: Missing Cargo.lock from src. Expected to find it at: $srcLockfile"
-            echo "Hint: You can use the cargoPatches attribute to add a Cargo.lock manually to the build."
-            exit 1
-          fi
-
-          if ! [ -e $cargoDepsLockfile ]; then
-            echo "ERROR: Missing lockfile from cargo vendor. Expected to find it at: $cargoDepsLockfile"
-            exit 1
-          fi
-
-          echo
-          echo "ERROR: cargoSha256 is out of date"
-          echo
-          echo "Cargo.lock is not the same in $cargoDepsCopy"
-          echo
-          echo "To fix the issue:"
-          echo '1. Use "0000000000000000000000000000000000000000000000000000" as the cargoSha256 value'
-          echo "2. Build the derivation and wait for it to fail with a hash mismatch"
-          echo "3. Copy the 'got: sha256:' value back into the cargoSha256 field"
-          echo
-
-          exit 1
-        fi
-      '' + ''
-        unset cargoDepsCopy
-      '';
-
       configurePhase = args.configurePhase or ''
         runHook preConfigure
         runHook postConfigure
       '';
 
-      buildPhase = with builtins; args.buildPhase or ''
-        ${lib.optionalString (buildAndTestSubdir != null) "pushd ${buildAndTestSubdir}"}
-        runHook preBuild
-
-        (
-        set -x
-        env \
-          "CC_${rust.toRustTarget stdenv.buildPlatform}"="${ccForBuild}" \
-          "CXX_${rust.toRustTarget stdenv.buildPlatform}"="${cxxForBuild}" \
-          "CC_${rust.toRustTarget stdenv.hostPlatform}"="${ccForHost}" \
-          "CXX_${rust.toRustTarget stdenv.hostPlatform}"="${cxxForHost}" \
-          cargo build -j $NIX_BUILD_CORES \
-            ${lib.optionalString (buildType == "release") "--release"} \
-            --target ${target} \
-            --frozen ${concatStringsSep " " cargoBuildFlags}
-        )
-
-        runHook postBuild
-
-        ${lib.optionalString (buildAndTestSubdir != null) "popd"}
-
-        # This needs to be done after postBuild: packages like `cargo` do a pushd/popd in
-        # the pre/postBuild-hooks that need to be taken into account before gathering
-        # all binaries to install.
-        mkdir -p $tmpDir
-        cp -r $releaseDir/* $tmpDir/
-        bins=$(find $tmpDir \
-          -maxdepth 1 \
-          -type f \
-          -executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \))
-      '';
-
-      checkPhase = args.checkPhase or (let
-        argstr = "${lib.optionalString (checkType == "release") "--release"} --target ${target} --frozen";
-        threads = if cargoParallelTestThreads then "$NIX_BUILD_CORES" else "1";
-      in ''
-        ${lib.optionalString (buildAndTestSubdir != null) "pushd ${buildAndTestSubdir}"}
-        runHook preCheck
-        echo "Running cargo test ${argstr} -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
-        cargo test -j $NIX_BUILD_CORES ${argstr} -- --test-threads=${threads} ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
-        runHook postCheck
-        ${lib.optionalString (buildAndTestSubdir != null) "popd"}
-      '');
-
       doCheck = args.doCheck or true;
 
       strictDeps = true;
 
-      inherit releaseDir tmpDir;
-
-      installPhase = args.installPhase or ''
-        runHook preInstall
-
-        # rename the output dir to a architecture independent one
-        mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${tmpDir}$')
-        for target in "''${targets[@]}"; do
-          rm -rf "$target/../../${buildType}"
-          ln -srf "$target" "$target/../../"
-        done
-        mkdir -p $out/bin $out/lib
-
-        xargs -r cp -t $out/bin <<< $bins
-        find $tmpDir \
-          -maxdepth 1 \
-          -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \
-          -print0 | xargs -r -0 cp -t $out/lib
-        rmdir --ignore-fail-on-non-empty $out/lib $out/bin
-        runHook postInstall
-      '';
-
       passthru = { inherit cargoDeps; } // (args.passthru or {});
 
       meta = {
diff --git a/nixpkgs/pkgs/build-support/rust/fetchCargoTarball.nix b/nixpkgs/pkgs/build-support/rust/fetchCargoTarball.nix
index c30e88d99b83..3b36554e7075 100644
--- a/nixpkgs/pkgs/build-support/rust/fetchCargoTarball.nix
+++ b/nixpkgs/pkgs/build-support/rust/fetchCargoTarball.nix
@@ -21,7 +21,7 @@ in
 , src ? null
 , srcs ? []
 , patches ? []
-, sourceRoot
+, sourceRoot ? ""
 , hash ? ""
 , sha256 ? ""
 , cargoUpdateHook ? ""
diff --git a/nixpkgs/pkgs/build-support/rust/hooks/cargo-build-hook.sh b/nixpkgs/pkgs/build-support/rust/hooks/cargo-build-hook.sh
new file mode 100644
index 000000000000..c10120c5aa19
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/hooks/cargo-build-hook.sh
@@ -0,0 +1,41 @@
+declare -a cargoBuildFlags
+
+cargoBuildHook() {
+    echo "Executing cargoBuildHook"
+
+    runHook preBuild
+
+    if [ ! -z "${buildAndTestSubdir-}" ]; then
+        pushd "${buildAndTestSubdir}"
+    fi
+
+    if [ "${cargoBuildType}" != "debug" ]; then
+        cargoBuildProfileFlag="--${cargoBuildType}"
+    fi
+
+    (
+    set -x
+    env \
+      "CC_@rustBuildPlatform@=@ccForBuild@" \
+      "CXX_@rustBuildPlatform@=@cxxForBuild@" \
+      "CC_@rustTargetPlatform@=@ccForHost@" \
+      "CXX_@rustTargetPlatform@=@cxxForHost@" \
+      cargo build -j $NIX_BUILD_CORES \
+        --target @rustTargetPlatformSpec@ \
+        --frozen \
+        ${cargoBuildProfileFlag} \
+        ${cargoBuildFlags}
+    )
+
+    if [ ! -z "${buildAndTestSubdir-}" ]; then
+        popd
+    fi
+
+    runHook postBuild
+
+    echo "Finished cargoBuildHook"
+}
+
+if [ -z "${dontCargoBuild-}" ] && [ -z "${buildPhase-}" ]; then
+  buildPhase=cargoBuildHook
+fi
diff --git a/nixpkgs/pkgs/build-support/rust/hooks/cargo-check-hook.sh b/nixpkgs/pkgs/build-support/rust/hooks/cargo-check-hook.sh
new file mode 100644
index 000000000000..f0339afb38fa
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/hooks/cargo-check-hook.sh
@@ -0,0 +1,46 @@
+declare -a checkFlags
+declare -a cargoTestFlags
+
+cargoCheckHook() {
+    echo "Executing cargoCheckHook"
+
+    runHook preCheck
+
+    if [[ -n "${buildAndTestSubdir-}" ]]; then
+        pushd "${buildAndTestSubdir}"
+    fi
+
+    if [[ -z ${dontUseCargoParallelTests-} ]]; then
+        threads=$NIX_BUILD_CORES
+    else
+        threads=1
+    fi
+
+    if [ "${cargoBuildType}" != "debug" ]; then
+        cargoBuildProfileFlag="--${cargoBuildType}"
+    fi
+
+    argstr="${cargoBuildProfileFlag} --target @rustTargetPlatformSpec@ --frozen ${cargoTestFlags}";
+
+    (
+        set -x
+        cargo test \
+              -j $NIX_BUILD_CORES \
+              ${argstr} -- \
+              --test-threads=${threads} \
+              ${checkFlags} \
+              ${checkFlagsArray+"${checkFlagsArray[@]}"}
+    )
+
+    if [[ -n "${buildAndTestSubdir-}" ]]; then
+        popd
+    fi
+
+    echo "Finished cargoCheckHook"
+
+    runHook postCheck
+}
+
+if [ -z "${dontCargoCheck-}" ] && [ -z "${checkPhase-}" ]; then
+  checkPhase=cargoCheckHook
+fi
diff --git a/nixpkgs/pkgs/build-support/rust/hooks/cargo-install-hook.sh b/nixpkgs/pkgs/build-support/rust/hooks/cargo-install-hook.sh
new file mode 100644
index 000000000000..69ce72669366
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/hooks/cargo-install-hook.sh
@@ -0,0 +1,49 @@
+cargoInstallPostBuildHook() {
+    echo "Executing cargoInstallPostBuildHook"
+
+    releaseDir=target/@shortTarget@/$cargoBuildType
+    tmpDir="${releaseDir}-tmp";
+
+    mkdir -p $tmpDir
+    cp -r ${releaseDir}/* $tmpDir/
+    bins=$(find $tmpDir \
+      -maxdepth 1 \
+      -type f \
+      -executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \))
+
+    echo "Finished cargoInstallPostBuildHook"
+}
+
+cargoInstallHook() {
+    echo "Executing cargoInstallHook"
+
+    runHook preInstall
+
+    # rename the output dir to a architecture independent one
+
+    releaseDir=target/@shortTarget@/$cargoBuildType
+    tmpDir="${releaseDir}-tmp";
+
+    mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep "${tmpDir}$")
+    for target in "${targets[@]}"; do
+      rm -rf "$target/../../${cargoBuildType}"
+      ln -srf "$target" "$target/../../"
+    done
+    mkdir -p $out/bin $out/lib
+
+    xargs -r cp -t $out/bin <<< $bins
+    find $tmpDir \
+      -maxdepth 1 \
+      -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \
+      -print0 | xargs -r -0 cp -t $out/lib
+    rmdir --ignore-fail-on-non-empty $out/lib $out/bin
+    runHook postInstall
+
+    echo "Finished cargoInstallHook"
+}
+
+
+if [ -z "${dontCargoInstall-}" ] && [ -z "${installPhase-}" ]; then
+  installPhase=cargoInstallHook
+  postBuildHooks+=(cargoInstallPostBuildHook)
+fi
diff --git a/nixpkgs/pkgs/build-support/rust/hooks/cargo-setup-hook.sh b/nixpkgs/pkgs/build-support/rust/hooks/cargo-setup-hook.sh
new file mode 100644
index 000000000000..842e66b5170e
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/hooks/cargo-setup-hook.sh
@@ -0,0 +1,86 @@
+cargoSetupPostUnpackHook() {
+    echo "Executing cargoSetupPostUnpackHook"
+
+    # Some cargo builds include build hooks that modify their own vendor
+    # dependencies. This copies the vendor directory into the build tree and makes
+    # it writable. If we're using a tarball, the unpackFile hook already handles
+    # this for us automatically.
+    if [ -z $cargoVendorDir ]; then
+        unpackFile "$cargoDeps"
+        export cargoDepsCopy=$(stripHash $cargoDeps)
+    else
+      cargoDepsCopy="$sourceRoot/${cargoRoot:+$cargoRoot/}${cargoVendorDir}"
+    fi
+
+    if [ ! -d .cargo ]; then
+        mkdir .cargo
+    fi
+
+    config="$(pwd)/$cargoDepsCopy/.cargo/config";
+    if [[ ! -e $config ]]; then
+      config=@defaultConfig@
+    fi;
+
+    tmp_config=$(mktemp)
+    substitute $config $tmp_config \
+      --subst-var-by vendor "$(pwd)/$cargoDepsCopy"
+    cat ${tmp_config} >> .cargo/config
+
+    cat >> .cargo/config <<'EOF'
+    @rustTarget@
+EOF
+
+    echo "Finished cargoSetupPostUnpackHook"
+}
+
+# After unpacking and applying patches, check that the Cargo.lock matches our
+# src package. Note that we do this after the patchPhase, because the
+# patchPhase may create the Cargo.lock if upstream has not shipped one.
+cargoSetupPostPatchHook() {
+    echo "Executing cargoSetupPostPatchHook"
+
+    cargoDepsLockfile="$NIX_BUILD_TOP/$cargoDepsCopy/Cargo.lock"
+    srcLockfile="$NIX_BUILD_TOP/$sourceRoot/${cargoRoot:+$cargoRoot/}/Cargo.lock"
+
+    echo "Validating consistency between $srcLockfile and $cargoDepsLockfile"
+    if ! @diff@ $srcLockfile $cargoDepsLockfile; then
+
+      # If the diff failed, first double-check that the file exists, so we can
+      # give a friendlier error msg.
+      if ! [ -e $srcLockfile ]; then
+        echo "ERROR: Missing Cargo.lock from src. Expected to find it at: $srcLockfile"
+        echo "Hint: You can use the cargoPatches attribute to add a Cargo.lock manually to the build."
+        exit 1
+      fi
+
+      if ! [ -e $cargoDepsLockfile ]; then
+        echo "ERROR: Missing lockfile from cargo vendor. Expected to find it at: $cargoDepsLockfile"
+        exit 1
+      fi
+
+      echo
+      echo "ERROR: cargoSha256 is out of date"
+      echo
+      echo "Cargo.lock is not the same in $cargoDepsCopy"
+      echo
+      echo "To fix the issue:"
+      echo '1. Use "0000000000000000000000000000000000000000000000000000" as the cargoSha256 value'
+      echo "2. Build the derivation and wait for it to fail with a hash mismatch"
+      echo "3. Copy the 'got: sha256:' value back into the cargoSha256 field"
+      echo
+
+      exit 1
+    fi
+
+    unset cargoDepsCopy
+
+    echo "Finished cargoSetupPostPatchHook"
+}
+
+if [ -z "${dontCargoSetupPostUnpack-}" ]; then
+  postUnpackHooks+=(cargoSetupPostUnpackHook)
+fi
+
+if [ -z ${cargoVendorDir-} ]; then
+  postPatchHooks+=(cargoSetupPostPatchHook)
+fi
diff --git a/nixpkgs/pkgs/build-support/rust/hooks/default.nix b/nixpkgs/pkgs/build-support/rust/hooks/default.nix
new file mode 100644
index 000000000000..e8927e2b542f
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/hooks/default.nix
@@ -0,0 +1,94 @@
+{ buildPackages
+, callPackage
+, cargo
+, diffutils
+, lib
+, makeSetupHook
+, maturin
+, rust
+, stdenv
+, target ? rust.toRustTargetSpec stdenv.hostPlatform
+}:
+
+let
+  targetIsJSON = lib.hasSuffix ".json" target;
+
+  # see https://github.com/rust-lang/cargo/blob/964a16a28e234a3d397b2a7031d4ab4a428b1391/src/cargo/core/compiler/compile_kind.rs#L151-L168
+  # the "${}" is needed to transform the path into a /nix/store path before baseNameOf
+  shortTarget = if targetIsJSON then
+      (lib.removeSuffix ".json" (builtins.baseNameOf "${target}"))
+    else target;
+  ccForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc";
+  cxxForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
+  ccForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
+  cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
+  rustBuildPlatform = rust.toRustTarget stdenv.buildPlatform;
+  rustTargetPlatform = rust.toRustTarget stdenv.hostPlatform;
+  rustTargetPlatformSpec = rust.toRustTargetSpec stdenv.hostPlatform;
+in {
+  cargoBuildHook = callPackage ({ }:
+    makeSetupHook {
+      name = "cargo-build-hook.sh";
+      deps = [ cargo ];
+      substitutions = {
+        inherit ccForBuild ccForHost cxxForBuild cxxForHost
+          rustBuildPlatform rustTargetPlatform rustTargetPlatformSpec;
+      };
+    } ./cargo-build-hook.sh) {};
+
+  cargoCheckHook = callPackage ({ }:
+    makeSetupHook {
+      name = "cargo-check-hook.sh";
+      deps = [ cargo ];
+      substitutions = {
+        inherit rustTargetPlatformSpec;
+      };
+    } ./cargo-check-hook.sh) {};
+
+  cargoInstallHook = callPackage ({ }:
+    makeSetupHook {
+      name = "cargo-install-hook.sh";
+      deps = [ ];
+      substitutions = {
+        inherit shortTarget;
+      };
+    } ./cargo-install-hook.sh) {};
+
+  cargoSetupHook = callPackage ({ }:
+    makeSetupHook {
+      name = "cargo-setup-hook.sh";
+      deps = [ ];
+      substitutions = {
+        defaultConfig = ../fetchcargo-default-config.toml;
+
+        # Specify the stdenv's `diff` by abspath to ensure that the user's build
+        # inputs do not cause us to find the wrong `diff`.
+        # The `.nativeDrv` stanza works like nativeBuildInputs and ensures cross-compiling has the right version available.
+        diff = "${diffutils.nativeDrv or diffutils}/bin/diff";
+
+        # Target platform
+        rustTarget = ''
+          [target."${rust.toRustTarget stdenv.buildPlatform}"]
+          "linker" = "${ccForBuild}"
+          ${lib.optionalString (stdenv.buildPlatform.config != stdenv.hostPlatform.config) ''
+            [target."${shortTarget}"]
+            "linker" = "${ccForHost}"
+            ${# https://github.com/rust-lang/rust/issues/46651#issuecomment-433611633
+            lib.optionalString (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isAarch64) ''
+              "rustflags" = [ "-C", "target-feature=+crt-static", "-C", "link-arg=-lgcc" ]
+            ''}
+          ''}
+        '';
+      };
+    } ./cargo-setup-hook.sh) {};
+
+  maturinBuildHook = callPackage ({ }:
+    makeSetupHook {
+      name = "maturin-build-hook.sh";
+      deps = [ cargo maturin ];
+      substitutions = {
+        inherit ccForBuild ccForHost cxxForBuild cxxForHost
+          rustBuildPlatform rustTargetPlatform rustTargetPlatformSpec;
+      };
+    } ./maturin-build-hook.sh) {};
+}
diff --git a/nixpkgs/pkgs/build-support/rust/hooks/maturin-build-hook.sh b/nixpkgs/pkgs/build-support/rust/hooks/maturin-build-hook.sh
new file mode 100644
index 000000000000..7e2599d92240
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/hooks/maturin-build-hook.sh
@@ -0,0 +1,39 @@
+maturinBuildHook() {
+    echo "Executing maturinBuildHook"
+
+    runHook preBuild
+
+    if [ ! -z "${buildAndTestSubdir-}" ]; then
+        pushd "${buildAndTestSubdir}"
+    fi
+
+    (
+    set -x
+    env \
+      "CC_@rustBuildPlatform@=@ccForBuild@" \
+      "CXX_@rustBuildPlatform@=@cxxForBuild@" \
+      "CC_@rustTargetPlatform@=@ccForHost@" \
+      "CXX_@rustTargetPlatform@=@cxxForHost@" \
+      maturin build \
+        --cargo-extra-args="-j $NIX_BUILD_CORES --frozen" \
+        --target @rustTargetPlatformSpec@ \
+        --manylinux off \
+        --strip \
+        --release \
+        ${maturinBuildFlags-}
+    )
+
+    runHook postBuild
+
+    if [ ! -z "${buildAndTestSubdir-}" ]; then
+        popd
+    fi
+
+    # Move the wheel to dist/ so that regular Python tooling can find it.
+    mkdir -p dist
+    mv target/wheels/*.whl dist/
+
+    echo "Finished maturinBuildHook"
+}
+
+buildPhase=maturinBuildHook
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/patch-shebangs.sh b/nixpkgs/pkgs/build-support/setup-hooks/patch-shebangs.sh
index b48b0c50f577..04ebcd2cc64e 100644
--- a/nixpkgs/pkgs/build-support/setup-hooks/patch-shebangs.sh
+++ b/nixpkgs/pkgs/build-support/setup-hooks/patch-shebangs.sh
@@ -24,10 +24,10 @@ fixupOutputHooks+=(patchShebangsAuto)
 patchShebangs() {
     local pathName
 
-    if [ "$1" = "--host" ]; then
+    if [[ "$1" == "--host" ]]; then
         pathName=HOST_PATH
         shift
-    elif [ "$1" = "--build" ]; then
+    elif [[ "$1" == "--build" ]]; then
         pathName=PATH
         shift
     fi
@@ -41,7 +41,7 @@ patchShebangs() {
     local oldInterpreterLine
     local newInterpreterLine
 
-    if [ $# -eq 0 ]; then
+    if [[ $# -eq 0 ]]; then
         echo "No arguments supplied to patchShebangs" >&2
         return 0
     fi
@@ -50,29 +50,29 @@ patchShebangs() {
     while IFS= read -r -d $'\0' f; do
         isScript "$f" || continue
 
-        oldInterpreterLine=$(head -1 "$f" | tail -c+3)
-        read -r oldPath arg0 args <<< "$oldInterpreterLine"
+        read -r oldInterpreterLine < "$f"
+        read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"
 
-        if [ -z "$pathName" ]; then
-            if [ -n "$strictDeps" ] && [[ "$f" = "$NIX_STORE"* ]]; then
+        if [[ -z "$pathName" ]]; then
+            if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then
                 pathName=HOST_PATH
             else
                 pathName=PATH
             fi
         fi
 
-        if $(echo "$oldPath" | grep -q "/bin/env$"); then
+        if [[ "$oldPath" == *"/bin/env" ]]; then
             # Check for unsupported 'env' functionality:
             # - options: something starting with a '-'
             # - environment variables: foo=bar
-            if $(echo "$arg0" | grep -q -- "^-.*\|.*=.*"); then
+            if [[ $arg0 == "-"* || $arg0 == *"="* ]]; then
                 echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" >&2
                 exit 1
             fi
 
             newPath="$(PATH="${!pathName}" command -v "$arg0" || true)"
         else
-            if [ "$oldPath" = "" ]; then
+            if [[ -z $oldPath ]]; then
                 # If no interpreter is specified linux will use /bin/sh. Set
                 # oldpath="/bin/sh" so that we get /nix/store/.../sh.
                 oldPath="/bin/sh"
@@ -84,19 +84,19 @@ patchShebangs() {
         fi
 
         # Strip trailing whitespace introduced when no arguments are present
-        newInterpreterLine="$(echo "$newPath $args" | sed 's/[[:space:]]*$//')"
+        newInterpreterLine="$newPath $args"
+        newInterpreterLine=${newInterpreterLine%${newInterpreterLine##*[![:space:]]}}
 
-        if [ -n "$oldPath" -a "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ]; then
-            if [ -n "$newPath" -a "$newPath" != "$oldPath" ]; then
+        if [[ -n "$oldPath" && "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ]]; then
+            if [[ -n "$newPath" && "$newPath" != "$oldPath" ]]; then
                 echo "$f: interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\""
                 # escape the escape chars so that sed doesn't interpret them
-                escapedInterpreterLine=$(echo "$newInterpreterLine" | sed 's|\\|\\\\|g')
+                escapedInterpreterLine=${newInterpreterLine//\\/\\\\}
+
                 # Preserve times, see: https://github.com/NixOS/nixpkgs/pull/33281
-                timestamp=$(mktemp)
-                touch -r "$f" "$timestamp"
+                timestamp=$(stat --printf "%y" "$f")
                 sed -i -e "1 s|.*|#\!$escapedInterpreterLine|" "$f"
-                touch -r "$timestamp" "$f"
-                rm "$timestamp"
+                touch --date "$timestamp" "$f"
             fi
         fi
     done < <(find "$@" -type f -perm -0100 -print0)
@@ -105,12 +105,12 @@ patchShebangs() {
 }
 
 patchShebangsAuto () {
-    if [ -z "${dontPatchShebangs-}" -a -e "$prefix" ]; then
+    if [[ -z "${dontPatchShebangs-}" && -e "$prefix" ]]; then
 
         # Dev output will end up being run on the build platform. An
         # example case of this is sdl2-config. Otherwise, we can just
         # use the runtime path (--host).
-        if [ "$output" != out ] && [ "$output" = "$outputDev" ]; then
+        if [[ "$output" != out && "$output" = "$outputDev" ]]; then
             patchShebangs --build "$prefix"
         else
             patchShebangs --host "$prefix"
diff --git a/nixpkgs/pkgs/build-support/setup-systemd-units.nix b/nixpkgs/pkgs/build-support/setup-systemd-units.nix
index 4fa2f42c39dc..4c7ee86669f5 100644
--- a/nixpkgs/pkgs/build-support/setup-systemd-units.nix
+++ b/nixpkgs/pkgs/build-support/setup-systemd-units.nix
@@ -58,7 +58,7 @@
 
           unitDir=/etc/systemd/system
           if [ ! -w "$unitDir" ]; then
-            unitDir=/etc/systemd-mutable/system
+            unitDir=/nix/var/nix/profiles/default/lib/systemd/system
             mkdir -p "$unitDir"
           fi
           declare -a unitsToStop unitsToStart
diff --git a/nixpkgs/pkgs/build-support/templaterpm/default.nix b/nixpkgs/pkgs/build-support/templaterpm/default.nix
index ffe5b0b45816..efe70efe6c44 100644
--- a/nixpkgs/pkgs/build-support/templaterpm/default.nix
+++ b/nixpkgs/pkgs/build-support/templaterpm/default.nix
@@ -4,7 +4,8 @@ stdenv.mkDerivation {
   pname = "nix-template-rpm";
   version = "0.1";
 
-  buildInputs = [ makeWrapper python toposort rpm ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python toposort rpm ];
 
   phases = [ "installPhase" "fixupPhase" ];
 
diff --git a/nixpkgs/pkgs/build-support/trivial-builders.nix b/nixpkgs/pkgs/build-support/trivial-builders.nix
index eab5366e1839..4995efd9a4bf 100644
--- a/nixpkgs/pkgs/build-support/trivial-builders.nix
+++ b/nixpkgs/pkgs/build-support/trivial-builders.nix
@@ -1,27 +1,12 @@
 { lib, stdenv, stdenvNoCC, lndir, runtimeShell }:
 
-let
-
-  runCommand' = runLocal: stdenv: name: env: buildCommand:
-    stdenv.mkDerivation ({
-      name = lib.strings.sanitizeDerivationName name;
-      inherit buildCommand;
-      passAsFile = [ "buildCommand" ];
-    }
-    // (lib.optionalAttrs runLocal {
-          preferLocalBuild = true;
-          allowSubstitutes = false;
-       })
-    // env);
-
-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. By default `runCommand' runs using
-  * stdenv with no compiler environment. `runCommandCC`
+  * prior to running the command. By default `runCommand` runs in a
+  * stdenv with no compiler environment. `runCommandCC` uses the default
+  * stdenv, `pkgs.stdenv`.
   *
   * Examples:
   * runCommand "name" {envVariable = true;} ''echo hello > $out''
@@ -42,13 +27,64 @@ rec {
   runCommand = runCommandNoCC;
   runCommandLocal = runCommandNoCCLocal;
 
-  runCommandNoCC = runCommand' false stdenvNoCC;
-  runCommandNoCCLocal = runCommand' true stdenvNoCC;
+  runCommandNoCC = name: env: runCommandWith {
+    stdenv = stdenvNoCC;
+    runLocal = false;
+    inherit name;
+    derivationArgs = env;
+  };
+  runCommandNoCCLocal = name: env: runCommandWith {
+    stdenv = stdenvNoCC;
+    runLocal = true;
+    inherit name;
+    derivationArgs = env;
+  };
 
-  runCommandCC = runCommand' false stdenv;
+  runCommandCC = name: env: runCommandWith {
+    stdenv = stdenv;
+    runLocal = false;
+    inherit name;
+    derivationArgs = env;
+  };
   # `runCommandCCLocal` left out on purpose.
   # We shouldn’t force the user to have a cc in scope.
 
+  /* Generalized version of the `runCommand`-variants
+   * which does customized behavior via a single
+   * attribute set passed as the first argument
+   * instead of having a lot of variants like
+   * `runCommand*`. Additionally it allows changing
+   * the used `stdenv` freely and has a more explicit
+   * approach to changing the arguments passed to
+   * `stdenv.mkDerivation`.
+   */
+  runCommandWith =
+    let
+      # prevent infinite recursion for the default stdenv value
+      defaultStdenv = stdenv;
+    in
+    { stdenv ? defaultStdenv
+    # which stdenv to use, defaults to a stdenv with a C compiler, pkgs.stdenv
+    , runLocal ? false
+    # whether to build this derivation locally instead of substituting
+    , derivationArgs ? {}
+    # extra arguments to pass to stdenv.mkDerivation
+    , name
+    # name of the resulting derivation
+    }: buildCommand:
+    stdenv.mkDerivation ({
+      name = lib.strings.sanitizeDerivationName name;
+      inherit buildCommand;
+      passAsFile = [ "buildCommand" ]
+        ++ (derivationArgs.passAsFile or []);
+    }
+    // (lib.optionalAttrs runLocal {
+          preferLocalBuild = true;
+          allowSubstitutes = false;
+       })
+    // builtins.removeAttrs derivationArgs [ "passAsFile" ]);
+
+
   /* Writes a text file to the nix store.
    * The contents of text is added to the file in the store.
    *
diff --git a/nixpkgs/pkgs/build-support/vm/default.nix b/nixpkgs/pkgs/build-support/vm/default.nix
index 759245aed1ae..f6be1b299f61 100644
--- a/nixpkgs/pkgs/build-support/vm/default.nix
+++ b/nixpkgs/pkgs/build-support/vm/default.nix
@@ -573,7 +573,7 @@ rec {
       buildCommand = ''
         ${createRootFS}
 
-        PATH=$PATH:${lib.makeBinPath [ dpkg dpkg glibc lzma ]}
+        PATH=$PATH:${lib.makeBinPath [ dpkg dpkg glibc xz ]}
 
         # Unpack the .debs.  We do this to prevent pre-install scripts
         # (which have lots of circular dependencies) from barfing.
diff --git a/nixpkgs/pkgs/build-support/writers/test.nix b/nixpkgs/pkgs/build-support/writers/test.nix
index 7b7a698376a1..689b45a126ff 100644
--- a/nixpkgs/pkgs/build-support/writers/test.nix
+++ b/nixpkgs/pkgs/build-support/writers/test.nix
@@ -1,15 +1,13 @@
-{
-  glib,
-  haskellPackages,
-  lib,
-  nodePackages,
-  perlPackages,
-  python2Packages,
-  python3Packages,
-  runCommand,
-  stdenv,
-  writers,
-  writeText
+{ glib
+, haskellPackages
+, lib
+, nodePackages
+, perlPackages
+, python2Packages
+, python3Packages
+, runCommand
+, writers
+, writeText
 }:
 with writers;
 let
diff --git a/nixpkgs/pkgs/common-updater/scripts.nix b/nixpkgs/pkgs/common-updater/scripts.nix
index 351db6198846..26c77e876362 100644
--- a/nixpkgs/pkgs/common-updater/scripts.nix
+++ b/nixpkgs/pkgs/common-updater/scripts.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "common-updater-scripts";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontUnpack = true;
 
diff --git a/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
index ebd171c65455..6e2122091872 100644
--- a/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
+++ b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     homepage = "https://help.gnome.org/users/gnome-help/";
     license = licenses.cc-by-30;
     maintainers = teams.gnome.members;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/data/documentation/man-pages/default.nix b/nixpkgs/pkgs/data/documentation/man-pages/default.nix
index a8f38b1a6c6a..d31272c2a5fb 100644
--- a/nixpkgs/pkgs/data/documentation/man-pages/default.nix
+++ b/nixpkgs/pkgs/data/documentation/man-pages/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "man-pages";
-  version = "5.09";
+  version = "5.11";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
-    sha256 = "1whbxim4diyan97y9pz9k4ck16rmjalw5i1m0dg6ycv3pxv386nz";
+    sha256 = "sha256-PtpdzlGEWZ7Dfa40lM+WTFUDYumkH7ckeS2mEL2xPKo=";
   };
 
   makeFlags = [ "MANDIR=$(out)/share/man" ];
diff --git a/nixpkgs/pkgs/data/fonts/3270font/default.nix b/nixpkgs/pkgs/data/fonts/3270font/default.nix
index dacfdfbcceae..d737c9383f15 100644
--- a/nixpkgs/pkgs/data/fonts/3270font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/3270font/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchzip }:
 let
-  version = "2.2.1";
+  version = "2.3.0";
 in
 fetchzip {
   name = "3270font-${version}";
 
-  url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_70de9c7.zip";
+  url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_fd00815.zip";
 
-  sha256 = "0spz9abp87r3bncjim6hs47fmhg86qbgips4x6nfpqzg5qh2xd2m";
+  sha256 = "0ny2jcsfa1kfzkm979dfzqv756ijm5xirm02ln7a4kwhxxsm5xr1";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
diff --git a/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
index 7f934658479a..e09ad70f1468 100644
--- a/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchzip }:
 let
-  version = "2009.22";
+  version = "2102.25";
 in
 fetchzip {
   name = "cascadia-code-${version}";
 
   url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
 
-  sha256 = "0wdkjzaf5a14yfiqqqn6wvi6db6r7g1m5r07cg9730b0mkzhfyhl";
+  sha256 = "14qhawcf1jmv68zdfbi2zfqdw4cf8fpk7plxzphmkqsp7hlw9pzx";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
diff --git a/nixpkgs/pkgs/data/fonts/curie/default.nix b/nixpkgs/pkgs/data/fonts/curie/default.nix
new file mode 100644
index 000000000000..fd21d1964a21
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/curie/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl }:
+
+let
+  version = "1.0";
+in fetchurl rec {
+  name = "curie-${version}";
+
+  url = "https://github.com/NerdyPepper/curie/releases/download/v${version}/curie-v${version}.tar.gz";
+
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
+  sha256 = "sha256-twPAzsbTveYW0rQd7FYZz5AMZgvPbNmn5c7Nfzn7B0A=";
+
+  postFetch = ''
+    tar xzf $downloadedFile
+    mkdir -p $out/share/fonts/misc
+    install *.otb $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "An upscaled version of scientifica";
+    homepage = "https://github.com/NerdyPepper/curie";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/input-fonts/default.nix b/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
index 9956325e15bc..36a18c1f8f1c 100644
--- a/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
@@ -1,31 +1,76 @@
-{ lib, stdenv, requireFile, unzip }:
+{ lib
+, stdenv
+, fetchzip
+, python3
+, config
+, acceptLicense ? config.input-fonts.acceptLicense or false
+}:
 
-stdenv.mkDerivation {
-  pname = "input-fonts";
-  version = "2019-11-25"; # date of the download and checksum
+let
 
-  src = requireFile {
-    name = "Input-Font.zip";
-    url = "https://input.fontbureau.com/download/";
-    sha256 = "10rax2a7vzidcs7kyfg5lv5bwp9i7kvjpdcsd10p0517syijkp3b";
-  };
+  throwLicense = throw ''
+    Input is available free of charge for private/unpublished usage. This includes things like your personal coding app or for composing plain text documents.
+    To use it, you need to agree to its license: https://input.djr.com/license/
+
+    You can express acceptance by setting acceptLicense to true in your
+    configuration. Note that this is not a free license so it requires allowing
+    unfree licenses.
+
+    configuration.nix:
+      nixpkgs.config.allowUnfree = true;
+      nixpkgs.config.input-fonts.acceptLicense = true;
+
+    config.nix:
+      allowUnfree = true;
+      input-fonts.acceptLicense = true;
+
+    If you would like to support this project, consider purchasing a license at <http://input.djr.com/buy>.
+  '';
 
-  nativeBuildInputs = [ unzip ];
+  releaseDate = "2015-06-24";
 
-  phases = [ "unpackPhase" "installPhase" ];
+in
 
-  sourceRoot = ".";
+stdenv.mkDerivation rec {
+  pname = "input-fonts";
+  version = "1.2";
+
+  src =
+    assert !acceptLicense -> throwLicense;
+    fetchzip {
+      name = "input-fonts-${version}";
+      # Add .zip parameter so that zip unpackCmd can match it.
+      url = "https://input.djr.com/build/?fontSelection=whole&a=0&g=0&i=0&l=0&zero=0&asterisk=0&braces=0&preset=default&line-height=1.2&accept=I+do&email=&.zip";
+      sha256 = "BESZ4Bjgm2hvQ7oPpMvYSlE8EqvQjqHZtXWIovqyIzA=";
+      stripRoot = false;
+
+      extraPostFetch = ''
+        # Reset the timestamp to release date for determinism.
+        PATH=${lib.makeBinPath [ python3.pkgs.fonttools ]}:$PATH
+        for ttf_file in $out/Input_Fonts/*/*/*.ttf; do
+          ttx_file=$(dirname "$ttf_file")/$(basename "$ttf_file" .ttf).ttx
+          ttx "$ttf_file"
+          rm "$ttf_file"
+          touch -m -t ${builtins.replaceStrings [ "-" ] [ "" ] releaseDate}0000 "$ttx_file"
+          ttx --recalc-timestamp "$ttx_file"
+          rm "$ttx_file"
+        done
+      '';
+    };
+
+  dontConfigure = true;
+  dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/truetype
     find Input_Fonts -name "*.ttf" -exec cp -a {} "$out"/share/fonts/truetype/ \;
     mkdir -p "$out"/share/doc
     cp -a *.txt "$out"/share/doc/
-  '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "15sdhqqqd4jgk80fw7ncx49avi9cxbdgyrvnrfya0066x4q4r6lv";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Fonts for Code, from Font Bureau";
@@ -42,9 +87,12 @@ stdenv.mkDerivation {
       generous spacing, large punctuation, and easily distinguishable
       characters — but without the limitations of a fixed width.
     '';
-    homepage = "https://input.fontbureau.com";
+    homepage = "https://input.djr.com/";
     license = licenses.unfree;
-    maintainers = with maintainers; [ romildo ];
+    maintainers = with maintainers; [
+      jtojnar
+      romildo
+    ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/inter-ui/default.nix b/nixpkgs/pkgs/data/fonts/inter-ui/default.nix
deleted file mode 100644
index 37b48f7ceb2f..000000000000
--- a/nixpkgs/pkgs/data/fonts/inter-ui/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, fetchzip }:
-
-# XXX: IMPORTANT:
-# For compat, keep this at the last version that used the name "Inter UI"
-# For newer versions, which are now simply named "Inter",
-# see the expression for `inter` (../inter/default.nix).
-let
-  version = "3.2";
-in fetchzip {
-  name = "inter-ui-${version}";
-
-  url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-UI-${version}.zip";
-
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-  '';
-
-  sha256 = "01d2ql803jrhss6g60djvs08x9xl7z6b3snkn03vqnrajdgifcl4";
-
-  meta = with lib; {
-    homepage = "https://rsms.me/inter/";
-    description = "A typeface specially designed for user interfaces";
-    license = licenses.ofl;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ demize ];
-  };
-}
-
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
index e9fad77e8c0a..26d67ba170e1 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
@@ -10,7 +10,7 @@ let
     (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
 in stdenv.mkDerivation rec {
   pname = "${name}-bin";
-  version = "4.5.0";
+  version = "5.0.5";
 
   src = fetchurl {
     url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/default.nix b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
index cbdd309db5e5..04e5b48bd0bd 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/default.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, pkgs, fetchFromGitHub, nodejs, nodePackages, remarshal
+{ stdenv, lib, nodejs, nodePackages, remarshal
 , ttfautohint-nox
   # Custom font set options.
   # See https://typeof.net/Iosevka/customizer
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/variants.nix b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
index 8ee3206d0705..6c31d3edb742 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
@@ -1,24 +1,26 @@
 # This file was autogenerated. DO NOT EDIT!
 {
-  iosevka = "1ic5w8w4v27vfq7pvx9wv2zdcsj16xi71ln2a3fb4kh93zj84kl8";
-  iosevka-aile = "1qv2b4zcz172knvr39argqshjpin1lidlafilfcm569cp8rasrdd";
-  iosevka-curly = "0x9pdgyiab8hibyf1yrwn6cr90aqy9ygyk1zz9nqzcndk5mk54p4";
-  iosevka-curly-slab = "0mxnbf9dwq3iq5dc0cgrdqf2dlyymylv46psb83n5kra4rz1wxnb";
-  iosevka-etoile = "1rz9dkpiwwfjnhiajfxg3rrnf4lyxnynx89qswg0b8wql4q6bz71";
-  iosevka-slab = "17p0cf4k8k3kabqp0b1anqqj8phfw7nnxiiscnngbrxhdvhpp62n";
-  iosevka-sparkle = "0ip46lcq7gcv77ar6vqz51lhf448fd0nviijfpqfg7gdywdzalm0";
-  iosevka-ss01 = "1v1z2rx7r6nb45i3qcb9pvilm6yxxkl5ks7ldmm902cx67pkv7rj";
-  iosevka-ss02 = "1pd4sbr1p1cf9917nnn22v1kah8jfgm9jpfvq1j51wyr8lnxqz2k";
-  iosevka-ss03 = "0pdbvrzilrxxcaz9gnhnqxvk4ipfxcgys41sasl3znxzij1ary8s";
-  iosevka-ss04 = "08xwdp5s3dp30qy81j3qwhhqk1bibcpnh2i00a3kyw3g6jsnsvmp";
-  iosevka-ss05 = "1njf1ysd42k2rc2lvg5ilq6q2wvg8dlm04d7wygdamw0yx6sia83";
-  iosevka-ss06 = "04g4m770i1b75gl1lanbs0ibmjj8vg5yfwyn6n0bidfn30z4n01l";
-  iosevka-ss07 = "07f1n44f5bvifbns6572ys6zihac6yljv7frm58w7xgyl0a3prvg";
-  iosevka-ss08 = "157cq5jfxvr0n7ksqln5mjmr800dbyfy8vwl0ngbf0aiq3mw2x8f";
-  iosevka-ss09 = "0yib3mhb48g2vjiaviwgcl6lad4dbwwblnmv4zi880bdvz7jrwr9";
-  iosevka-ss10 = "06s0s9x1fiqqmnkm42khasws40db7l68d2ycsm38mx6b62nlsbkr";
-  iosevka-ss11 = "0yzy322zqas0id70i1p92x7fbim8gai0a61nf6bf33aq3qgsj2w8";
-  iosevka-ss12 = "0lhmhwd4z44y4469av6na7k5w4ra47g98dxfi0mb42a4n4sq0k5j";
-  iosevka-ss13 = "1cq91iqfgq4fsazi2pjh6l4n9mgci4aayqp7fiy8lydv7f1ym0z9";
-  iosevka-ss14 = "0xid48yr2qfsh6kvlajlaqnb43ck351kg8r3bwpvzrdbvl809983";
+  iosevka = "1fva80sxdcmsl8y3m23ndif3ff54if37g1xqpda1f13yrbd9ii8q";
+  iosevka-aile = "0fy58yd17k8k41j5f48572d4vad3zz7c2mbc6vsiii9abfkwwalr";
+  iosevka-curly = "1lxw8na3qvc5g04prczl7qprdkvd0zf91ybmv276dnkq27abnjn4";
+  iosevka-curly-slab = "19b6xr5vjnb20j34x2ynfji63qibczn0mm2j76d01py304839bws";
+  iosevka-etoile = "0fhcn69idb6w8abpmmvpdp9c08zdhy0zwn8nbyy9jcznwj8vwb7m";
+  iosevka-slab = "0jlm3l13p9c965zx6z4df65lzxzj9yjjvpwlnx94ipayinxa1iff";
+  iosevka-ss01 = "1i6bvslpxj87p3xi198l486ba40ixicdkmj29vcb1d7w1hhr6wnm";
+  iosevka-ss02 = "1raczi1ja4barvjg5cp3j96kyph4aj8qlp9i10q7835sy29q3285";
+  iosevka-ss03 = "0cn9hi5w9rx8xhbh9a75c7s9pxa3dkqfhd24lbp72hwfgv5nk1v0";
+  iosevka-ss04 = "0v8fvif71604vyqanphq9mmlmx4xy0y2bykvplhrj1zmrj6v2ing";
+  iosevka-ss05 = "1fh99av3ml2zhjvdif02r2f82n4hsswpgd2i42d964swjdplxdga";
+  iosevka-ss06 = "0b0kl49djpc77qpmr1g2nzrg0q477xkjiqxb2i33pkrjsxn4vhn7";
+  iosevka-ss07 = "1d2by3najsambqxyzapnmd200hah39jq0mqdalidb2kjh5lx9n6k";
+  iosevka-ss08 = "05m03zn9pfl1khvl9xvgmlaygh1ni67lj2pc8zjgqydyls1vmxl4";
+  iosevka-ss09 = "1hzglj7sclg6h4jc9ibb1777apl11885w1gpscv81b8n1h0qhnb7";
+  iosevka-ss10 = "1fr52sclgp10k0lh86scjn3aylvsfnr7msg7jfsr3bkg61f5x1da";
+  iosevka-ss11 = "1cmdjmlqvhn3qvqdfflwa4wgza364jn9gbj5vq8rsd6qili175ix";
+  iosevka-ss12 = "0bk56hh9894z59rpkk5s9hhmkz1b2gmvfys46frijg3am54xh03q";
+  iosevka-ss13 = "1kgxlxz1cdkzrfbnkavscf48im9lwiya9rcqlaa10k0ssas28br5";
+  iosevka-ss14 = "06djgn86r2yy3ll2ask5mr9qhqibqzr7v95db5dzxcbz7hrmaaxf";
+  iosevka-ss15 = "0qcld7h38c7cif518sa84x50igxjkh38ckav9qhhv7ls1n5h0jpm";
+  iosevka-ss16 = "0qa6h8qx60rajbpp0v4wxia5n3yinp2nvwy2dsi1270prra7r49x";
+  iosevka-ss17 = "1s04vlkll42am6w3lcka518zv2dlrwwnykdid0sp81najwmq0fk3";
 }
diff --git a/nixpkgs/pkgs/data/fonts/joypixels/default.nix b/nixpkgs/pkgs/data/fonts/joypixels/default.nix
index d7442b345217..146b832af9c7 100644
--- a/nixpkgs/pkgs/data/fonts/joypixels/default.nix
+++ b/nixpkgs/pkgs/data/fonts/joypixels/default.nix
@@ -58,15 +58,15 @@ in
 
 stdenv.mkDerivation rec {
   pname = "joypixels";
-  version = "6.0.0";
+  version = "6.5.0";
 
   src = assert !acceptLicense -> throwLicense;
     with systemSpecific; fetchurl {
       name = fontFile;
       url = "https://cdn.joypixels.com/distributions/${systemTag}/font/${version}/${fontFile}";
       sha256 = {
-        darwin = "1s1dibgpv4lc9cwbgykgwjxxhg2rbn5g9fyd10r6apj9xhfn8cyn";
-      }.${kernel.name} or "1vxqsqs93g4jyp01r47lrpcm0fmib2n1vysx32ksmfxmprimb75s";
+        darwin = "034bwxy6ljvhx9zlm6jkb8vw222sg79sjwlcjfql51rk6zkmv4wx";
+      }.${kernel.name} or "1v6hz0qhbnzayxhs5j9qfa2ggn7nak53ij7kr06m93wcmlnnln86";
     };
 
   dontUnpack = true;
@@ -82,9 +82,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "The finest emoji you can use legally (formerly EmojiOne)";
     longDescription = ''
-      New for 2020! JoyPixels 6.0 includes 3,342 originally crafted icon
-      designs and is 100% Unicode 13 compatible. We offer the largest selection
-      of files ranging from png, svg, iconjar, sprites, and fonts.
+      Updated for 2021! JoyPixels 6.5 includes 3,559 originally crafted icon
+      designs and is 100% Unicode 13.1 compatible. We offer the largest
+      selection of files ranging from png, svg, iconjar, sprites, and fonts.
     '';
     homepage = "https://www.joypixels.com/fonts";
     license =
diff --git a/nixpkgs/pkgs/data/fonts/julia-mono/default.nix b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
index 8774913c83cc..77083268b0c8 100644
--- a/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
@@ -1,22 +1,26 @@
 { lib, fetchzip }:
 
 let
-  version = "0.022";
+  version = "0.035";
+
 in fetchzip {
   name = "JuliaMono-${version}";
   url = "https://github.com/cormullion/juliamono/releases/download/v${version}/JuliaMono.zip";
-  sha256 = "sha256-/MVT6n842sSiuPZNYxN3q1vn6yvMvmcTEDyvAd2GikA=";
+  sha256 = "sha256:17w8rn37wadxnmakhd6mpmqdx14dsrc3qym4k9b47albl1a34i1j";
 
   postFetch = ''
     mkdir -p $out/share/fonts/truetype
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
-  meta = {
+  meta = with lib; {
     description = "A monospaced font for scientific and technical computing";
-    maintainers = with lib.maintainers; [ suhr ];
-    platforms = with lib.platforms; all;
-    homepage = "https://juliamono.netlify.app/";
-    license = lib.licenses.ofl;
+    longDescription = ''
+      JuliaMono is a monospaced typeface designed for use in text editing environments that require a wide range of specialist and technical Unicode characters. It was intended as a fun experiment to be presented at the 2020 JuliaCon conference in Lisbon, Portugal (which of course didn’t physically happen in Lisbon, but online).
+    '';
+    maintainers = with maintainers; [ suhr ];
+    platforms = with platforms; all;
+    homepage = "https://cormullion.github.io/pages/2020-07-26-JuliaMono/";
+    license = licenses.ofl;
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix b/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix
new file mode 100644
index 000000000000..c9e51319733f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "kreative-square-fonts";
+  version = "unstable-2021-01-29";
+in
+fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "kreativekorp";
+  repo = "open-relay";
+  rev = "084f05af3602307499981651eca56851bec01fca";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm444 -t $out/share/fonts/truetype/ KreativeSquare/KreativeSquare.ttf
+    install -Dm444 -t $out/share/fonts/truetype/ KreativeSquare/KreativeSquareSM.ttf
+  '';
+  sha256 = "15vvbbzv6b3jh7lxg77viycdd7yf3y8lxy54vs3rsrsxwncg0pak";
+
+  meta = with lib; {
+    description = "Fullwidth scalable monospace font designed specifically to support pseudographics, semigraphics, and private use characters";
+    homepage = "https://www.kreativekorp.com/software/fonts/ksquare.shtml";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linus ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/montserrat/default.nix b/nixpkgs/pkgs/data/fonts/montserrat/default.nix
index de8ea80b0175..41135122f054 100644
--- a/nixpkgs/pkgs/data/fonts/montserrat/default.nix
+++ b/nixpkgs/pkgs/data/fonts/montserrat/default.nix
@@ -1,29 +1,28 @@
-# Originally packaged for ArchLinux.
-#
-# https://aur.archlinux.org/packages/ttf-montserrat/
-
-{ lib, fetchzip }:
+{ lib, fetchFromGitHub }:
 
 let
-  version = "1.0";
-in fetchzip {
-  name = "montserrat-${version}";
-
-  url = "https://marvid.fr/~eeva/mirror/Montserrat.tar.gz";
+  pname = "montserrat";
+  version = "7.210";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "JulietaUla";
+  repo = pname;
+  rev = "v${version}";
+  sha256 = "sha256-C6T0Iz1rFC+EsKFJRil2jGTMQ4X7wR80E3eORL5qi0U=";
 
   postFetch = ''
-    tar -xzf $downloadedFile --strip-components=1
-    mkdir -p $out/share/fonts/montserrat
-    cp *.ttf $out/share/fonts/montserrat
+    tar xf $downloadedFile --strip 1
+    install -Dm 444 fonts/otf/*.otf -t $out/share/fonts/otf
+    install -Dm 444 fonts/ttf/*.ttf -t $out/share/fonts/ttf
+    install -Dm 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -Dm 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
   '';
 
-  sha256 = "11sdgvhaqg59mq71aqwqp2mb428984hjxy7hd1vasia9kgk8259w";
-
   meta = with lib; {
     description = "A geometric sans serif font with extended latin support (Regular, Alternates, Subrayada)";
-    homepage    = "https://www.fontspace.com/julieta-ulanovsky/montserrat";
-    license     = licenses.ofl;
-    platforms   = platforms.all;
-    maintainers = with maintainers; [ scolobb ];
+    homepage = "https://www.fontspace.com/julieta-ulanovsky/montserrat";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ scolobb jk ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
index c70e758a8321..a2f96a5e980f 100644
--- a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
@@ -4,7 +4,6 @@
 , fetchFromGitHub
 , fetchurl
 , fetchzip
-, optipng
 , cairo
 , python3
 , pkg-config
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
index f5bd6335dfbb..c43ff3a313f2 100644
--- a/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
@@ -1,6 +1,6 @@
 { fetchFromGitHub, lib, buildPythonPackage, pythonOlder
 , afdko, appdirs, attrs, black, booleanoperations, brotlipy, click
-, defcon, fontmath, fontparts, fontpens, fonttools, fs, lxml
+, defcon, fontmath, fontparts, fontpens, fonttools, lxml
 , mutatormath, pathspec, psautohint, pyclipper, pytz, regex, scour
 , toml, typed-ast, ufonormalizer, ufoprocessor, unicodedata2, zopfli
 , pillow, six, bash, setuptools_scm }:
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
index 6b1cd370241b..4dd6093922cc 100644
--- a/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
@@ -3,7 +3,7 @@
 fetchzip {
   name = "paratype-pt-mono";
 
-  url = [
+  urls = [
     "https://company.paratype.com/system/attachments/631/original/ptmono.zip"
     "http://rus.paratype.ru/system/attachments/631/original/ptmono.zip"
   ];
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
index d6b783ebe4c7..8b47dd9ee1fb 100644
--- a/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
@@ -3,7 +3,7 @@
 fetchzip {
   name = "paratype-pt-sans";
 
-  url = [
+  urls = [
     "https://company.paratype.com/system/attachments/629/original/ptsans.zip"
     "http://rus.paratype.ru/system/attachments/629/original/ptsans.zip"
   ];
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
index 2b5eeafd09b9..a4142f757fcc 100644
--- a/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
@@ -3,7 +3,7 @@
 fetchzip {
   name = "paratype-pt-serif";
 
-  url = [
+  urls = [
     "https://company.paratype.com/system/attachments/634/original/ptserif.zip"
     "http://rus.paratype.ru/system/attachments/634/original/ptserif.zip"
   ];
diff --git a/nixpkgs/pkgs/data/fonts/recursive/default.nix b/nixpkgs/pkgs/data/fonts/recursive/default.nix
index d6929153bf45..88c80574e8fc 100644
--- a/nixpkgs/pkgs/data/fonts/recursive/default.nix
+++ b/nixpkgs/pkgs/data/fonts/recursive/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "1.071";
+  version = "1.077";
 in
 fetchzip {
   name = "recursive-${version}";
@@ -14,7 +14,7 @@ fetchzip {
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
-  sha256 = "0db410vcvgawb89f11l2v7w3b7l70wzlwwv8df3vnangl3mdv13z";
+  sha256 = "sha256-deztulQ33TIMevEQOP5OS8tmf6UjXT8IiVpRjkdismY=";
 
   meta = with lib; {
     homepage = "https://recursive.design/";
diff --git a/nixpkgs/pkgs/data/fonts/scientifica/default.nix b/nixpkgs/pkgs/data/fonts/scientifica/default.nix
index 2a2b237d5275..d8eda3e92326 100644
--- a/nixpkgs/pkgs/data/fonts/scientifica/default.nix
+++ b/nixpkgs/pkgs/data/fonts/scientifica/default.nix
@@ -1,25 +1,25 @@
 { lib, fetchurl }:
 
 let
-  version = "2.1";
+  version = "2.2";
 in fetchurl rec {
   name = "scientifica-${version}";
 
-  url = "https://github.com/NerdyPepper/scientifica/releases/download/v${version}/scientifica-v${version}.tar";
+  url = "https://github.com/NerdyPepper/scientifica/releases/download/v${version}/scientifica.tar";
 
   downloadToTemp = true;
 
   recursiveHash = true;
 
-  sha256 = "081faa48d6g86pacmgjqa96in72rjldavnwxq6bdq2br33h3qwrz";
+  sha256 = "sha256-mkZnuW+CB20t6MEpEeQR1CWkIUtqgVwrKN4sezQRaB4=";
 
   postFetch = ''
-    tar xvf $downloadedFile
+    tar xf $downloadedFile
     mkdir -p $out/share/fonts/truetype
     mkdir -p $out/share/fonts/misc
-    cp scientifica/ttf/*.ttf $out/share/fonts/truetype
-    cp scientifica/otb/*.otb $out/share/fonts/misc
-    cp scientifica/bdf/*.bdf $out/share/fonts/misc
+    install scientifica/ttf/*.ttf $out/share/fonts/truetype
+    install scientifica/otb/*.otb $out/share/fonts/misc
+    install scientifica/bdf/*.bdf $out/share/fonts/misc
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/spleen/default.nix b/nixpkgs/pkgs/data/fonts/spleen/default.nix
index 726f60938bb2..4dea9253c02d 100644
--- a/nixpkgs/pkgs/data/fonts/spleen/default.nix
+++ b/nixpkgs/pkgs/data/fonts/spleen/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "spleen";
-  version = "1.8.2";
+  version = "1.9.0";
 in fetchurl {
   name = "${pname}-${version}";
   url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
@@ -19,7 +19,7 @@ in fetchurl {
     # create fonts.dir so NixOS xorg module adds to fp
     ${mkfontscale}/bin/mkfontdir "$d"
   '';
-  sha256 = "0195d8ssmd8hc0q941z6zwnccffxajv4vylypsndxf28f3ikawby";
+  sha256 = "sha256-hNPbYiU+v7kCYKVyOn+uc5cSlu9bWsC4CwFvfH6StWM=";
 
   meta = with lib; {
     description = "Monospaced bitmap fonts";
diff --git a/nixpkgs/pkgs/data/fonts/stix-two/default.nix b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
index 3d957f249f5b..53c4143842d9 100644
--- a/nixpkgs/pkgs/data/fonts/stix-two/default.nix
+++ b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchzip }:
 let
-  version = "2.11";
+  version = "2.12";
 in
 fetchzip {
   name = "stix-two-${version}";
 
   url = "https://github.com/stipub/stixfonts/raw/v${version}/zipfiles/STIX${builtins.replaceStrings [ "." ] [ "_" ] version}-all.zip";
 
-  sha256 = "19ndavx5k85vm6wvq9603kynpgbfddbjiihivffvnbrxwf13h34n";
+  sha256 = "1a6v8p5zbjlv1gfhph0rzkvnmvxf4n1y0mdrdgng01yyl1nngrn9";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
diff --git a/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix b/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
index e74e51a95dcb..6cceee558a94 100644
--- a/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
+++ b/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -14,14 +14,14 @@
 }:
 
 let
-  version = "13.0.1";
+  version = "13.0.2";
 
   twemojiSrc = fetchFromGitHub {
     name = "twemoji";
     owner = "twitter";
     repo = "twemoji";
     rev = "v${version}";
-    sha256 = "0acinlv2l3s1jga2i9wh16mvgkxw4ipzgvjx8c80zd104lpdpgd9";
+    sha256 = "069pyq09jfzwp3xla8vmhbyyam32x2iyp0s29xcxlkj22p99bg6d";
   };
 
   pythonEnv =
diff --git a/nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix b/nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix
index 5902356703ac..7c5d9dbba6ea 100644
--- a/nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix
@@ -1,15 +1,23 @@
-{ lib, fetchzip, buildPackages }:
+{ lib, stdenvNoCC, fetchurl, cabextract }:
 
-# Modified from vista-fonts
+stdenvNoCC.mkDerivation {
+  pname = "vista-fonts-chs";
+  version = "1";
 
-fetchzip {
-  name = "vista-fonts-chs-1";
+  src = fetchurl {
+    url = "http://web.archive.org/web/20161221192937if_/http://download.microsoft.com/download/d/6/e/d6e2ff26-5821-4f35-a18b-78c963b1535d/VistaFont_CHS.EXE";
+    # Alternative mirror:
+    # http://www.eeo.cn/download/font/VistaFont_CHS.EXE
+    sha256 = "1qwm30b8aq9piyqv07hv8b5bac9ms40rsdf8pwix5dyk8020i8xi";
+  };
 
-  url = "http://download.microsoft.com/download/d/6/e/d6e2ff26-5821-4f35-a18b-78c963b1535d/VistaFont_CHS.EXE";
+  nativeBuildInputs = [ cabextract ];
 
-  postFetch = ''
-    ${buildPackages.cabextract}/bin/cabextract --lowercase --filter '*.TTF' $downloadedFile
+  unpackPhase = ''
+    cabextract --lowercase --filter '*.TTF' $src
+  '';
 
+  installPhase = ''
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
 
@@ -20,8 +28,6 @@ fetchzip {
       --subst-var-by fontname "Microsoft YaHei"
   '';
 
-  sha256 = "1zwrgck84k80gpg7493jdnxnv9ajxk5c7qndinnmqydnrw239zbw";
-
   meta = {
     description = "TrueType fonts from Microsoft Windows Vista For Simplified Chinese (Microsoft YaHei)";
     homepage = "https://www.microsoft.com/typography/fonts/family.aspx?FID=350";
diff --git a/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix b/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
index 20b5b673ccff..ca2ae302b3ee 100644
--- a/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
@@ -1,14 +1,22 @@
-{ lib, fetchzip, cabextract }:
+{ lib, stdenvNoCC, fetchurl, cabextract }:
 
-fetchzip {
-  name = "vista-fonts-1";
+stdenvNoCC.mkDerivation {
+  pname = "vista-fonts";
+  version = "1";
 
-  url = "https://web.archive.org/web/20171225132744/http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3EB-27C9F8C8F696/PowerPointViewer.exe";
+  src = fetchurl {
+    url = "mirror://sourceforge/mscorefonts2/cabs/PowerPointViewer.exe";
+    sha256 = "07vhjdw8iip7gxk6wvp4myhvbn9619g10j9qvpbzz4ihima57ry4";
+  };
+
+  nativeBuildInputs = [ cabextract ];
 
-  postFetch = ''
-    ${cabextract}/bin/cabextract --lowercase --filter ppviewer.cab $downloadedFile
-    ${cabextract}/bin/cabextract --lowercase --filter '*.TTF' ppviewer.cab
+  unpackPhase = ''
+    cabextract --lowercase --filter ppviewer.cab $src
+    cabextract --lowercase --filter '*.TTF' ppviewer.cab
+  '';
 
+  installPhase = ''
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
 
@@ -21,8 +29,6 @@ fetchzip {
     done
   '';
 
-  sha256 = "sha256-x7JSXS9Q1fzlJTVR+MAS3f2+cmo/H0s1qkY9FPjx2zI=";
-
   meta = {
     description = "Some TrueType fonts from Microsoft Windows Vista (Calibri, Cambria, Candara, Consolas, Constantia, Corbel)";
     homepage = "http://www.microsoft.com/typography/ClearTypeFonts.mspx";
diff --git a/nixpkgs/pkgs/data/fonts/vollkorn/default.nix b/nixpkgs/pkgs/data/fonts/vollkorn/default.nix
new file mode 100644
index 000000000000..6c5836da5b05
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vollkorn/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchzip }:
+let
+  pname = "vollkorn";
+  version = "4.105";
+in
+fetchzip {
+  name = "${pname}-${version}";
+  url = "http://vollkorn-typeface.com/download/vollkorn-${builtins.replaceStrings ["."] ["-"] version}.zip";
+  sha256 = "0srff2nqs7353mqcpmvaq156lamfh621py4h1771n0l9ix2c8mss";
+  stripRoot = false;
+
+  postFetch = ''
+    mkdir -pv $out/share/{doc/${pname}-${version},fonts/{opentype,truetype,WOFF,WOFF2}}
+    unzip $downloadedFile
+    cp -v {Fontlog,OFL-FAQ,OFL}.txt $out/share/doc/${pname}-${version}/
+    cp -v PS-OTF/*.otf $out/share/fonts/opentype
+    cp -v TTF/*.ttf $out/share/fonts/truetype
+    cp -v WOFF/*.woff $out/share/fonts/WOFF
+    cp -v WOFF2/*.woff2 $out/share/fonts/WOFF2
+  '';
+
+  meta = with lib; {
+    homepage = "http://vollkorn-typeface.com/";
+    description = "The free and healthy typeface for bread and butter use";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.schmittlauch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/iso-flags/default.nix b/nixpkgs/pkgs/data/icons/iso-flags/default.nix
index 4252853b898c..57cc1752f187 100644
--- a/nixpkgs/pkgs/data/icons/iso-flags/default.nix
+++ b/nixpkgs/pkgs/data/icons/iso-flags/default.nix
@@ -1,9 +1,7 @@
 { lib, stdenv
 , fetchFromGitHub
 , perl
-, perlPackages
 , inkscape
-, pngcrush
 , librsvg
 , targets ? [ "all" ]
 }:
diff --git a/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix
index 36aee979f0b1..bdc7b55d9c2b 100644
--- a/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub , gtk3, breeze-icons, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub , gtk3, adwaita-icon-theme, breeze-icons, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec  {
   pname = "kora-icon-theme";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub  {
     owner = "bikass";
     repo = "kora";
     rev = "v${version}";
-    sha256 = "sha256-YGhusal8g/UXMqrQvj147OScg51uNABTMIXxVXvnpKY=";
+    sha256 = "1qnqz0h2c5kilch3308l8nfshgsrkllyysvqn0mxy70iziw895rv";
   };
 
   nativeBuildInputs = [
@@ -16,20 +16,24 @@ stdenv.mkDerivation rec  {
   ];
 
   propagatedBuildInputs = [
+    adwaita-icon-theme
     breeze-icons
-    gnome-icon-theme
     hicolor-icon-theme
   ];
 
   dontDropIconThemeCache = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/icons
     mv kora* $out/share/icons/
 
     for theme in $out/share/icons/*; do
-      gtk-update-icon-cache $theme
+      gtk-update-icon-cache -f $theme
     done
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/icons/luna-icons/default.nix b/nixpkgs/pkgs/data/icons/luna-icons/default.nix
index b3513818df87..ff907e91bf94 100644
--- a/nixpkgs/pkgs/data/icons/luna-icons/default.nix
+++ b/nixpkgs/pkgs/data/icons/luna-icons/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "luna-icons";
-  version = "0.9.2";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "0ajx7yjkgj5ynbjmd6k3cldjn0qr51h6k80hjgr7vqd0ybyylh5p";
+    sha256 = "11g740x1asy7jbfn52gp1zx7hzhklw6f97m469wgyi9yf954js15";
   };
 
   nativeBuildInputs = [
@@ -35,12 +35,6 @@ stdenv.mkDerivation rec {
     mkdir -p $out/share/icons
     cp -a Luna* $out/share/icons
 
-    # remove files with spaces in the name, otherwise
-    # gtk-update-icon-cache fails with the message "The generated cache
-    # was invalid"
-    # https://github.com/darkomarko42/Luna-Icons/issues/2
-    rm "$out/share/icons/Luna/scalable/apps/yast-checkmedia (copia).svg"
-
     for theme in $out/share/icons/*; do
       gtk-update-icon-cache "$theme"
     done
diff --git a/nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix
index 75c7cd58007a..32365b70184b 100644
--- a/nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix
@@ -35,6 +35,8 @@ stdenv.mkDerivation {
 
   dontDropIconThemeCache = true;
 
+  dontWrapQtApps = true;
+
   postInstall = ''
     for theme in $out/share/icons/*; do
       gtk-update-icon-cache $theme
diff --git a/nixpkgs/pkgs/data/icons/oranchelo-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/oranchelo-icon-theme/default.nix
new file mode 100644
index 000000000000..9288b9307f55
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/oranchelo-icon-theme/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, plasma5Packages, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "oranchelo-icon-theme";
+  version = "0.8.0.1";
+
+  src = fetchFromGitHub {
+    owner = "OrancheloTeam";
+    repo = pname;
+    rev = "096c8c8d550ac9a85f5f34f3f30243e6f198df2d";
+    sha256 = "sha256-TKi42SA33pGKdrPtGTpvxFbOP+5N93Y4BvO4CRTveLM=";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    plasma5Packages.breeze-icons
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    cp -r $Oranchelo* $out/share/icons/
+  '';
+
+  meta = with lib; {
+    description = "Oranchelo icon theme";
+    homepage = "https://github.com/OrancheloTeam/oranchelo-icon-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ _414owen ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
index b18354910e44..ff18baf75f4b 100644
--- a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20210201";
+  version = "20210401";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "sha256-TQEpNFmsloq1jIg6QsuY8kllINpmwJCY+Anwker6Z5M=";
+    sha256 = "sha256-t0zoeIpj+0QVH1wmbEIJdqzEDOGzpclePv+bcZgtnwo=";
   };
 
   nativeBuildInputs = [
@@ -25,20 +25,22 @@ stdenv.mkDerivation rec {
   dontDropIconThemeCache = true;
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/icons
     mv {,e}Papirus* $out/share/icons
 
     for theme in $out/share/icons/*; do
       gtk-update-icon-cache $theme
     done
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Papirus icon theme";
     homepage = "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme";
-    license = licenses.lgpl3;
+    license = licenses.gpl3Only;
     # darwin gives hash mismatch in source, probably because of file names differing only in case
     platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
+    maintainers = with maintainers; [ romildo fortuneteller2k ];
   };
 }
diff --git a/nixpkgs/pkgs/data/misc/cacert/default.nix b/nixpkgs/pkgs/data/misc/cacert/default.nix
index e50aa81656a9..9357a60a91f5 100644
--- a/nixpkgs/pkgs/data/misc/cacert/default.nix
+++ b/nixpkgs/pkgs/data/misc/cacert/default.nix
@@ -10,13 +10,6 @@
 with lib;
 
 let
-
-  certdata2pem = fetchurl {
-    name = "certdata2pem.py";
-    url = "https://salsa.debian.org/debian/ca-certificates/raw/debian/20170717/mozilla/certdata2pem.py";
-    sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
-  };
-
   version = "3.60";
   underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
 in
@@ -29,6 +22,15 @@ stdenv.mkDerivation {
     sha256 = "hKvVV1q4dMU65RG9Rh5dCGjRobOE7kB1MVTN0dWQ/j0=";
   };
 
+  certdata2pem = fetchurl {
+    name = "certdata2pem.py";
+    urls = [
+      "https://salsa.debian.org/debian/ca-certificates/raw/debian/20170717/mozilla/certdata2pem.py"
+      "https://git.launchpad.net/ubuntu/+source/ca-certificates/plain/mozilla/certdata2pem.py?id=47e49e1e0a8a1ca74deda27f88fe181191562957"
+    ];
+    sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
+  };
+
   outputs = [ "out" "unbundled" ];
 
   nativeBuildInputs = [ python3 ];
@@ -40,7 +42,8 @@ stdenv.mkDerivation {
     ${concatStringsSep "\n" (map (c: ''"${c}"'') blacklist)}
     EOF
 
-    cat ${certdata2pem} > certdata2pem.py
+    # copy from the store, otherwise python will scan it for imports
+    cat "$certdata2pem" > certdata2pem.py
   '';
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix b/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
index f7da9381e610..cabc28a89ce9 100644
--- a/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
+++ b/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv
 , fetchurl
-, python
+, python2
 }:
 
 stdenv.mkDerivation rec {
   pname = "conway_polynomials";
   version = "0.5";
 
-  pythonEnv = python.withPackages (ps: with ps; [ six ]);
+  pythonEnv = python2.withPackages (ps: with ps; [ six ]);
 
   src = fetchurl {
     url = "mirror://sageupstream/conway_polynomials/conway_polynomials-${version}.tar.bz2";
diff --git a/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix b/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
index 988716f5429e..982594000210 100644
--- a/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
+++ b/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchurl
-, python
+, python2
 }:
 
 stdenv.mkDerivation rec {
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     export SAGE_SHARE="$out/share"
     export PYTHONPATH=$PWD
 
-    ${python.interpreter} ${spkg-install}
+    ${python2.interpreter} ${spkg-install}
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/misc/hackage/default.nix b/nixpkgs/pkgs/data/misc/hackage/default.nix
index d1d8b91bdacb..597c6577cb0c 100644
--- a/nixpkgs/pkgs/data/misc/hackage/default.nix
+++ b/nixpkgs/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
 { fetchurl }:
 
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/c0fe8e827d5ec71141700f5d5a90a6f6616ecbc5.tar.gz";
-  sha256 = "16is1cipkfiabbh01i247vqfviwzjpfhgf6pkli61wwlhnk0q95s";
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/fd3fefef13b49cbcd9a08b46c2aa4ceb204de5e0.tar.gz";
+  sha256 = "1dr4bqsisizw3qn9qxjpbk0rjri6s0gv9g9717cwfcixy940af2s";
 }
diff --git a/nixpkgs/pkgs/data/misc/iana-etc/default.nix b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
index 421054fa17f0..60735eb4782c 100644
--- a/nixpkgs/pkgs/data/misc/iana-etc/default.nix
+++ b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchzip }:
 
 let
-  version = "20200729";
+  version = "20210225";
 in fetchzip {
   name = "iana-etc-${version}";
   url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
-  sha256 = "05cymmisfvpyd7fwzc6axvm5fsi1v6hzs0pjr4xp1i95wvpz7qpm";
+  sha256 = "sha256-NVvZG3EJEYOXFDTBXD5m9sg/8msyMiBMkiZr+ZxWZ/g=";
 
   postFetch = ''
     tar -xzvf $downloadedFile --strip-components=1
diff --git a/nixpkgs/pkgs/data/misc/libkkc-data/default.nix b/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
index 96130b2de5e1..7fcd2fbf516f 100644
--- a/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
+++ b/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, marisa, libkkc }:
+{ lib, stdenv, fetchurl, python2, libkkc }:
 
 stdenv.mkDerivation rec {
   pname = "libkkc-data";
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "16avb50jasq2f1n9xyziky39dhlnlad0991pisk3s11hl1aqfrwy";
   };
 
-  nativeBuildInputs = [ marisa ];
+  nativeBuildInputs = [ python2.pkgs.marisa ];
+
+  strictDeps = true;
 
   meta = with lib; {
     description = "Language model data package for libkkc";
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix
index caab674393a1..af8a157d491c 100644
--- a/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix
@@ -1,13 +1,25 @@
-{ stdenv, fetchFromGitHub, imagemagick }:
+{ stdenv
+, fetchFromGitHub
+, imagemagick
+}:
 
 stdenv.mkDerivation {
-  name = "nixos-icons-2017-03-16";
-  srcs = fetchFromGitHub {
+  pname = "nixos-icons";
+  version = "2021-02-24";
+
+  src = fetchFromGitHub {
     owner = "NixOS";
     repo = "nixos-artwork";
-    rev = "783ca1249fc4cfe523ad4e541f37e2229891bc8b";
-    sha256 = "0wp08b1gh2chs1xri43wziznyjcplx0clpsrb13wzyscv290ay5a";
+    rev = "488c22aad523c709c44169d3e88d34b4691c20dc";
+    sha256 = "ZoanCzn4pqGB1fyMzMyGQVT0eIhNdL7ZHJSn1VZWVRs=";
   };
-  makeFlags = [ "DESTDIR=$(out)" "prefix=" ];
-  nativeBuildInputs = [ imagemagick ];
+
+  nativeBuildInputs = [
+    imagemagick
+  ];
+
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "prefix="
+  ];
 }
diff --git a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
index a75b2c1b65da..ec0fa407d733 100644
--- a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
+++ b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "osinfo-db";
-  version = "20210202";
+  version = "20210312";
 
   src = fetchurl {
     url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
-    sha256 = "sha256-C7Vq7d+Uos9IhTwOgsrK64c9mMGVkNgfvOrbBqORsRs=";
+    sha256 = "sha256-dUjsCeRFynN4xc65njntyohX+Ck4MeCzy1WPQjCHDhA=";
   };
 
   nativeBuildInputs = [ osinfo-db-tools gettext libxml2 ];
diff --git a/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
index 19f02a16f470..f4ab4c058512 100644
--- a/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
+++ b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -2,25 +2,28 @@
 
 stdenv.mkDerivation rec {
   pname = "spdx-license-list-data";
-  version = "3.11";
+  version = "3.12";
 
   src = fetchFromGitHub {
     owner = "spdx";
     repo = "license-list-data";
     rev = "v${version}";
-    sha256 = "1iwyqhh6lh51a47mhfy98zvjan8yjsvlym8qz0isx2i1zzxlj47a";
+    sha256 = "09xci8dzblg3d30jf7s43zialbcxlxly03zrkiymcvnzixg8v48f";
   };
 
-  phases = [ "unpackPhase" "installPhase" ];
-
   installPhase = ''
+    runHook preInstall
+
     install -vDt $out/json json/licenses.json
+
+    runHook postInstall
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Various data formats for the SPDX License List";
     homepage = "https://github.com/spdx/license-list-data";
-    license = lib.licenses.cc0;
-    platforms = lib.platforms.all;
+    license = licenses.cc0;
+    maintainers = with maintainers; [ oxzi ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/data/misc/tzdata/default.nix b/nixpkgs/pkgs/data/misc/tzdata/default.nix
index 98a6b9877d15..7ab25da3cc43 100644
--- a/nixpkgs/pkgs/data/misc/tzdata/default.nix
+++ b/nixpkgs/pkgs/data/misc/tzdata/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   preInstall = ''
      mv zic.o zic.o.orig
      mv zic zic.orig
-     make $makeFlags cc=cc AR=ar zic
+     make $makeFlags cc=${stdenv.cc.nativePrefix}cc AR=${stdenv.cc.nativePrefix}ar zic
      mv zic zic-native
      mv zic.o.orig zic.o
      mv zic.orig zic
diff --git a/nixpkgs/pkgs/data/themes/jade1/default.nix b/nixpkgs/pkgs/data/themes/jade1/default.nix
index 122d0a4a6568..6eea90c71192 100644
--- a/nixpkgs/pkgs/data/themes/jade1/default.nix
+++ b/nixpkgs/pkgs/data/themes/jade1/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "theme-jade1";
-  version = "1.11";
+  version = "1.12";
 
   src = fetchurl {
     url = "https://github.com/madmaxms/theme-jade-1/releases/download/v${version}/jade-1-theme.tar.xz";
-    sha256 = "0jljmychbs2lsf6g1pck83x4acljdqqsllkdjgiwv3nnlwahzlvs";
+    sha256 = "1pawdfyvpbvhb6fa27rgjp49vlbmix9pq192wjlv2wgq7v4ip9y8";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/data/themes/juno/default.nix b/nixpkgs/pkgs/data/themes/juno/default.nix
new file mode 100644
index 000000000000..9e1580a6a14d
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/juno/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "juno";
+  version = "0.0.1";
+
+  srcs = [
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno.tar.xz";
+      sha256 = "1cghsn9qagcf1nlga5cal0aqch6hkjm5wk6ja791zxhdqy3crx1i";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-mirage.tar.xz";
+      sha256 = "0zh6bc85svmwh8qrhpn8mim0pj322x2x2i9sxnp7p1938p5z5m2b";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-ocean.tar.xz";
+      sha256 = "0m2wgmcn12dfq5badzlpzjc8792ba9hi32c79vfvqawdn1q3hrdx";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-palenight.tar.xz";
+      sha256 = "1hn2l0m76x61ixjd253hi7czm65asdjdhqvvlv7idbccc40pvrak";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Juno* $out/share/themes
+    rm $out/share/themes/*/{LICENSE,README.md}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "GTK themes inspired by epic vscode themes";
+    homepage = "https://github.com/EliverLara/Juno";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.gvolpe ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/matcha/default.nix b/nixpkgs/pkgs/data/themes/matcha/default.nix
index f7f139a9ea97..08d0f51094da 100644
--- a/nixpkgs/pkgs/data/themes/matcha/default.nix
+++ b/nixpkgs/pkgs/data/themes/matcha/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "matcha-gtk-theme";
-  version = "2021-01-12";
+  version = "2021-04-05";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1h6y89aajygbp1rc3d5dw2vgb64a3hiajlifb4xnzhycc77vjskr";
+    sha256 = "0bm7hr4lqqz3z2miif38628r4qcy7i5hdk6sm0ngjacm43cl0qvg";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
@@ -16,16 +16,18 @@ stdenv.mkDerivation rec {
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   installPhase = ''
+    runHook preInstall
     patchShebangs .
     mkdir -p $out/share/themes
     name= ./install.sh -d $out/share/themes
     install -D -t $out/share/gtksourceview-3.0/styles src/extra/gedit/matcha.xml
     mkdir -p $out/share/doc/${pname}
     cp -a src/extra/firefox $out/share/doc/${pname}
+    runHook postInstall
   '';
 
   meta = with lib; {
-    description = "A stylish flat Design theme for GTK based desktop environments";
+    description = "A stylish flat design theme for GTK based desktop environments";
     homepage = "https://vinceliuice.github.io/theme-matcha";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/data/themes/orchis/default.nix b/nixpkgs/pkgs/data/themes/orchis/default.nix
new file mode 100644
index 000000000000..cf479021fb1d
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/orchis/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, gnome-themes-extra, gtk-engine-murrine
+, accentColor ? "default" }:
+
+stdenv.mkDerivation rec {
+  pname = "orchis";
+  version = "2021-02-28";
+
+  src = fetchFromGitHub {
+    repo = "Orchis-theme";
+    owner = "vinceliuice";
+    rev = version;
+    sha256 = "sha256-HmC2e34n1eThFGgw9OzSgp5VFJOylyozpXgk9SO84+I=";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  buildInputs = [ gnome-themes-extra ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  preInstall = ''
+    mkdir -p $out/share/themes
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    bash install.sh -d $out/share/themes -t ${accentColor}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Material Design theme for GNOME/GTK based desktop environments.";
+    homepage = "https://github.com/vinceliuice/Orchis-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.fufexan ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/yaru/default.nix b/nixpkgs/pkgs/data/themes/yaru/default.nix
index 7121aed9b1e4..f0d2493473a4 100644
--- a/nixpkgs/pkgs/data/themes/yaru/default.nix
+++ b/nixpkgs/pkgs/data/themes/yaru/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "20.10.2";
+  version = "21.04.1";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "0vxs17nbahrdix1q9xj06nflm344lfgj2mrafsvyfcr2isn61iv6";
+    sha256 = "0z6k8q9b5xjx6xwirqbsqq5jjxw79ar2d61r7cgipqmbjdsjfgjz";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Ubuntu community theme 'yaru' - default Ubuntu theme since 18.10";
     homepage = "https://github.com/ubuntu/yaru";
-    license = with licenses; [ cc-by-sa-40 gpl3 ];
+    license = with licenses; [ cc-by-sa-40 gpl3Plus lgpl21Only lgpl3Only ];
     platforms = platforms.linux;
     maintainers = [ maintainers.jD91mZM2 ];
   };
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index 198cfe40a6de..4e951bfcc586 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -8,18 +8,11 @@
 , intltool
 , gtk3
 , libnotify
-, gnome-menus
 , libxml2
-, systemd
-, upower
 , gnome-online-accounts
 , cinnamon-settings-daemon
 , colord
 , polkit
-, ibus
-, libpulseaudio
-, isocodes
-, kerberos
 , libxkbfile
 , cinnamon-menus
 , dbus-glib
@@ -27,7 +20,6 @@
 , libxklavier
 , networkmanager
 , libwacom
-, gnome3
 , libtool
 , wrapGAppsHook
 , tzdata
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
index 80a026e88361..0e8f6dbf8c3d 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -11,18 +11,10 @@
 , intltool
 , libxslt
 , gtk3
-, libnotify
-, libxkbfile
-, cinnamon-menus
 , libgnomekbd
-, libxklavier
-, networkmanager
-, libwacom
 , gnome3
 , libtool
 , wrapGAppsHook
-, tzdata
-, glibc
 , gobject-introspection
 , python3
 , pam
diff --git a/nixpkgs/pkgs/desktops/gnome-2/default.nix b/nixpkgs/pkgs/desktops/gnome-2/default.nix
index 4212fa68bd4a..50222b386c8e 100644
--- a/nixpkgs/pkgs/desktops/gnome-2/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-2/default.nix
@@ -58,7 +58,9 @@ lib.makeScope pkgs.newScope (self: with self; {
   # Removed from recent GNOME releases, but still required
   scrollkeeper = callPackage ./desktop/scrollkeeper { };
 
-  gtksourceview = callPackage ./desktop/gtksourceview { };
+  gtksourceview = callPackage ./desktop/gtksourceview {
+    autoreconfHook = pkgs.autoreconfHook269;
+  };
 
   vte = callPackage ./desktop/vte { };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
index 93a036228c3e..82c40fc429d5 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-getting-started-docs";
-  version = "3.38.0";
+  version = "3.38.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-getting-started-docs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ficf4i4njqrx3dn5rdkvpvcys5mwfma4zkgfmfkq964jxpwzqvw";
+    sha256 = "EPviPyw85CdTmk4wekYWlNOHCyMgBGT3BbfYGvmTyFk=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
index fa2fb86a5ceb..f0a80bc525ad 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
@@ -29,11 +29,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-maps";
-  version = "3.38.2";
+  version = "3.38.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0pa6h3md688752l7cjggncnxv13c07nj584gbz9asdblljk3r9x1";
+    sha256 = "sha256-1WQekf/kePsqqcpIliJczxjsLqTZjjV2UXmBin2+RKM=";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index f0972f8d6f18..60ec6792e5dd 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , vala
 , meson
 , ninja
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 4e7892c048f9..1374cfc9358a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
@@ -1,15 +1,13 @@
 { lib, stdenv, fetchurl, meson, ninja, vala, libxslt, pkg-config, glib, gtk3, gnome3, python3, dconf
 , libxml2, gettext, docbook_xsl, wrapGAppsHook, gobject-introspection }:
 
-let
+stdenv.mkDerivation rec {
   pname = "dconf-editor";
-  version = "3.38.0";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "3.38.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1d1y33c6fm86xz9xbh3bfz4y2pyas01a58lmirmdx0lh6yd292bd";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-ElPa2H5iE/vzE/+eydxDWKobECYfKAcsHcDgmXuS+DU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix
index 5187f51cbf2e..cec0ac7a6815 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -28,11 +28,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eog";
-  version = "3.38.1";
+  version = "3.38.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1xqcfil3b68clafnxg1migp54psqh5x6arnlvdqgmvvpq9hwj7dp";
+    sha256 = "sha256-ilT9+T4wag9khToYgxrIwEg4IEdxBqrgvcAKrDc4bw4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix
index 4a1a305d127e..31828bad0af1 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -43,13 +43,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "3.38.1";
+  version = "3.38.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evince/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "APbWaJzCLePABb2H1MLr9yAGTLjcahiHgW+LfggrLmM=";
+    sha256 = "J9QZ1f7WMF4HRijtz94MtzT//aIF1jysMjORwEkDvZQ=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index 900040a76111..dc43bdfd4932 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -1,18 +1,18 @@
 { fetchurl, lib, stdenv, substituteAll, pkg-config, gnome3, python3, gobject-introspection
-, intltool, libsoup, libxml2, libsecret, icu, sqlite, tzdata, libcanberra-gtk3, gcr
-, p11-kit, db, nspr, nss, libical, gperf, wrapGAppsHook, glib-networking, pcre
-, vala, cmake, ninja, kerberos, openldap, webkitgtk, libaccounts-glib, json-glib
-, glib, gtk3, gnome-online-accounts, libgweather, libgdata, gsettings-desktop-schemas }:
+, intltool, libsoup, libxml2, libsecret, icu, sqlite, tzdata, libcanberra-gtk3, gcr, p11-kit
+, db, nspr, nss, libical, gperf, wrapGAppsHook, glib-networking, pcre, vala, cmake, ninja
+, libkrb5, openldap, webkitgtk, libaccounts-glib, json-glib, glib, gtk3, libphonenumber
+, gnome-online-accounts, libgweather, libgdata, gsettings-desktop-schemas, boost, protobuf }:
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.38.3";
+  version = "3.38.4";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19rwgvjicfmd5zgabr5ns42rg8cqa05p8qf7684prajjna8gcclp";
+    sha256 = "rFPxay1R8+f/gCX5yhn0otTOOEHXKun+K7iX3ICZ1wU=";
   };
 
   patches = [
@@ -34,8 +34,8 @@ stdenv.mkDerivation rec {
   buildInputs = [
     glib libsoup libxml2 gtk3 gnome-online-accounts
     gcr p11-kit libgweather libgdata libaccounts-glib json-glib
-    icu sqlite kerberos openldap webkitgtk glib-networking
-    libcanberra-gtk3 pcre
+    icu sqlite libkrb5 openldap webkitgtk glib-networking
+    libcanberra-gtk3 pcre libphonenumber boost protobuf
   ];
 
   propagatedBuildInputs = [ libsecret nss nspr libical db libsoup ];
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
     "-DENABLE_INTROSPECTION=ON"
     "-DCMAKE_SKIP_BUILD_RPATH=OFF"
     "-DINCLUDE_INSTALL_DIR=${placeholder "dev"}/include"
+    "-DWITH_PHONENUMBER=ON"
   ];
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix
index c88c1e0f525f..324ab865b11e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix
@@ -33,14 +33,9 @@
 
 let
 
-  icon = fetchurl {
-    url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/4f041870efa1a6f0799ef4b32bb7be2cafee7a74/logo/nixos.svg";
-    sha256 = "0b0dj408c1wxmzy6k0pjwc4bzwq286f1334s3cqqwdwjshxskshk";
-  };
-
   override = substituteAll {
     src = ./org.gnome.login-screen.gschema.override;
-    inherit icon;
+    icon = "${nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg";
   };
 
 in
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index 3a7e21c65f54..ef5e564beb95 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -2,7 +2,6 @@
 , gettext
 , fetchurl
 , evolution-data-server
-, fetchpatch
 , pkg-config
 , libxslt
 , docbook_xsl
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
index 5a78f412dc7a..f8c458a3df1f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -1,6 +1,5 @@
 { fetchurl
 , fetchFromGitLab
-, fetchpatch
 , lib, stdenv
 , substituteAll
 , accountsservice
@@ -22,7 +21,6 @@
 , gnome-color-manager
 , gnome-desktop
 , gnome-online-accounts
-, gnome-session
 , gnome-settings-daemon
 , gnome3
 , grilo
@@ -59,6 +57,7 @@
 , shared-mime-info
 , sound-theme-freedesktop
 , tracker
+, tracker-miners
 , tzdata
 , udisks2
 , upower
@@ -70,12 +69,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-control-center";
-  version = "3.38.1";
+  version = "3.38.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "09i011hf23s2i4wim43vjys7y4y43cxl3kyvrnrwqvqgc5n0144d";
+    sha256 = "sha256-SdxjeNTTXBxu1ZIk9WNpFsK2+km7+4tW6xmoTW6QzRk=";
   };
+
   # See https://mail.gnome.org/archives/distributor-list/2020-September/msg00001.html
   prePatch = (import ../gvc-with-ucm-prePatch.nix {
     inherit fetchFromGitLab;
@@ -101,6 +101,7 @@ stdenv.mkDerivation rec {
     clutter-gtk
     colord
     colord-gtk
+    epoxy
     fontconfig
     gdk-pixbuf
     glib
@@ -122,6 +123,7 @@ stdenv.mkDerivation rec {
     libgudev
     libhandy
     libkrb5
+    libnma
     libpulseaudio
     libpwquality
     librsvg
@@ -132,13 +134,12 @@ stdenv.mkDerivation rec {
     modemmanager
     mutter # schemas for the keybindings
     networkmanager
-    libnma
     polkit
     samba
     tracker
+    tracker-miners # for search locations dialog
     udisks2
     upower
-    epoxy
   ];
 
   patches = [
@@ -149,17 +150,6 @@ stdenv.mkDerivation rec {
       inherit glibc libgnomekbd tzdata;
       inherit cups networkmanagerapplet;
     })
-
-    # Fix double free when leaving user accounts panel.
-    # https://gitlab.gnome.org/GNOME/gnome-control-center/merge_requests/853
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-control-center/commit/e80b4b5f58f448c5a3d38721f7bba32c413d46e7.patch";
-      sha256 = "GffsSU/uNS0Fg2lXbOuD/BrWBT4D2VKgWNGifG0FBUw=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-control-center/commit/64686cfee330849945f6ff4dcc43393eb1a6e59c.patch";
-      sha256 = "4VJU0q6qOtGzd/hmDncckInfEjCkC8+lXmDgxwc4VJU=";
-    })
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index bfe0bfe9d615..c6d8b319308d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-desktop";
-  version = "3.38.2";
+  version = "3.38.4";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-desktop/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1m7iww1zk845szs9s3zc8a1s1wpd6kizndhq7gqy3575c0xgr2w9";
+    sha256 = "sha256-P2A+pb/UdyLJLPybiFRGtGJg6gnIz7Y/a92f7+NC5Iw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
index 95dfd0ef282c..5c573d2502c2 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-disk-utility";
-  version = "3.38.1";
+  version = "3.38.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1TuF3BMDobXOHkIcH1xqwLMY4HzZqVk50uHwlZpe19k=";
+    sha256 = "sha256-EL7d5UlL6zTjoiDW8w2TIMiCUv7rhCa9mM760YNteOk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
index 002ae9197b74..435da4e3720a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
@@ -30,7 +30,6 @@
 , systemd
 , libnma
 , tzdata
-, yelp
 , libgnomekbd
 , gsettings-desktop-schemas
 , gnome-tour
@@ -38,11 +37,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-initial-setup";
-  version = "3.38.2";
+  version = "3.38.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-qliJJ0+LC23moFErR3Qrgqw0ANrsgt1O/+LuonRko7g=";
+    sha256 = "001jdzsvc541qracn68r609pr5qwymrh85xrqmvzzc1dbg5w3mlg";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix
index d2dca54b5ca4..1fa0a0b0fc64 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix
@@ -1,6 +1,7 @@
 { fetchurl, lib, stdenv, substituteAll, meson, ninja, pkg-config, gnome3, glib, gtk3, gsettings-desktop-schemas
 , gnome-desktop, dbus, json-glib, libICE, xmlto, docbook_xsl, docbook_xml_dtd_412, python3
-, libxslt, gettext, makeWrapper, systemd, xorg, epoxy, gnugrep, bash, gnome-session-ctl }:
+, libxslt, gettext, makeWrapper, systemd, xorg, epoxy, gnugrep, bash, gnome-session-ctl
+, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-session";
@@ -21,6 +22,12 @@ stdenv.mkDerivation rec {
       grep = "${gnugrep}/bin/grep";
       bash = "${bash}/bin/bash";
     })
+    # Fixes 2 minute delay at poweroff.
+    # https://gitlab.gnome.org/GNOME/gnome-session/issues/74
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-session/-/commit/9de6e40f12e8878f524f8d429d85724c156a0517.diff";
+      sha256 = "19vrjdf7d6dfl7sqxvbc5h5lcgk1krgzg5rkssrdzd1h4ma6y8fz";
+    })
   ];
 
   mesonFlags = [ "-Dsystemd=true" "-Dsystemd_session=default" ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 56408d464db5..2cd22e3ceaa5 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -65,13 +65,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gnome-shell";
-  version = "3.38.2";
+  version = "3.38.3";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "05fm7kxyvws2lbb156wfa2wf4xmkxr49rrjxg0yaxf68v000yq2k";
+    sha256 = "sha256-U0W0GMsSqXKVXOXM6u1mYkgAJzNrXFHa6lcwV1tiHO0=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index 087aa7f5ce0c..52aee2a004a7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, fetchurl, pkg-config, libxml2, gnome3, dconf, nautilus
 , gtk3, gsettings-desktop-schemas, vte, gettext, which, libuuid, vala
-, desktop-file-utils, itstool, wrapGAppsHook, glib, pcre2
+, desktop-file-utils, itstool, wrapGAppsHook, pcre2
 , libxslt, docbook-xsl-nons }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-terminal";
-  version = "3.38.2";
+  version = "3.38.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-terminal/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "J73cnQumFMhuXstPVMdevDQV4oh6zZFEIFdUj9MgZhg=";
+    sha256 = "EaWw1jXxX9znUINRpRD79OkqpTMVKlD/DHhF4xAuR2Q=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-tour/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-tour/default.nix
index 2b84442620db..61f8761ce817 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-tour/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-tour/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , rustPlatform
 , gettext
 , meson
@@ -15,9 +16,11 @@
 , gnome3
 , libhandy
 , librsvg
+, rustc
+, cargo
 }:
 
-rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
   pname = "gnome-tour";
   version = "3.38.0";
 
@@ -30,6 +33,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [
     appstream-glib
+    cargo
     desktop-file-utils
     gettext
     glib # glib-compile-resources
@@ -37,6 +41,8 @@ rustPlatform.buildRustPackage rec {
     ninja
     pkg-config
     python3
+    rustPlatform.cargoSetupHook
+    rustc
     wrapGAppsHook
   ];
 
@@ -48,12 +54,6 @@ rustPlatform.buildRustPackage rec {
     librsvg
   ];
 
-  # Don't use buildRustPackage phases, only use it for rust deps setup
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-
   postPatch = ''
     chmod +x build-aux/meson_post_install.py
     patchShebangs build-aux/meson_post_install.py
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix
index 1ac0be1b1945..07e3b536a410 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -42,13 +42,13 @@
 
 let self = stdenv.mkDerivation rec {
   pname = "mutter";
-  version = "3.38.2";
+  version = "3.38.3";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "03a612m0c7v6y72bs3ghmpyk49177fzq6gdy1jrz4608vnalx5yr";
+    sha256 = "sha256-sjIec9Hj/i6Q5jAfQrugf02UvGR1aivxPXWunW+qIB8=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix
index 65096c359d76..75b2bd292704 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix
@@ -28,14 +28,14 @@
 
 stdenv.mkDerivation rec {
   pname = "rygel";
-  version = "0.40.0";
+  version = "0.40.1";
 
   # TODO: split out lib
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xrbdsgm78h3g4qcvq2p8k70q31x9xdbb35bixz36q6h9s1wqznn";
+    sha256 = "QkDXd1mcjNCeZ9pEzLOV0KbceEedgJzWIZgixbVooy0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index 6d2822839255..64009cd75eb3 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "simple-scan";
-  version = "3.38.1";
+  version = "3.38.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0grscz96bwj79ka4qvxh8h75avdx6824k8k38ylmaj6xbl6gi0hy";
+    sha256 = "sha256-qI2AcpaCiIZJzfzfqGkrCjSs3ladwICIjyea/DqcTQs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
index d4b6561c0ded..22ce6c72011d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yelp-xsl";
-  version = "3.38.1";
+  version = "3.38.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp-xsl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ryzvkcgxp7xi0icmpdl2rinjn904s8imbxdi6wshzxblqymc8dk";
+    sha256 = "sha256-GTtqvUaXt7Qh6Yw21NMTXaCw/bUapT5gLtNo3YTR/QM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix
index 62c5994fd411..754a77486682 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yelp";
-  version = "3.38.1";
+  version = "3.38.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "102z8khj82vdp12c3y86hhxwm1x89xpkpc5zs63c7gg21cbrwdbl";
+    sha256 = "sha256-r9RqTQrrRrtCXFIAcdgY+LKzLmnnVqv9mXlodpphVJ0=";
   };
 
   nativeBuildInputs = [ pkg-config gettext itstool wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
index f5dae739ea47..aaf8c92c672d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-appindicator";
-  version = "34";
+  version = "36";
 
   src = fetchFromGitHub {
     owner = "Ubuntu";
     repo = "gnome-shell-extension-appindicator";
     rev = "v${version}";
-    sha256 = "0p9sk8cv2z242d5783gx2m4l1x9vg5fy1a7yr1wcfshvajlrj23m";
+    sha256 = "1nx1lgrrp3w5z5hymb91frjdvdkk7x677my5v4jjd330ihqa02dq";
   };
 
   # This package has a Makefile, but it's used for building a zip for
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/default.nix
index 58f1836a132a..851a816c61c7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitLab, glib, gettext, substituteAll, gnome-menus }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-arc-menu";
-  version = "47";
+  pname = "gnome-shell-arcmenu";
+  version = "5";
 
   src = fetchFromGitLab {
-    owner = "arcmenu-team";
-    repo = "Arc-Menu";
-    rev = "v${version}-Stable";
-    sha256 = "1hhjxdm1sm9pddhkkxx532hqqiv9ghvqgn9xszg1jwhj29380fv6";
+    owner = "arcmenu";
+    repo = "ArcMenu";
+    rev = "v${version}";
+    sha256 = "1w4avvnp08l7lkf76vc7wvfn1cd81l4r4dhz8qnai49rvrjgqcg3";
   };
 
   patches = [
@@ -24,12 +24,12 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions" ];
 
-  uuid = "arc-menu@linxgem33.com";
+  uuid = "arcmenu@arcmenu.com";
 
   meta = with lib; {
-    description = "Gnome shell extension designed to replace the standard menu found in Gnome 3";
+    description = "Application menu for GNOME Shell, designed to provide a more traditional user experience and workflow";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dkabot ];
-    homepage = "https://gitlab.com/LinxGem33/Arc-Menu";
+    homepage = "https://gitlab.com/arcmenu/ArcMenu";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/fix_gmenu.patch
index 5d8584f52a6a..5d8584f52a6a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/fix_gmenu.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/disable-unredirect/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/disable-unredirect/default.nix
new file mode 100644
index 000000000000..0a9145de3db3
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/disable-unredirect/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-extension-disable-unredirect";
+  version = "unstable-2021-01-17";
+
+  src = fetchFromGitHub {
+    owner = "kazysmaster";
+    repo = "gnome-shell-extension-disable-unredirect";
+    rev = "2ecb2f489ea3316b77d04f03a0c885f322c67e79";
+    sha256 = "1rjyrg8qya0asndxr7189a9npww0rcxk02wkxrxjy7fdp5m89p7y";
+  };
+
+  uuid = "unredirect@vaina.lt";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/gnome-shell/extensions
+    cp -R ${uuid} $out/share/gnome-shell/extensions/${uuid}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Disables unredirect fullscreen windows in gnome-shell to avoid tearing";
+    license = licenses.gpl3Only;
+    homepage = "https://github.com/kazysmaster/gnome-shell-extension-disable-unredirect";
+    maintainers = with maintainers; [ eduardosm ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
index 0bdc3974d97c..cb8ece571e71 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
@@ -15,7 +15,6 @@
 , gnome3
 , gjs
 , nixosTests
-, gsettings-desktop-schemas
 }:
 
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
index c83ad7ef4c19..f663aa8977b1 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0z11y18bgdc0y41hrrzzgi4lagm2cg06x12jgdnary1ycng7xja0";
   };
 
-  buildInputs = [ glib gnome3.gnome-shell unzip ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ glib gnome3.gnome-shell ];
 
   uuid = "nightthemeswitcher@romainvigier.fr";
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix
index 7d143a061f68..ad588be18ce9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix
@@ -2,18 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-no-title-bar";
-  version = "9";
+  version = "11";
 
   src = fetchFromGitHub {
-    owner = "franglais125";
+    owner = "poehlerj";
     repo = "no-title-bar";
-    rev = "v${version}";
-    sha256 = "02zm61fg40r005fn2rvgrbsz2hbcsmp2hkhyilqbmpilw35y0nbq";
+    rev = "V_${version}";
+    sha256 = "07ddw47binlsbyvgy4xkdjvd40zyp7nwd17r6k7w54d50vmnwhvb";
   };
 
-  nativeBuildInputs = [
-    glib gettext
-  ];
+  nativeBuildInputs = [ glib gettext ];
 
   patches = [
     (substituteAll {
@@ -25,14 +23,13 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ];
 
-  uuid = "no-title-bar@franglais125.gmail.com";
+  uuid = "no-title-bar@jonaspoehler.de";
 
   meta = with lib; {
     description = "Integrates maximized windows with the top panel";
-    homepage = "https://github.com/franglais125/no-title-bar";
+    homepage = "https://github.com/poehlerj/no-title-bar";
     license = licenses.gpl2;
-    broken = true; # https://github.com/franglais125/no-title-bar/issues/114
-    maintainers = with maintainers; [ jonafato svsdep ];
+    maintainers = with maintainers; [ jonafato svsdep maxeaubrey ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch
index 9a53d63860da..fb2d3d57e51d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch
@@ -1,24 +1,44 @@
+diff --git a/decoration.js b/decoration.js
+index d1ff3dd..ff4193f 100644
 --- a/decoration.js
 +++ b/decoration.js
-@@ -181,7 +181,7 @@
+@@ -223,7 +223,7 @@ var Decoration = class {
+ 
+         let winId = this._guessWindowXID(win);
+ 
+-        let xprops = GLib.spawn_command_line_sync(`xprop -id ${winId}`);
++        let xprops = GLib.spawn_command_line_sync(`@xprop@ -id ${winId}`);
+         if (!xprops[0]) {
+             Utils.log_debug(`Unable to determine windows '${win.get_title()}' original state`);
+             return win._noTitleBarOriginalState = WindowState.UNKNOWN;
+@@ -237,7 +237,7 @@ var Decoration = class {
+         let prop = '_MOTIF_WM_HINTS';
+         let value = '0x2, 0x0, %s, 0x0, 0x0'.format(hide ? '0x2' : '0x1');
+ 
+-        GLib.spawn_command_line_sync(`xprop -id ${windId} -f ${prop} 32c -set ${prop} "${value}"`);
++        GLib.spawn_command_line_sync(`@xprop@ -id ${windId} -f ${prop} 32c -set ${prop} "${value}"`);
+         if (!hide && !win.titlebar_is_onscreen()) {
+             Utils.log_debug(`Shoving titlebar onscreen for window '${win.get_title()}'`);
+             win.shove_titlebar_onscreen();
+@@ -354,7 +354,7 @@ var Decoration = class {
          let act = win.get_compositor_private();
          let xwindow = act && act['x-window'];
          if (xwindow) {
 -            let xwininfo = GLib.spawn_command_line_sync('xwininfo -children -id 0x%x'.format(xwindow));
 +            let xwininfo = GLib.spawn_command_line_sync('@xwininfo@ -children -id 0x%x'.format(xwindow));
              if (xwininfo[0]) {
-                 let str = xwininfo[1].toString();
+                 let str = ByteArray.toString(xwininfo[1]);
  
-@@ -207,7 +207,7 @@
+@@ -384,7 +384,7 @@ var Decoration = class {
          // Try enumerating all available windows and match the title. Note that this
          // may be necessary if the title contains special characters and `x-window`
          // is not available.
 -        let result = GLib.spawn_command_line_sync('xprop -root _NET_CLIENT_LIST');
 +        let result = GLib.spawn_command_line_sync('@xprop@ -root _NET_CLIENT_LIST');
          if (result[0]) {
-             let str = result[1].toString();
+             let str = ByteArray.toString(result[1]);
  
-@@ -218,7 +218,7 @@
+@@ -395,7 +395,7 @@ var Decoration = class {
  
              // For each window ID, check if the title matches the desired title.
              for (var i = 0; i < windowList.length; ++i) {
@@ -27,30 +47,10 @@
                  let result = GLib.spawn_command_line_sync(cmd);
  
                  if (result[0]) {
-@@ -258,7 +258,7 @@
-         }
- 
-         let id = this._guessWindowXID(win);
--        let cmd = 'xprop -id ' + id;
-+        let cmd = '@xprop@ -id ' + id;
- 
-         let xprops = GLib.spawn_command_line_sync(cmd);
-         if (!xprops[0]) {
-@@ -277,7 +277,7 @@
-         m = str.match(/^_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED(\(CARDINAL\))? = ([0-9]+)$/m);
-         if (m) {
-             let state = !!parseInt(m[2]);
--            cmd = ['xprop', '-id', id,
-+            cmd = ['@xprop@', '-id', id,
-                   '-f', '_NO_TITLE_BAR_ORIGINAL_STATE', '32c',
-                   '-set', '_NO_TITLE_BAR_ORIGINAL_STATE',
-                   (state ? '0x1' : '0x0')];
-@@ -358,7 +358,7 @@
-         let winXID = this._guessWindowXID(win);
-         if (winXID == null)
-             return;
--        let cmd = ['xprop', '-id', winXID,
-+        let cmd = ['@xprop@', '-id', winXID,
-                    '-f', '_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED', '32c',
-                    '-set', '_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED',
-                    (hide ? '0x1' : '0x0')];
+@@ -455,4 +455,4 @@ var Decoration = class {
+         let styleContent = this._updateUserStyles();
+         GLib.file_set_contents(this._userStylesPath, styleContent);
+     }
+-}
+\ No newline at end of file
++}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
index a6444025ebbc..e58d8ce6e42f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
@@ -7,16 +7,17 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-sound-output-device-chooser";
-  version = "32";
+  version = "35";
 
   src = fetchFromGitHub {
     owner = "kgshank";
     repo = "gse-sound-output-device-chooser";
     rev = version;
-    sha256 = "1s83scr80qv5xmlfsy6dnsj96lwg2rr4pbsw9inld3ylblgvi35l";
+    sha256 = "sha256-Yl5ut6kJAkAAdCBiNFpwDgshXCLMmFH3/zhnFGpyKqs=";
   };
 
   patches = [
+    # Fix paths to libpulse and python
     (substituteAll {
       src = ./fix-paths.patch;
       libpulse = "${libpulseaudio}/lib/libpulse.so";
@@ -36,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GNOME Shell extension adding audio device chooser to panel";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jtojnar ];
     homepage = "https://github.com/kgshank/gse-sound-output-device-chooser";
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch
index 5957cb956f7a..1971bf1e5e74 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch
@@ -2,20 +2,20 @@ diff --git a/sound-output-device-chooser@kgshank.net/convenience.js b/sound-outp
 index 54ad06f..0860531 100644
 --- a/sound-output-device-chooser@kgshank.net/convenience.js
 +++ b/sound-output-device-chooser@kgshank.net/convenience.js
-@@ -129,7 +129,7 @@ function refreshCards() {
-     if(_settings.get_boolean(Prefs.NEW_PROFILE_ID))    {
+@@ -142,7 +142,7 @@ function refreshCards() {
+     if (newProfLogic) {
          _log("New logic");
-         let pyLocation =  Me.dir.get_child('utils/pa_helper.py').get_path();
--        let pythonExec = 'python';
+         let pyLocation = Me.dir.get_child("utils/pa_helper.py").get_path();
+-        let pythonExec = ["python", "python3", "python2"].find(cmd => isCmdFound(cmd));
 +        let pythonExec = '@python@';
-         let pyVer = 3;
-         while(!isCmdFound(pythonExec) && pyVer >=2){
-             _log(pythonExec + " is not found. Try next");
+         if (!pythonExec) {
+             _log("ERROR: Python not found. fallback to default mode");
+             _settings.set_boolean(Prefs.NEW_PROFILE_ID, false);
 diff --git a/sound-output-device-chooser@kgshank.net/utils/libpulse_introspect.py b/sound-output-device-chooser@kgshank.net/utils/libpulse_introspect.py
 index c4d2484..262608d 100644
 --- a/sound-output-device-chooser@kgshank.net/utils/libpulse_introspect.py
 +++ b/sound-output-device-chooser@kgshank.net/utils/libpulse_introspect.py
-@@ -86,7 +86,7 @@ else:
+@@ -82,7 +82,7 @@ else:
  
  _libraries = {}
  
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
index 0935bf521a4a..68d07e2d1429 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, substituteAll, fetchFromGitHub, taskwarrior, gettext, runtimeShell, gnome3 }:
+{ lib, stdenv, substituteAll, fetchFromGitHub, taskwarrior, gettext, runtimeShell }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-taskwhisperer";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix
index 54af3281dc4f..084548e1a105 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, glib, gnome3, gettext }:
+{ lib, stdenv, fetchFromGitHub, glib, gettext }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-topicons-plus";
-  version = "22";
+  version = "27";
 
   src = fetchFromGitHub {
     owner = "phocean";
     repo = "TopIcons-plus";
-    rev = "v${version}";
-    sha256 = "196s1gdir52gbc444pzrb5l7gn5xr5vqk5ajqaiqryqlmp3i8vil";
+    rev = version;
+    sha256 = "1p3jlvs4zgnrvy8am7myivv4rnnshjp49kg87rd22qqyvcz51ykr";
   };
 
   buildInputs = [ glib ];
@@ -21,10 +21,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Brings all icons back to the top panel, so that it's easier to keep track of apps running in the backround";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ eperuffo ];
     homepage = "https://github.com/phocean/TopIcons-plus";
-    # Unmaintained and no longer working with GNOME Shell 3.34+
-    broken = lib.versionAtLeast gnome3.gnome-shell.version "3.32";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/unite/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/unite/default.nix
index 9d58a923740e..e2f7f547579f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/unite/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/unite/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, gnome3, fetchFromGitHub, xprop, glib, coreutils }:
+{ lib, stdenv, gnome3, fetchFromGitHub, xprop, glib }:
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-unite";
-  version = "44";
+  version = "48";
 
   src = fetchFromGitHub {
     owner = "hardpixel";
     repo = "unite-shell";
     rev = "v${version}";
-    sha256 = "0nqc1q2yz4xa3fdfx45w6da1wijmdwzhdrch0mqwblgbpjr4fs9g";
+    sha256 = "1rc9h7zrg9pvyl619ychcp0w7wmnf4ndaq2knv490kzhy0idj18j";
   };
 
   uuid = "unite@hardpixel.eu";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/hitori/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/hitori/default.nix
index bb0bd257260b..8369c571f541 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/hitori/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/hitori/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hitori";
-  version = "3.38.0";
+  version = "3.38.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/hitori/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0gjbbh4gym8wwa4jjg7wwifjh2h7bf6m0x23c5jjxvrf3vln9gfq";
+    sha256 = "Ar0sQh1OIYAmVxToVL0S79PG0Vbd8h95599gAR1OQYQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix
index 36c76c358e97..b9409605f247 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tali";
-  version = "3.38.0";
+  version = "3.38.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/tali/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "196f6hiap61sdqr7kvywk74yl0m2j7fvqml37p6cgfm7gfrhrvi9";
+    sha256 = "AhVCi1DEoIJ/sN4uTmum5WZ4+bp22NJbfuyoUhXyWjk=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix
index 3ca257db49bf..ff97d34f7ce4 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , gtk3
 , vala
@@ -119,6 +118,10 @@ stdenv.mkDerivation rec {
     patchShebangs build-aux/yaml_to_json.py
 
     chmod +x desktop/geary-attach
+
+    # Drop test that breaks after webkitgtk 2.32.0 update
+    # https://gitlab.gnome.org/GNOME/geary/-/issues/1180
+    sed -i '/add_test("edit_context_font", edit_context_font);/d' test/js/composer-page-state-test.vala
   '';
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
index 1f9b1ba871dd..1947179028bf 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
@@ -16,7 +16,6 @@
 , adwaita-icon-theme
 , libgweather
 , gucharmap
-, tracker
 , polkit
 , gnome3
 }:
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
index db7a6ba09205..2d66dabb5a08 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-autoar";
-  version = "0.2.4";
+  version = "0.3.1";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-autoar/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a";
+    sha256 = "1y6hh5dldhdq7mpbmd571zl0yadfackvifhnxvykkqqddwz72y0f";
   };
 
   passthru = {
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     platforms = platforms.linux;
     maintainers = teams.gnome.members;
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
     description = "Library to integrate compressed files management with GNOME";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnustep/base/default.nix b/nixpkgs/pkgs/desktops/gnustep/base/default.nix
index 8cc68b755693..8fe232dff7b4 100644
--- a/nixpkgs/pkgs/desktops/gnustep/base/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/base/default.nix
@@ -1,7 +1,7 @@
 { aspell, audiofile
 , gsmakeDerivation
 , cups
-, fetchurl
+, fetchurl, fetchpatch
 , gmp, gnutls
 , libffi, binutils-unwrapped
 , libjpeg, libtiff, libpng, giflib, libungif
@@ -33,7 +33,13 @@ gsmakeDerivation {
     portaudio
     libiberty
   ];
-  patches = [ ./fixup-paths.patch ];
+  patches = [
+    ./fixup-paths.patch
+    (fetchpatch {  # for icu68 compatibility, remove with next update(?)
+      url = "https://github.com/gnustep/libs-base/commit/06fa7792a51cb970e5d010a393cb88eb127830d7.patch";
+      sha256 = "150n1sa34av9ywc04j36jvj7ic9x6pgr123rbn2mx5fj76q23852";
+    })
+  ];
 
   meta = {
     description = "An implementation of AppKit and Foundation libraries of OPENSTEP and Cocoa";
diff --git a/nixpkgs/pkgs/desktops/gnustep/gui/default.nix b/nixpkgs/pkgs/desktops/gnustep/gui/default.nix
index e945af64d90c..8356a608c833 100644
--- a/nixpkgs/pkgs/desktops/gnustep/gui/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/gui/default.nix
@@ -1,4 +1,4 @@
-{ gsmakeDerivation, fetchurl, base }:
+{ gsmakeDerivation, fetchurl, fetchpatch, base }:
 let
   version = "0.28.0";
 in
@@ -9,7 +9,13 @@ gsmakeDerivation {
     sha256 = "05wk8kbl75qj0jgawgyv9sp98wsgz5vl1s0d51sads0p0kk2sv8z";
   };
   buildInputs = [ base ];
-  patches = [ ./fixup-all.patch ];
+  patches = [
+    ./fixup-all.patch
+    (fetchpatch {  # for icu68 compatibility, remove with next update(?)
+      url = "https://github.com/gnustep/libs-gui/commit/05572b2d01713f5caf07f334f17ab639be8a1cff.patch";
+      sha256 = "04z287dk8jf3hdwzk8bpnv49qai2dcdlh824yc9bczq291pjy2xc";
+    })
+  ];
   meta = {
     description = "A GUI class library of GNUstep";
   };
diff --git a/nixpkgs/pkgs/desktops/lxqt/lxqt-policykit/default.nix b/nixpkgs/pkgs/desktops/lxqt/lxqt-policykit/default.nix
index fc4378d861cc..adda2339f369 100644
--- a/nixpkgs/pkgs/desktops/lxqt/lxqt-policykit/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/lxqt-policykit/default.nix
@@ -8,6 +8,7 @@
 , qttools
 , qtx11extras
 , qtsvg
+, polkit
 , polkit-qt
 , kwindowsystem
 , liblxqt
@@ -38,6 +39,7 @@ mkDerivation rec {
     qttools
     qtx11extras
     qtsvg
+    polkit
     polkit-qt
     kwindowsystem
     liblxqt
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 27a379f4738d..38fcb8d40b41 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -1,7 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
 , nix-update-script
-, substituteAll
 , desktop-file-utils
 , pkg-config
 , writeScript
@@ -11,7 +10,6 @@
 , wingpanel
 , orca
 , onboard
-, at-spi2-core
 , elementary-default-settings
 , elementary-settings-daemon
 , runtimeShell
diff --git a/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/virtual-desktop-bar.nix b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/virtual-desktop-bar.nix
new file mode 100644
index 000000000000..e71a0bd0230c
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/virtual-desktop-bar.nix
@@ -0,0 +1,40 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, extra-cmake-modules
+, kwindowsystem
+, plasma-framework
+, qtx11extras
+}:
+
+mkDerivation rec {
+  pname = "plasma-applet-virtual-desktop-bar";
+  version = "unstable-2021-02-20";
+
+  src = fetchFromGitHub {
+    owner = "wsdfhjxc";
+    repo = "virtual-desktop-bar";
+    rev = "3e9bbddb8def8da65071a1c325eaa06598e8a473";
+    sha256 = "192ns6c2brzq46pg385n0v1ydbz52aaa8f5dgfw5251hrw9c7bxg";
+  };
+
+  buildInputs = [
+    kwindowsystem plasma-framework qtx11extras
+  ];
+
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+
+  cmakeFlags = [
+    "-Wno-dev"
+  ];
+
+  meta = with lib; {
+    description = "Manage virtual desktops dynamically in a convenient way";
+    homepage = "https://github.com/wsdfhjxc/virtual-desktop-bar";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/parachute.nix b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/parachute.nix
new file mode 100644
index 000000000000..d7816de30422
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/parachute.nix
@@ -0,0 +1,37 @@
+{ lib, mkDerivation, fetchFromGitHub
+, kcoreaddons, kwindowsystem, plasma-framework, systemsettings }:
+
+mkDerivation rec {
+  pname = "parachute";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "tcorreabr";
+    repo = "parachute";
+    rev = "v${version}";
+    sha256 = "QIWb1zIGfkS+Bef7LK+JA6XpwGUW+79XZY47j75nlCE=";
+  };
+
+  buildInputs = [
+    kcoreaddons kwindowsystem plasma-framework systemsettings
+  ];
+
+  dontBuild = true;
+
+  # 1. --global still installs to $HOME/.local/share so we use --packageroot
+  # 2. plasmapkg2 doesn't copy metadata.desktop into place, so we do that manually
+  installPhase = ''
+    runHook preInstall
+    plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts
+    install -Dm644 ${src}/metadata.desktop $out/share/kservices5/Parachute.desktop
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Look at your windows and desktops from above.";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ mjlbach ];
+    inherit (src.meta) homepage;
+    inherit (kwindowsystem.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/plasma-5/default.nix b/nixpkgs/pkgs/desktops/plasma-5/default.nix
index 014f794b5e83..98bf4b025f2d 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/default.nix
@@ -131,21 +131,25 @@ let
       plasma-integration = callPackage ./plasma-integration {};
       plasma-nm = callPackage ./plasma-nm {};
       plasma-pa = callPackage ./plasma-pa.nix { inherit gconf; };
+      plasma-systemmonitor = callPackage ./plasma-systemmonitor.nix { };
       plasma-thunderbolt = callPackage ./plasma-thunderbolt.nix { };
       plasma-vault = callPackage ./plasma-vault {};
       plasma-workspace = callPackage ./plasma-workspace {};
       plasma-workspace-wallpapers = callPackage ./plasma-workspace-wallpapers.nix {};
       polkit-kde-agent = callPackage ./polkit-kde-agent.nix {};
       powerdevil = callPackage ./powerdevil.nix {};
+      qqc2-breeze-style = callPackage ./qqc2-breeze-style.nix {};
       sddm-kcm = callPackage ./sddm-kcm.nix {};
       systemsettings = callPackage ./systemsettings.nix {};
       xdg-desktop-portal-kde = callPackage ./xdg-desktop-portal-kde.nix {};
 
       thirdParty = let inherit (libsForQt5) callPackage; in {
         plasma-applet-caffeine-plus = callPackage ./3rdparty/addons/caffeine-plus.nix { };
+        plasma-applet-virtual-desktop-bar = callPackage ./3rdparty/addons/virtual-desktop-bar.nix { };
         kwin-dynamic-workspaces = callPackage ./3rdparty/kwin/scripts/dynamic-workspaces.nix { };
         kwin-tiling = callPackage ./3rdparty/kwin/scripts/tiling.nix { };
         krohnkite = callPackage ./3rdparty/kwin/scripts/krohnkite.nix { };
+        parachute = callPackage ./3rdparty/kwin/scripts/parachute.nix { };
       };
 
     };
diff --git a/nixpkgs/pkgs/desktops/plasma-5/discover.nix b/nixpkgs/pkgs/desktops/plasma-5/discover.nix
index 37632ab2f76d..75e0fd6917d5 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/discover.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/discover.nix
@@ -1,21 +1,65 @@
-{
-  mkDerivation, lib,
-  extra-cmake-modules, gettext, kdoctools, python,
-  appstream-qt, discount, flatpak, fwupd, ostree, packagekit-qt, pcre, util-linux,
-  qtbase, qtquickcontrols2,
-  karchive, kconfig, kcrash, kdbusaddons, kdeclarative, kio, kirigami2, kitemmodels,
-  knewstuff, kwindowsystem, kxmlgui, plasma-framework
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, gettext
+, kdoctools
+, python3
+, appstream-qt
+, discount
+, flatpak
+, fwupd
+, ostree
+, packagekit-qt
+, pcre
+, util-linux
+, qtbase
+, qtquickcontrols2
+, qtx11extras
+, karchive
+, kcmutils
+, kconfig
+, kcrash
+, kdbusaddons
+, kdeclarative
+, kidletime
+, kio
+, kirigami2
+, kitemmodels
+, knewstuff
+, kwindowsystem
+, kxmlgui
+, plasma-framework
 }:
 
 mkDerivation {
   name = "discover";
   meta.broken = lib.versionOlder qtbase.version "5.15.0";
-  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
+  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python3 ];
   buildInputs = [
     # discount is needed for libmarkdown
-    appstream-qt discount flatpak fwupd ostree packagekit-qt pcre util-linux
+    appstream-qt
+    discount
+    flatpak
+    fwupd
+    ostree
+    packagekit-qt
+    pcre
+    util-linux
     qtquickcontrols2
-    karchive kconfig kcrash kdbusaddons kdeclarative kio kirigami2 kitemmodels knewstuff kwindowsystem kxmlgui
+    qtx11extras
+    karchive
+    kcmutils
+    kconfig
+    kcrash
+    kdbusaddons
+    kdeclarative
+    kidletime
+    kio
+    kirigami2
+    kitemmodels
+    knewstuff
+    kwindowsystem
+    kxmlgui
     plasma-framework
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/fetch.sh b/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
index 43ea2d692818..10214b3fe23f 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
+++ b/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.20.5/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.21.3/ -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix b/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix
index c8213482d79d..23e225bd7440 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix
@@ -5,7 +5,7 @@
   kcmutils, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
   kdeclarative, kdelibs4support, ki18n, kiconthemes, kio, kirigami2, kpackage,
   kservice, kwayland, kwidgetsaddons, kxmlgui, libraw1394, libGLU, pciutils,
-  solid
+  solid, systemsettings
 }:
 
 mkDerivation {
@@ -15,6 +15,11 @@ mkDerivation {
   buildInputs = [
     kcmutils kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
     kdeclarative kdelibs4support ki18n kiconthemes kio kirigami2 kpackage
-    kservice kwayland kwidgetsaddons kxmlgui libraw1394 libGLU pciutils solid
+    kservice kwayland kwidgetsaddons kxmlgui libraw1394 libGLU pciutils solid systemsettings
   ];
+  preFixup = ''
+    # fix wrong symlink of infocenter pointing to a 'systemsettings5' binary in the same directory,
+    # while it is actually located in a completely different store path
+    ln -sf ${lib.getBin systemsettings}/bin/systemsettings5 $out/bin/kinfocenter
+  '';
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix b/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix
index 0581b8bde74a..27d0ab8a0fba 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix
@@ -3,7 +3,8 @@
   extra-cmake-modules, kdoctools,
   libcap, libpcap, lm_sensors,
   kconfig, kcoreaddons, kdelibs4support, ki18n, kiconthemes, kitemviews,
-  knewstuff, libksysguard, qtbase
+  knewstuff, libksysguard, qtbase,
+  networkmanager-qt, libnl
 }:
 
 mkDerivation {
@@ -12,6 +13,6 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kcoreaddons kitemviews knewstuff kiconthemes libksysguard
-    kdelibs4support ki18n libcap libpcap lm_sensors
+    kdelibs4support ki18n libcap libpcap lm_sensors networkmanager-qt libnl
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch b/nixpkgs/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
new file mode 100644
index 000000000000..7216f54b6c87
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
@@ -0,0 +1,57 @@
+From 29ec6fada935ef966e5859082435ed57daa9522d Mon Sep 17 00:00:00 2001
+From: Samuel Dionne-Riel <samuel@dionne-riel.com>
+Date: Tue, 16 Mar 2021 15:03:59 -0400
+Subject: [PATCH] [NixOS] Unwrap executable name for .desktop search
+
+Why is this necessary even though -a "$0" is used in the wrapper?
+Because it's completely bypassing argv0! This looks at the executable
+file in-use according to the kernel!
+
+Wrappers cannot affect the `/proc/.../exe` symlink!
+---
+ service_utils.h | 28 +++++++++++++++++++++++++++-
+ 1 file changed, 27 insertions(+), 1 deletion(-)
+
+diff --git a/service_utils.h b/service_utils.h
+index 8a70c1fad..6674f553b 100644
+--- a/service_utils.h
++++ b/service_utils.h
+@@ -26,8 +26,34 @@ namespace KWin
+ const static QString s_waylandInterfaceName = QStringLiteral("X-KDE-Wayland-Interfaces");
+ const static QString s_dbusRestrictedInterfaceName = QStringLiteral("X-KDE-DBUS-Restricted-Interfaces");
+ 
+-static QStringList fetchProcessServiceField(const QString &executablePath, const QString &fieldName)
++static QStringList fetchProcessServiceField(const QString &in_executablePath, const QString &fieldName)
+ {
++    // !! Start NixOS fix
++    // NixOS fixes many packaging issues through "wrapper" scripts that manipulates the environment or does
++    // miscellaneous trickeries and mischievous things to make the programs work.
++    // In turn, programs often employs different mischievous schemes and trickeries to do *other things.
++    // It often happens that they conflict.
++    // Here, `kwin` tries to detect the .desktop file for a given process.
++    // `kwin` followed the process `/proc/.../exe` up to the actual binary running.
++    // It normally would be fine, e.g. /usr/bin/foobar is what's in the desktop file.
++    // But it's not the truth here! It's extremely likely the resolved path is /nix/store/.../bin/.foobar-wrapped
++    // rather than what the desktop file points to, something like /nix/store/.../bin/foobar !!
++    // Since the wrappers for Nixpkgs *always* prepend a dot and append -wrapped, we assume here that we can keep
++    // `/^(.*)\/\.([^/]*)-wrapped/` until the (equivalent) regex does not match.
++    // This should canonicalize the wrapper name to the expected name to look for in the desktop file.
++
++    // Use a copy of the const string
++    QString executablePath(in_executablePath);
++
++    // While the parts needed are present, "unwrap" one layer of wrapper names.
++    while (executablePath.endsWith("-wrapped") && executablePath[executablePath.lastIndexOf("/")+1] == QChar('.')) {
++        // Approximately equivalent to s/-wrapped$//
++        executablePath.remove(executablePath.length() - 8, 8);
++        // Approximately equivalent to s;/\.;/;
++        executablePath.remove(executablePath.lastIndexOf("/")+1, 1);
++    }
++    // !! End NixOS fix
++
+     // needed to be able to use the logging category in a header static function
+     static QLoggingCategory KWIN_UTILS ("KWIN_UTILS", QtWarningMsg);
+     const auto servicesFound = KApplicationTrader::query([&executablePath] (const KService::Ptr &service) {
+-- 
+2.28.0
+
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kwin/0001-follow-symlinks.patch b/nixpkgs/pkgs/desktops/plasma-5/kwin/0001-follow-symlinks.patch
index 4861df46ca63..06b3653acee4 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kwin/0001-follow-symlinks.patch
+++ b/nixpkgs/pkgs/desktops/plasma-5/kwin/0001-follow-symlinks.patch
@@ -1,17 +1,17 @@
-From 449896c45b23f50c168d8d2789832024c906ec36 Mon Sep 17 00:00:00 2001
+From af569c9ed8079169b524b31461e2789baa09ef7a Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
 Date: Mon, 27 Jan 2020 05:31:13 -0600
-Subject: [PATCH 1/2] follow symlinks
+Subject: [PATCH 1/3] follow symlinks
 
 ---
  plugins/kdecorations/aurorae/src/aurorae.cpp | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/plugins/kdecorations/aurorae/src/aurorae.cpp b/plugins/kdecorations/aurorae/src/aurorae.cpp
-index fd723a8..fb95633 100644
+index 5242cb7..2e4ddae 100644
 --- a/plugins/kdecorations/aurorae/src/aurorae.cpp
 +++ b/plugins/kdecorations/aurorae/src/aurorae.cpp
-@@ -211,7 +211,7 @@ void Helper::init()
+@@ -201,7 +201,7 @@ void Helper::init()
      // so let's try to locate our plugin:
      QString pluginPath;
      for (const QString &path : m_engine->importPathList()) {
@@ -21,5 +21,5 @@ index fd723a8..fb95633 100644
              it.next();
              QFileInfo fileInfo = it.fileInfo();
 -- 
-2.23.1
+2.29.2
 
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch b/nixpkgs/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch
index 0505810abe60..312daa093848 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch
+++ b/nixpkgs/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch
@@ -1,17 +1,17 @@
-From d584b075d71c4486710c0bbed6d44038f2ff5075 Mon Sep 17 00:00:00 2001
+From 5c90dd84f541bd4789525f12f12ad24411b99018 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
 Date: Mon, 27 Jan 2020 05:31:23 -0600
-Subject: [PATCH 2/2] xwayland
+Subject: [PATCH 2/3] xwayland
 
 ---
  xwl/xwayland.cpp | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/xwl/xwayland.cpp b/xwl/xwayland.cpp
-index 5f17d39..b4b69ba 100644
+index 57efdde..a211a58 100644
 --- a/xwl/xwayland.cpp
 +++ b/xwl/xwayland.cpp
-@@ -145,7 +145,7 @@ void Xwayland::init()
+@@ -124,7 +124,7 @@ void Xwayland::start()
  
      m_xwaylandProcess = new Process(this);
      m_xwaylandProcess->setProcessChannelMode(QProcess::ForwardedErrorChannel);
@@ -21,5 +21,5 @@ index 5f17d39..b4b69ba 100644
      env.insert("WAYLAND_SOCKET", QByteArray::number(wlfd));
      env.insert("EGL_PLATFORM", QByteArrayLiteral("DRM"));
 -- 
-2.23.1
+2.29.2
 
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kwin/0003-plugins-qpa-allow-using-nixos-wrapper.patch b/nixpkgs/pkgs/desktops/plasma-5/kwin/0003-plugins-qpa-allow-using-nixos-wrapper.patch
new file mode 100644
index 000000000000..eaffaf591875
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/kwin/0003-plugins-qpa-allow-using-nixos-wrapper.patch
@@ -0,0 +1,26 @@
+From 8d49f5ef8692c352a62f4f8b1bc68e6e210bbee6 Mon Sep 17 00:00:00 2001
+From: Yaroslav  Bolyukin <iam@lach.pw>
+Date: Wed, 23 Dec 2020 18:02:14 +0300
+Subject: [PATCH 3/3] plugins/qpa: allow using nixos wrapper
+
+Signed-off-by: Yaroslav  Bolyukin <iam@lach.pw>
+---
+ plugins/qpa/main.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/qpa/main.cpp b/plugins/qpa/main.cpp
+index efd236b..a69c046 100644
+--- a/plugins/qpa/main.cpp
++++ b/plugins/qpa/main.cpp
+@@ -23,7 +23,7 @@ public:
+ QPlatformIntegration *KWinIntegrationPlugin::create(const QString &system, const QStringList &paramList)
+ {
+     Q_UNUSED(paramList)
+-    if (!QCoreApplication::applicationFilePath().endsWith(QLatin1String("kwin_wayland")) && !qEnvironmentVariableIsSet("KWIN_FORCE_OWN_QPA")) {
++    if (!QCoreApplication::applicationFilePath().endsWith(QLatin1String("kwin_wayland")) && !QCoreApplication::applicationFilePath().endsWith(QLatin1String(".kwin_wayland-wrapped")) && !qEnvironmentVariableIsSet("KWIN_FORCE_OWN_QPA")) {
+         // Not KWin
+         return nullptr;
+     }
+-- 
+2.29.2
+
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix b/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
index f0b07fba736e..2008529a38bc 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
@@ -12,7 +12,7 @@
   kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n,
   kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage,
   kscreenlocker, kservice, kwayland, kwayland-server, kwidgetsaddons, kwindowsystem, kxmlgui,
-  plasma-framework, libcap, libdrm, mesa
+  plasma-framework, libcap, libdrm, mesa, pipewire
 }:
 
 # TODO (ttuegel): investigate qmlplugindump failure
@@ -31,12 +31,14 @@ mkDerivation {
     kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes
     kidletime kinit kio knewstuff knotifications kpackage kscreenlocker kservice
     kwayland kwayland-server kwidgetsaddons kwindowsystem kxmlgui plasma-framework
-    libcap libdrm mesa
+    libcap libdrm mesa pipewire
   ];
   outputs = [ "dev" "out" ];
   patches = [
     ./0001-follow-symlinks.patch
     ./0002-xwayland.patch
+    ./0003-plugins-qpa-allow-using-nixos-wrapper.patch
+    ./0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
   ];
   CXXFLAGS = [
     ''-DNIXPKGS_XWAYLAND=\"${lib.getBin xwayland}/bin/Xwayland\"''
diff --git a/nixpkgs/pkgs/desktops/plasma-5/libkscreen/libkscreen-backends-path.patch b/nixpkgs/pkgs/desktops/plasma-5/libkscreen/libkscreen-backends-path.patch
index 48be0d037df5..3d19f2d89fa1 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/libkscreen/libkscreen-backends-path.patch
+++ b/nixpkgs/pkgs/desktops/plasma-5/libkscreen/libkscreen-backends-path.patch
@@ -2,7 +2,7 @@ Index: libkscreen-5.9.4/src/backendmanager.cpp
 ===================================================================
 --- libkscreen-5.9.4.orig/src/backendmanager.cpp
 +++ libkscreen-5.9.4/src/backendmanager.cpp
-@@ -178,17 +178,11 @@ QFileInfo BackendManager::preferredBacke
+@@ -172,14 +172,11 @@ QFileInfo BackendManager::preferredBackend(const QString &backend)
  QFileInfoList BackendManager::listBackends()
  {
      // Compile a list of installed backends first
@@ -10,10 +10,7 @@ Index: libkscreen-5.9.4/src/backendmanager.cpp
 -    const QStringList paths = QCoreApplication::libraryPaths();
 -    QFileInfoList finfos;
 -    for (const QString &path : paths) {
--        const QDir dir(path + QLatin1String("/kf5/kscreen/"),
--                       backendFilter,
--                       QDir::SortFlags(QDir::QDir::Name),
--                       QDir::NoDotAndDotDot | QDir::Files);
+-        const QDir dir(path + QLatin1String("/kf5/kscreen/"), backendFilter, QDir::SortFlags(QDir::QDir::Name), QDir::NoDotAndDotDot | QDir::Files);
 -        finfos.append(dir.entryInfoList());
 -    }
 -    return finfos;
@@ -24,4 +21,4 @@ Index: libkscreen-5.9.4/src/backendmanager.cpp
 +    return dir.entryInfoList();
  }
  
- KScreen::AbstractBackend *BackendManager::loadBackendPlugin(QPluginLoader *loader, const QString &name,
+ KScreen::AbstractBackend *BackendManager::loadBackendPlugin(QPluginLoader *loader, const QString &name, const QVariantMap &arguments)
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-browser-integration.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-browser-integration.nix
index f6855cb34da1..e9ad3c28c101 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-browser-integration.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-browser-integration.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules,
   qtbase,
   kfilemetadata, kio, ki18n, kconfig , kdbusaddons, knotifications, kpurpose,
-  krunner, kwindowsystem, kactivities,
+  krunner, kwindowsystem, kactivities, plasma-workspace
 }:
 
 mkDerivation {
@@ -13,6 +13,6 @@ mkDerivation {
   ];
   buildInputs = [
     qtbase kfilemetadata kio ki18n kconfig kdbusaddons knotifications kpurpose
-    krunner kwindowsystem kactivities
+    krunner kwindowsystem kactivities plasma-workspace
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
index 6c04081ae29a..c85d66ad0031 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
@@ -3,14 +3,14 @@ Index: plasma-desktop-5.8.5/kcms/dateandtime/helper.cpp
 --- plasma-desktop-5.8.5.orig/kcms/dateandtime/helper.cpp
 +++ plasma-desktop-5.8.5/kcms/dateandtime/helper.cpp
 @@ -48,10 +48,6 @@
- #include <sys/stat.h>
+ #include <sys/types.h>
  #endif
- 
+
 -// We cannot rely on the $PATH environment variable, because D-Bus activation
 -// clears it. So we have to use a reasonable default.
 -static const QString exePath = QStringLiteral("/usr/sbin:/usr/bin:/sbin:/bin");
 -
- int ClockHelper::ntp( const QStringList& ntpServers, bool ntpEnabled )
+ int ClockHelper::ntp(const QStringList &ntpServers, bool ntpEnabled)
  {
      int ret = 0;
 @@ -227,7 +223,7 @@ int ClockHelper::tzreset()
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-systemmonitor.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-systemmonitor.nix
new file mode 100644
index 000000000000..6b875745d270
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-systemmonitor.nix
@@ -0,0 +1,32 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, kdoctools
+, qtquickcontrols2
+, kconfig
+, kcoreaddons
+, ki18n
+, kiconthemes
+, kitemmodels
+, kitemviews
+, knewstuff
+, libksysguard
+, qtbase
+}:
+
+mkDerivation {
+  name = "plasma-systemmonitor";
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    qtquickcontrols2
+    kconfig
+    kcoreaddons
+    ki18n
+    kitemmodels
+    kitemviews
+    knewstuff
+    kiconthemes
+    libksysguard
+  ];
+}
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
index ea8afedbe5ba..f9347de7d566 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
@@ -1,4 +1,4 @@
-From d653bc84c8aed33072237ed858194a8a73b6a2e7 Mon Sep 17 00:00:00 2001
+From 65ed69a38a9ffee21f0eb36de1f7a3f152111cad Mon Sep 17 00:00:00 2001
 From: Tom Hall <tahall256@protonmail.ch>
 Date: Mon, 7 Sep 2020 18:09:52 +0100
 Subject: [PATCH] startkde
@@ -7,27 +7,27 @@ Subject: [PATCH] startkde
  startkde/plasma-session/startup.cpp     |  2 +-
  startkde/startplasma-waylandsession.cpp |  2 +-
  startkde/startplasma-x11.cpp            |  2 +-
- startkde/startplasma.cpp                | 22 +++++++++-------------
- 4 files changed, 12 insertions(+), 16 deletions(-)
+ startkde/startplasma.cpp                | 16 ++++++++--------
+ 4 files changed, 11 insertions(+), 11 deletions(-)
 
 diff --git a/startkde/plasma-session/startup.cpp b/startkde/plasma-session/startup.cpp
-index 89cc144ba..8ca9e81d2 100644
+index c3e77d4..88cb0e9 100644
 --- a/startkde/plasma-session/startup.cpp
 +++ b/startkde/plasma-session/startup.cpp
-@@ -211,7 +211,7 @@ Startup::Startup(QObject *parent):
+@@ -223,7 +223,7 @@ Startup::Startup(QObject *parent)
      upAndRunning(QStringLiteral("ksmserver"));
      const AutoStart autostart;
  
 -    QProcess::execute(QStringLiteral(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/start_kdeinit_wrapper"), QStringList());
 +    QProcess::execute(QStringLiteral(NIXPKGS_START_KDEINIT_WRAPPER), QStringList());
  
-     KJob* phase1;
+     KJob *phase1;
      QProcessEnvironment kdedProcessEnv;
 diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
-index f59654d18..5e3a93db0 100644
+index 4fbfe18..6ba916c 100644
 --- a/startkde/startplasma-waylandsession.cpp
 +++ b/startkde/startplasma-waylandsession.cpp
-@@ -61,7 +61,7 @@ int main(int argc, char** argv)
+@@ -65,7 +65,7 @@ int main(int argc, char **argv)
      waitForKonqi();
      out << "startplasma-waylandsession: Shutting down...\n";
  
@@ -37,10 +37,10 @@ index f59654d18..5e3a93db0 100644
      cleanupX11();
      out << "startplasma-waylandsession: Done.\n";
 diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
-index ae1c4d101..0df24b5be 100644
+index 4ddf9f8..e0e59cd 100644
 --- a/startkde/startplasma-x11.cpp
 +++ b/startkde/startplasma-x11.cpp
-@@ -110,7 +110,7 @@ int main(int argc, char** argv)
+@@ -110,7 +110,7 @@ int main(int argc, char **argv)
  
      out << "startkde: Shutting down...\n";
  
@@ -50,10 +50,10 @@ index ae1c4d101..0df24b5be 100644
      cleanupPlasmaEnvironment();
      cleanupX11();
 diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
-index a055d5635..62afb1513 100644
+index 9809197..1250e3e 100644
 --- a/startkde/startplasma.cpp
 +++ b/startkde/startplasma.cpp
-@@ -41,7 +41,7 @@ QTextStream out(stderr);
+@@ -46,7 +46,7 @@ QTextStream out(stderr);
  void messageBox(const QString &text)
  {
      out << text;
@@ -61,46 +61,56 @@ index a055d5635..62afb1513 100644
 +    runSync(QStringLiteral(NIXPKGS_XMESSAGE), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
  }
  
- QStringList allServices(const QLatin1String& prefix)
-@@ -262,15 +262,15 @@ void setupX11()
- //     If the user has overwritten fonts, the cursor font may be different now
- //     so don't move this up.
+ QStringList allServices(const QLatin1String &prefix)
+@@ -267,8 +267,8 @@ void setupX11()
+     //     If the user has overwritten fonts, the cursor font may be different now
+     //     so don't move this up.
  
 -    runSync(QStringLiteral("xsetroot"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
--    runSync(QStringLiteral("xprop"), {QStringLiteral("-root"), QStringLiteral("-f"), QStringLiteral("KDE_FULL_SESSION"), QStringLiteral("8t"), QStringLiteral("-set"), QStringLiteral("KDE_FULL_SESSION"), QStringLiteral("true")});
--    runSync(QStringLiteral("xprop"), {QStringLiteral("-root"), QStringLiteral("-f"), QStringLiteral("KDE_SESSION_VERSION"), QStringLiteral("32c"), QStringLiteral("-set"), QStringLiteral("KDE_SESSION_VERSION"), QStringLiteral("5")});
+-    runSync(QStringLiteral("xprop"),
 +    runSync(QStringLiteral(NIXPKGS_XSETROOT), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
-+    runSync(QStringLiteral(NIXPKGS_XPROP), {QStringLiteral("-root"), QStringLiteral("-f"), QStringLiteral("KDE_FULL_SESSION"), QStringLiteral("8t"), QStringLiteral("-set"), QStringLiteral("KDE_FULL_SESSION"), QStringLiteral("true")});
-+    runSync(QStringLiteral(NIXPKGS_XPROP), {QStringLiteral("-root"), QStringLiteral("-f"), QStringLiteral("KDE_SESSION_VERSION"), QStringLiteral("32c"), QStringLiteral("-set"), QStringLiteral("KDE_SESSION_VERSION"), QStringLiteral("5")});
- }
++    runSync(QStringLiteral(NIXPKGS_XPROP),
+             {QStringLiteral("-root"),
+              QStringLiteral("-f"),
+              QStringLiteral("KDE_FULL_SESSION"),
+@@ -276,7 +276,7 @@ void setupX11()
+              QStringLiteral("-set"),
+              QStringLiteral("KDE_FULL_SESSION"),
+              QStringLiteral("true")});
+-    runSync(QStringLiteral("xprop"),
++    runSync(QStringLiteral(NIXPKGS_XPROP),
+             {QStringLiteral("-root"),
+              QStringLiteral("-f"),
+              QStringLiteral("KDE_SESSION_VERSION"),
+@@ -288,8 +288,8 @@ void setupX11()
  
  void cleanupX11()
  {
--    runSync(QStringLiteral("xprop"), { QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_FULL_SESSION") });
--    runSync(QStringLiteral("xprop"), { QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_SESSION_VERSION") });
-+    runSync(QStringLiteral(NIXPKGS_XPROP), { QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_FULL_SESSION") });
-+    runSync(QStringLiteral(NIXPKGS_XPROP), { QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_SESSION_VERSION") });
+-    runSync(QStringLiteral("xprop"), {QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_FULL_SESSION")});
+-    runSync(QStringLiteral("xprop"), {QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_SESSION_VERSION")});
++    runSync(QStringLiteral(NIXPKGS_XPROP), {QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_FULL_SESSION")});
++    runSync(QStringLiteral(NIXPKGS_XPROP), {QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_SESSION_VERSION")});
  }
  
  // TODO: Check if Necessary
-@@ -306,7 +302,7 @@ void setupFontDpi()
-     //TODO port to c++?
+@@ -321,7 +321,7 @@ void setupFontDpi()
+     // TODO port to c++?
      const QByteArray input = "Xft.dpi: " + QByteArray::number(fontsCfg.readEntry("forceFontDPI", 0));
      QProcess p;
--    p.start(QStringLiteral("xrdb"), { QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp") });
-+    p.start(QStringLiteral(NIXPKGS_XRDB), { QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp") });
+-    p.start(QStringLiteral("xrdb"), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
++    p.start(QStringLiteral(NIXPKGS_XRDB), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
      p.setProcessChannelMode(QProcess::ForwardedChannels);
      p.write(input);
      p.closeWriteChannel();
-@@ -328,7 +324,7 @@ QProcess* setupKSplash()
+@@ -343,7 +343,7 @@ QProcess *setupKSplash()
          KConfigGroup ksplashCfg = cfg.group("KSplash");
          if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
              p = new QProcess;
--            p->start(QStringLiteral("ksplashqml"), { ksplashCfg.readEntry("Theme", QStringLiteral("Breeze")) });
-+            p->start(QStringLiteral(CMAKE_INSTALL_FULL_BINDIR "/ksplashqml"), { ksplashCfg.readEntry("Theme", QStringLiteral("Breeze")) });
+-            p->start(QStringLiteral("ksplashqml"), {ksplashCfg.readEntry("Theme", QStringLiteral("Breeze"))});
++            p->start(QStringLiteral(CMAKE_INSTALL_FULL_BINDIR "/ksplashqml"), {ksplashCfg.readEntry("Theme", QStringLiteral("Breeze"))});
          }
      }
      return p;
 -- 
-2.28.0
+2.30.0
 
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
index 366707d27034..633551f6e3c2 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
@@ -1,23 +1,23 @@
-From f43f15870f14b8fa17ba0765c0d7e2b225fafc3f Mon Sep 17 00:00:00 2001
+From 914d2ec5e669ecf8771cc1308028990f733fb8cc Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
 Date: Wed, 5 Feb 2020 05:03:11 -0600
-Subject: [PATCH 2/2] absolute-wallpaper-install-dir
+Subject: [PATCH] absolute-wallpaper-install-dir
 
 ---
  sddm-theme/theme.conf.cmake | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/sddm-theme/theme.conf.cmake b/sddm-theme/theme.conf.cmake
-index 8494a5c8a..f723c1e1b 100644
+index a560da3..f723c1e 100644
 --- a/sddm-theme/theme.conf.cmake
 +++ b/sddm-theme/theme.conf.cmake
 @@ -4,5 +4,5 @@ logo=${KDE_INSTALL_FULL_DATADIR}/sddm/themes/breeze/default-logo.svg
  type=image
  color=#1d99f3
  fontSize=10
--background=${KDE_INSTALL_FULL_WALLPAPERDIR}/Next/contents/images/5120x2880.jpg
-+background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.jpg
+-background=${KDE_INSTALL_FULL_WALLPAPERDIR}/Next/contents/images/5120x2880.png
++background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.png
  needsFullUserModel=false
 -- 
-2.25.1
+2.30.0
 
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix
index e1becaab95b6..b65bc7df8ed8 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix
@@ -16,6 +16,8 @@
 
   qtgraphicaleffects, qtquickcontrols, qtquickcontrols2, qtscript, qttools,
   qtwayland, qtx11extras, qqc2-desktop-style,
+
+  pipewire, libdrm
 }:
 
 let inherit (lib) getBin getLib; in
@@ -36,6 +38,8 @@ mkDerivation {
 
     qtgraphicaleffects qtquickcontrols qtquickcontrols2 qtscript qtwayland
     qtx11extras qqc2-desktop-style
+
+    pipewire libdrm
   ];
   propagatedUserEnvPkgs = [ qtgraphicaleffects ];
   outputs = [ "out" "dev" ];
@@ -49,9 +53,10 @@ mkDerivation {
     ./0002-absolute-wallpaper-install-dir.patch
   ];
 
+  # QT_INSTALL_BINS refers to qtbase, and qdbus is in qttools
   postPatch = ''
-    substituteInPlace wallpapers/image/wallpaper.knsrc.cmake \
-      --replace '@QtBinariesDir@/qdbus' ${getBin qttools}/bin/qdbus
+    substituteInPlace CMakeLists.txt \
+      --replace 'query_qmake(QtBinariesDir QT_INSTALL_BINS)' 'set(QtBinariesDir "${lib.getBin qttools}/bin")'
   '';
 
   NIX_CFLAGS_COMPILE = [
diff --git a/nixpkgs/pkgs/desktops/plasma-5/qqc2-breeze-style.nix b/nixpkgs/pkgs/desktops/plasma-5/qqc2-breeze-style.nix
new file mode 100644
index 000000000000..420529eb1749
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/qqc2-breeze-style.nix
@@ -0,0 +1,26 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, kconfig
+, kconfigwidgets
+, kdoctools
+, kguiaddons
+, kiconthemes
+, kirigami2
+, qtquickcontrols2
+, qtx11extras
+}:
+
+mkDerivation {
+  name = "qqc2-breeze-style";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    kconfig
+    kconfigwidgets
+    kguiaddons
+    kiconthemes
+    kirigami2
+    qtquickcontrols2
+    qtx11extras
+  ];
+}
diff --git a/nixpkgs/pkgs/desktops/plasma-5/sddm-kcm.nix b/nixpkgs/pkgs/desktops/plasma-5/sddm-kcm.nix
index a9f51e50a268..9e3776e8e291 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/sddm-kcm.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/sddm-kcm.nix
@@ -1,8 +1,19 @@
-{
-  mkDerivation, lib, extra-cmake-modules, shared-mime-info,
-  libpthreadstubs, libXcursor, libXdmcp,
-  qtbase, qtquickcontrols2, qtx11extras,
-  karchive, ki18n, kio, knewstuff
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, shared-mime-info
+, libpthreadstubs
+, libXcursor
+, libXdmcp
+, qtbase
+, qtquickcontrols2
+, qtx11extras
+, karchive
+, kcmutils
+, kdeclarative
+, ki18n
+, kio
+, knewstuff
 }:
 
 mkDerivation {
@@ -10,8 +21,16 @@ mkDerivation {
   meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [
-    libpthreadstubs libXcursor libXdmcp
-    qtquickcontrols2 qtx11extras
-    karchive ki18n kio knewstuff
+    libpthreadstubs
+    libXcursor
+    libXdmcp
+    qtquickcontrols2
+    qtx11extras
+    karchive
+    kcmutils
+    kdeclarative
+    ki18n
+    kio
+    knewstuff
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/srcs.nix b/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
index cfd7e5733993..bf93e0564d9f 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
@@ -1,398 +1,422 @@
 # DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5/
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5
 { fetchurl, mirror }:
 
 {
   bluedevil = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/bluedevil-5.20.5.tar.xz";
-      sha256 = "0bpbvfd6m3ddax484p33a1chvf9mf2mi61cli0vacsan7j84xpmk";
-      name = "bluedevil-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/bluedevil-5.21.3.tar.xz";
+      sha256 = "1xqm4bn97asilc4yw5rvmmhk7c7wvmbalalr6gz8gw4gv0pg67qv";
+      name = "bluedevil-5.21.3.tar.xz";
     };
   };
   breeze = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/breeze-5.20.5.tar.xz";
-      sha256 = "01zm5hcal6flihd89wn70zi363cmcglfvnc2q6x97lq89silaf6l";
-      name = "breeze-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/breeze-5.21.3.tar.xz";
+      sha256 = "0frm3f8q1n0pdzjk7zwmvlrl19fb9265ihnnfhak6ckaq50x72l3";
+      name = "breeze-5.21.3.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/breeze-grub-5.20.5.tar.xz";
-      sha256 = "17g2jac96sj6pfacmyi6vvn74lfi9yhmigprcm2pwqg9z093n1m2";
-      name = "breeze-grub-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/breeze-grub-5.21.3.tar.xz";
+      sha256 = "1j0pk4pv5pxwhwah1gd5znnsw3j15x2sc74pp6zinz9a1ywjklnz";
+      name = "breeze-grub-5.21.3.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/breeze-gtk-5.20.5.tar.xz";
-      sha256 = "1jknfswjcd4abbf249i3gclip4m4v8bp9b5x050zafyjkdcwxd5l";
-      name = "breeze-gtk-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/breeze-gtk-5.21.3.tar.xz";
+      sha256 = "1x5by915lfhbkhgrhy3lkwg64skwdlqaxzbq92x0m9v9a9agwidc";
+      name = "breeze-gtk-5.21.3.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/breeze-plymouth-5.20.5.tar.xz";
-      sha256 = "0yiqqwms0qrnbxqb8nwmgssrp1f92jwjg8rfzapaq5jxdycl1d9m";
-      name = "breeze-plymouth-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/breeze-plymouth-5.21.3.tar.xz";
+      sha256 = "01ida3pfj6g1igndjfjpv16199zysgxlxlnc7vsx7kr8aval8pmx";
+      name = "breeze-plymouth-5.21.3.tar.xz";
     };
   };
   discover = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/discover-5.20.5.tar.xz";
-      sha256 = "08dmc8rvbfi1zyk9if588h6948xqcqm9jxdp26q84mzq517x9fn5";
-      name = "discover-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/discover-5.21.3.tar.xz";
+      sha256 = "170kxhrwj4mvj5qg7cyz3sxdfyp7rr4pgsi3v7kahs19a9w3isnx";
+      name = "discover-5.21.3.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/drkonqi-5.20.5.tar.xz";
-      sha256 = "1rl212qmmikbnkyryibpp6gxh4jpklynhgr45ym5gcn3903i3vh9";
-      name = "drkonqi-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/drkonqi-5.21.3.tar.xz";
+      sha256 = "1hq37vi0vndhy66labspm75blicx1g4q594wxfxzl076mav5jds4";
+      name = "drkonqi-5.21.3.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kactivitymanagerd-5.20.5.tar.xz";
-      sha256 = "1jzss3waq8jjzbs3rrxxk9dmr974pj5ryw4rdj8bpkc451wc4068";
-      name = "kactivitymanagerd-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kactivitymanagerd-5.21.3.tar.xz";
+      sha256 = "1x5p6rbjf9kz07r5mrkiglvbigvk5bfx8qpb8l2vagsbvlg298c3";
+      name = "kactivitymanagerd-5.21.3.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kde-cli-tools-5.20.5.tar.xz";
-      sha256 = "0z32fwc9l8c3xfy1l7v0i26ay8icnxqwrnxz6h8qgjlv6p8b4h04";
-      name = "kde-cli-tools-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kde-cli-tools-5.21.3.tar.xz";
+      sha256 = "0hkmr3zxg4np1ppsgj77ijgkwgvl7d0zxwl46xjc2px877lx8bpp";
+      name = "kde-cli-tools-5.21.3.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kdecoration-5.20.5.tar.xz";
-      sha256 = "1kc166f2gqgspsnvxyk8k3k3mmd1ndhgr1dyjzknqdys32dkm5vf";
-      name = "kdecoration-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kdecoration-5.21.3.tar.xz";
+      sha256 = "06a3gsf1lyjxccjzn0ad254wsf7x2bln2i6kyk5j4gwqss6lplf5";
+      name = "kdecoration-5.21.3.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kde-gtk-config-5.20.5.tar.xz";
-      sha256 = "1f3fvr201wr7jdh1hg8ff7yis7hnv7653hvx0531hx1x2hfdva1r";
-      name = "kde-gtk-config-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kde-gtk-config-5.21.3.tar.xz";
+      sha256 = "17fyan2jah059kj1i0sy7h901a4d2k7cc87sd84mskyys7g8vs1h";
+      name = "kde-gtk-config-5.21.3.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kdeplasma-addons-5.20.5.tar.xz";
-      sha256 = "1sypmn72fp6l57px3pq9ivzj2r2l3k9vy5006idnfgblzahvpi2n";
-      name = "kdeplasma-addons-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kdeplasma-addons-5.21.3.tar.xz";
+      sha256 = "1181ax96csn4170p5blvhr679d7l865nby5a66swscyl3a5ys8b1";
+      name = "kdeplasma-addons-5.21.3.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kgamma5-5.20.5.tar.xz";
-      sha256 = "1gy0pgsk3xi129y8h78lcif60ajs3y5fxzj1pl7mn6g72f7mwxld";
-      name = "kgamma5-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kgamma5-5.21.3.tar.xz";
+      sha256 = "0h8rwwd6lyfzmxsr5sfvllh1j8gk1pbq1w2fva8q534qrkqhqb49";
+      name = "kgamma5-5.21.3.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/khotkeys-5.20.5.tar.xz";
-      sha256 = "1iw8rxdl9q45jqsnmqdm1lkymzkyxkrfgch51kxfj34vd4mi66h8";
-      name = "khotkeys-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/khotkeys-5.21.3.tar.xz";
+      sha256 = "1n3ahrb5mzrxap572ydal1sy5q71af97iy4i2fwbljdb6zb1l1bl";
+      name = "khotkeys-5.21.3.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kinfocenter-5.20.5.tar.xz";
-      sha256 = "0k3vvfwrfwmmicw8p81fpqljvmj3n8342avavc49ajmnygls7ssm";
-      name = "kinfocenter-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kinfocenter-5.21.3.tar.xz";
+      sha256 = "1hj4mnx2mxb1ya7la05frx5c39cp3q7c5f78lnp6p8bkv3ylik72";
+      name = "kinfocenter-5.21.3.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kmenuedit-5.20.5.tar.xz";
-      sha256 = "0apmhglw74ppps52fhspjdsiy19b219lf68aj8jlpiiqcn80mggf";
-      name = "kmenuedit-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kmenuedit-5.21.3.tar.xz";
+      sha256 = "0fc3sal11amaj5ydws86hdmc45zhrxkv6lc5sfy200wvff3ynjjj";
+      name = "kmenuedit-5.21.3.tar.xz";
     };
   };
   kscreen = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kscreen-5.20.5.tar.xz";
-      sha256 = "1njjkrdgdd6g8avf7ik9fd7j9g4zdbjghli7svcfz2z8h6na626y";
-      name = "kscreen-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kscreen-5.21.3.tar.xz";
+      sha256 = "1f9gxdlj883ddmc1xgd1nmm8n6m5yd269kfx3m9bbp61cw4hrqlm";
+      name = "kscreen-5.21.3.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kscreenlocker-5.20.5.tar.xz";
-      sha256 = "07y0lhwh4pc5rsdfr5yqb645v37ya97vh3dmy2riw9908hiyybw0";
-      name = "kscreenlocker-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kscreenlocker-5.21.3.tar.xz";
+      sha256 = "1hjlpwwca9nrdwgsiy5ss5ainr1fy1wfvi4g599cvijb77qc84h0";
+      name = "kscreenlocker-5.21.3.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/ksshaskpass-5.20.5.tar.xz";
-      sha256 = "1xk55ampbrz56pl739m6r150qcsjq0nw2sxxkpqykgwjh275y4ry";
-      name = "ksshaskpass-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/ksshaskpass-5.21.3.tar.xz";
+      sha256 = "16c2kzdmw3viphaygdff29cvi06r53ag4a6hkxw15yrscw31n3ns";
+      name = "ksshaskpass-5.21.3.tar.xz";
     };
   };
   ksysguard = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/ksysguard-5.20.5.tar.xz";
-      sha256 = "0ddb3m6rygjisv31bc722vxzyb2q14940szfzijcv48z5ixj5x9j";
-      name = "ksysguard-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/ksysguard-5.21.3.tar.xz";
+      sha256 = "0ys1idjqb9n67czdhlds6mhhiizxq8qq4rmds9nq8cm961g5kqsf";
+      name = "ksysguard-5.21.3.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kwallet-pam-5.20.5.tar.xz";
-      sha256 = "1wn1zm8bfxxsjvx4rbds60v9ckizj55znpq477vnzrh2xfx13rjk";
-      name = "kwallet-pam-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kwallet-pam-5.21.3.tar.xz";
+      sha256 = "1dnni2k4ry11mfjnfc0i44zww3glhsbr70qnpkl9dsf5rj4dcwj3";
+      name = "kwallet-pam-5.21.3.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kwayland-integration-5.20.5.tar.xz";
-      sha256 = "0rqzq851apw1p4c7salk7rcygjdw7ra0x95xw57vh68w19kn9wrk";
-      name = "kwayland-integration-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kwayland-integration-5.21.3.tar.xz";
+      sha256 = "0kqw5dbsxmdm5fi34yq718ngkx5j23211jh4l9vl029qgbi42xhc";
+      name = "kwayland-integration-5.21.3.tar.xz";
     };
   };
   kwayland-server = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kwayland-server-5.20.5.tar.xz";
-      sha256 = "0ajxjj2cbrg6rpry3r48q3zhxxkr09498j5in0v1jwijp83n9wz0";
-      name = "kwayland-server-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kwayland-server-5.21.3.tar.xz";
+      sha256 = "0d3asblzz9c7cbjfdk33z26hn5n14rdrc3s9jm9awvcc1sd122a4";
+      name = "kwayland-server-5.21.3.tar.xz";
     };
   };
   kwin = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kwin-5.20.5.tar.xz";
-      sha256 = "0kiq46gdvfv2811125kw1ncnk1pmpnqkvrz7p3lry72sjd1ja57c";
-      name = "kwin-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kwin-5.21.3.tar.xz";
+      sha256 = "0ni0ipfm0hp90sq03m1a5lm6shxb2cf9j1a4kiqpaf7n62ch8f3w";
+      name = "kwin-5.21.3.tar.xz";
     };
   };
   kwrited = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/kwrited-5.20.5.tar.xz";
-      sha256 = "1h0vbb0bz4r26g4yf88jfzkbi8xbyf44c2y9nmlrmr5lws4bpcmz";
-      name = "kwrited-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/kwrited-5.21.3.tar.xz";
+      sha256 = "01nn94qmi8q38rdv694d9qs7zahsziclmkw49zy0wlffq4ivpk6x";
+      name = "kwrited-5.21.3.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/libkscreen-5.20.5.tar.xz";
-      sha256 = "0641kk7s4xy5y94rn6xzjnrp4sbl7yn9w9qzlw4925858pgrr9qv";
-      name = "libkscreen-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/libkscreen-5.21.3.tar.xz";
+      sha256 = "1j2d1xpn48ks0wk9vvnvj9r03bc0ggrqvblyhs30p31svfihjs3a";
+      name = "libkscreen-5.21.3.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.20.5";
+    version = "5.21.3.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/libksysguard-5.20.5.tar.xz";
-      sha256 = "0v2x7sl5gg8a9i1cwx8prv03pcls4q3wfxxs5qs6g5ami1f679d8";
-      name = "libksysguard-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/libksysguard-5.21.3.1.tar.xz";
+      sha256 = "0nayjihapn71wrnzfb4wv9laafysl0x6sn98sbwhclapbdvxnw73";
+      name = "libksysguard-5.21.3.1.tar.xz";
     };
   };
   milou = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/milou-5.20.5.tar.xz";
-      sha256 = "1hmpdj2zi6nidm6058a6kjgzij8qy9xihv20hi2dhk0f8ys42k3h";
-      name = "milou-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/milou-5.21.3.tar.xz";
+      sha256 = "0qbk0y783n7f7pl0akx252vyblrrgmsg5yr7ncaijq4x4l90f1yf";
+      name = "milou-5.21.3.tar.xz";
     };
   };
   oxygen = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/oxygen-5.20.5.tar.xz";
-      sha256 = "166jk8ix0dnv92svymaxjwbc08k6q8nag9xr2dc033x5lr2l59qr";
-      name = "oxygen-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/oxygen-5.21.3.tar.xz";
+      sha256 = "16yj1qx4mbi62brkn8wkcr6sz5dkbl2pf49zc1hadnxfm9wd3z0a";
+      name = "oxygen-5.21.3.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-browser-integration-5.20.5.tar.xz";
-      sha256 = "03zzmzdlc5a3nrx6izb66s7l3cmangkfjda2mf17g2097rrnb9n2";
-      name = "plasma-browser-integration-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-browser-integration-5.21.3.tar.xz";
+      sha256 = "1hz996lv3vvp1zldzpkb9dmvnn94v69j2vq9sfs446c25ggf9d6y";
+      name = "plasma-browser-integration-5.21.3.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-desktop-5.20.5.tar.xz";
-      sha256 = "1fc74zgxkp65pj8p58prd5rq7nqspjfcgr70say2imagyj9nwrdx";
-      name = "plasma-desktop-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-desktop-5.21.3.tar.xz";
+      sha256 = "0bryk523qfzb5max1h460d67ir6xbrsws9bq72bdfbv1wkv64kyy";
+      name = "plasma-desktop-5.21.3.tar.xz";
     };
   };
   plasma-disks = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-disks-5.20.5.tar.xz";
-      sha256 = "0bcwf3g2vy2gf0igg0dyl9x5qc0xx0d5z05n4mi7asg5acl596r1";
-      name = "plasma-disks-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-disks-5.21.3.tar.xz";
+      sha256 = "18a7dppfhb2wpb7sfhnayq96bxjlzygdz7sppcjikxil8klhv1aq";
+      name = "plasma-disks-5.21.3.tar.xz";
+    };
+  };
+  plasma-firewall = {
+    version = "5.21.3";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.21.3/plasma-firewall-5.21.3.tar.xz";
+      sha256 = "0bzmcakzwiimc90bbpih1z5isrcfhdfwlslp4q3v3npppnivv9bw";
+      name = "plasma-firewall-5.21.3.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-integration-5.20.5.tar.xz";
-      sha256 = "1wydjnmryf2kvfgg6m9kafa5waimccqr531qrq3nisdjc5p1w9x8";
-      name = "plasma-integration-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-integration-5.21.3.tar.xz";
+      sha256 = "09dlbfildd8wl0nbss84yibljyl6cadx95q8q4n0c5wymyc4zqy1";
+      name = "plasma-integration-5.21.3.tar.xz";
     };
   };
   plasma-nano = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-nano-5.20.5.tar.xz";
-      sha256 = "0h276i1dxbiziw258wf6az9mnysp3xxfh7nlxv0g2w1vfnhm23v5";
-      name = "plasma-nano-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-nano-5.21.3.tar.xz";
+      sha256 = "1yqn29769nnfhiyqbpv15c0zxvkfzq4yvk9x9qlchbcwjc1gr23j";
+      name = "plasma-nano-5.21.3.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-nm-5.20.5.tar.xz";
-      sha256 = "060f32adr0wlv2bs9swjyxcil7n74cnk48j8b8984wwhk6zz53a6";
-      name = "plasma-nm-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-nm-5.21.3.tar.xz";
+      sha256 = "0d7v757kzd0pcvlz201m0njcz9y8j0bqkwbzdz3gik9s7x6rl73p";
+      name = "plasma-nm-5.21.3.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-pa-5.20.5.tar.xz";
-      sha256 = "0xvkbrz3290xxfvv1rqqv7w57j3gdng8m2jyjj1j6dmaackl512d";
-      name = "plasma-pa-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-pa-5.21.3.tar.xz";
+      sha256 = "16z9xzn5swrzz86yd8lykjphs92ghdsahfxjv0v9nj3ca24kfibp";
+      name = "plasma-pa-5.21.3.tar.xz";
     };
   };
   plasma-phone-components = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-phone-components-5.20.5.tar.xz";
-      sha256 = "14h790b2jfs2j2lvv3dwqm20v3nlvah2909g4mhm9kwfdsmgnjms";
-      name = "plasma-phone-components-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-phone-components-5.21.3.tar.xz";
+      sha256 = "1dhv0gdyk47dl8il6zwjdz84jmz2d4ppfyifzc2rzf0ys934scn0";
+      name = "plasma-phone-components-5.21.3.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-sdk-5.20.5.tar.xz";
-      sha256 = "13cqn700nadqgmn54sy8qbf7waqkgvhzndh73jvmhb0z699z4s6y";
-      name = "plasma-sdk-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-sdk-5.21.3.tar.xz";
+      sha256 = "0asbb7j5b8c4kixw1yf7mdfyd8gjrf57gdb2wfs1npasak0dw84w";
+      name = "plasma-sdk-5.21.3.tar.xz";
+    };
+  };
+  plasma-systemmonitor = {
+    version = "5.21.3";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.21.3/plasma-systemmonitor-5.21.3.tar.xz";
+      sha256 = "1w1xzqmpzk016f8rkyx6cvm6lng3h177c441hird13n6v147l7ll";
+      name = "plasma-systemmonitor-5.21.3.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-tests-5.20.5.tar.xz";
-      sha256 = "0h6wccqp46s3i8dqc6rrh68l8fk662yvz0fdscqv295g1zwhb45j";
-      name = "plasma-tests-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-tests-5.21.3.tar.xz";
+      sha256 = "000iwijpxxicixy5zbbgfs96h988x1d4wvjw90vagjw4hj361dk8";
+      name = "plasma-tests-5.21.3.tar.xz";
     };
   };
   plasma-thunderbolt = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-thunderbolt-5.20.5.tar.xz";
-      sha256 = "06l5zpgn5zmid0rkp8lx228nw72nd991s2cg29yg2h51zyvff4v0";
-      name = "plasma-thunderbolt-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-thunderbolt-5.21.3.tar.xz";
+      sha256 = "1j0nb9p5wbgksxy19bxsz9ni9ys40r4arvs8rl8pvvv9hndqhndm";
+      name = "plasma-thunderbolt-5.21.3.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-vault-5.20.5.tar.xz";
-      sha256 = "0b9jnzx5040sgzqsnzjz61sxnlsmbqfsk8mvqclgqphgiqsbcnm2";
-      name = "plasma-vault-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-vault-5.21.3.tar.xz";
+      sha256 = "1q59q6y8gx4qbp1a5nbsg8zmrdljacfqd3i5n214nlj6al13sg9j";
+      name = "plasma-vault-5.21.3.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-workspace-5.20.5.tar.xz";
-      sha256 = "0966nqyqs7hb7fp3a3jxhm64iqwbafd29sbagigx9d7gj8qg8zim";
-      name = "plasma-workspace-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-workspace-5.21.3.tar.xz";
+      sha256 = "1djanxc7mslw9hnbzlngf6pflc6byjzqb14ibilg3fxsir2jwq40";
+      name = "plasma-workspace-5.21.3.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plasma-workspace-wallpapers-5.20.5.tar.xz";
-      sha256 = "03z7pcba8kkmb70dn7gsqldxgb8lky6qw040p5ik1j07516xm6z3";
-      name = "plasma-workspace-wallpapers-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plasma-workspace-wallpapers-5.21.3.tar.xz";
+      sha256 = "1qjkk3qfzz1id898kmx7xx6rr6p77y0jfwkjyf26abk51bdfk9lm";
+      name = "plasma-workspace-wallpapers-5.21.3.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/plymouth-kcm-5.20.5.tar.xz";
-      sha256 = "0lwir088h3mjdxc6zzbd74g7alfnsrhf7m0p7ma6prncdj25pcyz";
-      name = "plymouth-kcm-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/plymouth-kcm-5.21.3.tar.xz";
+      sha256 = "0wmpvb06z0js50c9jpv61jlxbx9sf1f5lidzs5v4xs31shxc9sbg";
+      name = "plymouth-kcm-5.21.3.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.20.5";
+    version = "1-5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/polkit-kde-agent-1-5.20.5.tar.xz";
-      sha256 = "1rkvnci93xvxga6cvw99aaivkn8897kyqdw7p9hmk09qvg2qb92v";
-      name = "polkit-kde-agent-1-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/polkit-kde-agent-1-5.21.3.tar.xz";
+      sha256 = "06qpkf01665mjr49wyc3f336g6g7l93k8l35q0yyih58i3v04s0v";
+      name = "polkit-kde-agent-1-5.21.3.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.20.5";
+    version = "5.21.3";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.21.3/powerdevil-5.21.3.tar.xz";
+      sha256 = "0lk6bvc0mym3x3sd85bsvsxvm82vr40lcx355xjycxskf75c5jzz";
+      name = "powerdevil-5.21.3.tar.xz";
+    };
+  };
+  qqc2-breeze-style = {
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/powerdevil-5.20.5.tar.xz";
-      sha256 = "1w3figagjxmrbc7hs81bllfkpq6f9mn4mwj7zjzxjf7d5fkmryrj";
-      name = "powerdevil-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/qqc2-breeze-style-5.21.3.tar.xz";
+      sha256 = "1ydvirjrkjbwfc2faz74dd9zlmfz18fa3cig143gna9rfr5api54";
+      name = "qqc2-breeze-style-5.21.3.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/sddm-kcm-5.20.5.tar.xz";
-      sha256 = "1zw9y6knrx848f529m45iszr0xplr9lnck242ddmzj3x7qz0x1az";
-      name = "sddm-kcm-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/sddm-kcm-5.21.3.tar.xz";
+      sha256 = "1flqgfpiz66s7dsw1k95zdrbj7ka09r0i2pcdygnrwlls5yvqljz";
+      name = "sddm-kcm-5.21.3.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/systemsettings-5.20.5.tar.xz";
-      sha256 = "1b1j9hl9nzd4qqs255yd3svsb492w8i6l6ccihllwzqwkb1kpq5j";
-      name = "systemsettings-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/systemsettings-5.21.3.tar.xz";
+      sha256 = "08ynlg282x1klgpd43mh3ng4m579iq9hjlln96fqaw19g7x1i58x";
+      name = "systemsettings-5.21.3.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.20.5";
+    version = "5.21.3";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.20.5/xdg-desktop-portal-kde-5.20.5.tar.xz";
-      sha256 = "07g70517p89araa305if2xgwpfd7sdbknl880hqn2mqaqd9m83gl";
-      name = "xdg-desktop-portal-kde-5.20.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.3/xdg-desktop-portal-kde-5.21.3.tar.xz";
+      sha256 = "05r1kbw39jmj2gfn42052y779l0k89kxh7xynw07igr7c5mxy4ih";
+      name = "xdg-desktop-portal-kde-5.21.3.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix b/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
index 2b0450928f5a..aade506483f8 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
@@ -1,6 +1,6 @@
 {
   mkDerivation, lib,
-  extra-cmake-modules, gettext, kdoctools, python,
+  extra-cmake-modules, gettext, kdoctools,
   cups, epoxy, mesa, pcre, pipewire, wayland, wayland-protocols,
   kcoreaddons, knotifications, kwayland, kwidgetsaddons, kwindowsystem,
   kirigami2, kdeclarative, plasma-framework, plasma-wayland-protocols, kio,
@@ -10,7 +10,7 @@
 mkDerivation {
   name = "xdg-desktop-portal-kde";
   meta.broken = lib.versionOlder qtbase.version "5.15.0";
-  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
+  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools ];
   buildInputs = [
     cups epoxy mesa pcre pipewire wayland wayland-protocols
 
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
index 251866528e64..b9ff011f3be1 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
@@ -1,17 +1,22 @@
-{ mkXfceDerivation, exo, gtk3, gvfs, glib }:
+{ lib, mkXfceDerivation, gtk3, gvfs, glib }:
 
 mkXfceDerivation {
   category = "apps";
   pname = "gigolo";
-  version = "0.5.1";
+  version = "0.5.2";
   odd-unstable = false;
 
-  sha256 = "11a35z5apr26nl6fpmbsvvv3xf5w61sgzcb505plavrchpfbdxjn";
+  sha256 = "8UDb4H3zxRKx2y+MRsozQoR3es0fs5ooR/5wBIE11bY=";
 
-  nativeBuildInputs = [ exo ];
   buildInputs = [ gtk3 glib gvfs ];
 
+  postPatch = ''
+    # exo-csource has been dropped from exo
+    substituteInPlace src/Makefile.am --replace exo-csource xdt-csource
+  '';
+
   meta = {
     description = "A frontend to easily manage connections to remote filesystems";
+    license = with lib.licenses; [ gpl2Only ];
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
index 3c84f5558a11..22fdd00cb2f0 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
@@ -1,20 +1,18 @@
-{ mkXfceDerivation, exo, glib, gtk3, gtksourceview3, xfconf }:
+{ mkXfceDerivation, gobject-introspection, vala, gtk3, gtksourceview4, xfconf }:
 
 mkXfceDerivation {
   category = "apps";
   pname = "mousepad";
-  version = "0.4.2";
+  version = "0.5.4";
   odd-unstable = false;
 
-  sha256 = "0a35vaq4l0d8vzw7hqpvbgkr3wj1sqr2zvj7bc5z4ikz2cppqj7p";
+  sha256 = "0yrmjs6cyzm08jz8wzrx8wdxj7zdbxn6x625109ckfcfxrkp4a2f";
 
-  nativeBuildInputs = [ exo ];
-  buildInputs = [ glib gtk3 gtksourceview3 xfconf ];
+  nativeBuildInputs = [ gobject-introspection vala ];
 
-  # See https://github.com/NixOS/nixpkgs/issues/36468
-  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+  buildInputs = [ gtk3 gtksourceview4 xfconf ];
 
   meta = {
-    description = "A simple text editor for Xfce";
+    description = "Simple text editor for Xfce";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
index bfb865184487..5c55a22ea74c 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
@@ -7,9 +7,9 @@
 mkXfceDerivation {
   category = "apps";
   pname = "parole";
-  version = "1.0.5";
+  version = "4.16.0";
 
-  sha256 = "0qgis2gnkcvg7xwp76cbi0ihqdjprvvw2d66hk7klhrafp7c0v13";
+  sha256 = "07hcnbcd56lq7z3gq1cnk71ppy98hwdvlfp5z3zlc55cqrry26zm";
 
   postPatch = ''
     substituteInPlace src/plugins/mpris2/Makefile.am \
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
index 8766bd302ab3..e439c3d055df 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, automakeAddFlags, exo, gtk3, glib, libexif
+{ mkXfceDerivation, gtk3, glib, libexif
 , libxfce4ui, libxfce4util, xfconf }:
 
 mkXfceDerivation {
@@ -8,9 +8,13 @@ mkXfceDerivation {
 
   sha256 = "07h7wbq3xh2ac6q4kp2ai1incfn0zfxxngap7hzqx47a5xw2mrm8";
 
-  nativeBuildInputs = [ exo ];
   buildInputs = [ glib gtk3 libexif libxfce4ui libxfce4util xfconf ];
 
+  postPatch = ''
+    # exo-csource has been dropped from exo
+    substituteInPlace src/Makefile.am --replace exo-csource xdt-csource
+  '';
+
   meta = {
     description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
   };
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
index 7e582abc05f7..6761d2ed5cd9 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-dict";
-  version = "0.8.3";
+  version = "0.8.4";
 
-  sha256 = "0p7k2ffknr23hh3j17dhh5q8adn736p2piwx0sg8f5dvvhhc5whz";
+  sha256 = "0gm5gwqxhnv3qz9ggf8dj1sq5s72xcliidkyip9l91msx03hfjah";
 
   patches = [ ./configure-gio.patch ];
 
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
index c9a614888404..64ab34d2b6fe 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
@@ -4,9 +4,9 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-notifyd";
-  version = "0.6.1";
+  version = "0.6.2";
 
-  sha256 = "18d2q5b54df8j2281lash8gm0826c6apn39q4igfz2zfcyqjh1if";
+  sha256 = "1q8n7dffyqbfyy6vpqlmnsfpavlc7iz6hhv1h27fkwzswy2rx28s";
 
   buildInputs = [ exo gtk3 glib libnotify libxfce4ui libxfce4util xfce4-panel xfconf ];
 
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
index 8c0fa3e3edb6..3098b9c756ea 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
@@ -3,10 +3,10 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-screenshooter";
-  version = "1.9.7";
+  version = "1.9.8";
   odd-unstable = false;
 
-  sha256 = "14vbd7iigaw57hl47rnixk873c20q5clqynzkm9zzpqc568dxixd";
+  sha256 = "0pbzjcaxm8gk0s75s99kvzygmih4yghp7ngf2mxymjiywcxqr40d";
 
   buildInputs = [ exo gtk3 libsoup libxfce4ui libxfce4util xfce4-panel glib-networking ];
 
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
index 9a923025c94d..5a1510eaa8c5 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
@@ -1,11 +1,11 @@
-{ lib, mkXfceDerivation, exo, gtk3, libwnck3, libXmu }:
+{ mkXfceDerivation, exo, gtk3, libwnck3, libXmu }:
 
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-taskmanager";
-  version = "1.2.3";
+  version = "1.4.2";
 
-  sha256 = "0818chns7vkvjqakgz8z790adkygcq4jlw59dv6kyzk17hxq6cxv";
+  sha256 = "1l7k00y3d9j38g4hxjrcrh1y4s6s77sq4sjcadsbpzs6zdf05hld";
 
   nativeBuildInputs = [ exo ];
   buildInputs = [ gtk3 libwnck3 libXmu ];
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
index 56de8d3bfb83..19d98f84e3ae 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
@@ -1,11 +1,13 @@
-{ mkXfceDerivation, gtk3, libxfce4ui, vte, xfconf, pcre2 }:
+{ mkXfceDerivation, gtk3, libxfce4ui, vte, xfconf, pcre2, libxslt, docbook_xml_dtd_45, docbook_xsl }:
 
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-terminal";
-  version = "0.8.9.2";
+  version = "0.8.10";
 
-  sha256 = "1vlpfsrdalqmsd86aj0kvvam5skzn6xngigjziwli6q6il6lb9fj";
+  sha256 = "0v58qcrdpqpd2nbwlc4ra7j9nkvfzfhb1zcp1kggbn627q86i0ql";
+
+  nativeBuildInputs = [ libxslt docbook_xml_dtd_45 docbook_xsl ];
 
   buildInputs = [ gtk3 libxfce4ui vte xfconf pcre2 ];
 
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix
index a9610125b5b5..837361669480 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix
@@ -17,11 +17,11 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfdashboard";
-  version = "0.7.7";
+  version = "0.9.1";
   rev-prefix = "";
   odd-unstable = false;
 
-  sha256 = "0b9pl3k8wl7svwhb9knhvr86gjg2904n788l8cbczwy046ql7pyc";
+  sha256 = "14k774wxbk3w0ci2mmm6bhq4i742qahd0j0dr40iwmld55473zgd";
 
   buildInputs = [
     clutter
diff --git a/nixpkgs/pkgs/desktops/xfce/art/xfwm4-themes/default.nix b/nixpkgs/pkgs/desktops/xfce/art/xfwm4-themes/default.nix
index 569a18a796e8..31623598d316 100644
--- a/nixpkgs/pkgs/desktops/xfce/art/xfwm4-themes/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/art/xfwm4-themes/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.xfce.org/";
     description = "Themes for Xfce";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.volth ];
   };
diff --git a/nixpkgs/pkgs/desktops/xfce/core/exo/default.nix b/nixpkgs/pkgs/desktops/xfce/core/exo/default.nix
index 17da815534ce..d9afdfe0d9cf 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/exo/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/exo/default.nix
@@ -1,12 +1,12 @@
-{ mkXfceDerivation, docbook_xsl, glib, libxslt, gtk2, gtk3
+{ mkXfceDerivation, docbook_xsl, glib, libxslt, gtk3
 , libxfce4ui, libxfce4util, perl }:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "exo";
-  version = "0.12.11";
+  version = "4.16.1";
 
-  sha256 = "1db7w6jk3i501x4qw0hs0ydrm1fjdkxmahzbv5iag859wnnlg0pd";
+  sha256 = "1220mq8gs5s8l0d1p92j6icldzqj6zaisp27ss5jm7hwkkcnms9n";
 
   nativeBuildInputs = [
     libxslt
@@ -14,7 +14,6 @@ mkXfceDerivation {
   ];
 
   buildInputs = [
-    gtk2 # some xfce plugins still uses gtk2
     gtk3
     glib
     libxfce4ui
diff --git a/nixpkgs/pkgs/desktops/xfce/core/garcon/default.nix b/nixpkgs/pkgs/desktops/xfce/core/garcon/default.nix
index 69184f2afa88..56ce6ac8aa29 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/garcon/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/garcon/default.nix
@@ -1,15 +1,18 @@
-{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util }:
+{ lib, mkXfceDerivation, gobject-introspection, gtk3, libxfce4ui, libxfce4util }:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "garcon";
-  version = "0.6.4";
+  version = "4.16.1";
 
-  sha256 = "0pamhp1wffiw638s66nws2mpzmwkhvhb6iwccfy8b0kyr57wipjv";
+  sha256 = "134nm1754i12axl4si60fdwkbk2v6z108nrj9c0lb5in1zmqwa9a";
+
+  nativeBuildInputs = [ gobject-introspection ];
 
   buildInputs = [ gtk3 libxfce4ui libxfce4util ];
 
   meta = {
     description = "Xfce menu support library";
+    license = with lib.licenses; [ lgpl2Only fdl11Only ];
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix b/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
index 79c8ec74b626..e17880f1b1b0 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
@@ -1,15 +1,15 @@
-{ lib, mkXfceDerivation, gobject-introspection, gtk2, gtk3, libICE, libSM
-, libstartup_notification, libxfce4util, xfconf }:
+{ lib, mkXfceDerivation, gobject-introspection, vala, gtk3, libICE, libSM
+, libstartup_notification, libgtop, epoxy, libxfce4util, xfconf }:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "libxfce4ui";
-  version = "4.14.1";
+  version = "4.16.0";
 
-  sha256 = "0fnncf30s51qhgixn57z4d021pjjhzgsg2x69w4dy68vff2347qy";
+  sha256 = "0a9wfdpsv83giwv6kcidvpd6c665aa7sv6f2l1q6qcq214vb0rk2";
 
-  nativeBuildInputs = [ gobject-introspection ];
-  buildInputs =  [ gtk2 gtk3 libstartup_notification xfconf ];
+  nativeBuildInputs = [ gobject-introspection vala ];
+  buildInputs =  [ gtk3 libstartup_notification libgtop epoxy xfconf ];
   propagatedBuildInputs = [ libxfce4util libICE libSM ];
 
   configureFlags = [
@@ -18,6 +18,6 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Widgets library for Xfce";
-    license = licenses.lgpl2Plus;
+    license = with licenses; [ lgpl2Plus lgpl21Plus ];
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix b/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix
index 4540d2352511..69c392128503 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix
@@ -1,13 +1,13 @@
-{ lib, mkXfceDerivation, gobject-introspection }:
+{ lib, mkXfceDerivation, gobject-introspection, vala }:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "libxfce4util";
-  version = "4.14.0";
+  version = "4.16.0";
 
-  sha256 = "0vq16bzmnykiikg4dhiaj0qbyj76nkdd54j6k6n568h3dc9ix6q4";
+  sha256 = "1p0snipc81dhaq5glv7c1zfq5pcvgq7nikl4ikhfm2af9picfsxb";
 
-  nativeBuildInputs = [ gobject-introspection ];
+  nativeBuildInputs = [ gobject-introspection vala ];
 
   meta = with lib; {
     description = "Extension library for Xfce";
diff --git a/nixpkgs/pkgs/desktops/xfce/core/thunar-volman/default.nix b/nixpkgs/pkgs/desktops/xfce/core/thunar-volman/default.nix
index ecc26ccb8fea..6ceca34b1bdd 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/thunar-volman/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/thunar-volman/default.nix
@@ -3,11 +3,11 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "thunar-volman";
-  version = "0.9.5";
+  version = "4.16.0";
 
   buildInputs = [ exo gtk3 libgudev libxfce4ui libxfce4util xfconf ];
 
-  sha256 = "1qrlpn0q5g9psd41l6y80r3bvbg8jaic92m6r400zzwcvivf95z0";
+  sha256 = "002nkxsvcq384dgpj7lv3bmb21ks64hsq13l67z1dcjbj51hzl03";
 
   odd-unstable = false;
 
diff --git a/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix b/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix
index 00da58f6628b..cc94683ddde4 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix
@@ -21,9 +21,9 @@
 let unwrapped = mkXfceDerivation {
   category = "xfce";
   pname = "thunar";
-  version = "1.8.15";
+  version = "4.16.6";
 
-  sha256 = "1y9d88i0kwl7ak4d65gy3qf4bpkiyaqxd4g6px3v1ykf274k8al8";
+  sha256 = "12zqwazsqdmghy4h2c4fwxha069l07d46i512395y22h7n6655rn";
 
   nativeBuildInputs = [
     docbook_xsl
diff --git a/nixpkgs/pkgs/desktops/xfce/core/thunar/wrapper.nix b/nixpkgs/pkgs/desktops/xfce/core/thunar/wrapper.nix
index b0b4268db6ec..4e9732ce1c4a 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/thunar/wrapper.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/thunar/wrapper.nix
@@ -5,7 +5,7 @@ symlinkJoin {
 
   paths = [ thunar ] ++ thunarPlugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     wrapProgram "$out/bin/thunar" \
diff --git a/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix b/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
index cb6f90e5b96e..510d30ae63fb 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
@@ -5,7 +5,6 @@
 , freetype
 , libgsf
 , poppler
-, libjpeg
 , gst_all_1
 }:
 
@@ -14,9 +13,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "tumbler";
-  version = "0.2.9";
+  version = "4.16.0";
 
-  sha256 = "0b3mli40msv35qn67c1m9rn5bigj6ls10l08qk7fa3fwvzl49hmw";
+  sha256 = "1z4q858afj3yksim4lc96wylgvymv4cv6iw41qdxl5xd6ii2ddr4";
 
   buildInputs = [
     ffmpegthumbnailer
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix
index cbb444c6c764..01cc70e3b9af 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-appfinder";
-  version = "4.14.0";
+  version = "4.16.1";
 
-  sha256 = "04h7jxfm3wkxnxfy8149dckay7i160vvk4p9lnq6xny22r4x20h8";
+  sha256 = "1r7sjdavqadrpgxqclrznds7a1c2i7mlvghx5mi6qqnh42425gsy";
 
   nativeBuildInputs = [ exo ];
   buildInputs = [ garcon gtk3 libxfce4ui libxfce4util xfconf ];
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix
index 38fe82ffb011..9b3f443ba38a 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix
@@ -1,14 +1,27 @@
-{ mkXfceDerivation, autoreconfHook, autoconf, automake
-, glib, gtk-doc, intltool, libtool }:
+{ mkXfceDerivation
+, autoreconfHook
+, libxslt
+, docbook_xsl
+, autoconf
+, automake
+, glib
+, gtk-doc
+, intltool
+, libtool
+}:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-dev-tools";
-  version = "4.14.0";
+  version = "4.16.0";
 
-  sha256 = "10hcj88784faqrk08xb538355cla26vdk9ckx158hqdqv38sb42f";
+  sha256 = "0w47npi1np9vb7lhzjr680aa1xb8ch6kcbg0l0bqnpm0y0jmvgz6";
 
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [
+    autoreconfHook
+    libxslt
+    docbook_xsl
+  ];
 
   propagatedBuildInputs = [
     autoconf
@@ -19,11 +32,6 @@ mkXfceDerivation {
     libtool
   ];
 
-  preAutoreconf = ''
-    substitute configure.ac.in configure.ac \
-      --subst-var-by REVISION UNKNOWN
-  '';
-
   setupHook = ./setup-hook.sh;
 
   meta = {
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/setup-hook.sh b/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/setup-hook.sh
index 600bf47fd872..3abf3172ea66 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/setup-hook.sh
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/setup-hook.sh
@@ -1,5 +1,5 @@
 xdtEnvHook() {
-    addToSearchPath ACLOCAL_PATH $1/share/xfce4/dev-tools/m4macros
+    addToSearchPath ACLOCAL_PATH $1/share/aclocal
 }
 
 envHooks+=(xdtEnvHook)
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix
index b7bede9e27bb..0a08d3882386 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix
@@ -1,17 +1,48 @@
-{ mkXfceDerivation, tzdata, exo, garcon, gtk2, gtk3, glib, gettext, glib-networking, libxfce4ui, libxfce4util, libwnck3, xfconf, gobject-introspection }:
+{ mkXfceDerivation
+, exo
+, garcon
+, gettext
+, glib
+, gobject-introspection
+, gtk3
+, libdbusmenu-gtk3
+, libwnck3
+, libxfce4ui
+, libxfce4util
+, tzdata
+, vala
+, xfconf
+}:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-panel";
-  version = "4.14.4";
+  version = "4.16.2";
 
-  sha256 = "1srzgb9vsvfrbhym74zkz9hdhxcrvbffxpfgv5vprhlwxw3vk3fq";
+  sha256 = "0wy66viwjnp1c0lgf90fp3vyqy0f1m1kbfdym8a0yrv2b6sn3958";
 
-  nativeBuildInputs = [ gobject-introspection ];
-  buildInputs = [ exo garcon gtk2 gtk3 glib glib-networking libxfce4ui libxfce4util libwnck3 xfconf ];
+  nativeBuildInputs = [
+    gobject-introspection
+    vala
+  ];
+
+  buildInputs = [
+    exo
+    garcon
+    libdbusmenu-gtk3
+    libxfce4ui
+    libwnck3
+    xfconf
+    tzdata
+  ];
+
+  propagatedBuildInputs = [
+    glib
+    gtk3
+    libxfce4util
+  ];
 
   patches = [ ./xfce4-panel-datadir.patch ];
-  patchFlags = [ "-p1" ];
 
   postPatch = ''
     for f in $(find . -name \*.sh); do
@@ -21,9 +52,10 @@ mkXfceDerivation {
        --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
   '';
 
-  configureFlags = [ "--enable-gtk3" ];
+  # Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
-  meta =  {
+  meta = {
     description = "Xfce's panel";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
index 9f9a552b8cc6..709b6a2a0cbf 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
@@ -4,9 +4,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-power-manager";
-  version = "1.6.6";
+  version = "4.16.0";
 
-  sha256 = "0lyp3dp4ijbpf21vanrvgm6rmfp8v0zyqxibdj5gxnadmvcq38iy";
+  sha256 = "1rfw07xbv83rfb0mz3ayanlcvnaq7xpl2znsyya0hspysvavwks2";
 
   nativeBuildInputs = [ automakeAddFlags exo ];
   buildInputs = [ gtk3 libnotify libxfce4ui libxfce4util upower xfconf ];
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-session/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-session/default.nix
index c7442a01957a..0d4c0615898c 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfce4-session/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-session/default.nix
@@ -1,11 +1,11 @@
-{ mkXfceDerivation, polkit, exo, libxfce4util, libxfce4ui, xfconf, iceauth, gtk3, glib, libwnck3, xorg, xfce4-session }:
+{ mkXfceDerivation, polkit, exo, libxfce4util, libxfce4ui, xfconf, iceauth, gtk3, glib, libwnck3, xfce4-session }:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-session";
-  version = "4.14.2";
+  version = "4.16.0";
 
-  sha256 = "1gr6j96l792v33lbh7rqpbdjmy8m68hy14bsndx6bykv10zvmgx2";
+  sha256 = "0b8vkcqn2arjp6qdwmzr0f84n8fjgy2kbf9h4gq03400ar1l111c";
 
   buildInputs = [ exo gtk3 glib libxfce4ui libxfce4util libwnck3 xfconf polkit iceauth ];
 
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix
index 9b263e5ee733..71645cd1f988 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix
@@ -1,16 +1,16 @@
-{ mkXfceDerivation, automakeAddFlags, exo, garcon, gtk3, glib
+{ mkXfceDerivation, exo, garcon, gtk3, glib
 , libnotify, libxfce4ui, libxfce4util, libxklavier
 , upower, xfconf, xf86inputlibinput }:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-settings";
-  version = "4.14.3";
+  version = "4.16.0";
 
-  sha256 = "1zzngdj7mp2r6rcs8gvda1218zlz5gpnc6gsp20z32l69psp3yld";
+  sha256 = "0iha3jm7vmgk6hq7z4l2r7w9qm5jraka0z580i8i83704kfx9g0y";
 
   postPatch = ''
-    for f in $(find . -name \*.c); do
+    for f in xfsettingsd/pointers.c dialogs/mouse-settings/main.c; do
       substituteInPlace $f --replace \"libinput-properties.h\" '<xorg/libinput-properties.h>'
     done
   '';
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix
index 357f4b234108..41af53c9cc21 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix
@@ -1,11 +1,13 @@
-{ mkXfceDerivation, libxfce4util }:
+{ mkXfceDerivation, libxfce4util, gobject-introspection, vala }:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "xfconf";
-  version = "4.14.3";
+  version = "4.16.0";
 
-  sha256 = "0yxpdcyz81di7w9493jzps09bgrlgianjj5abnzahqmkpmpvb0rh";
+  sha256 = "00cp2cm1w5a6k7g0fjvqx7d2iwaqw196vii9jkx1aa7mb0f2gk63";
+
+  nativeBuildInputs = [ gobject-introspection vala ];
 
   buildInputs = [ libxfce4util ];
 
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfdesktop/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfdesktop/default.nix
index 75e9fc8cb653..a9e461a4e646 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfdesktop/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfdesktop/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfdesktop";
-  version = "4.14.2";
+  version = "4.16.0";
 
-  sha256 = "04fhm1pf9290sy3ymrmnfnm2x6fq5ldzvj5bjd9kz6zkx0nsq1za";
+  sha256 = "1znbccr25wvizmzzgdcf719y3qc9gqdi1g4rasgrmi95427lvwn3";
 
   buildInputs = [
     exo
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
index df46a80c4b7b..f8cfc551545c 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
@@ -5,9 +5,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfwm4";
-  version = "4.14.6";
+  version = "4.16.1";
 
-  sha256 = "1ml5b4nn8laqhjihfqqsbjn66525abhin5d32bplh1k9yfxw4xi4";
+  sha256 = "1lhxm9ifkrnvn1vq3aak3kd695i1ishpryjnw617ifzawy9lj10b";
 
   nativeBuildInputs = [ exo librsvg ];
 
diff --git a/nixpkgs/pkgs/desktops/xfce/default.nix b/nixpkgs/pkgs/desktops/xfce/default.nix
index de8ae12b8952..12f487f1784c 100644
--- a/nixpkgs/pkgs/desktops/xfce/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/default.nix
@@ -102,8 +102,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   #### PANEL PLUGINS
 
-  xfce4-vala-panel-appmenu-plugin = callPackage ./panel-plugins/xfce4-vala-panel-appmenu-plugin { };
-
   xfce4-battery-plugin = callPackage ./panel-plugins/xfce4-battery-plugin { };
 
   xfce4-clipman-plugin = callPackage ./panel-plugins/xfce4-clipman-plugin { };
diff --git a/nixpkgs/pkgs/desktops/xfce/mkXfceDerivation.nix b/nixpkgs/pkgs/desktops/xfce/mkXfceDerivation.nix
index 5c47dc7f85d1..a9f30ebfab55 100644
--- a/nixpkgs/pkgs/desktops/xfce/mkXfceDerivation.nix
+++ b/nixpkgs/pkgs/desktops/xfce/mkXfceDerivation.nix
@@ -48,7 +48,7 @@ let
 
     meta = with lib; {
       homepage = "https://gitlab.xfce.org/${category}/${pname}/about";
-      license = licenses.gpl2; # some libraries are under LGPLv2+
+      license = licenses.gpl2Plus; # some libraries are under LGPLv2+
       platforms = platforms.linux;
     };
   };
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
index 2349b4bf3e8d..1f79e0ffb298 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, gtk3, libXtst, libxfce4ui, libxfce4util, xfce4-panel, xfconf, exo }:
+{ mkXfceDerivation, libXtst, libxfce4ui, xfce4-panel, xfconf }:
 
 mkXfceDerivation {
   category = "panel-plugins";
@@ -6,7 +6,12 @@ mkXfceDerivation {
   version = "1.6.1";
   sha256 = "03akijvry1n1fkziyvxwcksl4vy4lmnpgd5izjs8jai5sndhsszl";
 
-  buildInputs = [ exo gtk3 libXtst libxfce4ui libxfce4util xfce4-panel xfconf ];
+  buildInputs = [ libXtst libxfce4ui xfce4-panel xfconf ];
+
+  postPatch = ''
+    # exo-csource has been dropped from exo
+    substituteInPlace panel-plugin/Makefile.am --replace exo-csource xdt-csource
+  '';
 
   meta = {
     description = "Clipboard manager for Xfce panel";
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix
index 3798edbf89dc..f776e6c1693a 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix
@@ -3,8 +3,8 @@
 mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-cpufreq-plugin";
-  version = "1.2.1";
-  sha256 = "1p7c4g3yfc19ksdckxpzq1q35jvplh5g55299cvv0afhdb5l8zhv";
+  version = "1.2.5";
+  sha256 = "1isqlfhz1ijl1h3hfvi0n4misdjsrhd7pc9h5rkaqm4vh543ggxg";
 
   buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];
 
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix
index e80d0bbc9ac7..991da9928ff4 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix
@@ -20,11 +20,11 @@ let
   category = "panel-plugins";
 in stdenv.mkDerivation rec {
   pname  = "xfce4-cpugraph-plugin";
-  version = "1.2.1";
+  version = "1.2.3";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "YVrfmr2RQXpEMZ2OTa3GAS+iKjd48vN5cXUS3Lfvkko=";
+    sha256 = "13302psv0fzg2dsgadr8j6mb06k1bsa4zw6hxmb644vqlvcwq37v";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
index 304b9d9076db..44d255c5fa64 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
@@ -3,17 +3,16 @@
 , intltool
 , libxfce4ui
 , xfce4-panel
-, gtk3
 , gettext
 }:
 
 mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-datetime-plugin";
-  version = "0.8.0";
+  version = "0.8.1";
 
-  rev-prefix = "datetime-";
-  sha256 = "12drh7y70d70r93lpv43fkj5cbyl0vciz4a41nxrknrfbhxrvyah";
+  rev-prefix = "xfce4-datetime-plugin-";
+  sha256 = "06h13bmh2sni4qbr3kfnqaa5dq5f48h4xkywrm9pa6h2nyvn4rma";
 
   nativeBuildInputs = [
     gettext
@@ -21,7 +20,6 @@ mkXfceDerivation {
   ];
 
   buildInputs = [
-    gtk3
     libxfce4ui
     xfce4-panel
   ];
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
index e64d6fbae511..2c83abe6575e 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
@@ -1,30 +1,30 @@
-{ lib, stdenv, pkg-config, fetchFromGitHub, python2, bash, vala_0_46
+{ lib, stdenv, pkg-config, fetchFromGitHub, python3, bash, vala_0_48
 , dockbarx, gtk2, xfce, pythonPackages, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "xfce4-dockbarx-plugin";
   version = "${ver}-${rev}";
-  ver = "0.5";
-  rev = "a2dcb66";
+  ver = "0.6";
+  rev = "5213876";
 
   src = fetchFromGitHub {
-    owner = "TiZ-EX1";
+    owner = "xuzhen";
     repo = "xfce4-dockbarx-plugin";
     rev = rev;
-    sha256 = "1f75iwlshnif60x0qqdqw5ffng2m4f4zp0ijkrbjz83wm73nsxfx";
+    sha256 = "0s8bljn4ga2hj480j0jwkc0npp8szbmirmcsys791gk32iq4dasn";
   };
 
   pythonPath = [ dockbarx ];
 
   nativeBuildInputs = [ pkg-config wafHook ];
-  buildInputs = [ python2 vala_0_46 gtk2 pythonPackages.wrapPython ]
+  buildInputs = [ python3 vala_0_48 gtk2 pythonPackages.wrapPython ]
     ++ (with xfce; [ libxfce4util xfce4-panel xfconf xfce4-dev-tools ])
     ++ pythonPath;
 
   postPatch = ''
     substituteInPlace wscript           --replace /usr/share/            "\''${PREFIX}/share/"
     substituteInPlace src/dockbarx.vala --replace /usr/share/            $out/share/
-    substituteInPlace src/dockbarx.vala --replace '/usr/bin/env python2' ${bash}/bin/bash
+    substituteInPlace src/dockbarx.vala --replace '/usr/bin/env python3' ${bash}/bin/bash
   '';
 
   postFixup = ''
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/TiZ-EX1/xfce4-dockbarx-plugin";
+    homepage = "https://github.com/xuzhen/xfce4-dockbarx-plugin";
     description = "A plugins to embed DockbarX into xfce4-panel";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin/default.nix
index cf383f840d5c..7c48e4a2a9f8 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin/default.nix
@@ -44,6 +44,7 @@ in stdenv.mkDerivation rec {
     description = "Embed arbitrary app windows on Xfce panel";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    broken = true; # unmaintained plugin; no longer compatible with xfce 4.16
     maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin/default.nix
index 8afff65696d3..3a01e8063874 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin/default.nix
@@ -33,8 +33,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://goodies.xfce.org/projects/panel-plugins/xfce4-hardware-monitor-plugin";
     description = "Hardware monitor plugin for the XFCE4 panel";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.unix;
+    broken = true; # unmaintained plugin; no longer compatible with xfce 4.16
     maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin/default.nix
index df31ea3b9b59..b9f4481be32c 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool, libxfce4util, xfce4-panel, libxfce4ui,
-  gtk2, exo, gnutls, libgcrypt, xfce }:
+{ lib, stdenv, fetchurl, pkg-config, intltool, xfce4-panel, libxfce4ui,
+  exo, gnutls, libgcrypt, xfce }:
 
 let
   category = "panel-plugins";
@@ -7,11 +7,11 @@ in
 
 stdenv.mkDerivation rec {
   pname  = "xfce4-mailwatch-plugin";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "1bfw3smwivr9mzdyq768biqrl4aq94zqi3xjzq6kqnd8561cqjk2";
+    sha256 = "0bmykjhd3gs1737fl3zn5gg6f3vlncak2xqz89zv5018znz1xy90";
   };
 
   nativeBuildInputs = [
@@ -20,11 +20,9 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    libxfce4util
     libxfce4ui
     xfce4-panel
-    gtk2
-    exo # needs exo with gtk2 support
+    exo
     gnutls
     libgcrypt
   ];
@@ -38,7 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://docs.xfce.org/panel-plugins/xfce4-mailwatch-plugin";
     description = "Mail watcher plugin for Xfce panel";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = [ ];
   };
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix
index 407f349d9bfc..ec57a7260f6d 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix
@@ -16,9 +16,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtk3 libwnck3 libxfce4util xfce4-panel ];
 
   postPatch = ''
-    for f in src/preferences.vala src/namebar.vala; do
-      substituteInPlace $f --replace 'var dirs = Environment.get_system_data_dirs()' "string[] dirs = { \"$out/share\" }"
-    done
+    substituteInPlace src/namebar.vala --replace 'var dirs = Environment.get_system_data_dirs()' "string[] dirs = { \"$out/share\" }"
+    substituteInPlace src/preferences.vala --replace 'var dir_strings = Environment.get_system_data_dirs()' "string[] dir_strings = { \"$out/share\" }"
   '';
 
   passthru.updateScript = xfce.updateScript {
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin/default.nix
index 7442e30ed69f..79519b858760 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin/default.nix
@@ -1,15 +1,11 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , intltool
-, libxfce4util
 , xfce4-panel
 , libxfce4ui
 , xfconf
-, gtk2
-, libunique
 , xfce
 }:
 
@@ -30,16 +26,11 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    libxfce4util
     libxfce4ui
     xfce4-panel
     xfconf
-    gtk2
-    libunique
   ];
 
-  hardeningDisable = [ "format" ];
-
   passthru.updateScript = xfce.updateScript {
     inherit pname version;
     attrPath = "xfce.${pname}";
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 845f1b22e33a..dbefda4e5ee2 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
@@ -8,11 +8,11 @@ in
 
 stdenv.mkDerivation rec {
   pname  = "xfce4-sensors-plugin";
-  version = "1.3.92";
+  version = "1.3.95";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "04jibw23ibi61f19gc9xy400yhcdiya4px6zp8c7fjq65hyn9iix";
+    sha256 = "0v44qwrwb95jrlsni1gdlc0zhymlm62w42zs3jbr5mcdc7j4mil3";
   };
 
   nativeBuildInputs = [
@@ -47,7 +47,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";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin/default.nix
index 13bce97fe33f..3c35297897b7 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin/default.nix
@@ -3,10 +3,9 @@
 , fetchurl
 , pkg-config
 , intltool
-, libxfce4util
 , xfce4-panel
 , libxfce4ui
-, gtk3
+, xfconf
 , xfce
 }:
 
@@ -14,11 +13,11 @@ let
   category = "panel-plugins";
 in stdenv.mkDerivation rec {
   pname  = "xfce4-systemload-plugin";
-  version = "1.2.4";
+  version = "1.3.1";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "BTG435I8ujvo0GTLi2OLlU33SRXlpEciiZlReEd4mDU=";
+    sha256 = "0lknh5l30qs5c69wwjcblbyhczvdbxs59fqkb8mpqbfm05w01lan";
   };
 
   nativeBuildInputs = [
@@ -27,10 +26,9 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    libxfce4util
     libxfce4ui
     xfce4-panel
-    gtk3
+    xfconf
   ];
 
   passthru.updateScript = xfce.updateScript {
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin/default.nix
index 7c2fb69dc5c4..3731d3937bd9 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     homepage = "https://docs.xfce.org/panel-plugins/xfce4-timer-plugin";
     description = "Simple countdown and alarm plugin for the Xfce panel";
     platforms = platforms.linux;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix
deleted file mode 100644
index e35dc5922d93..000000000000
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, vala, glib, gtk2, gtk3 }:
-stdenv.mkDerivation rec {
-  pname = "vala-panel-appmenu-xfce";
-  version = "0.6.94";
-
-  src = "${fetchFromGitHub {
-    owner = "rilian-la-te";
-    repo = "vala-panel-appmenu";
-    rev = version;
-    fetchSubmodules = true;
-
-    sha256 = "0xxn3zs60a9nfix8wrdp056wviq281cm1031hznzf1l38lp3wr5p";
-  }}/subprojects/appmenu-gtk-module";
-
-  nativeBuildInputs = [ cmake vala ];
-  buildInputs = [ glib gtk2 gtk3 ];
-
-  configurePhase = ''
-    cmake . -DGTK3_INCLUDE_GDK=
-  '';
-  installPhase = ''
-    make DESTDIR=output install
-    cp -r output/var/empty/* "$out"
-  '';
-
-  meta = with lib; {
-    description = "Port of the Unity GTK Module";
-    license = licenses.lgpl3;
-    maintainers = with maintainers; [ jD91mZM2 ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
deleted file mode 100644
index d8946c98a385..000000000000
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, substituteAll, callPackage, pkg-config, cmake, vala, libxml2,
-  glib, pcre, gtk2, gtk3, xorg, libxkbcommon, epoxy, at-spi2-core, dbus-glib, bamf,
-  xfce, libwnck3, libdbusmenu, gobject-introspection }:
-
-stdenv.mkDerivation rec {
-  pname = "xfce4-vala-panel-appmenu-plugin";
-  version = "0.7.3";
-
-  src = fetchFromGitHub {
-    owner = "rilian-la-te";
-    repo = "vala-panel-appmenu";
-    rev = version;
-    fetchSubmodules = true;
-
-    sha256 = "06rykdr2c9rnzxwinwdynd73v9wf0gjkx6qfva7sx2n94ajsdnaw";
-  };
-
-  nativeBuildInputs = [ pkg-config cmake vala libxml2.bin ];
-  buildInputs = [ (callPackage ./appmenu-gtk-module.nix {})
-                  glib pcre gtk2 gtk3 xorg.libpthreadstubs xorg.libXdmcp libxkbcommon epoxy
-                  at-spi2-core dbus-glib bamf xfce.xfce4panel_gtk3 xfce.libxfce4util xfce.xfconf
-                  libwnck3 libdbusmenu gobject-introspection ];
-
-  patches = [
-    (substituteAll {
-      src = ./fix-bamf-dependency.patch;
-      bamf = bamf;
-    })
-  ];
-
-  cmakeFlags = [
-      "-DENABLE_XFCE=ON"
-      "-DENABLE_BUDGIE=OFF"
-      "-DENABLE_VALAPANEL=OFF"
-      "-DENABLE_MATE=OFF"
-      "-DENABLE_JAYATANA=OFF"
-      "-DENABLE_APPMENU_GTK_MODULE=OFF"
-  ];
-
-  preConfigure = ''
-    mv cmake/FallbackVersion.cmake.in cmake/FallbackVersion.cmake
-  '';
-
-  passthru.updateScript = xfce.updateScript {
-    inherit pname version;
-    attrPath = "xfce.${pname}";
-    versionLister = xfce.gitLister src.meta.homepage;
-  };
-
-  meta = with lib; {
-    description = "Global Menu applet for XFCE4";
-    license = licenses.lgpl3;
-    maintainers = with maintainers; [ jD91mZM2 ];
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch
deleted file mode 100644
index 1ed86a67f727..000000000000
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-+++ source/cmake/FindBAMF.cmake	2018-05-11 17:03:44.385917811 +0200
-@@ -80,9 +80,7 @@
- 
- find_program(BAMF_DAEMON_EXECUTABLE
- 	bamfdaemon
--	HINTS ${CMAKE_INSTALL_FULL_LIBDIR}
--		  ${CMAKE_INSTALL_FULL_LIBEXECDIR}
--		  ${BAMF_LIBDIR}
-+	HINTS "@bamf@/libexec/bamf/"
- 	PATH_SUFFIXES bamf
- )
- 
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
index 94b467fd6828..209e25bc9e3f 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
@@ -5,7 +5,6 @@
 , pcre
 , libxfce4util
 , xfce4-panel
-, xfconf
 }:
 
 mkXfceDerivation {
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 18639946ce8b..5992bf343edc 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
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool, gtk3, libxml2, libsoup, upower,
-  libxfce4ui, libxfce4util, xfce4-panel, hicolor-icon-theme, xfce }:
+{ lib, stdenv, fetchurl, pkg-config, intltool, libxml2, libsoup, upower,
+  libxfce4ui, xfce4-panel, xfconf, hicolor-icon-theme, xfce }:
 
 let
   category = "panel-plugins";
@@ -7,11 +7,11 @@ in
 
 stdenv.mkDerivation rec {
   pname  = "xfce4-weather-plugin";
-  version = "0.10.1";
+  version = "0.11.0";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "12bs2rfmmy021087i10vxibdbbvd5vld0vk3h5hymhpz7rgszcmg";
+    sha256 = "1z2k24d599mxf5gqa35i3xmc3gk2yvqs80hxxpyw06yma6ljw973";
   };
 
   nativeBuildInputs = [
@@ -20,13 +20,12 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gtk3
     libxml2
     libsoup
     upower
     libxfce4ui
-    libxfce4util
     xfce4-panel
+    xfconf
     hicolor-icon-theme
   ];
 
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 ef269d64e04c..123376b0f2ba 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
@@ -3,10 +3,10 @@
 mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-whiskermenu-plugin";
-  version = "2.4.6";
+  version = "2.5.3";
   rev-prefix = "v";
   odd-unstable = false;
-  sha256 = "03asfaxqbhawzb3870az7qgid5y7cg3ip8h6r4z8kavcd0b7x4ii";
+  sha256 = "15kcph35pji3l1y81snrmpqzhhpdc9h4nk6cjsjyla51a1s2y3hz";
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin/default.nix
index ec6ef0e7b62c..281003db92a0 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin/default.nix
@@ -1,15 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, intltool, python3, imagemagick, libwnck, gtk2
-, exo, libxfce4ui, libxfce4util, xfce4-panel, xfconf, xfce4-dev-tools, xfce }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, intltool, python3, imagemagick, libwnck3, libxfce4ui, xfce4-panel, xfconf, xfce4-dev-tools, xfce }:
 
 stdenv.mkDerivation rec {
   pname  = "xfce4-windowck-plugin";
-  version = "0.4.6";
+  version = "0.4.10";
 
   src = fetchFromGitHub {
-    owner = "cedl38";
+    owner = "invidian";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gwrbjfv4cnlsqh05h42w41z3xs15yjj6j8y9gxvvvvlgzzp4p3g";
+    sha256 = "0l066a174v2c7ly125v9x1fgbg5bnpwdwnjh69v9kp4plp791q4n";
   };
 
   nativeBuildInputs = [
@@ -20,11 +19,8 @@ stdenv.mkDerivation rec {
   buildInputs = [
     python3
     imagemagick
-    libwnck
-    gtk2
-    exo
+    libwnck3
     libxfce4ui
-    libxfce4util
     xfce4-panel
     xfconf
     xfce4-dev-tools
diff --git a/nixpkgs/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix b/nixpkgs/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
index b632fde2df2f..d43c56c72888 100644
--- a/nixpkgs/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Jeinzi/thunar-dropbox";
     description = "A plugin that adds context-menu items for Dropbox to Thunar";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/arduino/arduino-core/default.nix b/nixpkgs/pkgs/development/arduino/arduino-core/default.nix
index 4c440ab97dbb..529be6e2a56e 100644
--- a/nixpkgs/pkgs/development/arduino/arduino-core/default.nix
+++ b/nixpkgs/pkgs/development/arduino/arduino-core/default.nix
@@ -23,6 +23,7 @@
 , glib
 , pango
 , gdk-pixbuf
+, gtk2
 , libpng12
 , expat
 , freetype
@@ -56,7 +57,7 @@ let
     gcc.cc.lib
     gdk-pixbuf
     glib
-    gtk3
+    gtk2
     libpng12
     libusb-compat-0_1
     pango
@@ -115,13 +116,12 @@ stdenv.mkDerivation rec {
   # the glib setup hook will populate GSETTINGS_SCHEMAS_PATH,
   # wrapGAppHooks (among other things) adds it to XDG_DATA_DIRS
   # so 'save as...' works:
-  nativeBuildInputs = [ glib wrapGAppsHook ];
+  nativeBuildInputs = [ glib wrapGAppsHook unzip ];
   buildInputs = [
     jdk
     ant
     libusb-compat-0_1
     libusb1
-    unzip
     zlib
     ncurses5
     readline
@@ -240,7 +240,7 @@ stdenv.mkDerivation rec {
       patchelf --debug \
           --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
           --set-rpath "${teensy_libpath}" \
-          $out/share/arduino/hardware/tools/teensy
+          $out/share/arduino/hardware/tools/teensy{,_ports,_reboot,_restart,_serialmon}
     ''}
   '';
 
diff --git a/nixpkgs/pkgs/development/arduino/platformio/core.nix b/nixpkgs/pkgs/development/arduino/platformio/core.nix
index 733e7e0b1462..17e87f2cb6c5 100644
--- a/nixpkgs/pkgs/development/arduino/platformio/core.nix
+++ b/nixpkgs/pkgs/development/arduino/platformio/core.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, buildPythonApplication, fetchpatch
-, bottle, click, colorama, semantic-version
+{ stdenv, lib, buildPythonApplication, bottle
+, click, click-completion, colorama, semantic-version
 , lockfile, pyserial, requests
 , tabulate, pyelftools, marshmallow
 , pytest, tox, jsondiff
@@ -79,8 +79,8 @@ in buildPythonApplication rec {
   inherit version src;
 
   propagatedBuildInputs =  [
-    bottle click colorama git lockfile
-    pyserial requests semantic-version
+    bottle click click-completion colorama git
+    lockfile pyserial requests semantic-version
     tabulate pyelftools marshmallow
   ];
 
diff --git a/nixpkgs/pkgs/development/compilers/4th/default.nix b/nixpkgs/pkgs/development/compilers/4th/default.nix
index 7205a979e279..a8923879c06a 100644
--- a/nixpkgs/pkgs/development/compilers/4th/default.nix
+++ b/nixpkgs/pkgs/development/compilers/4th/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "-C sources"
-    "CC=${stdenv.cc}/bin/cc"
+    "CC=${stdenv.cc.targetPrefix}cc"
   ];
 
   preInstall = ''
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
     description = "A portable Forth compiler";
     homepage = "https://thebeez.home.xs4all.nl/4tH/index.html";
     license = licenses.lgpl3;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/generate-sources.py b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/generate-sources.py
index 63b807bd8005..d90953c71d9c 100755
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/generate-sources.py
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/generate-sources.py
@@ -6,7 +6,7 @@ import re
 import requests
 import sys
 
-releases = ("openjdk8", "openjdk11", "openjdk13", "openjdk14", "openjdk15")
+releases = ("openjdk8", "openjdk11", "openjdk13", "openjdk14", "openjdk15", "openjdk16")
 oses = ("mac", "linux")
 types = ("jre", "jdk")
 impls = ("hotspot", "openj9")
@@ -63,3 +63,4 @@ for release in releases:
 
 with open("sources.json", "w") as f:
     json.dump(out, f, indent=2, sort_keys=True)
+    f.write('\n')
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
index 31a7346108e7..0bcfcafaae1b 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
@@ -1,4 +1,4 @@
-sourcePerArch:
+{ sourcePerArch, knownVulnerabilities ? [] }:
 
 { swingSupport ? true # not used for now
 , lib, stdenv
@@ -48,6 +48,7 @@ let cpuName = stdenv.hostPlatform.parsed.cpu.name;
     description = "AdoptOpenJDK, prebuilt OpenJDK binary";
     platforms = [ "x86_64-darwin" ]; # some inherit jre.meta.platforms
     maintainers = with lib.maintainers; [ taku0 ];
+    inherit knownVulnerabilities;
   };
 
 }; in result
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
index 0fcad6c333f8..95e72facaee2 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
@@ -1,19 +1,34 @@
-sourcePerArch:
+{ sourcePerArch, knownVulnerabilities ? [] }:
 
 { stdenv
 , lib
 , fetchurl
 , autoPatchelfHook
+, makeWrapper
+# minimum dependencies
 , alsaLib
-, freetype
 , fontconfig
-, zlib
-, xorg
+, freetype
 , libffi
+, xorg
+, zlib
+# runtime dependencies
+, cups
+# runtime dependencies for GTK+ Look and Feel
+, gtkSupport ? true
+, cairo
+, glib
+, gtk3
 }:
 
 let
   cpuName = stdenv.hostPlatform.parsed.cpu.name;
+  runtimeDependencies = [
+    cups
+  ] ++ lib.optionals gtkSupport [
+    cairo glib gtk3
+  ];
+  runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
 in
 
 let result = stdenv.mkDerivation rec {
@@ -28,11 +43,19 @@ let result = stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    alsaLib freetype fontconfig zlib xorg.libX11 xorg.libXext xorg.libXtst
-    xorg.libXi xorg.libXrender stdenv.cc.cc.lib
+    alsaLib # libasound.so wanted by lib/libjsound.so
+    fontconfig
+    freetype
+    stdenv.cc.cc.lib # libstdc++.so.6
+    xorg.libX11
+    xorg.libXext
+    xorg.libXi
+    xorg.libXrender
+    xorg.libXtst
+    zlib
   ] ++ lib.optional stdenv.isAarch32 libffi;
 
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
 
   # See: https://github.com/NixOS/patchelf/issues/10
   dontStrip = 1;
@@ -57,6 +80,16 @@ let result = stdenv.mkDerivation rec {
     cat <<EOF >> "$out/nix-support/setup-hook"
     if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
     EOF
+
+    # We cannot use -exec since wrapProgram is a function but not a command.
+    #
+    # jspawnhelper is executed from JVM, so it doesn't need to wrap it, and it
+    # breaks building OpenJDK (#114495).
+    for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do
+      if patchelf --print-interpreter "$bin" &> /dev/null; then
+        wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
+      fi
+    done
   '';
 
   preFixup = ''
@@ -74,6 +107,7 @@ let result = stdenv.mkDerivation rec {
     description = "AdoptOpenJDK, prebuilt OpenJDK binary";
     platforms = lib.mapAttrsToList (arch: _: arch + "-linux") sourcePerArch; # some inherit jre.meta.platforms
     maintainers = with lib.maintainers; [ taku0 ];
+    inherit knownVulnerabilities;
   };
 
 }; in result
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-darwin.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-darwin.nix
index d1db77215d16..7fec8fd3ff60 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-darwin.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-darwin.nix
@@ -2,8 +2,8 @@ let
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
 in
 {
-  jdk-hotspot = import ./jdk-darwin-base.nix sources.openjdk11.mac.jdk.hotspot;
-  jre-hotspot = import ./jdk-darwin-base.nix sources.openjdk11.mac.jre.hotspot;
-  jdk-openj9 = import ./jdk-darwin-base.nix sources.openjdk11.mac.jdk.openj9;
-  jre-openj9 = import ./jdk-darwin-base.nix sources.openjdk11.mac.jre.openj9;
+  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk11.mac.jdk.hotspot; };
+  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk11.mac.jre.hotspot; };
+  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk11.mac.jdk.openj9; };
+  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk11.mac.jre.openj9; };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-linux.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-linux.nix
index 755ffaab271e..e802e2eea528 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-linux.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-linux.nix
@@ -2,8 +2,8 @@ let
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
 in
 {
-  jdk-hotspot = import ./jdk-linux-base.nix sources.openjdk11.linux.jdk.hotspot;
-  jre-hotspot = import ./jdk-linux-base.nix sources.openjdk11.linux.jre.hotspot;
-  jdk-openj9 = import ./jdk-linux-base.nix sources.openjdk11.linux.jdk.openj9;
-  jre-openj9 = import ./jdk-linux-base.nix sources.openjdk11.linux.jre.openj9;
+  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk11.linux.jdk.hotspot; };
+  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk11.linux.jre.hotspot; };
+  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk11.linux.jdk.openj9; };
+  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk11.linux.jre.openj9; };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-darwin.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-darwin.nix
index 48806143c87c..2654c4f9e726 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-darwin.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-darwin.nix
@@ -2,8 +2,8 @@ let
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
 in
 {
-  jdk-hotspot = import ./jdk-darwin-base.nix sources.openjdk13.mac.jdk.hotspot;
-  jre-hotspot = import ./jdk-darwin-base.nix sources.openjdk13.mac.jre.hotspot;
-  jdk-openj9 = import ./jdk-darwin-base.nix sources.openjdk13.mac.jdk.openj9;
-  jre-openj9 = import ./jdk-darwin-base.nix sources.openjdk13.mac.jre.openj9;
+  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk13.mac.jdk.hotspot; knownVulnerabilities = ["Support ended"]; };
+  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk13.mac.jre.hotspot; knownVulnerabilities = ["Support ended"]; };
+  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk13.mac.jdk.openj9; knownVulnerabilities = ["Support ended"]; };
+  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk13.mac.jre.openj9; knownVulnerabilities = ["Support ended"]; };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-linux.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-linux.nix
index 1bd7bb884481..c33d6afad102 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-linux.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-linux.nix
@@ -2,8 +2,8 @@ let
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
 in
 {
-  jdk-hotspot = import ./jdk-linux-base.nix sources.openjdk13.linux.jdk.hotspot;
-  jre-hotspot = import ./jdk-linux-base.nix sources.openjdk13.linux.jre.hotspot;
-  jdk-openj9 = import ./jdk-linux-base.nix sources.openjdk13.linux.jdk.openj9;
-  jre-openj9 = import ./jdk-linux-base.nix sources.openjdk13.linux.jre.openj9;
+  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk13.linux.jdk.hotspot; knownVulnerabilities = ["Support ended"]; };
+  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk13.linux.jre.hotspot; knownVulnerabilities = ["Support ended"]; };
+  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk13.linux.jdk.openj9; knownVulnerabilities = ["Support ended"]; };
+  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk13.linux.jre.openj9; knownVulnerabilities = ["Support ended"]; };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-darwin.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-darwin.nix
index e440903ad526..6941a6dd0ddf 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-darwin.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-darwin.nix
@@ -2,8 +2,8 @@ let
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
 in
 {
-  jdk-hotspot = import ./jdk-darwin-base.nix sources.openjdk14.mac.jdk.hotspot;
-  jre-hotspot = import ./jdk-darwin-base.nix sources.openjdk14.mac.jre.hotspot;
-  jdk-openj9 = import ./jdk-darwin-base.nix sources.openjdk14.mac.jdk.openj9;
-  jre-openj9 = import ./jdk-darwin-base.nix sources.openjdk14.mac.jre.openj9;
+  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk14.mac.jdk.hotspot; knownVulnerabilities = ["Support ended"]; };
+  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk14.mac.jre.hotspot; knownVulnerabilities = ["Support ended"]; };
+  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk14.mac.jdk.openj9; knownVulnerabilities = ["Support ended"]; };
+  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk14.mac.jre.openj9; knownVulnerabilities = ["Support ended"]; };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-linux.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-linux.nix
index 90ae65ba970c..756b419434df 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-linux.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-linux.nix
@@ -2,8 +2,8 @@ let
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
 in
 {
-  jdk-hotspot = import ./jdk-linux-base.nix sources.openjdk14.linux.jdk.hotspot;
-  jre-hotspot = import ./jdk-linux-base.nix sources.openjdk14.linux.jre.hotspot;
-  jdk-openj9 = import ./jdk-linux-base.nix sources.openjdk14.linux.jdk.openj9;
-  jre-openj9 = import ./jdk-linux-base.nix sources.openjdk14.linux.jre.openj9;
+  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk14.linux.jdk.hotspot; knownVulnerabilities = ["Support ended"]; };
+  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk14.linux.jre.hotspot; knownVulnerabilities = ["Support ended"]; };
+  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk14.linux.jdk.openj9; knownVulnerabilities = ["Support ended"]; };
+  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk14.linux.jre.openj9; knownVulnerabilities = ["Support ended"]; };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
index b9b67f271ac5..d627fd9311f8 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
@@ -2,8 +2,8 @@ let
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
 in
 {
-  jdk-hotspot = import ./jdk-darwin-base.nix sources.openjdk15.mac.jdk.hotspot;
-  jre-hotspot = import ./jdk-darwin-base.nix sources.openjdk15.mac.jre.hotspot;
-  jdk-openj9 = import ./jdk-darwin-base.nix sources.openjdk15.mac.jdk.openj9;
-  jre-openj9 = import ./jdk-darwin-base.nix sources.openjdk15.mac.jre.openj9;
+  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.hotspot; };
+  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.hotspot; };
+  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.openj9; };
+  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.openj9; };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
index d48f9312dd6e..6663d9778bc2 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
@@ -2,8 +2,8 @@ let
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
 in
 {
-  jdk-hotspot = import ./jdk-linux-base.nix sources.openjdk15.linux.jdk.hotspot;
-  jre-hotspot = import ./jdk-linux-base.nix sources.openjdk15.linux.jre.hotspot;
-  jdk-openj9 = import ./jdk-linux-base.nix sources.openjdk15.linux.jdk.openj9;
-  jre-openj9 = import ./jdk-linux-base.nix sources.openjdk15.linux.jre.openj9;
+  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.linux.jdk.hotspot; };
+  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.linux.jre.hotspot; };
+  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.linux.jdk.openj9; };
+  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.linux.jre.openj9; };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
new file mode 100644
index 000000000000..b2bf2877c8a8
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
@@ -0,0 +1,9 @@
+let
+  sources = builtins.fromJSON (builtins.readFile ./sources.json);
+in
+{
+  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.hotspot; };
+  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.hotspot; };
+  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.openj9; };
+  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.openj9; };
+}
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
new file mode 100644
index 000000000000..738b31fe1d12
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
@@ -0,0 +1,9 @@
+let
+  sources = builtins.fromJSON (builtins.readFile ./sources.json);
+in
+{
+  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.linux.jdk.hotspot; };
+  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.linux.jre.hotspot; };
+  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.linux.jdk.openj9; };
+  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.linux.jre.openj9; };
+}
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-darwin.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-darwin.nix
index a170e0141cf0..5e2d42276ce7 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-darwin.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-darwin.nix
@@ -2,8 +2,8 @@ let
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
 in
 {
-  jdk-hotspot = import ./jdk-darwin-base.nix sources.openjdk8.mac.jdk.hotspot;
-  jre-hotspot = import ./jdk-darwin-base.nix sources.openjdk8.mac.jre.hotspot;
-  jdk-openj9 = import ./jdk-darwin-base.nix sources.openjdk8.mac.jdk.openj9;
-  jre-openj9 = import ./jdk-darwin-base.nix sources.openjdk8.mac.jre.openj9;
+  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk8.mac.jdk.hotspot; };
+  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk8.mac.jre.hotspot; };
+  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk8.mac.jdk.openj9; };
+  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk8.mac.jre.openj9; };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-linux.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-linux.nix
index 4937eace4903..c2a4085f730c 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-linux.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-linux.nix
@@ -2,8 +2,8 @@ let
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
 in
 {
-  jdk-hotspot = import ./jdk-linux-base.nix sources.openjdk8.linux.jdk.hotspot;
-  jre-hotspot = import ./jdk-linux-base.nix sources.openjdk8.linux.jre.hotspot;
-  jdk-openj9 = import ./jdk-linux-base.nix sources.openjdk8.linux.jdk.openj9;
-  jre-openj9 = import ./jdk-linux-base.nix sources.openjdk8.linux.jre.openj9;
+  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk8.linux.jdk.hotspot; };
+  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk8.linux.jre.hotspot; };
+  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk8.linux.jdk.openj9; };
+  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk8.linux.jre.openj9; };
 }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/sources.json b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/sources.json
index 14c887554f89..22a893c72427 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/sources.json
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/sources.json
@@ -4,92 +4,92 @@
       "jdk": {
         "hotspot": {
           "aarch64": {
-            "build": "11",
-            "sha256": "f90c6f941a95e20e305870700328804e5b48acb69d4928dc9c4627b3c755ae8a",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11.1/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.9_11.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "420c5d1e5dc66b2ed7dedd30a7bdf94bfaed10d5e1b07dc579722bf60a8114a9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.10_9.tar.gz",
+            "version": "11.0.10"
           },
           "armv6l": {
-            "build": "11",
-            "sha256": "082a13a9a5fbcf7ca45e67ab39e9682a9ef9e3779395e37aa0bf235e42a8eaf5",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11/OpenJDK11U-jdk_arm_linux_hotspot_11.0.9_11.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "34908da9c200f5ef71b8766398b79fd166f8be44d87f97510667698b456c8d44",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_arm_linux_hotspot_11.0.10_9.tar.gz",
+            "version": "11.0.10"
           },
           "armv7l": {
-            "build": "11",
-            "sha256": "082a13a9a5fbcf7ca45e67ab39e9682a9ef9e3779395e37aa0bf235e42a8eaf5",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11/OpenJDK11U-jdk_arm_linux_hotspot_11.0.9_11.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "34908da9c200f5ef71b8766398b79fd166f8be44d87f97510667698b456c8d44",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_arm_linux_hotspot_11.0.10_9.tar.gz",
+            "version": "11.0.10"
           },
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "11",
-            "sha256": "a3c52b73a76bed0f113604165eb4f2020b767e188704d8cc0bfc8bc4eb596712",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11.1/OpenJDK11U-jdk_x64_linux_hotspot_11.0.9_11.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "ae78aa45f84642545c01e8ef786dfd700d2226f8b12881c844d6a1f71789cb99",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz",
+            "version": "11.0.10"
           }
         },
         "openj9": {
           "aarch64": {
-            "build": "11",
-            "sha256": "f0426b6d37085d471a7f577ce6f28af7cc8fe35b9b0b09a5111eccaed80a0447",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11_openj9-0.23.0/OpenJDK11U-jdk_aarch64_linux_openj9_11.0.9_11_openj9-0.23.0.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "0ce9a8c38d154540610dfe03e59389734deb91c5cb9258408404c5026d4afa41",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9_openj9-0.24.0/OpenJDK11U-jdk_aarch64_linux_openj9_11.0.10_9_openj9-0.24.0.tar.gz",
+            "version": "11.0.10-ea"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "11",
-            "sha256": "812d58fac39465802039291a1bc530b4feaaa61b58664d9c458a075921ae8091",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11_openj9-0.23.0/OpenJDK11U-jdk_x64_linux_openj9_11.0.9_11_openj9-0.23.0.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "941d5df125d2ad426391340f539408b13d61d00ed31dd79142ff1ac84864a79f",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9_openj9-0.24.0/OpenJDK11U-jdk_x64_linux_openj9_11.0.10_9_openj9-0.24.0.tar.gz",
+            "version": "11.0.10"
           }
         }
       },
       "jre": {
         "hotspot": {
           "aarch64": {
-            "build": "11",
-            "sha256": "89b9b3108afda968a97961c5602a896bae31fea7c95195b54be5ad68b3af9e45",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11.1/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.9_11.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "5f9a894bd694f598f2befa4a605169685ac8bcb8ec68d25e587e8db4d2307b74",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.10_9.tar.gz",
+            "version": "11.0.10"
           },
           "armv6l": {
-            "build": "11",
-            "sha256": "8e52de3c7a24edb74e423631fa90a09f7af3193aa9e6e4837b337192669530b0",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11/OpenJDK11U-jre_arm_linux_hotspot_11.0.9_11.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "2f2da2149c089c84f00b0eda63c31b77c8b51a1c080e18a70ecb5a78ba40d8c6",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jre_arm_linux_hotspot_11.0.10_9.tar.gz",
+            "version": "11.0.10"
           },
           "armv7l": {
-            "build": "11",
-            "sha256": "8e52de3c7a24edb74e423631fa90a09f7af3193aa9e6e4837b337192669530b0",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11/OpenJDK11U-jre_arm_linux_hotspot_11.0.9_11.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "2f2da2149c089c84f00b0eda63c31b77c8b51a1c080e18a70ecb5a78ba40d8c6",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jre_arm_linux_hotspot_11.0.10_9.tar.gz",
+            "version": "11.0.10"
           },
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "11",
-            "sha256": "2ed263b662afb8b5d2964d1c9941d20031d07e5af68679ebefdca35d40bb91b1",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11.1/OpenJDK11U-jre_x64_linux_hotspot_11.0.9_11.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "25fdcf9427095ac27c8bdfc82096ad2e615693a3f6ea06c700fca7ffb271131a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jre_x64_linux_hotspot_11.0.10_9.tar.gz",
+            "version": "11.0.10"
           }
         },
         "openj9": {
           "aarch64": {
-            "build": "11",
-            "sha256": "b73f406dba1560dc194ac891452a1aacc2ba3b3e5e7b55e91a64559f8c2d9539",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11_openj9-0.23.0/OpenJDK11U-jre_aarch64_linux_openj9_11.0.9_11_openj9-0.23.0.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "c48d2b19bf7040c74dfdcac9e395ba7b8f937522ee756c820465f2e8e3dffec2",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9_openj9-0.24.0/OpenJDK11U-jre_aarch64_linux_openj9_11.0.10_9_openj9-0.24.0.tar.gz",
+            "version": "11.0.10-ea"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "11",
-            "sha256": "54c845c167c197ba789eb6c3508faa5b1c95c9abe2ac26878123b6eecc87a111",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11_openj9-0.23.0/OpenJDK11U-jre_x64_linux_openj9_11.0.9_11_openj9-0.23.0.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "7e5f97071f8b86c22c36ddfd7f821c3e8ec531c1128e2e6c931b2e64118a517a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9_openj9-0.24.0/OpenJDK11U-jre_x64_linux_openj9_11.0.10_9_openj9-0.24.0.tar.gz",
+            "version": "11.0.10"
           }
         }
       }
@@ -100,20 +100,20 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "11",
-            "sha256": "7b21961ffb2649e572721a0dfad64169b490e987937b661cb4e13a594c21e764",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11.1/OpenJDK11U-jdk_x64_mac_hotspot_11.0.9_11.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "ee7c98c9d79689aca6e717965747b8bf4eec5413e89d5444cc2bd6dbd59e3811",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_mac_hotspot_11.0.10_9.tar.gz",
+            "version": "11.0.10"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "11",
-            "sha256": "382238443d4495d976f9e1a66b0f6e3bc250d3d009b64d2c29d44022afd7e418",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11.1_openj9-0.23.0/OpenJDK11U-jdk_x64_mac_openj9_11.0.9_11_openj9-0.23.0.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "58f931dc30160b04da2d94af32e0dfa384f4b2cf92b7217c0937fd057e668d54",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9_openj9-0.24.0/OpenJDK11U-jdk_x64_mac_openj9_11.0.10_9_openj9-0.24.0.tar.gz",
+            "version": "11.0.10"
           }
         }
       },
@@ -122,20 +122,20 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "11",
-            "sha256": "cd8965dc8dbd0b5b3b25b6a336857d9bb622965e039b77e3048bc825e5512e95",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11.1/OpenJDK11U-jre_x64_mac_hotspot_11.0.9_11.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "215e94323d7c74fe31e5383261e3bfc8e9ca3dc03212738c48d29868b02fe875",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jre_x64_mac_hotspot_11.0.10_9.tar.gz",
+            "version": "11.0.10"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "11",
-            "sha256": "33a868f12bbe9326f658e60abe48dac658df33578b3719f551355855a87d1911",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9%2B11.1_openj9-0.23.0/OpenJDK11U-jre_x64_mac_openj9_11.0.9_11_openj9-0.23.0.tar.gz",
-            "version": "11.0.9"
+            "build": "9",
+            "sha256": "6e353f0b38a7192ad3e0522009065c7c24356e0d9329899477b21e39d2a7a8da",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9_openj9-0.24.0/OpenJDK11U-jre_x64_mac_openj9_11.0.10_9_openj9-0.24.0.tar.gz",
+            "version": "11.0.10"
           }
         }
       }
@@ -146,19 +146,19 @@
       "jdk": {
         "hotspot": {
           "aarch64": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "0e6081cb51f8a6f3062bef4f4c45dbe1fccfd3f3b4b5d52522a3edb76581e3af",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_aarch64_linux_hotspot_13.0.2_8.tar.gz",
             "version": "13.0.2"
           },
           "armv6l": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "9beec080f2b2a7f6883b024272f4e8d5a0b027325e83647be318215781af1d1a",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_arm_linux_hotspot_13.0.2_8.tar.gz",
             "version": "13.0.2"
           },
           "armv7l": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "9beec080f2b2a7f6883b024272f4e8d5a0b027325e83647be318215781af1d1a",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_arm_linux_hotspot_13.0.2_8.tar.gz",
             "version": "13.0.2"
@@ -166,7 +166,7 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "9ccc063569f19899fd08e41466f8c4cd4e05058abdb5178fa374cb365dcf5998",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_x64_linux_hotspot_13.0.2_8.tar.gz",
             "version": "13.0.2"
@@ -176,7 +176,7 @@
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "aeecf6d30d0c847db81d07793cf97e5dc44890c29366d7d9f8f9f397f6c52590",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
             "version": "13.0.2"
@@ -186,7 +186,7 @@
       "jre": {
         "hotspot": {
           "aarch64": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "6c4b69d1609f4c65c576c80d6aa101de80048f8ce5566f890e8fff5349228bae",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_aarch64_linux_hotspot_13.0.2_8.tar.gz",
             "version": "13.0.2"
@@ -194,7 +194,7 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "897f16fe8e056395209e35d2384013bd1ff250e717465769079e3f4793628c34",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_x64_linux_hotspot_13.0.2_8.tar.gz",
             "version": "13.0.2"
@@ -204,7 +204,7 @@
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "a0ab38607811e282f64082edc68a2dea3fa6a5113391efb124a6d7d02883110a",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jre_x64_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
             "version": "13.0.2"
@@ -218,7 +218,7 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "0ddb24efdf5aab541898d19b7667b149a1a64a8bd039b708fc58ee0284fa7e07",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_x64_mac_hotspot_13.0.2_8.tar.gz",
             "version": "13.0.2"
@@ -228,7 +228,7 @@
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "dd8d92eec98a3455ec5cd065a0a6672cc1aef280c6a68c507c372ccc1d98fbaa",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_mac_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
             "version": "13.0.2"
@@ -240,7 +240,7 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "3149b9ebf0db1eaf2dc152df9efae82003e7971efb1cf550060e6a4798fe8c5c",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_x64_mac_hotspot_13.0.2_8.tar.gz",
             "version": "13.0.2"
@@ -250,7 +250,7 @@
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
+            "build": "8.1",
             "sha256": "6a8a636fca4c7e368241e232a37cd73c9867cdec8f0869fd158b1f58c6128cc2",
             "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jre_x64_mac_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
             "version": "13.0.2"
@@ -394,92 +394,92 @@
       "jdk": {
         "hotspot": {
           "aarch64": {
-            "build": "9",
-            "sha256": "84398a1566d66ee5a88f3326fb7f0b70504eb510190f8f798bdb386481a3900e",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jdk_aarch64_linux_hotspot_15.0.1_9.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "6e8b6b037148cf20a284b5b257ec7bfdf9cc31ccc87778d0dfd95a2fddf228d4",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_aarch64_linux_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
           },
           "armv6l": {
-            "build": "9",
-            "sha256": "bef5e9f4ab8a87645fa2b3d0ffb9f2b97374caa03cd1296597e8c86e8360d5a2",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jdk_arm_linux_hotspot_15.0.1_9.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "ff39c0380224e419d940382c4d651cb1e6297a794854e0cc459c1fd4973b3368",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_arm_linux_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
           },
           "armv7l": {
-            "build": "9",
-            "sha256": "bef5e9f4ab8a87645fa2b3d0ffb9f2b97374caa03cd1296597e8c86e8360d5a2",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jdk_arm_linux_hotspot_15.0.1_9.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "ff39c0380224e419d940382c4d651cb1e6297a794854e0cc459c1fd4973b3368",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_arm_linux_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
           },
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "9",
-            "sha256": "61045ecb9434e3320dbc2c597715f9884586b7a18a56d29851b4d4a4d48a2a5e",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jdk_x64_linux_hotspot_15.0.1_9.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "94f20ca8ea97773571492e622563883b8869438a015d02df6028180dd9acc24d",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_linux_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
           }
         },
         "openj9": {
           "aarch64": {
-            "build": "9",
-            "sha256": "6206643ec4a57597f73880423b72fc06c1018d92cc6b02972ec3ea3fe4d853a2",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9_openj9-0.23.0/OpenJDK15U-jdk_aarch64_linux_openj9_15.0.1_9_openj9-0.23.0.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "b69a4bc87ed2e985d252cff02d53f1a11b8d83d39e0800cd4a1cab4521375314",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jdk_aarch64_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz",
+            "version": "15.0.2-ea"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "9",
-            "sha256": "b1561f7a69c977bfc9991e61e96dcb200c39300dd9ad423254af117c189e4a8d",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9_openj9-0.23.0/OpenJDK15U-jdk_x64_linux_openj9_15.0.1_9_openj9-0.23.0.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "5515ccd79b1b5e8d8a615b80d5fe1272f7bb41100e46d94fb78ee611ea014816",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jdk_x64_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz",
+            "version": "15.0.2"
           }
         }
       },
       "jre": {
         "hotspot": {
           "aarch64": {
-            "build": "9",
-            "sha256": "9eecdd39239545b922878abf51015030ba9aed4dda5c4574ddbc669a71ddab31",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jre_aarch64_linux_hotspot_15.0.1_9.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "1c1fc968d76004b0be0042027712835dcbe3570a6fc3a208157a4ab6adabbef2",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_aarch64_linux_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
           },
           "armv6l": {
-            "build": "9",
-            "sha256": "f289d1b9fc05099889eaa9a52d352275d44698f3448153cc2ef05f2fa1c04cca",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jre_arm_linux_hotspot_15.0.1_9.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "304be224952dbea7000cda6223b2978b3eefdf2e3749032c3b381a213c8d9c5e",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_arm_linux_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
           },
           "armv7l": {
-            "build": "9",
-            "sha256": "f289d1b9fc05099889eaa9a52d352275d44698f3448153cc2ef05f2fa1c04cca",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jre_arm_linux_hotspot_15.0.1_9.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "304be224952dbea7000cda6223b2978b3eefdf2e3749032c3b381a213c8d9c5e",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_arm_linux_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
           },
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "9",
-            "sha256": "e619197c7a5757631f6ea9c912ab47528ebf64c27cf788cdad22bc9245779411",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jre_x64_linux_hotspot_15.0.1_9.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "31af7efdb1cc0ffd001bc145c3d255266889ad6b502133283ae8bf233d11334c",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_x64_linux_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
           }
         },
         "openj9": {
           "aarch64": {
-            "build": "9",
-            "sha256": "1db3c28e8c423d005fcf3b0c8a081061e56c51966273e32e3930d4c57c21bf49",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9_openj9-0.23.0/OpenJDK15U-jre_aarch64_linux_openj9_15.0.1_9_openj9-0.23.0.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "37492012e75d75021dfb2b25fe5cc73664c03fee85532cec30ce4f5a4e5389c6",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jre_aarch64_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz",
+            "version": "15.0.2-ea"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "9",
-            "sha256": "e47fdadfe91f554f3e343b24e678b6862673f9b1dce3703efd1447950188357b",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9_openj9-0.23.0/OpenJDK15U-jre_x64_linux_openj9_15.0.1_9_openj9-0.23.0.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "a4ae1b7275fcfd6d87a3387edacc8e353dc95ee44f00ca5a348ea90331ec2084",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jre_x64_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz",
+            "version": "15.0.2"
           }
         }
       }
@@ -490,20 +490,20 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "9",
-            "sha256": "d32f9429c4992cef7be559a15c542011503d6bc38c89379800cd209a9d7ec539",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jdk_x64_mac_hotspot_15.0.1_9.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "d358a7ff03905282348c6c80562a4da2e04eb377b60ad2152be4c90f8d580b7f",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_mac_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "9",
-            "sha256": "c9b19fd1fda9c581aa0bcddbf5f821204c351a1de29da1c5aa51cb680ee99517",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9.1_openj9-0.23.0/OpenJDK15U-jdk_x64_mac_openj9_15.0.1_9_openj9-0.23.0.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "1336ae5529af3a0e35ae569e4188944831aeed7080a482f2490fc619380cbe53",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jdk_x64_mac_openj9_15.0.2_7_openj9-0.24.0.tar.gz",
+            "version": "15.0.2"
           }
         }
       },
@@ -512,20 +512,162 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "9",
-            "sha256": "fde1713fc51e824a08f8eeb5e2b8a2acf21424d5f9a0e70cfd2e85a77c827bc4",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jre_x64_mac_hotspot_15.0.1_9.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "6a7150fa3ca8277394ff5bae6f56a70f61d2144a5dbbea4f008d86a3e5498795",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_x64_mac_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "9",
-            "sha256": "e7c3710d6cc23480ac66eba79b48d9e2bebec34ba688f3053bb5eba406a2c315",
-            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9.1_openj9-0.23.0/OpenJDK15U-jre_x64_mac_openj9_15.0.1_9_openj9-0.23.0.tar.gz",
-            "version": "15.0.1"
+            "build": "7",
+            "sha256": "2c0ba5e66764d660037343db4bf32f1ed75ad27661e54e9a4df23d40cae448b0",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jre_x64_mac_openj9_15.0.2_7_openj9-0.24.0.tar.gz",
+            "version": "15.0.2"
+          }
+        }
+      }
+    }
+  },
+  "openjdk16": {
+    "linux": {
+      "jdk": {
+        "hotspot": {
+          "aarch64": {
+            "build": "36",
+            "sha256": "7217a9f9be3b0c8dfc78538f95fd2deb493eb651152d975062920566492b2574",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36/OpenJDK16-jdk_aarch64_linux_hotspot_16_36.tar.gz",
+            "version": "16.0.0"
+          },
+          "armv6l": {
+            "build": "36",
+            "sha256": "f1d32ba01a40c98889f31368c0e987d6bbda65a7c50b8c088623b48e3a90104a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36/OpenJDK16-jdk_arm_linux_hotspot_16_36.tar.gz",
+            "version": "16.0.0"
+          },
+          "armv7l": {
+            "build": "36",
+            "sha256": "f1d32ba01a40c98889f31368c0e987d6bbda65a7c50b8c088623b48e3a90104a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36/OpenJDK16-jdk_arm_linux_hotspot_16_36.tar.gz",
+            "version": "16.0.0"
+          },
+          "packageType": "jdk",
+          "vmType": "hotspot",
+          "x86_64": {
+            "build": "36",
+            "sha256": "2e031cf37018161c9e59b45fa4b98ff2ce4ce9297b824c512989d579a70f8422",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36/OpenJDK16-jdk_x64_linux_hotspot_16_36.tar.gz",
+            "version": "16.0.0"
+          }
+        },
+        "openj9": {
+          "aarch64": {
+            "build": "36",
+            "sha256": "f4d4e0c0e9e0a4d0f14172878cee5e1a0ae73170058e1c183a452f8d97331ac0",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36_openj9-0.25.0/OpenJDK16-jdk_aarch64_linux_openj9_16_36_openj9-0.25.0.tar.gz",
+            "version": "16.0.0-ea"
+          },
+          "packageType": "jdk",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "36",
+            "sha256": "9f9b327d08cbc71b32f28004ae9d9c2c84ff9bc335cac3068c5a5737bfa4606f",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36_openj9-0.25.0/OpenJDK16-jdk_x64_linux_openj9_16_36_openj9-0.25.0.tar.gz",
+            "version": "16.0.0"
+          }
+        }
+      },
+      "jre": {
+        "hotspot": {
+          "aarch64": {
+            "build": "36",
+            "sha256": "947b02342513b085946b2e7c376cc1f1cfe89600bc3d30455160f88d41da3509",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36/OpenJDK16-jre_aarch64_linux_hotspot_16_36.tar.gz",
+            "version": "16.0.0"
+          },
+          "armv6l": {
+            "build": "36",
+            "sha256": "4d3f351a161792779417ee2730413a976258c4cc5f323526f1fbc0cca82aca6e",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36/OpenJDK16-jre_arm_linux_hotspot_16_36.tar.gz",
+            "version": "16.0.0"
+          },
+          "armv7l": {
+            "build": "36",
+            "sha256": "4d3f351a161792779417ee2730413a976258c4cc5f323526f1fbc0cca82aca6e",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36/OpenJDK16-jre_arm_linux_hotspot_16_36.tar.gz",
+            "version": "16.0.0"
+          },
+          "packageType": "jre",
+          "vmType": "hotspot",
+          "x86_64": {
+            "build": "36",
+            "sha256": "4aa99cbe5a6838c3ed29fa7aa7bee95c39ddd41e3f7544178dcd257b15a9359e",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36/OpenJDK16-jre_x64_linux_hotspot_16_36.tar.gz",
+            "version": "16.0.0"
+          }
+        },
+        "openj9": {
+          "aarch64": {
+            "build": "36",
+            "sha256": "13ae42f5040d4e5d97b8809e27ebfdf8f7326604771963d85b2c1385abe13742",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36_openj9-0.25.0/OpenJDK16-jre_aarch64_linux_openj9_16_36_openj9-0.25.0.tar.gz",
+            "version": "16.0.0-ea"
+          },
+          "packageType": "jre",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "36",
+            "sha256": "302b8b9bba4f51d0a9ac087ed91929dbd3ae52cf5a5b6c150373563012db60d9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36_openj9-0.25.0/OpenJDK16-jre_x64_linux_openj9_16_36_openj9-0.25.0.tar.gz",
+            "version": "16.0.0"
+          }
+        }
+      }
+    },
+    "mac": {
+      "jdk": {
+        "hotspot": {
+          "packageType": "jdk",
+          "vmType": "hotspot",
+          "x86_64": {
+            "build": "36",
+            "sha256": "b66761b55fd493ed2a5f4df35a32b338ec34a9e0a1244439e3156561ab27c511",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36/OpenJDK16-jdk_x64_mac_hotspot_16_36.tar.gz",
+            "version": "16.0.0"
+          }
+        },
+        "openj9": {
+          "packageType": "jdk",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "36",
+            "sha256": "e6075cbe939b4de165cc8b4b91352f8885d549873f5cd419e75eba737502542e",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36_openj9-0.25.0/OpenJDK16-jdk_x64_mac_openj9_16_36_openj9-0.25.0.tar.gz",
+            "version": "16.0.0"
+          }
+        }
+      },
+      "jre": {
+        "hotspot": {
+          "packageType": "jre",
+          "vmType": "hotspot",
+          "x86_64": {
+            "build": "36",
+            "sha256": "92cb07e9e9d075996d1a9e0ccfc1d35e6f97f7e188e9bb78088ee1066062a428",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36/OpenJDK16-jre_x64_mac_hotspot_16_36.tar.gz",
+            "version": "16.0.0"
+          }
+        },
+        "openj9": {
+          "packageType": "jre",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "36",
+            "sha256": "9e5c31582778ca5c08fc221e185dc0f4dbce2091cbc69966a1e2617344b722f1",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%2B36_openj9-0.25.0/OpenJDK16-jre_x64_mac_openj9_16_36_openj9-0.25.0.tar.gz",
+            "version": "16.0.0"
           }
         }
       }
@@ -536,92 +678,92 @@
       "jdk": {
         "hotspot": {
           "aarch64": {
-            "build": "10",
-            "sha256": "cfbde5191027c6d25af44af8a3d64625c6e22422dea8c4af6fe9240e7e249baa",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10/OpenJDK8U-jdk_aarch64_linux_hotspot_8u272b10.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "9c07cf2099bbc6c850c46fd870bd243f5fcb6635181eabb312bdffe43ffc5080",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08/OpenJDK8U-jdk_aarch64_linux_hotspot_jdk8u282-b08.tar.gz",
+            "version": "8.0.282"
           },
           "armv6l": {
-            "build": "10",
-            "sha256": "b005e9e8a912aa6605debdea3685a223c077d5a4ba7c90bca02d804c5f39d0b9",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10/OpenJDK8U-jdk_arm_linux_hotspot_8u272b10.tar.gz",
-            "version": "8.0.272"
+            "build": "1",
+            "sha256": "e2e41a8705061dfcc766bfb6b7edd4c699e94aac68e4deeb28c8e76734a46fb7",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u275-b01/OpenJDK8U-jdk_arm_linux_hotspot_8u275b01.tar.gz",
+            "version": "8.0.275"
           },
           "armv7l": {
-            "build": "10",
-            "sha256": "b005e9e8a912aa6605debdea3685a223c077d5a4ba7c90bca02d804c5f39d0b9",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10/OpenJDK8U-jdk_arm_linux_hotspot_8u272b10.tar.gz",
-            "version": "8.0.272"
+            "build": "1",
+            "sha256": "e2e41a8705061dfcc766bfb6b7edd4c699e94aac68e4deeb28c8e76734a46fb7",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u275-b01/OpenJDK8U-jdk_arm_linux_hotspot_8u275b01.tar.gz",
+            "version": "8.0.275"
           },
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "10",
-            "sha256": "6f124b69d07d8d3edf39b9aa5c58473f63a380b686ddb73a5495e01d25c2939a",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10/OpenJDK8U-jdk_x64_linux_hotspot_8u272b10.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "e6e6e0356649b9696fa5082cfcb0663d4bef159fc22d406e3a012e71fce83a5c",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u282b08.tar.gz",
+            "version": "8.0.282"
           }
         },
         "openj9": {
           "aarch64": {
-            "build": "10",
-            "sha256": "bbc78dc8caf25372578a95287bcf672c4bf62af23939d4a988634b2a1356cd89",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10_openj9-0.23.0/OpenJDK8U-jdk_aarch64_linux_openj9_8u272b10_openj9-0.23.0.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "e107d3b8092f71ee042284b0fc0f0430ef214916812ce02aa6d549aa81b6dc70",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08_openj9-0.24.0/OpenJDK8U-jdk_aarch64_linux_openj9_8u282b08_openj9-0.24.0.tar.gz",
+            "version": "8.0.282-ea"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "10",
-            "sha256": "ca852f976e5b27ccd9b73a527a517496bda865b2ae2a85517ca74486fb8de7da",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10_openj9-0.23.0/OpenJDK8U-jdk_x64_linux_openj9_8u272b10_openj9-0.23.0.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "ef10c776dccdff02da6222002a3c023c1cc47d50dd1f6f81314da3d1fe28d13e",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08_openj9-0.24.0/OpenJDK8U-jdk_x64_linux_openj9_8u282b08_openj9-0.24.0.tar.gz",
+            "version": "8.0.282"
           }
         }
       },
       "jre": {
         "hotspot": {
           "aarch64": {
-            "build": "10",
-            "sha256": "ed3a862d83dd1f19037fc6ccf73500f2ecf453eb245af8b70bec3fb80d084289",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10/OpenJDK8U-jre_aarch64_linux_hotspot_8u272b10.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "5ffa116636b90bac486faba2882a2121aca1398a5426ef3e4ad0d913985e680d",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08/OpenJDK8U-jre_aarch64_linux_hotspot_jdk8u282-b08.tar.gz",
+            "version": "8.0.282"
           },
           "armv6l": {
-            "build": "10",
-            "sha256": "906113d909d81b930c4eb519512d1cc9f9be9789dfd349128d6e7efaeeb36e1c",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10/OpenJDK8U-jre_arm_linux_hotspot_8u272b10.tar.gz",
-            "version": "8.0.272"
+            "build": "1",
+            "sha256": "2e228d39d00ba8d974fd8ccdaaee0225833e79594251b64c724485c4fc94870f",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u275-b01/OpenJDK8U-jre_arm_linux_hotspot_8u275b01.tar.gz",
+            "version": "8.0.275"
           },
           "armv7l": {
-            "build": "10",
-            "sha256": "906113d909d81b930c4eb519512d1cc9f9be9789dfd349128d6e7efaeeb36e1c",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10/OpenJDK8U-jre_arm_linux_hotspot_8u272b10.tar.gz",
-            "version": "8.0.272"
+            "build": "1",
+            "sha256": "2e228d39d00ba8d974fd8ccdaaee0225833e79594251b64c724485c4fc94870f",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u275-b01/OpenJDK8U-jre_arm_linux_hotspot_8u275b01.tar.gz",
+            "version": "8.0.275"
           },
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "10",
-            "sha256": "e6894601a559c5226c6dc337308df263444d356a6430f4aabb66e02607c82956",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10/OpenJDK8U-jre_x64_linux_hotspot_8u272b10.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "3b2e2c6ad3ee04a58ffb8d629e3e242b0ae87b38cfd06425e4446b1f9490f521",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08/OpenJDK8U-jre_x64_linux_hotspot_8u282b08.tar.gz",
+            "version": "8.0.282"
           }
         },
         "openj9": {
           "aarch64": {
-            "build": "10",
-            "sha256": "b0891c3493a9fc6135700d065a826fc67223d54e9d0da3c41b57e6cb6897b726",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10_openj9-0.23.0/OpenJDK8U-jre_aarch64_linux_openj9_8u272b10_openj9-0.23.0.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "1ffc7ac14546ee5e16e0efd616073baaf1b80f55abf61257095f132ded9da1e5",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08_openj9-0.24.0/OpenJDK8U-jre_aarch64_linux_openj9_8u282b08_openj9-0.24.0.tar.gz",
+            "version": "8.0.282-ea"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "10",
-            "sha256": "a4e58f3c15ca3bc15cb3aaa9f116de972809ca52ae81e0726f84c059442174d5",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10_openj9-0.23.0/OpenJDK8U-jre_x64_linux_openj9_8u272b10_openj9-0.23.0.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "4fad259c32eb23ec98925c8b2cf28aaacbdb55e034db74c31a7636e75b6af08d",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08_openj9-0.24.0/OpenJDK8U-jre_x64_linux_openj9_8u282b08_openj9-0.24.0.tar.gz",
+            "version": "8.0.282"
           }
         }
       }
@@ -632,20 +774,20 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "10",
-            "sha256": "091f9ee39b0bdbc8af8ec19f51aaa0f73e416c2e93a8fb2c79b82f4caac83ab6",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10/OpenJDK8U-jdk_x64_mac_hotspot_8u272b10.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "1766d756f6e4a5d41b539f2ecf83e5a33e9336bd75f1602e8f4b4afbb8f47aaa",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08/OpenJDK8U-jdk_x64_mac_hotspot_8u282b08.tar.gz",
+            "version": "8.0.282"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "10",
-            "sha256": "bbd66ec27a4ea9b0b0952f501e1837e69c24262f64b316dab0408d1a8633a527",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10.1_openj9-0.23.0/OpenJDK8U-jdk_x64_mac_openj9_8u272b10_openj9-0.23.0.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "265d4fb01b61ed7a3a9fae6a50bcf6322687b5f08de8598d8e42263cbd8b5772",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08_openj9-0.24.0/OpenJDK8U-jdk_x64_mac_openj9_8u282b08_openj9-0.24.0.tar.gz",
+            "version": "8.0.282"
           }
         }
       },
@@ -654,20 +796,20 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "10",
-            "sha256": "afb9c08cb8b93d8e7d4f1e48ced3d43cfb3082491595a2eaf1f00c48abd25428",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10/OpenJDK8U-jre_x64_mac_hotspot_8u272b10.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "9e7a40d570d5151aae23a2fb017359248f5fb82c547c3ecd860c992770228afb",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08/OpenJDK8U-jre_x64_mac_hotspot_8u282b08.tar.gz",
+            "version": "8.0.282"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "10",
-            "sha256": "4d90e85240113189d897a86731e672b37a6e345c056f35c7719cb27f3d08385b",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10.1_openj9-0.23.0/OpenJDK8U-jre_x64_mac_openj9_8u272b10_openj9-0.23.0.tar.gz",
-            "version": "8.0.272"
+            "build": "8",
+            "sha256": "884aa20b3aaed504b18ee21575c8da20838f80fb96036e78e70ff6ef613a5283",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08_openj9-0.24.0/OpenJDK8U-jre_x64_mac_openj9_8u282b08_openj9-0.24.0.tar.gz",
+            "version": "8.0.282"
           }
         }
       }
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
index e20983380a43..d062c8605b66 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "adoptopenjdk-icedtea-web";
 
-  version = "1.8.4";
+  version = "1.8.6";
 
   src = fetchFromGitHub {
     owner = "AdoptOpenJDK";
     repo = "IcedTea-Web";
     rev = "icedtea-web-${version}";
-    sha256 = "0pxijw9v5k4j840jczglx9qyfd57df390g5jdaz3qafblfg0k10n";
+    sha256 = "sha256-meqbFLGwCMpFoOVAfvtriRAS8ZWr374eSN3m0CdC2aM=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config bc ];
diff --git a/nixpkgs/pkgs/development/compilers/aldor/default.nix b/nixpkgs/pkgs/development/compilers/aldor/default.nix
index 2654cc467fe2..3799f2c92127 100644
--- a/nixpkgs/pkgs/development/compilers/aldor/default.nix
+++ b/nixpkgs/pkgs/development/compilers/aldor/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
     rev = "15471e75f3d65b93150f414ebcaf59a03054b68d";
   };
 
-  buildInputs = [ gmp which flex bison makeWrapper autoconf automake libtool
-                  jdk perl ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ gmp which flex bison autoconf automake libtool jdk perl ];
 
   preConfigure = ''
     cd aldor ;
diff --git a/nixpkgs/pkgs/development/compilers/arachne-pnr/default.nix b/nixpkgs/pkgs/development/compilers/arachne-pnr/default.nix
index 030da03add84..a08ad91c4a1c 100644
--- a/nixpkgs/pkgs/development/compilers/arachne-pnr/default.nix
+++ b/nixpkgs/pkgs/development/compilers/arachne-pnr/default.nix
@@ -1,30 +1,28 @@
 { lib, stdenv, fetchFromGitHub, icestorm }:
 
-with builtins;
-
 stdenv.mkDerivation rec {
   pname = "arachne-pnr";
   version = "2019.07.29";
 
   src = fetchFromGitHub {
-    owner  = "yosyshq";
-    repo   = "arachne-pnr";
-    rev    = "c40fb2289952f4f120cc10a5a4c82a6fb88442dc";
+    owner = "yosyshq";
+    repo = "arachne-pnr";
+    rev = "c40fb2289952f4f120cc10a5a4c82a6fb88442dc";
     sha256 = "0lg9rccr486cvips3jf289af2b4a2j9chc8iqnkhykgi1hw4pszc";
   };
 
   enableParallelBuilding = true;
-  makeFlags =
-    [ "PREFIX=$(out)"
-      "ICEBOX=${icestorm}/share/icebox"
-    ];
+  makeFlags = [
+    "PREFIX=$(out)"
+    "ICEBOX=${icestorm}/share/icebox"
+  ];
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace ./Makefile \
-      --replace 'echo UNKNOWN' 'echo ${substring 0 10 src.rev}'
+      --replace 'echo UNKNOWN' 'echo ${lib.substring 0 10 src.rev}'
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Place and route tool for FPGAs";
     longDescription = ''
       Arachne-pnr implements the place and route step of
@@ -37,8 +35,8 @@ stdenv.mkDerivation rec {
       the IceStorm [2] icepack command.
     '';
     homepage = "https://github.com/cseed/arachne-pnr";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ shell thoughtpolice ];
-    platforms = lib.platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ shell thoughtpolice ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/bluespec/default.nix b/nixpkgs/pkgs/development/compilers/bluespec/default.nix
index defe78d7c318..7a76d4948e73 100644
--- a/nixpkgs/pkgs/development/compilers/bluespec/default.nix
+++ b/nixpkgs/pkgs/development/compilers/bluespec/default.nix
@@ -27,13 +27,13 @@ let
   ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb split ]));
 in stdenv.mkDerivation rec {
   pname = "bluespec";
-  version = "unstable-2020.11.04";
+  version = "unstable-2021.03.29";
 
   src = fetchFromGitHub {
       owner  = "B-Lang-org";
       repo   = "bsc";
-      rev    = "103357f32cf63f2ca2b16ebc8e2c675ec5562464";
-      sha256 = "0iikzx0fxky0fmc31lyxfldy1wixr2mayzcn24b8d76wd4ix1vk3";
+      rev    = "00185f7960bd1bd5554a1167be9f37e1f18ac454";
+      sha256 = "1bcdhql4cla137d8xr8m2h21dyxv0jpjpalpr5mgj2jxqfsmkbrn";
     };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/compilers/bs-platform/default.nix b/nixpkgs/pkgs/development/compilers/bs-platform/default.nix
index 50274c9eca67..ea56b85dec9e 100644
--- a/nixpkgs/pkgs/development/compilers/bs-platform/default.nix
+++ b/nixpkgs/pkgs/development/compilers/bs-platform/default.nix
@@ -21,7 +21,7 @@ in
     description = "A JavaScript backend for OCaml focused on smooth integration and clean generated code";
     homepage = "https://bucklescript.github.io";
     license = licenses.lgpl3;
-    maintainers = with maintainers; [ turbomack gamb anmonteiro ];
+    maintainers = with maintainers; [ turbomack gamb ];
     platforms = platforms.all;
   };
 })
diff --git a/nixpkgs/pkgs/development/compilers/carp/default.nix b/nixpkgs/pkgs/development/compilers/carp/default.nix
index b0a14534b082..d83e70a703aa 100644
--- a/nixpkgs/pkgs/development/compilers/carp/default.nix
+++ b/nixpkgs/pkgs/development/compilers/carp/default.nix
@@ -3,20 +3,20 @@
 haskellPackages.mkDerivation rec {
 
   pname = "carp";
-  version = "0.3.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "carp-lang";
     repo = "Carp";
     rev = "v${version}";
-    sha256 = "07yk3gy4l6h3k7sh8al7lgwk75a13zxwfp7siqpb5gnnqr1z3brc";
+    sha256 = "sha256-nTSMY8bq0b/JvE/XQGDC4St2sqdni12E5WQU5FXnuCg=";
   };
 
-  buildDepends = [ makeWrapper ];
+  buildTools = [ makeWrapper ];
 
   executableHaskellDepends = with haskellPackages; [
-    HUnit blaze-markup blaze-html split cmdargs ansi-terminal cmark
-    edit-distance
+    HUnit blaze-markup blaze-html split ansi-terminal cmark
+    edit-distance hashable open-browser optparse-applicative
   ];
 
   isExecutable = true;
diff --git a/nixpkgs/pkgs/development/compilers/chicken/4/default.nix b/nixpkgs/pkgs/development/compilers/chicken/4/default.nix
index 8d29c7c9a2b5..5445469b776e 100644
--- a/nixpkgs/pkgs/development/compilers/chicken/4/default.nix
+++ b/nixpkgs/pkgs/development/compilers/chicken/4/default.nix
@@ -1,4 +1,4 @@
-{ newScope } :
+{ lib, newScope } :
 let
   callPackage = newScope self;
 
@@ -18,4 +18,4 @@ let
     egg2nix = callPackage ./egg2nix.nix { };
   };
 
-in self
+in lib.recurseIntoAttrs self
diff --git a/nixpkgs/pkgs/development/compilers/chicken/4/egg2nix.nix b/nixpkgs/pkgs/development/compilers/chicken/4/egg2nix.nix
index d2f2805ed7ff..422053ea9d81 100644
--- a/nixpkgs/pkgs/development/compilers/chicken/4/egg2nix.nix
+++ b/nixpkgs/pkgs/development/compilers/chicken/4/egg2nix.nix
@@ -1,4 +1,4 @@
-{ eggDerivation, fetchurl, chickenEggs }:
+{ lib, eggDerivation, fetchurl, chickenEggs }:
 
 # Note: This mostly reimplements the default.nix already contained in
 # the tarball. Is there a nicer way than duplicating code?
diff --git a/nixpkgs/pkgs/development/compilers/chicken/4/eggDerivation.nix b/nixpkgs/pkgs/development/compilers/chicken/4/eggDerivation.nix
index 4c84ef8c42b0..10cf91579a40 100644
--- a/nixpkgs/pkgs/development/compilers/chicken/4/eggDerivation.nix
+++ b/nixpkgs/pkgs/development/compilers/chicken/4/eggDerivation.nix
@@ -18,7 +18,8 @@ in
 stdenv.mkDerivation ({
   name = "chicken-${name}";
   propagatedBuildInputs = buildInputs;
-  buildInputs = [ makeWrapper chicken ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ chicken ];
 
   CSC_OPTIONS = lib.concatStringsSep " " cscOptions;
 
diff --git a/nixpkgs/pkgs/development/compilers/chicken/5/default.nix b/nixpkgs/pkgs/development/compilers/chicken/5/default.nix
index 8d29c7c9a2b5..5445469b776e 100644
--- a/nixpkgs/pkgs/development/compilers/chicken/5/default.nix
+++ b/nixpkgs/pkgs/development/compilers/chicken/5/default.nix
@@ -1,4 +1,4 @@
-{ newScope } :
+{ lib, newScope } :
 let
   callPackage = newScope self;
 
@@ -18,4 +18,4 @@ let
     egg2nix = callPackage ./egg2nix.nix { };
   };
 
-in self
+in lib.recurseIntoAttrs self
diff --git a/nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix b/nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix
index 7102126206ae..a6d19eaeb137 100644
--- a/nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix
+++ b/nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix
@@ -17,7 +17,8 @@ in
 stdenv.mkDerivation ({
   name = "chicken-${name}";
   propagatedBuildInputs = buildInputs;
-  buildInputs = [ makeWrapper chicken ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ chicken ];
 
   CSC_OPTIONS = lib.concatStringsSep " " cscOptions;
 
diff --git a/nixpkgs/pkgs/development/compilers/clean/default.nix b/nixpkgs/pkgs/development/compilers/clean/default.nix
index f8121958e292..e360bb05f40d 100644
--- a/nixpkgs/pkgs/development/compilers/clean/default.nix
+++ b/nixpkgs/pkgs/development/compilers/clean/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "clean-3.0";
+  pname = "clean";
+  version = "3.0";
 
   src =
     if stdenv.hostPlatform.system == "i686-linux" then (fetchurl {
@@ -45,8 +46,8 @@ stdenv.mkDerivation {
     '';
 
     homepage = "http://wiki.clean.cs.ru.nl/Clean";
-    license = lib.licenses.lgpl21;
-    maintainers = [ lib.maintainers.kkallio ];
+    license = lib.licenses.bsd2;
+    maintainers = [ lib.maintainers.erin ];
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/cmdstan/default.nix b/nixpkgs/pkgs/development/compilers/cmdstan/default.nix
index df674b67db85..c52ffa0bafdb 100644
--- a/nixpkgs/pkgs/development/compilers/cmdstan/default.nix
+++ b/nixpkgs/pkgs/development/compilers/cmdstan/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python, runtimeShell }:
+{ lib, stdenv, fetchurl, python3, runtimeShell }:
 
 stdenv.mkDerivation {
   name = "cmdstan-2.17.1";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   doCheck = true;
-  checkInputs = [ python ];
+  checkInputs = [ python3 ];
   checkPhase = "python ./runCmdStanTests.py src/test/interface"; # see #5368
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/compilers/crystal/default.nix b/nixpkgs/pkgs/development/compilers/crystal/default.nix
index e887bc220895..58e4b3b355d2 100644
--- a/nixpkgs/pkgs/development/compilers/crystal/default.nix
+++ b/nixpkgs/pkgs/development/compilers/crystal/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , fetchurl
 , lib
-# Dependencies
+  # Dependencies
 , boehmgc
 , coreutils
 , git
@@ -32,11 +32,10 @@
 #
 # We need to keep around at least the latest version released with a stable
 # NixOS
-
 let
   archs = {
-    x86_64-linux  = "linux-x86_64";
-    i686-linux    = "linux-i686";
+    x86_64-linux = "linux-x86_64";
+    i686-linux = "linux-i686";
     x86_64-darwin = "darwin-x86_64";
   };
 
@@ -45,223 +44,239 @@ let
   checkInputs = [ git gmp openssl readline libxml2 libyaml ];
 
   genericBinary = { version, sha256s, rel ? 1 }:
-  stdenv.mkDerivation rec {
-    pname = "crystal-binary";
-    inherit version;
-
-    src = fetchurl {
-      url = "https://github.com/crystal-lang/crystal/releases/download/${version}/crystal-${version}-${toString rel}-${arch}.tar.gz";
-      sha256 = sha256s.${stdenv.system};
+    stdenv.mkDerivation rec {
+      pname = "crystal-binary";
+      inherit version;
+
+      src = fetchurl {
+        url = "https://github.com/crystal-lang/crystal/releases/download/${version}/crystal-${version}-${toString rel}-${arch}.tar.gz";
+        sha256 = sha256s.${stdenv.system};
+      };
+
+      buildCommand = ''
+        mkdir -p $out
+        tar --strip-components=1 -C $out -xf ${src}
+      '';
     };
 
-    buildCommand = ''
-      mkdir -p $out
-      tar --strip-components=1 -C $out -xf ${src}
-    '';
-  };
-
   commonBuildInputs = extraBuildInputs: [
-    boehmgc libatomic_ops pcre libevent libyaml zlib libxml2 openssl
+    boehmgc
+    libatomic_ops
+    pcre
+    libevent
+    libyaml
+    zlib
+    libxml2
+    openssl
   ] ++ extraBuildInputs
-    ++ lib.optionals stdenv.isDarwin [ libiconv ];
+  ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   generic = (
     { version
     , sha256
     , binary
     , doCheck ? true
-    , extraBuildInputs ? []
-    , buildFlags ? ["all" "docs"]
+    , extraBuildInputs ? [ ]
+    , buildFlags ? [ "all" "docs" ]
     }:
-      lib.fix (compiler: stdenv.mkDerivation {
-        pname = "crystal";
-        inherit buildFlags doCheck version;
+    lib.fix (compiler: stdenv.mkDerivation {
+      pname = "crystal";
+      inherit buildFlags doCheck version;
 
-        src = fetchFromGitHub {
-          owner = "crystal-lang";
-          repo  = "crystal";
-          rev   = version;
-          inherit sha256;
-        };
+      src = fetchFromGitHub {
+        owner = "crystal-lang";
+        repo = "crystal";
+        rev = version;
+        inherit sha256;
+      };
 
-        outputs = [ "out" "lib" "bin" ];
+      outputs = [ "out" "lib" "bin" ];
 
-        postPatch = ''
-          # Add dependency of crystal to docs to avoid issue on flag changes between releases
-          # https://github.com/crystal-lang/crystal/pull/8792#issuecomment-614004782
-          substituteInPlace Makefile \
-            --replace 'docs: ## Generate standard library documentation' 'docs: crystal ## Generate standard library documentation'
+      postPatch = ''
+        # Add dependency of crystal to docs to avoid issue on flag changes between releases
+        # https://github.com/crystal-lang/crystal/pull/8792#issuecomment-614004782
+        substituteInPlace Makefile \
+          --replace 'docs: ## Generate standard library documentation' 'docs: crystal ## Generate standard library documentation'
 
-          substituteInPlace src/crystal/system/unix/time.cr \
-            --replace /usr/share/zoneinfo ${tzdata}/share/zoneinfo
+        substituteInPlace src/crystal/system/unix/time.cr \
+          --replace /usr/share/zoneinfo ${tzdata}/share/zoneinfo
 
-          ln -sf spec/compiler spec/std
+        ln -sf spec/compiler spec/std
 
-          # Dirty fix for when no sandboxing is enabled
-          rm -rf /tmp/crystal
-          mkdir -p /tmp/crystal
+        # Dirty fix for when no sandboxing is enabled
+        rm -rf /tmp/crystal
+        mkdir -p /tmp/crystal
 
-          substituteInPlace spec/std/file_spec.cr \
-            --replace '/bin/ls' '${coreutils}/bin/ls' \
-            --replace '/usr/share' '/tmp/crystal' \
-            --replace '/usr' '/tmp'
+        substituteInPlace spec/std/file_spec.cr \
+          --replace '/bin/ls' '${coreutils}/bin/ls' \
+          --replace '/usr/share' '/tmp/crystal' \
+          --replace '/usr' '/tmp'
 
-          substituteInPlace spec/std/process_spec.cr \
-            --replace '/bin/cat' '${coreutils}/bin/cat' \
-            --replace '/bin/ls' '${coreutils}/bin/ls' \
-            --replace '/usr/bin/env' '${coreutils}/bin/env' \
-            --replace '"env"' '"${coreutils}/bin/env"' \
-            --replace '"/usr"' '"/tmp"'
+        substituteInPlace spec/std/process_spec.cr \
+          --replace '/bin/cat' '${coreutils}/bin/cat' \
+          --replace '/bin/ls' '${coreutils}/bin/ls' \
+          --replace '/usr/bin/env' '${coreutils}/bin/env' \
+          --replace '"env"' '"${coreutils}/bin/env"' \
+          --replace '"/usr"' '"/tmp"'
 
-          substituteInPlace spec/std/socket/tcp_server_spec.cr \
-            --replace '{% if flag?(:gnu) %}"listen: "{% else %}"bind: "{% end %}' '"bind: "'
+        substituteInPlace spec/std/socket/tcp_server_spec.cr \
+          --replace '{% if flag?(:gnu) %}"listen: "{% else %}"bind: "{% end %}' '"bind: "'
 
-          substituteInPlace spec/std/system_spec.cr \
-            --replace '`hostname`' '`${hostname}/bin/hostname`'
+        substituteInPlace spec/std/system_spec.cr \
+          --replace '`hostname`' '`${hostname}/bin/hostname`'
 
-          # See https://github.com/crystal-lang/crystal/pull/8640
-          substituteInPlace spec/std/http/cookie_spec.cr \
-            --replace '01 Jan 2020' '01 Jan #{Time.utc.year + 2}'
+        # See https://github.com/crystal-lang/crystal/pull/8640
+        substituteInPlace spec/std/http/cookie_spec.cr \
+          --replace '01 Jan 2020' '01 Jan #{Time.utc.year + 2}'
 
-          # See https://github.com/crystal-lang/crystal/issues/8629
-          substituteInPlace spec/std/socket/udp_socket_spec.cr \
-            --replace 'it "joins and transmits to multicast groups"' 'pending "joins and transmits to multicast groups"'
+        # See https://github.com/crystal-lang/crystal/issues/8629
+        substituteInPlace spec/std/socket/udp_socket_spec.cr \
+          --replace 'it "joins and transmits to multicast groups"' 'pending "joins and transmits to multicast groups"'
 
-          # See https://github.com/crystal-lang/crystal/pull/8699
-          substituteInPlace spec/std/xml/xml_spec.cr \
-            --replace 'it "handles errors"' 'pending "handles errors"'
-        '';
+        # See https://github.com/crystal-lang/crystal/pull/8699
+        substituteInPlace spec/std/xml/xml_spec.cr \
+          --replace 'it "handles errors"' 'pending "handles errors"'
+      '';
 
-        buildInputs = commonBuildInputs extraBuildInputs;
+      buildInputs = commonBuildInputs extraBuildInputs;
 
-        nativeBuildInputs = [ binary makeWrapper which pkg-config llvmPackages.llvm ];
+      nativeBuildInputs = [ binary makeWrapper which pkg-config llvmPackages.llvm ];
 
-        makeFlags = [
-          "CRYSTAL_CONFIG_VERSION=${version}"
-        ];
+      makeFlags = [
+        "CRYSTAL_CONFIG_VERSION=${version}"
+      ];
 
-        LLVM_CONFIG = "${llvmPackages.llvm}/bin/llvm-config";
+      LLVM_CONFIG = "${llvmPackages.llvm}/bin/llvm-config";
 
-        FLAGS = [
-          "--release"
-          "--single-module" # needed for deterministic builds
-        ];
+      FLAGS = [
+        "--release"
+        "--single-module" # needed for deterministic builds
+      ];
 
-        # This makes sure we don't keep depending on the previous version of
-        # crystal used to build this one.
-        CRYSTAL_LIBRARY_PATH = "${placeholder "lib"}/crystal";
+      # This makes sure we don't keep depending on the previous version of
+      # crystal used to build this one.
+      CRYSTAL_LIBRARY_PATH = "${placeholder "lib"}/crystal";
 
-        # We *have* to add `which` to the PATH or crystal is unable to build
-        # stuff later if which is not available.
-        installPhase = ''
-          runHook preInstall
+      # We *have* to add `which` to the PATH or crystal is unable to build
+      # stuff later if which is not available.
+      installPhase = ''
+        runHook preInstall
 
-          install -Dm755 .build/crystal $bin/bin/crystal
-          wrapProgram $bin/bin/crystal \
-            --suffix PATH : ${lib.makeBinPath [ pkg-config llvmPackages.clang which ]} \
-            --suffix CRYSTAL_PATH : lib:$lib/crystal \
-            --suffix CRYSTAL_LIBRARY_PATH : ${
-              lib.makeLibraryPath (commonBuildInputs extraBuildInputs)
-            }
-          install -dm755 $lib/crystal
-          cp -r src/* $lib/crystal/
+        install -Dm755 .build/crystal $bin/bin/crystal
+        wrapProgram $bin/bin/crystal \
+          --suffix PATH : ${lib.makeBinPath [ pkg-config llvmPackages.clang which ]} \
+          --suffix CRYSTAL_PATH : lib:$lib/crystal \
+          --suffix CRYSTAL_LIBRARY_PATH : ${
+            lib.makeLibraryPath (commonBuildInputs extraBuildInputs)
+          }
+        install -dm755 $lib/crystal
+        cp -r src/* $lib/crystal/
 
-          install -dm755 $out/share/doc/crystal/api
-          cp -r docs/* $out/share/doc/crystal/api/
-          cp -r samples $out/share/doc/crystal/
+        install -dm755 $out/share/doc/crystal/api
+        cp -r docs/* $out/share/doc/crystal/api/
+        cp -r samples $out/share/doc/crystal/
 
-          install -Dm644 etc/completion.bash $out/share/bash-completion/completions/crystal
-          install -Dm644 etc/completion.zsh $out/share/zsh/site-functions/_crystal
+        install -Dm644 etc/completion.bash $out/share/bash-completion/completions/crystal
+        install -Dm644 etc/completion.zsh $out/share/zsh/site-functions/_crystal
 
-          install -Dm644 man/crystal.1 $out/share/man/man1/crystal.1
+        install -Dm644 man/crystal.1 $out/share/man/man1/crystal.1
 
-          install -Dm644 -t $out/share/licenses/crystal LICENSE README.md
+        install -Dm644 -t $out/share/licenses/crystal LICENSE README.md
 
-          mkdir -p $out
-          ln -s $bin/bin $out/bin
-          ln -s $lib $out/lib
+        mkdir -p $out
+        ln -s $bin/bin $out/bin
+        ln -s $lib $out/lib
 
-          runHook postInstall
-        '';
+        runHook postInstall
+      '';
 
-        enableParallelBuilding = true;
+      enableParallelBuilding = true;
 
-        dontStrip = true;
+      dontStrip = true;
 
-        checkTarget = "compiler_spec";
+      checkTarget = "compiler_spec";
 
-        preCheck = ''
-          export HOME=/tmp
-          mkdir -p $HOME/test
+      preCheck = ''
+        export HOME=/tmp
+        mkdir -p $HOME/test
 
-          export LIBRARY_PATH=${lib.makeLibraryPath checkInputs}:$LIBRARY_PATH
-          export PATH=${lib.makeBinPath checkInputs}:$PATH
-        '';
+        export LIBRARY_PATH=${lib.makeLibraryPath checkInputs}:$LIBRARY_PATH
+        export PATH=${lib.makeBinPath checkInputs}:$PATH
+      '';
 
-        passthru.buildCrystalPackage = callPackage ./build-package.nix {
-          crystal = compiler;
-        };
+      passthru.buildCrystalPackage = callPackage ./build-package.nix {
+        crystal = compiler;
+      };
 
-        meta = with lib; {
-          description = "A compiled language with Ruby like syntax and type inference";
-          homepage = "https://crystal-lang.org/";
-          license = licenses.asl20;
-          maintainers = with maintainers; [ david50407 fabianhjr manveru peterhoeg ];
-          platforms = builtins.attrNames archs;
-        };
-      })
+      meta = with lib; {
+        description = "A compiled language with Ruby like syntax and type inference";
+        homepage = "https://crystal-lang.org/";
+        license = licenses.asl20;
+        maintainers = with maintainers; [ david50407 fabianhjr manveru peterhoeg ];
+        platforms = builtins.attrNames archs;
+        # Error running at_exit handler: Nil assertion failed
+        broken = lib.versions.minor version == "32" && stdenv.isDarwin;
+      };
+    })
   );
 
-in rec {
+in
+rec {
   binaryCrystal_0_31 = genericBinary {
     version = "0.31.1";
     sha256s = {
-      x86_64-linux  = "0r8salf572xrnr4m6ll9q5hz6jj8q7ff1rljlhmqb1r26a8mi2ih";
-      i686-linux    = "0hridnis5vvrswflx0q67xfg5hryhz6ivlwrb9n4pryj5d1gwjrr";
+      x86_64-linux = "0r8salf572xrnr4m6ll9q5hz6jj8q7ff1rljlhmqb1r26a8mi2ih";
+      i686-linux = "0hridnis5vvrswflx0q67xfg5hryhz6ivlwrb9n4pryj5d1gwjrr";
       x86_64-darwin = "1dgxgv0s3swkc5cwawzgpbc6bcd2nx4hjxc7iw2h907y1vgmbipz";
     };
   };
 
   crystal_0_31 = generic {
     version = "0.31.1";
-    sha256  = "1dswxa32w16gnc6yjym12xj7ibg0g6zk3ngvl76lwdjqb1h6lwz8";
+    sha256 = "1dswxa32w16gnc6yjym12xj7ibg0g6zk3ngvl76lwdjqb1h6lwz8";
     doCheck = false; # 5 checks are failing now
     binary = binaryCrystal_0_31;
   };
 
   crystal_0_32 = generic {
     version = "0.32.1";
-    sha256  = "120ndi3nhh2r52hjvhwfb49cdggr1bzdq6b8xg7irzavhjinfza6";
+    sha256 = "120ndi3nhh2r52hjvhwfb49cdggr1bzdq6b8xg7irzavhjinfza6";
     binary = crystal_0_31;
   };
 
   crystal_0_33 = generic {
     version = "0.33.0";
-    sha256  = "1zg0qixcws81s083wrh54hp83ng2pa8iyyafaha55mzrh8293jbi";
+    sha256 = "1zg0qixcws81s083wrh54hp83ng2pa8iyyafaha55mzrh8293jbi";
     binary = crystal_0_32;
   };
 
   crystal_0_34 = generic {
     version = "0.34.0";
-    sha256  = "110lfpxk9jnqyznbfnilys65ixj5sdmy8pvvnlhqhc3ccvrlnmq4";
+    sha256 = "110lfpxk9jnqyznbfnilys65ixj5sdmy8pvvnlhqhc3ccvrlnmq4";
     binary = crystal_0_33;
   };
 
   crystal_0_35 = generic {
     version = "0.35.1";
-    sha256  = "0p51bjl1nsvwsm64lqq421dcsxa201w7wwq8plw4r8wqarpq0g69";
+    sha256 = "0p51bjl1nsvwsm64lqq421dcsxa201w7wwq8plw4r8wqarpq0g69";
     binary = crystal_0_34;
     # Needs git to build as per https://github.com/crystal-lang/crystal/issues/9789
     extraBuildInputs = [ git ];
   };
 
   crystal_0_36 = generic {
-    version = "0.36.0";
-    sha256  = "0s7g13mrh2jrxxrrrg4hy3gi49rp7fmpn9zg9kj4nbc8w8yir20r";
+    version = "0.36.1";
+    sha256 = "sha256-5rjrvwZKM4lHpmxLyUVbi0Zw98xT+iJKonxwfUwS/Wk=";
     binary = crystal_0_35;
   };
 
-  crystal = crystal_0_36;
+  crystal_1_0 = generic {
+    version = "1.0.0";
+    sha256 = "sha256-RI+a3w6Rr+uc5jRf7xw0tOenR+q6qii/ewWfID6dbQ8=";
+    binary = crystal_0_36;
+  };
+
+  crystal = crystal_1_0;
 
-  crystal2nix = callPackage ./crystal2nix.nix {};
+  crystal2nix = callPackage ./crystal2nix.nix { };
 }
diff --git a/nixpkgs/pkgs/development/compilers/crystal2nix/default.nix b/nixpkgs/pkgs/development/compilers/crystal2nix/default.nix
index 25cbbd4d01aa..b1f36b02090c 100644
--- a/nixpkgs/pkgs/development/compilers/crystal2nix/default.nix
+++ b/nixpkgs/pkgs/development/compilers/crystal2nix/default.nix
@@ -1,14 +1,14 @@
-{ lib, fetchFromGitHub, fetchgit, crystal, makeWrapper, nix-prefetch-git }:
+{ lib, fetchFromGitHub, crystal, makeWrapper, nix-prefetch-git }:
 
 crystal.buildCrystalPackage rec {
   pname = "crystal2nix";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchFromGitHub {
     owner = "peterhoeg";
     repo = "crystal2nix";
     rev = "v${version}";
-    sha256 = "sha256-K1ElG8VC/D0axmSRaufH3cE50xNQisAmFucDkV+5O0s=";
+    sha256 = "sha256-LKZychkhWy/rVdrP3Yo6g8CL1pGdiZlBykzFjnWh0fg=";
   };
 
   format = "shards";
diff --git a/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix b/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix
index b3b7b305fba6..5685f1788764 100644
--- a/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix
+++ b/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix
@@ -10,47 +10,6 @@
 let
   common = callPackage ./common.nix;
 in rec {
-  cudatoolkit_6 = common {
-    version = "6.0.37";
-    url = "http://developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda_6.0.37_linux_64.run";
-    sha256 = "991e436c7a6c94ec67cf44204d136adfef87baa3ded270544fa211179779bc40";
-    gcc = gcc48;
-  };
-
-  cudatoolkit_6_5 = common {
-    version = "6.5.19";
-    url = "http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.19_linux_64.run";
-    sha256 = "1x9zdmk8z784d3d35vr2ak1l4h5v4jfjhpxfi9fl9dvjkcavqyaj";
-    gcc = gcc48;
-  };
-
-  cudatoolkit_7 = common {
-    version = "7.0.28";
-    url = "http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run";
-    sha256 = "1km5hpiimx11jcazg0h3mjzk220klwahs2vfqhjavpds5ff2wafi";
-    gcc = gcc6;
-  };
-
-  cudatoolkit_7_5 = common {
-    version = "7.5.18";
-    url = "http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run";
-    sha256 = "1v2ylzp34ijyhcxyh5p6i0cwawwbbdhni2l5l4qm21s1cx9ish88";
-    gcc = gcc6;
-  };
-
-  cudatoolkit_8 = common {
-    version = "8.0.61.2";
-    url = "https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run";
-    sha256 = "1i4xrsqbad283qffvysn88w2pmxzxbbby41lw0j1113z771akv4w";
-    runPatches = [
-      (fetchurl {
-        url = "https://developer.nvidia.com/compute/cuda/8.0/Prod2/patches/2/cuda_8.0.61.2_linux-run";
-        sha256 = "1iaz5rrsnsb1p99qiqvxn6j3ksc7ry8xlr397kqcjzxqbljbqn9d";
-      })
-    ];
-    gcc = gcc6;
-  };
-
   cudatoolkit_9_0 = common {
     version = "9.0.176.1";
     url = "https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run";
@@ -153,5 +112,12 @@ in rec {
     gcc = gcc9;
   };
 
-  cudatoolkit_11 = cudatoolkit_11_1;
+  cudatoolkit_11_2 = common {
+    version = "11.2.1";
+    url = "https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux.run";
+    sha256 = "sha256-HamMuJfMX1inRFpKZspPaSaGdwbLOvWKZpzc2Nw9F8g=";
+    gcc = gcc9;
+  };
+
+  cudatoolkit_11 = cudatoolkit_11_2;
 }
diff --git a/nixpkgs/pkgs/development/compilers/dmd/default.nix b/nixpkgs/pkgs/development/compilers/dmd/default.nix
index 074646f5f416..51f30dbabdaf 100644
--- a/nixpkgs/pkgs/development/compilers/dmd/default.nix
+++ b/nixpkgs/pkgs/development/compilers/dmd/default.nix
@@ -4,10 +4,10 @@
 , targetPackages, fetchpatch, bash
 , dmdBootstrap ? callPackage ./bootstrap.nix { }
 , HOST_DMD ? "${dmdBootstrap}/bin/dmd"
-, version ? "2.091.1"
-, dmdSha256 ? "0brz0n84jdkhr4sq4k91w48p739psbhbb1jk2pi9q60psmx353yr"
-, druntimeSha256 ? "0smgpmfriffh110ksski1s5j921kmxbc2zjy0dyj9ksyrxbzklbl"
-, phobosSha256 ? "1n00anajgibrfs1xzvrmag28hvbvkc0w1fwlimqbznvhf28rhrxs"
+, version ? "2.095.1"
+, dmdSha256 ? "sha256:0faca1y42a1h16aml4lb7z118mh9k9fjx3xlw3ki5f1h3ln91xhk"
+, druntimeSha256 ? "sha256:0ad4pa5llr9m9wqbvfv4yrcra4zz9qxlh5kx43mrv48f9bcxm2ha"
+, phobosSha256 ? "sha256:04w6jw4izix2vbw62j13wvz6q3pi7vivxnmxqj0g8904j5g0cxjl"
 }:
 
 let
@@ -53,18 +53,6 @@ stdenv.mkDerivation rec {
   })
   ];
 
-  patchFlags = [ "--directory=dmd" "-p1" "-F3" ];
-  patches = [
-    (fetchpatch {
-     url = "https://github.com/dlang/dmd/commit/4157298cf04f7aae9f701432afd1de7b7e05c30f.patch";
-     sha256 = "0v4xgqmrx5r8vbx5a4v88s0xnm23mam9nm99yfga7s2sxr0hi5p2";
-    })
-    (fetchpatch {
-     url = "https://github.com/dlang/dmd/commit/1b8a4c90b040bf2f0b68a2739de4991315580b13.patch";
-     sha256 = "1iih6aalv4fsw9mbrlrybhngkkchzzrzg7q8zl047w36c0x397cs";
-    })
-  ];
-
   sourceRoot = ".";
 
   # https://issues.dlang.org/show_bug.cgi?id=19553
@@ -76,6 +64,16 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
       substituteInPlace dmd/test/dshell/test6952.d --replace "/usr/bin/env bash" "${bash}/bin/bash"
+
+      rm dmd/test/runnable/gdb1.d
+      rm dmd/test/runnable/gdb10311.d
+      rm dmd/test/runnable/gdb14225.d
+      rm dmd/test/runnable/gdb14276.d
+      rm dmd/test/runnable/gdb14313.d
+      rm dmd/test/runnable/gdb14330.d
+      rm dmd/test/runnable/gdb15729.sh
+      rm dmd/test/runnable/gdb4149.d
+      rm dmd/test/runnable/gdb4181.d
   ''
   + lib.optionalString stdenv.hostPlatform.isLinux ''
       substituteInPlace phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
@@ -171,5 +169,7 @@ stdenv.mkDerivation rec {
     license = licenses.boost;
     maintainers = with maintainers; [ ThomasMader lionello ];
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+    # many tests are failing
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/combine-packages.nix b/nixpkgs/pkgs/development/compilers/dotnet/combine-packages.nix
index 00fb7c6d9b41..a38d44e37efa 100644
--- a/nixpkgs/pkgs/development/compilers/dotnet/combine-packages.nix
+++ b/nixpkgs/pkgs/development/compilers/dotnet/combine-packages.nix
@@ -4,9 +4,9 @@ let cli = builtins.head packages;
 in
 assert lib.assertMsg ((builtins.length packages) != 0)
     ''You must include at least one package, e.g
-      `with dotnetCorePackages; combinePackages {
-          packages = [ sdk_3_0 aspnetcore_2_1 ];
-       };`'' ;
+      `with dotnetCorePackages; combinePackages [
+          sdk_3_0 aspnetcore_2_1
+       ];`'' ;
   buildEnv {
     name = "dotnet-core-combined";
     paths = packages;
diff --git a/nixpkgs/pkgs/development/compilers/dtc/default.nix b/nixpkgs/pkgs/development/compilers/dtc/default.nix
index c5d33590daad..245e5bf2f540 100644
--- a/nixpkgs/pkgs/development/compilers/dtc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/dtc/default.nix
@@ -1,7 +1,9 @@
 { stdenv, lib, fetchgit, flex, bison, pkg-config, which
-, pythonSupport ? false, python, swig
+, pythonSupport ? false, python ? null, swig
 }:
 
+assert pythonSupport -> python != null;
+
 stdenv.mkDerivation rec {
   pname = "dtc";
   version = "1.6.0";
diff --git a/nixpkgs/pkgs/development/compilers/ecl/default.nix b/nixpkgs/pkgs/development/compilers/ecl/default.nix
index 79a290a6c1c0..083998049c1e 100644
--- a/nixpkgs/pkgs/development/compilers/ecl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ecl/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation {
     license = lib.licenses.mit ;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
+    changelog = "https://gitlab.com/embeddable-common-lisp/ecl/-/raw/${s.version}/CHANGELOG";
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/elm/default.nix b/nixpkgs/pkgs/development/compilers/elm/default.nix
index 333c8c202705..6981bcbd8fdf 100644
--- a/nixpkgs/pkgs/development/compilers/elm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, pkgs
-, haskell, nodejs
+, haskell, haskellPackages, nodejs
 , fetchurl, fetchpatch, makeWrapper, writeScriptBin
   # Rust dependecies
 , rustPlatform, openssl, pkg-config, Security
@@ -7,7 +7,7 @@
 let
   fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
 
-  hsPkgs = haskell.packages.ghc8103.override {
+  hsPkgs = haskellPackages.override {
     overrides = self: super: with haskell.lib; with lib;
       let elmPkgs = rec {
             elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
@@ -80,8 +80,8 @@ let
         # Needed for elm-format
         indents = self.callPackage ./packages/indents.nix {};
         bimap = self.callPackage ./packages/bimap.nix {};
-        avh4-lib = self.callPackage ./packages/avh4-lib.nix {};
-        elm-format-lib = self.callPackage ./packages/elm-format-lib.nix {};
+        avh4-lib = doJailbreak (self.callPackage ./packages/avh4-lib.nix {});
+        elm-format-lib = doJailbreak (self.callPackage ./packages/elm-format-lib.nix {});
         elm-format-test-lib = self.callPackage ./packages/elm-format-test-lib.nix {};
         elm-format-markdown = self.callPackage ./packages/elm-format-markdown.nix {};
       };
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.nix b/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.nix
index 7698d5307327..3453d8d54bf1 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.nix
@@ -31,13 +31,13 @@ let
         sha512 = "HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==";
       };
     };
-    "@babel/compat-data-7.12.13" = {
+    "@babel/compat-data-7.13.8" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.13.tgz";
-        sha512 = "U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.8.tgz";
+        sha512 = "EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog==";
       };
     };
     "@babel/core-7.12.10" = {
@@ -49,13 +49,13 @@ let
         sha512 = "eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==";
       };
     };
-    "@babel/generator-7.12.15" = {
+    "@babel/generator-7.13.9" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.12.15";
+      version = "7.13.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz";
-        sha512 = "6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz";
+        sha512 = "mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==";
       };
     };
     "@babel/helper-annotate-as-pure-7.12.13" = {
@@ -76,40 +76,40 @@ let
         sha512 = "CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==";
       };
     };
-    "@babel/helper-compilation-targets-7.12.13" = {
+    "@babel/helper-compilation-targets-7.13.10" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.12.13";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.13.tgz";
-        sha512 = "dXof20y/6wB5HnLOGyLh/gobsMvDNoekcC+8MCV2iaTd5JemhFkPD73QB+tK3iFC9P0xJC73B6MvKkyUfS9cCw==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz";
+        sha512 = "/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.12.13" = {
+    "@babel/helper-create-class-features-plugin-7.13.10" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.12.13";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz";
-        sha512 = "Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.10.tgz";
+        sha512 = "YV7r2YxdTUaw84EwNkyrRke/TJHR/UXGiyvACRqvdVJ2/syV2rQuJNnaRLSuYiop8cMRXOgseTGoJCWX0q2fFg==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.12.13" = {
+    "@babel/helper-create-regexp-features-plugin-7.12.17" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.12.13";
+      version = "7.12.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.13.tgz";
-        sha512 = "XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw==";
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz";
+        sha512 = "p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==";
       };
     };
-    "@babel/helper-explode-assignable-expression-7.12.13" = {
+    "@babel/helper-explode-assignable-expression-7.13.0" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz";
-        sha512 = "5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw==";
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz";
+        sha512 = "qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==";
       };
     };
     "@babel/helper-function-name-7.12.13" = {
@@ -130,22 +130,22 @@ let
         sha512 = "DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==";
       };
     };
-    "@babel/helper-hoist-variables-7.12.13" = {
+    "@babel/helper-hoist-variables-7.13.0" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.12.13.tgz";
-        sha512 = "KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw==";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz";
+        sha512 = "0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.12.13" = {
+    "@babel/helper-member-expression-to-functions-7.13.0" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz";
-        sha512 = "B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz";
+        sha512 = "yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==";
       };
     };
     "@babel/helper-module-imports-7.12.13" = {
@@ -157,13 +157,13 @@ let
         sha512 = "NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==";
       };
     };
-    "@babel/helper-module-transforms-7.12.13" = {
+    "@babel/helper-module-transforms-7.13.0" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz";
-        sha512 = "acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz";
+        sha512 = "Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==";
       };
     };
     "@babel/helper-optimise-call-expression-7.12.13" = {
@@ -175,31 +175,31 @@ let
         sha512 = "BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==";
       };
     };
-    "@babel/helper-plugin-utils-7.12.13" = {
+    "@babel/helper-plugin-utils-7.13.0" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz";
-        sha512 = "C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz";
+        sha512 = "ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.12.13" = {
+    "@babel/helper-remap-async-to-generator-7.13.0" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz";
-        sha512 = "Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz";
+        sha512 = "pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==";
       };
     };
-    "@babel/helper-replace-supers-7.12.13" = {
+    "@babel/helper-replace-supers-7.13.0" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz";
-        sha512 = "pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz";
+        sha512 = "Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==";
       };
     };
     "@babel/helper-simple-access-7.12.13" = {
@@ -238,76 +238,76 @@ let
         sha512 = "np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==";
       };
     };
-    "@babel/helper-validator-option-7.12.11" = {
+    "@babel/helper-validator-option-7.12.17" = {
       name = "_at_babel_slash_helper-validator-option";
       packageName = "@babel/helper-validator-option";
-      version = "7.12.11";
+      version = "7.12.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz";
-        sha512 = "TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz";
+        sha512 = "TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==";
       };
     };
-    "@babel/helper-wrap-function-7.12.13" = {
+    "@babel/helper-wrap-function-7.13.0" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.13.tgz";
-        sha512 = "t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz";
+        sha512 = "1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==";
       };
     };
-    "@babel/helpers-7.12.13" = {
+    "@babel/helpers-7.13.10" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.12.13";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz";
-        sha512 = "oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz";
+        sha512 = "4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==";
       };
     };
-    "@babel/highlight-7.12.13" = {
+    "@babel/highlight-7.13.10" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.12.13";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz";
-        sha512 = "kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz";
+        sha512 = "5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==";
       };
     };
-    "@babel/parser-7.12.15" = {
+    "@babel/parser-7.13.10" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.12.15";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz";
-        sha512 = "AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.13.10.tgz";
+        sha512 = "0s7Mlrw9uTWkYua7xWr99Wpk2bnGa0ANleKfksYAES8LpWH4gW1OUr42vqKNf0us5UQNfru2wPqMqRITzq/SIQ==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.12.13" = {
+    "@babel/plugin-proposal-async-generator-functions-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.13.tgz";
-        sha512 = "1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz";
+        sha512 = "rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==";
       };
     };
-    "@babel/plugin-proposal-class-properties-7.12.13" = {
+    "@babel/plugin-proposal-class-properties-7.13.0" = {
       name = "_at_babel_slash_plugin-proposal-class-properties";
       packageName = "@babel/plugin-proposal-class-properties";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz";
-        sha512 = "8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz";
+        sha512 = "KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.12.1" = {
+    "@babel/plugin-proposal-dynamic-import-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.12.1";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz";
-        sha512 = "a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz";
+        sha512 = "ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==";
       };
     };
     "@babel/plugin-proposal-export-namespace-from-7.12.13" = {
@@ -319,31 +319,31 @@ let
         sha512 = "INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.12.13" = {
+    "@babel/plugin-proposal-json-strings-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.13.tgz";
-        sha512 = "v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz";
+        sha512 = "w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==";
       };
     };
-    "@babel/plugin-proposal-logical-assignment-operators-7.12.13" = {
+    "@babel/plugin-proposal-logical-assignment-operators-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
       packageName = "@babel/plugin-proposal-logical-assignment-operators";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.13.tgz";
-        sha512 = "fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz";
+        sha512 = "aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.12.13" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.13.tgz";
-        sha512 = "Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz";
+        sha512 = "iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==";
       };
     };
     "@babel/plugin-proposal-numeric-separator-7.12.13" = {
@@ -355,40 +355,40 @@ let
         sha512 = "O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.12.13" = {
+    "@babel/plugin-proposal-object-rest-spread-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.13.tgz";
-        sha512 = "WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz";
+        sha512 = "DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.12.13" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.13.tgz";
-        sha512 = "9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz";
+        sha512 = "0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.12.13" = {
+    "@babel/plugin-proposal-optional-chaining-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.13.tgz";
-        sha512 = "0ZwjGfTcnZqyV3y9DSD1Yk3ebp+sIUpT2YDqP8hovzaNZnQq2Kd7PEqa6iOIUDBXBt7Jl3P7YAcEIL5Pz8u09Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz";
+        sha512 = "hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ==";
       };
     };
-    "@babel/plugin-proposal-private-methods-7.12.13" = {
+    "@babel/plugin-proposal-private-methods-7.13.0" = {
       name = "_at_babel_slash_plugin-proposal-private-methods";
       packageName = "@babel/plugin-proposal-private-methods";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.13.tgz";
-        sha512 = "sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz";
+        sha512 = "MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==";
       };
     };
     "@babel/plugin-proposal-unicode-property-regex-7.12.13" = {
@@ -508,22 +508,22 @@ let
         sha512 = "A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.12.13" = {
+    "@babel/plugin-transform-arrow-functions-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.13.tgz";
-        sha512 = "tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz";
+        sha512 = "96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.12.13" = {
+    "@babel/plugin-transform-async-to-generator-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.13.tgz";
-        sha512 = "psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz";
+        sha512 = "3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==";
       };
     };
     "@babel/plugin-transform-block-scoped-functions-7.12.13" = {
@@ -544,31 +544,31 @@ let
         sha512 = "Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==";
       };
     };
-    "@babel/plugin-transform-classes-7.12.13" = {
+    "@babel/plugin-transform-classes-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.13.tgz";
-        sha512 = "cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz";
+        sha512 = "9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.12.13" = {
+    "@babel/plugin-transform-computed-properties-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.13.tgz";
-        sha512 = "dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz";
+        sha512 = "RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.12.13" = {
+    "@babel/plugin-transform-destructuring-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.13.tgz";
-        sha512 = "Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz";
+        sha512 = "zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==";
       };
     };
     "@babel/plugin-transform-dotall-regex-7.12.13" = {
@@ -598,13 +598,13 @@ let
         sha512 = "fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==";
       };
     };
-    "@babel/plugin-transform-for-of-7.12.13" = {
+    "@babel/plugin-transform-for-of-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.13.tgz";
-        sha512 = "xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz";
+        sha512 = "IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==";
       };
     };
     "@babel/plugin-transform-function-name-7.12.13" = {
@@ -634,40 +634,40 @@ let
         sha512 = "kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.12.13" = {
+    "@babel/plugin-transform-modules-amd-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.13.tgz";
-        sha512 = "JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz";
+        sha512 = "EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.12.13" = {
+    "@babel/plugin-transform-modules-commonjs-7.13.8" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.13.tgz";
-        sha512 = "OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz";
+        sha512 = "9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.12.13" = {
+    "@babel/plugin-transform-modules-systemjs-7.13.8" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz";
-        sha512 = "aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz";
+        sha512 = "hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.12.13" = {
+    "@babel/plugin-transform-modules-umd-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.13.tgz";
-        sha512 = "BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz";
+        sha512 = "D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==";
       };
     };
     "@babel/plugin-transform-named-capturing-groups-regex-7.12.13" = {
@@ -697,13 +697,13 @@ let
         sha512 = "JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==";
       };
     };
-    "@babel/plugin-transform-parameters-7.12.13" = {
+    "@babel/plugin-transform-parameters-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.13.tgz";
-        sha512 = "e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz";
+        sha512 = "Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==";
       };
     };
     "@babel/plugin-transform-property-literals-7.12.13" = {
@@ -751,13 +751,13 @@ let
         sha512 = "xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==";
       };
     };
-    "@babel/plugin-transform-spread-7.12.13" = {
+    "@babel/plugin-transform-spread-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.13.tgz";
-        sha512 = "dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz";
+        sha512 = "V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==";
       };
     };
     "@babel/plugin-transform-sticky-regex-7.12.13" = {
@@ -769,13 +769,13 @@ let
         sha512 = "Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.12.13" = {
+    "@babel/plugin-transform-template-literals-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.13.tgz";
-        sha512 = "arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz";
+        sha512 = "d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==";
       };
     };
     "@babel/plugin-transform-typeof-symbol-7.12.13" = {
@@ -841,22 +841,22 @@ let
         sha512 = "/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==";
       };
     };
-    "@babel/traverse-7.12.13" = {
+    "@babel/traverse-7.13.0" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz";
-        sha512 = "3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz";
+        sha512 = "xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==";
       };
     };
-    "@babel/types-7.12.13" = {
+    "@babel/types-7.13.0" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz";
-        sha512 = "oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz";
+        sha512 = "hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==";
       };
     };
     "@hapi/address-2.1.4" = {
@@ -1066,13 +1066,13 @@ let
         sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
       };
     };
-    "@types/node-14.14.25" = {
+    "@types/node-14.14.34" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.14.25";
+      version = "14.14.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz";
-        sha512 = "EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.34.tgz";
+        sha512 = "dBPaxocOK6UVyvhbnpFIj2W+S+1cBTkHQbFQfeeJhoKFbzYcVUGHvddeWPSucKATb3F0+pgDq0i6ghEaZjsugA==";
       };
     };
     "@types/parse-json-4.0.0" = {
@@ -1120,13 +1120,13 @@ let
         sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
       };
     };
-    "@types/uglify-js-3.11.1" = {
+    "@types/uglify-js-3.13.0" = {
       name = "_at_types_slash_uglify-js";
       packageName = "@types/uglify-js";
-      version = "3.11.1";
+      version = "3.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz";
-        sha512 = "7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==";
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz";
+        sha512 = "EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==";
       };
     };
     "@types/webpack-4.41.26" = {
@@ -2011,22 +2011,22 @@ let
         sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
       };
     };
-    "bn.js-4.11.9" = {
+    "bn.js-4.12.0" = {
       name = "bn.js";
       packageName = "bn.js";
-      version = "4.11.9";
+      version = "4.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz";
-        sha512 = "E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==";
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz";
+        sha512 = "c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==";
       };
     };
-    "bn.js-5.1.3" = {
+    "bn.js-5.2.0" = {
       name = "bn.js";
       packageName = "bn.js";
-      version = "5.1.3";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz";
-        sha512 = "GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==";
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz";
+        sha512 = "D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==";
       };
     };
     "body-parser-1.18.2" = {
@@ -2398,13 +2398,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001185" = {
+    "caniuse-lite-1.0.30001199" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001185";
+      version = "1.0.30001199";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz";
-        sha512 = "Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001199.tgz";
+        sha512 = "ifbK2eChUCFUwGhlEzIoVwzFt1+iriSjyKKFYNfv6hN34483wyWpLLavYQXhnR036LhkdUYaSDpHg1El++VgHQ==";
       };
     };
     "case-sensitive-paths-webpack-plugin-2.3.0" = {
@@ -2758,22 +2758,22 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "color-string-1.5.4" = {
+    "color-string-1.5.5" = {
       name = "color-string";
       packageName = "color-string";
-      version = "1.5.4";
+      version = "1.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz";
-        sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==";
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz";
+        sha512 = "jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==";
       };
     };
-    "colorette-1.2.1" = {
+    "colorette-1.2.2" = {
       name = "colorette";
       packageName = "colorette";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz";
-        sha512 = "puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==";
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz";
+        sha512 = "MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==";
       };
     };
     "colors-1.0.3" = {
@@ -2857,13 +2857,13 @@ let
         sha512 = "U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==";
       };
     };
-    "commander-7.0.0" = {
+    "commander-7.1.0" = {
       name = "commander";
       packageName = "commander";
-      version = "7.0.0";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-7.0.0.tgz";
-        sha512 = "ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==";
+        url = "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz";
+        sha512 = "pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==";
       };
     };
     "common-tags-1.8.0" = {
@@ -3082,13 +3082,13 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
-    "core-js-compat-3.8.3" = {
+    "core-js-compat-3.9.1" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.8.3";
+      version = "3.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.3.tgz";
-        sha512 = "1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz";
+        sha512 = "jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -3505,13 +3505,13 @@ let
         sha512 = "0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==";
       };
     };
-    "defer-to-connect-2.0.0" = {
+    "defer-to-connect-2.0.1" = {
       name = "defer-to-connect";
       packageName = "defer-to-connect";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz";
-        sha512 = "bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==";
+        url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz";
+        sha512 = "4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==";
       };
     };
     "define-properties-1.1.3" = {
@@ -3811,13 +3811,13 @@ let
         sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
       };
     };
-    "electron-to-chromium-1.3.657" = {
+    "electron-to-chromium-1.3.687" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.657";
+      version = "1.3.687";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.657.tgz";
-        sha512 = "/9ROOyvEflEbaZFUeGofD+Tqs/WynbSTbNgNF+/TJJxH1ePD/e6VjZlDJpW3FFFd3nj5l3Hd8ki2vRwy+gyRFw==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.687.tgz";
+        sha512 = "IpzksdQNl3wdgkzf7dnA7/v10w0Utf1dF2L+B4+gKrloBrxCut+au+kky3PYvle3RMdSxZP+UiCZtLbcYRxSNQ==";
       };
     };
     "elliptic-6.5.4" = {
@@ -3901,13 +3901,13 @@ let
         sha512 = "4VbIyCRlCUm/py0E0AjMT3/mwd6DR4Y5Z5gEox6z5JII6ZdKIJmcQzjgWRI5qo5ERJiw9M/Nxhk7SGXFUbZsxQ==";
       };
     };
-    "elm-tooling-1.1.0" = {
+    "elm-tooling-1.3.0" = {
       name = "elm-tooling";
       packageName = "elm-tooling";
-      version = "1.1.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/elm-tooling/-/elm-tooling-1.1.0.tgz";
-        sha512 = "wziiwTbqBkK/905a6stCpTWJhYEKNb4CCYt36VEd5XWmaLSelMOR+SxKcEPpxsiK/tFZ4o0PbW+h1QC5tWfYUQ==";
+        url = "https://registry.npmjs.org/elm-tooling/-/elm-tooling-1.3.0.tgz";
+        sha512 = "OLRg8D7QCbzMmi8QTaebIIsH2qaIj4NiltuJ8vZj4JFHOIVa3utyD5tlfySBGZNfDG7+vZ2K8iDk82TalFaAbw==";
       };
     };
     "elm-webpack-loader-6.0.1" = {
@@ -4027,13 +4027,13 @@ let
         sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
       };
     };
-    "es-abstract-1.18.0-next.2" = {
+    "es-abstract-1.18.0" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.18.0-next.2";
+      version = "1.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz";
-        sha512 = "Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz";
+        sha512 = "LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -4180,13 +4180,13 @@ let
         sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
       };
     };
-    "events-3.2.0" = {
+    "events-3.3.0" = {
       name = "events";
       packageName = "events";
-      version = "3.2.0";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz";
-        sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==";
+        url = "https://registry.npmjs.org/events/-/events-3.3.0.tgz";
+        sha512 = "mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==";
       };
     };
     "eventsource-0.1.6" = {
@@ -4396,13 +4396,31 @@ let
         sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
       };
     };
-    "fastq-1.10.1" = {
+    "fast-levenshtein-3.0.0" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz";
+        sha512 = "hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==";
+      };
+    };
+    "fastest-levenshtein-1.0.12" = {
+      name = "fastest-levenshtein";
+      packageName = "fastest-levenshtein";
+      version = "1.0.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz";
+        sha512 = "On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==";
+      };
+    };
+    "fastq-1.11.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.10.1";
+      version = "1.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz";
-        sha512 = "AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz";
+        sha512 = "7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==";
       };
     };
     "faye-websocket-0.10.0" = {
@@ -4657,13 +4675,13 @@ let
         sha512 = "SDgHBgV+RCjrYs8aUwCb9rTgbTVuSdzvFmLaChsLre1yf+D64khCW++VYciaByZ8Rm0uKF8R/XEpXuTRSGUM1A==";
       };
     };
-    "follow-redirects-1.13.2" = {
+    "follow-redirects-1.13.3" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.13.2";
+      version = "1.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz";
-        sha512 = "6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz";
+        sha512 = "DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==";
       };
     };
     "for-in-1.0.2" = {
@@ -5017,13 +5035,13 @@ let
         sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
       };
     };
-    "glob-parent-5.1.1" = {
+    "glob-parent-5.1.2" = {
       name = "glob-parent";
       packageName = "glob-parent";
-      version = "5.1.1";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
       };
     };
     "glob-to-regexp-0.3.0" = {
@@ -5116,13 +5134,13 @@ let
         sha512 = "R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==";
       };
     };
-    "graceful-fs-4.2.5" = {
+    "graceful-fs-4.2.6" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.5";
+      version = "4.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.5.tgz";
-        sha512 = "kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
       };
     };
     "gzip-size-5.0.0" = {
@@ -5179,6 +5197,15 @@ let
         sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
       };
     };
+    "has-bigints-1.0.1" = {
+      name = "has-bigints";
+      packageName = "has-bigints";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz";
+        sha512 = "LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==";
+      };
+    };
     "has-flag-3.0.0" = {
       name = "has-flag";
       packageName = "has-flag";
@@ -5206,13 +5233,13 @@ let
         sha512 = "3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==";
       };
     };
-    "has-symbols-1.0.1" = {
+    "has-symbols-1.0.2" = {
       name = "has-symbols";
       packageName = "has-symbols";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
       };
     };
     "has-to-string-tag-x-1.4.1" = {
@@ -5818,6 +5845,15 @@ let
         sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
       };
     };
+    "is-bigint-1.0.1" = {
+      name = "is-bigint";
+      packageName = "is-bigint";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz";
+        sha512 = "J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==";
+      };
+    };
     "is-binary-path-1.0.1" = {
       name = "is-binary-path";
       packageName = "is-binary-path";
@@ -5836,6 +5872,15 @@ let
         sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
+    "is-boolean-object-1.1.0" = {
+      name = "is-boolean-object";
+      packageName = "is-boolean-object";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz";
+        sha512 = "a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==";
+      };
+    };
     "is-buffer-1.1.6" = {
       name = "is-buffer";
       packageName = "is-buffer";
@@ -6043,6 +6088,15 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
+    "is-number-object-1.0.4" = {
+      name = "is-number-object";
+      packageName = "is-number-object";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz";
+        sha512 = "zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==";
+      };
+    };
     "is-obj-1.0.1" = {
       name = "is-obj";
       packageName = "is-obj";
@@ -6169,6 +6223,15 @@ let
         sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
       };
     };
+    "is-string-1.0.5" = {
+      name = "is-string";
+      packageName = "is-string";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz";
+        sha512 = "buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==";
+      };
+    };
     "is-svg-3.0.0" = {
       name = "is-svg";
       packageName = "is-svg";
@@ -6691,13 +6754,13 @@ let
         sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
       };
     };
-    "lodash-4.17.20" = {
+    "lodash-4.17.21" = {
       name = "lodash";
       packageName = "lodash";
-      version = "4.17.20";
+      version = "4.17.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
-        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz";
+        sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
       };
     };
     "lodash._reinterpolate-3.0.0" = {
@@ -7015,31 +7078,31 @@ let
         sha512 = "QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw==";
       };
     };
-    "mime-2.5.0" = {
+    "mime-2.5.2" = {
       name = "mime";
       packageName = "mime";
-      version = "2.5.0";
+      version = "2.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz";
-        sha512 = "ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==";
+        url = "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz";
+        sha512 = "tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==";
       };
     };
-    "mime-db-1.45.0" = {
+    "mime-db-1.46.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.45.0";
+      version = "1.46.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz";
-        sha512 = "CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz";
+        sha512 = "svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==";
       };
     };
-    "mime-types-2.1.28" = {
+    "mime-types-2.1.29" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.28";
+      version = "2.1.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz";
-        sha512 = "0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz";
+        sha512 = "Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==";
       };
     };
     "mimic-fn-1.2.0" = {
@@ -7330,13 +7393,13 @@ let
         sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==";
       };
     };
-    "nanoid-3.1.20" = {
+    "nanoid-3.1.21" = {
       name = "nanoid";
       packageName = "nanoid";
-      version = "3.1.20";
+      version = "3.1.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz";
-        sha512 = "a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==";
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.21.tgz";
+        sha512 = "A6oZraK4DJkAOICstsGH98dvycPr/4GGDH7ZWKmMdd3vGcOurZ6JmWFUt0DA5bzrrn2FrUjmv6mFNWvv8jpppA==";
       };
     };
     "nanomatch-1.2.13" = {
@@ -7429,13 +7492,13 @@ let
         sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==";
       };
     };
-    "node-releases-1.1.70" = {
+    "node-releases-1.1.71" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.70";
+      version = "1.1.71";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz";
-        sha512 = "Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz";
+        sha512 = "zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==";
       };
     };
     "node-watch-0.5.5" = {
@@ -7600,13 +7663,13 @@ let
         sha512 = "i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==";
       };
     };
-    "object-is-1.1.4" = {
+    "object-is-1.1.5" = {
       name = "object-is";
       packageName = "object-is";
-      version = "1.1.4";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz";
-        sha512 = "1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==";
+        url = "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz";
+        sha512 = "3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==";
       };
     };
     "object-keys-1.1.1" = {
@@ -7645,13 +7708,13 @@ let
         sha512 = "ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==";
       };
     };
-    "object.getownpropertydescriptors-2.1.1" = {
+    "object.getownpropertydescriptors-2.1.2" = {
       name = "object.getownpropertydescriptors";
       packageName = "object.getownpropertydescriptors";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz";
-        sha512 = "6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==";
+        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz";
+        sha512 = "WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==";
       };
     };
     "object.pick-1.3.0" = {
@@ -7663,13 +7726,13 @@ let
         sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
       };
     };
-    "object.values-1.1.2" = {
+    "object.values-1.1.3" = {
       name = "object.values";
       packageName = "object.values";
-      version = "1.1.2";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz";
-        sha512 = "MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==";
+        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz";
+        sha512 = "nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==";
       };
     };
     "obuf-1.1.2" = {
@@ -7735,13 +7798,13 @@ let
         sha512 = "IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==";
       };
     };
-    "open-7.4.0" = {
+    "open-7.4.2" = {
       name = "open";
       packageName = "open";
-      version = "7.4.0";
+      version = "7.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.4.0.tgz";
-        sha512 = "PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==";
+        url = "https://registry.npmjs.org/open/-/open-7.4.2.tgz";
+        sha512 = "MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==";
       };
     };
     "opn-5.4.0" = {
@@ -7843,13 +7906,13 @@ let
         sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
       };
     };
-    "p-cancelable-2.0.0" = {
+    "p-cancelable-2.1.0" = {
       name = "p-cancelable";
       packageName = "p-cancelable";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz";
-        sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==";
+        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.0.tgz";
+        sha512 = "HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==";
       };
     };
     "p-event-4.2.0" = {
@@ -8374,13 +8437,13 @@ let
         sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
       };
     };
-    "postcss-8.2.4" = {
+    "postcss-8.2.8" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.2.4";
+      version = "8.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.2.4.tgz";
-        sha512 = "kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz";
+        sha512 = "1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw==";
       };
     };
     "postcss-calc-7.0.5" = {
@@ -8743,13 +8806,13 @@ let
         sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897";
       };
     };
-    "pretty-bytes-5.5.0" = {
+    "pretty-bytes-5.6.0" = {
       name = "pretty-bytes";
       packageName = "pretty-bytes";
-      version = "5.5.0";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz";
-        sha512 = "p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==";
+        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz";
+        sha512 = "FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==";
       };
     };
     "pretty-error-2.1.2" = {
@@ -9004,6 +9067,15 @@ let
         sha512 = "FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==";
       };
     };
+    "queue-microtask-1.2.2" = {
+      name = "queue-microtask";
+      packageName = "queue-microtask";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz";
+        sha512 = "dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==";
+      };
+    };
     "randombytes-2.1.0" = {
       name = "randombytes";
       packageName = "randombytes";
@@ -9418,13 +9490,13 @@ let
         sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
       };
     };
-    "resolve-1.19.0" = {
+    "resolve-1.20.0" = {
       name = "resolve";
       packageName = "resolve";
-      version = "1.19.0";
+      version = "1.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz";
-        sha512 = "rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==";
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz";
+        sha512 = "wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==";
       };
     };
     "resolve-cwd-2.0.0" = {
@@ -9607,13 +9679,13 @@ let
         sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==";
       };
     };
-    "run-parallel-1.1.10" = {
+    "run-parallel-1.2.0" = {
       name = "run-parallel";
       packageName = "run-parallel";
-      version = "1.1.10";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz";
-        sha512 = "zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==";
+        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz";
+        sha512 = "5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==";
       };
     };
     "run-queue-1.0.3" = {
@@ -9625,13 +9697,13 @@ let
         sha1 = "e848396f057d223f24386924618e25694161ec47";
       };
     };
-    "rxjs-6.6.3" = {
+    "rxjs-6.6.6" = {
       name = "rxjs";
       packageName = "rxjs";
-      version = "6.6.3";
+      version = "6.6.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz";
-        sha512 = "trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==";
+        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz";
+        sha512 = "/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==";
       };
     };
     "safe-buffer-5.1.1" = {
@@ -10408,31 +10480,31 @@ let
         sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
       };
     };
-    "string-width-4.2.0" = {
+    "string-width-4.2.2" = {
       name = "string-width";
       packageName = "string-width";
-      version = "4.2.0";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
-        sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz";
+        sha512 = "XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==";
       };
     };
-    "string.prototype.trimend-1.0.3" = {
+    "string.prototype.trimend-1.0.4" = {
       name = "string.prototype.trimend";
       packageName = "string.prototype.trimend";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz";
-        sha512 = "ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==";
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz";
+        sha512 = "y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==";
       };
     };
-    "string.prototype.trimstart-1.0.3" = {
+    "string.prototype.trimstart-1.0.4" = {
       name = "string.prototype.trimstart";
       packageName = "string.prototype.trimstart";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz";
-        sha512 = "oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==";
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz";
+        sha512 = "jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==";
       };
     };
     "string_decoder-0.10.31" = {
@@ -11038,13 +11110,13 @@ let
         sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
       };
     };
-    "typescript-3.9.7" = {
+    "typescript-3.9.9" = {
       name = "typescript";
       packageName = "typescript";
-      version = "3.9.7";
+      version = "3.9.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz";
-        sha512 = "BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz";
+        sha512 = "kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==";
       };
     };
     "uglify-es-3.3.10" = {
@@ -11083,6 +11155,15 @@ let
         sha512 = "UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==";
       };
     };
+    "unbox-primitive-1.0.0" = {
+      name = "unbox-primitive";
+      packageName = "unbox-primitive";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz";
+        sha512 = "P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==";
+      };
+    };
     "unicode-canonical-property-names-ecmascript-1.0.4" = {
       name = "unicode-canonical-property-names-ecmascript";
       packageName = "unicode-canonical-property-names-ecmascript";
@@ -11272,13 +11353,13 @@ let
         sha512 = "3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==";
       };
     };
-    "url-parse-1.4.7" = {
+    "url-parse-1.5.1" = {
       name = "url-parse";
       packageName = "url-parse";
-      version = "1.4.7";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz";
-        sha512 = "d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==";
+        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz";
+        sha512 = "HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==";
       };
     };
     "url-parse-lax-3.0.0" = {
@@ -11641,6 +11722,15 @@ let
         sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
       };
     };
+    "which-boxed-primitive-1.0.2" = {
+      name = "which-boxed-primitive";
+      packageName = "which-boxed-primitive";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz";
+        sha512 = "bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==";
+      };
+    };
     "which-module-1.0.0" = {
       name = "which-module";
       packageName = "which-module";
@@ -11902,13 +11992,13 @@ let
         sha512 = "o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A==";
       };
     };
-    "ws-7.4.3" = {
+    "ws-7.4.4" = {
       name = "ws";
       packageName = "ws";
-      version = "7.4.3";
+      version = "7.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz";
-        sha512 = "hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz";
+        sha512 = "Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==";
       };
     };
     "xmlbuilder-13.0.2" = {
@@ -11983,13 +12073,13 @@ let
         sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
       };
     };
-    "yaml-1.10.0" = {
+    "yaml-1.10.1" = {
       name = "yaml";
       packageName = "yaml";
-      version = "1.10.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz";
-        sha512 = "yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==";
+        url = "https://registry.npmjs.org/yaml/-/yaml-1.10.1.tgz";
+        sha512 = "z/asvd+V08l1ywhaemZVirCwjdzLo6O1/0j2JbYCsGjiezupNQqjs5IIPyNtctbHjPEckqzVGd4jvpU5Lr25vQ==";
       };
     };
     "yargs-13.3.2" = {
@@ -12138,7 +12228,7 @@ in
       sources."fresh-0.5.2"
       sources."fs-extra-2.0.0"
       sources."getpass-0.1.7"
-      sources."graceful-fs-4.2.5"
+      sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."http-errors-1.7.2"
@@ -12157,13 +12247,13 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-2.4.0"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.4.1"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.46.0"
+      sources."mime-types-2.1.29"
       sources."minimist-1.2.0"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
@@ -12288,7 +12378,7 @@ in
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -12353,8 +12443,8 @@ in
       sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
       sources."glob-7.1.4"
-      sources."glob-parent-5.1.1"
-      sources."graceful-fs-4.2.5"
+      sources."glob-parent-5.1.2"
+      sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
@@ -12377,14 +12467,14 @@ in
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       (sources."lru-cache-4.1.5" // {
         dependencies = [
           sources."yallist-2.1.2"
         ];
       })
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.46.0"
+      sources."mime-types-2.1.29"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-3.1.3"
@@ -12475,7 +12565,7 @@ in
           sources."color-name-1.1.4"
           sources."emoji-regex-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -12488,7 +12578,7 @@ in
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -12571,7 +12661,7 @@ in
       sources."fsevents-2.3.2"
       sources."get-stream-4.1.0"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."got-9.6.0"
       sources."has-flag-4.0.0"
       sources."http-cache-semantics-4.1.0"
@@ -12596,8 +12686,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.46.0"
+      sources."mime-types-2.1.29"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -12607,7 +12697,7 @@ in
       sources."normalize-url-4.5.0"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."open-7.4.0"
+      sources."open-7.4.2"
       sources."p-cancelable-1.1.0"
       sources."package-json-6.5.0"
       sources."parseurl-1.3.3"
@@ -12659,7 +12749,7 @@ in
       sources."vary-1.1.2"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -12674,10 +12764,10 @@ in
   "@elm-tooling/elm-language-server" = nodeEnv.buildNodePackage {
     name = "_at_elm-tooling_slash_elm-language-server";
     packageName = "@elm-tooling/elm-language-server";
-    version = "2.0.2";
+    version = "2.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-2.0.2.tgz";
-      sha512 = "9G+n4pGWv/dpV6y7Wvf+J1FbJxQW6jtbtiF/20LYJVYP8LxjlrdMG5uzfZqBCFPNfn8aaIJL/ndkSvtSuFe/JA==";
+      url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-2.0.3.tgz";
+      sha512 = "pOcQNSFEoxsvXQlsRap2ahloqscf5jGYQ8ZqtM4TjdwvavSmObDejTyM5lNO81pFyrEUavTG6Q7G68HyP8TxBA==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.4"
@@ -12694,12 +12784,12 @@ in
       sources."execa-5.0.0"
       sources."fast-diff-1.2.0"
       sources."fast-glob-3.2.5"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."fill-range-7.0.1"
       sources."fromentries-1.3.2"
       sources."fsevents-2.3.2"
       sources."get-stream-6.0.0"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."globby-11.0.2"
       sources."human-signals-2.1.0"
       sources."ignore-5.1.8"
@@ -12720,10 +12810,11 @@ in
       sources."path-type-4.0.0"
       sources."picomatch-2.2.2"
       sources."pjson-1.0.9"
+      sources."queue-microtask-1.2.2"
       sources."readdirp-3.5.0"
       sources."reflect-metadata-0.1.13"
       sources."reusify-1.0.4"
-      sources."run-parallel-1.1.10"
+      sources."run-parallel-1.2.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
@@ -12794,11 +12885,11 @@ in
       })
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."fresh-0.5.2"
       sources."fsevents-2.3.2"
       sources."get-stream-4.1.0"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."has-ansi-2.0.0"
       sources."http-errors-1.7.3"
       sources."http-proxy-1.17.0"
@@ -12888,16 +12979,16 @@ in
       sources."chokidar-3.5.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."commander-7.0.0"
+      sources."commander-7.1.0"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."elm-tooling-1.1.0"
+      sources."elm-tooling-1.3.0"
       sources."fill-range-7.0.1"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      sources."graceful-fs-4.2.5"
+      sources."glob-parent-5.1.2"
+      sources."graceful-fs-4.2.6"
       sources."has-flag-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -12948,7 +13039,7 @@ in
       sources."@types/cacheable-request-6.0.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-14.14.25"
+      sources."@types/node-14.14.34"
       sources."@types/responselike-1.0.0"
       sources."cacheable-lookup-2.0.1"
       sources."cacheable-request-7.0.1"
@@ -12960,14 +13051,14 @@ in
       })
       sources."config-chain-1.1.12"
       sources."decompress-response-5.0.0"
-      sources."defer-to-connect-2.0.0"
+      sources."defer-to-connect-2.0.1"
       sources."duplexer3-0.1.4"
       sources."end-of-stream-1.4.4"
       sources."fs-extra-8.1.0"
       sources."get-proxy-2.1.0"
       sources."get-stream-5.2.0"
       sources."got-10.7.0"
-      sources."graceful-fs-4.2.5"
+      sources."graceful-fs-4.2.6"
       sources."has-symbol-support-x-1.4.2"
       sources."has-to-string-tag-x-1.4.1"
       sources."http-cache-semantics-4.1.0"
@@ -12984,7 +13075,7 @@ in
       sources."normalize-url-4.5.0"
       sources."npm-conf-1.1.3"
       sources."once-1.4.0"
-      sources."p-cancelable-2.0.0"
+      sources."p-cancelable-2.1.0"
       sources."p-event-4.2.0"
       sources."p-finally-1.0.0"
       sources."p-timeout-3.2.0"
@@ -13095,8 +13186,8 @@ in
       sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
       sources."glob-7.1.4"
-      sources."glob-parent-5.1.1"
-      sources."graceful-fs-4.2.5"
+      sources."glob-parent-5.1.2"
+      sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
@@ -13119,8 +13210,8 @@ in
       sources."jsprim-1.4.1"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.15"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.46.0"
+      sources."mime-types-2.1.29"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-2.9.0"
@@ -13155,7 +13246,7 @@ in
       sources."request-promise-4.2.6"
       (sources."request-promise-core-1.1.4" // {
         dependencies = [
-          sources."lodash-4.17.20"
+          sources."lodash-4.17.21"
         ];
       })
       sources."require-directory-2.1.1"
@@ -13222,7 +13313,7 @@ in
       sources."compare-versions-3.6.0"
       sources."core-util-is-1.0.2"
       sources."fs-extra-6.0.1"
-      sources."graceful-fs-4.2.5"
+      sources."graceful-fs-4.2.6"
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
       sources."jsonfile-4.0.0"
@@ -13265,46 +13356,50 @@ in
     dependencies = [
       sources."@babel/cli-7.12.10"
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.12.13"
+      sources."@babel/compat-data-7.13.8"
       sources."@babel/core-7.12.10"
-      sources."@babel/generator-7.12.15"
+      sources."@babel/generator-7.13.9"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      sources."@babel/helper-compilation-targets-7.12.13"
-      sources."@babel/helper-create-class-features-plugin-7.12.13"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.13"
-      sources."@babel/helper-explode-assignable-expression-7.12.13"
+      (sources."@babel/helper-compilation-targets-7.13.10" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-create-class-features-plugin-7.13.10"
+      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
+      sources."@babel/helper-explode-assignable-expression-7.13.0"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.12.13"
-      sources."@babel/helper-member-expression-to-functions-7.12.13"
+      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-member-expression-to-functions-7.13.0"
       sources."@babel/helper-module-imports-7.12.13"
-      sources."@babel/helper-module-transforms-7.12.13"
+      sources."@babel/helper-module-transforms-7.13.0"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-plugin-utils-7.12.13"
-      sources."@babel/helper-remap-async-to-generator-7.12.13"
-      sources."@babel/helper-replace-supers-7.12.13"
+      sources."@babel/helper-plugin-utils-7.13.0"
+      sources."@babel/helper-remap-async-to-generator-7.13.0"
+      sources."@babel/helper-replace-supers-7.13.0"
       sources."@babel/helper-simple-access-7.12.13"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/helper-validator-option-7.12.11"
-      sources."@babel/helper-wrap-function-7.12.13"
-      sources."@babel/helpers-7.12.13"
-      sources."@babel/highlight-7.12.13"
-      sources."@babel/parser-7.12.15"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.13"
-      sources."@babel/plugin-proposal-class-properties-7.12.13"
-      sources."@babel/plugin-proposal-dynamic-import-7.12.1"
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helper-wrap-function-7.13.0"
+      sources."@babel/helpers-7.13.10"
+      sources."@babel/highlight-7.13.10"
+      sources."@babel/parser-7.13.10"
+      sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
+      sources."@babel/plugin-proposal-class-properties-7.13.0"
+      sources."@babel/plugin-proposal-dynamic-import-7.13.8"
       sources."@babel/plugin-proposal-export-namespace-from-7.12.13"
-      sources."@babel/plugin-proposal-json-strings-7.12.13"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.12.13"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.12.13"
+      sources."@babel/plugin-proposal-json-strings-7.13.8"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.13.8"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.13.8"
       sources."@babel/plugin-proposal-numeric-separator-7.12.13"
-      sources."@babel/plugin-proposal-object-rest-spread-7.12.13"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.12.13"
-      sources."@babel/plugin-proposal-optional-chaining-7.12.13"
-      sources."@babel/plugin-proposal-private-methods-7.12.13"
+      sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.13.8"
+      sources."@babel/plugin-proposal-optional-chaining-7.13.8"
+      sources."@babel/plugin-proposal-private-methods-7.13.0"
       sources."@babel/plugin-proposal-unicode-property-regex-7.12.13"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
@@ -13318,36 +13413,36 @@ in
       sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-top-level-await-7.12.13"
-      sources."@babel/plugin-transform-arrow-functions-7.12.13"
-      sources."@babel/plugin-transform-async-to-generator-7.12.13"
+      sources."@babel/plugin-transform-arrow-functions-7.13.0"
+      sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
       sources."@babel/plugin-transform-block-scoping-7.12.13"
-      sources."@babel/plugin-transform-classes-7.12.13"
-      sources."@babel/plugin-transform-computed-properties-7.12.13"
-      sources."@babel/plugin-transform-destructuring-7.12.13"
+      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-computed-properties-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.0"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
-      sources."@babel/plugin-transform-for-of-7.12.13"
+      sources."@babel/plugin-transform-for-of-7.13.0"
       sources."@babel/plugin-transform-function-name-7.12.13"
       sources."@babel/plugin-transform-literals-7.12.13"
       sources."@babel/plugin-transform-member-expression-literals-7.12.13"
-      sources."@babel/plugin-transform-modules-amd-7.12.13"
-      sources."@babel/plugin-transform-modules-commonjs-7.12.13"
-      sources."@babel/plugin-transform-modules-systemjs-7.12.13"
-      sources."@babel/plugin-transform-modules-umd-7.12.13"
+      sources."@babel/plugin-transform-modules-amd-7.13.0"
+      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-systemjs-7.13.8"
+      sources."@babel/plugin-transform-modules-umd-7.13.0"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.13"
       sources."@babel/plugin-transform-new-target-7.12.13"
       sources."@babel/plugin-transform-object-super-7.12.13"
-      sources."@babel/plugin-transform-parameters-7.12.13"
+      sources."@babel/plugin-transform-parameters-7.13.0"
       sources."@babel/plugin-transform-property-literals-7.12.13"
       sources."@babel/plugin-transform-regenerator-7.12.13"
       sources."@babel/plugin-transform-reserved-words-7.12.13"
       sources."@babel/plugin-transform-runtime-7.12.10"
       sources."@babel/plugin-transform-shorthand-properties-7.12.13"
-      sources."@babel/plugin-transform-spread-7.12.13"
+      sources."@babel/plugin-transform-spread-7.13.0"
       sources."@babel/plugin-transform-sticky-regex-7.12.13"
-      sources."@babel/plugin-transform-template-literals-7.12.13"
+      sources."@babel/plugin-transform-template-literals-7.13.0"
       sources."@babel/plugin-transform-typeof-symbol-7.12.13"
       sources."@babel/plugin-transform-unicode-escapes-7.12.13"
       sources."@babel/plugin-transform-unicode-regex-7.12.13"
@@ -13355,8 +13450,8 @@ in
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/runtime-7.12.5"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.12.13"
-      sources."@babel/types-7.12.13"
+      sources."@babel/traverse-7.13.0"
+      sources."@babel/types-7.13.0"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
@@ -13370,12 +13465,12 @@ in
       sources."@types/http-proxy-1.17.5"
       sources."@types/json-schema-7.0.7"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.25"
+      sources."@types/node-14.14.34"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.4"
       sources."@types/source-list-map-0.1.2"
       sources."@types/tapable-1.0.6"
-      (sources."@types/uglify-js-3.11.1" // {
+      (sources."@types/uglify-js-3.13.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -13439,7 +13534,7 @@ in
       sources."asn1-0.2.4"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       (sources."assert-1.5.0" // {
@@ -13492,7 +13587,7 @@ in
       sources."binary-extensions-2.2.0"
       sources."bindings-1.5.0"
       sources."bluebird-3.7.2"
-      sources."bn.js-5.1.3"
+      sources."bn.js-5.2.0"
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."bytes-3.1.0"
@@ -13538,7 +13633,7 @@ in
       sources."camel-case-4.1.2"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001185"
+      sources."caniuse-lite-1.0.30001199"
       sources."case-sensitive-paths-webpack-plugin-2.3.0"
       sources."caseless-0.12.0"
       (sources."chalk-2.4.2" // {
@@ -13549,7 +13644,7 @@ in
       sources."chardet-0.7.0"
       (sources."chokidar-3.5.1" // {
         dependencies = [
-          sources."glob-parent-5.1.1"
+          sources."glob-parent-5.1.2"
         ];
       })
       sources."chownr-1.1.4"
@@ -13597,8 +13692,8 @@ in
       sources."color-3.1.3"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.4"
-      sources."colorette-1.2.1"
+      sources."color-string-1.5.5"
+      sources."colorette-1.2.2"
       sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
       sources."commander-4.1.1"
@@ -13636,7 +13731,7 @@ in
         ];
       })
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.8.3" // {
+      (sources."core-js-compat-3.9.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -13645,7 +13740,7 @@ in
       sources."cosmiconfig-5.2.1"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."create-hash-1.2.0"
@@ -13717,7 +13812,7 @@ in
       })
       (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."dir-glob-2.2.2"
@@ -13741,10 +13836,10 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.657"
+      sources."electron-to-chromium-1.3.687"
       (sources."elliptic-6.5.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."elm-0.19.1-5"
@@ -13757,13 +13852,13 @@ in
           sources."chalk-4.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."commander-7.0.0"
+          sources."commander-7.1.0"
           sources."has-flag-4.0.0"
           sources."rimraf-3.0.2"
           sources."supports-color-7.2.0"
         ];
       })
-      sources."elm-tooling-1.1.0"
+      sources."elm-tooling-1.3.0"
       sources."elm-webpack-loader-6.0.1"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
@@ -13777,7 +13872,7 @@ in
       sources."entities-2.2.0"
       sources."errno-0.1.8"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
@@ -13793,7 +13888,7 @@ in
       sources."esutils-2.0.3"
       sources."etag-1.8.1"
       sources."eventemitter3-4.0.7"
-      sources."events-3.2.0"
+      sources."events-3.3.0"
       sources."eventsource-0.1.6"
       sources."evp_bytestokey-1.0.3"
       (sources."execa-1.0.0" // {
@@ -13904,7 +13999,7 @@ in
       sources."find-up-4.1.0"
       sources."firstline-1.3.1"
       sources."flush-write-stream-1.1.1"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
@@ -13946,7 +14041,7 @@ in
           sources."slash-1.0.0"
         ];
       })
-      sources."graceful-fs-4.2.5"
+      sources."graceful-fs-4.2.6"
       (sources."gzip-size-5.0.0" // {
         dependencies = [
           sources."pify-3.0.0"
@@ -13956,8 +14051,9 @@ in
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
+      sources."has-bigints-1.0.1"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -14046,7 +14142,9 @@ in
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
+      sources."is-bigint-1.0.1"
       sources."is-binary-path-2.1.0"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
       sources."is-color-stop-1.1.0"
@@ -14061,6 +14159,7 @@ in
       sources."is-glob-4.0.1"
       sources."is-negative-zero-2.0.1"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-cwd-2.2.0"
       sources."is-path-in-cwd-2.1.0"
@@ -14072,6 +14171,7 @@ in
       sources."is-resolvable-1.1.0"
       sources."is-root-2.0.0"
       sources."is-stream-1.1.0"
+      sources."is-string-1.0.5"
       sources."is-svg-3.0.0"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
@@ -14116,7 +14216,7 @@ in
         ];
       })
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash._reinterpolate-3.0.0"
       sources."lodash.memoize-4.1.2"
       sources."lodash.template-4.5.0"
@@ -14138,12 +14238,12 @@ in
       sources."micromatch-4.0.2"
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.46.0"
+      sources."mime-types-2.1.29"
       sources."mimic-fn-1.2.0"
       (sources."mini-css-extract-plugin-0.12.0" // {
         dependencies = [
@@ -14167,7 +14267,7 @@ in
       sources."multicast-dns-service-types-1.1.0"
       sources."mute-stream-0.0.8"
       sources."nan-2.14.2"
-      sources."nanoid-3.1.20"
+      sources."nanoid-3.1.21"
       sources."nanomatch-1.2.13"
       sources."ncp-1.0.1"
       sources."negotiator-0.6.2"
@@ -14189,7 +14289,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.70"
+      sources."node-releases-1.1.71"
       sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
       sources."normalize-range-0.1.2"
@@ -14217,14 +14317,14 @@ in
         ];
       })
       sources."object-inspect-1.9.0"
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
       sources."object.entries-1.1.3"
-      sources."object.getownpropertydescriptors-2.1.1"
+      sources."object.getownpropertydescriptors-2.1.2"
       sources."object.pick-1.3.0"
-      sources."object.values-1.1.2"
+      sources."object.values-1.1.3"
       sources."obuf-1.1.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
@@ -14420,7 +14520,7 @@ in
       })
       (sources."postcss-safe-parser-5.0.2" // {
         dependencies = [
-          sources."postcss-8.2.4"
+          sources."postcss-8.2.8"
           sources."source-map-0.6.1"
         ];
       })
@@ -14433,7 +14533,7 @@ in
       sources."postcss-unique-selectors-4.0.1"
       sources."postcss-value-parser-4.1.0"
       sources."prepend-http-1.0.4"
-      sources."pretty-bytes-5.5.0"
+      sources."pretty-bytes-5.6.0"
       sources."pretty-error-2.1.2"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
@@ -14446,7 +14546,7 @@ in
       sources."psl-1.8.0"
       (sources."public-encrypt-4.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."pump-3.0.0"
@@ -14543,7 +14643,7 @@ in
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
       sources."requires-port-1.0.0"
-      sources."resolve-1.19.0"
+      sources."resolve-1.20.0"
       sources."resolve-cwd-2.0.0"
       sources."resolve-dir-1.0.1"
       sources."resolve-from-3.0.0"
@@ -14558,7 +14658,7 @@ in
       sources."ripemd160-2.0.2"
       sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      (sources."rxjs-6.6.3" // {
+      (sources."rxjs-6.6.6" // {
         dependencies = [
           sources."tslib-1.14.1"
         ];
@@ -14704,9 +14804,9 @@ in
       sources."stream-shift-1.0.1"
       sources."strict-uri-encode-1.1.0"
       sources."string-replace-loader-2.3.0"
-      sources."string-width-4.2.0"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string-width-4.2.2"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-1.1.1"
       (sources."stringify-object-3.3.0" // {
         dependencies = [
@@ -14810,6 +14910,7 @@ in
           sources."yallist-2.1.2"
         ];
       })
+      sources."unbox-primitive-1.0.0"
       sources."unicode-canonical-property-names-ecmascript-1.0.4"
       sources."unicode-match-property-ecmascript-1.0.4"
       sources."unicode-match-property-value-ecmascript-1.2.0"
@@ -14846,7 +14947,7 @@ in
           sources."schema-utils-3.0.0"
         ];
       })
-      sources."url-parse-1.4.7"
+      sources."url-parse-1.5.1"
       sources."use-3.1.1"
       (sources."util-0.11.1" // {
         dependencies = [
@@ -14898,7 +14999,7 @@ in
       })
       (sources."webpack-dev-middleware-3.7.3" // {
         dependencies = [
-          sources."mime-2.5.0"
+          sources."mime-2.5.2"
         ];
       })
       (sources."webpack-dev-server-3.11.0" // {
@@ -14968,6 +15069,7 @@ in
       sources."websocket-extensions-0.1.4"
       sources."whatwg-fetch-3.5.0"
       sources."which-2.0.2"
+      sources."which-boxed-primitive-1.0.2"
       sources."which-module-1.0.0"
       (sources."winston-2.1.1" // {
         dependencies = [
@@ -15010,7 +15112,7 @@ in
       sources."xtend-4.0.2"
       sources."y18n-4.0.1"
       sources."yallist-3.1.1"
-      sources."yaml-1.10.0"
+      sources."yaml-1.10.1"
       (sources."yargs-6.6.0" // {
         dependencies = [
           sources."camelcase-3.0.0"
@@ -15062,7 +15164,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."isexe-2.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -15078,7 +15180,7 @@ in
       sources."supports-color-7.2.0"
       sources."temp-0.9.4"
       sources."ts-union-2.3.0"
-      sources."typescript-3.9.7"
+      sources."typescript-3.9.9"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
     ];
@@ -15095,10 +15197,10 @@ in
   elm-review = nodeEnv.buildNodePackage {
     name = "elm-review";
     packageName = "elm-review";
-    version = "2.4.1";
+    version = "2.4.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elm-review/-/elm-review-2.4.1.tgz";
-      sha512 = "2nirbEpOvOCgVylf5l6mtu+IqM//8kBeuj6zELPHmzWtn7heZTC0AS7fUtLVtnkgw9Cws8oh4tFLmHgVALE+dw==";
+      url = "https://registry.npmjs.org/elm-review/-/elm-review-2.4.6.tgz";
+      sha512 = "O94tBcesK/JytSGrLXh/NEU9jTQ2jGWpDrN6y/vgGu/gmL/i2Z6tdYw1+Jw0DKzigH3I3JtpoQAp2K/Y27y8Gw==";
     };
     dependencies = [
       sources."@sindresorhus/is-2.1.1"
@@ -15106,7 +15208,7 @@ in
       sources."@types/cacheable-request-6.0.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-14.14.25"
+      sources."@types/node-14.14.34"
       sources."@types/responselike-1.0.0"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
@@ -15140,12 +15242,14 @@ in
       sources."debug-4.3.2"
       sources."decompress-response-5.0.0"
       sources."defaults-1.0.3"
-      sources."defer-to-connect-2.0.0"
+      sources."defer-to-connect-2.0.1"
       sources."duplexer3-0.1.4"
-      sources."elm-tooling-1.1.0"
+      sources."elm-tooling-1.3.0"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."escape-string-regexp-1.0.5"
+      sources."fast-levenshtein-3.0.0"
+      sources."fastest-levenshtein-1.0.12"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."folder-hash-3.3.3"
@@ -15154,9 +15258,9 @@ in
       sources."fsevents-2.3.2"
       sources."get-stream-5.2.0"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."got-10.7.0"
-      sources."graceful-fs-4.2.5"
+      sources."graceful-fs-4.2.6"
       sources."has-flag-4.0.0"
       sources."http-cache-semantics-4.1.0"
       sources."inflight-1.0.6"
@@ -15200,7 +15304,7 @@ in
           sources."chalk-3.0.0"
         ];
       })
-      sources."p-cancelable-2.0.0"
+      sources."p-cancelable-2.1.0"
       sources."p-event-4.2.0"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
@@ -15221,7 +15325,7 @@ in
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
       sources."sisteransi-1.0.5"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."supports-color-7.2.0"
       sources."supports-hyperlinks-2.1.0"
diff --git a/nixpkgs/pkgs/development/compilers/factor-lang/default.nix b/nixpkgs/pkgs/development/compilers/factor-lang/default.nix
index fc5f478177cb..4ce55b5ca25c 100644
--- a/nixpkgs/pkgs/development/compilers/factor-lang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/factor-lang/default.nix
@@ -19,9 +19,10 @@ stdenv.mkDerivation rec {
     ./fuel-dir.patch
   ];
 
-  buildInputs = with xorg; [ git rlwrap curl pkg-config perl makeWrapper
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = with xorg; [ git rlwrap curl pkg-config perl
     libX11 pango cairo gtk2 gdk-pixbuf gtkglext
-    mesa libXmu libXt libICE libSM openssl unzip ];
+    mesa libXmu libXt libICE libSM openssl ];
 
   buildPhase = ''
     sed -ie '4i GIT_LABEL = heads/master-${rev}' GNUmakefile
diff --git a/nixpkgs/pkgs/development/compilers/flasm/default.nix b/nixpkgs/pkgs/development/compilers/flasm/default.nix
index 4257feb87b99..9423f5e15df9 100644
--- a/nixpkgs/pkgs/development/compilers/flasm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/flasm/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     stripRoot = false;
   };
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   nativeBuildInputs = [ unzip bison flex gperf ];
 
diff --git a/nixpkgs/pkgs/development/compilers/flutter/default.nix b/nixpkgs/pkgs/development/compilers/flutter/default.nix
index 14f4d93caa03..736178e76ca2 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/default.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/default.nix
@@ -4,7 +4,7 @@ let
   getPatches = dir:
     let files = builtins.attrNames (builtins.readDir dir);
     in map (f: dir + ("/" + f)) files;
-  version = "1.22.4";
+  version = "2.0.3";
   channel = "stable";
   filename = "flutter_linux_${version}-${channel}.tar.xz";
 in
@@ -15,7 +15,7 @@ in
     pname = "flutter";
     src = fetchurl {
       url = "https://storage.googleapis.com/flutter_infra/releases/${channel}/linux/${filename}";
-      sha256 = "0qalgav9drqddcj8lfvl9ddf3325n953pvkmgha47lslg9sa88zw";
+      sha256 = "14a63cpkp78rgymmlrppds69jsrdarg33dr43nb7s61r0xfh9icm";
     };
     patches = getPatches ./patches;
   };
diff --git a/nixpkgs/pkgs/development/compilers/flutter/flutter.nix b/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
index 4a7aa0d01463..27436d8b6143 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
@@ -41,11 +41,10 @@ let
 
     buildInputs = [ git ];
 
-    inherit src patches;
+    inherit src patches version;
 
     postPatch = ''
       patchShebangs --build ./bin/
-      find ./bin/ -executable -type f -exec patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) {} \;
     '';
 
     buildPhase = ''
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/disable-auto-update.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/disable-auto-update.patch
index 35ce5b367350..1fe098136843 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/disable-auto-update.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/disable-auto-update.patch
@@ -1,8 +1,8 @@
 diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
-index 8d613de739..a673466726 100644
+index c44f867746..c9eda34e26 100644
 --- a/bin/internal/shared.sh
 +++ b/bin/internal/shared.sh
-@@ -204,8 +204,6 @@ function shared::execute() {
+@@ -218,8 +218,6 @@ function shared::execute() {
    # FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
    # FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
  
@@ -12,20 +12,18 @@ index 8d613de739..a673466726 100644
    case "$BIN_NAME" in
      flutter*)
 diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
-index 8a1a1e29da..778f253358 100644
+index 3dc7929dd1..e65d70d55b 100644
 --- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
 +++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
-@@ -293,13 +293,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
+@@ -246,11 +246,7 @@ class FlutterCommandRunner extends CommandRunner<void> {
            globals.flutterUsage.suppressAnalytics = true;
          }
  
--        try {
--          await globals.flutterVersion.ensureVersionFile();
--        } on FileSystemException catch (e) {
--          globals.printError('Failed to write the version file to the artifact cache: "$e".');
--          globals.printError('Please ensure you have permissions in the artifact cache directory.');
--          throwToolExit('Failed to write the version file');
--        }
+-        globals.flutterVersion.ensureVersionFile();
          final bool machineFlag = topLevelResults['machine'] as bool;
-         if (topLevelResults.command?.name != 'upgrade' && topLevelResults['version-check'] as bool && !machineFlag) {
-           await globals.flutterVersion.checkFlutterVersionFreshness();
+-        if (topLevelResults.command?.name != 'upgrade' && topLevelResults['version-check'] as bool && !machineFlag) {
+-          await globals.flutterVersion.checkFlutterVersionFreshness();
+-        }
+ 
+         // See if the user specified a specific device.
+         globals.deviceManager.specifiedDeviceId = topLevelResults['device-id'] as String;
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/move-cache.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/move-cache.patch
index dc77496edb31..d6a45a97e581 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/move-cache.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/move-cache.patch
@@ -1,59 +1,54 @@
-diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
-index d045c83f04..d51973020b 100644
---- a/dev/devicelab/lib/framework/runner.dart
-+++ b/dev/devicelab/lib/framework/runner.dart
-@@ -136,7 +136,7 @@ Future<void> cleanupSystem() async {
-     print('\nTelling Gradle to shut down (JAVA_HOME=$javaHome)');
-     final String gradlewBinaryName = Platform.isWindows ? 'gradlew.bat' : 'gradlew';
-     final Directory tempDir = Directory.systemTemp.createTempSync('flutter_devicelab_shutdown_gradle.');
--    recursiveCopy(Directory(path.join(flutterDirectory.path, 'bin', 'cache', 'artifacts', 'gradle_wrapper')), tempDir);
-+    recursiveCopy(Directory(path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'gradle_wrapper')), tempDir);
-     copy(File(path.join(path.join(flutterDirectory.path, 'packages', 'flutter_tools'), 'templates', 'app', 'android.tmpl', 'gradle', 'wrapper', 'gradle-wrapper.properties')), Directory(path.join(tempDir.path, 'gradle', 'wrapper')));
-     if (!Platform.isWindows) {
-       await exec(
 diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
-index 8da01315ae..bb8d61d7f2 100644
+index a6c59bae07..21f6c9812a 100644
 --- a/packages/flutter_tools/lib/src/asset.dart
 +++ b/packages/flutter_tools/lib/src/asset.dart
-@@ -8,6 +8,7 @@ import 'package:meta/meta.dart';
+@@ -5,6 +5,7 @@
+ import 'package:meta/meta.dart';
  import 'package:package_config/package_config.dart';
- import 'package:yaml/yaml.dart';
  
 +import 'base/common.dart';
  import 'base/context.dart';
  import 'base/file_system.dart';
- import 'base/utils.dart';
-@@ -399,7 +400,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
-     for (final Map<dynamic, dynamic> font in (family['fonts'] as List<dynamic>).cast<Map<dynamic, dynamic>>()) {
-       final Uri entryUri = globals.fs.path.toUri(font['asset'] as String);
-       result.add(_Asset(
--        baseDir: globals.fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
-+        baseDir: globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
-         relativeUri: Uri(path: entryUri.pathSegments.last),
-         entryUri: entryUri,
-         package: null,
+ import 'base/logger.dart';
+@@ -14,6 +15,7 @@ import 'cache.dart';
+ import 'convert.dart';
+ import 'dart/package_map.dart';
+ import 'devfs.dart';
++import 'globals.dart' as globals;
+ import 'flutter_manifest.dart';
+ import 'license_collector.dart';
+ import 'project.dart';
+@@ -377,7 +379,7 @@ class ManifestAssetBundle implements AssetBundle {
+       for (final Map<String, Object> font in family['fonts'] as List<Map<String, Object>>) {
+         final Uri entryUri = _fileSystem.path.toUri(font['asset'] as String);
+         result.add(_Asset(
+-          baseDir: _fileSystem.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
++          baseDir: _fileSystem.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
+           relativeUri: Uri(path: entryUri.pathSegments.last),
+           entryUri: entryUri,
+           package: null,
 diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
-index a35d8f87d0..a40027dc74 100644
+index 11e3bf3e11..39d6fae0d1 100644
 --- a/packages/flutter_tools/lib/src/cache.dart
 +++ b/packages/flutter_tools/lib/src/cache.dart
-@@ -215,8 +215,15 @@ class Cache {
+@@ -321,8 +321,15 @@ class Cache {
        return;
      }
      assert(_lock == null);
 +
-+    final Directory dir = globals.fs.directory(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
++    final Directory dir = _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
 +    if (!dir.existsSync()) {
 +      dir.createSync(recursive: true);
 +      globals.os.chmod(dir, '755');
 +    }
 +
      final File lockFile =
--        globals.fs.file(globals.fs.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
-+        globals.fs.file(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'lockfile'));
+-      _fileSystem.file(_fileSystem.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
++      _fileSystem.file(_fileSystem.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'lockfile'));
      try {
        _lock = lockFile.openSync(mode: FileMode.write);
      } on FileSystemException catch (e) {
-@@ -319,7 +326,7 @@ class Cache {
+@@ -424,7 +431,7 @@ class Cache {
      if (_rootOverride != null) {
        return _fileSystem.directory(_fileSystem.path.join(_rootOverride.path, 'bin', 'cache'));
      } else {
diff --git a/nixpkgs/pkgs/development/compilers/fpc/lazarus.nix b/nixpkgs/pkgs/development/compilers/fpc/lazarus.nix
index 0b7ac647529d..5cd0609960df 100644
--- a/nixpkgs/pkgs/development/compilers/fpc/lazarus.nix
+++ b/nixpkgs/pkgs/development/compilers/fpc/lazarus.nix
@@ -9,7 +9,7 @@
 #  1. the build date is embedded in the binary through `$I %DATE%` - we should dump that
 
 let
-  version = "2.0.10-2";
+  version = "2.0.12";
 
   # as of 2.0.10 a suffix is being added. That may or may not disappear and then
   # come back, so just leave this here.
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20${majorMinorPatch version}/lazarus-${version}.tar.gz";
-    sha256 = "sha256-ZNViZGjdJKMzKyBfOr0KWBq33hsGCi1X4hhkBmz9Q7c=";
+    sha256 = "sha256-umzvf4I6LSgWYimYLvySYDnUIxPEDiL+DGd2wT0AFbI=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/compilers/gambit/build.nix b/nixpkgs/pkgs/development/compilers/gambit/build.nix
index a4b884147db1..d67e0053bbac 100644
--- a/nixpkgs/pkgs/development/compilers/gambit/build.nix
+++ b/nixpkgs/pkgs/development/compilers/gambit/build.nix
@@ -25,10 +25,11 @@ gccStdenv.mkDerivation rec {
   inherit src version git-version;
   bootstrap = gambit-support.gambit-bootstrap;
 
+  nativeBuildInputs = [ git autoconf ];
   # TODO: if/when we can get all the library packages we depend on to have static versions,
   # we could use something like (makeStaticLibraries openssl) to enable creation
   # of statically linked binaries by gsc.
-  buildInputs = [ git autoconf bootstrap openssl ];
+  buildInputs = [ openssl ];
 
   # TODO: patch gambit's source so it has the full path to sed, grep, fgrep? Is there more?
   # Or wrap relevant programs to add a suitable PATH ?
@@ -62,11 +63,11 @@ gccStdenv.mkDerivation rec {
     lib.optional (!gccStdenv.isDarwin) "--enable-poll";
 
   configurePhase = ''
-    export CC=${gcc}/bin/gcc \
-           CXX=${gcc}/bin/g++ \
-           CPP=${gcc}/bin/cpp \
-           CXXCPP=${gcc}/bin/cpp \
-           LD=${gcc}/bin/ld \
+    export CC=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}gcc \
+           CXX=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}g++ \
+           CPP=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}cpp \
+           CXXCPP=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}cpp \
+           LD=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}ld \
            XMKMF=${coreutils}/bin/false
     unset CFLAGS LDFLAGS LIBS CPPFLAGS CXXFLAGS
 
@@ -76,22 +77,23 @@ gccStdenv.mkDerivation rec {
 
     # OS-specific paths are hardcoded in ./configure
     substituteInPlace config.status \
-      --replace /usr/local/opt/openssl/lib "${openssl.out}/lib" \
-      --replace /usr/local/opt/openssl@1.1/lib "${openssl.out}/lib"
+      --replace "/usr/local/opt/openssl@1.1" "${openssl.out}" \
+      --replace "/usr/local/opt/openssl" "${openssl.out}"
+
     ./config.status
   '';
 
   buildPhase = ''
     # Make bootstrap compiler, from release bootstrap
-    mkdir -p boot &&
-    cp -rp ${bootstrap}/gambit/. boot/. &&
-    chmod -R u+w boot &&
-    cd boot &&
-    cp ../gsc/makefile.in ../gsc/*.scm gsc/ && # */
-    ./configure &&
-    for i in lib gsi gsc ; do (cd $i ; make -j$NIX_BUILD_CORES) ; done &&
-    cd .. &&
-    cp boot/gsc/gsc gsc-boot &&
+    mkdir -p boot
+    cp -rp ${bootstrap}/gambit/. boot/.
+    chmod -R u+w boot
+    cd boot
+    cp ../gsc/makefile.in ../gsc/*.scm gsc/
+    ./configure
+    for i in lib gsi gsc ; do (cd $i ; make -j$NIX_BUILD_CORES) ; done
+    cd ..
+    cp boot/gsc/gsc gsc-boot
 
     # Now use the bootstrap compiler to build the real thing!
     make -j$NIX_BUILD_CORES from-scratch
diff --git a/nixpkgs/pkgs/development/compilers/gcc/10/default.nix b/nixpkgs/pkgs/development/compilers/gcc/10/default.nix
index 07b0921ec184..1502b09cca6a 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/10/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/10/default.nix
@@ -181,7 +181,7 @@ stdenv.mkDerivation ({
 
   preConfigure = import ../common/pre-configure.nix {
     inherit lib;
-    inherit version hostPlatform gnatboot langAda langGo;
+    inherit version hostPlatform gnatboot langAda langGo langJit;
   };
 
   dontDisableStatic = true;
diff --git a/nixpkgs/pkgs/development/compilers/gcc/6/default.nix b/nixpkgs/pkgs/development/compilers/gcc/6/default.nix
index fa7881e398a8..93c9dde61fc3 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/6/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/6/default.nix
@@ -78,7 +78,11 @@ let majorVersion = "6";
       ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
 
       # Obtain latest patch with ../update-mcfgthread-patches.sh
-      ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch;
+      ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch
+      ++ optional (targetPlatform.libc == "musl" && targetPlatform.isx86_32) (fetchpatch {
+        url = "https://git.alpinelinux.org/aports/plain/main/gcc/gcc-6.1-musl-libssp.patch?id=5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb";
+        sha256 = "1jf1ciz4gr49lwyh8knfhw6l5gvfkwzjy90m7qiwkcbsf4a3fqn2";
+      });
 
     javaEcj = fetchurl {
       # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
diff --git a/nixpkgs/pkgs/development/compilers/gcc/7/default.nix b/nixpkgs/pkgs/development/compilers/gcc/7/default.nix
index 2ea9033ba63a..d9b4c639b5ab 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/7/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/7/default.nix
@@ -72,6 +72,10 @@ let majorVersion = "7";
       })
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
+      ++ optional (targetPlatform.libc == "musl" && targetPlatform.isx86_32) (fetchpatch {
+        url = "https://git.alpinelinux.org/aports/plain/main/gcc/gcc-6.1-musl-libssp.patch?id=5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb";
+        sha256 = "1jf1ciz4gr49lwyh8knfhw6l5gvfkwzjy90m7qiwkcbsf4a3fqn2";
+      })
       ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
 
       # Obtain latest patch with ../update-mcfgthread-patches.sh
diff --git a/nixpkgs/pkgs/development/compilers/gcc/common/configure-flags.nix b/nixpkgs/pkgs/development/compilers/gcc/common/configure-flags.nix
index 4bdec26fd993..fc4fbb34c502 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/common/configure-flags.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/common/configure-flags.nix
@@ -86,7 +86,6 @@ let
                           else if targetPlatform.isWindows then "mcf"
                           else "single"}"
       "--enable-nls"
-      "--disable-decimal-float" # No final libdecnumber (it may work only in 386)
     ] ++ lib.optionals (targetPlatform.libc == "uclibc" || targetPlatform.libc == "musl") [
       # libsanitizer requires netrom/netrom.h which is not
       # available in uclibc.
@@ -94,9 +93,6 @@ let
       # In uclibc cases, libgomp needs an additional '-ldl'
       # and as I don't know how to pass it, I disable libgomp.
       "--disable-libgomp"
-    ] ++ lib.optionals (targetPlatform.libc == "musl") [
-      # musl at least, disable: https://git.buildroot.net/buildroot/commit/?id=873d4019f7fb00f6a80592224236b3ba7d657865
-      "--disable-libmpx"
     ] ++ lib.optional (targetPlatform.libc == "newlib") "--with-newlib"
       ++ lib.optional (targetPlatform.libc == "avrlibc") "--with-avrlibc"
     );
@@ -147,6 +143,10 @@ let
       (lib.enableFeature enablePlugin "plugin")
     ]
 
+    # Support -m32 on powerpc64le
+    ++ lib.optional (targetPlatform.system == "powerpc64le-linux")
+      "--enable-targets=powerpcle-linux"
+
     # Optional features
     ++ lib.optional (isl != null) "--with-isl=${isl}"
     ++ lib.optionals (cloog != null) [
@@ -181,6 +181,9 @@ let
       # On Illumos/Solaris GNU as is preferred
       "--with-gnu-as" "--without-gnu-ld"
     ]
+    ++ lib.optional (targetPlatform.libc == "musl")
+      # musl at least, disable: https://git.buildroot.net/buildroot/commit/?id=873d4019f7fb00f6a80592224236b3ba7d657865
+      "--disable-libmpx"
     ++ lib.optionals (targetPlatform == hostPlatform && targetPlatform.libc == "musl") [
       "--disable-libsanitizer"
       "--disable-symvers"
diff --git a/nixpkgs/pkgs/development/compilers/gerbil/build.nix b/nixpkgs/pkgs/development/compilers/gerbil/build.nix
index 8297dafff8e2..3d2fd7551e67 100644
--- a/nixpkgs/pkgs/development/compilers/gerbil/build.nix
+++ b/nixpkgs/pkgs/development/compilers/gerbil/build.nix
@@ -1,4 +1,4 @@
-{ pkgs, gccStdenv, lib, coreutils, bash, # makeStaticLibraries,
+{ pkgs, gccStdenv, lib, coreutils,
   openssl, zlib, sqlite, libxml2, libyaml, libmysqlclient, lmdb, leveldb, postgresql,
   version, git-version,
   gambit-support,
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix b/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix
deleted file mode 100644
index 83604630545e..000000000000
--- a/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix
+++ /dev/null
@@ -1,268 +0,0 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
-
-# build-tools
-, bootPkgs
-, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
-, bash
-
-, libiconv ? null, ncurses
-
-, # GHC can be built with system libffi or a bundled one.
-  libffi ? null
-
-, useLLVM ? !stdenv.targetPlatform.isx86
-, # LLVM is conceptually a run-time-only depedendency, but for
-  # non-x86, we need LLVM to bootstrap later stages, so it becomes a
-  # build-time dependency too.
-  buildLlvmPackages, llvmPackages
-
-, # If enabled, GHC will be built with the GPL-free but slower integer-simple
-  # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
-
-, # If enabled, use -fPIC when compiling static libs.
-  enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
-
-  # aarch64 outputs otherwise exceed 2GB limit
-, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
-
-, # Whether to build dynamic libs for the standard library (on the target
-  # platform). Static libs are always built.
-  enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
-
-, # Whether to build terminfo.
-  enableTerminfo ? !stdenv.targetPlatform.isWindows
-
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
-    (if useLLVM then "perf-cross" else "perf-cross-ncg")
-
-, # Whether to disable the large address space allocator
-  # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
-  disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
-}:
-
-assert !enableIntegerSimple -> gmp != null;
-
-let
-  inherit (stdenv) buildPlatform hostPlatform targetPlatform;
-
-  inherit (bootPkgs) ghc;
-
-  # TODO(@Ericson2314) Make unconditional
-  targetPrefix = lib.optionalString
-    (targetPlatform != hostPlatform)
-    "${targetPlatform.config}-";
-
-  buildMK = dontStrip: ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
-    DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
-    INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  ''
-    # We only need to build stage1 on most cross-compilation because
-    # we will be running the compiler on the native system. In some
-    # situations, like native Musl compilation, we need the compiler
-    # to actually link to our new Libc. The iOS simulator is a special
-    # exception because we can’t actually run simulators binaries
-    # ourselves.
-  + lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
-    CrossCompilePrefix = ${targetPrefix}
-    HADDOCK_DOCS = NO
-    BUILD_SPHINX_HTML = NO
-    BUILD_SPHINX_PDF = NO
-  '' + lib.optionalString dontStrip ''
-    STRIP_CMD = :
-  '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
-  '' + lib.optionalString enableRelocatedStaticLibs ''
-    GhcLibHcOpts += -fPIC
-    GhcRtsHcOpts += -fPIC
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    EXTRA_CC_OPTS += -std=gnu99
-  '';
-
-  # Splicer will pull out correct variations
-  libDeps = platform: lib.optional enableTerminfo ncurses
-    ++ [libffi]
-    ++ lib.optional (!enableIntegerSimple) gmp
-    ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
-
-  toolsForTarget = [
-    pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
-
-  targetCC = builtins.head toolsForTarget;
-
-  # ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
-  # see #84670 and #49071 for more background.
-  useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
-
-in
-stdenv.mkDerivation (rec {
-  version = "8.10.1";
-  name = "${targetPrefix}ghc-${version}";
-
-  src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
-    sha256 = "1xgdl6ig5jzli3bg054vfryfkg0y6wggf68g66c32sr67bw0ffsf";
-  };
-
-  enableParallelBuilding = true;
-
-  outputs = [ "out" "doc" ];
-
-  patches = [
-    # See upstream patch at
-    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
-    # from source distributions, the auto-generated configure script needs to be
-    # patched as well, therefore we use an in-tree patch instead of pulling the
-    # upstream patch. Don't forget to check backport status of the upstream patch
-    # when adding new GHC releases in nixpkgs.
-    ./respect-ar-path.patch
-  ];
-
-  postPatch = "patchShebangs .";
-
-  # GHC is a bit confused on its cross terminology.
-  preConfigure = ''
-    for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
-      export "''${env#TARGET_}=''${!env}"
-    done
-    # GHC is a bit confused on its cross terminology, as these would normally be
-    # the *host* tools.
-    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
-    export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
-    # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
-    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
-    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
-    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
-    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
-    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
-
-    echo -n "${buildMK dontStrip}" > mk/build.mk
-    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
-  '' + lib.optionalString (!stdenv.isDarwin) ''
-    export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
-  '' + lib.optionalString stdenv.isDarwin ''
-    export NIX_LDFLAGS+=" -no_dtrace_dof"
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
-  '' + lib.optionalString targetPlatform.isMusl ''
-      echo "patching llvm-targets for musl targets..."
-      echo "Cloning these existing '*-linux-gnu*' targets:"
-      grep linux-gnu llvm-targets | sed 's/^/  /'
-      echo "(go go gadget sed)"
-      sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
-      echo "llvm-targets now contains these '*-linux-musl*' targets:"
-      grep linux-musl llvm-targets | sed 's/^/  /'
-
-      echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
-      # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
-      for x in configure aclocal.m4; do
-        substituteInPlace $x \
-          --replace '*-android*|*-gnueabi*)' \
-                    '*-android*|*-gnueabi*|*-musleabi*)'
-      done
-  '';
-
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ]
-    ++ lib.optional (targetPlatform != hostPlatform) "target";
-
-  # `--with` flags for libraries needed for RTS linker
-  configureFlags = [
-    "--datadir=$doc/share/doc/ghc"
-    "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
-  ] ++ lib.optionals (libffi != null) [
-    "--with-system-libffi"
-    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
-    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
-    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
-    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
-    "--with-iconv-includes=${libiconv}/include"
-    "--with-iconv-libraries=${libiconv}/lib"
-  ] ++ lib.optionals (targetPlatform != hostPlatform) [
-    "--enable-bootstrap-with-devel-snapshot"
-  ] ++ lib.optionals useLdGold [
-    "CFLAGS=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
-  ] ++ lib.optionals (disableLargeAddressSpace) [
-    "--disable-large-address-space"
-  ];
-
-  # Make sure we never relax`$PATH` and hooks support for compatibility.
-  strictDeps = true;
-
-  # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
-  dontAddExtraLibs = true;
-
-  nativeBuildInputs = [
-    perl autoconf automake m4 python3 sphinx
-    ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
-  ];
-
-  # For building runtime libs
-  depsBuildTarget = toolsForTarget;
-
-  buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
-
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
-  depsTargetTarget = map lib.getDev (libDeps targetPlatform);
-  depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
-
-  # required, because otherwise all symbols from HSffi.o are stripped, and
-  # that in turn causes GHCi to abort
-  stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
-
-  checkTarget = "test";
-
-  hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
-
-  postInstall = ''
-    # Install the bash completion file.
-    install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
-    done
-  '';
-
-  passthru = {
-    inherit bootPkgs targetPrefix;
-
-    inherit llvmPackages;
-    inherit enableShared;
-
-    # Our Cabal compiler name
-    haskellCompilerName = "ghc-${version}";
-  };
-
-  meta = {
-    homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
-    maintainers = with lib.maintainers; [ marcweber andres peti ];
-    timeout = 24 * 3600;
-    inherit (ghc.meta) license platforms;
-  };
-
-  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
-
-} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
-  dontPatchELF = true;
-  noAuditTmpdir = true;
-})
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.10.2.nix b/nixpkgs/pkgs/development/compilers/ghc/8.10.2.nix
deleted file mode 100644
index a42dfce6468a..000000000000
--- a/nixpkgs/pkgs/development/compilers/ghc/8.10.2.nix
+++ /dev/null
@@ -1,267 +0,0 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
-
-# build-tools
-, bootPkgs
-, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
-, bash
-
-, libiconv ? null, ncurses
-
-, # GHC can be built with system libffi or a bundled one.
-  libffi ? null
-
-, useLLVM ? !stdenv.targetPlatform.isx86
-, # LLVM is conceptually a run-time-only depedendency, but for
-  # non-x86, we need LLVM to bootstrap later stages, so it becomes a
-  # build-time dependency too.
-  buildLlvmPackages, llvmPackages
-
-, # If enabled, GHC will be built with the GPL-free but slower integer-simple
-  # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
-
-, # If enabled, use -fPIC when compiling static libs.
-  enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
-
-  # aarch64 outputs otherwise exceed 2GB limit
-, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
-
-, # Whether to build dynamic libs for the standard library (on the target
-  # platform). Static libs are always built.
-  enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
-
-, # Whether to build terminfo.
-  enableTerminfo ? !stdenv.targetPlatform.isWindows
-
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
-    (if useLLVM then "perf-cross" else "perf-cross-ncg")
-
-, # Whether to disable the large address space allocator
-  # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
-  disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
-}:
-
-assert !enableIntegerSimple -> gmp != null;
-
-let
-  inherit (stdenv) buildPlatform hostPlatform targetPlatform;
-
-  inherit (bootPkgs) ghc;
-
-  # TODO(@Ericson2314) Make unconditional
-  targetPrefix = lib.optionalString
-    (targetPlatform != hostPlatform)
-    "${targetPlatform.config}-";
-
-  buildMK = ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
-    DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
-    INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  '' + lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
-    CrossCompilePrefix = ${targetPrefix}
-    HADDOCK_DOCS = NO
-    BUILD_SPHINX_HTML = NO
-    BUILD_SPHINX_PDF = NO
-  '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
-  '' + lib.optionalString enableRelocatedStaticLibs ''
-    GhcLibHcOpts += -fPIC
-    GhcRtsHcOpts += -fPIC
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    EXTRA_CC_OPTS += -std=gnu99
-  '';
-
-  # Splicer will pull out correct variations
-  libDeps = platform: lib.optional enableTerminfo ncurses
-    ++ [libffi]
-    ++ lib.optional (!enableIntegerSimple) gmp
-    ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
-
-  toolsForTarget = [
-    pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
-
-  targetCC = builtins.head toolsForTarget;
-
-  # ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
-  # see #84670 and #49071 for more background.
-  useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
-
-in
-stdenv.mkDerivation (rec {
-  version = "8.10.2";
-  name = "${targetPrefix}ghc-${version}";
-
-  src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
-    sha256 = "02w8n085bw38vyp694j0lfk5wcnwkdaj7hhp0saj71x74533lmww";
-  };
-
-  enableParallelBuilding = true;
-
-  outputs = [ "out" "doc" ];
-
-  patches = [
-    # See upstream patch at
-    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
-    # from source distributions, the auto-generated configure script needs to be
-    # patched as well, therefore we use an in-tree patch instead of pulling the
-    # upstream patch. Don't forget to check backport status of the upstream patch
-    # when adding new GHC releases in nixpkgs.
-    ./respect-ar-path.patch
-
-    # https://gitlab.haskell.org/ghc/ghc/-/issues/18549
-    ./issue-18549.patch
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Make Block.h compile with c++ compilers. Remove with the next release
-    (fetchpatch {
-      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
-      sha256 = "0r4zjj0bv1x1m2dgxp3adsf2xkr94fjnyj1igsivd9ilbs5ja0b5";
-    })
-  ];
-
-  postPatch = "patchShebangs .";
-
-  # GHC is a bit confused on its cross terminology.
-  preConfigure = ''
-    for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
-      export "''${env#TARGET_}=''${!env}"
-    done
-    # GHC is a bit confused on its cross terminology, as these would normally be
-    # the *host* tools.
-    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
-    export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
-    # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
-    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
-    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
-    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
-    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
-    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
-
-    echo -n "${buildMK}" > mk/build.mk
-    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
-  '' + lib.optionalString (!stdenv.isDarwin) ''
-    export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
-  '' + lib.optionalString stdenv.isDarwin ''
-    export NIX_LDFLAGS+=" -no_dtrace_dof"
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
-  '' + lib.optionalString targetPlatform.isMusl ''
-      echo "patching llvm-targets for musl targets..."
-      echo "Cloning these existing '*-linux-gnu*' targets:"
-      grep linux-gnu llvm-targets | sed 's/^/  /'
-      echo "(go go gadget sed)"
-      sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
-      echo "llvm-targets now contains these '*-linux-musl*' targets:"
-      grep linux-musl llvm-targets | sed 's/^/  /'
-
-      echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
-      # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
-      for x in configure aclocal.m4; do
-        substituteInPlace $x \
-          --replace '*-android*|*-gnueabi*)' \
-                    '*-android*|*-gnueabi*|*-musleabi*)'
-      done
-  '';
-
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ]
-    ++ lib.optional (targetPlatform != hostPlatform) "target";
-
-  # `--with` flags for libraries needed for RTS linker
-  configureFlags = [
-    "--datadir=$doc/share/doc/ghc"
-    "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
-  ] ++ lib.optionals (libffi != null) [
-    "--with-system-libffi"
-    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
-    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
-    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
-    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
-    "--with-iconv-includes=${libiconv}/include"
-    "--with-iconv-libraries=${libiconv}/lib"
-  ] ++ lib.optionals (targetPlatform != hostPlatform) [
-    "--enable-bootstrap-with-devel-snapshot"
-  ] ++ lib.optionals useLdGold [
-    "CFLAGS=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
-  ] ++ lib.optionals (disableLargeAddressSpace) [
-    "--disable-large-address-space"
-  ];
-
-  # Make sure we never relax`$PATH` and hooks support for compatibility.
-  strictDeps = true;
-
-  # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
-  dontAddExtraLibs = true;
-
-  nativeBuildInputs = [
-    perl autoconf automake m4 python3 sphinx
-    ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
-  ];
-
-  # For building runtime libs
-  depsBuildTarget = toolsForTarget;
-
-  buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
-
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
-  depsTargetTarget = map lib.getDev (libDeps targetPlatform);
-  depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
-
-  # required, because otherwise all symbols from HSffi.o are stripped, and
-  # that in turn causes GHCi to abort
-  stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
-
-  checkTarget = "test";
-
-  hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
-
-  postInstall = ''
-    # Install the bash completion file.
-    install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
-    done
-  '';
-
-  passthru = {
-    inherit bootPkgs targetPrefix;
-
-    inherit llvmPackages;
-    inherit enableShared;
-
-    # Our Cabal compiler name
-    haskellCompilerName = "ghc-${version}";
-  };
-
-  meta = {
-    homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
-    maintainers = with lib.maintainers; [ marcweber andres peti ];
-    timeout = 24 * 3600;
-    inherit (ghc.meta) license platforms;
-  };
-
-} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
-  dontPatchELF = true;
-  noAuditTmpdir = true;
-})
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.10.3.nix b/nixpkgs/pkgs/development/compilers/ghc/8.10.3.nix
deleted file mode 100644
index fe160259f2b3..000000000000
--- a/nixpkgs/pkgs/development/compilers/ghc/8.10.3.nix
+++ /dev/null
@@ -1,264 +0,0 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
-
-# build-tools
-, bootPkgs
-, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
-, bash
-
-, libiconv ? null, ncurses
-
-, # GHC can be built with system libffi or a bundled one.
-  libffi ? null
-
-, useLLVM ? !stdenv.targetPlatform.isx86
-, # LLVM is conceptually a run-time-only depedendency, but for
-  # non-x86, we need LLVM to bootstrap later stages, so it becomes a
-  # build-time dependency too.
-  buildLlvmPackages, llvmPackages
-
-, # If enabled, GHC will be built with the GPL-free but slower integer-simple
-  # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
-
-, # If enabled, use -fPIC when compiling static libs.
-  enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
-
-  # aarch64 outputs otherwise exceed 2GB limit
-, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
-
-, # Whether to build dynamic libs for the standard library (on the target
-  # platform). Static libs are always built.
-  enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
-
-, # Whether to build terminfo.
-  enableTerminfo ? !stdenv.targetPlatform.isWindows
-
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
-    (if useLLVM then "perf-cross" else "perf-cross-ncg")
-
-, # Whether to disable the large address space allocator
-  # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
-  disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
-}:
-
-assert !enableIntegerSimple -> gmp != null;
-
-let
-  inherit (stdenv) buildPlatform hostPlatform targetPlatform;
-
-  inherit (bootPkgs) ghc;
-
-  # TODO(@Ericson2314) Make unconditional
-  targetPrefix = lib.optionalString
-    (targetPlatform != hostPlatform)
-    "${targetPlatform.config}-";
-
-  buildMK = ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
-    DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
-    INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  '' + lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
-    CrossCompilePrefix = ${targetPrefix}
-    HADDOCK_DOCS = NO
-    BUILD_SPHINX_HTML = NO
-    BUILD_SPHINX_PDF = NO
-  '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
-  '' + lib.optionalString enableRelocatedStaticLibs ''
-    GhcLibHcOpts += -fPIC
-    GhcRtsHcOpts += -fPIC
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    EXTRA_CC_OPTS += -std=gnu99
-  '';
-
-  # Splicer will pull out correct variations
-  libDeps = platform: lib.optional enableTerminfo ncurses
-    ++ [libffi]
-    ++ lib.optional (!enableIntegerSimple) gmp
-    ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
-
-  toolsForTarget = [
-    pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
-
-  targetCC = builtins.head toolsForTarget;
-
-  # ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
-  # see #84670 and #49071 for more background.
-  useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
-
-in
-stdenv.mkDerivation (rec {
-  version = "8.10.3";
-  name = "${targetPrefix}ghc-${version}";
-
-  src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
-    sha256 = "0cdrdvs5qnqr93cr9zvrlfjv2xr671kjjghnsw4afa4hahcq7p6c";
-  };
-
-  enableParallelBuilding = true;
-
-  outputs = [ "out" "doc" ];
-
-  patches = [
-    # See upstream patch at
-    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
-    # from source distributions, the auto-generated configure script needs to be
-    # patched as well, therefore we use an in-tree patch instead of pulling the
-    # upstream patch. Don't forget to check backport status of the upstream patch
-    # when adding new GHC releases in nixpkgs.
-    ./respect-ar-path.patch
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Make Block.h compile with c++ compilers. Remove with the next release
-    (fetchpatch {
-      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
-      sha256 = "0r4zjj0bv1x1m2dgxp3adsf2xkr94fjnyj1igsivd9ilbs5ja0b5";
-    })
-  ];
-
-  postPatch = "patchShebangs .";
-
-  # GHC is a bit confused on its cross terminology.
-  preConfigure = ''
-    for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
-      export "''${env#TARGET_}=''${!env}"
-    done
-    # GHC is a bit confused on its cross terminology, as these would normally be
-    # the *host* tools.
-    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
-    export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
-    # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
-    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
-    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
-    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
-    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
-    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
-
-    echo -n "${buildMK}" > mk/build.mk
-    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
-  '' + lib.optionalString (!stdenv.isDarwin) ''
-    export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
-  '' + lib.optionalString stdenv.isDarwin ''
-    export NIX_LDFLAGS+=" -no_dtrace_dof"
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
-  '' + lib.optionalString targetPlatform.isMusl ''
-      echo "patching llvm-targets for musl targets..."
-      echo "Cloning these existing '*-linux-gnu*' targets:"
-      grep linux-gnu llvm-targets | sed 's/^/  /'
-      echo "(go go gadget sed)"
-      sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
-      echo "llvm-targets now contains these '*-linux-musl*' targets:"
-      grep linux-musl llvm-targets | sed 's/^/  /'
-
-      echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
-      # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
-      for x in configure aclocal.m4; do
-        substituteInPlace $x \
-          --replace '*-android*|*-gnueabi*)' \
-                    '*-android*|*-gnueabi*|*-musleabi*)'
-      done
-  '';
-
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ]
-    ++ lib.optional (targetPlatform != hostPlatform) "target";
-
-  # `--with` flags for libraries needed for RTS linker
-  configureFlags = [
-    "--datadir=$doc/share/doc/ghc"
-    "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
-  ] ++ lib.optionals (libffi != null) [
-    "--with-system-libffi"
-    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
-    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
-    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
-    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
-    "--with-iconv-includes=${libiconv}/include"
-    "--with-iconv-libraries=${libiconv}/lib"
-  ] ++ lib.optionals (targetPlatform != hostPlatform) [
-    "--enable-bootstrap-with-devel-snapshot"
-  ] ++ lib.optionals useLdGold [
-    "CFLAGS=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
-  ] ++ lib.optionals (disableLargeAddressSpace) [
-    "--disable-large-address-space"
-  ];
-
-  # Make sure we never relax`$PATH` and hooks support for compatibility.
-  strictDeps = true;
-
-  # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
-  dontAddExtraLibs = true;
-
-  nativeBuildInputs = [
-    perl autoconf automake m4 python3 sphinx
-    ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
-  ];
-
-  # For building runtime libs
-  depsBuildTarget = toolsForTarget;
-
-  buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
-
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
-  depsTargetTarget = map lib.getDev (libDeps targetPlatform);
-  depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
-
-  # required, because otherwise all symbols from HSffi.o are stripped, and
-  # that in turn causes GHCi to abort
-  stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
-
-  checkTarget = "test";
-
-  hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
-
-  postInstall = ''
-    # Install the bash completion file.
-    install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
-    done
-  '';
-
-  passthru = {
-    inherit bootPkgs targetPrefix;
-
-    inherit llvmPackages;
-    inherit enableShared;
-
-    # Our Cabal compiler name
-    haskellCompilerName = "ghc-${version}";
-  };
-
-  meta = {
-    homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
-    maintainers = with lib.maintainers; [ marcweber andres peti ];
-    timeout = 24 * 3600;
-    inherit (ghc.meta) license platforms;
-  };
-
-} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
-  dontPatchELF = true;
-  noAuditTmpdir = true;
-})
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.2.2-binary.nix b/nixpkgs/pkgs/development/compilers/ghc/8.2.2-binary.nix
deleted file mode 100644
index 5f83c2b2afc2..000000000000
--- a/nixpkgs/pkgs/development/compilers/ghc/8.2.2-binary.nix
+++ /dev/null
@@ -1,191 +0,0 @@
-{ lib, stdenv, substituteAll
-, fetchurl, perl, gcc, llvm
-, ncurses5, gmp, glibc, libiconv
-, llvmPackages
-}:
-
-# Prebuilt only does native
-assert stdenv.targetPlatform == stdenv.hostPlatform;
-
-let
-  useLLVM = !stdenv.targetPlatform.isx86;
-
-  libPath = lib.makeLibraryPath ([
-    ncurses5 gmp
-  ] ++ lib.optional (stdenv.hostPlatform.isDarwin) libiconv);
-
-  libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
-    + "LD_LIBRARY_PATH";
-
-  glibcDynLinker = assert stdenv.isLinux;
-    if stdenv.hostPlatform.libc == "glibc" then
-       # Could be stdenv.cc.bintools.dynamicLinker, keeping as-is to avoid rebuild.
-       ''"$(cat $NIX_CC/nix-support/dynamic-linker)"''
-    else
-      "${lib.getLib glibc}/lib/ld-linux*";
-
-in
-
-stdenv.mkDerivation rec {
-  version = "8.2.2";
-
-  name = "ghc-${version}-binary";
-
-  src = fetchurl ({
-    i686-linux = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-deb8-linux.tar.xz";
-      sha256 = "08w2ik55dp3n95qikmrflc91lsiq01xp53ki3jlhnbj8fqnxfrwy";
-    };
-    x86_64-linux = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-deb8-linux.tar.xz";
-      sha256 = "0ahv26304pqi3dm7i78si4pxwvg5f5dc2jwsfgvcrhcx5g30bqj8";
-    };
-    armv7l-linux = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-armv7-deb8-linux.tar.xz";
-      sha256 = "1jmv8qmnh5bn324fivbwdcaj55kvw7cb2zq9pafmlmv3qwwx7s46";
-    };
-    aarch64-linux = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-aarch64-deb8-linux.tar.xz";
-      sha256 = "1k2amylcp1ad67c75h1pqf7czf9m0zj1i7hdc45ghjklnfq9hrk7";
-    };
-    x86_64-darwin = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
-      sha256 = "09swx71gh5habzbx55shz2xykgr96xkcy09nzinnm4z0yxicy3zr";
-    };
-  }.${stdenv.hostPlatform.system}
-    or (throw "cannot bootstrap GHC on this platform"));
-
-  nativeBuildInputs = [ perl ];
-  propagatedBuildInputs = lib.optionals useLLVM [ llvmPackages.llvm ];
-
-  # Cannot patchelf beforehand due to relative RPATHs that anticipate
-  # the final install location/
-  ${libEnvVar} = libPath;
-
-  postUnpack =
-    # 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
-        isScript $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
-    '' +
-
-    # Some scripts used during the build need to have their shebangs patched
-    ''
-      patchShebangs ghc-${version}/utils/
-      patchShebangs ghc-${version}/configure
-    '' +
-
-    # Strip is harmful, see also below. It's important that this happens
-    # first. The GHC Cabal build system makes use of strip by default and
-    # has hardcoded paths to /usr/bin/strip in many places. We replace
-    # those below, making them point to our dummy script.
-    ''
-      mkdir "$TMP/bin"
-      for i in strip; do
-        echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
-        chmod +x "$TMP/bin/$i"
-      done
-      PATH="$TMP/bin:$PATH"
-    '' +
-    # We have to patch the GMP paths for the integer-gmp package.
-    ''
-      find . -name integer-gmp.buildinfo \
-          -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
-    '' + lib.optionalString stdenv.isDarwin ''
-      find . -name base.buildinfo \
-          -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
-    '' +
-    # Rename needed libraries and binaries, fix interpreter
-    lib.optionalString stdenv.isLinux ''
-      find . -type f -perm -0100 -exec patchelf \
-          --replace-needed libncurses${lib.optionalString stdenv.is64bit "w"}.so.5 libncurses.so \
-          --replace-needed libtinfo.so libtinfo.so.5 \
-          --interpreter ${glibcDynLinker} {} \;
-
-      sed -i "s|/usr/bin/perl|perl\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
-      sed -i "s|/usr/bin/gcc|gcc\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
-    '' +
-    # We're kludging a glibc bindist into working with non-glibc...
-    # Here we patch up the use of `__strdup` (part of glibc binary ABI)
-    # to instead use `strdup` since musl doesn't provide __strdup
-    # (`__strdup` is defined to be an alias of `strdup` anyway[1]).
-    # [1] http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/baselib---strdup-1.html
-    # Use objcopy magic to make the change:
-    lib.optionalString stdenv.hostPlatform.isMusl ''
-      find ./ghc-${version}/rts -name "libHSrts*.a" -exec ''${OBJCOPY:-objcopy} --redefine-sym __strdup=strdup {} \;
-    '';
-
-  configurePlatforms = [ ];
-  configureFlags =
-  let
-    gcc-clang-wrapper = substituteAll {
-      inherit (stdenv) shell;
-      isExecutable = true;
-      src = ./gcc-clang-wrapper.sh;
-    };
-  in
-  [ "--with-gmp-libraries=${lib.getLib gmp}/lib"
-    "--with-gmp-includes=${lib.getDev gmp}/include"
-  ] ++ lib.optional stdenv.isDarwin            "--with-gcc=${gcc-clang-wrapper}"
-    ++ lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
-
-  # Stripping combined with patchelf breaks the executables (they die
-  # with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
-  dontStrip = true;
-
-  # No building is necessary, but calling make without flags ironically
-  # calls install-strip ...
-  dontBuild = true;
-
-  # On Linux, use patchelf to modify the executables so that they can
-  # find editline/gmp.
-  preFixup = lib.optionalString stdenv.isLinux ''
-    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
-      isScript $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
-  '';
-
-  doInstallCheck = true;
-  installCheckPhase = ''
-    unset ${libEnvVar}
-    # 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
-    $out/bin/ghc --make main.hs || exit 1
-    echo compilation ok
-    [ $(./main) == "yes" ]
-  '';
-
-  passthru = {
-    targetPrefix = "";
-    enableShared = true;
-  };
-
-  meta.license = lib.licenses.bsd3;
-  meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux" "aarch64-linux"];
-}
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix b/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix
deleted file mode 100644
index 8237f27241e7..000000000000
--- a/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix
+++ /dev/null
@@ -1,275 +0,0 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
-
-# build-tools
-, bootPkgs
-, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx
-, bash
-
-, libiconv ? null, ncurses
-
-, # GHC can be built with system libffi or a bundled one.
-  libffi ? null
-
-, useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS
-, # LLVM is conceptually a run-time-only depedendency, but for
-  # non-x86, we need LLVM to bootstrap later stages, so it becomes a
-  # build-time dependency too.
-  buildLlvmPackages, llvmPackages
-
-, # If enabled, GHC will be built with the GPL-free but slower integer-simple
-  # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
-
-, # If enabled, use -fPIC when compiling static libs.
-  enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
-
-, # Whether to build dynamic libs for the standard library (on the target
-  # platform). Static libs are always built.
-  enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
-
-, # Whether to build terminfo.
-  enableTerminfo ? !stdenv.targetPlatform.isWindows
-
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
-    (if useLLVM then "perf-cross" else "perf-cross-ncg")
-
-, # Whether to disable the large address space allocator
-  # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
-  disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
-}:
-
-assert !enableIntegerSimple -> gmp != null;
-
-let
-  inherit (stdenv) buildPlatform hostPlatform targetPlatform;
-
-  inherit (bootPkgs) ghc;
-
-  # TODO(@Ericson2314) Make unconditional
-  targetPrefix = lib.optionalString
-    (targetPlatform != hostPlatform)
-    "${targetPlatform.config}-";
-
-  buildMK = ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
-    DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
-    INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  ''
-    # We only need to build stage1 on most cross-compilation because
-    # we will be running the compiler on the native system. In some
-    # situations, like native Musl compilation, we need the compiler
-    # to actually link to our new Libc. The iOS simulator is a special
-    # exception because we can’t actually run simulators binaries
-    # ourselves.
-  + lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
-    CrossCompilePrefix = ${targetPrefix}
-    HADDOCK_DOCS = NO
-    BUILD_SPHINX_HTML = NO
-    BUILD_SPHINX_PDF = NO
-  '' + lib.optionalString enableRelocatedStaticLibs ''
-    GhcLibHcOpts += -fPIC
-    GhcRtsHcOpts += -fPIC
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    EXTRA_CC_OPTS += -std=gnu99
-  '';
-
-  # Splicer will pull out correct variations
-  libDeps = platform: lib.optional enableTerminfo ncurses
-    ++ [libffi]
-    ++ lib.optional (!enableIntegerSimple) gmp
-    ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
-
-  toolsForTarget = [
-    pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
-
-  targetCC = builtins.head toolsForTarget;
-
-  # ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
-  # see #84670 and #49071 for more background.
-  useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
-
-in
-stdenv.mkDerivation (rec {
-  version = "8.6.5";
-  name = "${targetPrefix}ghc-${version}";
-
-  src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
-    sha256 = "0qg3zsmbk4rkwkc3jpas3zs74qaxmw4sp4v1mhsbj0a0dzls2jjd";
-  };
-
-  enableParallelBuilding = true;
-
-  outputs = [ "out" "doc" ];
-
-  patches = [
-    # See upstream patch at
-    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
-    # from source distributions, the auto-generated configure script needs to be
-    # patched as well, therefore we use an in-tree patch instead of pulling the
-    # upstream patch. Don't forget to check backport status of the upstream patch
-    # when adding new GHC releases in nixpkgs.
-    ./respect-ar-path.patch
-
-    (fetchpatch { # https://phabricator.haskell.org/D5123
-     url = "https://gitlab.haskell.org/ghc/ghc/-/commit/13ff0b7ced097286e0d7b054f050871effe07f86.diff";
-     name = "D5123.diff";
-     sha256 = "140lmnqxra7xkwy370c5pyf8dgdwgmbpcrs1dapnwr2dh8bavn8c";
-    })
-    (fetchpatch { # https://github.com/haskell/haddock/issues/900
-     url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/983.diff";
-     name = "loadpluginsinmodules.diff";
-     sha256 = "0bvvv0zsfq2581zsir97zfkggc1kkircbbajc2fz3b169ycpbha1";
-     extraPrefix = "utils/haddock/";
-     stripLen = 1;
-   })
-  ];
-
-  postPatch = "patchShebangs .";
-
-  # GHC is a bit confused on its cross terminology.
-  preConfigure = ''
-    for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
-      export "''${env#TARGET_}=''${!env}"
-    done
-    # GHC is a bit confused on its cross terminology, as these would normally be
-    # the *host* tools.
-    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
-    export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
-    # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
-    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
-    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
-    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
-    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
-    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
-
-    echo -n "${buildMK}" > mk/build.mk
-    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
-  '' + lib.optionalString (!stdenv.isDarwin) ''
-    export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
-  '' + lib.optionalString stdenv.isDarwin ''
-    export NIX_LDFLAGS+=" -no_dtrace_dof"
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
-  '' + lib.optionalString targetPlatform.isMusl ''
-      echo "patching llvm-targets for musl targets..."
-      echo "Cloning these existing '*-linux-gnu*' targets:"
-      grep linux-gnu llvm-targets | sed 's/^/  /'
-      echo "(go go gadget sed)"
-      sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
-      echo "llvm-targets now contains these '*-linux-musl*' targets:"
-      grep linux-musl llvm-targets | sed 's/^/  /'
-
-      echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
-      # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
-      for x in configure aclocal.m4; do
-        substituteInPlace $x \
-          --replace '*-android*|*-gnueabi*)' \
-                    '*-android*|*-gnueabi*|*-musleabi*)'
-      done
-  '';
-
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ]
-    ++ lib.optional (targetPlatform != hostPlatform) "target";
-  # `--with` flags for libraries needed for RTS linker
-  configureFlags = [
-    "--datadir=$doc/share/doc/ghc"
-    "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
-  ] ++ lib.optionals (libffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetPackages.libffi.dev}/include" "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
-    "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
-    "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
-  ] ++ lib.optionals (targetPlatform != hostPlatform) [
-    "--enable-bootstrap-with-devel-snapshot"
-  ] ++ lib.optionals useLdGold [
-    "CFLAGS=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
-  ] ++ lib.optionals (disableLargeAddressSpace) [
-    "--disable-large-address-space"
-  ];
-
-  # Make sure we never relax`$PATH` and hooks support for compatibility.
-  strictDeps = true;
-
-  # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
-  dontAddExtraLibs = true;
-
-  nativeBuildInputs = [
-    perl autoconf automake m4 python3 sphinx
-    ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
-  ];
-
-  # For building runtime libs
-  depsBuildTarget = toolsForTarget;
-
-  buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
-
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
-  depsTargetTarget = map lib.getDev (libDeps targetPlatform);
-  depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
-
-  # required, because otherwise all symbols from HSffi.o are stripped, and
-  # that in turn causes GHCi to abort
-  stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
-
-  # See #63511 - the only unstripped file is the debug rts which isn't meant to
-  # be stripped.
-  dontStrip = true;
-
-  checkTarget = "test";
-
-  hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
-
-  postInstall = ''
-    # Install the bash completion file.
-    install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
-    done
-  ''
-  # Temporary work-around for https://github.com/NixOS/nixpkgs/issues/66277
-  + lib.optionalString hostPlatform.isAarch64 ''
-    rm -rf "$doc/share/doc/ghc/html/libraries"
-  '';
-
-  passthru = {
-    inherit bootPkgs targetPrefix;
-
-    inherit llvmPackages;
-    inherit enableShared;
-
-    # Our Cabal compiler name
-    haskellCompilerName = "ghc-${version}";
-  };
-
-  meta = {
-    homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
-    maintainers = with lib.maintainers; [ marcweber andres peti ];
-    timeout = 24 * 3600;
-    inherit (ghc.meta) license platforms;
-  };
-
-} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
-  dontPatchELF = true;
-  noAuditTmpdir = true;
-})
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix b/nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix
deleted file mode 100644
index 144e46459759..000000000000
--- a/nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix
+++ /dev/null
@@ -1,263 +0,0 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
-
-# build-tools
-, bootPkgs
-, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
-, bash
-
-, libiconv ? null, ncurses
-
-, # GHC can be built with system libffi or a bundled one.
-  libffi ? null
-
-, useLLVM ? !stdenv.targetPlatform.isx86
-, # LLVM is conceptually a run-time-only depedendency, but for
-  # non-x86, we need LLVM to bootstrap later stages, so it becomes a
-  # build-time dependency too.
-  buildLlvmPackages, llvmPackages
-
-, # If enabled, GHC will be built with the GPL-free but slower integer-simple
-  # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
-
-, # If enabled, use -fPIC when compiling static libs.
-  enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
-
-, # Whether to build dynamic libs for the standard library (on the target
-  # platform). Static libs are always built.
-  enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
-
-, # Whether to build terminfo.
-  enableTerminfo ? !stdenv.targetPlatform.isWindows
-
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
-    (if useLLVM then "perf-cross" else "perf-cross-ncg")
-
-, # Whether to disable the large address space allocator
-  # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
-  disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
-}:
-
-assert !enableIntegerSimple -> gmp != null;
-
-let
-  inherit (stdenv) buildPlatform hostPlatform targetPlatform;
-
-  inherit (bootPkgs) ghc;
-
-  # TODO(@Ericson2314) Make unconditional
-  targetPrefix = lib.optionalString
-    (targetPlatform != hostPlatform)
-    "${targetPlatform.config}-";
-
-  buildMK = dontStrip: ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
-    DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
-    INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  ''
-    # We only need to build stage1 on most cross-compilation because
-    # we will be running the compiler on the native system. In some
-    # situations, like native Musl compilation, we need the compiler
-    # to actually link to our new Libc. The iOS simulator is a special
-    # exception because we can’t actually run simulators binaries
-    # ourselves.
-  + lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
-    CrossCompilePrefix = ${targetPrefix}
-    HADDOCK_DOCS = NO
-    BUILD_SPHINX_HTML = NO
-    BUILD_SPHINX_PDF = NO
-  '' + lib.optionalString dontStrip ''
-    STRIP_CMD = :
-  '' + lib.optionalString enableRelocatedStaticLibs ''
-    GhcLibHcOpts += -fPIC
-    GhcRtsHcOpts += -fPIC
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    EXTRA_CC_OPTS += -std=gnu99
-  '';
-
-  # Splicer will pull out correct variations
-  libDeps = platform: lib.optional enableTerminfo ncurses
-    ++ [libffi]
-    ++ lib.optional (!enableIntegerSimple) gmp
-    ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
-
-  toolsForTarget = [
-    pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
-
-  targetCC = builtins.head toolsForTarget;
-
-  # ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
-  # see #84670 and #49071 for more background.
-  useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
-
-in
-stdenv.mkDerivation (rec {
-  version = "8.8.2";
-  name = "${targetPrefix}ghc-${version}";
-
-  src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
-    sha256 = "02qa6wgjpxgakg7hv4zfdlrx9k7zxa5i02wnr6y9fsv8j16sbkh1";
-  };
-
-  enableParallelBuilding = true;
-
-  outputs = [ "out" "doc" ];
-
-  patches = [
-    # See upstream patch at
-    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
-    # from source distributions, the auto-generated configure script needs to be
-    # patched as well, therefore we use an in-tree patch instead of pulling the
-    # upstream patch. Don't forget to check backport status of the upstream patch
-    # when adding new GHC releases in nixpkgs.
-    ./respect-ar-path.patch
-  ];
-
-  postPatch = "patchShebangs .";
-
-  # GHC is a bit confused on its cross terminology.
-  preConfigure = ''
-    for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
-      export "''${env#TARGET_}=''${!env}"
-    done
-    # GHC is a bit confused on its cross terminology, as these would normally be
-    # the *host* tools.
-    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
-    export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
-    # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
-    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
-    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
-    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
-    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
-    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
-
-    echo -n "${buildMK dontStrip}" > mk/build.mk
-    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
-  '' + lib.optionalString (!stdenv.isDarwin) ''
-    export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
-  '' + lib.optionalString stdenv.isDarwin ''
-    export NIX_LDFLAGS+=" -no_dtrace_dof"
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
-  '' + lib.optionalString targetPlatform.isMusl ''
-      echo "patching llvm-targets for musl targets..."
-      echo "Cloning these existing '*-linux-gnu*' targets:"
-      grep linux-gnu llvm-targets | sed 's/^/  /'
-      echo "(go go gadget sed)"
-      sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
-      echo "llvm-targets now contains these '*-linux-musl*' targets:"
-      grep linux-musl llvm-targets | sed 's/^/  /'
-
-      echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
-      # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
-      for x in configure aclocal.m4; do
-        substituteInPlace $x \
-          --replace '*-android*|*-gnueabi*)' \
-                    '*-android*|*-gnueabi*|*-musleabi*)'
-      done
-  '';
-
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ]
-    ++ lib.optional (targetPlatform != hostPlatform) "target";
-
-  # `--with` flags for libraries needed for RTS linker
-  configureFlags = [
-    "--datadir=$doc/share/doc/ghc"
-    "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
-  ] ++ lib.optionals (libffi != null) [
-    "--with-system-libffi"
-    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
-    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
-    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
-    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
-    "--with-iconv-includes=${libiconv}/include"
-    "--with-iconv-libraries=${libiconv}/lib"
-  ] ++ lib.optionals (targetPlatform != hostPlatform) [
-    "--enable-bootstrap-with-devel-snapshot"
-  ] ++ lib.optionals useLdGold [
-    "CFLAGS=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
-  ] ++ lib.optionals (disableLargeAddressSpace) [
-    "--disable-large-address-space"
-  ];
-
-  # Make sure we never relax`$PATH` and hooks support for compatibility.
-  strictDeps = true;
-
-  # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
-  dontAddExtraLibs = true;
-
-  nativeBuildInputs = [
-    perl autoconf automake m4 python3 sphinx
-    ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
-  ];
-
-  # For building runtime libs
-  depsBuildTarget = toolsForTarget;
-
-  buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
-
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
-  depsTargetTarget = map lib.getDev (libDeps targetPlatform);
-  depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
-
-  # required, because otherwise all symbols from HSffi.o are stripped, and
-  # that in turn causes GHCi to abort
-  stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
-
-  checkTarget = "test";
-
-  hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
-
-  postInstall = ''
-    # Install the bash completion file.
-    install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
-    done
-  '';
-
-  passthru = {
-    inherit bootPkgs targetPrefix;
-
-    inherit llvmPackages;
-    inherit enableShared;
-
-    # Our Cabal compiler name
-    haskellCompilerName = "ghc-${version}";
-  };
-
-  meta = {
-    homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
-    maintainers = with lib.maintainers; [ marcweber andres peti ];
-    timeout = 24 * 3600;
-    inherit (ghc.meta) license platforms;
-  };
-
-  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
-
-} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
-  dontPatchELF = true;
-  noAuditTmpdir = true;
-})
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.8.3.nix b/nixpkgs/pkgs/development/compilers/ghc/8.8.3.nix
deleted file mode 100644
index 9e99207d9aaa..000000000000
--- a/nixpkgs/pkgs/development/compilers/ghc/8.8.3.nix
+++ /dev/null
@@ -1,268 +0,0 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
-
-# build-tools
-, bootPkgs
-, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
-, bash
-
-, libiconv ? null, ncurses
-
-, # GHC can be built with system libffi or a bundled one.
-  libffi ? null
-
-, useLLVM ? !stdenv.targetPlatform.isx86
-, # LLVM is conceptually a run-time-only depedendency, but for
-  # non-x86, we need LLVM to bootstrap later stages, so it becomes a
-  # build-time dependency too.
-  buildLlvmPackages, llvmPackages
-
-, # If enabled, GHC will be built with the GPL-free but slower integer-simple
-  # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
-
-, # If enabled, use -fPIC when compiling static libs.
-  enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
-
-  # aarch64 outputs otherwise exceed 2GB limit
-, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
-
-, # Whether to build dynamic libs for the standard library (on the target
-  # platform). Static libs are always built.
-  enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
-
-, # Whether to build terminfo.
-  enableTerminfo ? !stdenv.targetPlatform.isWindows
-
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
-    (if useLLVM then "perf-cross" else "perf-cross-ncg")
-
-, # Whether to disable the large address space allocator
-  # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
-  disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
-}:
-
-assert !enableIntegerSimple -> gmp != null;
-
-let
-  inherit (stdenv) buildPlatform hostPlatform targetPlatform;
-
-  inherit (bootPkgs) ghc;
-
-  # TODO(@Ericson2314) Make unconditional
-  targetPrefix = lib.optionalString
-    (targetPlatform != hostPlatform)
-    "${targetPlatform.config}-";
-
-  buildMK = dontStrip: ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
-    DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
-    INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  ''
-    # We only need to build stage1 on most cross-compilation because
-    # we will be running the compiler on the native system. In some
-    # situations, like native Musl compilation, we need the compiler
-    # to actually link to our new Libc. The iOS simulator is a special
-    # exception because we can’t actually run simulators binaries
-    # ourselves.
-  + lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
-    CrossCompilePrefix = ${targetPrefix}
-    HADDOCK_DOCS = NO
-    BUILD_SPHINX_HTML = NO
-    BUILD_SPHINX_PDF = NO
-  '' + lib.optionalString dontStrip ''
-    STRIP_CMD = :
-  '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
-  '' + lib.optionalString enableRelocatedStaticLibs ''
-    GhcLibHcOpts += -fPIC
-    GhcRtsHcOpts += -fPIC
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    EXTRA_CC_OPTS += -std=gnu99
-  '';
-
-  # Splicer will pull out correct variations
-  libDeps = platform: lib.optional enableTerminfo ncurses
-    ++ [libffi]
-    ++ lib.optional (!enableIntegerSimple) gmp
-    ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
-
-  toolsForTarget = [
-    pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
-
-  targetCC = builtins.head toolsForTarget;
-
-  # ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
-  # see #84670 and #49071 for more background.
-  useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
-
-in
-stdenv.mkDerivation (rec {
-  version = "8.8.3";
-  name = "${targetPrefix}ghc-${version}";
-
-  src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
-    sha256 = "128g932i3wix6ic03v04nh5755vyjiidzri9iybwad72yfmc1p70";
-  };
-
-  enableParallelBuilding = true;
-
-  outputs = [ "out" "doc" ];
-
-  patches = [
-    # See upstream patch at
-    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
-    # from source distributions, the auto-generated configure script needs to be
-    # patched as well, therefore we use an in-tree patch instead of pulling the
-    # upstream patch. Don't forget to check backport status of the upstream patch
-    # when adding new GHC releases in nixpkgs.
-    ./respect-ar-path.patch
-  ];
-
-  postPatch = "patchShebangs .";
-
-  # GHC is a bit confused on its cross terminology.
-  preConfigure = ''
-    for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
-      export "''${env#TARGET_}=''${!env}"
-    done
-    # GHC is a bit confused on its cross terminology, as these would normally be
-    # the *host* tools.
-    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
-    export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
-    # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
-    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
-    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
-    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
-    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
-    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
-
-    echo -n "${buildMK dontStrip}" > mk/build.mk
-    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
-  '' + lib.optionalString (!stdenv.isDarwin) ''
-    export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
-  '' + lib.optionalString stdenv.isDarwin ''
-    export NIX_LDFLAGS+=" -no_dtrace_dof"
-  '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
-    sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
-  '' + lib.optionalString targetPlatform.isMusl ''
-      echo "patching llvm-targets for musl targets..."
-      echo "Cloning these existing '*-linux-gnu*' targets:"
-      grep linux-gnu llvm-targets | sed 's/^/  /'
-      echo "(go go gadget sed)"
-      sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
-      echo "llvm-targets now contains these '*-linux-musl*' targets:"
-      grep linux-musl llvm-targets | sed 's/^/  /'
-
-      echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
-      # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
-      for x in configure aclocal.m4; do
-        substituteInPlace $x \
-          --replace '*-android*|*-gnueabi*)' \
-                    '*-android*|*-gnueabi*|*-musleabi*)'
-      done
-  '';
-
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ]
-    ++ lib.optional (targetPlatform != hostPlatform) "target";
-
-  # `--with` flags for libraries needed for RTS linker
-  configureFlags = [
-    "--datadir=$doc/share/doc/ghc"
-    "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
-  ] ++ lib.optionals (libffi != null) [
-    "--with-system-libffi"
-    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
-    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
-    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
-    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
-  ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
-    "--with-iconv-includes=${libiconv}/include"
-    "--with-iconv-libraries=${libiconv}/lib"
-  ] ++ lib.optionals (targetPlatform != hostPlatform) [
-    "--enable-bootstrap-with-devel-snapshot"
-  ] ++ lib.optionals useLdGold [
-    "CFLAGS=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
-    "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
-  ] ++ lib.optionals (disableLargeAddressSpace) [
-    "--disable-large-address-space"
-  ];
-
-  # Make sure we never relax`$PATH` and hooks support for compatibility.
-  strictDeps = true;
-
-  # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
-  dontAddExtraLibs = true;
-
-  nativeBuildInputs = [
-    perl autoconf automake m4 python3 sphinx
-    ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
-  ];
-
-  # For building runtime libs
-  depsBuildTarget = toolsForTarget;
-
-  buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
-
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
-  depsTargetTarget = map lib.getDev (libDeps targetPlatform);
-  depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
-
-  # required, because otherwise all symbols from HSffi.o are stripped, and
-  # that in turn causes GHCi to abort
-  stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
-
-  checkTarget = "test";
-
-  hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
-
-  postInstall = ''
-    # Install the bash completion file.
-    install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
-    done
-  '';
-
-  passthru = {
-    inherit bootPkgs targetPrefix;
-
-    inherit llvmPackages;
-    inherit enableShared;
-
-    # Our Cabal compiler name
-    haskellCompilerName = "ghc-${version}";
-  };
-
-  meta = {
-    homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
-    maintainers = with lib.maintainers; [ marcweber andres peti ];
-    timeout = 24 * 3600;
-    inherit (ghc.meta) license platforms;
-  };
-
-  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
-
-} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
-  dontPatchELF = true;
-  noAuditTmpdir = true;
-})
diff --git a/nixpkgs/pkgs/development/compilers/gleam/default.nix b/nixpkgs/pkgs/development/compilers/gleam/default.nix
index 78a335f1b7be..474a960d35f2 100644
--- a/nixpkgs/pkgs/development/compilers/gleam/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gleam/default.nix
@@ -1,22 +1,22 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "0.13.2";
+  version = "0.14.4";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ka1GxukX3HR40fMeiiXHguyPKrpGngG2tXDColR7eQA=";
+    sha256 = "sha256-iW4mH9zLJzD+E+H/b0NAbPWzfSbDmRpirDwrLlyZppI=";
   };
 
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ openssl ] ++
-    lib.optionals stdenv.isDarwin [ Security ];
+    lib.optionals stdenv.isDarwin [ Security libiconv ];
 
-  cargoSha256 = "sha256-/l54ezS68loljKNh7AdYMIuCiyIbsMI3jqD9ktjZLfc=";
+  cargoSha256 = "sha256-ErLwrve2Fpyg9JaH3y7VIYuFcOPVP++XAIrRvv5dGm0=";
 
   meta = with lib; {
     description = "A statically typed language for the Erlang VM";
diff --git a/nixpkgs/pkgs/development/compilers/gnu-smalltalk/default.nix b/nixpkgs/pkgs/development/compilers/gnu-smalltalk/default.nix
index cd33baad993b..e608a25462cc 100644
--- a/nixpkgs/pkgs/development/compilers/gnu-smalltalk/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gnu-smalltalk/default.nix
@@ -1,6 +1,6 @@
 { config, lib, stdenv, fetchurl, pkg-config, libtool
 , zip, libffi, libsigsegv, readline, gmp
-, gnutls, gnome2, cairo, SDL, sqlite
+, gnutls, gtk2, cairo, SDL, sqlite
 , emacsSupport ? config.emacsSupport or false, emacs ? null }:
 
 assert emacsSupport -> (emacs != null);
@@ -29,7 +29,7 @@ in stdenv.mkDerivation rec {
   # http://smalltalk.gnu.org/download
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    libtool zip libffi libsigsegv-shared readline gmp gnutls gnome2.gtk
+    libtool zip libffi libsigsegv-shared readline gmp gnutls gtk2
     cairo SDL sqlite
   ]
   ++ lib.optional emacsSupport emacs;
diff --git a/nixpkgs/pkgs/development/compilers/go/1.14.nix b/nixpkgs/pkgs/development/compilers/go/1.14.nix
index 174c299b15b7..92c1cbdfc18b 100644
--- a/nixpkgs/pkgs/development/compilers/go/1.14.nix
+++ b/nixpkgs/pkgs/development/compilers/go/1.14.nix
@@ -4,15 +4,20 @@
 , buildPackages
 , pkgsBuildTarget
 , fetchpatch
+, callPackage
 }:
 
 let
 
   inherit (lib) optionals optionalString;
 
+  version = "1.14.15";
+
+  go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
+
   goBootstrap = runCommand "go-bootstrap" {} ''
     mkdir $out
-    cp -rf ${buildPackages.go_bootstrap}/* $out/
+    cp -rf ${go_bootstrap}/* $out/
     chmod -R u+w $out
     find $out -name "*.c" -delete
     cp -rf $out/bin/* $out/share/go/bin/
@@ -36,11 +41,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.14.14";
+  inherit version;
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "0vx7r0bb1a500znnnh7v3wgw22ly3p2x06vzyi9hiblgylrby132";
+    sha256 = "0jci03f5z09xibbdqg4lnv2k3crhal1phzwr6lc4ajp514i3plby";
   };
 
   # perl is used for testing go vet
@@ -145,6 +150,13 @@ stdenv.mkDerivation rec {
     ./skip-nohup-tests.patch
     ./go_no_vendor_checks-1_14.patch
 
+    # support TZ environment variable starting with colon
+    (fetchpatch {
+      name = "tz-support-colon.patch";
+      url = "https://github.com/golang/go/commit/58fe2cd4022c77946ce4b598cf3e30ccc8367143.patch";
+      sha256 = "0vphwiqrm0qykfj3rfayr65qzk22fksg7qkamvaz0lmf6fqvbd2f";
+    })
+
     # fix rare TestDontCacheBrokenHTTP2Conn failure
     (fetchpatch {
       url = "https://github.com/golang/go/commit/ea1437a8cdf6bb3c2d2447833a5d06dbd75f7ae4.patch";
@@ -253,5 +265,8 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = teams.golang.members;
     platforms = platforms.linux ++ platforms.darwin;
+    knownVulnerabilities = [
+      "Support for Go 1.14 ended with the release of Go 1.16: https://golang.org/doc/devel/release.html#policy"
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/go/1.15.nix b/nixpkgs/pkgs/development/compilers/go/1.15.nix
index c3aef549e680..7f7870b7e06d 100644
--- a/nixpkgs/pkgs/development/compilers/go/1.15.nix
+++ b/nixpkgs/pkgs/development/compilers/go/1.15.nix
@@ -4,15 +4,20 @@
 , buildPackages
 , pkgsBuildTarget
 , fetchpatch
+, callPackage
 }:
 
 let
 
   inherit (lib) optionals optionalString;
 
+  version = "1.15.11";
+
+  go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
+
   goBootstrap = runCommand "go-bootstrap" {} ''
     mkdir $out
-    cp -rf ${buildPackages.go_bootstrap}/* $out/
+    cp -rf ${go_bootstrap}/* $out/
     chmod -R u+w $out
     find $out -name "*.c" -delete
     cp -rf $out/bin/* $out/share/go/bin/
@@ -36,11 +41,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.15.7";
+  inherit version;
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "1g1a39y1cnvw3y0bjwjms55cz0s9icm8myrgxi295jwfznmb6cc6";
+    sha256 = "1rb1s130yqy80kcl140k5a53xhvw4fmrpmclvqygcv67si0j8nzj";
   };
 
   # perl is used for testing go vet
@@ -153,6 +158,13 @@ stdenv.mkDerivation rec {
     ./skip-nohup-tests.patch
     ./skip-cgo-tests-1.15.patch
     ./go_no_vendor_checks.patch
+
+    # support TZ environment variable starting with colon
+    (fetchpatch {
+      name = "tz-support-colon.patch";
+      url = "https://github.com/golang/go/commit/58fe2cd4022c77946ce4b598cf3e30ccc8367143.patch";
+      sha256 = "0vphwiqrm0qykfj3rfayr65qzk22fksg7qkamvaz0lmf6fqvbd2f";
+    })
   ] ++ [
     # breaks under load: https://github.com/golang/go/issues/25628
     (if stdenv.isAarch32
diff --git a/nixpkgs/pkgs/development/compilers/go/1.16.nix b/nixpkgs/pkgs/development/compilers/go/1.16.nix
new file mode 100644
index 000000000000..d6690a71088e
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/go/1.16.nix
@@ -0,0 +1,267 @@
+{ lib, stdenv, fetchurl, tzdata, iana-etc, runCommand
+, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation, xcbuild
+, mailcap, runtimeShell
+, buildPackages
+, pkgsBuildTarget
+, fetchpatch
+, callPackage
+}:
+
+let
+
+  inherit (lib) optionals optionalString;
+
+  version = "1.16.2";
+
+  go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
+
+  goBootstrap = runCommand "go-bootstrap" {} ''
+    mkdir $out
+    cp -rf ${go_bootstrap}/* $out/
+    chmod -R u+w $out
+    find $out -name "*.c" -delete
+    cp -rf $out/bin/* $out/share/go/bin/
+  '';
+
+  goarch = platform: {
+    "i686" = "386";
+    "x86_64" = "amd64";
+    "aarch64" = "arm64";
+    "arm" = "arm";
+    "armv5tel" = "arm";
+    "armv6l" = "arm";
+    "armv7l" = "arm";
+    "powerpc64le" = "ppc64le";
+  }.${platform.parsed.cpu.name} or (throw "Unsupported system");
+
+  # 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;
+in
+
+stdenv.mkDerivation rec {
+  pname = "go";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://dl.google.com/go/go${version}.src.tar.gz";
+    sha256 = "1sl33wkhp6pi9f15f6khp5a7l7xwmpc3sp1zmji8pjr3g8l19jip";
+  };
+
+  # perl is used for testing go vet
+  nativeBuildInputs = [ perl which pkg-config patch procps ];
+  buildInputs = [ cacert pcre ]
+    ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
+    ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
+
+  propagatedBuildInputs = optionals stdenv.isDarwin [ xcbuild ];
+
+  depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ];
+
+  hardeningDisable = [ "all" ];
+
+  prePatch = ''
+    patchShebangs ./ # replace /bin/bash
+
+    # This source produces shell script at run time,
+    # and thus it is not corrected by patchShebangs.
+    substituteInPlace misc/cgo/testcarchive/carchive_test.go \
+      --replace '#!/usr/bin/env bash' '#!${runtimeShell}'
+
+    # Patch the mimetype database location which is missing on NixOS.
+    # but also allow static binaries built with NixOS to run outside nix
+    sed -i 's,\"/etc/mime.types,"${mailcap}/etc/mime.types\"\,\n\t&,' src/mime/type_unix.go
+
+    # Disabling the 'os/http/net' tests (they want files not available in
+    # chroot builds)
+    rm src/net/{listen,parse}_test.go
+    rm src/syscall/exec_linux_test.go
+
+    # !!! substituteInPlace does not seems to be effective.
+    # The os test wants to read files in an existing path. Just don't let it be /usr/bin.
+    sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
+    sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
+    # Fails on aarch64
+    sed -i '/TestFallocate/aif true \{ return\; \}' src/cmd/link/internal/ld/fallocate_test.go
+    # Skip this test since ssl patches mess it up.
+    sed -i '/TestLoadSystemCertsLoadColonSeparatedDirs/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
+    # Disable another PIE test which breaks.
+    sed -i '/TestTrivialPIE/aif true \{ return\; \}' misc/cgo/testshared/shared_test.go
+    # Disable the BuildModePie test
+    sed -i '/TestBuildmodePIE/aif true \{ return\; \}' src/cmd/go/go_test.go
+    # Disable the unix socket test
+    sed -i '/TestShutdownUnix/aif true \{ return\; \}' src/net/net_test.go
+    # Disable the hostname test
+    sed -i '/TestHostname/aif true \{ return\; \}' src/os/os_test.go
+    # ParseInLocation fails the test
+    sed -i '/TestParseInSydney/aif true \{ return\; \}' src/time/format_test.go
+    # Remove the api check as it never worked
+    sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
+    # Remove the coverage test as we have removed this utility
+    sed -i '/TestCoverageWithCgo/aif true \{ return\; \}' src/cmd/go/go_test.go
+    # Remove the timezone naming test
+    sed -i '/TestLoadFixed/aif true \{ return\; \}' src/time/time_test.go
+    # Remove disable setgid test
+    sed -i '/TestRespectSetgidDir/aif true \{ return\; \}' src/cmd/go/internal/work/build_test.go
+    # Remove cert tests that conflict with NixOS's cert resolution
+    sed -i '/TestEnvVars/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
+    # TestWritevError hangs sometimes
+    sed -i '/TestWritevError/aif true \{ return\; \}' src/net/writev_test.go
+    # TestVariousDeadlines fails sometimes
+    sed -i '/TestVariousDeadlines/aif true \{ return\; \}' src/net/timeout_test.go
+
+    sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
+    sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
+
+    # Disable cgo lookup tests not works, they depend on resolver
+    rm src/net/cgo_unix_test.go
+
+  '' + optionalString stdenv.isLinux ''
+    # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
+    # that run outside a nix server
+    sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
+
+  '' + optionalString stdenv.isAarch32 ''
+    echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
+  '' + optionalString stdenv.isDarwin ''
+    substituteInPlace src/race.bash --replace \
+      "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
+    sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
+    sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
+    sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
+
+    sed -i '/TestChdirAndGetwd/aif true \{ return\; \}' src/os/os_test.go
+    sed -i '/TestCredentialNoSetGroups/aif true \{ return\; \}' src/os/exec/exec_posix_test.go
+    sed -i '/TestRead0/aif true \{ return\; \}' src/os/os_test.go
+    sed -i '/TestSystemRoots/aif true \{ return\; \}' src/crypto/x509/root_darwin_test.go
+
+    sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/aif true \{ return\; \}' src/cmd/go/go_test.go
+    sed -i '/TestBuildDashIInstallsDependencies/aif true \{ return\; \}' src/cmd/go/go_test.go
+
+    sed -i '/TestDisasmExtld/aif true \{ return\; \}' src/cmd/objdump/objdump_test.go
+
+    sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
+
+    # TestCurrent fails because Current is not implemented on Darwin
+    sed -i 's/TestCurrent/testCurrent/g' src/os/user/user_test.go
+    sed -i 's/TestLookup/testLookup/g' src/os/user/user_test.go
+
+    touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
+  '';
+
+  patches = [
+    ./remove-tools-1.11.patch
+    ./ssl-cert-file-1.16.patch
+    ./remove-test-pie-1.15.patch
+    ./creds-test.patch
+    ./go-1.9-skip-flaky-19608.patch
+    ./go-1.9-skip-flaky-20072.patch
+    ./skip-external-network-tests-1.16.patch
+    ./skip-nohup-tests.patch
+    ./skip-cgo-tests-1.15.patch
+    ./go_no_vendor_checks-1.16.patch
+  ] ++ [
+    # breaks under load: https://github.com/golang/go/issues/25628
+    (if stdenv.isAarch32
+    then ./skip-test-extra-files-on-aarch32-1.14.patch
+    else ./skip-test-extra-files-on-386-1.14.patch)
+  ];
+
+  postPatch = ''
+    find . -name '*.orig' -exec rm {} ';'
+  '';
+
+  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 (stdenv.buildPlatform != stdenv.targetPlatform) then
+      "${targetCC}/bin/${targetCC.targetPrefix}cc"
+    else
+      null;
+  CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) 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;
+  # Hopefully avoids test timeouts on Hydra
+  GO_TEST_TIMEOUT_SCALE = 3;
+
+  # Indicate that we are running on build infrastructure
+  # Some tests assume things like home directories and users exists
+  GO_BUILDER_NAME = "nix";
+
+  GOROOT_BOOTSTRAP="${goBootstrap}/share/go";
+
+  postConfigure = ''
+    export GOCACHE=$TMPDIR/go-cache
+    # this is compiled into the binary
+    export GOROOT_FINAL=$out/share/go
+
+    export PATH=$(pwd)/bin:$PATH
+
+    ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
+    # 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
+  '';
+
+  postBuild = ''
+    (cd src && ./make.bash)
+  '';
+
+  doCheck = stdenv.hostPlatform == stdenv.targetPlatform && !stdenv.isDarwin;
+
+  checkPhase = ''
+    runHook preCheck
+    (cd src && HOME=$TMPDIR GOCACHE=$TMPDIR/go-cache ./run.bash --no-rebuild)
+    runHook postCheck
+  '';
+
+  preInstall = ''
+    rm -r pkg/obj
+    # 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 != stdenv.hostPlatform) then ''
+    mv bin/*_*/* bin
+    rmdir bin/*_*
+    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+      rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
+    ''}
+  '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
+    rm -rf bin/*_*
+    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+      rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
+    ''}
+  '' else "");
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $GOROOT_FINAL
+    cp -a bin pkg src lib misc api doc $GOROOT_FINAL
+    ln -s $GOROOT_FINAL/bin $out/bin
+    runHook postInstall
+  '';
+
+  disallowedReferences = [ goBootstrap ];
+
+  meta = with lib; {
+    homepage = "http://golang.org/";
+    description = "The Go Programming language";
+    license = licenses.bsd3;
+    maintainers = teams.golang.members;
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/go/1.4.nix b/nixpkgs/pkgs/development/compilers/go/1.4.nix
deleted file mode 100644
index ec3fd97da9b9..000000000000
--- a/nixpkgs/pkgs/development/compilers/go/1.4.nix
+++ /dev/null
@@ -1,93 +0,0 @@
-{ stdenv, lib, fetchurl, fetchpatch, tzdata, iana-etc, libcCross
-, pkg-config
-, pcre
-, Security }:
-
-let
-  libc = if stdenv ? cross then libcCross else stdenv.cc.libc;
-in
-
-stdenv.mkDerivation rec {
-  pname = "go";
-  version = "1.4-bootstrap-${builtins.substring 0 7 revision}";
-  revision = "bdd4b9503e47c2c38a9d0a9bb2f5d95ec5ff8ef6";
-
-  src = fetchurl {
-    url = "https://github.com/golang/go/archive/${revision}.tar.gz";
-    sha256 = "1zdyf883awaqdzm4r3fs76nbpiqx3iswl2p4qxclw2sl5vvynas5";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ pcre ];
-  depsTargetTargetPropagated = lib.optional stdenv.isDarwin Security;
-
-  hardeningDisable = [ "all" ];
-
-  # The tests try to do stuff with 127.0.0.1 and localhost
-  __darwinAllowLocalNetworking = true;
-
-  # I'm not sure what go wants from its 'src', but the go installation manual
-  # describes an installation keeping the src.
-  preUnpack = ''
-    mkdir -p $out/share
-    cd $out/share
-  '';
-
-  prePatch = ''
-    # Ensure that the source directory is named go
-    cd ..
-    if [ ! -d go ]; then
-      mv * go
-    fi
-
-    cd go
-    patchShebangs ./ # replace /bin/bash
-
-    sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
-  '' + lib.optionalString stdenv.isLinux ''
-    # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
-    # that run outside a nix server
-    sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
-
-    # Find the loader dynamically
-    LOADER="$(find ${lib.getLib libc}/lib -name ld-linux\* | head -n 1)"
-
-    # Replace references to the loader
-    find src/cmd -name asm.c -exec sed -i "s,/lib/ld-linux.*\.so\.[0-9],$LOADER," {} \;
-  '';
-
-  patches = [
-    ./remove-tools-1.4.patch
-  ];
-
-  GOOS = if stdenv.isDarwin then "darwin" else "linux";
-  GOARCH = if stdenv.isDarwin then "amd64"
-           else if stdenv.hostPlatform.system == "i686-linux" then "386"
-           else if stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
-           else if stdenv.isAarch32 then "arm"
-           else throw "Unsupported system";
-  GOARM = lib.optionalString (stdenv.hostPlatform.system == "armv5tel-linux") "5";
-  GO386 = 387; # from Arch: don't assume sse2 on i686
-  CGO_ENABLED = 0;
-
-  # The go build actually checks for CC=*/clang and does something different, so we don't
-  # just want the generic `cc` here.
-  CC = if stdenv.isDarwin then "clang" else "cc";
-
-  installPhase = ''
-    mkdir -p "$out/bin"
-    export GOROOT="$(pwd)/"
-    export GOBIN="$out/bin"
-    export PATH="$GOBIN:$PATH"
-    cd ./src
-    ./all.bash
-  '';
-
-  meta = with lib; {
-    homepage = "http://golang.org/";
-    description = "The Go Programming language";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ cstrahan ];
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/go/2-dev.nix b/nixpkgs/pkgs/development/compilers/go/2-dev.nix
index 3e09f7c0fad2..2bdf6a4950cc 100644
--- a/nixpkgs/pkgs/development/compilers/go/2-dev.nix
+++ b/nixpkgs/pkgs/development/compilers/go/2-dev.nix
@@ -4,15 +4,18 @@
 , buildPackages
 , pkgsBuildTarget
 , fetchpatch
+, callPackage
 }:
 
 let
 
   inherit (lib) optionals optionalString;
 
+  go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
+
   goBootstrap = runCommand "go-bootstrap" {} ''
     mkdir $out
-    cp -rf ${buildPackages.go_bootstrap}/* $out/
+    cp -rf ${go_bootstrap}/* $out/
     chmod -R u+w $out
     find $out -name "*.c" -delete
     cp -rf $out/bin/* $out/share/go/bin/
diff --git a/nixpkgs/pkgs/development/compilers/go/binary.nix b/nixpkgs/pkgs/development/compilers/go/binary.nix
new file mode 100644
index 000000000000..7eb8f8f7b984
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/go/binary.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchurl, version, hashes }:
+let
+  toGoKernel = platform:
+    if platform.isDarwin then "darwin"
+    else platform.parsed.kernel.name;
+
+  toGoCPU = platform: {
+    "i686" = "386";
+    "x86_64" = "amd64";
+    "aarch64" = "arm64";
+    "armv6l" = "armv6l";
+    "armv7l" = "armv6l";
+    "powerpc64le" = "ppc64le";
+  }.${platform.parsed.cpu.name} or (throw "Unsupported CPU ${platform.parsed.cpu.name}");
+
+  toGoPlatform = platform: "${toGoKernel platform}-${toGoCPU platform}";
+
+  platform = toGoPlatform stdenv.hostPlatform;
+in
+stdenv.mkDerivation rec {
+  name = "go-${version}-${platform}-bootstrap";
+
+  src = fetchurl {
+    url = "https://golang.org/dl/go${version}.${platform}.tar.gz";
+    sha256 = hashes.${platform} or (throw "Missing Go bootstrap hash for platform ${platform}");
+  };
+
+  # We must preserve the signature on Darwin
+  dontStrip = stdenv.hostPlatform.isDarwin;
+
+  installPhase = ''
+    mkdir -p $out/share/go $out/bin
+    mv bin/* $out/bin
+    cp -r . $out/share/go
+    ${lib.optionalString stdenv.isLinux (''
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      $out/bin/go
+    '')}
+  '' ;
+}
diff --git a/nixpkgs/pkgs/development/compilers/go/bootstrap.nix b/nixpkgs/pkgs/development/compilers/go/bootstrap.nix
new file mode 100644
index 000000000000..71573b0bdd22
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/go/bootstrap.nix
@@ -0,0 +1,15 @@
+{ callPackage }:
+callPackage ./binary.nix {
+  version = "1.16";
+  hashes = {
+    # Use `print-hashes.sh ${version}` to generate the list below
+    darwin-amd64 = "6000a9522975d116bf76044967d7e69e04e982e9625330d9a539a8b45395f9a8";
+    darwin-arm64 = "4dac57c00168d30bbd02d95131d5de9ca88e04f2c5a29a404576f30ae9b54810";
+    linux-386 = "ea435a1ac6d497b03e367fdfb74b33e961d813883468080f6e239b3b03bea6aa";
+    linux-amd64 = "013a489ebb3e24ef3d915abe5b94c3286c070dfe0818d5bca8108f1d6e8440d2";
+    linux-arm64 = "3770f7eb22d05e25fbee8fb53c2a4e897da043eb83c69b9a14f8d98562cd8098";
+    linux-armv6l = "d1d9404b1dbd77afa2bdc70934e10fbfcf7d785c372efc29462bb7d83d0a32fd";
+    linux-ppc64le = "27a1aaa988e930b7932ce459c8a63ad5b3333b3a06b016d87ff289f2a11aacd6";
+    linux-s390x = "be4c9e4e2cf058efc4e3eb013a760cb989ddc4362f111950c990d1c63b27ccbe";
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/go/go_no_vendor_checks-1.16.patch b/nixpkgs/pkgs/development/compilers/go/go_no_vendor_checks-1.16.patch
new file mode 100644
index 000000000000..9edf6efa8517
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/go/go_no_vendor_checks-1.16.patch
@@ -0,0 +1,23 @@
+Starting from go1.14, go verifes that vendor/modules.txt matches the requirements
+and replacements listed in the main module go.mod file, and it is a hard failure if
+vendor/modules.txt is missing.
+
+Relax module consistency checks and switch back to pre go1.14 behaviour if
+vendor/modules.txt is missing regardless of go version requirement in go.mod.
+
+This has been ported from FreeBSD: https://reviews.freebsd.org/D24122
+See https://github.com/golang/go/issues/37948 for discussion.
+
+diff --git a/src/cmd/go/internal/modload/vendor.go b/src/cmd/go/internal/modload/vendor.go
+index d8fd91f1fe..8bc08e6fed 100644
+--- a/src/cmd/go/internal/modload/vendor.go
++++ b/src/cmd/go/internal/modload/vendor.go
+@@ -133,7 +133,7 @@ func checkVendorConsistency() {
+ 	readVendorList()
+
+ 	pre114 := false
+-	if semver.Compare(index.goVersionV, "v1.14") < 0 {
++	if semver.Compare(index.goVersionV, "v1.14") < 0 || (os.Getenv("GO_NO_VENDOR_CHECKS") == "1" && len(vendorMeta) == 0) {
+ 		// Go versions before 1.14 did not include enough information in
+ 		// vendor/modules.txt to check for consistency.
+ 		// If we know that we're on an earlier version, relax the consistency check.
diff --git a/nixpkgs/pkgs/development/compilers/go/print-hashes.sh b/nixpkgs/pkgs/development/compilers/go/print-hashes.sh
new file mode 100755
index 000000000000..97be7d189ad8
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/go/print-hashes.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+BASEURL=https://golang.org/dl/
+VERSION=${1:-}
+
+if [[ -z $VERSION ]]
+then
+    echo "No version supplied"
+    exit -1
+fi
+
+curl -s "${BASEURL}?mode=json&include=all" | \
+    jq '.[] | select(.version == "go'${VERSION}'")' | \
+    jq -r '.files[] | select(.kind == "archive" and (.os == "linux" or .os == "darwin")) | (.os + "-" + .arch + " = \"" + .sha256 + "\";")'
diff --git a/nixpkgs/pkgs/development/compilers/go/remove-tools-1.4.patch b/nixpkgs/pkgs/development/compilers/go/remove-tools-1.4.patch
deleted file mode 100644
index 807ab8e089c1..000000000000
--- a/nixpkgs/pkgs/development/compilers/go/remove-tools-1.4.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-diff --git a/misc/makerelease/makerelease.go b/misc/makerelease/makerelease.go
-index 3b511b1..a46ebd8 100644
---- a/misc/makerelease/makerelease.go
-+++ b/misc/makerelease/makerelease.go
-@@ -65,9 +65,6 @@ const (
- // These must be the command that cmd/go knows to install to $GOROOT/bin
- // or $GOROOT/pkg/tool.
- var toolPaths = []string{
--	"golang.org/x/tools/cmd/cover",
--	"golang.org/x/tools/cmd/godoc",
--	"golang.org/x/tools/cmd/vet",
- }
- 
- var preBuildCleanFiles = []string{
-diff --git a/src/cmd/dist/build.c b/src/cmd/dist/build.c
-index b6c61b4..2006bc2 100644
---- a/src/cmd/dist/build.c
-+++ b/src/cmd/dist/build.c
-@@ -210,7 +210,9 @@ init(void)
- 	workdir = xworkdir();
- 	xatexit(rmworkdir);
- 
--	bpathf(&b, "%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch);
-+	xgetenv(&b, "GOTOOLDIR");
-+	if (b.len == 0)
-+		bpathf(&b, "%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch);
- 	tooldir = btake(&b);
- 
- 	bfree(&b);
-diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go
-index b71feb7..8468ea8 100644
---- a/src/cmd/go/pkg.go
-+++ b/src/cmd/go/pkg.go
-@@ -401,9 +401,9 @@ var goTools = map[string]targetDir{
- 	"cmd/pack":                             toTool,
- 	"cmd/pprof":                            toTool,
- 	"cmd/yacc":                             toTool,
--	"golang.org/x/tools/cmd/cover":         toTool,
--	"golang.org/x/tools/cmd/godoc":         toBin,
--	"golang.org/x/tools/cmd/vet":           toTool,
-+	"nixos.org/x/tools/cmd/cover":          toTool,
-+	"nixos.org/x/tools/cmd/godoc":          toBin,
-+	"nixos.org/x/tools/cmd/vet":            toTool,
- 	"code.google.com/p/go.tools/cmd/cover": stalePath,
- 	"code.google.com/p/go.tools/cmd/godoc": stalePath,
- 	"code.google.com/p/go.tools/cmd/vet":   stalePath,
-diff --git a/src/go/build/build.go b/src/go/build/build.go
-index 311ecb0..f151d8f 100644
---- a/src/go/build/build.go
-+++ b/src/go/build/build.go
-@@ -1367,7 +1367,7 @@ func init() {
- }
- 
- // ToolDir is the directory containing build tools.
--var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
-+var ToolDir = runtime.GOTOOLDIR()
- 
- // IsLocalImport reports whether the import path is
- // a local import path, like ".", "..", "./foo", or "../foo".
-diff --git a/src/runtime/extern.go b/src/runtime/extern.go
-index 6cc5df8..9a9a964 100644
---- a/src/runtime/extern.go
-+++ b/src/runtime/extern.go
-@@ -152,6 +152,17 @@ func GOROOT() string {
- 	return defaultGoroot
- }
- 
-+// GOTOOLDIR returns the root of the Go tree.
-+// It uses the GOTOOLDIR environment variable, if set,
-+// or else the root used during the Go build.
-+func GOTOOLDIR() string {
-+	s := gogetenv("GOTOOLDIR")
-+	if s != "" {
-+		return s
-+	}
-+	return GOROOT() + "/pkg/tool/" + GOOS + "_" + GOARCH
-+}
-+
- // Version returns the Go tree's version string.
- // It is either the commit hash and date at the time of the build or,
- // when possible, a release tag like "go1.3".
diff --git a/nixpkgs/pkgs/development/compilers/go/skip-external-network-tests-1.16.patch b/nixpkgs/pkgs/development/compilers/go/skip-external-network-tests-1.16.patch
new file mode 100644
index 000000000000..8f1eb6be7bb8
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/go/skip-external-network-tests-1.16.patch
@@ -0,0 +1,33 @@
+diff --git a/src/internal/testenv/testenv.go b/src/internal/testenv/testenv.go
+index c902b1404f..66016088a2 100644
+--- a/src/internal/testenv/testenv.go
++++ b/src/internal/testenv/testenv.go
+@@ -163,13 +163,15 @@ func MustHaveExecPath(t testing.TB, path string) {
+ // HasExternalNetwork reports whether the current system can use
+ // external (non-localhost) networks.
+ func HasExternalNetwork() bool {
+-	return !testing.Short() && runtime.GOOS != "js"
++	// Nix sandbox does not external network in sandbox
++	return false
+ }
+ 
+ // MustHaveExternalNetwork checks that the current system can use
+ // external (non-localhost) networks.
+ // If not, MustHaveExternalNetwork calls t.Skip with an explanation.
+ func MustHaveExternalNetwork(t testing.TB) {
++	t.Skipf("Nix sandbox does not have networking")
+ 	if runtime.GOOS == "js" {
+ 		t.Skipf("skipping test: no external network on %s", runtime.GOOS)
+ 	}
+diff --git a/src/net/dial_test.go b/src/net/dial_test.go
+index 57cf5554ad..d00be53b2c 100644
+--- a/src/net/dial_test.go
++++ b/src/net/dial_test.go
+@@ -990,6 +990,7 @@ func TestDialerControl(t *testing.T) {
+ // except that it won't skip testing on non-mobile builders.
+ func mustHaveExternalNetwork(t *testing.T) {
+ 	t.Helper()
++	t.Skipf("Nix sandbox does not have networking")
+ 	mobile := runtime.GOOS == "android" || runtime.GOOS == "ios"
+ 	if testenv.Builder() == "" || mobile {
+ 		testenv.MustHaveExternalNetwork(t)
diff --git a/nixpkgs/pkgs/development/compilers/go/ssl-cert-file-1.16.patch b/nixpkgs/pkgs/development/compilers/go/ssl-cert-file-1.16.patch
new file mode 100644
index 000000000000..f4bc16e5b8cb
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/go/ssl-cert-file-1.16.patch
@@ -0,0 +1,34 @@
+diff --git a/src/crypto/x509/root.go b/src/crypto/x509/root.go
+index ac92915128..fb1d70c735 100644
+--- a/src/crypto/x509/root.go
++++ b/src/crypto/x509/root.go
+@@ -6,7 +6,11 @@ package x509
+ 
+ //go:generate go run root_ios_gen.go -version 55161.140.3
+ 
+-import "sync"
++import (
++	"io/ioutil"
++	"os"
++	"sync"
++)
+ 
+ var (
+ 	once           sync.Once
+@@ -20,6 +24,16 @@ func systemRootsPool() *CertPool {
+ }
+ 
+ func initSystemRoots() {
++	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++		data, err := ioutil.ReadFile(file)
++		if err == nil {
++			roots := NewCertPool()
++			roots.AppendCertsFromPEM(data)
++			systemRoots = roots
++			return
++		}
++	}
++
+ 	systemRoots, systemRootsErr = loadSystemRoots()
+ 	if systemRootsErr != nil {
+ 		systemRoots = nil
diff --git a/nixpkgs/pkgs/development/compilers/gprolog/default.nix b/nixpkgs/pkgs/development/compilers/gprolog/default.nix
index 59f33db68cbd..87bf767f5bdc 100644
--- a/nixpkgs/pkgs/development/compilers/gprolog/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gprolog/default.nix
@@ -63,6 +63,6 @@ stdenv.mkDerivation rec {
     '';
 
     maintainers = [ lib.maintainers.peti ];
-    platforms = lib.platforms.gnu ++ lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/graalvm/community-edition.nix b/nixpkgs/pkgs/development/compilers/graalvm/community-edition.nix
index f3a03b364743..3a8fca2c1a05 100644
--- a/nixpkgs/pkgs/development/compilers/graalvm/community-edition.nix
+++ b/nixpkgs/pkgs/development/compilers/graalvm/community-edition.nix
@@ -1,56 +1,106 @@
-{ lib, stdenv, fetchurl, perl, unzip, glibc, zlib, setJavaClassPath, Foundation, openssl }:
+{ stdenv
+, lib
+, fetchurl
+, autoPatchelfHook
+, setJavaClassPath
+, makeWrapper
+# minimum dependencies
+, Foundation
+, alsaLib
+, fontconfig
+, freetype
+, glibc
+, openssl
+, perl
+, unzip
+, xorg
+, zlib
+# runtime dependencies
+, cups
+# runtime dependencies for GTK+ Look and Feel
+, gtkSupport ? true
+, cairo
+, glib
+, gtk3
+}:
 
 let
   platform = if stdenv.isDarwin then "darwin-amd64" else "linux-amd64";
+  runtimeDependencies = [
+    cups
+  ] ++ lib.optionals gtkSupport [
+    cairo glib gtk3
+  ];
+  runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
   common = javaVersion:
     let
       javaVersionPlatform = "${javaVersion}-${platform}";
       graalvmXXX-ce = stdenv.mkDerivation rec {
         pname = "graalvm${javaVersion}-ce";
-        version = "20.3.0";
+        version = "21.0.0";
         srcs = [
           (fetchurl {
-             sha256 = {  "8-linux-amd64"  = "195b20ivvv8ipjn3qq2313j8qf96ji93pqm99nvn20bq23wasp25";
-                        "11-linux-amd64"  = "1mdk1zhazvvh1fa01bzi5v5fxhvx592xmbakx0y1137vykbayyjm";
-                         "8-darwin-amd64" = "1rrs471204p71knyxpjxymdi8ws98ph2kf5j0knk529g0d24rs01";
-                        "11-darwin-amd64" = "008dl8dbf37mv4wahb9hbd6jp8svvmpy1rgsiqkn3i4hypxnkf12";
+             sha256 = {  "8-linux-amd64"  = "18q1plrpclp02rlwn3vvv2fcyspvqv2gkzn14f0b59pnladmlv1j";
+                        "11-linux-amd64"  = "1g1xjbr693rimdy2cy6jvz4vgnbnw76wa87xcmaszka206fmpnsc";
+                         "8-darwin-amd64" = "0giv8f7ybdykadzmxjy91i6njbdx6dclyx7g6vyhwk2l1cvxi4li";
+                        "11-darwin-amd64" = "1a8gjp6fp11ms05pd62h1x1ifkkr3wv0hrxic670v90bbps9lsqf";
                       }.${javaVersionPlatform};
              url    = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${version}/graalvm-ce-java${javaVersionPlatform}-${version}.tar.gz";
           })
           (fetchurl {
-             sha256 = {  "8-linux-amd64"  = "1rzbhllz28x5ps8n304v998hykr4m8z1gfg53ybi6laxhkbx3i13";
-                        "11-linux-amd64"  = "09ipdl1489xnbckwl6sl9y7zy7kp5qf5fgf3kgz5d69jrk2z6rvf";
-                         "8-darwin-amd64" = "1iy2943jbrarh8bm9wy15xk7prnskqwik2ham07a6ybp4j4b81xi";
-                        "11-darwin-amd64" = "0vk2grlirghzc78kvwg66w0xriy5p8qkcp7qx83i62d7sj0kvwnf";
+             sha256 = {  "8-linux-amd64"  = "0hpq2g9hc8b7j4d8a08kq1mnl6pl7a4kwaj0a3gka3d4m6r7cscg";
+                        "11-linux-amd64"  = "0z3hb2bf0lqzw760civ3h1wvx22a75n7baxc0l2i9h5wxas002y7";
+                         "8-darwin-amd64" = "1izbgl4hjg5jyi422xnkx006qnw163r1i1djf76q1plms40y01ph";
+                        "11-darwin-amd64" = "1d9z75gil0if74ndla9yw3xx9i2bfbcs32qa0z6wi5if66cmknb8";
                       }.${javaVersionPlatform};
              url    = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${version}/native-image-installable-svm-java${javaVersionPlatform}-${version}.jar";
           })
           (fetchurl {
-             sha256 = {  "8-linux-amd64"  = "0v98v44vblhyi3jhrngmvrkb3a6d607x4fpmrb4mrrsg75vbvc6d";
-                        "11-linux-amd64"  = "0kb9472ilwqg40gyw1c4lmzkd9s763raw560sw80ljm3p75k4sc7";
-                         "8-darwin-amd64" = "192n9ckr4p8qirpxr67ji3wzxpng33yfr7kxynlrcp7b3ghfic6p";
-                        "11-darwin-amd64" = "1wqdk8wphywa00kl3xikiskclb84rx3nw5a4vi5y2n060kclcp22";
+             sha256 = {  "8-linux-amd64"  = "122p8psgmzhqnjb2fy1lwghg0kw5qa8xkzgyjp682lwg4j8brz43";
+                        "11-linux-amd64"  = "1vdc90m6s013cbhmj58nb4vyxllbxirw0idlgv0iv9cyhx90hzgz";
+                         "8-darwin-amd64" = "04q0s9xsaskqn9kbhz0mgdk28j2qnxrzqfmw6jn2znr8s8jsc6yp";
+                        "11-darwin-amd64" = "1pw4xd8g5cc9bm52awmm1zxs96ijws43vws7y10wxa6a0nhv7z5f";
                       }.${javaVersionPlatform};
              url    = "https://github.com/oracle/truffleruby/releases/download/vm-${version}/ruby-installable-svm-java${javaVersionPlatform}-${version}.jar";
           })
           (fetchurl {
-             sha256 = {  "8-linux-amd64"  = "1iskmkhrrwlhcq92g1ljvsfi9q403xxkwgzn9m282z5llh2fxv74";
-                        "11-linux-amd64"  = "13bg2gs22rzbngnbw8j68jqgcknbiw30kpxac5jjcn55rf2ymvkz";
-                         "8-darwin-amd64" = "08pib13q7s5wymnbykkyif66ll146vznxw4yz12qwhb419882jc7";
-                        "11-darwin-amd64" = "0cb9lhc21yr2dnrm4kwa68laaczvsdnzpcbl2qix50d0v84xl602";
+             sha256 = {  "8-linux-amd64"  = "19m7n4f5jrmsfvgv903sarkcjh55l0nlnw99lvjlcafw5hqzyb91";
+                        "11-linux-amd64"  = "18ibb7l7b4hmbnvyr8j7mrs11mvlsf2j0c8rdd2s93x2114f26ba";
+                         "8-darwin-amd64" = "1zlzi00339kvg4ym2j75ypfkzn8zbwdpriqmkaz4fh28qjmc1dwq";
+                        "11-darwin-amd64" = "0x301i1fimakhi2x29ldr0fsqkb3qs0g9jsmjv27d62dpqx8kgc8";
                       }.${javaVersionPlatform};
              url    = "https://github.com/graalvm/graalpython/releases/download/vm-${version}/python-installable-svm-java${javaVersionPlatform}-${version}.jar";
           })
           (fetchurl {
-             sha256 = {  "8-linux-amd64"  = "12lvcl1vmc35wh3xw5dqca7yiijsd432x4lim3knzppipy7fmflq";
-                        "11-linux-amd64"  = "1s8zfgjyyw6w53974h9a2ig8a1bvc97aplyrdziywfrijgp6zkqk";
-                         "8-darwin-amd64" = "06i1n42hkhcf1pfb2bly22ws4a09xgydsgh8b0kvjmb1fapd4paq";
-                        "11-darwin-amd64" = "1r2bqhfxnw09izxlsc562znlp3m9c1isqzhlki083h3vp548vv9s";
+             sha256 = {  "8-linux-amd64"  = "0dlgbg6kri89r9zbk6n0ch3g8356j1g35bwjng87c2y5y0vcw0b5";
+                        "11-linux-amd64"  = "1yby65hww6zmd2g5pjwbq5pv3iv4gfv060b8fq75fjhwrisyj5gd";
+                         "8-darwin-amd64" = "1smdj491g23i3z7p5rybid18nnz8bphrqjkv0lg2ffyrpn8k6g93";
+                        "11-darwin-amd64" = "056zyn0lpd7741k1szzjwwacka0g7rn0j4ypfmav4h1245mjg8lx";
                       }.${javaVersionPlatform};
              url    = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${version}/wasm-installable-svm-java${javaVersionPlatform}-${version}.jar";
           })
         ];
-        nativeBuildInputs = [ unzip perl ];
+
+        buildInputs = lib.optionals stdenv.isLinux [
+          alsaLib # libasound.so wanted by lib/libjsound.so
+          fontconfig
+          freetype
+          openssl # libssl.so wanted by languages/ruby/lib/mri/openssl.so
+          stdenv.cc.cc.lib # libstdc++.so.6
+          xorg.libX11
+          xorg.libXext
+          xorg.libXi
+          xorg.libXrender
+          xorg.libXtst
+          zlib
+        ];
+
+        # Workaround for libssl.so.10 wanted by TruffleRuby
+        # Resulting TruffleRuby cannot use `openssl` library.
+        autoPatchelfIgnoreMissingDeps = true;
+
+        nativeBuildInputs = [ unzip perl autoPatchelfHook makeWrapper ];
+
         unpackPhase = ''
            unpack_jar() {
              jar=$1
@@ -136,32 +186,28 @@ let
 
         dontStrip = true;
 
-        # copy-paste openjdk's preFixup
         preFixup = ''
+          # We cannot use -exec since wrapProgram is a function but not a
+          # command.
+          #
+          # jspawnhelper is executed from JVM, so it doesn't need to wrap it,
+          # and it breaks building OpenJDK (#114495).
+          for bin in $( find "$out" -executable -type f -not -path '*/languages/ruby/lib/gems/*' -not -name jspawnhelper ); do
+            if patchelf --print-interpreter "$bin" &> /dev/null || head -n 1 "$bin" | grep '^#!' -q; then
+              wrapProgram "$bin" \
+                --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
+            fi
+          done
+
+          # copy-paste openjdk's preFixup
           # Set JAVA_HOME automatically.
           mkdir -p $out/nix-support
           cat <<EOF > $out/nix-support/setup-hook
             if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
           EOF
-        '';
-
-        postFixup = ''
-          rpath="${ {  "8" = "$out/jre/lib/amd64/jli:$out/jre/lib/amd64/server:$out/jre/lib/amd64";
-                      "11" = "$out/lib/jli:$out/lib/server:$out/lib";
-                    }.${javaVersion}
-                 }:${
-            lib.makeLibraryPath [
-              stdenv.cc.cc.lib # libstdc++.so.6
-              zlib             # libz.so.1
-            ]}"
 
-          ${lib.optionalString stdenv.isLinux ''
-          for f in $(find $out -type f -perm -0100); do
-            patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
-            patchelf --set-rpath   "$rpath"                                    "$f" || true
-            if ldd "$f" | fgrep 'not found'; then echo "in file $f"; fi
-          done
-          ''}
+          find "$out" -name libfontmanager.so -exec \
+            patchelf --add-needed libfontconfig.so {} \;
         '';
 
         # $out/bin/native-image needs zlib to build native executables.
@@ -204,11 +250,13 @@ let
 
           echo '1 + 1' | $out/bin/graalpython
 
-          # TODO: `irb` on MacOS gives an error saying "Could not find OpenSSL
-          # headers, install via Homebrew or MacPorts or set OPENSSL_PREFIX", even
-          # though `openssl` is in `propagatedBuildInputs`. For more details see:
-          # https://github.com/NixOS/nixpkgs/pull/105815
-          # echo '1 + 1' | $out/bin/irb
+          ${lib.optionalString stdenv.isLinux ''
+            # TODO: `irb` on MacOS gives an error saying "Could not find OpenSSL
+            # headers, install via Homebrew or MacPorts or set OPENSSL_PREFIX", even
+            # though `openssl` is in `propagatedBuildInputs`. For more details see:
+            # https://github.com/NixOS/nixpkgs/pull/105815
+            echo '1 + 1' | $out/bin/irb
+          ''}
 
           echo '1 + 1' | $out/bin/node -i
         ${lib.optionalString (javaVersion == "11") ''
diff --git a/nixpkgs/pkgs/development/compilers/graalvm/default.nix b/nixpkgs/pkgs/development/compilers/graalvm/default.nix
index fc30e37e4b7c..ccfb4a18a12a 100644
--- a/nixpkgs/pkgs/development/compilers/graalvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/graalvm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, fetchurl, fetchzip, fetchgit, mercurial_4, python27, setJavaClassPath,
   which, zlib, makeWrapper, openjdk, unzip, git, clang, llvm, icu, ruby, glibc, bash, gcc, libobjc,
-  xcodebuild, gfortran, readline, bzip2, lzma, pcre, curl, ed, libresolv, libiconv, writeScriptBin,
+  xcodebuild, gfortran, readline, bzip2, xz, pcre, curl, ed, libresolv, libiconv, writeScriptBin,
   openssl, perl, CoreFoundation, Foundation, JavaNativeFoundation, JavaRuntimeSupport, JavaVM, Cocoa
 }:
 
@@ -89,7 +89,7 @@ let
   makeMxCache = list:
     stdenv.mkDerivation {
       name = "mx-cache";
-      buildInputs = [ unzip ];
+      nativeBuildInputs = [ unzip ];
       buildCommand = with lib; ''
         mkdir $out
         ${lib.concatMapStrings
@@ -372,7 +372,7 @@ in rec {
 
     buildInputs = [ mx zlib.dev mercurial jvmci8 git llvm clang
                     python27withPackages icu ruby bzip2 which
-                    readline bzip2 lzma pcre curl ed gfortran
+                    readline bzip2 xz pcre curl ed gfortran
                   ]  ++ lib.optional stdenv.isDarwin [
                     CoreFoundation gcc.cc.lib libiconv perl openssl
                   ];
diff --git a/nixpkgs/pkgs/development/compilers/gwt/2.4.0.nix b/nixpkgs/pkgs/development/compilers/gwt/2.4.0.nix
index e10d10120347..011a7979df7f 100644
--- a/nixpkgs/pkgs/development/compilers/gwt/2.4.0.nix
+++ b/nixpkgs/pkgs/development/compilers/gwt/2.4.0.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1gvyg00vx7fdqgfl2w7nhql78clg3abs6fxxy7m03pprdm5qmm17";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/development/compilers/haxe/default.nix b/nixpkgs/pkgs/development/compilers/haxe/default.nix
index 584511923961..73b82ff48dbf 100644
--- a/nixpkgs/pkgs/development/compilers/haxe/default.nix
+++ b/nixpkgs/pkgs/development/compilers/haxe/default.nix
@@ -1,20 +1,44 @@
-{ lib, stdenv, fetchgit, coreutils, ocamlPackages, zlib, pcre, neko }:
-
-let inherit (ocamlPackages) ocaml camlp4; in
+{ lib, stdenv, fetchFromGitHub, coreutils, ocaml-ng, zlib, pcre, neko, mbedtls }:
 
 let
-  generic = { version, sha256, prePatch }:
+  ocamlDependencies = version:
+    if lib.versionAtLeast version "4.0"
+    then with ocaml-ng.ocamlPackages; [
+      ocaml
+      findlib
+      sedlex_2
+      xml-light
+      ptmap
+      camlp5
+      sha
+      dune_2
+      luv
+      ocaml_extlib
+    ] else with ocaml-ng.ocamlPackages_4_05; [
+      ocaml
+      camlp4
+    ];
+
+  defaultPatch = ''
+    substituteInPlace extra/haxelib_src/src/haxelib/client/Main.hx \
+      --replace '"neko"' '"${neko}/bin/neko"'
+  '';
+
+  generic = { sha256, version, prePatch ? defaultPatch }:
     stdenv.mkDerivation {
       pname = "haxe";
       inherit version;
 
-      buildInputs = [ocaml zlib pcre neko camlp4];
+      buildInputs = [ zlib pcre neko ]
+        ++ lib.optional (lib.versionAtLeast version "4.1") [ mbedtls ]
+        ++ ocamlDependencies version;
 
-      src = fetchgit {
-        url = "https://github.com/HaxeFoundation/haxe.git";
-        inherit sha256;
+      src = fetchFromGitHub {
+        owner = "HaxeFoundation";
+        repo = "haxe";
+        rev = version;
         fetchSubmodules = true;
-        rev = "refs/tags/${version}";
+        inherit sha256;
       };
 
       inherit prePatch;
@@ -77,8 +101,8 @@ let
       meta = with lib; {
         description = "Programming language targeting JavaScript, Flash, NekoVM, PHP, C++";
         homepage = "https://haxe.org";
-        license = with licenses; [ gpl2 bsd2 /*?*/ ];  # -> docs/license.txt
-        maintainers = [ maintainers.marcweber ];
+        license = with licenses; [ gpl2Plus mit ]; # based on upstream opam file
+        maintainers = [ maintainers.marcweber maintainers.locallycompact ];
         platforms = platforms.linux ++ platforms.darwin;
       };
     };
@@ -89,15 +113,20 @@ in {
     sha256 = "1x9ay5a2llq46fww3k07jxx8h1vfpyxb522snc6702a050ki5vz3";
     prePatch = ''
       sed -i -e 's|"/usr/lib/haxe/std/";|"'"$out/lib/haxe/std/"'";\n&|g' main.ml
-      sed -i -e 's|"neko"|"${neko}/bin/neko"|g' extra/haxelib_src/src/tools/haxelib/Main.hx
+      substituteInPlace extra/haxelib_src/src/tools/haxelib/Main.hx \
+        --replace '"neko"' '"${neko}/bin/neko"'
     '';
   };
   haxe_3_4 = generic {
     version = "3.4.6";
     sha256 = "1myc4b8fwp0f9vky17wv45n34a583f5sjvajsc93f5gm1wanp4if";
     prePatch = ''
+      ${defaultPatch}
       sed -i -re 's!(let +prefix_path += +).*( +in)!\1"'"$out/"'"\2!' src/main.ml
-      sed -i -e 's|"neko"|"${neko}/bin/neko"|g' extra/haxelib_src/src/haxelib/client/Main.hx
     '';
   };
+  haxe_4_2 = generic {
+    version = "4.2.1";
+    sha256 = "sha256-0j6M21dh8DB1gC/bPYNJrVuDbJyqQbP+61ItO5RBUcA=";
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix b/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
index ebba160fc95a..512865829607 100644
--- a/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
+++ b/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
@@ -7,7 +7,7 @@
 , flex
 , llvmPackages_8
 , opencl-clang
-, python
+, python3
 , spirv-llvm-translator
 
 , buildWithPatches ? true
@@ -33,9 +33,11 @@ stdenv.mkDerivation rec {
     sha256 = "1jp3c67ppl1x4pazr5nzy52615cpx0kyckaridhc0fsmrkgilyxq";
   };
 
-  nativeBuildInputs = [ clang cmake bison flex llvm python ];
+  nativeBuildInputs = [ clang cmake bison flex python3 ];
 
-  buildInputs = [ clang opencl-clang spirv-llvm-translator ];
+  buildInputs = [ clang opencl-clang spirv-llvm-translator llvm ];
+
+  strictDeps = true;
 
   # checkInputs = [ lit pythonPackages.nose ];
 
diff --git a/nixpkgs/pkgs/development/compilers/ispc/default.nix b/nixpkgs/pkgs/development/compilers/ispc/default.nix
index d1ac7bcd0efe..fd7481587115 100644
--- a/nixpkgs/pkgs/development/compilers/ispc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ispc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchpatch
 , cmake, which, m4, python3, bison, flex, llvmPackages
 
   # the default test target is sse4, but that is not supported by all Hydra agents
@@ -7,15 +7,27 @@
 
 stdenv.mkDerivation rec {
   pname   = "ispc";
-  version = "1.13.0";
+  version = "unstable-2021-04-02";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
-    rev    = "v${version}";
-    sha256 = "1l74xkpwwxc38k2ngg7mpvswziiy91yxslgfad6688hh1n5jvayd";
+    # ISPC release 1.15.0 doesn't build against LLVM 11.1, only against 11.0. So we
+    # use latest ISPC main branch for now, until they support an LLVM version we have.
+    # https://github.com/ispc/ispc/issues/2027#issuecomment-784470530
+    rev    = "3e8313568265d2adfbf95bd6b6e1a4c70ef59bed";
+    sha256 = "sha256-gvr+VpoacmwQlP5gT4MnfmKdACZWJduVMIpR0YRzseg=";
   };
 
+  patches = [
+    # Fix cmake error: `Failed to find clang++`
+    # https://github.com/ispc/ispc/pull/2055
+    (fetchpatch {
+      url = "https://github.com/erictapen/ispc/commit/338119b2f4e11fcf0b0852de296c320928e572a2.patch";
+      sha256 = "sha256-+RqDq1LMWomu/K4SgK0Nip47b1RwyM6W0cTSNGD4+m4=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake which m4 bison flex python3 ];
   buildInputs = with llvmPackages; [
     # we need to link against libclang, so we need the unwrapped
@@ -55,6 +67,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DCLANG_EXECUTABLE=${llvmPackages.clang}/bin/clang"
+    "-DCLANGPP_EXECUTABLE=${llvmPackages.clang}/bin/clang++"
     "-DISPC_INCLUDE_EXAMPLES=OFF"
     "-DISPC_INCLUDE_UTILS=OFF"
     "-DARM_ENABLED=FALSE"
diff --git a/nixpkgs/pkgs/development/compilers/julia/1.0.nix b/nixpkgs/pkgs/development/compilers/julia/1.0.nix
index 98d7ce90de3b..5b1a4674a88a 100644
--- a/nixpkgs/pkgs/development/compilers/julia/1.0.nix
+++ b/nixpkgs/pkgs/development/compilers/julia/1.0.nix
@@ -139,7 +139,7 @@ stdenv.mkDerivation rec {
       "prefix=$(out)"
       "SHELL=${stdenv.shell}"
 
-      "USE_SYSTEM_BLAS=1"
+      (lib.optionalString (!stdenv.isDarwin) "USE_SYSTEM_BLAS=1")
       "USE_BLAS64=${if blas.isILP64 then "1" else "0"}"
 
       "USE_SYSTEM_LAPACK=1"
diff --git a/nixpkgs/pkgs/development/compilers/julia/1.3.nix b/nixpkgs/pkgs/development/compilers/julia/1.3.nix
index da60fa8b9888..5e431a552332 100644
--- a/nixpkgs/pkgs/development/compilers/julia/1.3.nix
+++ b/nixpkgs/pkgs/development/compilers/julia/1.3.nix
@@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
       "prefix=$(out)"
       "SHELL=${stdenv.shell}"
 
-      "USE_SYSTEM_BLAS=1"
+      (lib.optionalString (!stdenv.isDarwin) "USE_SYSTEM_BLAS=1")
       "USE_BLAS64=${if blas.isILP64 then "1" else "0"}"
 
       "USE_SYSTEM_LAPACK=1"
diff --git a/nixpkgs/pkgs/development/compilers/julia/1.5.nix b/nixpkgs/pkgs/development/compilers/julia/1.5.nix
index a523336b7b92..b4c33faa44cd 100644
--- a/nixpkgs/pkgs/development/compilers/julia/1.5.nix
+++ b/nixpkgs/pkgs/development/compilers/julia/1.5.nix
@@ -1,7 +1,6 @@
-{ lib, stdenv, fetchurl, fetchzip, fetchFromGitHub
+{ lib, stdenv, fetchzip
 # build tools
-, gfortran, m4, makeWrapper, patchelf, perl, which, python2
-, cmake
+, gfortran, m4, makeWrapper, patchelf, perl, which, python2, cmake
 # libjulia dependencies
 , libunwind, readline, utf8proc, zlib
 # standard library dependencies
@@ -19,8 +18,8 @@ with lib;
 let
   majorVersion = "1";
   minorVersion = "5";
-  maintenanceVersion = "3";
-  src_sha256 = "sha256:0jds8lrhk4hfdv7dg5p2ibzin9ivga7wrx7zwcmz6dqp3x792n1i";
+  maintenanceVersion = "4";
+  src_sha256 = "1ba1v7hakgj95xvhyff0zcp0574qv6vailjl48wl1f8w5k54lsw2";
   version = "${majorVersion}.${minorVersion}.${maintenanceVersion}";
 in
 
@@ -28,10 +27,10 @@ stdenv.mkDerivation rec {
   pname = "julia";
   inherit version;
 
-   src = fetchzip {
-     url = "https://github.com/JuliaLang/julia/releases/download/v${version}/julia-${version}-full.tar.gz";
-     sha256 = src_sha256;
-   };
+  src = fetchzip {
+    url = "https://github.com/JuliaLang/julia/releases/download/v${version}/julia-${version}-full.tar.gz";
+    sha256 = src_sha256;
+  };
 
   patches = [
     ./use-system-utf8proc-julia-1.3.patch
@@ -89,7 +88,7 @@ stdenv.mkDerivation rec {
       "prefix=$(out)"
       "SHELL=${stdenv.shell}"
 
-      "USE_SYSTEM_BLAS=1"
+      (lib.optionalString (!stdenv.isDarwin) "USE_SYSTEM_BLAS=1")
       "USE_BLAS64=${if blas.isILP64 then "1" else "0"}"
 
       "USE_SYSTEM_LAPACK=1"
diff --git a/nixpkgs/pkgs/development/compilers/julia/update-1.5.py b/nixpkgs/pkgs/development/compilers/julia/update-1.5.py
new file mode 100755
index 000000000000..e37f37d456bf
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/julia/update-1.5.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i python3 -p python3 python3Packages.requests
+
+import os
+import re
+import requests
+import subprocess
+
+latest = requests.get("https://api.github.com/repos/JuliaLang/julia/releases/latest").json()["tag_name"]
+assert latest[0] == "v"
+major, minor, patch = latest[1:].split(".")
+assert major == "1"
+# When a new minor version comes out we'll have to refactor/copy this update script.
+assert minor == "5"
+
+sha256 = subprocess.check_output(["nix-prefetch-url", "--unpack", f"https://github.com/JuliaLang/julia/releases/download/v{major}.{minor}.{patch}/julia-{major}.{minor}.{patch}-full.tar.gz"], text=True).strip()
+
+nix_path = os.path.join(os.path.dirname(__file__), "1.5.nix")
+nix0 = open(nix_path, "r").read()
+nix1 = re.sub("maintenanceVersion = \".*\";", f"maintenanceVersion = \"{patch}\";", nix0)
+nix2 = re.sub("src_sha256 = \".*\";", f"src_sha256 = \"{sha256}\";", nix1)
+open(nix_path, "w").write(nix2)
diff --git a/nixpkgs/pkgs/development/compilers/koka/default.nix b/nixpkgs/pkgs/development/compilers/koka/default.nix
new file mode 100644
index 000000000000..087b0ad1153b
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/koka/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, buildPackages, cmake, gnumake, makeWrapper, mkDerivation, fetchFromGitHub
+, alex, array, base, bytestring, cond, containers, directory, extra
+, filepath, haskeline, hpack, hspec, hspec-core, json, lib, mtl
+, parsec, process, regex-compat, text, time }:
+
+let
+  version = "2.1.1";
+  src = fetchFromGitHub {
+    owner = "koka-lang";
+    repo = "koka";
+    rev = "v${version}";
+    sha256 = "sha256-cq+dljfTKJh5NgwQfxQQP9jRcg2PQxxBVEgQ59ll36o=";
+    fetchSubmodules = true;
+  };
+  kklib = stdenv.mkDerivation {
+    pname = "kklib";
+    inherit version;
+    src = "${src}/kklib";
+    nativeBuildInputs = [ cmake ];
+  };
+  runtimeDeps = [
+    buildPackages.stdenv.cc
+    buildPackages.stdenv.cc.bintools.bintools
+    gnumake
+    cmake
+  ];
+in
+mkDerivation rec {
+  pname = "koka";
+  inherit version src;
+  isLibrary = false;
+  isExecutable = true;
+  libraryToolDepends = [ hpack ];
+  executableHaskellDepends = [
+    array base bytestring cond containers directory haskeline mtl
+    parsec process text time kklib
+  ];
+  executableToolDepends = [ alex makeWrapper ];
+  postInstall = ''
+    mkdir -p $out/share/koka/v${version}
+    cp -a lib $out/share/koka/v${version}
+    cp -a contrib $out/share/koka/v${version}
+    cp -a kklib $out/share/koka/v${version}
+    wrapProgram "$out/bin/koka" \
+      --set CC "${lib.getBin buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc" \
+      --prefix PATH : "${lib.makeSearchPath "bin" runtimeDeps}"
+  '';
+  doCheck = false;
+  prePatch = "hpack";
+  description = "Koka language compiler and interpreter";
+  homepage = "https://github.com/koka-lang/koka";
+  license = lib.licenses.asl20;
+  maintainers = with lib.maintainers; [ siraben sternenseemann ];
+}
diff --git a/nixpkgs/pkgs/development/compilers/kotlin/default.nix b/nixpkgs/pkgs/development/compilers/kotlin/default.nix
index cd613c1b33be..9154b7d76a64 100644
--- a/nixpkgs/pkgs/development/compilers/kotlin/default.nix
+++ b/nixpkgs/pkgs/development/compilers/kotlin/default.nix
@@ -12,7 +12,7 @@ in stdenv.mkDerivation {
   };
 
   propagatedBuildInputs = [ jre ] ;
-  buildInputs = [ makeWrapper unzip ] ;
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   installPhase = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/development/compilers/ldc/default.nix b/nixpkgs/pkgs/development/compilers/ldc/default.nix
index e0a689c7fa05..a199747546ab 100644
--- a/nixpkgs/pkgs/development/compilers/ldc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ldc/default.nix
@@ -1,4 +1,4 @@
 import ./generic.nix {
-  version = "1.24.0";
-  ldcSha256 = "0g5svf55i0kq55q49awmwqj9qi1n907cyrn1vjdjgs8nx6nn35gx";
+  version = "1.25.1";
+  ldcSha256 = "sha256-DjcW/pknvpEmTR/eXEEHECb2xEJic16evaU4CJthLUA=";
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt.nix b/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt.nix
index 37515b5039d8..64d57e3e811d 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt.nix
@@ -45,7 +45,8 @@ stdenv.mkDerivation rec {
     # The compiler-rt build infrastructure sniffs supported platforms on Darwin
     # and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
     # when it tries to use libc++ and libc++api for i386.
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
+    "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
   ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix
index 3a3e384ad982..2e03112d827d 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix
@@ -8,7 +8,7 @@ let
     pname = "clang";
     inherit version;
 
-    src = fetch "clang" "0kab4zmkxffg98a3rx95756jlwhxflalin5w05g1anpwxv175xbk";
+    src = fetch "clang" "12sm91qx2m79cvj75a9aazf2x8xybjbd593dv6v7rxficpq8i0ha";
     inherit clang-tools-extra_src;
 
     unpackPhase = ''
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt.nix b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt.nix
index 091f327550b8..88a412f6cb4f 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt.nix
@@ -11,7 +11,7 @@ in
 stdenv.mkDerivation rec {
   pname = "compiler-rt";
   inherit version;
-  src = fetch pname "1z470r8c5aahdwkmflglx998n0i77j8b1c69d7cir1kf27qy6yq8";
+  src = fetch pname "0x1j8ngf1zj63wlnns9vlibafq48qcm72p4jpaxkmkb4qw0grwfy";
 
   nativeBuildInputs = [ cmake python3 llvm ];
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
@@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
     "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
   ] ++ lib.optionals (stdenv.isDarwin) [
     "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
+    "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
   ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [
     "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
     "-DCOMPILER_RT_BUILD_XRAY=OFF"
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/default.nix
index ca9ef4382b4b..e4d9f45c955e 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  release_version = "11.0.1";
+  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
@@ -17,7 +17,7 @@ let
     inherit sha256;
   };
 
-  clang-tools-extra_src = fetch "clang-tools-extra" "1j8n6n4l54k2lrdxh266y1fl4z8vy5dc76wsf0csk5n3ikfi38ic";
+  clang-tools-extra_src = fetch "clang-tools-extra" "18n1w1hkv931xzq02b34wglbv6zd6sd0r5kb8piwvag7klj7qw3n";
 
   tools = lib.makeExtensible (tools: let
     callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libc++/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libc++/default.nix
index 7a34977afe24..6adb824f539d 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libc++/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libc++/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetch, cmake, python3, libcxxabi, llvm, fixDarwinDylibNames, version
+{ lib, stdenv, fetch, fetchpatch, cmake, python3, libcxxabi, llvm, fixDarwinDylibNames, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   pname = "libc++";
   inherit version;
 
-  src = fetch "libcxx" "0gaybwkn76vhakvipxslp7pmv2wm7agxkqwk5f5aizhzc9lzdmcz";
+  src = fetch "libcxx" "1rgqsqpgi0vkga5d7hy0iyfsqgzfz7q1xy7afdfa1snp1qjks8xv";
 
   postUnpack = ''
     unpackFile ${libcxxabi.src}
@@ -15,7 +15,14 @@ stdenv.mkDerivation {
     mv llvm-* llvm
   '';
 
-  patches = lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
+  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;
+    })
+  ] ++ lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
 
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libc++abi.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libc++abi.nix
index 22e4ac4abe4c..d941044ca605 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libc++abi.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libc++abi.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   pname = "libc++abi";
   inherit version;
 
-  src = fetch "libcxxabi" "0gv8pxq95gvsybldj21hdfkmm0r5cn1z7jhd72l231n0lmb70saa";
+  src = fetch "libcxxabi" "1azcf31mxw59hb1x17xncnm3dyw90ylh8rqx462lvypqh3nr6c8l";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libunwind.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libunwind.nix
index 1b5fe0f57880..0c635cabc0a9 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libunwind.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libunwind.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   pname = "libunwind";
   inherit version;
 
-  src = fetch pname "0zsixkaiwp007afxlpsf5dc7wfrv8sj9wxzjw6f1r4bjv1rv3cvd";
+  src = fetch pname "1vpqs2c358v8fbr1r8jmzkfqk12jllimjcfmgxga127ksq9b37nj";
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/lld.nix b/nixpkgs/pkgs/development/compilers/llvm/11/lld.nix
index cead886f49b7..1a16184a6e71 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/lld.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/lld.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   pname = "lld";
   inherit version;
 
-  src = fetch pname "1dq82dkam8x2niha18v7ckh30zmzyclydzipqkf7h41r3ah0vfk0";
+  src = fetch pname "1kk61i7z5bi9i11rzsd2b388d42if1c7a45zkaa4mk0yps67hyh1";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ llvm libxml2 ];
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/lldb.nix b/nixpkgs/pkgs/development/compilers/llvm/11/lldb.nix
index fcc73cfdeb6d..2f54305736ac 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/lldb.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/lldb.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (rec {
   pname = "lldb";
   inherit version;
 
-  src = fetch pname "1yzjbsn81l2r3v9js2fxrglkwvz1f2rxyxh6430nydbrs0bqklz8";
+  src = fetch pname "1vlyg015dyng43xqb8cg2l6r9ix8klibxsajazbfnckdnh54hwxj";
 
   patches = [ ./lldb-procfs.patch ];
 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/llvm.nix b/nixpkgs/pkgs/development/compilers/llvm/11/llvm.nix
index 868da1a5b207..cb44643ff78f 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/llvm.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/llvm.nix
@@ -32,8 +32,8 @@ in stdenv.mkDerivation (rec {
   pname = "llvm";
   inherit version;
 
-  src = fetch pname "0a5mb65xa5bal8q6cb37xgkqis2bip87fsafgq3wbsva9cjprn6c";
-  polly_src = fetch "polly" "1smrqm9s0r2g9h0v0nil6y9wn2ih4l5bddk4dhgn538ngc7cxpq8";
+  src = fetch pname "199yq3a214avcbi4kk2q0ajriifkvsr0l2dkx3a666m033ihi1ff";
+  polly_src = fetch "polly" "031r23ijhx7v93a5n33m2nc0x9xyqmx0d8xg80z7q971p6qd63sq";
 
   unpackPhase = ''
     unpackFile $src
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/openmp.nix b/nixpkgs/pkgs/development/compilers/llvm/11/openmp.nix
index 5503a98ae5f6..c99358cd2878 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/openmp.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/openmp.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetch
+, fetchpatch
 , cmake
 , llvm
 , perl
@@ -11,7 +12,16 @@ stdenv.mkDerivation rec {
   pname = "openmp";
   inherit version;
 
-  src = fetch pname "19rcv25y41ww3zlfg0lwprzijl3cn7jgc0v5540jzpp7j0ds45ad";
+  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 = [ llvm ];
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/bintools.nix b/nixpkgs/pkgs/development/compilers/llvm/12/bintools.nix
new file mode 100644
index 000000000000..53f7941e3369
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/bintools.nix
@@ -0,0 +1,29 @@
+{ runCommand, stdenv, llvm, lld, version }:
+
+let
+  prefix =
+    if stdenv.hostPlatform != stdenv.targetPlatform
+    then "${stdenv.targetPlatform.config}-"
+    else "";
+in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
+   mkdir -p $out/bin
+   for prog in ${lld}/bin/*; do
+     ln -s $prog $out/bin/${prefix}$(basename $prog)
+   done
+   for prog in ${llvm}/bin/*; do
+     ln -sf $prog $out/bin/${prefix}$(basename $prog)
+   done
+
+   ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
+   ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as
+   ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
+   ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
+   ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
+   ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
+   ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib
+   ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf
+   ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
+   ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip
+
+   ln -s ${lld}/bin/lld $out/bin/${prefix}ld
+''
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix
new file mode 100644
index 000000000000..d90d019e6d51
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix
@@ -0,0 +1,110 @@
+{ lib, stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld
+, fixDarwinDylibNames
+, enableManpages ? false
+}:
+
+let
+  self = stdenv.mkDerivation ({
+    pname = "clang";
+    inherit version;
+
+    src = fetch "clang" "185r9rr254v75ja33nmm53j85lcnkj7bzsl18wvnd37jmz2nfxa5";
+    inherit clang-tools-extra_src;
+
+    unpackPhase = ''
+      unpackFile $src
+      mv clang-* clang
+      sourceRoot=$PWD/clang
+      unpackFile ${clang-tools-extra_src}
+    '';
+
+    nativeBuildInputs = [ cmake python3 lld ]
+      ++ lib.optional enableManpages python3.pkgs.sphinx
+      ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+
+    buildInputs = [ libxml2 llvm ];
+
+    cmakeFlags = [
+      "-DCMAKE_CXX_FLAGS=-std=c++14"
+      "-DCLANGD_BUILD_XPC=OFF"
+    ] ++ lib.optionals enableManpages [
+      "-DCLANG_INCLUDE_DOCS=ON"
+      "-DLLVM_ENABLE_SPHINX=ON"
+      "-DSPHINX_OUTPUT_MAN=ON"
+      "-DSPHINX_OUTPUT_HTML=OFF"
+      "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ];
+
+    patches = [
+      ./purity.patch
+      # https://reviews.llvm.org/D51899
+    ];
+
+    postPatch = ''
+      sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
+             -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
+             lib/Driver/ToolChains/*.cpp
+
+      # Patch for standalone doc building
+      sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt
+    '' + lib.optionalString stdenv.hostPlatform.isMusl ''
+      sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
+    '';
+
+    outputs = [ "out" "lib" "python" ];
+
+    # Clang expects to find LLVMgold in its own prefix
+    postInstall = ''
+      if [ -e ${llvm}/lib/LLVMgold.so ]; then
+        ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+      fi
+
+      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/
+      mv $out/bin/{git-clang-format,scan-view} $python/bin
+      if [ -e $out/bin/set-xcode-analyzer ]; then
+        mv $out/bin/set-xcode-analyzer $python/bin
+      fi
+      mv $out/share/clang/*.py $python/share/clang
+      rm $out/bin/c-index-test
+    '';
+
+    passthru = {
+      isClang = true;
+      inherit llvm;
+    };
+
+    meta = {
+      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
+      homepage    = "https://llvm.org/";
+      license     = lib.licenses.ncsa;
+      platforms   = lib.platforms.all;
+    };
+  } // 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.description = "man page for Clang ${version}";
+  });
+in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/clang/purity.patch b/nixpkgs/pkgs/development/compilers/llvm/12/clang/purity.patch
new file mode 100644
index 000000000000..deb230a36c5b
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/clang/purity.patch
@@ -0,0 +1,28 @@
+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/12/compiler-rt-X86-support-extension.patch b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt-X86-support-extension.patch
new file mode 100644
index 000000000000..f6f9336ad5ad
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt-X86-support-extension.patch
@@ -0,0 +1,23 @@
+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/12/compiler-rt-armv7l.patch b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt-armv7l.patch
new file mode 100644
index 000000000000..120cfe6feb2a
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt-armv7l.patch
@@ -0,0 +1,32 @@
+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/12/compiler-rt-codesign.patch b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt-codesign.patch
new file mode 100644
index 000000000000..3cc12b94b200
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt-codesign.patch
@@ -0,0 +1,33 @@
+From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Tue, 19 Sep 2017 13:13:06 -0500
+Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
+ needs it
+
+---
+ cmake/Modules/AddCompilerRT.cmake |  8 ------
+ test/asan/CMakeLists.txt          | 52 ---------------------------------------
+ test/tsan/CMakeLists.txt          | 47 -----------------------------------
+ 3 files changed, 107 deletions(-)
+
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index bc5fb9ff7..b64eb4246 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
+         set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
+         set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
+       endif()
+-      if(APPLE)
+-        # Ad-hoc sign the dylibs
+-        add_custom_command(TARGET ${libname}
+-          POST_BUILD  
+-          COMMAND codesign --sign - $<TARGET_FILE:${libname}>
+-          WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
+-        )
+-      endif()
+     endif()
+     install(TARGETS ${libname}
+       ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
+2.14.1
+
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt.nix b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt.nix
new file mode 100644
index 000000000000..e6ac77b7d265
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt.nix
@@ -0,0 +1,90 @@
+{ lib, stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
+
+let
+
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
+  bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
+  inherit (stdenv.hostPlatform) isMusl;
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "compiler-rt";
+  inherit version;
+  src = fetch pname "1x0z875nbdpzhr4qb7linm6r9swvdf6dvwqy1s22pbn4wdcw0cvf";
+
+  nativeBuildInputs = [ cmake python3 llvm ];
+  buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+
+  NIX_CFLAGS_COMPILE = [
+    "-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 (stdenv.isDarwin) [
+    "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
+  ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [
+    "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
+    "-DCOMPILER_RT_BUILD_XRAY=OFF"
+    "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
+    "-DCOMPILER_RT_BUILD_PROFILE=OFF"
+  ] ++ lib.optionals (useLLVM || 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) [
+    "-DCOMPILER_RT_BUILD_BUILTINS=ON"
+    "-DCMAKE_C_FLAGS=-nodefaultlibs"
+    #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"
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
+    ./compiler-rt-X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
+  ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
+    ++ lib.optional stdenv.hostPlatform.isAarch32 ./compiler-rt-armv7l.patch;
+
+
+  # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
+  # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
+  # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
+  # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by
+  # a flag and turn the flag off during the stdenv build.
+  postPatch = lib.optionalString (!stdenv.isDarwin) ''
+    substituteInPlace cmake/builtin-config-ix.cmake \
+      --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
+  '' + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace cmake/builtin-config-ix.cmake \
+      --replace 'set(ARM64 arm64 arm64e)' 'set(ARM64)'
+    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_shared-*.o $out/lib/crtbeginS.o
+    ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
+  '';
+
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
new file mode 100644
index 000000000000..593db716ac6b
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
@@ -0,0 +1,204 @@
+{ lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs
+, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
+, buildPackages
+, buildLlvmTools # tools, but from the previous stage, for cross
+, targetLlvmLibraries # libraries, but from the next stage, for cross
+, darwin
+}:
+
+let
+  release_version = "12.0.0";
+  candidate = "rc5"; # empty or "rcN"
+  dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
+  version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs
+  targetConfig = stdenv.targetPlatform.config;
+
+  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" "1hga9k5m60ywmr7m69jf1v6vj1ra1n6ybv1abzlz94f5q22i1a02";
+
+  tools = lib.makeExtensible (tools: let
+    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
+    mkExtraBuildCommands = cc: ''
+      rsrc="$out/resource-root"
+      mkdir "$rsrc"
+      ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
+      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+    '';
+  in {
+
+    llvm = callPackage ./llvm.nix { };
+
+    clang-unwrapped = callPackage ./clang {
+      inherit (tools) lld;
+      inherit clang-tools-extra_src;
+    };
+
+    # disabled until recommonmark supports sphinx 3
+    #Llvm-manpages = lowPrio (tools.llvm.override {
+    #  enableManpages = true;
+    #  python3 = pkgs.python3;  # don't use python-boot
+    #});
+
+    clang-manpages = lowPrio (tools.clang-unwrapped.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
+    # });
+
+    libclang = tools.clang-unwrapped.lib;
+
+    clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+
+    libstdcxxClang = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
+      libcxx = null;
+      extraPackages = [
+        targetLlvmLibraries.compiler-rt
+      ];
+      extraBuildCommands = mkExtraBuildCommands cc;
+    };
+
+    libcxxClang = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = targetLlvmLibraries.libcxx;
+      extraPackages = [
+        targetLlvmLibraries.libcxxabi
+        targetLlvmLibraries.compiler-rt
+      ];
+      extraBuildCommands = mkExtraBuildCommands cc;
+    };
+
+    lld = callPackage ./lld.nix {
+      libunwind = libraries.libunwind;
+    };
+
+    lldb = callPackage ./lldb.nix {
+      inherit (darwin) libobjc bootstrap_cmds;
+      inherit (darwin.apple_sdk.libs) xpc;
+      inherit (darwin.apple_sdk.frameworks) Foundation Carbon Cocoa;
+    };
+
+    # 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 = callPackage ./bintools.nix {};
+
+    lldClang = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = targetLlvmLibraries.libcxx;
+      bintools = wrapBintoolsWith {
+        inherit (tools) bintools;
+      };
+      extraPackages = [
+        targetLlvmLibraries.libcxxabi
+        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
+      '' + lib.optionalString stdenv.targetPlatform.isWasm ''
+        echo "-fno-exceptions" >> $out/nix-support/cc-cflags
+      '' + mkExtraBuildCommands cc;
+    };
+
+    lldClangNoLibcxx = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = wrapBintoolsWith {
+        inherit (tools) 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;
+    };
+
+    lldClangNoLibc = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = wrapBintoolsWith {
+        inherit (tools) bintools;
+        libc = null;
+      };
+      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;
+    };
+
+    lldClangNoCompilerRt = wrapCCWith {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = wrapBintoolsWith {
+        inherit (tools) bintools;
+        libc = null;
+      };
+      extraPackages = [ ];
+      extraBuildCommands = ''
+        echo "-nostartfiles" >> $out/nix-support/cc-cflags
+      '';
+    };
+
+  });
+
+  libraries = lib.makeExtensible (libraries: let
+    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
+  in {
+
+    compiler-rt = callPackage ./compiler-rt.nix ({} //
+      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoCompilerRt;
+      }));
+
+    stdenv = overrideCC stdenv buildLlvmTools.clang;
+
+    libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
+
+    libcxx = callPackage ./libc++ ({} //
+      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+      }));
+
+    libcxxabi = callPackage ./libc++abi.nix ({} //
+      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+        libunwind = libraries.libunwind;
+      }));
+
+    openmp = callPackage ./openmp.nix {};
+
+    libunwind = callPackage ./libunwind.nix ({} //
+      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+      }));
+
+  });
+
+in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libc++/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libc++/default.nix
new file mode 100644
index 000000000000..757651c0f4c2
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libc++/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, fetch, fetchpatch, cmake, python3, libcxxabi, llvm, fixDarwinDylibNames, version
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation {
+  pname = "libc++";
+  inherit version;
+
+  src = fetch "libcxx" "01abh553dvjgk5cjzzp0ghmg00laqbr4ar4frdhyhpbwhhmwc880";
+
+  postUnpack = ''
+    unpackFile ${libcxxabi.src}
+    mv libcxxabi-* libcxxabi
+    unpackFile ${llvm.src}
+    mv llvm-* llvm
+  '';
+
+  patches = lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
+
+  preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
+    patchShebangs utils/cat_files.py
+  '';
+
+  nativeBuildInputs = [ cmake python3 ]
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  buildInputs = [ libcxxabi ];
+
+  cmakeFlags = [
+    "-DLIBCXX_CXX_ABI=libcxxabi"
+  ] ++ 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.optional stdenv.hostPlatform.isWasm [
+      "-DLIBCXX_ENABLE_THREADS=OFF"
+      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
+
+  passthru = {
+    isLLVM = true;
+  };
+
+  meta = {
+    homepage = "https://libcxx.llvm.org/";
+    description = "A new implementation of the C++ standard library, targeting C++11";
+    license = with lib.licenses; [ ncsa mit ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libc++abi.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libc++abi.nix
new file mode 100644
index 000000000000..e35480c7bf24
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libc++abi.nix
@@ -0,0 +1,67 @@
+{ lib, stdenv, cmake, python3, fetch, libcxx, libunwind, llvm, version
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation {
+  pname = "libc++abi";
+  inherit version;
+
+  src = fetch "libcxxabi" "0mjj4f63ix4j1b72bgzpcki7mzf3qszrq7snqhiq0c5s73skkwx0";
+
+  nativeBuildInputs = [ cmake python3 ];
+  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+
+  cmakeFlags = 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"
+  ];
+
+  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 ${../libcxx-0001-musl-hacks.patch}
+  '' + lib.optionalString stdenv.hostPlatform.isWasm ''
+    patch -p1 -d llvm -i ${./libcxxabi-wasm.patch}
+  '';
+
+  installPhase = if stdenv.isDarwin
+    then ''
+      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
+      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
+    '';
+
+  meta = {
+    homepage = "https://libcxxabi.llvm.org/";
+    description = "A new implementation of low level support for a standard C++ library";
+    license = with lib.licenses; [ ncsa mit ];
+    maintainers = with lib.maintainers; [ vlstill ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi-wasm.patch b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi-wasm.patch
new file mode 100644
index 000000000000..4ebfe46aa813
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi-wasm.patch
@@ -0,0 +1,16 @@
+diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
+index 15497d405e0..33f7f18193a 100644
+--- a/cmake/modules/HandleLLVMOptions.cmake
++++ b/cmake/modules/HandleLLVMOptions.cmake
+@@ -127,7 +127,10 @@ else(WIN32)
+       set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
+     endif()
+   else(FUCHSIA OR UNIX)
+-    MESSAGE(SEND_ERROR "Unable to determine platform")
++    if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
++    else()
++      MESSAGE(SEND_ERROR "Unable to determine platform")
++    endif()
+   endif(FUCHSIA OR UNIX)
+ endif(WIN32)
+ 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libunwind.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libunwind.nix
new file mode 100644
index 000000000000..83e76c0c56cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libunwind.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, version, fetch, libcxx, llvm, cmake
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libunwind";
+  inherit version;
+
+  src = fetch pname "0kaq75ygzv9dqfsx27pi5a0clipdjq6a9vghhb89d8k1rf20lslh";
+
+  postUnpack = ''
+    unpackFile ${libcxx.src}
+    mv libcxx-* libcxx
+    unpackFile ${llvm.src}
+    mv llvm-* llvm
+  '';
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/lld.nix b/nixpkgs/pkgs/development/compilers/llvm/12/lld.nix
new file mode 100644
index 000000000000..a5e4ab834ecf
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/lld.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv
+, fetch
+, libunwind
+, cmake
+, libxml2
+, llvm
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lld";
+  inherit version;
+
+  src = fetch pname "044lv1d9am2xmbc3pvssxkkiyxyv72n2xkgk8z3p9k72h3ay00q3";
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ llvm libxml2 ];
+
+  postPatch = ''
+    substituteInPlace MachO/CMakeLists.txt --replace \
+      '(''${LLVM_MAIN_SRC_DIR}/' '('
+    mkdir -p libunwind/include
+    tar -xf "${libunwind.src}" --wildcards -C libunwind/include --strip-components=2 "libunwind-*/include/"
+  '';
+
+  outputs = [ "out" "dev" ];
+
+  postInstall = ''
+    moveToOutput include "$dev"
+    moveToOutput lib "$dev"
+  '';
+
+  meta = {
+    description = "The LLVM Linker";
+    homepage    = "https://lld.llvm.org/";
+    license     = lib.licenses.ncsa;
+    platforms   = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/lldb-procfs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/lldb-procfs.patch
new file mode 100644
index 000000000000..b075dbaeee0a
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/lldb-procfs.patch
@@ -0,0 +1,31 @@
+--- 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/12/lldb.nix b/nixpkgs/pkgs/development/compilers/llvm/12/lldb.nix
new file mode 100644
index 000000000000..67de0c187415
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/lldb.nix
@@ -0,0 +1,103 @@
+{ lib, stdenv
+, fetch
+, cmake
+, zlib
+, ncurses
+, swig
+, which
+, libedit
+, libxml2
+, llvm
+, clang-unwrapped
+, python3
+, version
+, libobjc
+, xpc
+, Foundation
+, bootstrap_cmds
+, Carbon
+, Cocoa
+, lit
+, enableManpages ? false
+}:
+
+stdenv.mkDerivation (rec {
+  pname = "lldb";
+  inherit version;
+
+  src = fetch pname "0q4p4s5ws1zszs3i4da5w5fnxkpny0q3fr1s1sh7jp9wcwxbxiqq";
+
+  patches = [ ./lldb-procfs.patch ];
+
+  nativeBuildInputs = [ cmake python3 which swig lit ]
+    ++ lib.optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
+
+  buildInputs = [
+    ncurses
+    zlib
+    libedit
+    libxml2
+    llvm
+  ]
+  ++ lib.optionals stdenv.isDarwin [
+    libobjc
+    xpc
+    Foundation
+    bootstrap_cmds
+    Carbon
+    Cocoa
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  cmakeFlags = [
+    "-DLLVM_ENABLE_RTTI=OFF"
+    "-DClang_DIR=${clang-unwrapped}/lib/cmake"
+    "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON"
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
+  ] ++ lib.optionals enableManpages [
+    "-DLLVM_ENABLE_SPHINX=ON"
+    "-DSPHINX_OUTPUT_MAN=ON"
+    "-DSPHINX_OUTPUT_HTML=OFF"
+  ];
+
+  postInstall = ''
+    # Editor support
+    # vscode:
+    install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
+    mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+    ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+  '';
+
+  meta = with lib; {
+    description = "A next-generation high-performance debugger";
+    homepage = "https://lldb.llvm.org";
+    license = licenses.ncsa;
+    platforms = platforms.all;
+  };
+} // lib.optionalAttrs enableManpages {
+  pname = "lldb-manpages";
+
+  buildPhase = ''
+    make docs-lldb-man
+  '';
+
+  propagatedBuildInputs = [];
+  # manually install lldb man page
+  installPhase = ''
+    mkdir -p $out/share/man/man1
+    install docs/man/lldb.1 -t $out/share/man/man1/
+  '';
+
+  postPatch = null;
+  postInstall = null;
+
+  outputs = [ "out" ];
+
+  doCheck = false;
+
+  meta.description = "man pages for LLDB ${version}";
+})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/llvm-outputs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/llvm-outputs.patch
new file mode 100644
index 000000000000..40096fa3497f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/llvm-outputs.patch
@@ -0,0 +1,26 @@
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 94d426b..37f7794 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -333,6 +333,21 @@ int main(int argc, char **argv) {
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
++  /// Nix-specific multiple-output handling: override ActiveLibDir if --link-shared
++  if (!IsInDevelopmentTree) {
++    bool WantShared = true;
++    for (int i = 1; i < argc; ++i) {
++      StringRef Arg = argv[i];
++      if (Arg == "--link-shared")
++        WantShared = true;
++      else if (Arg == "--link-static")
++        WantShared = false; // the last one wins
++    }
++
++    if (WantShared)
++      ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
++  }
++
+   /// We only use `shared library` mode in cases where the static library form
+   /// of the components provided are not available; note however that this is
+   /// skipped if we're run from within the build dir. However, once installed,
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/llvm.nix b/nixpkgs/pkgs/development/compilers/llvm/12/llvm.nix
new file mode 100644
index 000000000000..6e6127ba9494
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/llvm.nix
@@ -0,0 +1,189 @@
+{ lib, stdenv
+, fetch
+, cmake
+, python3
+, libffi
+, libbfd
+, libpfm
+, libxml2
+, ncurses
+, version
+, release_version
+, zlib
+, buildPackages
+, debugVersion ? false
+, enableManpages ? false
+, enableSharedLibraries ? true
+, enablePFM ? !(stdenv.isDarwin
+  || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
+  || stdenv.isAarch32 # broken for the armv7l builder
+)
+, enablePolly ? false
+}:
+
+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));
+
+in stdenv.mkDerivation (rec {
+  pname = "llvm";
+  inherit version;
+
+  src = fetch pname "088dyv7hppidl3rqfsjdibvn4d3a74896fg2sz4dwaxlg19way93";
+  polly_src = fetch "polly" "1qj7gkfr1yrsrz6j086l9p6d2kyyln15fmfiab4isn96g1dhsfb5";
+
+  unpackPhase = ''
+    unpackFile $src
+    mv llvm-${release_version}* llvm
+    sourceRoot=$PWD/llvm
+  '' + optionalString enablePolly ''
+    unpackFile $polly_src
+    mv polly-* $sourceRoot/tools/polly
+  '';
+
+  outputs = [ "out" "python" ]
+    ++ optional enableSharedLibraries "lib";
+
+  nativeBuildInputs = [ cmake python3 ]
+    ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
+
+  buildInputs = [ libxml2 libffi ]
+    ++ optional enablePFM libpfm; # exegesis
+
+  propagatedBuildInputs = [ ncurses zlib ];
+
+  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/../lib''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
+  ''
+  # Patch llvm-config to return correct library path based on --link-{shared,static}.
+  + optionalString (enableSharedLibraries) ''
+    substitute '${./llvm-outputs.patch}' ./llvm-outputs.patch --subst-var lib
+    patch -p1 < ./llvm-outputs.patch
+  '' + ''
+    # FileSystem permissions tests fail with various special bits
+    substituteInPlace unittests/Support/CMakeLists.txt \
+      --replace "Path.cpp" ""
+    rm unittests/Support/Path.cpp
+    substituteInPlace unittests/IR/CMakeLists.txt \
+      --replace "PassBuilderCallbacksTest.cpp" ""
+    rm unittests/IR/PassBuilderCallbacksTest.cpp
+  '' + optionalString stdenv.hostPlatform.isMusl ''
+    patch -p1 -i ${../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
+  '' + 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
+  '';
+
+  # 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";
+
+  cmakeFlags = with stdenv; [
+    "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
+    "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
+    "-DLLVM_BUILD_TESTS=ON"
+    "-DLLVM_ENABLE_FFI=ON"
+    "-DLLVM_ENABLE_RTTI=ON"
+    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
+    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
+    "-DLLVM_ENABLE_DUMP=ON"
+  ] ++ optionals enableSharedLibraries [
+    "-DLLVM_LINK_LLVM_DYLIB=ON"
+  ] ++ optionals enableManpages [
+    "-DLLVM_BUILD_DOCS=ON"
+    "-DLLVM_ENABLE_SPHINX=ON"
+    "-DSPHINX_OUTPUT_MAN=ON"
+    "-DSPHINX_OUTPUT_HTML=OFF"
+    "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+  ] ++ optionals (!isDarwin) [
+    "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
+  ] ++ optionals isDarwin [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DCAN_TARGET_i386=false"
+  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DCMAKE_CROSSCOMPILING=True"
+    "-DLLVM_TABLEGEN=${buildPackages.llvm_12}/bin/llvm-tblgen"
+  ];
+
+  postBuild = ''
+    rm -R $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
+  ''
+  + optionalString enableSharedLibraries ''
+    moveToOutput "lib/libLLVM-*" "$lib"
+    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
+  ''
+  + optionalString (enableSharedLibraries && (!stdenv.isDarwin)) ''
+    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+  ''
+  + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
+    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
+    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
+    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+  '';
+
+  doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl);
+
+  checkTarget = "check-all";
+
+  requiredSystemFeatures = [ "big-parallel" ];
+  meta = {
+    description = "Collection of modular and reusable compiler and toolchain technologies";
+    homepage    = "https://llvm.org/";
+    license     = lib.licenses.ncsa;
+    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
+    platforms   = lib.platforms.all;
+  };
+} // lib.optionalAttrs enableManpages {
+  pname = "llvm-manpages";
+
+  buildPhase = ''
+    make docs-llvm-man
+  '';
+
+  installPhase = ''
+    make -C docs install
+  '';
+
+  postPatch = null;
+  postInstall = null;
+
+  outputs = [ "out" ];
+
+  doCheck = false;
+
+  meta.description = "man pages for LLVM ${version}";
+})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/openmp.nix b/nixpkgs/pkgs/development/compilers/llvm/12/openmp.nix
new file mode 100644
index 000000000000..1e4618e4a1b4
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/openmp.nix
@@ -0,0 +1,25 @@
+{ lib
+, stdenv
+, fetch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openmp";
+  inherit version;
+
+  src = fetch pname "1d16r5whjb2n4n28rg8wn2g9krlc92q6nb0qmnnbzhqhx0rbkjfb";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  meta = {
+    description = "Components required to build an executable OpenMP program";
+    homepage    = "https://openmp.llvm.org/";
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/sanitizers-nongnu.patch b/nixpkgs/pkgs/development/compilers/llvm/12/sanitizers-nongnu.patch
new file mode 100644
index 000000000000..1f2ac97818eb
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/sanitizers-nongnu.patch
@@ -0,0 +1,412 @@
+From f7a253f8f85d0f49df6b73996737a3e84ac64236 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Mon, 24 Sep 2018 11:17:25 -0500
+Subject: [PATCH] Ported to 7.0, taken from gentoo-musl project.
+
+------
+Ported to compiler-rt-sanitizers-5.0.0. Taken from
+
+https://gist.githubusercontent.com/pwaller/2337f3290f12634cad3e3730cff0a6c1/raw/83c87a8585e2f9662494db5662e5361beb093c26/nongnu.patch
+Signed-off-by: Jory A. Pratt <anarchy@gentoo.org>
+
+Taken from gentoo-musl project, with a few additional minor fixes.
+---
+ lib/asan/asan_linux.cc                        |  4 +-
+ lib/interception/interception_linux.cc        |  2 +-
+ lib/interception/interception_linux.h         |  2 +-
+ lib/msan/msan_linux.cc                        |  2 +-
+ lib/sanitizer_common/sanitizer_allocator.cc   |  2 +-
+ .../sanitizer_common_interceptors_ioctl.inc   |  4 +-
+ .../sanitizer_common_syscalls.inc             |  2 +-
+ lib/sanitizer_common/sanitizer_linux.cc       |  8 +++-
+ .../sanitizer_linux_libcdep.cc                | 10 ++---
+ lib/sanitizer_common/sanitizer_platform.h     |  6 +++
+ .../sanitizer_platform_interceptors.h         |  4 +-
+ .../sanitizer_platform_limits_posix.cc        | 37 +++++++++++--------
+ lib/tsan/rtl/tsan_platform_linux.cc           |  2 +-
+ 13 files changed, 51 insertions(+), 34 deletions(-)
+
+diff --git a/lib/asan/asan_linux.cc b/lib/asan/asan_linux.cc
+index 625f32d40..73cf77aca 100644
+--- a/lib/asan/asan_linux.cc
++++ b/lib/asan/asan_linux.cc
+@@ -46,7 +46,7 @@
+ #include <link.h>
+ #endif
+ 
+-#if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS
++#if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS || SANITIZER_NONGNU
+ #include <ucontext.h>
+ extern "C" void* _DYNAMIC;
+ #elif SANITIZER_NETBSD
+@@ -139,7 +139,7 @@ void AsanApplyToGlobals(globals_op_fptr op, const void *needle) {
+   UNIMPLEMENTED();
+ }
+ 
+-#if SANITIZER_ANDROID
++#if SANITIZER_ANDROID || SANITIZER_NONGNU
+ // FIXME: should we do anything for Android?
+ void AsanCheckDynamicRTPrereqs() {}
+ void AsanCheckIncompatibleRT() {}
+diff --git a/lib/interception/interception_linux.cc b/lib/interception/interception_linux.cc
+index 26bfcd8f6..529b234f7 100644
+--- a/lib/interception/interception_linux.cc
++++ b/lib/interception/interception_linux.cc
+@@ -43,7 +43,7 @@ bool GetRealFunctionAddress(const char *func_name, uptr *func_addr,
+ }
+ 
+ // Android and Solaris do not have dlvsym
+-#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD
++#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
+ void *GetFuncAddrVer(const char *func_name, const char *ver) {
+   return dlvsym(RTLD_NEXT, func_name, ver);
+ }
+diff --git a/lib/interception/interception_linux.h b/lib/interception/interception_linux.h
+index 942c25609..24a4d5080 100644
+--- a/lib/interception/interception_linux.h
++++ b/lib/interception/interception_linux.h
+@@ -36,7 +36,7 @@ void *GetFuncAddrVer(const char *func_name, const char *ver);
+       (::__interception::uptr) & WRAP(func))
+ 
+ // Android,  Solaris and OpenBSD do not have dlvsym
+-#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD
++#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
+ #define INTERCEPT_FUNCTION_VER_LINUX_OR_FREEBSD(func, symver) \
+   (::__interception::real_##func = (func##_f)(                \
+        unsigned long)::__interception::GetFuncAddrVer(#func, symver))
+diff --git a/lib/msan/msan_linux.cc b/lib/msan/msan_linux.cc
+index 385a650c4..6e30a8ce9 100644
+--- a/lib/msan/msan_linux.cc
++++ b/lib/msan/msan_linux.cc
+@@ -13,7 +13,7 @@
+ //===----------------------------------------------------------------------===//
+ 
+ #include "sanitizer_common/sanitizer_platform.h"
+-#if SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD
++#if SANITIZER_FREEBSD || (SANITIZER_LINUX && !SANITIZER_NONGNU) || SANITIZER_NETBSD
+ 
+ #include "msan.h"
+ #include "msan_report.h"
+diff --git a/lib/sanitizer_common/sanitizer_allocator.cc b/lib/sanitizer_common/sanitizer_allocator.cc
+index 6bfd5e5ee..048f6154f 100644
+--- a/lib/sanitizer_common/sanitizer_allocator.cc
++++ b/lib/sanitizer_common/sanitizer_allocator.cc
+@@ -27,7 +27,7 @@ const char *SecondaryAllocatorName = "LargeMmapAllocator";
+ 
+ // ThreadSanitizer for Go uses libc malloc/free.
+ #if SANITIZER_GO || defined(SANITIZER_USE_MALLOC)
+-# if SANITIZER_LINUX && !SANITIZER_ANDROID
++# if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ extern "C" void *__libc_malloc(uptr size);
+ #  if !SANITIZER_GO
+ extern "C" void *__libc_memalign(uptr alignment, uptr size);
+diff --git a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+index 2d633c173..b6eb23116 100644
+--- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
++++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+@@ -104,7 +104,7 @@ static void ioctl_table_fill() {
+   _(SIOCGETVIFCNT, WRITE, struct_sioc_vif_req_sz);
+ #endif
+ 
+-#if SANITIZER_LINUX
++#if SANITIZER_LINUX && !SANITIZER_NONGNU
+   // Conflicting request ids.
+   // _(CDROMAUDIOBUFSIZ, NONE, 0);
+   // _(SNDCTL_TMR_CONTINUE, NONE, 0);
+@@ -365,7 +365,7 @@ static void ioctl_table_fill() {
+   _(VT_WAITACTIVE, NONE, 0);
+ #endif
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
+   _(CYGETDEFTHRESH, WRITE, sizeof(int));
+   _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
+diff --git a/lib/sanitizer_common/sanitizer_common_syscalls.inc b/lib/sanitizer_common/sanitizer_common_syscalls.inc
+index 469c8eb7e..24f87867d 100644
+--- a/lib/sanitizer_common/sanitizer_common_syscalls.inc
++++ b/lib/sanitizer_common/sanitizer_common_syscalls.inc
+@@ -2038,7 +2038,7 @@ POST_SYSCALL(setrlimit)(long res, long resource, void *rlim) {
+   }
+ }
+ 
+-#if !SANITIZER_ANDROID
++#if !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ PRE_SYSCALL(prlimit64)(long pid, long resource, const void *new_rlim,
+                        void *old_rlim) {
+   if (new_rlim) PRE_READ(new_rlim, struct_rlimit64_sz);
+diff --git a/lib/sanitizer_common/sanitizer_linux.cc b/lib/sanitizer_common/sanitizer_linux.cc
+index 96d6c1eff..9e2b7fb9d 100644
+--- a/lib/sanitizer_common/sanitizer_linux.cc
++++ b/lib/sanitizer_common/sanitizer_linux.cc
+@@ -541,13 +541,13 @@ const char *GetEnv(const char *name) {
+ #endif
+ }
+ 
+-#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD && !SANITIZER_OPENBSD
++#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
+ extern "C" {
+ SANITIZER_WEAK_ATTRIBUTE extern void *__libc_stack_end;
+ }
+ #endif
+ 
+-#if !SANITIZER_GO && !SANITIZER_FREEBSD && !SANITIZER_NETBSD &&                \
++#if (!SANITIZER_GO || SANITIZER_NONGNU) && !SANITIZER_FREEBSD && !SANITIZER_NETBSD &&                \
+     !SANITIZER_OPENBSD
+ static void ReadNullSepFileToArray(const char *path, char ***arr,
+                                    int arr_size) {
+@@ -590,6 +590,10 @@ static void GetArgsAndEnv(char ***argv, char ***envp) {
+ #elif SANITIZER_NETBSD
+   *argv = __ps_strings->ps_argvstr;
+   *envp = __ps_strings->ps_envstr;
++#elif SANITIZER_NONGNU
++    static const int kMaxArgv = 2000, kMaxEnvp = 2000;
++    ReadNullSepFileToArray("/proc/self/cmdline", argv, kMaxArgv);
++    ReadNullSepFileToArray("/proc/self/environ", envp, kMaxEnvp);
+ #else // SANITIZER_FREEBSD
+ #if !SANITIZER_GO
+   if (&__libc_stack_end) {
+diff --git a/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+index 4962ff832..438f94dbe 100644
+--- a/lib/sanitizer_common/sanitizer_linux_libcdep.cc
++++ b/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+@@ -179,7 +179,7 @@ __attribute__((unused)) static bool GetLibcVersion(int *major, int *minor,
+ }
+ 
+ #if !SANITIZER_FREEBSD && !SANITIZER_ANDROID && !SANITIZER_GO &&               \
+-    !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_SOLARIS
++    !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_SOLARIS && !SANITIZER_NONGNU
+ static uptr g_tls_size;
+ 
+ #ifdef __i386__
+@@ -261,7 +261,7 @@ void InitTlsSize() { }
+ #if (defined(__x86_64__) || defined(__i386__) || defined(__mips__) ||          \
+      defined(__aarch64__) || defined(__powerpc64__) || defined(__s390__) ||    \
+      defined(__arm__)) &&                                                      \
+-    SANITIZER_LINUX && !SANITIZER_ANDROID
++    SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ // sizeof(struct pthread) from glibc.
+ static atomic_uintptr_t thread_descriptor_size;
+ 
+@@ -426,7 +426,7 @@ int GetSizeFromHdr(struct dl_phdr_info *info, size_t size, void *data) {
+ 
+ #if !SANITIZER_GO
+ static void GetTls(uptr *addr, uptr *size) {
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ # if defined(__x86_64__) || defined(__i386__) || defined(__s390__)
+   *addr = ThreadSelf();
+   *size = GetTlsSize();
+@@ -470,7 +470,7 @@ static void GetTls(uptr *addr, uptr *size) {
+ #elif SANITIZER_OPENBSD
+   *addr = 0;
+   *size = 0;
+-#elif SANITIZER_ANDROID
++#elif SANITIZER_ANDROID || SANITIZER_NONGNU
+   *addr = 0;
+   *size = 0;
+ #elif SANITIZER_SOLARIS
+@@ -486,7 +486,7 @@ static void GetTls(uptr *addr, uptr *size) {
+ #if !SANITIZER_GO
+ uptr GetTlsSize() {
+ #if SANITIZER_FREEBSD || SANITIZER_ANDROID || SANITIZER_NETBSD ||              \
+-    SANITIZER_OPENBSD || SANITIZER_SOLARIS
++    SANITIZER_OPENBSD || SANITIZER_SOLARIS || SANITIZER_NONGNU
+   uptr addr, size;
+   GetTls(&addr, &size);
+   return size;
+diff --git a/lib/sanitizer_common/sanitizer_platform.h b/lib/sanitizer_common/sanitizer_platform.h
+index d81e25580..e10680ac8 100644
+--- a/lib/sanitizer_common/sanitizer_platform.h
++++ b/lib/sanitizer_common/sanitizer_platform.h
+@@ -208,6 +208,12 @@
+ # define SANITIZER_SOLARIS32 0
+ #endif
+ 
++#if defined(__linux__) && !defined(__GLIBC__)
++# define SANITIZER_NONGNU 1
++#else
++# define SANITIZER_NONGNU 0
++#endif
++
+ #if defined(__myriad2__)
+ # define SANITIZER_MYRIAD2 1
+ #else
+diff --git a/lib/sanitizer_common/sanitizer_platform_interceptors.h b/lib/sanitizer_common/sanitizer_platform_interceptors.h
+index f95539a73..6c53b3415 100644
+--- a/lib/sanitizer_common/sanitizer_platform_interceptors.h
++++ b/lib/sanitizer_common/sanitizer_platform_interceptors.h
+@@ -39,7 +39,7 @@
+ # include "sanitizer_platform_limits_solaris.h"
+ #endif
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ # define SI_LINUX_NOT_ANDROID 1
+ #else
+ # define SI_LINUX_NOT_ANDROID 0
+@@ -322,7 +322,7 @@
+ #define SANITIZER_INTERCEPT_ETHER_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID)
+ #define SANITIZER_INTERCEPT_SHMCTL          \
+   (SI_NETBSD || SI_OPENBSD || SI_SOLARIS || \
+-  ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && \
++  ((SI_FREEBSD || SI_LINUX_NOT_ANDROID || SANITIZER_NONGNU) && \
+     SANITIZER_WORDSIZE == 64))  // NOLINT
+ #define SANITIZER_INTERCEPT_RANDOM_R SI_LINUX_NOT_ANDROID
+ #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GET SI_POSIX
+diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+index 54da635d7..2f6ff69c3 100644
+--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -14,6 +14,9 @@
+ 
+ #include "sanitizer_platform.h"
+ 
++// Workaround musl <--> linux conflicting definition of 'struct sysinfo'
++#define _LINUX_SYSINFO_H
++
+ #if SANITIZER_LINUX || SANITIZER_FREEBSD || SANITIZER_MAC
+ // Tests in this file assume that off_t-dependent data structures match the
+ // libc ABI. For example, struct dirent here is what readdir() function (as
+@@ -138,12 +141,14 @@ typedef struct user_fpregs elf_fpregset_t;
+ 
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+ #include <glob.h>
+-#include <obstack.h>
++#  if !SANITIZER_NONGNU
++#    include <obstack.h>
++#  endif
+ #include <mqueue.h>
+-#include <net/if_ppp.h>
+-#include <netax25/ax25.h>
+-#include <netipx/ipx.h>
+-#include <netrom/netrom.h>
++#include <linux/if_ppp.h>
++#include <linux/ax25.h>
++#include <linux/ipx.h>
++#include <linux/netrom.h>
+ #if HAVE_RPC_XDR_H
+ # include <rpc/xdr.h>
+ #elif HAVE_TIRPC_RPC_XDR_H
+@@ -251,7 +256,7 @@ namespace __sanitizer {
+   unsigned struct_itimerspec_sz = sizeof(struct itimerspec);
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
+   // has been removed from glibc 2.28.
+ #if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
+@@ -322,7 +327,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(ElfW(Phdr));
+ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+ #endif
+ 
+-#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID
++#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   int glob_nomatch = GLOB_NOMATCH;
+   int glob_altdirfunc = GLOB_ALTDIRFUNC;
+ #endif
+@@ -416,7 +421,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+   unsigned struct_termios_sz = sizeof(struct termios);
+   unsigned struct_winsize_sz = sizeof(struct winsize);
+ 
+-#if SANITIZER_LINUX
++#if SANITIZER_LINUX && !SANITIZER_NONGNU
+   unsigned struct_arpreq_sz = sizeof(struct arpreq);
+   unsigned struct_cdrom_msf_sz = sizeof(struct cdrom_msf);
+   unsigned struct_cdrom_multisession_sz = sizeof(struct cdrom_multisession);
+@@ -466,7 +471,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+   unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
+   unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
+ #if EV_VERSION > (0x010000)
+@@ -834,7 +839,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+   unsigned IOCTL_VT_WAITACTIVE = VT_WAITACTIVE;
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
+   unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
+   unsigned IOCTL_CYGETMON = CYGETMON;
+@@ -989,7 +994,7 @@ CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phdr);
+ CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phnum);
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+ 
+-#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID
++#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ CHECK_TYPE_SIZE(glob_t);
+ CHECK_SIZE_AND_OFFSET(glob_t, gl_pathc);
+ CHECK_SIZE_AND_OFFSET(glob_t, gl_pathv);
+@@ -1023,6 +1028,7 @@ CHECK_TYPE_SIZE(iovec);
+ CHECK_SIZE_AND_OFFSET(iovec, iov_base);
+ CHECK_SIZE_AND_OFFSET(iovec, iov_len);
+ 
++#if !SANITIZER_NONGNU
+ CHECK_TYPE_SIZE(msghdr);
+ CHECK_SIZE_AND_OFFSET(msghdr, msg_name);
+ CHECK_SIZE_AND_OFFSET(msghdr, msg_namelen);
+@@ -1036,6 +1042,7 @@ CHECK_TYPE_SIZE(cmsghdr);
+ CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_len);
+ CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_level);
+ CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_type);
++#endif
+ 
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(x, y) 0
+@@ -1145,7 +1152,7 @@ CHECK_SIZE_AND_OFFSET(mntent, mnt_passno);
+ 
+ CHECK_TYPE_SIZE(ether_addr);
+ 
+-#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID
++#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ CHECK_TYPE_SIZE(ipc_perm);
+ # if SANITIZER_FREEBSD
+ CHECK_SIZE_AND_OFFSET(ipc_perm, key);
+@@ -1206,7 +1213,7 @@ CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_dstaddr);
+ CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_data);
+ #endif
+ 
+-#if SANITIZER_LINUX
++#if SANITIZER_LINUX && !SANITIZER_NONGNU
+ COMPILER_CHECK(sizeof(__sanitizer_mallinfo) == sizeof(struct mallinfo));
+ #endif
+ 
+@@ -1256,7 +1263,7 @@ COMPILER_CHECK(__sanitizer_XDR_DECODE == XDR_DECODE);
+ COMPILER_CHECK(__sanitizer_XDR_FREE == XDR_FREE);
+ #endif
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ COMPILER_CHECK(sizeof(__sanitizer_FILE) <= sizeof(FILE));
+ CHECK_SIZE_AND_OFFSET(FILE, _flags);
+ CHECK_SIZE_AND_OFFSET(FILE, _IO_read_ptr);
+@@ -1275,7 +1282,7 @@ CHECK_SIZE_AND_OFFSET(FILE, _chain);
+ CHECK_SIZE_AND_OFFSET(FILE, _fileno);
+ #endif
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ COMPILER_CHECK(sizeof(__sanitizer__obstack_chunk) <= sizeof(_obstack_chunk));
+ CHECK_SIZE_AND_OFFSET(_obstack_chunk, limit);
+ CHECK_SIZE_AND_OFFSET(_obstack_chunk, prev);
+diff --git a/lib/tsan/rtl/tsan_platform_linux.cc b/lib/tsan/rtl/tsan_platform_linux.cc
+index de989b780..51a97b554 100644
+--- a/lib/tsan/rtl/tsan_platform_linux.cc
++++ b/lib/tsan/rtl/tsan_platform_linux.cc
+@@ -294,7 +294,7 @@ void InitializePlatform() {
+ // This is required to properly "close" the fds, because we do not see internal
+ // closes within glibc. The code is a pure hack.
+ int ExtractResolvFDs(void *state, int *fds, int nfd) {
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   int cnt = 0;
+   struct __res_state *statp = (struct __res_state*)state;
+   for (int i = 0; i < MAXNS && cnt < nfd; i++) {
+-- 
+2.19.0
+
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt.nix b/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt.nix
index 909c6b190536..81dbe7048e6b 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
     # The compiler-rt build infrastructure sniffs supported platforms on Darwin
     # and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
     # when it tries to use libc++ and libc++api for i386.
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
   ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt.nix b/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt.nix
index 6e47ffe8acaf..11d46289afe8 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
     # The compiler-rt build infrastructure sniffs supported platforms on Darwin
     # and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
     # when it tries to use libc++ and libc++api for i386.
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
   ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/default.nix
index a98314d1181f..fe6984ee58bd 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/default.nix
@@ -36,6 +36,7 @@ let
 
     llvm-manpages = lowPrio (tools.llvm.override {
       enableManpages = true;
+      enableSharedLibraries = false;
       python3 = pkgs.python3;  # don't use python-boot
     });
 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt.nix b/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt.nix
index 6320a3405d27..0f91f3c5e6c1 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
     # The compiler-rt build infrastructure sniffs supported platforms on Darwin
     # and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
     # when it tries to use libc++ and libc++api for i386.
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
   ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt.nix b/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt.nix
index 2e49ef17346d..a9dabebb59a0 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
     # The compiler-rt build infrastructure sniffs supported platforms on Darwin
     # and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
     # when it tries to use libc++ and libc++api for i386.
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
   ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt.nix b/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt.nix
index 2ab9dc8ffa2e..1e9aa1d5d1bf 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     # The compiler-rt build infrastructure sniffs supported platforms on Darwin
     # and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
     # when it tries to use libc++ and libc++api for i386.
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
   ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/compilers/llvm/rocm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/rocm/default.nix
index 54a7733f4bae..135fcd2d25ae 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/rocm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/rocm/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchFromGitHub, callPackage, wrapCCWith }:
+{ lib, fetchFromGitHub, callPackage, wrapCCWith }:
 
 let
-  version = "4.0.1";
+  version = "4.1.0";
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "llvm-project";
     rev = "rocm-${version}";
-    hash = "sha256-5mQ8tN7A045JCF7tHKgAZAbyVmXOd6Wf0CVUiPA80YM=";
+    hash = "sha256-DlId/dF5r0ULl2omYPCyu1Ic3XKlLL7ndiCA0RaF264=";
   };
 in rec {
   clang = wrapCCWith rec {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/rocm/lld.nix b/nixpkgs/pkgs/development/compilers/llvm/rocm/lld.nix
index 2a05331f7a0f..a6e993bb203f 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/rocm/lld.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/rocm/lld.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  cmakeFlags = [ "-DLLVM_MAIN_SRC_DIR=${llvm.src}" ];
+
   postInstall = ''
     moveToOutput include "$dev"
     moveToOutput lib "$dev"
diff --git a/nixpkgs/pkgs/development/compilers/llvm/update.sh b/nixpkgs/pkgs/development/compilers/llvm/update.sh
new file mode 100755
index 000000000000..8f28d34073cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/update.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+set -eu
+
+# Example usage: ./pkgs/development/compilers/llvm/update.sh 12.0.0-rc4
+
+readonly VERSION="$1"
+readonly VERSION_MAJOR="${VERSION%%.*}"
+readonly VERSION_MAIN="${VERSION%%-*}"
+declare VERSION_PATCH="${VERSION/$VERSION_MAIN/}"
+readonly VERSION_PATCH="${VERSION_PATCH/-/}"
+
+readonly DIR="pkgs/development/compilers/llvm/$VERSION_MAJOR"
+readonly FILE="$DIR/default.nix"
+
+sed -Ei \
+  -e "s/release_version = \".+\";/release_version = \"$VERSION_MAIN\";/" \
+  -e "s/candidate = \".*\";/candidate = \"$VERSION_PATCH\";/" \
+  "$FILE"
+
+readonly ATTRSET="llvmPackages_$VERSION_MAJOR"
+readonly SOURCES=(
+  "clang-unwrapped.src"
+  "compiler-rt.src"
+  "clang-unwrapped.clang-tools-extra_src"
+  "libcxx.src"
+  "libcxxabi.src"
+  "libunwind.src"
+  "lld.src"
+  "lldb.src"
+  "llvm.src"
+  "llvm.polly_src"
+  "openmp.src"
+)
+
+for SOURCE in "${SOURCES[@]}"; do
+  echo "Updating the hash of $SOURCE:"
+  declare ATTR="$ATTRSET.$SOURCE"
+  declare OLD_HASH="$(nix eval -f . $ATTR.outputHash)"
+  declare NEW_HASH="\"$(nix-prefetch-url -A $ATTR)\""
+  find "$DIR" -type f -exec sed -i "s/$OLD_HASH/$NEW_HASH/" {} +
+done
+
+echo OK
diff --git a/nixpkgs/pkgs/development/compilers/mercury/default.nix b/nixpkgs/pkgs/development/compilers/mercury/default.nix
index e063c4c09217..c5e767a46cde 100644
--- a/nixpkgs/pkgs/development/compilers/mercury/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mercury/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "ef093ae81424c4f3fe696eff9aefb5fb66899e11bb17ae0326adfb70d09c1c1f";
   };
 
-  buildInputs = [ gcc flex bison texinfo jdk erlang makeWrapper
-                  readline ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ gcc flex bison texinfo jdk erlang readline ];
 
   patchPhase = ''
     # Fix calls to programs in /bin
diff --git a/nixpkgs/pkgs/development/compilers/microscheme/default.nix b/nixpkgs/pkgs/development/compilers/microscheme/default.nix
index ee2de8518f36..1f3a98de821e 100644
--- a/nixpkgs/pkgs/development/compilers/microscheme/default.nix
+++ b/nixpkgs/pkgs/development/compilers/microscheme/default.nix
@@ -1,21 +1,24 @@
-{ lib, stdenv, fetchzip, vim, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, unixtools }:
 
 stdenv.mkDerivation rec {
   pname = "microscheme";
   version = "0.9.3";
 
-  src = fetchzip {
-    name = "${pname}-${version}-src";
-    url = "https://github.com/ryansuchocki/microscheme/archive/v${version}.tar.gz";
-    sha256 = "1r3ng4pw1s9yy1h5rafra1rq19d3vmb5pzbpcz1913wz22qdd976";
+  src = fetchFromGitHub {
+    owner = "ryansuchocki";
+    repo = "microscheme";
+    rev = "v${version}";
+    sha256 = "5qTWsBCfj5DCZ3f9W1bdo6WAc1DZqVxg8D7pwC95duQ=";
   };
 
-  buildInputs = [ makeWrapper vim ];
-
-  installPhase = ''
-    make install PREFIX=$out
+  postPatch = ''
+    substituteInPlace makefile --replace gcc ${stdenv.cc.targetPrefix}cc
   '';
 
+  nativeBuildInputs = [ makeWrapper unixtools.xxd ];
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
   meta = with lib; {
     homepage = "http://microscheme.org";
     description = "A Scheme subset for Atmel microcontrollers";
@@ -24,7 +27,7 @@ stdenv.mkDerivation rec {
       microcontrollers, especially as found on Arduino boards.
     '';
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ ardumont ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/mint/default.nix b/nixpkgs/pkgs/development/compilers/mint/default.nix
index d1d103c047fb..1024ddb6a8a6 100644
--- a/nixpkgs/pkgs/development/compilers/mint/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mint/default.nix
@@ -1,15 +1,18 @@
-{ lib, fetchFromGitHub, crystal_0_33, openssl }:
+{ lib, fetchFromGitHub, crystal_0_36, openssl }:
 
-let crystal = crystal_0_33;
-in crystal.buildCrystalPackage rec {
-  version = "0.9.0";
+let
+  crystal = crystal_0_36;
+
+in
+crystal.buildCrystalPackage rec {
+  version = "0.11.0";
   pname = "mint";
 
   src = fetchFromGitHub {
     owner = "mint-lang";
     repo = "mint";
     rev = version;
-    sha256 = "0y1qr616x7s0pjgih6s1n4wiwb8kn8l1knnzmib6j4jmqax0jhz0";
+    sha256 = "sha256-QqO4Kc8hf6WNCENPvLwYIF9gtXG/VRR7DhyZvxB4VsA=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/compilers/mint/shards.nix b/nixpkgs/pkgs/development/compilers/mint/shards.nix
index 8e2b6b6ad4df..595f9c5ebee7 100644
--- a/nixpkgs/pkgs/development/compilers/mint/shards.nix
+++ b/nixpkgs/pkgs/development/compilers/mint/shards.nix
@@ -2,20 +2,20 @@
   admiral = {
     owner = "jwaldrip";
     repo = "admiral.cr";
-    rev = "v1.9.0";
-    sha256 = "0y8gsh1qz42bc9jawcrn0i49mzzfvf8znmivd8lybapf0f53fblz";
+    rev = "v1.11.2";
+    sha256 = "0rxsy41d0qpw9h1d3jvhmbmzqba9yhgyzc0jrdbg28f59fl7zp7q";
   };
   ameba = {
     owner = "crystal-ameba";
     repo = "ameba";
-    rev = "v0.12.0";
-    sha256 = "0g68yijbm2j4ig536fwq49d1z7x2iv9kp4g3gjklf5zn1sbqhm12";
+    rev = "v0.13.3";
+    sha256 = "0yhb8vfrfzsm3a45h2jmcrn1n7jy3zn2hwims3dikgq8kaggws9y";
   };
   baked_file_system = {
     owner = "schovi";
     repo = "baked_file_system";
-    rev = "v0.9.8";
-    sha256 = "12l375jllg1lxvfh610dz0a39p803xw6q9fxlmnc6hy55i0gm0y3";
+    rev = "7183bfde8d86a976a6912f582b51cbd1783456af";
+    sha256 = "0s1bsrimz30wfkkfmb4bm49mx44nhqj0hky8jkn0kz0mpc28mkkl";
   };
   diff = {
     owner = "MakeNowJust";
@@ -38,8 +38,8 @@
   kemal = {
     owner = "kemalcr";
     repo = "kemal";
-    rev = "v0.26.1";
-    sha256 = "169pwkjmk7x6j8i0rf5rpyk1y0hl7jaf9h6yrq4ha2ag9yq9i8fr";
+    rev = "v0.27.0";
+    sha256 = "01p5fkm6q9k6390dhhw3dwwzlxhxafykknkkcayv1k4ynn126hi7";
   };
   kilt = {
     owner = "jeromegn";
@@ -50,8 +50,8 @@
   markd = {
     owner = "icyleaf";
     repo = "markd";
-    rev = "v0.2.0";
-    sha256 = "0n27fndd77mlkgw1r4pf0sa8fz4gwsh7dpnjck95c0ml91cr8j1a";
+    rev = "620845abb6776d1765d20d86cc0220aa40f89a91";
+    sha256 = "1nq1ddmd2kgnl8vrk0y65lqhy145740a3s68kn0advm2xx8rbhmy";
   };
   radix = {
     owner = "luislavena";
@@ -72,9 +72,9 @@
     sha256 = "0mmssnabf476i07sajm7s3rlvfcav4lkh0n8g12rybxr6c9f683v";
   };
   tree_template = {
-    owner = "anykeyh";
+    owner = "gdotdesign";
     repo = "tree_template";
-    rev = "3fcb71ee6852040077dd1a2c8c55c67f4a95ba4e";
-    sha256 = "04w89wpnkna4ipyy3pxshqqwgk965hz1d31vqp0mrb0ilmpsywdk";
+    rev = "7e24c92208cc99938f3fbd8f5fecda22bcbe3cc3";
+    sha256 = "0ixscq7nqlp83x976d41kq83a5gw9kkk7lnxhlsc91000hm5h3wq";
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/miranda/default.nix b/nixpkgs/pkgs/development/compilers/miranda/default.nix
index 298cb5e21ead..5de16633ed7d 100644
--- a/nixpkgs/pkgs/development/compilers/miranda/default.nix
+++ b/nixpkgs/pkgs/development/compilers/miranda/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   makeFlags = [
-    "CC=cc"
+    "CC=${stdenv.cc.targetPrefix}cc"
     "CFLAGS=-O2"
     "PREFIX=${placeholder "out"}"
   ];
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs quotehostinfo
+    substituteInPlace Makefile --replace strip '${stdenv.cc.targetPrefix}strip'
   '';
 
   meta = with lib; {
@@ -69,5 +70,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.cs.kent.ac.uk/people/staff/dat/miranda/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ siraben ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/mosml/default.nix b/nixpkgs/pkgs/development/compilers/mosml/default.nix
index ec8fa793cfd4..f6d2053f315c 100644
--- a/nixpkgs/pkgs/development/compilers/mosml/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mosml/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gmp perl ];
 
-  makeFlags = [ "PREFIX=$(out)" ] ++ lib.optionals stdenv.isDarwin [ "CC=cc" ];
+  makeFlags = [ "PREFIX=$(out)" "CC=${stdenv.cc.targetPrefix}cc" ];
 
   src = fetchurl {
     url = "https://github.com/kfl/mosml/archive/ver-${version}.tar.gz";
diff --git a/nixpkgs/pkgs/development/compilers/mozart/binary.nix b/nixpkgs/pkgs/development/compilers/mozart/binary.nix
index 8366fd77a47a..b043187e6c1e 100644
--- a/nixpkgs/pkgs/development/compilers/mozart/binary.nix
+++ b/nixpkgs/pkgs/development/compilers/mozart/binary.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
 
   TK_LIBRARY = "${tk-8_5}/lib/tk8.5";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildCommand = ''
     mkdir $out
diff --git a/nixpkgs/pkgs/development/compilers/mruby/default.nix b/nixpkgs/pkgs/development/compilers/mruby/default.nix
index 25d35adff944..4d046cd7f84f 100644
--- a/nixpkgs/pkgs/development/compilers/mruby/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mruby/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mruby";
-  version = "2.1.2";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner   = "mruby";
     repo    = "mruby";
     rev     = version;
-    sha256  = "0fhfv8pi7i8jn2vgk2n2rjnbnfa12nhj514v8i4k353n7q4pmkh3";
+    sha256  = "sha256-C3K7ZooaOMa+V2HjxwiKxrrMb7ffl4QAgPsftRtb60c=";
   };
 
   nativeBuildInputs = [ ruby bison rake ];
diff --git a/nixpkgs/pkgs/development/compilers/muon/default.nix b/nixpkgs/pkgs/development/compilers/muon/default.nix
index 2e178f775b6e..aef02bca970d 100644
--- a/nixpkgs/pkgs/development/compilers/muon/default.nix
+++ b/nixpkgs/pkgs/development/compilers/muon/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildPhase = ''
     mkdir -p $out/bin $out/share/mu
     cp -r lib $out/share/mu
-    gcc -O3 -o $out/bin/mu-unwrapped bootstrap/mu64.c
+    ${stdenv.cc.targetPrefix}cc -o $out/bin/mu-unwrapped bootstrap/mu64.c
   '';
 
   installPhase = ''
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/nickmqb/muon";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/neko/default.nix b/nixpkgs/pkgs/development/compilers/neko/default.nix
index 8b157fb4ca00..52606781935b 100644
--- a/nixpkgs/pkgs/development/compilers/neko/default.nix
+++ b/nixpkgs/pkgs/development/compilers/neko/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv, fetchurl, boehmgc, zlib, sqlite, pcre, cmake, pkg-config
+{ lib, stdenv, fetchFromGitHub, boehmgc, zlib, sqlite, pcre, cmake, pkg-config
 , git, apacheHttpd, apr, aprutil, libmysqlclient, mbedtls, openssl, pkgs, gtk2, libpthreadstubs
 }:
 
 stdenv.mkDerivation rec {
   pname = "neko";
-  version = "2.2.0";
+  version = "2.3.0";
 
-  src = fetchurl {
-    url = "https://nekovm.org/media/neko-${version}-src.tar.gz";
-    sha256 = "1qv47zaa0vzhjlq5wb71627n7dbsxpc1gqpg0hsngjxnbnh1q46g";
+  src = fetchFromGitHub {
+    owner = "HaxeFoundation";
+    repo = "neko";
+    rev = "v${lib.replaceStrings [ "." ] [ "-" ] version}";
+    sha256 = "19rc59cx7qqhcqlb0znwbnwbg04c1yq6xmvrwm1xi46k3vxa957g";
   };
 
   nativeBuildInputs = [ cmake pkg-config git ];
@@ -31,8 +33,17 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A high-level dynamically typed programming language";
     homepage = "https://nekovm.org";
-    license = licenses.lgpl21;
-    maintainers = [ maintainers.marcweber ];
+    license = [
+      # list based on https://github.com/HaxeFoundation/neko/blob/v2-3-0/LICENSE
+      licenses.gpl2Plus    # nekoc, nekoml
+      licenses.lgpl21Plus  # mysql.ndll
+      licenses.bsd3        # regexp.ndll
+      licenses.zlib        # zlib.ndll
+      licenses.asl20       # mod_neko, mod_tora, mbedTLS
+      licenses.mit         # overall, other libs
+      "https://github.com/HaxeFoundation/neko/blob/v2-3-0/LICENSE#L24-L40" # boehm gc
+    ];
+    maintainers = [ maintainers.marcweber maintainers.locallycompact ];
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/nim/default.nix b/nixpkgs/pkgs/development/compilers/nim/default.nix
index 27427e75d003..676e35b06bb4 100644
--- a/nixpkgs/pkgs/development/compilers/nim/default.nix
+++ b/nixpkgs/pkgs/development/compilers/nim/default.nix
@@ -1,22 +1,10 @@
 # https://nim-lang.github.io/Nim/packaging.html
+# https://nim-lang.org/docs/nimc.html
 
-{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub, makeWrapper, gdb, openssl
-, pcre, readline, boehmgc, sqlite, nim-unwrapped, nimble-unwrapped }:
+{ lib, buildPackages, stdenv, fetchurl, fetchgit, fetchFromGitHub, makeWrapper
+, openssl, pcre, readline, boehmgc, sqlite, nim-unwrapped }:
 
 let
-  version = "1.4.2";
-  src = fetchurl {
-    url = "https://nim-lang.org/download/nim-${version}.tar.xz";
-    sha256 = "0q8i56343b69f1bh48a8vxkqman9i2kscyj0lf017n3xfy1pb903";
-  };
-
-  meta = with lib; {
-    description = "Statically typed, imperative programming language";
-    homepage = "https://nim-lang.org/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ehmry ];
-  };
-
   parseCpu = platform:
     with platform;
     # Derive a Nim CPU identifier
@@ -83,197 +71,251 @@ let
   nimHost = parsePlatform stdenv.hostPlatform;
   nimTarget = parsePlatform stdenv.targetPlatform;
 
-  wrapperInputs = rec {
+  bootstrapCompiler = stdenv.mkDerivation rec {
+    pname = "nim-bootstrap";
+    version = "0.20.0";
 
-    bootstrap = stdenv.mkDerivation rec {
-      pname = "nim-bootstrap";
-      version = "0.20.0";
+    src = fetchgit {
+      # A Git checkout is much smaller than a GitHub tarball.
+      url = "https://github.com/nim-lang/csources.git";
+      rev = "v${version}";
+      sha256 = "0i6vsfy1sgapx43n226q8m0pvn159sw2mhp50zm3hhb9zfijanis";
+    };
 
-      src = fetchgit {
-        # A Git checkout is much smaller than a GitHub tarball.
-        url = "https://github.com/nim-lang/csources.git";
-        rev = "v" + version;
-        sha256 = "0i6vsfy1sgapx43n226q8m0pvn159sw2mhp50zm3hhb9zfijanis";
-      };
+    enableParallelBuilding = true;
 
-      enableParallelBuilding = true;
+    installPhase = ''
+      runHook preInstall
+      install -Dt $out/bin bin/nim
+      runHook postInstall
+    '';
+  };
 
-      installPhase = ''
-        runHook preInstall
-        install -Dt $out/bin bin/nim
-        runHook postInstall
-      '';
-    };
+in {
 
-    unwrapped = stdenv.mkDerivation {
-      pname = "nim-unwrapped";
-      inherit version src;
+  nim-unwrapped = stdenv.mkDerivation rec {
+    pname = "nim-unwrapped";
+    version = "1.4.4";
+    strictDeps = true;
 
-      buildInputs = [ boehmgc openssl pcre readline sqlite ];
+    src = fetchurl {
+      url = "https://nim-lang.org/download/nim-${version}.tar.xz";
+      sha256 = "03k642nnjca0s6jlbn1v4jld51mbkix97jli4ky74gqlxyfp4wvd";
+    };
 
-      patches = [
-        ./NIM_CONFIG_DIR.patch
-        # Override compiler configuration via an environmental variable
+    buildInputs = [ boehmgc openssl pcre readline sqlite ];
 
-        ./nixbuild.patch
-        # Load libraries at runtime by absolute path
-      ];
+    patches = [
+      ./NIM_CONFIG_DIR.patch
+      # Override compiler configuration via an environmental variable
 
-      configurePhase = ''
-        runHook preConfigure
-        cp ${bootstrap}/bin/nim bin/
-        echo 'define:nixbuild' >> config/nim.cfg
-        runHook postConfigure
-      '';
+      ./nixbuild.patch
+      # Load libraries at runtime by absolute path
+    ];
 
-      kochArgs = [
-        "--cpu:${nimHost.cpu}"
-        "--os:${nimHost.os}"
-        "-d:release"
-        "-d:useGnuReadline"
-      ] ++ lib.optional (stdenv.isDarwin || stdenv.isLinux)
-        "-d:nativeStacktrace";
+    configurePhase = ''
+      runHook preConfigure
+      cp ${bootstrapCompiler}/bin/nim bin/
+      echo 'define:nixbuild' >> config/nim.cfg
+      runHook postConfigure
+    '';
 
-      buildPhase = ''
-        runHook preBuild
-        local HOME=$TMPDIR
-        ./bin/nim c koch
-        ./koch boot $kochArgs --parallelBuild:$NIX_BUILD_CORES
-        ./koch toolsNoExternal $kochArgs --parallelBuild:$NIX_BUILD_CORES
-        runHook postBuild
-      '';
+    kochArgs = [
+      "--cpu:${nimHost.cpu}"
+      "--os:${nimHost.os}"
+      "-d:release"
+      "-d:useGnuReadline"
+    ] ++ lib.optional (stdenv.isDarwin || stdenv.isLinux) "-d:nativeStacktrace";
+
+    buildPhase = ''
+      runHook preBuild
+      local HOME=$TMPDIR
+      ./bin/nim c koch
+      ./koch boot $kochArgs --parallelBuild:$NIX_BUILD_CORES
+      ./koch toolsNoExternal $kochArgs --parallelBuild:$NIX_BUILD_CORES
+      runHook postBuild
+    '';
 
-      installPhase = ''
-        runHook preInstall
-        install -Dt $out/bin bin/*
-        ln -sf $out/nim/bin/nim $out/bin/nim
-        ./install.sh $out
-        runHook postInstall
-      '';
+    installPhase = ''
+      runHook preInstall
+      install -Dt $out/bin bin/*
+      ln -sf $out/nim/bin/nim $out/bin/nim
+      ./install.sh $out
+      runHook postInstall
+    '';
 
-      inherit meta;
+    meta = with lib; {
+      description = "Statically typed, imperative programming language";
+      homepage = "https://nim-lang.org/";
+      license = licenses.mit;
+      maintainers = with maintainers; [ ehmry ];
     };
+  };
 
-    nimble-unwrapped = stdenv.mkDerivation rec {
-      pname = "nimble-unwrapped";
-      version = "0.12.0";
-
-      src = fetchFromGitHub {
-        owner = "nim-lang";
-        repo = "nimble";
-        rev = "v" + version;
-        sha256 = "0vx0mdk31n00dr2rhiip6f4x7aa3z3mnblnmwk7f65ixd5hayq6y";
-      };
+  nimble-unwrapped = stdenv.mkDerivation rec {
+    pname = "nimble-unwrapped";
+    version = "0.13.1";
+    strictDeps = true;
 
-      nativeBuildInputs = [ nim-unwrapped ];
-      buildInputs = [ openssl ];
+    src = fetchFromGitHub {
+      owner = "nim-lang";
+      repo = "nimble";
+      rev = "v${version}";
+      sha256 = "1idb4r0kjbqv16r6bgmxlr13w2vgq5332hmnc8pjbxiyfwm075x8";
+    };
 
-      nimFlags = [ "--cpu:${nimHost.cpu}" "--os:${nimHost.os}" "-d:release" ];
+    depsBuildBuild = [ nim-unwrapped ];
+    buildInputs = [ openssl ];
 
-      buildPhase = ''
-        runHook preBuild
-        HOME=$NIX_BUILD_TOP nim c $nimFlags src/nimble
-        runHook postBuild
-      '';
+    nimFlags = [ "--cpu:${nimHost.cpu}" "--os:${nimHost.os}" "-d:release" ];
 
-      installPhase = ''
-        runHook preBuild
-        install -Dt $out/bin src/nimble
-        runHook postBuild
-      '';
-    };
+    buildPhase = ''
+      runHook preBuild
+      HOME=$NIX_BUILD_TOP nim c $nimFlags src/nimble
+      runHook postBuild
+    '';
 
+    installPhase = ''
+      runHook preBuild
+      install -Dt $out/bin src/nimble
+      runHook postBuild
+    '';
   };
 
-  wrapped = let
-    nim' = nim-unwrapped;
-    nimble' = nimble-unwrapped;
+  nim = let
+    nim' = buildPackages.nim-unwrapped;
+    nimble' = buildPackages.nimble-unwrapped;
     inherit (stdenv) targetPlatform;
   in stdenv.mkDerivation {
     name = "${targetPlatform.config}-nim-wrapper-${nim'.version}";
     inherit (nim') version;
     preferLocalBuild = true;
+    strictDeps = true;
 
     nativeBuildInputs = [ makeWrapper ];
 
+    patches = [
+      ./nim.cfg.patch
+      # Remove configurations that clash with ours
+    ];
+
     unpackPhase = ''
       runHook preUnpack
-      tar xf ${nim'.src} nim-$version/config/nim.cfg
+      tar xf ${nim'.src} nim-$version/config
       cd nim-$version
       runHook postUnpack
     '';
 
     dontConfigure = true;
 
+    buildPhase =
+      # Configure the Nim compiler to use $CC and $CXX as backends
+      # The compiler is configured by two configuration files, each with
+      # a different DSL. The order of evaluation matters and that order
+      # is not documented, so duplicate the configuration across both files.
+      ''
+        runHook preBuild
+        cat >> config/config.nims << WTF
+
+        switch("os", "${nimTarget.os}")
+        switch("cpu", "${nimTarget.cpu}")
+        switch("define", "nixbuild")
+
+        # Configure the compiler using the $CC set by Nix at build time
+        import strutils
+        let cc = getEnv"CC"
+        if cc.contains("gcc"):
+          switch("cc", "gcc")
+        elif cc.contains("clang"):
+          switch("cc", "clang")
+        WTF
+
+        mv config/nim.cfg config/nim.cfg.old
+        cat > config/nim.cfg << WTF
+        os = "${nimTarget.os}"
+        cpu =  "${nimTarget.cpu}"
+        define:"nixbuild"
+        WTF
+
+        cat >> config/nim.cfg < config/nim.cfg.old
+        rm config/nim.cfg.old
+
+        cat >> config/nim.cfg << WTF
+
+        clang.cpp.exe %= "\$CXX"
+        clang.cpp.linkerexe %= "\$CXX"
+        clang.exe %= "\$CC"
+        clang.linkerexe %= "\$CC"
+        gcc.cpp.exe %= "\$CXX"
+        gcc.cpp.linkerexe %= "\$CXX"
+        gcc.exe %= "\$CC"
+        gcc.linkerexe %= "\$CC"
+        WTF
+
+        runHook postBuild
+      '';
+
     wrapperArgs = [
-      "--prefix PATH : ${lib.makeBinPath [ stdenv.cc gdb ]}:${
+      "--prefix PATH : ${lib.makeBinPath [ buildPackages.gdb ]}:${
         placeholder "out"
       }/bin"
-      "--prefix LD_LIBRARY_PATH : ${
-        lib.makeLibraryPath [ stdenv.cc.libc openssl ]
-      }"
+      # Used by nim-gdb
+
+      "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ openssl pcre ]}"
+      # These libraries may be referred to by the standard library.
+      # This is broken for cross-compilation because the package
+      # set will be shifted back by nativeBuildInputs.
+
       "--set NIM_CONFIG_PATH ${placeholder "out"}/etc/nim"
+      # Use the custom configuration
+
       ''--set NIX_HARDENING_ENABLE "''${NIX_HARDENING_ENABLE/fortify}"''
       # Fortify hardening appends -O2 to gcc flags which is unwanted for unoptimized nim builds.
     ];
 
-    buildPhase = with stdenv;
-      let
-        ccType = if cc.isGNU then
-          "gcc"
-        else if cc.isClang then
-          "clang"
-        else
-          abort "no Nim configuration available for ${cc.name}";
-      in ''
-        runHook preBuild
-        cat >> config/nim.cfg << EOF
-
-        define:nixbuild
-        os = ${nimTarget.os}
-        cpu = ${nimTarget.cpu}
-        cc = ${ccType}
-        EOF
-
-        mkdir -p $out/bin $out/etc/nim
-        export cc=$CC
-        export cxx=$CXX
-        substituteAll config/nim.cfg $out/etc/nim/nim.cfg \
-          --replace "cc = gcc" ""
-
-        for binpath in ${nim'}/bin/nim?*; do
-          local binname=`basename $binpath`
-          makeWrapper \
-            $binpath $out/bin/${targetPlatform.config}-$binname \
-            $wrapperArgs
-          ln -s $out/bin/${targetPlatform.config}-$binname $out/bin/$binname
-        done
+    installPhase = ''
+      runHook preInstall
 
-        makeWrapper \
-          ${nim'}/nim/bin/nim $out/bin/${targetPlatform.config}-nim \
-          $wrapperArgs
-        ln -s $out/bin/${targetPlatform.config}-nim $out/bin/nim
+      mkdir -p $out/bin $out/etc
+
+      cp -r config $out/etc/nim
 
+      for binpath in ${nim'}/bin/nim?*; do
+        local binname=`basename $binpath`
         makeWrapper \
-          ${nim'}/bin/testament $out/bin/${targetPlatform.config}-testament \
+          $binpath $out/bin/${targetPlatform.config}-$binname \
           $wrapperArgs
-        ln -s $out/bin/${targetPlatform.config}-testament $out/bin/testament
+        ln -s $out/bin/${targetPlatform.config}-$binname $out/bin/$binname
+      done
 
-        makeWrapper \
-          ${nimble'}/bin/nimble $out/bin/${targetPlatform.config}-nimble \
-          --suffix PATH : $out/bin
-        ln -s $out/bin/${targetPlatform.config}-nimble $out/bin/nimble
+      makeWrapper \
+        ${nim'}/nim/bin/nim $out/bin/${targetPlatform.config}-nim \
+        $wrapperArgs
+      ln -s $out/bin/${targetPlatform.config}-nim $out/bin/nim
 
-        runHook postBuild
-      '';
+      makeWrapper \
+        ${nim'}/bin/testament $out/bin/${targetPlatform.config}-testament \
+        $wrapperArgs
+      ln -s $out/bin/${targetPlatform.config}-testament $out/bin/testament
+
+      makeWrapper \
+        ${nimble'}/bin/nimble $out/bin/${targetPlatform.config}-nimble \
+        --suffix PATH : $out/bin
+      ln -s $out/bin/${targetPlatform.config}-nimble $out/bin/nimble
 
-    dontInstall = true;
+      runHook postInstall
+    '';
+
+    passthru = {
+      nim = nim';
+      nimble = nimble';
+    };
 
-    meta = meta // {
+    meta = nim'.meta // {
       description = nim'.meta.description
         + " (${targetPlatform.config} wrapper)";
-      platforms = lib.platforms.unix;
+      platforms = with lib.platforms; unix ++ genode;
     };
   };
 
-in wrapped // wrapperInputs
+}
diff --git a/nixpkgs/pkgs/development/compilers/nim/nim.cfg.patch b/nixpkgs/pkgs/development/compilers/nim/nim.cfg.patch
new file mode 100644
index 000000000000..a95b672d1c1d
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/nim/nim.cfg.patch
@@ -0,0 +1,70 @@
+diff --git a/config/nim.cfg b/config/nim.cfg
+index a33a2f0a9..e069193ff 100644
+--- a/config/nim.cfg
++++ b/config/nim.cfg
+@@ -8,26 +8,12 @@
+ # Environment variables can be accessed like so:
+ #  gcc.path %= "$CC_PATH"
+ 
+-cc = gcc
+-
+ # additional options always passed to the compiler:
+ --parallel_build: "0" # 0 to auto-detect number of processors
+ 
+ hint[LineTooLong]=off
+ #hint[XDeclaredButNotUsed]=off
+ 
+-# Examples of how to setup a cross-compiler:
+-
+-# Cross-compiling for Raspberry Pi.
+-# (This compiler is available in gcc-arm-linux-gnueabihf package on Ubuntu)
+-arm.linux.gcc.exe = "arm-linux-gnueabihf-gcc"
+-arm.linux.gcc.linkerexe = "arm-linux-gnueabihf-gcc"
+-
+-# For OpenWRT, you will also need to adjust PATH to point to your toolchain.
+-mips.linux.gcc.exe = "mips-openwrt-linux-gcc"
+-mips.linux.gcc.linkerexe = "mips-openwrt-linux-gcc"
+-
+-
+ path="$lib/deprecated/core"
+ path="$lib/deprecated/pure"
+ path="$lib/pure/collections"
+@@ -111,7 +97,7 @@ path="$lib/pure"
+ @end
+ 
+ @if unix:
+-  @if not bsd or haiku:
++  @if not bsd or genode or haiku:
+     # -fopenmp
+     gcc.options.linker = "-ldl"
+     gcc.cpp.options.linker = "-ldl"
+@@ -295,29 +281,6 @@ vcc.cpp.options.size = "/O1"
+ # Configuration for the Tiny C Compiler:
+ tcc.options.always = "-w"
+ 
+-# Configuration for the Genode toolchain
+-@if genode:
+-  noCppExceptions # avoid std C++
+-  tlsEmulation:on # no TLS segment register magic
+-  @if i386 or amd64:
+-    gcc.exe = "genode-x86-gcc"
+-    gcc.cpp.exe = "genode-x86-g++"
+-    gcc.cpp.linkerexe = "genode-x86-ld"
+-  @elif arm:
+-    gcc.exe = "genode-arm-gcc"
+-    gcc.cpp.exe = "genode-arm-g++"
+-    gcc.cpp.linkerexe = "genode-arm-ld"
+-  @elif arm64:
+-    gcc.exe = "genode-aarch64-gcc"
+-    gcc.cpp.exe = "genode-aarch64-g++"
+-    gcc.cpp.linkerexe = "genode-aarch64-ld"
+-  @elif riscv64:
+-    gcc.exe = "genode-riscv-gcc"
+-    gcc.cpp.exe = "genode-riscv-g++"
+-    gcc.cpp.linkerexe = "genode-riscv-ld"
+-  @end
+-@end
+-
+ @if arm or arm64:
+   --define:nimEmulateOverflowChecks
+ @end
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/3.08.0.nix b/nixpkgs/pkgs/development/compilers/ocaml/3.08.0.nix
deleted file mode 100644
index 5762bed41a4a..000000000000
--- a/nixpkgs/pkgs/development/compilers/ocaml/3.08.0.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, xlibsWrapper }:
-
-stdenv.mkDerivation rec {
-  pname = "ocaml";
-  version = "3.08.0";
-
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = "http://tarballs.nixos.org/${pname}-${version}.tar.gz";
-    sha256 = "135g5waj7djzrj0dbc8z1llasfs2iv5asq41jifhldxb4l2b97mx";
-  };
-  configureScript = ./configure-3.08.0;
-  dontAddPrefix = "True";
-  configureFlags = ["-no-tk" "-x11lib" xlibsWrapper];
-  buildFlags = ["world" "bootstrap" "opt"];
-  checkTarget = ["opt.opt"];
-
-  meta = {
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/3.10.0.nix b/nixpkgs/pkgs/development/compilers/ocaml/3.10.0.nix
deleted file mode 100644
index e3778457fd3f..000000000000
--- a/nixpkgs/pkgs/development/compilers/ocaml/3.10.0.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchurl, xlibsWrapper, ncurses }:
-
-stdenv.mkDerivation (rec {
-
-  pname = "ocaml";
-  version = "3.10.0";
-
-  src = fetchurl {
-    url = "https://caml.inria.fr/pub/distrib/ocaml-3.10/${pname}-${version}.tar.bz2";
-    sha256 = "1ihmx1civ78s7k2hfc05z1s9vbyx2qw7fg8lnbxnfd6zxkk8878d";
-  };
-
-  prefixKey = "-prefix ";
-  configureFlags = ["-no-tk" "-x11lib" xlibsWrapper];
-  buildFlags = [ "world" "bootstrap" "world.opt" ];
-  buildInputs = [xlibsWrapper ncurses];
-  installTargets = "install installopt";
-  patchPhase = ''
-    CAT=$(type -tp cat)
-    sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
-  '';
-  postBuild = ''
-    mkdir -p $out/include
-    ln -sv $out/lib/ocaml/caml $out/include/caml
-  '';
-
-  meta = {
-    homepage = "http://caml.inria.fr/ocaml";
-    license = with lib.licenses; [ qpl lgpl2 ];
-    description = "Most popular variant of the Caml language";
-    platforms = lib.platforms.linux;
-  };
-
-})
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/3.11.2.nix b/nixpkgs/pkgs/development/compilers/ocaml/3.11.2.nix
deleted file mode 100644
index 642b0d91b7f8..000000000000
--- a/nixpkgs/pkgs/development/compilers/ocaml/3.11.2.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ stdenv, fetchurl, ncurses, xlibsWrapper }:
-
-let
-   useX11 = stdenv.isi686 || stdenv.isx86_64;
-   useNativeCompilers = stdenv.isi686 || stdenv.isx86_64 || stdenv.isMips;
-   inherit (lib) optionals optionalString;
-in
-
-stdenv.mkDerivation rec {
-
-  pname = "ocaml";
-  version = "3.11.2";
-
-  src = fetchurl {
-    url = "https://caml.inria.fr/pub/distrib/ocaml-3.11/${pname}-${version}.tar.bz2";
-    sha256 = "86f3387a0d7e7c8be2a3c53af083a5a726e333686208d5ea0dd6bb5ac3f58143";
-  };
-
-  # Needed to avoid a SIGBUS on the final executable on mips
-  NIX_CFLAGS_COMPILE = if stdenv.isMips then "-fPIC" else "";
-
-  patches = optionals stdenv.isDarwin [ ./gnused-on-osx-fix.patch ] ++
-    [ (fetchurl {
-        name = "0007-Fix-ocamlopt-w.r.t.-binutils-2.21.patch";
-        url = "http://caml.inria.fr/mantis/file_download.php?file_id=418&type=bug";
-        sha256 = "612a9ac108bbfce2238aa5634123da162f0315dedb219958be705e0d92dcdd8e";
-      })
-    ];
-
-  prefixKey = "-prefix ";
-  configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" xlibsWrapper ];
-  buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
-  buildInputs = [ncurses] ++ optionals useX11 [ xlibsWrapper ];
-  installTargets = "install" + optionalString useNativeCompilers " installopt";
-  prePatch = ''
-    CAT=$(type -tp cat)
-    sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
-    patch -p0 < ${./mips64.patch}
-  '';
-  postBuild = ''
-    mkdir -p $out/include
-    ln -sv $out/lib/ocaml/caml $out/include/caml
-  '';
-
-  meta = with lib; {
-    homepage = "http://caml.inria.fr/ocaml";
-    license = with licenses; [
-      qpl /* compiler */
-      lgpl2 /* library */
-    ];
-    description = "Most popular variant of the Caml language";
-
-    longDescription =
-      '' Objective Caml is the most popular variant of the Caml language.
-         From a language standpoint, it extends the core Caml language with a
-         fully-fledged object-oriented layer, as well as a powerful module
-         system, all connected by a sound, polymorphic type system featuring
-         type inference.
-
-         The Objective Caml system is an industrial-strength implementation
-         of this language, featuring a high-performance native-code compiler
-         (ocamlopt) for 9 processor architectures (IA32, PowerPC, AMD64,
-         Alpha, Sparc, Mips, IA64, HPPA, StrongArm), as well as a bytecode
-         compiler (ocamlc) and an interactive read-eval-print loop (ocaml)
-         for quick development and portability.  The Objective Caml
-         distribution includes a comprehensive standard library, a replay
-         debugger (ocamldebug), lexer (ocamllex) and parser (ocamlyacc)
-         generators, a pre-processor pretty-printer (camlp4) and a
-         documentation generator (ocamldoc).
-       '';
-
-    platforms = with platforms; linux ++ darwin;
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/3.12.1-darwin-fix-configure.patch b/nixpkgs/pkgs/development/compilers/ocaml/3.12.1-darwin-fix-configure.patch
deleted file mode 100644
index 4b867bbb1e6f..000000000000
--- a/nixpkgs/pkgs/development/compilers/ocaml/3.12.1-darwin-fix-configure.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -Nuar ocaml-3.12.1/configure ocaml-3.12.1-fix-configure/configure
---- ocaml-3.12.1/configure	2011-07-04 23:15:01.000000000 +0200
-+++ ocaml-3.12.1-fix-configure/configure	2012-06-06 22:20:40.000000000 +0200
-@@ -259,7 +259,7 @@
-     bytecccompopts="-fno-defer-pop $gcc_warnings -DSHRINKED_GNUC"
-     mathlib="";;
-   *,*-*-darwin*)
--    bytecccompopts="-fno-defer-pop -no-cpp-precomp $gcc_warnings"
-+    bytecccompopts="-fno-defer-pop $gcc_warnings"
-     mathlib=""
-     # Tell gcc that we can use 32-bit code addresses for threaded code
-     # unless we are compiled for a shared library (-fPIC option)
-@@ -739,7 +739,7 @@
-   *,*,rhapsody,*)      nativecccompopts="$gcc_warnings -DDARWIN_VERSION_6 $dl_defs"
-                        if $arch64; then partialld="ld -r -arch ppc64"; fi;;
-   *,gcc*,cygwin,*)     nativecccompopts="$gcc_warnings -U_WIN32";;
--  amd64,gcc*,macosx,*) partialld="ld -r -arch x86_64";;
-+  amd64,gcc*,macosx,*) partialld="ld -r";;
-   amd64,gcc*,solaris,*) partialld="ld -r -m elf_x86_64";;
-   *,gcc*,*,*)          nativecccompopts="$gcc_warnings";;
- esac
-@@ -752,8 +752,8 @@
-                     asppprofflags='-pg -DPROFILING';;
-   alpha,*,*)        as='as'
-                     aspp='gcc -c';;
--  amd64,*,macosx)   as='as -arch x86_64'
--                    aspp='gcc -arch x86_64 -c';;
-+  amd64,*,macosx)   as='as'
-+                    aspp='gcc -c';;
-   amd64,*,solaris)  as='as --64'
-                     aspp='gcc -m64 -c';;
-   amd64,*,*)        as='as'
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/3.12.1.nix b/nixpkgs/pkgs/development/compilers/ocaml/3.12.1.nix
deleted file mode 100644
index 781b5be09824..000000000000
--- a/nixpkgs/pkgs/development/compilers/ocaml/3.12.1.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{ stdenv, fetchurl, ncurses, xlibsWrapper }:
-
-let
-   useX11 = !stdenv.isAarch32 && !stdenv.isMips;
-   useNativeCompilers = !stdenv.isMips;
-   inherit (lib) optionals optionalString;
-in
-
-stdenv.mkDerivation rec {
-
-  pname = "ocaml";
-  version = "3.12.1";
-
-  src = fetchurl {
-    url = "https://caml.inria.fr/pub/distrib/ocaml-3.12/${pname}-${version}.tar.bz2";
-    sha256 = "13cmhkh7s6srnlvhg3s9qzh3a5dbk2m9qr35jzq922sylwymdkzd";
-  };
-
-  prefixKey = "-prefix ";
-  configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" xlibsWrapper ];
-  buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
-  buildInputs = [ncurses] ++ optionals useX11 [ xlibsWrapper ];
-  installTargets = "install" + optionalString useNativeCompilers " installopt";
-  patches = optionals stdenv.isDarwin [ ./3.12.1-darwin-fix-configure.patch ];
-  preConfigure = ''
-    CAT=$(type -tp cat)
-    sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
-  '';
-  postBuild = ''
-    mkdir -p $out/include
-    ln -sv $out/lib/ocaml/caml $out/include/caml
-  '';
-
-  passthru = {
-    nativeCompilers = useNativeCompilers;
-  };
-
-  meta = with lib; {
-    homepage = "http://caml.inria.fr/ocaml";
-    branch = "3.12";
-    license = with licenses; [
-      qpl /* compiler */
-      lgpl2 /* library */
-    ];
-    description = "Most popular variant of the Caml language";
-
-    longDescription =
-      ''
-        OCaml is the most popular variant of the Caml language.  From a
-        language standpoint, it extends the core Caml language with a
-        fully-fledged object-oriented layer, as well as a powerful module
-        system, all connected by a sound, polymorphic type system featuring
-        type inference.
-
-        The OCaml system is an industrial-strength implementation of this
-        language, featuring a high-performance native-code compiler (ocamlopt)
-        for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc,
-        Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc)
-        and an interactive read-eval-print loop (ocaml) for quick development
-        and portability.  The OCaml distribution includes a comprehensive
-        standard library, a replay debugger (ocamldebug), lexer (ocamllex) and
-        parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4)
-        and a documentation generator (ocamldoc).
-      '';
-
-    platforms = with platforms; linux;
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/4.11.nix b/nixpkgs/pkgs/development/compilers/ocaml/4.11.nix
index afda8592818f..3e5aefc11f1c 100644
--- a/nixpkgs/pkgs/development/compilers/ocaml/4.11.nix
+++ b/nixpkgs/pkgs/development/compilers/ocaml/4.11.nix
@@ -1,6 +1,6 @@
 import ./generic.nix {
   major_version = "4";
   minor_version = "11";
-  patch_version = "1";
-  sha256 = "0k4521c0p10c5ams6vjv5qkkjhmpkb0bfn04llcz46ah0f3r2jpa";
+  patch_version = "2";
+  sha256 = "1m3wrgkkv3f77wvcymjm0i2srxzmx62y6jln3i0a2px07ng08l9z";
 }
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/4.12.nix b/nixpkgs/pkgs/development/compilers/ocaml/4.12.nix
index c422d2a15a3f..0662e66e0b6a 100644
--- a/nixpkgs/pkgs/development/compilers/ocaml/4.12.nix
+++ b/nixpkgs/pkgs/development/compilers/ocaml/4.12.nix
@@ -1,9 +1,6 @@
 import ./generic.nix {
   major_version = "4";
   minor_version = "12";
-  patch_version = "0-beta1";
-  src = fetchTarball {
-    url = "http://caml.inria.fr/pub/distrib/ocaml-4.12/ocaml-4.12.0~beta1.tar.xz";
-    sha256 = "1rny74mi0knl8byqg2naw1mgvn22c2zihlwvzbkd56j97flqsxsm";
-  };
+  patch_version = "0";
+  sha256 = "1hxy349jfa2vkfgmxf6pvd9w4z5bmcgsg0fxfdabcghyvjw9vvir";
 }
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/generic.nix b/nixpkgs/pkgs/development/compilers/ocaml/generic.nix
index d4a6b6250b52..d9853dd642ab 100644
--- a/nixpkgs/pkgs/development/compilers/ocaml/generic.nix
+++ b/nixpkgs/pkgs/development/compilers/ocaml/generic.nix
@@ -66,6 +66,10 @@ stdenv.mkDerivation (args // {
   preConfigure = optionalString (!lib.versionAtLeast version "4.04") ''
     CAT=$(type -tp cat)
     sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
+  '' + optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+    # Do what upstream does by default now: https://github.com/ocaml/ocaml/pull/10176
+    # This is required for aarch64-darwin, everything else works as is.
+    AS="${stdenv.cc}/bin/cc -c" ASPP="${stdenv.cc}/bin/cc -c"
   '';
   postBuild = ''
     mkdir -p $out/include
diff --git a/nixpkgs/pkgs/development/compilers/opa/default.nix b/nixpkgs/pkgs/development/compilers/opa/default.nix
index 5e648c9de4ad..8e70ca8dac25 100644
--- a/nixpkgs/pkgs/development/compilers/opa/default.nix
+++ b/nixpkgs/pkgs/development/compilers/opa/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "1qs91rq9xrafv2mf2v415k8lv91ab3ycz0xkpjh1mng5ca3pjlf3";
   };
 
-  patches = [ ./ocaml-4.03.patch ];
+  patches = [ ./ocaml-4.03.patch ./ocaml-4.04.patch ];
 
   # Paths so the opa compiler code generation will use the same programs as were
   # used to build opa.
diff --git a/nixpkgs/pkgs/development/compilers/opa/ocaml-4.04.patch b/nixpkgs/pkgs/development/compilers/opa/ocaml-4.04.patch
new file mode 100644
index 000000000000..45cae411fb34
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/opa/ocaml-4.04.patch
@@ -0,0 +1,75 @@
+diff --git a/compiler/libbsl/bslLib.ml b/compiler/libbsl/bslLib.ml
+index b9f75bd1..171af065 100644
+--- a/compiler/libbsl/bslLib.ml
++++ b/compiler/libbsl/bslLib.ml
+@@ -726,7 +726,7 @@ struct
+       let root elt = !(elt.root)
+       let elt_name elt = elt.name
+       let elts e = e
+-      let children = List.map (fun e -> e.name, e)
++      let children m = List.map (fun e -> e.name, e) m
+       let is_root e = Path.is_root e.pwd
+ 
+       let parent e =
+diff --git a/compiler/passes/surfaceAstDependencies.ml b/compiler/passes/surfaceAstDependencies.ml
+index f4354a3f..81253d32 100644
+--- a/compiler/passes/surfaceAstDependencies.ml
++++ b/compiler/passes/surfaceAstDependencies.ml
+@@ -66,7 +66,6 @@ open SurfaceAst
+ 
+ (* shorthands *)
+ module SAH = SurfaceAstHelper
+-module C = SurfaceAstCons.ExprIdentCons
+ module D = SurfaceAstDecons
+ module S = SurfaceAst
+ 
+diff --git a/compiler/passes/surfaceAstPasses.ml b/compiler/passes/surfaceAstPasses.ml
+index 10edf5cb..00de59fa 100644
+--- a/compiler/passes/surfaceAstPasses.ml
++++ b/compiler/passes/surfaceAstPasses.ml
+@@ -25,7 +25,6 @@ open SurfaceAstPassesTypes
+ 
+ (* alias *)
+ module C = SurfaceAstCons.ExprIdentCons
+-module CS = SurfaceAstCons.StringCons
+ 
+ 
+ 
+diff --git a/compiler/qmlslicer/qmlSimpleSlicer.ml b/compiler/qmlslicer/qmlSimpleSlicer.ml
+index 2eebd96b..04ce77c8 100644
+--- a/compiler/qmlslicer/qmlSimpleSlicer.ml
++++ b/compiler/qmlslicer/qmlSimpleSlicer.ml
+@@ -17,7 +17,6 @@
+ *)
+ module Format = Base.Format
+ module List = Base.List
+-module String = Base.String
+ module Q = QmlAst
+ module Package = ObjectFiles.Package
+ 
+diff --git a/ocamllib/libbase/baseObj.mli b/ocamllib/libbase/baseObj.mli
+index da2d9736..82d72963 100644
+--- a/ocamllib/libbase/baseObj.mli
++++ b/ocamllib/libbase/baseObj.mli
+@@ -21,7 +21,7 @@ type t = Obj.t
+ external repr : 'a -> t = "%identity"
+ external obj : t -> 'a = "%identity"
+ external magic : 'a -> 'b = "%identity"
+-external is_block : t -> bool = "caml_obj_is_block"
++val [@inline always] is_block : t -> bool
+ external is_int : t -> bool = "%obj_is_int"
+ external tag : t -> int = "caml_obj_tag"
+ external set_tag : t -> int -> unit = "caml_obj_set_tag"
+diff --git a/ocamllib/libbase/baseString.ml b/ocamllib/libbase/baseString.ml
+index 640ce2fa..6931c608 100644
+--- a/ocamllib/libbase/baseString.ml
++++ b/ocamllib/libbase/baseString.ml
+@@ -20,7 +20,7 @@
+ (* depends *)
+ module Char = BaseChar
+ 
+-include Bytes
++include String
+ 
+ let compare_int (a:int) b = Pervasives.compare a b
+ 
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/11.nix b/nixpkgs/pkgs/development/compilers/openjdk/11.nix
index 18440a718d19..f9dd7205659e 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/11.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/11.nix
@@ -11,8 +11,8 @@
 let
   major = "11";
   minor = "0";
-  update = "9";
-  build = "11";
+  update = "10";
+  build = "9";
 
   openjdk = stdenv.mkDerivation rec {
     pname = "openjdk" + lib.optionalString headless "-headless";
@@ -22,12 +22,12 @@ let
       owner = "openjdk";
       repo = "jdk${major}u";
       rev = "jdk-${version}";
-      sha256 = "11j2rqz9nag5y562g99py4p72f2kv4wwwyrnaspmrzax00wynyx7";
+      sha256 = "06pm3hpz4ggiqwvkgzxr39y9kga7vk4flakfznz5979bvgb926vw";
     };
 
-    nativeBuildInputs = [ pkg-config autoconf ];
+    nativeBuildInputs = [ pkg-config autoconf unzip ];
     buildInputs = [
-      cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk11-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/12.nix b/nixpkgs/pkgs/development/compilers/openjdk/12.nix
index f1c6d8493eb7..8c12b5be7f2e 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/12.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/12.nix
@@ -22,9 +22,9 @@ let
       sha256 = "1ndlxmikyy298z7lqpr1bd0zxq7yx6xidj8y3c8mw9m9fy64h9c7";
     };
 
-    nativeBuildInputs = [ pkg-config autoconf ];
+    nativeBuildInputs = [ pkg-config autoconf unzip ];
     buildInputs = [
-      cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk11
     ] ++ lib.optionals (!headless && enableGnome2) [
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/13.nix b/nixpkgs/pkgs/development/compilers/openjdk/13.nix
index 05e367e63146..7e4d9fc7d693 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/13.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/13.nix
@@ -22,9 +22,9 @@ let
       sha256 = "1871ziss7ny19rw8f7bay5vznmhpqbfi4ihn3yygs06wyxhm0zmv";
     };
 
-    nativeBuildInputs = [ pkg-config autoconf ];
+    nativeBuildInputs = [ pkg-config autoconf unzip ];
     buildInputs = [
-      cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk13-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/14.nix b/nixpkgs/pkgs/development/compilers/openjdk/14.nix
index bda6444a8f98..d98d0e9f8ee6 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/14.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/14.nix
@@ -22,9 +22,9 @@ let
       sha256 = "1s1pc6ihzf0awp4hbaqfxmbica0hnrg8nr7s0yd2hfn7nan8xmf3";
     };
 
-    nativeBuildInputs = [ pkg-config autoconf ];
+    nativeBuildInputs = [ pkg-config autoconf unzip ];
     buildInputs = [
-      cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk14-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/8.nix b/nixpkgs/pkgs/development/compilers/openjdk/8.nix
index 96a01b0cd925..75dc722b1b22 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/8.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/8.nix
@@ -83,9 +83,9 @@ let
 
     outputs = [ "out" "jre" ];
 
-    nativeBuildInputs = [ pkg-config lndir ];
+    nativeBuildInputs = [ pkg-config lndir unzip ];
     buildInputs = [
-      cpio file which unzip zip perl openjdk8-bootstrap zlib cups freetype alsaLib
+      cpio file which zip perl openjdk8-bootstrap zlib cups freetype alsaLib
       libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig
     ] ++ lib.optionals (!headless && enableGnome2) [
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/darwin/11.nix b/nixpkgs/pkgs/development/compilers/openjdk/darwin/11.nix
index 64654351886f..6bcd79b274be 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/darwin/11.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/darwin/11.nix
@@ -7,15 +7,16 @@ let
   };
 
   jdk = stdenv.mkDerivation rec {
-    name = "zulu11.2.3-jdk11.0.1";
+    name = "zulu11.43.21-ca-jdk11.0.9";
 
     src = fetchurl {
       url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
-      sha256 = "1jxnxmy79inwf3146ygry1mzv3dj6yrzqll16j7dpr91x1p3dpqy";
+      sha256 = "1j19fb5mwdkfn6y8wfsnvxsz6wfpcab4xv439fqssxy520n6q4zs";
       curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-mac/";
     };
 
-    buildInputs = [ unzip freetype ];
+    nativeBuildInputs = [ unzip ];
+    buildInputs = [ freetype ];
 
     installPhase = ''
       mkdir -p $out
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/darwin/8.nix b/nixpkgs/pkgs/development/compilers/openjdk/darwin/8.nix
index 4df180c1f5a7..a5cd15817e9a 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/darwin/8.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/darwin/8.nix
@@ -18,7 +18,8 @@ let
       curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-linux/";
     };
 
-    buildInputs = [ unzip freetype ];
+    nativeBuildInputs = [ unzip ];
+    buildInputs = [ freetype ];
 
     installPhase = ''
       mkdir -p $out
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix b/nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix
index 8885db4115ea..938210547605 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix
@@ -7,15 +7,17 @@ let
   };
 
   jdk = stdenv.mkDerivation rec {
-    name = "zulu15.28.51-ca-jdk15.0.1";
+    pname = "zulu15.28.51-ca-jdk";
+    version = "15.0.1";
 
     src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
+      url = "https://cdn.azul.com/zulu/bin/${pname}${version}-macosx_x64.tar.gz";
       sha256 = "0h738pbnwcn7pjp0qyryzazqj5nw5sy2f8l0ycl39crm9ia6akvh";
       curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
     };
 
-    buildInputs = [ unzip freetype ];
+    nativeBuildInputs = [ unzip ];
+    buildInputs = [ freetype ];
 
     installPhase = ''
       mkdir -p $out
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/default.nix b/nixpkgs/pkgs/development/compilers/openjdk/default.nix
index ddd523ad7871..5606059c62d3 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/default.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/default.nix
@@ -22,9 +22,9 @@ let
       sha256 = "1h8n5figc9q0k9p8b0qggyhvqagvxanfih1lj5j492c74cd1mx1l";
     };
 
-    nativeBuildInputs = [ pkg-config autoconf ];
+    nativeBuildInputs = [ pkg-config autoconf unzip ];
     buildInputs = [
-      cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk15-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix b/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix
index f9059ae2fc43..655b29f6535d 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradleGen
 , pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsaLib
-, ffmpeg_3, python, ruby }:
+, ffmpeg, python3, ruby }:
 
 let
   major = "15";
@@ -21,8 +21,8 @@ let
       sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1";
     };
 
-    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg_3 ];
-    nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python ruby ];
+    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg ];
+    nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
 
     dontUseCmakeConfigure = true;
 
diff --git a/nixpkgs/pkgs/development/compilers/ophis/default.nix b/nixpkgs/pkgs/development/compilers/ophis/default.nix
new file mode 100644
index 000000000000..f28513a9bb26
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/ophis/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonApplication, fetchFromGitHub }:
+
+buildPythonApplication rec {
+  pname = "ophis";
+  version = "unstable-2019-04-13";
+
+  src = fetchFromGitHub {
+    owner = "michaelcmartin";
+    repo = "Ophis";
+    rev = "99f074da278d4ec80689c0e22e20c5552ea12512";
+    sha256 = "2x8vwLTSngqQqmVrVh/mM4peATgaRqOSwrfm5XCkg/g=";
+  };
+
+  sourceRoot = "./src";
+
+  meta = with lib; {
+    homepage = "http://michaelcmartin.github.io/Ophis/";
+    description = "A cross-assembler for the 6502 series of microprocessors";
+    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
+      primary design goals are code readability and output flexibility - Ophis
+      has successfully been used to create programs for the Nintendo
+      Entertainment System, the Atari 2600, and the Commodore 64.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
index 7a6cdf4d7052..41f4befe469f 100644
--- a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
+++ b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
@@ -83,11 +83,9 @@ let result = stdenv.mkDerivation rec {
       sha256 = sha256.${stdenv.hostPlatform.system};
     };
 
-  nativeBuildInputs = [ file ]
+  nativeBuildInputs = [ file makeWrapper ]
     ++ lib.optional installjce unzip;
 
-  buildInputs = [ makeWrapper ];
-
   # See: https://github.com/NixOS/patchelf/issues/10
   dontStrip = 1;
 
diff --git a/nixpkgs/pkgs/development/compilers/owl-lisp/default.nix b/nixpkgs/pkgs/development/compilers/owl-lisp/default.nix
index d8d141a5e567..2471910fdb5b 100644
--- a/nixpkgs/pkgs/development/compilers/owl-lisp/default.nix
+++ b/nixpkgs/pkgs/development/compilers/owl-lisp/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ which ];
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" "CC=cc" ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" "CC=${stdenv.cc.targetPrefix}cc" ];
 
   # tests are run as part of the compilation process
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/compilers/ponyc/default.nix b/nixpkgs/pkgs/development/compilers/ponyc/default.nix
index 3a2e3c4b944c..9fc8188daa10 100644
--- a/nixpkgs/pkgs/development/compilers/ponyc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ponyc/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, pcre2, coreutils, which, libressl, libxml2, cmake, z3, substituteAll,
+{ lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, pcre2, coreutils, which, openssl, libxml2, cmake, z3, substituteAll,
   cc ? stdenv.cc, lto ? !stdenv.isDarwin }:
 
 stdenv.mkDerivation (rec {
   pname = "ponyc";
-  version = "0.38.1";
+  version = "0.38.3";
 
   src = fetchFromGitHub {
     owner = "ponylang";
     repo = pname;
     rev = version;
-    sha256 = "1hk810k9h3bl641pgw91y4x2qw67rvbapx6p2pk9qz5p7nfcn7qh";
+    sha256 = "14kivmyphi7gbd7mgd4cnsiwl4cl7wih8kwzh7n79s2s4c5hj4ak";
 
 # Due to a bug in LLVM 9.x, ponyc has to include its own vendored patched
 # LLVM.  (The submodule is a specific tag in the LLVM source tree).
@@ -24,7 +24,7 @@ stdenv.mkDerivation (rec {
   };
 
   ponygbenchmark = fetchurl {
-    url = https://github.com/google/benchmark/archive/v1.5.0.tar.gz;
+    url = "https://github.com/google/benchmark/archive/v1.5.0.tar.gz";
     sha256 = "06i2cr4rj126m1zfz0x1rbxv1mw1l7a11mzal5kqk56cdrdicsiw";
     name = "v1.5.0.tar.gz";
   };
@@ -39,7 +39,7 @@ stdenv.mkDerivation (rec {
     (substituteAll {
       src = ./make-safe-for-sandbox.patch;
       googletest = fetchurl {
-        url = https://github.com/google/googletest/archive/release-1.8.1.tar.gz;
+        url = "https://github.com/google/googletest/archive/release-1.8.1.tar.gz";
         sha256 = "17147961i01fl099ygxjx4asvjanwdd446nwbq9v8156h98zxwcv";
         name = "release-1.8.1.tar.gz";
       };
@@ -95,7 +95,7 @@ stdenv.mkDerivation (rec {
     wrapProgram $out/bin/ponyc \
       --prefix PATH ":" "${stdenv.cc}/bin" \
       --set-default CC "$CC" \
-      --prefix PONYPATH : "${lib.makeLibraryPath [ pcre2 libressl (placeholder "out") ]}"
+      --prefix PONYPATH : "${lib.makeLibraryPath [ pcre2 openssl (placeholder "out") ]}"
   '';
 
   # Stripping breaks linking for ponyc
diff --git a/nixpkgs/pkgs/development/compilers/ponyc/pony-corral.nix b/nixpkgs/pkgs/development/compilers/ponyc/pony-corral.nix
index 5da1ec77016c..8910d7f1e610 100644
--- a/nixpkgs/pkgs/development/compilers/ponyc/pony-corral.nix
+++ b/nixpkgs/pkgs/development/compilers/ponyc/pony-corral.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation ( rec {
   pname = "corral";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "ponylang";
     repo = pname;
     rev = version;
-    sha256 = "0kydx4psl6k4n46as9xc5xwbwapibm6g7haxds7y9d392807qfqk";
+    sha256 = "sha256-YJZ1jGMOeZKGZaTrWO2mtR94F0voC2DXaghi0LytF7I=";
   };
 
   buildInputs = [ ponyc ];
diff --git a/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix b/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix
index 741d0ec7d1c3..6d7f05ebdae7 100644
--- a/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix
+++ b/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix
@@ -18,19 +18,19 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "purescript";
-  version = "0.13.8";
+  version = "0.14.0";
 
   src =
     if stdenv.isDarwin
     then
     fetchurl {
       url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz";
-      sha256 = "058w8w24g7xbdkn5l97jfj9dcg81vkfh3w8112anj982lynk6391";
+      sha256 = "0dfnn5ar7zgvgvxcvw5f6vwpkgkwa017y07s7mvdv44zf4hzsj3s";
     }
     else
     fetchurl {
       url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz";
-      sha256 = "01xb9sl6rmg02ypdrv4n0mkzmdr5y9rajcdmg9c3j46q7z6q9mxy";
+      sha256 = "1l3i7mxlzb2dkq6ff37rvnaarikxzxj0fg9i2kk26s8pz7vpqgjh";
     };
 
 
diff --git a/nixpkgs/pkgs/development/compilers/rasm/default.nix b/nixpkgs/pkgs/development/compilers/rasm/default.nix
index c2415899f6b4..0feaabc92e62 100644
--- a/nixpkgs/pkgs/development/compilers/rasm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/rasm/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
       # according to official documentation
-      cc rasm_v*.c -O2 -lm -lrt -o rasm
+      ${stdenv.cc.targetPrefix}cc rasm_v*.c -O2 -lm -o rasm
   '';
 
   installPhase = ''
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
     # use -n option to display all licenses
     license = licenses.mit; # expat version
     maintainers = [ ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/reason/default.nix b/nixpkgs/pkgs/development/compilers/reason/default.nix
index 2807ddb6b5fd..2293c83cc02c 100644
--- a/nixpkgs/pkgs/development/compilers/reason/default.nix
+++ b/nixpkgs/pkgs/development/compilers/reason/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-reason-${version}";
-  version = "3.6.2";
+  pname = "ocaml${ocaml.version}-reason";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "reason";
-    rev = "6017d6dd930f4989177c3f7c3c20cffbaabaa49a";
-    sha256 = "17wkcl3r0ckhlki9fk0mcwbnd7kpkqm1h0xjw2j2x1097n470df0";
+    rev = "daa11255cb4716ce1c370925251021bd6e3bd974";
+    sha256 = "0m6ldrci1a4j0qv1cbwh770zni3al8qxsphl353rv19f6rblplhs";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/compilers/rust/1_49.nix b/nixpkgs/pkgs/development/compilers/rust/1_50.nix
index 3e76cdfe9690..4e393a588fb3 100644
--- a/nixpkgs/pkgs/development/compilers/rust/1_49.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/1_50.nix
@@ -15,43 +15,43 @@
 , CoreFoundation, Security
 , pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
 , makeRustPlatform
-, llvmPackages_5, llvm_11
+, llvmPackages_11, llvm_11
 } @ args:
 
 import ./default.nix {
-  rustcVersion = "1.49.0";
-  rustcSha256 = "0yf7kll517398dgqsr7m3gldzj0iwsp3ggzxrayckpqzvylfy2mm";
+  rustcVersion = "1.50.0";
+  rustcSha256 = "0pjs7j62maiyvkmhp9zrxl528g2n0fphp4rq6ap7aqdv0a6qz5wm";
 
   llvmSharedForBuild = pkgsBuildBuild.llvm_11.override { enableSharedLibraries = true; };
   llvmSharedForHost = pkgsBuildHost.llvm_11.override { enableSharedLibraries = true; };
   llvmSharedForTarget = pkgsBuildTarget.llvm_11.override { enableSharedLibraries = true; };
 
-  llvmBootstrapForDarwin = llvmPackages_5;
+  llvmBootstrapForDarwin = llvmPackages_11;
 
   # For use at runtime
   llvmShared = llvm_11.override { enableSharedLibraries = true; };
 
   # Note: the version MUST be one version prior to the version we're
   # building
-  bootstrapVersion = "1.48.0";
+  bootstrapVersion = "1.49.0";
 
   # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
   bootstrapHashes = {
-    i686-unknown-linux-gnu = "7fdb8836a1f0427d5b47e6a2d496f67ebff04350407411f57cf20c9b3544e26f";
-    x86_64-unknown-linux-gnu = "950420a35b2dd9091f1b93a9ccd5abc026ca7112e667f246b1deb79204e2038b";
-    x86_64-unknown-linux-musl = "4ed9627f57b4e0b9807fc5e7513d9731f4791668b7f875b9e44e65e21072c56f";
-    arm-unknown-linux-gnueabihf = "e68a81eebd4570343a0fc35cb8ee24cad911d6cee2e374f284b76546ca6636d5";
-    armv7-unknown-linux-gnueabihf = "3aed4a63ebdd57690a31d11afbe95e6407edc224a6769be5694a1ed43bf899cb";
-    aarch64-unknown-linux-gnu = "c4769418d8d89f432e4a3a21ad60f99629e4b13bbfc29aef7d9d51c4e8ee8a8a";
-    aarch64-unknown-linux-musl = "ac4de580a28e45a9773b389b296d13bfeeb08263cb1f8343859577a54940dae9";
-    x86_64-apple-darwin = "20e727cad10f43e3abcedb2a80979ae26923038e0e8a855e8a783da255054113";
-    powerpc64le-unknown-linux-gnu = "e6457a0214f3b1b04bd5b2618bba7e3826e254216420dede2971b571a1c13bb1";
+    i686-unknown-linux-gnu = "5371bfa2c8e566aa283acdfa93d24b981c789d7c040ac1ca74e76bff1c7f6598";
+    x86_64-unknown-linux-gnu = "8b14446df82f3707d69cf58fed92f18e0bff91621c62baf89288ef70e3e92981";
+    x86_64-unknown-linux-musl = "f92a5a4adcfac4206a223d089a364a8375d1b6f112f3f2efa3f6d53d08a61904";
+    arm-unknown-linux-gnueabihf = "e5d93576eef874a9b22be9aa157cac5c8cdebebde8b57f0693248d4a589df42c";
+    armv7-unknown-linux-gnueabihf = "34ba3c979b144ef27d3c71d177cc1774551edf26e79d36719c86a51d9b9e34c0";
+    aarch64-unknown-linux-gnu = "b551bd482041307fa3373a687d6d6a2c4c0931c2e0a68b8b75dc80bc5cf5f002";
+    aarch64-unknown-linux-musl = "0a43d96a508c720520328112d609916d062f866a5c35f1db8f906284035d6d98";
+    x86_64-apple-darwin = "fe3e248bc4b0ee0a2595693687ad845c8a8bda824a56c9321520bcca02433716";
+    powerpc64le-unknown-linux-gnu = "365d7721dd2521e5dad12aa73651bad2be375e798e443636d2c523cad5b54359";
   };
 
-  selectRustPackage = pkgs: pkgs.rust_1_49;
+  selectRustPackage = pkgs: pkgs.rust_1_50;
 
   rustcPatches = [
   ];
 }
 
-(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_5" "llvm_11"])
+(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvm_11"])
diff --git a/nixpkgs/pkgs/development/compilers/rust/binary.nix b/nixpkgs/pkgs/development/compilers/rust/binary.nix
index 770cc3415f2c..ce4250f675e9 100644
--- a/nixpkgs/pkgs/development/compilers/rust/binary.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/binary.nix
@@ -83,8 +83,8 @@ rec {
       license = [ licenses.mit licenses.asl20 ];
     };
 
-    buildInputs = [ makeWrapper bash ]
-      ++ lib.optional stdenv.isDarwin Security;
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ bash ] ++ lib.optional stdenv.isDarwin Security;
 
     postPatch = ''
       patchShebangs .
diff --git a/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix b/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
index 4b1f572bebb8..584b1fdbe438 100644
--- a/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
@@ -12,7 +12,8 @@ rec {
   };
 
   buildRustPackage = callPackage ../../../build-support/rust {
-    inherit rustc cargo fetchCargoTarball;
+    inherit cargoBuildHook cargoCheckHook cargoInstallHook cargoSetupHook
+      fetchCargoTarball rustc;
   };
 
   rustcSrc = callPackage ./rust-src.nix {
@@ -22,4 +23,9 @@ rec {
   rustLibSrc = callPackage ./rust-lib-src.nix {
     inherit rustc;
   };
+
+  # Hooks
+  inherit (callPackage ../../../build-support/rust/hooks {
+    inherit cargo;
+  }) cargoBuildHook cargoCheckHook cargoInstallHook cargoSetupHook maturinBuildHook;
 }
diff --git a/nixpkgs/pkgs/development/compilers/rust/rls/default.nix b/nixpkgs/pkgs/development/compilers/rust/rls/default.nix
index ee860d782580..aa55866def51 100644
--- a/nixpkgs/pkgs/development/compilers/rust/rls/default.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/rls/default.nix
@@ -2,7 +2,7 @@
 , openssh, openssl, pkg-config, cmake, zlib, curl, libiconv
 , CoreFoundation, Security }:
 
-rustPlatform.buildRustPackage {
+rustPlatform.buildRustPackage rec {
   pname = "rls";
   inherit (rustPlatform.rust.rustc) src version;
 
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage {
 
   preBuild = ''
     # client tests are flaky
-    rm tests/client.rs
+    rm ${buildAndTestSubdir}/tests/client.rs
   '';
 
   # a nightly compiler is required unless we use this cheat code.
@@ -28,8 +28,8 @@ rustPlatform.buildRustPackage {
   # rls-rustc links to rustc_private crates
   CARGO_BUILD_RUSTFLAGS = if stdenv.isDarwin then "-C rpath" else null;
 
-  nativeBuildInputs = [ pkg-config cmake ];
-  buildInputs = [ openssh openssl curl zlib libiconv makeWrapper rustPlatform.rust.rustc.llvm ]
+  nativeBuildInputs = [ pkg-config cmake makeWrapper ];
+  buildInputs = [ openssh openssl curl zlib libiconv rustPlatform.rust.rustc.llvm ]
     ++ (lib.optionals stdenv.isDarwin [ CoreFoundation Security ]);
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/compilers/sbcl/2.0.8.nix b/nixpkgs/pkgs/development/compilers/sbcl/2.0.8.nix
new file mode 100644
index 000000000000..bbc171a8d986
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/sbcl/2.0.8.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+  version = "2.0.8";
+  sha256 = "1xwrwvps7drrpyw3wg5h3g2qajmkwqs9gz0fdw1ns9adp7vld390";
+}
diff --git a/nixpkgs/pkgs/development/compilers/sbcl/2.0.9.nix b/nixpkgs/pkgs/development/compilers/sbcl/2.0.9.nix
index ada098ec1829..80b30ec87f48 100644
--- a/nixpkgs/pkgs/development/compilers/sbcl/2.0.9.nix
+++ b/nixpkgs/pkgs/development/compilers/sbcl/2.0.9.nix
@@ -1,114 +1,4 @@
-{ lib, stdenv, fetchurl, writeText, sbclBootstrap
-, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
-, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system)
-, disableImmobileSpace ? false
-  # Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
-  # Note that the created binaries still need `patchelf --set-interpreter ...`
-  # to get rid of ${glibc} dependency.
-, purgeNixReferences ? false
-, texinfo
-}:
-
-stdenv.mkDerivation rec {
-  pname = "sbcl";
+import ./common.nix {
   version = "2.0.9";
-
-  src = fetchurl {
-    url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
-    sha256 = "sha256:17wvrcwgp45z9b6arik31fjnz7908qhr5ackxq1y0gqi1hsh1xy4";
-  };
-
-  buildInputs = [texinfo];
-
-  patchPhase = ''
-    echo '"${version}.nixos"' > version.lisp-expr
-
-    pwd
-
-    # SBCL checks whether files are up-to-date in many places..
-    # Unfortunately, same timestamp is not good enough
-    sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
-    #sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
-    sed -i src/cold/slam.lisp -e \
-      '/file-write-date input/a)'
-    sed -i src/cold/slam.lisp -e \
-      '/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))'
-    sed -i src/code/target-load.lisp -e \
-      '/date defaulted-fasl/a)'
-    sed -i src/code/target-load.lisp -e \
-      '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
-
-    # Fix the tests
-    sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
-    sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
-
-    # Use whatever `cc` the stdenv provides
-    substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc
-
-    substituteInPlace src/runtime/Config.x86-64-darwin \
-      --replace mmacosx-version-min=10.4 mmacosx-version-min=10.5
-  ''
-  + (if purgeNixReferences
-    then
-      # This is the default location to look for the core; by default in $out/lib/sbcl
-      ''
-        sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \
-          -i src/runtime/runtime.c
-      ''
-    else
-      # Fix software version retrieval
-      ''
-        sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \
-          src/code/run-program.lisp
-      ''
-    );
-
-
-  preBuild = ''
-    export INSTALL_ROOT=$out
-    mkdir -p test-home
-    export HOME=$PWD/test-home
-  '';
-
-  enableFeatures = with lib;
-    optional threadSupport "sb-thread" ++
-    optional stdenv.isAarch32 "arm";
-
-  disableFeatures = with lib;
-    optional (!threadSupport) "sb-thread" ++
-    optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];
-
-  buildPhase = ''
-    sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${
-                  lib.concatStringsSep " "
-                    (builtins.map (x: "--with-${x}") enableFeatures ++
-                     builtins.map (x: "--without-${x}") disableFeatures)
-                }
-    (cd doc/manual ; make info)
-  '';
-
-  installPhase = ''
-    INSTALL_ROOT=$out sh install.sh
-  ''
-  + lib.optionalString (!purgeNixReferences) ''
-    cp -r src $out/lib/sbcl
-    cp -r contrib $out/lib/sbcl
-    cat >$out/lib/sbcl/sbclrc <<EOF
-     (setf (logical-pathname-translations "SYS")
-       '(("SYS:SRC;**;*.*.*" #P"$out/lib/sbcl/src/**/*.*")
-         ("SYS:CONTRIB;**;*.*.*" #P"$out/lib/sbcl/contrib/**/*.*")))
-    EOF
-  '';
-
-  setupHook = lib.optional purgeNixReferences (writeText "setupHook.sh" ''
-    addEnvHooks "$targetOffset" _setSbclHome
-    _setSbclHome() {
-      export SBCL_HOME='@out@/lib/sbcl/'
-    }
-  '');
-
-  meta = sbclBootstrap.meta // {
-    inherit version;
-    updateWalker = true;
-  };
+  sha256 = "17wvrcwgp45z9b6arik31fjnz7908qhr5ackxq1y0gqi1hsh1xy4";
 }
diff --git a/nixpkgs/pkgs/development/compilers/sbcl/2.1.1.nix b/nixpkgs/pkgs/development/compilers/sbcl/2.1.1.nix
new file mode 100644
index 000000000000..a32f8a4a28b3
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/sbcl/2.1.1.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+  version = "2.1.1";
+  sha256 = "15wa66sachhzgvg5n35vihmkpasg100lh561c1d1bdrql0p8kbd9";
+}
diff --git a/nixpkgs/pkgs/development/compilers/sbcl/2.1.2.nix b/nixpkgs/pkgs/development/compilers/sbcl/2.1.2.nix
new file mode 100644
index 000000000000..4f4c85b286c7
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/sbcl/2.1.2.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+  version = "2.1.2";
+  sha256 = "sha256:02scrqyp2izsd8xjm2k5j5lhn4pdhd202jlcb54ysmcqjd80awdp";
+}
diff --git a/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix b/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix
index cb42235bc8e2..8bdbbadc9d60 100644
--- a/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix
+++ b/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     sha256 = cfg.sha256;
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/development/compilers/sbcl/default.nix b/nixpkgs/pkgs/development/compilers/sbcl/common.nix
index df80bb8af1d7..11ae960a5317 100644
--- a/nixpkgs/pkgs/development/compilers/sbcl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/sbcl/common.nix
@@ -1,3 +1,5 @@
+{ version, sha256 }:
+
 { lib, stdenv, fetchurl, writeText, sbclBootstrap
 , sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
 , threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system)
@@ -11,20 +13,18 @@
 
 stdenv.mkDerivation rec {
   pname = "sbcl";
-  version = "2.0.8";
+  inherit version;
 
   src = fetchurl {
-    url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
-    sha256 = "sha256:1xwrwvps7drrpyw3wg5h3g2qajmkwqs9gz0fdw1ns9adp7vld390";
+    url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
+    inherit sha256;
   };
 
   buildInputs = [texinfo];
 
-  patchPhase = ''
+  postPatch = ''
     echo '"${version}.nixos"' > version.lisp-expr
 
-    pwd
-
     # SBCL checks whether files are up-to-date in many places..
     # Unfortunately, same timestamp is not good enough
     sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
@@ -41,12 +41,6 @@ stdenv.mkDerivation rec {
     # Fix the tests
     sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
     sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
-
-    # Use whatever `cc` the stdenv provides
-    substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc
-
-    substituteInPlace src/runtime/Config.x86-64-darwin \
-      --replace mmacosx-version-min=10.4 mmacosx-version-min=10.5
   ''
   + (if purgeNixReferences
     then
@@ -79,16 +73,24 @@ stdenv.mkDerivation rec {
     optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];
 
   buildPhase = ''
+    runHook preBuild
+
     sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${
                   lib.concatStringsSep " "
                     (builtins.map (x: "--with-${x}") enableFeatures ++
                      builtins.map (x: "--without-${x}") disableFeatures)
                 }
     (cd doc/manual ; make info)
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     INSTALL_ROOT=$out sh install.sh
+
+    runHook postInstall
   ''
   + lib.optionalString (!purgeNixReferences) ''
     cp -r src $out/lib/sbcl
diff --git a/nixpkgs/pkgs/development/compilers/scala/2.x.nix b/nixpkgs/pkgs/development/compilers/scala/2.x.nix
index d3fa31ddd94b..a0a5f1a2b22c 100644
--- a/nixpkgs/pkgs/development/compilers/scala/2.x.nix
+++ b/nixpkgs/pkgs/development/compilers/scala/2.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils, nixosTests
+{ stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils
 , writeScript, common-updater-scripts, git, gnused, nix, nixfmt, majorVersion }:
 
 with lib;
@@ -26,8 +26,8 @@ let
     };
 
     "2.13" = {
-      version = "2.13.4";
-      sha256 = "1alcnzmxga00nsvgy8yky91zw5b4q0xg2697vrrdgjlglpxiqwdw";
+      version = "2.13.5";
+      sha256 = "1ah5rw6xqksiayi5i95r3pcff961q71ilishzn2kmg673z0j2b7d";
       pname = "scala_2_13";
     };
   };
@@ -46,23 +46,25 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ jre ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
-      mkdir -p $out
-      rm bin/*.bat
-      mv * $out
-      # put docs in correct subdirectory
-      mkdir -p $out/share/doc
-      mv $out/doc $out/share/doc/${name}
-      mv $out/man $out/share/man
+    runHook preInstall
+    mkdir -p $out
+    rm bin/*.bat
+    mv * $out
+    # put docs in correct subdirectory
+    mkdir -p $out/share/doc
+    mv $out/doc $out/share/doc/${name}
+    mv $out/man $out/share/man
     for p in $(ls $out/bin/) ; do
         wrapProgram $out/bin/$p \
           --prefix PATH ":" ${coreutils}/bin \
           --prefix PATH ":" ${gnugrep}/bin \
           --prefix PATH ":" ${jre}/bin \
           --set JAVA_HOME ${jre}
-      done
+    done
+    runHook postInstall
   '';
 
   doInstallCheck = true;
diff --git a/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix b/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
index b173de58049b..66a634914dfb 100644
--- a/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
+++ b/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [ jre ncurses.dev ] ;
-  buildInputs = [ makeWrapper ] ;
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/development/compilers/serpent/default.nix b/nixpkgs/pkgs/development/compilers/serpent/default.nix
index 775a78a97341..fbcbf4485a47 100644
--- a/nixpkgs/pkgs/development/compilers/serpent/default.nix
+++ b/nixpkgs/pkgs/development/compilers/serpent/default.nix
@@ -14,6 +14,10 @@ stdenv.mkDerivation {
     sha256 = "1bns9wgn5i1ahj19qx7v1wwdy8ca3q3pigxwznm5nywsw7s7lqxs";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile --replace 'g++' '${stdenv.cc.targetPrefix}c++'
+  '';
+
   installPhase = ''
     mkdir -p $out/bin
     mv serpent $out/bin
@@ -33,6 +37,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/ethereum/wiki/wiki/Serpent";
     license = with licenses; [ wtfpl ];
     maintainers = with maintainers; [ chris-martin ];
-    platforms = with platforms; linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix b/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix
new file mode 100644
index 000000000000..422181679846
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "sjasmplus";
+  version = "1.18.2";
+
+  src = fetchFromGitHub {
+    owner = "z00m128";
+    repo = "sjasmplus";
+    rev = "v${version}";
+    sha256 = "04348zcmc0b3crzwhvj1shx6f1n3x05vs8d5qdm7qhgdfki8r74v";
+  };
+
+  buildFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "CXX=${stdenv.cc.targetPrefix}c++"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D sjasmplus $out/bin/sjasmplus
+    runHook postInstall
+  '';
+
+  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";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ electrified ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/smlnj/bootstrap.nix b/nixpkgs/pkgs/development/compilers/smlnj/bootstrap.nix
index 113b22768d9f..91eb9fc84172 100644
--- a/nixpkgs/pkgs/development/compilers/smlnj/bootstrap.nix
+++ b/nixpkgs/pkgs/development/compilers/smlnj/bootstrap.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "12jn50h5jz0ac1vzld2mb94p1dyc8h0mk0hip2wj5xqk1dbzwxl4";
   };
 
-  buildInputs = [ cpio rsync makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ cpio rsync ];
 
   unpackPhase = ''
     ${xar}/bin/xar -xf $src
diff --git a/nixpkgs/pkgs/development/compilers/solc/0.7.nix b/nixpkgs/pkgs/development/compilers/solc/0.7.nix
new file mode 100644
index 000000000000..99b67b56510d
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/solc/0.7.nix
@@ -0,0 +1,78 @@
+{ lib, gccStdenv, fetchzip, boost, cmake, ncurses, python3, coreutils
+, z3Support ? true, z3 ? null, cvc4Support ? true, cvc4 ? null
+, cln ? null, gmp ? null
+}:
+
+# compiling source/libsmtutil/CVC4Interface.cpp breaks on clang on Darwin,
+# general commandline tests fail at abiencoderv2_no_warning/ on clang on NixOS
+
+assert z3Support -> z3 != null && lib.versionAtLeast z3.version "4.6.0";
+assert cvc4Support -> cvc4 != null && cln != null && gmp != null;
+
+let
+  jsoncppVersion = "1.9.4";
+  jsoncppUrl = "https://github.com/open-source-parsers/jsoncpp/archive/${jsoncppVersion}.tar.gz";
+  jsoncpp = fetchzip {
+    url = jsoncppUrl;
+    sha256 = "0qnx5y6c90fphl9mj9d20j2dfgy6s5yr5l0xnzid0vh71zrp6jwv";
+  };
+in
+gccStdenv.mkDerivation rec {
+
+  pname = "solc";
+  version = "0.7.4";
+
+  # upstream suggests avoid using archive generated by github
+  src = fetchzip {
+    url = "https://github.com/ethereum/solidity/releases/download/v${version}/solidity_${version}.tar.gz";
+    sha256 = "02261l54jdbvxk612z7zsyvmchy1rx4lf27b3f616sd7r56krpkg";
+  };
+
+  postPatch = ''
+    substituteInPlace cmake/jsoncpp.cmake \
+      --replace "${jsoncppUrl}" ${jsoncpp}
+  '';
+
+  cmakeFlags = [
+    "-DBoost_USE_STATIC_LIBS=OFF"
+  ] ++ lib.optionals (!z3Support) [
+    "-DUSE_Z3=OFF"
+  ] ++ lib.optionals (!cvc4Support) [
+    "-DUSE_CVC4=OFF"
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ boost ]
+    ++ lib.optionals z3Support [ z3 ]
+    ++ lib.optionals cvc4Support [ cvc4 cln gmp ];
+  checkInputs = [ ncurses python3 ];
+
+  # Test fails on darwin for unclear reason
+  doCheck = gccStdenv.hostPlatform.isLinux;
+
+  checkPhase = ''
+    while IFS= read -r -d ''' dir
+    do
+      LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$(pwd)/$dir
+      export LD_LIBRARY_PATH
+    done <   <(find . -type d -print0)
+
+    pushd ..
+    # IPC tests need aleth avaliable, so we disable it
+    sed -i "s/IPC_ENABLED=true/IPC_ENABLED=false\nIPC_FLAGS=\"--no-ipc\"/" ./scripts/tests.sh
+    for i in ./scripts/*.sh ./scripts/*.py ./test/*.sh; do
+      patchShebangs "$i"
+    done
+    TERM=xterm ./scripts/tests.sh
+    popd
+  '';
+
+  meta = with lib; {
+    description = "Compiler for Ethereum smart contract language Solidity";
+    homepage = "https://github.com/ethereum/solidity";
+    license = licenses.gpl3;
+    platforms = with platforms; linux; # darwin is currently broken
+    maintainers = with maintainers; [ dbrock akru lionello sifmelcara ];
+    inherit version;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/solc/default.nix b/nixpkgs/pkgs/development/compilers/solc/default.nix
index 546697d8efec..c8f0c50d8a59 100644
--- a/nixpkgs/pkgs/development/compilers/solc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/solc/default.nix
@@ -1,6 +1,16 @@
-{ lib, gccStdenv, fetchzip, boost, cmake, ncurses, python3, coreutils
-, z3Support ? true, z3 ? null, cvc4Support ? true, cvc4 ? null
-, cln ? null, gmp ? null
+{ lib, gccStdenv, fetchzip
+, boost
+, cmake
+, coreutils
+, fetchpatch
+, ncurses
+, python3
+, z3Support ? true
+, z3 ? null
+, cvc4Support ? true
+, cvc4 ? null
+, cln ? null
+, gmp ? null
 }:
 
 # compiling source/libsmtutil/CVC4Interface.cpp breaks on clang on Darwin,
@@ -10,69 +20,88 @@ assert z3Support -> z3 != null && lib.versionAtLeast z3.version "4.6.0";
 assert cvc4Support -> cvc4 != null && cln != null && gmp != null;
 
 let
-  jsoncppVersion = "1.9.4";
+  jsoncppVersion = "1.9.3";
   jsoncppUrl = "https://github.com/open-source-parsers/jsoncpp/archive/${jsoncppVersion}.tar.gz";
   jsoncpp = fetchzip {
     url = jsoncppUrl;
-    sha256 = "0qnx5y6c90fphl9mj9d20j2dfgy6s5yr5l0xnzid0vh71zrp6jwv";
+    sha256 = "1vbhi503rgwarf275ajfdb8vpdcbn1f7917wjkf8jghqwb1c24lq";
   };
-in
-gccStdenv.mkDerivation rec {
-
-  pname = "solc";
-  version = "0.7.4";
 
-  # upstream suggests avoid using archive generated by github
-  src = fetchzip {
-    url = "https://github.com/ethereum/solidity/releases/download/v${version}/solidity_${version}.tar.gz";
-    sha256 = "02261l54jdbvxk612z7zsyvmchy1rx4lf27b3f616sd7r56krpkg";
+  range3Version = "0.11.0";
+  range3Url = "https://github.com/ericniebler/range-v3/archive/${range3Version}.tar.gz";
+  range3 = fetchzip {
+    url = range3Url;
+    sha256 = "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh";
   };
 
-  postPatch = ''
-    substituteInPlace cmake/jsoncpp.cmake \
-      --replace "${jsoncppUrl}" ${jsoncpp}
-  '';
+  solc = gccStdenv.mkDerivation rec {
+    pname = "solc";
+    version = "0.8.2";
+
+    # upstream suggests avoid using archive generated by github
+    src = fetchzip {
+      url = "https://github.com/ethereum/solidity/releases/download/v${version}/solidity_${version}.tar.gz";
+      sha256 = "11w7sa1y2dirzh84k04fkwbfc6xpjp5jr65w1pmb2pnkjvvf46xq";
+    };
+
+    postPatch = ''
+      substituteInPlace cmake/jsoncpp.cmake \
+        --replace "${jsoncppUrl}" ${jsoncpp}
+      substituteInPlace cmake/range-v3.cmake \
+        --replace "${range3Url}" ${range3}
+    '';
 
-  cmakeFlags = [
-    "-DBoost_USE_STATIC_LIBS=OFF"
-  ] ++ lib.optionals (!z3Support) [
-    "-DUSE_Z3=OFF"
-  ] ++ lib.optionals (!cvc4Support) [
-    "-DUSE_CVC4=OFF"
-  ];
+    cmakeFlags = [
+      "-DBoost_USE_STATIC_LIBS=OFF"
+    ] ++ lib.optionals (!z3Support) [
+      "-DUSE_Z3=OFF"
+    ] ++ lib.optionals (!cvc4Support) [
+      "-DUSE_CVC4=OFF"
+    ];
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ boost ]
-    ++ lib.optionals z3Support [ z3 ]
-    ++ lib.optionals cvc4Support [ cvc4 cln gmp ];
-  checkInputs = [ ncurses python3 ];
+    nativeBuildInputs = [ cmake ];
+    buildInputs = [ boost ]
+      ++ lib.optionals z3Support [ z3 ]
+      ++ lib.optionals cvc4Support [ cvc4 cln gmp ];
+    checkInputs = [ ncurses python3 ];
 
-  # Test fails on darwin for unclear reason
-  doCheck = gccStdenv.hostPlatform.isLinux;
+    # tests take 60+ minutes to complete, only run as part of passthru tests
+    doCheck = false;
 
-  checkPhase = ''
-    while IFS= read -r -d ''' dir
-    do
-      LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$(pwd)/$dir
-      export LD_LIBRARY_PATH
-    done <   <(find . -type d -print0)
+    checkPhase = ''
+      while IFS= read -r -d ''' dir
+      do
+        LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$(pwd)/$dir
+        export LD_LIBRARY_PATH
+      done <   <(find . -type d -print0)
 
-    pushd ..
-    # IPC tests need aleth avaliable, so we disable it
-    sed -i "s/IPC_ENABLED=true/IPC_ENABLED=false\nIPC_FLAGS=\"--no-ipc\"/" ./scripts/tests.sh
-    for i in ./scripts/*.sh ./scripts/*.py ./test/*.sh; do
-      patchShebangs "$i"
-    done
-    TERM=xterm ./scripts/tests.sh
-    popd
-  '';
+      pushd ..
+      # IPC tests need aleth avaliable, so we disable it
+      sed -i "s/IPC_ENABLED=true/IPC_ENABLED=false\nIPC_FLAGS=\"--no-ipc\"/" ./scripts/tests.sh
+      for i in ./scripts/*.sh ./scripts/*.py ./test/*.sh ./test/*.py; do
+        patchShebangs "$i"
+      done
+      TERM=xterm ./scripts/tests.sh
+      popd
+    '';
 
-  meta = with lib; {
-    description = "Compiler for Ethereum smart contract language Solidity";
-    homepage = "https://github.com/ethereum/solidity";
-    license = licenses.gpl3;
-    platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ dbrock akru lionello sifmelcara ];
-    inherit version;
+    doInstallCheck = true;
+    installCheckPhase = ''
+      $out/bin/solc --version > /dev/null
+    '';
+
+    passthru.tests = {
+      solcWithTests = solc.overrideAttrs (attrs: { doCheck = true; });
+    };
+
+    meta = with lib; {
+      description = "Compiler for Ethereum smart contract language Solidity";
+      homepage = "https://github.com/ethereum/solidity";
+      license = licenses.gpl3;
+      platforms = with platforms; linux; # darwin is currently broken
+      maintainers = with maintainers; [ dbrock akru lionello sifmelcara ];
+      inherit version;
+    };
   };
-}
+in
+  solc
diff --git a/nixpkgs/pkgs/development/compilers/swi-prolog/default.nix b/nixpkgs/pkgs/development/compilers/swi-prolog/default.nix
index ce666852e38a..addf64138011 100644
--- a/nixpkgs/pkgs/development/compilers/swi-prolog/default.nix
+++ b/nixpkgs/pkgs/development/compilers/swi-prolog/default.nix
@@ -4,7 +4,32 @@
 , cmake, libyaml, Security
 , libjpeg, libX11, libXext, libXft, libXinerama
 , extraLibraries ? [ jdk unixODBC libXpm libSM libXt freetype fontconfig ]
-, extraPacks     ? []
+# Packs must be installed from a local directory during the build, with dependencies
+# resolved manually, e.g. to install the 'julian' pack, which depends on the 'delay', 'list_util' and 'typedef' packs:
+#   julian = pkgs.fetchzip {
+#     name = "swipl-pack-julian";
+#     url = "https://github.com/mndrix/julian/archive/v0.1.3.zip";
+#     sha256 = "1sgql7c21p3c5m14kwa0bcmlwn9fql612krn9h36gla1j9yjdfgy";
+#   };
+#   delay = pkgs.fetchzip {
+#     name = "swipl-pack-delay";
+#     url = "https://github.com/mndrix/delay/archive/v0.3.3.zip";
+#     sha256 = "0ira87afxnc2dnbbmgwmrr8qvary8lhzvhqwd52dccm6yqd3nybg";
+#   };
+#   list_util = pkgs.fetchzip {
+#     name = "swipl-pack-list_util";
+#     url = "https://github.com/mndrix/list_util/archive/v0.13.0.zip";
+#     sha256 = "0lx7vffflak0y8l8vg8k0g8qddwwn23ksbz02hi3f8rbarh1n89q";
+#   };
+#   typedef = builtins.fetchTarball {
+#     name = "swipl-pack-typedef";
+#     url = "https://raw.githubusercontent.com/samer--/prolog/master/typedef/release/typedef-0.1.9.tgz";
+#     sha256 = "056nqjn01g18fb1b2qivv9s7hb4azk24nx2d4kvkbmm1k91f44p3";
+#   };
+#   swiProlog = pkgs.swiProlog.override { extraPacks = map (dep-path: "'file://${dep-path}'") [
+#     julian delay list_util typedef
+#   ]; };
+, extraPacks ? []
 , withGui ? false
 }:
 
@@ -26,6 +51,11 @@ stdenv.mkDerivation {
     fetchSubmodules = true;
   };
 
+  # Add the packInstall path to the swipl pack search path
+  postPatch = ''
+    echo "user:file_search_path(pack, '$out/lib/swipl/pack')." >> /build/$sourceRoot/boot/init.pl
+  '';
+
   nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [ gmp readline openssl
@@ -39,6 +69,10 @@ stdenv.mkDerivation {
 
   cmakeFlags = [ "-DSWIPL_INSTALL_IN_LIB=ON" ];
 
+  preInstall = ''
+    mkdir -p $out/lib/swipl/pack
+  '';
+
   postInstall = builtins.concatStringsSep "\n"
   ( builtins.map (packInstall "$out") extraPacks
   );
diff --git a/nixpkgs/pkgs/development/compilers/tinygo/default.nix b/nixpkgs/pkgs/development/compilers/tinygo/default.nix
index 0aee1ca1f394..218b207f2435 100644
--- a/nixpkgs/pkgs/development/compilers/tinygo/default.nix
+++ b/nixpkgs/pkgs/development/compilers/tinygo/default.nix
@@ -40,7 +40,8 @@ buildGoModule rec {
   '';
 
   subPackages = [ "." ];
-  buildInputs = [ llvm clang-unwrapped makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ llvm clang-unwrapped ];
   propagatedBuildInputs = [ lld avrgcc avrdude openocd gcc-arm-embedded ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/compilers/urn/default.nix b/nixpkgs/pkgs/development/compilers/urn/default.nix
index f7e338cf43ff..7381e7c89fec 100644
--- a/nixpkgs/pkgs/development/compilers/urn/default.nix
+++ b/nixpkgs/pkgs/development/compilers/urn/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
     sha256 = "0nclr3d8ap0y5cg36i7g4ggdqci6m5q27y9f26b57km8p266kcpy";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   # Any packages that depend on the compiler have a transitive
   # dependency on the Urn runtime support.
   propagatedBuildInputs = [ urn-rt ];
@@ -53,6 +53,7 @@ stdenv.mkDerivation {
     description = "Yet another Lisp variant which compiles to Lua";
     license = licenses.bsd3;
     maintainers = with maintainers; [ CrazedProgrammer ];
+    platforms = platforms.all;
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/development/compilers/vala/default.nix b/nixpkgs/pkgs/development/compilers/vala/default.nix
index 222ad903ec14..b56f509b31aa 100644
--- a/nixpkgs/pkgs/development/compilers/vala/default.nix
+++ b/nixpkgs/pkgs/development/compilers/vala/default.nix
@@ -38,6 +38,8 @@ let
 
         "0.48" = ./disable-graphviz-0.46.1.patch;
 
+        "0.50" = ./disable-graphviz-0.46.1.patch;
+
       }.${lib.versions.majorMinor version} or (throw "no graphviz patch for this version of vala");
 
     disableGraphviz = lib.versionAtLeast version "0.38" && !withGraphviz;
@@ -108,8 +110,8 @@ in rec {
   };
 
   vala_0_40 = generic {
-    version = "0.40.18";
-    sha256 = "1f7cdkjdysg4dcri1wbzdddm46amk2s48jkwb5ghpdvhjb4l5j2m";
+    version = "0.40.25";
+    sha256 = "1pxpack8rrmywlf47v440hc6rv3vi8q9c6niwqnwikxvb2pwf3w7";
   };
 
   vala_0_44 = generic {
@@ -118,13 +120,18 @@ in rec {
   };
 
   vala_0_46 = generic {
-    version = "0.46.5";
-    sha256 = "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s";
+    version = "0.46.13";
+    sha256 = "0d7l4vh2xra3q75kw3sy2d9bn5p6s3g3r7j37bdn6ir8l3wp2ivs";
   };
 
   vala_0_48 = generic {
-    version = "0.48.9";
-    sha256 = "1agyrvslv2yh9ikiw7k5nw6j6il1l2zrzfan0pzdpb9xpg9idslw";
+    version = "0.48.14";
+    sha256 = "0iz3zzimmk5wxvy5bi75v8ckv153gjrz3r5iqvl8xqackzi7v9fw";
+  };
+
+  vala_0_50 = generic {
+    version = "0.50.4";
+    sha256 = "1353j852h04d1x6b4n6lbg3ay40ph0adb9yi25dh74pligx33z2q";
   };
 
   vala = vala_0_48;
diff --git a/nixpkgs/pkgs/development/compilers/vyper/default.nix b/nixpkgs/pkgs/development/compilers/vyper/default.nix
index 81ee04edf088..d0bfa5b0b962 100644
--- a/nixpkgs/pkgs/development/compilers/vyper/default.nix
+++ b/nixpkgs/pkgs/development/compilers/vyper/default.nix
@@ -14,11 +14,11 @@ in
 
 buildPythonPackage rec {
   pname = "vyper";
-  version = "0.2.8";
+  version = "0.2.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d9fv630ayd1989qnklldh08vksa2lf0r06lm914qy5r5cvbl1v2";
+    sha256 = "e763561a161c35c03b92a0c176096dd9b4c78ab003c2f08324d443f459b3de84";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/nixpkgs/pkgs/development/compilers/xa/dxa.nix b/nixpkgs/pkgs/development/compilers/xa/dxa.nix
new file mode 100644
index 000000000000..03f2d054cc80
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/xa/dxa.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchurl
+, installShellFiles
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dxa";
+  version = "0.1.4";
+
+  src = fetchurl {
+    url = "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz";
+    hash = "sha256-C0rgwK51Ij9EZCm9GeiVnWIkEkse0d60ok8G9hm2a5U=";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  dontConfigure = true;
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "CC = gcc" "CC = ${stdenv.cc.targetPrefix}cc"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -d $out/bin/
+    install dxa $out/bin/
+    installManPage dxa.1
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.floodgap.com/retrotech/xa/";
+    description = "Andre Fachat's open-source 6502 disassembler";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/xa/xa.nix b/nixpkgs/pkgs/development/compilers/xa/xa.nix
new file mode 100644
index 000000000000..c445940f5cde
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/xa/xa.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xa";
+  version = "2.3.11";
+
+  src = fetchurl {
+    url = "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz";
+    hash = "sha256-MvIWTJnjBSGOmSlwhW3Y4jCbXLasR1jXsq/jv+vJAS0=";
+  };
+
+  dontConfigure = true;
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "DESTDIR" "PREFIX" \
+      --replace "CC = gcc" "CC = ${stdenv.cc.targetPrefix}cc" \
+      --replace "LDD = gcc" "LDD = ${stdenv.cc.targetPrefix}cc" \
+      --replace "CFLAGS = -O2" "CFLAGS ?=" \
+      --replace "LDFLAGS = -lc" "LDFLAGS ?= -lc"
+  '';
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  meta = with lib; {
+    homepage = "https://www.floodgap.com/retrotech/xa/";
+    description = "Andre Fachat's open-source 6502 cross assembler";
+    longDescription = ''
+      xa is a high-speed, two-pass portable cross-assembler. It understands
+      mnemonics and generates code for NMOS 6502s (such as 6502A, 6504, 6507,
+      6510, 7501, 8500, 8501, 8502 ...), CMOS 6502s (65C02 and Rockwell R65C02)
+      and the 65816.
+
+      Key amongst its features:
+
+      - C-like preprocessor (and understands cpp for additional feature support)
+      - rich expression syntax and pseudo-op vocabulary
+      - multiple character sets
+      - binary linking
+      - supports o65 relocatable objects with a full linker and relocation
+        suite, as well as "bare" plain binary object files
+      - block structure for label scoping
+    '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/yosys/default.nix b/nixpkgs/pkgs/development/compilers/yosys/default.nix
index 9ac7603ea200..a0c02e26db0c 100644
--- a/nixpkgs/pkgs/development/compilers/yosys/default.nix
+++ b/nixpkgs/pkgs/development/compilers/yosys/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, lib
+{ stdenv
+, lib
 , abc-verifier
 , bash
 , bison
@@ -33,13 +34,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "0.9+3830";
+  version = "0.9+4052";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "yosys";
-    rev    = "b72c29465392c8d260ddf55def169438f7fb64b2";
-    sha256 = "12h3pgj8bjb254q2qaafc3qxwhqdqrx0sxjhgjrfy8cmkdm92dvy";
+    rev    = "687f381b6985d9dda7e11535628e2fafff267af5";
+    sha256 = "15lcj798ckh9zwvdqb5gnvicilsxjyxv01gcviijg310hq62n7vf";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/compilers/zulu/8.nix b/nixpkgs/pkgs/development/compilers/zulu/8.nix
index 2bc90539be1e..dd1660d9fec7 100644
--- a/nixpkgs/pkgs/development/compilers/zulu/8.nix
+++ b/nixpkgs/pkgs/development/compilers/zulu/8.nix
@@ -1,7 +1,24 @@
-{ stdenv, lib, fetchurl, unzip, makeWrapper, setJavaClassPath
-, zulu, glib, libxml2, ffmpeg_3, libxslt, libGL, alsaLib
-, fontconfig, freetype, pango, gtk2, cairo, gdk-pixbuf, atk, xorg
-, swingSupport ? true }:
+{ stdenv
+, lib
+, fetchurl
+, autoPatchelfHook
+, unzip
+, makeWrapper
+, setJavaClassPath
+, zulu
+# minimum dependencies
+, alsaLib
+, fontconfig
+, freetype
+, xorg
+# runtime dependencies
+, cups
+# runtime dependencies for GTK+ Look and Feel
+, gtkSupport ? stdenv.isLinux
+, cairo
+, glib
+, gtk3
+}:
 
 let
   version = "8.48.0.53";
@@ -14,14 +31,12 @@ let
   hash = if stdenv.isDarwin then sha256_darwin else sha256_linux;
   extension = if stdenv.isDarwin then "zip" else "tar.gz";
 
-  libraries = [
-    stdenv.cc.libc glib libxml2 ffmpeg_3 libxslt libGL
-    xorg.libXxf86vm alsaLib fontconfig freetype pango
-    gtk2 cairo gdk-pixbuf atk
-  ] ++ (lib.optionals swingSupport (with xorg; [
-    xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp
-    xorg.libXt xorg.libXrender stdenv.cc.cc
-  ]));
+  runtimeDependencies = [
+    cups
+  ] ++ lib.optionals gtkSupport [
+    cairo glib gtk3
+  ];
+  runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
 
 in stdenv.mkDerivation {
   inherit version openjdk platform hash extension;
@@ -33,26 +48,28 @@ in stdenv.mkDerivation {
     sha256 = hash;
   };
 
-  buildInputs = [ makeWrapper ] ++ lib.optional stdenv.isDarwin unzip;
+  buildInputs = lib.optionals stdenv.isLinux [
+    alsaLib # libasound.so wanted by lib/libjsound.so
+    fontconfig
+    freetype
+    stdenv.cc.cc # libstdc++.so.6
+    xorg.libX11
+    xorg.libXext
+    xorg.libXi
+    xorg.libXrender
+    xorg.libXtst
+  ];
+
+  nativeBuildInputs = [
+    autoPatchelfHook makeWrapper
+  ] ++ lib.optionals stdenv.isDarwin [
+    unzip
+  ];
 
   installPhase = ''
     mkdir -p $out
     cp -r ./* "$out/"
 
-    jrePath="$out/jre"
-
-    rpath=$rpath''${rpath:+:}$jrePath/lib/amd64/jli
-    rpath=$rpath''${rpath:+:}$jrePath/lib/amd64/server
-    rpath=$rpath''${rpath:+:}$jrePath/lib/amd64/xawt
-    rpath=$rpath''${rpath:+:}$jrePath/lib/amd64
-
-    # set all the dynamic linkers
-    find $out -type f -perm -0100 \
-        -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --set-rpath "$rpath" {} \;
-
-    find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
-
     mkdir -p $out/nix-support
     printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
 
@@ -60,9 +77,19 @@ in stdenv.mkDerivation {
     cat <<EOF >> $out/nix-support/setup-hook
     if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
     EOF
+  '' + lib.optionalString stdenv.isLinux ''
+    # We cannot use -exec since wrapProgram is a function but not a command.
+    for bin in $( find "$out" -executable -type f ); do
+      if patchelf --print-interpreter "$bin" &> /dev/null; then
+        wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
+      fi
+    done
   '';
 
-  rpath = lib.strings.makeLibraryPath libraries;
+  preFixup = ''
+    find "$out" -name libfontmanager.so -exec \
+      patchelf --add-needed libfontconfig.so {} \;
+  '';
 
   passthru = {
     home = zulu;
diff --git a/nixpkgs/pkgs/development/compilers/zulu/default.nix b/nixpkgs/pkgs/development/compilers/zulu/default.nix
index cbfa9997b8db..c7b01877ad54 100644
--- a/nixpkgs/pkgs/development/compilers/zulu/default.nix
+++ b/nixpkgs/pkgs/development/compilers/zulu/default.nix
@@ -1,7 +1,25 @@
-{ stdenv, lib, fetchurl, unzip, makeWrapper, setJavaClassPath
-, zulu, glib, libxml2, ffmpeg_3, libxslt, libGL, alsaLib
-, fontconfig, freetype, pango, gtk2, cairo, gdk-pixbuf, atk, xorg, zlib
-, swingSupport ? true }:
+{ stdenv
+, lib
+, fetchurl
+, autoPatchelfHook
+, unzip
+, makeWrapper
+, setJavaClassPath
+, zulu
+# minimum dependencies
+, alsaLib
+, fontconfig
+, freetype
+, zlib
+, xorg
+# runtime dependencies
+, cups
+# runtime dependencies for GTK+ Look and Feel
+, gtkSupport ? stdenv.isLinux
+, cairo
+, glib
+, gtk3
+}:
 
 let
   version = "11.41.23";
@@ -14,14 +32,12 @@ let
   hash = if stdenv.isDarwin then sha256_darwin else sha256_linux;
   extension = if stdenv.isDarwin then "zip" else "tar.gz";
 
-  libraries = [
-    stdenv.cc.libc glib libxml2 ffmpeg_3 libxslt libGL
-    xorg.libXxf86vm alsaLib fontconfig freetype pango
-    gtk2 cairo gdk-pixbuf atk zlib
-  ] ++ (lib.optionals swingSupport (with xorg; [
-    xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp
-    xorg.libXt xorg.libXrender stdenv.cc.cc
-  ]));
+  runtimeDependencies = [
+    cups
+  ] ++ lib.optionals gtkSupport [
+    cairo glib gtk3
+  ];
+  runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
 
 in stdenv.mkDerivation {
   inherit version openjdk platform hash extension;
@@ -33,23 +49,29 @@ in stdenv.mkDerivation {
     sha256 = hash;
   };
 
-  buildInputs = [ makeWrapper ] ++ lib.optional stdenv.isDarwin unzip;
+  buildInputs = lib.optionals stdenv.isLinux [
+    alsaLib # libasound.so wanted by lib/libjsound.so
+    fontconfig
+    freetype
+    stdenv.cc.cc # libstdc++.so.6
+    xorg.libX11
+    xorg.libXext
+    xorg.libXi
+    xorg.libXrender
+    xorg.libXtst
+    zlib
+  ];
+
+  nativeBuildInputs = [
+    autoPatchelfHook makeWrapper
+  ] ++ lib.optionals stdenv.isDarwin [
+    unzip
+  ];
 
   installPhase = ''
     mkdir -p $out
     cp -r ./* "$out/"
 
-    rpath=$rpath''${rpath:+:}$out/lib/jli
-    rpath=$rpath''${rpath:+:}$out/lib/server
-    rpath=$rpath''${rpath:+:}$out/lib
-
-    # set all the dynamic linkers
-    find $out -type f -perm -0100 \
-        -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --set-rpath "$rpath" {} \;
-
-    find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
-
     mkdir -p $out/nix-support
     printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
 
@@ -57,9 +79,20 @@ in stdenv.mkDerivation {
     cat <<EOF >> $out/nix-support/setup-hook
     if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
     EOF
+  '' + lib.optionalString stdenv.isLinux ''
+    # We cannot use -exec since wrapProgram is a function but not a command.
+    #
+    # jspawnhelper is executed from JVM, so it doesn't need to wrap it, and it
+    # breaks building OpenJDK (#114495).
+    for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do
+      wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
+    done
   '';
 
-  rpath = lib.strings.makeLibraryPath libraries;
+  preFixup = ''
+    find "$out" -name libfontmanager.so -exec \
+      patchelf --add-needed libfontconfig.so {} \;
+  '';
 
   passthru = {
     home = zulu;
diff --git a/nixpkgs/pkgs/development/compilers/zz/default.nix b/nixpkgs/pkgs/development/compilers/zz/default.nix
index dade163c5273..81c6e546e95f 100644
--- a/nixpkgs/pkgs/development/compilers/zz/default.nix
+++ b/nixpkgs/pkgs/development/compilers/zz/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zz";
-  version = "unstable-2021-01-26";
+  version = "unstable-2021-03-07";
 
-  # commit chosen by using the latest build from http://bin.zetz.it/
+  # when updating, choose commit of the latest build on http://bin.zetz.it/
   src = fetchFromGitHub {
     owner = "zetzit";
     repo = "zz";
-    rev = "0b5c52674e9adf795fbfb051d4dceef3126e669f";
-    sha256 = "0bb77ll1g5i6a04ybpgx6lqsb74xs4v4nyqm9j4j6x24407h8l89";
+    rev = "d3fc968ba2ae6668f930e39077f9a90aecb9fdc4";
+    sha256 = "18p17lgwq6rq1n76sj0dwb32bpxflfd7knky1v0sgmaxfpaq04y3";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
-  cargoSha256 = "1lf4k3n89w2797c1yrj1dp97y8a8d5hnixr1nwa2qcq1sxmm5rcg";
+  cargoSha256 = "0i3c459d4699z4dwvdw1495krdv3c2qpygrsw0cz3j0zd2n5gqj6";
 
   postPatch = ''
     # remove search path entry which would reference /build
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "🍺🐙 ZetZ a zymbolic verifier and tranzpiler to bare metal C";
+    description = "ZetZ a zymbolic verifier and tranzpiler to bare metal C";
     homepage = "https://github.com/zetzit/zz";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix b/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix
index 18dbeaea201d..c4dd7d74eb0a 100644
--- a/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix
@@ -1,23 +1,31 @@
 { lib, mkCoqDerivation, which, coq, version ? null }:
 
 with builtins; with lib; let
-  elpi = coq.ocamlPackages.elpi.override (
-    optionalAttrs (coq.coq-version == "8.11") { version = "1.11.4"; }
-  );
+  elpi = coq.ocamlPackages.elpi.override (lib.switch coq.coq-version [
+    { case = "8.11"; out = { version = "1.11.4"; };}
+    { case = "8.12"; out = { version = "1.12.0"; };}
+    { case = "8.13"; out = { version = "1.13.0"; };}
+  ] {});
 in mkCoqDerivation {
   pname = "elpi";
   repo  = "coq-elpi";
   owner = "LPCIC";
   inherit version;
   defaultVersion = lib.switch coq.coq-version [
-    { case = "8.13"; out = "1.8.1"; }
+    { case = "8.13"; out = "1.9.4"; }
     { case = "8.12"; out = "1.8.0"; }
-    { case = "8.11"; out = "1.6.0_8.11"; }
+    { case = "8.11"; out = "1.6.1_8.11"; }
   ] null;
+  release."1.9.4".sha256      = "0nii7238mya74f9g6147qmpg6gv6ic9b54x5v85nb6q60d9jh0jq";
+  release."1.9.3".sha256      = "198irm800fx3n8n56vx1c6f626cizp1d7jfkrc6ba4iqhb62ma0z";
+  release."1.9.2".sha256      = "1rr2fr8vjkc0is7vh1461aidz2iwkigdkp6bqss4hhv0c3ijnn07";
   release."1.8.1".sha256      = "1fbbdccdmr8g4wwpihzp4r2xacynjznf817lhijw6kqfav75zd0r";
   release."1.8.0".sha256      = "13ywjg94zkbki22hx7s4gfm9rr87r4ghsgan23xyl3l9z8q0idd1";
   release."1.7.0".sha256      = "1ws5cqr0xawv69prgygbl3q6dgglbaw0vc397h9flh90kxaqgyh8";
+  release."1.6.1_8.11".sha256 = "0yyyh35i1nb3pg4hw7cak15kj4y6y9l84nwar9k1ifdsagh5zq53";
+  release."1.6.1_8.11".version = "1.6.1";
   release."1.6.0_8.11".sha256 = "0ahxjnzmd7kl3gl38kyjqzkfgllncr2ybnw8bvgrc6iddgga7bpq";
+  release."1.6.0_8.11".version = "1.6.0";
   release."1.6.0".sha256      = "0kf99i43mlf750fr7fric764mm495a53mg5kahnbp6zcjcxxrm0b";
   releaseRev = v: "v${v}";
 
diff --git a/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix b/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix
index c6cc0d34ed1c..203b8bb1b2ba 100644
--- a/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix
@@ -9,6 +9,7 @@ mkCoqDerivation {
   repo = "coq-dpdgraph";
   inherit version;
   defaultVersion = switch coq.coq-version [
+    { case = "8.13"; out = "0.6.9"; }
     { case = "8.12"; out = "0.6.8"; }
     { case = "8.11"; out = "0.6.7"; }
     { case = "8.10"; out = "0.6.6"; }
@@ -19,6 +20,7 @@ mkCoqDerivation {
     { case = "8.5";  out = "0.6"; }
   ] null;
 
+  release."0.6.9".sha256 = "11mbydpcgk7y8pqzickbzx0ig7g9k9al71i9yfrcscd2xj8fwj8z";
   release."0.6.8".sha256 = "1mj6sknsd53xfb387sp3kdwvl4wn80ck24bfzf3s6mgw1a12vyps";
   release."0.6.7".sha256 = "01vpi7scvkl4ls1z2k2x9zd65wflzb667idj759859hlz3ps9z09";
   release."0.6.6".sha256 = "1gjrm5zjzw4cisiwdr5b3iqa7s4cssa220xr0k96rwgk61rcjd8w";
diff --git a/nixpkgs/pkgs/development/coq-modules/fourcolor/default.nix b/nixpkgs/pkgs/development/coq-modules/fourcolor/default.nix
new file mode 100644
index 000000000000..4de6e2da8b51
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/fourcolor/default.nix
@@ -0,0 +1,24 @@
+{ lib, mkCoqDerivation, coq, mathcomp, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "fourcolor";
+  owner = "math-comp";
+
+  release."1.2.3".rev    = "v1.2.3";
+  release."1.2.3".sha256 = "sha256-gwKfUa74fIP7j+2eQgnLD7AswjCtOFGHGaIWb4qI0n4=";
+
+  inherit version;
+  defaultVersion = with versions; switch mathcomp.version [
+    { case = pred.inter (isGe "1.11.0") (isLt "1.13"); out = "1.2.3"; }
+  ] null;
+
+  propagatedBuildInputs = [ mathcomp.algebra ];
+
+  meta = {
+    description = "Formal proof of the Four Color Theorem ";
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.cecill-b;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/hierarchy-builder/default.nix b/nixpkgs/pkgs/development/coq-modules/hierarchy-builder/default.nix
index 530763c9439d..dabcc44261b5 100644
--- a/nixpkgs/pkgs/development/coq-modules/hierarchy-builder/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/hierarchy-builder/default.nix
@@ -12,6 +12,8 @@ with lib; mkCoqDerivation {
   release."0.10.0".sha256 = "1a3vry9nzavrlrdlq3cys3f8kpq3bz447q8c4c7lh2qal61wb32h";
   releaseRev = v: "v${v}";
 
+  nativeBuildInputs = [ which ];
+
   propagatedBuildInputs = [ coq-elpi ];
 
   extraInstallFlags = [ "VFILES=structures.v" ];
diff --git a/nixpkgs/pkgs/development/coq-modules/mathcomp-analysis/default.nix b/nixpkgs/pkgs/development/coq-modules/mathcomp-analysis/default.nix
index 7d63c903795c..003727c608fc 100644
--- a/nixpkgs/pkgs/development/coq-modules/mathcomp-analysis/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/mathcomp-analysis/default.nix
@@ -1,17 +1,24 @@
 { coq, mkCoqDerivation, mathcomp, mathcomp-finmap, mathcomp-bigenough, mathcomp-real-closed,
-  lib, version ? null }:
+  hierarchy-builder, lib, version ? null }:
 
-with lib; mkCoqDerivation {
+with lib;
+let mca = mkCoqDerivation {
 
   namePrefix = [ "coq" "mathcomp" ];
   pname = "analysis";
   owner = "math-comp";
 
+  release."0.3.6".sha256 = "0g2j7b2hca4byz62ssgg90bkbc8wwp7xkb2d3225bbvihi92b4c5";
+  release."0.3.4".sha256 = "18mgycjgg829dbr7ps77z6lcj03h3dchjbj5iir0pybxby7gd45c";
+  release."0.3.3".sha256 = "1m2mxcngj368vbdb8mlr91hsygl430spl7lgyn9qmn3jykack867";
   release."0.3.1".sha256 = "1iad288yvrjv8ahl9v18vfblgqb1l5z6ax644w49w9hwxs93f2k8";
   release."0.2.3".sha256 = "0p9mr8g1qma6h10qf7014dv98ln90dfkwn76ynagpww7qap8s966";
 
   inherit version;
   defaultVersion = with versions; switch [ coq.version mathcomp.version ]  [
+      { cases = [ (range "8.11" "8.13") "1.12.0" ];             out = "0.3.6"; }
+      { cases = [ (range "8.11" "8.13") "1.11.0" ];             out = "0.3.4"; }
+      { cases = [ (range "8.10" "8.12") "1.11.0" ];             out = "0.3.3"; }
       { cases = [ (range "8.10" "8.11") "1.11.0" ];             out = "0.3.1"; }
       { cases = [ (range "8.8"  "8.11") (range "1.8" "1.10") ]; out = "0.2.3"; }
     ] null;
@@ -25,4 +32,12 @@ with lib; mkCoqDerivation {
     maintainers = [ maintainers.cohencyril ];
     license = licenses.cecill-c;
   };
-}
+}; in
+mca.overrideAttrs (o:
+  let ext = { propagatedBuildInputs = o.propagatedBuildInputs
+                                      ++ [ hierarchy-builder ]; };
+  in with versions; switch o.version [
+    {case = "dev";        out = ext;}
+    {case = isGe "0.3.4"; out = ext;}
+  ] {}
+)
diff --git a/nixpkgs/pkgs/development/coq-modules/mathcomp/default.nix b/nixpkgs/pkgs/development/coq-modules/mathcomp/default.nix
index 5b3501516e15..4637edebdb77 100644
--- a/nixpkgs/pkgs/development/coq-modules/mathcomp/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/mathcomp/default.nix
@@ -10,7 +10,7 @@
 # See the documentation at doc/languages-frameworks/coq.section.md.        #
 ############################################################################
 
-{ lib, ncurses, which, graphviz, lua,
+{ lib, ncurses, which, graphviz, lua, fetchzip,
   mkCoqDerivation, recurseIntoAttrs, withDoc ? false, single ? false,
   coqPackages, coq, ocamlPackages, version ? null }@args:
 with builtins // lib;
@@ -55,27 +55,51 @@ let
       derivation = mkCoqDerivation ({
         inherit version pname defaultVersion release releaseRev repo owner;
 
-        nativeBuildInputs = optional withDoc graphviz;
+        nativeBuildInputs = optionals withDoc [ graphviz lua ];
         mlPlugin = versions.isLe "8.6" coq.coq-version;
-        extraBuildInputs = [ ncurses which ] ++ optional withDoc lua;
+        extraBuildInputs = [ ncurses which ];
         propagatedBuildInputs = mathcomp-deps;
 
         buildFlags = optional withDoc "doc";
 
         preBuild = ''
-          patchShebangs etc/utils/ssrcoqdep || true
+          if [[ -f etc/utils/ssrcoqdep ]]
+          then patchShebangs etc/utils/ssrcoqdep
+          fi
+          if [[ -f etc/buildlibgraph ]]
+          then patchShebangs etc/buildlibgraph
+          fi
         '' + ''
           cd ${pkgpath}
         '' + optionalString (package == "all") pkgallMake;
 
-        installTargets = "install" + optionalString withDoc " doc";
-
         meta = {
           homepage    = "https://math-comp.github.io/";
           license     = licenses.cecill-b;
           maintainers = with maintainers; [ vbgl jwiegley cohencyril ];
         };
-      } // optionalAttrs (package != "single") { passthru = genAttrs packages mathcomp_; });
+      } // optionalAttrs (package != "single")
+        { passthru = genAttrs packages mathcomp_; }
+        // optionalAttrs withDoc {
+            htmldoc_template =
+              fetchzip {
+                url = "https://github.com/math-comp/math-comp.github.io/archive/doc-1.12.0.zip";
+                sha256 = "0y1352ha2yy6k2dl375sb1r68r1qi9dyyy7dyzj5lp9hxhhq69x8";
+              };
+            postBuild = ''
+              cp -rf _build_doc/* .
+              rm -r _build_doc
+            '';
+            postInstall =
+              let tgt = "$out/share/coq/${coq.coq-version}/"; in
+              optionalString withDoc ''
+              mkdir -p ${tgt}
+              cp -r htmldoc ${tgt}
+              cp -r $htmldoc_template/htmldoc_template/* ${tgt}/htmldoc/
+            '';
+            buildTargets = "doc";
+            extraInstallFlags = [ "-f Makefile.coq" ];
+          });
     patched-derivation1 = derivation.overrideAttrs (o:
       optionalAttrs (o.pname != null && o.pname == "mathcomp-all" &&
          o.version != null && o.version != "dev" && versions.isLt "1.7" o.version)
diff --git a/nixpkgs/pkgs/development/coq-modules/multinomials/default.nix b/nixpkgs/pkgs/development/coq-modules/multinomials/default.nix
index 4958ad893e92..dfa6a63571fd 100644
--- a/nixpkgs/pkgs/development/coq-modules/multinomials/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/multinomials/default.nix
@@ -1,5 +1,5 @@
 { coq, mkCoqDerivation, mathcomp, mathcomp-finmap, mathcomp-bigenough,
-  lib, version ? null }:
+  lib, version ? null, useDune2 ? false }@args:
 with lib; mkCoqDerivation {
 
   namePrefix = [ "coq" "mathcomp" ];
@@ -7,12 +7,16 @@ with lib; mkCoqDerivation {
   owner = "math-comp";
   inherit version;
   defaultVersion =  with versions; switch [ coq.version mathcomp.version ] [
+      { cases = [ (range "8.10" "8.13") "1.12.0" ];             out = "1.5.4"; }
+      { cases = [ (range "8.10" "8.12") "1.12.0" ];             out = "1.5.3"; }
       { cases = [ (range "8.7" "8.12")  "1.11.0" ];             out = "1.5.2"; }
       { cases = [ (range "8.7" "8.11")  (range "1.8" "1.10") ]; out = "1.5.0"; }
       { cases = [ (range "8.7" "8.10")  (range "1.8" "1.10") ]; out = "1.4"; }
       { cases = [ "8.6"                 (range "1.6" "1.7") ];  out = "1.1"; }
     ] null;
   release = {
+    "1.5.4".sha256 = "0s4sbh4y88l125hdxahr56325hdhxxdmqmrz7vv8524llyv3fciq";
+    "1.5.3".sha256 = "1462x40y2qydjd2wcg8r6qr8cx3xv4ixzh2h8vp9h7arylkja1qd";
     "1.5.2".sha256 = "15aspf3jfykp1xgsxf8knqkxv8aav2p39c2fyirw7pwsfbsv2c4s";
     "1.5.1".sha256 = "13nlfm2wqripaq671gakz5mn4r0xwm0646araxv0nh455p9ndjs3";
     "1.5.0".sha256 = "064rvc0x5g7y1a0nip6ic91vzmq52alf6in2bc2dmss6dmzv90hw";
@@ -24,6 +28,8 @@ with lib; mkCoqDerivation {
     "1.0".sha256   = "1qmbxp1h81cy3imh627pznmng0kvv37k4hrwi2faa101s6bcx55m";
   };
 
+  useDune2ifVersion = versions.isGe "1.5.3";
+
   propagatedBuildInputs =
     [ mathcomp.ssreflect mathcomp.algebra mathcomp-finmap mathcomp-bigenough ];
 
@@ -32,3 +38,4 @@ with lib; mkCoqDerivation {
     license = licenses.cecill-c;
   };
 }
+// optionalAttrs (args?useDune2) { inherit useDune2; }
diff --git a/nixpkgs/pkgs/development/coq-modules/odd-order/default.nix b/nixpkgs/pkgs/development/coq-modules/odd-order/default.nix
new file mode 100644
index 000000000000..adc4e3a59477
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/odd-order/default.nix
@@ -0,0 +1,24 @@
+{ lib, mkCoqDerivation, mathcomp, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "odd-order";
+  owner = "math-comp";
+
+  release."1.12.0".rev    = "mathcomp-odd-order.1.12.0";
+  release."1.12.0".sha256 = "sha256-omsfdc294CxKAHNMMeqJCcVimvyRCHgxcQ4NJOWSfNM=";
+
+  inherit version;
+  defaultVersion = with versions; switch mathcomp.character.version [
+    { case = pred.union (isGe "1.10.0") (isEq "dev"); out = "1.12.0"; }
+  ] null;
+
+  propagatedBuildInputs = [ mathcomp.character ];
+
+  meta = {
+    description = "Formal proof of the Odd Order Theorem";
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.cecill-b;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/gnuradio-modules/ais/default.nix b/nixpkgs/pkgs/development/gnuradio-modules/ais/default.nix
new file mode 100644
index 000000000000..5ff4ffd75653
--- /dev/null
+++ b/nixpkgs/pkgs/development/gnuradio-modules/ais/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, python
+, boost
+, cppunit
+, log4cpp
+, osmosdr
+}:
+
+mkDerivation rec {
+  pname = "gr-ais";
+  version = "2015-12-20";
+  src = fetchFromGitHub {
+    owner = "bistromath";
+    repo = "gr-ais";
+    rev = "cdc1f52745853f9c739c718251830eb69704b26e";
+    sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6";
+  };
+  disabledForGRafter = "3.8";
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    python
+  ];
+
+  buildInputs = [
+    cppunit
+    osmosdr
+    boost
+    log4cpp
+  ];
+
+  meta = with lib; {
+    description = "Gnuradio block for ais";
+    homepage = "https://github.com/bistromath/gr-ais";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ mog ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/gnuradio-modules/gsm/default.nix b/nixpkgs/pkgs/development/gnuradio-modules/gsm/default.nix
new file mode 100644
index 000000000000..835c5456668c
--- /dev/null
+++ b/nixpkgs/pkgs/development/gnuradio-modules/gsm/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, cppunit
+, swig
+, boost
+, log4cpp
+, python
+, libosmocore
+, osmosdr
+}:
+
+mkDerivation {
+  pname = "gr-gsm";
+  version = "2016-08-25";
+  src = fetchFromGitHub {
+    owner = "ptrkrysik";
+    repo = "gr-gsm";
+    rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d";
+    sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx";
+  };
+  disabledForGRafter = "3.8";
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    swig
+    python
+  ];
+
+  buildInputs = [
+    cppunit
+    log4cpp
+    boost
+    libosmocore
+    osmosdr
+  ];
+
+  meta = with lib; {
+    description = "Gnuradio block for gsm";
+    homepage = "https://github.com/ptrkrysik/gr-gsm";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mog ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/gnuradio-modules/limesdr/default.nix b/nixpkgs/pkgs/development/gnuradio-modules/limesdr/default.nix
new file mode 100644
index 000000000000..c10ab9df391e
--- /dev/null
+++ b/nixpkgs/pkgs/development/gnuradio-modules/limesdr/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, gnuradio
+, cmake
+, pkg-config
+, doxygen
+, swig
+, python
+, log4cpp
+, mpir
+, boost
+, gmp
+, icu
+, limesuite
+}:
+
+let
+  version = {
+    "3.7" = "2.0.0";
+    "3.8" = "3.0.1";
+    "3.9" = null;
+  }.${gnuradio.versionAttr.major};
+  src = fetchFromGitHub {
+    owner = "myriadrf";
+    repo = "gr-limesdr";
+    rev = "v${version}";
+    sha256 = {
+      "3.7" = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq";
+      "3.8" = "ffs+8TU0yr6IW1xZJ/abQ1CQWGZM+zYqPRJxy3ZvM9U=";
+      "3.9" = null;
+    }.${gnuradio.versionAttr.major};
+  };
+in mkDerivation {
+  pname = "gr-limesdr";
+  inherit version src;
+  disabledForGRafter = "3.9";
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    swig
+    python
+  ];
+  buildInputs = [
+    log4cpp
+    mpir
+    boost
+    gmp
+    icu
+    limesuite
+  ];
+
+  meta = with lib; {
+    description = "Gnuradio source and sink blocks for LimeSDR";
+    homepage = "https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.markuskowa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/gnuradio-modules/mkDerivation.nix b/nixpkgs/pkgs/development/gnuradio-modules/mkDerivation.nix
new file mode 100644
index 000000000000..014968f82cc6
--- /dev/null
+++ b/nixpkgs/pkgs/development/gnuradio-modules/mkDerivation.nix
@@ -0,0 +1,25 @@
+{ lib
+, unwrapped
+}:
+
+mkDerivation:
+
+args:
+
+# Check if it's supposed to not get built for the current gnuradio version
+if (builtins.hasAttr "disabledForGRafter" args) &&
+(lib.versionAtLeast unwrapped.versionAttr.major args.disabledForGRafter) then
+let name = args.name or "${args.pname}"; in
+throw "Package ${name} is incompatible with GNURadio ${unwrapped.versionAttr.major}"
+else
+
+let
+  args_ = {
+    enableParallelBuilding = args.enableParallelBuilding or true;
+    nativeBuildInputs = (args.nativeBuildInputs or []);
+    # We add gnuradio and volk itself by default - most gnuradio based packages
+    # will not consider it a depenency worth mentioning and it will almost
+    # always be needed
+    buildInputs = (args.buildInputs or []) ++ [ unwrapped unwrapped.volk ];
+  };
+in mkDerivation (args // args_)
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/nacl.nix b/nixpkgs/pkgs/development/gnuradio-modules/nacl/default.nix
index f6c21e794542..1ffb0afee07e 100644
--- a/nixpkgs/pkgs/applications/radio/gnuradio/nacl.nix
+++ b/nixpkgs/pkgs/development/gnuradio-modules/nacl/default.nix
@@ -1,31 +1,40 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, uhd
-, makeWrapper, libsodium, cppunit, log4cpp
-, pythonSupport ? true, python, swig
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, cppunit
+, swig
+, boost
+, log4cpp
+, python
+, libsodium
 }:
 
-assert pythonSupport -> python != null && swig != null;
-
-stdenv.mkDerivation {
+mkDerivation {
   pname = "gr-nacl";
   version = "2017-04-10";
-
   src = fetchFromGitHub {
     owner = "stwunsch";
     repo = "gr-nacl";
     rev = "15276bb0fcabf5fe4de4e58df3d579b5be0e9765";
     sha256 = "018np0qlk61l7mlv3xxx5cj1rax8f1vqrsrch3higsl25yydbv7v";
   };
+  disabledForGRafter = "3.8";
 
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [
-    boost gnuradio uhd makeWrapper libsodium cppunit log4cpp
-  ] ++ lib.optionals pythonSupport [ python swig ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    swig
+    python
+  ];
 
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-    done
-  '';
+  buildInputs = [
+    cppunit
+    log4cpp
+    boost
+    libsodium
+  ];
 
   meta = with lib; {
     description = "Gnuradio block for encryption";
diff --git a/nixpkgs/pkgs/development/gnuradio-modules/osmosdr/default.nix b/nixpkgs/pkgs/development/gnuradio-modules/osmosdr/default.nix
new file mode 100644
index 000000000000..0e1cf244c8fc
--- /dev/null
+++ b/nixpkgs/pkgs/development/gnuradio-modules/osmosdr/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, mkDerivation
+, fetchgit
+, gnuradio
+, cmake
+, pkg-config
+, log4cpp
+, mpir
+, boost
+, gmp
+, fftwFloat
+, python
+, swig
+, uhd
+, icu
+, airspy
+, hackrf
+, libbladeRF
+, rtl-sdr
+, soapysdr-with-plugins
+}:
+
+let
+  version = {
+    "3.7" = "0.1.5";
+    "3.8" = "0.2.2";
+    "3.9" = null;
+  }.${gnuradio.versionAttr.major};
+  src = fetchgit {
+    url = "git://git.osmocom.org/gr-osmosdr";
+    rev = "v${version}";
+    sha256 = {
+      "3.7" = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv";
+      "3.8" = "HT6xlN6cJAnvF+s1g2I1uENhBJJizdADlLXeSD0rEqs=";
+      "3.9" = null;
+    }.${gnuradio.versionAttr.major};
+  };
+in mkDerivation {
+  pname = "gr-osmosdr";
+  inherit version src;
+  disabledForGRafter = "3.9";
+
+  buildInputs = [
+    log4cpp
+    mpir
+    boost
+    fftwFloat
+    gmp
+    icu
+    airspy
+    hackrf
+    libbladeRF
+    rtl-sdr
+    soapysdr-with-plugins
+  ] ++ lib.optional (gnuradio.hasFeature "gr-uhd" gnuradio.features) [
+    uhd
+  ];
+  cmakeFlags = [
+    (if (gnuradio.hasFeature "python-support" gnuradio.features) then
+      "-DENABLE_PYTHON=ON"
+    else
+      "-DENABLE_PYTHON=OFF"
+    )
+  ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    swig
+  ] ++ lib.optionals (gnuradio.hasFeature "python-support" gnuradio.features) [
+      (if (gnuradio.versionAttr.major == "3.7") then
+        python.pkgs.cheetah
+      else
+        python.pkgs.Mako
+      )
+      python
+    ]
+  ;
+
+  meta = with lib; {
+    description = "Gnuradio block for OsmoSDR and rtl-sdr";
+    homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ bjornfor ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/gnuradio-modules/rds/default.nix b/nixpkgs/pkgs/development/gnuradio-modules/rds/default.nix
new file mode 100644
index 000000000000..c068d6af8105
--- /dev/null
+++ b/nixpkgs/pkgs/development/gnuradio-modules/rds/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, gnuradio
+, cmake
+, pkg-config
+, swig
+, python
+, log4cpp
+, mpir
+, boost
+, gmp
+, icu
+}:
+
+let
+  version = {
+    "3.7" = "1.1.0";
+    "3.8" = "3.8.0";
+    "3.9" = null;
+  }.${gnuradio.versionAttr.major};
+  src = fetchFromGitHub {
+    owner = "bastibl";
+    repo = "gr-rds";
+    rev = "v${version}";
+    sha256 = {
+      "3.7" = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy";
+      "3.8" = "+yKLJu2bo7I2jkAiOdjvdhZwxFz9NFgTmzcLthH9Y5o=";
+      "3.9" = null;
+    }.${gnuradio.versionAttr.major};
+  };
+in mkDerivation {
+  pname = "gr-rds";
+  inherit version src;
+  disabledForGRafter = "3.9";
+
+  buildInputs = [
+    log4cpp
+    mpir
+    boost
+    gmp
+    icu
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    swig
+    python
+  ];
+
+  meta = with lib; {
+    description = "Gnuradio block for radio data system";
+    homepage = "https://github.com/bastibl/gr-rds";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ mog ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/go-modules/generic/default.nix b/nixpkgs/pkgs/development/go-modules/generic/default.nix
index d4a9b7078cbf..65d63fc9a2fa 100644
--- a/nixpkgs/pkgs/development/go-modules/generic/default.nix
+++ b/nixpkgs/pkgs/development/go-modules/generic/default.nix
@@ -36,14 +36,16 @@ let
     , meta ? {}
 
     # Not needed with buildGoModule
-    , goPackagePath ? null
+    , goPackagePath ? ""
 
     , ... }@args':
 
     with builtins;
 
+    assert goPackagePath != "" -> throw "`goPackagePath` is not needed with `buildGoModule`";
+
     let
-      args = removeAttrs args' [ "overrideModAttrs" "vendorSha256" "disabled" ];
+      args = removeAttrs args' [ "overrideModAttrs" "vendorSha256" ];
 
       go-modules = if vendorSha256 != null then stdenv.mkDerivation (let modArgs = {
 
@@ -244,9 +246,7 @@ let
       }) // {
         overrideGoAttrs = f: buildGoPackage (args' // (f args'));
       };
-    in if (goPackagePath != null) then
-      throw "`goPackagePath` not needed with `buildGoModule`"
-    else
+    in
       package;
 in
   buildGoPackage
diff --git a/nixpkgs/pkgs/development/go-packages/generic/default.nix b/nixpkgs/pkgs/development/go-packages/generic/default.nix
index 0a1b3a9a2948..8a093a03d1c1 100644
--- a/nixpkgs/pkgs/development/go-packages/generic/default.nix
+++ b/nixpkgs/pkgs/development/go-packages/generic/default.nix
@@ -35,6 +35,8 @@
 # IE: programs coupled with the compiler
 , allowGoReference ? false
 
+, CGO_ENABLED ? go.CGO_ENABLED
+
 , meta ? {}, ... } @ args:
 
 
@@ -75,11 +77,13 @@ let
       ++ (lib.optional (!dontRenameImports) govers) ++ nativeBuildInputs;
     buildInputs = buildInputs;
 
-    inherit (go) GOOS GOARCH GO386 CGO_ENABLED;
+    inherit (go) GOOS GOARCH GO386;
 
     GOHOSTARCH = go.GOHOSTARCH or null;
     GOHOSTOS = go.GOHOSTOS or null;
 
+    inherit CGO_ENABLED;
+
     GO111MODULE = "off";
     GOFLAGS = lib.optionals (!allowGoReference) [ "-trimpath" ];
 
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-opengl/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-opengl/default.nix
index effa651b99c8..5ada5d41c7d9 100644
--- a/nixpkgs/pkgs/development/guile-modules/guile-opengl/default.nix
+++ b/nixpkgs/pkgs/development/guile-modules/guile-opengl/default.nix
@@ -18,6 +18,6 @@ in stdenv.mkDerivation {
     homepage = "https://www.gnu.org/software/guile-opengl/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vyp ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
index f03f4a6dcc0d..0956e55ed5dc 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
@@ -64,7 +64,7 @@ self: super: {
       name = "git-annex-${super.git-annex.version}-src";
       url = "git://git-annex.branchable.com/";
       rev = "refs/tags/" + super.git-annex.version;
-      sha256 = "1m9jfr5b0qwajwwmvcq02263bmnqgcqvpdr06sdwlfz3sxsjfp8r";
+      sha256 = "13n62v3cdkx23fywdccczcr8vsf0vmjbimmgin766bf428jlhh6h";
     };
   }).override {
     dbus = if pkgs.stdenv.isLinux then self.dbus else null;
@@ -72,15 +72,6 @@ self: super: {
     hinotify = if pkgs.stdenv.isLinux then self.hinotify else self.fsnotify;
   };
 
-  # Backport fix for bash: compgen: command not found
-  # which happens in nix-shell when a non-interactive bash is on PATH
-  # PR to master: https://github.com/pcapriotti/optparse-applicative/pull/408
-  optparse-applicative = appendPatch super.optparse-applicative (pkgs.fetchpatch {
-    name = "optparse-applicative-0.15.1-hercules-ci-compgen.diff";
-    url = "https://github.com/hercules-ci/optparse-applicative/compare/0.15.1...hercules-ci:0.15.1-nixpkgs-compgen.diff";
-    sha256 = "1bcp6b7gvc8pqbn1n1ybhizkkl5if7hk9ipgl746vk08v0d3xxql";
-  });
-
   # Fix test trying to access /home directory
   shell-conduit = overrideCabal super.shell-conduit (drv: {
     postPatch = "sed -i s/home/tmp/ test/Spec.hs";
@@ -93,33 +84,27 @@ self: super: {
   # https://github.com/froozen/kademlia/issues/2
   kademlia = dontCheck super.kademlia;
 
-  # Tests require older tasty
+  # Tests require older versions of tasty.
+  cborg = (doJailbreak super.cborg).override { base16-bytestring = self.base16-bytestring_0_1_1_7; };
   hzk = dontCheck super.hzk;
+  resolv = doJailbreak super.resolv;
+  tdigest = doJailbreak super.tdigest;
+  text-short = doJailbreak super.text-short;
+  tree-diff = doJailbreak super.tree-diff;
+  zinza = doJailbreak super.zinza;
 
   # Tests require a Kafka broker running locally
   haskakafka = dontCheck super.haskakafka;
 
-  # Depends on broken "lss" package.
-  snaplet-lss = dontDistribute super.snaplet-lss;
-
-  # Depends on broken "NewBinary" package.
-  ASN1 = dontDistribute super.ASN1;
-
-  # Depends on broken "frame" package.
-  frame-markdown = dontDistribute super.frame-markdown;
-
-  # Depends on broken "Elm" package.
-  hakyll-elm = dontDistribute super.hakyll-elm;
-  haskelm = dontDistribute super.haskelm;
-  snap-elm = dontDistribute super.snap-elm;
-
-  # Depends on broken "hails" package.
-  hails-bin = dontDistribute super.hails-bin;
-
   bindings-levmar = overrideCabal super.bindings-levmar (drv: {
     extraLibraries = [ pkgs.blas ];
   });
 
+  # Requires wrapQtAppsHook
+  qtah-cpp-qt5 = overrideCabal super.qtah-cpp-qt5 (drv: {
+    buildDepends = [ pkgs.qt5.wrapQtAppsHook ];
+  });
+
   # The Haddock phase fails for one reason or another.
   deepseq-magic = dontHaddock super.deepseq-magic;
   feldspar-signal = dontHaddock super.feldspar-signal; # https://github.com/markus-git/feldspar-signal/issues/1
@@ -212,31 +197,8 @@ self: super: {
   # base bound
   digit = doJailbreak super.digit;
 
-  # 2020-06-05: HACK: does not pass own build suite - `dontCheck` We should
-  # generate optparse-applicative completions for the hnix executable.  Sadly
-  # building of the executable has been disabled for ghc < 8.10 in hnix.
-  # Generating the completions should be activated again, once we default to
-  # ghc 8.10.
-  hnix = dontCheck (super.hnix.override {
-
-    #  2021-01-07: NOTE: hnix-store-core pinned at ==0.2 in Stackage Nightly.
-    # https://github.com/haskell-nix/hnix-store/issues/104
-    # Until unpin, which may hold off in time due to Stackage maintenence bottleneck
-    # the 0_4_0_0 is used
-    hnix-store-core = self.hnix-store-core_0_4_1_0; # at least 1.7
-
-  });
-
-  #  2021-01-07: NOTE: hnix-store-core pinned at ==0.2 in Stackage Nightly.
-  # https://github.com/haskell-nix/hnix-store/issues/104
-  # Until unpin, which may hold off in time due to Stackage maintenence bottleneck
-  # the 0_4_0_0 is used
-  hnix-store-remote = (super.hnix-store-remote.override {
-    hnix-store-core = self.hnix-store-core_0_4_1_0; # at least 1.7
-  });
-
-  # https://github.com/haskell-nix/hnix-store/issues/127
-  hnix-store-core_0_4_1_0 = addTestToolDepend super.hnix-store-core_0_4_1_0 self.tasty-discover;
+  # 2020-06-05: HACK: does not pass own build suite - `dontCheck`
+  hnix = generateOptparseApplicativeCompletion "hnix" (dontCheck super.hnix);
 
   # Fails for non-obvious reasons while attempting to use doctest.
   search = dontCheck super.search;
@@ -255,13 +217,7 @@ self: super: {
   angel = dontCheck super.angel;
   apache-md5 = dontCheck super.apache-md5;              # http://hydra.cryp.to/build/498709/nixlog/1/raw
   app-settings = dontCheck super.app-settings;          # http://hydra.cryp.to/build/497327/log/raw
-  aws = appendPatch (dontCheck super.aws)               # needs aws credentials
-        (pkgs.fetchpatch {
-          # https://github.com/aristidb/aws/pull/271
-          # bump a version bound
-          url = https://github.com/aristidb/aws/commit/3639262ccd6761dea76f052692ac3aefbd254723.patch;
-          sha256 = "0nxaspldgayqjnidda8w7wps5gdpr2wz6vynl7vkaw8kzxks9bci";
-        });
+  aws = doJailbreak (dontCheck super.aws);              # needs aws credentials, jailbreak for base16-bytestring
   aws-kinesis = dontCheck super.aws-kinesis;            # needs aws credentials for testing
   binary-protocol = dontCheck super.binary-protocol;    # http://hydra.cryp.to/build/499749/log/raw
   binary-search = dontCheck super.binary-search;
@@ -359,6 +315,7 @@ self: super: {
   nats-queue = dontCheck super.nats-queue;
   netpbm = dontCheck super.netpbm;
   network = dontCheck super.network;
+  network_2_6_3_1 = dontCheck super.network_2_6_3_1; # package is missing files for test
   network-dbus = dontCheck super.network-dbus;
   notcpp = dontCheck super.notcpp;
   ntp-control = dontCheck super.ntp-control;
@@ -482,9 +439,6 @@ self: super: {
   # https://github.com/afcowie/locators/issues/1
   locators = dontCheck super.locators;
 
-  # Test suite won't compile against tasty-hunit 0.9.x.
-  zlib = dontCheck super.zlib;
-
   # Test suite won't compile against tasty-hunit 0.10.x.
   binary-parser = dontCheck super.binary-parser;
   binary-parsers = dontCheck super.binary-parsers;
@@ -574,9 +528,6 @@ self: super: {
   # https://github.com/liyang/thyme/issues/36
   thyme = dontCheck super.thyme;
 
-  # https://github.com/k0ral/hbro-contrib/issues/1
-  hbro-contrib = dontDistribute super.hbro-contrib;
-
   # Elm is no longer actively maintained on Hackage: https://github.com/NixOS/nixpkgs/pull/9233.
   Elm = markBroken super.Elm;
   elm-build-lib = markBroken super.elm-build-lib;
@@ -684,8 +635,26 @@ self: super: {
     '';
   });
 
-  # The standard libraries are compiled separately.
-  idris = generateOptparseApplicativeCompletion "idris" (dontCheck super.idris);
+  # * The standard libraries are compiled separately.
+  # * We need multiple patches from master to fix compilation with
+  #   updated dependencies (haskeline and megaparsec) which can be
+  #   removed when the next idris release (1.3.4 probably) comes
+  #   around.
+  idris = generateOptparseApplicativeCompletion "idris"
+    (doJailbreak (dontCheck
+      (appendPatches super.idris [
+        # compatibility with haskeline >= 0.8
+        (pkgs.fetchpatch {
+          url = "https://github.com/idris-lang/Idris-dev/commit/89a87cf666eb8b27190c779e72d0d76eadc1bc14.patch";
+          sha256 = "0fv493zlpgjsf57w0sncd4vqfkabfczp3xazjjmqw54m9rsfix35";
+        })
+        # compatibility with megaparsec >= 0.9
+        (pkgs.fetchpatch {
+          url = "https://github.com/idris-lang/Idris-dev/commit/6ea9bc913877d765048d7cdb7fc5aec60b196fac.patch";
+          sha256 = "0yms74d1xdxd1c08dnp45nb1ddzq54n6hqgzxx0r494wy614ir8q";
+        })
+      ])
+    ));
 
   # https://github.com/pontarius/pontarius-xmpp/issues/105
   pontarius-xmpp = dontCheck super.pontarius-xmpp;
@@ -729,8 +698,24 @@ self: super: {
   # The tests spuriously fail
   libmpd = dontCheck super.libmpd;
 
-  # https://github.com/diagrams/diagrams-lib/issues/288
-  diagrams-lib = overrideCabal super.diagrams-lib (drv: { doCheck = !pkgs.stdenv.isi686; });
+  # 2021-03-12: All of this libraries have to restrictive upper bounds
+  # https://github.com/diagrams/diagrams-core/issues/112
+  active = doJailbreak super.active;
+  statestack = doJailbreak super.statestack;
+  force-layout = doJailbreak super.force-layout;
+  size-based = doJailbreak super.size-based;
+  dual-tree = doJailbreak super.dual-tree;
+  diagrams-core = doJailbreak super.diagrams-core;
+  diagrams-postscript = doJailbreak super.diagrams-postscript;
+  diagrams-svg = doJailbreak super.diagrams-svg;
+  diagrams-contrib = doJailbreak super.diagrams-contrib;
+  # apply patch from master to add compat with optparse-applicative >= 0.16
+  diagrams-lib = doJailbreak (appendPatch super.diagrams-lib
+    (pkgs.fetchpatch {
+      url = "https://github.com/diagrams/diagrams-lib/commit/4b9842c3e3d653be69af19778970337775e2404d.patch";
+      sha256 = "0xqvzh3ip9i0nv8xnh41afxki64r259pxq8ir1a4v99ggnldpjaa";
+      includes = [ "*/CmdLine.hs" ];
+    }));
 
   # https://github.com/danidiaz/streaming-eversion/issues/1
   streaming-eversion = dontCheck super.streaming-eversion;
@@ -819,9 +804,12 @@ self: super: {
   # Jailbreak is necessary to break out of tasty < 1.x dependency.
   cryptohash-sha256 = markUnbroken (doJailbreak super.cryptohash-sha256);
 
+  # The test suite has all kinds of out-dated dependencies, so it feels easier
+  # to just disable it.
+  cryptohash-sha1 = dontCheck super.cryptohash-sha1;
+  cryptohash-md5 = dontCheck super.cryptohash-md5;
+
   # Needs tasty-quickcheck ==0.8.*, which we don't have.
-  cryptohash-sha1 = doJailbreak super.cryptohash-sha1;
-  cryptohash-md5 = doJailbreak super.cryptohash-md5;
   gitHUD = dontCheck super.gitHUD;
   githud = dontCheck super.githud;
 
@@ -845,8 +833,11 @@ self: super: {
   # https://github.com/alphaHeavy/protobuf/issues/34
   protobuf = dontCheck super.protobuf;
 
-  # https://github.com/bos/text-icu/issues/32
-  text-icu = dontCheck super.text-icu;
+  # Is this package still maintained? https://github.com/haskell/text-icu/issues/30
+  text-icu = overrideCabal super.text-icu (drv: {
+    doCheck = false;                                               # https://github.com/bos/text-icu/issues/32
+    configureFlags = ["--ghc-option=-DU_DEFINE_FALSE_AND_TRUE=1"]; # https://github.com/haskell/text-icu/issues/49
+  });
 
   # aarch64 and armv7l fixes.
   happy = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) then dontCheck super.happy else super.happy; # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062
@@ -961,15 +952,20 @@ self: super: {
 
   # Generate shell completion.
   cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix;
-  niv = generateOptparseApplicativeCompletion "niv" super.niv;
+  niv = generateOptparseApplicativeCompletion "niv" (super.niv.overrideScope (self: super: {
+   # Needs override because of: https://github.com/nmattia/niv/issues/312
+   optparse-applicative = self.optparse-applicative_0_15_1_0;
+  }));
   ormolu = generateOptparseApplicativeCompletion "ormolu" super.ormolu;
   stack = generateOptparseApplicativeCompletion "stack" super.stack;
 
   # 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;
-  # dontCheck: printf double rounding behavior
-  prettyprinter = if pkgs.stdenv.hostPlatform.isMusl then dontCheck super.prettyprinter else super.prettyprinter;
+
+  # The test suite runs for 20+ minutes on a very fast machine, which feels kinda disproportionate.
+  prettyprinter = dontCheck super.prettyprinter;
+  brittany = doJailbreak (dontCheck super.brittany);  # Outdated upperbound on ghc-exactprint: https://github.com/lspitzner/brittany/issues/342
 
   # Fix with Cabal 2.2, https://github.com/guillaume-nargeot/hpc-coveralls/pull/73
   hpc-coveralls = appendPatch super.hpc-coveralls (pkgs.fetchpatch {
@@ -1169,10 +1165,11 @@ self: super: {
   # $HOME, which we don't have in our build sandbox.
   cabal-install-parsers = dontCheck super.cabal-install-parsers;
 
-  # version constraints break the build, so we jailbreak
-  # can be removed at a new release which also fixes
-  # https://github.com/jgm/gitit/issues/665
-  gitit = doJailbreak super.gitit;
+  # * jailbreak can be removed at the next release (current is 0.13.0.0)
+  # * patch fixes compilation with pandoc >= 2.12, can be removed if a
+  #   release contains https://github.com/jgm/gitit/pull/670 or equivalent.
+  #   Patch is vendored in as it may change upstream in the future.
+  gitit = doJailbreak (appendPatch super.gitit ./patches/gitit-pandoc-2.12.patch);
 
   # Test suite requires database
   persistent-mysql = dontCheck super.persistent-mysql;
@@ -1322,7 +1319,7 @@ self: super: {
   commonmark-extensions = dontCheck super.commonmark-extensions;
 
   # Testsuite trying to run `which haskeline-examples-Test`
-  haskeline_0_8_1_1 = dontCheck super.haskeline_0_8_1_1;
+  haskeline_0_8_1_2 = dontCheck super.haskeline_0_8_1_2;
 
   # Tests for list-t, superbuffer, and stm-containers
   # depend on HTF and it is broken, 2020-08-23
@@ -1389,10 +1386,7 @@ self: super: {
   #   PATH.
   update-nix-fetchgit = let deps = [ pkgs.git pkgs.nix pkgs.nix-prefetch-git ];
   in generateOptparseApplicativeCompletion "update-nix-fetchgit" (overrideCabal
-    (addTestToolDepends (super.update-nix-fetchgit.overrideScope (self: super: {
-      optparse-generic = self.optparse-generic_1_4_4;
-      optparse-applicative = self.optparse-applicative_0_16_1_0;
-    })) deps) (drv: {
+    (addTestToolDepends super.update-nix-fetchgit deps) (drv: {
       buildTools = drv.buildTools or [ ] ++ [ pkgs.makeWrapper ];
       postInstall = drv.postInstall or "" + ''
         wrapProgram "$out/bin/update-nix-fetchgit" --prefix 'PATH' ':' "${
@@ -1410,20 +1404,45 @@ self: super: {
   # https://github.com/haskell/haskell-language-server/issues/611
   haskell-language-server = dontCheck super.haskell-language-server;
 
-  # 2021-02-08: Jailbreaking because of
-  # https://github.com/haskell/haskell-language-server/issues/1329
-  hls-tactics-plugin = doJailbreak super.hls-tactics-plugin;
-  # 2021-02-11: Jailbreaking because of syntax error on bound revision
-  hls-explicit-imports-plugin = doJailbreak super.hls-explicit-imports-plugin;
+  # 2021-03-19: Too restrictive upper bound on optparse-applicative
+  stylish-haskell = doJailbreak super.stylish-haskell;
+
+  # 2021-03-19: https://github.com/facebookincubator/retrie/issues/24
+  retrie = doJailbreak super.retrie;
+
+  # Jailbreak because of restrictive upper bound on base16-bytestring
+  # 2021-03-19: https://github.com/Avi-D-coder/implicit-hie-cradle/pull/8
+  implicit-hie-cradle = doJailbreak super.implicit-hie-cradle;
+
+  # 2021-03-09: Golden tests seem to be missing in hackage release:
+  # https://github.com/haskell/haskell-language-server/issues/1536
+  hls-tactics-plugin = dontCheck super.hls-tactics-plugin;
+
+  # 2021-03-24: hlint 3.3 is for ghc 9 compat, but hls only supports ghc 8.10
+  hls-hlint-plugin = super.hls-hlint-plugin.override {
+    hlint = super.hlint_3_2_7;
+  };
+
+  # hlint 3.3 needs a ghc-lib-parser newer than the one from stackage
+  hlint = super.hlint.overrideScope (self: super: {
+    ghc-lib-parser = overrideCabal self.ghc-lib-parser_9_0_1_20210324 {
+      doHaddock = false;
+    };
+    ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_0_0_4;
+  });
+
+  # 2021-03-09: Overrides because nightly is to old for hls 1.0.0
+  lsp-test = doDistribute (dontCheck self.lsp-test_0_13_0_0);
 
-  # 2021-02-08: Overrides because nightly is to old for hls 0.9.0
-  lsp-test = doDistribute (dontCheck self.lsp-test_0_11_0_7);
-  haskell-lsp = doDistribute self.haskell-lsp_0_23_0_0;
-  haskell-lsp-types = doDistribute self.haskell-lsp-types_0_23_0_0;
+  # 2021-03-21 Test hangs
+  # https://github.com/haskell/haskell-language-server/issues/1562
+  # Jailbreak because of: https://github.com/haskell/haskell-language-server/pull/1595
+  ghcide = doJailbreak (dontCheck super.ghcide);
 
-  # 1. test requires internet
-  # 2. dependency shake-bench hasn't been published yet so we also need unmarkBroken and doDistribute
-  ghcide = doDistribute (unmarkBroken (dontCheck super.ghcide));
+  # 2020-03-09: Tests broken in hackage release
+  # fixed on upstream, but not released in hiedb 0.3.0.1
+  # https://github.com/wz1000/HieDb/issues/30
+  hiedb = dontCheck super.hiedb;
 
   data-tree-print = doJailbreak super.data-tree-print;
 
@@ -1487,13 +1506,6 @@ self: super: {
   # Due to tests restricting base in 0.8.0.0 release
   http-media = doJailbreak super.http-media;
 
-  # Use an already merged upstream patch fixing the build with primitive >= 0.7.2
-  # The version bounds were correctly specified before, so we need to jailbreak as well
-  streamly = appendPatch (doJailbreak super.streamly) (pkgs.fetchpatch {
-    url = "https://github.com/composewell/streamly/commit/2c88cb631fdcb5c0d3a8bc936e1e63835800be9b.patch";
-    sha256 = "0g2m0y46zr3xs9fswkm4h9adhsg6gzl5zwgidshsjh3k3rq4h7b1";
-  });
-
   # https://github.com/ekmett/half/issues/35
   half = if pkgs.stdenv.isAarch64
     then dontCheck super.half
@@ -1502,6 +1514,8 @@ self: super: {
   # 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124
   heist = doJailbreak super.heist;
 
+  hinit = generateOptparseApplicativeCompletion "hi" (super.hinit.override { haskeline = self.haskeline_0_8_1_2; });
+
   # 2020-11-19: Jailbreaking until: https://github.com/snapframework/snap/pull/219
   snap = doJailbreak super.snap;
 
@@ -1520,12 +1534,29 @@ self: super: {
   # Upstream issue: https://github.com/haskell-servant/servant-swagger/issues/129
   servant-swagger = dontCheck super.servant-swagger;
 
-  # 2020-11-27: cxx-options is broken in Cabal 3.2.0.0
-  hercules-ci-agent = addSetupDepend super.hercules-ci-agent self.Cabal_3_2_1_0;
+  hercules-ci-agent = super.hercules-ci-agent.override {
+    cachix =
+      # https://github.com/cachix/cachix/pull/361
+      (appendPatch
+        (addBuildDepend super.cachix super.hercules-ci-cnix-store)
+        (pkgs.fetchpatch {
+          name = "cachix-361.patch";
+          url = "https://patch-diff.githubusercontent.com/raw/cachix/cachix/pull/361.patch";
+          sha256 = "0wwlcpmnqmvk1css5f723dzgjvg4jr7i58ifhni5zg9h5iwycdfr";
+          stripLen = 1;
+          includes = ["*.cabal" "*.hs"];
+        })
+        );
+  };
+
+  hercules-ci-cli = generateOptparseApplicativeCompletion "hci" (
+    # See hercules-ci-optparse-applicative in non-hackage-packages.nix.
+    addBuildDepend (unmarkBroken super.hercules-ci-cli) super.hercules-ci-optparse-applicative
+  );
 
   # 2020-12-05: http-client is fixed on too old version
   essence-of-live-coding-warp = super.essence-of-live-coding-warp.override {
-    http-client = self.http-client_0_7_5;
+    http-client = self.http-client_0_7_6;
   };
 
   # 2020-12-06: Restrictive upper bounds w.r.t. pandoc-types (https://github.com/owickstrom/pandoc-include-code/issues/27)
@@ -1581,4 +1612,172 @@ self: super: {
   # Test suite fails, upstream not reachable for simple fix (not responsive on github)
   vivid-osc = dontCheck super.vivid-osc;
   vivid-supercollider = dontCheck super.vivid-supercollider;
+
+  # Dependency to regex-tdfa-text can be removed for later regex-tdfa versions.
+  # Fix protolude compilation error by applying patch from pull-request.
+  # Override can be removed for the next release > 0.8.0.
+  yarn2nix = overrideCabal (super.yarn2nix.override {
+    regex-tdfa-text = null;
+  }) (attrs: {
+    jailbreak = true;
+    # remove dependency on regex-tdfa-text
+    # which has been merged into regex-tdfa
+    postPatch = ''
+      sed -i '/regex-tdfa-text/d' yarn2nix.cabal
+    '';
+    patches = (attrs.patches or []) ++ [
+      # fix a compilation error related to protolude 0.3
+      (pkgs.fetchpatch {
+        url = "https://github.com/Profpatsch/yarn2nix/commit/ca78cf06226819b2e78cb6cdbc157d27afb41532.patch";
+        sha256 = "1vkczwzhxilnp87apyb18nycn834y5nbw4yr1kpwlwhrhalvzw61";
+        includes = [ "*/ResolveLockfile.hs" ];
+      })
+    ];
+  });
+
+  # cabal-install switched to build type simple in 3.2.0.0
+  # as a result, the cabal(1) man page is no longer installed
+  # automatically. Instead we need to use the `cabal man`
+  # command which generates the man page on the fly and
+  # install it to $out/share/man/man1 ourselves in this
+  # override.
+  # The commit that introduced this change:
+  # https://github.com/haskell/cabal/commit/91ac075930c87712eeada4305727a4fa651726e7
+  cabal-install = overrideCabal super.cabal-install (old: {
+    postInstall = old.postInstall + ''
+      mkdir -p "$out/share/man/man1"
+      "$out/bin/cabal" man --raw > "$out/share/man/man1/cabal.1"
+    '';
+  });
+
+  # while waiting for a new release: https://github.com/brendanhay/amazonka/pull/572
+  amazonka = appendPatches (doJailbreak super.amazonka) [
+    (pkgs.fetchpatch {
+      stripLen = 1;
+      url = "https://github.com/brendanhay/amazonka/commit/43ddd87b1ebd6af755b166e16336259ec025b337.patch";
+      sha256 = "1x9l5xgvrh908di6whpavyp08cys11v3yn6rc21zw87xiyigdbi3";
+    })
+  ];
+
+  # Test suite does not compile.
+  feed = dontCheck super.feed;
+
+  spacecookie = overrideCabal super.spacecookie (old: {
+    buildTools = (old.buildTools or []) ++ [ pkgs.installShellFiles ];
+    # let testsuite discover the resulting binary
+    preCheck = ''
+      export SPACECOOKIE_TEST_BIN=./dist/build/spacecookie/spacecookie
+    '' + (old.preCheck or "");
+    # install man pages shipped in the sdist
+    postInstall = ''
+      installManPage docs/man/*
+    '' + (old.postInstall or "");
+  });
+
+  # Patch and jailbreak can be removed at next release, chatter > 0.9.1.0
+  # * Remove dependency on regex-tdfa-text
+  # * Jailbreak as bounds on cereal are too strict
+  # * Disable test suite which doesn't compile
+  #   https://github.com/creswick/chatter/issues/38
+  chatter = appendPatch
+    (dontCheck (doJailbreak (super.chatter.override { regex-tdfa-text = null; })))
+    (pkgs.fetchpatch {
+      url = "https://github.com/creswick/chatter/commit/e8c15a848130d7d27b8eb5e73e8a0db1366b2e62.patch";
+      sha256 = "1dzak8d12h54vss5fxnrclygz0fz9ygbqvxd5aifz5n3vrwwpj3g";
+    });
+
+  # 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;
+
+  # test suite triggers some kind of linking bug at runtime
+  # https://github.com/noinia/hgeometry/issues/132
+  hgeometry-combinatorial = dontCheck super.hgeometry-combinatorial;
+
+  # Too strict version bounds on ansi-terminal
+  # https://github.com/kowainik/co-log/pull/218
+  co-log = doJailbreak super.co-log;
+
+  # Test suite has a too strict bound on base
+  # https://github.com/jswebtools/language-ecmascript/pull/88
+  language-ecmascript = doJailbreak super.language-ecmascript;
+
+  # Too strict bounds on containers
+  # https://github.com/jswebtools/language-ecmascript-analysis/issues/1
+  language-ecmascript-analysis = doJailbreak super.language-ecmascript-analysis;
+
+  # Too strict bounds on optparse-applicative
+  # https://github.com/faylang/fay/pull/474
+  fay = doJailbreak super.fay;
+
+  # Too strict version bounds on cryptonite.
+  # Issue reported upstream, no bug tracker url yet.
+  darcs = doJailbreak super.darcs;
+
+  # Too strict version bounds on ansi-terminal
+  # This patch will be contained with the next release (current is 0.1.0.0).
+  colourista = appendPatch super.colourista
+    (pkgs.fetchpatch {
+      url = "https://github.com/kowainik/colourista/commit/15ace92105b56eba4ea3717bd55f733afe5be401.patch";
+      sha256 = "sha256-9gJFlyWUkO5sJodDRNuH10I66j8/0ZZIv6nJQkhlA0s=";
+    });
+
+  # Too strict version bounds on base16-bytestring and http-link-header.
+  # This patch will be merged when next release comes.
+  github = appendPatch super.github (pkgs.fetchpatch {
+    url = "https://github.com/phadej/github/commit/514b175851dd7c4a9722ff203dd6f652a15d33e8.patch";
+    sha256 = "0pmx54xd7ah85y9mfi5366wbnwrp918j0wbx8yw8hrdac92qi4gh";
+  });
+
+  # 2021-04-02: Outdated optparse-applicative bound is fixed but not realeased on upstream.
+  trial-optparse-applicative = assert super.trial-optparse-applicative.version == "0.0.0.0"; doJailbreak super.trial-optparse-applicative;
+
+  # 2021-04-02: Outdated optparse-applicative bound is fixed but not realeased on upstream.
+  extensions = assert super.extensions.version == "0.0.0.1"; doJailbreak super.extensions;
+
+  # 2021-04-02: iCalendar is basically unmaintained.
+  # There are PRs for bumping the bounds: https://github.com/chrra/iCalendar/pull/46
+  iCalendar = overrideCabal (doJailbreak super.iCalendar) {
+      # Overriding bounds behind a cabal flag
+      preConfigure = ''substituteInPlace iCalendar.cabal --replace "network >=2.6 && <2.7" "network -any"'';
+  };
+
+  # Too strict bounds on base: https://github.com/runarorama/fuzzyfind/issues/1
+  fuzzyfind = doJailbreak super.fuzzyfind;
+
+  # Apply patch from master relaxing the version bounds on tasty.
+  # Can be removed at next release (current is 0.10.1.0).
+  ginger = appendPatch super.ginger
+    (pkgs.fetchpatch {
+      url = "https://github.com/tdammers/ginger/commit/bd8cb39c1853d4fb4f663c4c201884575906acea.patch";
+      sha256 = "1rdy53k0384g52bnc59j1f0i13hr4lbnbksfsabr4av6zmw9wmzf";
+    });
+
+  # Too strict version bounds on cryptonite
+  # https://github.com/obsidiansystems/haveibeenpwned/issues/7
+  haveibeenpwned = doJailbreak super.haveibeenpwned;
+
+  # Too strict version bounds on ghc-events
+  # https://github.com/haskell/ThreadScope/issues/118
+  threadscope = doJailbreak super.threadscope;
+
+  # Too strict version bounds on tasty
+  # Can likely be removed next week (2021-04-09) when 1.1.1.1 is released.
+  fused-effects = doJailbreak super.fused-effects;
+
+  # Test suite doesn't support base16-bytestring >= 1.0
+  # https://github.com/centromere/blake2/issues/6
+  blake2 = dontCheck super.blake2;
+
+  # Test suite doesn't support base16-bytestring >= 1.0
+  # https://github.com/serokell/haskell-crypto/issues/25
+  crypto-sodium = dontCheck super.crypto-sodium;
+
+  # Too strict version bounds on a bunch of libraries:
+  # https://github.com/smallhadroncollider/taskell/issues/100
+  # May be possible to remove at the next release (1.11.0)
+  taskell = doJailbreak super.taskell;
+
 } // 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 c162740b8d78..c4bab1f0785e 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
@@ -42,21 +42,18 @@ self: super: {
   unix = null;
   xhtml = null;
 
-  # The proper 3.2.0.0 release does not compile with ghc-8.10.1, so we take the
-  # hitherto unreleased next version from the '3.2' branch of the upstream git
-  # repository for the time being.
-  cabal-install = assert super.cabal-install.version == "3.2.0.0";
-                  overrideCabal super.cabal-install (drv: {
-    postUnpack = "sourceRoot+=/cabal-install; echo source root reset to $sourceRoot";
-    version = "3.2.0.0-git";
-    editedCabalFile = null;
-    src = pkgs.fetchgit {
-      url = "git://github.com/haskell/cabal.git";
-      rev = "9bd4cc0591616aeae78e17167338371a2542a475";
-      sha256 = "005q1shh7vqgykkp72hhmswmrfpz761x0q0jqfnl3wqim4xd9dg0";
-    };
+  # cabal-install needs more recent versions of Cabal and random, but an older
+  # version of base16-bytestring.
+  cabal-install = super.cabal-install.overrideScope (self: super: {
+    Cabal = self.Cabal_3_4_0_0;
+    base16-bytestring = self.base16-bytestring_0_1_1_7;
+    random = dontCheck super.random_1_2_0;  # break infinite recursion
+    hashable = doJailbreak super.hashable;  # allow random 1.2.x
   });
 
+  # cabal-install-parsers is written for Cabal 3.4
+  cabal-install-parsers = super.cabal-install-parsers.override { Cabal = super.Cabal_3_4_0_0; };
+
   # Jailbreak to fix the build.
   base-noprelude = doJailbreak super.base-noprelude;
   system-fileio = doJailbreak super.system-fileio;
@@ -93,10 +90,4 @@ self: super: {
   # Break out of "Cabal < 3.2" constraint.
   stylish-haskell = doJailbreak super.stylish-haskell;
 
-  # Agda 2.6.1.2 only declares a transformers dependency for ghc < 8.10.3.
-  # https://github.com/agda/agda/issues/5109
-  Agda = appendPatch super.Agda (pkgs.fetchpatch {
-    url = "https://github.com/agda/agda/commit/76278c23d447b49f59fac581ca4ac605792aabbc.patch";
-    sha256 = "1g34g8a09j73h89pk4cdmri0nb0qg664hkff45amcr9kyz14a9f3";
-  });
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix
deleted file mode 100644
index bd9f43e90c9d..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix
+++ /dev/null
@@ -1,97 +0,0 @@
-{ pkgs, haskellLib }:
-
-with haskellLib;
-
-self: super: {
-
-  # Suitable LLVM version.
-  llvmPackages = pkgs.llvmPackages;
-
-  # Disable GHC 8.2.x core libraries.
-  array = null;
-  base = null;
-  binary = null;
-  bytestring = null;
-  Cabal = null;
-  containers = null;
-  deepseq = null;
-  directory = null;
-  filepath = null;
-  ghc-boot = null;
-  ghc-boot-th = null;
-  ghc-compact = null;
-  ghc-heap = null;
-  ghc-prim = null;
-  ghci = null;
-  haskeline = null;
-  hoopl = null;
-  hpc = null;
-  integer-gmp = null;
-  pretty = null;
-  process = null;
-  rts = null;
-  template-haskell = null;
-  terminfo = null;
-  time = null;
-  transformers = null;
-  unix = null;
-  xhtml = null;
-
-  # These are now core libraries in GHC 8.4.x.
-  mtl = self.mtl_2_2_2;
-  parsec = self.parsec_3_1_14_0;
-  stm = self.stm_2_5_0_0;
-  text = self.text_1_2_4_0;
-
-  # Needs Cabal 3.0.x.
-  jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_2_1_0; };
-
-  # https://github.com/bmillwood/applicative-quoters/issues/6
-  applicative-quoters = appendPatch super.applicative-quoters (pkgs.fetchpatch {
-    url = "https://patch-diff.githubusercontent.com/raw/bmillwood/applicative-quoters/pull/7.patch";
-    sha256 = "026vv2k3ks73jngwifszv8l59clg88pcdr4mz0wr0gamivkfa1zy";
-  });
-
-  # https://github.com/nominolo/ghc-syb/issues/20
-  ghc-syb-utils = dontCheck super.ghc-syb-utils;
-
-  # Upstream failed to distribute the testsuite for 8.2
-  # https://github.com/alanz/ghc-exactprint/pull/60
-  ghc-exactprint = dontCheck super.ghc-exactprint;
-
-  # Reduction stack overflow; size = 38
-  # https://github.com/jystic/hadoop-tools/issues/31
-  hadoop-rpc =
-    let patch = pkgs.fetchpatch
-          { url = "https://github.com/shlevy/hadoop-tools/commit/f03a46cd15ce3796932c3382e48bcbb04a6ee102.patch";
-            sha256 = "09ls54zy6gx84fmzwgvx18ssgm740cwq6ds70p0p125phi54agcp";
-            stripLen = 1;
-          };
-    in appendPatch super.hadoop-rpc patch;
-
-  # Custom Setup.hs breaks with Cabal 2
-  # https://github.com/NICTA/coordinate/pull/4
-  coordinate =
-    let patch = pkgs.fetchpatch
-          { url = "https://github.com/NICTA/coordinate/pull/4.patch";
-            sha256 = "06sfxk5cyd8nqgjyb95jkihxxk8m6dw9m3mlv94sm2qwylj86gqy";
-          };
-    in appendPatch super.coordinate patch;
-
-  # https://github.com/purescript/purescript/issues/3189
-  purescript = doJailbreak (super.purescript);
-
-  # These packages need Cabal 2.2.x, which is not the default.
-  cabal2nix = super.cabal2nix.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
-  cabal2spec = super.cabal2spec.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
-  distribution-nixpkgs = super.distribution-nixpkgs.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
-  stack = super.stack.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
-
-  # Older GHC versions need these additional dependencies.
-  ListLike = addBuildDepend super.ListLike self.semigroups;
-  base-compat-batteries = addBuildDepend super.base-compat-batteries self.contravariant;
-
-  # ghc versions prior to 8.8.x needs additional dependency to compile successfully.
-  ghc-lib-parser-ex = addBuildDepend super.ghc-lib-parser-ex self.ghc-lib-parser;
-
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
deleted file mode 100644
index 6831c7c327d7..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
+++ /dev/null
@@ -1,93 +0,0 @@
-{ pkgs, haskellLib }:
-
-with haskellLib;
-
-self: super: {
-
-  # This compiler version needs llvm 5.x.
-  llvmPackages = pkgs.llvmPackages_5;
-
-  # Disable GHC 8.4.x core libraries.
-  array = null;
-  base = null;
-  binary = null;
-  bytestring = null;
-  Cabal = null;
-  containers = null;
-  deepseq = null;
-  directory = null;
-  filepath = null;
-  ghc-boot = null;
-  ghc-boot-th = null;
-  ghc-compact = null;
-  ghc-heap = null;
-  ghc-prim = null;
-  ghci = null;
-  haskeline = null;
-  hpc = null;
-  integer-gmp = null;
-  mtl = null;
-  parsec = null;
-  pretty = null;
-  process = null;
-  rts = null;
-  stm = null;
-  template-haskell = null;
-  terminfo = null;
-  text = null;
-  time = null;
-  transformers = null;
-  unix = null;
-  xhtml = null;
-
-  # Needs Cabal 3.2.x.
-  cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_2_1_0; });
-  jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_2_1_0; };
-
-  # Restricts aeson to <1.4
-  # https://github.com/purescript/purescript/pull/3537
-  purescript = doJailbreak super.purescript;
-
-  # https://github.com/jcristovao/enclosed-exceptions/issues/12
-  enclosed-exceptions = dontCheck super.enclosed-exceptions;
-
-  # https://github.com/jaor/xmobar/issues/356
-  xmobar = super.xmobar.overrideScope (self: super: { hinotify = self.hinotify_0_3_9; });
-  hinotify_0_3_9 = dontCheck (doJailbreak super.hinotify_0_3_9); # allow async 2.2.x
-
-  # Reduction stack overflow; size = 38
-  # https://github.com/jystic/hadoop-tools/issues/31
-  hadoop-rpc =
-    let patch = pkgs.fetchpatch
-          { url = "https://github.com/shlevy/hadoop-tools/commit/f03a46cd15ce3796932c3382e48bcbb04a6ee102.patch";
-            sha256 = "09ls54zy6gx84fmzwgvx18ssgm740cwq6ds70p0p125phi54agcp";
-            stripLen = 1;
-          };
-    in appendPatch super.hadoop-rpc patch;
-
-  # stack-1.9.1 needs Cabal 2.4.x, a recent version of hpack, and a non-recent
-  # version of yaml. Go figure. We avoid overrideScope here because using it to
-  # change Cabal would re-compile every single package instead of just those
-  # that have it as an actual library dependency. The explicit overrides are
-  # more verbose but friendlier for Hydra.
-  stack = (doJailbreak super.stack).override {
-    Cabal = self.Cabal_2_4_1_0;
-    hpack = self.hpack.override { Cabal = self.Cabal_2_4_1_0; };
-    hackage-security = self.hackage-security.override { Cabal = self.Cabal_2_4_1_0; };
-  };
-
-  # Older GHC versions need these additional dependencies.
-  aeson = addBuildDepend super.aeson self.contravariant;
-  base-compat-batteries = addBuildDepend super.base-compat-batteries self.contravariant;
-
-  # Newer versions don't compile.
-  resolv = self.resolv_0_1_1_2;
-
-  # The old Haddock cannot process the newer documentation syntax.
-  fast-logger = dontHaddock super.fast-logger;
-
-  # ghc versions prior to 8.8.x needs additional dependency to compile successfully.
-  ghc-lib-parser-ex = addBuildDepend super.ghc-lib-parser-ex self.ghc-lib-parser;
-  hls-hlint-plugin = addBuildDepend super.hls-hlint-plugin self.ghc-lib;
-
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index b695c448be46..bcce0bb897c5 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -102,4 +102,8 @@ self: super: {
   vector = dontCheck super.vector;
 
   mmorph = super.mmorph_1_1_3;
+
+  # https://github.com/haskellari/time-compat/issues/23
+  time-compat = dontCheck super.time-compat;
+
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index e6e0f690fe79..00797c0c86f1 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -52,9 +52,17 @@ self: super: {
   haddock = self.haddock_2_23_1;
   haddock-api = self.haddock-api_2_23_1;
 
-  # These builds need Cabal 3.2.x.
+  # This build needs a newer version of Cabal.
   cabal2spec = super.cabal2spec.override { Cabal = self.Cabal_3_2_1_0; };
-  cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_2_1_0; });
+
+  # cabal-install needs more recent versions of Cabal and random, but an older
+  # version of base16-bytestring.
+  cabal-install = super.cabal-install.overrideScope (self: super: {
+    Cabal = self.Cabal_3_4_0_0;
+    base16-bytestring = self.base16-bytestring_0_1_1_7;
+    random = dontCheck super.random_1_2_0;  # break infinite recursion
+    hashable = doJailbreak super.hashable;  # allow random 1.2.x
+  });
 
   # Ignore overly restrictive upper version bounds.
   aeson-diff = doJailbreak super.aeson-diff;
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 e3f196440cab..1b8b087326e8 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
@@ -43,17 +43,13 @@ self: super: {
   unix = null;
   xhtml = null;
 
-  # Take the 3.4.x release candidate.
-  cabal-install = assert super.cabal-install.version == "3.2.0.0";
-                  overrideCabal super.cabal-install (drv: {
-    postUnpack = "sourceRoot+=/cabal-install; echo source root reset to $sourceRoot";
-    version = "cabal-install-3.4.0.0-rc4";
-    editedCabalFile = null;
-    src = pkgs.fetchgit {
-      url = "git://github.com/haskell/cabal.git";
-      rev = "cabal-install-3.4.0.0-rc4";
-      sha256 = "049hllk1d8jid9yg70hmcsdgb0n7hm24p39vavllaahfb0qfimrk";
-    };
+  # cabal-install needs more recent versions of random, but an older
+  # version of base16-bytestring.
+  cabal-install = (doJailbreak super.cabal-install).overrideScope (self: super: {
+    Cabal = null;
+    base16-bytestring = self.base16-bytestring_0_1_1_7;
+    random = dontCheck super.random_1_2_0;  # break infinite recursion
+    hashable = doJailbreak super.hashable;  # allow random 1.2.x
   });
 
   # Jailbreaks & Version Updates
@@ -62,8 +58,10 @@ self: super: {
   data-fix = doJailbreak super.data-fix;
   dec = doJailbreak super.dec;
   ed25519 = doJailbreak super.ed25519;
+  hackage-security = doJailbreak super.hackage-security;
   hashable = overrideCabal (doJailbreak (dontCheck super.hashable)) (drv: { postPatch = "sed -i -e 's,integer-gmp .*<1.1,integer-gmp < 2,' hashable.cabal"; });
   hashable-time = doJailbreak super.hashable-time;
+  HTTP = overrideCabal (doJailbreak super.HTTP) (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; });
   integer-logarithms = overrideCabal (doJailbreak super.integer-logarithms) (drv: { postPatch = "sed -i -e 's,integer-gmp <1.1,integer-gmp < 2,' integer-logarithms.cabal"; });
   lukko = doJailbreak super.lukko;
   parallel = doJailbreak super.parallel;
@@ -84,10 +82,7 @@ self: super: {
     url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/alex-3.2.5.patch";
     sha256 = "0q8x49k3jjwyspcmidwr6b84s4y43jbf4wqfxfm6wz8x2dxx6nwh";
   });
-  doctest = appendPatch (dontCheck (doJailbreak super.doctest_0_18)) (pkgs.fetchpatch {
-    url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/doctest-0.17.patch";
-    sha256 = "16s2jcbk9hsww38i2wzxghbf0zpp5dc35hp6rd2n7d4z5xfavp62";
-  });
+  doctest = dontCheck (doJailbreak super.doctest_0_18_1);
   generic-deriving = appendPatch (doJailbreak super.generic-deriving) (pkgs.fetchpatch {
     url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/generic-deriving-1.13.1.patch";
     sha256 = "0z85kiwhi5p2wiqwyym0y8q8qrcifp125x5vm0n4482lz41kmqds";
@@ -96,12 +91,11 @@ self: super: {
     url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/language-haskell-extract-0.2.4.patch";
     sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
   });
-  regex-base = appendPatch (doJailbreak super.regex-base) (pkgs.fetchpatch {
-    url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/regex-base-0.94.0.0.patch";
-    sha256 = "0k5fglbl7nnhn8400c4cpnflxcbj9p3xi5prl9jfmszr31jwdy5d";
-  });
 
   # The test suite depends on ChasingBottoms, which is broken with ghc-9.0.x.
   unordered-containers = dontCheck super.unordered-containers;
 
+  # The test suite seems pretty broken.
+  base64-bytestring = dontCheck super.base64-bytestring;
+
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghcjs.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghcjs.nix
deleted file mode 100644
index 00a8c8d520bb..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ /dev/null
@@ -1,209 +0,0 @@
-# GHCJS package fixes
-#
-# Please insert new packages *alphabetically*
-# in the OTHER PACKAGES section.
-{ pkgs, haskellLib }:
-
-let
-  removeLibraryHaskellDepends = pnames: depends:
-    builtins.filter (e: !(builtins.elem (e.pname or "") pnames)) depends;
-in
-
-with haskellLib;
-
-self: super:
-
-## GENERAL SETUP BASE PACKAGES
-
-  let # The stage 1 packages
-      stage1 = pkgs.lib.genAttrs super.ghc.stage1Packages (pkg: null);
-      # The stage 2 packages. Regenerate with ../compilers/ghcjs/gen-stage2.rb
-      stage2 = super.ghc.mkStage2 {
-        inherit (self) callPackage;
-      };
-  in stage1 // stage2 // {
-
-  # GHCJS does not ship with the same core packages as GHC.
-  # https://github.com/ghcjs/ghcjs/issues/676
-  stm = self.stm_2_5_0_0;
-  ghc-compact = self.ghc-compact_0_1_0_0;
-
-  network = addBuildTools super.network (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
-  zlib = addBuildTools super.zlib (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
-  unix-compat = addBuildTools super.unix-compat (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
-
-  # LLVM is not supported on this GHC; use the latest one.
-  inherit (pkgs) llvmPackages;
-
-  inherit (self.ghc.bootPkgs)
-    jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
-
-  # Don't set integer-simple to null!
-  # GHCJS uses integer-gmp, so any package expression that depends on
-  # integer-simple is wrong.
-  #integer-simple = null;
-
-  # These packages are core libraries in GHC 8.6..x, but not here.
-  bin-package-db = null;
-  haskeline = self.haskeline_0_7_5_0;
-  hpc = self.hpc_0_6_0_3;
-  terminfo = self.terminfo_0_4_1_4;
-  xhtml = self.xhtml_3000_2_2_1;
-
-## OTHER PACKAGES
-
-  # haddock throws the error: No input file(s).
-  fail = dontHaddock super.fail;
-
-  cereal = addBuildDepend super.cereal [ self.fail ];
-
-  entropy = overrideCabal super.entropy (old: {
-    postPatch = old.postPatch or "" + ''
-      # cabal doesn’t find ghc in this script, since it’s in the bootPkgs
-      sed -e '/Simple.Program/a import Distribution.Simple.Program.Types' \
-          -e 's|mConf.*=.*$|mConf = Just $ simpleConfiguredProgram "ghc" (FoundOnSystem "${self.ghc.bootPkgs.ghc}/bin/ghc")|g' -i Setup.hs
-    '';
-  });
-
-  # https://github.com/kazu-yamamoto/logger/issues/97
-  fast-logger = overrideCabal super.fast-logger (old: {
-    postPatch = old.postPatch or "" + ''
-      # remove the Safe extensions, since ghcjs-boot directory
-      # doesn’t provide Trustworthy
-      sed -ie '/LANGUAGE Safe/d' System/Log/FastLogger/*.hs
-      cat System/Log/FastLogger/Date.hs
-    '';
-  });
-
-  # experimental
-  ghcjs-ffiqq = self.callPackage
-    ({ mkDerivation, base, template-haskell, ghcjs-base, split, containers, text, ghc-prim
-     }:
-     mkDerivation {
-       pname = "ghcjs-ffiqq";
-       version = "0.1.0.0";
-       src = pkgs.fetchFromGitHub {
-         owner = "ghcjs";
-         repo = "ghcjs-ffiqq";
-         rev = "b52338c2dcd3b0707bc8aff2e171411614d4aedb";
-         sha256 = "08zxfm1i6zb7n8vbz3dywdy67vkixfyw48580rwfp48rl1s2z1c7";
-       };
-       libraryHaskellDepends = [
-         base template-haskell ghcjs-base split containers text ghc-prim
-       ];
-       description = "FFI QuasiQuoter for GHCJS";
-       license = pkgs.lib.licenses.mit;
-     }) {};
-  # experimental
-  ghcjs-vdom = self.callPackage
-    ({ mkDerivation, base, ghc-prim, ghcjs-ffiqq, ghcjs-base, ghcjs-prim
-      , containers, split, template-haskell
-    }:
-    mkDerivation rec {
-      pname = "ghcjs-vdom";
-      version = "0.2.0.0";
-      src = pkgs.fetchFromGitHub {
-        owner = "ghcjs";
-        repo = pname;
-        rev = "1c1175ba22eca6d7efa96f42a72290ade193c148";
-        sha256 = "0c6l1dk2anvz94yy5qblrfh2iv495rjq4qmhlycc24dvd02f7n9m";
-      };
-      libraryHaskellDepends = [
-        base ghc-prim ghcjs-ffiqq ghcjs-base ghcjs-prim containers split
-        template-haskell
-      ];
-      license = pkgs.lib.licenses.mit;
-      description = "bindings for https://github.com/Matt-Esch/virtual-dom";
-    }) {};
-
-  ghcjs-dom = overrideCabal super.ghcjs-dom (drv: {
-    libraryHaskellDepends = with self; [
-      ghcjs-base ghcjs-dom-jsffi text transformers
-    ];
-    configureFlags = [ "-fjsffi" "-f-webkit" ];
-  });
-
-  ghcjs-dom-jsffi = overrideCabal super.ghcjs-dom-jsffi (drv: {
-    libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base self.text ];
-    isLibrary = true;
-  });
-
-  ghc-paths = overrideCabal super.ghc-paths (drv: {
-    patches = [ ./patches/ghc-paths-nix-ghcjs.patch ];
-  });
-
-  http2 = addBuildDepends super.http2 [ self.aeson self.aeson-pretty self.hex self.unordered-containers self.vector self.word8 ];
-  # ghcjsBoot uses async 2.0.1.6, protolude wants 2.1.*
-
-  # These are the correct dependencies specified when calling `cabal2nix --compiler ghcjs`
-  # By default, the `miso` derivation present in hackage-packages.nix
-  # does not contain dependencies suitable for ghcjs
-  miso = overrideCabal super.miso (drv: {
-      libraryHaskellDepends = with self; [
-        BoundedChan bytestring containers ghcjs-base aeson base
-        http-api-data http-types network-uri scientific servant text
-        transformers unordered-containers vector
-      ];
-    });
-
-  pqueue = overrideCabal super.pqueue (drv: {
-    postPatch = ''
-      sed -i -e '12s|null|Data.PQueue.Internals.null|' Data/PQueue/Internals.hs
-      sed -i -e '64s|null|Data.PQueue.Internals.null|' Data/PQueue/Internals.hs
-      sed -i -e '32s|null|Data.PQueue.Internals.null|' Data/PQueue/Min.hs
-      sed -i -e '32s|null|Data.PQueue.Max.null|' Data/PQueue/Max.hs
-      sed -i -e '42s|null|Data.PQueue.Prio.Internals.null|' Data/PQueue/Prio/Min.hs
-      sed -i -e '42s|null|Data.PQueue.Prio.Max.null|' Data/PQueue/Prio/Max.hs
-    '';
-  });
-
-  profunctors = overrideCabal super.profunctors (drv: {
-    preConfigure = ''
-      sed -i 's/^{-# ANN .* #-}//' src/Data/Profunctor/Unsafe.hs
-    '';
-  });
-
-  protolude = doJailbreak super.protolude;
-
-  # reflex 0.3, made compatible with the newest GHCJS.
-  reflex = overrideCabal super.reflex (drv: {
-    src = pkgs.fetchFromGitHub {
-      owner = "ryantrinkle";
-      repo = "reflex";
-      rev = "cc62c11a6cde31412582758c236919d4bb766ada";
-      sha256 = "1j4vw0636bkl46lj8ry16i04vgpivjc6bs3ls54ppp1wfp63q7w4";
-    };
-  });
-
-  # reflex-dom 0.2, made compatible with the newest GHCJS.
-  reflex-dom = overrideCabal super.reflex-dom (drv: {
-    src = pkgs.fetchFromGitHub {
-      owner = "ryantrinkle";
-      repo = "reflex-dom";
-      rev = "639d9ca13c2def075e83344c9afca6eafaf24219";
-      sha256 = "0166ihbh3dbfjiym9w561svpgvj0x4i8i8ws70xaafi0cmpsxrar";
-    };
-    libraryHaskellDepends =
-      removeLibraryHaskellDepends [
-        "glib" "gtk3" "webkitgtk3" "webkitgtk3-javascriptcore" "raw-strings-qq" "unix"
-      ] drv.libraryHaskellDepends;
-  });
-
-  transformers-compat = overrideCabal super.transformers-compat (drv: {
-    configureFlags = [];
-  });
-
-  # triggers an internal pattern match failure in haddock
-  # https://github.com/haskell/haddock/issues/553
-  wai = dontHaddock super.wai;
-
-  base-orphans = dontCheck super.base-orphans;
-  distributive = dontCheck super.distributive;
-
-  # https://github.com/glguy/th-abstraction/issues/53
-  th-abstraction = dontCheck super.th-abstraction;
-  # https://github.com/dreixel/syb/issues/21
-  syb = dontCheck super.syb;
-  # https://github.com/ghcjs/ghcjs/issues/677
-  hspec-core = dontCheck super.hspec-core;
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index e03c9425ed25..a2ccc3103db5 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -73,10 +73,33 @@ default-package-overrides:
   # gi-gdkx11-4.x requires gtk-4.x, which is still under development and
   # not yet available in Nixpkgs
   - gi-gdkx11 < 4
-  - ghcide < 0.7.4 # for hls 0.9.0
-  - hls-explicit-imports-plugin < 0.1.0.1 # for hls 0.9.0
+  # Needs Cabal 3.4 for Setup.hs
+  - gi-javascriptcore < 4.0.23 #
+  - gi-soup < 2.4.24 #
+  - gi-webkit2 < 4.0.27 #
+  # To stay hls 1.0 compatible
+  - ghcide < 1.1
+  - hls-retrie-plugin < 1.0.0.1
+  - lsp < 1.2
+  - lsp-types < 1.2
+  # 2021-04-02: Stackage Nighlty has haskell-gi* < 0.25,
+  # so we need to restrict these to compatible versions
+  # Remove these as soon as haskell-gi{,-base} are 0.25.*
+  # in Stackage Nightly!
+  - gi-ggit < 1.0.10
+  - gi-girepository < 1.0.24
+  - gi-gst < 1.0.24
+  - gi-gstbase < 1.0.24
+  - gi-gstvideo < 1.0.24
+  - gi-gtksource < 3.0.24
+  - gi-ibus < 1.5.3
+  - gi-notify < 0.7.23
+  - gi-ostree < 1.0.14
+  - gi-pangocairo < 1.0.25
+  - gi-secret < 0.0.13
+  - gi-vte < 2.91.28
 
-  # Stackage Nightly 2021-02-10
+  # Stackage Nightly 2021-03-21
   - abstract-deque ==0.3
   - abstract-par ==0.3.3
   - AC-Angle ==1.0
@@ -86,11 +109,11 @@ default-package-overrides:
   - ad ==4.4.1
   - adjunctions ==4.4
   - adler32 ==0.1.2.0
-  - aeson ==1.5.5.1
+  - aeson ==1.5.6.0
   - aeson-attoparsec ==0.0.0
   - aeson-better-errors ==0.9.1.0
   - aeson-casing ==0.2.0.0
-  - aeson-combinators ==0.0.4.0
+  - aeson-combinators ==0.0.5.0
   - aeson-commit ==1.3
   - aeson-compat ==0.3.9
   - aeson-default ==0.9.1.0
@@ -101,7 +124,7 @@ default-package-overrides:
   - aeson-picker ==0.1.0.5
   - aeson-pretty ==0.8.8
   - aeson-qq ==0.8.3
-  - aeson-schemas ==1.3.2
+  - aeson-schemas ==1.3.3
   - aeson-with ==0.1.2.0
   - aeson-yak ==0.1.1.3
   - aeson-yaml ==1.1.0.0
@@ -111,6 +134,7 @@ default-package-overrides:
   - alarmclock ==0.7.0.5
   - alerts ==0.1.2.0
   - alex ==3.2.6
+  - alex-meta ==0.3.0.13
   - alg ==0.2.13.1
   - algebraic-graphs ==0.5
   - Allure ==0.9.5.0
@@ -210,10 +234,10 @@ default-package-overrides:
   - amazonka-waf ==1.6.1
   - amazonka-workspaces ==1.6.1
   - amazonka-xray ==1.6.1
-  - amqp ==0.20.0.1
-  - amqp-utils ==0.4.4.1
+  - amqp ==0.22.0
+  - amqp-utils ==0.6.1.0
   - annotated-wl-pprint ==0.7.0
-  - ansi-terminal ==0.10.3
+  - ansi-terminal ==0.11
   - ansi-wl-pprint ==0.6.9
   - ANum ==0.2.0.2
   - apecs ==0.9.2
@@ -224,25 +248,24 @@ default-package-overrides:
   - ap-normalize ==0.1.0.0
   - appar ==0.1.8
   - appendmap ==0.1.5
-  - apply-refact ==0.9.0.0
+  - apply-refact ==0.9.2.0
   - apportionment ==0.0.0.3
-  - approximate ==0.3.2
+  - approximate ==0.3.4
   - approximate-equality ==1.1.0.2
   - app-settings ==0.2.0.12
   - arbor-lru-cache ==0.1.1.1
-  - arbor-postgres ==0.0.5
   - arithmoi ==0.11.0.1
   - array-memoize ==0.6.0
   - arrow-extras ==0.1.0.1
-  - ascii ==1.0.1.2
-  - ascii-case ==1.0.0.2
-  - ascii-char ==1.0.0.6
+  - ascii ==1.0.1.4
+  - ascii-case ==1.0.0.4
+  - ascii-char ==1.0.0.8
   - asciidiagram ==1.3.3.3
-  - ascii-group ==1.0.0.2
-  - ascii-predicates ==1.0.0.2
+  - ascii-group ==1.0.0.4
+  - ascii-predicates ==1.0.0.4
   - ascii-progress ==0.3.3.0
-  - ascii-superset ==1.0.1.2
-  - ascii-th ==1.0.0.2
+  - ascii-superset ==1.0.1.4
+  - ascii-th ==1.0.0.4
   - asif ==6.0.4
   - asn1-encoding ==0.9.6
   - asn1-parse ==0.9.5
@@ -250,7 +273,7 @@ default-package-overrides:
   - assert-failure ==0.1.2.5
   - assoc ==1.0.2
   - astro ==0.4.2.1
-  - async ==2.2.2
+  - async ==2.2.3
   - async-extra ==0.2.0.0
   - async-pool ==0.9.1
   - async-refresh ==0.3.0.0
@@ -258,15 +281,15 @@ default-package-overrides:
   - atom-basic ==0.2.5
   - atomic-primops ==0.8.4
   - atomic-write ==0.2.0.7
-  - attoparsec ==0.13.2.4
+  - attoparsec ==0.13.2.5
   - attoparsec-base64 ==0.0.0
   - attoparsec-binary ==0.2
   - attoparsec-expr ==0.1.1.2
   - attoparsec-iso8601 ==1.0.2.0
   - attoparsec-path ==0.0.0.1
   - audacity ==0.0.2
-  - aur ==7.0.5
-  - aura ==3.2.2
+  - aur ==7.0.6
+  - aura ==3.2.4
   - authenticate ==1.3.5
   - authenticate-oauth ==1.6.0.1
   - auto ==0.4.3.1
@@ -280,17 +303,17 @@ default-package-overrides:
   - bank-holidays-england ==0.2.0.6
   - barbies ==2.0.2.0
   - base16 ==0.3.0.1
-  - base16-bytestring ==0.1.1.7
-  - base16-lens ==0.1.3.0
+  - base16-bytestring ==1.0.1.0
+  - base16-lens ==0.1.3.2
   - base32 ==0.2.0.0
-  - base32-lens ==0.1.0.0
+  - base32-lens ==0.1.1.1
   - base32string ==0.9.1
   - base58-bytestring ==0.1.0
   - base58string ==0.10.0
   - base64 ==0.4.2.3
   - base64-bytestring ==1.1.0.0
   - base64-bytestring-type ==1.0.1
-  - base64-lens ==0.3.0
+  - base64-lens ==0.3.1
   - base64-string ==0.2
   - base-compat ==0.11.2
   - base-compat-batteries ==0.11.2
@@ -301,6 +324,8 @@ default-package-overrides:
   - basic-prelude ==0.7.0
   - bazel-runfiles ==0.12
   - bbdb ==0.8
+  - bcp47 ==0.2.0.3
+  - bcp47-orphans ==0.1.0.2
   - bcrypt ==0.0.11
   - bech32 ==1.1.0
   - bech32-th ==1.0.2
@@ -312,7 +337,7 @@ default-package-overrides:
   - bimap ==0.4.0
   - bimaps ==0.1.0.2
   - bimap-server ==0.1.0.1
-  - bin ==0.1
+  - bin ==0.1.1
   - binary-conduit ==1.3.1
   - binary-ext ==2.0.4
   - binary-ieee754 ==0.1.0.0
@@ -321,7 +346,7 @@ default-package-overrides:
   - binary-orphans ==1.0.1
   - binary-parser ==0.5.6
   - binary-parsers ==0.2.4.0
-  - binary-search ==1.0.0.3
+  - binary-search ==2.0.0
   - binary-shared ==0.8.3
   - binary-tagged ==0.3
   - bindings-DSL ==1.0.25
@@ -330,11 +355,11 @@ default-package-overrides:
   - bindings-uname ==0.1
   - bins ==0.1.2.0
   - bitarray ==0.0.1.1
-  - bits ==0.5.2
+  - bits ==0.5.3
   - bitset-word8 ==0.1.1.2
   - bits-extra ==0.0.2.0
-  - bitvec ==1.0.3.0
-  - bitwise-enum ==1.0.0.3
+  - bitvec ==1.1.1.0
+  - bitwise-enum ==1.0.1.0
   - blake2 ==0.3.0
   - blanks ==0.5.0
   - blas-carray ==0.1.0.1
@@ -343,11 +368,12 @@ default-package-overrides:
   - blaze-bootstrap ==0.1.0.1
   - blaze-builder ==0.4.2.1
   - blaze-html ==0.9.1.2
-  - blaze-markup ==0.8.2.7
+  - blaze-markup ==0.8.2.8
   - blaze-svg ==0.3.6.1
   - blaze-textual ==0.2.1.0
   - bmp ==1.2.6.3
-  - BNFC ==2.9.0
+  - BNFC ==2.9.1
+  - BNFC-meta ==0.6.1
   - board-games ==0.3
   - boltzmann-samplers ==0.1.1.0
   - Boolean ==0.2.4
@@ -375,6 +401,7 @@ default-package-overrides:
   - bugzilla-redhat ==0.3.1
   - burrito ==1.2.0.1
   - butcher ==1.3.3.2
+  - buttplug-hs-core ==0.1.0.0
   - bv ==0.5
   - bv-little ==1.1.1
   - byteable ==0.1.1
@@ -382,7 +409,7 @@ default-package-overrides:
   - bytedump ==1.0
   - byte-order ==0.1.2.0
   - byteorder ==1.0.4
-  - bytes ==0.17
+  - bytes ==0.17.1
   - byteset ==0.1.1.0
   - bytestring-builder ==0.10.8.2.0
   - bytestring-conversion ==0.3.1
@@ -406,13 +433,13 @@ default-package-overrides:
   - cache ==0.1.3.0
   - cacophony ==0.10.1
   - calendar-recycling ==0.0.0.1
-  - call-stack ==0.2.0
+  - call-stack ==0.3.0
   - can-i-haz ==0.3.1.0
   - ca-province-codes ==1.0.0.0
   - cardano-coin-selection ==1.0.1
   - carray ==0.1.6.8
   - casa-client ==0.0.1
-  - casa-types ==0.0.1
+  - casa-types ==0.0.2
   - cased ==0.1.0.0
   - case-insensitive ==1.2.1.0
   - cases ==0.1.4
@@ -422,7 +449,7 @@ default-package-overrides:
   - cassava-megaparsec ==2.0.2
   - cast ==0.1.0.2
   - category ==0.2.5.0
-  - cayley-client ==0.4.13
+  - cayley-client ==0.4.14
   - cborg ==0.2.4.0
   - cborg-json ==0.2.2.0
   - cereal ==0.5.8.1
@@ -434,7 +461,7 @@ default-package-overrides:
   - chan ==0.0.4.1
   - ChannelT ==0.0.0.7
   - character-cases ==0.1.0.6
-  - charset ==0.3.7.1
+  - charset ==0.3.8
   - charsetdetect-ae ==1.1.0.4
   - Chart ==1.9.3
   - chaselev-deque ==0.5.0.5
@@ -457,6 +484,7 @@ default-package-overrides:
   - cipher-rc4 ==0.1.4
   - circle-packing ==0.1.0.6
   - circular ==0.3.1.1
+  - citeproc ==0.3.0.9
   - clash-ghc ==1.2.5
   - clash-lib ==1.2.5
   - clash-prelude ==1.2.5
@@ -474,30 +502,30 @@ default-package-overrides:
   - cmark ==0.6
   - cmark-gfm ==0.2.2
   - cmark-lucid ==0.1.0.0
-  - cmdargs ==0.10.20
+  - cmdargs ==0.10.21
   - codec-beam ==0.2.0
-  - codec-rpm ==0.2.2
   - code-page ==0.2.1
-  - co-log ==0.4.0.1
   - co-log-concurrent ==0.5.0.0
   - co-log-core ==0.2.1.1
-  - Color ==0.3.0
+  - Color ==0.3.1
   - colorful-monoids ==0.2.1.3
   - colorize-haskell ==1.0.1
   - colour ==2.3.5
-  - colourista ==0.1.0.0
   - combinatorial ==0.1.0.1
-  - comfort-array ==0.4
+  - comfort-array ==0.4.1
   - comfort-graph ==0.0.3.1
+  - commonmark ==0.1.1.4
+  - commonmark-extensions ==0.2.0.4
+  - commonmark-pandoc ==0.2.0.1
   - commutative ==0.0.2
   - comonad ==5.0.8
   - comonad-extras ==4.0.1
   - compactmap ==0.1.4.2.1
   - compdata ==0.12.1
-  - compensated ==0.8.1
+  - compensated ==0.8.3
   - compiler-warnings ==0.1.0
   - composable-associations ==0.1.0.0
-  - composable-associations-aeson ==0.1.0.0
+  - composable-associations-aeson ==0.1.0.1
   - composite-aeson ==0.7.4.0
   - composite-aeson-path ==0.7.4.0
   - composite-aeson-refined ==0.7.4.0
@@ -510,23 +538,23 @@ default-package-overrides:
   - composition ==1.0.2.1
   - composition-extra ==2.0.0
   - concise ==0.1.0.1
-  - concurrency ==1.11.0.0
+  - concurrency ==1.11.0.1
   - concurrent-extra ==0.7.0.12
   - concurrent-output ==1.10.12
   - concurrent-split ==0.0.1.1
   - concurrent-supply ==0.1.8
   - cond ==0.4.1.1
-  - conduit ==1.3.4
+  - conduit ==1.3.4.1
   - conduit-algorithms ==0.0.11.0
   - conduit-combinators ==1.3.0
   - conduit-concurrent-map ==0.1.1
   - conduit-extra ==1.3.5
   - conduit-parse ==0.2.1.0
   - conduit-zstd ==0.0.2.0
-  - conferer ==1.0.0.1
-  - conferer-aeson ==1.0.0.0
-  - conferer-hspec ==1.0.0.0
-  - conferer-warp ==1.0.0.0
+  - conferer ==1.1.0.0
+  - conferer-aeson ==1.1.0.1
+  - conferer-hspec ==1.1.0.0
+  - conferer-warp ==1.1.0.0
   - ConfigFile ==1.1.4
   - config-ini ==0.2.4.0
   - configurator ==0.3.0.0
@@ -538,7 +566,7 @@ default-package-overrides:
   - constraint ==0.1.4.0
   - constraints ==0.12
   - constraint-tuples ==0.1.2
-  - construct ==0.3
+  - construct ==0.3.0.1
   - contravariant ==1.5.3
   - contravariant-extras ==0.3.5.2
   - control-bool ==0.2.1
@@ -552,7 +580,6 @@ default-package-overrides:
   - core-text ==0.3.0.0
   - countable ==1.0
   - country ==0.2.1
-  - cpio-conduit ==0.7.0
   - cpphs ==1.20.9.1
   - cprng-aes ==0.6.1
   - cpu ==0.1.2
@@ -572,7 +599,8 @@ default-package-overrides:
   - cryptohash-md5 ==0.11.100.1
   - cryptohash-sha1 ==0.11.100.1
   - cryptohash-sha256 ==0.11.102.0
-  - cryptonite ==0.27
+  - cryptohash-sha512 ==0.11.100.1
+  - cryptonite ==0.28
   - cryptonite-conduit ==0.2.2
   - cryptonite-openssl ==0.7
   - crypto-numbers ==0.2.7
@@ -604,7 +632,7 @@ default-package-overrides:
   - data-accessor-mtl ==0.2.0.4
   - data-accessor-template ==0.2.1.16
   - data-accessor-transformers ==0.2.1.7
-  - data-ascii ==1.0.0.4
+  - data-ascii ==1.0.0.6
   - data-binary-ieee754 ==0.4.4
   - data-bword ==0.1.0.1
   - data-checked ==0.3
@@ -623,7 +651,7 @@ default-package-overrides:
   - data-forest ==0.1.0.8
   - data-has ==0.4.0.0
   - data-hash ==0.2.0.1
-  - data-interval ==2.0.1
+  - data-interval ==2.1.0
   - data-inttrie ==0.1.4
   - data-lens-light ==0.1.2.2
   - data-memocombinators ==0.5.1
@@ -643,19 +671,19 @@ default-package-overrides:
   - debian ==4.0.2
   - debian-build ==0.10.2.0
   - debug-trace-var ==0.2.0
-  - dec ==0.0.3
-  - Decimal ==0.5.1
-  - declarative ==0.5.3
+  - dec ==0.0.4
+  - Decimal ==0.5.2
+  - declarative ==0.5.4
   - deepseq-generics ==0.2.0.0
   - deepseq-instances ==0.1.0.1
-  - deferred-folds ==0.9.15
-  - dejafu ==2.4.0.1
+  - deferred-folds ==0.9.17
+  - dejafu ==2.4.0.2
   - dense-linear-algebra ==0.1.0.0
   - depq ==0.4.1.0
   - deque ==0.4.3
   - deriveJsonNoPrefix ==0.1.0.1
   - derive-topdown ==0.0.2.2
-  - deriving-aeson ==0.2.6
+  - deriving-aeson ==0.2.6.1
   - deriving-compat ==0.5.10
   - derulo ==1.0.10
   - dhall ==1.38.0
@@ -663,7 +691,7 @@ default-package-overrides:
   - dhall-json ==1.7.5
   - dhall-lsp-server ==1.0.13
   - dhall-yaml ==1.2.5
-  - diagrams-solve ==0.1.2
+  - diagrams-solve ==0.1.3
   - dialogflow-fulfillment ==0.1.1.3
   - di-core ==1.0.4
   - dictionary-sharing ==0.1.0.0
@@ -686,11 +714,13 @@ default-package-overrides:
   - dlist-nonempty ==0.1.1
   - dns ==4.0.1
   - dockerfile ==0.2.0
-  - doclayout ==0.3
+  - doclayout ==0.3.0.2
   - doctemplates ==0.9
   - doctest ==0.16.3
   - doctest-discover ==0.2.0.0
+  - doctest-driver-gen ==0.3.0.3
   - doctest-exitcode-stdio ==0.0
+  - doctest-extract ==0.1
   - doctest-lib ==0.1
   - doldol ==0.4.1.2
   - do-list ==1.0.1
@@ -701,12 +731,13 @@ default-package-overrides:
   - dotnet-timespan ==0.0.1.0
   - double-conversion ==2.0.2.0
   - download ==0.3.2.7
+  - download-curl ==0.1.4
   - drinkery ==0.4
   - dsp ==0.2.5.1
   - dual ==0.1.1.1
   - dublincore-xml-conduit ==0.1.0.2
   - dunai ==0.7.0
-  - duration ==0.1.0.0
+  - duration ==0.2.0.0
   - dvorak ==0.1.0.0
   - dynamic-state ==0.3.1
   - dyre ==0.8.12
@@ -715,7 +746,7 @@ default-package-overrides:
   - Earley ==0.13.0.1
   - easy-file ==0.2.2
   - Ebnf2ps ==1.0.15
-  - echo ==0.1.3
+  - echo ==0.1.4
   - ecstasy ==0.2.1.0
   - ed25519 ==0.0.5.0
   - edit-distance ==0.2.2.1
@@ -738,12 +769,12 @@ default-package-overrides:
   - elm-bridge ==0.6.1
   - elm-core-sources ==1.0.0
   - elm-export ==0.6.0.1
-  - elynx ==0.5.0.1
-  - elynx-markov ==0.5.0.1
-  - elynx-nexus ==0.5.0.1
-  - elynx-seq ==0.5.0.1
-  - elynx-tools ==0.5.0.1
-  - elynx-tree ==0.5.0.1
+  - elynx ==0.5.0.2
+  - elynx-markov ==0.5.0.2
+  - elynx-nexus ==0.5.0.2
+  - elynx-seq ==0.5.0.2
+  - elynx-tools ==0.5.0.2
+  - elynx-tree ==0.5.0.2
   - email-validate ==2.3.2.13
   - emojis ==0.1
   - enclosed-exceptions ==1.0.3
@@ -765,8 +796,8 @@ default-package-overrides:
   - error-or-utils ==0.1.1
   - errors ==2.3.0
   - errors-ext ==0.4.2
-  - ersatz ==0.4.8
-  - esqueleto ==3.4.0.1
+  - ersatz ==0.4.9
+  - esqueleto ==3.4.1.0
   - essence-of-live-coding ==0.2.4
   - essence-of-live-coding-gloss ==0.2.4
   - essence-of-live-coding-pulse ==0.2.4
@@ -788,7 +819,7 @@ default-package-overrides:
   - executable-path ==0.0.3.1
   - exit-codes ==1.0.0
   - exomizer ==1.0.0
-  - experimenter ==0.1.0.4
+  - experimenter ==0.1.0.10
   - expiring-cache-map ==0.0.6.1
   - explicit-exception ==0.1.10
   - exp-pairs ==0.2.1.0
@@ -805,14 +836,16 @@ default-package-overrides:
   - fakedata-parser ==0.1.0.0
   - fakefs ==0.3.0.2
   - fakepull ==0.3.0.2
+  - faktory ==1.0.2.1
   - fast-digits ==0.3.0.0
-  - fast-logger ==3.0.2
+  - fast-logger ==3.0.3
   - fast-math ==1.0.2
   - fb ==2.1.1
+  - fclabels ==2.0.5
   - feature-flags ==0.1.0.1
   - fedora-dists ==1.1.2
   - fedora-haskell-tools ==0.9
-  - feed ==1.3.0.1
+  - feed ==1.3.2.0
   - FenwickTree ==0.1.2.1
   - fft ==0.1.8.6
   - fgl ==5.7.0.3
@@ -821,21 +854,23 @@ default-package-overrides:
   - filelock ==0.1.1.5
   - filemanip ==0.3.6.3
   - file-modules ==0.1.2.4
+  - filepath-bytestring ==1.4.2.1.7
   - file-path-th ==0.1.0.0
   - filepattern ==0.1.2
   - fileplow ==0.1.0.0
   - filtrable ==0.1.4.0
-  - fin ==0.1.1
+  - fin ==0.2
   - FindBin ==0.0.5
   - fingertree ==0.1.4.2
   - finite-typelits ==0.1.4.2
-  - first-class-families ==0.8.0.0
+  - first-class-families ==0.8.0.1
   - first-class-patterns ==0.3.2.5
   - fitspec ==0.4.8
   - fixed ==0.3
   - fixed-length ==0.2.2
   - fixed-vector ==1.2.0.0
   - fixed-vector-hetero ==0.6.0.0
+  - fix-whitespace ==0.0.5
   - flac ==0.2.0
   - flac-picture ==0.1.2
   - flags-applicative ==0.1.0.2
@@ -853,9 +888,9 @@ default-package-overrides:
   - focuslist ==0.1.0.2
   - foldable1 ==0.1.0.0
   - fold-debounce ==0.2.0.9
-  - fold-debounce-conduit ==0.2.0.5
-  - foldl ==1.4.10
-  - folds ==0.7.5
+  - fold-debounce-conduit ==0.2.0.6
+  - foldl ==1.4.11
+  - folds ==0.7.6
   - follow-file ==0.0.3
   - FontyFruity ==0.5.3.5
   - foreign-store ==0.2
@@ -880,7 +915,7 @@ default-package-overrides:
   - ftp-client-conduit ==0.5.0.5
   - funcmp ==1.9
   - function-builder ==0.3.0.1
-  - functor-classes-compat ==1
+  - functor-classes-compat ==1.0.1
   - fusion-plugin ==0.2.2
   - fusion-plugin-types ==0.1.0
   - fuzzcheck ==0.1.1
@@ -905,7 +940,8 @@ default-package-overrides:
   - generic-optics ==2.0.0.0
   - GenericPretty ==1.2.2
   - generic-random ==1.3.0.1
-  - generics-sop ==0.5.1.0
+  - generics-eot ==0.4.0.1
+  - generics-sop ==0.5.1.1
   - generics-sop-lens ==0.2.0.1
   - geniplate-mirror ==0.7.7
   - genvalidity ==0.11.0.0
@@ -923,8 +959,14 @@ default-package-overrides:
   - genvalidity-mergeful ==0.2.0.0
   - genvalidity-mergeless ==0.2.0.0
   - genvalidity-path ==0.3.0.4
+  - genvalidity-persistent ==0.0.0.0
   - genvalidity-property ==0.5.0.1
   - genvalidity-scientific ==0.2.1.1
+  - genvalidity-sydtest ==0.0.0.0
+  - genvalidity-sydtest-aeson ==0.0.0.0
+  - genvalidity-sydtest-hashable ==0.0.0.0
+  - genvalidity-sydtest-lens ==0.0.0.0
+  - genvalidity-sydtest-persistent ==0.0.0.1
   - genvalidity-text ==0.7.0.2
   - genvalidity-time ==0.3.0.0
   - genvalidity-typed-uuid ==0.0.0.2
@@ -936,8 +978,8 @@ default-package-overrides:
   - ghc-byteorder ==4.11.0.0.10
   - ghc-check ==0.5.0.3
   - ghc-core ==0.5.6
-  - ghc-events ==0.15.1
-  - ghc-exactprint ==0.6.3.4
+  - ghc-events ==0.16.0
+  - ghc-exactprint ==0.6.4
   - ghcid ==0.8.7
   - ghci-hexcalc ==0.1.1.0
   - ghcjs-codemirror ==0.0.0.2
@@ -946,15 +988,15 @@ default-package-overrides:
   - ghc-lib-parser-ex ==8.10.0.19
   - ghc-parser ==0.2.2.0
   - ghc-paths ==0.1.0.12
-  - ghc-prof ==1.4.1.7
+  - ghc-prof ==1.4.1.8
   - ghc-source-gen ==0.4.0.0
   - ghc-syntax-highlighter ==0.0.6.0
   - ghc-tcplugins-extra ==0.4.1
-  - ghc-trace-events ==0.1.2.1
+  - ghc-trace-events ==0.1.2.2
   - ghc-typelits-extra ==0.4.2
-  - ghc-typelits-knownnat ==0.7.4
-  - ghc-typelits-natnormalise ==0.7.3
-  - ghc-typelits-presburger ==0.5.2.0
+  - ghc-typelits-knownnat ==0.7.5
+  - ghc-typelits-natnormalise ==0.7.4
+  - ghc-typelits-presburger ==0.6.0.0
   - ghost-buster ==0.1.1.0
   - gi-atk ==2.0.22
   - gi-cairo ==1.0.24
@@ -976,8 +1018,7 @@ default-package-overrides:
   - gingersnap ==0.3.1.0
   - gi-pango ==1.0.23
   - githash ==0.1.5.0
-  - github ==0.26
-  - github-release ==1.3.6
+  - github-release ==1.3.7
   - github-rest ==1.0.3
   - github-types ==0.2.1
   - github-webhooks ==0.15.0
@@ -995,17 +1036,19 @@ default-package-overrides:
   - gluturtle ==0.0.58.1
   - gnuplot ==0.5.6.1
   - google-isbn ==1.0.3
-  - gothic ==0.1.5
+  - gopher-proxy ==0.1.1.2
+  - gothic ==0.1.6
   - gpolyline ==0.1.0.1
   - graph-core ==0.3.0.0
   - graphite ==0.10.0.1
   - graphql-client ==1.1.0
   - graphs ==0.7.1
+  - graphula ==2.0.0.3
   - graphviz ==2999.20.1.0
   - graph-wrapper ==0.2.6.0
   - gravatar ==0.8.0
-  - greskell ==1.2.0.0
-  - greskell-core ==0.1.3.5
+  - greskell ==1.2.0.1
+  - greskell-core ==0.1.3.6
   - greskell-websocket ==0.1.2.5
   - groom ==0.1.2.1
   - group-by-date ==0.1.0.4
@@ -1017,9 +1060,8 @@ default-package-overrides:
   - hackage-db ==2.1.0
   - hackage-security ==0.6.0.1
   - haddock-library ==1.9.0
-  - hadolint ==1.22.1
   - hadoop-streaming ==0.2.0.3
-  - hakyll-convert ==0.3.0.3
+  - hakyll-convert ==0.3.0.4
   - half ==0.3.1
   - hall-symbols ==0.1.0.6
   - hamtsolo ==1.0.3
@@ -1027,15 +1069,16 @@ default-package-overrides:
   - hapistrano ==0.4.1.2
   - happstack-server ==7.7.0
   - happy ==1.20.0
+  - happy-meta ==0.2.0.11
   - HasBigDecimal ==0.1.1
   - hasbolt ==0.1.4.4
   - hashable ==1.3.0.0
-  - hashable-time ==0.2.0.2
+  - hashable-time ==0.2.1
   - hashids ==1.0.2.4
   - hashing ==0.1.0.1
   - hashmap ==1.3.3
   - hashtables ==1.2.4.1
-  - haskeline ==0.8.1.1
+  - haskeline ==0.8.1.2
   - haskell-gi ==0.24.7
   - haskell-gi-base ==0.24.5
   - haskell-gi-overloading ==1.0
@@ -1047,7 +1090,7 @@ default-package-overrides:
   - haskell-src ==1.0.3.1
   - haskell-src-exts ==1.23.1
   - haskell-src-exts-util ==0.2.5
-  - haskell-src-meta ==0.8.5
+  - haskell-src-meta ==0.8.7
   - haskey-btree ==0.3.0.1
   - hasql ==1.4.4.2
   - hasql-notifications ==0.1.0.0
@@ -1055,7 +1098,7 @@ default-package-overrides:
   - hasql-pool ==0.5.2
   - hasql-queue ==1.2.0.2
   - hasql-transaction ==1.0.0.1
-  - hasty-hamiltonian ==1.3.3
+  - hasty-hamiltonian ==1.3.4
   - HaTeX ==3.22.3.0
   - HaXml ==1.25.5
   - haxr ==3000.11.4.1
@@ -1063,11 +1106,11 @@ default-package-overrides:
   - hdaemonize ==0.5.6
   - HDBC ==2.4.0.3
   - HDBC-session ==0.1.2.0
-  - headroom ==0.3.2.0
+  - headroom ==0.4.1.0
   - heap ==1.0.4
-  - heaps ==0.3.6.1
+  - heaps ==0.4
   - hebrew-time ==0.1.2
-  - hedgehog ==1.0.4
+  - hedgehog ==1.0.5
   - hedgehog-corpus ==0.2.0
   - hedgehog-fakedata ==0.0.1.4
   - hedgehog-fn ==1.0
@@ -1080,27 +1123,24 @@ default-package-overrides:
   - hexml ==0.3.4
   - hexml-lens ==0.2.1
   - hexpat ==0.20.13
-  - hexstring ==0.11.1
   - hformat ==0.3.3.1
   - hfsevents ==0.1.6
-  - hgeometry ==0.11.0.0
-  - hgeometry-combinatorial ==0.11.0.0
   - hgrev ==0.2.6
   - hidapi ==0.1.5
-  - hie-bios ==0.7.2
+  - hie-bios ==0.7.5
   - hi-file-parser ==0.1.0.0
   - higher-leveldb ==0.6.0.0
   - highlighting-kate ==0.6.4
   - hinfo ==0.0.3.0
   - hinotify ==0.4.1
-  - hint ==0.9.0.3
+  - hint ==0.9.0.4
   - hjsmin ==0.2.0.4
   - hkd-default ==1.1.0.0
-  - hkgr ==0.2.6.1
+  - hkgr ==0.2.7
   - hlibcpuid ==0.2.0
   - hlibgit2 ==0.18.0.16
   - hlibsass ==0.1.10.1
-  - hmatrix ==0.20.1
+  - hmatrix ==0.20.2
   - hmatrix-backprop ==0.1.3.0
   - hmatrix-gsl ==0.19.0.1
   - hmatrix-gsl-stats ==0.4.1.8
@@ -1108,7 +1148,6 @@ default-package-overrides:
   - hmatrix-vector-sized ==0.1.3.0
   - hmm-lapack ==0.4
   - hmpfr ==0.4.4
-  - hnix-store-core ==0.2.0.0
   - hnock ==0.4.0
   - hoauth2 ==1.16.0
   - hocon ==0.1.0.4
@@ -1120,7 +1159,7 @@ default-package-overrides:
   - hostname-validate ==1.0.0
   - hourglass ==0.2.12
   - hourglass-orphans ==0.1.0.0
-  - hp2pretty ==0.9
+  - hp2pretty ==0.10
   - hpack ==0.34.4
   - hpack-dhall ==0.5.2
   - hpc-codecov ==0.2.0.1
@@ -1140,12 +1179,13 @@ default-package-overrides:
   - hsinstall ==2.6
   - HSlippyMap ==3.0.1
   - hslogger ==1.3.1.0
-  - hslua ==1.2.0
+  - hslua ==1.3.0.1
   - hslua-aeson ==1.0.3.1
   - hslua-module-doclayout ==0.2.0.1
+  - hslua-module-path ==0.1.0.1
   - hslua-module-system ==0.2.2.1
   - hslua-module-text ==0.3.0.1
-  - HsOpenSSL ==0.11.5.1
+  - HsOpenSSL ==0.11.6
   - HsOpenSSL-x509-system ==0.1.0.4
   - hsp ==0.10.0
   - hspec ==2.7.8
@@ -1155,55 +1195,58 @@ default-package-overrides:
   - hspec-core ==2.7.8
   - hspec-discover ==2.7.8
   - hspec-expectations ==0.8.2
+  - hspec-expectations-json ==1.0.0.2
   - hspec-expectations-lifted ==0.10.0
   - hspec-expectations-pretty-diff ==0.7.2.5
   - hspec-golden ==0.1.0.3
   - hspec-golden-aeson ==0.7.0.0
   - hspec-hedgehog ==0.0.1.2
+  - hspec-junit-formatter ==1.0.0.0
   - hspec-leancheck ==0.0.4
   - hspec-megaparsec ==2.2.0
   - hspec-meta ==2.7.8
-  - hspec-need-env ==0.1.0.5
+  - hspec-need-env ==0.1.0.6
   - hspec-parsec ==0
   - hspec-smallcheck ==0.5.2
   - hspec-tables ==0.0.1
-  - hspec-wai ==0.10.1
-  - hspec-wai-json ==0.10.1
+  - hspec-wai ==0.11.0
+  - hspec-wai-json ==0.11.0
   - hs-php-session ==0.0.9.3
-  - hsshellscript ==3.4.5
+  - hsshellscript ==3.5.0
+  - hs-tags ==0.1.5
   - HStringTemplate ==0.8.7
   - HSvm ==0.1.1.3.22
   - HsYAML ==0.2.1.0
   - HsYAML-aeson ==0.2.0.0
   - hsyslog ==5.0.2
   - htaglib ==1.2.0
-  - HTF ==0.14.0.5
+  - HTF ==0.14.0.6
   - html ==1.0.1.2
   - html-conduit ==1.3.2.1
   - html-entities ==1.1.4.3
   - html-entity-map ==0.1.0.0
   - htoml ==1.0.0.3
-  - http2 ==2.0.5
-  - HTTP ==4000.3.15
-  - http-api-data ==0.4.1.1
+  - http2 ==2.0.6
+  - HTTP ==4000.3.16
+  - http-api-data ==0.4.2
   - http-client ==0.6.4.1
   - http-client-openssl ==0.3.2.0
   - http-client-overrides ==0.1.1.0
   - http-client-tls ==0.3.5.3
   - http-common ==0.8.2.1
-  - http-conduit ==2.3.7.4
-  - http-date ==0.0.10
+  - http-conduit ==2.3.8
+  - http-date ==0.0.11
   - http-directory ==0.1.8
   - http-download ==0.2.0.0
   - httpd-shed ==0.4.1.1
-  - http-link-header ==1.0.3.1
+  - http-link-header ==1.2.0
   - http-media ==0.8.0.0
-  - http-query ==0.1.0
+  - http-query ==0.1.0.1
   - http-reverse-proxy ==0.6.0
   - http-streams ==0.8.7.2
   - http-types ==0.12.3
   - human-readable-duration ==0.2.1.4
-  - HUnit ==1.6.1.0
+  - HUnit ==1.6.2.0
   - HUnit-approx ==1.1.1.1
   - hunit-dejafu ==2.0.0.4
   - hvect ==0.4.0.0
@@ -1250,8 +1293,8 @@ default-package-overrides:
   - hxt-unicode ==9.0.2.4
   - hybrid-vectors ==0.2.2
   - hyper ==0.2.1.0
-  - hyperloglog ==0.4.3
-  - hyphenation ==0.8
+  - hyperloglog ==0.4.4
+  - hyphenation ==0.8.1
   - iconv ==0.4.1.3
   - identicon ==0.2.2
   - ieee754 ==0.8.0
@@ -1266,36 +1309,37 @@ default-package-overrides:
   - immortal-queue ==0.1.0.1
   - inbox ==0.1.0
   - include-file ==0.1.0.4
-  - incremental-parser ==0.5.0.1
+  - incremental-parser ==0.5.0.2
   - indents ==0.5.0.1
   - indexed ==0.1.3
   - indexed-containers ==0.1.0.2
   - indexed-list-literals ==0.2.1.3
   - indexed-profunctors ==0.1
   - indexed-traversable ==0.1.1
+  - indexed-traversable-instances ==0.1
   - infer-license ==0.2.0
   - inflections ==0.4.0.6
-  - influxdb ==1.9.0
+  - influxdb ==1.9.1.1
   - ini ==0.4.1
   - inj ==1.0
   - inline-c ==0.9.1.4
   - inline-c-cpp ==0.4.0.3
   - inline-r ==0.10.4
   - inliterate ==0.1.0
-  - input-parsers ==0.1.0.1
-  - insert-ordered-containers ==0.2.3.1
-  - inspection-testing ==0.4.2.4
+  - input-parsers ==0.2.1
+  - insert-ordered-containers ==0.2.4
+  - inspection-testing ==0.4.3.0
   - instance-control ==0.1.2.0
   - integer-logarithms ==1.0.3.1
   - integer-roots ==1.0
   - integration ==0.2.1
-  - intern ==0.9.3
+  - intern ==0.9.4
   - interpolate ==0.2.1
   - interpolatedstring-perl6 ==1.0.2
   - interpolation ==0.1.1.1
   - interpolator ==1.1.0.2
   - IntervalMap ==0.6.1.2
-  - intervals ==0.9.1
+  - intervals ==0.9.2
   - intro ==0.9.0.0
   - intset-imperative ==0.1.0.0
   - invariant ==0.5.4
@@ -1309,7 +1353,7 @@ default-package-overrides:
   - io-streams ==1.5.2.0
   - io-streams-haproxy ==1.0.1.0
   - ip6addr ==1.0.1
-  - iproute ==1.7.10
+  - iproute ==1.7.11
   - IPv6Addr ==1.1.5
   - ipynb ==0.1.0.1
   - ipython-kernel ==0.10.2.1
@@ -1331,9 +1375,9 @@ default-package-overrides:
   - ix-shapable ==0.1.0
   - jack ==0.7.1.4
   - jalaali ==1.0.0.0
-  - jira-wiki-markup ==1.3.2
+  - jira-wiki-markup ==1.3.4
   - jose ==0.8.4
-  - jose-jwt ==0.9.0
+  - jose-jwt ==0.9.1
   - js-chart ==2.9.4.1
   - js-dgtable ==0.5.2
   - js-flot ==0.8.3
@@ -1349,32 +1393,34 @@ default-package-overrides:
   - junit-xml ==0.1.0.2
   - justified-containers ==0.3.0.0
   - jwt ==0.10.0
-  - kan-extensions ==5.2.1
+  - kan-extensions ==5.2.2
   - kanji ==3.4.1
   - katip ==0.8.5.0
   - katip-logstash ==0.1.0.0
   - kawhi ==0.3.0
   - kazura-queue ==0.1.0.4
   - kdt ==0.2.4
+  - keep-alive ==0.2.0.0
   - keycode ==0.2.2
   - keys ==3.12.3
   - ki ==0.2.0.1
   - kind-apply ==0.3.2.0
   - kind-generics ==0.4.1.0
-  - kind-generics-th ==0.2.2.1
+  - kind-generics-th ==0.2.2.2
   - kmeans ==0.1.3
   - koofr-client ==1.0.0.3
   - krank ==0.2.2
   - kubernetes-webhook-haskell ==0.2.0.3
   - l10n ==0.1.0.1
   - labels ==0.3.3
+  - lackey ==1.0.14
   - LambdaHack ==0.9.5.0
   - lame ==0.2.0
   - language-avro ==0.1.3.1
   - language-bash ==0.9.2
   - language-c ==0.8.3
   - language-c-quote ==0.12.2.1
-  - language-docker ==9.1.2
+  - language-docker ==9.1.3
   - language-java ==0.2.9
   - language-javascript ==0.7.1.0
   - language-protobuf ==1.0.1
@@ -1383,7 +1429,7 @@ default-package-overrides:
   - lapack ==0.3.2
   - lapack-carray ==0.0.3
   - lapack-comfort-array ==0.0.0.1
-  - lapack-ffi ==0.0.2
+  - lapack-ffi ==0.0.3
   - lapack-ffi-tools ==0.1.2.1
   - largeword ==1.2.5
   - latex ==0.1.0.4
@@ -1391,23 +1437,23 @@ default-package-overrides:
   - lawful ==0.1.0.0
   - lazy-csv ==0.5.1
   - lazyio ==0.1.0.4
-  - lca ==0.3.1
+  - lca ==0.4
   - leancheck ==0.9.3
   - leancheck-instances ==0.0.4
   - leapseconds-announced ==2017.1.0.1
   - learn-physics ==0.6.5
   - lens ==4.19.2
-  - lens-action ==0.2.4
-  - lens-aeson ==1.1
+  - lens-action ==0.2.5
+  - lens-aeson ==1.1.1
   - lens-csv ==0.1.1.0
   - lens-datetime ==0.3
   - lens-family ==2.0.0
   - lens-family-core ==2.0.0
-  - lens-family-th ==0.5.1.0
+  - lens-family-th ==0.5.2.0
   - lens-misc ==0.0.2.0
   - lens-process ==0.4.0.0
   - lens-properties ==4.11.1
-  - lens-regex ==0.1.1
+  - lens-regex ==0.1.3
   - lens-regex-pcre ==1.1.0.0
   - lenz ==0.4.2.0
   - leveldb-haskell ==0.6.5
@@ -1419,12 +1465,11 @@ default-package-overrides:
   - liboath-hs ==0.0.1.2
   - libyaml ==0.1.2
   - LibZip ==1.0.1
-  - life-sync ==1.1.1.0
-  - lifted-async ==0.10.1.2
+  - lifted-async ==0.10.1.3
   - lifted-base ==0.2.3.12
   - lift-generics ==0.2
   - line ==4.0.1
-  - linear ==1.21.4
+  - linear ==1.21.5
   - linear-circuit ==0.1.0.2
   - linenoise ==0.3.2
   - linux-file-extents ==0.2.0.0
@@ -1437,7 +1482,6 @@ default-package-overrides:
   - list-singleton ==1.0.0.5
   - list-t ==1.0.4
   - ListTree ==0.2.3
-  - little-logger ==0.3.1
   - little-rio ==0.2.2
   - llvm-hs ==9.0.1
   - llvm-hs-pure ==9.0.0
@@ -1447,7 +1491,7 @@ default-package-overrides:
   - locators ==0.3.0.3
   - loch-th ==0.2.2
   - lockfree-queue ==0.2.3.1
-  - log-domain ==0.13
+  - log-domain ==0.13.1
   - logfloat ==0.13.3.3
   - logging ==3.0.5
   - logging-facade ==0.3.0
@@ -1458,14 +1502,14 @@ default-package-overrides:
   - lrucache ==1.2.0.1
   - lrucaching ==0.3.3
   - lsp-test ==0.11.0.5
-  - lucid ==2.9.12
+  - lucid ==2.9.12.1
   - lucid-cdn ==0.2.2.0
   - lucid-extras ==0.2.2
   - lukko ==0.1.1.3
   - lz4-frame-conduit ==0.1.0.1
   - lzma ==0.0.0.3
   - lzma-conduit ==1.2.1
-  - machines ==0.7.1
+  - machines ==0.7.2
   - magic ==1.1
   - magico ==0.0.2.1
   - mainland-pretty ==0.7.0.1
@@ -1510,12 +1554,12 @@ default-package-overrides:
   - messagepack ==0.5.4
   - metrics ==0.4.1.1
   - mfsolve ==0.3.2.0
-  - microlens ==0.4.11.2
+  - microlens ==0.4.12.0
   - microlens-aeson ==2.3.1
   - microlens-contra ==0.1.0.2
-  - microlens-ghc ==0.4.12
+  - microlens-ghc ==0.4.13
   - microlens-mtl ==0.2.0.1
-  - microlens-platform ==0.4.1
+  - microlens-platform ==0.4.2
   - microlens-process ==0.2.0.2
   - microlens-th ==0.4.3.9
   - microspec ==0.2.1.3
@@ -1523,7 +1567,7 @@ default-package-overrides:
   - midair ==0.2.0.1
   - midi ==0.2.2.2
   - mighty-metropolis ==2.0.0
-  - mime-mail ==0.5.0
+  - mime-mail ==0.5.1
   - mime-mail-ses ==0.4.3
   - mime-types ==0.1.0.9
   - mini-egison ==1.0.0
@@ -1540,19 +1584,19 @@ default-package-overrides:
   - mmap ==0.5.9
   - mmark ==0.0.7.2
   - mmark-cli ==0.0.5.0
-  - mmark-ext ==0.2.1.2
-  - mmorph ==1.1.4
+  - mmark-ext ==0.2.1.3
+  - mmorph ==1.1.5
   - mnist-idx ==0.1.2.8
   - mockery ==0.3.5
   - mock-time ==0.1.0
   - mod ==0.1.2.1
   - model ==0.5
-  - modern-uri ==0.3.3.1
+  - modern-uri ==0.3.4.1
   - modular ==0.1.0.8
   - monad-chronicle ==1.0.0.1
   - monad-control ==1.0.2.3
   - monad-control-aligned ==0.0.1.1
-  - monad-coroutine ==0.9.0.4
+  - monad-coroutine ==0.9.1
   - monad-extras ==0.6.0
   - monadic-arrays ==0.2.2
   - monad-journal ==0.8.1
@@ -1565,7 +1609,7 @@ default-package-overrides:
   - monad-memo ==0.5.3
   - monad-metrics ==0.2.2.0
   - monad-par ==0.3.5
-  - monad-parallel ==0.7.2.3
+  - monad-parallel ==0.7.2.4
   - monad-par-extras ==0.3.3
   - monad-peel ==0.2.1.2
   - monad-primitive ==0.1
@@ -1612,7 +1656,7 @@ default-package-overrides:
   - mwc-random ==0.14.0.0
   - mwc-random-monad ==0.7.3.1
   - mx-state-codes ==1.0.0.0
-  - mysql ==0.1.7.3
+  - mysql ==0.2
   - mysql-simple ==0.4.5
   - n2o ==0.11.1
   - nagios-check ==0.3.2
@@ -1629,7 +1673,7 @@ default-package-overrides:
   - netlib-carray ==0.1
   - netlib-comfort-array ==0.0.0.1
   - netlib-ffi ==0.1.1
-  - netpbm ==1.0.3
+  - netpbm ==1.0.4
   - nettle ==0.3.0
   - netwire ==5.0.3
   - netwire-input ==0.0.7
@@ -1651,25 +1695,28 @@ default-package-overrides:
   - newtype-generics ==0.6
   - nicify-lib ==1.0.1
   - NineP ==0.0.2.1
+  - nix-derivation ==1.1.1
   - nix-paths ==1.0.1
   - nonce ==1.0.7
   - nondeterminism ==1.4
-  - non-empty ==0.3.2
+  - non-empty ==0.3.3
   - nonempty-containers ==0.3.4.1
   - nonemptymap ==0.0.6.0
   - non-empty-sequence ==0.2.0.4
   - nonempty-vector ==0.2.1.0
+  - nonempty-zipper ==1.0.0.1
   - non-negative ==0.1.2
   - not-gloss ==0.7.7.0
   - no-value ==1.0.0.0
   - nowdoc ==0.1.1.0
   - nqe ==0.6.3
-  - nri-env-parser ==0.1.0.3
-  - nri-prelude ==0.3.0.0
+  - nri-env-parser ==0.1.0.5
+  - nri-observability ==0.1.0.0
+  - nri-prelude ==0.5.0.0
   - nsis ==0.3.3
   - numbers ==3000.2.0.2
   - numeric-extras ==0.1
-  - numeric-prelude ==0.4.3.2
+  - numeric-prelude ==0.4.3.3
   - numhask ==0.6.0.2
   - NumInstances ==1.4
   - numtype-dk ==0.5.0.2
@@ -1681,7 +1728,7 @@ default-package-overrides:
   - ObjectName ==1.1.0.1
   - o-clock ==1.2.0.1
   - odbc ==0.2.2
-  - oeis2 ==1.0.4
+  - oeis2 ==1.0.5
   - ofx ==0.4.4.0
   - old-locale ==1.0.0.7
   - old-time ==1.1.0.3
@@ -1693,7 +1740,7 @@ default-package-overrides:
   - oo-prototypes ==0.1.0.0
   - opaleye ==0.7.1.0
   - OpenAL ==1.7.0.5
-  - openapi3 ==3.0.1.0
+  - openapi3 ==3.0.2.0
   - open-browser ==0.2.1.0
   - openexr-write ==0.1.0.2
   - OpenGL ==3.0.3.0
@@ -1714,8 +1761,8 @@ default-package-overrides:
   - optics-vl ==0.2.1
   - optional-args ==1.0.2
   - options ==1.2.1.1
-  - optparse-applicative ==0.15.1.0
-  - optparse-generic ==1.3.1
+  - optparse-applicative ==0.16.1.0
+  - optparse-generic ==1.4.4
   - optparse-simple ==0.1.1.3
   - optparse-text ==0.1.1.0
   - ordered-containers ==0.2.2
@@ -1724,8 +1771,10 @@ default-package-overrides:
   - packcheck ==0.5.1
   - packdeps ==0.6.0.0
   - pager ==0.1.1.0
-  - pagination ==0.2.1
+  - pagination ==0.2.2
   - pagure-cli ==0.2
+  - pandoc ==2.12
+  - pandoc-plot ==1.1.1
   - pandoc-types ==1.22
   - pantry ==0.5.1.4
   - parallel ==3.2.2.0
@@ -1743,8 +1792,9 @@ default-package-overrides:
   - partial-handler ==1.0.3
   - partial-isomorphisms ==0.2.2.1
   - partial-semigroup ==0.5.1.8
-  - password ==2.1.1.0
-  - password-instances ==2.0.0.2
+  - password ==3.0.0.0
+  - password-instances ==3.0.0.0
+  - password-types ==1.0.0.0
   - path ==0.7.0
   - path-binary-instance ==0.1.0.1
   - path-extensions ==0.1.1.0
@@ -1772,9 +1822,9 @@ default-package-overrides:
   - persist ==0.1.1.5
   - persistable-record ==0.6.0.5
   - persistable-types-HDBC-pg ==0.0.3.5
-  - persistent ==2.11.0.2
+  - persistent ==2.11.0.4
   - persistent-documentation ==0.1.0.2
-  - persistent-mtl ==0.2.0.0
+  - persistent-mtl ==0.2.1.0
   - persistent-mysql ==2.10.3.1
   - persistent-pagination ==0.1.1.2
   - persistent-postgresql ==2.11.0.1
@@ -1789,11 +1839,11 @@ default-package-overrides:
   - phantom-state ==0.2.1.2
   - pid1 ==0.1.2.0
   - pinboard ==0.10.2.0
-  - pipes ==4.3.14
+  - pipes ==4.3.15
   - pipes-aeson ==0.4.1.8
   - pipes-attoparsec ==0.5.1.5
   - pipes-binary ==0.4.2
-  - pipes-bytestring ==2.1.6
+  - pipes-bytestring ==2.1.7
   - pipes-concurrency ==2.0.12
   - pipes-csv ==1.4.3
   - pipes-extras ==1.0.15
@@ -1802,13 +1852,14 @@ default-package-overrides:
   - pipes-http ==1.0.6
   - pipes-network ==0.6.5
   - pipes-network-tls ==0.4
-  - pipes-ordered-zip ==1.1.0
-  - pipes-parse ==3.0.8
+  - pipes-ordered-zip ==1.2.1
+  - pipes-parse ==3.0.9
   - pipes-random ==1.0.0.5
-  - pipes-safe ==2.3.2
+  - pipes-safe ==2.3.3
   - pipes-wai ==3.2.0
   - pkcs10 ==0.2.0.0
   - pkgtreediff ==0.4
+  - place-cursor-at ==1.0.1
   - placeholders ==0.1
   - plaid ==0.1.0.4
   - plotlyhs ==0.2.1
@@ -1841,7 +1892,7 @@ default-package-overrides:
   - prelude-safeenum ==0.1.1.2
   - prettyclass ==1.0.0.0
   - pretty-class ==1.0.1.1
-  - pretty-diff ==0.2.0.3
+  - pretty-diff ==0.4.0.3
   - pretty-hex ==1.1
   - prettyprinter ==1.7.0
   - prettyprinter-ansi-terminal ==1.1.2
@@ -1857,7 +1908,7 @@ default-package-overrides:
   - primes ==0.2.1.0
   - primitive ==0.7.1.0
   - primitive-addr ==0.1.0.2
-  - primitive-extras ==0.8
+  - primitive-extras ==0.10.1
   - primitive-unaligned ==0.1.1.1
   - primitive-unlifted ==0.1.3.0
   - print-console-colors ==0.1.0.0
@@ -1875,7 +1926,7 @@ default-package-overrides:
   - promises ==0.3
   - prompt ==0.1.1.2
   - prospect ==0.1.0.0
-  - proto3-wire ==1.1.0
+  - proto3-wire ==1.2.0
   - protobuf ==0.2.1.3
   - protobuf-simple ==0.1.1.0
   - protocol-buffers ==2.4.17
@@ -1883,7 +1934,6 @@ default-package-overrides:
   - protocol-radius ==0.0.1.1
   - protocol-radius-test ==0.1.0.1
   - proto-lens ==0.7.0.0
-  - proto-lens-optparse ==0.1.1.7
   - proto-lens-protobuf-types ==0.7.0.0
   - proto-lens-protoc ==0.7.0.0
   - proto-lens-runtime ==0.7.0.0
@@ -1896,7 +1946,7 @@ default-package-overrides:
   - pureMD5 ==2.1.3
   - purescript-bridge ==0.14.0.0
   - pushbullet-types ==0.4.1.0
-  - pusher-http-haskell ==2.0.0.3
+  - pusher-http-haskell ==2.1.0.0
   - pvar ==1.0.0.0
   - PyF ==0.9.0.3
   - qchas ==1.1.0.1
@@ -1923,45 +1973,46 @@ default-package-overrides:
   - radius ==0.7.1.0
   - rainbow ==0.34.2.2
   - rainbox ==0.26.0.0
-  - ral ==0.1
+  - ral ==0.2
   - rampart ==1.1.0.2
   - ramus ==0.1.2
   - rando ==0.0.0.4
   - random ==1.1
-  - random-bytestring ==0.1.3.2
+  - random-bytestring ==0.1.4
   - random-fu ==0.2.7.4
   - random-shuffle ==0.0.4
   - random-source ==0.3.0.8
   - random-tree ==0.6.0.5
   - range ==0.3.0.2
+  - ranged-list ==0.1.0.0
   - Ranged-sets ==0.4.0
   - range-set-list ==0.1.3.1
   - rank1dynamic ==0.4.1
   - rank2classes ==1.4.1
   - Rasterific ==0.7.5.3
   - rasterific-svg ==0.3.3.2
-  - ratel ==1.0.13
+  - ratel ==1.0.14
   - rate-limit ==1.4.2
-  - ratel-wai ==1.1.4
+  - ratel-wai ==1.1.5
   - rattle ==0.2
+  - rattletrap ==11.0.1
+  - Rattus ==0.5
   - rawfilepath ==0.2.4
   - rawstring-qm ==0.2.3.0
   - raw-strings-qq ==1.1
-  - rcu ==0.2.4
+  - rcu ==0.2.5
   - rdf ==0.1.0.4
   - rdtsc ==1.3.0.1
   - re2 ==0.3
   - readable ==0.3.1
   - read-editor ==0.1.0.2
   - read-env-var ==1.0.0.0
-  - reanimate ==1.1.3.2
-  - reanimate-svg ==0.13.0.0
   - rebase ==1.6.1
-  - record-dot-preprocessor ==0.2.7
+  - record-dot-preprocessor ==0.2.10
   - record-hasfield ==1.0
   - records-sop ==0.1.0.3
   - record-wrangler ==0.1.1.0
-  - recursion-schemes ==5.2.1
+  - recursion-schemes ==5.2.2.1
   - reducers ==3.12.3
   - refact ==0.3.0.2
   - ref-fd ==0.4.0.2
@@ -1976,11 +2027,11 @@ default-package-overrides:
   - regex ==1.1.0.0
   - regex-applicative ==0.3.4
   - regex-applicative-text ==0.1.0.1
-  - regex-base ==0.94.0.0
-  - regex-compat ==0.95.2.0
+  - regex-base ==0.94.0.1
+  - regex-compat ==0.95.2.1
   - regex-compat-tdfa ==0.95.1.4
   - regex-pcre ==0.95.0.0
-  - regex-pcre-builtin ==0.95.1.3.8.43
+  - regex-pcre-builtin ==0.95.2.3.8.43
   - regex-posix ==0.96.0.0
   - regex-tdfa ==1.3.1.0
   - regex-with-pcre ==1.1.0.0
@@ -2000,6 +2051,7 @@ default-package-overrides:
   - req ==3.9.0
   - req-conduit ==1.0.0
   - rerebase ==1.6.1
+  - rescue ==0.4.2.1
   - resistor-cube ==0.0.1.2
   - resolv ==0.1.2.0
   - resource-pool ==0.2.3.2
@@ -2011,6 +2063,7 @@ default-package-overrides:
   - rev-state ==0.1.2
   - rfc1751 ==0.1.3
   - rfc5051 ==0.2
+  - rhbzquery ==0.4.3
   - rhine ==0.7.0
   - rhine-gloss ==0.7.0
   - rigel-viz ==0.2.0.0
@@ -2030,7 +2083,8 @@ default-package-overrides:
   - runmemo ==1.0.0.1
   - rvar ==0.2.0.6
   - safe ==0.3.19
-  - safecopy ==0.10.3.1
+  - safe-coloured-text ==0.0.0.0
+  - safecopy ==0.10.4.1
   - safe-decimal ==0.2.0.0
   - safe-exceptions ==0.1.7.1
   - safe-foldable ==0.1.0.0
@@ -2038,7 +2092,7 @@ default-package-overrides:
   - safe-json ==1.1.1.1
   - safe-money ==0.9
   - SafeSemaphore ==0.10.1
-  - safe-tensor ==0.2.1.0
+  - safe-tensor ==0.2.1.1
   - salak ==0.3.6
   - salak-yaml ==0.3.5.3
   - saltine ==0.1.1.1
@@ -2060,7 +2114,7 @@ default-package-overrides:
   - sdl2-gfx ==0.2
   - sdl2-image ==2.0.0
   - sdl2-mixer ==1.1.0
-  - sdl2-ttf ==2.1.1
+  - sdl2-ttf ==2.1.2
   - search-algorithms ==0.3.1
   - secp256k1-haskell ==0.5.0
   - securemem ==0.1.10
@@ -2069,7 +2123,7 @@ default-package-overrides:
   - selda-postgresql ==0.1.8.1
   - selda-sqlite ==0.1.7.1
   - selections ==0.3.0.0
-  - selective ==0.4.1.1
+  - selective ==0.4.2
   - semialign ==1.1.0.1
   - semialign-indexed ==1.1
   - semialign-optics ==1.1
@@ -2080,10 +2134,11 @@ default-package-overrides:
   - semiring-simple ==1.0.0.1
   - semver ==0.4.0.1
   - sendfile ==0.7.11.1
+  - sendgrid-v3 ==0.3.0.0
   - seqalign ==0.2.0.4
   - seqid ==0.6.2
   - seqid-streams ==0.7.2
-  - sequence-formats ==1.5.2
+  - sequence-formats ==1.6.1
   - sequenceTools ==1.4.0.5
   - serf ==0.1.1.0
   - serialise ==0.2.3.0
@@ -2097,7 +2152,6 @@ default-package-overrides:
   - servant-exceptions ==0.2.1
   - servant-exceptions-server ==0.2.1
   - servant-foreign ==0.15.3
-  - servant-github-webhook ==0.4.2.0
   - servant-http-streams ==0.18.2
   - servant-machines ==0.15.1
   - servant-multipart ==0.12
@@ -2109,7 +2163,7 @@ default-package-overrides:
   - servant-swagger-ui ==0.3.4.3.37.2
   - servant-swagger-ui-core ==0.3.4
   - serverless-haskell ==0.12.5
-  - serversession ==1.0.1
+  - serversession ==1.0.2
   - serversession-frontend-wai ==1.0
   - ses-html ==0.4.0.0
   - set-cover ==0.1.1
@@ -2117,6 +2171,7 @@ default-package-overrides:
   - setlocale ==1.0.0.9
   - sexp-grammar ==2.3.0
   - SHA ==1.6.4.4
+  - shake-language-c ==0.12.0
   - shake-plus ==0.3.3.1
   - shake-plus-extended ==0.4.1.0
   - shakespeare ==2.0.25
@@ -2148,19 +2203,19 @@ default-package-overrides:
   - singleton-bool ==0.1.5
   - singleton-nats ==0.4.5
   - singletons ==2.7
-  - singletons-presburger ==0.5.0.0
+  - singletons-presburger ==0.6.0.0
   - siphash ==1.0.3
   - sitemap-gen ==0.1.0.0
   - sized ==1.0.0.0
   - skein ==1.0.9.4
   - skews ==0.1.0.3
   - skip-var ==0.1.1.0
-  - skylighting ==0.10.2
-  - skylighting-core ==0.10.2
+  - skylighting ==0.10.5
+  - skylighting-core ==0.10.5
   - slack-api ==0.12
   - slack-progressbar ==0.1.0.1
-  - slist ==0.1.1.0
-  - slynx ==0.5.0.1
+  - slist ==0.2.0.0
+  - slynx ==0.5.0.2
   - smallcheck ==1.2.1
   - smash ==0.1.1.0
   - smash-aeson ==0.1.0.0
@@ -2175,6 +2230,7 @@ default-package-overrides:
   - soap ==0.2.3.6
   - soap-openssl ==0.1.0.2
   - soap-tls ==0.1.1.4
+  - socket ==0.8.3.0
   - socks ==0.6.1
   - some ==1.0.2
   - sop-core ==0.5.0.1
@@ -2183,12 +2239,13 @@ default-package-overrides:
   - sourcemap ==0.1.6
   - sox ==0.2.3.1
   - soxlib ==0.0.3.1
+  - spacecookie ==1.0.0.0
   - sparse-linear-algebra ==0.3.1
-  - sparse-tensor ==0.2.1.4
+  - sparse-tensor ==0.2.1.5
   - spatial-math ==0.5.0.1
   - special-values ==0.1.0.0
   - speculate ==0.4.2
-  - speedy-slice ==0.3.1
+  - speedy-slice ==0.3.2
   - Spintax ==0.3.5
   - splice ==0.6.1.1
   - splint ==1.0.1.3
@@ -2203,7 +2260,7 @@ default-package-overrides:
   - squeal-postgresql ==0.7.0.1
   - squeather ==0.6.0.0
   - srcloc ==0.5.1.2
-  - stache ==2.2.0
+  - stache ==2.2.1
   - stackcollapse-ghc ==0.0.1.3
   - stack-templatizer ==0.1.0.2
   - stateref ==0.3
@@ -2218,7 +2275,7 @@ default-package-overrides:
   - stm-containers ==1.2
   - stm-delay ==0.1.1.1
   - stm-extras ==0.1.0.3
-  - stm-hamt ==1.2.0.4
+  - stm-hamt ==1.2.0.6
   - stm-lifted ==2.5.0.0
   - STMonadTrans ==0.4.5
   - stm-split ==0.0.2.1
@@ -2228,7 +2285,7 @@ default-package-overrides:
   - storable-record ==0.0.5
   - storable-tuple ==0.0.3.3
   - storablevector ==0.2.13.1
-  - store ==0.7.9
+  - store ==0.7.10
   - store-core ==0.4.4.4
   - store-streaming ==0.2.0.3
   - stratosphere ==0.59.1
@@ -2236,6 +2293,7 @@ default-package-overrides:
   - streaming-attoparsec ==1.0.0.1
   - streaming-bytestring ==0.2.0
   - streaming-commons ==0.2.2.1
+  - streamly ==0.7.3
   - streams ==3.3
   - strict ==0.4.0.1
   - strict-concurrency ==0.2.4.3
@@ -2247,21 +2305,21 @@ default-package-overrides:
   - string-combinators ==0.6.0.5
   - string-conv ==0.1.2
   - string-conversions ==0.4.0.1
-  - string-interpolate ==0.3.0.2
+  - string-interpolate ==0.3.1.0
   - string-qq ==0.0.4
   - string-random ==0.1.4.0
   - stringsearch ==0.3.6.6
   - string-transform ==1.1.1
-  - stripe-concepts ==1.0.2.4
+  - stripe-concepts ==1.0.2.6
   - stripe-core ==2.6.2
   - stripe-haskell ==2.6.2
   - stripe-http-client ==2.6.2
   - stripe-tests ==2.6.2
-  - strive ==5.0.13
-  - structs ==0.1.4
-  - structured ==0.1
-  - structured-cli ==2.6.0.0
-  - subcategories ==0.1.0.0
+  - strive ==5.0.14
+  - structs ==0.1.5
+  - structured ==0.1.0.1
+  - structured-cli ==2.7.0.1
+  - subcategories ==0.1.1.0
   - sum-type-boilerplate ==0.1.1
   - sundown ==0.6
   - superbuffer ==0.3.1.1
@@ -2271,6 +2329,12 @@ default-package-overrides:
   - sweet-egison ==0.1.1.3
   - swish ==0.10.0.4
   - syb ==0.7.2.1
+  - sydtest ==0.1.0.0
+  - sydtest-discover ==0.0.0.0
+  - sydtest-persistent-sqlite ==0.0.0.0
+  - sydtest-servant ==0.0.0.0
+  - sydtest-wai ==0.0.0.0
+  - sydtest-yesod ==0.0.0.0
   - symbol ==0.2.4
   - symengine ==0.1.2.0
   - symmetry-operations-symbols ==0.0.2.1
@@ -2293,15 +2357,15 @@ default-package-overrides:
   - tao-example ==1.0.0
   - tar ==0.5.1.1
   - tar-conduit ==0.3.2
-  - tardis ==0.4.1.0
-  - tasty ==1.2.3
-  - tasty-ant-xml ==1.1.7
-  - tasty-bench ==0.2.1
+  - tardis ==0.4.3.0
+  - tasty ==1.4.1
+  - tasty-ant-xml ==1.1.8
+  - tasty-bench ==0.2.3
   - tasty-dejafu ==2.0.0.7
   - tasty-discover ==4.2.2
-  - tasty-expected-failure ==0.12.2
+  - tasty-expected-failure ==0.12.3
   - tasty-focus ==1.0.1
-  - tasty-golden ==2.3.3.2
+  - tasty-golden ==2.3.4
   - tasty-hedgehog ==1.0.1.0
   - tasty-hspec ==1.1.6
   - tasty-hunit ==0.10.0.3
@@ -2312,7 +2376,7 @@ default-package-overrides:
   - tasty-program ==1.0.5
   - tasty-quickcheck ==0.10.1.2
   - tasty-rerun ==1.1.18
-  - tasty-silver ==3.1.15
+  - tasty-silver ==3.2.1
   - tasty-smallcheck ==0.8.2
   - tasty-test-reporter ==0.1.1.4
   - tasty-th ==0.1.7
@@ -2337,7 +2401,7 @@ default-package-overrides:
   - test-framework-smallcheck ==0.2
   - test-fun ==0.1.0.0
   - testing-type-modifiers ==0.1.0.1
-  - texmath ==0.12.1.1
+  - texmath ==0.12.2
   - text-ansi ==0.1.1
   - text-binary ==0.2.1.1
   - text-builder ==0.6.6.1
@@ -2347,7 +2411,7 @@ default-package-overrides:
   - text-latin1 ==0.3.1
   - text-ldap ==0.1.1.13
   - textlocal ==0.1.0.5
-  - text-manipulate ==0.2.0.1
+  - text-manipulate ==0.3.0.0
   - text-metrics ==0.3.0
   - text-postgresql ==0.0.3.1
   - text-printer ==0.5.0.1
@@ -2357,20 +2421,20 @@ default-package-overrides:
   - text-show ==3.9
   - text-show-instances ==3.8.4
   - text-zipper ==0.11
-  - tfp ==1.0.1.1
+  - tfp ==1.0.2
   - tf-random ==0.5
   - th-abstraction ==0.4.2.0
   - th-bang-compat ==0.0.1.0
-  - th-compat ==0.1.1
+  - th-compat ==0.1.2
   - th-constraint-compat ==0.0.1.0
   - th-data-compat ==0.1.0.0
   - th-desugar ==1.11
   - th-env ==0.1.0.2
   - these ==1.1.1.1
-  - these-lens ==1.0.1.1
-  - these-optics ==1.0.1.1
+  - these-lens ==1.0.1.2
+  - these-optics ==1.0.1.2
   - these-skinny ==0.7.4
-  - th-expand-syns ==0.4.6.0
+  - th-expand-syns ==0.4.8.0
   - th-extras ==0.0.0.4
   - th-lift ==0.8.2
   - th-lift-instances ==0.1.18
@@ -2391,7 +2455,7 @@ default-package-overrides:
   - th-test-utils ==1.1.0
   - th-utilities ==0.2.4.1
   - thyme ==0.3.5.5
-  - tidal ==1.6.1
+  - tidal ==1.7.2
   - tile ==0.3.0.0
   - time-compat ==1.9.5
   - timeit ==2.0
@@ -2412,27 +2476,25 @@ default-package-overrides:
   - tls ==1.5.5
   - tls-debug ==0.4.8
   - tls-session-manager ==0.0.4
-  - tlynx ==0.5.0.1
+  - tlynx ==0.5.0.2
   - tmapchan ==0.0.3
   - tmapmvar ==0.0.4
   - tmp-postgres ==1.34.1.0
-  - tomland ==1.3.1.0
+  - tomland ==1.3.2.0
   - tonalude ==0.1.1.1
   - topograph ==1.0.0.1
   - torsor ==0.1
   - tostring ==0.2.1.1
-  - tracing ==0.0.5.2
-  - tracing-control ==0.0.6
   - transaction ==0.1.1.3
   - transformers-base ==0.4.5.2
   - transformers-bifunctors ==0.1
   - transformers-compat ==0.6.6
   - transformers-fix ==1.0
   - traverse-with-class ==1.0.1.0
-  - tree-diff ==0.1
+  - tree-diff ==0.2
   - tree-fun ==0.8.1.0
-  - tree-view ==0.5
-  - trifecta ==2.1
+  - tree-view ==0.5.1
+  - trifecta ==2.1.1
   - triplesec ==0.2.2.1
   - tsv2csv ==0.1.0.2
   - ttc ==0.3.0.0
@@ -2442,7 +2504,7 @@ default-package-overrides:
   - tuples-homogenous-h98 ==0.1.1.0
   - tuple-sop ==0.3.1.0
   - tuple-th ==0.2.5
-  - turtle ==1.5.20
+  - turtle ==1.5.21
   - typecheck-plugin-nat-simple ==0.1.0.2
   - TypeCompose ==0.9.14
   - typed-process ==0.2.6.0
@@ -2456,14 +2518,15 @@ default-package-overrides:
   - type-level-natural-number ==2.0
   - type-level-numbers ==0.1.1.1
   - type-map ==0.1.6.0
-  - type-natural ==1.0.0.0
+  - type-natural ==1.1.0.0
+  - typenums ==0.1.3
   - type-of-html ==1.6.2.0
   - type-of-html-static ==0.1.0.2
   - type-operators ==0.2.0.0
   - typerep-map ==0.3.3.0
   - type-spec ==0.4.0.0
   - tzdata ==0.2.20201021.0
-  - ua-parser ==0.7.5.1
+  - ua-parser ==0.7.6.0
   - uglymemo ==0.1.0.1
   - ulid ==0.3.0.0
   - unagi-chan ==0.4.1.3
@@ -2478,6 +2541,7 @@ default-package-overrides:
   - unicode ==0.0.1.1
   - unicode-show ==0.1.0.4
   - unicode-transforms ==0.3.7.1
+  - unification-fd ==0.11.1
   - union-find ==0.2
   - unipatterns ==0.0.0.0
   - uniplate ==1.6.13
@@ -2515,16 +2579,17 @@ default-package-overrides:
   - utf8-light ==0.4.2
   - utf8-string ==1.0.2
   - util ==0.1.17.1
-  - utility-ht ==0.0.15
-  - uuid ==1.3.13
-  - uuid-types ==1.0.3
-  - validation ==1.1
-  - validation-selective ==0.1.0.0
+  - utility-ht ==0.0.16
+  - uuid ==1.3.14
+  - uuid-types ==1.0.4
+  - validation ==1.1.1
+  - validation-selective ==0.1.0.1
   - validity ==0.11.0.0
   - validity-aeson ==0.2.0.4
   - validity-bytestring ==0.4.1.1
   - validity-containers ==0.5.0.4
   - validity-path ==0.4.0.1
+  - validity-persistent ==0.0.0.0
   - validity-primitive ==0.0.0.1
   - validity-scientific ==0.2.0.3
   - validity-text ==0.3.1.1
@@ -2533,13 +2598,13 @@ default-package-overrides:
   - validity-uuid ==0.1.0.3
   - validity-vector ==0.2.0.3
   - valor ==0.1.0.0
-  - vault ==0.3.1.4
-  - vec ==0.3
+  - vault ==0.3.1.5
+  - vec ==0.4
   - vector ==0.12.2.0
   - vector-algorithms ==0.8.0.4
   - vector-binary-instances ==0.2.5.1
   - vector-buffer ==0.4.1
-  - vector-builder ==0.3.8
+  - vector-builder ==0.3.8.1
   - vector-bytes-instances ==0.1.1
   - vector-circular ==0.1.3
   - vector-instances ==3.4
@@ -2548,16 +2613,16 @@ default-package-overrides:
   - vector-sized ==1.4.3.1
   - vector-space ==0.16
   - vector-split ==1.0.0.2
-  - vector-th-unbox ==0.2.1.7
+  - vector-th-unbox ==0.2.1.9
   - verbosity ==0.4.0.0
-  - versions ==4.0.2
+  - versions ==4.0.3
   - vformat ==0.14.1.0
   - vformat-aeson ==0.1.0.1
   - vformat-time ==0.1.0.0
   - ViennaRNAParser ==1.3.3
   - vinyl ==0.13.0
   - void ==0.7.3
-  - vty ==5.32
+  - vty ==5.33
   - wai ==3.2.3
   - wai-app-static ==3.1.7.2
   - wai-conduit ==3.0.0.4
@@ -2568,7 +2633,7 @@ default-package-overrides:
   - wai-feature-flags ==0.1.0.1
   - wai-handler-launch ==3.0.3.1
   - wai-logger ==2.3.6
-  - wai-middleware-auth ==0.2.3.1
+  - wai-middleware-auth ==0.2.4.1
   - wai-middleware-caching ==0.1.0.2
   - wai-middleware-clacks ==0.1.0.1
   - wai-middleware-static ==0.9.0
@@ -2602,10 +2667,10 @@ default-package-overrides:
   - Win32-notify ==0.3.0.3
   - windns ==0.1.0.1
   - witch ==0.0.0.5
-  - witherable-class ==0
+  - witherable ==0.4.1
   - within ==0.2.0.1
   - with-location ==0.1.0
-  - with-utf8 ==1.0.2.1
+  - with-utf8 ==1.0.2.2
   - wizards ==1.0.3
   - wl-pprint-annotated ==0.1.0.1
   - wl-pprint-console ==0.1.0.2
@@ -2634,11 +2699,11 @@ default-package-overrides:
   - xdg-desktop-entry ==0.1.1.1
   - xdg-userdirs ==0.1.0.2
   - xeno ==0.4.2
-  - xlsx ==0.8.2
+  - xlsx ==0.8.3
   - xlsx-tabular ==0.2.2.1
   - xml ==1.3.14
   - xml-basic ==0.1.3.1
-  - xml-conduit ==1.9.0.0
+  - xml-conduit ==1.9.1.0
   - xml-conduit-writer ==0.1.1.2
   - xmlgen ==0.6.2.2
   - xml-hamlet ==0.5.0.1
@@ -2656,18 +2721,18 @@ default-package-overrides:
   - xss-sanitize ==0.3.6
   - xxhash-ffi ==0.2.0.0
   - yaml ==0.11.5.0
-  - yamlparse-applicative ==0.1.0.2
+  - yamlparse-applicative ==0.1.0.3
   - yesod ==1.6.1.0
   - yesod-auth ==1.6.10.1
   - yesod-auth-hashdb ==1.7.1.5
-  - yesod-auth-oauth2 ==0.6.1.7
-  - yesod-bin ==1.6.0.6
+  - yesod-auth-oauth2 ==0.6.2.3
+  - yesod-bin ==1.6.1
   - yesod-core ==1.6.18.8
   - yesod-fb ==0.6.1
   - yesod-form ==1.6.7
   - yesod-gitrev ==0.2.1
+  - yesod-markdown ==0.12.6.6
   - yesod-newsfeed ==1.7.0.0
-  - yesod-page-cursor ==2.0.0.3
   - yesod-paginator ==1.1.1.0
   - yesod-persistent ==1.6.0.5
   - yesod-sitemap ==1.6.0
@@ -2690,9 +2755,9 @@ default-package-overrides:
   - zip ==1.7.0
   - zip-archive ==0.4.1
   - zipper-extra ==0.1.3.2
-  - zippers ==0.3
-  - zip-stream ==0.2.0.1
-  - zlib ==0.6.2.2
+  - zippers ==0.3.1
+  - zip-stream ==0.2.1.0
+  - zlib ==0.6.2.3
   - zlib-bindings ==0.1.1.5
   - zlib-lens ==0.1.2.1
   - zot ==0.0.3
@@ -2704,6 +2769,7 @@ extra-packages:
   - Cabal == 2.2.*                      # required for jailbreak-cabal etc.
   - Cabal == 2.4.*                      # required for cabal-install etc.
   - Cabal == 3.2.*                      # required for cabal-install etc.
+  - base16-bytestring < 1               # required for cabal-install etc.
   - dhall == 1.29.0                     # required for ats-pkg
   - dhall == 1.37.1                     # required for spago 0.19.0.
   - Diff < 0.4                          # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
@@ -2719,9 +2785,9 @@ extra-packages:
   - dependent-sum == 0.4                # required by Hasura 1.3.1, 2020-08-20
   - network == 2.6.3.1                  # required by pkgs/games/hedgewars/default.nix, 2020-11-15
   - mmorph == 1.1.3                     # Newest working version of mmorph on ghc 8.6.5. needed for hls
-  - haskell-lsp == 0.23.0.0             # required by hls-plugin-api 0.7.0.0, 2021-02-08
-  - haskell-lsp-types == 0.23.0.0       # required by hls-plugin-api 0.7.0.0, 2021-02-08
-  - lsp-test == 0.11.0.7                # required by hls-plugin-api 0.7.0.0, 2021-02-08
+  - hlint < 3.3                         # We don‘t have ghc-lib-parser 9.0.X yet.
+  - optparse-applicative < 0.16         # needed for niv-0.2.19
+  - lsp-test < 0.14                     # needed for hls 1.0.0
 
 package-maintainers:
   peti:
@@ -2777,8 +2843,12 @@ package-maintainers:
   roberth:
     - arion-compose
     - hercules-ci-agent
+    - hercules-ci-api
     - hercules-ci-api-agent
     - hercules-ci-api-core
+    - hercules-ci-cli
+    - hercules-ci-cnix-expr
+    - hercules-ci-cnix-store
   cdepillabout:
     - pretty-simple
     - spago
@@ -2788,14 +2858,15 @@ package-maintainers:
     - nix-diff
   maralorn:
     - reflex-dom
-    - ghcide
     - cabal-fmt
     - shh
-    - brittany
-    - hlint
     - neuron
     - releaser
     - taskwarrior
+    - haskell-language-server
+    - shake-bench
+    - iCalendar
+    - stm-containers
   sorki:
     - cayene-lpp
     - data-stm32
@@ -2808,32 +2879,59 @@ package-maintainers:
     - zre
   utdemir:
     - nix-tree
+  turion:
+    - rhine
+    - rhine-gloss
+    - essence-of-live-coding
+    - essence-of-live-coding-gloss
+    - essence-of-live-coding-pulse
+    - essence-of-live-coding-quickcheck
+    - Agda
+    - dunai
+    - finite-typelits
+    - pulse-simple
+    - simple-affine-space
+  sternenseemann:
+    # also maintain upstream package
+    - spacecookie
+    - gopher-proxy
+    # other packages I can help out for
+    - systemd
+    - fast-logger
+    - Euterpea2
+    - utc
+    - socket
+    - gitit
+    - yarn-lock
+    - yarn2nix
+  poscat:
+    - hinit
 
 unsupported-platforms:
   alsa-mixer:                                   [ x86_64-darwin ]
   alsa-pcm:                                     [ x86_64-darwin ]
   alsa-seq:                                     [ x86_64-darwin ]
-  AWin32Console:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  barbly:                                       [ i686-linux, x86_64-linux ]
+  AWin32Console:                                [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  barbly:                                       [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
   bindings-directfb:                            [ x86_64-darwin ]
-  d3d11binding:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  DirectSound:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  dx9base:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  dx9d3d:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  dx9d3dx:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  d3d11binding:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  DirectSound:                                  [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  dx9base:                                      [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  dx9d3d:                                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  dx9d3dx:                                      [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
   freenect:                                     [ x86_64-darwin ]
   FTGL:                                         [ x86_64-darwin ]
   gi-ostree:                                    [ x86_64-darwin ]
-  gtk-mac-integration:                          [ i686-linux, x86_64-linux ]
+  gtk-mac-integration:                          [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
   hcwiid:                                       [ x86_64-darwin ]
   HFuse:                                        [ x86_64-darwin ]
-  hommage-ds:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hommage-ds:                                   [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
   lio-fs:                                       [ x86_64-darwin ]
   midi-alsa:                                    [ x86_64-darwin ]
   pam:                                          [ x86_64-darwin ]
   PortMidi:                                     [ x86_64-darwin ]
   Raincat:                                      [ x86_64-darwin ]
-  reactivity:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  reactivity:                                   [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
   rtlsdr:                                       [ x86_64-darwin ]
   rubberband:                                   [ x86_64-darwin ]
   sdl2-mixer:                                   [ x86_64-darwin ]
@@ -2841,18 +2939,18 @@ unsupported-platforms:
   tokyotyrant-haskell:                          [ x86_64-darwin ]
   vulkan:                                       [ i686-linux, armv7l-linux ]
   VulkanMemoryAllocator:                        [ i686-linux, armv7l-linux ]
-  Win32-console:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Win32-dhcp-server:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Win32-errors:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Win32-extras:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Win32-junction-point:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Win32-notify:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Win32-security:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Win32-services-wrapper:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Win32-services:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Win32:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Win32-console:                                [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-dhcp-server:                            [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-errors:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-extras:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-junction-point:                         [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-notify:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-security:                               [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-services-wrapper:                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-services:                               [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32:                                        [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
   xattr:                                        [ x86_64-darwin ]
-  XInput:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  XInput:                                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
   xmobar:                                       [ x86_64-darwin ]
 
 dont-distribute-packages:
@@ -3013,6 +3111,7 @@ broken-packages:
   - ACME
   - acme-all-monad
   - acme-comonad
+  - acme-dont
   - acme-flipping-tables
   - acme-hq9plus
   - acme-http
@@ -3032,7 +3131,6 @@ broken-packages:
   - acme-zero
   - acousticbrainz-client
   - ActionKid
-  - active
   - activehs
   - activehs-base
   - activitypub
@@ -3070,6 +3168,7 @@ broken-packages:
   - aeson-applicative
   - aeson-decode
   - aeson-diff-generic
+  - aeson-extra
   - aeson-filthy
   - aeson-flowtyped
   - aeson-injector
@@ -3085,6 +3184,7 @@ broken-packages:
   - aeson-tiled
   - aeson-typescript
   - aeson-utils
+  - aeson-via
   - affection
   - affine-invariant-ensemble-mcmc
   - afv
@@ -3114,6 +3214,7 @@ broken-packages:
   - alga
   - algebra-checkers
   - algebra-dag
+  - algebra-driven-design
   - algebra-sql
   - algebraic
   - algebraic-prelude
@@ -3141,7 +3242,7 @@ broken-packages:
   - amazon-emailer
   - amazon-emailer-client-snap
   - amazon-products
-  - amazonka
+  - amazonka-ec2
   - amazonka-s3-streaming
   - amby
   - AMI
@@ -3220,6 +3321,7 @@ broken-packages:
   - apiary-session
   - apiary-websockets
   - apis
+  - apns-http2
   - apotiki
   - app-lens
   - appc
@@ -3229,6 +3331,7 @@ broken-packages:
   - applicative-parsec
   - applicative-quoters
   - applicative-splice
+  - apply-unordered
   - approveapi
   - approx
   - ApproxFun-hs
@@ -3236,9 +3339,12 @@ broken-packages:
   - arbb-vm
   - arbor-datadog
   - arbor-monad-counter
+  - arbor-monad-logger
   - arbor-monad-metric
   - arbor-monad-metric-datadog
+  - arbor-postgres
   - arch-hs
+  - arch-web
   - archive-libarchive
   - archiver
   - archlinux
@@ -3284,9 +3390,12 @@ broken-packages:
   - asic
   - asil
   - asn
+  - ASN1
   - asn1-codec
   - asn1-data
   - assert
+  - assert4hs
+  - assert4hs-tasty
   - assertions
   - asset-map
   - assimp
@@ -3375,6 +3484,7 @@ broken-packages:
   - aws-lambda
   - aws-lambda-haskell-runtime-wai
   - aws-lambda-runtime
+  - aws-larpi
   - aws-mfa-credentials
   - aws-performance-tests
   - aws-route53
@@ -3395,6 +3505,7 @@ broken-packages:
   - azure-service-api
   - azure-servicebus
   - azurify
+  - b-tree
   - b9
   - babylon
   - backblaze-b2-hs
@@ -3426,9 +3537,12 @@ broken-packages:
   - barrier
   - barrier-monad
   - base-compat-migrate
+  - base-encoding
   - base-feature-macros
   - base-generics
   - base-io-access
+  - base16
+  - base16-lens
   - base32-bytestring
   - base62
   - base64-bytes
@@ -3488,10 +3602,12 @@ broken-packages:
   - betacode
   - betris
   - bff
+  - bglib
   - bgmax
   - bgzf
   - bhoogle
   - bibdb
+  - bidi-icu
   - bidirectional
   - bidirectionalization-combined
   - bidispec
@@ -3510,7 +3626,6 @@ broken-packages:
   - binary-indexed-tree
   - binary-protocol
   - binary-protocol-zmq
-  - binary-search
   - binary-streams
   - binary-tagged
   - binary-typed
@@ -3582,6 +3697,7 @@ broken-packages:
   - biopsl
   - biosff
   - biostockholm
+  - bip32
   - birch-beer
   - bird
   - BirdPP
@@ -3596,10 +3712,12 @@ broken-packages:
   - bitcoin-block
   - bitcoin-compact-filters
   - bitcoin-hs
+  - bitcoin-keys
   - bitcoin-rpc
   - bitcoin-script
   - bitcoin-scripting
   - bitcoin-tx
+  - bitcoin-types
   - bitcoind-regtest
   - bitcoind-rpc
   - Bitly
@@ -3657,6 +3775,7 @@ broken-packages:
   - blunk-hask-tests
   - blunt
   - bno055-haskell
+  - bogocopy
   - bogre-banana
   - boilerplate
   - bolt
@@ -3679,6 +3798,7 @@ broken-packages:
   - boring-window-switcher
   - bot
   - botpp
+  - bound-extras
   - bounded-array
   - bowntz
   - box
@@ -3787,6 +3907,7 @@ broken-packages:
   - cabal-dependency-licenses
   - cabal-dev
   - cabal-dir
+  - cabal-edit
   - cabal-file-th
   - cabal-ghc-dynflags
   - cabal-ghci
@@ -3796,7 +3917,6 @@ broken-packages:
   - cabal-install-bundle
   - cabal-install-ghc72
   - cabal-install-ghc74
-  - cabal-install-parsers
   - cabal-lenses
   - cabal-meta
   - cabal-mon
@@ -3947,7 +4067,6 @@ broken-packages:
   - character-cases
   - charade
   - chart-cli
-  - Chart-diagrams
   - Chart-fltkhs
   - chart-histogram
   - Chart-simple
@@ -3956,7 +4075,6 @@ broken-packages:
   - Chart-tests
   - chart-unit
   - charter
-  - chatter
   - chatty-text
   - chatwork
   - cheapskate-terminal
@@ -4220,6 +4338,7 @@ broken-packages:
   - conferer-provider-dhall
   - conferer-provider-json
   - conferer-provider-yaml
+  - conferer-snap
   - conferer-source-dhall
   - conferer-source-json
   - conferer-source-yaml
@@ -4358,6 +4477,7 @@ broken-packages:
   - crf-chain2-generic
   - crf-chain2-tiers
   - critbit
+  - criterion-cmp
   - criterion-compare
   - criterion-plus
   - criterion-to-html
@@ -4405,6 +4525,7 @@ broken-packages:
   - ctkl
   - ctpl
   - cube
+  - cubical
   - cuboid
   - cuckoo
   - curl-runnings
@@ -4592,6 +4713,8 @@ broken-packages:
   - denominate
   - dense
   - dense-int-set
+  - dep-t
+  - dep-t-advice
   - dependent-hashmap
   - dependent-monoidal-map
   - dependent-state
@@ -4628,33 +4751,28 @@ broken-packages:
   - dhall-fly
   - dhall-nix
   - dhall-nixpkgs
+  - dhall-recursive-adt
   - dhall-text
   - dhall-to-cabal
   - dhcp-lease-parser
   - dhrun
   - dia-base
   - dia-functions
-  - diagrams
   - diagrams-boolean
   - diagrams-braille
   - diagrams-builder
   - diagrams-cairo
   - diagrams-canvas
-  - diagrams-contrib
-  - diagrams-core
   - diagrams-graphviz
   - diagrams-gtk
   - diagrams-haddock
   - diagrams-html5
-  - diagrams-lib
   - diagrams-pandoc
   - diagrams-pdf
   - diagrams-pgf
-  - diagrams-postscript
   - diagrams-qrcode
   - diagrams-rasterific
   - diagrams-rubiks-cube
-  - diagrams-svg
   - diagrams-tikz
   - diagrams-wx
   - dib
@@ -4685,6 +4803,7 @@ broken-packages:
   - dingo-core
   - dingo-example
   - dingo-widgets
+  - diohsc
   - diophantine
   - diplomacy
   - diplomacy-server
@@ -4759,9 +4878,9 @@ broken-packages:
   - docker-build-cacher
   - dockercook
   - docopt
+  - docrecords
   - DocTest
   - doctest-discover-configurator
-  - doctest-driver-gen
   - doctest-prop
   - docusign-base
   - docusign-base-minimal
@@ -4824,7 +4943,6 @@ broken-packages:
   - dtd
   - dtd-text
   - dtw
-  - dual-tree
   - dualizer
   - duet
   - dumb-cas
@@ -4906,6 +5024,7 @@ broken-packages:
   - eibd-client-simple
   - eigen
   - Eight-Ball-Pool-Hack-Cheats
+  - eio
   - either-list-functions
   - either-unwrap
   - EitherT
@@ -4984,6 +5103,7 @@ broken-packages:
   - equeue
   - erf-native
   - erlang
+  - erlang-ffi
   - eros
   - eros-client
   - eros-http
@@ -5022,8 +5142,11 @@ broken-packages:
   - ethereum-analyzer-webui
   - ethereum-client-haskell
   - ethereum-merkle-patricia-db
+  - ethereum-rlp
   - euphoria
   - eurofxref
+  - evdev
+  - evdev-streamly
   - eve-cli
   - event
   - event-driven
@@ -5049,6 +5172,7 @@ broken-packages:
   - execs
   - executor
   - exference
+  - exh
   - exherbo-cabal
   - exif
   - exigo-schema
@@ -5102,8 +5226,6 @@ broken-packages:
   - FailureT
   - fake
   - fake-type
-  - fakedata
-  - fakedata-quickcheck
   - faktory
   - falling-turnip
   - fallingblocks
@@ -5117,23 +5239,15 @@ broken-packages:
   - fastedit
   - fastirc
   - fastly
+  - fastpbkdf2
   - FastPush
   - fastsum
   - FastxPipe
   - fathead-util
   - fault-tree
-  - fay
-  - fay-base
   - fay-builder
-  - fay-dom
-  - fay-geoposition
   - fay-hsx
-  - fay-jquery
-  - fay-ref
   - fay-simplejson
-  - fay-text
-  - fay-uri
-  - fay-websockets
   - fb-persistent
   - fbmessenger-api
   - fbrnch
@@ -5248,6 +5362,7 @@ broken-packages:
   - fizzbuzz-as-a-service
   - flac
   - flac-picture
+  - flaccuraterip
   - flamethrower
   - flamingra
   - flashblast
@@ -5295,13 +5410,13 @@ broken-packages:
   - foo
   - for-free
   - forbidden-fruit
-  - force-layout
   - fordo
   - forecast-io
   - foreign-var
   - forest
   - forest-fire
   - Forestry
+  - forex2ledger
   - forger
   - ForkableT
   - formal
@@ -5319,6 +5434,7 @@ broken-packages:
   - forth-hll
   - Fortnite-Hack-Cheats-Free-V-Bucks-Generator
   - fortran-src
+  - fortran-src-extras
   - fortytwo
   - foscam-directory
   - foscam-filename
@@ -5334,6 +5450,7 @@ broken-packages:
   - fractals
   - fraction
   - frag
+  - frame-markdown
   - Frames-beam
   - Frames-dsv
   - Frames-map-reduce
@@ -5390,12 +5507,14 @@ broken-packages:
   - ft-generator
   - ftdi
   - FTGL-bytestring
+  - ftp-client
+  - ftp-client-conduit
   - ftp-conduit
   - ftphs
   - FTPLine
+  - ftree
   - ftshell
   - full-sessions
-  - fullstop
   - funbot
   - funbot-client
   - funbot-git-hook
@@ -5408,6 +5527,7 @@ broken-packages:
   - functional-arrow
   - functor
   - functor-combinators
+  - functor-combo
   - functor-friends
   - functor-infix
   - functor-products
@@ -5425,6 +5545,7 @@ broken-packages:
   - fused-effects-squeal
   - fused-effects-th
   - fusion
+  - futhark
   - futun
   - future
   - fuzzy-time-gen
@@ -5432,6 +5553,7 @@ broken-packages:
   - fwgl
   - fwgl-glfw
   - fwgl-javascript
+  - fxpak
   - g-npm
   - g2
   - g2q
@@ -5467,6 +5589,7 @@ broken-packages:
   - gelatin-gl
   - gelatin-sdl2
   - gelatin-shaders
+  - gemini-textboard
   - gemstone
   - gen-imports
   - gen-passwd
@@ -5484,6 +5607,7 @@ broken-packages:
   - generic-church
   - generic-enum
   - generic-enumeration
+  - generic-labels
   - generic-lens-labels
   - generic-lucid-scaffold
   - generic-maybe
@@ -5511,6 +5635,7 @@ broken-packages:
   - GenSmsPdu
   - gentlemark
   - GenussFold
+  - genvalidity-persistent
   - geo-resolver
   - GeocoderOpenCage
   - geodetic
@@ -5526,6 +5651,7 @@ broken-packages:
   - GGg
   - ggtsTC
   - gh-labeler
+  - ghc-bignum
   - ghc-clippy-plugin
   - ghc-core-smallstep
   - ghc-datasize
@@ -5577,8 +5703,6 @@ broken-packages:
   - gi-gstaudio
   - gi-gstpbutils
   - gi-gsttag
-  - gi-gtk-declarative
-  - gi-gtk-declarative-app-simple
   - gi-gtkosxapplication
   - gi-gtksheet
   - gi-handy
@@ -5784,6 +5908,8 @@ broken-packages:
   - gross
   - GroteTrap
   - groundhog-converters
+  - groundhog-mysql
+  - group-theory
   - group-with
   - grouped-list
   - groups-generic
@@ -5868,6 +5994,7 @@ broken-packages:
   - hackernews
   - HackMail
   - hackmanager
+  - hackport
   - hactor
   - hactors
   - haddock
@@ -5885,6 +6012,7 @@ broken-packages:
   - hahp
   - haiji
   - hailgun-send
+  - hails-bin
   - hairy
   - hakaru
   - hakismet
@@ -5901,6 +6029,7 @@ broken-packages:
   - hakyll-contrib-links
   - hakyll-dhall
   - hakyll-dir-list
+  - hakyll-elm
   - hakyll-favicon
   - hakyll-filestore
   - hakyll-images
@@ -6053,6 +6182,8 @@ broken-packages:
   - haskell-lsp-client
   - haskell-ml
   - haskell-mpfr
+  - haskell-mpi
+  - haskell-names
   - haskell-neo4j-client
   - haskell-openflow
   - haskell-overridez
@@ -6066,7 +6197,6 @@ broken-packages:
   - haskell-reflect
   - haskell-rules
   - haskell-spacegoo
-  - haskell-src
   - haskell-src-exts-observe
   - haskell-src-exts-prisms
   - haskell-src-exts-qq
@@ -6128,6 +6258,7 @@ broken-packages:
   - haskellscript
   - HaskellTorrent
   - HaskellTutorials
+  - haskelm
   - haskelzinc
   - haskeme
   - haskey
@@ -6175,6 +6306,7 @@ broken-packages:
   - haskyapi
   - haslo
   - hasloGUI
+  - hasmin
   - hasparql-client
   - hasql-backend
   - hasql-class
@@ -6337,6 +6469,7 @@ broken-packages:
   - heterolist
   - hetris
   - heukarya
+  - hevm
   - hevolisa
   - hevolisa-dph
   - hex-text
@@ -6350,6 +6483,7 @@ broken-packages:
   - hexpr
   - hexpress
   - hexquote
+  - hexstring
   - hext
   - hextream
   - heyefi
@@ -6389,13 +6523,13 @@ broken-packages:
   - HHDL
   - hhp
   - hhwloc
+  - hi
   - hi3status
   - hiccup
   - hichi
   - hid-examples
   - hidden-char
   - hie-core
-  - hiedb
   - hieraclus
   - hierarchical-clustering-diagrams
   - hierarchical-exceptions
@@ -6418,7 +6552,6 @@ broken-packages:
   - hinduce-classifier
   - hinduce-classifier-decisiontree
   - hinduce-examples
-  - hinit
   - hinquire
   - hinstaller
   - hint-server
@@ -6479,6 +6612,7 @@ broken-packages:
   - hlrdb
   - hlrdb-core
   - hls
+  - hls-exactprint-utils
   - hlwm
   - hly
   - hmark
@@ -6531,6 +6665,7 @@ broken-packages:
   - hol
   - hold-em
   - hole
+  - holmes
   - Holumbus-Searchengine
   - holy-project
   - homeomorphic
@@ -6561,10 +6696,6 @@ broken-packages:
   - hopencl
   - HOpenCV
   - hopfield
-  - hoppy-docs
-  - hoppy-generator
-  - hoppy-runtime
-  - hoppy-std
   - hops
   - hoq
   - horizon
@@ -6658,6 +6789,7 @@ broken-packages:
   - hs-scrape
   - hs-snowtify
   - hs-speedscope
+  - hs-tags
   - hs-twitter
   - hs-twitterarchiver
   - hs-vcard
@@ -6723,6 +6855,7 @@ broken-packages:
   - HsHyperEstraier
   - hsI2C
   - hSimpleDB
+  - hsimport
   - hsinspect
   - hsinspect-lsp
   - HsJudy
@@ -6851,6 +6984,7 @@ broken-packages:
   - http-wget
   - http2-client-grpc
   - http2-grpc-proto-lens
+  - http2-grpc-proto3-wire
   - https-everywhere-rules
   - https-everywhere-rules-raw
   - httpspec
@@ -6868,6 +7002,7 @@ broken-packages:
   - human-text
   - humble-prelude
   - hums
+  - hunch
   - HUnit-Diff
   - hunit-gui
   - hunit-rematch
@@ -6887,6 +7022,7 @@ broken-packages:
   - huzzy
   - hVOIDP
   - hw-all
+  - hw-aws-sqs-conduit
   - hw-ci-assist
   - hw-dsv
   - hw-json
@@ -6897,6 +7033,7 @@ broken-packages:
   - hw-kafka-avro
   - hw-prim-bits
   - hw-simd
+  - hw-simd-cli
   - hw-uri
   - hwall-auth-iitk
   - hweblib
@@ -6945,6 +7082,7 @@ broken-packages:
   - hyperloglogplus
   - hyperpublic
   - hypher
+  - hzk
   - hzulip
   - i18n
   - I1M
@@ -6953,7 +7091,7 @@ broken-packages:
   - ib-api
   - iban
   - ical
-  - iCalendar
+  - ice40-prim
   - IcoGrid
   - iconv-typed
   - ide-backend
@@ -6967,7 +7105,6 @@ broken-packages:
   - identifiers
   - idiii
   - idna2008
-  - idris
   - IDynamic
   - ieee-utils
   - iexcloud
@@ -7033,6 +7170,7 @@ broken-packages:
   - indentation-core
   - indentation-parsec
   - indentation-trifecta
+  - indents
   - index-core
   - indexation
   - IndexedList
@@ -7083,10 +7221,12 @@ broken-packages:
   - interruptible
   - interval
   - IntFormats
+  - intricacy
   - intro-prelude
   - introduction
   - introduction-test
   - intset
+  - invert
   - invertible-hlist
   - invertible-syntax
   - io-capture
@@ -7222,7 +7362,6 @@ broken-packages:
   - json-builder
   - JSON-Combinator
   - JSON-Combinator-Examples
-  - json-directory
   - json-encoder
   - json-enumerator
   - json-extra
@@ -7230,11 +7369,14 @@ broken-packages:
   - json-incremental-decoder
   - json-litobj
   - json-pointer-hasql
+  - json-pointy
   - json-python
+  - json-query
   - json-rpc-client
   - json-schema
   - json-sop
   - json-syntax
+  - json-to-haskell
   - json-togo
   - json-tokens
   - json-tools
@@ -7245,6 +7387,7 @@ broken-packages:
   - jsonextfilter
   - JsonGrammar
   - jsonifier
+  - jsonnet
   - jsonresume
   - jsonrpc-conduit
   - jsons-to-schema
@@ -7329,7 +7472,6 @@ broken-packages:
   - keyvaluehash
   - keyword-args
   - khph
-  - ki
   - kicad-data
   - kickass-torrents-dump-parser
   - kickchan
@@ -7347,6 +7489,7 @@ broken-packages:
   - koellner-phonetic
   - kontra-config
   - korfu
+  - kparams
   - kqueue
   - kraken
   - krank
@@ -7422,8 +7565,6 @@ broken-packages:
   - language-dart
   - language-dickinson
   - language-dockerfile
-  - language-ecmascript
-  - language-ecmascript-analysis
   - language-eiffel
   - language-elm
   - language-fortran
@@ -7472,7 +7613,6 @@ broken-packages:
   - latex-svg-image
   - latex-svg-pandoc
   - LATS
-  - lattices
   - launchdarkly-server-sdk
   - launchpad-control
   - lawless-concurrent-machines
@@ -7516,6 +7656,7 @@ broken-packages:
   - lens-filesystem
   - lens-labels
   - lens-prelude
+  - lens-process
   - lens-simple
   - lens-text-encoding
   - lens-th-rewrite
@@ -7572,6 +7713,7 @@ broken-packages:
   - libxml-enumerator
   - libxslt
   - lie
+  - life-sync
   - lifetimes
   - lifted-base-tf
   - lifted-protolude
@@ -7589,6 +7731,7 @@ broken-packages:
   - line-bot-sdk
   - line-drawing
   - linear-algebra-cblas
+  - linear-base
   - linear-circuit
   - linear-code
   - linear-maps
@@ -7618,6 +7761,7 @@ broken-packages:
   - linx-gateway
   - lio-eci11
   - lio-simple
+  - lion
   - lipsum-gen
   - liquid
   - liquid-base
@@ -7628,6 +7772,7 @@ broken-packages:
   - liquid-platform
   - liquid-prelude
   - liquid-vector
+  - liquidhaskell
   - liquidhaskell-cabal
   - Liquorice
   - list-fusion-probe
@@ -7737,6 +7882,7 @@ broken-packages:
   - LRU
   - ls-usb
   - lscabal
+  - lsfrom
   - LslPlus
   - lsystem
   - lti13
@@ -7858,6 +8004,7 @@ broken-packages:
   - math-grads
   - math-interpolate
   - math-metric
+  - math-programming
   - math-programming-glpk
   - math-programming-tests
   - mathblog
@@ -7922,6 +8069,8 @@ broken-packages:
   - memorypool
   - menoh
   - menshen
+  - mergeful-persistent
+  - mergeless-persistent
   - merkle-patricia-db
   - merkle-tree
   - messagepack-rpc
@@ -7949,7 +8098,9 @@ broken-packages:
   - mi
   - Michelangelo
   - miconix-test
+  - micro-gateway
   - micro-recursion-schemes
+  - microbase
   - microformats2-parser
   - microformats2-types
   - microgroove
@@ -7998,6 +8149,7 @@ broken-packages:
   - miss-porcelain
   - missing-py2
   - MissingPy
+  - mit-3qvpPyAi6mH
   - mix-arrows
   - mixed-strategies
   - mixpanel-client
@@ -8006,6 +8158,9 @@ broken-packages:
   - ml-w
   - mlist
   - mm2
+  - mmark
+  - mmark-cli
+  - mmark-ext
   - mmsyn7h
   - mmtf
   - mmtl
@@ -8094,7 +8249,6 @@ broken-packages:
   - Monocle
   - monoid
   - monoid-absorbing
-  - monoid-extras
   - monoid-owns
   - monoidplus
   - monoids
@@ -8108,6 +8262,7 @@ broken-packages:
   - morfeusz
   - morley
   - morloc
+  - morpheus-graphql-app
   - morpheus-graphql-cli
   - morphisms-functors
   - morphisms-functors-inventory
@@ -8200,6 +8355,7 @@ broken-packages:
   - muon
   - murder
   - murmur
+  - murmur3
   - murmurhash3
   - mushu
   - music-graphics
@@ -8213,6 +8369,7 @@ broken-packages:
   - musicbrainz-email
   - musicScroll
   - musicxml
+  - musicxml2
   - mustache-haskell
   - mutable-iter
   - MutationOrder
@@ -8272,6 +8429,7 @@ broken-packages:
   - nationstates
   - nats-client
   - nats-queue
+  - natural
   - natural-number
   - NaturalLanguageAlphabets
   - NaturalSort
@@ -8334,6 +8492,7 @@ broken-packages:
   - network-minihttp
   - network-msgpack-rpc
   - network-netpacket
+  - network-packet-linux
   - network-protocol-xmpp
   - network-rpca
   - network-server
@@ -8446,6 +8605,7 @@ broken-packages:
   - NXTDSL
   - nylas
   - nymphaea
+  - nyx-game
   - oanda-rest-api
   - oasis-xrd
   - oauth2-jwt-bearer
@@ -8512,6 +8672,7 @@ broken-packages:
   - OpenAFP
   - OpenAFP-Utils
   - openai-hs
+  - openai-servant
   - openapi-petstore
   - openapi-typed
   - openapi3
@@ -8609,6 +8770,7 @@ broken-packages:
   - pam
   - pan-os-syslog
   - panda
+  - pandoc-citeproc
   - pandoc-csv2table
   - pandoc-filter-graphviz
   - pandoc-filter-indent
@@ -8679,6 +8841,7 @@ broken-packages:
   - parsers-megaparsec
   - parsestar
   - parsimony
+  - parsnip
   - partage
   - partial-lens
   - partial-records
@@ -8769,6 +8932,7 @@ broken-packages:
   - persistent-odbc
   - persistent-protobuf
   - persistent-ratelimit
+  - persistent-redis
   - persistent-relational-record
   - persistent-template-classy
   - persistent-test
@@ -8795,6 +8959,11 @@ broken-packages:
   - phoityne
   - phone-numbers
   - phone-push
+  - phonetic-languages-examples
+  - phonetic-languages-properties
+  - phonetic-languages-simplified-lists-examples
+  - phonetic-languages-simplified-properties-lists
+  - phonetic-languages-simplified-properties-lists-double
   - phooey
   - photoname
   - phraskell
@@ -8815,7 +8984,6 @@ broken-packages:
   - piet
   - pig
   - pinboard
-  - pinboard-notes-backup
   - pinch
   - pinch-gen
   - pinchot
@@ -8837,6 +9005,7 @@ broken-packages:
   - pipes-extra
   - pipes-files
   - pipes-illumina
+  - pipes-interleave
   - pipes-io
   - pipes-key-value-csv
   - pipes-mongodb
@@ -8855,7 +9024,9 @@ broken-packages:
   - pit
   - pitchtrack
   - pivotal-tracker
+  - pixel-printer
   - pixelated-avatar-generator
+  - pixiv
   - pkcs10
   - pkcs7
   - pkggraph
@@ -8914,7 +9085,11 @@ broken-packages:
   - polydata-core
   - polynomial
   - polysemy-chronos
+  - polysemy-conc
   - polysemy-http
+  - polysemy-log
+  - polysemy-log-co
+  - polysemy-log-di
   - polysemy-methodology
   - polysemy-methodology-composite
   - polysemy-optics
@@ -8965,6 +9140,7 @@ broken-packages:
   - postgresql-simple-queue
   - postgresql-simple-sop
   - postgresql-simple-typed
+  - postgresql-simple-url
   - postgresql-syntax
   - postgresql-tx-query
   - postgresql-tx-squeal
@@ -9031,7 +9207,6 @@ broken-packages:
   - primitive-checked
   - primitive-containers
   - primitive-convenience
-  - primitive-extras
   - primitive-foreign
   - primitive-indexed
   - primitive-maybe
@@ -9098,7 +9273,9 @@ broken-packages:
   - proto-lens-arbitrary
   - proto-lens-combinators
   - proto-lens-descriptors
+  - proto-lens-optparse
   - proto3-suite
+  - proto3-wire
   - protobuf-native
   - protocol
   - protocol-buffers-descriptor-fork
@@ -9139,6 +9316,8 @@ broken-packages:
   - pure-zlib
   - purescheme-wai-routing-core
   - purescript
+  - purescript-ast
+  - purescript-cst
   - purescript-iso
   - purescript-tsd-gen
   - push-notifications
@@ -9168,13 +9347,10 @@ broken-packages:
   - QIO
   - QLearn
   - qlinear
+  - qnap-decrypt
   - qr-imager
   - qr-repa
   - qsem
-  - qtah-cpp-qt5
-  - qtah-examples
-  - qtah-generator
-  - qtah-qt5
   - QuadEdge
   - QuadTree
   - quantfin
@@ -9209,10 +9385,12 @@ broken-packages:
   - quickcheck-string-random
   - quickcheck-webdriver
   - QuickCheckVariant
+  - quickjs-hs
   - QuickPlot
   - quickpull
   - quickset
   - Quickson
+  - quickspec
   - quicktest
   - quickwebapp
   - quipper
@@ -9270,6 +9448,7 @@ broken-packages:
   - random-stream
   - RandomDotOrg
   - Range
+  - range-set-list
   - range-space
   - rangemin
   - Ranka
@@ -9327,6 +9506,7 @@ broken-packages:
   - read-bounded
   - read-ctags
   - read-io
+  - readability
   - readline
   - readline-statevar
   - readme-lhs
@@ -9344,6 +9524,8 @@ broken-packages:
   - record-syntax
   - records
   - records-th
+  - recursion-schemes
+  - recursion-schemes-ext
   - recursors
   - red-black-record
   - reddit
@@ -9416,6 +9598,7 @@ broken-packages:
   - regions-monadstf
   - regions-mtl
   - register-machine-typelevel
+  - registry
   - registry-hedgehog
   - regress
   - regression-simple
@@ -9429,6 +9612,7 @@ broken-packages:
   - reified-records
   - reify
   - relacion
+  - relapse
   - relational-postgresql8
   - relational-query-postgresql-pure
   - relative-date
@@ -9474,6 +9658,7 @@ broken-packages:
   - req-url-extra
   - reqcatcher
   - request-monad
+  - rere
   - rescue
   - reserve
   - reservoir
@@ -9519,6 +9704,7 @@ broken-packages:
   - rfc-redis
   - rfc-servant
   - rg
+  - rhbzquery
   - rhythm-game-tutorial
   - rib
   - ribbit
@@ -9529,6 +9715,7 @@ broken-packages:
   - riff
   - ring-buffer
   - ring-buffers
+  - rio-process-pool
   - riot
   - risc-v
   - risc386
@@ -9560,6 +9747,7 @@ broken-packages:
   - roc-cluster-demo
   - rock
   - rocksdb-haskell
+  - rocksdb-haskell-jprupp
   - rocksdb-query
   - roku-api
   - rollbar
@@ -9749,6 +9937,7 @@ broken-packages:
   - seclib
   - second-transfer
   - secp256k1
+  - secp256k1-haskell
   - secp256k1-legacy
   - secret-santa
   - secrm
@@ -9789,6 +9978,7 @@ broken-packages:
   - sequent-core
   - sequor
   - serialize-instances
+  - serialport
   - serokell-util
   - serpentine
   - serv
@@ -9861,6 +10051,7 @@ broken-packages:
   - servant-server-namedargs
   - servant-smsc-ru
   - servant-snap
+  - servant-static-th
   - servant-streaming
   - servant-streaming-client
   - servant-streaming-docs
@@ -9874,9 +10065,12 @@ broken-packages:
   - servant-zeppelin-server
   - servant-zeppelin-swagger
   - server-generic
+  - serversession
   - serversession-backend-acid-state
   - serversession-backend-persistent
   - serversession-backend-redis
+  - serversession-frontend-snap
+  - serversession-frontend-wai
   - serversession-frontend-yesod
   - services
   - ses-html-snaplet
@@ -9892,6 +10086,7 @@ broken-packages:
   - setoid
   - setters
   - sexp
+  - sexp-grammar
   - sexpr-parser
   - sext
   - SFML
@@ -9914,7 +10109,9 @@ broken-packages:
   - shake-cabal-build
   - shake-dhall
   - shake-extras
+  - shake-futhark
   - shake-minify
+  - shake-minify-css
   - shake-pack
   - shake-path
   - shake-persist
@@ -9955,6 +10152,8 @@ broken-packages:
   - Shpadoinkle-examples
   - Shpadoinkle-html
   - Shpadoinkle-router
+  - Shpadoinkle-streaming
+  - Shpadoinkle-template
   - Shpadoinkle-widgets
   - shpider
   - shuffle
@@ -9967,7 +10166,9 @@ broken-packages:
   - sign
   - signable
   - signals
+  - signature
   - signed-multiset
+  - signify-hs
   - silkscreen
   - silvi
   - simd
@@ -9993,6 +10194,7 @@ broken-packages:
   - simple-pipe
   - simple-rope
   - simple-server
+  - simple-sql-parser
   - simple-stacked-vm
   - simple-tabular
   - simple-tar
@@ -10014,6 +10216,8 @@ broken-packages:
   - simseq
   - singleton-dict
   - singleton-typelits
+  - singletons-base
+  - singletons-th
   - singnal
   - singular-factory
   - sink
@@ -10022,7 +10226,6 @@ broken-packages:
   - sirkel
   - sitepipe
   - sixfiguregroup
-  - size-based
   - sized-grid
   - sized-types
   - sized-vector
@@ -10041,6 +10244,7 @@ broken-packages:
   - skype4hs
   - slack
   - slack-notify-haskell
+  - slack-verify
   - slack-web
   - slave-thread
   - sliceofpy
@@ -10052,6 +10256,7 @@ broken-packages:
   - slot-lambda
   - sloth
   - slug
+  - slugify
   - slynx
   - small-bytearray-builder
   - smallarray
@@ -10093,6 +10298,7 @@ broken-packages:
   - snap-auth-cli
   - snap-blaze-clay
   - snap-configuration-utilities
+  - snap-elm
   - snap-error-collector
   - snap-extras
   - snap-routes
@@ -10114,6 +10320,7 @@ broken-packages:
   - snaplet-hdbc
   - snaplet-hslogger
   - snaplet-influxdb
+  - snaplet-lss
   - snaplet-mandrill
   - snaplet-mongoDB
   - snaplet-mongodb-minimalistic
@@ -10161,6 +10368,7 @@ broken-packages:
   - socketed
   - socketio
   - sockets
+  - sockets-and-pipes
   - socketson
   - sodium
   - soegtk
@@ -10217,6 +10425,7 @@ broken-packages:
   - splaytree
   - spline3
   - splines
+  - splint
   - split-morphism
   - splitter
   - Spock
@@ -10288,6 +10497,8 @@ broken-packages:
   - stackage-types
   - stackage-upload
   - stackage2nix
+  - stackcollapse-ghc
+  - staged-gg
   - standalone-derive-topdown
   - standalone-haddock
   - starling
@@ -10298,7 +10509,6 @@ broken-packages:
   - state-plus
   - state-record
   - stateful-mtl
-  - statestack
   - static-canvas
   - static-closure
   - static-tensor
@@ -10326,9 +10536,7 @@ broken-packages:
   - STL
   - STLinkUSB
   - stm-chunked-queues
-  - stm-containers
   - stm-firehose
-  - stm-hamt
   - stm-promise
   - stm-stats
   - STM32-Zombie
@@ -10374,6 +10582,7 @@ broken-packages:
   - streaming-utils
   - streaming-with
   - streamly-archive
+  - streamly-fsnotify
   - streamly-lmdb
   - streamproc
   - strelka
@@ -10386,7 +10595,6 @@ broken-packages:
   - strictly
   - string-isos
   - string-quote
-  - string-random
   - string-typelits
   - stringlike
   - stringtable-atom
@@ -10394,6 +10602,7 @@ broken-packages:
   - stripe-hs
   - stripe-http-streams
   - stripe-scotty
+  - stripe-signature
   - stripe-wreq
   - strongswan-sql
   - structural-induction
@@ -10441,15 +10650,15 @@ broken-packages:
   - supplemented
   - surjective
   - sv
+  - sv-cassava
+  - sv-core
   - sv-svfactor
   - SVD2HS
   - svfactor
-  - svg-builder
   - svg-builder-fork
   - SVG2Q
   - svg2q
   - svgcairo
-  - SVGFonts
   - svgone
   - svgutils
   - svm-light-utils
@@ -10463,6 +10672,7 @@ broken-packages:
   - swf
   - swift-lda
   - swiss-ephemeris
+  - switch
   - sws
   - syb-extras
   - syb-with-class-instances-text
@@ -10557,13 +10767,14 @@ broken-packages:
   - target
   - task
   - task-distribution
-  - taskell
   - TaskMonad
   - tasty-auto
   - tasty-bdd
   - tasty-fail-fast
+  - tasty-grading-system
   - tasty-groundhog-converters
   - tasty-hedgehog-coverage
+  - tasty-html
   - tasty-integrate
   - tasty-jenkins-xml
   - tasty-laws
@@ -10571,6 +10782,7 @@ broken-packages:
   - tasty-mgolden
   - tasty-silver
   - tasty-stats
+  - tasty-test-vector
   - tateti-tateti
   - Taxonomy
   - TaxonomyTools
@@ -10625,6 +10837,7 @@ broken-packages:
   - termination-combinators
   - termplot
   - terntup
+  - terraform-http-backend-pass
   - terrahs
   - tersmu
   - tesla
@@ -10646,7 +10859,6 @@ broken-packages:
   - testbench
   - testCom
   - testcontainers
-  - testing-feat
   - testloop
   - testpack
   - testpattern
@@ -10657,6 +10869,7 @@ broken-packages:
   - texrunner
   - text-all
   - text-and-plots
+  - text-ascii
   - text-containers
   - text-format-heavy
   - text-generic-pretty
@@ -10820,6 +11033,8 @@ broken-packages:
   - trace-function-call
   - traced
   - tracetree
+  - tracing
+  - tracing-control
   - tracked-files
   - tracker
   - trackit
@@ -10959,6 +11174,7 @@ broken-packages:
   - type-structure
   - type-sub-th
   - type-tree
+  - type-unary
   - typeable-th
   - TypeClass
   - typed-encoding
@@ -10996,6 +11212,7 @@ broken-packages:
   - uhc-light
   - uhc-util
   - uhexdump
+  - uhttpc
   - ui-command
   - UMM
   - unagi-bloomfilter
@@ -11025,6 +11242,8 @@ broken-packages:
   - uniprot-kb
   - uniqueid
   - uniquely-represented-sets
+  - uniqueness-periods-vector-examples
+  - uniqueness-periods-vector-properties
   - units-attoparsec
   - unittyped
   - unitym-yesod
@@ -11033,13 +11252,14 @@ broken-packages:
   - universe-instances-base
   - universe-instances-extended
   - universe-instances-trans
-  - universe-reverse-instances
   - universe-th
   - unix-fcntl
   - unix-handle
   - unix-process-conduit
+  - unix-recursive
   - unix-simple
   - unlifted-list
+  - unliftio-messagebox
   - unliftio-streams
   - unm-hip
   - unordered-containers-rematch
@@ -11064,6 +11284,7 @@ broken-packages:
   - upskirt
   - urbit-airlock
   - urbit-api
+  - urbit-hob
   - ureader
   - urembed
   - uri
@@ -11211,6 +11432,10 @@ broken-packages:
   - vitrea
   - vk-aws-route53
   - VKHS
+  - vocoder
+  - vocoder-audio
+  - vocoder-conduit
+  - vocoder-dunai
   - voicebase
   - vowpal-utils
   - voyeur
@@ -11257,6 +11482,7 @@ broken-packages:
   - wai-middleware-route
   - wai-middleware-static-caching
   - wai-middleware-travisci
+  - wai-middleware-validation
   - wai-rate-limit-redis
   - wai-request-spec
   - wai-responsible
@@ -11274,6 +11500,7 @@ broken-packages:
   - waitra
   - waldo
   - wallpaper
+  - warc
   - warp-dynamic
   - warp-static
   - warp-systemd
@@ -11319,7 +11546,9 @@ broken-packages:
   - webdriver-w3c
   - WeberLogic
   - webfinger-client
+  - webify
   - webkit-javascriptcore
+  - webmention
   - Webrexp
   - webserver
   - webshow
@@ -11382,6 +11611,7 @@ broken-packages:
   - WordNet
   - WordNet-ghc74
   - wordpass
+  - wordpress-auth
   - wordsearch
   - work-time
   - workdays
@@ -11452,15 +11682,14 @@ broken-packages:
   - xleb
   - xls
   - xlsior
-  - xlsx
   - xlsx-tabular
   - xlsx-templater
   - xml-catalog
   - xml-conduit-decode
+  - xml-conduit-selectors
   - xml-conduit-stylist
   - xml-enumerator
   - xml-enumerator-combinators
-  - xml-extractors
   - xml-html-conduit-lens
   - xml-monad
   - xml-parsec
@@ -11510,6 +11739,7 @@ broken-packages:
   - YACPong
   - yahoo-finance-api
   - yahoo-finance-conduit
+  - yahoo-prices
   - yahoo-web-search
   - yajl
   - yajl-enumerator
@@ -11539,10 +11769,9 @@ broken-packages:
   - yandex-translate
   - yaop
   - yap
-  - yarn-lock
-  - yarn2nix
   - yarr
   - yarr-image-io
+  - yasi
   - yavie
   - yaya-test
   - yaya-unsafe-test
@@ -11714,6 +11943,7 @@ broken-packages:
   - zoom-cache-pcm
   - zoom-cache-sndfile
   - zoom-refs
+  - zoovisitor
   - zsdd
   - zsh-battery
   - zsyntax
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
index 4e23ab80c1b6..a06caa410649 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
@@ -207,6 +207,7 @@ self: super: builtins.intersectAttrs super {
   network-transport-tcp = dontCheck super.network-transport-tcp;
   network-transport-zeromq = dontCheck super.network-transport-zeromq; # https://github.com/tweag/network-transport-zeromq/issues/30
   pipes-mongodb = dontCheck super.pipes-mongodb;        # http://hydra.cryp.to/build/926195/log/raw
+  pixiv = dontCheck super.pixiv;
   raven-haskell = dontCheck super.raven-haskell;        # http://hydra.cryp.to/build/502053/log/raw
   riak = dontCheck super.riak;                          # http://hydra.cryp.to/build/498763/log/raw
   scotty-binding-play = dontCheck super.scotty-binding-play;
@@ -226,6 +227,7 @@ self: super: builtins.intersectAttrs super {
   http-client-tls = dontCheck super.http-client-tls;
   http-conduit = dontCheck super.http-conduit;
   transient-universe = dontCheck super.transient-universe;
+  telegraph = dontCheck super.telegraph;
   typed-process = dontCheck super.typed-process;
   js-jquery = dontCheck super.js-jquery;
   hPDB-examples = dontCheck super.hPDB-examples;
@@ -443,9 +445,7 @@ self: super: builtins.intersectAttrs super {
 
   # requires an X11 display in test suite
   gi-gtk-declarative = dontCheck super.gi-gtk-declarative;
-
-  # depends on 'hie' executable
-  lsp-test = dontCheck super.lsp-test;
+  gi-gtk-declarative-app-simple = dontCheck super.gi-gtk-declarative-app-simple;
 
   # tests depend on executable
   ghcide = overrideCabal super.ghcide (drv: {
@@ -806,4 +806,14 @@ self: super: builtins.intersectAttrs super {
 
   # tests depend on a specific version of solc
   hevm = dontCheck (doJailbreak super.hevm);
+
+  # hadolint enables static linking by default in the cabal file, so we have to explicitly disable it.
+  # https://github.com/hadolint/hadolint/commit/e1305042c62d52c2af4d77cdce5d62f6a0a3ce7b
+  hadolint = disableCabalFlag super.hadolint "static";
+
+  # Test suite tries to execute the build product "doctest-driver-gen", but it's not in $PATH.
+  doctest-driver-gen = dontCheck super.doctest-driver-gen;
+
+  # Tests access internet
+  prune-juice = dontCheck super.prune-juice;
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
index 6928bba47fa0..1e61e38db920 100644
--- a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
@@ -27,7 +27,7 @@ self: {
          attoparsec base bytestring linear packer
        ];
        description = "3D model parsers";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -581,6 +581,8 @@ self: {
        ];
        description = "ASN.1 support for Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "AVar" = callPackage
@@ -603,7 +605,7 @@ self: {
        libraryHaskellDepends = [ base regex-compat Win32 ];
        description = "A binding to a part of the ANSI escape code for the console";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "AbortT-monadstf" = callPackage
@@ -824,7 +826,7 @@ self: {
        description = "A dependently typed functional programming language and proof assistant";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ abbradar ];
+       maintainers = with lib.maintainers; [ abbradar turion ];
      }) {inherit (pkgs) emacs;};
 
   "Agda-executable" = callPackage
@@ -938,7 +940,7 @@ self: {
          PrimitiveArray vector
        ];
        description = "Collection of alignment algorithms";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1131,7 +1133,7 @@ self: {
          base containers mtl poly-rec requirements tagged template-haskell
        ];
        description = "Strongly typed Attribute Grammars implemented using type-level programming";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "AttoBencode" = callPackage
@@ -1285,8 +1287,8 @@ self: {
      }:
      mkDerivation {
        pname = "BNFC";
-       version = "2.9.0";
-       sha256 = "1h5365978q43r4sik1kmbrxnxa6lxnb54lhp7bi9599rnav8nw0z";
+       version = "2.9.1";
+       sha256 = "0670in07lr9fgkx0c7zci8rn8c7g8nimkmpzy5w9swfp4rp3gbkk";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -1313,14 +1315,14 @@ self: {
        pname = "BNFC-meta";
        version = "0.6.1";
        sha256 = "0snackflcjxza4iqbd85fdsmylwr3bj71nsfrs2s2idc3nlxc7ia";
-       revision = "1";
-       editedCabalFile = "1lj92qxjf7gbgifhz1p6jw20079x6772gkbhvpd8ba4956dvzna3";
+       revision = "2";
+       editedCabalFile = "1xg96a83jhz5jiw16yrgm3x5k7fz7zmz6cvggnfmjvw7v7bl69ph";
        libraryHaskellDepends = [
          alex-meta array base fail happy-meta haskell-src-meta syb
          template-haskell
        ];
        description = "Deriving Parsers and Quasi-Quoters from BNF Grammars";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "Baggins" = callPackage
@@ -1333,7 +1335,7 @@ self: {
        editedCabalFile = "16206xd8lm8fkvpxbm19h403264xyjki07s9lam3pgq985xbqk35";
        libraryHaskellDepends = [ base cairo containers mtl ];
        description = "Tools for self-assembly";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1414,7 +1416,7 @@ self: {
          base bytestring cassava deepseq directory statistics time vector
        ];
        description = "Benchmark functions with history";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1535,7 +1537,7 @@ self: {
          filepath parsec ParsecTools StockholmAlignment SVGFonts text vector
        ];
        description = "Libary for Hidden Markov Models in HMMER3 format";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1558,7 +1560,7 @@ self: {
          vector-read-instances zlib
        ];
        description = "Base library for bioinformatics";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1586,7 +1588,7 @@ self: {
          tasty-silver tasty-th text
        ];
        description = "BLAST-related tools";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1599,7 +1601,7 @@ self: {
        sha256 = "0m7n3c2ly6kly146xrxzx41g3pv0cylrmzpdgv5c54x9gvb1hg7w";
        libraryHaskellDepends = [ base bytestring iteratee ];
        description = "Vienna / DotBracket / ExtSS parsers";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1642,7 +1644,7 @@ self: {
          directory either-unwrap text vector word8
        ];
        description = "Ensembl related datastructures and functions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1659,7 +1661,7 @@ self: {
          base BiobaseXNA bytestring containers filemanip iteratee tuple
        ];
        description = "Importer for FR3D resources";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1704,7 +1706,7 @@ self: {
          http-conduit hxt mtl network Taxonomy text transformers
        ];
        description = "Libary to interface with the Bioinformatics HTTP services - Entrez Ensembl";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1726,7 +1728,7 @@ self: {
          either-unwrap hxt text
        ];
        description = "Tools to query Bioinformatics HTTP services e.g. Entrez, Ensembl.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1766,7 +1768,7 @@ self: {
          base criterion lens text transformers
        ];
        description = "Infernal data structures and tools";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1779,7 +1781,7 @@ self: {
        sha256 = "0mwyyb7n232wgjipn9jsbqpcbxqms07adi5a6v14qaiynsjz4n1r";
        libraryHaskellDepends = [ base bytestring containers iteratee ];
        description = "Multiple Alignment Format";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1829,7 +1831,7 @@ self: {
        ];
        executableHaskellDepends = [ cmdargs ];
        description = "RNA folding training data";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1848,7 +1850,7 @@ self: {
          filepath lens primitive PrimitiveArray repa split vector
        ];
        description = "Import Turner RNA parameters";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -1899,7 +1901,7 @@ self: {
          base BiobaseTurner BiobaseXNA primitive PrimitiveArray vector
        ];
        description = "Import Vienna energy parameters";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -2025,7 +2027,7 @@ self: {
          HTTP http-conduit hxt mtl network transformers zip-archive
        ];
        description = "Libary to interface with the NCBI blast REST interface";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -2074,7 +2076,7 @@ self: {
        ];
        executableHaskellDepends = [ base cmdargs ];
        description = "A tool for posting Haskelly articles to blogs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -2127,7 +2129,7 @@ self: {
          base containers criterion MissingH network-uri parsec
        ];
        description = "A markdown-like markup language designed for blog posts";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -2264,8 +2266,8 @@ self: {
      }:
      mkDerivation {
        pname = "C-structs";
-       version = "0.2.0.1";
-       sha256 = "1l7mygk0ia93wqcm61v8mdlnspxscdplxg4qpffvx4ldfafxc7x9";
+       version = "0.2.0.2";
+       sha256 = "0v70j2wlhj91cmlc2247z7i3yak04b28ig093xaihawlqyb6hxjg";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [
          base doctest Glob HUnit QuickCheck template-haskell test-framework
@@ -2292,7 +2294,7 @@ self: {
          QuickCheck test-framework test-framework-quickcheck2
        ];
        description = "Encode/Decode values to/from CBOR";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -2459,7 +2461,7 @@ self: {
        ];
        executableHaskellDepends = [ cmdargs ];
        description = "Infernal covariance model comparison";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -2993,8 +2995,8 @@ self: {
        pname = "Chart";
        version = "1.9.3";
        sha256 = "0p69kq5kh40gd4y8wqabypmw67pqh42vaaw64zv9sf8j075g85ry";
-       revision = "1";
-       editedCabalFile = "1is2xvhwyf5j4nls6k162glazd28jj84r2h0bf868q93qdppzgxj";
+       revision = "2";
+       editedCabalFile = "04mmsm54mdqcrypvgawhhbwjscmky3j7g5841bc71c0q6d33h2k4";
        libraryHaskellDepends = [
          array base colour data-default-class lens mtl old-locale
          operational time vector
@@ -3011,8 +3013,8 @@ self: {
        pname = "Chart-cairo";
        version = "1.9.3";
        sha256 = "0clm68alzsakkn5m4h49dgx33crajacsykb4hry2fh9zxp9j743f";
-       revision = "1";
-       editedCabalFile = "1jhw93vmhafnrvim03afc989n6jdiwpnwqma09zxd3m09hcsg17l";
+       revision = "2";
+       editedCabalFile = "0z93znn3dpgj80iiz3a67m90x0j9ljr0jd1ws9jkzj7rk88014gp";
        libraryHaskellDepends = [
          array base cairo Chart colour data-default-class lens mtl
          old-locale operational time
@@ -3031,8 +3033,8 @@ self: {
        pname = "Chart-diagrams";
        version = "1.9.3";
        sha256 = "075yzq50jpakgq6lb3anr660jydm68ry0di33icdacbdymq8avwn";
-       revision = "1";
-       editedCabalFile = "1hm4z73k60ndb5jvy6wxviiyv9i0qd6diz8kf36yfbayzacqianw";
+       revision = "2";
+       editedCabalFile = "00whqmaqrbidicsz9dqvq88jc88m8cixxkyf70qsdg7ysg8dad8m";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base blaze-markup bytestring Chart colour containers
@@ -3042,8 +3044,6 @@ self: {
        ];
        description = "Diagrams backend for Charts";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Chart-fltkhs" = callPackage
@@ -3323,7 +3323,7 @@ self: {
        testHaskellDepends = [ base hspec hspec-discover parsec text ];
        testToolDepends = [ hspec-discover ];
        description = "Libary for parsing Clustal tools output";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -3377,8 +3377,8 @@ self: {
      }:
      mkDerivation {
        pname = "Color";
-       version = "0.3.0";
-       sha256 = "18aissrpllxll01k203i2agfff89ffah465zvb0yx0lvs8jh2xr7";
+       version = "0.3.1";
+       sha256 = "1gg15kb6za69w0b3x8pzrqbrh9b8g7g0zwj2a9ajf0wgp8kylp5b";
        libraryHaskellDepends = [ base data-default-class deepseq vector ];
        testHaskellDepends = [
          base colour doctest hspec HUnit JuicyPixels massiv massiv-test
@@ -3937,7 +3937,7 @@ self: {
          transformers-compat utf8-string xml-conduit xml-hamlet
        ];
        description = "RFC 4918 WebDAV support";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "DBFunctor" = callPackage
@@ -4018,7 +4018,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base MuCheck ];
        description = "Distributed Mutation Analysis framework for MuCheck";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -4295,7 +4295,7 @@ self: {
          utf8-string
        ];
        description = "Dao is meta programming language with its own built-in interpreted language, designed with artificial intelligence applications in mind";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -4449,8 +4449,8 @@ self: {
      }:
      mkDerivation {
        pname = "Decimal";
-       version = "0.5.1";
-       sha256 = "0k7kh05mr2f54w1lpgq1nln0h8k6s6h99dyp5jzsb9cfbb3aap2p";
+       version = "0.5.2";
+       sha256 = "19w7i9f0lbiyzwa0v3bm95233vi7f1688f0xms6cnjsf88h04ym3";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [
          base deepseq HUnit QuickCheck test-framework test-framework-hunit
@@ -4678,7 +4678,7 @@ self: {
        ];
        testHaskellDepends = [ base hspec lens mtl text ];
        description = "A client library for the DigitalOcean API";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -4706,7 +4706,7 @@ self: {
        librarySystemDepends = [ dsound ];
        description = "Partial binding to the Microsoft DirectSound API";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {dsound = null;};
 
   "DisTract" = callPackage
@@ -4744,7 +4744,7 @@ self: {
        ];
        testHaskellDepends = [ base doctest ];
        description = "Discussion support system";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -4829,7 +4829,7 @@ self: {
          PrimitiveArray repa split vector
        ];
        description = "Frameshift-aware alignment of protein sequences with DNA sequences";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -5052,7 +5052,7 @@ self: {
          array base criterion QuickCheck random vector
        ];
        description = "Dynamic time warping of sequences";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -5358,7 +5358,7 @@ self: {
          Taxonomy text transformers
        ];
        description = "Libary to interface with the NCBI Entrez REST service";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -5508,7 +5508,7 @@ self: {
          base containers ghc mtl operational random SafeSemaphore time unix
        ];
        description = "A general data-flow framework";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -5528,7 +5528,7 @@ self: {
          array base containers deepseq Etage fgl mtl parallel random time
        ];
        description = "Data-flow based graph algorithms";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -5646,7 +5646,7 @@ self: {
        libraryHaskellDepends = [ base inline-c ];
        testHaskellDepends = [ base hspec inline-c ];
        description = "Haskell Foreign Accelerate Interface";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "FComp" = callPackage
@@ -5671,7 +5671,7 @@ self: {
          template-haskell time uu-parsinglib
        ];
        description = "Compose music";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -5700,7 +5700,7 @@ self: {
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ fmodex64 ];
        description = "The Haskell FModEx raw API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {fmodex64 = null;};
@@ -5741,7 +5741,9 @@ self: {
        librarySystemDepends = [ ftgl ];
        description = "Portable TrueType font rendering for OpenGL using the Freetype2 library";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) ftgl;};
 
   "FTGL-bytestring" = callPackage
@@ -6431,8 +6433,8 @@ self: {
      }:
      mkDerivation {
        pname = "Frames";
-       version = "0.7.0";
-       sha256 = "0g4c8s4v3lg7bnsz8n09zrf8cwyywmxpv97wkwx6xvflknb7z0cc";
+       version = "0.7.1";
+       sha256 = "10js8xhp1v6gk6aagrzkn5c2c2gg4xml9vavpvhjfvj2jz77rfkm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -6770,7 +6772,7 @@ self: {
        sha256 = "13n80rplyl73ahk8cxgvs9gf655l063sd55spx0zvhw774vvxwv4";
        libraryHaskellDepends = [ base OpenGLRaw ];
        description = "Utilities for working with OpenGL matrices";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -7105,7 +7107,7 @@ self: {
          base QuickCheck tasty tasty-quickcheck tasty-th vector
        ];
        description = "Hox gene clustering";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -7160,7 +7162,7 @@ self: {
          test-framework-th
        ];
        description = "MCFGs for Genus-1 RNA Pseudoknots";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -7442,7 +7444,7 @@ self: {
          base dataenc download-curl utf8-string xml
        ];
        description = "Interface to Google Suggest API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "GoogleTranslate" = callPackage
@@ -7456,7 +7458,7 @@ self: {
          AttoJson base bytestring dataenc download-curl
        ];
        description = "Interface to Google Translate API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -7506,7 +7508,7 @@ self: {
        ];
        testHaskellDepends = [ base ];
        description = "Grammar products and higher-dimensional grammars";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -7526,7 +7528,7 @@ self: {
        ];
        executableHaskellDepends = [ array base mtl ];
        description = "Graph500 benchmark-related definitions and data set generator";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -7542,7 +7544,7 @@ self: {
          array base containers Graph500 mtl stm time
        ];
        description = "GraphHammer Haskell graph analyses framework inspired by STINGER";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -7561,7 +7563,7 @@ self: {
          array base containers Graph500 GraphHammer mtl
        ];
        description = "Test harness for TriangleCount analysis";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -8173,7 +8175,7 @@ self: {
        sha256 = "09h6wfalziw39c2sghj8qw82vyvnl01qlsam6ngkfkdirgj5sg5h";
        libraryHaskellDepends = [ base c-storable-deriving ];
        description = "A Queue with a random (weighted) pick function";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -8193,7 +8195,9 @@ self: {
        '';
        description = "HFuse is a binding for the Linux FUSE library";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) fuse;};
 
   "HGE2D" = callPackage
@@ -8916,7 +8920,7 @@ self: {
        executableHaskellDepends = [ base ];
        executablePkgconfigDepends = [ opencv ];
        description = "A binding for the OpenCV computer vision library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) opencv;};
@@ -9055,7 +9059,7 @@ self: {
          HROOT-io HROOT-math HROOT-tree template-haskell
        ];
        description = "Haskell binding to the ROOT data analysis framework";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9070,7 +9074,7 @@ self: {
          base fficxx fficxx-runtime template-haskell
        ];
        description = "Haskell binding to ROOT Core modules";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9087,7 +9091,7 @@ self: {
          base fficxx fficxx-runtime HROOT-core HROOT-hist template-haskell
        ];
        description = "Haskell binding to ROOT Graf modules";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9104,7 +9108,7 @@ self: {
          base fficxx fficxx-runtime HROOT-core template-haskell
        ];
        description = "Haskell binding to ROOT Hist modules";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9121,7 +9125,7 @@ self: {
          base fficxx fficxx-runtime HROOT-core template-haskell
        ];
        description = "Haskell binding to ROOT IO modules";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9138,7 +9142,7 @@ self: {
          base fficxx fficxx-runtime HROOT-core template-haskell
        ];
        description = "Haskell binding to ROOT Math modules";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9155,7 +9159,7 @@ self: {
          base fficxx fficxx-runtime HROOT-core template-haskell
        ];
        description = "Haskell binding to ROOT Tree modules";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9393,8 +9397,8 @@ self: {
      }:
      mkDerivation {
        pname = "HTF";
-       version = "0.14.0.5";
-       sha256 = "1hgkymgb8v3f5s7i8nn01iml8mqvah4iyqiqcflj3ffbjb93v1zd";
+       version = "0.14.0.6";
+       sha256 = "0lm4va3nnb9yli56vfkj7h816k0cnrdjnd3d9x44m706bh3avksq";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal process ];
@@ -9415,7 +9419,7 @@ self: {
          unordered-containers
        ];
        description = "The Haskell Test Framework";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9427,10 +9431,8 @@ self: {
      }:
      mkDerivation {
        pname = "HTTP";
-       version = "4000.3.15";
-       sha256 = "150m5v125s4jrxzl85jhnh69kp4mjyzhkqp0c1k087008f73csqd";
-       revision = "2";
-       editedCabalFile = "1rkazrbxfpx7bhp6fhgx97j58i4ccyp8bxjgdhr33cpv1b2cza9b";
+       version = "4000.3.16";
+       sha256 = "0bgyj3ahqlyg0jw6qsm2sncp8mklc4h0dj91s043vb3ig01iq2fn";
        libraryHaskellDepends = [
          array base bytestring mtl network network-uri parsec time
        ];
@@ -9497,27 +9499,12 @@ self: {
     ({ mkDerivation, base, call-stack, deepseq, filepath }:
      mkDerivation {
        pname = "HUnit";
-       version = "1.6.1.0";
-       sha256 = "1rpi52rnjpyv379rm6n3s706z6mv114aychf03dq456wfa4b7123";
-       revision = "1";
-       editedCabalFile = "1pb42lix1fzhvcc2g7kz5lw8fsz6kcj9b7almr7kvv38f8vmbn5i";
-       libraryHaskellDepends = [ base call-stack deepseq ];
-       testHaskellDepends = [ base call-stack deepseq filepath ];
-       description = "A unit testing framework for Haskell";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "HUnit_1_6_2_0" = callPackage
-    ({ mkDerivation, base, call-stack, deepseq, filepath }:
-     mkDerivation {
-       pname = "HUnit";
        version = "1.6.2.0";
        sha256 = "1as4sw5y39c3zrmr6sb8zbw74c9gdn4401y0dx45ih7zf6457dxh";
        libraryHaskellDepends = [ base call-stack deepseq ];
        testHaskellDepends = [ base call-stack deepseq filepath ];
        description = "A unit testing framework for Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "HUnit-Diff" = callPackage
@@ -9637,7 +9624,7 @@ self: {
        sha256 = "0q7fq5z0wrk2qg9n715033yp25dpl73g6iqkbvxbg2ahp9caq458";
        libraryHaskellDepends = [ base bytestring serialport stm ];
        description = "An Haskell library to drive the french Minitel through a serial port";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9777,8 +9764,8 @@ self: {
        pname = "HaXml";
        version = "1.25.5";
        sha256 = "0d8jbiv53r3ndg76r3937idqdg34nhmb99vj087i73hjnv21mifb";
-       revision = "2";
-       editedCabalFile = "0vlczcac2is5dbvkcwbsry1i10pbh1r316n1sq2py35alw7kzp1j";
+       revision = "4";
+       editedCabalFile = "029jnlmab1llr55dmlamrn2hxkbqw7ryz1dfg19h1aip6byf4ljh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -9843,7 +9830,7 @@ self: {
        ];
        testHaskellDepends = [ base Cabal containers HUnit tuple vector ];
        description = "Aggression analysis for Tweets on Twitter";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9892,7 +9879,7 @@ self: {
        executableHaskellDepends = [ base random transformers ];
        testHaskellDepends = [ base hspec transformers ];
        description = "The classic game of Hangman";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9936,7 +9923,7 @@ self: {
          process sox template-haskell uu-parsinglib vector
        ];
        description = "Harmony Analysis and Retrieval of Music";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -9959,7 +9946,7 @@ self: {
          uu-parsinglib
        ];
        description = "Parsing and unambiguously representing musical chords";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "HasBigDecimal" = callPackage
@@ -9987,7 +9974,7 @@ self: {
        librarySystemDepends = [ CacBDD ];
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Haskell bindings for CacBDD";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {CacBDD = null;};
@@ -10005,7 +9992,7 @@ self: {
          base haskell98 hmatrix hmatrix-special mtl parsec random
        ];
        description = "A Haskell library for inference using Gaussian processes";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -10063,7 +10050,7 @@ self: {
          base containers directory ghc-prim HList tagged
        ];
        description = "HaskRel, Haskell as a DBMS with support for the relational algebra";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -10819,8 +10806,8 @@ self: {
     ({ mkDerivation, base, bytestring, Cabal, network, openssl, time }:
      mkDerivation {
        pname = "HsOpenSSL";
-       version = "0.11.5.1";
-       sha256 = "1np4yyiq4935p1vbf89m0ifkilzc6vzab9i8x7c21y9s7rsv4rj9";
+       version = "0.11.6";
+       sha256 = "1gkx6kk03ziz9wk6iwxcdpf1ig8a9whwv3yjbzmqrwkp7fh1wdrw";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring network time ];
        librarySystemDepends = [ openssl ];
@@ -10940,8 +10927,8 @@ self: {
        pname = "HsYAML";
        version = "0.2.1.0";
        sha256 = "10qzhsg789h37q22hm9p27dx4rhbykcbxp7p3pvkws8fr7ajgxv0";
-       revision = "1";
-       editedCabalFile = "0bfwdwwj5wgqrrbw1cwaxwxy9970dzln7w20f21mlg2l374wnqvf";
+       revision = "2";
+       editedCabalFile = "0f7867jfzlmlqnkv3fjrzjvvfzjlvhbm10kmg7n0qk69ic8grkbc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -10952,7 +10939,7 @@ self: {
          text
        ];
        description = "Pure Haskell YAML 1.2 processor";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "HsYAML-aeson" = callPackage
@@ -10963,8 +10950,8 @@ self: {
        pname = "HsYAML-aeson";
        version = "0.2.0.0";
        sha256 = "12sxww260pc0bbpiyirm7911haxhljdi2f08a9ddpbgw8d5n7ffg";
-       revision = "2";
-       editedCabalFile = "0sf4clxx3i3s6666w3il65fijx2xmgb1mxml9jgc5y40sj3qb3mm";
+       revision = "3";
+       editedCabalFile = "0vhdndyj5f07vvvnssn5ybdja5wmaydq0n2lfpihvdg4dkhczrx2";
        libraryHaskellDepends = [
          aeson base bytestring containers HsYAML mtl scientific text
          unordered-containers vector
@@ -11067,7 +11054,7 @@ self: {
        ];
        benchmarkHaskellDepends = [ array base criterion Munkres random ];
        description = "A Linear Sum Assignment Problem (LSAP) solver";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "Hydrogen" = callPackage
@@ -11103,7 +11090,7 @@ self: {
        libraryHaskellDepends = [ array base QuickCheck ];
        testHaskellDepends = [ base tasty tasty-hunit tasty-quickcheck ];
        description = "Code for the Haskell course taught at the University of Seville";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -11222,6 +11209,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "IPv6Addr_2_0_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, HUnit, iproute, network
+     , network-info, random, test-framework, test-framework-hunit, text
+     }:
+     mkDerivation {
+       pname = "IPv6Addr";
+       version = "2.0.1";
+       sha256 = "0gkk20ngbfrr64w5szjhvlwlmali4xcx36iqa714cbxy6lpqy5cl";
+       libraryHaskellDepends = [
+         aeson attoparsec base iproute network network-info random text
+       ];
+       testHaskellDepends = [
+         base HUnit test-framework test-framework-hunit text
+       ];
+       description = "Library to deal with IPv6 address text representations";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "IPv6DB" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, fast-logger
      , hedis, hspec, http-client, http-types, IPv6Addr, mtl
@@ -11295,7 +11301,7 @@ self: {
        sha256 = "06px87hc6gz7n372lvpbq0g2v2s0aghd3k5a1ajgn5hbxirhnpwb";
        libraryHaskellDepends = [ base mtl template-haskell ];
        description = "A library for writing Imperative style haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -11446,7 +11452,7 @@ self: {
        ];
        testHaskellDepends = [ base doctest ];
        description = "DSL for IRC bots";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -11580,7 +11586,7 @@ self: {
        sha256 = "0ivqfk1rac1hv5j6nlsbpcm5yjqwpic34mdq9gf2m63lygqkbwqp";
        libraryHaskellDepends = [ base hosc ];
        description = "control JackMiniMix";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -11758,8 +11764,8 @@ self: {
        pname = "JuicyPixels-blurhash";
        version = "0.1.0.3";
        sha256 = "0kgl2j7990p8q5yrkn0wgaszc9fzva1pc3277j11k1lbjsymz360";
-       revision = "3";
-       editedCabalFile = "1mspqkmvn5j6xs3cb882szbnrzaxf0p2nyyxkfqfnbma204cs2fi";
+       revision = "4";
+       editedCabalFile = "0jxrcv4x3xr3v4lka0z5b13ywdic5f1dh19ivshrvad3xnv7kx0g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -11828,8 +11834,8 @@ self: {
        pname = "JuicyPixels-scale-dct";
        version = "0.1.2";
        sha256 = "04rhrmjnh12hh2nz04k245avgdcwqfyjnsbpcrz8j9328j41nf7p";
-       revision = "5";
-       editedCabalFile = "0aar0h109fiy6pads3rlmhjsaj5528yn4zay5ps0zf8yb9dyd82s";
+       revision = "6";
+       editedCabalFile = "0np8wqf0s0pwqnjfhs8zw9h133p2x173xbv984c4dn5a1xhn0azq";
        libraryHaskellDepends = [
          base base-compat carray fft JuicyPixels
        ];
@@ -12485,7 +12491,7 @@ self: {
          pipes-parse
        ];
        description = "Library for RedPitaya";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -12566,7 +12572,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base directory filepath unix ];
        description = "A simple sandboxing tool for Haskell packages";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -12598,7 +12604,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base directory random SDL SDL-ttf ];
        description = "A Snake II clone written using SDL";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -12728,7 +12734,7 @@ self: {
        libraryHaskellDepends = [ base binary bytestring HTF mtl ];
        testHaskellDepends = [ base binary bytestring HTF mtl ];
        description = "Algorithmic Doom map generation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -13053,7 +13059,7 @@ self: {
        libraryHaskellDepends = [ base containers mtl ];
        testHaskellDepends = [ base containers mtl ];
        description = "Generate MASM code from haskell";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -13066,7 +13072,7 @@ self: {
        sha256 = "0yh84vybrxs6bv3z4qx4n9m4xwsb4kw21l35s5v4gg8yllgbb79r";
        libraryHaskellDepends = [ base bytestring hidapi mtl ];
        description = "Haskell interface for controlling the mBot educational robot";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -13086,7 +13092,7 @@ self: {
        ];
        executableHaskellDepends = [ cmdargs split ];
        description = "Folding algorithm based on nucleotide cyclic motifs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -13181,7 +13187,7 @@ self: {
          tasty tasty-hunit tasty-quickcheck tasty-th
        ];
        description = "A GLPK backend to the MIP library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) glpk;};
@@ -13304,7 +13310,7 @@ self: {
        sha256 = "1yz7dgmhlkqmf3fc2y32j9lr01zfjjqy9pnnj3bh03b9khblw0pn";
        libraryHaskellDepends = [ base ];
        description = "Mapping";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -13651,7 +13657,7 @@ self: {
        sha256 = "1n90lfrvfr1ni7ninlxbs4wk0m7mibdpi9sy26ifih51nmk8nziq";
        libraryHaskellDepends = [ base numeric-prelude ];
        description = "Modular arithmetic via Numeric-Prelude";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "Moe" = callPackage
@@ -13932,7 +13938,7 @@ self: {
        sha256 = "1dglyak17db7q9nd6s255w2zh8lh192vidyjvgvh53vbybymb20z";
        libraryHaskellDepends = [ base containers split ];
        description = "Morse code";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "MuCheck" = callPackage
@@ -13952,7 +13958,7 @@ self: {
          temporary time
        ];
        description = "Automated Mutation Testing";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -13968,7 +13974,7 @@ self: {
        libraryHaskellDepends = [ base HUnit MuCheck ];
        executableHaskellDepends = [ base HUnit MuCheck ];
        description = "Automated Mutation Testing for HUnit tests";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -13984,7 +13990,7 @@ self: {
        libraryHaskellDepends = [ base hspec hspec-core MuCheck ];
        executableHaskellDepends = [ base hspec hspec-core MuCheck ];
        description = "Automated Mutation Testing for Hspec tests";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -14000,7 +14006,7 @@ self: {
        libraryHaskellDepends = [ base MuCheck QuickCheck ];
        executableHaskellDepends = [ base MuCheck QuickCheck ];
        description = "Automated Mutation Testing for QuickCheck tests";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -14016,7 +14022,7 @@ self: {
        libraryHaskellDepends = [ base MuCheck smallcheck ];
        executableHaskellDepends = [ base MuCheck smallcheck ];
        description = "Automated Mutation Testing for SmallCheck tests";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -14061,7 +14067,7 @@ self: {
          transformers unliftio-core vector xml-conduit xml-types
        ];
        description = "interface to MusicBrainz XML2 and JSON web services";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "MusicBrainz-libdiscid" = callPackage
@@ -14108,7 +14114,7 @@ self: {
          base QuickCheck tasty tasty-quickcheck tasty-th vector
        ];
        description = "Most likely order of mutation events in RNA";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -14195,7 +14201,7 @@ self: {
          test-framework-hunit test-framework-quickcheck2 time
        ];
        description = "A Haskell interface to Lego Mindstorms NXT";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {bluetooth = null;};
@@ -14251,7 +14257,7 @@ self: {
        editedCabalFile = "01ma6068mnwn9f7jpa5g8kkl7lyhl5wnpw9ad44zz9gki1mrw37i";
        libraryHaskellDepends = [ base containers random ];
        description = "A name generator written in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "NanoProlog" = callPackage
@@ -14408,7 +14414,7 @@ self: {
        sha256 = "1sdlnjnlbk5b04zyhr7574g2ghcivzvkxnm2aak4h9bik00gb1lv";
        libraryHaskellDepends = [ base random vector ];
        description = "A port of John Skilling's nested sampling C code to Haskell";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "NetSNMP" = callPackage
@@ -14738,7 +14744,7 @@ self: {
        libraryHaskellDepends = [ base containers primes ];
        testHaskellDepends = [ base containers HUnit primes ];
        description = "A library for number theoretic computations, written in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -14768,7 +14774,7 @@ self: {
          ADPfusion base ghc-prim mtl primitive PrimitiveArray vector
        ];
        description = "Nussinov78 using the ADPfusion library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -15016,6 +15022,8 @@ self: {
        pname = "OneTuple";
        version = "0.2.2.1";
        sha256 = "15ls6kkf953288q7rsc49bvw467ll4nq28hvsgbaazdn7hf75ixc";
+       revision = "1";
+       editedCabalFile = "03mygfz7lv6h0i30bq2grvmahbg9j7a36mc0wls2nr81dv9p19s7";
        libraryHaskellDepends = [ base ];
        description = "Singleton Tuple";
        license = lib.licenses.bsd3;
@@ -15438,7 +15446,7 @@ self: {
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring containers ];
        description = "A library for analysis of 3-D protein coordinates";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "PPrinter" = callPackage
@@ -15706,7 +15714,7 @@ self: {
          old-locale process random RSA SafeSemaphore time unix
        ];
        description = "A proven synchronization server for high performance computing";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -15719,7 +15727,7 @@ self: {
        sha256 = "11vshnbxfl8p38aix4h2b0vms8j58agwxbmhd9pkxai764sl6j7g";
        libraryHaskellDepends = [ base parsec ];
        description = "Parsec combinators for more complex objects";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "ParserFunction" = callPackage
@@ -15768,7 +15776,7 @@ self: {
        libraryHaskellDepends = [ base cmdargs HTTP network network-uri ];
        executableHaskellDepends = [ base cmdargs ];
        description = "CLI for pasting to lpaste.net";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "PathTree" = callPackage
@@ -15899,7 +15907,7 @@ self: {
          string-conversions temporary text time
        ];
        description = "Personal Happstack Server Utils";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16017,7 +16025,7 @@ self: {
        sha256 = "047aw1pka7xsqnshbmirkxd80m92w96xfb0kpi1a22bx0kpgg58w";
        libraryHaskellDepends = [ base containers regex-tdfa ];
        description = "Pluralize English words";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "Pollutocracy" = callPackage
@@ -16045,7 +16053,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base bytestring network splice ];
        description = "high-performance distributed reverse / forward proxy & tunneling for TCP";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16062,9 +16070,25 @@ self: {
        librarySystemDepends = [ alsaLib ];
        description = "A binding for PortMedia/PortMidi";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) alsaLib;};
 
+  "PortMidi-simple" = callPackage
+    ({ mkDerivation, base, PortMidi }:
+     mkDerivation {
+       pname = "PortMidi-simple";
+       version = "0.1.0.0";
+       sha256 = "17bl26jlpd48ag42kbjdirqhpahxaiax5sy7p3j1jylhiargijcd";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base PortMidi ];
+       executableHaskellDepends = [ base PortMidi ];
+       description = "Simplified PortMidi wrapper";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "PostgreSQL" = callPackage
     ({ mkDerivation, base, mtl }:
      mkDerivation {
@@ -16270,7 +16294,7 @@ self: {
        executableHaskellDepends = [ base ];
        doHaddock = false;
        description = "A networked event handling framework for hooking into other programs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16287,7 +16311,7 @@ self: {
          base network parsec Pup-Events-PQueue stm transformers
        ];
        description = "A networked event handling framework for hooking into other programs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "Pup-Events-Demo" = callPackage
@@ -16305,7 +16329,7 @@ self: {
          Pup-Events-Server stm
        ];
        description = "A networked event handling framework for hooking into other programs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16318,7 +16342,7 @@ self: {
        sha256 = "0sngiqxzj5kif452s2hn3x1kv257815c5v19dp4wqazbyc373iwx";
        libraryHaskellDepends = [ base stm ];
        description = "A networked event handling framework for hooking into other programs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "Pup-Events-Server" = callPackage
@@ -16333,7 +16357,7 @@ self: {
          base network parsec Pup-Events-PQueue stm transformers
        ];
        description = "A networked event handling framework for hooking into other programs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16518,7 +16542,7 @@ self: {
        libraryHaskellDepends = [ base QuickCheck ];
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Generator of \"valid\" and \"invalid\" data in a type class";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16543,7 +16567,7 @@ self: {
          websockets-snap
        ];
        description = "Quick and easy data visualization with Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16669,7 +16693,7 @@ self: {
        libraryHaskellDepends = [ base binary bytestring ];
        testHaskellDepends = [ base binary bytestring hspec ];
        description = "RLP serialization as defined in Ethereum Yellow Paper";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16715,7 +16739,7 @@ self: {
          base BiobaseTurner BiobaseVienna BiobaseXNA cmdargs
        ];
        description = "RNA secondary structure prediction";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16736,7 +16760,7 @@ self: {
          containers HsTools primitive PrimitiveArray RNAFold split vector
        ];
        description = "RNA secondary structure folding";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16763,7 +16787,7 @@ self: {
        ];
        executableHaskellDepends = [ bytestring cmdargs file-embed ];
        description = "Multi-target RNA sequence design";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16784,7 +16808,7 @@ self: {
        ];
        executableHaskellDepends = [ cmdargs ];
        description = "Draw RNA secondary structures";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16818,7 +16842,7 @@ self: {
          text time vector ViennaRNAParser
        ];
        description = "Unsupervized construction of RNA family models";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16840,7 +16864,7 @@ self: {
        ];
        executableHaskellDepends = [ cmdargs split ];
        description = "RNA folding with non-canonical basepairs and base-triplets";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -16918,7 +16942,9 @@ self: {
        ];
        description = "A puzzle game written in Haskell with a cat in lead role";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "Random123" = callPackage
@@ -17052,15 +17078,15 @@ self: {
 
   "Rattus" = callPackage
     ({ mkDerivation, base, Cabal, containers, ghc, ghc-prim
-     , simple-affine-space
+     , simple-affine-space, transformers
      }:
      mkDerivation {
        pname = "Rattus";
-       version = "0.4";
-       sha256 = "1sgr33yq5l43k3b8nwx7m6wrygv5k8d8yigzms3p6pq5pk3g5sq1";
+       version = "0.5";
+       sha256 = "1dh6ln8awqhgnk7hqh4zdkv4pqy3wmsqbmqrd016raf8vjbc1i3m";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
-         base containers ghc ghc-prim simple-affine-space
+         base containers ghc ghc-prim simple-affine-space transformers
        ];
        testHaskellDepends = [ base containers ];
        description = "A modal FRP language";
@@ -17152,7 +17178,7 @@ self: {
          base cmdargs cond containers directory
        ];
        description = "A utility for computing distributions of material to review among reviewers";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -17296,7 +17322,7 @@ self: {
          test-framework-quickcheck2
        ];
        description = "Limits the size of a directory's contents";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -17318,8 +17344,8 @@ self: {
      }:
      mkDerivation {
        pname = "RtMidi";
-       version = "0.4.0.0";
-       sha256 = "075j6d7vmihyz33b5ikv2l0c0alnhjzy1wpnzdrca6l201vab2mw";
+       version = "0.5.0.0";
+       sha256 = "0yb52a4c03x28nbq8shpzqsczr04ngi0fa1hw0mflhql5rzd7yy5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base deepseq unliftio-core vector ];
@@ -17700,7 +17726,7 @@ self: {
        ];
        libraryToolDepends = [ c2hsc ];
        description = "Declarative coördination language for streaming networks";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -17866,8 +17892,6 @@ self: {
        ];
        description = "Fonts from the SVG-Font format";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SVGPath" = callPackage
@@ -17894,7 +17918,7 @@ self: {
          pipes-bytestring pipes-parse split
        ];
        description = "A parser for SWMM 5 binary .OUT files";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "SableCC2Hs" = callPackage
@@ -18071,7 +18095,7 @@ self: {
          regex-compat sqlite-simple unix
        ];
        description = "Size limited temp filesystem based on fuse";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -18145,7 +18169,7 @@ self: {
          base cmdargs directory either-unwrap
        ];
        description = "Selects a representative subset of sequences from multiple sequence alignment";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -18208,7 +18232,7 @@ self: {
          base directory filepath hslogger mtl old-locale random time
        ];
        description = "Easy Loggingframework";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -18252,7 +18276,7 @@ self: {
          filepath mtl parsec QuickCheck regex-tdfa
        ];
        description = "Shell script analysis tool";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "Shellac" = callPackage
@@ -18586,6 +18610,41 @@ self: {
        broken = true;
      }) {};
 
+  "Shpadoinkle-streaming" = callPackage
+    ({ mkDerivation, base, lens, Shpadoinkle, streaming, text }:
+     mkDerivation {
+       pname = "Shpadoinkle-streaming";
+       version = "0.0.0.1";
+       sha256 = "1bvrkyj9l8asczfamw26x1hwj8bcxr7812zjm1m91jg4xzipayv2";
+       libraryHaskellDepends = [ base lens Shpadoinkle streaming text ];
+       description = "Integration of the streaming library with Shpadoinkle continuations";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "Shpadoinkle-template" = callPackage
+    ({ mkDerivation, base, file-embed, html-parse, Shpadoinkle
+     , Shpadoinkle-backend-static, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "Shpadoinkle-template";
+       version = "0.0.0.1";
+       sha256 = "1iyxb0hnyfcb4fipwrvzr03g3rai5lc5k7sysrd691l0dsh2jill";
+       libraryHaskellDepends = [
+         base html-parse Shpadoinkle Shpadoinkle-backend-static
+         template-haskell text
+       ];
+       testHaskellDepends = [
+         base file-embed html-parse Shpadoinkle Shpadoinkle-backend-static
+         template-haskell text
+       ];
+       description = "Read standard file formats into Shpadoinkle with Template Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "Shpadoinkle-widgets" = callPackage
     ({ mkDerivation, aeson, base, compactable, containers
      , edit-distance, email-validate, hspec, jsaddle, mtl, QuickCheck
@@ -18744,7 +18803,7 @@ self: {
        libraryHaskellDepends = [ base split ];
        testHaskellDepends = [ base Cabal ];
        description = "Simple table generator";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "Sit" = callPackage
@@ -18920,7 +18979,7 @@ self: {
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base QuickCheck ];
        description = "Sonnex is an alternative to Soundex for french language";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -19266,7 +19325,7 @@ self: {
        sha256 = "1h90i6crknxv23zryqi7mfzg65g1ydv62mza1hiri66jlmdahir6";
        libraryHaskellDepends = [ base statistics tuple vector ];
        description = "Collection of useful statistical methods";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "StockholmAlignment" = callPackage
@@ -19282,7 +19341,7 @@ self: {
          vector
        ];
        description = "Libary for Stockholm aligmnent format";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -19436,7 +19495,7 @@ self: {
        sha256 = "1wbixjgzad3s9jj16kl0gvwg82g3hqvkag9wr5j58w98a4qyqw8i";
        libraryHaskellDepends = [ base ];
        description = "String manipulation utilities";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "SuffixStructures" = callPackage
@@ -19790,7 +19849,7 @@ self: {
          aeson base bytestring either-unwrap fgl parsec text vector
        ];
        description = "Libary for parsing, processing and vizualization of taxonomy data";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -19811,7 +19870,7 @@ self: {
          EntrezHTTP fgl hxt parsec process Taxonomy text vector
        ];
        description = "Tool for parsing, processing, comparing and visualizing taxonomy data";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -19841,7 +19900,7 @@ self: {
          template-haskell text
        ];
        description = "Render general Haskell math to LaTeX. Or: math typesetting with high signal-to-noise–ratio.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -19903,7 +19962,7 @@ self: {
          process text
        ];
        description = "Generates testcases from program-snippets";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "Theora" = callPackage
@@ -19940,7 +19999,7 @@ self: {
        sha256 = "0rpcv6kw351ykj36f83qdqygrhk4ylqlcgcswxl8gg1v33jaaqmz";
        libraryHaskellDepends = [ base ];
        description = "Mutable objects that reside in their own threads";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "Thrift" = callPackage
@@ -19999,7 +20058,7 @@ self: {
        sha256 = "02plz1y7lmvp3jpl5srsnx2nkl6yhhfn6pqj00szs688cahk2dik";
        libraryHaskellDepends = [ base binary bytestring dataenc ];
        description = "TigerHash with C implementation";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "TimePiece" = callPackage
@@ -20063,7 +20122,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base containers matrix random ];
        description = "Game for Lounge Marmelade";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -20358,7 +20417,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base containers directory time ];
        description = "Command Line Typing speed tester";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "UISF" = callPackage
@@ -20755,7 +20814,7 @@ self: {
        ];
        testHaskellDepends = [ base hspec parsec ];
        description = "Libary for parsing ViennaRNA package output";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "Villefort" = callPackage
@@ -20805,14 +20864,14 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "VulkanMemoryAllocator";
-       version = "0.3.12";
-       sha256 = "0j46hhwfqbry6w8l8wj0p486rsyvxkk6dbvhd1sjkha6cy5cvar4";
+       version = "0.5";
+       sha256 = "1gar1xb7hbc452ck8351wikvryradna9bpphzd9kqwk0kx76nl3n";
        libraryHaskellDepends = [
          base bytestring transformers vector vulkan
        ];
        description = "Bindings to the VulkanMemoryAllocator library";
        license = lib.licenses.bsd3;
-       platforms = [ "x86_64-darwin" "x86_64-linux" ];
+       platforms = [ "aarch64-linux" "x86_64-darwin" "x86_64-linux" ];
      }) {};
 
   "WAVE" = callPackage
@@ -21177,12 +21236,12 @@ self: {
        platforms = lib.platforms.none;
      }) {};
 
-  "Win32_2_11_0_0" = callPackage
+  "Win32_2_12_0_0" = callPackage
     ({ mkDerivation }:
      mkDerivation {
        pname = "Win32";
-       version = "2.11.0.0";
-       sha256 = "179v0jypafjnh98gl8wr6z6pq1r5h740xzm2b6axd2d33zlnacfm";
+       version = "2.12.0.0";
+       sha256 = "068k26s1vxwz94w7bkqs9xbkh0z2mp1mimyklarr8rh26v978qin";
        description = "A binding to Windows Win32 API";
        license = lib.licenses.bsd3;
        platforms = lib.platforms.none;
@@ -21197,7 +21256,7 @@ self: {
        libraryHaskellDepends = [ base Win32 ];
        description = "Binding to the Win32 console API";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "Win32-dhcp-server" = callPackage
@@ -21209,7 +21268,7 @@ self: {
        libraryHaskellDepends = [ base text Win32 Win32-errors ];
        description = "Win32 DHCP Server Management API";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "Win32-errors" = callPackage
@@ -21220,11 +21279,13 @@ self: {
        pname = "Win32-errors";
        version = "0.2.2.5";
        sha256 = "08gbvlsf37nx982qs19pb9qc5sxi6493f02d3afjsyxqvalfbijy";
+       revision = "1";
+       editedCabalFile = "0vk991m2b14sqs74fnbxfymp9hzvmn30xkrngkhl6idyqgc0hsbd";
        libraryHaskellDepends = [ base template-haskell text Win32 ];
        testHaskellDepends = [ base hspec QuickCheck Win32 ];
        description = "Alternative error handling for Win32 foreign calls";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "Win32-extras" = callPackage
@@ -21239,7 +21300,7 @@ self: {
        librarySystemDepends = [ imm32 msimg32 ];
        description = "Provides missing Win32 API";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {imm32 = null; msimg32 = null;};
 
   "Win32-junction-point" = callPackage
@@ -21251,7 +21312,7 @@ self: {
        libraryHaskellDepends = [ base text Win32 Win32-errors ];
        description = "Support for manipulating NTFS junction points";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "Win32-notify" = callPackage
@@ -21265,7 +21326,7 @@ self: {
        libraryHaskellDepends = [ base containers directory Win32 ];
        description = "A binding to part of the Win32 library for file notification";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "Win32-security" = callPackage
@@ -21279,7 +21340,7 @@ self: {
        libraryHaskellDepends = [ base text Win32 Win32-errors ];
        description = "Haskell bindings to a security-related functions of the Windows API";
        license = lib.licenses.mit;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "Win32-services" = callPackage
@@ -21292,7 +21353,7 @@ self: {
        librarySystemDepends = [ Advapi32 ];
        description = "Windows service applications";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {Advapi32 = null;};
 
   "Win32-services-wrapper" = callPackage
@@ -21308,7 +21369,7 @@ self: {
        ];
        description = "Wrapper code for making a Win32 service";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "Win32-shortcut" = callPackage
@@ -21380,7 +21441,7 @@ self: {
          tasty-th text
        ];
        description = "Bigram word pair alignments";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -21601,7 +21662,7 @@ self: {
        librarySystemDepends = [ xinput ];
        description = "Bindings for the DirectX XInput library";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {inherit (pkgs.xorg) xinput;};
 
   "XML" = callPackage
@@ -21632,7 +21693,7 @@ self: {
        sha256 = "1vdgbmf27ghvyjzkcymsz9fgv9lcss41n5hiyqc58nzg0w18r0ik";
        libraryHaskellDepends = [ base parsec ];
        description = "A library to parse xml";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "XMMS" = callPackage
@@ -21961,8 +22022,8 @@ self: {
      }:
      mkDerivation {
        pname = "Z-Data";
-       version = "0.6.0.0";
-       sha256 = "16wb7hrk6rlxl0sks5nkhl60wxwlxdyjwj9j72g40l5x6qnlvk7d";
+       version = "0.7.3.0";
+       sha256 = "1ggxlg47m14lcxwqvs3ddldn1pz19pqxkgg6in5w6l4k62cwyhc1";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          base bytestring case-insensitive containers deepseq ghc-prim
@@ -21989,8 +22050,10 @@ self: {
      }:
      mkDerivation {
        pname = "Z-IO";
-       version = "0.6.1.0";
-       sha256 = "0m0qvamvixxm9yd45393j44mnnlnw2672gcdv7kaqw4hjczlddmq";
+       version = "0.7.1.0";
+       sha256 = "18d2q9fg4ydqpnrzvpcx1arjv4yl2966aax68fz3izgmsbp95k0l";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          base containers exceptions primitive stm time unix-time
          unordered-containers Z-Data
@@ -22015,10 +22078,8 @@ self: {
      }:
      mkDerivation {
        pname = "Z-MessagePack";
-       version = "0.1.0.0";
-       sha256 = "0ck21z1yqjx4w86h7z4ndj0fkpx7bfxfr9p5ls8687b71wxyzn6z";
-       revision = "2";
-       editedCabalFile = "14p2w38wrc8m66421wdl7q7fn21vk4b5m2mi2sa79wnaibv43d1n";
+       version = "0.3.0.1";
+       sha256 = "1xn3by0fkn8w9akldfk2rrfk8ns2r64zxqadrcsgga7nv88q49am";
        libraryHaskellDepends = [
          base containers deepseq hashable integer-gmp primitive QuickCheck
          scientific tagged time unordered-containers Z-Data Z-IO
@@ -23312,7 +23373,7 @@ self: {
        libraryHaskellDepends = [ base ];
        executableHaskellDepends = [ base ];
        description = "Maybe gives you a cute girl";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "acme-default" = callPackage
@@ -23336,6 +23397,8 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "A \"don't\" construct";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "acme-flipping-tables" = callPackage
@@ -23465,7 +23528,7 @@ self: {
        sha256 = "039pz5lw3p8iy1gaijvbc8296djxcziw70a0rnw0iz3iy29w1fmc";
        libraryHaskellDepends = [ base text ];
        description = "free your haskell from the tyranny of npm!";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -23863,8 +23926,6 @@ self: {
        ];
        description = "Abstractions for animation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "activehs" = callPackage
@@ -23961,8 +24022,8 @@ self: {
        pname = "acts";
        version = "0.3.1.0";
        sha256 = "06bpayfa8vwj8dqlqp71nw2s9iwbffdknkk4hpazd4r1wvhnrg37";
-       revision = "2";
-       editedCabalFile = "1xc061cj6wxqyr79hdakmc3nnzdh46sj2sd7j9gfrvgmbipl895q";
+       revision = "3";
+       editedCabalFile = "01vjb8mp9ifbfknnibzc1yhimn5yli2vafpxs6adk0cdjna99g4w";
        libraryHaskellDepends = [
          base deepseq finitary finite-typelits groups
        ];
@@ -24055,7 +24116,7 @@ self: {
          parsec-permutation strict text time
        ];
        description = "Convert adblock config files to privoxy format";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "addLicenseInfo" = callPackage
@@ -24262,7 +24323,7 @@ self: {
        sha256 = "0cp14n2l3scbsp7f6s4r19ngn2ympns03pm6s07hdkpavvgli1zg";
        libraryHaskellDepends = [ base ];
        description = "Modelling, rendering and quantitative analysis on attack defense trees";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -24379,8 +24440,10 @@ self: {
      }:
      mkDerivation {
        pname = "aeson";
-       version = "1.5.5.1";
-       sha256 = "0iqnzh9xh2vx9viqvs528i24zm9sdpvh8kjbpfxgrca38v6ds5m2";
+       version = "1.5.6.0";
+       sha256 = "1s5z4bgb5150h6a4cjf5vh8dmyrn6ilh29gh05999v6jwd5w6q83";
+       revision = "1";
+       editedCabalFile = "1y7ddmghsjblsxaj1wyif66wrw0vvp2dca5i7v9rqk33z1r6iryk";
        libraryHaskellDepends = [
          attoparsec base base-compat-batteries bytestring containers
          data-fix deepseq dlist ghc-prim hashable primitive scientific
@@ -24486,20 +24549,23 @@ self: {
      }) {};
 
   "aeson-combinators" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, doctest, fail
-     , hspec, scientific, text, time, time-compat, unordered-containers
-     , utf8-string, uuid-types, vector, void
+    ({ mkDerivation, 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.0.4.0";
-       sha256 = "01gsrm6glr2axcls4hxs740z8lxf39cvdhvidf360mnijai4sgl6";
+       version = "0.0.5.0";
+       sha256 = "1z5fbvpffx2lv3d2wk9g74hmkx1n1yjkwd3vy57f3pp5npja7f3a";
        libraryHaskellDepends = [
          aeson base bytestring containers fail scientific text time
          time-compat unordered-containers uuid-types vector void
        ];
        testHaskellDepends = [
-         aeson base bytestring doctest hspec text utf8-string
+         aeson base bytestring hspec text utf8-string
+       ];
+       benchmarkHaskellDepends = [
+         aeson base bytestring criterion deepseq text
        ];
        description = "Aeson combinators for dead simple JSON decoding";
        license = lib.licenses.bsd3;
@@ -24532,8 +24598,8 @@ self: {
        pname = "aeson-compat";
        version = "0.3.9";
        sha256 = "1j13gykv4ryvmr14w5blz0nnpdb4p0hpa27wahw3mhb1lwdr8hz0";
-       revision = "4";
-       editedCabalFile = "0l2ggm3lfnww4sq9frr0cga4ad9vlfhjsh323f9lvx3jk0g9pn7y";
+       revision = "6";
+       editedCabalFile = "18ni5j2zvn7qfdama9j1s84kz9ylsnjmi5ynbq68mpri5wimm448";
        libraryHaskellDepends = [
          aeson attoparsec attoparsec-iso8601 base base-compat bytestring
          containers exceptions hashable scientific tagged text time
@@ -24648,31 +24714,34 @@ self: {
      }) {};
 
   "aeson-extra" = callPackage
-    ({ mkDerivation, aeson, aeson-compat, attoparsec
-     , attoparsec-iso8601, base, base-compat-batteries, bytestring
-     , containers, deepseq, exceptions, hashable, parsec
-     , quickcheck-instances, recursion-schemes, scientific, semialign
-     , tasty, tasty-hunit, tasty-quickcheck, template-haskell, text
-     , these, time, time-parsers, unordered-containers, vector
+    ({ mkDerivation, aeson, attoparsec, attoparsec-iso8601, base
+     , base-compat-batteries, bytestring, containers, deepseq
+     , exceptions, hashable, parsec, quickcheck-instances
+     , recursion-schemes, scientific, semialign, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, these, time-parsers
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "aeson-extra";
-       version = "0.4.1.3";
-       sha256 = "1k15vkyf635nh904diyg931ziwdngikvp7c9c339pys3savf5qr2";
-       revision = "4";
-       editedCabalFile = "0gwjgxpgq7lncylfpccikmn3jk2jmz54vsgjialhwa26iv9f9n4a";
+       version = "0.5";
+       sha256 = "0nlp6bwb8zynfncfzr05fi9acfs8n2fkz4anm2c0g97dk2ziq213";
+       revision = "1";
+       editedCabalFile = "1x1fh0zgb0y3w7wf94zznbmdmbxs0b5n7prfw324g3kzhi428s3d";
        libraryHaskellDepends = [
-         aeson aeson-compat attoparsec attoparsec-iso8601 base
-         base-compat-batteries bytestring containers deepseq exceptions
-         hashable parsec recursion-schemes scientific semialign
-         template-haskell text these time unordered-containers vector
+         aeson attoparsec attoparsec-iso8601 base base-compat-batteries
+         bytestring containers deepseq exceptions hashable parsec
+         recursion-schemes scientific semialign template-haskell text these
+         unordered-containers vector
        ];
        testHaskellDepends = [
-         base containers quickcheck-instances tasty tasty-hunit
-         tasty-quickcheck time time-parsers unordered-containers vector
+         aeson base base-compat-batteries containers quickcheck-instances
+         tasty tasty-hunit tasty-quickcheck time-parsers
+         unordered-containers vector
        ];
        description = "Extra goodies for aeson";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "aeson-filthy" = callPackage
@@ -24917,8 +24986,8 @@ self: {
        pname = "aeson-optics";
        version = "1.1.0.1";
        sha256 = "1pfi84cl7w5bp7dwdhcyi8kchvbfjybqcp0sifqrn70dj2b50mf7";
-       revision = "3";
-       editedCabalFile = "1hxkahjf6znybqiv622n3syn5pp1a6jdpzq8ryrq9y45yczg82pi";
+       revision = "5";
+       editedCabalFile = "102mdf74ka25qnw45282j7c4ds3v4mppa3g1mp1hr0hf0f2ya3bk";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat bytestring optics-core
          optics-extra scientific text unordered-containers vector
@@ -25100,8 +25169,8 @@ self: {
      }:
      mkDerivation {
        pname = "aeson-schemas";
-       version = "1.3.2";
-       sha256 = "1mchqhpnv7rnhi1lbcsg1pwr5ml2444h3l2yak353s8lr204pg1p";
+       version = "1.3.3";
+       sha256 = "1dhi4pf8ariqr5g79cnr52rxfi1ywp2sv9sazw51rgv1k4gb3492";
        libraryHaskellDepends = [
          aeson base first-class-families hashable megaparsec
          template-haskell text unordered-containers
@@ -25284,17 +25353,23 @@ self: {
      }) {};
 
   "aeson-via" = callPackage
-    ({ mkDerivation, aeson, aeson-casing, base, newtype-generics, text
+    ({ mkDerivation, aeson, aeson-casing, base, newtype-generics, tasty
+     , tasty-hunit, text
      }:
      mkDerivation {
        pname = "aeson-via";
-       version = "0.1.0";
-       sha256 = "0zlx4pxfh3qll8ymfya0rfqx3gd7ag0wag86fa8fvni6h07ynryf";
+       version = "0.1.1";
+       sha256 = "18b1pxvkrva6531v8x38vhqmyj48iddi49vgc79s0jx8sgb39l8d";
        libraryHaskellDepends = [
          aeson aeson-casing base newtype-generics text
        ];
+       testHaskellDepends = [
+         aeson aeson-casing base newtype-generics tasty tasty-hunit text
+       ];
        description = "Wrappers to derive-via Aeson ToJSON/FromJSON typeclasses";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "aeson-with" = callPackage
@@ -25365,7 +25440,7 @@ self: {
          monad-parallel mtl OpenGL sdl2 stm text uuid vector
        ];
        description = "A simple Game Engine using SDL";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -25787,8 +25862,8 @@ self: {
      }:
      mkDerivation {
        pname = "aivika";
-       version = "5.9";
-       sha256 = "0chmrj8r1qh1k1xkp9gybadxz5zz04v2zh26byrckyx7l2bb7j8x";
+       version = "5.9.1";
+       sha256 = "15l6lgzl64ym21rzf6dbp927bj0s23kx9rp2z34k36ghy4sbdqjz";
        libraryHaskellDepends = [
          array base binary containers deepseq exceptions mtl mwc-random
          random semigroups vector
@@ -25803,8 +25878,8 @@ self: {
      }:
      mkDerivation {
        pname = "aivika-branches";
-       version = "0.3";
-       sha256 = "1xb7l92vhaccfx9n83x6viamnkxy97c6a3plcf7gllijzrc4i1pf";
+       version = "0.3.2";
+       sha256 = "1bd85lk70h6p4a1v0h8dhbnsx5sc8cyj916kaq1hn6r0ykkrnsjd";
        libraryHaskellDepends = [
          aivika aivika-transformers base containers mtl mwc-random random
        ];
@@ -25837,8 +25912,8 @@ self: {
      }:
      mkDerivation {
        pname = "aivika-experiment";
-       version = "5.3";
-       sha256 = "0ch2h7scg43x5mdmvqyjabh96vhshz94r8b58pi9ikp7w4rm7wk9";
+       version = "5.3.3";
+       sha256 = "0ps0spjd7himcfgr9ahh27c24isdvxrihf4qv2sr7cs33n6h7hsj";
        libraryHaskellDepends = [
          aivika aivika-transformers base containers directory filepath mtl
          network-uri parallel-io split
@@ -25904,8 +25979,8 @@ self: {
      }:
      mkDerivation {
        pname = "aivika-gpss";
-       version = "0.6.1";
-       sha256 = "06jx9340rr8a23gpzwwzqv0baqnv62w8cf8slcmcmlr0k84lg4ca";
+       version = "0.6.2";
+       sha256 = "09dfb212jjyd4fwqbl1bmm5k2sndzpx47vw688vgnx37zd94jwwj";
        libraryHaskellDepends = [
          aivika aivika-transformers base containers hashable mtl
          unordered-containers
@@ -25920,8 +25995,8 @@ self: {
      }:
      mkDerivation {
        pname = "aivika-lattice";
-       version = "0.6";
-       sha256 = "0199d3ycs98a7gbqaakv2s4aj1paw08ix32xv3ln4p7x56avc6rn";
+       version = "0.6.2";
+       sha256 = "0misn0pkrkfyyzg859y57ida2xc9ibmz5ykizj1fw30zsby57skl";
        libraryHaskellDepends = [
          aivika aivika-transformers array base containers mtl mwc-random
          random
@@ -25936,8 +26011,8 @@ self: {
      }:
      mkDerivation {
        pname = "aivika-realtime";
-       version = "0.3";
-       sha256 = "1qprmkklyna16n56zxkaryy0fawvc9mjws0mcw87bcl56m18npcm";
+       version = "0.3.1";
+       sha256 = "0wvv41ip4izwa22l7p6zz1sdr8vchlakvm5vka33r5gkq10fw6s9";
        libraryHaskellDepends = [
          aivika aivika-transformers async base containers mtl mwc-random
          random stm time vector
@@ -25952,8 +26027,8 @@ self: {
      }:
      mkDerivation {
        pname = "aivika-transformers";
-       version = "5.9";
-       sha256 = "1vqwhjwjsnrbqp3n97arl2nz28xb0vwxvsn42iqf8fxj6xsks3y1";
+       version = "5.9.1";
+       sha256 = "0ii7g6a29fksg3lrk6vvlhaafdjssqypz92spksnpgjfv7iamk99";
        libraryHaskellDepends = [
          aivika array base containers exceptions mtl mwc-random random
          semigroups vector
@@ -25986,7 +26061,7 @@ self: {
          regex-compat syb temporary unix utf8-string zlib
        ];
        description = "Haskell compiler that produce binary through C language";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -26092,8 +26167,8 @@ self: {
      }:
      mkDerivation {
        pname = "alex-meta";
-       version = "0.3.0.12";
-       sha256 = "0s0yhkl0ymr50agqnsbscw8926jk4044n6scw086ylhcijx3qmxa";
+       version = "0.3.0.13";
+       sha256 = "0lbralcid373p25m4qhrhrjak87p8wp4as3304sj6ba6xka89q3v";
        libraryHaskellDepends = [
          array base containers haskell-src-meta QuickCheck template-haskell
        ];
@@ -26214,7 +26289,7 @@ self: {
          tf-random transformers
        ];
        description = "Algorithmic automation for various DAWs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -26289,6 +26364,8 @@ self: {
        ];
        description = "Companion library for the book Algebra-Driven Design by Sandy Maguire";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "algebra-sql" = callPackage
@@ -26461,6 +26538,100 @@ self: {
        broken = true;
      }) {};
 
+  "algorithmic-composition-additional" = callPackage
+    ({ mkDerivation, algorithmic-composition-basic, base, bytestring
+     , directory, foldable-ix, mmsyn2-array, mmsyn3, mmsyn7l
+     , mmsyn7ukr-common, phonetic-languages-simplified-base, process
+     , ukrainian-phonetics-basic-array
+     }:
+     mkDerivation {
+       pname = "algorithmic-composition-additional";
+       version = "0.1.0.0";
+       sha256 = "183zjamprssdn3qiiil2ahzhfj6ajg7zs5vdspjfwfq651r8c9gh";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         algorithmic-composition-basic base bytestring directory foldable-ix
+         mmsyn2-array mmsyn3 mmsyn7l mmsyn7ukr-common
+         phonetic-languages-simplified-base process
+         ukrainian-phonetics-basic-array
+       ];
+       executableHaskellDepends = [
+         algorithmic-composition-basic base bytestring directory foldable-ix
+         mmsyn2-array mmsyn3 mmsyn7l mmsyn7ukr-common
+         phonetic-languages-simplified-base process
+         ukrainian-phonetics-basic-array
+       ];
+       description = "Helps to create experimental music from a file (or its part) and a Ukrainian text";
+       license = lib.licenses.mit;
+     }) {};
+
+  "algorithmic-composition-basic" = callPackage
+    ({ mkDerivation, base, bytestring, directory, foldable-ix
+     , mmsyn2-array, mmsyn3, mmsyn7l, mmsyn7ukr-common
+     , phonetic-languages-simplified-base, process, process-sequential
+     , ukrainian-phonetics-basic-array
+     }:
+     mkDerivation {
+       pname = "algorithmic-composition-basic";
+       version = "0.3.1.0";
+       sha256 = "0vpqi398nhlawh7dipfzvq6zsk1g9gpjbr35mizm5rms4sj3mfsk";
+       libraryHaskellDepends = [
+         base bytestring directory foldable-ix mmsyn2-array mmsyn3 mmsyn7l
+         mmsyn7ukr-common phonetic-languages-simplified-base process
+         process-sequential ukrainian-phonetics-basic-array
+       ];
+       description = "Helps to create experimental music from a file (or its part) and a Ukrainian text";
+       license = lib.licenses.mit;
+     }) {};
+
+  "algorithmic-composition-complex" = callPackage
+    ({ mkDerivation, algorithmic-composition-basic, base, bytestring
+     , directory, foldable-ix, mmsyn2-array, mmsyn3, mmsyn7l
+     , mmsyn7ukr-common, phonetic-languages-simplified-base, process
+     , ukrainian-phonetics-basic-array
+     }:
+     mkDerivation {
+       pname = "algorithmic-composition-complex";
+       version = "0.1.0.0";
+       sha256 = "12spldkdcjidaa95w46z5rvy1nsxn9blzhic8klkgx8jwvynixbl";
+       libraryHaskellDepends = [
+         algorithmic-composition-basic base bytestring directory foldable-ix
+         mmsyn2-array mmsyn3 mmsyn7l mmsyn7ukr-common
+         phonetic-languages-simplified-base process
+         ukrainian-phonetics-basic-array
+       ];
+       description = "Helps to create more complex experimental music from a file (especially timbre)";
+       license = lib.licenses.mit;
+     }) {};
+
+  "algorithmic-composition-frequency-shift" = callPackage
+    ({ mkDerivation, algorithmic-composition-basic, base, directory
+     , doublezip, mmsyn3, mmsyn7l, process
+     }:
+     mkDerivation {
+       pname = "algorithmic-composition-frequency-shift";
+       version = "0.1.0.0";
+       sha256 = "0m7pjxczi3w7r3srq76b30xjiqv9w6238xl2hm7s8gwnam8ha7r5";
+       libraryHaskellDepends = [
+         algorithmic-composition-basic base directory doublezip mmsyn3
+         mmsyn7l process
+       ];
+       description = "Helps to create experimental music. Uses SoX inside.";
+       license = lib.licenses.mit;
+     }) {};
+
+  "algorithmic-composition-overtones" = callPackage
+    ({ mkDerivation, algorithmic-composition-basic, base }:
+     mkDerivation {
+       pname = "algorithmic-composition-overtones";
+       version = "0.1.0.0";
+       sha256 = "0phdwds12jmv7dp88z6lk6h58jayn9cpjn1sgrglymgww87h88d9";
+       libraryHaskellDepends = [ algorithmic-composition-basic base ];
+       description = "Some variants of the overtones functions to generate a timbre";
+       license = lib.licenses.mit;
+     }) {};
+
   "align" = callPackage
     ({ mkDerivation, base, containers, transformers, vector }:
      mkDerivation {
@@ -26694,7 +26865,9 @@ self: {
        libraryPkgconfigDepends = [ alsaLib ];
        description = "Binding to the ALSA Library API (Exceptions)";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) alsaLib;};
 
   "alsa-gui" = callPackage
@@ -26749,7 +26922,9 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings to the ALSA simple mixer API";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) alsaLib;};
 
   "alsa-pcm" = callPackage
@@ -26769,7 +26944,9 @@ self: {
        libraryPkgconfigDepends = [ alsaLib ];
        description = "Binding to the ALSA Library API (PCM audio)";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) alsaLib;};
 
   "alsa-pcm-tests" = callPackage
@@ -26805,7 +26982,33 @@ self: {
        libraryPkgconfigDepends = [ alsaLib ];
        description = "Binding to the ALSA Library API (MIDI sequencer)";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+     }) {inherit (pkgs) alsaLib;};
+
+  "alsa-seq_0_6_0_8" = callPackage
+    ({ mkDerivation, alsa-core, alsaLib, array, base, bytestring
+     , data-accessor, enumset, extensible-exceptions, poll, transformers
+     , utility-ht
+     }:
+     mkDerivation {
+       pname = "alsa-seq";
+       version = "0.6.0.8";
+       sha256 = "00f7873484nifbimdav0b25sipgx3rn6xx1il6qgvz0p70pzzljv";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         alsa-core array base bytestring data-accessor enumset
+         extensible-exceptions poll transformers utility-ht
+       ];
+       libraryPkgconfigDepends = [ alsaLib ];
+       description = "Binding to the ALSA Library API (MIDI sequencer)";
+       license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) alsaLib;};
 
   "alsa-seq-tests" = callPackage
@@ -27058,8 +27261,6 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Comprehensive Amazon Web Services SDK";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "amazonka-alexa-business" = callPackage
@@ -27891,6 +28092,8 @@ self: {
        ];
        description = "Amazon Elastic Compute Cloud SDK";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "amazonka-ecr" = callPackage
@@ -29536,8 +29739,8 @@ self: {
      }:
      mkDerivation {
        pname = "amqp";
-       version = "0.20.0.1";
-       sha256 = "10qj4776b3sjifij3qic2bafd01jn8s0pfgm1yd74nyhjx50s19p";
+       version = "0.22.0";
+       sha256 = "1yr81pwmjnap5bir9nrmpwakg4rz4fwcjzbkdr8azqbp9x0hr9k2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -29602,28 +29805,8 @@ self: {
      }:
      mkDerivation {
        pname = "amqp-utils";
-       version = "0.4.4.1";
-       sha256 = "1vs0p7pc6z9mfjd2vns66wnhl8v1n9rbgabyjw0v832m2pwizzmj";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         amqp base bytestring connection containers data-default-class
-         directory hinotify magic network process text time tls unix
-         utf8-string x509-system
-       ];
-       description = "AMQP toolset for the command line";
-       license = lib.licenses.gpl3;
-     }) {};
-
-  "amqp-utils_0_4_5_0" = callPackage
-    ({ mkDerivation, amqp, base, bytestring, connection, containers
-     , data-default-class, directory, hinotify, magic, network, process
-     , text, time, tls, unix, utf8-string, x509-system
-     }:
-     mkDerivation {
-       pname = "amqp-utils";
-       version = "0.4.5.0";
-       sha256 = "0iwjgsai5bxfwqjlqcvykihd3zfj7wivx83sb07rqykjxqyhhsk9";
+       version = "0.6.1.0";
+       sha256 = "0h0mjgaiyhhx8y6zd3zxm1jzd0vgc6crq3980l5cal0zv6vs9zc1";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -29632,8 +29815,7 @@ self: {
          utf8-string x509-system
        ];
        description = "AMQP toolset for the command line";
-       license = lib.licenses.gpl3;
-       hydraPlatforms = lib.platforms.none;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "amqp-worker" = callPackage
@@ -29760,7 +29942,7 @@ self: {
          system-fileio system-filepath text
        ];
        description = "Simple literate programming preprocessor";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "anansi-hscolour" = callPackage
@@ -29775,7 +29957,7 @@ self: {
          anansi base bytestring containers hscolour monads-tf text
        ];
        description = "Colorized looms for Anansi";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "anansi-pandoc" = callPackage
@@ -29790,7 +29972,7 @@ self: {
          anansi base bytestring containers monads-tf pandoc text
        ];
        description = "Looms which use Pandoc to parse and produce a variety of formats";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -29831,7 +30013,7 @@ self: {
        sha256 = "1wn0kap7bw6sp9yi1awcmxh11s5ra4b44qbf97plsvrmpfz15cc5";
        libraryHaskellDepends = [ base process ];
        description = "Android methods exposed to Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -29931,7 +30113,7 @@ self: {
        ];
        benchmarkHaskellDepends = [ base criterion ];
        description = "A small, general-purpose programming language";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -29965,7 +30147,7 @@ self: {
        ];
        testHaskellDepends = [ ansi-terminal-game base hspec parsec ];
        description = "text-file based ASCII animator";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -30214,19 +30396,6 @@ self: {
     ({ mkDerivation, base, colour }:
      mkDerivation {
        pname = "ansi-terminal";
-       version = "0.10.3";
-       sha256 = "0z5m6ljmdyjyzq0s08rjjdzdj1ry4fz2ni7xlxd86addvwr2wbps";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base colour ];
-       description = "Simple ANSI terminal support, with Windows compatibility";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "ansi-terminal_0_11" = callPackage
-    ({ mkDerivation, base, colour }:
-     mkDerivation {
-       pname = "ansi-terminal";
        version = "0.11";
        sha256 = "14rp62c7y79n9dmmi7m0l9n3mcq6dh331b4yyyrivm5da6g1nqf6";
        isLibrary = true;
@@ -30234,7 +30403,6 @@ self: {
        libraryHaskellDepends = [ base colour ];
        description = "Simple ANSI terminal support, with Windows compatibility";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ansi-terminal-game" = callPackage
@@ -30259,7 +30427,7 @@ self: {
          unidecode
        ];
        description = "sdl-like functions for terminal applications, based on ansi-terminal";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -30317,7 +30485,7 @@ self: {
          time time-locale-compat yesod yesod-auth
        ];
        description = "A web interface to Antisplice dungeons";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -30368,7 +30536,7 @@ self: {
          ironforge mtl network plugins time transformers
        ];
        description = "This is an IRC bot for Mafia and Resistance";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -30735,7 +30903,7 @@ self: {
          transformers
        ];
        description = "An engine for text-based dungeons";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -31032,7 +31200,7 @@ self: {
          xdg-basedir
        ];
        description = "Server and community browser for the game Tremulous";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -31192,34 +31360,34 @@ self: {
 
   "api-tools" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, alex, array, attoparsec, base
-     , base16-bytestring, base64-bytestring, bytestring, Cabal
-     , case-insensitive, cborg, containers, deepseq, happy, lens
-     , QuickCheck, regex-compat-tdfa, safe, safecopy, scientific
+     , base16-bytestring, base64-bytestring, bytestring
+     , case-insensitive, cborg, containers, criterion, deepseq, happy
+     , lens, QuickCheck, regex-compat-tdfa, safe, safecopy, scientific
      , serialise, tasty, tasty-hunit, tasty-quickcheck, template-haskell
      , text, time, unordered-containers, vector
      }:
      mkDerivation {
        pname = "api-tools";
-       version = "0.8.0.2";
-       sha256 = "0q10vqaf4y3zwa2nrwllxi8ac8ch6jjr4r3s5g6gy51bp04ggzv9";
+       version = "0.9.0.0";
+       sha256 = "04496r4l598i2m14gj1wpz8a976as0gkbw0745h85ap8hy23vfjx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty array attoparsec base base16-bytestring
-         base64-bytestring bytestring Cabal case-insensitive cborg
-         containers deepseq lens QuickCheck regex-compat-tdfa safe safecopy
-         scientific serialise template-haskell text time
-         unordered-containers vector
+         base64-bytestring bytestring case-insensitive cborg containers
+         deepseq lens QuickCheck regex-compat-tdfa safe safecopy scientific
+         serialise template-haskell text time unordered-containers vector
        ];
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [
          aeson aeson-pretty base bytestring deepseq QuickCheck serialise
        ];
        testHaskellDepends = [
-         aeson aeson-pretty base base64-bytestring bytestring Cabal cborg
+         aeson aeson-pretty base base64-bytestring bytestring cborg
          containers QuickCheck safecopy serialise tasty tasty-hunit
          tasty-quickcheck template-haskell text time unordered-containers
        ];
+       benchmarkHaskellDepends = [ base criterion text time ];
        description = "DSL for generating API boilerplate and docs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -31588,6 +31756,8 @@ self: {
        ];
        description = "Apple Push Notification service HTTP/2 integration";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "apotiki" = callPackage
@@ -31760,7 +31930,7 @@ self: {
          base mtl QuickCheck test-framework test-framework-quickcheck2
        ];
        description = "An applicative parser combinator library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -31805,8 +31975,8 @@ self: {
      }:
      mkDerivation {
        pname = "apply-refact";
-       version = "0.9.0.0";
-       sha256 = "1w6andxlap50vi2cwdy7x5xp2q1qyd67g4vs860gddcv8nir69qc";
+       version = "0.9.2.0";
+       sha256 = "1j0afdl6g51wyb3g47wss15v0yl50n23k3icbyla8h89rxh74lcx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -31828,6 +31998,36 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "apply-unordered" = callPackage
+    ({ mkDerivation, base, fin, ghc, ghc-tcplugins-extra, hspec
+     , should-not-typecheck, syb
+     }:
+     mkDerivation {
+       pname = "apply-unordered";
+       version = "1.0";
+       sha256 = "0ajvml2kndhpkcjlcb2a2aaxfi45rlbjq8brd1j9k66xymjkxigp";
+       libraryHaskellDepends = [ base fin ghc ghc-tcplugins-extra syb ];
+       testHaskellDepends = [
+         base fin ghc ghc-tcplugins-extra hspec should-not-typecheck syb
+       ];
+       description = "Apply a function to an argument specified by a type level Nat";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "apply-unordered-mono" = callPackage
+    ({ mkDerivation, base, hspec, should-not-typecheck }:
+     mkDerivation {
+       pname = "apply-unordered-mono";
+       version = "1.0";
+       sha256 = "1wpla9alhi0srhhy1vxv0dk5hgd0gnwwbwczm6a70w9gga3nms7z";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec should-not-typecheck ];
+       description = "Apply functions to arguments in an unordered type-directed fashion";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "apportionment" = callPackage
     ({ mkDerivation, base, containers, utility-ht }:
      mkDerivation {
@@ -31874,10 +32074,10 @@ self: {
      }:
      mkDerivation {
        pname = "approx";
-       version = "0.1.0.0";
-       sha256 = "1vc6k0w4zr355gfvprb5syh5jpmkdvp6wjibi4l95q9zwwdwhjn2";
+       version = "0.1.0.1";
+       sha256 = "0vzi0ai7lf7ji2lbf9v412fvrins7acy0dqs4j8ylfd1chck1w99";
        revision = "1";
-       editedCabalFile = "0k34bjsazp4wbv7zzmvh5vnqv7yzyq20h99q30mcrn4g2bvpc0q1";
+       editedCabalFile = "0kj9qqfv8fzg5b6l33avflxjlmd52wjsjridff1d5n071dnif37y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -31890,7 +32090,7 @@ self: {
          base containers hashable QuickCheck text time unordered-containers
          vector
        ];
-       description = "Easy-to-use reasonable way of emulating approximate in Haskell";
+       description = "Easy-to-use emulation of approximate, ranges and tolerances in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -31928,23 +32128,18 @@ self: {
      }) {};
 
   "approximate" = callPackage
-    ({ mkDerivation, base, binary, bytes, Cabal, cabal-doctest, cereal
-     , comonad, deepseq, directory, doctest, filepath, ghc-prim
-     , hashable, lens, log-domain, pointed, safecopy, semigroupoids
-     , semigroups, simple-reflect, vector
+    ({ mkDerivation, base, binary, bytes, cereal, comonad, deepseq
+     , ghc-prim, hashable, lens, log-domain, pointed, safecopy
+     , semigroupoids, semigroups, vector
      }:
      mkDerivation {
        pname = "approximate";
-       version = "0.3.2";
-       sha256 = "016i37c5imb0n8gsk7gzyiq8dhkjv0xnn5315kmn6lnrhpfm7yyk";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.3.4";
+       sha256 = "06akbrmy66nkgnnk3x87jss9qgv5y9m638rvxy57mfzibf925kbd";
        libraryHaskellDepends = [
          base binary bytes cereal comonad deepseq ghc-prim hashable lens
          log-domain pointed safecopy semigroupoids semigroups vector
        ];
-       testHaskellDepends = [
-         base directory doctest filepath semigroups simple-reflect
-       ];
        description = "Approximate discrete values and numbers";
        license = lib.licenses.bsd3;
      }) {};
@@ -32104,6 +32299,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Simple logging library";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "arbor-monad-metric" = callPackage
@@ -32174,6 +32371,8 @@ self: {
        ];
        description = "Convenience types and functions for postgresql-simple";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "arbtt" = callPackage
@@ -32186,8 +32385,8 @@ self: {
      }:
      mkDerivation {
        pname = "arbtt";
-       version = "0.10.4";
-       sha256 = "18lpwhkhw0nxzif9dyc29b9s8i0v26y9vdgh0laj3z9yyp805syc";
+       version = "0.11";
+       sha256 = "1jxsmwi7nqgmhnx1hv7y1hcff4gpi3zsg3lrzkq3y8dj2pz29whw";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -32202,7 +32401,7 @@ self: {
          transformers unix utf8-string
        ];
        description = "Automatic Rule-Based Time Tracker";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "arcgrid" = callPackage
@@ -32245,8 +32444,8 @@ self: {
      }:
      mkDerivation {
        pname = "arch-hs";
-       version = "0.7.0.0";
-       sha256 = "0nlsxlqmjg0nw9dgd3l8s1zphzcwrbcvmv30s5y5xbfm06zc5wc7";
+       version = "0.8.0.0";
+       sha256 = "1g33ss6jvvpdgpcl0kwmbvnkawq8cngphjmsbv0jcpnh17brgf8x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -32292,6 +32491,8 @@ self: {
        ];
        description = "Arch Linux official and AUR web interface binding";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "archive" = callPackage
@@ -32537,7 +32738,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base directory wx ];
        description = "An interpreter for the Argh! programming language in wxHaskell";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -32618,7 +32819,7 @@ self: {
          base bimap containers glib gtk HDBC indents mtl parsec
        ];
        description = "A computer assisted argumentation transcription and editing software";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -32958,8 +33159,8 @@ self: {
      }:
      mkDerivation {
        pname = "array-chunks";
-       version = "0.1.2.0";
-       sha256 = "0x2hkc587ki4ncpsdrhby04dr4gxvf0v5qj5kda7kfl2814srixi";
+       version = "0.1.3.0";
+       sha256 = "0alf0d4ifla7i47pl7xqmrhcwsky56rp4b76qgmh19kji8mfcq5z";
        libraryHaskellDepends = [ base primitive run-st ];
        testHaskellDepends = [
          base primitive QuickCheck quickcheck-classes tasty tasty-hunit
@@ -32993,7 +33194,7 @@ self: {
          test-framework-quickcheck2 test-framework-th
        ];
        description = "A simple interpreter for arrayForth, the language used on GreenArrays chips";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -33301,23 +33502,6 @@ self: {
      }:
      mkDerivation {
        pname = "ascii";
-       version = "1.0.1.2";
-       sha256 = "051q0gamgvgd4j1bzqxww7qy4syx21s0vqhfihwlb2ypxf2s2fqa";
-       libraryHaskellDepends = [
-         ascii-case ascii-char ascii-group ascii-predicates ascii-superset
-         ascii-th base bytestring data-ascii text
-       ];
-       description = "The ASCII character set and encoding";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "ascii_1_0_1_4" = callPackage
-    ({ mkDerivation, ascii-case, ascii-char, ascii-group
-     , ascii-predicates, ascii-superset, ascii-th, base, bytestring
-     , data-ascii, text
-     }:
-     mkDerivation {
-       pname = "ascii";
        version = "1.0.1.4";
        sha256 = "0j0cx91q4kmljv2fnfa1cllmyyk2wr6vg373bdfq0cx79d6542hw";
        libraryHaskellDepends = [
@@ -33326,7 +33510,6 @@ self: {
        ];
        description = "The ASCII character set and encoding";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ascii-art-to-unicode" = callPackage
@@ -33348,46 +33531,22 @@ self: {
     ({ mkDerivation, ascii-char, base, hashable }:
      mkDerivation {
        pname = "ascii-case";
-       version = "1.0.0.2";
-       sha256 = "1qs1rccslixsg4szgp7y98sqhhn0asp9qmk9vfrwdjfipmf3z72p";
-       libraryHaskellDepends = [ ascii-char base hashable ];
-       description = "ASCII letter case";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "ascii-case_1_0_0_4" = callPackage
-    ({ mkDerivation, ascii-char, base, hashable }:
-     mkDerivation {
-       pname = "ascii-case";
        version = "1.0.0.4";
        sha256 = "1485y33as83f1iprdq7hl6ar7gha85678ajq80jld06wsmi9k0xa";
        libraryHaskellDepends = [ ascii-char base hashable ];
        description = "ASCII letter case";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ascii-char" = callPackage
     ({ mkDerivation, base, hashable }:
      mkDerivation {
        pname = "ascii-char";
-       version = "1.0.0.6";
-       sha256 = "049xccazgjb1zzqbzpgcw77hsl5j3j8l7f0268wxjy87il3wfnx3";
-       libraryHaskellDepends = [ base hashable ];
-       description = "A Char type representing an ASCII character";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "ascii-char_1_0_0_8" = callPackage
-    ({ mkDerivation, base, hashable }:
-     mkDerivation {
-       pname = "ascii-char";
        version = "1.0.0.8";
        sha256 = "1ajpkzq1d04ww5yif7dl4np5zhhm5ks8wxhmfdl8ygy8r7akg50d";
        libraryHaskellDepends = [ base hashable ];
        description = "A Char type representing an ASCII character";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ascii-cows" = callPackage
@@ -33421,23 +33580,11 @@ self: {
     ({ mkDerivation, ascii-char, base, hashable }:
      mkDerivation {
        pname = "ascii-group";
-       version = "1.0.0.2";
-       sha256 = "19l50ksqa7jdsl0pmrmy8q8jbgmb1j3hr63jjzys220f0agsgcwr";
-       libraryHaskellDepends = [ ascii-char base hashable ];
-       description = "ASCII character groups";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "ascii-group_1_0_0_4" = callPackage
-    ({ mkDerivation, ascii-char, base, hashable }:
-     mkDerivation {
-       pname = "ascii-group";
        version = "1.0.0.4";
        sha256 = "0h1y0dmly3yammmqwa197nf3g83x03r5jlnsv9z9zxm9bin38ac5";
        libraryHaskellDepends = [ ascii-char base hashable ];
        description = "ASCII character groups";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ascii-holidays" = callPackage
@@ -33452,30 +33599,18 @@ self: {
          base random random-shuffle terminfo time
        ];
        description = "ASCII animations for the holidays!";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "ascii-predicates" = callPackage
     ({ mkDerivation, ascii-char, base }:
      mkDerivation {
        pname = "ascii-predicates";
-       version = "1.0.0.2";
-       sha256 = "0dzrxqhq7vqplg4aanc4kindwpizv3d777ri81sj1m1zn3vzvrrq";
-       libraryHaskellDepends = [ ascii-char base ];
-       description = "Various categorizations of ASCII characters";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "ascii-predicates_1_0_0_4" = callPackage
-    ({ mkDerivation, ascii-char, base }:
-     mkDerivation {
-       pname = "ascii-predicates";
        version = "1.0.0.4";
        sha256 = "0c2331y1izxw7n33pfxfb7krz4lgdf87244xlnf03x8npckb7kgq";
        libraryHaskellDepends = [ ascii-char base ];
        description = "Various categorizations of ASCII characters";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ascii-progress" = callPackage
@@ -33526,19 +33661,6 @@ self: {
     ({ mkDerivation, ascii-char, base, bytestring, hashable, text }:
      mkDerivation {
        pname = "ascii-superset";
-       version = "1.0.1.2";
-       sha256 = "0hx5kh6h239hqrnqyda55769jfbxjxcr4mihya1djl7ls1fy493v";
-       libraryHaskellDepends = [
-         ascii-char base bytestring hashable text
-       ];
-       description = "Representing ASCII with refined supersets";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "ascii-superset_1_0_1_4" = callPackage
-    ({ mkDerivation, ascii-char, base, bytestring, hashable, text }:
-     mkDerivation {
-       pname = "ascii-superset";
        version = "1.0.1.4";
        sha256 = "1bjkinz2p8lq4grnj5d9q1z9jsn4b8cgkqsnxjhzb3plz94i5mxk";
        libraryHaskellDepends = [
@@ -33546,7 +33668,6 @@ self: {
        ];
        description = "Representing ASCII with refined supersets";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ascii-table" = callPackage
@@ -33572,20 +33693,6 @@ self: {
      }:
      mkDerivation {
        pname = "ascii-th";
-       version = "1.0.0.2";
-       sha256 = "1dmr2g4kx14qad62awk4pv3izx5gm8bmzvs03gn3xrbzssjb8pvc";
-       libraryHaskellDepends = [
-         ascii-char ascii-superset base template-haskell
-       ];
-       description = "Template Haskell support for ASCII";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "ascii-th_1_0_0_4" = callPackage
-    ({ mkDerivation, ascii-char, ascii-superset, base, template-haskell
-     }:
-     mkDerivation {
-       pname = "ascii-th";
        version = "1.0.0.4";
        sha256 = "08vfy2gp0ppa3l95gjqrbqca3gn2aln7zvw7qpp6x7jnzjkl8dn1";
        libraryHaskellDepends = [
@@ -33593,7 +33700,6 @@ self: {
        ];
        description = "Template Haskell support for ASCII";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ascii-vector-avc" = callPackage
@@ -33615,7 +33721,7 @@ self: {
          split zlib
        ];
        description = "Process Ascii Vectors for Advantest 93k";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -33657,6 +33763,8 @@ self: {
        pname = "asciidiagram";
        version = "1.3.3.3";
        sha256 = "09k1kdaa0xi2fx9vfdlv2w2nxx5x1vnlkz7gp8s998a325w1x7q1";
+       revision = "1";
+       editedCabalFile = "1j7p9smyfmkayx6n7inssxcg9cr4zdm6329fpvba7504b96aprdk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -33816,8 +33924,8 @@ self: {
        pname = "asn1-encoding";
        version = "0.9.6";
        sha256 = "02nsr30h5yic1mk7znf0q4z3n560ip017n60hg7ya25rsfmxxy6r";
-       revision = "1";
-       editedCabalFile = "19nq8g1v323p47cqlc4m9r6li35dd3cmcd7k486jw24cijkdjm9n";
+       revision = "2";
+       editedCabalFile = "16503ryhq15f2rfdav2qnkq11dg2r3vk3f9v64q9dmxf8dh8zv97";
        libraryHaskellDepends = [ asn1-types base bytestring hourglass ];
        testHaskellDepends = [
          asn1-types base bytestring hourglass mtl tasty tasty-quickcheck
@@ -33924,6 +34032,34 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "assert4hs" = callPackage
+    ({ mkDerivation, base, data-default, pretty-diff, tasty, text }:
+     mkDerivation {
+       pname = "assert4hs";
+       version = "0.0.0.1";
+       sha256 = "141ic9k4v5qqx64ksy925ksscs2dyixqp3bpxk9rfz6m2mam5091";
+       libraryHaskellDepends = [ base data-default pretty-diff text ];
+       testHaskellDepends = [ base data-default pretty-diff tasty text ];
+       description = "A set of assertion for writing more readable tests cases";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "assert4hs-tasty" = callPackage
+    ({ mkDerivation, assert4hs, base, tasty }:
+     mkDerivation {
+       pname = "assert4hs-tasty";
+       version = "0.0.0.1";
+       sha256 = "1gdbd52laywmnyiprg4igf1hwgqna317l04n774388hsfss8gv7p";
+       libraryHaskellDepends = [ assert4hs base tasty ];
+       testHaskellDepends = [ assert4hs base tasty ];
+       description = "Provider for tasty runner to run assert4hs tests";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "assertions" = callPackage
     ({ mkDerivation, ansi-terminal, base, containers, interpolate
      , process
@@ -33992,6 +34128,8 @@ self: {
        pname = "assoc";
        version = "1.0.2";
        sha256 = "0kqlizznjy94fm8zr1ng633yxbinjff7cnsiaqs7m33ix338v66q";
+       revision = "1";
+       editedCabalFile = "17ycclzwnysca80frsyyb6sdd2r5p83lkgwxjjnjg6j62pvf8958";
        libraryHaskellDepends = [ base bifunctors tagged ];
        description = "swap and assoc: Symmetric and Semigroupy Bifunctors";
        license = lib.licenses.bsd3;
@@ -34208,10 +34346,8 @@ self: {
      }:
      mkDerivation {
        pname = "async";
-       version = "2.2.2";
-       sha256 = "1zxvfcyy4sg8lmzphi5dgnavksj5pav6rbvd5kc48lf4hanb2jjb";
-       revision = "1";
-       editedCabalFile = "1kg9xmby0wkx31998h2r43yr8bl1aixk6025zqigz9vdhmkc2y51";
+       version = "2.2.3";
+       sha256 = "0p4k6872pj0aykbnc19ilam1h8fgskxlwpyg5qisaivr0fhg6yj6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base hashable stm ];
@@ -34435,7 +34571,7 @@ self: {
        editedCabalFile = "0vh6k6397f3y03y28shx0gf0lvdlb6pdcdhd1j8r1svhjbyphfdp";
        libraryHaskellDepends = [ array base containers ghc-prim ];
        description = "serialisation for Haskell values with sharing support";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "aterm-utils" = callPackage
@@ -34467,6 +34603,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "atlas" = callPackage
+    ({ mkDerivation, base, containers, data-default, hspec, inline-c
+     , lens, primitive, template-haskell, transformers
+     }:
+     mkDerivation {
+       pname = "atlas";
+       version = "0";
+       sha256 = "0g98waw84hrhzpky73p1dy4mfc06vf665xfn6f2f9xv2jnxi0rgw";
+       libraryHaskellDepends = [
+         base containers data-default inline-c lens primitive
+         template-haskell transformers
+       ];
+       testHaskellDepends = [ base hspec primitive transformers ];
+       description = "Skyline rectangle packing";
+       license = "(BSD-2-Clause OR Apache-2.0)";
+     }) {};
+
   "atlassian-connect-core" = callPackage
     ({ mkDerivation, aeson, atlassian-connect-descriptor, base
      , base64-bytestring, bytestring, case-insensitive, cipher-aes
@@ -34501,8 +34654,8 @@ self: {
      }:
      mkDerivation {
        pname = "atlassian-connect-descriptor";
-       version = "0.4.10.0";
-       sha256 = "0nixj6cv367b6a2xa0pf37z6fcmrnwmngc27ps9qy85hc4nnl3cy";
+       version = "0.4.12.0";
+       sha256 = "0l8912w6iscnv3q32kd7jfnymg7gnrjpx4jrn4bxggv8bdls7raa";
        libraryHaskellDepends = [
          aeson base cases network network-uri text time-units
          unordered-containers
@@ -35004,12 +35157,12 @@ self: {
      }:
      mkDerivation {
        pname = "attoparsec";
-       version = "0.13.2.4";
-       sha256 = "1cpgxc17lh4lnpblb3cimpq4ka23bf89q6yvd0jwk7klw5nwsrms";
+       version = "0.13.2.5";
+       sha256 = "0vv88m5m7ynjrg114psp4j4s69f1a5va3bvn293vymqrma7g7q11";
        revision = "1";
-       editedCabalFile = "0jlipzz2b1jb8yw22rvnhvbnadzcdf3wkwn4svl3j4m6858s0har";
+       editedCabalFile = "180r53j8z1p6z2l63qmhqyl1h27l5j3vrhanwfmwchrj7xf1k23w";
        libraryHaskellDepends = [
-         array base bytestring containers deepseq scientific text
+         array base bytestring containers deepseq ghc-prim scientific text
          transformers
        ];
        testHaskellDepends = [
@@ -35025,7 +35178,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "attoparsec_0_13_2_5" = callPackage
+  "attoparsec_0_14_1" = callPackage
     ({ mkDerivation, array, base, bytestring, case-insensitive
      , containers, criterion, deepseq, directory, filepath, ghc-prim
      , http-types, parsec, QuickCheck, quickcheck-unicode, scientific
@@ -35034,8 +35187,8 @@ self: {
      }:
      mkDerivation {
        pname = "attoparsec";
-       version = "0.13.2.5";
-       sha256 = "0vv88m5m7ynjrg114psp4j4s69f1a5va3bvn293vymqrma7g7q11";
+       version = "0.14.1";
+       sha256 = "1cr9mlv4ppba31khpgripasy6zk1g353yf1fq1vzja0cv60qy3w7";
        libraryHaskellDepends = [
          array base bytestring containers deepseq ghc-prim scientific text
          transformers
@@ -35062,7 +35215,7 @@ self: {
        sha256 = "1jf9065pqmdfshkd0cqiamhivs9an4slqx82n7yj0kkhdxw5lyq4";
        libraryHaskellDepends = [ attoparsec base bytestring ];
        description = "An ARFF file parser using Attoparsec";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "attoparsec-base64" = callPackage
@@ -35148,6 +35301,8 @@ self: {
        pname = "attoparsec-expr";
        version = "0.1.1.2";
        sha256 = "0z25pc3rq98ysk92jclr90n35982a566sxri51yh1s9c24vd8k4d";
+       revision = "1";
+       editedCabalFile = "1cpgzd24fvrpsly113ck8rhrc33pfw8qhfpk4wn85qj95763faqb";
        libraryHaskellDepends = [ attoparsec base ];
        description = "Port of parsec's expression parser to attoparsec";
        license = lib.licenses.bsd3;
@@ -35179,6 +35334,8 @@ self: {
        pname = "attoparsec-iso8601";
        version = "1.0.2.0";
        sha256 = "162gc101mwhmjbfhhv1wm3yvk2h4ra34wpw5x87735cfqxvjv582";
+       revision = "1";
+       editedCabalFile = "1c43ynmjfljp3nsp67521nrnb0d4vzwr33dfqf15xh02gifcf9ma";
        libraryHaskellDepends = [
          attoparsec base base-compat-batteries text time time-compat
        ];
@@ -35327,7 +35484,7 @@ self: {
          QuickCheck
        ];
        description = "Variable-length integer decoding for Attoparsec";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "attosplit" = callPackage
@@ -35451,10 +35608,8 @@ self: {
      }:
      mkDerivation {
        pname = "aur";
-       version = "7.0.5";
-       sha256 = "16c4q0w6qpn4gg6xlggkcs92fcvm58a3qmykfm1dgcfsjhwwhxkx";
-       revision = "1";
-       editedCabalFile = "10p4qyfv2ha3s8dli6v9yzzx4pj5r1cfxcy0gcf0rgbxsszi2315";
+       version = "7.0.6";
+       sha256 = "0rq2gyhg5c7xwj7w582l99al8jhsacv3vl77p1mfzcc79h424jdy";
        libraryHaskellDepends = [
          aeson base bytestring hashable http-client http-types text
        ];
@@ -35495,10 +35650,8 @@ self: {
      }:
      mkDerivation {
        pname = "aura";
-       version = "3.2.2";
-       sha256 = "07ska8w2k3sl084aadjclw8v0ykrp8hiwhim5zd6wd7q95njyk2f";
-       revision = "2";
-       editedCabalFile = "1m138p8rllm42gpqj10z3jvdlcz9f0v4is4ygdxi7yxn9xmy15x9";
+       version = "3.2.4";
+       sha256 = "0d3v3kpy4acd7pyysy5dw25b4154v7jwgydipmrczfxicrf02aa0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -35692,7 +35845,7 @@ self: {
          base bytestring colour ghc-prim gloss JuicyPixels random vector
        ];
        description = "Generates and displays patterns from next nearest neighbors cellular automata";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -35888,8 +36041,8 @@ self: {
        pname = "avers";
        version = "0.0.17.1";
        sha256 = "1x96fvx0z7z75c39qcggw70qvqnw7kzjf0qqxb3jwg3b0fmdhi8v";
-       revision = "39";
-       editedCabalFile = "1y77mk83yap8yx5wlybpr06wwy3qvmq0svqc4c6dfyvjd9wjvsdv";
+       revision = "40";
+       editedCabalFile = "0wsr91a87kikvibl18knwkglawl9m96scdyd539zpgh6djbzmsqf";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring clock containers cryptonite
          filepath inflections memory MonadRandom mtl network network-uri
@@ -35907,7 +36060,7 @@ self: {
          rethinkdb-client-driver text
        ];
        description = "Server-side implementation of the Avers storage model";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -35975,29 +36128,59 @@ self: {
   "aviation-cessna172-diagrams" = callPackage
     ({ mkDerivation, aviation-cessna172-weight-balance, aviation-units
      , aviation-weight-balance, base, colour, diagrams-cairo
-     , diagrams-core, diagrams-lib, directory, doctest, filepath
-     , hgeometry, lens, mtl, parsec, plots, QuickCheck, quickcheck-text
-     , template-haskell
+     , diagrams-core, diagrams-lib, hgeometry, hgeometry-combinatorial
+     , lens, mtl, plots
      }:
      mkDerivation {
        pname = "aviation-cessna172-diagrams";
-       version = "0.0.2";
-       sha256 = "05z4z953x16d3flvvh9x1q1cskm0ff802jg1digjhg5n0rqmd7fa";
+       version = "0.0.3";
+       sha256 = "1hkb32dsxqrhk788vkb669n9kkan951m4slk2x77zmf52cmk8ljw";
        libraryHaskellDepends = [
          aviation-cessna172-weight-balance aviation-units
          aviation-weight-balance base colour diagrams-cairo diagrams-core
-         diagrams-lib hgeometry lens mtl plots
-       ];
-       testHaskellDepends = [
-         base directory doctest filepath parsec QuickCheck quickcheck-text
-         template-haskell
+         diagrams-lib hgeometry hgeometry-combinatorial lens mtl plots
        ];
        description = "Diagrams for the Cessna 172 aircraft in aviation";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {aviation-cessna172-weight-balance = null; 
-         aviation-units = null; aviation-weight-balance = null;};
+     }) {};
+
+  "aviation-cessna172-weight-balance" = callPackage
+    ({ mkDerivation, aviation-units, aviation-weight-balance, base
+     , lens
+     }:
+     mkDerivation {
+       pname = "aviation-cessna172-weight-balance";
+       version = "0.0.2";
+       sha256 = "1lnj3dr7jkc3c3rvg6knwapjvk7cnxf3901df4xn7mqwg996sdgj";
+       libraryHaskellDepends = [
+         aviation-units aviation-weight-balance base lens
+       ];
+       description = "Weight and Balance for the Cessna 172 aircraft in aviation";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "aviation-units" = callPackage
+    ({ mkDerivation, base, lens }:
+     mkDerivation {
+       pname = "aviation-units";
+       version = "0.0.3";
+       sha256 = "1161mjw9vr7wl0isakw786xds9ajs5r8gx91rsyxn0nb9zvafdr1";
+       libraryHaskellDepends = [ base lens ];
+       description = "Units of measurements used in aviation";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "aviation-weight-balance" = callPackage
+    ({ mkDerivation, aviation-units, base, lens }:
+     mkDerivation {
+       pname = "aviation-weight-balance";
+       version = "0.0.3";
+       sha256 = "1jl51pxhll513zyvhnmahvhidx2rd6vll1in6xdqrdh9rn0q8baw";
+       libraryHaskellDepends = [ aviation-units base lens ];
+       description = "Weight and Balance structures used in aviation";
+       license = lib.licenses.bsd3;
+     }) {};
 
   "avl-static" = callPackage
     ({ mkDerivation, base, QuickCheck, test-framework
@@ -36044,6 +36227,8 @@ self: {
        pname = "avro";
        version = "0.5.2.0";
        sha256 = "1apvqny4dikx5b7yqxs8a4hsxipl5xvz2i3c5bna1faiagxav1i1";
+       revision = "1";
+       editedCabalFile = "0081mnhn26824rbdsz1n74i9m21yfkh6y4g3v7ksh933dxagyiij";
        libraryHaskellDepends = [
          aeson array base base16-bytestring bifunctors binary bytestring
          containers data-binary-ieee754 deepseq fail HasBigDecimal hashable
@@ -36130,7 +36315,7 @@ self: {
        sha256 = "0mvfirb41jnjvq4mpky0xpdrh238hjwslfqg82ksnam001sxnpng";
        libraryHaskellDepends = [ base ];
        description = "A prelude which I can be happy with. Based on base-prelude.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -36147,7 +36332,7 @@ self: {
          aeson attoparsec awesomium-raw base containers text vector
        ];
        description = "High-level Awesomium bindings";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -36160,7 +36345,7 @@ self: {
        sha256 = "175hgqix2j26579g0rrryl86w7qvla95nvf4lwfxsxxwqgcq3zpd";
        libraryHaskellDepends = [ awesomium awesomium-raw base GLUT ];
        description = "Utilities for using Awesomium with GLUT";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -36175,7 +36360,7 @@ self: {
        librarySystemDepends = [ awesomium ];
        libraryToolDepends = [ c2hs ];
        description = "Low-level Awesomium bindings";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {awesomium = null;};
@@ -36568,18 +36753,19 @@ self: {
      }) {};
 
   "aws-lambda-haskell-runtime" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, case-insensitive, hspec
-     , http-client, http-types, path, path-io, safe-exceptions-checked
-     , template-haskell, text, unordered-containers
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive
+     , exceptions, hashable, hspec, http-client, http-types, mtl, path
+     , path-io, safe-exceptions-checked, template-haskell, text
+     , unordered-containers
      }:
      mkDerivation {
        pname = "aws-lambda-haskell-runtime";
-       version = "3.0.5";
-       sha256 = "07p0lz2hj17n97f2ps59axb4c6416g45m6wcd3hk7jybd6ja8qpr";
+       version = "4.1.0";
+       sha256 = "1zb426bj1k3b3sp5hlg0ajx19mf0vwvr39zdg6p9l9i830qfdjfw";
        libraryHaskellDepends = [
-         aeson base bytestring case-insensitive http-client http-types path
-         path-io safe-exceptions-checked template-haskell text
-         unordered-containers
+         aeson base bytestring case-insensitive exceptions hashable
+         http-client http-types mtl path path-io safe-exceptions-checked
+         template-haskell text unordered-containers
        ];
        testHaskellDepends = [ base hspec ];
        description = "Haskell runtime for AWS Lambda";
@@ -36593,8 +36779,8 @@ self: {
      }:
      mkDerivation {
        pname = "aws-lambda-haskell-runtime-wai";
-       version = "1.0.2";
-       sha256 = "0bjqrwl2kcnxv8yni2bxaz5x3pgs3j6c4rrgqpv5kfs7yn1ins7w";
+       version = "2.0.1";
+       sha256 = "13h0cxmxzr7bgma1ry1yj9dhqzqvh5sgzv6nqyvb0xy8n3gysbcn";
        libraryHaskellDepends = [
          aeson aws-lambda-haskell-runtime base binary bytestring
          case-insensitive http-types iproute network text
@@ -36621,6 +36807,8 @@ self: {
        pname = "aws-lambda-runtime";
        version = "0.0.0.1";
        sha256 = "1yzqqlgi7yb9b5imh6zfmwbc097bj7r0zi8mkk82c81cv5rcjy08";
+       revision = "1";
+       editedCabalFile = "0gmf698hlxcg241zshn7rl3c2yqkk668inz43xjvahjj4rzqrnjy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -36648,6 +36836,8 @@ self: {
        ];
        description = "Package Haskell functions for easy use on AWS Lambda";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "aws-mfa-credentials" = callPackage
@@ -37011,7 +37201,7 @@ self: {
          base Diff directory filepath hspec options process unix
        ];
        description = "A simple DevOps tool which will never \"reach\" enterprice level";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -37177,6 +37367,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion pipes ];
        description = "Immutable disk-based B* trees";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "b9" = callPackage
@@ -37232,7 +37424,7 @@ self: {
        librarySystemDepends = [ babl ];
        libraryPkgconfigDepends = [ babl ];
        description = "Haskell bindings to BABL library";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {inherit (pkgs) babl;};
 
   "babylon" = callPackage
@@ -37755,7 +37947,7 @@ self: {
        ];
        description = "Create status bar menus for macOS from executables";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "x86_64-darwin" ];
+       platforms = [ "x86_64-darwin" ];
      }) {};
 
   "barchart" = callPackage
@@ -37873,20 +38065,17 @@ self: {
        broken = true;
      }) {};
 
-  "base_4_14_1_0" = callPackage
-    ({ mkDerivation, ghc-prim, invalid-cabal-flag-settings, rts }:
+  "base_4_15_0_0" = callPackage
+    ({ mkDerivation, ghc-bignum, ghc-prim, rts }:
      mkDerivation {
        pname = "base";
-       version = "4.14.1.0";
-       sha256 = "15n0ya681yvfvccswcxxk855qv7wz886rmnabj0y6ah7mbf8aijs";
-       libraryHaskellDepends = [
-         ghc-prim invalid-cabal-flag-settings rts
-       ];
+       version = "4.15.0.0";
+       sha256 = "12s4v5w97vaxk66a1mgdgypv765j61lq2n2h4iiazirpggd73n3g";
+       libraryHaskellDepends = [ ghc-bignum ghc-prim rts ];
        description = "Basic libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {invalid-cabal-flag-settings = null;};
+     }) {};
 
   "base-compat" = callPackage
     ({ mkDerivation, base, unix }:
@@ -37943,6 +38132,8 @@ self: {
        ];
        description = "Binary-to-text encodings (e.g. base64)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "base-feature-macros" = callPackage
@@ -37980,7 +38171,7 @@ self: {
        sha256 = "0d0i8ndh2j42qf8ns9wprkjiffy3hyybgvs9nbf67yd50di6p263";
        libraryHaskellDepends = [ base ];
        description = "The IO functions included in base delimited into small, composable classes";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -38042,8 +38233,8 @@ self: {
        pname = "base16";
        version = "0.3.0.1";
        sha256 = "10id9h9mas4kb4kfiz7hhp2hhwnb9mh92pr327c53jqxi4hazgnd";
-       revision = "3";
-       editedCabalFile = "15r912hb0l92f2cajpq2b6ky4g5qwfmb502nfv1vrg02a1h25xb6";
+       revision = "4";
+       editedCabalFile = "05fpdw8qkdg7cfyfsnk5npcxqgjgasd8hi096nh6czj96xn4s1b6";
        libraryHaskellDepends = [
          base bytestring deepseq primitive text text-short
        ];
@@ -38057,9 +38248,11 @@ self: {
        ];
        description = "Fast RFC 4648-compliant Base16 encoding";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
-  "base16-bytestring" = callPackage
+  "base16-bytestring_0_1_1_7" = callPackage
     ({ mkDerivation, base, bytestring, ghc-prim }:
      mkDerivation {
        pname = "base16-bytestring";
@@ -38071,9 +38264,10 @@ self: {
        testHaskellDepends = [ base bytestring ];
        description = "Fast base16 (hex) encoding and decoding for ByteStrings";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "base16-bytestring_1_0_1_0" = callPackage
+  "base16-bytestring" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, HUnit
      , QuickCheck, test-framework, test-framework-hunit
      , test-framework-quickcheck2
@@ -38090,24 +38284,22 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
        description = "RFC 4648-compliant Base16 encodings for ByteStrings";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "base16-lens" = callPackage
-    ({ mkDerivation, base, base16, bytestring, Cabal, cabal-doctest
-     , doctest, lens, text, text-short
+    ({ mkDerivation, base, base16, bytestring, lens, text, text-short
      }:
      mkDerivation {
        pname = "base16-lens";
-       version = "0.1.3.0";
-       sha256 = "1612v5lj99szshz7vm3mr5p4xxcrga1xxcfm9q9zzpnyd5z5vkn2";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.1.3.2";
+       sha256 = "04qz8gm969vlaxsk1j3rlpqph74qjkfr3rkpfkkxrfmxih6cm2fj";
        libraryHaskellDepends = [
          base base16 bytestring lens text text-short
        ];
-       testHaskellDepends = [ base doctest lens ];
        description = "Optics for the Base16 library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "base32" = callPackage
@@ -38119,8 +38311,8 @@ self: {
        pname = "base32";
        version = "0.2.0.0";
        sha256 = "0xvilxcdcvz07f3qpad35whjd35c9ykicip2cdsd54ysxg71mwzm";
-       revision = "1";
-       editedCabalFile = "0vsc0fq4rihhx4hicfgy1xpfm1bbq4rnwgfs9qzgmwhslffqy2x5";
+       revision = "2";
+       editedCabalFile = "0chbgkq65mh6nc48a3hywcv7idfqgb3acv4b7gmz8m6szqq4mx95";
        libraryHaskellDepends = [
          base bytestring deepseq ghc-byteorder text text-short
        ];
@@ -38153,18 +38345,15 @@ self: {
      }) {};
 
   "base32-lens" = callPackage
-    ({ mkDerivation, base, base32, bytestring, Cabal, cabal-doctest
-     , doctest, lens, text
+    ({ mkDerivation, base, base32, bytestring, lens, text, text-short
      }:
      mkDerivation {
        pname = "base32-lens";
-       version = "0.1.0.0";
-       sha256 = "0yhaaz5y8cwyjcclmjw0hk31388z233041ycfpwm2a3f0vgpilvn";
-       revision = "1";
-       editedCabalFile = "1sj9dc2prfhbc3b7bvxmw6wfq0iql6dwvdx928z13rdc4vwj0nv0";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [ base base32 bytestring lens text ];
-       testHaskellDepends = [ base doctest lens ];
+       version = "0.1.1.1";
+       sha256 = "0wam29m7vz5srrj135wmsbmg9qqhsidnwfhbicy0vmx342ai8bs6";
+       libraryHaskellDepends = [
+         base base32 bytestring lens text text-short
+       ];
        description = "Optics for the Base32 library";
        license = lib.licenses.bsd3;
      }) {};
@@ -38286,6 +38475,8 @@ self: {
        pname = "base64";
        version = "0.4.2.3";
        sha256 = "1hdqswxhgjrg8akl5v99hbm02gkpagsbx4i7fxbzdys1k0bj3gxw";
+       revision = "1";
+       editedCabalFile = "10s7nw79q385f74x76rh8cy0dxfj7idzrj77ng9x32bf8h7jpa6q";
        libraryHaskellDepends = [
          base bytestring deepseq ghc-byteorder text text-short
        ];
@@ -38377,8 +38568,8 @@ self: {
        pname = "base64-bytestring-type";
        version = "1.0.1";
        sha256 = "03kq4rjj6by02rf3hg815jfdqpdk0xygm5f46r2pn8mb99yd01zn";
-       revision = "7";
-       editedCabalFile = "1vry5qh9w1adwyfrlx8x2772knwmdvxgq2nfzng7vybll2cqph4c";
+       revision = "8";
+       editedCabalFile = "196m1ylkl9d03iymld08fhfnfcdydzd824v7ffl67ijmfxcvzcyn";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring binary bytestring cereal
          deepseq hashable http-api-data QuickCheck serialise text
@@ -38413,16 +38604,15 @@ self: {
      }) {};
 
   "base64-lens" = callPackage
-    ({ mkDerivation, base, base64, bytestring, Cabal, cabal-doctest
-     , doctest, lens, text
+    ({ mkDerivation, base, base64, bytestring, lens, text, text-short
      }:
      mkDerivation {
        pname = "base64-lens";
-       version = "0.3.0";
-       sha256 = "0gs3cxmglz0hshi4m94zrlc6fix90cvbdmcv2v4j01zwsdg8gv81";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [ base base64 bytestring lens text ];
-       testHaskellDepends = [ base doctest lens ];
+       version = "0.3.1";
+       sha256 = "1iszvlc22h7crwqhcafy974l0l1rgxbcjf6lb5yxsvp6q66gzhrn";
+       libraryHaskellDepends = [
+         base base64 bytestring lens text text-short
+       ];
        description = "Optics for the Base64 library";
        license = lib.licenses.bsd3;
      }) {};
@@ -38466,8 +38656,8 @@ self: {
        pname = "basement";
        version = "0.0.11";
        sha256 = "0srlws74yiraqaapgcjd9p5d1fwb3zr9swcz74jpjm55fls2nn37";
-       revision = "2";
-       editedCabalFile = "1l95bzmn23cmx386hk3d3r0ykdaibh9rp489lcnba5g56kiy4hxg";
+       revision = "3";
+       editedCabalFile = "1indgsrk0yhkbqlxj39qqb5xqicwkmcliggb8wn87vgfswxpi1dn";
        libraryHaskellDepends = [ base ghc-prim ];
        description = "Foundation scrap box of array & string";
        license = lib.licenses.bsd3;
@@ -38897,7 +39087,7 @@ self: {
        libraryHaskellDepends = [ base parsec ];
        testHaskellDepends = [ base hspec parsec ];
        description = "Ability to read, write, and modify BBDB files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "bbi" = callPackage
@@ -38928,8 +39118,8 @@ self: {
      }:
      mkDerivation {
        pname = "bcp47";
-       version = "0.2.0.1";
-       sha256 = "1hrqszdzr15p45wbbnpdkairmqwz8giyb0gn727wgxflh75a84xr";
+       version = "0.2.0.3";
+       sha256 = "07gz8bflc3klw0370albaff8v9vlgyqgrc5lifl35vs2ia891fhn";
        libraryHaskellDepends = [
          aeson base containers country generic-arbitrary iso639 megaparsec
          QuickCheck text
@@ -39019,7 +39209,7 @@ self: {
          persistent-sqlite persistent-template resourcet text time unix
        ];
        description = "Tools for managing a content store of software packages";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) ostree;};
@@ -39057,7 +39247,7 @@ self: {
          string-conversions string-qq temporary text time wai warp
        ];
        description = "BDCS API Server";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) libgit2-glib;};
@@ -39492,7 +39682,7 @@ self: {
          utf8-string xhtml
        ];
        description = "Bein is a provenance and workflow management system for bioinformatics";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -39600,7 +39790,7 @@ self: {
        sha256 = "1zwk05lf76xcdbqrbaid3whmn04injrg7dnlji2v2i5li0pnpr3c";
        libraryHaskellDepends = [ base process random time ];
        description = "Test the time it takes to run a haskell function";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "benchpress" = callPackage
@@ -39914,6 +40104,8 @@ self: {
        ];
        description = "Implementation of the BGAPI serial protocol";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bgmax" = callPackage
@@ -40006,6 +40198,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "bidi-icu" = callPackage
+    ({ mkDerivation, base, containers, data-default, ghc-prim, hspec
+     , icu-uc, inline-c, primitive, tasty, tasty-hspec, template-haskell
+     , text, transformers, vector
+     }:
+     mkDerivation {
+       pname = "bidi-icu";
+       version = "0";
+       sha256 = "000z286nmqvxjx55dxxfrz2pxjdjnwcbpjm7a7wlm5ng70704bpj";
+       libraryHaskellDepends = [
+         base containers data-default ghc-prim inline-c primitive
+         template-haskell text transformers vector
+       ];
+       libraryPkgconfigDepends = [ icu-uc ];
+       testHaskellDepends = [
+         base data-default ghc-prim hspec primitive tasty tasty-hspec text
+         vector
+       ];
+       description = "The unicode bidirectional algorithm via ICU";
+       license = "(BSD-2-Clause OR Apache-2.0)";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {icu-uc = null;};
+
   "bidirectional" = callPackage
     ({ mkDerivation, base, hedgehog, mtl, profunctors }:
      mkDerivation {
@@ -40132,7 +40348,7 @@ self: {
          uu-parsinglib
        ];
        description = "A parser for the Billboard chord dataset";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -40299,10 +40515,8 @@ self: {
     ({ mkDerivation, base, dec, deepseq, fin, hashable, QuickCheck }:
      mkDerivation {
        pname = "bin";
-       version = "0.1";
-       sha256 = "008i0yxvg9v05gby6ysq3f7ygh125p9xa5vwrcrbq5xw79igyzq5";
-       revision = "2";
-       editedCabalFile = "1zmzi566syvrm9bk0mxj3dycd3i4b33018c644qxdqdb00mlvayh";
+       version = "0.1.1";
+       sha256 = "11awr2zdknjdgy365hh3alq0fjkhhixk6synf65af2brzkl8k5ys";
        libraryHaskellDepends = [
          base dec deepseq fin hashable QuickCheck
        ];
@@ -40398,7 +40612,7 @@ self: {
        sha256 = "1rb4fpx5hlq661md7nrpgpmi7jjdq3r1ky6q9vxl6f72h085acvl";
        libraryHaskellDepends = [ base binary ghc-prim ];
        description = "Automatic deriving of Binary using GHC.Generics";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -40473,6 +40687,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "binary-generic-combinators" = callPackage
+    ({ mkDerivation, base, binary, generic-arbitrary, hspec, QuickCheck
+     }:
+     mkDerivation {
+       pname = "binary-generic-combinators";
+       version = "0.4.2.0";
+       sha256 = "1z1ngjcssb0nrkyd1chklmv19xf2qz7vqh2idsvkxa67ryp5g4a3";
+       libraryHaskellDepends = [ base binary QuickCheck ];
+       testHaskellDepends = [
+         base binary generic-arbitrary hspec QuickCheck
+       ];
+       description = "Combinators and utilities to make Generic-based deriving of Binary easier and more expressive";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "binary-ieee754" = callPackage
     ({ mkDerivation, array, base, binary }:
      mkDerivation {
@@ -40508,6 +40737,8 @@ self: {
        pname = "binary-instances";
        version = "1.0.1";
        sha256 = "0whqjziwqrqslf6byliry84pg47z7vc6yjligpzb8gb5db2gw1h0";
+       revision = "1";
+       editedCabalFile = "1xw2rl5mk626i54c0azrw5as3avd2cvzxn8l6sg5ymc14c240iwp";
        libraryHaskellDepends = [
          aeson base binary binary-orphans case-insensitive hashable
          scientific tagged text text-binary time-compat unordered-containers
@@ -40578,8 +40809,8 @@ self: {
        pname = "binary-orphans";
        version = "1.0.1";
        sha256 = "0gbmn5rpvyxhw5bxjmxwld6918lslv03b2f6hshssaw1il5x86j3";
-       revision = "4";
-       editedCabalFile = "07jwyndphnfr20ihagncpl8rr7i62hxf0b9m2bdahyzvz0yzdsl2";
+       revision = "5";
+       editedCabalFile = "1h2d37szfrcwn9rphnijn4q9l947b0wwqjs1aqmm62xkhbad7jf6";
        libraryHaskellDepends = [ base binary transformers ];
        testHaskellDepends = [
          base binary QuickCheck quickcheck-instances tagged tasty
@@ -40607,6 +40838,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "binary-parser_0_5_7" = callPackage
+    ({ mkDerivation, base, bytestring, mtl, QuickCheck
+     , quickcheck-instances, rerebase, tasty, tasty-hunit
+     , tasty-quickcheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "binary-parser";
+       version = "0.5.7";
+       sha256 = "03w8xjy45kvakxk085234gi9mhg5vhz6394kh8bhd275qwf4g8cz";
+       libraryHaskellDepends = [ base bytestring mtl text transformers ];
+       testHaskellDepends = [
+         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         tasty-quickcheck
+       ];
+       description = "A highly-efficient but limited parser API specialised for bytestrings";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "binary-parsers" = callPackage
     ({ mkDerivation, attoparsec, base, binary, bytestring
      , bytestring-lexing, case-insensitive, criterion, deepseq
@@ -40672,16 +40922,14 @@ self: {
      }:
      mkDerivation {
        pname = "binary-search";
-       version = "1.0.0.3";
-       sha256 = "1ypn2i2c3mxd1zhpj515zf15y9sgz10akbyngg2ymp7ddbs2vqxh";
+       version = "2.0.0";
+       sha256 = "13dp9wbf58k4rbr9ychf7p0zkrpzykxhh4fws741sk9mcjmrkgv7";
        libraryHaskellDepends = [ base containers transformers ];
        testHaskellDepends = [
          base directory doctest filepath hspec QuickCheck
        ];
        description = "Binary and exponential searches";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "binary-serialise-cbor" = callPackage
@@ -40781,8 +41029,8 @@ self: {
        pname = "binary-tagged";
        version = "0.3";
        sha256 = "1bvzwhdjxxr7b3lk23rwcygi34d6a5mairi2j2gh7k3p8983fgss";
-       revision = "1";
-       editedCabalFile = "1swaxiyz16wmsi0qdm9nfs56ld37hg9vqp73j3lvdq84f1s0ck2l";
+       revision = "2";
+       editedCabalFile = "0h397jzajqiw01nf7fkjmqzsmzd08d1z6f9ff2rvcj4s6wsqkik8";
        libraryHaskellDepends = [
          array base base16-bytestring binary bytestring containers
          structured tagged
@@ -41073,7 +41321,7 @@ self: {
        librarySystemDepends = [ bfd opcodes ];
        libraryToolDepends = [ alex happy ];
        description = "Bindings for libbfd, a library of the GNU `binutils'";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {bfd = null; opcodes = null;};
@@ -41087,7 +41335,7 @@ self: {
        libraryHaskellDepends = [ bindings-DSL ];
        librarySystemDepends = [ dttools ];
        description = "Bindings to the CCTools WorkQueue C library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {dttools = null;};
@@ -41108,7 +41356,7 @@ self: {
        librarySystemDepends = [ codec2 ];
        executableHaskellDepends = [ base binary bytestring split ];
        description = "Very low-level FFI bindings for Codec2";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {inherit (pkgs) codec2;};
 
   "bindings-common" = callPackage
@@ -41149,7 +41397,9 @@ self: {
        libraryPkgconfigDepends = [ directfb ];
        description = "Low level bindings to DirectFB";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) directfb;};
 
   "bindings-eskit" = callPackage
@@ -41268,7 +41518,7 @@ self: {
        libraryHaskellDepends = [ base bindings-DSL bindings-glib ];
        libraryPkgconfigDepends = [ gts ];
        description = "Low level bindings supporting GTS, the GNU Triangulated Surface Library";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {inherit (pkgs) gts;};
 
   "bindings-hamlib" = callPackage
@@ -41285,7 +41535,7 @@ self: {
        librarySystemDepends = [ hamlib ];
        executableHaskellDepends = [ base ];
        description = "Hamlib bindings for Haskell";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) hamlib;};
@@ -41476,7 +41726,9 @@ self: {
        librarySystemDepends = [ lxc ];
        description = "Direct Haskell bindings to LXC (Linux containers) C API";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) lxc;};
 
   "bindings-mmap" = callPackage
@@ -41531,7 +41783,7 @@ self: {
          base bytestring hspec HUnit QuickCheck quickcheck-io
        ];
        description = "bindings to nettle crypto library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {inherit (pkgs) nettle;};
 
   "bindings-parport" = callPackage
@@ -41577,7 +41829,7 @@ self: {
        libraryHaskellDepends = [ base bindings-DSL ];
        librarySystemDepends = [ potrace ];
        description = "Low-level bindings to the potrace bitmap tracing library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {inherit (pkgs) potrace;};
 
   "bindings-ppdev" = callPackage
@@ -41610,7 +41862,7 @@ self: {
          base cmdargs containers directory filepath process text unix
        ];
        description = "Wrapping saga_cmd";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "bindings-sane" = callPackage
@@ -41622,7 +41874,7 @@ self: {
        libraryHaskellDepends = [ base bindings-DSL ];
        libraryPkgconfigDepends = [ sane-backends ];
        description = "FFI bindings to libsane";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {inherit (pkgs) sane-backends;};
 
   "bindings-sc3" = callPackage
@@ -41740,7 +41992,7 @@ self: {
        editedCabalFile = "0mq2h1j1xd52irb35y9j0znxzpk661w3dl4d5a011sln4jd3f663";
        libraryHaskellDepends = [ base binary bytestring rank1dynamic ];
        description = "A variation of Data.Dynamic.Dynamic with a Binary instance";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -41820,8 +42072,8 @@ self: {
      }:
      mkDerivation {
        pname = "binsm";
-       version = "0.1.1";
-       sha256 = "1wiqslvf21xm15rf161lzffk5zzivbxs9sa9v7d257cx4d9qvy15";
+       version = "0.1.2";
+       sha256 = "1nhdzy3hqqin67i25kgrrcny99lrdr9i6xddr8gjm6b32kqhakhw";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -42051,7 +42303,7 @@ self: {
        libraryHaskellDepends = [ array base binary biocore bytestring ];
        executableHaskellDepends = [ array base cmdargs mtl ];
        description = "Library and executables for working with SFF files";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -42098,6 +42350,8 @@ self: {
        ];
        description = "BIP-0032: Hierarchical Deterministic Wallets for Bitcoin and other cryptocurrencies";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "birch-beer" = callPackage
@@ -42131,7 +42385,7 @@ self: {
          lens optparse-generic sparse-linear-algebra text text-show vector
        ];
        description = "Plot a colorful tree";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -42186,7 +42440,7 @@ self: {
          base configurator directory filepath mtl selda selda-sqlite text
        ];
        description = "A small tool that clears qutebrowser cookies";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "bisect-binary" = callPackage
@@ -42500,6 +42754,8 @@ self: {
        ];
        description = "Bitcoin keys";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bitcoin-payment-channel" = callPackage
@@ -42652,6 +42908,8 @@ self: {
        ];
        description = "Provides consistent low-level types used commonly among Bitcoin implementations";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bitcoind-regtest" = callPackage
@@ -42766,18 +43024,12 @@ self: {
      }) {};
 
   "bits" = callPackage
-    ({ mkDerivation, base, bytes, Cabal, cabal-doctest, doctest, mtl
-     , transformers
-     }:
+    ({ mkDerivation, base, bytes, mtl, transformers }:
      mkDerivation {
        pname = "bits";
-       version = "0.5.2";
-       sha256 = "1q5grjma421qiwjkwvnsakd4hxnf02bavfinky2skfhqvg63hkav";
-       revision = "2";
-       editedCabalFile = "0zcxzi3afs2vxmm2mc9l65br5qym2ah9q3671f4ckzn0h0hcqw2n";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.5.3";
+       sha256 = "0avcm2635nvgghr7nbci66s4l5q4k6ag81hla1xai58b159anyq0";
        libraryHaskellDepends = [ base bytes mtl transformers ];
-       testHaskellDepends = [ base doctest ];
        description = "Various bit twiddling and bitwise serialization primitives";
        license = lib.licenses.bsd3;
      }) {};
@@ -42857,6 +43109,8 @@ self: {
        pname = "bits-extra";
        version = "0.0.2.0";
        sha256 = "1c54008kinzcx93kc8vcp7wq7la662m8nk82ax76i9b0gvbkk21f";
+       revision = "1";
+       editedCabalFile = "1ri4z6zj20qsyyzsrl89sjcm4ir2w6538i6l36a6ffz7f0h0ahng";
        libraryHaskellDepends = [ base ghc-prim vector ];
        testHaskellDepends = [
          base doctest doctest-discover ghc-prim hedgehog hspec hw-hedgehog
@@ -43036,30 +43290,6 @@ self: {
      }) {};
 
   "bitvec" = callPackage
-    ({ mkDerivation, base, containers, deepseq, gauge, ghc-prim, gmp
-     , integer-gmp, primitive, quickcheck-classes, random, tasty
-     , tasty-hunit, tasty-quickcheck, vector
-     }:
-     mkDerivation {
-       pname = "bitvec";
-       version = "1.0.3.0";
-       sha256 = "0s3gdh2rgz9wdnin5h2yhvnr8gy3sgcl9sbb1k4069ap4svrg8hd";
-       libraryHaskellDepends = [
-         base deepseq ghc-prim integer-gmp primitive vector
-       ];
-       librarySystemDepends = [ gmp ];
-       testHaskellDepends = [
-         base integer-gmp primitive quickcheck-classes tasty tasty-hunit
-         tasty-quickcheck vector
-       ];
-       benchmarkHaskellDepends = [
-         base containers gauge integer-gmp random vector
-       ];
-       description = "Space-efficient bit vectors";
-       license = lib.licenses.bsd3;
-     }) {inherit (pkgs) gmp;};
-
-  "bitvec_1_1_1_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, ghc-prim
      , integer-gmp, primitive, quickcheck-classes, random, tasty
      , tasty-bench, tasty-hunit, tasty-quickcheck, vector
@@ -43080,7 +43310,6 @@ self: {
        ];
        description = "Space-efficient bit vectors";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bitwise" = callPackage
@@ -43089,8 +43318,8 @@ self: {
        pname = "bitwise";
        version = "1.0.0.1";
        sha256 = "03xyzdkyb99gvm9g5chl07rqbnm7qrxba7wgmrfmal0rkwm0ibkn";
-       revision = "3";
-       editedCabalFile = "0sx6i1b9slicisnj53sv2jbdryyqd66amcm43xxqlv5srsqqijdm";
+       revision = "4";
+       editedCabalFile = "0fjcz8239fagjb4pc42digg511rjaz9r8j8fcvcb6ncxijg7g694";
        libraryHaskellDepends = [ array base bytestring ];
        testHaskellDepends = [ base QuickCheck ];
        benchmarkHaskellDepends = [ array base bytestring criterion ];
@@ -43105,10 +43334,8 @@ self: {
      }:
      mkDerivation {
        pname = "bitwise-enum";
-       version = "1.0.0.3";
-       sha256 = "0ykrr8x1hc1lsj8cn19jcypvww4598g1v0vrn3z3b7n6hp6wfyis";
-       revision = "3";
-       editedCabalFile = "19d5xwigd482z47s8gpbd2jmm4pmx5bxg2fxkzjl8dias4yb431x";
+       version = "1.0.1.0";
+       sha256 = "0vmdr8csmxwab7s4nmqdfpqdssivh90fddk94i8wkwj1la867y1z";
        libraryHaskellDepends = [
          aeson array base deepseq mono-traversable vector
        ];
@@ -43260,7 +43487,7 @@ self: {
        ];
        testHaskellDepends = [ base QuickCheck ];
        description = "The pirate bay client";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "blacktip" = callPackage
@@ -43611,6 +43838,8 @@ self: {
        pname = "blaze-html";
        version = "0.9.1.2";
        sha256 = "0k1r1hddjgqighazcazxrx6xfhvy2gm8il8l82ainv3cai13yl30";
+       revision = "1";
+       editedCabalFile = "0wvlfb3rd9cm3p894p5rl9kggrsr5da3n8x9ydrbagx91yvkxns9";
        libraryHaskellDepends = [
          base blaze-builder blaze-markup bytestring text
        ];
@@ -43699,8 +43928,8 @@ self: {
      }:
      mkDerivation {
        pname = "blaze-markup";
-       version = "0.8.2.7";
-       sha256 = "1r4fij8qs1z4dfrh6cjzjbnx9f3jyx01zgj15wvy961d8bnqjr4b";
+       version = "0.8.2.8";
+       sha256 = "0jd30wg5yz0a97b36zwqg4hv8faifza1n2gys3l1p3fwf9l3zz23";
        libraryHaskellDepends = [ base blaze-builder bytestring text ];
        testHaskellDepends = [
          base blaze-builder bytestring containers HUnit QuickCheck tasty
@@ -43848,7 +44077,7 @@ self: {
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        description = "Password entry tool";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "blink1" = callPackage
@@ -44102,7 +44331,7 @@ self: {
          text
        ];
        description = "BLOSUM generator";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -44137,7 +44366,7 @@ self: {
          base blubber-server bytestring cereal containers gloss network unix
        ];
        description = "The blubber client; connects to the blubber server";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -44160,7 +44389,7 @@ self: {
          process random scotty text transformers unix
        ];
        description = "The blubber server, serves blubber clients";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -44346,6 +44575,8 @@ self: {
        pname = "board-games";
        version = "0.3";
        sha256 = "1ylwibyl0j1v0bdrpfnjhdm431npagavxzgi2l5sp0scgpkcyyx7";
+       revision = "1";
+       editedCabalFile = "0rb5bqjg6r8p2v2wfdhivsbgbn55acdjsj6hcy6bv5w50qmg1l6c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -44386,6 +44617,8 @@ self: {
        ];
        description = "Copy a directory tree, making zero-size sparse copies of big files";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bogre-banana" = callPackage
@@ -44713,7 +44946,7 @@ self: {
        sha256 = "1vqn1igmsgq6nry9bpz5vhggbm3j8kc3p6d6wy16nf94z10nq3qs";
        libraryHaskellDepends = [ base bytestring HUnit ];
        description = "convert numbers to binary coded lists";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "boolean-normal-forms" = callPackage
@@ -44806,7 +45039,7 @@ self: {
          base containers descrilo directory filepath simtreelo
        ];
        description = "A bookmarks manager with an HTML generator";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "boombox" = callPackage
@@ -44827,13 +45060,15 @@ self: {
      }) {};
 
   "boomerang" = callPackage
-    ({ mkDerivation, base, mtl, semigroups, template-haskell, text }:
+    ({ mkDerivation, base, mtl, semigroups, template-haskell, text
+     , th-abstraction
+     }:
      mkDerivation {
        pname = "boomerang";
-       version = "1.4.6";
-       sha256 = "09angcdqf75f03rh7m02rsqz5rr304dw4c5cszj9alpq4qxlsyqc";
+       version = "1.4.7";
+       sha256 = "0ngrzwvzils6pqdgbc7hj4l41r19j2n82z78fqh312lnc1nni94i";
        libraryHaskellDepends = [
-         base mtl semigroups template-haskell text
+         base mtl semigroups template-haskell text th-abstraction
        ];
        description = "Library for invertible parsing and printing";
        license = lib.licenses.bsd3;
@@ -45040,8 +45275,8 @@ self: {
        pname = "boring";
        version = "0.1.3";
        sha256 = "1fljlkzc5016xbq9jykh0wr1mbyfcikh818pp54djws5vm66hh6d";
-       revision = "1";
-       editedCabalFile = "1gn2f035fmn2l56a507x080cl1apddszhlsf6lriwyass4v58mfl";
+       revision = "2";
+       editedCabalFile = "031vricyy2m7hg2hk3bj64lsz55k9qh36s2yfh09pgsfykr883ag";
        libraryHaskellDepends = [
          adjunctions base base-compat bin constraints dec fin generics-sop
          ral singleton-bool streams tagged transformers transformers-compat
@@ -45121,6 +45356,30 @@ self: {
        broken = true;
      }) {};
 
+  "bottom" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq, hspec
+     , megaparsec, optparse-applicative, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "bottom";
+       version = "0.2.0.0";
+       sha256 = "1vsrp4vc2nd16nqwysmg2lqfjy142fgfifpa96z6ns3z47ppid49";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring deepseq megaparsec text
+       ];
+       executableHaskellDepends = [
+         base bytestring optparse-applicative text
+       ];
+       testHaskellDepends = [ base bytestring hspec QuickCheck text ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq text
+       ];
+       description = "Encoding and decoding for the Bottom spec";
+       license = lib.licenses.asl20;
+     }) {};
+
   "bound" = callPackage
     ({ mkDerivation, base, bifunctors, binary, bytes, cereal, comonad
      , deepseq, deriving-compat, functor-classes-compat, hashable
@@ -45164,6 +45423,8 @@ self: {
        ];
        description = "ScopeH and ScopeT extras for bound";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bound-gen" = callPackage
@@ -45256,7 +45517,7 @@ self: {
          base containers GLUT hosc hsc3 random
        ];
        description = "audio-visual pseudo-physical simulation of colliding circles";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -45527,7 +45788,7 @@ self: {
          warp-tls
        ];
        description = "a url shortener";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -45789,8 +46050,8 @@ self: {
      }:
      mkDerivation {
        pname = "brittany";
-       version = "0.13.1.0";
-       sha256 = "0dw4s4lcb34fkv4i0rylna6zrr55rgkqs1s75lhn8zskwl7j89bs";
+       version = "0.13.1.1";
+       sha256 = "1z47kzmff9vdnkg4xihpdvccfy5080i05mg4j8sy3nv4mwja0ki1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45808,8 +46069,7 @@ self: {
          yaml
        ];
        description = "Haskell source code formatter";
-       license = lib.licenses.agpl3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "broadcast-chan" = callPackage
@@ -46004,7 +46264,7 @@ self: {
          base bytestring HUnit QuickCheck tasty tasty-hunit tasty-quickcheck
        ];
        description = "Brotli (RFC7932) compression and decompression";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) brotli;};
@@ -46850,7 +47110,7 @@ self: {
        testHaskellDepends = [ base ];
        benchmarkHaskellDepends = [ base criterion ];
        description = "Burst detection algorithms";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -47022,11 +47282,41 @@ self: {
          base bytestring gl-capture GLUT OpenGLRaw repa repa-devil
        ];
        description = "butterfly tilings";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
 
+  "buttplug-hs-core" = callPackage
+    ({ mkDerivation, aeson, aeson-casing, aeson-pretty, async, base
+     , bytestring, connection, containers, generic-random, hspec
+     , network, QuickCheck, quickcheck-instances, raw-strings-qq, text
+     , unordered-containers, websockets, wuss
+     }:
+     mkDerivation {
+       pname = "buttplug-hs-core";
+       version = "0.1.0.0";
+       sha256 = "0ayii1hq6p4qnjvyfpv2776ikjh0q4ymxm0lk8q73vk1j6kq1j3y";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-casing base bytestring connection containers network
+         text unordered-containers websockets wuss
+       ];
+       executableHaskellDepends = [
+         aeson aeson-casing async base bytestring connection containers
+         network text unordered-containers websockets wuss
+       ];
+       testHaskellDepends = [
+         aeson aeson-casing aeson-pretty base bytestring connection
+         containers generic-random hspec network QuickCheck
+         quickcheck-instances raw-strings-qq text unordered-containers
+         websockets wuss
+       ];
+       description = "Client library for buttplug.io";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "bv" = callPackage
     ({ mkDerivation, base, ghc-prim, integer-gmp }:
      mkDerivation {
@@ -47291,24 +47581,19 @@ self: {
      }) {};
 
   "bytes" = callPackage
-    ({ mkDerivation, base, binary, binary-orphans, bytestring, Cabal
-     , cabal-doctest, cereal, containers, directory, doctest, filepath
-     , hashable, mtl, scientific, text, time, transformers
+    ({ mkDerivation, base, binary, binary-orphans, bytestring, cereal
+     , containers, hashable, mtl, scientific, text, time, transformers
      , transformers-compat, unordered-containers, void
      }:
      mkDerivation {
        pname = "bytes";
-       version = "0.17";
-       sha256 = "11gacfxcn9f3v5a1phlgi7mwwrnyh51sfsym573g6i4v2zqfrwi3";
-       revision = "5";
-       editedCabalFile = "0a089bz9sjnmv3f5w9jsm1b7g60qx8qxqj76lwjj0mslzi9iajk2";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.17.1";
+       sha256 = "1qmps8vvg98wfm9xm734hwzi56bsk8r1zc6vx20rlhc79krv5s9s";
        libraryHaskellDepends = [
          base binary binary-orphans bytestring cereal containers hashable
          mtl scientific text time transformers transformers-compat
          unordered-containers void
        ];
-       testHaskellDepends = [ base directory doctest filepath ];
        description = "Sharing code for serialization between binary and cereal";
        license = lib.licenses.bsd3;
      }) {};
@@ -47333,8 +47618,8 @@ self: {
      }:
      mkDerivation {
        pname = "byteslice";
-       version = "0.2.5.0";
-       sha256 = "0sl5jbfni6sx6srlfdpj0cb0pjw38cf3fyxsnaldbap2wfd3ncyr";
+       version = "0.2.5.2";
+       sha256 = "0nva9w086g6d7g6bjwk4ad14jz8z17m0m9fvzfxv90cx6wkmvph3";
        libraryHaskellDepends = [
          base bytestring primitive primitive-addr primitive-unlifted run-st
          tuples vector
@@ -47376,15 +47661,23 @@ self: {
        broken = true;
      }) {};
 
-  "bytestring_0_11_0_0" = callPackage
-    ({ mkDerivation, base, deepseq, ghc-prim, integer-gmp }:
+  "bytestring_0_11_1_0" = callPackage
+    ({ mkDerivation, base, deepseq, dlist, ghc-prim, integer-gmp
+     , random, tasty, tasty-bench, tasty-hunit, tasty-quickcheck
+     , transformers
+     }:
      mkDerivation {
        pname = "bytestring";
-       version = "0.11.0.0";
-       sha256 = "03fwkbn52946y2l1ddrqq1jp8l9bhgi0gwxpz1wqqsn6n2vz5rrj";
-       revision = "1";
-       editedCabalFile = "0qhx61v75cqpgrb88h5gpc4a6vg17dgrw555q2kgi2hvip61z5lr";
+       version = "0.11.1.0";
+       sha256 = "1a29kwczd1hcpir691x936i9c5ys9d7m1lyby48djs9w54ksy1jw";
        libraryHaskellDepends = [ base deepseq ghc-prim integer-gmp ];
+       testHaskellDepends = [
+         base deepseq dlist ghc-prim tasty tasty-hunit tasty-quickcheck
+         transformers
+       ];
+       benchmarkHaskellDepends = [
+         base deepseq dlist random tasty-bench
+       ];
        description = "Fast, compact, strict and lazy byte strings with a list interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -47434,7 +47727,7 @@ self: {
          attoparsec attoparsec-varword base bytestring hspec QuickCheck
        ];
        description = "Variable-length integer encoding";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -47735,6 +48028,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "bytestring-strict-builder_0_4_5_4" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, QuickCheck
+     , quickcheck-instances, rerebase, tasty, tasty-hunit
+     , tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "bytestring-strict-builder";
+       version = "0.4.5.4";
+       sha256 = "1yjhxqsb96gi8ll70wf1p6islx0959f62fd6ypap4wyp4v2dr8c4";
+       libraryHaskellDepends = [ base bytestring ];
+       testHaskellDepends = [
+         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ criterion rerebase ];
+       description = "An efficient strict bytestring builder";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bytestring-substring" = callPackage
     ({ mkDerivation, base, bytestring, pipes, primitive }:
      mkDerivation {
@@ -47801,6 +48114,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "bytestring-tree-builder_0_2_7_9" = callPackage
+    ({ mkDerivation, base, base-prelude, bytestring, criterion, deepseq
+     , QuickCheck, quickcheck-instances, tasty, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "bytestring-tree-builder";
+       version = "0.2.7.9";
+       sha256 = "0lmm52716b0qqnlpqgiscc92wk9n1fckydmp4vzi58h5majzpnyb";
+       libraryHaskellDepends = [ base bytestring text ];
+       testHaskellDepends = [
+         base-prelude bytestring QuickCheck quickcheck-instances tasty
+         tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [
+         base-prelude bytestring criterion deepseq
+       ];
+       description = "A very efficient ByteString builder implementation based on the binary tree";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bytestring-trie" = callPackage
     ({ mkDerivation, base, binary, bytestring }:
      mkDerivation {
@@ -48106,7 +48441,7 @@ self: {
          base HUnit test-framework test-framework-hunit test-framework-th
        ];
        description = "Translate C code into ATS";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -48132,7 +48467,7 @@ self: {
          transformers
        ];
        description = "C->Haskell FFI tool that gives some cross-language type safety";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "c2hs-extra" = callPackage
@@ -48246,7 +48581,7 @@ self: {
        sha256 = "0hyjb8y4zf7qccyzsms98sd0kgz83q1aqfhgx2f3dq1nprhbg9ld";
        libraryHaskellDepends = [ base Cabal filepath ];
        description = "Cabal support for creating AppImage applications";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -48348,8 +48683,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-cache";
-       version = "1.0.2.1";
-       sha256 = "0n17ga3namkldd4mfjla58nlg0j7dyjcamap84bdwiglmrg0iwz4";
+       version = "1.0.3.0";
+       sha256 = "0xx0a53z7wj75p8dqypr6ys63cpw8acl49358f42xi5lgblvqnca";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -48545,6 +48880,8 @@ self: {
        ];
        description = "Cabal utility";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "cabal-file" = callPackage
@@ -48745,23 +49082,22 @@ self: {
     ({ mkDerivation, array, async, base, base16-bytestring, binary
      , bytestring, Cabal, containers, cryptohash-sha256, deepseq
      , directory, echo, edit-distance, filepath, hackage-security
-     , hashable, HTTP, lukko, mtl, network, network-uri, parsec, pretty
-     , process, random, resolv, stm, tar, text, time, transformers, unix
-     , zlib
+     , hashable, HTTP, lukko, mtl, network-uri, parsec, pretty, process
+     , random, regex-base, regex-posix, resolv, stm, tar, text, time
+     , transformers, unix, zlib
      }:
      mkDerivation {
        pname = "cabal-install";
-       version = "3.2.0.0";
-       sha256 = "1c0cc256bha97aj7l0lf76l5swlnmwcqppiz8l4cl5xgba4mwmd0";
+       version = "3.4.0.0";
+       sha256 = "15rylx5pa03jdiwcg1x7zvs6aq3g6phwmi1hz26cl080nczyz00r";
        isLibrary = false;
        isExecutable = true;
-       setupHaskellDepends = [ base Cabal filepath process ];
        executableHaskellDepends = [
          array async base base16-bytestring binary bytestring Cabal
          containers cryptohash-sha256 deepseq directory echo edit-distance
-         filepath hackage-security hashable HTTP lukko mtl network
-         network-uri parsec pretty process random resolv stm tar text time
-         transformers unix zlib
+         filepath hackage-security hashable HTTP lukko mtl network-uri
+         parsec pretty process random regex-base regex-posix resolv stm tar
+         text time transformers unix zlib
        ];
        doCheck = false;
        postInstall = ''
@@ -48847,6 +49183,8 @@ self: {
        pname = "cabal-install-parsers";
        version = "0.4.1";
        sha256 = "1djw4l0z8nsaby2qcm08kvn2p1c35ynzdg25vc815dx2wpw38bh3";
+       revision = "1";
+       editedCabalFile = "1fhjz4hji57sg00nb8jchvm8b13wn9pknnycgcclvxa3s72rqsf5";
        libraryHaskellDepends = [
          aeson base base16-bytestring binary binary-instances bytestring
          Cabal containers cryptohash-sha256 deepseq directory filepath lukko
@@ -48862,8 +49200,6 @@ self: {
        ];
        description = "Utilities to work with cabal-install files";
        license = "GPL-2.0-or-later AND BSD-3-Clause";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-lenses" = callPackage
@@ -49049,7 +49385,29 @@ self: {
          simple-cabal simple-cmd simple-cmd-args time unix
        ];
        description = "RPM packaging tool for Haskell Cabal-based packages";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
+     }) {};
+
+  "cabal-rpm_2_0_8" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, directory, extra
+     , filepath, http-client, http-client-tls, http-conduit
+     , optparse-applicative, process, simple-cabal, simple-cmd
+     , simple-cmd-args, time, unix
+     }:
+     mkDerivation {
+       pname = "cabal-rpm";
+       version = "2.0.8";
+       sha256 = "18ryg2qv1ppxkylgniw4iava9gh410pp6ibm1362ij52128z6rhz";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring Cabal directory extra filepath http-client
+         http-client-tls http-conduit optparse-applicative process
+         simple-cabal simple-cmd simple-cmd-args time unix
+       ];
+       description = "RPM packaging tool for Haskell Cabal-based packages";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "cabal-scripts" = callPackage
@@ -49327,8 +49685,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2nix";
-       version = "2.16.0";
-       sha256 = "0kxxn218r1r9fia72zv8xzb8yji5y2jbwzqz033ljvwbm3abxp2k";
+       version = "2.17.0";
+       sha256 = "0y91agkhgpzzaf9l7l1h7x516iryj8z2vk1in1h7pyjlxaiak6lm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -49373,7 +49731,7 @@ self: {
        ];
        testHaskellDepends = [ base Cabal filepath tasty tasty-golden ];
        description = "Convert Cabal files into rpm spec files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
@@ -50048,6 +50406,22 @@ self: {
        broken = true;
      }) {};
 
+  "calamity-commands" = callPackage
+    ({ mkDerivation, base, generic-lens, lens, megaparsec, polysemy
+     , polysemy-plugin, text, text-show, unordered-containers
+     }:
+     mkDerivation {
+       pname = "calamity-commands";
+       version = "0.1.0.0";
+       sha256 = "0l2x65w7inib5bdfw0gzffm3pdlsylnivnjc8y82x7fi6jha8jcp";
+       libraryHaskellDepends = [
+         base generic-lens lens megaparsec polysemy polysemy-plugin text
+         text-show unordered-containers
+       ];
+       description = "A library for declaring, parsing, and invoking text-input based commands";
+       license = lib.licenses.mit;
+     }) {};
+
   "calc" = callPackage
     ({ mkDerivation, array, base, harpy, haskell98, mtl }:
      mkDerivation {
@@ -50081,7 +50455,7 @@ self: {
          base containers gtk parsec plot-gtk-ui QuickCheck
        ];
        description = "A calculator repl, with variables, functions & Mathematica like dynamic plots";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -50122,7 +50496,7 @@ self: {
          base containers cpphs lens mtl parsec transformers
        ];
        description = "a logic programming language based on the calculus of constructions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -50233,25 +50607,12 @@ self: {
     ({ mkDerivation, base, nanospec }:
      mkDerivation {
        pname = "call-stack";
-       version = "0.2.0";
-       sha256 = "1iz0wkbcqchyji72c4j4zb72vfsfdp2ys8pf9mqqsxaq774r7ilm";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base nanospec ];
-       description = "Use GHC call-stacks in a backward compatible way";
-       license = lib.licenses.mit;
-     }) {};
-
-  "call-stack_0_3_0" = callPackage
-    ({ mkDerivation, base, nanospec }:
-     mkDerivation {
-       pname = "call-stack";
        version = "0.3.0";
        sha256 = "0ski7ihdxah7x4x07qgkjljg8hzqs9d6aa5k4cmr40bzp3i8s3mq";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base nanospec ];
        description = "Use GHC call-stacks in a backward compatible way";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "camfort" = callPackage
@@ -50265,8 +50626,8 @@ self: {
      }:
      mkDerivation {
        pname = "camfort";
-       version = "1.0";
-       sha256 = "1lgsn1jin57677j8xia7ga4pdvs0yrs9spdmm9rbncxcz5c3nf52";
+       version = "1.0.1";
+       sha256 = "1jwlkrf4aja71sbxxlxsd7syh6sb4vgv2pb18mvj5ppm6al2ykp3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -50604,21 +50965,24 @@ self: {
   "capability" = callPackage
     ({ mkDerivation, base, constraints, containers, dlist, exceptions
      , generic-lens, hspec, lens, monad-control, monad-unlift, mtl
-     , mutable-containers, primitive, safe-exceptions, silently
-     , streaming, temporary, text, transformers, unliftio, unliftio-core
+     , mutable-containers, primitive, reflection, safe-exceptions
+     , silently, streaming, temporary, text, transformers, unliftio
+     , unliftio-core
      }:
      mkDerivation {
        pname = "capability";
-       version = "0.3.0.0";
-       sha256 = "1kha2y1x63af43psl708c0iib0ign4jrs2n4s2jl4a0pb7hlcdcz";
+       version = "0.4.0.0";
+       sha256 = "02dnvzfvn81k15qp41fqd3pk4izg8rfbj7d5f6ry0wfa8d8payq0";
+       revision = "1";
+       editedCabalFile = "0dqqry8qjx9gigz7x542zchrvjbmmhpafzn4fxf1dw0yd6hqavfq";
        libraryHaskellDepends = [
          base constraints dlist exceptions generic-lens lens monad-control
-         monad-unlift mtl mutable-containers primitive safe-exceptions
-         streaming transformers unliftio unliftio-core
+         monad-unlift mtl mutable-containers primitive reflection
+         safe-exceptions streaming transformers unliftio unliftio-core
        ];
        testHaskellDepends = [
-         base containers hspec lens mtl silently streaming temporary text
-         unliftio
+         base containers dlist hspec lens mtl silently streaming temporary
+         text unliftio
        ];
        description = "Extensional capabilities and deriving combinators";
        license = lib.licenses.bsd3;
@@ -50659,8 +51023,8 @@ self: {
      }:
      mkDerivation {
        pname = "capnp";
-       version = "0.10.0.0";
-       sha256 = "054cy2rr2hg0brrbxff4my3q2fzr1qk7ik2xyip65dq54958ibqk";
+       version = "0.10.0.1";
+       sha256 = "1p5vx7gcswz08f790swb8pi2ckbphqr76j8gav4rvrbalscd3zvf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -50718,6 +51082,22 @@ self: {
        broken = true;
      }) {};
 
+  "caps" = callPackage
+    ({ mkDerivation, base, mtl, tasty, tasty-hunit, template-haskell
+     , transformers, typerep-map
+     }:
+     mkDerivation {
+       pname = "caps";
+       version = "0.1";
+       sha256 = "0i6rzgfbl377g4z76rv48c6a1s4yy9h78bjmvkr2vhq5zv8zqzkk";
+       libraryHaskellDepends = [
+         base template-haskell transformers typerep-map
+       ];
+       testHaskellDepends = [ base mtl tasty tasty-hunit ];
+       description = "Monadic capabilities with late binding";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "car-pool" = callPackage
     ({ mkDerivation, base, blaze-html, containers, digestive-functors
      , digestive-functors-blaze, digestive-functors-happstack
@@ -50879,7 +51259,7 @@ self: {
          highlighting-kate mtl pandoc pango process text time
        ];
        description = "A presentation tool written with Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -50916,7 +51296,7 @@ self: {
          time transformers tuple
        ];
        description = "Carte: A commandline pastebin server";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -51061,24 +51441,6 @@ self: {
      }:
      mkDerivation {
        pname = "casa-types";
-       version = "0.0.1";
-       sha256 = "0f8c4a43rh6zr5cwingxyjfpisipy4x4xc0lpasfjaj4vhjgwqkp";
-       revision = "1";
-       editedCabalFile = "101hhpwc7nhg2laywv2jnqa3jsjkvbvc30i6cs4srvdv2n87jlcb";
-       libraryHaskellDepends = [
-         aeson attoparsec base base16-bytestring bytestring hashable
-         path-pieces persistent text
-       ];
-       description = "Types for Casa";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "casa-types_0_0_2" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
-     , bytestring, hashable, path-pieces, persistent, text
-     }:
-     mkDerivation {
-       pname = "casa-types";
        version = "0.0.2";
        sha256 = "1c3qvph690pgnqmj132sn1zh878n3ljvmp913vvhwynfhyixs1v7";
        libraryHaskellDepends = [
@@ -51087,7 +51449,6 @@ self: {
        ];
        description = "Types for Casa";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "casadi-bindings" = callPackage
@@ -51111,7 +51472,7 @@ self: {
          test-framework-hunit test-framework-quickcheck2 vector
        ];
        description = "mid-level bindings to CasADi";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {casadi = null;};
@@ -51129,7 +51490,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ casadi_control ];
        description = "low level bindings to casadi-control";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {casadi_control = null;};
@@ -51147,7 +51508,7 @@ self: {
        ];
        librarySystemDepends = [ casadi ];
        description = "autogenerated low level bindings to casadi";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {casadi = null;};
@@ -51161,7 +51522,7 @@ self: {
        libraryHaskellDepends = [ base containers vector ];
        librarySystemDepends = [ casadi ];
        description = "low level bindings to CasADi";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {casadi = null;};
@@ -51179,7 +51540,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ casadi_ipopt_interface ];
        description = "low level bindings to casadi-ipopt_interface";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {casadi_ipopt_interface = null;};
@@ -51197,7 +51558,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ casadi_snopt_interface ];
        description = "low level bindings to casadi-snopt_interface";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {casadi_snopt_interface = null;};
@@ -51318,6 +51679,23 @@ self: {
        broken = true;
      }) {};
 
+  "cases_0_1_4_1" = callPackage
+    ({ mkDerivation, attoparsec, base, gauge, HTF, HUnit, mwc-random
+     , QuickCheck, rerebase, text
+     }:
+     mkDerivation {
+       pname = "cases";
+       version = "0.1.4.1";
+       sha256 = "16bl4qzjfwkbzacrj33myakqcmg2j9fgzdnykwpnnqc2vikdpn0z";
+       libraryHaskellDepends = [ attoparsec base text ];
+       testHaskellDepends = [ HTF HUnit QuickCheck rerebase ];
+       benchmarkHaskellDepends = [ gauge mwc-random rerebase ];
+       description = "A converter for spinal, snake and camel cases";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "cash" = callPackage
     ({ mkDerivation, base, deepseq, haskell98, HaXml, network, parallel
      , pretty
@@ -51567,8 +51945,8 @@ self: {
        pname = "cassava";
        version = "0.5.2.0";
        sha256 = "01h1zrdqb313cjd4rqm1107azzx4czqi018c2djf66a5i7ajl3dk";
-       revision = "1";
-       editedCabalFile = "1ph8rf91z4nf1ryrh9s4gd1kq98jlgk2manwddkpch8k0n9xvfk4";
+       revision = "4";
+       editedCabalFile = "19rkq41r5vj8drnj850b1wqnc54mxpw0x5z54brq0nvyww5f8ai8";
        configureFlags = [ "-f-bytestring--lt-0_10_4" ];
        libraryHaskellDepends = [
          array attoparsec base bytestring containers deepseq hashable Only
@@ -52037,6 +52415,23 @@ self: {
        maintainers = with lib.maintainers; [ sorki ];
      }) {};
 
+  "cayenne-lpp" = callPackage
+    ({ mkDerivation, base, base16-bytestring, binary, bytestring, hspec
+     , hspec-discover, text, time, timerep
+     }:
+     mkDerivation {
+       pname = "cayenne-lpp";
+       version = "0.2.0.0";
+       sha256 = "0v9kd7mz9kc4m3icaz64rpp55rbw8w2x33g1j609pg870i3mgkax";
+       libraryHaskellDepends = [
+         base binary bytestring text time timerep
+       ];
+       testHaskellDepends = [ base base16-bytestring hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "Cayenne Low Power Payload";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "cayley-client" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, binary, bytestring
      , exceptions, hspec, http-client, http-conduit, lens, lens-aeson
@@ -52044,8 +52439,8 @@ self: {
      }:
      mkDerivation {
        pname = "cayley-client";
-       version = "0.4.13";
-       sha256 = "1sak0rg9gydcwk7ahx51czp3akispxrkkfgq94n6hgg3dqvm646l";
+       version = "0.4.14";
+       sha256 = "1hczhvqqpx8kqg90h5qb2vjindn4crxmq6lwbj8ix45fnkijv4xg";
        libraryHaskellDepends = [
          aeson attoparsec base binary bytestring exceptions http-client
          http-conduit lens lens-aeson mtl text transformers
@@ -52102,8 +52497,8 @@ self: {
        pname = "cbor-tool";
        version = "0.2.2.0";
        sha256 = "0rsnnz1zh9jyjif94lrdppzaa41hypqs1r5dlyzbwlw1m75g286p";
-       revision = "1";
-       editedCabalFile = "1z87h65g6y1w43g76r5i9ps8wkpiabbgkqq85ni8mz1m3rjizl4n";
+       revision = "2";
+       editedCabalFile = "15dlsldsc7fhn7i0b0rfsrdnlddjfgjap49b8915cphjc7b17p2p";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -52222,7 +52617,7 @@ self: {
        ];
        librarySystemDepends = [ dttools ];
        description = "High-level interface to CCTools' WorkQueue library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {dttools = null;};
@@ -52464,7 +52859,7 @@ self: {
        sha256 = "04mlg1r2qvrwdzcfbf1aqs4bf9n2gc7cwv73fbhld2ji5naa6fwb";
        libraryHaskellDepends = [ base cereal ghc-prim ];
        description = "Automatic deriving of Serialize using GHC.Generics";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -52764,7 +53159,7 @@ self: {
          unordered-containers utf8-string void
        ];
        description = "Parser for categorial grammars";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -52856,7 +53251,7 @@ self: {
          unordered-containers utf8-string yaml
        ];
        description = "Command line tool";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -52870,7 +53265,7 @@ self: {
        libraryHaskellDepends = [ base containers JuicyPixels ];
        testHaskellDepends = [ base containers hspec JuicyPixels ];
        description = "Library decoding chain codes from images";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "chainweb-mining-client" = callPackage
@@ -53144,17 +53539,15 @@ self: {
      }) {};
 
   "charset" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, semigroups
+    ({ mkDerivation, array, base, bytestring, containers
      , unordered-containers
      }:
      mkDerivation {
        pname = "charset";
-       version = "0.3.7.1";
-       sha256 = "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x";
-       revision = "2";
-       editedCabalFile = "002x3yan7632nqgwk0a7f3wvchgm95pdwqh225va8dnn1lr9pi1z";
+       version = "0.3.8";
+       sha256 = "1rw6y2insgljbi5l1nwqwv9v865sswjly9rvwipd8zajkgks7aks";
        libraryHaskellDepends = [
-         array base bytestring containers semigroups unordered-containers
+         array base bytestring containers unordered-containers
        ];
        description = "Fast unicode character sets based on complemented PATRICIA tries";
        license = lib.licenses.bsd3;
@@ -53400,8 +53793,6 @@ self: {
        ];
        description = "A library of simple NLP algorithms";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chatty" = callPackage
@@ -53418,7 +53809,7 @@ self: {
          template-haskell text time transformers unix
        ];
        description = "Some monad transformers and typeclasses for text in- and output abstraction";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "chatty-text" = callPackage
@@ -53431,7 +53822,7 @@ self: {
        editedCabalFile = "11vpzarrbk0jlsnamrnf4xp3gzkgwrbs6x5mr9m5rr4lrw1f9q0v";
        libraryHaskellDepends = [ base chatty transformers ];
        description = "Provides some classes and types for dealing with text, using the fundaments of Chatty";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -53444,7 +53835,7 @@ self: {
        sha256 = "1pzg0bf73shwl91x4011khw62wgv33y5862gq110q8g913w4jrjw";
        libraryHaskellDepends = [ base mtl text transformers ];
        description = "Some utilities every serious chatty-based application may need";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "chatwork" = callPackage
@@ -53644,7 +54035,7 @@ self: {
          QuickCheck quickcheck-text temporary text
        ];
        description = "Generate checklists relevant to a given patch";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -54382,7 +54773,7 @@ self: {
        executableHaskellDepends = [ base binary bytestring text ];
        testHaskellDepends = [ base binary bytestring HUnit text ];
        description = "Human-readable storage of text/binary objects";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -54477,7 +54868,7 @@ self: {
          uuid wreq
        ];
        description = "Cielo API v3 Bindings for Haskell";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -54512,7 +54903,7 @@ self: {
        executableHaskellDepends = [ base bytestring groom text ];
        testHaskellDepends = [ base hspec ];
        description = "Simple C-like programming language";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "cinvoke" = callPackage
@@ -54882,8 +55273,8 @@ self: {
      }:
      mkDerivation {
        pname = "citeproc";
-       version = "0.3.0.7";
-       sha256 = "03cc3d7a1rf3k23150b19y4mx1c6vk53l9c59vv9npf39id33g7s";
+       version = "0.3.0.9";
+       sha256 = "0ky4j6nbn6yp3mny1m045n40jfvbr1iiylcf51hsi228y4m5za9s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -54936,7 +55327,7 @@ self: {
          pandoc pandoc-types parsec tagsoup texmath utf8-string yaml
        ];
        description = "A Pandoc filter for processing bibliographic references with citeproc-hs";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -55057,7 +55448,7 @@ self: {
          split
        ];
        description = "Simple CLI RPN calculator";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -55279,6 +55670,38 @@ self: {
        broken = true;
      }) {};
 
+  "clash-ghc_1_4_0" = callPackage
+    ({ mkDerivation, array, base, bifunctors, bytestring, Cabal
+     , clash-lib, clash-prelude, concurrent-supply, containers, deepseq
+     , directory, exceptions, extra, filepath, ghc, ghc-boot, ghc-prim
+     , ghc-typelits-extra, ghc-typelits-knownnat
+     , ghc-typelits-natnormalise, ghci, hashable, haskeline, integer-gmp
+     , lens, mtl, primitive, process, reflection, split
+     , template-haskell, text, time, transformers, uniplate, unix
+     , unordered-containers, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "clash-ghc";
+       version = "1.4.0";
+       sha256 = "18nm5x6rk69pd506yqp4pwp1i56x81bb56ly9x7adkmjk7j3l6y2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base bifunctors bytestring Cabal clash-lib clash-prelude
+         concurrent-supply containers deepseq directory exceptions extra
+         filepath ghc ghc-boot ghc-prim ghc-typelits-extra
+         ghc-typelits-knownnat ghc-typelits-natnormalise ghci hashable
+         haskeline integer-gmp lens mtl primitive process reflection split
+         template-haskell text time transformers uniplate unix
+         unordered-containers utf8-string vector
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Clash: a functional hardware description language - GHC frontend";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "clash-lib" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, attoparsec, base, binary
      , bytestring, clash-prelude, concurrent-supply, containers
@@ -55296,6 +55719,8 @@ self: {
        pname = "clash-lib";
        version = "1.2.5";
        sha256 = "14xi0llzm6f3ymlcfwq67d16ggdkqxrxkvr6rwmykxrca3j1b6r3";
+       revision = "1";
+       editedCabalFile = "15pvhd19yq2m1c2n33iawxngmpc6d0jfsh02038j8fbpzx68p7bw";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson ansi-terminal attoparsec base binary bytestring clash-prelude
@@ -55318,6 +55743,52 @@ self: {
        broken = true;
      }) {};
 
+  "clash-lib_1_4_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, array
+     , attoparsec, base, base16-bytestring, binary, bytestring
+     , clash-prelude, concurrent-supply, containers, cryptohash-sha256
+     , data-binary-ieee754, data-default, deepseq, directory, dlist
+     , errors, exceptions, extra, filepath, ghc, ghc-boot-th
+     , ghc-typelits-knownnat, hashable, haskell-src-exts
+     , haskell-src-meta, hint, integer-gmp, interpolate, lens, mtl
+     , ordered-containers, parsers, pretty-show, prettyprinter
+     , primitive, process, quickcheck-text, reducers, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, temporary, terminal-size
+     , text, text-show, time, transformers, trifecta
+     , unordered-containers, utf8-string, vector
+     , vector-binary-instances
+     }:
+     mkDerivation {
+       pname = "clash-lib";
+       version = "1.4.0";
+       sha256 = "1i0zmz26p35hfp89s45s6g7x2rvhyjc3lrx35r06cnllw6xvp60z";
+       revision = "1";
+       editedCabalFile = "0gjsc0nvaqj8f5m9nknxbs1jhb6nlwfy2cxgyj73rbwhwa4w2msk";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty ansi-terminal array attoparsec base
+         base16-bytestring binary bytestring clash-prelude concurrent-supply
+         containers cryptohash-sha256 data-binary-ieee754 data-default
+         deepseq directory dlist errors exceptions extra filepath ghc
+         ghc-boot-th hashable haskell-src-meta hint integer-gmp interpolate
+         lens mtl ordered-containers parsers pretty-show prettyprinter
+         primitive process reducers template-haskell temporary terminal-size
+         text text-show time transformers trifecta unordered-containers
+         utf8-string vector vector-binary-instances
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty base base16-bytestring bytestring clash-prelude
+         concurrent-supply containers data-default deepseq ghc
+         ghc-typelits-knownnat haskell-src-exts lens pretty-show
+         quickcheck-text tasty tasty-hunit tasty-quickcheck template-haskell
+         text transformers unordered-containers
+       ];
+       description = "Clash: a functional hardware description language - As a library";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "clash-multisignal" = callPackage
     ({ mkDerivation, base, clash-prelude, deepseq
      , ghc-typelits-knownnat, QuickCheck
@@ -55374,6 +55845,48 @@ self: {
        broken = true;
      }) {};
 
+  "clash-prelude_1_4_0" = callPackage
+    ({ mkDerivation, array, arrows, base, bifunctors, binary
+     , bytestring, Cabal, cabal-doctest, constraints, containers
+     , criterion, data-binary-ieee754, data-default-class, deepseq
+     , doctest, ghc-prim, ghc-typelits-extra, ghc-typelits-knownnat
+     , ghc-typelits-natnormalise, half, hashable, hedgehog, hint
+     , integer-gmp, interpolate, lens, QuickCheck
+     , quickcheck-classes-base, recursion-schemes, reflection
+     , singletons, tasty, tasty-hedgehog, tasty-hunit, tasty-quickcheck
+     , tasty-th, template-haskell, text, text-show, th-abstraction
+     , th-lift, th-orphans, time, transformers, type-errors, uniplate
+     , vector
+     }:
+     mkDerivation {
+       pname = "clash-prelude";
+       version = "1.4.0";
+       sha256 = "168gjdjj9v69gr4d44njly70qr30nz3z4gfdy4nd4pay377i6vlw";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         array arrows base bifunctors binary bytestring constraints
+         containers data-binary-ieee754 data-default-class deepseq ghc-prim
+         ghc-typelits-extra ghc-typelits-knownnat ghc-typelits-natnormalise
+         half hashable integer-gmp interpolate lens QuickCheck
+         recursion-schemes reflection singletons template-haskell text
+         text-show th-abstraction th-lift th-orphans time transformers
+         type-errors uniplate vector
+       ];
+       testHaskellDepends = [
+         base deepseq doctest ghc-typelits-extra ghc-typelits-knownnat
+         ghc-typelits-natnormalise hedgehog hint quickcheck-classes-base
+         tasty tasty-hedgehog tasty-hunit tasty-quickcheck tasty-th
+         template-haskell
+       ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq template-haskell
+       ];
+       description = "Clash: a functional hardware description language - Prelude library";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "clash-prelude-quickcheck" = callPackage
     ({ mkDerivation, base, clash-prelude, QuickCheck }:
      mkDerivation {
@@ -55540,7 +56053,7 @@ self: {
          base lifted-base monad-control parallel resourcet transformers
        ];
        description = "Fork of the monad-parallel package using monad-control";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -56492,7 +57005,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ QtCore ];
        description = "timer functionality to clock IO commands";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {QtCore = null;};
@@ -56555,6 +57068,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "closed-intervals" = callPackage
+    ({ mkDerivation, base, containers, doctest-exitcode-stdio
+     , doctest-lib, QuickCheck, time, utility-ht
+     }:
+     mkDerivation {
+       pname = "closed-intervals";
+       version = "0.1.0.0";
+       sha256 = "1k8kbqh6w7cj7qkmzvh47v9zrpf5y465lj6fzq7vk71bq0dy59vm";
+       libraryHaskellDepends = [ base containers time ];
+       testHaskellDepends = [
+         base containers doctest-exitcode-stdio doctest-lib QuickCheck time
+         utility-ht
+       ];
+       description = "Closed intervals of totally ordered types";
+       license = lib.licenses.gpl3Only;
+     }) {};
+
   "closure" = callPackage
     ({ mkDerivation, base, hashable, unordered-containers }:
      mkDerivation {
@@ -56821,7 +57351,7 @@ self: {
        sha256 = "1h1n349sq2lpikpvzzarz74200b8k7dkdjpp4rpkx79xdlfc58pc";
        libraryHaskellDepends = [ base containers tree-fun ];
        description = "Calculate the clumpiness of leaf properties in a tree";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "cluss" = callPackage
@@ -57094,8 +57624,8 @@ self: {
      }:
      mkDerivation {
        pname = "cmdargs";
-       version = "0.10.20";
-       sha256 = "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf";
+       version = "0.10.21";
+       sha256 = "0xfabq187n1vqrnnm4ciprpl0dcjq97rksyjnpcniwva9rffmn7p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -57304,7 +57834,7 @@ self: {
          parsec StockholmAlignment template-haskell text vector
        ];
        description = "Detailed visualization of CMs, HMMs and their comparisions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -57525,8 +58055,8 @@ self: {
      }:
      mkDerivation {
        pname = "cobot-io";
-       version = "0.1.3.14";
-       sha256 = "1vkjnyzcl44h9b24k1h5mz61gdz42bs64ifxwijx8a2a72mwmaa6";
+       version = "0.1.3.18";
+       sha256 = "1xyri98rlg4ph9vyjicivq8vb1kk085pbpv43ydw6qvpqlp97wk5";
        libraryHaskellDepends = [
          array attoparsec base binary bytestring containers data-msgpack
          deepseq http-conduit hyraxAbif lens linear mtl split text vector
@@ -57687,7 +58217,7 @@ self: {
          HUnit parsec pretty text
        ];
        description = "A library for manipulating RPM files";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -58039,8 +58569,8 @@ self: {
      }:
      mkDerivation {
        pname = "coinbase-pro";
-       version = "0.8.0.0";
-       sha256 = "021c05qkrvgxlylvrrlb81bjxl49v5varn0fi5wqs5sda15766n3";
+       version = "0.9.2.0";
+       sha256 = "0x7wmm123rf7zk9802bymx1b9pbsnmzhkabyacwini01gb56bwxy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -58191,7 +58721,7 @@ self: {
          base bytestring cassava containers lens optparse-generic split
        ];
        description = "Collapse the duplication output into clones and return their frequencies";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -58480,7 +59010,7 @@ self: {
          linear linearmap-category manifolds semigroups vector-space
        ];
        description = "Instances of the manifold-classes for colour types";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -58798,21 +59328,22 @@ self: {
 
   "comfort-array" = callPackage
     ({ mkDerivation, base, ChasingBottoms, containers, deepseq
-     , guarded-allocation, non-empty, prelude-compat, primitive
-     , QuickCheck, semigroups, storable-record, tagged, transformers
-     , utility-ht
+     , doctest-exitcode-stdio, doctest-lib, guarded-allocation
+     , non-empty, prelude-compat, primitive, QuickCheck, semigroups
+     , storable-record, tagged, transformers, utility-ht
      }:
      mkDerivation {
        pname = "comfort-array";
-       version = "0.4";
-       sha256 = "0jvksvvslvg5wiqin5pd0q0q8a7snhfjh26a98mdakk8dziw1p1m";
+       version = "0.4.1";
+       sha256 = "11nsq6yc3sz259nn9vks49rxq5zzrfwqn9fvi10w3vbnq3wjg9i5";
        libraryHaskellDepends = [
          base containers deepseq guarded-allocation non-empty prelude-compat
          primitive QuickCheck semigroups storable-record tagged transformers
          utility-ht
        ];
        testHaskellDepends = [
-         base ChasingBottoms containers QuickCheck tagged
+         base ChasingBottoms containers doctest-exitcode-stdio doctest-lib
+         QuickCheck tagged
        ];
        description = "Arrays where the index type is a function of the shape type";
        license = lib.licenses.bsd3;
@@ -59521,23 +60052,18 @@ self: {
      }) {};
 
   "compensated" = callPackage
-    ({ mkDerivation, base, bifunctors, binary, bytes, Cabal
-     , cabal-doctest, cereal, comonad, criterion, deepseq, distributive
-     , doctest, generic-deriving, hashable, lens, log-domain, safecopy
-     , semigroupoids, semigroups, simple-reflect, vector
+    ({ mkDerivation, base, bifunctors, binary, bytes, cereal, comonad
+     , criterion, deepseq, distributive, hashable, lens, log-domain
+     , safecopy, semigroupoids, semigroups, vector
      }:
      mkDerivation {
        pname = "compensated";
-       version = "0.8.1";
-       sha256 = "1qr5nsg6fb6ib2wp29c1y05zdbydsng0sfg2k75qsh0avb2cgw7z";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.8.3";
+       sha256 = "0xigi4pcw581d8kjbhdjkksyz9bgcgvq0j17br9z1x6a3hw1m39a";
        libraryHaskellDepends = [
          base bifunctors binary bytes cereal comonad deepseq distributive
          hashable lens log-domain safecopy semigroupoids semigroups vector
        ];
-       testHaskellDepends = [
-         base doctest generic-deriving semigroups simple-reflect
-       ];
        benchmarkHaskellDepends = [ base criterion ];
        description = "Compensated floating-point arithmetic";
        license = lib.licenses.bsd3;
@@ -59564,7 +60090,7 @@ self: {
        sha256 = "0a1pp1jafra1agsx2jizdb33afzg02w6jh4a4pyw5w71kzqfrril";
        libraryHaskellDepends = [ base MissingH ];
        description = "Haskell functionality for quickly assembling simple compilers";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -59681,8 +60207,8 @@ self: {
      }:
      mkDerivation {
        pname = "composable-associations-aeson";
-       version = "0.1.0.0";
-       sha256 = "0kragi8wfd30yxrndxka5p3bivj1qi8svljcdkqnji32dpnm9myv";
+       version = "0.1.0.1";
+       sha256 = "0fpjirwk9si1v8jsdrcxbwn3rqc058na9z5lhbnkha2zc6l8w8rw";
        libraryHaskellDepends = [
          aeson base composable-associations text unordered-containers
        ];
@@ -60449,8 +60975,8 @@ self: {
      }:
      mkDerivation {
        pname = "concurrency";
-       version = "1.11.0.0";
-       sha256 = "19a4za0c65gi2a5n882nyi26cgxrsry64rkd3qiqhvzf7m34cjxd";
+       version = "1.11.0.1";
+       sha256 = "0ds55wpkxlrw2x5ql34p9b05xlycnc4v7962f27a54nhrjfhb2ah";
        libraryHaskellDepends = [
          array atomic-primops base exceptions monad-control mtl stm
          transformers
@@ -60796,7 +61322,7 @@ self: {
        sha256 = "1jdslfnwyh7l10xhk9i0293p0qnw0xsd70d5xgpc6xlijhrsg8wp";
        libraryHaskellDepends = [ array base containers random stm time ];
        description = "a library for live coding and real-time musical applications";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -60809,7 +61335,7 @@ self: {
        sha256 = "1plml14h5d31jr3bvjjgaxcdqssxqfwwnbz9c5gvjlds6lla145p";
        doHaddock = false;
        description = "a library for displaying musical time in a terminal-based clock";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "conductive-hsc3" = callPackage
@@ -60825,7 +61351,7 @@ self: {
          hosc hsc3 random
        ];
        description = "a library with examples of using Conductive with hsc3";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -60838,7 +61364,7 @@ self: {
        sha256 = "16bdsjv64fc3ydv230rja5q9rqzlr4vd9mh3jabiyahck44imrvi";
        libraryHaskellDepends = [ base conductive-base random ];
        description = "a library of functions which are useful for composing music";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -60868,8 +61394,8 @@ self: {
      }:
      mkDerivation {
        pname = "conduit";
-       version = "1.3.4";
-       sha256 = "1w30chhqryhkv82mvwqi1q09fvfxva70280q3nf4h97amld860lz";
+       version = "1.3.4.1";
+       sha256 = "1w96q9nqxvl1s9js1rrzy9x711jpkj8mm6s5nz67jmrdby6knx45";
        libraryHaskellDepends = [
          base bytestring directory exceptions filepath mono-traversable mtl
          primitive resourcet text transformers unix unliftio-core vector
@@ -61390,8 +61916,10 @@ self: {
      }:
      mkDerivation {
        pname = "conferer";
-       version = "1.0.0.1";
-       sha256 = "0cfn6aj265qs1qk5z942g5l2cz2gsj35bapxynj4c90wjl89wz5r";
+       version = "1.1.0.0";
+       sha256 = "1hkdrqxrac1mbzvd29f6ds4cbihdv0j0daai7yc282myv0varh09";
+       revision = "1";
+       editedCabalFile = "0xr6910zn9j07gwc9f9dmlgxiagirmpzjzb9vlaqc0qvpawgq201";
        libraryHaskellDepends = [
          base bytestring containers directory filepath text
        ];
@@ -61409,8 +61937,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-aeson";
-       version = "1.0.0.0";
-       sha256 = "0adqblmpbyqfqybgmjnnwsnaxw8qiqvw5c2bj4avsikz7fhcp0nl";
+       version = "1.1.0.1";
+       sha256 = "1slz2gbnaca8ydl91rjhpjair90qnybcg6zkxdjrwr9jnxsp95s7";
        libraryHaskellDepends = [
          aeson base bytestring conferer directory text unordered-containers
          vector
@@ -61429,8 +61957,10 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-dhall";
-       version = "1.0.0.0";
-       sha256 = "0xw2c1cmjw93x4ala85bxs0lfwlqwdl26lj1n7yc9lk67ln54912";
+       version = "1.1.0.0";
+       sha256 = "0whxxjz5askw1qxcxdn5094bqm2hy3zp49567v57gqikgv6rcnp1";
+       revision = "1";
+       editedCabalFile = "1bbc5a3iy5fcp7ahxndhfg8v0sk74q0hs00miiv8gqg7f3l5b20j";
        libraryHaskellDepends = [
          base bytestring conferer conferer-aeson dhall dhall-json directory
          text
@@ -61449,8 +61979,8 @@ self: {
     ({ mkDerivation, base, conferer, hedis, hspec, text }:
      mkDerivation {
        pname = "conferer-hedis";
-       version = "1.0.0.0";
-       sha256 = "0x150z08x1grzr80fdpkbxprldn08908fgz2mpg3qg219nx4r5n2";
+       version = "1.1.0.0";
+       sha256 = "10rk5w3f99ql46yvzg7a0ac59dvpyfhdpv138w0w5ghgz5azcd19";
        libraryHaskellDepends = [ base conferer hedis text ];
        testHaskellDepends = [ base conferer hedis hspec text ];
        description = "conferer's FromConfig instances for hedis settings";
@@ -61461,8 +61991,8 @@ self: {
     ({ mkDerivation, base, conferer, hspec, hspec-core, text }:
      mkDerivation {
        pname = "conferer-hspec";
-       version = "1.0.0.0";
-       sha256 = "02c4z2999pa04r78n8xzx7idvgg028wlb2fgyk0878wb1gahzsxp";
+       version = "1.1.0.0";
+       sha256 = "0q9v26df3c2rxll6rk2zmmd9yrpqz1j1wdp59qlw2s6c2w7dxq35";
        libraryHaskellDepends = [ base conferer hspec-core text ];
        testHaskellDepends = [ base conferer hspec hspec-core text ];
        description = "conferer's FromConfig instances for hspec Config";
@@ -61541,6 +62071,8 @@ self: {
        pname = "conferer-snap";
        version = "1.0.0.0";
        sha256 = "15gz77b5jf35hmcnd6kza1wgzpbgk3pcvhi7mp7yk64ybksld98r";
+       revision = "1";
+       editedCabalFile = "08bji5mw7lzxpx9s1mlim5nfcz7j6828zj75pn670jfip0in4j19";
        libraryHaskellDepends = [
          base conferer snap-core snap-server text
        ];
@@ -61549,6 +62081,8 @@ self: {
        ];
        description = "conferer's FromConfig instances for snap Config";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "conferer-source-dhall" = callPackage
@@ -61619,8 +62153,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-warp";
-       version = "1.0.0.0";
-       sha256 = "14wrd50dfgc2m6lyfvsx4w605r8krf6ha96j3685vgy6fylff1bd";
+       version = "1.1.0.0";
+       sha256 = "0zbgxq229jr7xwzw6q20rwnslbci07b1vk324izm8hxcp3kb76mj";
        libraryHaskellDepends = [ base conferer http-types text wai warp ];
        testHaskellDepends = [
          base conferer hspec http-types text wai warp
@@ -61633,8 +62167,10 @@ self: {
     ({ mkDerivation, base, conferer, conferer-aeson, hspec, yaml }:
      mkDerivation {
        pname = "conferer-yaml";
-       version = "1.0.0.0";
-       sha256 = "091pkbkjpppkc2ygm8jq22xslr4afbp3kk5377gpx3vh4a0lvswg";
+       version = "1.1.0.0";
+       sha256 = "0pqxwwaskj96virs65p7cb6shkjbczmnqwla7rbfga2l0rw9ww0r";
+       revision = "1";
+       editedCabalFile = "0lw22wp8ivza6inm17pbjvr9mwj6p778wn6w6975hb8gf3wa8grf";
        libraryHaskellDepends = [ base conferer conferer-aeson yaml ];
        testHaskellDepends = [ base conferer conferer-aeson hspec yaml ];
        description = "Configuration for reading yaml files";
@@ -61735,7 +62271,7 @@ self: {
          text time unordered-containers
        ];
        description = "Configuration management";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "config-parser" = callPackage
@@ -61758,10 +62294,10 @@ self: {
      }:
      mkDerivation {
        pname = "config-schema";
-       version = "1.2.1.0";
-       sha256 = "1p5nhvhq7q5s67l4h4zb19ali5jbxrz9mb5cwzhykqmqji56n5vf";
+       version = "1.2.2.0";
+       sha256 = "10mp76j2gxcb51865lb6cf3nkc2nc7fwarkghb6yz71q6sbrg3yx";
        revision = "1";
-       editedCabalFile = "056iks8k9lhbv34pqk8nisqc7vwzqq0shknixbpkd3vgbd3yksyf";
+       editedCabalFile = "0wswgb6m2whyxddm214fbrq69d9i2wrr6j2hhq1dn8p3gx91q3kv";
        libraryHaskellDepends = [
          base config-value containers free kan-extensions pretty
          semigroupoids text transformers
@@ -61784,7 +62320,7 @@ self: {
          base directory filepath unix vty-menu
        ];
        description = "A small program for swapping out dot files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -61846,7 +62382,7 @@ self: {
        ];
        testToolDepends = [ hspec-discover ];
        description = "parser for config files, shell variables, command line args";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -61869,14 +62405,15 @@ self: {
      , base-unicode-symbols, bytestring, Cabal, case-insensitive
      , deepseq, directory, dlist, filepath, mtl, network-uri
      , optparse-applicative, process, profunctors, semigroupoids
-     , semigroups, text, transformers, unordered-containers, yaml
+     , semigroups, text, transformers, unordered-containers, vector
+     , yaml
      }:
      mkDerivation {
        pname = "configuration-tools";
-       version = "0.5.0";
-       sha256 = "0pgx2wzzqxgafgf3qjys05hp89lz4fwczsx0i581n8ngs3p4i0wh";
-       revision = "1";
-       editedCabalFile = "0srscnmj5dhaq0djx0lhcggl53ipn6pw8vgsvgzhhjrbmnn2zb2p";
+       version = "0.6.0";
+       sha256 = "1lncsh3dfl8iz1yr2b0mmpcdyww3cbr3jglp85iqmpvzv66m2kbg";
+       isLibrary = true;
+       isExecutable = true;
        setupHaskellDepends = [
          base bytestring Cabal directory filepath process
        ];
@@ -61885,8 +62422,9 @@ self: {
          bytestring Cabal case-insensitive deepseq directory dlist filepath
          mtl network-uri optparse-applicative process profunctors
          semigroupoids semigroups text transformers unordered-containers
-         yaml
+         vector yaml
        ];
+       executableHaskellDepends = [ base base-unicode-symbols Cabal mtl ];
        testHaskellDepends = [
          base base-unicode-symbols bytestring Cabal mtl text transformers
          unordered-containers yaml
@@ -62135,16 +62673,15 @@ self: {
      }) {};
 
   "connections" = callPackage
-    ({ mkDerivation, base, containers, finite-typelits, hedgehog
-     , transformers, universe-base
-     }:
+    ({ mkDerivation, base, containers, doctest, hedgehog }:
      mkDerivation {
        pname = "connections";
-       version = "0.1.0";
-       sha256 = "0lnskpdfgxjbkqlg82i1gxz8dsns36szyw1mv45nlq7jqspfspgp";
-       libraryHaskellDepends = [
-         base containers finite-typelits transformers universe-base
-       ];
+       version = "0.3.0";
+       sha256 = "0ias6f5nzd83i2x6823ypzp598d8rgp74wmhd4gk7slcyszgpj6l";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers ];
+       executableHaskellDepends = [ base doctest ];
        testHaskellDepends = [ base hedgehog ];
        description = "Orders, Galois connections, and lattices";
        license = lib.licenses.bsd3;
@@ -62198,7 +62735,7 @@ self: {
        sha256 = "07s4p41hjsalbaayxq2j973f3wnk8d7aybvl84fww7sz6mj7kvhw";
        libraryHaskellDepends = [ base ];
        description = "console user prompts";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "console-style" = callPackage
@@ -62212,6 +62749,17 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "const" = callPackage
+    ({ mkDerivation, base, bytestring, primitive, ptrdiff }:
+     mkDerivation {
+       pname = "const";
+       version = "0";
+       sha256 = "09mckqgxpfn0kvc0niyiwix7hzmcc97vdvn9bz2nnbzfaykp0fsm";
+       libraryHaskellDepends = [ base bytestring primitive ptrdiff ];
+       description = "Read-only mutable primitives";
+       license = "(BSD-2-Clause OR Apache-2.0)";
+     }) {};
+
   "const-math-ghc-plugin" = callPackage
     ({ mkDerivation, base, containers, directory, ghc, process }:
      mkDerivation {
@@ -62273,7 +62821,7 @@ self: {
          base contravariant fail semigroups tagged trivial-constraint void
        ];
        description = "Constrained clones of the category-theory type classes, using ConstraintKinds";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -62442,16 +62990,34 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "constraints_0_13" = callPackage
+    ({ mkDerivation, base, binary, deepseq, ghc-prim, hashable, hspec
+     , hspec-discover, mtl, transformers, transformers-compat
+     , type-equality
+     }:
+     mkDerivation {
+       pname = "constraints";
+       version = "0.13";
+       sha256 = "143558jykvya7y8134dx30g6nh27q5s61nbq369p69igd1aayncj";
+       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;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "constraints-deriving" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, filepath, ghc, ghc-paths
      , path, path-io
      }:
      mkDerivation {
        pname = "constraints-deriving";
-       version = "1.1.1.1";
-       sha256 = "06crlqgr5dswjpb9k0d5wizfl8anyrnapqfvp10amq3lgfg3sriz";
-       revision = "1";
-       editedCabalFile = "1fqk2bd5n52yvqx54ck2ypq9a79m8ihp7057j22rglg3b363k8j0";
+       version = "1.1.1.2";
+       sha256 = "1l7ririwwr6zza5m0bdq2bp118i0qaa4x21hypcbb7hz7hn2jqwa";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal ];
@@ -62485,10 +63051,8 @@ self: {
     ({ mkDerivation, aeson, base, constraints, template-haskell }:
      mkDerivation {
        pname = "constraints-extras";
-       version = "0.3.0.2";
-       sha256 = "1n3k5ld6qzq7vlwsqwrm3gsg4z7mk11ah3amazzbvbmxwz8wviys";
-       revision = "2";
-       editedCabalFile = "09mdfzrmnl0mc57n7h0w68i8xgp89y5729p2d2h6qb2qj81qsfq1";
+       version = "0.3.1.0";
+       sha256 = "0hr1xaxypkmd2a856ha8v3jhkh4hr6g8kar0lr4vj3jsj2h6cmks";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base constraints template-haskell ];
@@ -62516,8 +63080,8 @@ self: {
      }:
      mkDerivation {
        pname = "construct";
-       version = "0.3";
-       sha256 = "06h3b1lbq0gdpzz2q5ga0dpgbvyh186z1brzslrwdmkp8qxx883x";
+       version = "0.3.0.1";
+       sha256 = "09x70cvfvkl2rw3r850whw3rbc47yp2w66qmfjzdd9fki31612kc";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
@@ -62534,6 +63098,33 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "construct_0_3_0_2" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, Cabal, cabal-doctest
+     , cereal, directory, doctest, filepath, incremental-parser
+     , input-parsers, markdown-unlit, monoid-subclasses, parsers
+     , rank2classes, tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "construct";
+       version = "0.3.0.2";
+       sha256 = "1qng4g9x9smzg3gydpqyxalb49n9673rfn606qh3mq1xhcvj127j";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         attoparsec base bytestring cereal incremental-parser input-parsers
+         monoid-subclasses parsers rank2classes text
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring cereal directory doctest filepath
+         incremental-parser monoid-subclasses rank2classes tasty tasty-hunit
+         text
+       ];
+       testToolDepends = [ markdown-unlit ];
+       description = "Haskell version of the Construct library for easy specification of file formats";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "constructible" = callPackage
     ({ mkDerivation, base, binary-search, complex-generic
      , integer-roots
@@ -62761,7 +63352,7 @@ self: {
          hspec memory mtl resourcet temporary
        ];
        description = "Store and retrieve data from an on-disk store";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -63481,7 +64072,7 @@ self: {
          pipes-bytestring pipes-csv text vector
        ];
        description = "Convert the annotation of a gene to another in a delimited file using a variety of different databases";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -63610,15 +64201,14 @@ self: {
      }:
      mkDerivation {
        pname = "copilot";
-       version = "3.2";
-       sha256 = "1d1b70kal17aiflhvzz59ahc6iyyln3d70xvhjjjh7j7la03xm8h";
+       version = "3.2.1";
+       sha256 = "1gxa2sc6n7hswkzqrr9dzzgwynw7sdvccyigfhm7gcy1l79gl3iq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base copilot-c99 copilot-core copilot-language copilot-libraries
          copilot-theorem directory filepath optparse-applicative
        ];
-       executableHaskellDepends = [ base copilot-c99 copilot-libraries ];
        description = "A stream DSL for writing embedded C programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -63633,8 +64223,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-c99";
-       version = "3.2";
-       sha256 = "0q0v8xwmcbvi2yvz0nn1kc3ms0i3g74f2k66gwhnznnvldr99qh2";
+       version = "3.2.1";
+       sha256 = "0wi4bd0hmh05z6m7mjl69z1arhnw08v75hnwzxl6dibkrymmq286";
        libraryHaskellDepends = [
          base containers copilot-core directory filepath language-c99
          language-c99-simple language-c99-util mtl pretty
@@ -63671,8 +64261,8 @@ self: {
     ({ mkDerivation, base, dlist, mtl, pretty }:
      mkDerivation {
        pname = "copilot-core";
-       version = "3.2";
-       sha256 = "0l13zqycini9fkiy90i0dzi831lqv8lwpdk0dzrk9r0c545iy2ga";
+       version = "3.2.1";
+       sha256 = "1h9wqv75s49vvqagcdkxx8n5vwn0fsh271v2jm60msssdd7ljwp6";
        libraryHaskellDepends = [ base dlist mtl pretty ];
        description = "An intermediate representation for Copilot";
        license = lib.licenses.bsd3;
@@ -63684,8 +64274,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-language";
-       version = "3.2";
-       sha256 = "1vx2i20ndphcb7gl252wnk2bim2dcg3552yfa0rpkh8axkiwmnpa";
+       version = "3.2.1";
+       sha256 = "03r50k3i24rzjkc1maklq7351flzjv3cc2i6d1shib3dklzjsw8l";
        libraryHaskellDepends = [
          array base containers copilot-core copilot-theorem data-reify
          ghc-prim mtl
@@ -63702,8 +64292,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-libraries";
-       version = "3.2";
-       sha256 = "0sjl6bk2fzba2zj0m41si0i2jr8pcwf96zc1vscwmhfg48hqxjg1";
+       version = "3.2.1";
+       sha256 = "1grcpc9lmqvsi3cb9j45w6hvqdljv7z0yylxf3i2i5y931gj6gpv";
        libraryHaskellDepends = [
          array base containers copilot-language data-reify mtl parsec
        ];
@@ -63731,17 +64321,19 @@ self: {
      }) {};
 
   "copilot-theorem" = callPackage
-    ({ mkDerivation, ansi-terminal, base, bimap, containers
-     , copilot-core, data-default, directory, mtl, parsec, pretty
-     , process, random, transformers, xml
+    ({ mkDerivation, ansi-terminal, base, bimap, bv-sized, containers
+     , copilot-core, data-default, directory, filepath, mtl, panic
+     , parameterized-utils, parsec, pretty, process, random
+     , transformers, what4, xml
      }:
      mkDerivation {
        pname = "copilot-theorem";
-       version = "3.2";
-       sha256 = "1l0vmxlrygvxq23nvjss8x53qlfhbshp5vlh3cs6mviv1hmpbg7v";
+       version = "3.2.1";
+       sha256 = "1vns5bavlm95hc57qwwjpzaq0xj5pv3dk2n1ac0rbjdbpsa3dl4l";
        libraryHaskellDepends = [
-         ansi-terminal base bimap containers copilot-core data-default
-         directory mtl parsec pretty process random transformers xml
+         ansi-terminal base bimap bv-sized containers copilot-core
+         data-default directory filepath mtl panic parameterized-utils
+         parsec pretty process random transformers what4 xml
        ];
        description = "k-induction for Copilot";
        license = lib.licenses.bsd3;
@@ -64478,6 +65070,17 @@ self: {
        broken = true;
      }) {};
 
+  "cps-except" = callPackage
+    ({ mkDerivation, base, mtl, mtl-compat }:
+     mkDerivation {
+       pname = "cps-except";
+       version = "0.0.1.2";
+       sha256 = "0vr53825szvw8274vba9ylr0xqla16sn0wcpy8ap1yh55in9k24w";
+       libraryHaskellDepends = [ base mtl mtl-compat ];
+       description = "ExceptT replacement in CPS style";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "cpsa" = callPackage
     ({ mkDerivation, base, containers, directory, parallel }:
      mkDerivation {
@@ -64530,6 +65133,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "cpuinfo_0_1_0_2" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, deepseq }:
+     mkDerivation {
+       pname = "cpuinfo";
+       version = "0.1.0.2";
+       sha256 = "0973bkgcfha0xyimizgq55w4a32gjgklcikfhcwkak4m9czwyynr";
+       libraryHaskellDepends = [ attoparsec base bytestring deepseq ];
+       description = "Haskell Library for Checking CPU Information";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "cpuperf" = callPackage
     ({ mkDerivation, base, mtl, process }:
      mkDerivation {
@@ -64557,7 +65172,7 @@ self: {
        testHaskellDepends = [ base text ];
        testPkgconfigDepends = [ python3 ];
        description = "Bindings for libpython";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) python3;};
@@ -64569,8 +65184,8 @@ self: {
      }:
      mkDerivation {
        pname = "cql";
-       version = "4.0.2";
-       sha256 = "0b6806ahmg4yacx5wc4v53gihhkwywajhqm13kb11nxabww3lapl";
+       version = "4.0.3";
+       sha256 = "1b6bqhg3rf2kk7i81l4vsgyp7zxiycifdrsj8qa4sqx78m72dmxh";
        libraryHaskellDepends = [
          base bytestring cereal containers Decimal iproute network
          template-haskell text time transformers uuid vector
@@ -64808,7 +65423,7 @@ self: {
          base cmdargs directory process shelly text transformers unix
        ];
        description = "Code review tool";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -64841,6 +65456,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "crackNum_3_1" = callPackage
+    ({ mkDerivation, base, directory, filepath, libBF, process, sbv
+     , tasty, tasty-golden
+     }:
+     mkDerivation {
+       pname = "crackNum";
+       version = "3.1";
+       sha256 = "1qavlqz1ca2c0v029kijlnf51l2sdiwk6dkx8kyk6xqp97bhx8rk";
+       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;
+     }) {};
+
   "craft" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
      , bytestring, conduit, conduit-combinators, conduit-extra
@@ -65292,6 +65925,8 @@ self: {
        pname = "criterion";
        version = "1.5.9.0";
        sha256 = "0qhlylhra1d3vzk6miqv0gdrn10gw03bdwv8b4bfmdzgpf0zgqr1";
+       revision = "1";
+       editedCabalFile = "140444pqw65vsqpa168c13cljb66rdgvq41mxnvds296wxq2yz7i";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -65315,6 +65950,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "criterion-cmp" = callPackage
+    ({ mkDerivation, ansi-terminal, base, boxes, bytestring, cassava
+     , containers, filepath, optparse-applicative, vector
+     }:
+     mkDerivation {
+       pname = "criterion-cmp";
+       version = "0.1.0.0";
+       sha256 = "0p9l9c89bg1n7xjdq3npvknlfb36gkvpgwhq7i0qd2g20ysdxppd";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         ansi-terminal base boxes bytestring cassava containers filepath
+         optparse-applicative vector
+       ];
+       description = "A simple tool for comparing in Criterion benchmark results";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "criterion-compare" = callPackage
     ({ mkDerivation, base, bytestring, cassava, Chart, Chart-diagrams
      , clay, colour, containers, data-default, filepath, lens, lucid
@@ -65480,7 +66135,7 @@ self: {
          mersenne-random-pure64 mtl parallel
        ];
        description = "An offline renderer supporting ray tracing and photon mapping";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -65589,8 +66244,8 @@ self: {
        pname = "crypt-sha512";
        version = "0";
        sha256 = "1wsma9frdrn39i506zydlzlk1ir6jh1pidqfjms8rwqjpx965gn2";
-       revision = "4";
-       editedCabalFile = "0a4282bhh21l7vk79hpgcz7kj9n05r0ilgdksjkimkydg7sxgldb";
+       revision = "6";
+       editedCabalFile = "1fkwa9vqkavy6pmig971xbk70kwn7hfpa7d1afvsp9g8sqpl52hz";
        libraryHaskellDepends = [
          attoparsec base bytestring cryptohash-sha512
        ];
@@ -66259,17 +66914,17 @@ self: {
   "cryptol" = callPackage
     ({ mkDerivation, alex, ansi-terminal, array, async, base
      , base-compat, blaze-html, bv-sized, bytestring, containers
-     , criterion, cryptohash-sha1, deepseq, directory, exceptions
+     , criterion, cryptohash-sha1, deepseq, directory, exceptions, extra
      , filepath, ghc-prim, gitrev, GraphSCC, happy, haskeline, heredoc
-     , integer-gmp, libBF, MemoTrie, monad-control, monadLib, mtl, panic
-     , parameterized-utils, pretty, process, random, sbv, simple-smt
-     , stm, strict, text, tf-random, time, transformers
-     , transformers-base, what4
+     , integer-gmp, libBF, MemoTrie, monad-control, monadLib, mtl
+     , optparse-applicative, panic, parameterized-utils, pretty, process
+     , random, sbv, simple-smt, stm, strict, temporary, text, tf-random
+     , time, transformers, transformers-base, what4
      }:
      mkDerivation {
        pname = "cryptol";
-       version = "2.10.0";
-       sha256 = "0qzgfd0nn070rca8mdm2gi7ah9aghn1kpr3fl4dx56kbfva23yhb";
+       version = "2.11.0";
+       sha256 = "05h751lxyym27b5kfrcss5vjg4ifpl4lqgxvvp6fz4mpbigm7ds3";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -66283,7 +66938,8 @@ self: {
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [
          ansi-terminal base base-compat blaze-html containers directory
-         filepath haskeline monad-control text transformers
+         extra filepath haskeline monad-control mtl optparse-applicative
+         process temporary text transformers
        ];
        benchmarkHaskellDepends = [
          base criterion deepseq directory filepath sbv text
@@ -66301,28 +66957,6 @@ self: {
      }:
      mkDerivation {
        pname = "cryptonite";
-       version = "0.27";
-       sha256 = "1c68wvn2b49gijq9day2bzi0axcbdz41ip3j0wdahdhcjfl4a9y8";
-       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;
-     }) {};
-
-  "cryptonite_0_28" = callPackage
-    ({ mkDerivation, base, basement, bytestring, deepseq, gauge
-     , ghc-prim, integer-gmp, memory, random, tasty, tasty-hunit
-     , tasty-kat, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "cryptonite";
        version = "0.28";
        sha256 = "1nx568qv25dxhbii7lzf1hbv0dyz95z715mmxjnnrkgpwdm8ibbl";
        libraryHaskellDepends = [
@@ -66336,7 +66970,6 @@ self: {
        ];
        description = "Cryptography Primitives sink";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "cryptonite-conduit" = callPackage
@@ -66421,7 +67054,7 @@ self: {
          unordered-containers vector
        ];
        description = "Bindings for Cryptsy cryptocurrency exchange API";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -66693,8 +67326,8 @@ self: {
      }:
      mkDerivation {
        pname = "css-selectors";
-       version = "0.2.0.0";
-       sha256 = "1wyc06f14nj5v5ysjly3jimja3y47pvnm8vm2knlw3sli1h0pgxi";
+       version = "0.2.1.0";
+       sha256 = "1kcxbvp96imhkdrd7w9g2z4d586lmdcpnbgl8g5w04ri85qsq162";
        libraryHaskellDepends = [
          aeson array base blaze-markup data-default Decimal QuickCheck
          shakespeare template-haskell text
@@ -66889,7 +67522,7 @@ self: {
        libraryHaskellDepends = [ array base chatty-text chatty-utils ];
        executableHaskellDepends = [ array base chatty-text chatty-utils ];
        description = "A programming language for text modification";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -66952,6 +67585,8 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Implementation of Univalence in Cubical Sets";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "cubicbezier" = callPackage
@@ -67232,6 +67867,18 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "curly-expander" = callPackage
+    ({ mkDerivation, base, parsec, text }:
+     mkDerivation {
+       pname = "curly-expander";
+       version = "0.3.0.0";
+       sha256 = "08yw57f08rcvhnqsljndnqgbkll3zgf22xnqpjxlf1b6a8yfbqxm";
+       libraryHaskellDepends = [ base parsec text ];
+       testHaskellDepends = [ base parsec text ];
+       description = "Curly braces (brackets) expanding";
+       license = lib.licenses.lgpl3Only;
+     }) {};
+
   "currencies" = callPackage
     ({ mkDerivation, base, hspec, text }:
      mkDerivation {
@@ -67695,7 +68342,7 @@ self: {
          allocated-processor base HOpenCV vector-space
        ];
        description = "Functional Combinators for Computer Vision";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -67726,7 +68373,7 @@ self: {
          test-framework-quickcheck2 test-framework-smallcheck
        ];
        description = "A subfield of the complex numbers for exact calculation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "cypher" = callPackage
@@ -67823,7 +68470,7 @@ self: {
        executableHaskellDepends = [ base c-storable-deriving vect Win32 ];
        description = "A raw binding for the directX 11";
        license = lib.licenses.mit;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {D3DCompiler = null; d3d11 = null; d3dx11 = null; 
          d3dxof = null; dxgi = null; dxguid = null;};
 
@@ -67849,7 +68496,7 @@ self: {
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base directory unix ];
        description = "Start background daemons by double-forking";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "daemons" = callPackage
@@ -67877,7 +68524,7 @@ self: {
          test-framework-hunit unix
        ];
        description = "Daemons in Haskell made fun and easy";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "dag" = callPackage
@@ -67969,7 +68616,7 @@ self: {
          utf8-string
        ];
        description = "Dao is meta programming language with its own built-in interpreted language, designed with artificial intelligence applications in mind";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -68313,7 +68960,7 @@ self: {
          base binary bytestring criterion transformers
        ];
        description = "Utility and parser for DarkPlaces demo files";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -68331,7 +68978,7 @@ self: {
        ];
        testHaskellDepends = [ base bytestring hspec hspec-core ];
        description = "Darkplaces rcon client library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -68362,7 +69009,7 @@ self: {
          text
        ];
        description = "Darplaces rcon utility";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -68381,7 +69028,7 @@ self: {
        libraryToolDepends = [ alex ];
        testHaskellDepends = [ base bytestring hspec QuickCheck ];
        description = "Parser for darkplaces colorful text";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -68403,7 +69050,7 @@ self: {
          text transformers
        ];
        description = "Convert package Haddock to Dash docsets (IDE docs)";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -68516,22 +69163,6 @@ self: {
      }:
      mkDerivation {
        pname = "data-ascii";
-       version = "1.0.0.4";
-       sha256 = "17pb1kmqln7cswsc4c7xipq619aj2y0kjhrcm23r8b39c0g02scy";
-       libraryHaskellDepends = [
-         base blaze-builder bytestring case-insensitive hashable semigroups
-         text
-       ];
-       description = "Type-safe, bytestring-based ASCII values";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "data-ascii_1_0_0_6" = callPackage
-    ({ mkDerivation, base, blaze-builder, bytestring, case-insensitive
-     , hashable, semigroups, text
-     }:
-     mkDerivation {
-       pname = "data-ascii";
        version = "1.0.0.6";
        sha256 = "0j8mk1gdxcczhwcs75rx50zh6vxv2vkd1rf5n6q4ryn8wm5r3gcr";
        libraryHaskellDepends = [
@@ -68540,7 +69171,6 @@ self: {
        ];
        description = "Type-safe, bytestring-based ASCII values";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "data-aviary" = callPackage
@@ -68713,6 +69343,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "data-compat_0_1_0_3" = callPackage
+    ({ mkDerivation, base, constraints }:
+     mkDerivation {
+       pname = "data-compat";
+       version = "0.1.0.3";
+       sha256 = "1wfm561ird8hv0d52gfyx684xmvps90s4cly8knwwv31cz9r9vpg";
+       libraryHaskellDepends = [ base constraints ];
+       description = "Define Backwards Compatibility Schemes for Arbitrary Data";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "data-concurrent-queue" = callPackage
     ({ mkDerivation, base, stm }:
      mkDerivation {
@@ -68985,7 +69627,7 @@ self: {
          test-framework-quickcheck2 vector
        ];
        description = "Space-efficient and privacy-preserving data dispersal algorithms";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -69374,19 +70016,21 @@ self: {
 
   "data-interval" = callPackage
     ({ mkDerivation, base, ChasingBottoms, containers, deepseq
-     , extended-reals, hashable, HUnit, lattices, QuickCheck, syb, tasty
-     , tasty-hunit, tasty-quickcheck, tasty-th
+     , extended-reals, hashable, HUnit, lattices, QuickCheck
+     , quickcheck-classes-base, syb, tasty, tasty-hunit
+     , tasty-quickcheck, tasty-th
      }:
      mkDerivation {
        pname = "data-interval";
-       version = "2.0.1";
-       sha256 = "0vz73vwbr484s0dxg9y0y1mfbni8aky3hyh93pmzb8zb67gy4cak";
+       version = "2.1.0";
+       sha256 = "0f4dgpqmp4y9fidlb3z5dlcmv0qb6pqbxbf57jjjz49r7g6adzlq";
        libraryHaskellDepends = [
          base containers deepseq extended-reals hashable lattices
        ];
        testHaskellDepends = [
          base ChasingBottoms containers deepseq hashable HUnit lattices
-         QuickCheck syb tasty tasty-hunit tasty-quickcheck tasty-th
+         QuickCheck quickcheck-classes-base syb tasty tasty-hunit
+         tasty-quickcheck tasty-th
        ];
        description = "Interval datatype, interval arithmetic and interval-based containers";
        license = lib.licenses.bsd3;
@@ -69552,7 +70196,7 @@ self: {
        sha256 = "0r3y66lxgk0sdg500xnz0fvg4dvzvx47imnw0qkici22b9d92kv8";
        libraryHaskellDepends = [ base ];
        description = "Utilities for working with sequences within lists";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "data-list-zigzag" = callPackage
@@ -70880,7 +71524,7 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
-  "dbus_1_2_18" = callPackage
+  "dbus_1_2_21" = callPackage
     ({ mkDerivation, base, bytestring, cereal, conduit, containers
      , criterion, deepseq, directory, exceptions, extra, filepath, lens
      , network, parsec, process, QuickCheck, random, resourcet, split
@@ -70889,8 +71533,8 @@ self: {
      }:
      mkDerivation {
        pname = "dbus";
-       version = "1.2.18";
-       sha256 = "15ggmggzgzf0xmj80rj14dyk83vra6yzm5pm92psnc4spn213p73";
+       version = "1.2.21";
+       sha256 = "023lfywmxc5qqb31jaxpcf319az8ma9k9b0lkgriklskacq9sadi";
        libraryHaskellDepends = [
          base bytestring cereal conduit containers deepseq exceptions
          filepath lens network parsec random split template-haskell text
@@ -70920,7 +71564,7 @@ self: {
          base containers dbus-core monads-tf text transformers
        ];
        description = "Monadic and object-oriented interfaces to DBus";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -70939,7 +71583,7 @@ self: {
          network parsec text unix vector xml-types
        ];
        description = "Low-level D-Bus protocol implementation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -71079,7 +71723,7 @@ self: {
        sha256 = "1mw0qn7c6ag2w6gn6pwpjf979m3p5v3p9a1kal2x8g8ncx98dcn5";
        libraryHaskellDepends = [ base dates time ];
        description = "Discordian Date Types for Haskell";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -71598,7 +72242,7 @@ self: {
          wai-websockets warp websockets
        ];
        description = "secure remote debugging";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -71678,10 +72322,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "dec";
-       version = "0.0.3";
-       sha256 = "1y8bvlm2371dq2v0jv1srki98nbhbz091wh0g2x58wz78h971f6r";
-       revision = "2";
-       editedCabalFile = "1v5f5yby0cld1ziqqgkcx8b50qkpviplspm82a6wl7lw28cjm0hs";
+       version = "0.0.4";
+       sha256 = "0yslffafmqfkvhcw2arpc53hfmn1788z85ss9lxnbclr29lbvzgc";
        libraryHaskellDepends = [ base ];
        description = "Decidable propositions";
        license = lib.licenses.bsd3;
@@ -71744,7 +72386,7 @@ self: {
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Preprocessing decimal literals more or less as they are (instead of via fractions)";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -71756,8 +72398,8 @@ self: {
      }:
      mkDerivation {
        pname = "declarative";
-       version = "0.5.3";
-       sha256 = "021rhdhj2sji316mkm1fw679w7xb9n51x9pslmj21427q127ycw3";
+       version = "0.5.4";
+       sha256 = "10dwdzl4gbxwvb068kz8kiprk18bwl79pkyhyyrmfzawf8zp3pha";
        libraryHaskellDepends = [
          base hasty-hamiltonian kan-extensions lens mcmc-types
          mighty-metropolis mwc-probability pipes primitive speedy-slice
@@ -72020,8 +72662,8 @@ self: {
      }:
      mkDerivation {
        pname = "deferred-folds";
-       version = "0.9.15";
-       sha256 = "0jijnjy6x6f86dmlhiaj9gl13zbwzaz4gpb8svzdwwws48bwwyqr";
+       version = "0.9.17";
+       sha256 = "1dn7ylqsqrc5s734xc4bsif6f53hg84i8w7zi929pikjl7xkbrch";
        libraryHaskellDepends = [
          base bytestring containers foldl hashable primitive text
          transformers unordered-containers vector
@@ -72173,8 +72815,8 @@ self: {
      }:
      mkDerivation {
        pname = "dejafu";
-       version = "2.4.0.1";
-       sha256 = "0zysf0hjfdd5iypllbiyih312kl2hsfwiqf6030i7q432yc3f8vd";
+       version = "2.4.0.2";
+       sha256 = "1hwhyxjjwapk6jgsbs0vh033xbc9b8mr5iqd93vskvvljnb40v9h";
        libraryHaskellDepends = [
          base concurrency containers contravariant deepseq exceptions
          leancheck profunctors random transformers
@@ -72320,7 +72962,7 @@ self: {
        ];
        testHaskellDepends = [ base directory filepath hspec ];
        description = "A library for detecting file changes";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -72473,6 +73115,8 @@ self: {
        ];
        description = "Reader-like monad transformer for dependency injection";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "dep-t-advice" = callPackage
@@ -72495,6 +73139,8 @@ self: {
        ];
        description = "Giving good advice to functions in a DepT environment";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "dependency" = callPackage
@@ -72614,6 +73260,8 @@ self: {
        pname = "dependent-sum";
        version = "0.7.1.0";
        sha256 = "0aj63gvak0y4mgxndykqfg5w958hf7lp5blml2z647rjgy85bjw1";
+       revision = "1";
+       editedCabalFile = "0h9rr26ksrqfnfjibnrzbf6hyp1mmffgzbvjjxjs6vdqylvr4h8f";
        libraryHaskellDepends = [ base constraints-extras some ];
        description = "Dependent sum type";
        license = lib.licenses.publicDomain;
@@ -72862,7 +73510,7 @@ self: {
        sha256 = "08zhyn9xcmhrrnh7y2a1r7v4nmgm2af0d41ns0wjqais67rzsxsp";
        libraryHaskellDepends = [ base data-default ];
        description = "Generic instances for enumerating complex data types";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -73000,8 +73648,8 @@ self: {
     ({ mkDerivation, aeson, base, bytestring }:
      mkDerivation {
        pname = "deriving-aeson";
-       version = "0.2.6";
-       sha256 = "0x9sv8r0ziy14zk6lcgzgxbmx9mrlngc0r1bqg6gkgxhswmjc2jq";
+       version = "0.2.6.1";
+       sha256 = "014f3jsaiwqkz2l0jap8shwq3rdn1hq14ahmq0hm3l4c98vznjra";
        libraryHaskellDepends = [ aeson base ];
        testHaskellDepends = [ aeson base bytestring ];
        description = "Type driven generic aeson instance customisation";
@@ -73113,7 +73761,7 @@ self: {
        sha256 = "00rk7m54igmrsi8j2fmql7c5wgyg7x5ws8397753470x5k2qv2ap";
        libraryHaskellDepends = [ base ];
        description = "Loads a list of items with fields";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "descript-lang" = callPackage
@@ -73147,7 +73795,7 @@ self: {
          transformers yaml
        ];
        description = "Library, interpreter, and CLI for Descript programming language";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -73617,8 +74265,62 @@ self: {
        pname = "dhall";
        version = "1.38.0";
        sha256 = "0ifxi9i7ply640s2cgljjczvmblgz0ryp2p9yxgng3qm5ai58229";
-       revision = "1";
-       editedCabalFile = "067hh41cnmjskf3y3kzlwsisw6v5bh9mbmhg5jfapm1y5xp6gw9r";
+       revision = "2";
+       editedCabalFile = "13ppbn4kcrfls9fm9sqjwa4hb4nj8q6fqfxj3a62vck7qc1rbvn0";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty ansi-terminal atomic-write base bytestring
+         case-insensitive cborg cborg-json containers contravariant
+         cryptonite data-fix deepseq Diff directory dotgen either exceptions
+         filepath half hashable haskeline http-client http-client-tls
+         http-types lens-family-core megaparsec memory mmorph mtl
+         network-uri optparse-applicative parser-combinators parsers
+         pretty-simple prettyprinter prettyprinter-ansi-terminal profunctors
+         repline scientific serialise template-haskell text text-manipulate
+         th-lift-instances transformers transformers-compat
+         unordered-containers uri-encode vector
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base bytestring cborg containers data-fix deepseq directory doctest
+         either filepath foldl generic-random http-client http-client-tls
+         lens-family-core megaparsec mockery prettyprinter QuickCheck
+         quickcheck-instances scientific serialise special-values spoon
+         tasty tasty-expected-failure tasty-hunit tasty-quickcheck
+         tasty-silver template-haskell text transformers turtle
+         unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers directory gauge text
+       ];
+       doCheck = false;
+       description = "A configuration language guaranteed to terminate";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "dhall_1_38_1" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, atomic-write
+     , base, bytestring, case-insensitive, cborg, cborg-json, containers
+     , contravariant, cryptonite, data-fix, deepseq, Diff, directory
+     , doctest, dotgen, either, exceptions, filepath, foldl, gauge
+     , generic-random, half, hashable, haskeline, http-client
+     , http-client-tls, http-types, lens-family-core, megaparsec, memory
+     , mmorph, mockery, mtl, network-uri, optparse-applicative
+     , parser-combinators, parsers, pretty-simple, prettyprinter
+     , prettyprinter-ansi-terminal, profunctors, QuickCheck
+     , quickcheck-instances, repline, scientific, serialise
+     , special-values, spoon, tasty, tasty-expected-failure, tasty-hunit
+     , tasty-quickcheck, tasty-silver, template-haskell, text
+     , text-manipulate, th-lift-instances, transformers
+     , transformers-compat, turtle, unordered-containers, uri-encode
+     , vector
+     }:
+     mkDerivation {
+       pname = "dhall";
+       version = "1.38.1";
+       sha256 = "0g70x2crdrkwf41gvwr718am25dmbn9bg4cml9f9va7i1vx5rsgk";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -73650,6 +74352,7 @@ self: {
        doCheck = false;
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dhall-bash" = callPackage
@@ -73660,6 +74363,8 @@ self: {
        pname = "dhall-bash";
        version = "1.0.36";
        sha256 = "0hg45xjl1pcla9xbds40qrxcx2h6b4ysw8kbx8hpnaqaazr2jrw0";
+       revision = "1";
+       editedCabalFile = "1jc74gydr3yx01xp1a69a3g9mbfqyzsmv1053xm51bcxxv6p6z9d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -73694,17 +74399,15 @@ self: {
 
   "dhall-docs" = callPackage
     ({ mkDerivation, base, bytestring, containers, cryptonite, dhall
-     , directory, doctest, file-embed, filepath, foldl, HaXml
-     , lens-family-core, lucid, megaparsec, memory, mmark, mtl
-     , optparse-applicative, path, path-io, pretty, prettyprinter, tasty
-     , tasty-hunit, tasty-silver, text, transformers, turtle
+     , directory, doctest, file-embed, filepath, foldl, lens-family-core
+     , lucid, megaparsec, memory, mmark, mtl, optparse-applicative, path
+     , path-io, pretty, prettyprinter, tasty, tasty-hunit, tasty-silver
+     , text, transformers, turtle
      }:
      mkDerivation {
        pname = "dhall-docs";
-       version = "1.0.4";
-       sha256 = "0x6x5b9kh0in35jsgj2dghyxsqjdjrw7s9kngyjcn7v2ycklcifl";
-       revision = "2";
-       editedCabalFile = "1y8aaph8zg3lp53apvkg0s6zviz3sa82qq1dnbqn6xjgb1dqjr7z";
+       version = "1.0.5";
+       sha256 = "00s1vhwilnr6hvv56w98kc1md08lw6v80v8a7yhwrmg9qggwdc12";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -73716,8 +74419,7 @@ self: {
        executableHaskellDepends = [ base dhall ];
        testHaskellDepends = [
          base bytestring containers dhall directory doctest filepath foldl
-         HaXml path path-io pretty tasty tasty-hunit tasty-silver text
-         turtle
+         path path-io pretty tasty tasty-hunit tasty-silver text turtle
        ];
        description = "Generate HTML docs from a dhall package";
        license = lib.licenses.bsd3;
@@ -73770,8 +74472,8 @@ self: {
        pname = "dhall-json";
        version = "1.7.5";
        sha256 = "1fpkp8xkcw2abcigypyl0ji6910jyshlqwhf48yfwn6dsgbyw6iy";
-       revision = "1";
-       editedCabalFile = "0vl9vb84r1fz80jvqxaq4624pk67hxkm3vsx5j0l3bz8mk439yzn";
+       revision = "2";
+       editedCabalFile = "0181ma0qzkcfg4g5fcyivmjfn542m9cmq74r6hxilfjvfzhk7fqw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -73790,6 +74492,36 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "dhall-json_1_7_6" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, aeson-yaml, ansi-terminal
+     , base, bytestring, containers, dhall, exceptions, filepath
+     , lens-family-core, optparse-applicative, prettyprinter
+     , prettyprinter-ansi-terminal, scientific, tasty, tasty-hunit
+     , tasty-silver, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "dhall-json";
+       version = "1.7.6";
+       sha256 = "1fl5ngp1qh77qr27ax5009siy20cas6fm55776zhs82zb96sli0n";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty aeson-yaml base bytestring containers dhall
+         exceptions filepath lens-family-core optparse-applicative
+         prettyprinter scientific text unordered-containers vector
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty ansi-terminal base bytestring dhall exceptions
+         optparse-applicative prettyprinter prettyprinter-ansi-terminal text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring dhall tasty tasty-hunit tasty-silver text
+       ];
+       description = "Convert between Dhall and JSON or YAML";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "dhall-lex" = callPackage
     ({ mkDerivation, alex, array, base, bytestring, criterion, deepseq
      , hspec, hspec-dirstream, scientific
@@ -73821,8 +74553,8 @@ self: {
        pname = "dhall-lsp-server";
        version = "1.0.13";
        sha256 = "0cj51xdmpp0w7ndzbz4yn882agvhbnsss3myqlhfi4y91lb8f1ak";
-       revision = "2";
-       editedCabalFile = "1gmcfp6i36y00z4gyllcq62rgpjz2x7fgdy4n6d24ygczpqbwy9k";
+       revision = "4";
+       editedCabalFile = "04m040956j49qr8hzlj2jj101pjj6n0f5g5hhf5m73y1bww43ahf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -73840,6 +74572,36 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "dhall-lsp-server_1_0_14" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
+     , data-default, dhall, dhall-json, directory, doctest, filepath
+     , haskell-lsp, haskell-lsp-types, hslogger, lens, lsp-test
+     , megaparsec, mtl, network-uri, optparse-applicative, prettyprinter
+     , QuickCheck, rope-utf16-splay, tasty, tasty-hspec, text
+     , transformers, unordered-containers, uri-encode
+     }:
+     mkDerivation {
+       pname = "dhall-lsp-server";
+       version = "1.0.14";
+       sha256 = "1jy80w3lr6c0hvn0525h5kn6fh9rj6ir942hdkilrzd9farg6qj9";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring containers data-default dhall
+         dhall-json directory filepath haskell-lsp hslogger lens megaparsec
+         mtl network-uri prettyprinter rope-utf16-splay text transformers
+         unordered-containers uri-encode
+       ];
+       executableHaskellDepends = [ base optparse-applicative ];
+       testHaskellDepends = [
+         base directory doctest filepath haskell-lsp-types lsp-test
+         QuickCheck tasty tasty-hspec text
+       ];
+       description = "Language Server Protocol (LSP) server for Dhall";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "dhall-nix" = callPackage
     ({ mkDerivation, base, containers, data-fix, dhall, hnix
      , lens-family-core, neat-interpolation, optparse-generic, text
@@ -73888,6 +74650,30 @@ self: {
        broken = true;
      }) {};
 
+  "dhall-openapi" = callPackage
+    ({ mkDerivation, aeson, base, containers, dhall, directory
+     , filepath, megaparsec, optparse-applicative, parser-combinators
+     , prettyprinter, scientific, sort, text, vector
+     }:
+     mkDerivation {
+       pname = "dhall-openapi";
+       version = "1.0.0";
+       sha256 = "1dg1hj8yfm08bzzirzg6cq26vkxv6i86rrf96a73pb1hpz3jjq7j";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base containers dhall prettyprinter scientific sort text
+         vector
+       ];
+       executableHaskellDepends = [
+         aeson base containers dhall directory filepath megaparsec
+         optparse-applicative parser-combinators prettyprinter sort text
+         vector
+       ];
+       description = "Convert an OpenAPI specification to a Dhall package";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "dhall-recursive-adt" = callPackage
     ({ mkDerivation, base, data-fix, dhall, either, hedgehog
      , neat-interpolation, recursion-schemes, tasty, tasty-hedgehog
@@ -73904,6 +74690,8 @@ self: {
        ];
        description = "Convert recursive ADTs from and to Dhall";
        license = lib.licenses.cc0;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "dhall-text" = callPackage
@@ -73965,6 +74753,36 @@ self: {
        pname = "dhall-yaml";
        version = "1.2.5";
        sha256 = "0fax4p85344yrzk1l21j042mm02p0idp396vkq71x3dpiniq0mwf";
+       revision = "1";
+       editedCabalFile = "034rykrnmsnc9v9hsblkzjp26b8wv265sd31gwhqxy2358y4s33h";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring dhall dhall-json HsYAML HsYAML-aeson
+         optparse-applicative text vector
+       ];
+       executableHaskellDepends = [
+         aeson ansi-terminal base bytestring dhall dhall-json exceptions
+         optparse-applicative prettyprinter prettyprinter-ansi-terminal text
+       ];
+       testHaskellDepends = [
+         base bytestring dhall dhall-json tasty tasty-expected-failure
+         tasty-hunit text
+       ];
+       description = "Convert between Dhall and YAML";
+       license = lib.licenses.gpl3Only;
+     }) {};
+
+  "dhall-yaml_1_2_6" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, dhall
+     , dhall-json, exceptions, HsYAML, HsYAML-aeson
+     , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
+     , tasty, tasty-expected-failure, tasty-hunit, text, vector
+     }:
+     mkDerivation {
+       pname = "dhall-yaml";
+       version = "1.2.6";
+       sha256 = "0v6f513hxn382h4l8hyj9gxara3xdfcrldzri0i3yjvir62bkicm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -73980,7 +74798,8 @@ self: {
          tasty-hunit text
        ];
        description = "Convert between Dhall and YAML";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dhcp-lease-parser" = callPackage
@@ -74180,8 +74999,6 @@ self: {
        doHaddock = false;
        description = "Embedded domain-specific language for declarative vector graphics";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-boolean" = callPackage
@@ -74326,8 +75143,6 @@ self: {
        ];
        description = "Collection of user contributions to diagrams EDSL";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-core" = callPackage
@@ -74347,8 +75162,6 @@ self: {
        ];
        description = "Core libraries for diagrams EDSL";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-graphviz" = callPackage
@@ -74485,8 +75298,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion diagrams-core ];
        description = "Embedded domain-specific language for declarative graphics";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-pandoc" = callPackage
@@ -74574,8 +75385,6 @@ self: {
        ];
        description = "Postscript backend for diagrams drawing EDSL";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-qrcode" = callPackage
@@ -74659,8 +75468,8 @@ self: {
      }:
      mkDerivation {
        pname = "diagrams-solve";
-       version = "0.1.2";
-       sha256 = "1qzycw3aj4107dqpgir3ak7pnja3a6i4ax15gd2q2fjzmp4p3z24";
+       version = "0.1.3";
+       sha256 = "09qqwcvbvd3a0j5fnp40dbzw0i3py9c7kgizj2aawajwbyjvpd17";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base deepseq tasty tasty-hunit tasty-quickcheck
@@ -74688,8 +75497,6 @@ self: {
        ];
        description = "SVG backend for diagrams drawing EDSL";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-tikz" = callPackage
@@ -74818,7 +75625,7 @@ self: {
          test-framework-quickcheck2 transformers
        ];
        description = "Cryptographically secure n-sided dice via rejection sampling";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {};
 
   "dice2tex" = callPackage
@@ -74831,7 +75638,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base ];
        description = "Convert a Diceware wordlist into a printer-ready LaTeX file";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -74846,7 +75653,7 @@ self: {
          base binary bytestring pretty safe time
        ];
        description = "A library for reading and writing DICOM files in the Explicit VR Little Endian transfer syntax";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -74967,7 +75774,7 @@ self: {
        libraryHaskellDepends = [ attoparsec base text ];
        testHaskellDepends = [ attoparsec base hspec text ];
        description = "A parser for diff file formats";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "diff3" = callPackage
@@ -75079,7 +75886,7 @@ self: {
          text-show vector
        ];
        description = "Finds out whether an entity comes from different distributions (statuses)";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -75251,7 +76058,7 @@ self: {
          tasty-hunit text
        ];
        description = "Run digestive-functors forms against JSON";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -75449,7 +76256,7 @@ self: {
          base FontyFruity JuicyPixels Rasterific vector
        ];
        description = "ASCII based Diagram drawing in Haskell (Idea based on ditaa)";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "dijkstra-simple" = callPackage
@@ -75624,8 +76431,8 @@ self: {
      }:
      mkDerivation {
        pname = "diohsc";
-       version = "0.1.3.1";
-       sha256 = "1k44bi5ri63qsps0vh24qc32bclp3nqp2qbs6ylxm9k0q76758iw";
+       version = "0.1.4";
+       sha256 = "09hxy5ac39iqps1bfd1xrwcz9rckywpi99fpx7ikr1lpnvnc5bfb";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -75636,7 +76443,9 @@ self: {
          unix x509 x509-store x509-validation
        ];
        description = "Gemini client";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "diophantine" = callPackage
@@ -75648,7 +76457,7 @@ self: {
        libraryHaskellDepends = [ array base ];
        libraryToolDepends = [ happy ];
        description = "A quadratic diophantine equation solving library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -75857,6 +76666,8 @@ self: {
        pname = "directory";
        version = "1.3.6.1";
        sha256 = "00cr2sshzjmn57rpvjj8wvgr60x2mk8c7w1nd40wxqs8s9xaa1bi";
+       revision = "2";
+       editedCabalFile = "14kwmqa1pf1bij7qang5aihw38ch7m5prsics0p0y72jkxx98y48";
        libraryHaskellDepends = [ base filepath time unix ];
        testHaskellDepends = [ base filepath time unix ];
        description = "Platform-agnostic library for filesystem operations";
@@ -75945,7 +76756,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base directory ];
        description = "Deletes a directory and retains its contents in the parent directory";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -76066,7 +76877,7 @@ self: {
        sha256 = "0axz9k5j9yfk58icnycr93b6d5fqylgqlxi8v7w5sv1n28hrpvvj";
        libraryHaskellDepends = [ base containers ];
        description = "DisCoCat implementation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "discord-gateway" = callPackage
@@ -76096,8 +76907,8 @@ self: {
      }:
      mkDerivation {
        pname = "discord-haskell";
-       version = "1.8.3";
-       sha256 = "0adpb7wzij9n5f2xxqy9j8n3rx0bjg7z1lk0p212zkygabw297mi";
+       version = "1.8.5";
+       sha256 = "0hp3w1d5pwfj06m72dl44cp67h99b3c43kv641vz6dff7xk75hsm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -76436,7 +77247,7 @@ self: {
        libraryHaskellDepends = [ base Cabal directory filepath process ];
        doHaddock = false;
        description = "Generate/Upload cabal package to Hackage";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -77103,8 +77914,8 @@ self: {
      }:
      mkDerivation {
        pname = "distribution-nixpkgs";
-       version = "1.4.0";
-       sha256 = "1935lg05bfzwrvppi11r05nhwa1gkmvv0xqv1kqkbc87bk6pvp5g";
+       version = "1.5.0";
+       sha256 = "07z1dkyzz9sabxda48cy6y2pfyq14sz2m9bv6y6dajn15cy7m3pk";
        libraryHaskellDepends = [
          aeson base bytestring Cabal containers deepseq language-nix lens
          pretty process split
@@ -77212,7 +78023,7 @@ self: {
          base containers fasta optparse-applicative pipes semigroups
        ];
        description = "Quantify the diversity of a population";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -77348,7 +78159,7 @@ self: {
          time unix xdg-userdirs
        ];
        description = "Fedora image download tool";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -77398,8 +78209,8 @@ self: {
        pname = "dlist-nonempty";
        version = "0.1.1";
        sha256 = "0csbspdy43pzvasb5mhs5pz2f49ws78pi253cx7pp84wjx6ads20";
-       revision = "9";
-       editedCabalFile = "09qgsqzjnkr5d2lwdz86q3zrikd5hacd62hvvfdqy39kh5wrqn4y";
+       revision = "10";
+       editedCabalFile = "0k9h3d93ivjykdpblkdcxyv1aybbjq6m5laqjh7bdv6nrdr5va2c";
        libraryHaskellDepends = [
          base base-compat deepseq dlist semigroupoids
        ];
@@ -77834,7 +78645,7 @@ self: {
          text
        ];
        description = "Checks Haddock comments for pitfalls and version changes";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -77992,8 +78803,8 @@ self: {
      }:
      mkDerivation {
        pname = "doclayout";
-       version = "0.3";
-       sha256 = "1wmnwq28jcyd6c80srivsnd5znmyl9sgmwwnlk2crwiiwqadbal7";
+       version = "0.3.0.2";
+       sha256 = "1hfqagf5rmdjjx3xzx153d769b2vwarmyx7k7cwh872cgasndb3q";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base mtl safe text ];
        testHaskellDepends = [
@@ -78044,6 +78855,8 @@ self: {
        ];
        description = "Vinyl-based records with hierarchical field names, default values and documentation";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "docstrings" = callPackage
@@ -78114,30 +78927,30 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "doctest_0_18" = callPackage
+  "doctest_0_18_1" = callPackage
     ({ mkDerivation, base, base-compat, code-page, deepseq, directory
-     , filepath, ghc, ghc-paths, hspec, hspec-core, HUnit, mockery
-     , process, QuickCheck, setenv, silently, stringbuilder, syb
-     , transformers
+     , exceptions, filepath, ghc, ghc-paths, hspec, hspec-core, HUnit
+     , mockery, process, QuickCheck, setenv, silently, stringbuilder
+     , syb, transformers
      }:
      mkDerivation {
        pname = "doctest";
-       version = "0.18";
-       sha256 = "1yqrmjg3rn1vy0p6a6j78gnnl8lx4hzi0rwhpl5ljb4q6kzyc3x4";
+       version = "0.18.1";
+       sha256 = "07w77cik8p3kpcl5vx4l3cr93r1dhk3wc98k1g50l9pby5argrzb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base base-compat code-page deepseq directory filepath ghc ghc-paths
-         process syb transformers
+         base base-compat code-page deepseq directory exceptions filepath
+         ghc ghc-paths process syb transformers
        ];
        executableHaskellDepends = [
-         base base-compat code-page deepseq directory filepath ghc ghc-paths
-         process syb transformers
+         base base-compat code-page deepseq directory exceptions filepath
+         ghc ghc-paths process syb transformers
        ];
        testHaskellDepends = [
-         base base-compat code-page deepseq directory filepath ghc ghc-paths
-         hspec hspec-core HUnit mockery process QuickCheck setenv silently
-         stringbuilder syb transformers
+         base base-compat code-page deepseq directory exceptions filepath
+         ghc ghc-paths hspec hspec-core HUnit mockery process QuickCheck
+         setenv silently stringbuilder syb transformers
        ];
        description = "Test interactive Haskell examples";
        license = lib.licenses.mit;
@@ -78196,8 +79009,8 @@ self: {
     ({ mkDerivation, base, doctest }:
      mkDerivation {
        pname = "doctest-driver-gen";
-       version = "0.3.0.2";
-       sha256 = "1xkq9fpdm8ayjwf2lypkfnh1w08zimvhf27ffn71hfckd5nw4h2q";
+       version = "0.3.0.3";
+       sha256 = "0vb062mznjpksrbsf2v599slgnm5jr6dq1frbxii19mcqxjbnzrj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
@@ -78205,8 +79018,6 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Generate driver file for doctest's cabal integration";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "doctest-exitcode-stdio" = callPackage
@@ -78224,6 +79035,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "doctest-extract" = callPackage
+    ({ mkDerivation, base, doctest-lib, non-empty, optparse-applicative
+     , pathtype, semigroups, transformers, utility-ht
+     }:
+     mkDerivation {
+       pname = "doctest-extract";
+       version = "0.1";
+       sha256 = "1ncrq67d6zcqw5al5m2g7q6ys8rxhsq8rrzbj1dlsyl4q63vyrms";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base doctest-lib non-empty optparse-applicative pathtype semigroups
+         transformers utility-ht
+       ];
+       description = "Alternative doctest implementation that extracts comments to modules";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "doctest-lib" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -78606,8 +79435,8 @@ self: {
      }:
      mkDerivation {
        pname = "dormouse-client";
-       version = "0.1.0.1";
-       sha256 = "033299c0rc6hsg51pg7igb5fnf8w200ckazmyjk23d1h48mz7gcg";
+       version = "0.2.0.0";
+       sha256 = "1l5vhlvl5kl4m5shl2rysj16r7wqkqwy1i1yb3r96zx8rbwhi2j8";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring case-insensitive containers
          dormouse-uri http-api-data http-client http-client-tls http-types
@@ -78634,8 +79463,8 @@ self: {
      }:
      mkDerivation {
        pname = "dormouse-uri";
-       version = "0.1.0.1";
-       sha256 = "04ps9k4dhg9xk7al12y757lxl45dfa0aczirdkyks28cavlpr07b";
+       version = "0.2.0.0";
+       sha256 = "1b19167xprw9f4ivpfl0sdk2gs2ai6jxk25wyy7xlvzq2fn5q6sd";
        libraryHaskellDepends = [
          attoparsec base bytestring case-insensitive containers http-types
          safe-exceptions template-haskell text
@@ -78833,6 +79662,17 @@ self: {
        license = "GPL";
      }) {};
 
+  "doublezip" = callPackage
+    ({ mkDerivation, base, foldable-ix }:
+     mkDerivation {
+       pname = "doublezip";
+       version = "0.1.0.0";
+       sha256 = "0bf9jb688kj5f0cjb2ma6744aj2hkslkpc96frljm73h6pyqvwz6";
+       libraryHaskellDepends = [ base foldable-ix ];
+       description = "Some special functions to work with lists (with zip)";
+       license = lib.licenses.mit;
+     }) {};
+
   "doublify-toolkit" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -78974,7 +79814,7 @@ self: {
        sha256 = "0sqvxyj3aybqvjlrz2a93lnp1vbjiqikysm575wizri2rd3vfj1l";
        libraryHaskellDepends = [ base ];
        description = "A Haskell library for using Dozenal (Duodecimal - Base 12) numbers";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -79175,7 +80015,7 @@ self: {
        testSystemDepends = [ dpkg ];
        testPkgconfigDepends = [ libdpkg ];
        description = "libdpkg bindings";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) dpkg; libdpkg = null;};
@@ -79255,6 +80095,20 @@ self: {
        broken = true;
      }) {};
 
+  "drama" = callPackage
+    ({ mkDerivation, base, ki, transformers, unagi-chan }:
+     mkDerivation {
+       pname = "drama";
+       version = "0.3.0.0";
+       sha256 = "17smzrvpaah2lcc2467dd61lns53q4n0bf0pl9glsv04j9kv2nl9";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base ki transformers unagi-chan ];
+       executableHaskellDepends = [ base ];
+       description = "Actor library for Haskell";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "draw-poker" = callPackage
     ({ mkDerivation, base, random-shuffle, safe }:
      mkDerivation {
@@ -79283,7 +80137,7 @@ self: {
        libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [ base containers hspec QuickCheck ];
        description = "A port of asciimoo's drawille to haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -79621,7 +80475,7 @@ self: {
        sha256 = "1vv32n736ncjsy4psp8zlqmpp0r7mncjq65zwkhq5i99jx4chb1q";
        libraryHaskellDepends = [ base parsec ];
        description = "Haskell Doge Serialized Object Notation Parser";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -79668,20 +80522,20 @@ self: {
 
   "dsv" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, cassava, containers
-     , doctest, foldl, hedgehog, pipes, pipes-bytestring, pipes-safe
+     , foldl, hedgehog, pipes, pipes-bytestring, pipes-safe
      , safe-exceptions, template-haskell, text, validation, vector
      }:
      mkDerivation {
        pname = "dsv";
-       version = "1.0.0.0";
-       sha256 = "0fjfpa8qfaiy7wxmq9lsacxywrsqahl8s8wamxfiai7mzq2201gn";
+       version = "1.0.0.1";
+       sha256 = "1lf6fan0mis0hs30yfpslfyj0gpk028z24wca3lylq877pq7z6nz";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          attoparsec base bytestring cassava containers foldl pipes
          pipes-bytestring pipes-safe template-haskell text validation vector
        ];
        testHaskellDepends = [
-         base bytestring containers doctest foldl hedgehog safe-exceptions
+         base bytestring containers foldl hedgehog pipes safe-exceptions
          text vector
        ];
        description = "DSV (delimiter-separated values)";
@@ -79694,8 +80548,8 @@ self: {
      }:
      mkDerivation {
        pname = "dtab";
-       version = "1.1.1.1";
-       sha256 = "1pxhvnm5vvgfxwm42s3w3i5nk0lx75xgsr1c487hkswip48fiyd6";
+       version = "1.2";
+       sha256 = "1mkk1jdw04294hljz3jxiz8403jq7srx6nalyjn1kj09yvws3d05";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -79837,8 +80691,6 @@ self: {
        ];
        description = "Rose trees with cached and accumulating monoidal annotations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dualizer" = callPackage
@@ -79958,7 +80810,7 @@ self: {
        ];
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "A computer “algebra” system that knows nothing about algebra, at the core";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -80016,6 +80868,7 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit transformers ];
        description = "Generalised reactive framework supporting classic, arrowized and monadic FRP";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ turion ];
      }) {};
 
   "dunai-core" = callPackage
@@ -80106,8 +80959,8 @@ self: {
      }:
      mkDerivation {
        pname = "duration";
-       version = "0.1.0.0";
-       sha256 = "18qjn97njhra7brps58rl44vyc0hmfc83prgm519q7dyf3159cd0";
+       version = "0.2.0.0";
+       sha256 = "1cmgbnri3083gpr16j8yqj5jzbz0q5cxgnrpnbridyyznbp8csvj";
        libraryHaskellDepends = [ base parsec template-haskell time ];
        testHaskellDepends = [
          base doctest hspec parsec template-haskell time
@@ -80192,7 +81045,7 @@ self: {
        libraryPkgconfigDepends = [ dvdread ];
        libraryToolDepends = [ c2hs ];
        description = "A monadic interface to libdvdread";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {dvdread = null;};
@@ -80293,7 +81146,7 @@ self: {
        libraryHaskellDepends = [ base Win32 ];
        description = "Backend for a binding to the Microsoft DirectX 9 API";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "dx9d3d" = callPackage
@@ -80306,7 +81159,7 @@ self: {
        librarySystemDepends = [ d3d9 ];
        description = "A binding to the Microsoft DirectX 9 API";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {d3d9 = null;};
 
   "dx9d3dx" = callPackage
@@ -80319,7 +81172,7 @@ self: {
        librarySystemDepends = [ d3dx9 ];
        description = "A binding to the Microsoft DirectX 9 D3DX API";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {d3dx9 = null;};
 
   "dyckword" = callPackage
@@ -80522,7 +81375,7 @@ self: {
          vector-space
        ];
        description = "Interactive diagram windows";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -80561,7 +81414,7 @@ self: {
          base binary bytestring hashable unordered-containers
        ];
        description = "Optionally serializable dynamic state keyed by type";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "dynamodb-simple" = callPackage
@@ -80635,7 +81488,7 @@ self: {
          test-framework-hunit test-framework-quickcheck2 vector
        ];
        description = "your dynamic optimization buddy";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -80656,6 +81509,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "dyre_0_9_1" = callPackage
+    ({ mkDerivation, base, binary, directory, executable-path, filepath
+     , io-storage, process, time, unix, xdg-basedir
+     }:
+     mkDerivation {
+       pname = "dyre";
+       version = "0.9.1";
+       sha256 = "1lrpjvah57p1ld3spcrgqds3claqkd5a9ay8inihl9wws0ifhfmh";
+       libraryHaskellDepends = [
+         base binary directory executable-path filepath io-storage process
+         time unix xdg-basedir
+       ];
+       testHaskellDepends = [ base directory process ];
+       description = "Dynamic reconfiguration in Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "dywapitchtrack" = callPackage
     ({ mkDerivation, base, bytestring, transformers }:
      mkDerivation {
@@ -80853,7 +81724,7 @@ self: {
        libraryHaskellDepends = [ base hspec ];
        testHaskellDepends = [ base hspec ];
        description = "Parses command line arguments";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "easy-bitcoin" = callPackage
@@ -80924,7 +81795,7 @@ self: {
        sha256 = "0vj9j41706lalxc2sankpnxrn3mg650wfd4rl6yw32pns6bdq86f";
        libraryHaskellDepends = [ base bytestring containers mtl zlib ];
        description = "User-friendly creation of EPS, PostScript, and PDF files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "easytensor" = callPackage
@@ -81110,10 +81981,8 @@ self: {
     ({ mkDerivation, base, process }:
      mkDerivation {
        pname = "echo";
-       version = "0.1.3";
-       sha256 = "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh";
-       revision = "1";
-       editedCabalFile = "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l";
+       version = "0.1.4";
+       sha256 = "0hqfdd4kvpp59cjjv790bkf72yqr9xjfqlbjcrdsc9a8j3r1pzn9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base process ];
@@ -81301,7 +82170,7 @@ self: {
          ghc-events-parallel gtk mtl text zip-archive
        ];
        description = "A Tool to Visualize Parallel Functional Program Executions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -81332,7 +82201,7 @@ self: {
          ALUT base cmdtheline containers gloss OpenAL random wraparound
        ];
        description = "Top view space combat arcade game";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -81903,7 +82772,7 @@ self: {
        ];
        librarySystemDepends = [ eibclient ];
        description = "EIBd Client";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {eibclient = null;};
@@ -81929,6 +82798,23 @@ self: {
        broken = true;
      }) {};
 
+  "eio" = callPackage
+    ({ mkDerivation, base, markdown-unlit }:
+     mkDerivation {
+       pname = "eio";
+       version = "0.0.0.0";
+       sha256 = "0akr5h7r3c5qrbpyq52h2lzmbd22ars7mdfwgl7dwh75bgwss11l";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base ];
+       executableHaskellDepends = [ base ];
+       executableToolDepends = [ markdown-unlit ];
+       description = "IO with Exceptions tracked on the type-level";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "either" = callPackage
     ({ mkDerivation, base, bifunctors, mtl, profunctors, QuickCheck
      , semigroupoids, test-framework, test-framework-quickcheck2
@@ -82324,7 +83210,7 @@ self: {
        sha256 = "1am1j05z79prlybq3hg8vr4gwhl354af4dg9y1qr57vpp6gcpfwv";
        libraryHaskellDepends = [ base hmatrix safe ];
        description = "Find the elbow point";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "electrum-mnemonic" = callPackage
@@ -82336,7 +83222,7 @@ self: {
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base tasty tasty-quickcheck ];
        description = "easy to remember mnemonic for a high-entropy value";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "elenco-albero" = callPackage
@@ -82437,6 +83323,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "eliminators_0_8" = callPackage
+    ({ mkDerivation, base, extra, hspec, hspec-discover, singleton-nats
+     , singletons-base, template-haskell, th-abstraction, th-desugar
+     }:
+     mkDerivation {
+       pname = "eliminators";
+       version = "0.8";
+       sha256 = "00prqf3qnhsswigcx87nq9dfaq9vjvzgcgbpnxrpgw9k36p9mdh2";
+       libraryHaskellDepends = [
+         base extra singleton-nats singletons-base template-haskell
+         th-abstraction th-desugar
+       ];
+       testHaskellDepends = [ base hspec singleton-nats singletons-base ];
+       testToolDepends = [ hspec-discover ];
+       description = "Dependently typed elimination functions using singletons";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "elision" = callPackage
     ({ mkDerivation, base, profunctors }:
      mkDerivation {
@@ -82978,8 +83883,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx";
-       version = "0.5.0.1";
-       sha256 = "1rglf080hx4c8nai07ghh2wf6j79x9hfx2mjzbqc588y0rpj7kmj";
+       version = "0.5.0.2";
+       sha256 = "1hky4amw78ciblr6alcxp79dshsc5wqswp16hbqdry132xps9dw3";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -82994,21 +83899,20 @@ self: {
   "elynx-markov" = callPackage
     ({ mkDerivation, async, attoparsec, base, bytestring, containers
      , elynx-seq, elynx-tools, hmatrix, hspec, integration
-     , math-functions, mwc-random, parallel, primitive, statistics
-     , vector
+     , math-functions, mwc-random, primitive, statistics, vector
      }:
      mkDerivation {
        pname = "elynx-markov";
-       version = "0.5.0.1";
-       sha256 = "0m24kzayvhc2mhhk2glpw82kmdbgk38vl2d0xdkkdnnbqag8mbqa";
+       version = "0.5.0.2";
+       sha256 = "0wlcq3q26lgwixhsq1afz9i3phr2sncwc0r6m4adminh9m1zdr5z";
        libraryHaskellDepends = [
          async attoparsec base bytestring containers elynx-seq hmatrix
-         integration math-functions mwc-random parallel primitive statistics
-         vector
+         integration math-functions mwc-random primitive statistics vector
        ];
        testHaskellDepends = [
          base containers elynx-tools hmatrix hspec mwc-random vector
        ];
+       benchmarkHaskellDepends = [ base ];
        description = "Simulate molecular sequences along trees";
        license = lib.licenses.gpl3Plus;
      }) {};
@@ -83017,8 +83921,8 @@ self: {
     ({ mkDerivation, attoparsec, base, bytestring, hspec }:
      mkDerivation {
        pname = "elynx-nexus";
-       version = "0.5.0.1";
-       sha256 = "0jh5j4f8awallrjbgrgdjl6jdzk2lswr28xjryqdapwf4licfkk2";
+       version = "0.5.0.2";
+       sha256 = "1y7ndj216w58s85bfgp4vg7zi1asj6br68k000hy4a8cchjprlp9";
        libraryHaskellDepends = [ attoparsec base bytestring ];
        testHaskellDepends = [ base hspec ];
        description = "Import and export Nexus files";
@@ -83032,8 +83936,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-seq";
-       version = "0.5.0.1";
-       sha256 = "0b5jih0jgcf0rbcbwj18l269wbgf31i9125gx3rz6w7ydapmr7wr";
+       version = "0.5.0.2";
+       sha256 = "11nl8gw05gvd6j7dflqzi21kixmm0jalpqv9x9f6bb7qwdv1xak2";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring containers matrices mwc-random
          parallel primitive vector vector-th-unbox word8
@@ -83054,8 +83958,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-tools";
-       version = "0.5.0.1";
-       sha256 = "0lq5jv9dwyi0plkx1n270dan8nfxac9q7rhcdq95mzhgar8daink";
+       version = "0.5.0.2";
+       sha256 = "1q62f0b0fk6g2a4w5bbbpldv0awk7cn2q544xcxplanpr3fmaj8v";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring
          cryptohash-sha256 deepseq directory fast-logger hmatrix
@@ -83075,8 +83979,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-tree";
-       version = "0.5.0.1";
-       sha256 = "1pzam7qg7qihim50iyxw2fsy58xakzjvzskaa4vhzg9cghmjjva8";
+       version = "0.5.0.2";
+       sha256 = "1ywqbc80hq4dprzrrq9gyi7h2624i2mgpd43pv045dldh7dqhygn";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring comonad containers deepseq
          double-conversion elynx-nexus math-functions mwc-random parallel
@@ -83242,7 +84146,7 @@ self: {
          parallel-io pcre-light tasty tasty-hunit
        ];
        description = "Perform basic syntax and deliverability checks on email addresses";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "emailaddress" = callPackage
@@ -83350,7 +84254,7 @@ self: {
        ];
        executableHaskellDepends = [ base ];
        description = "support for embroidery formats in haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -84210,7 +85114,7 @@ self: {
        sha256 = "1jpz58zlkhgf2fl4fzicpdkqqdbwy3sw56dga8yvjmgv5zcqqshx";
        libraryHaskellDepends = [ base ];
        description = "Haskell binding for EPANET";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -84438,6 +85342,8 @@ self: {
        pname = "equational-reasoning";
        version = "0.7.0.0";
        sha256 = "0l6gyq43byh6cy2pblb9a4qjy7w5k9maa97c076dxlsf53myj01h";
+       revision = "1";
+       editedCabalFile = "1a8dw9givg0przqrm33kkmff9r0fdv1ih6ik3dqa99ww71cc8q66";
        libraryHaskellDepends = [
          base containers template-haskell th-desugar void
        ];
@@ -84567,6 +85473,27 @@ self: {
        broken = true;
      }) {};
 
+  "erlang-ffi" = callPackage
+    ({ mkDerivation, base, binary, bytestring, directory, filepath
+     , hspec, MissingH, network, random
+     }:
+     mkDerivation {
+       pname = "erlang-ffi";
+       version = "1.0.0";
+       sha256 = "1vj0i7r4pr3dhyvlgk0mi31ljcq87y69s2vmh4q41m5q4wxz9c42";
+       libraryHaskellDepends = [
+         base binary bytestring directory filepath MissingH network random
+       ];
+       testHaskellDepends = [
+         base binary bytestring directory filepath hspec MissingH network
+         random
+       ];
+       description = "Send messages to an Erlang node using Haskell";
+       license = "GPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "eros" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, text }:
      mkDerivation {
@@ -84873,19 +85800,17 @@ self: {
      }) {};
 
   "ersatz" = callPackage
-    ({ mkDerivation, array, attoparsec, base, bytestring, Cabal
-     , cabal-doctest, containers, data-default, directory, doctest, fail
-     , filepath, lens, mtl, parsec, process, semigroups, temporary
-     , transformers, unordered-containers
+    ({ mkDerivation, array, attoparsec, base, bytestring, containers
+     , data-default, fail, lens, mtl, parsec, process, semigroups
+     , temporary, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "ersatz";
-       version = "0.4.8";
-       sha256 = "1gddf8zhavxri80f3nnd29ff6k7n03ggcah4qglknci7h94z7v8c";
+       version = "0.4.9";
+       sha256 = "1pnqz7zvkfw70pjhhs5lm965iydrj8cgbj685fh50fpm0wapnmfd";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          array attoparsec base bytestring containers data-default lens mtl
          process semigroups temporary transformers unordered-containers
@@ -84893,7 +85818,7 @@ self: {
        executableHaskellDepends = [
          array base containers fail lens mtl parsec semigroups
        ];
-       testHaskellDepends = [ array base directory doctest filepath ];
+       testHaskellDepends = [ array base ];
        description = "A monad for expressing SAT or QSAT problems using observable sharing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -84938,7 +85863,7 @@ self: {
          aeson attoparsec base bytestring yaml
        ];
        description = "Easy Runtime Templates";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -85096,7 +86021,7 @@ self: {
          yesod-form yesod-static yesod-test
        ];
        description = "Espial is an open-source, web-based bookmarking server";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -85111,8 +86036,10 @@ self: {
      }:
      mkDerivation {
        pname = "esqueleto";
-       version = "3.4.0.1";
-       sha256 = "1vq8yfrixgqps8g6wvfgr9n42zmwj1jybiq3sbrgfj318n6dm5mc";
+       version = "3.4.1.0";
+       sha256 = "1nm2xdl6an140gl5cw6ij7s6i6v2xfp98m8dwbwzns75nrgmsb73";
+       revision = "1";
+       editedCabalFile = "0jm10cw3ikk6gwn7qy87d7g9swwcp6lg60yy678l4jx7dnipahm0";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-html bytestring conduit containers
          monad-logger persistent resourcet tagged text time transformers
@@ -85129,6 +86056,35 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "esqueleto_3_4_2_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, blaze-html, bytestring
+     , conduit, containers, exceptions, hspec, monad-logger, mtl, mysql
+     , mysql-simple, persistent, persistent-mysql, persistent-postgresql
+     , persistent-sqlite, postgresql-libpq, postgresql-simple, resourcet
+     , tagged, text, time, transformers, unliftio, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "esqueleto";
+       version = "3.4.2.0";
+       sha256 = "1gmh96a0vqvxizgs2k66p06jhjcgqrm5phbvahs7b2iavaralpr3";
+       libraryHaskellDepends = [
+         aeson attoparsec base blaze-html bytestring conduit containers
+         monad-logger persistent resourcet tagged text time transformers
+         unliftio unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base blaze-html bytestring conduit containers
+         exceptions hspec monad-logger mtl mysql mysql-simple persistent
+         persistent-mysql persistent-postgresql persistent-sqlite
+         postgresql-libpq postgresql-simple resourcet tagged text time
+         transformers unliftio unordered-containers vector
+       ];
+       description = "Type-safe EDSL for SQL queries on persistent backends";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ess" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -85163,6 +86119,7 @@ self: {
        ];
        description = "General purpose live coding framework";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ turion ];
      }) {};
 
   "essence-of-live-coding-gloss" = callPackage
@@ -85178,6 +86135,7 @@ self: {
        ];
        description = "General purpose live coding framework - Gloss backend";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ turion ];
      }) {};
 
   "essence-of-live-coding-gloss-example" = callPackage
@@ -85211,6 +86169,7 @@ self: {
        ];
        description = "General purpose live coding framework - pulse backend";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ turion ];
      }) {};
 
   "essence-of-live-coding-pulse-example" = callPackage
@@ -85245,6 +86204,7 @@ self: {
        ];
        description = "General purpose live coding framework - QuickCheck integration";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ turion ];
      }) {};
 
   "essence-of-live-coding-warp" = callPackage
@@ -85611,6 +86571,8 @@ self: {
        ];
        description = "Ethereum Recursive Length Prefix Encoding";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "eths-rlp" = callPackage
@@ -85732,19 +86694,27 @@ self: {
 
   "evdev" = callPackage
     ({ mkDerivation, base, bytestring, c2hs, containers, extra
-     , libevdev, monad-loops, time, unix
+     , filepath-bytestring, libevdev, monad-loops, rawfilepath, tasty
+     , tasty-hunit, tasty-quickcheck, time, unix
      }:
      mkDerivation {
        pname = "evdev";
-       version = "2.0.0.1";
-       sha256 = "0ryq50g7z70rnv07pnvwssl0qrvhbljkq9yk1z8gj9kvqdsw9cmg";
+       version = "2.1.0";
+       sha256 = "1gzf9hpsi2dmcgsifq5z91ing9b5k56mm2hx9wbsa180pmq30lj3";
        libraryHaskellDepends = [
-         base bytestring containers extra monad-loops time unix
+         base bytestring containers extra filepath-bytestring monad-loops
+         rawfilepath time unix
        ];
        libraryPkgconfigDepends = [ libevdev ];
        libraryToolDepends = [ c2hs ];
+       testHaskellDepends = [
+         base bytestring containers extra filepath-bytestring monad-loops
+         rawfilepath tasty tasty-hunit tasty-quickcheck time unix
+       ];
        description = "Bindings to libevdev";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libevdev;};
 
   "evdev-streamly" = callPackage
@@ -85755,12 +86725,16 @@ self: {
        pname = "evdev-streamly";
        version = "0.0.1.0";
        sha256 = "1bzmxkg5y7w6v5l6q5vzhr19j5vwbx4p4qxdq72f7f714ihn8nyp";
+       revision = "1";
+       editedCabalFile = "02xnb49zwr39ziq2xrwnnddzxr1ppwig441i3074g1w0ng5cf2gj";
        libraryHaskellDepends = [
          base bytestring containers evdev extra posix-paths rawfilepath
          streamly streamly-fsnotify unix
        ];
        description = "Bridge for working with evdev and streamly";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "eve" = callPackage
@@ -85803,8 +86777,8 @@ self: {
     ({ mkDerivation, base, ghc-prim, primitive }:
      mkDerivation {
        pname = "eveff";
-       version = "0.1.0.0";
-       sha256 = "1d0bxg1dg66g1yv291cp4jh3xv3caxrddqrwb0g6g1929dl019fa";
+       version = "1.0.0.1";
+       sha256 = "0668345qdais176w8vbmjklys64ys36m4ppkiyqbad866n0zg7n9";
        libraryHaskellDepends = [ base ghc-prim primitive ];
        description = "Efficient effect handlers based on evidence translation";
        license = lib.licenses.mit;
@@ -86058,8 +87032,8 @@ self: {
      }:
      mkDerivation {
        pname = "eventlog2html";
-       version = "0.8.3";
-       sha256 = "0xk9s8f20xx1xpbc2kbyfv3hhnrj8arim99lrr6wbv8y33qz0pkr";
+       version = "0.9.0";
+       sha256 = "1cjnkqdnk76839dl4dbpj3vzbkrjwgqryq2j3sgs9mmxfing7ahq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -86573,8 +87547,8 @@ self: {
        pname = "exceptions";
        version = "0.10.4";
        sha256 = "1kw4pmx7j7zwbdwm0dyn9rcs6kp4byfxy48861yxdz6gam1zn2sd";
-       revision = "1";
-       editedCabalFile = "0b5m01nmaqzvvm1d07b3dnmcn47pmy943lydb2m7ibhilqkfya8p";
+       revision = "2";
+       editedCabalFile = "1154g0dqil2xf4wc1v6gndzhnbf5saf2dzf77c6lcjxssx360m6j";
        libraryHaskellDepends = [
          base mtl stm template-haskell transformers
        ];
@@ -86722,8 +87696,8 @@ self: {
      }:
      mkDerivation {
        pname = "exh";
-       version = "1.0.0";
-       sha256 = "0s5br96spx4v67mvl09w4kpcwvps65zp6qx5qpvrq63a0ncclp7l";
+       version = "1.0.2";
+       sha256 = "10pvr8ya2f7arp8cqi4g97dpqin1h8n0xmnihqszchcils0v2ayn";
        libraryHaskellDepends = [
          aeson base bytestring conduit containers html-conduit http-client
          in-other-words language-javascript megaparsec optics-core optics-th
@@ -86737,6 +87711,8 @@ self: {
        ];
        description = "A library for crawling exhentai";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "exhaustive" = callPackage
@@ -86774,7 +87750,7 @@ self: {
        ];
        testHaskellDepends = [ base doctest ];
        description = "Exheres generator for cabal packages";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -87142,7 +88118,7 @@ self: {
          base bimap containers gauge prettyprinter raw-strings-qq
        ];
        description = "Linear programming over exponent pairs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "expand" = callPackage
@@ -87188,8 +88164,8 @@ self: {
      }:
      mkDerivation {
        pname = "experimenter";
-       version = "0.1.0.4";
-       sha256 = "0pzlmq2rb485x0df4ivw5i9sv8n14svy1vhgjqc69vm1p0md57ms";
+       version = "0.1.0.10";
+       sha256 = "0ys1m510j573f1ydbyilxcmdcizbannn8gm6c6pg0d9lq1avg5aw";
        libraryHaskellDepends = [
          aeson base bytestring cereal cereal-vector conduit containers
          deepseq directory esqueleto filepath HaTeX hostname lens matrix
@@ -87209,6 +88185,39 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "experimenter_0_1_0_12" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cereal, cereal-vector
+     , conduit, containers, deepseq, directory, esqueleto, filepath
+     , foundation, HaTeX, hostname, hspec, lens, matrix, monad-logger
+     , mtl, mwc-random, parallel, persistent, persistent-postgresql
+     , persistent-template, process, QuickCheck, resource-pool
+     , resourcet, stm, text, time, transformers, unix, unliftio-core
+     , vector
+     }:
+     mkDerivation {
+       pname = "experimenter";
+       version = "0.1.0.12";
+       sha256 = "0sam7wl4gha9midkgj15h0q68g121pihxxvv8dlx3wgd9as1h5d6";
+       libraryHaskellDepends = [
+         aeson base bytestring cereal cereal-vector conduit containers
+         deepseq directory esqueleto filepath HaTeX hostname lens matrix
+         monad-logger mtl mwc-random parallel persistent
+         persistent-postgresql persistent-template process resource-pool
+         resourcet stm text time transformers unix unliftio-core vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring cereal cereal-vector conduit containers
+         deepseq directory esqueleto filepath foundation HaTeX hostname
+         hspec lens matrix monad-logger mtl mwc-random parallel persistent
+         persistent-postgresql persistent-template process QuickCheck
+         resource-pool resourcet stm text time transformers unix
+         unliftio-core vector
+       ];
+       description = "Perform scientific experiments stored in a DB, and generate reports";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "expiring-cache-map" = callPackage
     ({ mkDerivation, base, bytestring, containers, hashable, time
      , unordered-containers
@@ -87291,7 +88300,7 @@ self: {
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Fully-flexible polymorphic lenses, without any bizarre profunctors";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -87304,7 +88313,7 @@ self: {
        sha256 = "0g20kblzvhx53mi82frpx29x0nsfjrzsanqq8f6yw22lh47pbm4y";
        libraryHaskellDepends = [ base ];
        description = "explicit computation of determinant of small matrices";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -87391,6 +88400,17 @@ self: {
        broken = true;
      }) {};
 
+  "exploring-interpreters" = callPackage
+    ({ mkDerivation, base, containers, fgl, mtl, transformers }:
+     mkDerivation {
+       pname = "exploring-interpreters";
+       version = "0.3.0.0";
+       sha256 = "0h39si80s4q4n6599qj95z19jy3yc0101pphm4apvalm6wmppgpz";
+       libraryHaskellDepends = [ base containers fgl mtl transformers ];
+       description = "A generic exploring interpreter for exploratory programming";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "exposed-containers" = callPackage
     ({ mkDerivation, array, base, ChasingBottoms, deepseq, ghc-prim
      , HUnit, QuickCheck, test-framework, test-framework-hunit
@@ -87625,8 +88645,8 @@ self: {
      }:
      mkDerivation {
        pname = "extensible";
-       version = "0.8.1";
-       sha256 = "189svxwh54zzczrrirlnfyqmv2f12h8qxw9rqq47mn55ch40xnw3";
+       version = "0.8.2";
+       sha256 = "133yid7snb48n4rn15p6nsk2h1shbiw647d5fvapn3lnsb4ymqgv";
        libraryHaskellDepends = [
          aeson base bytestring cassava comonad constraints deepseq ghc-prim
          hashable incremental membership monad-skeleton prettyprinter
@@ -88293,8 +89313,6 @@ self: {
        ];
        description = "Library for producing fake data";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fakedata-parser" = callPackage
@@ -88322,8 +89340,6 @@ self: {
        ];
        description = "Fake a -> Gen a";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fakefs" = callPackage
@@ -88367,22 +89383,26 @@ self: {
      }) {};
 
   "faktory" = callPackage
-    ({ mkDerivation, aeson, aeson-casing, base, bytestring, connection
-     , cryptonite, hspec, markdown-unlit, megaparsec, memory, network
-     , random, safe-exceptions, scanner, text, time, unix
+    ({ mkDerivation, aeson, aeson-casing, async, base, bytestring
+     , connection, cryptonite, hspec, markdown-unlit, megaparsec, memory
+     , mtl, network, random, safe-exceptions, scanner, semigroups, text
+     , time, unix, unordered-containers
      }:
      mkDerivation {
        pname = "faktory";
-       version = "1.0.1.6";
-       sha256 = "1yqld2b6lbxl9sw9yp3dy184189nhfs7q4shnyrzc0m000hxgwkj";
+       version = "1.0.2.1";
+       sha256 = "0n1pcchzb5bxhykdjdri84g0hnbrzd76brpqqx8f6yhwll5vaxsq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-casing base bytestring connection cryptonite megaparsec
-         memory network random safe-exceptions scanner text time unix
+         memory mtl network random safe-exceptions scanner semigroups text
+         time unix unordered-containers
        ];
        executableHaskellDepends = [ aeson base safe-exceptions ];
-       testHaskellDepends = [ aeson base hspec markdown-unlit ];
+       testHaskellDepends = [
+         aeson async base hspec markdown-unlit time
+       ];
        testToolDepends = [ markdown-unlit ];
        description = "Faktory Worker for Haskell";
        license = lib.licenses.mit;
@@ -88559,7 +89579,7 @@ self: {
        benchmarkHaskellDepends = [ base digits gauge ];
        doHaddock = false;
        description = "Integer-to-digits conversion";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -88586,8 +89606,8 @@ self: {
      }:
      mkDerivation {
        pname = "fast-logger";
-       version = "3.0.2";
-       sha256 = "0ilbjz09vw35jzfvkiqjy6zjbci2l60wcyjzfysrbxzk24qxmb5z";
+       version = "3.0.3";
+       sha256 = "0s7hsbii1km7dqkxa27v2fw553wqx6x00204s6iapv2k20ra0qsp";
        libraryHaskellDepends = [
          array auto-update base bytestring directory easy-file filepath text
          unix-compat unix-time
@@ -88596,6 +89616,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A fast logging system";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "fast-math" = callPackage
@@ -88701,7 +89722,7 @@ self: {
          pipes-attoparsec pipes-bytestring pipes-group pipes-text split text
        ];
        description = "A simple, mindless parser for fasta files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -88829,6 +89850,8 @@ self: {
        ];
        description = "Haskell bindings to the fastpbkdf2 C library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) openssl;};
 
   "fastsum" = callPackage
@@ -88863,7 +89886,7 @@ self: {
          base bytestring cassava hxt network-uri text
        ];
        description = "Utilities for working with DuckDuckHack's FatHead Instant Answers";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -88909,8 +89932,6 @@ self: {
        executableHaskellDepends = [ base mtl optparse-applicative split ];
        description = "A compiler for Fay, a Haskell subset that compiles to JavaScript";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fay-base" = callPackage
@@ -88923,8 +89944,6 @@ self: {
        libraryHaskellDepends = [ base fay ];
        description = "The base package for Fay";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fay-builder" = callPackage
@@ -88958,8 +89977,6 @@ self: {
        libraryHaskellDepends = [ fay-base ];
        description = "DOM FFI wrapper library for Fay";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fay-geoposition" = callPackage
@@ -88972,8 +89989,6 @@ self: {
        libraryHaskellDepends = [ fay-base fay-text ];
        description = "W3C compliant implementation of GeoPosition API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fay-hsx" = callPackage
@@ -89000,8 +90015,6 @@ self: {
        libraryHaskellDepends = [ fay-base fay-text ];
        description = "jQuery bindings for Fay";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fay-ref" = callPackage
@@ -89014,8 +90027,6 @@ self: {
        libraryHaskellDepends = [ fay-base ];
        description = "Like IORef but for Fay";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fay-simplejson" = callPackage
@@ -89044,8 +90055,6 @@ self: {
        libraryHaskellDepends = [ fay fay-base text ];
        description = "Fay Text type represented as JavaScript strings";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fay-uri" = callPackage
@@ -89058,8 +90067,6 @@ self: {
        libraryHaskellDepends = [ fay-base ];
        description = "Persistent FFI bindings for using jsUri in Fay";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fay-websockets" = callPackage
@@ -89072,8 +90079,6 @@ self: {
        libraryHaskellDepends = [ fay-base ];
        description = "Websockets FFI library for Fay";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fb" = callPackage
@@ -89155,8 +90160,8 @@ self: {
      }:
      mkDerivation {
        pname = "fbrnch";
-       version = "0.7.1";
-       sha256 = "05gs3r9c67xvpkpg968aj0ym39qakazbycjlb8wnys5ijc0iwa7w";
+       version = "0.7.3";
+       sha256 = "0fm9ymfl01k8fs5p4aa5kjjj6gziwl35z5yywbhygd32704lcqnz";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -89172,7 +90177,7 @@ self: {
        ];
        doHaddock = false;
        description = "Build and create Fedora package repos and branches";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -89190,7 +90195,7 @@ self: {
          unordered-containers
        ];
        description = "Algo for Formal Concept Analysis";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -89460,7 +90465,7 @@ self: {
        sha256 = "0hynmwic940vmna0czavbp1wx856ad9am7i6r0d2hq8jynrsin5w";
        libraryHaskellDepends = [ base ];
        description = "Library for Fedora distribution versions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "fedora-haskell-tools" = callPackage
@@ -89479,7 +90484,7 @@ self: {
          process simple-cmd simple-cmd-args split time unix
        ];
        description = "Building and maintenance tools for Fedora Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "fedora-img-dl" = callPackage
@@ -89499,7 +90504,7 @@ self: {
          xdg-userdirs
        ];
        description = "Fedora image download tool";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -89544,27 +90549,25 @@ self: {
      }) {};
 
   "feed" = callPackage
-    ({ mkDerivation, base, base-compat, bytestring, HUnit
-     , markdown-unlit, old-locale, old-time, safe, syb, test-framework
-     , test-framework-hunit, text, time, time-locale-compat, utf8-string
-     , xml-conduit, xml-types
+    ({ mkDerivation, base, base-compat, bytestring, doctest
+     , doctest-driver-gen, HUnit, markdown-unlit, old-locale, old-time
+     , safe, syb, test-framework, test-framework-hunit, text, time
+     , time-locale-compat, utf8-string, xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "feed";
-       version = "1.3.0.1";
-       sha256 = "0fdylvbrjlshgx398xpxx3y7mnrmpi1l2534mcv299afpm91yqcj";
-       revision = "1";
-       editedCabalFile = "0wlffsawz87ks8zf686q01qvcwzi3352l45f1yww5w063ih6j7ld";
+       version = "1.3.2.0";
+       sha256 = "0kv3vx3njqlhwvkmf12m1gmwl8jj97kfa60da2362vwdavhcf4dk";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base base-compat bytestring old-locale old-time safe text time
          time-locale-compat utf8-string xml-conduit xml-types
        ];
        testHaskellDepends = [
-         base base-compat HUnit old-time syb test-framework
-         test-framework-hunit text time xml-conduit xml-types
+         base base-compat doctest doctest-driver-gen HUnit old-time syb
+         test-framework test-framework-hunit text time xml-conduit xml-types
        ];
-       testToolDepends = [ markdown-unlit ];
+       testToolDepends = [ doctest-driver-gen markdown-unlit ];
        description = "Interfacing with RSS (v 0.9x, 2.x, 1.0) + Atom feeds.";
        license = lib.licenses.bsd3;
      }) {};
@@ -89684,7 +90687,7 @@ self: {
          raw-strings-qq scotty text transformers wai warp wreq xml
        ];
        description = "Translate syndication feeds";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -90012,7 +91015,7 @@ self: {
        libraryHaskellDepends = [ base ];
        doHaddock = false;
        description = "To be written";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "fenfire" = callPackage
@@ -90058,7 +91061,7 @@ self: {
          tasty-hunit tasty-quickcheck time
        ];
        description = "Generate and verify HMAC-based authentication tokens";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -90484,8 +91487,8 @@ self: {
        pname = "file-embed-lzma";
        version = "0";
        sha256 = "0xqcgx4ysyjqrygnfabs169y4w986kwzvsaqh64h7x3wfi7z8v78";
-       revision = "5";
-       editedCabalFile = "1rkya7m491b3asfhpygwz97gzfh46f9h1bi6b4isbslpj50k2h6l";
+       revision = "6";
+       editedCabalFile = "0m2ay6krrjs2cgmy7divlavx0wvgwhwgba97f1m3ppcxxm1y4ikv";
        libraryHaskellDepends = [
          base base-compat bytestring directory filepath lzma
          template-haskell text th-lift-instances transformers
@@ -90694,8 +91697,8 @@ self: {
     ({ mkDerivation, base, bytestring, filepath, QuickCheck, unix }:
      mkDerivation {
        pname = "filepath-bytestring";
-       version = "1.4.2.1.6";
-       sha256 = "11xrrzdkm5i96dazbz0gi1qp8nnj2lwbnxzwy7f4cnahskz4f4g7";
+       version = "1.4.2.1.7";
+       sha256 = "00xayqjq2qvb4yj0ppx838cabg5cx9swh0mzfb8c6njk9y5rc41n";
        libraryHaskellDepends = [ base bytestring unix ];
        testHaskellDepends = [ base bytestring filepath QuickCheck ];
        description = "Library for manipulating RawFilePaths in a cross platform way";
@@ -90731,7 +91734,7 @@ self: {
        sha256 = "08rb2nafnh5vx7i6i3ddhq4h1s2ffgz8ailap5knr1xl7izgyywp";
        libraryHaskellDepends = [ base base-io-access filepath ];
        description = "IO Access for filepath";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -90959,15 +91962,15 @@ self: {
 
   "fin" = callPackage
     ({ mkDerivation, base, dec, deepseq, hashable, inspection-testing
-     , QuickCheck, tagged
+     , QuickCheck, tagged, universe-base
      }:
      mkDerivation {
        pname = "fin";
-       version = "0.1.1";
-       sha256 = "0zwc8x2ilbk1bhsk85brf6g300cx4w2j3602gjh6rv900961gqri";
-       revision = "2";
-       editedCabalFile = "1x446k44pci81dakzd98vrj6amj10xkb05k7g2qwk0ir1hdj5sfz";
-       libraryHaskellDepends = [ base dec deepseq hashable QuickCheck ];
+       version = "0.2";
+       sha256 = "1xy3dgvl6s4cyb0l2hkyl06nbhc4dpc3sy2kjd8w7av9921k96i3";
+       libraryHaskellDepends = [
+         base dec deepseq hashable QuickCheck universe-base
+       ];
        testHaskellDepends = [ base inspection-testing tagged ];
        description = "Nat and Fin: peano naturals and finite numbers";
        license = lib.licenses.bsd3;
@@ -91023,7 +92026,7 @@ self: {
          optparse-applicative text tree-fun unordered-containers
        ];
        description = "Find the clumpiness of labels in a tree";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -91092,7 +92095,7 @@ self: {
          http-directory simple-cmd-args text
        ];
        description = "List http/html files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -91255,6 +92258,7 @@ self: {
        libraryHaskellDepends = [ base deepseq ];
        description = "A type inhabited by finitely many values, indexed by type-level naturals";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ turion ];
      }) {};
 
   "finito" = callPackage
@@ -91353,16 +92357,14 @@ self: {
      }) {};
 
   "first-class-families" = callPackage
-    ({ mkDerivation, base, doctest, Glob }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "first-class-families";
-       version = "0.8.0.0";
-       sha256 = "190jl3vs7glkbm8ap90x9yzlj01yzxd818s3i0w4pz21b6d6sxav";
-       revision = "1";
-       editedCabalFile = "02z6wixk9kdgshxsz99lag29lb70kadg9wn6vsgk906wj014fv52";
+       version = "0.8.0.1";
+       sha256 = "0wnsq69f2br9h9hnf8sx41pchwjag86hb41ivjl7wx81psyqy72a";
        libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest Glob ];
-       description = "First class type families";
+       testHaskellDepends = [ base ];
+       description = "First-class type families";
        license = lib.licenses.mit;
      }) {};
 
@@ -91569,6 +92571,24 @@ self: {
        broken = true;
      }) {};
 
+  "fix-whitespace" = callPackage
+    ({ mkDerivation, base, directory, extra, filepath, filepattern
+     , text, yaml
+     }:
+     mkDerivation {
+       pname = "fix-whitespace";
+       version = "0.0.5";
+       sha256 = "1774h18dqarkbsdq47cx1zrxx0k1a7asxngz85yz5vrc2aa37hy7";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base directory extra filepath filepattern text yaml
+       ];
+       description = "Fixes whitespace issues";
+       license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "fixed" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -91761,8 +92781,8 @@ self: {
        pname = "fixed-vector-hetero";
        version = "0.6.0.0";
        sha256 = "1gc40wh887hd6am6kjswkxn9qnzxp30ni6larnq6ghrs5zalg67r";
-       revision = "1";
-       editedCabalFile = "041rz3cd2yi2k49crcbrqq1vkr4g6m5mczf2qik2avj124krq77f";
+       revision = "3";
+       editedCabalFile = "0gzmjn7cw1ywggfwqz8i5i46q93blg8l4fx7ifhzwwzarpxgkpkj";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base deepseq fixed-vector primitive ];
        testHaskellDepends = [ base doctest fixed-vector ];
@@ -91770,6 +92790,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "fixed-vector-hetero_0_6_1_0" = callPackage
+    ({ mkDerivation, base, deepseq, doctest, fixed-vector, primitive }:
+     mkDerivation {
+       pname = "fixed-vector-hetero";
+       version = "0.6.1.0";
+       sha256 = "1simmps9qz8q4kfx8vz26ww0xy70vahrsgphvfrf9ww8fk9yg518";
+       libraryHaskellDepends = [ base deepseq fixed-vector primitive ];
+       testHaskellDepends = [ base doctest fixed-vector ];
+       description = "Library for working with product types generically";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "fixed-width" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -91858,7 +92891,7 @@ self: {
          tasty tasty-quickcheck temporary
        ];
        description = "File-backed recursive data structures";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -91884,7 +92917,7 @@ self: {
          old-time QuickCheck text
        ];
        description = "FIX (co)parser";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -92057,7 +93090,9 @@ self: {
          base binary deepseq HTTP optparse-applicative process
        ];
        description = "Verify FLAC files ripped form CD using AccurateRip™";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "flags-applicative" = callPackage
@@ -92220,7 +93255,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base directory parsec ];
        description = "flatten a latex multi-file latex document and remove all comments";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "flatbuffers" = callPackage
@@ -92260,6 +93295,26 @@ self: {
        broken = true;
      }) {};
 
+  "flatparse" = callPackage
+    ({ mkDerivation, attoparsec, base, bytesmith, bytestring
+     , containers, gauge, megaparsec, parsec, primitive
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "flatparse";
+       version = "0.2.0.0";
+       sha256 = "0f7nhspfj90ypylwvya3c3dzvipvc462zyc6191xd1x40wn7qms9";
+       libraryHaskellDepends = [
+         base bytestring containers template-haskell
+       ];
+       benchmarkHaskellDepends = [
+         attoparsec base bytesmith bytestring gauge megaparsec parsec
+         primitive
+       ];
+       description = "High-performance parsing from strict bytestrings";
+       license = lib.licenses.mit;
+     }) {};
+
   "flay" = callPackage
     ({ mkDerivation, base, constraints, tasty, tasty-quickcheck
      , transformers
@@ -92560,10 +93615,8 @@ self: {
      }:
      mkDerivation {
        pname = "flock";
-       version = "0.3.1.8";
-       sha256 = "1g1gf7qnlqkl57h28nzxnbzj7v2h73czffp5y7s7jm9vbihcwd4n";
-       revision = "6";
-       editedCabalFile = "04cz4avwglnjgmsbkaadlfrzaadcfkcqzrbc4x9nbzi695zs8k21";
+       version = "0.3.2";
+       sha256 = "0zi04gmrjda11zp8y7zx6r9hkz00wplvjj7sn6q7lbm2h5kv20xr";
        libraryHaskellDepends = [
          base lifted-base monad-control transformers unix
        ];
@@ -92787,7 +93840,7 @@ self: {
          directory MonadRandom mtl random
        ];
        description = "Simulate 454 pyrosequencing";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -92991,7 +94044,7 @@ self: {
          resource-pool text time uuid-types yesod-core yesod-static
        ];
        description = "A simple web application as a online practice website for XDU SE 2017 fall SPM";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "fluffy-parser" = callPackage
@@ -93006,7 +94059,7 @@ self: {
          base binary bytestring pandoc parsec postgresql-simple
        ];
        description = "The parser for fluffy to parsec the question bank in .docx type";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -93136,6 +94189,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "fmr" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "fmr";
+       version = "0.1";
+       sha256 = "1hwi4f027pv1sy6pmanc0488xdy398iv50yapivyk2l9kipfnq3q";
+       libraryHaskellDepends = [ base ];
+       description = "Fake monadic records library";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "fmt" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring, call-stack
      , containers, criterion, deepseq, doctest, doctest-discover
@@ -93290,13 +94354,13 @@ self: {
      }) {};
 
   "fold-debounce-conduit" = callPackage
-    ({ mkDerivation, base, conduit, fold-debounce, hspec, resourcet
-     , stm, transformers, transformers-base
+    ({ mkDerivation, base, conduit, fold-debounce, hspec
+     , hspec-discover, resourcet, stm, transformers, transformers-base
      }:
      mkDerivation {
        pname = "fold-debounce-conduit";
-       version = "0.2.0.5";
-       sha256 = "1qvr3wqqv2lvs22ddmalavggp8a4a50d056a50dsz6lcml1k6hdg";
+       version = "0.2.0.6";
+       sha256 = "0xy6vr2hbw41fcs3rlk7wyxqrkqd3nfw5rcr1aiij86zaaifpry5";
        libraryHaskellDepends = [
          base conduit fold-debounce resourcet stm transformers
          transformers-base
@@ -93304,6 +94368,7 @@ self: {
        testHaskellDepends = [
          base conduit hspec resourcet stm transformers
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Regulate input traffic from conduit Source with Control.FoldDebounce";
        license = lib.licenses.bsd3;
      }) {};
@@ -93312,8 +94377,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "foldable-ix";
-       version = "0.1.0.0";
-       sha256 = "1lvf1n8mnv3imlry4nqdv8c2c930yic0raqs2awnbmyyy1c6fc79";
+       version = "0.2.0.0";
+       sha256 = "1xbdwnvbg4phkqrcb9izabff85dhdj004nnbgk53f50if9sv4463";
        libraryHaskellDepends = [ base ];
        description = "Functions to find out the indices of the elements in the Foldable structures";
        license = lib.licenses.mit;
@@ -93338,10 +94403,8 @@ self: {
      }:
      mkDerivation {
        pname = "foldl";
-       version = "1.4.10";
-       sha256 = "1fl1vahga6dv21nkgjd265nlhmgqzr8sa0fb5dfqzk34fb01vvvq";
-       revision = "1";
-       editedCabalFile = "0rd3w7m8a8pxb8jpmi9nky4hf1jl35cm8vp1qq8mfzgpx5bbqd2w";
+       version = "1.4.11";
+       sha256 = "05i87pqldk1xfpx66nh1lhn75x3g7s8kvhf9k9yll33a6ggawwxl";
        libraryHaskellDepends = [
          base bytestring comonad containers contravariant hashable
          mwc-random primitive profunctors semigroupoids text transformers
@@ -93424,8 +94487,8 @@ self: {
      }:
      mkDerivation {
        pname = "foldl-transduce";
-       version = "0.6.0.0";
-       sha256 = "177ar0c66lzp5rnnpbia0v3ri9aspc97qnj9yjwh3bz2drn01q0y";
+       version = "0.6.0.1";
+       sha256 = "1nbq27cs7jngg83ylc7rfmr8qs8xlr0dqkb9d978jsv4dblbs1gh";
        libraryHaskellDepends = [
          base bifunctors bytestring comonad containers foldl free
          monoid-subclasses profunctors semigroupoids semigroups split text
@@ -93468,26 +94531,21 @@ self: {
      }) {};
 
   "folds" = callPackage
-    ({ mkDerivation, adjunctions, base, bifunctors, bytestring, Cabal
-     , cabal-doctest, comonad, constraints, contravariant, data-reify
-     , deepseq, directory, distributive, doctest, filepath, lens, mtl
-     , pointed, profunctors, reflection, semigroupoids, semigroups
-     , transformers, unordered-containers, vector
+    ({ mkDerivation, adjunctions, base, bifunctors, comonad
+     , constraints, contravariant, data-reify, distributive, lens, mtl
+     , pointed, profunctors, reflection, semigroupoids, transformers
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "folds";
-       version = "0.7.5";
-       sha256 = "17a8xggx17m59hiwd2lxd2379sw4xblgyv1pk9g5h93w3m8wgq1r";
+       version = "0.7.6";
+       sha256 = "06sy3arl37k7qz6zm2rscpvzl9za165214f5bgjppj7zdv0qkc3v";
        configureFlags = [ "-f-test-hlint" ];
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          adjunctions base bifunctors comonad constraints contravariant
          data-reify distributive lens mtl pointed profunctors reflection
          semigroupoids transformers unordered-containers vector
        ];
-       testHaskellDepends = [
-         base bytestring deepseq directory doctest filepath mtl semigroups
-       ];
        description = "Beautiful Folding";
        license = lib.licenses.bsd3;
      }) {};
@@ -93522,7 +94580,7 @@ self: {
          array base containers gloss optparse-applicative xml
        ];
        description = "Toolset for Folger Shakespeare Library's XML annotated plays";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "follow" = callPackage
@@ -93550,7 +94608,7 @@ self: {
          text time transformers unordered-containers yaml
        ];
        description = "Haskell library to follow content published on any subject";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -93594,7 +94652,7 @@ self: {
          old-locale strict time
        ];
        description = "Follow Tweets anonymously";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -93726,8 +94784,6 @@ self: {
        ];
        description = "Simple force-directed layout";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fordo" = callPackage
@@ -93835,6 +94891,35 @@ self: {
        broken = true;
      }) {};
 
+  "forex2ledger" = callPackage
+    ({ mkDerivation, aeson, base, containers, currency-codes
+     , hledger-lib, hspec, hspec-expectations-pretty-diff, HTTP
+     , optparse-applicative, relude, text, time, tomland
+     , unordered-containers, url
+     }:
+     mkDerivation {
+       pname = "forex2ledger";
+       version = "1.0.0.0";
+       sha256 = "0rsaw9l3653kfp3hfszdyq7xqfmr38xwvlwk7mdr7sqhqs2xxbaq";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base containers currency-codes hledger-lib HTTP relude text
+         time tomland unordered-containers url
+       ];
+       executableHaskellDepends = [
+         base optparse-applicative relude text
+       ];
+       testHaskellDepends = [
+         aeson base containers currency-codes hspec
+         hspec-expectations-pretty-diff relude time
+       ];
+       description = "Print Forex quotes in Ledger format";
+       license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "forger" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -94008,21 +95093,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "formatting_7_1_1" = callPackage
-    ({ mkDerivation, base, clock, double-conversion, ghc-prim, hspec
-     , integer-gmp, old-locale, scientific, text, time, transformers
+  "formatting_7_1_2" = callPackage
+    ({ mkDerivation, base, clock, criterion, double-conversion
+     , ghc-prim, hspec, old-locale, QuickCheck, scientific, text, time
+     , transformers
      }:
      mkDerivation {
        pname = "formatting";
-       version = "7.1.1";
-       sha256 = "1abqyd2k46vrr8xxk6sgcjfm8h7x3d2hk11p8kypi85zplab4rsp";
+       version = "7.1.2";
+       sha256 = "13sdc3wc8ahf18g5yld9bqi5yhbbg1w1r69rims93c5bxhiw3f9f";
        libraryHaskellDepends = [
-         base clock double-conversion ghc-prim integer-gmp old-locale
-         scientific text time transformers
+         base clock double-conversion ghc-prim old-locale scientific text
+         time transformers
        ];
-       testHaskellDepends = [
-         base clock double-conversion ghc-prim hspec integer-gmp old-locale
-         scientific text time transformers
+       testHaskellDepends = [ base ghc-prim hspec scientific text ];
+       benchmarkHaskellDepends = [
+         base criterion ghc-prim QuickCheck text
        ];
        description = "Combinator-based type-safe formatting (like printf() or FORMAT)";
        license = lib.licenses.bsd3;
@@ -94149,8 +95235,8 @@ self: {
      }:
      mkDerivation {
        pname = "forsyde-shallow";
-       version = "3.4.0.1";
-       sha256 = "0im5xf8dcalsjk85fyvih042apv3wl54k3jlmdjg7fnm3mgxj1yj";
+       version = "3.5.0.0";
+       sha256 = "16skihnq2kkxdgliv6780s2lyka1bsm0naws6kz1sy3ggsw0qnp9";
        libraryHaskellDepends = [ base directory old-time process random ];
        testHaskellDepends = [
          base directory doctest hspec old-time process QuickCheck random
@@ -94167,7 +95253,7 @@ self: {
        sha256 = "1hmcicxnxcl99chidkbg1kspjzpxxcw8qh4lrwvmlpz2knzf11g3";
        libraryHaskellDepends = [ array-forth base free mtl ];
        description = "A simple eDSL for generating arrayForth code";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -94175,28 +95261,50 @@ self: {
   "fortran-src" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, fgl, filepath, GenericPretty, happy, hspec
-     , mtl, pretty, text, uniplate
+     , hspec-discover, mtl, pretty, temporary, text, uniplate
      }:
      mkDerivation {
        pname = "fortran-src";
-       version = "0.4.0";
-       sha256 = "1l66f9wcn5dp7i63wapzkx8bgiy22xrlxbfh3jbnhy7glhvk80ja";
+       version = "0.4.2";
+       sha256 = "03x1pxkpl41r4cf034qj5ls946azbzwdyxkp2nxxymjx0nm2lsv6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory fgl
-         filepath GenericPretty mtl pretty text uniplate
+         filepath GenericPretty mtl pretty temporary text uniplate
        ];
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [
          array base binary bytestring containers deepseq directory fgl
-         filepath GenericPretty mtl pretty text uniplate
+         filepath GenericPretty mtl pretty temporary text uniplate
        ];
        testHaskellDepends = [
          array base binary bytestring containers deepseq directory fgl
-         filepath GenericPretty hspec mtl pretty text uniplate
+         filepath GenericPretty hspec mtl pretty temporary text uniplate
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Parsers and analyses for Fortran standards 66, 77, 90 and 95";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "fortran-src-extras" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, containers
+     , directory, filepath, fortran-src, GenericPretty, hspec
+     , hspec-discover, optparse-applicative, silently, text, uniplate
+     }:
+     mkDerivation {
+       pname = "fortran-src-extras";
+       version = "0.1.0";
+       sha256 = "0q4wrif8mx5h6i2wsw2qa1hqdn95ii7211fnk8vj5g9ki3vrnlk8";
+       libraryHaskellDepends = [
+         aeson base binary bytestring containers directory filepath
+         fortran-src GenericPretty optparse-applicative text uniplate
        ];
-       description = "Parser and anlyses for Fortran standards 66, 77, 90 and 95";
+       testHaskellDepends = [ base fortran-src hspec silently uniplate ];
+       testToolDepends = [ hspec-discover ];
+       description = "Common functions and utils for fortran-src";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -94346,6 +95454,8 @@ self: {
        pname = "fourmolu";
        version = "0.3.0.0";
        sha256 = "0v89dvcr8l0swj23kkakc39q6lyxjz90rqgwy7m6a5p6iv3h2wms";
+       revision = "1";
+       editedCabalFile = "1n3avdmjqkd2910lhb5spxvjgzb7icln82pcrz3cmkfmjwxnirsc";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -94641,6 +95751,8 @@ self: {
        libraryHaskellDepends = [ base frame pandoc ];
        description = "A markdown to Frame GUI writer for Pandoc";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "franchise" = callPackage
@@ -94769,8 +95881,8 @@ self: {
      }:
      mkDerivation {
        pname = "free-algebras";
-       version = "0.1.0.0";
-       sha256 = "0s5gj52b3s1hg92cs12qk7y2zgsl546livdzps2qm4fmjc394qj3";
+       version = "0.1.0.1";
+       sha256 = "13cyy6afp9y3wfv3qihf0ngrvs7rghbx627a88l3yq1l21r0bbj8";
        libraryHaskellDepends = [
          base containers data-fix dlist free groups kan-extensions mtl
          transformers
@@ -94802,8 +95914,8 @@ self: {
      }:
      mkDerivation {
        pname = "free-category";
-       version = "0.0.4.2";
-       sha256 = "1nnf7y0m5pv36ka54vmfbhj6v0354gk36r539ss4zzp6jc8mzvdl";
+       version = "0.0.4.3";
+       sha256 = "0jla6y9bjnprbwr9nl415rf3kcf709vpg4hg59xi3bfylnhd06bd";
        libraryHaskellDepends = [ base free-algebras ];
        testHaskellDepends = [
          base free-algebras QuickCheck tasty tasty-quickcheck
@@ -95138,7 +96250,9 @@ self: {
        libraryPkgconfigDepends = [ libfreenect ];
        description = "Interface to the Kinect device";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) freenect; freenect_sync = null; 
          libfreenect = null;};
 
@@ -95469,7 +96583,7 @@ self: {
          base QuickCheck test-framework test-framework-quickcheck2 vector
        ];
        description = "A functional image processing library for Haskell";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "friday-devil" = callPackage
@@ -95485,7 +96599,7 @@ self: {
        ];
        librarySystemDepends = [ libdevil ];
        description = "Uses the DevIL C library to read and write images from and to files and memory buffers";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) libdevil;};
@@ -95667,7 +96781,7 @@ self: {
        sha256 = "18mnxlwlyh4q18xc9svpwma3qgwp473dfg1z1rmdll6za82zmvzn";
        libraryHaskellDepends = [ base containers mtl ];
        description = "Arduino programming without the hassle of C";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -95749,7 +96863,7 @@ self: {
        libraryHaskellDepends = [ base frpnow vty ];
        executableHaskellDepends = [ base containers frpnow vty ];
        description = "Program terminal applications with vty and frpnow!";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -96008,6 +97122,8 @@ self: {
        testHaskellDepends = [ base bytestring tasty tasty-hspec ];
        description = "Transfer files with FTP and FTPS";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ftp-client-conduit" = callPackage
@@ -96024,6 +97140,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "Transfer file with FTP and FTPS with Conduit";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ftp-conduit" = callPackage
@@ -96072,6 +97190,8 @@ self: {
        libraryHaskellDepends = [ base ShowF type-unary ];
        description = "Depth-typed functor-based trees, both top-down and bottom-up";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ftshell" = callPackage
@@ -96155,8 +97275,6 @@ self: {
        ];
        description = "Simple sentence segmenter";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "funbot" = callPackage
@@ -96250,7 +97368,7 @@ self: {
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base filepath pretty process ];
        description = "Functional MetaPost is a Haskell frontend to the MetaPost language";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
@@ -96312,25 +97430,26 @@ self: {
      }) {};
 
   "funcons-tools" = callPackage
-    ({ mkDerivation, base, bv, containers, directory, funcons-values
-     , gll, mtl, multiset, random-strings, regex-applicative, split
-     , text, TypeCompose, vector
+    ({ mkDerivation, base, bv, containers, directory
+     , exploring-interpreters, funcons-values, gll, haskeline, mtl
+     , multiset, random-strings, regex-applicative, split, text
+     , transformers, TypeCompose, vector
      }:
      mkDerivation {
        pname = "funcons-tools";
-       version = "0.2.0.9";
-       sha256 = "0k3560521kf1krj5j1wgbcipqcnvjq3igb9fymfdsswwqr1wpx67";
-       revision = "1";
-       editedCabalFile = "0h68688dy1x2wj5m5gi5lc3xhskzpdnfqfk3i4bzkxvh87mak7l4";
+       version = "0.2.0.11";
+       sha256 = "1gi7db5mjq25xwl27ihsrg0ya1jgw5zhki5c1431rizj72yx5ji9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bv containers directory funcons-values gll mtl multiset
-         random-strings regex-applicative split text TypeCompose vector
+         base bv containers directory funcons-values gll haskeline mtl
+         multiset random-strings regex-applicative split text TypeCompose
+         vector
        ];
        executableHaskellDepends = [
-         base bv containers directory funcons-values gll mtl multiset
-         random-strings regex-applicative split text TypeCompose vector
+         base bv containers directory exploring-interpreters funcons-values
+         gll haskeline mtl multiset random-strings regex-applicative split
+         text transformers TypeCompose vector
        ];
        description = "A modular interpreter for executing funcons";
        license = lib.licenses.mit;
@@ -96449,10 +97568,8 @@ self: {
      }:
      mkDerivation {
        pname = "functor-classes-compat";
-       version = "1";
-       sha256 = "0vrnl5crr7d2wsm4ryx26g98j23dpk7x5p31xrbnckd78i7zj4gg";
-       revision = "6";
-       editedCabalFile = "0r0h3hp182w9ndhr5lrvhzl1vyj2f3vvh32fpdnbxb8xkkhx55sa";
+       version = "1.0.1";
+       sha256 = "0p6kwj1yimis0rg2gihwkgxkjj1psxy38hxa94gz5pd638314hi3";
        libraryHaskellDepends = [
          base containers hashable unordered-containers vector
        ];
@@ -96503,6 +97620,8 @@ self: {
        ];
        description = "Functor combinators with tries & zippers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "functor-friends" = callPackage
@@ -96760,21 +97879,20 @@ self: {
      }) {};
 
   "fused-effects" = callPackage
-    ({ mkDerivation, base, containers, gauge, hedgehog, hedgehog-fn
-     , inspection-testing, markdown-unlit, tasty, tasty-hedgehog
-     , tasty-hunit, transformers
+    ({ mkDerivation, base, containers, hedgehog, hedgehog-fn
+     , inspection-testing, markdown-unlit, tasty-bench, transformers
      }:
      mkDerivation {
        pname = "fused-effects";
-       version = "1.1.1.0";
-       sha256 = "0z83iw3bysfk13pda44lasgyg3nlnrxv6bz1f9mpdyymq3vnb9d7";
+       version = "1.1.1.1";
+       sha256 = "1hd7sslc28fgx3l59afjzfdx3qya6ilc46mla16idm0z8i0avhh5";
        libraryHaskellDepends = [ base transformers ];
        testHaskellDepends = [
-         base containers hedgehog hedgehog-fn inspection-testing tasty
-         tasty-hedgehog tasty-hunit transformers
+         base containers hedgehog hedgehog-fn inspection-testing
+         transformers
        ];
        testToolDepends = [ markdown-unlit ];
-       benchmarkHaskellDepends = [ base gauge transformers ];
+       benchmarkHaskellDepends = [ base tasty-bench transformers ];
        description = "A fast, flexible, fused effect system";
        license = lib.licenses.bsd3;
      }) {};
@@ -96963,28 +98081,29 @@ self: {
 
   "futhark" = callPackage
     ({ mkDerivation, aeson, alex, ansi-terminal, array, base, binary
-     , blaze-html, bytestring, bytestring-to-vector, cmark-gfm
+     , blaze-html, bmp, bytestring, bytestring-to-vector, cmark-gfm
      , containers, directory, directory-tree, dlist, file-embed
-     , filepath, free, gitrev, happy, haskeline, language-c-quote
-     , mainland-pretty, megaparsec, mtl, neat-interpolation, parallel
-     , parser-combinators, pcg-random, process, process-extras
-     , QuickCheck, regex-tdfa, sexp-grammar, srcloc, tasty, tasty-hunit
-     , tasty-quickcheck, template-haskell, temporary, terminal-size
-     , text, time, transformers, unordered-containers, utf8-string
-     , vector, vector-binary-instances, versions, zip-archive, zlib
+     , filepath, free, gitrev, happy, hashable, haskeline
+     , language-c-quote, mainland-pretty, megaparsec, mtl
+     , neat-interpolation, parallel, parser-combinators, pcg-random
+     , process, process-extras, QuickCheck, regex-tdfa, srcloc, tasty
+     , tasty-hunit, tasty-quickcheck, template-haskell, temporary
+     , terminal-size, text, time, transformers, unordered-containers
+     , utf8-string, vector, vector-binary-instances, versions
+     , zip-archive, zlib
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.18.6";
-       sha256 = "0bp837b6myis5kvyy0rg3py01fcyyj7qws7kqvci3mjyi9x57k7w";
+       version = "0.19.4";
+       sha256 = "1d4704pmknv39yw2bjxkp5n2wl9a14n3pn221m3src5z237lchq7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-terminal array base binary blaze-html bytestring
+         aeson ansi-terminal array base binary blaze-html bmp bytestring
          bytestring-to-vector cmark-gfm containers directory directory-tree
-         dlist file-embed filepath free gitrev haskeline language-c-quote
-         mainland-pretty megaparsec mtl neat-interpolation parallel
-         pcg-random process process-extras regex-tdfa sexp-grammar srcloc
+         dlist file-embed filepath free gitrev hashable haskeline
+         language-c-quote mainland-pretty megaparsec mtl neat-interpolation
+         parallel pcg-random process process-extras regex-tdfa srcloc
          template-haskell temporary terminal-size text time transformers
          unordered-containers utf8-string vector vector-binary-instances
          versions zip-archive zlib
@@ -96992,11 +98111,13 @@ self: {
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [ base text ];
        testHaskellDepends = [
-         base containers megaparsec mtl parser-combinators QuickCheck
-         sexp-grammar tasty tasty-hunit tasty-quickcheck text
+         base containers megaparsec mtl parser-combinators QuickCheck tasty
+         tasty-hunit tasty-quickcheck text
        ];
        description = "An optimising compiler for a functional, array-oriented language";
        license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "futhask" = callPackage
@@ -97023,7 +98144,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base bytestring network unix ];
        description = "Simple IP-over-UDP tunnel using TUNTAP";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -97049,7 +98170,7 @@ self: {
        sha256 = "10whksji6r1bilmj2fxcccg89zh7c08s2zfn07r6wj3xgschrckv";
        libraryHaskellDepends = [ base transformers ];
        description = "realtime resource handling with manual concurrency";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "futures" = callPackage
@@ -97186,6 +98307,17 @@ self: {
        broken = true;
      }) {};
 
+  "fuzzyfind" = callPackage
+    ({ mkDerivation, array, base, containers }:
+     mkDerivation {
+       pname = "fuzzyfind";
+       version = "0.1.0";
+       sha256 = "0ghv1paisvy4dn3l7vv499a6k6a4r54ks5bn3jl8zhy65xn5c8nv";
+       libraryHaskellDepends = [ array base containers ];
+       description = "Fuzzy text matching";
+       license = lib.licenses.mit;
+     }) {};
+
   "fuzzyset" = callPackage
     ({ mkDerivation, base, data-default, hspec, ieee754, text
      , text-metrics, unordered-containers, vector
@@ -97300,6 +98432,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "fxpak" = callPackage
+    ({ mkDerivation, base, bytestring, serialport }:
+     mkDerivation {
+       pname = "fxpak";
+       version = "0.0.1";
+       sha256 = "07c5za6limzk76if4rnwyq5iawhqp78hlm793y73cxhb65y0g9d0";
+       libraryHaskellDepends = [ base bytestring serialport ];
+       description = "Interface to the FXPak/FXPak Pro USB interface";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "g-npm" = callPackage
     ({ mkDerivation, base, HTTP, json }:
      mkDerivation {
@@ -97859,7 +99004,7 @@ self: {
        libraryPkgconfigDepends = [ GConf ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the GNOME configuration database system";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs.gnome2) GConf;};
@@ -97996,7 +99141,7 @@ self: {
          transformers
        ];
        description = "recursive atomic build system";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "gdp" = callPackage
@@ -98023,7 +99168,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base GLUT OpenGLRaw Vec ];
        description = "zooming rotating fractal gears graphics demo";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "gedcom" = callPackage
@@ -98109,7 +99254,7 @@ self: {
        librarySystemDepends = [ gegl ];
        libraryPkgconfigDepends = [ gegl ];
        description = "Haskell bindings to GEGL library";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gegl;};
@@ -98223,57 +99368,58 @@ self: {
      }) {};
 
   "gemini-router" = callPackage
-    ({ mkDerivation, base, gemini-server, network-uri, transformers }:
+    ({ mkDerivation, base, gemini-server, HsOpenSSL, network-uri
+     , transformers
+     }:
      mkDerivation {
        pname = "gemini-router";
-       version = "0.1.0.0";
-       sha256 = "1k1fa4vi93ijj8yf1sfjgmy5kibs0z77z994pvzs1bm8sx73h8kr";
+       version = "0.1.1.0";
+       sha256 = "19aq9ri0ixkg0d5g4ickda75dvpq340lwkdxn0ndcbkis9xrvkv9";
        revision = "1";
-       editedCabalFile = "1pb52h8md6g422y5rj7nyy1mkgxccggfal27i42c3qsn8x9frrpz";
+       editedCabalFile = "07lnx99d3dkjhqcail31zkbmivclzxdj3qjbhijg1cs3fkl57q3q";
        libraryHaskellDepends = [
-         base gemini-server network-uri transformers
+         base gemini-server HsOpenSSL network-uri transformers
        ];
        description = "A simple Happstack-style Gemini router";
        license = lib.licenses.bsd3;
      }) {};
 
   "gemini-server" = callPackage
-    ({ mkDerivation, base, bytestring, hslogger, network, network-run
-     , network-uri, text, utf8-string
+    ({ mkDerivation, base, bytestring, hslogger, HsOpenSSL, network
+     , network-run, network-uri, text, utf8-string
      }:
      mkDerivation {
        pname = "gemini-server";
-       version = "0.1.0.0";
-       sha256 = "0m98dc66469gbnsra8sp0clrlbyzn817vnd7aini576g5gv4sxr5";
-       revision = "1";
-       editedCabalFile = "091wv6ar78dhhz1y6rknslxc2wh020b50n38928abl0a939gwvh9";
+       version = "0.3.0.0";
+       sha256 = "0s9h0lzxz5yjvz8rzw9mx9dba21171960waaqikj2qbbja0iq3k3";
        libraryHaskellDepends = [
-         base bytestring hslogger network network-run network-uri text
-         utf8-string
+         base bytestring hslogger HsOpenSSL network network-run network-uri
+         text utf8-string
        ];
        description = "A lightweight server for the Gemini protocol";
        license = lib.licenses.bsd3;
      }) {};
 
   "gemini-textboard" = callPackage
-    ({ mkDerivation, base, cache, clock, gemini-router, gemini-server
-     , language-gemini, network-uri, nonce, sqlite-simple, text, time
-     , transformers
+    ({ mkDerivation, base, base64, cache, clock, cryptohash-sha256
+     , gemini-router, gemini-server, HsOpenSSL, language-gemini
+     , network-uri, nonce, sqlite-simple, text, time, transformers
      }:
      mkDerivation {
        pname = "gemini-textboard";
-       version = "0.1.0.0";
-       sha256 = "1z8nkrkar4das4kpgsg03hsgg3i5y2639h7sik8cjdvyvwi8dpsn";
-       revision = "1";
-       editedCabalFile = "1h1fxigslzpbsjskrdaqa3gd063r4c7z6vvwaa6dk5d3mf67dbwq";
+       version = "0.2.0.1";
+       sha256 = "1yvizcxafq943q9fbz08mq2x50dw9ykdz5vy6hr6ps2g47j4wfa0";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base cache clock gemini-router gemini-server language-gemini
-         network-uri nonce sqlite-simple text time transformers
+         base base64 cache clock cryptohash-sha256 gemini-router
+         gemini-server HsOpenSSL language-gemini network-uri nonce
+         sqlite-simple text time transformers
        ];
        description = "A barebones textboard for the Gemini protocol";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "gemstone" = callPackage
@@ -98361,7 +99507,7 @@ self: {
        libraryHaskellDepends = [ attoparsec base text ];
        executableHaskellDepends = [ attoparsec base text ];
        description = "Identify a persons gender by their first name";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -98463,8 +99609,8 @@ self: {
      }:
      mkDerivation {
        pname = "generic-accessors";
-       version = "0.7.0.0";
-       sha256 = "0jvrwjry0kgw27qhnqxm5zvpks69cvvj0iz1ipvdsd5hi16dxarb";
+       version = "0.7.1.0";
+       sha256 = "0pj7dfvizjkjfrnhc2kgb99ygrjxjgbisaj1fszhznn305b879c1";
        libraryHaskellDepends = [
          base binary cereal lens linear spatial-math TypeCompose
        ];
@@ -98493,6 +99639,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "generic-aeson_0_2_0_12" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, generic-deriving, mtl
+     , tagged, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "generic-aeson";
+       version = "0.2.0.12";
+       sha256 = "17br2dl9gd2hyflgp0fzqs5ghp4my4l234pjfvvnhk9n4szxzcr3";
+       libraryHaskellDepends = [
+         aeson attoparsec base generic-deriving mtl tagged text
+         unordered-containers vector
+       ];
+       description = "Derivation of Aeson instances using GHC generics";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "generic-arbitrary" = callPackage
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
@@ -98701,6 +99864,8 @@ self: {
        testHaskellDepends = [ base Cabal inspection-testing ];
        description = "Generically extract and replace collections of record fields";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "generic-lens" = callPackage
@@ -98782,8 +99947,8 @@ self: {
        pname = "generic-lens-lite";
        version = "0.1";
        sha256 = "07z00phy6h50bb4axlr57kin9l5fygi4q4j33rj5180ai2cbcpc6";
-       revision = "1";
-       editedCabalFile = "1gbl0kmc77yjvn63cgdsifhzyd54g1v1qq1pjsrhhn0hb4c8jszz";
+       revision = "2";
+       editedCabalFile = "0516sqr5xplh57kdzcxx1fpsxwhmxc1bl9hxlcdif9hrjjb61rwg";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Monomorphic field lens like with generic-lens";
@@ -98891,8 +100056,8 @@ self: {
        pname = "generic-optics-lite";
        version = "0.1";
        sha256 = "0vf5sk1narj69pdhjqxjj0w3w3i5lxjxn8p98xp8dj0jws4mx9xi";
-       revision = "1";
-       editedCabalFile = "1z6bglkw2lvwlxjs0dlmr9wa4rh73pkzhqlg5dq88q5p9d51cy09";
+       revision = "2";
+       editedCabalFile = "1ib6klb9ff27qw8y6icywldnq1p5z8fbkwkibsjyimbvvdk4lqki";
        libraryHaskellDepends = [ base generic-lens-lite optics-core ];
        testHaskellDepends = [ base optics-core ];
        description = "Monomorphic field opics like with generic-lens";
@@ -99109,10 +100274,8 @@ self: {
      }:
      mkDerivation {
        pname = "generics-sop";
-       version = "0.5.1.0";
-       sha256 = "0g0z0k5bnw3whfj3qswzhadrhg85jfn491s30cgai0ijfjm5gipa";
-       revision = "1";
-       editedCabalFile = "1m61bb6k96ybsrc3hpxn0fdspq9mbkyfklx7vfnd55mava4ahzp2";
+       version = "0.5.1.1";
+       sha256 = "1n65wjdbb9fswa43ys5k6c746c905877lw5ij33y66iabj5w7dw1";
        libraryHaskellDepends = [
          base ghc-prim sop-core template-haskell th-abstraction
        ];
@@ -99130,6 +100293,8 @@ self: {
        pname = "generics-sop-lens";
        version = "0.2.0.1";
        sha256 = "1yl74pz6r2zf9sspzbqg6xvr6k9b5irq3c3pjrf5ih6hfrz4k1ks";
+       revision = "1";
+       editedCabalFile = "1y9v2imcrm8wyagv2d91x7zvdf358iz7460gqakhg9bgifjaylh1";
        libraryHaskellDepends = [ base generics-sop lens ];
        description = "Lenses for types in generics-sop";
        license = lib.licenses.bsd3;
@@ -99263,7 +100428,7 @@ self: {
          base bytestring cmdargs directory filepath GenI json text
        ];
        description = "Companion tools for use with the GenI surface realiser";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -99688,6 +100853,34 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-persistent" = callPackage
+    ({ mkDerivation, base, containers, criterion, deepseq, genvalidity
+     , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
+     , hspec, persistent, persistent-template, QuickCheck
+     , validity-containers, validity-persistent
+     }:
+     mkDerivation {
+       pname = "genvalidity-persistent";
+       version = "0.0.0.0";
+       sha256 = "01gnwvfa1hlyr35rafvdb9rz8axbnqw7nl182wf6j4pjy40iff17";
+       libraryHaskellDepends = [
+         base containers genvalidity genvalidity-containers persistent
+         QuickCheck validity-containers validity-persistent
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec hspec persistent
+         persistent-template QuickCheck validity-containers
+       ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq genvalidity genvalidity-criterion persistent
+         persistent-template
+       ];
+       description = "GenValidity support for Persistent";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "genvalidity-property" = callPackage
     ({ mkDerivation, base, directory, doctest, filepath, genvalidity
      , hspec, pretty-show, QuickCheck, validity
@@ -99722,6 +100915,107 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-sydtest" = callPackage
+    ({ mkDerivation, base, genvalidity, pretty-show, QuickCheck
+     , sydtest, sydtest-discover, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-sydtest";
+       version = "0.0.0.0";
+       sha256 = "1jgrhdjxin1zwgf2b03fpcfivyq30idnh2qcw3604bsq5cn0wca0";
+       libraryHaskellDepends = [
+         base genvalidity pretty-show QuickCheck sydtest validity
+       ];
+       testHaskellDepends = [ base genvalidity QuickCheck sydtest ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Standard properties for functions on `Validity` types for the sydtest framework";
+       license = lib.licenses.mit;
+     }) {};
+
+  "genvalidity-sydtest-aeson" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, deepseq, genvalidity
+     , genvalidity-aeson, genvalidity-sydtest, genvalidity-text
+     , QuickCheck, sydtest, sydtest-discover, text, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-sydtest-aeson";
+       version = "0.0.0.0";
+       sha256 = "1lpiinb06hl8y91nxp4n4id2vyxs3yww5wb5jczpr9fk1fbb6qbz";
+       libraryHaskellDepends = [
+         aeson base bytestring deepseq genvalidity genvalidity-sydtest
+         QuickCheck sydtest
+       ];
+       testHaskellDepends = [
+         aeson base genvalidity genvalidity-aeson genvalidity-sydtest
+         genvalidity-text QuickCheck sydtest text validity
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Standard spec's for aeson-related instances in sydtest";
+       license = lib.licenses.mit;
+     }) {};
+
+  "genvalidity-sydtest-hashable" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-sydtest, hashable
+     , QuickCheck, sydtest, sydtest-discover, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-sydtest-hashable";
+       version = "0.0.0.0";
+       sha256 = "0ii3s69alncyrjz410d1cvx5rgdff1cyc9ddin0xrsrz23sxi06m";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-sydtest hashable QuickCheck sydtest
+         validity
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-sydtest hashable QuickCheck sydtest
+         validity
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Standard spec's for Hashable instances for sydtest";
+       license = lib.licenses.mit;
+     }) {};
+
+  "genvalidity-sydtest-lens" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-sydtest, microlens
+     , QuickCheck, sydtest, sydtest-discover, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-sydtest-lens";
+       version = "0.0.0.0";
+       sha256 = "1f8wb0pa703r6hgdbhi343rfjcf2q78qfn6x3dmc94d3vd17wyvj";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-sydtest microlens QuickCheck sydtest
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-sydtest microlens sydtest validity
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Standard spec's for lens for sydtest";
+       license = lib.licenses.mit;
+     }) {};
+
+  "genvalidity-sydtest-persistent" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-sydtest
+     , genvalidity-text, persistent, QuickCheck, sydtest
+     , sydtest-discover, text, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-sydtest-persistent";
+       version = "0.0.0.1";
+       sha256 = "07y7478lcmpb44bwj7pppv4pfb44wh9hynwawx1czkjf6jnggwcm";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-sydtest persistent QuickCheck sydtest
+         text
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-sydtest genvalidity-text persistent
+         QuickCheck sydtest text validity
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Standard spec's for persistent-related instances for sydtest";
+       license = lib.licenses.mit;
+     }) {};
+
   "genvalidity-text" = callPackage
     ({ mkDerivation, array, base, criterion, genvalidity
      , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck
@@ -100056,7 +101350,7 @@ self: {
        libraryHaskellDepends = [ base ieee754 linear QuickCheck ];
        testHaskellDepends = [ base ieee754 linear QuickCheck ];
        description = "package for geometry in euklidean 2d space";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -100192,7 +101486,7 @@ self: {
        enableSeparateDataOutput = true;
        executableHaskellDepends = [ base containers parsec ];
        description = "A type checker and runtime system of rCOS/g (impl. of ggts-FCS).";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -100267,32 +101561,42 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-boot_8_8_3" = callPackage
-    ({ mkDerivation, base, binary, bytestring, directory, filepath
-     , ghc-boot-th
+  "ghc-bignum" = callPackage
+    ({ mkDerivation }:
+     mkDerivation {
+       pname = "ghc-bignum";
+       version = "1.0";
+       sha256 = "0xl848q8z6qx2bi6xil0d35lra7wshwvysyfblki659d7272b1im";
+       description = "GHC BigNum library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "ghc-boot_9_0_1" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers, directory
+     , filepath, ghc-boot-th
      }:
      mkDerivation {
        pname = "ghc-boot";
-       version = "8.8.3";
-       sha256 = "0h4nayld1qa08aly5y3z91z4n778g25s92fggvcxga8bxs49sh50";
-       revision = "1";
-       editedCabalFile = "0rzc0759sy8n7dp4csy464vb8kvaapzvxzjr1scmwh2gk9v3s1lk";
+       version = "9.0.1";
+       sha256 = "1qrxb762dj8p1brfpyididhjnwjk34nr6cq4j80rkhaf7pki08ik";
        libraryHaskellDepends = [
-         base binary bytestring directory filepath ghc-boot-th
+         base binary bytestring containers directory filepath ghc-boot-th
        ];
        description = "Shared functionality between GHC and its boot libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "ghc-boot-th_8_10_2" = callPackage
+  "ghc-boot-th_9_0_1" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "ghc-boot-th";
-       version = "8.10.2";
-       sha256 = "1jic3l319b02f8b4r87c48645xhn5784vhgz2mp7d0zi2srrsfcz";
+       version = "9.0.1";
+       sha256 = "1y3kpfczcs507md56ijw943pwvia86fh83mr2c0bq28yhd0kw8gl";
        libraryHaskellDepends = [ base ];
-       description = "Shared functionality between GHC and the `template-haskell` library";
+       description = "Shared functionality between GHC and the @template-haskell@ library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -100303,6 +101607,8 @@ self: {
        pname = "ghc-byteorder";
        version = "4.11.0.0.10";
        sha256 = "1dhzd7ygwm7b3hsrlm48iq4p634laby4hf7c8i7xp0c1g64hmrc6";
+       revision = "1";
+       editedCabalFile = "1qwx6569079a8viq2plkpc1wlqdz8syys6hvx68m051a7zvdwzyl";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        doHaddock = false;
@@ -100521,8 +101827,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-events";
-       version = "0.15.1";
-       sha256 = "16kh64z60353m6bj9lmv9yzlvydgmi66hm8gc4b22bs69xyh2pxz";
+       version = "0.16.0";
+       sha256 = "0cr6aj4v9j2fadwhhifjlbg4anyc05phfmy3pvd9h7gn12a2ydr9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -100591,8 +101897,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-exactprint";
-       version = "0.6.3.4";
-       sha256 = "0x3z9zlghcd22v6hidby72w6g11xl6cbwyskzcjlv0235csr5v98";
+       version = "0.6.4";
+       sha256 = "0a6baza962d4pz2m02hxmh8234i47zkizmwhsy68namr05dmlgpw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -100633,6 +101939,18 @@ self: {
        broken = true;
      }) {};
 
+  "ghc-heap_9_0_1" = callPackage
+    ({ mkDerivation, base, ghc-prim, rts }:
+     mkDerivation {
+       pname = "ghc-heap";
+       version = "9.0.1";
+       sha256 = "01wz87jpd5b39lh9hymx8zd0r86insvk65lwhmdgj3yv4ldyrydn";
+       libraryHaskellDepends = [ base ghc-prim rts ];
+       description = "Functions for walking GHC's heap";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ghc-heap-view" = callPackage
     ({ mkDerivation, base, binary, bytestring, Cabal, containers
      , deepseq, filepath, ghc-heap, template-haskell, transformers
@@ -100758,15 +102076,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib_9_0_1_20210207" = callPackage
+  "ghc-lib_9_0_1_20210324" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, exceptions, filepath, ghc-lib-parser
      , ghc-prim, happy, hpc, pretty, process, time, transformers, unix
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "9.0.1.20210207";
-       sha256 = "1fi62pq18s63w4y6xrjq9zlcra8dk5xqjax8kyyvfrjaaxqci8qk";
+       version = "9.0.1.20210324";
+       sha256 = "1qzsm132jk84nvkyrmhmnhpccb2f07miwdcq7h11ljmd3c4c577a";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory
@@ -100798,15 +102116,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib-parser_9_0_1_20210207" = callPackage
+  "ghc-lib-parser_9_0_1_20210324" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, exceptions, filepath, ghc-prim, happy, hpc
      , pretty, process, time, transformers, unix
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "9.0.1.20210207";
-       sha256 = "1gikdcgcgw1paxs5igxgxdfvpjp23963f6vn83m0a6vr88n2haah";
+       version = "9.0.1.20210324";
+       sha256 = "1hl20lz8r9yhgh6hlakmbqp637h49mq3sdxciy4vsz3nhzy7nqqm";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory
@@ -100839,14 +102157,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib-parser-ex_9_0_0_3" = callPackage
+  "ghc-lib-parser-ex_9_0_0_4" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, extra
      , filepath, ghc-lib-parser, tasty, tasty-hunit, uniplate
      }:
      mkDerivation {
        pname = "ghc-lib-parser-ex";
-       version = "9.0.0.3";
-       sha256 = "1kc6p5ciymq8rbgk4jj1hawmjhkj1yjzkxj9jjyqlgzs09i3dsw3";
+       version = "9.0.0.4";
+       sha256 = "11j1k26h7px9fydrwi5x9d9ckivc4xdsw4gzb7xhpzdq60f8af66";
        libraryHaskellDepends = [
          base bytestring containers ghc-lib-parser uniplate
        ];
@@ -100932,7 +102250,7 @@ self: {
          base criterion directory filepath temporary
        ];
        description = "Happy Haskell Hacking";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -101020,8 +102338,8 @@ self: {
        pname = "ghc-paths";
        version = "0.1.0.12";
        sha256 = "1164w9pqnf7rjm05mmfjznz7rrn415blrkk1kjc0gjvks1vfdjvf";
-       revision = "1";
-       editedCabalFile = "1gb4hn87a78j1c2y1adi81y03irzkaxywscjkphfajsxc7f0ydw5";
+       revision = "2";
+       editedCabalFile = "07f81larq1ddxq2m2vyq05sdhfmz0whf2c3i5cdq57pkhijxppxg";
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base ];
        description = "Knowledge of GHC's installation directories";
@@ -101080,17 +102398,19 @@ self: {
        broken = true;
      }) {};
 
-  "ghc-prim_0_6_1" = callPackage
-    ({ mkDerivation, rts }:
+  "ghc-prim_0_7_0" = callPackage
+    ({ mkDerivation, base, c, Cabal, rts }:
      mkDerivation {
        pname = "ghc-prim";
-       version = "0.6.1";
-       sha256 = "06nc87f4mcqcddllysb75qj942y5mmdwss7h9z3m0m93lbxxy6a2";
+       version = "0.7.0";
+       sha256 = "189mr2v8b338lzdhr0r1p4wqz4gm47gqw93fziawwvlj4g6k8mw9";
+       setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ rts ];
+       librarySystemDepends = [ c ];
        description = "GHC primitives";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-     }) {};
+     }) {c = null;};
 
   "ghc-prof" = callPackage
     ({ mkDerivation, attoparsec, base, containers, directory, filepath
@@ -101098,8 +102418,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-prof";
-       version = "1.4.1.7";
-       sha256 = "0js799sf957xlki8f7jgwj803iygi35j4bp4p4hh8gzj4icvcqfz";
+       version = "1.4.1.8";
+       sha256 = "02k6il0a6cdr5dvf5x6gpjyn9vzn43kahqdsq5lzjvw5c6l0462p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -101292,6 +102612,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ghc-syntax-highlighter_0_0_7_0" = callPackage
+    ({ mkDerivation, base, ghc-lib-parser, hspec, hspec-discover, text
+     }:
+     mkDerivation {
+       pname = "ghc-syntax-highlighter";
+       version = "0.0.7.0";
+       sha256 = "123kvcdlzx18n14122xbpp587byfd8w0z886grlxkzinb53bmzg6";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base ghc-lib-parser text ];
+       testHaskellDepends = [ base hspec text ];
+       testToolDepends = [ hspec-discover ];
+       description = "Syntax highlighter for Haskell using lexer of GHC itself";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ghc-tags-core" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, cpphs, criterion
      , deepseq, directory, filepath, filepath-bytestring, ghc, lattices
@@ -101301,8 +102637,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-tags-core";
-       version = "0.2.4.0";
-       sha256 = "1h2khrvykywdddnhpy6yg2adfjlzdy6i6zib8km5j2zakmhq9s9j";
+       version = "0.2.4.1";
+       sha256 = "0d1srd72ajp2csyic6wpj6i7818rimqbcg5c3lxj76cz9zpjr1g8";
        libraryHaskellDepends = [
          attoparsec base bytestring directory filepath-bytestring ghc mtl
          pipes pipes-attoparsec pipes-bytestring text transformers
@@ -101331,8 +102667,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-tags-plugin";
-       version = "0.2.4.0";
-       sha256 = "1cpfh3cvad2avissri0cs7ghamg2q3nyifyzlj3dndmzbpjrvxy7";
+       version = "0.2.4.1";
+       sha256 = "1hzv3s6pys1cqwj3hs1xww52v5yapisw9y3d5fmxzh0s6nawpxf2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -101402,13 +102738,13 @@ self: {
      }) {};
 
   "ghc-trace-events" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, text }:
+    ({ mkDerivation, base, bytestring, tasty-bench, text }:
      mkDerivation {
        pname = "ghc-trace-events";
-       version = "0.1.2.1";
-       sha256 = "0isxvysjk8z9ya8kbjkbp95wf7b4ixk0bjjy831aqyl6kbrnps84";
+       version = "0.1.2.2";
+       sha256 = "18vhv99lrfjx6bxww77qxg7gwqmvpylvlrq1bji0hd6mcxxdjn69";
        libraryHaskellDepends = [ base bytestring text ];
-       benchmarkHaskellDepends = [ base bytestring criterion ];
+       benchmarkHaskellDepends = [ base bytestring tasty-bench ];
        description = "Faster traceEvent and traceMarker, and binary object logging for eventlog";
        license = lib.licenses.bsd3;
      }) {};
@@ -101443,26 +102779,6 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-knownnat";
-       version = "0.7.4";
-       sha256 = "1i3kwq8i3p4i2jmmq8irycs0z3g69qy4i5smh14kbcz3pl35x71l";
-       libraryHaskellDepends = [
-         base ghc ghc-prim ghc-tcplugins-extra ghc-typelits-natnormalise
-         template-haskell transformers
-       ];
-       testHaskellDepends = [
-         base ghc-typelits-natnormalise tasty tasty-hunit tasty-quickcheck
-       ];
-       description = "Derive KnownNat constraints from other KnownNat constraints";
-       license = lib.licenses.bsd2;
-     }) {};
-
-  "ghc-typelits-knownnat_0_7_5" = callPackage
-    ({ mkDerivation, base, ghc, ghc-prim, ghc-tcplugins-extra
-     , ghc-typelits-natnormalise, tasty, tasty-hunit, tasty-quickcheck
-     , template-haskell, transformers
-     }:
-     mkDerivation {
-       pname = "ghc-typelits-knownnat";
        version = "0.7.5";
        sha256 = "1xraiil3nq02jdb4blkmsrdp36qhykv2xvwg3kaiyw5bgfl15gl3";
        libraryHaskellDepends = [
@@ -101474,7 +102790,6 @@ self: {
        ];
        description = "Derive KnownNat constraints from other KnownNat constraints";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ghc-typelits-natnormalise" = callPackage
@@ -101483,8 +102798,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-natnormalise";
-       version = "0.7.3";
-       sha256 = "14lynjsmiml19wma9fk2bbhfz43wzbbyvrxp8xpch2lkh5zkfkny";
+       version = "0.7.4";
+       sha256 = "0d8wwb1i6jj11cylf2n42r08hfygv9gwy89xyxp4kdclyw9mfwrp";
        libraryHaskellDepends = [
          base containers ghc ghc-tcplugins-extra integer-gmp transformers
        ];
@@ -101501,8 +102816,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-presburger";
-       version = "0.5.2.0";
-       sha256 = "0ny7paq8ykc4ycag1dlb9mlpv17dh9a6csh22abj6bls5rx4iljr";
+       version = "0.6.0.0";
+       sha256 = "08jxp7xnpnlkn8429x25sy1r8xg4b4pv5a41bgw08dl0br4941cx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -101764,132 +103079,130 @@ self: {
 
   "ghcide" = callPackage
     ({ mkDerivation, aeson, array, async, base, base16-bytestring
-     , binary, bytestring, case-insensitive, containers, cryptohash-sha1
-     , data-default, deepseq, directory, dlist, extra, filepath
+     , binary, bytestring, bytestring-encoding, case-insensitive
+     , containers, cryptohash-sha1, data-default, deepseq, dependent-map
+     , dependent-sum, Diff, directory, dlist, extra, filepath
      , fingertree, fuzzy, ghc, ghc-boot, ghc-boot-th, ghc-check
      , ghc-exactprint, ghc-paths, ghc-typelits-knownnat, gitrev, Glob
-     , haddock-library, hashable, haskell-lsp, haskell-lsp-types
-     , heapsize, hie-bios, hie-compat, hls-plugin-api, hp2pretty
-     , hslogger, implicit-hie-cradle, lens, lsp-test, mtl, network-uri
-     , opentelemetry, optparse-applicative, parallel, prettyprinter
-     , prettyprinter-ansi-terminal, process, QuickCheck
+     , haddock-library, hashable, heapsize, hie-bios, hie-compat, hiedb
+     , hls-plugin-api, hp2pretty, hslogger, implicit-hie
+     , implicit-hie-cradle, lens, lsp, lsp-test, lsp-types, mtl
+     , network-uri, opentelemetry, optparse-applicative, parallel
+     , prettyprinter, prettyprinter-ansi-terminal, process, QuickCheck
      , quickcheck-instances, record-dot-preprocessor, record-hasfield
      , regex-tdfa, retrie, rope-utf16-splay, safe, safe-exceptions
-     , shake, shake-bench, sorted-list, stm, syb, tasty
+     , shake, shake-bench, sorted-list, sqlite-simple, stm, syb, tasty
      , tasty-expected-failure, tasty-hunit, tasty-quickcheck
-     , tasty-rerun, text, time, transformers, unix, unordered-containers
-     , utf8-string, vector, yaml
+     , tasty-rerun, text, time, transformers, unix, unliftio
+     , unliftio-core, unordered-containers, utf8-string, vector, yaml
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "0.7.3.0";
-       sha256 = "0iak2bwkp0x66cl9axcxq00vmf4yn6y0h8ih4wq6mnavmplbyi3b";
+       version = "1.0.0.0";
+       sha256 = "15hz49d68229bnp8g7q1ac60ryd4zbyc1rbxsfaq5lb586ps82k8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson array async base base16-bytestring binary bytestring
-         case-insensitive containers cryptohash-sha1 data-default deepseq
-         directory dlist extra filepath fingertree fuzzy ghc ghc-boot
-         ghc-boot-th ghc-check ghc-exactprint ghc-paths Glob haddock-library
-         hashable haskell-lsp haskell-lsp-types heapsize hie-bios hie-compat
-         hls-plugin-api hslogger implicit-hie-cradle lens mtl network-uri
+         bytestring-encoding case-insensitive containers cryptohash-sha1
+         data-default deepseq dependent-map dependent-sum Diff directory
+         dlist extra filepath fingertree fuzzy ghc ghc-boot ghc-boot-th
+         ghc-check ghc-exactprint ghc-paths Glob haddock-library hashable
+         heapsize hie-bios hie-compat hiedb hls-plugin-api hslogger
+         implicit-hie-cradle lens lsp lsp-types mtl network-uri
          opentelemetry parallel prettyprinter prettyprinter-ansi-terminal
          regex-tdfa retrie rope-utf16-splay safe safe-exceptions shake
-         sorted-list stm syb text time transformers unix
-         unordered-containers utf8-string vector
+         sorted-list sqlite-simple stm syb text time transformers unix
+         unliftio unliftio-core unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [
          aeson base bytestring containers data-default directory extra
-         filepath gitrev hashable haskell-lsp haskell-lsp-types heapsize
-         hie-bios hls-plugin-api lens lsp-test optparse-applicative process
+         filepath ghc gitrev hashable heapsize hie-bios hiedb hls-plugin-api
+         lens lsp lsp-test lsp-types optparse-applicative process
          safe-exceptions shake text unordered-containers
        ];
        testHaskellDepends = [
          aeson base binary bytestring containers data-default directory
          extra filepath ghc ghc-typelits-knownnat haddock-library
-         haskell-lsp haskell-lsp-types hls-plugin-api lens lsp-test
-         network-uri optparse-applicative process QuickCheck
-         quickcheck-instances record-dot-preprocessor record-hasfield
-         rope-utf16-splay safe safe-exceptions shake tasty
-         tasty-expected-failure tasty-hunit tasty-quickcheck tasty-rerun
-         text
+         hls-plugin-api lens lsp lsp-test lsp-types network-uri
+         optparse-applicative process QuickCheck quickcheck-instances
+         record-dot-preprocessor record-hasfield rope-utf16-splay safe
+         safe-exceptions shake tasty tasty-expected-failure tasty-hunit
+         tasty-quickcheck tasty-rerun text
        ];
+       testToolDepends = [ implicit-hie ];
        benchmarkHaskellDepends = [
-         aeson base directory filepath shake shake-bench text yaml
+         aeson base directory extra filepath optparse-applicative shake
+         shake-bench text yaml
        ];
-       benchmarkToolDepends = [ hp2pretty ];
+       benchmarkToolDepends = [ hp2pretty implicit-hie ];
        description = "The core of an IDE";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
-       broken = true;
-     }) {shake-bench = null;};
+     }) {};
 
-  "ghcide_0_7_4_0" = callPackage
+  "ghcide_1_1_0_0" = callPackage
     ({ mkDerivation, aeson, array, async, base, base16-bytestring
      , binary, bytestring, bytestring-encoding, case-insensitive
-     , containers, cryptohash-sha1, data-default, deepseq, Diff
-     , directory, dlist, extra, filepath, fingertree, fuzzy, ghc
-     , ghc-boot, ghc-boot-th, ghc-check, ghc-exactprint, ghc-paths
-     , ghc-typelits-knownnat, gitrev, Glob, haddock-library, hashable
-     , haskell-lsp, haskell-lsp-types, heapsize, hie-bios, hie-compat
-     , hiedb, hls-plugin-api, hp2pretty, hslogger, implicit-hie-cradle
-     , lens, lsp-test, mtl, network-uri, opentelemetry
-     , optparse-applicative, parallel, prettyprinter
-     , prettyprinter-ansi-terminal, process, QuickCheck
+     , containers, cryptohash-sha1, data-default, deepseq, dependent-map
+     , dependent-sum, Diff, directory, dlist, extra, filepath
+     , fingertree, fuzzy, ghc, ghc-boot, ghc-boot-th, ghc-check
+     , ghc-exactprint, ghc-paths, ghc-typelits-knownnat, gitrev, Glob
+     , haddock-library, hashable, heapsize, hie-bios, hie-compat, hiedb
+     , hls-plugin-api, hp2pretty, hslogger, implicit-hie
+     , implicit-hie-cradle, lens, lsp, lsp-test, lsp-types, mtl
+     , network-uri, opentelemetry, optparse-applicative, parallel
+     , prettyprinter, prettyprinter-ansi-terminal, process, QuickCheck
      , quickcheck-instances, record-dot-preprocessor, record-hasfield
      , regex-tdfa, retrie, rope-utf16-splay, safe, safe-exceptions
      , shake, shake-bench, sorted-list, sqlite-simple, stm, syb, tasty
      , tasty-expected-failure, tasty-hunit, tasty-quickcheck
-     , tasty-rerun, text, time, transformers, unix, unordered-containers
-     , utf8-string, vector, yaml
+     , tasty-rerun, text, time, transformers, unix, unliftio
+     , unliftio-core, unordered-containers, utf8-string, vector, yaml
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "0.7.4.0";
-       sha256 = "00f2p18g6w7vf2a344fr4k0rg7spnbri76d1by7403g1daqwkar9";
+       version = "1.1.0.0";
+       sha256 = "1i2xyp2n4g4cpz50wpwmzmknrzqzxnv3b551ibmhdy41v2fh6y5l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson array async base base16-bytestring binary bytestring
          bytestring-encoding case-insensitive containers cryptohash-sha1
-         data-default deepseq Diff directory dlist extra filepath fingertree
-         fuzzy ghc ghc-boot ghc-boot-th ghc-check ghc-exactprint ghc-paths
-         Glob haddock-library hashable haskell-lsp haskell-lsp-types
+         data-default deepseq dependent-map dependent-sum Diff directory
+         dlist extra filepath fingertree fuzzy ghc ghc-boot ghc-boot-th
+         ghc-check ghc-exactprint ghc-paths Glob haddock-library hashable
          heapsize hie-bios hie-compat hiedb hls-plugin-api hslogger
-         implicit-hie-cradle lens mtl network-uri opentelemetry parallel
-         prettyprinter prettyprinter-ansi-terminal regex-tdfa retrie
-         rope-utf16-splay safe safe-exceptions shake sorted-list
-         sqlite-simple stm syb text time transformers unix
-         unordered-containers utf8-string vector
+         implicit-hie-cradle lens lsp lsp-types mtl network-uri
+         opentelemetry parallel prettyprinter prettyprinter-ansi-terminal
+         regex-tdfa retrie rope-utf16-splay safe safe-exceptions shake
+         sorted-list sqlite-simple stm syb text time transformers unix
+         unliftio unliftio-core unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [
          aeson base bytestring containers data-default directory extra
-         filepath ghc gitrev hashable haskell-lsp haskell-lsp-types heapsize
-         hie-bios hiedb hls-plugin-api lens lsp-test optparse-applicative
-         process safe-exceptions shake text unordered-containers
+         filepath ghc gitrev hashable heapsize hie-bios hiedb hls-plugin-api
+         lens lsp lsp-test lsp-types optparse-applicative process
+         safe-exceptions shake text unordered-containers
        ];
        testHaskellDepends = [
          aeson base binary bytestring containers data-default directory
          extra filepath ghc ghc-typelits-knownnat haddock-library
-         haskell-lsp haskell-lsp-types hls-plugin-api lens lsp-test
-         network-uri optparse-applicative process QuickCheck
-         quickcheck-instances record-dot-preprocessor record-hasfield
-         rope-utf16-splay safe safe-exceptions shake tasty
-         tasty-expected-failure tasty-hunit tasty-quickcheck tasty-rerun
-         text
+         hls-plugin-api lens lsp lsp-test lsp-types network-uri
+         optparse-applicative process QuickCheck quickcheck-instances
+         record-dot-preprocessor record-hasfield rope-utf16-splay safe
+         safe-exceptions shake tasty tasty-expected-failure tasty-hunit
+         tasty-quickcheck tasty-rerun text
        ];
+       testToolDepends = [ implicit-hie ];
        benchmarkHaskellDepends = [
          aeson base directory extra filepath optparse-applicative shake
          shake-bench text yaml
        ];
-       benchmarkToolDepends = [ hp2pretty ];
+       benchmarkToolDepends = [ hp2pretty implicit-hie ];
        description = "The core of an IDE";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
-       broken = true;
-     }) {shake-bench = null;};
+     }) {};
 
   "ghcjs-ajax" = callPackage
     ({ mkDerivation, aeson, base, http-types, text }:
@@ -102176,17 +103489,17 @@ self: {
 
   "ghcprofview" = callPackage
     ({ mkDerivation, aeson, base, containers, ghc-prof, gi-gtk
-     , haskell-gi-base, regex-tdfa, regex-tdfa-text, scientific, text
+     , haskell-gi-base, mtl, regex-tdfa, scientific, text
      }:
      mkDerivation {
        pname = "ghcprofview";
-       version = "0.1.0.0";
-       sha256 = "103186dik439sdzz1w6dr98s1sfghjxdkp51mh18wrcwdbdb9r3a";
+       version = "0.1.0.1";
+       sha256 = "0lk5ky0vrymzhdzfrdvq25kpphg69f1m6524jhr57dnss5syz1iv";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         aeson base containers ghc-prof gi-gtk haskell-gi-base regex-tdfa
-         regex-tdfa-text scientific text
+         aeson base containers ghc-prof gi-gtk haskell-gi-base mtl
+         regex-tdfa scientific text
        ];
        description = "GHC .prof files viewer";
        license = lib.licenses.bsd3;
@@ -102260,7 +103573,27 @@ self: {
        ];
        libraryPkgconfigDepends = [ atk ];
        description = "Atk bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) atk;};
+
+  "gi-atk_2_0_23" = callPackage
+    ({ mkDerivation, atk, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-atk";
+       version = "2.0.23";
+       sha256 = "05zwlcqx334is27h1v9x89a05srb6zp7mx0viccmij1cqhyfvsmf";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ atk ];
+       description = "Atk bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) atk;};
 
   "gi-cairo" = callPackage
@@ -102283,7 +103616,31 @@ self: {
          setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
        '';
        description = "Cairo bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) cairo;};
+
+  "gi-cairo_1_0_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-cairo";
+       version = "1.0.25";
+       sha256 = "0ybf8y8xbjfcaw67l22dfkx0528j5f1if3jm808ccssgdwyy3vc4";
+       setupHaskellDepends = [ base Cabal haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ cairo ];
+       preCompileBuildDriver = ''
+         PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig"
+         setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
+       '';
+       description = "Cairo bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) cairo;};
 
   "gi-cairo-again" = callPackage
@@ -102315,7 +103672,7 @@ self: {
          base gi-cairo gi-cairo-render haskell-gi-base mtl
        ];
        description = "GI friendly Binding to the Cairo library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {};
 
   "gi-cairo-render" = callPackage
@@ -102351,7 +103708,27 @@ self: {
        ];
        libraryPkgconfigDepends = [ libdbusmenu ];
        description = "Dbusmenu bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) libdbusmenu;};
+
+  "gi-dbusmenu_0_4_9" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , libdbusmenu, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-dbusmenu";
+       version = "0.4.9";
+       sha256 = "1n2bxi7cwj32ncalqwid3igk0ssh4pc81z132255216apryszq13";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libdbusmenu ];
+       description = "Dbusmenu bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libdbusmenu;};
 
   "gi-dbusmenugtk3" = callPackage
@@ -102375,7 +103752,32 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk3 libdbusmenu-gtk3 ];
        description = "DbusmenuGtk bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
+
+  "gi-dbusmenugtk3_0_4_10" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-dbusmenu, gi-gdk, gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk
+     , gtk3, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , libdbusmenu-gtk3, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-dbusmenugtk3";
+       version = "0.4.10";
+       sha256 = "1hq7v2lii8n6nn1dhdg42z2d3in8xahkhm6xk4hmfj7abzfghz7z";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-dbusmenu gi-gdk gi-gdkpixbuf gi-glib
+         gi-gobject gi-gtk haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-dbusmenu gi-gdk gi-gdkpixbuf
+         gi-glib gi-gobject gi-gtk haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtk3 libdbusmenu-gtk3 ];
+       description = "DbusmenuGtk bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
 
   "gi-gdk" = callPackage
@@ -102399,10 +103801,10 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk3 ];
        description = "Gdk bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gdk_4_0_2" = callPackage
+  "gi-gdk_4_0_3" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk4
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -102410,8 +103812,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gdk";
-       version = "4.0.2";
-       sha256 = "0271n81jqwcl7g0li4yv6x42jkcmx4cjs2b6b60g1mz0qq8klhbn";
+       version = "4.0.3";
+       sha256 = "1bpg4x0hl9kdh1phplk1j616rjzf9gby1g23vm9xg93xfmaafr89";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdkpixbuf gi-gio gi-glib gi-gobject gi-pango
          haskell-gi
@@ -102423,7 +103825,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk4 ];
        description = "Gdk bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) gtk4;};
 
@@ -102445,7 +103847,29 @@ self: {
        ];
        libraryPkgconfigDepends = [ gdk-pixbuf ];
        description = "GdkPixbuf bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) gdk-pixbuf;};
+
+  "gi-gdkpixbuf_2_0_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gdk-pixbuf
+     , gi-gio, gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gdkpixbuf";
+       version = "2.0.25";
+       sha256 = "18iz6rmqcf5q098hzv8p8hhk6ib8k99phmmnzp64j37c3x71c27b";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gdk-pixbuf ];
+       description = "GdkPixbuf bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) gdk-pixbuf;};
 
   "gi-gdkx11" = callPackage
@@ -102467,18 +103891,18 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk3 ];
        description = "GdkX11 bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gdkx11_4_0_2" = callPackage
+  "gi-gdkx11_4_0_3" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdk, gi-gio, gi-gobject, gi-xlib, gtk4-x11, haskell-gi
      , haskell-gi-base, haskell-gi-overloading, text, transformers
      }:
      mkDerivation {
        pname = "gi-gdkx11";
-       version = "4.0.2";
-       sha256 = "1z510v5p515i2fyd5kjxcfnyf5lsd0kzgzsnnqw4km186b241fc5";
+       version = "4.0.3";
+       sha256 = "13m2dvab8hqwa7h648asjg3llvdnpwdf1rli9i44nb6n1dfk7jbv";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdk gi-gio gi-gobject gi-xlib haskell-gi
        ];
@@ -102489,7 +103913,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk4-x11 ];
        description = "GdkX11 bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
      }) {gtk4-x11 = null;};
 
@@ -102511,7 +103935,29 @@ self: {
        ];
        libraryPkgconfigDepends = [ libgit2-glib ];
        description = "libgit2-glib bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) libgit2-glib;};
+
+  "gi-ggit_1_0_10" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, libgit2-glib, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-ggit";
+       version = "1.0.10";
+       sha256 = "1rfmvml0wfw522c9gzzpjsg5ajbsbnzylc5rf2x3qqhb1x9y3bd2";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libgit2-glib ];
+       description = "libgit2-glib bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libgit2-glib;};
 
   "gi-gio" = callPackage
@@ -102530,7 +103976,27 @@ self: {
        ];
        libraryPkgconfigDepends = [ glib ];
        description = "Gio bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) glib;};
+
+  "gi-gio_2_0_28" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, glib, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gio";
+       version = "2.0.28";
+       sha256 = "0bb6ciikk9mf64azbcgnybcjidxwdpjzanarf5ganbb4bb3l5d2h";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "Gio bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) glib;};
 
   "gi-girepository" = callPackage
@@ -102549,7 +104015,27 @@ self: {
        ];
        libraryPkgconfigDepends = [ gobject-introspection ];
        description = "GIRepository (gobject-introspection) bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) gobject-introspection;};
+
+  "gi-girepository_1_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, gobject-introspection, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-girepository";
+       version = "1.0.24";
+       sha256 = "1sj68k3wih2345gkmv0jb1smka73pxnjy8jwmk2ifgl407f3hhfw";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gobject-introspection ];
+       description = "GIRepository (gobject-introspection) bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) gobject-introspection;};
 
   "gi-glib" = callPackage
@@ -102568,7 +104054,27 @@ self: {
        ];
        libraryPkgconfigDepends = [ glib ];
        description = "GLib bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) glib;};
+
+  "gi-glib_2_0_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, glib
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-glib";
+       version = "2.0.25";
+       sha256 = "0xki14pipyl45q6c0bwllkadbnqjm08ik24aw5gcmrvnjzag5gd7";
+       setupHaskellDepends = [ base Cabal haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "GLib bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) glib;};
 
   "gi-gobject" = callPackage
@@ -102587,7 +104093,27 @@ self: {
        ];
        libraryPkgconfigDepends = [ glib ];
        description = "GObject bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) glib;};
+
+  "gi-gobject_2_0_26" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib, glib
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-gobject";
+       version = "2.0.26";
+       sha256 = "1kddnhdpnm21zma1zr9hpb2krrm5ksri85nzh2s9fc9c2c90xkpz";
+       setupHaskellDepends = [ base Cabal gi-glib haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "GObject bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) glib;};
 
   "gi-graphene" = callPackage
@@ -102606,33 +104132,54 @@ self: {
        ];
        libraryPkgconfigDepends = [ graphene-gobject ];
        description = "Graphene bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {graphene-gobject = null;};
+
+  "gi-graphene_1_0_3" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, graphene-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-graphene";
+       version = "1.0.3";
+       sha256 = "06sh52338kqqbj6251xdz4yn0601nmxzl4z95w6a70dxs66js03c";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ graphene-gobject ];
+       description = "Graphene bindings";
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {graphene-gobject = null;};
 
   "gi-gsk" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
-     , gi-gdk, gi-glib, gi-gobject, gi-graphene, gi-pango, gtk4
-     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , gi-gdk, gi-gdkpixbuf, gi-glib, gi-gobject, gi-graphene, gi-pango
+     , gtk4, haskell-gi, haskell-gi-base, haskell-gi-overloading, text
      , transformers
      }:
      mkDerivation {
        pname = "gi-gsk";
-       version = "4.0.2";
-       sha256 = "1jc5jxni87zg475rgjrxv85rpyr20bwxdyfjw060dx4gvnyhxnfs";
+       version = "4.0.3";
+       sha256 = "16qbmjshl8nz5xkkzas7c4a0w996mbzqkjn1w8crc1fz1v27ckg2";
        setupHaskellDepends = [
-         base Cabal gi-cairo gi-gdk gi-glib gi-gobject gi-graphene gi-pango
-         haskell-gi
+         base Cabal gi-cairo gi-gdk gi-gdkpixbuf gi-glib gi-gobject
+         gi-graphene gi-pango haskell-gi
        ];
        libraryHaskellDepends = [
-         base bytestring containers gi-cairo gi-gdk gi-glib gi-gobject
-         gi-graphene gi-pango haskell-gi haskell-gi-base
+         base bytestring containers gi-cairo gi-gdk gi-gdkpixbuf gi-glib
+         gi-gobject gi-graphene gi-pango haskell-gi haskell-gi-base
          haskell-gi-overloading text transformers
        ];
        libraryPkgconfigDepends = [ gtk4 ];
        description = "Gsk bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gtk4;};
@@ -102653,7 +104200,27 @@ self: {
        ];
        libraryPkgconfigDepends = [ gstreamer ];
        description = "GStreamer bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs.gst_all_1) gstreamer;};
+
+  "gi-gst_1_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, gstreamer, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gst";
+       version = "1.0.24";
+       sha256 = "01xbjxwipg1s93fkswag8gp8s696z1l1gaazl2w4wnpyykx4hh8s";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gstreamer ];
+       description = "GStreamer bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs.gst_all_1) gstreamer;};
 
   "gi-gstaudio" = callPackage
@@ -102663,8 +104230,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstaudio";
-       version = "1.0.22";
-       sha256 = "17x0nmzawr9mqfjjbgk9s35102y4nsvxym9hwgwhh88ijnbhshhs";
+       version = "1.0.23";
+       sha256 = "1gzs1niw45qjxiadj4xwg4fr6d71rb5k18y4plm4jj6iyvd67s72";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
        ];
@@ -102674,7 +104241,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gst-plugins-base ];
        description = "GStreamerAudio bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
@@ -102697,7 +104264,29 @@ self: {
        ];
        libraryPkgconfigDepends = [ gst-plugins-base ];
        description = "GStreamerBase bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
+
+  "gi-gstbase_1_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, gi-gst, gst-plugins-base, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gstbase";
+       version = "1.0.24";
+       sha256 = "0b8k2xk3ha6b79kkw72kgdmj8vjyh40r26saavin54gznlgd5xh8";
+       setupHaskellDepends = [
+         base Cabal gi-glib gi-gobject gi-gst haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject gi-gst haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gst-plugins-base ];
+       description = "GStreamerBase bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
 
   "gi-gstpbutils" = callPackage
@@ -102708,8 +104297,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstpbutils";
-       version = "1.0.22";
-       sha256 = "1kq86zc9rcla6xhgi0vf32y6bs3adi5xgkpknld6zl4dq7s70plk";
+       version = "1.0.23";
+       sha256 = "1j7ml51gnpkcir75wybx93qgs4rll3i5vlhzbqk26xhqkbfzqsf7";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstaudio gi-gsttag
          gi-gstvideo haskell-gi
@@ -102721,7 +104310,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gstreamer-pbutils ];
        description = "GStreamer Plugins Base Utils bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {gstreamer-pbutils = null;};
@@ -102733,8 +104322,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gsttag";
-       version = "1.0.22";
-       sha256 = "0jpqj5kggg2ahvbrnmacjk6n9zg31v0klybkygz4i6i4d6absvf6";
+       version = "1.0.23";
+       sha256 = "17nwiin58kgl3psbwf2ymy2pz87crlasllg1wsabmcbv1dj38sgi";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
        ];
@@ -102744,7 +104333,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gstreamer-tag ];
        description = "GStreamer Tag bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {gstreamer-tag = null;};
@@ -102767,7 +104356,29 @@ self: {
        ];
        libraryPkgconfigDepends = [ gst-plugins-base ];
        description = "GStreamerVideo bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
+
+  "gi-gstvideo_1_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, gi-gst, gi-gstbase, gst-plugins-base, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gstvideo";
+       version = "1.0.24";
+       sha256 = "0qjfjk5jnpy1f4grn8i68kwdd1yvnq1yc55rk6yxhlj7wks1d35h";
+       setupHaskellDepends = [
+         base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject gi-gst gi-gstbase
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gst-plugins-base ];
+       description = "GStreamerVideo bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
 
   "gi-gtk" = callPackage
@@ -102791,10 +104402,10 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk3 ];
        description = "Gtk bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gtk_4_0_3" = callPackage
+  "gi-gtk_4_0_4" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
      , gi-graphene, gi-gsk, gi-pango, gtk4, haskell-gi, haskell-gi-base
@@ -102802,8 +104413,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtk";
-       version = "4.0.3";
-       sha256 = "1zfqnjnzlrry7cbrzfamrh5465h06y6px0b1xh1yz7iaacg0739z";
+       version = "4.0.4";
+       sha256 = "18c27hnfyyn3ajx73zy1laflv95xjafdm249ra6z9nynx9gqws6c";
        setupHaskellDepends = [
          base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
          gi-gobject gi-graphene gi-gsk gi-pango haskell-gi
@@ -102815,7 +104426,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk4 ];
        description = "Gtk bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) gtk4;};
 
@@ -102827,8 +104438,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtk-declarative";
-       version = "0.6.3";
-       sha256 = "1cxh1r7ylj6d13nyjxdkvgp7h6fqzbi4zndl95lykki129jhfwkk";
+       version = "0.7.0";
+       sha256 = "0j6yk2qr88yrxs8vdwcqv6jzisjl0x1j932ssim8ay98z4r6y8gg";
        libraryHaskellDepends = [
          base containers data-default-class gi-glib gi-gobject gi-gtk
          haskell-gi haskell-gi-base haskell-gi-overloading mtl text
@@ -102841,28 +104452,27 @@ self: {
        ];
        description = "Declarative GTK+ programming in Haskell";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gi-gtk-declarative-app-simple" = callPackage
     ({ mkDerivation, async, base, gi-gdk, gi-glib, gi-gobject, gi-gtk
      , gi-gtk-declarative, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, pipes, pipes-concurrency, text
+     , haskell-gi-overloading, hspec, pipes, pipes-concurrency, text
      }:
      mkDerivation {
        pname = "gi-gtk-declarative-app-simple";
-       version = "0.6.3";
-       sha256 = "1dyz6sfj352lacs3bk4lxbv9dmlpqp27kzl9vz8bq4321d5nfav9";
+       version = "0.7.0";
+       sha256 = "0ygp70yfj530czfw6an3yp9y883q4lwky45rxdslyf1ifk8dn6rf";
        libraryHaskellDepends = [
          async base gi-gdk gi-glib gi-gobject gi-gtk gi-gtk-declarative
          haskell-gi haskell-gi-base haskell-gi-overloading pipes
          pipes-concurrency text
        ];
+       testHaskellDepends = [
+         async base gi-gtk gi-gtk-declarative hspec pipes
+       ];
        description = "Declarative GTK+ programming in Haskell in the style of Pux";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gi-gtk-hs" = callPackage
@@ -102879,7 +104489,25 @@ self: {
          gi-gtk haskell-gi-base mtl text transformers
        ];
        description = "A wrapper for gi-gtk, adding a few more idiomatic API parts on top";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {};
+
+  "gi-gtk-hs_0_3_10" = callPackage
+    ({ mkDerivation, base, base-compat, containers, gi-gdk
+     , gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk, haskell-gi-base, mtl
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gtk-hs";
+       version = "0.3.10";
+       sha256 = "00vhnkblvvq7qjs65rmfy0q2rs388954p6yd1lga2y79lc2xr6fw";
+       libraryHaskellDepends = [
+         base base-compat containers gi-gdk gi-gdkpixbuf gi-glib gi-gobject
+         gi-gtk haskell-gi-base mtl text transformers
+       ];
+       description = "A wrapper for gi-gtk, adding a few more idiomatic API parts on top";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "gi-gtkosxapplication" = callPackage
@@ -102900,7 +104528,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk-mac-integration-gtk3 ];
        description = "GtkosxApplication bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {gtk-mac-integration-gtk3 = null;};
@@ -102926,7 +104554,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtksheet ];
        description = "GtkSheet bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {gtksheet = null;};
@@ -102952,7 +104580,32 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtksourceview3 ];
        description = "GtkSource bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) gtksourceview3;};
+
+  "gi-gtksource_3_0_24" = 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.24";
+       sha256 = "0bnwqcn7y5a3z3lkl9l886m9albvc602nb7qsh2jkiilf0ng64dp";
+       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;
      }) {inherit (pkgs) gtksourceview3;};
 
   "gi-handy" = callPackage
@@ -102963,8 +104616,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-handy";
-       version = "0.0.7";
-       sha256 = "0vdmby4wzxzhy9cbpi6i29r2ywq75ndcjpra3nvkavp91ba1y1c1";
+       version = "0.0.8";
+       sha256 = "1k7czb0gszjif2ynz9p7r765ims5m3q5kb9npf97psw88zq6l965";
        setupHaskellDepends = [
          base Cabal gi-atk gi-gdk gi-gio gi-glib gi-gobject gi-gtk gi-pango
          haskell-gi
@@ -102976,7 +104629,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ libhandy ];
        description = "libhandy bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) libhandy;};
@@ -102997,7 +104650,27 @@ self: {
        ];
        libraryPkgconfigDepends = [ harfbuzz harfbuzz-gobject ];
        description = "HarfBuzz bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) harfbuzz; harfbuzz-gobject = null;};
+
+  "gi-harfbuzz_0_0_4" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, harfbuzz, harfbuzz-gobject, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-harfbuzz";
+       version = "0.0.4";
+       sha256 = "0h3dgz914n55x7rhwayxscfkhhhj7qgw5a7fh0j2fn18c201klwm";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ harfbuzz harfbuzz-gobject ];
+       description = "HarfBuzz bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) harfbuzz; harfbuzz-gobject = null;};
 
   "gi-ibus" = callPackage
@@ -103018,7 +104691,29 @@ self: {
        ];
        libraryPkgconfigDepends = [ ibus ];
        description = "IBus bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) ibus;};
+
+  "gi-ibus_1_5_3" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, ibus, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-ibus";
+       version = "1.5.3";
+       sha256 = "1gbpbxcdl9f5di2vpnkx3zsy54dkfhz81h3yxss91r65lp9fwrm8";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ ibus ];
+       description = "IBus bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) ibus;};
 
   "gi-javascriptcore" = callPackage
@@ -103037,7 +104732,27 @@ self: {
        ];
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "JavaScriptCore bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) webkitgtk;};
+
+  "gi-javascriptcore_4_0_23" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , text, transformers, webkitgtk
+     }:
+     mkDerivation {
+       pname = "gi-javascriptcore";
+       version = "4.0.23";
+       sha256 = "0r6jmhiq9jij72yz1z6sfjh3dk7g77q07kyvz3ayndqsbn3xrwi7";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ webkitgtk ];
+       description = "JavaScriptCore bindings";
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) webkitgtk;};
 
@@ -103059,7 +104774,29 @@ self: {
        ];
        libraryPkgconfigDepends = [ libnotify ];
        description = "Libnotify bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) libnotify;};
+
+  "gi-notify_0_7_23" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gdkpixbuf
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, libnotify, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-notify";
+       version = "0.7.23";
+       sha256 = "00p10lw9v9q8mh6630ijpz8smnpz5hiiw8kxk1fv8497akssxjsh";
+       setupHaskellDepends = [
+         base Cabal gi-gdkpixbuf gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gdkpixbuf gi-glib gi-gobject
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libnotify ];
+       description = "Libnotify bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libnotify;};
 
   "gi-ostree" = callPackage
@@ -103080,8 +104817,35 @@ self: {
        ];
        libraryPkgconfigDepends = [ ostree ];
        description = "OSTree bindings";
-       license = lib.licenses.lgpl21;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+     }) {inherit (pkgs) ostree;};
+
+  "gi-ostree_1_0_14" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, ostree, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-ostree";
+       version = "1.0.14";
+       sha256 = "08jglqkq0h497iv83rc0br83qrf000gm202hp0j1pnhwvdgp7d0f";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ ostree ];
+       description = "OSTree bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) ostree;};
 
   "gi-pango" = callPackage
@@ -103106,7 +104870,33 @@ self: {
          setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
        '';
        description = "Pango bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
+
+  "gi-pango_1_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , gi-glib, gi-gobject, gi-harfbuzz, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, pango, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-pango";
+       version = "1.0.24";
+       sha256 = "0qvz1r3xc4rz2fvaw1mimwn39xim55zn6zhbkavw2n5jm6xnydkh";
+       setupHaskellDepends = [
+         base Cabal gi-glib gi-gobject gi-harfbuzz haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject gi-harfbuzz
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ cairo pango ];
+       preCompileBuildDriver = ''
+         PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig"
+         setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
+       '';
+       description = "Pango bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
 
   "gi-pangocairo" = callPackage
@@ -103132,7 +104922,34 @@ self: {
          setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
        '';
        description = "PangoCairo bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
+
+  "gi-pangocairo_1_0_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , gi-cairo, gi-glib, gi-gobject, gi-pango, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, pango, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-pangocairo";
+       version = "1.0.25";
+       sha256 = "1w7sdwxfsymysazv9b045li97mjj2xspgrfyhm74x7sd7b4jl4aa";
+       setupHaskellDepends = [
+         base Cabal gi-cairo gi-glib gi-gobject gi-pango haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-cairo gi-glib gi-gobject gi-pango
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ cairo pango ];
+       preCompileBuildDriver = ''
+         PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig"
+         setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
+       '';
+       description = "PangoCairo bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
 
   "gi-poppler" = callPackage
@@ -103142,8 +104959,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-poppler";
-       version = "0.18.24";
-       sha256 = "1n69xzw5w3y27x0vz4i4hi7ypr714ilj9i985ym713kvdfdyz12g";
+       version = "0.18.25";
+       sha256 = "0hl7wljszc1jpjcpl0ax6qidjynr2dh063m1j9xn718f1yqgldix";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -103153,7 +104970,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ poppler_gi ];
        description = "Poppler bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) poppler_gi;};
@@ -103176,7 +104993,29 @@ self: {
        ];
        libraryPkgconfigDepends = [ libsecret ];
        description = "Libsecret bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) libsecret;};
+
+  "gi-secret_0_0_13" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, libsecret, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-secret";
+       version = "0.0.13";
+       sha256 = "0n37sdm4q6q807j4wgwwsl28knc71d8jiyx4prxbl2d69gg6i2ka";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libsecret ];
+       description = "Libsecret bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libsecret;};
 
   "gi-soup" = callPackage
@@ -103197,7 +105036,29 @@ self: {
        ];
        libraryPkgconfigDepends = [ libsoup ];
        description = "Libsoup bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) libsoup;};
+
+  "gi-soup_2_4_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, libsoup, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-soup";
+       version = "2.4.24";
+       sha256 = "148ksnsfadbx3as23c79nmmsrkzfcvncbvvqqmhygwkm9mxsv9sr";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libsoup ];
+       description = "Libsoup bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libsoup;};
 
   "gi-vte" = callPackage
@@ -103221,7 +105082,32 @@ self: {
        ];
        libraryPkgconfigDepends = [ vte_291 ];
        description = "Vte bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {vte_291 = pkgs.vte;};
+
+  "gi-vte_2_91_28" = 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
+     }:
+     mkDerivation {
+       pname = "gi-vte";
+       version = "2.91.28";
+       sha256 = "06bgl5r1r4ri22c43an4h538p0b3icrb8nq1w7fw8cmxqj7y5m33";
+       setupHaskellDepends = [
+         base Cabal gi-atk 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
+       ];
+       libraryPkgconfigDepends = [ vte_291 ];
+       description = "Vte bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {vte_291 = pkgs.vte;};
 
   "gi-webkit" = callPackage
@@ -103243,7 +105129,7 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk24x-gtk3 ];
        doHaddock = false;
        description = "WebKit bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) webkitgtk24x-gtk3;};
 
@@ -103268,7 +105154,32 @@ self: {
        ];
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "WebKit2 bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) webkitgtk;};
+
+  "gi-webkit2_4_0_27" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-cairo, gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk
+     , gi-javascriptcore, gi-soup, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers, webkitgtk
+     }:
+     mkDerivation {
+       pname = "gi-webkit2";
+       version = "4.0.27";
+       sha256 = "05ka1i4afd9j5kyyd1z9xxv9vmbmq2wziir3pln9a692zga0f2h1";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-cairo gi-gdk gi-gio gi-glib gi-gobject gi-gtk
+         gi-javascriptcore gi-soup haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-cairo gi-gdk gi-gio gi-glib
+         gi-gobject gi-gtk gi-javascriptcore gi-soup haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ webkitgtk ];
+       description = "WebKit2 bindings";
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) webkitgtk;};
 
@@ -103280,8 +105191,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-webkit2webextension";
-       version = "4.0.25";
-       sha256 = "0vdzhnaj6d03cgxz3i886cahkfhl8xgcrm37wdcxqydkxx2ybh6h";
+       version = "4.0.26";
+       sha256 = "0fa2x9dzcaiv5f5kzf4ql27fr8zgq5fky3gzhj8py0m2pnahpa6v";
        setupHaskellDepends = [
          base Cabal gi-gio gi-gobject gi-gtk gi-javascriptcore gi-soup
          haskell-gi
@@ -103293,7 +105204,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "WebKit2-WebExtension bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) webkitgtk;};
 
@@ -103305,8 +105216,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-wnck";
-       version = "3.0.9";
-       sha256 = "1cy1nzld3220rg0f1gzr5cw756s5vm9las8p8xyqhjmk3awy0cbp";
+       version = "3.0.10";
+       sha256 = "1q3fncvd7ic0ri2v883xlqlfxm5hiwj0sn750505q73lqllx5wqw";
        setupHaskellDepends = [
          base Cabal gi-atk gi-gdk gi-gdkpixbuf gi-gobject gi-gtk haskell-gi
        ];
@@ -103317,7 +105228,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ libwnck ];
        description = "Wnck bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) libwnck;};
@@ -103338,7 +105249,27 @@ self: {
        ];
        libraryPkgconfigDepends = [ xlibsWrapper ];
        description = "xlib bindings";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) xlibsWrapper;};
+
+  "gi-xlib_2_0_10" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     , xlibsWrapper
+     }:
+     mkDerivation {
+       pname = "gi-xlib";
+       version = "2.0.10";
+       sha256 = "1h6kpg0mm16b5rz7ixi5qj8y0is96cwkkpgwcl8m8ycjscsgfj88";
+       setupHaskellDepends = [ base Cabal haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ xlibsWrapper ];
+       description = "xlib bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) xlibsWrapper;};
 
   "giak" = callPackage
@@ -103466,7 +105397,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ system-glib ];
        description = "Binding to GIO";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {system-glib = pkgs.glib;};
 
   "gipeda" = callPackage
@@ -103534,7 +105465,7 @@ self: {
          aeson base bytestring conduit http-conduit text
        ];
        description = "A reliable command-line client for gist.github.com";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -103609,8 +105540,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-annex";
-       version = "8.20210127";
-       sha256 = "1hsmaw70lfza1g5j6b9zbwqkkr374m18p7qb4nl952pj42a46vv3";
+       version = "8.20210330";
+       sha256 = "07dhxlmnj48drgndcplafc7xhby0w3rks68fz9wsppxan929240p";
        configureFlags = [
          "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
          "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
@@ -103653,7 +105584,7 @@ self: {
        checkPhase = ''PATH+=":$PWD" git-annex test'';
        enableSharedExecutables = false;
        description = "manage files with git, without checking their contents into git";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        maintainers = with lib.maintainers; [ peti ];
      }) {inherit (pkgs) bup; inherit (pkgs) curl; inherit (pkgs) git; 
          inherit (pkgs) gnupg; inherit (pkgs) lsof; inherit (pkgs) openssh; 
@@ -103761,7 +105692,7 @@ self: {
          test-framework-quickcheck2 time utf8-string
        ];
        description = "Bindings to the date parsing from Git";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -103877,7 +105808,7 @@ self: {
          http-types network-uri text
        ];
        description = "git-lfs protocol";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "git-mediate" = callPackage
@@ -103895,7 +105826,7 @@ self: {
          optparse-applicative process unix-compat
        ];
        description = "Tool to help resolving git conflicts";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "git-monitor" = callPackage
@@ -103999,7 +105930,7 @@ self: {
          split text time transformers unix unix-compat utf8-string
        ];
        description = "repairs a damaged git repository";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -104186,7 +106117,7 @@ self: {
        ];
        executableToolDepends = [ git ];
        description = "backs up everything github knows about a repository, to the repository";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) git;};
@@ -104241,8 +106172,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-release";
-       version = "1.3.6";
-       sha256 = "07cxai2h6alyka0bsfch7vfjsvp3s9d48jw4n6z74kmxq3zdrgxh";
+       version = "1.3.7";
+       sha256 = "14dz9ap43m2ws6l4wfrn6wn3g5p2k0fgv639q7nyp4zdd4kn9czh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -104293,7 +106224,7 @@ self: {
          http-client-tls monad-parallel tabular tagsoup text time vector
        ];
        description = "Various Github helper utilities";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -104469,6 +106400,7 @@ self: {
        ];
        description = "Wiki using happstack, git or darcs, and pandoc";
        license = "GPL";
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "gitlab-api" = callPackage
@@ -104516,10 +106448,8 @@ self: {
      }:
      mkDerivation {
        pname = "gitlib";
-       version = "3.1.2";
-       sha256 = "1r973cpkp4h8dfjrkqgyy31a3x4bbqi7zhpck09ix2a9i597b345";
-       revision = "1";
-       editedCabalFile = "09v2acn2cxagyfnn7914faz9nzzi2j48w8v55lj1fxwgspc44w8g";
+       version = "3.1.3";
+       sha256 = "02gk4z3q1hrr6wl7c2989ib2nqf8wcsx9msq6nbsfhxjsmc7qds7";
        libraryHaskellDepends = [
          base base16-bytestring bytestring conduit conduit-combinators
          containers directory exceptions filepath hashable mtl resourcet
@@ -104866,7 +106796,7 @@ self: {
        libraryHaskellDepends = [ base glib gtk ];
        libraryPkgconfigDepends = [ libglade ];
        description = "Binding to the glade library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs.gnome2) libglade;};
@@ -104921,7 +106851,7 @@ self: {
          base containers GLFW-b lens mtl OpenGL
        ];
        description = "An OpenGL micro framework";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -105098,7 +107028,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ glib ];
        description = "Binding to the GLIB library for Gtk2Hs";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) glib;};
 
   "glicko" = callPackage
@@ -105114,7 +107044,7 @@ self: {
        ];
        testHaskellDepends = [ base data-default hspec ];
        description = "Glicko-2 implementation in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "glider-nlp" = callPackage
@@ -105150,15 +107080,15 @@ self: {
      , bytestring, Cabal, config-schema, config-value, containers
      , directory, filepath, free, gitrev, hashable, hookup, HsOpenSSL
      , HUnit, irc-core, kan-extensions, lens, network, process, psqueues
-     , random, regex-tdfa, semigroupoids, split, stm, template-haskell
-     , text, time, transformers, unix, unordered-containers, vector, vty
+     , random, regex-tdfa, split, stm, template-haskell, text, time
+     , transformers, unix, unordered-containers, vector, vty
      }:
      mkDerivation {
        pname = "glirc";
-       version = "2.37";
-       sha256 = "1222dz42lyk44xgs10wwjpd2qn4l0ak3v98vj103xh535hki9ibn";
+       version = "2.38";
+       sha256 = "1azykkb9rc4q97v9xiqfjv0iys0wswa3nsy10smdkpp7yvv4mca7";
        revision = "1";
-       editedCabalFile = "19y9hhn24w6lqdwv1skijrvj5plqs3xqcz3h8wv1ax8g8ak07xsx";
+       editedCabalFile = "04f35w57jq6gpi6d3d83c9bswwl724rbd0dbl835ilhl18kpfscj";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal filepath ];
@@ -105166,8 +107096,8 @@ self: {
          async attoparsec base base64-bytestring bytestring config-schema
          config-value containers directory filepath free gitrev hashable
          hookup HsOpenSSL irc-core kan-extensions lens network process
-         psqueues random regex-tdfa semigroupoids split stm template-haskell
-         text time transformers unix unordered-containers vector vty
+         psqueues random regex-tdfa split stm template-haskell text time
+         transformers unix unordered-containers vector vty
        ];
        executableHaskellDepends = [ base lens text vty ];
        testHaskellDepends = [ base HUnit ];
@@ -105353,7 +107283,7 @@ self: {
        editedCabalFile = "0nia67zywmxyvcnlk0a906dijh9h7m6w48330n9gs2mjkhkyqb13";
        libraryHaskellDepends = [ base gloss reactive-banana ];
        description = "An Interface for gloss in terms of a reactive-banana Behavior";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -105501,7 +107431,7 @@ self: {
        sha256 = "0ygjqzb1pn092j0d0gcwhxdv940rdlvpaj1gxa347mdgvp4jb9za";
        libraryHaskellDepends = [ base gloss sodium ];
        description = "A Sodium interface to the Gloss drawing package";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -105553,8 +107483,8 @@ self: {
      }:
      mkDerivation {
        pname = "gltf-codec";
-       version = "0.1.0.2";
-       sha256 = "07zf9lzin22clixmvgvam6h995jfq2wzqz4498qv60jlcj88zzmh";
+       version = "0.1.0.3";
+       sha256 = "0kgkzskn2k9zgihrb1v9xy5yfjlggmpj15g1bdgx7faipksaa3fb";
        libraryHaskellDepends = [
          aeson base base64-bytestring binary bytestring scientific text
          unordered-containers vector
@@ -105734,7 +107664,7 @@ self: {
          priority-queue qd reflection Vec
        ];
        description = "Mandelbrot Set explorer using GTK";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -105781,7 +107711,7 @@ self: {
        libraryPkgconfigDepends = [ libgnome-keyring ];
        libraryToolDepends = [ c2hs ];
        description = "Bindings for libgnome-keyring";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {inherit (pkgs.gnome3) gnome-keyring; 
          inherit (pkgs) libgnome-keyring;};
 
@@ -105852,7 +107782,7 @@ self: {
        testPkgconfigDepends = [ libidn ];
        testToolDepends = [ c2hs ];
        description = "Bindings for GNU IDN";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) libidn;};
@@ -105889,7 +107819,7 @@ self: {
        librarySystemDepends = [ gnutls ];
        libraryPkgconfigDepends = [ gnutls ];
        description = "Bindings for GNU libgnutls";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {inherit (pkgs) gnutls;};
 
   "goa" = callPackage
@@ -106022,7 +107952,7 @@ self: {
        ];
        testHaskellDepends = [ base containers HUnit mtl parsec ];
        description = "A monadic take on a 2,500-year-old board game - library";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -106044,7 +107974,7 @@ self: {
        executableHaskellDepends = [ base gtk ];
        testHaskellDepends = [ base HUnit ];
        description = "A monadic take on a 2,500-year-old board game - GTK+ UI";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -108375,6 +110305,8 @@ self: {
        pname = "goldplate";
        version = "0.1.3";
        sha256 = "109qhyq0n4w1jdz7y2hd8cjf44pikavv6mfnmf65vyfjangjq610";
+       revision = "1";
+       editedCabalFile = "1chrg7mfs4w4hbc0i1pdsj1350c4h3dhcv7xswn2ygq78337xxqk";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -108594,8 +110526,8 @@ self: {
      }:
      mkDerivation {
        pname = "google-oauth2-jwt";
-       version = "0.3.2";
-       sha256 = "1njb9j6pb656drchi8qc94pniwph2bplnb667ga719yxmzm4256s";
+       version = "0.3.3";
+       sha256 = "13iy695qpb9yyr1wi3fslj0xd90izgj4wmvs04k5mhf6k53pk9dk";
        libraryHaskellDepends = [
          base base64-bytestring bytestring HsOpenSSL RSA text unix-time
        ];
@@ -108738,7 +110670,8 @@ self: {
          mime-types network optparse-applicative text wai warp
        ];
        description = "proxy gopher over http";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "gopherbot" = callPackage
@@ -109011,8 +110944,8 @@ self: {
      }:
      mkDerivation {
        pname = "gothic";
-       version = "0.1.5";
-       sha256 = "1f8n15cxh4c5m3pylssfksiw3qary8jkl7wabq4gl5zqw2r9ki62";
+       version = "0.1.6";
+       sha256 = "0p1hc4gpgn0djvyksc9nyi4r4lqapk6x5vfv2x514szw8z11h44s";
        libraryHaskellDepends = [
          aeson base binary bytestring connection exceptions hashable
          http-client http-client-tls http-conduit http-types lens lens-aeson
@@ -109300,22 +111233,22 @@ self: {
      }) {};
 
   "grammatical-parsers" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, Cabal, cabal-doctest
-     , checkers, containers, criterion, deepseq, doctest, input-parsers
+    ({ mkDerivation, attoparsec, base, Cabal, cabal-doctest, checkers
+     , containers, criterion, deepseq, doctest, input-parsers
      , markdown-unlit, monoid-subclasses, parsers, QuickCheck
      , rank2classes, size-based, tasty, tasty-quickcheck, testing-feat
-     , text, transformers
+     , text, transformers, witherable-class
      }:
      mkDerivation {
        pname = "grammatical-parsers";
-       version = "0.5";
-       sha256 = "1kf3wwbk1skp6cm78h6fs2494597sdz82gaq5zx3cwfzgn4swmgx";
+       version = "0.5.1";
+       sha256 = "1y5w49bcfbadchy580q5dnkgl0k5daqykc2jhz8yai94pr43ishg";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         attoparsec base bytestring containers input-parsers
-         monoid-subclasses parsers rank2classes transformers
+         attoparsec base containers input-parsers monoid-subclasses parsers
+         rank2classes transformers witherable-class
        ];
        executableHaskellDepends = [
          base containers monoid-subclasses parsers rank2classes
@@ -109495,7 +111428,7 @@ self: {
        sha256 = "0dzkv13w06hkxg2vkbblpskvsq02c2ay06rw2j4vyjpw13hms5bv";
        libraryHaskellDepends = [ base containers fgl ];
        description = "An implementation of algorithms for matchings in graphs";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -109972,6 +111905,40 @@ self: {
        pname = "graphql-client";
        version = "1.1.0";
        sha256 = "0yk6nfyyynydrgwc1cdy5235121gw5q4iaapbvixpckz2diidxx7";
+       revision = "2";
+       editedCabalFile = "120c5cd9gj407lf3lcvfq0gqlvdpf3ciws9207nh0qqqdrpws9mj";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-schemas base http-client http-client-tls http-types mtl
+         template-haskell text transformers unliftio-core
+       ];
+       executableHaskellDepends = [
+         aeson aeson-schemas base bytestring file-embed http-client
+         http-client-tls http-types mtl optparse-applicative path path-io
+         template-haskell text transformers typed-process unliftio-core
+       ];
+       testHaskellDepends = [
+         aeson aeson-schemas base http-client http-client-tls http-types mtl
+         tasty tasty-hunit template-haskell text transformers unliftio-core
+       ];
+       description = "A client for Haskell programs to query a GraphQL API";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "graphql-client_1_1_1" = 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
+     , template-haskell, text, transformers, typed-process
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "graphql-client";
+       version = "1.1.1";
+       sha256 = "1d00ib9c8ps8vv1qgrkjfzrjbgbsdnp1jiz7779bwm76j88vggb4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -110411,27 +112378,6 @@ self: {
      }:
      mkDerivation {
        pname = "greskell";
-       version = "1.2.0.0";
-       sha256 = "0rljpnq690jxqlkbp7ksx5i91r2hrmqvppp5s6sgp373sw9kzkwb";
-       libraryHaskellDepends = [
-         aeson base exceptions greskell-core hashable semigroups text
-         transformers unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base bytestring doctest doctest-discover greskell-core hint
-         hspec text unordered-containers
-       ];
-       description = "Haskell binding for Gremlin graph query language";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "greskell_1_2_0_1" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, doctest, doctest-discover
-     , exceptions, greskell-core, hashable, hint, hspec, semigroups
-     , text, transformers, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "greskell";
        version = "1.2.0.1";
        sha256 = "13hshwnhl0wdnnkqamgdgw2awsh1pynwfg35c34m5fcphbmxwmms";
        libraryHaskellDepends = [
@@ -110444,32 +112390,10 @@ self: {
        ];
        description = "Haskell binding for Gremlin graph query language";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "greskell-core" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, doctest
-     , doctest-discover, hashable, hspec, QuickCheck, scientific
-     , semigroups, text, unordered-containers, uuid, vector
-     }:
-     mkDerivation {
-       pname = "greskell-core";
-       version = "0.1.3.5";
-       sha256 = "08jpgnsnmh9zbm1pw768ik28vhl3m4jz75l8cbxb3whfgwk5vyy4";
-       libraryHaskellDepends = [
-         aeson base containers hashable scientific semigroups text
-         unordered-containers uuid vector
-       ];
-       testHaskellDepends = [
-         aeson base bytestring doctest doctest-discover hspec QuickCheck
-         text unordered-containers vector
-       ];
-       description = "Haskell binding for Gremlin graph query language - core data types and tools";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "greskell-core_0_1_3_6" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, doctest
      , doctest-discover, hashable, hspec, hspec-discover, QuickCheck
      , scientific, semigroups, text, unordered-containers, uuid, vector
      }:
@@ -110488,7 +112412,6 @@ self: {
        testToolDepends = [ doctest doctest-discover hspec-discover ];
        description = "Haskell binding for Gremlin graph query language - core data types and tools";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "greskell-websocket" = callPackage
@@ -110820,6 +112743,8 @@ self: {
        ];
        description = "MySQL backend for the groundhog library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "groundhog-postgresql" = callPackage
@@ -110892,18 +112817,16 @@ self: {
      }) {};
 
   "group-theory" = callPackage
-    ({ mkDerivation, base, Cabal, cabal-doctest, containers, doctest
-     , groups
-     }:
+    ({ mkDerivation, base, containers, groups }:
      mkDerivation {
        pname = "group-theory";
-       version = "0.2.0.0";
-       sha256 = "0giwyvki83ndxn9vyfzi5fkz23c95zv5x09ya1in4i8318f8d7az";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.2.1.0";
+       sha256 = "11cm59l3g831pz0h5qr94rf1g7km4bn0gqrb8ikssf4xwnjxib46";
        libraryHaskellDepends = [ base containers groups ];
-       testHaskellDepends = [ base doctest ];
        description = "The theory of groups";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "group-with" = callPackage
@@ -111153,7 +113076,7 @@ self: {
          old-locale OpenGL OpenGLRaw parallel qd qd-vec ruff time Vec
        ];
        description = "fractal explorer GUI using the ruff library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -111173,7 +113096,7 @@ self: {
          random ruff Vec
        ];
        description = "Mandelbrot Set examples using ruff and gruff";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -111192,7 +113115,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gsasl ];
        description = "Bindings for GNU libgsasl";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {inherit (pkgs) gsasl;};
 
   "gsc-weighting" = callPackage
@@ -111220,7 +113143,7 @@ self: {
          base feed http-conduit scalpel-core text uri xml-types
        ];
        description = "scrapes google scholar, provides RSS feed";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -111334,7 +113257,7 @@ self: {
        libraryPkgconfigDepends = [ gst-plugins-base gstreamer ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the GStreamer open source multimedia framework";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {gst-plugins-base = null; gstreamer = null;};
@@ -111406,7 +113329,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk2 ];
        description = "Binding to the Gtk+ graphical user interface library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtk2;};
 
   "gtk-helpers" = callPackage
@@ -111432,7 +113355,7 @@ self: {
        sha256 = "0fjlk6z8j77l35k9cdzgbyf1w5wd0v0k1sry78vf7f6j4mvv8wb0";
        libraryHaskellDepends = [ base gtk json transformers ];
        description = "A simple custom form widget for gtk which allows inputing of JSON values";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "gtk-largeTreeStore" = callPackage
@@ -111448,7 +113371,7 @@ self: {
        ];
        testHaskellDepends = [ base containers gtk3 hspec ];
        description = "Large TreeStore support for gtk2hs";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "gtk-mac-integration" = callPackage
@@ -111464,8 +113387,8 @@ self: {
        libraryHaskellDepends = [ array base containers glib gtk mtl ];
        libraryPkgconfigDepends = [ gtk-mac-integration-gtk2 ];
        description = "Bindings for the Gtk/OS X integration library";
-       license = lib.licenses.lgpl21;
-       platforms = [ "armv7l-linux" "x86_64-darwin" ];
+       license = lib.licenses.lgpl21Only;
+       platforms = [ "x86_64-darwin" ];
      }) {inherit (pkgs) gtk-mac-integration-gtk2;};
 
   "gtk-serialized-event" = callPackage
@@ -111482,7 +113405,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk2 ];
        description = "GTK+ Serialized event";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gtk2;};
@@ -111495,7 +113418,7 @@ self: {
        sha256 = "1qqfhaap2996015h3jkgg9j3hyxrh88wn6kba29ys0q1h35f8yws";
        libraryHaskellDepends = [ base gtk ];
        description = "A simple custom form widget for gtk which allows single LOC creation/updating of list views";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "gtk-sni-tray" = callPackage
@@ -111547,7 +113470,7 @@ self: {
        sha256 = "14hb7nxf4l0q7hab8dzll8dh5ccb4hhc8arywijdgdrz4i2s2706";
        libraryHaskellDepends = [ base gtk ];
        description = "A simple custom form widget for gtk which allows single LOC creation/updating of toggle button lists";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "gtk-toy" = callPackage
@@ -111572,7 +113495,7 @@ self: {
        libraryHaskellDepends = [ base glib gtk3 ];
        libraryPkgconfigDepends = [ xlibsWrapper ];
        description = "A wrapper around the eggtraymanager library for Linux system trays";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) xlibsWrapper;};
 
   "gtk2hs-buildtools" = callPackage
@@ -111593,7 +113516,7 @@ self: {
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [ base ];
        description = "Tools to build the Gtk2Hs suite of User Interface libraries";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "gtk2hs-cast-glade" = callPackage
@@ -111746,7 +113669,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gtk3 ];
        description = "Binding to the Gtk+ 3 graphical user interface library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtk3;};
 
   "gtk3-helpers" = callPackage
@@ -111777,7 +113700,7 @@ self: {
        libraryHaskellDepends = [ array base containers glib gtk3 mtl ];
        libraryPkgconfigDepends = [ gtk-mac-integration-gtk3 ];
        description = "Bindings for the Gtk/OS X integration library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {gtk-mac-integration-gtk3 = null;};
@@ -111797,7 +113720,7 @@ self: {
        libraryPkgconfigDepends = [ gtkglext ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the GTK+ OpenGL Extension";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gtk2; inherit (pkgs.gnome2) gtkglext; 
@@ -111820,7 +113743,7 @@ self: {
        libraryPkgconfigDepends = [ gtkimageview ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the GtkImageView library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gtkimageview;};
@@ -111861,7 +113784,7 @@ self: {
        libraryPkgconfigDepends = [ gtksourceview ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the GtkSourceView library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gtksourceview;};
@@ -111882,7 +113805,7 @@ self: {
        libraryPkgconfigDepends = [ gtksourceview3 ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the GtkSourceView library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gtksourceview3;};
@@ -111947,7 +113870,7 @@ self: {
        enableSeparateDataOutput = true;
        executableHaskellDepends = [ base cairo containers filepath gtk ];
        description = "graphical untyped lambda calculus interactive interpreter";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -111960,7 +113883,7 @@ self: {
        sha256 = "0vvzlfnvh9r9jqf7v83d0piqpvl40sg0mswf9f41vncgzg0z79v2";
        libraryHaskellDepends = [ base ];
        description = "The first 1001 Fibonacci numbers, retrieved from the Gutenberg Project";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "gw" = callPackage
@@ -112036,7 +113959,7 @@ self: {
          stm template-haskell transformers utf8-string vinyl
        ];
        description = "Haskell library for retrieving data from various booru image sites";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -112329,7 +114252,7 @@ self: {
        libraryHaskellDepends = [ base hOff-parser OpenGL ];
        executableHaskellDepends = [ base GLFW hOff-parser OpenGL parsec ];
        description = "The tool to transform the OFF to other image format";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -112342,7 +114265,7 @@ self: {
        sha256 = "1vjvn4sr9nb7dd0in57kay6sb49nqzs377v6k9570h5faaj1dyci";
        libraryHaskellDepends = [ base parsec ];
        description = "The parser to parser the OFF(Object File Format, Princeton ModelNet)";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hOpenPGP" = callPackage
@@ -113293,8 +115216,8 @@ self: {
        pname = "hackage-repo-tool";
        version = "0.1.1.2";
        sha256 = "1zgsmibi24w2wsd828hnls1yv9lrl9xwsi2aay3d603j8mg8vd0r";
-       revision = "1";
-       editedCabalFile = "1x8cqmfyc168jrmvg2c8as1gj4qys10hyr71nmcyskvqrk5bsxf8";
+       revision = "2";
+       editedCabalFile = "1djx6x1y6d7j319ba211hl7scwh4pfyd7vrrbvhdralwnwsx5zkp";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -113320,8 +115243,8 @@ self: {
        pname = "hackage-security";
        version = "0.6.0.1";
        sha256 = "05rgz31cmp52137j4jk0074z8lfgk8mrf2x56bzw28asmxrv8qli";
-       revision = "4";
-       editedCabalFile = "06d4xqmpqarisxlm0sp87w2z9rl62p08z5ra5swkvfwn36i9zr15";
+       revision = "5";
+       editedCabalFile = "0vr2fcgp3pjjnp0sy7mvbabqh92215alw62f70pjys9i4z1ks977";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring Cabal
          containers cryptohash-sha256 directory ed25519 filepath ghc-prim
@@ -113345,6 +115268,8 @@ self: {
        pname = "hackage-security-HTTP";
        version = "0.1.1.1";
        sha256 = "14hp7gssf80b9937j7m56w8sxrv3hrzjf2s9kgfk76v6llgx79k2";
+       revision = "1";
+       editedCabalFile = "18b22jjg5nbfvb83yc36gy25y9v5d1p4z2n89cazzn16hlf813xk";
        libraryHaskellDepends = [
          base bytestring hackage-security HTTP mtl network network-uri zlib
        ];
@@ -113576,6 +115501,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Hackage and Portage integration tool";
        license = "GPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hactor" = callPackage
@@ -113631,8 +115558,8 @@ self: {
     ({ mkDerivation, base, filepath, haddock-api }:
      mkDerivation {
        pname = "haddock";
-       version = "2.24.0";
-       sha256 = "08hbn6i6rac8c1l80dfnv9161gh8rs7npdxyk87wqz910h6f4iip";
+       version = "2.25.0";
+       sha256 = "0wjp13f7206g3j2g3lr4msf1anbhjqy9wbgfx382dnanxy80yr74";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base haddock-api ];
@@ -113673,22 +115600,24 @@ self: {
 
   "haddock-api" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, deepseq
-     , directory, filepath, ghc, ghc-boot, ghc-paths, haddock-library
-     , hspec, hspec-discover, QuickCheck, transformers, xhtml
+     , directory, exceptions, filepath, ghc, ghc-boot, ghc-paths
+     , haddock-library, hspec, hspec-discover, mtl, QuickCheck
+     , transformers, xhtml
      }:
      mkDerivation {
        pname = "haddock-api";
-       version = "2.24.0";
-       sha256 = "0bbyhwyshafzcfbzjyv1b09lb8bxcimpj3b605pw5gssxgjh1s8i";
+       version = "2.25.0";
+       sha256 = "1f0gbdlr2kvwagni3416q8jhhjh1b3h1cda5znlmgwdcg9bmcr17";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array base bytestring containers deepseq directory filepath ghc
-         ghc-boot ghc-paths haddock-library transformers xhtml
+         array base bytestring containers deepseq directory exceptions
+         filepath ghc ghc-boot ghc-paths haddock-library mtl transformers
+         xhtml
        ];
        testHaskellDepends = [
-         array base bytestring containers deepseq directory filepath ghc
-         ghc-boot ghc-paths haddock-library hspec QuickCheck transformers
-         xhtml
+         array base bytestring containers deepseq directory exceptions
+         filepath ghc ghc-boot ghc-paths haddock-library hspec mtl
+         QuickCheck transformers xhtml
        ];
        testToolDepends = [ hspec-discover ];
        description = "A documentation-generation tool for Haskell libraries";
@@ -113773,6 +115702,29 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "haddock-library_1_10_0" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, containers, deepseq
+     , directory, filepath, hspec, hspec-discover, optparse-applicative
+     , parsec, QuickCheck, text, transformers, tree-diff
+     }:
+     mkDerivation {
+       pname = "haddock-library";
+       version = "1.10.0";
+       sha256 = "15ak06q8yp11xz1hwr0sg2jqi3r78p1n89ik05hicqvxl3awf1pq";
+       libraryHaskellDepends = [
+         base bytestring containers parsec text transformers
+       ];
+       testHaskellDepends = [
+         base base-compat bytestring containers deepseq directory filepath
+         hspec optparse-applicative parsec QuickCheck text transformers
+         tree-diff
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Library exposing some functionality of Haddock";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "haddock-test" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, directory, filepath
      , process, syb, xhtml, xml
@@ -113814,32 +115766,35 @@ self: {
      }) {};
 
   "hadolint" = callPackage
-    ({ mkDerivation, aeson, async, base, bytestring, containers
-     , cryptonite, directory, filepath, gitrev, hspec, HsYAML, HUnit
-     , language-docker, megaparsec, mtl, optparse-applicative, parallel
-     , ShellCheck, split, text, void
+    ({ mkDerivation, aeson, base, bytestring, Cabal, colourista
+     , containers, cryptonite, deepseq, directory, email-validate
+     , filepath, foldl, gitrev, hspec, HsYAML, HUnit, ilist
+     , language-docker, megaparsec, mtl, network-uri
+     , optparse-applicative, parallel, parsec, semver, ShellCheck, spdx
+     , split, text, time, timerep, void
      }:
      mkDerivation {
        pname = "hadolint";
-       version = "1.22.1";
-       sha256 = "0138hn6c7lrq9xjsmngdj1h2m2ayxx6wqqgjw66pv7sgxsfy0zji";
+       version = "2.1.0";
+       sha256 = "0hvn6kq6pasyh9mvnxn4crhg4fxmw7xrcfxa77wkxni8q1a94xxs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson async base bytestring containers cryptonite directory
-         filepath HsYAML language-docker megaparsec mtl parallel ShellCheck
-         split text void
+         aeson base bytestring Cabal colourista containers cryptonite
+         deepseq directory email-validate filepath foldl HsYAML ilist
+         language-docker megaparsec mtl network-uri parallel parsec semver
+         ShellCheck spdx split text time timerep void
        ];
        executableHaskellDepends = [
          base containers gitrev language-docker megaparsec
          optparse-applicative text
        ];
        testHaskellDepends = [
-         aeson base bytestring hspec HsYAML HUnit language-docker megaparsec
-         ShellCheck split text
+         aeson base bytestring containers foldl hspec HsYAML HUnit
+         language-docker megaparsec ShellCheck split text
        ];
        description = "Dockerfile Linter JavaScript API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hadoop-formats" = callPackage
@@ -113941,7 +115896,7 @@ self: {
        ];
        testHaskellDepends = [ base doctest filemanip process ];
        description = "Confirm delegation of NS and MX records";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "hafar" = callPackage
@@ -114035,7 +115990,7 @@ self: {
        ];
        executableHaskellDepends = [ base time ];
        description = "Analytic Hierarchy Process";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -114192,7 +116147,9 @@ self: {
          iterio-server mongoDB mtl
        ];
        description = "Dynamic launcher of Hails applications";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hairy" = callPackage
@@ -114324,18 +116281,16 @@ self: {
      , containers, cryptonite, data-default, deepseq, directory
      , file-embed, filepath, fsnotify, http-conduit, http-types
      , lrucache, memory, mtl, network-uri, optparse-applicative, pandoc
-     , pandoc-citeproc, parsec, process, QuickCheck, random, regex-tdfa
-     , resourcet, scientific, tagsoup, tasty, tasty-hunit
+     , parsec, process, QuickCheck, random, regex-tdfa, resourcet
+     , scientific, tagsoup, tasty, tasty-golden, tasty-hunit
      , tasty-quickcheck, template-haskell, text, time
      , time-locale-compat, unordered-containers, utillinux, vector, wai
      , wai-app-static, warp, yaml
      }:
      mkDerivation {
        pname = "hakyll";
-       version = "4.13.4.1";
-       sha256 = "1z9k3029bjyxy2aqmqr6gzsva50154y4bfxqkmsjgl38lx3s6kk9";
-       revision = "1";
-       editedCabalFile = "1hv80gqq50zz791620lgdvkspspii0z59ngj7la69cdw2739cc5g";
+       version = "4.14.0.0";
+       sha256 = "088df9vs5f2p5iiv7rbrisz4z4s38mkr9z41gy3hqdapg4m7mi1c";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -114343,15 +116298,15 @@ self: {
          base binary blaze-html blaze-markup bytestring containers
          cryptonite data-default deepseq directory file-embed filepath
          fsnotify http-conduit http-types lrucache memory mtl network-uri
-         optparse-applicative pandoc pandoc-citeproc parsec process random
-         regex-tdfa resourcet scientific tagsoup template-haskell text time
+         optparse-applicative pandoc parsec process random regex-tdfa
+         resourcet scientific tagsoup template-haskell text time
          time-locale-compat unordered-containers vector wai wai-app-static
          warp yaml
        ];
        executableHaskellDepends = [ base directory filepath ];
        testHaskellDepends = [
-         base bytestring containers filepath QuickCheck tasty tasty-hunit
-         tasty-quickcheck text unordered-containers yaml
+         base bytestring containers filepath QuickCheck tasty tasty-golden
+         tasty-hunit tasty-quickcheck text unordered-containers yaml
        ];
        testToolDepends = [ utillinux ];
        description = "A static website compiler library";
@@ -114547,10 +116502,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll-convert";
-       version = "0.3.0.3";
-       sha256 = "0i5g4xs0az8znisl8vm60r3m2y3s9dhh8cdb0bl8c5ikqcrlscjf";
-       revision = "2";
-       editedCabalFile = "0jzc6c8z173mcvrndxny5dx24mx5p10p7pkp68lkl1jl135np6bp";
+       version = "0.3.0.4";
+       sha256 = "09fqr05mvs0qs53psq97kn1s4axinwn1vr5d6af4sqj3zc5k6k39";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -114619,6 +116572,8 @@ self: {
        ];
        description = "Hakyll wrapper for the Elm compiler";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-favicon" = callPackage
@@ -114642,8 +116597,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll-filestore";
-       version = "0.1.8";
-       sha256 = "02lza2nkq2y2m9zb03ipmgd0cnfjv38cyym7jbakg7v8arkymcrc";
+       version = "0.1.9";
+       sha256 = "1lxm78w2n81wsbi6axyrqjv2ikdprf7vvx1r2ricqd6h7dwjsalr";
        libraryHaskellDepends = [
          base filestore hakyll time time-locale-compat
        ];
@@ -114769,7 +116724,7 @@ self: {
          regex-posix split tasty tasty-hunit tasty-quickcheck
        ];
        description = "A shortcode extension module for Hakyll";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -114928,8 +116883,8 @@ self: {
      }:
      mkDerivation {
        pname = "halive";
-       version = "0.1.6";
-       sha256 = "19mlbl8psb5gxw6xsgiw5kxw4fvmfl552acalj05s6h9gsl4hcnh";
+       version = "0.1.8";
+       sha256 = "1zh0jykh1a9lxfsz1vjyr6n56y2y0g1gc16vxnjakyqz131xp7kn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -115047,7 +117002,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base hint process ];
        description = "looks for functions given a set of example input/outputs";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "halves" = callPackage
@@ -115200,7 +117155,7 @@ self: {
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Interpreter for SQL-structure definitions in YAML (YamSql)";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -115456,7 +117411,7 @@ self: {
          wai-middleware-static yaml
        ];
        description = "Simple Continuous Integration/Deployment System";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -115520,8 +117475,8 @@ self: {
      }:
      mkDerivation {
        pname = "hanspell";
-       version = "0.2.2.0";
-       sha256 = "06351wg5y9840nj1ysraa78bixk25vjn64g6fnj3d0zs2qyxd6ca";
+       version = "0.2.3.0";
+       sha256 = "1n692i4d92g25j31v7iyp7w3135hxcdm5p18zki8mmx6x1pg244a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -115595,6 +117550,37 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hapistrano_0_4_1_3" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, async, base, directory
+     , filepath, formatting, gitrev, hspec, hspec-discover, mtl
+     , optparse-applicative, path, path-io, process, QuickCheck
+     , silently, stm, temporary, time, transformers, typed-process, yaml
+     }:
+     mkDerivation {
+       pname = "hapistrano";
+       version = "0.4.1.3";
+       sha256 = "1sk5z0kf9ybhk17y36zf90ljn51j82pyf8rja0cv64ah9bg5zbgq";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal base filepath gitrev mtl path process stm time
+         transformers typed-process yaml
+       ];
+       executableHaskellDepends = [
+         aeson async base formatting gitrev optparse-applicative path
+         path-io stm yaml
+       ];
+       testHaskellDepends = [
+         base directory filepath hspec mtl path path-io process QuickCheck
+         silently temporary yaml
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A deployment library for Haskell applications";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "happindicator" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, glib, gtk
      , gtk2hs-buildtools, libappindicator-gtk2, mtl
@@ -115610,7 +117596,7 @@ self: {
        libraryPkgconfigDepends = [ libappindicator-gtk2 ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the appindicator library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) libappindicator-gtk2;};
@@ -115626,7 +117612,7 @@ self: {
        libraryHaskellDepends = [ base glib gtk3 ];
        libraryPkgconfigDepends = [ libappindicator-gtk3 ];
        description = "Binding to the appindicator library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) libappindicator-gtk3;};
@@ -115796,8 +117782,8 @@ self: {
      }:
      mkDerivation {
        pname = "happstack-authenticate";
-       version = "2.4.1";
-       sha256 = "1166ccqpjwr331chf7hi4n42m2frahpf93ardfjgv8x6d0p5pfss";
+       version = "2.4.1.1";
+       sha256 = "164pjybk054a3h3ydfakzibngpmp8a4cbzg0sip9slfb739nz25j";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          acid-state aeson authenticate base base64-bytestring boomerang
@@ -116367,7 +118353,7 @@ self: {
          array base clock language-dot transformers xml
        ];
        description = "Parser for dot made with happy";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "happy-hour" = callPackage
@@ -116391,6 +118377,8 @@ self: {
        pname = "happy-meta";
        version = "0.2.0.11";
        sha256 = "1vgv5fx1fya7wfh3zwdgy0hm0lyzp171gnpp6ymfd6kqmqkl3293";
+       revision = "1";
+       editedCabalFile = "1dspifamwsn6lcj2mxjyrbdsfjqfb4p6m0s1c9dkiv08cfkk02p6";
        libraryHaskellDepends = [
          array base containers fail haskell-src-meta mtl template-haskell
        ];
@@ -116566,20 +118554,17 @@ self: {
 
   "harg" = callPackage
     ({ mkDerivation, aeson, barbies, base, bytestring, directory
-     , higgledy, markdown-unlit, optparse-applicative, split, text, yaml
+     , higgledy, optparse-applicative, split, text, yaml
      }:
      mkDerivation {
        pname = "harg";
-       version = "0.4.2.1";
-       sha256 = "0fbbf9zxfbyc6mnsybrd81sd87ps6qwks5zv5kmjygc6w8ngh6vh";
+       version = "0.5.0.0";
+       sha256 = "1panniqhyg8my7nac569fl6rgdg4bch8x469lsp2r00wwp0sivcs";
        libraryHaskellDepends = [
          aeson barbies base bytestring directory higgledy
          optparse-applicative split text yaml
        ];
-       testHaskellDepends = [
-         aeson barbies base higgledy optparse-applicative
-       ];
-       testToolDepends = [ markdown-unlit ];
+       testHaskellDepends = [ base ];
        description = "Haskell program configuration using higher kinded data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -116628,7 +118613,7 @@ self: {
          base containers derive hlint hslogger hspec HUnit QuickCheck
        ];
        description = "A web service specification compiler that generates implementation and tests";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -116646,7 +118631,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ groonga ];
        description = "Low level bindings for Groonga";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) groonga;};
@@ -116666,7 +118651,7 @@ self: {
          scotty text time transformers wai-extra
        ];
        description = "Yet another Groonga http server";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -116839,7 +118824,7 @@ self: {
          base bytestring conduit cryptohash hex path
        ];
        description = "Decompress SAPCAR archives";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "hascard" = callPackage
@@ -116851,8 +118836,8 @@ self: {
      }:
      mkDerivation {
        pname = "hascard";
-       version = "0.5.0.0";
-       sha256 = "1lic3s5z3rq2m3hpf9626k8k3a8vrx267afavzvzcngkfdl3bfap";
+       version = "0.5.0.1";
+       sha256 = "08j3bi6a04pkkf99ghw2h7z1bdisby0d3hyqv559a1pxwpbi7k22";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -117059,6 +119044,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hashable_1_3_1_0" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, ghc-prim, HUnit
+     , integer-gmp, QuickCheck, random, test-framework
+     , test-framework-hunit, test-framework-quickcheck2, text, unix
+     }:
+     mkDerivation {
+       pname = "hashable";
+       version = "1.3.1.0";
+       sha256 = "1i57iibad5gjk88yq1svi35mjcbgjmms7jzd28wva8f598x84qc0";
+       libraryHaskellDepends = [
+         base bytestring deepseq ghc-prim integer-gmp text
+       ];
+       testHaskellDepends = [
+         base bytestring ghc-prim HUnit QuickCheck random test-framework
+         test-framework-hunit test-framework-quickcheck2 text unix
+       ];
+       description = "A class for types that can be converted to a hash value";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hashable-accelerate" = callPackage
     ({ mkDerivation, accelerate, base, template-haskell }:
      mkDerivation {
@@ -117128,14 +119134,12 @@ self: {
      }) {};
 
   "hashable-time" = callPackage
-    ({ mkDerivation, base, hashable, time }:
+    ({ mkDerivation, base, hashable, time, time-compat }:
      mkDerivation {
        pname = "hashable-time";
-       version = "0.2.0.2";
-       sha256 = "1q7y4plqqwy5286hhx2fygn12h8lqk0y047b597sbdckskxzfqgs";
-       revision = "3";
-       editedCabalFile = "1dr7ak803ngrhpv43dy25jm18gfzn02gzd3hm31dzcjv3mxsmbrk";
-       libraryHaskellDepends = [ base hashable time ];
+       version = "0.2.1";
+       sha256 = "1zw2gqagpbwq1hgx5rlvy6mhsnb15cxg3pmhawwv0ylfihmx2yxh";
+       libraryHaskellDepends = [ base hashable time time-compat ];
        description = "Hashable instances for Data.Time";
        license = lib.licenses.bsd3;
      }) {};
@@ -117265,7 +119269,7 @@ self: {
          base bytestring cryptohash directory filepath
        ];
        description = "Rename every file in a directory with his SHA1 hash";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hashring" = callPackage
@@ -117476,7 +119480,7 @@ self: {
          base cmdargs containers cpphs directory her-lexer split
        ];
        description = "A dialect of haskell with order of execution based on dependency resolution";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -117567,15 +119571,15 @@ self: {
        broken = true;
      }) {};
 
-  "haskeline_0_8_1_1" = callPackage
+  "haskeline_0_8_1_2" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory
      , exceptions, filepath, HUnit, process, stm, terminfo, text
      , transformers, unix
      }:
      mkDerivation {
        pname = "haskeline";
-       version = "0.8.1.1";
-       sha256 = "1cg51rbhpa7ism0rg39dw7njz4r3q5h5pnysnbc37dh6gcdiyg2p";
+       version = "0.8.1.2";
+       sha256 = "0axr258a8wrsq37jwx4g343969lycydx9symijnp64a7ki67jrnp";
        configureFlags = [ "-fterminfo" ];
        isLibrary = true;
        isExecutable = true;
@@ -117625,7 +119629,7 @@ self: {
        editedCabalFile = "0h900mw5kzd9fvywpbhfd9acnfwp3qk7nfi9yr9ibamjb8s87cm1";
        libraryHaskellDepends = [ base containers mtl protolude text ];
        description = "Write Emacs module in Haskell, using Emacs 25's Dynamic Module feature";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -117806,29 +119810,33 @@ self: {
      }) {};
 
   "haskell-ci" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, base, base-compat
-     , bytestring, Cabal, cabal-install-parsers, containers, deepseq
+    ({ mkDerivation, aeson, ansi-terminal, attoparsec, base
+     , base-compat, base16-bytestring, binary, bytestring, Cabal
+     , cabal-install-parsers, containers, cryptohash-sha256, deepseq
      , Diff, directory, exceptions, filepath, generic-lens-lite, HsYAML
-     , lattices, mtl, network-uri, optparse-applicative, parsec, pretty
-     , process, ShellCheck, tasty, tasty-golden, temporary, text
-     , transformers, unordered-containers
+     , indexed-traversable, indexed-traversable-instances, ini, lattices
+     , mtl, network-uri, optparse-applicative, parsec, pretty, process
+     , ShellCheck, tasty, tasty-golden, temporary, text, transformers
+     , unordered-containers, zinza
      }:
      mkDerivation {
        pname = "haskell-ci";
-       version = "0.10.3";
-       sha256 = "18qynghm1aj0qr18v6m3md75p2l3kyhki03798jwhi4kc5qdk2vv";
+       version = "0.12";
+       sha256 = "17ccxpsi483fkiyp98m09nzqds9n78y53naii5x18nvdxv9fssam";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base base-compat bytestring Cabal cabal-install-parsers
-         containers deepseq directory exceptions filepath generic-lens-lite
-         HsYAML lattices mtl network-uri optparse-applicative parsec pretty
-         process ShellCheck temporary text transformers unordered-containers
+         aeson attoparsec base base-compat base16-bytestring binary
+         bytestring Cabal cabal-install-parsers containers cryptohash-sha256
+         deepseq directory exceptions filepath generic-lens-lite HsYAML
+         indexed-traversable indexed-traversable-instances ini lattices mtl
+         network-uri optparse-applicative parsec pretty process ShellCheck
+         temporary text transformers unordered-containers zinza
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
-         ansi-terminal base base-compat bytestring Diff directory filepath
-         tasty tasty-golden transformers
+         ansi-terminal base base-compat bytestring Cabal Diff directory
+         filepath tasty tasty-golden transformers
        ];
        doHaddock = false;
        description = "Cabal package script generator for Travis-CI";
@@ -117867,7 +119875,7 @@ self: {
        sha256 = "1iz94kyq1xn3v89aay282qglv2sh41b04p8vaygwm22v1g4b4kk7";
        libraryHaskellDepends = [ base process ];
        description = "Simple CoffeeScript API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -117888,7 +119896,7 @@ self: {
          base bimap boolean-list bytestring containers
        ];
        description = "compress files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -118167,7 +120175,30 @@ self: {
        libraryPkgconfigDepends = [ glib gobject-introspection ];
        testHaskellDepends = [ base doctest process ];
        description = "Generate Haskell bindings for GObject Introspection capable libraries";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) glib; inherit (pkgs) gobject-introspection;};
+
+  "haskell-gi_0_25_0" = callPackage
+    ({ mkDerivation, ansi-terminal, attoparsec, base, bytestring, Cabal
+     , cabal-doctest, containers, directory, doctest, filepath, glib
+     , gobject-introspection, haskell-gi-base, mtl, pretty-show, process
+     , regex-tdfa, safe, text, transformers, xdg-basedir, xml-conduit
+     }:
+     mkDerivation {
+       pname = "haskell-gi";
+       version = "0.25.0";
+       sha256 = "1bxybi1bj9jwfmyj57cb3471s0wczlp6m1qz893kbz17k96mpin8";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         ansi-terminal attoparsec base bytestring Cabal containers directory
+         filepath haskell-gi-base mtl pretty-show process regex-tdfa safe
+         text transformers xdg-basedir xml-conduit
+       ];
+       libraryPkgconfigDepends = [ glib gobject-introspection ];
+       testHaskellDepends = [ base doctest process ];
+       description = "Generate Haskell bindings for GObject Introspection capable libraries";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) glib; inherit (pkgs) gobject-introspection;};
 
   "haskell-gi-base" = callPackage
@@ -118179,7 +120210,20 @@ self: {
        libraryHaskellDepends = [ base bytestring containers text ];
        libraryPkgconfigDepends = [ glib ];
        description = "Foundation for libraries generated by haskell-gi";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) glib;};
+
+  "haskell-gi-base_0_25_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, glib, text }:
+     mkDerivation {
+       pname = "haskell-gi-base";
+       version = "0.25.0";
+       sha256 = "140f6amq69r39vj54i1p4c9q0ysxkvb3yjcrlbrrayf66bhw8mqy";
+       libraryHaskellDepends = [ base bytestring containers text ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "Foundation for libraries generated by haskell-gi";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) glib;};
 
   "haskell-gi-overloading" = callPackage
@@ -118319,53 +120363,58 @@ self: {
      }) {};
 
   "haskell-language-server" = callPackage
-    ({ mkDerivation, aeson, base, binary, blaze-markup, brittany
-     , bytestring, containers, data-default, deepseq, directory, extra
-     , filepath, floskell, fourmolu, fuzzy, ghc, ghc-boot-th, ghc-paths
-     , ghcide, gitrev, hashable, haskell-lsp, hie-bios, hls-class-plugin
-     , hls-eval-plugin, hls-explicit-imports-plugin
-     , hls-haddock-comments-plugin, hls-hlint-plugin, hls-plugin-api
-     , hls-retrie-plugin, hls-splice-plugin, hls-tactics-plugin
-     , hslogger, hspec, hspec-core, hspec-expectations, lens, lsp-test
+    ({ mkDerivation, aeson, async, base, base16-bytestring, binary
+     , blaze-markup, brittany, bytestring, containers, cryptohash-sha1
+     , data-default, deepseq, directory, extra, filepath, floskell
+     , fourmolu, fuzzy, ghc, ghc-boot-th, ghc-paths, ghcide, gitrev
+     , hashable, hie-bios, hiedb, hls-class-plugin, hls-eval-plugin
+     , hls-explicit-imports-plugin, hls-haddock-comments-plugin
+     , hls-hlint-plugin, hls-plugin-api, hls-retrie-plugin
+     , hls-splice-plugin, hls-tactics-plugin, hslogger, hspec
+     , hspec-core, hspec-expectations, lens, lsp, lsp-test, megaparsec
      , mtl, optparse-applicative, optparse-simple, ormolu, process
-     , regex-tdfa, safe-exceptions, shake, stm, stylish-haskell, tasty
-     , tasty-ant-xml, tasty-expected-failure, tasty-golden, tasty-hunit
-     , tasty-rerun, temporary, text, transformers, unordered-containers
-     , with-utf8, yaml
+     , regex-tdfa, safe-exceptions, shake, sqlite-simple, stm
+     , stylish-haskell, tasty, tasty-ant-xml, tasty-expected-failure
+     , tasty-golden, tasty-hunit, tasty-rerun, temporary, text
+     , transformers, unordered-containers, with-utf8, yaml
      }:
      mkDerivation {
        pname = "haskell-language-server";
-       version = "0.9.0.0";
-       sha256 = "0wzwadmrw57dqp9mszr4nmcnrwa01kav70z0wqkh8g2ag0kv3nfm";
+       version = "1.0.0.0";
+       sha256 = "0jchps7rwsbfq1fsyyf4jgxb4b11d8c3iaq2p4c5vz7vz2d6w1s3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers data-default directory extra filepath ghc ghcide
-         gitrev haskell-lsp hls-plugin-api hslogger optparse-applicative
-         optparse-simple process shake text unordered-containers
+         async base base16-bytestring bytestring containers cryptohash-sha1
+         data-default directory extra filepath ghc ghcide gitrev hie-bios
+         hiedb hls-plugin-api hslogger lsp optparse-applicative
+         optparse-simple process safe-exceptions shake sqlite-simple text
+         unordered-containers
        ];
        executableHaskellDepends = [
-         aeson base binary brittany bytestring containers deepseq directory
-         extra filepath floskell fourmolu fuzzy ghc ghc-boot-th ghc-paths
-         ghcide gitrev hashable haskell-lsp hie-bios hls-class-plugin
-         hls-eval-plugin hls-explicit-imports-plugin
-         hls-haddock-comments-plugin hls-hlint-plugin hls-plugin-api
-         hls-retrie-plugin hls-splice-plugin hls-tactics-plugin hslogger
-         lens mtl optparse-applicative optparse-simple ormolu process
-         regex-tdfa safe-exceptions shake stylish-haskell temporary text
-         transformers unordered-containers with-utf8
+         aeson async base base16-bytestring binary brittany bytestring
+         containers cryptohash-sha1 data-default deepseq directory extra
+         filepath floskell fourmolu fuzzy ghc ghc-boot-th ghc-paths ghcide
+         gitrev hashable hie-bios hiedb hls-class-plugin hls-eval-plugin
+         hls-explicit-imports-plugin hls-haddock-comments-plugin
+         hls-hlint-plugin hls-plugin-api hls-retrie-plugin hls-splice-plugin
+         hls-tactics-plugin hslogger lens lsp mtl optparse-applicative
+         optparse-simple ormolu process regex-tdfa safe-exceptions shake
+         sqlite-simple stylish-haskell temporary text transformers
+         unordered-containers with-utf8
        ];
        testHaskellDepends = [
-         aeson base blaze-markup bytestring containers data-default
-         directory extra filepath ghcide haskell-lsp hie-bios hls-plugin-api
-         hslogger hspec hspec-core hspec-expectations lens lsp-test process
-         stm tasty tasty-ant-xml tasty-expected-failure tasty-golden
+         aeson base blaze-markup bytestring containers data-default deepseq
+         directory extra filepath ghcide hie-bios hls-plugin-api hslogger
+         hspec hspec-core hspec-expectations lens lsp lsp-test megaparsec
+         process stm tasty tasty-ant-xml tasty-expected-failure tasty-golden
          tasty-hunit tasty-rerun temporary text transformers
          unordered-containers yaml
        ];
        testToolDepends = [ ghcide ];
        description = "LSP server for GHC";
        license = lib.licenses.asl20;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "haskell-lexer" = callPackage
@@ -118408,36 +120457,6 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "haskell-lsp_0_23_0_0" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
-     , containers, data-default, directory, filepath, hashable
-     , haskell-lsp-types, hslogger, hspec, hspec-discover, lens, mtl
-     , network-uri, QuickCheck, quickcheck-instances, rope-utf16-splay
-     , sorted-list, stm, temporary, text, time, unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskell-lsp";
-       version = "0.23.0.0";
-       sha256 = "07vyfqqvgaxg06yrawiwfffv511jlamhh4p7i0hwx60xdgpg11xh";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson async attoparsec base bytestring containers data-default
-         directory filepath hashable haskell-lsp-types hslogger lens mtl
-         network-uri rope-utf16-splay sorted-list stm temporary text time
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers data-default directory filepath
-         hashable hspec lens network-uri QuickCheck quickcheck-instances
-         rope-utf16-splay sorted-list stm text unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Haskell library for the Microsoft Language Server Protocol";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "haskell-lsp_0_24_0_0" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, bytestring
      , containers, data-default, directory, filepath, hashable
@@ -118485,7 +120504,7 @@ self: {
          base directory haskell-lsp lens process text unix
        ];
        description = "A haskell package to build your own Language Server client";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -118507,24 +120526,6 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "haskell-lsp-types_0_23_0_0" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, data-default
-     , deepseq, filepath, hashable, lens, network-uri, scientific, text
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskell-lsp-types";
-       version = "0.23.0.0";
-       sha256 = "0dz0980681khfn229aky3bsclj86xkril2y0ln3wr7g9v77ypbq7";
-       libraryHaskellDepends = [
-         aeson base binary bytestring data-default deepseq filepath hashable
-         lens network-uri scientific text unordered-containers
-       ];
-       description = "Haskell library for the Microsoft Language Server Protocol, data types";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "haskell-lsp-types_0_24_0_0" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, data-default
      , deepseq, filepath, hashable, lens, network-uri, scientific, text
@@ -118551,7 +120552,7 @@ self: {
        sha256 = "18s8g82v3h4b7maz6di43vfym6d3w16j4rbh5sjh4ps26yjnnfy4";
        libraryHaskellDepends = [ base containers ];
        description = "A simple menu system for Haskell programs";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "haskell-ml" = callPackage
@@ -118617,6 +120618,8 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Distributed parallel programming in Haskell using MPI";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {open-pal = null; open-rte = null; openmpi = null;};
 
   "haskell-names" = callPackage
@@ -118640,6 +120643,8 @@ self: {
        ];
        description = "Name resolution library for Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskell-neo4j-client" = callPackage
@@ -118750,7 +120755,7 @@ self: {
          old-locale poppler template-haskell time zlib
        ];
        description = "Tool for presenting PDF-based presentations";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -118841,7 +120846,7 @@ self: {
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {libpostal = null;};
+     }) {inherit (pkgs) libpostal;};
 
   "haskell-postgis" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, bytestring-lexing
@@ -118936,7 +120941,7 @@ self: {
        sha256 = "03d8c1gnxd923f3fqqw06w3ibnd20llfgd7s5jgkscc872i5ghz6";
        libraryHaskellDepends = [ base syb ];
        description = "A DSL for expressing natural deduction rules in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -118972,7 +120977,7 @@ self: {
          base containers lens linear mtl random sdl2 sdl2-ttf text vector
        ];
        description = "Snake game implemetation in Haskell using SDL2";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "haskell-spacegoo" = callPackage
@@ -119005,8 +121010,6 @@ self: {
        libraryToolDepends = [ happy ];
        description = "Support for manipulating Haskell source code";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-src-exts" = callPackage
@@ -119147,10 +121150,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-src-meta";
-       version = "0.8.5";
-       sha256 = "1csqp3n7330rhia9msyw34z7qwwj64gdy5qlv8w4jbm49dap24ik";
-       revision = "1";
-       editedCabalFile = "00znr8mrlbyn0n1bw4c82rv82pq5ngkk7kw9cgk13pghf93hwwv7";
+       version = "0.8.7";
+       sha256 = "1yy2dfb1ip1zqx3xh28g92209555abzvxrxiwcl95j27zzqxc6in";
        libraryHaskellDepends = [
          base haskell-src-exts pretty syb template-haskell th-orphans
        ];
@@ -119214,21 +121215,21 @@ self: {
 
   "haskell-to-elm" = callPackage
     ({ mkDerivation, aeson, base, bound, elm-syntax, generics-sop, text
-     , time, unordered-containers
+     , time, unordered-containers, vector
      }:
      mkDerivation {
        pname = "haskell-to-elm";
-       version = "0.3.1.0";
-       sha256 = "0gplmz0s874zi8y8m06mlr3lipyffw0p6lfz6snl0sgdmynjg786";
+       version = "0.3.2.0";
+       sha256 = "17r1yf2xp1idpq22f67192i511w7ydpfw728f5g3fz67lbahpq3k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base bound elm-syntax generics-sop text time
-         unordered-containers
+         unordered-containers vector
        ];
        testHaskellDepends = [
          aeson base bound elm-syntax generics-sop text time
-         unordered-containers
+         unordered-containers vector
        ];
        description = "Generate Elm types and JSON encoders and decoders from Haskell types";
        license = lib.licenses.bsd3;
@@ -119675,7 +121676,7 @@ self: {
        sha256 = "0fv533nac6dlawgffr1kvn4xpv63hdcb4wgyqbbg2s6dg9a2hw38";
        libraryHaskellDepends = [ base process ];
        description = "Simple TypeScript API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -120179,14 +122180,14 @@ self: {
 
   "haskellish" = callPackage
     ({ mkDerivation, base, containers, haskell-src-exts, mtl
-     , template-haskell
+     , template-haskell, text
      }:
      mkDerivation {
        pname = "haskellish";
-       version = "0.2.3.1";
-       sha256 = "0285mk3s1gl0xxwcqd22v800pcg75ml676nzs5pb96ybfniqksl0";
+       version = "0.2.4.3";
+       sha256 = "09hxl72ivd7dc1fcwdd5w081crc4b8yinxddxcydb9ak0dg7hj26";
        libraryHaskellDepends = [
-         base containers haskell-src-exts mtl template-haskell
+         base containers haskell-src-exts mtl template-haskell text
        ];
        description = "For parsing Haskell-ish languages";
        license = lib.licenses.bsd3;
@@ -120214,7 +122215,7 @@ self: {
          test-framework-quickcheck2
        ];
        description = "A scrabble library capturing the core game logic of scrabble";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -120268,6 +122269,8 @@ self: {
        ];
        description = "Elm to Haskell translation";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskelzinc" = callPackage
@@ -120515,26 +122518,26 @@ self: {
      }) {};
 
   "haskoin-core" = callPackage
-    ({ mkDerivation, aeson, array, base, base16-bytestring, bytestring
-     , cereal, conduit, containers, cryptonite, deepseq, entropy
-     , hashable, hspec, hspec-discover, HUnit, lens, lens-aeson, memory
-     , mtl, murmur3, network, QuickCheck, safe, scientific
+    ({ mkDerivation, aeson, array, base, base16, 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
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "0.19.0";
-       sha256 = "0yyrka8hr6jsl7w59j3xmnvzq4gnwz4gybjar2zq1g096shdpk7c";
+       version = "0.20.0";
+       sha256 = "10pdpg75r2gch32p3mkiz82qip9rwkc5lrq0zxy13pqrmxdy162k";
        libraryHaskellDepends = [
-         aeson array base base16-bytestring bytestring cereal conduit
+         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
        ];
        testHaskellDepends = [
-         aeson array base base16-bytestring bytestring cereal conduit
+         aeson array base base16 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
@@ -120581,8 +122584,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-node";
-       version = "0.17.1";
-       sha256 = "07p58jf2vn7hyk260ijimg2lyg3jcsqnza8v6kjcn6rjlsvcakvp";
+       version = "0.17.2";
+       sha256 = "04i8016qrrwzbz8yxnppfzlrba1d86zp2j71dqd0p7lc3341caa8";
        libraryHaskellDepends = [
          base bytestring cereal conduit conduit-extra containers
          data-default hashable haskoin-core monad-logger mtl network nqe
@@ -120655,45 +122658,48 @@ self: {
      }) {};
 
   "haskoin-store" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, base64, bytestring
-     , cereal, conduit, containers, data-default, deepseq, ekg-core
-     , ekg-statsd, filepath, foldl, hashable, haskoin-core, haskoin-node
-     , haskoin-store-data, hedis, hspec, hspec-discover, http-types
-     , lens, monad-control, monad-logger, mtl, network, nqe
+    ({ mkDerivation, aeson, aeson-pretty, base, base16, base64, bytes
+     , bytestring, cereal, conduit, containers, data-default, deepseq
+     , ekg-core, ekg-statsd, filepath, foldl, hashable, haskoin-core
+     , haskoin-node, haskoin-store-data, hedis, hspec, hspec-discover
+     , http-types, lens, monad-control, monad-logger, mtl, network, nqe
      , optparse-applicative, QuickCheck, random, rocksdb-haskell-jprupp
      , rocksdb-query, scotty, stm, string-conversions, text, time
-     , transformers, unliftio, unordered-containers, wai, warp, wreq
+     , transformers, unliftio, unordered-containers, vault, wai
+     , wai-extra, warp, wreq
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.42.2";
-       sha256 = "03xys3m0cdkjbabcrgc96sdb8ws3rrzq794ggnkwigwzgnav0gm0";
+       version = "0.52.3";
+       sha256 = "12yk4545m9fh6961kd4k7mi8dz3zdqv58nbravr7ziz53m6ydlwq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty base bytestring cereal conduit containers
-         data-default deepseq ekg-core ekg-statsd foldl hashable
+         aeson aeson-pretty base base16 bytes bytestring cereal conduit
+         containers data-default deepseq ekg-core ekg-statsd foldl hashable
          haskoin-core haskoin-node haskoin-store-data hedis http-types lens
          monad-control monad-logger mtl network nqe random
          rocksdb-haskell-jprupp rocksdb-query scotty stm string-conversions
-         text time transformers unliftio unordered-containers wai warp wreq
+         text time transformers unliftio unordered-containers vault wai
+         wai-extra warp wreq
        ];
        executableHaskellDepends = [
-         aeson aeson-pretty base bytestring cereal conduit containers
-         data-default deepseq ekg-core ekg-statsd filepath foldl hashable
-         haskoin-core haskoin-node haskoin-store-data hedis http-types lens
-         monad-control monad-logger mtl network nqe optparse-applicative
-         random rocksdb-haskell-jprupp rocksdb-query scotty stm
-         string-conversions text time transformers unliftio
-         unordered-containers wai warp wreq
+         aeson aeson-pretty base base16 bytes bytestring cereal conduit
+         containers data-default deepseq ekg-core ekg-statsd filepath foldl
+         hashable haskoin-core haskoin-node haskoin-store-data hedis
+         http-types lens monad-control monad-logger mtl network nqe
+         optparse-applicative random rocksdb-haskell-jprupp rocksdb-query
+         scotty stm string-conversions text time transformers unliftio
+         unordered-containers vault wai wai-extra warp wreq
        ];
        testHaskellDepends = [
-         aeson aeson-pretty base base64 bytestring cereal conduit containers
-         data-default deepseq ekg-core ekg-statsd foldl hashable
-         haskoin-core haskoin-node haskoin-store-data hedis hspec http-types
-         lens monad-control monad-logger mtl network nqe QuickCheck random
-         rocksdb-haskell-jprupp rocksdb-query scotty stm string-conversions
-         text time transformers unliftio unordered-containers wai warp wreq
+         aeson aeson-pretty base base16 base64 bytes bytestring cereal
+         conduit containers data-default deepseq ekg-core ekg-statsd foldl
+         hashable haskoin-core haskoin-node haskoin-store-data hedis hspec
+         http-types lens monad-control monad-logger mtl network nqe
+         QuickCheck random rocksdb-haskell-jprupp rocksdb-query scotty stm
+         string-conversions text time transformers unliftio
+         unordered-containers vault wai wai-extra warp wreq
        ];
        testToolDepends = [ hspec-discover ];
        description = "Storage and index for Bitcoin and Bitcoin Cash";
@@ -120703,25 +122709,26 @@ self: {
      }) {};
 
   "haskoin-store-data" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, cereal, containers
-     , data-default, deepseq, hashable, haskoin-core, hspec
+    ({ mkDerivation, aeson, base, binary, bytes, bytestring, cereal
+     , containers, data-default, deepseq, hashable, haskoin-core, hspec
      , hspec-discover, http-client, http-types, lens, mtl, network
      , QuickCheck, scotty, string-conversions, text
      , unordered-containers, wreq
      }:
      mkDerivation {
        pname = "haskoin-store-data";
-       version = "0.42.1";
-       sha256 = "17yfbd4vp9xx551bybpkiiv6w1x8067xmyrfff7zak3glzb3piva";
+       version = "0.52.0";
+       sha256 = "0fgjmyps858dvx8i2mzn8kqmms869wamldrdlmy2y27wcmrzzj51";
        libraryHaskellDepends = [
-         aeson base bytestring cereal containers data-default deepseq
-         hashable haskoin-core http-client http-types lens mtl network
-         scotty string-conversions text unordered-containers wreq
+         aeson base binary bytes bytestring cereal containers data-default
+         deepseq hashable haskoin-core http-client http-types lens mtl
+         network scotty string-conversions text unordered-containers wreq
        ];
        testHaskellDepends = [
-         aeson base bytestring cereal containers data-default deepseq
-         hashable haskoin-core hspec http-client http-types lens mtl network
-         QuickCheck scotty string-conversions text unordered-containers wreq
+         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
+         unordered-containers wreq
        ];
        testToolDepends = [ hspec-discover ];
        description = "Data for Haskoin Store";
@@ -121377,8 +123384,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskus-utils-data";
-       version = "1.3";
-       sha256 = "0373bb3aqbrw6prn323vy47qq9mfnvmm1lbd9ql1dxgb9px338qn";
+       version = "1.4";
+       sha256 = "18k8kbfy60l60pzc3c3kwny87avwp6sn766cg4b0z47hx8d70i5k";
        libraryHaskellDepends = [
          base containers ghc-prim haskus-utils-types mtl recursion-schemes
          transformers
@@ -121411,8 +123418,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskus-utils-variant";
-       version = "3.0";
-       sha256 = "128i47aqp1h8j4yganj7l8svdb1ax5vx9h4j55k56wh5yxrg5aan";
+       version = "3.1";
+       sha256 = "0iqlc6lrgrwjqvgpbvvvna8v5daxgf84vnqlgbchy87p67lkv6ni";
        libraryHaskellDepends = [
          base deepseq exceptions haskus-utils-data haskus-utils-types
          template-haskell transformers
@@ -121543,6 +123550,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion directory text ];
        description = "CSS Minifier";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hasparql-client" = callPackage
@@ -121598,6 +123607,33 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hasql_1_4_5_1" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring
+     , bytestring-strict-builder, contravariant, contravariant-extras
+     , dlist, gauge, hashable, hashtables, mtl, postgresql-binary
+     , postgresql-libpq, profunctors, QuickCheck, quickcheck-instances
+     , rerebase, tasty, tasty-hunit, tasty-quickcheck, text
+     , text-builder, transformers, vector
+     }:
+     mkDerivation {
+       pname = "hasql";
+       version = "1.4.5.1";
+       sha256 = "0y23qk29bq419rjdzpvlr6hkml8fzk3sgl7dzvkvjpdycrzphlzl";
+       libraryHaskellDepends = [
+         attoparsec base bytestring bytestring-strict-builder contravariant
+         dlist hashable hashtables mtl postgresql-binary postgresql-libpq
+         profunctors text text-builder transformers vector
+       ];
+       testHaskellDepends = [
+         contravariant-extras QuickCheck quickcheck-instances rerebase tasty
+         tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ gauge rerebase ];
+       description = "An efficient PostgreSQL driver with a flexible mapping API";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hasql-backend" = callPackage
     ({ mkDerivation, base, base-prelude, bytestring, either, free
      , list-t, text, transformers, vector
@@ -121783,6 +123819,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hasql-notifications_0_2_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, contravariant, hasql, hasql-pool
+     , hspec, postgresql-libpq, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "hasql-notifications";
+       version = "0.2.0.0";
+       sha256 = "1zizvdvhb0nd126k24j4k62lzkx3qh1vp4976f2n7ri7ga5y6cxi";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring contravariant hasql hasql-pool postgresql-libpq
+         text
+       ];
+       executableHaskellDepends = [ base hasql ];
+       testHaskellDepends = [ base bytestring hasql hspec QuickCheck ];
+       description = "LISTEN/NOTIFY support for Hasql";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hasql-optparse-applicative" = callPackage
     ({ mkDerivation, base-prelude, hasql, hasql-pool
      , optparse-applicative
@@ -121970,6 +124027,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hasql-transaction_1_0_0_2" = callPackage
+    ({ mkDerivation, async, base, bytestring, bytestring-tree-builder
+     , contravariant, contravariant-extras, hasql, mtl, rerebase
+     , transformers
+     }:
+     mkDerivation {
+       pname = "hasql-transaction";
+       version = "1.0.0.2";
+       sha256 = "1ig6fny9c90cmfsh6kcdhj9ps2arn1y80ic2w7ps6mn8wgl0cr82";
+       libraryHaskellDepends = [
+         base bytestring bytestring-tree-builder contravariant
+         contravariant-extras hasql mtl transformers
+       ];
+       testHaskellDepends = [ async contravariant-extras hasql rerebase ];
+       description = "Composable abstraction over retryable transactions for Hasql";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hasql-url" = callPackage
     ({ mkDerivation, base, bytestring, hasql, network-uri, split, tasty
      , tasty-quickcheck
@@ -122175,7 +124251,7 @@ self: {
        sha256 = "1a92ahmphsr0dgj1jlp2cxpq5yy59b3avw3gzmv0jzrds41p3ic8";
        libraryHaskellDepends = [ base haste-compiler transformers ];
        description = "Create, navigate and modify the DOM tree with composable syntax, with the haste compiler";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -122223,8 +124299,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasty-hamiltonian";
-       version = "1.3.3";
-       sha256 = "11x0daijylcxg0zf55bcwac6dy6lmmz9f4zf7a44qp9dsgfv753a";
+       version = "1.3.4";
+       sha256 = "0qvqh5d213lq02qq25s1a6z783836h5gi5zra99pprblpdffaazq";
        libraryHaskellDepends = [
          base kan-extensions lens mcmc-types mwc-probability pipes primitive
          transformers
@@ -122316,7 +124392,7 @@ self: {
          base cmdargs process split tasty tasty-hunit tasty-quickcheck
        ];
        description = "Hath manipulates network blocks in CIDR notation";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "hats" = callPackage
@@ -122745,7 +124821,7 @@ self: {
          base directory ghc ghc-mod ghc-paths libhbb
        ];
        description = "Haskell Busy Bee, a backend for text editors";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -122833,7 +124909,7 @@ self: {
          optparse-applicative parsec primitive text transformers vector
        ];
        description = "An optimizing Brainfuck compiler and evaluator";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -123045,18 +125121,16 @@ self: {
      , bytestring, clock, concurrent-extra, containers, data-default
      , directory, ekg, ekg-core, exceptions, fast-logger, filepath
      , hashable, hashtables, heavy-logger, hsyslog, http-types
-     , megaparsec, microlens, monad-metrics, mtl, mwc-random
+     , megaparsec, microlens, monad-metrics, mtl, mwc-random, network
      , optparse-applicative, psqueues, random, random-access-file
-     , scotty, stm, stm-containers, store, template-haskell, text
-     , text-format-heavy, unix, unix-bytestring, unordered-containers
-     , yaml
+     , random-shuffle, scotty, stm, stm-containers, store
+     , template-haskell, text, text-format-heavy, unix, unix-bytestring
+     , unordered-containers, vector, wai, warp, yaml
      }:
      mkDerivation {
        pname = "hcheckers";
-       version = "0.1.0.0";
-       sha256 = "17px41lgaqxpwmmj315s49hnchq5pn017k58wcla8cmw4n3a2aw0";
-       revision = "1";
-       editedCabalFile = "1bfm9wndgwz18gxws456h4faw3fa6d1020kxjc7b3rzb9c0nr2vq";
+       version = "0.1.0.1";
+       sha256 = "1l4cj7v4scnz5cq05294ym4gyv163ry09bpxp1vg1m1v88ww5i2w";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -123064,9 +125138,10 @@ self: {
          concurrent-extra containers data-default directory ekg ekg-core
          exceptions fast-logger filepath hashable hashtables heavy-logger
          hsyslog http-types megaparsec microlens monad-metrics mtl
-         mwc-random optparse-applicative psqueues random random-access-file
-         scotty stm stm-containers store template-haskell text
-         text-format-heavy unix unix-bytestring unordered-containers yaml
+         mwc-random network optparse-applicative psqueues random
+         random-access-file random-shuffle scotty stm stm-containers store
+         template-haskell text text-format-heavy unix unix-bytestring
+         unordered-containers vector wai warp yaml
        ];
        description = "Implementation of checkers (\"draughts\") board game - server application";
        license = lib.licenses.bsd3;
@@ -123087,7 +125162,7 @@ self: {
          array attoparsec base containers hlint hspec QuickCheck text
        ];
        description = "Chess library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -123262,8 +125337,10 @@ self: {
        libraryHaskellDepends = [ base unix ];
        librarySystemDepends = [ bluetooth cwiid ];
        description = "Library to interface with the wiimote";
-       license = lib.licenses.gpl2;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       license = lib.licenses.gpl2Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {bluetooth = null; inherit (pkgs) cwiid;};
 
   "hdaemonize" = callPackage
@@ -123629,7 +125706,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base directory process unix vty ];
        description = "a small display manager";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -123750,7 +125827,7 @@ self: {
        ];
        benchmarkHaskellDepends = [ base criterion deepseq primitive ];
        description = "Haskell implementation of High Dynamic Range (HDR) Histograms";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -123792,26 +125869,26 @@ self: {
      }) {};
 
   "headroom" = callPackage
-    ({ mkDerivation, aeson, base, data-default-class, doctest, either
-     , file-embed, hspec, hspec-discover, microlens, microlens-th
+    ({ mkDerivation, aeson, base, doctest, either, file-embed
+     , generic-data, hspec, hspec-discover, microlens, microlens-th, mtl
      , mustache, optparse-applicative, pcre-heavy, pcre-light
-     , QuickCheck, rio, template-haskell, time, yaml
+     , QuickCheck, rio, string-interpolate, template-haskell, time, yaml
      }:
      mkDerivation {
        pname = "headroom";
-       version = "0.3.2.0";
-       sha256 = "0770d1b8ikijkmqqnb6nygqj7cv6fphz1165x478ry61sr3i6hs3";
+       version = "0.4.1.0";
+       sha256 = "1f98x1qm567wsa58nyavj7lfi2fmm6zrmjc0cwg0dyhvi63n9qp0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base data-default-class either file-embed microlens
-         microlens-th mustache optparse-applicative pcre-heavy pcre-light
-         rio template-haskell time yaml
+         aeson base either file-embed generic-data microlens microlens-th
+         mtl mustache optparse-applicative pcre-heavy pcre-light rio
+         string-interpolate template-haskell time yaml
        ];
        executableHaskellDepends = [ base optparse-applicative rio ];
        testHaskellDepends = [
-         aeson base doctest hspec optparse-applicative pcre-light QuickCheck
-         rio time
+         aeson base doctest hspec mtl optparse-applicative pcre-light
+         QuickCheck rio string-interpolate time
        ];
        testToolDepends = [ hspec-discover ];
        description = "License Header Manager";
@@ -123854,8 +125931,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "heaps";
-       version = "0.3.6.1";
-       sha256 = "0vg39qm8g69n10ys9v9knnaq5dqdjndj6ffy0xb78bwrr3rm5mci";
+       version = "0.4";
+       sha256 = "1zbw0qrlnhb42v04phzwmizbpwg21wnpl7p4fbr9xsasp7w9scl9";
        libraryHaskellDepends = [ base ];
        description = "Asymptotically optimal Brodal/Okasaki heaps";
        license = lib.licenses.bsd3;
@@ -123971,7 +126048,7 @@ self: {
          vector
        ];
        description = "Find and annotate ITDs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -123996,7 +126073,7 @@ self: {
          pipes pipes-text safe text turtle vector
        ];
        description = "Find and annotate ITDs with assembly or read pair joining";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -124168,8 +126245,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog";
-       version = "1.0.4";
-       sha256 = "16j60k0xg74861b5a5n9brx1pgwa2yg76v8q8drmhlx46ga5fwdz";
+       version = "1.0.5";
+       sha256 = "1qsqs8lmxa3wmw228cwi98vvvh9hqbc9d43i1sy2c9igw9xlhfi6";
        libraryHaskellDepends = [
          ansi-terminal async base bytestring concurrent-output containers
          deepseq directory erf exceptions lifted-async mmorph monad-control
@@ -124220,8 +126297,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog-classes";
-       version = "0.2.5.1";
-       sha256 = "0gyq9dr25sz14yw5x8jlb73l2hzv92r1c6cfan7lygq7z0yaiw6b";
+       version = "0.2.5.2";
+       sha256 = "0h9givw1l83l8z59w6y1rjcnply297b2iag3qhy1rmcjyq3d6m0m";
        libraryHaskellDepends = [
          aeson base binary comonad containers hedgehog pretty-show primitive
          semirings silently transformers vector wl-pprint-annotated
@@ -124917,7 +126994,7 @@ self: {
          base containers Lucu mtl network regex-posix
        ];
        description = "Simple, distributed, anonymous data sharing network";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -125137,40 +127214,41 @@ self: {
      , bdw-gc, binary, binary-conduit, boost, bytestring, cachix
      , cachix-api, conduit, conduit-extra, containers, directory, dlist
      , exceptions, filepath, hercules-ci-api-agent, hercules-ci-api-core
-     , hostname, hspec, 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, nix
-     , optparse-applicative, process, protolude, safe-exceptions
-     , servant, servant-auth-client, servant-client, servant-client-core
-     , stm, temporary, text, time, tomland, transformers
-     , transformers-base, unbounded-delays, unix, unliftio
+     , hercules-ci-cnix-expr, hercules-ci-cnix-store, hostname, hspec
+     , 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, nix
+     , optparse-applicative, process, process-extras, protolude
+     , safe-exceptions, servant, servant-auth-client, servant-client
+     , servant-client-core, stm, temporary, text, time, tomland
+     , transformers, transformers-base, unbounded-delays, unix, unliftio
      , unliftio-core, unordered-containers, uuid, vector, websockets
      , wuss
      }:
      mkDerivation {
        pname = "hercules-ci-agent";
-       version = "0.7.5";
-       sha256 = "0v3wyz8fm3n6rwanjgfxws6f18kp3qmgwx5g4f0xy00mxjzswjrq";
+       version = "0.8.0";
+       sha256 = "1nwdi442ccm1x2isxdlh3rpcw627wjccdb4y40w2qna6dchx7v9z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson async base binary binary-conduit bytestring cachix conduit
-         containers dlist exceptions hercules-ci-api-agent inline-c
-         inline-c-cpp katip lifted-async lifted-base monad-control mtl
-         network-uri optparse-applicative process protolude safe-exceptions
-         stm text time transformers-base unbounded-delays unliftio
-         unliftio-core uuid websockets wuss
+         aeson async base binary binary-conduit bytestring conduit
+         containers directory dlist exceptions filepath
+         hercules-ci-api-agent hercules-ci-api-core hercules-ci-cnix-store
+         katip lens lens-aeson lifted-async lifted-base monad-control mtl
+         network-uri process process-extras protolude safe-exceptions stm
+         temporary text time transformers-base unbounded-delays unix
+         unliftio unliftio-core uuid websockets wuss
        ];
-       librarySystemDepends = [ boost ];
-       libraryPkgconfigDepends = [ bdw-gc nix ];
        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-agent
-         hercules-ci-api-core 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 protolude safe-exceptions servant
+         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 safe-exceptions 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
@@ -125181,41 +127259,69 @@ self: {
        testHaskellDepends = [
          aeson async attoparsec base binary binary-conduit bytestring
          conduit containers exceptions filepath hercules-ci-api-agent
-         hercules-ci-api-core hspec katip lifted-async lifted-base
-         monad-control optparse-applicative process protolude
+         hercules-ci-api-core hercules-ci-cnix-store hspec katip
+         lifted-async lifted-base monad-control process protolude
          safe-exceptions text transformers-base unliftio-core
        ];
-       doHaddock = false;
        description = "Runs Continuous Integration tasks on your machines";
        license = lib.licenses.asl20;
        maintainers = with lib.maintainers; [ roberth ];
      }) {bdw-gc = null; inherit (pkgs) boost; inherit (pkgs) nix;};
 
+  "hercules-ci-api" = callPackage
+    ({ mkDerivation, 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
+     }:
+     mkDerivation {
+       pname = "hercules-ci-api";
+       version = "0.6.0.0";
+       sha256 = "11ha3jvwg501n9all4v5r057qr9m9qbmbrkiv5l04mrsi5pvhpw7";
+       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
+       ];
+       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
+       ];
+       description = "Hercules CI API definition with Servant";
+       license = lib.licenses.asl20;
+       maintainers = with lib.maintainers; [ roberth ];
+     }) {};
+
   "hercules-ci-api-agent" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring-type, bytestring
-     , containers, cookie, exceptions, hashable, hercules-ci-api-core
-     , hspec, http-api-data, http-media, lens, lens-aeson, memory
-     , network-uri, profunctors, QuickCheck, servant, servant-auth
-     , servant-auth-swagger, servant-swagger, servant-swagger-ui-core
-     , string-conv, swagger2, text, time, uuid, vector
+     , containers, cookie, deepseq, exceptions, hashable
+     , hercules-ci-api-core, hspec, http-api-data, http-media, lens
+     , lens-aeson, memory, network-uri, profunctors, QuickCheck
+     , quickcheck-classes, servant, servant-auth, string-conv, swagger2
+     , text, time, uuid, vector
      }:
      mkDerivation {
        pname = "hercules-ci-api-agent";
-       version = "0.2.2.0";
-       sha256 = "1pp0ink132wwj2wzj7ficxzxhj09bl3fm62fmslrl3l579ycbp7d";
+       version = "0.3.0.0";
+       sha256 = "161ghlz5n6na4sviwyxxq78hj37yk89kri0367xx9dbsllgfc7g6";
        libraryHaskellDepends = [
          aeson base base64-bytestring-type bytestring containers cookie
-         exceptions hashable hercules-ci-api-core http-api-data http-media
-         lens lens-aeson memory servant servant-auth servant-auth-swagger
-         servant-swagger servant-swagger-ui-core string-conv swagger2 text
-         time uuid vector
+         deepseq exceptions hashable hercules-ci-api-core http-api-data
+         http-media lens lens-aeson memory servant servant-auth string-conv
+         swagger2 text time uuid vector
        ];
        testHaskellDepends = [
          aeson base bytestring containers cookie exceptions hashable hspec
          http-api-data http-media lens memory network-uri profunctors
-         QuickCheck servant servant-auth servant-auth-swagger
-         servant-swagger servant-swagger-ui-core string-conv swagger2 text
-         time uuid
+         QuickCheck quickcheck-classes servant servant-auth string-conv
+         swagger2 text time uuid vector
        ];
        description = "API definition for Hercules CI Agent to talk to hercules-ci.com or Hercules CI Enterprise";
        license = lib.licenses.asl20;
@@ -125224,17 +127330,17 @@ self: {
 
   "hercules-ci-api-core" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, cookie
-     , exceptions, hashable, http-api-data, http-media, katip, lens
-     , lifted-base, memory, monad-control, safe-exceptions, servant
-     , servant-auth, servant-auth-swagger, servant-swagger
+     , 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
      }:
      mkDerivation {
        pname = "hercules-ci-api-core";
-       version = "0.1.1.0";
-       sha256 = "19qxbarnl65gqg52ysl12nggyc64860chdcl0vm3i3fny4vsqbcq";
+       version = "0.1.2.0";
+       sha256 = "1p2vv5dviac73qi42x7kf09wgc3qjdkpldn7yj5vhmxhcnj7yj6x";
        libraryHaskellDepends = [
-         aeson base bytestring containers cookie exceptions hashable
+         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
@@ -125245,6 +127351,86 @@ self: {
        maintainers = with lib.maintainers; [ roberth ];
      }) {};
 
+  "hercules-ci-cli" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, atomic-write, attoparsec
+     , base, bytestring, conduit, containers, data-has, directory
+     , exceptions, filepath, hercules-ci-agent, hercules-ci-api
+     , 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, katip
+     , lifted-base, monad-control, network-uri, process, protolude
+     , QuickCheck, rio, safe-exceptions, servant, servant-auth-client
+     , servant-client, servant-client-core, servant-conduit, temporary
+     , text, transformers-base, unix, unliftio, unordered-containers
+     }:
+     mkDerivation {
+       pname = "hercules-ci-cli";
+       version = "0.1.0";
+       sha256 = "1fcg1fd2jd0334nhwsipyf468a4kkdhbibyhhjyspqagswaanm9q";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty atomic-write attoparsec base bytestring conduit
+         containers data-has directory exceptions filepath hercules-ci-agent
+         hercules-ci-api hercules-ci-api-core hercules-ci-cnix-expr
+         hercules-ci-cnix-store hercules-ci-optparse-applicative hostname
+         http-client http-client-tls http-types katip lifted-base
+         monad-control network-uri process protolude rio safe-exceptions
+         servant servant-auth-client servant-client servant-client-core
+         servant-conduit temporary text transformers-base unix unliftio
+         unordered-containers
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         aeson base bytestring containers hspec protolude QuickCheck
+         unordered-containers
+       ];
+       description = "The hci command for working with Hercules CI";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ roberth ];
+       broken = true;
+     }) {hercules-ci-optparse-applicative = null;};
+
+  "hercules-ci-cnix-expr" = callPackage
+    ({ mkDerivation, aeson, base, bdw-gc, boost, bytestring, conduit
+     , containers, exceptions, hercules-ci-cnix-store, inline-c
+     , inline-c-cpp, nix, protolude, text
+     }:
+     mkDerivation {
+       pname = "hercules-ci-cnix-expr";
+       version = "0.1.0.0";
+       sha256 = "1f9pq6z5xvmq7hd136dshazybazydsmah5f5h8w82yi12ccyqlaz";
+       libraryHaskellDepends = [
+         aeson base bytestring conduit containers exceptions
+         hercules-ci-cnix-store inline-c inline-c-cpp protolude text
+       ];
+       librarySystemDepends = [ boost ];
+       libraryPkgconfigDepends = [ bdw-gc nix ];
+       description = "Bindings for the Nix evaluator";
+       license = lib.licenses.asl20;
+       maintainers = with lib.maintainers; [ roberth ];
+     }) {bdw-gc = null; inherit (pkgs) boost; inherit (pkgs) nix;};
+
+  "hercules-ci-cnix-store" = callPackage
+    ({ mkDerivation, base, boost, bytestring, conduit, containers
+     , inline-c, inline-c-cpp, nix, protolude, unliftio-core
+     }:
+     mkDerivation {
+       pname = "hercules-ci-cnix-store";
+       version = "0.1.0.0";
+       sha256 = "1ni83x2453ii2xgq4ihhr41jbjhgga5dq5q8560f555fwrw10brz";
+       libraryHaskellDepends = [
+         base bytestring conduit containers inline-c inline-c-cpp protolude
+         unliftio-core
+       ];
+       librarySystemDepends = [ boost ];
+       libraryPkgconfigDepends = [ nix ];
+       description = "Haskell bindings for Nix's libstore";
+       license = lib.licenses.asl20;
+       maintainers = with lib.maintainers; [ roberth ];
+     }) {inherit (pkgs) boost; inherit (pkgs) nix;};
+
   "here" = callPackage
     ({ mkDerivation, base, haskell-src-meta, mtl, parsec
      , template-haskell
@@ -125366,7 +127552,7 @@ self: {
          mtl optparse-applicative semigroups split vty
        ];
        description = "A command-line manager for delicious kitchen recipes";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -125680,6 +127866,8 @@ self: {
        testSystemDepends = [ secp256k1 ];
        description = "Ethereum virtual machine evaluator";
        license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libff; inherit (pkgs) secp256k1;};
 
   "hevolisa" = callPackage
@@ -125732,14 +127920,13 @@ self: {
      }) {};
 
   "hex-text" = callPackage
-    ({ mkDerivation, base, base16-bytestring, bytestring, doctest, text
-     }:
+    ({ mkDerivation, base, base16-bytestring, bytestring, text }:
      mkDerivation {
        pname = "hex-text";
-       version = "0.1.0.2";
-       sha256 = "0wgqm1ziblgljrh679i44gvdq7bqym37y1lnnpb1mk7qlv664c9h";
+       version = "0.1.0.4";
+       sha256 = "03nlm2axcb29jlx797krfac65fb2f3xbcw7lp3klrnznkagb8884";
        libraryHaskellDepends = [ base base16-bytestring bytestring text ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ base bytestring text ];
        description = "ByteString-Text hexidecimal conversions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -125925,17 +128112,18 @@ self: {
      }) {};
 
   "hexpat-streamparser" = callPackage
-    ({ mkDerivation, base, bytestring, hexpat, List, mtl
-     , parser-combinators, text, transformers
+    ({ mkDerivation, base, bytestring, cps-except, hexpat, hspec, List
+     , mtl, parser-combinators, text, transformers
      }:
      mkDerivation {
        pname = "hexpat-streamparser";
-       version = "0.0.2";
-       sha256 = "11g78dkr9dp4kgz8zmckgq66587qahdhxyhcn03ajr0b07ab27z3";
+       version = "0.1.2";
+       sha256 = "03gxahl0lxi30k1ihni7j5xsbzmhlwxdgckw37lm5m2p6xfyagii";
        libraryHaskellDepends = [
-         base bytestring hexpat List mtl parser-combinators text
+         base bytestring cps-except hexpat List mtl parser-combinators text
          transformers
        ];
+       testHaskellDepends = [ base hexpat hspec ];
        license = lib.licenses.bsd3;
      }) {};
 
@@ -126017,6 +128205,8 @@ self: {
        testHaskellDepends = [ base binary bytestring hspec text ];
        description = "Fast and safe representation of a hex string";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hext" = callPackage
@@ -126056,8 +128246,8 @@ self: {
      }:
      mkDerivation {
        pname = "hextream";
-       version = "0.2.0.0";
-       sha256 = "045q4glzqdl79w4baq4yvqjiqaih48p2iixkb3dv96nwmgr8xl8r";
+       version = "0.3.0.0";
+       sha256 = "05i479zv5j0fyd9nr4c0pgrfkvyngvvw54lqipvzwdkccljs17i8";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base base-compat containers parsers text
@@ -126113,8 +128303,8 @@ self: {
      }:
      mkDerivation {
        pname = "heyting-algebras";
-       version = "0.0.2.0";
-       sha256 = "027gdi1lqlj3xcsl4zzfflfswlz76an7in63xvjsx0gs9pxqny1j";
+       version = "0.2.0.1";
+       sha256 = "0k1sf6wj9r8c4rlaxj31x7yafl4wacx2kang9qs4253v0z7n1303";
        libraryHaskellDepends = [
          base containers free-algebras hashable lattices semiring-simple
          tagged universe-base unordered-containers
@@ -126442,53 +128632,67 @@ self: {
 
   "hgeometry" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, bytestring, containers
-     , data-clist, deepseq, dlist, doctest, doctest-discover, fingertree
-     , fixed-vector, hashable, hgeometry-combinatorial, hspec, lens
-     , linear, MonadRandom, mtl, primitive, QuickCheck
+     , data-clist, deepseq, deepseq-generics, dlist, doctest
+     , doctest-discover, fingertree, fixed-vector, hashable
+     , hgeometry-combinatorial, hspec, lens, linear, MonadRandom, mtl
+     , nonempty-vector, optparse-applicative, primitive, QuickCheck
      , quickcheck-instances, random, reflection, semigroupoids
-     , semigroups, template-haskell, text, vector, vector-builder, vinyl
-     , yaml
+     , semigroups, tasty-bench, template-haskell, text, vector
+     , vector-algorithms, vector-builder, vector-circular, vinyl, yaml
      }:
      mkDerivation {
        pname = "hgeometry";
-       version = "0.11.0.0";
-       sha256 = "1vbj26j06byz9x0c03q5k7fijl31hsi7x9f5wfr2w9g96d7zl3ls";
-       enableSeparateDataOutput = true;
+       version = "0.12.0.1";
+       sha256 = "12qd960njarmsy1a9b6w6jkjqb05xvmg5261n1xhx3lf70xvffj2";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          aeson base bifunctors bytestring containers data-clist deepseq
          dlist fingertree fixed-vector hashable hgeometry-combinatorial
-         hspec lens linear MonadRandom mtl primitive QuickCheck
-         quickcheck-instances random reflection semigroupoids semigroups
-         template-haskell text vector vector-builder vinyl yaml
+         hspec lens linear MonadRandom mtl nonempty-vector primitive
+         QuickCheck quickcheck-instances random reflection semigroupoids
+         semigroups template-haskell text vector vector-algorithms
+         vector-builder vector-circular vinyl yaml
+       ];
+       testHaskellDepends = [
+         base doctest doctest-discover QuickCheck quickcheck-instances
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers deepseq deepseq-generics dlist
+         fixed-vector hashable hgeometry-combinatorial lens linear
+         MonadRandom mtl optparse-applicative QuickCheck semigroupoids
+         semigroups tasty-bench vector vector-circular vinyl
        ];
-       testHaskellDepends = [ base doctest doctest-discover QuickCheck ];
        description = "Geometric Algorithms, Data structures, and Data types";
        license = lib.licenses.bsd3;
      }) {};
 
   "hgeometry-combinatorial" = callPackage
-    ({ mkDerivation, aeson, approximate-equality, base, bifunctors
-     , bytestring, containers, contravariant, data-clist, deepseq
-     , directory, dlist, doctest, filepath, fingertree, hashable, hspec
-     , hspec-discover, lens, linear, MonadRandom, mtl, primitive
-     , QuickCheck, quickcheck-instances, random, reflection
-     , semigroupoids, semigroups, singletons, template-haskell, text
-     , vector, vector-builder, vinyl, yaml
+    ({ mkDerivation, aeson, approximate-equality, array, base
+     , bifunctors, bytestring, containers, contravariant, data-clist
+     , deepseq, directory, dlist, doctest, filepath, fingertree
+     , hashable, hspec, hspec-discover, lens, linear, math-functions
+     , MonadRandom, mtl, nonempty-vector, primitive, QuickCheck
+     , quickcheck-instances, random, reflection, semigroupoids
+     , semigroups, singletons, template-haskell, text
+     , unordered-containers, vector, vector-builder, vector-circular
+     , vinyl, yaml
      }:
      mkDerivation {
        pname = "hgeometry-combinatorial";
-       version = "0.11.0.0";
-       sha256 = "0qhb4aflqcjjm1qnhq7xsd086pk09gnq7q503ys4kzr8j0knc2j5";
+       version = "0.12.0.1";
+       sha256 = "0767c7ljw674zbj57nw3dsq2h56x6gw1r6ihyd2jg7djbf5k13ar";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base bifunctors bytestring containers contravariant
+         aeson array base bifunctors bytestring containers contravariant
          data-clist deepseq dlist fingertree hashable lens linear
-         MonadRandom mtl primitive QuickCheck quickcheck-instances random
-         reflection semigroupoids semigroups template-haskell text vector
-         vector-builder vinyl yaml
+         math-functions MonadRandom mtl nonempty-vector primitive QuickCheck
+         quickcheck-instances random reflection semigroupoids semigroups
+         template-haskell text unordered-containers vector vector-builder
+         vector-circular vinyl yaml
        ];
        testHaskellDepends = [
-         approximate-equality base bytestring containers data-clist
+         approximate-equality base bytestring containers data-clist deepseq
          directory doctest filepath hspec lens linear MonadRandom QuickCheck
          quickcheck-instances random semigroups singletons vector vinyl yaml
        ];
@@ -126758,7 +128962,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [ base directory hspec ];
        description = "Unofficial bindings for GRIB API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {grib_api = null;};
@@ -126848,6 +129052,8 @@ self: {
        ];
        description = "Generate scaffold for cabal project";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hi-file-parser" = callPackage
@@ -126864,6 +129070,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hi-file-parser_0_1_1_0" = callPackage
+    ({ mkDerivation, base, binary, bytestring, hspec, rio, vector }:
+     mkDerivation {
+       pname = "hi-file-parser";
+       version = "0.1.1.0";
+       sha256 = "1wb79m6vx7dz4hrvyk2h1iv6q36g9hhywls5ygam7pmw9c4rs3sq";
+       revision = "2";
+       editedCabalFile = "1495j6ky44r660yr5szy2ln96rdhakh0fhnw749g2yyx5l0gwcrs";
+       libraryHaskellDepends = [ base binary bytestring rio vector ];
+       testHaskellDepends = [ base binary bytestring hspec rio vector ];
+       description = "Parser for GHC's hi files";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hi3status" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, dbus, dyre
      , network, prefix-units, process, regex-pcre-builtin, text, time
@@ -126987,6 +129208,23 @@ self: {
        license = lib.licenses.mit;
      }) {inherit (pkgs) systemd;};
 
+  "hidapi_0_1_6" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, deepseq-generics
+     , systemd
+     }:
+     mkDerivation {
+       pname = "hidapi";
+       version = "0.1.6";
+       sha256 = "1dy5sbfh8rkzrjpn5ls5xbr32ja0h6bgigzya512advc4c21af2b";
+       libraryHaskellDepends = [
+         base bytestring deepseq deepseq-generics
+       ];
+       librarySystemDepends = [ systemd ];
+       description = "Haskell bindings to HIDAPI";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) systemd;};
+
   "hidden-char" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -127007,14 +129245,14 @@ self: {
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring
      , conduit, conduit-extra, containers, cryptohash-sha1, deepseq
      , directory, extra, file-embed, filepath, ghc, hslogger
-     , hspec-expectations, process, tasty, tasty-expected-failure
-     , tasty-hunit, temporary, text, time, transformers, unix-compat
-     , unordered-containers, vector, yaml
+     , hspec-expectations, optparse-applicative, process, tasty
+     , tasty-expected-failure, tasty-hunit, temporary, text, time
+     , transformers, unix-compat, unordered-containers, vector, yaml
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.7.2";
-       sha256 = "0cff9kf4qnfkfzvxhxi0hh54x013g5sg0xcw0vpsarc3a91p7da8";
+       version = "0.7.5";
+       sha256 = "0k8g1qkxqqa0ld15s82mvkgsm4icm65dkabsv8sd2mkrhck0lfw8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -127023,7 +129261,9 @@ self: {
          filepath ghc hslogger process temporary text time transformers
          unix-compat unordered-containers vector yaml
        ];
-       executableHaskellDepends = [ base directory filepath ghc ];
+       executableHaskellDepends = [
+         base directory filepath ghc optparse-applicative
+       ];
        testHaskellDepends = [
          base directory extra filepath ghc hspec-expectations tasty
          tasty-expected-failure tasty-hunit temporary text
@@ -127110,8 +129350,6 @@ self: {
        ];
        description = "Generates a references DB from .hie files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hieraclus" = callPackage
@@ -127201,7 +129439,7 @@ self: {
          filepath hmatrix lens optparse-generic safe text text-show vector
        ];
        description = "Hierarchical spectral clustering of a graph";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -127274,8 +129512,8 @@ self: {
      }:
      mkDerivation {
        pname = "higgledy";
-       version = "0.4.1.0";
-       sha256 = "1z67vip2appsl4f2qf70pqdnyjp6byaa4n3x8scp1aa94hg1xj3h";
+       version = "0.4.1.1";
+       sha256 = "1aqln8y055ysnzw3sqfdi6rm63a4a8c3n3f4fgv1rqmx76vsvsaz";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          barbies base generic-lens generic-lens-core named QuickCheck
@@ -127520,6 +129758,8 @@ self: {
        pname = "hills";
        version = "0.1.2.7";
        sha256 = "0zq402ycyxaw9rpxlgj0307xz80qw1159albzw1q0sr4lxfxykcv";
+       revision = "1";
+       editedCabalFile = "1wjln7r8q8dhvq4i5svlhk4zfypibi1cjx75jffc1aq54xy0qq3s";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -127567,7 +129807,7 @@ self: {
          base bytestring directory gtk HTTP http-conduit network temporary
        ];
        description = "Simple gtk2hs image viewer. Point it at an image and fire away.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -127749,23 +129989,23 @@ self: {
 
   "hinit" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, exceptions
-     , fused-effects, generic-lens, Glob, haskeline, lens, megaparsec
-     , mustache, optparse-applicative, parser-combinators, path, path-io
+     , fused-effects, Glob, haskeline, megaparsec, mustache, optics-core
+     , optparse-applicative, parser-combinators, path, path-io
      , prettyprinter, prettyprinter-ansi-terminal, process
      , quickcheck-text, spdx-license, string-interpolate, text, time
      , tomland
      }:
      mkDerivation {
        pname = "hinit";
-       version = "0.2.0";
-       sha256 = "1iklwj1kzv7nbb4bnrj0idfb0k26jjpw51mkbib73j4jpciah01v";
+       version = "0.2.1";
+       sha256 = "10lhx18g50f24l867kjqgb2qpky3vvx7w7s4sc3pidr3hc0ams3g";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base Cabal containers directory exceptions fused-effects
-         generic-lens Glob haskeline lens megaparsec mustache
-         optparse-applicative parser-combinators path path-io prettyprinter
+         base Cabal containers directory exceptions fused-effects Glob
+         haskeline megaparsec mustache optics-core optparse-applicative
+         parser-combinators path path-io prettyprinter
          prettyprinter-ansi-terminal process spdx-license string-interpolate
          text time tomland
        ];
@@ -127775,8 +130015,7 @@ self: {
        ];
        description = "Generic project initialization tool";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ poscat ];
      }) {};
 
   "hinotify_0_3_9" = callPackage
@@ -127872,8 +130111,8 @@ self: {
      }:
      mkDerivation {
        pname = "hint";
-       version = "0.9.0.3";
-       sha256 = "0kp2hngmk2sf4ariv02rgrrd190zzb7nlk0pj8fq7rsckcxc87ra";
+       version = "0.9.0.4";
+       sha256 = "0hdhnkldscq3hp5xn5ns79f6cd6bw6ih6k550d5c38sdqypx73ns";
        libraryHaskellDepends = [
          base directory exceptions filepath ghc ghc-boot ghc-paths random
          temporary transformers unix
@@ -128553,7 +130792,7 @@ self: {
          tasty-quickcheck text transformers unordered-containers
        ];
        description = "Majority Judgment";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hjugement-cli" = callPackage
@@ -128582,7 +130821,7 @@ self: {
          time transformers unix unordered-containers
        ];
        description = "Majority Judgment and Helios-C command line tool";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -128611,7 +130850,7 @@ self: {
          transformers
        ];
        description = "A cryptographic protocol for the Majority Judgment";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hkd" = callPackage
@@ -128620,8 +130859,8 @@ self: {
        pname = "hkd";
        version = "0.1";
        sha256 = "1xz0i8lkh0rp55b0s7npkzqgyz9pf1bwq9b66cwbg073r9sz41wa";
-       revision = "1";
-       editedCabalFile = "09inakgqdwqifha2whvjfx6imx642zfinw8faxgjiv55ncm04zhr";
+       revision = "2";
+       editedCabalFile = "19z00b29z095fp9jxp0n7k1dgm980j9i94aysqd0mm1yjvxvn1k5";
        libraryHaskellDepends = [ base some ];
        testHaskellDepends = [ base some ];
        description = "\"higher-kinded data\"";
@@ -128679,22 +130918,22 @@ self: {
      }) {};
 
   "hkgr" = callPackage
-    ({ mkDerivation, base, directory, extra, filepath, simple-cabal
-     , simple-cmd, simple-cmd-args, xdg-basedir
+    ({ mkDerivation, base, bytestring, directory, extra, filepath
+     , simple-cabal, simple-cmd-args, typed-process, xdg-basedir
      }:
      mkDerivation {
        pname = "hkgr";
-       version = "0.2.6.1";
-       sha256 = "0hq059l3byw3vcxw56z341q56xnb86kdqj5vnn16v29ql677xm26";
+       version = "0.2.7";
+       sha256 = "1p03qigrfkjj0q8ps9gx50pnz6s2rdmn2lqnybhfz8pifsqj0z7k";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        executableHaskellDepends = [
-         base directory extra filepath simple-cabal simple-cmd
-         simple-cmd-args xdg-basedir
+         base bytestring directory extra filepath simple-cabal
+         simple-cmd-args typed-process xdg-basedir
        ];
        description = "Simple Hackage release workflow for package maintainers";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hkt" = callPackage
@@ -128809,8 +131048,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.20.4";
-       sha256 = "1fsdh4k0lrlx3n81hns8h2dh917i0cmh1iax55d9q7jlxvy5bq95";
+       version = "1.21";
+       sha256 = "07fcfkmv4cy92njnf2qc7jh0naz96q962hxldcd7hk4k7ddv0mss";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -128838,7 +131077,7 @@ self: {
          utility-ht wizards
        ];
        description = "Command-line interface for the hledger accounting system";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
@@ -128863,7 +131102,7 @@ self: {
          wai-extra warp
        ];
        description = "Web API server for the hledger accounting tool";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -128898,7 +131137,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base hledger-lib text time ];
        description = "Compares the transactions in two ledger files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hledger-flow" = callPackage
@@ -128923,7 +131162,7 @@ self: {
          base containers foldl HUnit path path-io stm text turtle
        ];
        description = "An hledger workflow focusing on automated statement import and classification";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hledger-iadd" = callPackage
@@ -128935,10 +131174,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-iadd";
-       version = "1.3.12";
-       sha256 = "0klrqss2ch4yi50m1rybznzsjg4ahbx7rg9n8w5svpf34fdlp048";
-       revision = "2";
-       editedCabalFile = "1n43j7fh3d9f8jn1y40vhkfh7yfwb4sixm3wyrfj20mkr7yyr732";
+       version = "1.3.14";
+       sha256 = "0kcw8yp9g6cj6amc4rh8iwzd4zh5v68ns8sf5rv4hfa4xj928iy5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -128966,10 +131203,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-interest";
-       version = "1.6.0";
-       sha256 = "0s0pmdm1vk4ib5ncs9mxyzr3dx5m6ji9778kddzqwxc9y9gvq5sq";
-       revision = "1";
-       editedCabalFile = "10v3fwyzbaqzrldaswvn031hncxy2sra302n10k4zkxg41bz7f73";
+       version = "1.6.1";
+       sha256 = "0i97y7rs5kd2dqk3qwd2jg17vs9ib4yvkaqlljnb32x16gphpvhc";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -129006,20 +131241,20 @@ self: {
      , cassava, cassava-megaparsec, cmdargs, containers, data-default
      , Decimal, directory, doctest, extra, file-embed, filepath, Glob
      , hashtables, megaparsec, mtl, old-time, parser-combinators
-     , pretty-simple, regex-tdfa, safe, split, tabular, tasty
-     , tasty-hunit, template-haskell, text, time, timeit, transformers
-     , uglymemo, unordered-containers, utf8-string
+     , pretty-simple, regex-tdfa, safe, tabular, tasty, tasty-hunit
+     , template-haskell, text, time, timeit, transformers, uglymemo
+     , unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.20.4";
-       sha256 = "17fs3jh3wx1hgzijqpw0s57hq6hq43fadplmqkcjw1ikgm8h0zyw";
+       version = "1.21";
+       sha256 = "00prslqk8vnbyz388cpc0nsamzy8xcjzday5q9n3m9lx4p2dhb5y";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal array base base-compat-batteries
          blaze-markup bytestring call-stack cassava cassava-megaparsec
          cmdargs containers data-default Decimal directory extra file-embed
          filepath Glob hashtables megaparsec mtl old-time parser-combinators
-         pretty-simple regex-tdfa safe split tabular tasty tasty-hunit
+         pretty-simple regex-tdfa safe tabular tasty tasty-hunit
          template-haskell text time timeit transformers uglymemo
          unordered-containers utf8-string
        ];
@@ -129028,12 +131263,12 @@ self: {
          blaze-markup bytestring call-stack cassava cassava-megaparsec
          cmdargs containers data-default Decimal directory doctest extra
          file-embed filepath Glob hashtables megaparsec mtl old-time
-         parser-combinators pretty-simple regex-tdfa safe split tabular
-         tasty tasty-hunit template-haskell text time timeit transformers
-         uglymemo unordered-containers utf8-string
+         parser-combinators pretty-simple regex-tdfa safe tabular tasty
+         tasty-hunit template-haskell text time timeit transformers uglymemo
+         unordered-containers utf8-string
        ];
        description = "A reusable library providing the core functionality of hledger";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hledger-makeitso" = callPackage
@@ -129054,7 +131289,7 @@ self: {
          base containers foldl HUnit stm text turtle
        ];
        description = "An hledger workflow focusing on automated statement import and classification";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hledger-stockquotes" = callPackage
@@ -129089,8 +131324,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.20.4";
-       sha256 = "0y9jyv4mphzyla70z365l5dwg50chsng011bazzpfwr6w889803i";
+       version = "1.21";
+       sha256 = "1h9d686z0y8cvq6780g6r8fdrs76y9649js0c350b6xnhzggbx0l";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -129100,7 +131335,7 @@ self: {
          split text text-zipper time transformers unix vector vty
        ];
        description = "Curses-style terminal interface for the hledger accounting system";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
@@ -129136,8 +131371,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.20.4";
-       sha256 = "06psp5r6blj3s1z8zg515jgw58pyxy43qinh5cl161fxcl8ldfn4";
+       version = "1.21";
+       sha256 = "0ivszqcypw0j2wn4r7fv7dqm1pvr0b1y6rqpxagzyk8cxn3ic9g2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -129155,7 +131390,7 @@ self: {
          base hledger hledger-lib hspec text yesod yesod-test
        ];
        description = "Web-based user interface for the hledger accounting system";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
@@ -129170,7 +131405,7 @@ self: {
        libraryPkgconfigDepends = [ libbladeRF ];
        testHaskellDepends = [ base hlint ];
        description = "Haskell binding to libBladeRF SDR library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) libbladeRF;};
@@ -129247,7 +131482,7 @@ self: {
        license = lib.licenses.mit;
      }) {inherit (pkgs) libsass;};
 
-  "hlint" = callPackage
+  "hlint_3_2_7" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
      , containers, cpphs, data-default, directory, extra, file-embed
      , filepath, filepattern, ghc, ghc-boot, ghc-boot-th
@@ -129270,7 +131505,32 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Source code suggestions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "hlint" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
+     , containers, cpphs, data-default, directory, extra, file-embed
+     , filepath, filepattern, ghc-lib-parser, ghc-lib-parser-ex
+     , hscolour, process, refact, text, transformers, uniplate
+     , unordered-containers, utf8-string, vector, yaml
+     }:
+     mkDerivation {
+       pname = "hlint";
+       version = "3.3";
+       sha256 = "1cbmaw3ikni2fqkzyngc6qwg8k6ighy48979msfs97qg0kxjmbbd";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal base bytestring cmdargs containers cpphs
+         data-default directory extra file-embed filepath filepattern
+         ghc-lib-parser ghc-lib-parser-ex hscolour process refact text
+         transformers uniplate unordered-containers utf8-string vector yaml
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Source code suggestions";
+       license = lib.licenses.bsd3;
      }) {};
 
   "hlint-test" = callPackage
@@ -129407,16 +131667,16 @@ self: {
 
   "hls-class-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, ghc, ghc-exactprint
-     , ghcide, haskell-lsp, hls-plugin-api, lens, shake, text
-     , transformers, unordered-containers
+     , ghcide, hls-plugin-api, lens, lsp, shake, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "hls-class-plugin";
-       version = "0.1.0.1";
-       sha256 = "198r8kly4fgm9xsngkzhljbq1j764asc0xba757zasmgndvri2r7";
+       version = "1.0.0.0";
+       sha256 = "103rswyrbs35q6mmv19bnj4cp4r1n5mx6aazcabfakh1cix0fn60";
        libraryHaskellDepends = [
-         aeson base containers ghc ghc-exactprint ghcide haskell-lsp
-         hls-plugin-api lens shake text transformers unordered-containers
+         aeson base containers ghc ghc-exactprint ghcide hls-plugin-api lens
+         lsp shake text transformers unordered-containers
        ];
        description = "Class/instance management plugin for Haskell Language Server";
        license = lib.licenses.asl20;
@@ -129425,21 +131685,21 @@ self: {
   "hls-eval-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, Diff, directory
      , dlist, extra, filepath, ghc, ghc-boot-th, ghc-paths, ghcide
-     , hashable, haskell-lsp, haskell-lsp-types, hls-plugin-api, lens
-     , megaparsec, mtl, parser-combinators, pretty-simple, QuickCheck
-     , safe-exceptions, shake, temporary, text, time, transformers
+     , hashable, hls-plugin-api, lens, lsp, lsp-types, megaparsec, mtl
+     , parser-combinators, pretty-simple, QuickCheck, safe-exceptions
+     , shake, temporary, text, time, transformers, unliftio
      , unordered-containers
      }:
      mkDerivation {
        pname = "hls-eval-plugin";
-       version = "0.2.0.0";
-       sha256 = "0l85qia3gsdafxmkidr26sxgajvp46hcphkb1l8vm6q7h6jgj0d5";
+       version = "1.0.0.0";
+       sha256 = "0pslyhgvs6xrwijkyf4jdh873mnsb8iijmkbc9aq3dljdy080fdg";
        libraryHaskellDepends = [
          aeson base containers deepseq Diff directory dlist extra filepath
-         ghc ghc-boot-th ghc-paths ghcide hashable haskell-lsp
-         haskell-lsp-types hls-plugin-api lens megaparsec mtl
-         parser-combinators pretty-simple QuickCheck safe-exceptions shake
-         temporary text time transformers unordered-containers
+         ghc ghc-boot-th ghc-paths ghcide hashable hls-plugin-api lens lsp
+         lsp-types megaparsec mtl parser-combinators pretty-simple
+         QuickCheck safe-exceptions shake temporary text time transformers
+         unliftio unordered-containers
        ];
        description = "Eval plugin for Haskell Language Server";
        license = lib.licenses.asl20;
@@ -129460,56 +131720,39 @@ self: {
        ];
        description = "Common utilities to interaction between ghc-exactprint and HLS plugins";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-explicit-imports-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, ghc, ghcide
-     , haskell-lsp-types, hls-plugin-api, shake, text
-     , unordered-containers
+     , hls-plugin-api, lsp, lsp-types, shake, text, unordered-containers
      }:
      mkDerivation {
        pname = "hls-explicit-imports-plugin";
-       version = "0.1.0.0";
-       sha256 = "0il51ndiw16h5kgclwzx8p1pwv6ph808406bh52nq1bjyadlwkk2";
+       version = "1.0.0.0";
+       sha256 = "14j89l8pkxrffllg06fj6215xqdswrbndyv5xa22f0g00acmwi6w";
        revision = "1";
-       editedCabalFile = "1mmsgs0n0x0q8zdzc617pi24wadgjr7hxrwqw6ihv004ahzdmjms";
-       libraryHaskellDepends = [
-         aeson base containers deepseq ghc ghcide haskell-lsp-types
-         hls-plugin-api shake text unordered-containers
-       ];
-       description = "Explicit imports plugin for Haskell Language Server";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "hls-explicit-imports-plugin_0_1_0_1" = callPackage
-    ({ mkDerivation, aeson, base, containers, deepseq, ghc, ghcide
-     , haskell-lsp-types, hls-plugin-api, shake, text
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "hls-explicit-imports-plugin";
-       version = "0.1.0.1";
-       sha256 = "0n36yk21wh9wklp8bnrg4b6qck2nf34m8p3fpilwpnzfchk6wr1y";
+       editedCabalFile = "0gch9wkz1h4g06xc48jhvs06jji9d0npa2zrj2gv1cbf6hjs0s92";
        libraryHaskellDepends = [
-         aeson base containers deepseq ghc ghcide haskell-lsp-types
-         hls-plugin-api shake text unordered-containers
+         aeson base containers deepseq ghc ghcide hls-plugin-api lsp
+         lsp-types shake text unordered-containers
        ];
        description = "Explicit imports plugin for Haskell Language Server";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hls-haddock-comments-plugin" = callPackage
     ({ mkDerivation, base, containers, ghc, ghc-exactprint, ghcide
-     , haskell-lsp-types, hls-plugin-api, text, unordered-containers
+     , hls-plugin-api, lsp-types, text, unordered-containers
      }:
      mkDerivation {
        pname = "hls-haddock-comments-plugin";
-       version = "0.1.1.0";
-       sha256 = "1kqkdbwx34k109dk3bl57hk2mcqw1cjj7l5382qfwy5bky4zjihn";
+       version = "1.0.0.0";
+       sha256 = "1azy3rrbdi465c65f603ycj14mz1cvc9h92rrf0b0frs90hs66r3";
        libraryHaskellDepends = [
-         base containers ghc ghc-exactprint ghcide haskell-lsp-types
-         hls-plugin-api text unordered-containers
+         base containers ghc ghc-exactprint ghcide hls-plugin-api lsp-types
+         text unordered-containers
        ];
        description = "Haddock comments plugin for Haskell Language Server";
        license = lib.licenses.asl20;
@@ -129518,37 +131761,38 @@ self: {
   "hls-hlint-plugin" = callPackage
     ({ mkDerivation, aeson, apply-refact, base, binary, bytestring
      , containers, data-default, deepseq, Diff, directory, extra
-     , filepath, ghc, ghc-exactprint, ghcide, hashable, haskell-lsp
-     , hlint, hls-plugin-api, hslogger, lens, regex-tdfa, shake
-     , temporary, text, transformers, unordered-containers
+     , filepath, ghc, ghc-exactprint, ghcide, hashable, hlint
+     , hls-plugin-api, hslogger, lens, lsp, regex-tdfa, shake, temporary
+     , text, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "hls-hlint-plugin";
-       version = "0.2.0.0";
-       sha256 = "0v822s8m6iy7s0sld06gwh3ly20na0624s5g4642kkb2facbhm7d";
+       version = "1.0.0.1";
+       sha256 = "0hnfh6x8l20nrj54hpkkq2yj8xkgw15xcba27hagapam2yxi1xga";
        libraryHaskellDepends = [
          aeson apply-refact base binary bytestring containers data-default
          deepseq Diff directory extra filepath ghc ghc-exactprint ghcide
-         hashable haskell-lsp hlint hls-plugin-api hslogger lens regex-tdfa
-         shake temporary text transformers unordered-containers
+         hashable hlint hls-plugin-api hslogger lens lsp regex-tdfa shake
+         temporary text transformers unordered-containers
        ];
        description = "Hlint integration plugin with Haskell Language Server";
        license = lib.licenses.asl20;
      }) {};
 
   "hls-plugin-api" = callPackage
-    ({ mkDerivation, aeson, base, containers, data-default, Diff
-     , hashable, haskell-lsp, hslogger, lens, process, regex-tdfa, shake
-     , text, unix, unordered-containers
+    ({ mkDerivation, aeson, base, containers, data-default
+     , dependent-map, dependent-sum, Diff, dlist, hashable, hslogger
+     , lens, lsp, opentelemetry, process, regex-tdfa, shake, text, unix
+     , unordered-containers
      }:
      mkDerivation {
        pname = "hls-plugin-api";
-       version = "0.7.0.0";
-       sha256 = "1cpl65ay55k3lvwsvqzwbg0c6lkzmiki2qvk6lj2dn6rcry9gk55";
+       version = "1.0.0.0";
+       sha256 = "03pj0irgf9p84jn5kfd4cfyqk4xyfdf9pfrwqhb0c1ipnm4l7wal";
        libraryHaskellDepends = [
-         aeson base containers data-default Diff hashable haskell-lsp
-         hslogger lens process regex-tdfa shake text unix
-         unordered-containers
+         aeson base containers data-default dependent-map dependent-sum Diff
+         dlist hashable hslogger lens lsp opentelemetry process regex-tdfa
+         shake text unix unordered-containers
        ];
        description = "Haskell Language Server API for plugin communication";
        license = lib.licenses.asl20;
@@ -129556,66 +131800,93 @@ self: {
 
   "hls-retrie-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, directory, extra
-     , ghc, ghcide, hashable, haskell-lsp, haskell-lsp-types
-     , hls-plugin-api, retrie, safe-exceptions, shake, text
-     , transformers, unordered-containers
+     , ghc, ghcide, hashable, hls-plugin-api, lsp, lsp-types, retrie
+     , safe-exceptions, shake, text, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "hls-retrie-plugin";
-       version = "0.1.1.0";
-       sha256 = "0wlrqqx2230xxvc1bl5gyx3cavs74c74bl4v3ib4v48wffgswbbj";
+       version = "1.0.0.0";
+       sha256 = "1m4r6nxbq1lvjkl6g1i0lbxdx4zimw6g478alnqv8n208q6fiw26";
+       libraryHaskellDepends = [
+         aeson base containers deepseq directory extra ghc ghcide hashable
+         hls-plugin-api lsp lsp-types retrie safe-exceptions shake text
+         transformers unordered-containers
+       ];
+       description = "Retrie integration plugin for Haskell Language Server";
+       license = lib.licenses.asl20;
+     }) {};
+
+  "hls-retrie-plugin_1_0_0_1" = callPackage
+    ({ mkDerivation, aeson, base, containers, deepseq, directory, extra
+     , ghc, ghcide, hashable, hls-plugin-api, lsp, lsp-types, retrie
+     , safe-exceptions, shake, text, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "hls-retrie-plugin";
+       version = "1.0.0.1";
+       sha256 = "0vshnnh8x2n0kn7hh04z00mkdmw3130b3mmfrm3z4ygia852hzmq";
        libraryHaskellDepends = [
          aeson base containers deepseq directory extra ghc ghcide hashable
-         haskell-lsp haskell-lsp-types hls-plugin-api retrie safe-exceptions
-         shake text transformers unordered-containers
+         hls-plugin-api lsp lsp-types retrie safe-exceptions shake text
+         transformers unordered-containers
        ];
        description = "Retrie integration plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hls-splice-plugin" = callPackage
-    ({ mkDerivation, aeson, base, containers, dlist, foldl, ghc
-     , ghc-exactprint, ghcide, haskell-lsp, hls-plugin-api, lens, retrie
-     , shake, syb, text, transformers, unordered-containers
+    ({ mkDerivation, aeson, base, containers, dlist, extra, foldl, ghc
+     , ghc-exactprint, ghcide, hls-plugin-api, lens, lsp, retrie, shake
+     , syb, text, transformers, unliftio-core, unordered-containers
      }:
      mkDerivation {
        pname = "hls-splice-plugin";
-       version = "0.3.0.0";
-       sha256 = "1mi9951hgq7mcwry5mdi4ywxk3jkzs47x7q4nvm2svkpvgnbfhdv";
+       version = "1.0.0.0";
+       sha256 = "1xm9ji64g89fn4b81gd5g0ijv88b2zhyn303hr3jxhydqpfcipjb";
        libraryHaskellDepends = [
-         aeson base containers dlist foldl ghc ghc-exactprint ghcide
-         haskell-lsp hls-plugin-api lens retrie shake syb text transformers
-         unordered-containers
+         aeson base containers dlist extra foldl ghc ghc-exactprint ghcide
+         hls-plugin-api lens lsp retrie shake syb text transformers
+         unliftio-core unordered-containers
        ];
        description = "HLS Plugin to expand TemplateHaskell Splices and QuasiQuotes";
        license = lib.licenses.asl20;
      }) {};
 
   "hls-tactics-plugin" = callPackage
-    ({ mkDerivation, aeson, base, checkers, containers, deepseq
-     , directory, extra, filepath, fingertree, generic-lens, ghc
-     , ghc-boot-th, ghc-exactprint, ghc-source-gen, ghcide, haskell-lsp
-     , hie-bios, hls-plugin-api, hspec, hspec-discover, lens, mtl
-     , QuickCheck, refinery, retrie, shake, syb, text, transformers
+    ({ mkDerivation, aeson, base, bytestring, checkers, containers
+     , data-default, deepseq, directory, extra, filepath, fingertree
+     , generic-lens, ghc, ghc-boot-th, ghc-exactprint, ghc-source-gen
+     , ghcide, hie-bios, hls-plugin-api, hspec, hspec-discover
+     , hspec-expectations, lens, lsp, lsp-test, lsp-types, megaparsec
+     , mtl, QuickCheck, refinery, retrie, shake, syb, tasty
+     , tasty-ant-xml, tasty-expected-failure, tasty-golden, tasty-hunit
+     , tasty-rerun, text, transformers
      }:
      mkDerivation {
        pname = "hls-tactics-plugin";
-       version = "0.5.1.0";
-       sha256 = "150hbhdj0rxiyslqfvwzqiyyc0pdvkbfjizv33ldbq8gmwn6lf52";
-       revision = "1";
-       editedCabalFile = "03g175y8hg962w7npphw9laaq9j0xf6nw6p04jd4y6d20pnjn1dl";
+       version = "1.0.0.0";
+       sha256 = "0cd6d3m3w1n7x22k5xndjl9r440s5nx6q2fg3wcmdsbd3s3pg1qa";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          aeson base containers deepseq directory extra filepath fingertree
          generic-lens ghc ghc-boot-th ghc-exactprint ghc-source-gen ghcide
-         haskell-lsp hls-plugin-api lens mtl refinery retrie shake syb text
+         hls-plugin-api lens lsp mtl refinery retrie shake syb text
          transformers
        ];
+       executableHaskellDepends = [
+         base data-default ghcide hls-plugin-api shake
+       ];
        testHaskellDepends = [
-         base checkers containers ghc hie-bios hls-plugin-api hspec mtl
-         QuickCheck
+         aeson base bytestring checkers containers data-default deepseq
+         directory filepath ghc ghcide hie-bios hls-plugin-api hspec
+         hspec-expectations lens lsp-test lsp-types megaparsec mtl
+         QuickCheck tasty tasty-ant-xml tasty-expected-failure tasty-golden
+         tasty-hunit tasty-rerun text
        ];
        testToolDepends = [ hspec-discover ];
-       description = "Tactics plugin for Haskell Language Server";
+       description = "Wingman plugin for Haskell Language Server";
        license = lib.licenses.asl20;
      }) {};
 
@@ -129694,8 +131965,8 @@ self: {
      }:
      mkDerivation {
        pname = "hmatrix";
-       version = "0.20.1";
-       sha256 = "0v690zml7yqj6ndjszwqpfsad2vma3m6rdkjs6bnb9k2v35l905i";
+       version = "0.20.2";
+       sha256 = "05462prqkbqpxfbzsgsp8waf0sirg2qz6lzsk7r1ll752n7gqkbg";
        configureFlags = [ "-fdisable-default-paths" "-fopenblas" ];
        libraryHaskellDepends = [
          array base binary bytestring deepseq primitive random semigroups
@@ -129764,7 +132035,7 @@ self: {
        libraryHaskellDepends = [ base containers hmatrix ];
        librarySystemDepends = [ glpk ];
        description = "Linear Programming based on GLPK";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {inherit (pkgs) glpk;};
 
   "hmatrix-gsl" = callPackage
@@ -129779,7 +132050,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ gsl ];
        description = "Numerical computation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {inherit (pkgs) gsl;};
 
   "hmatrix-gsl-stats" = callPackage
@@ -129841,7 +132112,7 @@ self: {
        isExecutable = true;
        libraryHaskellDepends = [ base hmatrix ];
        description = "NIPALS method for Principal Components Analysis on large data-sets";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -129904,7 +132175,7 @@ self: {
        sha256 = "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz";
        libraryHaskellDepends = [ base hmatrix hmatrix-gsl ];
        description = "Interface to GSL special functions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hmatrix-static" = callPackage
@@ -129982,7 +132253,7 @@ self: {
          base haskell-src-exts haskell-src-meta hmatrix template-haskell
        ];
        description = "MATLAB-like syntax for hmatrix vectors and matrices";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -130190,6 +132461,8 @@ self: {
        pname = "hmm-lapack";
        version = "0.4";
        sha256 = "0f0xf1fjsqqfimxx7skdwddw8zbdmas3l31y6921mxzy1syys30w";
+       revision = "1";
+       editedCabalFile = "10dg0s6nrvb93ksyzgappmr28av4k204kmc8lb3vc2ribqhpb177";
        libraryHaskellDepends = [
          base comfort-array containers deepseq explicit-exception
          fixed-length lapack lazy-csv netlib-ffi non-empty prelude-compat
@@ -130226,18 +132499,18 @@ self: {
 
   "hmp3-ng" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, clock, containers
-     , directory, hscurses, monad-extras, mtl, ncurses, pcre-light
-     , process, random, unix, utf8-string, zlib
+     , directory, filepath, hscurses, mtl, ncurses, pcre-light, process
+     , random, unix, utf8-string, zlib
      }:
      mkDerivation {
        pname = "hmp3-ng";
-       version = "2.9.3";
-       sha256 = "0h1lg4faffqf86wk2hi68x3f0y2r2nypqcvb879wal24whh31v7v";
+       version = "2.12.1";
+       sha256 = "15fm6kgdlhzz8y9mhfvmhh0dqzicifv6apsiwm964qbxhgv0ww4y";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         array base binary bytestring clock containers directory hscurses
-         monad-extras mtl pcre-light process random unix utf8-string zlib
+         array base binary bytestring clock containers directory filepath
+         hscurses mtl pcre-light process random unix utf8-string zlib
        ];
        executableSystemDepends = [ ncurses ];
        description = "A 2019 fork of an ncurses mp3 player written in Haskell";
@@ -130368,6 +132641,8 @@ self: {
        pname = "hnix";
        version = "0.12.0.1";
        sha256 = "013jlmzzr5fcvl0w9rrvhsg8jikg0hbc8z57yzxgz109x7hrnjzc";
+       revision = "1";
+       editedCabalFile = "136lwfb5hjwdbfik5c5dw1nhsmy8v410czmjn4i242s8jv5wm9yb";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -130406,46 +132681,19 @@ self: {
      }) {};
 
   "hnix-store-core" = callPackage
-    ({ mkDerivation, base, base16-bytestring, base64-bytestring, binary
-     , bytestring, containers, cryptohash-md5, cryptohash-sha1
-     , cryptohash-sha256, directory, filepath, hashable, mtl, process
-     , regex-base, regex-tdfa, saltine, tasty, tasty-discover
-     , tasty-hspec, tasty-hunit, tasty-quickcheck, temporary, text, time
-     , unix, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "hnix-store-core";
-       version = "0.2.0.0";
-       sha256 = "1gy808dzaq2jjy1xdhf3vjxzprlzn9mmbxc554sa03v8f9hc0r7h";
-       libraryHaskellDepends = [
-         base base16-bytestring binary bytestring containers cryptohash-md5
-         cryptohash-sha1 cryptohash-sha256 directory filepath hashable mtl
-         regex-base regex-tdfa saltine text time unix unordered-containers
-         vector
-       ];
-       testHaskellDepends = [
-         base base64-bytestring binary bytestring containers directory
-         process tasty tasty-discover tasty-hspec tasty-hunit
-         tasty-quickcheck temporary text
-       ];
-       testToolDepends = [ tasty-discover ];
-       description = "Core effects for interacting with the Nix store";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "hnix-store-core_0_4_1_0" = callPackage
     ({ mkDerivation, algebraic-graphs, attoparsec, base
      , base16-bytestring, base64-bytestring, binary, bytestring, cereal
      , containers, cryptohash-md5, cryptohash-sha1, cryptohash-sha256
      , cryptohash-sha512, directory, filepath, hashable, lifted-base
      , monad-control, mtl, nix-derivation, process, saltine, tasty
-     , tasty-golden, tasty-hspec, tasty-hunit, tasty-quickcheck
-     , temporary, text, time, unix, unordered-containers, vector
+     , tasty-discover, tasty-golden, tasty-hspec, tasty-hunit
+     , tasty-quickcheck, temporary, text, time, unix
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "hnix-store-core";
-       version = "0.4.1.0";
-       sha256 = "05yblps7x9r4hwszinx2s4rcfr8q1d1y6r29mn6jzydjwvdyhgj0";
+       version = "0.4.2.0";
+       sha256 = "02i7vxhpaqwyjvd6w2raxjz7r0xxs37x5b6pq9rw6l1l0k18nx5i";
        libraryHaskellDepends = [
          algebraic-graphs attoparsec base base16-bytestring
          base64-bytestring bytestring cereal containers cryptohash-md5
@@ -130458,9 +132706,9 @@ self: {
          bytestring containers directory filepath process tasty tasty-golden
          tasty-hspec tasty-hunit tasty-quickcheck temporary text unix
        ];
+       testToolDepends = [ tasty-discover ];
        description = "Core effects for interacting with the Nix store";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hnix-store-remote" = callPackage
@@ -130470,8 +132718,8 @@ self: {
      }:
      mkDerivation {
        pname = "hnix-store-remote";
-       version = "0.4.1.0";
-       sha256 = "1w6x756hh7429ci2kdsl9psxbsq8k829x802dblv652d33wl0fkc";
+       version = "0.4.2.0";
+       sha256 = "17v785dql4rl2yn1qdagvnyx8y9r3bd02npg51mfqhl49knd92fr";
        libraryHaskellDepends = [
          attoparsec base binary bytestring containers hnix-store-core mtl
          network nix-derivation text time unordered-containers
@@ -130649,7 +132897,7 @@ self: {
          base containers gtk3 gtksourceview3 hspec mtl text
        ];
        description = "A source code editor aiming for the convenience of use";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -131046,6 +133294,8 @@ self: {
        testToolDepends = [ markdown-unlit tasty-discover ];
        description = "Tools and combinators for solving constraint problems";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "holy-project" = callPackage
@@ -131123,7 +133373,7 @@ self: {
        ];
        description = "DirectSound extension (Windows) for the Hommage sound library";
        license = "GPL";
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "homoiconic" = callPackage
@@ -131146,8 +133396,10 @@ self: {
      }:
      mkDerivation {
        pname = "homotuple";
-       version = "0.1.2.1";
-       sha256 = "1jhw6mby17wz0jiqxjj59qfvcy9dgd8gm5z0ak3qzr1xrd652fa8";
+       version = "0.2.0.0";
+       sha256 = "17vr2g8jv71k2bwv5x973xjjxacr5br4xlngxjpzbq6xk9n37laf";
+       revision = "1";
+       editedCabalFile = "02l2bna56psk6zlpa1wxcvizh7y1rrwsm8mgnzv77kvym80d92cy";
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base OneTuple Only single-tuple ];
        description = "Homotuple, all whose elements are the same type";
@@ -131299,7 +133551,7 @@ self: {
          array astar base containers hfov monad-loops mtl ncurses random
        ];
        description = "A small, toy roguelike";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -131321,7 +133573,7 @@ self: {
        ];
        executableHaskellDepends = [ base cmdargs hoodle-core ];
        description = "Executable for hoodle";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -131400,7 +133652,7 @@ self: {
          unordered-containers xournal-parser
        ];
        description = "extra hoodle tools";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -131564,8 +133816,8 @@ self: {
      }:
      mkDerivation {
        pname = "hookup";
-       version = "0.5";
-       sha256 = "1kpwg5jik2z8xrw192mglacgnm2clg9yca68jzk4gk0569krysnf";
+       version = "0.6";
+       sha256 = "09rhsq0j2m1j87qsbsd3l1q3dv2zs4wrhcz2jhn4a6dx273w5528";
        libraryHaskellDepends = [
          async attoparsec base bytestring HsOpenSSL HsOpenSSL-x509-system
          network stm
@@ -131809,9 +134061,7 @@ self: {
          base haskell-src hoppy-generator hoppy-runtime
        ];
        description = "C++ FFI generator - Documentation";
-       license = lib.licenses.agpl3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "hoppy-generator" = callPackage
@@ -131827,9 +134077,7 @@ self: {
          process temporary text
        ];
        description = "C++ FFI generator - Code generator";
-       license = lib.licenses.agpl3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "hoppy-runtime" = callPackage
@@ -131845,8 +134093,6 @@ self: {
        ];
        description = "C++ FFI generator - Runtime support";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hoppy-std" = callPackage
@@ -131861,8 +134107,6 @@ self: {
        ];
        description = "C++ FFI generator - Standard library bindings";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hops" = callPackage
@@ -131915,7 +134159,7 @@ self: {
        ];
        executableToolDepends = [ alex happy ];
        description = "A language based on homotopy type theory with an interval type";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -131984,7 +134228,7 @@ self: {
          time transformers
        ];
        description = "Haskell Open Sound Control";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hosc-json" = callPackage
@@ -132083,7 +134327,7 @@ self: {
          attoparsec base bytestring data-default dns iproute network
        ];
        description = "An dns server which is extremely easy to config";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -132296,8 +134540,8 @@ self: {
      }:
      mkDerivation {
        pname = "hp2pretty";
-       version = "0.9";
-       sha256 = "0libwl8kl6yhingvbrmw1b8l5yiq6wn07asvkwbnh9l6mnh8pz2n";
+       version = "0.10";
+       sha256 = "1irm8mvcib39r8imdx7y7jisp162i0rwk8w3irs2j746c8vhyv12";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -132542,8 +134786,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpath";
-       version = "0.11.0";
-       sha256 = "07p5h68sz079rvhbz9sig4146127l29xsrphd1i3y4gskzwdvy1a";
+       version = "0.12.1";
+       sha256 = "1v5i8gdsb05s2klsrby82ms4sphvgk6k1xvhj2c7g2r3zsn6rxws";
        libraryHaskellDepends = [
          base bytestring deepseq exceptions hpath-filepath template-haskell
          utf8-string word8
@@ -132560,8 +134804,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpath-directory";
-       version = "0.14.0";
-       sha256 = "1rv2f0vqbivzqgpk3msxgymqmwp159bi6h2hcdgf65v5j3rhv52n";
+       version = "0.14.2";
+       sha256 = "04lkan37v8i1clw459csn8jvkzasz0p8ik8q8slqb9g3a5j68hjy";
        libraryHaskellDepends = [
          base bytestring exceptions hpath-filepath hpath-posix IfElse
          safe-exceptions streamly streamly-bytestring streamly-posix time
@@ -132593,8 +134837,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpath-io";
-       version = "0.14.0";
-       sha256 = "12awqghnway7fhcyzyy6dj5f9p1z15gbp31r1781n892w3vvk4l9";
+       version = "0.14.2";
+       sha256 = "1xbxkzajzf46qdbhnyn866v12rkynhbsk610ypcfgaj2rm413flr";
        libraryHaskellDepends = [
          base bytestring exceptions hpath hpath-directory hpath-posix
          safe-exceptions streamly time unix
@@ -132607,8 +134851,8 @@ self: {
     ({ mkDerivation, base, bytestring, hpath-filepath, unix }:
      mkDerivation {
        pname = "hpath-posix";
-       version = "0.13.2";
-       sha256 = "1gxqrlxcm01ysd3hs61rhzfa3inxsj1w0hncydf1q66skshabzmf";
+       version = "0.13.3";
+       sha256 = "1qnz2y6k5axy1pzgx1hgygxv6rdqx9w9kzjmaf890zifv0vv46as";
        libraryHaskellDepends = [ base bytestring hpath-filepath unix ];
        description = "Some low-level POSIX glue code, that is not in 'unix'";
        license = lib.licenses.bsd3;
@@ -132651,6 +134895,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hpc-codecov_0_3_0_0" = 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;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hpc-coveralls" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, Cabal, cmdargs
      , containers, curl, directory, directory-tree, hpc, HUnit, process
@@ -132881,8 +135147,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpp";
-       version = "0.6.3";
-       sha256 = "0gnmkh0m640qc71bp63p4qkcbcyy1j9z0x6svfbd36cpqb6kdivs";
+       version = "0.6.4";
+       sha256 = "0hkdpd4rlc0z3sfj4ymvk751csfdvqf56y9np9qyzh4ndaw9sj78";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -132935,8 +135201,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpqtypes-extras";
-       version = "1.10.4.0";
-       sha256 = "0qlxhq4vkr0qq1ckazb0lng9mbnljh32xsmcpbp5qm01bngadz56";
+       version = "1.11.0.0";
+       sha256 = "0574ma8b149rhpdk9mdg5sawhl3db4d0qxs5az31g83i93hf4mwq";
        libraryHaskellDepends = [
          base base16-bytestring bytestring containers cryptohash exceptions
          extra fields-json hpqtypes lifted-base log-base monad-control mtl
@@ -133075,7 +135341,7 @@ self: {
        sha256 = "0w1yyrv4k7fi016084j4k1lh6jgxg5502r83zszr9cjc6rraj8fc";
        libraryHaskellDepends = [ base vector ];
        description = "A nice implementation of the k-Means algorithm";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -133443,6 +135709,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {inherit (pkgs) ruby;};
 
+  "hruby_0_3_8_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
+     , process, QuickCheck, ruby, scientific, stm, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "hruby";
+       version = "0.3.8.1";
+       sha256 = "00lp02wy7yxhh17dyq1acc6gfrwh145900ib42vz52lzsj5ivlcj";
+       setupHaskellDepends = [ base Cabal process ];
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring scientific stm text
+         unordered-containers vector
+       ];
+       librarySystemDepends = [ ruby ];
+       testHaskellDepends = [
+         aeson attoparsec base QuickCheck text vector
+       ];
+       description = "Embed a Ruby intepreter in your Haskell program !";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) ruby;};
+
   "hs-GeoIP" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, GeoIP }:
      mkDerivation {
@@ -133603,7 +135892,7 @@ self: {
          base containers directory filepath megaparsec
        ];
        description = "Conllu validating parser and utils";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -134192,6 +136481,37 @@ self: {
        broken = true;
      }) {};
 
+  "hs-swisstable-hashtables-class" = callPackage
+    ({ mkDerivation, base, hashtables, swisstable }:
+     mkDerivation {
+       pname = "hs-swisstable-hashtables-class";
+       version = "0.1.0.0";
+       sha256 = "15zc24ai13x11ksyhsrs05v9vh93mdlmx9p3rg3lkllqjqy6b35m";
+       libraryHaskellDepends = [ base hashtables swisstable ];
+       testHaskellDepends = [ base hashtables swisstable ];
+       description = "Data.HashTable.Class instance definition for Data.HashTable.ST.Swiss";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "hs-tags" = callPackage
+    ({ mkDerivation, base, Cabal, containers, directory, filepath, ghc
+     , mtl, process, strict
+     }:
+     mkDerivation {
+       pname = "hs-tags";
+       version = "0.1.5";
+       sha256 = "0gy894sr2557a6pmvi99dkn03990r43ycxknryxym62z54bz1q8f";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base Cabal containers directory filepath ghc mtl process strict
+       ];
+       description = "Create tag files (ctags and etags) for Haskell code";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hs-twitter" = callPackage
     ({ mkDerivation, base, HTTP, json, mime, network, old-locale
      , old-time, random, utf8-string
@@ -134246,8 +136566,8 @@ self: {
      }:
      mkDerivation {
        pname = "hs-watchman";
-       version = "0.0.0.3";
-       sha256 = "1cqhl4gydk8i003p49cy7dcvhw0rgrc4j2l54271y4cqgkd8pkfi";
+       version = "0.0.1.0";
+       sha256 = "1550rfmvqgm1ak9n9kj1mv1vn7rfdangk8g9a40qwry5s4b0aihi";
        libraryHaskellDepends = [
          async base binary bytestring containers filepath network process
          temporary
@@ -134416,7 +136736,7 @@ self: {
        libraryHaskellDepends = [ base lens ];
        testHaskellDepends = [ base HUnit lens ];
        description = "PID control loop";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "hsSqlite3" = callPackage
@@ -134565,7 +136885,7 @@ self: {
        enableSeparateDataOutput = true;
        executableHaskellDepends = [ base Hclip HTTP process unix ];
        description = "(ab)Use Google Translate as a speech synthesiser";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -134699,6 +137019,8 @@ self: {
        pname = "hsc2hs";
        version = "0.68.7";
        sha256 = "0jl94cr2jhjmvz7l9idpr352vwxlsanyiq7ya1vvrlry3vj1aygx";
+       revision = "1";
+       editedCabalFile = "0nzmlx0kdsq5231m6dbvdb5zssj1h4lkqplp8rb28z3yl5h6h3sa";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -134726,7 +137048,7 @@ self: {
          transformers vector
        ];
        description = "Haskell SuperCollider";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -135175,7 +137497,7 @@ self: {
          natural-transformation profunctors text unordered-containers vector
        ];
        description = "Describe schemas for your Haskell data types";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "hschema-aeson" = callPackage
@@ -135204,7 +137526,7 @@ self: {
          scientific text time unordered-containers vector
        ];
        description = "Describe schemas for your Haskell data types";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "hschema-prettyprinter" = callPackage
@@ -135222,7 +137544,7 @@ self: {
          vector
        ];
        description = "Describe schemas for your Haskell data types";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "hschema-quickcheck" = callPackage
@@ -135239,7 +137561,7 @@ self: {
          quickcheck-instances text unordered-containers vector
        ];
        description = "Describe schemas for your Haskell data types";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "hsclock" = callPackage
@@ -135450,7 +137772,7 @@ self: {
        libraryHaskellDepends = [ base containers network ];
        librarySystemDepends = [ adns ];
        description = "Asynchronous DNS Resolver";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        maintainers = with lib.maintainers; [ peti ];
      }) {inherit (pkgs) adns;};
 
@@ -135617,7 +137939,7 @@ self: {
        sha256 = "1j7pny0yjpx5qw2d9br723dyic4v09k1qbvrham57p9qxn9m5b0q";
        libraryHaskellDepends = [ base containers language-puppet text ];
        description = "A small and ugly library that emulates the output of the puppet facter program";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -135809,6 +138131,8 @@ self: {
        doHaddock = false;
        description = "Extend the import list of a Haskell source file";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hsini" = callPackage
@@ -135977,8 +138301,8 @@ self: {
        pname = "hslogger";
        version = "1.3.1.0";
        sha256 = "0nyar9xcblx5jwks85y8f4jfy9k1h4ss6rvj4mdbiidrq3v688vz";
-       revision = "1";
-       editedCabalFile = "1g58f8lxcrmv4wh0k48car5lcl5j0k9lwfq5nfkjj9f5gim5yrc8";
+       revision = "2";
+       editedCabalFile = "1bkv1rbbx0bhyvrmnsyspm30q48820a6rym0msxjdzp8r56rbm9w";
        libraryHaskellDepends = [
          base bytestring containers deepseq network network-bsd old-locale
          time unix
@@ -136068,28 +138392,6 @@ self: {
      }:
      mkDerivation {
        pname = "hslua";
-       version = "1.2.0";
-       sha256 = "0a295zqpbrv8a2hw7msz5p7brlswag16sg08dyz399ij6b7q5x0h";
-       configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
-       libraryHaskellDepends = [
-         base bytestring containers exceptions mtl text
-       ];
-       librarySystemDepends = [ lua5_3 ];
-       testHaskellDepends = [
-         base bytestring containers exceptions mtl QuickCheck
-         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
-       ];
-       description = "Bindings to Lua, an embeddable scripting language";
-       license = lib.licenses.mit;
-     }) {inherit (pkgs) lua5_3;};
-
-  "hslua_1_3_0_1" = callPackage
-    ({ mkDerivation, base, bytestring, containers, exceptions, lua5_3
-     , mtl, QuickCheck, quickcheck-instances, tasty, tasty-hunit
-     , tasty-quickcheck, text
-     }:
-     mkDerivation {
-       pname = "hslua";
        version = "1.3.0.1";
        sha256 = "1mz8zk13dhgaf24hmmjqnn5hcln96iw73mcjwjilag8388wq72k7";
        configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
@@ -136103,7 +138405,6 @@ self: {
        ];
        description = "Bindings to Lua, an embeddable scripting language";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) lua5_3;};
 
   "hslua-aeson" = callPackage
@@ -136127,6 +138428,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hslua-core" = callPackage
+    ({ mkDerivation, base, bytestring, exceptions, lua, lua-arbitrary
+     , mtl, QuickCheck, quickcheck-instances, tasty, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "hslua-core";
+       version = "1.0.0";
+       sha256 = "1dkm0w0cpdkakx2ka8csjpg2dlzv49xxij884g1kzwg2k85l4xyy";
+       libraryHaskellDepends = [
+         base bytestring exceptions lua mtl text
+       ];
+       testHaskellDepends = [
+         base bytestring exceptions lua lua-arbitrary mtl QuickCheck
+         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
+       ];
+       description = "Bindings to Lua, an embeddable scripting language";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {lua-arbitrary = null;};
+
   "hslua-module-doclayout" = callPackage
     ({ mkDerivation, base, doclayout, hslua, tasty, tasty-hunit
      , tasty-lua, text
@@ -136202,7 +138525,7 @@ self: {
        libraryHaskellDepends = [ base colour ];
        testHaskellDepends = [ aeson base bytestring colour containers ];
        description = "HSLuv conversion utility";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -136231,9 +138554,10 @@ self: {
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {GraphicsMagick = null; inherit (pkgs) bzip2; freetype2 = null; 
-         jasper = null; inherit (pkgs) lcms; inherit (pkgs) libjpeg; 
-         inherit (pkgs) libpng; inherit (pkgs) libxml2; tiff = null; 
-         wmflite = null; inherit (pkgs) zlib;};
+         inherit (pkgs) jasper; inherit (pkgs) lcms; 
+         inherit (pkgs) libjpeg; inherit (pkgs) libpng; 
+         inherit (pkgs) libxml2; tiff = null; wmflite = null; 
+         inherit (pkgs) zlib;};
 
   "hsmisc" = callPackage
     ({ mkDerivation, base, containers, HUnit, mtl, old-locale, parsec
@@ -136293,7 +138617,7 @@ self: {
        librarySystemDepends = [ libsndfile ];
        libraryToolDepends = [ c2hs ];
        description = "Haskell bindings for libsndfile";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) libsndfile;};
 
   "hsndfile-storablevector" = callPackage
@@ -136304,7 +138628,7 @@ self: {
        sha256 = "1n7jw14pnixiv1z50lb7yzwyyl3yd3gdfg5w0gx0m52pnmqiav9z";
        libraryHaskellDepends = [ base hsndfile storablevector ];
        description = "Haskell bindings for libsndfile (Data.StorableVector interface)";
-       license = lib.licenses.lgpl2;
+       license = lib.licenses.lgpl2Only;
      }) {};
 
   "hsndfile-vector" = callPackage
@@ -136315,7 +138639,7 @@ self: {
        sha256 = "1598bf87llbiri1qh8zirhbsd94c9vhd41lf9vialqrykbmi3zig";
        libraryHaskellDepends = [ base hsndfile vector ];
        description = "Haskell bindings for libsndfile (Data.Vector interface)";
-       license = lib.licenses.lgpl2;
+       license = lib.licenses.lgpl2Only;
      }) {};
 
   "hsnock" = callPackage
@@ -136561,6 +138885,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec_2_7_9" = callPackage
+    ({ mkDerivation, base, hspec-core, hspec-discover
+     , hspec-expectations, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hspec";
+       version = "2.7.9";
+       sha256 = "03k8djbzkl47x1kgsplbjjrwx8qqdb31zg9aw0c6ii3d8r49gkyn";
+       libraryHaskellDepends = [
+         base hspec-core hspec-discover hspec-expectations QuickCheck
+       ];
+       description = "A Testing Framework for Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-attoparsec" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, hspec
      , hspec-expectations, text
@@ -136645,14 +138985,42 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec-core_2_7_9" = callPackage
+    ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
+     , deepseq, directory, filepath, hspec-expectations, hspec-meta
+     , HUnit, process, QuickCheck, quickcheck-io, random, setenv
+     , silently, stm, temporary, tf-random, transformers
+     }:
+     mkDerivation {
+       pname = "hspec-core";
+       version = "2.7.9";
+       sha256 = "0lqqvrdya7jszdxkzjnwd5g02w1ggmlfkh67bpcmzch6h0v609yj";
+       libraryHaskellDepends = [
+         ansi-terminal array base call-stack clock deepseq directory
+         filepath hspec-expectations HUnit QuickCheck quickcheck-io random
+         setenv stm tf-random transformers
+       ];
+       testHaskellDepends = [
+         ansi-terminal array base call-stack clock deepseq directory
+         filepath hspec-expectations hspec-meta HUnit process QuickCheck
+         quickcheck-io random setenv silently stm temporary tf-random
+         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;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-dirstream" = callPackage
     ({ mkDerivation, base, dirstream, filepath, hspec, hspec-core
      , pipes, pipes-safe, system-filepath, text
      }:
      mkDerivation {
        pname = "hspec-dirstream";
-       version = "1.0.0.2";
-       sha256 = "1df6rjgwj6rw78dh1ihswk7sgh72c8aqnaaj4r9k0gjq30hkdlfr";
+       version = "1.0.0.3";
+       sha256 = "1wzz718rw3nfzjgkigy5si7n6igjs5h8z8xsj1vhcivly4adzrrw";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base dirstream filepath hspec hspec-core pipes pipes-safe
@@ -136682,6 +139050,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec-discover_2_7_9" = callPackage
+    ({ mkDerivation, base, directory, filepath, hspec-meta, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hspec-discover";
+       version = "2.7.9";
+       sha256 = "1zr6h8r8ggi4482hnx0p2vsrkirfjimq8zy9yfiiyn5mkcqzxl4v";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base directory filepath ];
+       executableHaskellDepends = [ base directory filepath ];
+       testHaskellDepends = [
+         base directory filepath hspec-meta QuickCheck
+       ];
+       testToolDepends = [ hspec-meta ];
+       description = "Automatically discover and run Hspec tests";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-expectations" = callPackage
     ({ mkDerivation, base, call-stack, HUnit, nanospec }:
      mkDerivation {
@@ -136843,6 +139231,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hspec-golden-aeson_0_9_0_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, directory
+     , filepath, hspec, hspec-core, HUnit, QuickCheck
+     , quickcheck-arbitrary-adt, random, silently, transformers
+     }:
+     mkDerivation {
+       pname = "hspec-golden-aeson";
+       version = "0.9.0.0";
+       sha256 = "1mj516xn6an2pkygfzm2418hbvaf8yvgwgvmpgpwrxqss87m3c84";
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring directory filepath hspec HUnit
+         QuickCheck quickcheck-arbitrary-adt random transformers
+       ];
+       testHaskellDepends = [
+         aeson base directory hspec hspec-core QuickCheck
+         quickcheck-arbitrary-adt silently transformers
+       ];
+       description = "Use tests to monitor changes in Aeson serialization";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-hashable" = callPackage
     ({ mkDerivation, base, hashable, hspec, hspec-core, QuickCheck
      , silently
@@ -136892,6 +139302,41 @@ self: {
        broken = true;
      }) {};
 
+  "hspec-junit-formatter" = callPackage
+    ({ mkDerivation, base, conduit, directory, exceptions, hashable
+     , hspec, hspec-core, resourcet, temporary, text, xml-conduit
+     , xml-types
+     }:
+     mkDerivation {
+       pname = "hspec-junit-formatter";
+       version = "1.0.0.0";
+       sha256 = "1dr7khaib95r7db94gcjb9jd781wxc3d41dcvgk6fyw3a9zx2rms";
+       libraryHaskellDepends = [
+         base conduit directory exceptions hashable hspec hspec-core
+         resourcet temporary text xml-conduit xml-types
+       ];
+       description = "A JUnit XML runner/formatter for hspec";
+       license = lib.licenses.mit;
+     }) {};
+
+  "hspec-junit-formatter_1_0_0_1" = callPackage
+    ({ mkDerivation, base, conduit, directory, exceptions, hashable
+     , hspec, hspec-core, resourcet, temporary, text, xml-conduit
+     , xml-types
+     }:
+     mkDerivation {
+       pname = "hspec-junit-formatter";
+       version = "1.0.0.1";
+       sha256 = "146y4y3q047a5g8dif1vdjsn8jz6kafq0yzd7x5wpg7daccbxami";
+       libraryHaskellDepends = [
+         base conduit directory exceptions hashable hspec hspec-core
+         resourcet temporary text xml-conduit xml-types
+       ];
+       description = "A JUnit XML runner/formatter for hspec";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-laws" = callPackage
     ({ mkDerivation, base, hspec, markdown-unlit, QuickCheck }:
      mkDerivation {
@@ -136992,20 +139437,6 @@ self: {
      }) {};
 
   "hspec-need-env" = callPackage
-    ({ mkDerivation, base, hspec, hspec-core, hspec-expectations
-     , setenv, transformers
-     }:
-     mkDerivation {
-       pname = "hspec-need-env";
-       version = "0.1.0.5";
-       sha256 = "0bgjhzc4m24sbmfyczq1r61gbgm5i1lsgyql88ki4flllscg4hsh";
-       libraryHaskellDepends = [ base hspec-core hspec-expectations ];
-       testHaskellDepends = [ base hspec hspec-core setenv transformers ];
-       description = "Read environment variables for hspec tests";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "hspec-need-env_0_1_0_6" = callPackage
     ({ mkDerivation, base, hspec, hspec-core, hspec-discover
      , hspec-expectations, setenv, transformers
      }:
@@ -137018,7 +139449,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Read environment variables for hspec tests";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hspec-parsec" = callPackage
@@ -137264,8 +139694,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-wai";
-       version = "0.10.1";
-       sha256 = "05jv0cz8r8bf63ma5byjb2gkj9vwgnls4n9mks99qc525n055ckz";
+       version = "0.11.0";
+       sha256 = "0fk23vrs5apjy11z47mply2kay3n193gnyrbb9fkpwvmxyhxlp0x";
        libraryHaskellDepends = [
          base base-compat bytestring case-insensitive hspec-core
          hspec-expectations http-types QuickCheck text transformers wai
@@ -137310,23 +139740,6 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-wai-json";
-       version = "0.10.1";
-       sha256 = "04mpqij446ki5l6xwi3bjmlf3ggjia2nzv8j62mdy6ick96dqwk6";
-       libraryHaskellDepends = [
-         aeson aeson-qq base bytestring case-insensitive hspec-wai
-         template-haskell
-       ];
-       testHaskellDepends = [ base hspec hspec-wai ];
-       description = "Testing JSON APIs with hspec-wai";
-       license = lib.licenses.mit;
-     }) {};
-
-  "hspec-wai-json_0_11_0" = callPackage
-    ({ mkDerivation, aeson, aeson-qq, base, bytestring
-     , case-insensitive, hspec, hspec-wai, template-haskell
-     }:
-     mkDerivation {
-       pname = "hspec-wai-json";
        version = "0.11.0";
        sha256 = "0cra0jfb8j9g5447lij0d8nnbqv06f5i4j51h14vjw0n7zb4i8y4";
        libraryHaskellDepends = [
@@ -137336,7 +139749,6 @@ self: {
        testHaskellDepends = [ base hspec hspec-wai ];
        description = "Testing JSON APIs with hspec-wai";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hspec-webdriver" = callPackage
@@ -137381,7 +139793,7 @@ self: {
        sha256 = "0y45jizkf2kfj3yjjkq96kavkfp74vf5dyyjvi9pj3kshf8sx8il";
        libraryHaskellDepends = [ base hspec QuickCheckVariant ];
        description = "Spec for testing properties for variant types";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -137472,7 +139884,7 @@ self: {
          test-framework-hunit
        ];
        description = "The Haskell Stream Processor command line utility";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -137771,25 +140183,12 @@ self: {
     ({ mkDerivation, base, c2hs, directory, parsec, random, unix }:
      mkDerivation {
        pname = "hsshellscript";
-       version = "3.4.5";
-       sha256 = "0d66gsm7s2j4f60cjca6fsddg4i1m3l6rcyq29ywskifhfaxbgvx";
-       libraryHaskellDepends = [ base directory parsec random unix ];
-       libraryToolDepends = [ c2hs ];
-       description = "Haskell for Unix shell scripting tasks";
-       license = "LGPL";
-     }) {};
-
-  "hsshellscript_3_5_0" = callPackage
-    ({ mkDerivation, base, c2hs, directory, parsec, random, unix }:
-     mkDerivation {
-       pname = "hsshellscript";
        version = "3.5.0";
        sha256 = "1gdj6b3b0b71jcmxd5wc42gs9v5s37jqd1jwryif84qbiq8rskgr";
        libraryHaskellDepends = [ base directory parsec random unix ];
        libraryToolDepends = [ c2hs ];
        description = "Haskell for Unix shell scripting tasks";
        license = "LGPL";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hssourceinfo" = callPackage
@@ -137974,7 +140373,7 @@ self: {
          test-framework-quickcheck2
        ];
        description = "Distributed instant messaging over Tor";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -138002,7 +140401,7 @@ self: {
        executableHaskellDepends = [ base process ];
        testHaskellDepends = [ async base ];
        description = "A Tox protocol implementation in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -138449,7 +140848,7 @@ self: {
          base containers QuickCheck tasty tasty-quickcheck text transformers
        ];
        description = "Equiprobable draw from publicly verifiable random data";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "htlset" = callPackage
@@ -138497,7 +140896,7 @@ self: {
          base bytestring doctest doctest-discover hlint QuickCheck
        ];
        description = "Determine character encoding of HTML documents/fragments";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -138554,6 +140953,20 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "html-entities_1_1_4_5" = callPackage
+    ({ mkDerivation, attoparsec, base, text, unordered-containers }:
+     mkDerivation {
+       pname = "html-entities";
+       version = "1.1.4.5";
+       sha256 = "190yh4ijg0pgy4y0jvkyjf8a0z7qxy1mly7c6589qx6lrx66r3rv";
+       libraryHaskellDepends = [
+         attoparsec base text unordered-containers
+       ];
+       description = "A codec library for HTML-escaped text and HTML-entities";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "html-entity" = callPackage
     ({ mkDerivation, attoparsec, base, Cabal, cabal-doctest, doctest
      , text, unordered-containers
@@ -138807,10 +141220,8 @@ self: {
      }:
      mkDerivation {
        pname = "htoml-megaparsec";
-       version = "2.1.0.3";
-       sha256 = "1fpvfrib4igcmwhfms1spxr2b78srhrh4hrflrlgdgdn9x1m5w1x";
-       revision = "3";
-       editedCabalFile = "074r8wr9xar40ybm6wqg2s0k32kiapbjm8k3djp4lz6gjxyw7nc8";
+       version = "2.1.0.4";
+       sha256 = "08pka0z97b461bf45nvh9gymbvbwhn2dh70dy7x22xmzrigxnxw1";
        libraryHaskellDepends = [
          base composition-prelude containers deepseq megaparsec mtl text
          time unordered-containers vector
@@ -138870,7 +141281,7 @@ self: {
          htsn-common hxt MissingH network process tasty tasty-hunit unix
        ];
        description = "Parse XML files from The Sports Network feed";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -138885,7 +141296,7 @@ self: {
          ansi-terminal base hslogger transformers
        ];
        description = "Display/logging facilities used by both htsn and htsn-import";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "htsn-import" = callPackage
@@ -138914,7 +141325,7 @@ self: {
          split tasty tasty-hunit time transformers tuple
        ];
        description = "Import XML files from The Sports Network into an RDBMS";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -138948,18 +141359,16 @@ self: {
     ({ mkDerivation, attoparsec, attoparsec-iso8601, base, base-compat
      , bytestring, containers, cookie, hashable, hspec, hspec-discover
      , http-types, HUnit, nats, QuickCheck, quickcheck-instances, tagged
-     , text, time-compat, unordered-containers, uuid-types
+     , text, time-compat, transformers, unordered-containers, uuid-types
      }:
      mkDerivation {
        pname = "http-api-data";
-       version = "0.4.1.1";
-       sha256 = "1s93m2vh4c1p073xasvknnj3czbf8xsyg48kyznr4jwfhzi17anh";
-       revision = "1";
-       editedCabalFile = "1dshqb1140nj4h8d750s97gmzb2rk0ppr1rakvqxy1r79mg3m2wr";
+       version = "0.4.2";
+       sha256 = "0xzfvxxh33ivlnrnzmm19cni3jgb5ph18n9hykkw3d6l3rhwzcnl";
        libraryHaskellDepends = [
          attoparsec attoparsec-iso8601 base base-compat bytestring
          containers cookie hashable http-types tagged text time-compat
-         unordered-containers uuid-types
+         transformers unordered-containers uuid-types
        ];
        testHaskellDepends = [
          base base-compat bytestring cookie hspec HUnit nats QuickCheck
@@ -138981,6 +141390,8 @@ self: {
        pname = "http-api-data";
        version = "0.4.3";
        sha256 = "171bw2a44pg50d3y77gw2y9vmx72laky7hnn5hw6r93pnjmlf9yz";
+       revision = "2";
+       editedCabalFile = "1ihz467bn26cszgdk82l49mz2428r7y11693fj2x75fp2h2ml01i";
        libraryHaskellDepends = [
          attoparsec attoparsec-iso8601 base base-compat bytestring
          containers cookie hashable http-types tagged text time-compat
@@ -139037,7 +141448,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "http-client_0_7_5" = callPackage
+  "http-client_0_7_6" = callPackage
     ({ mkDerivation, array, async, base, base64-bytestring
      , blaze-builder, bytestring, case-insensitive, containers, cookie
      , deepseq, directory, exceptions, filepath, ghc-prim, hspec
@@ -139046,8 +141457,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-client";
-       version = "0.7.5";
-       sha256 = "11p4szyrdl0ck2iixdrq2dcjz9dlv4pd36ymkipmq7c28l1cvy7k";
+       version = "0.7.6";
+       sha256 = "1458mq5kh5fjlkhk9cgaz6sc6533l2nm4r2jz80diy8qc6bpiwrk";
        libraryHaskellDepends = [
          array base base64-bytestring blaze-builder bytestring
          case-insensitive containers cookie deepseq exceptions filepath
@@ -139348,8 +141759,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-conduit";
-       version = "2.3.7.4";
-       sha256 = "1mbaasmxx90gzfirwn8lmjpwj34gf1dk9y3m9mm88rzmy3s6czbb";
+       version = "2.3.8";
+       sha256 = "1bj24phbcb7s3k6v48l5gk82m3m23j8zy9l7c5ccxp3ghn9z5gng";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring conduit conduit-extra http-client
          http-client-tls http-types mtl resourcet transformers unliftio-core
@@ -139401,8 +141812,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-conduit-downloader";
-       version = "1.1.3";
-       sha256 = "12fv42jnh2glnav082a1d67za9ya9v0zpnxsphxhcy90b4s4rr6x";
+       version = "1.1.4";
+       sha256 = "1p6g04ysmd7v5fwsg78q4cqdaix88pv8nhc05r49dsqk9nbnn4y2";
        libraryHaskellDepends = [
          base bytestring data-default HsOpenSSL http-client
          http-client-openssl http-types network network-uri text time zlib
@@ -139419,8 +141830,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-date";
-       version = "0.0.10";
-       sha256 = "1g3b895894mrscnm32x3a2nax3xvsp8aji11f0qd44xh7kz249zs";
+       version = "0.0.11";
+       sha256 = "1lzlrj2flcnz3k5kfhf11nk5n8m6kcya0lkwrsnzxgfr3an27y9j";
        libraryHaskellDepends = [ array attoparsec base bytestring time ];
        testHaskellDepends = [
          base bytestring doctest hspec old-locale time
@@ -139616,30 +142027,6 @@ self: {
      }) {};
 
   "http-link-header" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring
-     , bytestring-conversion, criterion, directory, errors, hspec
-     , hspec-attoparsec, http-api-data, network-uri, QuickCheck, text
-     , transformers
-     }:
-     mkDerivation {
-       pname = "http-link-header";
-       version = "1.0.3.1";
-       sha256 = "0b9a3kax6zvn8aaflys63lanqan65hsv0dr8vwhbpbhyvxrxn9ns";
-       libraryHaskellDepends = [
-         attoparsec base bytestring bytestring-conversion errors
-         http-api-data network-uri text
-       ];
-       testHaskellDepends = [
-         base hspec hspec-attoparsec QuickCheck text
-       ];
-       benchmarkHaskellDepends = [
-         base criterion directory network-uri text transformers
-       ];
-       description = "A parser and writer for the HTTP Link header as specified in RFC 5988 \"Web Linking\"";
-       license = lib.licenses.publicDomain;
-     }) {};
-
-  "http-link-header_1_2_0" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, criterion, directory
      , errors, hspec, hspec-attoparsec, http-api-data, network-uri
      , QuickCheck, text, transformers
@@ -139661,7 +142048,6 @@ self: {
        ];
        description = "A parser and writer for the HTTP Link header per RFC 5988";
        license = lib.licenses.publicDomain;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "http-listen" = callPackage
@@ -139855,8 +142241,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-query";
-       version = "0.1.0";
-       sha256 = "1j2ad7ym5mkpavlw1fp07n4qlggms04i93l5rv6vg07ljf4imjvs";
+       version = "0.1.0.1";
+       sha256 = "11l3bxbaxkd0mrarp5l3s3c4xhvdiq8lj739hxspi6cgk0ywjwxw";
        libraryHaskellDepends = [
          aeson base bytestring http-conduit network-uri text
        ];
@@ -140090,8 +142476,8 @@ self: {
      }:
      mkDerivation {
        pname = "http2";
-       version = "2.0.5";
-       sha256 = "1rg6dnkx2yxcdp87r1vdpyxacqv7jgxiq3bb1hjz45v5jk1xj676";
+       version = "2.0.6";
+       sha256 = "17m1avrppiz8i6qwjlgg77ha88sx8f8vvfa57z369aszhld6nx9a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -140204,6 +142590,8 @@ self: {
        ];
        description = "Encoders based on `proto3-wire` for gRPC over HTTP2";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "http2-grpc-types" = callPackage
@@ -140269,7 +142657,7 @@ self: {
          base directory filepath functor-infix text
        ];
        description = "Low-level (i.e. XML) access to HTTPS Everywhere rulesets.";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -140332,7 +142720,7 @@ self: {
        ];
        testSystemDepends = [ tvm_runtime ];
        description = "Bindings for TVM machine learning framework";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {tvm_runtime = null;};
@@ -140531,8 +142919,8 @@ self: {
        pname = "hum";
        version = "0.2.0.0";
        sha256 = "144b1161rvlmayklvgm7cajs0jz5bhlbcgrq288pvymlyl4f962b";
-       revision = "2";
-       editedCabalFile = "03hh7nyqchskkp4iqcq335mnpdsvgdw8d1pf3dp7p4wmsk20kwmk";
+       revision = "3";
+       editedCabalFile = "1wj4rf5gn2zqlym2hrl5iiakyvh1h8n2z788wzzjvfx4xwsb5gp3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -140652,6 +143040,8 @@ self: {
        ];
        description = "CSS-like syntax for file system manipulation";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hunit-dejafu" = callPackage
@@ -140884,8 +143274,8 @@ self: {
      }:
      mkDerivation {
        pname = "hurl";
-       version = "2.1.0.0";
-       sha256 = "0n467hgj8ybgqa69snsj6c199f0ipavxwjn2pb47q1vns6prlwd0";
+       version = "2.1.0.1";
+       sha256 = "16j7kxxp60i0nbiscc1x5a14s7n8qyv8rzjm6a03pqdpbmfzrrwq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -140896,7 +143286,7 @@ self: {
        ];
        executableHaskellDepends = [ base directory network-uri ];
        description = "Haskell URL resolver";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -141072,7 +143462,7 @@ self: {
        sha256 = "0g2h5is0gbr43fn8pbfj2nzh4wlgx6kjayq4lcnbr10z0j3vpqpv";
        libraryHaskellDepends = [ base hvega text ];
        description = "Theme for hvega";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "hw-aeson" = callPackage
@@ -141083,8 +143473,8 @@ self: {
        pname = "hw-aeson";
        version = "0.1.1.0";
        sha256 = "0d50yghgnxhynbm6w5kgkhgr8xgnghr8g1xn7zf0p9ax8dxkdy00";
-       revision = "1";
-       editedCabalFile = "0akwsfw024i8i8w8y1h2wdp9vqd7ws5jfyb5v5d9yckjk3sa2wn1";
+       revision = "2";
+       editedCabalFile = "062g7zwbp9csgcbpbbyg6ckb8zhkx1kqk5dsms36fmx95dq4zl5j";
        libraryHaskellDepends = [ aeson base text ];
        testHaskellDepends = [
          aeson base doctest doctest-discover hedgehog hspec
@@ -141123,6 +143513,24 @@ self: {
        broken = true;
      }) {};
 
+  "hw-aws-sqs-conduit" = callPackage
+    ({ mkDerivation, amazonka, amazonka-sqs, base, conduit, lens, mtl
+     , text
+     }:
+     mkDerivation {
+       pname = "hw-aws-sqs-conduit";
+       version = "0.1.0.0";
+       sha256 = "112nf8yqpb0cl4vb7h21r0nf13hz5419vkk2z5235db75ap6bbcc";
+       libraryHaskellDepends = [
+         amazonka amazonka-sqs base conduit lens mtl text
+       ];
+       testHaskellDepends = [ base ];
+       description = "AWS SQS conduit";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hw-balancedparens" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, directory
      , doctest, doctest-discover, generic-lens, hedgehog, hspec
@@ -141134,6 +143542,8 @@ self: {
        pname = "hw-balancedparens";
        version = "0.4.1.1";
        sha256 = "16v36fj5aawnx6glarzljl3yb93zkn06ij5cg40zba5rp8jhpg7z";
+       revision = "3";
+       editedCabalFile = "1myzy3wjwjaqlm31pa90msr8rl26vczd5yqd29mx0gy7p4x2dmgi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141168,6 +143578,8 @@ self: {
        pname = "hw-bits";
        version = "0.7.2.1";
        sha256 = "18l9r0yhddkzgbc2vvk0qr9brb5ih25zjfga3bddb5j8gpaaq65q";
+       revision = "2";
+       editedCabalFile = "1almm4nl56gf99wys1kzalqcz0dkaih0pgxsyqv4q1j1w3ggfmfq";
        libraryHaskellDepends = [
          base bitvec bytestring deepseq hw-int hw-prim hw-string-parse
          vector
@@ -141215,6 +143627,8 @@ self: {
        pname = "hw-conduit";
        version = "0.2.1.0";
        sha256 = "1xnkkpqcgyii7f16jjh2k2qh4ydpsff5q2xnggyg4jf7m69yrih2";
+       revision = "1";
+       editedCabalFile = "1rmdwb4a7ax9yadj4xv63n582vsmk84h03qkr6npj9b9gw4qw6i3";
        libraryHaskellDepends = [
          array base bytestring conduit conduit-combinators time transformers
          unliftio-core word8
@@ -141253,6 +143667,8 @@ self: {
        pname = "hw-diagnostics";
        version = "0.0.1.0";
        sha256 = "111g54c5bhgjii6vbyb116bg3dxywa9l693r8xjjrxpamzvi0avj";
+       revision = "1";
+       editedCabalFile = "04qpkr54wkb99hdfzk6gxhi6ak5lc564jzab1cc7675s7lsj1nji";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest doctest-discover ];
        testToolDepends = [ doctest-discover ];
@@ -141272,8 +143688,8 @@ self: {
        pname = "hw-dsv";
        version = "0.4.1.0";
        sha256 = "1wv0yg662c3bq4kpgfqfjks59v17i5h3v3mils1qpxn4c57jr3s8";
-       revision = "2";
-       editedCabalFile = "1l7aww6nci05ns7hnk46r20as3xy1j0s5fxsrb5w0x9y2kwvqj61";
+       revision = "5";
+       editedCabalFile = "0dzysj8fzyfg4ggda5ramq1zad8jb810rg2nncnzv95xmnlwakgl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141313,8 +143729,8 @@ self: {
        pname = "hw-dump";
        version = "0.1.1.0";
        sha256 = "14ya18i3xvay5xn8j20b06msqyd49h34w526k1x1fxdp0i2l3rwr";
-       revision = "2";
-       editedCabalFile = "0p6cbijds7vc8bx9rb8s8bwr9dp4qc91idmd64llgz06d9kmvkcs";
+       revision = "5";
+       editedCabalFile = "1rkz578hcn7s9i08n5jc557vph7k017m8vbk6ijf5psa189w1dkh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141348,8 +143764,8 @@ self: {
        pname = "hw-eliasfano";
        version = "0.1.2.0";
        sha256 = "1wqpzznmz6bl88wzhrfcbgi49dw7w7i0p92hyc0m58nanqm1zgnj";
-       revision = "2";
-       editedCabalFile = "0l7h7pr6gpq0xnp4w003q3dxw7pmv2d6kpx2iqfc3nzzpa562ivv";
+       revision = "5";
+       editedCabalFile = "0w8kikrrkv8v1drnrjfabzflbgs768qbrfv8n17y4id76aqazml5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141385,6 +143801,8 @@ self: {
        pname = "hw-excess";
        version = "0.2.3.0";
        sha256 = "0xiyf3xyg6f4kgkils9ycx6q0qcsbd6rw4m9lizw9295mnp05s3g";
+       revision = "1";
+       editedCabalFile = "0qq8svkn9365vdbb0y3y4m2pdklsrf6z3a1m0kyfmbr0vphza369";
        libraryHaskellDepends = [
          base hw-bits hw-prim hw-rankselect-base safe vector
        ];
@@ -141408,6 +143826,8 @@ self: {
        pname = "hw-fingertree";
        version = "0.1.2.0";
        sha256 = "0b1aff5aa9ifapyf2qvqggxfm36x5w7l7c37bfy9qdll264pdh0i";
+       revision = "1";
+       editedCabalFile = "0hg9hnga0d15a5md67q7xl53kgp34hwvl4aw9s8xkjm4fs7a54z9";
        libraryHaskellDepends = [ base deepseq hw-prim ];
        testHaskellDepends = [
          base deepseq doctest doctest-discover hedgehog hspec
@@ -141427,6 +143847,8 @@ self: {
        pname = "hw-fingertree-strict";
        version = "0.1.2.0";
        sha256 = "1zhh694m8hbin7059ys8c6sqjvyfsazcsp0jxqg59w5ypqjznzca";
+       revision = "1";
+       editedCabalFile = "0vr8xqvwihg3j83bqfhcqlnlpdq7k2v6kkx1xly7fdjw2hcwgkhl";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [
          base doctest doctest-discover hedgehog hspec HUnit
@@ -141445,6 +143867,8 @@ self: {
        pname = "hw-hedgehog";
        version = "0.1.1.0";
        sha256 = "0a2pic2h983kdkai68wabclzwjbk5i9vz229jlwvs0hyw6b0mzz9";
+       revision = "1";
+       editedCabalFile = "1fwgxwbfz6yfj6xfl9471q7fpsckm2wvpb8wxwb32c3x5122ly5v";
        libraryHaskellDepends = [ base hedgehog vector ];
        testHaskellDepends = [ base doctest doctest-discover ];
        testToolDepends = [ doctest-discover ];
@@ -141460,6 +143884,8 @@ self: {
        pname = "hw-hspec-hedgehog";
        version = "0.1.1.0";
        sha256 = "04r30hb4664yciwfl3kyx0xn6sqc6abwhavb4wxiaas8b4px9kyn";
+       revision = "2";
+       editedCabalFile = "16v3dcpm51m8g2va85jfnbxqyc6dds2nazyd31080fa4804a90wz";
        libraryHaskellDepends = [
          base call-stack hedgehog hspec HUnit transformers
        ];
@@ -141479,6 +143905,8 @@ self: {
        pname = "hw-int";
        version = "0.0.2.0";
        sha256 = "13ifa28b12hiibhmwas5hn3dmmiz2rihlc837hhii0z1ng03s360";
+       revision = "1";
+       editedCabalFile = "13vc1hvyil8qql2d6ryi2m4a6snhm2v8vghh8s9hr4qx6dzh4irv";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base doctest doctest-discover hedgehog hspec hw-hedgehog
@@ -141499,8 +143927,8 @@ self: {
        pname = "hw-ip";
        version = "2.4.2.0";
        sha256 = "1bvh4fkg1ffr3y8wink62rgkynlcgjhmra7a4w01h1dmw1vb2vfx";
-       revision = "1";
-       editedCabalFile = "19jbgqsmc71apmr6z0n0a2hgfhv9r0bsqa2x55r8grpyr91blpmw";
+       revision = "4";
+       editedCabalFile = "0pjry2xjnhfl3jii8j9dqmqz88hw7g8wkwy4fqnajnchrxb8f06w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141534,6 +143962,8 @@ self: {
        pname = "hw-json";
        version = "1.3.2.2";
        sha256 = "03h5zv94ndsz4vh0jql8rg8pl95rbf8xkyzvr3r55i3kpmb85sbg";
+       revision = "4";
+       editedCabalFile = "0ys0xlmw2xdrrjjdjx1gwlh0qpig8b4ljqwrp2yhp3aihzsb5304";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141577,8 +144007,8 @@ self: {
        pname = "hw-json-lens";
        version = "0.2.1.0";
        sha256 = "1v3ws69pyrw5ja00r326kqlq6hd7r5np119fk2la7f74aqhajjf6";
-       revision = "1";
-       editedCabalFile = "1gxqds8889dzkfncnlncjb7avw4zm7dzj3063mq4rsb05gyrplhz";
+       revision = "3";
+       editedCabalFile = "0svnn3wdm8adcyw1phk0k9ddzlk3ni1dar681vpq61xwd1xmgjgb";
        libraryHaskellDepends = [
          aeson base bytestring containers hw-json lens scientific text word8
        ];
@@ -141605,8 +144035,8 @@ self: {
        pname = "hw-json-simd";
        version = "0.1.1.0";
        sha256 = "0bpfyx2bd7pcr8y8bfahcdm30bznqixfawraq3xzy476vy9ppa9n";
-       revision = "1";
-       editedCabalFile = "047s5clxvi3l9x80lnf7nrv7myxnvqmh8y7syb2ryv3m549lyv2q";
+       revision = "3";
+       editedCabalFile = "0f7y8kaj2bv3l1fscwxdnqj7378mrls1mcnsm23cpb5dizy3p2nf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring hw-prim lens vector ];
@@ -141636,8 +144066,8 @@ self: {
        pname = "hw-json-simple-cursor";
        version = "0.1.1.0";
        sha256 = "1kwxnqsa2mkw5sa8rc9rixjm6f75lyjdaz7f67yyhwls5v4315bl";
-       revision = "3";
-       editedCabalFile = "0zmq1gb9znb84d9igppww6295glnhg5b6xlgadr435cddp5zmhpx";
+       revision = "6";
+       editedCabalFile = "1ws3mcyvba05s0wvwzbig54wxkw37pp55c5jwbsc96inic8cfq3y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141676,8 +144106,8 @@ self: {
        pname = "hw-json-standard-cursor";
        version = "0.2.3.1";
        sha256 = "1mpsspp6ba2zqv38a0rcv93mbwb1rb8snmxklf32g02djj8b4vir";
-       revision = "1";
-       editedCabalFile = "0gdvwhj2jmd8dm1yi3kzs0lyw5r4bk7c50s21z1600v36bmzpdm1";
+       revision = "4";
+       editedCabalFile = "18x3vinc6j5nnq3j5x7zdcy3ys6b2clmb7lhz6qg1wklnfcyjxsb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141791,6 +144221,8 @@ self: {
        pname = "hw-mquery";
        version = "0.2.1.0";
        sha256 = "1qhd8jcwffr57mjraw0g3xj9kb0jd75ybqaj1sbxw31lc2hr9w9j";
+       revision = "2";
+       editedCabalFile = "1996bn28l3s2bgjgll17gpryvp61vxjz0d3zi5py6kk40hsb4y6z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ ansi-wl-pprint base dlist lens ];
@@ -141814,8 +144246,8 @@ self: {
        pname = "hw-packed-vector";
        version = "0.2.1.0";
        sha256 = "13hly2yzx6kx4j56iksgj4i3wmvg7rmxq57d0g87lmybzhha9q38";
-       revision = "2";
-       editedCabalFile = "0hlmi9w5z7j9ycqjf5avx3b09yglcbx8krypv274j2qrm5fzypr4";
+       revision = "5";
+       editedCabalFile = "0pnrjx4sbbxpr1fvib5z95cxjgfif2iay1j6hk5ysavwn6i2qxqx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141846,6 +144278,8 @@ self: {
        pname = "hw-parser";
        version = "0.1.1.0";
        sha256 = "1zsbw725mw3fn4814qricqanbvx1kgbnqvgwijqgfv8jz7yf5gxa";
+       revision = "2";
+       editedCabalFile = "15r5ydza7dawa5b7y3xi80016pa3s5sb706hvsqvn82fhqp5dziw";
        libraryHaskellDepends = [
          attoparsec base bytestring hw-prim text
        ];
@@ -141857,6 +144291,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hw-playground-linear" = callPackage
+    ({ mkDerivation, base, hedgehog, hmatrix, hmatrix-csv, hspec
+     , hspec-discover, hw-hspec-hedgehog, text
+     }:
+     mkDerivation {
+       pname = "hw-playground-linear";
+       version = "0.1.0.0";
+       sha256 = "039bkjgwa14v9qjmblipv4qd19lg3y2qn78khv0rbqka1haxnhn9";
+       libraryHaskellDepends = [ base hmatrix hmatrix-csv text ];
+       testHaskellDepends = [ base hedgehog hspec hw-hspec-hedgehog ];
+       testToolDepends = [ hspec-discover ];
+       description = "Primitive functions and data types";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "hw-prim" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, directory
      , doctest, doctest-discover, exceptions, ghc-prim, hedgehog, hspec
@@ -141867,6 +144316,8 @@ self: {
        pname = "hw-prim";
        version = "0.6.3.0";
        sha256 = "0gqn7s0ki9x951n5whyh0pkcbbqz4kpcn80xxpsv1c0v34946xv7";
+       revision = "1";
+       editedCabalFile = "1z3fcff42xq0j430q72ncjv6zc0zvzzq94ifh06m342z0x8imv83";
        libraryHaskellDepends = [
          base bytestring deepseq ghc-prim mmap transformers unliftio-core
          vector
@@ -141918,8 +144369,8 @@ self: {
        pname = "hw-rankselect";
        version = "0.13.4.0";
        sha256 = "0chk3n4vb55px943w0l3q7pxhgbvqm64vn7lkhi7k0l2dpybycp7";
-       revision = "2";
-       editedCabalFile = "03lc8cgijr4ysz0i9c4pjhas4cd5ifxs400cr0nbasjvmz27hr3c";
+       revision = "5";
+       editedCabalFile = "1jbfanh0028sxj0arx92w753dwgpazs8j2flqjq9svc91rpk82px";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141955,6 +144406,8 @@ self: {
        pname = "hw-rankselect-base";
        version = "0.3.4.1";
        sha256 = "1s0lqwq0rjmjca6lshfnxqi0c7bzlyflhm45xw1xa9pvqci8439h";
+       revision = "2";
+       editedCabalFile = "174a3qhkdam5m5rqwb9qzapg2xkd8vb0lirkz2d0xb4xxc0vzcy7";
        libraryHaskellDepends = [
          base bits-extra bitvec hw-bits hw-int hw-prim hw-string-parse
          vector
@@ -141982,6 +144435,8 @@ self: {
        pname = "hw-simd";
        version = "0.1.2.0";
        sha256 = "1r202xzqprb1v8ajd9n6ixckjfdy17mn8jibx4j2xgknx595v24f";
+       revision = "2";
+       editedCabalFile = "05rax91afykkmwnxnyi6bmmjh0n9ryw006k9k3klwnvy8h2yaf4m";
        libraryHaskellDepends = [
          base bits-extra bytestring deepseq hw-bits hw-prim hw-rankselect
          hw-rankselect-base transformers vector
@@ -142005,6 +144460,36 @@ self: {
        broken = true;
      }) {};
 
+  "hw-simd-cli" = callPackage
+    ({ mkDerivation, base, bits-extra, bytestring, containers, deepseq
+     , directory, doctest, doctest-discover, generic-lens, hw-bits
+     , hw-prim, hw-rankselect-base, hw-simd, lens, mmap, mtl
+     , optparse-applicative, resourcet, vector
+     }:
+     mkDerivation {
+       pname = "hw-simd-cli";
+       version = "0.0.0.1";
+       sha256 = "0fqkrhjrflkiacq1qfnfiy4rk6pg47j72d0ni0jwfdn6ajx22y90";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bits-extra bytestring containers deepseq directory
+         generic-lens hw-bits hw-prim hw-rankselect-base hw-simd lens mmap
+         mtl optparse-applicative resourcet vector
+       ];
+       executableHaskellDepends = [
+         base bits-extra bytestring containers deepseq directory
+         generic-lens hw-bits hw-prim hw-rankselect-base hw-simd lens mmap
+         mtl optparse-applicative resourcet vector
+       ];
+       testHaskellDepends = [ base bits-extra doctest doctest-discover ];
+       testToolDepends = [ doctest-discover ];
+       description = "SIMD library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hw-streams" = callPackage
     ({ mkDerivation, base, bytestring, criterion, directory, doctest
      , doctest-discover, exceptions, ghc-prim, hedgehog, hspec
@@ -142015,6 +144500,8 @@ self: {
        pname = "hw-streams";
        version = "0.0.1.0";
        sha256 = "0hzpx1j06h98y0zcmysklzn3s3mvpbb1nkwg4zkbdxvzzqs5hnm5";
+       revision = "1";
+       editedCabalFile = "0fib78604y6cjchah7zhjsfli820ks51qq7yjv81wwbckjjkpw5v";
        libraryHaskellDepends = [
          base bytestring ghc-prim hw-bits hw-prim mmap primitive
          transformers vector
@@ -142063,6 +144550,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hw-tar" = callPackage
+    ({ mkDerivation, base, hedgehog, hspec, hspec-discover, hw-hedgehog
+     , hw-hspec-hedgehog, process
+     }:
+     mkDerivation {
+       pname = "hw-tar";
+       version = "0.0.0.1";
+       sha256 = "0hzmw0xb10h09q3h25f4lk2pygl0w7nckysa04qr1c26n4hsvrq2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base hedgehog hspec hw-hedgehog hw-hspec-hedgehog process
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Library for creating and extracting tar archives";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "hw-uri" = callPackage
     ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-s3
      , antiope-core, antiope-optparse-applicative, antiope-s3, base
@@ -142075,8 +144582,8 @@ self: {
        pname = "hw-uri";
        version = "0.2.1.0";
        sha256 = "1bwdzvms0n86k7gbkhk0jj3m1pcc9vbjk13kgpchqxpxm971srbs";
-       revision = "3";
-       editedCabalFile = "1cdrikiyw13brabbjrf4v7hqaim3apx84i3xapda29f1rw8f5f3q";
+       revision = "5";
+       editedCabalFile = "07mir09f9h35f3cajsi68nnmk45fah1730wxi2kbmb8ya28ny0kj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -142127,8 +144634,8 @@ self: {
        pname = "hw-xml";
        version = "0.5.1.0";
        sha256 = "0g81kknllbc6v5wx7kgzhh78409njfzr3h7lfdx7ip0nkhhnpmw4";
-       revision = "3";
-       editedCabalFile = "0b1lkhc6qf5vqafn69bid01k1hi043k7yrpl7pbxfrn154w8afpm";
+       revision = "7";
+       editedCabalFile = "1rikq6wxjg4h5pfg9miw14np7b1h2vf036gawyazq5c4d6l2wfzv";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -142218,7 +144725,7 @@ self: {
        executableToolDepends = [ alex happy ];
        testHaskellDepends = [ array base Cabal containers mtl ];
        description = "An implementation of Neil D. Jones' While language";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -142311,7 +144818,7 @@ self: {
          containers hedgehog hspec magic-wormhole protolude saltine text
        ];
        description = "magic-wormhole client";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -142464,6 +144971,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hxt_9_3_1_22" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers, deepseq
+     , directory, filepath, hxt-charproperties, hxt-regex-xmlschema
+     , hxt-unicode, mtl, network-uri, parsec
+     }:
+     mkDerivation {
+       pname = "hxt";
+       version = "9.3.1.22";
+       sha256 = "1n9snbdl46x23ka7bbsls1vsn0plpmfmbpbl0msjfm92fkk2yq7g";
+       libraryHaskellDepends = [
+         base binary bytestring containers deepseq directory filepath
+         hxt-charproperties hxt-regex-xmlschema hxt-unicode mtl network-uri
+         parsec
+       ];
+       description = "A collection of tools for processing XML with Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hxt-binary" = callPackage
     ({ mkDerivation, base, binary, bytestring, bzlib, deepseq
      , haskell98, hxt
@@ -142854,7 +145380,7 @@ self: {
        ];
        testHaskellDepends = [ base Cabal containers mtl QuickCheck ];
        description = "An alternate Prelude";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -143237,26 +145763,19 @@ self: {
      }) {};
 
   "hyperloglog" = callPackage
-    ({ mkDerivation, approximate, base, binary, bits, bytes, Cabal
-     , cabal-doctest, cereal, cereal-vector, comonad, deepseq, directory
-     , distributive, doctest, filepath, generic-deriving, hashable, lens
-     , reflection, semigroupoids, semigroups, simple-reflect, siphash
-     , tagged, vector
+    ({ mkDerivation, approximate, base, binary, bits, bytes, cereal
+     , cereal-vector, comonad, deepseq, distributive, hashable, lens
+     , reflection, semigroupoids, semigroups, siphash, tagged, vector
      }:
      mkDerivation {
        pname = "hyperloglog";
-       version = "0.4.3";
-       sha256 = "0r1zrhl81hm0sb9my32xyng0xdl2yzh1pdw2bqabzccrhyjk1fwd";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.4.4";
+       sha256 = "0iwjxv934vid7bzaxyqq4v7r52vdcqjxmw043dmxykwyzim59l3v";
        libraryHaskellDepends = [
          approximate base binary bits bytes cereal cereal-vector comonad
          deepseq distributive hashable lens reflection semigroupoids
          semigroups siphash tagged vector
        ];
-       testHaskellDepends = [
-         base directory doctest filepath generic-deriving semigroups
-         simple-reflect
-       ];
        description = "An approximate streaming (constant space) unique object counter";
        license = lib.licenses.bsd3;
      }) {};
@@ -143308,23 +145827,17 @@ self: {
      }) {};
 
   "hyphenation" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, cabal-doctest, containers
-     , doctest, text, unordered-containers, zlib
+    ({ mkDerivation, base, bytestring, containers, text
+     , unordered-containers, zlib
      }:
      mkDerivation {
        pname = "hyphenation";
-       version = "0.8";
-       sha256 = "09c9xpygjnq7kqcaybls91s7g1cv40rg54dn9w1svk973h0lgyii";
-       revision = "3";
-       editedCabalFile = "0krjvrk5hzcs101b5h95ai51wwq1fj04q1ryn63j1qmj22jpn4ki";
+       version = "0.8.1";
+       sha256 = "0pzm9sfn1bw7yvwhby9a6d9z2ghcn91rcbj08x380gff31kn8lbx";
        enableSeparateDataOutput = true;
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base bytestring containers text unordered-containers zlib
        ];
-       testHaskellDepends = [
-         base containers doctest unordered-containers
-       ];
        description = "Configurable Knuth-Liang hyphenation";
        license = lib.licenses.bsd2;
      }) {};
@@ -143464,6 +145977,8 @@ self: {
        testSystemDepends = [ zookeeper_mt ];
        description = "Haskell client library for Apache Zookeeper";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) zookeeper_mt;};
 
   "hzulip" = callPackage
@@ -143487,7 +146002,7 @@ self: {
          scotty stm stm-conduit text transformers
        ];
        description = "A haskell wrapper for the Zulip API";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -143568,8 +146083,7 @@ self: {
        ];
        description = "iCalendar data types, parser, and printer";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "iException" = callPackage
@@ -143615,7 +146129,7 @@ self: {
          attoparsec base bytestring network unix
        ];
        description = "An API for the Interactive Brokers Trading Workstation written in pure Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -143648,7 +146162,7 @@ self: {
        sha256 = "0yrdh4y0ssldg0lmrbr6yk0zg2sihirp3mnh20dvg3m887kdhrj1";
        libraryHaskellDepends = [ base dbus directory unix xdg-basedir ];
        description = "A simple uncomplete ibus api";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "ical" = callPackage
@@ -143674,6 +146188,24 @@ self: {
        broken = true;
      }) {};
 
+  "ice40-prim" = callPackage
+    ({ mkDerivation, base, clash-prelude, ghc-typelits-extra
+     , ghc-typelits-knownnat, ghc-typelits-natnormalise, interpolate
+     }:
+     mkDerivation {
+       pname = "ice40-prim";
+       version = "0.3.1.0";
+       sha256 = "11q09jyckl9q84qv6xxypf5kalxgbrpgq65bqysa26i6xll4p4d0";
+       libraryHaskellDepends = [
+         base clash-prelude ghc-typelits-extra ghc-typelits-knownnat
+         ghc-typelits-natnormalise interpolate
+       ];
+       description = "Lattice iCE40 Primitive IP";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "icepeak" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, containers
      , directory, hashable, hspec, hspec-core, hspec-expectations
@@ -144148,8 +146680,6 @@ self: {
        ];
        description = "Functional Programming Language with Dependent Types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) gmp;};
 
   "ieee" = callPackage
@@ -144323,7 +146853,7 @@ self: {
          transformers wl-pprint-text
        ];
        description = "An keyboard-driven interactive graph editor";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -144343,7 +146873,7 @@ self: {
        libraryPkgconfigDepends = [ ige-mac-integration ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Bindings for the Gtk/OS X integration library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {ige-mac-integration = null;};
@@ -145189,7 +147719,7 @@ self: {
          parsec richreports split staticanalysis text uxadt
        ];
        description = "Multi-platform parser analyzer and generator";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -145280,7 +147810,7 @@ self: {
        testHaskellDepends = [ base hspec parsec ];
        benchmarkHaskellDepends = [ base criterion parsec ];
        description = "A math-inspired programmatic 2D & 3D CAD system";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "implicit-hie" = callPackage
@@ -145339,7 +147869,7 @@ self: {
        editedCabalFile = "02x6cmbxyw26y5azhjrx8461vngsj27l0a255xvhg2pl25zwfbfs";
        libraryHaskellDepends = [ base mtl time transformers ];
        description = "A logging framework built around implicit parameters";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -145701,8 +148231,8 @@ self: {
      }:
      mkDerivation {
        pname = "incremental-parser";
-       version = "0.5.0.1";
-       sha256 = "1j0x52rwp44wdjdyxw3jh6m61vhwa2bf80dfxhqi6iniyc8qzm68";
+       version = "0.5.0.2";
+       sha256 = "15437dkn8j17ba71c3h6ck2f6sbnmp3acg2grg97awb962azm9fj";
        libraryHaskellDepends = [
          base input-parsers monoid-subclasses parsers rank2classes
          transformers
@@ -145714,7 +148244,7 @@ self: {
          base bytestring criterion deepseq monoid-subclasses text
        ];
        description = "Generic parser library capable of providing partial results from partial input";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "incremental-sat-solver" = callPackage
@@ -145851,6 +148381,8 @@ self: {
        testHaskellDepends = [ base mtl parsec tasty tasty-hunit ];
        description = "indentation sensitive parser-combinators for parsec";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "index-core" = callPackage
@@ -146124,7 +148656,7 @@ self: {
        libraryHaskellDepends = [ array base deepseq vector ];
        testHaskellDepends = [ array base deepseq QuickCheck text vector ];
        description = "Non-contiguous interval data types with potentially infinite ranges";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -146174,8 +148706,8 @@ self: {
      }:
      mkDerivation {
        pname = "infernal";
-       version = "0.5.0";
-       sha256 = "0zn4zj9c9jhvchg6yli3ig2c0hnwpk9na2r0bbizjlngzky6vfrr";
+       version = "0.6.0";
+       sha256 = "1qk0d5k7kjkhqxpkm1fnah1syd0la1z88l5mwv3z6ly5njvj78fl";
        libraryHaskellDepends = [
          aeson base binary bytestring case-insensitive exceptions hashable
          http-client http-types little-logger little-rio microlens
@@ -146205,7 +148737,7 @@ self: {
        ];
        executableHaskellDepends = [ base optparse-applicative parsec ];
        description = "Type inference and checker for JavaScript (experimental)";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -146293,8 +148825,35 @@ self: {
      }:
      mkDerivation {
        pname = "influxdb";
-       version = "1.9.0";
-       sha256 = "1d580f2j71x0iww0q2mg47jbhjsd83yarrnnmcp9f2bx7cix174v";
+       version = "1.9.1.1";
+       sha256 = "1qdfrl5ragkn726ymh16p0shgc6sn72gd1hh6a6bw19m527pdcc0";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring clock containers foldl http-client
+         http-types lens network optional-args scientific tagged text time
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base containers doctest lens raw-strings-qq tasty tasty-hunit
+         template-haskell time vector
+       ];
+       description = "InfluxDB client library for Haskell";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "influxdb_1_9_1_2" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
+     , cabal-doctest, clock, containers, doctest, foldl, http-client
+     , http-types, lens, network, optional-args, raw-strings-qq
+     , scientific, tagged, tasty, tasty-hunit, template-haskell, text
+     , time, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "influxdb";
+       version = "1.9.1.2";
+       sha256 = "0adrfaimjfrhfx2542wynjpd810yqxnjr3q4hhw8gz75v70f44nn";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -146307,8 +148866,9 @@ self: {
          base containers doctest lens raw-strings-qq tasty tasty-hunit
          template-haskell time vector
        ];
-       description = "Haskell client library for InfluxDB";
+       description = "InfluxDB client library for Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "informative" = callPackage
@@ -146336,7 +148896,7 @@ self: {
          time-locale-compat yesod yesod-auth yesod-core yesod-form
        ];
        description = "A yesod subsite serving a wiki";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -146455,7 +149015,7 @@ self: {
        sha256 = "1iw82rzw2w3y40zndz3mxpa7k5ds8zs87ccvp228s4zva0mp5ddl";
        libraryHaskellDepends = [ base ];
        description = "Monadic functions with injected parameters";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -146637,8 +149197,8 @@ self: {
      }:
      mkDerivation {
        pname = "input-parsers";
-       version = "0.1.0.1";
-       sha256 = "0wqp98ly2f9vnqd97q9jphmxqr284aal40dlrgi4hwy216p67vzz";
+       version = "0.2.1";
+       sha256 = "0hxadh4p007785knx8vah3b2bawaidvi7z4kgyyahj98a5k7qr18";
        libraryHaskellDepends = [
          attoparsec base binary bytestring monoid-subclasses parsec parsers
          text transformers
@@ -146647,6 +149207,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "input-parsers_0_2_2" = callPackage
+    ({ mkDerivation, attoparsec, base, binary, bytestring
+     , monoid-subclasses, parsec, parsers, text, transformers
+     }:
+     mkDerivation {
+       pname = "input-parsers";
+       version = "0.2.2";
+       sha256 = "1kb70nxg8bji7bd0y0w81bqyhx62xrbv3y2vib6sp3jkz7yriarz";
+       libraryHaskellDepends = [
+         attoparsec base binary bytestring monoid-subclasses parsec parsers
+         text transformers
+       ];
+       description = "Extension of the parsers library with more capability and efficiency";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "inquire" = callPackage
     ({ mkDerivation, aether, base, text }:
      mkDerivation {
@@ -146657,25 +149234,25 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ aether base text ];
        description = "Console client for encyclopedias";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {aether = null;};
 
   "insert-ordered-containers" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, hashable, lens
-     , optics-core, optics-extra, QuickCheck, semigroupoids, semigroups
-     , tasty, tasty-quickcheck, text, transformers, unordered-containers
+    ({ mkDerivation, aeson, base, base-compat, hashable
+     , indexed-traversable, lens, optics-core, optics-extra, QuickCheck
+     , semigroupoids, semigroups, tasty, tasty-quickcheck, text
+     , transformers, unordered-containers
      }:
      mkDerivation {
        pname = "insert-ordered-containers";
-       version = "0.2.3.1";
-       sha256 = "020a56280mxjk9k97q2m1424m73m1sf1ccl0wm0ci9msyw2g51za";
-       revision = "1";
-       editedCabalFile = "1s90flzj3039s50r6hx7mqihf8lvarcqb6zps7m12x543gahfcq0";
+       version = "0.2.4";
+       sha256 = "174maygil2mffjz2ssqawlmv36413m65zp3ng67hzij4dh8piz7x";
        libraryHaskellDepends = [
-         aeson base base-compat hashable lens optics-core optics-extra
-         semigroupoids semigroups text transformers unordered-containers
+         aeson base base-compat hashable indexed-traversable lens
+         optics-core optics-extra semigroupoids semigroups text transformers
+         unordered-containers
        ];
        testHaskellDepends = [
          aeson base base-compat hashable lens QuickCheck semigroupoids
@@ -146722,8 +149299,8 @@ self: {
      }:
      mkDerivation {
        pname = "inspection-testing";
-       version = "0.4.2.4";
-       sha256 = "11nz8j56l3h7sn927mcsms9af9rpqkmxc0c0vf9mln567wpb75h3";
+       version = "0.4.3.0";
+       sha256 = "1pba3br5vd11svk9fpg5s977q55qlvhlf95nd5ay79bwdjm10hj3";
        libraryHaskellDepends = [
          base containers ghc mtl template-haskell transformers
        ];
@@ -146758,16 +149335,17 @@ self: {
 
   "instana-haskell-trace-sdk" = callPackage
     ({ mkDerivation, aeson, aeson-extra, base, binary, bytestring
-     , containers, directory, ekg-core, exceptions, hslogger
-     , http-client, http-client-tls, http-types, HUnit, network, process
-     , random, regex-base, regex-compat, regex-pcre, regex-tdfa, retry
-     , scientific, servant, servant-server, stm, sysinfo, text, time
-     , transformers, unix, unordered-containers, wai, warp
+     , case-insensitive, containers, directory, ekg-core, exceptions
+     , hslogger, http-client, http-client-tls, http-types, HUnit
+     , network, process, random, regex-base, regex-compat, regex-pcre
+     , regex-tdfa, retry, scientific, servant, servant-server, stm
+     , sysinfo, text, time, transformers, unix, unordered-containers
+     , wai, warp
      }:
      mkDerivation {
        pname = "instana-haskell-trace-sdk";
-       version = "0.5.0.1";
-       sha256 = "1414c9jahmkszpag40iyzrr0g346dp9l1ssz60693ivcm0q16pii";
+       version = "0.6.2.0";
+       sha256 = "1yvxsz1b9qrhyw6zamqs5254mpba3vijhach1n424mqa6aq1935s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -146777,9 +149355,9 @@ self: {
          scientific stm sysinfo text time unix unordered-containers wai
        ];
        executableHaskellDepends = [
-         aeson base binary bytestring hslogger http-client http-types
-         servant servant-server text time transformers unix
-         unordered-containers wai warp
+         aeson base binary bytestring case-insensitive containers hslogger
+         http-client http-types servant servant-server text time
+         transformers unix unordered-containers wai warp
        ];
        testHaskellDepends = [
          aeson aeson-extra base bytestring directory ekg-core exceptions
@@ -146930,7 +149508,7 @@ self: {
          http-types network scotty text wai wai-extra
        ];
        description = "Basic HTTP gateway to save articles to Instapaper";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -146948,6 +149526,36 @@ self: {
        broken = true;
      }) {};
 
+  "instrument" = callPackage
+    ({ mkDerivation, array, async, base, bytestring, cereal
+     , cereal-text, conduit, containers, csv-conduit, data-default
+     , errors, exceptions, hedis, hostname, HUnit, mtl, network, path
+     , path-io, QuickCheck, quickcheck-instances, retry, safe-exceptions
+     , safecopy, safecopy-hunit, statistics, stm, tasty, tasty-hunit
+     , tasty-quickcheck, text, time, transformers, unix, vector, zlib
+     }:
+     mkDerivation {
+       pname = "instrument";
+       version = "0.6.0.0";
+       sha256 = "12wjxd8yi4dg8ca3q96rc2pvdx83hwx5a9zx1i7picl4bm5gq7a4";
+       libraryHaskellDepends = [
+         array base bytestring cereal cereal-text conduit containers
+         csv-conduit data-default errors exceptions hedis hostname mtl
+         network retry safe-exceptions safecopy statistics text time
+         transformers unix vector zlib
+       ];
+       testHaskellDepends = [
+         async base bytestring cereal containers data-default hedis HUnit
+         path path-io QuickCheck quickcheck-instances safe-exceptions
+         safecopy safecopy-hunit stm tasty tasty-hunit tasty-quickcheck
+         transformers
+       ];
+       description = "Easy stats/metrics instrumentation for Haskell programs";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {safecopy-hunit = null;};
+
   "instrument-chord" = callPackage
     ({ mkDerivation, array, base, containers, music-diatonic }:
      mkDerivation {
@@ -146956,7 +149564,7 @@ self: {
        sha256 = "1fc3vgxxzk6rw0y6d40jiyrc66fd1ig7nk4bdmfn1q595q5iwnz3";
        libraryHaskellDepends = [ array base containers music-diatonic ];
        description = "Render Instrument Chords";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "int-cast" = callPackage
@@ -147121,7 +149729,7 @@ self: {
          vector
        ];
        description = "Integrate different assays";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -147288,10 +149896,8 @@ self: {
      }:
      mkDerivation {
        pname = "intern";
-       version = "0.9.3";
-       sha256 = "1pbk804kq5p25ixrihhpfgy0fwj8i6cybxlhk42krzni7ad7gx4k";
-       revision = "1";
-       editedCabalFile = "1cjlmvg55nn9fd1f0jfmgy1rjys7gna3x3qknnpcmndq6vzg1mrl";
+       version = "0.9.4";
+       sha256 = "00c74apc2ap1pjxmzk1c975zzqrc94p69l7v1fvfakv87mbrg8j0";
        libraryHaskellDepends = [
          array base bytestring hashable text unordered-containers
        ];
@@ -147398,7 +150004,7 @@ self: {
          test-framework-hunit
        ];
        description = "GHC preprocessor and library to enable variable interpolation in strings";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -147584,7 +150190,7 @@ self: {
        libraryHaskellDepends = [ base deepseq fingertree ];
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Intervals with adherences";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -147614,21 +150220,13 @@ self: {
      }) {};
 
   "intervals" = callPackage
-    ({ mkDerivation, array, base, Cabal, cabal-doctest, directory
-     , distributive, doctest, filepath, ghc-prim, QuickCheck
-     , template-haskell
-     }:
+    ({ mkDerivation, array, base, distributive, ghc-prim, QuickCheck }:
      mkDerivation {
        pname = "intervals";
-       version = "0.9.1";
-       sha256 = "1s9pj2dah94smq769q4annxv2grdx376wvhzl4rsq85kjppf5a6z";
-       revision = "2";
-       editedCabalFile = "1nrpc95wwifnlk7p9nw6xgcc74zw1k6krhvll7rr18ddjgfgv07x";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.9.2";
+       sha256 = "1qibvgys8lw61x9na3iy3dcglyj9qyhcbfc00glnagl7cbk1shlv";
        libraryHaskellDepends = [ array base distributive ghc-prim ];
-       testHaskellDepends = [
-         base directory doctest filepath QuickCheck template-haskell
-       ];
+       testHaskellDepends = [ base QuickCheck ];
        description = "Interval Arithmetic";
        license = lib.licenses.bsd3;
      }) {};
@@ -147664,7 +150262,9 @@ self: {
        ];
        executablePkgconfigDepends = [ ncurses ];
        description = "A game of competitive puzzle-design";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) ncurses;};
 
   "intrinsic-superclasses" = callPackage
@@ -147818,6 +150418,32 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "inventory" = callPackage
+    ({ mkDerivation, appendmap, array, base, bytestring, containers
+     , directory, filepath, ghc, ghc-paths, mtl, tasty, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "inventory";
+       version = "0.1.0.3";
+       sha256 = "1zja3w6xkah7ydzkn5ydibagn4g3fa16xdjsqvkrkv6yfq54g2j7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         appendmap array base bytestring containers directory filepath ghc
+         ghc-paths mtl
+       ];
+       executableHaskellDepends = [
+         appendmap array base bytestring containers directory filepath ghc
+         ghc-paths mtl
+       ];
+       testHaskellDepends = [
+         appendmap array base bytestring containers directory filepath ghc
+         ghc-paths mtl tasty tasty-hunit
+       ];
+       description = "Project statistics and definition analysis";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "invert" = callPackage
     ({ mkDerivation, base, containers, criterion, generic-deriving
      , hashable, unordered-containers, vector
@@ -147836,6 +150462,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Automatically generate a function's inverse";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "invertible" = callPackage
@@ -147847,6 +150475,8 @@ self: {
        pname = "invertible";
        version = "0.2.0.7";
        sha256 = "1ngcmy59cyrg5idcn8a4gxg6ipq88rhhwhdb09gra8jcraq9n7ii";
+       revision = "1";
+       editedCabalFile = "19xcczz26ji5xaws4ikvacqz991qgislj32hs8rlks07qw3qmnbn";
        libraryHaskellDepends = [
          base haskell-src-meta invariant lens partial-isomorphisms
          semigroupoids template-haskell transformers
@@ -148053,8 +150683,8 @@ self: {
        pname = "io-streams";
        version = "1.5.2.0";
        sha256 = "1hbabrk5145d77qi23688piaf1wc93n8vaj846n0s3zk953z1lk3";
-       revision = "1";
-       editedCabalFile = "1dcadj5gv1m2yy97zsbq5x67vsblp8gy58a0kl5di9vkbgrcw46n";
+       revision = "2";
+       editedCabalFile = "1mr0y8m6xdkgvvk76n7pn1airqzgdp8kd8x6jd9w97iy5wjp14q7";
        configureFlags = [ "-fnointeractivetests" ];
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder network primitive
@@ -148308,6 +150938,37 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ip6addr_1_0_2" = callPackage
+    ({ mkDerivation, base, cmdargs, IPv6Addr, text }:
+     mkDerivation {
+       pname = "ip6addr";
+       version = "1.0.2";
+       sha256 = "0bj9hr085hg8a8x4dcwvf4cf1876acylrl7bnqpmdrpq1n1rb9sp";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [ base cmdargs IPv6Addr text ];
+       description = "Commandline tool to deal with IPv6 address text representations";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "ipa" = callPackage
+    ({ mkDerivation, attoparsec, base, hspec, text, unicode-transforms
+     }:
+     mkDerivation {
+       pname = "ipa";
+       version = "0.3";
+       sha256 = "0cm9ahqaf2kdqny6nmk9ff1h413v0iqbfsf6glrr5vkhmx60h9qm";
+       revision = "2";
+       editedCabalFile = "1jafvzz7vdbkcwywdhx49g2q1f0gah0bz921kia6lbi5jnyaail1";
+       libraryHaskellDepends = [
+         attoparsec base text unicode-transforms
+       ];
+       testHaskellDepends = [ base hspec text ];
+       description = "Internal Phonetic Alphabet (IPA)";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "ipatch" = callPackage
     ({ mkDerivation, base, bytestring, darcs, directory, filepath
      , hashed-storage, process, unix
@@ -148323,7 +150984,7 @@ self: {
          unix
        ];
        description = "interactive patch editor";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -148363,24 +151024,25 @@ self: {
 
   "ipfs" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, directory-tree
-     , doctest, envy, flow, Glob, http-media, ip, lens, lens-aeson
-     , monad-logger, QuickCheck, regex-compat, rio, servant
-     , servant-client, servant-server, swagger2, text, vector, yaml
+     , doctest, envy, flow, Glob, http-media, lens, lens-aeson
+     , monad-logger, network-ip, QuickCheck, regex-compat, rio, servant
+     , servant-client, servant-multipart, servant-server, swagger2, text
+     , vector, yaml
      }:
      mkDerivation {
        pname = "ipfs";
-       version = "1.1.5.1";
-       sha256 = "0c93s1s3l72yw2lb28v37bnhmvcn5s2w1620fsx0z4ij1z8dnk19";
+       version = "1.3.0.3";
+       sha256 = "08g1lvh7w46qsg80h5nm3r333zbhl2q4shnrm5jann4p3g5ii08x";
        libraryHaskellDepends = [
-         aeson base bytestring envy flow Glob http-media ip lens
-         monad-logger regex-compat rio servant servant-client servant-server
-         swagger2 text vector
+         aeson base bytestring envy flow Glob http-media lens monad-logger
+         network-ip regex-compat rio servant servant-client
+         servant-multipart servant-server swagger2 text vector
        ];
        testHaskellDepends = [
          aeson base bytestring directory directory-tree doctest envy flow
-         Glob http-media ip lens lens-aeson monad-logger QuickCheck
-         regex-compat rio servant servant-client servant-server swagger2
-         text vector yaml
+         Glob http-media lens lens-aeson monad-logger network-ip QuickCheck
+         regex-compat rio servant servant-client servant-multipart
+         servant-server swagger2 text vector yaml
        ];
        description = "Access IPFS locally and remotely";
        license = lib.licenses.asl20;
@@ -148470,10 +151132,8 @@ self: {
      }:
      mkDerivation {
        pname = "iproute";
-       version = "1.7.10";
-       sha256 = "0libq5v22cm6bj1lga1rrkgww50bhnpns7rz7da90yycqv2k7d5m";
-       revision = "1";
-       editedCabalFile = "02nh8r0c1p8gzq2y82q8n210y3bs146kjv2v7mr8z0m3k0sh5qqs";
+       version = "1.7.11";
+       sha256 = "12wa59b1zgjqp8dmygq2x44ml0cb89fhn1k0zkj4aqz7rhkwsp90";
        libraryHaskellDepends = [
          appar base byteorder bytestring containers network
        ];
@@ -148659,10 +151319,8 @@ self: {
      }:
      mkDerivation {
        pname = "irc-core";
-       version = "2.9";
-       sha256 = "1n1fd46am795bsb96jnq2kj3gn787q5j41115g1smfp01zbnjp1b";
-       revision = "1";
-       editedCabalFile = "12z28f96iw9jni57rdzy8kz7sa1zwfs5k3fvfmf6sgx6wzhwcm6h";
+       version = "2.10";
+       sha256 = "1x1vmpzmgwxkwcza20yzmymgb7bj04f17xiqvcqg29h53pimnvxj";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring bytestring hashable primitive
          text time vector
@@ -148907,7 +151565,7 @@ self: {
        sha256 = "1yi1ia4ii6xg17ndp0v47cix0ds6bbrsbf0pghcmx3y4b55v0dlr";
        libraryHaskellDepends = [ aeson base http-client lens text wreq ];
        description = "Iron.IO message queueing client library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -149220,7 +151878,7 @@ self: {
          base containers hspec megaparsec QuickCheck
        ];
        description = "Isotopic masses and relative abundances";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -150004,7 +152662,7 @@ self: {
          haskell98 hoauth mtl old-locale parsec time utf8-string xml
        ];
        description = "CLI (command line interface) to YQL";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -150101,7 +152759,7 @@ self: {
        sha256 = "03ysmgg5f3dsimskqw5vpnrv5jg4gf1gd0khmf0s1ilfm1jc1nfd";
        libraryHaskellDepends = [ base hosc ];
        description = "control JackMiniMix";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -150232,7 +152890,7 @@ self: {
        ];
        executableHaskellDepends = [ base boxes directory filepath ];
        description = "Export sheet music and audio from Windows/Mac app Jammit";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "japanese-calendar" = callPackage
@@ -150579,7 +153237,7 @@ self: {
        ];
        executableHaskellDepends = [ base mtl network ];
        description = "Implementation of Java Debug Interface";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -150691,8 +153349,8 @@ self: {
     ({ mkDerivation, base, mtl, parsec, tasty, tasty-hunit, text }:
      mkDerivation {
        pname = "jira-wiki-markup";
-       version = "1.3.2";
-       sha256 = "16vcy9gn6qrzvr99l26az4yi2dy9xngcb1wmj86yl7bmk1hcq3wc";
+       version = "1.3.4";
+       sha256 = "0rrqaibgafbynrlcsp7f7hkzgkp2gix7ji2hkpgpby6fvp6965fh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mtl parsec text ];
@@ -151036,8 +153694,8 @@ self: {
      }:
      mkDerivation {
        pname = "jose-jwt";
-       version = "0.9.0";
-       sha256 = "1dnkyzs7kk2lxz2kj3x6v8w1lypsr0rppyn78s7w5sr89y924752";
+       version = "0.9.1";
+       sha256 = "0dy076k7zrg9mn4ll73k5p68r1dwzj9wqm4zn7w22py6wx06xg9p";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring cereal containers cryptonite
          memory mtl text time transformers transformers-compat
@@ -151052,6 +153710,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "jose-jwt_0_9_2" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, cereal
+     , containers, criterion, cryptonite, hspec, HUnit, memory, mtl
+     , QuickCheck, text, time, transformers, transformers-compat
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "jose-jwt";
+       version = "0.9.2";
+       sha256 = "1iwzrpgd9lhp0c2hhyv3nfcv5pw344vp1llqf9vdw5mliz116jn4";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring cereal containers cryptonite
+         memory mtl text time transformers transformers-compat
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring cryptonite hspec HUnit memory mtl QuickCheck
+         text unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [ base bytestring criterion cryptonite ];
+       description = "JSON Object Signing and Encryption Library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "jot" = callPackage
     ({ mkDerivation, base, data-default, dhall, docopt, extra, filepath
      , process, time, turtle, yaml
@@ -151599,8 +154282,6 @@ self: {
        ];
        description = "Load JSON from files in a directory structure";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-encoder" = callPackage
@@ -151806,6 +154487,8 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "JSON Pointer (RFC 6901) parsing, access, and modification";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "json-python" = callPackage
@@ -151843,6 +154526,30 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "json-query" = callPackage
+    ({ mkDerivation, array-chunks, base, bytebuild, byteslice
+     , bytestring, json-syntax, neat-interpolation, primitive
+     , scientific-notation, tasty, tasty-hunit, text, text-short
+     , transformers
+     }:
+     mkDerivation {
+       pname = "json-query";
+       version = "0.1.0.0";
+       sha256 = "0i1lw40j6qdfcj44mzp5g99plqwdwbh4ab3rfvv24v2c2fq20kqm";
+       libraryHaskellDepends = [
+         array-chunks base bytebuild bytestring json-syntax primitive
+         scientific-notation text-short transformers
+       ];
+       testHaskellDepends = [
+         array-chunks base bytebuild byteslice bytestring json-syntax
+         neat-interpolation primitive tasty tasty-hunit text text-short
+       ];
+       description = "Kitchen sink for querying JSON";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "json-rpc" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, conduit
      , conduit-extra, deepseq, hashable, hspec, monad-logger, mtl
@@ -152030,17 +154737,17 @@ self: {
   "json-syntax" = callPackage
     ({ mkDerivation, aeson, array-builder, array-chunks, base
      , bytebuild, byteslice, bytesmith, bytestring, gauge
-     , neat-interpolation, primitive, scientific, scientific-notation
-     , tasty, tasty-hunit, text, text-short, unordered-containers
-     , vector
+     , neat-interpolation, primitive, run-st, scientific
+     , scientific-notation, tasty, tasty-hunit, text, text-short
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "json-syntax";
-       version = "0.1.2.0";
-       sha256 = "0i0b54ykfd530wl8gmqw13wjwj5m6wdfgc1nyxxdz1abydxy5bpn";
+       version = "0.2.0.0";
+       sha256 = "0gmi2g0bx9aiv9ll97cgdb0fhzcjyd2kxrfc025kscmjv44c1v5w";
        libraryHaskellDepends = [
          array-builder array-chunks base bytebuild byteslice bytesmith
-         bytestring primitive scientific-notation text-short
+         bytestring primitive run-st scientific-notation text-short
        ];
        testHaskellDepends = [
          aeson array-chunks base bytebuild byteslice bytestring
@@ -152086,6 +154793,8 @@ self: {
          recursion-schemes text unordered-containers vector
        ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "json-togo" = callPackage
@@ -152311,6 +155020,41 @@ self: {
        broken = true;
      }) {};
 
+  "jsonnet" = callPackage
+    ({ mkDerivation, aeson, ansi-wl-pprint, base, bytestring
+     , containers, data-fix, deriving-compat, directory, exceptions
+     , filepath, hashable, megaparsec, mtl, optparse-applicative
+     , parser-combinators, scientific, semigroupoids, tasty
+     , tasty-golden, tasty-hunit, template-haskell, text
+     , transformers-compat, unbound-generics, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "jsonnet";
+       version = "0.2.0.0";
+       sha256 = "0ns2yij8yl555n5rb0pahxpqrwxgzfvdr4ajp0dy5amqsv13hhmh";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-wl-pprint base bytestring containers data-fix
+         deriving-compat directory exceptions filepath hashable megaparsec
+         mtl optparse-applicative parser-combinators scientific
+         semigroupoids template-haskell text transformers-compat
+         unbound-generics unordered-containers vector
+       ];
+       executableHaskellDepends = [
+         aeson ansi-wl-pprint base bytestring mtl optparse-applicative text
+       ];
+       testHaskellDepends = [
+         ansi-wl-pprint base bytestring filepath mtl tasty tasty-golden
+         tasty-hunit text
+       ];
+       description = "Jsonnet implementaton in pure Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "jsonpath" = callPackage
     ({ mkDerivation, aeson, aeson-casing, attoparsec, base, bytestring
      , file-embed, hspec, hspec-attoparsec, hspec-discover, text
@@ -152351,13 +155095,13 @@ self: {
 
   "jsonrpc-conduit" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, conduit
-     , conduit-extra, hspec, mtl, text, transformers
+     , conduit-extra, hspec, hspec-discover, mtl, text, transformers
      , unordered-containers
      }:
      mkDerivation {
        pname = "jsonrpc-conduit";
-       version = "0.3.0";
-       sha256 = "0kh1s78zqgb4zdy18vckhzjadg33lr98jzpcqgad51phlbkhf94y";
+       version = "0.3.2";
+       sha256 = "00ssz471iv1vc67cbn3q3ghfd0ic8rjrsvkidx7vd6jd1mgw94ga";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring conduit conduit-extra mtl text
          transformers unordered-containers
@@ -152365,8 +155109,9 @@ self: {
        testHaskellDepends = [
          aeson base bytestring conduit conduit-extra hspec text
        ];
+       testToolDepends = [ hspec-discover ];
        description = "JSON-RPC 2.0 server over a Conduit.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -152536,22 +155281,21 @@ self: {
 
   "juandelacosa" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring
-     , data-default-class, docopt, entropy, fast-logger, http-types
-     , interpolatedstring-perl6, mtl, mysql, mysql-simple, network
-     , resource-pool, scotty, text, unix, wai, wai-extra
-     , wai-middleware-static, warp
+     , data-default-class, entropy, fast-logger, http-types, mtl, mysql
+     , mysql-simple, network, optparse-applicative, resource-pool
+     , scotty, text, unix, wai, wai-extra, wai-middleware-static, warp
      }:
      mkDerivation {
        pname = "juandelacosa";
-       version = "0.1.1";
-       sha256 = "060zq739i3xhr7w448p460r7x3jyyzf7pn61abp7f9g8vjn6vqw7";
+       version = "0.1.2";
+       sha256 = "0lrqklpff24cklsdrlfym7ryvszyripjkwsb0m8dn7vab9yqswn2";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        executableHaskellDepends = [
-         base base64-bytestring bytestring data-default-class docopt entropy
-         fast-logger http-types interpolatedstring-perl6 mtl mysql
-         mysql-simple network resource-pool scotty text unix wai wai-extra
+         base base64-bytestring bytestring data-default-class entropy
+         fast-logger http-types mtl mysql mysql-simple network
+         optparse-applicative resource-pool scotty text unix wai wai-extra
          wai-middleware-static warp
        ];
        description = "Manage users in MariaDB >= 10.1.1";
@@ -152583,7 +155327,7 @@ self: {
          optparse-applicative text unordered-containers yaml
        ];
        description = "Tableau-based theorem prover for justification logic";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -153142,8 +155886,8 @@ self: {
      }:
      mkDerivation {
        pname = "kan-extensions";
-       version = "5.2.1";
-       sha256 = "114zs8j81ich4178qvvlnpch09dvbv1mm1g7xf2g78f77gh9ia7a";
+       version = "5.2.2";
+       sha256 = "184qhhjd24i15mcs4lq8fdb86pdg3g5nxhx1x41prigrmi6cxwrv";
        libraryHaskellDepends = [
          adjunctions array base comonad containers contravariant
          distributive free invariant mtl profunctors semigroupoids tagged
@@ -153795,7 +156539,7 @@ self: {
          process
        ];
        description = "Build profiles for kdesrc-build";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -153815,7 +156559,7 @@ self: {
          process
        ];
        description = "Build profiles for kdesrc-build";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "kdt" = callPackage
@@ -153895,8 +156639,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "keep-alive";
-       version = "0.1.1.0";
-       sha256 = "1h1x28adh7y561pmmbw064vyz9qx013spkcr8pwg9hjcnzn03yvw";
+       version = "0.2.0.0";
+       sha256 = "1hkmm1933y6dlzr88p75kkl6qiw5jnb1f4klfbwbl2d3jx8fg92k";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "TCP keep alive implementation";
@@ -154293,8 +157037,8 @@ self: {
      }:
      mkDerivation {
        pname = "kempe";
-       version = "0.1.1.2";
-       sha256 = "1nmmka06zin3i4y30510c56yk3vjxvnndfb38w4v557xr94rirkd";
+       version = "0.2.0.1";
+       sha256 = "1xs2jism3r2pgvir1rr318dfrjagkagvzzdrs7n9070xzv3p3c5q";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -154312,7 +157056,7 @@ self: {
          process tasty tasty-golden tasty-hunit temporary text
        ];
        benchmarkHaskellDepends = [
-         base bytestring criterion prettyprinter text
+         base bytestring criterion prettyprinter temporary text
        ];
        doHaddock = false;
        description = "Kempe compiler";
@@ -154581,7 +157325,7 @@ self: {
          unix unix-compat utf8-string wai warp zxcvbn-c
        ];
        description = "back up a secret key securely to the cloud";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -154676,7 +157420,7 @@ self: {
          parsec text transformers unix unordered-containers yaml
        ];
        description = "Command-line file tagging and organization tool";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -154691,8 +157435,6 @@ self: {
        testHaskellDepends = [ base stm ];
        description = "A lightweight, structured-concurrency library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kibro" = callPackage
@@ -154816,8 +157558,8 @@ self: {
      }:
      mkDerivation {
        pname = "kind-generics-th";
-       version = "0.2.2.1";
-       sha256 = "014dzqs8n15vvj0vypd0ws1yxn1vy92gbk2zvi5m660wsgrj62aa";
+       version = "0.2.2.2";
+       sha256 = "1lgz7wvz5jvq65r7zmymcfx3hwskw2b45a3vfwj0pgnddpjmh9n4";
        libraryHaskellDepends = [
          base ghc-prim kind-generics template-haskell th-abstraction
        ];
@@ -155226,6 +157968,8 @@ self: {
        doHaddock = false;
        description = "Extracts values from /proc/cmdline";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "kqueue" = callPackage
@@ -155233,10 +157977,8 @@ self: {
      }:
      mkDerivation {
        pname = "kqueue";
-       version = "0.2";
-       sha256 = "0sbkyq17i41kln7scrfc9kdzsbyb787z33kzpkdz2vrziapns33h";
-       revision = "3";
-       editedCabalFile = "17wanwn4pmh6z6v7ncg50q4sgg87lllld50wa5j5mmb07q4c3mj7";
+       version = "0.2.1";
+       sha256 = "0svrswcglipmm47lnqi41hcsn1gvkcniva6qajwqxrdr0wvvhgdi";
        libraryHaskellDepends = [ base directory filepath mtl time unix ];
        libraryToolDepends = [ c2hs ];
        description = "A binding to the kqueue event library";
@@ -155986,7 +158728,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base parsec ];
        description = "Untyped Lambda calculus to JavaScript compiler";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -156586,7 +159328,7 @@ self: {
          base clash-prelude Lambdaya template-haskell
        ];
        description = "Fpga bus core and serialization for RedPitaya";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -156663,7 +159405,7 @@ self: {
        sha256 = "1nmyirpf07q7lrgfdqxwaspa173a2g3077gy9k7rpviw8pg2az0w";
        libraryHaskellDepends = [ base bytestring http-streams Mapping ];
        description = "A Lisp";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -157079,8 +159821,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-docker";
-       version = "9.1.2";
-       sha256 = "014rb5jf650fhsmc02v4xc60w7v1261ri1w9ig6dw0xjdgxalvbs";
+       version = "9.1.3";
+       sha256 = "00nr8fb981rkjzy2xhppvg9avsi377ww28d50rldm5wh7ax9s3w2";
        libraryHaskellDepends = [
          base bytestring containers data-default-class megaparsec
          prettyprinter split text time
@@ -157090,7 +159832,7 @@ self: {
          megaparsec prettyprinter QuickCheck split text time
        ];
        description = "Dockerfile parser, pretty-printer and embedded DSL";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "language-dockerfile" = callPackage
@@ -157118,7 +159860,7 @@ self: {
          transformers unordered-containers yaml
        ];
        description = "Dockerfile linter, parser, pretty-printer and embedded DSL";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -157161,8 +159903,6 @@ self: {
        ];
        description = "JavaScript parser and pretty-printer library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-ecmascript-analysis" = callPackage
@@ -157178,8 +159918,6 @@ self: {
        ];
        description = "JavaScript static analysis library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-eiffel" = callPackage
@@ -157412,12 +160150,12 @@ self: {
     ({ mkDerivation, base, hspec, parsec }:
      mkDerivation {
        pname = "language-js";
-       version = "0.2.0";
-       sha256 = "0j87w6sqyl67ad9qar2q240kbzksds3a301cdykjfa3n6a0r81z1";
+       version = "0.3.0";
+       sha256 = "0f5ql9cqfn443r63g8waar3g5jmfx0xr3kanwrcj54ra1psqm8p1";
        libraryHaskellDepends = [ base parsec ];
        testHaskellDepends = [ base hspec parsec ];
        description = "javascript parser for es6 and es7";
-       license = lib.licenses.bsd3;
+       license = lib.licenses.mit;
      }) {};
 
   "language-kort" = callPackage
@@ -157616,7 +160354,7 @@ self: {
          grammatical-parsers prettyprinter tasty tasty-hunit text
        ];
        description = "Parser, pretty-printer, and more for the Oberon programming language";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -158134,8 +160872,8 @@ self: {
     ({ mkDerivation, base, liblapack, netlib-ffi }:
      mkDerivation {
        pname = "lapack-ffi";
-       version = "0.0.2";
-       sha256 = "11759avf0kzkqy4s24kn556j93l10x28njpg6h14y915pdl35dyl";
+       version = "0.0.3";
+       sha256 = "1qj7l2maka7z0gnkb59kl9qnyql12g5akmmqwsjvcnhbywgiv1yr";
        libraryHaskellDepends = [ base netlib-ffi ];
        libraryPkgconfigDepends = [ liblapack ];
        description = "Auto-generated interface to Fortran LAPACK";
@@ -158231,7 +160969,7 @@ self: {
          HDBC-sqlite3 hsini HTTP mtl old-locale regex-compat tagsoup time
        ];
        description = "Tool to track security alerts on LWN";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -158446,8 +161184,8 @@ self: {
        pname = "lattices";
        version = "2.0.2";
        sha256 = "108rhpax72j6xdl0yqdmg7n32l1j805861f3q9wd3jh8nc67avix";
-       revision = "2";
-       editedCabalFile = "122mrj3b15jv1bjmzc8k37dkc2gy05hg550gia09n7j7n76v0h7i";
+       revision = "3";
+       editedCabalFile = "1n1sv7477v88ibcwb5rh4p1r9r4hj0jj7s0vh6r0y2w4hbhpslvr";
        libraryHaskellDepends = [
          base base-compat containers deepseq hashable integer-logarithms
          QuickCheck semigroupoids tagged transformers universe-base
@@ -158460,8 +161198,6 @@ self: {
        ];
        description = "Fine-grained library for constructing and manipulating lattices";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "launchdarkly-server-sdk" = callPackage
@@ -158474,8 +161210,8 @@ self: {
      }:
      mkDerivation {
        pname = "launchdarkly-server-sdk";
-       version = "2.1.0";
-       sha256 = "1nj6jcmara4x8y292q5qacli6hmfhahw856a0nyngca2c8m5mwr1";
+       version = "2.1.1";
+       sha256 = "1gjiwj8x57z9qs9gxdgqyih38i8rkkvjak4va5cg44qp3rflmby1";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring
          bytestring-conversion clock containers cryptohash exceptions extra
@@ -158727,7 +161463,7 @@ self: {
          template-haskell vector-space
        ];
        description = "Identifiers for not-yet-computed values";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -158749,7 +161485,7 @@ self: {
          temporary
        ];
        description = "Storing computed values for re-use when the same program runs again";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -158784,8 +161520,8 @@ self: {
     ({ mkDerivation, base, containers, doctest, lens, markdown-unlit }:
      mkDerivation {
        pname = "lazy-priority-queue";
-       version = "0.1.0.1";
-       sha256 = "1v0jxf56wxlncw0nppmnm89j14hn8a81swr1y2sbk7gsqf73qd8v";
+       version = "0.1.1";
+       sha256 = "1b853cqc1wybwmnywh9jhcv382v43mfyqxskffizp1m10gii9ss5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
@@ -158793,7 +161529,7 @@ self: {
        testHaskellDepends = [ base doctest lens ];
        testToolDepends = [ markdown-unlit ];
        description = "Lazy-Spined Monadic Priority Queues";
-       license = lib.licenses.bsd3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -158912,14 +161648,12 @@ self: {
      }) {};
 
   "lca" = callPackage
-    ({ mkDerivation, base, Cabal, cabal-doctest, doctest }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "lca";
-       version = "0.3.1";
-       sha256 = "0kj3zsmzckczp51w70x1aqayk2fay4vcqwz8j6sdv0hdw1d093ca";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.4";
+       sha256 = "0miji532qc725vprhnc5p3k4i6515i1fn1g0f7hm0gmq0hvvh51f";
        libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest ];
        description = "O(log n) persistent online lowest common ancestor search without preprocessing";
        license = lib.licenses.bsd3;
      }) {};
@@ -159043,7 +161777,7 @@ self: {
          base blaze-html directory filepath pandoc split
        ];
        description = "A simple portfolio generator";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -159161,8 +161895,8 @@ self: {
     ({ mkDerivation, base, bytestring, text }:
      mkDerivation {
        pname = "leanpub-concepts";
-       version = "1.0.0.1";
-       sha256 = "1vf62iryqmj8ll16cm5xpwaqzlhw8rb7p6pshm87assm9lnw3k8c";
+       version = "1.1.0.1";
+       sha256 = "0ip2kkkkbjf95h9dk9h4c21jz5ygpl1r1rsjdm47dmbvwih6v14c";
        libraryHaskellDepends = [ base bytestring text ];
        description = "Types for the Leanpub API";
        license = lib.licenses.mit;
@@ -159170,15 +161904,17 @@ self: {
 
   "leanpub-wreq" = callPackage
     ({ mkDerivation, aeson, base, bytestring, exceptions
-     , leanpub-concepts, lens, rando, text, time, transformers
+     , leanpub-concepts, mwc-random, text, time, transformers
      , unordered-containers, wreq
      }:
      mkDerivation {
        pname = "leanpub-wreq";
-       version = "1.0.0.0";
-       sha256 = "060ilipz2aj7rci6yiy2r6j8c10hlv8q8qv5wm7ic9rjl2gvx4ra";
+       version = "1.1.0.2";
+       sha256 = "1d1lj4ppvir8s2pv0zcsnadhns30h2axzppf6pkgbcnyis75an1h";
+       revision = "1";
+       editedCabalFile = "0zmwi2sfxv29rj28lri4xky0rbz8xky7jnwmbsynqckzn767a2k9";
        libraryHaskellDepends = [
-         aeson base bytestring exceptions leanpub-concepts lens rando text
+         aeson base bytestring exceptions leanpub-concepts mwc-random text
          time transformers unordered-containers wreq
        ];
        description = "Use the Leanpub API via Wreq";
@@ -159577,6 +162313,45 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "lens_5_0_1" = callPackage
+    ({ mkDerivation, array, assoc, base, base-compat, base-orphans
+     , bifunctors, bytestring, call-stack, comonad, containers
+     , contravariant, criterion, deepseq, distributive, exceptions
+     , filepath, free, generic-deriving, ghc-prim, hashable, HUnit
+     , indexed-traversable, indexed-traversable-instances
+     , kan-extensions, mtl, parallel, profunctors, QuickCheck
+     , reflection, semigroupoids, simple-reflect, strict, tagged
+     , template-haskell, test-framework, test-framework-hunit
+     , test-framework-quickcheck2, text, th-abstraction, these
+     , transformers, transformers-compat, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "lens";
+       version = "5.0.1";
+       sha256 = "0gzwx4b758phm51hz5i4bbkbvjw1ka7qj04zd9l9sh9n6s9ksm7c";
+       libraryHaskellDepends = [
+         array assoc base base-orphans bifunctors bytestring call-stack
+         comonad containers contravariant distributive exceptions filepath
+         free ghc-prim hashable indexed-traversable
+         indexed-traversable-instances kan-extensions mtl parallel
+         profunctors reflection semigroupoids strict tagged template-haskell
+         text th-abstraction these transformers transformers-compat
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base containers deepseq HUnit mtl QuickCheck simple-reflect
+         test-framework test-framework-hunit test-framework-quickcheck2
+         transformers
+       ];
+       benchmarkHaskellDepends = [
+         base base-compat bytestring comonad containers criterion deepseq
+         generic-deriving transformers unordered-containers vector
+       ];
+       description = "Lenses, Folds and Traversals";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "lens-accelerate" = callPackage
     ({ mkDerivation, accelerate, base, lens }:
      mkDerivation {
@@ -159589,43 +162364,35 @@ self: {
      }) {};
 
   "lens-action" = callPackage
-    ({ mkDerivation, base, Cabal, cabal-doctest, comonad, contravariant
-     , directory, doctest, filepath, lens, mtl, profunctors
-     , semigroupoids, semigroups, transformers
+    ({ mkDerivation, base, comonad, contravariant, lens, mtl
+     , profunctors, semigroupoids, transformers
      }:
      mkDerivation {
        pname = "lens-action";
-       version = "0.2.4";
-       sha256 = "06yg4ds0d4cfs3zl1fhc8865i5w6pwqhx9bxngfa8f9974mdiid3";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.2.5";
+       sha256 = "02sv76far3y57p2pgcjsx5ffaai8rm4669qkp82l06vv964f0v2r";
        libraryHaskellDepends = [
          base comonad contravariant lens mtl profunctors semigroupoids
-         semigroups transformers
+         transformers
        ];
-       testHaskellDepends = [ base directory doctest filepath ];
        description = "Monadic Getters and Folds";
        license = lib.licenses.bsd3;
      }) {};
 
   "lens-aeson" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
-     , cabal-doctest, doctest, generic-deriving, lens, scientific
-     , semigroups, simple-reflect, text, unordered-containers, vector
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, lens
+     , scientific, text, unordered-containers, vector
      }:
      mkDerivation {
        pname = "lens-aeson";
-       version = "1.1";
-       sha256 = "03n9dkdyqkkf15h8k4c4bjwgjcbbs2an2cf6z8x54nvkjmprrg7p";
-       revision = "4";
-       editedCabalFile = "1wgk0nd0fxgdbqb6mkslj3gyrs9vdxpb83hvj2n2dcswg3ahwdsy";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "1.1.1";
+       sha256 = "1g37c8p25by3hvy5lmq4rqyl9wxmxmci2h16rj4i5jcp7slf3mvg";
+       revision = "1";
+       editedCabalFile = "16n6id5l84v2n3yd8n5i2my4s4p8m0z85hgbzfrpm3rhr1haja00";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring lens scientific text
          unordered-containers vector
        ];
-       testHaskellDepends = [
-         base doctest generic-deriving semigroups simple-reflect
-       ];
        description = "Law-abiding lenses for aeson";
        license = lib.licenses.mit;
      }) {};
@@ -159683,6 +162450,8 @@ self: {
        pname = "lens-family";
        version = "2.0.0";
        sha256 = "1nq3dwkrjyqafbv4gvwwgz6ih8y4x9bks11jhljh43q3qnjz54v7";
+       revision = "1";
+       editedCabalFile = "1nf0zxhwqkg54mc3kimnqcvg9b732rn35r1rjs1fzf0vwssla3zw";
        libraryHaskellDepends = [
          base containers lens-family-core mtl transformers
        ];
@@ -159690,14 +162459,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "lens-family_2_1_0" = callPackage
+  "lens-family_2_1_1" = callPackage
     ({ mkDerivation, base, containers, lens-family-core, mtl
      , transformers
      }:
      mkDerivation {
        pname = "lens-family";
-       version = "2.1.0";
-       sha256 = "06imgyd97zyvhd3ifq7wvfvfs10x6gsg4cw4a0y9wa0rm81960hl";
+       version = "2.1.1";
+       sha256 = "1ra31r3y672nyqf7147kxws1qvksgics8pgd6fasyf1v0l3c798j";
        libraryHaskellDepends = [
          base containers lens-family-core mtl transformers
        ];
@@ -159733,8 +162502,8 @@ self: {
     ({ mkDerivation, base, hspec, template-haskell, transformers }:
      mkDerivation {
        pname = "lens-family-th";
-       version = "0.5.1.0";
-       sha256 = "1gpjfig8a2dh4v4660rg659hpvrf2vv85v7cwn64xg3043i954qi";
+       version = "0.5.2.0";
+       sha256 = "00glipk0mzq6mjvdi2lqys1d9gsncvphcccigw2ry8k9zc8l85zb";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base hspec template-haskell transformers ];
        description = "Generate lens-family style lenses";
@@ -159822,12 +162591,16 @@ self: {
        pname = "lens-process";
        version = "0.4.0.0";
        sha256 = "1gms2bxa1sygpid09cg3nk1kyhkg4s38dqs0gd77ia2aln6zd7qg";
+       revision = "1";
+       editedCabalFile = "0y1ran4pjqr2226rkmiqij0pf980npr7iv88y5bgcg7hs22f3b57";
        libraryHaskellDepends = [ base filepath lens process ];
        testHaskellDepends = [
          base filepath lens process tasty tasty-hunit
        ];
        description = "Optics for system processes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "lens-properties" = callPackage
@@ -159836,8 +162609,8 @@ self: {
        pname = "lens-properties";
        version = "4.11.1";
        sha256 = "1caciyn75na3f25q9qxjl7ibjam22xlhl5k2pqfiak10lxsmnz2g";
-       revision = "4";
-       editedCabalFile = "1ky3xzh3cgam5ncx7n25xbll7vqw3x7vyhprfmxm34pshkxbrjh7";
+       revision = "5";
+       editedCabalFile = "0zv5r50xz8msrcwrvqym88pwihqcpmlk3vi493jdhik4n70cs0c6";
        libraryHaskellDepends = [ base lens QuickCheck transformers ];
        description = "QuickCheck properties for lens";
        license = lib.licenses.bsd3;
@@ -159849,8 +162622,8 @@ self: {
      }:
      mkDerivation {
        pname = "lens-regex";
-       version = "0.1.1";
-       sha256 = "0c673v6k6y7dng6qmi4jbh3jlx803mg5g1911bz54r785fm6p50d";
+       version = "0.1.3";
+       sha256 = "11zgdk46skj3g0436vilcgg4wvclixh07xjwqfcsfhffn0vn3mz4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -160069,8 +162842,8 @@ self: {
      }:
      mkDerivation {
        pname = "lentil";
-       version = "1.5.0.0";
-       sha256 = "1fkgaf4vgn2b8pkvcc9x3dmigqrq4qp31xvjmp3h0g9s1bm9ay5z";
+       version = "1.5.1.0";
+       sha256 = "03h7fk37rrxpnxfpckpfi5k3v7ch4v5vn601m9lj9shbs26h1cdx";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -160084,7 +162857,7 @@ self: {
          semigroups terminal-progress-bar text
        ];
        description = "frugal issue tracker";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -160304,7 +163077,7 @@ self: {
        libraryHaskellDepends = [ base containers doctest lattices ];
        testHaskellDepends = [ base doctest QuickCheck ];
        description = "L-Fuzzy Set Theory implementation in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -160475,8 +163248,8 @@ self: {
     ({ mkDerivation, base, deepseq, hashable }:
      mkDerivation {
        pname = "libBF";
-       version = "0.6";
-       sha256 = "01dh44fj1fhg912hw6p0r1ng7spm59xpzwc1rps8p2lcsicj4gvw";
+       version = "0.6.2";
+       sha256 = "00axpwgwzqchma89fdp1dxk97palvgv4j1ag8dq1w4gl9yh5q0vx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base deepseq hashable ];
@@ -160643,8 +163416,8 @@ self: {
        pname = "libfuse3";
        version = "0.1.2.0";
        sha256 = "0a59b4xag5vzisrnvf4v1zkdsdzky96h8w2mdj6cip3vgr196frb";
-       revision = "1";
-       editedCabalFile = "0gnq6aav00xx7dc8am87q2n6xw7cf7jm29g5bq5n1b72gqs91rzf";
+       revision = "2";
+       editedCabalFile = "0fbf1zrw5i3jag6yrzxsxcx82dag7a3mw5rmz6ab6v3gm9w8m9b2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -160709,7 +163482,7 @@ self: {
          base bytestring ghc ghc-paths hspec mtl syb
        ];
        description = "Backend for text editors to provide better Haskell editing support";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -160734,6 +163507,22 @@ self: {
        broken = true;
      }) {};
 
+  "libiserv_9_0_1" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers, deepseq
+     , ghci, unix
+     }:
+     mkDerivation {
+       pname = "libiserv";
+       version = "9.0.1";
+       sha256 = "1f7q09xyxv0q9rjmr0a9f96am44rjsy0r5iy9b8lkrch67xfjd3v";
+       libraryHaskellDepends = [
+         base binary bytestring containers deepseq ghci unix
+       ];
+       description = "Provides shared functionality between iserv and iserv-proxy";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "libjenkins" = callPackage
     ({ mkDerivation, async, attoparsec, base, bytestring, conduit
      , containers, directory, doctest, filepath, free, hspec
@@ -160856,7 +163645,7 @@ self: {
          test-framework-th text time transformers
        ];
        description = "Prelude based on protolude for GHC 8 and beyond";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -160934,7 +163723,7 @@ self: {
          test-framework-th text time transformers
        ];
        description = "Prelude based on protolude for GHC 8 and beyond";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -160977,7 +163766,7 @@ self: {
          base directory errors protolude tasty tasty-hunit text
        ];
        description = "Bindings to the nix package manager";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -161031,7 +163820,7 @@ self: {
        executableHaskellDepends = [ base bytestring time ];
        testHaskellDepends = [ base ];
        description = "Bindings to liboath";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {liboath = null; oath = null;};
@@ -161063,7 +163852,7 @@ self: {
        librarySystemDepends = [ pafe ];
        testHaskellDepends = [ base bytestring iconv transformers ];
        description = "Wrapper for libpafe";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {pafe = null;};
@@ -161321,7 +164110,7 @@ self: {
          base HUnit network test-framework test-framework-hunit
        ];
        description = "Haskell bindings for libsystemd-daemon";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {libsystemd-daemon = null; systemd-daemon = null;};
@@ -161356,7 +164145,7 @@ self: {
        librarySystemDepends = [ taglib ];
        libraryPkgconfigDepends = [ taglib ];
        description = "Binding to TagLib C library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) taglib;};
@@ -161365,8 +164154,8 @@ self: {
     ({ mkDerivation, base, bytestring, libtelnet }:
      mkDerivation {
        pname = "libtelnet";
-       version = "0.1.0.0";
-       sha256 = "0s2ldi4ikjdvki8r190mnkjd0jkahn8ln6gvqb8bn5d291j19nmc";
+       version = "0.1.0.1";
+       sha256 = "13g7wpibjncj9h6yva8gj9fqs8j806r1vnina78wgv8f980dqxks";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring ];
@@ -161379,8 +164168,8 @@ self: {
     ({ mkDerivation, base, bytestring, libversion }:
      mkDerivation {
        pname = "libversion";
-       version = "0.1.0";
-       sha256 = "0w5maaklglbxp7k0ah699w1mhjsjrpgw9n7axld319dpfdwhl94j";
+       version = "0.1.1";
+       sha256 = "0zxkwiacaznf30wgywmawmqrpvi4r1wwfh6pys82jgr0v8yla4v8";
        libraryHaskellDepends = [ base bytestring ];
        libraryPkgconfigDepends = [ libversion ];
        description = "Haskell binding to libversion";
@@ -161582,6 +164371,8 @@ self: {
        ];
        description = "Synchronize personal configs across multiple machines";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "lifetimes" = callPackage
@@ -161639,14 +164430,35 @@ self: {
      }) {};
 
   "lifted-async" = callPackage
-    ({ mkDerivation, async, base, constraints, criterion, deepseq
-     , HUnit, lifted-base, monad-control, mtl, tasty
+    ({ mkDerivation, async, base, constraints, deepseq, HUnit
+     , lifted-base, monad-control, mtl, tasty, tasty-bench
      , tasty-expected-failure, tasty-hunit, tasty-th, transformers-base
      }:
      mkDerivation {
        pname = "lifted-async";
-       version = "0.10.1.2";
-       sha256 = "04spjv6l7bpdl3wla78yqg8misq5ym6vi4q8d03iaw2kg4cwn95x";
+       version = "0.10.1.3";
+       sha256 = "1hml672j8sqxhklxif3nwr8v59a596wwwbllq0zvvmlxcjdzlh7k";
+       libraryHaskellDepends = [
+         async base constraints lifted-base monad-control transformers-base
+       ];
+       testHaskellDepends = [
+         async base HUnit lifted-base monad-control mtl tasty
+         tasty-expected-failure tasty-hunit tasty-th
+       ];
+       benchmarkHaskellDepends = [ async base deepseq tasty-bench ];
+       description = "Run lifted IO operations asynchronously and wait for their results";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "lifted-async_0_10_2" = callPackage
+    ({ mkDerivation, async, base, constraints, deepseq, HUnit
+     , lifted-base, monad-control, mtl, tasty, tasty-bench
+     , tasty-expected-failure, tasty-hunit, tasty-th, transformers-base
+     }:
+     mkDerivation {
+       pname = "lifted-async";
+       version = "0.10.2";
+       sha256 = "0alhvrvxp4f4srllyq5br3waiba4c93cc4nxm7jd23440swr6a31";
        libraryHaskellDepends = [
          async base constraints lifted-base monad-control transformers-base
        ];
@@ -161654,9 +164466,10 @@ self: {
          async base HUnit lifted-base monad-control mtl tasty
          tasty-expected-failure tasty-hunit tasty-th
        ];
-       benchmarkHaskellDepends = [ async base criterion deepseq ];
+       benchmarkHaskellDepends = [ async base deepseq tasty-bench ];
        description = "Run lifted IO operations asynchronously and wait for their results";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lifted-base" = callPackage
@@ -162093,7 +164906,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base ];
        description = "Convert newlines in text";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "line-drawing" = callPackage
@@ -162120,7 +164933,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base ];
        description = "Display the number of bytes of each line";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "line2pdf" = callPackage
@@ -162140,20 +164953,21 @@ self: {
   "linear" = callPackage
     ({ mkDerivation, adjunctions, base, base-orphans, binary, bytes
      , bytestring, cereal, containers, deepseq, distributive, ghc-prim
-     , hashable, HUnit, lens, random, reflection, semigroupoids
-     , semigroups, simple-reflect, tagged, template-haskell
-     , test-framework, test-framework-hunit, transformers
-     , transformers-compat, unordered-containers, vector, void
+     , hashable, HUnit, indexed-traversable, lens, random, reflection
+     , semigroupoids, semigroups, simple-reflect, tagged
+     , template-haskell, test-framework, test-framework-hunit
+     , transformers, transformers-compat, unordered-containers, vector
+     , void
      }:
      mkDerivation {
        pname = "linear";
-       version = "1.21.4";
-       sha256 = "019dsw4xqcmz8g0hanc3xsl0k1pqzxkhp9jz1sf12mqsgs6jj0zr";
+       version = "1.21.5";
+       sha256 = "19pvz467wd8gss95qfi90xnd5fwm6dpdppr21g5n30x4m7niymn3";
        libraryHaskellDepends = [
          adjunctions base base-orphans binary bytes cereal containers
-         deepseq distributive ghc-prim hashable lens random reflection
-         semigroupoids semigroups tagged template-haskell transformers
-         transformers-compat unordered-containers vector void
+         deepseq distributive ghc-prim hashable indexed-traversable lens
+         random reflection semigroupoids semigroups tagged template-haskell
+         transformers transformers-compat unordered-containers vector void
        ];
        testHaskellDepends = [
          base binary bytestring deepseq HUnit reflection simple-reflect
@@ -162226,6 +165040,8 @@ self: {
        ];
        description = "Standard library for linear types";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "linear-circuit" = callPackage
@@ -162273,7 +165089,7 @@ self: {
          tasty-smallcheck
        ];
        description = "A simple library for linear codes (coding theory, error correction)";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -162332,7 +165148,7 @@ self: {
        libraryHaskellDepends = [ base bytestring network ];
        testHaskellDepends = [ base hspec network tasty-hspec ];
        description = "Typed sockets";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "linear-tests" = callPackage
@@ -162390,7 +165206,7 @@ self: {
          semigroups tagged transformers vector vector-space
        ];
        description = "Native, complete, matrix-free linear algebra";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -162746,11 +165562,22 @@ self: {
        ];
        libraryPkgconfigDepends = [ blkid ];
        description = "Linux libblkid";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {blkid = null;};
 
+  "linux-capabilities" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "linux-capabilities";
+       version = "0.1.0.0";
+       sha256 = "033mnbxg9bzi3cc4js22gpi96g5yslv6sksxdsgab5k075gad85k";
+       libraryHaskellDepends = [ base ];
+       description = "Linux capabilities Haskell data type";
+       license = lib.licenses.asl20;
+     }) {};
+
   "linux-cgroup" = callPackage
     ({ mkDerivation, base, filepath }:
      mkDerivation {
@@ -162967,7 +165794,9 @@ self: {
        ];
        description = "Labeled File System interface for LIO";
        license = "GPL";
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "lio-simple" = callPackage
@@ -162991,7 +165820,26 @@ self: {
          simple-templates text
        ];
        description = "LIO support for the Simple web framework";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "lion" = callPackage
+    ({ mkDerivation, base, Cabal, clash-prelude, generic-monoid
+     , ghc-typelits-extra, ghc-typelits-knownnat
+     , ghc-typelits-natnormalise, ice40-prim, lens, mtl
+     }:
+     mkDerivation {
+       pname = "lion";
+       version = "0.2.0.0";
+       sha256 = "0i0sr8jiaigpfhy4wnvblnrx5bl7l1vbh0pzjpdzks6r3g07h58f";
+       libraryHaskellDepends = [
+         base Cabal clash-prelude generic-monoid ghc-typelits-extra
+         ghc-typelits-knownnat ghc-typelits-natnormalise ice40-prim lens mtl
+       ];
+       description = "RISC-V Core";
+       license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -163241,6 +166089,8 @@ self: {
        testSystemDepends = [ z3 ];
        description = "Liquid Types for Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) z3;};
 
   "liquidhaskell-cabal" = callPackage
@@ -163387,7 +166237,7 @@ self: {
          ansi-terminal base data-default hspec stm terminal-size vty
        ];
        description = "A simple list prompt UI for the terminal";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -163415,7 +166265,7 @@ self: {
          MissingH tasty tasty-hunit tasty-quickcheck
        ];
        description = "List all remote forwards for mail accounts stored in a SQL database";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -163585,6 +166435,8 @@ self: {
        pname = "list-tuple";
        version = "0.1.3.0";
        sha256 = "1qd5pr7i9xsym09ly6am3a0id3cwbb8w4xphbsjkv3wrlfv9z9v0";
+       revision = "1";
+       editedCabalFile = "1xmim80y3mcj81ak2xh3mpy1g2kqwqy4q7rh8n69ipbwsldqcfwg";
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base OneTuple Only single-tuple ];
        testHaskellDepends = [
@@ -164629,7 +167481,7 @@ self: {
        sha256 = "1172rmrk5xgqsy9igg9bspbybvhmbpakvjijn6gnp715a01gfadd";
        libraryHaskellDepends = [ base containers text transformers ];
        description = "Library for localization (l10n)";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "localize" = callPackage
@@ -164846,8 +167698,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-base";
-       version = "0.9.0.0";
-       sha256 = "0rlwr80636b4rrjgqg7ri5cfz95v9h47r9k413r9wvldfvz2abyg";
+       version = "0.9.1.0";
+       sha256 = "0p0zb805a8zlxdnii6r0gmf0zic4g4zxkvcq84j6g8973qx1fch9";
        libraryHaskellDepends = [
          aeson aeson-pretty base bytestring deepseq exceptions mmorph
          monad-control monad-time mtl semigroups stm text time
@@ -164858,24 +167710,17 @@ self: {
      }) {};
 
   "log-domain" = callPackage
-    ({ mkDerivation, base, binary, bytes, Cabal, cabal-doctest, cereal
-     , comonad, deepseq, distributive, doctest, generic-deriving
-     , hashable, semigroupoids, semigroups, simple-reflect, vector
+    ({ mkDerivation, base, binary, bytes, cereal, comonad, deepseq
+     , distributive, hashable, semigroupoids, semigroups, vector
      }:
      mkDerivation {
        pname = "log-domain";
-       version = "0.13";
-       sha256 = "0isl8rs0k5088sxapfh351sff3lh7r1qkgwz8lmai3gvqasb3avv";
-       revision = "3";
-       editedCabalFile = "10ajmxkjbbkdrkasgfd5hhjcbggrylrg00m1lafac53v97hqpyp1";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.13.1";
+       sha256 = "0ipiiflzs1r7wm5k8b9cqn4l09rjdyks3pxnm4p3kmncd5s2ajsv";
        libraryHaskellDepends = [
          base binary bytes cereal comonad deepseq distributive hashable
          semigroupoids semigroups vector
        ];
-       testHaskellDepends = [
-         base doctest generic-deriving semigroups simple-reflect
-       ];
        description = "Log-domain arithmetic";
        license = lib.licenses.bsd3;
      }) {};
@@ -165524,7 +168369,7 @@ self: {
        ];
        testHaskellDepends = [ base test-framework ];
        description = "A library for lattice cryptography";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -165546,7 +168391,7 @@ self: {
          test-framework time
        ];
        description = "Lattice-based cryptographic applications using <https://hackage.haskell.org/package/lol lol>.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -165564,7 +168409,7 @@ self: {
          MonadRandom split statistics
        ];
        description = "A library for benchmarking <https://hackage.haskell.org/package/lol lol>.";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -165587,7 +168432,7 @@ self: {
          text-format transformers
        ];
        description = "Calculus for LOL (λω language)";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -165608,7 +168453,7 @@ self: {
        testHaskellDepends = [ base lol lol-apps test-framework ];
        benchmarkHaskellDepends = [ base DRBG lol lol-apps MonadRandom ];
        description = "A fast C++ backend for <https://hackage.haskell.org/package/lol lol>.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -165629,7 +168474,7 @@ self: {
        testHaskellDepends = [ base lol-tests ];
        benchmarkHaskellDepends = [ base DRBG lol lol-benches ];
        description = "A repa backend for <https://hackage.haskell.org/package/lol lol>.";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -165650,7 +168495,7 @@ self: {
        ];
        testHaskellDepends = [ base lol test-framework ];
        description = "A library for testing <https://hackage.haskell.org/package/lol Λ ∘ λ>.";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -165676,7 +168521,7 @@ self: {
          monad-classes tasty tasty-hunit text text-format transformers
        ];
        description = "Type inferencer for LOL (λω language)";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -165951,18 +168796,18 @@ self: {
      }) {};
 
   "lorentz" = callPackage
-    ({ mkDerivation, aeson-pretty, base, bimap, bytestring, constraints
-     , containers, data-default, first-class-families, fmt, interpolate
-     , lens, morley, morley-prelude, mtl, named, optparse-applicative
-     , singletons, template-haskell, text, text-manipulate
-     , unordered-containers, vinyl, with-utf8
+    ({ mkDerivation, aeson-pretty, base-noprelude, bimap, bytestring
+     , constraints, containers, data-default, first-class-families, fmt
+     , interpolate, lens, morley, morley-prelude, mtl, named
+     , optparse-applicative, singletons, template-haskell, text
+     , text-manipulate, unordered-containers, vinyl, with-utf8
      }:
      mkDerivation {
        pname = "lorentz";
-       version = "0.9.1";
-       sha256 = "1f4rf4q6gfiz55qlfpkzk19nq6fw92ri3a1smyv4r55i50jr07rm";
+       version = "0.11.0";
+       sha256 = "0mnxch3bz5hpbykfpgjvq521a596g59lkzydijwqccj9cganmr55";
        libraryHaskellDepends = [
-         aeson-pretty base bimap bytestring constraints containers
+         aeson-pretty base-noprelude bimap bytestring constraints containers
          data-default first-class-families fmt interpolate lens morley
          morley-prelude mtl named optparse-applicative singletons
          template-haskell text text-manipulate unordered-containers vinyl
@@ -165984,7 +168829,7 @@ self: {
        librarySystemDepends = [ loris ];
        libraryToolDepends = [ c2hs ];
        description = "interface to Loris API";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {loris = null;};
@@ -166103,7 +168948,7 @@ self: {
          vector
        ];
        description = "An EDSL for diagrams based based on linear constraints";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "lp-diagrams-svg" = callPackage
@@ -166224,6 +169069,8 @@ self: {
        testHaskellDepends = [ base directory filepath simple-cmd ];
        description = "List dir files starting from a specific name";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "lsp" = callPackage
@@ -166236,8 +169083,8 @@ self: {
      }:
      mkDerivation {
        pname = "lsp";
-       version = "1.0.0.1";
-       sha256 = "1h7ymzzm00dnvbqxz4g0zp3mvm6v9bjbgkazz514wqrcmma27cm1";
+       version = "1.1.1.0";
+       sha256 = "04ndz4v1mwga13qndmnaaj145y5zqw7zv64px7ak26qvd1m26h9r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -166256,6 +169103,37 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "lsp_1_2_0_0" = callPackage
+    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
+     , containers, data-default, dependent-map, directory, 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
+     }:
+     mkDerivation {
+       pname = "lsp";
+       version = "1.2.0.0";
+       sha256 = "0ca8s84xlh9kmi1lx47d6z3c8c827q30spmbxi1nl37dn35ib4b6";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async attoparsec base bytestring containers data-default
+         dependent-map directory filepath hashable hslogger lens lsp-types
+         mtl network-uri random scientific sorted-list stm text time
+         transformers unliftio-core unordered-containers uuid
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers data-default directory filepath
+         hashable hspec lens network-uri QuickCheck quickcheck-instances
+         rope-utf16-splay sorted-list stm text unordered-containers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Haskell library for the Microsoft Language Server Protocol";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "lsp-test" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
      , bytestring, conduit, conduit-parse, containers, data-default
@@ -166283,27 +169161,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "lsp-test_0_11_0_7" = callPackage
+  "lsp-test_0_13_0_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
      , bytestring, conduit, conduit-parse, containers, data-default
-     , Diff, directory, filepath, Glob, haskell-lsp, hspec, lens, mtl
-     , parser-combinators, process, text, transformers, unix
+     , Diff, directory, filepath, Glob, hspec, lens, lsp-types, mtl
+     , parser-combinators, process, some, text, time, transformers, unix
      , unordered-containers
      }:
      mkDerivation {
        pname = "lsp-test";
-       version = "0.11.0.7";
-       sha256 = "01var9nm3kpw65jaz4rvky35ibrpfjyhfas9bi8avrw1vh2ybkcn";
+       version = "0.13.0.0";
+       sha256 = "1xyxmzcd6r56jj1k11lz1g6yld5q3k6cgb0bsf45px120dsf1dpy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal async base bytestring conduit
          conduit-parse containers data-default Diff directory filepath Glob
-         haskell-lsp lens mtl parser-combinators process text transformers
-         unix unordered-containers
+         lens lsp-types mtl parser-combinators process some text time
+         transformers unix unordered-containers
        ];
        testHaskellDepends = [
-         aeson base data-default directory filepath haskell-lsp hspec lens
+         aeson base data-default directory filepath hspec lens lsp-types
          text unordered-containers
        ];
        description = "Functional test framework for LSP servers";
@@ -166311,29 +169189,29 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "lsp-test_0_12_0_0" = callPackage
+  "lsp-test_0_14_0_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
      , bytestring, conduit, conduit-parse, containers, data-default
-     , Diff, directory, filepath, Glob, haskell-lsp, hspec, lens, mtl
-     , parser-combinators, process, text, transformers, unix
-     , unordered-containers
+     , Diff, directory, extra, filepath, Glob, hspec, lens, lsp
+     , lsp-types, mtl, parser-combinators, process, some, text, time
+     , transformers, unix, unliftio, unordered-containers
      }:
      mkDerivation {
        pname = "lsp-test";
-       version = "0.12.0.0";
-       sha256 = "1zc43j7xyfxv2i9vinx82yhkrr6m4gz46jwn9p39k76ld6j8nzpd";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.14.0.0";
+       sha256 = "1pa6cial43d6dgkabk3ak4jyfznia5bliww7r9126qahj9dxgpcr";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal async base bytestring conduit
          conduit-parse containers data-default Diff directory filepath Glob
-         haskell-lsp lens mtl parser-combinators process text transformers
-         unix unordered-containers
+         lens lsp-types mtl parser-combinators process some text time
+         transformers unix unordered-containers
        ];
        testHaskellDepends = [
-         aeson base data-default directory filepath haskell-lsp hspec lens
-         text unordered-containers
+         aeson async base data-default directory filepath hspec lens lsp mtl
+         parser-combinators process text unliftio unordered-containers
        ];
+       testToolDepends = [ lsp ];
+       benchmarkHaskellDepends = [ base extra lsp process ];
        description = "Functional test framework for LSP servers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -166341,23 +169219,47 @@ self: {
 
   "lsp-types" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, containers
-     , data-default, deepseq, dependent-sum-template, directory
-     , filepath, hashable, hslogger, lens, network-uri, rope-utf16-splay
-     , scientific, some, template-haskell, temporary, text
-     , unordered-containers
+     , data-default, deepseq, dependent-sum, dependent-sum-template
+     , directory, filepath, hashable, hslogger, lens, network-uri
+     , rope-utf16-splay, scientific, some, template-haskell, temporary
+     , text, unordered-containers
      }:
      mkDerivation {
        pname = "lsp-types";
-       version = "1.0.0.1";
-       sha256 = "1yrm42qsbqk94ql0khifcpvicy9lbvwwrvnr41lplbb1vhqvqc27";
+       version = "1.1.0.0";
+       sha256 = "19lkdqwh9a5rsx5nby37v54zhwyja306z0dyslsmdmwqw92qxx54";
+       revision = "1";
+       editedCabalFile = "0iifws4r1h9v1mbsrmbvssvm0gmvzm9yh9h85izly0s51869bbq4";
+       libraryHaskellDepends = [
+         aeson base binary bytestring containers data-default deepseq
+         dependent-sum dependent-sum-template directory filepath hashable
+         hslogger lens network-uri rope-utf16-splay scientific some
+         template-haskell temporary text unordered-containers
+       ];
+       description = "Haskell library for the Microsoft Language Server Protocol, data types";
+       license = lib.licenses.mit;
+     }) {};
+
+  "lsp-types_1_2_0_0" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, containers
+     , data-default, deepseq, dependent-sum, dependent-sum-template
+     , directory, filepath, hashable, hslogger, lens, network-uri
+     , rope-utf16-splay, scientific, some, template-haskell, temporary
+     , text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "lsp-types";
+       version = "1.2.0.0";
+       sha256 = "1axl62yafkxh414dxr5i7pwqw0s3kkqphs7b259qk33vin3qayk3";
        libraryHaskellDepends = [
          aeson base binary bytestring containers data-default deepseq
-         dependent-sum-template directory filepath hashable hslogger lens
-         network-uri rope-utf16-splay scientific some template-haskell
-         temporary text unordered-containers
+         dependent-sum dependent-sum-template directory filepath hashable
+         hslogger lens network-uri rope-utf16-splay scientific some
+         template-haskell temporary text unordered-containers
        ];
        description = "Haskell library for the Microsoft Language Server Protocol, data types";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lss" = callPackage
@@ -166437,8 +169339,8 @@ self: {
      }:
      mkDerivation {
        pname = "lti13";
-       version = "0.2.0.0";
-       sha256 = "004zic7k2a4cii4ny3vbnwn7vwrzbfvi971xz8wgsnvnjmjnpfsq";
+       version = "0.2.0.1";
+       sha256 = "1fcjypadap94f238vnhbchq9dy61mhgwlqpy4v22m34881dvx8gf";
        libraryHaskellDepends = [
          aeson base bytestring containers http-client http-types jose-jwt
          oidc-client safe-exceptions text
@@ -166447,7 +169349,7 @@ self: {
          aeson base bytestring file-embed hspec QuickCheck text th-utilities
        ];
        description = "Core functionality for LTI 1.3.";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -166504,6 +169406,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "lua" = callPackage
+    ({ mkDerivation, base, bytestring, tasty, tasty-hunit }:
+     mkDerivation {
+       pname = "lua";
+       version = "1.0.0";
+       sha256 = "0ly10sy9xlvalaximff287wd6hr3hxqicsx5alwpqbg9ajxlx798";
+       libraryHaskellDepends = [ base bytestring ];
+       testHaskellDepends = [ base bytestring tasty tasty-hunit ];
+       description = "Lua, an embeddable scripting language";
+       license = lib.licenses.mit;
+     }) {};
+
   "lua-bc" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers
      , data-binary-ieee754, pretty, text, vector
@@ -166553,7 +169467,7 @@ self: {
          text
        ];
        description = "Library functions for reading and writing Lua chunks";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -166599,10 +169513,8 @@ self: {
      }:
      mkDerivation {
        pname = "lucid";
-       version = "2.9.12";
-       sha256 = "156wniydd1hlb7rygbm95zln8ky8lai8rn2apkkv0rax9cdw6jrh";
-       revision = "1";
-       editedCabalFile = "1f0whk5ncanxfjjanrf6rqyncig2xgc5mh2j0sqy3nrlyjr9aqq9";
+       version = "2.9.12.1";
+       sha256 = "0nky4pqxd6828kg3js90ks6r3hxs5x48ibfz37pw2dr7y1nygq21";
        libraryHaskellDepends = [
          base blaze-builder bytestring containers hashable mmorph mtl text
          transformers unordered-containers
@@ -166778,6 +169690,8 @@ self: {
        pname = "lukko";
        version = "0.1.1.3";
        sha256 = "07xb926kixqv5scqdl8w34z42zjzdpbq06f0ha3f3nm3rxhgn3m8";
+       revision = "1";
+       editedCabalFile = "0mmq1q82mrbayiij0p8wdnkf0j8drmq1iibg8kn4cak3nrn9pd1d";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          async base bytestring filepath singleton-bool tasty
@@ -166979,7 +169893,7 @@ self: {
          base exceptions hspec hspec-core random text turtle uuid
        ];
        description = "LXD client written in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -167001,7 +169915,7 @@ self: {
          test-framework-hunit test-framework-quickcheck2 text yaml
        ];
        description = "Read the configuration file of the standard LXD client";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "lye" = callPackage
@@ -167139,7 +170053,7 @@ self: {
        sha256 = "0ccwckq0gkrnahf224s59gsdd9baay1dfc8fh1kz2r87rbygzsk7";
        libraryHaskellDepends = [ base bytestring ];
        description = "Lzip compression / Lzlib bindings";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -167172,8 +170086,8 @@ self: {
        pname = "lzma";
        version = "0.0.0.3";
        sha256 = "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg";
-       revision = "5";
-       editedCabalFile = "1m1a3w8cjqz8h4iibkgykzgmrmkxxgz9sm0zn52dbvczdiqbs5y5";
+       revision = "6";
+       editedCabalFile = "1sh2g5wkh0m6646cxnii0k20f0crwdcnprfl9jfg7gxn5875bkip";
        libraryHaskellDepends = [ base bytestring ];
        librarySystemDepends = [ lzma ];
        testHaskellDepends = [
@@ -167421,24 +170335,20 @@ self: {
      }) {};
 
   "machines" = callPackage
-    ({ mkDerivation, adjunctions, base, Cabal, cabal-doctest, comonad
-     , conduit, containers, criterion, distributive, doctest, mtl, pipes
-     , pointed, profunctors, semigroupoids, semigroups, streaming
-     , transformers, transformers-compat, void
+    ({ mkDerivation, adjunctions, base, comonad, conduit, containers
+     , criterion, distributive, mtl, pipes, pointed, profunctors
+     , semigroupoids, semigroups, streaming, transformers
+     , transformers-compat, void
      }:
      mkDerivation {
        pname = "machines";
-       version = "0.7.1";
-       sha256 = "0ayajyzaczdazfsmamlm5vap43x2mdm4w8v5970y1xlxh4rb3bs1";
-       revision = "1";
-       editedCabalFile = "1cp850vwzn213n0k9s5i62889a1wvmyi05jw6kmazaczcbcs7jsq";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.7.2";
+       sha256 = "0pgsa67j9l1zmazlqdb5wg3cqsikyfvkq8yih7iwcqzkys5qssvr";
        libraryHaskellDepends = [
          adjunctions base comonad containers distributive mtl pointed
          profunctors semigroupoids semigroups transformers
          transformers-compat void
        ];
-       testHaskellDepends = [ base doctest ];
        benchmarkHaskellDepends = [
          base conduit criterion mtl pipes streaming
        ];
@@ -167464,7 +170374,7 @@ self: {
          monad-control mtl resourcet stm stm-containers time transformers
        ];
        description = "Machine transducers for Amazonka calls";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -167477,8 +170387,8 @@ self: {
        pname = "machines-attoparsec";
        version = "0";
        sha256 = "0mxm1gy7kr7czhmfwskl56wnawb2l3axfig22935bliq75mpvbs4";
-       revision = "1";
-       editedCabalFile = "1n57r25q0aajakkl7r82yw6rs9dqlhmr0qmhs7vb7ycs5i1chyis";
+       revision = "2";
+       editedCabalFile = "16gb0nd9njzz0nb97ii6i8vq0c309m6wl0cdgy08rdbf4cpzfx91";
        libraryHaskellDepends = [
          attoparsec base bytestring machines text
        ];
@@ -167495,8 +170405,8 @@ self: {
     ({ mkDerivation, base, binary, bytestring, machines }:
      mkDerivation {
        pname = "machines-binary";
-       version = "0.3.0.3";
-       sha256 = "0lh6q99xfmxl53gkxlrbjh1pfbkff8faxr9fycks98cfcmnlbzv0";
+       version = "7.0.0.0";
+       sha256 = "15zds0g91cn5kckkbfjl17dgi6jikv13c9gwr99fawmq056y29b8";
        libraryHaskellDepends = [ base binary bytestring machines ];
        description = "Binary utilities for the machines library";
        license = lib.licenses.asl20;
@@ -167523,8 +170433,8 @@ self: {
      }:
      mkDerivation {
        pname = "machines-directory";
-       version = "0.2.1.0";
-       sha256 = "1d6yfh26g9gs406ywc42ascnxcfcz2isfa6j921xikzndzdhg744";
+       version = "7.0.0.0";
+       sha256 = "0wkbnw79b4gsxwyk0hymny0q0z3xqy0kbl1mcnv1rlk1xssxyy1q";
        libraryHaskellDepends = [
          base directory filepath machines machines-io transformers
        ];
@@ -167553,8 +170463,8 @@ self: {
      }:
      mkDerivation {
        pname = "machines-io";
-       version = "0.2.0.13";
-       sha256 = "1m7mm3s7inyiy07w8idgwb99k2a9cd1768hkm7ygryllkrg9smsd";
+       version = "7.0.0.0";
+       sha256 = "1d7dxx4g1027v41i1rmaa5s7r5dxcjx271rzh6v671gcxpqm6ysn";
        libraryHaskellDepends = [
          base bytestring chunked-data machines transformers
        ];
@@ -167569,8 +170479,8 @@ self: {
      }:
      mkDerivation {
        pname = "machines-process";
-       version = "0.2.0.8";
-       sha256 = "0bgs9zhx66dij8mipw6llkvyr1q18gsz78s0d71sqmh7lwl965bs";
+       version = "7.0.0.1";
+       sha256 = "0pf1prahz3kcqkcqi7zj1rpbfyvahslknm2m6kwxmmzw0b9d3br9";
        libraryHaskellDepends = [
          base chunked-data machines machines-io process
        ];
@@ -167828,8 +170738,8 @@ self: {
      }:
      mkDerivation {
        pname = "magic-wormhole";
-       version = "0.3.3";
-       sha256 = "1wsm7y05k8byxizkmkyl7bciyz6f3jwxiwqc0gvsqi31kkqajxqn";
+       version = "0.3.4";
+       sha256 = "1i9010zp1w34kfgx5xgd23hjmb0v8h3y3riiw2ripvjxqgikbky4";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -168009,7 +170919,7 @@ self: {
          aeson base bytestring mtl text time xml zip-archive zlib
        ];
        description = "A parser library for DMARC and SMTP TLS reports";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168035,7 +170945,7 @@ self: {
          tasty-hunit
        ];
        description = "Count mailboxes in a SQL database";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "mailchimp" = callPackage
@@ -168321,7 +171231,7 @@ self: {
          template-haskell text unix utf8-string
        ];
        description = "The Haskell/Gtk+ Integrated Live Environment";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168348,7 +171258,7 @@ self: {
        ];
        doHaddock = false;
        description = "Virtual package to install all Manatee packages";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -168369,7 +171279,7 @@ self: {
          split stm text unix utf8-string
        ];
        description = "Multithread interactive input/search framework for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168390,7 +171300,7 @@ self: {
          mtl stm text utf8-string webkit
        ];
        description = "Browser extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -168414,7 +171324,7 @@ self: {
          template-haskell text time unix utf8-string
        ];
        description = "The core of Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168438,7 +171348,7 @@ self: {
          old-time regex-tdfa stm template-haskell text utf8-string
        ];
        description = "Download Manager extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168460,7 +171370,7 @@ self: {
          filepath gtk gtksourceview2 manatee-core regex-tdfa stm text
        ];
        description = "Editor extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168482,7 +171392,7 @@ self: {
          manatee-core mtl old-locale old-time stm text utf8-string
        ];
        description = "File manager extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168504,7 +171414,7 @@ self: {
          gtkimageview manatee-core regex-tdfa stm text utf8-string
        ];
        description = "Image viewer extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168530,7 +171440,7 @@ self: {
          regex-posix split stm template-haskell text unix utf8-string
        ];
        description = "IRC client extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168553,7 +171463,7 @@ self: {
          text time unix utf8-string
        ];
        description = "Mplayer client extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168575,7 +171485,7 @@ self: {
          manatee-core mtl poppler stm text utf8-string
        ];
        description = "PDF viewer extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168596,7 +171506,7 @@ self: {
          proc stm text
        ];
        description = "Process manager extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168618,7 +171528,7 @@ self: {
          filepath gtk manatee-core stm text utf8-string webkit
        ];
        description = "Feed reader extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -168638,7 +171548,7 @@ self: {
          filepath gtk gtksourceview2 manatee-core regex-tdfa stm text
        ];
        description = "Template code to create Manatee application";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168659,7 +171569,7 @@ self: {
          stm text unix vte
        ];
        description = "Terminal Emulator extension for Manatee";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168680,7 +171590,7 @@ self: {
          filepath gtk manatee-core regex-tdfa stm text
        ];
        description = "Welcome module to help user play Manatee quickly";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168695,7 +171605,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base ];
        description = "Simple mancala game";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "mandrill" = callPackage
@@ -168739,7 +171649,7 @@ self: {
          array base bytestring containers directory filepath GLUT hslua time
        ];
        description = "A zooming visualisation of the Mandelbrot Set as many Julia Sets";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168797,7 +171707,7 @@ self: {
          semigroups vector-space
        ];
        description = "Sampling random points on general manifolds";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168828,7 +171738,7 @@ self: {
          tasty-hunit tasty-quickcheck vector-space
        ];
        description = "Coordinate-free hypersurfaces";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -168841,7 +171751,7 @@ self: {
        sha256 = "1bvmr0gcfj7zd0rff0qjlzjy8hqdbh52ljiiazrmqmb9abdsciq3";
        libraryHaskellDepends = [ base call-stack tagged vector-space ];
        description = "The basic classes for the manifolds hierarchy";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "map-classes" = callPackage
@@ -169251,7 +172161,7 @@ self: {
          pandoc temporary text transformers webkit
        ];
        description = "A simple markup document preview (markdown, textile, reStructuredText)";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -169332,7 +172242,7 @@ self: {
          array base bytestring colour gloss MonadRandom mtl random
        ];
        description = "Generates mountainous terrain using a random walk algorithm";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -169426,7 +172336,7 @@ self: {
          base configurator dlist parsek pretty
        ];
        description = "Markup language preprocessor for Haskell";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "masakazu-bot" = callPackage
@@ -169448,7 +172358,7 @@ self: {
          twitter-types
        ];
        description = "@minamiyama1994_bot on haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -169459,8 +172369,8 @@ self: {
      }:
      mkDerivation {
        pname = "mason";
-       version = "0.2.3";
-       sha256 = "0iwbdkrlbjn44gj0g43lfajx35jbihw4in5pc8by33ajwix43y5j";
+       version = "0.2.4";
+       sha256 = "1ic2h2mj31hb972x146wn7p29hlmx9p30f5gi2ccqv2ww96l56fv";
        libraryHaskellDepends = [
          array base bytestring ghc-prim integer-gmp network text
        ];
@@ -169731,6 +172641,30 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "math-functions_0_3_4_2" = callPackage
+    ({ mkDerivation, base, data-default-class, deepseq, erf, gauge
+     , primitive, QuickCheck, random, tasty, tasty-hunit
+     , tasty-quickcheck, vector, vector-th-unbox
+     }:
+     mkDerivation {
+       pname = "math-functions";
+       version = "0.3.4.2";
+       sha256 = "18y1hlc8p6yyxa14zdbm84aaq58kksbrlfp3rj2bd4ilsb00mrf1";
+       libraryHaskellDepends = [
+         base data-default-class deepseq primitive vector
+       ];
+       testHaskellDepends = [
+         base data-default-class deepseq erf primitive QuickCheck tasty
+         tasty-hunit tasty-quickcheck vector vector-th-unbox
+       ];
+       benchmarkHaskellDepends = [
+         base data-default-class gauge random vector
+       ];
+       description = "Collection of tools for numeric computations";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "math-grads" = callPackage
     ({ mkDerivation, aeson, array, base, bimap, containers, hspec
      , ilist, lens, linear, matrix, mtl, random, vector
@@ -169792,6 +172726,8 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A library for formulating and solving math programs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "math-programming-glpk" = callPackage
@@ -169871,7 +172807,7 @@ self: {
        sha256 = "1bbi9368zg50xvhn0lkrza1fpfi1cjz21lxyay6qb9v2r7h0mhr3";
        libraryHaskellDepends = [ base data-default-class ];
        description = "Parse and evaluate math expressions with variables and functions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "mathflow" = callPackage
@@ -169911,7 +172847,7 @@ self: {
          graphviz HTTP process safe tagsoup text
        ];
        description = "Discover your (academic) ancestors!";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "mathista" = callPackage
@@ -170162,8 +173098,8 @@ self: {
     ({ mkDerivation, base, containers, hspec, QuickCheck }:
      mkDerivation {
        pname = "matroid";
-       version = "0.0.0";
-       sha256 = "0k7x9m8zn45s9r9frpqagrjkwbmfd9hfx2v1kwx7h5gfdkmkpb5z";
+       version = "0.0.0.1.1";
+       sha256 = "1lkahlkfm6vrss0wpfg943q0m9dqqkl7cy3f37p4h185375qyj42";
        libraryHaskellDepends = [ base containers hspec QuickCheck ];
        testHaskellDepends = [ base containers hspec QuickCheck ];
        description = "matroid (combinatorial pre-geometries) library";
@@ -170522,7 +173458,7 @@ self: {
          tagsoup text time xdg-basedir
        ];
        description = "download bugs mailboxes";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -170571,7 +173507,7 @@ self: {
          MissingH polyparse process text unix
        ];
        description = "Machine Configuration Manager";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -170644,7 +173580,7 @@ self: {
        sha256 = "14z1x9dqnjj391nrlngs9s887yqh3arc7kfgk0m3d89vrkc185vq";
        libraryHaskellDepends = [ base MonadRandom ];
        description = "MCMC applied to probabilistic program synthesis";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -170874,7 +173810,7 @@ self: {
          base bytestring storable-endian transformers utility-ht
        ];
        description = "Parse song module files from Amiga MED and OctaMED";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "medea" = callPackage
@@ -171076,7 +174012,7 @@ self: {
          servant-client servant-server text time
        ];
        description = "Haskell SDK for communicating with the Medium API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -171302,8 +174238,8 @@ self: {
      }:
      mkDerivation {
        pname = "membership";
-       version = "0";
-       sha256 = "0hdy0yv64gcwja2kr6akfms21jgq6lqhzbxap603nhiwvf7n8ayv";
+       version = "0.0.1";
+       sha256 = "07b40i1fvkix9x60nqp6nmlchjkcj3jhp7xpq583fpssqm79x14m";
        libraryHaskellDepends = [
          base constraints deepseq hashable prettyprinter template-haskell
          th-lift
@@ -171687,8 +174623,8 @@ self: {
        pname = "mercury-api";
        version = "0.1.0.2";
        sha256 = "0ybpc1kai85rflgdr80jd8cvwxaxmbphv82nz2p17502jrmdfkhg";
-       revision = "5";
-       editedCabalFile = "15xgb00cv8srnhfgh7v01b2qijcwapwsbx92jbdss525n3j74d48";
+       revision = "6";
+       editedCabalFile = "03d71mfq8nvqjr7hcpkh1q25fi1avqj35mfrrf7rkm13fr49bi7i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -171763,7 +174699,7 @@ self: {
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {genvalidity-persistent = null; validity-persistent = null;};
+     }) {};
 
   "mergeless" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, mtl, validity
@@ -171803,7 +174739,7 @@ self: {
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {genvalidity-persistent = null;};
+     }) {};
 
   "merkle-log" = callPackage
     ({ mkDerivation, base, bytestring, cereal, criterion, cryptonite
@@ -172117,8 +175053,8 @@ self: {
     ({ mkDerivation, base, hspec, hspec-discover, rio, transformers }:
      mkDerivation {
        pname = "method";
-       version = "0.2.0.0";
-       sha256 = "0vgh0ri5r1jsfax5qafvkqqnkywk4qayaw54dwhh5i3p1n5cqkqa";
+       version = "0.3.0.0";
+       sha256 = "1a5i9sd5zz5kjpjpar3r5ak61x8fz5rrbb1iak1r2dcwlyk6rq25";
        libraryHaskellDepends = [ base rio transformers ];
        testHaskellDepends = [ base hspec rio transformers ];
        testToolDepends = [ hspec-discover ];
@@ -172410,6 +175346,8 @@ self: {
        ];
        description = "A Micro service gateway";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "micro-recursion-schemes" = callPackage
@@ -172451,7 +175389,7 @@ self: {
          tasty tasty-quickcheck text unordered-containers vector
        ];
        description = "A tiny JSON library with light dependency footprint";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "microbase" = callPackage
@@ -172464,6 +175402,8 @@ self: {
        doHaddock = false;
        description = "A minimal base to work around GHC bugs";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "microbench" = callPackage
@@ -172564,23 +175504,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "microlens";
-       version = "0.4.11.2";
-       sha256 = "1z6zdprpr193a56r5s67q75554rrqyp2kk6srxn1gif7fd54sj2f";
-       libraryHaskellDepends = [ base ];
-       description = "A tiny lens library with no dependencies";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "microlens_0_4_12_0" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "microlens";
        version = "0.4.12.0";
        sha256 = "10q7gl9yavcln58sxdxzih7ff0ixxq5hpd87icvxw97yqf1p6hmm";
        libraryHaskellDepends = [ base ];
        description = "A tiny lens library with no dependencies";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "microlens-aeson" = callPackage
@@ -172634,21 +175562,6 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-ghc";
-       version = "0.4.12";
-       sha256 = "07qh66alv00jz4l3w80km8grym6sk36c5kx5jfaya20irq91ni1b";
-       libraryHaskellDepends = [
-         array base bytestring containers microlens transformers
-       ];
-       description = "microlens + array, bytestring, containers, transformers";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "microlens-ghc_0_4_13" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, microlens
-     , transformers
-     }:
-     mkDerivation {
-       pname = "microlens-ghc";
        version = "0.4.13";
        sha256 = "1r6x788br3f9rksj0dmk1nyh5mfvd9zzasclf1mi3rxhb7c0j926";
        libraryHaskellDepends = [
@@ -172656,7 +175569,6 @@ self: {
        ];
        description = "microlens + array, bytestring, containers, transformers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "microlens-mtl" = callPackage
@@ -172680,22 +175592,6 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-platform";
-       version = "0.4.1";
-       sha256 = "0zlijw6ib9zf15n750qz6jlvj9l6sdf0d29w8nkflr2bspbvxn03";
-       libraryHaskellDepends = [
-         base hashable microlens microlens-ghc microlens-mtl microlens-th
-         text unordered-containers vector
-       ];
-       description = "microlens + all batteries included (best for apps)";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "microlens-platform_0_4_2" = callPackage
-    ({ mkDerivation, base, hashable, microlens, microlens-ghc
-     , microlens-mtl, microlens-th, text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "microlens-platform";
        version = "0.4.2";
        sha256 = "0yf0z0glq2d6mpclzswc64h9w2cck4fd8l8ffm89pyb0a5n8m4c7";
        libraryHaskellDepends = [
@@ -172704,7 +175600,6 @@ self: {
        ];
        description = "microlens + all batteries included (best for apps)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "microlens-process" = callPackage
@@ -172799,6 +175694,8 @@ self: {
        pname = "microstache";
        version = "1.0.1.2";
        sha256 = "1xdca11z5cy7vfy2dszhr6qvlrxw6pn0d9iri7mg56lvi02javik";
+       revision = "1";
+       editedCabalFile = "1l72cfbrr6kxh0z2dx2pghxl7ljlbmbk8s9wlgk35bjm925kkxfl";
        libraryHaskellDepends = [
          aeson base containers deepseq directory filepath parsec text
          transformers unordered-containers vector
@@ -172849,7 +175746,7 @@ self: {
          tf-random transformers
        ];
        description = "Language for algorithmic generation of MIDI files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -172862,7 +175759,7 @@ self: {
        sha256 = "1dkja5arps41wanhv1jnkf99xrc8f5aiimp27myd595lqqdr87s2";
        libraryHaskellDepends = [ base containers safe stm ];
        description = "Hot-swappable FRP";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "midi" = callPackage
@@ -172898,7 +175795,9 @@ self: {
        ];
        description = "Convert between datatypes of the midi and the alsa packages";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "midi-music-box" = callPackage
@@ -172940,7 +175839,7 @@ self: {
        ];
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "A simple and fast library for working with MIDI messages";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "midi-util" = callPackage
@@ -172970,7 +175869,7 @@ self: {
          base bytestring directory event-list midi parsec process
        ];
        description = "Utilities for working with MIDI data";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -173205,7 +176104,7 @@ self: {
          tasty-quickcheck
        ];
        description = "Lambda calculus interpreter";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -173289,8 +176188,8 @@ self: {
      }:
      mkDerivation {
        pname = "mime-mail";
-       version = "0.5.0";
-       sha256 = "0vs302vbdf8y58nxky0m2w7cbqs4laljk969sfnbxl8zq7k3ic0h";
+       version = "0.5.1";
+       sha256 = "1s1wp8v1xlvw3r4qk1lv9zpm99ihka7a785zjl6i3fq1maqq955g";
        libraryHaskellDepends = [
          base base64-bytestring blaze-builder bytestring filepath process
          random text
@@ -173472,7 +176371,7 @@ self: {
        sha256 = "16fdzbfspxqi0h7v6gn25n065anvk9zm28236qvfwbvr9l2ki172";
        libraryHaskellDepends = [ base vector ];
        description = "Bindings to Miniball, a smallest enclosing ball library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "miniforth" = callPackage
@@ -173510,7 +176409,7 @@ self: {
          array base bytestring containers mtl semigroups text transformers
        ];
        description = "A minimalistic lens library, providing only the simplest, most basic lens functionality";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -173728,8 +176627,8 @@ self: {
     ({ mkDerivation, async, base }:
      mkDerivation {
        pname = "minisat";
-       version = "0.1.2";
-       sha256 = "089jam2cbwf4m16sgb9wh4zkgbmpfsg647lng3kyjs5d3m02i5dd";
+       version = "0.1.3";
+       sha256 = "172l1zn3ls0s55llnp4z1kgf388bs5vq4a8qys2x7dqk9zmgpbqb";
        libraryHaskellDepends = [ async base ];
        description = "A Haskell bundle of the Minisat SAT solver";
        license = lib.licenses.bsd3;
@@ -173844,7 +176743,7 @@ self: {
        libraryHaskellDepends = [ base binary bytestring vector ];
        testHaskellDepends = [ base binary directory hspec vector ];
        description = "Read and write IDX data that is used in e.g. the MINST database.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -173880,7 +176779,7 @@ self: {
          base bytestring ghc-prim hspec primitive vector
        ];
        description = "A Minisat-based CDCL SAT solver in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -173900,7 +176799,7 @@ self: {
          transformers twitter-conduit
        ];
        description = "Tweet mirror";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -174170,7 +177069,36 @@ self: {
          anydbm base Cabal directory HUnit MissingH
        ];
        description = "Haskell interface to Python";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "mit-3qvpPyAi6mH" = callPackage
+    ({ mkDerivation, base, base64, clock, directory, free, process
+     , record-dot-preprocessor, record-hasfield, temporary, text
+     , text-ansi, unix
+     }:
+     mkDerivation {
+       pname = "mit-3qvpPyAi6mH";
+       version = "3";
+       sha256 = "0yy7j1ddnny5wq8ywkkmdas9qlfsi26pk0adklmh2c0kqfss4s3f";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base base64 clock directory process record-dot-preprocessor
+         record-hasfield text text-ansi unix
+       ];
+       executableHaskellDepends = [
+         base base64 clock directory process record-dot-preprocessor
+         record-hasfield text text-ansi unix
+       ];
+       testHaskellDepends = [
+         base base64 clock directory free process record-dot-preprocessor
+         record-hasfield temporary text text-ansi unix
+       ];
+       description = "A git wrapper with a streamlined UX";
+       license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -174415,6 +177343,39 @@ self: {
        benchmarkHaskellDepends = [ base criterion text weigh ];
        description = "Strict markdown processor for writers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "mmark_0_0_7_3" = callPackage
+    ({ mkDerivation, aeson, base, case-insensitive, containers
+     , criterion, deepseq, dlist, email-validate, foldl, hashable, hspec
+     , hspec-megaparsec, html-entity-map, lucid, megaparsec, microlens
+     , microlens-th, modern-uri, mtl, parser-combinators, QuickCheck
+     , text, text-metrics, unordered-containers, weigh, yaml
+     }:
+     mkDerivation {
+       pname = "mmark";
+       version = "0.0.7.3";
+       sha256 = "1gfl9jhqm1jaqxi0yxd8r4z3ai5c3f1wv53vjs0ln84qjpcqp30s";
+       revision = "1";
+       editedCabalFile = "19yg41grkliim428x9cqwcynmjvkh83mqfyxiv2dc6fvid6fmcrk";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base case-insensitive containers deepseq dlist email-validate
+         foldl hashable html-entity-map lucid megaparsec microlens
+         microlens-th modern-uri mtl parser-combinators text text-metrics
+         unordered-containers yaml
+       ];
+       testHaskellDepends = [
+         aeson base foldl hspec hspec-megaparsec lucid megaparsec modern-uri
+         QuickCheck text
+       ];
+       benchmarkHaskellDepends = [ base criterion text weigh ];
+       description = "Strict markdown processor for writers";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mmark-cli" = callPackage
@@ -174438,6 +177399,8 @@ self: {
        ];
        description = "Command line interface to the MMark markdown processor";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mmark-ext" = callPackage
@@ -174447,10 +177410,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmark-ext";
-       version = "0.2.1.2";
-       sha256 = "1s44vznj8hkk7iymnzczbglxnw1q84gmm8q9yiwh0jkiw4kdi91c";
-       revision = "3";
-       editedCabalFile = "02i6577qislr0qvgmfamcixpxgb7bh68lg18n3vkq6xbnjxdpwpx";
+       version = "0.2.1.3";
+       sha256 = "1hc95gvw4dyjlf2y4nli68zavjd0aj9br55n7417r7g70si1m82s";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base foldl ghc-syntax-highlighter lucid microlens mmark modern-uri
@@ -174460,6 +177421,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Commonly useful extensions for the MMark markdown processor";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mmorph_1_1_3" = callPackage
@@ -174480,10 +177443,10 @@ self: {
     ({ mkDerivation, base, mtl, transformers, transformers-compat }:
      mkDerivation {
        pname = "mmorph";
-       version = "1.1.4";
-       sha256 = "1hxyyh0x58kjdsyf1kj2kibjxzk2d9rcabv2y9vrpb59w85lqanz";
+       version = "1.1.5";
+       sha256 = "0bq9m3hlfax1826gg5yhih79x33rvfx59wdh8yf43azd7l74bys6";
        revision = "1";
-       editedCabalFile = "0xvwjcfpy6243wiwgyckmwc1nbw31y32n3hrrswdjw21znz894yl";
+       editedCabalFile = "087v8ajcfpx4f0v4jxvv16h6jswgnkfnyfn28k406d5w3ihcx1wl";
        libraryHaskellDepends = [
          base mtl transformers transformers-compat
        ];
@@ -174495,8 +177458,8 @@ self: {
     ({ mkDerivation, base, vector }:
      mkDerivation {
        pname = "mmsyn2";
-       version = "0.3.1.0";
-       sha256 = "06n8vxqafc698ahml782klb41g9bfsvqdrl4k0blnn3m3vavnzxy";
+       version = "0.3.2.0";
+       sha256 = "0xp6mh3rwvxvy9x194x4ya6vd127b5b5z095gdhp5gagsbj7zx0l";
        libraryHaskellDepends = [ base vector ];
        description = "The library that can be used for multiple (Ord a) => a -> b transformations";
        license = lib.licenses.mit;
@@ -174506,8 +177469,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "mmsyn2-array";
-       version = "0.1.1.0";
-       sha256 = "0dcvs5s11s840fvl17h5qrz5x6fmzvvjkfxmbk8r0p13n4k2a0ny";
+       version = "0.1.3.0";
+       sha256 = "12sr98mwmqvljv5npcp3qjafrd7hwjwpswpqw6lyqmnjii3hwqmn";
        libraryHaskellDepends = [ base ];
        description = "A library with less dependencies that can be used for multiple Ord a => a -> b transformations";
        license = lib.licenses.mit;
@@ -174620,20 +177583,20 @@ self: {
      }) {};
 
   "mmsyn7l" = callPackage
-    ({ mkDerivation, base, directory, mmsyn2, mmsyn3, mmsyn7ukr
-     , process, vector
+    ({ mkDerivation, base, directory, mmsyn2-array, mmsyn3
+     , mmsyn7ukr-common, process
      }:
      mkDerivation {
        pname = "mmsyn7l";
-       version = "0.8.0.0";
-       sha256 = "0w1k89phzxyq2nwzr0vn313rlp0f7d62vhdvq113pqszbdbjh6gd";
+       version = "0.9.0.0";
+       sha256 = "0j8xi8jxak818sw310srxljrywggsa8ss1l4yw0razsa28h92nxq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base directory mmsyn2 mmsyn3 mmsyn7ukr process vector
+         base directory mmsyn2-array mmsyn3 mmsyn7ukr-common process
        ];
        executableHaskellDepends = [
-         base directory mmsyn2 mmsyn3 mmsyn7ukr process vector
+         base directory mmsyn2-array mmsyn3 mmsyn7ukr-common process
        ];
        description = "Modifies the amplitudes of the Ukrainian sounds representations created by mmsyn7ukr package";
        license = lib.licenses.mit;
@@ -174745,7 +177708,7 @@ self: {
        libraryHaskellDepends = [ base binary bytestring vector ];
        testHaskellDepends = [ base binary directory hspec vector ];
        description = "Read and write IDX data that is used in e.g. the MNIST database.";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "moan" = callPackage
@@ -174853,6 +177816,8 @@ self: {
        pname = "mod";
        version = "0.1.2.1";
        sha256 = "0fjcjk9jxwc2d1fm3kzamh9gi3lwnl2g6kz3z2hd43dszkay1mn1";
+       revision = "2";
+       editedCabalFile = "0h4dff2r9q5619pfahdm4bb6xmsqvv5b6d0na1i2sg7zq58ac2bq";
        libraryHaskellDepends = [
          base deepseq integer-gmp primitive semirings vector
        ];
@@ -174923,8 +177888,8 @@ self: {
      }:
      mkDerivation {
        pname = "modern-uri";
-       version = "0.3.3.1";
-       sha256 = "0h4ssb4wy4ac6vd5jcbvp0r2fr1jmyc60hg56s7ym50bbymj5wp3";
+       version = "0.3.4.1";
+       sha256 = "09yzn5lim3wv0120lfdwlc8ynx15z3p6p0js2r6ij3rzx26nchqd";
        libraryHaskellDepends = [
          base bytestring containers contravariant deepseq exceptions
          megaparsec mtl profunctors QuickCheck reflection tagged
@@ -174961,7 +177926,7 @@ self: {
          semigroups split text transformers
        ];
        description = "Modify fasta (and CLIP) files in several optional ways";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -175055,7 +178020,7 @@ self: {
          base hmatrix sparse-linear-algebra spectral-clustering vector
        ];
        description = "Find the modularity of a network";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -175126,7 +178091,7 @@ self: {
          nats pandoc-types parsec prettify process semigroups text
        ];
        description = "Modular C code generator";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -175174,22 +178139,23 @@ self: {
 
   "mohws" = callPackage
     ({ mkDerivation, base, bytestring, containers, data-accessor
-     , directory, explicit-exception, filepath, html, HTTP, network
-     , network-uri, old-locale, old-time, parsec, process, transformers
-     , unix, utility-ht
+     , directory, explicit-exception, fail, filepath, html, HTTP
+     , network, network-uri, old-locale, old-time, parsec, process
+     , transformers, unix, utility-ht
      }:
      mkDerivation {
        pname = "mohws";
-       version = "0.2.1.6";
-       sha256 = "0rnb6nq99bav0z5dxzc4xkb2ai6ifm5v2ijd76sgzbs2032v6wqs";
+       version = "0.2.1.8";
+       sha256 = "039abcwkqijsw8qp2iid6ilnyg79lvc1m6zik0jc4gadl5g704wh";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers data-accessor directory
-         explicit-exception filepath html HTTP network network-uri
+         explicit-exception fail filepath html HTTP network network-uri
          old-locale old-time parsec process transformers unix utility-ht
        ];
+       executableHaskellDepends = [ base bytestring ];
        description = "Modular Haskell Web Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -175379,7 +178345,7 @@ self: {
          base contravariant invariant MonadRandom mtl primitive transformers
        ];
        description = "Monad, monad transformer, and typeclass representing choices";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "monad-chronicle" = callPackage
@@ -175390,6 +178356,8 @@ self: {
        pname = "monad-chronicle";
        version = "1.0.0.1";
        sha256 = "1p9w9f5sw4adxxrgfba0vxs5kdhl82ibnwfqal7nrrhp3v86imbg";
+       revision = "1";
+       editedCabalFile = "097f5wvzx10i9zgx4gn7wm81z7dfyhj9lx8jyy4n90j0adpbjryq";
        libraryHaskellDepends = [
          base data-default-class mtl semigroupoids these transformers
          transformers-compat
@@ -175516,8 +178484,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-coroutine";
-       version = "0.9.0.4";
-       sha256 = "1rsxzry8qk5229vx4iw4jrzbbc82m80m1nlxlq73k5k20h9gzq0k";
+       version = "0.9.1";
+       sha256 = "1d85jyfwf4h60cfp3dyrkmf7kw7ya37z2vqmv6rdbpqc1pslmb1i";
        libraryHaskellDepends = [
          base monad-parallel transformers transformers-compat
        ];
@@ -176100,8 +179068,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-parallel";
-       version = "0.7.2.3";
-       sha256 = "12ahni860pfkdj70f9d0dg2h93gl0d9qav8llcmgh5z7dg1vi3qj";
+       version = "0.7.2.4";
+       sha256 = "1h36hwbk800v0cq2x8kxf7v3gkr8maws7ijxckvsqp480xr4r5xx";
        libraryHaskellDepends = [
          base parallel transformers transformers-compat
        ];
@@ -176496,8 +179464,8 @@ self: {
     ({ mkDerivation, base, base-compat, stm }:
      mkDerivation {
        pname = "monad-var";
-       version = "0.2.1.0";
-       sha256 = "1amlkcwwmgqscq0w660lawnwz07swlmiz8g61qn0fb1vmfpvas88";
+       version = "0.2.2.0";
+       sha256 = "0idmp912pwlahl5rb9bfx8fr088h9im8pz32bjqm2141b9ci10h8";
        libraryHaskellDepends = [ base base-compat stm ];
        description = "Generic operations over variables";
        license = lib.licenses.bsd3;
@@ -176998,7 +179966,7 @@ self: {
          base containers directory mtl optparse-applicative process unix
        ];
        description = "A system state collecting library and application";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -177118,14 +180086,12 @@ self: {
        pname = "monoid-extras";
        version = "0.5.1";
        sha256 = "0xfrkgqn9d31z54l617m3w3kkd5m9vjb4yl247r3zzql3mpb1f37";
-       revision = "1";
-       editedCabalFile = "0b8x5d6vh7mpigvjvcd8f38a1nyzn1vfdqypslw7z9fgsr742913";
+       revision = "2";
+       editedCabalFile = "0gbrwpr7rzh9mmf59yhs74hixgclmxngaxx51j7pvr6wnkbvz3a3";
        libraryHaskellDepends = [ base groups semigroupoids semigroups ];
        benchmarkHaskellDepends = [ base criterion semigroups ];
        description = "Various extra monoid-related definitions and utilities";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "monoid-owns" = callPackage
@@ -177192,6 +180158,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "monoid-subclasses_1_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, primes, QuickCheck
+     , quickcheck-instances, tasty, tasty-quickcheck, text, vector
+     }:
+     mkDerivation {
+       pname = "monoid-subclasses";
+       version = "1.1";
+       sha256 = "1bv0ripdw53121aj39zalczkfwrajpzzd1i99jn49sr4bfwgy3p4";
+       libraryHaskellDepends = [
+         base bytestring containers primes text vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers primes QuickCheck quickcheck-instances
+         tasty tasty-quickcheck text vector
+       ];
+       description = "Subclasses of Monoid";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "monoid-transformer" = callPackage
     ({ mkDerivation, base, semigroups }:
      mkDerivation {
@@ -177350,22 +180336,20 @@ self: {
      }) {};
 
   "months" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base-compat, cassava
-     , deepseq, hashable, http-api-data, intervals, lens, lucid
-     , QuickCheck, swagger2, text, time-compat
+    ({ mkDerivation, aeson, attoparsec, base, base-compat, deepseq
+     , hashable, intervals, QuickCheck, text, time-compat
      }:
      mkDerivation {
        pname = "months";
-       version = "0.1";
-       sha256 = "000fqmd5j3pxmfa5bpyk5fd0hbn9iq3g5v1slk4hrjdjm8k19wa0";
-       revision = "4";
-       editedCabalFile = "0rww4x5c4a9n1yrs6ll1irwn1c1fm8s9k1zri3n2n1d6x75brny5";
+       version = "0.2";
+       sha256 = "054dag7806850hdii7s5rxg8gx2spdp33pnx4s4ckni9ayvspija";
+       revision = "1";
+       editedCabalFile = "0hg0qa1bja05ls9l0aascqxx65nxvm1rwyvgis93ajwrbqpbi9j5";
        libraryHaskellDepends = [
-         aeson attoparsec base base-compat cassava deepseq hashable
-         http-api-data intervals lens lucid QuickCheck swagger2 text
-         time-compat
+         aeson attoparsec base base-compat deepseq hashable intervals
+         QuickCheck text time-compat
        ];
-       description = "Month, YearMonth, Quarter, YearQuarter types";
+       description = "MonthName";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -177518,37 +180502,45 @@ self: {
      }) {morfeusz = null;};
 
   "morley" = callPackage
-    ({ mkDerivation, aeson, aeson-casing, aeson-pretty, base
-     , base58-bytestring, binary, bytestring, constraints, containers
-     , cryptonite, data-default, first-class-families, fmt
-     , generic-deriving, gitrev, haskeline, hex-text, interpolate, lens
-     , megaparsec, memory, morley-prelude, mtl, named
-     , optparse-applicative, parser-combinators, scientific, semigroups
-     , show-type, singletons, syb, template-haskell, text
-     , text-manipulate, th-lift, th-lift-instances, time, timerep
+    ({ mkDerivation, aeson, aeson-casing, aeson-pretty, base-noprelude
+     , base58-bytestring, binary, bytestring, Cabal, constraints
+     , containers, cryptonite, data-default, doctest, elliptic-curve
+     , first-class-families, fmt, galois-field, generic-deriving, gitrev
+     , haskeline, hex-text, interpolate, lens, megaparsec, memory
+     , MonadRandom, morley-prelude, mtl, named, optparse-applicative
+     , pairing, parser-combinators, process, scientific, semigroups
+     , show-type, singletons, syb, tasty-discover, template-haskell
+     , text, text-manipulate, th-lift, th-lift-instances, time, timerep
      , uncaught-exception, unordered-containers, vector, vinyl
      , with-utf8, wl-pprint-text
      }:
      mkDerivation {
        pname = "morley";
-       version = "1.12.0";
-       sha256 = "0cfmcrasf2cfirsa6xb1aznj75bwnzmiy9irirk1i9p2bx4aqy5m";
+       version = "1.14.0";
+       sha256 = "1rajgkgmckiy54mdilbq21df5h3ij9a1n1v6jahgrgy9hyyg8qcv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-casing aeson-pretty base base58-bytestring binary
-         bytestring constraints containers cryptonite data-default
-         first-class-families fmt generic-deriving gitrev hex-text
-         interpolate lens megaparsec memory morley-prelude mtl named
-         optparse-applicative parser-combinators scientific semigroups
-         show-type singletons syb template-haskell text text-manipulate
-         th-lift th-lift-instances time timerep uncaught-exception
-         unordered-containers vector vinyl with-utf8 wl-pprint-text
+         aeson aeson-casing aeson-pretty base-noprelude base58-bytestring
+         binary bytestring constraints containers cryptonite data-default
+         elliptic-curve first-class-families fmt galois-field
+         generic-deriving gitrev hex-text interpolate lens megaparsec memory
+         MonadRandom morley-prelude mtl named optparse-applicative pairing
+         parser-combinators scientific semigroups show-type singletons syb
+         template-haskell text text-manipulate th-lift th-lift-instances
+         time timerep uncaught-exception unordered-containers vector vinyl
+         with-utf8 wl-pprint-text
        ];
        executableHaskellDepends = [
-         aeson base bytestring data-default fmt haskeline megaparsec
-         morley-prelude named optparse-applicative text vinyl with-utf8
+         aeson base-noprelude bytestring data-default fmt haskeline
+         megaparsec morley-prelude named optparse-applicative text vinyl
+         with-utf8
+       ];
+       testHaskellDepends = [
+         base-noprelude bytestring Cabal doctest morley-prelude
+         optparse-applicative process
        ];
+       testToolDepends = [ tasty-discover ];
        description = "Developer tools for the Michelson Language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -177559,13 +180551,46 @@ self: {
     ({ mkDerivation, base-noprelude, universum }:
      mkDerivation {
        pname = "morley-prelude";
-       version = "0.3.0";
-       sha256 = "1nrwrz54xg0v9v8f1caccpdav1d0nnjqy8r8wmj5cgf9y30jfzjf";
+       version = "0.4.0";
+       sha256 = "1g2ng8d5s32xwflbcfl1fsr2c2lzyh3vvyqslk76w9jn3nln164l";
        libraryHaskellDepends = [ base-noprelude universum ];
        description = "A custom prelude used in Morley";
-       license = lib.licenses.agpl3Plus;
+       license = lib.licenses.mit;
      }) {};
 
+  "morley-upgradeable" = callPackage
+    ({ mkDerivation, base-noprelude, cleveland, colourista, constraints
+     , containers, first-class-families, fmt, hedgehog, hex-text, hspec
+     , HUnit, lens, lorentz, morley, morley-client, morley-prelude, mtl
+     , optparse-applicative, singletons, tasty, tasty-discover
+     , tasty-hspec, tasty-hunit-compat, text, vinyl, with-utf8
+     }:
+     mkDerivation {
+       pname = "morley-upgradeable";
+       version = "0.3";
+       sha256 = "1rl36a686n8dv3bnvnfcr1xiqb8c3diadk5m6wr6axj4h7w0a8cc";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base-noprelude cleveland colourista constraints containers
+         first-class-families fmt hedgehog hex-text HUnit lens lorentz
+         morley morley-client morley-prelude mtl singletons text vinyl
+       ];
+       executableHaskellDepends = [
+         base-noprelude constraints fmt lorentz morley morley-client
+         morley-prelude optparse-applicative with-utf8
+       ];
+       testHaskellDepends = [
+         base-noprelude cleveland containers hedgehog hspec HUnit lorentz
+         morley morley-prelude tasty tasty-hspec tasty-hunit-compat
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Upgradeability infrastructure based on Morley";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {cleveland = null; morley-client = null;};
+
   "morloc" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , docopt, extra, filepath, haskell-src-meta, megaparsec, mtl
@@ -177601,7 +180626,7 @@ self: {
          tasty-quickcheck template-haskell text unordered-containers yaml
        ];
        description = "A multi-lingual, typed, workflow language";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -177649,6 +180674,62 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "morpheus-graphql_0_17_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers
+     , morpheus-graphql-app, morpheus-graphql-core
+     , morpheus-graphql-subscriptions, mtl, relude, tasty, tasty-hunit
+     , template-haskell, text, transformers, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "morpheus-graphql";
+       version = "0.17.0";
+       sha256 = "0k9nlik5qi1ff4m731da5wlaadx024irgn2v1hyz2bv9n1q28cqs";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers morpheus-graphql-app
+         morpheus-graphql-core mtl relude template-haskell text transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers morpheus-graphql-app
+         morpheus-graphql-core morpheus-graphql-subscriptions mtl relude
+         tasty tasty-hunit template-haskell text transformers
+         unordered-containers vector
+       ];
+       description = "Morpheus GraphQL";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "morpheus-graphql-app" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , hashable, megaparsec, morpheus-graphql-core, mtl, relude
+     , scientific, tasty, tasty-hunit, template-haskell, text
+     , th-lift-instances, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "morpheus-graphql-app";
+       version = "0.17.0";
+       sha256 = "0l3brvcv7ang83yiv1bdg4v8hvajq4cbq2dr28q1j39a4r85f9xz";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers hashable megaparsec
+         morpheus-graphql-core mtl relude scientific template-haskell text
+         th-lift-instances transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers directory hashable megaparsec
+         morpheus-graphql-core mtl relude scientific tasty tasty-hunit
+         template-haskell text th-lift-instances transformers
+         unordered-containers vector
+       ];
+       description = "Morpheus GraphQL Core";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "morpheus-graphql-cli" = callPackage
     ({ mkDerivation, base, bytestring, filepath, morpheus-graphql
      , optparse-applicative
@@ -177694,6 +180775,30 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "morpheus-graphql-client_0_17_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, directory
+     , morpheus-graphql-core, mtl, relude, tasty, tasty-hunit
+     , template-haskell, text, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "morpheus-graphql-client";
+       version = "0.17.0";
+       sha256 = "1djgxy59s98na1s182p5a06qjhw8n862zka96wwp8ckyx2jpjkq3";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring morpheus-graphql-core mtl relude
+         template-haskell text transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring directory morpheus-graphql-core mtl relude
+         tasty tasty-hunit template-haskell text transformers
+         unordered-containers
+       ];
+       description = "Morpheus GraphQL Client";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "morpheus-graphql-core" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, hashable
      , megaparsec, mtl, relude, scientific, tasty, tasty-hunit
@@ -177719,6 +180824,32 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "morpheus-graphql-core_0_17_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , hashable, megaparsec, mtl, relude, scientific, tasty, tasty-hunit
+     , template-haskell, text, th-lift-instances, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "morpheus-graphql-core";
+       version = "0.17.0";
+       sha256 = "0rj4g05365hp5c9b5y0v0v7s73jw3gkq3g0z3m6xrpxi3j2gp0p8";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers hashable megaparsec mtl relude
+         scientific template-haskell text th-lift-instances transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers directory hashable megaparsec mtl
+         relude scientific tasty tasty-hunit template-haskell text
+         th-lift-instances transformers unordered-containers vector
+       ];
+       description = "Morpheus GraphQL Core";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "morpheus-graphql-subscriptions" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory
      , morpheus-graphql-core, mtl, relude, tasty, tasty-hunit, text
@@ -177742,6 +180873,31 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "morpheus-graphql-subscriptions_0_17_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, directory
+     , morpheus-graphql-app, morpheus-graphql-core, mtl, relude, tasty
+     , tasty-hunit, text, transformers, unliftio-core
+     , unordered-containers, uuid, websockets
+     }:
+     mkDerivation {
+       pname = "morpheus-graphql-subscriptions";
+       version = "0.17.0";
+       sha256 = "14bpnzxxiid5582z5fi8nwb8rrhm7lgxscgkjxw34ng41wyv6686";
+       libraryHaskellDepends = [
+         aeson base bytestring morpheus-graphql-app morpheus-graphql-core
+         mtl relude text transformers unliftio-core unordered-containers
+         uuid websockets
+       ];
+       testHaskellDepends = [
+         aeson base bytestring directory morpheus-graphql-app
+         morpheus-graphql-core mtl relude tasty tasty-hunit text
+         transformers unliftio-core unordered-containers uuid websockets
+       ];
+       description = "Morpheus GraphQL Subscriptions";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "morphisms" = callPackage
     ({ mkDerivation }:
      mkDerivation {
@@ -178059,7 +181215,7 @@ self: {
          simple-ui template-haskell text unix utf8-string vty
        ];
        description = "Music player for linux";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -178260,7 +181416,7 @@ self: {
        sha256 = "11c62m19ngap44fv4gnv0ln8iff1b08dg2vclj16jx1fj8pqps9y";
        libraryHaskellDepends = [ base containers dbus mtl ];
        description = "Interface for MPRIS";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -178346,7 +181502,7 @@ self: {
          base directory filepath gtk mtl process template-haskell unix
        ];
        description = "A minimalist mpv GUI written in I/O heavy Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -178394,7 +181550,7 @@ self: {
          stm text transformers
        ];
        description = "A MQTT client library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -178973,8 +182129,8 @@ self: {
      }:
      mkDerivation {
        pname = "mu-graphql";
-       version = "0.5.0.1";
-       sha256 = "1mcm8db1q0sjzxyjhxd140l966vq6yh8hj1p2xx8yzqmagsfv7kx";
+       version = "0.5.0.2";
+       sha256 = "0kr8gqi34zgg8vj5x0c0mx3xjkhjr4ynparplysga7qzzj58a7f3";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -179190,8 +182346,8 @@ self: {
      }:
      mkDerivation {
        pname = "mu-rpc";
-       version = "0.5.0.0";
-       sha256 = "15a950ig348h0fxfvzq4pj8s8rryn18cd26vmrcmx7s6w32zlzyr";
+       version = "0.5.0.1";
+       sha256 = "0r5kbi378iwg5b578dydvv4smy2xqn4y33h015fp5nyphxz83173";
        libraryHaskellDepends = [
          aeson base conduit http-types mtl mu-schema sop-core
          template-haskell text wai
@@ -179388,7 +182544,7 @@ self: {
        ];
        testToolDepends = [ alex happy ];
        description = "An intermediate language designed to perform advanced code analysis";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -180168,6 +183324,8 @@ self: {
        ];
        description = "Pure Haskell implementation of the MurmurHash3 x86_32 algorithm";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "murmurhash3" = callPackage
@@ -180469,7 +183627,7 @@ self: {
        executableHaskellDepends = [ base ];
        executablePkgconfigDepends = [ gtk3 ];
        description = "Supply your tunes info without leaving your music player";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gtk3;};
@@ -180504,7 +183662,7 @@ self: {
          test-framework-smallcheck text time transformers xmlhtml
        ];
        description = "Send an email to all MusicBrainz editors";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -180516,8 +183674,8 @@ self: {
      }:
      mkDerivation {
        pname = "musicw";
-       version = "0.3.6";
-       sha256 = "0bi57x087r22547z90n58faz78ha6z6pfmf2chwrfdys48lr8wfq";
+       version = "0.3.8";
+       sha256 = "00hw1ayzcyh9dxrha3kmyi9r69d5bb942ggl020jm3r5jayzs28h";
        libraryHaskellDepends = [
          array base bytestring containers data-default file-embed ghcjs-base
          ghcjs-dom ghcjs-prim json monad-loops mtl safe text time
@@ -180561,6 +183719,8 @@ self: {
        ];
        description = "A representation of the MusicXML format";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mustache" = callPackage
@@ -180727,7 +183887,7 @@ self: {
          process
        ];
        description = "Watches your screensaver and (un)mutes music when you (un)lock the screen";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -180853,6 +184013,8 @@ self: {
        pname = "mwc-random";
        version = "0.15.0.1";
        sha256 = "1p8c5g4hb72k90ai39rgpn6cr942i6636l1y0zfp9xgjb3v0a2q3";
+       revision = "2";
+       editedCabalFile = "0si7d23ycyg1072w10v06zh1xx4yy5jxwmrrs65inrs7fhdb1r28";
        libraryHaskellDepends = [
          base math-functions primitive random time vector
        ];
@@ -181103,7 +184265,7 @@ self: {
          http-client-tls network-uri text yaml
        ];
        description = "Export from MyAnimeList";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -181190,8 +184352,8 @@ self: {
      }:
      mkDerivation {
        pname = "mysql";
-       version = "0.1.7.3";
-       sha256 = "1yf9ni64q19ci6ripcjh0pvpklxyi0fzigb33ss05wswlal385rc";
+       version = "0.2";
+       sha256 = "09b1rhv16g8npjblq9jfi29bffsplvq4hnksdhknd39anr5gpqzc";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring containers ];
        librarySystemDepends = [ mysql ];
@@ -181546,7 +184708,7 @@ self: {
        libraryHaskellDepends = [ base ];
        executableHaskellDepends = [ base ];
        description = "EDSL to specify Nagios configuration files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "nagios-perfdata" = callPackage
@@ -181643,7 +184805,7 @@ self: {
        libraryHaskellDepends = [ aeson attoparsec base lens text wreq ];
        executableHaskellDepends = [ base text ];
        description = "Tool to keep namecoin names updated and well";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "named" = callPackage
@@ -181652,8 +184814,8 @@ self: {
        pname = "named";
        version = "0.3.0.1";
        sha256 = "0dnp4qbhn6ci2dlp230gpq8c5z26wb2liani1myc598g2b3c2qij";
-       revision = "1";
-       editedCabalFile = "01hay5wlp803f35qp3wab1gjxrcv5lyk1hgz4r80k22xkh6dax99";
+       revision = "2";
+       editedCabalFile = "03g6y6viakybmxpv9jnlbhq5yvchwdp2f1cvcdvlm10c5wkl71a1";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Named parameters (keyword arguments) for Haskell";
@@ -182030,7 +185192,7 @@ self: {
          kanji microlens microlens-aeson optparse-applicative text
        ];
        description = "Performs 漢字検定 (Japan Kanji Aptitude Test) level analysis on given Kanji";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -182229,6 +185391,8 @@ self: {
        ];
        description = "Natural number";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "natural-arithmetic" = callPackage
@@ -182347,7 +185511,7 @@ self: {
          aeson base iso639 lens lens-aeson network-uri random text wreq
        ];
        description = "Interface to Naver Translate";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -182405,7 +185569,7 @@ self: {
        librarySystemDepends = [ ncurses ];
        libraryToolDepends = [ c2hs ];
        description = "Modernised bindings to GNU ncurses";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {inherit (pkgs) ncurses;};
 
   "ndjson-conduit" = callPackage
@@ -182486,7 +185650,7 @@ self: {
          random transformers
        ];
        description = "A NEAT library for Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -182808,7 +185972,7 @@ self: {
        libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [ base containers hspec ];
        description = "Nested set model implementation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "nestedmap" = callPackage
@@ -182877,8 +186041,6 @@ self: {
        ];
        description = "An MQTT Protocol Implementation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "net-mqtt-lens" = callPackage
@@ -182895,8 +186057,6 @@ self: {
        ];
        description = "Optics for net-mqtt";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "net-mqtt-rpc" = callPackage
@@ -182918,8 +186078,6 @@ self: {
        ];
        description = "Make RPC calls via an MQTT broker";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "net-spider" = callPackage
@@ -183051,7 +186209,7 @@ self: {
        editedCabalFile = "00wqr9nnjn8hm0r8xa5qrgqva5r0pcf32hlksrqhkzy12yl2kv08";
        libraryHaskellDepends = [ base bytestring hosc network ];
        description = "Netclock protocol";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -183241,8 +186399,8 @@ self: {
      }:
      mkDerivation {
        pname = "netpbm";
-       version = "1.0.3";
-       sha256 = "17cxh15wf7m9ljg0scd5i71ki95fiz8qhrfk4w1zvk4pf2gb7z38";
+       version = "1.0.4";
+       sha256 = "0728k34q14f3rv6rfln7lh8clb1r7nigxri6fkl4q7dbf6i8n86p";
        libraryHaskellDepends = [
          attoparsec attoparsec-binary base bytestring storable-record
          unordered-containers vector vector-th-unbox
@@ -183268,7 +186426,7 @@ self: {
          base bytestring tasty tasty-golden tasty-quickcheck
        ];
        description = "Parser for .netrc files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "netrium" = callPackage
@@ -183320,7 +186478,7 @@ self: {
          base bytestring enumerator transformers
        ];
        description = "Enumerator-based netstring parsing";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -183748,6 +186906,8 @@ self: {
        pname = "network-byte-order";
        version = "0.1.6";
        sha256 = "0pnwcg13k4qw82n0zc1xibyc24sc77y79j5a62pqdmjrnz4wrc7j";
+       revision = "1";
+       editedCabalFile = "0fpyfd1adg9fr7w6afxkx306c0kaz3ji3x78sl29v9j3mh4vdn13";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [ base bytestring doctest ];
        description = "Network byte order utilities";
@@ -183934,7 +187094,7 @@ self: {
        sha256 = "0hxbzzdjrxnx9pknsbma7iyfr3pxrsff5n9mhbkpaqaizhibq7q7";
        libraryHaskellDepends = [ array base containers mtl ];
        description = "data and parsers for Ethernet, TCP, UDP, IPv4, IPv6, ICMP, DHCP, TFTP";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -184150,6 +187310,25 @@ self: {
        broken = true;
      }) {};
 
+  "network-packet-linux" = callPackage
+    ({ mkDerivation, base, bytestring, directory, hspec, hspec-discover
+     , HUnit, network, QuickCheck
+     }:
+     mkDerivation {
+       pname = "network-packet-linux";
+       version = "0.1.1.0";
+       sha256 = "0d86g04qpbqf97lwcmp3grqq7i62xmn1ki9px2dbpl4abgclljdb";
+       libraryHaskellDepends = [ base network ];
+       testHaskellDepends = [
+         base bytestring directory hspec HUnit network QuickCheck
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Types for working with Linux packet sockets";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "network-pgi" = callPackage
     ({ mkDerivation, attoparsec, attoparsec-enumerator, base
      , bytestring, enumerator, tnet
@@ -184179,7 +187358,7 @@ self: {
          text transformers xml-types
        ];
        description = "Client library for the XMPP protocol";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -184358,7 +187537,7 @@ self: {
          transformers
        ];
        description = "ByteString and Text streams for networking";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -184528,8 +187707,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "network-types-icmp";
-       version = "1.0.0.1";
-       sha256 = "1j2z51jvrhh9nlnx9sfiabgascyp80ha1906hdm2d4w8xyrp7d1c";
+       version = "1.0.1";
+       sha256 = "0wf2rg4alw4alalvjdcd85k6sjhcpdqacblbn76r5kmy2pqfrqfs";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Types for representing ICMP and ICMPv6 messages";
@@ -184929,7 +188108,7 @@ self: {
        libraryHaskellDepends = [ base containers fixedprec random ];
        executableHaskellDepends = [ base random time ];
        description = "Exact and approximate synthesis of quantum circuits";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "newt" = callPackage
@@ -185150,8 +188329,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export";
-       version = "1.7.1";
-       sha256 = "0dylj1i6370r1yz2rgjpjs5ynsvaqshgvz71200r0q2hqqznax6d";
+       version = "1.7.4";
+       sha256 = "11qmyj0cdmj9il2w5b25k45q59f1paia5yc98z999lj1fw7x27w6";
        libraryHaskellDepends = [
          async base binary bytestring deepseq monad-loops template-haskell
          unix
@@ -185184,8 +188363,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools-extra";
-       version = "0.6.1.1";
-       sha256 = "1gqns0ifrmjd1013jfa9c03xwdmqicdvazjc9kkxyzw4mpjgjils";
+       version = "0.7.0.0";
+       sha256 = "0d7p227s33sg5g1ck5s9pmcwnwvvpanbzyq2qc54bzpawpvn5kwi";
        libraryHaskellDepends = [
          aeson array base base64 binary bytestring case-insensitive
          containers ede enclosed-exceptions http-client http-types network
@@ -185307,7 +188486,7 @@ self: {
        ];
        executableHaskellDepends = [ base ];
        description = "Nico Nico Douga (ニコニコ動画) Comment Translator";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -185380,7 +188559,7 @@ self: {
          unordered-containers
        ];
        description = "IDL compiler and RPC/distributed object framework for microservices";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -185496,8 +188675,8 @@ self: {
        pname = "nix-derivation";
        version = "1.1.1";
        sha256 = "1jcgq7c0x6q33ddq3ns4w69z23r31cvb2qxj04v2pyd5v8rwls9d";
-       revision = "1";
-       editedCabalFile = "1ink37s91kbrq8p0sqyi1i90xp2jimyg1cnzy9ydjh3iv21f7pi5";
+       revision = "2";
+       editedCabalFile = "1s5xjz62bhmf8y6m7mggag8r9jvg0m2wq20h7k04a7yz3k778mnr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -185513,19 +188692,44 @@ self: {
        maintainers = with lib.maintainers; [ sorki ];
      }) {};
 
+  "nix-derivation_1_1_2" = callPackage
+    ({ mkDerivation, attoparsec, base, containers, criterion, deepseq
+     , filepath, pretty-show, QuickCheck, text, vector
+     }:
+     mkDerivation {
+       pname = "nix-derivation";
+       version = "1.1.2";
+       sha256 = "0248xbxq4889hc3qp9z0yr21f97j3lxrjjx2isxdf8ah4hpidzy7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         attoparsec base containers deepseq filepath text vector
+       ];
+       executableHaskellDepends = [ attoparsec base pretty-show text ];
+       testHaskellDepends = [
+         attoparsec base filepath QuickCheck text vector
+       ];
+       benchmarkHaskellDepends = [ attoparsec base criterion text ];
+       description = "Parse and render *.drv files";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ sorki ];
+     }) {};
+
   "nix-diff" = callPackage
-    ({ mkDerivation, attoparsec, base, containers, Diff, directory, mtl
-     , nix-derivation, optparse-applicative, text, unix, vector
+    ({ mkDerivation, attoparsec, base, containers, directory, mtl
+     , nix-derivation, optparse-applicative, patience, text, unix
+     , vector
      }:
      mkDerivation {
        pname = "nix-diff";
-       version = "1.0.11";
-       sha256 = "0pi0nqhv48f90ls40whifw1lcld5sw3hcrz7kzy14s4sc6ln9543";
+       version = "1.0.13";
+       sha256 = "1zdssxzzwdaf12j2817clbv3r6pbwbsvzprxlnm0ipfnf66z63lz";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         attoparsec base containers Diff directory mtl nix-derivation
-         optparse-applicative text unix vector
+         attoparsec base containers directory mtl nix-derivation
+         optparse-applicative patience text unix vector
        ];
        description = "Explain why two Nix derivations differ";
        license = lib.licenses.bsd3;
@@ -185675,20 +188879,24 @@ self: {
      }) {};
 
   "nix-tree" = callPackage
-    ({ mkDerivation, aeson, async, base, brick, bytestring, containers
-     , deepseq, directory, filepath, hashable, hrfsize, lens, parallel
-     , protolude, text, transformers, typed-process
-     , unordered-containers, vty
+    ({ mkDerivation, aeson, base, brick, bytestring, clock, containers
+     , deepseq, directory, filepath, hashable, hedgehog, hrfsize, relude
+     , text, transformers, typed-process, unordered-containers, vty
      }:
      mkDerivation {
        pname = "nix-tree";
-       version = "0.1.3.1";
-       sha256 = "1rihvfvfsrkgvq87bli9gzpbv1ny93n21cf31bid1b3g3cwadffp";
+       version = "0.1.7";
+       sha256 = "17w0lcfr2rxyfzrdhbw9lci9k5xs1566jypip910r78373c72nbj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         aeson async base brick bytestring containers deepseq directory
-         filepath hashable hrfsize lens parallel protolude text transformers
+         aeson base brick bytestring clock containers deepseq directory
+         filepath hashable hrfsize relude text transformers typed-process
+         unordered-containers vty
+       ];
+       testHaskellDepends = [
+         aeson base brick bytestring clock containers deepseq directory
+         filepath hashable hedgehog hrfsize relude text transformers
          typed-process unordered-containers vty
        ];
        description = "Interactively browse a Nix store paths dependencies";
@@ -186109,7 +189317,7 @@ self: {
        sha256 = "1wd2vd0qn8ln3a5r29gikdcr4c2c2rf43p6kq3wmqm8ww30djgca";
        libraryHaskellDepends = [ base containers ];
        description = "Binders and alpha-equivalence made easy";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "nomyx-api" = callPackage
@@ -186250,16 +189458,19 @@ self: {
      }) {nomyx-auth = null;};
 
   "non-empty" = callPackage
-    ({ mkDerivation, base, containers, deepseq, QuickCheck, utility-ht
+    ({ mkDerivation, base, containers, deepseq, doctest-exitcode-stdio
+     , QuickCheck, utility-ht
      }:
      mkDerivation {
        pname = "non-empty";
-       version = "0.3.2";
-       sha256 = "0j47d1xaxi2ynsa3wckapjbcvzr66cwca74xpzi554ba70agq40v";
+       version = "0.3.3";
+       sha256 = "01vhkj9xgggml51zmrj3hngxxnzrcd4zs0a7yjg69i6z518mh0pg";
        libraryHaskellDepends = [
          base containers deepseq QuickCheck utility-ht
        ];
-       testHaskellDepends = [ base containers QuickCheck utility-ht ];
+       testHaskellDepends = [
+         base containers doctest-exitcode-stdio QuickCheck utility-ht
+       ];
        description = "List-like structures with static restrictions on the number of elements";
        license = lib.licenses.bsd3;
      }) {};
@@ -186417,6 +189628,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "nonempty-zipper" = callPackage
+    ({ mkDerivation, base, comonad, deepseq, doctest, Glob, safe }:
+     mkDerivation {
+       pname = "nonempty-zipper";
+       version = "1.0.0.1";
+       sha256 = "17h070rciwbdk36n68dbin1yv2ybrb2vak9azimfv51z6b6a7b4w";
+       libraryHaskellDepends = [ base comonad deepseq safe ];
+       testHaskellDepends = [ base comonad deepseq doctest Glob safe ];
+       description = "A non-empty comonadic list zipper";
+       license = lib.licenses.mit;
+     }) {};
+
   "nonemptymap" = callPackage
     ({ mkDerivation, base, containers, semigroupoids }:
      mkDerivation {
@@ -186466,7 +189689,7 @@ self: {
          ad base nonlinear-optimization primitive reflection vector
        ];
        description = "Wrapper of nonlinear-optimization package for using with AD package";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "nonlinear-optimization-backprop" = callPackage
@@ -186484,7 +189707,7 @@ self: {
          reflection vector
        ];
        description = "Wrapper of nonlinear-optimization package for using with backprop package";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "noodle" = callPackage
@@ -186520,10 +189743,8 @@ self: {
      }:
      mkDerivation {
        pname = "normalization-insensitive";
-       version = "2.0.1";
-       sha256 = "00nbha984yg4lxnpkyd3q0gbywf7xn5z5ixy3cr9ksn05w6blm1v";
-       revision = "4";
-       editedCabalFile = "1p0vxvp44nzjn7big9m3wj8gvffaxz05c46jalm73fwm8cj54iqf";
+       version = "2.0.2";
+       sha256 = "1rr12rrij64hi6jkd42h4x2m86k1ra10ykzpzc38n6rfdhyiswpn";
        libraryHaskellDepends = [
          base bytestring deepseq hashable text unicode-transforms
        ];
@@ -186556,7 +189777,7 @@ self: {
          base bytestring cassava containers optparse-generic text vector
        ];
        description = "Normalize data using a variety of methods";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "normalize-imports" = callPackage
@@ -186642,6 +189863,8 @@ self: {
        pname = "nothunks";
        version = "0.1.2";
        sha256 = "0z9calmdw4bk4cdwrfq5nkxxks2f82q59i7kv6lnsgwyl4nqvg2y";
+       revision = "1";
+       editedCabalFile = "18q60yrm0fwb7zs4saxv4f3gk2av4dmbjag04kxzrllfy34h3y6z";
        libraryHaskellDepends = [
          base bytestring containers ghc-heap stm text time vector
        ];
@@ -186695,7 +189918,7 @@ self: {
        librarySystemDepends = [ notmuch talloc ];
        libraryToolDepends = [ c2hs ];
        description = "Haskell binding to Notmuch, the mail indexer";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {inherit (pkgs) notmuch; inherit (pkgs) talloc;};
 
   "notmuch-haskell" = callPackage
@@ -186903,39 +190126,132 @@ self: {
      }:
      mkDerivation {
        pname = "nri-env-parser";
-       version = "0.1.0.3";
-       sha256 = "0335bpjqvkazfjx2k0dm460hzdwcwz1rn82x0nvf441njjqz6846";
+       version = "0.1.0.5";
+       sha256 = "18xxgr82fqnl1s24gcwn7sdq50nsjk4zjl52h14f8zgw4cvkql1h";
+       libraryHaskellDepends = [
+         base modern-uri network-uri nri-prelude text
+       ];
+       description = "Read environment variables as settings to build 12-factor apps";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "nri-env-parser_0_1_0_6" = callPackage
+    ({ mkDerivation, base, modern-uri, network-uri, nri-prelude, text
+     }:
+     mkDerivation {
+       pname = "nri-env-parser";
+       version = "0.1.0.6";
+       sha256 = "1hmq6676w3f5mpdpd4jbd1aa6g379q6yyidcvdyhazqxcb0dhirh";
        libraryHaskellDepends = [
          base modern-uri network-uri nri-prelude text
        ];
        description = "Read environment variables as settings to build 12-factor apps";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "nri-observability" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, async, base, bugsnag-hs
+     , bytestring, directory, hostname, http-client, http-client-tls
+     , nri-env-parser, nri-prelude, random, safe-exceptions, stm, text
+     , time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "nri-observability";
+       version = "0.1.0.0";
+       sha256 = "121ajy98n0qwn38ia4x1gcy0nz2zygjwyi1lxywwijqdzcnl1yal";
+       libraryHaskellDepends = [
+         aeson aeson-pretty async base bugsnag-hs bytestring directory
+         hostname http-client http-client-tls nri-env-parser nri-prelude
+         random safe-exceptions stm text time unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty async base bugsnag-hs bytestring directory
+         hostname http-client http-client-tls nri-env-parser nri-prelude
+         random safe-exceptions stm text time unordered-containers
+       ];
+       description = "Report log spans collected by nri-prelude";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "nri-observability_0_1_0_1" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, async, base, bugsnag-hs
+     , bytestring, directory, hostname, http-client, http-client-tls
+     , nri-env-parser, nri-prelude, random, safe-exceptions, stm, text
+     , time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "nri-observability";
+       version = "0.1.0.1";
+       sha256 = "02baq11z5qq9lq9yh8zc29s44i44qz1m593ypn3qd8rgc1arrfjj";
+       libraryHaskellDepends = [
+         aeson aeson-pretty async base bugsnag-hs bytestring directory
+         hostname http-client http-client-tls nri-env-parser nri-prelude
+         random safe-exceptions stm text time unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty async base bugsnag-hs bytestring directory
+         hostname http-client http-client-tls nri-env-parser nri-prelude
+         random safe-exceptions stm text time unordered-containers
+       ];
+       description = "Report log spans collected by nri-prelude";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "nri-prelude" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, async, auto-update, base
-     , bytestring, containers, directory, exceptions, filepath, hedgehog
-     , junit-xml, pretty-diff, pretty-show, safe-exceptions
-     , terminal-size, text, time, vector
+    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async
+     , auto-update, base, bytestring, containers, directory, exceptions
+     , filepath, ghc, hedgehog, junit-xml, pretty-diff, pretty-show
+     , safe-exceptions, terminal-size, text, time, vector
      }:
      mkDerivation {
        pname = "nri-prelude";
-       version = "0.3.0.0";
-       sha256 = "1dijid038rvviz063ncviq1mw20hsk02gidcf68vzy99d16kn5c9";
+       version = "0.5.0.0";
+       sha256 = "1avpj21scw9c45208wf8q86n0fs73k3lgm54mgqdwln1m1ajfnvg";
        libraryHaskellDepends = [
-         aeson ansi-terminal async auto-update base bytestring containers
-         directory exceptions filepath hedgehog junit-xml pretty-diff
-         pretty-show safe-exceptions terminal-size text time vector
+         aeson aeson-pretty ansi-terminal async auto-update base bytestring
+         containers directory exceptions filepath ghc hedgehog junit-xml
+         pretty-diff pretty-show safe-exceptions terminal-size text time
+         vector
        ];
        testHaskellDepends = [
-         aeson ansi-terminal async auto-update base bytestring containers
-         directory exceptions filepath hedgehog junit-xml pretty-diff
-         pretty-show safe-exceptions terminal-size text time vector
+         aeson aeson-pretty ansi-terminal async auto-update base bytestring
+         containers directory exceptions filepath ghc hedgehog junit-xml
+         pretty-diff pretty-show safe-exceptions terminal-size text time
+         vector
        ];
        description = "A Prelude inspired by the Elm programming language";
        license = lib.licenses.bsd3;
      }) {};
 
+  "nri-prelude_0_5_0_2" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, async, auto-update, base
+     , bytestring, containers, directory, exceptions, filepath, ghc
+     , hedgehog, junit-xml, pretty-diff, pretty-show, safe-coloured-text
+     , safe-exceptions, terminal-size, text, time, vector
+     }:
+     mkDerivation {
+       pname = "nri-prelude";
+       version = "0.5.0.2";
+       sha256 = "1g96nf1nslynqywkqzb4x0k17v0fcw37jidrp7yzkmz16yhqxh1n";
+       libraryHaskellDepends = [
+         aeson aeson-pretty async auto-update base bytestring containers
+         directory exceptions filepath ghc hedgehog junit-xml pretty-diff
+         pretty-show safe-coloured-text safe-exceptions terminal-size text
+         time vector
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty async auto-update base bytestring containers
+         directory exceptions filepath ghc hedgehog junit-xml pretty-diff
+         pretty-show safe-coloured-text safe-exceptions terminal-size text
+         time vector
+       ];
+       description = "A Prelude inspired by the Elm programming language";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "nsis" = callPackage
     ({ mkDerivation, base, directory, process, transformers, uniplate
      }:
@@ -187168,7 +190484,7 @@ self: {
        editedCabalFile = "1lsxi6704g6svw0834haggp6j97kb6r51583lr2a3kn1ni2zh60c";
        libraryHaskellDepends = [ base microlens microlens-th ];
        description = "Flexible and accurate (for a given precision) numerical->string conversion";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "numbered-semigroups" = callPackage
@@ -187181,7 +190497,7 @@ self: {
        editedCabalFile = "04wkhb2r275nax8wh00w6c4pxfaky190g2bsviw39jyi7wr2f33c";
        libraryHaskellDepends = [ base call-stack semigroups ];
        description = "A sequence of semigroups, for composing stuff in multiple spatial directions";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -187323,20 +190639,24 @@ self: {
      }) {};
 
   "numeric-prelude" = callPackage
-    ({ mkDerivation, array, base, containers, deepseq, non-negative
-     , parsec, QuickCheck, random, semigroups, storable-record
-     , utility-ht
+    ({ mkDerivation, array, base, containers, deepseq
+     , doctest-exitcode-stdio, doctest-lib, non-negative, parsec
+     , QuickCheck, random, semigroups, storable-record, utility-ht
      }:
      mkDerivation {
        pname = "numeric-prelude";
-       version = "0.4.3.2";
-       sha256 = "1vd777ax2yvxknfxp9isgjk7cabjv3q86dgf3hybv78hc4ji5gmq";
+       version = "0.4.3.3";
+       sha256 = "0kqz3xzg0j3cqaidmdzmg47h564ivp4iz5ys8zs5g41k2wd06ild";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          array base containers deepseq non-negative parsec QuickCheck random
          semigroups storable-record utility-ht
        ];
+       testHaskellDepends = [
+         base doctest-exitcode-stdio doctest-lib QuickCheck random
+         utility-ht
+       ];
        description = "An experimental alternative hierarchy of numeric type classes";
        license = lib.licenses.bsd3;
      }) {};
@@ -187875,6 +191195,8 @@ self: {
        ];
        description = "A bullet-hell game made with SDL2";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "o-clock" = callPackage
@@ -187964,7 +191286,7 @@ self: {
        ];
        testHaskellDepends = [ base bytestring ];
        description = "Fully Automatic Luxury OAuth 1.0a headers";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "oauth2-jwt-bearer" = callPackage
@@ -188042,7 +191364,7 @@ self: {
        ];
        testHaskellDepends = [ base ];
        description = "Communicate to OBD interfaces over ELM327";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -188348,7 +191670,7 @@ self: {
          array base bytestring containers hexpr mtl parsec symbol text
        ];
        description = "Lisp with more dynamism, more power, more simplicity";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -188516,8 +191838,8 @@ self: {
      }:
      mkDerivation {
        pname = "oeis2";
-       version = "1.0.4";
-       sha256 = "1parmfwdxrmvzz81dy8mb9ry4bbp1bvsqsr593zld7hnfx6cvlh9";
+       version = "1.0.5";
+       sha256 = "1incjy5si6lwsvh2hfdw61m3jq9qad06nrrylj5b8n5yj54wzna8";
        libraryHaskellDepends = [
          aeson base containers http-conduit lens lens-aeson text vector
        ];
@@ -188969,18 +192291,17 @@ self: {
        ];
        testToolDepends = [ hspec-discover ];
        description = "memoization for IO actions and functions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "one-line-aeson-text" = callPackage
-    ({ mkDerivation, aeson, base, doctest, text, unordered-containers
-     }:
+    ({ mkDerivation, aeson, base, text, unordered-containers }:
      mkDerivation {
        pname = "one-line-aeson-text";
-       version = "0.1.0.0";
-       sha256 = "026qycb9nvc2v648p2cc74h6xqczkv9mvpawq54zx4r3vlc4lppn";
+       version = "0.1.0.2";
+       sha256 = "033dqj6qc0fjq9nq22mbdrhn8nllmx95x785dwv5l7yj7q1rm7q9";
        libraryHaskellDepends = [ aeson base text unordered-containers ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ aeson base text ];
        description = "Pretty-printing short Aeson values as text";
        license = lib.licenses.asl20;
      }) {};
@@ -189004,6 +192325,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "one-liner_2_0" = callPackage
+    ({ mkDerivation, base, bifunctors, contravariant, ghc-prim, HUnit
+     , linear-base, profunctors, tagged, transformers
+     }:
+     mkDerivation {
+       pname = "one-liner";
+       version = "2.0";
+       sha256 = "0al9wavxx23xbalqw0cdlhq01kx8kyhg33fipwmn5617z3ddir6v";
+       libraryHaskellDepends = [
+         base bifunctors contravariant ghc-prim linear-base profunctors
+         tagged transformers
+       ];
+       testHaskellDepends = [ base contravariant HUnit ];
+       description = "Constraint-based generics";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "one-liner-instances" = callPackage
     ({ mkDerivation, base, one-liner, random }:
      mkDerivation {
@@ -189146,7 +192485,7 @@ self: {
        sha256 = "0xpm2adf47clhzpwd833w706mc5xfxwr2wp4aywigy11687f9bly";
        libraryHaskellDepends = [ base ];
        description = "Support for OO-like prototypes";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "op" = callPackage
@@ -189324,7 +192663,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base basic-prelude text turtle ];
        description = "Open haddock HTML documentation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -189432,20 +192771,21 @@ self: {
   "openai-hs" = callPackage
     ({ mkDerivation, aeson, base, bytestring, casing, containers, cpphs
      , hspec, http-client, http-client-tls, http-types, openai-servant
-     , servant, servant-client, servant-client-core, text, vector
+     , servant, servant-client, servant-client-core, servant-multipart
+     , text, vector
      }:
      mkDerivation {
        pname = "openai-hs";
-       version = "0.1.1.0";
-       sha256 = "0cfcw1jlsvzzyvxi2wmqn3klh0fr8rpi8ai6sg315ml7ignyfxz5";
+       version = "0.2.0.0";
+       sha256 = "0pgwq1mfsmaqr7vxlii9rj8mhp2z5iwbf6pi4pj495khpnb877lc";
        libraryHaskellDepends = [
-         aeson base casing cpphs http-client http-types openai-servant
-         servant servant-client text
+         aeson base bytestring casing cpphs http-client http-types
+         openai-servant servant servant-client servant-multipart text
        ];
        testHaskellDepends = [
          aeson base bytestring casing containers cpphs hspec http-client
          http-client-tls http-types openai-servant servant servant-client
-         servant-client-core text vector
+         servant-client-core servant-multipart text vector
        ];
        description = "Unofficial OpenAI client";
        license = lib.licenses.bsd3;
@@ -189454,17 +192794,21 @@ self: {
      }) {};
 
   "openai-servant" = callPackage
-    ({ mkDerivation, aeson, base, casing, servant, text, time, vector
+    ({ mkDerivation, aeson, base, bytestring, casing, servant
+     , servant-multipart, text, time, vector
      }:
      mkDerivation {
        pname = "openai-servant";
-       version = "0.1.0.0";
-       sha256 = "0fn8ram1rnf9qgs7iwl579gdz8z1qfjy6hhgk0n2z1dh28lhgq6d";
+       version = "0.2.0.0";
+       sha256 = "08r3jpbxqm36lsdz6zva6ps0j1xdlvqnrwhmk7141njsb4k3xxad";
        libraryHaskellDepends = [
-         aeson base casing servant text time vector
+         aeson base bytestring casing servant servant-multipart text time
+         vector
        ];
        description = "Unofficial OpenAI servant types";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "openapi-petstore" = callPackage
@@ -189528,8 +192872,8 @@ self: {
      }:
      mkDerivation {
        pname = "openapi3";
-       version = "3.0.1.0";
-       sha256 = "03icxn4zbk6yasj6wca7qdg5cac5fadr4qcxyn4gblkffmqkb5lc";
+       version = "3.0.2.0";
+       sha256 = "00qpbj2lvaysbwgbax7z1vyixzd0x7yzbz26aw5zxd4asddypbfg";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -189803,7 +193147,7 @@ self: {
        ];
        testHaskellDepends = [ base ];
        description = "Functional interface for OpenGL 4.1+ and OpenGL ES 2.0+";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {EGL = null; GLESv2 = null;};
@@ -190615,6 +193959,35 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "optics_0_4" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, criterion
+     , indexed-profunctors, inspection-testing, lens, mtl, optics-core
+     , optics-extra, optics-th, QuickCheck, random, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "optics";
+       version = "0.4";
+       sha256 = "18hdfmay7v2qsbq0ylzrfk3hrgax8bzs65bdmjrmck4is8vbs6h5";
+       libraryHaskellDepends = [
+         array base containers mtl optics-core optics-extra optics-th
+         transformers
+       ];
+       testHaskellDepends = [
+         base containers indexed-profunctors inspection-testing mtl
+         optics-core QuickCheck random tasty tasty-hunit tasty-quickcheck
+         template-haskell
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers criterion lens transformers
+         unordered-containers vector
+       ];
+       description = "Optics as an abstract interface";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "optics-core" = callPackage
     ({ mkDerivation, array, base, containers, indexed-profunctors
      , transformers
@@ -190630,6 +194003,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "optics-core_0_4" = callPackage
+    ({ mkDerivation, array, base, containers, indexed-profunctors
+     , indexed-traversable, transformers
+     }:
+     mkDerivation {
+       pname = "optics-core";
+       version = "0.4";
+       sha256 = "1kyxdfzha4xjym96yahrwhpbzqracks2di2lx1x34sjcn165rxry";
+       libraryHaskellDepends = [
+         array base containers indexed-profunctors indexed-traversable
+         transformers
+       ];
+       description = "Optics as an abstract interface: core definitions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "optics-extra" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, hashable
      , indexed-profunctors, mtl, optics-core, text, transformers
@@ -190639,6 +194029,8 @@ self: {
        pname = "optics-extra";
        version = "0.3";
        sha256 = "15vnznmi4h9xrrp7dk6fqgz9cwlqlmdr2h4nx1n5q6hi2ic1bmm4";
+       revision = "2";
+       editedCabalFile = "13x3mavf2bi25ns03b93b5ghhkyivwxf6idn0wqs9fdiih1xvhv8";
        libraryHaskellDepends = [
          array base bytestring containers hashable indexed-profunctors mtl
          optics-core text transformers unordered-containers vector
@@ -190647,6 +194039,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "optics-extra_0_4" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, hashable
+     , indexed-profunctors, indexed-traversable-instances, mtl
+     , optics-core, text, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "optics-extra";
+       version = "0.4";
+       sha256 = "1ynhyw22rwvvh5yglybmb6skhpgqk4gh9w2w4dh8kb7myzcwfj1s";
+       libraryHaskellDepends = [
+         array base bytestring containers hashable indexed-profunctors
+         indexed-traversable-instances mtl optics-core text transformers
+         unordered-containers vector
+       ];
+       description = "Extra utilities and instances for optics-core";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "optics-th" = callPackage
     ({ mkDerivation, base, containers, mtl, optics-core, tagged
      , template-haskell, th-abstraction, transformers
@@ -190666,6 +194077,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "optics-th_0_4" = callPackage
+    ({ mkDerivation, base, containers, mtl, optics-core, tagged
+     , template-haskell, th-abstraction, transformers
+     }:
+     mkDerivation {
+       pname = "optics-th";
+       version = "0.4";
+       sha256 = "1qddzwhzlhhp1902irswjj18aa5ziavn4klhy7najxjwndilb55y";
+       libraryHaskellDepends = [
+         base containers mtl optics-core template-haskell th-abstraction
+         transformers
+       ];
+       testHaskellDepends = [ base optics-core tagged ];
+       description = "Optics construction using TemplateHaskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "optics-vl" = callPackage
     ({ mkDerivation, base, indexed-profunctors, optics-core
      , profunctors
@@ -190674,6 +194103,8 @@ self: {
        pname = "optics-vl";
        version = "0.2.1";
        sha256 = "1xrkak0cn2imgqr641wzysgynykyj438m3ywgdm9h14k17inv55v";
+       revision = "1";
+       editedCabalFile = "0ba6fk4djs3gm305km8c870h76mg8q1dyy899cll0scc6l9jgbyc";
        libraryHaskellDepends = [
          base indexed-profunctors optics-core profunctors
        ];
@@ -190850,7 +194281,7 @@ self: {
        broken = true;
      }) {};
 
-  "optparse-applicative" = callPackage
+  "optparse-applicative_0_15_1_0" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, process
      , QuickCheck, transformers, transformers-compat
      }:
@@ -190866,9 +194297,10 @@ self: {
        testHaskellDepends = [ base bytestring QuickCheck ];
        description = "Utilities and combinators for parsing command line options";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "optparse-applicative_0_16_1_0" = callPackage
+  "optparse-applicative" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, process, QuickCheck
      , transformers, transformers-compat
      }:
@@ -190882,7 +194314,6 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "Utilities and combinators for parsing command line options";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "optparse-applicative-simple" = callPackage
@@ -190932,22 +194363,6 @@ self: {
 
   "optparse-generic" = callPackage
     ({ mkDerivation, base, bytestring, Only, optparse-applicative
-     , semigroups, system-filepath, text, time, transformers, void
-     }:
-     mkDerivation {
-       pname = "optparse-generic";
-       version = "1.3.1";
-       sha256 = "0c2fhy54mn8h7z5qj3mq1qcdb1ab6bxbpiaaqwrmh7iys41zg6q0";
-       libraryHaskellDepends = [
-         base bytestring Only optparse-applicative semigroups
-         system-filepath text time transformers void
-       ];
-       description = "Auto-generate a command-line parser for your datatype";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "optparse-generic_1_4_4" = callPackage
-    ({ mkDerivation, base, bytestring, Only, optparse-applicative
      , system-filepath, text, time, transformers, void
      }:
      mkDerivation {
@@ -190962,7 +194377,6 @@ self: {
        ];
        description = "Auto-generate a command-line parser for your datatype";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "optparse-helper" = callPackage
@@ -191336,7 +194750,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base parsec regex-compat ];
        description = "Basic org to anki exporter";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "organize-imports" = callPackage
@@ -191349,7 +194763,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ attoparsec base text ];
        description = "Organize scala imports";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -191428,7 +194842,7 @@ self: {
          transformers universum
        ];
        description = "Statistics visualizer for org-mode";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -191545,6 +194959,59 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "ory-hydra-client" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , case-insensitive, containers, deepseq, exceptions, hspec
+     , http-api-data, http-client, http-client-tls, http-media
+     , http-types, iso8601-time, katip, microlens, mtl, network
+     , QuickCheck, random, safe-exceptions, semigroups, text, time
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "ory-hydra-client";
+       version = "1.9.2";
+       sha256 = "0z1897xl10465mzhriis9bmxk0hnswl5ap2m6x8ks5m120irh894";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring case-insensitive containers
+         deepseq exceptions http-api-data http-client http-client-tls
+         http-media http-types iso8601-time katip microlens mtl network
+         random safe-exceptions text time transformers unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers hspec iso8601-time mtl QuickCheck
+         semigroups text time transformers unordered-containers vector
+       ];
+       description = "Auto-generated ory-hydra API Client";
+       license = lib.licenses.mit;
+     }) {};
+
+  "ory-kratos" = callPackage
+    ({ mkDerivation, aeson, base, containers, exceptions, http-api-data
+     , http-client, http-client-tls, http-types, mtl, network-uri
+     , servant, servant-client, servant-client-core, servant-server
+     , swagger2, text, time, transformers, uuid, wai, warp
+     }:
+     mkDerivation {
+       pname = "ory-kratos";
+       version = "0.0.5.10";
+       sha256 = "0cn52z8d4l7z08xnz8dxiazbd109zsnl7qpy38biwvfsmzh9s46w";
+       libraryHaskellDepends = [
+         aeson base containers exceptions http-api-data http-client
+         http-client-tls http-types mtl network-uri servant servant-client
+         servant-client-core servant-server swagger2 text time transformers
+         uuid wai warp
+       ];
+       testHaskellDepends = [
+         aeson base containers exceptions http-api-data http-client
+         http-client-tls http-types mtl network-uri servant servant-client
+         servant-client-core servant-server swagger2 text time transformers
+         uuid wai warp
+       ];
+       description = "API bindings for Ory Kratos";
+       license = lib.licenses.asl20;
+     }) {};
+
   "os-release" = callPackage
     ({ mkDerivation, aeson, base, bytestring, filepath, hspec
      , hspec-megaparsec, megaparsec, pretty-simple, safe-exceptions
@@ -191552,8 +195019,8 @@ self: {
      }:
      mkDerivation {
        pname = "os-release";
-       version = "1.0.1";
-       sha256 = "05ajgnihm82ikxgvfnam0msn7id2apiyin9757jrc8wfsh3xvkmx";
+       version = "1.0.2";
+       sha256 = "0wjf1z76pqfv091b88zc3w0hmqv8i2i6qsx21cfcgaym4r3zqpjf";
        libraryHaskellDepends = [
          aeson base megaparsec safe-exceptions text unordered-containers
        ];
@@ -191590,7 +195057,7 @@ self: {
        sha256 = "1452a2y085xbj5q83g6y8f9vrxmlq804i8kyx6rfwyzfvzq5s3ic";
        libraryHaskellDepends = [ base colour gloss random ];
        description = "Implements an osculatory packing (kissing circles) algorithm and display";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -191691,7 +195158,7 @@ self: {
          process temporary
        ];
        description = "Better conversion of Oxford Scholarship Online material to PDF";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -191831,23 +195298,26 @@ self: {
   "overloaded" = callPackage
     ({ mkDerivation, assoc, base, bin, boring, bytestring, constraints
      , containers, fin, generic-lens-lite, ghc, hmatrix, HUnit, lens
-     , optics-core, QuickCheck, ral, record-hasfield, singleton-bool
-     , sop-core, split, syb, symbols, tasty, tasty-hunit
-     , tasty-quickcheck, text, time, vec
+     , optics-core, profunctors, QuickCheck, ral, record-hasfield
+     , semigroupoids, singleton-bool, sop-core, split, splitmix, syb
+     , symbols, tasty, tasty-hunit, tasty-quickcheck, template-haskell
+     , text, th-compat, time, vec
      }:
      mkDerivation {
        pname = "overloaded";
-       version = "0.2.1";
-       sha256 = "1qa2xq2hf792ivi92mimznwj86x9y1dpwz7rwcz99zvfk7a3hsis";
+       version = "0.3";
+       sha256 = "151xnpk7l1jg63m4bwr91h3dh1xb0d4xinc4vn1jsbhr96p662ap";
        libraryHaskellDepends = [
-         assoc base bin bytestring containers fin ghc optics-core ral
-         record-hasfield sop-core split syb symbols text time vec
+         assoc base bin bytestring containers fin ghc optics-core
+         profunctors ral record-hasfield semigroupoids sop-core split syb
+         symbols template-haskell text th-compat time vec
        ];
        testHaskellDepends = [
          assoc base bin boring bytestring constraints containers fin
          generic-lens-lite hmatrix HUnit lens optics-core QuickCheck ral
-         record-hasfield singleton-bool sop-core symbols tasty tasty-hunit
-         tasty-quickcheck text time vec
+         record-hasfield singleton-bool sop-core splitmix symbols tasty
+         tasty-hunit tasty-quickcheck template-haskell text th-compat time
+         vec
        ];
        doHaddock = false;
        description = "Overloaded pragmas as a plugin";
@@ -192063,7 +195533,7 @@ self: {
        ];
        testHaskellDepends = [ base tasty tasty-hunit tasty-quickcheck ];
        description = "Efficient “spreadsheet table” like maps with multiple marginals";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -192310,10 +195780,8 @@ self: {
     ({ mkDerivation, base, deepseq, exceptions, hspec, QuickCheck }:
      mkDerivation {
        pname = "pagination";
-       version = "0.2.1";
-       sha256 = "0g90xg5nfrwkrrmsfca5d2xf9y8md6pgh91zjk0dl2l3kvkbmp48";
-       revision = "2";
-       editedCabalFile = "0wvwi3hymp2vhhpzpycdc65zbsqmi2h0c6r0nf8p5nkgsk4pm1k2";
+       version = "0.2.2";
+       sha256 = "0k5rd55ssrk2f4vfzwnz09az6p1d6igbfmyyyjvnwwjrgcsmynig";
        libraryHaskellDepends = [ base deepseq exceptions ];
        testHaskellDepends = [ base exceptions hspec QuickCheck ];
        description = "Framework-agnostic pagination boilerplate";
@@ -192335,7 +195803,7 @@ self: {
          optparse-applicative simple-cmd-args text
        ];
        description = "Pagure client";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "pagure-hook-receiver" = callPackage
@@ -192441,7 +195909,9 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Haskell binding for C PAM API";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {pam = null;};
@@ -192491,23 +195961,23 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base
      , base64-bytestring, binary, blaze-html, blaze-markup, bytestring
      , case-insensitive, citeproc, commonmark, commonmark-extensions
-     , commonmark-pandoc, connection, containers, criterion
-     , data-default, deepseq, Diff, directory, doclayout, doctemplates
-     , emojis, exceptions, executable-path, file-embed, filepath, Glob
-     , haddock-library, hslua, hslua-module-system, hslua-module-text
+     , commonmark-pandoc, connection, containers, data-default, deepseq
+     , Diff, directory, doclayout, doctemplates, emojis, exceptions
+     , executable-path, file-embed, filepath, Glob, haddock-library
+     , hslua, hslua-module-path, hslua-module-system, hslua-module-text
      , HsYAML, HTTP, http-client, http-client-tls, http-types, ipynb
      , jira-wiki-markup, JuicyPixels, mtl, network, network-uri
      , pandoc-types, parsec, process, QuickCheck, random, safe
      , scientific, SHA, skylighting, skylighting-core, split, syb
-     , tagsoup, tasty, tasty-golden, tasty-hunit, tasty-lua
+     , tagsoup, tasty, tasty-bench, tasty-golden, tasty-hunit, tasty-lua
      , tasty-quickcheck, temporary, texmath, text, text-conversions
-     , time, unicode-transforms, unix, unordered-containers, weigh, xml
-     , zip-archive, zlib
+     , time, unicode-transforms, unix, unordered-containers, xml
+     , xml-conduit, zip-archive, zlib
      }:
      mkDerivation {
        pname = "pandoc";
-       version = "2.11.4";
-       sha256 = "1x8s6gidcij81vcxhj3pday484dyxn3d5s9sz0rh3nfml80cgkyk";
+       version = "2.12";
+       sha256 = "0z7j6hqfjis0a9bng7dlkwilksrambdcr72gj3aijv827hmz45sm";
        configureFlags = [ "-fhttps" "-f-trypandoc" ];
        isLibrary = true;
        isExecutable = true;
@@ -192518,14 +195988,15 @@ self: {
          commonmark commonmark-extensions commonmark-pandoc connection
          containers data-default deepseq directory doclayout doctemplates
          emojis exceptions file-embed filepath Glob haddock-library hslua
-         hslua-module-system hslua-module-text HsYAML HTTP http-client
-         http-client-tls http-types ipynb jira-wiki-markup JuicyPixels mtl
-         network network-uri pandoc-types parsec process random safe
-         scientific SHA skylighting skylighting-core split syb tagsoup
-         temporary texmath text text-conversions time unicode-transforms
-         unix unordered-containers xml zip-archive zlib
+         hslua-module-path hslua-module-system hslua-module-text HsYAML HTTP
+         http-client http-client-tls http-types ipynb jira-wiki-markup
+         JuicyPixels mtl network network-uri pandoc-types parsec process
+         random safe scientific SHA skylighting skylighting-core split syb
+         tagsoup temporary texmath text text-conversions time
+         unicode-transforms unix unordered-containers xml xml-conduit
+         zip-archive zlib
        ];
-       executableHaskellDepends = [ base ];
+       executableHaskellDepends = [ base text ];
        testHaskellDepends = [
          base base64-bytestring bytestring containers Diff directory
          doctemplates exceptions executable-path filepath Glob hslua mtl
@@ -192533,7 +196004,7 @@ self: {
          tasty-lua tasty-quickcheck temporary text time xml zip-archive
        ];
        benchmarkHaskellDepends = [
-         base bytestring containers criterion mtl text time weigh
+         base bytestring containers mtl tasty tasty-bench text time
        ];
        postInstall = ''
          mkdir -p $out/share/man/man1
@@ -192544,6 +196015,65 @@ self: {
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
+  "pandoc_2_13" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, attoparsec, base
+     , base64-bytestring, 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, haddock-library, hslua
+     , hslua-module-path, hslua-module-system, hslua-module-text, HsYAML
+     , HTTP, http-client, http-client-tls, http-types, ipynb
+     , jira-wiki-markup, JuicyPixels, mtl, network, network-uri
+     , pandoc-types, parsec, process, QuickCheck, random, safe
+     , scientific, SHA, skylighting, skylighting-core, split, syb
+     , tagsoup, tasty, tasty-bench, tasty-golden, tasty-hunit, tasty-lua
+     , tasty-quickcheck, temporary, texmath, text, text-conversions
+     , time, unicode-transforms, unix, unordered-containers, xml
+     , xml-conduit, zip-archive, zlib
+     }:
+     mkDerivation {
+       pname = "pandoc";
+       version = "2.13";
+       sha256 = "1f725bbazqw81gfw3wn8ii8pb4qj5z49jibl1l4l972gsgfbmgrh";
+       configureFlags = [ "-fhttps" "-f-trypandoc" ];
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty attoparsec base base64-bytestring 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 haddock-library hslua
+         hslua-module-path hslua-module-system hslua-module-text HsYAML HTTP
+         http-client http-client-tls http-types ipynb jira-wiki-markup
+         JuicyPixels mtl network network-uri pandoc-types parsec process
+         random safe scientific SHA skylighting skylighting-core split syb
+         tagsoup temporary texmath text text-conversions time
+         unicode-transforms unix unordered-containers xml xml-conduit
+         zip-archive zlib
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base bytestring containers Diff directory doctemplates exceptions
+         filepath Glob hslua mtl pandoc-types process QuickCheck tasty
+         tasty-golden tasty-hunit tasty-lua tasty-quickcheck text time xml
+         zip-archive
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers deepseq mtl tasty-bench text time
+       ];
+       postInstall = ''
+         mkdir -p $out/share/man/man1
+         mv "man/"*.1 $out/share/man/man1/
+       '';
+       description = "Conversion between markup formats";
+       license = lib.licenses.gpl2Plus;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ peti ];
+     }) {};
+
   "pandoc-citeproc" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , Cabal, containers, data-default, directory, filepath, hs-bibutils
@@ -192577,6 +196107,8 @@ self: {
        doCheck = false;
        description = "Supports using pandoc with citeproc";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-citeproc-preamble" = callPackage
@@ -192593,7 +196125,7 @@ self: {
          base directory filepath pandoc-types process text-conversions
        ];
        description = "Insert a preamble before pandoc-citeproc's bibliography";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "pandoc-crossref" = callPackage
@@ -192605,8 +196137,10 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-crossref";
-       version = "0.3.9.1";
-       sha256 = "0kyml1bmzjp6by86inlmyx8qkl4f92yibmhc477sglv9m8haw0wx";
+       version = "0.3.10.0";
+       sha256 = "1yymm8y9hzkbjff7cn63qsvpfks1f1n741vfdiiga66kml8v0zdm";
+       revision = "1";
+       editedCabalFile = "0grjcp8r5fh41qnn3miw6bms3ml9v6n1rjb2yvimf1v69w61nlgq";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -192629,15 +196163,15 @@ self: {
          utility-ht
        ];
        description = "Pandoc filter for cross-references";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "pandoc-csv2table" = callPackage
     ({ mkDerivation, base, csv, pandoc, pandoc-types, text }:
      mkDerivation {
        pname = "pandoc-csv2table";
-       version = "1.0.8";
-       sha256 = "0sf0af2cx5fi3a2iixkjjdpzp0153hxsjzs5wwqssby39g7s24gb";
+       version = "1.0.9";
+       sha256 = "14ln4i75cpqpjyzhqx0wvsrggvm6ak8rif514r5qwnckjl97v79l";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -192816,7 +196350,7 @@ self: {
          pandoc-types shelly system-fileio system-filepath text
        ];
        description = "Japanese-specific markup filters for pandoc";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -192932,8 +196466,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-plot";
-       version = "1.0.2.1";
-       sha256 = "0yi1dh6d1zxzrpmh32v0c7v921qjyxmmapzv56vh0ih8mi3ggbji";
+       version = "1.1.1";
+       sha256 = "10wwci7p3kphmjxlnpymbnx3cw2l3yfydm29l6k2vakz1pd7zdh0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -192983,7 +196517,7 @@ self: {
          mtl pandoc-types tasty tasty-hspec tasty-hunit temporary text
        ];
        description = "A Pandoc filter to include figures generated from Python code blocks";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -193111,8 +196645,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "pandora";
-       version = "0.3.6";
-       sha256 = "12slj2jy688k4ndngwmjjkdvl2ryljv3siwal874pdficx0dffxg";
+       version = "0.3.8";
+       sha256 = "093m8hds7x5i2kh478l7vcjjv60x68z96dzyxllaw9aijxrw9h3p";
        description = "A box of patterns and paradigms";
        license = lib.licenses.mit;
      }) {};
@@ -193133,7 +196667,7 @@ self: {
          transformers Yampa
        ];
        description = "A super-pang clone";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -193154,7 +196688,7 @@ self: {
        ];
        libraryPkgconfigDepends = [ pango ];
        description = "Binding to the Pango text rendering engine";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) pango;};
 
   "pangraph" = callPackage
@@ -193304,6 +196838,48 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pantry_0_5_1_5" = 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.5.1.5";
+       sha256 = "18pnihbybgnaa1hs9pcz8vvvzlfn3wv8p2rnnf1p2w6m63n8vf9a";
+       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;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pantry-tmp" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, array, base, base-orphans
      , base64-bytestring, bytestring, Cabal, conduit, conduit-extra
@@ -193737,7 +197313,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base bytestring containers ];
        description = "A passphrase generator";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -193878,8 +197454,8 @@ self: {
        pname = "parallel";
        version = "3.2.2.0";
        sha256 = "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p";
-       revision = "2";
-       editedCabalFile = "0shw96f4fc3vbr2vrnsk794qcsxyv3ra3snhw4wng81rkapp54y6";
+       revision = "3";
+       editedCabalFile = "1lv3y3zrdfc09nsiqxg7mzcahgnqi6z9caspd4lvifhhfrqy2722";
        libraryHaskellDepends = [ array base containers deepseq ghc-prim ];
        description = "Parallel programming library";
        license = lib.licenses.bsd3;
@@ -193963,8 +197539,8 @@ self: {
      }:
      mkDerivation {
        pname = "parameterized-utils";
-       version = "2.1.2.0";
-       sha256 = "0ksyhlg8vmrmdayzi2zpb33xggb7mv7vgbm6kgzr0knxbh3nm7jc";
+       version = "2.1.3.0";
+       sha256 = "1222lsdf4jbxwinv88g0sdnmbfyyxjmhfiinmasi5qbgkay4907l";
        libraryHaskellDepends = [
          base base-orphans constraints containers deepseq ghc-prim hashable
          hashtables lens mtl template-haskell text th-abstraction vector
@@ -194091,8 +197667,8 @@ self: {
      }:
      mkDerivation {
        pname = "parconc-examples";
-       version = "0.4.7";
-       sha256 = "1r05ai6n6dgkqlcv4qlb10yzrjj86408ybz5zlh63qi2y34h9ga7";
+       version = "0.4.8";
+       sha256 = "0v247qwlmfa27xpmn25rllgxxbdy28hfylsyp90irbd8vmaxy8sk";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -194283,8 +197859,8 @@ self: {
        pname = "parsec";
        version = "3.1.14.0";
        sha256 = "132waj2cpn892midbhpkfmb74qq83v0zv29v885frlp1gvh94b67";
-       revision = "2";
-       editedCabalFile = "1xyjd06nns0k65k4ig2azrijy43gnbvpcfwb3jpd8vmn2fnk0yib";
+       revision = "3";
+       editedCabalFile = "1qclpv599691710g321x1864js3gqyfv35xbh6kxlshjdrzcbmbj";
        libraryHaskellDepends = [ base bytestring mtl text ];
        testHaskellDepends = [
          base HUnit mtl test-framework test-framework-hunit
@@ -194520,7 +198096,7 @@ self: {
        sha256 = "090yhbbh2i5lwfwrfml0n54ziy8mz3mgmwnykr4ab06w1ylc2zh4";
        libraryHaskellDepends = [ base ];
        description = "Parallel Parsing Processes";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "parsely" = callPackage
@@ -194670,6 +198246,8 @@ self: {
        pname = "parsers";
        version = "0.12.10";
        sha256 = "0v0smxbzk1qpdfkfqqmrzd2dngv3vxba10mkjn9nfm6a309izf8p";
+       revision = "1";
+       editedCabalFile = "15pcq6iz3mbcwlknzxxfgd1myhyl41fs4j3m80pkif6dm5g18rv3";
        libraryHaskellDepends = [
          attoparsec base base-orphans binary charset containers mtl parsec
          scientific semigroups text transformers unordered-containers
@@ -194758,6 +198336,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "parsnip" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers
+     , data-default, ghc-prim, primitive
+     }:
+     mkDerivation {
+       pname = "parsnip";
+       version = "0";
+       sha256 = "0xkgrpjnc4g2yhjxaa1n7rpzdwav95mkv0jp0gwx7xmp3pzwahgi";
+       libraryHaskellDepends = [
+         attoparsec base bytestring containers data-default ghc-prim
+         primitive
+       ];
+       description = "A fast, minimal parser";
+       license = "(BSD-2-Clause OR Apache-2.0)";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "partage" = callPackage
     ({ mkDerivation, base, containers, data-lens-light, data-partition
      , dawg-ord, HUnit, mmorph, mtl, pipes, PSQueue, random, tasty
@@ -194973,7 +198569,7 @@ self: {
          random
        ];
        description = "a simple password manager";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -194995,7 +198591,7 @@ self: {
          passman-core resourcet text X11 yaml
        ];
        description = "Deterministic password generator command line interface";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -195021,28 +198617,29 @@ self: {
        ];
        doHaddock = false;
        description = "Deterministic password generator core";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
   "password" = callPackage
     ({ mkDerivation, base, base-compat, base64, bytestring, Cabal
-     , cabal-doctest, cryptonite, doctest, memory, QuickCheck
-     , quickcheck-instances, scrypt, tasty, tasty-hunit
+     , cabal-doctest, cryptonite, doctest, memory, password-types
+     , QuickCheck, quickcheck-instances, scrypt, tasty, tasty-hunit
      , tasty-quickcheck, template-haskell, text
      }:
      mkDerivation {
        pname = "password";
-       version = "2.1.1.0";
-       sha256 = "1x3nv3bn0rp0f6rayrzp7yvw7x1ly7vjygcl6wdq86y0k1ca2wby";
+       version = "3.0.0.0";
+       sha256 = "0x6f4zkqqsa6vi5dvy5sj0f7pqkqq9zw3ph9f0d8vl631zcs2inb";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         base base64 bytestring cryptonite memory template-haskell text
+         base base64 bytestring cryptonite memory password-types
+         template-haskell text
        ];
        testHaskellDepends = [
-         base base-compat bytestring cryptonite doctest memory QuickCheck
-         quickcheck-instances scrypt tasty tasty-hunit tasty-quickcheck
-         template-haskell text
+         base base-compat bytestring cryptonite doctest memory
+         password-types QuickCheck quickcheck-instances scrypt tasty
+         tasty-hunit tasty-quickcheck template-haskell text
        ];
        description = "Hashing and checking of passwords";
        license = lib.licenses.bsd3;
@@ -195050,27 +198647,46 @@ self: {
 
   "password-instances" = callPackage
     ({ mkDerivation, aeson, base, base-compat, Cabal, cabal-doctest
-     , doctest, http-api-data, password, persistent, QuickCheck
-     , quickcheck-instances, tasty, tasty-hunit, tasty-quickcheck
-     , template-haskell, text
+     , doctest, http-api-data, password, password-types, persistent
+     , QuickCheck, quickcheck-instances, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text
      }:
      mkDerivation {
        pname = "password-instances";
-       version = "2.0.0.2";
-       sha256 = "03dl3b530m02y7mv2lvssamhakswa3d9bj2r2ndvg78wi0vm5xp1";
+       version = "3.0.0.0";
+       sha256 = "08y42r165n3d7lry160rdmn8akhhfyx76fwjhsqb25zc5a9d5glj";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         aeson base http-api-data password persistent text
+         aeson base http-api-data password-types persistent text
        ];
        testHaskellDepends = [
-         aeson base base-compat doctest http-api-data password persistent
-         QuickCheck quickcheck-instances tasty tasty-hunit tasty-quickcheck
-         template-haskell text
+         aeson base base-compat doctest http-api-data password
+         password-types persistent QuickCheck quickcheck-instances tasty
+         tasty-hunit tasty-quickcheck template-haskell text
        ];
        description = "typeclass instances for password package";
        license = lib.licenses.bsd3;
      }) {};
 
+  "password-types" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, Cabal
+     , cabal-doctest, doctest, memory, QuickCheck, quickcheck-instances
+     , tasty, tasty-quickcheck, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "password-types";
+       version = "1.0.0.0";
+       sha256 = "090aqq2xs6m5djvr9zfdj7rxafbmj8d05vij5rchj1f9c46dclb5";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [ base bytestring memory text ];
+       testHaskellDepends = [
+         base base-compat doctest QuickCheck quickcheck-instances tasty
+         tasty-quickcheck template-haskell text
+       ];
+       description = "Types for handling passwords";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "passwords" = callPackage
     ({ mkDerivation, base, containers, MonadRandom, random }:
      mkDerivation {
@@ -195136,26 +198752,27 @@ self: {
      , filepath, mtl, network, network-uri, optparse-applicative, pandoc
      , pandoc-types, process, QuickCheck, skylighting, tasty
      , tasty-hunit, tasty-quickcheck, terminal-size, text, time
-     , unordered-containers, yaml
+     , unordered-containers, wcwidth, yaml
      }:
      mkDerivation {
        pname = "patat";
-       version = "0.8.6.1";
-       sha256 = "1n9qw4wmh7aqmnkqdc6v12rs80vipnszr4744nlkasq6jlzijw0c";
+       version = "0.8.7.0";
+       sha256 = "05bg36lbhqlh80w952hrpy88n99qddv86hiqqbc6p3bc89rlzg1w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson ansi-terminal ansi-wl-pprint async base base64-bytestring
          bytestring colour containers directory filepath mtl network
          network-uri optparse-applicative pandoc pandoc-types process
-         skylighting terminal-size text time unordered-containers yaml
+         skylighting terminal-size text time unordered-containers wcwidth
+         yaml
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
          base directory QuickCheck tasty tasty-hunit tasty-quickcheck text
        ];
        description = "Terminal-based presentations using Pandoc";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -195272,6 +198889,8 @@ self: {
        pname = "path";
        version = "0.8.0";
        sha256 = "0vzsa41q5sxs1ni72yv1vfpnc6r5mjdwnmdb6jrs6cszb2xlkjr4";
+       revision = "1";
+       editedCabalFile = "02vhx94mqapyigvayb6cj7p7snn354pb542n3qyvsm0gih52wlja";
        libraryHaskellDepends = [
          aeson base deepseq exceptions filepath hashable template-haskell
          text
@@ -195507,6 +199126,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "patrol" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive
+     , containers, http-client, http-types, network-uri, text, time
+     , uuid
+     }:
+     mkDerivation {
+       pname = "patrol";
+       version = "0.0.1";
+       sha256 = "08rxyx01mamvc3mfyzyqajfj7239sklz30fw4z8rvi2jrgisbpy7";
+       libraryHaskellDepends = [
+         aeson base bytestring case-insensitive containers http-client
+         http-types network-uri text time uuid
+       ];
+       description = "Sentry SDK";
+       license = lib.licenses.isc;
+     }) {};
+
   "patronscraper" = callPackage
     ({ mkDerivation, base, HandsomeSoup, hxt }:
      mkDerivation {
@@ -195600,6 +199236,20 @@ self: {
        license = lib.licenses.gpl3Plus;
      }) {};
 
+  "pava_0_1_1_1" = callPackage
+    ({ mkDerivation, base, criterion, hspec, mwc-random, vector }:
+     mkDerivation {
+       pname = "pava";
+       version = "0.1.1.1";
+       sha256 = "11jlhc1cqsn0r82rbwnf323s0w1ir3vf4ija0r39j58y19blc8zv";
+       libraryHaskellDepends = [ base vector ];
+       testHaskellDepends = [ base hspec vector ];
+       benchmarkHaskellDepends = [ base criterion mwc-random vector ];
+       description = "Greatest convex majorants and least concave minorants";
+       license = lib.licenses.gpl3Plus;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "paymill" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -195996,6 +199646,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pcre-utils_0_1_8_2" = callPackage
+    ({ mkDerivation, array, attoparsec, base, bytestring, HUnit, mtl
+     , regex-pcre-builtin, vector
+     }:
+     mkDerivation {
+       pname = "pcre-utils";
+       version = "0.1.8.2";
+       sha256 = "1plawzvgxww9m0vjawmkf59bfxzxf0l93g7hfwyqjq4hcc8pwq2l";
+       libraryHaskellDepends = [
+         array attoparsec base bytestring mtl regex-pcre-builtin vector
+       ];
+       testHaskellDepends = [ base bytestring HUnit regex-pcre-builtin ];
+       description = "Perl-like substitute and split for PCRE regexps";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pcre2" = callPackage
     ({ mkDerivation, base, containers, criterion, hspec
      , microlens-platform, mtl, pcre-light, regex-pcre-builtin
@@ -196280,7 +199947,7 @@ self: {
          base directory filepath ghc ghc-paths old-time process
        ];
        description = "pdynload is polymorphic dynamic linking library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -196418,7 +200085,7 @@ self: {
          base containers filepath haskeline logict mtl parsec
        ];
        description = "a lazy non-deterministic concatenative programming language";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -196863,8 +200530,8 @@ self: {
        pname = "perfect-vector-shuffle";
        version = "0.1.1.1";
        sha256 = "1z4iv4sv9ld0gvdfa46ll5bsbxi9lckh69paip1c5ijcg78vy5y0";
-       revision = "4";
-       editedCabalFile = "14q0773vxmkh4nwskiq85ch175jq12xms2lypaddglciykqs6ml6";
+       revision = "5";
+       editedCabalFile = "0lppvhpfpfzcpdm4fxmsps8s272gz3wd2h5xc1w1908b7qqln0rw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -197182,7 +200849,7 @@ self: {
          base optparse-applicative persistent text
        ];
        description = "Transforms persist's quasi-quoted syntax into ER format";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -197237,8 +200904,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent";
-       version = "2.11.0.2";
-       sha256 = "09dvwh9hdc50zr6yvbzp8a9n70yjqwa2kzvjm80l9m34p29v8kkc";
+       version = "2.11.0.4";
+       sha256 = "1n5wkhfvyqq6p57nkf9yx73kap6spyzam5w12ni8pmd1m6pk77xn";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-html bytestring
          conduit containers fast-logger http-api-data monad-logger mtl
@@ -197255,6 +200922,43 @@ self: {
        maintainers = with lib.maintainers; [ psibi ];
      }) {};
 
+  "persistent_2_12_0_2" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
+     , blaze-html, bytestring, conduit, containers, criterion, deepseq
+     , deepseq-generics, fast-logger, file-embed, hspec, http-api-data
+     , monad-logger, mtl, path-pieces, QuickCheck, resource-pool
+     , resourcet, scientific, shakespeare, silently, template-haskell
+     , text, th-lift-instances, time, transformers, unliftio
+     , unliftio-core, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "persistent";
+       version = "2.12.0.2";
+       sha256 = "0wnrpwcdfrwm6kmvq7z9b65q3qid6f1gqdk46j8m1vh3x2qchlcv";
+       libraryHaskellDepends = [
+         aeson attoparsec base base64-bytestring blaze-html bytestring
+         conduit containers fast-logger http-api-data monad-logger mtl
+         path-pieces resource-pool resourcet scientific silently
+         template-haskell text th-lift-instances time transformers unliftio
+         unliftio-core unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base base64-bytestring blaze-html bytestring
+         conduit containers fast-logger hspec http-api-data monad-logger mtl
+         path-pieces QuickCheck resource-pool resourcet scientific
+         shakespeare silently template-haskell text th-lift-instances time
+         transformers unliftio unliftio-core unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq deepseq-generics file-embed template-haskell
+         text
+       ];
+       description = "Type-safe, multi-backend data serialization";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ psibi ];
+     }) {};
+
   "persistent-audit" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring
      , getopt-generics, hashable, hspec, mongoDB, persistent
@@ -197456,15 +201160,14 @@ self: {
   "persistent-mongoDB" = callPackage
     ({ mkDerivation, aeson, base, blaze-html, bson, bytestring, cereal
      , conduit, containers, hspec, http-api-data, HUnit, mongoDB
-     , network, path-pieces, persistent, persistent-qq
-     , persistent-template, persistent-test, process, QuickCheck
-     , resource-pool, resourcet, template-haskell, text, time
-     , transformers, unliftio-core
+     , network, path-pieces, persistent, persistent-qq, persistent-test
+     , process, QuickCheck, resource-pool, resourcet, template-haskell
+     , text, time, transformers, unliftio-core
      }:
      mkDerivation {
        pname = "persistent-mongoDB";
-       version = "2.11.0.0";
-       sha256 = "19szqr1f028hqhzigvb7sa6r2vm8q9pi5fhvx483ag0agcypmhhb";
+       version = "2.12.0.0";
+       sha256 = "1s49d4c4kiqcblkap96wcrp3nc0179vpzbqp4fdibljq9ylzxmzg";
        libraryHaskellDepends = [
          aeson base bson bytestring cereal conduit http-api-data mongoDB
          network path-pieces persistent resource-pool resourcet text time
@@ -197472,9 +201175,8 @@ self: {
        ];
        testHaskellDepends = [
          base blaze-html bytestring containers hspec HUnit mongoDB
-         persistent persistent-qq persistent-template persistent-test
-         process QuickCheck template-haskell text time transformers
-         unliftio-core
+         persistent persistent-qq persistent-test process QuickCheck
+         template-haskell text time transformers unliftio-core
        ];
        description = "Backend for the persistent library using mongoDB";
        license = lib.licenses.mit;
@@ -197486,16 +201188,16 @@ self: {
     ({ mkDerivation, base, bytestring, conduit, containers
      , monad-logger, mtl, persistent, persistent-postgresql
      , persistent-sqlite, persistent-template, resource-pool, resourcet
-     , resourcet-pool, tasty, tasty-golden, tasty-hunit, text
-     , transformers, unliftio, unliftio-core
+     , tasty, tasty-golden, tasty-hunit, text, transformers, unliftio
+     , unliftio-core, unliftio-pool
      }:
      mkDerivation {
        pname = "persistent-mtl";
-       version = "0.2.0.0";
-       sha256 = "0c22frczi2km3z108iz211gl023m69cjc284dwbknabsrl3yg4l5";
+       version = "0.2.1.0";
+       sha256 = "1lwzkxb55bb4ldcwxkkfjfly39bnjjdg01yihl6znx8y3c461yrx";
        libraryHaskellDepends = [
-         base conduit containers mtl persistent resource-pool resourcet
-         resourcet-pool text transformers unliftio unliftio-core
+         base conduit containers mtl persistent resource-pool resourcet text
+         transformers unliftio unliftio-core unliftio-pool
        ];
        testHaskellDepends = [
          base bytestring conduit containers monad-logger persistent
@@ -197518,6 +201220,8 @@ self: {
        pname = "persistent-mysql";
        version = "2.10.3.1";
        sha256 = "00gs2ym5vw2cqahv48cx8fhi3kx06rn0s1pafm8pdlr98snvwif7";
+       revision = "1";
+       editedCabalFile = "1nd3l499kpv2rfhqqjw1b3qsn558rwz3794cy2x493l98rsspszp";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring conduit containers monad-logger
          mysql mysql-simple persistent resource-pool resourcet text
@@ -197533,6 +201237,32 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "persistent-mysql_2_12_0_0" = callPackage
+    ({ mkDerivation, aeson, base, blaze-builder, bytestring, conduit
+     , containers, fast-logger, hspec, HUnit, monad-logger, mysql
+     , mysql-simple, persistent, persistent-qq, persistent-test
+     , QuickCheck, quickcheck-instances, resource-pool, resourcet, text
+     , time, transformers, unliftio-core
+     }:
+     mkDerivation {
+       pname = "persistent-mysql";
+       version = "2.12.0.0";
+       sha256 = "0bvwlkch8pr94dv1fib85vdsdrjpdla1rm4lslrmpg0dysgni9p3";
+       libraryHaskellDepends = [
+         aeson base blaze-builder bytestring conduit containers monad-logger
+         mysql mysql-simple persistent resource-pool resourcet text
+         transformers unliftio-core
+       ];
+       testHaskellDepends = [
+         base bytestring containers fast-logger hspec HUnit monad-logger
+         mysql persistent persistent-qq persistent-test QuickCheck
+         quickcheck-instances resourcet text time transformers unliftio-core
+       ];
+       description = "Backend for the persistent library using MySQL database server";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "persistent-mysql-haskell" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, containers
      , fast-logger, hspec, HUnit, io-streams, monad-logger
@@ -197652,6 +201382,38 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "persistent-postgresql_2_12_0_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
+     , conduit, containers, fast-logger, hspec, hspec-expectations
+     , HUnit, monad-logger, mtl, persistent, persistent-qq
+     , persistent-test, postgresql-libpq, postgresql-simple, QuickCheck
+     , quickcheck-instances, resource-pool, resourcet
+     , string-conversions, text, time, transformers, unliftio
+     , unliftio-core, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "persistent-postgresql";
+       version = "2.12.0.0";
+       sha256 = "1mc9d4qdx0w49g6sgaq3ld30xkfwz76w6xpq79hhrds7hxalxqrc";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec base blaze-builder bytestring conduit containers
+         monad-logger mtl persistent postgresql-libpq postgresql-simple
+         resource-pool resourcet string-conversions text time transformers
+         unliftio-core
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers fast-logger hspec
+         hspec-expectations HUnit monad-logger persistent persistent-qq
+         persistent-test QuickCheck quickcheck-instances resourcet text time
+         transformers unliftio unliftio-core unordered-containers vector
+       ];
+       description = "Backend for the persistent library using postgresql";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "persistent-protobuf" = callPackage
     ({ mkDerivation, base, bytestring, persistent, protocol-buffers
      , protocol-buffers-descriptor, template-haskell, text
@@ -197692,6 +201454,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "persistent-qq_2_12_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, fast-logger
+     , haskell-src-meta, hspec, HUnit, monad-logger, mtl, persistent
+     , persistent-sqlite, resourcet, template-haskell, text, unliftio
+     }:
+     mkDerivation {
+       pname = "persistent-qq";
+       version = "2.12.0.0";
+       sha256 = "1mw565rwnzdsw0vc0gs31z4l4pw8qxb70l898invj7dfnq5vj62f";
+       libraryHaskellDepends = [
+         base haskell-src-meta mtl persistent template-haskell text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring fast-logger haskell-src-meta hspec HUnit
+         monad-logger mtl persistent persistent-sqlite resourcet
+         template-haskell text unliftio
+       ];
+       description = "Provides a quasi-quoter for raw SQL for persistent";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "persistent-ratelimit" = callPackage
     ({ mkDerivation, base, time, yesod }:
      mkDerivation {
@@ -197707,25 +201491,26 @@ self: {
 
   "persistent-redis" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, hedis
-     , http-api-data, mtl, path-pieces, persistent, persistent-template
-     , scientific, template-haskell, text, time, transformers
-     , utf8-string
+     , http-api-data, mtl, path-pieces, persistent, scientific
+     , template-haskell, text, time, transformers, utf8-string
      }:
      mkDerivation {
        pname = "persistent-redis";
-       version = "2.5.2.5";
-       sha256 = "0h2bwr5svj36n3axnrgnrzkysg4ywf9d97x4fwwsjgn01gwr262k";
+       version = "2.12.0.0";
+       sha256 = "0zibmgvlpkx4knh23jnz2vam1la6w57x2cibrdn17h0zd3s872p5";
        libraryHaskellDepends = [
          aeson base binary bytestring hedis http-api-data mtl path-pieces
          persistent scientific text time transformers utf8-string
        ];
        testHaskellDepends = [
          aeson base binary bytestring hedis http-api-data mtl path-pieces
-         persistent persistent-template scientific template-haskell text
-         time transformers utf8-string
+         persistent scientific template-haskell text time transformers
+         utf8-string
        ];
        description = "Backend for persistent library using Redis";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "persistent-refs" = callPackage
@@ -197818,6 +201603,39 @@ self: {
        maintainers = with lib.maintainers; [ psibi ];
      }) {inherit (pkgs) sqlite;};
 
+  "persistent-sqlite_2_12_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, conduit, containers
+     , exceptions, fast-logger, hspec, HUnit, microlens, microlens-th
+     , monad-logger, mtl, persistent, persistent-test, QuickCheck
+     , resource-pool, resourcet, sqlite, system-fileio, system-filepath
+     , temporary, text, time, transformers, unliftio-core
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "persistent-sqlite";
+       version = "2.12.0.0";
+       sha256 = "0qwh2zrg1dqrv7i752jkqgqfxwjbdvkxmdgnzhcfzhgn6bq1018m";
+       configureFlags = [ "-fsystemlib" ];
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring conduit containers microlens-th monad-logger
+         mtl persistent resource-pool resourcet text time transformers
+         unliftio-core unordered-containers
+       ];
+       librarySystemDepends = [ sqlite ];
+       testHaskellDepends = [
+         base bytestring conduit containers exceptions fast-logger hspec
+         HUnit microlens monad-logger mtl persistent persistent-test
+         QuickCheck resourcet system-fileio system-filepath temporary text
+         time transformers unliftio-core
+       ];
+       description = "Backend for the persistent library using sqlite3";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ psibi ];
+     }) {inherit (pkgs) sqlite;};
+
   "persistent-template" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , deepseq, deepseq-generics, file-embed, hspec, http-api-data
@@ -197829,6 +201647,8 @@ self: {
        pname = "persistent-template";
        version = "2.9.1.0";
        sha256 = "19ilgz8r6p5wy111rb4v0d6cnrj8jfiv2pnzdynpxd9ay66vgbca";
+       revision = "2";
+       editedCabalFile = "1lyrnh2lskkbvpjhbjiyh2ibndldsr8zgaiws7n37pa3vnmfx0qw";
        libraryHaskellDepends = [
          aeson base bytestring containers http-api-data monad-control
          monad-logger path-pieces persistent template-haskell text
@@ -197846,6 +201666,20 @@ self: {
        maintainers = with lib.maintainers; [ psibi ];
      }) {};
 
+  "persistent-template_2_12_0_0" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "persistent-template";
+       version = "2.12.0.0";
+       sha256 = "0c9cs27j43azimj74s2m2cdks87682ibpy1xbyzvygipgmb8nj6w";
+       libraryHaskellDepends = [ base ];
+       doHaddock = false;
+       description = "Type-safe, non-relational, multi-backend persistence";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ psibi ];
+     }) {};
+
   "persistent-template-classy" = callPackage
     ({ mkDerivation, base, lens, persistent, persistent-sqlite
      , persistent-template, template-haskell, text
@@ -197893,6 +201727,31 @@ self: {
        broken = true;
      }) {};
 
+  "persistent-test_2_12_0_0" = callPackage
+    ({ mkDerivation, aeson, base, blaze-html, bytestring, conduit
+     , containers, exceptions, hspec, hspec-expectations, HUnit
+     , monad-control, monad-logger, mtl, path-pieces, persistent
+     , QuickCheck, quickcheck-instances, random, resourcet, text, time
+     , transformers, transformers-base, unliftio, unliftio-core
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "persistent-test";
+       version = "2.12.0.0";
+       sha256 = "0vn6f8wmax68qg27ifw2sfr3d0zk12p6gaax5xshwmb5ypamrc50";
+       libraryHaskellDepends = [
+         aeson base blaze-html bytestring conduit containers exceptions
+         hspec hspec-expectations HUnit monad-control monad-logger mtl
+         path-pieces persistent QuickCheck quickcheck-instances random
+         resourcet text time transformers transformers-base unliftio
+         unliftio-core unordered-containers
+       ];
+       description = "Tests for Persistent";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "persistent-typed-db" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, esqueleto, hspec
      , http-api-data, monad-logger, path-pieces, persistent
@@ -197917,6 +201776,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "persistent-typed-db_0_1_0_3" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, conduit, esqueleto, hspec
+     , http-api-data, monad-logger, path-pieces, persistent
+     , persistent-template, resource-pool, resourcet, template-haskell
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "persistent-typed-db";
+       version = "0.1.0.3";
+       sha256 = "15x4qfk4bwafqa495y8dsywa5mrcfnmqm7pyn419p20yngnyhzn8";
+       libraryHaskellDepends = [
+         aeson base bytestring conduit http-api-data monad-logger
+         path-pieces persistent resource-pool resourcet template-haskell
+         text transformers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring conduit esqueleto hspec http-api-data
+         monad-logger path-pieces persistent persistent-template
+         resource-pool resourcet template-haskell text transformers
+       ];
+       description = "Type safe access to multiple database schemata";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "persistent-vector" = callPackage
     ({ mkDerivation, base, containers, criterion, deepseq, QuickCheck
      , test-framework, test-framework-quickcheck2, transformers
@@ -197980,7 +201864,7 @@ self: {
          unordered-containers
        ];
        description = "Persona (BrowserID) library";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -198003,7 +201887,7 @@ self: {
          pem persona scotty shakespeare text time transformers unix wai x509
        ];
        description = "Persona (BrowserID) Identity Provider";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -198123,7 +202007,7 @@ self: {
          async base ini postgresql-simple random scotty text transformers
        ];
        description = "REST service and library for creating/consuming temporary PostgreSQL databases";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -198155,7 +202039,7 @@ self: {
          warp
        ];
        description = "REST service for creating temporary PostgreSQL databases";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -198271,7 +202155,7 @@ self: {
        libraryHaskellDepends = [ base containers pretty ];
        librarySystemDepends = [ gu pgf ];
        description = "Bindings to the C version of the PGF runtime";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {gu = null; inherit (pkgs) pgf;};
@@ -198410,7 +202294,7 @@ self: {
        ];
        testSystemDepends = [ pHash ];
        description = "Haskell bindings to pHash, the open source perceptual hash library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {pHash = null;};
 
   "phizzle" = callPackage
@@ -198426,7 +202310,7 @@ self: {
        ];
        testHaskellDepends = [ base ];
        description = "Library for checking if a given link is in a phishtank json file";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "phoityne" = callPackage
@@ -198611,6 +202495,8 @@ self: {
        ];
        description = "A generalization of the uniqueness-periods-vector-examples functionality";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "phonetic-languages-filters-array" = callPackage
@@ -198696,6 +202582,8 @@ self: {
        ];
        description = "A generalization of the uniqueness-periods-vector-properties package";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "phonetic-languages-rhythmicity" = callPackage
@@ -198714,8 +202602,8 @@ self: {
      }:
      mkDerivation {
        pname = "phonetic-languages-simplified-base";
-       version = "0.1.0.0";
-       sha256 = "0fd2pslmgm5bvv0yiza87vp61601pl1c69xa5snbgrnb2mlp6f98";
+       version = "0.2.0.0";
+       sha256 = "1382i77ci70ax7lvbkqqvg1wr2pp5irl8wxvypngr15czqgj7sca";
        libraryHaskellDepends = [
          base phonetic-languages-permutations-array subG
        ];
@@ -198833,6 +202721,8 @@ self: {
        ];
        description = "Simplified and somewhat optimized version of the phonetic-languages-examples";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "phonetic-languages-simplified-properties-array" = callPackage
@@ -198868,6 +202758,8 @@ self: {
        ];
        description = "A generalization of the uniqueness-periods-vector-properties package";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "phonetic-languages-simplified-properties-lists-double" = callPackage
@@ -198886,6 +202778,8 @@ self: {
        ];
        description = "A generalization of the uniqueness-periods-vector-properties package";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "phonetic-languages-ukrainian" = callPackage
@@ -198971,7 +202865,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base mtl SDL transformers ];
        description = "A fractal viewer";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -199038,7 +202932,7 @@ self: {
          io-streams mtl network parsec RSA transformers
        ];
        description = "Applied pi-calculus interpreter";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -199090,7 +202984,7 @@ self: {
        ];
        testHaskellDepends = [ base ];
        description = "Lightweight access control solution for the pijul vcs";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -199133,7 +203027,7 @@ self: {
          xdg-basedir
        ];
        description = "Set up port forwarding with the Private Internet Access VPN service";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -199173,7 +203067,7 @@ self: {
        libraryHaskellDepends = [ base hmatrix JuicyPixels vector ];
        executableHaskellDepends = [ base cli hmatrix ];
        description = "simple image manipulation functions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -199271,7 +203165,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base matrix transformers xml ];
        description = "Converts a svg image to tikz code";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -199426,8 +203320,8 @@ self: {
      }:
      mkDerivation {
        pname = "pinboard-notes-backup";
-       version = "1.0.5";
-       sha256 = "042zph3nisrmhkfk2h3fwh91dz1fp0wgff0hlnpd962i67fgpixx";
+       version = "1.0.5.3";
+       sha256 = "03a05xl9jllqihbicnas5awhm6sz1ly3wp8vqdq06jvvr5n111j4";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -199436,9 +203330,7 @@ self: {
          transformers
        ];
        description = "Back up the notes you've saved to Pinboard";
-       license = lib.licenses.gpl3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "pinch" = callPackage
@@ -199699,29 +203591,6 @@ self: {
      }:
      mkDerivation {
        pname = "pipes";
-       version = "4.3.14";
-       sha256 = "11r8cqy98w1y0avgn53x1fzqxpdfg7wvwwkfppnk9yip0lkcp3yv";
-       libraryHaskellDepends = [
-         base exceptions mmorph mtl transformers void
-       ];
-       testHaskellDepends = [
-         base mtl QuickCheck test-framework test-framework-quickcheck2
-         transformers
-       ];
-       benchmarkHaskellDepends = [
-         base criterion mtl optparse-applicative transformers
-       ];
-       description = "Compositional pipelines";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "pipes_4_3_15" = callPackage
-    ({ mkDerivation, base, criterion, exceptions, mmorph, mtl
-     , optparse-applicative, QuickCheck, test-framework
-     , test-framework-quickcheck2, transformers, void
-     }:
-     mkDerivation {
-       pname = "pipes";
        version = "4.3.15";
        sha256 = "01hvzm7cp6y3wrdhca3wlb99y0az0rjy5lscmnds0v6i767kyxk1";
        libraryHaskellDepends = [
@@ -199736,7 +203605,6 @@ self: {
        ];
        description = "Compositional pipelines";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pipes-aeson" = callPackage
@@ -199896,8 +203764,8 @@ self: {
      }:
      mkDerivation {
        pname = "pipes-bytestring";
-       version = "2.1.6";
-       sha256 = "061wcb48mdq694zhwb5xh423ss6f7cccxahc05cifrzkh033gp5i";
+       version = "2.1.7";
+       sha256 = "0ch7145pv4f56601ysdj5gqqwsh5ag2zh34ydswg62fqi8z8cxvc";
        libraryHaskellDepends = [
          base bytestring pipes pipes-group pipes-parse stringsearch
          transformers
@@ -200190,8 +204058,8 @@ self: {
        pname = "pipes-extras";
        version = "1.0.15";
        sha256 = "1cyb05bv5xkarab3090ikpjiqm79lr46n3nalplliz8jr4x67a82";
-       revision = "2";
-       editedCabalFile = "1aprq51r83v5qja9vy01s8d17bnncnvp1mw6h6maxgzh2xppim8b";
+       revision = "3";
+       editedCabalFile = "177l1fs1wgm34ifbx83xxf29m0ghq6z9skpkwm86qfln2hpikkj9";
        libraryHaskellDepends = [ base foldl lens pipes transformers ];
        testHaskellDepends = [
          base HUnit pipes test-framework test-framework-hunit transformers
@@ -200274,8 +204142,8 @@ self: {
        pname = "pipes-group";
        version = "1.0.12";
        sha256 = "1issfj3syi6lfbcdn3bhlbnlh86s92ldsb04c4ac69xipsgyhwqk";
-       revision = "3";
-       editedCabalFile = "1mqqwv9w65c59lv97k9185rw8dvfcm4bk5n4z18hhgsrcjyr76n9";
+       revision = "4";
+       editedCabalFile = "16y13pmwwfj0cgwdjf9nglxgfxv3fkznjp1bf344jfvjm14vwg43";
        libraryHaskellDepends = [
          base free pipes pipes-parse transformers
        ];
@@ -200329,6 +204197,8 @@ self: {
        libraryHaskellDepends = [ base containers heaps pipes ];
        description = "Interleave and merge streams of elements";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pipes-io" = callPackage
@@ -200508,8 +204378,8 @@ self: {
     ({ mkDerivation, base, foldl, hspec, pipes, pipes-safe }:
      mkDerivation {
        pname = "pipes-ordered-zip";
-       version = "1.1.0";
-       sha256 = "1fs0qyhc4a7xnglxl7b1d615s9ajml6pvch337ivny31cxrngcsa";
+       version = "1.2.1";
+       sha256 = "0jgqnx5jdra5v0r7v564zzd96jfv42lbkdxgk1k7ip8gcikb1zdm";
        libraryHaskellDepends = [ base pipes pipes-safe ];
        testHaskellDepends = [ base foldl hspec pipes pipes-safe ];
        description = "merge two ordered Producers into a new Producer";
@@ -200559,8 +204429,8 @@ self: {
     ({ mkDerivation, base, pipes, transformers }:
      mkDerivation {
        pname = "pipes-parse";
-       version = "3.0.8";
-       sha256 = "1a87q6l610rhxr23qfzzzif3zpfjhw3mg5gfcyjwqac25hdq73yj";
+       version = "3.0.9";
+       sha256 = "05cd0j1avkzmryf3869hfpvd9xmzbpz4kc65srswx36n06dkz5x3";
        libraryHaskellDepends = [ base pipes transformers ];
        description = "Parsing infrastructure for the pipes ecosystem";
        license = lib.licenses.bsd3;
@@ -200607,6 +204477,20 @@ self: {
        broken = true;
      }) {};
 
+  "pipes-pulse-simple" = callPackage
+    ({ mkDerivation, base, bytestring, pipes, pipes-safe, pulse-simple
+     }:
+     mkDerivation {
+       pname = "pipes-pulse-simple";
+       version = "0.1.0.0";
+       sha256 = "003arf5cdbk2iwhqjbd8zaw12i7fd01h218r953cdxfrc902gy0q";
+       libraryHaskellDepends = [
+         base bytestring pipes pipes-safe pulse-simple
+       ];
+       description = "Pipes for pulse-simple audio";
+       license = lib.licenses.asl20;
+     }) {};
+
   "pipes-random" = callPackage
     ({ mkDerivation, base, mwc-random, pipes, vector }:
      mkDerivation {
@@ -200664,8 +204548,8 @@ self: {
      }:
      mkDerivation {
        pname = "pipes-safe";
-       version = "2.3.2";
-       sha256 = "10m6f52nahxwnl2zvgnbilllcvd3lpi0dxl3j6fk20lryjzmhyqc";
+       version = "2.3.3";
+       sha256 = "19gp93x5m1bnq240bj3v33pglf9r5gzji39fsjcazji837czghab";
        libraryHaskellDepends = [
          base containers exceptions monad-control mtl pipes primitive
          transformers transformers-base
@@ -200934,6 +204818,25 @@ self: {
        broken = true;
      }) {};
 
+  "pixel-printer" = callPackage
+    ({ mkDerivation, base, JuicyPixels, lens, optparse-applicative }:
+     mkDerivation {
+       pname = "pixel-printer";
+       version = "0.1.2";
+       sha256 = "1pnwpql4myy2ax607wxxbrfl5jg8yz2dx8nivaxa23k79wshwbfh";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base JuicyPixels lens ];
+       executableHaskellDepends = [
+         base JuicyPixels optparse-applicative
+       ];
+       testHaskellDepends = [ base ];
+       description = "A program for turning pixel art into 3D prints";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "pixela" = callPackage
     ({ mkDerivation, aeson, base, bytestring, data-default-class
      , http-client, http-client-tls, http-types, split, text, time
@@ -201003,6 +204906,8 @@ self: {
        ];
        description = "Pixiv API binding based on servant-client";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "piyo" = callPackage
@@ -201108,7 +205013,7 @@ self: {
          http-directory simple-cmd simple-cmd-args text
        ];
        description = "Package tree diff tool";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -201125,6 +205030,20 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "place-cursor-at" = callPackage
+    ({ mkDerivation, base, base-unicode-symbols, libXinerama, X11 }:
+     mkDerivation {
+       pname = "place-cursor-at";
+       version = "1.0.1";
+       sha256 = "0mgxyyi8zdhiarp75jshfsq5rrk6b2a7630bwvwyw06richykk9z";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [ base base-unicode-symbols X11 ];
+       executableSystemDepends = [ libXinerama ];
+       description = "A utility for X11 that moves the mouse cursor using the keyboard";
+       license = lib.licenses.gpl3Only;
+     }) {inherit (pkgs.xorg) libXinerama;};
+
   "placeholders" = callPackage
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
@@ -201175,7 +205094,7 @@ self: {
        sha256 = "13hqkz0p3c81d7v3qnbcf90cxyb15na9icfjch4hw0222i6kn21i";
        libraryHaskellDepends = [ base bytestring mtl time unix ];
        description = "plaimi's prelude";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -201566,7 +205485,7 @@ self: {
          base cairo colour fixed-vector gtk hmatrix plot text vector
        ];
        description = "A quick way to use Mathematica like Manipulation abilities";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -201599,7 +205518,7 @@ self: {
          base colour gtk hmatrix plot text vector
        ];
        description = "A plotting tool with Mathematica like Manipulation abilities";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -201746,8 +205665,8 @@ self: {
      }:
      mkDerivation {
        pname = "plugins";
-       version = "1.6.1";
-       sha256 = "004mfq0d10s26sgk12zrhgmxcfxnhvdyajr48scxf5rh1fv9440i";
+       version = "1.6.2";
+       sha256 = "1lgk25chpl6albf8pzq8q40di02rgv7g3bsf586a5pl2kdh2p2qq";
        libraryHaskellDepends = [
          array base Cabal containers directory filepath ghc ghc-paths
          ghc-prim haskell-src process random split
@@ -202369,6 +206288,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "poll_0_0_0_2" = callPackage
+    ({ mkDerivation, base, enumset, utility-ht }:
+     mkDerivation {
+       pname = "poll";
+       version = "0.0.0.2";
+       sha256 = "1bllh4yr96p7k44bc10zyhdx2zdh3brl0im3gnn5a1m6irsx6j42";
+       libraryHaskellDepends = [ base enumset utility-ht ];
+       description = "Bindings to poll.h";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "poly" = callPackage
     ({ mkDerivation, base, deepseq, doctest, finite-typelits, gauge
      , mod, primitive, QuickCheck, quickcheck-classes, semirings, tasty
@@ -202438,7 +206369,7 @@ self: {
        sha256 = "1csi81i0j3hk2gsc3c0rx939i67b0mj2pi064giw20yspqqjrp27";
        libraryHaskellDepends = [ base requirements ];
        description = "Polykinded extensible records";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "polyToMonoid" = callPackage
@@ -202561,8 +206492,8 @@ self: {
        pname = "polyparse";
        version = "1.13";
        sha256 = "0yvhg718dlksiw3v27m2d8m1sn4r4f5s0p56zq3lynhy1sc74k0w";
-       revision = "1";
-       editedCabalFile = "09jcn26py3lkjn3lvxgry86bad8xb8cwl3avxymqmf7b181krfb8";
+       revision = "2";
+       editedCabalFile = "1n5q6w7x46cvcq7j1pg9jx9h72vcsc5di35rbkmwgjw6pq4w4gfl";
        libraryHaskellDepends = [ base bytestring text ];
        description = "A variety of alternative parser combinator libraries";
        license = "LGPL";
@@ -202577,8 +206508,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy";
-       version = "1.4.0.0";
-       sha256 = "1zbfx3l390kqxq45lb1wms72cxckwh3sl7vk52q68d0l7j5cvn8n";
+       version = "1.5.0.0";
+       sha256 = "1d8qllllnwwjrjdaadgk4h07d7n2whw6hl8q3ikd474kfdagbiwz";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          async base containers first-class-families mtl QuickCheck stm syb
@@ -202631,8 +206562,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-chronos";
-       version = "0.1.0.0";
-       sha256 = "1a4rm41x225kvmyfcrvqk0aw89fy16hzms3l1gij0b2xh5c5lfyw";
+       version = "0.1.2.0";
+       sha256 = "1xv5nlr89jb0yzqzfb3dj2phi3ywvrazjilzd491892z3qbwvz5d";
        libraryHaskellDepends = [
          aeson base chronos containers polysemy polysemy-plugin
          polysemy-time text
@@ -202647,6 +206578,31 @@ self: {
        broken = true;
      }) {};
 
+  "polysemy-conc" = callPackage
+    ({ mkDerivation, async, base, containers, hedgehog, polysemy
+     , polysemy-test, polysemy-time, relude, stm, stm-chans
+     , string-interpolate, tasty, tasty-hedgehog, template-haskell, text
+     , time, unix
+     }:
+     mkDerivation {
+       pname = "polysemy-conc";
+       version = "0.1.0.1";
+       sha256 = "1p8zhnf28zdmmfrmxixqvih5waididvm8h0vh5wvmjglhf5k35x5";
+       libraryHaskellDepends = [
+         async base containers polysemy polysemy-time relude stm stm-chans
+         string-interpolate template-haskell text time unix
+       ];
+       testHaskellDepends = [
+         async base containers hedgehog polysemy polysemy-test polysemy-time
+         relude stm stm-chans string-interpolate tasty tasty-hedgehog
+         template-haskell text time unix
+       ];
+       description = "Polysemy Effects for Concurrency";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "polysemy-extra" = callPackage
     ({ mkDerivation, base, containers, exceptions, extra, polysemy
      , polysemy-zoo
@@ -202697,18 +206653,18 @@ self: {
      , case-insensitive, co-log-core, co-log-polysemy, composition
      , containers, data-default, either, hedgehog, http-client
      , http-client-tls, http-types, lens, network, polysemy
-     , polysemy-plugin, relude, servant, servant-client, servant-server
-     , string-interpolate, tasty, tasty-hedgehog, template-haskell, text
-     , time, warp
+     , polysemy-log, polysemy-plugin, relude, servant, servant-client
+     , servant-server, string-interpolate, tasty, tasty-hedgehog
+     , template-haskell, text, time, warp
      }:
      mkDerivation {
        pname = "polysemy-http";
-       version = "0.3.0.0";
-       sha256 = "0ahx7rxl8xa1v48i35bvjpz1wnbcl63k6xxzikrh13z3fd0ci704";
+       version = "0.4.0.1";
+       sha256 = "0yhv295kjnrk9d2i59y9x8fgaxnsiwgmbk6x7calysqkw195sa44";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring case-insensitive co-log-core
          co-log-polysemy composition containers data-default either
-         http-client http-client-tls http-types lens polysemy
+         http-client http-client-tls http-types lens polysemy polysemy-log
          polysemy-plugin relude string-interpolate template-haskell text
          time
        ];
@@ -202716,9 +206672,9 @@ self: {
          aeson ansi-terminal base bytestring case-insensitive co-log-core
          co-log-polysemy composition containers data-default either hedgehog
          http-client http-client-tls http-types lens network polysemy
-         polysemy-plugin relude servant servant-client servant-server
-         string-interpolate tasty tasty-hedgehog template-haskell text time
-         warp
+         polysemy-log polysemy-plugin relude servant servant-client
+         servant-server string-interpolate tasty tasty-hedgehog
+         template-haskell text time warp
        ];
        description = "Polysemy effect for http-client";
        license = "BSD-2-Clause-Patent";
@@ -202742,6 +206698,80 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "polysemy-log" = callPackage
+    ({ mkDerivation, ansi-terminal, async, base, hedgehog, polysemy
+     , polysemy-conc, polysemy-test, polysemy-time, relude, stm
+     , stm-chans, string-interpolate, tasty, tasty-hedgehog
+     , template-haskell, text, time
+     }:
+     mkDerivation {
+       pname = "polysemy-log";
+       version = "0.2.0.1";
+       sha256 = "1zidk2i6mvd7i4dr83rdjhnw9v4603gig8qr3d5b7r6q4bvvm0va";
+       libraryHaskellDepends = [
+         ansi-terminal async base polysemy polysemy-conc polysemy-time
+         relude stm stm-chans string-interpolate template-haskell text time
+       ];
+       testHaskellDepends = [
+         ansi-terminal async base hedgehog polysemy polysemy-conc
+         polysemy-test polysemy-time relude stm stm-chans string-interpolate
+         tasty tasty-hedgehog template-haskell text time
+       ];
+       description = "Polysemy effects for logging";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "polysemy-log-co" = callPackage
+    ({ mkDerivation, base, co-log, co-log-core, co-log-polysemy
+     , hedgehog, polysemy, polysemy-conc, polysemy-log, polysemy-test
+     , polysemy-time, relude, string-interpolate, tasty, tasty-hedgehog
+     , text, time
+     }:
+     mkDerivation {
+       pname = "polysemy-log-co";
+       version = "0.2.0.1";
+       sha256 = "0jqyn96n7mdffyhbq7fxj8rl8prpcfmjl4wdhw4bax404bbm9v2n";
+       libraryHaskellDepends = [
+         base co-log co-log-core co-log-polysemy polysemy polysemy-conc
+         polysemy-log polysemy-time relude string-interpolate text time
+       ];
+       testHaskellDepends = [
+         base co-log co-log-core co-log-polysemy hedgehog polysemy
+         polysemy-conc polysemy-log polysemy-test polysemy-time relude
+         string-interpolate tasty tasty-hedgehog text time
+       ];
+       description = "polysemy-log interpreter for co-log";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "polysemy-log-di" = callPackage
+    ({ mkDerivation, base, di-polysemy, hedgehog, polysemy
+     , polysemy-conc, polysemy-log, polysemy-test, polysemy-time, relude
+     , string-interpolate, tasty, tasty-hedgehog, text, time
+     }:
+     mkDerivation {
+       pname = "polysemy-log-di";
+       version = "0.2.0.1";
+       sha256 = "0n486xv9wayapk2bviik7mmqsrfzzdiq6rr7r1asjqygzksn48lv";
+       libraryHaskellDepends = [
+         base di-polysemy polysemy polysemy-conc polysemy-log polysemy-time
+         relude string-interpolate text time
+       ];
+       testHaskellDepends = [
+         base di-polysemy hedgehog polysemy polysemy-conc polysemy-log
+         polysemy-test polysemy-time relude string-interpolate tasty
+         tasty-hedgehog text time
+       ];
+       description = "polysemy-log interpreter for di";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "polysemy-methodology" = callPackage
     ({ mkDerivation, base, co-log-polysemy, polysemy, polysemy-plugin
      , polysemy-zoo
@@ -202783,8 +206813,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-mocks";
-       version = "0.1.0.0";
-       sha256 = "04cgajjrlbiqij54k6agm1p6h4hv5lldb9f9yrzbwm0v69d02bs7";
+       version = "0.1.0.1";
+       sha256 = "0jd8x47mdx9fyn65ra0y1m05myf2m2bhz3ykg1i3818ixwd93xvl";
        libraryHaskellDepends = [ base polysemy template-haskell ];
        testHaskellDepends = [ base hspec polysemy ];
        testToolDepends = [ hspec-discover ];
@@ -202830,8 +206860,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-plugin";
-       version = "0.2.5.2";
-       sha256 = "13qfbgwn187vgdqs2rkl5lhcfbaw992qnlpz90pr9nw64k2ylcmp";
+       version = "0.3.0.0";
+       sha256 = "0pcy476nndcvszkl57d5sd2m64zvjzvvxz4ldg2bdg6mdi4apl23";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base containers ghc ghc-tcplugins-extra polysemy syb transformers
@@ -202873,8 +206903,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-test";
-       version = "0.3.0.2";
-       sha256 = "16xkg6iwb7ms3k7mbrwa152izgs520x6jvc5bwp9pl0mk70qx3nw";
+       version = "0.3.1.0";
+       sha256 = "0a55kdfcjngdgl2is9qnhm7akrrjy03qsiihxgczabflcmqyazcb";
        libraryHaskellDepends = [
          base containers either hedgehog path path-io polysemy
          polysemy-plugin relude string-interpolate tasty tasty-hedgehog
@@ -202899,8 +206929,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-time";
-       version = "0.1.1.0";
-       sha256 = "1az7mf2jvd0vhsjpswa37rxrj760n5n3vhxpb4rlx28g8nx2jmkj";
+       version = "0.1.2.0";
+       sha256 = "01z8y3jn63s8rkx27vj09hj6rl0ba4yjcc52yj7cvsvyi64s6ya3";
        libraryHaskellDepends = [
          aeson base composition containers data-default either polysemy
          relude string-interpolate template-haskell text time torsor
@@ -203101,7 +207131,7 @@ self: {
          process time unix wx wxcore
        ];
        description = "pomodoro timer";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -203184,38 +207214,49 @@ self: {
 
   "pontarius-xmpp" = callPackage
     ({ mkDerivation, async, attoparsec, base, base64-bytestring, binary
-     , bytestring, Cabal, conduit, configurator, containers, criterion
-     , crypto-api, crypto-random, cryptohash, cryptohash-cryptoapi
-     , data-default, derive, directory, dns, exceptions, filepath
-     , hslogger, hspec, hspec-expectations, HUnit, 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
+     , bytestring, Cabal, conduit, containers, criterion, crypto-api
+     , crypto-random, cryptohash, cryptohash-cryptoapi, 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.3";
-       sha256 = "0zfl6brikkb4pjgvl4lfvjjylmiq6gyv46mi21nrlk3vmdni9dd5";
+       version = "0.5.6.4";
+       sha256 = "1izcyk30r527p4zx8yyi42r1xsl01gc5jpdrpkz1lksnjc6vzxq3";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring binary bytestring conduit
          containers crypto-api crypto-random cryptohash cryptohash-cryptoapi
-         data-default dns exceptions hslogger iproute lens-family
+         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 base Cabal conduit configurator containers data-default
-         derive directory filepath hslogger hspec hspec-expectations HUnit
-         lens mtl network QuickCheck quickcheck-instances ranges smallcheck
-         stm stringprep tasty tasty-hspec tasty-hunit tasty-quickcheck
-         tasty-th text tls transformers xml-picklers xml-types
+         async attoparsec base base64-bytestring binary bytestring Cabal
+         conduit containers crypto-api crypto-random cryptohash
+         cryptohash-cryptoapi 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 crypto-random cryptohash
+         cryptohash-cryptoapi 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
        ];
-       benchmarkHaskellDepends = [ base criterion ];
        description = "An XMPP client library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -203228,8 +207269,8 @@ self: {
      }:
      mkDerivation {
        pname = "pontarius-xmpp-extras";
-       version = "0.1.0.6";
-       sha256 = "12av8vgnj9iy0bdcb13gc4x28n3c7ahb3221xla78sss5r4rhq0z";
+       version = "0.1.0.7";
+       sha256 = "0kcb0fvbs340cpqzh9vxi7vkisgkv2afnvr5fjq647lwisncbxgz";
        libraryHaskellDepends = [
          base data-default pontarius-xmpp text time xml-types
        ];
@@ -203387,7 +207428,7 @@ self: {
        libraryPkgconfigDepends = [ gdk-pixbuf gtk2 pango poppler_gi ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the Poppler";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gdk-pixbuf; inherit (pkgs) gtk2; 
@@ -204064,6 +208105,34 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "postgresql-binary_0_12_4" = callPackage
+    ({ mkDerivation, aeson, base, binary-parser, bytestring
+     , bytestring-strict-builder, containers, conversion
+     , conversion-bytestring, conversion-text, criterion, json-ast
+     , network-ip, postgresql-libpq, QuickCheck, quickcheck-instances
+     , rerebase, scientific, tasty, tasty-hunit, tasty-quickcheck, text
+     , time, transformers, unordered-containers, uuid, vector
+     }:
+     mkDerivation {
+       pname = "postgresql-binary";
+       version = "0.12.4";
+       sha256 = "1im0wfssg8f31rdis86qxhz0cqra1bdgiyxgsbqxf78qi3w05f4c";
+       libraryHaskellDepends = [
+         aeson base binary-parser bytestring bytestring-strict-builder
+         containers network-ip scientific text time transformers
+         unordered-containers uuid vector
+       ];
+       testHaskellDepends = [
+         aeson conversion conversion-bytestring conversion-text json-ast
+         network-ip postgresql-libpq QuickCheck quickcheck-instances
+         rerebase tasty tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ criterion rerebase ];
+       description = "Encoders and decoders for the PostgreSQL's binary format";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "postgresql-common" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, postgresql-simple }:
      mkDerivation {
@@ -204170,6 +208239,8 @@ self: {
        pname = "postgresql-libpq";
        version = "0.9.4.3";
        sha256 = "1gfnhc5pibn7zmifdf2g0c112xrpzsk756ln2kjzqljkspf4dqp3";
+       revision = "1";
+       editedCabalFile = "1clivf13z15w954a0kcfkv8yc0d8kx61b68x2hk7a9236ck7l2m2";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring unix ];
        librarySystemDepends = [ postgresql ];
@@ -204258,17 +208329,17 @@ self: {
      }) {};
 
   "postgresql-placeholder-converter" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, hspec
+    ({ mkDerivation, attoparsec, base, bytestring, either-result, hspec
      , hspec-discover, mtl, utf8-string
      }:
      mkDerivation {
        pname = "postgresql-placeholder-converter";
-       version = "0.1.0.0";
-       sha256 = "1dprqv0r00nrx6m0byqfzpb91h5kz3nxd0w0m21150l68sj2d8ys";
+       version = "0.2.0.0";
+       sha256 = "0jpsa6c2m0m8d9abki585krf9pvj5p4rsayg1qs963r4vg1m8p23";
        revision = "1";
-       editedCabalFile = "0mla1cibyc13bz7gvv5b31il8nyp0vjfi8xqgpynbjfq7d4fjnnc";
+       editedCabalFile = "008gnpj16xnbmrzqjm9mqyycdvmzlbnsrsz3kfa42sf3fnq1g1f6";
        libraryHaskellDepends = [
-         attoparsec base bytestring mtl utf8-string
+         attoparsec base bytestring either-result mtl utf8-string
        ];
        testHaskellDepends = [ base hspec ];
        testToolDepends = [ hspec-discover ];
@@ -204280,46 +208351,40 @@ self: {
     ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
      , Cabal, cassava, clock, containers, convertible, cryptohash-md5
      , data-default-class, deepseq, directory, doctest
-     , double-conversion, filepath, HDBC, HDBC-postgresql, HDBC-session
-     , homotuple, hourglass, hspec, hspec-core, HUnit, list-tuple
-     , memory, mtl, network, old-time, OneTuple, Only
-     , optparse-applicative, persistable-record, postgresql-binary
-     , postgresql-libpq, postgresql-placeholder-converter
-     , postgresql-simple, pretty-hex, QuickCheck, random-shuffle
-     , relational-query, relational-query-HDBC, relational-record
-     , safe-exceptions, scientific, single-tuple, text, time
-     , utf8-string, vector
+     , double-conversion, either-result, filepath, HDBC, HDBC-postgresql
+     , HDBC-session, homotuple, hourglass, hspec, hspec-discover, HUnit
+     , list-tuple, memory, mtl, network, old-time, OneTuple, Only
+     , optparse-applicative, postgresql-binary, postgresql-libpq
+     , postgresql-placeholder-converter, postgresql-simple
+     , postgresql-typed, pretty-hex, random-shuffle, relational-query
+     , relational-query-HDBC, safe-exceptions, scientific, single-tuple
+     , text, time, utf8-string
      }:
      mkDerivation {
        pname = "postgresql-pure";
-       version = "0.2.2.0";
-       sha256 = "16k03m1yy8ca5rik4av76p883nvmk0w4ak9pva2i5l57vv8d8hc6";
+       version = "0.2.3.0";
+       sha256 = "0lcnsrz612i240l7xw48zq1f70y1hjjbjl7h7yrdjwk2drihqx3x";
        setupHaskellDepends = [ base Cabal directory filepath ];
        libraryHaskellDepends = [
          attoparsec base base16-bytestring bytestring containers convertible
-         cryptohash-md5 data-default-class double-conversion HDBC homotuple
-         list-tuple memory mtl network OneTuple Only postgresql-binary
-         postgresql-placeholder-converter pretty-hex safe-exceptions
-         scientific single-tuple text time utf8-string
+         cryptohash-md5 data-default-class deepseq double-conversion HDBC
+         homotuple list-tuple memory mtl network OneTuple Only
+         postgresql-binary postgresql-placeholder-converter pretty-hex
+         safe-exceptions scientific single-tuple text time utf8-string
        ];
        testHaskellDepends = [
-         attoparsec base base16-bytestring bytestring containers convertible
-         cryptohash-md5 data-default-class doctest double-conversion HDBC
-         HDBC-postgresql HDBC-session homotuple hspec hspec-core HUnit
-         list-tuple memory mtl network old-time OneTuple Only
-         persistable-record postgresql-binary
-         postgresql-placeholder-converter pretty-hex QuickCheck
-         relational-query relational-query-HDBC relational-record
-         safe-exceptions scientific single-tuple text time utf8-string
+         attoparsec base bytestring containers convertible
+         data-default-class doctest either-result HDBC HDBC-postgresql
+         HDBC-session homotuple hspec HUnit network old-time Only
+         postgresql-placeholder-converter relational-query
+         relational-query-HDBC safe-exceptions time utf8-string
        ];
+       testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
-         attoparsec base base16-bytestring bytestring cassava clock
-         containers convertible cryptohash-md5 data-default-class deepseq
-         double-conversion HDBC homotuple hourglass list-tuple memory mtl
-         network OneTuple Only optparse-applicative postgresql-binary
-         postgresql-libpq postgresql-placeholder-converter postgresql-simple
-         pretty-hex random-shuffle safe-exceptions scientific single-tuple
-         text time utf8-string vector
+         attoparsec base bytestring cassava clock data-default-class deepseq
+         homotuple hourglass Only optparse-applicative postgresql-libpq
+         postgresql-simple postgresql-typed random-shuffle scientific time
+         utf8-string
        ];
        description = "pure Haskell PostgreSQL driver";
        license = lib.licenses.bsd3;
@@ -204391,6 +208456,8 @@ self: {
        pname = "postgresql-simple";
        version = "0.6.4";
        sha256 = "0rz2bklxp4pvbxb2w49h5p6pbwabn6d5d4j4mrya4fpa0d13k43d";
+       revision = "2";
+       editedCabalFile = "1kwjlj0bsc1yd4dgfc0ydawq9acfjlf0bymwc830dryp16wpj9zv";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring bytestring-builder
          case-insensitive containers hashable Only postgresql-libpq
@@ -204579,8 +208646,8 @@ self: {
        pname = "postgresql-simple-url";
        version = "0.2.1.0";
        sha256 = "1jg9gvpidrfy2hqixwqsym1l1mnkafmxwq58jpbzdmrbvryga1qk";
-       revision = "3";
-       editedCabalFile = "02l1g5jiw6idnnax7q2lzayjycgi029pv41njdmwdch57k59vai5";
+       revision = "4";
+       editedCabalFile = "092gkvwzdf0nmm6q6lgjb81j8vpn5d3pybavs39ya2v92mbhrpmm";
        libraryHaskellDepends = [
          base network-uri postgresql-simple split
        ];
@@ -204589,6 +208656,8 @@ self: {
        ];
        description = "Parse postgres:// url into ConnectInfo";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "postgresql-syntax" = callPackage
@@ -204749,6 +208818,35 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "postgresql-typed_0_6_2_0" = 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.0";
+       sha256 = "0v38c5ai3plc1vlgz536a41yflz2d7nm9laks28lnqvxaqim27aw";
+       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;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "postgresql-typed-lifted" = callPackage
     ({ mkDerivation, base, base-unicode-symbols, bytestring, exceptions
      , lens, monad-control, postgresql-typed, transformers-base
@@ -204785,8 +208883,8 @@ self: {
        pname = "postgrest";
        version = "7.0.1";
        sha256 = "1cn69dinfv3y8ymsa364b9b0ly3dg80and902gamymb9v89jpsgf";
-       revision = "5";
-       editedCabalFile = "0cfw145pna4k1jjcmkffwaw2h8ls9crngmzcsi2jhc85s90gq2fv";
+       revision = "6";
+       editedCabalFile = "0kkhkz1bmgc1p0yry24fhc4a3s9w28wg6gxai0cggvalbz8c4pc4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -204942,7 +209040,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base binary bytestring split ];
        description = "Command line Dreamcast VMU filesystem toolset";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -205082,7 +209180,7 @@ self: {
          JuicyPixels vector
        ];
        description = "Trace bitmap images to paths using potrace";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "potrace-diagrams" = callPackage
@@ -205095,7 +209193,7 @@ self: {
        editedCabalFile = "1iwsxi5zkqqjf9wr460bqjpghcvjhpgqgk27a11ji6bpdf6gnhga";
        libraryHaskellDepends = [ base diagrams-lib JuicyPixels potrace ];
        description = "Potrace bindings for the diagrams library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -205347,7 +209445,7 @@ self: {
          base tasty tasty-hunit tasty-quickcheck vector-space
        ];
        description = "Alternative Show class that gives shorter view if possible";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "prairie" = callPackage
@@ -206026,8 +210124,8 @@ self: {
      }:
      mkDerivation {
        pname = "pretty-diff";
-       version = "0.2.0.3";
-       sha256 = "1pnq05zw7zyfikga8y27pkya4wrf0m3mrksmzi8l7jp9qdhkyia1";
+       version = "0.4.0.3";
+       sha256 = "0qzsq9dm95f6yjryl2675rbyx178zxl562x0y9i1py2rx4k8z7gl";
        libraryHaskellDepends = [ base data-default Diff text ];
        testHaskellDepends = [
          base data-default Diff tasty tasty-hunit tasty-test-reporter text
@@ -206570,7 +210668,7 @@ self: {
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        description = "prime number tools";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "primes" = callPackage
@@ -206721,8 +210819,8 @@ self: {
      }:
      mkDerivation {
        pname = "primitive-extras";
-       version = "0.8";
-       sha256 = "0g3b7b842wbdh7hqr6ikvycdwk1n3in9dq5yb09g744ydpmvg24r";
+       version = "0.10.1";
+       sha256 = "0ddnn94qqkx021marpi2j03sil15422scq0df6dmlc6q0qyyivyc";
        libraryHaskellDepends = [
          base bytestring cereal deferred-folds focus foldl list-t primitive
          primitive-unlifted profunctors vector
@@ -206733,8 +210831,6 @@ self: {
        ];
        description = "Extras for the \"primitive\" library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "primitive-foreign" = callPackage
@@ -207196,7 +211292,7 @@ self: {
          xformat
        ];
        description = "Parse process information for Linux";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -207359,6 +211455,17 @@ self: {
        broken = true;
      }) {};
 
+  "process-sequential" = callPackage
+    ({ mkDerivation, base, directory, mmsyn3, process, sublists }:
+     mkDerivation {
+       pname = "process-sequential";
+       version = "0.1.1.0";
+       sha256 = "19dv9sk1hk4ny0zh8amr9bddmjxc94r8h3cims9ylhrrb34zz90f";
+       libraryHaskellDepends = [ base directory mmsyn3 process sublists ];
+       description = "A test suite for the complex multi files multi level processment";
+       license = lib.licenses.mit;
+     }) {};
+
   "process-streaming" = callPackage
     ({ mkDerivation, attoparsec, base, bifunctors, bytestring, conceit
      , containers, directory, doctest, exceptions, filepath, foldl, free
@@ -207757,14 +211864,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "profunctors_5_6_1" = callPackage
+  "profunctors_5_6_2" = callPackage
     ({ mkDerivation, base, base-orphans, bifunctors, comonad
      , contravariant, distributive, tagged, transformers
      }:
      mkDerivation {
        pname = "profunctors";
-       version = "5.6.1";
-       sha256 = "1b2fgnhl3j790rra615q6y9xx97lip0smfg1c13ad1brvyjygps6";
+       version = "5.6.2";
+       sha256 = "0an9v003ivxmjid0s51qznbjhd5fsa1dkcfsrhxllnjja1xmv5b5";
        libraryHaskellDepends = [
          base base-orphans bifunctors comonad contravariant distributive
          tagged transformers
@@ -207810,7 +211917,7 @@ self: {
        editedCabalFile = "1a20ziwki29chw069jqrjm2rb64j4sfxbi7xyqxqd6vh9gpwdmm1";
        libraryHaskellDepends = [ base deepseq mtl time ];
        description = "Functionality for reporting function progress";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -208027,8 +212134,8 @@ self: {
      }:
      mkDerivation {
        pname = "prolens";
-       version = "0.0.0.0";
-       sha256 = "1p4cl83knkvfa11ijw9qb2akz9n8lv9ixawgxwynypygg7vdg9j2";
+       version = "0.0.0.1";
+       sha256 = "0sf9s363gdyhs4qs6z2zqf1ha49qhfx9b1rldj28cgljrxy8jkws";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base doctest hedgehog hspec hspec-hedgehog inspection-testing
@@ -208719,6 +212826,8 @@ self: {
        ];
        description = "Adapting proto-lens to optparse-applicative ReadMs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "proto-lens-protobuf-types" = callPackage
@@ -208836,29 +212945,6 @@ self: {
 
   "proto3-wire" = callPackage
     ({ mkDerivation, base, bytestring, cereal, containers, deepseq
-     , doctest, hashable, QuickCheck, safe, tasty, tasty-hunit
-     , tasty-quickcheck, text, unordered-containers
-     }:
-     mkDerivation {
-       pname = "proto3-wire";
-       version = "1.1.0";
-       sha256 = "1f8vllbysz6d7njkqd6f52k4nixjj4wf2k4nh4gb4b7dihdzhnmg";
-       revision = "1";
-       editedCabalFile = "1ws072947d8lmchknyhrzpg9mh6dacya872a4b9dw0cdgkn13zm8";
-       libraryHaskellDepends = [
-         base bytestring cereal containers deepseq hashable QuickCheck safe
-         text unordered-containers
-       ];
-       testHaskellDepends = [
-         base bytestring cereal doctest QuickCheck tasty tasty-hunit
-         tasty-quickcheck text
-       ];
-       description = "A low-level implementation of the Protocol Buffers (version 3) wire format";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "proto3-wire_1_2_0" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, containers, deepseq
      , doctest, ghc-prim, hashable, parameterized, primitive, QuickCheck
      , safe, tasty, tasty-hunit, tasty-quickcheck, text, transformers
      , unordered-containers, vector
@@ -208881,6 +212967,7 @@ self: {
        description = "A low-level implementation of the Protocol Buffers (version 3) wire format";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "protobuf" = callPackage
@@ -209105,17 +213192,18 @@ self: {
      }) {};
 
   "proton" = callPackage
-    ({ mkDerivation, adjunctions, base, bifunctors, comonad
-     , compactable, containers, contravariant, distributive, linear, mtl
-     , profunctors, tagged
+    ({ mkDerivation, adjunctions, async, base, bifunctors, comonad
+     , compactable, containers, contravariant, distributive, folds
+     , linear, mtl, profunctors, tagged, transformers
      }:
      mkDerivation {
        pname = "proton";
-       version = "0.0.1";
-       sha256 = "0l3176d1vjvknns2dx7qnwi7n45mc6v4qx9iv3z4488msjfqx6gf";
+       version = "0.0.3";
+       sha256 = "0w68v8sglyg99jni1p1cz6x87cm6x1ayll08wlijaiwpqc2pma2n";
        libraryHaskellDepends = [
-         adjunctions base bifunctors comonad compactable containers
-         contravariant distributive linear mtl profunctors tagged
+         adjunctions async base bifunctors comonad compactable containers
+         contravariant distributive folds linear mtl profunctors tagged
+         transformers
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -209192,7 +213280,7 @@ self: {
          time
        ];
        description = "Computations that automatically track data dependencies";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -209245,6 +213333,36 @@ self: {
        broken = true;
      }) {};
 
+  "prune-juice" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, Cabal
+     , cabal-install-parsers, containers, directory, file-embed
+     , file-path-th, filepath, hspec, megaparsec, monad-logger, mtl
+     , optparse-applicative, process, text, yaml
+     }:
+     mkDerivation {
+       pname = "prune-juice";
+       version = "0.6";
+       sha256 = "0g7gn0158hkr5b27iqlzmhnarb05y5id92qk2jl6azqnzrb2p5j7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring Cabal cabal-install-parsers containers
+         directory filepath megaparsec monad-logger mtl process text yaml
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring Cabal cabal-install-parsers containers
+         directory filepath megaparsec monad-logger mtl optparse-applicative
+         process text yaml
+       ];
+       testHaskellDepends = [
+         aeson base bytestring Cabal cabal-install-parsers containers
+         directory file-embed file-path-th filepath hspec megaparsec
+         monad-logger mtl process text yaml
+       ];
+       description = "Prune unused Haskell dependencies";
+       license = lib.licenses.mit;
+     }) {};
+
   "psc-ide" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , edit-distance, either, filepath, fsnotify, hspec, http-client
@@ -209426,8 +213544,8 @@ self: {
      }:
      mkDerivation {
        pname = "ptr";
-       version = "0.16.7.2";
-       sha256 = "0d00albfv3zbbq54x9i8riwbpi61mpz7ymr8y1whag2lrw4diyna";
+       version = "0.16.8.1";
+       sha256 = "1ij3jhvavy19jjy6zx1q3jm2zq3n4qjxng653m5rr0rlfmwmanhp";
        libraryHaskellDepends = [
          base bytestring contravariant profunctors text time vector
        ];
@@ -209445,8 +213563,8 @@ self: {
      }:
      mkDerivation {
        pname = "ptr-poker";
-       version = "0.1.1.3";
-       sha256 = "1qrcsci4jccx4l1zlpqr202jl2dhpmcbbq94gfgdax80q8js3yrq";
+       version = "0.1.1.4";
+       sha256 = "1g9b3dixrgi1k8vg85mgdpnph1dz02xggwp61naak6j392kg6rkf";
        libraryHaskellDepends = [ base bytestring scientific text ];
        testHaskellDepends = [ hedgehog numeric-limits rerebase ];
        benchmarkHaskellDepends = [ gauge rerebase ];
@@ -209456,6 +213574,17 @@ self: {
        broken = true;
      }) {};
 
+  "ptrdiff" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "ptrdiff";
+       version = "0";
+       sha256 = "1qfa6n1xd2xgcr9qbqdf3y8gj8yfiiladg3l4sp72v7wvqbvgvyw";
+       libraryHaskellDepends = [ base ];
+       description = "Type-checked pointer diffs";
+       license = "(BSD-2-Clause OR Apache-2.0)";
+     }) {};
+
   "pub" = callPackage
     ({ mkDerivation, base, bytestring, hedis, optparse-generic, pipes
      , pipes-bytestring, text
@@ -209752,6 +213881,7 @@ self: {
        librarySystemDepends = [ libpulseaudio ];
        description = "binding to Simple API of pulseaudio";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ turion ];
      }) {inherit (pkgs) libpulseaudio;};
 
   "pulseaudio" = callPackage
@@ -209765,7 +213895,7 @@ self: {
        libraryHaskellDepends = [ base containers stm unix ];
        librarySystemDepends = [ libpulseaudio ];
        description = "A low-level (incomplete) wrapper around the pulseaudio client asynchronous api";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {inherit (pkgs) libpulseaudio;};
 
   "punkt" = callPackage
@@ -209819,7 +213949,7 @@ self: {
          mtl text
        ];
        description = "A program that displays the puppet resources associated to a node given .pp files.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -209974,8 +214104,8 @@ self: {
      }:
      mkDerivation {
        pname = "purebred-email";
-       version = "0.4.2";
-       sha256 = "18cjifncnxi4c3xxkgvvvay56h2a0zs83505xf1a9fkz5n8iwqby";
+       version = "0.4.3";
+       sha256 = "00jl1n200nfn8iaqqdpa9h77b14r0fd6amsh46h16ad4ky3p2nkj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -209989,7 +214119,7 @@ self: {
          tasty-hedgehog tasty-hunit tasty-quickcheck text time
        ];
        description = "types and parser for email messages (including MIME)";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Plus;
      }) {};
 
   "purescheme-wai-routing-core" = callPackage
@@ -210021,50 +214151,48 @@ self: {
      , ansi-terminal, ansi-wl-pprint, array, base, base-compat
      , blaze-html, bower-json, boxes, bytestring, Cabal, cborg
      , cheapskate, clock, containers, cryptonite, data-ordlist, deepseq
-     , directory, dlist, edit-distance, file-embed, filepath, fsnotify
-     , gitrev, Glob, happy, haskeline, hspec, hspec-discover, http-types
-     , HUnit, language-javascript, lifted-async, lifted-base, memory
+     , directory, edit-distance, file-embed, filepath, fsnotify, gitrev
+     , Glob, happy, haskeline, hspec, hspec-discover, http-types, HUnit
+     , language-javascript, lifted-async, lifted-base, memory
      , microlens-platform, monad-control, monad-logger, mtl, network
      , optparse-applicative, parallel, parsec, pattern-arrows, process
-     , protolude, regex-tdfa, safe, scientific, semialign, semigroups
-     , serialise, sourcemap, split, stm, stringsearch, syb, tasty
-     , tasty-golden, tasty-hspec, tasty-quickcheck, text, these, time
-     , transformers, transformers-base, transformers-compat
-     , unordered-containers, utf8-string, vector, wai, wai-websockets
-     , warp, websockets
+     , protolude, purescript-ast, purescript-cst, regex-base, regex-tdfa
+     , safe, semialign, semigroups, serialise, sourcemap, split, stm
+     , stringsearch, syb, tasty, tasty-golden, tasty-hspec
+     , tasty-quickcheck, text, these, time, transformers
+     , transformers-base, transformers-compat, unordered-containers
+     , utf8-string, vector, wai, wai-websockets, warp, websockets
      }:
      mkDerivation {
        pname = "purescript";
-       version = "0.13.8";
-       sha256 = "0sh9z3ir3jiwmi5h95v9p7j746xxidg1hrxha89c0zl6vr4sq7vh";
-       revision = "1";
-       editedCabalFile = "1ilnqfxscwkr0jl09y1dwi2aabwnghd0l22lm32jgfyq04njpc2a";
+       version = "0.14.0";
+       sha256 = "1bv68y91l6fyjidfp71djiv2lijn5d55j4szlg77yvsw164s6vk0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-better-errors aeson-pretty ansi-terminal array base
          base-compat blaze-html bower-json boxes bytestring Cabal cborg
          cheapskate clock containers cryptonite data-ordlist deepseq
-         directory dlist edit-distance file-embed filepath fsnotify Glob
-         haskeline language-javascript lifted-async lifted-base memory
+         directory edit-distance file-embed filepath fsnotify Glob haskeline
+         language-javascript lifted-async lifted-base memory
          microlens-platform monad-control monad-logger mtl parallel parsec
-         pattern-arrows process protolude regex-tdfa safe scientific
-         semialign semigroups serialise sourcemap split stm stringsearch syb
-         text these time transformers transformers-base transformers-compat
-         unordered-containers utf8-string vector
+         pattern-arrows process protolude purescript-ast purescript-cst
+         regex-tdfa safe semialign semigroups serialise sourcemap split stm
+         stringsearch syb text these time transformers transformers-base
+         transformers-compat unordered-containers utf8-string vector
        ];
        libraryToolDepends = [ happy ];
        executableHaskellDepends = [
          aeson aeson-better-errors aeson-pretty ansi-terminal ansi-wl-pprint
          array base base-compat blaze-html bower-json boxes bytestring Cabal
          cborg cheapskate clock containers cryptonite data-ordlist deepseq
-         directory dlist edit-distance file-embed filepath fsnotify gitrev
-         Glob haskeline http-types language-javascript lifted-async
-         lifted-base memory microlens-platform monad-control monad-logger
-         mtl network optparse-applicative parallel parsec pattern-arrows
-         process protolude regex-tdfa safe scientific semialign semigroups
-         serialise sourcemap split stm stringsearch syb text these time
-         transformers transformers-base transformers-compat
+         directory edit-distance file-embed filepath fsnotify gitrev Glob
+         haskeline http-types language-javascript lifted-async lifted-base
+         memory microlens-platform monad-control monad-logger mtl network
+         optparse-applicative parallel parsec pattern-arrows process
+         protolude purescript-ast purescript-cst regex-tdfa safe semialign
+         semigroups serialise sourcemap split stm stringsearch syb text
+         these time transformers transformers-base transformers-compat
          unordered-containers utf8-string vector wai wai-websockets warp
          websockets
        ];
@@ -210073,14 +214201,15 @@ self: {
          aeson aeson-better-errors aeson-pretty ansi-terminal array base
          base-compat blaze-html bower-json boxes bytestring Cabal cborg
          cheapskate clock containers cryptonite data-ordlist deepseq
-         directory dlist edit-distance file-embed filepath fsnotify Glob
-         haskeline hspec hspec-discover HUnit language-javascript
-         lifted-async lifted-base memory microlens-platform monad-control
-         monad-logger mtl parallel parsec pattern-arrows process protolude
-         regex-tdfa safe scientific semialign semigroups serialise sourcemap
-         split stm stringsearch syb tasty tasty-golden tasty-hspec
-         tasty-quickcheck text these time transformers transformers-base
-         transformers-compat unordered-containers utf8-string vector
+         directory edit-distance file-embed filepath fsnotify Glob haskeline
+         hspec hspec-discover HUnit language-javascript lifted-async
+         lifted-base memory microlens-platform monad-control monad-logger
+         mtl parallel parsec pattern-arrows process protolude purescript-ast
+         purescript-cst regex-base regex-tdfa safe semialign semigroups
+         serialise sourcemap split stm stringsearch syb tasty tasty-golden
+         tasty-hspec tasty-quickcheck text these time transformers
+         transformers-base transformers-compat unordered-containers
+         utf8-string vector
        ];
        testToolDepends = [ happy hspec-discover ];
        doCheck = false;
@@ -210090,6 +214219,25 @@ self: {
        broken = true;
      }) {};
 
+  "purescript-ast" = callPackage
+    ({ mkDerivation, aeson, base, base-compat, bytestring, containers
+     , deepseq, filepath, microlens, mtl, protolude, scientific
+     , serialise, text, vector
+     }:
+     mkDerivation {
+       pname = "purescript-ast";
+       version = "0.1.0.0";
+       sha256 = "1zwwbdkc5mb3ckc2g15b18j9vp9bksyc1nrlg73w7w0fzqwnqb4g";
+       libraryHaskellDepends = [
+         aeson base base-compat bytestring containers deepseq filepath
+         microlens mtl protolude scientific serialise text vector
+       ];
+       description = "PureScript Programming Language Abstract Syntax Tree";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "purescript-bridge" = callPackage
     ({ mkDerivation, base, containers, directory, filepath
      , generic-deriving, hspec, hspec-expectations-pretty-diff, lens
@@ -210127,6 +214275,32 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "purescript-cst" = callPackage
+    ({ mkDerivation, array, base, base-compat, bytestring, containers
+     , dlist, filepath, happy, purescript-ast, scientific, semigroups
+     , tasty, tasty-golden, tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "purescript-cst";
+       version = "0.1.0.0";
+       sha256 = "1h4na5k0lz91i1f49axsgs7zqz6dqdxds5dg0g00wd4wmyd619cc";
+       libraryHaskellDepends = [
+         array base containers dlist purescript-ast scientific semigroups
+         text
+       ];
+       libraryToolDepends = [ happy ];
+       testHaskellDepends = [
+         array base base-compat bytestring containers dlist filepath
+         purescript-ast scientific semigroups tasty tasty-golden
+         tasty-quickcheck text
+       ];
+       testToolDepends = [ happy ];
+       description = "PureScript Programming Language Concrete Syntax Tree";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "purescript-iso" = callPackage
     ({ mkDerivation, aeson, aeson-attoparsec, aeson-diff, async
      , attoparsec, attoparsec-uri, base, bytestring, containers, deepseq
@@ -210369,8 +214543,8 @@ self: {
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "2.0.0.3";
-       sha256 = "0h53y0jxk1nyqwyr4f0nry0gl64s1w8ay15fips4drql37apbq1v";
+       version = "2.1.0.0";
+       sha256 = "1zmcpbd20m7pc1bc0dwkhy33vbakdwc478dmzpr4l80kck0mpmy6";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite hashable
          http-client http-client-tls http-types memory text time
@@ -210602,7 +214776,7 @@ self: {
          test-framework-hunit
        ];
        description = "Command line interface for the pwstore library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "pwstore-fast" = callPackage
@@ -210935,6 +215109,8 @@ self: {
        ];
        description = "Decrypt files encrypted by QNAP's Hybrid Backup Sync";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "qq-literals" = callPackage
@@ -211082,9 +215258,7 @@ self: {
        libraryHaskellDepends = [ base process qtah-generator ];
        librarySystemDepends = [ qtbase ];
        description = "Qt bindings for Haskell - C++ library";
-       license = lib.licenses.lgpl3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       license = lib.licenses.lgpl3Only;
      }) {inherit (pkgs.qt5) qtbase;};
 
   "qtah-examples" = callPackage
@@ -211101,9 +215275,7 @@ self: {
          base binary bytestring containers filepath hoppy-runtime qtah-qt5
        ];
        description = "Example programs for Qtah Qt bindings";
-       license = lib.licenses.lgpl3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "qtah-generator" = callPackage
@@ -211123,9 +215295,7 @@ self: {
        ];
        executableHaskellDepends = [ base ];
        description = "Generator for Qtah Qt bindings";
-       license = lib.licenses.lgpl3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "qtah-qt5" = callPackage
@@ -211146,9 +215316,7 @@ self: {
        libraryToolDepends = [ qtbase ];
        testHaskellDepends = [ base hoppy-runtime HUnit ];
        description = "Qt bindings for Haskell";
-       license = lib.licenses.lgpl3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       license = lib.licenses.lgpl3Only;
      }) {inherit (pkgs.qt5) qtbase;};
 
   "quack" = callPackage
@@ -211184,6 +215352,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "qualified-imports-plugin" = callPackage
+    ({ mkDerivation, base, containers, ghc, syb, text }:
+     mkDerivation {
+       pname = "qualified-imports-plugin";
+       version = "0.0.1";
+       sha256 = "075m9p02yz5zss64sli2c44id65z9m6f0vzwmpp21ra366s7l8rx";
+       libraryHaskellDepends = [ base containers ghc syb ];
+       testHaskellDepends = [ base text ];
+       description = "GHC plugin to automatically insert qualified imports";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "quandl-api" = callPackage
     ({ mkDerivation, aeson, base, blaze-builder, bytestring
      , http-conduit, http-types, syb, text, time, time-locale-compat
@@ -211228,10 +215408,8 @@ self: {
      }:
      mkDerivation {
        pname = "quantification";
-       version = "0.5.1";
-       sha256 = "1abr0rb3q13klrz6199gpl4d07s5y8j56i8gvpy8nqgyi7awznx9";
-       revision = "1";
-       editedCabalFile = "1q18l6wv57d0386p75ykkcpc18cdnzpbxdxbr5bdx02wj5v4vq8f";
+       version = "0.5.2";
+       sha256 = "0ngy44xlbxhq8gzvp9fs71pchzqgy2bpqqfm3wna666c1034srxf";
        libraryHaskellDepends = [
          aeson base binary containers ghc-prim hashable path-pieces text
          unordered-containers vector
@@ -211337,7 +215515,7 @@ self: {
        ];
        executableToolDepends = [ alex happy ];
        description = "Quite Useless DB";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -211361,7 +215539,7 @@ self: {
        ];
        executableHaskellDepends = [ base ];
        description = "Quenya verb conjugator";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -211645,7 +215823,7 @@ self: {
        libraryHaskellDepends = [ base ieee754 pretty-show QuickCheck ];
        testHaskellDepends = [ base hspec ieee754 QuickCheck ];
        description = "HUnit like assertions for QuickCheck";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "quickcheck-classes" = callPackage
@@ -211735,6 +215913,8 @@ self: {
        pname = "quickcheck-instances";
        version = "0.3.25.2";
        sha256 = "0ihqbarl2ddrfgq3mq09lswwn8213qpw13g49qxs5mjkcm6gbk3h";
+       revision = "1";
+       editedCabalFile = "0pmsq83jzf7gxr59h8j85121n6n0iqbl3smccl9v7n3gkp70kr2q";
        libraryHaskellDepends = [
          array base bytestring case-insensitive containers data-fix hashable
          integer-logarithms old-time QuickCheck scientific splitmix strict
@@ -212078,6 +216258,8 @@ self: {
        ];
        description = "Wrapper for the QuickJS Javascript Engine";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "quicklz" = callPackage
@@ -212094,7 +216276,7 @@ self: {
          test-framework-quickcheck2
        ];
        description = "QuickLZ compression for ByteStrings";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "quickpull" = callPackage
@@ -212168,6 +216350,8 @@ self: {
        ];
        description = "Equational laws for free!";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "quickterm" = callPackage
@@ -212185,7 +216369,7 @@ self: {
        ];
        executableHaskellDepends = [ base ];
        description = "An interface for describing and executing terminal applications";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "quicktest" = callPackage
@@ -212220,7 +216404,7 @@ self: {
          servant-server text warp
        ];
        description = "A quick webapp generator for any file processing tool";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -213180,17 +217364,16 @@ self: {
 
   "ral" = callPackage
     ({ mkDerivation, adjunctions, base, bin, criterion, deepseq
-     , distributive, fin, hashable, QuickCheck, semigroupoids, vector
+     , distributive, fin, hashable, indexed-traversable, QuickCheck
+     , semigroupoids, vector
      }:
      mkDerivation {
        pname = "ral";
-       version = "0.1";
-       sha256 = "0h8jqaapagrp9faixq817lib8l4nq4ycjj6ppl1ra8llnfsz5304";
-       revision = "2";
-       editedCabalFile = "0a3ryzcmjgyp64f8s2pl95pkz8zddq9qsn76dlimg23gczf1cql4";
+       version = "0.2";
+       sha256 = "0xwr2wr44zzl2bvkii2nq06djd6rrf891zxlb4daxzf3m93xvf3v";
        libraryHaskellDepends = [
-         adjunctions base bin deepseq distributive fin hashable QuickCheck
-         semigroupoids
+         adjunctions base bin deepseq distributive fin hashable
+         indexed-traversable QuickCheck semigroupoids
        ];
        benchmarkHaskellDepends = [ base criterion vector ];
        description = "Random access lists";
@@ -213201,10 +217384,8 @@ self: {
     ({ mkDerivation, base, bin, fin, lens, ral }:
      mkDerivation {
        pname = "ral-lens";
-       version = "0.1";
-       sha256 = "0hm8mzj51hdql8rp3v0yvmcvmgha4ys8zsgbbx93mlp2b4rfhzpv";
-       revision = "1";
-       editedCabalFile = "0j7lxlbj2klhcx12xixp3glhbvc9k1pccaiqm2kqr5l3lkrcnirv";
+       version = "0.2";
+       sha256 = "0nlw0q0b8bza98h74k0wa2vc9m5bk6g9slri1mzd6cr1pmpvna67";
        libraryHaskellDepends = [ base bin fin lens ral ];
        description = "Length-indexed random access lists: lens utilities";
        license = lib.licenses.gpl2Plus;
@@ -213214,10 +217395,8 @@ self: {
     ({ mkDerivation, base, bin, fin, optics-core, ral }:
      mkDerivation {
        pname = "ral-optics";
-       version = "0.1";
-       sha256 = "0sky2zbh6wn4xlfc6sbrx7lvvy01qv69j80k0n4w9fyrq9ammb3r";
-       revision = "1";
-       editedCabalFile = "0b2j3iqzbaly8niw3snsmn1z5a34kv4jw8sh3fscsja6zfx0ffgv";
+       version = "0.2";
+       sha256 = "1s7pxkf0vw1a5k1gwyfn6wsmiaa4csbghqshdbva8c73510q0fp1";
        libraryHaskellDepends = [ base bin fin optics-core ral ];
        description = "Length-indexed random access lists: optics utilities";
        license = lib.licenses.gpl2Plus;
@@ -213344,7 +217523,7 @@ self: {
          base containers microspec tf-random vector
        ];
        description = "Easy-to-use randomness for livecoding";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -213373,8 +217552,8 @@ self: {
        pname = "random";
        version = "1.2.0";
        sha256 = "1pmr7zbbqg58kihhhwj8figf5jdchhi7ik2apsyxbgsqq3vrqlg4";
-       revision = "4";
-       editedCabalFile = "08mq836ganl3sq6mfn3hrj6xm0h30klp21y7gbd9md2882agndrk";
+       revision = "5";
+       editedCabalFile = "1jai1pcs39ijdhxc8q36x1yayr8rsblhx3y88paf4bqxrks2vmrh";
        libraryHaskellDepends = [ base bytestring deepseq mtl splitmix ];
        testHaskellDepends = [
          base bytestring containers doctest mwc-random primitive smallcheck
@@ -213430,8 +217609,8 @@ self: {
      }:
      mkDerivation {
        pname = "random-bytestring";
-       version = "0.1.3.2";
-       sha256 = "16mjdb1sy7ppfbj5hshjpyrly6mklzvxip8vrqcvsfm869pkzayw";
+       version = "0.1.4";
+       sha256 = "0f4n41gqxxggadysvx3vg2iq89z7i7692ccrfmiajq73lbp6y34j";
        libraryHaskellDepends = [ base bytestring mwc-random pcg-random ];
        benchmarkHaskellDepends = [
          async base bytestring criterion cryptonite entropy ghc-prim
@@ -213687,7 +217866,7 @@ self: {
          transformers tree-fun
        ];
        description = "Create random trees";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "random-variates" = callPackage
@@ -213777,14 +217956,16 @@ self: {
        pname = "range-set-list";
        version = "0.1.3.1";
        sha256 = "0m8c8qhpk9vaykqfy6gsv1csmvdclm27zv9l56ipv152k75xks0j";
-       revision = "1";
-       editedCabalFile = "0ma1gxmk2in2fj4rxhwshy2zq690ylw1zz0c9cnyin8mxkp96inc";
+       revision = "2";
+       editedCabalFile = "08b5zlc2q3nyxxjzzigjbjygvd2001i2w3vslacib3kxm4569n8v";
        libraryHaskellDepends = [ base containers deepseq hashable ];
        testHaskellDepends = [
          base containers deepseq hashable tasty tasty-quickcheck
        ];
        description = "Memory efficient sets with ranges of elements";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "range-space" = callPackage
@@ -213809,6 +217990,19 @@ self: {
        broken = true;
      }) {};
 
+  "ranged-list" = callPackage
+    ({ mkDerivation, base, doctest, typecheck-plugin-nat-simple }:
+     mkDerivation {
+       pname = "ranged-list";
+       version = "0.1.0.0";
+       sha256 = "0v0a80g17r8dap28gm83wnk32m3snlmw1r51vvwfb74a4q3613w8";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base typecheck-plugin-nat-simple ];
+       testHaskellDepends = [ base doctest typecheck-plugin-nat-simple ];
+       description = "The list like structure whose length or range of length can be specified";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "rangemin" = callPackage
     ({ mkDerivation, base, containers, primitive, vector }:
      mkDerivation {
@@ -213848,7 +218042,7 @@ self: {
          base bytestring cassava containers lens optparse-generic vector
        ];
        description = "Find the rank product of a data set";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "rank1dynamic" = callPackage
@@ -213943,7 +218137,7 @@ self: {
          base eve hspec lens QuickCheck quickcheck-instances text yi-rope
        ];
        description = "A modular text editor";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -213964,7 +218158,7 @@ self: {
          rasa-ext-logger rasa-ext-slate rasa-ext-views rasa-ext-vim yi-rope
        ];
        description = "Example user config for Rasa";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -213996,7 +218190,7 @@ self: {
          base containers data-default lens rasa text
        ];
        description = "Rasa Ext for running commands";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -214013,7 +218207,7 @@ self: {
          base data-default lens mtl rasa text text-lens yi-rope
        ];
        description = "Rasa Ext adding cursor(s)";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -214031,7 +218225,7 @@ self: {
          yi-rope
        ];
        description = "Rasa Ext for filesystem actions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -214044,7 +218238,7 @@ self: {
        sha256 = "1wv3bkfq92h7b91x88mzqcijbpb2kh7zkgg4ljxdx59qi4lb7hry";
        libraryHaskellDepends = [ base lens mtl rasa ];
        description = "Rasa Ext for logging state/actions";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -214062,7 +218256,7 @@ self: {
          text vty yi-rope
        ];
        description = "Rasa extension for rendering to terminal with vty";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -214075,7 +218269,7 @@ self: {
        sha256 = "0grfj3qxlmk63x5cxrbibkhrrgij077f7sr0kj6vcl0np7a5dl98";
        libraryHaskellDepends = [ base data-default lens rasa yi-rope ];
        description = "Rasa Ext for populating status-bar";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -214088,7 +218282,7 @@ self: {
        sha256 = "198phwvsndsk149rj744znjzw8w2n0238pbv07d7rfs2c1987s04";
        libraryHaskellDepends = [ base data-default lens rasa ];
        description = "Rasa Ext managing rendering styles";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -214106,7 +218300,7 @@ self: {
          yi-rope
        ];
        description = "Rasa Ext managing rendering views";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -214126,7 +218320,7 @@ self: {
        ];
        testHaskellDepends = [ base hspec ];
        description = "Rasa Ext for vim bindings";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -214171,8 +218365,8 @@ self: {
        pname = "rasterific-svg";
        version = "0.3.3.2";
        sha256 = "1i0pl1hin1ipi3l0074ywd1khacpbvz3x0frx0j0hmbfiv4n3nq2";
-       revision = "1";
-       editedCabalFile = "19i9wlk951d85dqnmbgrnz0fg4xcw7cbv9cs2h8b440lycj3p4cv";
+       revision = "2";
+       editedCabalFile = "1938sp9m0yi7ypxk74bzrbkp9b4yk6hsaqhlhbraf9yb7w61228v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -214206,8 +218400,8 @@ self: {
      }:
      mkDerivation {
        pname = "ratel";
-       version = "1.0.13";
-       sha256 = "0ydg5xlf10g1wp18bwpr3mg9x29fyc1c5g22rn4szy0cs6hvqx6m";
+       version = "1.0.14";
+       sha256 = "0yjr8hj5c5i2l4p9zinwvzf33vhn6s9lipndqwx0km4ry0rylwwx";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers http-client
          http-client-tls http-types text uuid
@@ -214223,8 +218417,8 @@ self: {
      }:
      mkDerivation {
        pname = "ratel-wai";
-       version = "1.1.4";
-       sha256 = "1b2d5agip0zw10nmkr45gwhzpaga9nsdqv62xil11gadhaqji2f7";
+       version = "1.1.5";
+       sha256 = "0afrsnj1sjcr99sw7cpv2l4pn2is9y6qck4lq1vc33h8kk4hr25y";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers http-client ratel wai
        ];
@@ -214356,24 +218550,21 @@ self: {
      }) {};
 
   "rattletrap" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, binary, bytestring
-     , caerbannog, containers, filepath, http-client, http-client-tls
-     , HUnit, scientific, template-haskell, temporary, text
-     , transformers
+    ({ mkDerivation, aeson, aeson-pretty, array, base, bytestring
+     , containers, filepath, http-client, http-client-tls, HUnit, text
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "9.4.1";
-       sha256 = "1m8bqjqp413sm86v0i2083hnsq7h11hlmmqch1pxbgpv5678jq0q";
+       version = "11.0.1";
+       sha256 = "1s9n89i6mh3lw9mni5lgs8qnq5c1981hrz5bv0n9cffnnp45av6a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty base binary bytestring caerbannog containers
-         filepath http-client http-client-tls scientific template-haskell
-         text transformers
+         aeson aeson-pretty array base bytestring containers filepath
+         http-client http-client-tls text
        ];
        executableHaskellDepends = [ base ];
-       testHaskellDepends = [ base bytestring filepath HUnit temporary ];
+       testHaskellDepends = [ base bytestring filepath HUnit ];
        description = "Parse and generate Rocket League replays";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -214639,25 +218830,20 @@ self: {
      }) {};
 
   "rcu" = callPackage
-    ({ mkDerivation, atomic-primops, base, Cabal, cabal-doctest
-     , containers, criterion, deepseq, doctest, fail, ghc-prim
-     , optparse-applicative, parallel, primitive, rdtsc, time
-     , transformers
+    ({ mkDerivation, atomic-primops, base, containers, criterion
+     , deepseq, fail, ghc-prim, optparse-applicative, parallel
+     , primitive, rdtsc, time, transformers
      }:
      mkDerivation {
        pname = "rcu";
-       version = "0.2.4";
-       sha256 = "1zl6gl6b9x2ppxzrvb356216f7gi1kpwxsqb0w220f86wyzf9gbr";
-       revision = "2";
-       editedCabalFile = "1lblpsgprk26nplfzxkclvj6gsaim1b97njvrq564crryn6hn2wz";
+       version = "0.2.5";
+       sha256 = "1p2cg6xy5cjdizqialv9y8qylwdri5fhby2xh04fnhpjapsrbc7l";
        isLibrary = true;
        isExecutable = true;
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          atomic-primops base fail ghc-prim parallel primitive transformers
        ];
        executableHaskellDepends = [ base transformers ];
-       testHaskellDepends = [ base doctest parallel ];
        benchmarkHaskellDepends = [
          base containers criterion deepseq ghc-prim optparse-applicative
          primitive rdtsc time transformers
@@ -214684,6 +218870,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "rdf_0_1_0_5" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, criterion, deepseq
+     , dlist, fgl, text, transformers
+     }:
+     mkDerivation {
+       pname = "rdf";
+       version = "0.1.0.5";
+       sha256 = "1jrnmy9fdj3d3pnhycxl5smn6pjdm44b862wfp6hlb82vyl4556s";
+       libraryHaskellDepends = [
+         attoparsec base bytestring deepseq dlist fgl text transformers
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq text
+       ];
+       description = "Representation and Incremental Processing of RDF Data";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "rdf4h" = callPackage
     ({ mkDerivation, algebraic-graphs, attoparsec, base, binary
      , bytestring, containers, criterion, deepseq, directory, exceptions
@@ -214839,7 +219044,7 @@ self: {
          aeson aeson-pretty base bytestring scotty time transformers
        ];
        description = "react-tutorial web server";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -214951,7 +219156,7 @@ self: {
        ];
        testHaskellDepends = [ base doctest ];
        description = "home (etc) automation using reactive-banana";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -215004,7 +219209,7 @@ self: {
          SDL-ttf
        ];
        description = "Reactive Banana bindings for SDL";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -215191,7 +219396,7 @@ self: {
        ];
        description = "An alternate implementation of push-pull FRP";
        license = "GPL";
-       platforms = [ "armv7l-linux" ];
+       platforms = lib.platforms.none;
      }) {};
 
   "reactor" = callPackage
@@ -215306,6 +219511,8 @@ self: {
        ];
        description = "Extracts text of main article from HTML document";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "readable" = callPackage
@@ -215476,8 +219683,8 @@ self: {
      }:
      mkDerivation {
        pname = "reanimate";
-       version = "1.1.3.2";
-       sha256 = "006fj47pm7lqs4haq0i0nmz6syqx3v07qgnh4vjqlyqixk22cyy5";
+       version = "1.1.4.0";
+       sha256 = "0gz651ipn5w6w7adxkvkcgi6nb1d2vs72l8glz5jdll44mchdk55";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson ansi-terminal array attoparsec base base64-bytestring
@@ -215510,8 +219717,8 @@ self: {
      }:
      mkDerivation {
        pname = "reanimate-svg";
-       version = "0.13.0.0";
-       sha256 = "0fl3rb993zihwm9vyg615x4k17rrqimjfpc7k06mb5dlgkd39f7v";
+       version = "0.13.0.1";
+       sha256 = "1h31r0lrslxqfayh06955p1kv35g42g3drmqp4miydk6zibyn091";
        libraryHaskellDepends = [
          attoparsec base bytestring containers double-conversion hashable
          JuicyPixels lens linear mtl scientific text transformers vector xml
@@ -215595,22 +219802,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "rebase_1_10_0_1" = callPackage
+  "rebase_1_12_0_1" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, comonad, containers
-     , contravariant, contravariant-extras, deepseq, dlist, either
-     , hashable, hashable-time, mtl, profunctors, scientific, selective
-     , semigroupoids, stm, text, time, transformers
-     , unordered-containers, uuid, vector, vector-instances, void
+     , contravariant, deepseq, dlist, either, hashable, hashable-time
+     , mtl, profunctors, scientific, selective, semigroupoids, stm, text
+     , time, transformers, unordered-containers, uuid, vector
+     , vector-instances, void
      }:
      mkDerivation {
        pname = "rebase";
-       version = "1.10.0.1";
-       sha256 = "1b0fdihl5lg567ik7ysiiz9sxiknzj4vsxqhj3x9hcv7b1xh69d7";
+       version = "1.12.0.1";
+       sha256 = "1yl09702psialskvm39i9rl3sag853qr1237jhs79yk7nhvdlaqx";
        libraryHaskellDepends = [
-         base bifunctors bytestring comonad containers contravariant
-         contravariant-extras deepseq dlist either hashable hashable-time
-         mtl profunctors scientific selective semigroupoids stm text time
-         transformers unordered-containers uuid vector vector-instances void
+         base bifunctors bytestring comonad containers contravariant deepseq
+         dlist either hashable hashable-time mtl profunctors scientific
+         selective semigroupoids stm text time transformers
+         unordered-containers uuid vector vector-instances void
        ];
        description = "A more progressive alternative to the \"base\" package";
        license = lib.licenses.mit;
@@ -215695,8 +219902,8 @@ self: {
      }:
      mkDerivation {
        pname = "record-dot-preprocessor";
-       version = "0.2.7";
-       sha256 = "1ma1rc962z2qr7xwxh03bkbcmn9dsqizrjv699wbc82fzfzn5hrr";
+       version = "0.2.10";
+       sha256 = "1zwkc5mqcxlv4cm7qd75sdmvjckvpchcrqphsq82val41mp27nk5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base extra ghc uniplate ];
@@ -215870,6 +220077,28 @@ self: {
        broken = true;
      }) {};
 
+  "recover-rtti" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, ghc-heap
+     , ghc-prim, mtl, QuickCheck, sop-core, stm, tasty, tasty-quickcheck
+     , text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "recover-rtti";
+       version = "0.3.0.0";
+       sha256 = "0zk08jzsww8sv3q9h1mnc6a8ckqlf3lvc5cxwfbni7rb9giz6zia";
+       libraryHaskellDepends = [
+         aeson base bytestring containers ghc-heap mtl sop-core stm text
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers ghc-heap ghc-prim mtl QuickCheck
+         sop-core stm tasty tasty-quickcheck text unordered-containers
+         vector
+       ];
+       description = "Recover run-time type information from the GHC heap";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "recursion" = callPackage
     ({ mkDerivation, base, composition-prelude }:
      mkDerivation {
@@ -215887,8 +220116,8 @@ self: {
      }:
      mkDerivation {
        pname = "recursion-schemes";
-       version = "5.2.1";
-       sha256 = "0yx7pj25p6h8qjsgxbjsxaz23ar21wyxr8wqpmsn61pk8mahwggl";
+       version = "5.2.2.1";
+       sha256 = "1nq23ybrbkcgd9rsva4bsvzxl78987qfy0qmxxlvlq2mvs2jkqxy";
        libraryHaskellDepends = [
          base base-orphans comonad containers data-fix free template-haskell
          th-abstraction transformers
@@ -215896,6 +220125,8 @@ self: {
        testHaskellDepends = [ base HUnit template-haskell transformers ];
        description = "Representing common recursion patterns as higher-order functions";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "recursion-schemes-ext" = callPackage
@@ -215915,6 +220146,8 @@ self: {
        ];
        description = "Amateur addenda to recursion-schemes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "recursion-schemes-ix" = callPackage
@@ -216291,7 +220524,7 @@ self: {
        version = "0.1.0.0";
        sha256 = "0lraykl190x0cj65z495c11vi4pcg3g8gz1bdgdndf6662lp56x9";
        libraryHaskellDepends = [ base crypto-api ];
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "ref" = callPackage
@@ -217325,7 +221558,7 @@ self: {
        sha256 = "1cvffbx2vhv18k4p95p0ddcxzyn8f10hg2bxa2da60fy9zkjg3am";
        libraryHaskellDepends = [ base parsec ];
        description = "The parser and render to parsec and render the string";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -217526,10 +221759,8 @@ self: {
     ({ mkDerivation, array, base, bytestring, containers, mtl, text }:
      mkDerivation {
        pname = "regex-base";
-       version = "0.94.0.0";
-       sha256 = "055rlq67xnbqv43fgrlw6d7s8nhyavahrp6blihwjmqizksq47y4";
-       revision = "1";
-       editedCabalFile = "13lnky4ps9as73jqrwz4aqn5sfyrcz2zj2ng52xzz512fv59baj4";
+       version = "0.94.0.1";
+       sha256 = "1ngdmmrxs1rhvib052c6shfa40yad82jylylikz327r0zxpxkcbi";
        libraryHaskellDepends = [
          array base bytestring containers mtl text
        ];
@@ -217541,12 +221772,10 @@ self: {
     ({ mkDerivation, array, base, regex-base, regex-posix }:
      mkDerivation {
        pname = "regex-compat";
-       version = "0.95.2.0";
-       sha256 = "01l44zrfpqb4k1rrzd1j18hn6922xhrl9h7s0hjfs363dx3hxj8z";
-       revision = "1";
-       editedCabalFile = "1d2k9zj51rhy695vlx6cfcmik6a0yyk5kl6aza7nqsqc6zwhidif";
+       version = "0.95.2.1";
+       sha256 = "0ivrdrcphrz3g6nr5wbsmfiv8i82caw0kf6z5qlmlq7xf9n3hywg";
        libraryHaskellDepends = [ array base regex-base regex-posix ];
-       description = "Replaces/Enhances \"Text.Regex\"";
+       description = "Replaces/enhances \"Text.Regex\"";
        license = lib.licenses.bsd3;
      }) {};
 
@@ -217727,8 +221956,8 @@ self: {
        pname = "regex-pcre";
        version = "0.95.0.0";
        sha256 = "0nn76q4bsjnxim0j0d01jifmh36as9jdpcvm001a851vvq86zb8n";
-       revision = "1";
-       editedCabalFile = "1s5jdwvymc9hxdfa23x5amnv2kkcsm2p119f38df2vjdxfvjfiq4";
+       revision = "2";
+       editedCabalFile = "0bvpy3rswyawv23s14nbxvgz5761s61g0shcj7p032i95iq7dj6d";
        libraryHaskellDepends = [
          array base bytestring containers regex-base
        ];
@@ -217743,8 +221972,8 @@ self: {
      }:
      mkDerivation {
        pname = "regex-pcre-builtin";
-       version = "0.95.1.3.8.43";
-       sha256 = "0n1sbsjch0n5cgv2lhw2yfaxb611mckyg0jpz2kcbyj5hcrvzv3c";
+       version = "0.95.2.3.8.43";
+       sha256 = "02c6vzxcy1zkqwy6w4dsc97xvvdwlh8xr7imrlx2qs2521rvswr7";
        libraryHaskellDepends = [
          array base bytestring containers regex-base text
        ];
@@ -217794,8 +222023,8 @@ self: {
        pname = "regex-posix";
        version = "0.96.0.0";
        sha256 = "08a584jabmmn5gmaqrcar5wsp3qzk0hklldzp2mr2bmvlvqh04r5";
-       revision = "1";
-       editedCabalFile = "1cy39n1928wv55i7k4wm7zd3xijk7p54kbrxxlfzfvgax5k163b9";
+       revision = "2";
+       editedCabalFile = "10al5qljh6pc46581nkhrs0rjn8w05pp6jb4v55lgfr17ac0z1xx";
        libraryHaskellDepends = [
          array base bytestring containers regex-base
        ];
@@ -217811,7 +222040,7 @@ self: {
        sha256 = "1y4vmiq1xksxxd84yvyark6axsz51ywb6slswbddlxbdpcpfday7";
        doHaddock = false;
        description = "\"Regex for Windows\" C library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {};
 
   "regex-posix-unittest" = callPackage
@@ -217842,8 +222071,8 @@ self: {
        pname = "regex-tdfa";
        version = "1.3.1.0";
        sha256 = "1h1fliv2zjxwmddl9wnn7ckxxpgy1049hdfg6fcknyrr7mw7dhqm";
-       revision = "1";
-       editedCabalFile = "1fhi4g2p29qnnfyb211n62g97qrw3gz1kahca7rlz43all93ihdy";
+       revision = "2";
+       editedCabalFile = "1hvcqdywwlcpia7qss7ikr9bq0lvkk8z0mjgaylaqpzlgh00z3gb";
        libraryHaskellDepends = [
          array base bytestring containers mtl parsec regex-base text
        ];
@@ -218251,6 +222480,37 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "data structure for assembling components";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "registry_0_2_0_2" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, directory
+     , exceptions, generic-lens, hashable, hedgehog, io-memoize, mmorph
+     , MonadRandom, mtl, multimap, protolude, random, resourcet
+     , semigroupoids, semigroups, tasty, tasty-discover, tasty-hedgehog
+     , tasty-th, template-haskell, text, transformers-base, universum
+     }:
+     mkDerivation {
+       pname = "registry";
+       version = "0.2.0.2";
+       sha256 = "1lq8r382xm1m5b7i0jfjaj3f1jr98rdvjpn0h77i4i0i1wy529c1";
+       libraryHaskellDepends = [
+         base containers exceptions hashable mmorph mtl protolude resourcet
+         semigroupoids semigroups template-haskell text transformers-base
+       ];
+       testHaskellDepends = [
+         async base bytestring containers directory exceptions generic-lens
+         hashable hedgehog io-memoize mmorph MonadRandom mtl multimap
+         protolude random resourcet semigroupoids semigroups tasty
+         tasty-discover tasty-hedgehog tasty-th template-haskell text
+         transformers-base universum
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "data structure for assembling components";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "registry-hedgehog" = callPackage
@@ -218261,8 +222521,8 @@ self: {
      }:
      mkDerivation {
        pname = "registry-hedgehog";
-       version = "0.3.0.0";
-       sha256 = "0ardmwsaxlk9g062bf2xiigbjbnqbf7iz9s8xwjzj8nh8rrs252z";
+       version = "0.4.0.0";
+       sha256 = "0mq5x9a8z70ibq78wx1p1za2f4r1mgrpdy78p5yvxvlzcazwqnp6";
        libraryHaskellDepends = [
          base containers hedgehog mmorph multimap protolude registry tasty
          tasty-discover tasty-hedgehog tasty-th template-haskell text
@@ -218492,6 +222752,8 @@ self: {
        ];
        description = "Sensible RLP encoding";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "relation" = callPackage
@@ -218502,6 +222764,8 @@ self: {
        pname = "relation";
        version = "0.5.2.0";
        sha256 = "1sinb0rw2jq1xjy80rsxnjf5va33n2i67km55hxfls9w15wsg2yw";
+       revision = "1";
+       editedCabalFile = "18nh56qp1cjpg28sagwiy4h44v5dvm5rhm3wqyyz4mw3k78x71kh";
        libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [
          base containers doctest doctest-discover hedgehog hspec
@@ -218793,6 +223057,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "relude_1_0_0_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion, deepseq
+     , doctest, ghc-prim, Glob, hashable, hedgehog, mtl, stm, text
+     , transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "relude";
+       version = "1.0.0.1";
+       sha256 = "0cw9a1gfvias4hr36ywdizhysnzbzxy20fb3jwmqmgjy40lzxp2g";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq ghc-prim hashable mtl stm text
+         transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base bytestring containers doctest Glob hedgehog text
+       ];
+       benchmarkHaskellDepends = [ base criterion unordered-containers ];
+       description = "Safe, performant, user-friendly and lightweight Haskell Standard Library";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "remark" = callPackage
     ({ mkDerivation, base, GenericPretty, tasty, tasty-golden
      , tasty-hunit
@@ -219816,7 +224102,7 @@ self: {
        sha256 = "1s0s3p0dy07222ks83w3spfw9df33q5lggqv3dw4m9hd5x16a6zi";
        libraryHaskellDepends = [ base ];
        description = "Abstraction to manage user defined Type Errors";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "rere" = callPackage
@@ -219826,10 +224112,8 @@ self: {
      }:
      mkDerivation {
        pname = "rere";
-       version = "0.1";
-       sha256 = "0hskndalxqmlwscvacqmp7gbp8m75a8hnvbifw0hw7hhszlf0yac";
-       revision = "1";
-       editedCabalFile = "0k2fcc94dlcf33by0zcqk01i9k2g8x4j8rnlpfmabld9dvf5cjwg";
+       version = "0.2";
+       sha256 = "0s89flhcmwppypxz909ifmzq7vlwy35yjrbw0gkgm4ikbw6l1ylr";
        libraryHaskellDepends = [
          base containers fin parsec QuickCheck transformers vec
        ];
@@ -219843,6 +224127,8 @@ self: {
        ];
        description = "Regular-expressions extended with fixpoints for context-free powers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "rerebase" = callPackage
@@ -219856,12 +224142,12 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "rerebase_1_10_0_1" = callPackage
+  "rerebase_1_12_0_1" = callPackage
     ({ mkDerivation, rebase }:
      mkDerivation {
        pname = "rerebase";
-       version = "1.10.0.1";
-       sha256 = "0kqcd80a4z1hynmdwb78dzif0iim6gwk9pdzkgzspf8kxir5adf3";
+       version = "1.12.0.1";
+       sha256 = "0kh0022hfviywa4rkwnrqygc7s3vg8qvr9znh66v5c1i3gaibzq5";
        libraryHaskellDepends = [ rebase ];
        description = "Reexports from \"base\" with a bunch of other standard libraries";
        license = lib.licenses.mit;
@@ -219902,8 +224188,8 @@ self: {
      }:
      mkDerivation {
        pname = "rescue";
-       version = "0.3.0";
-       sha256 = "0lfvd5x845m2by8n67lgcybp22ppf7yxgglcqzwwfmmpa9qnchq2";
+       version = "0.4.2.1";
+       sha256 = "096wlxiz8bjvjpnp68qzmkplddm3nh5417b3amn9x6kj7wvbf1ky";
        libraryHaskellDepends = [
          base exceptions ghc mtl text transformers transformers-base
          world-peace
@@ -220006,7 +224292,7 @@ self: {
          base bytestring directory filepath tasty tasty-hunit
        ];
        description = "Domain Name Service (DNS) lookup via the libresolv standard library routines";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -220018,8 +224304,8 @@ self: {
        pname = "resolv";
        version = "0.1.2.0";
        sha256 = "0wa6wsh6i52q4ah2z0hgzlks325kigch4yniz0y15nw4skxbm8l1";
-       revision = "1";
-       editedCabalFile = "19pm4cg28viyl7r0viz4wfmm9w4nqxkjlb6kknfqcajjqmdacqad";
+       revision = "2";
+       editedCabalFile = "0nn5dalsl9sradkpv4awsb90v8cvcqvw4hd58yvpp4vpfybnk90h";
        libraryHaskellDepends = [
          base base16-bytestring binary bytestring containers
        ];
@@ -220064,7 +224350,7 @@ self: {
          optparse-applicative process unix
        ];
        description = "Remove trivial conflict markers in a git repository";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -220480,7 +224766,7 @@ self: {
          base bytestring containers tasty tasty-hunit temporary text
        ];
        description = "Easy Git repository serialization";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "restricted-workers" = callPackage
@@ -220775,7 +225061,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ array base process ];
        description = "Text-only reversi (aka othelo) game";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -221117,8 +225403,8 @@ self: {
      }:
      mkDerivation {
        pname = "rhbzquery";
-       version = "0.4.2";
-       sha256 = "1j9nxizi1wsgz5gamdn9izy4aq6ci41gbkvsw7bbpc8fnvv5gpd2";
+       version = "0.4.3";
+       sha256 = "13brargymd1c9b0csaprj85qdqg98bzj3z2smbb0v66myj48v6fp";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -221127,7 +225413,9 @@ self: {
        ];
        testHaskellDepends = [ base simple-cmd ];
        description = "Bugzilla query tool";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "rhine" = callPackage
@@ -221145,6 +225433,7 @@ self: {
        ];
        description = "Functional Reactive Programming with type-level clocks";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ turion ];
      }) {};
 
   "rhine-gloss" = callPackage
@@ -221159,6 +225448,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Gloss backend for Rhine";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ turion ];
      }) {};
 
   "rhythm-game-tutorial" = callPackage
@@ -221427,8 +225717,8 @@ self: {
      }:
      mkDerivation {
        pname = "ridley";
-       version = "0.3.1.4";
-       sha256 = "120yqfrkp4ziz8yn6xgzzhdszrvq1dk1szzh3q2m8w36c0g2qdhy";
+       version = "0.3.2.1";
+       sha256 = "14k7cmbcwqxf4d7r6yz77wpj88q3v9vx90agx16wd8dk1zzmcbx5";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          async base containers ekg-core ekg-prometheus-adapter inline-c
@@ -221453,8 +225743,8 @@ self: {
      }:
      mkDerivation {
        pname = "ridley-extras";
-       version = "0.1.0.2";
-       sha256 = "0ckc9amxp6picp1xmpxgplnxsn39p5h6j0y8h3mj5ik3720qn6c8";
+       version = "0.1.1.0";
+       sha256 = "1syqjc1002cxdk8bsa3k2c232dkmhlw9r4bi5h68a0ddvi86x0ha";
        libraryHaskellDepends = [
          base ekg-prometheus-adapter microlens mtl prometheus ridley shelly
          text transformers
@@ -221645,6 +225935,41 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "rio-process-pool" = callPackage
+    ({ mkDerivation, async, atomic-primops, base, containers, criterion
+     , data-default, hashable, HUnit, mtl, QuickCheck, rio, tasty
+     , tasty-html, tasty-hunit, tasty-quickcheck, text, unliftio
+     , unliftio-messagebox
+     }:
+     mkDerivation {
+       pname = "rio-process-pool";
+       version = "1.0.0";
+       sha256 = "09v95wyrsa6yg5q5zaf9gqmn2xhh1i1q2mmxq52xhpc8pqwj93b9";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base containers data-default hashable mtl QuickCheck rio text
+         unliftio unliftio-messagebox
+       ];
+       executableHaskellDepends = [
+         async base containers data-default hashable mtl QuickCheck rio text
+         unliftio unliftio-messagebox
+       ];
+       testHaskellDepends = [
+         async atomic-primops base containers data-default hashable HUnit
+         mtl QuickCheck rio tasty tasty-html tasty-hunit tasty-quickcheck
+         text unliftio unliftio-messagebox
+       ];
+       benchmarkHaskellDepends = [
+         async base containers criterion data-default hashable mtl
+         QuickCheck rio text unliftio unliftio-messagebox
+       ];
+       description = "A library for process pools coupled with asynchronous message queues";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "riot" = callPackage
     ({ mkDerivation, base, containers, directory, haskell98, mtl
      , ncurses, old-locale, packedstring, process, unix
@@ -221951,7 +226276,7 @@ self: {
        ];
        executableHaskellDepends = [ ansi-terminal base options time ];
        description = "Ring-LWE/LWR challenges using Lol";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -222060,7 +226385,7 @@ self: {
          monad-control mtl process resourcet text time unix
        ];
        description = "A build daemon for Haskell development";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -222183,8 +226508,8 @@ self: {
      }:
      mkDerivation {
        pname = "rock";
-       version = "0.3.0.0";
-       sha256 = "1hssz23kifpmcv0vjnrymr4cj1f3m8z7kvvkyzsfh3ysc493514i";
+       version = "0.3.1.0";
+       sha256 = "0rv689w41dbspn40nblkjg81csp5jvk069c92c6dkvfx1biblhwn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -222244,6 +226569,8 @@ self: {
        ];
        description = "Haskell bindings for RocksDB";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) rocksdb;};
 
   "rocksdb-query" = callPackage
@@ -222518,7 +226845,7 @@ self: {
          base optparse-applicative random regex-applicative
        ];
        description = "Playing with applicatives and dice!";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -222698,7 +227025,7 @@ self: {
          wreq
        ];
        description = "Query the namecoin blockchain";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "rose" = callPackage
@@ -222757,7 +227084,7 @@ self: {
          base containers deepseq minilens mtl transformers
        ];
        description = "Trees with polymorphic paths to nodes, combining properties of Rose Trees and Tries";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -223518,7 +227845,9 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings to librtlsdr";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) rtl-sdr;};
 
   "rtnetlink" = callPackage
@@ -223580,7 +227909,7 @@ self: {
          QuickCheck temporary utf8-string
        ];
        description = "Parsing and manipulation of rtorrent state file contents";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "rts-loader" = callPackage
@@ -223599,7 +227928,7 @@ self: {
        ];
        executableHaskellDepends = [ base Cabal process ];
        description = "Dynamically load Haskell libraries";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -223618,8 +227947,10 @@ self: {
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [ base ];
        description = "Binding to the C++ audio stretching library Rubber Band";
-       license = lib.licenses.gpl3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       license = lib.licenses.gpl3Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) rubberband;};
 
   "ruby-marshal" = callPackage
@@ -223786,7 +228117,7 @@ self: {
          base cmdargs directory filepath old-time process
        ];
        description = "runghc replacement for fast repeated runs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "runhs" = callPackage
@@ -224055,6 +228386,17 @@ self: {
        broken = true;
      }) {};
 
+  "safe-coloured-text" = callPackage
+    ({ mkDerivation, base, bytestring, terminfo, text }:
+     mkDerivation {
+       pname = "safe-coloured-text";
+       version = "0.0.0.0";
+       sha256 = "0c07527g35gpxif8ia07x766pmzcf4m1cgjz9lkac973n12iwllx";
+       libraryHaskellDepends = [ base bytestring terminfo text ];
+       description = "Safely output coloured text";
+       license = lib.licenses.mit;
+     }) {};
+
   "safe-decimal" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, deepseq, doctest
      , exceptions, hspec, hspec-discover, QuickCheck, scientific
@@ -224376,8 +228718,8 @@ self: {
      }:
      mkDerivation {
        pname = "safe-tensor";
-       version = "0.2.1.0";
-       sha256 = "00s8p7bp72wjpz4mbxn79xg6cllyl2c6fn952w2nykyrapzpxhxm";
+       version = "0.2.1.1";
+       sha256 = "1ms8mrlvvivk474qpa9sqprpr7b8p3l5iq1z58yd81djdkrpqar3";
        libraryHaskellDepends = [
          base constraints containers deepseq hmatrix mtl singletons
        ];
@@ -224393,8 +228735,8 @@ self: {
      }:
      mkDerivation {
        pname = "safecopy";
-       version = "0.10.3.1";
-       sha256 = "0y2jpykad7inzndw4azb2wdp4zp3smjax95sdcxycw5x88rxdra1";
+       version = "0.10.4.1";
+       sha256 = "1p8kbf9js67zl2wr6y0605acy54xlpsih1zqkdy21cywz1kannbp";
        libraryHaskellDepends = [
          array base bytestring cereal containers generic-data old-time
          template-haskell text time transformers vector
@@ -224667,8 +229009,8 @@ self: {
        pname = "salak";
        version = "0.3.6";
        sha256 = "00qyd09az0ldfidfgcki8z3r9gcpxmss3iyr99as5bky29rlz9n3";
-       revision = "3";
-       editedCabalFile = "0cdp6gy3r92vhpmq2i7yg4xxmnj95dyfvaf8gm05v6wl8l6rihfy";
+       revision = "4";
+       editedCabalFile = "07q9a24ry6h6r3m1av0dxz39dzmyjhlcrw1ww5jprqcf3xxjxhdz";
        libraryHaskellDepends = [
          base bytestring containers data-default directory dlist exceptions
          filepath hashable heaps megaparsec mtl scientific text time
@@ -225364,7 +229706,7 @@ self: {
        ];
        testHaskellDepends = [ base basic-prelude tasty tasty-hunit ];
        description = "SwiftNav's SBP Library";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "sbp2udp" = callPackage
@@ -225389,30 +229731,30 @@ self: {
 
   "sbv" = callPackage
     ({ mkDerivation, array, async, base, bench-show, bytestring
-     , containers, crackNum, deepseq, directory, doctest, filepath
-     , gauge, Glob, hlint, mtl, pretty, process, QuickCheck, random
-     , silently, syb, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
-     , template-haskell, time, transformers, uniplate, z3
+     , containers, deepseq, directory, doctest, filepath, gauge, Glob
+     , hlint, libBF, mtl, pretty, process, QuickCheck, random, silently
+     , syb, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
+     , template-haskell, text, time, transformers, uniplate, z3
      }:
      mkDerivation {
        pname = "sbv";
-       version = "8.9";
-       sha256 = "1h8bhi1pjlg0v16wwqcvil7gq98b6dn8ckzmrsgb8sc3qz0nxj51";
+       version = "8.14";
+       sha256 = "1yf350daksxwz084j81ngamr53jpz7y2fi4cnpni6vy16mb0sxz1";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array async base containers crackNum deepseq directory filepath mtl
-         pretty process QuickCheck random syb template-haskell time
+         array async base containers deepseq directory filepath libBF mtl
+         pretty process QuickCheck random syb template-haskell text time
          transformers uniplate
        ];
        testHaskellDepends = [
-         base bytestring containers crackNum directory doctest filepath Glob
-         hlint mtl QuickCheck random tasty tasty-golden tasty-hunit
+         base bytestring containers directory doctest filepath Glob hlint
+         mtl QuickCheck random tasty tasty-golden tasty-hunit
          tasty-quickcheck
        ];
        testSystemDepends = [ z3 ];
        benchmarkHaskellDepends = [
-         base bench-show containers crackNum deepseq directory filepath
-         gauge mtl process random silently syb time
+         base bench-show containers deepseq directory filepath gauge mtl
+         process random silently syb text time
        ];
        description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
        license = lib.licenses.bsd3;
@@ -225425,8 +229767,8 @@ self: {
      }:
      mkDerivation {
        pname = "sbvPlugin";
-       version = "0.12";
-       sha256 = "1c413kqbznl1cc3l4lbpk3d8c2jzl62znf7zm89x5dcw7wyfpz0y";
+       version = "9.0.1";
+       sha256 = "1hg1sxnspyxjpj98c2h7hzf93m9acw8cjiva4wsnxl1gspln4gwb";
        libraryHaskellDepends = [
          base containers ghc ghc-prim mtl sbv template-haskell
        ];
@@ -225669,7 +230011,7 @@ self: {
          base hspec scalpel scalpel-core tagsoup text uri
        ];
        description = "scalpel scrapers for search engines";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -225795,8 +230137,8 @@ self: {
      }:
      mkDerivation {
        pname = "scc";
-       version = "0.8.2.4";
-       sha256 = "1f0sayjihh6h7vb4r13j7ly5p0c10biidfmbs9nyybd70ai6dy1f";
+       version = "0.8.3.1";
+       sha256 = "1l89lq20khi3fysbvfxjzchbdw9civz1kj85fyjf8wcm3s3cq34l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -225911,7 +230253,7 @@ self: {
          options text text-icu transformers wai warp
        ];
        description = "Find the ideal lesson layout";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -225960,7 +230302,7 @@ self: {
          base groom hspec msgpack-binary QuickCheck
        ];
        description = "Encoding-independent schemas for Haskell data types";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -226259,8 +230601,8 @@ self: {
      }:
      mkDerivation {
        pname = "scientific-notation";
-       version = "0.1.2.0";
-       sha256 = "19yfg032ppiy70y28fbildxp4h6y4krs9ayh7a8sdbxibpqb82cx";
+       version = "0.1.3.0";
+       sha256 = "1sdqyf3538n2yz29p2b4jvafa9vlgmr3aqn2x4hifmjx0176xm03";
        libraryHaskellDepends = [
          base bytebuild bytesmith natural-arithmetic
        ];
@@ -226540,7 +230882,7 @@ self: {
          base ditto ditto-lucid lucid scotty text
        ];
        description = "Html form validation using `ditto`";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -226849,7 +231191,7 @@ self: {
          test-framework-quickcheck2 text validation
        ];
        description = "Scrape websites for changes";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -226923,7 +231265,19 @@ self: {
          vector
        ];
        description = "scroll(6), a roguelike game";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
+     }) {};
+
+  "scroll-list" = callPackage
+    ({ mkDerivation, base, hspec }:
+     mkDerivation {
+       pname = "scroll-list";
+       version = "1.0.0.1";
+       sha256 = "1qz4b04jkfkz9w6bz4g4zad5hj2nkl63y0klq0z5lgllf2f6ryw3";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
+       description = "This package provides functions for relocate an item within a list";
+       license = lib.licenses.bsd3;
      }) {};
 
   "scrypt" = callPackage
@@ -227146,7 +231500,7 @@ self: {
          base Cabal hspec hspec-core lrucache QuickCheck stm
        ];
        description = "image compositing with sdl2 - declarative style";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -227230,7 +231584,9 @@ self: {
        libraryPkgconfigDepends = [ SDL2_mixer ];
        description = "Bindings to SDL2_mixer";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) SDL2_mixer;};
 
   "sdl2-sprite" = callPackage
@@ -227255,21 +231611,24 @@ self: {
 
   "sdl2-ttf" = callPackage
     ({ mkDerivation, base, bytestring, SDL2, sdl2, SDL2_ttf
-     , template-haskell, text, transformers
+     , template-haskell, text, th-abstraction, transformers
      }:
      mkDerivation {
        pname = "sdl2-ttf";
-       version = "2.1.1";
-       sha256 = "1iyqm1i5k8j4948gvr59rgalqwsdkishs52kp85ncvb6cpylw3qn";
+       version = "2.1.2";
+       sha256 = "0jg3dg4g876shbcxlgcjwfd0g76ih3xh8f1hc79qxg6j48khxbpd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring sdl2 template-haskell text transformers
+         base bytestring sdl2 template-haskell text th-abstraction
+         transformers
        ];
        libraryPkgconfigDepends = [ SDL2 SDL2_ttf ];
        description = "Bindings to SDL2_ttf";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) SDL2; inherit (pkgs) SDL2_ttf;};
 
   "sdnv" = callPackage
@@ -227283,6 +231642,149 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "sdp" = callPackage
+    ({ mkDerivation, base, data-default-class, ghc-prim }:
+     mkDerivation {
+       pname = "sdp";
+       version = "0.2";
+       sha256 = "1q9l87rvvx7bqbqx1675r2mvj3b2jf0ywa55xcv2ybsl621z52y0";
+       libraryHaskellDepends = [ base data-default-class ghc-prim ];
+       description = "Simple Data Processing";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sdp-binary" = callPackage
+    ({ mkDerivation, base, binary, sdp }:
+     mkDerivation {
+       pname = "sdp-binary";
+       version = "0.2";
+       sha256 = "09wripyza10b7cy1w00j2vna1hmld1ijrd081faz88brkahzhdgq";
+       libraryHaskellDepends = [ base binary sdp ];
+       description = "Binary instances for SDP";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sdp-deepseq" = callPackage
+    ({ mkDerivation, base, deepseq, sdp }:
+     mkDerivation {
+       pname = "sdp-deepseq";
+       version = "0.2";
+       sha256 = "127vzi2a65j5czipgybdhfxfzfzx3r0hrrag1nha40vdgsd3j7w4";
+       libraryHaskellDepends = [ base deepseq sdp ];
+       description = "DeepSeq SDP extension";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sdp-hashable" = callPackage
+    ({ mkDerivation, base, hashable, sdp }:
+     mkDerivation {
+       pname = "sdp-hashable";
+       version = "0.2";
+       sha256 = "0cl9a10ww93n64sq4mnc3m56y4add04s06gi8n9rmad93v3xfk3j";
+       libraryHaskellDepends = [ base hashable sdp ];
+       description = "Hashable instances for SDP";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sdp-io" = callPackage
+    ({ mkDerivation, base, fmr, sdp }:
+     mkDerivation {
+       pname = "sdp-io";
+       version = "0.2";
+       sha256 = "06rrfsxzfi3vbjsm1d4cm2f4x7035y0zhp869f3bjasf2r4mzsp4";
+       libraryHaskellDepends = [ base fmr sdp ];
+       description = "SDP IO extension";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sdp-quickcheck" = callPackage
+    ({ mkDerivation, base, criterion, ghc-prim, QuickCheck, sdp
+     , sdp-deepseq, test-framework, test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "sdp-quickcheck";
+       version = "0.2";
+       sha256 = "1gmsn5vw8a0qgqkaya7689spmbgcrqqg9zxbkdf4xq38q94zvwvh";
+       libraryHaskellDepends = [ base QuickCheck sdp ];
+       testHaskellDepends = [
+         base QuickCheck sdp test-framework test-framework-quickcheck2
+       ];
+       benchmarkHaskellDepends = [
+         base criterion ghc-prim QuickCheck sdp sdp-deepseq
+       ];
+       description = "SDP QuickCheck support";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sdp4bytestring" = callPackage
+    ({ mkDerivation, base, bytestring, QuickCheck, quickcheck-instances
+     , sdp, sdp-io, sdp-quickcheck, test-framework
+     , test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "sdp4bytestring";
+       version = "0.2";
+       sha256 = "119r7rhrsbv3c5dlwq5lf6lpjdybr5vl9lnvffcl6dvh8bym4g86";
+       revision = "1";
+       editedCabalFile = "1kwi2y9l7mnq5m9kr8731fjy50mz32qp1i966m9wg5bd9kximaga";
+       libraryHaskellDepends = [ base bytestring sdp sdp-io ];
+       testHaskellDepends = [
+         base bytestring QuickCheck quickcheck-instances sdp sdp-io
+         sdp-quickcheck test-framework test-framework-quickcheck2
+       ];
+       description = "SDP wrapper for ByteString";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sdp4text" = callPackage
+    ({ mkDerivation, base, QuickCheck, quickcheck-instances, sdp
+     , sdp-io, sdp-quickcheck, test-framework
+     , test-framework-quickcheck2, text
+     }:
+     mkDerivation {
+       pname = "sdp4text";
+       version = "0.2";
+       sha256 = "12gq2rjddl2q4y045jixcar6v6s73qmqy4j30d22nvdyyqdjrxc8";
+       libraryHaskellDepends = [ base sdp sdp-io text ];
+       testHaskellDepends = [
+         base QuickCheck quickcheck-instances sdp sdp-io sdp-quickcheck
+         test-framework test-framework-quickcheck2 text
+       ];
+       description = "SDP wrapper for Text";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sdp4unordered" = callPackage
+    ({ mkDerivation, base, sdp, sdp-hashable, unordered-containers }:
+     mkDerivation {
+       pname = "sdp4unordered";
+       version = "0.2";
+       sha256 = "0y24ia2p2wsrdk05nikip369fzjh6b3jk59nss4xn4823p15vwsv";
+       libraryHaskellDepends = [
+         base sdp sdp-hashable unordered-containers
+       ];
+       description = "SDP classes for unordered containers";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sdp4vector" = callPackage
+    ({ mkDerivation, base, QuickCheck, quickcheck-instances, sdp
+     , sdp-quickcheck, test-framework, test-framework-quickcheck2
+     , vector
+     }:
+     mkDerivation {
+       pname = "sdp4vector";
+       version = "0.2";
+       sha256 = "1d18zgwawn598sax2m6cvb5w1k1vpc8n6bfdrvn0wrm8i6fvn0bq";
+       libraryHaskellDepends = [ base sdp vector ];
+       testHaskellDepends = [
+         base QuickCheck quickcheck-instances sdp sdp-quickcheck
+         test-framework test-framework-quickcheck2 vector
+       ];
+       description = "SDP wrapper for Vector";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "sdr" = callPackage
     ({ mkDerivation, array, base, bytestring, bytestring-to-vector
      , cairo, cereal, Chart, Chart-cairo, colour, containers, criterion
@@ -227564,6 +232066,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Bindings for secp256k1";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) secp256k1;};
 
   "secp256k1-legacy" = callPackage
@@ -227607,7 +232111,7 @@ self: {
          base containers diagrams-cairo diagrams-lib haskell-qrencode random
        ];
        description = "Secret Santa game assigner using QR-Codes";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -227629,7 +232133,7 @@ self: {
          test-framework test-framework-quickcheck2 vector
        ];
        description = "Information-theoretic secure secret sharing";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {};
 
   "secrm" = callPackage
@@ -227703,7 +232207,7 @@ self: {
        ];
        librarySystemDepends = [ sedna ];
        description = "Sedna C API XML Binding";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {sedna = null;};
@@ -227824,8 +232328,8 @@ self: {
      }:
      mkDerivation {
        pname = "selective";
-       version = "0.4.1.1";
-       sha256 = "1ix9080g4qcs3w89bmilr6f84kg6vw9hyx5cs5hiw9xnp7dh4sdc";
+       version = "0.4.2";
+       sha256 = "1mg5hnr3f4zjh3ajy16jkxj630rnfa9iqnnmpjqd9gkjdxpssd5l";
        libraryHaskellDepends = [ base containers transformers ];
        testHaskellDepends = [
          base containers mtl QuickCheck tasty tasty-expected-failure
@@ -227994,7 +232498,7 @@ self: {
        ];
        executableHaskellDepends = [ base ];
        description = "Evaluate code snippets in Literate Haskell";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -228032,6 +232536,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "semialign_1_2" = callPackage
+    ({ mkDerivation, base, containers, hashable, indexed-traversable
+     , indexed-traversable-instances, semigroupoids, tagged, these
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "semialign";
+       version = "1.2";
+       sha256 = "04dcyj69g7bm1sydxk89vin9mh2pmm0pqf0cm9v981i98xp6xxdj";
+       libraryHaskellDepends = [
+         base containers hashable indexed-traversable
+         indexed-traversable-instances semigroupoids tagged these
+         transformers unordered-containers vector
+       ];
+       description = "Align and Zip type-classes from the common Semialign ancestor";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "semialign-extras" = callPackage
     ({ mkDerivation, base, doctest, lens, QuickCheck, semialign
      , semialign-indexed, these, witherable
@@ -228070,6 +232593,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "semialign-indexed_1_2" = callPackage
+    ({ mkDerivation, base, lens, semialign }:
+     mkDerivation {
+       pname = "semialign-indexed";
+       version = "1.2";
+       sha256 = "16f0y3j85zlq2f8z45z085dizvbx4ihppp1ww3swh5daj0zf3kzy";
+       libraryHaskellDepends = [ base lens semialign ];
+       doHaddock = false;
+       description = "SemialignWithIndex, i.e. izipWith and ialignWith";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "semialign-optics" = callPackage
     ({ mkDerivation, base, containers, hashable, optics-extra
      , semialign, these, unordered-containers, vector
@@ -228088,6 +232624,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "semialign-optics_1_2" = callPackage
+    ({ mkDerivation, base, optics-core, semialign }:
+     mkDerivation {
+       pname = "semialign-optics";
+       version = "1.2";
+       sha256 = "04vh689mmnb5q77v6ifhg7xf7m2qh5x4i4804rm4biw78130xqr1";
+       libraryHaskellDepends = [ base optics-core semialign ];
+       doHaddock = false;
+       description = "SemialignWithIndex, i.e. izipWith and ialignWith";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "semibounded-lattices" = callPackage
     ({ mkDerivation, base, containers, lattices }:
      mkDerivation {
@@ -228516,7 +233065,7 @@ self: {
        ];
        testToolDepends = [ hspec-discover ];
        description = "SmartyPants for Korean language";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -228679,8 +233228,8 @@ self: {
      }:
      mkDerivation {
        pname = "sequence-formats";
-       version = "1.5.2";
-       sha256 = "0n09mw9z8bjqr8dc32l7swp25vgci7m2hb1w6masgv2cw8irh7as";
+       version = "1.6.1";
+       sha256 = "0r2p8aap9z82yhw6gagl1h7s8v05zf6w82qzhqr6p1msv183fm2a";
        libraryHaskellDepends = [
          attoparsec base bytestring containers errors exceptions foldl
          lens-family pipes pipes-attoparsec pipes-bytestring pipes-safe
@@ -228691,7 +233240,7 @@ self: {
          tasty-hunit transformers vector
        ];
        description = "A package with basic parsing utilities for several Bioinformatic data formats";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "sequenceTools" = callPackage
@@ -228719,7 +233268,7 @@ self: {
          base bytestring hspec pipes sequence-formats vector
        ];
        description = "A package with tools for processing DNA sequencing data";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "sequent-core" = callPackage
@@ -228833,8 +233382,8 @@ self: {
        pname = "serialise";
        version = "0.2.3.0";
        sha256 = "0vp4wyxpximpx10pssfgdsir1pc23zb62fg3kj3iblpzqfrryy69";
-       revision = "1";
-       editedCabalFile = "1pg6hkim1qcrnkj2rqw8xz5mxkrh0jadlsgwm2v1xgkpgfi1dk1r";
+       revision = "2";
+       editedCabalFile = "1qcsp15v0swxy2qlvc40fil09zq32y3wl00y3passc2a4b4yhmr4";
        libraryHaskellDepends = [
          array base bytestring cborg containers ghc-prim half hashable
          primitive text time unordered-containers vector
@@ -228895,12 +233444,14 @@ self: {
     ({ mkDerivation, base, bytestring, HUnit, unix }:
      mkDerivation {
        pname = "serialport";
-       version = "0.5.1";
-       sha256 = "1ys3rjw1a3cghd2slnn43hvc3pdgwfy3rs19j1kjfshasr7d375m";
+       version = "0.5.2";
+       sha256 = "1wxi4arxbcvaacrm6phfnd3dvmy5h2bfcwlqis7x1bgyqpzxcq4b";
        libraryHaskellDepends = [ base bytestring unix ];
        testHaskellDepends = [ base bytestring HUnit ];
        description = "Cross platform serial port library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "serokell-util" = callPackage
@@ -230516,6 +235067,8 @@ self: {
        pname = "servant-openapi3";
        version = "2.0.1.1";
        sha256 = "1cyzyljmdfr3gigdszcpj1i7l698fnxpc9hr83mzspm6qcmbqmgf";
+       revision = "1";
+       editedCabalFile = "0j2b3zv5qk5xfi17jwwn456pqpf27aqgy6fmbyqvn8df83rcij5j";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat bytestring hspec http-media
@@ -230564,7 +235117,7 @@ self: {
        ];
        testHaskellDepends = [ base hspec QuickCheck servant-server text ];
        description = "Type-safe pagination for Servant APIs";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -230611,14 +235164,14 @@ self: {
 
   "servant-polysemy" = callPackage
     ({ mkDerivation, base, deepseq, http-client, http-client-tls, lens
-     , mtl, polysemy, polysemy-plugin, polysemy-zoo, servant-client
-     , servant-server, servant-swagger, servant-swagger-ui, swagger2
-     , text, wai, warp
+     , mtl, polysemy, polysemy-plugin, polysemy-zoo, servant
+     , servant-client, servant-server, servant-swagger
+     , servant-swagger-ui, swagger2, text, wai, warp
      }:
      mkDerivation {
        pname = "servant-polysemy";
-       version = "0.1.1";
-       sha256 = "074c1x51am3ffl9lzhq090h8a6xd9gjf154mhp51glb4m4f6kr15";
+       version = "0.1.2";
+       sha256 = "05qk2kl90lqszwhi1yqnj63zkx3qvd6jbaxsxjw68k7ppsjvnyks";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -230627,7 +235180,7 @@ self: {
        ];
        executableHaskellDepends = [
          base deepseq http-client http-client-tls lens mtl polysemy
-         polysemy-plugin polysemy-zoo servant-client servant-server
+         polysemy-plugin polysemy-zoo servant servant-client servant-server
          servant-swagger servant-swagger-ui swagger2 text wai warp
        ];
        description = "Utilities for using servant in a polysemy stack";
@@ -230807,8 +235360,8 @@ self: {
     ({ mkDerivation, base, servant-client-core, servant-rawm }:
      mkDerivation {
        pname = "servant-rawm-client";
-       version = "1.0.0.1";
-       sha256 = "0ldjhmmfdh0jpfaz4sg1b9n5l23wza3w0m8bvvf80gvl7p6fk0fj";
+       version = "1.0.0.2";
+       sha256 = "08b52fzg1q2p8r58cwbjfc2ixrsxhv1hpzh99wb276s6bka4m9lr";
        libraryHaskellDepends = [ base servant-client-core servant-rawm ];
        description = "The client implementation of servant-rawm";
        license = lib.licenses.bsd3;
@@ -231171,6 +235724,8 @@ self: {
        ];
        description = "Embed a directory of static files in your Servant server";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-streaming" = callPackage
@@ -231406,13 +235961,15 @@ self: {
      }) {};
 
   "servant-to-elm" = callPackage
-    ({ mkDerivation, aeson, base, bound, elm-syntax, haskell-to-elm
-     , http-types, servant, servant-multipart, text
+    ({ mkDerivation, aeson, base, bound, bytestring, directory
+     , elm-syntax, filepath, generics-sop, haskell-to-elm, hspec
+     , http-types, prettyprinter, process, servant, servant-multipart
+     , temporary, text, unordered-containers
      }:
      mkDerivation {
        pname = "servant-to-elm";
-       version = "0.4.1.0";
-       sha256 = "0kxkyijkxvpb5jv815i9s6pg7rnq437jj7hrwr0xprxd709mc648";
+       version = "0.4.2.0";
+       sha256 = "1hbz6c9233wgpgmgnplg9qv5hrniynkn5n4zsmkyansw07gmaw05";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -231420,8 +235977,9 @@ self: {
          servant-multipart text
        ];
        testHaskellDepends = [
-         aeson base bound elm-syntax haskell-to-elm http-types servant
-         servant-multipart text
+         aeson base bound bytestring directory elm-syntax filepath
+         generics-sop haskell-to-elm hspec http-types prettyprinter process
+         servant servant-multipart temporary text unordered-containers
        ];
        description = "Automatically generate Elm clients for Servant APIs";
        license = lib.licenses.bsd3;
@@ -231459,6 +236017,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "servant-validate" = callPackage
+    ({ mkDerivation, base, containers, hspec, servant
+     , should-not-typecheck, text
+     }:
+     mkDerivation {
+       pname = "servant-validate";
+       version = "0.1.0.0";
+       sha256 = "0igcbcax6xxp0h1c4kjbgl2iw1gbadn5ccb1kx0cpp0lydszlv80";
+       libraryHaskellDepends = [ base containers servant text ];
+       testHaskellDepends = [
+         base containers hspec servant should-not-typecheck text
+       ];
+       description = "Chekc static properties of servant APIs";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "servant-waargonaut" = callPackage
     ({ mkDerivation, base, bytestring, http-media, http-types, lens
      , servant, servant-server, tasty, tasty-wai, text, transformers
@@ -231696,17 +236270,17 @@ self: {
   "serversession" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
      , containers, data-default, hashable, hspec, nonce, path-pieces
-     , QuickCheck, text, time, transformers, unordered-containers
+     , persistent-test, QuickCheck, text, time, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "serversession";
-       version = "1.0.1";
-       sha256 = "08j8v6a2018bmvwsb7crdg0ajak74jggb073pdpx9s0pf3cfzyrz";
-       revision = "2";
-       editedCabalFile = "0i5faxzxgvpfylmrr175f8l4asyh4phncc90jkfag53gnspcv028";
+       version = "1.0.2";
+       sha256 = "02ynhgq6gn5ddx2yd8ns8ay0rrhzln2h6jrmnwk7x1fqqfvzx0jf";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring data-default hashable nonce
-         path-pieces text time transformers unordered-containers
+         path-pieces persistent-test text time transformers
+         unordered-containers
        ];
        testHaskellDepends = [
          aeson base base64-bytestring bytestring containers data-default
@@ -231715,6 +236289,8 @@ self: {
        ];
        description = "Secure, modular server-side sessions";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "serversession-backend-acid-state" = callPackage
@@ -231723,8 +236299,8 @@ self: {
      }:
      mkDerivation {
        pname = "serversession-backend-acid-state";
-       version = "1.0.3";
-       sha256 = "1rkw5an7lwx05063caqjhvf449jxij2zrbymg64p600mngb1flq0";
+       version = "1.0.4";
+       sha256 = "1mchxnkrpa6grp8h5iji40fyhya2lvb433yby4iymaaakzgjs19z";
        libraryHaskellDepends = [
          acid-state base containers mtl safecopy serversession
          unordered-containers
@@ -231748,8 +236324,8 @@ self: {
      }:
      mkDerivation {
        pname = "serversession-backend-persistent";
-       version = "1.0.4";
-       sha256 = "074pxfv1yj6ffxp4bg0ia20w7ikdja3g3k1l93nnjcni13zddwn7";
+       version = "1.0.5";
+       sha256 = "1mcaqafyr5x0v475j7rs2z4059jggzfj8rky66ls0mlvd9br91s0";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring cereal path-pieces
          persistent serversession tagged text time transformers
@@ -231774,8 +236350,8 @@ self: {
      }:
      mkDerivation {
        pname = "serversession-backend-redis";
-       version = "1.0.3";
-       sha256 = "059nak15x4cbwmfbvfih6ndwa6i5jhcba22h9gz44f6s84vhljyf";
+       version = "1.0.4";
+       sha256 = "1rrz2p103271pyhdlbwim8vz91yl1qip0lagf74d277x74v9hyp5";
        libraryHaskellDepends = [
          base bytestring hedis path-pieces serversession tagged text time
          transformers unordered-containers
@@ -231805,6 +236381,8 @@ self: {
        ];
        description = "Snap bindings for serversession";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "serversession-frontend-wai" = callPackage
@@ -231822,6 +236400,8 @@ self: {
        ];
        description = "wai-session bindings for serversession";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "serversession-frontend-yesod" = callPackage
@@ -231964,7 +236544,7 @@ self: {
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base directory exceptions hspec ];
        description = "Session types library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -231988,7 +236568,7 @@ self: {
          base distributed-process hspec network-transport-tcp sessiontypes
        ];
        description = "Session types distributed";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -232133,11 +236713,23 @@ self: {
        pname = "setlocale";
        version = "1.0.0.9";
        sha256 = "18b6xafspzxrmz5m9r9nzy3z053crqi59xc8n8aqd4gw0pvqdcrv";
-       revision = "2";
-       editedCabalFile = "0l0hlxhjspm05hxd06972ilw4c3ni72mnzcyljg3a01i8pxi53cl";
+       revision = "3";
+       editedCabalFile = "10ikb40vv1n3rk7cczhgpi2h4wmv2s0wzq5xkgjqvsqwl1pxkidw";
+       libraryHaskellDepends = [ base ];
+       description = "Haskell bindings to setlocale";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "setlocale_1_0_0_10" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "setlocale";
+       version = "1.0.0.10";
+       sha256 = "19rv89jkhq5ic7j5rzpygnmsbzim2mn8ip0m292za613q88gywir";
        libraryHaskellDepends = [ base ];
        description = "Haskell bindings to setlocale";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "setoid" = callPackage
@@ -232271,7 +236863,7 @@ self: {
          test-framework-hunit test-framework-quickcheck2
        ];
        description = "S-Expression parsing/printing made fun and easy";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -232303,6 +236895,8 @@ self: {
        ];
        description = "Invertible grammar combinators for S-expressions";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sexp-show" = callPackage
@@ -232718,6 +237312,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "shake-bench" = callPackage
+    ({ mkDerivation, aeson, base, Chart, Chart-diagrams, diagrams
+     , diagrams-svg, directory, extra, filepath, shake, text
+     }:
+     mkDerivation {
+       pname = "shake-bench";
+       version = "0.1.0.0";
+       sha256 = "09lgmiw77nr3xycxksvzmcw1c2j66h51d5vxpm0lngv1dnsrad64";
+       libraryHaskellDepends = [
+         aeson base Chart Chart-diagrams diagrams diagrams-svg directory
+         extra filepath shake text
+       ];
+       description = "Build rules for historical benchmarking";
+       license = lib.licenses.asl20;
+       maintainers = with lib.maintainers; [ maralorn ];
+     }) {};
+
   "shake-bindist" = callPackage
     ({ mkDerivation, archive-sig, base, bytestring, bz2, lzlib, shake
      , zlib, zstd
@@ -232860,6 +237471,8 @@ self: {
        ];
        description = "Dependency tracking for Futhark";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "shake-google-closure-compiler" = callPackage
@@ -232928,6 +237541,8 @@ self: {
        ];
        description = "Shake rules for CSS";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "shake-pack" = callPackage
@@ -232970,7 +237585,7 @@ self: {
        ];
        executableHaskellDepends = [ base shake ];
        description = "Shake build system on-disk caching";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -233603,6 +238218,24 @@ self: {
        license = lib.licenses.mpl20;
      }) {};
 
+  "shellmet_0_0_4_0" = callPackage
+    ({ mkDerivation, base, doctest, Glob, markdown-unlit, process, text
+     }:
+     mkDerivation {
+       pname = "shellmet";
+       version = "0.0.4.0";
+       sha256 = "1nrva50knx3ca0m6f84f1yim4apj949fqqmmrxqmxhlixjzafl8v";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base process text ];
+       executableHaskellDepends = [ base text ];
+       executableToolDepends = [ markdown-unlit ];
+       testHaskellDepends = [ base doctest Glob ];
+       description = "Out of the shell solution for scripting in Haskell";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "shellout" = callPackage
     ({ mkDerivation, async, base, stm, text, typed-process }:
      mkDerivation {
@@ -233996,8 +238629,8 @@ self: {
        pname = "show-combinators";
        version = "0.2.0.0";
        sha256 = "07ds87ldl9165hj3k5h84iawc6vqlbggni3dg1nhbxww1spxn0n9";
-       revision = "1";
-       editedCabalFile = "1pczjf7z43nzfgza9fa29flbmvkj07p4dw16v9bjv36i8dv6cjc7";
+       revision = "2";
+       editedCabalFile = "0n3xlpm41wpw1ybmacg9s7150nx00qrdlw2rq4fzz7iw7333cyjx";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Combinators to write Show instances";
@@ -234078,6 +238711,8 @@ self: {
        pname = "shower";
        version = "0.2.0.2";
        sha256 = "0flad49vvqww2pbf6j8557szffd7wb3z375avhvzwqyklimwipgn";
+       revision = "1";
+       editedCabalFile = "0d5vfb65lq6f36lagsf89dj45gs68dyv6cc6lqxz0c23bv91qarc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base megaparsec pretty ];
@@ -234239,7 +238874,7 @@ self: {
          hmatrix JuicyPixels random random-shuffle split vector
        ];
        description = "Machine Learning algorithms";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -234252,7 +238887,7 @@ self: {
        sha256 = "19zjwzh3i8ql5xz9rvmbz7n2l3z7dcq683ikrpvqx3wxnc06058m";
        libraryHaskellDepends = [ base ];
        description = "Sieve is an implementation of the Sieve abstract data type";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "sifflet" = callPackage
@@ -234376,8 +239011,8 @@ self: {
      }:
      mkDerivation {
        pname = "signable";
-       version = "0.2";
-       sha256 = "1p1g6jhxgskl890g84nw8d465pan9d3prbc4jvyn8502bx00w01s";
+       version = "0.4";
+       sha256 = "0fzf3zijr61ifqbxkmkzii8vbl5h04ydpzc24z5ixvcq94yfzlgx";
        libraryHaskellDepends = [
          asn1-encoding asn1-types base binary bytestring casing cryptonite
          memory microlens pem proto-lens proto-lens-runtime
@@ -234462,6 +239097,8 @@ self: {
        ];
        description = "Hmac sha256 signature json and http payload";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "signed-multiset" = callPackage
@@ -234477,6 +239114,31 @@ self: {
        broken = true;
      }) {};
 
+  "signify-hs" = callPackage
+    ({ mkDerivation, base, base64-bytestring, bytestring
+     , cryptohash-sha512, cryptonite, eccrypto, filepath
+     , optparse-applicative, parsec
+     }:
+     mkDerivation {
+       pname = "signify-hs";
+       version = "0.1.0.1";
+       sha256 = "1a8ipdyc4c79waf1mgpwbmj1wrghmc5x49ksbxiwnkz6ini61kny";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base base64-bytestring bytestring cryptohash-sha512 cryptonite
+         eccrypto parsec
+       ];
+       executableHaskellDepends = [
+         base base64-bytestring bytestring cryptohash-sha512 cryptonite
+         eccrypto filepath optparse-applicative parsec
+       ];
+       description = "A Haskell clone of OpenBSD signify";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "silently" = callPackage
     ({ mkDerivation, base, deepseq, directory, nanospec, temporary }:
      mkDerivation {
@@ -234584,7 +239246,7 @@ self: {
          unordered-containers vector wai wai-extra
        ];
        description = "A minimalist web framework for the WAI server interface";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "simple-actors" = callPackage
@@ -234617,6 +239279,7 @@ self: {
        ];
        description = "A simple library for affine and vector spaces";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ turion ];
      }) {};
 
   "simple-atom" = callPackage
@@ -234837,7 +239500,7 @@ self: {
        libraryHaskellDepends = [ base parsec text transformers ];
        executableHaskellDepends = [ base text ];
        description = "Evaluate a Text to an Integer: \"1 + 1\" -> 2";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -235085,6 +239748,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "simple-parser" = callPackage
+    ({ mkDerivation, base, containers, list-t, mmorph, mtl
+     , nonempty-containers, scientific, tasty, tasty-hunit, tasty-th
+     , text, text-builder
+     }:
+     mkDerivation {
+       pname = "simple-parser";
+       version = "0.3.0";
+       sha256 = "05a4aakq93nqmm632mijd64vjq07dlpcb1m2a57z6k1mhqinwxc5";
+       libraryHaskellDepends = [
+         base containers list-t mmorph mtl nonempty-containers scientific
+         text text-builder
+       ];
+       testHaskellDepends = [
+         base containers list-t mmorph mtl nonempty-containers scientific
+         tasty tasty-hunit tasty-th text text-builder
+       ];
+       description = "Simple parser combinators";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "simple-pascal" = callPackage
     ({ mkDerivation, base, containers, filepath, mtl, parsec
      , simple-stacked-vm
@@ -235138,7 +239822,7 @@ self: {
          resource-pool simple transformers
        ];
        description = "Connector package for integrating postgresql-orm with the Simple web framework";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "simple-reflect" = callPackage
@@ -235214,7 +239898,7 @@ self: {
          cookie cryptohash http-types simple transformers wai wai-extra
        ];
        description = "Cookie-based session management for the Simple web framework";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "simple-sessions" = callPackage
@@ -235232,8 +239916,8 @@ self: {
     ({ mkDerivation, base, process }:
      mkDerivation {
        pname = "simple-smt";
-       version = "0.9.5";
-       sha256 = "0bwb3r2gqm81nmf0hc0mgj8vp2a48kmzx0h7h42lprp4d4irwmy2";
+       version = "0.9.6";
+       sha256 = "1smr9lbr46nghbyk39j5v2s53zw1k2v1sbwwzj5js5h61xj33zs9";
        libraryHaskellDepends = [ base process ];
        description = "A simple way to interact with an SMT solver process";
        license = lib.licenses.bsd3;
@@ -235251,6 +239935,8 @@ self: {
        testHaskellDepends = [ base mtl parsec pretty tasty tasty-hunit ];
        description = "A parser for SQL";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "simple-src-utils" = callPackage
@@ -235332,7 +240018,7 @@ self: {
          aeson attoparsec base hspec HUnit scientific vector
        ];
        description = "A basic template language for the Simple web framework";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "simple-text-format" = callPackage
@@ -235365,18 +240051,19 @@ self: {
          transformers vector vty
        ];
        description = "UI library for terminal";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
 
   "simple-units" = callPackage
-    ({ mkDerivation, base, first-class-families }:
+    ({ mkDerivation, base, doctest, first-class-families }:
      mkDerivation {
        pname = "simple-units";
-       version = "1.0.1.1";
-       sha256 = "1dzsr15lq32dqsbhb639vzlx2d6m2kx0qax75ik2z765r5h9f9sa";
+       version = "1.0.2";
+       sha256 = "1caijdnah0lr5c48zmx93b06yvw9fbpakw0y0nz0k4icv935xdam";
        libraryHaskellDepends = [ base first-class-families ];
+       testHaskellDepends = [ base doctest ];
        description = "Simple arithmetic with SI units using type-checked dimensional analysis";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -235601,7 +240288,7 @@ self: {
          base directory filepath mtl process random regex-compat split time
        ];
        description = "A simple markup language that translates to LaTeX";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "simplex-basic" = callPackage
@@ -235664,7 +240351,7 @@ self: {
        sha256 = "0a8414006gdya8b4dw38251kim3x2i5g7m03ga479ialghralrc8";
        libraryHaskellDepends = [ base containers ];
        description = "Load data organized in a tree";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "since" = callPackage
@@ -235711,6 +240398,8 @@ self: {
        pname = "single-tuple";
        version = "0.1.1.0";
        sha256 = "1cviix5did4pm4bimg12v2qa9ms5icf19k3iz13g07d5q9jyiwji";
+       revision = "1";
+       editedCabalFile = "0gmki1bz7sn1lw5f1f1zp3rfphwba03fv6825djlidybln8snld0";
        libraryHaskellDepends = [ base OneTuple Only ];
        testHaskellDepends = [ base hspec OneTuple Only ];
        testToolDepends = [ hspec-discover ];
@@ -235736,8 +240425,8 @@ self: {
        pname = "singleton-bool";
        version = "0.1.5";
        sha256 = "17w9vv6arn7vvc7kykqcx81q2364ji43khrryl27r1cjx9yxapa0";
-       revision = "2";
-       editedCabalFile = "118j0h29nqg2acqbzif2ffqnanjbwnqmv2kch9z7xiwqkz6iq8an";
+       revision = "3";
+       editedCabalFile = "11rhzpy4xiry39bbxzwrqff75f0f4g7z0vkr3v9l8rv3w40jlf7x";
        libraryHaskellDepends = [ base dec ];
        description = "Type level booleans";
        license = lib.licenses.bsd3;
@@ -235767,6 +240456,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "singleton-nats_0_4_6" = callPackage
+    ({ mkDerivation, base, singletons, singletons-base }:
+     mkDerivation {
+       pname = "singleton-nats";
+       version = "0.4.6";
+       sha256 = "1drjwwkpszgifhnd7p4qqz92z85nh7w81w1hpdqv9a6vc5hfbv7r";
+       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
     ({ mkDerivation, base }:
      mkDerivation {
@@ -235805,23 +240506,78 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "singletons_3_0" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "singletons";
+       version = "3.0";
+       sha256 = "1zrnmdv00i9lyrqvbvljx24lvi49p11m5gbvh1xc2ygnhgb6xmx5";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "Basic singleton types and definitions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "singletons-base" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, deepseq, directory
+     , filepath, pretty, process, singletons, singletons-th, tasty
+     , tasty-golden, template-haskell, text, th-desugar, turtle
+     }:
+     mkDerivation {
+       pname = "singletons-base";
+       version = "3.0";
+       sha256 = "0syrh4f9rs4g643c90md1vqrpr6p8h8g8sh4x3j2dld12yvrw4wn";
+       setupHaskellDepends = [ base Cabal directory filepath ];
+       libraryHaskellDepends = [
+         base pretty singletons singletons-th template-haskell text
+         th-desugar
+       ];
+       testHaskellDepends = [
+         base bytestring deepseq filepath process tasty tasty-golden text
+         turtle
+       ];
+       description = "A promoted and singled version of the base library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "singletons-presburger" = callPackage
-    ({ mkDerivation, base, ghc, ghc-typelits-presburger, mtl
-     , reflection, singletons
+    ({ mkDerivation, base, ghc-typelits-presburger, mtl, reflection
+     , singletons
      }:
      mkDerivation {
        pname = "singletons-presburger";
-       version = "0.5.0.0";
-       sha256 = "0pc95rg9vbcgzw6bzsj41vbz3h85p4lhf1ry8ik6l8c2nz3ga6bb";
+       version = "0.6.0.0";
+       sha256 = "1yg1l770c2817yhm569ij5rb8l15c69p5f68i0vrdd8kwpv1ka63";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base ghc ghc-typelits-presburger mtl reflection singletons
+         base ghc-typelits-presburger mtl reflection singletons
        ];
        description = "Presburger Arithmetic Solver for GHC Type-level natural numbers with Singletons package";
        license = lib.licenses.bsd3;
      }) {};
 
+  "singletons-th" = callPackage
+    ({ mkDerivation, base, containers, ghc-boot-th, mtl, singletons
+     , syb, template-haskell, th-desugar, th-orphans, transformers
+     }:
+     mkDerivation {
+       pname = "singletons-th";
+       version = "3.0";
+       sha256 = "1c0w7sg0lbpizrzns4g55wxsk5jm8wlqw0w9rz4jzqwy15byb572";
+       libraryHaskellDepends = [
+         base containers ghc-boot-th mtl singletons syb template-haskell
+         th-desugar th-orphans transformers
+       ];
+       description = "A framework for generating singleton types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "singnal" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -235830,7 +240586,7 @@ self: {
        sha256 = "16f0grf63wgkaab64mmqhxwwk50pzzy354i3v23lzw7s5x0bk8sj";
        libraryHaskellDepends = [ base ];
        description = "Singnal";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -236075,8 +240831,6 @@ self: {
        ];
        description = "Sized functors, for size-based enumerations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sized" = callPackage
@@ -236412,55 +241166,108 @@ self: {
 
   "skylighting" = callPackage
     ({ mkDerivation, base, binary, blaze-html, bytestring, containers
-     , directory, filepath, pretty-show, skylighting-core, text
+     , pretty-show, skylighting-core, text
      }:
      mkDerivation {
        pname = "skylighting";
-       version = "0.10.2";
-       sha256 = "1f60fnr8d8a28fr785hjzaaakss1ncn0998sz740xb76wp6q7pqd";
+       version = "0.10.5";
+       sha256 = "09f21wkw8n5bjdn5bbrqphq4f44gipd1cb9b0ikjn9zrggglfnx9";
        configureFlags = [ "-fexecutable" ];
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base binary bytestring containers skylighting-core
+         base binary containers skylighting-core
        ];
        executableHaskellDepends = [
-         base blaze-html bytestring containers directory filepath
-         pretty-show text
+         base blaze-html bytestring containers pretty-show text
        ];
        description = "syntax highlighting library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
+     }) {};
+
+  "skylighting_0_10_5_1" = callPackage
+    ({ mkDerivation, base, binary, blaze-html, bytestring, containers
+     , pretty-show, skylighting-core, text
+     }:
+     mkDerivation {
+       pname = "skylighting";
+       version = "0.10.5.1";
+       sha256 = "11y2j9c4gw0x5h974jrp0yppy5dys9i0nxdbzm374nwx8mjwdl4w";
+       configureFlags = [ "-fexecutable" ];
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base binary containers skylighting-core
+       ];
+       executableHaskellDepends = [
+         base blaze-html bytestring containers pretty-show text
+       ];
+       description = "syntax highlighting library";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "skylighting-core" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, attoparsec, base
      , base64-bytestring, binary, blaze-html, bytestring
      , case-insensitive, colour, containers, criterion, Diff, directory
-     , filepath, HUnit, hxt, mtl, pretty-show, QuickCheck, random, safe
-     , tasty, tasty-golden, tasty-hunit, tasty-quickcheck, text
-     , transformers, utf8-string
+     , 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.10.2";
-       sha256 = "1igqskmcbhk7b3fv1a1fxvfc4s3mc2sf96q90bf5iipy0h3f2zbg";
+       version = "0.10.5";
+       sha256 = "1iaisswfg8ab6rd11002390jfxr309qyvlm85h57mi8svwxk09x2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal attoparsec base base64-bytestring binary
+         blaze-html 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 directory filepath text
+       ];
+       description = "syntax highlighting library";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "skylighting-core_0_10_5_1" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, attoparsec, base
+     , base64-bytestring, binary, blaze-html, 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.10.5.1";
+       sha256 = "14mz7krfkidgplhp49w84ryz74jrsdqll44wqd0my0m28v2vg9ka";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson ansi-terminal attoparsec base base64-bytestring binary
          blaze-html bytestring case-insensitive colour containers directory
-         filepath hxt mtl safe text transformers utf8-string
+         filepath mtl safe text transformers utf8-string xml-conduit
        ];
        testHaskellDepends = [
-         aeson base bytestring containers Diff directory filepath HUnit
-         pretty-show QuickCheck random tasty tasty-golden tasty-hunit
-         tasty-quickcheck text utf8-string
+         aeson base bytestring containers Diff directory filepath
+         pretty-show QuickCheck tasty tasty-golden tasty-hunit
+         tasty-quickcheck text
        ];
        benchmarkHaskellDepends = [
          base containers criterion directory filepath text
        ];
        description = "syntax highlighting library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "skylighting-extensions" = callPackage
@@ -236647,6 +241454,8 @@ self: {
        ];
        description = "Slack API Request Verification HMAC";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "slack-web" = callPackage
@@ -236658,8 +241467,8 @@ self: {
      }:
      mkDerivation {
        pname = "slack-web";
-       version = "0.2.1.0";
-       sha256 = "01bwiq3b97bznn3sc51vi7q8xkjdslvqqh250fk7arcaq6hkkiw1";
+       version = "0.3.0.0";
+       sha256 = "1z223dhv0qb7labrxppjq65lp2jyscxgxk4rjdvfd2xsglj36dbf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -236737,7 +241546,7 @@ self: {
        libraryHaskellDepends = [ base time ];
        executableHaskellDepends = [ base time ];
        description = "zZzzZz";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "slice-cpp-gen" = callPackage
@@ -236790,8 +241599,8 @@ self: {
      }:
      mkDerivation {
        pname = "slick";
-       version = "1.1.0.0";
-       sha256 = "1a6zsp308ikqzdxy26phb04bk4hr8lmw1i73mwydg65yd42c8zjx";
+       version = "1.1.1.0";
+       sha256 = "19zqg85j3685hsbax5sv96zfqxih7rmcjd65z88vynmiv718147d";
        libraryHaskellDepends = [
          aeson base bytestring directory extra mustache pandoc shake text
          unordered-containers
@@ -236860,13 +241669,17 @@ self: {
      }) {};
 
   "slist" = callPackage
-    ({ mkDerivation, base, doctest, Glob }:
+    ({ mkDerivation, base, containers, doctest, Glob, hedgehog, hspec
+     , hspec-hedgehog
+     }:
      mkDerivation {
        pname = "slist";
-       version = "0.1.1.0";
-       sha256 = "046v580i8kxx9fpsvavwpydyfsffky3m735c45dafixrkbhjz55d";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest Glob ];
+       version = "0.2.0.0";
+       sha256 = "1aiswwh33rxp49adhjygyjrhivsflafz5z0kyv3wfnb0wk15jv96";
+       libraryHaskellDepends = [ base containers ];
+       testHaskellDepends = [
+         base doctest Glob hedgehog hspec hspec-hedgehog
+       ];
        description = "Sized list";
        license = lib.licenses.mpl20;
      }) {};
@@ -236909,7 +241722,7 @@ self: {
          base Chart Chart-cairo colour data-default-class lens
        ];
        description = "Visualize mathematical function's slope fields";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "slot-lambda" = callPackage
@@ -236991,22 +241804,24 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Convert text into slugs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "slynx" = callPackage
-    ({ mkDerivation, async, attoparsec, base, bytestring, containers
+    ({ mkDerivation, attoparsec, base, bytestring, containers
      , elynx-markov, elynx-seq, elynx-tools, elynx-tree, hmatrix
      , monad-logger, mwc-random, optparse-applicative, statistics, text
      , transformers, vector
      }:
      mkDerivation {
        pname = "slynx";
-       version = "0.5.0.1";
-       sha256 = "013ck07xgna42a5vlk6a323z3x1jrggbjw7jr2ww8mpgvpw2wp8r";
+       version = "0.5.0.2";
+       sha256 = "0qpw3h1lbz299gb2jdcsj7svhxsi9icqaws8xpik58a3hb0r8icb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async attoparsec base bytestring containers elynx-markov elynx-seq
+         attoparsec base bytestring containers elynx-markov elynx-seq
          elynx-tools elynx-tree hmatrix monad-logger mwc-random
          optparse-applicative statistics text transformers vector
        ];
@@ -237133,8 +241948,8 @@ self: {
      }:
      mkDerivation {
        pname = "smallcheck-series";
-       version = "0.7.0.0";
-       sha256 = "11pb4k0y8fqfkq5ajspn5nnliskvk8qp02dzpcjrzqk27da2iwb6";
+       version = "0.7.1.0";
+       sha256 = "0c5cpnrxqfhrxgic6rk6vy3wj537k249fg0wzczwx30vdqzcmnkx";
        libraryHaskellDepends = [
          base bytestring containers logict smallcheck text transformers
        ];
@@ -237334,6 +242149,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "smash_0_1_2" = callPackage
+    ({ mkDerivation, base, bifunctors, binary, deepseq, hashable, mtl
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "smash";
+       version = "0.1.2";
+       sha256 = "178ja9c88py31059i0fqv81b1dbgfyv2v64z9ak2k5p79946aa0w";
+       revision = "1";
+       editedCabalFile = "0i5ba4zn11b075fy32pawfhjy81731pjiy5f88f6z8zzbbgwfyny";
+       libraryHaskellDepends = [
+         base bifunctors binary deepseq hashable mtl template-haskell
+       ];
+       description = "Smash products, wedge products, and pointed products";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "smash-aeson" = callPackage
     ({ mkDerivation, aeson, base, smash, unordered-containers }:
      mkDerivation {
@@ -237384,6 +242217,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "smawk" = callPackage
+    ({ mkDerivation, base, primitive, semigroupoids, transformers }:
+     mkDerivation {
+       pname = "smawk";
+       version = "0";
+       sha256 = "0w0hzn4zmziwxm88y6ra2p6ld29jfga9wnbcgrhw0snf10cnnqyc";
+       libraryHaskellDepends = [
+         base primitive semigroupoids transformers
+       ];
+       description = "Linear time row minima for totally monotone matrices";
+       license = "(BSD-2-Clause OR Apache-2.0)";
+     }) {};
+
   "smcdel" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, containers, criterion
      , cudd, directory, file-embed, filepath, graphviz, HasCacBDD, hspec
@@ -237407,7 +242253,7 @@ self: {
        testHaskellDepends = [ base containers hspec QuickCheck ];
        benchmarkHaskellDepends = [ base criterion time ];
        description = "Symbolic Model Checking for Dynamic Epistemic Logic";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -237617,7 +242463,7 @@ self: {
          template-haskell
        ];
        description = "A type-safe interface to communicate with an SMT solver";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -237635,7 +242481,7 @@ self: {
          mtl smtlib2 smtlib2-pipe text
        ];
        description = "Dump the communication with an SMT solver for debugging purposes";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -237658,7 +242504,7 @@ self: {
          base Cabal cabal-test-quickcheck smtlib2 smtlib2-quickcheck
        ];
        description = "A type-safe interface to communicate with an SMT solver";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -237675,7 +242521,7 @@ self: {
          base containers dependent-map dependent-sum mtl QuickCheck smtlib2
        ];
        description = "Helper functions to create SMTLib expressions in QuickCheck";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -237688,7 +242534,7 @@ self: {
        sha256 = "12828gfip43pwjwnhd0smvkz1ar71gbp4lkv3njli6yp5dbcwfi5";
        libraryHaskellDepends = [ base dependent-sum mtl smtlib2 time ];
        description = "Get timing informations for SMT queries";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -237980,6 +242826,8 @@ self: {
        pname = "snap-core";
        version = "1.0.4.2";
        sha256 = "0zxdhx4wk70bkn71574lyz3zhq79yy98rv05r4564rd100xw3fqs";
+       revision = "1";
+       editedCabalFile = "065v61clskzikywv0gy9n4fjaszi2fnjklal83kqbzhzzgkf83ng";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder case-insensitive
          containers directory filepath hashable HUnit io-streams lifted-base
@@ -238026,6 +242874,8 @@ self: {
        ];
        description = "Serve Elm files through the Snap web framework";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snap-error-collector" = callPackage
@@ -238403,7 +243253,7 @@ self: {
          snap snap-core
        ];
        description = "CoffeeScript for Snap, auto-compilation and pre-compilation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -238639,6 +243489,8 @@ self: {
        testHaskellDepends = [ base hspec-snap hspec2 lens snap text ];
        description = "Lexical Style Sheets - Snap Web Framework adaptor";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-mandrill" = callPackage
@@ -238980,7 +243832,7 @@ self: {
          sednaDBXML snap
        ];
        description = "Snaplet for Sedna Bindings. Essentailly a rip of snaplet-hdbc.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -239242,7 +244094,7 @@ self: {
          base classy-prelude containers lens linear mtl ncurses transformers
        ];
        description = "Tiny, declarative wrapper around ncurses";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -239303,7 +244155,7 @@ self: {
          base containers directory filepath HsSyck parsec safe spoonutil
        ];
        description = "The Simple Nice-Looking Manual Generator";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -239347,7 +244199,7 @@ self: {
          optparse-applicative parsec random
        ];
        description = "Strategic board game of medium complexity";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -239449,7 +244301,7 @@ self: {
          base bytestring containers gl-capture GLUT OpenGL OpenGLRaw random
        ];
        description = "randomized fractal snowflakes demo";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "snowtify" = callPackage
@@ -239573,6 +244425,7 @@ self: {
        ];
        description = "An extensible socket library";
        license = lib.licenses.mit;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "socket-activation" = callPackage
@@ -239741,6 +244594,26 @@ self: {
        broken = true;
      }) {};
 
+  "sockets-and-pipes" = callPackage
+    ({ mkDerivation, aeson, ascii, async, base, blaze-html, bytestring
+     , containers, network, safe-exceptions, stm, text, time
+     }:
+     mkDerivation {
+       pname = "sockets-and-pipes";
+       version = "0.1";
+       sha256 = "02xc2kddcz93d9yqdchml0yh9gypcx64315baj766adgf8np42nv";
+       revision = "4";
+       editedCabalFile = "1lv2zpyblqryr59ii3zvwi5f06vxsgnla1xa14rardhncs36fa8r";
+       libraryHaskellDepends = [
+         aeson ascii async base blaze-html bytestring containers network
+         safe-exceptions stm text time
+       ];
+       description = "Support for the Sockets and Pipes book";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "socketson" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring, cereal
      , crypto-api, data-default, DRBG, either, errors, http-types
@@ -239803,7 +244676,7 @@ self: {
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base cairo gtk old-time stm ];
        description = "GUI functions as used in the book \"The Haskell School of Expression\"";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -240047,7 +244920,7 @@ self: {
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec HUnit QuickCheck ];
        description = "Generate string for sort key";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "sorting" = callPackage
@@ -240321,26 +245194,34 @@ self: {
      }) {};
 
   "spacecookie" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
-     , directory, fast-logger, filepath, hxt-unicode, mtl, socket
-     , systemd, transformers, unix
+    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
+     , containers, directory, download-curl, fast-logger
+     , filepath-bytestring, hxt-unicode, mtl, process, socket, systemd
+     , tasty, tasty-expected-failure, tasty-hunit, text, transformers
+     , unix
      }:
      mkDerivation {
        pname = "spacecookie";
-       version = "0.2.1.2";
-       sha256 = "0cb51kji78vfg17mcnz3a5jlfbnyavh880x09b18y9syqwx4in7l";
+       version = "1.0.0.0";
+       sha256 = "0v61n5afcrfmj7dd51h4wi7d5hzl4r86wvaymhsi3h4jday58ln0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         attoparsec base bytestring containers directory fast-logger
-         filepath hxt-unicode mtl socket transformers unix
+         async attoparsec base bytestring containers directory
+         filepath-bytestring hxt-unicode mtl socket text transformers unix
        ];
        executableHaskellDepends = [
-         aeson attoparsec base bytestring containers directory filepath mtl
-         socket systemd transformers unix
+         aeson attoparsec base bytestring containers directory fast-logger
+         filepath-bytestring mtl socket systemd text transformers unix
        ];
-       description = "Gopher Library and Server Daemon";
-       license = lib.licenses.gpl3;
+       testHaskellDepends = [
+         attoparsec base bytestring containers directory download-curl
+         filepath-bytestring process tasty tasty-expected-failure
+         tasty-hunit
+       ];
+       description = "Gopher server library and daemon";
+       license = lib.licenses.gpl3Only;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "spacefill" = callPackage
@@ -240474,7 +245355,7 @@ self: {
        ];
        testHaskellDepends = [ base ];
        description = "An SPARQL 1.1 Protocol client library.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "sparrow" = callPackage
@@ -240587,7 +245468,7 @@ self: {
          mwc-random primitive QuickCheck scientific
        ];
        description = "Numerical computing in native Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "sparse-tensor" = callPackage
@@ -240598,8 +245479,8 @@ self: {
      }:
      mkDerivation {
        pname = "sparse-tensor";
-       version = "0.2.1.4";
-       sha256 = "10caf86g33hcccmpicxfjh0jq3z9d7vs4jafl0f8zhy09dirq8bn";
+       version = "0.2.1.5";
+       sha256 = "0549hw502hka1fyvv00nvd5aif5knvq7b9fk62f3fyjlfmqcnwx4";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          ad base bytestring cereal containers deepseq ghc-typelits-knownnat
@@ -240707,7 +245588,7 @@ self: {
          tasty-quickcheck vector-space
        ];
        description = "Rotate about any suitable axis";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "spawn" = callPackage
@@ -240875,7 +245756,7 @@ self: {
          sparse-linear-algebra statistics vector
        ];
        description = "Library for spectral clustering";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -240960,8 +245841,8 @@ self: {
      }:
      mkDerivation {
        pname = "speedy-slice";
-       version = "0.3.1";
-       sha256 = "0i139wp2c75q8a5q018z7ps1ghbqjkkd8nh6z6xfp0rqywq2bsnr";
+       version = "0.3.2";
+       sha256 = "1bmy0hrrqgwbqsk1ckbmzy1hhcwlcjsclcskrdmzfq5afvq9kq3z";
        libraryHaskellDepends = [
          base kan-extensions lens mcmc-types mwc-probability pipes primitive
          transformers
@@ -241229,7 +246110,7 @@ self: {
          tasty tasty-hunit tasty-quickcheck vector
        ];
        description = "A parallel implementation of the Sorokina/Zeilfelder spline scheme";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -241266,6 +246147,21 @@ self: {
        libraryHaskellDepends = [ base containers ghc hlint stm ];
        description = "HLint as a GHC source plugin";
        license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "splint_1_0_1_4" = callPackage
+    ({ mkDerivation, base, containers, ghc, hlint, stm }:
+     mkDerivation {
+       pname = "splint";
+       version = "1.0.1.4";
+       sha256 = "1s7m43y4m074wk73scakb7ynf8na0fx1bnggj8v4l59bxa5mqsmm";
+       libraryHaskellDepends = [ base containers ghc hlint stm ];
+       description = "HLint as a GHC source plugin";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "split" = callPackage
@@ -241274,6 +246170,8 @@ self: {
        pname = "split";
        version = "0.2.3.4";
        sha256 = "0ahzdjcxw5wywr3w4msspia99k6fkckddam1m5506h4z9h8fa7r7";
+       revision = "1";
+       editedCabalFile = "06pmlvyrz4rr7rsrghpyrdypprphm9522rvnz4l3i8333n4pb304";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base QuickCheck ];
        description = "Combinator library for splitting lists";
@@ -241431,7 +246329,7 @@ self: {
          base directory extensible-exceptions filepath parsec
        ];
        description = "Spoon's utilities. Simple testing and nice looking error reporting.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -242098,7 +246996,7 @@ self: {
          temporary text time vty
        ];
        description = "text UI for scanning with SANE";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -242419,10 +247317,8 @@ self: {
      }:
      mkDerivation {
        pname = "stache";
-       version = "2.2.0";
-       sha256 = "09cfj8hs2249gqf0nrlv9b8vg8gmxabs7ndxasphxdd0rb1y3z3g";
-       revision = "3";
-       editedCabalFile = "1wjdn7qsrfnz2cqwx2pggi8ak3pj01zsmax14gvb8xsq4w9crdvx";
+       version = "2.2.1";
+       sha256 = "1vkvi9rrf15a8lbihvcmrslykby4qc4jmc5zaqm1ikxsid9x5704";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -242864,6 +247760,8 @@ self: {
        pname = "stack2cabal";
        version = "1.0.12";
        sha256 = "0424qz4fy8218a0zr8pw5kbaldrb3wddvsb87sjqbb4q5qcm7rj7";
+       revision = "1";
+       editedCabalFile = "12i5fnjf393jnfqq1qchfd0bpa0isj4j0bzs14wp80s7sh8f10kz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -243308,6 +248206,8 @@ self: {
        ];
        description = "Program to fold GHC prof files into flamegraph input";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "stacked-dag" = callPackage
@@ -243341,6 +248241,24 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "staged-gg" = callPackage
+    ({ mkDerivation, base, containers, generic-deriving
+     , template-haskell, th-abstraction, th-lift
+     }:
+     mkDerivation {
+       pname = "staged-gg";
+       version = "0.1";
+       sha256 = "1apajw5ig7sax31i2zf842isnhk74x65hv9k8k3f6dhdxxg2dha4";
+       libraryHaskellDepends = [
+         base containers generic-deriving template-haskell th-abstraction
+         th-lift
+       ];
+       description = "GHC.Generics style staged generics";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "stagen" = callPackage
     ({ mkDerivation, aeson, base, base-compat, blaze-html, bytestring
      , data-default, directory, feed, filemanip, json-feed, lucid
@@ -243662,8 +248580,6 @@ self: {
        ];
        description = "Simple State-like monad transformer with saveable and restorable state";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "statethread" = callPackage
@@ -243837,7 +248753,7 @@ self: {
        sha256 = "0b6y8yi0cfisi58pxxx1gnd1vab2i8f5wb3gzv1dfsxx5hl6jlwf";
        libraryHaskellDepends = [ base MissingH ];
        description = "Reusable static analysis interfaces and modules";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "statistics" = callPackage
@@ -243963,7 +248879,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base statistics text vector ];
        description = "command line statistics";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -243980,7 +248896,7 @@ self: {
          base bytestring monad-control mtl network random
        ];
        description = "StatsD API";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -244237,7 +249153,7 @@ self: {
          aeson base base64-bytestring binary bytestring split text
        ];
        description = "Parse Structured Test Data Format (STDF)";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -244365,8 +249281,8 @@ self: {
        pname = "step-function";
        version = "0.2";
        sha256 = "1mg7zqqs32zdh1x1738kk0yydyksbhx3y3x8n31f7byk5fvzqq6j";
-       revision = "4";
-       editedCabalFile = "0zxjrsa54g65p7kf5mfpjb897d1add2dfp5dm4xfs5321rs31knv";
+       revision = "5";
+       editedCabalFile = "03xg6n7dyz73y3llbbahnlh46xfy2iq29s1jwjp22qxd4z6xndsa";
        libraryHaskellDepends = [
          base base-compat-batteries containers deepseq QuickCheck
        ];
@@ -244576,8 +249492,7 @@ self: {
        ];
        description = "Containers for STM";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "stm-delay" = callPackage
@@ -244631,8 +249546,8 @@ self: {
      }:
      mkDerivation {
        pname = "stm-hamt";
-       version = "1.2.0.4";
-       sha256 = "0hlzi1zg58mgnb77982hkssm86ds66fs5nf1g2hcjjbjawchx3mj";
+       version = "1.2.0.6";
+       sha256 = "15jqj31h9ff4g2k3sq35nm122sy0hqapxf4fm5vlkfh33zdn28di";
        libraryHaskellDepends = [
          base deferred-folds focus hashable list-t primitive
          primitive-extras transformers
@@ -244647,8 +249562,6 @@ self: {
        ];
        description = "STM-specialised Hash Array Mapped Trie";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stm-incremental" = callPackage
@@ -244716,7 +249629,7 @@ self: {
        libraryHaskellDepends = [ base mtl process stm unix ];
        testHaskellDepends = [ base QuickCheck stm ];
        description = "Simple STM Promises for IO computations and external processes";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -244836,7 +249749,7 @@ self: {
          base Chart Chart-cairo containers mtl random
        ];
        description = "Monadic composition of probabilistic functions and sampling";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -245088,8 +250001,8 @@ self: {
      }:
      mkDerivation {
        pname = "store";
-       version = "0.7.9";
-       sha256 = "189ygrm1ycyyklh77a9vhdvw86gbhjba0kl8kj7z1b79sw8q4v4g";
+       version = "0.7.10";
+       sha256 = "0026bjff7nsw23i1l5427qnvw69ncbii5s2q1nshkrs1nrspb0i2";
        libraryHaskellDepends = [
          array async base base-orphans base64-bytestring bifunctors
          bytestring containers contravariant cryptohash deepseq directory
@@ -245234,7 +250147,7 @@ self: {
          unordered-containers vector
        ];
        description = "Client for Stratum protocol";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -245585,8 +250498,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-cassava";
-       version = "0.1.0.1";
-       sha256 = "0dr58azgyw7ihxrabva7fh0yafq2kx12yvap4jl6ljnlwvcapa5i";
+       version = "0.2.0.0";
+       sha256 = "07mlhnn2k8zdgc5lrv0icyr4nn83dc0grywr5q284y64irix6grl";
        libraryHaskellDepends = [
          base bytestring cassava mtl streaming streaming-bytestring
          transformers
@@ -245760,6 +250673,18 @@ self: {
        broken = true;
      }) {};
 
+  "streaming-nonempty" = callPackage
+    ({ mkDerivation, base, hspec, streaming }:
+     mkDerivation {
+       pname = "streaming-nonempty";
+       version = "0.1.0.0";
+       sha256 = "0ykw92p2v8v0dlq68733wyh211dh7cd8s3iirnkbnabm0vyc20y6";
+       libraryHaskellDepends = [ base streaming ];
+       testHaskellDepends = [ base hspec streaming ];
+       description = "Add support for non empty streams to Streaming lib";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "streaming-osm" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers
      , resourcet, streaming, streaming-attoparsec, streaming-bytestring
@@ -245961,10 +250886,10 @@ self: {
      }:
      mkDerivation {
        pname = "streamly";
-       version = "0.7.2";
-       sha256 = "007i3rfza0v8zy34lq9ipq2biarg82prmd1vxr5f2zz5xln37wrm";
+       version = "0.7.3";
+       sha256 = "11bjyyqc745igw7122284fjph0922l56jddnhfy5h7w84nj35ck3";
        revision = "1";
-       editedCabalFile = "15fyfvf0g2l678426fz91fqf3qgi44dagqdxh6i6am3vh0nvvg1d";
+       editedCabalFile = "1fbhk59p5hjkxf4dnghs8wb70pyv0kx6br5sf4csf4vk1rkqyljw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -246080,6 +251005,8 @@ self: {
        ];
        description = "Folder watching as a Streamly stream";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "streamly-lmdb" = callPackage
@@ -246130,8 +251057,8 @@ self: {
        pname = "streamproc";
        version = "1.6.2";
        sha256 = "1wl44n4nav4h203mzfdf1bd5nh4v23dib54lvxka1rl3zymgyvp7";
-       revision = "1";
-       editedCabalFile = "19c51gks028x8mnywkx1nz0s6bwn2mxs5ddmaj2q8n9l5pvfkcgs";
+       revision = "2";
+       editedCabalFile = "1j3frdzhlvmggqq07b7kiz6h7mim64n2frsb2d3hzsjd7jym526j";
        libraryHaskellDepends = [ base ];
        description = "Stream Processer Arrow";
        license = lib.licenses.bsd3;
@@ -246333,8 +251260,8 @@ self: {
     ({ mkDerivation, base, lens, strict }:
      mkDerivation {
        pname = "strict-lens";
-       version = "0.4.0.1";
-       sha256 = "0hwrbrjhgkh83474mci3ipg8nqims7b18w7i6xajz3xxq3cik5vn";
+       version = "0.4.0.2";
+       sha256 = "1dsgr53q0sdivrxc7jmbqjd65hav9zwjqc8zfbyybkr1ww17bhf5";
        libraryHaskellDepends = [ base lens strict ];
        description = "Lenses for types in strict package";
        license = lib.licenses.bsd3;
@@ -246363,6 +251290,8 @@ self: {
        pname = "strict-optics";
        version = "0.4.0.1";
        sha256 = "1x4p2fksljd9xfy4mxdz5pxcskxz2qg2ma28d6y4j2v4728r0x8a";
+       revision = "1";
+       editedCabalFile = "1rlkslqkicw7zzmy88kvbnlcyyx2afm3vs8y51gazz1bs0b73p0f";
        libraryHaskellDepends = [ base optics-core strict ];
        description = "Optics for types in strict package";
        license = lib.licenses.bsd3;
@@ -246395,6 +251324,19 @@ self: {
        broken = true;
      }) {};
 
+  "strict-tuple-lens_0_2" = callPackage
+    ({ mkDerivation, base, lens, strict-tuple }:
+     mkDerivation {
+       pname = "strict-tuple-lens";
+       version = "0.2";
+       sha256 = "02pagvg6rz0bdkxvikv7ac7766b329j84jbd42cjqr193wjphqd4";
+       libraryHaskellDepends = [ base lens strict-tuple ];
+       description = "Optics for the `strict-tuple` library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "strict-types" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, deepseq
      , hashable, text, unordered-containers, vector
@@ -246548,10 +251490,8 @@ self: {
      }:
      mkDerivation {
        pname = "string-interpolate";
-       version = "0.3.0.2";
-       sha256 = "1dkw4q2fxnr7gnish45lryxwrmdy93ffa1010qdnjlnz5m3dxbyl";
-       revision = "1";
-       editedCabalFile = "1rwylfxa821260mxfsr6l6grcyz7gxk18mvjijfhg5sm53v4c1ka";
+       version = "0.3.1.0";
+       sha256 = "0hyrcndhwd06phlmykyz7bklj5gnj4amcn11ckfvw0iws3sksl8d";
        libraryHaskellDepends = [
          base bytestring haskell-src-exts haskell-src-meta split
          template-haskell text text-conversions utf8-string
@@ -246644,8 +251584,6 @@ self: {
        ];
        description = "A library for generating random string from a regular experession";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "string-similarity" = callPackage
@@ -246843,8 +251781,8 @@ self: {
     ({ mkDerivation, base, bytestring, text }:
      mkDerivation {
        pname = "stripe-concepts";
-       version = "1.0.2.4";
-       sha256 = "0n4q3hsgqrqypmkkim8mcksdlljgldr908wqxlcz6k1wsv9klyc6";
+       version = "1.0.2.6";
+       sha256 = "0vz8kiwg9q27jhr6gfvhqy9gykrl3zgy3m2ldk1np4v7y4fg7906";
        libraryHaskellDepends = [ base bytestring text ];
        description = "Types for the Stripe API";
        license = lib.licenses.mit;
@@ -246885,8 +251823,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-hs";
-       version = "0.2.1.0";
-       sha256 = "1f8snldj183yz20f50kkwg6kqcr5zigp3n9k32hxa6dah8xvvnh1";
+       version = "0.3.0.0";
+       sha256 = "0hcni1fqvw2p7jyvl5nmaxp5dhp52dqyp4x3wk8i2j3ix4zjn6xi";
        libraryHaskellDepends = [
          aeson base bytestring casing cpphs cryptonite http-client
          http-types memory safe servant servant-client stripe-servant text
@@ -246951,8 +251889,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-scotty";
-       version = "1.0.0.6";
-       sha256 = "1x7dsk2m66ka8qd76mj5aww52rjs0b49vx1lws5bl2xl0asyb03v";
+       version = "1.0.0.8";
+       sha256 = "1r91lf3yjivfcxdnqy1ayfzs2ckszyx8x6f6fn8rjiz0gfv1v6hn";
        libraryHaskellDepends = [
          aeson base bytestring http-types scotty stripe-concepts
          stripe-signature text unordered-containers
@@ -246969,8 +251907,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-servant";
-       version = "0.2.1.0";
-       sha256 = "0vvzf4wh2d9bv5af2al2hdgvy5ds7v7p8w14l018cn3f3iynwh3f";
+       version = "0.3.0.0";
+       sha256 = "0zk9pbf498liq9sxqsb0hfk6w3jv03m4amlqqxr4dh3l98i03cli";
        libraryHaskellDepends = [
          aeson base casing http-api-data servant text time
          unordered-containers vector
@@ -246985,8 +251923,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-signature";
-       version = "1.0.0.6";
-       sha256 = "0lp3fli9g5yvlxy8f0md2d3wv6z45mw0929b8c0y2xkcsdjvpp5l";
+       version = "1.0.0.8";
+       sha256 = "0cybjsvzknsldqhf7fjd4ar2qjyym43x2ymmgw01f9a1ixyaxgmn";
        libraryHaskellDepends = [
          base base16-bytestring bytestring cryptonite memory stripe-concepts
          text
@@ -246994,6 +251932,8 @@ self: {
        testHaskellDepends = [ base bytestring text ];
        description = "Verification of Stripe webhook signatures";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "stripe-tests" = callPackage
@@ -247019,8 +251959,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-wreq";
-       version = "1.0.1.6";
-       sha256 = "1lwwyzj4gi6rav8al3mkld4vq8rdvi4ir1y51nywflkcfiqjjjsx";
+       version = "1.0.1.8";
+       sha256 = "1km0h94d1clgba0yy520yx54axdkf4xl5p5hnmn8ghg40r0pax73";
        libraryHaskellDepends = [
          aeson base bytestring lens stripe-concepts text
          unordered-containers wreq
@@ -247069,8 +252009,8 @@ self: {
      }:
      mkDerivation {
        pname = "strive";
-       version = "5.0.13";
-       sha256 = "137kqb3lvqyzvarcgvc8ifphj2927z01pcl752sna9vcvj7q7wp6";
+       version = "5.0.14";
+       sha256 = "0a9hnrl7ww92ki1z4qa8m2smxlc0gq2a856w706ayzzfkma5dxil";
        libraryHaskellDepends = [
          aeson base bytestring data-default gpolyline http-client
          http-client-tls http-types template-haskell text time transformers
@@ -247124,22 +252064,19 @@ self: {
      }) {};
 
   "structs" = callPackage
-    ({ mkDerivation, base, Cabal, cabal-doctest, deepseq, directory
-     , doctest, filepath, ghc-prim, parallel, primitive, QuickCheck
+    ({ mkDerivation, base, deepseq, ghc-prim, primitive, QuickCheck
      , tasty, tasty-hunit, tasty-quickcheck, template-haskell
      , th-abstraction
      }:
      mkDerivation {
        pname = "structs";
-       version = "0.1.4";
-       sha256 = "0sjrih706bpibd1ygfjz76gabampffwqvn0hnvmxa9b9vzwdgqzr";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.1.5";
+       sha256 = "1qsj5w6g0lcvbrm0zs37f1yk3im1swhnb4j1mbpr3fyc3zswwbjf";
        libraryHaskellDepends = [
          base deepseq ghc-prim primitive template-haskell th-abstraction
        ];
        testHaskellDepends = [
-         base directory doctest filepath parallel primitive QuickCheck tasty
-         tasty-hunit tasty-quickcheck
+         base primitive QuickCheck tasty tasty-hunit tasty-quickcheck
        ];
        description = "Strict GC'd imperative object-oriented programming with cheap pointers";
        license = lib.licenses.bsd3;
@@ -247162,7 +252099,7 @@ self: {
          testing-feat
        ];
        description = "Instantiate structural induction schemas for algebraic data types";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -247189,10 +252126,8 @@ self: {
      }:
      mkDerivation {
        pname = "structured";
-       version = "0.1";
-       sha256 = "0xm0m7jxwrbz8jgcn2dl5vhlz0gcg7wxcbbgaqidm2msmnc6fqww";
-       revision = "2";
-       editedCabalFile = "0l9ls0r1v5bjcznjd0jcpml8vpr4iq8shp4dm4jkv96i3x277gdv";
+       version = "0.1.0.1";
+       sha256 = "1ai760kzx0y901zwimsgiwbms88cyhg9mblhpqr0813dxqy31d5f";
        libraryHaskellDepends = [
          aeson array base base16-bytestring binary bytestring containers
          hashable scientific tagged text time-compat transformers
@@ -247208,26 +252143,6 @@ self: {
      }:
      mkDerivation {
        pname = "structured-cli";
-       version = "2.6.0.0";
-       sha256 = "1g0yq5kxidmh4x0izvspafhhir64krw986s0a5rkbvkjk7ahvm7y";
-       revision = "1";
-       editedCabalFile = "0gmviyrihzpm27s91ygs5fzdawk33aqw74dyasn354kfczq5vza7";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base data-default exceptions haskeline mtl split transformers
-       ];
-       executableHaskellDepends = [ base data-default mtl split ];
-       description = "Application library for building interactive console CLIs";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "structured-cli_2_7_0_1" = callPackage
-    ({ mkDerivation, base, data-default, exceptions, haskeline, mtl
-     , split, transformers
-     }:
-     mkDerivation {
-       pname = "structured-cli";
        version = "2.7.0.1";
        sha256 = "18l4jy328djmrwhmcmli73592qlld85fwbwby95mghwdbdy2i68g";
        isLibrary = true;
@@ -247238,7 +252153,6 @@ self: {
        executableHaskellDepends = [ base data-default mtl split ];
        description = "Application library for building interactive console CLIs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "structured-haskell-mode" = callPackage
@@ -247475,8 +252389,8 @@ self: {
        pname = "stylist";
        version = "2.4.0.0";
        sha256 = "0nkz6jnfx7si473lz0b907lq6zjpw2apbcph61s2aw44j5zgdg96";
-       revision = "1";
-       editedCabalFile = "18amb2sbp4qh2lszc21vpvnyqsbsy7s9396ivkcw7dmg7hljvk9a";
+       revision = "2";
+       editedCabalFile = "104rdqv33v54sj6yf8438sk7d0x0964b3gr1cj42qlxa8wl2idx0";
        libraryHaskellDepends = [
          async base css-syntax hashable network-uri regex-tdfa text
          unordered-containers
@@ -247596,8 +252510,8 @@ self: {
      }:
      mkDerivation {
        pname = "subcategories";
-       version = "0.1.0.0";
-       sha256 = "0rrvlwfyjmv4wpvm9dbr4vxbmlr24pzdfwvz3hkshgxnrc58gslw";
+       version = "0.1.1.0";
+       sha256 = "09ri226jxcig4f3jxcjh63skvv48myis58ffj7zrmr12sfzkb279";
        libraryHaskellDepends = [
          base containers data-default foldl hashable mono-traversable
          pointed primitive reflection semialign template-haskell text these
@@ -247661,11 +252575,22 @@ self: {
          base containers lens mtl parsec pretty template-haskell
        ];
        description = "Toolchain of subleq computer";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
 
+  "sublists" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "sublists";
+       version = "0.1.1.0";
+       sha256 = "1k08cpidl5r4sj64vc1a9fcln78k31z7v8gnh579fxa5lrp4ylnr";
+       libraryHaskellDepends = [ base ];
+       description = "Allows to split lists into sublists with some patterns by quantity";
+       license = lib.licenses.mit;
+     }) {};
+
   "submark" = callPackage
     ({ mkDerivation, base, cmark, hlint, hspec, optparse-applicative
      , template-haskell, text
@@ -247684,7 +252609,7 @@ self: {
          base cmark hlint hspec template-haskell text
        ];
        description = "Extract a part from CommonMark/Markdown docs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -247715,7 +252640,7 @@ self: {
          base bytestring cassava containers optparse-generic text vector
        ];
        description = "Subsample data";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -247787,7 +252712,7 @@ self: {
        libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [ base containers hspec ];
        description = "Helps when going \"seed values\" -> alternatives and optional -> answers";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "success" = callPackage
@@ -247809,8 +252734,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "successors";
-       version = "0.1.0.1";
-       sha256 = "1m5flnn2rswc3380dccnfnhmyjp1dqr23dljd0515jxawbgjkzmg";
+       version = "0.1.0.2";
+       sha256 = "0q6sfxxzc0ws1iky79iyx7sf7l3jqdwxz9ngsi11km1bp7rd8ycw";
        libraryHaskellDepends = [ base ];
        description = "An applicative functor to manage successors";
        license = lib.licenses.mit;
@@ -247851,7 +252776,7 @@ self: {
        libraryHaskellDepends = [ base vector ];
        executableHaskellDepends = [ base HUnit ];
        description = "n log n implementation of suffix array";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -248451,6 +253376,8 @@ self: {
        ];
        description = "Integration to use sv with cassava's parser";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sv-core" = callPackage
@@ -248478,6 +253405,8 @@ self: {
        ];
        description = "Encode and decode separated values (CSV, PSV, ...)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sv-svfactor" = callPackage
@@ -248534,15 +253463,13 @@ self: {
        pname = "svg-builder";
        version = "0.1.1";
        sha256 = "1k420f497lzkymmxin88ql6ib8dziic43avykv31yq65rgrf7l2g";
-       revision = "2";
-       editedCabalFile = "100nmkgcm1ncv4mkr1xcsa7bb3z6zx0lfayk8innd4hm62xsvhj3";
+       revision = "3";
+       editedCabalFile = "1zc7shja5i63rn7kd9mnq2m052qhp7nh44qy8qp93dm64v9m9pi2";
        libraryHaskellDepends = [
          base blaze-builder bytestring hashable text unordered-containers
        ];
        description = "DSL for building SVG";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "svg-builder-fork" = callPackage
@@ -248571,6 +253498,8 @@ self: {
        pname = "svg-tree";
        version = "0.6.2.4";
        sha256 = "1hhs2w6fmd1m6768p1bfhj6vi4br4ray0g9f1hv8g19pqgip3r2c";
+       revision = "1";
+       editedCabalFile = "12askkxmrzjkssnfa8m6xmdwdxk6v3z26jc63jcgb3q8snxb0hg1";
        libraryHaskellDepends = [
          attoparsec base bytestring containers JuicyPixels lens linear mtl
          scientific text transformers vector xml
@@ -248665,7 +253594,7 @@ self: {
        sha256 = "19fr1lzp8j0hmqqy1hyx85gmkgxc2hy8cz5zv6jlvni0qqibiksz";
        libraryHaskellDepends = [ array base ];
        description = "A support vector machine written in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "svm-light-utils" = callPackage
@@ -248867,7 +253796,7 @@ self: {
          random-shuffle readline system-fileio system-filepath text
        ];
        description = "Clojure without alphanumerics";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -248948,7 +253877,7 @@ self: {
          test-framework test-framework-hunit text time
        ];
        description = "A semantic web toolkit";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
      }) {};
 
   "swiss-ephemeris" = callPackage
@@ -248956,13 +253885,54 @@ self: {
      }:
      mkDerivation {
        pname = "swiss-ephemeris";
-       version = "1.2.1.0";
-       sha256 = "0mbq3mzplxnnpr1zqbgg6k1ggh0fw4xlzvyg74rid863dxcldjpm";
+       version = "1.2.1.1";
+       sha256 = "1k584gv36xgj87qbrvcl5w9v8z2k7y4csmz737d5r2a8mvf8sf33";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base directory hspec QuickCheck ];
        testToolDepends = [ hspec-discover ];
        description = "Haskell bindings for the Swiss Ephemeris C library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "swisstable" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, hashable, hashtables
+     , primitive, QuickCheck, tasty, tasty-discover, tasty-hunit, vector
+     , weigh
+     }:
+     mkDerivation {
+       pname = "swisstable";
+       version = "0.1.0.3";
+       sha256 = "1d1vk1j8r2lwxkx2l4l1fmm8z9ascp7hq52al7qjn4bir177b92q";
+       libraryHaskellDepends = [ base hashable primitive vector ];
+       testHaskellDepends = [
+         base hashable primitive QuickCheck tasty tasty-discover tasty-hunit
+         vector
+       ];
+       testToolDepends = [ tasty-discover ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq hashable hashtables primitive QuickCheck
+         vector weigh
+       ];
+       description = "SwissTable hash map";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "switch" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, GPipe, GPipe-GLFW
+     , hidapi, linear
+     }:
+     mkDerivation {
+       pname = "switch";
+       version = "0.1.0.0";
+       sha256 = "169dvy7vqbjza24456azdmjb8yyrkr18z04azwhkl08b9wx9wvz5";
+       libraryHaskellDepends = [ attoparsec base bytestring hidapi ];
+       testHaskellDepends = [
+         attoparsec base bytestring GPipe GPipe-GLFW hidapi linear
+       ];
+       description = "Nintendo Switch Controller Library";
+       license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249064,28 +254034,135 @@ self: {
   "sydtest" = callPackage
     ({ mkDerivation, async, base, bytestring, containers, Diff, dlist
      , envparse, MonadRandom, mtl, optparse-applicative, path, path-io
-     , pretty-show, QuickCheck, quickcheck-io, rainbow, random-shuffle
-     , safe, split, stm, sydtest-discover, text, yaml
+     , pretty-show, QuickCheck, quickcheck-io, random-shuffle, safe
+     , safe-coloured-text, split, stm, sydtest-discover, text, yaml
      , yamlparse-applicative
      }:
      mkDerivation {
        pname = "sydtest";
-       version = "0.0.0.0";
-       sha256 = "0ii5fmhksfhl7a6a8bkqih4y20q8964879x3fb5nzv6dah5qq7x5";
+       version = "0.1.0.0";
+       sha256 = "1r5p9vai0krzcnwxyicw9b00vzdqdm8zpj70y8snn4mdxxvhvyvq";
        libraryHaskellDepends = [
          async base bytestring containers Diff dlist envparse MonadRandom
          mtl optparse-applicative path path-io pretty-show QuickCheck
-         quickcheck-io rainbow random-shuffle safe split text yaml
-         yamlparse-applicative
+         quickcheck-io random-shuffle safe safe-coloured-text split text
+         yaml yamlparse-applicative
+       ];
+       testHaskellDepends = [
+         base bytestring path path-io QuickCheck safe-coloured-text stm text
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "A modern testing framework for Haskell with good defaults and advanced testing features";
+       license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "sydtest-discover" = callPackage
+    ({ mkDerivation, base, filepath, optparse-applicative, path
+     , path-io
+     }:
+     mkDerivation {
+       pname = "sydtest-discover";
+       version = "0.0.0.0";
+       sha256 = "1kyjcvi9paax0hi05d2qab8pdkvvabq8s0gl772qiq8rhmrmazsx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base filepath optparse-applicative path path-io
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Automatic test suite discovery for sydtest";
+       license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "sydtest-persistent-sqlite" = callPackage
+    ({ mkDerivation, base, monad-logger, mtl, persistent
+     , persistent-sqlite, persistent-template, sydtest, sydtest-discover
+     }:
+     mkDerivation {
+       pname = "sydtest-persistent-sqlite";
+       version = "0.0.0.0";
+       sha256 = "0p9xy2pdjnzd61dadvrzrnnxxz04xm0ypn2h1ssmrilfglic80iz";
+       libraryHaskellDepends = [
+         base monad-logger mtl persistent persistent-sqlite
+         persistent-template sydtest
+       ];
+       testHaskellDepends = [
+         base persistent persistent-sqlite persistent-template sydtest
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "A persistent-sqlite companion library for sydtest";
+       license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "sydtest-servant" = callPackage
+    ({ mkDerivation, base, http-client, servant, servant-client
+     , servant-server, stm, sydtest, sydtest-discover, sydtest-wai
+     }:
+     mkDerivation {
+       pname = "sydtest-servant";
+       version = "0.0.0.0";
+       sha256 = "147v5s10qvpp67aq7c240rsc4f356hvznc5gb538slh03d5vas4j";
+       libraryHaskellDepends = [
+         base http-client servant servant-client servant-server sydtest
+         sydtest-wai
+       ];
+       testHaskellDepends = [
+         base servant servant-client servant-server stm sydtest
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "A servant companion library for sydtest";
+       license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "sydtest-wai" = callPackage
+    ({ mkDerivation, base, http-client, http-types, stm, sydtest
+     , sydtest-discover, wai, warp
+     }:
+     mkDerivation {
+       pname = "sydtest-wai";
+       version = "0.0.0.0";
+       sha256 = "01fqys32zj1rg9ciq04l7d4av3i1ynw3yinkgc84c3ia330i98ws";
+       libraryHaskellDepends = [ base http-client sydtest wai warp ];
+       testHaskellDepends = [
+         base http-client http-types stm sydtest wai
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "A wai companion library for sydtest";
+       license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "sydtest-yesod" = callPackage
+    ({ mkDerivation, base, blaze-builder, bytestring, case-insensitive
+     , conduit, containers, cookie, exceptions, http-client, http-types
+     , monad-logger, mtl, persistent, persistent-sqlite
+     , persistent-template, pretty-show, QuickCheck, resourcet, sydtest
+     , sydtest-discover, sydtest-persistent-sqlite, sydtest-wai, text
+     , time, wai, xml-conduit, yesod, yesod-core, yesod-form, yesod-test
+     }:
+     mkDerivation {
+       pname = "sydtest-yesod";
+       version = "0.0.0.0";
+       sha256 = "0mknn114q495f1bh829fi6c9gag58048c0m06yw0bkl0ikz32k67";
+       libraryHaskellDepends = [
+         base blaze-builder bytestring case-insensitive containers cookie
+         exceptions http-client http-types mtl pretty-show sydtest
+         sydtest-wai text time wai xml-conduit yesod-core yesod-test
        ];
        testHaskellDepends = [
-         base bytestring path path-io QuickCheck rainbow stm text
+         base bytestring conduit cookie http-client http-types monad-logger
+         mtl persistent persistent-sqlite persistent-template QuickCheck
+         resourcet sydtest sydtest-persistent-sqlite text yesod yesod-form
        ];
        testToolDepends = [ sydtest-discover ];
-       description = "An advanced modern testing framework for Haskell with good defaults and advanced testing features";
+       description = "A yesod companion library for sydtest";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
-     }) {sydtest-discover = null;};
+     }) {};
 
   "syfco" = callPackage
     ({ mkDerivation, array, base, containers, convertible, directory
@@ -249176,7 +254253,7 @@ self: {
          text transformers
        ];
        description = "Library for Typed Tagless-Final Higher-Order Composable DSL";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249199,7 +254276,7 @@ self: {
          tasty tasty-golden text time transformers treeseq
        ];
        description = "Library for reading and writing Atom";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249212,7 +254289,7 @@ self: {
        sha256 = "1yvlvsr38b1ydplpz1jldy816sngmic273iajcmhr73rlyzk5y3d";
        libraryHaskellDepends = [ base ];
        description = "Basic symantics for writing Embedded Domain-Specific Languages (EDSL)";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "symantic-cli" = callPackage
@@ -249228,7 +254305,7 @@ self: {
          transformers
        ];
        description = "Symantics for parsing and documenting a CLI";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249246,7 +254323,7 @@ self: {
          base containers tasty tasty-hunit text transformers
        ];
        description = "Document symantics";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "symantic-grammar" = callPackage
@@ -249262,7 +254339,7 @@ self: {
          base megaparsec tasty tasty-hunit text transformers
        ];
        description = "Library for symantic grammars";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "symantic-http" = callPackage
@@ -249278,7 +254355,7 @@ self: {
          text transformers
        ];
        description = "Symantic combinators for deriving clients or a server from an HTTP API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249298,7 +254375,7 @@ self: {
          symantic-http text time transformers word8
        ];
        description = "symantic-http applied to the derivation of HTTP clients";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249326,7 +254403,7 @@ self: {
          time transformers wai wai-extra warp
        ];
        description = "Demo for symantic-http and its companion libraries";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249349,7 +254426,7 @@ self: {
          symantic-http text time transformers word8
        ];
        description = "Streaming support through pipes for symantic-http";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249369,7 +254446,7 @@ self: {
          text time transformers wai warp word8
        ];
        description = "symantic-http applied to the derivation of HTTP servers";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249398,7 +254475,7 @@ self: {
          transformers wai wai-extra warp
        ];
        description = "Test symantic-http and its companion libraries";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249422,7 +254499,7 @@ self: {
          tasty-hunit text transformers
        ];
        description = "Symantics for common types";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249472,7 +254549,7 @@ self: {
          symantic-base tasty tasty-golden text transformers treeseq
        ];
        description = "Library for reading, validating and writing XML";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -249628,7 +254705,7 @@ self: {
          ansi-terminal base monad-loops random
        ];
        description = "Minimal implementation(s) of the classic electronic memory game";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "sync" = callPackage
@@ -250320,6 +255397,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "system-info_0_5_2" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "system-info";
+       version = "0.5.2";
+       sha256 = "0k1mc0axh3iwy3d7svxl31b629c9s482bq7mshhs6glh9pv6cg74";
+       libraryHaskellDepends = [ base ];
+       description = "Get the name of the operating system";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "system-inotify" = callPackage
     ({ mkDerivation, base, bytestring }:
      mkDerivation {
@@ -250516,6 +255605,7 @@ self: {
        testHaskellDepends = [ base network unix ];
        description = "Systemd facilities (Socket activation, Notify)";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "systemstats" = callPackage
@@ -251625,8 +256715,8 @@ self: {
        pname = "tar";
        version = "0.5.1.1";
        sha256 = "1ppim7cgmn7ng8zbdrwkxhhizc30h15h1c9cdlzamc5jcagl915k";
-       revision = "2";
-       editedCabalFile = "131f369a2vjzr26r7f2c2p534xvyw0s7cvgvih2ck56lqha58wbs";
+       revision = "3";
+       editedCabalFile = "0qjhii1lhvqav3pnm6z5ly40d9gwp7p3y4g7k26bhxgy31bx1pll";
        libraryHaskellDepends = [
          array base bytestring containers deepseq directory filepath time
        ];
@@ -251700,11 +256790,10 @@ self: {
     ({ mkDerivation, base, mmorph, mtl }:
      mkDerivation {
        pname = "tardis";
-       version = "0.4.1.0";
-       sha256 = "1nd54pff1n6ds5jqa98qrby06d3ziw2rhb3j5lvw4mahsynsnwp6";
-       revision = "1";
-       editedCabalFile = "1wp6vp90g19hv8r2l83ava7qxf0933gb7ni2zgyfa66vlvxvhibv";
+       version = "0.4.3.0";
+       sha256 = "1ffmpdvnmr1s3rh3kpqqscsbz2rq4s7k8nfc93zw9m4mchg37waw";
        libraryHaskellDepends = [ base mmorph mtl ];
+       testHaskellDepends = [ base ];
        description = "Bidirectional state monad transformer";
        license = lib.licenses.bsd3;
      }) {};
@@ -251857,8 +256946,6 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A command-line kanban board/task manager";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "taskpool" = callPackage
@@ -251888,8 +256975,8 @@ self: {
        pname = "taskwarrior";
        version = "0.3.0.0";
        sha256 = "1h24d799q1s6b36hd40bxa4c9m1izkgh6j7p2jv1p6cxngz28ni0";
-       revision = "3";
-       editedCabalFile = "1dma42d3fkiqphya8ksqy55nbyqk45hm65rrnj2y5sn2my5vncq9";
+       revision = "4";
+       editedCabalFile = "1rwlyw01i07xryhja4h7jadlj5rdznmb1jwl74qllkrhrvqjfmrg";
        libraryHaskellDepends = [
          aeson base bytestring containers process random text time
          unordered-containers uuid
@@ -251905,23 +256992,6 @@ self: {
      }) {};
 
   "tasty" = callPackage
-    ({ mkDerivation, ansi-terminal, async, base, clock, containers, mtl
-     , optparse-applicative, stm, tagged, unbounded-delays, unix
-     , wcwidth
-     }:
-     mkDerivation {
-       pname = "tasty";
-       version = "1.2.3";
-       sha256 = "0qpn0avpw4w1qq5r2gwh2piipj0llqq6ylagr3xnqiraq6mhg8cc";
-       libraryHaskellDepends = [
-         ansi-terminal async base clock containers mtl optparse-applicative
-         stm tagged unbounded-delays unix wcwidth
-       ];
-       description = "Modern and extensible testing framework";
-       license = lib.licenses.mit;
-     }) {};
-
-  "tasty_1_4_1" = callPackage
     ({ mkDerivation, ansi-terminal, base, clock, containers, mtl
      , optparse-applicative, stm, tagged, unbounded-delays, unix
      , wcwidth
@@ -251936,7 +257006,6 @@ self: {
        ];
        description = "Modern and extensible testing framework";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tasty-ant-xml" = callPackage
@@ -251946,23 +257015,6 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-ant-xml";
-       version = "1.1.7";
-       sha256 = "01br1jqmin3kislw59rdsgl4pggdf8miwddifj654dllfgg148vg";
-       libraryHaskellDepends = [
-         base containers directory filepath generic-deriving ghc-prim mtl
-         stm tagged tasty transformers xml
-       ];
-       description = "Render tasty output to XML for Jenkins";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "tasty-ant-xml_1_1_8" = callPackage
-    ({ mkDerivation, base, containers, directory, filepath
-     , generic-deriving, ghc-prim, mtl, stm, tagged, tasty, transformers
-     , xml
-     }:
-     mkDerivation {
-       pname = "tasty-ant-xml";
        version = "1.1.8";
        sha256 = "0h9mllhw9cd0rn34xhj8grwmbny7z7hpd8qmp9lfcdj0s4qx9vx8";
        libraryHaskellDepends = [
@@ -251971,7 +257023,6 @@ self: {
        ];
        description = "Render tasty output to XML for Jenkins";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tasty-auto" = callPackage
@@ -252027,11 +257078,23 @@ self: {
     ({ mkDerivation, base, containers, deepseq, tasty }:
      mkDerivation {
        pname = "tasty-bench";
-       version = "0.2.1";
-       sha256 = "0gw0hlpkpwn7hpvwn9i8zqghrzjvhdrhr2q9y4r4ykhqv7y95zy3";
+       version = "0.2.3";
+       sha256 = "16273rxlvjh960mdlhkpggx8rbza1n18fxl9m9yi8dhkli4g0w6a";
+       libraryHaskellDepends = [ base containers deepseq tasty ];
+       description = "Featherlight benchmark framework";
+       license = lib.licenses.mit;
+     }) {};
+
+  "tasty-bench_0_2_5" = callPackage
+    ({ mkDerivation, base, containers, deepseq, tasty }:
+     mkDerivation {
+       pname = "tasty-bench";
+       version = "0.2.5";
+       sha256 = "146i1vkp9008hik7qyi8m9qq3ij5kji84qscsf598rzjmjga7igd";
        libraryHaskellDepends = [ base containers deepseq tasty ];
        description = "Featherlight benchmark framework";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tasty-dejafu" = callPackage
@@ -252077,8 +257140,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-expected-failure";
-       version = "0.12.2";
-       sha256 = "0i97y723vi2f5z94ripli8jfzqk540w80cfab3prylbm9j3s7rb7";
+       version = "0.12.3";
+       sha256 = "0zlgxs24d54byfhvwdg85xk1572zpjs71bjlxxrxcvralrfcq1yb";
        libraryHaskellDepends = [ base tagged tasty unbounded-delays ];
        testHaskellDepends = [
          base hedgehog tasty tasty-golden tasty-hedgehog tasty-hunit
@@ -252124,17 +257187,18 @@ self: {
   "tasty-golden" = callPackage
     ({ mkDerivation, async, base, bytestring, containers, deepseq
      , directory, filepath, mtl, optparse-applicative, process, tagged
-     , tasty, tasty-hunit, temporary, text
+     , tasty, tasty-hunit, temporary, text, unix-compat
      }:
      mkDerivation {
        pname = "tasty-golden";
-       version = "2.3.3.2";
-       sha256 = "19dif84p71hks8czmaff6nlylsz34bqy0nki7mclr4ysawz1hdm9";
+       version = "2.3.4";
+       sha256 = "1nskavqgfxx1cw7q6c0cmizlwj54rnlv93yhgssaa77gv1nbvwpn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          async base bytestring containers deepseq directory filepath mtl
          optparse-applicative process tagged tasty temporary text
+         unix-compat
        ];
        testHaskellDepends = [
          base directory filepath process tasty tasty-hunit temporary
@@ -252143,28 +257207,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "tasty-golden_2_3_4" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, deepseq
-     , directory, filepath, mtl, optparse-applicative, process, tagged
-     , tasty, tasty-hunit, temporary, text, unix-compat
+  "tasty-grading-system" = callPackage
+    ({ mkDerivation, aeson, base, containers, directory, filepath
+     , generic-deriving, mtl, stm, tagged, tasty, tasty-hunit, text
      }:
      mkDerivation {
-       pname = "tasty-golden";
-       version = "2.3.4";
-       sha256 = "1nskavqgfxx1cw7q6c0cmizlwj54rnlv93yhgssaa77gv1nbvwpn";
-       isLibrary = true;
-       isExecutable = true;
+       pname = "tasty-grading-system";
+       version = "0.1.0.0";
+       sha256 = "1r72gbylmv466naxkqsf56wlkp5kzhvyq0w3k7g47hs1rlslllmp";
+       revision = "2";
+       editedCabalFile = "1kr1113k6a0d8yd51lvl1689wdbq2lb2fp44rl6jzdaizxvj360f";
        libraryHaskellDepends = [
-         async base bytestring containers deepseq directory filepath mtl
-         optparse-applicative process tagged tasty temporary text
-         unix-compat
+         aeson base containers directory filepath generic-deriving mtl stm
+         tagged tasty text
        ];
-       testHaskellDepends = [
-         base directory filepath process tasty tasty-hunit temporary
-       ];
-       description = "Golden tests support for tasty";
-       license = lib.licenses.mit;
+       testHaskellDepends = [ aeson base tasty tasty-hunit ];
+       description = "Grade your tasty-testsuite";
+       license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tasty-groundhog-converters" = callPackage
@@ -252195,6 +257256,8 @@ self: {
        pname = "tasty-hedgehog";
        version = "1.0.1.0";
        sha256 = "0vkmhqfydyxbvjjbwvwn0q1f1a2dl9wmhz0s7020frpzwqcjwm5b";
+       revision = "1";
+       editedCabalFile = "1yhj5jpgsr1mflsadf1fgaj8hh7y3dnfsg95m6bni7xprdnw6nf9";
        libraryHaskellDepends = [ base hedgehog tagged tasty ];
        testHaskellDepends = [
          base hedgehog tasty tasty-expected-failure
@@ -252235,6 +257298,8 @@ self: {
        pname = "tasty-hspec";
        version = "1.1.6";
        sha256 = "02s82ijs2ringqxsqbm7m3vcy5brmwxa617azxv0v2phi3rdkjvl";
+       revision = "1";
+       editedCabalFile = "0za15rg0szacxq9yfxxjzddr77ai7ng5827a20pj9dr5anjlnajj";
        libraryHaskellDepends = [
          base hspec hspec-core QuickCheck tasty tasty-quickcheck
          tasty-smallcheck
@@ -252259,6 +257324,8 @@ self: {
        ];
        description = "Render tasty output to HTML";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tasty-hunit" = callPackage
@@ -252538,33 +257605,6 @@ self: {
   "tasty-silver" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, bytestring, containers
      , deepseq, directory, filepath, mtl, optparse-applicative, process
-     , process-extras, regex-tdfa, semigroups, stm, tagged, tasty
-     , tasty-hunit, temporary, text, transformers
-     }:
-     mkDerivation {
-       pname = "tasty-silver";
-       version = "3.1.15";
-       sha256 = "07iiaw5q5jb6bxm5ys1s6bliw0qxsqp100awzxwkwfia03i1iz8z";
-       revision = "1";
-       editedCabalFile = "1pxwixy274w0z99zsx0aywcxcajnpgan3qri81mr1wb6afxrq8d6";
-       libraryHaskellDepends = [
-         ansi-terminal async base bytestring containers deepseq directory
-         filepath mtl optparse-applicative process process-extras regex-tdfa
-         semigroups stm tagged tasty temporary text
-       ];
-       testHaskellDepends = [
-         base directory filepath process tasty tasty-hunit temporary
-         transformers
-       ];
-       description = "A fancy test runner, including support for golden tests";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "tasty-silver_3_2_1" = callPackage
-    ({ mkDerivation, ansi-terminal, async, base, bytestring, containers
-     , deepseq, directory, filepath, mtl, optparse-applicative, process
      , process-extras, regex-tdfa, stm, tagged, tasty, tasty-hunit
      , temporary, text, transformers
      }:
@@ -252688,6 +257728,8 @@ self: {
        libraryHaskellDepends = [ base tasty ];
        description = "Test vector support for tasty";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tasty-th" = callPackage
@@ -252719,7 +257761,7 @@ self: {
          typed-process
        ];
        description = "Terminal user acceptance testing (UAT) via tmux";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "tasty-travis" = callPackage
@@ -252792,7 +257834,7 @@ self: {
          base dollaridoos profunctors semigroups
        ];
        description = "Types and combinators for taxes";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "tbox" = callPackage
@@ -253274,7 +258316,7 @@ self: {
          aeson base bytestring data-default http-conduit url utf8-string
        ];
        description = "Telegram API client";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -253494,7 +258536,7 @@ self: {
          regex-pcre split tagsoup text time transformers
        ];
        description = "IRC tellbot";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -253557,12 +258599,12 @@ self: {
        broken = true;
      }) {};
 
-  "template-haskell_2_16_0_0" = callPackage
+  "template-haskell_2_17_0_0" = callPackage
     ({ mkDerivation, base, ghc-boot-th, ghc-prim, pretty }:
      mkDerivation {
        pname = "template-haskell";
-       version = "2.16.0.0";
-       sha256 = "1nk1cv35szp80qkhbyh5gn6vn194zzl0wz186qrqdrdx3a9r9w4g";
+       version = "2.17.0.0";
+       sha256 = "0m9siwzxh11ny75sgcnfha8h1vcsc1mbn0jvqsal9sbskwss7bab";
        libraryHaskellDepends = [ base ghc-boot-th ghc-prim pretty ];
        description = "Support library for Template Haskell";
        license = lib.licenses.bsd3;
@@ -253646,7 +258688,7 @@ self: {
          unordered-containers uri-encode
        ];
        description = "Template Toolkit implementation for Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "template-yj" = callPackage
@@ -253672,7 +258714,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base mtl tagsoup uniplate ];
        description = "Make template from website";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -253906,7 +258948,7 @@ self: {
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Programmers' time tracker";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "tensor" = callPackage
@@ -253918,7 +258960,7 @@ self: {
        libraryHaskellDepends = [ base ghc-prim random vector ];
        testHaskellDepends = [ base QuickCheck random ];
        description = "A completely type-safe library for linear algebra";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -254267,7 +259309,7 @@ self: {
        libraryHaskellDepends = [ base ];
        executableHaskellDepends = [ base cli ];
        description = "Composable terminal colors";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "terminal" = callPackage
@@ -254470,6 +259512,28 @@ self: {
        broken = true;
      }) {};
 
+  "terraform-http-backend-pass" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, directory, mtl
+     , optparse-applicative, optparse-generic, servant, servant-server
+     , shelly, text, warp
+     }:
+     mkDerivation {
+       pname = "terraform-http-backend-pass";
+       version = "0.1.0.0";
+       sha256 = "0cw9vzj5kigz84r2nwxmvva5fmn9r6y78g40icwi1yaby9g9s809";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring directory mtl optparse-applicative
+         optparse-generic servant servant-server shelly text warp
+       ];
+       executableHaskellDepends = [ base ];
+       description = "HTTP backend to store terraform state using pass and git";
+       license = "AGPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "terrahs" = callPackage
     ({ mkDerivation, base, haskell98, old-time, terralib4c, translib }:
      mkDerivation {
@@ -254501,7 +259565,7 @@ self: {
          base containers mtl process syb transformers
        ];
        description = "A semantic parser for lojban";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -254568,8 +259632,8 @@ self: {
        pname = "test-framework";
        version = "0.8.2.0";
        sha256 = "1hhacrzam6b8f10hyldmjw8pb7frdxh04rfg3farxcxwbnhwgbpm";
-       revision = "5";
-       editedCabalFile = "18g92ajx3ghznd6k3ihj22ln29n676ailzwx3k0f1kj3bmpilnh6";
+       revision = "6";
+       editedCabalFile = "0wbq9wiaag69nsqxwijzhs5y1hb9kbpkp1x65dvx158cxp8i9w9r";
        libraryHaskellDepends = [
          ansi-terminal ansi-wl-pprint base containers hostname old-locale
          random regex-posix time xml
@@ -254680,8 +259744,8 @@ self: {
        pname = "test-framework-quickcheck2";
        version = "0.3.0.5";
        sha256 = "0ngf9vvby4nrdf1i7dxf5m9jn0g2pkq32w48xdr92n9hxka7ixn9";
-       revision = "2";
-       editedCabalFile = "1apgf91van2070m6jhj9w3h2xmr42r4kk0da9crq9994hd8zwny2";
+       revision = "3";
+       editedCabalFile = "0mglqfimla4vvv80mg08aj76zf4993wmngqlirh05h8i9nmgv6lh";
        libraryHaskellDepends = [
          base extensible-exceptions QuickCheck random test-framework
        ];
@@ -255088,8 +260152,8 @@ self: {
      }:
      mkDerivation {
        pname = "testcontainers";
-       version = "0.3.0.0";
-       sha256 = "0iibmfb5ps7i9d35pwj22a8dxn6b31hmdzswcdmbhdbkq06534hj";
+       version = "0.3.0.1";
+       sha256 = "01qqinmjy6mvfnszq2br459xfcx9jg5ycs0dfmpqg3wxfi826kx6";
        libraryHaskellDepends = [
          aeson aeson-optics base bytestring exceptions mtl network
          optics-core process resourcet tasty text unliftio-core
@@ -255117,8 +260181,6 @@ self: {
        ];
        description = "Functional Enumeration of Algebraic Types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "testing-type-modifiers" = callPackage
@@ -255233,7 +260295,7 @@ self: {
          base optparse-generic system-filepath text
        ];
        description = "Compile separate tex files with the same bibliography";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "tex2txt" = callPackage
@@ -255247,7 +260309,7 @@ self: {
        libraryHaskellDepends = [ base containers deepseq parsec ];
        executableHaskellDepends = [ base containers deepseq parsec ];
        description = "LaTeX to plain-text conversion";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -255269,7 +260331,7 @@ self: {
          temporary unix
        ];
        description = "View your latex output while editing";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -255281,8 +260343,8 @@ self: {
      }:
      mkDerivation {
        pname = "texmath";
-       version = "0.12.1.1";
-       sha256 = "04clgbbzva9yxzkn9nf176mqj1lrv64h13awk86l4lrcfbb7kgh1";
+       version = "0.12.2";
+       sha256 = "0lqib59cnvxvgj6k8wk74g5xbamf63q3z7wnwc8r2d56z05djvxy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -255293,7 +260355,7 @@ self: {
          utf8-string xml
        ];
        description = "Conversion between formats used to represent mathematics";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "texrunner" = callPackage
@@ -255384,19 +260446,24 @@ self: {
      }) {};
 
   "text-ascii" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, hashable, optics-core
-     , parsec, template-haskell, text
+    ({ mkDerivation, base, bytestring, case-insensitive, deepseq
+     , hashable, megaparsec, optics-core, optics-extra, template-haskell
+     , text
      }:
      mkDerivation {
        pname = "text-ascii";
-       version = "1.0.0";
-       sha256 = "1mwm3ss54c927rdj8dlfw7v2l0maz12mkxb5ss3g1ngdkiwd0bsx";
+       version = "1.0.1";
+       sha256 = "0clibcn3g72hxjhcsnb7ziw35ald5zqkql5b8mf9lpjpx94hii65";
+       revision = "1";
+       editedCabalFile = "0qc1in7i9i22hyd440g3bra74ryz26z8c2bcxdbr91hfjzj4n3g3";
        libraryHaskellDepends = [
-         base bytestring deepseq hashable optics-core parsec
-         template-haskell text
+         base bytestring case-insensitive deepseq hashable megaparsec
+         optics-core optics-extra template-haskell text
        ];
        description = "ASCII string and character processing";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "text-binary" = callPackage
@@ -255431,6 +260498,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "text-builder_0_6_6_2" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deferred-folds
+     , QuickCheck, quickcheck-instances, rerebase, tasty, tasty-hunit
+     , tasty-quickcheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "text-builder";
+       version = "0.6.6.2";
+       sha256 = "1cj6k27w9zm0g5wjfwyiwjljnqs9lz0zhw52nd0p7f1mhb9r80dw";
+       libraryHaskellDepends = [
+         base bytestring deferred-folds text transformers
+       ];
+       testHaskellDepends = [
+         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ criterion rerebase ];
+       description = "An efficient strict text builder";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "text-containers" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, ghc-prim
      , hashable, QuickCheck, quickcheck-instances, tasty
@@ -255450,7 +260539,7 @@ self: {
          tasty-quickcheck text text-short vector
        ];
        description = "Memory-efficient string-indexed container types";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -255603,7 +260692,7 @@ self: {
          test-framework-quickcheck2 test-framework-th text text-icu
        ];
        description = "Dealing with Strict Text in NFC normalization";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -255736,20 +260825,6 @@ self: {
     ({ mkDerivation, base, criterion, tasty, tasty-hunit, text }:
      mkDerivation {
        pname = "text-manipulate";
-       version = "0.2.0.1";
-       sha256 = "0bwxyjj3ll45srxhsp2ihikgqglvjc6m02ixr8xpvyqwkcfwgsg0";
-       libraryHaskellDepends = [ base text ];
-       testHaskellDepends = [ base tasty tasty-hunit text ];
-       benchmarkHaskellDepends = [ base criterion text ];
-       description = "Case conversion, word boundary manipulation, and textual subjugation";
-       license = "unknown";
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
-  "text-manipulate_0_3_0_0" = callPackage
-    ({ mkDerivation, base, criterion, tasty, tasty-hunit, text }:
-     mkDerivation {
-       pname = "text-manipulate";
        version = "0.3.0.0";
        sha256 = "0pmzp38m3r0k6ps97b1wqplxlgvvlaid09x53jl3gxng0fwq910a";
        libraryHaskellDepends = [ base text ];
@@ -255757,7 +260832,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Case conversion, word boundary manipulation, and textual subjugation";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "text-markup" = callPackage
@@ -255988,8 +261062,8 @@ self: {
        pname = "text-short";
        version = "0.1.3";
        sha256 = "0xyrxlb602z8bc9sr2y1fag0x56a20yj5qrkvy7iwc6hnznrynxz";
-       revision = "2";
-       editedCabalFile = "17cb7p0qywf2dsrq3g8qb3ssknd9wl5k0nc2pxz9gc3l8rxpkw51";
+       revision = "3";
+       editedCabalFile = "1wjy98ihhipzr34b310sgjjq3cc12aydhckbrgr21kxkzwglm4nv";
        libraryHaskellDepends = [
          base binary bytestring deepseq ghc-prim hashable text
        ];
@@ -256046,8 +261120,8 @@ self: {
        pname = "text-show-instances";
        version = "3.8.4";
        sha256 = "1vsrf4vjq4z759srnzvyk3hn90ck4k91vy8cn625m8hy1zddqj2q";
-       revision = "1";
-       editedCabalFile = "1z7kgnxm9r9dgnqn4fyrfv3k8k2dac7g2hsf649jaxhh898z6dm6";
+       revision = "2";
+       editedCabalFile = "1k5q21j0276jafyy4icgncz45r5gab2mj8964xayhh548rzj5cm6";
        libraryHaskellDepends = [
          base base-compat-batteries bifunctors binary containers directory
          ghc-boot-th haskeline hpc old-locale old-time pretty random
@@ -256354,8 +261428,8 @@ self: {
     ({ mkDerivation, base, QuickCheck, utility-ht }:
      mkDerivation {
        pname = "tfp";
-       version = "1.0.1.1";
-       sha256 = "1qkcm4l09qpxy9996lnfn79c1wn1ca45s3i2iz2x3kvp0f999d3i";
+       version = "1.0.2";
+       sha256 = "02rm06cscj470ab6pla3050l1iygak69yfhsy0wc6cvavz181plf";
        libraryHaskellDepends = [ base utility-ht ];
        testHaskellDepends = [ base QuickCheck ];
        description = "Type-level integers, booleans, lists using type families";
@@ -256491,8 +261565,8 @@ self: {
      }:
      mkDerivation {
        pname = "th-compat";
-       version = "0.1.1";
-       sha256 = "1y83yq5ac067a631bd4kg0d14yp8hc23a0dsqsgbqdn279c21ylm";
+       version = "0.1.2";
+       sha256 = "009qc0yy5iq61kgnp9n6vdlqh8zmk4bjawcvpigccgfyk40mvi1b";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [
          base base-compat hspec mtl template-haskell
@@ -256571,6 +261645,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "th-desugar_1_12" = callPackage
+    ({ mkDerivation, base, containers, ghc-prim, hspec, HUnit, mtl
+     , ordered-containers, syb, template-haskell, th-abstraction
+     , th-lift, th-orphans, transformers-compat
+     }:
+     mkDerivation {
+       pname = "th-desugar";
+       version = "1.12";
+       sha256 = "1bp47jpif299kbm27zhjaw1nhl12daa09vsc8f0jracq0jhxi3iv";
+       libraryHaskellDepends = [
+         base containers ghc-prim mtl ordered-containers syb
+         template-haskell th-abstraction th-lift th-orphans
+         transformers-compat
+       ];
+       testHaskellDepends = [
+         base containers hspec HUnit mtl syb template-haskell th-abstraction
+         th-lift th-orphans
+       ];
+       description = "Functions to desugar Template Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "th-dict-discovery" = callPackage
     ({ mkDerivation, base, constraints, template-haskell }:
      mkDerivation {
@@ -256598,13 +261695,17 @@ self: {
      }) {};
 
   "th-expand-syns" = callPackage
-    ({ mkDerivation, base, containers, syb, template-haskell }:
+    ({ mkDerivation, base, containers, syb, template-haskell
+     , th-abstraction
+     }:
      mkDerivation {
        pname = "th-expand-syns";
-       version = "0.4.6.0";
-       sha256 = "1dz8bl4yb6sis74knmvqxa21y9yws9l8gafzsi0chaqx15b5asxj";
-       libraryHaskellDepends = [ base containers syb template-haskell ];
-       testHaskellDepends = [ base template-haskell ];
+       version = "0.4.8.0";
+       sha256 = "1mw0yxfbmicv0irfrcz4s6pn39za7yjd7zz09ialwym1b46624si";
+       libraryHaskellDepends = [
+         base containers syb template-haskell th-abstraction
+       ];
+       testHaskellDepends = [ base template-haskell th-abstraction ];
        description = "Expands type synonyms in Template Haskell ASTs";
        license = lib.licenses.bsd3;
      }) {};
@@ -257031,6 +262132,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "th-utilities_0_2_4_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , hspec, primitive, syb, template-haskell, text, th-abstraction
+     , th-orphans, vector
+     }:
+     mkDerivation {
+       pname = "th-utilities";
+       version = "0.2.4.2";
+       sha256 = "09rbs878gjhyg8n789p2c67lzxr4h1pg0zar47a7j8sg6ff5wcx2";
+       libraryHaskellDepends = [
+         base bytestring containers directory filepath primitive syb
+         template-haskell text th-abstraction th-orphans
+       ];
+       testHaskellDepends = [
+         base bytestring containers directory filepath hspec primitive syb
+         template-haskell text th-abstraction th-orphans vector
+       ];
+       description = "Collection of useful functions for use with Template Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "thank-you-stars" = callPackage
     ({ mkDerivation, aeson, base, bytestring, Cabal, containers
      , directory, filepath, hackage-db, hspec, req, split, text
@@ -257180,6 +262303,8 @@ self: {
        pname = "these";
        version = "1.1.1.1";
        sha256 = "027m1gd7i6jf2ppfkld9qrv3xnxg276587pmx10z9phpdvswk66p";
+       revision = "1";
+       editedCabalFile = "1bzi28jvaxil9rc6z1hkf87pfjsa3r5gfc9n0ixffnnv519cd0g9";
        libraryHaskellDepends = [ assoc base binary deepseq hashable ];
        description = "An either-or-both data type";
        license = lib.licenses.bsd3;
@@ -257189,8 +262314,8 @@ self: {
     ({ mkDerivation, base, lens, these }:
      mkDerivation {
        pname = "these-lens";
-       version = "1.0.1.1";
-       sha256 = "1nwknm17x7vkx9936z7xa6hqw69pgig185if1dninrvyxvv59kps";
+       version = "1.0.1.2";
+       sha256 = "1v3kj7j4bkywbmdbblwqs5gsj5s23d59sb3s27jf3bwdzf9d21p6";
        libraryHaskellDepends = [ base lens these ];
        description = "Lenses for These";
        license = lib.licenses.bsd3;
@@ -257200,8 +262325,8 @@ self: {
     ({ mkDerivation, base, optics-core, these }:
      mkDerivation {
        pname = "these-optics";
-       version = "1.0.1.1";
-       sha256 = "1xwf2m03cbb2z40mdab70d042nmvcxpgdq94rmajbqqpb072yivq";
+       version = "1.0.1.2";
+       sha256 = "06jxv320a8f94zjjsqrh072vz2dkzhwgcmpbdy1prgvypiynm4zd";
        libraryHaskellDepends = [ base optics-core these ];
        description = "Optics for These";
        license = lib.licenses.bsd3;
@@ -257917,7 +263042,7 @@ self: {
        sha256 = "0xpfcabhlpnp883jb23sjcilan1cwwykvvlqvc6qzhda63fcyqp1";
        libraryHaskellDepends = [ base tuples-homogenous-h98 vector ];
        description = "3D Tic-Tac-Toe game";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -257929,28 +263054,8 @@ self: {
      }:
      mkDerivation {
        pname = "tidal";
-       version = "1.6.1";
-       sha256 = "13n9s0s04bddl16xq86anz7a9fqcm7j3xfqn5y1mni5j1h7hn2k2";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bifunctors bytestring clock colour containers deepseq hosc
-         network parsec primitive random text transformers vector
-       ];
-       testHaskellDepends = [ base containers deepseq microspec parsec ];
-       benchmarkHaskellDepends = [ base criterion weigh ];
-       description = "Pattern language for improvised music";
-       license = lib.licenses.gpl3;
-     }) {};
-
-  "tidal_1_7_1" = callPackage
-    ({ mkDerivation, base, bifunctors, bytestring, clock, colour
-     , containers, criterion, deepseq, hosc, microspec, network, parsec
-     , primitive, random, text, transformers, vector, weigh
-     }:
-     mkDerivation {
-       pname = "tidal";
-       version = "1.7.1";
-       sha256 = "0fksrydrmjph3ghggijr9hq3xa5wfnqgzm4qxiqravsj70s9m2n4";
+       version = "1.7.2";
+       sha256 = "15shxaazxik1bawgak16xhlvk708kv9al6i3518b3m3iap9sbw9p";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bifunctors bytestring clock colour containers deepseq hosc
@@ -257961,8 +263066,7 @@ self: {
        ];
        benchmarkHaskellDepends = [ base criterion weigh ];
        description = "Pattern language for improvised music";
-       license = lib.licenses.gpl3;
-       hydraPlatforms = lib.platforms.none;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "tidal-midi" = callPackage
@@ -257979,7 +263083,7 @@ self: {
          base containers PortMidi tidal time transformers
        ];
        description = "MIDI support for tidal";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -257994,7 +263098,7 @@ self: {
          base bytestring containers serialport tidal
        ];
        description = "Serial support for tidal";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -258016,7 +263120,7 @@ self: {
        ];
        executableHaskellDepends = [ base ];
        description = "Visual rendering for Tidal patterns and osc messages";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -258200,6 +263304,8 @@ self: {
        pname = "time-compat";
        version = "1.9.5";
        sha256 = "19p3056i6kh8lgcdsnwsh8pj80xyi23kmw9n7hmdacczs5kv49ii";
+       revision = "1";
+       editedCabalFile = "1f6r8cyfgzpfg9nrsqbf99pi44fyds9wcmgwxb4s0zmlb5dbv1m5";
        libraryHaskellDepends = [ base base-orphans deepseq time ];
        testHaskellDepends = [
          base base-compat deepseq HUnit QuickCheck tagged tasty tasty-hunit
@@ -258289,7 +263395,7 @@ self: {
        sha256 = "0n05lw6zpcfr3lwy2qn7v0j3ym1la9x0mak8szaxc2nbkyc8drrb";
        libraryHaskellDepends = [ base base-io-access time ];
        description = "IO Access for time";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -258377,8 +263483,8 @@ self: {
        pname = "time-parsers";
        version = "0.1.2.1";
        sha256 = "102k6l9888kbgng045jk170qjbmdnwv2lbzlc12ncybfk2yk7wdv";
-       revision = "2";
-       editedCabalFile = "10bawg6cwfwm31fcs63z8imd1cdl1wq8syn669yfkycrk77wfkli";
+       revision = "3";
+       editedCabalFile = "1cv9fpn8bixicwcacyv0hx81q1xw06pig07zrpnf354bqzrsf3jw";
        libraryHaskellDepends = [ base parsers template-haskell time ];
        testHaskellDepends = [
          attoparsec base bifunctors parsec parsers tasty tasty-hunit
@@ -258430,7 +263536,7 @@ self: {
          base doctest doctest-discover template-haskell time
        ];
        description = "Quasi-quoters for dates and times";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -258449,7 +263555,7 @@ self: {
          test-framework-hunit time
        ];
        description = "Generate recurring dates";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -258465,7 +263571,7 @@ self: {
        libraryHaskellDepends = [ array base containers mtl ];
        executableHaskellDepends = [ base ];
        description = "Time series analysis";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -258574,7 +263680,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base process time ];
        description = "time each line of terminal output";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "timeit" = callPackage
@@ -258941,28 +264047,28 @@ self: {
        executableHaskellDepends = [ base brick microlens time vty ];
        testHaskellDepends = [ base hspec microlens time ];
        description = "Time utilities";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
 
   "timezone-detect" = callPackage
-    ({ mkDerivation, base, directory, hspec, hspec-discover, time
-     , timezone-olson, timezone-series
+    ({ mkDerivation, base, directory, hspec, hspec-discover, QuickCheck
+     , time, timezone-olson, timezone-series
      }:
      mkDerivation {
        pname = "timezone-detect";
-       version = "0.3.0.0";
-       sha256 = "10pv88wmz8zqr1h3zh66skbkma2zz3gvwjaalnpfz5ii2dgl27yy";
+       version = "0.3.0.1";
+       sha256 = "1n4jmx0196zzq092b66kcrwpk00xsm7sj4s29ij5cl05sdaqalqx";
        libraryHaskellDepends = [
          base time timezone-olson timezone-series
        ];
        testHaskellDepends = [
-         base directory hspec time timezone-olson timezone-series
+         base directory hspec QuickCheck time timezone-olson timezone-series
        ];
        testToolDepends = [ hspec-discover ];
        description = "Haskell bindings for the zone-detect C library; plus tz-aware utils";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -259275,7 +264381,7 @@ self: {
          keera-hails-reactivevalues mtl network network-bsd template-haskell
        ];
        description = "Testing Infrastructure for Temporal AbstractioNs - GUI to debug temporal programs";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -259294,7 +264400,7 @@ self: {
          base IfElse network network-bsd stm transformers Yampa
        ];
        description = "Testing Infrastructure for Temporal AbstractioNs - Interactive Yampa debugging layer";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -259307,7 +264413,7 @@ self: {
        sha256 = "0h7d4152nd8mx4slyjss4kf7n1xn99vc5hnk072apqfv301vpbx3";
        libraryHaskellDepends = [ base Yampa ];
        description = "Testing Infrastructure for Temporal AbstractioNs - Yampa record-and-replay layer";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -259601,8 +264707,8 @@ self: {
      }:
      mkDerivation {
        pname = "tlynx";
-       version = "0.5.0.1";
-       sha256 = "0prqnbq75jrixx845z3hbqajfc63vgsdfdgrsxw0g29rx0x4hw2i";
+       version = "0.5.0.2";
+       sha256 = "1d28xk346h92imp6lnmy0g9mql8nd1zna1mnfs6mqhf38l8sm0k4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -259701,7 +264807,7 @@ self: {
          base bytestring directory template text
        ];
        description = "simple executable for templating";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "tn" = callPackage
@@ -259913,7 +265019,7 @@ self: {
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base time ];
        description = "Rate limiter using lazy bucket algorithm";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "token-limiter" = callPackage
@@ -260003,7 +265109,7 @@ self: {
        sha256 = "0n8w923m8c803zcphims51q2xm6a0374zzh00d62mg92zbdsh9vn";
        libraryHaskellDepends = [ base bytestring text ];
        description = "An efficient and easy-to-use tokenizer monad";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "tokenizer-streaming" = callPackage
@@ -260019,7 +265125,7 @@ self: {
          streaming-commons text tokenizer-monad
        ];
        description = "A variant of tokenizer-monad that supports streaming";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -260045,7 +265151,7 @@ self: {
        ];
        testHaskellDepends = [ base hspec ];
        description = "TokTok C code style checker";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -260097,7 +265203,9 @@ self: {
        librarySystemDepends = [ tokyocabinet tokyotyrant ];
        description = "FFI bindings to libtokyotyrant";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) tokyocabinet; inherit (pkgs) tokyotyrant;};
@@ -260123,8 +265231,8 @@ self: {
        pname = "toml";
        version = "0.1.3";
        sha256 = "0wby1jas854niwyac95n39liqc874xcd1ahqpw6ksi2nhv2ld6f2";
-       revision = "1";
-       editedCabalFile = "086a2dsv3nn04ak78c0q0by9kqdw92idfl1iyzp1qihfdi8mxb2f";
+       revision = "2";
+       editedCabalFile = "1qzlsicdd7qdys69iy838y2v4dkaq4d4ar664l338y5y7fg3axxv";
        libraryHaskellDepends = [
          attoparsec base bytestring containers old-locale time
        ];
@@ -260156,8 +265264,8 @@ self: {
      }:
      mkDerivation {
        pname = "tomland";
-       version = "1.3.1.0";
-       sha256 = "17909a8aapbrsa0yb642ij80k64dg2dam1v3rsvc3rm07ik61x42";
+       version = "1.3.2.0";
+       sha256 = "0yj39mh4z3v3jqri38s3ylrglv657g3m7gqr2rz8ydlvx2draknc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -260178,6 +265286,37 @@ self: {
        license = lib.licenses.mpl20;
      }) {};
 
+  "tomland_1_3_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, directory
+     , hashable, hedgehog, hspec, hspec-hedgehog, hspec-megaparsec
+     , markdown-unlit, megaparsec, mtl, parser-combinators, text, time
+     , transformers, unordered-containers, validation-selective
+     }:
+     mkDerivation {
+       pname = "tomland";
+       version = "1.3.3.0";
+       sha256 = "1masnbr5x75727k2rmgcmxqm91139v9wy434ml5a4c3dsry7xyhv";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers deepseq hashable megaparsec mtl
+         parser-combinators text time transformers unordered-containers
+         validation-selective
+       ];
+       executableHaskellDepends = [
+         base bytestring containers hashable text time unordered-containers
+       ];
+       executableToolDepends = [ markdown-unlit ];
+       testHaskellDepends = [
+         base bytestring containers directory hashable hedgehog hspec
+         hspec-hedgehog hspec-megaparsec megaparsec text time
+         unordered-containers
+       ];
+       description = "Bidirectional TOML serialization";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tomlcheck" = callPackage
     ({ mkDerivation, base, htoml-megaparsec, megaparsec
      , optparse-applicative, text
@@ -260339,47 +265478,46 @@ self: {
      }) {};
 
   "too-many-cells" = callPackage
-    ({ mkDerivation, aeson, base, birch-beer, bytestring, cassava
-     , colour, containers, deepseq, diagrams, diagrams-cairo
-     , diagrams-graphviz, diagrams-lib, differential, directory
-     , diversity, fgl, filepath, find-clumpiness, foldl, graphviz
+    ({ mkDerivation, aeson, async, async-pool, attoparsec, base
+     , birch-beer, bytestring, cassava, colour, containers, deepseq
+     , diagrams, diagrams-cairo, diagrams-graphviz, diagrams-lib
+     , differential, directory, diversity, fgl, filepath
+     , find-clumpiness, foldl, graphviz, hashable
      , hierarchical-clustering, hierarchical-spectral-clustering
-     , hmatrix, inline-r, lens, managed, matrix-market-attoparsec
-     , modularity, mtl, optparse-generic, palette, parallel, plots, safe
-     , scientific, sparse-linear-algebra, spectral-clustering, split
-     , statistics, streaming, streaming-bytestring, streaming-cassava
-     , streaming-utils, streaming-with, SVGFonts, temporary
-     , terminal-progress-bar, text, text-show, transformers, vector
-     , vector-algorithms, zlib
+     , hmatrix, hmatrix-svdlibc, inline-r, IntervalMap, lens, managed
+     , matrix-market-attoparsec, modularity, mtl, mwc-random
+     , optparse-generic, palette, parallel, plots, process, resourcet
+     , safe, scientific, sparse-linear-algebra, spectral-clustering
+     , split, statistics, stm, streaming, streaming-bytestring
+     , streaming-cassava, streaming-commons, streaming-utils
+     , streaming-with, SVGFonts, system-filepath, temporary
+     , terminal-progress-bar, text, text-show, transformers, turtle
+     , unordered-containers, vector, vector-algorithms, zlib
      }:
      mkDerivation {
        pname = "too-many-cells";
-       version = "0.2.2.2";
-       sha256 = "091hqg4wxki8v7xkrzmnh1hpm81pif936pbmrzvr5p84sbbyyj91";
+       version = "2.2.0.0";
+       sha256 = "031k750856m34q80ppnbb17qm6c64lal9dqn976g7265zmc9cdr7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base birch-beer bytestring cassava colour containers deepseq
-         diagrams diagrams-cairo diagrams-graphviz diagrams-lib differential
-         directory diversity fgl filepath find-clumpiness foldl graphviz
+         aeson async async-pool attoparsec base birch-beer bytestring
+         cassava colour containers deepseq diagrams diagrams-cairo
+         diagrams-graphviz diagrams-lib differential directory diversity fgl
+         filepath find-clumpiness foldl graphviz hashable
          hierarchical-clustering hierarchical-spectral-clustering hmatrix
-         inline-r lens managed matrix-market-attoparsec modularity mtl
-         palette parallel plots safe scientific sparse-linear-algebra split
-         statistics streaming streaming-bytestring streaming-cassava
-         streaming-with SVGFonts temporary text text-show vector
-         vector-algorithms zlib
-       ];
-       executableHaskellDepends = [
-         aeson base birch-beer bytestring cassava colour containers
-         diagrams-cairo diagrams-lib directory fgl filepath find-clumpiness
-         graphviz hierarchical-spectral-clustering inline-r lens
-         matrix-market-attoparsec modularity mtl optparse-generic palette
-         plots spectral-clustering streaming streaming-bytestring
-         streaming-utils terminal-progress-bar text text-show transformers
-         vector
+         hmatrix-svdlibc inline-r IntervalMap lens managed
+         matrix-market-attoparsec modularity mtl mwc-random optparse-generic
+         palette parallel plots process resourcet safe scientific
+         sparse-linear-algebra spectral-clustering split statistics stm
+         streaming streaming-bytestring streaming-cassava streaming-commons
+         streaming-utils streaming-with SVGFonts system-filepath temporary
+         terminal-progress-bar text text-show transformers turtle
+         unordered-containers vector vector-algorithms zlib
        ];
+       executableHaskellDepends = [ base optparse-generic ];
        description = "Cluster single cells and analyze cell clade relationships";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -260492,6 +265630,8 @@ self: {
        pname = "topograph";
        version = "1.0.0.1";
        sha256 = "1sd2gyirkdgwcll76zxw954wdsyxzajn59xa9zk55fbrsm6w24cv";
+       revision = "1";
+       editedCabalFile = "1cbpm16jk8x8xy0r3v8zdmwrdgxlp6zww03rmzbz0031hddpywrk";
        libraryHaskellDepends = [
          base base-compat base-orphans containers vector
        ];
@@ -260659,7 +265799,7 @@ self: {
          saltine text
        ];
        description = "A Tox protocol implementation in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -260686,7 +265826,7 @@ self: {
          data-default-class hspec QuickCheck saltine
        ];
        description = "Haskell bindings to the C reference implementation of Tox";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {toxcore = null;};
@@ -260829,7 +265969,7 @@ self: {
          wai warp websockets wuss
        ];
        description = "Applications for interacting with the Pushbullet API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -260972,8 +266112,8 @@ self: {
      }:
      mkDerivation {
        pname = "tracing";
-       version = "0.0.5.2";
-       sha256 = "0h0ga56pikym7igqzbb4lm1qnjnfzn533z0mx7jz3hjpgflk8xxs";
+       version = "0.0.6.0";
+       sha256 = "0f92jh3pfd67pfy2yn26k05n2xy8iyshds9mq4hvwf0jq1kk9h6d";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive containers
          http-client mtl network random stm text time transformers unliftio
@@ -260983,6 +266123,8 @@ self: {
        ];
        description = "Distributed tracing";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tracing-control" = callPackage
@@ -261006,6 +266148,8 @@ self: {
        ];
        description = "Distributed tracing";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tracked-files" = callPackage
@@ -261307,7 +266451,7 @@ self: {
          base containers criterion mtl multirec parsec QuickCheck
        ];
        description = "Generic representation of tree transformations";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -261932,27 +267076,27 @@ self: {
 
   "tree-diff" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, base
-     , base-compat, bytestring, bytestring-builder, containers, hashable
-     , parsec, parsers, pretty, QuickCheck, scientific, tagged, tasty
-     , tasty-golden, tasty-quickcheck, text, time, trifecta
-     , unordered-containers, uuid-types, vector
+     , base-compat, bytestring, bytestring-builder, containers
+     , criterion, deepseq, Diff, hashable, parsec, parsers, pretty
+     , primitive, QuickCheck, scientific, semialign, strict, tagged
+     , tasty, tasty-golden, tasty-quickcheck, text, these, time
+     , trifecta, unordered-containers, uuid-types, vector
      }:
      mkDerivation {
        pname = "tree-diff";
-       version = "0.1";
-       sha256 = "1156nbqn0pn9lp4zjsy4vv5g5wmy4zxwmbqdgvq349rydynh3ng3";
-       revision = "5";
-       editedCabalFile = "1b60x9cgp7hn42hc97q866ybhg5hx3sp45j6gngpbwryg29r2p4h";
+       version = "0.2";
+       sha256 = "1ny7mi0n8cyb65q9ihbnm2gxiyya888dw2c4y0hjy8k882wdhf0x";
        libraryHaskellDepends = [
          aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
-         bytestring-builder containers hashable parsec parsers pretty
-         QuickCheck scientific tagged text time unordered-containers
-         uuid-types vector
+         bytestring-builder containers deepseq hashable parsec parsers
+         pretty primitive QuickCheck scientific semialign strict tagged text
+         these time unordered-containers uuid-types vector
        ];
        testHaskellDepends = [
-         ansi-terminal ansi-wl-pprint base base-compat parsec QuickCheck
-         tagged tasty tasty-golden tasty-quickcheck trifecta
+         ansi-terminal ansi-wl-pprint base base-compat parsec primitive
+         QuickCheck tagged tasty tasty-golden tasty-quickcheck trifecta
        ];
+       benchmarkHaskellDepends = [ base criterion deepseq Diff ];
        description = "Diffing of (expression) trees";
        license = lib.licenses.gpl2Plus;
      }) {};
@@ -261965,7 +267109,7 @@ self: {
        sha256 = "07vgsps4kjld75ndnjjaigsk5vvg11vjp740pznhsw79k3qjbs9a";
        libraryHaskellDepends = [ base containers mtl ];
        description = "Library for functions pertaining to tree exploration and manipulation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "tree-monad" = callPackage
@@ -262160,10 +267304,8 @@ self: {
     ({ mkDerivation, base, containers, mtl }:
      mkDerivation {
        pname = "tree-view";
-       version = "0.5";
-       sha256 = "1aywcaq9b48ap04g8i5rirz447kfmwxnswqigmycbgvqdbglc01d";
-       revision = "1";
-       editedCabalFile = "0f4sls511c4axp92r07yk0b4h9wvlbk5345643q4gvy1adxwdyw5";
+       version = "0.5.1";
+       sha256 = "1ya3m1qi83pn74wzffvbzj7wn6n5zny4yzzzf7wlfqszl96jhn2g";
        libraryHaskellDepends = [ base containers mtl ];
        description = "Render trees as foldable HTML and Unicode art";
        license = lib.licenses.bsd3;
@@ -262201,7 +267343,7 @@ self: {
          tasty-hunit text transformers
        ];
        description = "A tree of Data.Map.";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -262264,7 +267406,7 @@ self: {
        sha256 = "105gj9s8gp4xc4i7ank8m6pjc80kywl7vn53qdxfrndaljv4kark";
        libraryHaskellDepends = [ base containers ];
        description = "Library for a multi-way tree (rose tree), using Seq (finger tree) for forests";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "treeviz" = callPackage
@@ -262374,7 +267516,7 @@ self: {
          attoparsec base bytestring containers deepseq mtl network
        ];
        description = "Library for polling Tremulous servers";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -262498,27 +267640,24 @@ self: {
 
   "trifecta" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, blaze-builder
-     , blaze-html, blaze-markup, bytestring, Cabal, cabal-doctest
-     , charset, comonad, containers, deepseq, doctest, fingertree
-     , ghc-prim, hashable, lens, mtl, parsers, prettyprinter
+     , 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
-     , semigroups, transformers, unordered-containers, utf8-string
+     , transformers, unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "trifecta";
-       version = "2.1";
-       sha256 = "0fr326lzf38m20h2g4189nsyml9w3128924zbd3cd93cgfqcc9bs";
-       revision = "4";
-       editedCabalFile = "0frzfh7xmaypbxcmszjvzbakz52p0fx79jg6ng0ygaaj62inv4ss";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "2.1.1";
+       sha256 = "1lhzi0xxvilvgjy3yf3f85wfmrks562hhsnl0kg1xwji36rgwp6y";
        libraryHaskellDepends = [
          ansi-terminal array base blaze-builder blaze-html blaze-markup
          bytestring charset comonad containers deepseq fingertree ghc-prim
-         hashable lens mtl parsers prettyprinter prettyprinter-ansi-terminal
-         profunctors reducers semigroups transformers unordered-containers
-         utf8-string
+         hashable indexed-traversable lens mtl parsers prettyprinter
+         prettyprinter-ansi-terminal profunctors reducers transformers
+         unordered-containers utf8-string
        ];
-       testHaskellDepends = [ base doctest parsers QuickCheck ];
+       testHaskellDepends = [ base parsers QuickCheck ];
        description = "A modern parser combinator library with convenient diagnostics";
        license = lib.licenses.bsd3;
      }) {};
@@ -262635,7 +267774,7 @@ self: {
        sha256 = "0y0iyll7ml5qz271cqa0dc3w2j3w1d8jjaxwaf2flcidigws69z5";
        libraryHaskellDepends = [ base ];
        description = "Constraints that any type, resp. no type fulfills";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -262674,7 +267813,7 @@ self: {
        ];
        benchmarkHaskellDepends = [ base criterion ];
        description = "A Tropical Geometry package for Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -263023,6 +268162,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "ttc_0_4_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, tasty, tasty-hunit
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "ttc";
+       version = "0.4.0.0";
+       sha256 = "07b5vw7wxgxcsr04h4nx28bmv9a10hkdzhhssvka050hxhiyjmgv";
+       libraryHaskellDepends = [ base bytestring template-haskell text ];
+       testHaskellDepends = [
+         base bytestring tasty tasty-hunit template-haskell text
+       ];
+       description = "Textual Type Classes";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ttl-hashtables" = callPackage
     ({ mkDerivation, base, clock, containers, data-default, failable
      , hashable, hashtables, hspec, mtl, transformers
@@ -263066,17 +268222,17 @@ self: {
 
   "ttn-client" = callPackage
     ({ mkDerivation, async, base, base64-bytestring, binary, bytestring
-     , cayene-lpp, config-ini, directory, filepath, net-mqtt
+     , cayenne-lpp, config-ini, directory, filepath, net-mqtt
      , network-uri, stm, text, time, ttn
      }:
      mkDerivation {
        pname = "ttn-client";
-       version = "0.2.0.0";
-       sha256 = "1rvnn57hr2yqj383rknnnpy4k073r8i8cjx6fg4xb1ywwk9v3i86";
+       version = "0.2.2.0";
+       sha256 = "0gylp37nspknysv5583bxbcida7dw47lrd7pb6857jad418yryxr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base base64-bytestring binary bytestring cayene-lpp
+         async base base64-bytestring binary bytestring cayenne-lpp
          config-ini directory filepath net-mqtt network-uri stm text ttn
        ];
        executableHaskellDepends = [ base text time ttn ];
@@ -263153,7 +268309,7 @@ self: {
          transformers
        ];
        description = "Write stream processing computations with side effects in a series of tubes";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -263299,7 +268455,7 @@ self: {
        libraryHaskellDepends = [ base generics-sop ];
        testHaskellDepends = [ base generics-sop ];
        description = "functions on n-ary tuples using generics-sop";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "tuple-th" = callPackage
@@ -263406,7 +268562,7 @@ self: {
          base containers hspec hspecVariant QuickCheck QuickCheckVariant
        ];
        description = "An implementation of Turing Machine and Automaton";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -263459,8 +268615,10 @@ self: {
      }:
      mkDerivation {
        pname = "turtle";
-       version = "1.5.20";
-       sha256 = "1dk8ddp1p77l7gbg81ryqrkaxhrj3an24mx572b5wmhmjmbjfk9l";
+       version = "1.5.21";
+       sha256 = "0sb1xnmvqby1lcg3p92v0nkpxnm2qk0gcn41mxxgp3xdm24vkz36";
+       revision = "1";
+       editedCabalFile = "0qh20z5gzbi3an78z7p338xdz61sbpffy0w0crx7fpwa95dlkf0m";
        libraryHaskellDepends = [
          ansi-wl-pprint async base bytestring clock containers directory
          exceptions foldl hostname managed optional-args
@@ -263473,7 +268631,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "turtle_1_5_21" = callPackage
+  "turtle_1_5_22" = callPackage
     ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
      , containers, criterion, directory, doctest, exceptions, foldl
      , hostname, managed, optional-args, optparse-applicative, process
@@ -263482,8 +268640,8 @@ self: {
      }:
      mkDerivation {
        pname = "turtle";
-       version = "1.5.21";
-       sha256 = "0sb1xnmvqby1lcg3p92v0nkpxnm2qk0gcn41mxxgp3xdm24vkz36";
+       version = "1.5.22";
+       sha256 = "14lf43b5rxci6p9sy1gkb715m4b1s4rl65swn2qpdqv3h2yvpi4s";
        libraryHaskellDepends = [
          ansi-wl-pprint async base bytestring clock containers directory
          exceptions foldl hostname managed optional-args
@@ -263542,16 +268700,17 @@ self: {
      }) {};
 
   "twee" = callPackage
-    ({ mkDerivation, base, containers, jukebox, pretty, split, twee-lib
+    ({ mkDerivation, ansi-terminal, base, containers, jukebox, pretty
+     , split, symbol, twee-lib
      }:
      mkDerivation {
        pname = "twee";
-       version = "2.2";
-       sha256 = "0wmjmgkf5piwqzrk08ij7mc3s82gpg7j5x4bk96njj06gm4lc38v";
+       version = "2.3";
+       sha256 = "1fg8khaa5zkfyh2jawh2m7jyy3a4kbd755qa09gwg9b7y9wijamr";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base containers jukebox pretty split twee-lib
+         ansi-terminal base containers jukebox pretty split symbol twee-lib
        ];
        description = "An equational theorem prover";
        license = lib.licenses.bsd3;
@@ -263561,14 +268720,15 @@ self: {
 
   "twee-lib" = callPackage
     ({ mkDerivation, base, containers, dlist, ghc-prim, pretty
-     , primitive, transformers, vector
+     , primitive, random, transformers, uglymemo, vector
      }:
      mkDerivation {
        pname = "twee-lib";
-       version = "2.2";
-       sha256 = "0v99hhnxpzi5581s4bfxhbpnmvlbqnrrr3pdkfvicz2b146mhhgr";
+       version = "2.3";
+       sha256 = "1ba98apscp1f4k9917an27aqymnr8gj8pkwj7g2ci02fh7dan9b9";
        libraryHaskellDepends = [
-         base containers dlist ghc-prim pretty primitive transformers vector
+         base containers dlist ghc-prim pretty primitive random transformers
+         uglymemo vector
        ];
        description = "An equational theorem prover";
        license = lib.licenses.bsd3;
@@ -264106,8 +269266,8 @@ self: {
      }:
      mkDerivation {
        pname = "twitter-types-lens";
-       version = "0.10.0";
-       sha256 = "1x9w68mr6r6354in9l4vmawk5symvfh2qlhjn2gd30m8b1mzbrjg";
+       version = "0.10.1";
+       sha256 = "07znqqb4lhhzlzvi1nl3m13cnskfakq4pnn52wpn554igxymgvsd";
        libraryHaskellDepends = [
          base lens template-haskell text time twitter-types
        ];
@@ -264419,8 +269579,8 @@ self: {
        pname = "type-errors";
        version = "0.2.0.0";
        sha256 = "1d1fi4ij18q39rpibc056mgvly75zqixkba4l8bn307c62f50k8p";
-       revision = "1";
-       editedCabalFile = "157fjnr98fn5943siqwk1rd2wwnzd7nlbkbkzvdqv7d723cmh126";
+       revision = "2";
+       editedCabalFile = "1rlhswrkyvhaqhgk2yr9xk49yp196p5fy37hmyni9g7rx1d07qyj";
        libraryHaskellDepends = [
          base first-class-families syb template-haskell th-abstraction
        ];
@@ -264705,33 +269865,6 @@ self: {
     ({ mkDerivation, base, constraints, equational-reasoning, ghc
      , ghc-typelits-knownnat, ghc-typelits-natnormalise
      , ghc-typelits-presburger, integer-logarithms, QuickCheck
-     , quickcheck-instances, tasty, tasty-discover
-     , tasty-expected-failure, tasty-hunit, tasty-quickcheck
-     , template-haskell
-     }:
-     mkDerivation {
-       pname = "type-natural";
-       version = "1.0.0.0";
-       sha256 = "04j37xqgd2690y0vlx6f24y7fa07vljkrlaq8x8azmka8lsmbdl0";
-       libraryHaskellDepends = [
-         base constraints equational-reasoning ghc ghc-typelits-knownnat
-         ghc-typelits-natnormalise ghc-typelits-presburger
-         integer-logarithms template-haskell
-       ];
-       testHaskellDepends = [
-         base equational-reasoning integer-logarithms QuickCheck
-         quickcheck-instances tasty tasty-discover tasty-expected-failure
-         tasty-hunit tasty-quickcheck template-haskell
-       ];
-       testToolDepends = [ tasty-discover ];
-       description = "Type-level natural and proofs of their properties";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "type-natural_1_1_0_0" = callPackage
-    ({ mkDerivation, base, constraints, equational-reasoning, ghc
-     , ghc-typelits-knownnat, ghc-typelits-natnormalise
-     , ghc-typelits-presburger, integer-logarithms, QuickCheck
      , quickcheck-instances, tasty, tasty-discover, tasty-hunit
      , tasty-quickcheck, template-haskell
      }:
@@ -264752,7 +269885,6 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Type-level natural and proofs of their properties";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "type-of-html" = callPackage
@@ -264992,6 +270124,8 @@ self: {
        ];
        description = "Type-level and typed unary natural numbers, inequality proofs, vectors";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "typeable-th" = callPackage
@@ -265272,7 +270406,7 @@ self: {
          base ghc-typelits-knownnat mtl pretty-compact
        ];
        description = "Typed frontend to TensorFlow and higher-order deep learning";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -265327,17 +270461,15 @@ self: {
      }) {};
 
   "typelevel-rewrite-rules" = callPackage
-    ({ mkDerivation, base, ghc, ghc-prim, ghc-tcplugins-extra
-     , term-rewriting, transformers, vinyl
+    ({ mkDerivation, base, containers, ghc, ghc-prim, term-rewriting
+     , transformers, vinyl
      }:
      mkDerivation {
        pname = "typelevel-rewrite-rules";
-       version = "0.1";
-       sha256 = "1gm3xbsi90dgppwhhhlmq1rwwnx9bxhm7zv9x4yr0952fwxrm8x8";
-       revision = "1";
-       editedCabalFile = "0wgryhys24671j46s58prbh7agrlxdcbains6qv37kp6xly726nj";
+       version = "1.0";
+       sha256 = "0by8zl16dzq0srdmr7p3hwdp1966gbdmzqp9h2548sj767r0ncmy";
        libraryHaskellDepends = [
-         base ghc ghc-prim ghc-tcplugins-extra term-rewriting transformers
+         base containers ghc ghc-prim term-rewriting transformers
        ];
        testHaskellDepends = [ base ghc-prim vinyl ];
        description = "Solve type equalities using custom type-level rewrite rules";
@@ -265388,13 +270520,29 @@ self: {
      }) {};
 
   "typenums" = callPackage
-    ({ mkDerivation, base, hspec, QuickCheck }:
+    ({ mkDerivation, base, hspec, hspec-discover, QuickCheck }:
      mkDerivation {
        pname = "typenums";
-       version = "0.1.2.1";
-       sha256 = "06wrsvbddv2ga7k39954697jnclb5r6g4m95pr0fmv34ws1y1d66";
+       version = "0.1.3";
+       sha256 = "0ampchndx0z8bhdqgp14smv270pizjvlr54ns3x79hwjpg9m01rc";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec QuickCheck ];
+       testToolDepends = [ hspec-discover ];
+       description = "Type level numbers using existing Nat functionality";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "typenums_0_1_4" = callPackage
+    ({ mkDerivation, base, hspec, hspec-discover, QuickCheck }:
+     mkDerivation {
+       pname = "typenums";
+       version = "0.1.4";
+       sha256 = "16bfn4s8q4w2f8a2c9l93b0yhj9qahccp9fs29rcj9q8873xaz6l";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec QuickCheck ];
+       testToolDepends = [ hspec-discover ];
        description = "Type level numbers using existing Nat functionality";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -265575,7 +270723,7 @@ self: {
          base containers parallel polynomials-bernstein vector
        ];
        description = "Drawings for printed text documents";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "typson-beam" = callPackage
@@ -265784,8 +270932,8 @@ self: {
      }:
      mkDerivation {
        pname = "ua-parser";
-       version = "0.7.5.1";
-       sha256 = "091lks0jpp0m4wg56i03ih3n0n7kvs2fm511vcnypmwskflkkk0z";
+       version = "0.7.6.0";
+       sha256 = "0sakvmmf6p2ca0dbkwqdj5cv93gp78srw0zc4f1skcgndkmxwk6l";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring data-default file-embed pcre-light text yaml
@@ -265930,6 +271078,8 @@ self: {
        pname = "ucl";
        version = "0.2.0.0";
        sha256 = "1ccf9zavmsk0msq4gz6alv5z32qwnap8a4zvajmqps69bh66b9wv";
+       revision = "1";
+       editedCabalFile = "1gyhy1311wqj5s10pgkpc0vsmvcqja23p4nqn3nv0mbc9fajal2n";
        libraryHaskellDepends = [ base bytestring containers text time ];
        libraryPkgconfigDepends = [ libucl ];
        testHaskellDepends = [ base containers ];
@@ -266008,7 +271158,9 @@ self: {
        libraryPkgconfigDepends = [ systemd ];
        description = "libudev bindings";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) systemd;};
 
   "udp-conduit" = callPackage
@@ -266140,7 +271292,9 @@ self: {
          optparse-applicative
        ];
        description = "Minimal HTTP client library optimized for benchmarking";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ui-command" = callPackage
@@ -266509,7 +271663,7 @@ self: {
        ];
        executableHaskellDepends = [ base bytestring cmdargs ];
        description = "Secure and resilient remote file storage utility";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -266562,8 +271716,8 @@ self: {
        pname = "unescaping-print";
        version = "0.1";
        sha256 = "0a1ryvnpgsk668wagwwapksi7i9kbhhjfpqlvmg2z9kv1anr6mp5";
-       revision = "2";
-       editedCabalFile = "113p28z74lvsc7c6v93ilvbyp2fn5h1qsymksn3mi2ndxwq3vz3f";
+       revision = "3";
+       editedCabalFile = "0r2ggyy2qla75jxdhd3izqqkqb3ar6538jczfwlbbxrj4w1xkd47";
        libraryHaskellDepends = [ base ];
        description = "Tiny package providing unescaping versions of show and print";
        license = lib.licenses.bsd3;
@@ -266620,10 +271774,8 @@ self: {
      }:
      mkDerivation {
        pname = "unfoldable";
-       version = "1.0";
-       sha256 = "0ilzv4ks76f9fx12ilsam0v232fm2mvvsz6s50p0nllldwgkgm6a";
-       revision = "2";
-       editedCabalFile = "0lnqjgh8nyq6w94swn0m7syl0bx6a2ml7s9sqp449inpdb8f8jaj";
+       version = "1.0.1";
+       sha256 = "1h1zps55adzhfsfq1bgwc235qywpad9z7rfqid81l4405pi5zw83";
        libraryHaskellDepends = [
          base containers ghc-prim one-liner QuickCheck random transformers
        ];
@@ -266789,6 +271941,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "unicode-general-category" = callPackage
+    ({ mkDerivation, array, base, binary, bytestring, containers
+     , file-embed, hspec, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "unicode-general-category";
+       version = "0.1.0.0";
+       sha256 = "06qxihfgsh75xnij20qpvnr53mz3pd5r8myx0fpsfrg0jn0ldiya";
+       libraryHaskellDepends = [
+         array base binary bytestring containers file-embed text
+       ];
+       testHaskellDepends = [
+         base bytestring containers hspec QuickCheck
+       ];
+       description = "Unicode General Category Database";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "unicode-names" = callPackage
     ({ mkDerivation, array, base, containers, unicode-properties }:
      mkDerivation {
@@ -266944,8 +272114,8 @@ self: {
     ({ mkDerivation, base, containers, logict, mtl }:
      mkDerivation {
        pname = "unification-fd";
-       version = "0.10.0.1";
-       sha256 = "15hrnmgr0pqq43fwgxc168r08xjgfhr2nchmz5blq46vwrh6gx2v";
+       version = "0.11.1";
+       sha256 = "0xvc3xa0yhxjxd1nf6d1cnixlbjaz2ww08hg1vldsf6c1h4lvs05";
        libraryHaskellDepends = [ base containers logict mtl ];
        description = "Simple generic unification algorithms";
        license = lib.licenses.bsd3;
@@ -267259,6 +272429,8 @@ self: {
        ];
        description = "Usage examples for the uniqueness-periods-vector series of packages";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "uniqueness-periods-vector-filters" = callPackage
@@ -267304,6 +272476,8 @@ self: {
        ];
        description = "Metrices for the maximum element for the uniqueness-periods-vector packages family";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "uniqueness-periods-vector-stats" = callPackage
@@ -267416,7 +272590,7 @@ self: {
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "An extendable library for type-safe computations including units";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -267580,6 +272754,8 @@ self: {
        pname = "universe-instances-extended";
        version = "1.1.2";
        sha256 = "1yg3cacr56kk0r8vnqxa9cm1awb727qkysnhc7rn4h9pfb10a7sn";
+       revision = "1";
+       editedCabalFile = "017adjf6wbw56a81l69vd0gzhlvi6n1wplh85smq7l9m98wsh4wy";
        libraryHaskellDepends = [
          adjunctions base comonad containers universe-base
        ];
@@ -267613,8 +272789,6 @@ self: {
        libraryHaskellDepends = [ base containers universe-base ];
        description = "Instances of standard classes that are made possible by enumerations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "universe-some" = callPackage
@@ -267809,6 +272983,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "unix-recursive" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, dir-traverse, hspec
+     , unix
+     }:
+     mkDerivation {
+       pname = "unix-recursive";
+       version = "0.1.0.0";
+       sha256 = "151ap7b3nzlaz2pfl144z4azfvxdw6l8zrn500nzl58hqr9n7awl";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base bytestring unix ];
+       testHaskellDepends = [ base bytestring hspec unix ];
+       benchmarkHaskellDepends = [ base criterion dir-traverse ];
+       description = "Fast and flexible primitives for recursive file system IO on Posix systems";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "unix-simple" = callPackage
     ({ mkDerivation, base, bytestring, zenhack-prelude }:
      mkDerivation {
@@ -267879,6 +273072,20 @@ self: {
        license = "GPL";
      }) {};
 
+  "unlift-stm" = callPackage
+    ({ mkDerivation, base, stm, transformers, unliftio, unliftio-core
+     }:
+     mkDerivation {
+       pname = "unlift-stm";
+       version = "0.1.0.0";
+       sha256 = "1580vrv09f0w7ipzv89pq8xsz5labf3vprxxicy29q0nwnnc6y3l";
+       libraryHaskellDepends = [
+         base stm transformers unliftio unliftio-core
+       ];
+       description = "(un)lifted classes and functions for the STM monad";
+       license = lib.licenses.bsd2;
+     }) {};
+
   "unlifted-list" = callPackage
     ({ mkDerivation, base, ghc-prim, semigroups }:
      mkDerivation {
@@ -267937,8 +273144,8 @@ self: {
      }:
      mkDerivation {
        pname = "unliftio-messagebox";
-       version = "1.0.2";
-       sha256 = "0pl75f3wbcy31b4firqw0y2mdl3axjdwx0w1vckidprv8sncsrm7";
+       version = "2.0.0";
+       sha256 = "0gwykcv91hn2pwnpwyc9032h84rdid28x34n0896319hl1rg5w9w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -267960,6 +273167,8 @@ self: {
        ];
        description = "Fast and robust message queues for concurrent processes";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "unliftio-path" = callPackage
@@ -268045,7 +273254,7 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [ base storable-endian utility-ht ];
        description = "Extract useful information from Amiga MED files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "unordered-containers" = callPackage
@@ -268636,6 +273845,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "Hoon-style atom manipulation and printing functions";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ureader" = callPackage
@@ -269357,6 +274568,7 @@ self: {
        ];
        description = "A pragmatic time and date library";
        license = lib.licenses.mit;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "utf" = callPackage
@@ -269576,13 +274788,17 @@ self: {
      }) {};
 
   "utility-ht" = callPackage
-    ({ mkDerivation, base, QuickCheck }:
+    ({ mkDerivation, base, doctest-exitcode-stdio, doctest-lib
+     , QuickCheck
+     }:
      mkDerivation {
        pname = "utility-ht";
-       version = "0.0.15";
-       sha256 = "148gdz6pbl1i5qjvjrq5576pg58anmh18xha37n9fncjy36pjp44";
+       version = "0.0.16";
+       sha256 = "10dvmfhhhj5w4wz5drhvs6i0yv35kbbcbzhy6ci34r3ppcik5rdw";
        libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base QuickCheck ];
+       testHaskellDepends = [
+         base doctest-exitcode-stdio doctest-lib QuickCheck
+       ];
        description = "Various small helper functions for Lists, Maybes, Tuples, Functions";
        license = lib.licenses.bsd3;
      }) {};
@@ -269785,28 +275001,22 @@ self: {
      }) {};
 
   "uuid" = callPackage
-    ({ mkDerivation, base, binary, bytestring, criterion
-     , cryptohash-md5, cryptohash-sha1, entropy, HUnit
-     , mersenne-random-pure64, network-info, QuickCheck, random, tasty
+    ({ mkDerivation, base, binary, bytestring, cryptohash-md5
+     , cryptohash-sha1, entropy, network-info, QuickCheck, random, tasty
      , tasty-hunit, tasty-quickcheck, text, time, uuid-types
      }:
      mkDerivation {
        pname = "uuid";
-       version = "1.3.13";
-       sha256 = "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z";
-       revision = "3";
-       editedCabalFile = "1p2srrapgx1f3zkdjjzm5g0dyfpg1h2g056la85xmpyjs77la2rq";
+       version = "1.3.14";
+       sha256 = "1msj296faldr9fiwjqi9ixx3xl638mg6ffk7axic14wf8b9zw73a";
        libraryHaskellDepends = [
          base binary bytestring cryptohash-md5 cryptohash-sha1 entropy
          network-info random text time uuid-types
        ];
        testHaskellDepends = [
-         base bytestring HUnit QuickCheck random tasty tasty-hunit
+         base bytestring QuickCheck random tasty tasty-hunit
          tasty-quickcheck
        ];
-       benchmarkHaskellDepends = [
-         base criterion mersenne-random-pure64 random
-       ];
        description = "For creating, comparing, parsing and printing Universally Unique Identifiers";
        license = lib.licenses.bsd3;
      }) {};
@@ -269906,24 +275116,20 @@ self: {
      }) {};
 
   "uuid-types" = callPackage
-    ({ mkDerivation, base, binary, bytestring, containers, criterion
-     , deepseq, hashable, HUnit, QuickCheck, random, tasty, tasty-hunit
+    ({ mkDerivation, base, binary, bytestring, deepseq, ghc-byteorder
+     , hashable, QuickCheck, random, tasty, tasty-hunit
      , tasty-quickcheck, text
      }:
      mkDerivation {
        pname = "uuid-types";
-       version = "1.0.3";
-       sha256 = "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj";
-       revision = "3";
-       editedCabalFile = "0znx08r25sgs5j7ix8i9aikhgad0kc9i6vgkg0g3jzxk5haal9sf";
+       version = "1.0.4";
+       sha256 = "01pc93z6in6g717mxkhl111qc842fz1c2z7ml6n5jhm7lg52ran2";
        libraryHaskellDepends = [
          base binary bytestring deepseq hashable random text
        ];
        testHaskellDepends = [
-         base bytestring HUnit QuickCheck tasty tasty-hunit tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring containers criterion deepseq random
+         base binary bytestring ghc-byteorder QuickCheck tasty tasty-hunit
+         tasty-quickcheck
        ];
        description = "Type definitions for Universally Unique Identifiers";
        license = lib.licenses.bsd3;
@@ -269946,8 +275152,8 @@ self: {
      }:
      mkDerivation {
        pname = "uusi";
-       version = "0.3.1.0";
-       sha256 = "14n2n62lcaxfljxxdk6pw14liksfa77jj8zby5magdnsx2jzkb5i";
+       version = "0.4.0.0";
+       sha256 = "03spazp0lpd2impvg9i6fdd32v3fzycgqr95ry2jwvaxijqhfic9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal microlens microlens-th text ];
@@ -269957,7 +275163,7 @@ self: {
        testHaskellDepends = [
          base Cabal HUnit microlens microlens-th text
        ];
-       description = "Tweak dependencies in .cabal files";
+       description = "Tweak .cabal files";
        license = lib.licenses.mit;
      }) {};
 
@@ -269997,7 +275203,7 @@ self: {
        sha256 = "0qmp5k4wg5ja2382cwarf8fwjval2a5wdwvz32f965hvwgc9cd43";
        libraryHaskellDepends = [ base json MissingH mtl ];
        description = "Cross-language extensible representation for algebraic data type instances";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -270010,7 +275216,7 @@ self: {
        sha256 = "0q6n18kqga839gkdgdwsfbnbpfm4hh1qjln17qnmfxm3ylh2l9la";
        libraryHaskellDepends = [ base process ];
        description = "Utility function for reading a source of loaded uzbl pages";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "v4l2" = callPackage
@@ -270064,7 +275270,7 @@ self: {
        ];
        testHaskellDepends = [ base process ];
        description = "the cabal companion";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -270096,7 +275302,7 @@ self: {
        sha256 = "157wjx2shzfh6dfl6h8x017cn9ji3ql1p0gpi79ginz4s81f2ny1";
        libraryHaskellDepends = [ array base containers ghc-prim ];
        description = "Graph representation of the GHC heap";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -270127,7 +275333,7 @@ self: {
        sha256 = "093ba6n30a6gyifnk3bd50rkx8qldjqq9vsk92pnq152ibs36b2m";
        libraryHaskellDepends = [ base filepath graphviz vacuum ];
        description = "A library for transforming vacuum graphs into GraphViz output";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -270277,17 +275483,15 @@ self: {
      }) {};
 
   "validation" = callPackage
-    ({ mkDerivation, base, bifunctors, deepseq, hedgehog, HUnit, lens
-     , semigroupoids, semigroups
+    ({ mkDerivation, assoc, base, bifunctors, deepseq, hedgehog, HUnit
+     , lens, semigroupoids, semigroups
      }:
      mkDerivation {
        pname = "validation";
-       version = "1.1";
-       sha256 = "1acj7mh3581ks405xswxw6667z7y1y0slisg6jvp6chc191ji9l5";
-       revision = "1";
-       editedCabalFile = "1rrjg9z399k6pb55nv85mlr5bkmdqbjwkvl1cy7ydccdx6ks4syp";
+       version = "1.1.1";
+       sha256 = "1dv7azpljdcf7irbnznnz31hq611bn1aj2m6ywghz3hgv835qqak";
        libraryHaskellDepends = [
-         base bifunctors deepseq lens semigroupoids semigroups
+         assoc base bifunctors deepseq lens semigroupoids semigroups
        ];
        testHaskellDepends = [ base hedgehog HUnit lens semigroups ];
        description = "A data-type like Either but with an accumulating Applicative";
@@ -270300,10 +275504,8 @@ self: {
      }:
      mkDerivation {
        pname = "validation-selective";
-       version = "0.1.0.0";
-       sha256 = "0ia3g2c1137pa0ns97yf8vbfvwmjhqnqhzn9lzgxvxwzchvwpnf7";
-       revision = "1";
-       editedCabalFile = "19pcv1i7xcrgg248dbgyl83zx3gn9zilrxqs3arlmkwdi0jdj4nv";
+       version = "0.1.0.1";
+       sha256 = "005j45rm0bqjlyh3w67zi62hjv3fp0np7szz80s9nm203i8p6wzb";
        libraryHaskellDepends = [ base deepseq selective ];
        testHaskellDepends = [
          base doctest hedgehog hspec hspec-hedgehog selective text
@@ -270432,6 +275634,17 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "validity-persistent" = callPackage
+    ({ mkDerivation, base, hspec, persistent, validity }:
+     mkDerivation {
+       pname = "validity-persistent";
+       version = "0.0.0.0";
+       sha256 = "02kyiwnj53kk11p0178m98gbfs7508lpk0bi4yd1svpj3vryhf6c";
+       libraryHaskellDepends = [ base hspec persistent validity ];
+       description = "Validity instances for persistent-related types";
+       license = lib.licenses.mit;
+     }) {};
+
   "validity-primitive" = callPackage
     ({ mkDerivation, base, primitive, validity }:
      mkDerivation {
@@ -270555,7 +275768,7 @@ self: {
          optparse-applicative process uniplate
        ];
        description = "Analyze and visualize expression trees";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -270683,15 +275896,14 @@ self: {
      }) {};
 
   "vault" = callPackage
-    ({ mkDerivation, base, containers, hashable, semigroups
-     , unordered-containers
+    ({ mkDerivation, base, containers, hashable, unordered-containers
      }:
      mkDerivation {
        pname = "vault";
-       version = "0.3.1.4";
-       sha256 = "0na31n56p6713az0vfhdrv53n03bb3yrnyszf3vxsjlgvrax472v";
+       version = "0.3.1.5";
+       sha256 = "181ksk1yixjg0jiggw5jvm8am8m8c7lim4xaixf8qnaqvxm6namc";
        libraryHaskellDepends = [
-         base containers hashable semigroups unordered-containers
+         base containers hashable unordered-containers
        ];
        description = "a persistent store for values of arbitrary types";
        license = lib.licenses.bsd3;
@@ -270946,18 +276158,17 @@ self: {
 
   "vec" = callPackage
     ({ mkDerivation, adjunctions, base, base-compat, criterion, deepseq
-     , distributive, fin, hashable, inspection-testing, QuickCheck
-     , semigroupoids, tagged, transformers, vector
+     , distributive, fin, hashable, indexed-traversable
+     , inspection-testing, QuickCheck, semigroupoids, tagged
+     , transformers, vector
      }:
      mkDerivation {
        pname = "vec";
-       version = "0.3";
-       sha256 = "0r2jk3jqwn0r4wnpgc8k8i664g3rrs6dkyfsysysn4w10j22j5sr";
-       revision = "2";
-       editedCabalFile = "0v9m2x1p1395dqf0g2agfgmlx6w1dak2fr50hh6aahjk4y0jp30j";
+       version = "0.4";
+       sha256 = "0z7icj5g59ml8cmcawa6ncayrzdi63s9ssllvnw2dfcd3ys5cjj0";
        libraryHaskellDepends = [
-         adjunctions base deepseq distributive fin hashable QuickCheck
-         semigroupoids transformers
+         adjunctions base deepseq distributive fin hashable
+         indexed-traversable QuickCheck semigroupoids transformers
        ];
        testHaskellDepends = [
          base base-compat fin inspection-testing tagged
@@ -270971,10 +276182,8 @@ self: {
     ({ mkDerivation, base, fin, lens, vec }:
      mkDerivation {
        pname = "vec-lens";
-       version = "0.3";
-       sha256 = "0i08p7rfmivf03mir7hcbkr7rarji95icsyvi6diclav1jd6fa7q";
-       revision = "1";
-       editedCabalFile = "0grj1abb7gjbzw06672464r75wjnmra9d12yvlmdm1qyj9zya0ph";
+       version = "0.4";
+       sha256 = "1qjv8wg6b8wbldvripn84vyw5cgpcpgh2v6v1nk7pzwrn99lfb7h";
        libraryHaskellDepends = [ base fin lens vec ];
        description = "Vec: length-indexed (sized) list: lens support";
        license = lib.licenses.bsd3;
@@ -270984,10 +276193,8 @@ self: {
     ({ mkDerivation, base, fin, optics-core, vec }:
      mkDerivation {
        pname = "vec-optics";
-       version = "0.3";
-       sha256 = "13g0j9hn27jfjlrm7c6bdsb2lhwrg016cal7hdic8azdxgdp8n0a";
-       revision = "1";
-       editedCabalFile = "10abn334qhbik8s8lx1r54vcbj3d2s091j2w98mq3cllksa8dmv0";
+       version = "0.4";
+       sha256 = "0vdpxkmhiqbql68rkrfaci6c6n7sbr49p08q0jj6cvbmjy3aa1lg";
        libraryHaskellDepends = [ base fin optics-core vec ];
        description = "Vec: length-indexed (sized) list: optics support";
        license = lib.licenses.bsd3;
@@ -271124,15 +276331,14 @@ self: {
      }) {};
 
   "vector-builder" = callPackage
-    ({ mkDerivation, attoparsec, base, base-prelude, QuickCheck
-     , quickcheck-instances, rerebase, semigroups, tasty, tasty-hunit
-     , tasty-quickcheck, vector
+    ({ mkDerivation, attoparsec, base, QuickCheck, quickcheck-instances
+     , rerebase, tasty, tasty-hunit, tasty-quickcheck, vector
      }:
      mkDerivation {
        pname = "vector-builder";
-       version = "0.3.8";
-       sha256 = "0ww0l52p8s6gmh985adnjbvm1vrqpqbm08qdcrvxwhhcqmxgv6m3";
-       libraryHaskellDepends = [ base base-prelude semigroups vector ];
+       version = "0.3.8.1";
+       sha256 = "1fd0zwycp7aprj5q1c7na97a7wqivyr2fmy8ms16fh4wln62x50y";
+       libraryHaskellDepends = [ base vector ];
        testHaskellDepends = [
          attoparsec QuickCheck quickcheck-instances rerebase tasty
          tasty-hunit tasty-quickcheck
@@ -271207,7 +276413,7 @@ self: {
          test-framework-hunit test-framework-quickcheck2
        ];
        description = "Vector clocks for versioning message flows";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -271565,10 +276771,8 @@ self: {
     ({ mkDerivation, base, data-default, template-haskell, vector }:
      mkDerivation {
        pname = "vector-th-unbox";
-       version = "0.2.1.7";
-       sha256 = "0q8dqnbv1c2gi7jjdhqj14abj1vik23ki6lq4iz2sz18yc7q69fi";
-       revision = "1";
-       editedCabalFile = "11qhhir9cdy3x7pd0z0xk8vi4nzr9fn9q3ggwbhhc43jglngw1x7";
+       version = "0.2.1.9";
+       sha256 = "0jbzm31d91kxn8m0h6iplj54h756q6f4zzdrnb2w7rzz5zskgqyl";
        libraryHaskellDepends = [ base template-haskell vector ];
        testHaskellDepends = [ base data-default vector ];
        description = "Deriver for Data.Vector.Unboxed using Template Haskell";
@@ -271609,8 +276813,8 @@ self: {
      }:
      mkDerivation {
        pname = "vega-view";
-       version = "0.3.1.6";
-       sha256 = "0s9d3g47qnzcpi2p1z60axrr53jbc6q4qyma88qxsrf6ava115ar";
+       version = "0.3.1.7";
+       sha256 = "1181gfxyxf2m3m23xg89kmmp8aizrm9sm908ydbkw885idh2k5x0";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -271726,8 +276930,8 @@ self: {
      }:
      mkDerivation {
        pname = "verifiable-expressions";
-       version = "0.6.0";
-       sha256 = "1drb5zkpm5zn765fkp2p7jq69q50f9577rz9bs76cp0gvccan8my";
+       version = "0.6.1";
+       sha256 = "0s3615m849xj0df6ia18kg4i54z87x3c6yxgv594dwf9mf9dw4x8";
        libraryHaskellDepends = [
          base containers lens mtl sbv transformers union vinyl
        ];
@@ -271808,7 +277012,7 @@ self: {
        ];
        benchmarkHaskellDepends = [ base criterion lens ];
        description = "Random verilog generation and simulator testing";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -271856,8 +277060,8 @@ self: {
      }:
      mkDerivation {
        pname = "versions";
-       version = "4.0.2";
-       sha256 = "1m7nyjqd0cyxnli5f7rbk1wrh6h7dk65i67k6xp787npf7hi6gdf";
+       version = "4.0.3";
+       sha256 = "0rp62aih4blpahymqlkrfzywdqb1mkhy6f021vp74ljknpch4scf";
        libraryHaskellDepends = [
          base deepseq hashable megaparsec parser-combinators text
        ];
@@ -272238,6 +277442,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "vinyl_0_13_1" = callPackage
+    ({ mkDerivation, aeson, array, base, criterion, deepseq, doctest
+     , ghc-prim, hspec, lens, lens-aeson, linear, microlens, mtl
+     , mwc-random, primitive, should-not-typecheck, singletons, tagged
+     , text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "vinyl";
+       version = "0.13.1";
+       sha256 = "1aip3v1jnxmx44bkshxkmd1iixml65987b4sbh4gncm6q7brkn0k";
+       libraryHaskellDepends = [ array base deepseq ghc-prim ];
+       testHaskellDepends = [
+         aeson base doctest hspec lens lens-aeson microlens mtl
+         should-not-typecheck singletons text unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [
+         base criterion linear microlens mwc-random primitive tagged vector
+       ];
+       description = "Extensible Records";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "vinyl-generics" = callPackage
     ({ mkDerivation, aeson, base, generics-sop, hspec, hspec-core
      , QuickCheck, records-sop, text, vinyl
@@ -272440,7 +277667,7 @@ self: {
          xmms2-client xmms2-client-glib
        ];
        description = "An XMMS2 client";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -272634,6 +277861,8 @@ self: {
        libraryHaskellDepends = [ base random vector vector-fftw ];
        description = "Phase vocoder";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "vocoder-audio" = callPackage
@@ -272652,6 +277881,8 @@ self: {
        ];
        description = "Phase vocoder for conduit-audio";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "vocoder-conduit" = callPackage
@@ -272673,6 +277904,8 @@ self: {
        ];
        description = "Phase vocoder for Conduit";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "vocoder-dunai" = callPackage
@@ -272694,6 +277927,8 @@ self: {
        ];
        description = "Phase vocoder for Dunai and Rhine";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "voicebase" = callPackage
@@ -272845,7 +278080,7 @@ self: {
        libraryPkgconfigDepends = [ vte ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the VTE library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) vte;};
@@ -272864,7 +278099,7 @@ self: {
        libraryPkgconfigDepends = [ vte ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the VTE library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) vte;};
@@ -272880,8 +278115,10 @@ self: {
      }:
      mkDerivation {
        pname = "vty";
-       version = "5.32";
-       sha256 = "0ydbifik7xilb33phglpjkgf6r8vifipyyq0wb6111azzj7dmszs";
+       version = "5.33";
+       sha256 = "0qsx4lwlkp6mwyr7rm1r9dg5ic1lc1awqgyag0nj1qgj2gnv6nc9";
+       revision = "1";
+       editedCabalFile = "1in66nd2xkb6mxxzazny900pz1xj83iqsql42c0rwk72chnnb8cd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -272936,7 +278173,7 @@ self: {
        isExecutable = true;
        libraryHaskellDepends = [ base vty ];
        description = "A lib for displaying a menu and getting a selection using VTY";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -272981,13 +278218,13 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "vulkan";
-       version = "3.9.1";
-       sha256 = "1rdhkxrjxcvdx3hd74xcgx28nd8ca8la5kclbxwbgciby8plpymv";
+       version = "3.10.1";
+       sha256 = "0lk4l65qvq1b3dz9fkz981zgm2m9nx38ylccnsxcgxns2s2zx9b3";
        libraryHaskellDepends = [ base bytestring transformers vector ];
        libraryPkgconfigDepends = [ vulkan ];
        description = "Bindings to the Vulkan graphics API";
        license = lib.licenses.bsd3;
-       platforms = [ "x86_64-darwin" "x86_64-linux" ];
+       platforms = [ "aarch64-linux" "x86_64-darwin" "x86_64-linux" ];
      }) {vulkan = null;};
 
   "vulkan-api" = callPackage
@@ -273011,8 +278248,8 @@ self: {
      }:
      mkDerivation {
        pname = "vulkan-utils";
-       version = "0.4.1";
-       sha256 = "1kd8v3l6c1szip8d7aw03s9vs5bnwbm66c98wbvmbmwc46rrkksh";
+       version = "0.5.0";
+       sha256 = "11pcxa7pjhdrfcxl058dn909ar6sv9kn34g73w8jqa60d2savj6q";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base bytestring containers dependent-map dependent-sum extra
@@ -273713,7 +278950,7 @@ self: {
          base bytestring conduit http-types text transformers wai wai-extra
        ];
        description = "DEPCRECATED (use package \"simple\" instead) A minimalist web framework for WAI web applications";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -273830,15 +279067,15 @@ self: {
      , blaze-builder, blaze-html, bytestring, case-insensitive, cereal
      , clientsession, cookie, exceptions, hedgehog, hoauth2, http-client
      , http-client-tls, http-conduit, http-reverse-proxy, http-types
-     , jose, microlens, mtl, optparse-simple, regex-posix
-     , safe-exceptions, shakespeare, tasty, tasty-hedgehog, tasty-hunit
-     , text, time, unix-compat, unordered-containers, uri-bytestring
-     , vault, wai, wai-app-static, wai-extra, warp, yaml
+     , jose, microlens, mtl, optparse-applicative, optparse-simple
+     , regex-posix, safe-exceptions, shakespeare, tasty, tasty-hedgehog
+     , tasty-hunit, text, time, unix-compat, unordered-containers
+     , uri-bytestring, vault, wai, wai-app-static, wai-extra, warp, yaml
      }:
      mkDerivation {
        pname = "wai-middleware-auth";
-       version = "0.2.3.1";
-       sha256 = "0i5zg6pyrr3f9g39jpk557h5rqzrm36279dav3v8n6lrj919x01m";
+       version = "0.2.4.1";
+       sha256 = "1q8vj3ri5fvdhlwls7az4zcwk7iyc3fi4yf968086pkg92hpzcdl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -273850,7 +279087,8 @@ self: {
          uri-bytestring vault wai wai-app-static wai-extra yaml
        ];
        executableHaskellDepends = [
-         base bytestring cereal clientsession optparse-simple wai-extra warp
+         base bytestring cereal clientsession optparse-applicative
+         optparse-simple wai-extra warp
        ];
        testHaskellDepends = [
          aeson base binary bytestring clientsession cookie hedgehog hoauth2
@@ -274279,7 +279517,7 @@ self: {
          base Cabal directory mtl split text wai wai-middleware-static warp
        ];
        description = "WAI middleware for preprocessing static files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -274470,6 +279708,29 @@ self: {
        broken = true;
      }) {};
 
+  "wai-middleware-validation" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, doctest
+     , filepath, here, hspec, http-types, insert-ordered-containers
+     , lens, openapi3, text, wai, wai-extra
+     }:
+     mkDerivation {
+       pname = "wai-middleware-validation";
+       version = "0.1.0.0";
+       sha256 = "0cbp32j31xkmniml56gnh278g94zhhfc8xlp842n8lll5hh13bf4";
+       libraryHaskellDepends = [
+         aeson base bytestring containers filepath http-types
+         insert-ordered-containers lens openapi3 text wai
+       ];
+       testHaskellDepends = [
+         base bytestring doctest here hspec http-types openapi3 wai
+         wai-extra
+       ];
+       description = "WAI Middleware to validate the request and response bodies";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "wai-middleware-verbs" = callPackage
     ({ mkDerivation, base, bytestring, exceptions, hashable, http-types
      , mmorph, monad-control, monad-control-aligned, monad-logger, mtl
@@ -274684,18 +279945,17 @@ self: {
 
   "wai-secure-cookies" = callPackage
     ({ mkDerivation, base, bytestring, cryptonite, hspec
-     , hspec-expectations, hspec-wai, http-types, memory, protolude
-     , random, split, wai, wai-extra
+     , hspec-expectations, hspec-wai, http-types, memory, random, split
+     , wai, wai-extra
      }:
      mkDerivation {
        pname = "wai-secure-cookies";
-       version = "0.1.0.5";
-       sha256 = "0v3gz70z968yk563g9n72v8l7mhqhkbjb9gy15s5zpf3apv1cf00";
+       version = "0.1.0.6";
+       sha256 = "02y2vw3mw3k6il7x6dfcs1fhzzbaslxk374nj4yqwzr6ax4nvrgb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring cryptonite http-types memory protolude random split
-         wai
+         base bytestring cryptonite http-types memory random split wai
        ];
        executableHaskellDepends = [ base bytestring cryptonite memory ];
        testHaskellDepends = [
@@ -274851,7 +280111,7 @@ self: {
          vector-algorithms wai
        ];
        description = "A simple cache for serving static files in a WAI middleware";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -275126,6 +280386,8 @@ self: {
        ];
        description = "A parser for the Web Archive (WARC) format";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "warp" = callPackage
@@ -275504,6 +280766,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "weak" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "weak";
+       version = "0";
+       sha256 = "0400riqrhzgmc2jfwppjknmkynmamwfid7q3k7q9k43s9s175yng";
+       libraryHaskellDepends = [ base ];
+       description = "Weak pointer extas";
+       license = "(BSD-2-Clause OR Apache-2.0)";
+     }) {};
+
   "weak-bag" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -276243,7 +281516,7 @@ self: {
          transformers unordered-containers vector wreq
        ];
        description = "Bindings to the WebDriver API";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -276414,6 +281687,8 @@ self: {
        ];
        description = "webfont generator";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "webkit" = callPackage
@@ -276432,7 +281707,7 @@ self: {
        libraryPkgconfigDepends = [ webkit ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the Webkit library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
      }) {webkit = null;};
 
@@ -276481,7 +281756,7 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk24x-gtk3 ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the Webkit library";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) webkitgtk24x-gtk3;};
 
@@ -276500,6 +281775,29 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) webkitgtk24x-gtk3;};
 
+  "webmention" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, either
+     , exceptions, hspec, http-client, http-client-tls, http-types
+     , modern-uri, tagsoup, text
+     }:
+     mkDerivation {
+       pname = "webmention";
+       version = "0.1.0.0";
+       sha256 = "12lm7w0isb1dfs28r6yr8pz5czpmw5p6krdbz0rpp4hr487sz9pb";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive either exceptions hspec
+         http-client http-client-tls http-types modern-uri tagsoup text
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive either exceptions hspec
+         http-client http-client-tls http-types modern-uri tagsoup text
+       ];
+       description = "Types and functions for working with Webmentions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "webp" = callPackage
     ({ mkDerivation, base, bytestring, c2hs, JuicyPixels, libwebp
      , tasty, tasty-hunit, vector
@@ -276517,7 +281815,7 @@ self: {
          base bytestring JuicyPixels tasty tasty-hunit
        ];
        description = "JuicyPixels support for WebP format";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {inherit (pkgs) libwebp;};
 
   "webpage" = callPackage
@@ -277230,6 +282528,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "wikicfp-scraper_0_1_0_12" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, filepath, hspec
+     , hspec-discover, scalpel-core, text, time
+     }:
+     mkDerivation {
+       pname = "wikicfp-scraper";
+       version = "0.1.0.12";
+       sha256 = "03l8ggnnkq7gx5qf9rrng50wb5cabyam8vrs2bnrm02gcgjx89sx";
+       libraryHaskellDepends = [
+         attoparsec base bytestring scalpel-core text time
+       ];
+       testHaskellDepends = [ base bytestring filepath hspec time ];
+       testToolDepends = [ hspec-discover ];
+       description = "Scrape WikiCFP web site";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "wikipedia4epub" = callPackage
     ({ mkDerivation, base, bytestring, directory, epub, filepath
      , haskell98, HTTP, network, regex-base, regex-posix, tagsoup, url
@@ -277269,14 +282585,34 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "wild-bind_0_1_2_7" = callPackage
+    ({ mkDerivation, base, containers, hspec, hspec-discover, microlens
+     , QuickCheck, semigroups, stm, text, transformers
+     }:
+     mkDerivation {
+       pname = "wild-bind";
+       version = "0.1.2.7";
+       sha256 = "1vp88124shp9f79wfrdkp964pfmyzhsg3j718bkqrpgw5wbnwds0";
+       libraryHaskellDepends = [
+         base containers semigroups text transformers
+       ];
+       testHaskellDepends = [
+         base hspec microlens QuickCheck stm transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Dynamic key binding framework";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "wild-bind-indicator" = callPackage
     ({ mkDerivation, async, base, containers, gi-gdk, gi-glib, gi-gtk
      , text, transformers, wild-bind
      }:
      mkDerivation {
        pname = "wild-bind-indicator";
-       version = "1.0.0.0";
-       sha256 = "1irb8njd076vwz2676v0fa56agsszcs9ra5pbzlyxbb69kg2fgq3";
+       version = "1.0.0.1";
+       sha256 = "0r9850zk2gmx492palbam6nl5ym9ml5lpgx0c1jyvpbn3caqgxas";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          async base containers gi-gdk gi-glib gi-gtk text transformers
@@ -277294,8 +282630,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind-task-x11";
-       version = "0.2.0.2";
-       sha256 = "1hxsykbzw3z3vhzpi2z4b6gxvbr91s0jkxq9jc47xzx6ar0x7jq0";
+       version = "0.2.0.3";
+       sha256 = "1agrwh4sgajyqs655p5ppz2vamp6xf5h5sckqb83zzjvn8i293dk";
        libraryHaskellDepends = [
          base text transformers wild-bind wild-bind-indicator wild-bind-x11
        ];
@@ -277325,6 +282661,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "wild-bind-x11_0_2_0_12" = callPackage
+    ({ mkDerivation, async, base, containers, fold-debounce, hspec
+     , hspec-discover, mtl, semigroups, stm, text, time, transformers
+     , wild-bind, X11
+     }:
+     mkDerivation {
+       pname = "wild-bind-x11";
+       version = "0.2.0.12";
+       sha256 = "1zpb448pj586xvh0l9qp08hvbjw1lphxwzi4srnghmsbnfnkvhh6";
+       libraryHaskellDepends = [
+         base containers fold-debounce mtl semigroups stm text transformers
+         wild-bind X11
+       ];
+       testHaskellDepends = [
+         async base hspec text time transformers wild-bind X11
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "X11-specific implementation for WildBind";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "wilton-ffi" = callPackage
     ({ mkDerivation, aeson, base, bytestring, utf8-string }:
      mkDerivation {
@@ -277356,12 +282714,12 @@ self: {
        pname = "windns";
        version = "0.1.0.1";
        sha256 = "016d1cf51jqvhbzlf5kbizv4l4dymradac1420rl47q2k5faczq8";
-       revision = "1";
-       editedCabalFile = "17d44pzi4q5yvrygimdrwdrabz62s1ylw918w28sxgcvj64ir22g";
+       revision = "2";
+       editedCabalFile = "129amxjf05b6vi9ln8ijxry062av8bmv3wnng0jis71fyw8ldr0p";
        libraryHaskellDepends = [ base bytestring deepseq ];
        librarySystemDepends = [ dnsapi ];
        description = "Domain Name Service (DNS) lookup via the <windns.h>/dnsapi.dll standard library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {dnsapi = null;};
@@ -277577,8 +282935,8 @@ self: {
      }:
      mkDerivation {
        pname = "with-utf8";
-       version = "1.0.2.1";
-       sha256 = "13zifhmhpdfwifw9bwyn9w5a29iph7h59jx13r0wiw5ry0g7qbif";
+       version = "1.0.2.2";
+       sha256 = "04ymb90yli9sbdl750yh0nvpn6crnrb2axhx8hrswz5g86cabcmq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base safe-exceptions text ];
@@ -277607,7 +282965,7 @@ self: {
        ];
        testHaskellDepends = [ base conduit hspec HUnit mtl ];
        description = "Run computations that depend on one or more elements in a stream";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "witherable" = callPackage
@@ -277634,22 +282992,6 @@ self: {
      }) {};
 
   "witherable-class" = callPackage
-    ({ mkDerivation, base, base-orphans, containers, hashable
-     , transformers, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "witherable-class";
-       version = "0";
-       sha256 = "0jb8yq9i0rlbmcd5rbg95m2w26zbmi7iwph5v7wghiari751r2bp";
-       libraryHaskellDepends = [
-         base base-orphans containers hashable transformers
-         unordered-containers vector
-       ];
-       description = "Witherable = Traversable + Filterable";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "witherable-class_0_0_1" = callPackage
     ({ mkDerivation, base, witherable }:
      mkDerivation {
        pname = "witherable-class";
@@ -277658,7 +283000,6 @@ self: {
        libraryHaskellDepends = [ base witherable ];
        description = "Witherable = Traversable + Filterable";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "within" = callPackage
@@ -278060,7 +283401,7 @@ self: {
        libraryHaskellDepends = [ base binary containers ];
        testHaskellDepends = [ base binary containers hspec QuickCheck ];
        description = "Implementation of a finite trie over words";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "word-vector" = callPackage
@@ -278310,6 +283651,8 @@ self: {
        ];
        description = "Validate Wordpress Cookies & Nonces; Build Wordpress Hashes & Salts";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "words" = callPackage
@@ -278428,7 +283771,7 @@ self: {
        ];
        executableHaskellDepends = [ base ];
        description = "a \"Desktop Workflow\" monad with Objective-C bindings";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -278566,8 +283909,8 @@ self: {
      }:
      mkDerivation {
        pname = "wraxml";
-       version = "0.4.4.1";
-       sha256 = "04snqwr6plf1y179dzfjjmg9kjf4lbdgj22xqlhw6wllvd8953c2";
+       version = "0.4.4.2";
+       sha256 = "1cfbbr1fbp7wrm2w7rldvf3gvp8fzvnpa6c2mkxscarhmn5wl92z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -278576,7 +283919,7 @@ self: {
          xml-basic
        ];
        description = "Lazy wrapper to HaXML, HXT, TagSoup via custom XML tree structure";
-       license = "GPL";
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -279031,7 +284374,7 @@ self: {
          base bytestring file-embed hspec network-uri
        ];
        description = "WSDL parsing in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -279050,7 +284393,7 @@ self: {
          base bencode bytestring containers directory safe utf8-string
        ];
        description = "A small tool to list, add and remove webseeds from a torrent file";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -279502,7 +284845,7 @@ self: {
          type-level
        ];
        description = "A embedded DSL for manipulating DSP languages in Haskell";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -279665,7 +285008,9 @@ self: {
        ];
        description = "Haskell extended file attributes interface";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) attr;};
 
   "xbattbar" = callPackage
@@ -279735,7 +285080,7 @@ self: {
          base directory filepath process unix
        ];
        description = "XChat";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -279752,7 +285097,7 @@ self: {
          base bytestring containers mtl network transformers
        ];
        description = "Partial implementation of the XCP protocol with ethernet as transport layer";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -279901,7 +285246,7 @@ self: {
        libraryPkgconfigDepends = [ libxfconf ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "FFI bindings to xfconf";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {libxfconf = null;};
@@ -280227,8 +285572,8 @@ self: {
      }:
      mkDerivation {
        pname = "xlsx";
-       version = "0.8.2";
-       sha256 = "0kjfnp24nc97qqla1z65wzy59cch336pjncz1kdfakmgv27mv38a";
+       version = "0.8.3";
+       sha256 = "11g6bfir21wgafnkzzx26r6mz8m39isaz2yqw92k5ymdb1qhs95q";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring binary-search bytestring conduit
          containers data-default deepseq errors extra filepath lens mtl
@@ -280243,8 +285588,6 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Simple and incomplete Excel file parser/writer";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xlsx-tabular" = callPackage
@@ -280334,14 +285677,15 @@ self: {
 
   "xml-conduit" = callPackage
     ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup
-     , bytestring, conduit, conduit-extra, containers
-     , data-default-class, deepseq, doctest, hspec, HUnit, resourcet
-     , text, transformers, xml-types
+     , bytestring, Cabal, cabal-doctest, conduit, conduit-extra
+     , containers, data-default-class, deepseq, doctest, hspec, HUnit
+     , resourcet, text, transformers, xml-types
      }:
      mkDerivation {
        pname = "xml-conduit";
-       version = "1.9.0.0";
-       sha256 = "1p57v127882rxvvmwjmvnqdmk3x2wg1z4d8y03849h0xaz1vid0w";
+       version = "1.9.1.0";
+       sha256 = "0ag0g9x5qnw1nfgc31h6bj2qv0h1c2y7n1l0g99l4dkn428dk9ca";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          attoparsec base blaze-html blaze-markup bytestring conduit
          conduit-extra containers data-default-class deepseq resourcet text
@@ -280400,6 +285744,27 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "xml-conduit-selectors" = callPackage
+    ({ mkDerivation, base, containers, data-default, megaparsec, tasty
+     , tasty-hunit, tasty-quickcheck, text, xml-conduit
+     }:
+     mkDerivation {
+       pname = "xml-conduit-selectors";
+       version = "0.2.0.0";
+       sha256 = "1h1gfnsrypy9w559rgbgabidzpaw580xy0m6l12bbcjc92kr3mf0";
+       libraryHaskellDepends = [
+         base containers megaparsec text xml-conduit
+       ];
+       testHaskellDepends = [
+         base containers data-default tasty tasty-hunit tasty-quickcheck
+         text xml-conduit
+       ];
+       description = "jQuery-style CSS selectors for xml-conduit";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "xml-conduit-stylist" = callPackage
     ({ mkDerivation, base, containers, css-syntax, network-uri, stylist
      , text, unordered-containers, xml-conduit
@@ -280408,8 +285773,8 @@ self: {
        pname = "xml-conduit-stylist";
        version = "2.3.0.0";
        sha256 = "15iznb6xpas8044p03w3vll4vv7zwpcbbrh59ywwjr8m45659p4w";
-       revision = "1";
-       editedCabalFile = "0ydqjrk5q3zzgrwk9cqcjlk3vafzcnxjvb7p74ywm5wfnhmfvmyn";
+       revision = "2";
+       editedCabalFile = "16hky6q4v5zmxyarj464i5hlq7s4c9b3vb7skxn2yi66vfy03a32";
        libraryHaskellDepends = [
          base containers css-syntax network-uri stylist text
          unordered-containers xml-conduit
@@ -280489,8 +285854,6 @@ 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
@@ -280616,6 +285979,8 @@ self: {
        pname = "xml-lens";
        version = "0.3";
        sha256 = "1i3b22sz7fkh9vjlfpwzz6fg57br8xq6q7zz76f66h6hymc284dz";
+       revision = "1";
+       editedCabalFile = "0is48y2k6lsdwd2cqwvhxfjs7q5qccis8vcmw7cws18cb7vjks1x";
        libraryHaskellDepends = [
          base case-insensitive containers lens text xml-conduit
        ];
@@ -281080,7 +286445,7 @@ self: {
        ];
        libraryToolDepends = [ c2hs ];
        description = "An XMMS2 client library";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -281094,7 +286459,7 @@ self: {
        libraryHaskellDepends = [ base haskell98 xmms2-client ];
        libraryToolDepends = [ c2hs ];
        description = "An XMMS2 client library — GLib integration";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -281141,7 +286506,9 @@ self: {
        benchmarkHaskellDepends = [ base gauge mtl time ];
        description = "A Minimalistic Text Based Status Bar";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs.xorg) libXpm; inherit (pkgs.xorg) libXrandr; 
          inherit (pkgs.xorg) libXrender; inherit (pkgs) wirelesstools;};
 
@@ -281242,7 +286609,7 @@ self: {
        sha256 = "1xs9qwzq9x552jw9wxdaddk2w1m5kc060mqahhk2f2q3zs9nk2n9";
        libraryHaskellDepends = [ base mtl xmonad xmonad-contrib ];
        description = "Third party extensions for xmonad";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -281403,7 +286770,7 @@ self: {
        editedCabalFile = "1vxgv702wgr0k0kzd602v8xv11q5dap4mfhqifnr928bwf9scp28";
        libraryHaskellDepends = [ base magic mtl random unix xmonad ];
        description = "xmonad wallpaper extension";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
      }) {};
 
   "xmonad-windownames" = callPackage
@@ -281624,43 +286991,45 @@ self: {
      }) {};
 
   "xrefcheck" = callPackage
-    ({ mkDerivation, aeson, aeson-options, async, base, bytestring
+    ({ mkDerivation, aeson, aeson-casing, async, base, bytestring
      , cmark-gfm, containers, data-default, deepseq, directory
-     , directory-tree, filepath, fmt, Glob, hspec, hspec-discover
-     , http-client, http-types, lens, modern-uri, mtl, o-clock
-     , optparse-applicative, pretty-terminal, QuickCheck, req
-     , roman-numerals, template-haskell, text, text-metrics
-     , th-lift-instances, th-utilities, universum, with-utf8, yaml
+     , directory-tree, file-embed, filepath, fmt, Glob, hspec
+     , hspec-discover, http-client, http-types, HUnit, lens, modern-uri
+     , mtl, o-clock, optparse-applicative, pretty-terminal, QuickCheck
+     , regex-tdfa, req, roman-numerals, template-haskell, text
+     , text-metrics, th-lift-instances, th-utilities, transformers
+     , universum, with-utf8, yaml
      }:
      mkDerivation {
        pname = "xrefcheck";
-       version = "0.1.2";
-       sha256 = "0m3cya6rfx7ypq4sp172z9fnnl6n11v98f6bj003phrapl6s0vnn";
+       version = "0.1.3";
+       sha256 = "0v7ylf21kky36shq1l33mlcsg2iihqwqx7bxyjlmhndp9hi0dr8l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-options async base bytestring cmark-gfm containers
-         data-default deepseq directory directory-tree filepath fmt Glob
-         http-client http-types lens modern-uri mtl o-clock
-         optparse-applicative pretty-terminal req roman-numerals
+         aeson aeson-casing async base bytestring cmark-gfm containers
+         data-default deepseq directory directory-tree file-embed filepath
+         fmt Glob http-client http-types HUnit lens modern-uri mtl o-clock
+         optparse-applicative pretty-terminal regex-tdfa req roman-numerals
          template-haskell text text-metrics th-lift-instances th-utilities
-         universum with-utf8 yaml
+         transformers universum with-utf8 yaml
        ];
        executableHaskellDepends = [
-         aeson aeson-options async base bytestring cmark-gfm containers
-         data-default deepseq directory directory-tree filepath fmt Glob
-         http-client http-types lens modern-uri mtl o-clock
-         optparse-applicative pretty-terminal req roman-numerals
+         aeson aeson-casing async base bytestring cmark-gfm containers
+         data-default deepseq directory directory-tree file-embed filepath
+         fmt Glob http-client http-types HUnit lens modern-uri mtl o-clock
+         optparse-applicative pretty-terminal regex-tdfa req roman-numerals
          template-haskell text text-metrics th-lift-instances th-utilities
-         universum with-utf8 yaml
+         transformers universum with-utf8 yaml
        ];
        testHaskellDepends = [
-         aeson aeson-options async base bytestring cmark-gfm containers
-         data-default deepseq directory directory-tree filepath fmt Glob
-         hspec http-client http-types lens modern-uri mtl o-clock
-         optparse-applicative pretty-terminal QuickCheck req roman-numerals
-         template-haskell text text-metrics th-lift-instances th-utilities
-         universum with-utf8 yaml
+         aeson aeson-casing async base bytestring cmark-gfm containers
+         data-default deepseq directory directory-tree file-embed filepath
+         fmt Glob hspec http-client http-types HUnit lens modern-uri mtl
+         o-clock optparse-applicative pretty-terminal QuickCheck regex-tdfa
+         req roman-numerals template-haskell text text-metrics
+         th-lift-instances th-utilities transformers universum with-utf8
+         yaml
        ];
        testToolDepends = [ hspec-discover ];
        license = lib.licenses.mpl20;
@@ -281843,7 +287212,7 @@ self: {
          split text time
        ];
        description = "#plaimi's all-encompassing bot";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -281948,6 +287317,25 @@ self: {
        broken = true;
      }) {};
 
+  "yahoo-prices" = callPackage
+    ({ mkDerivation, base, bytestring, cassava, hspec, lens, QuickCheck
+     , time, vector, wreq
+     }:
+     mkDerivation {
+       pname = "yahoo-prices";
+       version = "0.1.0.2";
+       sha256 = "1zyrj6rq75blzh1v9ja2bbyfaf3c2a6648lcmflmxmd45350ah9f";
+       libraryHaskellDepends = [
+         base bytestring cassava lens time vector wreq
+       ];
+       testHaskellDepends = [ base bytestring hspec QuickCheck time ];
+       doHaddock = false;
+       description = "A wrapper around Yahoo API for downloading market data";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "yahoo-web-search" = callPackage
     ({ mkDerivation, base, HTTP, network, xml }:
      mkDerivation {
@@ -281971,7 +287359,7 @@ self: {
        librarySystemDepends = [ yajl ];
        libraryToolDepends = [ c2hs ];
        description = "Bindings for YAJL, an event-based JSON implementation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) yajl;};
@@ -281988,7 +287376,7 @@ self: {
          base bytestring enumerator json-types text transformers yajl
        ];
        description = "Enumerator-based interface to YAJL, an event-based JSON implementation";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -282531,26 +287919,18 @@ self: {
 
   "yamlparse-applicative" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers
-     , genvalidity-aeson, genvalidity-containers, genvalidity-hspec
-     , genvalidity-scientific, genvalidity-text
-     , genvalidity-unordered-containers, hspec, optparse-applicative
-     , path, path-io, prettyprinter, QuickCheck, scientific, text
-     , unordered-containers, validity, validity-text, vector, yaml
+     , optparse-applicative, path, path-io, prettyprinter
+     , safe-coloured-text, scientific, text, unordered-containers
+     , validity, validity-text, vector, yaml
      }:
      mkDerivation {
        pname = "yamlparse-applicative";
-       version = "0.1.0.2";
-       sha256 = "1bzf3kbhccxzg88amyk3ys3bwfi99fhmfa843sxn53nrbgphdw09";
+       version = "0.1.0.3";
+       sha256 = "14fp7qyfh9ax2cqp5amvj2hi8fl9imdq25j8bx5mil8f2jxqr6bi";
        libraryHaskellDepends = [
          aeson base bytestring containers optparse-applicative path path-io
-         prettyprinter scientific text unordered-containers validity
-         validity-text vector yaml
-       ];
-       testHaskellDepends = [
-         aeson base containers genvalidity-aeson genvalidity-containers
-         genvalidity-hspec genvalidity-scientific genvalidity-text
-         genvalidity-unordered-containers hspec QuickCheck scientific text
-         unordered-containers
+         prettyprinter safe-coloured-text scientific text
+         unordered-containers validity validity-text vector yaml
        ];
        description = "Declaritive configuration parsing with free docs";
        license = lib.licenses.mit;
@@ -282585,7 +287965,7 @@ self: {
          base GLFW-b newtype OpenGL vector-space Yampa
        ];
        description = "Connects GLFW-b (GLFW 3+) with the Yampa FRP library";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -282619,7 +287999,7 @@ self: {
          base GLUT newtype OpenGL vector-space Yampa-core
        ];
        description = "Connects Yampa and GLUT";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -282752,8 +288132,8 @@ self: {
      }:
      mkDerivation {
        pname = "yarn-lock";
-       version = "0.6.2";
-       sha256 = "06wha8cm7hw83d32fq5r8mpzh5pwmf67dxsw8qxqw26qy8pnby96";
+       version = "0.6.4";
+       sha256 = "0vab0k1z2b8j18d5bqiraa4zpxr9rqg2s52y28j3qk292lmpmni9";
        libraryHaskellDepends = [
          base containers either megaparsec protolude text
        ];
@@ -282764,8 +288144,7 @@ self: {
        ];
        description = "Represent and parse yarn.lock files";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "yarn2nix" = callPackage
@@ -282803,8 +288182,7 @@ self: {
        ];
        description = "Convert yarn.lock files to nix expressions";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "yarr" = callPackage
@@ -282839,6 +288217,25 @@ self: {
        broken = true;
      }) {inherit (pkgs) libdevil;};
 
+  "yasi" = callPackage
+    ({ mkDerivation, base, bytestring, hedgehog, tasty, tasty-discover
+     , tasty-hedgehog, tasty-hunit, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "yasi";
+       version = "0.1.2.1";
+       sha256 = "0647z79wva7apkp0swj7gax780vqmhr5czxrvg88gl3bi03wcapl";
+       libraryHaskellDepends = [ base bytestring template-haskell text ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-hedgehog tasty-hunit text
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Yet another string interpolator";
+       license = lib.licenses.cc0;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "yate" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, hspec, mtl, scientific
      , template-haskell, text, unordered-containers, vector
@@ -282894,7 +288291,7 @@ self: {
          th-abstraction transformers
        ];
        description = "Total recursion schemes";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "yaya-hedgehog" = callPackage
@@ -282905,7 +288302,7 @@ self: {
        sha256 = "0aw932d2yr3w84ia44y46w4w96bc8gdag63h66rhx3v7gwmkwdwg";
        libraryHaskellDepends = [ base deriving-compat hedgehog yaya ];
        description = "Hedgehog testing support for the Yaya recursion scheme library";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "yaya-test" = callPackage
@@ -282922,7 +288319,7 @@ self: {
          base deriving-compat hedgehog yaya yaya-hedgehog
        ];
        description = "Test suites for `yaya`";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -282939,7 +288336,7 @@ self: {
          base bifunctors comonad either free lens yaya
        ];
        description = "Non-total extensions to the Yaya recursion scheme library";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "yaya-unsafe-test" = callPackage
@@ -282955,7 +288352,7 @@ self: {
          base hedgehog yaya yaya-hedgehog yaya-unsafe
        ];
        description = "Test suites for `yaya-unsafe`";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -283008,7 +288405,7 @@ self: {
          aeson base numbered-semigroups tasty tasty-hunit tasty-quickcheck
        ];
        description = "Yesod-based server for interactive presentation slides";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -283283,6 +288680,35 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "yesod-auth_1_6_10_2" = callPackage
+    ({ mkDerivation, aeson, authenticate, base, base16-bytestring
+     , base64-bytestring, binary, blaze-builder, blaze-html
+     , blaze-markup, bytestring, conduit, conduit-extra, containers
+     , cryptonite, data-default, email-validate, file-embed, http-client
+     , http-client-tls, http-conduit, http-types, memory, network-uri
+     , nonce, persistent, random, safe, shakespeare, template-haskell
+     , text, time, transformers, unliftio, unliftio-core
+     , unordered-containers, wai, yesod-core, yesod-form
+     , yesod-persistent
+     }:
+     mkDerivation {
+       pname = "yesod-auth";
+       version = "1.6.10.2";
+       sha256 = "16c4rddfmpw1smk7zayflwp1xy3avrqcr0cv6qx4aq949zpn6lz8";
+       libraryHaskellDepends = [
+         aeson authenticate base base16-bytestring base64-bytestring binary
+         blaze-builder blaze-html blaze-markup bytestring conduit
+         conduit-extra containers cryptonite data-default email-validate
+         file-embed http-client http-client-tls http-conduit http-types
+         memory network-uri nonce persistent random safe shakespeare
+         template-haskell text time transformers unliftio unliftio-core
+         unordered-containers wai yesod-core yesod-form yesod-persistent
+       ];
+       description = "Authentication for Yesod";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "yesod-auth-account" = callPackage
     ({ mkDerivation, base, blaze-html, bytestring, hspec, monad-logger
      , mtl, nonce, persistent, persistent-sqlite, pwstore-fast
@@ -283552,8 +288978,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-lti13";
-       version = "0.2.0.0";
-       sha256 = "0g48g1ajzwp7k7q3vi1z4nvmmvcfiyziizfydnd3i26xf7nvzqnx";
+       version = "0.2.0.1";
+       sha256 = "1ylwg85q6j04rmq0lclyiv7by3dgwmpya5hv1dqhaw62nlfh05r6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -283563,7 +288989,7 @@ self: {
          yesod-auth yesod-core
        ];
        description = "A yesod-auth plugin for LTI 1.3";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -283610,32 +289036,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-oauth2";
-       version = "0.6.1.7";
-       sha256 = "11z4zgzj9j15agnqj9dpfavmi2ns9d6aa4inazk1kig1wai2inp1";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring cryptonite errors hoauth2 http-client
-         http-conduit http-types memory microlens safe-exceptions text
-         uri-bytestring yesod-auth yesod-core
-       ];
-       testHaskellDepends = [ base hspec uri-bytestring ];
-       description = "OAuth 2.0 authentication plugins";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "yesod-auth-oauth2_0_6_2_2" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, cryptonite, errors
-     , hoauth2, hspec, http-client, http-conduit, http-types, memory
-     , microlens, safe-exceptions, text, uri-bytestring, yesod-auth
-     , yesod-core
-     }:
-     mkDerivation {
-       pname = "yesod-auth-oauth2";
-       version = "0.6.2.2";
-       sha256 = "176iz5mg9jhrp8kp61f12j1jw3icnqp10dxln7046p1nqam0nv3d";
+       version = "0.6.2.3";
+       sha256 = "1vf4cfbqg4zx3rdihj1iajk6kmj9c8xk4s4n2n40yvz2rmbjy0yb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -283716,33 +289118,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-bin";
-       version = "1.6.0.6";
-       sha256 = "044xk75pymw6limz08zicxp4lw8jqf6f2ilj8i2qw2h419w3ry9f";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         base bytestring Cabal conduit conduit-extra containers
-         data-default-class directory file-embed filepath fsnotify
-         http-client http-client-tls http-reverse-proxy http-types network
-         optparse-applicative process project-template say split stm
-         streaming-commons tar text time transformers transformers-compat
-         unliftio unordered-containers wai wai-extra warp warp-tls yaml zlib
-       ];
-       description = "The yesod helper executable";
-       license = lib.licenses.mit;
-     }) {};
-
-  "yesod-bin_1_6_1" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, conduit, conduit-extra
-     , containers, data-default-class, directory, file-embed, filepath
-     , fsnotify, http-client, http-client-tls, http-reverse-proxy
-     , http-types, network, optparse-applicative, process
-     , project-template, say, split, stm, streaming-commons, tar, text
-     , time, transformers, transformers-compat, unliftio
-     , unordered-containers, wai, wai-extra, warp, warp-tls, yaml, zlib
-     }:
-     mkDerivation {
-       pname = "yesod-bin";
        version = "1.6.1";
        sha256 = "0saz5dcygyf91f8hqvsy9wpcc5pg7vd9gcp891fiz4cywsrqpzwx";
        isLibrary = false;
@@ -283757,7 +289132,6 @@ self: {
        ];
        description = "The yesod helper executable";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yesod-bootstrap" = callPackage
@@ -284447,15 +289821,35 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-markdown";
-       version = "0.12.6.3";
-       sha256 = "1q2zbb49248ppda5k5lxqnq8s5yf1mym05jwna59m0kfxp63xbj5";
+       version = "0.12.6.6";
+       sha256 = "1myjm5fjcqkzh90bz14mn5rrhy41wfg0i76dihhbkhx7g15z4nwz";
        libraryHaskellDepends = [
          base blaze-html blaze-markup bytestring directory pandoc persistent
          shakespeare text xss-sanitize yesod-core yesod-form
        ];
        testHaskellDepends = [ base blaze-html hspec text ];
        description = "Tools for using markdown in a yesod application";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "yesod-markdown_0_12_6_8" = callPackage
+    ({ mkDerivation, base, blaze-html, blaze-markup, bytestring
+     , directory, hspec, pandoc, persistent, shakespeare, text
+     , xss-sanitize, yesod-core, yesod-form
+     }:
+     mkDerivation {
+       pname = "yesod-markdown";
+       version = "0.12.6.8";
+       sha256 = "1jlnci0wkfg04qvad7qx19321s8jf2rskjghirwcqy1abg3bf96p";
+       libraryHaskellDepends = [
+         base blaze-html blaze-markup bytestring directory pandoc persistent
+         shakespeare text xss-sanitize yesod-core yesod-form
+       ];
+       testHaskellDepends = [ base blaze-html hspec text ];
+       description = "Tools for using markdown in a yesod application";
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -284503,8 +289897,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-page-cursor";
-       version = "2.0.0.3";
-       sha256 = "1qj3qsrzjh0w0hc9ngbxd82pkwb8jylhf0nihhnk4dvrdqm2yvyb";
+       version = "2.0.0.5";
+       sha256 = "0jz5dhmvfggbyjkcxs7v4pc4jpcd759jfv77avzwr64xx2glk1yw";
        libraryHaskellDepends = [
          aeson base bytestring containers http-link-header network-uri text
          unliftio yesod-core
@@ -284612,6 +290006,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "yesod-persistent_1_6_0_6" = callPackage
+    ({ mkDerivation, base, blaze-builder, conduit, hspec, persistent
+     , persistent-sqlite, persistent-template, resource-pool, resourcet
+     , text, transformers, wai-extra, yesod-core
+     }:
+     mkDerivation {
+       pname = "yesod-persistent";
+       version = "1.6.0.6";
+       sha256 = "169bwdnaxw926yr5wbcgf7n6v914sgv2vw6ywc95b5xpm0i0dyph";
+       libraryHaskellDepends = [
+         base blaze-builder conduit persistent persistent-template
+         resource-pool resourcet transformers yesod-core
+       ];
+       testHaskellDepends = [
+         base blaze-builder conduit hspec persistent persistent-sqlite text
+         wai-extra yesod-core
+       ];
+       description = "Some helpers for using Persistent from Yesod";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "yesod-platform" = callPackage
     ({ mkDerivation, ansi-terminal, ansi-wl-pprint, asn1-encoding
      , asn1-parse, asn1-types, attoparsec-conduit, authenticate
@@ -285335,7 +290751,7 @@ self: {
        ];
        testHaskellDepends = [ base cryptonite hspec QuickCheck ];
        description = "Executable specifications of composable cryptographic protocols";
-       license = lib.licenses.agpl3;
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285392,7 +290808,7 @@ self: {
          yi-mode-haskell yi-mode-javascript yi-rope
        ];
        description = "Yi editor";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285412,7 +290828,7 @@ self: {
          yi-rope
        ];
        description = "Add-ons to Yi, the Haskell-Scriptable Editor";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285444,7 +290860,7 @@ self: {
        ];
        benchmarkHaskellDepends = [ base criterion deepseq yi-rope ];
        description = "Yi editor core library";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285462,7 +290878,7 @@ self: {
          transformers-base yi-core yi-rope
        ];
        description = "Dynamic configuration support for Yi";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285475,7 +290891,7 @@ self: {
        sha256 = "1kbds9s0r67bdvigjk0c58slbifnddp6ppv4jrgv6493pylp78qv";
        libraryHaskellDepends = [ base containers split yi-language ];
        description = "Simple mapping from colour names used in emacs to Color";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285496,7 +290912,7 @@ self: {
          yi-language yi-rope
        ];
        description = "Pango frontend for Yi editor";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285515,7 +290931,7 @@ self: {
          stm text vty yi-core yi-language yi-rope
        ];
        description = "Vty frontend for Yi editor";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285535,7 +290951,7 @@ self: {
          yi-rope
        ];
        description = "Fuzzy open plugin for yi";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285564,7 +290980,7 @@ self: {
          text yi-core yi-language yi-rope
        ];
        description = "Yi editor incremental reader";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285581,7 +290997,7 @@ self: {
          base microlens-platform text yi-core yi-keymap-emacs yi-rope
        ];
        description = "Cua keymap for Yi editor";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285600,7 +291016,7 @@ self: {
          text transformers-base yi-core yi-language yi-misc-modes yi-rope
        ];
        description = "Emacs keymap for Yi editor";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285628,7 +291044,7 @@ self: {
          unordered-containers yi-core yi-language yi-rope
        ];
        description = "Vim keymap for Yi editor";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285657,7 +291073,7 @@ self: {
          unordered-containers
        ];
        description = "Collection of language-related Yi libraries";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285676,7 +291092,7 @@ self: {
        ];
        libraryToolDepends = [ alex ];
        description = "Yi editor miscellaneous modes";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285695,7 +291111,7 @@ self: {
        ];
        libraryToolDepends = [ alex ];
        description = "Yi editor haskell mode";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285715,7 +291131,7 @@ self: {
        ];
        libraryToolDepends = [ alex ];
        description = "Yi editor javascript mode";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -285749,7 +291165,7 @@ self: {
        ];
        benchmarkHaskellDepends = [ base criterion deepseq text ];
        description = "A rope data structure used by Yi";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
      }) {};
 
   "yi-snippet" = callPackage
@@ -285769,7 +291185,7 @@ self: {
          base containers tasty-hunit tasty-th yi-rope
        ];
        description = "Snippet support for yi";
-       license = lib.licenses.gpl2;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -286118,7 +291534,7 @@ self: {
        libraryHaskellDepends = [ base cryptonite memory yu-utils ];
        testHaskellDepends = [ base MonadRandom random yu-utils ];
        description = "Auth module for Yu";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -286132,7 +291548,7 @@ self: {
        libraryHaskellDepends = [ base yu-auth yu-utils ];
        testHaskellDepends = [ base blaze-markup hspec yu-utils ];
        description = "The core of Yu";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -286149,7 +291565,7 @@ self: {
          base cmdargs yaml yu-auth yu-core yu-utils
        ];
        description = "The launcher for Yu";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -286168,7 +291584,7 @@ self: {
          base cmdargs directory echo filepath process yu-auth yu-utils
        ];
        description = "Tool for Yu";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -286193,7 +291609,7 @@ self: {
          warp xml-hamlet yesod-core
        ];
        description = "Utils for Yu";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -286284,7 +291700,7 @@ self: {
          time transformers vector xml-conduit
        ];
        description = "Utilities for reading and writing Alteryx .yxdb files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -286407,8 +291823,8 @@ self: {
     ({ mkDerivation, base, c2hs, zbar }:
      mkDerivation {
        pname = "zbar";
-       version = "0.1.1.0";
-       sha256 = "03d81yxqf15q0ryynni55pww0z5v313yg0nb00r8zlibn96mjf5z";
+       version = "0.2.0.0";
+       sha256 = "1h9s6ydazviz4fcmhpsr6srcbkgx2dmx29lhzxjysnmkbvg4gpw9";
        libraryHaskellDepends = [ base ];
        libraryPkgconfigDepends = [ zbar ];
        libraryToolDepends = [ c2hs ];
@@ -286464,6 +291880,40 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "zenacy-html_2_0_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion
+     , data-default, dlist, extra, HUnit, mtl, pretty-show
+     , raw-strings-qq, safe, safe-exceptions, test-framework
+     , test-framework-hunit, text, transformers, vector, word8
+     }:
+     mkDerivation {
+       pname = "zenacy-html";
+       version = "2.0.3";
+       sha256 = "1lbgl2g921prcgl0pk5c8mzfy7ssnnrk7d4rz047xhgb3x0381nc";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers data-default dlist extra mtl pretty-show
+         safe safe-exceptions text transformers vector word8
+       ];
+       executableHaskellDepends = [
+         base bytestring containers data-default dlist extra pretty-show
+         text vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers data-default dlist extra HUnit mtl
+         pretty-show raw-strings-qq test-framework test-framework-hunit text
+         transformers
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers criterion data-default dlist pretty-show
+         raw-strings-qq text
+       ];
+       description = "A standard compliant HTML parsing library";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "zenacy-unicode" = callPackage
     ({ mkDerivation, base, bytestring, HUnit, test-framework
      , test-framework-hunit, text, vector, word8
@@ -286480,6 +291930,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "zenacy-unicode_1_0_1" = callPackage
+    ({ mkDerivation, base, bytestring, HUnit, test-framework
+     , test-framework-hunit, text, vector, word8
+     }:
+     mkDerivation {
+       pname = "zenacy-unicode";
+       version = "1.0.1";
+       sha256 = "1l03zr1j6h1h15rnz6mk731g5ib1h3x59b3aqm30i0kd2h28g0vw";
+       libraryHaskellDepends = [ base bytestring vector word8 ];
+       testHaskellDepends = [
+         base bytestring HUnit test-framework test-framework-hunit text
+       ];
+       description = "Unicode utilities for Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "zenc" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -286552,19 +292019,20 @@ self: {
 
   "zeolite-lang" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, hashable
-     , megaparsec, mtl, parser-combinators, regex-tdfa, time
-     , transformers, unix
+     , megaparsec, microlens, microlens-th, mtl, parser-combinators
+     , regex-tdfa, time, transformers, unix
      }:
      mkDerivation {
        pname = "zeolite-lang";
-       version = "0.12.0.0";
-       sha256 = "056brd93d1559wdz7s4wcvjglqg5p1bafhhgbqcqnd0q8msnilrv";
+       version = "0.16.0.0";
+       sha256 = "10sy0s2k20ampqpql6ifpb8y5sdrrc23zpssh0cxs6rp144gcdg4";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base containers directory filepath hashable megaparsec mtl
-         parser-combinators regex-tdfa time transformers unix
+         base containers directory filepath hashable megaparsec microlens
+         microlens-th mtl parser-combinators regex-tdfa time transformers
+         unix
        ];
        executableHaskellDepends = [
          base containers directory filepath unix
@@ -286676,7 +292144,7 @@ self: {
          transformers zeromq3-haskell
        ];
        description = "Conduit bindings for zeromq3-haskell";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -286748,7 +292216,7 @@ self: {
        ];
        testHaskellDepends = [ base ];
        description = "Conduit wrapper around zeromq4-haskell";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -287026,7 +292494,7 @@ self: {
          conduit-extra hspec lzma
        ];
        description = "Read and parse ZIM files";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "zinza" = callPackage
@@ -287038,8 +292506,8 @@ self: {
        pname = "zinza";
        version = "0.2";
        sha256 = "1sy4chm8zan0ixgvvq4vm3fzvhqykn315l333al84768nly9rjv8";
-       revision = "1";
-       editedCabalFile = "0pgrfx4vnc3m6rlmg5qj4skarq5y0ijz3swf3fyy57310lvifr0q";
+       revision = "2";
+       editedCabalFile = "17q1as97cazj2nkwdi31kkgaa3wrxpc8phdj6f9wr4jibbm3jyp6";
        libraryHaskellDepends = [
          base containers parsec text transformers
        ];
@@ -287162,8 +292630,8 @@ self: {
      }:
      mkDerivation {
        pname = "zip-stream";
-       version = "0.2.0.1";
-       sha256 = "11x58s5w1lr8hw86grxijd94sw5r8k376b8n4dlm8lqz5xhmri5p";
+       version = "0.2.1.0";
+       sha256 = "0fx8kj0ijm3555grhdns7agmi084584fh1v0mvkm4x696h1zzvli";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -287237,20 +292705,17 @@ self: {
      }) {};
 
   "zippers" = callPackage
-    ({ mkDerivation, base, Cabal, cabal-doctest, criterion, doctest
-     , fail, lens, profunctors, semigroupoids, semigroups
+    ({ mkDerivation, base, criterion, fail, indexed-traversable, lens
+     , profunctors, semigroupoids, semigroups
      }:
      mkDerivation {
        pname = "zippers";
-       version = "0.3";
-       sha256 = "0hrsgk8sh9g3438kl79131s6vjydhivgya04yxv3h70m7pky1dpm";
-       revision = "2";
-       editedCabalFile = "131rmvifqf3dcvh9lnpjnm28ss7nzra1n2qnxa1fypnx1zmmljva";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.3.1";
+       sha256 = "17z1zi9zd6a8g7sp4zyimgwdvhjj27hj4znbm4ps0kp73gadb953";
        libraryHaskellDepends = [
-         base fail lens profunctors semigroupoids semigroups
+         base fail indexed-traversable lens profunctors semigroupoids
+         semigroups
        ];
-       testHaskellDepends = [ base doctest ];
        benchmarkHaskellDepends = [ base criterion lens ];
        description = "Traversal based zippers";
        license = lib.licenses.bsd3;
@@ -287319,8 +292784,8 @@ self: {
      }:
      mkDerivation {
        pname = "zlib";
-       version = "0.6.2.2";
-       sha256 = "1fii0qfc60lfp93vwb78p2fv3jjyklgdhw4ms262z6cysq6qkd84";
+       version = "0.6.2.3";
+       sha256 = "125wbayk8ifp0gp8cb52afck2ziwvqfrjzbmwmy52g6bz7fnnzw0";
        libraryHaskellDepends = [ base bytestring ];
        librarySystemDepends = [ zlib ];
        testHaskellDepends = [
@@ -287451,7 +292916,7 @@ self: {
          directory filepath mtl parallel-io text zmidi-core
        ];
        description = "Representing MIDI a simple score";
-       license = lib.licenses.lgpl3;
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -287574,7 +293039,7 @@ self: {
          mtl ui-command vector zoom-cache zoom-cache-pcm
        ];
        description = "Tools for generating zoom-cache-pcm files";
-       license = lib.licenses.lgpl21;
+       license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -287592,6 +293057,21 @@ self: {
        broken = true;
      }) {};
 
+  "zoovisitor" = callPackage
+    ({ mkDerivation, base, hspec, Z-Data, Z-IO, zookeeper_mt }:
+     mkDerivation {
+       pname = "zoovisitor";
+       version = "0.1.1.0";
+       sha256 = "16y2j12zl8arwv2m0crllrrf09l4ar1s2v9wrfzjmxnk80vhncf1";
+       libraryHaskellDepends = [ base Z-Data Z-IO ];
+       librarySystemDepends = [ zookeeper_mt ];
+       testHaskellDepends = [ base hspec ];
+       description = "A haskell binding to Apache Zookeeper C library(mt) using Haskell Z project";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) zookeeper_mt;};
+
   "zot" = callPackage
     ({ mkDerivation, base, monads-tf }:
      mkDerivation {
@@ -287793,6 +293273,29 @@ self: {
        broken = true;
      }) {};
 
+  "zuul" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
+     , directory, filepath, http-client, http-client-tls
+     , optparse-generic, tasty, tasty-hunit, text, xdg-basedir
+     }:
+     mkDerivation {
+       pname = "zuul";
+       version = "0.1.0.0";
+       sha256 = "1agacvixl6s3np8jizmy9vbpzhbb0am9hs8qlc5sqvbg98qr8x1v";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base http-client http-client-tls text
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty base containers directory filepath
+         optparse-generic text xdg-basedir
+       ];
+       testHaskellDepends = [ aeson base bytestring tasty tasty-hunit ];
+       description = "A zuul client library";
+       license = lib.licenses.asl20;
+     }) {};
+
   "zxcvbn-c" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -287875,7 +293378,7 @@ self: {
          base bytestring containers fixed-vector storable-record
        ];
        description = "Haskell language binding for the Zydis library, a x86/x86-64 disassembler";
-       license = lib.licenses.gpl3;
+       license = lib.licenses.gpl3Only;
      }) {};
 
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
index 4d66478f338d..86123d8a70f4 100644
--- a/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -28,4 +28,8 @@ self: super: {
   graphql-parser = self.callPackage ../misc/haskell/hasura/graphql-parser {};
   # cabal2nix  --subpath server --maintainer offline --no-check --revision 1.2.1 https://github.com/hasura/graphql-engine.git
   graphql-engine = self.callPackage ../misc/haskell/hasura/graphql-engine {};
+
+  # Unofficial fork until PRs are merged https://github.com/pcapriotti/optparse-applicative/pulls/roberth
+  # 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 {};
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/patches/gitit-pandoc-2.12.patch b/nixpkgs/pkgs/development/haskell-modules/patches/gitit-pandoc-2.12.patch
new file mode 100644
index 000000000000..da8e27d2b31d
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/patches/gitit-pandoc-2.12.patch
@@ -0,0 +1,65 @@
+commit a03d3b043458f45d29ba32068a77c0d3b8a4223f
+Author: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>
+Date:   Fri Apr 2 15:14:02 2021 +0200
+
+    Allow compilation with pandoc 2.12 and 2.13
+    
+    pandoc 2.13 introduced the following breakages for gitit:
+    
+    * UTF8.readFile now returns a Text which is actually ideal for gitit.
+      If pandoc is new enough we just make readFileUTF8 an alias for
+      UTF8.readFile.
+    
+    * Text.Pandoc.Shared no longer exports substitute. In order to be
+      conservative I've chosen to just copy the substitute function from
+      pandoc 2.11.4. I need this patch kind of urgently so I didn't want to
+      make any changes or refactors independently from upstream if
+      avoidable. However, I'd be happy to rebase this PR branch to adopt a
+      different solution to just copying the function.
+
+diff --git a/src/Network/Gitit/Authentication.hs b/src/Network/Gitit/Authentication.hs
+index 4c240e7..c0f92fd 100644
+--- a/src/Network/Gitit/Authentication.hs
++++ b/src/Network/Gitit/Authentication.hs
+@@ -44,7 +44,7 @@ import System.Exit
+ import System.Log.Logger (logM, Priority(..))
+ import Data.Char (isAlphaNum, isAlpha)
+ import qualified Data.Map as M
+-import Text.Pandoc.Shared (substitute)
++import Data.List (stripPrefix)
+ import Data.Maybe (isJust, fromJust, isNothing, fromMaybe)
+ import Network.URL (exportURL, add_param, importURL)
+ import Network.BSD (getHostName)
+@@ -54,6 +54,16 @@ import Codec.Binary.UTF8.String (encodeString)
+ import Data.ByteString.UTF8 (toString)
+ import Network.Gitit.Rpxnow as R
+ 
++-- | Replace each occurrence of one sublist in a list with another.
++--   Vendored in from pandoc 2.11.4 as 2.12 removed this function.
++substitute :: (Eq a) => [a] -> [a] -> [a] -> [a]
++substitute _ _ [] = []
++substitute [] _ xs = xs
++substitute target replacement lst@(x:xs) =
++    case stripPrefix target lst of
++      Just lst' -> replacement ++ substitute target replacement lst'
++      Nothing   -> x : substitute target replacement xs
++
+ data ValidationType = Register
+                     | ResetPassword
+                     deriving (Show,Read)
+diff --git a/src/Network/Gitit/Util.hs b/src/Network/Gitit/Util.hs
+index c5e9fe5..067130a 100644
+--- a/src/Network/Gitit/Util.hs
++++ b/src/Network/Gitit/Util.hs
+@@ -45,7 +45,11 @@ import Network.URL (encString)
+ 
+ -- | Read file as UTF-8 string.  Encode filename as UTF-8.
+ readFileUTF8 :: FilePath -> IO Text
++#if MIN_VERSION_pandoc(2,12,0)
++readFileUTF8 = UTF8.readFile
++#else
+ readFileUTF8 = fmap T.pack . UTF8.readFile
++#endif
+ 
+ -- | Perform a function a directory and return to working directory.
+ inDir :: FilePath -> IO a -> IO a
diff --git a/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix b/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
index 32fa46fd04ac..0e566aa2e6e4 100644
--- a/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
@@ -57,9 +57,8 @@ symlinkJoin {
   # as a dedicated drv attribute, like `compiler-name`
   name = ghc.name + "-with-packages";
   paths = paths ++ [ghc];
+  nativeBuildInputs = [ makeWrapper ];
   postBuild = ''
-    . ${makeWrapper}/nix-support/setup-hook
-
     # wrap compiler executables with correct env variables
 
     for prg in ${ghcCommand} ${ghcCommand}i ${ghcCommand}-${ghc.version} ${ghcCommand}i-${ghc.version}; do
diff --git a/nixpkgs/pkgs/development/interpreters/alda/default.nix b/nixpkgs/pkgs/development/interpreters/alda/default.nix
index 19e90a00e6cb..85c48ee2014d 100644
--- a/nixpkgs/pkgs/development/interpreters/alda/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/alda/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alda";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchurl {
     url = "https://github.com/alda-lang/alda/releases/download/${version}/alda";
-    sha256 = "1c9rbwb3ga8w7zi0ndqq02hjr4drdw8s509qxxd3fh5vfy6x3qi2";
+    sha256 = "sha256-zIq8coSh4B9VGrixkQfhySK7qhlFG2p7O0suvbiScKY=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/development/interpreters/angelscript/2.22.nix b/nixpkgs/pkgs/development/interpreters/angelscript/2.22.nix
index 922d964e8abe..4c35f065cb5c 100644
--- a/nixpkgs/pkgs/development/interpreters/angelscript/2.22.nix
+++ b/nixpkgs/pkgs/development/interpreters/angelscript/2.22.nix
@@ -8,13 +8,11 @@ let
     url="http://www.angelcode.com/angelscript/sdk/files/angelscript_${version}.zip";
     sha256 = "1pp853lbnz383ilp9wbgc3wv1dn7lpx3idz8dmzda94rckl7sd43";
   };
-  buildInputs = [
-    unzip
-  ];
 in
 stdenv.mkDerivation {
   inherit (s) name version;
-  inherit buildInputs;
+  nativeBuildInputs = [ unzip ];
+
   src = fetchurl {
     inherit (s) url sha256;
   };
diff --git a/nixpkgs/pkgs/development/interpreters/angelscript/default.nix b/nixpkgs/pkgs/development/interpreters/angelscript/default.nix
index fb8c6b2844d6..3fbd64467fec 100644
--- a/nixpkgs/pkgs/development/interpreters/angelscript/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/angelscript/default.nix
@@ -8,13 +8,11 @@ let
     url="http://www.angelcode.com/angelscript/sdk/files/angelscript_${version}.zip";
     sha256 = "sha256-AQ3UXiPnNNRvWJHXDiaGB6EsuasSUD3aQvhC2dt+iFc=";
   };
-  buildInputs = [
-    unzip
-  ];
+
 in
 stdenv.mkDerivation {
   inherit (s) name version;
-  inherit buildInputs;
+  nativeBuildInputs = [ unzip ];
   src = fetchurl {
     inherit (s) url sha256;
   };
diff --git a/nixpkgs/pkgs/development/interpreters/bats/default.nix b/nixpkgs/pkgs/development/interpreters/bats/default.nix
index aa3abc655343..01d1b61cb801 100644
--- a/nixpkgs/pkgs/development/interpreters/bats/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/bats/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bats";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchzip {
     url = "https://github.com/bats-core/bats-core/archive/v${version}.tar.gz";
-    hash = "sha256-grB/rJaDU0fuw4Hm3/9nI2px8KZnSWqRjTJPd7Mmb7s=";
+    hash = "sha256-+dboExOx2YELxV8Cwk9SVwk9G3p8EoP0LdaJ3o7GT6c=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -22,6 +22,9 @@ stdenv.mkDerivation rec {
 
   inherit doCheck;
   checkPhase = ''
+    # TODO: cut if https://github.com/bats-core/bats-core/issues/418 allows
+    sed -i '/test works even if PATH is reset/a skip' test/bats.bats
+
     # test generates file with absolute shebang dynamically
     substituteInPlace test/install.bats --replace \
       "/usr/bin/env bash" "${bash}/bin/bash"
diff --git a/nixpkgs/pkgs/development/interpreters/ceptre/default.nix b/nixpkgs/pkgs/development/interpreters/ceptre/default.nix
index a9b8f54ab877..c3fa6a645e07 100644
--- a/nixpkgs/pkgs/development/interpreters/ceptre/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ceptre/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation {
     description = "A linear logic programming language for modeling generative interactive systems";
     homepage = "https://github.com/chrisamaphone/interactive-lp";
     maintainers = with maintainers; [ pSub ];
-    platforms = with platforms; linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/chibi/default.nix b/nixpkgs/pkgs/development/interpreters/chibi/default.nix
index 96c884ab602e..92531eacd20d 100644
--- a/nixpkgs/pkgs/development/interpreters/chibi/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/chibi/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
     sha256 = "0nd63i924ifh39cba1hd4sbi6vh1cb73v97nrn4bf8rrjh3k8pdi";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     make install PREFIX="$out"
diff --git a/nixpkgs/pkgs/development/interpreters/cling/default.nix b/nixpkgs/pkgs/development/interpreters/cling/default.nix
index 8f80d2f4ee68..dbc2751e7899 100644
--- a/nixpkgs/pkgs/development/interpreters/cling/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/cling/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv
-, python
+, python3
 , libffi
 , git
 , cmake
@@ -38,9 +38,11 @@ let
       chmod -R a+w ./tools/cling
     '';
 
-    nativeBuildInputs = [ python git cmake ];
+    nativeBuildInputs = [ python3 git cmake ];
     buildInputs = [ libffi llvmPackages_5.llvm zlib ];
 
+    strictDeps = true;
+
     cmakeFlags = [
       "-DLLVM_TARGETS_TO_BUILD=host;NVPTX"
       "-DLLVM_ENABLE_RTTI=ON"
diff --git a/nixpkgs/pkgs/development/interpreters/clips/default.nix b/nixpkgs/pkgs/development/interpreters/clips/default.nix
index d38fb8279f0b..64fd89008e33 100644
--- a/nixpkgs/pkgs/development/interpreters/clips/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/clips/default.nix
@@ -1,18 +1,28 @@
 { lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  version = "6.30";
+stdenv.mkDerivation rec {
+  version = "6.31";
   pname = "clips";
+
   src = fetchurl {
-    url = "mirror://sourceforge/clipsrules/CLIPS/6.30/clips_core_source_630.tar.Z";
-    sha256 = "1r0m59l3mk9cwzq3nmyr5qxrlkzp3njls4hfv8ml85dmqh7n3ysy";
+    url = "mirror://sourceforge/clipsrules/CLIPS/${version}/clips_core_source_${
+        builtins.replaceStrings [ "." ] [ "" ] version
+      }.tar.gz";
+    sha256 = "165k0z7dsv04q432sanmw0jxmxwf56cnhsdfw5ffjqxd3lzkjnv6";
   };
-  buildPhase = ''
-    make -C core -f ../makefiles/makefile.gcc
+
+  postPatch = ''
+    substituteInPlace core/makefile --replace 'gcc' '${stdenv.cc.targetPrefix}cc'
   '';
+
+  makeFlags = [ "-C" "core" ];
+
   installPhase = ''
+    runHook preInstall
     install -D -t $out/bin core/clips
+    runHook postInstall
   '';
+
   meta = with lib; {
     description = "A Tool for Building Expert Systems";
     homepage = "http://www.clipsrules.net/";
@@ -23,7 +33,7 @@ stdenv.mkDerivation {
       easier to implement and maintain than an algorithmic solution.
     '';
     license = licenses.publicDomain;
-    maintainers = [maintainers.league];
-    platforms = platforms.linux;
+    maintainers = [ maintainers.league ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix b/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
index 790f8d1ef81b..8fee25b104cf 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
@@ -1,53 +1,87 @@
 { lib, stdenv, fetchurl, graalvm11-ce, glibcLocales }:
 
-with lib;
 stdenv.mkDerivation rec {
   pname = "babashka";
-  version = "0.2.3";
+  version = "0.3.1";
 
   reflectionJson = fetchurl {
     name = "reflection.json";
     url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-reflection.json";
-    sha256 = "0lbdh3v3g3j00bn99bjhjj3gk1q9ks2alpvl9bxc00xpyw86f7z8";
+    sha256 = "0ar2ry07axgrmdb6nsc0786v1a1nwlyvapgxncaaympvn38qk8qf";
   };
 
   src = fetchurl {
     url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "0vh6k3dkzyk346jjzg6n4mdi65iybrmhb3js9lm73yc3ay2c5dyi";
+    sha256 = "1fapkyq7fcgydy8sls6jzxagfkhgxhwp1rdvjqxdmqk4d82jwrh2";
   };
 
   dontUnpack = true;
 
-  LC_ALL = "en_US.UTF-8";
   nativeBuildInputs = [ graalvm11-ce glibcLocales ];
 
+  LC_ALL = "en_US.UTF-8";
+  BABASHKA_JAR = src;
+  BABASHKA_BINARY = "bb";
+  BABASHKA_XMX = "-J-Xmx4500m";
+
   buildPhase = ''
-    native-image \
-      -jar ${src} \
-      -H:Name=bb \
-      ${optionalString stdenv.isDarwin ''-H:-CheckToolchain''} \
-      -H:+ReportExceptionStackTraces \
-      -J-Dclojure.spec.skip-macros=true \
-      -J-Dclojure.compiler.direct-linking=true \
-      "-H:IncludeResources=BABASHKA_VERSION" \
-      "-H:IncludeResources=SCI_VERSION" \
-      -H:ReflectionConfigurationFiles=${reflectionJson} \
-      --initialize-at-build-time \
-      -H:Log=registerResource: \
-      -H:EnableURLProtocols=http,https \
-      --enable-all-security-services \
-      -H:+JNI \
-      --verbose \
-      --no-fallback \
-      --no-server \
-      --report-unsupported-elements-at-runtime \
-      "--initialize-at-run-time=org.postgresql.sspi.SSPIClient" \
-      "-J-Xmx4500m"
+    runHook preBuild
+
+    # https://github.com/babashka/babashka/blob/77daea7362d8e2562c89c315b1fbcefde6fa56a5/script/compile
+    args=("-jar" "$BABASHKA_JAR"
+          "-H:Name=$BABASHKA_BINARY"
+          "${lib.optionalString stdenv.isDarwin ''-H:-CheckToolchain''}"
+          "-H:+ReportExceptionStackTraces"
+          "-J-Dclojure.spec.skip-macros=true"
+          "-J-Dclojure.compiler.direct-linking=true"
+          "-H:IncludeResources=BABASHKA_VERSION"
+          "-H:IncludeResources=SCI_VERSION"
+          "-H:ReflectionConfigurationFiles=${reflectionJson}"
+          "--initialize-at-build-time"
+          # "-H:+PrintAnalysisCallTree"
+          # "-H:+DashboardAll"
+          # "-H:DashboardDump=reports/dump"
+          # "-H:+DashboardPretty"
+          # "-H:+DashboardJson"
+          "-H:Log=registerResource:"
+          "-H:EnableURLProtocols=http,https,jar"
+          "--enable-all-security-services"
+          "-H:+JNI"
+          "--verbose"
+          "--no-fallback"
+          "--no-server"
+          "--report-unsupported-elements-at-runtime"
+          "--initialize-at-run-time=org.postgresql.sspi.SSPIClient"
+          "--native-image-info"
+          "--verbose"
+          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.AudioFileReader"
+          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileReader"
+          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.MixerProvider"
+          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.FormatConversionProvider"
+          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.AudioFileWriter"
+          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiDeviceProvider"
+          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.SoundbankReader"
+          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileWriter"
+          "$BABASHKA_XMX")
+
+     native-image ''${args[@]}
+
+     runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
     cp bb $out/bin/bb
+
+    runHook postInstall
+  '';
+
+  installCheckPhase = ''
+    $out/bin/bb --version | grep '${version}'
+    $out/bin/bb '(+ 1 2)' | grep '3'
+    $out/bin/bb '(vec (dedupe *input*))' <<< '[1 1 1 1 2]' | grep '[1 2]'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix b/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix
index 57da5e862e99..1809f9fd2dc0 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "0hbc29bg2a86rm3sx9kvj7h7db9j0kbnrb706wsfiyk3zi3bavnd";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   phases = "installPhase";
 
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     description = "A lightweight IDE for Clojure";
     homepage = "https://github.com/arthuredelstein/clooj";
     license = lib.licenses.bsd3;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/default.nix b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
index 89db33c5a8c5..a96fb03aab20 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.10.2.774";
+  version = "1.10.3.814";
 
   src = fetchurl {
     # https://clojure.org/releases/tools
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "0z3j8m9k7prmx6n3kpyhj04pjdg7y0plyxv4kp7789shanr6y4qp";
+    sha256 = "sha256-+jpnhuKPvxKJA8xDo9GiRKpFJdPYRJTssmZtafadEn4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/default.nix b/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/default.nix
index a269d0b158e2..7bd3913260d4 100644
--- a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/default.nix
@@ -149,11 +149,11 @@ stdenv.mkDerivation {
     sha256 = "12agi6bacqic2wq6q3l28283badzamspajmajzqm7fbdl2aq1a4p";
   };
 
+  nativeBuildInputs = [ unzip ];
   buildInputs = [
     nodejs
     clojure
     jre
-    unzip
     python
     openssl
     gnutar
diff --git a/nixpkgs/pkgs/development/interpreters/dart/default.nix b/nixpkgs/pkgs/development/interpreters/dart/default.nix
index 5fb180201b96..685d58f11027 100644
--- a/nixpkgs/pkgs/development/interpreters/dart/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/dart/default.nix
@@ -2,7 +2,7 @@
 , lib
 , fetchurl
 , unzip
-, version ? "2.10.5"
+, version ? "2.12.2"
 , sources ?
   let
     base = "https://storage.googleapis.com/dart-archive/channels";
@@ -11,24 +11,24 @@
     aarch64 = "arm64";
     # Make sure that if the user overrides version parameter they're
     # also need to override sources, to avoid mistakes
-    version = "2.10.5";
+    version = "2.12.2";
   in
   {
     "${version}-x86_64-darwin" = fetchurl {
       url = "${base}/stable/release/${version}/sdk/dartsdk-macos-${x86_64}-release.zip";
-      sha256 = "1vb2m25w6v901id9syan9q69fa60sxxd7qpyzq21fn5dpah0g99i";
+      sha256 = "0h6mpy0kfc842vhg053fyxbjnd8lw1d1shdcsj800048260lxhyd";
     };
     "${version}-x86_64-linux" = fetchurl {
       url = "${base}/stable/release/${version}/sdk/dartsdk-linux-${x86_64}-release.zip";
-      sha256 = "1mb6m3vxjya1dz47mdna23c2015n3bz8dvz8fwggq6k3zp0a4dsh";
+      sha256 = "1gg210gf4yif3bl9k19znkndc4c1cd529xwxpi20ykaw3zfxxz2z";
     };
     "${version}-i686-linux" = fetchurl {
       url = "${base}/stable/release/${version}/sdk/dartsdk-linux-${i686}-release.zip";
-      sha256 = "10g4qrwvmabrdg4i8y0wq9g7whqcpkdfp05yilflg70ybplrscf7";
+      sha256 = "1wngxba71j20gq9vy7n8q0m9rnqs047xm5b03bxk3hhaq6dyzkwn";
     };
     "${version}-aarch64-linux" = fetchurl {
       url = "${base}/stable/release/${version}/sdk/dartsdk-linux-${aarch64}-release.zip";
-      sha256 = "0js83wy496swcwia144fhxk872irb5nr6i8558hxabkdrpv1bky5";
+      sha256 = "0rqsmzl5g5kgk54qb03kamjm5n5g5pqfl79np37xdzwqbv0zx22b";
     };
   }
 }:
diff --git a/nixpkgs/pkgs/development/interpreters/duktape/default.nix b/nixpkgs/pkgs/development/interpreters/duktape/default.nix
index f864f5bf6f9e..360666d898af 100644
--- a/nixpkgs/pkgs/development/interpreters/duktape/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/duktape/default.nix
@@ -8,6 +8,14 @@ stdenv.mkDerivation rec {
     sha256 = "19szwxzvl2g65fw95ggvb8h0ma5bd9vvnnccn59hwnc4dida1x4n";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile.sharedlibrary \
+      --replace 'gcc' '${stdenv.cc.targetPrefix}cc' \
+      --replace 'g++' '${stdenv.cc.targetPrefix}c++'
+    substituteInPlace Makefile.cmdline \
+      --replace 'gcc' '${stdenv.cc.targetPrefix}cc' \
+      --replace 'g++' '${stdenv.cc.targetPrefix}c++'
+  '';
   buildPhase = ''
     make -f Makefile.sharedlibrary
     make -f Makefile.cmdline
@@ -27,6 +35,6 @@ stdenv.mkDerivation rec {
     downloadPage = "https://duktape.org/download.html";
     license = licenses.mit;
     maintainers = [ maintainers.fgaz ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/1.11.nix b/nixpkgs/pkgs/development/interpreters/elixir/1.11.nix
index 4e50c737e39b..6e5a30a9dd7d 100644
--- a/nixpkgs/pkgs/development/interpreters/elixir/1.11.nix
+++ b/nixpkgs/pkgs/development/interpreters/elixir/1.11.nix
@@ -3,7 +3,7 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz
 mkDerivation {
-  version = "1.11.3";
-  sha256 = "sha256-DqmKpMLxrXn23fsX/hrjDsYCmhD5jbVtvOX8EwKBakc=";
+  version = "1.11.4";
+  sha256 = "sha256-qCX6hRWUbW+E5xaUhcYxRAnhnvncASUJck8lESlcDvk=";
   minimumOTPVersion = "21";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
index aaf368017ffb..0e4beaa8508f 100644
--- a/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
@@ -20,7 +20,8 @@ in
 
     inherit src version;
 
-    buildInputs = [ erlang makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ erlang ];
 
     LANG = "C.UTF-8";
     LC_TYPE = "C.UTF-8";
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R21.nix b/nixpkgs/pkgs/development/interpreters/erlang/R21.nix
index fdd034fc6075..e1145090c864 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/R21.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R21.nix
@@ -1,10 +1,6 @@
 { mkDerivation }:
 
 mkDerivation {
-  version = "21.3.8.3";
-  sha256 = "1szybirrcpqsl2nmlmpbkxjqnm6i7l7bma87m5cpwi0kpvlxwmcw";
-
-  prePatch = ''
-    substituteInPlace configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
-  '';
+  version = "21.3.8.21";
+  sha256 = "sha256-zQCs2hOA66jxAaxl/B42EKCejAktIav2rpVQCNyKCh4=";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R22.nix b/nixpkgs/pkgs/development/interpreters/erlang/R22.nix
index 7596ad9e2f10..8bfe111f065e 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/R22.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R22.nix
@@ -3,11 +3,6 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
 mkDerivation {
-  version = "22.3";
-  sha256 = "0srbyncgnr1kp0rrviq14ia3h795b3gk0iws5ishv6rphcq1rs27";
-
-  prePatch = ''
-    substituteInPlace make/configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
-    substituteInPlace erts/configure.in --replace '-Wl,-no_weak_imports' ""
-  '';
+  version = "22.3.4.16";
+  sha256 = "sha256-V0RwEPfjnHtEzShNh6Q49yGC5fbt2mNR4xy6f6iWvck=";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R23.nix b/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
index 53d1b49c3756..0e8e402ab3b0 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
@@ -3,11 +3,6 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
 mkDerivation {
-  version = "23.1.4";
-  sha256 = "16ssxmrgjgvzg06aa1l4wz9rrdjfy39k22amgabxwb5if1g8bg8z";
-
-  prePatch = ''
-    substituteInPlace make/configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
-    substituteInPlace erts/configure.in --replace '-Wl,-no_weak_imports' ""
-  '';
+  version = "23.3.1";
+  sha256 = "1nx9yv3l8hf37js7pqs536ywy786mxhkqba1jsmy1b3yc6xki1mq";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
index 538b4224909c..325d8e87e4a9 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
@@ -1,7 +1,6 @@
 { pkgs, lib, stdenv, fetchFromGitHub, makeWrapper, gawk, gnum4, gnused
 , libxml2, libxslt, ncurses, openssl, perl, autoconf
-# TODO: use jdk https://github.com/NixOS/nixpkgs/pull/89731
-, openjdk8 ? null # javacSupport
+, openjdk11 ? null # javacSupport
 , unixODBC ? null # odbcSupport
 , libGL ? null, libGLU ? null, wxGTK ? null, wxmac ? null, xorg ? null
 , parallelBuild ? false
@@ -17,9 +16,10 @@
 , enableThreads ? true
 , enableSmpSupport ? true
 , enableKernelPoll ? true
-, javacSupport ? false, javacPackages ? [ openjdk8 ]
+, javacSupport ? false, javacPackages ? [ openjdk11 ]
 , odbcSupport ? false, odbcPackages ? [ unixODBC ]
 , withSystemd ? stdenv.isLinux # systemd support in epmd
+, opensslPackage ? openssl
 , wxPackages ? [ libGL libGLU wxGTK xorg.libX11 ]
 , preUnpack ? "", postUnpack ? ""
 , patches ? [], patchPhase ? "", prePatch ? "", postPatch ? ""
@@ -37,7 +37,7 @@ assert wxSupport -> (if stdenv.isDarwin
   else libGL != null && libGLU != null && wxGTK != null && xorg != null);
 
 assert odbcSupport -> unixODBC != null;
-assert javacSupport -> openjdk8 != null;
+assert javacSupport -> openjdk11 != null;
 
 let
   inherit (lib) optional optionals optionalAttrs optionalString;
@@ -52,25 +52,18 @@ in stdenv.mkDerivation ({
 
   nativeBuildInputs = [ autoconf makeWrapper perl gnum4 libxslt libxml2 ];
 
-  buildInputs = [ ncurses openssl ]
+  buildInputs = [ ncurses opensslPackage ]
     ++ optionals wxSupport wxPackages2
     ++ optionals odbcSupport odbcPackages
     ++ optionals javacSupport javacPackages
     ++ optional withSystemd systemd
-    ++ optionals stdenv.isDarwin (with pkgs.darwin.apple_sdk.frameworks; [ Carbon Cocoa ]);
+    ++ optionals stdenv.isDarwin (with pkgs.darwin.apple_sdk.frameworks; [ AGL Carbon Cocoa WebKit ]);
 
   debugInfo = enableDebugInfo;
 
   # On some machines, parallel build reliably crashes on `GEN    asn1ct_eval_ext.erl` step
   enableParallelBuilding = parallelBuild;
 
-  # Clang 4 (rightfully) thinks signed comparisons of pointers with NULL are nonsense
-  prePatch = ''
-    substituteInPlace lib/wx/c_src/wxe_impl.cpp --replace 'temp > NULL' 'temp != NULL'
-
-    ${prePatch}
-  '';
-
   postPatch = ''
     patchShebangs make
 
@@ -81,7 +74,7 @@ in stdenv.mkDerivation ({
     ./otp_build autoconf
   '';
 
-  configureFlags = [ "--with-ssl=${openssl.dev}" ]
+  configureFlags = [ "--with-ssl=${lib.getDev opensslPackage}" ]
     ++ optional enableThreads "--enable-threads"
     ++ optional enableSmpSupport "--enable-smp-support"
     ++ optional enableKernelPoll "--enable-kernel-poll"
@@ -132,6 +125,7 @@ in stdenv.mkDerivation ({
 // optionalAttrs (preUnpack != "")      { inherit preUnpack; }
 // optionalAttrs (postUnpack != "")     { inherit postUnpack; }
 // optionalAttrs (patches != [])        { inherit patches; }
+// optionalAttrs (prePatch != "")       { inherit prePatch; }
 // optionalAttrs (patchPhase != "")     { inherit patchPhase; }
 // optionalAttrs (configurePhase != "") { inherit configurePhase; }
 // optionalAttrs (preConfigure != "")   { inherit preConfigure; }
diff --git a/nixpkgs/pkgs/development/interpreters/evcxr/default.nix b/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
index fa428b983356..7f248c8d430f 100644
--- a/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "evcxr";
-  version = "0.7.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "evcxr";
     rev = "v${version}";
-    sha256 = "sha256-33XeepqwYmTMcObroPTuxykYuM9qYI1+LV5lZIFSomg=";
+    sha256 = "sha256-5YbvPDyGaoKPelLep2tVica08SI7Cyo9SLMnE6dmWe4=";
   };
 
-  cargoSha256 = "sha256-tjCID3YeGkxcq/LqJDMHGNpv1MCXKtcLlDnNkFwx1zU=";
+  cargoSha256 = "sha256-hqVmNBrvagqhGPWTaBXuY8lULolWIoR5ovEhH5k1tz4=";
 
   RUST_SRC_PATH = "${rustPlatform.rustLibSrc}";
 
diff --git a/nixpkgs/pkgs/development/interpreters/groovy/default.nix b/nixpkgs/pkgs/development/interpreters/groovy/default.nix
index 0e3a0a46afde..9d2b9a8f0387 100644
--- a/nixpkgs/pkgs/development/interpreters/groovy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/groovy/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1xdpjqx7qaq0syw448b32q36g12pgh1hn6knyqi3k5isp0f09qmr";
   };
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   installPhase = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/development/interpreters/guile/1.8.nix b/nixpkgs/pkgs/development/interpreters/guile/1.8.nix
index 93eca9a73f1f..6277312acc85 100644
--- a/nixpkgs/pkgs/development/interpreters/guile/1.8.nix
+++ b/nixpkgs/pkgs/development/interpreters/guile/1.8.nix
@@ -37,7 +37,10 @@ stdenv.mkDerivation rec {
     libtool
   ];
 
-  patches = [ ./cpp-4.5.patch ];
+  patches = [
+    ./cpp-4.5.patch
+    ./CVE-2016-8605.patch
+  ];
 
   preBuild = ''
     sed -e '/lt_dlinit/a  lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c
diff --git a/nixpkgs/pkgs/development/interpreters/guile/CVE-2016-8605.patch b/nixpkgs/pkgs/development/interpreters/guile/CVE-2016-8605.patch
new file mode 100644
index 000000000000..2fc281357ca8
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/guile/CVE-2016-8605.patch
@@ -0,0 +1,59 @@
+commit d514e3fc42eb14a1bc5846b27ef89f50ba3a5d48
+Author: Ludovic Courtès <ludo@gnu.org>
+Date:   Tue Oct 11 10:14:26 2016 +0200
+
+    Remove 'umask' calls from 'mkdir'.
+    
+    Fixes <http://bugs.gnu.org/24659>.
+    
+    * libguile/filesys.c (SCM_DEFINE): Remove calls to 'umask' when MODE is
+    unbound; instead, use 0777 as the mode.  Update docstring to clarify
+    this.
+
+diff --git a/libguile/filesys.c b/libguile/filesys.c
+index c8acb13ef..921f765f1 100644
+--- a/libguile/filesys.c
++++ b/libguile/filesys.c
+@@ -1,4 +1,5 @@
+-/* Copyright (C) 1996,1997,1998,1999,2000,2001, 2002, 2004, 2006, 2008 Free Software Foundation, Inc.
++/* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2006,
++ *   2009, 2010, 2011, 2012, 2013, 2014, 2016 Free Software Foundation, Inc.
+  * 
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+@@ -791,26 +792,21 @@ SCM_DEFINE (scm_delete_file, "delete-file", 1, 0, 0,
+ SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0,
+             (SCM path, SCM mode),
+ 	    "Create a new directory named by @var{path}.  If @var{mode} is omitted\n"
+-	    "then the permissions of the directory file are set using the current\n"
+-	    "umask.  Otherwise they are set to the decimal value specified with\n"
+-	    "@var{mode}.  The return value is unspecified.")
++	    "then the permissions of the directory are set to @code{#o777}\n"
++	    "masked with the current umask (@pxref{Processes, @code{umask}}).\n"
++	    "Otherwise they are set to the value specified with @var{mode}.\n"
++	    "The return value is unspecified.")
+ #define FUNC_NAME s_scm_mkdir
+ {
+   int rv;
+-  mode_t mask;
++  mode_t c_mode;
+ 
+-  if (SCM_UNBNDP (mode))
+-    {
+-      mask = umask (0);
+-      umask (mask);
+-      STRING_SYSCALL (path, c_path, rv = mkdir (c_path, 0777 ^ mask));
+-    }
+-  else
+-    {
+-      STRING_SYSCALL (path, c_path, rv = mkdir (c_path, scm_to_uint (mode)));
+-    }
++  c_mode = SCM_UNBNDP (mode) ? 0777 : scm_to_uint (mode);
++
++  STRING_SYSCALL (path, c_path, rv = mkdir (c_path, c_mode));
+   if (rv != 0)
+     SCM_SYSERROR;
++
+   return SCM_UNSPECIFIED;
+ }
+ #undef FUNC_NAME
diff --git a/nixpkgs/pkgs/development/interpreters/io/default.nix b/nixpkgs/pkgs/development/interpreters/io/default.nix
index d0a3b20e5038..48462a333bcb 100644
--- a/nixpkgs/pkgs/development/interpreters/io/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/io/default.nix
@@ -1,18 +1,27 @@
-{ lib, stdenv, fetchFromGitHub, cmake, zlib, sqlite, gmp, libffi, cairo,
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, sqlite, gmp, libffi, cairo,
   ncurses, freetype, libGLU, libGL, libpng, libtiff, libjpeg, readline, libsndfile,
   libxml2, freeglut, libsamplerate, pcre, libevent, libedit, yajl,
   python3, openssl, glfw, pkg-config, libpthreadstubs, libXdmcp, libmemcached
 }:
 
 stdenv.mkDerivation {
-  name = "io-2015.11.11";
+  pname = "io";
+  version = "2017.09.06";
   src = fetchFromGitHub {
     owner = "stevedekorte";
     repo = "io";
-    rev = "1fc725e0a8635e2679cbb20521f4334c25273caa";
-    sha256 = "0ll2kd72zy8vf29sy0nnx3awk7nywpwpv21rvninjjaqkygrc0qw";
+    rev = "b8a18fc199758ed09cd2f199a9bc821f6821072a";
+    sha256 = "07rg1zrz6i6ghp11cm14w7bbaaa1s8sb0y5i7gr2sds0ijlpq223";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "check-for-sysctl-h.patch";
+      url = "https://github.com/IoLanguage/io/pull/446/commits/9f3e4d87b6d4c1bf583134d55d1cf92d3464c49f.patch";
+      sha256 = "9f06073ac17f26c2ef6298143bdd1babe7783c228f9667622aa6c91bb7ec7fa0";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
   ];
@@ -32,6 +41,17 @@ stdenv.mkDerivation {
     sed -ie \
           "s/add_subdirectory(addons)/#add_subdirectory(addons)/g" \
           CMakeLists.txt
+    # Bind Libs STATIC to avoid a segfault when relinking
+    sed -i 's/basekit SHARED/basekit STATIC/' libs/basekit/CMakeLists.txt
+    sed -i 's/garbagecollector SHARED/garbagecollector STATIC/' libs/garbagecollector/CMakeLists.txt
+    sed -i 's/coroutine SHARED/coroutine STATIC/' libs/coroutine/CMakeLists.txt
+  '';
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/io
+    $out/bin/io_static
   '';
 
   # for gcc5; c11 inline semantics breaks the build
diff --git a/nixpkgs/pkgs/development/interpreters/j/default.nix b/nixpkgs/pkgs/development/interpreters/j/default.nix
index ab64505e091d..8875a9cf55eb 100644
--- a/nixpkgs/pkgs/development/interpreters/j/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/j/default.nix
@@ -30,6 +30,10 @@ stdenv.mkDerivation rec {
   # Causes build failure due to warning
   hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
 
+  # Causes build failure due to warning
+  # https://github.com/jsoftware/jsource/issues/16
+  NIX_CFLAGS_COMPILE = "-Wno-error=return-local-addr";
+
   buildPhase = ''
     export SOURCE_DIR=$(pwd)
     export HOME=$TMPDIR
diff --git a/nixpkgs/pkgs/development/interpreters/janet/default.nix b/nixpkgs/pkgs/development/interpreters/janet/default.nix
index ac1a52e1bba3..163c255c5222 100644
--- a/nixpkgs/pkgs/development/interpreters/janet/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/janet/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "janet";
-  version = "1.15.0";
+  version = "1.15.4";
 
   src = fetchFromGitHub {
     owner = "janet-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NLPmuS7HTPY8OfeppqVhrj4iVZix4orr1oYilcXaAqI=";
+    sha256 = "sha256-lE2BAwiwvewydIpVYoN+zrfpzQbMbe5Nb1r0mzdxMao=";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/nixpkgs/pkgs/development/interpreters/joker/default.nix b/nixpkgs/pkgs/development/interpreters/joker/default.nix
index 004d2732f3a6..a8e73339ee16 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 = "0.15.7";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "01mlizkflajad4759yl60ymibymrvanhc22jaffj50k9b77v97kq";
+    sha256 = "sha256-ckbKxWzcISo9yOXuwgOiSfR2hs+5od0Ru0Ku2I52Gu8=";
   };
 
-  vendorSha256 = "031ban30kx84r54fj9aq96pwkz9nqh4p9yzs4l8i1wqmy52rldvl";
+  vendorSha256 = "sha256-AYoespfzFLP/jIIxbw5K653wc7sSfLY8K7di8GZ64wA=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/interpreters/jruby/default.nix b/nixpkgs/pkgs/development/interpreters/jruby/default.nix
index f792471c0619..be1a1a15c84e 100644
--- a/nixpkgs/pkgs/development/interpreters/jruby/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/jruby/default.nix
@@ -6,14 +6,14 @@ rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "5" "7" "";
 jruby = stdenv.mkDerivation rec {
   pname = "jruby";
 
-  version = "9.2.14.0";
+  version = "9.2.16.0";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
-    sha256 = "1dg0fz9b8m1k0sypvpxnf4xjqwc0pyy35xw4rsg4a7pha4jkprrj";
+    sha256 = "sha256-WuJ/FJ9z8/6k80NZy7dzwl2dmH5yte3snouTlXmX6zA=";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
      mkdir -pv $out/docs
@@ -23,7 +23,7 @@ jruby = stdenv.mkDerivation rec {
 
      for i in $out/bin/jruby{,.bash}; do
        wrapProgram $i \
-         --set JAVA_HOME ${jre}
+         --set JAVA_HOME ${jre.home}
      done
 
      ln -s $out/bin/jruby $out/bin/ruby
diff --git a/nixpkgs/pkgs/development/interpreters/jython/default.nix b/nixpkgs/pkgs/development/interpreters/jython/default.nix
index 61cc8f9cd0f5..38b599d339e7 100644
--- a/nixpkgs/pkgs/development/interpreters/jython/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/jython/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "142285hd9mx0nx5zw0jvkpqkb4kbhgyyy52p5bj061ya8bg5jizy";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontUnpack = true;
 
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/filesystem.nix b/nixpkgs/pkgs/development/interpreters/lua-5/filesystem.nix
deleted file mode 100644
index d4e68b5cb762..000000000000
--- a/nixpkgs/pkgs/development/interpreters/lua-5/filesystem.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, lua5 }:
-
-stdenv.mkDerivation {
-  version = "1.6.2";
-  pname = "lua-filesystem";
-  isLibrary = true;
-  src = fetchurl {
-    url = "https://github.com/keplerproject/luafilesystem/archive/v1_6_2.tar.gz";
-    sha256 = "1n8qdwa20ypbrny99vhkmx8q04zd2jjycdb5196xdhgvqzk10abz";
-  };
-
-  buildInputs = [ lua5 ];
-
-  preBuild = ''
-    makeFlagsArray=(
-      PREFIX=$out
-      LUA_LIBDIR="$out/lib/lua/${lua5.luaversion}"
-      LUA_INC="-I${lua5}/include");
-  '';
-
-  meta = {
-    homepage = "https://github.com/keplerproject/luafilesystem";
-    hydraPlatforms = lib.platforms.linux;
-    maintainers = [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/sockets.nix b/nixpkgs/pkgs/development/interpreters/lua-5/sockets.nix
deleted file mode 100644
index d16f068883ac..000000000000
--- a/nixpkgs/pkgs/development/interpreters/lua-5/sockets.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchurl, lua5 }:
-
-stdenv.mkDerivation rec {
-  pname = "lua-sockets";
-  version = "2.0.2";
-  src = fetchurl {
-      url = "http://files.luaforge.net/releases/luasocket/luasocket/luasocket-${version}/luasocket-${version}.tar.gz";
-      sha256 = "19ichkbc4rxv00ggz8gyf29jibvc2wq9pqjik0ll326rrxswgnag";
-  };
-
-  luaver = lua5.luaversion;
-  patchPhase = ''
-      sed -e "s,^INSTALL_TOP_SHARE.*,INSTALL_TOP_SHARE=$out/share/lua/${lua5.luaversion}," \
-          -e "s,^INSTALL_TOP_LIB.*,INSTALL_TOP_LIB=$out/lib/lua/${lua5.luaversion}," \
-          -i config
-  '';
-
-  buildInputs = [ lua5 ];
-
-  meta = {
-    homepage = "http://w3.impa.br/~diego/software/luasocket/";
-    hydraPlatforms = lib.platforms.linux;
-    maintainers = [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/interpreters/maude/default.nix b/nixpkgs/pkgs/development/interpreters/maude/default.nix
index 6dcb697d7639..860f9ac3a5eb 100644
--- a/nixpkgs/pkgs/development/interpreters/maude/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/maude/default.nix
@@ -22,8 +22,9 @@ stdenv.mkDerivation {
     sha256 = "b112d7843f65217e3b5a9d40461698ef8dab7cbbe830af21216dfb924dc88a2f";
   };
 
+  nativeBuildInputs = [ unzip ];
   buildInputs = [
-    flex bison ncurses buddy tecla gmpxx libsigsegv makeWrapper unzip cln yices
+    flex bison ncurses buddy tecla gmpxx libsigsegv makeWrapper cln yices
   ];
 
   hardeningDisable = [ "stackprotector" ] ++
diff --git a/nixpkgs/pkgs/development/interpreters/metamath/default.nix b/nixpkgs/pkgs/development/interpreters/metamath/default.nix
index a2b94667a6e4..d5c021a815f9 100644
--- a/nixpkgs/pkgs/development/interpreters/metamath/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/metamath/default.nix
@@ -1,12 +1,10 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
-let
-  version = "0.196";
-in stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "metamath";
-  inherit version;
+  version = "0.196";
 
-  buildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook ];
 
   src = fetchFromGitHub {
     owner = "metamath";
@@ -25,7 +23,7 @@ in stdenv.mkDerivation {
     '';
     homepage = "http://us.metamath.org";
     downloadPage = "http://us.metamath.org/#downloads";
-    license = licenses.gpl2Only;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.taneb ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/interpreters/mujs/default.nix b/nixpkgs/pkgs/development/interpreters/mujs/default.nix
index 5e600a92fb77..a0e23614ebc4 100644
--- a/nixpkgs/pkgs/development/interpreters/mujs/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/mujs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mujs";
-  version = "1.0.7";
+  version = "1.0.9";
 
   src = fetchurl {
     url = "https://mujs.com/downloads/mujs-${version}.tar.xz";
-    sha256 = "1ilhay15z4k7mlzs6g2d00snivin7vp72dfw5wwpmc0x70jr31l2";
+    sha256 = "sha256-zKjWafQtO2OEPelF370s5KkArbT+gQv3lQQpYdGw6HY=";
   };
 
   buildInputs = [ readline ];
diff --git a/nixpkgs/pkgs/development/interpreters/octave/build-env.nix b/nixpkgs/pkgs/development/interpreters/octave/build-env.nix
new file mode 100644
index 000000000000..433026f0a7e9
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/octave/build-env.nix
@@ -0,0 +1,80 @@
+{ lib, stdenv, octave, buildEnv
+, makeWrapper, texinfo
+, octavePackages
+, wrapOctave
+, computeRequiredOctavePackages
+, extraLibs ? []
+, extraOutputsToInstall ? []
+, postBuild ? ""
+, ignoreCollisions ? false
+}:
+
+# Create an octave executable that knows about additional packages
+let
+  packages = computeRequiredOctavePackages extraLibs;
+
+in buildEnv {
+  name = "${octave.name}-env";
+  paths = extraLibs ++ [ octave ];
+
+  inherit ignoreCollisions;
+  extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ texinfo wrapOctave ];
+
+  # During "build" we must first unlink the /share symlink to octave's /share
+  # Then, we can re-symlink the all of octave/share, except for /share/octave
+  # in env/share/octave, re-symlink everything from octave/share/octave and then
+  # perform the pkg install.
+  postBuild = ''
+      if [ -L "$out/bin" ]; then
+         unlink $out/bin
+         mkdir -p "$out/bin"
+         cd "${octave}/bin"
+         for prg in *; do
+             if [ -x $prg ]; then
+                makeWrapper "${octave}/bin/$prg" "$out/bin/$prg" --set OCTAVE_SITE_INITFILE "$out/share/octave/site/m/startup/octaverc"
+             fi
+         done
+         cd $out
+      fi
+
+      # Remove symlinks to the input tarballs, they aren't needed.
+      rm $out/*.tar.gz
+
+      createOctavePackagesPath $out ${octave}
+
+      for path in ${lib.concatStringsSep " " packages}; do
+          if [ -e $path/*.tar.gz ]; then
+             $out/bin/octave-cli --eval "pkg local_list $out/.octave_packages; \
+                                         pkg prefix $out/${octave.octPkgsPath} $out/${octave.octPkgsPath}; \
+                                         pfx = pkg (\"prefix\"); \
+                                         pkg install -nodeps -local $path/*.tar.gz"
+          fi
+      done
+
+      # Re-write the octave-wide startup file (share/octave/site/m/startup/octaverc)
+      # To point to the new local_list in $out
+      addPkgLocalList $out ${octave}
+
+      wrapOctavePrograms "${lib.concatStringsSep " " packages}"
+     '' + postBuild;
+
+  inherit (octave) meta;
+
+  passthru = octave.passthru // {
+    interpreter = "$out/bin/octave";
+    inherit octave;
+    env = stdenv.mkDerivation {
+      name = "interactive-${octave.name}-environment";
+
+      buildCommand = ''
+        echo >&2 ""
+        echo >&2 "*** octave 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
+        echo >&2 ""
+        exit 1
+      '';
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/octave/build-octave-package.nix b/nixpkgs/pkgs/development/interpreters/octave/build-octave-package.nix
new file mode 100644
index 000000000000..73a67769d6a6
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/octave/build-octave-package.nix
@@ -0,0 +1,113 @@
+# Generic builder for GNU Octave libraries.
+# This is a file that contains nested functions. The first, outer, function
+# is the library- and package-wide details, such as the nixpkgs library, any
+# additional configuration provided, and the namePrefix to use (based on the
+# pname and version of Octave), the octave package, etc.
+
+{ lib
+, stdenv
+, config
+, octave
+, texinfo
+, computeRequiredOctavePackages
+, writeRequiredOctavePackagesHook
+}:
+
+# The inner function contains information required to build the individual
+# libraries.
+{ fullLibName ? "${attrs.pname}-${attrs.version}"
+
+, src
+
+, dontPatch ? false
+, patches ? []
+, patchPhase ? ""
+
+, enableParallelBuilding ? true
+# Build-time dependencies for the package, which were compiled for the system compiling this.
+, nativeBuildInputs ? []
+
+# Build-time dependencies for the package, which may not have been compiled for the system compiling this.
+, buildInputs ? []
+
+# Propagate build dependencies so in case we have A -> B -> C,
+# C can import package A propagated by B
+# Run-time dependencies for the package.
+, propagatedBuildInputs ? []
+
+# Octave packages that are required at runtime for this one.
+# These behave similarly to propagatedBuildInputs, where if
+# package A is needed by B, and C needs B, then C also requires A.
+# The main difference between these and propagatedBuildInputs is
+# during the package's installation into octave, where all
+# requiredOctavePackages are ALSO installed into octave.
+, requiredOctavePackages ? []
+
+, preBuild ? ""
+
+, meta ? {}
+
+, passthru ? {}
+
+, ... } @ attrs:
+
+let
+  requiredOctavePackages' = computeRequiredOctavePackages requiredOctavePackages;
+
+in stdenv.mkDerivation {
+  packageName = "${fullLibName}";
+  # The name of the octave package ends up being
+  # "octave-version-package-version"
+  name = "${octave.pname}-${octave.version}-${fullLibName}";
+
+  # This states that any package built with the function that this returns
+  # will be an octave package. This is used for ensuring other octave
+  # packages are installed into octave during the environment building phase.
+  isOctavePackage = true;
+
+  OCTAVE_HISTFILE = "/dev/null";
+
+  inherit src;
+
+  inherit dontPatch patches patchPhase;
+
+  dontConfigure = true;
+
+  enableParallelBuilding = enableParallelBuilding;
+
+  requiredOctavePackages = requiredOctavePackages';
+
+  nativeBuildInputs = [
+    octave
+    writeRequiredOctavePackagesHook
+  ]
+  ++ nativeBuildInputs;
+
+  buildInputs = buildInputs ++ requiredOctavePackages';
+
+  propagatedBuildInputs = propagatedBuildInputs ++ [ texinfo ];
+
+  preBuild = if preBuild == "" then
+    ''
+      # This trickery is needed because Octave expects a single directory inside
+      # at the top-most level of the tarball.
+      tar --transform 's,^,${fullLibName}/,' -cz * -f ${fullLibName}.tar.gz
+    ''
+             else
+               preBuild;
+
+  buildPhase = ''
+    runHook preBuild
+
+    mkdir -p $out
+    octave-cli --eval "pkg build $out ${fullLibName}.tar.gz"
+
+    runHook postBuild
+  '';
+
+  # We don't install here, because that's handled when we build the environment
+  # together with Octave.
+  dontInstall = true;
+
+  inherit meta;
+}
diff --git a/nixpkgs/pkgs/development/interpreters/octave/default.nix b/nixpkgs/pkgs/development/interpreters/octave/default.nix
index 6ad25d24eae6..0a87c1ddcf07 100644
--- a/nixpkgs/pkgs/development/interpreters/octave/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/octave/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, pkgs
 , lib
 # Note: either stdenv.mkDerivation or, for octaveFull, the qt-5 mkDerivation
 # with wrapQtAppsHook (comes from libsForQt5.callPackage)
@@ -45,6 +46,11 @@
 , python ? null
 , overridePlatforms ? null
 , sundials ? null
+# - Packages required for building extra packages.
+, newScope
+, callPackage
+, makeSetupHook
+, makeWrapper
 # - Build Octave Qt GUI:
 , enableQt ? false
 , qtbase ? null
@@ -60,6 +66,7 @@
 }:
 
 let
+
   # Not always evaluated
   blas' = if use64BitIdx then
     blas.override {
@@ -94,118 +101,144 @@ let
   else
     null
   ;
-in mkDerivation rec {
-  version = "6.1.0";
-  pname = "octave";
 
-  src = fetchurl {
-    url = "mirror://gnu/octave/${pname}-${version}.tar.gz";
-    sha256 = "0mqa1g3fq0q45mqc0didr8vl6bk7jzj6gjsf1522qqjq2r04xwvg";
+  octavePackages = import ../../../top-level/octave-packages.nix {
+    inherit pkgs;
+    inherit lib stdenv fetchurl newScope;
+    octave = self;
   };
 
-  buildInputs = [
-    readline
-    ncurses
-    perl
-    flex
-    qhull
-    graphicsmagick
-    pcre
-    fltk
-    zlib
-    curl
-    blas'
-    lapack'
-    libsndfile
-    fftw
-    fftwSinglePrec
-    portaudio
-    qrupdate'
-    arpack'
-    libwebp
-    gl2ps
-  ]
-  ++ lib.optionals enableQt [
-    qtbase
-    qtsvg
-    qscintilla
-  ]
-  ++ lib.optionals (ghostscript != null) [ ghostscript ]
-  ++ lib.optionals (hdf5 != null) [ hdf5 ]
-  ++ lib.optionals (glpk != null) [ glpk ]
-  ++ lib.optionals (suitesparse != null) [ suitesparse' ]
-  ++ lib.optionals (enableJava) [ jdk ]
-  ++ lib.optionals (sundials != null) [ sundials ]
-  ++ lib.optionals (gnuplot != null) [ gnuplot ]
-  ++ lib.optionals (python != null) [ python ]
-  ++ lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ]
-  ++ lib.optionals stdenv.isDarwin [
-    libiconv
-    darwin.apple_sdk.frameworks.Accelerate
-    darwin.apple_sdk.frameworks.Cocoa
-  ]
-  ;
-  nativeBuildInputs = [
-    pkg-config
-    gfortran
-    # Listed here as well because it's outputs are split
-    fftw
-    fftwSinglePrec
-    texinfo
-  ]
-  ++ lib.optionals (sundials != null) [ sundials ]
-  ++ lib.optionals enableJIT [ llvm ]
-  ++ lib.optionals enableQt [
-    qtscript
-    qttools
-  ]
-  ;
+  wrapOctave = callPackage ./wrap-octave.nix {
+    octave = self;
+    inherit (pkgs) makeSetupHook makeWrapper;
+  };
+
+  self = mkDerivation rec {
+    version = "6.2.0";
+    pname = "octave";
+
+    src = fetchurl {
+      url = "mirror://gnu/octave/${pname}-${version}.tar.gz";
+      sha256 = "sha256-RX0f2oY0qDni/Xz8VbmL1W82tq5z0xu530Pd4wEsqnw=";
+    };
+
+    buildInputs = [
+      readline
+      ncurses
+      perl
+      flex
+      qhull
+      graphicsmagick
+      pcre
+      fltk
+      zlib
+      curl
+      blas'
+      lapack'
+      libsndfile
+      fftw
+      fftwSinglePrec
+      portaudio
+      qrupdate'
+      arpack'
+      libwebp
+      gl2ps
+    ]
+    ++ lib.optionals enableQt [
+      qtbase
+      qtsvg
+      qscintilla
+    ]
+    ++ lib.optionals (ghostscript != null) [ ghostscript ]
+    ++ lib.optionals (hdf5 != null) [ hdf5 ]
+    ++ lib.optionals (glpk != null) [ glpk ]
+    ++ lib.optionals (suitesparse != null) [ suitesparse' ]
+    ++ lib.optionals (enableJava) [ jdk ]
+    ++ lib.optionals (sundials != null) [ sundials ]
+    ++ lib.optionals (gnuplot != null) [ gnuplot ]
+    ++ lib.optionals (python != null) [ python ]
+    ++ lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      darwin.apple_sdk.frameworks.Accelerate
+      darwin.apple_sdk.frameworks.Cocoa
+    ]
+    ;
+    nativeBuildInputs = [
+      pkg-config
+      gfortran
+      # Listed here as well because it's outputs are split
+      fftw
+      fftwSinglePrec
+      texinfo
+    ]
+    ++ lib.optionals (sundials != null) [ sundials ]
+    ++ lib.optionals enableJIT [ llvm ]
+    ++ lib.optionals enableQt [
+      qtscript
+      qttools
+    ]
+    ;
 
-  doCheck = !stdenv.isDarwin;
+    doCheck = !stdenv.isDarwin;
 
-  enableParallelBuilding = true;
+    enableParallelBuilding = true;
 
-  # See https://savannah.gnu.org/bugs/?50339
-  F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else "";
+    # See https://savannah.gnu.org/bugs/?50339
+    F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else "";
 
-  configureFlags = [
-    "--with-blas=blas"
-    "--with-lapack=lapack"
-    (if use64BitIdx then "--enable-64" else "--disable-64")
-  ]
+    configureFlags = [
+      "--with-blas=blas"
+      "--with-lapack=lapack"
+      (if use64BitIdx then "--enable-64" else "--disable-64")
+    ]
     ++ lib.optionals stdenv.isDarwin [ "--enable-link-all-dependencies" ]
     ++ lib.optionals enableReadline [ "--enable-readline" ]
     ++ lib.optionals stdenv.isDarwin [ "--with-x=no" ]
     ++ lib.optionals enableQt [ "--with-qt=5" ]
     ++ lib.optionals enableJIT [ "--enable-jit" ]
-  ;
+    ;
 
-  # Keep a copy of the octave tests detailed results in the output
-  # derivation, because someone may care
-  postInstall = ''
-    cp test/fntests.log $out/share/octave/${pname}-${version}-fntests.log || true
-  '';
+    # Keep a copy of the octave tests detailed results in the output
+    # derivation, because someone may care
+    postInstall = ''
+      cp test/fntests.log $out/share/octave/${pname}-${version}-fntests.log || true
+    '';
 
-  passthru = {
-    sitePath = "share/octave/${version}/site";
-    blas = blas';
-    lapack = lapack';
-    qrupdate = qrupdate';
-    arpack = arpack';
-    suitesparse = suitesparse';
-    inherit python;
-    inherit enableQt enableJIT enableReadline enableJava;
-  };
+    passthru = rec {
+      sitePath = "share/octave/${version}/site";
+      octPkgsPath = "share/octave/octave_packages";
+      blas = blas';
+      lapack = lapack';
+      qrupdate = qrupdate';
+      arpack = arpack';
+      suitesparse = suitesparse';
+      inherit fftw fftwSinglePrec;
+      inherit portaudio;
+      inherit jdk;
+      inherit python;
+      inherit enableQt enableJIT enableReadline enableJava;
+      buildEnv = callPackage ./build-env.nix {
+        octave = self;
+        inherit octavePackages wrapOctave;
+        inherit (octavePackages) computeRequiredOctavePackages;
+      };
+      withPackages = import ./with-packages.nix { inherit buildEnv octavePackages; };
+      pkgs = octavePackages;
+      interpreter = "${self}/bin/octave";
+    };
 
-  meta = {
-    homepage = "https://www.gnu.org/software/octave/";
-    license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ raskin doronbehar ];
-    description = "Scientific Pragramming Language";
-    # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT
-    broken = enableJIT;
-    platforms = if overridePlatforms == null then
-      (lib.platforms.linux ++ lib.platforms.darwin)
-    else overridePlatforms;
+    meta = {
+      homepage = "https://www.gnu.org/software/octave/";
+      license = lib.licenses.gpl3Plus;
+      maintainers = with lib.maintainers; [ raskin doronbehar ];
+      description = "Scientific Pragramming Language";
+      # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT
+      broken = enableJIT;
+      platforms = if overridePlatforms == null then
+        (lib.platforms.linux ++ lib.platforms.darwin)
+      else overridePlatforms;
+    };
   };
-}
+
+in self
diff --git a/nixpkgs/pkgs/development/interpreters/octave/hooks/default.nix b/nixpkgs/pkgs/development/interpreters/octave/hooks/default.nix
new file mode 100644
index 000000000000..f47560921af3
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/octave/hooks/default.nix
@@ -0,0 +1,13 @@
+# Hooks for building Octave packages.
+{ octave
+, lib
+, callPackage
+, makeSetupHook
+}:
+
+rec {
+  writeRequiredOctavePackagesHook = callPackage ({ }:
+    makeSetupHook {
+      name = "write-required-octave-packages-hook";
+    } ./write-required-octave-packages-hook.sh) {};
+}
diff --git a/nixpkgs/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh b/nixpkgs/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh
new file mode 100644
index 000000000000..64e87d68246f
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh
@@ -0,0 +1,17 @@
+# Setup hook for writing octave packages that are run-time dependencies for
+# another package to a nix-support file.
+# `echo`s the full path name to the package derivation that is required.
+echo "Sourcing octave-write-required-octave-packages-hook.sh"
+
+octaveWriteRequiredOctavePackagesPhase() {
+    echo "Executing octaveWriteRequiredOctavePackagesPhase"
+
+    mkdir -p $out/nix-support
+    echo ${requiredOctavePackages} > $out/nix-support/required-octave-packages
+}
+
+# Yes its a bit long...
+if [ -z "${dontWriteRequiredOctavePackagesPhase-}" ]; then
+    echo "Using octaveWriteRequiredOctavePackagesPhase"
+    preDistPhases+=" octaveWriteRequiredOctavePackagesPhase"
+fi
diff --git a/nixpkgs/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh b/nixpkgs/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh
new file mode 100644
index 000000000000..032ea398ac56
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh
@@ -0,0 +1,17 @@
+# Setup hook for writing octave packages that are run-time dependencies for
+# another package to a nix-support file.
+# `echo`s the full path name to the package derivation that is required.
+echo "Sourcing write-required-octave-packages-hook.sh"
+
+writeRequiredOctavePackagesPhase() {
+    echo "Executing writeRequiredOctavePackagesPhase"
+
+    mkdir -p $out/nix-support
+    echo ${requiredOctavePackages} > $out/nix-support/required-octave-packages
+}
+
+# Yes its a bit long...
+if [ -z "${dontWriteRequiredOctavePackagesPhase-}" ]; then
+    echo "Using writeRequiredOctavePackagesPhase"
+    preDistPhases+=" writeRequiredOctavePackagesPhase"
+fi
diff --git a/nixpkgs/pkgs/development/interpreters/octave/with-packages.nix b/nixpkgs/pkgs/development/interpreters/octave/with-packages.nix
new file mode 100644
index 000000000000..f00befbb00d4
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/octave/with-packages.nix
@@ -0,0 +1,6 @@
+{ buildEnv, octavePackages }:
+
+# Takes the buildEnv defined for Octave and the set of octavePackages, and returns
+# a function, which when given a function whose return value is a list of extra
+# packages to install, builds and returns that environment.
+f: let packages = f octavePackages; in buildEnv.override { extraLibs = packages; }
diff --git a/nixpkgs/pkgs/development/interpreters/octave/wrap-octave.nix b/nixpkgs/pkgs/development/interpreters/octave/wrap-octave.nix
new file mode 100644
index 000000000000..1e4616136a1b
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/octave/wrap-octave.nix
@@ -0,0 +1,16 @@
+{ lib
+, octave
+, makeSetupHook
+, makeWrapper
+}:
+
+# Defined in trivial-builders.nix
+# Imported as wrapOctave in octave/default.nix and passed to octave's buildEnv
+# as nativeBuildInput
+# Each of the substitutions is available in the wrap.sh script as @thingSubstituted@
+makeSetupHook {
+  name = "${octave.name}-pkgs-setup-hook";
+  deps = makeWrapper;
+  substitutions.executable = octave.interpreter;
+  substitutions.octave = octave;
+} ./wrap.sh
diff --git a/nixpkgs/pkgs/development/interpreters/octave/wrap.sh b/nixpkgs/pkgs/development/interpreters/octave/wrap.sh
new file mode 100644
index 000000000000..a5969fca2a96
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/octave/wrap.sh
@@ -0,0 +1,132 @@
+# Unlinks a directory (given as the first argument), and re-creates that
+# directory as an actual directory. Then descends into the directory of
+# the same name in the origin (arg_2/arg_3) and symlinks the contents of
+# that directory into the passed end-location.
+unlinkDirReSymlinkContents() {
+    local dirToUnlink="$1"
+    local origin="$2"
+    local contentsLocation="$3"
+
+    unlink $dirToUnlink/$contentsLocation
+    mkdir -p $dirToUnlink/$contentsLocation
+    for f in $origin/$contentsLocation/*; do
+        ln -s -t "$dirToUnlink/$contentsLocation" "$f"
+    done
+}
+
+# Using unlinkDirReSymlinkContents, un-symlinks directories down to
+# $out/share/octave, and then creates the octave_packages directory.
+createOctavePackagesPath() {
+    local desiredOut=$1
+    local origin=$2
+
+    if [ -L "$out/share" ]; then
+        unlinkDirReSymlinkContents "$desiredOut" "$origin" "share"
+    fi
+
+    if [ -L "$out/share/octave" ]; then
+        unlinkDirReSymlinkContents "$desiredOut" "$origin" "share/octave"
+    fi
+
+    # Now that octave_packages has a path rather than symlinks, create the
+    # octave_packages directory for installed packages.
+    mkdir -p "$desiredOut/share/octave/octave_packages"
+}
+
+# First, descends down to $out/share/octave/site/m/startup/octaverc, and
+# copies that start-up file. Once done, it performs a `chmod` to allow
+# writing. Lastly, it `echo`s the location of the locally installed packages
+# to the startup file, allowing octave to discover installed packages.
+addPkgLocalList() {
+    local desiredOut=$1
+    local origin=$2
+    local octaveSite="share/octave/site"
+    local octaveSiteM="$octaveSite/m"
+    local octaveSiteStartup="$octaveSiteM/startup"
+    local siteOctavercStartup="$octaveSiteStartup/octaverc"
+
+    unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSite"
+    unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSiteM"
+    unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSiteStartup"
+
+    unlink "$out/$siteOctavercStartup"
+    cp "$origin/$siteOctavercStartup" "$desiredOut/$siteOctavercStartup"
+    chmod u+w "$desiredOut/$siteOctavercStartup"
+    echo "pkg local_list $out/.octave_packages" >> "$desiredOut/$siteOctavercStartup"
+}
+
+# Wrapper function for wrapOctaveProgramsIn. Takes one argument, a
+# space-delimited string of packages' paths that will be installed.
+wrapOctavePrograms() {
+    wrapOctaveProgramsIn "$out/bin" "$out" "$@"
+}
+
+# Wraps all octave programs in $out/bin with all the propagated inputs that
+# a particular package requires. $1 is the directory to look for binaries in
+# to wrap. $2 is the path to the octave ENVIRONMENT. $3 is the space-delimited
+# string of packages.
+wrapOctaveProgramsIn() {
+    local dir="$1"
+    local octavePath="$2"
+    local pkgs="$3"
+    local f
+
+    buildOctavePath "$octavePath" "$pkgs"
+
+    # Find all regular files in the output directory that are executable.
+    if [ -d "$dir" ]; then
+        find "$dir" -type f -perm -0100 -print0 | while read -d "" f; do
+            echo "wrapping \`$f'..."
+            local -a wrap_args=("$f"
+                --prefix PATH ':' "$program_PATH"
+                   )
+            local -a wrapProgramArgs=("${wrap_args[@]}")
+            wrapProgram "${wrapProgramArgs[@]}"
+    done
+    fi
+}
+
+# Build the PATH environment variable by walking through the closure of
+# dependencies. Starts by constructing the `program_PATH` variable with the
+# environment's path, then adding the original octave's location, and marking
+# them in `octavePathsSeen`.
+buildOctavePath() {
+    local octavePath="$1"
+    local packages="$2"
+
+    local pathsToSearch="$octavePath $packages"
+
+    # Create an empty table of Octave paths.
+    declare -A octavePathsSeen=()
+    program_PATH=
+    octavePathsSeen["$out"]=1
+    octavePathsSeen["@octave@"]=1
+    addToSearchPath program_PATH "$out/bin"
+    addToSearchPath program_PATH "@octave@/bin"
+    echo "program_PATH to change to is: $program_PATH"
+    for path in $pathsToSearch; do
+    echo "Recurse to propagated-build-input: $path"
+    _addToOctavePath $path
+    done
+}
+
+# Adds the bin directories to the program_PATH variable.
+# Recurses on any paths declared in `propagated-build-inputs`, while avoiding
+# duplicating paths by flagging the directires it has seen in `octavePathsSeen`.
+_addToOctavePath() {
+    local dir="$1"
+    # Stop if we've already visited this path.
+    if [ -n "${octavePathsSeen[$dir]}" ]; then return; fi
+    octavePathsSeen[$dir]=1
+    # addToSearchPath is defined in stdenv/generic/setup.sh. It has the effect
+    # of calling `export X=$dir/...:$X`.
+    addToSearchPath program_PATH $dir/bin
+
+    # Inspect the propagated inputs (if they exist) and recur on them.
+    local prop="$dir/nix-support/propagated-build-inputs"
+    if [ -e $prop ]; then
+    for new_path in $(cat $prop); do
+        _addToOctavePath $new_path
+    done
+    fi
+}
diff --git a/nixpkgs/pkgs/development/interpreters/perl/aarch64-darwin.patch b/nixpkgs/pkgs/development/interpreters/perl/aarch64-darwin.patch
new file mode 100644
index 000000000000..b700c8ca6e0d
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/perl/aarch64-darwin.patch
@@ -0,0 +1,46 @@
+diff --git a/hints/darwin.sh b/hints/darwin.sh
+index 0a91bc083c0..fdfbdd4a3b9 100644
+--- a/hints/darwin.sh
++++ b/hints/darwin.sh
+@@ -301,7 +301,7 @@ case "$osvers" in  # Note: osvers is the kernel version, not the 10.x
+    # We now use MACOSX_DEPLOYMENT_TARGET, if set, as an override by
+    # capturing its value and adding it to the flags.
+     case "$MACOSX_DEPLOYMENT_TARGET" in
+-    10.*)
++    [1-9][0-9].*)
+       add_macosx_version_min ccflags $MACOSX_DEPLOYMENT_TARGET
+       add_macosx_version_min ldflags $MACOSX_DEPLOYMENT_TARGET
+       ;;
+@@ -313,7 +313,7 @@ case "$osvers" in  # Note: osvers is the kernel version, not the 10.x
+ 
+ *** Unexpected MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET
+ ***
+-*** Please either set it to 10.something, or to empty.
++*** Please either set it to a valid macOS version number (e.g., 10.15) or to empty.
+ 
+ EOM
+       exit 1
+@@ -327,7 +327,7 @@ EOM
+     # "ProductVersion:    10.11"     "10.11"
+         prodvers=`sw_vers|awk '/^ProductVersion:/{print $2}'|awk -F. '{print $1"."$2}'`
+     case "$prodvers" in
+-    10.*)
++    [1-9][0-9].*)
+       add_macosx_version_min ccflags $prodvers
+       add_macosx_version_min ldflags $prodvers
+       ;;
+@@ -342,11 +342,10 @@ EOM
+       exit 1
+     esac
+ 
+-    # The X in 10.X
+-    prodvers_minor=$(echo $prodvers|awk -F. '{print $2}')
++    darwin_major=$(echo $osvers|awk -F. '{print $1}')
+ 
+-    # macOS (10.12) deprecated syscall().
+-    if [ "$prodvers_minor" -ge 12 ]; then
++    # macOS 10.12 (darwin 16.0.0) deprecated syscall().
++    if [ "$darwin_major" -ge 16 ]; then
+         d_syscall='undef'
+         # If deploying to pre-10.12, suppress Time::HiRes's detection of the system clock_gettime()
+         case "$MACOSX_DEPLOYMENT_TARGET" in
diff --git a/nixpkgs/pkgs/development/interpreters/perl/default.nix b/nixpkgs/pkgs/development/interpreters/perl/default.nix
index 75fe1bac8cb4..01b3e995f5e4 100644
--- a/nixpkgs/pkgs/development/interpreters/perl/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/perl/default.nix
@@ -41,7 +41,10 @@ let
       ]
       ++ optional stdenv.isSunOS ./ld-shared.patch
       ++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ]
-      ++ optional crossCompiling ./MakeMaker-cross.patch;
+      ++ optional crossCompiling ./MakeMaker-cross.patch
+      # Backporting https://github.com/Perl/perl5/pull/17946, can be
+      # removed if there's ever a 5.30.x release with it included.
+      ++ optional (versionOlder version "5.32.1") ./aarch64-darwin.patch;
 
     # This is not done for native builds because pwd may need to come from
     # bootstrap tools when building bootstrap perl.
@@ -168,11 +171,11 @@ let
       priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
     };
   } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
-    crossVersion = "4c55233ae95a6aef4d93291fe8ad12709b11e575"; # Jan 21, 2021
+    crossVersion = "e53999d0c340769792ba18d749751b0df3d1d177"; # Mar 21, 2021
 
     perl-cross-src = fetchurl {
       url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz";
-      sha256 = "04bxn43ir7b4c2bb1z1l71l93hrysjv00h879nm70m99q6vxq2hc";
+      sha256 = "14vcpwjhq667yh0cs7ism70df8l7068vn4a0ww59hdjyj7yc84i6";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@@ -200,15 +203,15 @@ in {
   perl532 = common {
     perl = pkgs.perl532;
     buildPerl = buildPackages.perl532;
-    version = "5.32.0";
-    sha256 = "1d6001cjnpxfv79000bx00vmv2nvdz7wrnyas451j908y7hirszg";
+    version = "5.32.1";
+    sha256 = "0b7brakq9xs4vavhg391as50nbhzryc7fy5i65r81bnq3j897dh3";
   };
 
   # the latest Devel version
   perldevel = common {
     perl = pkgs.perldevel;
     buildPerl = buildPackages.perldevel;
-    version = "5.33.6";
-    sha256 = "1fx6b2q7wzd0xwy7qkmkvd5bdm09d3zfnynrb6afl9ghd8ww56fv";
+    version = "5.33.8";
+    sha256 = "1zr6sdsfcmk86n3f8j65x07xkv29v0pi8bwc986ahmjx7x92xzgl";
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/perl/wrapper.nix b/nixpkgs/pkgs/development/interpreters/perl/wrapper.nix
index da95b5a89647..e1909a15e059 100644
--- a/nixpkgs/pkgs/development/interpreters/perl/wrapper.nix
+++ b/nixpkgs/pkgs/development/interpreters/perl/wrapper.nix
@@ -17,11 +17,10 @@ let
     inherit ignoreCollisions;
     extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
 
+    nativeBuildInputs = [ makeWrapper ];
+
     # we create wrapper for the binaries in the different packages
     postBuild = ''
-
-      . "${makeWrapper}/nix-support/setup-hook"
-
       if [ -L "$out/bin" ]; then
           unlink "$out/bin"
       fi
diff --git a/nixpkgs/pkgs/development/interpreters/php/7.4.nix b/nixpkgs/pkgs/development/interpreters/php/7.4.nix
index 42aa28b65e63..812a59ec8a33 100644
--- a/nixpkgs/pkgs/development/interpreters/php/7.4.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/7.4.nix
@@ -4,8 +4,8 @@ let
   generic = (import ./generic.nix) _args;
 
   base = callPackage generic (_args // {
-    version = "7.4.15";
-    sha256 = "0mvp7b16sy9j36v9v1mhixwz16hi8mhax7rwpqy3sv24jc1bxmqv";
+    version = "7.4.16";
+    sha256 = "0gnfb4vaj71fiap0q9lk6vs1xs7l6sha60isw6aaw3zxgh00ywc5";
   });
 
 in base.withExtensions ({ all, ... }: with all; ([
diff --git a/nixpkgs/pkgs/development/interpreters/php/8.0.nix b/nixpkgs/pkgs/development/interpreters/php/8.0.nix
index a4aa4842dfa3..233b0da4380c 100644
--- a/nixpkgs/pkgs/development/interpreters/php/8.0.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/8.0.nix
@@ -4,8 +4,8 @@ let
   generic = (import ./generic.nix) _args;
 
   base = callPackage generic (_args // {
-    version = "8.0.2";
-    sha256 = "1rm3gc2h9l0zd1ccawpg1wxqm8v8rllq417f2w5pqcdf7sgah3q0";
+    version = "8.0.3";
+    sha256 = "04mh5sznbgwv67x9p0qz4i377zwdb5cc6r1mb3925y1lkqfn5y4m";
   });
 
 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 191d589aa90c..ad53e7558350 100644
--- a/nixpkgs/pkgs/development/interpreters/php/generic.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/generic.nix
@@ -5,7 +5,7 @@
 
 let
   generic =
-    { callPackage, lib, stdenv, nixosTests, config, fetchurl, makeWrapper
+    { callPackage, lib, stdenv, nixosTests, fetchurl, makeWrapper
     , symlinkJoin, writeText, autoconf, automake, bison, flex, libtool
     , pkg-config, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2
     , systemd, system-sendmail, valgrind, xcbuild
@@ -97,7 +97,7 @@ let
                     (enabledExtensions ++ (getDepsRecursively enabledExtensions)));
 
               extNames = map getExtName enabledExtensions;
-              extraInit = writeText "php.ini" ''
+              extraInit = writeText "php-extra-init-${version}.ini" ''
                 ${lib.concatStringsSep "\n"
                   (lib.textClosureList extensionTexts extNames)}
                 ${extraConfig}
@@ -112,7 +112,8 @@ let
                   withExtensions = mkWithExtensions allArgs allExtensionFunctions;
                   phpIni = "${phpWithExtensions}/lib/php.ini";
                   unwrapped = php;
-                  tests = nixosTests.php;
+                  # Select the right php tests for the php version
+                  tests = nixosTests."php${lib.strings.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor php.version)}";
                   inherit (php-packages) extensions buildPecl;
                   packages = php-packages.tools;
                   meta = php.meta // {
@@ -121,9 +122,11 @@ let
                 };
                 paths = [ php ];
                 postBuild = ''
-                  cp ${extraInit} $out/lib/php.ini
+                  ln -s ${extraInit} $out/lib/php.ini
 
-                  wrapProgram $out/bin/php --set PHP_INI_SCAN_DIR $out/lib
+                  if test -e $out/bin/php; then
+                    wrapProgram $out/bin/php --set PHP_INI_SCAN_DIR $out/lib
+                  fi
 
                   if test -e $out/bin/php-fpm; then
                     wrapProgram $out/bin/php-fpm --set PHP_INI_SCAN_DIR $out/lib
diff --git a/nixpkgs/pkgs/development/interpreters/picolisp/default.nix b/nixpkgs/pkgs/development/interpreters/picolisp/default.nix
index 341797fa3f4c..623eefec4162 100644
--- a/nixpkgs/pkgs/development/interpreters/picolisp/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/picolisp/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     url = "https://www.software-lab.de/${pname}-${version}.tgz";
     sha256 = "0l51x98bn1hh6kv40sdgp0x09pzg5i8yxbcjvm9n5bxsd6bbk5w2";
   };
-  buildInputs = [makeWrapper openssl] ++ optional stdenv.is64bit jdk;
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [openssl] ++ optional stdenv.is64bit jdk;
   patchPhase = ''
     sed -i "s/which java/command -v java/g" mkAsm
 
diff --git a/nixpkgs/pkgs/development/interpreters/pure/default.nix b/nixpkgs/pkgs/development/interpreters/pure/default.nix
index 19e6c93378f7..863df66899b1 100644
--- a/nixpkgs/pkgs/development/interpreters/pure/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/pure/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256="0px6x5ivcdbbp2pz5n1r1cwg1syadklhjw8piqhl63n91i4r7iyb";
   };
 
-  buildInputs = [ bison flex makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ bison flex ];
   propagatedBuildInputs = [ llvm gmp mpfr readline ];
   NIX_LDFLAGS = "-lLLVMJIT";
 
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/CVE-2021-3177.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/CVE-2021-3177.patch
new file mode 100644
index 000000000000..6c0ae468461f
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/CVE-2021-3177.patch
@@ -0,0 +1,181 @@
+From fab838b2ee7cfb9037c24f0f18dfe01aa379b3f7 Mon Sep 17 00:00:00 2001
+From: Benjamin Peterson <benjamin@python.org>
+Date: Mon, 18 Jan 2021 15:11:46 -0600
+Subject: [3.6] closes bpo-42938: Replace snprintf with Python unicode
+ formatting in ctypes param reprs. (GH-24250)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+(cherry picked from commit 916610ef90a0d0761f08747f7b0905541f0977c7)
+
+Co-authored-by: Benjamin Peterson <benjamin@python.org>
+Rebased for Python 2.7 by Michał Górny <mgorny@gentoo.org>
+---
+ Lib/ctypes/test/test_parameters.py                 | 43 +++++++++++++++++++
+ .../2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst       |  2 +
+ Modules/_ctypes/callproc.c                         | 49 +++++++++++-----------
+ 3 files changed, 69 insertions(+), 25 deletions(-)
+ create mode 100644 Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst
+
+diff --git a/Lib/ctypes/test/test_parameters.py b/Lib/ctypes/test/test_parameters.py
+index 23c1b6e225..3456882ccb 100644
+--- a/Lib/ctypes/test/test_parameters.py
++++ b/Lib/ctypes/test/test_parameters.py
+@@ -206,6 +206,49 @@ class SimpleTypesTestCase(unittest.TestCase):
+         with self.assertRaises(ZeroDivisionError):
+             WorseStruct().__setstate__({}, b'foo')
+ 
++    def test_parameter_repr(self):
++        from ctypes import (
++            c_bool,
++            c_char,
++            c_wchar,
++            c_byte,
++            c_ubyte,
++            c_short,
++            c_ushort,
++            c_int,
++            c_uint,
++            c_long,
++            c_ulong,
++            c_longlong,
++            c_ulonglong,
++            c_float,
++            c_double,
++            c_longdouble,
++            c_char_p,
++            c_wchar_p,
++            c_void_p,
++        )
++        self.assertRegexpMatches(repr(c_bool.from_param(True)), r"^<cparam '\?' at 0x[A-Fa-f0-9]+>$")
++        self.assertEqual(repr(c_char.from_param('a')), "<cparam 'c' (a)>")
++        self.assertRegexpMatches(repr(c_wchar.from_param('a')), r"^<cparam 'u' at 0x[A-Fa-f0-9]+>$")
++        self.assertEqual(repr(c_byte.from_param(98)), "<cparam 'b' (98)>")
++        self.assertEqual(repr(c_ubyte.from_param(98)), "<cparam 'B' (98)>")
++        self.assertEqual(repr(c_short.from_param(511)), "<cparam 'h' (511)>")
++        self.assertEqual(repr(c_ushort.from_param(511)), "<cparam 'H' (511)>")
++        self.assertRegexpMatches(repr(c_int.from_param(20000)), r"^<cparam '[li]' \(20000\)>$")
++        self.assertRegexpMatches(repr(c_uint.from_param(20000)), r"^<cparam '[LI]' \(20000\)>$")
++        self.assertRegexpMatches(repr(c_long.from_param(20000)), r"^<cparam '[li]' \(20000\)>$")
++        self.assertRegexpMatches(repr(c_ulong.from_param(20000)), r"^<cparam '[LI]' \(20000\)>$")
++        self.assertRegexpMatches(repr(c_longlong.from_param(20000)), r"^<cparam '[liq]' \(20000\)>$")
++        self.assertRegexpMatches(repr(c_ulonglong.from_param(20000)), r"^<cparam '[LIQ]' \(20000\)>$")
++        self.assertEqual(repr(c_float.from_param(1.5)), "<cparam 'f' (1.5)>")
++        self.assertEqual(repr(c_double.from_param(1.5)), "<cparam 'd' (1.5)>")
++        self.assertEqual(repr(c_double.from_param(1e300)), "<cparam 'd' (1e+300)>")
++        self.assertRegexpMatches(repr(c_longdouble.from_param(1.5)), r"^<cparam ('d' \(1.5\)|'g' at 0x[A-Fa-f0-9]+)>$")
++        self.assertRegexpMatches(repr(c_char_p.from_param(b'hihi')), "^<cparam 'z' \(0x[A-Fa-f0-9]+\)>$")
++        self.assertRegexpMatches(repr(c_wchar_p.from_param('hihi')), "^<cparam 'Z' \(0x[A-Fa-f0-9]+\)>$")
++        self.assertRegexpMatches(repr(c_void_p.from_param(0x12)), r"^<cparam 'P' \(0x0*12\)>$")
++
+ ################################################################
+ 
+ if __name__ == '__main__':
+diff --git a/Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst b/Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst
+new file mode 100644
+index 0000000000..7df65a156f
+--- /dev/null
++++ b/Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst
+@@ -0,0 +1,2 @@
++Avoid static buffers when computing the repr of :class:`ctypes.c_double` and
++:class:`ctypes.c_longdouble` values.
+diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
+index 066fefc0cc..421addf353 100644
+--- a/Modules/_ctypes/callproc.c
++++ b/Modules/_ctypes/callproc.c
+@@ -460,50 +460,51 @@ PyCArg_dealloc(PyCArgObject *self)
+ static PyObject *
+ PyCArg_repr(PyCArgObject *self)
+ {
+-    char buffer[256];
+     switch(self->tag) {
+     case 'b':
+     case 'B':
+-        sprintf(buffer, "<cparam '%c' (%d)>",
++        return PyString_FromFormat("<cparam '%c' (%d)>",
+             self->tag, self->value.b);
+-        break;
+     case 'h':
+     case 'H':
+-        sprintf(buffer, "<cparam '%c' (%d)>",
++        return PyString_FromFormat("<cparam '%c' (%d)>",
+             self->tag, self->value.h);
+-        break;
+     case 'i':
+     case 'I':
+-        sprintf(buffer, "<cparam '%c' (%d)>",
++        return PyString_FromFormat("<cparam '%c' (%d)>",
+             self->tag, self->value.i);
+-        break;
+     case 'l':
+     case 'L':
+-        sprintf(buffer, "<cparam '%c' (%ld)>",
++        return PyString_FromFormat("<cparam '%c' (%ld)>",
+             self->tag, self->value.l);
+-        break;
+ 
+ #ifdef HAVE_LONG_LONG
+     case 'q':
+     case 'Q':
+-        sprintf(buffer,
++        return PyString_FromFormat(
+             "<cparam '%c' (%" PY_FORMAT_LONG_LONG "d)>",
+             self->tag, self->value.q);
+-        break;
+ #endif
+     case 'd':
+-        sprintf(buffer, "<cparam '%c' (%f)>",
+-            self->tag, self->value.d);
+-        break;
+-    case 'f':
+-        sprintf(buffer, "<cparam '%c' (%f)>",
+-            self->tag, self->value.f);
+-        break;
+-
++    case 'f': {
++        PyObject *f = PyFloat_FromDouble((self->tag == 'f') ? self->value.f : self->value.d);
++        if (f == NULL) {
++            return NULL;
++        }
++        PyObject *r = PyObject_Repr(f);
++        if (r == NULL) {
++            Py_DECREF(f);
++            return NULL;
++        }
++        PyObject *result = PyString_FromFormat(
++            "<cparam '%c' (%s)>", self->tag, PyString_AsString(r));
++        Py_DECREF(r);
++        Py_DECREF(f);
++        return result;
++    }
+     case 'c':
+-        sprintf(buffer, "<cparam '%c' (%c)>",
++        return PyString_FromFormat("<cparam '%c' (%c)>",
+             self->tag, self->value.c);
+-        break;
+ 
+ /* Hm, are these 'z' and 'Z' codes useful at all?
+    Shouldn't they be replaced by the functionality of c_string
+@@ -512,16 +513,14 @@ PyCArg_repr(PyCArgObject *self)
+     case 'z':
+     case 'Z':
+     case 'P':
+-        sprintf(buffer, "<cparam '%c' (%p)>",
++        return PyString_FromFormat("<cparam '%c' (%p)>",
+             self->tag, self->value.p);
+         break;
+ 
+     default:
+-        sprintf(buffer, "<cparam '%c' at %p>",
++        return PyString_FromFormat("<cparam '%c' at %p>",
+             self->tag, self);
+-        break;
+     }
+-    return PyString_FromString(buffer);
+ }
+ 
+ static PyMemberDef PyCArgType_members[] = {
+-- 
+cgit v1.2.3
+
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
index 85af394e3f65..f905612d0229 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -27,7 +27,10 @@
 , sha256
 , passthruFun
 , static ? false
-, enableOptimizations ? (!stdenv.isDarwin)
+, stripBytecode ? reproducibleBuild
+, rebuildBytecode ? true
+, reproducibleBuild ? true
+, enableOptimizations ? false
 , pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}"
 }:
 
@@ -36,12 +39,26 @@ assert x11Support -> tcl != null
                   && xlibsWrapper != null
                   && libX11 != null;
 
+assert lib.assertMsg (enableOptimizations -> (!stdenv.cc.isClang))
+  "Optimizations with clang are not supported. configure: error: llvm-profdata is required for a --enable-optimizations build but could not be found.";
+
+assert lib.assertMsg (reproducibleBuild -> stripBytecode)
+  "Deterministic builds require stripping bytecode.";
+
+assert lib.assertMsg (reproducibleBuild -> (!enableOptimizations))
+  "Deterministic builds are not achieved when optimizations are enabled.";
+
+
 with lib;
 
 let
   buildPackages = pkgsBuildHost;
   inherit (passthru) pythonForBuild;
 
+  pythonForBuildInterpreter = if stdenv.hostPlatform == stdenv.buildPlatform then
+    "$out/bin/python"
+  else pythonForBuild.interpreter;
+
   passthru = passthruFun rec {
     inherit self sourceVersion packageOverrides;
     implementation = "cpython";
@@ -103,6 +120,15 @@ let
 
       # Patch is likely to go away in the next release (if there is any)
       ./CVE-2019-20907.patch
+
+      ./CVE-2021-3177.patch
+
+      # The workaround is for unittests on Win64, which we don't support.
+      # It does break aarch64-darwin, which we do support. See:
+      # * https://bugs.python.org/issue35523
+      # * https://github.com/python/cpython/commit/e6b247c8e524
+      ../3.7/no-win64-workaround.patch
+
     ] ++ optionals (x11Support && stdenv.isDarwin) [
       ./use-correct-tcl-tk-on-darwin.patch
     ] ++ optionals stdenv.isLinux [
@@ -263,14 +289,15 @@ in with passthru; stdenv.mkDerivation ({
         # Determinism: Windows installers were not deterministic.
         # We're also not interested in building Windows installers.
         find "$out" -name 'wininst*.exe' | xargs -r rm -f
-      '' + optionalString (stdenv.hostPlatform == stdenv.buildPlatform)
-      ''
-        # Determinism: rebuild all bytecode
-        # We exclude lib2to3 because that's Python 2 code which fails
-        # We rebuild three times, once for each optimization level
-        find $out -name "*.py" | $out/bin/python -m compileall -q -f -x "lib2to3" -i -
-        find $out -name "*.py" | $out/bin/python -O -m compileall -q -f -x "lib2to3" -i -
-        find $out -name "*.py" | $out/bin/python -OO -m compileall -q -f -x "lib2to3" -i -
+      '' + optionalString stripBytecode ''
+        # Determinism: deterministic bytecode
+        # First we delete all old bytecode.
+        find $out -name "*.pyc" -delete
+        '' + optionalString rebuildBytecode ''
+        # Then, we build for the two optimization levels.
+        # We do not build unoptimized bytecode, because its not entirely deterministic yet.
+        find $out -name "*.py" | ${pythonForBuildInterpreter} -O  -m compileall -q -f -x "lib2to3" -i -
+        find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i -
       '' + optionalString stdenv.hostPlatform.isCygwin ''
         cp libpython2.7.dll.a $out/lib
       '';
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/3.7/find_library.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/3.6/find_library.patch
index 97fb66662d03..97fb66662d03 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/3.7/find_library.patch
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/3.6/find_library.patch
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/3.7/no-ldconfig.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/3.7/no-ldconfig.patch
index a1f9d68eb166..4324fc5ea61f 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/3.7/no-ldconfig.patch
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/3.7/no-ldconfig.patch
@@ -1,18 +1,18 @@
-From 597e73f2a4b2f0b508127931b36d5540d6941823 Mon Sep 17 00:00:00 2001
+From ba458f33f335b217d078fdce56e9c6f9f93adb49 Mon Sep 17 00:00:00 2001
 From: Frederik Rietdijk <fridh@fridh.nl>
 Date: Mon, 28 Aug 2017 09:24:06 +0200
 Subject: [PATCH] Don't use ldconfig
 
 ---
- Lib/ctypes/util.py | 70 ++----------------------------------------------------
- 1 file changed, 2 insertions(+), 68 deletions(-)
+ Lib/ctypes/util.py | 78 ++--------------------------------------------
+ 1 file changed, 2 insertions(+), 76 deletions(-)
 
 diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
-index 5e8b31a854..7b45ce6c15 100644
+index 0c2510e..79635a8 100644
 --- a/Lib/ctypes/util.py
 +++ b/Lib/ctypes/util.py
-@@ -94,46 +94,7 @@ elif os.name == "posix":
-     import re, tempfile
+@@ -100,54 +100,7 @@ elif os.name == "posix":
+             return thefile.read(4) == elf_header
  
      def _findLib_gcc(name):
 -        # Run GCC's linker with the -t (aka --trace) option and examine the
@@ -51,15 +51,23 @@ index 5e8b31a854..7b45ce6c15 100644
 -                # Raised if the file was already removed, which is the normal
 -                # behaviour of GCC if linking fails
 -                pass
--        res = re.search(expr, trace)
+-        res = re.findall(expr, trace)
 -        if not res:
 -            return None
--        return os.fsdecode(res.group(0))
+-
+-        for file in res:
+-            # Check if the given file is an elf file: gcc can report
+-            # some files that are linker scripts and not actual
+-            # shared objects. See bpo-41976 for more details
+-            if not _is_elf(file):
+-                continue
+-            return os.fsdecode(file)
+-
 +        return None
  
- 
      if sys.platform == "sunos5":
-@@ -255,34 +216,7 @@ elif os.name == "posix":
+         # use /usr/ccs/bin/dump on solaris
+@@ -268,34 +221,7 @@ elif os.name == "posix":
      else:
  
          def _findSoname_ldconfig(name):
@@ -96,5 +104,5 @@ index 5e8b31a854..7b45ce6c15 100644
          def _findLib_ld(name):
              # See issue #9998 for why this is needed
 -- 
-2.15.0
+2.30.0
 
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/3.7/no-win64-workaround.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/3.7/no-win64-workaround.patch
new file mode 100644
index 000000000000..685b1e83944e
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/3.7/no-win64-workaround.patch
@@ -0,0 +1,37 @@
+From e6b247c8e524dbe5fc03b3492f628d0d5348bc49 Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner@redhat.com>
+Date: Tue, 18 Dec 2018 14:47:21 +0100
+Subject: [PATCH] bpo-35523: Remove ctypes callback workaround (GH-11211)
+
+Remove ctypes callback workaround: no longer create a callback at startup.
+Avoid SELinux alert on "import ctypes" and "import uuid".
+---
+ Lib/ctypes/__init__.py                                       | 5 -----
+ .../next/Library/2018-12-18-13-52-13.bpo-35523.SkoMno.rst    | 2 ++
+ 2 files changed, 2 insertions(+), 5 deletions(-)
+ create mode 100644 Misc/NEWS.d/next/Library/2018-12-18-13-52-13.bpo-35523.SkoMno.rst
+
+diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py
+index 6146773988648..5f78beda5866e 100644
+--- a/Lib/ctypes/__init__.py
++++ b/Lib/ctypes/__init__.py
+@@ -266,11 +266,6 @@ def _reset_cache():
+     # _SimpleCData.c_char_p_from_param
+     POINTER(c_char).from_param = c_char_p.from_param
+     _pointer_type_cache[None] = c_void_p
+-    # XXX for whatever reasons, creating the first instance of a callback
+-    # function is needed for the unittests on Win64 to succeed.  This MAY
+-    # be a compiler bug, since the problem occurs only when _ctypes is
+-    # compiled with the MS SDK compiler.  Or an uninitialized variable?
+-    CFUNCTYPE(c_int)(lambda: None)
+ 
+ def create_unicode_buffer(init, size=None):
+     """create_unicode_buffer(aString) -> character array
+diff --git a/Misc/NEWS.d/next/Library/2018-12-18-13-52-13.bpo-35523.SkoMno.rst b/Misc/NEWS.d/next/Library/2018-12-18-13-52-13.bpo-35523.SkoMno.rst
+new file mode 100644
+index 0000000000000..94a9fd257383e
+--- /dev/null
++++ b/Misc/NEWS.d/next/Library/2018-12-18-13-52-13.bpo-35523.SkoMno.rst
+@@ -0,0 +1,2 @@
++Remove :mod:`ctypes` callback workaround: no longer create a callback at
++startup. Avoid SELinux alert on ``import ctypes`` and ``import uuid``.
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
index 7bc6084f61dd..38ee086a88fe 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
@@ -3,7 +3,8 @@
 , expat
 , libffi
 , gdbm
-, lzma
+, xz
+, mime-types ? null, mimetypesSupport ? true
 , ncurses
 , openssl
 , readline
@@ -11,6 +12,7 @@
 , tcl ? null, tk ? null, tix ? null, libX11 ? null, xorgproto ? null, x11Support ? false
 , bluez ? null, bluezSupport ? false
 , zlib
+, tzdata ? null
 , self
 , configd
 , autoreconfHook
@@ -33,12 +35,11 @@
 , stripTests ? false
 , stripTkinter ? false
 , rebuildBytecode ? true
-, stripBytecode ? false
+, stripBytecode ? reproducibleBuild
 , includeSiteCustomize ? true
 , static ? stdenv.hostPlatform.isStatic
-# Not using optimizations on Darwin
-# configure: error: llvm-profdata is required for a --enable-optimizations build but could not be found.
-, enableOptimizations ? (!stdenv.isDarwin)
+, enableOptimizations ? false
+, reproducibleBuild ? true
 , pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}"
 }:
 
@@ -54,12 +55,25 @@ assert x11Support -> tcl != null
 
 assert bluezSupport -> bluez != null;
 
+assert mimetypesSupport -> mime-types != null;
+
+assert lib.assertMsg (enableOptimizations -> (!stdenv.cc.isClang))
+  "Optimizations with clang are not supported. configure: error: llvm-profdata is required for a --enable-optimizations build but could not be found.";
+
+assert lib.assertMsg (reproducibleBuild -> stripBytecode)
+  "Deterministic builds require stripping bytecode.";
+
+assert lib.assertMsg (reproducibleBuild -> (!enableOptimizations))
+  "Deterministic builds are not achieved when optimizations are enabled.";
+
 with lib;
 
 let
   buildPackages = pkgsBuildHost;
   inherit (passthru) pythonForBuild;
 
+  tzdataSupport = tzdata != null && passthru.pythonAtLeast "3.9";
+
   passthru = passthruFun rec {
     inherit self sourceVersion packageOverrides;
     implementation = "cpython";
@@ -89,10 +103,11 @@ let
   ];
 
   buildInputs = filter (p: p != null) ([
-    zlib bzip2 expat lzma libffi gdbm sqlite readline ncurses openssl ]
+    zlib bzip2 expat xz libffi gdbm sqlite readline ncurses openssl ]
     ++ optionals x11Support [ tcl tk libX11 xorgproto ]
     ++ optionals (bluezSupport && stdenv.isLinux) [ bluez ]
-    ++ optionals stdenv.isDarwin [ configd ]);
+    ++ optionals stdenv.isDarwin [ configd ])
+    ++ optionals tzdataSupport [ tzdata ];  # `zoneinfo` module
 
   hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
 
@@ -175,6 +190,9 @@ in with passthru; stdenv.mkDerivation {
     # (since it will do a futile invocation of gcc (!) to find
     # libuuid, slowing down program startup a lot).
     (./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch")
+  ] ++ optionals mimetypesSupport [
+    # Make the mimetypes module refer to the right file
+    ./mimetypes.patch
   ] ++ optionals (isPy35 || isPy36) [
     # Determinism: Write null timestamps when compiling python files.
     ./3.5/force_bytecode_determinism.patch
@@ -185,6 +203,11 @@ in with passthru; stdenv.mkDerivation {
     # Backport a fix for discovering `rpmbuild` command when doing `python setup.py bdist_rpm` to 3.5, 3.6, 3.7.
     # See: https://bugs.python.org/issue11122
     ./3.7/fix-hardcoded-path-checking-for-rpmbuild.patch
+    # The workaround is for unittests on Win64, which we don't support.
+    # It does break aarch64-darwin, which we do support. See:
+    # * https://bugs.python.org/issue35523
+    # * https://github.com/python/cpython/commit/e6b247c8e524
+    ./3.7/no-win64-workaround.patch
   ] ++ optionals (isPy37 || isPy38 || isPy39) [
     # Fix darwin build https://bugs.python.org/issue34027
     ./3.7/darwin-libutil.patch
@@ -222,14 +245,17 @@ in with passthru; stdenv.mkDerivation {
       else
         ./3.7/fix-finding-headers-when-cross-compiling.patch
     )
-  ] ++ optionals (isPy36 || isPy37) [
+  ] ++ optionals (isPy36) [
     # Backport a fix for ctypes.util.find_library.
-    ./3.7/find_library.patch
+    ./3.6/find_library.patch
   ];
 
   postPatch = ''
     substituteInPlace Lib/subprocess.py \
       --replace "'/bin/sh'" "'${bash}/bin/sh'"
+  '' + optionalString mimetypesSupport ''
+    substituteInPlace Lib/mimetypes.py \
+      --replace "@mime-types@" "${mime-types}"
   '' + optionalString (x11Support && (tix != null)) ''
     substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
   '';
@@ -280,6 +306,8 @@ in with passthru; stdenv.mkDerivation {
     # Never even try to use lchmod on linux,
     # don't rely on detecting glibc-isms.
     "ac_cv_func_lchmod=no"
+  ] ++ optionals tzdataSupport [
+    "--with-tzpath=${tzdata}/share/zoneinfo"
   ] ++ optional static "LDFLAGS=-static";
 
   preConfigure = ''
@@ -299,7 +327,14 @@ in with passthru; stdenv.mkDerivation {
 
   setupHook = python-setup-hook sitePackages;
 
-  postInstall = ''
+  postInstall = let
+    # References *not* to nuke from (sys)config files
+    keep-references = concatMapStringsSep " " (val: "-e ${val}") ([
+      (placeholder "out")
+    ] ++ optionals tzdataSupport [
+      tzdata
+    ]);
+  in ''
     # needed for some packages, especially packages that backport functionality
     # to 2.x from 3.x
     for item in $out/lib/${libPrefix}/test/*; do
@@ -335,8 +370,8 @@ in with passthru; stdenv.mkDerivation {
     done
 
     # Further get rid of references. https://github.com/NixOS/nixpkgs/issues/51668
-    find $out/lib/python*/config-* -type f -print -exec nuke-refs -e $out '{}' +
-    find $out/lib -name '_sysconfigdata*.py*' -print -exec nuke-refs -e $out '{}' +
+    find $out/lib/python*/config-* -type f -print -exec nuke-refs ${keep-references} '{}' +
+    find $out/lib -name '_sysconfigdata*.py*' -print -exec nuke-refs ${keep-references} '{}' +
 
     # Make the sysconfigdata module accessible on PYTHONPATH
     # This allows build Python to import host Python's sysconfigdata
@@ -355,18 +390,19 @@ in with passthru; stdenv.mkDerivation {
     '' + optionalString includeSiteCustomize ''
     # Include a sitecustomize.py file
     cp ${../sitecustomize.py} $out/${sitePackages}/sitecustomize.py
-    '' + optionalString rebuildBytecode ''
 
-    # Determinism: rebuild all bytecode
-    # We exclude lib2to3 because that's Python 2 code which fails
-    # We rebuild three times, once for each optimization level
+    '' + optionalString stripBytecode ''
+    # Determinism: deterministic bytecode
+    # First we delete all old bytecode.
+    find $out -type d -name __pycache__ -print0 | xargs -0 -I {} rm -rf "{}"
+    '' + optionalString rebuildBytecode ''
+    # Then, we build for the two optimization levels.
+    # We do not build unoptimized bytecode, because its not entirely deterministic yet.
     # Python 3.7 implements PEP 552, introducing support for deterministic bytecode.
-    # This is automatically used when `SOURCE_DATE_EPOCH` is set.
-    find $out -name "*.py" | ${pythonForBuildInterpreter}     -m compileall -q -f -x "lib2to3" -i -
+    # compileall uses this checked-hash method by default when `SOURCE_DATE_EPOCH` is set.
+    # We exclude lib2to3 because that's Python 2 code which fails
     find $out -name "*.py" | ${pythonForBuildInterpreter} -O  -m compileall -q -f -x "lib2to3" -i -
     find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i -
-    '' + optionalString stripBytecode ''
-    find $out -type d -name __pycache__ -print0 | xargs -0 -I {} rm -rf "{}"
   '';
 
   preFixup = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/mimetypes.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/mimetypes.patch
new file mode 100644
index 000000000000..4ea700a1f2a7
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/mimetypes.patch
@@ -0,0 +1,23 @@
+diff --git i/Lib/mimetypes.py w/Lib/mimetypes.py
+index f3343c8..ab5b886 100644
+--- i/Lib/mimetypes.py
++++ w/Lib/mimetypes.py
+@@ -40,16 +40,8 @@
+ ]
+ 
+ knownfiles = [
+-    "/etc/mime.types",
+-    "/etc/httpd/mime.types",                    # Mac OS X
+-    "/etc/httpd/conf/mime.types",               # Apache
+-    "/etc/apache/mime.types",                   # Apache 1
+-    "/etc/apache2/mime.types",                  # Apache 2
+-    "/usr/local/etc/httpd/conf/mime.types",
+-    "/usr/local/lib/netscape/mime.types",
+-    "/usr/local/etc/httpd/conf/mime.types",     # Apache 1.2
+-    "/usr/local/etc/mime.types",                # Apache 1.3
+-    ]
++    "@mime-types@/etc/mime.types",
++]
+ 
+ inited = False
+ _db = None
diff --git a/nixpkgs/pkgs/development/interpreters/python/default.nix b/nixpkgs/pkgs/development/interpreters/python/default.nix
index 9549ad6d3d5e..cf2ef2110e86 100644
--- a/nixpkgs/pkgs/development/interpreters/python/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/default.nix
@@ -108,6 +108,19 @@ with pkgs;
           python = self;
         };
   };
+
+  sources = {
+    "python38" = {
+      sourceVersion = {
+        major = "3";
+        minor = "8";
+        patch = "8";
+        suffix = "";
+      };
+      sha256 = "fGZCSf935EPW6g5M8OWH6ukYyjxI0IHRkV/iofG8xcw=";
+    };
+  };
+
 in {
 
   python27 = callPackage ./cpython/2.7 {
@@ -128,10 +141,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "6";
-      patch = "12";
+      patch = "13";
       suffix = "";
     };
-    sha256 = "cJU6m11okdkuZdGEw1EhJqFYFL7hXh7/LdzOBDNOmpk=";
+    sha256 = "pHpDpTq7QihqLBGWU0P/VnEbnmTo0RvyxnAaT7jOGg8=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -141,36 +154,29 @@ in {
     sourceVersion = {
       major = "3";
       minor = "7";
-      patch = "9";
+      patch = "10";
       suffix = "";
     };
-    sha256 = "008v6g1jkrjrdmiqlgjlq6msbbj848bvkws6ppwva1ahn03k14li";
+    sha256 = "+NgudXLIbsnVXIYnquUEAST9IgOvQAw4PIIbmAMG7ms=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
 
-  python38 = callPackage ./cpython {
+  python38 = callPackage ./cpython ({
     self = python38;
-    sourceVersion = {
-      major = "3";
-      minor = "8";
-      patch = "7";
-      suffix = "";
-    };
-    sha256 = "sha256-3cwd8Wu1uHqkLsXSCluQLy0IjKommyjgFZD5enmOxQo=";
     inherit (darwin) configd;
     inherit passthruFun;
-  };
+  } // sources.python38);
 
   python39 = callPackage ./cpython {
     self = python39;
     sourceVersion = {
       major = "3";
       minor = "9";
-      patch = "1";
+      patch = "2";
       suffix = "";
     };
-    sha256 = "1zq3k4ymify5ig739zyvx9s2ainvchxb1zpy139z74krr653y74r";
+    sha256 = "PCA0xU+BFEj1FmaNzgnSQAigcWw6eU3YY5tTiMveJH0=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -181,16 +187,18 @@ in {
       major = "3";
       minor = "10";
       patch = "0";
-      suffix = "a4";
+      suffix = "a5";
     };
-    sha256 = "sha256-McHBl7IZuOH96je/izkxur0Edirn+igVkQU/pbek73M=";
+    sha256 = "BBjlfnA24hnx5rYwOyHnEfZM/Q/dsIlNjxnzev/8XU0=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
 
   # Minimal versions of Python (built without optional dependencies)
-  python3Minimal = (python38.override {
+  python3Minimal = (callPackage ./cpython ({
     self = python3Minimal;
+    inherit passthruFun;
+    pythonAttr = "python3Minimal";
     # strip down that python version as much as possible
     openssl = null;
     readline = null;
@@ -198,6 +206,7 @@ in {
     gdbm = null;
     sqlite = null;
     configd = null;
+    tzdata = null;
     stripConfig = true;
     stripIdlelib = true;
     stripTests = true;
@@ -206,7 +215,8 @@ in {
     stripBytecode = true;
     includeSiteCustomize = false;
     enableOptimizations = false;
-  }).overrideAttrs(old: {
+    mimetypesSupport = false;
+  } // sources.python38)).overrideAttrs(old: {
     pname = "python3-minimal";
     meta = old.meta // {
       maintainers = [];
@@ -218,9 +228,9 @@ in {
     sourceVersion = {
       major = "7";
       minor = "3";
-      patch = "2";
+      patch = "3";
     };
-    sha256 = "1l98b7s9sf16a5w8y0fdn7a489l3gpykjasws1j67bahhc6li2c1";
+    sha256 = "0di3dr5ry4r0hwxh4fbqjhyl5im948wdby0bhijzsxx83c2qhd7n";
     pythonVersion = "2.7";
     db = db.override { dbmSupport = !stdenv.isDarwin; };
     python = python27;
@@ -234,9 +244,9 @@ in {
     sourceVersion = {
       major = "7";
       minor = "3";
-      patch = "2";
+      patch = "3";
     };
-    sha256 = "03f1fdw6yk2mypa9pbmgk26r8y1hhmw801l6g36zry9zsvz7aqgx";
+    sha256 = "1bq5i2mqgjjfc4rhxgxm6ihwa76vn2qapd7l59ri7xp01p522gd2";
     pythonVersion = "3.6";
     db = db.override { dbmSupport = !stdenv.isDarwin; };
     python = python27;
@@ -251,9 +261,9 @@ in {
     sourceVersion = {
       major = "7";
       minor = "3";
-      patch = "2";
+      patch = "3";
     };
-    sha256 = "0fx1kp13cgx3rijd0zf8rdjbai6mfhc9is4xfc7kl5cpd88hhkwd"; # linux64
+    sha256 = "1cfpdyvbvzwc0ynjr7248jhwgcpl7073wlp7w3g2v4fnrh1bc4pl"; # linux64
     pythonVersion = "2.7";
     inherit passthruFun;
   };
@@ -264,9 +274,9 @@ in {
     sourceVersion = {
       major = "7";
       minor = "3";
-      patch = "2";
+      patch = "3";
     };
-    sha256 = "10xdx7q04fzy4v4rbj9bbdw8g9y68qgaih7z2n0s5aknj0bizafp"; # linux64
+    sha256 = "02lys9bjky9bqg6ggv8djirbd3zzcsq7755v4yvwm0k4a7fmzf2g"; # linux64
     pythonVersion = "3.6";
     inherit passthruFun;
   };
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
index c2079fa84f90..eb45205ff731 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
@@ -2,7 +2,7 @@
 echo "Sourcing pytest-check-hook"
 
 declare -ar disabledTests
-declare -ar disabledTestFiles
+declare -ar disabledTestPaths
 
 function _concatSep {
     local result
@@ -37,12 +37,12 @@ function pytestCheckPhase() {
         disabledTestsString=$(_pytestComputeDisabledTestsString "${disabledTests[@]}")
       args+=" -k \""$disabledTestsString"\""
     fi
-    for file in "${disabledTestFiles[@]}"; do
-      if [ ! -f "$file" ]; then
-        echo "Disabled test file \"$file\" does not exist. Aborting"
+    for path in ${disabledTestPaths[@]}; do
+      if [ ! -e "$path" ]; then
+        echo "Disabled tests path \"$path\" does not exist. Aborting"
         exit 1
       fi
-      args+=" --ignore=$file"
+      args+=" --ignore=\"$path\""
     done
     args+=" ${pytestFlagsArray[@]}"
     eval "@pythonCheckInterpreter@ $args"
diff --git a/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix b/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
index b4e9343b5d4a..a5ba4983e43c 100644
--- a/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, substituteAll, fetchurl
 , zlib ? null, zlibSupport ? true, bzip2, pkg-config, libffi, libunwind, Security
 , sqlite, openssl, ncurses, python, expat, tcl, tk, tix, xlibsWrapper, libX11
-, self, gdbm, db, lzma
+, self, gdbm, db, xz
 , python-setup-hook
 # For the Python package set
 , packageOverrides ? (self: super: {})
@@ -53,7 +53,7 @@ in with passthru; stdenv.mkDerivation rec {
   buildInputs = [
     bzip2 openssl pythonForPypy libffi ncurses expat sqlite tk tcl xlibsWrapper libX11 gdbm db
   ]  ++ optionals isPy3k [
-    lzma
+    xz
   ] ++ optionals (stdenv ? cc && stdenv.cc.libc != null) [
     stdenv.cc.libc
   ] ++ optionals zlibSupport [
diff --git a/nixpkgs/pkgs/development/interpreters/python/pypy/prebuilt.nix b/nixpkgs/pkgs/development/interpreters/python/pypy/prebuilt.nix
index f301fd15f09c..460af1cc67b4 100644
--- a/nixpkgs/pkgs/development/interpreters/python/pypy/prebuilt.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/pypy/prebuilt.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , fetchurl
 , python-setup-hook
 , self
@@ -31,9 +32,15 @@ let
     implementation = "pypy";
     libPrefix = "pypy${pythonVersion}";
     executable = "pypy${if isPy3k then "3" else ""}";
-    pythonForBuild = self; # Not possible to cross-compile with.
     sitePackages = "site-packages";
     hasDistutilsCxxPatch = false;
+
+    # Not possible to cross-compile with.
+    pythonOnBuildForBuild = throw "${pname} does not support cross compilation";
+    pythonOnBuildForHost = self;
+    pythonOnBuildForTarget = throw "${pname} does not support cross compilation";
+    pythonOnHostForHost = throw "${pname} does not support cross compilation";
+    pythonOnTargetForTarget = throw "${pname} does not support cross compilation";
   };
   pname = "${passthru.executable}_prebuilt";
   version = with sourceVersion; "${major}.${minor}.${patch}";
diff --git a/nixpkgs/pkgs/development/interpreters/python/tests.nix b/nixpkgs/pkgs/development/interpreters/python/tests.nix
index ff27ca8ec208..cfba04da9380 100644
--- a/nixpkgs/pkgs/development/interpreters/python/tests.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/tests.nix
@@ -101,6 +101,24 @@ let
     };
   };
 
+  # Tests to ensure overriding works as expected.
+  overrideTests = let
+    extension = self: super: {
+      foobar = super.numpy;
+    };
+  in {
+    test-packageOverrides = let
+      myPython = let
+        self = python.override {
+          packageOverrides = extension;
+          inherit self;
+        };
+      in self;
+    in assert myPython.pkgs.foobar == myPython.pkgs.numpy; myPython.withPackages(ps: with ps; [ foobar ]);
+    # overrideScope is broken currently
+    # test-overrideScope = let
+    #  myPackages = python.pkgs.overrideScope extension;
+    # in assert myPackages.foobar == myPackages.numpy; myPackages.python.withPackages(ps: with ps; [ foobar ]);
+  };
 
-
-in lib.optionalAttrs (stdenv.hostPlatform == stdenv.buildPlatform ) (environmentTests // integrationTests)
+in lib.optionalAttrs (stdenv.hostPlatform == stdenv.buildPlatform ) (environmentTests // integrationTests // overrideTests)
diff --git a/nixpkgs/pkgs/development/interpreters/python/wrapper.nix b/nixpkgs/pkgs/development/interpreters/python/wrapper.nix
index 61ad4a8a6ad9..514930db359b 100644
--- a/nixpkgs/pkgs/development/interpreters/python/wrapper.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/wrapper.nix
@@ -1,10 +1,15 @@
-{ lib, stdenv, python, buildEnv, makeWrapper
+{ lib, stdenv, buildEnv, makeWrapper
+
+# manually pased
+, python
+, requiredPythonModules
+
+# extra opts
 , extraLibs ? []
 , extraOutputsToInstall ? []
 , postBuild ? ""
 , ignoreCollisions ? false
 , permitUserSite ? false
-, requiredPythonModules
 # Wrap executables with the given argument.
 , makeWrapperArgs ? []
 , }:
@@ -22,9 +27,9 @@ let
     inherit ignoreCollisions;
     extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
 
-    postBuild = ''
-      . "${makeWrapper}/nix-support/setup-hook"
+    nativeBuildInputs = [ makeWrapper ];
 
+    postBuild = ''
       if [ -L "$out/bin" ]; then
           unlink "$out/bin"
       fi
diff --git a/nixpkgs/pkgs/development/interpreters/qnial/default.nix b/nixpkgs/pkgs/development/interpreters/qnial/default.nix
index ba46989c94a7..1173315192e1 100644
--- a/nixpkgs/pkgs/development/interpreters/qnial/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/qnial/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     owner = "vrthra";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   preConfigure = ''
     cd build;
@@ -25,7 +25,6 @@ stdenv.mkDerivation {
   '';
 
   buildInputs = [
-     unzip
      pkg-config
      ncurses
   ];
diff --git a/nixpkgs/pkgs/development/interpreters/quickjs/default.nix b/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
index 23fe1dc78008..ac70a50eaa72 100644
--- a/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "quickjs";
-  version = "2019-12-21";
+  version = "2020-11-08";
 
   src = fetchurl {
     url = "https://bellard.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "13hlx6qwrrxmlvvqcr3irxba6zmf05cf54l32vj50wc66s1qd41p";
+    sha256 = "0yqqcjxi3cqagw184mqrxpvqg486x7c233r3cp9mxachngd6779f";
   };
 
   makeFlags = [ "prefix=${placeholder "out"}" ];
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
     # Programs exit with code 1 when testing help, so grep for a string
     set +o pipefail
     qjs     --help 2>&1 | grep "QuickJS version"
-    qjsbn   --help 2>&1 | grep "QuickJS version"
     qjscalc --help 2>&1 | grep "QuickJS version"
     set -o pipefail
 
@@ -27,9 +26,7 @@ stdenv.mkDerivation rec {
     echo "console.log('Output from compiled program');" > "$temp"
     set -o verbose
     out=$(mktemp) && qjsc         "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
-    out=$(mktemp) && qjsbnc       "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
     out=$(mktemp) && qjsc   -flto "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
-    out=$(mktemp) && qjsbnc -flto "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/interpreters/racket/default.nix b/nixpkgs/pkgs/development/interpreters/racket/default.nix
index 8d33962f914c..48be64aa0b8d 100644
--- a/nixpkgs/pkgs/development/interpreters/racket/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/racket/default.nix
@@ -8,6 +8,7 @@
 , libGL
 , libGLU
 , libjpeg
+, ncurses
 , libpng, libtool, mpfr, openssl, pango, poppler
 , readline, sqlite
 , disableDocs ? false
@@ -46,7 +47,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "racket";
-  version = "7.9"; # always change at once with ./minimal.nix
+  version = "8.0"; # always change at once with ./minimal.nix
 
   src = (lib.makeOverridable ({ name, sha256 }:
     fetchurl {
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
     }
   )) {
     name = "${pname}-${version}";
-    sha256 = "0gmp2ahmfd97nn9bwpfx9lznjmjkd042slnrrbdmyh59cqh98y2m";
+    sha256 = "0lqqpa88v0br93qw7450a4blyi3pwn7sq2k04h0ikbsqrdnfj7lj";
   };
 
   FONTCONFIG_FILE = fontsConf;
@@ -68,12 +69,17 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cacert wrapGAppsHook ];
 
   buildInputs = [ fontconfig libffi libtool sqlite gsettings-desktop-schemas gtk3 ]
-    ++ lib.optionals stdenv.isDarwin [ libiconv CoreFoundation ];
+    ++ lib.optionals stdenv.isDarwin [ libiconv CoreFoundation ncurses ];
 
   preConfigure = ''
     unset AR
-    for f in src/lt/configure src/cs/c/configure src/bc/src/string.c; do
-      substituteInPlace "$f" --replace /usr/bin/uname ${coreutils}/bin/uname
+    for f in src/lt/configure src/cs/c/configure src/bc/src/string.c src/ChezScheme/workarea; do
+      substituteInPlace "$f" \
+        --replace /usr/bin/uname ${coreutils}/bin/uname \
+        --replace /bin/cp ${coreutils}/bin/cp \
+        --replace /bin/ln ${coreutils}/bin/ln \
+        --replace /bin/rm ${coreutils}/bin/rm \
+        --replace /bin/true ${coreutils}/bin/true
     done
     mkdir src/build
     cd src/build
diff --git a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
index 9fd220e5b98f..c954b4f05ea4 100644
--- a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
+++ b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
@@ -5,7 +5,7 @@ racket.overrideAttrs (oldAttrs: rec {
   name = "racket-minimal-${oldAttrs.version}";
   src = oldAttrs.src.override {
     inherit name;
-    sha256 = "0yc5zkpq1bavj64h67pllw6mfjhmdp65fgdpyqcaan3syy6b5cia";
+    sha256 = "0qvfi6rg9cwzh716q5j7m30rqq9xysi6zsalqlpdqrzhnx8y54k0";
   };
 
   meta = oldAttrs.meta // {
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/default.nix b/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
index 99a812905d42..358b8663196b 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rakudo";
-  version = "2020.12";
+  version = "2021.02.1";
 
   src = fetchurl {
     url    = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
-    sha256 = "1g3ciwhlac85d6l2kqslw8pm4bjjd1z79m1c5ll0fxmr6awgpk67";
+    sha256 = "1xwqx4357bw7h5pdmwxm5wxh8wjvrcdk4rvr3wyrhg1wzy5qvsn8";
   };
 
   buildInputs = [ icu zlib gmp perl ];
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
index f833c153b964..e5baacf5c295 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "moarvm";
-  version = "2020.12";
+  version = "2021.02";
 
   src = fetchurl {
     url = "https://www.moarvm.org/releases/MoarVM-${version}.tar.gz";
-    sha256 = "18iys1bdb92asggrsz7sg1hh76j7kq63c3fgg33fnla18qf4z488";
+    sha256 = "08ri9mvbk97qfxcy6lj4cb7j3a789ck052m2vqfhis3vkrkw780r";
    };
 
   buildInputs = [ perl ] ++ lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix b/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
index b4b41fa88046..cd60bb3b7900 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nqp";
-  version = "2020.12";
+  version = "2021.02";
 
   src = fetchurl {
     url    = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
-    sha256 = "13h64d41fwggc3lg4bpllg4jrp64clm7nmnw4g2jyjl47cy5ni7x";
+    sha256 = "1vyl6x811f8mbdnp34yj6kfmfpxp2yfrr8cqf1w47rzmr741sjyj";
   };
 
   buildInputs = [ perl ];
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix b/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
index 5eccebf02452..61008f242b91 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
@@ -2,16 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "zef";
-  version = "0.11.4";
+  version = "0.11.5";
 
   src = fetchFromGitHub {
     owner = "ugexe";
     repo = "zef";
     rev = "v${version}";
-    sha256 = "sha256-wccVMEUAfTWs/8hnrT7nrxfYPHyNl+lXt+KUDkyplto=";
+    sha256 = "sha256-LLUAwqky/q9KvFltrcff5U2BSLvOk/BbDSj07QlePSg=";
   };
 
-  buildInputs = [ rakudo makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ rakudo ];
 
   installPhase = ''
     mkdir -p "$out"
diff --git a/nixpkgs/pkgs/development/interpreters/rascal/default.nix b/nixpkgs/pkgs/development/interpreters/rascal/default.nix
index cd2b74db0520..8b49a743b4a9 100644
--- a/nixpkgs/pkgs/development/interpreters/rascal/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/rascal/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1z4mwdbdc3r24haljnxng8znlfg2ihm9bf9zq8apd9a32ipcw4i6";
   };
 
-  buildInputs = [ makeWrapper jdk ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jdk ];
 
   dontUnpack = true;
 
diff --git a/nixpkgs/pkgs/development/interpreters/rebol/default.nix b/nixpkgs/pkgs/development/interpreters/rebol/default.nix
deleted file mode 100644
index 39a4108e041d..000000000000
--- a/nixpkgs/pkgs/development/interpreters/rebol/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv, fetchFromGitHub, fetchurl, glibc, libX11, libXt, perl }:
-
-stdenv.mkDerivation rec {
-  pname = "rebol-nightly";
-  version = "3-alpha";
-  src = fetchFromGitHub {
-    rev = "bd45d0de512ff5953e098301c3d610f6024515d6";
-    owner = "earl";
-    repo = "r3";
-    sha256 = "0pirn6936rxi894xxdvj7xdwlwmmxq2wz36jyjnj26667v2n543c";
-  };
-
-  r3 = fetchurl {
-    url = "http://rebolsource.net/downloads/experimental/r3-linux-x64-gbf237fc";
-    sha256 = "0cm86kn4lcbvyy6pqg67x53y0wz353y0vg7pfqv65agxj1ynxnrx";
-    name = "r3";
-  };
-
-  buildInputs = [ glibc libX11 libXt perl ];
-
-  configurePhase = ''
-    cp ${r3} make/r3-make
-    chmod 777 make/r3-make
-    patchelf  --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./make/r3-make
-    cd make
-    perl -pi -e 's#-m32##g' makefile
-    perl -pi -e 's#sudo .*#echo#g' makefile
-    make prep
-  '';
-  buildPhase = ''
-    make
-    mkdir -p $out/bin
-    cp r3 $out/bin
-  '';
-
-  meta = with lib; {
-    description = "Relative expression based object language, a language where code is data";
-    maintainers = with maintainers; [ vrthra ];
-    platforms = [ "x86_64-linux" ];
-    license = licenses.asl20;
-    homepage = "http://www.rebol.com/";
-  };
-}
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/default.nix
index fee2c0cdb8bc..066a583e1583 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPackages, lib, defaultGemConfig, buildRubyGem
 , fetchurl, fetchpatch, fetchFromSavannah, fetchFromGitHub
-, zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison
+, zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, jemalloc, autoreconfHook, bison
 , autoconf, libiconv, libobjc, libunwind, Foundation
 , buildEnv, bundler, bundix, makeWrapper, removeReferencesTo
 } @ args:
@@ -29,6 +29,7 @@ let
     isRuby21 = ver.majMin == "2.1";
     atLeast25 = lib.versionAtLeast ver.majMin "2.5";
     atLeast27 = lib.versionAtLeast ver.majMin "2.7";
+    atLeast30 = lib.versionAtLeast ver.majMin "3.0";
     baseruby = self.override {
       useRailsExpress = false;
       docSupport = false;
@@ -51,12 +52,13 @@ let
       , groff, docSupport ? true
       , libyaml, yamlSupport ? true
       , libffi, fiddleSupport ? true
+      , jemalloc, jemallocSupport ? false
       # By default, ruby has 3 observed references to stdenv.cc:
       #
       # - If you run:
       #     ruby -e "puts RbConfig::CONFIG['configure_args']"
       # - In:
-      #     $out/${passthru.libPath}/${stdenv.targetPlatform.system}/rbconfig.rb
+      #     $out/${passthru.libPath}/${stdenv.hostPlatform.system}/rbconfig.rb
       #   Or (usually):
       #     $(nix-build -A ruby)/lib/ruby/2.6.0/x86_64-linux/rbconfig.rb
       # - In $out/lib/libruby.so and/or $out/lib/libruby.dylib
@@ -101,6 +103,7 @@ let
           ++ (op opensslSupport openssl)
           ++ (op gdbmSupport gdbm)
           ++ (op yamlSupport libyaml)
+          ++ (op jemallocSupport jemalloc)
           # Looks like ruby fails to build on darwin without readline even if curses
           # support is not enabled, so add readline to the build inputs if curses
           # support is disabled (if it's enabled, we already have it) and we're
@@ -116,7 +119,9 @@ let
           (import ./patchsets.nix {
             inherit patchSet useRailsExpress ops fetchpatch;
             patchLevel = ver.patchLevel;
-          }).${ver.majMinTiny};
+          }).${ver.majMinTiny}
+          ++ op atLeast27 ./do-not-regenerate-revision.h.patch
+          ++ op (atLeast30 && useRailsExpress) ./do-not-update-gems-baseruby.patch;
 
         postUnpack = opString rubygemsSupport ''
           rm -rf $sourceRoot/{lib,test}/rubygems*
@@ -135,21 +140,17 @@ let
           sed -i configure.ac -e '/config.guess/d'
           cp --remove-destination ${config}/config.guess tool/
           cp --remove-destination ${config}/config.sub tool/
+        '' + opString (!atLeast30) ''
           # Make the build reproducible for ruby <= 2.7
           # See https://github.com/ruby/io-console/commit/679a941d05d869f5e575730f6581c027203b7b26#diff-d8422f096931c58d4463e2489f62a228b0f24f0492950ba88c8c89a0d741cfe6
           sed -i ext/io/console/io-console.gemspec -e '/s\.date/d'
         '';
 
-        # Force the revision.h generation. Somehow `revision.tmp` is an empty
-        # file and because we don't add `git` to buildInputs, hence the check is
-        # always true.
-        # https://github.com/ruby/ruby/commit/97a5af62a318fcd93a4e5e4428d576c0280ddbae
-        buildFlags = lib.optionals atLeast27 [ "REVISION_LATEST=0" ];
-
         configureFlags = ["--enable-shared" "--enable-pthread" "--with-soname=ruby-${version}"]
           ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
           ++ op (!jitSupport) "--disable-jit-support"
           ++ op (!docSupport) "--disable-install-doc"
+          ++ op (jemallocSupport) "--with-jemalloc"
           ++ ops stdenv.isDarwin [
             # on darwin, we have /usr/include/tk.h -- so the configure script detects
             # that tk is installed
@@ -162,6 +163,10 @@ let
 
         preConfigure = opString docSupport ''
           configureFlagsArray+=("--with-ridir=$devdoc/share/ri")
+
+          # rdoc creates XDG_DATA_DIR (defaulting to $HOME/.local/share) even if
+          # it's not going to be used.
+          export HOME=$TMPDIR
         '';
 
         # fails with "16993 tests, 2229489 assertions, 105 failures, 14 errors, 89 skips"
@@ -188,7 +193,7 @@ let
                 $out/lib/libruby*
               ${removeReferencesTo}/bin/remove-references-to \
                 -t ${stdenv.cc} \
-                $out/${passthru.libPath}/${stdenv.targetPlatform.system}/rbconfig.rb
+                $out/${passthru.libPath}/${stdenv.hostPlatform.system}/rbconfig.rb
             ''
           }
           # Bundler tries to create this directory
@@ -200,7 +205,7 @@ let
           addRubyLibPath() {
             addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby
             addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/${ver.libDir}
-            addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/${ver.libDir}/${stdenv.targetPlatform.system}
+            addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/${ver.libDir}/${stdenv.hostPlatform.system}
           }
 
           addEnvHooks "$hostOffset" addGemPath
@@ -326,4 +331,12 @@ in {
       git = "0kbgznf1yprfp9645k31ra5f4757b7fichzi0hdg6nxkj90853s0";
     };
   };
+
+  ruby_3_0 = generic {
+    version = rubyVersion "3" "0" "1" "";
+    sha256 = {
+      src = "09vpnxxcxc46qv40xbxr9xkdpbgb0imdy25l2vpsxxlr47djb61n";
+      git = "0vricyhnnczcbsgvz65pdhi9yx1i34zarbjlc5y5mcmj01y9r7ar";
+    };
+  };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/do-not-regenerate-revision.h.patch b/nixpkgs/pkgs/development/interpreters/ruby/do-not-regenerate-revision.h.patch
new file mode 100644
index 000000000000..ddeb368ee8ae
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/ruby/do-not-regenerate-revision.h.patch
@@ -0,0 +1,23 @@
+Do not regenerate revision.h
+
+Ruby's makefile compares the shipped version with the git revision to regenerate
+revision.h [1], but since we don't include git in buildInputs, this comparison
+fails and it can't find $(REVISION_H).
+
+[1] https://github.com/ruby/ruby/commit/97a5af62a318fcd93a4e5e4428d576c0280ddbae
+
+diff -Naur ruby.old/defs/gmake.mk ruby.new/defs/gmake.mk
+--- ruby.old/defs/gmake.mk
++++ ruby.new/defs/gmake.mk
+@@ -325,11 +325,9 @@
+ 
+ REVISION_IN_HEADER := $(shell sed -n 's/^\#define RUBY_FULL_REVISION "\(.*\)"/\1/p' $(srcdir)/revision.h 2>/dev/null)
+ REVISION_LATEST := $(shell $(CHDIR) $(srcdir) && git log -1 --format=%H 2>/dev/null)
+-ifneq ($(REVISION_IN_HEADER),$(REVISION_LATEST))
+ # GNU make treat the target as unmodified when its dependents get
+ # updated but it is not updated, while others may not.
+ $(srcdir)/revision.h: $(REVISION_H)
+-endif
+ 
+ # Query on the generated rdoc
+ #
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/do-not-update-gems-baseruby.patch b/nixpkgs/pkgs/development/interpreters/ruby/do-not-update-gems-baseruby.patch
new file mode 100644
index 000000000000..2de1977630cb
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/ruby/do-not-update-gems-baseruby.patch
@@ -0,0 +1,14 @@
+Do not update gems when building with base ruby
+
+diff -Naur ruby.old/defs/gmake.mk ruby.new/defs/gmake.mk
+--- ruby.old/common.mk
++++ ruby.new/common.mk
+@@ -1298,7 +1298,7 @@ update-config_files: PHONY
+ 	    config.guess config.sub
+ 
+ refresh-gems: update-bundled_gems prepare-gems
+-prepare-gems: $(HAVE_BASERUBY:yes=update-gems) $(HAVE_BASERUBY:yes=extract-gems)
++prepare-gems:
+ 
+ update-gems$(gnumake:yes=-nongnumake): PHONY
+ 	$(ECHO) Downloading bundled gem files...
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix b/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix
index e03248b7d363..af0f5559118d 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix
@@ -1,6 +1,7 @@
 { patchSet, useRailsExpress, ops, patchLevel, fetchpatch }:
 
 {
+
   "1.9.3" = [
     ./ssl_v3.patch
     ./rand-egd.patch
@@ -80,4 +81,8 @@
     "${patchSet}/patches/ruby/2.7/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.7/head/railsexpress/03-more-detailed-stacktrace.patch"
   ];
+  "3.0.1" = ops useRailsExpress [
+    "${patchSet}/patches/ruby/3.0/head/railsexpress/01-improve-gc-stats.patch"
+    "${patchSet}/patches/ruby/3.0/head/railsexpress/02-malloc-trim.patch"
+  ];
 }
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
index 8263a987d639..19eed817ec29 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
     description = "Package management framework for Ruby";
     homepage = "https://rubygems.org/";
     license = with licenses; [ mit /* or */ ruby ];
-    maintainers = with maintainers; [ qyliss zimbatm ];
+    maintainers = with maintainers; [ zimbatm ];
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rvm-patchsets.nix b/nixpkgs/pkgs/development/interpreters/ruby/rvm-patchsets.nix
index 14f932e1d65c..3c2113d608c5 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/rvm-patchsets.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/rvm-patchsets.nix
@@ -3,6 +3,6 @@
 fetchFromGitHub {
   owner  = "skaes";
   repo   = "rvm-patchsets";
-  rev    = "e2f4b82e47aeaf2a3b894da3b46ba6f0ca92cbb6";
-  sha256 = "059mvf8jcjrfplr8hv2y6ibc41id979k0zwfh6zdnb7dynym4bsg";
+  rev    = "28c6469ce841ff3033c376e78a7043009a3bdc5c";
+  sha256 = "0kh08hahrwif61sq0qlvgyqiymxi8c8h2dw4s3ln4aq696k4gba9";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/scheme48/default.nix b/nixpkgs/pkgs/development/interpreters/scheme48/default.nix
index ca34d5055c56..883b0b2f39aa 100644
--- a/nixpkgs/pkgs/development/interpreters/scheme48/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/scheme48/default.nix
@@ -1,17 +1,24 @@
 { lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "scheme48-1.9.2";
-
-  meta = {
-    homepage = "http://s48.org/";
-    description = "Scheme 48";
-    platforms = with lib.platforms; unix;
-    license = lib.licenses.bsd3;
-  };
+stdenv.mkDerivation rec {
+  pname = "scheme48";
+  version = "1.9.2";
 
   src = fetchurl {
-    url = "http://s48.org/1.9.2/scheme48-1.9.2.tgz";
+    url = "http://s48.org/${version}/scheme48-${version}.tgz";
     sha256 = "1x4xfm3lyz2piqcw1h01vbs1iq89zq7wrsfjgh3fxnlm1slj2jcw";
   };
+
+  # Make more reproducible by removing build user and date.
+  postPatch = ''
+    substituteInPlace build/build-usual-image --replace '"(made by $USER on $date)"' '""'
+  '';
+
+  meta = with lib; {
+    homepage = "http://s48.org/";
+    description = "Scheme 48 interpreter for R5RS";
+    platforms = platforms.unix;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.siraben ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/sollya/default.nix b/nixpkgs/pkgs/development/interpreters/sollya/default.nix
new file mode 100644
index 000000000000..5c439347f07f
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/sollya/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchurl
+, gmp
+, mpfr
+, mpfi
+, libxml2
+, fplll
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sollya";
+  version = "7.0";
+
+  src = fetchurl {
+    url = "https://www.sollya.org/releases/sollya-${version}/sollya-${version}.tar.gz";
+    sha256 = "0amrxg7567yy5xqpgchxggjpfr11xyl27vy29c7vlh7v8a17nj1h";
+  };
+
+  buildInputs = [ gmp mpfr mpfi libxml2 fplll ];
+
+  meta = with lib; {
+    description = "A tool environment for safe floating-point code development";
+    homepage = "https://www.sollya.org/";
+    license = licenses.cecill-c;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ eduardosm ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/38.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/38.nix
deleted file mode 100644
index 482561a901ea..000000000000
--- a/nixpkgs/pkgs/development/interpreters/spidermonkey/38.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, gnused_422, perl, python2, zip, libffi, readline, icu, zlib, buildPackages
-, libobjc }:
-
-with lib;
-
-stdenv.mkDerivation rec {
-  version = "38.8.0";
-  pname = "spidermonkey";
-
-  src = fetchurl {
-    url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.bz2";
-    sha256 = "10lrync6cxnjlnadc0j3vg8r2dq9b3wwanw8qj1h6ncxwb7asxcl";
-  };
-
-  buildInputs = [ libffi readline icu zlib ]
-               ++ lib.optional stdenv.isDarwin libobjc;
-  nativeBuildInputs = [ pkg-config perl python2 zip gnused_422 ];
-
-  postUnpack = "sourceRoot=\${sourceRoot}/js/src";
-
-  preConfigure = ''
-    export CXXFLAGS="-fpermissive"
-    export LIBXUL_DIST=$out
-    export PYTHON="${buildPackages.python2.interpreter}"
-  '';
-
-  configureFlags = [
-    "--enable-threadsafe"
-    "--with-system-ffi"
-    "--enable-posix-nspr-emulation"
-    "--with-system-zlib"
-    "--with-system-icu"
-    "--enable-readline"
-
-    # enabling these because they're wanted by 0ad. They may or may
-    # not be good defaults for other uses.
-    "--enable-gcgenerational"
-    "--enable-shared-js"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    # Spidermonkey seems to use different host/build terminology for cross
-    # compilation here.
-    "--host=${stdenv.buildPlatform.config}"
-    "--target=${stdenv.hostPlatform.config}"
-  ];
-
-  configurePlatforms = [];
-
-  depsBuildBuild = [ buildPackages.stdenv.cc ];
-
-  # This addresses some build system bug. It's quite likely to be safe
-  # to re-enable parallel builds if the source revision changes.
-  enableParallelBuilding = true;
-
-  postFixup = ''
-    # The headers are symlinks to a directory that doesn't get put
-    # into $out, so they end up broken. Fix that by just resolving the
-    # symlinks.
-    for i in $(find $out -type l); do
-      cp --remove-destination "$(readlink "$i")" "$i";
-    done
-  '';
-
-  meta = with lib; {
-    description = "Mozilla's JavaScript engine written in C/C++";
-    homepage = "https://developer.mozilla.org/en/SpiderMonkey";
-    # TODO: MPL/GPL/LGPL tri-license.
-
-    maintainers = [ maintainers.abbradar ];
-    platforms = platforms.unix;
-    knownVulnerabilities = [ "SpiderMonkey 38 is outdated and contains known security vulnerabilities." ]; # as per https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/38
-  };
-}
diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/60.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/60.nix
deleted file mode 100644
index d75e5e8b2859..000000000000
--- a/nixpkgs/pkgs/development/interpreters/spidermonkey/60.nix
+++ /dev/null
@@ -1,83 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoconf213, pkg-config, perl, python2, zip, buildPackages
-, which, readline, zlib, icu }:
-
-with lib;
-
-let
-  version = "60.9.0";
-in stdenv.mkDerivation {
-  pname = "spidermonkey";
-  inherit version;
-
-  src = fetchurl {
-    url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha256 = "0gy5x2rnnbkqmjd9sq93s3q5na9nkba68xwpizild7k6qn63qicz";
-  };
-
-  outputs = [ "out" "dev" ];
-  setOutputFlags = false; # Configure script only understands --includedir
-
-  buildInputs = [ readline zlib icu ];
-  nativeBuildInputs = [ autoconf213 pkg-config perl which python2 zip ];
-
-  patches = [
-    # Fixed in 62.0
-    # https://bugzilla.mozilla.org/show_bug.cgi?id=1415202
-    (fetchpatch {
-      url = "https://src.fedoraproject.org/rpms/mozjs60/raw/a1b605c73f382db25977cb2d4d70a3ba2ff85b92/f/Always-use-the-equivalent-year-to-determine-the-time-zone.patch";
-      sha256 = "12i225qbzlyfj2disms50zrr5jy8zgn2cc4rgsg58sfgf1bn7150";
-    })
-  ];
-
-  preConfigure = ''
-    export CXXFLAGS="-fpermissive"
-    export LIBXUL_DIST=$out
-    export PYTHON="${buildPackages.python2.interpreter}"
-
-    # We can't build in js/src/, so create a build dir
-    mkdir obj
-    cd obj/
-    configureScript=../js/src/configure
-  '';
-
-  configureFlags = [
-    "--with-system-zlib"
-    "--with-system-icu"
-    "--with-intl-api"
-    "--enable-readline"
-    "--enable-shared-js"
-    "--enable-posix-nspr-emulation"
-    "--disable-jemalloc"
-    # Fedora and Arch disable optimize, but it doesn't seme to be necessary
-    # It turns on -O3 which some gcc version had a problem with:
-    # https://src.fedoraproject.org/rpms/mozjs38/c/761399aba092bcb1299bb4fccfd60f370ab4216e
-    "--enable-optimize"
-    "--enable-release"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    # Spidermonkey seems to use different host/build terminology for cross
-    # compilation here.
-    "--host=${stdenv.buildPlatform.config}"
-    "--target=${stdenv.hostPlatform.config}"
-  ];
-
-  configurePlatforms = [];
-
-  depsBuildBuild = [ buildPackages.stdenv.cc ];
-
-  # Remove unnecessary static lib
-  preFixup = ''
-    moveToOutput bin/js60-config "$dev"
-    rm $out/lib/libjs_static.ajs
-    ln -s $out/bin/js60 $out/bin/js
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "Mozilla's JavaScript engine written in C/C++";
-    homepage = "https://developer.mozilla.org/en/SpiderMonkey";
-    license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license.
-    maintainers = [ maintainers.abbradar ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/78.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/78.nix
index 81ebcedf7bc0..23f24ca8ba46 100644
--- a/nixpkgs/pkgs/development/interpreters/spidermonkey/78.nix
+++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/78.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , autoconf213
 , pkg-config
 , perl
@@ -15,17 +14,17 @@
 , rustc
 , rust-cbindgen
 , yasm
-, llvmPackages
+, llvmPackages_11
 , nspr
 }:
 
 stdenv.mkDerivation rec {
   pname = "spidermonkey";
-  version = "78.4.0";
+  version = "78.8.0";
 
   src = fetchurl {
     url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha256 = "1z3hj45bnd12z3g6ajv9qrgclca7fymi1sxj9l9nh9q6y6xz0g4f";
+    sha256 = "0451hhjrj9hb6limxim7sbhvw4gs6dd2gmnfxjjx07z3wbgdzwhw";
   };
 
   outputs = [ "out" "dev" ];
@@ -34,7 +33,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     autoconf213
     cargo
-    llvmPackages.llvm # for llvm-objdump
+    llvmPackages_11.llvm # for llvm-objdump
     perl
     pkg-config
     python3
@@ -96,9 +95,19 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  postPatch = ''
+    # This patch is a manually applied fix of
+    #   https://bugzilla.mozilla.org/show_bug.cgi?id=1644600
+    # Once that bug is fixed, this can be removed.
+    # This is needed in, for example, `zeroad`.
+    substituteInPlace js/public/StructuredClone.h \
+         --replace "class SharedArrayRawBufferRefs {" \
+                   "class JS_PUBLIC_API SharedArrayRawBufferRefs {"
+  '';
+
   meta = with lib; {
     description = "Mozilla's JavaScript engine written in C/C++";
-    homepage = "https://developer.mozilla.org/en/SpiderMonkey";
+    homepage = "https://spidermonkey.dev/";
     license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license.
     maintainers = with maintainers; [ abbradar lostnet ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/interpreters/supercollider/default.nix b/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
index f80e18c7bb96..b7efc37ae044 100644
--- a/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
@@ -1,17 +1,16 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, alsaLib
+{ lib, stdenv, mkDerivation, fetchurl, cmake, pkg-config, alsaLib
 , libjack2, libsndfile, fftw, curl, gcc
 , libXt, qtbase, qttools, qtwebengine
 , readline, qtwebsockets, useSCEL ? false, emacs
 }:
 
-let optional = lib.optional;
+let
+  inherit (lib) optional;
 in
-
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "supercollider";
   version = "3.11.2";
 
-
   src = fetchurl {
     url = "https://github.com/supercollider/supercollider/releases/download/Version-${version}/SuperCollider-${version}-Source.tar.bz2";
     sha256 = "wiwyxrxIJnHU+49RZy33Etl6amJ3I1xNojEpEDA6BQY=";
@@ -35,7 +34,7 @@ stdenv.mkDerivation rec {
     description = "Programming language for real time audio synthesis";
     homepage = "https://supercollider.github.io";
     maintainers = with maintainers; [ mrmebelman ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = [ "x686-linux" "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/tcl/8.6.nix b/nixpkgs/pkgs/development/interpreters/tcl/8.6.nix
index d76ceb3421de..37a7fee8a859 100644
--- a/nixpkgs/pkgs/development/interpreters/tcl/8.6.nix
+++ b/nixpkgs/pkgs/development/interpreters/tcl/8.6.nix
@@ -2,10 +2,10 @@
 
 callPackage ./generic.nix (args // rec {
   release = "8.6";
-  version = "${release}.9";
+  version = "${release}.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/tcl/tcl${version}-src.tar.gz";
-    sha256 = "0kjzj7mkzfnb7ksxanbibibfpciyvsh5ffdlhs0bmfc75kgd435d";
+    sha256 = "0n4211j80mxr6ql0xx52rig8r885rcbminfpjdb2qrw6hmk8c14c";
   };
 })
diff --git a/nixpkgs/pkgs/development/interpreters/tinyscheme/default.nix b/nixpkgs/pkgs/development/interpreters/tinyscheme/default.nix
index 8dd27b3f0006..3d4cfea465a6 100644
--- a/nixpkgs/pkgs/development/interpreters/tinyscheme/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/tinyscheme/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tinyscheme";
-  version = "1.41";
+  version = "1.42";
 
   src = fetchurl {
     url = "mirror://sourceforge/tinyscheme/${pname}-${version}.tar.gz";
-    sha256 = "168rk4zrlhsknbvldq2jsgabpwlqkx6la44gkqmijmf7jhs11h7a";
+    sha256 = "sha256-F7Cxv/0i89SdWDPiKhILM5A50s/aC0bW/FHdLwG0B60=";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/interpreters/trealla/default.nix b/nixpkgs/pkgs/development/interpreters/trealla/default.nix
new file mode 100644
index 000000000000..165251c8c5c3
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/trealla/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchFromGitHub, readline, openssl, withThread ? true, withSSL ? true, xxd }:
+
+stdenv.mkDerivation rec {
+  pname = "trealla";
+  version = "1.7.65";
+
+  src = fetchFromGitHub {
+    owner = "infradig";
+    repo = "trealla";
+    rev = "v${version}";
+    sha256 = "sha256-uCDACBwdiCeAwF6IZHz7s5pD83JXTP7jAQDjGld8tt0=";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace '-I/usr/local/include' "" \
+      --replace '-L/usr/local/lib' "" \
+      --replace 'GIT_VERSION :=' 'GIT_VERSION ?='
+  '';
+
+  makeFlags = [
+    "GIT_VERSION=\"v${version}\""
+    (lib.optionalString withThread "THREADS=1")
+    (lib.optionalString (!withSSL) "NOSSL=1")
+    (lib.optionalString stdenv.isDarwin "NOLDLIBS=1")
+  ];
+
+  nativeBuildInputs = [ xxd ];
+  buildInputs = [ readline openssl ];
+
+  installPhase = ''
+    install -Dm755 -t $out/bin tpl
+  '';
+
+  doCheck = true;
+  preCheck = ''
+    # Disable test 81 due to floating point error
+    rm tests/issues/test081.expected tests/issues/test081.pl
+  '';
+
+  meta = with lib; {
+    description = "A compact, efficient Prolog interpreter written in ANSI C";
+    homepage = "https://github.com/infradig/trealla";
+    license = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/unicon-lang/default.nix b/nixpkgs/pkgs/development/interpreters/unicon-lang/default.nix
index ac0a944f2105..c399ef223de3 100644
--- a/nixpkgs/pkgs/development/interpreters/unicon-lang/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/unicon-lang/default.nix
@@ -7,7 +7,8 @@ stdenv.mkDerivation {
     url = "http://unicon.org/dist/uni-2-4-2010.zip";
     sha256 = "1g9l2dfp99dqih2ir2limqfjgagh3v9aqly6x0l3qavx3qkkwf61";
   };
-  buildInputs = [ libnsl libX11 libXt unzip ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ libnsl libX11 libXt ];
 
   hardeningDisable = [ "fortify" ];
 
@@ -41,4 +42,3 @@ stdenv.mkDerivation {
     homepage = "http://unicon.org";
   };
 }
-
diff --git a/nixpkgs/pkgs/development/interpreters/wasmer/default.nix b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
index 60ce4d89f19c..8077177d8b8f 100644
--- a/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
@@ -8,25 +8,32 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmer";
-  version = "0.17.0";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "wasmerio";
     repo = pname;
     rev = version;
-    sha256 = "05g4h0xkqd14wnmijiiwmhk6l909fjxr6a2zplrjfxk5bypdalpm";
+    sha256 = "0ciia8hhkkyh6rmrxgbk3bgwjwzkcba6645wlcm0vlgk2w4i5m3z";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "1ssmgx9fjvkq7ycyzjanqmlm5b80akllq6qyv3mj0k5fvs659wcq";
+  cargoSha256 = "08r2b4s005w8r207jwq2fd43y3prgd8pg1m72aww1r7yrbxdr0v2";
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  # Since wasmer 0.17 no backends are enabled by default. Backends are now detected
-  # using the [makefile](https://github.com/wasmerio/wasmer/blob/master/Makefile).
-  # Enabling cranelift as this used to be the old default. At least one backend is
-  # needed for the run subcommand to work.
-  cargoBuildFlags = [ "--features 'backend-cranelift'" ];
+  cargoBuildFlags = [
+    # cranelift+jit works everywhere, see:
+    # https://github.com/wasmerio/wasmer/blob/master/Makefile#L22
+    "--features" "cranelift,jit"
+    # must target manifest and desired output bin, otherwise output is empty
+    "--manifest-path" "lib/cli/Cargo.toml"
+    "--bin" "wasmer"
+  ];
+
+  cargoTestFlags = [
+    "--features" "test-cranelift,test-jit"
+  ];
 
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
 
diff --git a/nixpkgs/pkgs/development/interpreters/yabasic/default.nix b/nixpkgs/pkgs/development/interpreters/yabasic/default.nix
new file mode 100644
index 000000000000..414171082e30
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/yabasic/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchurl
+, libSM
+, libX11
+, libXt
+, libffi
+, ncurses
+}:
+
+stdenv.mkDerivation rec {
+  pname = "yabasic";
+  version = "2.89.1";
+
+  src = fetchurl {
+    url = "http://www.yabasic.de/download/${pname}-${version}.tar.gz";
+    hash = "sha256-k8QmQCpszLyotEiWDrG878RM2wqSq7I4W9j6Z2Ub3Yg=";
+  };
+
+  buildInputs = [
+    libSM
+    libX11
+    libXt
+    libffi
+    ncurses
+  ];
+
+  meta = with lib; {
+    homepage = "http://www.yabasic.de/";
+    description = "Yet another BASIC";
+    longDescription = ''
+      Yabasic is a traditional basic-interpreter. It comes with goto and various
+      loops and allows to define subroutines and libraries. It does simple
+      graphics and printing. Yabasic can call out to libraries written in C and
+      allows to create standalone programs. Yabasic runs under Unix and Windows
+      and has a comprehensive documentation; it is small, simple, open-source
+      and free.
+   '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/java-modules/junit/default.nix b/nixpkgs/pkgs/development/java-modules/junit/default.nix
index 2cb9ab001c29..79f73879e6b9 100644
--- a/nixpkgs/pkgs/development/java-modules/junit/default.nix
+++ b/nixpkgs/pkgs/development/java-modules/junit/default.nix
@@ -1,12 +1,17 @@
-{ lib, pkgs, mavenbuild, fetchMaven }:
+{ lib, pkgs, mavenbuild, fetchMaven, maven, jdk8 }:
 
 with pkgs.javaPackages;
 
 let
   poms = import (../poms.nix) { inherit fetchMaven; };
   collections = import (../collections.nix) { inherit pkgs; };
+  mavenbuild-jdk8 = mavenbuild.override {
+    maven = maven.override {
+      jdk = jdk8;
+    };
+  };
 in rec {
-  junitGen = { mavenDeps, sha512, version }: mavenbuild {
+  junitGen = { mavenDeps, sha512, version }: mavenbuild-jdk8 {
     inherit mavenDeps sha512 version;
 
     name = "junit-${version}";
diff --git a/nixpkgs/pkgs/development/java-modules/maven-hello/default.nix b/nixpkgs/pkgs/development/java-modules/maven-hello/default.nix
index eac127b6dccc..96d0031270b8 100644
--- a/nixpkgs/pkgs/development/java-modules/maven-hello/default.nix
+++ b/nixpkgs/pkgs/development/java-modules/maven-hello/default.nix
@@ -1,11 +1,21 @@
-{ lib, pkgs, mavenbuild }:
+{ lib
+, pkgs
+, mavenbuild
+, maven
+, jdk8
+}:
 
 with pkgs.javaPackages;
 
 let
   poms = import ../poms.nix { inherit fetchMaven; };
+  mavenbuild-jdk8 = mavenbuild.override {
+    maven = maven.override {
+      jdk = jdk8;
+    };
+  };
 in rec {
-  mavenHelloRec = { mavenDeps, sha512, version, skipTests ? true, quiet ? true }: mavenbuild {
+  mavenHelloRec = { mavenDeps, mavenbuild, sha512, version, skipTests ? true, quiet ? true }: mavenbuild {
     inherit mavenDeps sha512 version skipTests quiet;
 
     name = "maven-hello-${version}";
@@ -31,6 +41,7 @@ in rec {
     mavenDeps = [];
     sha512 = "3kv5z1i02wfb0l5x3phbsk3qb3wky05sqn4v3y4cx56slqfp9z8j76vnh8v45ydgskwl2vs9xjx6ai8991mzb5ikvl3vdgmrj1j17p2";
     version = "1.0";
+    mavenbuild = mavenbuild-jdk8;
   };
 
   mavenHello_1_1 = mavenHelloRec {
@@ -39,5 +50,6 @@ in rec {
     version = "1.1";
     skipTests = false;
     quiet = false;
+    mavenbuild = mavenbuild-jdk8;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/AntTweakBar/default.nix b/nixpkgs/pkgs/development/libraries/AntTweakBar/default.nix
index c26672c1dabc..d46c7a6bcd85 100644
--- a/nixpkgs/pkgs/development/libraries/AntTweakBar/default.nix
+++ b/nixpkgs/pkgs/development/libraries/AntTweakBar/default.nix
@@ -3,7 +3,8 @@
 stdenv.mkDerivation {
   name = "AntTweakBar-1.16";
 
-  buildInputs = [ unzip xorg.libX11 libGLU libGL ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ xorg.libX11 libGLU libGL ];
 
   src = fetchurl {
     url = "mirror://sourceforge/project/anttweakbar/AntTweakBar_116.zip";
diff --git a/nixpkgs/pkgs/development/libraries/abseil-cpp/default.nix b/nixpkgs/pkgs/development/libraries/abseil-cpp/default.nix
index 95d1b873edd3..0813a965524b 100644
--- a/nixpkgs/pkgs/development/libraries/abseil-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/abseil-cpp/default.nix
@@ -1,16 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake, static ? stdenv.hostPlatform.isStatic }:
 
 stdenv.mkDerivation rec {
   pname = "abseil-cpp";
-  version = "20200225.2";
+  version = "20200923.3";
 
   src = fetchFromGitHub {
     owner = "abseil";
     repo = "abseil-cpp";
     rev = version;
-    sha256 = "0dwxg54pv6ihphbia0iw65r64whd7v8nm4wwhcz219642cgpv54y";
+    sha256 = "1p4djhm1f011ficbjjxx3n8428p8481p20j4glpaawnpsi362hkl";
   };
 
+  cmakeFlags = [
+    "-DCMAKE_CXX_STANDARD=17"
+    "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}"
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/acl/default.nix b/nixpkgs/pkgs/development/libraries/acl/default.nix
index 2161ad9e59c3..e0b1f05516cd 100644
--- a/nixpkgs/pkgs/development/libraries/acl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/acl/default.nix
@@ -6,11 +6,11 @@
 # files.
 
 stdenv.mkDerivation rec {
-  name = "acl-2.2.53";
+  name = "acl-2.3.0";
 
   src = fetchurl {
     url = "mirror://savannah/acl/${name}.tar.gz";
-    sha256 = "1ir6my3w74s6nfbgbqgzj6w570sn0qjf3524zx8xh67lqrjrigh6";
+    sha256 = "sha256-vTj9u7A8eTdK9RRn6+VJfLwDNbgld/MMlRpBqVtTMAk=";
   };
 
   outputs = [ "bin" "dev" "out" "man" "doc" ];
diff --git a/nixpkgs/pkgs/development/libraries/agda/standard-library/default.nix b/nixpkgs/pkgs/development/libraries/agda/standard-library/default.nix
index 4bd5de8bd48d..fd20a0d9a97c 100644
--- a/nixpkgs/pkgs/development/libraries/agda/standard-library/default.nix
+++ b/nixpkgs/pkgs/development/libraries/agda/standard-library/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitHub, ghcWithPackages }:
+{ lib, mkDerivation, fetchFromGitHub, ghcWithPackages, nixosTests }:
 
 mkDerivation rec {
   pname = "standard-library";
@@ -19,6 +19,7 @@ mkDerivation rec {
     rm EverythingSafe.agda EverythingSafeGuardedness.agda EverythingSafeSizedTypes.agda
   '';
 
+  passthru.tests = { inherit (nixosTests) agda; };
   meta = with lib; {
     homepage = "https://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.StandardLibrary";
     description = "A standard library for use with the Agda compiler";
diff --git a/nixpkgs/pkgs/development/libraries/allegro/5.nix b/nixpkgs/pkgs/development/libraries/allegro/5.nix
index ca1446dd9352..314347411261 100644
--- a/nixpkgs/pkgs/development/libraries/allegro/5.nix
+++ b/nixpkgs/pkgs/development/libraries/allegro/5.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "allegro";
-  version = "5.2.6.0";
+  version = "5.2.7.0";
 
   src = fetchFromGitHub {
     owner = "liballeg";
     repo = "allegro5";
     rev = version;
-    sha256 = "1xbhvriyh10ka2j7jgjkpa6mlzp6av909hhr9sk317vjvf0z0mqz";
+    sha256 = "sha256-JdnzEW+qAhAljR+WfmgE3P9xeR2HvjS64tFgCC0tNA0=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/amdvlk/default.nix b/nixpkgs/pkgs/development/libraries/amdvlk/default.nix
index 208c74981dcb..1d0256f3b274 100644
--- a/nixpkgs/pkgs/development/libraries/amdvlk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/amdvlk/default.nix
@@ -21,13 +21,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2021.Q1.3";
+  version = "2021.Q1.6";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "x9VzPALIlgE3eIKY4/qbFg5w+zd2W/jbqFXgJfpvLP4=";
+    sha256 = "FSQ/bYlvdw0Ih3Yl329o8Gizw0YcZTLtiI222Ju4M8w=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/amrnb/default.nix b/nixpkgs/pkgs/development/libraries/amrnb/default.nix
index b226c9e36d24..2316961e3994 100644
--- a/nixpkgs/pkgs/development/libraries/amrnb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/amrnb/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "1qgiw02n2a6r32pimnd97v2jkvnw449xrqmaxiivjy2jcr5h141q";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   configureFlags = [ "--cache-file=config.cache" "--with-downloader=true" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/amrwb/default.nix b/nixpkgs/pkgs/development/libraries/amrwb/default.nix
index 776065b28bc7..81938bb4cba7 100644
--- a/nixpkgs/pkgs/development/libraries/amrwb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/amrwb/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "1p6m9nd08mv525w14py9qzs9zwsa5i3vxf5bgcmcvc408jqmkbsw";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   configureFlags = [ "--cache-file=config.cache" "--with-downloader=true" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix b/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix
index 976387d49eb0..136ffb79804a 100644
--- a/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix
+++ b/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "apache-activemq";
-  version = "5.16.0";
+  version = "5.16.1";
 
   src = fetchurl {
-    sha256 = "0x68l4n0v2jqmbawdgpghmhnchpg1jsvxzskj6s4hjll6hdgb6fk";
+    sha256 = "sha256-Q9PzqJC/+uhcbxAC6c+VD8wf0X8/XlXcO4XTnQni4yM=";
     url = "mirror://apache/activemq/${version}/${pname}-${version}-bin.tar.gz";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/aqbanking/gwenhywfar.nix b/nixpkgs/pkgs/development/libraries/aqbanking/gwenhywfar.nix
index d240e7e3a9dc..073ad3254a0b 100644
--- a/nixpkgs/pkgs/development/libraries/aqbanking/gwenhywfar.nix
+++ b/nixpkgs/pkgs/development/libraries/aqbanking/gwenhywfar.nix
@@ -57,6 +57,8 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [ gtk2 gtk3 qt5.qtbase gnutls openssl libgcrypt libgpgerror ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "OS abstraction functions used by aqbanking and related tools";
     homepage = "http://www2.aquamaniac.de/sites/download/packages.php?package=01&showall=1";
diff --git a/nixpkgs/pkgs/development/libraries/arb/default.nix b/nixpkgs/pkgs/development/libraries/arb/default.nix
index 1c356b59d8a7..97af236af046 100644
--- a/nixpkgs/pkgs/development/libraries/arb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/arb/default.nix
@@ -1,26 +1,39 @@
-{lib, stdenv, fetchFromGitHub, mpir, gmp, mpfr, flint}:
+{ lib
+, stdenv
+, fetchFromGitHub
+, mpir
+, gmp
+, mpfr
+, flint
+}:
+
 stdenv.mkDerivation rec {
   pname = "arb";
-  version = "2.17.0";
+  version = "2.19.0";
+
   src = fetchFromGitHub {
     owner = "fredrik-johansson";
     repo = pname;
     rev = version;
-    sha256 = "05lpy3hkl5f8ik19aw40cqydrb932xaf2n8hbq9ib5dnk7f010p1";
+    sha256 = "sha256-J/LQVZ8gmssazE7ru89EtvW6cVjaLEHgUHuwjW1nuOE=";
   };
-  buildInputs = [mpir gmp mpfr flint];
+
+  buildInputs = [ mpir gmp mpfr flint ];
+
   configureFlags = [
     "--with-gmp=${gmp}"
     "--with-mpir=${mpir}"
     "--with-mpfr=${mpfr}"
     "--with-flint=${flint}"
   ];
+
   doCheck = true;
+
   meta = with lib; {
     description = "A library for arbitrary-precision interval arithmetic";
     homepage = "https://arblib.org/";
-    license = lib.licenses.lgpl21Plus;
+    license = licenses.lgpl21Plus;
     maintainers = teams.sage.members;
-    platforms = lib.platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/armadillo/default.nix b/nixpkgs/pkgs/development/libraries/armadillo/default.nix
index fe67cf04e602..22264fe01f30 100644
--- a/nixpkgs/pkgs/development/libraries/armadillo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "armadillo";
-  version = "10.2.1";
+  version = "10.3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "sha256-fY500kh2mvI/yJTYu4jwXjIxeTPL5NqPPFa+j4mp/MQ=";
+    sha256 = "sha256-qx7/+lr5AAChGhmjkwL9+8XEq/b6tXipvQ6clc+B5Mc=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/arrayfire/default.nix b/nixpkgs/pkgs/development/libraries/arrayfire/default.nix
index c636d672332c..a66db4800177 100644
--- a/nixpkgs/pkgs/development/libraries/arrayfire/default.nix
+++ b/nixpkgs/pkgs/development/libraries/arrayfire/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, fetchFromGitHub, cmake, pkg-config
 , opencl-clhpp, ocl-icd, fftw, fftwFloat
 , blas, lapack, boost, mesa, libGLU, libGL
-, freeimage, python, clfft, clblas
+, freeimage, python3, clfft, clblas
 , doxygen, buildDocs ? false
 , cudaSupport ? false, cudatoolkit
 }:
@@ -39,9 +39,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     cmake
     pkg-config
-    python
+    python3
   ];
 
+  strictDeps = true;
+
   buildInputs = [
     opencl-clhpp fftw fftwFloat
     blas lapack
diff --git a/nixpkgs/pkgs/development/libraries/aubio/default.nix b/nixpkgs/pkgs/development/libraries/aubio/default.nix
index 7aa4859ef0ed..b1c6c6396c86 100644
--- a/nixpkgs/pkgs/development/libraries/aubio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aubio/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, alsaLib, fftw, libjack2, libsamplerate
-, libsndfile, pkg-config, python, wafHook
+, libsndfile, pkg-config, python3, wafHook
 }:
 
 stdenv.mkDerivation rec {
@@ -10,9 +10,11 @@ stdenv.mkDerivation rec {
     sha256 = "1npks71ljc48w6858l9bq30kaf5nph8z0v61jkfb70xb9np850nl";
   };
 
-  nativeBuildInputs = [ pkg-config python wafHook ];
+  nativeBuildInputs = [ pkg-config python3 wafHook ];
   buildInputs = [ alsaLib fftw libjack2 libsamplerate libsndfile ];
 
+  strictDeps = true;
+
   meta = with lib; {
     description = "Library for audio labelling";
     homepage = "https://aubio.org/";
diff --git a/nixpkgs/pkgs/development/libraries/audio/libinstpatch/default.nix b/nixpkgs/pkgs/development/libraries/audio/libinstpatch/default.nix
index 29781446c8fe..670dee26b2bf 100644
--- a/nixpkgs/pkgs/development/libraries/audio/libinstpatch/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/libinstpatch/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libinstpatch";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "swami";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0psx4hc5yksfd3k2xqsc7c8lbz2d4yybikyddyd9hlkhq979cmjb";
+    sha256 = "sha256-OU6/slrPDgzn9tvXZJKSWbcFbpS/EAsOi52FtjeYdvA=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix b/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix
index 9c636e0205df..821a9ea9226a 100644
--- a/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libmysofa";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchFromGitHub {
     owner = "hoene";
     repo = "libmysofa";
     rev = "v${version}";
-    sha256 = "12jzap5fh0a1fmfy4z8z4kjjlwi0qzdb9z59ijdlyqdzwxnzkccx";
+    sha256 = "sha256-f+1CIVSxyScyNF92cPIiZwfnnCVrWfCZlbrIXtduIdY=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix b/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix
index 79f09f48464f..f074287ab163 100644
--- a/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lilv";
-  version = "0.24.10";
+  version = "0.24.12";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "1565zy0yz46cf2f25pi46msdnzkj6bbhml9gfigdpjnsdlyskfyi";
+    sha256 = "sha256-JqN3kIkMnB+DggO0f1sjIDNP6SwCpNJuu+Jmnb12kGE=";
   };
 
   patches = [ ./lilv-pkgconfig.patch ];
diff --git a/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix b/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix
index 45caf0b36c50..616ad5b0c892 100644
--- a/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lv2";
-  version = "1.18.0";
+  version = "1.18.2";
 
   src = fetchurl {
     url = "https://lv2plug.in/spec/${pname}-${version}.tar.bz2";
-    sha256 = "0gs7401xz23q9vajqr31aa2db8dvssgyh5zrvr4ipa6wig7yb8wh";
+    sha256 = "sha256-TokfvHRMBYVb6136gugisUkX3Wbpj4K4Iw29HHqy4F4=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook ];
diff --git a/nixpkgs/pkgs/development/libraries/audio/raul/default.nix b/nixpkgs/pkgs/development/libraries/audio/raul/default.nix
index a0089e310441..b1a8288c5f04 100644
--- a/nixpkgs/pkgs/development/libraries/audio/raul/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/raul/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, boost, gtk2, pkg-config, python, wafHook }:
+{ lib, stdenv, fetchgit, boost, gtk2, pkg-config, python3, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "raul";
@@ -12,8 +12,10 @@ stdenv.mkDerivation rec {
     sha256 = "1z37jb6ghc13b8nv8a8hcg669gl8vh4ni9djvfgga9vcz8rmcg8l";
   };
 
-  nativeBuildInputs = [ pkg-config wafHook ];
-  buildInputs = [ boost gtk2 python ];
+  nativeBuildInputs = [ pkg-config wafHook python3 ];
+  buildInputs = [ boost gtk2 ];
+
+  strictDeps = true;
 
   meta = with lib; {
     description = "A C++ utility library primarily aimed at audio/musical applications";
diff --git a/nixpkgs/pkgs/development/libraries/audio/rtmidi/default.nix b/nixpkgs/pkgs/development/libraries/audio/rtmidi/default.nix
index 540e152655f6..ccfafd36a8a3 100644
--- a/nixpkgs/pkgs/development/libraries/audio/rtmidi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/rtmidi/default.nix
@@ -37,14 +37,16 @@ stdenv.mkDerivation rec {
       url = "https://github.com/thestk/rtmidi/pull/230/commits/7a32e23e3f6cb43c0d2d58443ce205d438e76f44.patch";
       sha256 = "06im8mb05wah6bnkadw2gpkhmilxb8p84pxqr50b205cchpq304w";
     })
+    (fetchpatch {
+      name = "RtMidi-Adjust-public-header-installs-to-match-autotools.patch";
+      url = "https://github.com/thestk/rtmidi/pull/230/commits/892fe5492f0e787484fa4a37027b08c265ce001f.patch";
+      sha256 = "0ca9m42xa3gmycimzvzvl67wa266xq9pfp1b4v555rh2fp52kbcj";
+    })
   ];
 
   postPatch = ''
     substituteInPlace rtmidi.pc.in \
       --replace 'Requires:' 'Requires.private:'
-    substituteInPlace CMakeLists.txt \
-      --replace 'PUBLIC_HEADER RtMidi.h' 'PUBLIC_HEADER "RtMidi.h;rtmidi_c.h"' \
-      --replace 'PUBLIC_HEADER DESTINATION $''\{CMAKE_INSTALL_INCLUDEDIR}' 'PUBLIC_HEADER DESTINATION $''\{CMAKE_INSTALL_INCLUDEDIR}/rtmidi'
   '';
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/audio/sratom/default.nix b/nixpkgs/pkgs/development/libraries/audio/sratom/default.nix
index 464e79f6c2dd..bc8dc70f9b47 100644
--- a/nixpkgs/pkgs/development/libraries/audio/sratom/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/sratom/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sratom";
-  version = "0.6.4";
+  version = "0.6.8";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "0vh0biy3ngpzzgdml309c2mqz8xq9q0hlblczb4c6alhp0a8yv0l";
+    sha256 = "sha256-Ossysa3Forf6za3i4IGLzWxx8j+EoevBeBW7eg0tAt8=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook python3 ];
diff --git a/nixpkgs/pkgs/development/libraries/audio/suil/default.nix b/nixpkgs/pkgs/development/libraries/audio/suil/default.nix
index 0f4dd0f62c47..1c978a18f8f9 100644
--- a/nixpkgs/pkgs/development/libraries/audio/suil/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/suil/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, gtk2, lv2, pkg-config, python, serd, sord, sratom
+{ stdenv, lib, fetchurl, gtk2, lv2, pkg-config, python3, serd, sord, sratom
 , wafHook
 , withQt4 ? true, qt4 ? null
 , withQt5 ? false, qt5 ? null }:
@@ -17,11 +17,15 @@ stdenv.mkDerivation rec {
     sha256 = "0z4v01pjw4wh65x38w6icn28wdwxz13ayl8hvn4p1g9kmamp1z06";
   };
 
-  nativeBuildInputs = [ pkg-config wafHook ];
-  buildInputs = [ gtk2 lv2 python serd sord sratom ]
+  nativeBuildInputs = [ pkg-config wafHook python3 ];
+  buildInputs = [ gtk2 lv2 serd sord sratom ]
     ++ (lib.optionals withQt4 [ qt4 ])
     ++ (lib.optionals withQt5 (with qt5; [ qtbase qttools ]));
 
+  dontWrapQtApps = true;
+
+  strictDeps = true;
+
   meta = with lib; {
     homepage = "http://drobilla.net/software/suil";
     description = "A lightweight C library for loading and wrapping LV2 plugin UIs";
diff --git a/nixpkgs/pkgs/development/libraries/audio/zita-resampler/default.nix b/nixpkgs/pkgs/development/libraries/audio/zita-resampler/default.nix
index 88e81d733b32..3b3c005a015b 100644
--- a/nixpkgs/pkgs/development/libraries/audio/zita-resampler/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/zita-resampler/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "zita-resampler";
-  version = "1.6.2";
+  version = "1.8.0";
   src = fetchurl {
     url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "1my5k2dh2dkvjp6xjnf9qy6i7s28z13kw1n9pwa4a2cpwbzawfr3";
+    sha256 = "sha256-5XRPI8VN0Vs/eDpoe9h57uKmkKRUWhW0nEzwN6pGSqI=";
   };
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/aws-c-common/default.nix b/nixpkgs/pkgs/development/libraries/aws-c-common/default.nix
index 23d7f9d8629a..39fb5d7eb21e 100644
--- a/nixpkgs/pkgs/development/libraries/aws-c-common/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-c-common/default.nix
@@ -1,30 +1,41 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "aws-c-common";
-  version = "0.4.64";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-izEZMOPHj/9EL78b/t3M0Tki6eA8eRrpG7DO2tkpf1A=";
+    sha256 = "0rd2qzaa9mmn5f6f2bl1wgv54f17pqx3vwyy9f8ylh59qfnilpmg";
   };
 
+  patches = [
+    # Remove once https://github.com/awslabs/aws-c-common/pull/764 is merged
+    (fetchpatch {
+      url = "https://github.com/awslabs/aws-c-common/commit/4f85fb3e398d4e4d320d3559235267b26cbc9531.patch";
+      sha256 = "1jg3mz507w4kwgmg57kvz419gvw47pd9rkjr6jhsmvardmyyskap";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=ON"
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF" # for tests
   ];
 
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin
     "-Wno-nullability-extension -Wno-typedef-redefinition";
 
+  doCheck = true;
+
   meta = with lib; {
     description = "AWS SDK for C common core";
     homepage = "https://github.com/awslabs/aws-c-common";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ orivej eelco ];
+    maintainers = with maintainers; [ orivej eelco r-burns ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/aws-c-event-stream/default.nix b/nixpkgs/pkgs/development/libraries/aws-c-event-stream/default.nix
index 4cfabc77bb2c..b6468a8dae0a 100644
--- a/nixpkgs/pkgs/development/libraries/aws-c-event-stream/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-c-event-stream/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, cmake, aws-c-cal, aws-c-common, aws-c-io, aws-checksums, s2n, libexecinfo }:
+{ lib, stdenv, fetchFromGitHub, cmake, aws-c-cal, aws-c-common, aws-c-io, aws-checksums, s2n-tls, libexecinfo }:
 
 stdenv.mkDerivation rec {
   pname = "aws-c-event-stream";
-  version = "0.2.6";
+  version = "0.2.7";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hbri4dv924ph3cxkmwkl4kdca4dvhc9qda60rdzs6355l76k23n";
+    sha256 = "sha256-8Du9Ib3MhPcgetBIi0k1NboaXxZh7iPNhDe7197JnHc=";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ aws-c-cal aws-c-common aws-c-io aws-checksums s2n ]
+  buildInputs = [ aws-c-cal aws-c-common aws-c-io aws-checksums s2n-tls ]
     ++ lib.optional stdenv.hostPlatform.isMusl libexecinfo;
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/aws-c-io/default.nix b/nixpkgs/pkgs/development/libraries/aws-c-io/default.nix
index e2074cc835a6..337149e6f8e3 100644
--- a/nixpkgs/pkgs/development/libraries/aws-c-io/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-c-io/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, cmake, aws-c-cal, aws-c-common, s2n }:
+{ lib, stdenv, fetchFromGitHub, cmake, aws-c-cal, aws-c-common, s2n-tls, Security }:
 
 stdenv.mkDerivation rec {
   pname = "aws-c-io";
-  version = "0.7.1";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dDvq5clOUaPR7lOCJ/1g0lrCzVOmzwCnqHrBZfBewO4=";
+    sha256 = "0lx72p9xmmnjkz4zkfb1lz0ibw0jsy52qpydhvn56bq85nv44rwx";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ aws-c-cal aws-c-common s2n ];
+  buildInputs = [ aws-c-cal aws-c-common s2n-tls] ++ lib.optionals stdenv.isDarwin [ Security ];
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=ON"
diff --git a/nixpkgs/pkgs/development/libraries/aws-sdk-cpp/default.nix b/nixpkgs/pkgs/development/libraries/aws-sdk-cpp/default.nix
index 7b10fc463dd1..d6fbb97014d7 100644
--- a/nixpkgs/pkgs/development/libraries/aws-sdk-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-sdk-cpp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, curl, openssl, s2n, zlib
+{ lib, stdenv, fetchFromGitHub, cmake, curl, openssl, s2n-tls, zlib
 , aws-c-cal, aws-c-common, aws-c-event-stream, aws-c-io, aws-checksums
 , CoreAudio, AudioToolbox
 , # Allow building a limited set of APIs, e.g. ["s3" "ec2"].
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake curl ];
 
   buildInputs = [
-    curl openssl s2n zlib
+    curl openssl s2n-tls zlib
     aws-c-cal aws-c-common aws-c-event-stream aws-c-io aws-checksums
   ] ++ lib.optionals (stdenv.isDarwin &&
                         ((builtins.elem "text-to-speech" apis) ||
diff --git a/nixpkgs/pkgs/development/libraries/babl/default.nix b/nixpkgs/pkgs/development/libraries/babl/default.nix
index 6e3a5abaaa65..d6e1d75437ef 100644
--- a/nixpkgs/pkgs/development/libraries/babl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/babl/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "babl";
-  version = "0.1.84";
+  version = "0.1.86";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://download.gimp.org/pub/babl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-5+OLhEH3f+udyCMctDSoYZCiHy82ksKBRX6Z016cNOo=";
+    sha256 = "sha256-Cz9ZUVmtGyFs1ynAUEw6X2z3gMZB9Nxj/BZPPAOCyPA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/backward-cpp/default.nix b/nixpkgs/pkgs/development/libraries/backward-cpp/default.nix
index af727e394d16..03f49c3ee504 100644
--- a/nixpkgs/pkgs/development/libraries/backward-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/backward-cpp/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Beautiful stack trace pretty printer for C++";
     homepage = "https://github.com/bombela/backward-cpp";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ cstrahan ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/bashup-events/generic.nix b/nixpkgs/pkgs/development/libraries/bashup-events/generic.nix
index 78ef4c2f3369..fd4e2cfe9f5f 100644
--- a/nixpkgs/pkgs/development/libraries/bashup-events/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/bashup-events/generic.nix
@@ -1,8 +1,6 @@
 {
   # general
   lib
-, callPackage
-, runCommand
 , resholvePackage
 , bash
 , shellcheck
@@ -46,7 +44,9 @@ resholvePackage rec {
   inherit src;
 
   installPhase = ''
+    runHook preInstall
     install -Dt $out/bin bashup.events
+    runHook postInstall
   '';
 
   inherit doCheck;
@@ -54,9 +54,11 @@ resholvePackage rec {
 
   # check based on https://github.com/bashup/events/blob/master/.dkrc
   checkPhase = ''
+    runHook preCheck
     SHELLCHECK_OPTS='-e SC2016,SC2145' ${shellcheck}/bin/shellcheck ./bashup.events
     ${bash}/bin/bash -n ./bashup.events
     ${bash}/bin/bash ./bashup.events
+    runHook postCheck
   '';
 
   solutions = {
@@ -70,7 +72,11 @@ resholvePackage rec {
 
   inherit doInstallCheck;
   installCheckInputs = [ bash ];
-  installCheckPhase = installCheck "${bash}/bin/bash";
+  installCheckPhase = ''
+    runHook preInstallCheck
+    ${installCheck "${bash}/bin/bash"}
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
     inherit branch;
diff --git a/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix b/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
index dd72b7eb41df..5a9bbd5a49db 100644
--- a/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bctoolbox";
-  version = "4.4.21";
+  version = "4.5.1";
 
   nativeBuildInputs = [ cmake bcunit ];
   buildInputs = [ mbedtls ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0bfswwvvdshaahg4jd2j10f0sci8809s4khajd0m6b059zwc7y25";
+    sha256 = "1mm3v01jz2mp8vajsl45s23gw90zafbgg3br5n5yz03aan08f395";
   };
 
   # Do not build static libraries
diff --git a/nixpkgs/pkgs/development/libraries/bearssl/default.nix b/nixpkgs/pkgs/development/libraries/bearssl/default.nix
new file mode 100644
index 000000000000..de9c182df148
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/bearssl/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchurl }:
+
+let
+  version = "0.6";
+  sha256 = "057zhgy9w4y8z2996r0pq5k2k39lpvmmvz4df8db8qa9f6hvn1b7";
+
+in
+stdenv.mkDerivation {
+  pname = "bearssl";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://www.bearssl.org/bearssl-${version}.tar.gz";
+    inherit sha256;
+  };
+
+  outputs = [ "bin" "lib" "dev" "out" ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    runHook preInstall
+    install -D build/brssl $bin/brssl
+    install -D build/testcrypto $bin/testcrypto
+    install -Dm644 build/libbearssl.so $lib/lib/libbearssl.so
+    install -Dm644 build/libbearssl.a $lib/lib/libbearssl.a
+    install -Dm644 -t $dev/include inc/*.h
+    touch $out
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://www.bearssl.org/";
+    description = "An implementation of the SSL/TLS protocol written in C";
+    longDescription = ''
+      BearSSL is an implementation of the SSL/TLS protocol (RFC 5246)
+      written in C. It aims at offering the following features:
+
+      * Be correct and secure. In particular, insecure protocol versions and
+        choices of algorithms are not supported, by design; cryptographic
+        algorithm implementations are constant-time by default.
+
+      * Be small, both in RAM and code footprint. For instance, a minimal
+        server implementation may fit in about 20 kilobytes of compiled code
+        and 25 kilobytes of RAM.
+
+      * Be highly portable. BearSSL targets not only “big” operating systems
+        like Linux and Windows, but also small embedded systems and even
+        special contexts like bootstrap code.
+
+      * Be feature-rich and extensible. SSL/TLS has many defined cipher
+        suites and extensions; BearSSL should implement most of them, and
+        allow extra algorithm implementations to be added afterwards,
+        possibly from third parties.
+    '';
+    license = lib.licenses.mit;
+    platforms = lib.platforms.all;
+    maintainers = [ lib.maintainers.Profpatsch ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/libraries/belcard/default.nix b/nixpkgs/pkgs/development/libraries/belcard/default.nix
index 03f6e96e187d..36af06dfc55a 100644
--- a/nixpkgs/pkgs/development/libraries/belcard/default.nix
+++ b/nixpkgs/pkgs/development/libraries/belcard/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "belcard";
-  version = "4.4.24";
+  version = "4.5.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "sha256-FTHtd93LOnRek9fqvI+KBkk/+53Bwy9GKCEo0NDtops=";
+    sha256 = "14hkgwr2a9zw44v1s8xscqxa2mwin06jsxpwb3hflh9mp16ymfzv";
   };
 
   buildInputs = [ bctoolbox belr ];
diff --git a/nixpkgs/pkgs/development/libraries/belle-sip/default.nix b/nixpkgs/pkgs/development/libraries/belle-sip/default.nix
index e08fc1ae3ee3..0f8a61bed244 100644
--- a/nixpkgs/pkgs/development/libraries/belle-sip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/belle-sip/default.nix
@@ -2,15 +2,16 @@
 , bctoolbox
 , cmake
 , fetchFromGitLab
+, lib
 , libantlr3c
 , mbedtls
-, lib, stdenv
+, stdenv
 , zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "belle-sip";
-  version = "4.4.21";
+  version = "4.5.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -18,7 +19,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0ylv1jsqnfhw23i6p3lfqqzw48lwii8zwkq3y34q0hhnngn26iiw";
+    sha256 = "0d1wf0jv9lb0s6r49i9gz5nrx8jzpkx558hywll7idma9d0mr61p";
   };
 
   nativeBuildInputs = [ antlr3_4 cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/belr/default.nix b/nixpkgs/pkgs/development/libraries/belr/default.nix
index b38757525abd..252ac3e80edc 100644
--- a/nixpkgs/pkgs/development/libraries/belr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/belr/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "belr";
-  version = "4.3.2";
+  version = "4.5.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1lda0f89vas38xgmc4yvnrigmrbril3dyqxgb5jh1zfx1xczfh1q";
+    sha256 = "0m0s7g8d25nbnafbl76w9v3x7q4jhsypxmz1gg80pj7j34xc2dsd";
   };
 
   buildInputs = [ bctoolbox ];
diff --git a/nixpkgs/pkgs/development/libraries/boca/default.nix b/nixpkgs/pkgs/development/libraries/boca/default.nix
new file mode 100644
index 000000000000..0f848e302408
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/boca/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+
+, expat
+, libcdio
+, libcdio-paranoia
+, libpulseaudio
+, smooth
+, uriparser
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "BoCA";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "enzo1982";
+    repo = "boca";
+    rev = "v${version}";
+    sha256 = "sha256-SP/rVt/8VoeUprwJIIMSIBvoC1Zein3F7MR2tqc2vd0=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    expat
+    libcdio
+    libcdio-paranoia
+    libpulseaudio
+    smooth
+    uriparser
+    zlib
+  ];
+
+  makeFlags = [
+    "prefix=$(out)"
+  ];
+
+  meta = with lib; {
+    description = "A component library used by the fre:ac audio converter";
+    license = licenses.gpl2Plus;
+    homepage = "https://github.com/enzo1982/boca";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/boolstuff/default.nix b/nixpkgs/pkgs/development/libraries/boolstuff/default.nix
index b3d754fb5425..79232107cdd2 100644
--- a/nixpkgs/pkgs/development/libraries/boolstuff/default.nix
+++ b/nixpkgs/pkgs/development/libraries/boolstuff/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
     homepage = "${baseurl}/boolstuff.html";
     license = "GPL";
     maintainers = [ lib.maintainers.marcweber ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/boost-process/default.nix b/nixpkgs/pkgs/development/libraries/boost-process/default.nix
index 97e879809528..148e27faa2b6 100644
--- a/nixpkgs/pkgs/development/libraries/boost-process/default.nix
+++ b/nixpkgs/pkgs/development/libraries/boost-process/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1v9y9pffb2b7p642kp9ic4z6kg42ziizmyvbgrqd1ci0i4gn0831";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   unpackPhase = ''
     mkdir $name
diff --git a/nixpkgs/pkgs/development/libraries/boost/generic.nix b/nixpkgs/pkgs/development/libraries/boost/generic.nix
index abff1268bfae..6158eb875117 100644
--- a/nixpkgs/pkgs/development/libraries/boost/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/boost/generic.nix
@@ -132,7 +132,8 @@ stdenv.mkDerivation {
     license = licenses.boost;
     platforms = platforms.unix ++ platforms.windows;
     badPlatforms = optional (versionOlder version "1.59") "aarch64-linux"
-                 ++ optional ((versionOlder version "1.57") || version == "1.58") "x86_64-darwin";
+                 ++ optional ((versionOlder version "1.57") || version == "1.58") "x86_64-darwin"
+                 ++ optionals (versionOlder version "1.73") lib.platforms.riscv;
     maintainers = with maintainers; [ peti ];
   };
 
@@ -149,6 +150,9 @@ stdenv.mkDerivation {
     cat << EOF >> user-config.jam
     using gcc : cross : ${stdenv.cc.targetPrefix}c++ ;
     EOF
+    # Build b2 with buildPlatform CC/CXX.
+    sed '2i export CC=$CC_FOR_BUILD; export CXX=$CXX_FOR_BUILD' \
+      -i ./tools/build/src/engine/build.sh
   '';
 
   NIX_CFLAGS_LINK = lib.optionalString stdenv.isDarwin
diff --git a/nixpkgs/pkgs/development/libraries/bootil/default.nix b/nixpkgs/pkgs/development/libraries/bootil/default.nix
index f21362962048..20ca175d7b89 100644
--- a/nixpkgs/pkgs/development/libraries/bootil/default.nix
+++ b/nixpkgs/pkgs/development/libraries/bootil/default.nix
@@ -1,18 +1,8 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, premake4 }:
 
 stdenv.mkDerivation {
-  name = "bootil-unstable-2015-12-17";
-
-  meta = {
-    description = "Garry Newman's personal utility library";
-    homepage = "https://github.com/garrynewman/bootil";
-    # License unsure - see https://github.com/garrynewman/bootil/issues/21
-    license = lib.licenses.free;
-    maintainers = [ lib.maintainers.abigailbuccaneer ];
-    platforms = lib.platforms.all;
-    # Build uses `-msse` and `-mfpmath=sse`
-    badPlatforms = [ "aarch64-linux" ];
-  };
+  pname = "bootil";
+  version = "unstable-2015-12-17";
 
   src = fetchFromGitHub {
     owner = "garrynewman";
@@ -21,11 +11,13 @@ stdenv.mkDerivation {
     sha256 = "03wq526r80l2px797hd0n5m224a6jibwipcbsvps6l9h740xabzg";
   };
 
-  patches = [ (fetchpatch {
-    url = "https://github.com/garrynewman/bootil/pull/22.patch";
-    name = "github-pull-request-22.patch";
-    sha256 = "1qf8wkv00pb9w1aa0dl89c8gm4rmzkxfl7hidj4gz0wpy7a24qa2";
-  }) ];
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/garrynewman/bootil/pull/22.patch";
+      name = "github-pull-request-22.patch";
+      sha256 = "1qf8wkv00pb9w1aa0dl89c8gm4rmzkxfl7hidj4gz0wpy7a24qa2";
+    })
+  ];
 
   # Avoid guessing where files end up. Just use current directory.
   postPatch = ''
@@ -42,4 +34,15 @@ stdenv.mkDerivation {
     install -D libbootil_static.a $out/lib/libbootil_static.a
     cp -r include $out
   '';
+
+  meta = with lib; {
+    description = "Garry Newman's personal utility library";
+    homepage = "https://github.com/garrynewman/bootil";
+    # License unsure - see https://github.com/garrynewman/bootil/issues/21
+    license = licenses.free;
+    maintainers = [ maintainers.abigailbuccaneer ];
+    platforms = platforms.all;
+    # Build uses `-msse` and `-mfpmath=sse`
+    badPlatforms = [ "aarch64-linux" ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/libraries/boringssl/default.nix b/nixpkgs/pkgs/development/libraries/boringssl/default.nix
index 7019d39b16c7..aa3eeef48a55 100644
--- a/nixpkgs/pkgs/development/libraries/boringssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/boringssl/default.nix
@@ -15,6 +15,9 @@ stdenv.mkDerivation {
 
   makeFlags = [ "GOCACHE=$(TMPDIR)/go-cache" ];
 
+  # CMAKE_OSX_ARCHITECTURES is set to x86_64 by Nix, but it confuses boringssl on aarch64-linux.
+  cmakeFlags = lib.optionals (stdenv.isLinux) [ "-DCMAKE_OSX_ARCHITECTURES=" ];
+
   installPhase = ''
     mkdir -p $bin/bin $out/include $out/lib
 
diff --git a/nixpkgs/pkgs/development/libraries/botan/2.0.nix b/nixpkgs/pkgs/development/libraries/botan/2.0.nix
index 2346153e2a15..cb40e535b0c3 100644
--- a/nixpkgs/pkgs/development/libraries/botan/2.0.nix
+++ b/nixpkgs/pkgs/development/libraries/botan/2.0.nix
@@ -2,8 +2,8 @@
 
 callPackage ./generic.nix (args // {
   baseVersion = "2.17";
-  revision = "2";
-  sha256 = "0v0yiq0qxcrsn5b34j6bz8i6pds8dih2ds90ylmy1msm5gz7vqpb";
+  revision = "3";
+  sha256 = "121vn1aryk36cpks70kk4c4cfic5g0qs82bf92xap9258ijkn4kr";
   postPatch = ''
     sed -e 's@lang_flags "@&--std=c++11 @' -i src/build-data/cc/{gcc,clang}.txt
   '';
diff --git a/nixpkgs/pkgs/development/libraries/botan/generic.nix b/nixpkgs/pkgs/development/libraries/botan/generic.nix
index 0369f603b8e1..33f9daf7b50f 100644
--- a/nixpkgs/pkgs/development/libraries/botan/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/botan/generic.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python, bzip2, zlib, gmp, openssl, boost
+{ lib, stdenv, fetchurl, python3, bzip2, zlib, gmp, openssl, boost
 # Passed by version specific builders
 , baseVersion, revision, sha256
 , sourceExtension ? "tar.xz"
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   };
   inherit postPatch;
 
-  buildInputs = [ python bzip2 zlib gmp openssl boost ]
+  buildInputs = [ python3 bzip2 zlib gmp openssl boost ]
     ++ lib.optionals stdenv.isDarwin [ CoreServices Security ];
 
   configurePhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/brigand/default.nix b/nixpkgs/pkgs/development/libraries/brigand/default.nix
index eb46ccc8cd7c..3c0778de1d30 100644
--- a/nixpkgs/pkgs/development/libraries/brigand/default.nix
+++ b/nixpkgs/pkgs/development/libraries/brigand/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/edouarda/brigand";
     license = licenses.boost;
     maintainers = with maintainers; [ pmiddend ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/bzrtp/default.nix b/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
index 0adcb327cc4d..b698cf7b404d 100644
--- a/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bzrtp";
-  version = "4.4.9";
+  version = "4.5.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1yjmsbqmymzl4r7sba6w4a2yld8m6hzafr6jf7sj0syhwpnc3zv6";
+    sha256 = "1a500ncgznwha0j3c27ak3p4jh5jm6fnnb531k7c0a4i91745agj";
   };
 
   buildInputs = [ bctoolbox sqlite ];
diff --git a/nixpkgs/pkgs/development/libraries/caf/default.nix b/nixpkgs/pkgs/development/libraries/caf/default.nix
index fdc06df948d7..944b5276c5a9 100644
--- a/nixpkgs/pkgs/development/libraries/caf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/caf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "actor-framework";
-  version = "0.17.6";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "actor-framework";
     repo = "actor-framework";
     rev = version;
-    sha256 = "03pi2jcdvdxncvv3hmzlamask0db1fc5l79k9rgq9agl0swd0mnz";
+    sha256 = "1c3spd6vm1h9qhlk5c4fdwi6nbqx5vwz2zvv6qp0rj1hx6xpq3cx";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -16,14 +16,14 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl ];
 
   cmakeFlags = [
-    "-DCAF_NO_EXAMPLES:BOOL=TRUE"
+    "-DCAF_ENABLE_EXAMPLES:BOOL=OFF"
   ];
 
   doCheck = true;
   checkTarget = "test";
   preCheck = ''
-    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib
-    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD/lib
+    export LD_LIBRARY_PATH=$PWD/libcaf_core:$PWD/libcaf_io
+    export DYLD_LIBRARY_PATH=$PWD/libcaf_core:$PWD/libcaf_io
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch b/nixpkgs/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch
index 47f419727459..8a14fb3a5fab 100644
--- a/nixpkgs/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch
+++ b/nixpkgs/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch
@@ -1,18 +1,7 @@
-From 06b2c6dd6439c01bfb5a4c7b0ec6909c349a66b1 Mon Sep 17 00:00:00 2001
-From: Frederik Rietdijk <freddyrietdijk@fridh.nl>
-Date: Thu, 28 Feb 2019 16:25:49 +0100
-Subject: [PATCH] allow setting paths in makefile
-
-and install headers and libs
----
- Makefile | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index b507e2b0..d21e5c56 100644
---- a/Makefile
-+++ b/Makefile
-@@ -19,13 +19,13 @@ BUILD_DIR = out
+diff -u a/Makefile b/Makefile
+--- a/Makefile	2020-12-27 18:48:53.934098765 +0100
++++ b/Makefile	2020-12-27 18:50:44.022674117 +0100
+@@ -19,13 +19,13 @@
  # http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
  PREFIX ?= /usr/local
  EXEC_PREFIX = $(PREFIX)
@@ -20,24 +9,16 @@ index b507e2b0..d21e5c56 100644
 +BINDIR ?= $(EXEC_PREFIX)/bin
  DATAROOTDIR = $(PREFIX)/share
  DOCDIR = $(DATAROOTDIR)/doc/$(CPROG)
- SYSCONFDIR = $(PREFIX)/etc
+ SYSCONFDIR ?= $(PREFIX)/etc
  HTMLDIR = $(DOCDIR)
 -INCLUDEDIR = $(DESTDIR)$(PREFIX)/include
 -LIBDIR = $(DESTDIR)$(EXEC_PREFIX)/lib
 +INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include
 +LIBDIR ?= $(DESTDIR)$(EXEC_PREFIX)/lib
+ PID_FILE ?= /var/run/$(CPROG).pid
  
  # build tools
- MKDIR = mkdir -p
-@@ -270,17 +270,17 @@ build: $(CPROG) $(CXXPROG)
- unit_test: $(UNIT_TEST_PROG)
- 
- ifeq ($(CAN_INSTALL),1)
--install: $(HTMLDIR)/index.html $(SYSCONFDIR)/civetweb.conf
-+install: install-headers install-slib $(HTMLDIR)/index.html $(SYSCONFDIR)/civetweb.conf
- 	install -d -m 755  "$(DOCDIR)"
- 	install -m 644 *.md "$(DOCDIR)"
- 	install -d -m 755 "$(BINDIR)"
+@@ -337,10 +337,10 @@
  	install -m 755 $(CPROG) "$(BINDIR)/"
  
  install-headers:
@@ -50,6 +31,3 @@ index b507e2b0..d21e5c56 100644
  
  install-slib: lib$(CPROG).so
  	$(eval version=$(shell grep -w "define CIVETWEB_VERSION" include/civetweb.h | sed 's|.*VERSION "\(.*\)"|\1|g'))
--- 
-2.19.2
-
diff --git a/nixpkgs/pkgs/development/libraries/civetweb/default.nix b/nixpkgs/pkgs/development/libraries/civetweb/default.nix
index 8a3474a491f3..fbbfb6ba7380 100644
--- a/nixpkgs/pkgs/development/libraries/civetweb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/civetweb/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "civetweb";
-  version = "1.11";
+  version = "1.13";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1drnid6gs97cp9zpvsxz42yfj8djmgx98fg9p2993x9mpi547vzv";
+    sha256 = "/q7Q1lavIR3i126uI4NsKByHJ6Tp+DSN60R4YxR506U=";
   };
 
   makeFlags = [
@@ -28,6 +28,13 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  installTargets = [
+    "install-headers"
+    "install-lib"
+    "install-slib"
+    "install"
+  ];
+
   preInstall = ''
     mkdir -p $dev/include
     mkdir -p $out/lib
diff --git a/nixpkgs/pkgs/development/libraries/clearsilver/default.nix b/nixpkgs/pkgs/development/libraries/clearsilver/default.nix
index 74d167144a9f..73ffd6c12b23 100644
--- a/nixpkgs/pkgs/development/libraries/clearsilver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/clearsilver/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, python }:
+{ lib, stdenv, fetchurl, fetchpatch, python2 }:
 
 stdenv.mkDerivation rec {
   name = "clearsilver-0.10.5";
@@ -8,10 +8,10 @@ stdenv.mkDerivation rec {
     sha256 = "1046m1dpq3nkgxbis2dr2x7hynmy51n64465q78d7pdgvqwa178y";
   };
 
-  PYTHON_SITE = "$(out)/site-packages";
+  PYTHON_SITE = "${placeholder "out"}/${python2.sitePackages}";
 
   configureFlags = [
-    "--with-python=${python}/bin/python"
+    "--with-python=${python2.interpreter}"
     "--disable-apache"
     "--disable-perl"
     "--disable-ruby"
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   preInstall = ''
     mkdir -p $out
-    mkdir -p $out/site-packages
+    mkdir -p $out/${python2.sitePackages}
   '';
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/clucene-core/default.nix b/nixpkgs/pkgs/development/libraries/clucene-core/default.nix
index 20b0a3b547ca..8d5b389150a4 100644
--- a/nixpkgs/pkgs/development/libraries/clucene-core/default.nix
+++ b/nixpkgs/pkgs/development/libraries/clucene-core/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
       CLucene is a port of the very popular Java Lucene text search engine API.
     '';
     homepage = "http://clucene.sourceforge.net";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = with licenses; [ asl20 lgpl2 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/cm256cc/default.nix b/nixpkgs/pkgs/development/libraries/cm256cc/default.nix
index b40aea70b410..09b0ffba98ba 100644
--- a/nixpkgs/pkgs/development/libraries/cm256cc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cm256cc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cm256cc";
-  version = "1.0.5";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "f4exb";
     repo = "cm256cc";
     rev = "v${version}";
-    sha256 = "0d16y3lhdwr644am4sxqpshpbc3qik6dgr1w2c39vy75w9ff61a0";
+    sha256 = "sha256-T7ZUVVYGdzAialse//MoqWCVNBpbZvzWMAKc0cw7O9k=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/cminpack/default.nix b/nixpkgs/pkgs/development/libraries/cminpack/default.nix
index 39d4849f3801..10d068604369 100644
--- a/nixpkgs/pkgs/development/libraries/cminpack/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cminpack/default.nix
@@ -8,8 +8,12 @@ stdenv.mkDerivation rec {
     sha256 = "17yh695aim508x1kn9zf6g13jxwk3pi3404h5ix4g5lc60hzs1rw";
   };
 
-  patchPhase = ''
-    sed -i s,/usr/local,$out, Makefile
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace '/usr/local' '${placeholder "out"}' \
+      --replace 'gcc' '${stdenv.cc.targetPrefix}cc' \
+      --replace 'ranlib -t' '${stdenv.cc.targetPrefix}ranlib' \
+      --replace 'ranlib' '${stdenv.cc.targetPrefix}ranlib'
   '';
 
   preInstall = ''
@@ -20,7 +24,7 @@ stdenv.mkDerivation rec {
     homepage = "http://devernay.free.fr/hacks/cminpack/cminpack.html";
     license = lib.licenses.bsd3;
     description = "Software for solving nonlinear equations and nonlinear least squares problems";
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/libraries/comedilib/default.nix b/nixpkgs/pkgs/development/libraries/comedilib/default.nix
index fef22dea06ae..d59f4acd8dcc 100644
--- a/nixpkgs/pkgs/development/libraries/comedilib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/comedilib/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , autoreconfHook
 , flex
-, yacc
+, bison
 , xmlto
 , docbook_xsl
 , docbook_xml_dtd_44
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     autoreconfHook
     flex
-    yacc
+    bison
     swig
     xmlto
     docbook_xml_dtd_44
diff --git a/nixpkgs/pkgs/development/libraries/concurrencykit/default.nix b/nixpkgs/pkgs/development/libraries/concurrencykit/default.nix
deleted file mode 100644
index 968c395d701f..000000000000
--- a/nixpkgs/pkgs/development/libraries/concurrencykit/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  pname = "concurrencykit";
-  version = "0.6.0";
-
-  src = fetchurl {
-    url    = "http://concurrencykit.org/releases/ck-${version}.tar.gz";
-    sha256 = "1pv21p7sjwwmbs2xblpy1lqk53r2i212yrqyjlr5dr3rlv87vqnp";
-  };
-
-  #Deleting this line causes "Unknown option --disable-static"
-  configurePhase = "./configure --prefix=$out";
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "A library of safe, high-performance concurrent data structures";
-    homepage    = "http://concurrencykit.org";
-    license     = licenses.bsd2;
-    platforms   = platforms.unix;
-    maintainers = [ maintainers.thoughtpolice ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/coordgenlibs/default.nix b/nixpkgs/pkgs/development/libraries/coordgenlibs/default.nix
index f0f0718ab10c..3121741ca024 100644
--- a/nixpkgs/pkgs/development/libraries/coordgenlibs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/coordgenlibs/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "coordgenlibs";
-  version = "1.4.2";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "schrodinger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18s3y9v6x246hapxy0cy4srnll4qqzqfx003j551l5f27b2ng8fn";
+    sha256 = "sha256-BcDqrOotqRPMnzvfjzbeCf8gT3yQzKihywKrpah1D7w=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/cppcms/default.nix b/nixpkgs/pkgs/development/libraries/cppcms/default.nix
index aceb2d61e388..e0f9ed599123 100644
--- a/nixpkgs/pkgs/development/libraries/cppcms/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cppcms/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, cmake, pcre, zlib, python, openssl }:
+{ lib, stdenv, fetchurl, cmake, pcre, zlib, python2, openssl }:
 
 stdenv.mkDerivation rec {
   pname = "cppcms";
@@ -10,7 +10,9 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ pcre zlib python openssl ];
+  buildInputs = [ pcre zlib python2 openssl ];
+
+  strictDeps = true;
 
   cmakeFlags = [
     "--no-warn-unused-cli"
diff --git a/nixpkgs/pkgs/development/libraries/cpptest/default.nix b/nixpkgs/pkgs/development/libraries/cpptest/default.nix
index 654ad955ae66..17bd39003861 100644
--- a/nixpkgs/pkgs/development/libraries/cpptest/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cpptest/default.nix
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
     description = "Simple C++ unit testing framework";
     maintainers = with maintainers; [ bosu ];
     license = lib.licenses.lgpl3;
-    platforms = with platforms; linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/cpputest/default.nix b/nixpkgs/pkgs/development/libraries/cpputest/default.nix
index 8e3fadc7f0dc..39bed6025232 100644
--- a/nixpkgs/pkgs/development/libraries/cpputest/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cpputest/default.nix
@@ -1,19 +1,19 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  version = "4.0";
   pname = "cpputest";
+  version = "4.0";
 
   src = fetchurl {
     url = "https://github.com/cpputest/cpputest/releases/download/v${version}/${pname}-${version}.tar.gz";
     sha256 = "1xslavlb1974y5xvs8n1j9zkk05dlw8imy4saasrjlmibl895ii1";
   };
 
-  meta = {
-    homepage = "http://cpputest.github.io/";
+  meta = with lib; {
+    homepage = "https://cpputest.github.io/";
     description = "Unit testing and mocking framework for C/C++";
-    platforms = lib.platforms.linux ;
-    license = lib.licenses.bsd3;
-    maintainers = [ lib.maintainers.juliendehos ];
+    platforms = platforms.all;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.juliendehos ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/crcpp/default.nix b/nixpkgs/pkgs/development/libraries/crcpp/default.nix
index 9410b0715006..3b9f4f942acf 100644
--- a/nixpkgs/pkgs/development/libraries/crcpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/crcpp/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "crcpp";
-  version = "1.0.1.0";
+  version = "1.1.0.0";
 
   src = fetchFromGitHub {
     owner = "d-bahr";
     repo = "CRCpp";
     rev = "release-${version}";
-    sha256 = "138w97kfxnv8rcnvggba6fcxgbgq8amikkmy3jhqfn6xzy6zaimh";
+    sha256 = "sha256-jBvh4dHSFChxNPVgkGVHy3TXSExsfwdVUfsA8XB1cn8=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/development/libraries/croaring/default.nix b/nixpkgs/pkgs/development/libraries/croaring/default.nix
index b9c293edfb81..5c1afcbf1365 100644
--- a/nixpkgs/pkgs/development/libraries/croaring/default.nix
+++ b/nixpkgs/pkgs/development/libraries/croaring/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     homepage = "http://roaringbitmap.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ orivej ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/crypto++/default.nix b/nixpkgs/pkgs/development/libraries/crypto++/default.nix
index 0402af92b3b3..fe553cb37b9e 100644
--- a/nixpkgs/pkgs/development/libraries/crypto++/default.nix
+++ b/nixpkgs/pkgs/development/libraries/crypto++/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, nasm, which
+{ lib, stdenv, fetchFromGitHub
 , enableStatic ? stdenv.hostPlatform.isStatic
 , enableShared ? !enableStatic
 }:
@@ -21,6 +21,14 @@ stdenv.mkDerivation rec {
     substituteInPlace GNUmakefile \
         --replace "AR = libtool" "AR = ar" \
         --replace "ARFLAGS = -static -o" "ARFLAGS = -cru"
+
+    # See https://github.com/weidai11/cryptopp/issues/1011
+    substituteInPlace GNUmakefile \
+      --replace "ZOPT = -O0" "ZOPT ="
+  '';
+
+  preConfigure = ''
+    sh TestScripts/configure.sh
   '';
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
diff --git a/nixpkgs/pkgs/development/libraries/cutelyst/default.nix b/nixpkgs/pkgs/development/libraries/cutelyst/default.nix
index 80ec1986f8cf..9f7d020feaf7 100644
--- a/nixpkgs/pkgs/development/libraries/cutelyst/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cutelyst/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cutelyst";
-  version = "2.14.0";
+  version = "2.14.2";
 
   src = fetchFromGitHub {
     owner = "cutelyst";
     repo = "cutelyst";
     rev = "v${version}";
-    sha256 = "sha256-RidUZqDnzRrgW/7LVF+BF01zNcf1cJ/kS7OF/t1Q65c=";
+    sha256 = "sha256-JUffOeUTeaZvEssP5hfSGipeRuQ7FzLF4bOizCFhe5o=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/development/libraries/cyrus-sasl/default.nix b/nixpkgs/pkgs/development/libraries/cyrus-sasl/default.nix
index b1a6401284ac..6e97c61a6a5e 100644
--- a/nixpkgs/pkgs/development/libraries/cyrus-sasl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cyrus-sasl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, openssl, openldap, kerberos, db, gettext
+{ lib, stdenv, fetchurl, openssl, openldap, libkrb5, db, gettext
 , pam, fixDarwinDylibNames, autoreconfHook, enableLdap ? false
 , buildPackages, pruneLibtoolFiles, fetchpatch }:
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pruneLibtoolFiles ]
     ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
   buildInputs =
-    [ openssl db gettext kerberos ]
+    [ openssl db gettext libkrb5 ]
     ++ lib.optional enableLdap openldap
     ++ lib.optional stdenv.isLinux pam;
 
diff --git a/nixpkgs/pkgs/development/libraries/dav1d/default.nix b/nixpkgs/pkgs/development/libraries/dav1d/default.nix
index 2b9357e3ef0f..51df5a9254a5 100644
--- a/nixpkgs/pkgs/development/libraries/dav1d/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dav1d/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitLab
 , meson, ninja, nasm, pkg-config
+, xxHash
 , withTools ? false # "dav1d" binary
 , withExamples ? false, SDL2 # "dav1dplay" binary
 , useVulkan ? false, libplacebo, vulkan-loader, vulkan-headers
@@ -9,19 +10,20 @@ assert useVulkan -> withExamples;
 
 stdenv.mkDerivation rec {
   pname = "dav1d";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = version;
-    sha256 = "1820fpmmq1vxjzjmza6ydk4fgxipb8gmcc5skybki64qn7410v7x";
+    sha256 = "0plmnxpz66yv3nqv1kgbyyfnwfqi9dqs0zbsdj488i6464a1m6si";
   };
 
   nativeBuildInputs = [ meson ninja nasm pkg-config ];
   # TODO: doxygen (currently only HTML and not build by default).
-  buildInputs = lib.optional withExamples SDL2
+  buildInputs = [ xxHash ]
+    ++ lib.optional withExamples SDL2
     ++ lib.optionals useVulkan [ libplacebo vulkan-loader vulkan-headers ];
 
   mesonFlags= [
diff --git a/nixpkgs/pkgs/development/libraries/dlib/default.nix b/nixpkgs/pkgs/development/libraries/dlib/default.nix
index fa7d70d52131..aadd61370b1f 100644
--- a/nixpkgs/pkgs/development/libraries/dlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dlib/default.nix
@@ -2,19 +2,20 @@
 , guiSupport ? false, libX11
 
   # see http://dlib.net/compile.html
+, sse4Support ? stdenv.hostPlatform.sse4_1Support
 , avxSupport ? stdenv.hostPlatform.avxSupport
 , cudaSupport ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "dlib";
-  version = "19.21";
+  version = "19.22";
 
   src = fetchFromGitHub {
     owner = "davisking";
     repo = "dlib";
     rev ="v${version}";
-    sha256 = "00jwklnl21l3hlvb0bjc6rl3hgi88vxb41dsn4m0kh436c9v0rl3";
+    sha256 = "sha256-cEbw01w4KgSG3JTvTE/qruo7i4/L++m02HW+0VNmSSQ=";
   };
 
   postPatch = ''
@@ -23,6 +24,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DUSE_DLIB_USE_CUDA=${if cudaSupport then "1" else "0"}"
+    "-DUSE_SSE4_INSTRUCTIONS=${if sse4Support then "yes" else "no"}"
     "-DUSE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}" ];
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/docopt_cpp/default.nix b/nixpkgs/pkgs/development/libraries/docopt_cpp/default.nix
index f9456b8acac4..3de84b684e52 100644
--- a/nixpkgs/pkgs/development/libraries/docopt_cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/docopt_cpp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python }:
+{ lib, stdenv, fetchFromGitHub, cmake, python2 }:
 
 stdenv.mkDerivation rec {
   version = "0.6.3";
@@ -11,10 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "0cz3vv7g5snfbsqcf3q8bmd6kv5qp84gj3avwkn4vl00krw13bl7";
   };
 
-  nativeBuildInputs = [ cmake python ];
+  nativeBuildInputs = [ cmake python2 ];
 
   cmakeFlags = ["-DWITH_TESTS=ON"];
 
+  strictDeps = true;
+
   doCheck = true;
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/dxflib/default.nix b/nixpkgs/pkgs/development/libraries/dxflib/default.nix
index b2cd97398c61..09f2ad3ccad6 100644
--- a/nixpkgs/pkgs/development/libraries/dxflib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dxflib/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     qmake
   ];
+  dontWrapQtApps = true;
   preConfigure = ''
     sed -i 's/CONFIG += staticlib/CONFIG += shared/' dxflib.pro
   '';
diff --git a/nixpkgs/pkgs/development/libraries/eclib/default.nix b/nixpkgs/pkgs/development/libraries/eclib/default.nix
index 4709441a1011..a8697207ed1a 100644
--- a/nixpkgs/pkgs/development/libraries/eclib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/eclib/default.nix
@@ -14,7 +14,7 @@ assert withFlint -> flint != null;
 
 stdenv.mkDerivation rec {
   pname = "eclib";
-  version = "20190909"; # upgrade might break the sage interface
+  version = "20210223"; # upgrade might break the sage interface
   # sage tests to run:
   # src/sage/interfaces/mwrank.py
   # src/sage/libs/eclib
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "JohnCremona";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0y1vdi4120gdw56gg2dn3wh625yr9wpyk3wpbsd25w4lv83qq5da";
+    sha256 = "sha256-xnSw5cdg4PLa0GT/blCYDz/IG5aj+HG2NHSlyCiH9g0=";
   };
   buildInputs = [
     pari
diff --git a/nixpkgs/pkgs/development/libraries/egl-wayland/default.nix b/nixpkgs/pkgs/development/libraries/egl-wayland/default.nix
index be22e24044d6..b3654087ffd0 100644
--- a/nixpkgs/pkgs/development/libraries/egl-wayland/default.nix
+++ b/nixpkgs/pkgs/development/libraries/egl-wayland/default.nix
@@ -40,7 +40,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "egl-wayland";
-  version = "1.1.4";
+  version = "1.1.6";
 
   outputs = [ "out" "dev" ];
 
@@ -48,13 +48,9 @@ in stdenv.mkDerivation rec {
     owner = "Nvidia";
     repo = pname;
     rev = version;
-    sha256 = "0wvamjcfycd7rgk7v14g2rin55xin9rfkxmivyay3cm08vnl7y1d";
+    sha256 = "1n9lg8hpjgxlf7dpddkjhbslsfd0symla2wk6jjmnl9n9jv2gmzk";
   };
 
-  # Add missing include
-  # https://github.com/NVIDIA/egl-wayland/pull/24
-  patches = [ ./eglmesaext.patch ];
-
   nativeBuildInputs = [
     meson
     ninja
@@ -69,6 +65,13 @@ in stdenv.mkDerivation rec {
     wayland
   ];
 
+  postFixup = ''
+    # Doubled prefix in pc file after postbuild hook replaces includedir prefix variable with dev output path
+    substituteInPlace $dev/lib/pkgconfig/wayland-eglstream.pc \
+      --replace "=$dev/$dev" "=$dev" \
+      --replace "Requires:" "Requires.private:"
+  '';
+
   meta = with lib; {
     description = "The EGLStream-based Wayland external platform";
     homepage = "https://github.com/NVIDIA/egl-wayland/";
diff --git a/nixpkgs/pkgs/development/libraries/egl-wayland/eglmesaext.patch b/nixpkgs/pkgs/development/libraries/egl-wayland/eglmesaext.patch
deleted file mode 100644
index 9384ecff9b0f..000000000000
--- a/nixpkgs/pkgs/development/libraries/egl-wayland/eglmesaext.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/wayland-eglsurface.c b/src/wayland-eglsurface.c
-index 01c9cb3..45736b0 100644
---- a/src/wayland-eglsurface.c
-+++ b/src/wayland-eglsurface.c
-@@ -37,6 +37,7 @@
- #include <sys/types.h>
- #include <netinet/in.h>
- #include <fcntl.h>
-+#include <EGL/eglmesaext.h>
- 
- #define WL_EGL_WINDOW_DESTROY_CALLBACK_SINCE 3
- 
diff --git a/nixpkgs/pkgs/development/libraries/entt/default.nix b/nixpkgs/pkgs/development/libraries/entt/default.nix
index 955dd2eeb369..8efc9c05ca34 100644
--- a/nixpkgs/pkgs/development/libraries/entt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/entt/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 stdenv.mkDerivation rec {
   pname = "entt";
-  version = "3.5.2";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "skypjack";
     repo = "entt";
     rev = "v${version}";
-    sha256 = "1p09p1wn8cbj17z83iyyy2498wy1gzyi2mmqi5i2cxglslbm6hy0";
+    sha256 = "sha256-qDjt74nijZhXW7F7GW0CSv6JWOc/kXN7ndbkwSO0+1s=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/ethash/default.nix b/nixpkgs/pkgs/development/libraries/ethash/default.nix
index 0a10fa3c48c1..2c9eb3ca4444 100644
--- a/nixpkgs/pkgs/development/libraries/ethash/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ethash/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "PoW algorithm for Ethereum 1.0 based on Dagger-Hashimoto";
     homepage = "https://github.com/ethereum/ethash";
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ nand0p ];
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix b/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix
index 916ea2772e19..d861d25e67a7 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix
@@ -99,7 +99,7 @@
 , libxcbshapeExtlib ? true # X11 grabbing shape rendering
 , libXv ? null # Xlib support
 , libXext ? null # Xlib support
-, lzma ? null # xz-utils
+, xz ? null # xz-utils
 , nvenc ? !stdenv.isDarwin && !stdenv.isAarch64, nv-codec-headers ? null # NVIDIA NVENC support
 , openal ? null # OpenAL 1.1 capture support
 #, opencl ? null # OpenCL code
@@ -246,11 +246,6 @@ stdenv.mkDerivation rec {
 
   # this should go away in the next release
   patches = [
-    (fetchpatch {
-      url = "https://git.videolan.org/?p=ffmpeg.git;a=patch;h=7c59e1b0f285cd7c7b35fcd71f49c5fd52cf9315";
-      sha256 = "sha256-dqpmpDFETTuWHWolMoLaubU4BeDEuQaBNA0wmzL1f8o=";
-      name = "fix_libsrt.patch";
-    })
     # Patch ffmpeg for svt-av1 until version 4.4
     (fetchpatch {
       url = "https://raw.githubusercontent.com/AOMediaCodec/SVT-AV1/v0.8.4/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-av1.patch";
@@ -386,7 +381,7 @@ stdenv.mkDerivation rec {
     (enableFeature libxcbshmExtlib "libxcb-shm")
     (enableFeature libxcbxfixesExtlib "libxcb-xfixes")
     (enableFeature libxcbshapeExtlib "libxcb-shape")
-    (enableFeature (lzma != null) "lzma")
+    (enableFeature (xz != null) "lzma")
     (enableFeature nvenc "nvenc")
     (enableFeature (openal != null) "openal")
     #(enableFeature opencl "opencl")
@@ -436,7 +431,7 @@ stdenv.mkDerivation rec {
     bzip2 celt dav1d fontconfig freetype frei0r fribidi game-music-emu gnutls gsm
     libjack2 ladspaH lame libaom libass libbluray libbs2b libcaca libdc1394 libmodplug libmysofa
     libogg libopus librsvg libssh libtheora libvdpau libvorbis libvpx libwebp libX11
-    libxcb libXv libXext lzma openal openjpeg libpulseaudio rav1e svt-av1 rtmpdump opencore-amr
+    libxcb libXv libXext xz openal openjpeg libpulseaudio rav1e svt-av1 rtmpdump opencore-amr
     samba SDL2 soxr speex srt vid-stab vo-amrwbenc wavpack x264 x265 xavs xvidcore
     zeromq4 zlib
   ] ++ optionals openglExtlib [ libGL libGLU ]
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
index 2cc409fc0370..95207b5386f8 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
@@ -5,8 +5,8 @@
 }@args:
 
 callPackage ./generic.nix (rec {
-  version = "4.3.1";
+  version = "4.3.2";
   branch = "4.3";
-  sha256 = "1nghcpm2r9ir2h6xpqfn9381jq6aiwlkwlnyplxywvkbjiisr97l";
+  sha256 = "0flik4y7c5kchj65p3p908mk1dsncqgzjdvzysjs12rmf1m6sfmb";
   darwinFrameworks = [ Cocoa CoreMedia VideoToolbox ];
 } // args)
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
index 99a084703967..82f1a8bf5646 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, buildPackages, fetchurl, pkg-config, addOpenGLRunpath, perl, texinfo, yasm
 , alsaLib, bzip2, fontconfig, freetype, gnutls, libiconv, lame, libass, libogg
-, libssh, libtheora, libva, libdrm, libvorbis, libvpx, lzma, libpulseaudio, soxr
+, libssh, libtheora, libva, libdrm, libvorbis, libvpx, xz, libpulseaudio, soxr
 , x264, x265, xvidcore, zlib, libopus, speex, nv-codec-headers, dav1d
 , openglSupport ? false, libGLU ? null, libGL ? null
 , libmfxSupport ? false, intel-media-sdk ? null
@@ -171,7 +171,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bzip2 fontconfig freetype gnutls libiconv lame libass libogg libssh libtheora
-    libvorbis lzma soxr x264 x265 xvidcore zlib libopus speex nv-codec-headers
+    libvorbis xz soxr x264 x265 xvidcore zlib libopus speex nv-codec-headers
   ] ++ optionals openglSupport [ libGL libGLU ]
     ++ optional libmfxSupport intel-media-sdk
     ++ optional libaomSupport libaom
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/default.nix b/nixpkgs/pkgs/development/libraries/flatpak/default.nix
index 36c946e06f7b..97410fda0d31 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/default.nix
+++ b/nixpkgs/pkgs/development/libraries/flatpak/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchurl
+, fetchpatch
 , autoreconfHook
-, docbook_xml_dtd_412
 , docbook_xml_dtd_45
 , docbook-xsl-nons
 , which
@@ -14,7 +14,7 @@
 , xmlto
 , appstream-glib
 , substituteAll
-, yacc
+, bison
 , xdg-dbus-proxy
 , p11-kit
 , bubblewrap
@@ -36,7 +36,7 @@
 , fuse
 , nixosTests
 , libsoup
-, lzma
+, xz
 , zstd
 , ostree
 , polkit
@@ -53,14 +53,14 @@
 
 stdenv.mkDerivation rec {
   pname = "flatpak";
-  version = "1.10.1";
+  version = "1.10.2";
 
   # TODO: split out lib once we figure out what to do with triggerdir
   outputs = [ "out" "dev" "man" "doc" "devdoc" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1dywvfpmszvp2wy5hvpzy8z6gz2gzmi9p302njp52p9vpx14ydf1";
+    sha256 = "sha256-2xUnOdBy+P8pnk6IjYljobRTjaexDguGUlvkOPLh3eQ=";
   };
 
   patches = [
@@ -94,6 +94,15 @@ stdenv.mkDerivation rec {
     # https://github.com/NixOS/nixpkgs/issues/43581
     ./use-flatpak-from-path.patch
 
+    # Hardcode flatpak binary path for flatpak-spawn.
+    # When calling the portal’s Spawn command with FLATPAK_SPAWN_FLAGS_CLEAR_ENV flag,
+    # it will clear environment, including PATH, making the flatpak run fail.
+    # https://github.com/flatpak/flatpak/pull/4174
+    (fetchpatch {
+      url = "https://github.com/flatpak/flatpak/commit/495449daf6d3c072519a36c9e4bc6cc1da4d31db.patch";
+      sha256 = "gOX/sGupAE7Yg3MVrMhFXzWHpFn+izVyjtkuPzIckuY=";
+    })
+
     # Nix environment hacks should not leak into the apps.
     # https://github.com/NixOS/nixpkgs/issues/53441
     ./unset-env-vars.patch
@@ -105,9 +114,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     autoreconfHook
     libxml2
-    # Remove 4.1.2 again once the following is merged
-    # https://github.com/flatpak/flatpak/pull/4102
-    docbook_xml_dtd_412
     docbook_xml_dtd_45
     docbook-xsl-nons
     which
@@ -118,7 +124,7 @@ stdenv.mkDerivation rec {
     pkg-config
     xmlto
     appstream-glib
-    yacc
+    bison
     wrapGAppsNoGuiHook
   ];
 
@@ -133,7 +139,7 @@ stdenv.mkDerivation rec {
     libcap
     libseccomp
     libsoup
-    lzma
+    xz
     zstd
     polkit
     python3
diff --git a/nixpkgs/pkgs/development/libraries/flite/default.nix b/nixpkgs/pkgs/development/libraries/flite/default.nix
index 24927fe853ba..a80c317b06ee 100644
--- a/nixpkgs/pkgs/development/libraries/flite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/flite/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, alsaLib }:
+{ lib, stdenv, fetchFromGitHub, alsaLib, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "flite";
@@ -13,6 +13,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = lib.optionals stdenv.isLinux [ alsaLib ];
 
+  # https://github.com/festvox/flite/pull/60.
+  # Replaces `ar` with `$(AR)` in config/common_make_rules.
+  # Improves cross-compilation compatibility.
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/festvox/flite/commit/54c65164840777326bbb83517568e38a128122ef.patch";
+      sha256 = "sha256-hvKzdX7adiqd9D+9DbnfNdqEULg1Hhqe1xElYxNM1B8=";
+    })
+  ];
+
   configureFlags = [
     "--enable-shared"
   ] ++ lib.optionals stdenv.isLinux [ "--with-audio=alsa" ];
diff --git a/nixpkgs/pkgs/development/libraries/fmt/default.nix b/nixpkgs/pkgs/development/libraries/fmt/default.nix
index 0d2983b1f846..474c990d5177 100644
--- a/nixpkgs/pkgs/development/libraries/fmt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fmt/default.nix
@@ -37,7 +37,7 @@ let
         homepage = "http://fmtlib.net/";
         downloadPage = "https://github.com/fmtlib/fmt/";
         maintainers = [ maintainers.jdehaas ];
-        license = licenses.bsd2;
+        license = licenses.mit;
         platforms = platforms.all;
       };
     };
diff --git a/nixpkgs/pkgs/development/libraries/folks/default.nix b/nixpkgs/pkgs/development/libraries/folks/default.nix
index 955b7e0d16f9..c930adbe9b2d 100644
--- a/nixpkgs/pkgs/development/libraries/folks/default.nix
+++ b/nixpkgs/pkgs/development/libraries/folks/default.nix
@@ -1,6 +1,7 @@
 { fetchurl
 , lib, stdenv
 , pkg-config
+, fetchpatch
 , meson
 , ninja
 , glib
@@ -42,6 +43,15 @@ stdenv.mkDerivation rec {
     sha256 = "1f9b52vmwnq7s51vj26w2618dn2ph5g12ibbkbyk6fvxcgd7iryn";
   };
 
+  patches = [
+    # Fix tests with e-d-s linked with libphonenumber support
+    # https://gitlab.gnome.org/GNOME/folks/merge_requests/40
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/folks/commit/6d443480a137f6a6ff345b21bf3cb31066eefbcd.patch";
+      sha256 = "D/Y2g12TT0qrcH+iJ2umu4Hmp0EJ3Hoedh0H3aWI+HY=";
+    })
+  ];
+
   mesonFlags = [
     "-Ddocs=true"
     "-Dtelepathy_backend=${lib.boolToString telepathySupport}"
@@ -92,6 +102,13 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  # Prevents e-d-s add-contacts-stress-test from timing out
+  checkPhase = ''
+    runHook preCheck
+    meson test --timeout-multiplier 4
+    runHook postCheck
+  '';
+
   postPatch = ''
     chmod +x meson_post_install.py
     patchShebangs meson_post_install.py
diff --git a/nixpkgs/pkgs/development/libraries/folly/default.nix b/nixpkgs/pkgs/development/libraries/folly/default.nix
index 063678cbccc1..212b656adda5 100644
--- a/nixpkgs/pkgs/development/libraries/folly/default.nix
+++ b/nixpkgs/pkgs/development/libraries/folly/default.nix
@@ -8,7 +8,7 @@
 , gflags
 , libiberty
 , lz4
-, lzma
+, xz
 , zlib
 , jemalloc
 , openssl
@@ -43,7 +43,7 @@ stdenv.mkDerivation (rec {
     libiberty
     openssl
     lz4
-    lzma
+    xz
     zlib
     jemalloc
     libunwind
diff --git a/nixpkgs/pkgs/development/libraries/freetts/default.nix b/nixpkgs/pkgs/development/libraries/freetts/default.nix
index f7a605ea872b..dc5f43860305 100644
--- a/nixpkgs/pkgs/development/libraries/freetts/default.nix
+++ b/nixpkgs/pkgs/development/libraries/freetts/default.nix
@@ -6,7 +6,8 @@ stdenv.mkDerivation {
     url = "mirror://sourceforge/freetts/freetts-1.2.2-src.zip";
     sha256 = "0mnikqhpf4f4jdr0irmibr8yy0dnffx1i257y22iamxi7a6by2r7";
   };
-  buildInputs = [ apacheAnt unzip sharutils jdk ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ apacheAnt sharutils jdk ];
   unpackPhase = ''
     unzip $src -x META-INF/*
   '';
diff --git a/nixpkgs/pkgs/development/libraries/freetype/default.nix b/nixpkgs/pkgs/development/libraries/freetype/default.nix
index 7b5fff29a286..adda15696e8a 100644
--- a/nixpkgs/pkgs/development/libraries/freetype/default.nix
+++ b/nixpkgs/pkgs/development/libraries/freetype/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl
-, buildPackages
+, buildPackages, pkgsHostHost
 , pkg-config, which, makeWrapper
 , zlib, bzip2, libpng, gnumake, glib
 
@@ -64,7 +64,7 @@ in stdenv.mkDerivation rec {
 
   postInstall = glib.flattenInclude + ''
     substituteInPlace $dev/bin/freetype-config \
-      --replace ${buildPackages.pkg-config} ${pkg-config}
+      --replace ${buildPackages.pkg-config} ${pkgsHostHost.pkg-config}
 
     wrapProgram "$dev/bin/freetype-config" \
       --set PKG_CONFIG_PATH "$PKG_CONFIG_PATH:$dev/lib/pkgconfig"
diff --git a/nixpkgs/pkgs/development/libraries/ftgl/default.nix b/nixpkgs/pkgs/development/libraries/ftgl/default.nix
index c3fd6ffb9407..5588e27356f0 100644
--- a/nixpkgs/pkgs/development/libraries/ftgl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ftgl/default.nix
@@ -1,40 +1,47 @@
-{ lib, stdenv, fetchurl, freetype, libGL, libGLU, OpenGL }:
-
-let
-  name = "ftgl-2.1.3-rc5";
-in
-stdenv.mkDerivation {
-  inherit name;
+{ lib
+, stdenv
+, fetchurl
+, freetype
+, libGL
+, libGLU
+, OpenGL
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ftgl";
+  version = "2.1.3-rc5";
 
   src = fetchurl {
-    url = "mirror://sourceforge/ftgl/${name}.tar.gz";
-    sha256 = "0nsn4s6vnv5xcgxcw6q031amvh2zfj2smy1r5mbnjj2548hxcn2l";
+    url = "mirror://sourceforge/${pname}-${version}.tar.gz";
+    hash = "sha256-VFjWISJFSGlXLTn4qoV0X8BdVRgAG876Y71su40mVls=";
   };
 
-  buildInputs = [ freetype ]
-    ++ (if stdenv.isDarwin then
-      [ OpenGL ]
-    else
-      [ libGL libGLU ])
-    ;
+  buildInputs = [
+    freetype
+  ] ++ (if stdenv.isDarwin then [
+    OpenGL
+  ] else [
+    libGL
+    libGLU
+  ]);
 
-  configureFlags = [ "--with-ft-prefix=${lib.getDev freetype}" ];
+  configureFlags = [
+    "--with-ft-prefix=${lib.getDev freetype}"
+  ];
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with lib; {
     homepage = "https://sourceforge.net/apps/mediawiki/ftgl/";
     description = "Font rendering library for OpenGL applications";
-    license = lib.licenses.gpl3Plus;
-
     longDescription = ''
-      FTGL is a free cross-platform Open Source C++ library that uses
-      Freetype2 to simplify rendering fonts in OpenGL applications. FTGL
-      supports bitmaps, pixmaps, texture maps, outlines, polygon mesh,
-      and extruded polygon rendering modes.
+      FTGL is a free cross-platform Open Source C++ library that uses Freetype2
+      to simplify rendering fonts in OpenGL applications. FTGL supports bitmaps,
+      pixmaps, texture maps, outlines, polygon mesh, and extruded polygon
+      rendering modes.
     '';
-
-    platforms = lib.platforms.unix;
-    maintainers = [];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/g2o/default.nix b/nixpkgs/pkgs/development/libraries/g2o/default.nix
index 675d994cf0e6..0536ec95c6ff 100644
--- a/nixpkgs/pkgs/development/libraries/g2o/default.nix
+++ b/nixpkgs/pkgs/development/libraries/g2o/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, eigen, suitesparse, libGLU
-, qtbase, libqglviewer, makeWrapper }:
+{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, eigen, suitesparse, blas
+, lapack, libGLU, qtbase, libqglviewer, makeWrapper }:
 
 mkDerivation rec {
   pname = "g2o";
-  version = "20200410";
+  version = "20201223";
 
   src = fetchFromGitHub {
     owner = "RainerKuemmerle";
     repo = pname;
     rev = "${version}_git";
-    sha256 = "11rgj2g9mmwajlr69pjkjvxjyn88afa0r4bchjyvmxswjccizlg2";
+    sha256 = "sha256-Ik6uBz4Z4rc5+mPNdT8vlNZSBom4Tvt8Y6myBC/s0m8=";
   };
 
   # Removes a reference to gcc that is only used in a debug message
@@ -18,11 +18,13 @@ mkDerivation rec {
   separateDebugInfo = true;
 
   nativeBuildInputs = [ cmake makeWrapper ];
-  buildInputs = [ eigen suitesparse libGLU qtbase libqglviewer ];
+  buildInputs = [ eigen suitesparse blas lapack libGLU qtbase libqglviewer ];
 
   # Silence noisy warning
   CXXFLAGS = "-Wno-deprecated-copy";
 
+  dontWrapQtApps = true;
+
   cmakeFlags = [
     # Detection script is broken
     "-DQGLVIEWER_INCLUDE_DIR=${libqglviewer}/include/QGLViewer"
@@ -41,5 +43,7 @@ mkDerivation rec {
     license = with licenses; [ bsd3 lgpl3 gpl3 ];
     maintainers = with maintainers; [ lopsided98 ];
     platforms = platforms.all;
+    # fatal error: 'qglviewer.h' file not found
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gaia/default.nix b/nixpkgs/pkgs/development/libraries/gaia/default.nix
index 088354aecb28..47926e2ec0be 100644
--- a/nixpkgs/pkgs/development/libraries/gaia/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gaia/default.nix
@@ -9,7 +9,7 @@
 , wafHook
 , makeWrapper
 , qt4
-, pythonPackages
+, pythonPackages ? null
 , pythonSupport ? false
 # Default to false since it breaks the build, see https://github.com/MTG/gaia/issues/11
 , stlfacadeSupport ? false
diff --git a/nixpkgs/pkgs/development/libraries/galario/default.nix b/nixpkgs/pkgs/development/libraries/galario/default.nix
index 888f26f2da7d..4e28f84bacdb 100644
--- a/nixpkgs/pkgs/development/libraries/galario/default.nix
+++ b/nixpkgs/pkgs/development/libraries/galario/default.nix
@@ -5,7 +5,7 @@
 , fftw
 , fftwFloat
 , enablePython ? false
-, pythonPackages
+, pythonPackages ? null
 , llvmPackages
 }:
 let
diff --git a/nixpkgs/pkgs/development/libraries/ganv/default.nix b/nixpkgs/pkgs/development/libraries/ganv/default.nix
index bf6c030589b9..d53206ca667b 100644
--- a/nixpkgs/pkgs/development/libraries/ganv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ganv/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkg-config, python, wafHook }:
+{ lib, stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkg-config, python3, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "ganv";
@@ -11,8 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "01znnalirbqxpz62fbw2c14c8xn117jc92xv6dhb3hln92k9x37f";
   };
 
-  nativeBuildInputs = [ pkg-config wafHook ];
-  buildInputs = [ graphviz gtk2 gtkmm2 python ];
+  nativeBuildInputs = [ pkg-config wafHook python3 gtk2 ];
+  buildInputs = [ graphviz gtkmm2 ];
+
+  strictDeps = true;
 
   meta = with lib; {
     description = "An interactive Gtk canvas widget for graph-based interfaces";
diff --git a/nixpkgs/pkgs/development/libraries/gcr/default.nix b/nixpkgs/pkgs/development/libraries/gcr/default.nix
index 8add81e27969..92c0ec293cb2 100644
--- a/nixpkgs/pkgs/development/libraries/gcr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gcr/default.nix
@@ -22,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gcr";
-  version = "3.38.0";
+  version = "3.38.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1q97pba4bzjndm1vlvicyv8mrl0n589qsw71dp8jrz2payvcfk56";
+    sha256 = "F/yvnEqTpl+xxyuCZDuxAsEzRAhGh9WIbqZjE4aNnsk=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/gdal/2.4.nix b/nixpkgs/pkgs/development/libraries/gdal/2.4.nix
index 5df29b38a263..70ae3b2b12aa 100644
--- a/nixpkgs/pkgs/development/libraries/gdal/2.4.nix
+++ b/nixpkgs/pkgs/development/libraries/gdal/2.4.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, unzip, libjpeg, libtiff, zlib
-, postgresql, libmysqlclient, libgeotiff, pythonPackages, proj, geos, openssl
+, postgresql, libmysqlclient, libgeotiff, python2Packages, proj, geos, openssl
 , libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat
 , libiconv, libxml2
 , netcdfSupport ? true, netcdf, hdf5, curl
@@ -16,9 +16,10 @@ stdenv.mkDerivation rec {
     sha256 = "1n6w0m2603q9cldlz0wyscp75ci561dipc36jqbf3mjmylybv0x3";
   };
 
-  buildInputs = [ unzip libjpeg libtiff libgeotiff libpng proj openssl sqlite
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ libjpeg libtiff libgeotiff libpng proj openssl sqlite
     libspatialite poppler hdf4 qhull giflib expat libxml2 proj ]
-  ++ (with pythonPackages; [ python numpy wrapPython ])
+  ++ (with python2Packages; [ python numpy wrapPython ])
   ++ lib.optional stdenv.isDarwin libiconv
   ++ lib.optionals netcdfSupport [ netcdf hdf5 curl ];
 
diff --git a/nixpkgs/pkgs/development/libraries/gdal/default.nix b/nixpkgs/pkgs/development/libraries/gdal/default.nix
index 8c02919126ba..15fc84895fb5 100644
--- a/nixpkgs/pkgs/development/libraries/gdal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gdal/default.nix
@@ -7,22 +7,20 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "gdal";
-  # broken with poppler 20.08, however, can't fetch patches cleanly
-  version = "3.1.2.post2020-08-26";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "gdal";
-    rev = "9a8df672204a8b3b33c36e09a32f747e21166fe9";
-    sha256 = "1n25jma4x1l7slwxk702q77r84vxr90fyn4c3zpkr07q1b8wqql9";
+    rev = "a33784291d19015217ea2604988e53d448e14a07";
+    sha256 = "sha256-ynCju3chDfYtyrGmUE0n3kkaH2Mpm+/DDHHxCahjhSQ=";
   };
 
   sourceRoot = "source/gdal";
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  nativeBuildInputs = [ autoreconfHook pkg-config unzip ];
 
   buildInputs = [
-    unzip
     libjpeg
     libtiff
     libpng
diff --git a/nixpkgs/pkgs/development/libraries/gdal/gdal-1_11.nix b/nixpkgs/pkgs/development/libraries/gdal/gdal-1_11.nix
deleted file mode 100644
index 92d17452c941..000000000000
--- a/nixpkgs/pkgs/development/libraries/gdal/gdal-1_11.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ lib, stdenv, fetchurl, unzip, libjpeg, libtiff, zlib
-, postgresql, mysql57, libgeotiff, python, pythonPackages, proj, geos, openssl
-, libpng }:
-
-stdenv.mkDerivation rec {
-  pname = "gdal";
-  version = "1.11.5";
-
-  src = fetchurl {
-    url = "https://download.osgeo.org/gdal/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0hphxzvy23v3vqxx1y22hhhg4cypihrb8555y12nb4mrhzlw7zfl";
-  };
-
-  buildInputs = [ unzip libjpeg libtiff libgeotiff libpng python pythonPackages.numpy proj openssl ];
-
-  patches = [
-    # This ensures that the python package is installed into gdal's prefix,
-    # rather than trying to install into python's prefix.
-    ./python.patch
-  ];
-
-  hardeningDisable = [ "format" "fortify" ];
-
-  # Don't use optimization for gcc >= 4.3. That's said to be causing segfaults.
-  # Unset CC and CXX as they confuse libtool.
-  preConfigure = "export CFLAGS=-O0 CXXFLAGS=-O0; unset CC CXX";
-
-  configureFlags = [
-    "--with-jpeg=${libjpeg.dev}"
-    "--with-libtiff=${libtiff.dev}" # optional (without largetiff support)
-    "--with-libpng=${libpng.dev}"   # optional
-    "--with-libz=${zlib.dev}"       # optional
-
-    "--with-pg=${postgresql}/bin/pg_config"
-    "--with-mysql=${mysql57.connector-c}/bin/mysql_config"
-    "--with-geotiff=${libgeotiff.dev}"
-    "--with-python"               # optional
-    "--with-static-proj4=${proj}" # optional
-    "--with-geos=${geos}/bin/geos-config"# optional
-  ];
-
-  # Allow use of old proj_api.h
-  NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1";
-
-  # Prevent this:
-  #
-  #   Checking .pth file support in /nix/store/xkrmb8xnvqxzjwsdmasqmsdh1a5y2y99-gdal-1.11.2/lib/python2.7/site-packages/
-  #   /nix/store/pbi1lgank10fy0xpjckbdpgacqw34dsz-python-2.7.9/bin/python -E -c pass
-  #   TEST FAILED: /nix/store/xkrmb8xnvqxzjwsdmasqmsdh1a5y2y99-gdal-1.11.2/lib/python2.7/site-packages/ does NOT support .pth files
-  #   error: bad install directory or PYTHONPATH
-  preBuild = ''
-    pythonInstallDir=$out/lib/${python.libPrefix}/site-packages
-    mkdir -p $pythonInstallDir
-    export PYTHONPATH=''${PYTHONPATH:+''${PYTHONPATH}:}$pythonInstallDir
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "Translator library for raster geospatial data formats";
-    homepage = "https://www.gdal.org/";
-    license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.marcweber ];
-    platforms = with lib.platforms; linux ++ darwin;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/gdal/python.patch b/nixpkgs/pkgs/development/libraries/gdal/python.patch
deleted file mode 100644
index 50504c62eddb..000000000000
--- a/nixpkgs/pkgs/development/libraries/gdal/python.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/swig/python/GNUmakefile.old b/swig/python/GNUmakefile
-index b4d5e90..2160b83 100644
---- a/swig/python/GNUmakefile
-+++ b/swig/python/GNUmakefile
-@@ -67,11 +67,7 @@ egg:
- 	
- install:
- 
--ifeq ($(PY_HAVE_SETUPTOOLS),1)
--	$(PYTHON) setup.py install 
--else
- 	$(PYTHON) setup.py install --prefix=$(DESTDIR)$(prefix)
--endif
- 
- 	for f in $(SCRIPTS) ; do $(INSTALL) ./scripts/$$f $(DESTDIR)$(INST_BIN) ; done
- 
-
diff --git a/nixpkgs/pkgs/development/libraries/gecode/default.nix b/nixpkgs/pkgs/development/libraries/gecode/default.nix
index 46b13e6e37f5..fc9835d85db5 100644
--- a/nixpkgs/pkgs/development/libraries/gecode/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gecode/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   enableParallelBuilding = true;
+  dontWrapQtApps = true;
   nativeBuildInputs = [ bison flex ];
   buildInputs = [ perl gmp mpfr ]
     ++ lib.optional enableGist qtbase;
diff --git a/nixpkgs/pkgs/development/libraries/gegl/4.0.nix b/nixpkgs/pkgs/development/libraries/gegl/4.0.nix
index af3c9d84ac7c..2093328f5793 100644
--- a/nixpkgs/pkgs/development/libraries/gegl/4.0.nix
+++ b/nixpkgs/pkgs/development/libraries/gegl/4.0.nix
@@ -1,11 +1,10 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , vala
 , gobject-introspection
 , gtk-doc
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_43
 , glib
 , babl
@@ -15,6 +14,7 @@
 , librsvg
 , lensfun
 , libspiro
+, maxflow
 , netsurf
 , pango
 , poly2tri-c
@@ -35,25 +35,16 @@
 
 stdenv.mkDerivation rec {
   pname = "gegl";
-  version = "0.4.26";
+  version = "0.4.28";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-DzceLtK5IWL+/T3edD5kjKCKahsrBQBIZ/vdx+IR5CQ=";
+    sha256 = "sha256-HRENhXfVTMo7NCOTFb03xXzLJ91DVWVQdKLSs/2JeQA=";
   };
 
-  patches = [
-    # fix build with darwin: https://github.com/NixOS/nixpkgs/issues/99108
-    # https://gitlab.gnome.org/GNOME/gegl/-/merge_requests/83
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gegl/-/merge_requests/83.patch";
-      sha256 = "sha256-CSBYbJ2xnEN23xrla1qqr244jxOR5vNK8ljBSXdg4yE=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
     gettext
@@ -62,7 +53,7 @@ stdenv.mkDerivation rec {
     vala
     gobject-introspection
     gtk-doc
-    docbook_xsl
+    docbook-xsl-nons
     docbook_xml_dtd_43
   ];
 
@@ -73,6 +64,7 @@ stdenv.mkDerivation rec {
     librsvg
     lensfun
     libspiro
+    maxflow
     netsurf.libnsgif
     pango
     poly2tri-c
diff --git a/nixpkgs/pkgs/development/libraries/gensio/default.nix b/nixpkgs/pkgs/development/libraries/gensio/default.nix
index 4efc713bb1d7..aef412468a95 100644
--- a/nixpkgs/pkgs/development/libraries/gensio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gensio/default.nix
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/projects/ser2net/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ emantor ];
-    platforms = with platforms; linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/geos/default.nix b/nixpkgs/pkgs/development/libraries/geos/default.nix
index 63806b31e251..19b03eb620ce 100644
--- a/nixpkgs/pkgs/development/libraries/geos/default.nix
+++ b/nixpkgs/pkgs/development/libraries/geos/default.nix
@@ -1,11 +1,12 @@
 { lib, stdenv, fetchurl, python }:
 
 stdenv.mkDerivation rec {
-  name = "geos-3.8.1";
+  pname = "geos";
+  version = "3.9.1";
 
   src = fetchurl {
-    url = "https://download.osgeo.org/geos/${name}.tar.bz2";
-    sha256 = "1xqpmr10xi0n9sj47fbwc89qb0yr9imh4ybk0jsxpffy111syn22";
+    url = "https://download.osgeo.org/geos/${pname}-${version}.tar.bz2";
+    sha256 = "sha256-fmMFB9ysncB1ZdJJom8GoVyfWwxS3SkSmg49OB1+OCo=";
   };
 
   enableParallelBuilding = true;
@@ -18,6 +19,6 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "C++ port of the Java Topology Suite (JTS)";
     homepage = "https://trac.osgeo.org/geos";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Only;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gexiv2/default.nix b/nixpkgs/pkgs/development/libraries/gexiv2/default.nix
index 220b68fa18bc..071e749b4002 100644
--- a/nixpkgs/pkgs/development/libraries/gexiv2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gexiv2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gexiv2";
-  version = "0.12.1";
+  version = "0.12.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla";
+    sha256 = "IyK1UqyjMO73lySmmcUaMCNF1eB0c4V4s5i38v+XlEw=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config gobject-introspection vala gtk-doc docbook_xsl docbook_xml_dtd_43 ];
diff --git a/nixpkgs/pkgs/development/libraries/glfw/3.x.nix b/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
index e2e0ba3bccf4..38ef25770aa9 100644
--- a/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.2";
+  version = "3.3.3";
   pname = "glfw";
 
   src = fetchFromGitHub {
     owner = "glfw";
     repo = "GLFW";
     rev = version;
-    sha256 = "0b5lsxz1xkzip7fvbicjkxvg5ig8gbhx1zrlhandqc0rpk56bvyw";
+    sha256 = "sha256-NfEPXjpVnFvh3Y70RZm8nDG0QwJbefF9wYNUq0BZTN4=";
   };
 
   propagatedBuildInputs = [ libGL ];
diff --git a/nixpkgs/pkgs/development/libraries/glib/default.nix b/nixpkgs/pkgs/development/libraries/glib/default.nix
index 0e8ed605a2d6..ce64bef95adb 100644
--- a/nixpkgs/pkgs/development/libraries/glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/glib/default.nix
@@ -45,11 +45,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "glib";
-  version = "2.66.4";
+  version = "2.66.8";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "l9+GcOMvn9T3OSsJgOZh3WJQEgFdWDUNoeWOND9K+YQ=";
+    sha256 = "sha256-l7yH3ZE2VYmvXLv+oldIM66nobcYQP02Xs0oUsdrnIs=";
   };
 
   patches = optionals stdenv.isDarwin [
@@ -92,6 +92,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libelf setupHook pcre
     bash gnum4 # install glib-gettextize and m4 macros for other apps to use
+    gtk-doc
   ] ++ optionals stdenv.isLinux [
     libselinux
     util-linuxMinimal # for libmount
@@ -99,8 +100,10 @@ stdenv.mkDerivation rec {
     AppKit Carbon Cocoa CoreFoundation CoreServices Foundation
   ]);
 
+  strictDeps = true;
+
   nativeBuildInputs = [
-    meson ninja pkg-config perl python3 gettext gtk-doc docbook_xsl docbook_xml_dtd_45
+    meson ninja pkg-config perl python3 gettext gtk-doc docbook_xsl docbook_xml_dtd_45 libxml2
   ];
 
   propagatedBuildInputs = [ zlib libffi gettext libiconv ];
@@ -120,6 +123,8 @@ stdenv.mkDerivation rec {
     "-DG_DISABLE_CAST_CHECKS"
   ];
 
+  hardeningDisable = [ "pie" ];
+
   postPatch = ''
     chmod +x gio/tests/gengiotypefuncs.py
     patchShebangs gio/tests/gengiotypefuncs.py
@@ -144,7 +149,7 @@ stdenv.mkDerivation rec {
     cp -r ${buildPackages.glib.devdoc} $devdoc
   '';
 
-  checkInputs = [ tzdata libxml2 desktop-file-utils shared-mime-info ];
+  checkInputs = [ tzdata desktop-file-utils shared-mime-info ];
 
   preCheck = optionalString doCheck ''
     export LD_LIBRARY_PATH="$NIX_BUILD_TOP/${pname}-${version}/glib/.libs''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
diff --git a/nixpkgs/pkgs/development/libraries/glib/schema-override-variable.patch b/nixpkgs/pkgs/development/libraries/glib/schema-override-variable.patch
index 1cb5a730351b..f98af04a7f24 100644
--- a/nixpkgs/pkgs/development/libraries/glib/schema-override-variable.patch
+++ b/nixpkgs/pkgs/development/libraries/glib/schema-override-variable.patch
@@ -1,12 +1,14 @@
+diff --git a/gio/gsettingsschema.c b/gio/gsettingsschema.c
+index 1282c10a1..feadfe3aa 100644
 --- a/gio/gsettingsschema.c
 +++ b/gio/gsettingsschema.c
-@@ -352,6 +352,9 @@
+@@ -360,6 +360,9 @@ initialise_schema_sources (void)
  
        try_prepend_data_dir (g_get_user_data_dir ());
  
-+      if ((path = g_getenv ("NIX_GSETTINGS_OVERRIDES_DIR")) != NULL)
++      if (!is_setuid && (path = g_getenv ("NIX_GSETTINGS_OVERRIDES_DIR")) != NULL)
 +        try_prepend_dir (path);
 +
-       if ((path = g_getenv ("GSETTINGS_SCHEMA_DIR")) != NULL)
-         try_prepend_dir (path);
- 
+       /* Disallow loading extra schemas if running as setuid, as that could
+        * allow reading privileged files. */
+       if (!is_setuid && (path = g_getenv ("GSETTINGS_SCHEMA_DIR")) != NULL)
diff --git a/nixpkgs/pkgs/development/libraries/glibc/2.32-35.patch.gz b/nixpkgs/pkgs/development/libraries/glibc/2.32-master.patch.gz
index f77e490ebf54..bd99c36d7412 100644
--- a/nixpkgs/pkgs/development/libraries/glibc/2.32-35.patch.gz
+++ b/nixpkgs/pkgs/development/libraries/glibc/2.32-master.patch.gz
Binary files differdiff --git a/nixpkgs/pkgs/development/libraries/glibc/common.nix b/nixpkgs/pkgs/development/libraries/glibc/common.nix
index 54882ba67185..b3862cc5c0bc 100644
--- a/nixpkgs/pkgs/development/libraries/glibc/common.nix
+++ b/nixpkgs/pkgs/development/libraries/glibc/common.nix
@@ -42,7 +42,7 @@
 
 let
   version = "2.32";
-  patchSuffix = "-35";
+  patchSuffix = "-39";
   sha256 = "0di848ibffrnwq7g2dvgqrnn4xqhj3h96csn69q4da51ymafl9qn";
 in
 
@@ -63,10 +63,10 @@ stdenv.mkDerivation ({
          and using git or something would complicate bootstrapping.
          Fortunately it's not too big.
           $ git checkout origin/release/2.32/master; git describe
-          glibc-2.32-35-g082798622d
-          $ git show --reverse glibc-2.32.. | gzip -n -9 --rsyncable - > 2.32-35.patch.gz
+          glibc-2.32-39-g44b3959329
+          $ git show --reverse glibc-2.32.. | gzip -n -9 --rsyncable - > 2.32-master.patch.gz
        */
-      ./2.32-35.patch.gz
+      ./2.32-master.patch.gz
 
       /* Allow NixOS and Nix to handle the locale-archive. */
       ./nix-locale-archive.patch
diff --git a/nixpkgs/pkgs/development/libraries/glibmm/default.nix b/nixpkgs/pkgs/development/libraries/glibmm/default.nix
index 19567a987212..a9abfbd17764 100644
--- a/nixpkgs/pkgs/development/libraries/glibmm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/glibmm/default.nix
@@ -1,18 +1,20 @@
-{ lib, stdenv, fetchurl, pkg-config, gnum4, glib, libsigcxx, gnome3, darwin }:
+{ lib, stdenv, fetchurl, pkg-config, gnum4, glib, libsigcxx, gnome3, darwin, meson, ninja }:
 
 stdenv.mkDerivation rec {
   pname = "glibmm";
-  version = "2.64.2";
+  version = "2.64.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1v6lp23fr2qh4zshcnm28sn29j3nzgsvcqj2nhmrnvamipjq4lm7";
+    sha256 = "sha256-UI/IbiyRQRmKoWwiWxb9a5EZF8DTgXYCZShE0Jc+o4Y=";
   };
 
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [
+    meson
     pkg-config
+    ninja
     gnum4
     glib # for glib-compile-schemas
   ];
diff --git a/nixpkgs/pkgs/development/libraries/glpng/default.nix b/nixpkgs/pkgs/development/libraries/glpng/default.nix
new file mode 100644
index 000000000000..1194d988c073
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/glpng/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromRepoOrCz
+, cmake
+, libGL
+, libpng
+, pkg-config
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "glpng";
+  version = "1.46";
+
+  src = fetchFromRepoOrCz {
+    repo = "glpng";
+    rev = "v${version}";
+    hash = "sha256-C7EHaBN0PE/HJB6zcIaYU63+o7/MEz4WU1xr/kIOanM=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+  buildInputs = [
+    libGL
+    libpng
+    zlib
+  ];
+
+  meta = with lib; {
+    homepage = "https://repo.or.cz/glpng.git/blob_plain/HEAD:/glpng.htm";
+    description = "PNG loader for OpenGL";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix b/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix
index c5846b523cd2..ab71b2ccf9a9 100644
--- a/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix
@@ -22,7 +22,7 @@
 , docbook_xml_dtd_412
 , gnome3
 , gcr
-, kerberos
+, libkrb5
 , gvfs
 , dbus
 , wrapGAppsHook
@@ -30,7 +30,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-online-accounts";
-  version = "3.38.0";
+  version = "3.38.1";
 
   # https://gitlab.gnome.org/GNOME/gnome-online-accounts/issues/87
   src = fetchFromGitLab {
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     owner = "GNOME";
     repo = "gnome-online-accounts";
     rev = version;
-    sha256 = "sha256-NRGab/CMJxe31rr20+5wYZF2rOzoSNdztfNVojBd5ag=";
+    sha256 = "sha256-th7P++MC3GXX+349PJFEwHGGeMhxsGgoEDGnSYpY7E4=";
   };
 
   outputs = [ "out" "man" "dev" "devdoc" ];
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
     gvfs # OwnCloud, Google Drive
     icu
     json-glib
-    kerberos
+    libkrb5
     librest
     libsecret
     libsoup
diff --git a/nixpkgs/pkgs/development/libraries/gnu-config/default.nix b/nixpkgs/pkgs/development/libraries/gnu-config/default.nix
index 74b94e68f564..a08997ea2cdb 100644
--- a/nixpkgs/pkgs/development/libraries/gnu-config/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gnu-config/default.nix
@@ -1,20 +1,20 @@
 { lib, stdenv, fetchurl }:
 
 let
-  rev = "e78c96e5288993aaea3ec44e5c6ee755c668da79";
+  rev = "6faca61810d335c7837f320733fe8e15a1431fc2";
 
   # Don't use fetchgit as this is needed during Aarch64 bootstrapping
   configGuess = fetchurl {
     url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.guess?id=${rev}";
-    sha256 = "sha256-TSLpYIDGSp1flqCBi2Sgg9IWDV5bcO+Hn2Menv3R6KU=";
+    sha256 = "06wkkhpbx9slmknr2g7mcd8x3zsdhnmmay25l31h3rkdp1wkq7kx";
   };
   configSub = fetchurl {
     url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=${rev}";
-    sha256 = "sha256-DkCGDN/DE3phQ1GO/Ua5ZPPtp0Ya93PnW3yfSK8EV9s=";
+    sha256 = "1qkph8cqanmgy3s4a18bm1a4vk62i8pf8cy5pc1hkpqwn4g6l0di";
   };
 in stdenv.mkDerivation {
   pname = "gnu-config";
-  version = "2020-05-04";
+  version = "2021-01-25";
 
   buildCommand = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/development/libraries/gnutls-kdh/generic.nix b/nixpkgs/pkgs/development/libraries/gnutls-kdh/generic.nix
index 245b0c1e6381..7b3b4561efb1 100644
--- a/nixpkgs/pkgs/development/libraries/gnutls-kdh/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/gnutls-kdh/generic.nix
@@ -2,7 +2,7 @@
 , perl, gmp, autogen, libidn, p11-kit, unbound, libiconv
 , guileBindings ? config.gnutls.guile or false, guile
 , tpmSupport ? true, trousers, nettools, gperftools, gperf, gettext, automake
-, yacc, texinfo
+, bison, texinfo
 
 # Version dependent args
 , version, src, patches ? [], postPatch ? "", nativeBuildInputs ? []
@@ -55,7 +55,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = false;
 
   buildInputs = [ lzo lzip nettle libtasn1 libidn p11-kit zlib gmp
-  autogen gperftools gperf gettext automake yacc texinfo ]
+  autogen gperftools gperf gettext automake bison texinfo ]
     ++ lib.optional doCheck nettools
     ++ lib.optional (stdenv.isFreeBSD || stdenv.isDarwin) libiconv
     ++ lib.optional (tpmSupport && stdenv.isLinux) trousers
diff --git a/nixpkgs/pkgs/development/libraries/gnutls/default.nix b/nixpkgs/pkgs/development/libraries/gnutls/default.nix
index 2cd1e783ea92..e97630871a91 100644
--- a/nixpkgs/pkgs/development/libraries/gnutls/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gnutls/default.nix
@@ -1,5 +1,5 @@
 { config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkg-config, lzip
-, perl, gmp, autoconf, autogen, automake, libidn, p11-kit, libiconv
+, perl, gmp, autoconf, automake, libidn, p11-kit, libiconv
 , unbound, dns-root-data, gettext, cacert, util-linux
 , guileBindings ? config.gnutls.guile or false, guile
 , tpmSupport ? false, trousers, which, nettools, libunistring
@@ -8,7 +8,7 @@
 
 assert guileBindings -> guile != null;
 let
-  version = "3.6.15";
+  version = "3.7.1";
 
   # XXX: Gnulib's `test-select' fails on FreeBSD:
   # https://hydra.nixos.org/build/2962084/nixlog/1/raw .
@@ -23,8 +23,8 @@ stdenv.mkDerivation {
   inherit version;
 
   src = fetchurl {
-    url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz";
-    sha256 = "0n0m93ymzd0q9hbknxc2ycanz49sqlkyyf73g9fk7n787llc7a0f";
+    url = "mirror://gnupg/gnutls/v3.7/gnutls-${version}.tar.xz";
+    sha256 = "0vxcbig87sdc73h58pmcpbi4al1zgcxid1jn67mhcpna7sbdfxrp";
   };
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
@@ -45,9 +45,7 @@ stdenv.mkDerivation {
   #  - trust-store: default trust store path (/etc/ssl/...) is missing in sandbox (3.5.11)
   #  - psk-file: no idea; it broke between 3.6.3 and 3.6.4
   # Change p11-kit test to use pkg-config to find p11-kit
-  postPatch = lib.optionalString (lib.versionAtLeast version "3.4") ''
-    sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' -i tests/cert-tests/name-constraints
-  '' + lib.optionalString (lib.versionAtLeast version "3.6") ''
+  postPatch = lib.optionalString (lib.versionAtLeast version "3.6") ''
     sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh
     sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c
     sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh
@@ -71,7 +69,7 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp autogen libunistring unbound gettext libiconv ]
+  buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp libunistring unbound gettext libiconv ]
     ++ lib.optional (isDarwin && withSecurity) Security
     ++ lib.optional (tpmSupport && stdenv.isLinux) trousers
     ++ lib.optional guileBindings guile;
diff --git a/nixpkgs/pkgs/development/libraries/goffice/default.nix b/nixpkgs/pkgs/development/libraries/goffice/default.nix
index d544dd7625dc..64b5be2e2d33 100644
--- a/nixpkgs/pkgs/development/libraries/goffice/default.nix
+++ b/nixpkgs/pkgs/development/libraries/goffice/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "goffice";
-  version = "0.10.48";
+  version = "0.10.49";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4";
+    sha256 = "X/wY27OF7fuFtsYlS55bTLPS/6MEK5Ms286ON/SzB+k=";
   };
 
   nativeBuildInputs = [ pkg-config intltool ];
diff --git a/nixpkgs/pkgs/development/libraries/google-cloud-cpp/default.nix b/nixpkgs/pkgs/development/libraries/google-cloud-cpp/default.nix
index fdf425432817..d493f31d3750 100644
--- a/nixpkgs/pkgs/development/libraries/google-cloud-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/google-cloud-cpp/default.nix
@@ -1,4 +1,18 @@
-{ lib, stdenv, clang-tools, grpc, curl, cmake, pkg-config, fetchFromGitHub, doxygen, protobuf, crc32c, c-ares, fetchurl, openssl, zlib }:
+{ lib
+, stdenv
+, clang-tools
+, grpc
+, curl
+, cmake
+, pkg-config
+, fetchFromGitHub
+, doxygen
+, protobuf
+, crc32c
+, fetchurl
+, openssl
+, libnsl
+}:
 let
   googleapis = fetchFromGitHub {
     owner = "googleapis";
@@ -17,7 +31,7 @@ let
     };
 
     nativeBuildInputs = [ cmake pkg-config ];
-    buildInputs = [ c-ares c-ares.cmake-config grpc openssl protobuf zlib ];
+    buildInputs = [ grpc openssl protobuf ];
 
     postPatch = ''
       sed -e 's,https://github.com/googleapis/googleapis/archive/9c9f778aedde02f9826d2ae5d0f9c96409ba0f25.tar.gz,file://${googleapis},' \
@@ -39,7 +53,7 @@ in stdenv.mkDerivation rec {
     sha256 = "15wci4m8h6py7fqfziq8mp5m6pxp2h1cbh5rp2k90mk5js4jb9pa";
   };
 
-  buildInputs = [ curl crc32c c-ares c-ares.cmake-config googleapis-cpp-cmakefiles grpc protobuf ];
+  buildInputs = [ curl crc32c googleapis-cpp-cmakefiles grpc protobuf libnsl ];
   nativeBuildInputs = [ clang-tools cmake pkg-config doxygen ];
 
   outputs = [ "out" "dev" ];
@@ -58,6 +72,5 @@ in stdenv.mkDerivation rec {
     homepage = "https://github.com/googleapis/google-cloud-cpp";
     description = "C++ Idiomatic Clients for Google Cloud Platform services";
     maintainers = with maintainers; [ ];
-    broken = true; # Broken on Hydra since 2020-05-19
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gpgme/default.nix b/nixpkgs/pkgs/development/libraries/gpgme/default.nix
index 51b259a3ca81..326e5da0812c 100644
--- a/nixpkgs/pkgs/development/libraries/gpgme/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gpgme/default.nix
@@ -49,6 +49,8 @@ stdenv.mkDerivation rec {
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
+  dontWrapQtApps = true;
+
   configureFlags = [
     "--enable-fixed-path=${gnupg}/bin"
     "--with-libgpg-error-prefix=${libgpgerror.dev}"
diff --git a/nixpkgs/pkgs/development/libraries/grib-api/default.nix b/nixpkgs/pkgs/development/libraries/grib-api/default.nix
index 182f05a8ca89..1f7097dc4a3f 100644
--- a/nixpkgs/pkgs/development/libraries/grib-api/default.nix
+++ b/nixpkgs/pkgs/development/libraries/grib-api/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, fetchpatch, lib, stdenv,
   cmake, netcdf, gfortran, libpng, openjpeg,
-  enablePython ? false, pythonPackages }:
+  enablePython ? false, pythonPackages ? null }:
 
 stdenv.mkDerivation rec {
   pname = "grib-api";
diff --git a/nixpkgs/pkgs/development/libraries/grpc/default.nix b/nixpkgs/pkgs/development/libraries/grpc/default.nix
index d6a1b44fe426..5cdd9886690a 100644
--- a/nixpkgs/pkgs/development/libraries/grpc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/grpc/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, c-ares, pkg-config, openssl, protobuf
-, gflags, libnsl
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, c-ares, pkg-config, re2, openssl, protobuf
+, gflags, abseil-cpp, libnsl
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.35.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
+  version = "1.36.4"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
   pname = "grpc";
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    sha256 = "0vxgp3kqxsglavzs91ybpkkh7aaywxcryacp5z3z6dpsgmw0mscd";
+    sha256 = "1zxvdg5vgjgkq5wmzwbxj2zydaj90ja074axs26yzd9x08j0bjxz";
     fetchSubmodules = true;
   };
   patches = [
@@ -21,17 +21,21 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ zlib c-ares c-ares.cmake-config openssl protobuf gflags ]
+  propagatedBuildInputs = [ c-ares re2 zlib abseil-cpp ];
+  buildInputs = [ c-ares.cmake-config openssl protobuf gflags ]
     ++ lib.optionals stdenv.isLinux [ libnsl ];
 
   cmakeFlags =
     [ "-DgRPC_ZLIB_PROVIDER=package"
       "-DgRPC_CARES_PROVIDER=package"
+      "-DgRPC_RE2_PROVIDER=package"
       "-DgRPC_SSL_PROVIDER=package"
       "-DgRPC_PROTOBUF_PROVIDER=package"
       "-DgRPC_GFLAGS_PROVIDER=package"
+      "-DgRPC_ABSL_PROVIDER=package"
       "-DBUILD_SHARED_LIBS=ON"
       "-DCMAKE_SKIP_BUILD_RPATH=OFF"
+      "-DCMAKE_CXX_STANDARD=17"
     ];
 
   # CMake creates a build directory by default, this conflicts with the
diff --git a/nixpkgs/pkgs/development/libraries/gsasl/default.nix b/nixpkgs/pkgs/development/libraries/gsasl/default.nix
index 48ee0ddd4a51..fc2edc187129 100644
--- a/nixpkgs/pkgs/development/libraries/gsasl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gsasl/default.nix
@@ -1,14 +1,14 @@
-{ fetchurl, lib, stdenv, libidn, kerberos }:
+{ fetchurl, lib, stdenv, libidn, libkrb5 }:
 
 stdenv.mkDerivation rec {
-  name = "gsasl-1.8.0";
+  name = "gsasl-1.10.0";
 
   src = fetchurl {
     url = "mirror://gnu/gsasl/${name}.tar.gz";
-    sha256 = "1rci64cxvcfr8xcjpqc4inpfq7aw4snnsbf5xz7d30nhvv8n40ii";
+    sha256 = "sha256-hby9juYJWt54cCY6KOvLiDL1Qepzk5dUlJJgFcB1aNM=";
   };
 
-  buildInputs = [ libidn kerberos ];
+  buildInputs = [ libidn libkrb5 ];
 
   configureFlags = [ "--with-gssapi-impl=mit" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/gsm/default.nix b/nixpkgs/pkgs/development/libraries/gsm/default.nix
index 13088dda0c91..f70a748a20e7 100644
--- a/nixpkgs/pkgs/development/libraries/gsm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gsm/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
   };
 
   patchPhase = ''
+    substituteInPlace Makefile \
+      --replace "= gcc " "?= gcc "
     # Fix include directory
     sed -e 's,$(GSM_INSTALL_ROOT)/inc,$(GSM_INSTALL_ROOT)/include/gsm,' -i Makefile
   '' + optionalString (!staticSupport) (
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
index 313a063cae89..40b10d0983ad 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -1,10 +1,9 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , gettext
-, config
 , pkg-config
 , python3
 , gst-plugins-base
@@ -12,7 +11,7 @@
 , gobject-introspection
 , enableZbar ? false
 , faacSupport ? false
-, faac ? null
+, faac
 , faad2
 , libass
 , libkate
@@ -36,7 +35,6 @@
 , bluez
 , chromaprint
 , curl
-, darwin
 , directfb
 , fdk_aac
 , flite
@@ -81,24 +79,29 @@
 , x265
 , libxml2
 , srt
+, vo-aacenc
+, VideoToolbox
+, AudioToolbox
+, AVFoundation
+, CoreMedia
+, CoreVideo
+, Foundation
+, MediaToolbox
 }:
 
-assert faacSupport -> faac != null;
-
-let
-  inherit (lib) optional optionals;
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "gst-plugins-bad";
   version = "1.18.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
+    url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
     sha256 = "06ildd4rl6cynirv3p00d2ddf5is9svj4i7mkahldzhq24pq5mca";
   };
 
   patches = [
+    # Use pkgconfig to inject the includedirs
     ./fix_pkgconfig_includedir.patch
   ];
 
@@ -110,13 +113,15 @@ in stdenv.mkDerivation rec {
     python3
     gettext
     gobject-introspection
-  ] ++ optionals stdenv.isLinux [
+  ] ++ lib.optionals stdenv.isLinux [
     wayland # for wayland-scanner
   ];
 
   buildInputs = [
     gst-plugins-base
     orc
+    # gobject-introspection has to be in both nativeBuildInputs and
+    # buildInputs. The build tries to link against libgirepository-1.0.so
     gobject-introspection
     faad2
     libass
@@ -163,16 +168,17 @@ in stdenv.mkDerivation rec {
     libxml2
     libintl
     srt
-  ] ++ optionals enableZbar [
+    vo-aacenc
+  ] ++ lib.optionals enableZbar [
     zbar
-  ] ++ optionals faacSupport [
+  ] ++ lib.optionals faacSupport [
     faac
-  ] ++ optionals stdenv.isLinux [
+  ] ++ lib.optionals stdenv.isLinux [
     bluez
     libva # vaapi requires libva -> libdrm -> libpciaccess, which is Linux-only in nixpkgs
     wayland
     wayland-protocols
-  ] ++ optionals (!stdenv.isDarwin) [
+  ] ++ lib.optionals (!stdenv.isDarwin) [
     # wildmidi requires apple's OpenAL
     # TODO: package apple's OpenAL, fix wildmidi, include on Darwin
     wildmidi
@@ -199,7 +205,7 @@ in stdenv.mkDerivation rec {
     serd
     sord
     sratom
-  ] ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+  ] ++ lib.optionals stdenv.isDarwin [
     # For unknown reasons the order is important, e.g. if
     # VideoToolbox is last, we get:
     #     fatal error: 'VideoToolbox/VideoToolbox.h' file not found
@@ -210,7 +216,7 @@ in stdenv.mkDerivation rec {
     CoreVideo
     Foundation
     MediaToolbox
-  ]);
+  ];
 
   mesonFlags = [
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
@@ -241,7 +247,6 @@ in stdenv.mkDerivation rec {
     "-Dsvthevcenc=disabled" # required `SvtHevcEnc` library not packaged in nixpkgs as of writing
     "-Dteletext=disabled" # required `zvbi` library not packaged in nixpkgs as of writing
     "-Dtinyalsa=disabled" # not packaged in nixpkgs as of writing
-    "-Dvoaacenc=disabled" # required `vo-aacenc` library not packaged in nixpkgs as of writing
     "-Dvoamrwbenc=disabled" # required `vo-amrwbenc` library not packaged in nixpkgs as of writing
     "-Dvulkan=disabled" # Linux-only, and we haven't figured out yet which of the vulkan nixpkgs it needs
     "-Dwasapi=disabled" # not packaged in nixpkgs as of writing / no Windows support
@@ -249,10 +254,10 @@ in stdenv.mkDerivation rec {
     "-Dwpe=disabled" # required `wpe-webkit` library not packaged in nixpkgs as of writing
     "-Dzxing=disabled" # required `zxing-cpp` library not packaged in nixpkgs as of writing
   ]
-  ++ optionals (!stdenv.isLinux) [
+  ++ lib.optionals (!stdenv.isLinux) [
     "-Dva=disabled" # see comment on `libva` in `buildInputs`
   ]
-  ++ optionals stdenv.isDarwin [
+  ++ lib.optionals stdenv.isDarwin [
     "-Dbluez=disabled"
     "-Dchromaprint=disabled"
     "-Ddirectfb=disabled"
@@ -269,11 +274,11 @@ in stdenv.mkDerivation rec {
     "-Dladspa=disabled" # requires lrdf
     "-Dwebrtc=disabled" # requires libnice, which as of writing doesn't work on Darwin in nixpkgs
     "-Dwildmidi=disabled" # see dependencies above
-  ] ++ optionals (!gst-plugins-base.glEnabled) [
-    "-Dgl=disabled"]
-  ++ optionals (!gst-plugins-base.waylandEnabled) [
+  ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
+    "-Dgl=disabled"
+  ] ++ lib.optionals (!gst-plugins-base.waylandEnabled) [
     "-Dwayland=disabled"
-  ] ++ optionals (!gst-plugins-base.glEnabled) [
+  ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
     # `applemedia/videotexturecache.h` requires `gst/gl/gl.h`,
     # but its meson build system does not declare the dependency.
     "-Dapplemedia=disabled"
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix
index bac59ac4c48c..4f392622065b 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix
@@ -31,7 +31,8 @@
 # errors. Suspected is that a newer version than clang
 # is needed than 5.0 but it is not clear.
 , enableCocoa ? false
-, darwin
+, Cocoa
+, OpenGL
 , enableGl ? (enableX11 || enableWayland || enableCocoa)
 , enableCdparanoia ? (!stdenv.isDarwin)
 , cdparanoia
@@ -45,7 +46,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
+    url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
     sha256 = "1b05kg46azrxxvq42c71071lfsnc34pw4vynnkczdqi6g0gzn16x";
   };
 
@@ -81,7 +82,7 @@ stdenv.mkDerivation rec {
     libvisual
   ] ++ lib.optionals stdenv.isDarwin [
     pango
-    darwin.apple_sdk.frameworks.OpenGL
+    OpenGL
   ] ++ lib.optionals enableAlsa [
     alsaLib
   ] ++ lib.optionals enableX11 [
@@ -91,7 +92,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals enableWayland [
     wayland
     wayland-protocols
-  ] ++ lib.optional enableCocoa darwin.apple_sdk.frameworks.Cocoa
+  ] ++ lib.optional enableCocoa Cocoa
     ++ lib.optional enableCdparanoia cdparanoia;
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
index a5b4c0b827a1..84badf304108 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   outputBin = "dev";
 
   src = fetchurl {
-    url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
+    url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
     sha256 = "0ijlmvr660m8zn09xlmnq1ajrziqsivp2hig5a9mabhcjx7ypkb6";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/default.nix
index 1fdd67d836e7..a86308ea3cef 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/default.nix
@@ -1,17 +1,17 @@
-{ callPackage, CoreServices }:
+{ callPackage, AudioToolbox, AVFoundation, Cocoa, CoreFoundation, CoreMedia, CoreServices, CoreVideo, DiskArbitration, Foundation, IOKit, MediaToolbox, OpenGL, VideoToolbox }:
 
 rec {
   gstreamer = callPackage ./core { inherit CoreServices; };
 
   gstreamermm = callPackage ./gstreamermm { };
 
-  gst-plugins-base = callPackage ./base { inherit gstreamer; };
+  gst-plugins-base = callPackage ./base { inherit gstreamer Cocoa OpenGL; };
 
-  gst-plugins-good = callPackage ./good { inherit gst-plugins-base; };
+  gst-plugins-good = callPackage ./good { inherit gst-plugins-base Cocoa; };
 
-  gst-plugins-bad = callPackage ./bad { inherit gst-plugins-base; };
+  gst-plugins-bad = callPackage ./bad { inherit gst-plugins-base AudioToolbox AVFoundation CoreMedia CoreVideo Foundation MediaToolbox VideoToolbox; };
 
-  gst-plugins-ugly = callPackage ./ugly { inherit gst-plugins-base; };
+  gst-plugins-ugly = callPackage ./ugly { inherit gst-plugins-base CoreFoundation DiskArbitration IOKit; };
 
   gst-rtsp-server = callPackage ./rtsp-server { inherit gst-plugins-base gst-plugins-bad; };
 
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix
index dc53a76bbca6..a39eadafb0b7 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   version = "1.18.2";
 
   src = fetchurl {
-    url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
+    url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
     sha256 = "0mhascwvgirgh7b5dykpnk06f7f5g62gh3sl30i6kygiidqkv9vf";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
index ebd5f83dd15f..774fefbc3584 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   src = fetchurl {
-    url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
+    url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
     sha256 = "0pv2k8zlpn3vv2sdlspi3m63ixcwzi90pjly2ypbkg59ab97rb15";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix
index a032f5f5b5a4..b08759b8dba1 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix
@@ -25,12 +25,13 @@
 , libsoup
 , libpulseaudio
 , libintl
-, darwin
+, Cocoa
 , lame
 , mpg123
 , twolame
-, gtkSupport ? false, gtk3 ? null
-, raspiCameraSupport ? false, libraspberrypi ? null
+, gtkSupport ? false, gtk3
+, qt5Support ? false, qt5
+, raspiCameraSupport ? false, libraspberrypi
 , enableJack ? true, libjack2
 , libXdamage
 , libXext
@@ -43,12 +44,8 @@
 , wavpack
 }:
 
-assert gtkSupport -> gtk3 != null;
-assert raspiCameraSupport -> ((libraspberrypi != null) && stdenv.isLinux && stdenv.isAarch64);
+assert raspiCameraSupport -> (stdenv.isLinux && stdenv.isAarch64);
 
-let
-  inherit (lib) optionals;
-in
 stdenv.mkDerivation rec {
   pname = "gst-plugins-good";
   version = "1.18.2";
@@ -56,7 +53,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
+    url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
     sha256 = "1929nhjsvbl4bw37nfagnfsnxz737cm2x3ayz9ayrn9lwkfm45zp";
   };
 
@@ -67,7 +64,7 @@ stdenv.mkDerivation rec {
     ninja
     gettext
     nasm
-  ] ++ optionals stdenv.isLinux [
+  ] ++ lib.optionals stdenv.isLinux [
     wayland-protocols
   ];
 
@@ -97,33 +94,39 @@ stdenv.mkDerivation rec {
     xorg.libXfixes
     xorg.libXdamage
     wavpack
-  ] ++ optionals raspiCameraSupport [
+  ] ++ lib.optionals raspiCameraSupport [
     libraspberrypi
-  ] ++ optionals gtkSupport [
+  ] ++ lib.optionals gtkSupport [
     # for gtksink
     gtk3
-  ] ++ optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.Cocoa
-  ] ++ optionals stdenv.isLinux [
+  ] ++ lib.optionals qt5Support (with qt5; [
+    qtbase
+    qtdeclarative
+    qtwayland
+    qtx11extras
+  ]) ++ lib.optionals stdenv.isDarwin [
+    Cocoa
+  ] ++ lib.optionals stdenv.isLinux [
     libv4l
     libpulseaudio
     libavc1394
     libiec61883
     libgudev
     wayland
-  ] ++ optionals enableJack [
+  ] ++ lib.optionals enableJack [
     libjack2
   ];
 
   mesonFlags = [
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
     "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
-    "-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps
-  ] ++ optionals (!gtkSupport) [
+  ] ++ lib.optionals (!qt5Support) [
+    "-Dqt5=disabled"
+  ] ++ lib.optionals (!gtkSupport) [
     "-Dgtk3=disabled"
-  ] ++ optionals (!enableJack) [
+  ] ++ lib.optionals (!enableJack) [
     "-Djack=disabled"
-  ] ++ optionals (!stdenv.isLinux) [
+  ] ++ lib.optionals (!stdenv.isLinux) [
     "-Ddv1394=disabled" # Linux only
     "-Doss4=disabled" # Linux only
     "-Doss=disabled" # Linux only
@@ -131,8 +134,7 @@ stdenv.mkDerivation rec {
     "-Dv4l2-gudev=disabled" # Linux-only
     "-Dv4l2=disabled" # Linux-only
     "-Dximagesrc=disabled" # Linux-only
-    "-Dpulse=disabled" # TODO check if we can keep this enabled
-  ] ++ optionals (!raspiCameraSupport) [
+  ] ++ lib.optionals (!raspiCameraSupport) [
     "-Drpicamsrc=disabled"
   ];
 
@@ -150,6 +152,9 @@ stdenv.mkDerivation rec {
   # fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''"
   doCheck = false;
 
+  # must be explicitely set since 5590e365
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "GStreamer Good Plugins";
     homepage = "https://gstreamer.freedesktop.org";
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix
index 3175cff4acaa..f0755f201d48 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   version = "1.18.2";
 
   src = fetchurl {
-    url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
+    url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
     sha256 = "0jbzams9ggk3sq9ywv4gsl9rghyn203l2582m6l5c1sz9ka9m5in";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index bcecd11ce2d2..037face3d128 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   version = "1.18.2";
 
   src = fetchurl {
-    url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
+    url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
     sha256 = "1qjlp7az0hkzxvq53hwnp55sp6xhbybfwzaj66hp45jslsmj4fcp";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
index 8f35829ed384..7c70b7ead1ab 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -16,7 +16,9 @@
 , libintl
 , lib
 , opencore-amr
-, darwin
+, IOKit
+, CoreFoundation
+, DiskArbitration
 }:
 
 stdenv.mkDerivation rec {
@@ -26,7 +28,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
+    url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
     sha256 = "1nwbcv5yaib3d8icvyja3zf6lyjf5zf1hndbijrhj8j7xlia0dx3";
   };
 
@@ -49,11 +51,11 @@ stdenv.mkDerivation rec {
     x264
     libintl
     opencore-amr
-  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+  ] ++ lib.optionals stdenv.isDarwin [
     IOKit
     CoreFoundation
     DiskArbitration
-  ]);
+  ];
 
   mesonFlags = [
     "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix
index a90d21c28e8c..2c92cd2236ff 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   version = "1.18.2";
 
   src = fetchurl {
-    url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
+    url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
     sha256 = "1h67n7wk1297rzynknbyv44gdacblvkcvb37x8yxi5d0zms2qywc";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gtdialog/default.nix b/nixpkgs/pkgs/development/libraries/gtdialog/default.nix
index 0e467b294330..ac925477adb3 100644
--- a/nixpkgs/pkgs/development/libraries/gtdialog/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtdialog/default.nix
@@ -9,9 +9,9 @@ let
     url="https://foicica.com/gtdialog/download/gtdialog_1.4.zip";
     sha256="1lhsaz56s8m838fi6vnfcd2r6djymvy3n2pbqhii88hraapq3rfk";
   };
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
-    cdk unzip gtk2 glib ncurses
+    cdk gtk2 glib ncurses
   ];
 in
 stdenv.mkDerivation {
diff --git a/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix b/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix
index 56693d24c7a8..d8010cdc63b4 100644
--- a/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix
@@ -13,7 +13,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gtk-layer-shell";
-  version = "0.5.2";
+  version = "0.6.0";
 
   outputs = [ "out" "dev" "devdoc" ];
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "wmww";
     repo = "gtk-layer-shell";
     rev = "v${version}";
-    sha256 = "sha256-516N45q5EZTq5eLCqH/T/VV/AxgBsQhJ+yZdLOEeDUk=";
+    sha256 = "sha256-jLWXBoYcVoUSzw4OIYVM5iPvsmpy+Wg5TbDpo8cll80=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gtk/2.x.nix b/nixpkgs/pkgs/development/libraries/gtk/2.x.nix
index 4304cb388d1a..8f50c922f514 100644
--- a/nixpkgs/pkgs/development/libraries/gtk/2.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk/2.x.nix
@@ -1,4 +1,4 @@
-{ config, lib, stdenv, fetchurl, pkg-config, gettext, glib, atk, pango, cairo, perl, xorg
+{ config, lib, substituteAll, stdenv, fetchurl, pkg-config, gettext, glib, atk, pango, cairo, perl, xorg
 , gdk-pixbuf, xlibsWrapper, gobject-introspection
 , xineramaSupport ? stdenv.isLinux
 , cupsSupport ? config.gtk2.cups or stdenv.isLinux, cups ? null
@@ -12,6 +12,16 @@ assert cupsSupport -> cups != null;
 
 with lib;
 
+let
+
+  gtkCleanImmodulesCache = substituteAll {
+    src = ./hooks/clean-immodules-cache.sh;
+    gtk_module_path = "gtk-2.0";
+    gtk_binary_version = "2.10.0";
+  };
+
+in
+
 stdenv.mkDerivation rec {
   pname = "gtk+";
   version = "2.24.32";
@@ -27,8 +37,8 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   setupHooks =  [
-    ./hooks/gtk2-clean-immodules-cache.sh
     ./hooks/drop-icon-theme-cache.sh
+    gtkCleanImmodulesCache
   ];
 
   nativeBuildInputs = setupHooks ++ [ perl pkg-config gettext gobject-introspection ];
diff --git a/nixpkgs/pkgs/development/libraries/gtk/3.x.nix b/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
index 5180df634604..d1e478ded262 100644
--- a/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
+, substituteAll
 , fetchurl
 , fetchpatch
 , pkg-config
@@ -48,21 +50,31 @@
 
 assert cupsSupport -> cups != null;
 
+let
+
+  gtkCleanImmodulesCache = substituteAll {
+    src = ./hooks/clean-immodules-cache.sh;
+    gtk_module_path = "gtk-3.0";
+    gtk_binary_version = "3.0.0";
+  };
+
+in
+
 stdenv.mkDerivation rec {
   pname = "gtk+3";
-  version = "3.24.24";
+  version = "3.24.27";
 
   outputs = [ "out" "dev" ] ++ lib.optional withGtkDoc "devdoc";
   outputBin = "dev";
 
   setupHooks = [
-    ./hooks/gtk3-clean-immodules-cache.sh
     ./hooks/drop-icon-theme-cache.sh
+    gtkCleanImmodulesCache
   ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/${lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
-    sha256 = "12ipk1d376bai9v820qzhxba93kkh5abi6mhyqr4hwjvqmkl77fc";
+    sha256 = "09ksflq5j257bf5zn8q2nnf2flicg9qqgfy7za79z7rkf1shc77p";
   };
 
   patches = [
@@ -176,6 +188,8 @@ stdenv.mkDerivation rec {
     moveToOutput bin/gtk-update-icon-cache "$out"
     # Launcher
     moveToOutput bin/gtk-launch "$out"
+    # Broadway daemon
+    moveToOutput bin/broadwayd "$out"
 
     # TODO: patch glib directly
     for f in $dev/bin/gtk-encode-symbolic-svg; do
@@ -214,7 +228,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://www.gtk.org/";
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ raskin vcunat lethalman worldofpeace ];
+    maintainers = with maintainers; [ raskin ] ++ teams.gnome.members;
     platforms = platforms.all;
     changelog = "https://gitlab.gnome.org/GNOME/gtk/-/raw/${version}/NEWS";
   };
diff --git a/nixpkgs/pkgs/development/libraries/gtk/4.x.nix b/nixpkgs/pkgs/development/libraries/gtk/4.x.nix
index 59b0b080a52a..28247d6c9728 100644
--- a/nixpkgs/pkgs/development/libraries/gtk/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk/4.x.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenv
+, substituteAll
 , fetchurl
 , pkg-config
 , gettext
@@ -53,21 +54,31 @@
 
 assert cupsSupport -> cups != null;
 
+let
+
+  gtkCleanImmodulesCache = substituteAll {
+    src = ./hooks/clean-immodules-cache.sh;
+    gtk_module_path = "gtk-4.0";
+    gtk_binary_version = "4.0.0";
+  };
+
+in
+
 stdenv.mkDerivation rec {
   pname = "gtk4";
-  version = "4.0.2";
+  version = "4.0.3";
 
   outputs = [ "out" "dev" ] ++ lib.optional withGtkDoc "devdoc";
   outputBin = "dev";
 
   setupHooks = [
-    ./hooks/gtk4-clean-immodules-cache.sh
     ./hooks/drop-icon-theme-cache.sh
+    gtkCleanImmodulesCache
   ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
-    sha256 = "115w3mzwm1xsi1q85qvwfm2yxpsjs2rcajgddzbnwhjicyn0frv2";
+    sha256 = "18mJNyV5C1C9mjuyeIVtnVQ7RLa5uVHXtg573swTGJA=";
   };
 
   nativeBuildInputs = [
@@ -226,7 +237,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://www.gtk.org/";
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ raskin vcunat lethalman worldofpeace ];
+    maintainers = with maintainers; [ raskin lethalman worldofpeace ];
     platforms = platforms.all;
     changelog = "https://gitlab.gnome.org/GNOME/gtk/-/raw/${version}/NEWS";
   };
diff --git a/nixpkgs/pkgs/development/libraries/gtk/hooks/clean-immodules-cache.sh b/nixpkgs/pkgs/development/libraries/gtk/hooks/clean-immodules-cache.sh
new file mode 100644
index 000000000000..0868a4a39101
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gtk/hooks/clean-immodules-cache.sh
@@ -0,0 +1,15 @@
+# shellcheck shell=bash
+
+fixupOutputHooks+=(_gtkCleanImmodulesCache)
+
+# Clean comments that link to generator of the file
+_gtkCleanImmodulesCache() {
+    # gtk_module_path is where the modules are installed
+    # https://gitlab.gnome.org/GNOME/gtk/-/blob/3.24.24/gtk/gtkmodules.c#L68
+    # gtk_binary_version can be retrived with:
+    # pkg-config --variable=gtk_binary_version gtk+-3.0
+    local f="${prefix:?}/lib/@gtk_module_path@/@gtk_binary_version@/immodules.cache"
+    if [ -f "$f" ]; then
+        sed 's|Created by .*bin/gtk-query-|Created by bin/gtk-query-|' -i "$f"
+    fi
+}
diff --git a/nixpkgs/pkgs/development/libraries/gtk/hooks/gtk2-clean-immodules-cache.sh b/nixpkgs/pkgs/development/libraries/gtk/hooks/gtk2-clean-immodules-cache.sh
deleted file mode 100644
index dde991fd27cd..000000000000
--- a/nixpkgs/pkgs/development/libraries/gtk/hooks/gtk2-clean-immodules-cache.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-# shellcheck shell=bash
-
-fixupOutputHooks+=(_gtk2CleanComments)
-
-# Clean comments that link to generator of the file
-_gtk2CleanComments() {
-    local f="${prefix:?}/lib/gtk-2.0/2.10.0/immodules.cache"
-    if [ -f "$f" ]; then
-        sed 's|Created by .*bin/gtk-query-|Created by bin/gtk-query-|' -i "$f"
-    fi
-}
-
diff --git a/nixpkgs/pkgs/development/libraries/gtk/hooks/gtk3-clean-immodules-cache.sh b/nixpkgs/pkgs/development/libraries/gtk/hooks/gtk3-clean-immodules-cache.sh
deleted file mode 100644
index d2d5287831a0..000000000000
--- a/nixpkgs/pkgs/development/libraries/gtk/hooks/gtk3-clean-immodules-cache.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-# shellcheck shell=bash
-
-fixupOutputHooks+=(_gtk3CleanComments)
-
-# Clean comments that link to generator of the file
-_gtk3CleanComments() {
-    local f="${prefix:?}/lib/gtk-3.0/3.0.0/immodules.cache"
-    if [ -f "$f" ]; then
-        sed 's|Created by .*bin/gtk-query-|Created by bin/gtk-query-|' -i "$f"
-    fi
-}
diff --git a/nixpkgs/pkgs/development/libraries/gtk/hooks/gtk4-clean-immodules-cache.sh b/nixpkgs/pkgs/development/libraries/gtk/hooks/gtk4-clean-immodules-cache.sh
deleted file mode 100644
index 49f7051aabb6..000000000000
--- a/nixpkgs/pkgs/development/libraries/gtk/hooks/gtk4-clean-immodules-cache.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-# shellcheck shell=bash
-
-fixupOutputHooks+=(_gtk4CleanComments)
-
-# Clean comments that link to generator of the file
-_gtk4CleanComments() {
-    local f="${prefix:?}/lib/gtk-4.0/4.0.0/immodules.cache"
-    if [ -f "$f" ]; then
-        sed 's|Created by .*bin/gtk-query-|Created by bin/gtk-query-|' -i "$f"
-    fi
-}
diff --git a/nixpkgs/pkgs/development/libraries/gtkd/default.nix b/nixpkgs/pkgs/development/libraries/gtkd/default.nix
index ccaceabd4e98..a3aa18b058a2 100644
--- a/nixpkgs/pkgs/development/libraries/gtkd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtkd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, fetchpatch, atk, cairo, dmd, gdk-pixbuf, gnome3, gst_all_1, librsvg
+{ lib, stdenv, fetchzip, fetchpatch, atk, cairo, ldc, gdk-pixbuf, gnome3, gst_all_1, librsvg
 , glib, gtk3, gtksourceview4, libgda, libpeas, pango, pkg-config, which, vte }:
 
 let
@@ -15,7 +15,7 @@ in stdenv.mkDerivation rec {
     stripRoot = false;
   };
 
-  nativeBuildInputs = [ dmd pkg-config which ];
+  nativeBuildInputs = [ ldc pkg-config which ];
   propagatedBuildInputs = [
     atk cairo gdk-pixbuf glib gstreamer gst-plugins-base gtk3 gtksourceview4
     libgda libpeas librsvg pango vte
diff --git a/nixpkgs/pkgs/development/libraries/gtkdatabox/default.nix b/nixpkgs/pkgs/development/libraries/gtkdatabox/default.nix
index d7cca43841e4..ddab0046b660 100644
--- a/nixpkgs/pkgs/development/libraries/gtkdatabox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtkdatabox/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
 
     license = lib.licenses.lgpl2;
 
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix b/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix
index 4a31acd2ff66..950e1a976a62 100644
--- a/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchurl, pkg-config, gtk3, glibmm, cairomm, pangomm, atkmm, epoxy, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, meson, ninja, python3, gtk3, glibmm, cairomm, pangomm, atkmm, epoxy, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gtkmm";
-  version = "3.24.2";
+  version = "3.24.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1hxdnhavjyvbcpxhd5z17l9fj4182028s66lc0s16qqqrldhjwbd";
+    sha256 = "sha256-YEl8T381TDvSVXSF8CVPi3tM9L68n+4L4mp3dE6s1DU=";
   };
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config meson ninja python3 ];
   buildInputs = [ epoxy ];
 
   propagatedBuildInputs = [ glibmm gtk3 atkmm cairomm pangomm ];
diff --git a/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix b/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix
index 2d469c191e03..9ead894e0d25 100644
--- a/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchurl, pkg-config, atk, cairo, glib, gtk3, pango, fribidi, vala
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, atk, cairo, glib, gtk3, pango, fribidi, vala
 , libxml2, perl, gettext, gnome3, gobject-introspection, dbus, xvfb_run, shared-mime-info
 , meson, ninja }:
 
 stdenv.mkDerivation rec {
   pname = "gtksourceview";
-  version = "4.8.0";
+  version = "4.8.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "06jfbfbi73j9i3qsr7sxg3yl3643bn3aydbzx6xg3v8ca0hr3880";
+    sha256 = "0WPXG1/K+8Wx7sbdhB7b283dOnURzV/c/9hri7/mmsE=";
   };
 
   propagatedBuildInputs = [
@@ -26,7 +26,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ atk cairo glib pango fribidi libxml2 ];
 
-  patches = [ ./4.x-nix_share_path.patch ];
+  patches = [
+    ./4.x-nix_share_path.patch
+
+    # fixes intermittent "gtksourceview-gresources.h: no such file" errors
+    (fetchpatch {
+      name = "ensure-access-to-resources-in-corelib-build.patch";
+      url = "https://gitlab.gnome.org/GNOME/gtksourceview/-/commit/9bea9d1c4a56310701717bb106c52a5324ee392a.patch";
+      sha256 = "sha256-rSB6lOFEyz58HfOSj7ZM48/tHxhqbtWWbh60JuySAZ0=";
+    })
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/gupnp-igd/default.nix b/nixpkgs/pkgs/development/libraries/gupnp-igd/default.nix
index 2dad33949f3f..09fae015b503 100644
--- a/nixpkgs/pkgs/development/libraries/gupnp-igd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gupnp-igd/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
-, autoreconfHook
 , pkg-config
+, meson
+, ninja
 , gettext
 , gobject-introspection
 , gtk-doc
@@ -15,26 +15,19 @@
 
 stdenv.mkDerivation rec {
   pname = "gupnp-igd";
-  version = "0.2.5";
+  version = "1.2.0";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "081v1vhkbz3wayv49xfiskvrmvnpx93k25am2wnarg5cifiiljlb";
+    sha256 = "sha256-S1EgCYqhPt0ngYup7k1/6WG/VAv1DQVv9wPGFUXgK+E=";
   };
 
-  patches = [
-    # Add gupnp-1.2 compatibility
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gupnp-igd/commit/63531558a16ac2334a59f627b2fca5576dcfbb2e.patch";
-      sha256 = "0s8lkyy9fnnnnkkqwbk6gxb7795bb1kl1swk5ldjnlrzhfcy1ab2";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
-    autoreconfHook
+    meson
+    ninja
     gettext
     gobject-introspection
     gtk-doc
@@ -47,8 +40,8 @@ stdenv.mkDerivation rec {
     gupnp
   ];
 
-  configureFlags = [
-    "--enable-gtk-doc"
+  mesonFlags = [
+    "-Dgtk_doc=true"
   ];
 
   doCheck = true;
@@ -62,7 +55,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Library to handle UPnP IGD port mapping";
     homepage = "http://www.gupnp.org/";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gupnp/default.nix b/nixpkgs/pkgs/development/libraries/gupnp/default.nix
index fe3463eeff20..d6465d71c50f 100644
--- a/nixpkgs/pkgs/development/libraries/gupnp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gupnp/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -20,36 +19,15 @@
 
 stdenv.mkDerivation rec {
   pname = "gupnp";
-  version = "1.2.0";
+  version = "1.2.4";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gupnp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0911lv1bivsyv9wwdxm0i1w4r89j0vyyqp200gsfdnzk6v1a4x7x";
+    sha256 = "sha256-96AwfqUfXkTRuDL0k92QRURKOk4hHvhd/Zql3W6up9E=";
   };
 
-  patches = [
-    # Nix’s pkg-config ignores Requires.private
-    # https://github.com/NixOS/nixpkgs/commit/1e6622f4d5d500d6e701bd81dd4a22977d10637d
-    # We are essentialy reverting the following patch for now
-    # https://bugzilla.gnome.org/show_bug.cgi?id=685477
-    # at least until Requires.internal or something is implemented
-    # https://gitlab.freedesktop.org/pkg-config/pkg-config/issues/7
-    ./fix-requires.patch
-
-    # fix deadlock in gupnp-igd tests
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gupnp/commit/d208562657f62b34759896ca9e974bd582d1f963.patch";
-      sha256 = "02kzsb4glxhgb1npf6qqgafiki0ws75sly5h470431mihc6sgp4f";
-    })
-    # fix breakage in gupnp-igd tests
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gupnp/commit/0648399acb989473119fe59d0b9f65c923e69483.patch";
-      sha256 = "0ba0rngk3a4n3z4dmq06wzgh0n3q9la1nr25qdxqbwlszmxfxpjf";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
diff --git a/nixpkgs/pkgs/development/libraries/gupnp/fix-requires.patch b/nixpkgs/pkgs/development/libraries/gupnp/fix-requires.patch
deleted file mode 100644
index ffe9b68fd043..000000000000
--- a/nixpkgs/pkgs/development/libraries/gupnp/fix-requires.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/libgupnp/meson.build
-+++ b/libgupnp/meson.build
-@@ -110,6 +110,7 @@ pkg.generate(
-     libraries : libgupnp,
-     subdirs: 'gupnp-1.2',
-     name : 'gupnp-1.2',
-+    requires: requires,
-     description : 'GObject-based UPnP library',
-     version : meson.project_version(),
-     filebase : 'gupnp-1.2'
---- a/meson.build
-+++ a/meson.build
-@@ -18,6 +18,13 @@ add_global_arguments('-DHAVE_CONFIG_H=1', language : 'c')
- 
- guul = subproject('guul', default_options : ['default_library=static'])
- 
-+requires = [
-+  dependency('glib-2.0', version : '>= 2.44'),
-+  dependency('gssdp-1.2', version : '>= 1.1'),
-+  dependency('libsoup-2.4', version : '>= 2.48.0'),
-+  dependency('libxml-2.0')
-+]
-+
- dependencies = [
-     dependency('glib-2.0', version : '>= 2.44'),
-     dependency('gio-2.0', version : '>= 2.44'),
diff --git a/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix b/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
index b3615893b532..d2287526278b 100644
--- a/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
+++ b/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
@@ -11,7 +11,7 @@
 }:
 
 let
-  version = "2.7.2";
+  version = "2.8.0";
   inherit (lib) optional optionals optionalString;
   mesonFeatureFlag = opt: b:
     "-D${opt}=${if b then "enabled" else "disabled"}";
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
     owner  = "harfbuzz";
     repo   = "harfbuzz";
     rev    = version;
-    sha256 = "0vfyxr3lvzp80j1347nrwpr1ndv265p15rj2q8rj31lb26nyz4dm";
+    sha256 = "sha256-JnvOFGK2HWIpzuwgZtyt0IfKfnoXD1LMeVb3RzMmyY4=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/hawknl/default.nix b/nixpkgs/pkgs/development/libraries/hawknl/default.nix
index 0525fcd0eba6..aacdf0ee933e 100644
--- a/nixpkgs/pkgs/development/libraries/hawknl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hawknl/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "11shn2fbxj3w0j77w0234pqyj1368x686kkgv09q5yqhi1cdp028";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   makefile = "makefile.linux";
 
diff --git a/nixpkgs/pkgs/development/libraries/herqq/default.nix b/nixpkgs/pkgs/development/libraries/herqq/default.nix
index 265289f06f38..f35d7528f4e8 100644
--- a/nixpkgs/pkgs/development/libraries/herqq/default.nix
+++ b/nixpkgs/pkgs/development/libraries/herqq/default.nix
@@ -4,8 +4,8 @@ mkDerivation rec {
   version = "unstable-20-06-26";
   pname = "herqq";
 
-  nativeBuildInputs = [ qmake ];
-  buildInputs = [ qtbase unzip qtmultimedia ];
+  nativeBuildInputs = [ qmake unzip ];
+  buildInputs = [ qtbase qtmultimedia ];
 
   outputs = [ "out" "dev" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/hpx/default.nix b/nixpkgs/pkgs/development/libraries/hpx/default.nix
index 329fa99fa1cd..73d1eea988de 100644
--- a/nixpkgs/pkgs/development/libraries/hpx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hpx/default.nix
@@ -1,18 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, boost, cmake, hwloc, gperftools, pkg-config, python }:
+{ lib, stdenv, fetchFromGitHub, boost, cmake, hwloc, gperftools, pkg-config, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "hpx";
-  version = "1.5.1";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "STEllAR-GROUP";
     repo = "hpx";
     rev = version;
-    sha256 = "1ld2k00500p107jarw379hsd1nlnm33972nv9c3ssfq619bj01c9";
+    sha256 = "sha256-Fkntfk5AaWtS1x0fXfLSWW/9tvKcCBi1COqgNxurPmk=";
   };
 
   buildInputs = [ boost hwloc gperftools ];
-  nativeBuildInputs = [ cmake pkg-config python ];
+  nativeBuildInputs = [ cmake pkg-config python3 ];
+
+  strictDeps = true;
 
   meta = {
     description = "C++ standard library for concurrency and parallelism";
diff --git a/nixpkgs/pkgs/development/libraries/htmlcxx/default.nix b/nixpkgs/pkgs/development/libraries/htmlcxx/default.nix
index 286834112f27..d9072e46e407 100644
--- a/nixpkgs/pkgs/development/libraries/htmlcxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/htmlcxx/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "htmlcxx";
@@ -9,12 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "1hgmyiad3qgbpf2dvv2jygzj6jpz4dl3n8ds4nql68a4l9g2nm07";
   };
 
+  buildInputs = [ libiconv ];
   patches = [ ./ptrdiff.patch ];
 
   meta = with lib; {
     homepage = "http://htmlcxx.sourceforge.net/";
     description = "A simple non-validating css1 and html parser for C++";
     license = licenses.lgpl2;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix b/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
index 00d0933bdd70..37b567896359 100644
--- a/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -45,7 +45,8 @@ let
         platforms = platforms.all;
       };
       phases = "unpackPhase patchPhase buildPhase installPhase";
-      buildInputs = [ bash coreutils unzip which zip ];
+      nativeBuildInputs = [ unzip ];
+      buildInputs = [ bash coreutils which zip ];
       patchPhase = ''
         substituteInPlace ortograf/herramientas/make_dict.sh \
            --replace /bin/bash bash \
@@ -86,7 +87,7 @@ let
         license = licenses.lgpl3;
         platforms = platforms.all;
       };
-      buildInputs = [ unzip ];
+      nativeBuildInputs = [ unzip ];
       phases = "unpackPhase installPhase";
       sourceRoot = ".";
       unpackCmd = ''
@@ -126,7 +127,7 @@ let
         maintainers = with maintainers; [ renzo ];
         platforms = platforms.all;
       };
-      buildInputs = [ unzip ];
+      nativeBuildInputs = [ unzip ];
       phases = "unpackPhase installPhase";
       sourceRoot = ".";
       unpackCmd = ''
@@ -155,7 +156,7 @@ let
         maintainers = with maintainers; [ renzo ];
         platforms = platforms.all;
       };
-      buildInputs = [ unzip ];
+      nativeBuildInputs = [ unzip ];
       phases = "unpackPhase installPhase";
       sourceRoot = ".";
       unpackCmd = ''
@@ -182,7 +183,7 @@ let
         maintainers = with maintainers; [ renzo ];
         platforms = platforms.all;
       };
-      buildInputs = [ unzip ];
+      nativeBuildInputs = [ unzip ];
       phases = "unpackPhase patchPhase installPhase";
       sourceRoot = ".";
       prePatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/hunspell/wrapper.nix b/nixpkgs/pkgs/development/libraries/hunspell/wrapper.nix
index 34c3d26c55ec..4ae177232751 100644
--- a/nixpkgs/pkgs/development/libraries/hunspell/wrapper.nix
+++ b/nixpkgs/pkgs/development/libraries/hunspell/wrapper.nix
@@ -5,7 +5,7 @@ let
 in
 stdenv.mkDerivation {
   name = (appendToName "with-dicts" hunspell).name;
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   buildCommand = ''
     makeWrapper ${hunspell.bin}/bin/hunspell $out/bin/hunspell --prefix DICPATH : ${searchPath}
   '';
diff --git a/nixpkgs/pkgs/development/libraries/hwloc/default.nix b/nixpkgs/pkgs/development/libraries/hwloc/default.nix
index 6a939835cf56..a6fb316d659f 100644
--- a/nixpkgs/pkgs/development/libraries/hwloc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hwloc/default.nix
@@ -7,7 +7,7 @@ assert x11Support -> libX11 != null && cairo != null;
 with lib;
 
 let
-  version = "2.4.0";
+  version = "2.4.1";
   versmm = versions.major version + "." + versions.minor version;
   name = "hwloc-${version}";
 
@@ -16,7 +16,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.open-mpi.org/software/hwloc/v${versmm}/downloads/${name}.tar.bz2";
-    sha256 = "1s9q70mrr4igbjw4m26din81i68f4wbfpv6wdc4i2aalvd51n7rb";
+    sha256 = "sha256-OSQh5p8mEgyKuV0VH+mJ8rS2nas8dzV0HE4KbX3l3mM=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/icu/68.nix b/nixpkgs/pkgs/development/libraries/icu/68.nix
new file mode 100644
index 000000000000..5aeba0f2628c
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/icu/68.nix
@@ -0,0 +1,4 @@
+import ./base.nix {
+  version = "68.2";
+  sha256 = "09fng7a80xj8d5r1cgbgq8r47dsw5jsr6si9p2cj2ylhwgg974f7";
+}
diff --git a/nixpkgs/pkgs/development/libraries/igraph/default.nix b/nixpkgs/pkgs/development/libraries/igraph/default.nix
index b98588eb410f..bcd0fcee92c3 100644
--- a/nixpkgs/pkgs/development/libraries/igraph/default.nix
+++ b/nixpkgs/pkgs/development/libraries/igraph/default.nix
@@ -1,20 +1,43 @@
-{ stdenv, lib, fetchFromGitHub,
-  pkg-config, autoreconfHook,
-  flex, yacc, zlib, libxml2 }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, fetchpatch
+, arpack
+, bison
+, blas
+, cmake
+, flex
+, fop
+, glpk
+, gmp
+, lapack
+, libxml2
+, libxslt
+, pkg-config
+, python3
+, sourceHighlight
+, suitesparse
+, xmlto
+}:
 
 stdenv.mkDerivation rec {
   pname = "igraph";
-  version = "0.8.5";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "igraph";
     repo = pname;
     rev = version;
-    sha256 = "0cb0kp6mpmgz74kbymqw4xxads8ff7jh0n59dsm76xy6nn8hpqcz";
+    sha256 = "sha256-i6Zg6bfHZ9NHwqCouX9m9YqD0VtiWW8DEkxS0hdUyIE=";
   };
 
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
-  buildInputs = [ flex yacc zlib libxml2 ];
+  patches = [
+    (fetchpatch {
+      name = "pkg-config-paths.patch";
+      url = "https://github.com/igraph/igraph/commit/980521cc948777df471893f7b6de8f3e3916a3c0.patch";
+      sha256 = "0mbq8v5h90c3dhgmyjazjvva3rn57qhnv7pkc9hlbqdln9gpqg0g";
+    })
+  ];
 
   # Normally, igraph wants us to call bootstrap.sh, which will call
   # tools/getversion.sh. Instead, we're going to put the version directly
@@ -22,16 +45,69 @@ stdenv.mkDerivation rec {
   # bootstrap. ~ C.
   postPatch = ''
     echo "${version}" > IGRAPH_VERSION
+  '' + lib.optionalString stdenv.isAarch64 ''
+    # https://github.com/igraph/igraph/issues/1694
+    substituteInPlace tests/CMakeLists.txt \
+      --replace "igraph_scg_grouping3" "" \
+      --replace "igraph_scg_semiprojectors2" ""
   '';
 
+  outputs = [ "out" "dev" "doc" ];
+
+  nativeBuildInputs = [
+    cmake
+    fop
+    libxml2
+    libxslt
+    pkg-config
+    python3
+    sourceHighlight
+    xmlto
+  ];
+
+  buildInputs = [
+    arpack
+    bison
+    blas
+    flex
+    glpk
+    gmp
+    lapack
+    libxml2
+    suitesparse
+  ];
+
+  cmakeFlags = [
+    "-DIGRAPH_USE_INTERNAL_BLAS=OFF"
+    "-DIGRAPH_USE_INTERNAL_LAPACK=OFF"
+    "-DIGRAPH_USE_INTERNAL_ARPACK=OFF"
+    "-DIGRAPH_USE_INTERNAL_GLPK=OFF"
+    "-DIGRAPH_USE_INTERNAL_CXSPARSE=OFF"
+    "-DIGRAPH_USE_INTERNAL_GMP=OFF"
+    "-DIGRAPH_GLPK_SUPPORT=ON"
+    "-DIGRAPH_GRAPHML_SUPPORT=ON"
+    "-DIGRAPH_ENABLE_LTO=ON"
+    "-DIGRAPH_ENABLE_TLS=ON"
+    "-DBUILD_SHARED_LIBS=ON"
+  ];
+
   doCheck = true;
 
-  meta = {
+  preCheck = ''
+    # needed to find libigraph.so
+    export LD_LIBRARY_PATH="$PWD/src"
+  '';
+
+  postInstall = ''
+    mkdir -p "$out/share"
+    cp -r doc "$out/share"
+  '';
+
+  meta = with lib; {
     description = "The network analysis package";
     homepage = "https://igraph.org/";
-    license = lib.licenses.gpl2;
-    # NB: Known to fail tests on aarch64.
-    platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
-    maintainers = [ lib.maintainers.MostAwesomeDude ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ MostAwesomeDude dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/imlib2/default.nix b/nixpkgs/pkgs/development/libraries/imlib2/default.nix
index 666fcab989b7..23550bbc8072 100644
--- a/nixpkgs/pkgs/development/libraries/imlib2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/imlib2/default.nix
@@ -12,11 +12,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "imlib2";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/enlightenment/${pname}-${version}.tar.bz2";
-    sha256 = "0zdk4afdrrr1539f2q15zja19j4wwfmpswzws2ffgflcnhywlxhr";
+    sha256 = "sha256-AzpqY53LyOA/Zf8F5XBo5zRtUO4vL/8wS7kJWhsrxAc=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/inchi/default.nix b/nixpkgs/pkgs/development/libraries/inchi/default.nix
index 256e0d702434..f74cfdec9305 100644
--- a/nixpkgs/pkgs/development/libraries/inchi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/inchi/default.nix
@@ -1,69 +1,74 @@
-{ pkgs
-, fetchurl
+{ fetchurl
 , lib
 , stdenv
 , unzip
 , fixDarwinDylibNames
 }:
 
-stdenv.mkDerivation {
-  pname = "inchi";
-  version = "1.05";
-  src = fetchurl {
-    url = "http://www.inchi-trust.org/download/105/INCHI-1-SRC.zip";
-    sha1 = "e3872a46d58cb321a98f4fd4b93a989fb6920b9c";
-  };
+let
+  versionMajor = "1";
+  versionMinor = "0.6";
+  version = versionMajor + "." + versionMinor;
+  removeDots = lib.replaceStrings [ "." ] [ "" ];
+  src-doc = fetchurl {
+    url = "http://www.inchi-trust.org/download/${removeDots version}/INCHI-1-DOC.zip";
+    sha256 = "1kyda09i9p89xfq90ninwi7w13k1w3ljpl4gqdhpfhi5g8fgxx7f";
+   };
+in
+  stdenv.mkDerivation rec {
+    pname = "inchi";
+    inherit version;
 
-  nativeBuildInputs = [ unzip ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
-  outputs = [ "out" "doc" ];
+    src = fetchurl {
+      url = "http://www.inchi-trust.org/download/${removeDots version}/INCHI-1-SRC.zip";
+      sha256 = "1zbygqn0443p0gxwr4kx3m1bkqaj8x9hrpch3s41py7jq08f6x28";
+    };
 
-  enableParallelBuilding = true;
+    nativeBuildInputs = [ unzip ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+    outputs = [ "out" "doc" ];
 
-  preConfigure = ''
-    cd ./INCHI_API/libinchi/gcc
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace makefile \
-      --replace ",--version-script=libinchi.map" "" \
-      --replace "LINUX_Z_RELRO = ,-z,relro" "" \
-      --replace "-soname" "-install_name" \
-      --replace "gcc" $CC
-  '';
-  installPhase = ''
-    runHook preInstall
+    enableParallelBuilding = true;
 
-    cd ../../..
-    mkdir -p $out/lib
-    mkdir -p $out/include/inchi
-    mkdir -p $doc/share/
+    preConfigure = ''
+      cd ./INCHI_API/libinchi/gcc
+    '' + lib.optionalString stdenv.isDarwin ''
+      substituteInPlace makefile \
+        --replace ",--version-script=libinchi.map" "" \
+        --replace "LINUX_Z_RELRO = ,-z,relro" "" \
+        --replace "-soname" "-install_name" \
+        --replace "gcc" $CC
+    '';
+    installPhase = let
+      versionOneDot = versionMajor + "." + removeDots versionMinor;
+    in ''
+      runHook preInstall
+
+      cd ../../..
+      mkdir -p $out/lib
+      mkdir -p $out/include/inchi
+      mkdir -p $doc/share/
 
-    install -m 755 INCHI_API/bin/Linux/libinchi.so.1.05.00 $out/lib
-    ln -s $out/lib/libinchi.so.1.05.00 $out/lib/libinchi.so.1
-    ln -s $out/lib/libinchi.so.1.05.00 $out/lib/libinchi.so
-    install -m 644 INCHI_BASE/src/*.h $out/include/inchi
+      install -m 755 INCHI_API/bin/Linux/libinchi.so.${versionOneDot}.00 $out/lib
+      ln -s $out/lib/libinchi.so.${versionOneDot}.00 $out/lib/libinchi.so.1
+      ln -s $out/lib/libinchi.so.${versionOneDot}.00 $out/lib/libinchi.so
+      install -m 644 INCHI_BASE/src/*.h $out/include/inchi
 
-    runHook postInstall
-  '';
+      runHook postInstall
+    '';
 
-  preFixup = lib.optionalString stdenv.isDarwin ''
-    fixDarwinDylibNames $(find "$out" -name "*.so.*")
-  '';
+    preFixup = lib.optionalString stdenv.isDarwin ''
+      fixDarwinDylibNames $(find "$out" -name "*.so.*")
+    '';
 
-  postInstall =
-    let
-      src-doc = fetchurl {
-        url = "http://www.inchi-trust.org/download/105/INCHI-1-DOC.zip";
-        sha1 = "2f54y0san34v01c215kk0cigzsn76js5";
-      };
-    in
-    ''
+    postInstall = ''
       unzip '${src-doc}'
       install -m 644 INCHI-1-DOC/*.pdf $doc/share
     '';
 
-  meta = with lib; {
-    homepage = "https://www.inchi-trust.org/";
-    description = "IUPAC International Chemical Identifier library";
-    license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ rmcgibbo ];
-  };
-}
+    meta = with lib; {
+      homepage = "https://www.inchi-trust.org/";
+      description = "IUPAC International Chemical Identifier library";
+      license = licenses.lgpl2Plus;
+      maintainers = with maintainers; [ rmcgibbo ];
+    };
+  }
diff --git a/nixpkgs/pkgs/development/libraries/indilib/udev-dir.patch b/nixpkgs/pkgs/development/libraries/indilib/udev-dir.patch
deleted file mode 100644
index 701680012914..000000000000
--- a/nixpkgs/pkgs/development/libraries/indilib/udev-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- indi-1.8.6/CMakeLists.txt	2020-08-21 05:56:59.000000000 -0500
-+++ CMakeLists.txt	2020-11-01 12:50:57.621293870 -0600
-@@ -77,7 +77,7 @@
- ## the following are directories where stuff will be installed to
- set(INCLUDE_INSTALL_DIR      "${CMAKE_INSTALL_PREFIX}/include/")
- set(PKGCONFIG_INSTALL_PREFIX "${CMAKE_INSTALL_LIBDIR}/pkgconfig/")
--set(UDEVRULES_INSTALL_DIR "/lib/udev/rules.d" CACHE STRING "Base directory for udev rules")
-+set(UDEVRULES_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d" CACHE STRING "Base directory for udev rules")
- 
- set(PKG_CONFIG_LIBDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
- 
diff --git a/nixpkgs/pkgs/development/libraries/iniparser/default.nix b/nixpkgs/pkgs/development/libraries/iniparser/default.nix
index 8c7fdfd04d6b..62deaeb1c281 100644
--- a/nixpkgs/pkgs/development/libraries/iniparser/default.nix
+++ b/nixpkgs/pkgs/development/libraries/iniparser/default.nix
@@ -36,6 +36,9 @@ stdenv.mkDerivation rec {
     cp libiniparser.a $out/lib
     cp libiniparser.so.1 $out/lib
     ln -s libiniparser.so.1 $out/lib/libiniparser.so
+
+    mkdir -p $out/lib/pkgconfig
+    substituteAll ${./iniparser.pc.in} $out/lib/pkgconfig/iniparser.pc
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/iniparser/iniparser.pc.in b/nixpkgs/pkgs/development/libraries/iniparser/iniparser.pc.in
new file mode 100644
index 000000000000..fb94188fff71
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/iniparser/iniparser.pc.in
@@ -0,0 +1,12 @@
+prefix=@out@
+exec_prefix=@out@
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+datarootdir=${prefix}/share
+datadir=${datarootdir}
+
+Name: libiniparser
+Description: Iniparser library
+Version: @version@
+Libs: -L${libdir} -liniparser
+Cflags: -I${includedir}
diff --git a/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix b/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
index 28138f103b9d..fa100f34607b 100644
--- a/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-gmmlib";
-  version = "20.4.1";
+  version = "21.1.1";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "gmmlib";
     rev    = "${pname}-${version}";
-    sha256 = "0qb0wpinfv8lg1pq1pxkl6v0kd8ax86m8zxzm6zjx91alsch1mi6";
+    sha256 = "0cdyrfyn05fadva8k02kp4nk14k274xfmhzwc0v7jijm1dw8v8rf";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix b/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix
index 01c6ef002e50..c60b00552b57 100644
--- a/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-driver";
-  version = "21.1.1";
+  version = "21.1.3";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "media-driver";
     rev    = "intel-media-${version}";
-    sha256 = "1cgmpy2wqhv8zljz73wm4rggpk9w1prpmab5qphfp7ljajfv7k8r";
+    sha256 = "1y6y6dia2y3b798f668q26pzwb1xai5d5jpmllpcxs9qikhkkx8p";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/irrlicht/default.nix b/nixpkgs/pkgs/development/libraries/irrlicht/default.nix
index e283a2909474..633108459713 100644
--- a/nixpkgs/pkgs/development/libraries/irrlicht/default.nix
+++ b/nixpkgs/pkgs/development/libraries/irrlicht/default.nix
@@ -27,7 +27,8 @@ stdenv.mkDerivation rec {
     mkdir -p $out/lib
   '';
 
-  buildInputs = [ unzip libGLU libGL libXrandr libX11 libXxf86vm ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ libGLU libGL libXrandr libX11 libXxf86vm ];
 
   meta = {
     homepage = "http://irrlicht.sourceforge.net/";
diff --git a/nixpkgs/pkgs/development/libraries/irrlicht/mac.nix b/nixpkgs/pkgs/development/libraries/irrlicht/mac.nix
index b41486ce9dd6..1235941b2dc3 100644
--- a/nixpkgs/pkgs/development/libraries/irrlicht/mac.nix
+++ b/nixpkgs/pkgs/development/libraries/irrlicht/mac.nix
@@ -31,8 +31,8 @@ stdenv.mkDerivation rec {
     "-DIRRLICHT_BUILD_TOOLS=OFF"
   ];
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ unzip OpenGL Cocoa IOKit ];
+  nativeBuildInputs = [ cmake unzip ];
+  buildInputs = [ OpenGL Cocoa IOKit ];
 
   meta = {
     homepage = "http://irrlicht.sourceforge.net/";
diff --git a/nixpkgs/pkgs/development/libraries/iso-codes/default.nix b/nixpkgs/pkgs/development/libraries/iso-codes/default.nix
index 6d770430ce56..75ace8097c9b 100644
--- a/nixpkgs/pkgs/development/libraries/iso-codes/default.nix
+++ b/nixpkgs/pkgs/development/libraries/iso-codes/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iso-codes";
-  version = "4.5.0";
+  version = "4.6.0";
 
   src = fetchurl {
     url = "https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/${pname}-${version}/${pname}-${pname}-${version}.tar.bz2";
-    sha256 = "17nnyx07q8vbyqsxbvp4m5s2nrc4fxl3dvgbgmkqww2wl4x1fv9y";
+    sha256 = "sha256-Ivd5538QpTFXP2r6ca/g12IZ0ZW1nduu0z4kiSb9Mxs=";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/jama/default.nix b/nixpkgs/pkgs/development/libraries/jama/default.nix
index 02dd4a5635b5..30044eb2cc05 100644
--- a/nixpkgs/pkgs/development/libraries/jama/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jama/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "031ns526fvi2nv7jzzv02i7i5sjcyr0gj884i3an67qhsx8vyckl";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
   propagatedBuildInputs = [ tnt ];
 
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/jasper/default.nix b/nixpkgs/pkgs/development/libraries/jasper/default.nix
new file mode 100644
index 000000000000..fa4421b9413d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/jasper/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "jasper";
+  version = "2.0.26";
+
+  src = fetchFromGitHub {
+    owner = "jasper-software";
+    repo = pname;
+    rev = "version-${version}";
+    hash = "sha256-zmoC8nIsQm2u2cSzu2prdyofo3JFNzJ1bjbIZ3YaAn4=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  meta = with lib; {
+    homepage = "https://jasper-software.github.io/jasper/";
+    description = "Image processing/coding toolkit";
+    longDescription = ''
+      JasPer is a software toolkit for the handling of image data. The software
+      provides a means for representing images, and facilitates the manipulation
+      of image data, as well as the import/export of such data in numerous
+      formats (e.g., JPEG-2000 JP2, JPEG, PNM, BMP, Sun Rasterfile, and
+      PGX). The import functionality supports the auto-detection (i.e.,
+      automatic determination) of the image format, eliminating the need to
+      explicitly identify the format of coded input data. A simple color
+      management engine is also provided in order to allow the accurate
+      representation of color. Partial support is included for the ICC color
+      profile file format, an industry standard for specifying color.
+
+      The JasPer software consists of a library and several application
+      programs. The code is written in the C programming language. This language
+      was chosen primarily due to the availability of C development environments
+      for most computing platforms when JasPer was first developed, circa 1999.
+    '';
+    license = licenses.free; # MIT-like
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix
index 5009fe6cac7f..974f7bf9a1cc 100644
--- a/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "3.11";
+  version = "3.12.0";
   pname = "commons-lang";
 
   src = fetchurl {
     url    = "mirror://apache/commons/lang/binaries/commons-lang3-${version}-bin.tar.gz";
-    sha256 = "08w7zg9v48rlaq0n17dnph8jydz9srh1pl3ffs3xdfsg9a7axjm4";
+    sha256 = "sha256-MwEkZd/Lf3kKyjM+CevxBeKl+5XCxjiz33kNPvqQjig=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/java/geoipjava/default.nix b/nixpkgs/pkgs/development/libraries/java/geoipjava/default.nix
index 4d9902cbbe9a..0e5b1084b49c 100644
--- a/nixpkgs/pkgs/development/libraries/java/geoipjava/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/geoipjava/default.nix
@@ -6,7 +6,8 @@ stdenv.mkDerivation {
     url = "https://geolite.maxmind.com/download/geoip/api/java/GeoIPJava-1.2.5.zip";
     sha256 = "1gb2d0qvvq7xankz7l7ymbr3qprwk9bifpy4hlgw0sq4i6a55ypd";
   };
-  buildInputs = [ jdk unzip ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ jdk ];
   buildPhase =
     ''
       cd source
diff --git a/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix b/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix
index 7a7d6a933bc0..0484f4c59ba6 100644
--- a/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   ANT_ARGS =
     # Note that our OpenJDK on Darwin is currently 32-bit, so we have to build a 32-bit dylib.
     (if stdenv.is64bit then [ "-Dskip32=true" ] else [ "-Dskip64=true" ])
-    ++ [ "-Dgcc=cc" "-Dant.build.javac.source=1.6" ]
+    ++ [ "-Dgcc=${stdenv.cc.targetPrefix}cc" "-Dant.build.javac.source=1.6" ]
     ++ lib.optional stdenv.isDarwin "-DisMac=true";
 
   installPhase =
diff --git a/nixpkgs/pkgs/development/libraries/java/lombok/default.nix b/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
index ddf95ead249a..5519a1fb7665 100644
--- a/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1msys7xkaj0d7fi112fmb2z50mk46db58agzrrdyimggsszwn1kj";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   outputs = [ "out" "bin" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/java/rhino/default.nix b/nixpkgs/pkgs/development/libraries/java/rhino/default.nix
index d34787d8b1f0..bc50f0206598 100644
--- a/nixpkgs/pkgs/development/libraries/java/rhino/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/rhino/default.nix
@@ -31,7 +31,8 @@ stdenv.mkDerivation {
       ln -sv "${xbeans}" "build/tmp-xbean/xbean.zip"
     '';
 
-  buildInputs = [ unzip ant javac jvm ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ ant javac jvm ];
 
   buildPhase = "ant jar";
   doCheck    = false;
diff --git a/nixpkgs/pkgs/development/libraries/json-glib/default.nix b/nixpkgs/pkgs/development/libraries/json-glib/default.nix
index a820d947b7f8..ed086dac90fb 100644
--- a/nixpkgs/pkgs/development/libraries/json-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/json-glib/default.nix
@@ -1,23 +1,47 @@
-{ lib, stdenv, fetchurl, glib, meson, ninja, pkg-config, gettext
-, gobject-introspection, fixDarwinDylibNames, gnome3
+{ lib
+, stdenv
+, fetchurl
+, glib
+, meson
+, ninja
+, pkg-config
+, gettext
+, gobject-introspection
+, fixDarwinDylibNames
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, gnome3
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "json-glib";
-  version = "1.4.4";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "1.6.2";
+
+  outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3";
   };
 
-  propagatedBuildInputs = [ glib ];
-  nativeBuildInputs = [ meson ninja pkg-config gettext gobject-introspection glib ]
-    ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    gobject-introspection
+    glib
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+  ] ++ lib.optional stdenv.hostPlatform.isDarwin [
+    fixDarwinDylibNames
+  ];
 
-  outputs = [ "out" "dev" ];
+  propagatedBuildInputs = [
+    glib
+  ];
 
   doCheck = true;
 
@@ -30,8 +54,8 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A library providing (de)serialization support for the JavaScript Object Notation (JSON) format";
     homepage = "https://wiki.gnome.org/Projects/JsonGlib";
-    license = licenses.lgpl2;
-    maintainers = with maintainers; [ lethalman ];
+    license = licenses.lgpl21Plus;
+    maintainers = teams.gnome.members;
     platforms = with platforms; unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix b/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix
index b7754a186d1e..90d3f1da6e63 100644
--- a/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python, validatePkgConfig, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub, cmake, python3, validatePkgConfig, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "jsoncpp";
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     export LD_LIBRARY_PATH="$PWD/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
   '';
 
-  nativeBuildInputs = [ cmake python validatePkgConfig ];
+  nativeBuildInputs = [ cmake python3 validatePkgConfig ];
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=ON"
diff --git a/nixpkgs/pkgs/development/libraries/jxrlib/default.nix b/nixpkgs/pkgs/development/libraries/jxrlib/default.nix
index 78cc48d82097..b2cc4ab08b45 100644
--- a/nixpkgs/pkgs/development/libraries/jxrlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jxrlib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python }:
+{ lib, stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "jxrlib";
@@ -19,7 +19,9 @@ stdenv.mkDerivation rec {
       --replace '.so' '.dylib'
   '';
 
-  nativeBuildInputs = [ python ];
+  nativeBuildInputs = [ python3 ];
+
+  strictDeps = true;
 
   makeFlags = [ "DIR_INSTALL=$(out)" "SHARED=1" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/attica.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/attica.nix
index 0766a589a2e0..4cb2e8e958aa 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/attica.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/attica.nix
@@ -4,7 +4,7 @@ mkDerivation {
   name = "attica";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh b/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
index 5c6ea732b690..3ce0ca063ca1 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.76/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.79/ -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kapidox.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kapidox.nix
index ca5e773a45b9..4395f3cd0dd7 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kapidox.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kapidox.nix
@@ -1,9 +1,9 @@
-{ mkDerivation, lib, extra-cmake-modules, python }:
+{ mkDerivation, lib, extra-cmake-modules, python3 }:
 
 mkDerivation {
   name = "kapidox";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  nativeBuildInputs = [ extra-cmake-modules python ];
+  nativeBuildInputs = [ extra-cmake-modules python3 python3.pkgs.setuptools ];
   postFixup = ''
     moveToOutput bin $bin
   '';
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/karchive.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/karchive.nix
index 8c55f8da6a0c..7a9ea86bbb53 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/karchive.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/karchive.nix
@@ -1,17 +1,17 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  bzip2, lzma, qtbase, zlib,
+  bzip2, xz, qtbase, zlib,
 }:
 
 mkDerivation {
   name = "karchive";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ bzip2 lzma zlib ];
+  buildInputs = [ bzip2 xz zlib ];
   propagatedBuildInputs = [ qtbase ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcodecs.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kcodecs.nix
index 978db644a56f..357c0e1d11cb 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcodecs.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kcodecs.nix
@@ -4,7 +4,7 @@ mkDerivation {
   name = "kcodecs";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools gperf ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kconfig.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kconfig.nix
index 2650843aa55d..94f4cb04807b 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kconfig.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kconfig.nix
@@ -4,7 +4,7 @@ mkDerivation {
   name = "kconfig";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
index d5a407ee16f2..6f2e3f923871 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "kcoreaddons";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools shared-mime-info ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
index c94167d5d76d..b497ebe1c80e 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "kdbusaddons";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools qtx11extras ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch
index f82bf828e8e9..07da70092dc6 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch
@@ -17,14 +17,14 @@ index 44fbacd..6b5abf5 100644
  
  static QString findDaemon()
  {
--    QString daemon = QFile::decodeName(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/kdesud");
+-    QString daemon = QFile::decodeName(KDE_INSTALL_FULL_LIBEXECDIR_KF5 "/kdesud");
 -    if (!QFile::exists(daemon)) { // if not in libexec, find it in PATH
 -        daemon = QStandardPaths::findExecutable(QStringLiteral("kdesud"));
 -        if (daemon.isEmpty()) {
 -            qCWarning(KSU_LOG) << "kdesud daemon not found.";
 +    QString daemon = QFile::decodeName("/run/wrappers/bin/kdesud");
 +    if (!QFile::exists(daemon)) { // if not in wrappers
-+        daemon = QFile::decodeName(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/kdesud");
++        daemon = QFile::decodeName(KDE_INSTALL_FULL_LIBEXECDIR_KF5 "/kdesud");
 +        if (!QFile::exists(daemon)) { // if not in libexec, find it in PATH
 +            daemon = QStandardPaths::findExecutable(QStringLiteral("kdesud"));
 +            if (daemon.isEmpty()) {
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdnssd.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdnssd.nix
index 9e2f827eff59..b4dabba624a0 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdnssd.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdnssd.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "kdnssd";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ avahi qttools ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/cmake-install-paths.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/cmake-install-paths.patch
index 732f7b69c828..daeaf222b630 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/cmake-install-paths.patch
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/cmake-install-paths.patch
@@ -6,7 +6,7 @@ Index: kfilemetadata-5.18.0/src/CMakeLists.txt
  
  install(EXPORT KF5FileMetaDataTargets
          NAMESPACE KF5::
--        DESTINATION ${LIB_INSTALL_DIR}/cmake/KF5FileMetaData
+-        DESTINATION ${KDE_INSTALL_LIBDIR}/cmake/KF5FileMetaData
 +        DESTINATION ${KDE_INSTALL_FULL_CMAKEPACKAGEDIR}/KF5FileMetaData
          FILE KF5FileMetaDataTargets.cmake)
  
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kguiaddons.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
index 66cd8ddf64f6..6c7365fd27e0 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
@@ -1,17 +1,19 @@
-{
-  mkDerivation, lib,
-  extra-cmake-modules,
-  qtbase, qtx11extras,
+{ mkDerivation, lib
+, extra-cmake-modules
+, qtbase, qtx11extras, wayland
 }:
 
 mkDerivation {
   name = "kguiaddons";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
-  };
+
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtx11extras ];
+  buildInputs = [ qtx11extras wayland ];
   propagatedBuildInputs = [ qtbase ];
+
   outputs = [ "out" "dev" ];
+
+  meta = with lib; {
+    maintainers = [ maintainers.ttuegel ];
+    broken = versionOlder qtbase.version "5.14.0";
+  };
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/ki18n.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/ki18n.nix
index 69ad2fbc737e..0733abc86920 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/ki18n.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/ki18n.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "ki18n";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedNativeBuildInputs = [ gettext python3 ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kidletime.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kidletime.nix
index a1e53bb408bd..883ef2862e49 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kidletime.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kidletime.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "kidletime";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtx11extras ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0001-kinit-libpath.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0001-kinit-libpath.patch
index 21477394c915..a3e4014df509 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0001-kinit-libpath.patch
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0001-kinit-libpath.patch
@@ -20,7 +20,7 @@ index 8fff17a..0801b75 100644
 -                //     https://sourceware.org/bugzilla/show_bug.cgi?id=13945
 -                //     - so we try hacking it in ourselves
 -                QString install_lib_dir = QFile::decodeName(
--                        CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/");
+-                        CMAKE_INSTALL_PREFIX "/" KDE_INSTALL_LIBDIR "/");
 -                QString orig_libpath = libpath;
 -                libpath = install_lib_dir + libpath;
 -                l.setFileName(libpath);
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0002-start_kdeinit-path.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0002-start_kdeinit-path.patch
index bf25b98d6c56..3728c3c58b83 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0002-start_kdeinit-path.patch
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0002-start_kdeinit-path.patch
@@ -15,7 +15,7 @@ index 891f50c..ef664ad 100644
  #include <string.h>
  #include <unistd.h>
  
--#define EXECUTE CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/start_kdeinit"
+-#define EXECUTE KDE_INSTALL_FULL_LIBEXECDIR_KF5 "/start_kdeinit"
 +#define EXECUTE "/run/wrappers/bin/start_kdeinit"
  
  #if KDEINIT_OOM_PROTECT
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0003-kdeinit-extra-libs.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0003-kdeinit-extra-libs.patch
index 9df8505b2929..499c975a9e2d 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0003-kdeinit-extra-libs.patch
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/0003-kdeinit-extra-libs.patch
@@ -33,7 +33,7 @@ index 0801b75..622dd5f 100644
 -// Completely unrelated to plugins.
 -static QString findSharedLib(const QString &lib)
 -{
--    QString path = QFile::decodeName(CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/") + lib;
+-    QString path = QFile::decodeName(CMAKE_INSTALL_PREFIX "/" KDE_INSTALL_LIBDIR "/") + lib;
 -    if (QFile::exists(path)) {
 -        return path;
 -    }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/default.nix
index 434496c7b9a9..f4d771ab75f8 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation, lib, fetchpatch,
   extra-cmake-modules, kdoctools, qttools,
   karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
   kdbusaddons, ki18n, kiconthemes, kitemviews, kjobwidgets, knotifications,
@@ -24,5 +24,5 @@ mkDerivation {
   patches = [
     ./samba-search-path.patch
     ./kio-debug-module-loader.patch
-  ];
+ ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kirigami2.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kirigami2.nix
index 751e3d7b73f1..60cef704865c 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kirigami2.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kirigami2.nix
@@ -3,7 +3,7 @@
 mkDerivation {
   name = "kirigami2";
   meta = {
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase qtquickcontrols2 qttranslations qtgraphicaleffects ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kitemmodels.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
index 91bc3e2b98d4..c3266a21c064 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "kitemmodels";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kitemviews.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kitemviews.nix
index 004d1ac77a6d..eeed5c703a29 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kitemviews.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kitemviews.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "kitemviews";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kplotting.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kplotting.nix
index 1774b044b165..f1c99e0c93bb 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kplotting.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kplotting.nix
@@ -6,7 +6,7 @@ mkDerivation {
   name = "kplotting";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtbase qttools ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwayland.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwayland.nix
index 36e0ddc3f94c..5b73cc7fceab 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwayland.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwayland.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "kwayland";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ plasma-wayland-protocols wayland wayland-protocols ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
index 63a95bc217c8..821c703a5899 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "kwidgetsaddons";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
index ab93966c0ac9..c418ca39433e 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
@@ -9,7 +9,7 @@ mkDerivation {
   name = "kwindowsystem";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = lib.versionOlder qtbase.version "5.7.0";
+    broken = lib.versionOlder qtbase.version "5.14.0";
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ libpthreadstubs libXdmcp qttools qtx11extras ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/solid.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/solid.nix
index d1beb03fa620..f769f76854af 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/solid.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/solid.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "solid";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ bison extra-cmake-modules flex media-player-info ];
   buildInputs = [ qtdeclarative qttools ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/sonnet.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/sonnet.nix
index 5659aaf69607..431e4b810580 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/sonnet.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/sonnet.nix
@@ -7,7 +7,7 @@ mkDerivation {
   name = "sonnet";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ aspell qttools ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
index dbc74b831125..871c15d6c1a3 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -1,670 +1,670 @@
 # DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/kde-frameworks/
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/kde-frameworks
 { fetchurl, mirror }:
 
 {
   attica = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/attica-5.76.0.tar.xz";
-      sha256 = "64b262f61935653b91a83f4d1c659e7dcaf575b12aa955fe16d8392adb256e22";
-      name = "attica-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/attica-5.79.0.tar.xz";
+      sha256 = "1p6rcpfq3ifz8c8ws5k085mzg7fya2dpv7ryd6iqwi083ys49wla";
+      name = "attica-5.79.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/baloo-5.76.0.tar.xz";
-      sha256 = "8ae9e6dd51c84150f7fc581ebf04617f3ee9e1f96e08df79d6f15ee29f5f95f9";
-      name = "baloo-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/baloo-5.79.0.tar.xz";
+      sha256 = "0l7z7260pjw6gmcnzp0v57dsypl2yxnm8dxfcdiln8gw2fisryc0";
+      name = "baloo-5.79.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/bluez-qt-5.76.0.tar.xz";
-      sha256 = "a3f99a10e5f018bac91b4bd88be23a6ea9399aa1ab29d16840d5ee2c20537835";
-      name = "bluez-qt-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/bluez-qt-5.79.0.tar.xz";
+      sha256 = "0snips4ak77zpz6x9bzr5lmal712lz64xns1bwlz80svzcikznpj";
+      name = "bluez-qt-5.79.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/breeze-icons-5.76.0.tar.xz";
-      sha256 = "d0211f0e6fa9137dbb42bcad1ac352bbfe793b6a3e6483adc2051b5c24a7851b";
-      name = "breeze-icons-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/breeze-icons-5.79.0.tar.xz";
+      sha256 = "06sd7grh7r6wnx8p8mhp7vfhsg3bnyafy94fj6jz6gg9m0308cn6";
+      name = "breeze-icons-5.79.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/extra-cmake-modules-5.76.0.tar.xz";
-      sha256 = "4845e9e0a43ba15158c0cfdc7ab594e7d02692fab9083201715270a096704a32";
-      name = "extra-cmake-modules-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/extra-cmake-modules-5.79.0.tar.xz";
+      sha256 = "1n5yd3ggz5pq4qs7f86aqvzvfmxx2khsn1i1m67xhrn5k7dh55mj";
+      name = "extra-cmake-modules-5.79.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/frameworkintegration-5.76.0.tar.xz";
-      sha256 = "7ac6c070190ab4c0c2ac15a921886ed7f3b70d6a0b7c41766d21a913e9f086fb";
-      name = "frameworkintegration-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/frameworkintegration-5.79.0.tar.xz";
+      sha256 = "0c0i8hqqvi65bh1ghb6ql1a8vqihxck6xhpki4g0ryipilvqmj21";
+      name = "frameworkintegration-5.79.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kactivities-5.76.0.tar.xz";
-      sha256 = "efba13d0d720502bf8bee161b688ba21704f7c213c8b95da65b77b76c9cb3422";
-      name = "kactivities-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kactivities-5.79.0.tar.xz";
+      sha256 = "0d3ds43iqqlbii9xwp7f20nz338xqmq70a4v84zb5ks1mnhkz47l";
+      name = "kactivities-5.79.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kactivities-stats-5.76.0.tar.xz";
-      sha256 = "85bb432a10a48af505a457c7ccacffad7914835f94042472083e878cabcd2c14";
-      name = "kactivities-stats-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kactivities-stats-5.79.0.tar.xz";
+      sha256 = "0s5r8891flkmrwga15ihqrmj4i12khxwp97kaa84j4mqva6zdx93";
+      name = "kactivities-stats-5.79.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kapidox-5.76.0.tar.xz";
-      sha256 = "8c6c9401059d34fa2d7f052e21387d803a1131a60fcd1305ddf5d5dfe22c6d97";
-      name = "kapidox-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kapidox-5.79.0.tar.xz";
+      sha256 = "0qk4ksxdaiphlpd51mgwdddxq5vq8n55dd80s2a5q93jkcywhli7";
+      name = "kapidox-5.79.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/karchive-5.76.0.tar.xz";
-      sha256 = "503d33b247ae24260c73aac2c48601eb4f8be3f10c9149549ea5dd2d22082a2a";
-      name = "karchive-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/karchive-5.79.0.tar.xz";
+      sha256 = "01qf46k7gp11fh53afcpmbfx0w5bi0k8jflb2db8nss7ri3bzlhc";
+      name = "karchive-5.79.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kauth-5.76.0.tar.xz";
-      sha256 = "c277a7ab750158a56381d8f74b8ebed5205b785eca2444c65cbf59d429958a89";
-      name = "kauth-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kauth-5.79.0.tar.xz";
+      sha256 = "18bqfn47iyhf1zfkw3mgdxz154f9gqbkn41c3ca94qjm91mb40da";
+      name = "kauth-5.79.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kbookmarks-5.76.0.tar.xz";
-      sha256 = "ac5416f1ac21cb9e9fdf72a95de855a9891cea0ed7e1436a93c019b6c45af2af";
-      name = "kbookmarks-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kbookmarks-5.79.0.tar.xz";
+      sha256 = "109rjikqxv7mbhv22p41rbfz43510y6k7p0ahggynv0x5y5xzkqd";
+      name = "kbookmarks-5.79.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kcalendarcore-5.76.0.tar.xz";
-      sha256 = "e6fd390b8ba2a899e7abda3de8d9ab7e5155fede6bbee9ca2b302b931a0232ae";
-      name = "kcalendarcore-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kcalendarcore-5.79.0.tar.xz";
+      sha256 = "19vc1ji0jlk899rmr6i53l51diadn67mh6z6j787bp29jlcmnciv";
+      name = "kcalendarcore-5.79.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kcmutils-5.76.0.tar.xz";
-      sha256 = "0ea51ea9e46e6359c76fe099fd2cd03c20891a1cad26ea156ca921a9f0869009";
-      name = "kcmutils-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kcmutils-5.79.0.tar.xz";
+      sha256 = "1wry88rikj7mz460m3c7gr6fwcdpdlx9jrxna2ikybnk9aw8dlkk";
+      name = "kcmutils-5.79.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kcodecs-5.76.0.tar.xz";
-      sha256 = "b4e1fe3247fdaf80f4414716f6fbcd42e8de04f64c8dd50bd13e9e9a78abf6e1";
-      name = "kcodecs-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kcodecs-5.79.0.tar.xz";
+      sha256 = "1ab4dz6nvmd6fzsl7wbrvjlz0c0fk0bjb0jcklrj205pkhiaf7y8";
+      name = "kcodecs-5.79.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kcompletion-5.76.0.tar.xz";
-      sha256 = "014c56172040bf3aa27f81a6bb433914a5c22d2dfb1f8566be4cce678d09193a";
-      name = "kcompletion-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kcompletion-5.79.0.tar.xz";
+      sha256 = "1znp6h4pggkl1hcbbw47vjkgmpc1rj6mx01p05x0ad143mwqpzwv";
+      name = "kcompletion-5.79.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kconfig-5.76.0.tar.xz";
-      sha256 = "153d3ed114954594b0dcc00e1317483609649c064203e6eb8b110686dbaba686";
-      name = "kconfig-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kconfig-5.79.0.tar.xz";
+      sha256 = "02jirbphrg6dyxd444ghzhy053s85pq4lgpppca3nmvzr2572j7r";
+      name = "kconfig-5.79.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kconfigwidgets-5.76.0.tar.xz";
-      sha256 = "f8eed399008a041df2da9cc3f2313df11376b94c85472900b39b9d6abcabe6d4";
-      name = "kconfigwidgets-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kconfigwidgets-5.79.0.tar.xz";
+      sha256 = "1lrh2dis3invj9vclpa1mca8hrks1b82c5hkf0g0lilg69lir83y";
+      name = "kconfigwidgets-5.79.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kcontacts-5.76.0.tar.xz";
-      sha256 = "4a9e3189b4ed1bc0231bf98cba134e78e5a692a14d202f0311f6e5c5190cfad5";
-      name = "kcontacts-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kcontacts-5.79.0.tar.xz";
+      sha256 = "0jflvfkyd7llv54dxyd1a4h1l4xgrqggxadiqv0c6ijn4dvlsmy9";
+      name = "kcontacts-5.79.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kcoreaddons-5.76.0.tar.xz";
-      sha256 = "fbab3e3e18f42922ecdc50138ed31f62007cafa902b959d89b1233b5557282d6";
-      name = "kcoreaddons-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kcoreaddons-5.79.0.tar.xz";
+      sha256 = "0n9nh4vkk19crp30dac3x9mzgzl4kv38jw6dcg4fwfp77gcin8kg";
+      name = "kcoreaddons-5.79.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kcrash-5.76.0.tar.xz";
-      sha256 = "c4e32254b22f1f02db556be2ad40000cc52cac2e30a35682af3c75ac69710993";
-      name = "kcrash-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kcrash-5.79.0.tar.xz";
+      sha256 = "0w74d0j1ckbcd8q8lc57g3y7g50v222mgsvli77ql29imzx79apc";
+      name = "kcrash-5.79.0.tar.xz";
     };
   };
   kdav = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kdav-5.76.0.tar.xz";
-      sha256 = "c6b1d32d9c976585e278c2061091ee90ef2d7feb29642f236a3941cea5ffae72";
-      name = "kdav-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kdav-5.79.0.tar.xz";
+      sha256 = "1573qan4xz8k33zfghwdmlr7pgbd4sfj0pshwv6bkx78kprd3xfl";
+      name = "kdav-5.79.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kdbusaddons-5.76.0.tar.xz";
-      sha256 = "8e11b19e4a3d4ad8e4deda245eb51b7b77255cbacc07346e7074c8110b946e0a";
-      name = "kdbusaddons-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kdbusaddons-5.79.0.tar.xz";
+      sha256 = "17sklakn9nsrjajb3nwg8ibhx64c4m86pr6ln567rdr6cahcaw90";
+      name = "kdbusaddons-5.79.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kdeclarative-5.76.0.tar.xz";
-      sha256 = "3dfaa271a97be48e72d5fff0dd3c3c1995be3b9e7d0451b197b79418d76c4ce3";
-      name = "kdeclarative-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kdeclarative-5.79.0.tar.xz";
+      sha256 = "05b1apviqy3dn2isqxf0bxj86r9q40pjlcqq8y15s36d6ykijyzh";
+      name = "kdeclarative-5.79.0.tar.xz";
     };
   };
   kded = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kded-5.76.0.tar.xz";
-      sha256 = "2e94a4737ffc359d3614a1dff15b9727d54cb5fe639828946e0efcdcdbff3516";
-      name = "kded-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kded-5.79.0.tar.xz";
+      sha256 = "1gyb864rqbdi64mjc165fhcvnsw06z2zi8dg728428nzmw0dysbm";
+      name = "kded-5.79.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/portingAids/kdelibs4support-5.76.0.tar.xz";
-      sha256 = "b581273dfaebc5697eb7aa616d858119227dd6c5b781f216abdbff1d93076f0d";
-      name = "kdelibs4support-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/portingAids/kdelibs4support-5.79.0.tar.xz";
+      sha256 = "049l0mlf71xan8ls4hkp8s6lrnhn2i22jcnki1d5wci01dgffhm5";
+      name = "kdelibs4support-5.79.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/portingAids/kdesignerplugin-5.76.0.tar.xz";
-      sha256 = "5f9190e00761330c031310b94e195766e639115675081765050ddc55069a1b71";
-      name = "kdesignerplugin-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/portingAids/kdesignerplugin-5.79.0.tar.xz";
+      sha256 = "1jgqr76sx6d3jmqc350k49lqym5jkixnl3dq66430pvlrfv47w2n";
+      name = "kdesignerplugin-5.79.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kdesu-5.76.0.tar.xz";
-      sha256 = "421ef43bd47c3eb6b05806af033276c19df20fd76a06b67fada529bb9c52e642";
-      name = "kdesu-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kdesu-5.79.0.tar.xz";
+      sha256 = "1hlz5pr72qk64gwp30qx92jhlszri5qjsisvl4cxs01ylnrqy0c1";
+      name = "kdesu-5.79.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/portingAids/kdewebkit-5.76.0.tar.xz";
-      sha256 = "cf7de765c5fcad0922a1bb9376b65cfb00eb3d29a0c4ed8ef43fc363abe906ba";
-      name = "kdewebkit-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/portingAids/kdewebkit-5.79.0.tar.xz";
+      sha256 = "0d81p49n2ryig9xp5id1dx4rpjjd2spl78m0xlq6rczyk7yf73pz";
+      name = "kdewebkit-5.79.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.76.0";
+    version = "5.79.1";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kdnssd-5.76.0.tar.xz";
-      sha256 = "9cc2979e56915b5c4d8f8e66053a41406bff46aefd65af1ab07d2b87d8f4a753";
-      name = "kdnssd-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kdnssd-5.79.1.tar.xz";
+      sha256 = "160qyll887wblrw0lhax749lzwhlp92sckj4g259955p8gnsw5lp";
+      name = "kdnssd-5.79.1.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kdoctools-5.76.0.tar.xz";
-      sha256 = "84ea7974d741e6261e8c269750367a00375c6111dbc542e917647d0267337ae4";
-      name = "kdoctools-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kdoctools-5.79.0.tar.xz";
+      sha256 = "03bvj3grjw6a56shdy8c3mdp11pwmc72ccp3ia00bz310ahpphzb";
+      name = "kdoctools-5.79.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kemoticons-5.76.0.tar.xz";
-      sha256 = "a50f69e62b342d6f058000ff1823569ab61d3310cb0020d848a78deaf20dff99";
-      name = "kemoticons-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kemoticons-5.79.0.tar.xz";
+      sha256 = "04x1yfdcyvx3x4aqha69rsaa78j4iw6qam3hp5a4di0yf653mphp";
+      name = "kemoticons-5.79.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kfilemetadata-5.76.0.tar.xz";
-      sha256 = "fa24758c93ce3df9f8ced4310dc0bf58e129b08e50f254daafa025afc9213d68";
-      name = "kfilemetadata-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kfilemetadata-5.79.0.tar.xz";
+      sha256 = "0yxjapq88pfcma82mc9gz03x1bb81xl6xzrinr6jgz09206ra395";
+      name = "kfilemetadata-5.79.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kglobalaccel-5.76.0.tar.xz";
-      sha256 = "3a846f783ccb68da1f152fb5778612c4ed14cd79c6b5929ef729cf59e47462d4";
-      name = "kglobalaccel-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kglobalaccel-5.79.0.tar.xz";
+      sha256 = "0qqxvv3m7b44makgdcsxdhzamm4ahm1pn94rn6cpsrqsyci8axy8";
+      name = "kglobalaccel-5.79.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kguiaddons-5.76.0.tar.xz";
-      sha256 = "bdaa2ed104bfa9c2ebd702f033935a83560e1d00c7302620a6ae52cb309c7125";
-      name = "kguiaddons-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kguiaddons-5.79.0.tar.xz";
+      sha256 = "118wiy3pbmbazfivmh0w2g5l10qcp10b34r3d02pj7rs2a74h05w";
+      name = "kguiaddons-5.79.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kholidays-5.76.0.tar.xz";
-      sha256 = "2eeae5812b33b2527c27a137fee0d7ec66fe7164bd28afd0d2a8362f6114618b";
-      name = "kholidays-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kholidays-5.79.0.tar.xz";
+      sha256 = "1lbbq6y1xkffh9qma7hr5hi712kl85kv51gij0mj69ssv1iq2a8n";
+      name = "kholidays-5.79.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/portingAids/khtml-5.76.0.tar.xz";
-      sha256 = "163139cf9ed9c43bba9532e64ae6376e8ced9b19ea8bb8235ff91c91c4c5a3f4";
-      name = "khtml-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/portingAids/khtml-5.79.0.tar.xz";
+      sha256 = "1916kpb3kr0d7lbf0b65lrwkxnlgickm7vrmlc3qwlmf3fyqvkhy";
+      name = "khtml-5.79.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/ki18n-5.76.0.tar.xz";
-      sha256 = "0e87bc1136e21f7860f15daa39e8d16e5a773995fce2b87b0cef0043c4ce0e7a";
-      name = "ki18n-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/ki18n-5.79.0.tar.xz";
+      sha256 = "12sa7ycxc7m7nrsm6x7f822c8p586hy0syny5ya8vpmhwk1j3gik";
+      name = "ki18n-5.79.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kiconthemes-5.76.0.tar.xz";
-      sha256 = "3b3c4ab8369061418677c840963cc868dcecc2a4e57f0c73448e16a46773c7d3";
-      name = "kiconthemes-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kiconthemes-5.79.0.tar.xz";
+      sha256 = "0bbs8q0dpz4qyxsd1qk5jxazn600m5j2axzccxyrr21r9plbs4nx";
+      name = "kiconthemes-5.79.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kidletime-5.76.0.tar.xz";
-      sha256 = "0866fc98b5b045158742f03f5810909b24f1edf374a6014d476d67fe0466eb62";
-      name = "kidletime-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kidletime-5.79.0.tar.xz";
+      sha256 = "0pp2ii4cvxygz40ai0b3rpqdjgpq4nya2hrms9c3yxb5hizrrrak";
+      name = "kidletime-5.79.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kimageformats-5.76.0.tar.xz";
-      sha256 = "78ced2665f8918beb617b74962d188dcbb01a92a90ba49bfd173671bdb14e68d";
-      name = "kimageformats-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kimageformats-5.79.0.tar.xz";
+      sha256 = "09ffc44vzcin2ikyhm0awba7ag7pbnam4cilvfr3lwnj022y7j7c";
+      name = "kimageformats-5.79.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kinit-5.76.0.tar.xz";
-      sha256 = "a5b63c10b4fc5efcbb5f92b7bce928b4a4880c0ad5d12ff12518106b09239546";
-      name = "kinit-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kinit-5.79.0.tar.xz";
+      sha256 = "0ppri3gaiwawydjfw8ji6accrpwc8ms0sb1s5pn59wqiyv52f5rv";
+      name = "kinit-5.79.0.tar.xz";
     };
   };
   kio = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kio-5.76.0.tar.xz";
-      sha256 = "9351fc85c4020f2f77012e077f4f9d04d8f233e9b67f9b7619c9bc064714145b";
-      name = "kio-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kio-5.79.0.tar.xz";
+      sha256 = "1ri5dv8lc4ywc7jknlszri812y91mgggjx5z5qfkv971njm6fz3n";
+      name = "kio-5.79.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kirigami2-5.76.0.tar.xz";
-      sha256 = "90806125143807b74ee7f2fc74cd781d99b4e69ce5f15dcc28e1923f7a34a80a";
-      name = "kirigami2-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kirigami2-5.79.0.tar.xz";
+      sha256 = "01rb678qz1avzi7393wylwnc13ndzx2pgqnz3bd0zki0pjfrrlzp";
+      name = "kirigami2-5.79.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kitemmodels-5.76.0.tar.xz";
-      sha256 = "53855ccdd1105aa792914f9c88f357039bf2394af8400beaaecd9729f70e9cb0";
-      name = "kitemmodels-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kitemmodels-5.79.0.tar.xz";
+      sha256 = "1g9xa0h3kq0m5v1yvwgr8f6lrq8n2x1qzqqjbbbbyg8ayavv4abs";
+      name = "kitemmodels-5.79.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kitemviews-5.76.0.tar.xz";
-      sha256 = "b102cb67513d804fd7eed2ae20bb4ba679d38de4f236de6bc03709ff0c0bc001";
-      name = "kitemviews-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kitemviews-5.79.0.tar.xz";
+      sha256 = "0p21hyxhain2mr19lzfml23ilpgqwr2i27p1qg39jnwyb74jw0nl";
+      name = "kitemviews-5.79.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kjobwidgets-5.76.0.tar.xz";
-      sha256 = "850b6af6c027476e594e6ed77ea0e531abb69ff726fce41b91e541fbee3ecedf";
-      name = "kjobwidgets-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kjobwidgets-5.79.0.tar.xz";
+      sha256 = "059a58hp0npip07w7idjrl5sjjgl4i3bdqzv1k22hlvzdsyibggr";
+      name = "kjobwidgets-5.79.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/portingAids/kjs-5.76.0.tar.xz";
-      sha256 = "829eb1308b9b07cdd07b34d80eb5e3fcf5225fa4816da19bce886add600bb62a";
-      name = "kjs-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/portingAids/kjs-5.79.0.tar.xz";
+      sha256 = "1v51xjmwxi1x85b4hlj8m12zxl5w0d160kjjbrrxqfn64i4302ga";
+      name = "kjs-5.79.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/portingAids/kjsembed-5.76.0.tar.xz";
-      sha256 = "d7fe11b69445afe372388c5ab310d38ab69e203f3995136a948c9bbf9b8b4a88";
-      name = "kjsembed-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/portingAids/kjsembed-5.79.0.tar.xz";
+      sha256 = "18kjq5mim7b1a5mlhkwpwvnszjqxilhi4laqladh97wkmvsr85py";
+      name = "kjsembed-5.79.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/portingAids/kmediaplayer-5.76.0.tar.xz";
-      sha256 = "3185da877c2529c6e209cb382593bbb4778f80aee1b1a29b384b3f05ff99ed89";
-      name = "kmediaplayer-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/portingAids/kmediaplayer-5.79.0.tar.xz";
+      sha256 = "1lgrcib9acbzgs1kv44bqfisrayiir2r1iygrrncp117fj9cqx8b";
+      name = "kmediaplayer-5.79.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/knewstuff-5.76.0.tar.xz";
-      sha256 = "d6589b420204d1133997f33b598324c839ec6a0db96936e2e51b7b156cafbc6b";
-      name = "knewstuff-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/knewstuff-5.79.0.tar.xz";
+      sha256 = "0bsg0r0s12ck2cafkvnmjldr32ykivcpqjs1zfzqqbvy5w05a81y";
+      name = "knewstuff-5.79.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/knotifications-5.76.0.tar.xz";
-      sha256 = "56a7daf4951b3564e244d8ba48d443e78c6d703d9d4ccc280c56d0c986de47a2";
-      name = "knotifications-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/knotifications-5.79.0.tar.xz";
+      sha256 = "11g4xsa0z9680k4blxb1axn874p6s2vd5p9h376ln3blhjmy17hj";
+      name = "knotifications-5.79.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/knotifyconfig-5.76.0.tar.xz";
-      sha256 = "9f98834a9b8135a60a5d67e7ac45229a668a889d42a14c2ca5365885acd2370e";
-      name = "knotifyconfig-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/knotifyconfig-5.79.0.tar.xz";
+      sha256 = "0c6d95bf8876czjd39cla7pd3li8sm684h04f77czf6sh1mil49d";
+      name = "knotifyconfig-5.79.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kpackage-5.76.0.tar.xz";
-      sha256 = "97791ef08ca18892d6aa6a50fa0a87ae72cad10de9f17e3fb503a370de829772";
-      name = "kpackage-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kpackage-5.79.0.tar.xz";
+      sha256 = "1xkkw4lk9hx2irni5d2k7873bffgd2w41qvvp25d786dz612fy27";
+      name = "kpackage-5.79.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kparts-5.76.0.tar.xz";
-      sha256 = "c516b5c1f2bca4a109dc2d186ef6729c1ad53a242877dfe942b84f131e93412d";
-      name = "kparts-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kparts-5.79.0.tar.xz";
+      sha256 = "0d9dsgf6q44gqril6h9w5jfsavk0m5gclbmjdxjkcvrz3xfbjhd9";
+      name = "kparts-5.79.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kpeople-5.76.0.tar.xz";
-      sha256 = "25c03e48a0951f2d17556912893f55750ffbc1333b07b9b42e2ff0bb571b6545";
-      name = "kpeople-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kpeople-5.79.0.tar.xz";
+      sha256 = "0dj8hcjl0r673j7m2k83mxy2787jfi9pz6cvmfqfczbzpw20ycf4";
+      name = "kpeople-5.79.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kplotting-5.76.0.tar.xz";
-      sha256 = "536e0eb7b35700ffe91fccce37386f9b97214cd9bd41bea7f2bb333a49d7ec9e";
-      name = "kplotting-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kplotting-5.79.0.tar.xz";
+      sha256 = "0lawpg7i36wppm95jxhhc7ghc88kb1s34px6w8p7n6cm2gxkhwn6";
+      name = "kplotting-5.79.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kpty-5.76.0.tar.xz";
-      sha256 = "faa143bdceb02156ba2f989128376b97161c9799952a3517240816a42abe1ac7";
-      name = "kpty-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kpty-5.79.0.tar.xz";
+      sha256 = "1qd09r17nmsnqxggmsdw0j6l0620f11ya6mx7bc9zs2y08mgvjka";
+      name = "kpty-5.79.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kquickcharts-5.76.0.tar.xz";
-      sha256 = "65e79e0b4a8f1bca579931d0c0f8345c58f27319bf332e05a32ec930b8e519c2";
-      name = "kquickcharts-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kquickcharts-5.79.0.tar.xz";
+      sha256 = "1p9a3mq7xxyavzmgjmz47vrv0hm1h9g8fsligi3r3n5az7klra6f";
+      name = "kquickcharts-5.79.0.tar.xz";
     };
   };
   kross = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/portingAids/kross-5.76.0.tar.xz";
-      sha256 = "15591f2a50f995bcaf17ef72662851c805d4644f13848387f056f686b77c5291";
-      name = "kross-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/portingAids/kross-5.79.0.tar.xz";
+      sha256 = "00hpyxcn2fwaz32gggqjcmx4blbcdxj3yvhldnmmkmi3k0r68dfc";
+      name = "kross-5.79.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/krunner-5.76.0.tar.xz";
-      sha256 = "08c8addcdd3dac87472e84bd14c6d02b99f98c5efbbda7802de92286105dcdda";
-      name = "krunner-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/krunner-5.79.0.tar.xz";
+      sha256 = "0v7faai6ar06cw7gikhccsa92aii085dk81g4xpyskmxlpvrraci";
+      name = "krunner-5.79.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kservice-5.76.0.tar.xz";
-      sha256 = "ef7715e5d3e0bf4fc2d28a7713913a1283fb9c658b3c3536a6db8da649d185bf";
-      name = "kservice-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kservice-5.79.0.tar.xz";
+      sha256 = "1drzj4s1zbh5pffnh3r1wjsk7g1vr0np2h28mlfm4hy3bywxzrnp";
+      name = "kservice-5.79.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/ktexteditor-5.76.0.tar.xz";
-      sha256 = "6f937b7af06562a238f091deef9c4332e94311a697af8466b7f091720eaab2b2";
-      name = "ktexteditor-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/ktexteditor-5.79.0.tar.xz";
+      sha256 = "1csms6cl8pp9slzwzdgsxhah1b218maakkxmiqk0ngx2sf4lbfc3";
+      name = "ktexteditor-5.79.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/ktextwidgets-5.76.0.tar.xz";
-      sha256 = "a104e894cf21c245a6c22e6f2c38fdbbdb094cb7fde3d7ebff801bfd73af4c84";
-      name = "ktextwidgets-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/ktextwidgets-5.79.0.tar.xz";
+      sha256 = "1bnhq4jpybckdlw5518n2hbfilbpadafvchnxigg9p7671pkp85l";
+      name = "ktextwidgets-5.79.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kunitconversion-5.76.0.tar.xz";
-      sha256 = "31fa05b082ec3a42c831b840cbc086f97c5e49c05a71af29ab35b9727320990c";
-      name = "kunitconversion-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kunitconversion-5.79.0.tar.xz";
+      sha256 = "19snm2mvvbs2aqpq7k9b3g1fbg40kpmbjmqn38g6m065mpw3372l";
+      name = "kunitconversion-5.79.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kwallet-5.76.0.tar.xz";
-      sha256 = "5addd560d3f650fbb43cd9c8c9e964c2d6893fa45ac53420b711f6bbb4e7a4fc";
-      name = "kwallet-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kwallet-5.79.0.tar.xz";
+      sha256 = "1qickn20ry8qccirdc7rvdf40dxgb13y4n0wi80qz87xzmps3f3p";
+      name = "kwallet-5.79.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kwayland-5.76.0.tar.xz";
-      sha256 = "eee72a5f57a2f5c6ab5f1717aa3eb5a9089240794a5e40c6d85bdc37fa3027a7";
-      name = "kwayland-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kwayland-5.79.0.tar.xz";
+      sha256 = "14grhcav772zfdjmwnjms819by2djm8dnv71cj4ps45iq0gba6ck";
+      name = "kwayland-5.79.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kwidgetsaddons-5.76.0.tar.xz";
-      sha256 = "ab7aa94bb1f63e5bea5cf461349c1add96fd608a73c5b7c9d374e6bf035fcac6";
-      name = "kwidgetsaddons-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kwidgetsaddons-5.79.0.tar.xz";
+      sha256 = "0jpfwxa397cvqr1q92b2nva7wy2ngv08kz5l94xrz0wzkagxfixc";
+      name = "kwidgetsaddons-5.79.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kwindowsystem-5.76.0.tar.xz";
-      sha256 = "8dced74012bed3f33c3c51874aa9c3a57093573c1c0e263b758cefa96c26f7b7";
-      name = "kwindowsystem-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kwindowsystem-5.79.0.tar.xz";
+      sha256 = "15pi2vnvdchj9f3yp1p7hqxmnwd606a6fwq4h7li4pvb4w3gibmq";
+      name = "kwindowsystem-5.79.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/kxmlgui-5.76.0.tar.xz";
-      sha256 = "73ae838fb79f97243bea36d438e9bc45315183bbb6b08ab5173c822cfcb4dd82";
-      name = "kxmlgui-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/kxmlgui-5.79.0.tar.xz";
+      sha256 = "1j8fb5i1v7pqs5as1h43nc0s2pm3i9cwks2h5388yld325ysx0v9";
+      name = "kxmlgui-5.79.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/portingAids/kxmlrpcclient-5.76.0.tar.xz";
-      sha256 = "66fe826a81cd266ee57ba814cb8c7adfa00aa9112cb55714db061a82895ee8de";
-      name = "kxmlrpcclient-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/portingAids/kxmlrpcclient-5.79.0.tar.xz";
+      sha256 = "1cwvglsfv5m3mb5bjl7rfas1samyw703qjfiz1pf6vxgmpxdcr4a";
+      name = "kxmlrpcclient-5.79.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/modemmanager-qt-5.76.0.tar.xz";
-      sha256 = "5782b71f60b825244dc017989a4de515eb9eb5cc4edfe494a14ea62d3ac40cd1";
-      name = "modemmanager-qt-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/modemmanager-qt-5.79.0.tar.xz";
+      sha256 = "0xfbchyaaqxjj66zb19k4vxi9azijf0llbql6fzxln687s3z65wd";
+      name = "modemmanager-qt-5.79.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/networkmanager-qt-5.76.0.tar.xz";
-      sha256 = "5920862a843898ed169cc61a8f27dd87cb64dd505ec300d95ab8967da89f2f90";
-      name = "networkmanager-qt-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/networkmanager-qt-5.79.0.tar.xz";
+      sha256 = "04iaqa2q73zvscx300bah6mnl79dai9yrmq11d1vyil99af36m6s";
+      name = "networkmanager-qt-5.79.0.tar.xz";
     };
   };
   oxygen-icons5 = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/oxygen-icons5-5.76.0.tar.xz";
-      sha256 = "95ca95bada43281d09cce000c9cd645af67592205c971052b3e0c27aef9c95b1";
-      name = "oxygen-icons5-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/oxygen-icons5-5.79.0.tar.xz";
+      sha256 = "1j6l9r4l82gp5qcpn3xw4dzfbhsawbpk8mypnfckk73x1bjcaqss";
+      name = "oxygen-icons5-5.79.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/plasma-framework-5.76.0.tar.xz";
-      sha256 = "5bea341bc7b22ffa6a78bf7475c25b138150314c96b3d5154d8bccc532be242a";
-      name = "plasma-framework-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/plasma-framework-5.79.0.tar.xz";
+      sha256 = "15hbfqdyas27kj6rd24n6d80r1dcsiiv0zgjkp12x8dnjyd3vz4x";
+      name = "plasma-framework-5.79.0.tar.xz";
     };
   };
   prison = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/prison-5.76.0.tar.xz";
-      sha256 = "6c369efc354f8f3a0e08b0de565fd523f1480d563bec0d19382e9ab01f3efb78";
-      name = "prison-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/prison-5.79.0.tar.xz";
+      sha256 = "1rn66n67g914w1klgsirqff62qv4p2l64ahzsxnbixfwy1dwlpa2";
+      name = "prison-5.79.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/purpose-5.76.0.tar.xz";
-      sha256 = "fd0edb0e7ba8b5336436848fe2452ff98c1b5bf2c49ea7744a8c0038d4e8887d";
-      name = "purpose-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/purpose-5.79.0.tar.xz";
+      sha256 = "1mlph5mzwfqwlkvm3df3in3r3airnx4hxhy0p56ri3k3m9k2rqpz";
+      name = "purpose-5.79.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/qqc2-desktop-style-5.76.0.tar.xz";
-      sha256 = "76d2f85f6f99157aec26e6797889f1b99035a337e8aa12029c222f3d48288ef3";
-      name = "qqc2-desktop-style-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/qqc2-desktop-style-5.79.0.tar.xz";
+      sha256 = "1cykbdbzxkblwp0dmgc4r3csml9l81zhfsqcjamfai6srl10vbij";
+      name = "qqc2-desktop-style-5.79.0.tar.xz";
     };
   };
   solid = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/solid-5.76.0.tar.xz";
-      sha256 = "7958d047c8bd7622f91541acbe2d554c222218419ee18f395059a09fb90d264d";
-      name = "solid-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/solid-5.79.0.tar.xz";
+      sha256 = "033ss326q450phf918a5py3z6ajnjj6f1nws8ngp05zi028nkhrl";
+      name = "solid-5.79.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/sonnet-5.76.0.tar.xz";
-      sha256 = "cb6bacae27cfa3f8b3ce300b18efe16730783f143c4a7fccfa634f528262ef9b";
-      name = "sonnet-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/sonnet-5.79.0.tar.xz";
+      sha256 = "09b1rb88ck50g67nmki06ixxsfnz3x3jd0f334qaz147h2jklvyq";
+      name = "sonnet-5.79.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/syndication-5.76.0.tar.xz";
-      sha256 = "239ec30ff8f7ad2911ecc6b9b9c32f2b44c6cad634900105936ae56bf96d6292";
-      name = "syndication-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/syndication-5.79.0.tar.xz";
+      sha256 = "1jyz0c67zscgspvisn43wrdgk4pxs4i3r9pyknm8nvxwiff2p1ji";
+      name = "syndication-5.79.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.76.0";
+    version = "5.79.1";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/syntax-highlighting-5.76.0.tar.xz";
-      sha256 = "3cb61a8c478b76f797db53ed9e8a16c6e70bb1c564f05938680db81c3062bab3";
-      name = "syntax-highlighting-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/syntax-highlighting-5.79.1.tar.xz";
+      sha256 = "143ra8j0x1biijclnjhp6b69v04m65avp2nic9jzj9y5wjz5x0mj";
+      name = "syntax-highlighting-5.79.1.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.76.0";
+    version = "5.79.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.76/threadweaver-5.76.0.tar.xz";
-      sha256 = "8bc0cc4507b4cd7398e18cce8519b4a65b0367e7d22c4faae034a57346297039";
-      name = "threadweaver-5.76.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.79/threadweaver-5.79.0.tar.xz";
+      sha256 = "062r9nhggw3dlvgpb2l6fqyyzqv35a9lgvikh2pjdicx9r2s8z19";
+      name = "threadweaver-5.79.0.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
index ceb8200d4c63..4b3f8440c568 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
@@ -6,7 +6,7 @@ mkDerivation {
   name = "syntax-highlighting";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules perl ];
   buildInputs = [ qttools ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/threadweaver.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/threadweaver.nix
index b95f70dd6743..70e948afda94 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/threadweaver.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/threadweaver.nix
@@ -8,7 +8,7 @@ mkDerivation {
   name = "threadweaver";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/nixpkgs/pkgs/development/libraries/kdiagram/default.nix b/nixpkgs/pkgs/development/libraries/kdiagram/default.nix
index b9f16d3cfaef..3cebc05f3d8b 100644
--- a/nixpkgs/pkgs/development/libraries/kdiagram/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kdiagram/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "kdiagram";
-  version = "2.7.0";
+  version = "2.8.0";
   src = fetchFromGitLab {
     domain = "invent.kde.org";
     owner = "graphics";
     repo = pname;
     rev = "v${version}";
-    sha256 = "NSBNHPr8JzBn3y3ivhL0RjiXjDuPwZsTTOeI22pq3vc=";
+    sha256 = "sha256-Se131GZE12wqdfN/V4id1pphUvteSrmMaKZ0+lqg1z8=";
   };
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   propagatedBuildInputs = [ qtbase qtsvg ];
diff --git a/nixpkgs/pkgs/development/libraries/kdsoap/default.nix b/nixpkgs/pkgs/development/libraries/kdsoap/default.nix
index 50ba2c300b3f..93aa169737bb 100644
--- a/nixpkgs/pkgs/development/libraries/kdsoap/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kdsoap/default.nix
@@ -4,7 +4,7 @@
 }:
 
 let
-  version = "1.9.1";
+  version = "1.10.0";
 in
 
 mkDerivation {
@@ -24,7 +24,7 @@ mkDerivation {
   };
   src = fetchurl {
     url = "https://github.com/KDAB/KDSoap/releases/download/kdsoap-${version}/kdsoap-${version}.tar.gz";
-    sha256 = "09rxx7h98niawz7i94g279c2rgh7xmq1hqxwlyzwsaqsx4kfl850";
+    sha256 = "sha256-DGBuzENEZtutsoKYIMoWOvYMx8oib1U7XUAyGWc3M48=";
   };
   outputs = [ "out" "dev" ];
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/kerberos/heimdal.nix b/nixpkgs/pkgs/development/libraries/kerberos/heimdal.nix
index 804749bbdb53..b9d970520316 100644
--- a/nixpkgs/pkgs/development/libraries/kerberos/heimdal.nix
+++ b/nixpkgs/pkgs/development/libraries/kerberos/heimdal.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, python2, perl, yacc, flex
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, python3, perl, bison, flex
 , texinfo, perlPackages
 , openldap, libcap_ng, sqlite, openssl, db, libedit, pam
 , CoreFoundation, Security, SystemConfiguration
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./heimdal-make-missing-headers.patch ];
 
-  nativeBuildInputs = [ autoreconfHook pkg-config python2 perl yacc flex texinfo ]
+  nativeBuildInputs = [ autoreconfHook pkg-config python3 perl bison flex texinfo ]
     ++ (with perlPackages; [ JSON ]);
   buildInputs = optionals (stdenv.isLinux) [ libcap_ng ]
     ++ [ db sqlite openssl libedit openldap pam]
diff --git a/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix b/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix
index 5ef9e496b94d..ebec5936b541 100644
--- a/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix
+++ b/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, perl, yacc, bootstrap_cmds
+{ lib, stdenv, fetchurl, pkg-config, perl, bison, bootstrap_cmds
 , openssl, openldap, libedit, keyutils
 
 # Extra Arguments
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
        ];
 
   nativeBuildInputs = [ pkg-config perl ]
-    ++ optional (!libOnly) yacc
+    ++ optional (!libOnly) bison
     # Provides the mig command used by the build scripts
     ++ optional stdenv.isDarwin bootstrap_cmds;
 
diff --git a/nixpkgs/pkgs/development/libraries/kissfft/default.nix b/nixpkgs/pkgs/development/libraries/kissfft/default.nix
index 5395ac4ab9c1..fe52adfa20d7 100644
--- a/nixpkgs/pkgs/development/libraries/kissfft/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kissfft/default.nix
@@ -30,6 +30,11 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "gcc" "${stdenv.cc.targetPrefix}cc" \
+      --replace "ar" "${stdenv.cc.targetPrefix}ar"
+  '';
   makeFlags = [
     "PREFIX=${placeholder "out"}"
     "DATATYPE=double"
@@ -40,6 +45,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mborgerding/kissfft";
     license = licenses.bsd3;
     maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/kmsxx/default.nix b/nixpkgs/pkgs/development/libraries/kmsxx/default.nix
index 65dce915f144..c88dde7e4450 100644
--- a/nixpkgs/pkgs/development/libraries/kmsxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kmsxx/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, libdrm
-, withPython ? false, python }:
+, withPython ? false, python ? null }:
 
 stdenv.mkDerivation {
   pname = "kmsxx";
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   cmakeFlags = lib.optional (!withPython) "-DKMSXX_ENABLE_PYTHON=OFF";
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ libdrm python ];
+  buildInputs = [ libdrm ] ++ lib.optionals withPython [ python ];
 
   meta = with lib; {
     description = "C++11 library, utilities and python bindings for Linux kernel mode setting";
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     license = licenses.mpl20;
     maintainers = with maintainers; [ gnidorah ];
     platforms = platforms.linux;
+    broken = true; # marked broken 2021-03-26
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/kpmcore/default.nix b/nixpkgs/pkgs/development/libraries/kpmcore/default.nix
index 837333407b29..c3621d375870 100644
--- a/nixpkgs/pkgs/development/libraries/kpmcore/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kpmcore/default.nix
@@ -1,32 +1,50 @@
-{ stdenv, lib, fetchurl, extra-cmake-modules
-, qtbase, kio
-, libatasmart, parted
-, util-linux }:
+{ stdenv, lib, fetchurl, fetchpatch, extra-cmake-modules
+, qca-qt5, kauth, kio, polkit-qt, qtbase
+, util-linux
+}:
 
 stdenv.mkDerivation rec {
   pname = "kpmcore";
-  version = "3.3.0";
+  # NOTE: When changing this version, also change the version of `partition-manager`.
+  version = "4.2.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "0s6v0jfrhjg31ri5p6h9n4w29jvasf5dj954j3vfpzl91lygmmmq";
+    hash = "sha256-MvW0CqvFZtzcJlya6DIpzorPbKJai6fxt7nKsKpJn54=";
   };
 
-  buildInputs = [
-    qtbase
-    libatasmart
-    parted # we only need the library
+  patches = [
+    # Fix build with `kcoreaddons` >= 5.77.0
+    (fetchpatch {
+      url = "https://github.com/KDE/kpmcore/commit/07e5a3ac2858e6d38cc698e0f740e7a693e9f302.patch";
+      sha256 = "sha256-LYzea888euo2HXM+acWaylSw28iwzOdZBvPBt/gjP1s=";
+    })
+    # Fix crash when `fstab` omits mount options.
+    (fetchpatch {
+      url = "https://github.com/KDE/kpmcore/commit/eea84fb60525803a789e55bb168afb968464c130.patch";
+      sha256 = "sha256-NJ3PvyRC6SKNSOlhJPrDDjepuw7IlAoufPgvml3fap0=";
+    })
+  ];
 
+  buildInputs = [
+    qca-qt5
+    kauth
     kio
+    polkit-qt
 
-    util-linux # needs blkid (note that this is not provided by util-linux-compat)
+    util-linux # Needs blkid in configure script (note that this is not provided by util-linux-compat)
   ];
 
   nativeBuildInputs = [ extra-cmake-modules ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
-    maintainers = with lib.maintainers; [ peterhoeg ];
+    description = "KDE Partition Manager core library";
+    homepage = "https://invent.kde.org/system/kpmcore";
+    license = with licenses; [ cc-by-40 cc0 gpl3Plus mit ];
+    maintainers = with maintainers; [ peterhoeg oxalica ];
     # The build requires at least Qt 5.14:
-    broken = lib.versionOlder qtbase.version "5.14";
+    broken = versionOlder qtbase.version "5.14";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/lcms2/default.nix b/nixpkgs/pkgs/development/libraries/lcms2/default.nix
index 129b57851989..66bdcc03b966 100644
--- a/nixpkgs/pkgs/development/libraries/lcms2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lcms2/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, libtiff, libjpeg, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "lcms2-2.11";
+  name = "lcms2-2.12";
 
   src = fetchurl {
     url = "mirror://sourceforge/lcms/${name}.tar.gz";
-    sha256 = "0bkpf315925lhmd9i4mzjnkq5dh255r1lms0c0vzzkfpwk4bjjfw";
+    sha256 = "sha256-GGY5hehkEARVrD5QdiXEOMNxA1TYXly7fNQEPhH+EPU=";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/nixpkgs/pkgs/development/libraries/ldb/default.nix b/nixpkgs/pkgs/development/libraries/ldb/default.nix
index ba035eed05bc..961760753abd 100644
--- a/nixpkgs/pkgs/development/libraries/ldb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ldb/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ldb";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchurl {
     url = "mirror://samba/ldb/${pname}-${version}.tar.gz";
-    sha256 = "0pxxb3sn9lignkf80kndd84shxqk9m2qwimz62gzb6khd4bvajqk";
+    sha256 = "0bcjj4gv48ddg44wyxpsvrs26xry6yy9x9k16qgz0bljs2rhilx4";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/leatherman/default.nix b/nixpkgs/pkgs/development/libraries/leatherman/default.nix
index 8a9c80a61754..61d87211e0a5 100644
--- a/nixpkgs/pkgs/development/libraries/leatherman/default.nix
+++ b/nixpkgs/pkgs/development/libraries/leatherman/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "leatherman";
-  version = "1.12.3";
+  version = "1.12.4";
 
   src = fetchFromGitHub {
-    sha256 = "1mhj29n40z7bvn1ns61wf8812ikm2mpc0d5ip0ha920z0anzqhwr";
+    sha256 = "sha256-7e9D9Q3CAm+2+0vl81djSZwKrQRXc5UxcbJVMt91/vU=";
     rev = version;
     repo = "leatherman";
     owner = "puppetlabs";
diff --git a/nixpkgs/pkgs/development/libraries/leveldb/default.nix b/nixpkgs/pkgs/development/libraries/leveldb/default.nix
index 0a1dabef328c..2a7fb196ea68 100644
--- a/nixpkgs/pkgs/development/libraries/leveldb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/leveldb/default.nix
@@ -13,25 +13,28 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ snappy ];
 
-  nativeBuildInputs = []
-    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+  nativeBuildInputs = lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
-  buildPhase = ''
-    make all
+  doCheck = true;
+
+  buildFlags = [ "all" ];
+
+  postPatch = lib.optionalString stdenv.hostPlatform.isStatic ''
+    # remove shared objects from "all" target
+    sed -i '/^all:/ s/$(SHARED_LIBS) $(SHARED_PROGRAMS)//' Makefile
   '';
 
-  installPhase = "
-    mkdir -p $out/{bin,lib,include}
+  installPhase = ''
+    runHook preInstall
 
-    cp -r include $out
-    mkdir -p $out/include/leveldb/helpers
-    cp helpers/memenv/memenv.h $out/include/leveldb/helpers
+    install -D -t $out/include/leveldb include/leveldb/*
+    install -D helpers/memenv/memenv.h $out/include/leveldb/helpers
 
-    cp out-shared/lib* $out/lib
-    cp out-static/lib* $out/lib
+    install -D -t $out/lib out-{static,shared}/lib*
+    install -D -t $out/bin out-static/{leveldbutil,db_bench}
 
-    cp out-static/leveldbutil $out/bin
-  ";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/google/leveldb";
diff --git a/nixpkgs/pkgs/development/libraries/levmar/default.nix b/nixpkgs/pkgs/development/libraries/levmar/default.nix
index c5d6877a8446..ed945d9e5a08 100644
--- a/nixpkgs/pkgs/development/libraries/levmar/default.nix
+++ b/nixpkgs/pkgs/development/libraries/levmar/default.nix
@@ -9,8 +9,9 @@ stdenv.mkDerivation rec {
   };
 
   patchPhase = ''
-    sed -i 's/define HAVE_LAPACK/undef HAVE_LAPACK/' levmar.h
+    substituteInPlace levmar.h --replace "define HAVE_LAPACK" "undef HAVE_LAPACK"
     sed -i 's/LAPACKLIBS=.*/LAPACKLIBS=/' Makefile
+    substituteInPlace Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
   '';
 
   installPhase = ''
@@ -23,6 +24,6 @@ stdenv.mkDerivation rec {
     description = "ANSI C implementations of Levenberg-Marquardt, usable also from C++";
     homepage = "https://www.ics.forth.gr/~lourakis/levmar/";
     license = lib.licenses.gpl2Plus;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/lib3ds/default.nix b/nixpkgs/pkgs/development/libraries/lib3ds/default.nix
index db0bd26f4d29..6e926dfb421c 100644
--- a/nixpkgs/pkgs/development/libraries/lib3ds/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lib3ds/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1qr9arfdkjf7q11xhvxwzmhxqz3nhcjkyb8zzfjpz9jm54q0rc7m";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   meta = {
     description = "Library for managing 3D-Studio Release 3 and 4 \".3DS\" files";
diff --git a/nixpkgs/pkgs/development/libraries/lib3mf/default.nix b/nixpkgs/pkgs/development/libraries/lib3mf/default.nix
index fec910bd5952..b75b1b833d73 100644
--- a/nixpkgs/pkgs/development/libraries/lib3mf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lib3mf/default.nix
@@ -1,26 +1,41 @@
-{ lib, stdenv, fetchFromGitHub, cmake, ninja, libuuid, libossp_uuid, gtest }:
+{ lib, stdenv, fetchFromGitHub, cmake, ninja, automaticcomponenttoolkit
+, pkg-config, libzip, gtest, openssl, libuuid, libossp_uuid }:
 
 stdenv.mkDerivation rec {
   pname = "lib3mf";
-  version = "2.0.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "3MFConsortium";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0w4d9zvl95g1x3r5nyd6cr27g6fwhhwaivh8a5r1xs5l6if21x19";
+    sha256 = "1417xlxc1y5jnipixhbjfrrjgkrprbbraj8647sff9051m3hpxc3";
   };
 
-  nativeBuildInputs = [ cmake ninja ];
+  nativeBuildInputs = [ cmake ninja pkg-config ];
 
-  buildInputs = if stdenv.isDarwin then [ libossp_uuid ] else [ libuuid ];
+  outputs = [ "out" "dev" ];
 
-  postPatch = ''
-    rmdir Tests/googletest
-    ln -s ${gtest.src} Tests/googletest
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "out"}/include/lib3mf"
+    "-DUSE_INCLUDED_ZLIB=OFF"
+    "-DUSE_INCLUDED_LIBZIP=OFF"
+    "-DUSE_INCLUDED_GTEST=OFF"
+    "-DUSE_INCLUDED_SSL=OFF"
+  ];
+
+  buildInputs = [
+    libzip gtest openssl
+  ] ++ (if stdenv.isDarwin then [ libossp_uuid ] else [ libuuid ]);
 
+  postPatch = ''
     # fix libdir=''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
-    sed -i 's,=''${\(exec_\)\?prefix}/,=,' lib3MF.pc.in
+    sed -i 's,=''${\(exec_\)\?prefix}/,=,' lib3mf.pc.in
+
+    # replace bundled binaries
+    for i in AutomaticComponentToolkit/bin/act.*; do
+      ln -sf ${automaticcomponenttoolkit}/bin/act $i
+    done
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/libaacs/default.nix b/nixpkgs/pkgs/development/libraries/libaacs/default.nix
index c3934db5b3fb..c291c07abad3 100644
--- a/nixpkgs/pkgs/development/libraries/libaacs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libaacs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libgcrypt, libgpgerror, yacc, flex }:
+{ lib, stdenv, fetchurl, libgcrypt, libgpgerror, bison, flex }:
 
 # library that allows libbluray to play AACS protected bluray disks
 # libaacs does not infringe DRM's right or copyright. See the legal page of the website for more info.
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libgcrypt libgpgerror ];
 
-  nativeBuildInputs = [ yacc flex ];
+  nativeBuildInputs = [ bison flex ];
 
   meta = with lib; {
     homepage = "https://www.videolan.org/developers/libaacs.html";
diff --git a/nixpkgs/pkgs/development/libraries/libabigail/default.nix b/nixpkgs/pkgs/development/libraries/libabigail/default.nix
index 7543c6ddff73..49d84c1b5c79 100644
--- a/nixpkgs/pkgs/development/libraries/libabigail/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libabigail/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libabigail";
-  version = "1.8";
+  version = "1.8.2";
 
   outputs = [ "bin" "out" "dev" ];
 
   src = fetchurl {
     url = "https://mirrors.kernel.org/sourceware/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0p363mkgypcklgf8iylxpbdnfgqc086a6fv7n9hzrjjci45jdgqw";
+    sha256 = "sha256-hjR8nwqGZvJj/WP4w/5MT5yxvbPsQmDsuvEX0Tfol4c=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libantlr3c/default.nix b/nixpkgs/pkgs/development/libraries/libantlr3c/default.nix
index d51eac7bdb6e..6cbf1d204376 100644
--- a/nixpkgs/pkgs/development/libraries/libantlr3c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libantlr3c/default.nix
@@ -15,5 +15,12 @@ stdenv.mkDerivation {
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ vbgl ];
+    # The package failed to build with error:
+    #   gcc: error: unrecognized command line option '-m64'
+    #
+    # See:
+    # https://gist.github.com/r-rmcgibbo/15bf2ca9b297e8357887e146076fff7d
+    # https://gist.github.com/r-rmcgibbo/a362535e4b174d4bfb68112503a49fcd
+    broken = stdenv.hostPlatform.isAarch64;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libaom/default.nix b/nixpkgs/pkgs/development/libraries/libaom/default.nix
index e35f83859159..5483909689d2 100644
--- a/nixpkgs/pkgs/development/libraries/libaom/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libaom/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "libaom";
-  version = "2.0.0";
+  version = "2.0.2";
 
   src = fetchgit {
     url = "https://aomedia.googlesource.com/aom";
     rev	= "v${version}";
-    sha256 = "1616xjhj6770ykn82ml741h8hx44v507iky3s9h7a5lnk9d4cxzy";
+    sha256 = "0f3i983s9yvh9zc6mpy1ck5sjcg9l09lpw9v4md3mv8gbih9f0z0";
   };
 
   patches = [ ./outputs.patch ];
diff --git a/nixpkgs/pkgs/development/libraries/libav/default.nix b/nixpkgs/pkgs/development/libraries/libav/default.nix
index ad95edb68cb2..a3de9225d1ce 100644
--- a/nixpkgs/pkgs/development/libraries/libav/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libav/default.nix
@@ -61,7 +61,7 @@ let
       "--enable-avplay"
       "--enable-shared"
       "--enable-runtime-cpudetect"
-      "--cc=cc"
+      "--cc=${stdenv.cc.targetPrefix}cc"
       (enableFeature enableGPL "gpl")
       (enableFeature enableGPL "swscale")
       (enableFeature mp3Support "libmp3lame")
diff --git a/nixpkgs/pkgs/development/libraries/libavif/default.nix b/nixpkgs/pkgs/development/libraries/libavif/default.nix
index 8c33e6f1b6dd..173422fa71e0 100644
--- a/nixpkgs/pkgs/development/libraries/libavif/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libavif/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libavif";
-  version = "0.8.4";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "AOMediaCodec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qvjd3xi9r89pcblxdgz4c6hqp67ss53b1x9zkg7lrik7g3lwq8d";
+    sha256 = "sha256-7p0w94Od33vjTI5wGLxmDC5P2hebAl7OwJPl1lANhKs=";
   };
 
   # reco: encode libaom slowest but best, decode dav1d fastest
diff --git a/nixpkgs/pkgs/development/libraries/libayatana-appindicator/default.nix b/nixpkgs/pkgs/development/libraries/libayatana-appindicator/default.nix
index ef9823130f43..53b0dca09127 100644
--- a/nixpkgs/pkgs/development/libraries/libayatana-appindicator/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libayatana-appindicator/default.nix
@@ -4,13 +4,15 @@
 , gtkVersion ? "3"
 , gtk2, libayatana-indicator-gtk2, libdbusmenu-gtk2
 , gtk3, libayatana-indicator-gtk3, libdbusmenu-gtk3
-, dbus-glib, python2, python2Packages
+, dbus-glib,
 }:
 
 stdenv.mkDerivation rec {
   pname = "libayatana-appindicator-gtk${gtkVersion}";
   version = "0.5.5";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = "libayatana-appindicator";
@@ -18,12 +20,7 @@ stdenv.mkDerivation rec {
     sha256 = "1sba0w455rdkadkhxrx4fr63m0d9blsbb1q1hcshxw1k1z2nh1gk";
   };
 
-  prePatch = ''
-    substituteInPlace configure.ac \
-      --replace "codegendir pygtk-2.0" "codegendir pygobject-2.0"
-  '';
-
-  nativeBuildInputs = [ pkg-config autoreconfHook gtk-doc gobject-introspection python2 python2Packages.pygtk dbus-glib ];
+  nativeBuildInputs = [ pkg-config autoreconfHook gtk-doc gobject-introspection dbus-glib ];
 
   buildInputs =
     lib.lists.optional (gtkVersion == "2") libayatana-indicator-gtk2
diff --git a/nixpkgs/pkgs/development/libraries/libb64/default.nix b/nixpkgs/pkgs/development/libraries/libb64/default.nix
index f524e9321f9d..41d07d58cba2 100644
--- a/nixpkgs/pkgs/development/libraries/libb64/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libb64/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1lxzi6v10qsl2r6633dx0zwqyvy0j19nmwclfd0d7qybqmhqsg9l";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     mkdir -p $out $out/lib $out/bin $out/include
diff --git a/nixpkgs/pkgs/development/libraries/libbap/default.nix b/nixpkgs/pkgs/development/libraries/libbap/default.nix
index 7c458bae19ce..c15de88f6a76 100644
--- a/nixpkgs/pkgs/development/libraries/libbap/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libbap/default.nix
@@ -3,15 +3,20 @@
 
 stdenv.mkDerivation {
   pname = "libbap";
-  version = "master-2019-11-15";
+  version = "master-2020-11-25";
 
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap-bindings";
-    rev = "1a30dd3e1df18c432a83a7038b555662d6982ae3";
-    sha256 = "140gmak2kymh3r0fagb6ms66lmvwhhqj8pcd3qxc1p4ar330fwrh";
+    rev = "3193cb31e1b1f2455406ea0c819dad9dfa2ba10d";
+    sha256 = "0m4spva3z6fgbwlg4zq53l5p227dic893q2qq65pvzxyf7k7nmil";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile.in \
+      --replace "-linkpkg" "-thread -linkpkg"
+  '';
+
   nativeBuildInputs = [ autoreconfHook which ];
   buildInputs = [ ocaml bap findlib ctypes ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libblockdev/default.nix b/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
index 11a65006422f..584ea93293ef 100644
--- a/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
@@ -6,13 +6,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "libblockdev";
-  version = "2.24";
+  version = "2.25";
 
   src = fetchFromGitHub {
     owner = "storaged-project";
     repo = "libblockdev";
     rev = "${version}-1";
-    sha256 = "1gzwlwdv0jyb3lh2n016limy2ngfdsa05x7jvg9llf2ls672nq89";
+    sha256 = "sha256-eHUHTogKoNrnwwSo6JaI7NMxVt9JeMqfWyhR62bDMuQ=";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libbtbb/default.nix b/nixpkgs/pkgs/development/libraries/libbtbb/default.nix
new file mode 100644
index 000000000000..15047f6e8f2f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libbtbb/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, lib, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "libbtbb";
+  version = "2020-12-R1";
+
+  src = fetchFromGitHub {
+    owner = "greatscottgadgets";
+    repo = pname;
+    rev = version;
+    sha256 = "1byv8174xam7siakr1p0523x97wkh0fmwmq341sd3g70qr2g767d";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "Bluetooth baseband decoding library";
+    homepage = "https://github.com/greatscottgadgets/libbtbb";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libburn/default.nix b/nixpkgs/pkgs/development/libraries/libburn/default.nix
index 02e73b0c04cf..f9b6538027d6 100644
--- a/nixpkgs/pkgs/development/libraries/libburn/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libburn/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libburn";
-  version = "1.5.2.pl01";
+  version = "1.5.4";
 
   src = fetchurl {
     url = "http://files.libburnia-project.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "1xrp9c2sppbds0agqzmdym7rvdwpjrq6v6q2c3718cwvbjmh66c8";
+    sha256 = "sha256-UlBZ0QdZxcuBSO68hju1EOMRxmNgPae9LSHEa3z2O1Q=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/libbytesize/default.nix b/nixpkgs/pkgs/development/libraries/libbytesize/default.nix
index a84f010b9e67..7ce8d6e7f83a 100644
--- a/nixpkgs/pkgs/development/libraries/libbytesize/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libbytesize/default.nix
@@ -4,7 +4,7 @@
 }:
 
 let
-  version = "2.4";
+  version = "2.5";
 in stdenv.mkDerivation rec {
   pname = "libbytesize";
   inherit version;
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
     owner = "storaged-project";
     repo = "libbytesize";
     rev = version;
-    sha256 = "1kq0hnw2yxjdmcrwvgp0x4j1arkka23k8vp2l6nqcw9lc15x18fp";
+    sha256 = "sha256-F8Ur8gtNYp4PYfBQ9sDJGBgW7KohJYNEU9SI2SbNuvM=";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libcdr/default.nix b/nixpkgs/pkgs/development/libraries/libcdr/default.nix
index 087c928b79ce..b987c3dbb25a 100644
--- a/nixpkgs/pkgs/development/libraries/libcdr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcdr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libwpg, libwpd, lcms, pkg-config, librevenge, icu, boost, cppunit }:
+{ lib, stdenv, fetchurl, fetchpatch, libwpg, libwpd, lcms, pkg-config, librevenge, icu, boost, cppunit }:
 
 stdenv.mkDerivation rec {
   name = "libcdr-0.1.6";
@@ -8,6 +8,16 @@ stdenv.mkDerivation rec {
     sha256 = "0qgqlw6i25zfq1gf7f6r5hrhawlrgh92sg238kjpf2839aq01k81";
   };
 
+  patches = [
+    # Fix build with icu 68
+    # Remove in next release
+    (fetchpatch {
+      name = "libcdr-fix-icu-68";
+      url = "https://cgit.freedesktop.org/libreoffice/libcdr/patch/?id=bf3e7f3bbc414d4341cf1420c99293debf1bd894";
+      sha256 = "0cgra10p8ibgwn8y5q31jrpan317qj0ribzjs4jq0bwavjq92w2k";
+    })
+  ];
+
   buildInputs = [ libwpg libwpd lcms librevenge icu boost cppunit ];
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libcec/default.nix b/nixpkgs/pkgs/development/libraries/libcec/default.nix
index 341754376aae..cb494f69fd11 100644
--- a/nixpkgs/pkgs/development/libraries/libcec/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcec/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, cmake, pkg-config, udev, libcec_platform, libraspberrypi ? null }:
 
-let version = "4.0.7"; in
+let version = "6.0.2"; in
 
 stdenv.mkDerivation {
   pname = "libcec";
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://github.com/Pulse-Eight/libcec/archive/libcec-${version}.tar.gz";
-    sha256 = "0nii8qh3qrn92g8x3canj4glb2bjn6gc1p3f6hfp59ckd4vjrndw";
+    sha256 = "0xrkrcgfgr5r8r0854bw3i9jbq4jmf8nzc5vrrx2sxzvlkbrc1h9";
   };
 
   nativeBuildInputs = [ pkg-config cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/libcec/platform.nix b/nixpkgs/pkgs/development/libraries/libcec/platform.nix
index 15972272a187..61eccf1f40ea 100644
--- a/nixpkgs/pkgs/development/libraries/libcec/platform.nix
+++ b/nixpkgs/pkgs/development/libraries/libcec/platform.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/Pulse-Eight/platform";
     repositories.git = "https://github.com/Pulse-Eight/platform.git";
     license = lib.licenses.gpl2Plus;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.titanous ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libcint/default.nix b/nixpkgs/pkgs/development/libraries/libcint/default.nix
index bd8e8bd4aaf0..d0fc8c3c4a27 100644
--- a/nixpkgs/pkgs/development/libraries/libcint/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcint/default.nix
@@ -4,18 +4,18 @@
 , cmake
 , blas
   # Check Inputs
-, python
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "libcint";
-  version = "4.0.7";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "sunqm";
     repo = "libcint";
     rev = "v${version}";
-    sha256 = "sha256-/S5LcaIIAXq9QiH8wGPSw8KpWC3afX9HqiHrWHmGQ6s=";
+    sha256 = "sha256-HBZ/VMuTLAYpqcIPzQ4JbsMSXsI/sKc14ZFpbVhQF/g=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -26,8 +26,10 @@ stdenv.mkDerivation rec {
     "-DCMAKE_INSTALL_PREFIX=" # ends up double-adding /nix/store/... prefix, this avoids issue
   ];
 
+  strictDeps = true;
+
   doCheck = true;
-  checkInputs = [ python.pkgs.numpy ];
+  checkInputs = [ python3.pkgs.numpy ];
 
   meta = with lib; {
     description = "General GTO integrals for quantum chemistry";
diff --git a/nixpkgs/pkgs/development/libraries/libck/default.nix b/nixpkgs/pkgs/development/libraries/libck/default.nix
index accb6556011d..a46a7b33900a 100644
--- a/nixpkgs/pkgs/development/libraries/libck/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libck/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ asl20 bsd2 ];
     homepage = "http://concurrencykit.org/";
     platforms = platforms.unix;
-    maintainers = with maintainers; [ chessai ];
+    maintainers = with maintainers; [ chessai thoughtpolice ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libclc/default.nix b/nixpkgs/pkgs/development/libraries/libclc/default.nix
index a6334bf9998c..7be5f8b4000f 100644
--- a/nixpkgs/pkgs/development/libraries/libclc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libclc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python, llvmPackages }:
+{ lib, stdenv, fetchFromGitHub, python3, llvmPackages }:
 
 let
   llvm = llvmPackages.llvm;
@@ -16,8 +16,9 @@ stdenv.mkDerivation {
     sha256 = "03l9frx3iw3qdsb9rrscgzdwm6872gv6mkssvn027ndf9y321xk7";
   };
 
-  nativeBuildInputs = [ python ];
-  buildInputs = [ llvm clang clang-unwrapped ];
+  nativeBuildInputs = [ python3 llvm ];
+
+  strictDeps = true;
 
   postPatch = ''
     sed -i 's,llvm_clang =.*,llvm_clang = "${clang-unwrapped}/bin/clang",' configure.py
@@ -25,7 +26,7 @@ stdenv.mkDerivation {
   '';
 
   configurePhase = ''
-    ${python.interpreter} ./configure.py --prefix=$out
+    ${python3.interpreter} ./configure.py --prefix=$out
   '';
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/libcli/default.nix b/nixpkgs/pkgs/development/libraries/libcli/default.nix
index ceb0338e5cc1..8aa06bfb19bc 100644
--- a/nixpkgs/pkgs/development/libraries/libcli/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcli/default.nix
@@ -20,12 +20,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "AR=${stdenv.cc.targetPrefix}ar" "PREFIX=$(out)" ];
 
   meta = with lib; {
     description = "Emulate a Cisco-style telnet command-line interface";
     homepage = "http://sites.dparrish.com/libcli";
     license = licenses.lgpl21Plus;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libcommuni/default.nix b/nixpkgs/pkgs/development/libraries/libcommuni/default.nix
index 0b0cc325a356..532c91a0edab 100644
--- a/nixpkgs/pkgs/development/libraries/libcommuni/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcommuni/default.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
   dontUseQmakeConfigure = true;
   configureFlags = [ "-config" "release" ];
 
+  dontWrapQtApps = true;
+
   preConfigure = ''
     sed -i -e 's|/bin/pwd|pwd|g' configure
   '';
diff --git a/nixpkgs/pkgs/development/libraries/libcredis/default.nix b/nixpkgs/pkgs/development/libraries/libcredis/default.nix
index 902f5a6ee26f..247d341bce97 100644
--- a/nixpkgs/pkgs/development/libraries/libcredis/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcredis/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
     description = "C client library for Redis (key-value database)";
     homepage = "https://code.google.com/archive/p/credis/";
     license = licenses.bsd3; # from homepage
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libcsptr/default.nix b/nixpkgs/pkgs/development/libraries/libcsptr/default.nix
index e30165054aa0..a8f33deda36c 100644
--- a/nixpkgs/pkgs/development/libraries/libcsptr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcsptr/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     description = "Smart pointer constructs for the (GNU) C programming language";
     homepage = "https://github.com/Snaipe/libcsptr";
     license = licenses.mit;
-    platforms = [ "i686-linux" "x86_64-linux" ];
+    platforms = platforms.all;
     maintainers = [ maintainers.fragamus ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libcutl/default.nix b/nixpkgs/pkgs/development/libraries/libcutl/default.nix
index 7a5c39849291..ed6aae0f3083 100644
--- a/nixpkgs/pkgs/development/libraries/libcutl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcutl/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
   };
 
-  majmin = builtins.head ( builtins.match "([[:digit:]]\.[[:digit:]]+)\.*" "${version}" );
+  majmin = builtins.head ( builtins.match "([[:digit:]]\\.[[:digit:]]+).*" "${version}" );
   src = fetchurl {
     url = "https://codesynthesis.com/download/${pname}/${majmin}/${pname}-${version}.tar.bz2";
     sha256 = "070j2x02m4gm1fn7gnymrkbdxflgzxwl7m96aryv8wp3f3366l8j";
diff --git a/nixpkgs/pkgs/development/libraries/libdatrie/default.nix b/nixpkgs/pkgs/development/libraries/libdatrie/default.nix
index f4e2df36d917..257673b1a96d 100644
--- a/nixpkgs/pkgs/development/libraries/libdatrie/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdatrie/default.nix
@@ -7,6 +7,8 @@ stdenv.mkDerivation rec {
   pname = "libdatrie";
   version = "2019-12-20";
 
+  outputs = [ "bin" "out" "lib" "dev" ];
+
   src = fetchFromGitHub {
     owner = "tlwg";
     repo = "libdatrie";
diff --git a/nixpkgs/pkgs/development/libraries/libdbusmenu-qt/default.nix b/nixpkgs/pkgs/development/libraries/libdbusmenu-qt/default.nix
index e44f3e37d200..75d4f76b31ff 100644
--- a/nixpkgs/pkgs/development/libraries/libdbusmenu-qt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdbusmenu-qt/default.nix
@@ -20,6 +20,8 @@ stdenv.mkDerivation {
 
   cmakeFlags = [ "-DWITH_DOC=OFF" ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Provides a Qt implementation of the DBusMenu spec";
     inherit homepage;
diff --git a/nixpkgs/pkgs/development/libraries/libdbusmenu-qt/qt-5.5.nix b/nixpkgs/pkgs/development/libraries/libdbusmenu-qt/qt-5.5.nix
index 5ce811e9fea2..7219bcbdeb5a 100644
--- a/nixpkgs/pkgs/development/libraries/libdbusmenu-qt/qt-5.5.nix
+++ b/nixpkgs/pkgs/development/libraries/libdbusmenu-qt/qt-5.5.nix
@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [ "-DWITH_DOC=OFF" ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://launchpad.net/libdbusmenu-qt";
     description = "Provides a Qt implementation of the DBusMenu spec";
diff --git a/nixpkgs/pkgs/development/libraries/libdeflate/default.nix b/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
index f0bf60cdfb88..d7a4aa91fb54 100644
--- a/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub }:
+{ stdenv, lib, fetchFromGitHub, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "libdeflate";
@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
     substituteInPlace Makefile --replace /usr/local $out
   '';
 
+  nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+
   configurePhase = ''
     make programs/config.h
   '';
diff --git a/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix b/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
index f7170fa7f103..5b2914c141f3 100644
--- a/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
@@ -2,12 +2,12 @@
 , xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }:
 
 stdenv.mkDerivation rec {
-  version = "3.14.4";
+  version = "3.14.5";
   pname = "libdigidocpp";
 
   src = fetchurl {
      url = "https://github.com/open-eid/libdigidocpp/releases/download/v${version}/libdigidocpp-${version}.tar.gz";
-     sha256 = "1x72icq5lp5cfv6kyxqc3863wa164s0g41nbi6gldr8syprzdk1l";
+     sha256 = "sha256-PSrYoz5ID88pYs/4rP2kz0NpI0pK6wcnx62HokE0g20=";
   };
 
   nativeBuildInputs = [ cmake pkg-config xxd ];
diff --git a/nixpkgs/pkgs/development/libraries/libdmapsharing/default.nix b/nixpkgs/pkgs/development/libraries/libdmapsharing/default.nix
new file mode 100644
index 000000000000..c9759d76246e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libdmapsharing/default.nix
@@ -0,0 +1,95 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, autoconf
+, automake
+, libtool
+, which
+, pkg-config
+, python3
+, vala
+, avahi
+, gdk-pixbuf
+, gst_all_1
+, glib
+, gtk3
+, libgee
+, check
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, gobject-introspection
+, libsoup
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libdmapsharing";
+  version = "3.9.10";
+
+  outputs = [ "out" "dev" "devdoc" ];
+  outputBin = "dev";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = pname;
+    rev = "${lib.toUpper pname}_${lib.replaceStrings ["."] ["_"] version}";
+    sha256 = "04y1wjwnbw4pzg05h383d83p6an6ylwy4b4g32jmjxpfi388x33g";
+  };
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    libtool
+    which
+    pkg-config
+    python3
+    gobject-introspection
+    vala
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+  ];
+
+  buildInputs = [
+    avahi
+    gdk-pixbuf
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+  ];
+
+  propagatedBuildInputs = [
+    glib
+    libsoup
+  ];
+
+  checkInputs = [
+    libgee
+    check
+    gtk3
+  ];
+
+  configureFlags = [
+    "--enable-gtk-doc"
+  ];
+
+  # Cannot disable tests here or `check` from checkInputs would not be included.
+  # Cannot disable building the tests or docs will not build:
+  # https://gitlab.gnome.org/GNOME/libdmapsharing/-/issues/49
+  doCheck = true;
+
+  preConfigure = ''
+    NOCONFIGURE=1 ./autogen.sh
+  '';
+
+  # Tests require mDNS server.
+  checkPhase = ":";
+
+  meta = with lib; {
+    homepage = "https://www.flyn.org/projects/libdmapsharing/";
+    description = "Library that implements the DMAP family of protocols";
+    maintainers = teams.gnome.members;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libdmtx/default.nix b/nixpkgs/pkgs/development/libraries/libdmtx/default.nix
index 994f010252fd..c26ccc347f9a 100644
--- a/nixpkgs/pkgs/development/libraries/libdmtx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdmtx/default.nix
@@ -1,18 +1,27 @@
-{ lib, stdenv, fetchurl, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
-  name = "libdmtx-0.7.4";
+  pname = "libdmtx";
+  version = "0.7.5";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/libdmtx/${name}.tar.bz2";
-    sha256 = "0xnxx075ycy58n92yfda2z9zgd41h3d4ik5d9l197lzsqim5hb5n";
+  src = fetchFromGitHub {
+    owner = "dmtx";
+    repo = "libdmtx";
+    rev = "v${version}";
+    sha256 = "0wk3fkxzf9ip75v8ia54v6ywx72ajp5s6777j4ay8barpbv869rj";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   meta = {
     description = "An open source software for reading and writing Data Matrix barcodes";
-    homepage = "http://libdmtx.org";
+    homepage = "https://github.com/dmtx/libdmtx";
+    changelog = "https://github.com/dmtx/libdmtx/blob/v${version}/ChangeLog";
     platforms = lib.platforms.all;
     maintainers = [ ];
     license = lib.licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/libraries/libdrm/default.nix b/nixpkgs/pkgs/development/libraries/libdrm/default.nix
index e575624f8152..b4ba311165a2 100644
--- a/nixpkgs/pkgs/development/libraries/libdrm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdrm/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.isAarch32 || stdenv.isAarch64) [
     "-Dtegra=true"
     "-Detnaviv=true"
-  ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-Dintel=false";
+  ];
 
   meta = with lib; {
     homepage = "https://gitlab.freedesktop.org/mesa/drm";
diff --git a/nixpkgs/pkgs/development/libraries/libebml/default.nix b/nixpkgs/pkgs/development/libraries/libebml/default.nix
index e7a877962ccd..6a042012132e 100644
--- a/nixpkgs/pkgs/development/libraries/libebml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libebml/default.nix
@@ -2,19 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "libebml";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner  = "Matroska-Org";
     repo   = "libebml";
     rev    = "release-${version}";
-    sha256 = "04bn1i7g4vwmkv3hv26rmcb59zkl2rh37qnfjm52j560bjlyd7im";
+    sha256 = "1hiilnabar826lfxsaflqjhgsdli6hzzhjv8q2nmw36fvvlyks25";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=YES"
+    "-DCMAKE_INSTALL_PREFIX="
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/libedit/default.nix b/nixpkgs/pkgs/development/libraries/libedit/default.nix
index 92f3eeb79957..dc5a384569cb 100644
--- a/nixpkgs/pkgs/development/libraries/libedit/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libedit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libedit";
-  version = "20191231-3.1";
+  version = "20210216-3.1";
 
   src = fetchurl {
     url = "https://thrysoee.dk/editline/${pname}-${version}.tar.gz";
-    sha256 = "0wch48nml28jj6ild889745dsg2agm7mpvrmbl1gi98nw6vjrf6v";
+    sha256 = "sha256-IoP3QdKquTXIxSwEtXv5UtAsLALmURcvisgR93sfx3o=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/libelf-freebsd/default.nix b/nixpkgs/pkgs/development/libraries/libelf-freebsd/default.nix
index c3a4986c8321..d4a8b8f6f219 100644
--- a/nixpkgs/pkgs/development/libraries/libelf-freebsd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libelf-freebsd/default.nix
@@ -1,4 +1,4 @@
-{ fetchsvn, stdenv, gnum4, tet }:
+{ lib, fetchsvn, stdenv, gnum4, tet }:
 
 stdenv.mkDerivation (rec {
   version = "3258";
@@ -8,6 +8,7 @@ stdenv.mkDerivation (rec {
     url = "svn://svn.code.sf.net/p/elftoolchain/code/trunk";
     rev = (lib.strings.toInt version);
     name = "elftoolchain-${version}";
+    sha256 = "1rcmddjanlsik0b055x8k914r9rxs8yjsvslia2nh1bhzf1lxmqz";
   };
 
   buildInputs = [ gnum4 tet ];
diff --git a/nixpkgs/pkgs/development/libraries/libetpan/default.nix b/nixpkgs/pkgs/development/libraries/libetpan/default.nix
index b4b48dcb777d..572c90b27b47 100644
--- a/nixpkgs/pkgs/development/libraries/libetpan/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libetpan/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub
+{ stdenv, lib, fetchFromGitHub, fetchpatch
 , autoconf, automake, libtool, openssl, pkg-config
 }:
 
@@ -13,6 +13,28 @@ stdenv.mkDerivation rec {
     sha256 = "0g7an003simfdn7ihg9yjv7hl2czsmjsndjrp39i7cad8icixscn";
   };
 
+  patches = [
+    # The following two patches are fixing CVE-2020-15953, as reported in the
+    # issue tracker: https://github.com/dinhvh/libetpan/issues/386
+    # They might be removed for the next version bump.
+
+    # CVE-2020-15953: Detect extra data after STARTTLS response and exit
+    # https://github.com/dinhvh/libetpan/pull/387
+    (fetchpatch {
+      name = "cve-2020-15953-imap.patch";
+      url = "https://github.com/dinhvh/libetpan/commit/1002a0121a8f5a9aee25357769807f2c519fa50b.patch";
+      sha256 = "1h9ds2z4jii40a0i3z6hsnzx1ldmd2jqidsxp2y2ksyp1ijcgabn";
+    })
+
+    # CVE-2020-15953: Detect extra data after STARTTLS responses in SMTP and POP3 and exit
+    # https://github.com/dinhvh/libetpan/pull/388
+    (fetchpatch {
+      name = "cve-2020-15953-pop3-smtp.patch";
+      url = "https://github.com/dinhvh/libetpan/commit/298460a2adaabd2f28f417a0f106cb3b68d27df9.patch";
+      sha256 = "0lq829djar7nb3fai3vdzirmks3w2lfagzqc809lx2lln6y213a0";
+    })
+  ];
+
   nativeBuildInputs = [ autoconf automake libtool pkg-config ];
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/development/libraries/libevdev/default.nix b/nixpkgs/pkgs/development/libraries/libevdev/default.nix
index daae6984ab25..33b3f0b32e1d 100644
--- a/nixpkgs/pkgs/development/libraries/libevdev/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libevdev/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libevdev";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0jidjv78lay8kl3yigwhx9fii908sk7gn9nfd2ny12ql5ipc48im";
+    sha256 = "sha256-Y/TqFImFihCQgOC0C9Q+TgkDoeEuqIjVgduMSVdHwtA=";
   };
 
   nativeBuildInputs = [ python3 ];
diff --git a/nixpkgs/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch b/nixpkgs/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch
new file mode 100644
index 000000000000..134c64441d36
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch
@@ -0,0 +1,44 @@
+--- Makefile.orig
++++ Makefile
+@@ -23,24 +23,25 @@
+ # SUCH DAMAGE.
+ #
+ # $Id: Makefile,v 1.3 2004/07/19 05:19:55 sobomax Exp $
++#
++# Linux Makefile by Matt Smith <mcs@darkregion.net>, 2011/01/04
+ 
+-LIB=	execinfo
++CC=cc
++AR=ar
++EXECINFO_CFLAGS=$(CFLAGS) -O2 -pipe -fno-strict-aliasing -std=gnu99 -c
++EXECINFO_LDFLAGS=$(LDFLAGS)
+ 
+-SRCS=	stacktraverse.c stacktraverse.h execinfo.c execinfo.h
++all: static dynamic
+ 
+-INCS=	execinfo.h
++static:
++	$(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c
++	$(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c
++	$(AR) rcs libexecinfo.a stacktraverse.o execinfo.o
+ 
+-SHLIB_MAJOR=	1
+-SHLIB_MINOR=	0
++dynamic:
++	$(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c -o stacktraverse.So
++	$(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c -o execinfo.So
++	$(CC) -shared -Wl,-soname,libexecinfo.so.1 -o libexecinfo.so.1 stacktraverse.So execinfo.So
+ 
+-NOPROFILE=	yes
+-
+-DPADD=		${LIBM}
+-LDADD=		-lm
+-
+-#WARNS?=	4
+-
+-#stacktraverse.c: gen.py
+-#	./gen.py > stacktraverse.c
+-
+-.include <bsd.lib.mk>
++clean:
++	rm -rf *.o *.So *.a *.so
diff --git a/nixpkgs/pkgs/development/libraries/libexecinfo/default.nix b/nixpkgs/pkgs/development/libraries/libexecinfo/default.nix
index f3f89209707a..36f956e77724 100644
--- a/nixpkgs/pkgs/development/libraries/libexecinfo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libexecinfo/default.nix
@@ -23,14 +23,11 @@ stdenv.mkDerivation rec {
       url = "https://git.alpinelinux.org/aports/plain/main/libexecinfo/20-define-gnu-source.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1";
       sha256 = "1mp8mc639b0h2s69m5z6s2h3q3n1zl298j9j0plzj7f979j76302";
     })
-    (fetchpatch {
-      name = "30-linux-makefile.patch";
-      url = "https://git.alpinelinux.org/aports/plain/main/libexecinfo/30-linux-makefile.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1";
-      sha256 = "1jwjz22z5cjy5h2bfghn62yl9ar8jiqhdvbwrcfavv17ihbhwcaf";
-    })
+    ./30-linux-makefile.patch
   ];
 
   makeFlags = [ "CC:=$(CC)" "AR:=$(AR)" ];
+  hardeningEnable = [ "stackprotector" ];
 
   buildFlags =
       lib.optional enableStatic "static"
diff --git a/nixpkgs/pkgs/development/libraries/libf2c/default.nix b/nixpkgs/pkgs/development/libraries/libf2c/default.nix
index 85ff493ca04e..ce1c35c7ec60 100644
--- a/nixpkgs/pkgs/development/libraries/libf2c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libf2c/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     cp f2c.h $out/include
   '';
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libfaketime/0001-Remove-unsupported-clang-flags.patch b/nixpkgs/pkgs/development/libraries/libfaketime/0001-Remove-unsupported-clang-flags.patch
index 84ee18084c29..7dfad4978005 100644
--- a/nixpkgs/pkgs/development/libraries/libfaketime/0001-Remove-unsupported-clang-flags.patch
+++ b/nixpkgs/pkgs/development/libraries/libfaketime/0001-Remove-unsupported-clang-flags.patch
@@ -1,25 +1,13 @@
-From f974fe07de9e6820bb1de50b31e480296d1d97b7 Mon Sep 17 00:00:00 2001
-From: Christian Kampka <christian@kampka.net>
-Date: Wed, 25 Nov 2020 20:09:50 +0100
-Subject: [PATCH] Remove unsupported clang flags
-
----
- src/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
 diff --git a/src/Makefile b/src/Makefile
-index f13a6bb..b305150 100644
+index 2af4804..bcff809 100644
 --- a/src/Makefile
 +++ b/src/Makefile
-@@ -69,7 +69,7 @@ PREFIX ?= /usr/local
+@@ -80,7 +80,7 @@ PREFIX ?= /usr/local
  LIBDIRNAME ?= /lib/faketime
  PLATFORM ?=$(shell uname)
  
--CFLAGS += -std=gnu99 -Wall -Wextra -Werror -Wno-nonnull-compare -DFAKE_PTHREAD -DFAKE_STAT -DFAKE_SLEEP -DFAKE_TIMERS -DFAKE_INTERNAL_CALLS -fPIC -DPREFIX='"'$(PREFIX)'"' -DLIBDIRNAME='"'$(LIBDIRNAME)'"' $(FAKETIME_COMPILE_CFLAGS)
-+CFLAGS += -std=gnu99 -Wall -Wextra -DFAKE_PTHREAD -DFAKE_STAT -DFAKE_SLEEP -DFAKE_TIMERS -DFAKE_INTERNAL_CALLS -fPIC -DPREFIX='"'$(PREFIX)'"' -DLIBDIRNAME='"'$(LIBDIRNAME)'"' $(FAKETIME_COMPILE_CFLAGS)
+-CFLAGS += -std=gnu99 -Wall -Wextra -Werror -Wno-nonnull-compare -DFAKE_PTHREAD -DFAKE_STAT -DFAKE_UTIME -DFAKE_SLEEP -DFAKE_TIMERS -DFAKE_INTERNAL_CALLS -fPIC -DPREFIX='"'$(PREFIX)'"' -DLIBDIRNAME='"'$(LIBDIRNAME)'"' $(FAKETIME_COMPILE_CFLAGS)
++CFLAGS += -std=gnu99 -Wall -Wextra -DFAKE_PTHREAD -DFAKE_STAT -DFAKE_UTIME -DFAKE_SLEEP -DFAKE_TIMERS -DFAKE_INTERNAL_CALLS -fPIC -DPREFIX='"'$(PREFIX)'"' -DLIBDIRNAME='"'$(LIBDIRNAME)'"' $(FAKETIME_COMPILE_CFLAGS)
  ifeq ($(PLATFORM),SunOS)
  CFLAGS += -D__EXTENSIONS__ -D_XOPEN_SOURCE=600
  endif
--- 
-2.28.0
-
diff --git a/nixpkgs/pkgs/development/libraries/libfaketime/default.nix b/nixpkgs/pkgs/development/libraries/libfaketime/default.nix
index 170bb116a8a8..ced1c3e7bb9f 100644
--- a/nixpkgs/pkgs/development/libraries/libfaketime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfaketime/default.nix
@@ -1,16 +1,17 @@
-{ lib, stdenv, fetchurl, perl }:
+{ lib, stdenv, fetchurl, perl, coreutils }:
 
 stdenv.mkDerivation rec {
   pname = "libfaketime";
-  version = "0.9.8";
+  version = "0.9.9";
 
   src = fetchurl {
     url = "https://github.com/wolfcw/libfaketime/archive/v${version}.tar.gz";
-    sha256 = "18s2hjm4sbrlg6sby944z87yslnq9s85p7j892hyr42qrlvq4a06";
+    sha256 = "sha256-V9AYEVA2HAqbXI7vBbETkvYTStosLZmOkuY9rtY5ZHw=";
   };
 
   patches = [
     ./no-date-in-gzip-man-page.patch
+    ./nix-store-date.patch
   ] ++ (lib.optionals stdenv.cc.isClang [
     # https://github.com/wolfcw/libfaketime/issues/277
     ./0001-Remove-unsupported-clang-flags.patch
@@ -22,6 +23,7 @@ stdenv.mkDerivation rec {
       substituteInPlace $a \
         --replace /bin/bash ${stdenv.shell}
     done
+    substituteInPlace src/faketime.c --replace @DATE_CMD@ ${coreutils}/bin/date
   '';
 
   PREFIX = placeholder "out";
diff --git a/nixpkgs/pkgs/development/libraries/libfaketime/nix-store-date.patch b/nixpkgs/pkgs/development/libraries/libfaketime/nix-store-date.patch
new file mode 100644
index 000000000000..b88245dfe8fb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libfaketime/nix-store-date.patch
@@ -0,0 +1,29 @@
+From abd7dd05b440e3dc9621a1579e4afb0267897d9c Mon Sep 17 00:00:00 2001
+From: Finn Behrens <me@kloenk.de>
+Date: Fri, 5 Mar 2021 21:58:57 +0100
+Subject: [PATCH] use nix date path
+
+---
+ src/faketime.c | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/src/faketime.c b/src/faketime.c
+index af618f2..48e47da 100644
+--- a/src/faketime.c
++++ b/src/faketime.c
+@@ -50,11 +50,7 @@
+ 
+ const char version[] = "0.9.9";
+ 
+-#ifdef __APPLE__
+-static const char *date_cmd = "gdate";
+-#else
+-static const char *date_cmd = "date";
+-#endif
++static const char *date_cmd = "@DATE_CMD@";
+ 
+ #define PATH_BUFSIZE 4096
+ 
+-- 
+2.24.3 (Apple Git-128)
+
diff --git a/nixpkgs/pkgs/development/libraries/libfilezilla/default.nix b/nixpkgs/pkgs/development/libraries/libfilezilla/default.nix
index daacf325e973..c7d84d9d8af6 100644
--- a/nixpkgs/pkgs/development/libraries/libfilezilla/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfilezilla/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libfilezilla";
-  version = "0.26.0";
+  version = "0.27.0";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-F+0iZZPo5GbOPD+M5YOzbHnxYxierVTWMWE8w9pcgL0=";
+    sha256 = "sha256-c3ClGHyrNgqhubLA2njRrebjupN1tIKniF3OBNZJqXs=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix b/nixpkgs/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix
new file mode 100644
index 000000000000..3fa683539698
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchgit, libfprint-tod }:
+stdenv.mkDerivation {
+  pname = "libfprint-2-tod1-goodix";
+  version = "0.0.6";
+
+  src = fetchgit {
+    url = "https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-goodix/+git/libfprint-2-tod1-goodix";
+    rev = "882735c6366fbe30149eea5cfd6d0ddff880f0e4"; # droped-lp1880058 on 20202-11-25
+    sha256 = "sha256-Uv+Rr4V31DyaZFOj79Lpyfl3G6zVWShh20roI0AvMPU=";
+  };
+
+  buildPhase = ''
+    patchelf \
+      --set-rpath ${lib.makeLibraryPath [ libfprint-tod ]} \
+      usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-tod-goodix-53xc-0.0.6.so
+
+    ldd usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-tod-goodix-53xc-0.0.6.so
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/usr/lib/libfprint-2/tod-1/"
+    mkdir -p "$out/usr/lib/udev/rules.d/"
+
+    cp usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-tod-goodix-53xc-$version.so "$out/usr/lib/libfprint-2/tod-1/"
+    cp lib/udev/rules.d/60-libfprint-2-tod1-goodix.rules "$out/usr/lib/udev/rules.d/"
+  '';
+
+  meta = with lib; {
+    description = "Goodix driver module for libfprint-2-tod Touch OEM Driver";
+    homepage = "https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-goodix/+git/libfprint-2-tod1-goodix/";
+    license = licenses.unfree;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ grahamc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libfprint-tod/default.nix b/nixpkgs/pkgs/development/libraries/libfprint-tod/default.nix
new file mode 100644
index 000000000000..8d7df57896d4
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libfprint-tod/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, libfprint
+, fetchFromGitLab
+}:
+
+# for the curious, "tod" means "Touch OEM Drivers" meaning it can load
+# external .so's.
+libfprint.overrideAttrs ({ postPatch ? "", mesonFlags ? [], ... }: let
+  version = "1.90.7+git20210222+tod1";
+in  {
+  pname = "libfprint-tod";
+  inherit version;
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "3v1n0";
+    repo = "libfprint";
+    rev = "v${version}";
+    sha256 = "0cj7iy5799pchyzqqncpkhibkq012g3bdpn18pfb19nm43svhn4j";
+  };
+
+  mesonFlags = mesonFlags ++ [
+    "-Dudev_hwdb_dir=${placeholder "out"}/lib/udev/hwdb.d"
+  ];
+
+
+  postPatch = ''
+    ${postPatch}
+    patchShebangs ./tests/*.py ./tests/*.sh
+  '';
+
+
+  meta = with lib; {
+    homepage = "https://gitlab.freedesktop.org/3v1n0/libfprint";
+    description = "A library designed to make it easy to add support for consumer fingerprint readers, with support for loaded drivers";
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ grahamc ];
+  };
+})
diff --git a/nixpkgs/pkgs/development/libraries/libfprint/default.nix b/nixpkgs/pkgs/development/libraries/libfprint/default.nix
index f3f7313accbb..979ba7eea539 100644
--- a/nixpkgs/pkgs/development/libraries/libfprint/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfprint/default.nix
@@ -2,6 +2,7 @@
 , fetchFromGitLab
 , pkg-config
 , meson
+, python3
 , ninja
 , gusb
 , pixman
@@ -10,13 +11,13 @@
 , gobject-introspection
 , coreutils
 , gtk-doc
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_43
 }:
 
 stdenv.mkDerivation rec {
   pname = "libfprint";
-  version = "1.90.5";
+  version = "1.90.7";
   outputs = [ "out" "devdoc" ];
 
   src = fetchFromGitLab {
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
     owner = "libfprint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wfwka2ik4hbb5wk5dp533040sqygwswg91c3v5fvpmmixh5qx9j";
+    sha256 = "sha256-g/yczzCZEzUKV2uFl1MAPL1H/R2QJSwxgppI2ftt9QI=";
   };
 
   nativeBuildInputs = [
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
     meson
     ninja
     gtk-doc
-    docbook_xsl
+    docbook-xsl-nons
     docbook_xml_dtd_43
     gobject-introspection
   ];
@@ -44,16 +45,29 @@ stdenv.mkDerivation rec {
     nss
   ];
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=array-bounds";
+  checkInputs = [
+    python3
+  ];
 
   mesonFlags = [
     "-Dudev_rules_dir=${placeholder "out"}/lib/udev/rules.d"
+    # Include virtual drivers for fprintd tests
+    "-Ddrivers=all"
   ];
 
+  doCheck = true;
+
+  postPatch = ''
+    patchShebangs \
+      tests/test-runner.sh \
+      tests/unittest_inspector.py \
+      tests/virtual-image.py
+  '';
+
   meta = with lib; {
     homepage = "https://fprint.freedesktop.org/";
     description = "A library designed to make it easy to add support for consumer fingerprint readers";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/libftdi/1.x.nix b/nixpkgs/pkgs/development/libraries/libftdi/1.x.nix
index ae599a97529b..30c9e294ecc8 100644
--- a/nixpkgs/pkgs/development/libraries/libftdi/1.x.nix
+++ b/nixpkgs/pkgs/development/libraries/libftdi/1.x.nix
@@ -1,47 +1,73 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, libusb1, libconfuse
-, cppSupport ? true, boost ? null
-, pythonSupport ? true, python3 ? null, swig ? null
-, docSupport ? true, doxygen ? null
+{ lib
+, stdenv
+, fetchgit
+, cmake
+, pkg-config
+, libusb1
+, libconfuse
+, cppSupport ? true
+, boost
+, pythonSupport ? true
+, python3
+, swig
+, docSupport ? true
+, doxygen
+, graphviz
 }:
 
-assert cppSupport -> boost != null;
-assert pythonSupport -> python3 != null && swig != null;
-assert docSupport -> doxygen != null;
-
+let
+  inherit (lib) optionals optionalString;
+  onOff = a: if a then "ON" else "OFF";
+in
 stdenv.mkDerivation rec {
-  name = "libftdi1-1.4";
+  pname = "libftdi";
+  version = "1.5";
 
-  src = fetchurl {
-    url = "https://www.intra2net.com/en/developer/libftdi/download/${name}.tar.bz2";
-    sha256 = "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc";
+  src = fetchgit {
+    url = "git://developer.intra2net.com/libftdi";
+    rev = "v${version}";
+    sha256 = "0vipg3y0kbbzjhxky6hfyxy42mpqhvwn1r010zr5givcfp8ghq26";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = with lib; [ libconfuse ]
+  nativeBuildInputs = [ cmake pkg-config ]
+    ++ optionals docSupport [ doxygen graphviz ]
+    ++ optionals pythonSupport [ swig ];
+
+  buildInputs = [ libconfuse ]
     ++ optionals cppSupport [ boost ]
-    ++ optionals pythonSupport [ python3 swig ]
-    ++ optionals docSupport [ doxygen ];
+    ++ optionals pythonSupport [ python3 ];
 
-  preBuild = lib.optionalString docSupport ''
-    make doc_i
-  '';
+  cmakeFlags = [
+    "-DFTDIPP=${onOff cppSupport}"
+    "-DBUILD_TESTS=${onOff cppSupport}"
+    "-DLINK_PYTHON_LIBRARY=${onOff pythonSupport}"
+    "-DPYTHON_BINDINGS=${onOff pythonSupport}"
+    "-DDOCUMENTATION=${onOff docSupport}"
+  ];
 
   propagatedBuildInputs = [ libusb1 ];
 
   postInstall = ''
     mkdir -p "$out/etc/udev/rules.d/"
     cp ../packages/99-libftdi.rules "$out/etc/udev/rules.d/"
+  '' + optionalString docSupport ''
     cp -r doc/man "$out/share/"
-  '' + lib.optionalString docSupport ''
-    mkdir -p "$out/share/libftdi/doc/"
-    cp -r doc/html "$out/share/libftdi/doc/"
+    cp -r doc/html "$out/share/doc/libftdi1/"
+  '';
+
+  postFixup = optionalString cppSupport ''
+    # This gets misassigned to the C++ version's path for some reason
+    for fileToFix in $out/{bin/libftdi1-config,lib/pkgconfig/libftdi1.pc}; do
+      substituteInPlace $fileToFix \
+        --replace "$out/include/libftdipp1" "$out/include/libftdi1"
+    done
   '';
 
   meta = with lib; {
     description = "A library to talk to FTDI chips using libusb";
     homepage = "https://www.intra2net.com/en/developer/libftdi/";
-    license = with licenses; [ lgpl2 gpl2 ];
-    platforms = with platforms; linux ++ darwin;
-    maintainers = [ maintainers.bjornfor ];
+    license = with licenses; [ lgpl2Only gpl2Only ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ bjornfor ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libfyaml/default.nix b/nixpkgs/pkgs/development/libraries/libfyaml/default.nix
index 69b7bdc7d1e1..dfb540b0bd29 100644
--- a/nixpkgs/pkgs/development/libraries/libfyaml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfyaml/default.nix
@@ -1,15 +1,23 @@
-{ lib, stdenv, fetchurl, gnum4 }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "libfyaml";
-  version = "0.5.7";
+  version = "0.7";
 
-  src = fetchurl {
-    url = "https://github.com/pantoniou/libfyaml/releases/download/v${version}/libfyaml-${version}.tar.gz";
-    sha256 = "143m30f006jsvhikk9nc050hxzqi8xg0sbd88kjrgfpyncdz689j";
+  src = fetchFromGitHub {
+    owner = "pantoniou";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "10w1n4zzgw33j755pkv73fxdn93kwbzg486b5m9i0bh5d76jp4ax";
   };
 
-  nativeBuildInputs = [ gnum4 ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  doCheck = true;
+
+  preCheck = ''
+    patchShebangs test
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/pantoniou/libfyaml";
diff --git a/nixpkgs/pkgs/development/libraries/libgcrypt/default.nix b/nixpkgs/pkgs/development/libraries/libgcrypt/default.nix
index 6c6d73740f20..6b761d2170c3 100644
--- a/nixpkgs/pkgs/development/libraries/libgcrypt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgcrypt/default.nix
@@ -1,16 +1,14 @@
-{ lib, stdenv, fetchurl, gettext, libgpgerror, enableCapabilities ? false, libcap
-, buildPackages
-}:
+{ lib, stdenv, fetchurl, gettext, libgpgerror, enableCapabilities ? false, libcap, buildPackages }:
 
 assert enableCapabilities -> stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   pname = "libgcrypt";
-  version = "1.8.7";
+  version = "1.9.2";
 
   src = fetchurl {
     url = "mirror://gnupg/libgcrypt/${pname}-${version}.tar.bz2";
-    sha256 = "0j27jxhjay78by940d64778nxwbysxynv5mq6iq1nmlrh810zdq3";
+    sha256 = "sha256-ssENCRUTsnHkcXcnRgex/7o9lbGIu/qHl/lIrskFPFo=";
   };
 
   outputs = [ "out" "dev" "info" ];
@@ -27,8 +25,10 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.isDarwin gettext
     ++ lib.optional enableCapabilities libcap;
 
+  strictDeps = true;
+
   configureFlags = [ "--with-libgpg-error-prefix=${libgpgerror.dev}" ]
-   ++ lib.optional stdenv.hostPlatform.isMusl "--disable-asm";
+      ++ lib.optional (stdenv.hostPlatform.isMusl || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--disable-asm"; # for darwin see https://dev.gnupg.org/T5157
 
   # Necessary to generate correct assembly when compiling for aarch32 on
   # aarch64
diff --git a/nixpkgs/pkgs/development/libraries/libgdata/default.nix b/nixpkgs/pkgs/development/libraries/libgdata/default.nix
index 2cd7da0784ac..fdaace2dc4f0 100644
--- a/nixpkgs/pkgs/development/libraries/libgdata/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgdata/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libgdata";
-  version = "0.18.0";
+  version = "0.18.1";
 
   outputs = [ "out" "dev" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "8MIBEvpTcrYsASVvJorvUTGhYd/COGjzk+z3uLN1JYA=";
+    sha256 = "3YWS7rZRKtCoz1yL6McudvdL/msj5N2T8HVu4HFoBMc=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libglvnd/default.nix b/nixpkgs/pkgs/development/libraries/libglvnd/default.nix
index 88ba7dacc22f..31a9579a8928 100644
--- a/nixpkgs/pkgs/development/libraries/libglvnd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libglvnd/default.nix
@@ -1,11 +1,15 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, python3, pkg-config, libX11, libXext, xorgproto, addOpenGLRunpath }:
+{ stdenv, lib, fetchFromGitLab
+, autoreconfHook, pkg-config, python3, addOpenGLRunpath
+, libX11, libXext, xorgproto
+}:
 
 stdenv.mkDerivation rec {
   pname = "libglvnd";
   version = "1.3.2";
 
-  src = fetchFromGitHub {
-    owner = "NVIDIA";
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "glvnd";
     repo = "libglvnd";
     rev = "v${version}";
     sha256 = "10x7fgb114r4gikdg6flszl3kwzcb9y5qa7sj9936mk0zxhjaylz";
@@ -31,8 +35,11 @@ stdenv.mkDerivation rec {
     "-Wno-error=array-bounds"
   ] ++ lib.optional stdenv.cc.isClang "-Wno-error");
 
-  # Indirectly: https://bugs.freedesktop.org/show_bug.cgi?id=35268
-  configureFlags  = lib.optional stdenv.hostPlatform.isMusl "--disable-tls";
+  configureFlags  = []
+    # Indirectly: https://bugs.freedesktop.org/show_bug.cgi?id=35268
+    ++ lib.optional stdenv.hostPlatform.isMusl "--disable-tls"
+    # Remove when aarch64-darwin asm support is upstream: https://gitlab.freedesktop.org/glvnd/libglvnd/-/issues/216
+    ++ lib.optional (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) "--disable-asm";
 
   outputs = [ "out" "dev" ];
 
@@ -47,8 +54,17 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The GL Vendor-Neutral Dispatch library";
-    homepage = "https://github.com/NVIDIA/libglvnd";
-    license = licenses.bsd2;
+    longDescription = ''
+      libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API
+      calls between multiple vendors. It allows multiple drivers from different
+      vendors to coexist on the same filesystem, and determines which vendor to
+      dispatch each API call to at runtime.
+      Both GLX and EGL are supported, in any combination with OpenGL and OpenGL ES.
+    '';
+    inherit (src.meta) homepage;
+    # https://gitlab.freedesktop.org/glvnd/libglvnd#libglvnd:
+    license = with licenses; [ mit bsd1 bsd3 gpl3Only asl20 ];
     platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ primeos ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix b/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix
index 39d0b185660f..da53a9916d05 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.38";
+  version = "1.41";
 
   src = fetchurl {
     url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "00px79xzyc5lj8aig7i4fhk29h1lkqp4840wjfgi9mv9m9sq566q";
+    sha256 = "0hi7jbcs1l9kxzhiqcs2iivsb048642mwaimgqyh1hy3bas7ic34";
   };
 
   postPatch = ''
@@ -66,7 +66,8 @@ in stdenv.mkDerivation (rec {
   doCheck = true; # not cross
 
   meta = with lib; {
-    homepage = "https://www.gnupg.org/related_software/libgpg-error/index.html";
+    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";
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix b/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix
index 4dec3151a7cd..3e3fa1a725bf 100644
--- a/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libgphoto2";
-  version = "2.5.26";
+  version = "2.5.27";
 
   src = fetchFromGitHub {
     owner = "gphoto";
     repo = "libgphoto2";
     rev = "libgphoto2-${builtins.replaceStrings [ "." ] [ "_" ] version}-release";
-    sha256 = "0lnlxflj04ng9a0hm2nb2067kqs4kp9kx1z4gg395cgbfd7lx6j6";
+    sha256 = "sha256-c7fBl6GBLAU+RL5WFC4PL+n/nEHZUfqIJ9qq1+qNNCg=";
   };
 
   patches = [];
diff --git a/nixpkgs/pkgs/development/libraries/libgssglue/default.nix b/nixpkgs/pkgs/development/libraries/libgssglue/default.nix
index 678af459a30d..d4bf3ff1c2bb 100644
--- a/nixpkgs/pkgs/development/libraries/libgssglue/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgssglue/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, kerberos }:
+{ lib, stdenv, fetchurl, libkrb5 }:
 
 stdenv.mkDerivation rec {
   name = "libgssglue-0.4";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     mkdir -p $out/etc
     cat <<EOF > $out/etc/gssapi_mech.conf
-    ${kerberos}/lib/libgssapi_krb5.so mechglue_internal_krb5_init
+    ${libkrb5}/lib/libgssapi_krb5.so mechglue_internal_krb5_init
     EOF
   '';
 
diff --git a/nixpkgs/pkgs/development/libraries/libgxps/default.nix b/nixpkgs/pkgs/development/libraries/libgxps/default.nix
index f7392ffb7dd5..be088496f2e1 100644
--- a/nixpkgs/pkgs/development/libraries/libgxps/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgxps/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libgxps";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs";
+    sha256 = "bSeGclajXM+baSU+sqiKMrrKO5fV9O9/guNmf6Q1JRw=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config gobject-introspection ];
diff --git a/nixpkgs/pkgs/development/libraries/libhandy/default.nix b/nixpkgs/pkgs/development/libraries/libhandy/default.nix
index 5ab6dde09d78..4532edfd884b 100644
--- a/nixpkgs/pkgs/development/libraries/libhandy/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libhandy/default.nix
@@ -9,7 +9,6 @@
 , docbook_xsl
 , docbook_xml_dtd_43
 , gtk3
-, gnome3
 , glade
 , dbus
 , xvfb_run
@@ -23,14 +22,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libhandy";
-  version = "1.0.3";
+  version = "1.2.0";
 
   outputs = [ "out" "dev" "devdoc" "glade" ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-VZuzrMLDYkiJF+ty7SW9wYH0riaslNF3Y0zF00yGf3o=";
+    sha256 = "sha256-OfWQriCRDnb+HAYHsuvliXUPRWENau7Fww4u5gKiCyU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libheif/default.nix b/nixpkgs/pkgs/development/libraries/libheif/default.nix
index b0872b9da1e4..71dfca5e6430 100644
--- a/nixpkgs/pkgs/development/libraries/libheif/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libheif/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, libde265, x265, libpng,
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, dav1d, rav1e, libde265, x265, libpng,
   libjpeg, libaom }:
 
 stdenv.mkDerivation rec {
   pname = "libheif";
-  version = "1.9.1";
+  version = "1.11.0";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
@@ -11,21 +11,19 @@ stdenv.mkDerivation rec {
     owner = "strukturag";
     repo = "libheif";
     rev = "v${version}";
-    sha256 = "0hjs1i076jmy4ryj8y2zs293wx53kzg38y8i42cbcsqydvsdp6hz";
+    sha256 = "sha256-xT0sfYPp5atYXnVpP8TYu2TC9/Z/ClyEP1OTSfcw1gw=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ libde265 x265 libpng libjpeg libaom ];
-  # TODO: enable dav1d and rav1e codecs when libheif can find them via pkg-config
+  buildInputs = [ dav1d rav1e libde265 x265 libpng libjpeg libaom ];
 
   enableParallelBuilding = true;
 
   meta = {
     homepage = "http://www.libheif.org/";
     description = "ISO/IEC 23008-12:2017 HEIF image file format decoder and encoder";
-    license = lib.licenses.lgpl3;
+    license = lib.licenses.lgpl3Plus;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ gebner ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/libraries/libhsts/default.nix b/nixpkgs/pkgs/development/libraries/libhsts/default.nix
new file mode 100644
index 000000000000..df53e7d294f2
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libhsts/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchFromGitLab, fetchurl, autoconf-archive, autoreconfHook, pkg-config, python3 }:
+let
+  chromium_version = "90.0.4417.1";
+
+  hsts_list = fetchurl {
+    url = "https://raw.github.com/chromium/chromium/${chromium_version}/net/http/transport_security_state_static.json";
+    sha256 = "09f24n30x5dmqk8zk7k2glcilgr27832a3304wj1yp97158sqsfx";
+  };
+
+in
+stdenv.mkDerivation rec {
+  pname = "libhsts";
+  version = "0.1.0";
+
+  src = fetchFromGitLab {
+    owner = "rockdaboot";
+    repo = pname;
+    rev = "libhsts-${version}";
+    sha256 = "0gbchzf0f4xzb6zjc56dk74hqrmdgyirmgxvvsqp9vqn9wb5kkx4";
+  };
+
+  postPatch = ''
+    pushd tests
+    cp ${hsts_list} transport_security_state_static.json
+    sed 's/^ *\/\/.*$//g' transport_security_state_static.json >hsts.json
+    popd
+    patchShebangs src/hsts-make-dafsa
+  '';
+
+  nativeBuildInputs = [ autoconf-archive autoreconfHook pkg-config python3 ];
+
+  outputs = [ "out" "dev" ];
+
+  meta = with lib; {
+    description = "Library to easily check a domain against the Chromium HSTS Preload list";
+    homepage = "https://gitlab.com/rockdaboot/libhsts";
+    license = with licenses; [ mit bsd3 ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libhsts/update.sh b/nixpkgs/pkgs/development/libraries/libhsts/update.sh
new file mode 100755
index 000000000000..f80966e08c9a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libhsts/update.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq
+
+set -euo pipefail -x
+
+cd "$(dirname "$0")"
+
+chromium_version=$(curl -s "https://api.github.com/repos/chromium/chromium/tags" | jq -r 'map(select(.prerelease | not)) | .[1].name')
+sha256=$(nix-prefetch-url "https://raw.github.com/chromium/chromium/$chromium_version/net/http/transport_security_state_static.json")
+
+sed -e "0,/chromium_version/s/chromium_version = \".*\"/chromium_version = \"$chromium_version\"/" \
+    -e "0,/sha256/s/sha256 = \".*\"/sha256 = \"$sha256\"/" \
+  --in-place ./default.nix
diff --git a/nixpkgs/pkgs/development/libraries/libhttpseverywhere/default.nix b/nixpkgs/pkgs/development/libraries/libhttpseverywhere/default.nix
index f54929c5378b..648eb89a514a 100644
--- a/nixpkgs/pkgs/development/libraries/libhttpseverywhere/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libhttpseverywhere/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, meson, ninja, makeFontsConf, vala, fetchpatch
-, gnome3, glib, json-glib, libarchive, libsoup, gobject-introspection }:
+, gnome3, libgee, glib, json-glib, libarchive, libsoup, gobject-introspection }:
 
 let
   pname = "libhttpseverywhere";
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ vala gobject-introspection meson ninja pkg-config ];
-  buildInputs = [ glib gnome3.libgee json-glib libsoup libarchive ];
+  buildInputs = [ glib libgee json-glib libsoup libarchive ];
 
   # Fixes build with vala >=0.42
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libical/default.nix b/nixpkgs/pkgs/development/libraries/libical/default.nix
index 7f5e739a99cd..fa396e966506 100644
--- a/nixpkgs/pkgs/development/libraries/libical/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libical/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , buildPackages
 , cmake
 , glib
@@ -22,7 +21,7 @@ assert introspectionSupport -> gobject-introspection != null && vala != null;
 
 stdenv.mkDerivation rec {
   pname = "libical";
-  version = "3.0.8";
+  version = "3.0.9";
 
   outputs = [ "out" "dev" ]; # "devdoc" ];
 
@@ -30,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "libical";
     repo = "libical";
     rev = "v${version}";
-    sha256 = "0pkh74bfrgp1slv8wsv7lbmal2m7qkixwm5llpmfwaiv14njlp68";
+    sha256 = "sha256-efdiGktLGITaQ6VinnfYG52fMhO0Av+JKROt2kTvS1U=";
   };
 
   nativeBuildInputs = [
@@ -68,19 +67,13 @@ stdenv.mkDerivation rec {
     "-DGOBJECT_INTROSPECTION=True"
     "-DICAL_GLIB_VAPI=True"
   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "-DIMPORT_GLIB_SRC_GENERATOR=${lib.getDev buildPackages.libical}/lib/cmake/LibIcal/GlibSrcGenerator.cmake"
+    "-DIMPORT_ICAL_GLIB_SRC_GENERATOR=${lib.getDev buildPackages.libical}/lib/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
   ];
 
   patches = [
     # Will appear in 3.1.0
     # https://github.com/libical/libical/issues/350
     ./respect-env-tzdir.patch
-    # Export src-generator binary for use while cross-compiling
-    # https://github.com/libical/libical/pull/439
-    (fetchpatch {
-      url = "https://github.com/libical/libical/commit/1197d84b63dce179b55a6293cfd6d0523607baf1.patch";
-      sha256 = "18i1khnwmw488s7g5a1kf05sladf8dbyhfc69mbcf6dkc4nnc3dg";
-    })
   ];
 
   # Using install check so we do not have to manually set
diff --git a/nixpkgs/pkgs/development/libraries/libimagequant/default.nix b/nixpkgs/pkgs/development/libraries/libimagequant/default.nix
index 83a5a462ee00..ad1df00c2509 100644
--- a/nixpkgs/pkgs/development/libraries/libimagequant/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libimagequant/default.nix
@@ -2,19 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "libimagequant";
-  version = "2.13.1";
+  version = "2.14.1";
 
   src = fetchFromGitHub {
     owner = "ImageOptim";
     repo = pname;
     rev = version;
-    sha256 = "1543h1i59k2hbj2g8shcl8fvhz2silipacynwjgw412r38hkr33j";
+    sha256 = "sha256-yWtwBTAs6dlrZz3Bd/4DUb488IJsahPKwjluukTlv/o=";
   };
 
   preConfigure = ''
     patchShebangs ./configure
   '';
 
+  configureFlags = lib.optionals stdenv.isAarch64 [ "--disable-sse" ];
+
   meta = with lib; {
     homepage = "https://pngquant.org/lib/";
     description = "Image quantization library";
diff --git a/nixpkgs/pkgs/development/libraries/libinjection/default.nix b/nixpkgs/pkgs/development/libraries/libinjection/default.nix
index f678136637ae..81a1398147ba 100644
--- a/nixpkgs/pkgs/development/libraries/libinjection/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libinjection/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub
-, python
+, python2
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,9 @@ stdenv.mkDerivation rec {
     sha256 = "0chsgam5dqr9vjfhdcp8cgk7la6nf3lq44zs6z6si98cq743550g";
   };
 
-  nativeBuildInputs = [ python ];
+  nativeBuildInputs = [ python2 ];
+
+  strictDeps = true;
 
   patchPhase = ''
     patchShebangs src
diff --git a/nixpkgs/pkgs/development/libraries/libipt/default.nix b/nixpkgs/pkgs/development/libraries/libipt/default.nix
index 272c61c47a5e..15a677b3188c 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.0.3";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "libipt";
     rev = "v${version}";
-    sha256 = "1i6jmv345rqd88qmap6iqbaph4pkd6wbjgkixf22a80pj7cfm1s4";
+    sha256 = "sha256-KhRmRoIHvpx5rV7roCnUH+a7JtPb6UqD41Wi4wHSR1c=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/libisoburn/default.nix b/nixpkgs/pkgs/development/libraries/libisoburn/default.nix
index 1e2ae41f3f22..44367aad1f93 100644
--- a/nixpkgs/pkgs/development/libraries/libisoburn/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libisoburn/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libisoburn";
-  version = "1.5.2";
+  version = "1.5.4";
 
   src = fetchurl {
     url = "http://files.libburnia-project.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "1v4hanapr02wf2i6rncc62z8cyc18078nb2y6q4hp3hxa74hnwnc";
+    sha256 = "sha256-LYmEbUOIDxf6WRxTs76kL/uANijk5jDGgPwskYT3kTI=";
   };
 
   buildInputs = [ attr zlib libburn libisofs ];
diff --git a/nixpkgs/pkgs/development/libraries/libisofs/default.nix b/nixpkgs/pkgs/development/libraries/libisofs/default.nix
index a291410941c6..d80614609c38 100644
--- a/nixpkgs/pkgs/development/libraries/libisofs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libisofs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libisofs";
-  version = "1.5.2";
+  version = "1.5.4";
 
   src = fetchurl {
     url = "http://files.libburnia-project.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "002mcyqwg625a8hqvsrmgm26mhhfwj0j7rahfhsqirmk02b16npg";
+    sha256 = "sha256-qqDtgKdQGXkxb1BbCwF/Kcug6lRjt1EUO60sNgIVqI4=";
   };
 
   buildInputs = [ attr zlib ];
diff --git a/nixpkgs/pkgs/development/libraries/libixp-hg/default.nix b/nixpkgs/pkgs/development/libraries/libixp-hg/default.nix
index 489f526248aa..77df340a55f8 100644
--- a/nixpkgs/pkgs/development/libraries/libixp-hg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libixp-hg/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
    sed -i -e "s|^PREFIX.*=.*$|PREFIX = $out|" config.mk
   '';
 
-  buildInputs = [ unzip txt2tags ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ txt2tags ];
 
   meta = {
     homepage = "http://repo.cat-v.org/libixp/"; # see also https://libs.suckless.org/deprecated/libixp
diff --git a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
index 2426dfebe8a2..f2d4e00d1aad 100644
--- a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,4 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, nasm
+, openjdk
+, enableJava ? false # whether to build the java wrapper
 , enableStatic ? stdenv.hostPlatform.isStatic
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
@@ -26,11 +28,18 @@ stdenv.mkDerivation rec {
     moveToOutput include/transupp.h $dev_private
   '';
 
-  nativeBuildInputs = [ cmake nasm ];
+  nativeBuildInputs = [
+    cmake
+    nasm
+  ] ++ lib.optionals enableJava [
+    openjdk
+  ];
 
   cmakeFlags = [
     "-DENABLE_STATIC=${if enableStatic then "1" else "0"}"
     "-DENABLE_SHARED=${if enableShared then "1" else "0"}"
+  ] ++ lib.optionals enableJava [
+    "-DWITH_JAVA=1"
   ];
 
   doInstallCheck = true;
diff --git a/nixpkgs/pkgs/development/libraries/libjson/default.nix b/nixpkgs/pkgs/development/libraries/libjson/default.nix
index 42d723b3b1b4..16a69f6da653 100644
--- a/nixpkgs/pkgs/development/libraries/libjson/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjson/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation {
     sha256 = "0xkk5qc7kjcdwz9l04kmiz1nhmi7iszl3k165phf53h3a4wpl9h7";
   };
   patches = [ ./install-fix.patch ];
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
   makeFlags = [ "prefix=$(out)" ];
   preInstall = "mkdir -p $out/lib";
 
diff --git a/nixpkgs/pkgs/development/libraries/libjwt/default.nix b/nixpkgs/pkgs/development/libraries/libjwt/default.nix
new file mode 100644
index 000000000000..9c7d624e7f6e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libjwt/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config, jansson, openssl }:
+
+stdenv.mkDerivation rec {
+  pname = "libjwt";
+  version = "1.12.1";
+
+  src = fetchFromGitHub {
+    owner = "benmcollins";
+    repo = "libjwt";
+    rev = "v${version}";
+    sha256 = "1c69slf9k56gh0xcg6269v712ysm6wckracms4grdsc72xg6x7h2";
+  };
+
+  buildInputs = [ jansson openssl ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  meta = with lib; {
+    homepage = "https://github.com/benmcollins/libjwt";
+    description = "JWT C Library";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ pnotequalnp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libktorrent/default.nix b/nixpkgs/pkgs/development/libraries/libktorrent/default.nix
index 610efa7ed4f4..825fe87fe2fe 100644
--- a/nixpkgs/pkgs/development/libraries/libktorrent/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libktorrent/default.nix
@@ -27,6 +27,8 @@ in stdenv.mkDerivation rec {
     inherit mainVersion;
   };
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "A BitTorrent library used by KTorrent";
     homepage    = "https://www.kde.org/applications/internet/ktorrent/";
diff --git a/nixpkgs/pkgs/development/libraries/liblangtag/default.nix b/nixpkgs/pkgs/development/libraries/liblangtag/default.nix
index 5a7f2fe4b36f..5c31197ebff2 100644
--- a/nixpkgs/pkgs/development/libraries/liblangtag/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblangtag/default.nix
@@ -35,9 +35,8 @@ stdenv.mkDerivation rec {
     "--with-locale-alias=${stdenv.cc.libc}/share/locale/locale.alias"
   ];
 
-  buildInputs = [ gettext glib libxml2 gobject-introspection gnome-common
-    unzip ];
-  nativeBuildInputs = [ autoreconfHook gtk-doc gettext pkg-config ];
+  buildInputs = [ gettext glib libxml2 gobject-introspection gnome-common ];
+  nativeBuildInputs = [ autoreconfHook gtk-doc gettext pkg-config unzip ];
 
   meta = {
     inherit version;
diff --git a/nixpkgs/pkgs/development/libraries/liblastfm/default.nix b/nixpkgs/pkgs/development/libraries/liblastfm/default.nix
index 10cdb3014791..5183c47bc061 100644
--- a/nixpkgs/pkgs/development/libraries/liblastfm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblastfm/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ fftwSinglePrec libsamplerate qtbase ]
     ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.SystemConfiguration;
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://github.com/lastfm/liblastfm";
     repositories.git = "git://github.com/lastfm/liblastfm.git";
diff --git a/nixpkgs/pkgs/development/libraries/liblcf/default.nix b/nixpkgs/pkgs/development/libraries/liblcf/default.nix
index 2c7f09892820..1e6f57368b78 100644
--- a/nixpkgs/pkgs/development/libraries/liblcf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblcf/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/EasyRPG/liblcf";
     license = licenses.mit;
     maintainers = with maintainers; [ yegortimoshenko ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/liblinear/default.nix b/nixpkgs/pkgs/development/libraries/liblinear/default.nix
index 3989cc59e4d8..aa2dcd648b81 100644
--- a/nixpkgs/pkgs/development/libraries/liblinear/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblinear/default.nix
@@ -4,15 +4,21 @@ let
   soVersion = "4";
 in stdenv.mkDerivation rec {
   pname = "liblinear";
-  version = "2.42";
+  version = "2.43";
 
   src = fetchFromGitHub {
     owner = "cjlin1";
     repo = "liblinear";
     rev = "v${builtins.replaceStrings ["."] [""] version}";
-    sha256 = "0p0hpjajfkskhd7jiv5zwhfa8hi49q3mgifjlkqvy99xspv98ijj";
+    sha256 = "sha256-qcSMuWHJgsapWs1xgxv3fKSXcx18q8cwyIn3E4RCGKA=";
   };
 
+  postPatch = ''
+    substituteInPlace blas/Makefile \
+      --replace "ar rcv" "${stdenv.cc.targetPrefix}ar rcv" \
+      --replace "ranlib" "${stdenv.cc.targetPrefix}ranlib"
+  '';
+
   outputs = [ "bin" "dev" "out" ];
 
   nativeBuildInputs = lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ];
diff --git a/nixpkgs/pkgs/development/libraries/liblinphone/default.nix b/nixpkgs/pkgs/development/libraries/liblinphone/default.nix
index 647fb6825afb..3ef64823a024 100644
--- a/nixpkgs/pkgs/development/libraries/liblinphone/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblinphone/default.nix
@@ -10,10 +10,8 @@
 , cyrus_sasl
 , doxygen
 , fetchFromGitLab
-, fetchurl
 , ffmpeg_3
 , gdk-pixbuf
-, git
 , glib
 , graphviz
 , gtk2
@@ -30,12 +28,11 @@
 , makeWrapper
 , mbedtls
 , mediastreamer
-, mediastreamer-openh264
 , openldap
 , ortp
 , pango
 , pkg-config
-, python
+, python3
 , readline
 , soci
 , speex
@@ -49,7 +46,7 @@
 
 stdenv.mkDerivation rec {
   pname = "liblinphone";
-  version = "4.4.21";
+  version = "4.5.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -57,7 +54,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "sha256-vs65lBRTYYhx2F90n32qnf0CvcPJUIXc16hmggTF/JI=";
+    sha256 = "05ybbxq2yqzy3f3vzq8c3szs3qr0zl64la53icpqnmfakwnps5gs";
   };
 
   # Do not build static libraries
@@ -67,7 +64,7 @@ stdenv.mkDerivation rec {
   # defined when liblinphone and linphone-desktop weren't separated yet, so some
   # of them might not be needed for liblinphone alone.
   buildInputs = [
-    (python.withPackages (ps: [ ps.pystache ps.six ]))
+    (python3.withPackages (ps: [ ps.pystache ps.six ]))
     bcg729
     bctoolbox
     belcard
@@ -114,6 +111,8 @@ stdenv.mkDerivation rec {
     pkg-config
   ];
 
+  strictDeps = true;
+
   # Some grammar files needed to be copied too from some dependencies. I suppose
   # if one define a dependency in such a way that its share directory is found,
   # then this copying would be unnecessary. Instead of actually copying these
diff --git a/nixpkgs/pkgs/development/libraries/liblouis/default.nix b/nixpkgs/pkgs/development/libraries/liblouis/default.nix
index 1dec830566f8..2208606a8133 100644
--- a/nixpkgs/pkgs/development/libraries/liblouis/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblouis/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liblouis";
-  version = "3.16.1";
+  version = "3.17.0";
 
   src = fetchFromGitHub {
     owner = "liblouis";
     repo = "liblouis";
     rev = "v${version}";
-    sha256 = "0q9ixy8cjgd2d2lzxgkfd4chzr5j1bz783mg10pnwviyg6k630m5";
+    sha256 = "sha256-rcySznUeoiUZnyVAmg/oYkUkLrZhBI8FEtiff0eHa+k=";
   };
 
   outputs = [ "out" "dev" "man" "info" "doc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libmatroska/default.nix b/nixpkgs/pkgs/development/libraries/libmatroska/default.nix
index 1d3cf4032dda..a89bf9fc4ab9 100644
--- a/nixpkgs/pkgs/development/libraries/libmatroska/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmatroska/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libmatroska";
-  version = "1.6.2";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner  = "Matroska-Org";
     repo   = "libmatroska";
     rev    = "release-${version}";
-    sha256 = "0yhr9hhgljva1fx3b0r4s3wkkypdfgsysbl35a4g3krkbhaa9rsd";
+    sha256 = "01dg12ndxfdqgjx5v2qy4mff6xjdxglywyg82sr3if5aw6rp3dji";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=YES"
+    "-DCMAKE_INSTALL_PREFIX="
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix b/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix
index 078865198a45..05ae1af2e257 100644
--- a/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmaxminddb";
-  version = "1.5.0";
+  version = "1.5.2";
 
   src = fetchurl {
     url = meta.homepage + "/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-fFbnkf8qZVIV5+04ZLH/3X00o4g1d57+1WpC8Fa9WKo=";
+    sha256 = "sha256-UjcHbSUKX3wpfjMcNaQz7qrw3CBeBw5Ns1PJuhDzQKI=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/libmbim/default.nix b/nixpkgs/pkgs/development/libraries/libmbim/default.nix
index 850c7aa1df0c..9695b221cb97 100644
--- a/nixpkgs/pkgs/development/libraries/libmbim/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmbim/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmbim";
-  version = "1.24.4";
+  version = "1.24.6";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz";
-    sha256 = "11djb1d8w9ms07aklfm3pskjw9rnff4p4n3snanschv22zk8wj6x";
+    sha256 = "sha256-dgRlyqoczWmcFCkOl5HaRW1TAN0R6/TBSGFRAz6HXf0=";
   };
 
   outputs = [ "out" "dev" "man" ];
diff --git a/nixpkgs/pkgs/development/libraries/libmediainfo/default.nix b/nixpkgs/pkgs/development/libraries/libmediainfo/default.nix
index d78ccbc50aba..3541d3d466f7 100644
--- a/nixpkgs/pkgs/development/libraries/libmediainfo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmediainfo/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "20.09";
+  version = "21.03";
   pname = "libmediainfo";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
-    sha256 = "15ni9pnch6688m72swwax109a7mg4a08yx75qknrx7qa6dbyhz6h";
+    sha256 = "1jm4mk539wf3crgpcddgwdixshwdzm37mkb5441lifhcz2mykdsn";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libmpc/default.nix b/nixpkgs/pkgs/development/libraries/libmpc/default.nix
index 66e38fbfbc04..bd28f490ecb7 100644
--- a/nixpkgs/pkgs/development/libraries/libmpc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmpc/default.nix
@@ -8,7 +8,7 @@
 # files.
 
 let
-  version = "1.2.0";
+  version = "1.2.1";
 in
 stdenv.mkDerivation {
   pname = "libmpc";
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://gnu/mpc/mpc-${version}.tar.gz";
-    sha256 = "19pxx3gwhwl588v496g3aylhcw91z1dk1d5x3a8ik71sancjs3z9";
+    sha256 = "0n846hqfqvmsmim7qdlms0qr86f1hck19p12nq3g3z2x74n3sl0p";
   };
 
   buildInputs = [ gmp mpfr ];
diff --git a/nixpkgs/pkgs/development/libraries/libmspack/default.nix b/nixpkgs/pkgs/development/libraries/libmspack/default.nix
index 4ad60bcfb181..a26f0c3f3a48 100644
--- a/nixpkgs/pkgs/development/libraries/libmspack/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmspack/default.nix
@@ -1,17 +1,18 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "libmspack-0.7.1alpha";
+  pname = "libmspack";
+  version = "0.10.1alpha";
 
   src = fetchurl {
-    url = "https://www.cabextract.org.uk/libmspack/${name}.tar.gz";
-    sha256 = "0zn4vwzk5ankgd0l88cipan19pzbzv0sm3fba17lvqwka3dp1acp";
+    url = "https://www.cabextract.org.uk/libmspack/${pname}-${version}.tar.gz";
+    sha256 = "13janaqsvm7aqc4agjgd4819pbgqv50j88bh5kci1z70wvg65j5s";
   };
 
   meta = {
     description = "A de/compression library for various Microsoft formats";
     homepage = "https://www.cabextract.org.uk/libmspack";
-    license = lib.licenses.lgpl2;
+    license = lib.licenses.lgpl2Only;
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libnatpmp/default.nix b/nixpkgs/pkgs/development/libraries/libnatpmp/default.nix
index dd902c0021dd..11b8d66b4a8f 100644
--- a/nixpkgs/pkgs/development/libraries/libnatpmp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnatpmp/default.nix
@@ -10,6 +10,12 @@ stdenv.mkDerivation rec {
     sha256 = "1c1n8n7mp0amsd6vkz32n8zj3vnsckv308bb7na0dg0r8969rap1";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "gcc" "${stdenv.cc.targetPrefix}cc" \
+      --replace "ar" "${stdenv.cc.targetPrefix}ar"
+  '';
+
   makeFlags = [ "INSTALLPREFIX=$(out)" ];
 
   meta = with lib; {
@@ -17,6 +23,6 @@ stdenv.mkDerivation rec {
     description = "NAT-PMP client";
     license = licenses.bsd3;
     maintainers = with maintainers; [ orivej ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libnbd/default.nix b/nixpkgs/pkgs/development/libraries/libnbd/default.nix
new file mode 100644
index 000000000000..6afced2d6d17
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libnbd/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenv
+, fetchurl
+, bash-completion
+, pkg-config
+, perl
+, libxml2
+, fuse
+, gnutls
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libnbd";
+  version = "1.7.4";
+
+  src = fetchurl {
+    url = "https://download.libguestfs.org/libnbd/${lib.versions.majorMinor version}-development/${pname}-${version}.tar.gz";
+    sha256 = "0d586c8mbk50hjslq32n70sdp2a7lbsjv9zhky4w6jy950rrdfqh";
+  };
+
+  nativeBuildInputs = [
+    bash-completion
+    pkg-config
+    perl
+  ];
+  buildInputs = [
+    fuse
+    gnutls
+    libxml2
+  ];
+
+  installFlags = [ "bashcompdir=$(out)/share/bash-completion/completions" ];
+
+  meta = with lib; {
+    homepage = "https://gitlab.com/nbdkit/libnbd";
+    description = "Network Block Device client library in userspace";
+    longDescription = ''
+      NBD — Network Block Device — is a protocol for accessing Block Devices
+      (hard disks and disk-like things) over a Network.  This is the NBD client
+      library in userspace, a simple library for writing NBD clients.
+
+      The key features are:
+      - Synchronous API for ease of use.
+      - Asynchronous API for writing non-blocking, multithreaded clients. You
+        can mix both APIs freely.
+      - High performance.
+      - Minimal dependencies for the basic library.
+      - Well-documented, stable API.
+      - Bindings in several programming languages.
+      - Shell (nbdsh) for command line and scripting.
+    '';
+    license = with licenses; lgpl21Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; linux;
+  };
+}
+# TODO: NBD URI support apparently is not enabled
+# TODO: package the 1.6-stable version too
+# TODO: git version needs ocaml
+# TODO: bindings for go, ocaml and python
+
diff --git a/nixpkgs/pkgs/development/libraries/libndctl/default.nix b/nixpkgs/pkgs/development/libraries/libndctl/default.nix
index b7e082f2b9ba..91a2c378c03c 100644
--- a/nixpkgs/pkgs/development/libraries/libndctl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libndctl/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libndctl";
-  version = "70.1";
+  version = "71.1";
 
   src = fetchFromGitHub {
     owner  = "pmem";
     repo   = "ndctl";
     rev    = "v${version}";
-    sha256 = "09ymdibcr18vpmyf2n0xrnzgccfvr7iy3p2l5lbh7cgz7djyl5wq";
+    sha256 = "sha256-osux3DiKRh8ftHwyfFI+WSFx20+yJsg1nVx5nuoKJu4=";
   };
 
   outputs = [ "out" "lib" "man" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/libnest2d/default.nix b/nixpkgs/pkgs/development/libraries/libnest2d/default.nix
index 567598500d61..1e666758f816 100644
--- a/nixpkgs/pkgs/development/libraries/libnest2d/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnest2d/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
       "2D irregular bin packaging and nesting library written in modern C++";
     homepage = "https://github.com/Ultimaker/libnest2d";
     license = licenses.lgpl3;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libnftnl/default.nix b/nixpkgs/pkgs/development/libraries/libnftnl/default.nix
index 025ddf8e7b1d..44f0f8d62ec7 100644
--- a/nixpkgs/pkgs/development/libraries/libnftnl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnftnl/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, pkg-config, libmnl }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.8";
+  version = "1.1.9";
   pname = "libnftnl";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
-    sha256 = "04dp797llg3cqzivwrql30wg9mfr0ngnp0v5gs7jcdmp11dzm8q4";
+    sha256 = "16jbp4fs5dz2yf4c3bl1sb48x9x9wi1chv39zwmfgya1k9pimcp9";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libnixxml/default.nix b/nixpkgs/pkgs/development/libraries/libnixxml/default.nix
index abbffcf0f942..40459dbca22a 100644
--- a/nixpkgs/pkgs/development/libraries/libnixxml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnixxml/default.nix
@@ -1,25 +1,31 @@
 { fetchFromGitHub, lib, stdenv, autoreconfHook, pkg-config, libxml2, gd, glib, getopt, libxslt, nix }:
 
 stdenv.mkDerivation {
-  name = "libnixxml";
+  pname = "libnixxml";
+  version = "unstable-2020-06-25";
+
   src = fetchFromGitHub {
     owner = "svanderburg";
     repo = "libnixxml";
     rev = "54c04a5fdbc8661b2445a7527f499e0a77753a1a";
     sha256 = "sha256-HKQnCkO1TDs1e0MDil0Roq4YRembqRHQvb7lK3GAftQ=";
   };
+
+  preConfigure = ''
+    ./bootstrap
+  '';
+
   configureFlags = [ "--with-gd" "--with-glib" ];
   CFLAGS = "-Wall";
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ pkg-config libxml2 gd.dev glib getopt libxslt nix ];
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ libxml2 gd.dev glib getopt libxslt nix ];
+
   doCheck = false;
-  postPatch = ''
-    ./bootstrap
-  '';
 
   meta = with lib; {
     description = "XML-based Nix-friendly data integration library";
-    homepage = https://github.com/svanderburg/libnixxml;
+    homepage = "https://github.com/svanderburg/libnixxml";
     license = licenses.mit;
     maintainers = with maintainers; [ tomberek ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/liboauth/default.nix b/nixpkgs/pkgs/development/libraries/liboauth/default.nix
index caab0a83fcf6..5fe5ba86bea3 100644
--- a/nixpkgs/pkgs/development/libraries/liboauth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liboauth/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    platforms = platforms.linux;
+    platforms = platforms.all;
     description = "C library implementing the OAuth secure authentication protocol";
     homepage = "http://liboauth.sourceforge.net/";
     repositories.git = "https://github.com/x42/liboauth.git";
diff --git a/nixpkgs/pkgs/development/libraries/libofx/default.nix b/nixpkgs/pkgs/development/libraries/libofx/default.nix
index 10197bd8db09..dc40086ad0a7 100644
--- a/nixpkgs/pkgs/development/libraries/libofx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libofx/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libofx";
-  version = "0.9.15";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "LibOFX";
     repo = pname;
     rev = version;
-    sha256 = "1jx56ma351p8af8dvavygjwf6ipa7qbgq7bpdsymwj27apdnixfy";
+    sha256 = "sha256-QIasZKwSD9YCidHCxT/HOThxE5HEQWD0I2/loDP6mlU=";
   };
 
   preConfigure = "./autogen.sh";
diff --git a/nixpkgs/pkgs/development/libraries/libosmpbf/default.nix b/nixpkgs/pkgs/development/libraries/libosmpbf/default.nix
deleted file mode 100644
index 1cbfe44ef4e5..000000000000
--- a/nixpkgs/pkgs/development/libraries/libosmpbf/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{lib, stdenv, fetchurl, protobuf}:
-
-stdenv.mkDerivation {
-  name = "libosmpbf-1.3.3";
-
-  src = fetchurl {
-    url = "https://github.com/scrosby/OSM-binary/archive/v1.3.3.tar.gz";
-    sha256 = "a109f338ce6a8438a8faae4627cd08599d0403b8977c185499de5c17b92d0798";
-  };
-
-  buildInputs = [ protobuf ];
-
-  sourceRoot = "OSM-binary-1.3.3/src";
-
-  installFlags = [ "PREFIX=$(out)" ];
-
-  meta = {
-    homepage = "https://github.com/scrosby/OSM-binary";
-    description = "C library to read and write OpenStreetMap PBF files";
-    license = lib.licenses.lgpl3;
-    platforms = lib.platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/libosmscout/default.nix b/nixpkgs/pkgs/development/libraries/libosmscout/default.nix
new file mode 100644
index 000000000000..2f83963d205f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libosmscout/default.nix
@@ -0,0 +1,24 @@
+{ lib, mkDerivation, fetchgit, cmake, pkg-config
+, marisa, qtlocation }:
+
+mkDerivation rec {
+  pname = "libosmscout";
+  version = "2017.06.30";
+
+  src = fetchgit {
+    url = "git://git.code.sf.net/p/libosmscout/code";
+    rev = "0c0fde4d9803539c99911389bc918377a93f350c";
+    sha256 = "1pa459h52kw88mvsdvkz83f4p35vvgsfy2qfjwcj61gj4y9d2rq4";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ marisa qtlocation ];
+
+  meta = with lib; {
+    description = "Simple, high-level interfaces for offline location and POI lokup, rendering and routing functionalities based on OpenStreetMap (OSM) data";
+    homepage = "http://libosmscout.sourceforge.net/";
+    license = licenses.lgpl3Plus;
+    maintainers = [ maintainers.Thra11 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libowlevelzs/default.nix b/nixpkgs/pkgs/development/libraries/libowlevelzs/default.nix
new file mode 100644
index 000000000000..e024874eabe8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libowlevelzs/default.nix
@@ -0,0 +1,27 @@
+{ cmake
+, fetchFromGitHub
+, lib
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libowlevelzs";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "zseri";
+    repo = "libowlevelzs";
+    rev = "v${version}";
+    sha256 = "y/EaMMsmJEmnptfjwiat4FC2+iIKlndC2Wdpop3t7vY=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "Zscheile Lowlevel (utility) library";
+    homepage = "https://github.com/zseri/libowlevelzs";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zseri ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libpcap/default.nix b/nixpkgs/pkgs/development/libraries/libpcap/default.nix
index 0b30bf6c2b0d..c04d4a001a17 100644
--- a/nixpkgs/pkgs/development/libraries/libpcap/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpcap/default.nix
@@ -4,11 +4,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "libpcap";
-  version = "1.9.1";
+  version = "1.10.0";
 
   src = fetchurl {
     url = "https://www.tcpdump.org/release/${pname}-${version}.tar.gz";
-    sha256 = "153h1378diqyc27jjgz6gg5nxmb4ddk006d9xg69nqavgiikflk3";
+    sha256 = "sha256-jRK0JiPu7+6HLxI70NyF1TWwDfTULoZfmTxA97/JKx4=";
   };
 
   nativeBuildInputs = [ flex bison ]
@@ -21,13 +21,11 @@ stdenv.mkDerivation rec {
       linux = "linux";
       darwin = "bpf";
     }.${stdenv.hostPlatform.parsed.kernel.name})
+  ] ++ optionals stdenv.isDarwin [
+    "--disable-universal"
   ] ++ optionals (stdenv.hostPlatform == stdenv.buildPlatform)
     [ "ac_cv_linux_vers=2" ];
 
-  prePatch = optionalString stdenv.isDarwin ''
-    substituteInPlace configure --replace " -arch i386" ""
-  '';
-
   postInstall = ''
     if [ "$dontDisableStatic" -ne "1" ]; then
       rm -f $out/lib/libpcap.a
diff --git a/nixpkgs/pkgs/development/libraries/libpg_query/default.nix b/nixpkgs/pkgs/development/libraries/libpg_query/default.nix
new file mode 100644
index 000000000000..711cfe14e156
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libpg_query/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, which }:
+
+stdenv.mkDerivation rec {
+  pname = "libpg_query";
+  version = "13-2.0.4";
+
+  src = fetchFromGitHub {
+    owner = "pganalyze";
+    repo = "libpg_query";
+    rev = version;
+    sha256 = "0d88fh613kh1izb6w288bfh7s3db4nz8cxyhmhq3lb7gl4axs2pv";
+  };
+
+  nativeBuildInputs = [ which ];
+
+  makeFlags = [ "build" ];
+
+  installPhase = ''
+    install -Dm644 -t $out/lib libpg_query.a
+    install -Dm644 -t $out/include pg_query.h
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/pganalyze/libpg_query";
+    description = "C library for accessing the PostgreSQL parser outside of the server environment";
+    changelog = "https://github.com/pganalyze/libpg_query/raw/${version}/CHANGELOG.md";
+    license = licenses.bsd3;
+    platforms = platforms.x86_64;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libphonenumber/default.nix b/nixpkgs/pkgs/development/libraries/libphonenumber/default.nix
index 2ff59e055f98..f36b5436d69c 100644
--- a/nixpkgs/pkgs/development/libraries/libphonenumber/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libphonenumber/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, gmock, boost, pkg-config, protobuf, icu }:
+{ lib, stdenv, fetchFromGitHub, cmake, gtest, boost, pkg-config, protobuf, icu }:
 
 stdenv.mkDerivation rec {
   pname = "phonenumber";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cmake
-    gmock
+    gtest
     pkg-config
   ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libplacebo/default.nix b/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
index 94301b34fbce..210542e0c981 100644
--- a/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitLab
-, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -17,22 +16,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libplacebo";
-  version = "3.104.0";
-
-  patches = [
-    (fetchpatch {
-      # support glslang>=11.0.0; Upstream MR: https://code.videolan.org/videolan/libplacebo/-/merge_requests/131
-      url = "https://code.videolan.org/videolan/libplacebo/-/commit/affd15a2faa1340d40dcf277a8acffe2987f517c.patch";
-      sha256 = "1nm27mdm9rn3wsbjdif46pici6mbzmfb6521ijl8ah4mxn9p1ikc";
-    })
-  ];
+  version = "3.120.1";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0p5mx8ch7cp7b54yrkl4fs8bcvqma1h461gx6ps4kagn4dsx8asb";
+    sha256 = "0x7jyzsdf884jrky4yci151pk4nzsz1w88wz8sk0cqing7bpaq16";
   };
 
   nativeBuildInputs = [
@@ -55,6 +46,7 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dvulkan-registry=${vulkan-headers}/share/vulkan/registry/vk.xml"
+    "-Ddemos=false"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/libplctag/default.nix b/nixpkgs/pkgs/development/libraries/libplctag/default.nix
new file mode 100644
index 000000000000..41283ed7ccd0
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libplctag/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, stdenv
+, cmake
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libplctag";
+  version = "2.3.6";
+
+  src = fetchFromGitHub {
+    owner = "libplctag";
+    repo = "libplctag";
+    rev = "v${version}";
+    sha256 = "sha256-mrNEUNYxnRyKhUCz+exp6Upf2g/L6WnYJ8alcIx5wMc=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    homepage = "https://github.com/libplctag/libplctag";
+    description = "Library that uses EtherNet/IP or Modbus TCP to read and write tags in PLCs";
+    license = with licenses; [ lgpl2Plus mpl20 ];
+    maintainers = with maintainers; [ petterstorvik ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libplist/default.nix b/nixpkgs/pkgs/development/libraries/libplist/default.nix
index c8e9ddb82c5f..cac4299f2890 100644
--- a/nixpkgs/pkgs/development/libraries/libplist/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libplist/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, autoreconfHook, fetchFromGitHub, pkg-config, enablePython ? false, python, glib }:
+{ lib, stdenv, autoreconfHook, fetchFromGitHub, pkg-config, enablePython ? false, python ? null, glib }:
 
 stdenv.mkDerivation rec {
   pname = "libplist";
diff --git a/nixpkgs/pkgs/development/libraries/libpostal/default.nix b/nixpkgs/pkgs/development/libraries/libpostal/default.nix
new file mode 100644
index 000000000000..d32cb2731a11
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libpostal/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "libpostal";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "openvenues";
+    repo = "libpostal";
+    rev = "v${version}";
+    sha256 = "sha256-gQTD2LQibaB2TK0SbzoILAljAGExURvDcF3C/TfDXqk=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  configureFlags = [
+    "--disable-data-download"
+  ] ++ lib.optionals stdenv.hostPlatform.isAarch64 [ "--disable-sse2" ];
+
+  meta = with lib; {
+    description = "A C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data";
+    homepage = "https://github.com/openvenues/libpostal";
+    license = licenses.mit;
+    maintainers = [ maintainers.Thra11 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libproxy/default.nix b/nixpkgs/pkgs/development/libraries/libproxy/default.nix
index afd1a6365b45..afe5b8dde132 100644
--- a/nixpkgs/pkgs/development/libraries/libproxy/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libproxy/default.nix
@@ -3,10 +3,9 @@
 , pkg-config
 , cmake
 , zlib
-, fetchpatch
 , dbus
 , networkmanager
-, spidermonkey_60
+, spidermonkey_68
 , pcre
 , gsettings-desktop-schemas
 , glib
@@ -19,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libproxy";
-  version = "0.4.15";
+  version = "0.4.17";
 
   src = fetchFromGitHub {
     owner = "libproxy";
     repo = "libproxy";
     rev = version;
-    sha256 = "10swd3x576pinx33iwsbd4h15fbh2snmfxzcmab4c56nb08qlbrs";
+    sha256 = "0v8q4ln0pd5231kidpi8wpwh0chcjwcmawcki53czlpdrc09z96r";
   };
 
   outputs = [ "out" "dev" "py3" ];
@@ -46,7 +45,7 @@ stdenv.mkDerivation rec {
     JavaScriptCore
   ] else [
     glib
-    spidermonkey_60
+    spidermonkey_68
     dbus
     networkmanager
   ]);
@@ -57,38 +56,6 @@ stdenv.mkDerivation rec {
     "-DPYTHON3_SITEPKG_DIR=${placeholder "py3"}/${python3.sitePackages}"
   ];
 
-  patches = [
-    # Make build with spidermonkey_60
-    (fetchpatch {
-      url = "https://github.com/libproxy/libproxy/pull/86.patch";
-      sha256 = "17c06ilinrnzr7xnnmw9pc6zrncyaxcdd6r6k1ah5p156skbykfs";
-    })
-    (fetchpatch {
-      url = "https://github.com/libproxy/libproxy/pull/87.patch";
-      sha256 = "0sagzfwm16f33inbkwsp88w9wmrd034rjmw0y8d122f7k1qfx6zc";
-    })
-    (fetchpatch {
-      url = "https://github.com/libproxy/libproxy/pull/95.patch";
-      sha256 = "18vyr6wlis9zfwml86606jpgb9mss01l9aj31iiciml8p857aixi";
-    })
-    (fetchpatch {
-      name = "CVE-2020-25219.patch";
-      url = "https://github.com/libproxy/libproxy/commit/a83dae404feac517695c23ff43ce1e116e2bfbe0.patch";
-      sha256 = "0wdh9qjq99aw0jnf2840237i3hagqzy42s09hz9chfgrw8pyr72k";
-    })
-    (fetchpatch {
-      name = "CVE-2020-26154.patch";
-      url = "https://github.com/libproxy/libproxy/commit/4411b523545b22022b4be7d0cac25aa170ae1d3e.patch";
-      sha256 = "0pdy9sw49lxpaiwq073cisk0npir5bkch70nimdmpszxwp3fv1d8";
-    })
-
-  ] ++ lib.optionals stdenv.isDarwin [
-    (fetchpatch {
-      url = "https://github.com/libproxy/libproxy/commit/44158f03f8522116758d335688ed840dfcb50ac8.patch";
-      sha256 = "0axfvb6j7gcys6fkwi9dkn006imhvm3kqr83gpwban8419n0q5v1";
-    })
-  ];
-
   postFixup = lib.optionalString stdenv.isLinux ''
     # config_gnome3 uses the helper to find GNOME proxy settings
     wrapProgram $out/libexec/pxgsettings --prefix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}"
diff --git a/nixpkgs/pkgs/development/libraries/libpst/default.nix b/nixpkgs/pkgs/development/libraries/libpst/default.nix
index 40f6b3b1aee1..f27b58a02bb6 100644
--- a/nixpkgs/pkgs/development/libraries/libpst/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpst/default.nix
@@ -1,5 +1,15 @@
-{ lib, stdenv, fetchurl, autoreconfHook, boost, libgsf,
-  pkg-config, bzip2, xmlto, gettext, imagemagick, doxygen }:
+{ lib
+, stdenv
+, fetchurl
+, autoreconfHook
+, pkg-config
+, bzip2
+, doxygen
+, gettext
+, imagemagick
+, libgsf
+, xmlto
+}:
 
 stdenv.mkDerivation rec {
   name = "libpst-0.6.75";
@@ -9,14 +19,24 @@ stdenv.mkDerivation rec {
     sha256 = "11wrf47i3brlxg25wsfz17373q7m5fpjxn2lr41dj252ignqzaac";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    doxygen
+    gettext
+    xmlto
+  ];
+
   buildInputs = [
-    boost libgsf bzip2
-    xmlto gettext imagemagick doxygen
+    bzip2
+    imagemagick
+    libgsf
   ];
 
   configureFlags = [
     "--enable-python=no"
+    "--disable-static"
+    "--enable-libpst-shared"
   ];
 
   doCheck = true;
@@ -24,8 +44,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.five-ten-sg.com/libpst/";
     description = "A library to read PST (MS Outlook Personal Folders) files";
-    license = licenses.gpl2;
-    maintainers = [maintainers.tohl];
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.tohl ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libqalculate/default.nix b/nixpkgs/pkgs/development/libraries/libqalculate/default.nix
index a5b6e3b117ea..e55cda51748a 100644
--- a/nixpkgs/pkgs/development/libraries/libqalculate/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqalculate/default.nix
@@ -3,20 +3,19 @@
 
 stdenv.mkDerivation rec {
   pname = "libqalculate";
-  version = "3.16.1";
+  version = "3.17.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "libqalculate";
     rev = "v${version}";
-    sha256 = "sha256-mTxxiyN4t84BD4bBysvsrvP7L+DNbP6sMlcNFg4eMF8=";
+    sha256 = "sha256-VlKJrGZOMmnWFmdwV3SchBfyRsHM78eNV+uWONLZbJI=";
   };
 
   outputs = [ "out" "dev" "doc" ];
 
   nativeBuildInputs = [ intltool pkg-config autoreconfHook doxygen ];
   buildInputs = [ curl gettext libiconv readline ];
-  configureFlags = ["--with-readline=${readline.dev}"];
   propagatedBuildInputs = [ libxml2 mpfr icu ];
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/libqb/default.nix b/nixpkgs/pkgs/development/libraries/libqb/default.nix
index f5f255b111f1..73938bd8f973 100644
--- a/nixpkgs/pkgs/development/libraries/libqb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libqb";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "ClusterLabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gpfcz84igqncky09hdibxmzapzl37y8914avgq89rsizynj1wsm";
+    sha256 = "sha256-a9CnqfrQUL0DdPPOJjfh9tQ0O8iRHPP3iBmy3MKvt/0=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libqglviewer/default.nix b/nixpkgs/pkgs/development/libraries/libqglviewer/default.nix
index 4fc50f207309..65d7a83a8384 100644
--- a/nixpkgs/pkgs/development/libraries/libqglviewer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqglviewer/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ qtbase libGLU ]
     ++ lib.optional stdenv.isDarwin AGL;
 
+  dontWrapQtApps = true;
+
   postPatch = ''
     cd QGLViewer
   '';
diff --git a/nixpkgs/pkgs/development/libraries/libqmi/default.nix b/nixpkgs/pkgs/development/libraries/libqmi/default.nix
index 7bd3fa97029a..8a3179b03427 100644
--- a/nixpkgs/pkgs/development/libraries/libqmi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqmi/default.nix
@@ -1,33 +1,54 @@
-{ lib, stdenv, fetchurl, pkg-config, gobject-introspection, glib, python3, libgudev, libmbim }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, gobject-introspection
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, glib
+, python3
+, libgudev
+, libmbim
+, libqrtr-glib
+}:
 
 stdenv.mkDerivation rec {
   pname = "libqmi";
-  version = "1.26.8";
+  version = "1.28.2";
+
+  outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz";
-    sha256 = "sha256-73bclasKBjIaG9Jeh1SJy6Esn2YRl0ygE1zwZ7sgyWA=";
+    sha256 = "jIw+5xmHTSUpvOmzWwKP5DWzbwA5eaNg060JOESdt4M=";
   };
 
-  outputs = [ "out" "dev" "devdoc" ];
-
-  configureFlags = [
-    "--with-udev-base-dir=${placeholder "out"}/lib/udev"
-    "--enable-introspection"
-  ];
-
   nativeBuildInputs = [
     pkg-config
     gobject-introspection
     python3
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
   ];
 
   buildInputs = [
-    glib
     libgudev
     libmbim
   ];
 
+  propagatedBuildInputs = [
+    glib
+    libqrtr-glib
+  ];
+
+  configureFlags = [
+    "--with-udev-base-dir=${placeholder "out"}/lib/udev"
+    "--enable-gtk-doc"
+    "--enable-introspection"
+  ];
+
   enableParallelBuilding = true;
 
   doCheck = true;
@@ -35,7 +56,13 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.freedesktop.org/wiki/Software/libqmi/";
     description = "Modem protocol helper library";
+    maintainers = teams.freedesktop.members;
     platforms = platforms.linux;
-    license = licenses.gpl2;
+    license = with licenses; [
+      # Library
+      lgpl2Plus
+      # Tools
+      gpl2Plus
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libqrtr-glib/default.nix b/nixpkgs/pkgs/development/libraries/libqrtr-glib/default.nix
new file mode 100644
index 000000000000..29097710a697
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libqrtr-glib/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, gobject-introspection
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libqrtr-glib";
+  version = "1.0.0";
+
+  outputs = [ "out" "dev" "devdoc" ];
+
+  src = fetchurl {
+    url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz";
+    sha256 = "MNh5sq3m+PRh3vOmd3VdtcAji6v2iNXIPAOz5qvjXO4=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    gobject-introspection
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+  ];
+
+  buildInputs = [
+    glib
+  ];
+
+  configureFlags = [
+    "--enable-gtk-doc"
+  ];
+
+  meta = with lib; {
+    homepage = "https://gitlab.freedesktop.org/mobile-broadband/libqrtr-glib";
+    description = "Qualcomm IPC Router protocol helper library";
+    maintainers = teams.freedesktop.members;
+    platforms = platforms.linux;
+    license = licenses.lgpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libquotient/default.nix b/nixpkgs/pkgs/development/libraries/libquotient/default.nix
index 10b2451e7c85..5405391a1e61 100644
--- a/nixpkgs/pkgs/development/libraries/libquotient/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libquotient/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "libquotient";
-  version = "0.6.4";
+  version = "0.6.6";
 
   src = fetchFromGitHub {
     owner = "quotient-im";
     repo = "libQuotient";
     rev = version;
-    sha256 = "sha256-bWqZiRv/mJzw+WY+7dLIzYBu8jhglBqgTjiXyQ1y6IQ=";
+    sha256 = "sha256-QSpkcQEDTMsFbQBa7dTuL/5HraVChUHqUuJdNMty/4s=";
   };
 
   buildInputs = [ qtbase qtmultimedia ];
diff --git a/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix b/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix
index 217a83bcebc3..d4d69ed6afff 100644
--- a/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libraspberrypi";
-  version = "unstable-2020-11-30";
+  version = "unstable-2021-03-17";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "userland";
-    rev = "093b30bbc2fd083d68cc3ee07e6e555c6e592d11";
-    sha256 = "0n2psqyxlsic9cc5s8h65g0blblw3xws4czhpbbgjm58px3822d7";
+    rev = "3fd8527eefd8790b4e8393458efc5f94eb21a615";
+    sha256 = "099qxh4bjzwd431ffpdhzx0gzlrkdyf66wplgkwg2rrfrc9zlv5a";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/librealsense/default.nix b/nixpkgs/pkgs/development/libraries/librealsense/default.nix
index 82761dc3d009..7d9aa52e5961 100644
--- a/nixpkgs/pkgs/development/libraries/librealsense/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librealsense/default.nix
@@ -7,7 +7,7 @@ assert enablePython -> pythonPackages != null;
 
 stdenv.mkDerivation rec {
   pname = "librealsense";
-  version = "2.41.0";
+  version = "2.42.0";
 
   outputs = [ "out" "dev" ];
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     owner = "IntelRealSense";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ngv9fgja72vg7hq1aiwpa7x4dhniawhpd8mqm85pqkjxiph8s1k";
+    sha256 = "sha256-8r8j0g7EaSUWujX+BNdkIJhzaLITMLsozjhOtQBriTA=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libredwg/default.nix b/nixpkgs/pkgs/development/libraries/libredwg/default.nix
index 5fca199acb0a..e5123fa61af3 100644
--- a/nixpkgs/pkgs/development/libraries/libredwg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libredwg/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, texinfo, pcre2
-, enablePython ? false, python, swig, libxml2, ncurses
+, enablePython ? false, python ? null, swig, libxml2, ncurses
 }:
 let
   isPython3 = enablePython && python.pythonAtLeast "3";
diff --git a/nixpkgs/pkgs/development/libraries/librep/default.nix b/nixpkgs/pkgs/development/libraries/librep/default.nix
index 74c45f00adcf..cd007c5fe57a 100644
--- a/nixpkgs/pkgs/development/libraries/librep/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librep/default.nix
@@ -1,37 +1,49 @@
-{ lib, stdenv, fetchurl
-, pkg-config, autoreconfHook
-, readline, texinfo
-, gdbm, gmp, libffi }:
-
-with lib;
+{ lib
+, stdenv
+, fetchurl
+, autoreconfHook
+, gdbm
+, gmp
+, libffi
+, pkg-config
+, readline
+, texinfo
+}:
 
 stdenv.mkDerivation rec {
   pname = "librep";
   version = "0.92.7";
-  sourceName = "librep_${version}";
 
   src = fetchurl {
-    url = "https://download.tuxfamily.org/librep/${sourceName}.tar.xz";
+    url = "https://download.tuxfamily.org/${pname}/${pname}_${version}.tar.xz";
     sha256 = "1bmcjl1x1rdh514q9z3hzyjmjmwwwkziipjpjsl301bwmiwrd8a8";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ readline texinfo ];
-  propagatedBuildInputs = [ gdbm gmp libffi ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    texinfo
+  ];
+  buildInputs = [
+    gdbm
+    gmp
+    libffi
+    readline
+  ];
 
   setupHook = ./setup-hook.sh;
 
-  meta = {
+  meta = with lib;{
+    homepage = "http://sawfish.tuxfamily.org/";
     description = "Fast, lightweight, and versatile Lisp environment";
     longDescription = ''
-      librep is a Lisp system for UNIX, comprising an
-      interpreter, a byte-code compiler, and a virtual
-      machine. It can serve as an application extension language
-      but is also suitable for standalone scripts.
-     '';
-    homepage = "http://sawfish.wikia.com";
-    license = licenses.gpl2;
+      librep is a Lisp system for UNIX, comprising an interpreter, a byte-code
+      compiler, and a virtual machine. It can serve as an application extension
+      language but is also suitable for standalone scripts.
+    '';
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.unix;
   };
 }
 # TODO: investigate fetchFromGithub
diff --git a/nixpkgs/pkgs/development/libraries/libressl/default.nix b/nixpkgs/pkgs/development/libraries/libressl/default.nix
index d67342eebc11..3dffccf5f41d 100644
--- a/nixpkgs/pkgs/development/libraries/libressl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libressl/default.nix
@@ -63,13 +63,13 @@ let
   };
 
 in {
-  libressl_3_0 = generic {
-    version = "3.0.2";
-    sha256 = "13ir2lpxz8y1m151k7lrx306498nzfhwlvgkgv97v5cvywmifyyz";
+  libressl_3_1 = generic {
+    version = "3.1.5";
+    sha256 = "1504a1sf43frw43j14pij0q1f48rm5q86ggrlxxhw708qp7ds4rc";
   };
 
-  libressl_3_1 = generic {
-    version = "3.1.4";
-    sha256 = "1dnbbnr43jashxivnafmh9gnn57c7ayva788ba03z633k6f18k21";
+  libressl_3_2 = generic {
+    version = "3.2.5";
+    sha256 = "1zkwrs3b19s1ybz4q9hrb7pqsbsi8vxcs44qanfy11fkc7ynb2kr";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/librime/default.nix b/nixpkgs/pkgs/development/libraries/librime/default.nix
index b6db462f3c34..e430a447336b 100644
--- a/nixpkgs/pkgs/development/libraries/librime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librime/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, boost, glog, leveldb, marisa, opencc,
-  libyamlcpp, gmock }:
+  libyamlcpp, gtest }:
 
 stdenv.mkDerivation rec {
   pname = "librime";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ boost glog leveldb marisa opencc libyamlcpp gmock ];
+  buildInputs = [ boost glog leveldb marisa opencc libyamlcpp gtest ];
 
   meta = with lib; {
     homepage    = "https://rime.im/";
diff --git a/nixpkgs/pkgs/development/libraries/librsb/default.nix b/nixpkgs/pkgs/development/libraries/librsb/default.nix
new file mode 100644
index 000000000000..ef8b9ee441d3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/librsb/default.nix
@@ -0,0 +1,86 @@
+{ lib, stdenv, fetchurl
+, gfortran
+, pkg-config, libtool
+, m4, gnum4
+, file
+# Memory Hierarchy (End-user can provide this.)
+, memHierarchy ? ""
+# Headers/Libraries
+, blas, zlib
+# RPC headers (rpc/xdr.h)
+, openmpi
+, help2man
+, doxygen
+, octave
+}:
+
+stdenv.mkDerivation rec {
+  pname = "librsb";
+  version = "1.2.0.9";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "1ynrsgnvv1jfm8dv3jwjrip9x9icxv7w3qrk149025j6fbaza8gl";
+  };
+
+  # The default configure flags are still present when building
+  # --disable-static --disable-dependency-tracking
+  # Along with the --prefix=... flag (but we want that one).
+  configureFlags = [
+    "--enable-static"
+    "--enable-doc-build"
+    "--enable-octave-testing"
+    "--enable-sparse-blas-interface"
+    "--enable-fortran-module-install"
+    "--enable-pkg-config-install"
+    "--enable-matrix-types=all"
+    "--with-zlib=${zlib}/lib/libz.so"
+    "--with-memhinfo=${memHierarchy}"
+  ];
+
+  # Ensure C/Fortran code is position-independent.
+  NIX_CFLAGS_COMPILE = [ "-fPIC" "-Ofast" ];
+  FCFLAGS = [ "-fPIC" "-Ofast" ];
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    gfortran
+    pkg-config libtool
+    m4 gnum4
+    file
+    blas zlib
+    openmpi
+    octave
+    help2man # Turn "--help" into a man-page
+    doxygen # Build documentation
+  ];
+
+  # Need to run cleanall target to remove any previously-generated files.
+  preBuild = ''
+    make cleanall
+  '';
+
+  checkInputs = [
+    octave
+  ];
+  checkTarget = "tests";
+
+  meta = with lib; {
+    homepage = "http://librsb.sourceforge.net/";
+    description = "Shared memory parallel sparse matrix and sparse BLAS library";
+    longDescription = ''
+      Library for sparse matrix computations featuring the Recursive Sparse
+      Blocks (RSB) matrix format. This format allows cache efficient and
+      multi-threaded (that is, shared memory parallel) operations on large
+      sparse matrices.
+      librsb implements the Sparse BLAS standard, as specified in the BLAS
+      Forum documents.
+      Contains libraries and header files for developing applications that
+      want to make use of librsb.
+    '';
+    license = with licenses; [ lgpl3Plus ];
+    maintainers = with maintainers; [ KarlJoad ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/librseq/default.nix b/nixpkgs/pkgs/development/libraries/librseq/default.nix
index 12b9b4109c70..82e6c54bb2c8 100644
--- a/nixpkgs/pkgs/development/libraries/librseq/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librseq/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Userspace library for the Linux Restartable Sequence API";
     homepage    = "https://github.com/compudj/librseq";
-    license     = licenses.lgpl21;
+    license     = licenses.lgpl21Only;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ thoughtpolice ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/libseat/default.nix b/nixpkgs/pkgs/development/libraries/libseat/default.nix
new file mode 100644
index 000000000000..bdefb51b50f4
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libseat/default.nix
@@ -0,0 +1,37 @@
+{ fetchFromSourcehut
+, lib
+, meson
+, ninja
+, pkg-config
+, stdenv
+, systemd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libseat";
+  version = "0.5.0";
+
+  src = fetchFromSourcehut {
+    owner = "~kennylevinsen";
+    repo = "seatd";
+    rev = version;
+    sha256 = "sha256-JwlJLHkRgSRqfQEhXbzuFTmhxfbwKVdLICPbTDbC9M0=";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
+
+  buildInputs = [
+    systemd
+  ];
+
+  mesonFlags = [ "-Dserver=disabled" "-Dseatd=disabled" "-Dlogind=enabled"];
+
+  meta = with lib; {
+    description = "A universal seat management library";
+    changelog   = "https://git.sr.ht/~kennylevinsen/seatd/refs/${version}";
+    homepage    = "https://sr.ht/~kennylevinsen/seatd/";
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ emantor ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libshout/default.nix b/nixpkgs/pkgs/development/libraries/libshout/default.nix
index c810034f8478..1e5cdb389483 100644
--- a/nixpkgs/pkgs/development/libraries/libshout/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libshout/default.nix
@@ -4,11 +4,11 @@
 # need pkg-config so that libshout installs ${out}/lib/pkgconfig/shout.pc
 
 stdenv.mkDerivation rec {
-  name = "libshout-2.4.4";
+  name = "libshout-2.4.5";
 
   src = fetchurl {
     url = "http://downloads.xiph.org/releases/libshout/${name}.tar.gz";
-    sha256 = "1hz670a4pfpsb89b0mymy8nw4rx8x0vmh61gq6j1vbg70mfhrscc";
+    sha256 = "sha256-2eVoZopnOZTr4/HrXyvuBuMjal25K40MSH4cD4hqaJA=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libsigcxx/default.nix b/nixpkgs/pkgs/development/libraries/libsigcxx/default.nix
index eac383fae0d9..c933d92f3255 100644
--- a/nixpkgs/pkgs/development/libraries/libsigcxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsigcxx/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://libsigcplusplus.github.io/libsigcplusplus/";
     description = "A typesafe callback system for standard C++";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libsigsegv/default.nix b/nixpkgs/pkgs/development/libraries/libsigsegv/default.nix
index 20cb80b1ff85..4189ba9c6fae 100644
--- a/nixpkgs/pkgs/development/libraries/libsigsegv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsigsegv/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "libsigsegv-2.12";
+  name = "libsigsegv-2.13";
 
   src = fetchurl {
     url = "mirror://gnu/libsigsegv/${name}.tar.gz";
-    sha256 = "1dlhqf4igzpqayms25lkhycjq1ccavisx8cnb3y4zapbkqsszq9s";
+    sha256 = "sha256-vnjuQXawX3x1/wMpjYSHTbkPS2ydVQPw2hIms6PEgRk=";
   };
 
   patches = if enableSigbusFix then [ ./sigbus_fix.patch ] else null;
diff --git a/nixpkgs/pkgs/development/libraries/libsodium/default.nix b/nixpkgs/pkgs/development/libraries/libsodium/default.nix
index db2cd044592b..64ae1713fd45 100644
--- a/nixpkgs/pkgs/development/libraries/libsodium/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsodium/default.nix
@@ -12,6 +12,11 @@ stdenv.mkDerivation rec {
   separateDebugInfo = stdenv.isLinux && stdenv.hostPlatform.libc != "musl";
 
   enableParallelBuilding = true;
+  hardeningDisable = lib.optional (stdenv.targetPlatform.isMusl && stdenv.targetPlatform.isx86_32) "stackprotector";
+
+  # FIXME: the hardeingDisable attr above does not seems effective, so
+  # the need to disable stackprotector via configureFlags
+  configureFlags = lib.optional (stdenv.targetPlatform.isMusl && stdenv.targetPlatform.isx86_32) "--disable-ssp";
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/libspectrum/default.nix b/nixpkgs/pkgs/development/libraries/libspectrum/default.nix
index 8922bedccdc8..011531b1a23e 100644
--- a/nixpkgs/pkgs/development/libraries/libspectrum/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libspectrum/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, perl, pkg-config, audiofile, bzip2, glib, libgcrypt, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "libspectrum-1.4.4";
+  name = "libspectrum-1.5.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/fuse-emulator/${name}.tar.gz";
-    sha256 = "1cc0jx617sym6qj1f9fm115q44cq5azsxplqq2cgrg0pmlmjpyzx";
+    sha256 = "sha256-o1PLRumxooEGHYFjU+oBDQpv545qF6oLe3QnHKXkrPw=";
   };
 
   nativeBuildInputs = [ perl pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libspnav/default.nix b/nixpkgs/pkgs/development/libraries/libspnav/default.nix
new file mode 100644
index 000000000000..fb2a2744d6ad
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libspnav/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, fetchFromGitHub, libX11}:
+
+stdenv.mkDerivation rec {
+  version = "0.2.3";
+  pname = "libspnav";
+
+  src = fetchFromGitHub {
+    owner = "FreeSpacenav";
+    repo = "libspnav";
+    rev = "${pname}-${version}";
+    sha256 = "098h1jhlj87axpza5zgy58prp0zn94wyrbch6x0s7q4mzh7dc8ba";
+  };
+
+  buildInputs = [ libX11 ];
+
+  configureFlags = [ "--disable-debug"];
+
+  preInstall = ''
+    mkdir -p $out/{lib,include}
+  '';
+
+  meta = with lib; {
+    homepage = "http://spacenav.sourceforge.net/";
+    description = "Device driver and SDK for 3Dconnexion 3D input devices";
+    longDescription = "A free, compatible alternative, to the proprietary 3Dconnexion device driver and SDK, for their 3D input devices (called 'space navigator', 'space pilot', 'space traveller', etc)";
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sohalt ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libspotify/default.nix b/nixpkgs/pkgs/development/libraries/libspotify/default.nix
index b39944d13dca..004460abe312 100644
--- a/nixpkgs/pkgs/development/libraries/libspotify/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libspotify/default.nix
@@ -47,7 +47,7 @@ else stdenv.mkDerivation {
 
 
   # darwin-specific
-  buildInputs = lib.optional (stdenv.hostPlatform.system == "x86_64-darwin") unzip;
+  nativeBuildInputs = lib.optional (stdenv.hostPlatform.system == "x86_64-darwin") unzip;
 
   # linux-specific
   installFlags = lib.optional isLinux
diff --git a/nixpkgs/pkgs/development/libraries/libthai/default.nix b/nixpkgs/pkgs/development/libraries/libthai/default.nix
index ad00906bb8cc..97745813ef26 100644
--- a/nixpkgs/pkgs/development/libraries/libthai/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libthai/default.nix
@@ -4,12 +4,16 @@ stdenv.mkDerivation rec {
   pname = "libthai";
   version = "0.1.28";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchurl {
     url = "https://github.com/tlwg/libthai/releases/download/v${version}/libthai-${version}.tar.xz";
     sha256 = "04g93bgxrcnay9fglpq2lj9nr7x1xh06i60m7haip8as9dxs3q7z";
   };
 
-  nativeBuildInputs = [ installShellFiles pkg-config ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ installShellFiles (lib.getBin libdatrie) pkg-config ];
 
   buildInputs = [ libdatrie ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libticalcs2/default.nix b/nixpkgs/pkgs/development/libraries/libticalcs2/default.nix
index 6eb013a7ffd7..2488a5bbb0b4 100644
--- a/nixpkgs/pkgs/development/libraries/libticalcs2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libticalcs2/default.nix
@@ -7,7 +7,7 @@
 , libticonv
 , libtifiles2
 , libticables2
-, lzma
+, xz
 , bzip2
 , acl
 , libobjc
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     libticonv
     libtifiles2
     libticables2
-    lzma
+    xz
     bzip2
   ] ++ lib.optionals stdenv.isLinux [
     acl
diff --git a/nixpkgs/pkgs/development/libraries/libtiff/default.nix b/nixpkgs/pkgs/development/libraries/libtiff/default.nix
index 2fad29888982..46c13bbe4a9d 100644
--- a/nixpkgs/pkgs/development/libraries/libtiff/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libtiff/default.nix
@@ -4,18 +4,19 @@
 , pkg-config
 , cmake
 
-, zlib
+, libdeflate
 , libjpeg
 , xz
+, zlib
 }:
 
 stdenv.mkDerivation rec {
-  version = "4.1.0";
   pname = "libtiff";
+  version = "4.2.0";
 
   src = fetchurl {
     url = "https://download.osgeo.org/libtiff/tiff-${version}.tar.gz";
-    sha256 = "0d46bdvxdiv59lxnb0xz9ywm8arsr6xsapi5s6y6vnys2wjz6aax";
+    sha256 = "1jrkjv0xya9radddn8idxvs2gqzp3l2b1s8knlizmn7ad3jq817b";
   };
 
   cmakeFlags = if stdenv.isDarwin then [
@@ -35,7 +36,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  propagatedBuildInputs = [ zlib libjpeg xz ]; #TODO: opengl support (bogus configure detection)
+  propagatedBuildInputs = [ libjpeg xz zlib ]; #TODO: opengl support (bogus configure detection)
+
+  buildInputs = [ libdeflate ]; # TODO: move all propagatedBuildInputs to buildInputs.
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/libtorrent-rasterbar/default.nix b/nixpkgs/pkgs/development/libraries/libtorrent-rasterbar/default.nix
index ad3a47f99ce3..d17303bbb0ef 100644
--- a/nixpkgs/pkgs/development/libraries/libtorrent-rasterbar/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libtorrent-rasterbar/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "2.0.1";
+  version = "2.0.3";
 
   # Make sure we override python, so the correct version is chosen
   boostPython = boost.override { enablePython = true; inherit python; };
@@ -16,7 +16,7 @@ in stdenv.mkDerivation {
     owner = "arvidn";
     repo = "libtorrent";
     rev = "v${version}";
-    sha256 = "04ppw901babkfkis89pyb8kiyn39kb21k1s838xjq5ghbral1b1c";
+    sha256 = "0c5g2chylhkwwssfab9gw0b7bm3raj08yzgia7j4d044lp8gflnd";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/liburcu/default.nix b/nixpkgs/pkgs/development/libraries/liburcu/default.nix
index d108bf4e6df4..6eb1bb93f6b8 100644
--- a/nixpkgs/pkgs/development/libraries/liburcu/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liburcu/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, perl }:
 
 stdenv.mkDerivation rec {
-  version = "0.12.1";
+  version = "0.12.2";
   pname = "liburcu";
 
   src = fetchurl {
     url = "https://lttng.org/files/urcu/userspace-rcu-${version}.tar.bz2";
-    sha256 = "03nd1gy2c3fdb6xwdrd5lr1jcjxbzffqh3z91mzbjhjn6k8fmymv";
+    sha256 = "sha256-Tu/BHk9sIS/H2E2HHhzBOdoGaaRv8/2lV6b91NdMpns=";
   };
 
   checkInputs = [ perl ];
diff --git a/nixpkgs/pkgs/development/libraries/liburing/default.nix b/nixpkgs/pkgs/development/libraries/liburing/default.nix
index 6a94f37181d4..10554cb528ea 100644
--- a/nixpkgs/pkgs/development/libraries/liburing/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liburing/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "liburing";
-  version = "0.7";
+  version = "2.0";
 
   src = fetchgit {
     url    = "http://git.kernel.dk/${pname}";
     rev    = "liburing-${version}";
-    sha256 = "15z44l7y4c6s6dlf7v8lq4znlsjbja2r4ifbni0l8cdcnq0w3zh3";
+    sha256 = "0has1yd1ns5q5jgcmhrbgwhbwq0wix3p7xv3dyrwdf784p56izkn";
   };
 
   separateDebugInfo = true;
diff --git a/nixpkgs/pkgs/development/libraries/libusb1/default.nix b/nixpkgs/pkgs/development/libraries/libusb1/default.nix
index d69c8d670c4a..69410cf2b986 100644
--- a/nixpkgs/pkgs/development/libraries/libusb1/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libusb1/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , autoreconfHook
 , pkg-config
 , enableUdev ? stdenv.isLinux && !stdenv.hostPlatform.isMusl
@@ -22,6 +23,13 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  patches = [ (fetchpatch {
+    # https://bugs.archlinux.org/task/69121
+    url = "https://github.com/libusb/libusb/commit/f6d2cb561402c3b6d3627c0eb89e009b503d9067.patch";
+    sha256 = "1dbahikcbwkjhyvks7wbp7fy2bf7nca48vg5z0zqvqzjb9y595cq";
+    excludes = [ "libusb/version_nano.h" ];
+  }) ];
+
   nativeBuildInputs = [ pkg-config autoreconfHook ];
   propagatedBuildInputs =
     lib.optional enableUdev udev ++
diff --git a/nixpkgs/pkgs/development/libraries/libuv/default.nix b/nixpkgs/pkgs/development/libraries/libuv/default.nix
index a4447ed33789..6b1a0120e49e 100644
--- a/nixpkgs/pkgs/development/libraries/libuv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libuv/default.nix
@@ -1,19 +1,20 @@
 { stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, pkg-config, ApplicationServices, CoreServices }:
 
 stdenv.mkDerivation rec {
-  version = "1.40.0";
+  version = "1.41.0";
   pname = "libuv";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hd0x6i80ca3j0c3a7laygzab5qkgxjkz692jwzrsinsfhvbq0pg";
+    sha256 = "sha256-i6AYD1Ony0L2+3yWK6bxOfwoZEvd9qCg33QSqA7bRXI=";
   };
 
   postPatch = let
     toDisable = [
       "getnameinfo_basic" "udp_send_hang_loop" # probably network-dependent
+      "tcp_connect_timeout" # tries to reach out to 8.8.8.8
       "spawn_setuid_fails" "spawn_setgid_fails" "fs_chown" # user namespaces
       "getaddrinfo_fail" "getaddrinfo_fail_sync"
       "threadpool_multiple_event_loops" # times out on slow machines
diff --git a/nixpkgs/pkgs/development/libraries/libvirt/5.9.0.nix b/nixpkgs/pkgs/development/libraries/libvirt/5.9.0.nix
index c11d698079b0..c8ad0e7e6030 100644
--- a/nixpkgs/pkgs/development/libraries/libvirt/5.9.0.nix
+++ b/nixpkgs/pkgs/development/libraries/libvirt/5.9.0.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, fetchgit
 , pkg-config, makeWrapper, libtool, autoconf, automake, fetchpatch
 , coreutils, libxml2, gnutls, perl, python2, attr
-, iproute, iptables, readline, lvm2, util-linux, systemd, libpciaccess, gettext
+, iproute2, iptables, readline, lvm2, util-linux, systemd, libpciaccess, gettext
 , libtasn1, ebtables, libgcrypt, yajl, pmutils, libcap_ng, libapparmor
 , dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages
 , curl, libiconv, gmp, zfs, parted, bridge-utils, dmidecode, glib, rpcsvc-proto, libtirpc
@@ -54,7 +54,7 @@ in stdenv.mkDerivation rec {
 
   preConfigure = ''
     ${ optionalString (!buildFromTarball) "./bootstrap --no-git --gnulib-srcdir=$(pwd)/.gnulib" }
-    PATH=${lib.makeBinPath ([ dnsmasq ] ++ optionals stdenv.isLinux [ iproute iptables ebtables lvm2 systemd numad ] ++ optionals enableIscsi [ openiscsi ])}:$PATH
+    PATH=${lib.makeBinPath ([ dnsmasq ] ++ optionals stdenv.isLinux [ iproute2 iptables ebtables lvm2 systemd numad ] ++ optionals enableIscsi [ openiscsi ])}:$PATH
     # the path to qemu-kvm will be stored in VM's .xml and .save files
     # do not use "''${qemu_kvm}/bin/qemu-kvm" to avoid bound VMs to particular qemu derivations
     substituteInPlace src/lxc/lxc_conf.c \
@@ -101,7 +101,7 @@ in stdenv.mkDerivation rec {
 
 
   postInstall = let
-    binPath = [ iptables iproute pmutils numad numactl bridge-utils dmidecode dnsmasq ebtables ] ++ optionals enableIscsi [ openiscsi ];
+    binPath = [ iptables iproute2 pmutils numad numactl bridge-utils dmidecode dnsmasq ebtables ] ++ optionals enableIscsi [ openiscsi ];
   in ''
     substituteInPlace $out/libexec/libvirt-guests.sh \
       --replace 'ON_BOOT=start'       'ON_BOOT=''${ON_BOOT:-start}' \
diff --git a/nixpkgs/pkgs/development/libraries/libvirt/default.nix b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
index 100f79ae4e83..ea4b40c3c891 100644
--- a/nixpkgs/pkgs/development/libraries/libvirt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, fetchgit
 , makeWrapper, autoreconfHook, fetchpatch
-, coreutils, libxml2, gnutls, perl, python2, attr, glib, docutils
-, iproute, readline, lvm2, util-linux, systemd, libpciaccess, gettext
+, coreutils, libxml2, gnutls, perl, python3, attr, glib, docutils
+, iproute2, readline, lvm2, util-linux, systemd, libpciaccess, gettext
 , libtasn1, iptables, ebtables, libgcrypt, yajl, pmutils, libcap_ng, libapparmor
 , dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages
 , curl, libiconv, gmp, zfs, parted, bridge-utils, dmidecode, dbus, libtirpc, rpcsvc-proto, darwin
@@ -61,7 +61,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     bash-completion pkg-config
-    libxml2 gnutls perl python2 readline gettext libtasn1 libgcrypt yajl
+    libxml2 gnutls perl python3 readline gettext libtasn1 libgcrypt yajl
     libxslt xhtml1 perlPackages.XMLXPath curl libpcap glib dbus
   ] ++ optionals stdenv.isLinux [
     audit libpciaccess lvm2 util-linux systemd libnl numad zfs
@@ -85,12 +85,12 @@ in stdenv.mkDerivation rec {
       sed -i meson.build -e "s|conf.set_quoted('${var}',.*|conf.set_quoted('${var}','${value}')|"
     '';
   in ''
-    PATH=${lib.makeBinPath ([ dnsmasq ] ++ optionals stdenv.isLinux [ iproute iptables ebtables-compat lvm2 systemd numad ] ++ optionals enableIscsi [ openiscsi ])}:$PATH
+    PATH=${lib.makeBinPath ([ dnsmasq ] ++ optionals stdenv.isLinux [ iproute2 iptables ebtables-compat lvm2 systemd numad ] ++ optionals enableIscsi [ openiscsi ])}:$PATH
     # the path to qemu-kvm will be stored in VM's .xml and .save files
     # do not use "''${qemu_kvm}/bin/qemu-kvm" to avoid bound VMs to particular qemu derivations
     substituteInPlace src/lxc/lxc_conf.c \
       --replace 'lxc_path,' '"/run/libvirt/nix-emulators/libvirt_lxc",'
-    patchShebangs . # fixes /usr/bin/python references
+    patchShebangs .
   ''
   + (lib.concatStringsSep "\n" (lib.mapAttrsToList patchBuilder overrides));
 
@@ -126,7 +126,7 @@ in stdenv.mkDerivation rec {
 
   postInstall = let
     # Keep the legacy iptables binary for now for backwards compatibility (comment on #109332)
-    binPath = [ iptables ebtables-compat iproute pmutils numad numactl bridge-utils dmidecode dnsmasq ] ++ optionals enableIscsi [ openiscsi ];
+    binPath = [ iptables ebtables-compat iproute2 pmutils numad numactl bridge-utils dmidecode dnsmasq ] ++ optionals enableIscsi [ openiscsi ];
   in ''
     substituteInPlace $out/libexec/libvirt-guests.sh \
       --replace 'ON_BOOT="start"'       'ON_BOOT=''${ON_BOOT:-start}' \
diff --git a/nixpkgs/pkgs/development/libraries/libwacom/default.nix b/nixpkgs/pkgs/development/libraries/libwacom/default.nix
index f4418ec1bc4d..c17b8be592aa 100644
--- a/nixpkgs/pkgs/development/libraries/libwacom/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libwacom/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libwacom";
-  version = "1.7";
+  version = "1.9";
 
   outputs = [ "out" "dev" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "linuxwacom";
     repo = "libwacom";
     rev = "libwacom-${version}";
-    sha256 = "sha256-kF4Q3ACiVlUbEjS2YqwHA42QknKMLqX9US31PmXtS/I=";
+    sha256 = "sha256-o1xCSrWKPzz1GePEVB1jgx2cGzRtw0I6c4wful08Vx4=";
   };
 
   nativeBuildInputs = [ pkg-config meson ninja doxygen ];
diff --git a/nixpkgs/pkgs/development/libraries/libwebsockets/default.nix b/nixpkgs/pkgs/development/libraries/libwebsockets/default.nix
index 33c1cecfbc81..c62aa77c61a9 100644
--- a/nixpkgs/pkgs/development/libraries/libwebsockets/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libwebsockets/default.nix
@@ -20,7 +20,7 @@ let
       "-DLWS_WITH_PLUGINS=ON"
       "-DLWS_WITH_IPV6=ON"
       "-DLWS_WITH_SOCKS5=ON"
-    ];
+    ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-DLWS_WITHOUT_TESTAPPS=ON";
 
     NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=unused-but-set-variable";
 
@@ -35,6 +35,7 @@ let
       # Relicensed from LGPLv2.1+ to MIT with 4.0. Licensing situation
       # is tricky, see https://github.com/warmcat/libwebsockets/blob/main/LICENSE
       license = with licenses; [ mit publicDomain bsd3 asl20 ];
+      maintainers = with maintainers; [ mindavi ];
       platforms = platforms.all;
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/libwnck/default.nix b/nixpkgs/pkgs/development/libraries/libwnck/default.nix
index c0019ee268af..fd7d80574a7d 100644
--- a/nixpkgs/pkgs/development/libraries/libwnck/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libwnck/default.nix
@@ -23,5 +23,8 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/GNOME/libwnck";
     license = lib.licenses.lgpl21;
     maintainers = with lib.maintainers; [ johnazoidberg ];
+    # ./xutils.h:31:10: fatal error: 'gdk/gdkx.h' file not found
+    # #include <gdk/gdkx.h>
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libxc/default.nix b/nixpkgs/pkgs/development/libraries/libxc/default.nix
index 0a93babb4599..f78cd09c0ae0 100644
--- a/nixpkgs/pkgs/development/libraries/libxc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxc/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitLab, cmake, gfortran, perl }:
 
 let
-  version = "5.1.0";
+  version = "5.1.2";
 
 in stdenv.mkDerivation {
   pname = "libxc";
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
     owner = "libxc";
     repo = "libxc";
     rev = version;
-    sha256 = "0qbxh0lfx4cab1fk1qfnx72g4yvs376zqrq74jn224vy32nam2x7";
+    sha256 = "1bcj7x0kaal62m41v9hxb4h1d2cxs2ynvsfqqg7c5yi7829nvapb";
   };
 
   buildInputs = [ gfortran ];
diff --git a/nixpkgs/pkgs/development/libraries/libxcrypt/default.nix b/nixpkgs/pkgs/development/libraries/libxcrypt/default.nix
new file mode 100644
index 000000000000..4df5bde22871
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libxcrypt/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "libxcrypt";
+  version = "4.4.18";
+
+  src = fetchFromGitHub {
+    owner = "besser82";
+    repo = "libxcrypt";
+    rev = "v${version}";
+    sha256 = "4015bf1b3a2aab31da5a544424be36c1a0f0ffc1eaa219c0e7b048e4cdcbbfe1";
+  };
+
+  preConfigure = ''
+    patchShebangs autogen.sh
+    ./autogen.sh
+  '';
+
+  nativeBuildInputs = [ autoconf automake libtool pkg-config perl ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Extended crypt library for descrypt, md5crypt, bcrypt, and others";
+    homepage = "https://github.com/besser82/libxcrypt/";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dottedmag ];
+    license = licenses.lgpl21Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix b/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix
index c0785b34e891..d6e8b3958e40 100644
--- a/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix
@@ -1,30 +1,37 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, yacc, doxygen
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, bison, doxygen
 , xkeyboard_config, libxcb, libxml2
 , python3
 , libX11
+# To enable the "interactive-wayland" subcommand of xkbcli:
+, withWaylandSupport ? false, wayland, wayland-protocols
 }:
 
 stdenv.mkDerivation rec {
   pname = "libxkbcommon";
-  version = "1.0.3";
+  version = "1.1.0";
 
   src = fetchurl {
     url = "https://xkbcommon.org/download/${pname}-${version}.tar.xz";
-    sha256 = "0lmwglj16anhpaq0h830xsl1ivknv75i4lir9bk88aq73s2jy852";
+    sha256 = "0in2fq2x4yhyjmcn9n5n43zsawsdh12d4sm6l57934kgb75gqb21";
   };
 
+  patches = [
+    ./fix-cross-compilation.patch
+  ];
+
   outputs = [ "out" "dev" "doc" ];
 
-  nativeBuildInputs = [ meson ninja pkg-config yacc doxygen ];
-  buildInputs = [ xkeyboard_config libxcb libxml2 ];
+  nativeBuildInputs = [ meson ninja pkg-config bison doxygen ]
+    ++ lib.optional withWaylandSupport wayland;
+  buildInputs = [ xkeyboard_config libxcb libxml2 ]
+    ++ lib.optionals withWaylandSupport [ wayland wayland-protocols ];
   checkInputs = [ python3 ];
 
   mesonFlags = [
     "-Dxkb-config-root=${xkeyboard_config}/etc/X11/xkb"
     "-Dxkb-config-extra-path=/etc/xkb" # default=$sysconfdir/xkb ($out/etc)
     "-Dx-locale-root=${libX11.out}/share/X11/locale"
-    "-Denable-wayland=false"
-    "-Denable-xkbregistry=false" # Optional, separate library (TODO: Install into extra output)
+    "-Denable-wayland=${lib.boolToString withWaylandSupport}"
   ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/libraries/libxkbcommon/fix-cross-compilation.patch b/nixpkgs/pkgs/development/libraries/libxkbcommon/fix-cross-compilation.patch
new file mode 100644
index 000000000000..55730554a90f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libxkbcommon/fix-cross-compilation.patch
@@ -0,0 +1,20 @@
+diff --git a/meson.build b/meson.build
+index 47c436f..536c60b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -440,13 +440,12 @@ if build_tools
+     if get_option('enable-wayland')
+         wayland_client_dep = dependency('wayland-client', version: '>=1.2.0', required: false)
+         wayland_protocols_dep = dependency('wayland-protocols', version: '>=1.12', required: false)
+-        wayland_scanner_dep = dependency('wayland-scanner', required: false, native: true)
+-        if not wayland_client_dep.found() or not wayland_protocols_dep.found() or not wayland_scanner_dep.found()
++        if not wayland_client_dep.found() or not wayland_protocols_dep.found()
+             error('''The Wayland xkbcli programs require wayland-client >= 1.2.0, wayland-protocols >= 1.7 which were not found.
+ You can disable the Wayland xkbcli programs with -Denable-wayland=false.''')
+         endif
+ 
+-        wayland_scanner = find_program(wayland_scanner_dep.get_pkgconfig_variable('wayland_scanner'))
++        wayland_scanner = find_program('wayland-scanner', native: true)
+         wayland_scanner_code_gen = generator(
+             wayland_scanner,
+             output: '@BASENAME@-protocol.c',
diff --git a/nixpkgs/pkgs/development/libraries/libxkbcommon/libxkbcommon_7.nix b/nixpkgs/pkgs/development/libraries/libxkbcommon/libxkbcommon_7.nix
index cf5f6e320c0b..9f374c22c1e6 100644
--- a/nixpkgs/pkgs/development/libraries/libxkbcommon/libxkbcommon_7.nix
+++ b/nixpkgs/pkgs/development/libraries/libxkbcommon/libxkbcommon_7.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, yacc, flex, xkeyboard_config, libxcb, libX11 }:
+{ lib, stdenv, fetchurl, pkg-config, bison, flex, xkeyboard_config, libxcb, libX11 }:
 
 stdenv.mkDerivation rec {
   name = "libxkbcommon-0.7.2";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ yacc flex xkeyboard_config libxcb ];
+  buildInputs = [ bison flex xkeyboard_config libxcb ];
 
   configureFlags = [
     "--with-xkb-config-root=${xkeyboard_config}/etc/X11/xkb"
diff --git a/nixpkgs/pkgs/development/libraries/libxl/default.nix b/nixpkgs/pkgs/development/libraries/libxl/default.nix
index 600e94d0a757..601c27c98eed 100644
--- a/nixpkgs/pkgs/development/libraries/libxl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxl/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libxl";
-  version = "3.8.8";
+  version = "3.9.4.3";
 
   src = fetchurl {
     url = "https://www.libxl.com/download/${pname}-lin-${version}.tar.gz";
-    sha256 = "08jarfcl8l5mrmkx6bcifi3ghkaja9isz77zgggl84yl66js5pc3";
+    sha256 = "sha256-U8hXoqBzjSGigOXc29LZQk3KrGiYvBPBJPg5qihcAsY=";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/development/libraries/libxmi/default.nix b/nixpkgs/pkgs/development/libraries/libxmi/default.nix
index 037e7036f499..b9a2b6de3cc3 100644
--- a/nixpkgs/pkgs/development/libraries/libxmi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxmi/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
     description = "Library for rasterizing 2-D vector graphics";
     homepage = "https://www.gnu.org/software/libxmi/";
     license = lib.licenses.gpl2Plus;
-    platforms = lib.platforms.gnu ++ lib.platforms.linux;  # arbitrary choice
+    platforms = lib.platforms.unix;
     maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libxmlb/default.nix b/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
index b958f018b604..161833a928cd 100644
--- a/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
@@ -15,7 +15,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libxmlb";
-  version = "0.2.1";
+  version = "0.3.0";
 
   outputs = [ "out" "lib" "dev" "devdoc" "installedTests" ];
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libxmlb";
     rev = version;
-    sha256 = "XD66YfD8fjaqp5pkcR8qNh7Srjh+atAIC2qkDTF7KdM=";
+    sha256 = "sha256-prHsigfjifwiuBSUHaCWhjJIaw1LkOGHJu20cdPgH9c=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libxmp/default.nix b/nixpkgs/pkgs/development/libraries/libxmp/default.nix
index 0b953f95d7eb..31a14ff6ae43 100644
--- a/nixpkgs/pkgs/development/libraries/libxmp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxmp/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
       Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).
     '';
     license     = licenses.lgpl21Plus;
-    platforms   = platforms.linux;
+    platforms   = platforms.all;
   };
 
   src = fetchurl {
diff --git a/nixpkgs/pkgs/development/libraries/libxslt/default.nix b/nixpkgs/pkgs/development/libraries/libxslt/default.nix
index eff9f2b2b792..650e17d3179d 100644
--- a/nixpkgs/pkgs/development/libraries/libxslt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxslt/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, libxml2, findXMLCatalogs, gettext, python, libgcrypt
+{ lib, stdenv, fetchurl, fetchpatch, libxml2, findXMLCatalogs, gettext, python3, libgcrypt
 , cryptoSupport ? false
 , pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
 }:
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libxml2.dev ]
     ++ lib.optional stdenv.isDarwin gettext
-    ++ lib.optionals pythonSupport [ libxml2.py python ]
+    ++ lib.optionals pythonSupport [ libxml2.py python3 ]
     ++ lib.optionals cryptoSupport [ libgcrypt ];
 
   propagatedBuildInputs = [ findXMLCatalogs ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     "--without-debug"
     "--without-mem-debug"
     "--without-debugger"
-  ] ++ lib.optional pythonSupport "--with-python=${python}"
+  ] ++ lib.optional pythonSupport "--with-python=${python3}"
     ++ lib.optional (!cryptoSupport) "--without-crypto";
 
   postFixup = ''
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '' + lib.optionalString pythonSupport ''
     mkdir -p $py/nix-support
     echo ${libxml2.py} >> $py/nix-support/propagated-build-inputs
-    moveToOutput ${python.libPrefix} "$py"
+    moveToOutput ${python3.libPrefix} "$py"
   '';
 
   passthru = {
diff --git a/nixpkgs/pkgs/development/libraries/libzen/default.nix b/nixpkgs/pkgs/development/libraries/libzen/default.nix
index 2d19ca4b22be..1c7aa8c54b72 100644
--- a/nixpkgs/pkgs/development/libraries/libzen/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libzen/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.38";
+  version = "0.4.39";
   pname = "libzen";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/libzen/${version}/libzen_${version}.tar.bz2";
-    sha256 = "1nkygc17sndznpcf71fdrhwpm8z9a3hc9csqlafwswh49axhfkjr";
+    sha256 = "1rwaxmid9iv65n0y6xlcyxxydsvihjni9ldxpg6pbqz43amp49xx";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/development/libraries/libzip/default.nix b/nixpkgs/pkgs/development/libraries/libzip/default.nix
index c65a9b6f583a..ddefa16c2c1d 100644
--- a/nixpkgs/pkgs/development/libraries/libzip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libzip/default.nix
@@ -1,20 +1,27 @@
-{ lib, stdenv, fetchurl, cmake, perl, zlib }:
+{ lib, stdenv
+, cmake
+, fetchpatch
+, fetchurl
+, perl
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "libzip";
-  version = "1.6.1";
+  version = "1.7.3";
 
   src = fetchurl {
     url = "https://www.nih.at/libzip/${pname}-${version}.tar.gz";
-    sha256 = "120xgf7cgjmz9d3yp10lks6lhkgxqb4skbmbiiwf46gx868qxsq6";
+    sha256 = "1k5rihiz7m1ahhjzcbq759hb9crzqkgw78pkxga118y5a32pc8hf";
   };
 
-  # Fix pkg-config file paths
-  postPatch = ''
-    sed -i CMakeLists.txt \
-      -e 's#\\''${exec_prefix}/''${CMAKE_INSTALL_LIBDIR}#''${CMAKE_INSTALL_FULL_LIBDIR}#' \
-      -e 's#\\''${prefix}/''${CMAKE_INSTALL_INCLUDEDIR}#''${CMAKE_INSTALL_FULL_INCLUDEDIR}#'
-  '';
+  # Remove in next release
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/nih-at/libzip/commit/351201419d79b958783c0cfc7c370243165523ac.patch";
+      sha256 = "0d93z98ki0yiaza93268cxkl35y1r7ll9f7l8sivx3nfxj2c1n8a";
+    })
+  ];
 
   outputs = [ "out" "dev" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/lightning/default.nix b/nixpkgs/pkgs/development/libraries/lightning/default.nix
index 5fdc06bce012..5f8c71fa6aa3 100644
--- a/nixpkgs/pkgs/development/libraries/lightning/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lightning/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
     '';
     maintainers = [ maintainers.AndersonTorres ];
     license = licenses.lgpl3Plus;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/lightstep-tracer-cpp/default.nix b/nixpkgs/pkgs/development/libraries/lightstep-tracer-cpp/default.nix
index d47c7b50abef..8ef4513a18dd 100644
--- a/nixpkgs/pkgs/development/libraries/lightstep-tracer-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lightstep-tracer-cpp/default.nix
@@ -1,12 +1,8 @@
 { stdenv, lib, fetchFromGitHub, pkg-config, cmake
-, opentracing-cpp, protobuf, zlib
-, enableGrpc ? false, grpc ? null, openssl ? null, c-ares ? null
+, opentracing-cpp, protobuf
+, enableGrpc ? false, grpc, openssl
 }:
 
-assert enableGrpc -> grpc != null;
-assert enableGrpc -> openssl != null;
-assert enableGrpc -> c-ares != null;
-
 stdenv.mkDerivation rec {
   pname = "lightstep-tracer-cpp";
   version = "0.14.0";
@@ -23,9 +19,9 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    opentracing-cpp protobuf zlib
+    opentracing-cpp protobuf
   ] ++ lib.optionals enableGrpc [
-    grpc openssl c-ares c-ares.cmake-config
+    grpc openssl
   ];
 
   cmakeFlags = lib.optionals (!enableGrpc) [ "-DWITH_GRPC=OFF" ];
diff --git a/nixpkgs/pkgs/development/libraries/lime/default.nix b/nixpkgs/pkgs/development/libraries/lime/default.nix
index 3a16b5202c47..741f05bea6f9 100644
--- a/nixpkgs/pkgs/development/libraries/lime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lime/default.nix
@@ -2,14 +2,15 @@
 , belle-sip
 , cmake
 , fetchFromGitLab
+, lib
 , soci
 , sqlite
-, lib, stdenv
+, stdenv
 }:
 
 stdenv.mkDerivation rec {
   pname = "lime";
-  version = "4.4.0";
+  version = "4.5.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "14jg1zisjbzflw3scfqdbwy48wq3cp93l867vigb8l40lkc6n26z";
+    sha256 = "1fsldk7gxagxkbkzksz6dz8a8dmix1lxfy8nvvp0m355pzgqj6lb";
   };
 
   buildInputs = [ bctoolbox soci belle-sip sqlite ];
@@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "End-to-end encryption library for instant messaging";
     homepage = "http://www.linphone.org/technical-corner/lime";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/lmdb/default.nix b/nixpkgs/pkgs/development/libraries/lmdb/default.nix
index a59b460734d0..229e82c323aa 100644
--- a/nixpkgs/pkgs/development/libraries/lmdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lmdb/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "lmdb";
-  version = "0.9.25";
+  version = "0.9.28";
 
   src = fetchgit {
     url = "https://git.openldap.org/openldap/openldap.git";
     rev = "LMDB_${version}";
-    sha256 = "0i60zlca8r6fib23gdgl4c80gxpx24772ggpvz94yr7zaai4k11w";
+    sha256 = "012a8bs49cswsnzw7k4piis5b6dn4by85w7a7mai9i04xcjyy9as";
   };
 
   postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb";
diff --git a/nixpkgs/pkgs/development/libraries/log4cplus/default.nix b/nixpkgs/pkgs/development/libraries/log4cplus/default.nix
index 1e16ee96ae7f..e9ef841b65d7 100644
--- a/nixpkgs/pkgs/development/libraries/log4cplus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/log4cplus/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl }:
 
 let
-  name = "log4cplus-2.0.5";
+  name = "log4cplus-2.0.6";
 in
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "mirror://sourceforge/log4cplus/${name}.tar.bz2";
-    sha256 = "05gb0crf440da3vcaxavglzvsldw8hsvxq3xvvj73mzniv3bz3dk";
+    sha256 = "sha256-GpY6/Q+IPWLelGsYkn0jgFH9R5NuQV6r7/4rE5fxbso=";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/loudmouth/default.nix b/nixpkgs/pkgs/development/libraries/loudmouth/default.nix
index 0245417bbf9b..a8d9b23cc84c 100644
--- a/nixpkgs/pkgs/development/libraries/loudmouth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/loudmouth/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A lightweight C library for the Jabber protocol";
-    platforms = platforms.linux;
+    platforms = platforms.all;
     downloadPage = "http://mcabber.com/files/loudmouth/";
     downloadURLRegexp = "loudmouth-[0-9.]+[.]tar[.]bz2$";
     updateWalker = true;
diff --git a/nixpkgs/pkgs/development/libraries/lrdf/default.nix b/nixpkgs/pkgs/development/libraries/lrdf/default.nix
index 51b2635b89e0..bd78a4329a59 100644
--- a/nixpkgs/pkgs/development/libraries/lrdf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lrdf/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/projects/lrdf/";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.marcweber ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/lyra/default.nix b/nixpkgs/pkgs/development/libraries/lyra/default.nix
index 9f5fd1d3a342..ed02af56f784 100644
--- a/nixpkgs/pkgs/development/libraries/lyra/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lyra/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/bfgroup/Lyra";
     description = "A simple to use, composable, command line parser for C++ 11 and beyond";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.boost;
     maintainers = with maintainers; [ davidtwco ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/mapbox-gl-native/default.nix b/nixpkgs/pkgs/development/libraries/mapbox-gl-native/default.nix
new file mode 100644
index 000000000000..c71bf17a3c77
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/mapbox-gl-native/default.nix
@@ -0,0 +1,57 @@
+{ lib, mkDerivation, fetchFromGitHub, fetchpatch, cmake, pkg-config
+, qtbase, curl, libuv, glfw3, rapidjson }:
+
+mkDerivation rec {
+  pname = "mapbox-gl-native";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "mapbox";
+    repo = "mapbox-gl-native";
+    rev = "maps-v${version}";
+    sha256 = "027rw23yvd5a6nl9b5hsanddc44nyb17l2whdcq9fxb9n6vcda4c";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    # https://github.com/mapbox/mapbox-gl-native/pull/16591
+    (fetchpatch {
+      name = "add-support-for-qmapboxgl-installation.patch";
+      url = "https://github.com/mapbox/mapbox-gl-native/commit/e18467d755f470b26f61f6893eddd76ecf0816e6.patch";
+      sha256 = "0gs7wmkvyhf2db4cwbsq31sprsh1avi70ggvi32bk0wn3cw4d79b";
+    })
+    (fetchpatch {
+      name = "add-support-for-using-qmapboxgl-as-a-proper-cmake-dependency.patch";
+      url = "https://github.com/mapbox/mapbox-gl-native/commit/ab27b9b8207754ef731b588d187c470ffb084455.patch";
+      sha256 = "1lr5p1g4qaizs57vjqry9aq8k1ki59ks0y975chlnrm2sffp140r";
+    })
+    (fetchpatch {
+      name = "skip-license-check.patch";
+      url = "https://git.alpinelinux.org/aports/plain/testing/mapbox-gl-native/0002-skip-license-check.patch?id=6751a93dca26b0b3ceec9eb151272253a2fe497e";
+      sha256 = "1yybwzxbvn0lqb1br1fyg7763p2h117s6mkmywkl4l7qg9daa7ba";
+    })
+  ];
+
+  postPatch = ''
+    # don't use vendored rapidjson
+    rm -r vendor/mapbox-base/extras/rapidjson
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ curl libuv glfw3 qtbase rapidjson ];
+
+  cmakeFlags = [
+    "-DMBGL_WITH_QT=ON"
+    "-DMBGL_WITH_QT_LIB_ONLY=ON"
+    "-DMBGL_WITH_QT_HEADLESS=OFF"
+  ];
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations -Wno-error=type-limits";
+
+  meta = with lib; {
+    description = "Interactive, thoroughly customizable maps in native Android, iOS, macOS, Node.js, and Qt applications, powered by vector tiles and OpenGL";
+    homepage = "https://mapbox.com/mobile";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ Thra11 dotlambda ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/mapbox-gl-qml/default.nix b/nixpkgs/pkgs/development/libraries/mapbox-gl-qml/default.nix
new file mode 100644
index 000000000000..87e765766227
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/mapbox-gl-qml/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, curl
+, qtbase
+, qtlocation
+, mapbox-gl-native
+}:
+
+mkDerivation rec {
+  pname = "mapbox-gl-qml";
+  version = "1.7.6";
+
+  src = fetchFromGitHub {
+    owner = "rinigus";
+    repo = "mapbox-gl-qml";
+    rev = version;
+    sha256 = "sha256-E6Pkr8khzDbhmJxzK943+H6cDREgwAqMnJQ3hQWU7fw=";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ curl qtlocation mapbox-gl-native ];
+
+  postPatch = ''
+    substituteInPlace src/CMakeLists.txt \
+      --replace ' ''${QT_INSTALL_QML}' " $out/${qtbase.qtQmlPrefix}"
+  '';
+
+  # Package expects qt5 subdirectory of mapbox-gl-native to be in the include path
+  NIX_CFLAGS_COMPILE = "-I${mapbox-gl-native}/include/qt5";
+
+  meta = with lib; {
+    description = "Unofficial Mapbox GL Native bindings for Qt QML";
+    homepage = "https://github.com/rinigus/mapbox-gl-qml";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ Thra11 dotlambda ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/mauikit/default.nix b/nixpkgs/pkgs/development/libraries/mauikit/default.nix
new file mode 100644
index 000000000000..38e938080ba3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/mauikit/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, cmake
+, extra-cmake-modules
+, kio
+, qtbase
+, qtquickcontrols2
+, syntax-highlighting
+}:
+
+mkDerivation rec {
+  pname = "mauikit";
+  version = "1.2.1";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "maui";
+    repo = "mauikit";
+    rev = "v${version}";
+    sha256 = "1wimbpbn9yqqdcjd59x83z0mw2fycjz09py2rwimfi8ldmvi5lgy";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kio
+    qtquickcontrols2
+    syntax-highlighting
+  ];
+
+  meta = with lib; {
+    homepage = "https://mauikit.org/";
+    description = "Free and modular front-end framework for developing fast and compelling user experiences";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ dotlambda ];
+    broken = versionOlder qtbase.version "5.14.0";
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/maxflow/default.nix b/nixpkgs/pkgs/development/libraries/maxflow/default.nix
new file mode 100644
index 000000000000..9c53a16d3724
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/maxflow/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "maxflow";
+  version = "3.0.5";
+
+  src = fetchFromGitHub {
+    owner = "gerddie";
+    repo = pname;
+    rev = version;
+    hash = "sha256-a84SxGMnfBEaoMEeeIFffTOtErSN5yzZBrAUDjkalGY=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "Software for computing mincut/maxflow in a graph";
+    homepage = "https://github.com/gerddie/maxflow";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.tadfisher ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/mbedtls/default.nix b/nixpkgs/pkgs/development/libraries/mbedtls/default.nix
index 38a9b78b6d10..2e25399d9797 100644
--- a/nixpkgs/pkgs/development/libraries/mbedtls/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mbedtls/default.nix
@@ -4,7 +4,7 @@
 , cmake
 , ninja
 , perl # Project uses Perl for scripting and testing
-, python
+, python3
 
 , enableThreading ? true # Threading can be disabled to increase security https://tls.mbed.org/kb/development/thread-safety-and-multi-threading
 }:
@@ -20,7 +20,9 @@ stdenv.mkDerivation rec {
     sha256 = "0mz7n373b8d287crwi6kq2hb8ryyi228j38h25744lqai23qj5cf";
   };
 
-  nativeBuildInputs = [ cmake ninja perl python ];
+  nativeBuildInputs = [ cmake ninja perl python3 ];
+
+  strictDeps = true;
 
   postConfigure = lib.optionals enableThreading ''
     perl scripts/config.pl set MBEDTLS_THREADING_C    # Threading abstraction layer
diff --git a/nixpkgs/pkgs/development/libraries/md4c/default.nix b/nixpkgs/pkgs/development/libraries/md4c/default.nix
new file mode 100644
index 000000000000..a711ecb7c768
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/md4c/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "md4c";
+  version = "0.4.7";
+
+  src = fetchFromGitHub {
+    owner = "mity";
+    repo = pname;
+    rev = "release-${version}";
+    hash = "sha256-nfMXUP1wu3ifn1QVTO/+XcfFRsThG8PlmYRv+b8AYlQ=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/mity/md4c";
+    description = "Markdown parser made in C";
+    longDescription = ''
+      MD4C is Markdown parser implementation in C, with the following features:
+
+      - Compliance: Generally, MD4C aims to be compliant to the latest version
+        of CommonMark specification. Currently, we are fully compliant to
+        CommonMark 0.29.
+      - Extensions: MD4C supports some commonly requested and accepted
+        extensions. See below.
+      - Performance: MD4C is very fast.
+      - Compactness: MD4C parser is implemented in one source file and one
+        header file. There are no dependencies other than standard C library.
+      - Embedding: MD4C parser is easy to reuse in other projects, its API is
+        very straightforward: There is actually just one function, md_parse().
+      - Push model: MD4C parses the complete document and calls few callback
+        functions provided by the application to inform it about a start/end of
+        every block, a start/end of every span, and with any textual contents.
+      - Portability: MD4C builds and works on Windows and POSIX-compliant
+        OSes. (It should be simple to make it run also on most other platforms,
+        at least as long as the platform provides C standard library, including
+        a heap memory management.)
+      - Encoding: MD4C by default expects UTF-8 encoding of the input
+        document. But it can be compiled to recognize ASCII-only control
+        characters (i.e. to disable all Unicode-specific code), or (on Windows)
+        to expect UTF-16 (i.e. what is on Windows commonly called just
+        "Unicode"). See more details below.
+      - Permissive license: MD4C is available under the MIT license.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.all;
+  };
+}
+# TODO: enable tests (needs Python)
diff --git a/nixpkgs/pkgs/development/libraries/mediastreamer/default.nix b/nixpkgs/pkgs/development/libraries/mediastreamer/default.nix
index 3cda9ff3006d..aaa31b29e9ea 100644
--- a/nixpkgs/pkgs/development/libraries/mediastreamer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mediastreamer/default.nix
@@ -4,11 +4,11 @@
 , cmake
 , doxygen
 , fetchFromGitLab
-, fetchpatch
 , ffmpeg_3
 , glew
 , gsm
 , intltool
+, lib
 , libGL
 , libGLU
 , libX11
@@ -24,16 +24,16 @@
 , libvpx
 , ortp
 , pkg-config
-, python
+, python3
 , SDL
 , speex
 , srtp
-, lib, stdenv
+, stdenv
 }:
 
 stdenv.mkDerivation rec {
   pname = "mediastreamer2";
-  version = "4.4.13";
+  version = "4.5.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0w84v1ajhyysr41qaj7x4njwdak84cc10lq33hl8lq68a52fc2vw";
+    sha256 = "0aqma9834lzy1593qb9qwmzvzn50y6fzhmmg493jznf8977b0gsw";
   };
 
   patches = [
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
     doxygen
     intltool
     pkg-config
-    python
+    python3
   ];
 
   propagatedBuildInputs = [
@@ -87,6 +87,8 @@ stdenv.mkDerivation rec {
     srtp
   ];
 
+  strictDeps = true;
+
   # Do not build static libraries
   cmakeFlags = [ "-DENABLE_STATIC=NO" ];
 
@@ -102,7 +104,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A powerful and lightweight streaming engine specialized for voice/video telephony applications";
     homepage = "http://www.linphone.org/technical-corner/mediastreamer2";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/mesa/aarch64-darwin.patch b/nixpkgs/pkgs/development/libraries/mesa/aarch64-darwin.patch
new file mode 100644
index 000000000000..e60a4ffa308a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/mesa/aarch64-darwin.patch
@@ -0,0 +1,33 @@
+From 8ac29b952e638ec1ea8c3734a3b91253e50c336d Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Sun, 24 Jan 2021 21:10:29 -0800
+Subject: [PATCH 4/4] Hack to address build failure when using newer macOS SDKs
+ with older deployment targets
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+---
+ include/c11/threads_posix.h | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/include/c11/threads_posix.h b/include/c11/threads_posix.h
+index 45cb6075e6e..355d725f7da 100644
+--- a/include/c11/threads_posix.h
++++ b/include/c11/threads_posix.h
+@@ -382,7 +382,13 @@ tss_set(tss_t key, void *val)
+ 
+ /*-------------------- 7.25.7 Time functions --------------------*/
+ // 7.25.6.1
+-#ifndef HAVE_TIMESPEC_GET
++#if !defined(HAVE_TIMESPEC_GET) || defined(__APPLE__)
++
++#ifdef __APPLE__
++#include <time.h>
++#define timespec_get(ts, b) mesa_timespec_get(ts, b)
++#endif
++
+ static inline int
+ timespec_get(struct timespec *ts, int base)
+ {
+-- 
+2.29.2 (Apple Git-129)
+
diff --git a/nixpkgs/pkgs/development/libraries/mesa/default.nix b/nixpkgs/pkgs/development/libraries/mesa/default.nix
index 11d6cdd1b2a5..e7c87bbc2c72 100644
--- a/nixpkgs/pkgs/development/libraries/mesa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mesa/default.nix
@@ -31,7 +31,7 @@ with lib;
 let
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
-  version = "20.3.3";
+  version = "20.3.4";
   branch  = versions.major version;
 in
 
@@ -46,7 +46,7 @@ stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
     ];
-    sha256 = "0mnic7mfv5lgnn3swj7lbif8bl8pi2czlgr01jhq5s9q90nj2kpp";
+    sha256 = "1120kf280hg4h0a2505vxf6rdw8r2ydl3cg4iwkmpx0zxj3sj8fw";
   };
 
   prePatch = "patchShebangs .";
@@ -65,6 +65,10 @@ stdenv.mkDerivation {
       url = "https://gitlab.freedesktop.org/mesa/mesa/commit/aebbf819df6d1e.patch";
       sha256 = "17248hyzg43d73c86p077m4lv1pkncaycr3l27hwv9k4ija9zl8q";
     })
+  ] ++ optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    # Fix aarch64-darwin build, remove when upstreaam supports it out of the box.
+    # See: https://gitlab.freedesktop.org/mesa/mesa/-/issues/1020
+    ./aarch64-darwin.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/metal/default.nix b/nixpkgs/pkgs/development/libraries/metal/default.nix
index b98ae8e217c7..2f43485e05e0 100644
--- a/nixpkgs/pkgs/development/libraries/metal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/metal/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/brunocodutra/metal";
     license = licenses.mit;
     maintainers = with maintainers; [ pmiddend ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/libraries/mimalloc/default.nix b/nixpkgs/pkgs/development/libraries/mimalloc/default.nix
index 2ac2087054fe..36abc9f3276e 100644
--- a/nixpkgs/pkgs/development/libraries/mimalloc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mimalloc/default.nix
@@ -7,13 +7,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname   = "mimalloc";
-  version = "1.6.7";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner  = "microsoft";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1ymffs3ixc4vkhpr09ph6xhyknm2cx8ij8j5l70cq6119mwilnwa";
+    sha256 = "sha256-BMDCreY41CxJaPo9BdSRZlqh/YjtPC9aI/Zxt501e+0=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/nixpkgs/pkgs/development/libraries/minixml/default.nix b/nixpkgs/pkgs/development/libraries/minixml/default.nix
index 93c03b31a8a7..9bf5235db824 100644
--- a/nixpkgs/pkgs/development/libraries/minixml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/minixml/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     description = "A small XML library";
     homepage = "https://www.msweet.org/mxml/";
     license = licenses.asl20;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.goibhniu ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/minizip2/default.nix b/nixpkgs/pkgs/development/libraries/minizip2/default.nix
index 16bb2b8d44e6..591bb8c8dc3a 100644
--- a/nixpkgs/pkgs/development/libraries/minizip2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/minizip2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "minizip";
-  version = "2.10.4";
+  version = "2.10.6";
 
   src = fetchFromGitHub {
     owner = "nmoinvaz";
     repo = pname;
     rev = version;
-    sha256 = "15bbagngvm738prkzv7lfs64pn4pq7jkhwz571j0w0nb5nw9c01x";
+    sha256 = "sha256-OAm4OZeQdP2Q/UKYI9bR7OV9RmLmYF/j2NpK5TPoE60=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/msgpuck/default.nix b/nixpkgs/pkgs/development/libraries/msgpuck/default.nix
index 53fb3bec908c..cc7b056bb988 100644
--- a/nixpkgs/pkgs/development/libraries/msgpuck/default.nix
+++ b/nixpkgs/pkgs/development/libraries/msgpuck/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
      description = "A simple and efficient MsgPack binary serialization library in a self-contained header file";
      homepage = "https://github.com/rtsisyk/msgpuck";
      license = licenses.bsd2;
-     platforms = platforms.linux;
+     platforms = platforms.all;
      maintainers = with maintainers; [ izorkin ];
  };
 }
diff --git a/nixpkgs/pkgs/development/libraries/muparser/default.nix b/nixpkgs/pkgs/development/libraries/muparser/default.nix
index 85c9f781cc60..f213f39c06d3 100644
--- a/nixpkgs/pkgs/development/libraries/muparser/default.nix
+++ b/nixpkgs/pkgs/development/libraries/muparser/default.nix
@@ -10,9 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "00l92k231yb49wijzkspa2l58mapn6vh2dlxnlg0pawjjfv33s6z";
   };
 
-  buildInputs = [
-    unzip
-  ] ++ lib.optionals stdenv.isDarwin [setfile];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = lib.optionals stdenv.isDarwin [setfile];
 
   meta = {
     homepage = "http://muparser.sourceforge.net";
diff --git a/nixpkgs/pkgs/development/libraries/muparserx/default.nix b/nixpkgs/pkgs/development/libraries/muparserx/default.nix
index ef6b254b8a37..4d3036d4cfbb 100644
--- a/nixpkgs/pkgs/development/libraries/muparserx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/muparserx/default.nix
@@ -38,5 +38,7 @@ stdenv.mkDerivation rec {
     homepage = "https://beltoforion.de/en/muparserx/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ drewrisinger ];
+    # selftest fails
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/mustache-hpp/default.nix b/nixpkgs/pkgs/development/libraries/mustache-hpp/default.nix
new file mode 100644
index 000000000000..373f232a9866
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/mustache-hpp/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "mustache";
+  version = "4.1";
+
+  src = fetchFromGitHub {
+    owner = "kainjow";
+    repo = "Mustache";
+    rev = "v${version}";
+    sha256 = "0r9rbk6v1wpld2ismfsk2lkhbyv3dkf0p03hkjivbj05qkfhvlbb";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  installPhase = ''
+    mkdir -p $out/include
+    cp ../mustache.hpp $out/include
+  '';
+
+  meta = with lib; {
+    description = "Mustache text templates for modern C++";
+    homepage = "https://github.com/kainjow/Mustache";
+    license = licenses.boost;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/mygui/default.nix b/nixpkgs/pkgs/development/libraries/mygui/default.nix
index 4260e30561b4..8e63cb681203 100644
--- a/nixpkgs/pkgs/development/libraries/mygui/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mygui/default.nix
@@ -14,8 +14,8 @@ in stdenv.mkDerivation rec {
     sha256 = "0a4zi8w18pjj813n7kmxldl1d9r1jp0iyhkw7pbqgl8f7qaq994w";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ libX11 unzip ois freetype libuuid boost ]
+  nativeBuildInputs = [ cmake pkg-config unzip ];
+  buildInputs = [ libX11 ois freetype libuuid boost ]
     ++ (if withOgre then [ ogre ] else [ libGL libGLU ]);
 
   # Tools are disabled due to compilation failures.
diff --git a/nixpkgs/pkgs/development/libraries/mysocketw/default.nix b/nixpkgs/pkgs/development/libraries/mysocketw/default.nix
index 3b5da68a59d7..52d294525a0c 100644
--- a/nixpkgs/pkgs/development/libraries/mysocketw/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mysocketw/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
         --replace -Wl,-soname, -Wl,-install_name,$out/lib/
   '';
 
-  makeFlags = [ "PREFIX=$(out)" "CXX=c++" ];
+  makeFlags = [ "PREFIX=$(out)" "CXX=${stdenv.cc.targetPrefix}c++" ];
 
   meta = {
     description = "Cross platform (Linux/FreeBSD/Unix/Win32) streaming socket C++";
diff --git a/nixpkgs/pkgs/development/libraries/nco/default.nix b/nixpkgs/pkgs/development/libraries/nco/default.nix
index e8053ce27023..958be905f835 100644
--- a/nixpkgs/pkgs/development/libraries/nco/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nco/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, fetchzip, netcdf, netcdfcxx4, gsl, udunits, antlr, which, curl, flex, coreutils }:
 
 stdenv.mkDerivation rec {
-  version = "4.9.7";
+  version = "4.9.8";
   pname = "nco";
 
-  nativeBuildInputs = [ flex which ];
-  buildInputs = [ netcdf netcdfcxx4 gsl udunits antlr curl coreutils ];
+  nativeBuildInputs = [ flex which antlr ];
+  buildInputs = [ netcdf netcdfcxx4 gsl udunits curl coreutils ];
 
   src = fetchzip {
     url = "https://github.com/nco/nco/archive/${version}.tar.gz";
-    sha256 = "sha256-Q4okOoyodofAsMrSmAhFISeY05Be+i7OX4qy2annQq4=";
+    sha256 = "sha256-fOdmM0I/UGhxacofEBfw9UmOOrMDUXs59ca8uvkQKqw=";
   };
 
   prePatch = ''
@@ -19,11 +19,13 @@ stdenv.mkDerivation rec {
       --replace "/bin/mv" "${coreutils}/bin/mv"
   '';
 
+  parallelBuild = true;
+
   meta = {
     description = "NetCDF Operator toolkit";
     longDescription = "The NCO (netCDF Operator) toolkit manipulates and analyzes data stored in netCDF-accessible formats, including DAP, HDF4, and HDF5";
     homepage = "http://nco.sourceforge.net/";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.bzizou ];
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/libraries/neardal/default.nix b/nixpkgs/pkgs/development/libraries/neardal/default.nix
index 5e02a9fd5222..43f63d91a618 100644
--- a/nixpkgs/pkgs/development/libraries/neardal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/neardal/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
     sha256 = "12qwg7qiw2wfpaxfg2fjkmj5lls0g33xp6w433g8bnkvwlq4s29g";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ autoconf automake libtool glib readline makeWrapper ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ autoconf automake libtool glib readline ];
 
   preConfigure = ''
     substituteInPlace "ncl/Makefile.am" --replace "noinst_PROGRAMS" "bin_PROGRAMS"
diff --git a/nixpkgs/pkgs/development/libraries/nemo-qml-plugin-dbus/default.nix b/nixpkgs/pkgs/development/libraries/nemo-qml-plugin-dbus/default.nix
new file mode 100644
index 000000000000..a07a692f295e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/nemo-qml-plugin-dbus/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, lib, fetchFromGitLab, qmake, qtbase }:
+
+mkDerivation rec {
+  pname = "nemo-qml-plugin-dbus";
+  version = "2.1.24";
+
+  src = fetchFromGitLab {
+    domain = "git.sailfishos.org";
+    owner = "mer-core";
+    repo = "nemo-qml-plugin-dbus";
+    rev = version;
+    sha256 = "1ilg929456d3k0xkvxa5r4k7i4kkw9i8kgah5xx1yq0d9wka0l77";
+  };
+
+  nativeBuildInputs = [ qmake ];
+
+  postPatch = ''
+    substituteInPlace dbus.pro --replace ' tests' ""
+    substituteInPlace src/nemo-dbus/nemo-dbus.pro \
+      --replace /usr $out \
+      --replace '$$[QT_INSTALL_LIBS]' $out'/lib'
+    substituteInPlace src/plugin/plugin.pro \
+      --replace '$$[QT_INSTALL_QML]' $out'/${qtbase.qtQmlPrefix}'
+  '';
+
+  meta = with lib; {
+    description = "Nemo DBus plugin for qml";
+    homepage = "https://git.sailfishos.org/mer-core/nemo-qml-plugin-dbus/";
+    license = licenses.lgpl2Only;
+    maintainers = [ maintainers.Thra11 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/nettle/default.nix b/nixpkgs/pkgs/development/libraries/nettle/default.nix
index 7c0c6476bd05..3eec9c97ff10 100644
--- a/nixpkgs/pkgs/development/libraries/nettle/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nettle/default.nix
@@ -1,10 +1,10 @@
-{ callPackage, fetchurl, ... } @ args:
+{ callPackage, fetchurl }:
 
-callPackage ./generic.nix (args // rec {
-  version = "3.6";
+callPackage ./generic.nix rec {
+  version = "3.7.2";
 
   src = fetchurl {
     url = "mirror://gnu/nettle/nettle-${version}.tar.gz";
-    sha256 = "1wg3sprl0bzy49cmbwwm91vw67hk1x5i3ksdygsciyxz587hsk6j";
+    sha256 = "0qpi1qp3bcvqdsaxy2pzg530db95x8qjahkynxgwvr6dy5760ald";
   };
-})
+}
diff --git a/nixpkgs/pkgs/development/libraries/nettle/generic.nix b/nixpkgs/pkgs/development/libraries/nettle/generic.nix
index 735fe373533d..348faf56b56a 100644
--- a/nixpkgs/pkgs/development/libraries/nettle/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/nettle/generic.nix
@@ -2,9 +2,9 @@
 
 # Version specific args
 , version, src
-, ...}:
+}:
 
-stdenv.mkDerivation ({
+stdenv.mkDerivation {
   name = "nettle-${version}";
 
   inherit src;
@@ -16,7 +16,14 @@ stdenv.mkDerivation ({
   nativeBuildInputs = [ gnum4 ];
   propagatedBuildInputs = [ gmp ];
 
-  configureFlags = [ "--enable-fat" ]; # runtime selection of HW-accelerated code
+  configureFlags =
+    # runtime selection of HW-accelerated code; it's default since 3.7
+    [ "--enable-fat" ]
+    # Make sure the right <gmp.h> is found, and not the incompatible
+    # /usr/include/mp.h from OpenSolaris.  See
+    # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html>
+    # for details.
+    ++ lib.optional stdenv.isSunOS "--with-include-path=${gmp.dev}/include";
 
   doCheck = (stdenv.hostPlatform.system != "i686-cygwin" && !stdenv.isDarwin);
 
@@ -53,18 +60,9 @@ stdenv.mkDerivation ({
 
      license = licenses.gpl2Plus;
 
-     homepage = "http://www.lysator.liu.se/~nisse/nettle/";
+     homepage = "https://www.lysator.liu.se/~nisse/nettle/";
 
      platforms = platforms.all;
+     maintainers = [ maintainers.vcunat ];
   };
 }
-
-//
-
-lib.optionalAttrs stdenv.isSunOS {
-  # Make sure the right <gmp.h> is found, and not the incompatible
-  # /usr/include/mp.h from OpenSolaris.  See
-  # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html>
-  # for details.
-  configureFlags = [ "--with-include-path=${gmp.dev}/include" ];
-})
diff --git a/nixpkgs/pkgs/development/libraries/nlohmann_json/default.nix b/nixpkgs/pkgs/development/libraries/nlohmann_json/default.nix
index 742135345328..41a967a5b709 100644
--- a/nixpkgs/pkgs/development/libraries/nlohmann_json/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nlohmann_json/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake
 }:
 
 stdenv.mkDerivation rec {
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-THordDPdH2qwk6lFTgeFmkl7iDuA/7YH71PTUe6vJCs=";
   };
 
+  patches = [
+    # https://github.com/nlohmann/json/pull/2690
+    (fetchpatch {
+      url = "https://github.com/nlohmann/json/commit/53a9850eebb88c6ff95f6042d08d5c0cc9d18097.patch";
+      sha256 = "k+Og00nXNg5IsFQY5fWD3xVQQXUFFTie44UXole0S1M=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/notcurses/default.nix b/nixpkgs/pkgs/development/libraries/notcurses/default.nix
index 7b9bffb9bc95..9b5043a1e234 100644
--- a/nixpkgs/pkgs/development/libraries/notcurses/default.nix
+++ b/nixpkgs/pkgs/development/libraries/notcurses/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, cmake, pkg-config, pandoc, libunistring, ncurses, ffmpeg,
+{ stdenv, cmake, pkg-config, pandoc, libunistring, ncurses, ffmpeg, readline,
   fetchFromGitHub, lib,
   multimediaSupport ? true
 }:
 let
-  version = "2.1.0";
+  version = "2.2.3";
 in
 stdenv.mkDerivation {
   pname = "notcurses";
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ cmake pkg-config pandoc ];
 
-  buildInputs = [ libunistring ncurses ]
+  buildInputs = [ libunistring ncurses readline ]
     ++ lib.optional multimediaSupport ffmpeg;
 
   cmakeFlags =
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
     owner  = "dankamongmen";
     repo   = "notcurses";
     rev    = "v${version}";
-    sha256 = "0jvngg40c1sqf85kqy6ya0vflpxsj7j4g6cw609992rifaghxiny";
+    sha256 = "sha256-O6bu/tEotsxHAx6rCi0xRaklmF0l6neYwwscF2w0HJg=";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/nss/default.nix b/nixpkgs/pkgs/development/libraries/nss/default.nix
index 8c98d7ae9bbd..81a51c7beaea 100644
--- a/nixpkgs/pkgs/development/libraries/nss/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nss/default.nix
@@ -1,4 +1,7 @@
-{ lib, stdenv, fetchurl, nspr, perl, zlib, sqlite, darwin, fixDarwinDylibNames, buildPackages, ninja
+{ lib, stdenv, fetchurl, nspr, perl, zlib
+, sqlite, ninja
+, darwin, fixDarwinDylibNames, buildPackages
+, useP11kit ? true, p11-kit
 , # allow FIPS mode. Note that this makes the output non-reproducible.
   # https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Tech_Notes/nss_tech_note6
   enableFIPS ? false
@@ -15,7 +18,7 @@ let
   #       It will rebuild itself using the version of this package (NSS) and if
   #       an update is required do the required changes to the expression.
   #       Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
-  version = "3.60";
+  version = "3.62";
   underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
 
 in stdenv.mkDerivation rec {
@@ -24,7 +27,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/${pname}-${version}.tar.gz";
-    sha256 = "0ggyj3ax3kal65sl1vl4nfhx2s08blg4dg8iwlxcax5qb9bxbaw4";
+    sha256 = "0y2ld90bncjjggrn64c7g7mq9i03z6dc3r2kz978snz2xiydzml6";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -139,6 +142,11 @@ in stdenv.mkDerivation rec {
     chmod 0755 $out/bin/nss-config
   '';
 
+  postInstall = lib.optionalString useP11kit ''
+    # Replace built-in trust with p11-kit connection
+    ln -sf ${p11-kit}/lib/pkcs11/p11-kit-trust.so $out/lib/libnssckbi.so
+  '';
+
   postFixup = let
     isCross = stdenv.hostPlatform != stdenv.buildPlatform;
     nss = if isCross then buildPackages.nss.tools else "$out";
diff --git a/nixpkgs/pkgs/development/libraries/ntl/default.nix b/nixpkgs/pkgs/development/libraries/ntl/default.nix
index 23d82d4ba2fa..6e41639d48e5 100644
--- a/nixpkgs/pkgs/development/libraries/ntl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ntl/default.nix
@@ -14,11 +14,11 @@ assert withGf2x -> gf2x != null;
 
 stdenv.mkDerivation rec {
   pname = "ntl";
-  version = "11.4.3";
+  version = "11.4.4";
 
   src = fetchurl {
     url = "http://www.shoup.net/ntl/ntl-${version}.tar.gz";
-    sha256 = "1lisp3064rch3jaa2wrhy1s9kll7i3ka3d0y6lj6l3l4ckfcrhdp";
+    sha256 = "sha256-nX9uguEaQJ8VHA3i3rCMDXY7r5g0/d/UMr89IY+AIds=";
   };
 
   buildInputs = [
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
       else
         "generic" # "chooses options that should be OK for most platforms"
     }"
-    "CXX=c++"
+    "CXX=${stdenv.cc.targetPrefix}c++"
   ] ++ lib.optionals withGf2x [
     "NTL_GF2X_LIB=on"
     "GF2X_PREFIX=${gf2x}"
diff --git a/nixpkgs/pkgs/development/libraries/nuraft/default.nix b/nixpkgs/pkgs/development/libraries/nuraft/default.nix
index 58e5e4013590..f9ae9d5ffe64 100644
--- a/nixpkgs/pkgs/development/libraries/nuraft/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nuraft/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nuraft";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "eBay";
     repo = "NuRaft";
     rev = "v${version}";
-    sha256 = "sha256-l6rG8f+JAWfAJxEZPKRHZo2k8x9WbtSJC3gGCSMHYfs=";
+    sha256 = "sha256-1k+AWmpAiHcQVEB5kUaMtNWhOnTBnmJiNU8zL1J/PEk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/nuspell/wrapper.nix b/nixpkgs/pkgs/development/libraries/nuspell/wrapper.nix
index 4386542ff20e..ab09931579c7 100644
--- a/nixpkgs/pkgs/development/libraries/nuspell/wrapper.nix
+++ b/nixpkgs/pkgs/development/libraries/nuspell/wrapper.nix
@@ -5,7 +5,7 @@ let
 in
 stdenv.mkDerivation {
   name = (appendToName "with-dicts" nuspell).name;
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   buildCommand = ''
     makeWrapper ${nuspell}/bin/nuspell $out/bin/nuspell --prefix DICPATH : ${searchPath}
   '';
diff --git a/nixpkgs/pkgs/development/libraries/nvidia-video-sdk/default.nix b/nixpkgs/pkgs/development/libraries/nvidia-video-sdk/default.nix
index 3a63bad03dcb..22161e3dc1d6 100644
--- a/nixpkgs/pkgs/development/libraries/nvidia-video-sdk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nvidia-video-sdk/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "08h1vnqsv22js9v3pyim5yb80z87baxb7s2g5gsvvjax07j7w8h5";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   # We only need the header files. The library files are
   # in the nvidia_x11 driver.
diff --git a/nixpkgs/pkgs/development/libraries/oatpp/default.nix b/nixpkgs/pkgs/development/libraries/oatpp/default.nix
index 084f3c4a935b..e9f92a31f2c5 100644
--- a/nixpkgs/pkgs/development/libraries/oatpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/oatpp/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "oatpp";
-  version = "1.2.0";
+  version = "1.2.5";
 
   src = fetchFromGitHub {
     owner = "oatpp";
     repo = "oatpp";
     rev = version;
-    sha256 = "05rm0m5zf1b5ky8prf6yni2074bz6yjjbrc2qk96fb48fc1198gw";
+    sha256 = "sha256-Vtdz03scx0hvY1yeM7yfSxCVKzi84OQ1Oh9b922movE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/odpic/default.nix b/nixpkgs/pkgs/development/libraries/odpic/default.nix
index b79de9278d46..251a3f9f55b8 100644
--- a/nixpkgs/pkgs/development/libraries/odpic/default.nix
+++ b/nixpkgs/pkgs/development/libraries/odpic/default.nix
@@ -22,7 +22,7 @@ in stdenv.mkDerivation {
     ++ lib.optionals stdenv.isLinux [ libaio ];
 
   dontPatchELF = true;
-  makeFlags = [ "PREFIX=$(out)" "CC=cc" "LD=cc"];
+  makeFlags = [ "PREFIX=$(out)" "CC=${stdenv.cc.targetPrefix}cc" "LD=${stdenv.cc.targetPrefix}cc"];
 
   postFixup = ''
     ${lib.optionalString (stdenv.isLinux) ''
diff --git a/nixpkgs/pkgs/development/libraries/olm/default.nix b/nixpkgs/pkgs/development/libraries/olm/default.nix
index 4fbc34bcce63..ca3a081aee00 100644
--- a/nixpkgs/pkgs/development/libraries/olm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/olm/default.nix
@@ -1,22 +1,25 @@
-{ lib, stdenv, fetchurl, cmake }:
+{ lib, stdenv, fetchFromGitLab, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "olm";
-  version = "3.2.1";
+  version = "3.2.2";
 
-  src = fetchurl {
-    url = "https://matrix.org/git/olm/-/archive/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0iacbi9iibhzifh1bk6bi5xin557lvqmbf4ccsb8drj50dbxjiyr";
+  src = fetchFromGitLab {
+    domain = "gitlab.matrix.org";
+    owner = "matrix-org";
+    repo = pname;
+    rev = version;
+    sha256 = "0qji25wiwmkxyfpraxj96c54hyayqmjkvwh0gsy5gb5pz5bp4mcy";
   };
 
   nativeBuildInputs = [ cmake ];
 
   doCheck = true;
 
-  meta = {
+  meta = with lib; {
     description = "Implements double cryptographic ratchet and Megolm ratchet";
-    license = lib.licenses.asl20;
     homepage = "https://gitlab.matrix.org/matrix-org/olm";
-    platforms = with lib.platforms; darwin ++ linux;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tilpner oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/oneDNN/default.nix b/nixpkgs/pkgs/development/libraries/oneDNN/default.nix
index 2b399e9ebc29..93da285e824b 100644
--- a/nixpkgs/pkgs/development/libraries/oneDNN/default.nix
+++ b/nixpkgs/pkgs/development/libraries/oneDNN/default.nix
@@ -5,13 +5,13 @@
 # https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn
 stdenv.mkDerivation rec {
   pname = "oneDNN";
-  version = "2.0";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "oneapi-src";
     repo = "oneDNN";
     rev = "v${version}";
-    sha256 = "0r50r9bz7mdhy9z9zdy5m2nhi8r6kqsn70q2rfwylm1vppmhwkfq";
+    sha256 = "sha256-xByu0HWeyDg5WV/zVO4HO/uwZ2RPrud0FlZHPfFom1E=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/nixpkgs/pkgs/development/libraries/opencl-clhpp/default.nix b/nixpkgs/pkgs/development/libraries/opencl-clhpp/default.nix
index ec40bc393d51..b6aa71491680 100644
--- a/nixpkgs/pkgs/development/libraries/opencl-clhpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencl-clhpp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python, opencl-headers }:
+{ lib, stdenv, fetchFromGitHub, cmake, python3, opencl-headers }:
 
 stdenv.mkDerivation rec {
   pname = "opencl-clhpp";
@@ -11,10 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "04g3mg2cpbi048fxxkghra81bpxzqr4r3gspx5mvqipx1lzypsci";
   };
 
-  nativeBuildInputs = [ cmake python ];
+  nativeBuildInputs = [ cmake python3 ];
 
   propagatedBuildInputs = [ opencl-headers ];
 
+  strictDeps = true;
+
   cmakeFlags = [
     "-DBUILD_EXAMPLES=OFF"
     "-DBUILD_TESTS=OFF"
diff --git a/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix b/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix
index 1ef27bf58316..d7a8b4497f7f 100644
--- a/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Khronos OpenCL headers version ${version}";
     homepage = "https://www.khronos.org/registry/cl/";
-    license = licenses.mit;
+    license = licenses.asl20;
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/opencsg/default.nix b/nixpkgs/pkgs/development/libraries/opencsg/default.nix
index 53adbdf414f7..7625db9a5953 100644
--- a/nixpkgs/pkgs/development/libraries/opencsg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencsg/default.nix
@@ -33,6 +33,8 @@ stdenv.mkDerivation rec {
     rmdir $out/bin || true
   '';
 
+  dontWrapQtApps = true;
+
   postFixup = lib.optionalString stdenv.isDarwin ''
     app=$out/Applications/opencsgexample.app/Contents/MacOS/opencsgexample
     install_name_tool -change \
diff --git a/nixpkgs/pkgs/development/libraries/opencv/3.x.nix b/nixpkgs/pkgs/development/libraries/opencv/3.x.nix
index 11872cd47cc3..a65e978f9816 100644
--- a/nixpkgs/pkgs/development/libraries/opencv/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/opencv/3.x.nix
@@ -18,7 +18,7 @@
 
 , enableUnfree    ? false
 , enableIpp       ? false
-, enablePython    ? false, pythonPackages
+, enablePython    ? false, pythonPackages ? null
 , enableGtk2      ? false, gtk2
 , enableGtk3      ? false, gtk3
 , enableVtk       ? false, vtk
@@ -36,6 +36,8 @@
 
 assert blas.implementation == "openblas" && lapack.implementation == "openblas";
 
+assert enablePython -> pythonPackages != null;
+
 let
   version = "3.4.8";
 
diff --git a/nixpkgs/pkgs/development/libraries/openexrid-unstable/default.nix b/nixpkgs/pkgs/development/libraries/openexrid-unstable/default.nix
index ce35aa1c655e..1e3ee9896447 100644
--- a/nixpkgs/pkgs/development/libraries/openexrid-unstable/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openexrid-unstable/default.nix
@@ -25,7 +25,8 @@ stdenv.mkDerivation {
                        -I${openfx.dev}/include/OpenFX
                       '';
 
-  buildInputs = [ unzip re2 openfx zlib ilmbase libGLU libGL openexr ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ re2 openfx zlib ilmbase libGLU libGL openexr ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/openfx/default.nix b/nixpkgs/pkgs/development/libraries/openfx/default.nix
index 0d8afe53df8b..a26e97798aef 100644
--- a/nixpkgs/pkgs/development/libraries/openfx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openfx/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "0k9ggzr6bisn77mipjfvawg3mv4bz50b63v8f7w1jhldi1sfy548";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   outputs = [ "dev" "out" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/openldap/default.nix b/nixpkgs/pkgs/development/libraries/openldap/default.nix
index a71b2a61910e..39831a3baf08 100644
--- a/nixpkgs/pkgs/development/libraries/openldap/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openldap/default.nix
@@ -1,12 +1,15 @@
-{ lib, stdenv, fetchurl, openssl, cyrus_sasl, db, groff, libtool }:
+{ lib, stdenv, fetchurl, openssl, db, groff, libtool
+, withCyrusSasl ? true
+, cyrus_sasl
+}:
 
 stdenv.mkDerivation rec {
   pname = "openldap";
-  version = "2.4.57";
+  version = "2.4.58";
 
   src = fetchurl {
     url = "https://www.openldap.org/software/download/OpenLDAP/openldap-release/${pname}-${version}.tgz";
-    sha256 = "sha256-x7pH4ebstbQ289Qygd9Xq+/6mSYhQa7IImKLwiD2tFo=";
+    sha256 = "sha256-V7WSVL4V0L9qmrPVFMHAV3ewISMpFTMTSofJRGj49Hs=";
   };
 
   # TODO: separate "out" and "bin"
@@ -37,8 +40,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "--with-yielding_select=yes"
     "ac_cv_func_memcmp_working=yes"
-  ] ++ lib.optional (openssl == null) "--without-tls"
-    ++ lib.optional (cyrus_sasl == null) "--without-cyrus-sasl"
+  ] ++ lib.optional (!withCyrusSasl) "--without-cyrus-sasl"
     ++ lib.optional stdenv.isFreeBSD "--with-pic";
 
   postBuild = ''
@@ -54,19 +56,21 @@ stdenv.mkDerivation rec {
     "moduledir=$(out)/lib/modules"
   ];
 
-  # 1. Fixup broken libtool
-  # 2. Libraries left in the build location confuse `patchelf --shrink-rpath`
+  # 1. Libraries left in the build location confuse `patchelf --shrink-rpath`
   #    Delete these to let patchelf discover the right path instead.
   #    FIXME: that one can be removed when https://github.com/NixOS/patchelf/pull/98
   #    is in Nixpkgs patchelf.
+  # 2. Fixup broken libtool for openssl and cyrus_sasl (if it is not disabled)
   preFixup = ''
-    sed -e 's,-lsasl2,-L${cyrus_sasl.out}/lib -lsasl2,' \
-        -e 's,-lssl,-L${openssl.out}/lib -lssl,' \
-        -i $out/lib/libldap.la -i $out/lib/libldap_r.la
-
-    rm -rf $out/var
+    rm -r $out/var
     rm -r libraries/*/.libs
     rm -r contrib/slapd-modules/passwd/*/.libs
+    for f in $out/lib/libldap.la $out/lib/libldap_r.la; do
+      substituteInPlace "$f" --replace '-lssl' '-L${openssl.out}/lib -lssl'
+  '' + lib.optionalString withCyrusSasl ''
+      substituteInPlace "$f" --replace '-lsasl2' '-L${cyrus_sasl.out}/lib -lsasl2'
+  '' + ''
+    done
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/libraries/openmpi/default.nix b/nixpkgs/pkgs/development/libraries/openmpi/default.nix
index 802685970ace..46b2748cad98 100644
--- a/nixpkgs/pkgs/development/libraries/openmpi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openmpi/default.nix
@@ -18,7 +18,7 @@
 assert !cudaSupport || cudatoolkit != null;
 
 let
-  version = "4.0.5";
+  version = "4.1.0";
 
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-unsplit";
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
 
   src = with lib.versions; fetchurl {
     url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "02f0r9d3xgs08svkmj8v7lzviyxqnkk4yd3z0wql550xnriki3y5";
+    sha256 = "sha256-c4Zvt3CQgZtqjIXLhTljjTfWh3RVglt04onWR6Of1bU=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/openpa/default.nix b/nixpkgs/pkgs/development/libraries/openpa/default.nix
index bc8efdc857eb..23f025e2aa63 100644
--- a/nixpkgs/pkgs/development/libraries/openpa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openpa/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     homepage = "https://trac.mpich.org/projects/openpa";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ leenaars ];
-    platforms = with lib.platforms; linux;
+    platforms = lib.platforms.unix;
     longDescription = ''
       OPA (or sometimes OpenPA or Open Portable Atomics) is an
       open source library intended to provide a consistent C API for performing
diff --git a/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix b/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
index 8eeff3de9435..da7e9c755a03 100644
--- a/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openscenegraph";
-  version = "3.6.4";
+  version = "3.6.5";
 
   src = fetchFromGitHub {
     owner = "openscenegraph";
     repo = "OpenSceneGraph";
     rev = "OpenSceneGraph-${version}";
-    sha256 = "0x8hdbzw0b71j91fzp9cwmy9a7ava8v8wwyj8nxijq942vdx1785";
+    sha256 = "00i14h82qg3xzcyd8p02wrarnmby3aiwmz0z43l50byc9f8i05n1";
   };
 
   nativeBuildInputs = [ pkg-config cmake doxygen ];
diff --git a/nixpkgs/pkgs/development/libraries/openssl/default.nix b/nixpkgs/pkgs/development/libraries/openssl/default.nix
index 49ac7954169f..fda0c71655a6 100644
--- a/nixpkgs/pkgs/development/libraries/openssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openssl/default.nix
@@ -3,8 +3,17 @@
 , enableSSL2 ? false
 , enableSSL3 ? false
 , static ? stdenv.hostPlatform.isStatic
+# Used to avoid cross compiling perl, for example, in darwin bootstrap tools.
+# This will cause c_rehash to refer to perl via the environment, but otherwise
+# will produce a perfectly functional openssl binary and library.
+, withPerl ? true
 }:
 
+assert (
+  lib.assertMsg (!withPerl -> stdenv.hostPlatform != stdenv.buildPlatform)
+  "withPerl should not be disabled unless cross compiling"
+);
+
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
 # cgit) that are needed here should be included directly in Nixpkgs as
@@ -46,7 +55,10 @@ let
     separateDebugInfo = !(stdenv.hostPlatform.useLLVM or false) && stdenv.cc.isGNU;
 
     nativeBuildInputs = [ perl ];
-    buildInputs = lib.optional withCryptodev cryptodev;
+    buildInputs = lib.optional withCryptodev cryptodev
+      # perl is included to allow the interpreter path fixup hook to set the
+      # correct interpreter in c_rehash.
+      ++ lib.optional withPerl perl;
 
     # TODO(@Ericson2314): Improve with mass rebuild
     configurePlatforms = [];
@@ -108,12 +120,20 @@ let
           rm "$out/lib/"*.a
       fi
 
-    '' +
-    ''
       mkdir -p $bin
     '' + lib.optionalString (!stdenv.hostPlatform.isWindows)
+      # Fix bin/c_rehash's perl interpreter line
+      #
+      # - openssl 1_0_2: embeds a reference to buildPackages.perl
+      # - openssl 1_1:   emits "#!/usr/bin/env perl"
+      #
+      # In the case of openssl_1_0_2, reset the invalid reference and let the
+      # interpreter hook take care of it.
+      #
+      # In both cases, if withPerl = false, the intepreter line is expected be
+      # "#!/usr/bin/env perl"
     ''
-      substituteInPlace $out/bin/c_rehash --replace ${buildPackages.perl} ${perl}
+      substituteInPlace $out/bin/c_rehash --replace ${buildPackages.perl}/bin/perl "/usr/bin/env perl"
     '' +
     ''
       mv $out/bin $bin/
diff --git a/nixpkgs/pkgs/development/libraries/opensubdiv/default.nix b/nixpkgs/pkgs/development/libraries/opensubdiv/default.nix
index 9228424797e2..83eb77b603c5 100644
--- a/nixpkgs/pkgs/development/libraries/opensubdiv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opensubdiv/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opensubdiv";
-  version = "3.4.3";
+  version = "3.4.4";
 
   src = fetchFromGitHub {
     owner = "PixarAnimationStudios";
     repo = "OpenSubdiv";
     rev = "v${lib.replaceChars ["."] ["_"] version}";
-    sha256 = "0zpnpg2zzyavv9r3jakv3j2gn603b62rbczrflc6qmg6qvpgz0kr";
+    sha256 = "sha256-ejxQ5mGIIrEa/rAfkTrRbIRerrAvEPoWn7e0lIqS1JQ=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/openvdb/default.nix b/nixpkgs/pkgs/development/libraries/openvdb/default.nix
index 5f3a03a3f5bf..b5317ce9aae8 100644
--- a/nixpkgs/pkgs/development/libraries/openvdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openvdb/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec
 
   outputs = [ "out" ];
 
-  buildInputs = [ unzip openexr boost tbb jemalloc c-blosc ilmbase ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ openexr boost tbb jemalloc c-blosc ilmbase ];
 
   setSourceRoot = ''
     sourceRoot=$(echo */openvdb)
diff --git a/nixpkgs/pkgs/development/libraries/orcania/default.nix b/nixpkgs/pkgs/development/libraries/orcania/default.nix
index 5c9c2c8da7f2..157769c7772f 100644
--- a/nixpkgs/pkgs/development/libraries/orcania/default.nix
+++ b/nixpkgs/pkgs/development/libraries/orcania/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, cmake, check, subunit }:
 stdenv.mkDerivation rec {
   pname = "orcania";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "babelouest";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0l035zbzyv623h5186rk6iq1097rxx64iwnk4s2c7l9gzv9wyapp";
+    sha256 = "sha256-tArXiXmoWHd42IGBZKtc4QJIBy3USPlSeW+Dv5xl1EU=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/ortp/default.nix b/nixpkgs/pkgs/development/libraries/ortp/default.nix
index 196cac4bcafc..af924ad80d26 100644
--- a/nixpkgs/pkgs/development/libraries/ortp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ortp/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "ortp";
-  version = "4.4.9";
+  version = "4.5.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0igiw863gnf9f626v0igg1pj3fv4anvlvlk6xx3bk2zdi52a9kcc";
+    sha256 = "1lc1j7wvkyp5lhcflq3h5y7n8aiwgwj84ffm81ggbsmavamgwkk7";
   };
 
   # Do not build static libraries
diff --git a/nixpkgs/pkgs/development/libraries/osip/default.nix b/nixpkgs/pkgs/development/libraries/osip/default.nix
index 322ed30a8476..b7cfc5da9d3b 100644
--- a/nixpkgs/pkgs/development/libraries/osip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/osip/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.gnu.org/software/osip/";
     description = "The GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)";
     maintainers = with lib.maintainers; [ raskin ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
     inherit version;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/osm-gps-map/default.nix b/nixpkgs/pkgs/development/libraries/osm-gps-map/default.nix
index 17a3af68a808..9ba581e3a401 100644
--- a/nixpkgs/pkgs/development/libraries/osm-gps-map/default.nix
+++ b/nixpkgs/pkgs/development/libraries/osm-gps-map/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "osm-gps-map";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchzip {
     url = "https://github.com/nzjrs/osm-gps-map/releases/download/${version}/osm-gps-map-${version}.tar.gz";
-    sha256 = "0fal3mqcf3yypir4f7njz0dm5wr7lqwpimjx28wz9imh48cqx9n9";
+    sha256 = "sha256-ciw28YXhR+GC6B2VPC+ZxjyhadOk3zYGuOssSgqjwH0=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/nixpkgs/pkgs/development/libraries/pango/default.nix b/nixpkgs/pkgs/development/libraries/pango/default.nix
index 68511003215c..0369cedebf4c 100644
--- a/nixpkgs/pkgs/development/libraries/pango/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pango/default.nix
@@ -1,57 +1,91 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, cairo, harfbuzz
-, libintl, libthai, gobject-introspection, darwin, fribidi, gnome3
-, gtk-doc, docbook_xsl, docbook_xml_dtd_43, makeFontsConf, freefont_ttf
-, meson, ninja, glib
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, pkg-config
+, cairo
+, harfbuzz
+, libintl
+, libthai
+, gobject-introspection
+, darwin
+, fribidi
+, gnome3
+, gi-docgen
+, makeFontsConf
+, freefont_ttf
+, meson
+, ninja
+, glib
 , x11Support? !stdenv.isDarwin, libXft
 }:
 
-with lib;
-
-let
+stdenv.mkDerivation rec {
   pname = "pango";
-  version = "1.47.0";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "1.48.3";
+
+  outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0ry3j9n0lvdfmjwi2w7wa4gkalnip56kghqq6bh8hcf45xjvh3bk";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0ijbkcs6217ygzphlpi0vajxkccifdbsl0jdjpy8wz11h9f19sin";
   };
 
-  # FIXME: docs fail on darwin
-  outputs = [ "bin" "dev" "out" ] ++ optional (!stdenv.isDarwin) "devdoc";
+  patches = [
+    # Install developer documentation.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pango/commit/a2f35860115e8cd44f07d5158e2df059e8163a08.patch";
+      sha256 = "hN7O4DBk4A+TmBl6DGx6RHni5qRBg6akdjv9o3iWKDQ=";
+    })
+  ];
 
   nativeBuildInputs = [
     meson ninja
     glib # for glib-mkenum
-    pkg-config gobject-introspection gtk-doc docbook_xsl docbook_xml_dtd_43
+    pkg-config
+    gobject-introspection
+    gi-docgen
   ];
+
   buildInputs = [
     fribidi
     libthai
-  ] ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
     ApplicationServices
     Carbon
     CoreGraphics
     CoreText
   ]);
-  propagatedBuildInputs = [ cairo glib libintl harfbuzz ] ++
-    optional x11Support libXft;
 
-  mesonFlags = [
-    "-Dgtk_doc=${if stdenv.isDarwin then "false" else "true"}"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "-Dxft=disabled"  # only works with x11
+  propagatedBuildInputs = [
+    cairo
+    glib
+    libintl
+    harfbuzz
+  ] ++ lib.optionals x11Support [
+    libXft
   ];
 
-  enableParallelBuilding = true;
+  mesonFlags = [
+    "-Dgtk_doc=true"
+  ] ++ lib.optionals (!x11Support) [
+    "-Dxft=disabled" # only works with x11
+  ];
 
   # Fontconfig error: Cannot load default config file
   FONTCONFIG_FILE = makeFontsConf {
     fontDirectories = [ freefont_ttf ];
   };
 
-  doCheck = false; # /layout/valid-1.markup: FAIL
+  doCheck = false; # test-font: FAIL
+
+  postInstall = ''
+    # So that devhelp can find this.
+    # https://gitlab.gnome.org/GNOME/pango/merge_requests/293/diffs#note_1058448
+    mkdir -p "$devdoc/share/devhelp"
+    mv "$out/share/doc/pango/reference" "$devdoc/share/devhelp/books"
+    rmdir -p --ignore-fail-on-non-empty "$out/share/doc/pango"
+  '';
 
   passthru = {
     updateScript = gnome3.updateScript {
@@ -73,7 +107,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://www.pango.org/";
     license = licenses.lgpl2Plus;
 
-    maintainers = with maintainers; [ raskin ];
+    maintainers = with maintainers; [ raskin ] ++ teams.gnome.members;
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/pangomm/default.nix b/nixpkgs/pkgs/development/libraries/pangomm/default.nix
index 0ff0d9a7d4e9..3eb5f39c3825 100644
--- a/nixpkgs/pkgs/development/libraries/pangomm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pangomm/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchurl, pkg-config, pango, glibmm, cairomm, gnome3
+{ lib, stdenv, fetchurl, pkg-config, meson, ninja, python3, pango, glibmm, cairomm, gnome3
 , ApplicationServices }:
 
 stdenv.mkDerivation rec {
   pname = "pangomm";
-  version= "2.42.1";
+  version= "2.42.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "03zli5amizhv9bfklwfq7xyf0b5dagchx1lnz9f0v1rhk69h9gql";
+    sha256 = "sha256-GyTJJiSuEnXMtXdYF10198Oa0zQtjAtLpg8NmEnS0Io=";
   };
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkg-config ] ++ lib.optional stdenv.isDarwin [
+  nativeBuildInputs = [ pkg-config meson ninja python3 ] ++ lib.optional stdenv.isDarwin [
     ApplicationServices
   ];
   propagatedBuildInputs = [ pango glibmm cairomm ];
diff --git a/nixpkgs/pkgs/development/libraries/partio/default.nix b/nixpkgs/pkgs/development/libraries/partio/default.nix
index 0247d12715f6..d4af69532b39 100644
--- a/nixpkgs/pkgs/development/libraries/partio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/partio/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, unzip, cmake, freeglut, libGLU, libGL, zlib, swig, python, doxygen, xorg }:
+{ lib, stdenv, fetchFromGitHub, unzip, cmake, freeglut, libGLU, libGL, zlib, swig, doxygen, xorg }:
 
 stdenv.mkDerivation {
   pname = "partio";
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   outputs = [ "dev" "out" "lib" ];
 
   nativeBuildInputs = [ unzip cmake doxygen ];
-  buildInputs = [ freeglut libGLU libGL zlib swig python xorg.libXi xorg.libXmu ];
+  buildInputs = [ freeglut libGLU libGL zlib swig xorg.libXi xorg.libXmu ];
 
   buildPhase = ''
     make partio
@@ -32,6 +32,8 @@ stdenv.mkDerivation {
     mv $dev/include/*.h $dev/include/partio
   '';
 
+  strictDeps = true;
+
   meta = with lib; {
     description = "C++ (with python bindings) library for easily reading/writing/manipulating common animation particle formats such as PDB, BGEO, PTC";
     homepage = "https://www.disneyanimation.com/technology/partio.html";
diff --git a/nixpkgs/pkgs/development/libraries/pcl/default.nix b/nixpkgs/pkgs/development/libraries/pcl/default.nix
index 436e0f85e162..b8cdff1f48c8 100644
--- a/nixpkgs/pkgs/development/libraries/pcl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pcl/default.nix
@@ -1,22 +1,49 @@
-{ lib, stdenv, fetchFromGitHub, cmake
-, qhull, flann, boost, vtk, eigen, pkg-config, qtbase
-, libusb1, libpcap, libXt, libpng, Cocoa, AGL, OpenGL
+{ lib
+, stdenv
+, fetchFromGitHub
+, wrapQtAppsHook
+, cmake
+, qhull
+, flann
+, boost
+, vtk
+, eigen
+, pkg-config
+, qtbase
+, libusb1
+, libpcap
+, libXt
+, libpng
+, Cocoa
+, AGL
+, OpenGL
 }:
 
 stdenv.mkDerivation rec {
-  name = "pcl-1.11.1";
+  pname = "pcl";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "PointCloudLibrary";
     repo = "pcl";
-    rev = name;
+    rev = "${pname}-${version}";
     sha256 = "1cli2rxqsk6nxp36p5mgvvahjz8hm4fb68yi8cf9nw4ygbcvcwb1";
   };
 
-  nativeBuildInputs = [ pkg-config cmake ];
-  buildInputs = [ qhull flann boost eigen libusb1 libpcap
-                  libpng vtk qtbase libXt ]
-    ++ lib.optionals stdenv.isDarwin [ Cocoa AGL ];
+  nativeBuildInputs = [ pkg-config cmake wrapQtAppsHook ];
+  buildInputs = [
+    qhull
+    flann
+    boost
+    eigen
+    libusb1
+    libpcap
+    libpng
+    vtk
+    qtbase
+    libXt
+  ]
+  ++ lib.optionals stdenv.isDarwin [ Cocoa AGL ];
 
   cmakeFlags = lib.optionals stdenv.isDarwin [
     "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks"
@@ -24,10 +51,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://pointclouds.org/";
-    broken = lib.versionAtLeast qtbase.version "5.15";
     description = "Open project for 2D/3D image and point cloud processing";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [viric];
+    maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/phonon/backends/gstreamer.nix b/nixpkgs/pkgs/development/libraries/phonon/backends/gstreamer.nix
index 249ce4e3629a..3e21415b4c77 100644
--- a/nixpkgs/pkgs/development/libraries/phonon/backends/gstreamer.nix
+++ b/nixpkgs/pkgs/development/libraries/phonon/backends/gstreamer.nix
@@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
   # on system paths being set.
   patches = [ ./gst-plugin-paths.patch ];
 
+  dontWrapQtApps = true;
+
   NIX_CFLAGS_COMPILE =
     let gstPluginPaths =
           lib.makeSearchPathOutput "lib" "/lib/gstreamer-1.0"
diff --git a/nixpkgs/pkgs/development/libraries/phonon/backends/vlc.nix b/nixpkgs/pkgs/development/libraries/phonon/backends/vlc.nix
index 07e6ccf1f346..b874c2e1d01d 100644
--- a/nixpkgs/pkgs/development/libraries/phonon/backends/vlc.nix
+++ b/nixpkgs/pkgs/development/libraries/phonon/backends/vlc.nix
@@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
     extra-cmake-modules
   ];
 
+  dontWrapQtApps = true;
+
   cmakeFlags = [
     "-DCMAKE_BUILD_TYPE=${if debug then "Debug" else "Release"}"
   ];
diff --git a/nixpkgs/pkgs/development/libraries/phonon/default.nix b/nixpkgs/pkgs/development/libraries/phonon/default.nix
index 88a6af658dd4..877bf973194a 100644
--- a/nixpkgs/pkgs/development/libraries/phonon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/phonon/default.nix
@@ -58,6 +58,8 @@ stdenv.mkDerivation rec {
     "-DCMAKE_BUILD_TYPE=${if debug then "Debug" else "Release"}"
   ];
 
+  dontWrapQtApps = true;
+
   preConfigure = ''
     cmakeFlags+=" -DPHONON_QT_MKSPECS_INSTALL_DIR=''${!outputDev}/mkspecs"
     cmakeFlags+=" -DPHONON_QT_IMPORTS_INSTALL_DIR=''${!outputBin}/$qtQmlPrefix"
diff --git a/nixpkgs/pkgs/development/libraries/physics/fastnlo/default.nix b/nixpkgs/pkgs/development/libraries/physics/fastnlo/default.nix
index 916303f00cec..87e2ae9631c5 100644
--- a/nixpkgs/pkgs/development/libraries/physics/fastnlo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/fastnlo/default.nix
@@ -1,4 +1,15 @@
-{ lib, stdenv, fetchurl, boost, fastjet, gfortran, lhapdf, python2, root, yoda, zlib }:
+{ lib
+, stdenv
+, fetchurl
+, boost
+, fastjet
+, gfortran
+, lhapdf
+, python2
+, root
+, yoda
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "fastnlo_toolkit";
@@ -9,8 +20,19 @@ stdenv.mkDerivation rec {
     sha256 = "1h41xnqcz401x3zbs8i2dsb4xlhbv8i5ps0561p6y7gcyridgcbl";
   };
 
-  buildInputs = [ boost fastjet gfortran gfortran.cc.lib lhapdf python2 root yoda ];
-  propagatedBuildInputs = [ zlib ];
+  buildInputs = [
+    boost
+    fastjet
+    gfortran
+    gfortran.cc.lib
+    lhapdf
+    python2
+    root
+    yoda
+  ];
+  propagatedBuildInputs = [
+    zlib
+  ];
 
   preConfigure = ''
     substituteInPlace ./fastnlotoolkit/Makefile.in \
@@ -23,11 +45,22 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
-    description = "A computer code to create and evaluate fast interpolation tables of pre-computed coefficients in perturbation theory for observables in hadron-induced processes";
-    license      = lib.licenses.gpl3;
-    homepage     = "http://fastnlo.hepforge.org";
-    platforms    = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ veprbl ];
+  meta = with lib; {
+    homepage = "http://fastnlo.hepforge.org";
+    description = "Fast pQCD calculations for hadron-induced processes";
+    longDescription = ''
+      The fastNLO project provides computer code to create and evaluate fast
+      interpolation tables of pre-computed coefficients in perturbation theory
+      for observables in hadron-induced processes.
+
+      This allows fast theory predictions of these observables for arbitrary
+      parton distribution functions (of regular shape), renormalization or
+      factorization scale choices, and/or values of alpha_s(Mz) as e.g. needed
+      in PDF fits or in systematic studies. Very time consuming complete
+      recalculations are thus avoided.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ veprbl ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/physics/geant4/datasets.nix b/nixpkgs/pkgs/development/libraries/physics/geant4/datasets.nix
index 5646f4e02bac..4c6906c9c2e3 100644
--- a/nixpkgs/pkgs/development/libraries/physics/geant4/datasets.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/geant4/datasets.nix
@@ -70,8 +70,8 @@ in
 
     {
       name = "G4PARTICLEXS";
-      version = "3.1";
-      sha256 = "1kg9y0kqn4lma7b0yjpgj7s9n317yqi54ydvq365qphnmm7ahka0";
+      version = "3.1.1";
+      sha256 = "1nmgy8w1s196php7inrkbsi0f690qa2dsyj9s1sp75mndkfpxhb6";
       envvar = "PARTICLEXS";
     }
 
diff --git a/nixpkgs/pkgs/development/libraries/physics/geant4/default.nix b/nixpkgs/pkgs/development/libraries/physics/geant4/default.nix
index 159c746fecd8..8d2f2f1ef55d 100644
--- a/nixpkgs/pkgs/development/libraries/physics/geant4/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/geant4/default.nix
@@ -21,6 +21,7 @@
 
 # For enableQT.
 , qtbase
+, wrapQtAppsHook
 
 # For enableXM.
 , motif
@@ -48,12 +49,12 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "10.7.0";
+  version = "10.7.1";
   pname = "geant4";
 
   src = fetchurl{
-    url = "https://geant4-data.web.cern.ch/geant4-data/releases/geant4.10.07.tar.gz";
-    sha256 = "0jmdxb8z20d4l6sf2w0gk9ska48kylm38yngy3mzyvyj619a8vkp";
+    url = "https://geant4-data.web.cern.ch/geant4-data/releases/geant4.10.07.p01.tar.gz";
+    sha256 = "07if874aljizkjyp21qj6v193pmyifyfmwi5kg8jm71x79sn2laj";
   };
 
   boost_python_lib = "python${builtins.replaceStrings ["."] [""] python3.pythonVersion}";
@@ -87,7 +88,13 @@ stdenv.mkDerivation rec {
     "-DINVENTOR_LIBRARY_RELEASE=${coin3d}/lib/libCoin.so"
   ];
 
-  nativeBuildInputs =  [ cmake ];
+  nativeBuildInputs =  [
+    cmake
+  ] ++ lib.optionals enableQT [
+    wrapQtAppsHook
+  ];
+
+  dontWrapQtApps = !enableQT;
 
   buildInputs = [ libGLU xlibsWrapper libXmu ]
     ++ lib.optionals enableInventor [ libXpm coin3d soxt motif ]
@@ -101,6 +108,8 @@ stdenv.mkDerivation rec {
   postFixup = ''
     # Don't try to export invalid environment variables.
     sed -i 's/export G4\([A-Z]*\)DATA/#export G4\1DATA/' "$out"/bin/geant4.sh
+  '' + lib.optionalString enableQT ''
+    wrapQtAppsHook
   '';
 
   setupHook = ./geant4-hook.sh;
diff --git a/nixpkgs/pkgs/development/libraries/physics/herwig/default.nix b/nixpkgs/pkgs/development/libraries/physics/herwig/default.nix
index d3f6bcb74747..0a7e9b4d948e 100644
--- a/nixpkgs/pkgs/development/libraries/physics/herwig/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/herwig/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "herwig";
-  version = "7.2.1";
+  version = "7.2.2";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/herwig/Herwig-${version}.tar.bz2";
-    sha256 = "11m6xvardnk0i8x8b3dpwg4c4ncq0xmlfg2n5r5qmh6544pz7zyl";
+    sha256 = "10y3fb33zsinr0z3hzap9rsbcqhy1yjqnv4b4vz21g7mdlw6pq2k";
   };
 
   nativeBuildInputs = [ autoconf automake libtool ];
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A multi-purpose particle physics event generator";
     homepage = "https://herwig.hepforge.org/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ veprbl ];
     platforms = platforms.unix;
     broken = stdenv.isAarch64; # doesn't compile: ignoring return value of 'FILE* freopen...
diff --git a/nixpkgs/pkgs/development/libraries/physics/lhapdf/maintainer.sh b/nixpkgs/pkgs/development/libraries/physics/lhapdf/maintainer.sh
index 94bf252ec10a..92c225f90ccd 100755
--- a/nixpkgs/pkgs/development/libraries/physics/lhapdf/maintainer.sh
+++ b/nixpkgs/pkgs/development/libraries/physics/lhapdf/maintainer.sh
@@ -1,10 +1,12 @@
 #!/bin/bash
 
-set -e
+set -xe
 
-BASE_URL="https://lhapdf.hepforge.org/downloads?f=pdfsets/6.2/"
+: ${SED:="$(nix-build '<nixpkgs>' -A gnused --no-out-link)/bin/sed"}
 
-for pdf_set in `curl $BASE_URL 2>/dev/null | gsed -e "s/.*<a href=\"[^\"]*\/\([^\"/]*.tar.gz\)\".*/\1/;tx;d;:x" | gsed -e "s/%2B/+/g" | sort -u`; do
+BASE_URL="https://lhapdfsets.web.cern.ch/lhapdfsets/current/"
+
+for pdf_set in `curl -L $BASE_URL 2>/dev/null | "$SED" -e "s/.*<a href=\"\([^\"/]*.tar.gz\)\".*/\1/;tx;d;:x" | sort -u`; do
 	echo -n "    \"${pdf_set%.tar.gz}\" = \""
 	nix-prefetch-url "${BASE_URL}${pdf_set}" 2>/dev/null | tr -d '\n'
 	echo "\";"
diff --git a/nixpkgs/pkgs/development/libraries/physics/lhapdf/pdf_sets.nix b/nixpkgs/pkgs/development/libraries/physics/lhapdf/pdf_sets.nix
index 7fb3e640c7d6..694164f5af2e 100644
--- a/nixpkgs/pkgs/development/libraries/physics/lhapdf/pdf_sets.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/lhapdf/pdf_sets.nix
@@ -6,7 +6,7 @@ let
       inherit name;
 
       src = fetchurl {
-        url = "http://lhapdfsets.web.cern.ch/lhapdfsets/current/${name}.tar.gz";
+        url = "https://lhapdfsets.web.cern.ch/lhapdfsets/current/${name}.tar.gz";
         inherit sha256;
       };
 
@@ -189,6 +189,134 @@ in
     "CT14qed_inc_proton" = "0gv0rlr6l62gidqp02ifn75d1ribvbihgpaqc92fww73zwilr7l0";
     "CT14qed_neutron" = "0ck1vmqk17i7rq42hra79cz2rm8ngxv4da6dvz62l6m2nrga3l2k";
     "CT14qed_proton" = "1gijxkq5gpsljijblzd13kgr7xjjvnjv18v02jivylf73igsakd7";
+    "CT18ANLO" = "16lbhgkbiym3njiffxdcm3hf7kkm33hyj2w1hwgb3mvxx2sja31c";
+    "CT18ANLO_as_0110" = "08hwxc99l645a9craimgawwynxcs5cmapgxgk0fy9ihvjvqs6jg2";
+    "CT18ANLO_as_0111" = "02ff3s127svdjzawbhzry04rcsw5waggmf3iwpqndzxhqpm0py8a";
+    "CT18ANLO_as_0112" = "063g7sqii0gf2rdjg9k9x95kzwg62w8lfq9cgyv3bnkpapnbqhia";
+    "CT18ANLO_as_0113" = "01zh34dg4cc8955ipg2i0k6s13h77jg8yaa4v2f4aw0020js9dn2";
+    "CT18ANLO_as_0114" = "061lvglsg4889q6qya83f7ngyzi2ibar1c9w6xyl462x5i4frx2x";
+    "CT18ANLO_as_0115" = "0a35axfjxywy4yh8pk4w4f57rfljvd593bx7a8wnix0cifnngg4j";
+    "CT18ANLO_as_0116" = "1cm3m3m6l93qlr9fxbc0d21gq3x0wn09qi8cxbx7lj0yqhjf2zh8";
+    "CT18ANLO_as_0117" = "1nrzrlp7i42z7pv550ggga0fk356i9rqbj60mdxvlw3xl6v4kkf4";
+    "CT18ANLO_as_0118" = "19p7x6q9flsz1s82scakgnsfsrjf8ym6ix3gp195fjgfdkannh9i";
+    "CT18ANLO_as_0119" = "1jz27f39dpg0g46p834vgvaajxspyqwd8f7zlpv44lfb43va6dgy";
+    "CT18ANLO_as_0120" = "0rp9hrvs44d8pbagmc3vipnh5d9amam3prkm2k7spvxahr6dp8dp";
+    "CT18ANLO_as_0121" = "15abhrjmmhyka9dxjmwz7103i0bpa605yhy6kisgzf7km5ca14h9";
+    "CT18ANLO_as_0122" = "15mxybppydzsxx308hqljahnmrw0islw2zl45kjlhxjxsmaai2nc";
+    "CT18ANLO_as_0123" = "19zlyapm5cp1hwvfqcjm3v6mgwdaa6f5d0mvnh68c05sn39xjhz2";
+    "CT18ANLO_as_0124" = "1fwzcs50bj6d6cjkvi4qj44mwrwxhjh25lxmk2q82wdmddgpaz0c";
+    "CT18ANNLO" = "1kbsbvvkkchhwwjdrj4d91lbykid4dcy4ghanpdd9x0nfm5b4sgk";
+    "CT18ANNLO_as_0110" = "1a60p22r292hjjcrdkgis6d81hgihnjzyzlbcqrvx9bkbq447kjq";
+    "CT18ANNLO_as_0111" = "1gyl4h92xs4s64dm7cwrfqk2zrs1cbzp76dqckf7z44k4pm460m9";
+    "CT18ANNLO_as_0112" = "1bsn5q12bgkhyl1d6wkq32m3l7i0wqxpnjxh790xcd3ympbfx16h";
+    "CT18ANNLO_as_0113" = "1dri54s71ygnd1pdnmvr9vqbyfllwzr9x39zg01rpj02zy7kidb0";
+    "CT18ANNLO_as_0114" = "0f731ryn1031053zv40mak9m7mxmn6dvnhn6ik6kyag9d3az6lvx";
+    "CT18ANNLO_as_0115" = "107569wrkjic6xjp574i6r6n8wj2x9cx4h7dqh77wxl8g4aajkh6";
+    "CT18ANNLO_as_0116" = "0r951p0a4pan71lkhf701ysw6kyq1wvf15rbjdjr4j7khjfaykcp";
+    "CT18ANNLO_as_0117" = "0xsgzga5bya0ng6i7nvk33nrf792vzbd1rs174cix4v406g99xm8";
+    "CT18ANNLO_as_0118" = "049534355lxhppw2l85i677ysb2gwzccs0b5afm719sh06rv6jkn";
+    "CT18ANNLO_as_0119" = "034kd7pg103ldc3nmgsylv0ffl8v0sp9jkf9073ny11s7b3pb5wa";
+    "CT18ANNLO_as_0120" = "1ph23xpirkahpr9x1k2qm9pp3a1hc3i15bhc6xprpc29k53m4wsi";
+    "CT18ANNLO_as_0121" = "12qrg3jb1kar46b8lai56lb7wxjr950dzaixfncxvy38hrny6mxh";
+    "CT18ANNLO_as_0122" = "1wmkl2rlhkwzxi1yln0m9i6lvpbqkp3bxdnyzz7hp3hy1sa5f60s";
+    "CT18ANNLO_as_0123" = "1caz4rfmcmabfdw5b8xg2307bs1bjclgdcxq2k6gf73z3pqbjs8w";
+    "CT18ANNLO_as_0124" = "0mx8h8vdhlklgvysmhllkzga3g65zkmzpz7bmyvaqmvbvr6x5q0w";
+    "CT18NLO" = "04y2p6vz484l3yv6381pfavqs3xh78h3jn6bg7ncp5vywwqp44n9";
+    "CT18NLO_as_0110" = "0ncaacfw8dh45vaf84kkj93hwxgwz744qqd6llpy73zdilnl62a8";
+    "CT18NLO_as_0111" = "1cib3ggy0wajvvw908wr4bfymcw62iy5abwdadhq69crcg01619r";
+    "CT18NLO_as_0112" = "1x242x4y0vykfypm02g02qxpwmsq2p45bxqrqgfy29qagxz6j66d";
+    "CT18NLO_as_0113" = "0fkis7l0s1lb2k7qyfwnn5axbpiv9yky4j5qc8g3fa068czijmhi";
+    "CT18NLO_as_0114" = "1r6ih2gqiwm7z24iw9xgn2n35659v5nwl2d02f07j1k3d33j175n";
+    "CT18NLO_as_0115" = "0z4vm73l16mpjf3wcrv5q659f2mwkx85wpmnq8j1fnk0vhms59dx";
+    "CT18NLO_as_0116" = "0g4lxxc9g09alpsff9wr7w0jgi26h3klx8rk6nb71j9yzrwv12vv";
+    "CT18NLO_as_0117" = "0hmn5vkgi5981q0s5lyp9mq9jjrzhgr1f9w8np3i2nwcgn1awis5";
+    "CT18NLO_as_0118" = "1z6is1f3064wq56lfxrmqckk3yi6wsl42s2xigx87p8zqg3r4nkz";
+    "CT18NLO_as_0119" = "0p3r7w5v3pq2dgaq96r3khx1wwjq6i33l0bbf63dxs88gk5cx1s4";
+    "CT18NLO_as_0120" = "1h0rcra68yypf1yqwlzql385ks1agxc9njdpyx60j3yg3whk4h63";
+    "CT18NLO_as_0121" = "1by1iiy7qby73m8s3qmnrf0dyca3k4z00fclbrm651f79nz8scz7";
+    "CT18NLO_as_0122" = "1r8h2cw874dh1mj4r545wp9msr1358qw1lzznwvgkmgwjclndjg4";
+    "CT18NLO_as_0123" = "1d8c3bk6bvy3azbv9yqi45cwkcmjbxxw7qaxn6xnc5jfcf6wbsp1";
+    "CT18NLO_as_0124" = "1haqxq1jbcz9qbhnw4pxsvlr37908fkdlzyn7c1csrlr8a51s3z4";
+    "CT18NNLO" = "1shkah5ma0hp101aklkz2p8n9y4i4sv6zwa5ifzyj3bgz1020l5f";
+    "CT18NNLO_as_0110" = "1smilnmhw8zjd0hl03v7wflbbia5qxqfmvyikbgwc29g212xbq71";
+    "CT18NNLO_as_0111" = "0mj77vshb9fmlvc1pp3m701nl574p0k013lg0l25r4nhvlfiiriz";
+    "CT18NNLO_as_0112" = "0a87crw7dygf9q28v95h9j02yq5f9rr5fdrxvqj5ggw839nazgmk";
+    "CT18NNLO_as_0113" = "011269haxlh2grq60qbmwrilgnkz6hlacd8x56iizl6ify7hcs2c";
+    "CT18NNLO_as_0114" = "0im03f2vr9pfd223skadmcfrypxlpka4pqizjcbqq75fddhljivq";
+    "CT18NNLO_as_0115" = "0pppdh2vq86iiar18c5wi2qbm6viv0hpyfah8pn1p6bcg1k99srs";
+    "CT18NNLO_as_0116" = "17wsn6jxp25klk3x3yfa5abxjjdl5j9vdwxqb51zg6ic3a7is764";
+    "CT18NNLO_as_0117" = "0nkdmqyqzzg19m98mqm9n2dcaiy4i97zrxmy7x1c3rxc0n7igkzh";
+    "CT18NNLO_as_0118" = "0v931kw5dzqq95940mxmkj1r6a75w525j99yf47pyf55vg22ybkb";
+    "CT18NNLO_as_0119" = "1z4kg4na0m2vrflnizxhjdxa9rdzp66mq66bxcjlvqiraf4ygkd4";
+    "CT18NNLO_as_0120" = "07bz7q5h0rfxf5989sarchsv2mcn4093b6x5094725p74sw41sq5";
+    "CT18NNLO_as_0121" = "0slw6m1scnajlfhxswd05if782k32gcyx9zz50gaiwqimrz188fa";
+    "CT18NNLO_as_0122" = "1jrzxq7mqhkfj96whqfr3ny2g1kggc047cvzb7ladlirmi05injg";
+    "CT18NNLO_as_0123" = "1zdmvp9pxjjs96yw05l5s0c0ym1hyj7d3an5siy3i20lvyxcgyz7";
+    "CT18NNLO_as_0124" = "1lb88y4c68n669c2g2q2zwjp92d9hgbxgpl0b7dxny9a7zdmw0mx";
+    "CT18XNLO" = "1k0cli4j0z5hj24pk9f78flhlvsdfya51hgh90jv4myniapk616l";
+    "CT18XNLO_as_0110" = "0yahahfmzzwzxiqanm7029z05f3nx9cs2yjdvyvhazvicsq3ibid";
+    "CT18XNLO_as_0111" = "1n0q8d0j8smq2z6n9l091r2q8v319zcf896nk2m0s7n9g9a0vcjq";
+    "CT18XNLO_as_0112" = "1wj968g1vb58gz6vslzfmihvqg5f9f2cqgq8inlgdhai1y8vk1lz";
+    "CT18XNLO_as_0113" = "1gi939mxv99q2r1m8a6d4ky5nrp24xv16xw6d9h7ly27jrw8kzm5";
+    "CT18XNLO_as_0114" = "06gf4m01yr89xklch6ack012in2i1bifyzvp793x9w8m56dx12ms";
+    "CT18XNLO_as_0115" = "1g4705l0qb0immd4la2vrj9v4kw7r7i1wz1vn4knbqjwig5kcfws";
+    "CT18XNLO_as_0116" = "0vaxwg3ixf4x92vssh8gqrszbfa5zgzbsd5p81j14nlksshrs6bf";
+    "CT18XNLO_as_0117" = "10qg2yr63csg4nd62a8h0s1z08cmgbkwvcsh0wp7zkzpw70r7x78";
+    "CT18XNLO_as_0118" = "0kxhg2pn7ki4nxcs5jhxvx4fs6c414mq0d0qm3vldv0hsayqsbnd";
+    "CT18XNLO_as_0119" = "1xd4ib2fqzhg9c6z2zyc8h3il4msm7rv9kkaaapll4h0gpjdda6x";
+    "CT18XNLO_as_0120" = "0jyb8gs0avvlhiwwvrv09p47vs3jim3y315hg7wcy31xab90b91i";
+    "CT18XNLO_as_0121" = "1afizsl9phvvdjbyrifx3ii10gpxl51rvx311imz30l51i3fzl7v";
+    "CT18XNLO_as_0122" = "0wkpicsv9357lh96vjnrxzddaaaiaagyfph2jcyp97mjhixx2hlg";
+    "CT18XNLO_as_0123" = "0hr9m422shvp5yzjdd7lqansim7qcx3iv1p017fp1a4ihj661sra";
+    "CT18XNLO_as_0124" = "03zf75f6gx41g3fxrdc6sqkfcyzz03izchwfvabwfxr06yq94jxc";
+    "CT18XNNLO" = "0j7bwzkhax4cm3wnbhqdv48j4wha9zdd7v77ihlgcvcmk79rx1fa";
+    "CT18XNNLO_as_0110" = "1vwaz00jwpyd1nafpfw0mw309v10zqxcsygdjsdd9mn5p1j6z3hv";
+    "CT18XNNLO_as_0111" = "0g6w519dc13mzgb2wpyy7chnl5wkl0ndrdiw7nymad0csg20yss2";
+    "CT18XNNLO_as_0112" = "06wlzpx9b83gblg4rvqv22k60pvjikqs5m5gp2kvrwmc2wxp73d2";
+    "CT18XNNLO_as_0113" = "0ybm5v0dprid7vvsnsihkd3vn5gqsqsmib63sh3xl45i58h1szzz";
+    "CT18XNNLO_as_0114" = "0hpznnkarzjmf5447jp9za1w52lqpysprnf14v31mda9k7a6kdkn";
+    "CT18XNNLO_as_0115" = "0lj637cwm726hqilrnfa064apdsqdav142dy3scz2gxzpzqpya7c";
+    "CT18XNNLO_as_0116" = "0m1zh15f975g628npifyqmlj578lpdlc67sdrxgdg97jfvxrq7s2";
+    "CT18XNNLO_as_0117" = "1r5kwl333ipq3g78cmn7h5yxk2gl3rfszm1ijzyf8hrjqz9m2p35";
+    "CT18XNNLO_as_0118" = "070jcd7y5w0h65ssk359w4kf2j7164pgdkg78mjwifi2garrlv0s";
+    "CT18XNNLO_as_0119" = "12nzzjyllr4vs422dxdccjy0qffg9gy8p2wa828cr3a26wjlipfr";
+    "CT18XNNLO_as_0120" = "1b9k3wd212nrhhncckj6fml58jzjagiskgmc6h248mcc8mcc2gyz";
+    "CT18XNNLO_as_0121" = "1wkgmkw5djzxc5g4iyr4h2cz08jv1clmp8x8xcidg5532zclavmd";
+    "CT18XNNLO_as_0122" = "1w7jhlk432qni1kn1big44yk16bxghbzrjb1g1rdxpibzy2jdkw3";
+    "CT18XNNLO_as_0123" = "15hqb1c4jx41119h2ahx6zacbigs9xw92jw7c4xsww9dkzr1qsr5";
+    "CT18XNNLO_as_0124" = "0fx7am4dv4d09hdk0yxvxzbdlhzc03y3q2x1hfx9wk07kcxw1mj5";
+    "CT18ZNLO" = "0iv8laks2ymn5fygk6k9lxm3s7fld5g292n9bfkhn3nmcfxczi03";
+    "CT18ZNLO_as_0110" = "0q90c9nx0b3fbqq317qr0j13cc9m3zcgpk3pcn8s2sd6aaksa66i";
+    "CT18ZNLO_as_0111" = "0wnxj323k29xvcrrf68mfyhflfnblvvnx63p070l5x52qqbfjl7y";
+    "CT18ZNLO_as_0112" = "03qjvv004g99lbi022l9bvr82gvv6gzk651r8x5hwwyr0mar4j0v";
+    "CT18ZNLO_as_0113" = "0hw6w7x3bnx2fy03jj5yvbjjab9mj0fzca8bc46phjsmx3nqxq5k";
+    "CT18ZNLO_as_0114" = "0gnhqhxcsaslcldhyh69lxdx1misjz5qiwry57n31j6mqjrggqbi";
+    "CT18ZNLO_as_0115" = "1dn32bwarggnfq2s9drmdjikcrn0nm0mqih4f5wxr3zbmq70xw4q";
+    "CT18ZNLO_as_0116" = "17q8ysl7ar1n7wym55k8vzrx963rip9l9b0kxw2bqkha5ipwmnv3";
+    "CT18ZNLO_as_0117" = "1afaqy8afzib6fmyy7ysnfk8w5f92893nvh4fn1sx9ink7i2zqal";
+    "CT18ZNLO_as_0118" = "0sbhjzjsjd8m6sgz66vky3w7ymhwpss0dr2p603dxgm84fig1kzx";
+    "CT18ZNLO_as_0119" = "0fxplpy2l1fdh5p4csdlabg36xgbpdg8pcdfcnws2cfj3g0941as";
+    "CT18ZNLO_as_0120" = "05dk8bvwkn5y5j4rk18an25rg1f1am9vlddal84rbp8m15qnms65";
+    "CT18ZNLO_as_0121" = "0ymql1wjxng5i887lx2q6p8gryw29zs0d2hzkfxl4f0zzn2wlwpi";
+    "CT18ZNLO_as_0122" = "0gnl23n4ljlry340pwwfs0xs22bl2qp2b8p3f73gpp9xn42nwz1g";
+    "CT18ZNLO_as_0123" = "1wfx59iadvn85raa1bq81ipxpjbxli58hs8wpzm1vz10ilifn9d5";
+    "CT18ZNLO_as_0124" = "0jm0gnp8g1drz6a10wrdxkj2s8gws80ias1ixdnr5fdmnghf1wl7";
+    "CT18ZNNLO" = "0zsqrpab6vgcinsxjq3rqdadig5flxzk61wc1aa9rwnkbpm1paa5";
+    "CT18ZNNLO_as_0110" = "09ypj0yydkiw82bq3ymsp19i4iz82fm2z2xfplb3iasa86y377in";
+    "CT18ZNNLO_as_0111" = "00h0zd5indm57xhn467qffpx7aadzb73vyfazq09pl5vdqq9fn8x";
+    "CT18ZNNLO_as_0112" = "19vlb1bvp7r9jnknd2dvblggim1xqf4yjqyf5h04r90b89pyzxn8";
+    "CT18ZNNLO_as_0113" = "0h8i68dligavf051dpil2bqvlxm19156v1951n340pcncaxxi5d1";
+    "CT18ZNNLO_as_0114" = "1n2drxdd6f36njq0lcfm7s6cyignqdqvirh03ixvvar2pgj02yay";
+    "CT18ZNNLO_as_0115" = "0cv633f5gg6hcyhwfh22h5n4irnk1pxsk7949wiax7qkl84mcm1j";
+    "CT18ZNNLO_as_0116" = "17z25cky2ysrcplsxblrzka667npnnp42k6n8jsm73pagscsj91n";
+    "CT18ZNNLO_as_0117" = "1yrbrzbg5r2pvwhbnvfwcp9d9rvfmqqxwph0rd0sdfix9agwy2yd";
+    "CT18ZNNLO_as_0118" = "019lbvb8pjfbwz8hz8h2xw76nf1ly9mgnbz6pzi3v9msk0qbmlp1";
+    "CT18ZNNLO_as_0119" = "1x08wg3y3fqa8ah6m0c6x2fckjjyylkhnmry6vg93rp3n7qlvynw";
+    "CT18ZNNLO_as_0120" = "0m9mfr8553yrysbcksx17nz1gm1vi2zvs5bp8d3v82phsv5alhf5";
+    "CT18ZNNLO_as_0121" = "0snzl818ag926n0i67hdwkjclfvykx546vfnvsx7n2z5pabakd1j";
+    "CT18ZNNLO_as_0122" = "10i7dk1bllyk6f3l92kbiqdib8l2zvqf91g9c20k12sim6n6x2g5";
+    "CT18ZNNLO_as_0123" = "0v2h2fjkdsnyssb6ralw32c23l0nmdxbg3sx38vxh2y2s2nycz5h";
+    "CT18ZNNLO_as_0124" = "0w29hn728p8yip40mr27kqmv5wndfkq6nx0vnl53x41pwczkhkdl";
     "EPPS16nlo_CT14nlo_Ag108" = "1p7gckhv44h04rvknd6fdizy9c1jqfwic7ppf0ra14ic8wp1g7wg";
     "EPPS16nlo_CT14nlo_Al27" = "0hxyakfgknmixxndfj14i44afp5gcfz9afjvjdaj702sv42a7qa8";
     "EPPS16nlo_CT14nlo_Au197" = "1g272110y3a1fr6raxdfhagn68i0lcnwbdhiiqg4j6wb6v4m3p6i";
@@ -290,12 +418,20 @@ in
     "HERAPDF20_NNLO_ALPHAS_130" = "1g2q3438bivd20i685jmx565cq108yv72vhxmpmhysh4qwvwpqqw";
     "HERAPDF20_NNLO_EIG" = "12zn49jx7qjr8apgpbhknzll4vwlz3x9y1ai908ix2h86pgap2ml";
     "HERAPDF20_NNLO_VAR" = "152h21khvkhxwx87c5lqwzpakmahcpj1ixw6kgl0wrrwjknvfgxn";
+    "JAM19FF_kaon_nlo" = "05mcahzr0k5w0hqfbn902lmkwxlkbf8wrk6akpqnfsyqpbmhja5k";
+    "JAM19FF_pion_nlo" = "06krcf0c9jbbpwf1rk1xd5z7rz904ji984xz05kv9p1j1vgk0ha0";
+    "JAM19PDF_proton_nlo" = "1zrcijik60rci6km5d8pn8ivww8w3v8pb1m5dshqjs51lhf56ayp";
+    "JAM20-SIDIS_FF_hadron_nlo" = "11g4syy0r46m1wvzq0pb84s4kk2aihjmhx16mr8gzv5b11520a6d";
+    "JAM20-SIDIS_FF_kaon_nlo" = "1b2rz6k0g6ck3m28vdqjnnfc025ql5alhjmgn1l84cflf4fvkkgp";
+    "JAM20-SIDIS_FF_pion_nlo" = "15l98gmzsqxw615802si94dmj8ihsz6n1mraxkkwjl86hm8nalzi";
+    "JAM20-SIDIS_PDF_proton_nlo" = "07xwp9as0nscm4whl5x9bry1p54yl5qmj2r3hqh6vjsz6mxksdjp";
     "JR14NLO08FF" = "16azkqxf1yw1j32ay6j01gf8n9n7qm56jh4yzgjag0zdhm01lbip";
     "JR14NLO08VF" = "1ilw38pp4vy8c8v1glfi4ixca73wjkdg3di1wh9p8xqrifdb096p";
     "JR14NNLO08FF" = "1w0pywmjb4xi7bsvv1mdd4q2adf1g7khspfbkphmlh8zipx29nxx";
     "JR14NNLO08VF" = "0kzszj1r141fcg9vbf53480224nxcc5wfk9zmpmzbmrxzi0w127r";
     "JR14NNLO20FF" = "0wc3qib90dpd1wgiymrn5lzwhqmh58ji2s92vpj2v9v4spws7pdq";
     "JR14NNLO20VF" = "18l4ipn80gmh9kdw7a1k49fwgbl7b1frgc0hsa04vbwnv6hm73hn";
+    "LUXlep-NNPDF31_nlo_as_0118_luxqed" = "09ch6mjfn6rjsd31jfb59j92ngqiy0x19qamyxh0jwk0sbyr1dpw";
     "LUXqed17_plus_PDF4LHC15_nnlo_100" = "18y3pa6gjmcv2s21si9a5dvbq6xxqphbqz5qiy39c62g2zf8512c";
     "LUXqed17_plus_PDF4LHC15_nnlo_30" = "1bnwlxr8p4xmr36zd2flhqssil6w7jh50k46j0mxfnd8jgxgwn6n";
     "LUXqed_plus_PDF4LHC15_nnlo_100" = "08jzl4wcsrr9agycq1r5kd5bqxsx4b637nxk34s82vs7vwpq7qib";
@@ -344,11 +480,23 @@ in
     "MMHT2014nnlo_mcrange_nf3" = "0zskxladqr40v6wqafbl1pl04vq43babqf437c4xxg4sz9435l3l";
     "MMHT2014nnlo_mcrange_nf4" = "0sny8r9zap8gnjh9id1klr59d9hs0bb40pf8hpy8q5pg6052vx3q";
     "MMHT2014nnlo_mcrange_nf5" = "1l340c1x4fz647bhybrvbb6z00mla81b78jfqpnwd4vwfxnqmq9y";
+    "MMHT2015qed_nlo" = "130fmxnaashvwwaaiz5b787ldz8l78ar5h2h038xvisdjkxvdqni";
+    "MMHT2015qed_nlo_elastic" = "1whplgg2s55wjii1hd32hzd5wsqbgvjjbnfw4fzjmnx4vwn63n2j";
+    "MMHT2015qed_nlo_inelastic" = "1b24flby6n9q2cg4haldmjs8ql35lhlw0bgynwja1v2n0fbf550y";
+    "MMHT2015qed_nnlo" = "1ypqiz0yz6hnxfml7ym83k4qqvqsbl39abbr38galns8xzzpi03m";
+    "MMHT2015qed_nnlo_elastic" = "17in1cz5j7mm9qjk8i27fif6x276lcqmccl7kfz8a5yn73xxzja4";
+    "MMHT2015qed_nnlo_inelastic" = "1ngk4p7w8l8b8sfg6hlm8ypxz97i1iwzlrc48szy7bi99kn8rmy1";
     "MRST2004qed" = "1kdrzk2arvs36lnpkbc94w06hx3nh8nixh2qjhb271c2blwgahzh";
     "MRST2004qed_neutron" = "12vna0ic6gh313k22b44b0k9kd939v7zjl2hj65k1075j23mq425";
     "MRST2004qed_proton" = "10z0cr8pnr0lfxxi916naiz381a2cqn461jblfzvvddwqmqbllbc";
     "MRST2007lomod" = "13ar6hzw9al20zlm8lg0hvwmgrmv0dbam820gm36rj8p7i33qlr6";
     "MRSTMCal" = "0kbyp4rypw8jm28zfpvf0grvfvxmsrp3grwsmfxpa2c38x6la3rq";
+    "MSHT20lo_as130" = "0ivjvqabk9jnrlrczjlqywmijx5ql8wy579j77qkl1vhv7sqccm1";
+    "MSHT20nlo_as118" = "1qwbwcq8p4hrprz4ib18mp5142b0lbyyzc1bf5a4iq5jjvi5qm93";
+    "MSHT20nlo_as120" = "10y1a6iryahrafzdqskypjrnad6xxq08gm72pa9yc61xdy6andc6";
+    "MSHT20nlo_as_smallrange" = "1rygvj33g84whl24kgpqa47g11c48l93jlnpzqq8f5zr1ijqcq7i";
+    "MSHT20nnlo_as118" = "1yz0003ixjg97974648qba5d37vb4fhzzmq4k9xh4c37pnc3kgyn";
+    "MSHT20nnlo_as_smallrange" = "1bv7cbdynp6dm5c9v7r32gqy1lch4428apw426pr0d7xpm0abnxv";
     "MSTW2008CPdeutnlo68cl" = "1x2y7hl8ckplx175bp3wi04xafm44dd7vzfgnmvvai1x0072xi51";
     "MSTW2008CPdeutnnlo68cl" = "1szsdqjkmny30mpw4pdzi97vj7i55agxm285dvnkzp06ycgp1ld3";
     "MSTW2008lo68cl" = "0j12mv286r4ds9v7piqh4n44yjnc51hm74lqa4vv5xznxhibng7l";
@@ -360,16 +508,16 @@ in
     "MSTW2008lo90cl_nf4" = "1bdjl58gslhw539650qwi7vbvsr22hpxpca17rkbqz9szh0ljhym";
     "MSTW2008lo90cl_nf4as5" = "1crsm7dfcs0fn1i2ng18wy23z2ap01xr2rsnafqlra0q135m6hfp";
     "MSTW2008nlo68cl" = "0pdvb5nshjjw7ddmdmj1v88m3jlk3vwfnab0pf2kf8hfx10hbv4q";
-    "MSTW2008nlo68cl_asmz+68cl" = "1zbvbpfy30612ygr9rz7ickdrbdsg0gd6p8xs7ylzj5h06sckq84";
-    "MSTW2008nlo68cl_asmz+68clhalf" = "174spwhpl6cvj8bw8wns0jiznnsjrv3i7cvd4x9vi0fa5z4sb5d3";
+    "MSTW2008nlo68cl_asmz+68cl" = "0gwmxs0f7raxvmpn12zavzqsrp3x0a82y1vq2kf9p9fq17in55yn";
+    "MSTW2008nlo68cl_asmz+68clhalf" = "1rmda4zpm6cs9kyxkhwpz38iv6g259156bmka4dc4zyfg1lcw85d";
     "MSTW2008nlo68cl_asmz-68cl" = "15mmdnd3wwlrs5pwwhfa9f88vjpgza8vwxwxpyadxsmhx9jk79hy";
     "MSTW2008nlo68cl_asmz-68clhalf" = "0dd7llc6ip6myy2yvf16riqs334f20l8wkmkksq53xngmz9qf263";
     "MSTW2008nlo68cl_nf3" = "1j82imyylvnf3x39x1mb19hhp2nbcq2lk82hf7sj72c557l3qpjk";
     "MSTW2008nlo68cl_nf4" = "08f008by768c8v3cmrsbgxpglqdj58nwwf22dmk2mbf2jq449s0n";
     "MSTW2008nlo68cl_nf4as5" = "0hrqmmnp20vpj6dpz3bvm531i0pvl06als8irqz91cknv6zsvxf9";
     "MSTW2008nlo90cl" = "1d3p4cialrngci9kn7225zcmyrr547dskzi74dfgdhbqc0256a2r";
-    "MSTW2008nlo90cl_asmz+90cl" = "1g4gwmriyl71xd2k49jc391vfr02dic0q73lc2wphm1y8qmbphdd";
-    "MSTW2008nlo90cl_asmz+90clhalf" = "0743kimz3ljlb921pacw2lii104j0yfvv073wddz89r877np6mi5";
+    "MSTW2008nlo90cl_asmz+90cl" = "19cd358yqklc8bxv0mg69cq3sf6zah7di0q9ilfqbiddmw1flw3p";
+    "MSTW2008nlo90cl_asmz+90clhalf" = "0ngn8f149agvmc54nrxjxqa0rifbd8a1hbcgpa443l75bmd9sqcp";
     "MSTW2008nlo90cl_asmz-90cl" = "0fnqj7ywnp9nz5733ggjwmhxpy15zs2xgxjz7ixmql5mmaz3sxb6";
     "MSTW2008nlo90cl_asmz-90clhalf" = "1jrp9q8li7a4bwhgh7q9h9zc0sdhck957zn14q9ca9kjsflyb9f5";
     "MSTW2008nlo90cl_nf3" = "02ihabrcgp474wkq4w2fshpiqdznjaxyg5vawv52yj6hxifyy5a9";
@@ -383,16 +531,16 @@ in
     "MSTW2008nlo_mcrange_fixasmz_nf3" = "0zwnicbmmqbak5sw92njpmvxpjnnhwl1ggvlj8q39hn5w5kdy1kq";
     "MSTW2008nlo_mcrange_nf3" = "01mlzqwk30glr95g7n2y3yvvy7s6mkbdb5cqwl1m7k8d6m18n49g";
     "MSTW2008nnlo68cl" = "0y6lv1wkhydfnlakjrrrjapxaapa0bcbmfx0w9c4psgy156kv1fv";
-    "MSTW2008nnlo68cl_asmz+68cl" = "0ik5c4vcv1ki5cnvnyk381lw36bsqp8mjkzh8ghqjz6z8fr2hb97";
-    "MSTW2008nnlo68cl_asmz+68clhalf" = "1d8c0rr3lscin28622f82s79xgbam4qhqkpvvjgynhyn0wy46b4j";
+    "MSTW2008nnlo68cl_asmz+68cl" = "0fhkbkshrc29kz0fc9vi2dqsg6irjm4sfw4sp0s4wkj766wg19nz";
+    "MSTW2008nnlo68cl_asmz+68clhalf" = "1z0fplsv1fij4fgrz7npr34hcmc2qkf7g398bq1smvb6b2qy5jb8";
     "MSTW2008nnlo68cl_asmz-68cl" = "1qhjhdzpy67665ccwv0n3g7jlyb2vfk60cphjr0jb1adgv9fxa7q";
     "MSTW2008nnlo68cl_asmz-68clhalf" = "0rlsis3r7l32jdiq2yhx1mz7q6qlzlsrarljvrmxf0g0g2d8nr4c";
     "MSTW2008nnlo68cl_nf3" = "07nrz7afd1mcsqc3lqv9vk2phs1nfxdl63qh1bc0g7nznxwmmn97";
     "MSTW2008nnlo68cl_nf4" = "1kd62hzk2p3q56kj79bs101arp55ajlyhwwa3vq3yp37i3ynz9ds";
     "MSTW2008nnlo68cl_nf4as5" = "0x19rq5k9c97vzskqppf4k0fjahwiw2c1nb6iy5c2fq8mj1pz2gj";
     "MSTW2008nnlo90cl" = "13xqlfys37b8chinah2yqmzd0clzli06p7vjk30ha22wgwm02dq3";
-    "MSTW2008nnlo90cl_asmz+90cl" = "03p1af5962smr5794322gj3s4f0fvnvmfizsabch03ivyaqpr1nq";
-    "MSTW2008nnlo90cl_asmz+90clhalf" = "0v99vr5kkgkscqvs8b3ahnvg5yl9rfzgf7hams1j12vjg2b9kd4z";
+    "MSTW2008nnlo90cl_asmz+90cl" = "0pd6imc3hvq7vgyv1db9y8rvpgz4ffwqv6rqzp27c7ipxg0wjyz0";
+    "MSTW2008nnlo90cl_asmz+90clhalf" = "1xn52ppixjg22ybd8ggf0azb3zg5zyilqjss033g0k9crq4a6y2v";
     "MSTW2008nnlo90cl_asmz-90cl" = "10wxgh52zs0fp0bwd0b6csnz9x6mvp45gvjhk0y1dhgfwbcvw9y9";
     "MSTW2008nnlo90cl_asmz-90clhalf" = "1kmvp1yfgsx4jhsjc4drg82cq4xs6as4grwrymfkrqnvhcg86vap";
     "MSTW2008nnlo90cl_nf3" = "0vw0cmszwp49fsskacccl921za88cl5cfy0sqckgxzs4hx21x43n";
@@ -628,96 +776,129 @@ in
     "NNPDF30_nnlo_as_0121_nf_6" = "1kln7zjgl0hwl621wnhhsih0m8f9ir2i8ligfg2s0qp8s3787lrg";
     "NNPDF30_nnlo_nf_4_pdfas" = "0s460v9712ahz09fhzhlnsnkl9arsy3l82g1z6xjz4la8fwkr9wq";
     "NNPDF30_nnlo_nf_5_pdfas" = "1vjfm9j39m4389b0r51axlbzdbkpk2vbs3vks3yqcr3hr09g9myk";
-    "NNPDF31_lo_as_0118" = "1n3n3irw0lb1vmcr9qxgcd6xj8prdz6xbrrfbx1815avqs1pyb94";
-    "NNPDF31_lo_as_0130" = "1amkzj0jcx35zrcwl067zf3sz7h2kanj8q49661ayl8yw2c1ncib";
-    "NNPDF31_lo_pch_as_0118" = "02f294h655vn85vqx32hipnmfifal28pn6f18an821jrb72plnzp";
-    "NNPDF31_lo_pch_as_0130" = "0qmjfr147zx9hp3znjxd44rx3hz2zwyvs5lbbbd0y0y1argc25dx";
-    "NNPDF31_nlo_as_0116" = "0px6id1q66pdn47ja09shn0cbwxzw6sj4r3qfzz30w3srr93i4jd";
-    "NNPDF31_nlo_as_0118" = "17avv0qpn7k7lg26rxmcpcrv127w30d20n286vd523b9x6qknkds";
-    "NNPDF31_nlo_as_0118_1000" = "1ms69qgi3mhrwi3jxapykfsiqwq3cfpx38jwmsv4pq2g2hhawvfq";
-    "NNPDF31_nlo_as_0118_C1p6" = "10y6fb4fmsv7mvsj7zrv6g7x80yxglaq2d0ir4hsn3vs3yqq7r0d";
-    "NNPDF31_nlo_as_0118_hessian" = "1jlqbq9wb97l9jhm2r4mkvnhb3vfp0bdhz6lhxnd0a9ipsgmc1wi";
-    "NNPDF31_nlo_as_0118_luxqed" = "0zsyp7g93d1z7fpdd5a43i8wd9jfriw2pkligdy78xxlv9zngbkl";
-    "NNPDF31_nlo_as_0118_mc" = "0iqk4fq0g4v0khymzab6cxhly7ybxw6f010b5x6ybgw2vzizvmq4";
-    "NNPDF31_nlo_as_0118_nf_4" = "0swfqsn68n60r4n3m5szzds8a5pz6p1ad2kkvwawhkgmp2ww0yf7";
-    "NNPDF31_nlo_as_0118_nf_6" = "1b44sygil9ngxmdn0273nvh3pzry2k03mkdibf3kfxn5s0ymkl4h";
-    "NNPDF31_nlo_as_0120" = "0114g1y2h090137wnhjmycrd67nb8s2gg9byx0j7hm1vy7sajj1j";
-    "NNPDF31_nlo_hessian_pdfas" = "0hhm5k3i9ls6fsncfn5cxsx6b1fhb1x581d2cz2balabvby9kf8h";
-    "NNPDF31_nlo_pch_as_0116" = "1q037ai33p0p9s9x5vr0p2v3jy0ghrg9djkyimy1lw00cmkj28xc";
-    "NNPDF31_nlo_pch_as_0118" = "1sym62b0n1rln2fybpppl8sz555wb6cymr20djrwvs45wdkmbbyz";
-    "NNPDF31_nlo_pch_as_0118_1000" = "0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73";
-    "NNPDF31_nlo_pch_as_0118_hessian" = "0fqkq9jq6l6mfl73ykkn9f6w52wpfys4vqh97ngkm331qkm9y6z8";
-    "NNPDF31_nlo_pch_as_0118_mc" = "1q5ihiwzm9vm5v8k47b691cccv0ikvzqahi2vxigqdvhnlq8nrq5";
-    "NNPDF31_nlo_pch_as_0118_nf_3" = "040kfq43a1hb5z4inhw1pzqhk62yr0sf1kq32jv1wkbc1524j5gf";
-    "NNPDF31_nlo_pch_as_0118_nf_4" = "18vj61dv179ypq3l8wgvc5m0ksc1i6mm3r1jj45bk0dxszlrsrv6";
-    "NNPDF31_nlo_pch_as_0118_nf_6" = "02zmby2c6adp1q0kcjx4f3qvabn5qif82q942xnxflgpnpk9qafq";
-    "NNPDF31_nlo_pch_as_0120" = "0kgslc183vaxj1fxcwfabs6ah4lx787gi98q02nci010w2zmx7zm";
-    "NNPDF31_nlo_pch_hessian_pdfas" = "1bmja7lqdwakqfhf7q72snyjg3qg84xdkwjwmz6lvy75r1810dhl";
-    "NNPDF31_nlo_pch_pdfas" = "027prs00nc8laqpjvz20ij5ipzcp291szdpz02aiinf2a5sy2f0j";
-    "NNPDF31_nlo_pdfas" = "0d8krd9akg486k8gp1kj4qn4zwy4pjd4j3xz2527a8hkiv99v8bi";
-    "NNPDF31_nnlo_as_0108" = "16hhkvmk2cpmqx7jgkh7ckdzas9c6v23l04z7mlnvvc4682n5zvz";
-    "NNPDF31_nnlo_as_0110" = "1hznzg01dvpa77nxr11dmqdhwbrj310hhw1h088bz5svfh15ga2r";
-    "NNPDF31_nnlo_as_0112" = "0cdjiiniwikkda593sv1lk1wywdxgzfqg5fvhczgwq588xmac2wa";
-    "NNPDF31_nnlo_as_0114" = "1q6phbv3w4dsyw0jasbpzid8r39mr8icw4av85dyim4n1ncqag9a";
-    "NNPDF31_nnlo_as_0116" = "1fz1h7vd910vm8li56j0w1b5jqalym0zkqv8msr01zyq6dwr1hfj";
-    "NNPDF31_nnlo_as_0117" = "181xc88i392rbfwqg1p7imkh71ilbcxdibi1mh0zk4kmnx6sskfp";
-    "NNPDF31_nnlo_as_0118" = "1p4idzrg8i67h8anzanizas7a1hkxbhrw7ch6x6d1swbigw40ajf";
-    "NNPDF31_nnlo_as_0118_1000" = "1bcjsxnp205v9ipf0j57pfnzl7kd89ds3w0gnjdsq8q86s0c5k23";
-    "NNPDF31_nnlo_as_0118_CMSW1" = "0ibgi8jbick51fh3pdnc7zrjsdpjyc3gg2hnm0jmxw3hck7rp2x2";
-    "NNPDF31_nnlo_as_0118_CMSW2" = "1h49ygmp58zs0ml1lza6clykhylw4bgvsi6nadwmc2bqs4hqqp8a";
-    "NNPDF31_nnlo_as_0118_CMSW3" = "0z4djd7nrkqd55dvswr85l4sphjbrgsh5bslgypbf2axizlscdyc";
-    "NNPDF31_nnlo_as_0118_CMSW4" = "13wkx8a4zkivk832f0ng6zq4m9ahka2lm3l6230yicl2fwb9znsx";
-    "NNPDF31_nnlo_as_0118_collider" = "00fgz6m8qbhgmvkli8pyh1gsazajqz8cqbad117z1ijvidhdkxs0";
-    "NNPDF31_nnlo_as_0118_hessian" = "0rzfcmwadff2p7qk19dj2skd4dpv9z59jmnv51c44yis07fmsjbb";
-    "NNPDF31_nnlo_as_0118_luxqed" = "0smmsn2b2lxwzpr4wr5wg4rg8kjy3lz0xhjdwlimv5gmf24dswds";
-    "NNPDF31_nnlo_as_0118_mc" = "1nmwb3v0aiqjhhlzlrf9qkydgfhk6lp48ydbvy4w5fnhs4rqas4j";
-    "NNPDF31_nnlo_as_0118_mc_138" = "1bv63m9lxxy3mrbmkjbn3jjansghlphxwmqywkcynk6z42krpgdn";
-    "NNPDF31_nnlo_as_0118_mc_164" = "1dkj741r29lh1011c8v2d8ax41a9pxvj8ksvz12y18ipf5p0jrnb";
+    "NNPDF31_lo_as_0118" = "1jq8ad68kym717qinwdldvrjnry9sfsfq7lvfv6ipm1sdzixqm96";
+    "NNPDF31_lo_as_0130" = "1lg49cbg43yrpb7fgqfk0d55m28rrw781mks3zn9m24fv0hiyzqp";
+    "NNPDF31_lo_pch_as_0118" = "0xm3fyvrm77hd2layrfwc74vncc470gvf7hx8nzd2sw3ai1g9h7x";
+    "NNPDF31_lo_pch_as_0130" = "18fip94c0ywzj543qq154z2wnllbn8jw61nx6l8v9wmg2sdzi6zi";
+    "NNPDF31_nlo_as_0116" = "0i6bpa2wf52vsc6x5nlsmncal1ghqpsyz7pya2a2zg0k7z6dfcsp";
+    "NNPDF31_nlo_as_0118" = "0vwbgaxs5gj5cnyncmc7m3650pd6bplwdga3fnyy1vrrh3mpsngh";
+    "NNPDF31_nlo_as_0118_1000" = "0ql0phs563ck7bx7cm5x242icfb2jrlsxhsv80m0hxyr3fhyc06h";
+    "NNPDF31_nlo_as_0118_C1p6" = "0nn6krh6vk8rxiwhpnn3nbxian8hw8d1vq31ywh9560hbi3vpcrl";
+    "NNPDF31_nlo_as_0118_hessian" = "10v2ayms2mhm9zi7k0fw9rshawc7njdlbjs8rfg5hiqn1adss4w3";
+    "NNPDF31_nlo_as_0118_luxqed" = "19fdqxfmx8kzcgq13dk4k1nhkgqpnm5xgahp13hwz1i2vcp6xq87";
+    "NNPDF31_nlo_as_0118_mc" = "1yw21cs6p85ij8lm9k0cvlm651a3x9f73f23ysxjgh1r5kqnhz9y";
+    "NNPDF31_nlo_as_0118_nf_4" = "0qywlyd34yqb2r8ch9wjimyfi1jr3rdhxliwrmns0558hbd47a3z";
+    "NNPDF31_nlo_as_0118_nf_6" = "1pb22z2s0ir130dk5pkxwyid37i6mf8jpr7k7nlfi45gl9zy5ldd";
+    "NNPDF31_nlo_as_0120" = "1b5wsab66karm1ay5vxpjw21g2ywhnzqnlahxnvnaf80izha35hl";
+    "NNPDF31_nlo_hessian_pdfas" = "0sxka18qp99gjj9abml2ba4877zavijmjfzg6m0qczx9m8v9m3xg";
+    "NNPDF31_nlo_pch_as_0116" = "1wqpq2qj5czvcj754nd6c7rrss8skjx58vp2gj2bc5n95jv1qazn";
+    "NNPDF31_nlo_pch_as_0118" = "113xpp3xvpfpivlj6p7av4czfbfnh6bk2kd4d2635ddvy0clqkpf";
+    "NNPDF31_nlo_pch_as_0118_1000" = "1sbjqkwq7iy7fnk3r9ga1rzadzy8x3ld933vcih87is09bzg5rfl";
+    "NNPDF31_nlo_pch_as_0118_hessian" = "0xmz2hc3n8alhf210axv3amf7klhbyl1dd1z2yyx6c3pcvcrf80m";
+    "NNPDF31_nlo_pch_as_0118_mc" = "1w1jifp5f7ypf5xqdw1mkx1d6shknryhqzk8rk8naf37bms68mfn";
+    "NNPDF31_nlo_pch_as_0118_nf_3" = "0m7rq7k8x6bsakkw3kmcicq04c39flrw1axv72dqaf9xci9w3pii";
+    "NNPDF31_nlo_pch_as_0118_nf_4" = "0k77chw866shjkc0ml6kb4az75sdcvdd897r8d56jl72d2lkxp3m";
+    "NNPDF31_nlo_pch_as_0118_nf_6" = "0bdc60dxj7jmqacbbaxp2m9qzg82r6pgn7h9pi2k15d07qm6fc4d";
+    "NNPDF31_nlo_pch_as_0120" = "15s1b5w52c3q1nfzckdxmdwrnxw08pprmphc1p33am9v7cwwq2jk";
+    "NNPDF31_nlo_pch_hessian_pdfas" = "0qdswml17bg68y67yw2zbwwp233nxpd1qpc23rqjwyzk2r7qk9bg";
+    "NNPDF31_nlo_pch_pdfas" = "196pcdwsi5p9g88g1c8958qkdj6qmzvl7rsg3j8zll6274m42s4c";
+    "NNPDF31_nlo_pdfas" = "1as7bkp56pwpn2vinxdnhzlnvnxx5ng0mlpmwzz5n7gsinyaz1x9";
+    "NNPDF31_nnlo_as_0108" = "03kg0i43wxf794c4xhvismks6c7nw9hq9ihn58sz628lqcjmsccq";
+    "NNPDF31_nnlo_as_0110" = "04a5gf6nyd58h9sad8zv46vmb074dx7j19r23lbc9w1di23sk104";
+    "NNPDF31_nnlo_as_0112" = "1xkjjm49nlm72f4l3ynrm4g2ayzask22saaf6p1p61lx0jv1hjyd";
+    "NNPDF31_nnlo_as_0114" = "1j4q47qscyw52swmnn0a3lr0avfsjvy20ca50xfhjsvla6wd9lpg";
+    "NNPDF31_nnlo_as_0116" = "1k2d4jzg5jfs6f2mscpvalmh7i5fypx98lnb5wjycprlwd3nr3i9";
+    "NNPDF31_nnlo_as_0117" = "0b6d1xlq4qwjalvrc7ppavw44w5zf0fn3rbsvh3k4qy9r19wk5fb";
+    "NNPDF31_nnlo_as_0118" = "1bw2ksmxdfbwdcimc0ld87hanbqy514sridrcarqwgqh9yv5n0qp";
+    "NNPDF31_nnlo_as_0118_1000" = "026d0xygh046y10jxsfc91hr4qxgark12m393r0afip69dzdsrx0";
+    "NNPDF31_nnlo_as_0118_CMSW1" = "0vqjyziilfzi0gz3a2rv0i6hk3ri3krc2zcdjwfa61z1mg5syi4a";
+    "NNPDF31_nnlo_as_0118_CMSW1_hessian_100" = "1jc8k64pj1mfcw8v9qq9v8m222d09bgfkla7viqzzzbdhy5f6yy1";
+    "NNPDF31_nnlo_as_0118_CMSW2" = "14acp7w3sx5v4ly5wa32vpsk8xw2rh8g5gl7x3f72c0s5jcs4n81";
+    "NNPDF31_nnlo_as_0118_CMSW2_hessian_100" = "0ykaw8x0i6k8vlbms2inm9zm860apsi5mf4wkxha416v4chrpd04";
+    "NNPDF31_nnlo_as_0118_CMSW3" = "1snkandx6apar3sp0c182n770rxn2s64pc07h5k18627cnvpzing";
+    "NNPDF31_nnlo_as_0118_CMSW3_hessian_100" = "03n59yvpgciipkv3k0yr0ab3myhx263n90ah3q3h8hdszkf80ri1";
+    "NNPDF31_nnlo_as_0118_CMSW4" = "1zpnvawdj20izx0mx9a3xz0d0an6i65axbzg5z7fkiq0p09rfx70";
+    "NNPDF31_nnlo_as_0118_CMSW4_hessian_100" = "1qczy2935iq2h4mfq0mv53v2vlfsyvhkff36c5dkdlkrzfkvpl8x";
+    "NNPDF31_nnlo_as_0118_collider" = "1y2axnkjwx7yg301mj1yx1x937j7mhsnbbdpip94pl3vm5hz10dk";
+    "NNPDF31_nnlo_as_0118_hessian" = "0jvzl1bs0mh9c7ypkdgw0s06qn9jkww1d124lc7aq48w1g4n0zyy";
+    "NNPDF31_nnlo_as_0118_luxqed" = "10fwxncr1y7hnja5nxywldpkzrijxz5ayldqjc21jamyhyj3qsh7";
+    "NNPDF31_nnlo_as_0118_mc" = "0sg939j6xn7d5g46547np3123srgz44h9clh29ybl5cnmccv23cl";
+    "NNPDF31_nnlo_as_0118_mc_138" = "1kbxhjzrr4802kcpi7m2g2dx4ywvs9rqjispjwbjc60rqkqispyv";
+    "NNPDF31_nnlo_as_0118_mc_164" = "0i9yxnbps63nz6ala4jk6qmpxlg6p46w6jja8qn73hp0n69w2acz";
     "NNPDF31_nnlo_as_0118_mc_hessian_pdfas" = "1b9ijn595qfq32yz9rlnn2br7lssbk8ka39ripfcfyf33v9sv460";
-    "NNPDF31_nnlo_as_0118_nf_4" = "11dl3c2anh2v140vn6v4mx9lj65844svsd0f84wng0sngrn6dli9";
-    "NNPDF31_nnlo_as_0118_nf_6" = "0s102m1gf8r30g7zy4c91imn26ksj4q600711rgmw2ada1xn87f8";
-    "NNPDF31_nnlo_as_0118_noLHC" = "1ypim2zfa2i3r1hcw0j6w9abmxx67g1rhdacsajfp479s68kmi3c";
-    "NNPDF31_nnlo_as_0118_noZpt" = "1dx3hlcf8c1a40iyccw84v6f2h5jfyw1pp3n01q2rls9i5b12r15";
-    "NNPDF31_nnlo_as_0118_nojets" = "05rkknl44j0pm7kb1l6ihy6rlvwxrkram4sn9zm0za1pv0r9dr6k";
-    "NNPDF31_nnlo_as_0118_notop" = "16prpxwn081v63a0pkgjvcizvn33ng5cafv6664yp44j7vbpwi4n";
-    "NNPDF31_nnlo_as_0118_proton" = "0xjfambqz14vvg506kj8mqkb37q1bq7m3wgh089fjzq0acrmh9kl";
-    "NNPDF31_nnlo_as_0118_wEMC" = "0hkpr14cxgz2r47bfh7k706l22pl6nlhbdqxd7wmrlyrk19vgar3";
-    "NNPDF31_nnlo_as_0119" = "13ys6fkvna2i0ifzw2dz3g4jn1zsacslffylrkmj6zxmkc0qganp";
-    "NNPDF31_nnlo_as_0120" = "19gszb3kxgwdskabdsk183bdn9b0zyphkk8v1r8s372fg52c8jgg";
-    "NNPDF31_nnlo_as_0122" = "1mg40xkp5sb7mpwz420b1mv8cqxldi9rsddnmgdhc5pal5wpgaf6";
-    "NNPDF31_nnlo_as_0124" = "1lag0smkh7pjbl449wipn3rq59yi48313xrma531i9ldh68a4ssg";
-    "NNPDF31_nnlo_hessian_pdfas" = "0yirp5jhns652a4f2jvhxhvd4y117z3mc5vcd2vsvqyjijx6q0gi";
-    "NNPDF31_nnlo_pch_as_0116" = "144bgqmxci7ibwp84kg8a6mw3mwmsilq2ay14y48vsx1ydp56w5q";
-    "NNPDF31_nnlo_pch_as_0118" = "1vkpr9js1xwr0g6fz66j2a22b3k5003adf34x0nb6pjm2nxh0njf";
-    "NNPDF31_nnlo_pch_as_0118_1000" = "1kwc21p2s383973k5jqciqjpmp4xlvj59zsxjs9nvsywzp9k7vaq";
-    "NNPDF31_nnlo_pch_as_0118_hessian" = "18pjqnjkz6jgia5jb4a59s9568yf3b7cp6iqb6fk3xmqlwx5vdd9";
-    "NNPDF31_nnlo_pch_as_0118_mc" = "0wyccq58w705ayy5r9fcfnybb9rw43nl46rrnfysi65myqgcfjnc";
-    "NNPDF31_nnlo_pch_as_0118_mc_138" = "1rzbff1dmdybkgc5ky7qqcvm5g7npiq4nwjjsq714zajlm0r4y1f";
-    "NNPDF31_nnlo_pch_as_0118_mc_164" = "0ymnwm3n45jsxz6dl8ys0p7zswf6w21q3m016lsrcrmyy756c6a5";
-    "NNPDF31_nnlo_pch_as_0118_nf_3" = "1hhz6h8mcj6n8309sw5b3w6dinm54hgbxc7c07xjzkb9xmliqwa6";
-    "NNPDF31_nnlo_pch_as_0118_nf_4" = "0jldm9dlcngdqcy05y8kjszm8g6s3dvamkz8wh70d260ifh2jb23";
-    "NNPDF31_nnlo_pch_as_0118_nf_6" = "0kpnhryf8g0s2ykvbwxiiczycrknbrfsnbs08h1zg0cpq8whljqd";
-    "NNPDF31_nnlo_pch_as_0120" = "0bgr66vrjm749pzif53yqq15023yva03x32wkn5gynq083gfdw37";
-    "NNPDF31_nnlo_pch_hessian_pdfas" = "1004frva4k0s59naxys505fjc83wkz1andzz5gll6v5flfscfch0";
-    "NNPDF31_nnlo_pch_pdfas" = "1p26cb6h1czrdlzk166668900ilzr7r93dmksvc3pqafq2mi80jb";
-    "NNPDF31_nnlo_pdfas" = "0d2cv8y23w30cgxs5090ygb614fwrdj0vwh6pjshqv9403maykr8";
+    "NNPDF31_nnlo_as_0118_nf_4" = "0l796ns5xm0biyl0jra5z6y7vddv52v48wlbdywsq54082scfpl0";
+    "NNPDF31_nnlo_as_0118_nf_4_mc_hessian" = "1bw0x75pah1kp387s8m0rv2qc54k5pbncbv507d5278hhfsn68qa";
+    "NNPDF31_nnlo_as_0118_nf_6" = "0dbxxk0p001sk6sb9nf5ipzi39w65vf4c4g8cbhll7p4fqi8f8dy";
+    "NNPDF31_nnlo_as_0118_noLHC" = "18y9mnp1gmvdbikgfdybw8wz2w5x60wk8lya13g7z6nhbfs08qa4";
+    "NNPDF31_nnlo_as_0118_noZpt" = "1jwhkz8b1x6a2qi62jvprcp1rmcq5aq7s31qhw0skcpx8r6r6gnb";
+    "NNPDF31_nnlo_as_0118_nojets" = "1bg714agc25p7zw2yydvl340sns7fhszpbphzap6fc0jsg511zh5";
+    "NNPDF31_nnlo_as_0118_notop" = "1v675r4qk0wz1hg000fw79nmf1zjqi2ghvgjgs7hyzzbh5g4l3ds";
+    "NNPDF31_nnlo_as_0118_proton" = "0ipsp8kk59fb3w9d1y4pq85f4fl6789rypjfbpp44gcy8hzshbm7";
+    "NNPDF31_nnlo_as_0118_wEMC" = "0savd87jahlac4ag3qfamhnpa7mpnm00j104f3ci17gdax1sds50";
+    "NNPDF31_nnlo_as_0119" = "1s7ildlffbh6cpmzlmafxzbbrlgggfqxsv4qic99yvgqvdgqar8w";
+    "NNPDF31_nnlo_as_0120" = "1z6lqcq1dgvqnpwlfymlf9yhcaqc2p8ny7wv4xs57639dsp5xarb";
+    "NNPDF31_nnlo_as_0122" = "0482r1hip6c4kpq24xzi8nw8awky0669k4plgpgv0av12l4bh9c9";
+    "NNPDF31_nnlo_as_0124" = "0cf3djgs4gayzwy8p0qvynripz3hxd3866m8ldlhxnjmcsgcps11";
+    "NNPDF31_nnlo_hessian_pdfas" = "1m5wdnj7hvg2a51w1qmhm934glhjf9db0x5nry5blp90y5x0v185";
+    "NNPDF31_nnlo_pch_as_0116" = "1i8yzqywg4hcf53vcp25fg8llybis3pz6xbp5ajpyjvrvsgii1pc";
+    "NNPDF31_nnlo_pch_as_0118" = "01rsx0ss67772b20dnnw463328pgbd57d8zcj3lqymlb4a6fq8f7";
+    "NNPDF31_nnlo_pch_as_0118_1000" = "187xkvp7y1wssgpb21r1w4yxn6m1280jac9nmiavrma06jfd57c1";
+    "NNPDF31_nnlo_pch_as_0118_hessian" = "0fs5d450hc15hqs6xv9nxfsnhwszmg9ybjypgwa9kn4s4kkaz1wl";
+    "NNPDF31_nnlo_pch_as_0118_mc" = "06vgb01l1yigln7cn9y3lslg35grwvydpd8g04xn4pj4pj2vjrs0";
+    "NNPDF31_nnlo_pch_as_0118_mc_138" = "0za3v1mg8gb631039kg5mkr9zhn390dkyim9p663srpk85j7h5g5";
+    "NNPDF31_nnlo_pch_as_0118_mc_164" = "1xc02sbmhyjr4gjwim4p0gg90zh26zdmnz89395pxzbq2navcraz";
+    "NNPDF31_nnlo_pch_as_0118_nf_3" = "14xb6m1wqc5f7xjiklwnshn7ljrlg6kmbzr2rib44pgbj6pnl2xn";
+    "NNPDF31_nnlo_pch_as_0118_nf_4" = "1sg823n82j9ijqx4ldysh0g53pjzn4sysvag837ywfyns4p5qy9k";
+    "NNPDF31_nnlo_pch_as_0118_nf_6" = "14ls2yd1n2pqvdvq18qmhizms3a8pwqvksdkvwn0m1379lkss106";
+    "NNPDF31_nnlo_pch_as_0120" = "09zc56cmpj9iw0qp2bm9a8d86r0mdagg1vrpf2xqza4fr841r5km";
+    "NNPDF31_nnlo_pch_hessian_pdfas" = "08baysni2lhbpr1scx7h0zf64gyncj2ahcv4y86142gl4zqrafvp";
+    "NNPDF31_nnlo_pch_pdfas" = "09mw3gr7dz0vwdnralaplvlz2c464lmdizf673xsb0wlm12pqf6g";
+    "NNPDF31_nnlo_pdfas" = "0l92q3xhdk5nrnhkmrirxnvplj531rdpnblnacd759cl4hgxcs2q";
     "NNPDFpol10_100" = "0r5qfa8cyanalphgjdsh57s3viqv9i10v51p1pyamj1f90gb9pr8";
     "NNPDFpol11_100" = "0nny1lpw37jcillpfxjx82hq7wlzp4yksxialmc2ivr192qqdda8";
-    "PDF4LHC15_nlo_30" = "05n0i1mr7v7ssvxvdmv9fn621rinl08frz71apjj7wfdm7s7bk72";
-    "PDF4LHC15_nlo_30_pdfas" = "0xi4xydx0x4ina0wmqv9jf4978xhd8x0l91dwfxh5vy39r5x4lm4";
     "PDF4LHC15_nlo_100" = "0m9d4zy7608iryqy1ypgkr1d3yhw2wv1nrrc70zrfih7x0fp7lz7";
     "PDF4LHC15_nlo_100_pdfas" = "05wyqyh9y32sxflq69igcnnsl0ifnkyw3vnnnjn6kscl8h8hs7lp";
+    "PDF4LHC15_nlo_30" = "05n0i1mr7v7ssvxvdmv9fn621rinl08frz71apjj7wfdm7s7bk72";
+    "PDF4LHC15_nlo_30_pdfas" = "0xi4xydx0x4ina0wmqv9jf4978xhd8x0l91dwfxh5vy39r5x4lm4";
     "PDF4LHC15_nlo_asvar" = "14hdgj5g8ia7y6hi40zbh925dacrk7hd6cli6lkhlqzxl755nbs3";
     "PDF4LHC15_nlo_mc" = "09p7y0z04r6wdkf8gi3yj85qk5hmp0mmhab8c7a7lly4731fyf42";
     "PDF4LHC15_nlo_mc_pdfas" = "0sds9rkvbjkk7pardwq959qqbrvgwswxmsqcfppky2p0qmdsjs0s";
     "PDF4LHC15_nlo_nf4_30" = "1ysy6dqlacg4bwb2f16p1aza5gwm9qnhmc0g0mhsdw4d2i4ml5yg";
-    "PDF4LHC15_nnlo_30" = "10cm4wa0mk34rnvsr5q8g9w7fs9cblsryms2nl370wdvcrhzsxph";
-    "PDF4LHC15_nnlo_30_pdfas" = "13xln0y8l0qcj9951glj4f1kqfaagj8gwkxzlvdkgjnj1scdy6yj";
     "PDF4LHC15_nnlo_100" = "1gcq3qrf39dhq2pmpjrj3z0i0ycrk76mjdwmgfvzdxysp530ax54";
     "PDF4LHC15_nnlo_100_pdfas" = "16r8far43ymsd64a4bbqlj56qvbjmcyxbawv4lkfxysjvbydxj4w";
+    "PDF4LHC15_nnlo_30" = "10cm4wa0mk34rnvsr5q8g9w7fs9cblsryms2nl370wdvcrhzsxph";
+    "PDF4LHC15_nnlo_30_pdfas" = "13xln0y8l0qcj9951glj4f1kqfaagj8gwkxzlvdkgjnj1scdy6yj";
     "PDF4LHC15_nnlo_asvar" = "03fh1jcbmvla7n2jj3zq4ibwvq66h0rniply7h93d94zawcgsy4v";
     "PDF4LHC15_nnlo_mc" = "0c6nfkv3x1p5iw514knjvqcs1dcaryf74qqg1za8x234yr5ndi3p";
     "PDF4LHC15_nnlo_mc_pdfas" = "0l8hlcz69cdii7mpgargi9nsx7iy746nad5pnn7pvycrc40marij";
+    "TUJU19_nlo_119_50" = "1q1dhsxz1kq75rpzv6gg6p6bzvvv0d44pc4y3wsiy9g14aff85vq";
+    "TUJU19_nlo_12_6" = "006j6y4xbjss9apzagjcc3r1z6s61a1hzafhcyriiffqhn8bg50k";
+    "TUJU19_nlo_131_54" = "0ymf35alyar6fwagmdny2zz2aag576f38kail7gh2lvqpmjmv6np";
+    "TUJU19_nlo_197_79" = "0rq57sjcwljz8fz2m5bz0hm1670jp080zawmavmagmzvmyxbpnpj";
+    "TUJU19_nlo_1_1" = "0fp4syfjgl0y58hrr3g515j96yp7ncbrnzj1h7i5h3fphxzayhcz";
+    "TUJU19_nlo_208_82" = "16g5fjpa1r6pml6jnmzikwafdc0vgj8j3b0ivjz0bsqxms66msg9";
+    "TUJU19_nlo_27_13" = "1ffipy7g22mjbhy7wpjipfka84k4iw52bni4gw2a6aan5qljlcii";
+    "TUJU19_nlo_2_1" = "1l17drwy3vv8s7g9fdivxs2z6m88h7fpamnr5y0y6nbkh6bja2s6";
+    "TUJU19_nlo_3_2" = "1qm010yjnj9amj2j89v6s5s42q18q8b6md35c9mbv88ibqbsdnvn";
+    "TUJU19_nlo_40_20" = "0xylrincss1ijkfxnk7hl72c1rzpzm14hcarddh9pd57z7i1gv4c";
+    "TUJU19_nlo_4_2" = "0adqxh47pnhgmq9r89wcqaldfrqll5gpjzqncqd5ba8301i3d98m";
+    "TUJU19_nlo_56_26" = "04q8c3gkbxib5fz20f7rwn33sqapcmsj6fwwihi6ca8n1rl6hw6h";
+    "TUJU19_nlo_64_29" = "1yyl70v8s16s2v630wamyfk8lwdw53cbp5hipgwdw1sfs33pj1mj";
+    "TUJU19_nlo_7_3" = "17qfnf8bv6c5q6xkl68c6n1gxp81gang5w71gvn9m5d6pn2wiicj";
+    "TUJU19_nnlo_119_50" = "186fja2z84csh6zsp0lpy5mch5swmwaf7mvq8kf073jxlrkrws42";
+    "TUJU19_nnlo_12_6" = "0k5q6a8jidhmnjgll1l71dxx85lzd7w4v9bsmi42qladkd71vblv";
+    "TUJU19_nnlo_131_54" = "0inwqb1v390xkjzhc7gy4hng07jzbbhpq99f4zpkzx115xs57l74";
+    "TUJU19_nnlo_197_79" = "09c9b1kqzw28rqgxfxq2mvwna8yb6f2y90332f05jpvfk3mmr7n2";
+    "TUJU19_nnlo_1_1" = "0qmvcbsyi333b9dd42xjdq62a7dfa3hvfcbk48fg4m179mzhp588";
+    "TUJU19_nnlo_208_82" = "1xpwnl342g8ahhp3lm7p2xhzlx5qzhjvz6g1w1nqrd818w3994zn";
+    "TUJU19_nnlo_27_13" = "18fsbp1nh4zx2wgg9r7ian0mvhvf4y8ssqv33vqvn0vwk7gqw7jf";
+    "TUJU19_nnlo_2_1" = "1p0b74w1a9906lqbxbc8dkk5bcdhnbqc82lnhsr4qfi8sxih2l9i";
+    "TUJU19_nnlo_3_2" = "132w4cv8r7958sad6jakfppsywifwzzacsfyn81qvv76xzc2hm3w";
+    "TUJU19_nnlo_40_20" = "0fkbwxh0smj1icjfn58fsfh52ny35pmqjs7cs3qnw6dk5p95qx6k";
+    "TUJU19_nnlo_4_2" = "12vm0dl8ylz38zzi6rsyy24h3yg30nq6l464nl5fr6jdkvkbz2f0";
+    "TUJU19_nnlo_56_26" = "1kqc6v6qq6wl3nls31gn5nrzwfl9kshm2bbak771c3xvjsgvjpdy";
+    "TUJU19_nnlo_64_29" = "166k8swsysr7x5rgivi6k04q4p8njb2ny7xj7xjqhkgxrznc8jzq";
+    "TUJU19_nnlo_7_3" = "0q9vswr0s3k15abghx3cccf1ays0601n1438pwqgd5xz8981ngm5";
     "abkm09_3_nlo" = "0h268l7j1zkxm2nacari10f86lpha511xhgrg0q9r8hc47sw2vxs";
     "abkm09_3_nnlo" = "1gzhvblckskscql53pfxp79qclhhhhm45sqjhc9jrm1bp3x52w8i";
     "abkm09_4_nlo" = "0yq3gy0qgnk5dh0hh3ldrf5bqzx5wpkhw509nvz5arlh0bfwhyg4";
@@ -736,6 +917,7 @@ in
     "abm12lhc_4_nnlo" = "1hciv1z9b5fiz7swv21gr0rshijj9yj2n8x4l54v9g0jyd061jaz";
     "abm12lhc_5_nnlo" = "00xxkrhbfkxhg33mkpwwk5nsdp4nmi0zmllx5z5ygxl24rinsq9j";
     "cteq6" = "0lp110wldhliad354v29f0rhdzf5qrs1ibklj0cmzp2rcbp8zrix";
+    "cteq61" = "14hbc855b3wsjk7ypg86md46cjm1bj7n4hins9nr8kgzs69i6vss";
     "cteq66" = "09i69ac3gkrai5jmazjyjvi5sl8k2vm48m90ijn6pl24p31qf68y";
     "cteq6l1" = "1b5m7g7wawk72h76l9yr3gx3n67jggna1004lwffvj43gffwkjap";
     "nCTEQ15FullNuc_108_54" = "107klcpsr9d4dwavcqqs3849k90mdb3bdjam3pd79cmsy7ncr2hf";
@@ -830,4 +1012,56 @@ in
     "nCTEQ15np_7_3" = "0ndqi05g88b769p1chfc6maz6wvs33rx45r4k8f68n79yy6kvrh1";
     "nCTEQ15np_84_42" = "0v968jw1m9ky1mh82w1bjidvg7r7cx23bnpv0vr4c1kqz0n5hb5s";
     "nCTEQ15np_9_4" = "0akxbyrs4y8gmnjiwma8z8ryrzmaw6dj148iq7ihsllwar3hp3p0";
+    "nNNPDF10_nlo_as_0118_Ag108" = "1xqhzgvkicxd9wy4lnhqw6brsksxqsq429r6bb0ghn1ll5ln4qzx";
+    "nNNPDF10_nlo_as_0118_Al27" = "0z836h7a5abbwq988zdvvf8yhr92krzzmys6lkkgkcffdf2pc0zq";
+    "nNNPDF10_nlo_as_0118_Au197" = "1f6vn6n0zz8wml8zn7n2n6wj5y41yanw9b9av51m5kiq4n1r9lrk";
+    "nNNPDF10_nlo_as_0118_Be9" = "1jy2cix4gkx648dypdqfj7xi8gdlflh20xlasmwl78av5j7s7rs5";
+    "nNNPDF10_nlo_as_0118_C12" = "1c6fvp82cs3464akqf0skrqpcvyp75yqp39zxafzgbqd4wc3pv9f";
+    "nNNPDF10_nlo_as_0118_Ca40" = "0r903a01085yhfagnljvjaqfn190r3q0ggvx87kh54xsbv1wkvbl";
+    "nNNPDF10_nlo_as_0118_Cu64" = "1vq8a6drcp606fkx8mml2qq37if59cakmcq73y4n7c7swp6q51r3";
+    "nNNPDF10_nlo_as_0118_D2" = "07kjzhyh6n6723h2fylgwm7w7ljxz4m6fs9bgwjxp987i00msrra";
+    "nNNPDF10_nlo_as_0118_Fe56" = "1smkjmymykhlp0vvlpsp6p6p44pw5aa705sw9lcyxmg8ccy9kmpj";
+    "nNNPDF10_nlo_as_0118_He4" = "0mdxsh41m0vzcdq4axvz81m9ra0p6dff88k09gjb4adx9vv52mjc";
+    "nNNPDF10_nlo_as_0118_Li6" = "1hrryxhhg9xxg817brrd39k5wz6iq1fv6z8sdabrpxn0nwr1bj7r";
+    "nNNPDF10_nlo_as_0118_N1" = "01h7g4w3nc09jyi7g8j5yx2yzqair3ysbx9rx244k1rjx6jppian";
+    "nNNPDF10_nlo_as_0118_N14" = "1ny3znivkkl7xhdw8pxkdadwc957236rh60wviiyw4cdqjb6a3iq";
+    "nNNPDF10_nlo_as_0118_Pb208" = "066w59xm6lkwrm3glssc6n3qyvv38mx47mkx39p8z9r2spb8igks";
+    "nNNPDF10_nlo_as_0118_Sn119" = "1mqx7wj095v0799wxbvfxvb6bl1qh5wdkf14a8gqsj0f5qjnpmyw";
+    "nNNPDF10_nlo_as_0118_Xe131" = "0mz9fgxfyx1asi2vxs1xfwn8z51z08naiq1ycl77f4yp6wim6s54";
+    "nNNPDF10_nnlo_as_0118_Ag108" = "08vy16fskrvc62y3h0hsikmi6q86njwfm2msmajxbd7vzcv5wkkn";
+    "nNNPDF10_nnlo_as_0118_Al27" = "0vm95lawgsncsx10ypy99746sz34y6shblkj9pgn6si2cy8gpcwp";
+    "nNNPDF10_nnlo_as_0118_Au197" = "0b3ld033f2hwjaqp5p5pzmmzfid8hl416a1q8fc0zmd2lfiamsac";
+    "nNNPDF10_nnlo_as_0118_Be9" = "10skffir8hqfv2wj01ghc14lfs516kmh59q3v48nw3a724kxr93a";
+    "nNNPDF10_nnlo_as_0118_C12" = "12rrpcq9bvwcncj1hk28wkym5zzdjkf0d0pdj1nx9asm6vpbjsdv";
+    "nNNPDF10_nnlo_as_0118_Ca40" = "0k914fnqsv45f16s6zmdwbnbnhj5lxnrk9pbnnaap4vk7vx7101j";
+    "nNNPDF10_nnlo_as_0118_Cu64" = "137n1nsq75g0n4hmbqfl1gihngfrz0rqd2gwj24m5byhbylwlg83";
+    "nNNPDF10_nnlo_as_0118_D2" = "0xa17gjjh0mphg1h711vb6p2pjln0lqy7401lamnib2z7p7mss0m";
+    "nNNPDF10_nnlo_as_0118_Fe56" = "0h0qwbckdcppqgbhfy3kyy9p4nryh3p45sjmlxhm94mlznipjwrd";
+    "nNNPDF10_nnlo_as_0118_He4" = "022h44i8k2ybvm9lkgc4lkcv4z7r0xzlrq2bxyqkfmpp5fpp7gkw";
+    "nNNPDF10_nnlo_as_0118_Li6" = "11bci8mnv57a583ayrpvvnz4lsxz43z23iqgqjc3b3rychgiz57a";
+    "nNNPDF10_nnlo_as_0118_N1" = "174gscxa2acqpgf2mks5xpim1jcpb0vg76pggxazm376vyyjk883";
+    "nNNPDF10_nnlo_as_0118_N14" = "1g2gwnbfzlfa094px1rnjgk8py8qzwq7bi68n7p49bqjj88km3av";
+    "nNNPDF10_nnlo_as_0118_Pb208" = "0bdi3z36ckf788v3ld3ngvchyxzsxcfl9fj7rzs2lwkg80rclgd9";
+    "nNNPDF10_nnlo_as_0118_Sn119" = "0k7lnr1ils38sqybipmf13n582wb0cf9rr288ibrbmx15rkk5c3w";
+    "nNNPDF10_nnlo_as_0118_Xe131" = "17k1afk6j53nl83ixyy6nyds3wy5agacdyn62bwp7ykfs8x97s4n";
+    "nNNPDF20_nlo_as_0118_Ag108" = "1fb2h6752vn0v66h12dhhk2izxjs4b10mdqx17djrvpkzl97hf8d";
+    "nNNPDF20_nlo_as_0118_Al27" = "1lfkg84hf0chgk0qzp45ch23pzjixkzxxh3x7xphcmnpri4cgl3r";
+    "nNNPDF20_nlo_as_0118_Au197" = "08ll61b96iggm1qnr9q2qdzyxasxn9mlshnxz7kzigfsnqqnkfbw";
+    "nNNPDF20_nlo_as_0118_Be9" = "1g4vlr9p6i6n87bx6w2i5d4qkhymldkyxj1i2qnl8v467vhsz6la";
+    "nNNPDF20_nlo_as_0118_C12" = "15366p04rh31nnd6zxcmcs9ki5fwzn8d8cvzms45apnw928k6pqn";
+    "nNNPDF20_nlo_as_0118_Ca40" = "1abxkr4r5psi6n8rrsbf97gwwkh1dg9jqfd46hn2725r22c6k8l4";
+    "nNNPDF20_nlo_as_0118_Cu64" = "1nkkiwx22b649pmyfykn2ggdq99y985mnkv3fnkm8i43scwbswvb";
+    "nNNPDF20_nlo_as_0118_D2" = "0gvf9qqgr4ixm9cf2654xyvkc624k5ijqwdds61frljlhd49yqm1";
+    "nNNPDF20_nlo_as_0118_Fe56" = "1ci132hc8mpsj0zjr9fichnkapagjs6q9pqli0yzgnnv6l2aih3a";
+    "nNNPDF20_nlo_as_0118_He4" = "1phq7m6lbx87s4whs2xygigq7fz1qhzj3nd9anx5r67w7q99rcad";
+    "nNNPDF20_nlo_as_0118_Li6" = "0pwdqrmivpm0j7hrg6h2qqshpna2vjlslxnz0sd100kc3lfq7xab";
+    "nNNPDF20_nlo_as_0118_N1" = "09y7pd3nnys49w25gb4524x5xkahillvaypjgncbn8n5x1a11nsr";
+    "nNNPDF20_nlo_as_0118_N14" = "0nb3kcmhbyncp9frs27ww550mjl3f7yiahyyrm3aik93ycpm16n7";
+    "nNNPDF20_nlo_as_0118_O16" = "12kfhldvg8gqxjaian14dng6qqc6nikydwcj5jz2i2d1da3dyhgg";
+    "nNNPDF20_nlo_as_0118_Pb208" = "1rwb7vca0y1aj38mz8m3wg07q9hq66qd5j3y6hs9bh0jz6hkifzh";
+    "nNNPDF20_nlo_as_0118_Sn119" = "1dan86ckd5padipp4x12x8msfg5p97b8hwxm78gfyf88kq725m6z";
+    "nNNPDF20_nlo_as_0118_W184" = "1g0br4gdrb2vzwmqhgj5778a6vl0lykc4ymylibxlqbqrhf8j89b";
+    "nNNPDF20_nlo_as_0118_Xe131" = "1a62qi3qy5kli9q80p2w80mj5v3ps2g6p40zxlgm65q5mphkx1qi";
+    "xFitterPI_NLO_EIG" = "1v6mfhmcrmdvica0wlc2ilfca1srxc7vjyli113wjvpd7wfpnvj5";
+    "xFitterPI_NLO_VAR" = "09mlsww89hhm2s96rlkqbkfwwf9qkblw7n3nnrgas6l1kn2hxq1i";
   }
diff --git a/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix b/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
index ce905bff17c5..44065904d991 100644
--- a/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fastjet, fastjet-contrib, ghostscript, gsl, hepmc, imagemagick, less, python3, rsync, texlive, yoda, which, makeWrapper }:
+{ lib, stdenv, fetchurl, fetchpatch, fastjet, fastjet-contrib, ghostscript, hepmc, imagemagick, less, python3, rsync, texlive, yoda, which, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "rivet";
@@ -11,6 +11,38 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./darwin.patch # configure relies on impure sw_vers to -Dunix
+
+    # fix compilation errors (fails depending on number of cores filesystem ordering?)
+    # https://gitlab.com/hepcedar/rivet/-/merge_requests/220
+    (fetchpatch {
+      url = "https://gitlab.com/hepcedar/rivet/commit/3203bf12a4bef81f880789eb9cde7ff489ae5115.diff";
+      sha256 = "0zn5yxlv6dk4vcqgz0syzb9mp4qc9smpmgshcqimcvii7qcp20mc";
+    })
+    # https://gitlab.com/hepcedar/rivet/-/merge_requests/223
+    (fetchpatch {
+      url = "https://gitlab.com/hepcedar/rivet/commit/476f267c46b126fa163a92aa6cbcb7806c4624c3.diff";
+      sha256 = "0dhkraddzp06v5z0d2wf0c8vsd50hl5pqsjgsrb8x14d0vwi8rnc";
+    })
+
+    # fix for new python and fix transparency gs 9.52
+    # gs 9.52 opacity fix
+    (fetchpatch {
+      url = "https://gitlab.com/hepcedar/rivet/commit/25c4bee19882fc56407b0a438f86e1a11753d5e6.diff";
+      sha256 = "18p2wk54r0qfq6l27z6805zq1z5jhk5sbxbjixgibzq8prj1a78v";
+    })
+
+    # make-plots: fix wrong logic in Plot.set_xmax()
+    (fetchpatch {
+      url = "https://gitlab.com/hepcedar/rivet/commit/d371c6c10cf67a41c0e4e27c16ff5723d6276ad2.diff";
+      sha256 = "0w622rd5darj7qafbbc84blznvy5rnhsdyr2n1i1fkz19mrf5h2p";
+    })
+
+    # fix https://gitlab.com/hepcedar/rivet/-/issues/200
+    (fetchpatch {
+      url = "https://gitlab.com/hepcedar/rivet/commit/442dbd17dcb3bd6e30b26e54c50f6a8237f966f9.diff";
+      includes = [ "bin/make-pgfplots" "bin/make-plots" "bin/make-plots-fast" ];
+      sha256 = "0c3rysgcib49km1zdpgsdai3xi4s6ijqgxp4whn04mrh3qf4bmr3";
+    })
   ];
 
   latex = texlive.combine { inherit (texlive)
@@ -22,6 +54,7 @@ stdenv.mkDerivation rec {
     mathastext
     pgf
     relsize
+    sansmath
     sfmath
     siunitx
     xcolor
diff --git a/nixpkgs/pkgs/development/libraries/physics/thepeg/default.nix b/nixpkgs/pkgs/development/libraries/physics/thepeg/default.nix
index d5a272955f40..ed92889b5b21 100644
--- a/nixpkgs/pkgs/development/libraries/physics/thepeg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/thepeg/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "thepeg";
-  version = "2.2.1";
+  version = "2.2.2";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/thepeg/ThePEG-${version}.tar.bz2";
-    sha256 = "13x5gssv22mpa2w6i0vaalwcr57170vh3b4xrw8mrm3abqhwgav3";
+    sha256 = "0gif4vb9lw2px2qdywqm7x0frbv0h5gq9lq36c50f2hv77a5bgwp";
   };
 
   buildInputs = [ boost fastjet gsl hepmc2 lhapdf rivet zlib ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Toolkit for High Energy Physics Event Generation";
     homepage = "https://herwig.hepforge.org/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ veprbl ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix b/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
index bf53cfcb62c9..3b9057ad31a5 100644
--- a/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yoda";
-  version = "1.8.5";
+  version = "1.9.0";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/yoda/YODA-${version}.tar.bz2";
-    sha256 = "1z9jmabsaddhs003zzq73fpq2absd12rnc2sa5qn45zwf62nnbjc";
+    sha256 = "1x7xi6w7lb92x8202kbaxgqg1sly534wana4f38l3gpbzw9dwmcs";
   };
 
   nativeBuildInputs = with python.pkgs; [ cython makeWrapper ];
@@ -39,7 +39,5 @@ stdenv.mkDerivation rec {
     homepage    = "https://yoda.hepforge.org";
     platforms   = lib.platforms.unix;
     maintainers = with lib.maintainers; [ veprbl ];
-    # https://gitlab.com/hepcedar/yoda/-/issues/24
-    broken      = withRootSupport;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/alsa-profiles-use-libdir.patch b/nixpkgs/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch
index c657d12f7d0c..c657d12f7d0c 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/alsa-profiles-use-libdir.patch
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/pipewire-pulse-path.patch b/nixpkgs/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch
index 6ac86b111eef..4a6b21dd4312 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/pipewire-pulse-path.patch
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch
@@ -1,24 +1,27 @@
 diff --git a/meson_options.txt b/meson_options.txt
-index 4b9e46b8..9d73ed06 100644
+index ce364d93..a6c8af72 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -147,3 +147,6 @@ option('pw-cat',
+@@ -152,6 +152,9 @@ option('udev',
  option('udevrulesdir',
         type : 'string',
         description : 'Directory for udev rules (defaults to /lib/udev/rules.d)')
 +option('pipewire_pulse_prefix',
 +       type : 'string',
-+       description : 'Install directory for the pipewire-pulse daemon')
++       description: 'Install directory for the pipewire-pulse daemon')
+ option('systemd-user-unit-dir',
+        type : 'string',
+        description : 'Directory for user systemd units (defaults to /usr/lib/systemd/user)')
 diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
-index 29fc93d4..f78946f2 100644
+index 0a5e5042..4a70b0b0 100644
 --- a/src/daemon/systemd/user/meson.build
 +++ b/src/daemon/systemd/user/meson.build
-@@ -6,7 +6,7 @@ install_data(
+@@ -9,7 +9,7 @@ install_data(
  
  systemd_config = configuration_data()
  systemd_config.set('PW_BINARY', join_paths(pipewire_bindir, 'pipewire'))
 -systemd_config.set('PW_PULSE_BINARY', join_paths(pipewire_bindir, 'pipewire-pulse'))
 +systemd_config.set('PW_PULSE_BINARY', join_paths(get_option('pipewire_pulse_prefix'), 'bin/pipewire-pulse'))
+ systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(pipewire_bindir, 'pipewire-media-session'))
  
  configure_file(input : 'pipewire.service.in',
-                output : 'pipewire.service',
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch b/nixpkgs/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
new file mode 100644
index 000000000000..a4fb8b41e7a1
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
@@ -0,0 +1,27 @@
+diff --git a/meson_options.txt b/meson_options.txt
+index e2a1e028..310029f2 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -10,6 +10,9 @@ option('media-session',
+        description: 'Build and install pipewire-media-session',
+        type: 'feature',
+        value: 'auto')
++option('media-session-prefix',
++       description: 'Install directory for pipewire-media-session and its support files',
++       type: 'string')
+ option('man',
+        description: 'Build manpages',
+        type: 'feature',
+diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
+index 5c4d1af0..7296220f 100644
+--- a/src/daemon/systemd/user/meson.build
++++ b/src/daemon/systemd/user/meson.build
+@@ -10,7 +10,7 @@ install_data(
+ systemd_config = configuration_data()
+ systemd_config.set('PW_BINARY', join_paths(pipewire_bindir, 'pipewire'))
+ systemd_config.set('PW_PULSE_BINARY', join_paths(get_option('pipewire_pulse_prefix'), 'bin/pipewire-pulse'))
+-systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(pipewire_bindir, 'pipewire-media-session'))
++systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(get_option('media-session-prefix'), 'bin/pipewire-media-session'))
+
+ configure_file(input : 'pipewire.service.in',
+                output : 'pipewire.service',
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/installed-tests-path.patch b/nixpkgs/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch
index 2a92711626bf..cb695fa398ca 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/installed-tests-path.patch
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch
@@ -1,29 +1,29 @@
 diff --git a/meson.build b/meson.build
-index ffee41b4..bab6f019 100644
+index 97d4d939..b17358e5 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -318,8 +318,8 @@ alsa_dep = (get_option('pipewire-alsa')
-     ? dependency('alsa', version : '>=1.1.7')
-     : dependency('', required: false))
- 
+@@ -353,8 +353,8 @@ libinotify_dep = (build_machine.system() == 'freebsd'
+
+ alsa_dep = dependency('alsa', version : '>=1.1.7', required: get_option('pipewire-alsa'))
+
 -installed_tests_metadir = join_paths(pipewire_datadir, 'installed-tests', pipewire_name)
 -installed_tests_execdir = join_paths(pipewire_libexecdir, 'installed-tests', pipewire_name)
 +installed_tests_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', pipewire_name)
 +installed_tests_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', pipewire_name)
- installed_tests_enabled = get_option('installed_tests')
+ installed_tests_enabled = not get_option('installed_tests').disabled()
  installed_tests_template = files('template.test.in')
- 
+
 diff --git a/meson_options.txt b/meson_options.txt
-index f03033c3..32df6c53 100644
+index fba0d647..8c6106cd 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -18,6 +18,9 @@ option('installed_tests',
+@@ -26,6 +26,9 @@ option('installed_tests',
         description: 'Install manual and automated test executables',
-        type: 'boolean',
-        value: false)
+        type: 'feature',
+        value: 'disabled')
 +option('installed_test_prefix',
 +       description: 'Prefix for installed tests',
 +       type: 'string')
  option('gstreamer',
         description: 'Build GStreamer plugins',
-        type: 'boolean',
+        type: 'feature',
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/pipewire-config-dir.patch b/nixpkgs/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch
index ad1ae93684b1..ad1ae93684b1 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/pipewire-config-dir.patch
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/default.nix b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
index fdd45b4bb0d9..47a85c36c23a 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitLab
-, fetchpatch
 , removeReferencesTo
 , meson
 , ninja
@@ -17,15 +16,19 @@
 , udev
 , libva
 , libsndfile
+, SDL2
 , vulkan-headers
 , vulkan-loader
+, ncurses
 , makeFontsConf
 , callPackage
 , nixosTests
+, withMediaSession ? true
 , gstreamerSupport ? true, gst_all_1 ? null
 , ffmpegSupport ? true, ffmpeg ? null
-, bluezSupport ? true, bluez ? null, sbc ? null, libopenaptx ? null, ldacbt ? null
+, bluezSupport ? true, bluez ? null, sbc ? null, libopenaptx ? null, ldacbt ? null, fdk_aac ? null
 , nativeHspSupport ? true
+, nativeHfpSupport ? true
 , ofonoSupport ? true
 , hsphfpdSupport ? true
 }:
@@ -35,112 +38,147 @@ let
     fontDirectories = [];
   };
 
-  mesonBool = b: if b then "true" else "false";
-in
-stdenv.mkDerivation rec {
-  pname = "pipewire";
-  version = "0.3.18";
-
-  outputs = [
-    "out"
-    "lib"
-    "pulse"
-    "jack"
-    "dev"
-    "doc"
-    "installedTests"
-  ];
-
-  src = fetchFromGitLab {
-    domain = "gitlab.freedesktop.org";
-    owner = "pipewire";
-    repo = "pipewire";
-    rev = version;
-    sha256 = "1yghhgs18yqrnd0b2r75l5n8yng962r1wszbsi01v6i9zib3jc9g";
-  };
+  mesonEnable = b: if b then "enabled" else "disabled";
+
+  self = stdenv.mkDerivation rec {
+    pname = "pipewire";
+    version = "0.3.25";
+
+    outputs = [
+      "out"
+      "lib"
+      "pulse"
+      "jack"
+      "dev"
+      "doc"
+      "mediaSession"
+      "installedTests"
+    ];
 
-  patches = [
-    # Break up a dependency cycle between outputs.
-    ./alsa-profiles-use-libdir.patch
-    # Move installed tests into their own output.
-    ./installed-tests-path.patch
-    # Change the path of the pipewire-pulse binary in the service definition.
-    ./pipewire-pulse-path.patch
-    # Add flag to specify configuration directory (different from the installation directory).
-    ./pipewire-config-dir.patch
-  ];
-
-  nativeBuildInputs = [
-    doxygen
-    graphviz
-    meson
-    ninja
-    pkg-config
-  ];
-
-  buildInputs = [
-    alsaLib
-    dbus
-    glib
-    libjack2
-    libsndfile
-    udev
-    vulkan-headers
-    vulkan-loader
-    valgrind
-    systemd
-  ] ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
-  ++ lib.optional ffmpegSupport ffmpeg
-  ++ lib.optionals bluezSupport [ bluez libopenaptx ldacbt sbc ];
-
-  mesonFlags = [
-    "-Ddocs=true"
-    "-Dman=false" # we don't have xmltoman
-    "-Dexamples=true" # only needed for `pipewire-media-session`
-    "-Dudevrulesdir=lib/udev/rules.d"
-    "-Dinstalled_tests=true"
-    "-Dinstalled_test_prefix=${placeholder "installedTests"}"
-    "-Dpipewire_pulse_prefix=${placeholder "pulse"}"
-    "-Dlibjack-path=${placeholder "jack"}/lib"
-    "-Dgstreamer=${mesonBool gstreamerSupport}"
-    "-Dffmpeg=${mesonBool ffmpegSupport}"
-    "-Dbluez5=${mesonBool bluezSupport}"
-    "-Dbluez5-backend-native=${mesonBool nativeHspSupport}"
-    "-Dbluez5-backend-ofono=${mesonBool ofonoSupport}"
-    "-Dbluez5-backend-hsphfpd=${mesonBool hsphfpdSupport}"
-    "-Dpipewire_config_dir=/etc/pipewire"
-  ];
-
-  FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
-
-  doCheck = true;
-
-  postInstall = ''
-    moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse"
-    moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse"
-    moveToOutput "bin/pipewire-pulse" "$pulse"
-  '';
-
-  passthru.tests = {
-    installedTests = nixosTests.installed-tests.pipewire;
-
-    # This ensures that all the paths used by the NixOS module are found.
-    test-paths = callPackage ./test-paths.nix {
-      paths-out = [
-        "share/alsa/alsa.conf.d/50-pipewire.conf"
-      ];
-      paths-lib = [
-        "lib/alsa-lib/libasound_module_pcm_pipewire.so"
-        "share/alsa-card-profile/mixer"
-      ];
+    src = fetchFromGitLab {
+      domain = "gitlab.freedesktop.org";
+      owner = "pipewire";
+      repo = "pipewire";
+      rev = version;
+      hash = "sha256:EbXWcf6QLtbvm6/eXBI+PF2sTw2opYfmc+H/SMDEH1U=";
     };
-  };
 
-  meta = with lib; {
-    description = "Server and user space API to deal with multimedia pipelines";
-    homepage = "https://pipewire.org/";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ jtojnar ];
+    patches = [
+      # Break up a dependency cycle between outputs.
+      ./0040-alsa-profiles-use-libdir.patch
+      # Change the path of the pipewire-pulse binary in the service definition.
+      ./0050-pipewire-pulse-path.patch
+      # Change the path of the pipewire-media-session binary in the service definition.
+      ./0055-pipewire-media-session-path.patch
+      # Move installed tests into their own output.
+      ./0070-installed-tests-path.patch
+      # Add flag to specify configuration directory (different from the installation directory).
+      ./0080-pipewire-config-dir.patch
+    ];
+
+    nativeBuildInputs = [
+      doxygen
+      graphviz
+      meson
+      ninja
+      pkg-config
+    ];
+
+    buildInputs = [
+      alsaLib
+      dbus
+      glib
+      libjack2
+      libsndfile
+      ncurses
+      udev
+      vulkan-headers
+      vulkan-loader
+      valgrind
+      SDL2
+      systemd
+    ] ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
+    ++ lib.optional ffmpegSupport ffmpeg
+    ++ lib.optionals bluezSupport [ bluez libopenaptx ldacbt sbc fdk_aac ];
+
+    mesonFlags = [
+      "-Ddocs=enabled"
+      "-Dman=disabled" # we don't have xmltoman
+      "-Dexamples=${mesonEnable withMediaSession}" # only needed for `pipewire-media-session`
+      "-Dudevrulesdir=lib/udev/rules.d"
+      "-Dinstalled_tests=enabled"
+      "-Dinstalled_test_prefix=${placeholder "installedTests"}"
+      "-Dpipewire_pulse_prefix=${placeholder "pulse"}"
+      "-Dmedia-session-prefix=${placeholder "mediaSession"}"
+      "-Dlibjack-path=${placeholder "jack"}/lib"
+      "-Dlibcamera=disabled"
+      "-Dgstreamer=${mesonEnable gstreamerSupport}"
+      "-Dffmpeg=${mesonEnable ffmpegSupport}"
+      "-Dbluez5=${mesonEnable bluezSupport}"
+      "-Dbluez5-backend-hsp-native=${mesonEnable nativeHspSupport}"
+      "-Dbluez5-backend-hfp-native=${mesonEnable nativeHfpSupport}"
+      "-Dbluez5-backend-ofono=${mesonEnable ofonoSupport}"
+      "-Dbluez5-backend-hsphfpd=${mesonEnable hsphfpdSupport}"
+      "-Dpipewire_config_dir=/etc/pipewire"
+    ];
+
+    FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
+
+    doCheck = true;
+
+    postInstall = ''
+      pushd .
+      cd $out
+      mkdir -p $out/nix-support/etc/pipewire
+      for f in etc/pipewire/*.conf; do bin/spa-json-dump "$f" > "$out/nix-support/$f.json"; done
+
+      mkdir -p $mediaSession/nix-support/etc/pipewire/media-session.d
+      for f in etc/pipewire/media-session.d/*.conf; do bin/spa-json-dump "$f" > "$mediaSession/nix-support/$f.json"; done
+      popd
+
+      moveToOutput "etc/pipewire/media-session.d/*.conf" "$mediaSession"
+      moveToOutput "share/systemd/user/pipewire-media-session.*" "$mediaSession"
+      moveToOutput "lib/systemd/user/pipewire-media-session.*" "$mediaSession"
+      moveToOutput "bin/pipewire-media-session" "$mediaSession"
+
+      moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse"
+      moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse"
+      moveToOutput "bin/pipewire-pulse" "$pulse"
+    '';
+
+    passthru.tests = {
+      installedTests = nixosTests.installed-tests.pipewire;
+
+      # This ensures that all the paths used by the NixOS module are found.
+      test-paths = callPackage ./test-paths.nix {
+        paths-out = [
+          "share/alsa/alsa.conf.d/50-pipewire.conf"
+          "nix-support/etc/pipewire/client.conf.json"
+          "nix-support/etc/pipewire/client-rt.conf.json"
+          "nix-support/etc/pipewire/jack.conf.json"
+          "nix-support/etc/pipewire/pipewire.conf.json"
+          "nix-support/etc/pipewire/pipewire-pulse.conf.json"
+        ];
+        paths-out-media-session = [
+          "nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json"
+          "nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json"
+          "nix-support/etc/pipewire/media-session.d/media-session.conf.json"
+          "nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json"
+        ];
+        paths-lib = [
+          "lib/alsa-lib/libasound_module_pcm_pipewire.so"
+          "share/alsa-card-profile/mixer"
+        ];
+      };
+    };
+
+    meta = with lib; {
+      description = "Server and user space API to deal with multimedia pipelines";
+      homepage = "https://pipewire.org/";
+      license = licenses.mit;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ jtojnar ];
+    };
   };
-}
+
+in self
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/test-paths.nix b/nixpkgs/pkgs/development/libraries/pipewire/test-paths.nix
index 0ae693741946..11d00e7c2ca1 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/test-paths.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/test-paths.nix
@@ -14,6 +14,7 @@ let
 in runCommand "pipewire-test-paths" { } ''
   touch $out
 
+  ${check-output pipewire.mediaSession paths-out-media-session}
   ${check-output pipewire.lib paths-lib}
   ${check-output pipewire paths-out}
 
diff --git a/nixpkgs/pkgs/development/libraries/pmix/default.nix b/nixpkgs/pkgs/development/libraries/pmix/default.nix
index bb8debbce916..b7adc3d2a423 100644
--- a/nixpkgs/pkgs/development/libraries/pmix/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pmix/default.nix
@@ -3,7 +3,7 @@
 } :
 
 let
-  version = "3.2.2";
+  version = "3.2.3";
 
 in stdenv.mkDerivation {
   pname = "pmix";
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
     repo = "openpmix";
     owner = "openpmix";
     rev = "v${version}";
-    sha256 = "1rf82z7h76366qknkmralmslsfmihv0r3ymhbgk1axq97ic3g4d7";
+    sha256 = "sha256-w3j4zgEAn6RxIHAvy0B3MPFTV46ocCvc0Z36tN1T+rc=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/polkit-qt-1/default.nix b/nixpkgs/pkgs/development/libraries/polkit-qt-1/default.nix
new file mode 100644
index 000000000000..86ef2af96e7c
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/polkit-qt-1/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, lib
+, mkDerivation
+, fetchurl
+, cmake
+, pkg-config
+, polkit
+, glib
+, pcre
+, libselinux
+, libsepol
+, util-linux
+}:
+
+mkDerivation rec {
+  pname = "polkit-qt-1";
+  version = "0.113.0";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-W4ZqKVTvEP+2YVbi/orQMhtVKKjfLkqRsC9QQc5VY6c=";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [
+    glib
+    pcre
+    polkit
+  ] ++ lib.optionals stdenv.isLinux [ libselinux libsepol util-linux ];
+
+  meta = with lib; {
+    description = "A Qt wrapper around PolKit";
+    maintainers = with maintainers; [ ttuegel ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/polkit-qt-1/qt-4.nix b/nixpkgs/pkgs/development/libraries/polkit-qt-1/qt-4.nix
deleted file mode 100644
index 0da6e15eb274..000000000000
--- a/nixpkgs/pkgs/development/libraries/polkit-qt-1/qt-4.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, polkit, automoc4, glib, qt4 }:
-
-with lib;
-
-stdenv.mkDerivation {
-  name = "polkit-qt-1-qt4-0.112.0";
-
-  src = fetchurl {
-    url = "mirror://kde/stable/apps/KDE4.x/admin/polkit-qt-1-0.112.0.tar.bz2";
-    sha256 = "1ip78x20hjqvm08kxhp6gb8hf6k5n6sxyx6kk2yvvq53djzh7yv7";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ cmake pkg-config automoc4 ];
-
-  propagatedBuildInputs = [ polkit glib qt4 ];
-
-  postFixup =
-    ''
-      for i in $dev/lib/cmake/*/*.cmake; do
-        echo "fixing $i"
-        substituteInPlace $i \
-          --replace "\''${PACKAGE_PREFIX_DIR}/lib" $out/lib
-      done
-    '';
-
-  meta = with lib; {
-    description = "A Qt wrapper around PolKit";
-    maintainers = [ maintainers.ttuegel ];
-    platforms = platforms.linux;
-    license = licenses.lgpl21;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/polkit-qt-1/qt-5.nix b/nixpkgs/pkgs/development/libraries/polkit-qt-1/qt-5.nix
deleted file mode 100644
index be425b394019..000000000000
--- a/nixpkgs/pkgs/development/libraries/polkit-qt-1/qt-5.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, polkit, glib, qtbase }:
-
-with lib;
-
-stdenv.mkDerivation {
-  name = "polkit-qt-1-qt5-0.112.0";
-
-  outputs = [ "out" "dev" ];
-
-  src = fetchurl {
-    url = "mirror://kde/stable/apps/KDE4.x/admin/polkit-qt-1-0.112.0.tar.bz2";
-    sha256 = "1ip78x20hjqvm08kxhp6gb8hf6k5n6sxyx6kk2yvvq53djzh7yv7";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-
-  propagatedBuildInputs = [ polkit glib qtbase ];
-
-  postFixup = ''
-    # Fix library location in CMake module
-    sed -i "$dev/lib/cmake/PolkitQt5-1/PolkitQt5-1Config.cmake" \
-        -e "s,\\(set_and_check.POLKITQT-1_LIB_DIR\\).*$,\\1 \"''${!outputLib}/lib\"),"
-  '';
-
-  meta = {
-    description = "A Qt wrapper around PolKit";
-    maintainers = with lib.maintainers; [ ttuegel ];
-    platforms = with lib.platforms; linux;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/poppler/0.61.nix b/nixpkgs/pkgs/development/libraries/poppler/0.61.nix
index a49bfad7ab31..9b89283972dd 100644
--- a/nixpkgs/pkgs/development/libraries/poppler/0.61.nix
+++ b/nixpkgs/pkgs/development/libraries/poppler/0.61.nix
@@ -53,6 +53,8 @@ stdenv.mkDerivation rec {
     (mkFlag qt5Support "QT5")
   ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://poppler.freedesktop.org/";
     description = "A PDF rendering library";
diff --git a/nixpkgs/pkgs/development/libraries/poppler/default.nix b/nixpkgs/pkgs/development/libraries/poppler/default.nix
index 3f2b8453d7f0..fd2a8ab92cfa 100644
--- a/nixpkgs/pkgs/development/libraries/poppler/default.nix
+++ b/nixpkgs/pkgs/development/libraries/poppler/default.nix
@@ -12,11 +12,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "poppler-${suffix}-${version}";
-  version = "20.12.1"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
+  version = "21.02.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
 
   src = fetchurl {
     url = "${meta.homepage}/poppler-${version}.tar.xz";
-    sha256 = "0dbv1y9i5ahg6namz6gw2d0njnmrigr4a80dbxvnqad4q232banh";
+    sha256 = "sha256-XBR1nJmJHm5HKs7W1fD/Haz4XYDNkCbTZcVcZT7feSw=";
   };
 
   outputs = [ "out" "dev" ];
@@ -38,6 +38,8 @@ stdenv.mkDerivation rec {
     sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt
   '';
 
+  dontWrapQtApps = true;
+
   cmakeFlags = [
     (mkFlag true "UNSTABLE_API_ABI_HEADERS") # previously "XPDF_HEADERS"
     (mkFlag (!minimal) "GLIB")
diff --git a/nixpkgs/pkgs/development/libraries/popt/default.nix b/nixpkgs/pkgs/development/libraries/popt/default.nix
index 393ef2c2c33a..92c143f24176 100644
--- a/nixpkgs/pkgs/development/libraries/popt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/popt/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "popt";
-  version = "1.16";
+  version = "1.18";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/p/popt/popt_${version}.orig.tar.gz";
-    sha256 = "1j2c61nn2n351nhj4d25mnf3vpiddcykq005w2h6kw79dwlysa77";
+    sha256 = "1lf5zlj5rbg6s4bww7hbhpca97prgprnarx978vcwa0bl81vqnai";
   };
 
   patches = lib.optionals stdenv.isCygwin [
diff --git a/nixpkgs/pkgs/development/libraries/prime-server/default.nix b/nixpkgs/pkgs/development/libraries/prime-server/default.nix
new file mode 100644
index 000000000000..4f30a9f005c9
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/prime-server/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config
+, curl, zeromq, czmq, libsodium }:
+
+stdenv.mkDerivation rec {
+  pname = "prime-server";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "kevinkreiser";
+    repo = "prime_server";
+    rev = version;
+    sha256 = "0izmmvi3pvidhlrgfpg4ccblrw6fil3ddxg5cfxsz4qbh399x83w";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ curl zeromq czmq libsodium ];
+
+  # https://github.com/kevinkreiser/prime_server/issues/95
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=unused-variable" ];
+
+  meta = with lib; {
+    description = "Non-blocking (web)server API for distributed computing and SOA based on zeromq";
+    homepage = "https://github.com/kevinkreiser/prime_server";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.Thra11 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/protobuf/3.15.nix b/nixpkgs/pkgs/development/libraries/protobuf/3.15.nix
new file mode 100644
index 000000000000..63e175d98038
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/protobuf/3.15.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... }:
+
+callPackage ./generic-v3.nix {
+  version = "3.15.5";
+  sha256 = "1znxzy4illsr4a08642h6s83jawzrq40m6pzkp05q0cpm8hcpvda";
+}
diff --git a/nixpkgs/pkgs/development/libraries/protobuf/generic-v3.nix b/nixpkgs/pkgs/development/libraries/protobuf/generic-v3.nix
index f31a7868d5ec..6867940d1f23 100644
--- a/nixpkgs/pkgs/development/libraries/protobuf/generic-v3.nix
+++ b/nixpkgs/pkgs/development/libraries/protobuf/generic-v3.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
-, autoreconfHook, zlib, gmock, buildPackages
+, autoreconfHook, zlib, gtest, buildPackages
 , version, sha256
 , ...
 }:
@@ -20,8 +20,8 @@ mkProtobufDerivation = buildProtobuf: stdenv: stdenv.mkDerivation {
 
   postPatch = ''
     rm -rf gmock
-    cp -r ${gmock.src}/googlemock gmock
-    cp -r ${gmock.src}/googletest googletest
+    cp -r ${gtest.src}/googlemock gmock
+    cp -r ${gtest.src}/googletest googletest
     chmod -R a+w gmock
     chmod -R a+w googletest
     ln -s ../googletest gmock/gtest
diff --git a/nixpkgs/pkgs/development/libraries/protolock/default.nix b/nixpkgs/pkgs/development/libraries/protolock/default.nix
index ef1fa6efec7b..7d423ac03470 100644
--- a/nixpkgs/pkgs/development/libraries/protolock/default.nix
+++ b/nixpkgs/pkgs/development/libraries/protolock/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "protolock";
-  version = "0.15.1";
+  version = "0.15.2";
 
   src = fetchFromGitHub {
     owner = "nilslice";
     repo = "protolock";
     rev = "v${version}";
-    sha256 = "sha256-rnsHVJHFE/8JIOfMWqGBfIbIuOFyHtT54Vu/DaRY9js=";
+    sha256 = "sha256-cKrG8f8cabuGDN1gmBYleXcBqeJksdREiEy63UK/6J0=";
   };
 
   vendorSha256 = "sha256-3kRGLZgYcbUQb6S+NrleMNNX0dXrE9Yer3vvqxiP4So=";
diff --git a/nixpkgs/pkgs/development/libraries/pupnp/default.nix b/nixpkgs/pkgs/development/libraries/pupnp/default.nix
index 150005646379..de62bde18771 100644
--- a/nixpkgs/pkgs/development/libraries/pupnp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pupnp/default.nix
@@ -1,20 +1,33 @@
-{ fetchFromGitHub, lib, stdenv, autoreconfHook, pkg-config }:
+{ fetchFromGitHub
+, lib
+, stdenv
+, cmake
+}:
 
 stdenv.mkDerivation rec {
   pname = "libupnp";
-  version = "1.14.0";
+  version = "1.14.4";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
     owner = "mrjimenez";
     repo = "pupnp";
     rev = "release-${version}";
-    sha256 = "1wp9sz2ld4g6ak9v59i3s5mbsraxsphi9k91vw9xgrbzfmg8w0a6";
+    sha256 = "sha256-4VuTbcEjr9Ffrowb3eOtXFU8zPNu1NXS531EOZpI07A=";
   };
-  outputs = [ "dev" "out" ];
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  nativeBuildInputs = [
+    cmake
+  ];
 
-  hardeningDisable = [ "fortify" ];
+  postPatch = ''
+    # Wrong paths in pkg-config file generated by CMake
+    # https://github.com/pupnp/pupnp/pull/205/files#r588946478
+    substituteInPlace CMakeLists.txt \
+      --replace '\''${exec_prefix}/' "" \
+      --replace '\''${prefix}/' ""
+  '';
 
   meta = {
     description = "An open source UPnP development kit for Linux";
@@ -26,9 +39,9 @@ stdenv.mkDerivation rec {
       UPnP Device Architecture Specification.
     '';
 
-    license = "BSD-style";
+    license = lib.licenses.bsd3;
 
-    homepage = "http://pupnp.sourceforge.net/";
+    homepage = "https://pupnp.github.io/pupnp/";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/pxlib/default.nix b/nixpkgs/pkgs/development/libraries/pxlib/default.nix
index 3acaf8bac157..4b6b9ada7ab7 100644
--- a/nixpkgs/pkgs/development/libraries/pxlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pxlib/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     description = "Library to read and write Paradox files";
     homepage = "http://pxlib.sourceforge.net/";
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.winpat ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/pyotherside/default.nix b/nixpkgs/pkgs/development/libraries/pyotherside/default.nix
index 58d38651a760..da327ae13fac 100644
--- a/nixpkgs/pkgs/development/libraries/pyotherside/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pyotherside/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
     python3 qtbase qtquickcontrols qtsvg ncurses
   ];
 
+  dontWrapQtApps = true;
+
   patches = [ ./qml-path.patch ];
   installTargets = [ "sub-src-install_subtargets" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/python-qt/default.nix b/nixpkgs/pkgs/development/libraries/python-qt/default.nix
index bd778f1a945d..2be89b3b7534 100644
--- a/nixpkgs/pkgs/development/libraries/python-qt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/python-qt/default.nix
@@ -13,15 +13,17 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "all" ];
 
-  nativeBuildInputs = [ qmake qtwebengine  qtxmlpatterns qttools ];
+  nativeBuildInputs = [ qmake qtwebengine qtxmlpatterns qttools unzip ];
 
-  buildInputs = [ python unzip ];
+  buildInputs = [ python ];
 
   qmakeFlags = [ "PythonQt.pro"
                  "INCLUDEPATH+=${python}/include/python3.6"
                  "PYTHON_PATH=${python}/bin"
                  "PYTHON_LIB=${python}/lib"];
 
+  dontWrapQtApps = true;
+
   unpackCmd = "unzip $src";
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix b/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix
index d1b545884b53..e53404557fba 100644
--- a/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl qtbase ];
   nativeBuildInputs = [ cmake pkg-config ];
 
+  dontWrapQtApps = true;
+
   # Without this patch cmake fails with a "No known features for CXX compiler"
   # error on darwin
   patches = lib.optional stdenv.isDarwin ./move-project.patch ;
diff --git a/nixpkgs/pkgs/development/libraries/qmlbox2d/default.nix b/nixpkgs/pkgs/development/libraries/qmlbox2d/default.nix
index 88c945430451..f5257ad0e8ef 100644
--- a/nixpkgs/pkgs/development/libraries/qmlbox2d/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qmlbox2d/default.nix
@@ -9,6 +9,7 @@ stdenv.mkDerivation {
   };
 
   enableParallelBuilding = true;
+  dontWrapQtApps = true;
   nativeBuildInputs = [ qmake ];
 
   buildInputs = [ qtdeclarative ];
diff --git a/nixpkgs/pkgs/development/libraries/qmltermwidget/default.nix b/nixpkgs/pkgs/development/libraries/qmltermwidget/default.nix
index 75f95a53800a..7914af08df6d 100644
--- a/nixpkgs/pkgs/development/libraries/qmltermwidget/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qmltermwidget/default.nix
@@ -32,6 +32,8 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   meta = {
     description = "A QML port of qtermwidget";
     homepage = "https://github.com/Swordfish90/qmltermwidget";
diff --git a/nixpkgs/pkgs/development/libraries/qoauth/default.nix b/nixpkgs/pkgs/development/libraries/qoauth/default.nix
index 8afa19c229fa..2b0be6f0b3dd 100644
--- a/nixpkgs/pkgs/development/libraries/qoauth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qoauth/default.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation {
   NIX_CFLAGS_COMPILE = "-I${qca-qt5}/include/Qca-qt5/QtCrypto";
   NIX_LDFLAGS = "-lqca-qt5";
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Qt library for OAuth authentication";
     inherit (qtbase.meta) platforms;
diff --git a/nixpkgs/pkgs/development/libraries/qpdf/default.nix b/nixpkgs/pkgs/development/libraries/qpdf/default.nix
index 4d9e91157243..e00694958f5a 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 = "10.1.0";
+  version = "10.3.1";
 
   src = fetchFromGitHub {
     owner = "qpdf";
     repo = "qpdf";
     rev = "release-qpdf-${version}";
-    sha256 = "sha256-abPT1u/ceBrE1U+omOHiU3UjLrmcpdSpe1vgar0wUGk=";
+    sha256 = "sha256-iZUJjr9e+d90XA8YEFFwyRR0HjgPgBi6V5gIpVQMcV8=";
   };
 
   nativeBuildInputs = [ perl ];
diff --git a/nixpkgs/pkgs/development/libraries/qscintilla/default.nix b/nixpkgs/pkgs/development/libraries/qscintilla/default.nix
index 26a3c2e36d3b..314bdabdb558 100644
--- a/nixpkgs/pkgs/development/libraries/qscintilla/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qscintilla/default.nix
@@ -35,6 +35,7 @@ in stdenv.mkDerivation rec {
   '';
 
   enableParallelBuilding = true;
+  dontWrapQtApps = true;
 
   postPatch = ''
     substituteInPlace qscintilla.pro \
diff --git a/nixpkgs/pkgs/development/libraries/qt-3/builder.sh b/nixpkgs/pkgs/development/libraries/qt-3/builder.sh
deleted file mode 100644
index 460ae17766af..000000000000
--- a/nixpkgs/pkgs/development/libraries/qt-3/builder.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-source $stdenv/setup
-
-
-preConfigure() {
-
-    # Patch some of the configure files a bit to get of global paths.
-    # (Buildings using stuff in those paths will fail anyway, but it
-    # will cause ./configure misdetections).
-    for i in config.tests/unix/checkavail config.tests/*/*.test mkspecs/*/qmake.conf; do
-        echo "patching $i..."
-        substituteInPlace "$i" \
-            --replace " /lib" " /FOO" \
-            --replace "/usr" "/FOO"
-    done
-}
-
-
-# !!! TODO: -system-libmng
-configureFlags="-prefix $out $configureFlags"
-dontAddPrefix=1
-
-configureScript=configureScript
-configureScript() {
-    echo yes | ./configure $configureFlags
-    export LD_LIBRARY_PATH=$(pwd)/lib
-}
-
-
-postInstall() {
-    # Qt's `make install' is broken; it copies ./bin/qmake, which
-    # is a symlink to ./qmake/qmake.  So we end up with a dangling
-    # symlink.
-    rm $out/bin/qmake
-    cp -p qmake/qmake $out/bin
-}
-
-
-genericBuild
diff --git a/nixpkgs/pkgs/development/libraries/qt-3/default.nix b/nixpkgs/pkgs/development/libraries/qt-3/default.nix
deleted file mode 100644
index b2d818a2972d..000000000000
--- a/nixpkgs/pkgs/development/libraries/qt-3/default.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ lib, stdenv, fetchurl
-, xftSupport ? true, libXft ? null
-, xrenderSupport ? true, libXrender ? null
-, xrandrSupport ? true, libXrandr ? null
-, xineramaSupport ? true, libXinerama ? null
-, cursorSupport ? true, libXcursor ? null
-, threadSupport ? true
-, mysqlSupport ? false, libmysqlclient ? null
-, libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
-, openglSupport ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
-, libGL ? null, libGLU ? null, libXmu ? null
-, xlibsWrapper, xorgproto, zlib, libjpeg, libpng, which
-}:
-
-assert xftSupport -> libXft != null;
-assert xrenderSupport -> xftSupport && libXrender != null;
-assert xrandrSupport -> libXrandr != null;
-assert cursorSupport -> libXcursor != null;
-assert mysqlSupport -> libmysqlclient != null;
-assert openglSupport -> libGL != null && libGLU != null && libXmu != null;
-
-stdenv.mkDerivation {
-  name = "qt-3.3.8";
-
-  builder = ./builder.sh;
-
-  setupHook = ./setup-hook.sh;
-
-  src = fetchurl {
-    url = "http://download.qt.io/archive/qt/3/qt-x11-free-3.3.8.tar.bz2";
-    sha256 = "0jd4g3bwkgk2s4flbmgisyihm7cam964gzb3pawjlkhas01zghz8";
-  };
-
-  nativeBuildInputs = [ which ];
-  propagatedBuildInputs = [libpng xlibsWrapper libXft libXrender zlib libjpeg];
-
-  hardeningDisable = [ "format" ];
-
-  configureFlags = let
-    mk = cond: name: "-${lib.optionalString (!cond) "no-"}${name}";
-  in [
-    "-v"
-    "-system-zlib" "-system-libpng" "-system-libjpeg"
-    "-qt-gif"
-    "-I${xorgproto}/include"
-    (mk threadSupport "thread")
-    (mk xrenderSupport "xrender")
-    (mk xrandrSupport "xrandr")
-    (mk xineramaSupport "xinerama")
-    (mk xrandrSupport "xrandr")
-    (mk xftSupport "xft")
-  ] ++ lib.optionals openglSupport [
-    "-dlopen-opengl"
-    "-L${libGL}/lib" "-I${libGLU}/include"
-    "-L${libXmu.out}/lib" "-I${libXmu.dev}/include"
-  ] ++ lib.optionals xrenderSupport [
-    "-L${libXrender.out}/lib" "-I${libXrender.dev}/include"
-  ] ++ lib.optionals xrandrSupport [
-    "-L${libXrandr.out}/lib" "-I${libXrandr.dev}/include"
-  ] ++ lib.optionals xineramaSupport [
-    "-L${libXinerama.out}/lib" "-I${libXinerama.dev}/include"
-  ] ++ lib.optionals cursorSupport [
-    "-L${libXcursor.out}/lib -I${libXcursor.dev}/include"
-  ] ++ lib.optionals mysqlSupport [
-    "-qt-sql-mysql" "-L${libmysqlclient}/lib/mysql" "-I${libmysqlclient}/include/mysql"
-  ] ++ lib.optionals xftSupport [
-    "-L${libXft.out}/lib" "-I${libXft.dev}/include"
-    "-L${libXft.freetype.out}/lib" "-I${libXft.freetype.dev}/include"
-    "-L${libXft.fontconfig.lib}/lib" "-I${libXft.fontconfig.dev}/include"
-  ];
-
-  patches = [
-    # Don't strip everything so we can get useful backtraces.
-    ./strip.patch
-
-    # Build on NixOS.
-    ./qt-pwd.patch
-
-    # randr.h and Xrandr.h need not be in the same prefix.
-    ./xrandr.patch
-
-    # Make it build with gcc 4.6.0
-    ./qt3-gcc4.6.0.patch
-  ];
-
-  passthru = {inherit mysqlSupport;};
-
-  meta = with lib; {
-    license = with licenses; [ gpl2 qpl ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/qt-3/qt-pwd.patch b/nixpkgs/pkgs/development/libraries/qt-3/qt-pwd.patch
deleted file mode 100644
index 763f785726b7..000000000000
--- a/nixpkgs/pkgs/development/libraries/qt-3/qt-pwd.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -ruN qt-x11-free-3.3.3/configure qt-x11-free-3.3.3.new/configure
---- qt-x11-free-3.3.3/configure	2004-06-14 11:18:55.000000000 +0200
-+++ qt-x11-free-3.3.3.new/configure	2005-11-12 19:39:43.000000000 +0100
-@@ -16,9 +16,9 @@
- relconf=`basename $0`
- # the directory of this script is the "source tree"
- relpath=`dirname $0`
--relpath=`(cd $relpath; /bin/pwd)`
-+relpath=`(cd $relpath; pwd)`
- # the current directory is the "build tree" or "object tree"
--outpath=`/bin/pwd`
-+outpath=`pwd`
- 
- # later cache the command line in config.status
- OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
diff --git a/nixpkgs/pkgs/development/libraries/qt-3/qt3-gcc4.6.0.patch b/nixpkgs/pkgs/development/libraries/qt-3/qt3-gcc4.6.0.patch
deleted file mode 100644
index c1a903c130c7..000000000000
--- a/nixpkgs/pkgs/development/libraries/qt-3/qt3-gcc4.6.0.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-I picked it here:
-https://bugs.archlinux.org/task/23915
-
---- qt-x11-free-3.3.8b/src/tools/qmap.h~	2008-01-15 19:09:13.000000000 +0000
-+++ qt-x11-free-3.3.8b/src/tools/qmap.h	2011-04-11 00:16:04.000000000 +0100
-@@ -50,6 +50,7 @@
- #endif // QT_H
- 
- #ifndef QT_NO_STL
-+#include <cstddef>
- #include <iterator>
- #include <map>
- #endif
---- qt-x11-free-3.3.8b/src/tools/qvaluelist.h~	2008-01-15 19:09:13.000000000 +0000
-+++ qt-x11-free-3.3.8b/src/tools/qvaluelist.h	2011-04-11 00:16:49.000000000 +0100
-@@ -48,6 +48,7 @@
- #endif // QT_H
- 
- #ifndef QT_NO_STL
-+#include <cstddef>
- #include <iterator>
- #include <list>
- #endif
diff --git a/nixpkgs/pkgs/development/libraries/qt-3/setup-hook.sh b/nixpkgs/pkgs/development/libraries/qt-3/setup-hook.sh
deleted file mode 100644
index db1a2529ff54..000000000000
--- a/nixpkgs/pkgs/development/libraries/qt-3/setup-hook.sh
+++ /dev/null
@@ -1 +0,0 @@
-export QTDIR=@out@
diff --git a/nixpkgs/pkgs/development/libraries/qt-3/strip.patch b/nixpkgs/pkgs/development/libraries/qt-3/strip.patch
deleted file mode 100644
index a0c9fa738898..000000000000
--- a/nixpkgs/pkgs/development/libraries/qt-3/strip.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -rc qt-x11-free-3.3.3-orig/mkspecs/linux-g++/qmake.conf qt-x11-free-3.3.3/mkspecs/linux-g++/qmake.conf
-*** qt-x11-free-3.3.3-orig/mkspecs/linux-g++/qmake.conf	2004-08-05 16:42:57.000000000 +0200
---- qt-x11-free-3.3.3/mkspecs/linux-g++/qmake.conf	2005-03-02 12:25:55.000000000 +0100
-***************
-*** 85,90 ****
-  QMAKE_DEL_FILE		= rm -f
-  QMAKE_DEL_DIR		= rmdir
-  QMAKE_STRIP             = strip
-! QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
-  QMAKE_CHK_DIR_EXISTS	= test -d
-  QMAKE_MKDIR		= mkdir -p
---- 85,90 ----
-  QMAKE_DEL_FILE		= rm -f
-  QMAKE_DEL_DIR		= rmdir
-  QMAKE_STRIP             = strip
-! QMAKE_STRIPFLAGS_LIB 	+= --strip-debug
-  QMAKE_CHK_DIR_EXISTS	= test -d
-  QMAKE_MKDIR		= mkdir -p
diff --git a/nixpkgs/pkgs/development/libraries/qt-3/xrandr.patch b/nixpkgs/pkgs/development/libraries/qt-3/xrandr.patch
deleted file mode 100644
index 0389c7fdd068..000000000000
--- a/nixpkgs/pkgs/development/libraries/qt-3/xrandr.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -rc qt-x11-free-3.3.6-orig/config.tests/x11/xrandr.test qt-x11-free-3.3.6/config.tests/x11/xrandr.test
-*** qt-x11-free-3.3.6-orig/config.tests/x11/xrandr.test	2006-09-14 14:00:08.000000000 +0200
---- qt-x11-free-3.3.6/config.tests/x11/xrandr.test	2006-09-14 14:10:39.000000000 +0200
-***************
-*** 52,69 ****
-      INCDIRS="$IN_INCDIRS $XDIRS /FOO/include /include"
-      F=
-      for INCDIR in $INCDIRS; do
-! 	if [ -f $INCDIR/$INC -a -f $INCDIR/$INC2 ]; then
-  	    F=yes
-! 	    XRANDR_H=$INCDIR/$INC
-  	    RANDR_H=$INCDIR/$INC2
-! 	    [ "$VERBOSE" = "yes" ] && echo "  Found $INC in $INCDIR"
-  	    break
-  	fi
-      done
-      if [ -z "$F" ]
-      then
-  	XRANDR=no
-! 	[ "$VERBOSE" = "yes" ] && echo "  Could not find $INC anywhere in $INCDIRS"
-      fi
-  fi
-  
---- 52,69 ----
-      INCDIRS="$IN_INCDIRS $XDIRS /FOO/include /include"
-      F=
-      for INCDIR in $INCDIRS; do
-! 	if [ -f $INCDIR/$INC2 ]; then
-  	    F=yes
-! #	    XRANDR_H=$INCDIR/$INC
-  	    RANDR_H=$INCDIR/$INC2
-! 	    [ "$VERBOSE" = "yes" ] && echo "  Found $INC2 in $INCDIR"
-  	    break
-  	fi
-      done
-      if [ -z "$F" ]
-      then
-  	XRANDR=no
-! 	[ "$VERBOSE" = "yes" ] && echo "  Could not find $INC2 anywhere in $INCDIRS"
-      fi
-  fi
-  
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
index 261374b7d93e..63e893ea69ff 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -99,6 +99,7 @@ let
         sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
       })
       ./qtwebkit.patch
+      ./qtwebkit-icu68.patch
 
       ./qtwebkit-darwin-no-readline.patch
       ./qtwebkit-darwin-no-qos-classes.patch
@@ -136,7 +137,7 @@ let
         patches = patches.qtbase;
         inherit bison cups harfbuzz libGL;
         withGtk3 = true; inherit dconf gtk3;
-        inherit developerBuild decryptSslTraffic;
+        inherit debug developerBuild decryptSslTraffic;
       };
 
       qtcharts = callPackage ../modules/qtcharts.nix {};
@@ -188,6 +189,7 @@ let
       qmake = makeSetupHook {
         deps = [ self.qtbase.dev ];
         substitutions = {
+          inherit debug;
           fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
         };
       } ../hooks/qmake-hook.sh;
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebkit-icu68.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebkit-icu68.patch
new file mode 100644
index 000000000000..73463d7567a3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebkit-icu68.patch
@@ -0,0 +1,170 @@
+Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844
+
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:31:
+Source/WebCore/platform/text/TextCodecICU.cpp:311:42: error: use of undeclared identifier 'TRUE'
+        ucnv_setFallback(m_converterICU, TRUE);
+                                         ^
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:40:
+In file included from Source/WebCore/platform/text/icu/UTextProvider.cpp:27:
+Source/WebCore/platform/text/icu/UTextProvider.h:83:28: error: use of undeclared identifier 'TRUE'
+            isAccessible = TRUE;
+                           ^
+Source/WebCore/platform/text/icu/UTextProvider.h:88:28: error: use of undeclared identifier 'FALSE'
+            isAccessible = FALSE;
+                           ^
+Source/WebCore/platform/text/icu/UTextProvider.h:97:28: error: use of undeclared identifier 'TRUE'
+            isAccessible = TRUE;
+                           ^
+Source/WebCore/platform/text/icu/UTextProvider.h:102:28: error: use of undeclared identifier 'FALSE'
+            isAccessible = FALSE;
+                           ^
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:41:
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:103:20: error: use of undeclared identifier 'TRUE'
+            return TRUE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:108:20: error: use of undeclared identifier 'FALSE'
+            return FALSE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:114:20: error: use of undeclared identifier 'TRUE'
+            return TRUE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:119:20: error: use of undeclared identifier 'FALSE'
+            return FALSE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:147:12: error: use of undeclared identifier 'TRUE'
+    return TRUE;
+           ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:339:16: error: use of undeclared identifier 'FALSE'
+        return FALSE;
+               ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:359:12: error: use of undeclared identifier 'TRUE'
+    return TRUE;
+           ^
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:42:
+Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:128:16: error: use of undeclared identifier 'FALSE'
+        return FALSE;
+               ^
+Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:148:12: error: use of undeclared identifier 'TRUE'
+    return TRUE;
+           ^
+
+--- a/Source/WebCore/platform/text/TextCodecICU.cpp
++++ b/Source/WebCore/platform/text/TextCodecICU.cpp
+@@ -308,7 +308,7 @@ void TextCodecICU::createICUConverter() const
+     m_converterICU = ucnv_open(m_canonicalConverterName, &err);
+     ASSERT(U_SUCCESS(err));
+     if (m_converterICU)
+-        ucnv_setFallback(m_converterICU, TRUE);
++        ucnv_setFallback(m_converterICU, true);
+ }
+ 
+ int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err)
+--- a/Source/WebCore/platform/text/icu/UTextProvider.h
++++ b/Source/WebCore/platform/text/icu/UTextProvider.h
+@@ -80,12 +80,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
+             // Ensure chunk offset is well formed if computed offset exceeds int32_t range.
+             ASSERT(offset < std::numeric_limits<int32_t>::max());
+             text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
+-            isAccessible = TRUE;
++            isAccessible = true;
+             return true;
+         }
+         if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) {
+             text->chunkOffset = text->chunkLength;
+-            isAccessible = FALSE;
++            isAccessible = false;
+             return true;
+         }
+     } else {
+@@ -94,12 +94,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
+             // Ensure chunk offset is well formed if computed offset exceeds int32_t range.
+             ASSERT(offset < std::numeric_limits<int32_t>::max());
+             text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
+-            isAccessible = TRUE;
++            isAccessible = true;
+             return true;
+         }
+         if (nativeIndex <= 0 && !text->chunkNativeStart) {
+             text->chunkOffset = 0;
+-            isAccessible = FALSE;
++            isAccessible = false;
+             return true;
+         }
+     }
+--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
++++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
+@@ -100,23 +100,23 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
+         if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) {
+             // Already inside the buffer. Set the new offset.
+             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+-            return TRUE;
++            return true;
+         }
+         if (index >= length && uText->chunkNativeLimit == length) {
+             // Off the end of the buffer, but we can't get it.
+             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+-            return FALSE;
++            return false;
+         }
+     } else {
+         if (index <= uText->chunkNativeLimit && index > uText->chunkNativeStart) {
+             // Already inside the buffer. Set the new offset.
+             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+-            return TRUE;
++            return true;
+         }
+         if (!index && !uText->chunkNativeStart) {
+             // Already at the beginning; can't go any farther.
+             uText->chunkOffset = 0;
+-            return FALSE;
++            return false;
+         }
+     }
+     
+@@ -144,7 +144,7 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
+ 
+     uText->nativeIndexingLimit = uText->chunkLength;
+ 
+-    return TRUE;
++    return true;
+ }
+ 
+ static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status)
+@@ -336,7 +336,7 @@ static int64_t uTextLatin1ContextAwareNativeLength(UTe
+ static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
+ {
+     if (!text->context)
+-        return FALSE;
++        return false;
+     int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text);
+     UBool isAccessible;
+     if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
+@@ -356,7 +356,7 @@ static UBool uTextLatin1ContextAwareAccess(UText* text
+         ASSERT(newContext == UTextProviderContext::PriorContext);
+         textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
+     }
+-    return TRUE;
++    return true;
+ }
+ 
+ static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
+--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
++++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
+@@ -125,7 +125,7 @@ static inline int64_t uTextUTF16ContextAwareNativeLeng
+ static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
+ {
+     if (!text->context)
+-        return FALSE;
++        return false;
+     int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text);
+     UBool isAccessible;
+     if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
+@@ -145,7 +145,7 @@ static UBool uTextUTF16ContextAwareAccess(UText* text,
+         ASSERT(newContext == UTextProviderContext::PriorContext);
+         textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
+     }
+-    return TRUE;
++    return true;
+ }
+ 
+ static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
index 14b99fab4e27..45cf6209ea08 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -112,6 +112,7 @@ let
         sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
       })
       ./qtwebkit.patch
+      ./qtwebkit-icu68.patch
     ] ++ optionals stdenv.isDarwin [
       ./qtwebkit-darwin-no-readline.patch
       ./qtwebkit-darwin-no-qos-classes.patch
@@ -149,7 +150,7 @@ let
         patches = patches.qtbase;
         inherit bison cups harfbuzz libGL;
         withGtk3 = true; inherit dconf gtk3;
-        inherit developerBuild decryptSslTraffic;
+        inherit debug developerBuild decryptSslTraffic;
       };
 
       qtcharts = callPackage ../modules/qtcharts.nix {};
@@ -199,6 +200,7 @@ let
       qmake = makeSetupHook {
         deps = [ self.qtbase.dev ];
         substitutions = {
+          inherit debug;
           fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
         };
       } ../hooks/qmake-hook.sh;
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-icu68.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-icu68.patch
new file mode 100644
index 000000000000..73463d7567a3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-icu68.patch
@@ -0,0 +1,170 @@
+Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844
+
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:31:
+Source/WebCore/platform/text/TextCodecICU.cpp:311:42: error: use of undeclared identifier 'TRUE'
+        ucnv_setFallback(m_converterICU, TRUE);
+                                         ^
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:40:
+In file included from Source/WebCore/platform/text/icu/UTextProvider.cpp:27:
+Source/WebCore/platform/text/icu/UTextProvider.h:83:28: error: use of undeclared identifier 'TRUE'
+            isAccessible = TRUE;
+                           ^
+Source/WebCore/platform/text/icu/UTextProvider.h:88:28: error: use of undeclared identifier 'FALSE'
+            isAccessible = FALSE;
+                           ^
+Source/WebCore/platform/text/icu/UTextProvider.h:97:28: error: use of undeclared identifier 'TRUE'
+            isAccessible = TRUE;
+                           ^
+Source/WebCore/platform/text/icu/UTextProvider.h:102:28: error: use of undeclared identifier 'FALSE'
+            isAccessible = FALSE;
+                           ^
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:41:
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:103:20: error: use of undeclared identifier 'TRUE'
+            return TRUE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:108:20: error: use of undeclared identifier 'FALSE'
+            return FALSE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:114:20: error: use of undeclared identifier 'TRUE'
+            return TRUE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:119:20: error: use of undeclared identifier 'FALSE'
+            return FALSE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:147:12: error: use of undeclared identifier 'TRUE'
+    return TRUE;
+           ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:339:16: error: use of undeclared identifier 'FALSE'
+        return FALSE;
+               ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:359:12: error: use of undeclared identifier 'TRUE'
+    return TRUE;
+           ^
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:42:
+Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:128:16: error: use of undeclared identifier 'FALSE'
+        return FALSE;
+               ^
+Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:148:12: error: use of undeclared identifier 'TRUE'
+    return TRUE;
+           ^
+
+--- a/Source/WebCore/platform/text/TextCodecICU.cpp
++++ b/Source/WebCore/platform/text/TextCodecICU.cpp
+@@ -308,7 +308,7 @@ void TextCodecICU::createICUConverter() const
+     m_converterICU = ucnv_open(m_canonicalConverterName, &err);
+     ASSERT(U_SUCCESS(err));
+     if (m_converterICU)
+-        ucnv_setFallback(m_converterICU, TRUE);
++        ucnv_setFallback(m_converterICU, true);
+ }
+ 
+ int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err)
+--- a/Source/WebCore/platform/text/icu/UTextProvider.h
++++ b/Source/WebCore/platform/text/icu/UTextProvider.h
+@@ -80,12 +80,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
+             // Ensure chunk offset is well formed if computed offset exceeds int32_t range.
+             ASSERT(offset < std::numeric_limits<int32_t>::max());
+             text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
+-            isAccessible = TRUE;
++            isAccessible = true;
+             return true;
+         }
+         if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) {
+             text->chunkOffset = text->chunkLength;
+-            isAccessible = FALSE;
++            isAccessible = false;
+             return true;
+         }
+     } else {
+@@ -94,12 +94,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
+             // Ensure chunk offset is well formed if computed offset exceeds int32_t range.
+             ASSERT(offset < std::numeric_limits<int32_t>::max());
+             text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
+-            isAccessible = TRUE;
++            isAccessible = true;
+             return true;
+         }
+         if (nativeIndex <= 0 && !text->chunkNativeStart) {
+             text->chunkOffset = 0;
+-            isAccessible = FALSE;
++            isAccessible = false;
+             return true;
+         }
+     }
+--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
++++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
+@@ -100,23 +100,23 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
+         if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) {
+             // Already inside the buffer. Set the new offset.
+             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+-            return TRUE;
++            return true;
+         }
+         if (index >= length && uText->chunkNativeLimit == length) {
+             // Off the end of the buffer, but we can't get it.
+             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+-            return FALSE;
++            return false;
+         }
+     } else {
+         if (index <= uText->chunkNativeLimit && index > uText->chunkNativeStart) {
+             // Already inside the buffer. Set the new offset.
+             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+-            return TRUE;
++            return true;
+         }
+         if (!index && !uText->chunkNativeStart) {
+             // Already at the beginning; can't go any farther.
+             uText->chunkOffset = 0;
+-            return FALSE;
++            return false;
+         }
+     }
+     
+@@ -144,7 +144,7 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
+ 
+     uText->nativeIndexingLimit = uText->chunkLength;
+ 
+-    return TRUE;
++    return true;
+ }
+ 
+ static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status)
+@@ -336,7 +336,7 @@ static int64_t uTextLatin1ContextAwareNativeLength(UTe
+ static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
+ {
+     if (!text->context)
+-        return FALSE;
++        return false;
+     int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text);
+     UBool isAccessible;
+     if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
+@@ -356,7 +356,7 @@ static UBool uTextLatin1ContextAwareAccess(UText* text
+         ASSERT(newContext == UTextProviderContext::PriorContext);
+         textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
+     }
+-    return TRUE;
++    return true;
+ }
+ 
+ static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
+--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
++++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
+@@ -125,7 +125,7 @@ static inline int64_t uTextUTF16ContextAwareNativeLeng
+ static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
+ {
+     if (!text->context)
+-        return FALSE;
++        return false;
+     int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text);
+     UBool isAccessible;
+     if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
+@@ -145,7 +145,7 @@ static UBool uTextUTF16ContextAwareAccess(UText* text,
+         ASSERT(newContext == UTextProviderContext::PriorContext);
+         textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
+     }
+-    return TRUE;
++    return true;
+ }
+ 
+ static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
index 6333f889b684..f969254b5952 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -16,7 +16,7 @@ top-level attribute to `top-level/all-packages.nix`.
 
 {
   newScope,
-  lib, stdenv, fetchurl, fetchpatch, fetchFromGitHub, makeSetupHook, makeWrapper,
+  lib, stdenv, fetchurl, fetchpatch, fetchgit, fetchFromGitHub, makeSetupHook, makeWrapper,
   bison, cups ? null, harfbuzz, libGL, perl,
   gstreamer, gst-plugins-base, gtk3, dconf,
   llvmPackages_5,
@@ -48,6 +48,42 @@ let
       };
       version = "5.212.0-alpha4";
     };
+
+    # Even if developed in the public, QtWebEngine does not have official
+    # releases or new tags since the Qt company made 5.15.3 proprietary.
+    # Apparently they care more about licensing than the security of their users.
+    # See https://lists.qt-project.org/pipermail/interest/2021-March/036387.html
+    qtwebengine =
+      let
+        branchName = "5.15.3";
+        rev = "a059e7404a6db799f4da0ad696e65ae9c854b4b0";
+      in
+      {
+        version = "${branchName}-${lib.substring 0 7 rev}";
+
+        src = fetchgit {
+          url = "https://github.com/qt/qtwebengine.git";
+          sha256 = "1vdgxfbmx4z4qrm2g61dl64gqn3fv5f83jwpp7h1gyfx5z2qvfmv";
+          inherit rev branchName;
+          fetchSubmodules = true;
+          leaveDotGit = true;
+          name = "qtwebengine-${substring 0 7 rev}.tar.gz";
+          postFetch = ''
+            # remove submodule .git directory
+            rm -rf $out/src/3rdparty/.git
+
+            # compress to not exceed the 2GB output limit
+            mv $out source
+            # try to make a deterministic tarball
+            tar -I 'gzip -n' \
+              --sort name \
+              --mtime 1970-01-01 \
+              --owner=root --group=root \
+              --numeric-owner --mode=go=rX,u+rw,a-s \
+              -cf $out source
+          '';
+        };
+      };
   };
 
   patches = {
@@ -83,11 +119,16 @@ let
     qtdeclarative = [ ./qtdeclarative.patch ];
     qtscript = [ ./qtscript.patch ];
     qtserialport = [ ./qtserialport.patch ];
-    qtwebengine = [ ]
-      ++ optionals stdenv.isDarwin [
-        ./qtwebengine-darwin-no-platform-check.patch
-        ./qtwebengine-mac-dont-set-dsymutil-path.patch
-      ];
+    qtwebengine = [
+      # Fix crashes with non en_US.UTF-8 locales
+      (fetchpatch {
+        url = "https://github.com/qt/qtwebengine/commit/199ea00a9eea13315a652c62778738629185b059.patch";
+        sha256 = "1b5k2g1v8913cvsgvp6ja4mcprjlk5vcwqzi0p1qq7b1wyi4f0g2";
+      })
+    ] ++ optionals stdenv.isDarwin [
+      ./qtwebengine-darwin-no-platform-check.patch
+      ./qtwebengine-mac-dont-set-dsymutil-path.patch
+    ];
     qtwebkit = [
       (fetchpatch {
         name = "qtwebkit-bison-3.7-build.patch";
@@ -95,6 +136,7 @@ let
         sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
       })
       ./qtwebkit.patch
+      ./qtwebkit-icu68.patch
     ] ++ optionals stdenv.isDarwin [
       ./qtwebkit-darwin-no-readline.patch
       ./qtwebkit-darwin-no-qos-classes.patch
@@ -161,7 +203,9 @@ let
       qtvirtualkeyboard = callPackage ../modules/qtvirtualkeyboard.nix {};
       qtwayland = callPackage ../modules/qtwayland.nix {};
       qtwebchannel = callPackage ../modules/qtwebchannel.nix {};
-      qtwebengine = callPackage ../modules/qtwebengine.nix {};
+      qtwebengine = callPackage ../modules/qtwebengine.nix {
+        inherit (srcs.qtwebengine) version;
+      };
       qtwebglplugin = callPackage ../modules/qtwebglplugin.nix {};
       qtwebkit = callPackage ../modules/qtwebkit.nix {};
       qtwebsockets = callPackage ../modules/qtwebsockets.nix {};
@@ -182,6 +226,7 @@ let
       qmake = makeSetupHook {
         deps = [ self.qtbase.dev ];
         substitutions = {
+          inherit debug;
           fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
         };
       } ../hooks/qmake-hook.sh;
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-icu68.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-icu68.patch
new file mode 100644
index 000000000000..73463d7567a3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-icu68.patch
@@ -0,0 +1,170 @@
+Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844
+
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:31:
+Source/WebCore/platform/text/TextCodecICU.cpp:311:42: error: use of undeclared identifier 'TRUE'
+        ucnv_setFallback(m_converterICU, TRUE);
+                                         ^
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:40:
+In file included from Source/WebCore/platform/text/icu/UTextProvider.cpp:27:
+Source/WebCore/platform/text/icu/UTextProvider.h:83:28: error: use of undeclared identifier 'TRUE'
+            isAccessible = TRUE;
+                           ^
+Source/WebCore/platform/text/icu/UTextProvider.h:88:28: error: use of undeclared identifier 'FALSE'
+            isAccessible = FALSE;
+                           ^
+Source/WebCore/platform/text/icu/UTextProvider.h:97:28: error: use of undeclared identifier 'TRUE'
+            isAccessible = TRUE;
+                           ^
+Source/WebCore/platform/text/icu/UTextProvider.h:102:28: error: use of undeclared identifier 'FALSE'
+            isAccessible = FALSE;
+                           ^
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:41:
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:103:20: error: use of undeclared identifier 'TRUE'
+            return TRUE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:108:20: error: use of undeclared identifier 'FALSE'
+            return FALSE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:114:20: error: use of undeclared identifier 'TRUE'
+            return TRUE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:119:20: error: use of undeclared identifier 'FALSE'
+            return FALSE;
+                   ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:147:12: error: use of undeclared identifier 'TRUE'
+    return TRUE;
+           ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:339:16: error: use of undeclared identifier 'FALSE'
+        return FALSE;
+               ^
+Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:359:12: error: use of undeclared identifier 'TRUE'
+    return TRUE;
+           ^
+In file included from Source/WebCore/platform/text/TextAllInOne.cpp:42:
+Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:128:16: error: use of undeclared identifier 'FALSE'
+        return FALSE;
+               ^
+Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:148:12: error: use of undeclared identifier 'TRUE'
+    return TRUE;
+           ^
+
+--- a/Source/WebCore/platform/text/TextCodecICU.cpp
++++ b/Source/WebCore/platform/text/TextCodecICU.cpp
+@@ -308,7 +308,7 @@ void TextCodecICU::createICUConverter() const
+     m_converterICU = ucnv_open(m_canonicalConverterName, &err);
+     ASSERT(U_SUCCESS(err));
+     if (m_converterICU)
+-        ucnv_setFallback(m_converterICU, TRUE);
++        ucnv_setFallback(m_converterICU, true);
+ }
+ 
+ int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err)
+--- a/Source/WebCore/platform/text/icu/UTextProvider.h
++++ b/Source/WebCore/platform/text/icu/UTextProvider.h
+@@ -80,12 +80,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
+             // Ensure chunk offset is well formed if computed offset exceeds int32_t range.
+             ASSERT(offset < std::numeric_limits<int32_t>::max());
+             text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
+-            isAccessible = TRUE;
++            isAccessible = true;
+             return true;
+         }
+         if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) {
+             text->chunkOffset = text->chunkLength;
+-            isAccessible = FALSE;
++            isAccessible = false;
+             return true;
+         }
+     } else {
+@@ -94,12 +94,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
+             // Ensure chunk offset is well formed if computed offset exceeds int32_t range.
+             ASSERT(offset < std::numeric_limits<int32_t>::max());
+             text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
+-            isAccessible = TRUE;
++            isAccessible = true;
+             return true;
+         }
+         if (nativeIndex <= 0 && !text->chunkNativeStart) {
+             text->chunkOffset = 0;
+-            isAccessible = FALSE;
++            isAccessible = false;
+             return true;
+         }
+     }
+--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
++++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
+@@ -100,23 +100,23 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
+         if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) {
+             // Already inside the buffer. Set the new offset.
+             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+-            return TRUE;
++            return true;
+         }
+         if (index >= length && uText->chunkNativeLimit == length) {
+             // Off the end of the buffer, but we can't get it.
+             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+-            return FALSE;
++            return false;
+         }
+     } else {
+         if (index <= uText->chunkNativeLimit && index > uText->chunkNativeStart) {
+             // Already inside the buffer. Set the new offset.
+             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+-            return TRUE;
++            return true;
+         }
+         if (!index && !uText->chunkNativeStart) {
+             // Already at the beginning; can't go any farther.
+             uText->chunkOffset = 0;
+-            return FALSE;
++            return false;
+         }
+     }
+     
+@@ -144,7 +144,7 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
+ 
+     uText->nativeIndexingLimit = uText->chunkLength;
+ 
+-    return TRUE;
++    return true;
+ }
+ 
+ static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status)
+@@ -336,7 +336,7 @@ static int64_t uTextLatin1ContextAwareNativeLength(UTe
+ static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
+ {
+     if (!text->context)
+-        return FALSE;
++        return false;
+     int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text);
+     UBool isAccessible;
+     if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
+@@ -356,7 +356,7 @@ static UBool uTextLatin1ContextAwareAccess(UText* text
+         ASSERT(newContext == UTextProviderContext::PriorContext);
+         textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
+     }
+-    return TRUE;
++    return true;
+ }
+ 
+ static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
+--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
++++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
+@@ -125,7 +125,7 @@ static inline int64_t uTextUTF16ContextAwareNativeLeng
+ static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
+ {
+     if (!text->context)
+-        return FALSE;
++        return false;
+     int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text);
+     UBool isAccessible;
+     if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
+@@ -145,7 +145,7 @@ static UBool uTextUTF16ContextAwareAccess(UText* text,
+         ASSERT(newContext == UTextProviderContext::PriorContext);
+         textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
+     }
+-    return TRUE;
++    return true;
+ }
+ 
+ static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh b/nixpkgs/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh
index 7f6ddb76ad57..741225a5aa81 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh
+++ b/nixpkgs/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh
@@ -3,6 +3,9 @@
 qmakeFlags=( ${qmakeFlags-} )
 
 qmakePrePhase() {
+    qmakeFlags_orig=( "${qmakeFlags[@]}" )
+
+    # These flags must be added _before_ the flags specified in the derivation.
     qmakeFlags=( \
         "PREFIX=$out" \
         "NIX_OUTPUT_OUT=$out" \
@@ -11,8 +14,15 @@ qmakePrePhase() {
         "NIX_OUTPUT_DOC=${!outputDev}/${qtDocPrefix:?}" \
         "NIX_OUTPUT_QML=${!outputBin}/${qtQmlPrefix:?}" \
         "NIX_OUTPUT_PLUGIN=${!outputBin}/${qtPluginPrefix:?}" \
-        "${qmakeFlags[@]}" \
     )
+
+    if [ -n "@debug@" ]; then
+        qmakeFlags+=( "CONFIG+=debug" )
+    else
+        qmakeFlags+=( "CONFIG+=release" )
+    fi
+
+    qmakeFlags+=( "${qmakeFlags_orig[@]}" )
 }
 prePhases+=" qmakePrePhase"
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/hooks/qtbase-setup-hook.sh b/nixpkgs/pkgs/development/libraries/qt-5/hooks/qtbase-setup-hook.sh
index 9f2a9f06f1ab..1b57d676e1fc 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/hooks/qtbase-setup-hook.sh
+++ b/nixpkgs/pkgs/development/libraries/qt-5/hooks/qtbase-setup-hook.sh
@@ -1,3 +1,14 @@
+if [[ -n "${__nix_qtbase-}" ]]; then
+    # Throw an error if a different version of Qt was already set up.
+    if [[ "$__nix_qtbase" != "@dev@" ]]; then
+        echo >&2 "Error: detected mismatched Qt dependencies:"
+        echo >&2 "    @dev@"
+        echo >&2 "    $__nix_qtbase"
+        exit 1
+    fi
+else # Only set up Qt once.
+__nix_qtbase="@dev@"
+
 qtPluginPrefix=@qtPluginPrefix@
 qtQmlPrefix=@qtQmlPrefix@
 qtDocPrefix=@qtDocPrefix@
@@ -5,6 +16,20 @@ qtDocPrefix=@qtDocPrefix@
 . @fix_qt_builtin_paths@
 . @fix_qt_module_paths@
 
+# Disable debug symbols if qtbase was built without debugging.
+# This stops -dev paths from leaking into other outputs.
+if [ -z "@debug@" ]; then
+    NIX_CFLAGS_COMPILE="${NIX_CFLAGS_COMPILE-}${NIX_CFLAGS_COMPILE:+ }-DQT_NO_DEBUG"
+fi
+
+# Integration with CMake:
+# Set the CMake build type corresponding to how qtbase was built.
+if [ -n "@debug@" ]; then
+    cmakeBuildType="Debug"
+else
+    cmakeBuildType="Release"
+fi
+
 providesQtRuntime() {
     [ -d "$1/$qtPluginPrefix" ] || [ -d "$1/$qtQmlPrefix" ]
 }
@@ -19,7 +44,12 @@ export QMAKEPATH
 QMAKEMODULES=
 export QMAKEMODULES
 
+declare -Ag qmakePathSeen=()
 qmakePathHook() {
+    # Skip this path if we have seen it before.
+    # MUST use 'if' because 'qmakePathSeen[$]' may be unset.
+    if [ -n "${qmakePathSeen[$1]-}" ]; then return; fi
+    qmakePathSeen[$1]=1
     if [ -d "$1/mkspecs" ]
     then
         QMAKEMODULES="${QMAKEMODULES}${QMAKEMODULES:+:}/mkspecs"
@@ -34,7 +64,12 @@ envBuildHostHooks+=(qmakePathHook)
 # package depending on the building package. (This is necessary in case
 # the building package does not provide runtime dependencies itself and so
 # would not be propagated to the user environment.)
+declare -Ag qtEnvHostTargetSeen=()
 qtEnvHostTargetHook() {
+    # Skip this path if we have seen it before.
+    # MUST use 'if' because 'qmakePathSeen[$]' may be unset.
+    if [ -n "${qtEnvHostTargetSeen[$1]-}" ]; then return; fi
+    qtEnvHostTargetSeen[$1]=1
     if providesQtRuntime "$1" && [ "z${!outputBin}" != "z${!outputDev}" ]
     then
         propagatedBuildInputs+=" $1"
@@ -64,3 +99,14 @@ postPatchMkspecs() {
 if [ -z "${dontPatchMkspecs-}" ]; then
     postPhases="${postPhases-}${postPhases:+ }postPatchMkspecs"
 fi
+
+qtPreHook() {
+    # Check that wrapQtAppsHook is used, or it is explicitly disabled.
+    if [[ -z "$__nix_wrapQtAppsHook" && -z "$dontWrapQtApps" ]]; then
+        echo >&2 "Error: wrapQtAppsHook is not used, and dontWrapQtApps is not set."
+        exit 1
+    fi
+}
+prePhases+=" qtPreHook"
+
+fi
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh b/nixpkgs/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh
index 7356c8ee3560..ce4d78fbb50f 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh
+++ b/nixpkgs/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh
@@ -1,3 +1,6 @@
+if [[ -z "${__nix_wrapQtAppsHook-}" ]]; then
+__nix_wrapQtAppsHook=1  # Don't run this hook more than once.
+
 # Inherit arguments given in mkDerivation
 qtWrapperArgs=( ${qtWrapperArgs-} )
 
@@ -100,3 +103,5 @@ wrapQtAppsHook() {
 }
 
 fixupOutputHooks+=(wrapQtAppsHook)
+
+fi
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/mkDerivation.nix b/nixpkgs/pkgs/development/libraries/qt-5/mkDerivation.nix
index 2c6333cb0204..98f9a05fac7c 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/mkDerivation.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/mkDerivation.nix
@@ -9,21 +9,6 @@ args:
 let
   args_ = {
 
-    qmakeFlags = [ ("CONFIG+=" + (if debug then "debug" else "release")) ]
-              ++ (args.qmakeFlags or []);
-
-    NIX_CFLAGS_COMPILE = toString (
-      optional (!debug) "-DQT_NO_DEBUG"
-      ++ lib.toList (args.NIX_CFLAGS_COMPILE or []));
-
-    cmakeFlags =
-      (args.cmakeFlags or [])
-      ++ [
-        ("-DCMAKE_BUILD_TYPE=" + (if debug then "Debug" else "Release"))
-      ];
-
-    enableParallelBuilding = args.enableParallelBuilding or true;
-
     nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ wrapQtAppsHook ];
 
   };
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix
index 24f1d6f81a24..0d0bef342b02 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -22,6 +22,7 @@
   libGL,
   buildExamples ? false,
   buildTests ? false,
+  debug ? false,
   developerBuild ? false,
   decryptSslTraffic ? false
 }:
@@ -33,12 +34,14 @@ let
   compareVersion = v: builtins.compareVersions version v;
   qmakeCacheName =
     if compareVersion "5.12.4" < 0 then ".qmake.cache" else ".qmake.stash";
+  debugSymbols = debug || developerBuild;
 in
 
 stdenv.mkDerivation {
 
   name = "qtbase-${version}";
   inherit qtCompatVersion src version;
+  debug = debugSymbols;
 
   propagatedBuildInputs =
     [
@@ -241,6 +244,7 @@ stdenv.mkDerivation {
       "-I" "${icu.dev}/include"
       "-pch"
     ]
+    ++ lib.optional debugSymbols "-debug"
     ++ lib.optionals (compareVersion "5.11.0" < 0)
     [
       "-qml-debug"
@@ -397,6 +401,8 @@ stdenv.mkDerivation {
           -e "/^host_bins=/ c host_bins=$dev/bin"
     '';
 
+  dontStrip = debugSymbols;
+
   setupHook = ../hooks/qtbase-setup-hook.sh;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index 7e5582cca481..cd3fa583303d 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -2,6 +2,7 @@
 , qtdeclarative, qtquickcontrols, qtlocation, qtwebchannel
 
 , bison, coreutils, flex, git, gperf, ninja, pkg-config, python2, which
+, nodejs, qtbase, perl
 
 , xorg, libXcursor, libXScrnSaver, libXrandr, libXtst
 , fontconfig, freetype, harfbuzz, icu, dbus, libdrm
@@ -16,6 +17,7 @@
 , cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin
 , ffmpeg_3 ? null
 , lib, stdenv, fetchpatch
+, version ? null
 , qtCompatVersion
 }:
 
@@ -25,7 +27,15 @@ qtModule {
   name = "qtwebengine";
   qtInputs = [ qtdeclarative qtquickcontrols qtlocation qtwebchannel ];
   nativeBuildInputs = [
-    bison coreutils flex git gperf ninja pkg-config python2 which gn
+    bison coreutils flex git gperf ninja pkg-config python2 which gn nodejs
+
+    # qmake looks for syncqt instead of syncqt.pl and fails with a cryptic
+    # error if it can't find it. syncqt.pl also has a /usr/bin/env shebang, so
+    # it can't be directly used in a sandboxed build environment.
+    (writeScriptBin "syncqt" ''
+      #!${stdenv.shell}
+      exec ${perl}/bin/perl ${qtbase.dev}/bin/syncqt.pl "$@"
+    '')
   ] ++ optional stdenv.isDarwin xcbuild;
   doCheck = true;
   outputs = [ "bin" "dev" "out" ];
@@ -40,9 +50,17 @@ qtModule {
   hardeningDisable = [ "format" ];
 
   postPatch =
-    # Patch Chromium build tools
     ''
-      ( cd src/3rdparty/chromium; patchShebangs . )
+      # Patch Chromium build tools
+      (
+        cd src/3rdparty/chromium;
+
+        # Manually fix unsupported shebangs
+        substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
+          --replace "/usr/bin/env -S make -f" "/usr/bin/make -f" || true
+
+        patchShebangs .
+      )
     ''
     # Prevent Chromium build script from making the path to `clang` relative to
     # the build directory.  `clang_base_path` is the value of `QMAKE_CLANG_DIR`
@@ -90,11 +108,7 @@ qtModule {
     '' else ''
     substituteInPlace src/3rdparty/chromium/base/mac/mach_port_broker.mm \
       --replace "audit_token_to_pid(msg.trailer.msgh_audit)" "msg.trailer.msgh_audit.val[5]"
-    '')
-    + ''
-    substituteInPlace src/3rdparty/chromium/sandbox/mac/BUILD.gn \
-      --replace 'libs = [ "sandbox" ]' 'libs = [ "/usr/lib/libsandbox.1.dylib" ]'
-    '');
+    ''));
 
   NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [
     # with gcc8, -Wclass-memaccess became part of -Wall and this exceeds the logging limit
@@ -124,7 +138,7 @@ qtModule {
     if [ -d "$PWD/tools/qmake" ]; then
         QMAKEPATH="$PWD/tools/qmake''${QMAKEPATH:+:}$QMAKEPATH"
     fi
-   '';
+  '';
 
   qmakeFlags = if stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64
     then [ "--" "-system-ffmpeg" ] ++ optional enableProprietaryCodecs "-proprietary-codecs"
@@ -190,6 +204,7 @@ qtModule {
 
   buildInputs = optionals stdenv.isDarwin (with darwin; [
     cups
+    apple_sdk.libs.sandbox
 
     # `sw_vers` is used by `src/3rdparty/chromium/build/config/mac/sdk_info.py`
     # to get some information about the host platform.
@@ -205,15 +220,8 @@ qtModule {
         shift
       done
     '')
-
-    # For sandbox.h include
-    (runCommand "MacOS_SDK_sandbox.h" {} ''
-      install -Dm444 "${lib.getDev darwin.apple_sdk.sdk}"/include/sandbox.h "$out"/include/sandbox.h
-    '')
   ]);
 
-  __impureHostDeps = optional stdenv.isDarwin "/usr/lib/libsandbox.1.dylib";
-
   dontUseNinjaBuild = true;
   dontUseNinjaInstall = true;
   dontUseXcbuild = true;
@@ -223,12 +231,17 @@ qtModule {
     [Paths]
     Prefix = ..
     EOF
+  '' + lib.optionalString (lib.versions.majorMinor qtCompatVersion == "5.15") ''
+    # Fix for out-of-sync QtWebEngine and Qt releases (since 5.15.3)
+    sed 's/${lib.head (lib.splitString "-" version)} /${qtCompatVersion} /' -i "$out"/lib/cmake/*/*Config.cmake
   '';
 
   meta = with lib; {
     description = "A web engine based on the Chromium web browser";
     maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.unix;
+    # This build takes a long time; particularly on slow architectures
+    timeout = 24 * 3600;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/qt-env.nix b/nixpkgs/pkgs/development/libraries/qt-5/qt-env.nix
index da56c07779b9..b4a201c08cc4 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/qt-env.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/qt-env.nix
@@ -5,7 +5,7 @@ buildEnv {
   paths = [ qtbase ] ++ paths;
 
   pathsToLink = [ "/bin" "/mkspecs" "/include" "/lib" "/share" ];
-  extraOutputsToInstall = [ "dev" ];
+  extraOutputsToInstall = [ "out" "dev" ];
 
   postBuild = ''
     rm "$out/bin/qmake"
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix b/nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix
index 0481f000c6ce..930ed9d67baa 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix
@@ -34,6 +34,8 @@ mkDerivation (args // {
     fixQtBuiltinPaths . '*.pr?'
   '';
 
+  dontWrapQtApps = args.dontWrapQtApps or true;
+
   postFixup = ''
     if [ -d "''${!outputDev}/lib/pkgconfig" ]; then
         find "''${!outputDev}/lib/pkgconfig" -name '*.pc' | while read pc; do
diff --git a/nixpkgs/pkgs/development/libraries/qtinstaller/default.nix b/nixpkgs/pkgs/development/libraries/qtinstaller/default.nix
index 91f853711066..ce69c855ac23 100644
--- a/nixpkgs/pkgs/development/libraries/qtinstaller/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtinstaller/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   setOutputFlags = false;
   enableParallelBuilding = true;
   NIX_QT_SUBMODULE = true;
+  dontWrapQtApps = true;
 
   installPhase = ''
     mkdir -p $out/{bin,lib,share/qt-installer-framework}
diff --git a/nixpkgs/pkgs/development/libraries/qtkeychain/default.nix b/nixpkgs/pkgs/development/libraries/qtkeychain/default.nix
index 6da4abb756e6..3da0587210d8 100644
--- a/nixpkgs/pkgs/development/libraries/qtkeychain/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtkeychain/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
     sha256 = "0h4wgngn2yl35hapbjs24amkjfbzsvnna4ixfhn87snjnq5lmjbc"; # v0.9.1
   };
 
+  dontWrapQtApps = true;
+
   patches = (if withQt5 then [] else [ ./0001-Fixes-build-with-Qt4.patch ]) ++ (if stdenv.isDarwin then [ ./0002-Fix-install-name-Darwin.patch ] else []);
 
   cmakeFlags = [ "-DQT_TRANSLATIONS_DIR=share/qt/translations" ];
diff --git a/nixpkgs/pkgs/development/libraries/qtpbfimageplugin/default.nix b/nixpkgs/pkgs/development/libraries/qtpbfimageplugin/default.nix
index 3558201015c6..9dbc2491ad95 100644
--- a/nixpkgs/pkgs/development/libraries/qtpbfimageplugin/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtpbfimageplugin/default.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ qmake ];
   buildInputs = [ qtbase protobuf ];
 
+  dontWrapQtApps = true;
+
   postPatch = ''
     # Fix plugin dir
     substituteInPlace pbfplugin.pro \
diff --git a/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix b/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
index 4587bf461624..85468bd4f183 100644
--- a/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
@@ -1,7 +1,8 @@
-{ lib, mkDerivation, fetchFromGitHub, qmake, pkg-config, gtk2 }:
+{ lib, mkDerivation, fetchFromGitHub, fetchpatch, qmake, pkg-config, gtk2 }:
 
 mkDerivation {
-  name = "qtstyleplugins-2017-03-11";
+  pname = "qtstyleplugins";
+  version = "unstable-2017-03-11";
 
   src = fetchFromGitHub {
     owner = "qt";
@@ -10,7 +11,18 @@ mkDerivation {
     sha256 = "085wyn85nrmzr8nv5zv7fi2kqf8rp1gnd30h72s30j55xvhmxvmy";
   };
 
-  patches = [ ./fix-build-against-Qt-5.15.patch ];
+  patches = [
+    (fetchpatch rec {
+      name = "0001-fix-build-against-Qt-5.15.patch";
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/${name}?h=qt5-styleplugins";
+      sha256 = "j0CgfutqFawy11IqFnlrkfMsMD01NjX/MkfVEVxj1QM=";
+    })
+    (fetchpatch rec {
+      name = "0002-fix-gtk2-background.patch";
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/${name}?h=qt5-styleplugins";
+      sha256 = "qUOkNckrSUEzXY1PUZKfbiCjhNyB5ZBw2IN/j32GKM4=";
+    })
+  ];
 
   nativeBuildInputs = [ pkg-config qmake ];
   buildInputs = [ gtk2 ];
diff --git a/nixpkgs/pkgs/development/libraries/qtstyleplugins/fix-build-against-Qt-5.15.patch b/nixpkgs/pkgs/development/libraries/qtstyleplugins/fix-build-against-Qt-5.15.patch
deleted file mode 100644
index 7eb744158204..000000000000
--- a/nixpkgs/pkgs/development/libraries/qtstyleplugins/fix-build-against-Qt-5.15.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 335dbece103e2cbf6c7cf819ab6672c2956b17b3 Mon Sep 17 00:00:00 2001
-From: Fabian Vogt <fvogt@suse.de>
-Date: Thu, 28 May 2020 12:35:42 +0200
-Subject: [PATCH] fix build against Qt 5.15
-
-With 0a93db4d82c051164923a10e4382b12de9049b45 ("Unify application
-palette handling between QGuiApplication and QApplication")
-QApplicationPrivate::setSystemPalette is no longer used and necessary.
----
- src/plugins/styles/gtk2/qgtkstyle.cpp   | 2 ++
- src/plugins/styles/gtk2/qgtkstyle_p.cpp | 2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/src/plugins/styles/gtk2/qgtkstyle.cpp b/src/plugins/styles/gtk2/qgtkstyle.cpp
-index 36169c9..2544593 100644
---- a/src/plugins/styles/gtk2/qgtkstyle.cpp
-+++ b/src/plugins/styles/gtk2/qgtkstyle.cpp
-@@ -440,7 +440,9 @@ void QGtkStyle::polish(QApplication *app)
-     // not supported as these should be entirely determined by
-     // current Gtk settings
-     if (app->desktopSettingsAware() && d->isThemeAvailable()) {
-+#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
-         QApplicationPrivate::setSystemPalette(standardPalette());
-+#endif
-         QApplicationPrivate::setSystemFont(d->getThemeFont());
-         d->applyCustomPaletteHash();
-         if (!d->isKDE4Session())
-diff --git a/src/plugins/styles/gtk2/qgtkstyle_p.cpp b/src/plugins/styles/gtk2/qgtkstyle_p.cpp
-index e57b3d8..e71beb0 100644
---- a/src/plugins/styles/gtk2/qgtkstyle_p.cpp
-+++ b/src/plugins/styles/gtk2/qgtkstyle_p.cpp
-@@ -508,7 +508,9 @@ void QGtkStyleUpdateScheduler::updateTheme()
-       if (oldTheme != QGtkStylePrivate::getThemeName()) {
-           oldTheme = QGtkStylePrivate::getThemeName();
-           QPalette newPalette = qApp->style()->standardPalette();
-+#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
-           QApplicationPrivate::setSystemPalette(newPalette);
-+#endif
-           QApplication::setPalette(newPalette);
-           if (!QGtkStylePrivate::instances.isEmpty()) {
-               QGtkStylePrivate::instances.last()->initGtkWidgets();
--- 
-2.26.2
-
diff --git a/nixpkgs/pkgs/development/libraries/qtutilities/default.nix b/nixpkgs/pkgs/development/libraries/qtutilities/default.nix
index 831c51fa234d..99cf50a7ba04 100644
--- a/nixpkgs/pkgs/development/libraries/qtutilities/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtutilities/default.nix
@@ -5,27 +5,28 @@
 , qttools
 , qtbase
 , cmake
-, pkg-config
 }:
 
 stdenv.mkDerivation rec {
   pname = "qtutilities";
-  version = "6.3.0";
+  version = "6.3.3";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vHx2JMPqioY8jUpBOIFdhhN1mIUV3LS8ayQOo3g7bY0=";
+    sha256 = "sha256-RoI1huVei4SmAUhuYruzgod0/qIlnrZSHEMceQc2jzc=";
   };
 
   buildInputs = [ qtbase cpp-utilities ];
   nativeBuildInputs = [ cmake qttools ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://github.com/Martchus/qtutilities";
     description = "Common C++ classes and routines used by @Martchus' applications featuring argument parser, IO and conversion utilities";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ doronbehar ];
     platforms   = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/libraries/qtwebkit-plugins/default.nix b/nixpkgs/pkgs/development/libraries/qtwebkit-plugins/default.nix
index 652c49aa6ca2..5bc30db059e7 100644
--- a/nixpkgs/pkgs/development/libraries/qtwebkit-plugins/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtwebkit-plugins/default.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation {
 
   buildInputs = [ qtwebkit hunspell ];
 
+  dontWrapQtApps = true;
+
   postPatch = ''
     sed -i "s,-lhunspell,-lhunspell-${lib.versions.majorMinor hunspell.version}," src/spellcheck/spellcheck.pri
     sed -i "s,\$\$\[QT_INSTALL_PLUGINS\],$out/$qtPluginPrefix," src/src.pro
diff --git a/nixpkgs/pkgs/development/libraries/quazip/default.nix b/nixpkgs/pkgs/development/libraries/quazip/default.nix
index 3f186314d013..a12d6cafe4ae 100644
--- a/nixpkgs/pkgs/development/libraries/quazip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/quazip/default.nix
@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ]
     ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Provides access to ZIP archives from Qt programs";
     license = licenses.lgpl21Plus;
diff --git a/nixpkgs/pkgs/development/libraries/qwt/6.nix b/nixpkgs/pkgs/development/libraries/qwt/6.nix
index edfd3b4e24a3..1f2518fc7380 100644
--- a/nixpkgs/pkgs/development/libraries/qwt/6.nix
+++ b/nixpkgs/pkgs/development/libraries/qwt/6.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, qtbase, qtsvg, qttools, qmake }:
 
 stdenv.mkDerivation rec {
-  name = "qwt-6.1.5";
+  name = "qwt-6.1.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/qwt/${name}.tar.bz2";
-    sha256 = "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0";
+    sha256 = "sha256-mUYNMcEV7kEXsBddiF9HwsWQ14QgbwmBXcBY++Xt4fY=";
   };
 
   propagatedBuildInputs = [ qtbase qtsvg qttools ];
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
 
   qmakeFlags = [ "-after doc.path=$out/share/doc/${name}" ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Qt widgets for technical applications";
     homepage = "http://qwt.sourceforge.net/";
diff --git a/nixpkgs/pkgs/development/libraries/rabbitmq-c/default.nix b/nixpkgs/pkgs/development/libraries/rabbitmq-c/default.nix
index 94a9adcae877..3d8fa0f95d93 100644
--- a/nixpkgs/pkgs/development/libraries/rabbitmq-c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rabbitmq-c/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rabbitmq-c";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "alanxz";
     repo = "rabbitmq-c";
     rev = "v${version}";
-    sha256 = "1iv7aww4pam8497s524xjxbbxypyqd01qgrb0b429y3q9x06m4sw";
+    sha256 = "sha256-u1uOrZRiQOU/6vlLdQHypBRSCo3zw7FC1AI9v3NlBVE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/rabbitmq-java-client/default.nix b/nixpkgs/pkgs/development/libraries/rabbitmq-java-client/default.nix
index b649b1d9c113..e5657bcb3c30 100644
--- a/nixpkgs/pkgs/development/libraries/rabbitmq-java-client/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rabbitmq-java-client/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation {
     sha256 = "03kspkgzzjsbq6f8yl2zj5m30qwgxv3l58hrbf6gcgxb5rpfk6sh";
   };
 
-  buildInputs = [ ant jdk python makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ant jdk python ];
 
   buildPhase = "ant dist";
 
diff --git a/nixpkgs/pkgs/development/libraries/raylib/default.nix b/nixpkgs/pkgs/development/libraries/raylib/default.nix
new file mode 100644
index 000000000000..47d8fdb040b2
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/raylib/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake,
+  mesa, libGLU, glfw,
+  libX11, libXi, libXcursor, libXrandr, libXinerama,
+  alsaSupport ? stdenv.hostPlatform.isLinux, alsaLib,
+  pulseSupport ? stdenv.hostPlatform.isLinux, libpulseaudio,
+  includeEverything ? true
+}:
+
+stdenv.mkDerivation rec {
+  pname = "raylib";
+  version = "3.5.0";
+
+  src = fetchFromGitHub {
+    owner = "raysan5";
+    repo = pname;
+    rev = version;
+    sha256 = "0syvd5js1lbx3g4cddwwncqg95l6hb3fdz5nsh5pqy7fr6v84kwj";
+  };
+
+  patches = [
+    # fixes examples not compiling in 3.5.0
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/raysan5/raylib/pull/1470.patch";
+      sha256 = "1ff5l839wl8dxwrs2bwky7kqa8kk9qmsflg31sk5vbil68dzbzg0";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [
+    mesa libGLU glfw libX11 libXi libXcursor libXrandr libXinerama
+  ] ++ lib.optional alsaSupport alsaLib
+    ++ lib.optional pulseSupport libpulseaudio;
+
+  # https://github.com/raysan5/raylib/wiki/CMake-Build-Options
+  cmakeFlags = [
+    "-DUSE_EXTERNAL_GLFW=ON"
+    "-DSHARED=ON"
+    "-DBUILD_EXAMPLES=OFF"
+  ] ++ lib.optional includeEverything "-DINCLUDE_EVERYTHING=ON";
+
+  # fix libasound.so/libpulse.so not being found
+  preFixup = ''
+    ${lib.optionalString alsaSupport "patchelf --add-needed ${alsaLib}/lib/libasound.so $out/lib/libraylib.so.${version}"}
+    ${lib.optionalString pulseSupport "patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/libraylib.so.${version}"}
+  '';
+
+  meta = with lib; {
+    description = "A simple and easy-to-use library to enjoy videogames programming";
+    homepage = "http://www.raylib.com/";
+    license = licenses.zlib;
+    maintainers = with maintainers; [ adamlwgriffiths ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/rdkafka/default.nix b/nixpkgs/pkgs/development/libraries/rdkafka/default.nix
index a42941cbb689..0d7483d3c2e3 100644
--- a/nixpkgs/pkgs/development/libraries/rdkafka/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rdkafka/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, zlib, perl, pkg-config, python, openssl }:
+{ lib, stdenv, fetchFromGitHub, zlib, pkg-config, python3, openssl }:
 
 stdenv.mkDerivation rec {
   pname = "rdkafka";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "edenhill";
     repo = "librdkafka";
     rev = "v${version}";
-    sha256 = "sha256-VCGR0Q8FcoDLr+CFTk/OLMI4zs87K/IdZS1ANmkeb4s=";
+    sha256 = "sha256-EoNzxwuLiYi6sMhyqD/x+ku6BKA+i5og4XsUy2JBN0U=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config python3 ];
 
-  buildInputs = [ zlib perl python openssl ];
+  buildInputs = [ zlib openssl ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";
 
diff --git a/nixpkgs/pkgs/development/libraries/redkite/default.nix b/nixpkgs/pkgs/development/libraries/redkite/default.nix
index bc82e95be713..eb3d7629a4ea 100644
--- a/nixpkgs/pkgs/development/libraries/redkite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/redkite/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "redkite";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "iurie-sw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16j9zp5i7svq3g38rfb6h257qfgnd2brrxi7cjd2pdax9xxwj40y";
+    sha256 = "sha256-bf8kz9RyhDDuUHKiKvLiQLBIEXbIyoy3yuKfSpSYYv0=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/rep-gtk/default.nix b/nixpkgs/pkgs/development/libraries/rep-gtk/default.nix
index 618c91421b6a..433da05d088f 100644
--- a/nixpkgs/pkgs/development/libraries/rep-gtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rep-gtk/default.nix
@@ -1,30 +1,40 @@
-{ lib, stdenv, fetchurl, pkg-config, autoreconfHook, librep, gtk2 }:
+{ lib
+, stdenv
+, fetchurl
+, autoreconfHook
+, gtk2
+, librep
+, pkg-config
+}:
 
-with lib;
 stdenv.mkDerivation rec {
-
   pname = "rep-gtk";
   version = "0.90.8.3";
-  sourceName = "rep-gtk_${version}";
 
   src = fetchurl {
-    url = "https://download.tuxfamily.org/librep/rep-gtk/${sourceName}.tar.xz";
+    url = "https://download.tuxfamily.org/librep/${pname}/${pname}_${version}.tar.xz";
     sha256 = "0hgkkywm8zczir3lqr727bn7ybgg71x9cwj1av8fykkr8pdpard9";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ ];
-  propagatedBuildInputs = [ librep gtk2 ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+  buildInputs = [
+    gtk2
+    librep
+  ];
 
   patchPhase = ''
     sed -e 's|installdir=$(repexecdir)|installdir=$(libdir)/rep|g' -i Makefile.in
   '';
 
-  meta = {
+  meta = with lib; {
+    homepage = "http://sawfish.tuxfamily.org";
     description = "GTK bindings for librep";
-    homepage = "http://sawfish.wikia.com";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.unix;
   };
 }
 # TODO: investigate fetchFromGithub
diff --git a/nixpkgs/pkgs/development/libraries/resolv_wrapper/default.nix b/nixpkgs/pkgs/development/libraries/resolv_wrapper/default.nix
index 5b73bc41475d..69ec01747484 100644
--- a/nixpkgs/pkgs/development/libraries/resolv_wrapper/default.nix
+++ b/nixpkgs/pkgs/development/libraries/resolv_wrapper/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, cmake, pkg-config }:
 
 stdenv.mkDerivation rec {
-  name = "resolv_wrapper-1.1.6";
+  name = "resolv_wrapper-1.1.7";
 
   src = fetchurl {
     url = "mirror://samba/cwrap/${name}.tar.gz";
-    sha256 = "13k76l4s0v032xyyaf19qw6p4qc81ybx1wynkz2pzjhiljazsdpa";
+    sha256 = "sha256-Rgrn/V5TSFvn3ZmlXFki8csWNrnoghmB1JrRZQfIoHQ=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/rinutils/default.nix b/nixpkgs/pkgs/development/libraries/rinutils/default.nix
new file mode 100644
index 000000000000..35e48140fdd3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rinutils/default.nix
@@ -0,0 +1,21 @@
+{
+  stdenv, lib, fetchurl,
+  cmake, perl,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rinutils";
+  version = "0.8.0";
+
+  meta = with lib; {
+    homepage = "https://github.com/shlomif/rinutils";
+    license = licenses.mit;
+  };
+
+  src = fetchurl {
+    url = "https://github.com/shlomif/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
+    sha256 = "1q09aihm5m42xiq2prpa9mf0srwiirzgzblkp5nl74i7zg6pg5hx";
+  };
+
+  nativeBuildInputs = [ cmake perl ];
+}
diff --git a/nixpkgs/pkgs/development/libraries/rnnoise/default.nix b/nixpkgs/pkgs/development/libraries/rnnoise/default.nix
index 4dec2f3cfcb7..ad587f0f5839 100644
--- a/nixpkgs/pkgs/development/libraries/rnnoise/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rnnoise/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (rec {
   pname = "rnnoise";
-  version = "2020-06-28";
+  version = "2021-01-22";
 
   src = fetchFromGitHub {
     owner = "xiph";
     repo = "rnnoise";
-    rev = "90ec41ef659fd82cfec2103e9bb7fc235e9ea66c";
-    sha256 = "02z6qzjajhlpsb80lwl7cqqga9hm638psnqnppjkw84w4lrp15ny";
+    rev = "1cbdbcf1283499bbb2230a6b0f126eb9b236defd";
+    sha256 = "1y0rzgmvy8bf9a431garpm2w177s6ajgf79y5ymw4yb0pik57rwb";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/development/libraries/rocclr/default.nix b/nixpkgs/pkgs/development/libraries/rocclr/default.nix
index 278fdecc1a67..c93ea5ba78ba 100644
--- a/nixpkgs/pkgs/development/libraries/rocclr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rocclr/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocclr";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "ROCm-Developer-Tools";
     repo = "ROCclr";
     rev = "rocm-${version}";
-    hash = "sha256-B27ff1b9JRhxFUsBt7CGuYaR87hvKbVSCERWD45d8tM=";
+    hash = "sha256-2DI/PL29aiZcxOrGZBzXwAnNgZQpSDjyyGKgl+vDErk=";
   };
 
   nativeBuildInputs = [ cmake rocm-cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/rocksdb/default.nix b/nixpkgs/pkgs/development/libraries/rocksdb/default.nix
index e4ee3c473075..6ab2fe9f6cbf 100644
--- a/nixpkgs/pkgs/development/libraries/rocksdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rocksdb/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocksdb";
-  version = "6.15.5";
+  version = "6.17.3";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-o7bi0xcWaH5DXcEJgfY7MxhYfntqhzGoko6EqgrKyY8=";
+    sha256 = "sha256-mfONfYMxZ3CT7Bk3OYSwg0UChmk4mQ1+cHN94gEDZcM=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/nixpkgs/pkgs/development/libraries/rocm-comgr/default.nix b/nixpkgs/pkgs/development/libraries/rocm-comgr/default.nix
index 96f7108e3fe0..b9a34b113ebd 100644
--- a/nixpkgs/pkgs/development/libraries/rocm-comgr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rocm-comgr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-comgr";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCm-CompilerSupport";
     rev = "rocm-${version}";
-    hash = "sha256-JMzXg1Hw0iWcTnKu/NgW7rD8iagp724F01GaJbrJj9M=";
+    hash = "sha256-LbQqyJxRqb6vpXiYSkRlF1FeqXJJXktPafGmYDDK02U=";
   };
 
   sourceRoot = "source/lib/comgr";
diff --git a/nixpkgs/pkgs/development/libraries/rocm-device-libs/default.nix b/nixpkgs/pkgs/development/libraries/rocm-device-libs/default.nix
index 965d92179b67..e62d6f0076fc 100644
--- a/nixpkgs/pkgs/development/libraries/rocm-device-libs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rocm-device-libs/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-device-libs";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCm-Device-Libs";
     rev = "rocm-${version}";
-    hash = "sha256-IAE8T/gmotXO/ADH3bxTjrpxWd2lRoj3o/rrSaEFNNo=";
+    hash = "sha256-9p6PIXdHFIgHgNWZzqVz5O9i2Np0z/iyxodG2cLrpGs=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/rocm-opencl-runtime/default.nix b/nixpkgs/pkgs/development/libraries/rocm-opencl-runtime/default.nix
index ab0957474adc..d721cfece96a 100644
--- a/nixpkgs/pkgs/development/libraries/rocm-opencl-runtime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rocm-opencl-runtime/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-opencl-runtime";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCm-OpenCL-Runtime";
     rev = "rocm-${version}";
-    hash = "sha256-kW5jTDlQtXQ0i4ADJEnmESxjcLCt4QZCYJ1ouIsk4YE=";
+    hash = "sha256-+6h1E5uWNKjjaeO5ZIi854CWYi0QGQ5mVUHdi9+4vX4=";
   };
 
   nativeBuildInputs = [ cmake rocm-cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/rocm-runtime/default.nix b/nixpkgs/pkgs/development/libraries/rocm-runtime/default.nix
index beb0c61e683c..c63e8249cfc0 100644
--- a/nixpkgs/pkgs/development/libraries/rocm-runtime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rocm-runtime/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-runtime";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCR-Runtime";
     rev = "rocm-${version}";
-    hash = "sha256-8hNb0Yo9ApedOG7xrUr5rwiA/YsqDTcyr6dBRg8lXro=";
+    hash = "sha256-Jxg3n203tV0L+UrmeQEuzX0TKpFu5An2cnuEA/F/SNY=";
   };
 
   sourceRoot = "source/src";
diff --git a/nixpkgs/pkgs/development/libraries/rocm-thunk/default.nix b/nixpkgs/pkgs/development/libraries/rocm-thunk/default.nix
index 5863e1f0a57c..1339e035ebfd 100644
--- a/nixpkgs/pkgs/development/libraries/rocm-thunk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rocm-thunk/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-thunk";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCT-Thunk-Interface";
     rev = "rocm-${version}";
-    hash = "sha256-2kLSlGwX3pD8I5pXwV5L0k9l8OzJRkUvnAqv5E+gcd4=";
+    hash = "sha256-gdto7BbrSRa3UiRNvTW1KLkHyjrcxdah4+L+1Gdm0wA=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/libraries/s2geometry/default.nix b/nixpkgs/pkgs/development/libraries/s2geometry/default.nix
new file mode 100644
index 000000000000..afd5ffa0a0a2
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/s2geometry/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config, openssl, gtest }:
+
+stdenv.mkDerivation rec {
+  pname = "s2geometry";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "s2geometry";
+    rev = "v${version}";
+    sha256 = "1mx61bnn2f6bd281qlhn667q6yfg1pxzd2js88l5wpkqlfzzhfaz";
+  };
+
+  patches = [
+    # Fix build https://github.com/google/s2geometry/issues/165
+    (fetchpatch {
+      url = "https://github.com/google/s2geometry/commit/a4dddf40647c68cd0104eafc31e9c8fb247a6308.patch";
+      sha256 = "0fp3w4bg7pgf5vv4vacp9g06rbqzhxc2fg6i5appp93q6phiinvi";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ openssl gtest ];
+
+  meta = with lib; {
+    description = "Computational geometry and spatial indexing on the sphere";
+    homepage = "http://s2geometry.io/";
+    license = licenses.asl20;
+    maintainers = [ maintainers.Thra11 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/s2n/default.nix b/nixpkgs/pkgs/development/libraries/s2n-tls/default.nix
index 3ec66ebf52d1..2d3ebc6cb414 100644
--- a/nixpkgs/pkgs/development/libraries/s2n/default.nix
+++ b/nixpkgs/pkgs/development/libraries/s2n-tls/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, cmake, openssl }:
 
 stdenv.mkDerivation rec {
-  pname = "s2n";
-  version = "0.10.23";
+  pname = "s2n-tls";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
-    owner = "awslabs";
+    owner = "aws";
     repo = pname;
     rev = "v${version}";
-    sha256 = "063wqpszhfcbxm7a7s6d6kinqd6b6dxij85lk9jjkrslg5fgqbki";
+    sha256 = "1q6kmgwb8jxmc4ijzk9pkqzz8lsbfsv9hyzqvy944w7306zx1r5h";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C99 implementation of the TLS/SSL protocols";
-    homepage = "https://github.com/awslabs/s2n";
+    homepage = "https://github.com/aws/s2n-tls";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/development/libraries/safefile/default.nix b/nixpkgs/pkgs/development/libraries/safefile/default.nix
index db18621d8e43..293a13dbddc4 100644
--- a/nixpkgs/pkgs/development/libraries/safefile/default.nix
+++ b/nixpkgs/pkgs/development/libraries/safefile/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     description = "File open routines to safely open a file when in the presence of an attack";
     license = lib.licenses.asl20 ;
     maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
     homepage = "https://research.cs.wisc.edu/mist/safefile/";
     updateWalker = true;
   };
diff --git a/nixpkgs/pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch b/nixpkgs/pkgs/development/libraries/science/astronomy/cfitsio/darwin-rpath-universal.patch
index af38abf329ea..af38abf329ea 100644
--- a/nixpkgs/pkgs/development/libraries/cfitsio/darwin-rpath-universal.patch
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/cfitsio/darwin-rpath-universal.patch
diff --git a/nixpkgs/pkgs/development/libraries/cfitsio/default.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/cfitsio/default.nix
index a430bc317930..a3263f653b75 100644
--- a/nixpkgs/pkgs/development/libraries/cfitsio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/cfitsio/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./darwin-rpath-universal.patch ];
 
-  configureFlags = "--with-bzip2=${bzip2.out}";
+  configureFlags = [ "--with-bzip2=${bzip2.out}" ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/indilib/default.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix
index 035356ac861a..f7966046fa87 100644
--- a/nixpkgs/pkgs/development/libraries/indilib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , fetchFromGitHub
 , cmake
 , cfitsio
@@ -14,19 +15,15 @@
 
 stdenv.mkDerivation rec {
   pname = "indilib";
-  version = "1.8.8";
+  version = "1.8.9";
 
   src = fetchFromGitHub {
     owner = "indilib";
     repo = "indi";
     rev = "v${version}";
-    sha256 = "sha256-WTRfV6f764tDGKnQVd1jeYN/qXa/VRTFK0mMalc+9aU=";
+    sha256 = "sha256-W6LfrKL56K1B6srEfbNcq1MZwg7Oj8qoJkQ83ZhYhFs=";
   };
 
-  patches = [
-    ./udev-dir.patch
-  ];
-
   nativeBuildInputs = [
     cmake
   ];
@@ -43,11 +40,17 @@ stdenv.mkDerivation rec {
     fftw
   ];
 
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d"
+  ];
+
   meta = with lib; {
     homepage = "https://www.indilib.org/";
     description = "Implementation of the INDI protocol for POSIX operating systems";
+    changelog = "https://github.com/indilib/indi/releases/tag/v${version}";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ hjones2199 ];
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
new file mode 100644
index 000000000000..34ef40887135
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, cfitsio
+, libusb1
+, zlib
+, boost
+, libnova
+, curl
+, libjpeg
+, gsl
+, fftw
+, indilib
+, libgphoto2
+, libraw
+, libftdi1
+, libdc1394
+, gpsd
+, ffmpeg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "indi-3rdparty";
+  version = "1.8.9";
+
+  src = fetchFromGitHub {
+    owner = "indilib";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0klvknhp7l6y2ab4vyv4jq7znk1gjl5b3709kyplm7dsh4b8bppy";
+  };
+
+  cmakeFlags = [
+    "-DINDI_DATA_DIR=\${CMAKE_INSTALL_PREFIX}/share/indi"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d"
+    "-DRULES_INSTALL_DIR=lib/udev/rules.d"
+    "-DWITH_SX=off"
+    "-DWITH_SBIG=off"
+    "-DWITH_APOGEE=off"
+    "-DWITH_FISHCAMP=off"
+    "-DWITH_DSI=off"
+    "-DWITH_QHY=off"
+    "-DWITH_ARMADILLO=off"
+    "-DWITH_PENTAX=off"
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    indilib libnova curl cfitsio libusb1 zlib boost gsl gpsd
+    libjpeg libgphoto2 libraw libftdi1 libdc1394 ffmpeg fftw
+  ];
+
+  meta = with lib; {
+    homepage = "https://www.indilib.org/";
+    description = "Third party drivers for the INDI astronomical software suite";
+    changelog = "https://github.com/indilib/indi-3rdparty/releases/tag/v${version}";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ hjones2199 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
new file mode 100644
index 000000000000..e52da9f2eab1
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
@@ -0,0 +1,11 @@
+{ callPackage, indilib, indi-3rdparty }:
+
+let
+  indi-with-drivers = ./indi-with-drivers.nix;
+in
+callPackage indi-with-drivers {
+  pkgName = "indi-full";
+  extraDrivers = [
+    indi-3rdparty
+  ];
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix
new file mode 100644
index 000000000000..27ac86ddbadf
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix
@@ -0,0 +1,10 @@
+{ buildEnv, indilib ? indilib, extraDrivers ? null , pkgName ? "indi-with-drivers" }:
+
+buildEnv {
+  name = pkgName;
+  paths = [
+    indilib
+  ]
+  ++ extraDrivers;
+  inherit (indilib) meta;
+}
diff --git a/nixpkgs/pkgs/development/libraries/libnova/default.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/libnova/default.nix
index f6a8d01ab845..f6a8d01ab845 100644
--- a/nixpkgs/pkgs/development/libraries/libnova/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/libnova/default.nix
diff --git a/nixpkgs/pkgs/development/libraries/stellarsolver/default.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/stellarsolver/default.nix
index f55c72bd2095..f55c72bd2095 100644
--- a/nixpkgs/pkgs/development/libraries/stellarsolver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/stellarsolver/default.nix
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/wcslib/default.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/wcslib/default.nix
new file mode 100644
index 000000000000..b16ba1117f4e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/wcslib/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, flex }:
+
+stdenv.mkDerivation rec {
+  pname = "wcslib";
+  version = "7.5";
+
+  src = fetchurl {
+    url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
+    sha256 = "1536gmcpm6pckn9xrb6j8s4pm1vryjhzvhfaj9wx3jwxcpbdy0dw";
+  };
+
+  buildInputs = [ flex ];
+
+  prePatch = ''
+    substituteInPlace GNUmakefile --replace 2775 0775
+    substituteInPlace C/GNUmakefile --replace 2775 0775
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://www.atnf.csiro.au/people/mcalabre/WCS/";
+    description = "World Coordinate System library for astronomy";
+    longDescription = ''
+      Library for world coordinate systems for spherical geometries
+      and their conversion to image coordinate systems. This is the
+      standard library for this purpose in astronomy.
+    '';
+    maintainers = with maintainers; [ hjones2199 ];
+    license = licenses.lgpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/biology/htslib/default.nix b/nixpkgs/pkgs/development/libraries/science/biology/htslib/default.nix
index cb3a543ad2af..3233a29449aa 100644
--- a/nixpkgs/pkgs/development/libraries/science/biology/htslib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/biology/htslib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, zlib, bzip2, lzma, curl, perl }:
+{ lib, stdenv, fetchurl, zlib, bzip2, xz, curl, perl }:
 
 stdenv.mkDerivation rec {
   pname = "htslib";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   # perl is only used during the check phase.
   nativeBuildInputs = [ perl ];
 
-  buildInputs = [ zlib bzip2 lzma curl ];
+  buildInputs = [ zlib bzip2 xz curl ];
 
   configureFlags = [ "--enable-libcurl" ]; # optional but strongly recommended
 
diff --git a/nixpkgs/pkgs/development/libraries/science/math/QuadProgpp/default.nix b/nixpkgs/pkgs/development/libraries/science/math/QuadProgpp/default.nix
index 254ce08dc60f..703a7f2e3441 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/QuadProgpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/QuadProgpp/default.nix
@@ -12,7 +12,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ ];
 
   meta = with lib; {
     homepage = "https://github.com/liuq/QuadProgpp";
@@ -22,6 +21,6 @@ stdenv.mkDerivation rec {
       Goldfarb-Idnani active-set dual method.
     '';
     maintainers = with maintainers; [ ];
-    platforms = with platforms; linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/amd-blis/default.nix b/nixpkgs/pkgs/development/libraries/science/math/amd-blis/default.nix
index 42c84b3ed610..1eea35a34e76 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/amd-blis/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/amd-blis/default.nix
@@ -6,10 +6,10 @@
 # Enable BLAS interface with 64-bit integer width.
 , blas64 ? false
 
-# Target architecture, use "zen" or "zen2", optimization for Zen and
-# other families is pretty much mutually exclusive in the AMD fork of
-# BLIS.
-, withArchitecture ? "zen"
+# Target architecture. "amd64" compiles kernels for all Zen
+# generations. To build kernels for specific Zen generations,
+# use "zen", "zen2", or "zen3".
+, withArchitecture ? "amd64"
 
 # Enable OpenMP-based threading.
 , withOpenMP ? true
@@ -20,13 +20,13 @@ let
   blasIntSize = if blas64 then "64" else "32";
 in stdenv.mkDerivation rec {
   pname = "amd-blis";
-  version = "2.2";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "amd";
     repo = "blis";
     rev = version;
-    sha256 = "1b2f5bwi0gkw2ih2rb7wfzn3m9hgg7k270kg43rmzpr2acpy86xa";
+    hash = "sha256-bbbeo1yOKse9pzbsB6lQ7pULKdzu3G7zJzTUgPXiMZY=";
   };
 
   inherit blas64;
@@ -36,7 +36,10 @@ in stdenv.mkDerivation rec {
     python3
   ];
 
-  doCheck = true;
+  # Tests currently fail with non-Zen CPUs due to a floating point
+  # exception in one of the generic kernels. Try to re-enable the
+  # next release.
+  doCheck = false;
 
   enableParallelBuilding = true;
 
@@ -51,8 +54,8 @@ in stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    ln -s $out/lib/libblis${threadingSuffix}.so.2 $out/lib/libblas.so.3
-    ln -s $out/lib/libblis${threadingSuffix}.so.2 $out/lib/libcblas.so.3
+    ln -s $out/lib/libblis${threadingSuffix}.so.3 $out/lib/libblas.so.3
+    ln -s $out/lib/libblis${threadingSuffix}.so.3 $out/lib/libcblas.so.3
     ln -s $out/lib/libblas.so.3 $out/lib/libblas.so
     ln -s $out/lib/libcblas.so.3 $out/lib/libcblas.so
   '';
diff --git a/nixpkgs/pkgs/development/libraries/science/math/amd-libflame/default.nix b/nixpkgs/pkgs/development/libraries/science/math/amd-libflame/default.nix
index ac35385f9835..f17124db47bb 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/amd-libflame/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/amd-libflame/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "amd-libflame";
-  version = "2.2";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "amd";
     repo = "libflame";
     rev = version;
-    sha256 = "1s8zvq6p843jb52lrbxra7vv0wzmifs4j36z9bp7wf3xr20a0zi5";
+    hash = "sha256-jESae5NqANw90RBbIHH2oGEq5/mudc4IONv50P/AeQ0=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix b/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix
index 382f868a99ac..23e44bf28b06 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix
@@ -1,17 +1,27 @@
-{ lib, stdenv, fetchFromGitHub, cmake
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake
 , gfortran, blas, lapack, eigen }:
 
 stdenv.mkDerivation rec {
   pname = "arpack";
-  version = "3.7.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "opencollab";
     repo = "arpack-ng";
     rev = version;
-    sha256 = "1x7a1dj3dg43nlpvjlh8jzzbadjyr3mbias6f0256qkmgdyk4izr";
+    sha256 = "sha256-nc710iLRqy/p3EaVgbEoCRzNJ9GpKqqQp33tbn7R6lA=";
   };
 
+  patches = [
+    # https://github.com/opencollab/arpack-ng/pull/301
+    (fetchpatch {
+      name = "pkg-config-paths.patch";
+      url = "https://github.com/opencollab/arpack-ng/commit/47fc83cb371a9cc8a8c058097de5e0298cd548f5.patch";
+      excludes = [ "CHANGES" ];
+      sha256 = "1aijvrfsxkgzqmkzq2dmaj8q3jdpg2hwlqpfl8ddk9scv17gh9m8";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = assert (blas.isILP64 == lapack.isILP64); [
     gfortran
@@ -24,7 +34,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=ON"
-    "-DINTERFACE64=${lib.optionalString blas.isILP64 "1"}"
+    "-DINTERFACE64=${if blas.isILP64 then "1" else "0"}"
   ];
 
   preCheck = if stdenv.isDarwin then ''
@@ -36,12 +46,6 @@ stdenv.mkDerivation rec {
     export OMP_NUM_THREADS=2
   '';
 
-  postInstall = ''
-    mkdir -p $out/lib/pkgconfig
-    cp arpack.pc $out/lib/pkgconfig/
-  '';
-
-
   meta = {
     homepage = "https://github.com/opencollab/arpack-ng";
     description = ''
@@ -49,7 +53,7 @@ stdenv.mkDerivation rec {
       problems.
     '';
     license = lib.licenses.bsd3;
-    maintainers = [ lib.maintainers.ttuegel ];
+    maintainers = with lib.maintainers; [ ttuegel dotlambda ];
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/clblas/default.nix b/nixpkgs/pkgs/development/libraries/science/math/clblas/default.nix
index aca395001f96..fcb49d70a3b1 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/clblas/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/clblas/default.nix
@@ -4,7 +4,7 @@
 , gfortran
 , blas
 , boost
-, python
+, python3
 , ocl-icd
 , opencl-headers
 , Accelerate, CoreGraphics, CoreVideo, OpenCL
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     gfortran
     blas
-    python
+    python3
     boost
   ] ++ lib.optionals (!stdenv.isDarwin) [
     ocl-icd
@@ -53,6 +53,8 @@ stdenv.mkDerivation rec {
     OpenCL
   ];
 
+  strictDeps = true;
+
   meta = with lib; {
     homepage = "https://github.com/clMathLibraries/clBLAS";
     description = "A software library containing BLAS functions written in OpenCL";
diff --git a/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix b/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix
index d99149c0e965..b8aac46d9194 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, cudatoolkit_7, cudatoolkit_7_5, cudatoolkit_8, cudatoolkit_9_0, cudatoolkit_9_1, cudatoolkit_9_2, cudatoolkit_10_0, cudatoolkit_10_1, cudatoolkit_10_2, cudatoolkit_11_0 }:
+{ callPackage, cudatoolkit_9_0, cudatoolkit_9_1, cudatoolkit_9_2, cudatoolkit_10_0, cudatoolkit_10_1, cudatoolkit_10_2, cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2 }:
 
 let
   generic = args: callPackage (import ./generic.nix (removeAttrs args ["cudatoolkit"])) {
@@ -6,35 +6,6 @@ let
   };
 
 in rec {
-  cudnn_cudatoolkit_7 = generic rec {
-    # Old URL is v4 instead of v4.0 for some reason...
-    version = "4";
-    cudatoolkit = cudatoolkit_7;
-    srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v4.0-prod.tgz";
-    sha256 = "01a4v5j4v9n2xjqcc4m28c3m67qrvsx87npvy7zhx7w8smiif2fd";
-  };
-
-  cudnn_cudatoolkit_7_5 = generic rec {
-    version = "6.0";
-    cudatoolkit = cudatoolkit_7_5;
-    srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v${version}.tgz";
-    sha256 = "0b68hv8pqcvh7z8xlgm4cxr9rfbjs0yvg1xj2n5ap4az1h3lp3an";
-  };
-
-  cudnn6_cudatoolkit_8 = generic rec {
-    version = "6.0";
-    cudatoolkit = cudatoolkit_8;
-    srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v${version}.tgz";
-    sha256 = "173zpgrk55ri8if7s5yngsc89ajd6hz4pss4cdxlv6lcyh5122cv";
-  };
-
-  cudnn_cudatoolkit_8 = generic rec {
-    version = "7.0.5";
-    cudatoolkit = cudatoolkit_8;
-    srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v7.tgz";
-    sha256 = "9e0b31735918fe33a79c4b3e612143d33f48f61c095a3b993023cdab46f6d66e";
-  };
-
   cudnn_cudatoolkit_9_0 = generic rec {
     version = "7.3.0";
     cudatoolkit = cudatoolkit_9_0;
@@ -82,11 +53,21 @@ in rec {
   cudnn_cudatoolkit_10 = cudnn_cudatoolkit_10_2;
 
   cudnn_cudatoolkit_11_0 = generic rec {
-    version = "8.0.2";
+    version = "8.1.0";
     cudatoolkit = cudatoolkit_11_0;
-    srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v8.0.2.39.tgz";
-    sha256 = "0ib3v3bgcdxarqapkxngw1nwl0c2a7zz392ns7w9ipcficl4cbv7";
+    # 8.1.0 is compatible with CUDA 11.0, 11.1, and 11.2:
+    # https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-cuda-hardware-versions
+    srcName = "cudnn-11.2-linux-x64-v8.1.0.77.tgz";
+    sha256 = "sha256-2+gvrwcdkbqbzwBIAUatM/RiSC3+5WyvRHnBuNq+Pss=";
+  };
+
+  cudnn_cudatoolkit_11_1 = cudnn_cudatoolkit_11_0.override {
+    cudatoolkit = cudatoolkit_11_1;
+  };
+
+  cudnn_cudatoolkit_11_2 = cudnn_cudatoolkit_11_0.override {
+    cudatoolkit = cudatoolkit_11_2;
   };
 
-  cudnn_cudatoolkit_11 = cudnn_cudatoolkit_11_0;
+  cudnn_cudatoolkit_11 = cudnn_cudatoolkit_11_2;
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix b/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix
index 59c0b7f44980..d9c19e6790c6 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix
@@ -8,6 +8,14 @@
 , cudatoolkit
 , fetchurl
 , addOpenGLRunpath
+, # The distributed version of CUDNN includes both dynamically liked .so files,
+  # as well as statically linked .a files.  However, CUDNN is quite large
+  # (multiple gigabytes), so you can save some space in your nix store by
+  # removing the statically linked libraries if you are not using them.
+  #
+  # Setting this to true removes the statically linked .a files.
+  # Setting this to false keeps these statically linked .a files.
+  removeStatic ? false
 }:
 
 stdenv.mkDerivation {
@@ -23,28 +31,31 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ addOpenGLRunpath ];
 
   installPhase = ''
+    runHook preInstall
+
     function fixRunPath {
       p=$(patchelf --print-rpath $1)
-      patchelf --set-rpath "$p:${lib.makeLibraryPath [ stdenv.cc.cc ]}" $1
+      patchelf --set-rpath "''${p:+$p:}${lib.makeLibraryPath [ stdenv.cc.cc ]}:\$ORIGIN/" $1
     }
-    fixRunPath lib64/libcudnn.so
+
+    for lib in lib64/lib*.so; do
+      fixRunPath $lib
+    done
 
     mkdir -p $out
     cp -a include $out/include
     cp -a lib64 $out/lib64
+  '' + lib.optionalString removeStatic ''
+    rm -f $out/lib64/*.a
+  '' + ''
+    runHook postInstall
   '';
 
   # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
   # See the explanation in addOpenGLRunpath.
   postFixup = ''
     for lib in $out/lib/lib*.so; do
-      # patchelf fails on libcudnn_cnn_infer due to it being too big.
-      # Most programs will still get the RPATH since they link to
-      # other things.
-      # (https://github.com/NixOS/patchelf/issues/222)
-      if [ "$(basename $lib)" != libcudnn_cnn_infer.so ]; then
-        addOpenGLRunpath $lib
-      fi
+      addOpenGLRunpath $lib
     done
   '';
 
diff --git a/nixpkgs/pkgs/development/libraries/science/math/cutensor/default.nix b/nixpkgs/pkgs/development/libraries/science/math/cutensor/default.nix
new file mode 100644
index 000000000000..1b5895b02bb3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/cutensor/default.nix
@@ -0,0 +1,37 @@
+{ callPackage
+, cudatoolkit_10_1, cudatoolkit_10_2
+, cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2
+}:
+
+rec {
+  cutensor_cudatoolkit_10_1 = callPackage ./generic.nix rec {
+    version = "1.2.2.5";
+    libPath = "lib/10.1";
+    cudatoolkit = cudatoolkit_10_1;
+    # 1.2.2 is compatible with CUDA 11.0, 11.1, and 11.2:
+    # ephemeral doc at https://developer.nvidia.com/cutensor/downloads
+    sha256 = "1dl9bd71frhac9cb8lvnh71zfsnqxbxbfhndvva2zf6nh0my4klm";
+  };
+
+  cutensor_cudatoolkit_10_2 = cutensor_cudatoolkit_10_1.override {
+    libPath = "lib/10.2";
+    cudatoolkit = cudatoolkit_10_2;
+  };
+
+  cutensor_cudatoolkit_10 = cutensor_cudatoolkit_10_2;
+
+  cutensor_cudatoolkit_11_0 = cutensor_cudatoolkit_10_2.override {
+    libPath = "lib/11";
+    cudatoolkit = cudatoolkit_11_0;
+  };
+
+  cutensor_cudatoolkit_11_1 = cutensor_cudatoolkit_11_0.override {
+    cudatoolkit = cudatoolkit_11_1;
+  };
+
+  cutensor_cudatoolkit_11_2 = cutensor_cudatoolkit_11_0.override {
+    cudatoolkit = cudatoolkit_11_2;
+  };
+
+  cutensor_cudatoolkit_11 = cutensor_cudatoolkit_11_2;
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/cutensor/generic.nix b/nixpkgs/pkgs/development/libraries/science/math/cutensor/generic.nix
new file mode 100644
index 000000000000..0b2bd31b2c30
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/cutensor/generic.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, lib
+, libPath
+, cudatoolkit
+, fetchurl
+, autoPatchelfHook
+, addOpenGLRunpath
+
+, version
+, sha256
+}:
+
+let
+  mostOfVersion = builtins.concatStringsSep "."
+    (lib.take 3 (lib.versions.splitVersion version));
+in
+
+stdenv.mkDerivation {
+  pname = "cudatoolkit-${cudatoolkit.majorVersion}-cutensor";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://developer.download.nvidia.com/compute/cutensor/${mostOfVersion}/local_installers/libcutensor-${stdenv.hostPlatform.parsed.kernel.name}-${stdenv.hostPlatform.parsed.cpu.name}-${version}.tar.gz";
+    inherit sha256;
+  };
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    addOpenGLRunpath
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+  ];
+
+  propagatedBuildInputs = [
+    cudatoolkit
+  ];
+
+  # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
+  # See the explanation in addOpenGLRunpath.
+  installPhase = ''
+    mkdir -p "$out" "$dev"
+    mv include "$dev"
+    mv ${libPath} "$out/lib"
+
+    function finalRPathFixups {
+      for lib in $out/lib/lib*.so; do
+        addOpenGLRunpath $lib
+      done
+    }
+    postFixupHooks+=(finalRPathFixups)
+  '';
+
+  passthru = {
+    inherit cudatoolkit;
+    majorVersion = lib.versions.major version;
+  };
+
+  meta = with lib; {
+    description = "cuTENSOR: A High-Performance CUDA Library For Tensor Primitives";
+    homepage = "https://developer.nvidia.com/cutensor";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ obsidian-systems-maintenance ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/liblapack/default.nix b/nixpkgs/pkgs/development/libraries/science/math/liblapack/default.nix
index c742cc60b27f..50563f2745ab 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -3,7 +3,6 @@
   fetchFromGitHub,
   gfortran,
   cmake,
-  python2,
   shared ? true
 }:
 let
@@ -11,7 +10,7 @@ let
   version = "3.9.0";
 in
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "liblapack";
   inherit version;
 
@@ -22,17 +21,41 @@ stdenv.mkDerivation {
     sha256 = "0sxnc97z67i7phdmcnq8f8lmxgw10wdwvr8ami0w3pb179cgrbpb";
   };
 
-  nativeBuildInputs = [ gfortran python2 cmake ];
+  nativeBuildInputs = [ gfortran cmake ];
+
+  # Configure stage fails on aarch64-darwin otherwise, due to either clang 11 or gfortran 10.
+  hardeningDisable = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ "stackprotector" ];
 
   cmakeFlags = [
     "-DCMAKE_Fortran_FLAGS=-fPIC"
     "-DLAPACKE=ON"
     "-DCBLAS=ON"
+    "-DBUILD_TESTING=ON"
   ]
   ++ optional shared "-DBUILD_SHARED_LIBS=ON";
 
   doCheck = true;
 
+  # Some CBLAS related tests fail on Darwin:
+  #  14 - CBLAS-xscblat2 (Failed)
+  #  15 - CBLAS-xscblat3 (Failed)
+  #  17 - CBLAS-xdcblat2 (Failed)
+  #  18 - CBLAS-xdcblat3 (Failed)
+  #  20 - CBLAS-xccblat2 (Failed)
+  #  21 - CBLAS-xccblat3 (Failed)
+  #  23 - CBLAS-xzcblat2 (Failed)
+  #  24 - CBLAS-xzcblat3 (Failed)
+  #
+  # Upstream issue to track:
+  # * https://github.com/Reference-LAPACK/lapack/issues/440
+  ctestArgs = lib.optionalString stdenv.isDarwin "-E '^(CBLAS-(x[sdcz]cblat[23]))$'";
+
+  checkPhase = ''
+    runHook preCheck
+    ctest ${ctestArgs}
+    runHook postCheck
+  '';
+
   meta = with lib; {
     inherit version;
     description = "Linear Algebra PACKage";
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix b/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix
index 9631f3931cab..481836a4e115 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix
@@ -8,11 +8,17 @@
 , fixDarwinDylibNames
 
 , cudaSupport
-, nvidia_x11
+, cudatoolkit_11_1
+, cudnn_cudatoolkit_11_1
 }:
 
 let
-  version = "1.7.1";
+  # The binary libtorch distribution statically links the CUDA
+  # toolkit. This means that we do not need to provide CUDA to
+  # this derivation. However, we should ensure on version bumps
+  # that the CUDA toolkit for `passthru.tests` is still
+  # up-to-date.
+  version = "1.8.0";
   device = if cudaSupport then "cuda" else "cpu";
   srcs = import ./binary-hashes.nix version;
   unavailable = throw "libtorch is not available for this platform";
@@ -24,12 +30,7 @@ in stdenv.mkDerivation {
 
   nativeBuildInputs =
     if stdenv.isDarwin then [ fixDarwinDylibNames ]
-    else [ addOpenGLRunpath patchelf ]
-      ++ lib.optionals cudaSupport [ addOpenGLRunpath ];
-
-  buildInputs = [
-    stdenv.cc.cc
-  ] ++ lib.optionals cudaSupport [ nvidia_x11 ];
+    else [ patchelf ] ++ lib.optionals cudaSupport [ addOpenGLRunpath ];
 
   dontBuild = true;
   dontConfigure = true;
@@ -37,7 +38,7 @@ in stdenv.mkDerivation {
 
   installPhase = ''
     # Copy headers and CMake files.
-    install -Dm755 -t $dev/lib lib/*.a
+    mkdir -p $dev
     cp -r include $dev
     cp -r share $dev
 
@@ -56,9 +57,7 @@ in stdenv.mkDerivation {
   '';
 
   postFixup = let
-    libPaths = [ stdenv.cc.cc.lib ]
-      ++ lib.optionals cudaSupport [ nvidia_x11 ];
-    rpath = lib.makeLibraryPath libPaths;
+    rpath = lib.makeLibraryPath [ stdenv.cc.cc.lib ];
   in lib.optionalString stdenv.isLinux ''
     find $out/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
       echo "setting rpath for $lib..."
@@ -108,12 +107,17 @@ in stdenv.mkDerivation {
 
   outputs = [ "out" "dev" ];
 
-  passthru.tests.cmake = callPackage ./test { };
+  passthru.tests.cmake = callPackage ./test {
+    inherit cudaSupport;
+    cudatoolkit = cudatoolkit_11_1;
+    cudnn = cudnn_cudatoolkit_11_1;
+  };
 
   meta = with lib; {
     description = "C++ API of the PyTorch machine learning framework";
     homepage = "https://pytorch.org/";
     license = licenses.unfree; # Includes CUDA and Intel MKL.
+    maintainers = with maintainers; [ danieldk ];
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix b/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
index 7f815a31a51e..208e0b7adab8 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
@@ -1,14 +1,14 @@
 version: {
   x86_64-darwin-cpu = {
     url = "https://download.pytorch.org/libtorch/cpu/libtorch-macos-${version}.zip";
-    sha256 = "0n93r7bq6wjjxkczp8r5pjm1nvl75wns5higsvh7gsir0j6k7b5b";
+    hash = "sha256-V1lbztMB09wyWjdiJrwVwJ00DT8Kihy/TC2cKmdBLIE=";
   };
   x86_64-linux-cpu = {
     url = "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-${version}%2Bcpu.zip";
-    sha256 = "0gpcj90nxyc69p53jiqwamd4gi7wzssk29csxfsyxsrzg3h36s7z";
+    hash = "sha256-xBaNyI7eiQnSArHMITonrQQLZnZCZK/SWKOTWnxzdpc=";
   };
   x86_64-linux-cuda = {
-    url = "https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-${version}.zip";
-    sha256 = "01z61ryrflq306x7ay97k2fqc2q2z9c4c1zcnjfzr6412vg4fjb8";
+    url = "https://download.pytorch.org/libtorch/cu111/libtorch-cxx11-abi-shared-with-deps-${version}%2Bcu111.zip";
+    hash = "sha256-uQ7ptOuzowJ0JSPIvJHyNotBfpsqAnxpMDLq7Vl6L00=";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix b/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix
index e69807871f46..60f9b5ad8846 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix
@@ -1,6 +1,28 @@
-{ stdenv, cmake, libtorch-bin, symlinkJoin }:
+{ lib
+, stdenv
+, cmake
+, libtorch-bin
+, linkFarm
+, symlinkJoin
 
-stdenv.mkDerivation {
+, cudaSupport
+, cudatoolkit
+, cudnn
+}:
+let
+  cudatoolkit_joined = symlinkJoin {
+    name = "${cudatoolkit.name}-unsplit";
+    paths = [ cudatoolkit.out cudatoolkit.lib ];
+  };
+
+  # We do not have access to /run/opengl-driver/lib in the sandbox,
+  # so use a stub instead.
+  cudaStub = linkFarm "cuda-stub" [{
+    name = "libcuda.so.1";
+    path = "${cudatoolkit}/lib/stubs/libcuda.so";
+  }];
+
+in stdenv.mkDerivation {
   pname = "libtorch-test";
   version = libtorch-bin.version;
 
@@ -8,7 +30,11 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ libtorch-bin ];
+  buildInputs = [ libtorch-bin ] ++
+    lib.optionals cudaSupport [ cudnn ];
+
+  cmakeFlags = lib.optionals cudaSupport
+    [ "-DCUDA_TOOLKIT_ROOT_DIR=${cudatoolkit_joined}" ];
 
   doCheck = true;
 
@@ -17,6 +43,7 @@ stdenv.mkDerivation {
   '';
 
   checkPhase = ''
-    ./test
+    LD_LIBRARY_PATH=${cudaStub}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \
+      ./test
   '';
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/magma/default.nix b/nixpkgs/pkgs/development/libraries/science/math/magma/default.nix
index b8e3999ffe83..c5960dddf517 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/magma/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/magma/default.nix
@@ -1,8 +1,40 @@
 { lib, stdenv, fetchurl, cmake, gfortran, ninja, cudatoolkit, libpthreadstubs, lapack, blas }:
 
-with lib;
+assert let majorIs = lib.versions.major cudatoolkit.version;
+       in majorIs == "9" || majorIs == "10" || majorIs == "11";
 
-let version = "2.5.4";
+let
+  version = "2.5.4";
+
+  # We define a specific set of CUDA compute capabilities here,
+  # because CUDA 11 does not support compute capability 3.0. Also,
+  # we use it to enable newer capabilities that are not enabled
+  # by magma by default. The list of supported architectures
+  # can be found in magma's top-level CMakeLists.txt.
+  cudaCapabilities = rec {
+    cuda9 = [
+      "Kepler"  # 3.0, 3.5
+      "Maxwell" # 5.0
+      "Pascal"  # 6.0
+      "Volta"   # 7.0
+    ];
+
+    cuda10 = [
+      "Turing"  # 7.5
+    ] ++ cuda9;
+
+    cuda11 = [
+      "sm_35"   # sm_30 is not supported by CUDA 11
+      "Maxwell" # 5.0
+      "Pascal"  # 6.0
+      "Volta"   # 7.0
+      "Turing"  # 7.5
+      "Ampere"  # 8.0
+    ];
+  };
+
+  capabilityString = lib.strings.concatStringsSep ","
+    cudaCapabilities."cuda${lib.versions.major cudatoolkit.version}";
 
 in stdenv.mkDerivation {
   pname = "magma";
@@ -17,6 +49,8 @@ in stdenv.mkDerivation {
 
   buildInputs = [ cudatoolkit libpthreadstubs lapack blas ];
 
+  cmakeFlags = [ "-DGPU_TARGET=${capabilityString}" ];
+
   doCheck = false;
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix b/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix
index 34fea3162a9c..1f60f4d95388 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix
@@ -17,40 +17,57 @@
 let
   # Release notes and download URLs are here:
   # https://registrationcenter.intel.com/en/products/
-  version = "${year}.${spot}.${rel}";
+  version = "${mklVersion}.${rel}";
 
   # Darwin is pinned to 2019.3 because the DMG does not unpack; see here for details:
   # https://github.com/matthewbauer/undmg/issues/4
-  year = if stdenvNoCC.isDarwin then "2019" else "2020";
-  spot = if stdenvNoCC.isDarwin then "3" else "4";
-  rel = if stdenvNoCC.isDarwin then "199" else "304";
+  mklVersion = if stdenvNoCC.isDarwin then "2019.3" else "2021.1.1";
+  rel = if stdenvNoCC.isDarwin then "199" else "52";
 
-  # Replace `openmpSpot` by `spot` after 2020.
-  openmpSpot = if stdenvNoCC.isDarwin then spot else "3";
+  # Intel openmp uses its own versioning.
+  openmpVersion = if stdenvNoCC.isDarwin then "19.0.3" else "19.1.3";
+  openmpRel = "189";
 
-  rpm-ver = "${year}.${spot}-${rel}-${year}.${spot}-${rel}";
-
-  # Intel openmp uses its own versioning, but shares the spot release patch.
-  openmp = if stdenvNoCC.isDarwin then "19.0" else "19.1";
-  openmp-ver = "${openmp}.${openmpSpot}-${rel}-${openmp}.${openmpSpot}-${rel}";
+  # Thread Building Blocks release.
+  tbbRel = "119";
 
   shlibExt = stdenvNoCC.hostPlatform.extensions.sharedLibrary;
 
-in stdenvNoCC.mkDerivation {
+  oneapi-mkl = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-mkl-${mklVersion}-${mklVersion}-${rel}.x86_64.rpm";
+    hash = "sha256-G2Y7iX3UN2YUJhxcMM2KmhONf0ls9owpGlOo8hHOfqA=";
+  };
+
+  oneapi-mkl-common = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-mkl-common-${mklVersion}-${mklVersion}-${rel}.noarch.rpm";
+    hash = "sha256-HrMt2OcPIRxM8EL8SPjYTyuHJnC7RhPFUrvLhRH+7vc=";
+  };
+
+  oneapi-mkl-common-devel = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-mkl-common-devel-${mklVersion}-${mklVersion}-${rel}.noarch.rpm";
+    hash = "sha256-XDE2WFJzEcpujFmO2AvqQdipZMvKB6/G+ksBe2sE438=";
+  };
+
+  oneapi-mkl-devel = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-mkl-devel-${mklVersion}-${mklVersion}-${rel}.x86_64.rpm";
+    hash = "sha256-GhUJZ0Vr/ZXp10maie29/5ryU7zzX3F++wRCuuFcE0s=";
+  };
+
+  oneapi-openmp = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-openmp-${mklVersion}-${mklVersion}-${openmpRel}.x86_64.rpm";
+    hash = "sha256-yP2c4aQAFNRffjLoIZgWXLcNXbiez8smsgu2wXitefU=";
+  };
+
+  oneapi-tbb = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-tbb-${mklVersion}-${mklVersion}-${tbbRel}.x86_64.rpm";
+    hash = "sha256-K1BvhGoGVU2Zwy5vg2ZvJWBrSdh5uQwo0znt5039X0A=";
+  };
+
+in stdenvNoCC.mkDerivation ({
   pname = "mkl";
   inherit version;
 
-  src = if stdenvNoCC.isDarwin
-    then
-      (fetchurl {
-        url = "http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15235/m_mkl_${version}.dmg";
-        sha256 = "14b3ciz7995sqcd6jz7hc8g2x4zwvqxmgxgni46vrlb7n523l62f";
-      })
-    else
-      (fetchurl {
-        url = "https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16917/l_mkl_${version}.tgz";
-        hash = "sha256-IxTUZTaXTb0I8qTk+emhVdx+eeJ5jHTn3fqtAKWRfqU=";
-      });
+  dontUnpack = stdenvNoCC.isLinux;
 
   nativeBuildInputs = [ validatePkgConfig ] ++ (if stdenvNoCC.isDarwin
     then
@@ -63,30 +80,15 @@ in stdenvNoCC.mkDerivation {
       tar xzvf $f
     done
   '' else ''
-    # Common stuff
-    rpmextract rpm/intel-mkl-core-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-common-c-${rpm-ver}.noarch.rpm
-    rpmextract rpm/intel-mkl-common-f-${rpm-ver}.noarch.rpm
-
-    # Dynamic libraries
-    rpmextract rpm/intel-mkl-cluster-rt-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-core-rt-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-f-rt-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-rt-${rpm-ver}.x86_64.rpm
-
-    # Intel OpenMP runtime
-    rpmextract rpm/intel-openmp-${openmp-ver}.x86_64.rpm
-  '' + (if enableStatic then ''
-    # Static libraries
-    rpmextract rpm/intel-mkl-cluster-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-f-${rpm-ver}.x86_64.rpm
-  '' else ''
-    # Take care of installing dynamic-only PkgConfig files during the installPhase
-  ''
-  );
+    rpmextract ${oneapi-mkl}
+    rpmextract ${oneapi-mkl-common}
+    rpmextract ${oneapi-mkl-common-devel}
+    rpmextract ${oneapi-mkl-devel}
+    rpmextract ${oneapi-openmp}
+    rpmextract ${oneapi-tbb}
+  '';
 
-  installPhase = ''
+  installPhase = if stdenvNoCC.isDarwin then ''
     for f in $(find . -name 'mkl*.pc') ; do
       bn=$(basename $f)
       substituteInPlace $f \
@@ -95,42 +97,54 @@ in stdenvNoCC.mkDerivation {
         --replace "lib/intel64_lin" "lib" \
         --replace "lib/intel64" "lib"
     done
-
     for f in $(find opt/intel -name 'mkl*iomp.pc') ; do
       substituteInPlace $f \
         --replace "../compiler/lib" "lib"
     done
-  '' +
-    (if stdenvNoCC.isDarwin then ''
-      mkdir -p $out/lib
 
-      cp -r compilers_and_libraries_${version}/mac/mkl/include $out/
+    mkdir -p $out/lib
+
+    cp -r compilers_and_libraries_${version}/mac/mkl/include $out/
 
-      cp -r compilers_and_libraries_${version}/licensing/mkl/en/license.txt $out/lib/
-      cp -r compilers_and_libraries_${version}/mac/compiler/lib/* $out/lib/
-      cp -r compilers_and_libraries_${version}/mac/mkl/lib/* $out/lib/
-      cp -r compilers_and_libraries_${version}/mac/tbb/lib/* $out/lib/
+    cp -r compilers_and_libraries_${version}/licensing/mkl/en/license.txt $out/lib/
+    cp -r compilers_and_libraries_${version}/mac/compiler/lib/* $out/lib/
+    cp -r compilers_and_libraries_${version}/mac/mkl/lib/* $out/lib/
+    cp -r compilers_and_libraries_${version}/mac/tbb/lib/* $out/lib/
 
-      mkdir -p $out/lib/pkgconfig
-      cp -r compilers_and_libraries_${version}/mac/mkl/bin/pkgconfig/* $out/lib/pkgconfig
+    mkdir -p $out/lib/pkgconfig
+    cp -r compilers_and_libraries_${version}/mac/mkl/bin/pkgconfig/* $out/lib/pkgconfig
   '' else ''
-      mkdir -p $out/lib
-      cp license.txt $out/lib/
+    for f in $(find . -name 'mkl*.pc') ; do
+      bn=$(basename $f)
+      substituteInPlace $f \
+        --replace $\{MKLROOT} "$out" \
+        --replace "lib/intel64" "lib"
 
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/include $out/
+      sed -r -i "s|^prefix=.*|prefix=$out|g" $f
+    done
 
-      mkdir -p $out/lib/pkgconfig
-  '') +
+    for f in $(find opt/intel -name 'mkl*iomp.pc') ; do
+      substituteInPlace $f --replace "../compiler/lib" "lib"
+    done
+
+    # License
+    install -Dm0655 -t $out/share/doc/mkl opt/intel/oneapi/mkl/2021.1.1/licensing/en/license.txt
+
+    # Dynamic libraries
+    install -Dm0755 -t $out/lib opt/intel/oneapi/mkl/${mklVersion}/lib/intel64/*.so*
+    install -Dm0755 -t $out/lib opt/intel/oneapi/compiler/2021.1.1/linux/compiler/lib/intel64_lin/*.so*
+    install -Dm0755 -t $out/lib opt/intel/oneapi/tbb/2021.1.1/lib/intel64/gcc4.8/*.so*
+
+    # Headers
+    cp -r opt/intel/oneapi/mkl/${mklVersion}/include $out/
+  '' +
     (if enableStatic then ''
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/compiler/lib/intel64_lin/* $out/lib/
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/lib/intel64_lin/* $out/lib/
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/bin/pkgconfig/* $out/lib/pkgconfig
+      install -Dm0644 -t $out/lib opt/intel/oneapi/mkl/${mklVersion}/lib/intel64/*.a
+      install -Dm0644 -t $out/lib/pkgconfig opt/intel/oneapi/mkl/2021.1.1/tools/pkgconfig/*.pc
     '' else ''
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/compiler/lib/intel64_lin/*.so* $out/lib/
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/lib/intel64_lin/*.so* $out/lib/
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/bin/pkgconfig/*dynamic*.pc $out/lib/pkgconfig
+      cp opt/intel/oneapi/mkl/${mklVersion}/lib/intel64/*.so* $out/lib
+      install -Dm0644 -t $out/lib/pkgconfig opt/intel/oneapi/mkl/2021.1.1/tools/pkgconfig/*dynamic*.pc
     '') + ''
-
     # Setup symlinks for blas / lapack
     ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/libblas${shlibExt}
     ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/libcblas${shlibExt}
@@ -159,13 +173,18 @@ in stdenvNoCC.mkDerivation {
   dontStrip = true;
   dontPatchELF = true;
 
-  passthru.tests.pkg-config = callPackage ./test { };
+  passthru.tests = {
+    pkg-config-dynamic-iomp = callPackage ./test { enableStatic = false; execution = "iomp"; };
+    pkg-config-static-iomp = callPackage ./test { enableStatic = true; execution = "iomp"; };
+    pkg-config-dynamic-seq = callPackage ./test { enableStatic = false; execution = "seq"; };
+    pkg-config-static-seq = callPackage ./test { enableStatic = true; execution = "seq"; };
+  };
 
   meta = with lib; {
-    description = "Intel Math Kernel Library";
+    description = "Intel OneAPI Math Kernel Library";
     longDescription = ''
-      Intel Math Kernel Library (Intel MKL) optimizes code with minimal effort
-      for future generations of Intel processors. It is compatible with your
+      Intel OneAPI Math Kernel Library (Intel oneMKL) optimizes code with minimal
+      effort for future generations of Intel processors. It is compatible with your
       choice of compilers, languages, operating systems, and linking and
       threading models.
     '';
@@ -174,4 +193,9 @@ in stdenvNoCC.mkDerivation {
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ bhipple ];
   };
-}
+} // lib.optionalAttrs stdenvNoCC.isDarwin {
+  src = fetchurl {
+    url = "http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15235/m_mkl_${version}.dmg";
+    sha256 = "14b3ciz7995sqcd6jz7hc8g2x4zwvqxmgxgni46vrlb7n523l62f";
+  };
+})
diff --git a/nixpkgs/pkgs/development/libraries/science/math/mkl/test/default.nix b/nixpkgs/pkgs/development/libraries/science/math/mkl/test/default.nix
index 688c0ec7c399..cb3355260d12 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/mkl/test/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/mkl/test/default.nix
@@ -1,6 +1,14 @@
-{ stdenv, pkg-config, mkl }:
+{ stdenv
+, pkg-config
+, mkl
 
-stdenv.mkDerivation {
+, enableStatic ? false
+, execution ? "seq"
+}:
+
+let
+  linkType = if enableStatic then "static" else "dynamic";
+in stdenv.mkDerivation {
   pname = "mkl-test";
   version = mkl.version;
 
@@ -8,19 +16,19 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ mkl ];
+  buildInputs = [ (mkl.override { inherit enableStatic; }) ];
 
   doCheck = true;
 
   buildPhase = ''
     # Check regular Nix build.
-    gcc $(pkg-config --cflags --libs mkl-dynamic-ilp64-seq) test.c -o test
+    gcc test.c -o test $(pkg-config --cflags --libs mkl-${linkType}-ilp64-${execution})
 
     # Clear flags to ensure that we are purely relying on options
     # provided by pkg-config.
     NIX_CFLAGS_COMPILE="" \
     NIX_LDFLAGS="" \
-      gcc $(pkg-config --cflags --libs mkl-dynamic-ilp64-seq) test.c -o test
+      gcc test.c -o test $(pkg-config --cflags --libs mkl-${linkType}-ilp64-${execution})
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix b/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix
index bd7b739bd77f..23a82f483dc6 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix
@@ -42,6 +42,14 @@ let
       USE_OPENMP = true;
     };
 
+    aarch64-darwin = {
+      BINARY = 64;
+      TARGET = setTarget "VORTEX";
+      DYNAMIC_ARCH = true;
+      USE_OPENMP = false;
+      MACOSX_DEPLOYMENT_TARGET = "11.0";
+    };
+
     aarch64-linux = {
       BINARY = 64;
       TARGET = setTarget "ARMV8";
diff --git a/nixpkgs/pkgs/development/libraries/science/math/openlibm/default.nix b/nixpkgs/pkgs/development/libraries/science/math/openlibm/default.nix
index 5bfef9e8ba3b..34ebc36ebb92 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/openlibm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/openlibm/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "openlibm";
-  version = "0.7.4";
+  version = "0.7.5";
   src = fetchurl {
     url = "https://github.com/JuliaLang/openlibm/archive/v${version}.tar.gz";
-    sha256 = "sha256-61hSBNbJlWkeVUXqT/y4h8FZvwXMXuG7+Spvzd4vzK4=";
+    sha256 = "sha256-vpg7nh5A5pbou7frj2N208oK5nWubYKTZUA4Ww7uwVs=";
   };
 
   makeFlags = [ "prefix=$(out)" ];
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 53c117233d20..2b6eb5705cd9 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
@@ -1,40 +1,84 @@
-{ lib, stdenv, fetchFromGitHub, cmake, abseil-cpp, gflags, which
-, lsb-release, glog, protobuf, cbc, zlib
-, ensureNewerSourcesForZipFilesHook, python, swig }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, abseil-cpp
+, bzip2
+, zlib
+, lsb-release
+, which
+, protobuf
+, cbc
+, ensureNewerSourcesForZipFilesHook
+, python
+, swig4
+}:
 
 stdenv.mkDerivation rec {
   pname = "or-tools";
-  version = "7.7";
+  version = "8.1";
+  disabled = python.pythonOlder "3.6";  # not supported upstream
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "or-tools";
     rev = "v${version}";
-    sha256 = "06ig9a1afmzgzcg817y0rdq49ahll0q9y7bhhg9d89x6zy959ypv";
+    sha256 = "1zqgvkaw5vf2d8pwsa34g9jysbpiwplzxc8jyy8kdbzmj8ax3gpg";
   };
 
+  patches = [
+    # This patch (on master as of Feb 11, 2021) fixes or-tools failing to respect
+    # USE_SCIP=OFF and then failing to find scip/scip.h
+    (fetchpatch {
+      url = "https://github.com/google/or-tools/commit/17321869832b5adaccd9864e7e5576122730a5d5.patch";
+      sha256 = "0bi2z1hqlpdm1if3xa5dzc2zv0qlm5xi2x979brx10f8k779ghn0";
+    })
+  ];
+
   # The original build system uses cmake which does things like pull
   # in dependencies through git and Makefile creation time. We
   # obviously don't want to do this so instead we provide the
   # dependencies straight from nixpkgs and use the make build method.
+
+  # Cbc is linked against bzip2 and declares this in its pkgs-config file,
+  # but this makefile doesn't use pkgs-config, so we also have to add lbz2
   configurePhase = ''
+    substituteInPlace makefiles/Makefile.third_party.unix.mk \
+      --replace 'COINUTILS_LNK = $(STATIC_COINUTILS_LNK)' \
+                'COINUTILS_LNK = $(STATIC_COINUTILS_LNK) -lbz2'
+
     cat <<EOF > Makefile.local
-    UNIX_ABSL_DIR=${abseil-cpp}
-    UNIX_GFLAGS_DIR=${gflags}
-    UNIX_GLOG_DIR=${glog}
-    UNIX_PROTOBUF_DIR=${protobuf}
-    UNIX_CBC_DIR=${cbc}
+      UNIX_ABSL_DIR=${abseil-cpp}
+      UNIX_PROTOBUF_DIR=${protobuf}
+      UNIX_CBC_DIR=${cbc}
+      USE_SCIP=OFF
     EOF
   '';
 
+  # Many of these 'samples' (which are really the tests) require using SCIP, and or-tools 8.1
+  # will just crash if SCIP is not found because it doesn't fall back to using one of
+  # the available solvers: https://github.com/google/or-tools/blob/b77bd3ac69b7f3bb02f55b7bab6cbb4bab3917f2/ortools/linear_solver/linear_solver.cc#L427
+  # We don't compile with SCIP because it does not have an open source license.
+  # See https://github.com/google/or-tools/issues/2395
+  preBuild = ''
+    for file in ortools/linear_solver/samples/*.cc; do
+      if grep -q SCIP_MIXED_INTEGER_PROGRAMMING $file; then
+        substituteInPlace $file --replace SCIP_MIXED_INTEGER_PROGRAMMING CBC_MIXED_INTEGER_PROGRAMMING
+      fi;
+    done
+
+    substituteInPlace ortools/linear_solver/samples/simple_mip_program.cc \
+      --replace 'SCIP' 'CBC'
+  '';
   makeFlags = [
     "prefix=${placeholder "out"}"
     "PROTOBUF_PYTHON_DESC=${python.pkgs.protobuf}/${python.sitePackages}/google/protobuf/descriptor_pb2.py"
   ];
   buildFlags = [ "cc" "pypi_archive" ];
 
-  checkTarget = "test_cc";
   doCheck = true;
+  checkTarget = "test_cc";
 
   installTargets = [ "install_cc" ];
   # The upstream install_python target installs to $HOME.
@@ -43,14 +87,30 @@ stdenv.mkDerivation rec {
     (cd temp_python/ortools; PYTHONPATH="$python/${python.sitePackages}:$PYTHONPATH" python setup.py install '--prefix=$python')
   '';
 
+  enableParallelBuilding = true;
+
   nativeBuildInputs = [
-    cmake lsb-release swig which zlib python
+    cmake
+    lsb-release
+    swig4
+    which
     ensureNewerSourcesForZipFilesHook
-    python.pkgs.setuptools python.pkgs.wheel
+    python.pkgs.setuptools
+    python.pkgs.wheel
+  ];
+  buildInputs = [
+    zlib
+    bzip2
+    python
   ];
   propagatedBuildInputs = [
-    abseil-cpp gflags glog protobuf cbc
-    python.pkgs.protobuf python.pkgs.six
+    abseil-cpp
+    protobuf
+
+    python.pkgs.protobuf
+    python.pkgs.six
+    python.pkgs.absl-py
+    python.pkgs.mypy-protobuf
   ];
 
   outputs = [ "out" "python" ];
diff --git a/nixpkgs/pkgs/development/libraries/science/math/primesieve/default.nix b/nixpkgs/pkgs/development/libraries/science/math/primesieve/default.nix
index d99026bc5659..d4f16d230e60 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/primesieve/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/primesieve/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "primesieve";
-  version = "7.5";
+  version = "7.6";
 
   nativeBuildInputs = [cmake];
 
   src = fetchurl {
     url = "https://github.com/kimwalisch/primesieve/archive/v${version}.tar.gz";
-    sha256 = "0g60br3p8di92jx3pr2bb51xh15gg57l7qvwzwn7xf7l585hgi7v";
+    sha256 = "sha256-SFZp6Pmmx05SiUfSdN9wXxPKrydtRg0PA3uNvAycCpk=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/science/math/rankwidth/default.nix b/nixpkgs/pkgs/development/libraries/science/math/rankwidth/default.nix
index 38c9444d0d31..c00d579702cc 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/rankwidth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/rankwidth/default.nix
@@ -4,18 +4,18 @@
 
 stdenv.mkDerivation rec {
   pname = "rankwidth";
-  version = "0.7";
+  version = "0.9";
 
   src = fetchurl {
     url = "mirror://sageupstream/rw/rw-${version}.tar.gz";
-    sha256 = "1rv2v42x2506x7f10349m1wpmmfxrv9l032bkminni2gbip9cjg0";
+    sha256 = "sha256-weA1Bv4lzfy0KMBR/Fay0q/7Wwb7o/LOdWYxRmvvtEE=";
   };
 
   configureFlags = [
     "--enable-executable=no" # no igraph dependency
   ];
 
-  # check phase is empty for now (as of version 0.7)
+  # check phase is empty for now (as of version 0.9)
   doCheck = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/science/math/suitesparse/default.nix b/nixpkgs/pkgs/development/libraries/science/math/suitesparse/default.nix
index f0c82e7190f9..e053d5bcf342 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/suitesparse/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/suitesparse/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "suitesparse";
-  version = "5.8.1";
+  version = "5.9.0";
 
   outputs = [ "out" "dev" "doc" ];
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     owner = "DrTimothyAldenDavis";
     repo = "SuiteSparse";
     rev = "v${version}";
-    sha256 = "0qjlyfxs8s48rs63c2fzspisgq1kk4bwkgnhmh125hgkdhrq2w1c";
+    sha256 = "sha256-tvwpSVgZrfYZHXHN8OQF0Y/aJM03JHGPFok7hUqPE/4=";
   };
 
   nativeBuildInputs = [
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     "CUBLAS_LIB=${cudatoolkit}/lib/libcublas.so"
   ] ++ lib.optionals stdenv.isDarwin [
     # Unless these are set, the build will attempt to use `Accelerate` on darwin, see:
-    # https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/v5.8.1/SuiteSparse_config/SuiteSparse_config.mk#L368
+    # https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/v5.9.0/SuiteSparse_config/SuiteSparse_config.mk#L368
     "BLAS=-lblas"
     "LAPACK=-llapack"
   ]
diff --git a/nixpkgs/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch b/nixpkgs/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch
new file mode 100644
index 000000000000..cbcf18b4cdb2
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch
@@ -0,0 +1,39 @@
+commit 433a8b99da9d71e96434bd421c2468cbda29d37c
+Author: Mauricio Collares <mauricio@collares.org>
+Date:   Tue Mar 2 22:07:11 2021 -0300
+
+    trim logfile information from pari 2.13 output
+    
+    Pari (since commit 609fb01faf827d91dfa9136849a647a3bbfe8036) prints
+    extra logfile information such as
+    
+      [logfile is "/tmp/nix-shell.2BquN9/home/.sympow/datafiles/P02HM.txt"]
+    
+    which messes up sympow's parsing. This commit reuses the same trimming
+    mechanism already in sympow to trim this new message.
+
+diff --git a/Configure b/Configure
+index 1ef9756..776bec2 100755
+--- a/Configure
++++ b/Configure
+@@ -322,7 +322,7 @@ echo "datafiles/param_data: \$(OTHERb)" >> $FILE
+ echo "	\$(MKDIR) -p datafiles" >> $FILE
+ echo "	\$(TOUCH) datafiles/param_data" >> $FILE
+ echo "	\$(SH) armd.sh" >> $FILE
+-echo "	\$(SED) -i -e '/logfile =/d' datafiles/*.txt" >> $FILE
++echo "	\$(SED) -i -e '/logfile /d' datafiles/*.txt" >> $FILE
+ echo "sympow.1: sympow" >> $FILE
+ echo "	\$(HELP2MAN) \$(H2MFLAGS) -s 1 -n \"SYMPOW program\" -I sympow.h2m -o \$@ ./\$<" >> $FILE
+ echo "clean:" >> $FILE
+diff --git a/generate.c b/generate.c
+index dbb811f..783320c 100644
+--- a/generate.c
++++ b/generate.c
+@@ -148,6 +148,7 @@ static void trimit(char *A)
+    " -e '"
+      "/^\?/d"                           ";"
+      "/^(/d"                            ";"
++	   "/logfile /d"                      ";"
+ 	   "/Warning:/d"                      ";"
+ 	   "/^About to find TOO_BIG/d"        ";"
+ 	   "/^Now working backwards/d"        ";"
diff --git a/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix b/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix
index 3c31ed8a361b..c31c705d39d0 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix
@@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
     sha256 = "132l0xv00ld1svvv9wh99wfra4zzjv2885h2sq0dsl98wiyvi5zl";
   };
 
+  patches = [ ./clean-extra-logfile-output-from-pari.patch ];
+
   postUnpack = ''
     patchShebangs .
   '';
diff --git a/nixpkgs/pkgs/development/libraries/science/math/zn_poly/default.nix b/nixpkgs/pkgs/development/libraries/science/math/zn_poly/default.nix
index 0d1a331798cf..8f3e1aba350e 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/zn_poly/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/zn_poly/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   libbasename = "libzn_poly";
   libext = stdenv.targetPlatform.extensions.sharedLibrary;
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   # Tuning (either autotuning or with hand-written paramters) is possible
   # but not implemented here.
diff --git a/nixpkgs/pkgs/development/libraries/serd/default.nix b/nixpkgs/pkgs/development/libraries/serd/default.nix
index 641a5120e8d9..b122a3121e4e 100644
--- a/nixpkgs/pkgs/development/libraries/serd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/serd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "serd";
-  version = "0.30.4";
+  version = "0.30.10";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "168rn3m32c59qbar120f83ibcnnd987ij9p053kybgl7cmm6358c";
+    sha256 = "sha256-r/qA3ux4kh+GM15vw/GLgK7+z0JPaldV6fL6DrBxDt8=";
   };
 
   nativeBuildInputs = [ pkg-config python3 wafHook ];
diff --git a/nixpkgs/pkgs/development/libraries/serf/default.nix b/nixpkgs/pkgs/development/libraries/serf/default.nix
index dbdc9ce28714..2549704c1a8c 100644
--- a/nixpkgs/pkgs/development/libraries/serf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/serf/default.nix
@@ -1,17 +1,18 @@
-{ lib, stdenv, fetchurl, apr, sconsPackages, openssl, aprutil, zlib, kerberos
+{ lib, stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, libkrb5
 , pkg-config, libiconv }:
 
 stdenv.mkDerivation rec {
-  name = "serf-1.3.9";
+  pname = "serf";
+  version = "1.3.9";
 
   src = fetchurl {
-    url = "https://www.apache.org/dist/serf/${name}.tar.bz2";
+    url = "https://www.apache.org/dist/serf/${pname}-${version}.tar.bz2";
     sha256 = "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l";
   };
 
-  nativeBuildInputs = [ pkg-config sconsPackages.scons_3_1_2 ];
+  nativeBuildInputs = [ pkg-config scons ];
   buildInputs = [ apr openssl aprutil zlib libiconv ]
-    ++ lib.optional (!stdenv.isCygwin) kerberos;
+    ++ lib.optional (!stdenv.isCygwin) libkrb5;
 
   patches = [ ./scons.patch ];
 
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
     sconsFlags+=" OPENSSL=${openssl}"
     sconsFlags+=" ZLIB=${zlib}"
   '' + lib.optionalString (!stdenv.isCygwin) ''
-    sconsFlags+=" GSSAPI=${kerberos.dev}"
+    sconsFlags+=" GSSAPI=${libkrb5.dev}"
   '';
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/serf/scons.patch b/nixpkgs/pkgs/development/libraries/serf/scons.patch
index a7eefe7d5c1f..acfece7ef5fe 100644
--- a/nixpkgs/pkgs/development/libraries/serf/scons.patch
+++ b/nixpkgs/pkgs/development/libraries/serf/scons.patch
@@ -1,7 +1,16 @@
 diff --git a/SConstruct b/SConstruct
-index 4358a23..0d862e7 100644
+index 4358a23..6ce7776 100644
 --- a/SConstruct
 +++ b/SConstruct
+@@ -55,7 +55,7 @@ def RawListVariable(key, help, default):
+ # To be used to ensure a PREFIX directory is only created when installing.
+ def createPathIsDirCreateWithTarget(target):
+   def my_validator(key, val, env):
+-    build_targets = (map(str, BUILD_TARGETS))
++    build_targets = (list(map(str, BUILD_TARGETS)))
+     if target in build_targets:
+       return PathVariable.PathIsDirCreate(key, val, env)
+     else:
 @@ -155,6 +155,7 @@ if sys.platform == 'win32':
  env = Environment(variables=opts,
                    tools=('default', 'textfile',),
@@ -10,3 +19,25 @@ index 4358a23..0d862e7 100644
                    )
  
  env.Append(BUILDERS = {
+@@ -163,9 +164,9 @@ env.Append(BUILDERS = {
+               suffix='.def', src_suffix='.h')
+   })
+ 
+-match = re.search('SERF_MAJOR_VERSION ([0-9]+).*'
+-                  'SERF_MINOR_VERSION ([0-9]+).*'
+-                  'SERF_PATCH_VERSION ([0-9]+)',
++match = re.search(b'SERF_MAJOR_VERSION ([0-9]+).*'
++                  b'SERF_MINOR_VERSION ([0-9]+).*'
++                  b'SERF_PATCH_VERSION ([0-9]+)',
+                   env.File('serf.h').get_contents(),
+                   re.DOTALL)
+ MAJOR, MINOR, PATCH = [int(x) for x in match.groups()]
+@@ -183,7 +184,7 @@ CALLOUT_OKAY = not (env.GetOption('clean') or env.GetOption('help'))
+ 
+ unknown = opts.UnknownVariables()
+ if unknown:
+-  print 'Warning: Used unknown variables:', ', '.join(unknown.keys())
++  print('Warning: Used unknown variables:', ', '.join(list(unknown.keys())))
+ 
+ apr = str(env['APR'])
+ apu = str(env['APU'])
diff --git a/nixpkgs/pkgs/development/libraries/shhmsg/default.nix b/nixpkgs/pkgs/development/libraries/shhmsg/default.nix
index 0c736e4cb911..704df3dc5eff 100644
--- a/nixpkgs/pkgs/development/libraries/shhmsg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/shhmsg/default.nix
@@ -8,13 +8,16 @@ stdenv.mkDerivation rec {
     sha256 = "0ax02fzqpaxr7d30l5xbndy1s5vgg1ag643c7zwiw2wj1czrxil8";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
+  '';
+
   installFlags = [ "INSTBASEDIR=$(out)" ];
 
   meta = with lib; {
     description = "A library for displaying messages";
     homepage = "https://shh.thathost.com/pub-unix/";
     license = licenses.artistic1;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
-
diff --git a/nixpkgs/pkgs/development/libraries/shhopt/default.nix b/nixpkgs/pkgs/development/libraries/shhopt/default.nix
index da1b820fcd54..0657b13e5579 100644
--- a/nixpkgs/pkgs/development/libraries/shhopt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/shhopt/default.nix
@@ -8,12 +8,16 @@ stdenv.mkDerivation rec {
     sha256 = "0yd6bl6qw675sxa81nxw6plhpjf9d2ywlm8a5z66zyjf28sl7sds";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
+  '';
+
   installFlags = [ "INSTBASEDIR=$(out)" ];
 
   meta = with lib; {
     description = "A library for parsing command line options";
     homepage = "https://shh.thathost.com/pub-unix/";
     license = licenses.artistic1;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/silgraphite/default.nix b/nixpkgs/pkgs/development/libraries/silgraphite/default.nix
deleted file mode 100644
index 06cf75876162..000000000000
--- a/nixpkgs/pkgs/development/libraries/silgraphite/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, pkg-config, freetype, libXft, pango, fontconfig }:
-
-stdenv.mkDerivation rec {
-  version = "2.3.1";
-  name = "silgraphite-2.3.1";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/silgraphite/silgraphite/${version}/${name}.tar.gz";
-    sha256 = "9b07c6e91108b1fa87411af4a57e25522784cfea0deb79b34ced608444f2ed65";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ freetype libXft pango fontconfig];
-
-  NIX_CFLAGS_COMPILE = "-I${freetype.dev}/include/freetype2";
-
-  meta = {
-    description = "An advanced font engine";
-    maintainers = [ lib.maintainers.raskin ];
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/silgraphite/graphite2.nix b/nixpkgs/pkgs/development/libraries/silgraphite/graphite2.nix
index 166d0f2911d6..cd737a82a293 100644
--- a/nixpkgs/pkgs/development/libraries/silgraphite/graphite2.nix
+++ b/nixpkgs/pkgs/development/libraries/silgraphite/graphite2.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, freetype, cmake, python }:
+{ lib, stdenv, fetchurl, pkg-config, freetype, cmake }:
 
 stdenv.mkDerivation rec {
   version = "1.3.14";
@@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
 
   patches = lib.optionals stdenv.isDarwin [ ./macosx.patch ];
 
-  checkInputs = [ python ];
   doCheck = false; # fails, probably missing something
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/simdjson/default.nix b/nixpkgs/pkgs/development/libraries/simdjson/default.nix
index 448270183a5f..efa007da902e 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 = "0.8.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "simdjson";
     repo = "simdjson";
     rev = "v${version}";
-    sha256 = "1x5f8b5s67kf9sjx04rp81q0f3dlnqfngn3h0lrfnphipald5fji";
+    sha256 = "sha256-L/a/vTthh7XkiwuvlGk9q+uLEBf8vaPoV1x1fG44zeg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/simgear/default.nix b/nixpkgs/pkgs/development/libraries/simgear/default.nix
index 2f1006404b7a..e67cb1736b75 100644
--- a/nixpkgs/pkgs/development/libraries/simgear/default.nix
+++ b/nixpkgs/pkgs/development/libraries/simgear/default.nix
@@ -4,7 +4,7 @@
 , curl
 }:
 let
-  version = "2020.3.4";
+  version = "2020.3.6";
   shortVersion = builtins.substring 0 6 version;
 in
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
-    sha256 = "1laa8dllpvf2z0cjxx22ravdf1d7a18bm708gd2ny35fhjfibm0h";
+    sha256 = "sha256-7D7KRNIffgUr6vwbni1XwW+8GtXwM6vJZ7V6/QLDVmk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/skalibs/default.nix b/nixpkgs/pkgs/development/libraries/skalibs/default.nix
index 1efac7fc5e48..3d90a8ebb21c 100644
--- a/nixpkgs/pkgs/development/libraries/skalibs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/skalibs/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "skalibs";
-  version = "2.10.0.1";
-  sha256 = "1chwjzlh13jbrldk77h3i4qjqv8hjpvvd3papcb8j46mvj7sxysg";
+  version = "2.10.0.2";
+  sha256 = "03qyi77wgcw3nzy7i932wd98d6j7nnzxc8ddl973vf5sa1v3vflb";
 
   description = "A set of general-purpose C programming libraries";
 
diff --git a/nixpkgs/pkgs/development/libraries/slib/default.nix b/nixpkgs/pkgs/development/libraries/slib/default.nix
index 47f633f5096b..9973e04a670b 100644
--- a/nixpkgs/pkgs/development/libraries/slib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/slib/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./catalog-in-library-vicinity.patch ];
 
-  buildInputs = [ unzip scheme texinfo ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ scheme texinfo ];
 
   postInstall = ''
     ln -s mklibcat{.scm,}
diff --git a/nixpkgs/pkgs/development/libraries/smarty3/default.nix b/nixpkgs/pkgs/development/libraries/smarty3/default.nix
index 29f640dedfcb..c3c4f8610c70 100644
--- a/nixpkgs/pkgs/development/libraries/smarty3/default.nix
+++ b/nixpkgs/pkgs/development/libraries/smarty3/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "smarty3";
-  version = "3.1.36";
+  version = "3.1.39";
 
   src = fetchFromGitHub {
     owner = "smarty-php";
     repo = "smarty";
     rev = "v${version}";
-    sha256 = "0jljzw1xl2kjwf9cylp1ddnjhz7wbm499s03r479891max1m2mlf";
+    sha256 = "0n5hmnw66gxqikp6frgfd9ywsvr2azyg5nl7ix89digqlzcljkbg";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/smooth/default.nix b/nixpkgs/pkgs/development/libraries/smooth/default.nix
new file mode 100644
index 000000000000..f86862382112
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/smooth/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+
+, gtk3
+, curl
+, libxml2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "smooth";
+  version = "0.9.6";
+
+  src = fetchFromGitHub {
+    owner = "enzo1982";
+    repo = "smooth";
+    rev = "v${version}";
+    sha256 = "05j5gk6kz2089x8bcq2l0kjspfiiymxn69jcxl4dh9lw96blbadr";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  makeFlags = [
+    "prefix=$(out)"
+  ];
+
+  buildInputs = [
+    gtk3
+    curl
+    libxml2
+  ];
+
+  meta = with lib; {
+    description = "The smooth Class Library";
+    license = licenses.artistic2;
+    homepage = "http://www.smooth-project.org/";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/soci/default.nix b/nixpkgs/pkgs/development/libraries/soci/default.nix
index f561864a7502..2c87d421babe 100644
--- a/nixpkgs/pkgs/development/libraries/soci/default.nix
+++ b/nixpkgs/pkgs/development/libraries/soci/default.nix
@@ -6,17 +6,17 @@
 
 stdenv.mkDerivation rec {
   pname = "soci";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "SOCI";
     repo = pname;
     rev = version;
-    sha256 = "06faswdxd2frqr9xnx6bxc7zwarlzsbdi3bqpz7kwdxsjvq41rnb";
+    sha256 = "sha256-d4GtxDaB+yGfyCnbvnLRUYcrPSMkUF7Opu6+SZd8opM=";
   };
 
   # Do not build static libraries
-  cmakeFlags = [ "-DSOCI_STATIC=OFF" ];
+  cmakeFlags = [ "-DSOCI_STATIC=OFF" "-DCMAKE_CXX_STANDARD=11" ];
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ sqlite ];
diff --git a/nixpkgs/pkgs/development/libraries/sofia-sip/default.nix b/nixpkgs/pkgs/development/libraries/sofia-sip/default.nix
index 1395f3e60cf8..593bd87a9829 100644
--- a/nixpkgs/pkgs/development/libraries/sofia-sip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sofia-sip/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sofia-sip";
-  version = "1.13.2";
+  version = "1.13.3";
 
   src = fetchFromGitHub {
     owner = "freeswitch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01xj30hhm1ji76igkqkn63rw42vvzq3azkr9qz6fy83iwqaybgyn";
+    sha256 = "sha256-qMgZpLo/BHGJbJ0DDN8COHAhU3ujWgVK9oZOnnMwKas=";
   };
 
   buildInputs = [ glib openssl ];
diff --git a/nixpkgs/pkgs/development/libraries/sonic/default.nix b/nixpkgs/pkgs/development/libraries/sonic/default.nix
index 38dcee84a928..ba3164db11aa 100644
--- a/nixpkgs/pkgs/development/libraries/sonic/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sonic/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "0ah54nizb6iwcx277w104wsfnx05vrp4sh56d2pfxhf8xghg54m6";
   };
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" "CC=cc" ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" "CC=${stdenv.cc.targetPrefix}cc" ];
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/libraries/sope/default.nix b/nixpkgs/pkgs/development/libraries/sope/default.nix
index b24b0b9bcd4b..b956967ee88e 100644
--- a/nixpkgs/pkgs/development/libraries/sope/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sope/default.nix
@@ -1,5 +1,5 @@
 { gnustep, lib, fetchFromGitHub , libxml2, openssl_1_1
-, openldap, mysql, libmysqlclient, postgresql }:
+, openldap, mariadb, libmysqlclient, postgresql }:
 with lib;
 
 gnustep.stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ gnustep.stdenv.mkDerivation rec {
   nativeBuildInputs = [ gnustep.make ];
   buildInputs = flatten ([ gnustep.base libxml2 openssl_1_1 ]
     ++ optional (openldap != null) openldap
-    ++ optionals (mysql != null) [ libmysqlclient mysql ]
+    ++ optionals (mariadb != null) [ libmysqlclient mariadb ]
     ++ optional (postgresql != null) postgresql);
 
   postPatch = ''
@@ -31,7 +31,7 @@ gnustep.stdenv.mkDerivation rec {
 
   configureFlags = [ "--prefix=" "--disable-debug" "--enable-xml" "--with-ssl=ssl" ]
     ++ optional (openldap != null) "--enable-openldap"
-    ++ optional (mysql != null) "--enable-mysql"
+    ++ optional (mariadb != null) "--enable-mysql"
     ++ optional (postgresql != null) "--enable-postgresql";
 
   # Yes, this is ugly.
diff --git a/nixpkgs/pkgs/development/libraries/soqt/default.nix b/nixpkgs/pkgs/development/libraries/soqt/default.nix
index 2be6c6621454..fe7901bddd58 100644
--- a/nixpkgs/pkgs/development/libraries/soqt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/soqt/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://github.com/coin3d/soqt";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/libraries/spdlog/default.nix b/nixpkgs/pkgs/development/libraries/spdlog/default.nix
index 7b6c98bebe80..0c75bdb9dd84 100644
--- a/nixpkgs/pkgs/development/libraries/spdlog/default.nix
+++ b/nixpkgs/pkgs/development/libraries/spdlog/default.nix
@@ -49,8 +49,8 @@ let
 in
 {
   spdlog_1 = generic {
-    version = "1.8.1";
-    sha256 = "sha256-EyZhYgcdtZC+vsOUKShheY57L0tpXltduHWwaoy6G9k=";
+    version = "1.8.5";
+    sha256 = "sha256-D29jvDZQhPscaOHlrzGN1s7/mXlcsovjbqYpXd7OM50=";
   };
 
   spdlog_0 = generic {
diff --git a/nixpkgs/pkgs/development/libraries/speechd/default.nix b/nixpkgs/pkgs/development/libraries/speechd/default.nix
index e85b6d4cbf40..b6ec4842e077 100644
--- a/nixpkgs/pkgs/development/libraries/speechd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/speechd/default.nix
@@ -39,11 +39,11 @@ let
       throw "You need to enable at least one output module.";
 in stdenv.mkDerivation rec {
   pname = "speech-dispatcher";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchurl {
     url = "https://github.com/brailcom/speechd/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0j2lfzkmbsxrrgjw6arzvnfd4jn5pxab28xsk2djssr2ydb9x309";
+    sha256 = "sha256-sGMZ8gHhXlbGKWZTr1vPwwDLNI6XLVF9+LBurHfq4tw=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/spglib/default.nix b/nixpkgs/pkgs/development/libraries/spglib/default.nix
index 12d696b65a8e..3d1236a03dbb 100644
--- a/nixpkgs/pkgs/development/libraries/spglib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/spglib/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://atztogo.github.io/spglib/";
     license = licenses.bsd3;
     maintainers = [ maintainers.markuskowa ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/spice-protocol/default.nix b/nixpkgs/pkgs/development/libraries/spice-protocol/default.nix
index 07b670a2718f..1eaa3398e402 100644
--- a/nixpkgs/pkgs/development/libraries/spice-protocol/default.nix
+++ b/nixpkgs/pkgs/development/libraries/spice-protocol/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.spice-space.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bluescreen303 ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/sqlite/default.nix b/nixpkgs/pkgs/development/libraries/sqlite/default.nix
index bf1b8b7aa3b2..50b52b905a92 100644
--- a/nixpkgs/pkgs/development/libraries/sqlite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sqlite/default.nix
@@ -12,12 +12,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sqlite";
-  version = "3.34.1";
+  version = "3.35.2";
 
   # NB! Make sure to update ./tools.nix src (in the same directory).
   src = fetchurl {
     url = "https://sqlite.org/2021/sqlite-autoconf-${archiveVersion version}.tar.gz";
-    sha256 = "129ynp0qbxrfj1ys9hdi0jk8svds0cwfzl31af7bicqp25cclfra";
+    sha256 = "1bfczv5006ycwr1vw7xbq7cmys0jvfr8awmx7wi1b40zyj0yss8j";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/nixpkgs/pkgs/development/libraries/sqlite/tools.nix b/nixpkgs/pkgs/development/libraries/sqlite/tools.nix
index b423e557a56e..d260c4211ec9 100644
--- a/nixpkgs/pkgs/development/libraries/sqlite/tools.nix
+++ b/nixpkgs/pkgs/development/libraries/sqlite/tools.nix
@@ -4,11 +4,11 @@ let
   archiveVersion = import ./archive-version.nix lib;
   mkTool = { pname, makeTarget, description, homepage }: stdenv.mkDerivation rec {
     inherit pname;
-    version = "3.34.1";
+    version = "3.35.2";
 
     src = assert version == sqlite.version; fetchurl {
       url = "https://sqlite.org/2021/sqlite-src-${archiveVersion version}.zip";
-      sha256 = "0giklai05shqalj1wwadi9hg5dx6vff8nrblqh9xxljnrq701h00";
+      sha256 = "00w7qggrdxpcrs4rfpqkjhcghi8pcx6zzjim9wlz6vsrxlr9dwva";
     };
 
     nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/development/libraries/symengine/default.nix b/nixpkgs/pkgs/development/libraries/symengine/default.nix
index 3a3f5c79763e..01ec3a4fba29 100644
--- a/nixpkgs/pkgs/development/libraries/symengine/default.nix
+++ b/nixpkgs/pkgs/development/libraries/symengine/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "symengine";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "symengine";
     repo = "symengine";
     rev = "v${version}";
-    sha256 = "129iv9maabmb42ylfdv0l0g94mcbf3y4q3np175008rcqdr8z6h1";
+    sha256 = "sha256-aoitTT9fwTIs3ovfqQjKGgrU+kT5mj+vDHt5lg49JHU=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/tachyon/default.nix b/nixpkgs/pkgs/development/libraries/tachyon/default.nix
index f536442295ef..47cebd62df65 100644
--- a/nixpkgs/pkgs/development/libraries/tachyon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tachyon/default.nix
@@ -13,10 +13,10 @@ assert stdenv.isDarwin -> Carbon != null;
 
 stdenv.mkDerivation rec {
   pname = "tachyon";
-  version = "0.99b2";
+  version = "0.99b6";
   src = fetchurl {
     url = "http://jedi.ks.uiuc.edu/~johns/tachyon/files/${version}/${pname}-${version}.tar.gz";
-    sha256 = "04m0bniszyg7ryknj8laj3rl5sspacw5nr45x59j2swcsxmdvn1v";
+    sha256 = "15wv2748ngk2iid798a774sjxhhijq7kjm32yl897x54fsfazp7l";
   };
   buildInputs = lib.optionals stdenv.isDarwin [
     Carbon
@@ -36,8 +36,11 @@ stdenv.mkDerivation rec {
   '';
   arch = if stdenv.hostPlatform.system == "x86_64-linux"   then "linux-64-thr"  else
          if stdenv.hostPlatform.system == "i686-linux"     then "linux-thr"     else
-         if stdenv.hostPlatform.system == "aarch64-linux"  then "linux-arm-thr" else
-         if stdenv.hostPlatform.system == "armv7l-linux"   then "linux-arm-thr" else
+         # 2021-03-29: multithread (-DTHR -D_REENTRANT) was disabled on linux-arm
+         # because it caused Sage's 3D plotting tests to hang indefinitely.
+         # see https://github.com/NixOS/nixpkgs/pull/117465
+         if stdenv.hostPlatform.system == "aarch64-linux"  then "linux-arm"     else
+         if stdenv.hostPlatform.system == "armv7l-linux"   then "linux-arm"     else
          if stdenv.hostPlatform.system == "x86_64-darwin"  then "macosx-thr"    else
          if stdenv.hostPlatform.system == "i686-darwin"    then "macosx-64-thr" else
          if stdenv.hostPlatform.system == "i686-cygwin"    then "win32"         else
diff --git a/nixpkgs/pkgs/development/libraries/tachyon/make-archs.patch b/nixpkgs/pkgs/development/libraries/tachyon/make-archs.patch
index cf83f8c8c31c..ee81681e101f 100644
--- a/nixpkgs/pkgs/development/libraries/tachyon/make-archs.patch
+++ b/nixpkgs/pkgs/development/libraries/tachyon/make-archs.patch
@@ -22,11 +22,11 @@ index 08afb85..dbeb691 100644
  	"RANLIB = ranlib" \
  	"LIBS = -L. -ltachyon $(MISCLIB) -lm -lpthread"
  
-+# Linux Arm using gcc, with threads
-+linux-arm-thr:
++# Linux Arm using gcc
++linux-arm:
 +	$(MAKE) all \
-+	"ARCH = linux-arm-thr" \
-+	"CFLAGS = -Wall -O3 -fomit-frame-pointer -ffast-math -DLinux -DTHR -D_REENTRANT $(MISCFLAGS)" \
++	"ARCH = linux-arm" \
++	"CFLAGS = -Wall -O3 -fomit-frame-pointer -ffast-math -DLinux $(MISCFLAGS)" \
 +	"ARFLAGS = r" \
 +	"STRIP = strip" \
 +	"RANLIB = ranlib" \
diff --git a/nixpkgs/pkgs/development/libraries/tachyon/no-absolute-paths.patch b/nixpkgs/pkgs/development/libraries/tachyon/no-absolute-paths.patch
index faa3810fb5c6..8ebc6560405b 100644
--- a/nixpkgs/pkgs/development/libraries/tachyon/no-absolute-paths.patch
+++ b/nixpkgs/pkgs/development/libraries/tachyon/no-absolute-paths.patch
@@ -1,5 +1,4 @@
 diff --git a/unix/Make-config b/unix/Make-config
-index ee4f388..c1d51d4 100644
 --- a/unix/Make-config
 +++ b/unix/Make-config
 @@ -18,7 +18,7 @@
@@ -11,7 +10,7 @@ index ee4f388..c1d51d4 100644
  
  
  
-@@ -30,7 +30,7 @@ SHELL=/bin/sh
+@@ -30,7 +30,7 @@
  
  # The following line should be set to -Ixxx where xxx is your X11 include path
  # Sun puts X11 in /usr/openwin/xxx
@@ -20,16 +19,20 @@ index ee4f388..c1d51d4 100644
  
  # Others typically use /usr/X11 or /usr/X11R6
  #X11INC= -I/usr/X11
-@@ -57,7 +57,7 @@ X11LIB= -lX11
+@@ -105,9 +105,9 @@
  ##########################################################################
- 
- # Standard MPICH installation location
+ # Customize MPI directories and includes as-needed.
+ # A typical MPICH installation location:
 -MPIDIR=/usr/local/mpi
+-MPIINC=$(MPIDIR)/include
+-MPILIB=$(MPIDIR)/lib
 +# MPIDIR=/usr/local/mpi
++# MPIINC=$(MPIDIR)/include
++# MPILIB=$(MPIDIR)/lib
  
- # UMR CS Dept
- #MPIDIR=/software/all/mpi
-@@ -108,9 +108,9 @@ MBOX=
+ # MPI defines and any flags needed by the local installation.
+ # Always list -DMPI at a minimum.  
+@@ -166,9 +166,9 @@
  #   http://www.ijg.org/files/
  ##########################################################################
  # Uncomment the following lines to disable JPEG support
@@ -42,7 +45,7 @@ index ee4f388..c1d51d4 100644
  
  # Uncomment the following lines to enable JPEG support
  #USEJPEG= -DUSEJPEG
-@@ -128,9 +128,9 @@ JPEGLIB=
+@@ -186,9 +186,9 @@
  #   http://www.libpng.org/
  ##########################################################################
  # Uncomment the following lines to disable PNG support
diff --git a/nixpkgs/pkgs/development/libraries/talloc/default.nix b/nixpkgs/pkgs/development/libraries/talloc/default.nix
index 553c42da7c4f..27705c578584 100644
--- a/nixpkgs/pkgs/development/libraries/talloc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/talloc/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation (rec {
   pname = "talloc";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchurl {
     url = "mirror://samba/talloc/${pname}-${version}.tar.gz";
-    sha256 = "0xwzgzrqamfdlklwacp9d219pqkah0yfrhxb1j7bxlmgzp924j7g";
+    sha256 = "sha256-J6A++Z44TXeRJN91XesinNF2H5Reym0gDoz9m/Upe9c=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/tclap/default.nix b/nixpkgs/pkgs/development/libraries/tclap/default.nix
index 451f17a2cd72..feb3825b3d4e 100644
--- a/nixpkgs/pkgs/development/libraries/tclap/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tclap/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "tclap-1.2.2";
+  name = "tclap-1.2.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/tclap/${name}.tar.gz";
-    sha256 = "0dsqvsgzam3mypj2ladn6v1yjq9zd47p3lg21jx6kz5azkkkn0gm";
+    sha256 = "sha256-GefbUoFUDxVDSHcLw6dIRXX09Umu+OAKq8yUs5X3c8k=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/tecla/default.nix b/nixpkgs/pkgs/development/libraries/tecla/default.nix
index 6d8a334ce3fb..a0a1ac0360e8 100644
--- a/nixpkgs/pkgs/development/libraries/tecla/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tecla/default.nix
@@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
     sha256 = "06pfq5wa8d25i9bdjkp4xhms5101dsrbg82riz7rz1a0a32pqxgj";
   };
 
+  postPatch = ''
+    substituteInPlace install-sh \
+      --replace "stripprog=" "stripprog=\$STRIP # "
+  '';
+
   meta = {
     homepage = "https://www.astro.caltech.edu/~mcs/tecla/";
     description = "Command-line editing library";
diff --git a/nixpkgs/pkgs/development/libraries/telepathy/glib/default.nix b/nixpkgs/pkgs/development/libraries/telepathy/glib/default.nix
index 8bb7522b1976..9ab269aaacfc 100644
--- a/nixpkgs/pkgs/development/libraries/telepathy/glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/telepathy/glib/default.nix
@@ -1,24 +1,49 @@
-{ lib, stdenv, fetchurl, dbus-glib, glib, python2, pkg-config, libxslt
-, gobject-introspection, vala, glibcLocales }:
+{ lib
+, stdenv
+, fetchurl
+, dbus-glib
+, glib
+, python3
+, pkg-config
+, libxslt
+, gobject-introspection
+, vala
+, glibcLocales
+}:
 
 stdenv.mkDerivation rec {
-  name = "telepathy-glib-0.24.1";
+  pname = "telepathy-glib";
+  version = "0.24.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "${meta.homepage}/releases/telepathy-glib/${name}.tar.gz";
-    sha256 = "1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy";
+    url = "${meta.homepage}/releases/telepathy-glib/${pname}-${version}.tar.gz";
+    sha256 = "sKN013HN0IESXzjDq9B5ZXZCMBxxpUPVVeK/IZGSc/A=";
   };
 
+  nativeBuildInputs = [
+    pkg-config
+    libxslt
+    gobject-introspection
+    vala
+  ];
+
+  buildInputs = [
+    glibcLocales
+    python3
+  ];
+
+  propagatedBuildInputs = [
+    dbus-glib
+    glib
+  ];
+
   configureFlags = [
     "--enable-vala-bindings"
   ];
-  LC_ALL = "en_US.UTF-8";
-  propagatedBuildInputs = [ dbus-glib glib ];
 
-  nativeBuildInputs = [ pkg-config libxslt gobject-introspection vala ];
-  buildInputs = [ glibcLocales python2 ];
+  LC_ALL = "en_US.UTF-8";
 
   enableParallelBuilding = true;
 
@@ -26,8 +51,6 @@ stdenv.mkDerivation rec {
     substituteInPlace telepathy-glib/telepathy-glib.pc.in --replace Requires.private Requires
   '';
 
-  passthru.python = python2;
-
   meta = with lib; {
     homepage = "https://telepathy.freedesktop.org";
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/telepathy/qt/default.nix b/nixpkgs/pkgs/development/libraries/telepathy/qt/default.nix
index b606c56445ed..dbbaca7e11a7 100644
--- a/nixpkgs/pkgs/development/libraries/telepathy/qt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/telepathy/qt/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, cmake, qtbase, pkg-config, python3Packages, dbus-glib, dbus
-, telepathy-farstream, telepathy-glib, fetchpatch }:
+, telepathy-farstream, telepathy-glib }:
 
 let
   inherit (python3Packages) python dbus-python;
@@ -20,6 +20,8 @@ in stdenv.mkDerivation rec {
   # On 0.9.7, they do not even build with QT4
   cmakeFlags = lib.optional (!doCheck) "-DENABLE_TESTS=OFF";
 
+  dontWrapQtApps = true;
+
   doCheck = false; # giving up for now
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/tepl/default.nix b/nixpkgs/pkgs/development/libraries/tepl/default.nix
index d9d740817355..84d50faf54e2 100644
--- a/nixpkgs/pkgs/development/libraries/tepl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tepl/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tepl";
-  version = "5.0.0";
+  version = "5.0.1";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0x2s0ks575b57jdqnp9r9miz40pm705n2dlj2k8bfj1hyl22kgf6";
+    sha256 = "sSdJZ2CfUkSEs4d1+p7LKWxtZhaqvQUvKGM5oomRKAQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/termbox/default.nix b/nixpkgs/pkgs/development/libraries/termbox/default.nix
index e809240bcd10..51c2ca1c8084 100644
--- a/nixpkgs/pkgs/development/libraries/termbox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/termbox/default.nix
@@ -1,31 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, python3, wafHook, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "termbox";
-  version = "1.1.2";
+  version = "1.1.4";
   src = fetchFromGitHub {
-    owner = "nsf";
+    owner = "termbox";
     repo = "termbox";
     rev = "v${version}";
-    sha256 = "08yqxzb8fny8806p7x8a6f3phhlbfqdd7dhkv25calswj7w1ssvs";
+    sha256 = "075swv6ajx8m424dbmgbf6fs6nd5q004gjpvx48gkxmnf9spvykl";
   };
 
-  # patch which updates the `waf` version used to build
-  # to make the package buildable on Python 3.7
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/nsf/termbox/commit/6fe63ac3ad63dc2c3ac45b770541cc8b7a1d2db7.patch";
-      sha256 = "1s5747v51sdwvpsg6k9y1j60yn9f63qnylkgy8zrsifjzzd5fzl6";
-    })
-  ];
-
-  nativeBuildInputs = [ python3 wafHook ];
+  makeFlags = [ "prefix=${placeholder "out"}" ];
 
   meta = with lib; {
     description = "Library for writing text-based user interfaces";
     license = licenses.mit;
-    homepage = "https://github.com/nsf/termbox#readme";
-    downloadPage = "https://github.com/nsf/termbox/releases";
+    homepage = "https://github.com/termbox/termbox#readme";
+    downloadPage = "https://github.com/termbox/termbox/releases";
     maintainers = with maintainers; [ fgaz ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/thrift/0.10.nix b/nixpkgs/pkgs/development/libraries/thrift/0.10.nix
index a735e146214a..d81912b07c61 100644
--- a/nixpkgs/pkgs/development/libraries/thrift/0.10.nix
+++ b/nixpkgs/pkgs/development/libraries/thrift/0.10.nix
@@ -35,5 +35,12 @@ stdenv.mkDerivation rec {
     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 669dff21147e..04d9280e7b36 100644
--- a/nixpkgs/pkgs/development/libraries/thrift/default.nix
+++ b/nixpkgs/pkgs/development/libraries/thrift/default.nix
@@ -1,26 +1,17 @@
-{ lib, stdenv, fetchurl, fetchpatch, boost, zlib, libevent, openssl, python, cmake, pkg-config
+{ lib, stdenv, fetchurl, boost, zlib, libevent, openssl, python, cmake, pkg-config
 , bison, flex, twisted
 , static ? stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation rec {
   pname = "thrift";
-  version = "0.13.0";
+  version = "0.14.1";
 
   src = fetchurl {
     url = "https://archive.apache.org/dist/thrift/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0yai9c3bdsrkkjshgim7zk0i7malwfprg00l9774dbrkh2w4ilvs";
+    sha256 = "198c855mjy5byqfb941hiyq2j37baz63f0wcfy4vp8y8v4f5xnhk";
   };
 
-  patches = [
-    # Fix a failing test on darwin
-    # https://issues.apache.org/jira/browse/THRIFT-4976
-    (fetchpatch {
-      url = "https://github.com/apache/thrift/commit/6701dbb8e89f6550c7843e9b75b118998df471c3.diff";
-      sha256 = "14rqma2b2zv3zxkkl5iv9kvyp3zihvad6fdc2gcdqv37nqnswx9d";
-    })
-  ];
-
   # Workaround to make the python wrapper not drop this package:
   # pythonFull.buildEnv.override { extraLibs = [ thrift ]; }
   pythonPath = [];
@@ -32,6 +23,9 @@ stdenv.mkDerivation rec {
   preConfigure = "export PY_PREFIX=$out";
 
   cmakeFlags = [
+    "-DBUILD_JAVASCRIPT:BOOL=OFF"
+    "-DBUILD_NODEJS:BOOL=OFF"
+
     # FIXME: Fails to link in static mode with undefined reference to
     # `boost::unit_test::unit_test_main(bool (*)(), int, char**)'
     "-DBUILD_TESTING:BOOL=${if static then "OFF" else "ON"}"
@@ -40,11 +34,32 @@ stdenv.mkDerivation rec {
     "-DOPENSSL_USE_STATIC_LIBS=ON"
   ];
 
+  disabledTests = [
+    "PythonTestSSLSocket"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # tests that hang up in the darwin sandbox
+    "SecurityTest"
+    "SecurityFromBufferTest"
+    "python_test"
+
+    # tests that fail in the darwin sandbox when trying to use network
+    "UnitTests"
+    "TInterruptTest"
+    "TServerIntegrationTest"
+    "processor"
+    "TNonblockingServerTest"
+    "TNonblockingSSLServerTest"
+    "StressTest"
+    "StressTestConcurrent"
+    "StressTestNonBlocking"
+    "PythonThriftTNonblockingServer"
+  ];
+
   doCheck = !static;
   checkPhase = ''
     runHook preCheck
 
-    ${lib.optionalString stdenv.isDarwin "DY"}LD_LIBRARY_PATH=$PWD/lib ctest -E PythonTestSSLSocket
+    ${lib.optionalString stdenv.isDarwin "DY"}LD_LIBRARY_PATH=$PWD/lib ctest -E "($(echo "$disabledTests" | tr " " "|"))"
 
     runHook postCheck
   '';
diff --git a/nixpkgs/pkgs/development/libraries/tidyp/default.nix b/nixpkgs/pkgs/development/libraries/tidyp/default.nix
index 5c0ad8463b4a..f4c24a126e5b 100644
--- a/nixpkgs/pkgs/development/libraries/tidyp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tidyp/default.nix
@@ -13,7 +13,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";
     homepage = "http://tidyp.com/";
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ pSub ];
     license = licenses.bsd3;
   };
diff --git a/nixpkgs/pkgs/development/libraries/tiledb/default.nix b/nixpkgs/pkgs/development/libraries/tiledb/default.nix
index 4e6e49d68c45..0fa1ea8bd392 100644
--- a/nixpkgs/pkgs/development/libraries/tiledb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tiledb/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tiledb";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB";
     rev = version;
-    sha256 = "sha256-QYJ5dJQyVy0GLVKRcwb2WBK4IE1q/jXl1OQGau0HBSg=";
+    sha256 = "sha256-xzzWB20vhnneiqJqZAeSUjZouqhPPg2bGaot1IQDMEo=";
   };
 
   # (bundled) blosc headers have a warning on some archs that it will be using
diff --git a/nixpkgs/pkgs/development/libraries/tinyobjloader/default.nix b/nixpkgs/pkgs/development/libraries/tinyobjloader/default.nix
index c7939a6be255..ad4a999e45cd 100644
--- a/nixpkgs/pkgs/development/libraries/tinyobjloader/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tinyobjloader/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     description = "Tiny but powerful single file wavefront obj loader";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/tllist/default.nix b/nixpkgs/pkgs/development/libraries/tllist/default.nix
index 11e61e93a0c1..c84973919990 100644
--- a/nixpkgs/pkgs/development/libraries/tllist/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tllist/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
 
     license = licenses.mit;
     maintainers = with maintainers; [ fionera AndersonTorres ];
-    platforms = with platforms; linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/tnt/default.nix b/nixpkgs/pkgs/development/libraries/tnt/default.nix
index 932239a485fd..f4787271c039 100644
--- a/nixpkgs/pkgs/development/libraries/tnt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tnt/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "1bzkfdb598584qlc058n8wqq9vbz714gr5r57401rsa9qaxhk5j7";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
       mkdir -p $out/include
diff --git a/nixpkgs/pkgs/development/libraries/tpm2-tss/default.nix b/nixpkgs/pkgs/development/libraries/tpm2-tss/default.nix
index fa506733c16e..a272cf8b9340 100644
--- a/nixpkgs/pkgs/development/libraries/tpm2-tss/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tpm2-tss/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub
 , autoreconfHook, autoconf-archive, pkg-config, doxygen, perl
 , openssl, json_c, curl, libgcrypt
-, cmocka, uthash, ibm-sw-tpm2, iproute, procps, which
+, cmocka, uthash, ibm-sw-tpm2, iproute2, procps, which
 }:
 
 stdenv.mkDerivation rec {
@@ -20,14 +20,28 @@ stdenv.mkDerivation rec {
   ];
   buildInputs = [ openssl json_c curl libgcrypt ];
   checkInputs = [
-    cmocka uthash ibm-sw-tpm2 iproute procps which
+    cmocka uthash ibm-sw-tpm2 iproute2 procps which
   ];
 
   preAutoreconf = "./bootstrap";
 
   enableParallelBuilding = true;
 
-  postPatch = "patchShebangs script";
+  patches = [
+    # Do not rely on dynamic loader path
+    # TCTI loader relies on dlopen(), this patch prefixes all calls with the output directory
+    ./no-dynamic-loader-path.patch
+  ];
+
+  postPatch = ''
+    patchShebangs script
+    substituteInPlace src/tss2-tcti/tctildr-dl.c \
+      --replace '@PREFIX@' $out/lib/
+    substituteInPlace ./test/unit/tctildr-dl.c \
+      --replace ', "libtss2' ", \"$out/lib/libtss2" \
+      --replace ', "foo' ", \"$out/lib/foo" \
+      --replace ', TEST_TCTI_NAME' ", \"$out/lib/\"TEST_TCTI_NAME"
+  '';
 
   configureFlags = [
     "--enable-unit"
@@ -35,6 +49,14 @@ stdenv.mkDerivation rec {
   ];
 
   doCheck = true;
+  preCheck = ''
+    # Since we rewrote the load path in the dynamic loader for the TCTI
+    # The various tcti implementation should be placed in their target directory
+    # before we could run tests
+    installPhase
+    # install already done, dont need another one
+    dontInstall=1
+  '';
 
   postInstall = ''
     # Do not install the upstream udev rules, they rely on specific
diff --git a/nixpkgs/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch b/nixpkgs/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch
new file mode 100644
index 000000000000..86cdcd1541e6
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch
@@ -0,0 +1,39 @@
+diff --git a/src/tss2-tcti/tctildr-dl.c b/src/tss2-tcti/tctildr-dl.c
+index b364695c..b13be3ef 100644
+--- a/src/tss2-tcti/tctildr-dl.c
++++ b/src/tss2-tcti/tctildr-dl.c
+@@ -85,7 +85,15 @@ handle_from_name(const char *file,
+     if (handle == NULL) {
+         return TSS2_TCTI_RC_BAD_REFERENCE;
+     }
+-    *handle = dlopen(file, RTLD_NOW);
++    size = snprintf(file_xfrm,
++                    sizeof (file_xfrm),
++                    "@PREFIX@%s",
++                    file);
++    if (size >= sizeof (file_xfrm)) {
++        LOG_ERROR("TCTI name truncated in transform.");
++        return TSS2_TCTI_RC_BAD_VALUE;
++    }
++    *handle = dlopen(file_xfrm, RTLD_NOW);
+     if (*handle != NULL) {
+         return TSS2_RC_SUCCESS;
+     } else {
+@@ -94,7 +102,7 @@ handle_from_name(const char *file,
+     /* 'name' alone didn't work, try libtss2-tcti-<name>.so.0 */
+     size = snprintf(file_xfrm,
+                     sizeof (file_xfrm),
+-                    TCTI_NAME_TEMPLATE_0,
++                    "@PREFIX@" TCTI_NAME_TEMPLATE_0,
+                     file);
+     if (size >= sizeof (file_xfrm)) {
+         LOG_ERROR("TCTI name truncated in transform.");
+@@ -109,7 +117,7 @@ handle_from_name(const char *file,
+     /* libtss2-tcti-<name>.so.0 didn't work, try libtss2-tcti-<name>.so */
+     size = snprintf(file_xfrm,
+                     sizeof (file_xfrm),
+-                    TCTI_NAME_TEMPLATE,
++                    "@PREFIX@" TCTI_NAME_TEMPLATE,
+                     file);
+     if (size >= sizeof (file_xfrm)) {
+         LOG_ERROR("TCTI name truncated in transform.");
diff --git a/nixpkgs/pkgs/development/libraries/tracker-miners/default.nix b/nixpkgs/pkgs/development/libraries/tracker-miners/default.nix
index 2ca5dd6bd93a..5b4c1d195ece 100644
--- a/nixpkgs/pkgs/development/libraries/tracker-miners/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tracker-miners/default.nix
@@ -48,11 +48,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tracker-miners";
-  version = "3.0.1";
+  version = "3.0.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1kfi5d6pccqx28hbnja6k1mpwjd53k5zs704sg01rlzmbshz1zn6";
+    sha256 = "sha256-E877xx1S93RvPTfQQdjFvBM2pA/13ZK1Nw6GUMJqiY4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/tracker/default.nix b/nixpkgs/pkgs/development/libraries/tracker/default.nix
index 38885048fcc5..fae10f2b1b4a 100644
--- a/nixpkgs/pkgs/development/libraries/tracker/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tracker/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , gettext
 , meson
 , ninja
@@ -28,15 +27,15 @@
 , substituteAll
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   pname = "tracker";
-  version = "3.0.1";
+  version = "3.0.3";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1rhcs75axga7p7hl37h6jzb2az89jddlcwc7ykrnb2khyhka78rr";
+    sha256 = "sha256-b1yEqzvh7aUgUBsq7XIhYWoM8VKRDFN3V7U4vAXv/KM=";
   };
 
   patches = [
@@ -44,13 +43,6 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       inherit asciidoc;
     })
-
-    # Fix consistency error with sqlite 3.34
-    # https://gitlab.gnome.org/GNOME/tracker/merge_requests/353
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/tracker/commit/040e22d005985a19a0dc435a7631f91700804ce4.patch";
-      sha256 = "5OZj17XY8ZnXfMMim25HvGfFKUlsVlVHOUjZKfBKHcs=";
-    })
   ];
 
   nativeBuildInputs = [
@@ -90,7 +82,8 @@ stdenv.mkDerivation rec {
     "-Ddocs=true"
   ];
 
-  doCheck = true;
+  # https://gitlab.gnome.org/GNOME/tracker/-/issues/292#note_1075369
+  doCheck = !stdenv.isi686;
 
   postPatch = ''
     patchShebangs utils/g-ir-merge/g-ir-merge
@@ -141,3 +134,8 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 }
+  // lib.optionalAttrs stdenv.isi686 {
+    # TMP: fatal error: libtracker-sparql/tracker-sparql-enum-types.h: No such file or directory
+    enableParallelBuilding = false;
+  }
+)
diff --git a/nixpkgs/pkgs/development/libraries/trompeloeil/default.nix b/nixpkgs/pkgs/development/libraries/trompeloeil/default.nix
index 800b35640111..062c441063c0 100644
--- a/nixpkgs/pkgs/development/libraries/trompeloeil/default.nix
+++ b/nixpkgs/pkgs/development/libraries/trompeloeil/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "trompeloeil";
-  version = "39";
+  version = "40";
 
   src = fetchFromGitHub {
     owner = "rollbear";
     repo = "trompeloeil";
     rev = "v${version}";
-    sha256 = "1053iw4isi7qsy94fqmh570wki999sg9n70jhqy8kfy1bniczh0l";
+    sha256 = "sha256-q0iMM3Hb5Y21RUhhxFEd/q4OCJFJ12gozZd5jCDscro=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/tweeny/default.nix b/nixpkgs/pkgs/development/libraries/tweeny/default.nix
index 8340e47fbf9b..0afc82321d8c 100644
--- a/nixpkgs/pkgs/development/libraries/tweeny/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tweeny/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tweeny";
-  version = "3.1.1";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "mobius3";
     repo = "tweeny";
     rev = "v${version}";
-    sha256 = "0zk7p21i54hfz0l50617i3gxhxh0n9yy86n2fxg8m26cvf4yhsj7";
+    sha256 = "sha256-VmvOMK+FjYZXKH9kPUT2L7pmJMPSr5eXptCcoGWK+qo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/udunits/default.nix b/nixpkgs/pkgs/development/libraries/udunits/default.nix
index deed5b64d2c5..b8ea203ef176 100644
--- a/nixpkgs/pkgs/development/libraries/udunits/default.nix
+++ b/nixpkgs/pkgs/development/libraries/udunits/default.nix
@@ -1,26 +1,49 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook,
-  texinfo, bison, flex, expat, file
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, bison
+, expat
+, file
+, flex
+, texinfo
 }:
 
 stdenv.mkDerivation rec {
   pname = "udunits";
-  version = "2.2.27.6";
+  version = "unstable-2021-03-17";
 
   src = fetchFromGitHub {
     owner = "Unidata";
     repo = "UDUNITS-2";
-    rev = "v${version}";
-    sha256 = "0621pac24c842dyipzaa59rh6pza9phdqi3snd4cq4pib0wjw6gm";
+    rev = "c83da987387db1174cd2266b73dd5dd556f4476b";
+    hash = "sha256-+HW21+r65OroCxMK2/B5fe7zHs4hD4xyoJK2bhdJGyQ=";
   };
 
-  nativeBuildInputs = [ autoreconfHook texinfo bison flex file ];
-  buildInputs = [ expat ];
+  nativeBuildInputs = [
+    autoreconfHook
+    texinfo
+    bison
+    flex
+    file
+  ];
+  buildInputs = [
+    expat
+  ];
 
   meta = with lib; {
     homepage = "https://www.unidata.ucar.edu/software/udunits/";
     description = "A C-based package for the programatic handling of units of physical quantities";
-    license = licenses.bsdOriginal;
+    longDescription = ''
+      The UDUNITS package supports units of physical quantities. Its C library
+      provides for arithmetic manipulation of units and for conversion of
+      numeric values between compatible units. The package contains an extensive
+      unit database, which is in XML format and user-extendable. The package
+      also contains a command-line utility for investigating units and
+      converting values.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ AndersonTorres pSub ];
     platforms = platforms.linux;
-    maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/unixODBC/default.nix b/nixpkgs/pkgs/development/libraries/unixODBC/default.nix
index 8b2558c08504..ef70f4b2c37f 100644
--- a/nixpkgs/pkgs/development/libraries/unixODBC/default.nix
+++ b/nixpkgs/pkgs/development/libraries/unixODBC/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "unixODBC";
-  version = "2.3.7";
+  version = "2.3.9";
 
   src = fetchurl {
     url = "ftp://ftp.unixodbc.org/pub/unixODBC/${pname}-${version}.tar.gz";
-    sha256 = "0xry3sg497wly8f7715a7gwkn2k36bcap0mvzjw74jj53yx6kwa5";
+    sha256 = "sha256-UoM+rD1oHIsMmlpl8uvXRbOpZPII/HSPl35EAVoxsgc=";
   };
 
   configureFlags = [ "--disable-gui" "--sysconfdir=/etc" ];
diff --git a/nixpkgs/pkgs/development/libraries/unixODBCDrivers/default.nix b/nixpkgs/pkgs/development/libraries/unixODBCDrivers/default.nix
index faf74bcab477..14f41b015e9c 100644
--- a/nixpkgs/pkgs/development/libraries/unixODBCDrivers/default.nix
+++ b/nixpkgs/pkgs/development/libraries/unixODBCDrivers/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, unixODBC, cmake, postgresql, mysql, sqlite, zlib, libxml2, dpkg, lib, openssl, kerberos, libuuid, patchelf, libiconv, fetchFromGitHub }:
+{ fetchurl, stdenv, unixODBC, cmake, postgresql, mariadb, sqlite, zlib, libxml2, dpkg, lib, openssl, libkrb5, libuuid, patchelf, libiconv, fetchFromGitHub }:
 
 # I haven't done any parameter tweaking.. So the defaults provided here might be bad
 
@@ -79,7 +79,7 @@
     };
 
     nativeBuildInputs = [ cmake ];
-    buildInputs = [ unixODBC mysql ];
+    buildInputs = [ unixODBC mariadb ];
 
     cmakeFlags = [ "-DWITH_UNIXODBC=1" ];
 
@@ -157,7 +157,7 @@
     '';
 
     postFixup = ''
-      patchelf --set-rpath ${lib.makeLibraryPath [ unixODBC openssl.out kerberos libuuid stdenv.cc.cc ]} \
+      patchelf --set-rpath ${lib.makeLibraryPath [ unixODBC openssl.out libkrb5 libuuid stdenv.cc.cc ]} \
         $out/lib/libmsodbcsql-${versionMajor}.${versionMinor}.so.${versionAdditional}
     '';
 
diff --git a/nixpkgs/pkgs/development/libraries/uriparser/default.nix b/nixpkgs/pkgs/development/libraries/uriparser/default.nix
index ad1719984807..db36e31ae874 100644
--- a/nixpkgs/pkgs/development/libraries/uriparser/default.nix
+++ b/nixpkgs/pkgs/development/libraries/uriparser/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, fetchpatch, cmake, gtest }:
+{ lib, stdenv, fetchurl, cmake, gtest }:
 
 stdenv.mkDerivation rec {
   pname = "uriparser";
-  version = "0.9.4";
+  version = "0.9.5";
 
   # Release tarball differs from source tarball
   src = fetchurl {
     url = "https://github.com/uriparser/uriparser/releases/download/${pname}-${version}/${pname}-${version}.tar.bz2";
-    sha256 = "0yzqp1j6sglyrmwcasgn7zlwg841p3nbxy0h78ngq20lc7jspkdp";
+    sha256 = "0v30qr5hl3xybl9nzwaw46kblwn94w5xpri22wanrrpjlzmn306x";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/utf8cpp/default.nix b/nixpkgs/pkgs/development/libraries/utf8cpp/default.nix
index e627b97849a0..30129992c73d 100644
--- a/nixpkgs/pkgs/development/libraries/utf8cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/utf8cpp/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
     description = "UTF-8 with C++ in a Portable Way";
     license = licenses.free;
     maintainers = with maintainers; [ jobojeha ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/v8/default.nix b/nixpkgs/pkgs/development/libraries/v8/default.nix
index c79073f04e4c..d513e01b7a35 100644
--- a/nixpkgs/pkgs/development/libraries/v8/default.nix
+++ b/nixpkgs/pkgs/development/libraries/v8/default.nix
@@ -11,23 +11,23 @@ let
   deps = {
     "base/trace_event/common" = fetchgit {
       url    = "${git_url}/chromium/src/base/trace_event/common.git";
-      rev    = "936ba8a963284a6b3737cf2f0474a7131073abee";
-      sha256 = "14nr22fqdpxma1kzjflj6a865vr3hfnnm2gs4vcixyq4kmfzfcy2";
+      rev    = "dab187b372fc17e51f5b9fad8201813d0aed5129";
+      sha256 = "0dmpj9hj4xv3xb0fl1kb9hm4bhpbs2s5csx3z8cgjd5vwvhdzig4";
     };
     build = fetchgit {
       url    = "${git_url}/chromium/src/build.git";
-      rev    = "325e95d6dae64f35b160b3dc7d73218cee5ec079";
-      sha256 = "0dddyxa76p2xpjhmxif05v63i5ar6h5v684fdl667sg84f5bhhxf";
+      rev    = "26e9d485d01d6e0eb9dadd21df767a63494c8fea";
+      sha256 = "1jjvsgj0cs97d26i3ba531ic1f9gqan8x7z4aya8yl8jx02l342q";
     };
     "third_party/googletest/src" = fetchgit {
       url    = "${git_url}/external/github.com/google/googletest.git";
-      rev    = "5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081";
-      sha256 = "0gmr10042c0xybxnn6g7ndj1na1mmd3l9w7449qlcv4s8gmfs7k6";
+      rev    = "e3f0319d89f4cbf32993de595d984183b1a9fc57";
+      sha256 = "18xz71l2xjrqsc0q317whgw4xi1i5db24zcj7v04f5g6r1hyf1a5";
     };
     "third_party/icu" = fetchgit {
       url    = "${git_url}/chromium/deps/icu.git";
-      rev    = "960f195aa87acaec46e6104ec93a596da7ae0843";
-      sha256 = "073kh6gpcairgjxf3hlhpqljc13gwl2aj8fz91fv220xibwqs834";
+      rev    = "f2223961702f00a8833874b0560d615a2cc42738";
+      sha256 = "0z5p53kbrjfkjn0i12dpk55cp8976j2zk7a4wk88423s2c5w87zl";
     };
     "third_party/jinja2" = fetchgit {
       url    = "${git_url}/chromium/src/third_party/jinja2.git";
@@ -39,29 +39,31 @@ let
       rev    = "8f45f5cfa0009d2a70589bcda0349b8cb2b72783";
       sha256 = "168ppjmicfdh4i1l0l25s86mdbrz9fgxmiq1rx33x79mph41scfz";
     };
+    "third_party/zlib" = fetchgit {
+      url    = "${git_url}/chromium/src/third_party/zlib.git";
+      rev    = "156be8c52f80cde343088b4a69a80579101b6e67";
+      sha256 = "0hxbkkzmlv714fjq2jlp5dd2jc339xyh6gkjx1sz3srwv33mlk92";
+    };
   };
 
 in
 
 stdenv.mkDerivation rec {
   pname = "v8";
-  version = "7.4.255";
+  version = "8.4.255";
 
   doCheck = true;
 
   patches = [
-    (fetchpatch {
-      url = "https://raw.githubusercontent.com/RPi-Distro/chromium-browser/master/debian/patches/revert-Xclang-instcombine-lower-dbg-declare.patch";
-      sha256 = "02hczcg43m36q8j1kv5j3hq9czj9niiil9w13w22vzv2f3c67dvn";
-    })
     ./darwin.patch
+    ./gcc_arm.patch  # Fix building zlib with gcc on aarch64, from https://gist.github.com/Adenilson/d973b6fd96c7709d33ddf08cf1dcb149
   ];
 
   src = fetchFromGitHub {
     owner = "v8";
     repo = "v8";
     rev = version;
-    sha256 = "14i0c71hmffzqnq9n73dh9dnabdxhbjhzkhqpk5yv9y90bwrzi2n";
+    sha256 = "07ymw4kqbz7kv311gpk5bs5q90wj73n2q7jkyfhqk4hvhs1q5bw7";
   };
 
   postUnpack = ''
@@ -97,9 +99,7 @@ stdenv.mkDerivation rec {
     ''v8_snapshot_toolchain="//build/toolchain/linux/unbundle:default"''
   ] ++ lib.optional stdenv.cc.isClang ''clang_base_path="${stdenv.cc}"'';
 
-  # with gcc8, -Wclass-memaccess became part of -Wall and causes logging limit
-  # to be exceeded
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-class-memaccess";
+  NIX_CFLAGS_COMPILE = "-O2";
 
   nativeBuildInputs = [ gn ninja pkg-config python ]
     ++ lib.optionals stdenv.isDarwin [ xcbuild darwin.DarwinTools ];
diff --git a/nixpkgs/pkgs/development/libraries/v8/gcc_arm.patch b/nixpkgs/pkgs/development/libraries/v8/gcc_arm.patch
new file mode 100644
index 000000000000..09579561fd8d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/v8/gcc_arm.patch
@@ -0,0 +1,31 @@
+diff --git a/third_party/zlib/contrib/optimizations/insert_string.h b/third_party/zlib/contrib/optimizations/insert_string.h
+index 1826601..d123305 100644
+--- a/third_party/zlib/contrib/optimizations/insert_string.h
++++ b/third_party/zlib/contrib/optimizations/insert_string.h
+@@ -26,15 +26,23 @@
+   #define _cpu_crc32_u32 _mm_crc32_u32
+ 
+ #elif defined(CRC32_ARMV8_CRC32)
+-  #if defined(__clang__)
++  #if defined(__GNUC__) || defined(__clang__)
+     #undef TARGET_CPU_WITH_CRC
+-    #define __crc32cw __builtin_arm_crc32cw
++    #if defined(__clang__)
++      #define __crc32cw __builtin_arm_crc32cw
++    #elif defined(__GNUC__)
++      #define __crc32cw __builtin_aarch64_crc32cw
++    #endif
+   #endif
+ 
+   #define _cpu_crc32_u32 __crc32cw
+ 
+   #if defined(__aarch64__)
+-    #define TARGET_CPU_WITH_CRC __attribute__((target("crc")))
++    #if defined(__clang__)
++      #define TARGET_CPU_WITH_CRC __attribute__((target("crc")))
++    #elif defined(__GNUC__)
++      #define TARGET_CPU_WITH_CRC __attribute__((target("+crc")))
++    #endif
+   #else  // !defined(__aarch64__)
+     #define TARGET_CPU_WITH_CRC __attribute__((target("armv8-a,crc")))
+   #endif  // defined(__aarch64__)
diff --git a/nixpkgs/pkgs/development/libraries/valhalla/default.nix b/nixpkgs/pkgs/development/libraries/valhalla/default.nix
new file mode 100644
index 000000000000..6eac19bcb2cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/valhalla/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config
+, zlib, curl, protobuf, prime-server, boost, sqlite, libspatialite
+, luajit, geos, python3, zeromq }:
+
+stdenv.mkDerivation rec {
+  pname = "valhalla";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "valhalla";
+    repo = "valhalla";
+    rev = version;
+    sha256 = "04vxvzy6hnhdvb9lh1p5vqzzi2drv0g4l2gnbdp44glipbzgd4dr";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [
+    zlib curl protobuf prime-server boost sqlite libspatialite
+    luajit geos python3 zeromq
+  ];
+
+  cmakeFlags = [
+    "-DENABLE_TESTS=OFF"
+    "-DENABLE_BENCHMARKS=OFF"
+  ];
+
+  meta = with lib; {
+    description = "Open Source Routing Engine for OpenStreetMap";
+    homepage = "https://valhalla.readthedocs.io/";
+    license = licenses.mit;
+    maintainers = [ maintainers.Thra11 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/vapoursynth/0001-Call-weak-function-to-allow-adding-preloaded-plugins.patch b/nixpkgs/pkgs/development/libraries/vapoursynth/0001-Call-weak-function-to-allow-adding-preloaded-plugins.patch
new file mode 100644
index 000000000000..0937ac6e3084
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/vapoursynth/0001-Call-weak-function-to-allow-adding-preloaded-plugins.patch
@@ -0,0 +1,74 @@
+From 9b05a6f331506afa5aca8865677af83403d2a32d Mon Sep 17 00:00:00 2001
+From: Tadeo Kondrak <me@tadeo.ca>
+Date: Mon, 25 Jan 2021 11:17:44 -0700
+Subject: [PATCH] Call weak function to allow adding preloaded plugins after
+ compile
+
+---
+ src/core/vscore.cpp | 19 +++++++++++++++++++
+ src/core/vscore.h   |  5 +++++
+ 2 files changed, 24 insertions(+)
+
+diff --git a/src/core/vscore.cpp b/src/core/vscore.cpp
+index 2d29844d..35c509ed 100644
+--- a/src/core/vscore.cpp
++++ b/src/core/vscore.cpp
+@@ -1229,6 +1229,20 @@ void VSCore::destroyFilterInstance(VSNode *node) {
+     freeDepth--;
+ }
+ 
++extern "C" {
++void __attribute__((weak)) VSLoadPluginsNix(void (*load)(void *data, const char *path), void *data);
++
++struct VSLoadPluginsNixCallbackData {
++    VSCore *core;
++    const char *filter;
++};
++
++static void VSLoadPluginsNixCallback(void *data, const char *path) {
++    auto callbackData = static_cast<VSLoadPluginsNixCallbackData *>(data);
++    callbackData->core->loadAllPluginsInPath(path, callbackData->filter);
++}
++}
++
+ VSCore::VSCore(int threads) :
+     coreFreed(false),
+     numFilterInstances(1),
+@@ -1351,6 +1365,11 @@ VSCore::VSCore(int threads) :
+     } // If neither exists, an empty string will do.
+ #endif
+ 
++    if (VSLoadPluginsNix != nullptr) {
++        VSLoadPluginsNixCallbackData data{this, filter.c_str()};
++        VSLoadPluginsNix(VSLoadPluginsNixCallback, &data);
++    }
++
+     VSMap *settings = readSettings(configFile);
+     const char *error = vs_internal_vsapi.getError(settings);
+     if (error) {
+diff --git a/src/core/vscore.h b/src/core/vscore.h
+index 74df8a84..3efac811 100644
+--- a/src/core/vscore.h
++++ b/src/core/vscore.h
+@@ -582,6 +582,9 @@ public:
+     VSFunction() : functionData(nullptr), func(nullptr) {}
+ };
+ 
++extern "C" {
++static void VSLoadPluginsNixCallback(void *data, const char *path);
++}
+ 
+ struct VSPlugin {
+ private:
+@@ -683,6 +686,8 @@ public:
+ 
+     explicit VSCore(int threads);
+     void freeCore();
++
++    friend void VSLoadPluginsNixCallback(void *data, const char *path);
+ };
+ 
+ #endif // VSCORE_H
+-- 
+2.30.0
+
diff --git a/nixpkgs/pkgs/development/libraries/vapoursynth/default.nix b/nixpkgs/pkgs/development/libraries/vapoursynth/default.nix
index 93f8d3c5ae5f..8ef209fe8051 100644
--- a/nixpkgs/pkgs/development/libraries/vapoursynth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vapoursynth/default.nix
@@ -1,13 +1,11 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, makeWrapper
+, runCommandCC, runCommand, vapoursynth, writeText, patchelf, buildEnv
 , zimg, libass, python3, libiconv
 , ApplicationServices
-, ocrSupport ?  false, tesseract ? null
-, imwriSupport? true,  imagemagick7 ? null
+, ocrSupport ? false, tesseract
+, imwriSupport ? true, imagemagick
 }:
 
-assert ocrSupport   -> tesseract != null;
-assert imwriSupport -> imagemagick7 != null;
-
 with lib;
 
 stdenv.mkDerivation rec {
@@ -21,13 +19,17 @@ stdenv.mkDerivation rec {
     sha256 = "1krfdzc2x2vxv4nq9kiv1c09hgj525qn120ah91fw2ikq8ldvmx4";
   };
 
+  patches = [
+    ./0001-Call-weak-function-to-allow-adding-preloaded-plugins.patch
+  ];
+
   nativeBuildInputs = [ pkg-config autoreconfHook makeWrapper ];
   buildInputs = [
     zimg libass
     (python3.withPackages (ps: with ps; [ sphinx cython ]))
   ] ++ optionals stdenv.isDarwin [ libiconv ApplicationServices ]
     ++ optional ocrSupport   tesseract
-    ++ optional imwriSupport imagemagick7;
+    ++ optional imwriSupport imagemagick;
 
   configureFlags = [
     (optionalString (!ocrSupport)   "--disable-ocr")
@@ -36,12 +38,17 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru = {
+  passthru = rec {
     # If vapoursynth is added to the build inputs of mpv and then
     # used in the wrapping of it, we want to know once inside the
     # wrapper, what python3 version was used to build vapoursynth so
     # the right python3.sitePackages will be used there.
     inherit python3;
+
+    withPlugins = import ./plugin-interface.nix {
+      inherit lib python3 buildEnv writeText runCommandCC stdenv runCommand
+        vapoursynth makeWrapper withPlugins;
+    };
   };
 
   postInstall = ''
@@ -54,7 +61,7 @@ stdenv.mkDerivation rec {
     homepage    = "http://www.vapoursynth.com/";
     license     = licenses.lgpl21;
     platforms   = platforms.x86_64;
-    maintainers = with maintainers; [ rnhmjoj tadeokondrak ];
+    maintainers = with maintainers; [ rnhmjoj sbruder tadeokondrak ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/libraries/vapoursynth/editor.nix b/nixpkgs/pkgs/development/libraries/vapoursynth/editor.nix
index f9ebed197522..5cd4b4608ecb 100644
--- a/nixpkgs/pkgs/development/libraries/vapoursynth/editor.nix
+++ b/nixpkgs/pkgs/development/libraries/vapoursynth/editor.nix
@@ -1,43 +1,59 @@
-{ lib, mkDerivation, fetchFromBitbucket
+{ lib, mkDerivation, fetchFromBitbucket, makeWrapper, runCommand
 , python3, vapoursynth
 , qmake, qtbase, qtwebsockets
 }:
 
-mkDerivation rec {
-  pname = "vapoursynth-editor";
-  version = "R19";
-
-  src = fetchFromBitbucket {
-    owner = "mystery_keeper";
-    repo = pname;
-    rev = lib.toLower version;
-    sha256 = "1zlaynkkvizf128ln50yvzz3b764f5a0yryp6993s9fkwa7djb6n";
+let
+  unwrapped = mkDerivation rec {
+    pname = "vapoursynth-editor";
+    version = "R19";
+
+    src = fetchFromBitbucket {
+      owner = "mystery_keeper";
+      repo = pname;
+      rev = lib.toLower version;
+      sha256 = "1zlaynkkvizf128ln50yvzz3b764f5a0yryp6993s9fkwa7djb6n";
+    };
+
+    nativeBuildInputs = [ qmake ];
+    buildInputs = [ qtbase vapoursynth qtwebsockets ];
+
+    dontWrapQtApps = true;
+
+    preConfigure = "cd pro";
+
+    preFixup = ''
+      cd ../build/release*
+      mkdir -p $out/bin
+      for bin in vsedit{,-job-server{,-watcher}}; do
+          mv $bin $out/bin
+          wrapQtApp $out/bin/$bin
+      done
+    '';
+
+    passthru = { inherit withPlugins; };
+
+    meta = with lib; {
+      description = "Cross-platform editor for VapourSynth scripts";
+      homepage = "https://bitbucket.org/mystery_keeper/vapoursynth-editor";
+      license = licenses.mit;
+      maintainers = with maintainers; [ tadeokondrak ];
+      platforms = platforms.all;
+    };
   };
 
-  nativeBuildInputs = [ qmake ];
-  buildInputs = [ qtbase vapoursynth qtwebsockets ];
-
-  dontWrapQtApps = true;
-
-  preConfigure = "cd pro";
-
-  preFixup = ''
-    cd ../build/release*
+  withPlugins = plugins: let
+    vapoursynthWithPlugins = vapoursynth.withPlugins plugins;
+  in runCommand "${unwrapped.name}-with-plugins" {
+    buildInputs = [ makeWrapper ];
+    passthru = { withPlugins = plugins': withPlugins (plugins ++ plugins'); };
+  } ''
     mkdir -p $out/bin
     for bin in vsedit{,-job-server{,-watcher}}; do
-        mv $bin $out/bin
-
-        wrapQtApp $out/bin/$bin \
-            --prefix PYTHONPATH : ${vapoursynth}/${python3.sitePackages} \
-            --prefix LD_LIBRARY_PATH : ${vapoursynth}/lib
+        makeWrapper ${unwrapped}/bin/$bin $out/bin/$bin \
+            --prefix PYTHONPATH : ${vapoursynthWithPlugins}/${python3.sitePackages} \
+            --prefix LD_LIBRARY_PATH : ${vapoursynthWithPlugins}/lib
     done
   '';
-
-  meta = with lib; {
-    description = "Cross-platform editor for VapourSynth scripts";
-    homepage = "https://bitbucket.org/mystery_keeper/vapoursynth-editor";
-    license = licenses.mit;
-    maintainers = with maintainers; [ tadeokondrak ];
-    platforms = platforms.all;
-  };
-}
+in
+  withPlugins []
diff --git a/nixpkgs/pkgs/development/libraries/vapoursynth/plugin-interface.nix b/nixpkgs/pkgs/development/libraries/vapoursynth/plugin-interface.nix
new file mode 100644
index 000000000000..55b2b03c893e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/vapoursynth/plugin-interface.nix
@@ -0,0 +1,112 @@
+{ lib, python3, buildEnv, writeText, runCommandCC, stdenv, runCommand
+, vapoursynth, makeWrapper, withPlugins }:
+
+plugins: let
+  pythonEnvironment = python3.buildEnv.override {
+    extraLibs = plugins;
+  };
+
+  getRecursivePropagatedBuildInputs = pkgs: lib.flatten
+    (map
+      (pkg: pkg.propagatedBuildInputs ++ (getRecursivePropagatedBuildInputs pkg.propagatedBuildInputs))
+      pkgs);
+
+  deepPlugins = plugins ++ (getRecursivePropagatedBuildInputs plugins);
+
+  pluginsEnv = buildEnv {
+    name = "vapoursynth-plugins-env";
+    pathsToLink = [ "/lib/vapoursynth" ];
+    paths = deepPlugins;
+  };
+
+  pluginLoader = let
+    source = writeText "vapoursynth-nix-plugins.c" ''
+      void VSLoadPluginsNix(void (*load)(void *data, const char *path), void *data) {
+      ${lib.concatMapStringsSep "" (path: "load(data, \"${path}/lib/vapoursynth\");") deepPlugins}
+      }
+    '';
+  in
+  runCommandCC "vapoursynth-plugin-loader" {
+    executable = true;
+    preferLocalBuild = true;
+    allowSubstitutes = false;
+  } ''
+    mkdir -p $out/lib
+    $CC -shared -fPIC ${source} -o "$out/lib/libvapoursynth-nix-plugins${ext}"
+  '';
+
+  ext = stdenv.targetPlatform.extensions.sharedLibrary;
+in
+runCommand "${vapoursynth.name}-with-plugins" {
+  nativeBuildInputs = [ makeWrapper ];
+  passthru = {
+    inherit python3;
+    withPlugins = plugins': withPlugins (plugins ++ plugins');
+  };
+} ''
+  mkdir -p \
+    $out/bin \
+    $out/lib/pkgconfig \
+    $out/lib/vapoursynth \
+    $out/${python3.sitePackages}
+
+  for textFile in \
+      lib/pkgconfig/vapoursynth{,-script}.pc \
+      lib/libvapoursynth.la \
+      lib/libvapoursynth-script.la \
+      ${python3.sitePackages}/vapoursynth.la
+  do
+      substitute ${vapoursynth}/$textFile $out/$textFile \
+          --replace "${vapoursynth}" "$out"
+  done
+
+  for binaryPlugin in ${pluginsEnv}/lib/vapoursynth/*; do
+      ln -s $binaryPlugin $out/''${binaryPlugin#"${pluginsEnv}/"}
+  done
+
+  for pythonPlugin in ${pythonEnvironment}/${python3.sitePackages}/*; do
+      ln -s $pythonPlugin $out/''${pythonPlugin#"${pythonEnvironment}/"}
+  done
+
+  for binaryFile in \
+      lib/libvapoursynth${ext} \
+      lib/libvapoursynth-script${ext}.0.0.0
+  do
+    old_rpath=$(patchelf --print-rpath ${vapoursynth}/$binaryFile)
+    new_rpath="$old_rpath:$out/lib"
+    patchelf \
+        --set-rpath "$new_rpath" \
+        --output $out/$binaryFile \
+        ${vapoursynth}/$binaryFile
+    patchelf \
+        --add-needed libvapoursynth-nix-plugins${ext} \
+        $out/$binaryFile
+  done
+
+  for binaryFile in \
+      ${python3.sitePackages}/vapoursynth${ext} \
+      bin/.vspipe-wrapped
+  do
+      old_rpath=$(patchelf --print-rpath ${vapoursynth}/$binaryFile)
+      new_rpath="''${old_rpath//"${vapoursynth}"/"$out"}"
+      patchelf \
+          --set-rpath "$new_rpath" \
+          --output $out/$binaryFile \
+          ${vapoursynth}/$binaryFile
+  done
+
+  ln -s \
+      ${pluginLoader}/lib/libvapoursynth-nix-plugins${ext} \
+      $out/lib/libvapoursynth-nix-plugins${ext}
+  ln -s ${vapoursynth}/include $out/include
+  ln -s ${vapoursynth}/lib/vapoursynth/* $out/lib/vapoursynth
+  ln -s \
+      libvapoursynth-script${ext}.0.0.0 \
+      $out/lib/libvapoursynth-script${ext}
+  ln -s \
+      libvapoursynth-script${ext}.0.0.0 \
+      $out/lib/libvapoursynth-script${ext}.0
+
+  makeWrapper $out/bin/.vspipe-wrapped $out/bin/vspipe \
+      --prefix PYTHONPATH : $out/${python3.sitePackages}
+''
diff --git a/nixpkgs/pkgs/development/libraries/vcg/default.nix b/nixpkgs/pkgs/development/libraries/vcg/default.nix
index 380f533fe6f7..d8c83bf54a8a 100644
--- a/nixpkgs/pkgs/development/libraries/vcg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vcg/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "http://vcg.isti.cnr.it/vcglib/install.html";
     description = "C++ library for manipulation, processing and displaying with OpenGL of triangle and tetrahedral meshes";
     license = licenses.gpl3;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/vo-aacenc/default.nix b/nixpkgs/pkgs/development/libraries/vo-aacenc/default.nix
new file mode 100644
index 000000000000..fb8dd43fe032
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/vo-aacenc/default.nix
@@ -0,0 +1,19 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "vo-aacenc";
+  version = "0.1.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/opencore-amr/fdk-aac/${pname}-${version}.tar.gz";
+    sha256 = "sha256-5Rp0d6NZ8Y33xPgtGV2rThTnQUy9SM95zBlfxEaFDzY=";
+  };
+
+  meta = with lib; {
+    description = "VisualOn AAC encoder library";
+    homepage    = "https://sourceforge.net/projects/opencore-amr/";
+    license     = licenses.asl20;
+    maintainers = [ maintainers.baloo ];
+    platforms   = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/volk/default.nix b/nixpkgs/pkgs/development/libraries/volk/default.nix
new file mode 100644
index 000000000000..574a90d22724
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/volk/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, cppunit
+, python3
+, enableModTool ? true
+, removeReferencesTo
+}:
+
+stdenv.mkDerivation rec {
+  pname = "volk";
+  version = "2.4.1";
+
+  src = fetchFromGitHub {
+    owner = "gnuradio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "fuHJ+p5VN4ThdbQFbzB08VCuy/Zo7m/I1Gs5EQGPeNY=";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    # Fixes a failing test: https://github.com/gnuradio/volk/pull/434
+    (fetchpatch {
+      url = "https://github.com/gnuradio/volk/pull/434/commits/bce8531b6f1a3c5abe946ed6674b283d54258281.patch";
+      sha256 = "OLW9uF6iL47z63kjvYqwsWtkINav8Xhs+Htqg6Kr4uI=";
+    })
+  ];
+  cmakeFlags = lib.optionals (!enableModTool) [ "-DENABLE_MODTOOL=OFF" ];
+  postInstall = ''
+    ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libvolk.so)
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    python3
+    python3.pkgs.Mako
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "http://libvolk.org/";
+    description = "The Vector Optimized Library of Kernels";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ doronbehar ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/vte/default.nix b/nixpkgs/pkgs/development/libraries/vte/default.nix
index 9f2722a9ae8f..a17b164445f3 100644
--- a/nixpkgs/pkgs/development/libraries/vte/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vte/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vte";
-  version = "0.62.1";
+  version = "0.62.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "139had0zcggzrxx9rjy0a67mahzm474amafh168y11421iyfhsf3";
+    sha256 = "sha256-sDALvPDALfWBKhCjy45P/3I7q5LAjJegqQwWfPVDr/A=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/development/libraries/vtk/generic.nix b/nixpkgs/pkgs/development/libraries/vtk/generic.nix
index 273bff8852ee..482e6be7bbcf 100644
--- a/nixpkgs/pkgs/development/libraries/vtk/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/vtk/generic.nix
@@ -18,7 +18,7 @@ in stdenv.mkDerivation rec {
   version = "${majorVersion}.${minorVersion}";
 
   src = fetchurl {
-    url = "${meta.homepage}files/release/${majorVersion}/VTK-${version}.tar.gz";
+    url = "https://www.vtk.org/files/release/${majorVersion}/VTK-${version}.tar.gz";
     sha256 = sourceSha256;
   };
 
@@ -57,6 +57,8 @@ in stdenv.mkDerivation rec {
     export LD_LIBRARY_PATH="$(pwd)/lib";
   '';
 
+  dontWrapQtApps = true;
+
   # Shared libraries don't work, because of rpath troubles with the current
   # nixpkgs cmake approach. It wants to call a binary at build time, just
   # built and requiring one of the shared objects.
@@ -91,5 +93,7 @@ in stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ knedlsepp tfmoraes lheckemann ];
     platforms = with platforms; unix;
+    # /nix/store/xxxxxxx-apple-framework-Security/Library/Frameworks/Security.framework/Headers/Authorization.h:192:7: error: variably modified 'bytes' at file scope
+    broken = stdenv.isDarwin && (lib.versions.major majorVersion == "7" || lib.versions.major majorVersion == "8");
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/wayland/default.nix b/nixpkgs/pkgs/development/libraries/wayland/default.nix
index 7ec8936267bb..fb7d1972c024 100644
--- a/nixpkgs/pkgs/development/libraries/wayland/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wayland/default.nix
@@ -28,19 +28,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wayland";
-  version = "1.18.0";
+  version = "1.19.0";
 
   src = fetchurl {
     url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6";
+    sha256 = "05bd2vphyx8qwa1mhsj1zdaiv4m4v94wrlssrn0lad8d601dkk5s";
   };
 
   patches = [
-    # Fix documentation to be reproducible.
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/wayland/wayland/-/commit/e53e0edf0f892670f3e8c5dd527b3bb22335d32d.patch";
-      sha256 = "15sbhi86m9k72lsj56p7zr20ph2b0y4svl639snsbafn2ir1zdb2";
-    })
     (substituteAll {
       src = ./0001-add-placeholder-for-nm.patch;
       nm = "${stdenv.cc.targetPrefix}nm";
diff --git a/nixpkgs/pkgs/development/libraries/wcslib/default.nix b/nixpkgs/pkgs/development/libraries/wcslib/default.nix
deleted file mode 100644
index c12118a99de4..000000000000
--- a/nixpkgs/pkgs/development/libraries/wcslib/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ fetchurl,  lib, stdenv, flex }:
-
-stdenv.mkDerivation rec {
-  version = "7.3.1";
-  pname = "wcslib";
-
-  buildInputs = [ flex ];
-
-  src = fetchurl {
-    url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
-    sha256 ="0p0bp3jll9v2094a8908vk82m7j7qkjqzkngm1r9qj1v6l6j5z6c";
-  };
-
-  prePatch = ''
-    substituteInPlace GNUmakefile --replace 2775 0775
-    substituteInPlace C/GNUmakefile --replace 2775 0775
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "World Coordinate System Library for Astronomy";
-    homepage = "https://www.atnf.csiro.au/people/mcalabre/WCS/";
-
-    longDescription = ''Library for world coordinate systems for
-    spherical geometries and their conversion to image coordinate
-    systems. This is the standard library for this purpose in
-    astronomy.'';
-
-    license = lib.licenses.lgpl3Plus;
-    platforms = lib.platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix b/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
index 9bf91da6cd90..84cf8d4833fe 100644
--- a/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
@@ -37,6 +37,7 @@
 , libGL
 , libGLU
 , libintl
+, libmanette
 , openjpeg
 , enableGeoLocation ? true
 , geoclue2
@@ -59,7 +60,7 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "webkitgtk";
-  version = "2.30.3";
+  version = "2.32.0";
 
   outputs = [ "out" "dev" ];
 
@@ -67,7 +68,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "0zsy3say94d9bhaan0l6mfr59z03a5x4kngyy8b2i20n77q19skd";
+    sha256 = "1w3b0w8izp0i070grhv19j631sdcd0mcqnjnax13k8mdx7dg8zcx";
   };
 
   patches = optionals stdenv.isLinux [
@@ -115,6 +116,7 @@ stdenv.mkDerivation rec {
     libgcrypt
     libidn
     libintl
+    libmanette
     libnotify
     libpthreadstubs
     libsecret
diff --git a/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix b/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix
new file mode 100644
index 000000000000..66d4fab2bf98
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland
+, libGL, wayland-protocols, libinput, libxkbcommon, pixman
+, xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa
+, libpng, ffmpeg
+}:
+
+# Fixed version derivation.
+# nixpkgs-update: no auto update
+stdenv.mkDerivation rec {
+  pname = "wlroots";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "swaywm";
+    repo = "wlroots";
+    rev = version;
+    sha256 = "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn";
+  };
+
+  # $out for the library and $examples for the example programs (in examples):
+  outputs = [ "out" "examples" ];
+
+  nativeBuildInputs = [ meson ninja pkg-config wayland ];
+
+  buildInputs = [
+    libGL wayland wayland-protocols libinput libxkbcommon pixman
+    xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa
+    libpng ffmpeg
+  ];
+
+  mesonFlags = [ "-Dlogind-provider=systemd" "-Dlibseat=disabled" ];
+
+  postFixup = ''
+    # Install ALL example programs to $examples:
+    # screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
+    # screenshot output-layout multi-pointer rotation tablet touch pointer
+    # simple
+    mkdir -p $examples/bin
+    cd ./examples
+    for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do
+      cp "$binary" "$examples/bin/wlroots-$binary"
+    done
+  '';
+
+  meta = with lib; {
+    description = "A modular Wayland compositor library";
+    longDescription = ''
+      Pluggable, composable, unopinionated modules for building a Wayland
+      compositor; or about 50,000 lines of code you were going to write anyway.
+    '';
+    inherit (src.meta) homepage;
+    changelog = "https://github.com/swaywm/wlroots/releases/tag/${version}";
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ primeos synthetica ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/wlroots/default.nix b/nixpkgs/pkgs/development/libraries/wlroots/default.nix
index a21179e20259..a51de90d1967 100644
--- a/nixpkgs/pkgs/development/libraries/wlroots/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wlroots/default.nix
@@ -1,18 +1,18 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland
 , libGL, wayland-protocols, libinput, libxkbcommon, pixman
 , xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa
-, libpng, ffmpeg
+, libpng, ffmpeg, libuuid, xcbutilrenderutil, xwayland
 }:
 
 stdenv.mkDerivation rec {
   pname = "wlroots";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "swaywm";
     repo = "wlroots";
     rev = version;
-    sha256 = "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn";
+    sha256 = "01plhbnsp5yg18arz0v8fr0pr9l4w4pdzwkg9px486qdvb3s1vgy";
   };
 
   # $out for the library and $examples for the example programs (in examples):
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libGL wayland wayland-protocols libinput libxkbcommon pixman
     xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa
-    libpng ffmpeg
+    libpng ffmpeg libuuid xcbutilrenderutil xwayland
   ];
 
   mesonFlags = [ "-Dlogind-provider=systemd" "-Dlibseat=disabled" ];
@@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/swaywm/wlroots/releases/tag/${version}";
     license     = licenses.mit;
     platforms   = platforms.linux;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ primeos synthetica ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/wolfssl/default.nix b/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
index 48178e774093..4635a80152de 100644
--- a/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
@@ -2,33 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "wolfssl";
-  version = "4.6.0";
+  version = "4.7.0";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "v${version}-stable";
-    sha256 = "0hk3bnzznxj047gwxdxw2v3w6jqq47996m7g72iwj6c2ai9g6h4m";
+    sha256 = "1aa51j0xnhi49izc8djya68l70jkjv25559pgybfb9sa4fa4gz97";
   };
 
-  # almost same as Debian but for now using --enable-all instead of --enable-distro to ensure options.h gets installed
-  configureFlags = [ "--enable-all --enable-pkcs11 --enable-tls13 --enable-base64encode" ];
+  # almost same as Debian but for now using --enable-all --enable-reproducible-build instead of --enable-distro to ensure options.h gets installed
+  configureFlags = [ "--enable-all" "--enable-reproducible-build" "--enable-pkcs11" "--enable-tls13" "--enable-base64encode" ];
 
   outputs = [ "out" "dev" "doc" "lib" ];
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  postPatch = ''
-     # fix recursive cycle:
-     # build flags (including location of header files) are exposed in the
-     # public API of wolfssl, causing lib to depend on dev
-     substituteInPlace configure.ac \
-       --replace '#define LIBWOLFSSL_CONFIGURE_ARGS \"$ac_configure_args\"' ' '
-     substituteInPlace configure.ac \
-       --replace '#define LIBWOLFSSL_GLOBAL_CFLAGS \"$CPPFLAGS $AM_CPPFLAGS $CFLAGS $AM_CFLAGS\"' ' '
-  '';
-
-
   postInstall = ''
      # fix recursive cycle:
      # wolfssl-config points to dev, dev propagates bin
@@ -41,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "A small, fast, portable implementation of TLS/SSL for embedded devices";
     homepage    = "https://www.wolfssl.com/";
     platforms   = platforms.all;
-    license = lib.licenses.gpl2;
+    license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ mcmtroffaes ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/wtk/default.nix b/nixpkgs/pkgs/development/libraries/wtk/default.nix
index 9ddc95a9ccc7..0bded9d92ddd 100644
--- a/nixpkgs/pkgs/development/libraries/wtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wtk/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   builder = ./builder.sh;
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   libraries = [ xorg.libXpm xorg.libXt xorg.libX11 xorg.libICE xorg.libSM stdenv.cc.cc ];
 
diff --git a/nixpkgs/pkgs/development/libraries/wxwidgets/3.0/default.nix b/nixpkgs/pkgs/development/libraries/wxwidgets/3.0/default.nix
index a1c2820a5fdb..30e807cde057 100644
--- a/nixpkgs/pkgs/development/libraries/wxwidgets/3.0/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wxwidgets/3.0/default.nix
@@ -4,41 +4,38 @@
 , xorgproto, gst_all_1, setfile
 , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
 , withMesa ? libGLSupported
-, libGLU ? null, libGL ? null
+, libGLU, libGL
 , compat24 ? false, compat26 ? true, unicode ? true
 , withGtk2 ? true
-, withWebKit ? false, webkitgtk ? null
-, AGL ? null, Carbon ? null, Cocoa ? null, Kernel ? null, QTKit ? null
+, withWebKit ? false, webkitgtk
+, AGL, Carbon, Cocoa, Kernel, QTKit
 }:
 
 with lib;
 
-assert withMesa -> libGLU != null && libGL != null;
-assert withWebKit -> webkitgtk != null;
-
 assert assertMsg (withGtk2 -> withWebKit == false) "wxGTK30: You cannot enable withWebKit when using withGtk2.";
 
 stdenv.mkDerivation rec {
-  version = "3.0.4";
   pname = "wxwidgets";
+  version = "3.0.5";
 
   src = fetchFromGitHub {
     owner = "wxWidgets";
     repo = "wxWidgets";
     rev = "v${version}";
-    sha256 = "19mqglghjjqjgz4rbybn3qdgn2cz9xc511nq1pvvli9wx2k8syl1";
+    sha256 = "1l33629ifx2dl2j71idqbd2qb6zb1d566ijpkvz6irrr50s6gbx7";
   };
 
+  nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [
     libXinerama libSM libXxf86vm xorgproto gst_all_1.gstreamer gst_all_1.gst-plugins-base
-  ] ++ optionals withGtk2 [ gtk2 ]
+  ] ++ optional withGtk2 gtk2
     ++ optional (!withGtk2) gtk3
     ++ optional withMesa libGLU
     ++ optional withWebKit webkitgtk
     ++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QTKit ];
 
-  nativeBuildInputs = [ pkg-config ];
-
   propagatedBuildInputs = optional stdenv.isDarwin AGL;
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/x264/default.nix b/nixpkgs/pkgs/development/libraries/x264/default.nix
index 93d0b42a889f..5b82c594b086 100644
--- a/nixpkgs/pkgs/development/libraries/x264/default.nix
+++ b/nixpkgs/pkgs/development/libraries/x264/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, lib, fetchurl, nasm }:
+{ stdenv, lib, fetchurl, nasm
+, enableShared ? !stdenv.hostPlatform.isStatic
+ }:
 
 stdenv.mkDerivation rec {
   pname = "x264";
@@ -28,7 +30,7 @@ stdenv.mkDerivation rec {
     export AS=$CC
   '';
 
-  configureFlags = [ "--enable-shared" ]
+  configureFlags = lib.optional enableShared "--enable-shared"
     ++ lib.optional (!stdenv.isi686) "--enable-pic"
     ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--cross-prefix=${stdenv.cc.targetPrefix}";
 
diff --git a/nixpkgs/pkgs/development/libraries/xapian/default.nix b/nixpkgs/pkgs/development/libraries/xapian/default.nix
index cfca33a62d2e..e2d049cd7b3c 100644
--- a/nixpkgs/pkgs/development/libraries/xapian/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xapian/default.nix
@@ -38,5 +38,5 @@ let
     };
   };
 in {
-  xapian_1_4 = generic "1.4.17" "0bjpaavdckl4viznr8gbq476fvg648sj4rks2vacmc51vrb8bsxm";
+  xapian_1_4 = generic "1.4.18" "sha256-GW3btK0QRQEA8JkaWZ5O2UTLrZLkpv6BO+bc4WAkS3c=";
 }
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
index 151c74f0b70d..da60f2b27fcc 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
@@ -1,20 +1,24 @@
 { lib, stdenv, fetchFromGitHub
 , meson, ninja, pkg-config, wayland-protocols
-, pipewire, wayland, elogind, systemd, libdrm }:
+, pipewire, wayland, systemd, libdrm }:
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-wlr";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12k92h9dmn1fyn8nzxk69cyv0gnb7g9gj7a66mw5dcl5zqnl07nc";
+    sha256 = "1vjz0y3ib1xw25z8hl679l2p6g4zcg7b8fcd502bhmnqgwgdcsfx";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wayland-protocols ];
-  buildInputs = [ pipewire wayland elogind systemd libdrm ];
+  buildInputs = [ pipewire wayland systemd libdrm ];
+
+  mesonFlags = [
+    "-Dsd-bus-provider=libsystemd"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/emersion/xdg-desktop-portal-wlr";
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix
index cab358528311..2b425300b31e 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix
@@ -7,7 +7,6 @@
 , libxml2
 , glib
 , pipewire
-, fontconfig
 , flatpak
 , gsettings-desktop-schemas
 , acl
@@ -21,7 +20,7 @@
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal";
-  version = "1.8.0";
+  version = "1.8.1";
 
   outputs = [ "out" "installedTests" ];
 
@@ -29,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "flatpak";
     repo = pname;
     rev = version;
-    sha256 = "1f1f79hy259lm017zaq4rpvys8zkmjspqily4a3lbnm77zk3y079";
+    sha256 = "sha256-tuRKCBj9ELC7yFPs/Sut/EdO+L8nwW3S8NWU+XedAF8=";
   };
 
   patches = [
@@ -50,7 +49,6 @@ stdenv.mkDerivation rec {
   buildInputs = [
     glib
     pipewire
-    fontconfig
     flatpak
     acl
     dbus
diff --git a/nixpkgs/pkgs/development/libraries/xmlrpc-c/default.nix b/nixpkgs/pkgs/development/libraries/xmlrpc-c/default.nix
index 7b6907a01627..3bcc40b5da32 100644
--- a/nixpkgs/pkgs/development/libraries/xmlrpc-c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xmlrpc-c/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, curl, libxml2 }:
 
 stdenv.mkDerivation rec {
-  name = "xmlrpc-c-1.51.06";
+  name = "xmlrpc-c-1.51.07";
 
   src = fetchurl {
     url = "mirror://sourceforge/xmlrpc-c/${name}.tgz";
-    sha256 = "1l4zz22q10081vr06b8sii0l3krr64xyiywz6rcladw8kiyxip06";
+    sha256 = "sha256-hNIK4z+SdYL4IdYcC5GUrvvx15JFkKE/qdpa4WmK3tk=";
   };
 
   buildInputs = [ curl libxml2 ];
diff --git a/nixpkgs/pkgs/development/libraries/zchunk/default.nix b/nixpkgs/pkgs/development/libraries/zchunk/default.nix
index a0d1378aa708..2037d815a81b 100644
--- a/nixpkgs/pkgs/development/libraries/zchunk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zchunk/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, fetchpatch
-, pkg-config
+, argp-standalone
+, curl
 , meson
 , ninja
+, pkg-config
 , zstd
-, curl
-, argp-standalone
 }:
 
 stdenv.mkDerivation rec {
   pname = "zchunk";
-  version = "1.1.8";
+  version = "1.1.9";
 
   outputs = [ "out" "lib" "dev" ];
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     owner = "zchunk";
     repo = pname;
     rev = version;
-    sha256 = "0q1jafxh5nqgn2w5ciljkh8h46xma0qia8a5rj9m0pxixcacqj6q";
+    hash = "sha256-MqnHtqOjLl6R5GZ4f2UX1iLoO9FUT2IfZlSN58wW8JA=";
   };
 
   nativeBuildInputs = [
@@ -29,25 +29,23 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    zstd
     curl
+    zstd
   ] ++ lib.optional stdenv.isDarwin argp-standalone;
 
-  # Darwin needs a patch for argp-standalone usage and differing endian.h location on macOS
-  # https://github.com/zchunk/zchunk/pull/35
-  patches = [
-  (fetchpatch {
-    name = "darwin-support.patch";
-    url = "https://github.com/zchunk/zchunk/commit/f7db2ac0a95028a7f82ecb89862426bf53a69232.patch";
-    sha256 = "0cm84gyii4ly6nsmagk15g9kbfa13rw395nqk3fdcwm0dpixlkh4";
-  })
-];
-
   meta = with lib; {
-    description = "File format designed for highly efficient deltas while maintaining good compression";
     homepage = "https://github.com/zchunk/zchunk";
+    description = "File format designed for highly efficient deltas while maintaining good compression";
+    longDescription = ''
+      zchunk is a compressed file format that splits the file into independent
+      chunks. This allows you to only download changed chunks when downloading a
+      new version of the file, and also makes zchunk files efficient over rsync.
+
+      zchunk files are protected with strong checksums to verify that the file
+      you downloaded is, in fact, the file you wanted.
+    '';
     license = licenses.bsd2;
-    maintainers = with maintainers; [];
+    maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/zeromq/4.x.nix b/nixpkgs/pkgs/development/libraries/zeromq/4.x.nix
index a3c35d123b6a..b37dfbdd7077 100644
--- a/nixpkgs/pkgs/development/libraries/zeromq/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/zeromq/4.x.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zeromq";
-  version = "4.3.3";
+  version = "4.3.4";
 
   src = fetchFromGitHub {
     owner = "zeromq";
     repo = "libzmq";
     rev = "v${version}";
-    sha256 = "155kb0ih0xj4jvd39bq8d04bgvhy9143r3632ks1m04455z4qdzd";
+    sha256 = "sha256-epOEyHOswUGVwzz0FLxhow/zISmZHxsIgmpOV8C8bQM=";
   };
 
   nativeBuildInputs = [ cmake asciidoc pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/zimlib/default.nix b/nixpkgs/pkgs/development/libraries/zimlib/default.nix
index 6dc998cd0e27..76d54ed62563 100644
--- a/nixpkgs/pkgs/development/libraries/zimlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zimlib/default.nix
@@ -1,23 +1,55 @@
-{ lib, stdenv, fetchurl, lzma }:
+{ lib, stdenv, fetchFromGitHub
+, meson, ninja, pkg-config
+, python3
+, icu
+, libuuid
+, xapian
+, xz
+, zstd
+, gtest
+}:
 
 stdenv.mkDerivation rec {
   pname = "zimlib";
-  version = "1.4";
+  version = "6.3.0";
 
-  src = fetchurl {
-    url = "http://www.openzim.org/download/${pname}-${version}.tar.gz";
-    sha256 = "14ra3iq42x53k1nqxb5lsg4gadlkpkgv6cbjjl6305ajmbrghcdq";
+  src = fetchFromGitHub {
+    owner = "openzim";
+    repo = "libzim";
+    rev = version;
+    sha256 = "0iy0f1clhihq277x218ccx3mszgpr3h9l0by48b9ykr115nffw3s";
   };
 
-  buildInputs = [ lzma ];
+  nativeBuildInputs = [
+    meson
+    pkg-config
+    ninja
+    python3
+  ];
 
-  enableParallelBuilding = true;
+  propagatedBuildInputs = [
+    icu
+    libuuid
+    xapian
+    xz
+    zstd
+  ];
+
+  postPatch = ''
+    patchShebangs scripts
+  '';
+
+  checkInputs = [
+    gtest
+  ];
+
+  doCheck = true;
 
   meta = with lib; {
     description = "Library for reading and writing ZIM files";
     homepage =  "https://www.openzim.org/wiki/Zimlib";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ robbinch ];
+    maintainers = with maintainers; [ ajs124 ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/zlib-ng/default.nix b/nixpkgs/pkgs/development/libraries/zlib-ng/default.nix
new file mode 100644
index 000000000000..7ba07cd92407
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/zlib-ng/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub
+, cmake, pkg-config
+, withZlibCompat ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "zlib-ng";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner = "zlib-ng";
+    repo = "zlib-ng";
+    rev = version;
+    sha256 = "1cl6asrav2512j7p02zcpibywjljws0m7aazvb3q2r9qiyvyswji";
+  };
+
+  outputs = [ "out" "dev" "bin" ];
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_PREFIX=/"
+    "-DBUILD_SHARED_LIBS=ON"
+    "-DINSTALL_UTILS=ON"
+  ] ++ lib.optionals withZlibCompat [ "-DZLIB_COMPAT=ON" ];
+
+  meta = with lib; {
+    description = "zlib data compression library for the next generation systems";
+    homepage    = "https://github.com/zlib-ng/zlib-ng";
+    license     = licenses.zlib;
+    platforms   = platforms.all;
+    maintainers = with maintainers; [ izorkin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/zxing-cpp/default.nix b/nixpkgs/pkgs/development/libraries/zxing-cpp/default.nix
new file mode 100644
index 000000000000..aa7db78c4c32
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/zxing-cpp/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "zxing-cpp";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "nu-book";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-N2FTzsjxm3EE5Wqz7xt+FS4zQ60Ow4WbdX6Eo08ktek=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  cmakeFlags = [
+    "-DBUILD_EXAMPLES=OFF"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/nu-book/zxing-cpp";
+    description = "C++ port of zxing (a Java barcode image processing library)";
+    longDescription = ''
+      ZXing-C++ ("zebra crossing") is an open-source, multi-format 1D/2D barcode
+      image processing library implemented in C++.
+
+      It was originally ported from the Java ZXing Library but has been
+      developed further and now includes many improvements in terms of quality
+      and performance. It can both read and write barcodes in a number of
+      formats.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/zziplib/default.nix b/nixpkgs/pkgs/development/libraries/zziplib/default.nix
index 8cfec83af542..90758db16edd 100644
--- a/nixpkgs/pkgs/development/libraries/zziplib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zziplib/default.nix
@@ -1,80 +1,81 @@
-{ lib, stdenv
-, perl
-, pkg-config
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
-, zip
-, unzip
+, cmake
+, perl
+, pkg-config
 , python3
 , xmlto
+, zip
 , zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "zziplib";
-  version = "0.13.71";
+  version = "0.13.72";
 
   src = fetchFromGitHub {
     owner = "gdraheim";
-    repo = "zziplib";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "P+7D57sc2oIABhk3k96aRILpGnsND5SLXHh2lqr9O4E=";
+    hash = "sha256-Ht3fBgdrTm4mCi5uhgQPNtpGzADoRVOpSuGPsIS6y0Q=";
   };
 
   patches = [
-    # Install man pages
+    # apply https://github.com/gdraheim/zziplib/pull/113
     (fetchpatch {
-      url = "https://github.com/gdraheim/zziplib/commit/5583ccc7a247ee27556ede344e93d3ac1dc72e9b.patch";
-      sha256 = "wVExEZN8Ml1/3GicB0ZYsLVS3KJ8BSz8i4Gu46naz1Y=";
-      excludes = [ "GNUmakefile" ];
+      url = "https://github.com/gdraheim/zziplib/commit/82a7773cd17828a3b0a4f5f552ae80c1cc8777c7.diff";
+      sha256 = "0ifqdzxwb5d19mziy9j6lhl8wj95jpxzm0d2c6y3bgwa931avd3y";
     })
-
-    # Fix man page formatting
     (fetchpatch {
-      url = "https://github.com/gdraheim/zziplib/commit/22ed64f13dc239f86664c60496261f544bce1088.patch";
-      sha256 = "ScFVWLc4LQPqkcHn9HK/VkLula4b5HzuYl0b5vi4Ikc=";
+      url = "https://github.com/gdraheim/zziplib/commit/1cd611514c5f9559eb9dfc191d678dfc991f66db.diff";
+      sha256 = "11w9qa46xq49l113k266dnv8izzdk1fq4y54yy5w8zps8zd3xfny";
+    })
+    (fetchpatch {
+      url = "https://github.com/gdraheim/zziplib/commit/e47b1e1da952a92f917db6fb19485b8a0b1a42f3.diff";
+      sha256 = "0d032hkmi3s3db12z2zbppl2swa3gdpbj0c6w13ylv2g2ixglrwg";
     })
   ];
 
   nativeBuildInputs = [
+    cmake
     perl
     pkg-config
-    zip
     python3
     xmlto
+    zip
   ];
-
   buildInputs = [
     zlib
   ];
 
-  checkInputs = [
-    unzip
-  ];
-
-  # tests are broken (https://github.com/gdraheim/zziplib/issues/20),
-  # and test/zziptests.py requires network access
+  # test/zziptests.py requires network access
   # (https://github.com/gdraheim/zziplib/issues/24)
-  doCheck = false;
-  checkTarget = "check";
+  cmakeFlags = [
+    "-DZZIP_TESTCVE=OFF"
+    "-DBUILD_SHARED_LIBS=True"
+    "-DBUILD_STATIC_LIBS=False"
+    "-DBUILD_TESTS=OFF"
+    "-DMSVC_STATIC_RUNTIME=OFF"
+    "-DZZIPSDL=OFF"
+    "-DZZIPTEST=OFF"
+    "-DZZIPWRAP=OFF"
+    "-DBUILDTESTS=OFF"
+  ];
 
   meta = with lib; {
+    homepage = "https://github.com/gdraheim/zziplib";
     description = "Library to extract data from files archived in a zip file";
-
     longDescription = ''
-      The zziplib library is intentionally lightweight, it offers the ability
-      to easily extract data from files archived in a single zip
-      file.  Applications can bundle files into a single zip archive and
-      access them.  The implementation is based only on the (free) subset of
-      compression with the zlib algorithm which is actually used by the
-      zip/unzip tools.
+      The zziplib library is intentionally lightweight, it offers the ability to
+      easily extract data from files archived in a single zip file.
+      Applications can bundle files into a single zip archive and access them.
+      The implementation is based only on the (free) subset of compression with
+      the zlib algorithm which is actually used by the zip/unzip tools.
     '';
-
     license = with licenses; [ lgpl2Plus mpl11 ];
-
-    homepage = "http://zziplib.sourceforge.net/";
-
-    maintainers = [ ];
+    maintainers = with maintainers; [ AndersonTorres ];
     platforms = python3.meta.platforms;
   };
 }
diff --git a/nixpkgs/pkgs/development/lisp-modules/lisp-packages.nix b/nixpkgs/pkgs/development/lisp-modules/lisp-packages.nix
index 831edcaee279..927254f52ae2 100644
--- a/nixpkgs/pkgs/development/lisp-modules/lisp-packages.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/lisp-packages.nix
@@ -8,7 +8,7 @@ let lispPackages = rec {
 
   quicklisp = buildLispPackage rec {
     baseName = "quicklisp";
-    version = "2019-02-16";
+    version = "2021-02-13";
 
     buildSystems = [];
 
@@ -17,15 +17,15 @@ let lispPackages = rec {
     src = pkgs.fetchgit {
       url = "https://github.com/quicklisp/quicklisp-client/";
       rev = "refs/tags/version-${version}";
-      sha256 = "0x9b4vf36n2hh102gqgjxg5f5ymxcr9j5khn4rskjdprfgd8d1y9";
+      sha256 = "sha256:102f1chpx12h5dcf659a9kzifgfjc482ylf73fg1cs3w34zdawnl";
     };
     overrides = x: rec {
       inherit clwrapper;
       quicklispdist = pkgs.fetchurl {
         # Will usually be replaced with a fresh version anyway, but needs to be
         # a valid distinfo.txt
-        url = "https://beta.quicklisp.org/dist/quicklisp/2020-10-16/distinfo.txt";
-        sha256 = "sha256:090xjcnyqcv8az9n1a7m0f6vzz2nwcncy95ha7ixb7fnd2rj1n65";
+        url = "https://beta.quicklisp.org/dist/quicklisp/2021-02-28/distinfo.txt";
+        sha256 = "sha256:1apc0s07fmm386rj866dbrhrkq3lrbgbd79kwcyp91ix7sza8z3z";
       };
       buildPhase = "true; ";
       postInstall = ''
@@ -124,9 +124,8 @@ let lispPackages = rec {
   };
   nyxt = pkgs.lispPackages.buildLispPackage rec {
     baseName = "nyxt";
-    version = "2020-10-23";
+    version = "2021-03-27";
 
-    buildSystems = [ "nyxt" "nyxt-ext" ];
 
     description = "Browser";
 
@@ -143,59 +142,56 @@ let lispPackages = rec {
     };
 
     deps = with pkgs.lispPackages; [
-      alexandria
-      bordeaux-threads
-      chanl
-      cl-annot
-      cl-ansi-text
-      cl-containers
-      cl-css
-      cl-json
-      cl-markup
-      cl-ppcre
-      cl-ppcre-unicode
-      cl-prevalence
-      cl-webkit2
-      closer-mop
-      cluffer
-      dbus
-      dexador
-      enchant
-      fset
-      hu_dot_dwim_dot_defclass-star
-      ironclad
-      local-time
-      log4cl
-      lparallel
-      mk-string-metrics
-      osicat
-      parenscript
-      plump
-      prove-asdf
-      quri
-      serapeum
-      sqlite
-      str
-      swank
-      trivia
-      trivial-clipboard
-      trivial-features
-      trivial-package-local-nicknames
-      trivial-types
-      unix-opts
+            alexandria
+            bordeaux-threads
+            calispel
+            cl-css
+            cl-json
+            cl-markup
+            cl-ppcre
+            cl-ppcre-unicode
+            cl-prevalence
+            closer-mop
+            cl-containers
+            cluffer
+            moptilities
+            dexador
+            enchant
+            file-attributes
+            iolib
+            local-time
+            log4cl
+            mk-string-metrics
+            osicat
+            parenscript
+            quri
+            serapeum
+            str
+            plump
+            swank
+            trivia
+            trivial-clipboard
+            trivial-features
+            trivial-package-local-nicknames
+            trivial-types
+            unix-opts
+            cl-html-diff
+            hu_dot_dwim_dot_defclass-star
+            cl-custom-hash-table
+            fset
+            cl-cffi-gtk
+            cl-webkit2
     ];
     src = pkgs.fetchFromGitHub {
       owner = "atlas-engineer";
       repo = "nyxt";
-      rev = "f744af5233b3636460ce71650de2b0c7dcb9fa8e";
-      sha256 = "1m4jic7nbm2jmxlm8k0zqg62z91g2f2s86by086brgfw056idjmz";
-      # date = 2020-10-23T19:06:04+02:00;
+      rev = "8ef171fd1eb62d168defe4a2d7115393230314d1";
+      sha256 = "sha256:1dz55mdmj68kmllih7ab70nmp0mwzqp9lh3im7kcjfmc1r64irdv";
+      # date = 2021-03-27T09:10:00+00:00;
     };
 
     packageName = "nyxt";
 
-    asdFilesToKeep = [ "nyxt.asd" "nyxt-ext.asd" ];
-
     propagatedBuildInputs = [
       pkgs.libressl.out
       pkgs.webkitgtk
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd-ext-code-blocks.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd-ext-code-blocks.nix
index 70de895a5866..4fb5488b7a87 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd-ext-code-blocks.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd-ext-code-blocks.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "_3bmd-ext-code-blocks";
-  version = "3bmd-20200925-git";
+  version = "3bmd-20201220-git";
 
   description = "extension to 3bmd implementing github style ``` delimited code blocks, with support for syntax highlighting using colorize, pygments, or chroma";
 
-  deps = [ args."_3bmd" args."alexandria" args."colorize" args."esrap" args."html-encode" args."split-sequence" ];
+  deps = [ args."_3bmd" args."alexandria" args."colorize" args."esrap" args."html-encode" args."split-sequence" args."trivial-with-current-source-form" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/3bmd/2020-09-25/3bmd-20200925-git.tgz";
-    sha256 = "0sk4b0xma4vv6ssiskbz7h5bw8v8glm34mbv3llqywb50b9ks4fw";
+    url = "http://beta.quicklisp.org/archive/3bmd/2020-12-20/3bmd-20201220-git.tgz";
+    sha256 = "0hcx8p8la3fmwhj8ddqik7bwrn9rvf5mcv6m77glimwckh51na71";
   };
 
   packageName = "3bmd-ext-code-blocks";
@@ -19,16 +20,20 @@ rec {
 }
 /* (SYSTEM 3bmd-ext-code-blocks DESCRIPTION
     extension to 3bmd implementing github style ``` delimited code blocks, with support for syntax highlighting using colorize, pygments, or chroma
-    SHA256 0sk4b0xma4vv6ssiskbz7h5bw8v8glm34mbv3llqywb50b9ks4fw URL
-    http://beta.quicklisp.org/archive/3bmd/2020-09-25/3bmd-20200925-git.tgz MD5
-    3b2c0b2094e473234742d150ac84abdd NAME 3bmd-ext-code-blocks FILENAME
+    SHA256 0hcx8p8la3fmwhj8ddqik7bwrn9rvf5mcv6m77glimwckh51na71 URL
+    http://beta.quicklisp.org/archive/3bmd/2020-12-20/3bmd-20201220-git.tgz MD5
+    67b6e5fa51d18817e7110e4fef6517ac NAME 3bmd-ext-code-blocks FILENAME
     _3bmd-ext-code-blocks DEPS
     ((NAME 3bmd FILENAME _3bmd) (NAME alexandria FILENAME alexandria)
      (NAME colorize FILENAME colorize) (NAME esrap FILENAME esrap)
      (NAME html-encode FILENAME html-encode)
-     (NAME split-sequence FILENAME split-sequence))
-    DEPENDENCIES (3bmd alexandria colorize esrap html-encode split-sequence)
-    VERSION 3bmd-20200925-git SIBLINGS
+     (NAME split-sequence FILENAME split-sequence)
+     (NAME trivial-with-current-source-form FILENAME
+      trivial-with-current-source-form))
+    DEPENDENCIES
+    (3bmd alexandria colorize esrap html-encode split-sequence
+     trivial-with-current-source-form)
+    VERSION 3bmd-20201220-git SIBLINGS
     (3bmd-ext-definition-lists 3bmd-ext-math 3bmd-ext-tables
      3bmd-ext-wiki-links 3bmd-youtube-tests 3bmd-youtube 3bmd)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd.nix
index b49b183b24cf..8d8299a70309 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "_3bmd";
-  version = "20200925-git";
+  version = "20201220-git";
 
   description = "markdown processor in CL using esrap parser.";
 
-  deps = [ args."alexandria" args."esrap" args."split-sequence" ];
+  deps = [ args."alexandria" args."esrap" args."split-sequence" args."trivial-with-current-source-form" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/3bmd/2020-09-25/3bmd-20200925-git.tgz";
-    sha256 = "0sk4b0xma4vv6ssiskbz7h5bw8v8glm34mbv3llqywb50b9ks4fw";
+    url = "http://beta.quicklisp.org/archive/3bmd/2020-12-20/3bmd-20201220-git.tgz";
+    sha256 = "0hcx8p8la3fmwhj8ddqik7bwrn9rvf5mcv6m77glimwckh51na71";
   };
 
   packageName = "3bmd";
@@ -18,13 +19,16 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM 3bmd DESCRIPTION markdown processor in CL using esrap parser. SHA256
-    0sk4b0xma4vv6ssiskbz7h5bw8v8glm34mbv3llqywb50b9ks4fw URL
-    http://beta.quicklisp.org/archive/3bmd/2020-09-25/3bmd-20200925-git.tgz MD5
-    3b2c0b2094e473234742d150ac84abdd NAME 3bmd FILENAME _3bmd DEPS
+    0hcx8p8la3fmwhj8ddqik7bwrn9rvf5mcv6m77glimwckh51na71 URL
+    http://beta.quicklisp.org/archive/3bmd/2020-12-20/3bmd-20201220-git.tgz MD5
+    67b6e5fa51d18817e7110e4fef6517ac NAME 3bmd FILENAME _3bmd DEPS
     ((NAME alexandria FILENAME alexandria) (NAME esrap FILENAME esrap)
-     (NAME split-sequence FILENAME split-sequence))
-    DEPENDENCIES (alexandria esrap split-sequence) VERSION 20200925-git
-    SIBLINGS
+     (NAME split-sequence FILENAME split-sequence)
+     (NAME trivial-with-current-source-form FILENAME
+      trivial-with-current-source-form))
+    DEPENDENCIES
+    (alexandria esrap split-sequence trivial-with-current-source-form) VERSION
+    20201220-git SIBLINGS
     (3bmd-ext-code-blocks 3bmd-ext-definition-lists 3bmd-ext-math
      3bmd-ext-tables 3bmd-ext-wiki-links 3bmd-youtube-tests 3bmd-youtube)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/access.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/access.nix
index d4f68526f18e..755d12b9688f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/access.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/access.nix
@@ -1,18 +1,19 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "access";
-  version = "20151218-git";
+  version = "20210124-git";
 
   parasites = [ "access-test" ];
 
-  description = ''A library providing functions that unify data-structure access for Common Lisp:
-      access and (setf access)'';
+  description = "A library providing functions that unify data-structure access for Common Lisp:
+      access and (setf access)";
 
   deps = [ args."alexandria" args."anaphora" args."cl-interpol" args."cl-ppcre" args."cl-unicode" args."closer-mop" args."flexi-streams" args."iterate" args."lisp-unit2" args."named-readtables" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/access/2015-12-18/access-20151218-git.tgz";
-    sha256 = "0f4257cxd1rpp46wm2qbnk0ynlc3dli9ib4qbn45hglh8zy7snfl";
+    url = "http://beta.quicklisp.org/archive/access/2021-01-24/access-20210124-git.tgz";
+    sha256 = "1n4j15v1ikspchcbb0bn15kk3lh78f6bxk56cs4arimm8bisyqlq";
   };
 
   packageName = "access";
@@ -23,9 +24,9 @@ rec {
 /* (SYSTEM access DESCRIPTION
     A library providing functions that unify data-structure access for Common Lisp:
       access and (setf access)
-    SHA256 0f4257cxd1rpp46wm2qbnk0ynlc3dli9ib4qbn45hglh8zy7snfl URL
-    http://beta.quicklisp.org/archive/access/2015-12-18/access-20151218-git.tgz
-    MD5 a6f1eb4a1823b04c6db4fa2dc16d648f NAME access FILENAME access DEPS
+    SHA256 1n4j15v1ikspchcbb0bn15kk3lh78f6bxk56cs4arimm8bisyqlq URL
+    http://beta.quicklisp.org/archive/access/2021-01-24/access-20210124-git.tgz
+    MD5 d2d7d9826cbfb3de568d05a4d6bacdbe NAME access FILENAME access DEPS
     ((NAME alexandria FILENAME alexandria) (NAME anaphora FILENAME anaphora)
      (NAME cl-interpol FILENAME cl-interpol) (NAME cl-ppcre FILENAME cl-ppcre)
      (NAME cl-unicode FILENAME cl-unicode)
@@ -36,4 +37,4 @@ rec {
     DEPENDENCIES
     (alexandria anaphora cl-interpol cl-ppcre cl-unicode closer-mop
      flexi-streams iterate lisp-unit2 named-readtables)
-    VERSION 20151218-git SIBLINGS NIL PARASITES (access-test)) */
+    VERSION 20210124-git SIBLINGS NIL PARASITES (access-test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/acclimation.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/acclimation.nix
index 69d28a65c148..a4b7f1cd1488 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/acclimation.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/acclimation.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "acclimation";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix
index f1eaf5874260..f58416bffee7 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "alexandria";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/anaphora.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/anaphora.nix
index 1d5e3a5997a4..2a7018d53569 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/anaphora.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/anaphora.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "anaphora";
-  version = "20191007-git";
+  version = "20210124-git";
 
   parasites = [ "anaphora/test" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."rt" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/anaphora/2019-10-07/anaphora-20191007-git.tgz";
-    sha256 = "0iwfddh3cycjr9vhjnr1ldd5xc3qwqhrp41904s1dvysf99277kv";
+    url = "http://beta.quicklisp.org/archive/anaphora/2021-01-24/anaphora-20210124-git.tgz";
+    sha256 = "0b4xwrnv007sfcqkxkarrbf99v3md8h199z1z69r4vx7r5pq2i4v";
   };
 
   packageName = "anaphora";
@@ -20,8 +21,8 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM anaphora DESCRIPTION The Anaphoric Macro Package from Hell SHA256
-    0iwfddh3cycjr9vhjnr1ldd5xc3qwqhrp41904s1dvysf99277kv URL
-    http://beta.quicklisp.org/archive/anaphora/2019-10-07/anaphora-20191007-git.tgz
-    MD5 bfaae44cfb6226f35f0afde335e51ca4 NAME anaphora FILENAME anaphora DEPS
-    ((NAME rt FILENAME rt)) DEPENDENCIES (rt) VERSION 20191007-git SIBLINGS NIL
+    0b4xwrnv007sfcqkxkarrbf99v3md8h199z1z69r4vx7r5pq2i4v URL
+    http://beta.quicklisp.org/archive/anaphora/2021-01-24/anaphora-20210124-git.tgz
+    MD5 09a11971206da9d259b34c050783b74b NAME anaphora FILENAME anaphora DEPS
+    ((NAME rt FILENAME rt)) DEPENDENCIES (rt) VERSION 20210124-git SIBLINGS NIL
     PARASITES (anaphora/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/arnesi.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/arnesi.nix
index 5ac59f713e9d..58ad0deb2aac 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/arnesi.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/arnesi.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "arnesi";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/array-utils.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/array-utils.nix
index 07aca0eb9df6..d9c4ef608bb9 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/array-utils.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/array-utils.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "array-utils";
-  version = "20190710-git";
+  version = "20201220-git";
 
   description = "A few utilities for working with arrays.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/array-utils/2019-07-10/array-utils-20190710-git.tgz";
-    sha256 = "1fzsg3lqa79yrkad6fx924vai7i6m92i2rq8lyq37wrbwkhm7grh";
+    url = "http://beta.quicklisp.org/archive/array-utils/2020-12-20/array-utils-20201220-git.tgz";
+    sha256 = "11y6k8gzzcj00jyccg2k9nh6rvivcvh23z4yzjfly7adygd3n717";
   };
 
   packageName = "array-utils";
@@ -18,8 +19,8 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM array-utils DESCRIPTION A few utilities for working with arrays.
-    SHA256 1fzsg3lqa79yrkad6fx924vai7i6m92i2rq8lyq37wrbwkhm7grh URL
-    http://beta.quicklisp.org/archive/array-utils/2019-07-10/array-utils-20190710-git.tgz
-    MD5 58c39c2ba3d2c8cd8a695fb867b72c33 NAME array-utils FILENAME array-utils
-    DEPS NIL DEPENDENCIES NIL VERSION 20190710-git SIBLINGS (array-utils-test)
+    SHA256 11y6k8gzzcj00jyccg2k9nh6rvivcvh23z4yzjfly7adygd3n717 URL
+    http://beta.quicklisp.org/archive/array-utils/2020-12-20/array-utils-20201220-git.tgz
+    MD5 d6ed906f28c46b2ab0335ec1fc05f8af NAME array-utils FILENAME array-utils
+    DEPS NIL DEPENDENCIES NIL VERSION 20201220-git SIBLINGS (array-utils-test)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/asdf-package-system.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/asdf-package-system.nix
index b0fa62899364..58f810fe04be 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/asdf-package-system.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/asdf-package-system.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "asdf-package-system";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/asdf-system-connections.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/asdf-system-connections.nix
index 7133bf257702..e60b893d8cb6 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/asdf-system-connections.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/asdf-system-connections.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "asdf-system-connections";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/babel.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/babel.nix
index 1c99fc6944ed..3a5440321316 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/babel.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/babel.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "babel";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/blackbird.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/blackbird.nix
index 15100222894b..a5457c46b1aa 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/blackbird.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/blackbird.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "blackbird";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/bordeaux-threads.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/bordeaux-threads.nix
index b8c225174a85..d9947891aefc 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/bordeaux-threads.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/bordeaux-threads.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "bordeaux-threads";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/buildnode-xhtml.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/buildnode-xhtml.nix
index 18d22d1cf320..d342871f4d56 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/buildnode-xhtml.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/buildnode-xhtml.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "buildnode-xhtml";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/buildnode.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/buildnode.nix
index b3a281ed3a0e..f8a8ca8bfb2f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/buildnode.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/buildnode.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "buildnode";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/calispel.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/calispel.nix
new file mode 100644
index 000000000000..d970f413bee9
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/calispel.nix
@@ -0,0 +1,36 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "calispel";
+  version = "20170830-git";
+
+  parasites = [ "calispel-test" ];
+
+  description = "Thread-safe message-passing channels, in the style of
+the occam programming language.";
+
+  deps = [ args."alexandria" args."bordeaux-threads" args."eager-future2" args."jpl-queues" args."jpl-util" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/calispel/2017-08-30/calispel-20170830-git.tgz";
+    sha256 = "0qwmzmyh63jlw5bdv4wf458n1dz9k77gd5b4ix1kd6xrzx247k7i";
+  };
+
+  packageName = "calispel";
+
+  asdFilesToKeep = ["calispel.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM calispel DESCRIPTION
+    Thread-safe message-passing channels, in the style of
+the occam programming language.
+    SHA256 0qwmzmyh63jlw5bdv4wf458n1dz9k77gd5b4ix1kd6xrzx247k7i URL
+    http://beta.quicklisp.org/archive/calispel/2017-08-30/calispel-20170830-git.tgz
+    MD5 1fba6e4b2055f5d1f0a78387e29552b1 NAME calispel FILENAME calispel DEPS
+    ((NAME alexandria FILENAME alexandria)
+     (NAME bordeaux-threads FILENAME bordeaux-threads)
+     (NAME eager-future2 FILENAME eager-future2)
+     (NAME jpl-queues FILENAME jpl-queues) (NAME jpl-util FILENAME jpl-util))
+    DEPENDENCIES
+    (alexandria bordeaux-threads eager-future2 jpl-queues jpl-util) VERSION
+    20170830-git SIBLINGS NIL PARASITES (calispel-test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/caveman.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/caveman.nix
index 3b44cbbb971d..aa4ee83e5c9a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/caveman.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/caveman.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "caveman";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-grovel.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-grovel.nix
index 97328db25432..f65c68e0d7fa 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-grovel.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-grovel.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cffi-grovel";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-toolchain.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-toolchain.nix
index 51fe6a00f1fa..af7c96639d6d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-toolchain.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-toolchain.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cffi-toolchain";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix
new file mode 100644
index 000000000000..ec452750457c
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix
@@ -0,0 +1,32 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cffi-uffi-compat";
+  version = "cffi_0.23.0";
+
+  description = "UFFI Compatibility Layer for CFFI";
+
+  deps = [ args."alexandria" args."babel" args."cffi" args."trivial-features" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz";
+    sha256 = "1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck";
+  };
+
+  packageName = "cffi-uffi-compat";
+
+  asdFilesToKeep = ["cffi-uffi-compat.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cffi-uffi-compat DESCRIPTION UFFI Compatibility Layer for CFFI
+    SHA256 1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck URL
+    http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz MD5
+    a43e3c440fc4f20494e6d2347887c963 NAME cffi-uffi-compat FILENAME
+    cffi-uffi-compat DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
+     (NAME cffi FILENAME cffi)
+     (NAME trivial-features FILENAME trivial-features))
+    DEPENDENCIES (alexandria babel cffi trivial-features) VERSION cffi_0.23.0
+    SIBLINGS
+    (cffi-examples cffi-grovel cffi-libffi cffi-tests cffi-toolchain cffi)
+    PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi.nix
index a56fbf6b2653..103f233fa41f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cffi";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chanl.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chanl.nix
index 3b9e089b3138..b6940af59865 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chanl.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chanl.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "chanl";
-  version = "20201016-git";
+  version = "20210124-git";
 
   parasites = [ "chanl/examples" "chanl/tests" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."fiveam" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/chanl/2020-10-16/chanl-20201016-git.tgz";
-    sha256 = "13kmk6q20kkwy8z3fy0sv57076xf5nls3qx31yp47vaxhn9p11a1";
+    url = "http://beta.quicklisp.org/archive/chanl/2021-01-24/chanl-20210124-git.tgz";
+    sha256 = "1lb0k5nh51f8hskpm1pma5ds4lk1zpbk9czpw9bk8hdykr178mzc";
   };
 
   packageName = "chanl";
@@ -21,11 +22,11 @@ rec {
 }
 /* (SYSTEM chanl DESCRIPTION
     Communicating Sequential Process support for Common Lisp SHA256
-    13kmk6q20kkwy8z3fy0sv57076xf5nls3qx31yp47vaxhn9p11a1 URL
-    http://beta.quicklisp.org/archive/chanl/2020-10-16/chanl-20201016-git.tgz
-    MD5 7870137f4c905f64290634ae3d0aa3fd NAME chanl FILENAME chanl DEPS
+    1lb0k5nh51f8hskpm1pma5ds4lk1zpbk9czpw9bk8hdykr178mzc URL
+    http://beta.quicklisp.org/archive/chanl/2021-01-24/chanl-20210124-git.tgz
+    MD5 2f9e2d16caa2febff4f5beb6226b7ccf NAME chanl FILENAME chanl DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME fiveam FILENAME fiveam))
-    DEPENDENCIES (alexandria bordeaux-threads fiveam) VERSION 20201016-git
+    DEPENDENCIES (alexandria bordeaux-threads fiveam) VERSION 20210124-git
     SIBLINGS NIL PARASITES (chanl/examples chanl/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chipz.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chipz.nix
index 3c05684de53f..b6cb67b2c3ab 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chipz.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chipz.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "chipz";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chunga.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chunga.nix
index e08a2efe96ec..6c52cc5f9f6e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chunga.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chunga.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "chunga";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/circular-streams.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/circular-streams.nix
index f0b211d27d2c..d6b31a660924 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/circular-streams.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/circular-streams.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "circular-streams";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-aa.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-aa.nix
index 8f1448e436b0..01364e97ed52 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-aa.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-aa.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-aa";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-annot.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-annot.nix
index c85c60a0f1d8..e6d317b5983d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-annot.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-annot.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-annot";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-anonfun.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-anonfun.nix
index 2ae0f7d36deb..d2dd93228ff4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-anonfun.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-anonfun.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-anonfun";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ansi-text.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ansi-text.nix
index dd6eeba98afc..2142081704c6 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ansi-text.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ansi-text.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-ansi-text";
-  version = "20200218-git";
+  version = "20210124-git";
 
   description = "ANSI control string characters, focused on color";
 
   deps = [ args."alexandria" args."cl-colors2" args."cl-ppcre" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-ansi-text/2020-02-18/cl-ansi-text-20200218-git.tgz";
-    sha256 = "1yn657rka3pcg3p5g9czbpk0f0rv81dbq1gknid1b24zg7krks5r";
+    url = "http://beta.quicklisp.org/archive/cl-ansi-text/2021-01-24/cl-ansi-text-20210124-git.tgz";
+    sha256 = "1l7slqk26xznfyn0zpp5l32v6xfpj4qj42h4x4ds5s1yncq306cm";
   };
 
   packageName = "cl-ansi-text";
@@ -19,11 +20,11 @@ rec {
 }
 /* (SYSTEM cl-ansi-text DESCRIPTION
     ANSI control string characters, focused on color SHA256
-    1yn657rka3pcg3p5g9czbpk0f0rv81dbq1gknid1b24zg7krks5r URL
-    http://beta.quicklisp.org/archive/cl-ansi-text/2020-02-18/cl-ansi-text-20200218-git.tgz
-    MD5 2fccf2a06d73237ab421d9e62a2c6bd2 NAME cl-ansi-text FILENAME
+    1l7slqk26xznfyn0zpp5l32v6xfpj4qj42h4x4ds5s1yncq306cm URL
+    http://beta.quicklisp.org/archive/cl-ansi-text/2021-01-24/cl-ansi-text-20210124-git.tgz
+    MD5 76f54998b056919978737815468e31b6 NAME cl-ansi-text FILENAME
     cl-ansi-text DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME cl-colors2 FILENAME cl-colors2) (NAME cl-ppcre FILENAME cl-ppcre))
-    DEPENDENCIES (alexandria cl-colors2 cl-ppcre) VERSION 20200218-git SIBLINGS
+    DEPENDENCIES (alexandria cl-colors2 cl-ppcre) VERSION 20210124-git SIBLINGS
     (cl-ansi-text.test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async-repl.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async-repl.nix
index 5a5a8b362fc1..03e52a9ed030 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async-repl.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async-repl.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-async-repl";
-  version = "cl-async-20200610-git";
+  version = "cl-async-20210228-git";
 
   description = "REPL integration for CL-ASYNC.";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."cl-async" args."cl-async-base" args."cl-async-util" args."cl-libuv" args."cl-ppcre" args."fast-io" args."static-vectors" args."trivial-features" args."trivial-gray-streams" args."vom" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-async/2020-06-10/cl-async-20200610-git.tgz";
-    sha256 = "10fyd36i5zlnxh69y1l7098b3h94l4hqwl0zhv0nshcs4sa7l37h";
+    url = "http://beta.quicklisp.org/archive/cl-async/2021-02-28/cl-async-20210228-git.tgz";
+    sha256 = "08r8jlvj2zbc1f864imb864adkqhspgm5s8drjykqhv1d3hrsvy4";
   };
 
   packageName = "cl-async-repl";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-async-repl DESCRIPTION REPL integration for CL-ASYNC. SHA256
-    10fyd36i5zlnxh69y1l7098b3h94l4hqwl0zhv0nshcs4sa7l37h URL
-    http://beta.quicklisp.org/archive/cl-async/2020-06-10/cl-async-20200610-git.tgz
-    MD5 4bf419e7ed94249648eb9d0013e7d360 NAME cl-async-repl FILENAME
+    08r8jlvj2zbc1f864imb864adkqhspgm5s8drjykqhv1d3hrsvy4 URL
+    http://beta.quicklisp.org/archive/cl-async/2021-02-28/cl-async-20210228-git.tgz
+    MD5 0954743eb96f941aa27ff09bceff91dc NAME cl-async-repl FILENAME
     cl-async-repl DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -39,5 +40,5 @@ rec {
     (alexandria babel bordeaux-threads cffi cffi-grovel cffi-toolchain cl-async
      cl-async-base cl-async-util cl-libuv cl-ppcre fast-io static-vectors
      trivial-features trivial-gray-streams vom)
-    VERSION cl-async-20200610-git SIBLINGS
+    VERSION cl-async-20210228-git SIBLINGS
     (cl-async-ssl cl-async-test cl-async) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async-ssl.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async-ssl.nix
index 93de96b5ea63..eaef8f2bd5b3 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async-ssl.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async-ssl.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-async-ssl";
-  version = "cl-async-20200610-git";
+  version = "cl-async-20210228-git";
 
   description = "SSL Wrapper around cl-async socket implementation.";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."cl-async" args."cl-async-base" args."cl-async-util" args."cl-libuv" args."cl-ppcre" args."fast-io" args."static-vectors" args."trivial-features" args."trivial-gray-streams" args."vom" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-async/2020-06-10/cl-async-20200610-git.tgz";
-    sha256 = "10fyd36i5zlnxh69y1l7098b3h94l4hqwl0zhv0nshcs4sa7l37h";
+    url = "http://beta.quicklisp.org/archive/cl-async/2021-02-28/cl-async-20210228-git.tgz";
+    sha256 = "08r8jlvj2zbc1f864imb864adkqhspgm5s8drjykqhv1d3hrsvy4";
   };
 
   packageName = "cl-async-ssl";
@@ -19,9 +20,9 @@ rec {
 }
 /* (SYSTEM cl-async-ssl DESCRIPTION
     SSL Wrapper around cl-async socket implementation. SHA256
-    10fyd36i5zlnxh69y1l7098b3h94l4hqwl0zhv0nshcs4sa7l37h URL
-    http://beta.quicklisp.org/archive/cl-async/2020-06-10/cl-async-20200610-git.tgz
-    MD5 4bf419e7ed94249648eb9d0013e7d360 NAME cl-async-ssl FILENAME
+    08r8jlvj2zbc1f864imb864adkqhspgm5s8drjykqhv1d3hrsvy4 URL
+    http://beta.quicklisp.org/archive/cl-async/2021-02-28/cl-async-20210228-git.tgz
+    MD5 0954743eb96f941aa27ff09bceff91dc NAME cl-async-ssl FILENAME
     cl-async-ssl DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -40,5 +41,5 @@ rec {
     (alexandria babel bordeaux-threads cffi cffi-grovel cffi-toolchain cl-async
      cl-async-base cl-async-util cl-libuv cl-ppcre fast-io static-vectors
      trivial-features trivial-gray-streams vom)
-    VERSION cl-async-20200610-git SIBLINGS
+    VERSION cl-async-20210228-git SIBLINGS
     (cl-async-repl cl-async-test cl-async) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async.nix
index ce188aeee1a9..d6dea61e5b70 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-async.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-async";
-  version = "20200610-git";
+  version = "20210228-git";
 
   parasites = [ "cl-async-base" "cl-async-util" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."cl-libuv" args."cl-ppcre" args."fast-io" args."static-vectors" args."trivial-features" args."trivial-gray-streams" args."uiop" args."vom" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-async/2020-06-10/cl-async-20200610-git.tgz";
-    sha256 = "10fyd36i5zlnxh69y1l7098b3h94l4hqwl0zhv0nshcs4sa7l37h";
+    url = "http://beta.quicklisp.org/archive/cl-async/2021-02-28/cl-async-20210228-git.tgz";
+    sha256 = "08r8jlvj2zbc1f864imb864adkqhspgm5s8drjykqhv1d3hrsvy4";
   };
 
   packageName = "cl-async";
@@ -20,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-async DESCRIPTION Asynchronous operations for Common Lisp. SHA256
-    10fyd36i5zlnxh69y1l7098b3h94l4hqwl0zhv0nshcs4sa7l37h URL
-    http://beta.quicklisp.org/archive/cl-async/2020-06-10/cl-async-20200610-git.tgz
-    MD5 4bf419e7ed94249648eb9d0013e7d360 NAME cl-async FILENAME cl-async DEPS
+    08r8jlvj2zbc1f864imb864adkqhspgm5s8drjykqhv1d3hrsvy4 URL
+    http://beta.quicklisp.org/archive/cl-async/2021-02-28/cl-async-20210228-git.tgz
+    MD5 0954743eb96f941aa27ff09bceff91dc NAME cl-async FILENAME cl-async DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cffi FILENAME cffi) (NAME cffi-grovel FILENAME cffi-grovel)
@@ -37,5 +38,5 @@ rec {
     (alexandria babel bordeaux-threads cffi cffi-grovel cffi-toolchain cl-libuv
      cl-ppcre fast-io static-vectors trivial-features trivial-gray-streams uiop
      vom)
-    VERSION 20200610-git SIBLINGS (cl-async-repl cl-async-ssl cl-async-test)
+    VERSION 20210228-git SIBLINGS (cl-async-repl cl-async-ssl cl-async-test)
     PARASITES (cl-async-base cl-async-util)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-base64.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-base64.nix
index 37a0fa0c32fc..9216c4d8a2ba 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-base64.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-base64.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-base64";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-cairo.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-cairo.nix
index be751aa0e120..9a7f3e1549cb 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-cairo.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-cairo.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-cffi-gtk-cairo";
-  version = "cl-cffi-gtk-20201016-git";
+  version = "cl-cffi-gtk-20201220-git";
 
   description = "A Lisp binding to Cairo";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-cffi-gtk-glib" args."iterate" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz";
-    sha256 = "1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55";
+    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz";
+    sha256 = "15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1";
   };
 
   packageName = "cl-cffi-gtk-cairo";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-cffi-gtk-cairo DESCRIPTION A Lisp binding to Cairo SHA256
-    1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55 URL
-    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz
-    MD5 7eef130d69af506c68b2d98271215fbd NAME cl-cffi-gtk-cairo FILENAME
+    15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1 URL
+    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz
+    MD5 954beac0970a46263153c2863ad1cb5f NAME cl-cffi-gtk-cairo FILENAME
     cl-cffi-gtk-cairo DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -31,7 +32,7 @@ rec {
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi cl-cffi-gtk-glib iterate
      trivial-features)
-    VERSION cl-cffi-gtk-20201016-git SIBLINGS
+    VERSION cl-cffi-gtk-20201220-git SIBLINGS
     (cl-cffi-gtk-demo-cairo cl-cffi-gtk-demo-glib cl-cffi-gtk-demo-gobject
      cl-cffi-gtk-example-gtk cl-cffi-gtk-opengl-demo cl-cffi-gtk-gdk-pixbuf
      cl-cffi-gtk-gdk cl-cffi-gtk-gio cl-cffi-gtk-glib cl-cffi-gtk-gobject
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gdk-pixbuf.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gdk-pixbuf.nix
index a331c048fdbe..52a7742e0a64 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gdk-pixbuf.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gdk-pixbuf.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-cffi-gtk-gdk-pixbuf";
-  version = "cl-cffi-gtk-20201016-git";
+  version = "cl-cffi-gtk-20201220-git";
 
   description = "A Lisp binding to GDK Pixbuf 2";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-cffi-gtk-glib" args."cl-cffi-gtk-gobject" args."closer-mop" args."iterate" args."trivial-features" args."trivial-garbage" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz";
-    sha256 = "1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55";
+    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz";
+    sha256 = "15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1";
   };
 
   packageName = "cl-cffi-gtk-gdk-pixbuf";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-cffi-gtk-gdk-pixbuf DESCRIPTION A Lisp binding to GDK Pixbuf 2
-    SHA256 1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55 URL
-    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz
-    MD5 7eef130d69af506c68b2d98271215fbd NAME cl-cffi-gtk-gdk-pixbuf FILENAME
+    SHA256 15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1 URL
+    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz
+    MD5 954beac0970a46263153c2863ad1cb5f NAME cl-cffi-gtk-gdk-pixbuf FILENAME
     cl-cffi-gtk-gdk-pixbuf DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -33,7 +34,7 @@ rec {
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi cl-cffi-gtk-glib
      cl-cffi-gtk-gobject closer-mop iterate trivial-features trivial-garbage)
-    VERSION cl-cffi-gtk-20201016-git SIBLINGS
+    VERSION cl-cffi-gtk-20201220-git SIBLINGS
     (cl-cffi-gtk-cairo cl-cffi-gtk-demo-cairo cl-cffi-gtk-demo-glib
      cl-cffi-gtk-demo-gobject cl-cffi-gtk-example-gtk cl-cffi-gtk-opengl-demo
      cl-cffi-gtk-gdk cl-cffi-gtk-gio cl-cffi-gtk-glib cl-cffi-gtk-gobject
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gdk.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gdk.nix
index 02140a47a333..17d24dcaf1ca 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gdk.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gdk.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-cffi-gtk-gdk";
-  version = "cl-cffi-gtk-20201016-git";
+  version = "cl-cffi-gtk-20201220-git";
 
   description = "A Lisp binding to GDK 3";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-cffi-gtk-cairo" args."cl-cffi-gtk-gdk-pixbuf" args."cl-cffi-gtk-gio" args."cl-cffi-gtk-glib" args."cl-cffi-gtk-gobject" args."cl-cffi-gtk-pango" args."closer-mop" args."iterate" args."trivial-features" args."trivial-garbage" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz";
-    sha256 = "1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55";
+    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz";
+    sha256 = "15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1";
   };
 
   packageName = "cl-cffi-gtk-gdk";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-cffi-gtk-gdk DESCRIPTION A Lisp binding to GDK 3 SHA256
-    1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55 URL
-    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz
-    MD5 7eef130d69af506c68b2d98271215fbd NAME cl-cffi-gtk-gdk FILENAME
+    15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1 URL
+    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz
+    MD5 954beac0970a46263153c2863ad1cb5f NAME cl-cffi-gtk-gdk FILENAME
     cl-cffi-gtk-gdk DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -39,7 +40,7 @@ rec {
      cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gio cl-cffi-gtk-glib
      cl-cffi-gtk-gobject cl-cffi-gtk-pango closer-mop iterate trivial-features
      trivial-garbage)
-    VERSION cl-cffi-gtk-20201016-git SIBLINGS
+    VERSION cl-cffi-gtk-20201220-git SIBLINGS
     (cl-cffi-gtk-cairo cl-cffi-gtk-demo-cairo cl-cffi-gtk-demo-glib
      cl-cffi-gtk-demo-gobject cl-cffi-gtk-example-gtk cl-cffi-gtk-opengl-demo
      cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gio cl-cffi-gtk-glib
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gio.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gio.nix
index 920fc4edeccf..8cfda7f8503d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gio.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gio.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-cffi-gtk-gio";
-  version = "cl-cffi-gtk-20201016-git";
+  version = "cl-cffi-gtk-20201220-git";
 
   description = "A Lisp binding to GIO 2";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-cffi-gtk-glib" args."cl-cffi-gtk-gobject" args."closer-mop" args."iterate" args."trivial-features" args."trivial-garbage" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz";
-    sha256 = "1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55";
+    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz";
+    sha256 = "15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1";
   };
 
   packageName = "cl-cffi-gtk-gio";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-cffi-gtk-gio DESCRIPTION A Lisp binding to GIO 2 SHA256
-    1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55 URL
-    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz
-    MD5 7eef130d69af506c68b2d98271215fbd NAME cl-cffi-gtk-gio FILENAME
+    15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1 URL
+    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz
+    MD5 954beac0970a46263153c2863ad1cb5f NAME cl-cffi-gtk-gio FILENAME
     cl-cffi-gtk-gio DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -33,7 +34,7 @@ rec {
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi cl-cffi-gtk-glib
      cl-cffi-gtk-gobject closer-mop iterate trivial-features trivial-garbage)
-    VERSION cl-cffi-gtk-20201016-git SIBLINGS
+    VERSION cl-cffi-gtk-20201220-git SIBLINGS
     (cl-cffi-gtk-cairo cl-cffi-gtk-demo-cairo cl-cffi-gtk-demo-glib
      cl-cffi-gtk-demo-gobject cl-cffi-gtk-example-gtk cl-cffi-gtk-opengl-demo
      cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gdk cl-cffi-gtk-glib
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-glib.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-glib.nix
index 429dfb7889b8..6187ba1545aa 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-glib.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-glib.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-cffi-gtk-glib";
-  version = "cl-cffi-gtk-20201016-git";
+  version = "cl-cffi-gtk-20201220-git";
 
   description = "A Lisp binding to GLib 2";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."iterate" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz";
-    sha256 = "1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55";
+    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz";
+    sha256 = "15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1";
   };
 
   packageName = "cl-cffi-gtk-glib";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-cffi-gtk-glib DESCRIPTION A Lisp binding to GLib 2 SHA256
-    1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55 URL
-    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz
-    MD5 7eef130d69af506c68b2d98271215fbd NAME cl-cffi-gtk-glib FILENAME
+    15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1 URL
+    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz
+    MD5 954beac0970a46263153c2863ad1cb5f NAME cl-cffi-gtk-glib FILENAME
     cl-cffi-gtk-glib DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -28,7 +29,7 @@ rec {
      (NAME trivial-features FILENAME trivial-features))
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi iterate trivial-features) VERSION
-    cl-cffi-gtk-20201016-git SIBLINGS
+    cl-cffi-gtk-20201220-git SIBLINGS
     (cl-cffi-gtk-cairo cl-cffi-gtk-demo-cairo cl-cffi-gtk-demo-glib
      cl-cffi-gtk-demo-gobject cl-cffi-gtk-example-gtk cl-cffi-gtk-opengl-demo
      cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gdk cl-cffi-gtk-gio cl-cffi-gtk-gobject
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gobject.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gobject.nix
index d2f7f2e164f1..8f027fc2a037 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gobject.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-gobject.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-cffi-gtk-gobject";
-  version = "cl-cffi-gtk-20201016-git";
+  version = "cl-cffi-gtk-20201220-git";
 
   description = "A Lisp binding GObject 2";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-cffi-gtk-glib" args."closer-mop" args."iterate" args."trivial-features" args."trivial-garbage" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz";
-    sha256 = "1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55";
+    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz";
+    sha256 = "15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1";
   };
 
   packageName = "cl-cffi-gtk-gobject";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-cffi-gtk-gobject DESCRIPTION A Lisp binding GObject 2 SHA256
-    1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55 URL
-    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz
-    MD5 7eef130d69af506c68b2d98271215fbd NAME cl-cffi-gtk-gobject FILENAME
+    15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1 URL
+    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz
+    MD5 954beac0970a46263153c2863ad1cb5f NAME cl-cffi-gtk-gobject FILENAME
     cl-cffi-gtk-gobject DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -32,7 +33,7 @@ rec {
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi cl-cffi-gtk-glib closer-mop iterate
      trivial-features trivial-garbage)
-    VERSION cl-cffi-gtk-20201016-git SIBLINGS
+    VERSION cl-cffi-gtk-20201220-git SIBLINGS
     (cl-cffi-gtk-cairo cl-cffi-gtk-demo-cairo cl-cffi-gtk-demo-glib
      cl-cffi-gtk-demo-gobject cl-cffi-gtk-example-gtk cl-cffi-gtk-opengl-demo
      cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gdk cl-cffi-gtk-gio cl-cffi-gtk-glib
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-pango.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-pango.nix
index 72b3ad647c7a..b4466fe7b42a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-pango.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk-pango.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-cffi-gtk-pango";
-  version = "cl-cffi-gtk-20201016-git";
+  version = "cl-cffi-gtk-20201220-git";
 
   description = "A Lisp binding to Pango";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-cffi-gtk-cairo" args."cl-cffi-gtk-glib" args."cl-cffi-gtk-gobject" args."closer-mop" args."iterate" args."trivial-features" args."trivial-garbage" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz";
-    sha256 = "1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55";
+    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz";
+    sha256 = "15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1";
   };
 
   packageName = "cl-cffi-gtk-pango";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-cffi-gtk-pango DESCRIPTION A Lisp binding to Pango SHA256
-    1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55 URL
-    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz
-    MD5 7eef130d69af506c68b2d98271215fbd NAME cl-cffi-gtk-pango FILENAME
+    15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1 URL
+    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz
+    MD5 954beac0970a46263153c2863ad1cb5f NAME cl-cffi-gtk-pango FILENAME
     cl-cffi-gtk-pango DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -34,7 +35,7 @@ rec {
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi cl-cffi-gtk-cairo cl-cffi-gtk-glib
      cl-cffi-gtk-gobject closer-mop iterate trivial-features trivial-garbage)
-    VERSION cl-cffi-gtk-20201016-git SIBLINGS
+    VERSION cl-cffi-gtk-20201220-git SIBLINGS
     (cl-cffi-gtk-cairo cl-cffi-gtk-demo-cairo cl-cffi-gtk-demo-glib
      cl-cffi-gtk-demo-gobject cl-cffi-gtk-example-gtk cl-cffi-gtk-opengl-demo
      cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gdk cl-cffi-gtk-gio cl-cffi-gtk-glib
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk.nix
index 98256cc740dc..1daeedb326e4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cffi-gtk.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-cffi-gtk";
-  version = "20201016-git";
+  version = "20201220-git";
 
   description = "A Lisp binding to GTK 3";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-cffi-gtk-cairo" args."cl-cffi-gtk-gdk" args."cl-cffi-gtk-gdk-pixbuf" args."cl-cffi-gtk-gio" args."cl-cffi-gtk-glib" args."cl-cffi-gtk-gobject" args."cl-cffi-gtk-pango" args."closer-mop" args."iterate" args."trivial-features" args."trivial-garbage" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz";
-    sha256 = "1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55";
+    url = "http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz";
+    sha256 = "15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1";
   };
 
   packageName = "cl-cffi-gtk";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-cffi-gtk DESCRIPTION A Lisp binding to GTK 3 SHA256
-    1m91597nwwrps32awvk57k3h4jjq603ja0kf395n2jxvckfz0a55 URL
-    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-10-16/cl-cffi-gtk-20201016-git.tgz
-    MD5 7eef130d69af506c68b2d98271215fbd NAME cl-cffi-gtk FILENAME cl-cffi-gtk
+    15vc0d7nirh0m6rkvzby2zb7qcpyvsxzs5yw5h6h3madyl8qm9b1 URL
+    http://beta.quicklisp.org/archive/cl-cffi-gtk/2020-12-20/cl-cffi-gtk-20201220-git.tgz
+    MD5 954beac0970a46263153c2863ad1cb5f NAME cl-cffi-gtk FILENAME cl-cffi-gtk
     DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -40,7 +41,7 @@ rec {
      cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gio cl-cffi-gtk-glib
      cl-cffi-gtk-gobject cl-cffi-gtk-pango closer-mop iterate trivial-features
      trivial-garbage)
-    VERSION 20201016-git SIBLINGS
+    VERSION 20201220-git SIBLINGS
     (cl-cffi-gtk-cairo cl-cffi-gtk-demo-cairo cl-cffi-gtk-demo-glib
      cl-cffi-gtk-demo-gobject cl-cffi-gtk-example-gtk cl-cffi-gtk-opengl-demo
      cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gdk cl-cffi-gtk-gio cl-cffi-gtk-glib
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-change-case.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-change-case.nix
index ce74ce967e2f..eb967399371b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-change-case.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-change-case.nix
@@ -1,15 +1,18 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-change-case";
-  version = "20191007-git";
+  version = "20210228-git";
+
+  parasites = [ "cl-change-case/test" ];
 
   description = "Convert strings between camelCase, param-case, PascalCase and more";
 
-  deps = [ args."cl-ppcre" args."cl-ppcre-unicode" args."cl-unicode" args."flexi-streams" ];
+  deps = [ args."cl-ppcre" args."cl-ppcre-unicode" args."cl-unicode" args."fiveam" args."flexi-streams" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-change-case/2019-10-07/cl-change-case-20191007-git.tgz";
-    sha256 = "097n7bzlsryqh6gbwn3nzi9qdw4jhck4vn3qw41zpc496xfgz9y1";
+    url = "http://beta.quicklisp.org/archive/cl-change-case/2021-02-28/cl-change-case-20210228-git.tgz";
+    sha256 = "15x8zxwa3pxs02fh0qxmbvz6vi59x6ha09p5hs4rgd6axs0k4pmi";
   };
 
   packageName = "cl-change-case";
@@ -19,13 +22,13 @@ rec {
 }
 /* (SYSTEM cl-change-case DESCRIPTION
     Convert strings between camelCase, param-case, PascalCase and more SHA256
-    097n7bzlsryqh6gbwn3nzi9qdw4jhck4vn3qw41zpc496xfgz9y1 URL
-    http://beta.quicklisp.org/archive/cl-change-case/2019-10-07/cl-change-case-20191007-git.tgz
-    MD5 385245df04b1f1514b9fd709a08c4082 NAME cl-change-case FILENAME
+    15x8zxwa3pxs02fh0qxmbvz6vi59x6ha09p5hs4rgd6axs0k4pmi URL
+    http://beta.quicklisp.org/archive/cl-change-case/2021-02-28/cl-change-case-20210228-git.tgz
+    MD5 8fec07f0634a739134dc4fcec807fe16 NAME cl-change-case FILENAME
     cl-change-case DEPS
     ((NAME cl-ppcre FILENAME cl-ppcre)
      (NAME cl-ppcre-unicode FILENAME cl-ppcre-unicode)
-     (NAME cl-unicode FILENAME cl-unicode)
+     (NAME cl-unicode FILENAME cl-unicode) (NAME fiveam FILENAME fiveam)
      (NAME flexi-streams FILENAME flexi-streams))
-    DEPENDENCIES (cl-ppcre cl-ppcre-unicode cl-unicode flexi-streams) VERSION
-    20191007-git SIBLINGS (cl-change-case-test) PARASITES NIL) */
+    DEPENDENCIES (cl-ppcre cl-ppcre-unicode cl-unicode fiveam flexi-streams)
+    VERSION 20210228-git SIBLINGS NIL PARASITES (cl-change-case/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cli.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cli.nix
index cbc4deba6b5f..1da195bab72d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cli.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cli.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-cli";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors.nix
index 8882b1473c2f..898ec553aad4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-colors";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors2.nix
index 3432660cffdf..5a8bea30a59e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors2.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors2.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-colors2";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-containers.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-containers.nix
index c8dc5ca9a992..66438b129cdb 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-containers.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-containers.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-containers";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cookie.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cookie.nix
index f35d40fb41c5..2d0916dcff8f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cookie.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-cookie.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-cookie";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-css.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-css.nix
index 0d0b2aa1dcf7..822ecd994b01 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-css.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-css.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-css";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-csv.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-csv.nix
index c9badad400e9..3ecd1d679c55 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-csv.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-csv.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-csv";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-custom-hash-table.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-custom-hash-table.nix
new file mode 100644
index 000000000000..51dfcbf4f0d2
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-custom-hash-table.nix
@@ -0,0 +1,26 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cl-custom-hash-table";
+  version = "20201220-git";
+
+  description = "System lacks description";
+
+  deps = [ ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cl-custom-hash-table/2020-12-20/cl-custom-hash-table-20201220-git.tgz";
+    sha256 = "1id16p7vdcgxzvrgk8h6fqi284hgd8cilbnbgsbrbd70n7nj8jg3";
+  };
+
+  packageName = "cl-custom-hash-table";
+
+  asdFilesToKeep = ["cl-custom-hash-table.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-custom-hash-table DESCRIPTION System lacks description SHA256
+    1id16p7vdcgxzvrgk8h6fqi284hgd8cilbnbgsbrbd70n7nj8jg3 URL
+    http://beta.quicklisp.org/archive/cl-custom-hash-table/2020-12-20/cl-custom-hash-table-20201220-git.tgz
+    MD5 bd0f2f4a8e808911133af19c03e5c511 NAME cl-custom-hash-table FILENAME
+    cl-custom-hash-table DEPS NIL DEPENDENCIES NIL VERSION 20201220-git
+    SIBLINGS (cl-custom-hash-table-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-dbi.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-dbi.nix
index 8dc68dc36fae..a691ed2ba545 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-dbi.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-dbi.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-dbi";
-  version = "20200610-git";
+  version = "20210228-git";
 
   description = "System lacks description";
 
   deps = [ args."alexandria" args."bordeaux-threads" args."closer-mop" args."dbi" args."split-sequence" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz";
-    sha256 = "1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas";
+    url = "http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz";
+    sha256 = "0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk";
   };
 
   packageName = "cl-dbi";
@@ -18,13 +19,13 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-dbi DESCRIPTION System lacks description SHA256
-    1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas URL
-    http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz
-    MD5 2caeb911b23327e054986211d6bfea55 NAME cl-dbi FILENAME cl-dbi DEPS
+    0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk URL
+    http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz
+    MD5 7cfb5ad172bc30906ae32ca620099a1f NAME cl-dbi FILENAME cl-dbi DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME closer-mop FILENAME closer-mop) (NAME dbi FILENAME dbi)
      (NAME split-sequence FILENAME split-sequence))
     DEPENDENCIES (alexandria bordeaux-threads closer-mop dbi split-sequence)
-    VERSION 20200610-git SIBLINGS
+    VERSION 20210228-git SIBLINGS
     (dbd-mysql dbd-postgres dbd-sqlite3 dbi-test dbi) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-difflib.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-difflib.nix
new file mode 100644
index 000000000000..aacb9a53534b
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-difflib.nix
@@ -0,0 +1,27 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cl-difflib";
+  version = "20130128-git";
+
+  description = "A Lisp library for computing differences between sequences.";
+
+  deps = [ ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cl-difflib/2013-01-28/cl-difflib-20130128-git.tgz";
+    sha256 = "1bgb0nmm93x90c7v1q1ah1v5dfm2anhkim7nh88sg7kg50y4ksm6";
+  };
+
+  packageName = "cl-difflib";
+
+  asdFilesToKeep = ["cl-difflib.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-difflib DESCRIPTION
+    A Lisp library for computing differences between sequences. SHA256
+    1bgb0nmm93x90c7v1q1ah1v5dfm2anhkim7nh88sg7kg50y4ksm6 URL
+    http://beta.quicklisp.org/archive/cl-difflib/2013-01-28/cl-difflib-20130128-git.tgz
+    MD5 e8a3434843a368373b67d09983d2b809 NAME cl-difflib FILENAME cl-difflib
+    DEPS NIL DEPENDENCIES NIL VERSION 20130128-git SIBLINGS (cl-difflib-tests)
+    PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-dot.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-dot.nix
index a01f8be35368..f4f12aed5884 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-dot.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-dot.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-dot";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-emb.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-emb.nix
index b78dd2339b15..3d2f612dd501 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-emb.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-emb.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-emb";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fad.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fad.nix
index 28cf369206c7..f5e28c16cef8 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fad.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fad.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-fad";
-  version = "20200610-git";
+  version = "20210124-git";
 
   parasites = [ "cl-fad-test" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-ppcre" args."unit-test" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-fad/2020-06-10/cl-fad-20200610-git.tgz";
-    sha256 = "08d0q2jpjz4djz20w8m86rfkili8g0vdbkkmvn8c88qmvcr79k5x";
+    url = "http://beta.quicklisp.org/archive/cl-fad/2021-01-24/cl-fad-20210124-git.tgz";
+    sha256 = "17vkvkwg4wpyny5x2nsazgpip5nxxahsjngaxjyrj5z15d4lkrm0";
   };
 
   packageName = "cl-fad";
@@ -20,11 +21,11 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-fad DESCRIPTION Portable pathname library SHA256
-    08d0q2jpjz4djz20w8m86rfkili8g0vdbkkmvn8c88qmvcr79k5x URL
-    http://beta.quicklisp.org/archive/cl-fad/2020-06-10/cl-fad-20200610-git.tgz
-    MD5 3229249f64a5ca0f32ce9448e4f554ea NAME cl-fad FILENAME cl-fad DEPS
+    17vkvkwg4wpyny5x2nsazgpip5nxxahsjngaxjyrj5z15d4lkrm0 URL
+    http://beta.quicklisp.org/archive/cl-fad/2021-01-24/cl-fad-20210124-git.tgz
+    MD5 aa8705a0dd8ca1b43d8c76a177efdf74 NAME cl-fad FILENAME cl-fad DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cl-ppcre FILENAME cl-ppcre) (NAME unit-test FILENAME unit-test))
     DEPENDENCIES (alexandria bordeaux-threads cl-ppcre unit-test) VERSION
-    20200610-git SIBLINGS NIL PARASITES (cl-fad-test)) */
+    20210124-git SIBLINGS NIL PARASITES (cl-fad-test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fuse-meta-fs.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fuse-meta-fs.nix
index bf3c36d62b14..2e76fd28c6cb 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fuse-meta-fs.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fuse-meta-fs.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-fuse-meta-fs";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fuse.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fuse.nix
index a2384c0ffaa8..08c0c8e5c852 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fuse.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-fuse.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-fuse";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-hooks.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-hooks.nix
index f7b787827913..58e7b2d44b2e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-hooks.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-hooks.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-hooks";
@@ -5,8 +6,8 @@ rec {
 
   parasites = [ "cl-hooks/test" ];
 
-  description = ''This system provides the hooks extension point
-mechanism (as known, e.g., from GNU Emacs).'';
+  description = "This system provides the hooks extension point
+mechanism (as known, e.g., from GNU Emacs).";
 
   deps = [ args."alexandria" args."anaphora" args."closer-mop" args."fiveam" args."let-plus" args."trivial-garbage" ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html-diff.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html-diff.nix
new file mode 100644
index 000000000000..ebefee3931ce
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html-diff.nix
@@ -0,0 +1,26 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cl-html-diff";
+  version = "20130128-git";
+
+  description = "System lacks description";
+
+  deps = [ args."cl-difflib" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cl-html-diff/2013-01-28/cl-html-diff-20130128-git.tgz";
+    sha256 = "0dbqfgfl2qmlk91fncjj804md2crvj0bsvkdxfrsybrhn6dmikci";
+  };
+
+  packageName = "cl-html-diff";
+
+  asdFilesToKeep = ["cl-html-diff.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-html-diff DESCRIPTION System lacks description SHA256
+    0dbqfgfl2qmlk91fncjj804md2crvj0bsvkdxfrsybrhn6dmikci URL
+    http://beta.quicklisp.org/archive/cl-html-diff/2013-01-28/cl-html-diff-20130128-git.tgz
+    MD5 70f93e60e968dad9a44ede60856dc343 NAME cl-html-diff FILENAME
+    cl-html-diff DEPS ((NAME cl-difflib FILENAME cl-difflib)) DEPENDENCIES
+    (cl-difflib) VERSION 20130128-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html-parse.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html-parse.nix
index 60cb467f9a06..3ba840fe8396 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html-parse.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html-parse.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-html-parse";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html5-parser.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html5-parser.nix
index 64a877638105..527d1a401930 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html5-parser.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-html5-parser.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-html5-parser";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-interpol.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-interpol.nix
index 8719adf631c5..fe9fa81b6712 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-interpol.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-interpol.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-interpol";
-  version = "20200715-git";
+  version = "20201220-git";
 
   parasites = [ "cl-interpol-test" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."cl-ppcre" args."cl-unicode" args."flexi-streams" args."named-readtables" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-interpol/2020-07-15/cl-interpol-20200715-git.tgz";
-    sha256 = "0qbmpgnlg9y6ykwahmw1q8b058krmcq47w3gx75xz920im46wvmw";
+    url = "http://beta.quicklisp.org/archive/cl-interpol/2020-12-20/cl-interpol-20201220-git.tgz";
+    sha256 = "1q3zxsbl5br08lv481jsqmq8r9yayp44x6icixcxx5sdz6fbcd3d";
   };
 
   packageName = "cl-interpol";
@@ -20,12 +21,12 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-interpol DESCRIPTION System lacks description SHA256
-    0qbmpgnlg9y6ykwahmw1q8b058krmcq47w3gx75xz920im46wvmw URL
-    http://beta.quicklisp.org/archive/cl-interpol/2020-07-15/cl-interpol-20200715-git.tgz
-    MD5 24a2c8907e35e0a276c37c4b1999681c NAME cl-interpol FILENAME cl-interpol
+    1q3zxsbl5br08lv481jsqmq8r9yayp44x6icixcxx5sdz6fbcd3d URL
+    http://beta.quicklisp.org/archive/cl-interpol/2020-12-20/cl-interpol-20201220-git.tgz
+    MD5 d678c521474e1774185b78883396da49 NAME cl-interpol FILENAME cl-interpol
     DEPS
     ((NAME cl-ppcre FILENAME cl-ppcre) (NAME cl-unicode FILENAME cl-unicode)
      (NAME flexi-streams FILENAME flexi-streams)
      (NAME named-readtables FILENAME named-readtables))
     DEPENDENCIES (cl-ppcre cl-unicode flexi-streams named-readtables) VERSION
-    20200715-git SIBLINGS NIL PARASITES (cl-interpol-test)) */
+    20201220-git SIBLINGS NIL PARASITES (cl-interpol-test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-jpeg.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-jpeg.nix
index 1f9fdc420fe7..086ebde35952 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-jpeg.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-jpeg.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-jpeg";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-json.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-json.nix
index 00f8b90e485a..ab76c8d88432 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-json.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-json.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-json";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n-cldr.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n-cldr.nix
index 3162edc38625..8ef07f336ceb 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n-cldr.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n-cldr.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-l10n-cldr";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n.nix
index 61c37acb829e..44b2a64be909 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-l10n";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-libuv.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-libuv.nix
index 7c3f1b7c0694..a8d15b0629ff 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-libuv.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-libuv.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-libuv";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-locale.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-locale.nix
index 656cb7046342..4c053804ea50 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-locale.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-locale.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-locale";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-markup.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-markup.nix
index 56853f0dfcde..47d19e5da7a6 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-markup.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-markup.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-markup";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-mysql.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-mysql.nix
index c2ede1ee6ecf..5e496535ccec 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-mysql.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-mysql.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-mysql";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-paths-ttf.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-paths-ttf.nix
index 249a54ed0fbe..1a9ddf4cb674 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-paths-ttf.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-paths-ttf.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-paths-ttf";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-paths.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-paths.nix
index 9f7fc95a9190..b4caabe8b2ee 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-paths.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-paths.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-paths";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-pdf.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-pdf.nix
index 35deef0c2a36..7af4eaf4312b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-pdf.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-pdf.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-pdf";
-  version = "20191007-git";
+  version = "20210228-git";
 
   description = "Common Lisp PDF Generation Library";
 
   deps = [ args."iterate" args."uiop" args."zpb-ttf" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-pdf/2019-10-07/cl-pdf-20191007-git.tgz";
-    sha256 = "0l0hnxysy7dc4wj50nfwn8x7v188vaxvsvk8kl92zb92lfzgw7cd";
+    url = "http://beta.quicklisp.org/archive/cl-pdf/2021-02-28/cl-pdf-20210228-git.tgz";
+    sha256 = "1m1nq91p49gfc9iccja2wbhglrv0mgzhqvliss7jr0j6icv66x3y";
   };
 
   packageName = "cl-pdf";
@@ -18,10 +19,10 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-pdf DESCRIPTION Common Lisp PDF Generation Library SHA256
-    0l0hnxysy7dc4wj50nfwn8x7v188vaxvsvk8kl92zb92lfzgw7cd URL
-    http://beta.quicklisp.org/archive/cl-pdf/2019-10-07/cl-pdf-20191007-git.tgz
-    MD5 edde2f2da08ec10be65364737ed5fa5c NAME cl-pdf FILENAME cl-pdf DEPS
+    1m1nq91p49gfc9iccja2wbhglrv0mgzhqvliss7jr0j6icv66x3y URL
+    http://beta.quicklisp.org/archive/cl-pdf/2021-02-28/cl-pdf-20210228-git.tgz
+    MD5 a0eae40821642fc5287b67bf462b54d9 NAME cl-pdf FILENAME cl-pdf DEPS
     ((NAME iterate FILENAME iterate) (NAME uiop FILENAME uiop)
      (NAME zpb-ttf FILENAME zpb-ttf))
-    DEPENDENCIES (iterate uiop zpb-ttf) VERSION 20191007-git SIBLINGS
+    DEPENDENCIES (iterate uiop zpb-ttf) VERSION 20210228-git SIBLINGS
     (cl-pdf-parser) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix
index f26326f307e5..95f5d0373812 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-postgres";
-  version = "postmodern-20201016-git";
+  version = "postmodern-20210124-git";
 
   parasites = [ "cl-postgres/simple-date-tests" "cl-postgres/tests" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-ppcre" args."fiveam" args."ironclad" args."md5" args."simple-date" args."simple-date_slash_postgres-glue" args."split-sequence" args."uax-15" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2020-10-16/postmodern-20201016-git.tgz";
-    sha256 = "1svaiksbqcaq8sh7q6sj9kzazdfl360zqr2nzhwbgy4xnaj4vf3n";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz";
+    sha256 = "1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc";
   };
 
   packageName = "cl-postgres";
@@ -20,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-postgres DESCRIPTION Low-level client library for PostgreSQL
-    SHA256 1svaiksbqcaq8sh7q6sj9kzazdfl360zqr2nzhwbgy4xnaj4vf3n URL
-    http://beta.quicklisp.org/archive/postmodern/2020-10-16/postmodern-20201016-git.tgz
-    MD5 f61e827d7e7ba023f6fbc7c2667de4c8 NAME cl-postgres FILENAME cl-postgres
+    SHA256 1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc URL
+    http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz
+    MD5 05c2c5f4d2354a5fa69a32b7b96f8ff8 NAME cl-postgres FILENAME cl-postgres
     DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -35,5 +36,5 @@ rec {
     DEPENDENCIES
     (alexandria bordeaux-threads cl-base64 cl-ppcre fiveam ironclad md5
      simple-date simple-date/postgres-glue split-sequence uax-15 usocket)
-    VERSION postmodern-20201016-git SIBLINGS (postmodern s-sql simple-date)
+    VERSION postmodern-20210124-git SIBLINGS (postmodern s-sql simple-date)
     PARASITES (cl-postgres/simple-date-tests cl-postgres/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres_plus_local-time.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres_plus_local-time.nix
new file mode 100644
index 000000000000..3c32a56e37b5
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres_plus_local-time.nix
@@ -0,0 +1,37 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cl-postgres_plus_local-time";
+  version = "local-time-20210124-git";
+
+  description = "Integration between cl-postgres and local-time";
+
+  deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-postgres" args."cl-ppcre" args."ironclad" args."local-time" args."md5" args."split-sequence" args."uax-15" args."usocket" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/local-time/2021-01-24/local-time-20210124-git.tgz";
+    sha256 = "0bz5z0rd8gfd22bpqkalaijxlrk806zc010cvgd4qjapbrxzjg3s";
+  };
+
+  packageName = "cl-postgres+local-time";
+
+  asdFilesToKeep = ["cl-postgres+local-time.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-postgres+local-time DESCRIPTION
+    Integration between cl-postgres and local-time SHA256
+    0bz5z0rd8gfd22bpqkalaijxlrk806zc010cvgd4qjapbrxzjg3s URL
+    http://beta.quicklisp.org/archive/local-time/2021-01-24/local-time-20210124-git.tgz
+    MD5 631d67bc84ae838792717b256f2cdbaf NAME cl-postgres+local-time FILENAME
+    cl-postgres_plus_local-time DEPS
+    ((NAME alexandria FILENAME alexandria)
+     (NAME bordeaux-threads FILENAME bordeaux-threads)
+     (NAME cl-base64 FILENAME cl-base64)
+     (NAME cl-postgres FILENAME cl-postgres) (NAME cl-ppcre FILENAME cl-ppcre)
+     (NAME ironclad FILENAME ironclad) (NAME local-time FILENAME local-time)
+     (NAME md5 FILENAME md5) (NAME split-sequence FILENAME split-sequence)
+     (NAME uax-15 FILENAME uax-15) (NAME usocket FILENAME usocket))
+    DEPENDENCIES
+    (alexandria bordeaux-threads cl-base64 cl-postgres cl-ppcre ironclad
+     local-time md5 split-sequence uax-15 usocket)
+    VERSION local-time-20210124-git SIBLINGS (local-time) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre-template.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre-template.nix
index f681b384b54f..a09ba7cdc608 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre-template.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre-template.nix
@@ -1,13 +1,14 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-ppcre-template";
   version = "cl-unification-20200925-git";
 
-  description = ''A system used to conditionally load the CL-PPCRE Template.
+  description = "A system used to conditionally load the CL-PPCRE Template.
 
 This system is not required and it is handled only if CL-PPCRE is
 available.  If it is, then the library provides the
-REGULAR-EXPRESSION-TEMPLATE.'';
+REGULAR-EXPRESSION-TEMPLATE.";
 
   deps = [ args."cl-ppcre" args."cl-unification" ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre-unicode.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre-unicode.nix
index 8002137e77bd..8277c9ed727f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre-unicode.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre-unicode.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-ppcre-unicode";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre.nix
index 3d038b19dce3..1a2aeadd279c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-ppcre.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-ppcre";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-prevalence.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-prevalence.nix
index 3fa35243c2f1..333b7ac58784 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-prevalence.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-prevalence.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-prevalence";
-  version = "20200715-git";
+  version = "20210228-git";
 
   description = "Common Lisp Prevalence Package";
 
   deps = [ args."alexandria" args."bordeaux-threads" args."s-sysdeps" args."s-xml" args."split-sequence" args."usocket" args."usocket-server" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-prevalence/2020-07-15/cl-prevalence-20200715-git.tgz";
-    sha256 = "1m2wrqnly9i35kjk2wydwywjmwkbh3a3f4ds7wl63q8kpn8g0ibd";
+    url = "http://beta.quicklisp.org/archive/cl-prevalence/2021-02-28/cl-prevalence-20210228-git.tgz";
+    sha256 = "0irx60xa7ivlnjg1qzhl7x5sgdjqk53nrx0nji29q639h71czfpl";
   };
 
   packageName = "cl-prevalence";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-prevalence DESCRIPTION Common Lisp Prevalence Package SHA256
-    1m2wrqnly9i35kjk2wydwywjmwkbh3a3f4ds7wl63q8kpn8g0ibd URL
-    http://beta.quicklisp.org/archive/cl-prevalence/2020-07-15/cl-prevalence-20200715-git.tgz
-    MD5 d01b70db724ac8408b072ac39bbd8837 NAME cl-prevalence FILENAME
+    0irx60xa7ivlnjg1qzhl7x5sgdjqk53nrx0nji29q639h71czfpl URL
+    http://beta.quicklisp.org/archive/cl-prevalence/2021-02-28/cl-prevalence-20210228-git.tgz
+    MD5 d67c661693637b837ef7f6b1d4d47f9f NAME cl-prevalence FILENAME
     cl-prevalence DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -31,4 +32,4 @@ rec {
     DEPENDENCIES
     (alexandria bordeaux-threads s-sysdeps s-xml split-sequence usocket
      usocket-server)
-    VERSION 20200715-git SIBLINGS (cl-prevalence-test) PARASITES NIL) */
+    VERSION 20210228-git SIBLINGS (cl-prevalence-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-project.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-project.nix
index 55edc3cf1211..72a049c2f0d4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-project.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-project.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-project";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-protobufs.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-protobufs.nix
index fdbb48c3754f..0281fc3eed48 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-protobufs.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-protobufs.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-protobufs";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-qprint.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-qprint.nix
index 72f7d85bc2c2..ee2b681ae09a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-qprint.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-qprint.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-qprint";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-reexport.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-reexport.nix
index a4ada8ee9e59..96d88a18615e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-reexport.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-reexport.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-reexport";
-  version = "20150709-git";
+  version = "20210228-git";
 
   description = "Reexport external symbols in other packages.";
 
   deps = [ args."alexandria" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-reexport/2015-07-09/cl-reexport-20150709-git.tgz";
-    sha256 = "1y6qlyps7g0wl4rbmzvw6s1kjdwwmh33layyjclsjp9j5nm8mdmi";
+    url = "http://beta.quicklisp.org/archive/cl-reexport/2021-02-28/cl-reexport-20210228-git.tgz";
+    sha256 = "1ay0ng5nnbq200g4wxs0h7byx24za4yk208nhfsmksahk5qj1qra";
   };
 
   packageName = "cl-reexport";
@@ -18,8 +19,8 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-reexport DESCRIPTION Reexport external symbols in other packages.
-    SHA256 1y6qlyps7g0wl4rbmzvw6s1kjdwwmh33layyjclsjp9j5nm8mdmi URL
-    http://beta.quicklisp.org/archive/cl-reexport/2015-07-09/cl-reexport-20150709-git.tgz
-    MD5 207d02771cbd906d033ff704ca5c3a3d NAME cl-reexport FILENAME cl-reexport
+    SHA256 1ay0ng5nnbq200g4wxs0h7byx24za4yk208nhfsmksahk5qj1qra URL
+    http://beta.quicklisp.org/archive/cl-reexport/2021-02-28/cl-reexport-20210228-git.tgz
+    MD5 e083a9c49fe39d65f1ff7743eebe37c2 NAME cl-reexport FILENAME cl-reexport
     DEPS ((NAME alexandria FILENAME alexandria)) DEPENDENCIES (alexandria)
-    VERSION 20150709-git SIBLINGS (cl-reexport-test) PARASITES NIL) */
+    VERSION 20210228-git SIBLINGS (cl-reexport-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-slice.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-slice.nix
index 464cddbd5f7e..0775433422ca 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-slice.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-slice.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-slice";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-smtp.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-smtp.nix
index 58957c7826ad..9570254b8d0d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-smtp.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-smtp.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-smtp";
-  version = "20191130-git";
+  version = "20210228-git";
 
   description = "Common Lisp smtp client.";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl_plus_ssl" args."cl-base64" args."flexi-streams" args."split-sequence" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-smtp/2019-11-30/cl-smtp-20191130-git.tgz";
-    sha256 = "04x1xq1qlsnhl4wdi82l8ds6rl9rzxk72bjf2ja10jay1p6ljvdq";
+    url = "http://beta.quicklisp.org/archive/cl-smtp/2021-02-28/cl-smtp-20210228-git.tgz";
+    sha256 = "1x965jyhifx8hss2v6qc6lr54nlckchs712dny376krwkl43jh5g";
   };
 
   packageName = "cl-smtp";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-smtp DESCRIPTION Common Lisp smtp client. SHA256
-    04x1xq1qlsnhl4wdi82l8ds6rl9rzxk72bjf2ja10jay1p6ljvdq URL
-    http://beta.quicklisp.org/archive/cl-smtp/2019-11-30/cl-smtp-20191130-git.tgz
-    MD5 880f09b9fd22e358d1b94a3caf3bd34b NAME cl-smtp FILENAME cl-smtp DEPS
+    1x965jyhifx8hss2v6qc6lr54nlckchs712dny376krwkl43jh5g URL
+    http://beta.quicklisp.org/archive/cl-smtp/2021-02-28/cl-smtp-20210228-git.tgz
+    MD5 e2f9137807f80514e0433bf2e8522ee5 NAME cl-smtp FILENAME cl-smtp DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cffi FILENAME cffi) (NAME cl+ssl FILENAME cl_plus_ssl)
@@ -35,4 +36,4 @@ rec {
     (alexandria babel bordeaux-threads cffi cl+ssl cl-base64 flexi-streams
      split-sequence trivial-features trivial-garbage trivial-gray-streams
      usocket)
-    VERSION 20191130-git SIBLINGS NIL PARASITES NIL) */
+    VERSION 20210228-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-speedy-queue.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-speedy-queue.nix
new file mode 100644
index 000000000000..cb367af21fb6
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-speedy-queue.nix
@@ -0,0 +1,27 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cl-speedy-queue";
+  version = "20150302-git";
+
+  description = "cl-speedy-queue is a portable, non-consing, optimized queue implementation.";
+
+  deps = [ ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cl-speedy-queue/2015-03-02/cl-speedy-queue-20150302-git.tgz";
+    sha256 = "1w83vckk0ldr61vpkwg4i8l2b2yx54cs4ak62j4lxhshax105rqr";
+  };
+
+  packageName = "cl-speedy-queue";
+
+  asdFilesToKeep = ["cl-speedy-queue.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-speedy-queue DESCRIPTION
+    cl-speedy-queue is a portable, non-consing, optimized queue implementation.
+    SHA256 1w83vckk0ldr61vpkwg4i8l2b2yx54cs4ak62j4lxhshax105rqr URL
+    http://beta.quicklisp.org/archive/cl-speedy-queue/2015-03-02/cl-speedy-queue-20150302-git.tgz
+    MD5 509d1acf7e4cfcef99127de75b16521f NAME cl-speedy-queue FILENAME
+    cl-speedy-queue DEPS NIL DEPENDENCIES NIL VERSION 20150302-git SIBLINGS NIL
+    PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-store.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-store.nix
index f7571c4bfcc8..4e7f5e0f794d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-store.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-store.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-store";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-annot.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-annot.nix
index 6cedd33973df..a4f8cce8ba3e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-annot.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-annot.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-syntax-annot";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-anonfun.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-anonfun.nix
index c862b137b02e..c6f1932489b9 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-anonfun.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-anonfun.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-syntax-anonfun";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-markup.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-markup.nix
index ed1158f09986..ea955ba0bf2e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-markup.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax-markup.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-syntax-markup";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax.nix
index 195071e88ce8..6a09c11d14ea 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syntax.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-syntax";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syslog.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syslog.nix
new file mode 100644
index 000000000000..695d1722dc12
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syslog.nix
@@ -0,0 +1,34 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cl-syslog";
+  version = "20190202-git";
+
+  description = "Common Lisp syslog interface.";
+
+  deps = [ args."alexandria" args."babel" args."cffi" args."global-vars" args."local-time" args."split-sequence" args."trivial-features" args."usocket" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cl-syslog/2019-02-02/cl-syslog-20190202-git.tgz";
+    sha256 = "1kzz613y9fvx33svlwc65vjaj1cafnxz8icds80ww7il7y6alwgh";
+  };
+
+  packageName = "cl-syslog";
+
+  asdFilesToKeep = ["cl-syslog.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-syslog DESCRIPTION Common Lisp syslog interface. SHA256
+    1kzz613y9fvx33svlwc65vjaj1cafnxz8icds80ww7il7y6alwgh URL
+    http://beta.quicklisp.org/archive/cl-syslog/2019-02-02/cl-syslog-20190202-git.tgz
+    MD5 eafff19eb1f38a36a9535c729d2217fe NAME cl-syslog FILENAME cl-syslog DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
+     (NAME cffi FILENAME cffi) (NAME global-vars FILENAME global-vars)
+     (NAME local-time FILENAME local-time)
+     (NAME split-sequence FILENAME split-sequence)
+     (NAME trivial-features FILENAME trivial-features)
+     (NAME usocket FILENAME usocket))
+    DEPENDENCIES
+    (alexandria babel cffi global-vars local-time split-sequence
+     trivial-features usocket)
+    VERSION 20190202-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-test-more.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-test-more.nix
index 8b5bff40c60a..78a2abde951a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-test-more.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-test-more.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-test-more";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-typesetting.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-typesetting.nix
index 2e43b2c37ec0..82beff705798 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-typesetting.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-typesetting.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-typesetting";
-  version = "20170830-git";
+  version = "20210228-git";
 
   description = "Common Lisp Typesetting system";
 
   deps = [ args."cl-pdf" args."iterate" args."zpb-ttf" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-typesetting/2017-08-30/cl-typesetting-20170830-git.tgz";
-    sha256 = "1mkdr02qikzij3jiyrqy0dldzy8wsnvgcpznfha6x8p2xap586z3";
+    url = "http://beta.quicklisp.org/archive/cl-typesetting/2021-02-28/cl-typesetting-20210228-git.tgz";
+    sha256 = "13rmzyzp0glq35jq3qdlmrsdssa6csqp5g455li4wi7kq8clrwnp";
   };
 
   packageName = "cl-typesetting";
@@ -18,11 +19,11 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-typesetting DESCRIPTION Common Lisp Typesetting system SHA256
-    1mkdr02qikzij3jiyrqy0dldzy8wsnvgcpznfha6x8p2xap586z3 URL
-    http://beta.quicklisp.org/archive/cl-typesetting/2017-08-30/cl-typesetting-20170830-git.tgz
-    MD5 e12b9f249c60c220c5dc4a0939eb3343 NAME cl-typesetting FILENAME
+    13rmzyzp0glq35jq3qdlmrsdssa6csqp5g455li4wi7kq8clrwnp URL
+    http://beta.quicklisp.org/archive/cl-typesetting/2021-02-28/cl-typesetting-20210228-git.tgz
+    MD5 949e7de37838d63f4c6b6e7dd88befeb NAME cl-typesetting FILENAME
     cl-typesetting DEPS
     ((NAME cl-pdf FILENAME cl-pdf) (NAME iterate FILENAME iterate)
      (NAME zpb-ttf FILENAME zpb-ttf))
-    DEPENDENCIES (cl-pdf iterate zpb-ttf) VERSION 20170830-git SIBLINGS
+    DEPENDENCIES (cl-pdf iterate zpb-ttf) VERSION 20210228-git SIBLINGS
     (xml-render cl-pdf-doc) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-unicode.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-unicode.nix
index f7ad7a8592c6..67209e03f838 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-unicode.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-unicode.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-unicode";
-  version = "20190521-git";
+  version = "20210228-git";
 
   parasites = [ "cl-unicode/base" "cl-unicode/build" "cl-unicode/test" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."cl-ppcre" args."flexi-streams" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-unicode/2019-05-21/cl-unicode-20190521-git.tgz";
-    sha256 = "0p20yrqbn3fwsnrxvh2cv0m86mh3mz9vj15m7siw1kjkbzq0vngc";
+    url = "http://beta.quicklisp.org/archive/cl-unicode/2021-02-28/cl-unicode-20210228-git.tgz";
+    sha256 = "0phy5wppb7m78dixrf2vjq8vas4drfd4qg38al6q8ymkl0yfy5js";
   };
 
   packageName = "cl-unicode";
@@ -20,11 +21,11 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-unicode DESCRIPTION Portable Unicode Library SHA256
-    0p20yrqbn3fwsnrxvh2cv0m86mh3mz9vj15m7siw1kjkbzq0vngc URL
-    http://beta.quicklisp.org/archive/cl-unicode/2019-05-21/cl-unicode-20190521-git.tgz
-    MD5 04009a1266edbdda4d38902907caba25 NAME cl-unicode FILENAME cl-unicode
+    0phy5wppb7m78dixrf2vjq8vas4drfd4qg38al6q8ymkl0yfy5js URL
+    http://beta.quicklisp.org/archive/cl-unicode/2021-02-28/cl-unicode-20210228-git.tgz
+    MD5 5b3bdddde3be5b8427e3fac92495a10b NAME cl-unicode FILENAME cl-unicode
     DEPS
     ((NAME cl-ppcre FILENAME cl-ppcre)
      (NAME flexi-streams FILENAME flexi-streams))
-    DEPENDENCIES (cl-ppcre flexi-streams) VERSION 20190521-git SIBLINGS NIL
+    DEPENDENCIES (cl-ppcre flexi-streams) VERSION 20210228-git SIBLINGS NIL
     PARASITES (cl-unicode/base cl-unicode/build cl-unicode/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-unification.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-unification.nix
index d4328b7319e3..0f84f3400ec5 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-unification.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-unification.nix
@@ -1,11 +1,12 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-unification";
   version = "20200925-git";
 
-  description = ''The CL-UNIFICATION system.
+  description = "The CL-UNIFICATION system.
 
-The system contains the definitions for the 'unification' machinery.'';
+The system contains the definitions for the 'unification' machinery.";
 
   deps = [ ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-utilities.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-utilities.nix
index 1304b11990a5..cfe7a2a9f3cc 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-utilities.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-utilities.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-utilities";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-vectors.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-vectors.nix
index 14cee3176123..a6fc607c64ec 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-vectors.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-vectors.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-vectors";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix
index 9c547943317f..56275d72740c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-webkit2";
-  version = "cl-webkit-20201016-git";
+  version = "cl-webkit-20210228-git";
 
   description = "An FFI binding to WebKit2GTK+";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-cffi-gtk" args."cl-cffi-gtk-cairo" args."cl-cffi-gtk-gdk" args."cl-cffi-gtk-gdk-pixbuf" args."cl-cffi-gtk-gio" args."cl-cffi-gtk-glib" args."cl-cffi-gtk-gobject" args."cl-cffi-gtk-pango" args."closer-mop" args."iterate" args."trivial-features" args."trivial-garbage" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-webkit/2020-10-16/cl-webkit-20201016-git.tgz";
-    sha256 = "15xykhjz3j7ad3m853x1hriv3mz6zsgaqdnlc3wk664ka0f7k0vh";
+    url = "http://beta.quicklisp.org/archive/cl-webkit/2021-02-28/cl-webkit-20210228-git.tgz";
+    sha256 = "1r6i64g37palar4hij6c5m240xbn2dwzwaashv015nhjwmra1ms1";
   };
 
   packageName = "cl-webkit2";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-webkit2 DESCRIPTION An FFI binding to WebKit2GTK+ SHA256
-    15xykhjz3j7ad3m853x1hriv3mz6zsgaqdnlc3wk664ka0f7k0vh URL
-    http://beta.quicklisp.org/archive/cl-webkit/2020-10-16/cl-webkit-20201016-git.tgz
-    MD5 d7b482185cf5a403d5211626560d2f66 NAME cl-webkit2 FILENAME cl-webkit2
+    1r6i64g37palar4hij6c5m240xbn2dwzwaashv015nhjwmra1ms1 URL
+    http://beta.quicklisp.org/archive/cl-webkit/2021-02-28/cl-webkit-20210228-git.tgz
+    MD5 49f38c18ac292122628356762270e5ff NAME cl-webkit2 FILENAME cl-webkit2
     DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -40,4 +41,4 @@ rec {
      cl-cffi-gtk-gdk cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gio cl-cffi-gtk-glib
      cl-cffi-gtk-gobject cl-cffi-gtk-pango closer-mop iterate trivial-features
      trivial-garbage)
-    VERSION cl-webkit-20201016-git SIBLINGS NIL PARASITES NIL) */
+    VERSION cl-webkit-20210228-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-who.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-who.nix
index 4b4f4314251e..3e19170e6327 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-who.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-who.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-who";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-xmlspam.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-xmlspam.nix
index 86c9f0c594a0..ae6b0b336c5c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-xmlspam.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-xmlspam.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-xmlspam";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix
index 1826e79f5a92..6811c62ad2e1 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl_plus_ssl";
-  version = "cl+ssl-20200610-git";
+  version = "cl+ssl-20210228-git";
 
   description = "Common Lisp interface to OpenSSL.";
 
-  deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."flexi-streams" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."uiop" ];
+  deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."flexi-streams" args."split-sequence" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."uiop" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl+ssl/2020-06-10/cl+ssl-20200610-git.tgz";
-    sha256 = "1kijg8vlwcxraknp4gadf3n5zjchkgg8axr94v3kas9rb717r6ql";
+    url = "http://beta.quicklisp.org/archive/cl+ssl/2021-02-28/cl+ssl-20210228-git.tgz";
+    sha256 = "1njppcg5fm8l0lhf7nf8nfyaz9vsr922y0vfxqdp9hp7qfid8yll";
   };
 
   packageName = "cl+ssl";
@@ -18,17 +19,18 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl+ssl DESCRIPTION Common Lisp interface to OpenSSL. SHA256
-    1kijg8vlwcxraknp4gadf3n5zjchkgg8axr94v3kas9rb717r6ql URL
-    http://beta.quicklisp.org/archive/cl+ssl/2020-06-10/cl+ssl-20200610-git.tgz
-    MD5 e6f124e4900191b354827312dfc8df3d NAME cl+ssl FILENAME cl_plus_ssl DEPS
+    1njppcg5fm8l0lhf7nf8nfyaz9vsr922y0vfxqdp9hp7qfid8yll URL
+    http://beta.quicklisp.org/archive/cl+ssl/2021-02-28/cl+ssl-20210228-git.tgz
+    MD5 01b61fd8ee6ad8d3c1c695ba56d510b6 NAME cl+ssl FILENAME cl_plus_ssl DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cffi FILENAME cffi) (NAME flexi-streams FILENAME flexi-streams)
+     (NAME split-sequence FILENAME split-sequence)
      (NAME trivial-features FILENAME trivial-features)
      (NAME trivial-garbage FILENAME trivial-garbage)
      (NAME trivial-gray-streams FILENAME trivial-gray-streams)
-     (NAME uiop FILENAME uiop))
+     (NAME uiop FILENAME uiop) (NAME usocket FILENAME usocket))
     DEPENDENCIES
-    (alexandria babel bordeaux-threads cffi flexi-streams trivial-features
-     trivial-garbage trivial-gray-streams uiop)
-    VERSION cl+ssl-20200610-git SIBLINGS (cl+ssl.test) PARASITES NIL) */
+    (alexandria babel bordeaux-threads cffi flexi-streams split-sequence
+     trivial-features trivial-garbage trivial-gray-streams uiop usocket)
+    VERSION cl+ssl-20210228-git SIBLINGS (cl+ssl.test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-handler-hunchentoot.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-handler-hunchentoot.nix
index 75a30decba4c..ff3679a2639a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-handler-hunchentoot.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-handler-hunchentoot.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack-handler-hunchentoot";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix
index 5b39ac9e5a30..e597bb66d60f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack-socket";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-test.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-test.nix
index b990af443977..d014ccc21110 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-test.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-test.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack-test";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-v1-compat.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-v1-compat.nix
index 5c0a58643143..6d90a5ef1f08 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-v1-compat.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-v1-compat.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack-v1-compat";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix
index 878b037cb3e8..78ffa543ece4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clfswm.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clfswm.nix
index b7073858601d..ccd9fe613196 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clfswm.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clfswm.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clfswm";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix
index 5c7f91ac88c3..ff8e7cc953ca 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "closer-mop";
-  version = "20201016-git";
+  version = "20210228-git";
 
   description = "Closer to MOP is a compatibility layer that rectifies many of the absent or incorrect CLOS MOP features across a broad range of Common Lisp implementations.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/closer-mop/2020-10-16/closer-mop-20201016-git.tgz";
-    sha256 = "1fccvxzrrfdiwjx9cdia7idp8xym1y86bf7zcyxvmpkdcvgdsdcd";
+    url = "http://beta.quicklisp.org/archive/closer-mop/2021-02-28/closer-mop-20210228-git.tgz";
+    sha256 = "0x3rp2v84zzw5mhcxrgbq2kcb9gs4jn1l9rh4ylsnih89l9lqc6i";
   };
 
   packageName = "closer-mop";
@@ -19,7 +20,7 @@ rec {
 }
 /* (SYSTEM closer-mop DESCRIPTION
     Closer to MOP is a compatibility layer that rectifies many of the absent or incorrect CLOS MOP features across a broad range of Common Lisp implementations.
-    SHA256 1fccvxzrrfdiwjx9cdia7idp8xym1y86bf7zcyxvmpkdcvgdsdcd URL
-    http://beta.quicklisp.org/archive/closer-mop/2020-10-16/closer-mop-20201016-git.tgz
-    MD5 aca5b5432a782075906efd5aa948b748 NAME closer-mop FILENAME closer-mop
-    DEPS NIL DEPENDENCIES NIL VERSION 20201016-git SIBLINGS NIL PARASITES NIL) */
+    SHA256 0x3rp2v84zzw5mhcxrgbq2kcb9gs4jn1l9rh4ylsnih89l9lqc6i URL
+    http://beta.quicklisp.org/archive/closer-mop/2021-02-28/closer-mop-20210228-git.tgz
+    MD5 49c0004ff21157bc99f227cecf7b6025 NAME closer-mop FILENAME closer-mop
+    DEPS NIL DEPENDENCIES NIL VERSION 20210228-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closure-common.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closure-common.nix
index 86e19bc347f2..6720aa516dff 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closure-common.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closure-common.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "closure-common";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closure-html.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closure-html.nix
index d1d07573809a..a0233a31be51 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closure-html.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closure-html.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "closure-html";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-postgresql-socket.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-postgresql-socket.nix
index a01522b032f8..9ec7791eec68 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-postgresql-socket.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-postgresql-socket.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clsql-postgresql-socket";
-  version = "clsql-20201016-git";
+  version = "clsql-20210228-git";
 
   description = "Common Lisp SQL PostgreSQL Socket Driver";
 
   deps = [ args."clsql" args."md5" args."uffi" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clsql/2020-10-16/clsql-20201016-git.tgz";
-    sha256 = "0wzjxcm7df4fipvj5qsqlllai92hkzd4cvlaghvaikcah9r63hv8";
+    url = "http://beta.quicklisp.org/archive/clsql/2021-02-28/clsql-20210228-git.tgz";
+    sha256 = "0g7racshjy47xbfijymddjwnphp0c93z2lnlgi330g257s9l7vd4";
   };
 
   packageName = "clsql-postgresql-socket";
@@ -19,13 +20,13 @@ rec {
 }
 /* (SYSTEM clsql-postgresql-socket DESCRIPTION
     Common Lisp SQL PostgreSQL Socket Driver SHA256
-    0wzjxcm7df4fipvj5qsqlllai92hkzd4cvlaghvaikcah9r63hv8 URL
-    http://beta.quicklisp.org/archive/clsql/2020-10-16/clsql-20201016-git.tgz
-    MD5 bfa0842f9875113aed8e82eca58dab9e NAME clsql-postgresql-socket FILENAME
+    0g7racshjy47xbfijymddjwnphp0c93z2lnlgi330g257s9l7vd4 URL
+    http://beta.quicklisp.org/archive/clsql/2021-02-28/clsql-20210228-git.tgz
+    MD5 d32b2b37e4211f5da61d2e29847a2f12 NAME clsql-postgresql-socket FILENAME
     clsql-postgresql-socket DEPS
     ((NAME clsql FILENAME clsql) (NAME md5 FILENAME md5)
      (NAME uffi FILENAME uffi))
-    DEPENDENCIES (clsql md5 uffi) VERSION clsql-20201016-git SIBLINGS
+    DEPENDENCIES (clsql md5 uffi) VERSION clsql-20210228-git SIBLINGS
     (clsql-aodbc clsql-cffi clsql-mysql clsql-odbc clsql-postgresql-socket3
      clsql-postgresql clsql-sqlite clsql-sqlite3 clsql-tests clsql-uffi clsql)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-postgresql.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-postgresql.nix
index 1c5ee972844b..0c75f8a27742 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-postgresql.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-postgresql.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clsql-postgresql";
-  version = "clsql-20201016-git";
+  version = "clsql-20210228-git";
 
   description = "Common Lisp PostgreSQL API Driver";
 
   deps = [ args."clsql" args."clsql-uffi" args."uffi" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clsql/2020-10-16/clsql-20201016-git.tgz";
-    sha256 = "0wzjxcm7df4fipvj5qsqlllai92hkzd4cvlaghvaikcah9r63hv8";
+    url = "http://beta.quicklisp.org/archive/clsql/2021-02-28/clsql-20210228-git.tgz";
+    sha256 = "0g7racshjy47xbfijymddjwnphp0c93z2lnlgi330g257s9l7vd4";
   };
 
   packageName = "clsql-postgresql";
@@ -18,13 +19,13 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM clsql-postgresql DESCRIPTION Common Lisp PostgreSQL API Driver
-    SHA256 0wzjxcm7df4fipvj5qsqlllai92hkzd4cvlaghvaikcah9r63hv8 URL
-    http://beta.quicklisp.org/archive/clsql/2020-10-16/clsql-20201016-git.tgz
-    MD5 bfa0842f9875113aed8e82eca58dab9e NAME clsql-postgresql FILENAME
+    SHA256 0g7racshjy47xbfijymddjwnphp0c93z2lnlgi330g257s9l7vd4 URL
+    http://beta.quicklisp.org/archive/clsql/2021-02-28/clsql-20210228-git.tgz
+    MD5 d32b2b37e4211f5da61d2e29847a2f12 NAME clsql-postgresql FILENAME
     clsql-postgresql DEPS
     ((NAME clsql FILENAME clsql) (NAME clsql-uffi FILENAME clsql-uffi)
      (NAME uffi FILENAME uffi))
-    DEPENDENCIES (clsql clsql-uffi uffi) VERSION clsql-20201016-git SIBLINGS
+    DEPENDENCIES (clsql clsql-uffi uffi) VERSION clsql-20210228-git SIBLINGS
     (clsql-aodbc clsql-cffi clsql-mysql clsql-odbc clsql-postgresql-socket
      clsql-postgresql-socket3 clsql-sqlite clsql-sqlite3 clsql-tests clsql-uffi
      clsql)
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-sqlite3.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-sqlite3.nix
index 500eddc5c500..e0f8c6ad358a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-sqlite3.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-sqlite3.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clsql-sqlite3";
-  version = "clsql-20201016-git";
+  version = "clsql-20210228-git";
 
   description = "Common Lisp Sqlite3 Driver";
 
   deps = [ args."clsql" args."clsql-uffi" args."uffi" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clsql/2020-10-16/clsql-20201016-git.tgz";
-    sha256 = "0wzjxcm7df4fipvj5qsqlllai92hkzd4cvlaghvaikcah9r63hv8";
+    url = "http://beta.quicklisp.org/archive/clsql/2021-02-28/clsql-20210228-git.tgz";
+    sha256 = "0g7racshjy47xbfijymddjwnphp0c93z2lnlgi330g257s9l7vd4";
   };
 
   packageName = "clsql-sqlite3";
@@ -18,13 +19,13 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM clsql-sqlite3 DESCRIPTION Common Lisp Sqlite3 Driver SHA256
-    0wzjxcm7df4fipvj5qsqlllai92hkzd4cvlaghvaikcah9r63hv8 URL
-    http://beta.quicklisp.org/archive/clsql/2020-10-16/clsql-20201016-git.tgz
-    MD5 bfa0842f9875113aed8e82eca58dab9e NAME clsql-sqlite3 FILENAME
+    0g7racshjy47xbfijymddjwnphp0c93z2lnlgi330g257s9l7vd4 URL
+    http://beta.quicklisp.org/archive/clsql/2021-02-28/clsql-20210228-git.tgz
+    MD5 d32b2b37e4211f5da61d2e29847a2f12 NAME clsql-sqlite3 FILENAME
     clsql-sqlite3 DEPS
     ((NAME clsql FILENAME clsql) (NAME clsql-uffi FILENAME clsql-uffi)
      (NAME uffi FILENAME uffi))
-    DEPENDENCIES (clsql clsql-uffi uffi) VERSION clsql-20201016-git SIBLINGS
+    DEPENDENCIES (clsql clsql-uffi uffi) VERSION clsql-20210228-git SIBLINGS
     (clsql-aodbc clsql-cffi clsql-mysql clsql-odbc clsql-postgresql-socket
      clsql-postgresql-socket3 clsql-postgresql clsql-sqlite clsql-tests
      clsql-uffi clsql)
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-uffi.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-uffi.nix
index 898df2931931..566ee1a87fad 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-uffi.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql-uffi.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clsql-uffi";
-  version = "clsql-20201016-git";
+  version = "clsql-20210228-git";
 
   description = "Common UFFI Helper functions for Common Lisp SQL Interface Library";
 
   deps = [ args."clsql" args."uffi" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clsql/2020-10-16/clsql-20201016-git.tgz";
-    sha256 = "0wzjxcm7df4fipvj5qsqlllai92hkzd4cvlaghvaikcah9r63hv8";
+    url = "http://beta.quicklisp.org/archive/clsql/2021-02-28/clsql-20210228-git.tgz";
+    sha256 = "0g7racshjy47xbfijymddjwnphp0c93z2lnlgi330g257s9l7vd4";
   };
 
   packageName = "clsql-uffi";
@@ -19,11 +20,11 @@ rec {
 }
 /* (SYSTEM clsql-uffi DESCRIPTION
     Common UFFI Helper functions for Common Lisp SQL Interface Library SHA256
-    0wzjxcm7df4fipvj5qsqlllai92hkzd4cvlaghvaikcah9r63hv8 URL
-    http://beta.quicklisp.org/archive/clsql/2020-10-16/clsql-20201016-git.tgz
-    MD5 bfa0842f9875113aed8e82eca58dab9e NAME clsql-uffi FILENAME clsql-uffi
+    0g7racshjy47xbfijymddjwnphp0c93z2lnlgi330g257s9l7vd4 URL
+    http://beta.quicklisp.org/archive/clsql/2021-02-28/clsql-20210228-git.tgz
+    MD5 d32b2b37e4211f5da61d2e29847a2f12 NAME clsql-uffi FILENAME clsql-uffi
     DEPS ((NAME clsql FILENAME clsql) (NAME uffi FILENAME uffi)) DEPENDENCIES
-    (clsql uffi) VERSION clsql-20201016-git SIBLINGS
+    (clsql uffi) VERSION clsql-20210228-git SIBLINGS
     (clsql-aodbc clsql-cffi clsql-mysql clsql-odbc clsql-postgresql-socket
      clsql-postgresql-socket3 clsql-postgresql clsql-sqlite clsql-sqlite3
      clsql-tests clsql)
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql.nix
index 3ec382632241..282262927f32 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clsql.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clsql";
-  version = "20201016-git";
+  version = "20210228-git";
 
   description = "Common Lisp SQL Interface library";
 
   deps = [ args."uffi" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clsql/2020-10-16/clsql-20201016-git.tgz";
-    sha256 = "0wzjxcm7df4fipvj5qsqlllai92hkzd4cvlaghvaikcah9r63hv8";
+    url = "http://beta.quicklisp.org/archive/clsql/2021-02-28/clsql-20210228-git.tgz";
+    sha256 = "0g7racshjy47xbfijymddjwnphp0c93z2lnlgi330g257s9l7vd4";
   };
 
   packageName = "clsql";
@@ -18,10 +19,10 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM clsql DESCRIPTION Common Lisp SQL Interface library SHA256
-    0wzjxcm7df4fipvj5qsqlllai92hkzd4cvlaghvaikcah9r63hv8 URL
-    http://beta.quicklisp.org/archive/clsql/2020-10-16/clsql-20201016-git.tgz
-    MD5 bfa0842f9875113aed8e82eca58dab9e NAME clsql FILENAME clsql DEPS
-    ((NAME uffi FILENAME uffi)) DEPENDENCIES (uffi) VERSION 20201016-git
+    0g7racshjy47xbfijymddjwnphp0c93z2lnlgi330g257s9l7vd4 URL
+    http://beta.quicklisp.org/archive/clsql/2021-02-28/clsql-20210228-git.tgz
+    MD5 d32b2b37e4211f5da61d2e29847a2f12 NAME clsql FILENAME clsql DEPS
+    ((NAME uffi FILENAME uffi)) DEPENDENCIES (uffi) VERSION 20210228-git
     SIBLINGS
     (clsql-aodbc clsql-cffi clsql-mysql clsql-odbc clsql-postgresql-socket
      clsql-postgresql-socket3 clsql-postgresql clsql-sqlite clsql-sqlite3
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clss.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clss.nix
index 19a1e5ebb164..af74074f087a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clss.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clss.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clss";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump-2-3-tree.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump-2-3-tree.nix
index bc9a8beb66a4..53b4db5dc19b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump-2-3-tree.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump-2-3-tree.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clump-2-3-tree";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump-binary-tree.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump-binary-tree.nix
index 96543b9ba80a..2f71fb3eb9d3 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump-binary-tree.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump-binary-tree.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clump-binary-tree";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump.nix
index 8c6c9e022002..4591b00a78fd 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clump.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clump";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clunit.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clunit.nix
index 7ef0b4a52ddd..d5012847ca9f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clunit.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clunit.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clunit";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clunit2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clunit2.nix
index c62d20e6e2b1..442acebb4cd9 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clunit2.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clunit2.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clunit2";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clx.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clx.nix
index 9592921de1da..fca6eff797ec 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clx.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clx.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "clx";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/collectors.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/collectors.nix
index 20b0435fafa7..a99211953cc7 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/collectors.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/collectors.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "collectors";
@@ -5,8 +6,8 @@ rec {
 
   parasites = [ "collectors-test" ];
 
-  description = ''A library providing various collector type macros
-   pulled from arnesi into its own library and stripped of dependencies'';
+  description = "A library providing various collector type macros
+   pulled from arnesi into its own library and stripped of dependencies";
 
   deps = [ args."alexandria" args."closer-mop" args."iterate" args."lisp-unit2" args."symbol-munger" ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/colorize.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/colorize.nix
index 2abbb9565519..b1e1906aa5d5 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/colorize.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/colorize.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "colorize";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/command-line-arguments.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/command-line-arguments.nix
index 1beb758a79fb..5e0b877fe852 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/command-line-arguments.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/command-line-arguments.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "command-line-arguments";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-lite.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-lite.nix
index 41ac2a90aaec..e29b9910ae89 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-lite.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-lite.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "css-lite";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors-simple-tree.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors-simple-tree.nix
index 5fc683cdc95e..fcd4a6918cde 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors-simple-tree.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors-simple-tree.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "css-selectors-simple-tree";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors-stp.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors-stp.nix
index 9d03244efa10..66917f32d3bd 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors-stp.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors-stp.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "css-selectors-stp";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors.nix
index b18d3a03b63b..ec8434b2e448 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/css-selectors.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "css-selectors";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cxml-stp.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cxml-stp.nix
index 4491687d6120..275eba345024 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cxml-stp.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cxml-stp.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cxml-stp";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cxml.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cxml.nix
index cd7ac83f2e5a..61c38a8720c1 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cxml.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cxml.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "cxml";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-mysql.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-mysql.nix
index 1b84a8c038ed..5dbcbd5c07b0 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-mysql.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-mysql.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "dbd-mysql";
-  version = "cl-dbi-20200610-git";
+  version = "cl-dbi-20210228-git";
 
   description = "Database driver for MySQL.";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-mysql" args."closer-mop" args."dbi" args."split-sequence" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz";
-    sha256 = "1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas";
+    url = "http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz";
+    sha256 = "0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk";
   };
 
   packageName = "dbd-mysql";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM dbd-mysql DESCRIPTION Database driver for MySQL. SHA256
-    1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas URL
-    http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz
-    MD5 2caeb911b23327e054986211d6bfea55 NAME dbd-mysql FILENAME dbd-mysql DEPS
+    0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk URL
+    http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz
+    MD5 7cfb5ad172bc30906ae32ca620099a1f NAME dbd-mysql FILENAME dbd-mysql DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cffi FILENAME cffi) (NAME cl-mysql FILENAME cl-mysql)
@@ -30,5 +31,5 @@ rec {
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi cl-mysql closer-mop dbi
      split-sequence trivial-features)
-    VERSION cl-dbi-20200610-git SIBLINGS
+    VERSION cl-dbi-20210228-git SIBLINGS
     (cl-dbi dbd-postgres dbd-sqlite3 dbi-test dbi) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-postgres.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-postgres.nix
index 7590319fbc2e..c99fcc6a25cf 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-postgres.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-postgres.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "dbd-postgres";
-  version = "cl-dbi-20200610-git";
+  version = "cl-dbi-20210228-git";
 
   description = "Database driver for PostgreSQL.";
 
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-postgres" args."cl-ppcre" args."closer-mop" args."dbi" args."ironclad" args."md5" args."split-sequence" args."trivial-garbage" args."uax-15" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz";
-    sha256 = "1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas";
+    url = "http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz";
+    sha256 = "0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk";
   };
 
   packageName = "dbd-postgres";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM dbd-postgres DESCRIPTION Database driver for PostgreSQL. SHA256
-    1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas URL
-    http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz
-    MD5 2caeb911b23327e054986211d6bfea55 NAME dbd-postgres FILENAME
+    0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk URL
+    http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz
+    MD5 7cfb5ad172bc30906ae32ca620099a1f NAME dbd-postgres FILENAME
     dbd-postgres DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -34,5 +35,5 @@ rec {
     DEPENDENCIES
     (alexandria bordeaux-threads cl-base64 cl-postgres cl-ppcre closer-mop dbi
      ironclad md5 split-sequence trivial-garbage uax-15 usocket)
-    VERSION cl-dbi-20200610-git SIBLINGS
+    VERSION cl-dbi-20210228-git SIBLINGS
     (cl-dbi dbd-mysql dbd-sqlite3 dbi-test dbi) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-sqlite3.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-sqlite3.nix
index b2a264159170..c006de4305f9 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-sqlite3.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbd-sqlite3.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "dbd-sqlite3";
-  version = "cl-dbi-20200610-git";
+  version = "cl-dbi-20210228-git";
 
   description = "Database driver for SQLite3.";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."closer-mop" args."dbi" args."iterate" args."split-sequence" args."sqlite" args."trivial-features" args."trivial-garbage" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz";
-    sha256 = "1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas";
+    url = "http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz";
+    sha256 = "0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk";
   };
 
   packageName = "dbd-sqlite3";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM dbd-sqlite3 DESCRIPTION Database driver for SQLite3. SHA256
-    1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas URL
-    http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz
-    MD5 2caeb911b23327e054986211d6bfea55 NAME dbd-sqlite3 FILENAME dbd-sqlite3
+    0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk URL
+    http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz
+    MD5 7cfb5ad172bc30906ae32ca620099a1f NAME dbd-sqlite3 FILENAME dbd-sqlite3
     DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -33,5 +34,5 @@ rec {
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi closer-mop dbi iterate
      split-sequence sqlite trivial-features trivial-garbage)
-    VERSION cl-dbi-20200610-git SIBLINGS
+    VERSION cl-dbi-20210228-git SIBLINGS
     (cl-dbi dbd-mysql dbd-postgres dbi-test dbi) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbi-test.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbi-test.nix
index f24003e87cfa..6d945d61815c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbi-test.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbi-test.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "dbi-test";
-  version = "cl-dbi-20200610-git";
+  version = "cl-dbi-20210228-git";
 
   description = "System lacks description";
 
   deps = [ args."alexandria" args."bordeaux-threads" args."closer-mop" args."dbi" args."dissect" args."rove" args."split-sequence" args."trivial-gray-streams" args."trivial-types" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz";
-    sha256 = "1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas";
+    url = "http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz";
+    sha256 = "0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk";
   };
 
   packageName = "dbi-test";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM dbi-test DESCRIPTION System lacks description SHA256
-    1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas URL
-    http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz
-    MD5 2caeb911b23327e054986211d6bfea55 NAME dbi-test FILENAME dbi-test DEPS
+    0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk URL
+    http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz
+    MD5 7cfb5ad172bc30906ae32ca620099a1f NAME dbi-test FILENAME dbi-test DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME closer-mop FILENAME closer-mop) (NAME dbi FILENAME dbi)
@@ -31,5 +32,5 @@ rec {
     DEPENDENCIES
     (alexandria bordeaux-threads closer-mop dbi dissect rove split-sequence
      trivial-gray-streams trivial-types)
-    VERSION cl-dbi-20200610-git SIBLINGS
+    VERSION cl-dbi-20210228-git SIBLINGS
     (cl-dbi dbd-mysql dbd-postgres dbd-sqlite3 dbi) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbi.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbi.nix
index b4f9fc45de07..381fd8e70257 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbi.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbi.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "dbi";
-  version = "cl-20200610-git";
+  version = "cl-20210228-git";
 
   parasites = [ "dbi/test" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-mysql" args."cl-postgres" args."closer-mop" args."dbd-mysql" args."dbd-postgres" args."dbd-sqlite3" args."dbi-test" args."rove" args."split-sequence" args."sqlite" args."trivial-garbage" args."trivial-types" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz";
-    sha256 = "1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas";
+    url = "http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz";
+    sha256 = "0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk";
   };
 
   packageName = "dbi";
@@ -20,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM dbi DESCRIPTION Database independent interface for Common Lisp
-    SHA256 1d7hwywcqzqwmr5b42c0mmjq3v3xxd4cwb4fn5k1wd7j6pr0bkas URL
-    http://beta.quicklisp.org/archive/cl-dbi/2020-06-10/cl-dbi-20200610-git.tgz
-    MD5 2caeb911b23327e054986211d6bfea55 NAME dbi FILENAME dbi DEPS
+    SHA256 0yfs7k6samv6q0n1bvscvcck7qg3c4g03qn7i81619q7g2f98jdk URL
+    http://beta.quicklisp.org/archive/cl-dbi/2021-02-28/cl-dbi-20210228-git.tgz
+    MD5 7cfb5ad172bc30906ae32ca620099a1f NAME dbi FILENAME dbi DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cl-mysql FILENAME cl-mysql) (NAME cl-postgres FILENAME cl-postgres)
@@ -37,5 +38,5 @@ rec {
     (alexandria bordeaux-threads cl-mysql cl-postgres closer-mop dbd-mysql
      dbd-postgres dbd-sqlite3 dbi-test rove split-sequence sqlite
      trivial-garbage trivial-types)
-    VERSION cl-20200610-git SIBLINGS
+    VERSION cl-20210228-git SIBLINGS
     (cl-dbi dbd-mysql dbd-postgres dbd-sqlite3 dbi-test) PARASITES (dbi/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbus.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbus.nix
index b5ebe86a190c..40d89b3769c6 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbus.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dbus.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "dbus";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix
index d5af479b22c8..b7b7cf0eadc7 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "dexador";
-  version = "20200427-git";
+  version = "20210228-git";
 
   description = "Yet another HTTP client for Common Lisp";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."chipz" args."chunga" args."cl_plus_ssl" args."cl-base64" args."cl-cookie" args."cl-ppcre" args."cl-reexport" args."cl-utilities" args."fast-http" args."fast-io" args."flexi-streams" args."local-time" args."proc-parse" args."quri" args."smart-buffer" args."split-sequence" args."static-vectors" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."trivial-mimes" args."usocket" args."xsubseq" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/dexador/2020-04-27/dexador-20200427-git.tgz";
-    sha256 = "0qy8x47ni270dzwscy86nkwfzn491w2jqwyg57dm6w8lkjzwpgld";
+    url = "http://beta.quicklisp.org/archive/dexador/2021-02-28/dexador-20210228-git.tgz";
+    sha256 = "0glzvi7nbr58izpwr8xzxvlcc78zmgwqaik374rmcy6w89q5ksw7";
   };
 
   packageName = "dexador";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM dexador DESCRIPTION Yet another HTTP client for Common Lisp SHA256
-    0qy8x47ni270dzwscy86nkwfzn491w2jqwyg57dm6w8lkjzwpgld URL
-    http://beta.quicklisp.org/archive/dexador/2020-04-27/dexador-20200427-git.tgz
-    MD5 1c418ff2381f1fe128cde8c121effecb NAME dexador FILENAME dexador DEPS
+    0glzvi7nbr58izpwr8xzxvlcc78zmgwqaik374rmcy6w89q5ksw7 URL
+    http://beta.quicklisp.org/archive/dexador/2021-02-28/dexador-20210228-git.tgz
+    MD5 e3b69c8ceb78d99351e574c40dfd0e12 NAME dexador FILENAME dexador DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cffi FILENAME cffi) (NAME cffi-grovel FILENAME cffi-grovel)
@@ -47,4 +48,4 @@ rec {
      fast-http fast-io flexi-streams local-time proc-parse quri smart-buffer
      split-sequence static-vectors trivial-features trivial-garbage
      trivial-gray-streams trivial-mimes usocket xsubseq)
-    VERSION 20200427-git SIBLINGS (dexador-test) PARASITES NIL) */
+    VERSION 20210228-git SIBLINGS (dexador-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dissect.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dissect.nix
index 54f55a4d3ef5..def4eac0ad41 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dissect.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dissect.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "dissect";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/djula.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/djula.nix
index 7010a186bfcf..e89255c9ec8d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/djula.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/djula.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "djula";
-  version = "20201016-git";
+  version = "20210124-git";
 
   description = "An implementation of Django templates for Common Lisp.";
 
   deps = [ args."access" args."alexandria" args."anaphora" args."arnesi" args."babel" args."cl-annot" args."cl-interpol" args."cl-locale" args."cl-ppcre" args."cl-slice" args."cl-syntax" args."cl-syntax-annot" args."cl-unicode" args."closer-mop" args."collectors" args."flexi-streams" args."gettext" args."iterate" args."let-plus" args."local-time" args."named-readtables" args."parser-combinators" args."split-sequence" args."symbol-munger" args."trivial-backtrace" args."trivial-features" args."trivial-gray-streams" args."trivial-types" args."yacc" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/djula/2020-10-16/djula-20201016-git.tgz";
-    sha256 = "09j9wmvs3vgx291p11dclrpwx0dqknazzadikg2320nv7a29zgiy";
+    url = "http://beta.quicklisp.org/archive/djula/2021-01-24/djula-20210124-git.tgz";
+    sha256 = "0hkyp5himz73r2l3vbwkwsd1as4f75ih6wh7v1wbabpbjwh2j2vx";
   };
 
   packageName = "djula";
@@ -19,9 +20,9 @@ rec {
 }
 /* (SYSTEM djula DESCRIPTION
     An implementation of Django templates for Common Lisp. SHA256
-    09j9wmvs3vgx291p11dclrpwx0dqknazzadikg2320nv7a29zgiy URL
-    http://beta.quicklisp.org/archive/djula/2020-10-16/djula-20201016-git.tgz
-    MD5 524843c7ff05d01dcb19a10eb793e967 NAME djula FILENAME djula DEPS
+    0hkyp5himz73r2l3vbwkwsd1as4f75ih6wh7v1wbabpbjwh2j2vx URL
+    http://beta.quicklisp.org/archive/djula/2021-01-24/djula-20210124-git.tgz
+    MD5 33ab6232122ccb88a53c51517b0c2bba NAME djula FILENAME djula DEPS
     ((NAME access FILENAME access) (NAME alexandria FILENAME alexandria)
      (NAME anaphora FILENAME anaphora) (NAME arnesi FILENAME arnesi)
      (NAME babel FILENAME babel) (NAME cl-annot FILENAME cl-annot)
@@ -50,4 +51,4 @@ rec {
      named-readtables parser-combinators split-sequence symbol-munger
      trivial-backtrace trivial-features trivial-gray-streams trivial-types
      yacc)
-    VERSION 20201016-git SIBLINGS (djula-demo djula-test) PARASITES NIL) */
+    VERSION 20210124-git SIBLINGS (djula-demo djula-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/do-urlencode.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/do-urlencode.nix
index 09a27df91e02..4b79b85b5c54 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/do-urlencode.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/do-urlencode.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "do-urlencode";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/documentation-utils.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/documentation-utils.nix
index 27e05af70be0..1bb6460a0f3d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/documentation-utils.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/documentation-utils.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "documentation-utils";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/drakma.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/drakma.nix
index 7ba2b4f9a37f..3317af329566 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/drakma.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/drakma.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "drakma";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/eager-future2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/eager-future2.nix
new file mode 100644
index 000000000000..58009dee0d79
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/eager-future2.nix
@@ -0,0 +1,31 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "eager-future2";
+  version = "20191130-git";
+
+  description = "Parallel programming library providing the futures/promises synchronization mechanism";
+
+  deps = [ args."alexandria" args."bordeaux-threads" args."trivial-garbage" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/eager-future2/2019-11-30/eager-future2-20191130-git.tgz";
+    sha256 = "01pvgcp6d4hz1arpvsv73m8xnbv8qm2d0qychpxc72d0m71p6ks0";
+  };
+
+  packageName = "eager-future2";
+
+  asdFilesToKeep = ["eager-future2.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM eager-future2 DESCRIPTION
+    Parallel programming library providing the futures/promises synchronization mechanism
+    SHA256 01pvgcp6d4hz1arpvsv73m8xnbv8qm2d0qychpxc72d0m71p6ks0 URL
+    http://beta.quicklisp.org/archive/eager-future2/2019-11-30/eager-future2-20191130-git.tgz
+    MD5 72298620b0fb2f874d86d887cce4acf0 NAME eager-future2 FILENAME
+    eager-future2 DEPS
+    ((NAME alexandria FILENAME alexandria)
+     (NAME bordeaux-threads FILENAME bordeaux-threads)
+     (NAME trivial-garbage FILENAME trivial-garbage))
+    DEPENDENCIES (alexandria bordeaux-threads trivial-garbage) VERSION
+    20191130-git SIBLINGS (test.eager-future2) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/enchant.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/enchant.nix
index f0bdf6d0376f..15035fe13d58 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/enchant.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/enchant.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "enchant";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/esrap-peg.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/esrap-peg.nix
index 367e268f3447..c1c7e31d3954 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/esrap-peg.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/esrap-peg.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "esrap-peg";
@@ -5,7 +6,7 @@ rec {
 
   description = "A wrapper around Esrap to allow generating Esrap grammars from PEG definitions";
 
-  deps = [ args."alexandria" args."cl-unification" args."esrap" args."iterate" ];
+  deps = [ args."alexandria" args."cl-unification" args."esrap" args."iterate" args."trivial-with-current-source-form" ];
 
   src = fetchurl {
     url = "http://beta.quicklisp.org/archive/esrap-peg/2019-10-07/esrap-peg-20191007-git.tgz";
@@ -24,6 +25,9 @@ rec {
     MD5 48d87d3118febeefc23ca3a8dda36fc0 NAME esrap-peg FILENAME esrap-peg DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME cl-unification FILENAME cl-unification) (NAME esrap FILENAME esrap)
-     (NAME iterate FILENAME iterate))
-    DEPENDENCIES (alexandria cl-unification esrap iterate) VERSION 20191007-git
-    SIBLINGS NIL PARASITES NIL) */
+     (NAME iterate FILENAME iterate)
+     (NAME trivial-with-current-source-form FILENAME
+      trivial-with-current-source-form))
+    DEPENDENCIES
+    (alexandria cl-unification esrap iterate trivial-with-current-source-form)
+    VERSION 20191007-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/esrap.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/esrap.nix
index 7eca78ca53e9..4b1590182756 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/esrap.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/esrap.nix
@@ -1,17 +1,18 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "esrap";
-  version = "20200325-git";
+  version = "20201220-git";
 
   parasites = [ "esrap/tests" ];
 
   description = "A Packrat / Parsing Grammar / TDPL parser for Common Lisp.";
 
-  deps = [ args."alexandria" args."fiveam" ];
+  deps = [ args."alexandria" args."fiveam" args."trivial-with-current-source-form" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/esrap/2020-03-25/esrap-20200325-git.tgz";
-    sha256 = "1pwgjsm19nxx8d4iwbn3x7g08r6qyq1vmp9m83m87r53597b3a68";
+    url = "http://beta.quicklisp.org/archive/esrap/2020-12-20/esrap-20201220-git.tgz";
+    sha256 = "0yhi4ay98i81nqv9yjlj321azwmiylsw0afdd6y1c1zflfcrzkrk";
   };
 
   packageName = "esrap";
@@ -21,9 +22,11 @@ rec {
 }
 /* (SYSTEM esrap DESCRIPTION
     A Packrat / Parsing Grammar / TDPL parser for Common Lisp. SHA256
-    1pwgjsm19nxx8d4iwbn3x7g08r6qyq1vmp9m83m87r53597b3a68 URL
-    http://beta.quicklisp.org/archive/esrap/2020-03-25/esrap-20200325-git.tgz
-    MD5 bcc4e07536153072edf1d57f871bc142 NAME esrap FILENAME esrap DEPS
-    ((NAME alexandria FILENAME alexandria) (NAME fiveam FILENAME fiveam))
-    DEPENDENCIES (alexandria fiveam) VERSION 20200325-git SIBLINGS NIL
-    PARASITES (esrap/tests)) */
+    0yhi4ay98i81nqv9yjlj321azwmiylsw0afdd6y1c1zflfcrzkrk URL
+    http://beta.quicklisp.org/archive/esrap/2020-12-20/esrap-20201220-git.tgz
+    MD5 cc33cc8dbc236403f6b285c8eae0ce3b NAME esrap FILENAME esrap DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME fiveam FILENAME fiveam)
+     (NAME trivial-with-current-source-form FILENAME
+      trivial-with-current-source-form))
+    DEPENDENCIES (alexandria fiveam trivial-with-current-source-form) VERSION
+    20201220-git SIBLINGS NIL PARASITES (esrap/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/external-program.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/external-program.nix
index f0936fe5c4bf..4ddd869b7366 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/external-program.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/external-program.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "external-program";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-csv.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-csv.nix
index 8c088a149f7d..b9c375a77097 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-csv.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-csv.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fare-csv";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-mop.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-mop.nix
index 929f0f820bd3..34b3ec905b28 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-mop.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-mop.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fare-mop";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-extras.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-extras.nix
index 1b9be4dea1a4..0c114fda8d1d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-extras.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-extras.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fare-quasiquote-extras";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-optima.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-optima.nix
index 2f1c97bbb6ba..d02dd9c1da03 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-optima.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-optima.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fare-quasiquote-optima";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-readtable.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-readtable.nix
index 47c7c3851bd2..c33a841f1636 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-readtable.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote-readtable.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fare-quasiquote-readtable";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote.nix
index 3560c48fee36..d5d65c1d3d13 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-quasiquote.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fare-quasiquote";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-utils.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-utils.nix
index b4e77dad9129..9f332bee601e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-utils.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fare-utils.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fare-utils";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fast-http.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fast-http.nix
index 345b94124d90..48e4dd7c4051 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fast-http.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fast-http.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fast-http";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fast-io.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fast-io.nix
index 22ccfd78de9c..8bb1327d91d3 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fast-io.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fast-io.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fast-io";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiasco.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiasco.nix
index ab8118deac5c..53dbce44e1f4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiasco.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiasco.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fiasco";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/file-attributes.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/file-attributes.nix
new file mode 100644
index 000000000000..c6bb4c1baaf0
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/file-attributes.nix
@@ -0,0 +1,34 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "file-attributes";
+  version = "20200925-git";
+
+  description = "Access to file attributes (uid, gid, atime, mtime, mod)";
+
+  deps = [ args."alexandria" args."babel" args."cffi" args."documentation-utils" args."trivial-features" args."trivial-indent" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/file-attributes/2020-09-25/file-attributes-20200925-git.tgz";
+    sha256 = "0wq3gs36zwl8dzknj3c794l60vg1zpf0siwhd7ad9pn81v3mdan7";
+  };
+
+  packageName = "file-attributes";
+
+  asdFilesToKeep = ["file-attributes.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM file-attributes DESCRIPTION
+    Access to file attributes (uid, gid, atime, mtime, mod) SHA256
+    0wq3gs36zwl8dzknj3c794l60vg1zpf0siwhd7ad9pn81v3mdan7 URL
+    http://beta.quicklisp.org/archive/file-attributes/2020-09-25/file-attributes-20200925-git.tgz
+    MD5 368468453cf57ecc29fa75f2a030a738 NAME file-attributes FILENAME
+    file-attributes DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
+     (NAME cffi FILENAME cffi)
+     (NAME documentation-utils FILENAME documentation-utils)
+     (NAME trivial-features FILENAME trivial-features)
+     (NAME trivial-indent FILENAME trivial-indent))
+    DEPENDENCIES
+    (alexandria babel cffi documentation-utils trivial-features trivial-indent)
+    VERSION 20200925-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiveam.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiveam.nix
index d02f9de5b0b5..8f88f6dfe91b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiveam.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiveam.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fiveam";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/flexi-streams.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/flexi-streams.nix
index 328c91cd2bd7..625d86ae69fa 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/flexi-streams.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/flexi-streams.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "flexi-streams";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/form-fiddle.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/form-fiddle.nix
index 56de0edc9c99..9f837c3ae2d6 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/form-fiddle.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/form-fiddle.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "form-fiddle";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fset.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fset.nix
index 20f41296a8ea..51f8a1b95295 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fset.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/fset.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "fset";
@@ -5,9 +6,9 @@ rec {
 
   parasites = [ "fset/test" ];
 
-  description = ''A functional set-theoretic collections library.
+  description = "A functional set-theoretic collections library.
 See: http://www.ergy.com/FSet.html
-'';
+";
 
   deps = [ args."misc-extensions" args."mt19937" args."named-readtables" ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/gettext.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/gettext.nix
index 0a9d812d5fcd..333bdf77b568 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/gettext.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/gettext.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "gettext";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/global-vars.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/global-vars.nix
index a4d135188fe7..2c7bed4fa7b3 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/global-vars.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/global-vars.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "global-vars";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/html-encode.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/html-encode.nix
index 646bcff47209..2e7553da1e5e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/html-encode.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/html-encode.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "html-encode";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/http-body.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/http-body.nix
index 09ba474e5a62..c40df485a190 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/http-body.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/http-body.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "http-body";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_asdf.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_asdf.nix
index ed8b80752d24..af0bc6d848ab 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_asdf.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_asdf.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "hu_dot_dwim_dot_asdf";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix
index 13f4d11fb56e..cee334c9f381 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "hu_dot_dwim_dot_defclass-star";
-  version = "20150709-darcs";
+  version = "stable-git";
 
   description = "Simplify class like definitions with defclass* and friends.";
 
   deps = [ args."hu_dot_dwim_dot_asdf" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/hu.dwim.defclass-star/2015-07-09/hu.dwim.defclass-star-20150709-darcs.tgz";
-    sha256 = "032982lyp0hm0ssxlyh572whi2hr4j1nqkyqlllaj373v0dbs3vs";
+    url = "http://beta.quicklisp.org/archive/hu.dwim.defclass-star/2021-02-28/hu.dwim.defclass-star-stable-git.tgz";
+    sha256 = "1zj4c9pz7y69gclyd7kzf6d6s1r0am49czgvp2axbv7w50j5caf9";
   };
 
   packageName = "hu.dwim.defclass-star";
@@ -19,12 +20,12 @@ rec {
 }
 /* (SYSTEM hu.dwim.defclass-star DESCRIPTION
     Simplify class like definitions with defclass* and friends. SHA256
-    032982lyp0hm0ssxlyh572whi2hr4j1nqkyqlllaj373v0dbs3vs URL
-    http://beta.quicklisp.org/archive/hu.dwim.defclass-star/2015-07-09/hu.dwim.defclass-star-20150709-darcs.tgz
-    MD5 e37f386dca8f789fb2e303a1914f0415 NAME hu.dwim.defclass-star FILENAME
+    1zj4c9pz7y69gclyd7kzf6d6s1r0am49czgvp2axbv7w50j5caf9 URL
+    http://beta.quicklisp.org/archive/hu.dwim.defclass-star/2021-02-28/hu.dwim.defclass-star-stable-git.tgz
+    MD5 adb295fecbe4570f4c03dbd857b2ddbc NAME hu.dwim.defclass-star FILENAME
     hu_dot_dwim_dot_defclass-star DEPS
     ((NAME hu.dwim.asdf FILENAME hu_dot_dwim_dot_asdf)) DEPENDENCIES
-    (hu.dwim.asdf) VERSION 20150709-darcs SIBLINGS
+    (hu.dwim.asdf) VERSION stable-git SIBLINGS
     (hu.dwim.defclass-star+contextl hu.dwim.defclass-star+hu.dwim.def+contextl
      hu.dwim.defclass-star+hu.dwim.def hu.dwim.defclass-star+swank
      hu.dwim.defclass-star.documentation hu.dwim.defclass-star.test)
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil.nix
index af6529582a46..a6188cd76762 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "hu_dot_dwim_dot_stefil";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hunchentoot.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hunchentoot.nix
index 883d75549008..9bada7ef5667 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hunchentoot.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/hunchentoot.nix
@@ -1,16 +1,17 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "hunchentoot";
   version = "v1.3.0";
 
-  parasites = [ "hunchentoot-test" ];
+  parasites = [ "hunchentoot-dev" "hunchentoot-test" ];
 
-  description = ''Hunchentoot is a HTTP server based on USOCKET and
+  description = "Hunchentoot is a HTTP server based on USOCKET and
   BORDEAUX-THREADS.  It supports HTTP 1.1, serves static files, has a
   simple framework for user-defined handlers and can be extended
-  through subclassing.'';
+  through subclassing.";
 
-  deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."chunga" args."cl_plus_ssl" args."cl-base64" args."cl-fad" args."cl-ppcre" args."cl-who" args."drakma" args."flexi-streams" args."md5" args."rfc2388" args."split-sequence" args."trivial-backtrace" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."usocket" ];
+  deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."chunga" args."cl_plus_ssl" args."cl-base64" args."cl-fad" args."cl-ppcre" args."cl-who" args."cxml-stp" args."drakma" args."flexi-streams" args."md5" args."rfc2388" args."split-sequence" args."swank" args."trivial-backtrace" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."usocket" args."xpath" ];
 
   src = fetchurl {
     url = "http://beta.quicklisp.org/archive/hunchentoot/2020-06-10/hunchentoot-v1.3.0.tgz";
@@ -36,18 +37,18 @@ rec {
      (NAME cffi FILENAME cffi) (NAME chunga FILENAME chunga)
      (NAME cl+ssl FILENAME cl_plus_ssl) (NAME cl-base64 FILENAME cl-base64)
      (NAME cl-fad FILENAME cl-fad) (NAME cl-ppcre FILENAME cl-ppcre)
-     (NAME cl-who FILENAME cl-who) (NAME drakma FILENAME drakma)
-     (NAME flexi-streams FILENAME flexi-streams) (NAME md5 FILENAME md5)
-     (NAME rfc2388 FILENAME rfc2388)
-     (NAME split-sequence FILENAME split-sequence)
+     (NAME cl-who FILENAME cl-who) (NAME cxml-stp FILENAME cxml-stp)
+     (NAME drakma FILENAME drakma) (NAME flexi-streams FILENAME flexi-streams)
+     (NAME md5 FILENAME md5) (NAME rfc2388 FILENAME rfc2388)
+     (NAME split-sequence FILENAME split-sequence) (NAME swank FILENAME swank)
      (NAME trivial-backtrace FILENAME trivial-backtrace)
      (NAME trivial-features FILENAME trivial-features)
      (NAME trivial-garbage FILENAME trivial-garbage)
      (NAME trivial-gray-streams FILENAME trivial-gray-streams)
-     (NAME usocket FILENAME usocket))
+     (NAME usocket FILENAME usocket) (NAME xpath FILENAME xpath))
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi chunga cl+ssl cl-base64 cl-fad
-     cl-ppcre cl-who drakma flexi-streams md5 rfc2388 split-sequence
-     trivial-backtrace trivial-features trivial-garbage trivial-gray-streams
-     usocket)
-    VERSION v1.3.0 SIBLINGS NIL PARASITES (hunchentoot-test)) */
+     cl-ppcre cl-who cxml-stp drakma flexi-streams md5 rfc2388 split-sequence
+     swank trivial-backtrace trivial-features trivial-garbage
+     trivial-gray-streams usocket xpath)
+    VERSION v1.3.0 SIBLINGS NIL PARASITES (hunchentoot-dev hunchentoot-test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/idna.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/idna.nix
index 8c3ffe879c4d..87cef0b0bf7d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/idna.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/idna.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "idna";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ieee-floats.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ieee-floats.nix
index 2544cd99dffc..4ab0fce5ae3d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ieee-floats.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ieee-floats.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "ieee-floats";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/inferior-shell.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/inferior-shell.nix
index 5aa30e92cdca..979ecf4ec095 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/inferior-shell.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/inferior-shell.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "inferior-shell";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/introspect-environment.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/introspect-environment.nix
index 4590e55ffd6a..ce21348d5965 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/introspect-environment.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/introspect-environment.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "introspect-environment";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib.nix
index 8d547d93b593..283adb2c07ce 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "iolib";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_asdf.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_asdf.nix
index b4136a5dc86b..717637f14557 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_asdf.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_asdf.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "iolib_dot_asdf";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_base.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_base.nix
index 97763556c1ad..82fdc26ecf73 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_base.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_base.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "iolib_dot_base";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_common-lisp.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_common-lisp.nix
index 2482a76453b9..2a87869fda08 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_common-lisp.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_common-lisp.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "iolib_dot_common-lisp";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_conf.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_conf.nix
index d9d055fab062..a35f7a0ebb7b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_conf.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_conf.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "iolib_dot_conf";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_grovel.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_grovel.nix
index 5e7df7a5c76f..89f889419f1c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_grovel.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_dot_grovel.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "iolib_dot_grovel";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ironclad.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ironclad.nix
index 48e7595f3e06..c511435ac9c3 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ironclad.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ironclad.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "ironclad";
-  version = "v0.51";
+  version = "v0.54";
 
   parasites = [ "ironclad/tests" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."rt" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/ironclad/2020-09-25/ironclad-v0.51.tgz";
-    sha256 = "0zfazyvg91fxr9gm195qwwf1y5qdci7i1cwzpv0fggxhylpkswrn";
+    url = "http://beta.quicklisp.org/archive/ironclad/2021-01-24/ironclad-v0.54.tgz";
+    sha256 = "01mpsnjx8cgn3wx2n0dkv8v83z93da9zrxncn58ghbpyq3z1i4w2";
   };
 
   packageName = "ironclad";
@@ -21,10 +22,10 @@ rec {
 }
 /* (SYSTEM ironclad DESCRIPTION
     A cryptographic toolkit written in pure Common Lisp SHA256
-    0zfazyvg91fxr9gm195qwwf1y5qdci7i1cwzpv0fggxhylpkswrn URL
-    http://beta.quicklisp.org/archive/ironclad/2020-09-25/ironclad-v0.51.tgz
-    MD5 23b0b6a654bceca511e100fdc976e107 NAME ironclad FILENAME ironclad DEPS
+    01mpsnjx8cgn3wx2n0dkv8v83z93da9zrxncn58ghbpyq3z1i4w2 URL
+    http://beta.quicklisp.org/archive/ironclad/2021-01-24/ironclad-v0.54.tgz
+    MD5 f99610509e4603aac66d9aa03ede2770 NAME ironclad FILENAME ironclad DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads) (NAME rt FILENAME rt))
-    DEPENDENCIES (alexandria bordeaux-threads rt) VERSION v0.51 SIBLINGS
+    DEPENDENCIES (alexandria bordeaux-threads rt) VERSION v0.54 SIBLINGS
     (ironclad-text) PARASITES (ironclad/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iterate.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iterate.nix
index d82d371ca0cd..ff72add872fc 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iterate.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/iterate.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "iterate";
-  version = "20200610-git";
+  version = "20210228-git";
 
   parasites = [ "iterate/tests" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/iterate/2020-06-10/iterate-20200610-git.tgz";
-    sha256 = "0xz3v321b8zgjsgak432frs0gmpr2n24sf5gq97qnqvwqfn4infb";
+    url = "http://beta.quicklisp.org/archive/iterate/2021-02-28/iterate-20210228-git.tgz";
+    sha256 = "1bd6m1lxmd6an75z7j61sms4v54bfxmg1n1w7zd7fm2kb15vai46";
   };
 
   packageName = "iterate";
@@ -21,8 +22,8 @@ rec {
 }
 /* (SYSTEM iterate DESCRIPTION
     Jonathan Amsterdam's iterator/gatherer/accumulator facility SHA256
-    0xz3v321b8zgjsgak432frs0gmpr2n24sf5gq97qnqvwqfn4infb URL
-    http://beta.quicklisp.org/archive/iterate/2020-06-10/iterate-20200610-git.tgz
-    MD5 289e02704d6312910d07601bc563f0a5 NAME iterate FILENAME iterate DEPS NIL
-    DEPENDENCIES NIL VERSION 20200610-git SIBLINGS NIL PARASITES
+    1bd6m1lxmd6an75z7j61sms4v54bfxmg1n1w7zd7fm2kb15vai46 URL
+    http://beta.quicklisp.org/archive/iterate/2021-02-28/iterate-20210228-git.tgz
+    MD5 16a4d7811ffc0f4a1cc45257c4cefd1d NAME iterate FILENAME iterate DEPS NIL
+    DEPENDENCIES NIL VERSION 20210228-git SIBLINGS NIL PARASITES
     (iterate/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jonathan.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jonathan.nix
index 547a909c0673..3e8e74d9e2bb 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jonathan.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jonathan.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "jonathan";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jpl-queues.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jpl-queues.nix
new file mode 100644
index 000000000000..0100a58a44da
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jpl-queues.nix
@@ -0,0 +1,32 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "jpl-queues";
+  version = "0.1";
+
+  description = "A few different kinds of queues, with optional
+multithreading synchronization.";
+
+  deps = [ args."alexandria" args."bordeaux-threads" args."jpl-util" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/jpl-queues/2010-10-06/jpl-queues-0.1.tgz";
+    sha256 = "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96";
+  };
+
+  packageName = "jpl-queues";
+
+  asdFilesToKeep = ["jpl-queues.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM jpl-queues DESCRIPTION A few different kinds of queues, with optional
+multithreading synchronization.
+    SHA256 1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96 URL
+    http://beta.quicklisp.org/archive/jpl-queues/2010-10-06/jpl-queues-0.1.tgz
+    MD5 7c3d14c955db0a5c8ece2b9409333ce0 NAME jpl-queues FILENAME jpl-queues
+    DEPS
+    ((NAME alexandria FILENAME alexandria)
+     (NAME bordeaux-threads FILENAME bordeaux-threads)
+     (NAME jpl-util FILENAME jpl-util))
+    DEPENDENCIES (alexandria bordeaux-threads jpl-util) VERSION 0.1 SIBLINGS
+    NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jpl-util.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jpl-util.nix
new file mode 100644
index 000000000000..d05ddd8527ef
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/jpl-util.nix
@@ -0,0 +1,25 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "jpl-util";
+  version = "cl-20151031-git";
+
+  description = "Sundry utilities for J.P. Larocque.";
+
+  deps = [ ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cl-jpl-util/2015-10-31/cl-jpl-util-20151031-git.tgz";
+    sha256 = "1a3sfamgrqgsf0ql3fkbpmjbs837v1b3nxqxp4mkisp6yxanmhzx";
+  };
+
+  packageName = "jpl-util";
+
+  asdFilesToKeep = ["jpl-util.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM jpl-util DESCRIPTION Sundry utilities for J.P. Larocque. SHA256
+    1a3sfamgrqgsf0ql3fkbpmjbs837v1b3nxqxp4mkisp6yxanmhzx URL
+    http://beta.quicklisp.org/archive/cl-jpl-util/2015-10-31/cl-jpl-util-20151031-git.tgz
+    MD5 e294bedace729724873e7633b8265a00 NAME jpl-util FILENAME jpl-util DEPS
+    NIL DEPENDENCIES NIL VERSION cl-20151031-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/kmrcl.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/kmrcl.nix
index d785fbd2257b..87358d518fbc 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/kmrcl.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/kmrcl.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "kmrcl";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-component.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-component.nix
index 2af6575754a0..bfa7ac47fb82 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-component.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-component.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lack-component";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-middleware-backtrace.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-middleware-backtrace.nix
index edadaa07c148..d9aba5ac0e1c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-middleware-backtrace.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-middleware-backtrace.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lack-middleware-backtrace";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-util.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-util.nix
index ad8bdc84b597..485262156302 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-util.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-util.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lack-util";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack.nix
index 06f596509a6f..427f63cb3dd6 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lack";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/let-plus.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/let-plus.nix
index 791c7f0a2d2a..d7032122ee78 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/let-plus.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/let-plus.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "let-plus";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lev.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lev.nix
index e4bbb44a4682..13cb18cfc7f0 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lev.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lev.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lev";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-client.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-client.nix
index 448f41e5b51b..113766e11ba1 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-client.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-client.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lfarm-client";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-common.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-common.nix
index fc92bbe89b43..5e0170a5867d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-common.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-common.nix
@@ -1,10 +1,11 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lfarm-common";
   version = "lfarm-20150608-git";
 
-  description = ''(private) Common components of lfarm, a library for distributing
-work across machines.'';
+  description = "(private) Common components of lfarm, a library for distributing
+work across machines.";
 
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-store" args."flexi-streams" args."split-sequence" args."trivial-gray-streams" args."usocket" ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-server.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-server.nix
index 5cc5cc1e9da2..5bef53f9f85e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-server.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-server.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lfarm-server";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-ssl.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-ssl.nix
index 0ba638611c15..dbe2b527e3a7 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-ssl.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lfarm-ssl.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lfarm-ssl";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lift.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lift.nix
index c0e4f0caee35..b48a569de3d2 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lift.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lift.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lift";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lisp-namespace.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lisp-namespace.nix
index 80b0431799b1..b2c7de33c0df 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lisp-namespace.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lisp-namespace.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lisp-namespace";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lisp-unit2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lisp-unit2.nix
index 12d82701e086..7f0b22de69a9 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lisp-unit2.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lisp-unit2.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lisp-unit2";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/local-time.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/local-time.nix
index 9bf7ea7fa14a..c2788badfc71 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/local-time.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/local-time.nix
@@ -1,17 +1,18 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "local-time";
-  version = "20200925-git";
+  version = "20210124-git";
 
   parasites = [ "local-time/test" ];
 
   description = "A library for manipulating dates and times, based on a paper by Erik Naggum";
 
-  deps = [ args."stefil" args."uiop" ];
+  deps = [ args."hu_dot_dwim_dot_stefil" args."uiop" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/local-time/2020-09-25/local-time-20200925-git.tgz";
-    sha256 = "0rr2bs93vhj7ngplw85572jfx8250fr2iki8y9spxmfz1sldm12f";
+    url = "http://beta.quicklisp.org/archive/local-time/2021-01-24/local-time-20210124-git.tgz";
+    sha256 = "0bz5z0rd8gfd22bpqkalaijxlrk806zc010cvgd4qjapbrxzjg3s";
   };
 
   packageName = "local-time";
@@ -21,9 +22,11 @@ rec {
 }
 /* (SYSTEM local-time DESCRIPTION
     A library for manipulating dates and times, based on a paper by Erik Naggum
-    SHA256 0rr2bs93vhj7ngplw85572jfx8250fr2iki8y9spxmfz1sldm12f URL
-    http://beta.quicklisp.org/archive/local-time/2020-09-25/local-time-20200925-git.tgz
-    MD5 81f29e965b234a498840ff38d0002048 NAME local-time FILENAME local-time
-    DEPS ((NAME stefil FILENAME stefil) (NAME uiop FILENAME uiop)) DEPENDENCIES
-    (stefil uiop) VERSION 20200925-git SIBLINGS (cl-postgres+local-time)
-    PARASITES (local-time/test)) */
+    SHA256 0bz5z0rd8gfd22bpqkalaijxlrk806zc010cvgd4qjapbrxzjg3s URL
+    http://beta.quicklisp.org/archive/local-time/2021-01-24/local-time-20210124-git.tgz
+    MD5 631d67bc84ae838792717b256f2cdbaf NAME local-time FILENAME local-time
+    DEPS
+    ((NAME hu.dwim.stefil FILENAME hu_dot_dwim_dot_stefil)
+     (NAME uiop FILENAME uiop))
+    DEPENDENCIES (hu.dwim.stefil uiop) VERSION 20210124-git SIBLINGS
+    (cl-postgres+local-time) PARASITES (local-time/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/log4cl.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/log4cl.nix
index e4b4795fe0b9..17606d4d88cb 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/log4cl.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/log4cl.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "log4cl";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lparallel.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lparallel.nix
index 73b42c3fc9af..accedb38f3fc 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lparallel.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lparallel.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lparallel";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lquery.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lquery.nix
index e287b7519a63..823ef5bf3372 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lquery.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/lquery.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "lquery";
-  version = "20200715-git";
+  version = "20201220-git";
 
   description = "A library to allow jQuery-like HTML/DOM manipulation.";
 
   deps = [ args."array-utils" args."clss" args."documentation-utils" args."form-fiddle" args."plump" args."trivial-indent" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/lquery/2020-07-15/lquery-20200715-git.tgz";
-    sha256 = "1akj9yzz71733yfbqq9jig0zkx8brphzh35d8zzic0469idd3rcd";
+    url = "http://beta.quicklisp.org/archive/lquery/2020-12-20/lquery-20201220-git.tgz";
+    sha256 = "0mfnk1p73aihraklw802j5mjgc8cjxva0mdf0c4p7b253crf15jx";
   };
 
   packageName = "lquery";
@@ -19,13 +20,13 @@ rec {
 }
 /* (SYSTEM lquery DESCRIPTION
     A library to allow jQuery-like HTML/DOM manipulation. SHA256
-    1akj9yzz71733yfbqq9jig0zkx8brphzh35d8zzic0469idd3rcd URL
-    http://beta.quicklisp.org/archive/lquery/2020-07-15/lquery-20200715-git.tgz
-    MD5 38e282ac02c6a1ce9bc28bd9c1deee34 NAME lquery FILENAME lquery DEPS
+    0mfnk1p73aihraklw802j5mjgc8cjxva0mdf0c4p7b253crf15jx URL
+    http://beta.quicklisp.org/archive/lquery/2020-12-20/lquery-20201220-git.tgz
+    MD5 a71685848959cf33cd6963b4a5f9e2ed NAME lquery FILENAME lquery DEPS
     ((NAME array-utils FILENAME array-utils) (NAME clss FILENAME clss)
      (NAME documentation-utils FILENAME documentation-utils)
      (NAME form-fiddle FILENAME form-fiddle) (NAME plump FILENAME plump)
      (NAME trivial-indent FILENAME trivial-indent))
     DEPENDENCIES
     (array-utils clss documentation-utils form-fiddle plump trivial-indent)
-    VERSION 20200715-git SIBLINGS (lquery-test) PARASITES NIL) */
+    VERSION 20201220-git SIBLINGS (lquery-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/map-set.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/map-set.nix
index fd6213f30768..32d897b33043 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/map-set.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/map-set.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "map-set";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/marshal.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/marshal.nix
index 94b8e64bfb47..e9e5ed5f1d16 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/marshal.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/marshal.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "marshal";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/md5.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/md5.nix
index 845c235d49d4..f42948ae26b2 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/md5.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/md5.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "md5";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/metabang-bind.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/metabang-bind.nix
index 993f36392033..51c361f112b7 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/metabang-bind.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/metabang-bind.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "metabang-bind";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/metatilities-base.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/metatilities-base.nix
index bf553ddf3700..af0e3d8090a9 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/metatilities-base.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/metatilities-base.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "metatilities-base";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix
index 33cc8bc90bfa..53896192b52e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix
@@ -1,18 +1,19 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "mgl-pax";
-  version = "20201016-git";
+  version = "20210228-git";
 
   parasites = [ "mgl-pax/test" ];
 
-  description = ''Exploratory programming tool and documentation
-  generator.'';
+  description = "Exploratory programming tool and documentation
+  generator.";
 
-  deps = [ args."_3bmd" args."_3bmd-ext-code-blocks" args."alexandria" args."babel" args."bordeaux-threads" args."cl-fad" args."colorize" args."esrap" args."html-encode" args."ironclad" args."named-readtables" args."pythonic-string-reader" args."split-sequence" args."swank" args."trivial-features" ];
+  deps = [ args."_3bmd" args."_3bmd-ext-code-blocks" args."alexandria" args."babel" args."bordeaux-threads" args."cl-fad" args."colorize" args."esrap" args."html-encode" args."ironclad" args."named-readtables" args."pythonic-string-reader" args."split-sequence" args."swank" args."trivial-features" args."trivial-with-current-source-form" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/mgl-pax/2020-10-16/mgl-pax-20201016-git.tgz";
-    sha256 = "0n48fw4a21sqy491bfi9fygrjl9psrryw00iha40dxy2ww86s6li";
+    url = "http://beta.quicklisp.org/archive/mgl-pax/2021-02-28/mgl-pax-20210228-git.tgz";
+    sha256 = "1dyhbnd69lb6ih89pvg8nn6pwsg25v5xjsfk1i5l1fdib14612cw";
   };
 
   packageName = "mgl-pax";
@@ -22,9 +23,9 @@ rec {
 }
 /* (SYSTEM mgl-pax DESCRIPTION Exploratory programming tool and documentation
   generator.
-    SHA256 0n48fw4a21sqy491bfi9fygrjl9psrryw00iha40dxy2ww86s6li URL
-    http://beta.quicklisp.org/archive/mgl-pax/2020-10-16/mgl-pax-20201016-git.tgz
-    MD5 131fc5e8d8b86dc769917e468f502727 NAME mgl-pax FILENAME mgl-pax DEPS
+    SHA256 1dyhbnd69lb6ih89pvg8nn6pwsg25v5xjsfk1i5l1fdib14612cw URL
+    http://beta.quicklisp.org/archive/mgl-pax/2021-02-28/mgl-pax-20210228-git.tgz
+    MD5 a256ce4ee76d669d233ee09830ef7968 NAME mgl-pax FILENAME mgl-pax DEPS
     ((NAME 3bmd FILENAME _3bmd)
      (NAME 3bmd-ext-code-blocks FILENAME _3bmd-ext-code-blocks)
      (NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
@@ -35,9 +36,12 @@ rec {
      (NAME named-readtables FILENAME named-readtables)
      (NAME pythonic-string-reader FILENAME pythonic-string-reader)
      (NAME split-sequence FILENAME split-sequence) (NAME swank FILENAME swank)
-     (NAME trivial-features FILENAME trivial-features))
+     (NAME trivial-features FILENAME trivial-features)
+     (NAME trivial-with-current-source-form FILENAME
+      trivial-with-current-source-form))
     DEPENDENCIES
     (3bmd 3bmd-ext-code-blocks alexandria babel bordeaux-threads cl-fad
      colorize esrap html-encode ironclad named-readtables
-     pythonic-string-reader split-sequence swank trivial-features)
-    VERSION 20201016-git SIBLINGS NIL PARASITES (mgl-pax/test)) */
+     pythonic-string-reader split-sequence swank trivial-features
+     trivial-with-current-source-form)
+    VERSION 20210228-git SIBLINGS NIL PARASITES (mgl-pax/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/misc-extensions.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/misc-extensions.nix
index 163f85182e58..db7349e4d092 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/misc-extensions.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/misc-extensions.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "misc-extensions";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mk-string-metrics.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mk-string-metrics.nix
index 3bd71c00d94f..d150d97cb40d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mk-string-metrics.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mk-string-metrics.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "mk-string-metrics";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/moptilities.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/moptilities.nix
index 458acc6e94e5..02e8ff0f84ca 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/moptilities.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/moptilities.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "moptilities";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/more-conditions.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/more-conditions.nix
index 40460f6d71c6..3d2cd35b3088 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/more-conditions.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/more-conditions.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "more-conditions";
@@ -5,8 +6,8 @@ rec {
 
   parasites = [ "more-conditions/test" ];
 
-  description = ''This system provides some generic condition classes in
-                conjunction with support functions and macros.'';
+  description = "This system provides some generic condition classes in
+                conjunction with support functions and macros.";
 
   deps = [ args."alexandria" args."closer-mop" args."fiveam" args."let-plus" ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mt19937.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mt19937.nix
index a5628dddeca4..55451e02e5d0 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mt19937.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mt19937.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "mt19937";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/myway.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/myway.nix
index cb35cd2c4ef1..3538b723d1f0 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/myway.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/myway.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "myway";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/named-readtables.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/named-readtables.nix
index 9479bf85d012..7f2fcc47454a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/named-readtables.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/named-readtables.nix
@@ -1,18 +1,19 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "named-readtables";
-  version = "20200925-git";
+  version = "20210124-git";
 
   parasites = [ "named-readtables/test" ];
 
-  description = ''Library that creates a namespace for named readtable
-  akin to the namespace of packages.'';
+  description = "Library that creates a namespace for named readtable
+  akin to the namespace of packages.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/named-readtables/2020-09-25/named-readtables-20200925-git.tgz";
-    sha256 = "0klbvv2syv8a8agacxdjrmmhibvhgfbxxwv6k4hx0ifk6n5iazxl";
+    url = "http://beta.quicklisp.org/archive/named-readtables/2021-01-24/named-readtables-20210124-git.tgz";
+    sha256 = "00lbcv1qdb9ldq2kbf1rkn5sh657px9dgqrcynbwjzvla4czadl4";
   };
 
   packageName = "named-readtables";
@@ -23,8 +24,8 @@ rec {
 /* (SYSTEM named-readtables DESCRIPTION
     Library that creates a namespace for named readtable
   akin to the namespace of packages.
-    SHA256 0klbvv2syv8a8agacxdjrmmhibvhgfbxxwv6k4hx0ifk6n5iazxl URL
-    http://beta.quicklisp.org/archive/named-readtables/2020-09-25/named-readtables-20200925-git.tgz
-    MD5 b17873ea600fb6847537c2c584761c29 NAME named-readtables FILENAME
-    named-readtables DEPS NIL DEPENDENCIES NIL VERSION 20200925-git SIBLINGS
+    SHA256 00lbcv1qdb9ldq2kbf1rkn5sh657px9dgqrcynbwjzvla4czadl4 URL
+    http://beta.quicklisp.org/archive/named-readtables/2021-01-24/named-readtables-20210124-git.tgz
+    MD5 a4f2ae5f9715ec2c42cd164d15a0c918 NAME named-readtables FILENAME
+    named-readtables DEPS NIL DEPENDENCIES NIL VERSION 20210124-git SIBLINGS
     NIL PARASITES (named-readtables/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/net-telent-date.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/net-telent-date.nix
index 0bb4d755d628..77e07108e630 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/net-telent-date.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/net-telent-date.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "net-telent-date";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/net_dot_didierverna_dot_asdf-flv.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/net_dot_didierverna_dot_asdf-flv.nix
index 039277bcc0ee..bb64756fecd8 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/net_dot_didierverna_dot_asdf-flv.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/net_dot_didierverna_dot_asdf-flv.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "net_dot_didierverna_dot_asdf-flv";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/nibbles.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/nibbles.nix
index f6fbd1e1b63a..2ddf0b73fbfe 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/nibbles.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/nibbles.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "nibbles";
-  version = "20200925-git";
+  version = "20210124-git";
 
   parasites = [ "nibbles/tests" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."rt" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/nibbles/2020-09-25/nibbles-20200925-git.tgz";
-    sha256 = "14k9hg8kmzwcb9b5aiwqhimc0zmcs3xp8q29sck8zklf8ziqaqb4";
+    url = "http://beta.quicklisp.org/archive/nibbles/2021-01-24/nibbles-20210124-git.tgz";
+    sha256 = "0y3h4k7665w7b8ivmql9w6rz3ivfa3h8glk45sn6mwix55xmzp26";
   };
 
   packageName = "nibbles";
@@ -21,8 +22,8 @@ rec {
 }
 /* (SYSTEM nibbles DESCRIPTION
     A library for accessing octet-addressed blocks of data in big- and little-endian orders
-    SHA256 14k9hg8kmzwcb9b5aiwqhimc0zmcs3xp8q29sck8zklf8ziqaqb4 URL
-    http://beta.quicklisp.org/archive/nibbles/2020-09-25/nibbles-20200925-git.tgz
-    MD5 2e6275cac23e28e24a25201d7d6e4ae2 NAME nibbles FILENAME nibbles DEPS
-    ((NAME rt FILENAME rt)) DEPENDENCIES (rt) VERSION 20200925-git SIBLINGS NIL
+    SHA256 0y3h4k7665w7b8ivmql9w6rz3ivfa3h8glk45sn6mwix55xmzp26 URL
+    http://beta.quicklisp.org/archive/nibbles/2021-01-24/nibbles-20210124-git.tgz
+    MD5 e37b58da46b4756006e790e658f35ea8 NAME nibbles FILENAME nibbles DEPS
+    ((NAME rt FILENAME rt)) DEPENDENCIES (rt) VERSION 20210124-git SIBLINGS NIL
     PARASITES (nibbles/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/optima.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/optima.nix
index 487fd2c50aa5..0c4684d0508b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/optima.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/optima.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "optima";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/osicat.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/osicat.nix
index bc7f59d5fb79..3609e2304164 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/osicat.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/osicat.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "osicat";
-  version = "20200925-git";
+  version = "20210228-git";
 
   parasites = [ "osicat/tests" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."babel" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."rt" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/osicat/2020-09-25/osicat-20200925-git.tgz";
-    sha256 = "191ncd5arfx6i9cw3iny4a473wsrr3dpv2lwb9jr02p6qpmqwysk";
+    url = "http://beta.quicklisp.org/archive/osicat/2021-02-28/osicat-20210228-git.tgz";
+    sha256 = "0g9frahjr2i6fvwd3bzvcz9icx4n4mnwcmsz6gvg5s6wmq5ny6wb";
   };
 
   packageName = "osicat";
@@ -20,13 +21,13 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM osicat DESCRIPTION A lightweight operating system interface SHA256
-    191ncd5arfx6i9cw3iny4a473wsrr3dpv2lwb9jr02p6qpmqwysk URL
-    http://beta.quicklisp.org/archive/osicat/2020-09-25/osicat-20200925-git.tgz
-    MD5 5d0a254f2b8041a71fa6fa90eabaed70 NAME osicat FILENAME osicat DEPS
+    0g9frahjr2i6fvwd3bzvcz9icx4n4mnwcmsz6gvg5s6wmq5ny6wb URL
+    http://beta.quicklisp.org/archive/osicat/2021-02-28/osicat-20210228-git.tgz
+    MD5 22c1b81abfe4fb30a2789877d2f85a86 NAME osicat FILENAME osicat DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME cffi FILENAME cffi) (NAME cffi-grovel FILENAME cffi-grovel)
      (NAME cffi-toolchain FILENAME cffi-toolchain) (NAME rt FILENAME rt)
      (NAME trivial-features FILENAME trivial-features))
     DEPENDENCIES
     (alexandria babel cffi cffi-grovel cffi-toolchain rt trivial-features)
-    VERSION 20200925-git SIBLINGS NIL PARASITES (osicat/tests)) */
+    VERSION 20210228-git SIBLINGS NIL PARASITES (osicat/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parenscript.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parenscript.nix
index 952b9cbdf0d6..cfe7128da390 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parenscript.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parenscript.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "parenscript";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parse-declarations-1_dot_0.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parse-declarations-1_dot_0.nix
index 3e59fcfa5f28..3d8ae2cf82b5 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parse-declarations-1_dot_0.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parse-declarations-1_dot_0.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "parse-declarations-1_dot_0";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parse-number.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parse-number.nix
index a4b9488a34ac..44e936637219 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parse-number.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parse-number.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "parse-number";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parser-combinators.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parser-combinators.nix
index 391f04bd767b..ae109ef3dca5 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parser-combinators.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parser-combinators.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "parser-combinators";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parser_dot_common-rules.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parser_dot_common-rules.nix
index d438d4b157b6..07d600b3a32b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parser_dot_common-rules.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/parser_dot_common-rules.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "parser_dot_common-rules";
@@ -7,7 +8,7 @@ rec {
 
   description = "Provides common parsing rules that are useful in many grammars.";
 
-  deps = [ args."alexandria" args."anaphora" args."esrap" args."fiveam" args."let-plus" args."split-sequence" ];
+  deps = [ args."alexandria" args."anaphora" args."esrap" args."fiveam" args."let-plus" args."split-sequence" args."trivial-with-current-source-form" ];
 
   src = fetchurl {
     url = "http://beta.quicklisp.org/archive/parser.common-rules/2020-07-15/parser.common-rules-20200715-git.tgz";
@@ -28,7 +29,11 @@ rec {
     ((NAME alexandria FILENAME alexandria) (NAME anaphora FILENAME anaphora)
      (NAME esrap FILENAME esrap) (NAME fiveam FILENAME fiveam)
      (NAME let-plus FILENAME let-plus)
-     (NAME split-sequence FILENAME split-sequence))
-    DEPENDENCIES (alexandria anaphora esrap fiveam let-plus split-sequence)
+     (NAME split-sequence FILENAME split-sequence)
+     (NAME trivial-with-current-source-form FILENAME
+      trivial-with-current-source-form))
+    DEPENDENCIES
+    (alexandria anaphora esrap fiveam let-plus split-sequence
+     trivial-with-current-source-form)
     VERSION 20200715-git SIBLINGS (parser.common-rules.operators) PARASITES
     (parser.common-rules/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pcall-queue.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pcall-queue.nix
index a60f3f377b5d..8de944a0c0a0 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pcall-queue.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pcall-queue.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "pcall-queue";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pcall.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pcall.nix
index 6b3ef96ca1cc..085d284451e9 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pcall.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pcall.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "pcall";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/plump.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/plump.nix
index a82c9c54c637..ef0817fbe7ca 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/plump.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/plump.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "plump";
-  version = "20200427-git";
+  version = "20210124-git";
 
   description = "An XML / XHTML / HTML parser that aims to be as lenient as possible.";
 
   deps = [ args."array-utils" args."documentation-utils" args."trivial-indent" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/plump/2020-04-27/plump-20200427-git.tgz";
-    sha256 = "0l5bi503djjkhrih94h5jbihlm60h267qm2ycq9m9fldp4fjrjic";
+    url = "http://beta.quicklisp.org/archive/plump/2021-01-24/plump-20210124-git.tgz";
+    sha256 = "0br64xiz4mgmmsvkfmi43k2q16rmc6hbqf976x8cdafs3h266jdm";
   };
 
   packageName = "plump";
@@ -19,11 +20,11 @@ rec {
 }
 /* (SYSTEM plump DESCRIPTION
     An XML / XHTML / HTML parser that aims to be as lenient as possible. SHA256
-    0l5bi503djjkhrih94h5jbihlm60h267qm2ycq9m9fldp4fjrjic URL
-    http://beta.quicklisp.org/archive/plump/2020-04-27/plump-20200427-git.tgz
-    MD5 f9244ce58ee5cf5044092369e534f3b7 NAME plump FILENAME plump DEPS
+    0br64xiz4mgmmsvkfmi43k2q16rmc6hbqf976x8cdafs3h266jdm URL
+    http://beta.quicklisp.org/archive/plump/2021-01-24/plump-20210124-git.tgz
+    MD5 44a5d371dd1c3d4afc6b8801926b059a NAME plump FILENAME plump DEPS
     ((NAME array-utils FILENAME array-utils)
      (NAME documentation-utils FILENAME documentation-utils)
      (NAME trivial-indent FILENAME trivial-indent))
     DEPENDENCIES (array-utils documentation-utils trivial-indent) VERSION
-    20200427-git SIBLINGS (plump-dom plump-lexer plump-parser) PARASITES NIL) */
+    20210124-git SIBLINGS (plump-dom plump-lexer plump-parser) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix
index 32345ee367a9..f530d71eb687 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix
@@ -1,17 +1,18 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "postmodern";
-  version = "20201016-git";
+  version = "20210124-git";
 
   parasites = [ "postmodern/tests" ];
 
   description = "PostgreSQL programming API";
 
-  deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-postgres" args."cl-postgres_slash_tests" args."cl-ppcre" args."cl-unicode" args."closer-mop" args."fiveam" args."flexi-streams" args."global-vars" args."ironclad" args."md5" args."s-sql" args."s-sql_slash_tests" args."simple-date" args."simple-date_slash_postgres-glue" args."split-sequence" args."uax-15" args."usocket" ];
+  deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-postgres" args."cl-postgres_plus_local-time" args."cl-postgres_slash_tests" args."cl-ppcre" args."cl-unicode" args."closer-mop" args."fiveam" args."flexi-streams" args."global-vars" args."ironclad" args."local-time" args."md5" args."s-sql" args."s-sql_slash_tests" args."simple-date" args."simple-date_slash_postgres-glue" args."split-sequence" args."uax-15" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2020-10-16/postmodern-20201016-git.tgz";
-    sha256 = "1svaiksbqcaq8sh7q6sj9kzazdfl360zqr2nzhwbgy4xnaj4vf3n";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz";
+    sha256 = "1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc";
   };
 
   packageName = "postmodern";
@@ -20,29 +21,30 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM postmodern DESCRIPTION PostgreSQL programming API SHA256
-    1svaiksbqcaq8sh7q6sj9kzazdfl360zqr2nzhwbgy4xnaj4vf3n URL
-    http://beta.quicklisp.org/archive/postmodern/2020-10-16/postmodern-20201016-git.tgz
-    MD5 f61e827d7e7ba023f6fbc7c2667de4c8 NAME postmodern FILENAME postmodern
+    1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc URL
+    http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz
+    MD5 05c2c5f4d2354a5fa69a32b7b96f8ff8 NAME postmodern FILENAME postmodern
     DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cl-base64 FILENAME cl-base64)
      (NAME cl-postgres FILENAME cl-postgres)
+     (NAME cl-postgres+local-time FILENAME cl-postgres_plus_local-time)
      (NAME cl-postgres/tests FILENAME cl-postgres_slash_tests)
      (NAME cl-ppcre FILENAME cl-ppcre) (NAME cl-unicode FILENAME cl-unicode)
      (NAME closer-mop FILENAME closer-mop) (NAME fiveam FILENAME fiveam)
      (NAME flexi-streams FILENAME flexi-streams)
      (NAME global-vars FILENAME global-vars) (NAME ironclad FILENAME ironclad)
-     (NAME md5 FILENAME md5) (NAME s-sql FILENAME s-sql)
-     (NAME s-sql/tests FILENAME s-sql_slash_tests)
+     (NAME local-time FILENAME local-time) (NAME md5 FILENAME md5)
+     (NAME s-sql FILENAME s-sql) (NAME s-sql/tests FILENAME s-sql_slash_tests)
      (NAME simple-date FILENAME simple-date)
      (NAME simple-date/postgres-glue FILENAME simple-date_slash_postgres-glue)
      (NAME split-sequence FILENAME split-sequence)
      (NAME uax-15 FILENAME uax-15) (NAME usocket FILENAME usocket))
     DEPENDENCIES
-    (alexandria bordeaux-threads cl-base64 cl-postgres cl-postgres/tests
-     cl-ppcre cl-unicode closer-mop fiveam flexi-streams global-vars ironclad
-     md5 s-sql s-sql/tests simple-date simple-date/postgres-glue split-sequence
-     uax-15 usocket)
-    VERSION 20201016-git SIBLINGS (cl-postgres s-sql simple-date) PARASITES
+    (alexandria bordeaux-threads cl-base64 cl-postgres cl-postgres+local-time
+     cl-postgres/tests cl-ppcre cl-unicode closer-mop fiveam flexi-streams
+     global-vars ironclad local-time md5 s-sql s-sql/tests simple-date
+     simple-date/postgres-glue split-sequence uax-15 usocket)
+    VERSION 20210124-git SIBLINGS (cl-postgres s-sql simple-date) PARASITES
     (postmodern/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/proc-parse.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/proc-parse.nix
index 8cb24f674fde..cf13ad3e4c6f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/proc-parse.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/proc-parse.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "proc-parse";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/prove-asdf.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/prove-asdf.nix
index 379fbbbe9ac0..3342d9ac8452 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/prove-asdf.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/prove-asdf.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "prove-asdf";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/prove.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/prove.nix
index 9bb12d3e3c08..5bb82db7a9b8 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/prove.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/prove.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "prove";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ptester.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ptester.nix
index fef37625dd0d..312da100b915 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ptester.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ptester.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "ptester";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/puri.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/puri.nix
index b349fccd6d37..fc5b609ba7d5 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/puri.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/puri.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "puri";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pythonic-string-reader.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pythonic-string-reader.nix
index ff6cdb460e7a..10809743daf4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pythonic-string-reader.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/pythonic-string-reader.nix
@@ -1,10 +1,11 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "pythonic-string-reader";
   version = "20180711-git";
 
-  description = ''A simple and unintrusive read table modification that allows for
-simple string literal definition that doesn't require escaping characters.'';
+  description = "A simple and unintrusive read table modification that allows for
+simple string literal definition that doesn't require escaping characters.";
 
   deps = [ args."named-readtables" ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/query-fs.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/query-fs.nix
index 1cac12f86000..fca9989ccb4a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/query-fs.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/query-fs.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "query-fs";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/quri.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/quri.nix
index a38d024ea88f..12ea17a3491b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/quri.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/quri.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "quri";
-  version = "20200610-git";
+  version = "20210228-git";
 
   description = "Yet another URI library for Common Lisp";
 
   deps = [ args."alexandria" args."babel" args."cl-utilities" args."split-sequence" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/quri/2020-06-10/quri-20200610-git.tgz";
-    sha256 = "1qv8x1m6m70jczvydfq9ws5zw3jw6y74s607vfrqaf0ck5rrwsk6";
+    url = "http://beta.quicklisp.org/archive/quri/2021-02-28/quri-20210228-git.tgz";
+    sha256 = "03hq6x715kv37c089b73f6j8b0f4ywhxr37wbw9any2jcgrswx0g";
   };
 
   packageName = "quri";
@@ -18,13 +19,13 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM quri DESCRIPTION Yet another URI library for Common Lisp SHA256
-    1qv8x1m6m70jczvydfq9ws5zw3jw6y74s607vfrqaf0ck5rrwsk6 URL
-    http://beta.quicklisp.org/archive/quri/2020-06-10/quri-20200610-git.tgz MD5
-    409b559ce780952f1349b2abeaf47235 NAME quri FILENAME quri DEPS
+    03hq6x715kv37c089b73f6j8b0f4ywhxr37wbw9any2jcgrswx0g URL
+    http://beta.quicklisp.org/archive/quri/2021-02-28/quri-20210228-git.tgz MD5
+    67eac028850cc2539c076d31b049f7bd NAME quri FILENAME quri DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME cl-utilities FILENAME cl-utilities)
      (NAME split-sequence FILENAME split-sequence)
      (NAME trivial-features FILENAME trivial-features))
     DEPENDENCIES
     (alexandria babel cl-utilities split-sequence trivial-features) VERSION
-    20200610-git SIBLINGS (quri-test) PARASITES NIL) */
+    20210228-git SIBLINGS (quri-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rfc2388.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rfc2388.nix
index bc94b7fe3de7..503136d7566e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rfc2388.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rfc2388.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "rfc2388";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rove.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rove.nix
index 91e94b2cc736..aab36e3abc6e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rove.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rove.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "rove";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rt.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rt.nix
index 7a53315daf66..cfc37364baae 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rt.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/rt.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "rt";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix
index d4397b822171..d6ac95810a48 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "s-sql";
-  version = "postmodern-20201016-git";
+  version = "postmodern-20210124-git";
 
   parasites = [ "s-sql/tests" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-postgres" args."cl-postgres_slash_tests" args."cl-ppcre" args."cl-unicode" args."closer-mop" args."fiveam" args."global-vars" args."ironclad" args."md5" args."postmodern" args."split-sequence" args."uax-15" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2020-10-16/postmodern-20201016-git.tgz";
-    sha256 = "1svaiksbqcaq8sh7q6sj9kzazdfl360zqr2nzhwbgy4xnaj4vf3n";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz";
+    sha256 = "1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc";
   };
 
   packageName = "s-sql";
@@ -20,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM s-sql DESCRIPTION Lispy DSL for SQL SHA256
-    1svaiksbqcaq8sh7q6sj9kzazdfl360zqr2nzhwbgy4xnaj4vf3n URL
-    http://beta.quicklisp.org/archive/postmodern/2020-10-16/postmodern-20201016-git.tgz
-    MD5 f61e827d7e7ba023f6fbc7c2667de4c8 NAME s-sql FILENAME s-sql DEPS
+    1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc URL
+    http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz
+    MD5 05c2c5f4d2354a5fa69a32b7b96f8ff8 NAME s-sql FILENAME s-sql DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cl-base64 FILENAME cl-base64)
@@ -38,5 +39,5 @@ rec {
     (alexandria bordeaux-threads cl-base64 cl-postgres cl-postgres/tests
      cl-ppcre cl-unicode closer-mop fiveam global-vars ironclad md5 postmodern
      split-sequence uax-15 usocket)
-    VERSION postmodern-20201016-git SIBLINGS
+    VERSION postmodern-20210124-git SIBLINGS
     (cl-postgres postmodern simple-date) PARASITES (s-sql/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sysdeps.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sysdeps.nix
index 3d9e001dde4f..fb69a001543a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sysdeps.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sysdeps.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "s-sysdeps";
-  version = "20200427-git";
+  version = "20210228-git";
 
   description = "An abstraction layer over platform dependent functionality";
 
   deps = [ args."alexandria" args."bordeaux-threads" args."split-sequence" args."usocket" args."usocket-server" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/s-sysdeps/2020-04-27/s-sysdeps-20200427-git.tgz";
-    sha256 = "04dhi0mibqz4i1jly9i6lrd9lf93i25k2f0hba1sqis3x6sm38zy";
+    url = "http://beta.quicklisp.org/archive/s-sysdeps/2021-02-28/s-sysdeps-20210228-git.tgz";
+    sha256 = "0pybgicif1qavvix9183g4ahjrgcax3qf2ab523cas8l79lr1xkw";
   };
 
   packageName = "s-sysdeps";
@@ -19,9 +20,9 @@ rec {
 }
 /* (SYSTEM s-sysdeps DESCRIPTION
     An abstraction layer over platform dependent functionality SHA256
-    04dhi0mibqz4i1jly9i6lrd9lf93i25k2f0hba1sqis3x6sm38zy URL
-    http://beta.quicklisp.org/archive/s-sysdeps/2020-04-27/s-sysdeps-20200427-git.tgz
-    MD5 2dc062fc985cd3063ef3eddfc544e578 NAME s-sysdeps FILENAME s-sysdeps DEPS
+    0pybgicif1qavvix9183g4ahjrgcax3qf2ab523cas8l79lr1xkw URL
+    http://beta.quicklisp.org/archive/s-sysdeps/2021-02-28/s-sysdeps-20210228-git.tgz
+    MD5 25d8c1673457341bf60a20752fe59772 NAME s-sysdeps FILENAME s-sysdeps DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME split-sequence FILENAME split-sequence)
@@ -29,4 +30,4 @@ rec {
      (NAME usocket-server FILENAME usocket-server))
     DEPENDENCIES
     (alexandria bordeaux-threads split-sequence usocket usocket-server) VERSION
-    20200427-git SIBLINGS NIL PARASITES NIL) */
+    20210228-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-xml.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-xml.nix
index 08bd208a89fa..260f5a9ff1bf 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-xml.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-xml.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "s-xml";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/salza2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/salza2.nix
index f5f294cfdbbc..d7b495a40e93 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/salza2.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/salza2.nix
@@ -1,10 +1,11 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "salza2";
   version = "2.0.9";
 
-  description = ''Create compressed data in the ZLIB, DEFLATE, or GZIP
-  data formats'';
+  description = "Create compressed data in the ZLIB, DEFLATE, or GZIP
+  data formats";
 
   deps = [ ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix
index 143a8fad1df2..cab4e8c14946 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "serapeum";
-  version = "20201016-git";
+  version = "20210228-git";
 
   description = "Utilities beyond Alexandria.";
 
-  deps = [ args."alexandria" args."bordeaux-threads" args."closer-mop" args."fare-quasiquote" args."fare-quasiquote-extras" args."fare-quasiquote-optima" args."fare-quasiquote-readtable" args."fare-utils" args."global-vars" args."introspect-environment" args."iterate" args."lisp-namespace" args."named-readtables" args."parse-declarations-1_dot_0" args."parse-number" args."split-sequence" args."string-case" args."trivia" args."trivia_dot_balland2006" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_quasiquote" args."trivia_dot_trivial" args."trivial-cltl2" args."trivial-file-size" args."trivial-garbage" args."trivial-macroexpand-all" args."type-i" args."uiop" ];
+  deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."closer-mop" args."fare-quasiquote" args."fare-quasiquote-extras" args."fare-quasiquote-optima" args."fare-quasiquote-readtable" args."fare-utils" args."global-vars" args."introspect-environment" args."iterate" args."lisp-namespace" args."named-readtables" args."parse-declarations-1_dot_0" args."parse-number" args."split-sequence" args."string-case" args."trivia" args."trivia_dot_balland2006" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_quasiquote" args."trivia_dot_trivial" args."trivial-cltl2" args."trivial-features" args."trivial-file-size" args."trivial-garbage" args."trivial-macroexpand-all" args."type-i" args."uiop" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/serapeum/2020-10-16/serapeum-20201016-git.tgz";
-    sha256 = "0rbxa0r75jxkhisyjwjh7zn7m1450k58sc9g68bgkj0fsjvr44sq";
+    url = "http://beta.quicklisp.org/archive/serapeum/2021-02-28/serapeum-20210228-git.tgz";
+    sha256 = "1dici8bmvrx5h74disrlvwns8f8jl746i4cyzyclswhv208x2m3x";
   };
 
   packageName = "serapeum";
@@ -18,10 +19,10 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM serapeum DESCRIPTION Utilities beyond Alexandria. SHA256
-    0rbxa0r75jxkhisyjwjh7zn7m1450k58sc9g68bgkj0fsjvr44sq URL
-    http://beta.quicklisp.org/archive/serapeum/2020-10-16/serapeum-20201016-git.tgz
-    MD5 1281652013f4ef5a67ffd5c6e8d44fe9 NAME serapeum FILENAME serapeum DEPS
-    ((NAME alexandria FILENAME alexandria)
+    1dici8bmvrx5h74disrlvwns8f8jl746i4cyzyclswhv208x2m3x URL
+    http://beta.quicklisp.org/archive/serapeum/2021-02-28/serapeum-20210228-git.tgz
+    MD5 25502093ea13851021422000686a54b7 NAME serapeum FILENAME serapeum DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME closer-mop FILENAME closer-mop)
      (NAME fare-quasiquote FILENAME fare-quasiquote)
@@ -45,16 +46,18 @@ rec {
      (NAME trivia.quasiquote FILENAME trivia_dot_quasiquote)
      (NAME trivia.trivial FILENAME trivia_dot_trivial)
      (NAME trivial-cltl2 FILENAME trivial-cltl2)
+     (NAME trivial-features FILENAME trivial-features)
      (NAME trivial-file-size FILENAME trivial-file-size)
      (NAME trivial-garbage FILENAME trivial-garbage)
      (NAME trivial-macroexpand-all FILENAME trivial-macroexpand-all)
      (NAME type-i FILENAME type-i) (NAME uiop FILENAME uiop))
     DEPENDENCIES
-    (alexandria bordeaux-threads closer-mop fare-quasiquote
+    (alexandria babel bordeaux-threads closer-mop fare-quasiquote
      fare-quasiquote-extras fare-quasiquote-optima fare-quasiquote-readtable
      fare-utils global-vars introspect-environment iterate lisp-namespace
      named-readtables parse-declarations-1.0 parse-number split-sequence
      string-case trivia trivia.balland2006 trivia.level0 trivia.level1
      trivia.level2 trivia.quasiquote trivia.trivial trivial-cltl2
-     trivial-file-size trivial-garbage trivial-macroexpand-all type-i uiop)
-    VERSION 20201016-git SIBLINGS NIL PARASITES NIL) */
+     trivial-features trivial-file-size trivial-garbage trivial-macroexpand-all
+     type-i uiop)
+    VERSION 20210228-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date-time.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date-time.nix
index 31f818a8e69d..83466bf1d98e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date-time.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date-time.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "simple-date-time";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix
index c4bae5608ae9..d861d72cccde 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "simple-date";
-  version = "postmodern-20201016-git";
+  version = "postmodern-20210124-git";
 
   parasites = [ "simple-date/tests" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."fiveam" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2020-10-16/postmodern-20201016-git.tgz";
-    sha256 = "1svaiksbqcaq8sh7q6sj9kzazdfl360zqr2nzhwbgy4xnaj4vf3n";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz";
+    sha256 = "1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc";
   };
 
   packageName = "simple-date";
@@ -21,9 +22,9 @@ rec {
 }
 /* (SYSTEM simple-date DESCRIPTION
     Simple date library that can be used with postmodern SHA256
-    1svaiksbqcaq8sh7q6sj9kzazdfl360zqr2nzhwbgy4xnaj4vf3n URL
-    http://beta.quicklisp.org/archive/postmodern/2020-10-16/postmodern-20201016-git.tgz
-    MD5 f61e827d7e7ba023f6fbc7c2667de4c8 NAME simple-date FILENAME simple-date
+    1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc URL
+    http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz
+    MD5 05c2c5f4d2354a5fa69a32b7b96f8ff8 NAME simple-date FILENAME simple-date
     DEPS ((NAME fiveam FILENAME fiveam)) DEPENDENCIES (fiveam) VERSION
-    postmodern-20201016-git SIBLINGS (cl-postgres postmodern s-sql) PARASITES
+    postmodern-20210124-git SIBLINGS (cl-postgres postmodern s-sql) PARASITES
     (simple-date/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-tasks.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-tasks.nix
index 596e509608a0..0c4f1ac8617f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-tasks.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-tasks.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "simple-tasks";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/smart-buffer.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/smart-buffer.nix
index 18d669225a3d..84f59fef7c9b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/smart-buffer.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/smart-buffer.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "smart-buffer";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/split-sequence.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/split-sequence.nix
index 3971d410441b..af13c59c286e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/split-sequence.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/split-sequence.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "split-sequence";
@@ -5,8 +6,8 @@ rec {
 
   parasites = [ "split-sequence/tests" ];
 
-  description = ''Splits a sequence into a list of subsequences
-  delimited by objects satisfying a test.'';
+  description = "Splits a sequence into a list of subsequences
+  delimited by objects satisfying a test.";
 
   deps = [ args."fiveam" ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/sqlite.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/sqlite.nix
index 145156be45de..8c0773cd45e8 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/sqlite.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/sqlite.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "sqlite";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-vectors.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-vectors.nix
index cf1f1655a361..d72311b3a1cb 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-vectors.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-vectors.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "static-vectors";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stefil.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stefil.nix
index a4a688e1243c..dca0fc4dd981 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stefil.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stefil.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "stefil";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/str.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/str.nix
index 5fff3b8c5687..b352c476e081 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/str.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/str.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "str";
-  version = "cl-20200925-git";
+  version = "cl-20210124-git";
 
   description = "Modern, consistent and terse Common Lisp string manipulation library.";
 
   deps = [ args."cl-change-case" args."cl-ppcre" args."cl-ppcre-unicode" args."cl-unicode" args."flexi-streams" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-str/2020-09-25/cl-str-20200925-git.tgz";
-    sha256 = "06k81x80vjw7qd8gca6lnm5k5ws40c6kl99s7m4z72v7jxwa9ykn";
+    url = "http://beta.quicklisp.org/archive/cl-str/2021-01-24/cl-str-20210124-git.tgz";
+    sha256 = "07y24mx8gmhwz6px63llgsz15aqicqa4m8gd5zwxy708xggv73jc";
   };
 
   packageName = "str";
@@ -19,9 +20,9 @@ rec {
 }
 /* (SYSTEM str DESCRIPTION
     Modern, consistent and terse Common Lisp string manipulation library.
-    SHA256 06k81x80vjw7qd8gca6lnm5k5ws40c6kl99s7m4z72v7jxwa9ykn URL
-    http://beta.quicklisp.org/archive/cl-str/2020-09-25/cl-str-20200925-git.tgz
-    MD5 885f94c2be768818ca2fd5e5d562b789 NAME str FILENAME str DEPS
+    SHA256 07y24mx8gmhwz6px63llgsz15aqicqa4m8gd5zwxy708xggv73jc URL
+    http://beta.quicklisp.org/archive/cl-str/2021-01-24/cl-str-20210124-git.tgz
+    MD5 afd5d3e1078bef872b0507215855397e NAME str FILENAME str DEPS
     ((NAME cl-change-case FILENAME cl-change-case)
      (NAME cl-ppcre FILENAME cl-ppcre)
      (NAME cl-ppcre-unicode FILENAME cl-ppcre-unicode)
@@ -29,4 +30,4 @@ rec {
      (NAME flexi-streams FILENAME flexi-streams))
     DEPENDENCIES
     (cl-change-case cl-ppcre cl-ppcre-unicode cl-unicode flexi-streams) VERSION
-    cl-20200925-git SIBLINGS (str.test) PARASITES NIL) */
+    cl-20210124-git SIBLINGS (str.test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/string-case.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/string-case.nix
index 616d3aa88b69..05ca089dbf44 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/string-case.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/string-case.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "string-case";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix
index fe13a7d8c175..f59a9d34e3db 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "stumpwm";
-  version = "20201016-git";
+  version = "20210228-git";
 
   description = "A tiling, keyboard driven window manager";
 
   deps = [ args."alexandria" args."cl-ppcre" args."clx" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/stumpwm/2020-10-16/stumpwm-20201016-git.tgz";
-    sha256 = "06lc1d9y83x0ckqd9pls7a1dyriz650mpv1rigncr02qsj3aqpp2";
+    url = "http://beta.quicklisp.org/archive/stumpwm/2021-02-28/stumpwm-20210228-git.tgz";
+    sha256 = "0vfhn90vfyhlbjkfkzx0i7i6qh79p9q4c4hhsym80niz508xw5v8";
   };
 
   packageName = "stumpwm";
@@ -18,10 +19,10 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM stumpwm DESCRIPTION A tiling, keyboard driven window manager SHA256
-    06lc1d9y83x0ckqd9pls7a1dyriz650mpv1rigncr02qsj3aqpp2 URL
-    http://beta.quicklisp.org/archive/stumpwm/2020-10-16/stumpwm-20201016-git.tgz
-    MD5 fe99208b03be907ad75b0ed388e171c3 NAME stumpwm FILENAME stumpwm DEPS
+    0vfhn90vfyhlbjkfkzx0i7i6qh79p9q4c4hhsym80niz508xw5v8 URL
+    http://beta.quicklisp.org/archive/stumpwm/2021-02-28/stumpwm-20210228-git.tgz
+    MD5 0506bcd0951463ea45cebfdb5ce76511 NAME stumpwm FILENAME stumpwm DEPS
     ((NAME alexandria FILENAME alexandria) (NAME cl-ppcre FILENAME cl-ppcre)
      (NAME clx FILENAME clx))
-    DEPENDENCIES (alexandria cl-ppcre clx) VERSION 20201016-git SIBLINGS
+    DEPENDENCIES (alexandria cl-ppcre clx) VERSION 20210228-git SIBLINGS
     (stumpwm-tests) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/swank.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/swank.nix
index e2f1ba6bd26b..a0cb5e362cc8 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/swank.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/swank.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "swank";
-  version = "slime-v2.26";
+  version = "slime-v2.26.1";
 
   description = "System lacks description";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/slime/2020-09-25/slime-v2.26.tgz";
-    sha256 = "0zba4vm73g9zamhqkqcb0prm51kf4clixm2rjz89mq180qa7rrqc";
+    url = "http://beta.quicklisp.org/archive/slime/2020-12-20/slime-v2.26.1.tgz";
+    sha256 = "12q3la9lwzs01x0ii5vss0i8i78lgyjrn3adr3rs027f4b7386ny";
   };
 
   packageName = "swank";
@@ -18,7 +19,7 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM swank DESCRIPTION System lacks description SHA256
-    0zba4vm73g9zamhqkqcb0prm51kf4clixm2rjz89mq180qa7rrqc URL
-    http://beta.quicklisp.org/archive/slime/2020-09-25/slime-v2.26.tgz MD5
-    8f18fbb04ca96733f683c863b44af484 NAME swank FILENAME swank DEPS NIL
-    DEPENDENCIES NIL VERSION slime-v2.26 SIBLINGS NIL PARASITES NIL) */
+    12q3la9lwzs01x0ii5vss0i8i78lgyjrn3adr3rs027f4b7386ny URL
+    http://beta.quicklisp.org/archive/slime/2020-12-20/slime-v2.26.1.tgz MD5
+    bd91e1fe29a4f7ebf53a0bfecc9e1e36 NAME swank FILENAME swank DEPS NIL
+    DEPENDENCIES NIL VERSION slime-v2.26.1 SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/swap-bytes.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/swap-bytes.nix
index 7c19a2713547..3bb8e5fac10f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/swap-bytes.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/swap-bytes.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "swap-bytes";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/symbol-munger.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/symbol-munger.nix
index 30a4a0bcbb05..51ea4b91e7a7 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/symbol-munger.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/symbol-munger.nix
@@ -1,10 +1,11 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "symbol-munger";
   version = "20150407-git";
 
-  description = ''Functions to convert between the spacing and
-  capitalization conventions of various environments'';
+  description = "Functions to convert between the spacing and
+  capitalization conventions of various environments";
 
   deps = [ args."alexandria" args."iterate" ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia.nix
index bd318dcad1f8..b8c330cc2fd8 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia";
-  version = "20200925-git";
+  version = "20210228-git";
 
   description = "NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase";
 
   deps = [ args."alexandria" args."closer-mop" args."introspect-environment" args."iterate" args."lisp-namespace" args."trivia_dot_balland2006" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_trivial" args."trivial-cltl2" args."type-i" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz";
-    sha256 = "192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
+    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
   };
 
   packageName = "trivia";
@@ -19,9 +20,9 @@ rec {
 }
 /* (SYSTEM trivia DESCRIPTION
     NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase
-    SHA256 192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z URL
-    http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz
-    MD5 c6546ecf272e52e051a9d3946242511b NAME trivia FILENAME trivia DEPS
+    SHA256 0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
+    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
+    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia FILENAME trivia DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME closer-mop FILENAME closer-mop)
      (NAME introspect-environment FILENAME introspect-environment)
@@ -37,7 +38,7 @@ rec {
     (alexandria closer-mop introspect-environment iterate lisp-namespace
      trivia.balland2006 trivia.level0 trivia.level1 trivia.level2
      trivia.trivial trivial-cltl2 type-i)
-    VERSION 20200925-git SIBLINGS
+    VERSION 20210228-git SIBLINGS
     (trivia.balland2006 trivia.benchmark trivia.cffi trivia.level0
      trivia.level1 trivia.level2 trivia.ppcre trivia.quasiquote trivia.test
      trivia.trivial)
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_balland2006.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_balland2006.nix
index 3f66d67eac39..801781dd5a54 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_balland2006.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_balland2006.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_balland2006";
-  version = "trivia-20200925-git";
+  version = "trivia-20210228-git";
 
   description = "Optimizer for Trivia based on (Balland 2006)";
 
   deps = [ args."alexandria" args."closer-mop" args."introspect-environment" args."iterate" args."lisp-namespace" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_trivial" args."trivial-cltl2" args."type-i" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz";
-    sha256 = "192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
+    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
   };
 
   packageName = "trivia.balland2006";
@@ -19,9 +20,9 @@ rec {
 }
 /* (SYSTEM trivia.balland2006 DESCRIPTION
     Optimizer for Trivia based on (Balland 2006) SHA256
-    192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z URL
-    http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz
-    MD5 c6546ecf272e52e051a9d3946242511b NAME trivia.balland2006 FILENAME
+    0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
+    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
+    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.balland2006 FILENAME
     trivia_dot_balland2006 DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME closer-mop FILENAME closer-mop)
@@ -37,7 +38,7 @@ rec {
     (alexandria closer-mop introspect-environment iterate lisp-namespace
      trivia.level0 trivia.level1 trivia.level2 trivia.trivial trivial-cltl2
      type-i)
-    VERSION trivia-20200925-git SIBLINGS
+    VERSION trivia-20210228-git SIBLINGS
     (trivia trivia.benchmark trivia.cffi trivia.level0 trivia.level1
      trivia.level2 trivia.ppcre trivia.quasiquote trivia.test trivia.trivial)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level0.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level0.nix
index d6885e3f500d..327ac0cdf1c4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level0.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level0.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_level0";
-  version = "trivia-20200925-git";
+  version = "trivia-20210228-git";
 
   description = "Bootstrapping Pattern Matching Library for implementing Trivia";
 
   deps = [ args."alexandria" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz";
-    sha256 = "192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
+    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
   };
 
   packageName = "trivia.level0";
@@ -19,11 +20,11 @@ rec {
 }
 /* (SYSTEM trivia.level0 DESCRIPTION
     Bootstrapping Pattern Matching Library for implementing Trivia SHA256
-    192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z URL
-    http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz
-    MD5 c6546ecf272e52e051a9d3946242511b NAME trivia.level0 FILENAME
+    0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
+    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
+    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.level0 FILENAME
     trivia_dot_level0 DEPS ((NAME alexandria FILENAME alexandria)) DEPENDENCIES
-    (alexandria) VERSION trivia-20200925-git SIBLINGS
+    (alexandria) VERSION trivia-20210228-git SIBLINGS
     (trivia trivia.balland2006 trivia.benchmark trivia.cffi trivia.level1
      trivia.level2 trivia.ppcre trivia.quasiquote trivia.test trivia.trivial)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level1.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level1.nix
index d208c06e8b2f..eecb4c17eacd 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level1.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level1.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_level1";
-  version = "trivia-20200925-git";
+  version = "trivia-20210228-git";
 
   description = "Core patterns of Trivia";
 
   deps = [ args."alexandria" args."trivia_dot_level0" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz";
-    sha256 = "192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
+    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
   };
 
   packageName = "trivia.level1";
@@ -18,13 +19,13 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM trivia.level1 DESCRIPTION Core patterns of Trivia SHA256
-    192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z URL
-    http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz
-    MD5 c6546ecf272e52e051a9d3946242511b NAME trivia.level1 FILENAME
+    0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
+    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
+    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.level1 FILENAME
     trivia_dot_level1 DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME trivia.level0 FILENAME trivia_dot_level0))
-    DEPENDENCIES (alexandria trivia.level0) VERSION trivia-20200925-git
+    DEPENDENCIES (alexandria trivia.level0) VERSION trivia-20210228-git
     SIBLINGS
     (trivia trivia.balland2006 trivia.benchmark trivia.cffi trivia.level0
      trivia.level2 trivia.ppcre trivia.quasiquote trivia.test trivia.trivial)
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level2.nix
index c6ce58bceb7d..ec0d99e06be3 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level2.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level2.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_level2";
-  version = "trivia-20200925-git";
+  version = "trivia-20210228-git";
 
   description = "NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase";
 
   deps = [ args."alexandria" args."closer-mop" args."lisp-namespace" args."trivia_dot_level0" args."trivia_dot_level1" args."trivial-cltl2" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz";
-    sha256 = "192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
+    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
   };
 
   packageName = "trivia.level2";
@@ -19,9 +20,9 @@ rec {
 }
 /* (SYSTEM trivia.level2 DESCRIPTION
     NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase
-    SHA256 192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z URL
-    http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz
-    MD5 c6546ecf272e52e051a9d3946242511b NAME trivia.level2 FILENAME
+    SHA256 0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
+    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
+    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.level2 FILENAME
     trivia_dot_level2 DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME closer-mop FILENAME closer-mop)
@@ -32,7 +33,7 @@ rec {
     DEPENDENCIES
     (alexandria closer-mop lisp-namespace trivia.level0 trivia.level1
      trivial-cltl2)
-    VERSION trivia-20200925-git SIBLINGS
+    VERSION trivia-20210228-git SIBLINGS
     (trivia trivia.balland2006 trivia.benchmark trivia.cffi trivia.level0
      trivia.level1 trivia.ppcre trivia.quasiquote trivia.test trivia.trivial)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_quasiquote.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_quasiquote.nix
index 1dd177652577..420e4ae30586 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_quasiquote.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_quasiquote.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_quasiquote";
-  version = "trivia-20200925-git";
+  version = "trivia-20210228-git";
 
   description = "fare-quasiquote extension for trivia";
 
   deps = [ args."alexandria" args."closer-mop" args."fare-quasiquote" args."fare-quasiquote-readtable" args."fare-utils" args."lisp-namespace" args."named-readtables" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_trivial" args."trivial-cltl2" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz";
-    sha256 = "192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
+    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
   };
 
   packageName = "trivia.quasiquote";
@@ -18,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM trivia.quasiquote DESCRIPTION fare-quasiquote extension for trivia
-    SHA256 192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z URL
-    http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz
-    MD5 c6546ecf272e52e051a9d3946242511b NAME trivia.quasiquote FILENAME
+    SHA256 0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
+    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
+    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.quasiquote FILENAME
     trivia_dot_quasiquote DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME closer-mop FILENAME closer-mop)
@@ -38,7 +39,7 @@ rec {
     (alexandria closer-mop fare-quasiquote fare-quasiquote-readtable fare-utils
      lisp-namespace named-readtables trivia.level0 trivia.level1 trivia.level2
      trivia.trivial trivial-cltl2)
-    VERSION trivia-20200925-git SIBLINGS
+    VERSION trivia-20210228-git SIBLINGS
     (trivia trivia.balland2006 trivia.benchmark trivia.cffi trivia.level0
      trivia.level1 trivia.level2 trivia.ppcre trivia.test trivia.trivial)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_trivial.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_trivial.nix
index ef84229d7a07..1173a24c8c60 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_trivial.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_trivial.nix
@@ -1,17 +1,18 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_trivial";
-  version = "trivia-20200925-git";
+  version = "trivia-20210228-git";
 
-  description = ''Base level system of Trivia with a trivial optimizer.
+  description = "Base level system of Trivia with a trivial optimizer.
  Systems that intend to enhance Trivia should depend on this package, not the TRIVIA system,
- in order to avoid the circular dependency.'';
+ in order to avoid the circular dependency.";
 
   deps = [ args."alexandria" args."closer-mop" args."lisp-namespace" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivial-cltl2" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz";
-    sha256 = "192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
+    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
   };
 
   packageName = "trivia.trivial";
@@ -23,9 +24,9 @@ rec {
     Base level system of Trivia with a trivial optimizer.
  Systems that intend to enhance Trivia should depend on this package, not the TRIVIA system,
  in order to avoid the circular dependency.
-    SHA256 192306pdx50nikph36swipdy2xz1jqrr8p9c3bi91m8qws75wi4z URL
-    http://beta.quicklisp.org/archive/trivia/2020-09-25/trivia-20200925-git.tgz
-    MD5 c6546ecf272e52e051a9d3946242511b NAME trivia.trivial FILENAME
+    SHA256 0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
+    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
+    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.trivial FILENAME
     trivia_dot_trivial DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME closer-mop FILENAME closer-mop)
@@ -37,7 +38,7 @@ rec {
     DEPENDENCIES
     (alexandria closer-mop lisp-namespace trivia.level0 trivia.level1
      trivia.level2 trivial-cltl2)
-    VERSION trivia-20200925-git SIBLINGS
+    VERSION trivia-20210228-git SIBLINGS
     (trivia trivia.balland2006 trivia.benchmark trivia.cffi trivia.level0
      trivia.level1 trivia.level2 trivia.ppcre trivia.quasiquote trivia.test)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-backtrace.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-backtrace.nix
index f095ecc223b8..063551bd79f5 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-backtrace.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-backtrace.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-backtrace";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-clipboard.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-clipboard.nix
index c72e79dac511..c7831773a900 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-clipboard.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-clipboard.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-clipboard";
-  version = "20200925-git";
+  version = "20210228-git";
 
   description = "trivial-clipboard let access system clipboard.";
 
   deps = [ args."uiop" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivial-clipboard/2020-09-25/trivial-clipboard-20200925-git.tgz";
-    sha256 = "1aksag9nfklkg0bshd7dxfip4dj9gl3x0cbisgd2c143k2csb1yc";
+    url = "http://beta.quicklisp.org/archive/trivial-clipboard/2021-02-28/trivial-clipboard-20210228-git.tgz";
+    sha256 = "1fmxkz97qrjkc320w849r1411f7j2ghf3g9xh5lczcapgjwq8f0l";
   };
 
   packageName = "trivial-clipboard";
@@ -19,8 +20,8 @@ rec {
 }
 /* (SYSTEM trivial-clipboard DESCRIPTION
     trivial-clipboard let access system clipboard. SHA256
-    1aksag9nfklkg0bshd7dxfip4dj9gl3x0cbisgd2c143k2csb1yc URL
-    http://beta.quicklisp.org/archive/trivial-clipboard/2020-09-25/trivial-clipboard-20200925-git.tgz
-    MD5 4098d356666a3a3a1ff6a45b10e28354 NAME trivial-clipboard FILENAME
+    1fmxkz97qrjkc320w849r1411f7j2ghf3g9xh5lczcapgjwq8f0l URL
+    http://beta.quicklisp.org/archive/trivial-clipboard/2021-02-28/trivial-clipboard-20210228-git.tgz
+    MD5 f147ff33934a3796d89597cea8dbe462 NAME trivial-clipboard FILENAME
     trivial-clipboard DEPS ((NAME uiop FILENAME uiop)) DEPENDENCIES (uiop)
-    VERSION 20200925-git SIBLINGS (trivial-clipboard-test) PARASITES NIL) */
+    VERSION 20210228-git SIBLINGS (trivial-clipboard-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-cltl2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-cltl2.nix
index a73c24e9f5e0..3b72629fa375 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-cltl2.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-cltl2.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-cltl2";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix
index 5988055841c2..272361dadc09 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-features";
-  version = "20200715-git";
+  version = "20210228-git";
 
   description = "Ensures consistent *FEATURES* across multiple CLs.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivial-features/2020-07-15/trivial-features-20200715-git.tgz";
-    sha256 = "0h0xxkp7vciq5yj6a1b5k76h7mzqgb5f9v25nssijgp738nmkni2";
+    url = "http://beta.quicklisp.org/archive/trivial-features/2021-02-28/trivial-features-20210228-git.tgz";
+    sha256 = "1najk88r8nlpbxm8mjfj8b22f9chr9h2hxg9wqz87kkmhg4rfwwj";
   };
 
   packageName = "trivial-features";
@@ -19,8 +20,8 @@ rec {
 }
 /* (SYSTEM trivial-features DESCRIPTION
     Ensures consistent *FEATURES* across multiple CLs. SHA256
-    0h0xxkp7vciq5yj6a1b5k76h7mzqgb5f9v25nssijgp738nmkni2 URL
-    http://beta.quicklisp.org/archive/trivial-features/2020-07-15/trivial-features-20200715-git.tgz
-    MD5 bb88b3e55713474bad3ef90f215f3560 NAME trivial-features FILENAME
-    trivial-features DEPS NIL DEPENDENCIES NIL VERSION 20200715-git SIBLINGS
+    1najk88r8nlpbxm8mjfj8b22f9chr9h2hxg9wqz87kkmhg4rfwwj URL
+    http://beta.quicklisp.org/archive/trivial-features/2021-02-28/trivial-features-20210228-git.tgz
+    MD5 6d628c0c941346773751a684213a52d7 NAME trivial-features FILENAME
+    trivial-features DEPS NIL DEPENDENCIES NIL VERSION 20210228-git SIBLINGS
     (trivial-features-tests) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-file-size.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-file-size.nix
index a06eda6ff186..f37d63b6bbf3 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-file-size.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-file-size.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-file-size";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-garbage.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-garbage.nix
index 7804dc8b9ab6..2a180488dabd 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-garbage.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-garbage.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-garbage";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-gray-streams.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-gray-streams.nix
index 2b763b0480d8..67dba33ed3c6 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-gray-streams.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-gray-streams.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-gray-streams";
-  version = "20200925-git";
+  version = "20210124-git";
 
   description = "Compatibility layer for Gray Streams (see http://www.cliki.net/Gray%20streams).";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivial-gray-streams/2020-09-25/trivial-gray-streams-20200925-git.tgz";
-    sha256 = "1mg31fwjixd04lfqbpzjan3cny1i478xm1a9l3p0i9m4dv4g2k2b";
+    url = "http://beta.quicklisp.org/archive/trivial-gray-streams/2021-01-24/trivial-gray-streams-20210124-git.tgz";
+    sha256 = "0swqcw3649279qyn5lc42xqgi13jc4kd7hf3iasf4vfli8lhb3n6";
   };
 
   packageName = "trivial-gray-streams";
@@ -19,8 +20,8 @@ rec {
 }
 /* (SYSTEM trivial-gray-streams DESCRIPTION
     Compatibility layer for Gray Streams (see http://www.cliki.net/Gray%20streams).
-    SHA256 1mg31fwjixd04lfqbpzjan3cny1i478xm1a9l3p0i9m4dv4g2k2b URL
-    http://beta.quicklisp.org/archive/trivial-gray-streams/2020-09-25/trivial-gray-streams-20200925-git.tgz
-    MD5 123581593fc46fdbf1d631cf8f07e0dd NAME trivial-gray-streams FILENAME
-    trivial-gray-streams DEPS NIL DEPENDENCIES NIL VERSION 20200925-git
+    SHA256 0swqcw3649279qyn5lc42xqgi13jc4kd7hf3iasf4vfli8lhb3n6 URL
+    http://beta.quicklisp.org/archive/trivial-gray-streams/2021-01-24/trivial-gray-streams-20210124-git.tgz
+    MD5 1b93af1cae9f8465d813964db4d10588 NAME trivial-gray-streams FILENAME
+    trivial-gray-streams DEPS NIL DEPENDENCIES NIL VERSION 20210124-git
     SIBLINGS (trivial-gray-streams-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-indent.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-indent.nix
index 42e09023af3f..eb2f217f315a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-indent.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-indent.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-indent";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-macroexpand-all.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-macroexpand-all.nix
index b41649492035..ccf4a4e81ab6 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-macroexpand-all.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-macroexpand-all.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-macroexpand-all";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-main-thread.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-main-thread.nix
index de53bf5bd05e..8c5b3afd0eac 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-main-thread.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-main-thread.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-main-thread";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-mimes.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-mimes.nix
index 36c6e31cc8dd..0d9ae4a6da5a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-mimes.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-mimes.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-mimes";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-package-local-nicknames.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-package-local-nicknames.nix
index 78dcc5163b4b..859f70fe0d6b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-package-local-nicknames.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-package-local-nicknames.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-package-local-nicknames";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-types.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-types.nix
index 83785140dbdf..4c3e920468ea 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-types.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-types.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-types";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-utf-8.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-utf-8.nix
index c38ca16d2ffe..d6b0addde3a9 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-utf-8.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-utf-8.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-utf-8";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-with-current-source-form.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-with-current-source-form.nix
new file mode 100644
index 000000000000..c3a247e53329
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-with-current-source-form.nix
@@ -0,0 +1,28 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "trivial-with-current-source-form";
+  version = "20200427-git";
+
+  description = "Helps macro writers produce better errors for macro users";
+
+  deps = [ args."alexandria" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/trivial-with-current-source-form/2020-04-27/trivial-with-current-source-form-20200427-git.tgz";
+    sha256 = "05zkj42f071zhg7swfyklg44k0zc893c9li9virkigzmvhids84f";
+  };
+
+  packageName = "trivial-with-current-source-form";
+
+  asdFilesToKeep = ["trivial-with-current-source-form.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM trivial-with-current-source-form DESCRIPTION
+    Helps macro writers produce better errors for macro users SHA256
+    05zkj42f071zhg7swfyklg44k0zc893c9li9virkigzmvhids84f URL
+    http://beta.quicklisp.org/archive/trivial-with-current-source-form/2020-04-27/trivial-with-current-source-form-20200427-git.tgz
+    MD5 9a1367a5434664bd1ca2215d06e6d5cf NAME trivial-with-current-source-form
+    FILENAME trivial-with-current-source-form DEPS
+    ((NAME alexandria FILENAME alexandria)) DEPENDENCIES (alexandria) VERSION
+    20200427-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/type-i.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/type-i.nix
index bc08f1683de3..b2effb167cab 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/type-i.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/type-i.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "type-i";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uax-15.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uax-15.nix
index 35754246347c..bb97636b59df 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uax-15.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uax-15.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "uax-15";
-  version = "20200325-git";
+  version = "20210228-git";
 
   parasites = [ "uax-15/tests" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ args."cl-ppcre" args."fiveam" args."split-sequence" args."uiop" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/uax-15/2020-03-25/uax-15-20200325-git.tgz";
-    sha256 = "0nld8a95fy0nfni8g663786cz5q3x63bxymx0jlaknb6lfibb6pc";
+    url = "http://beta.quicklisp.org/archive/uax-15/2021-02-28/uax-15-20210228-git.tgz";
+    sha256 = "1vf590djzyika6200zqw4mbqrajcmv7g5swydimnvk7xqzpa8ksp";
   };
 
   packageName = "uax-15";
@@ -21,10 +22,10 @@ rec {
 }
 /* (SYSTEM uax-15 DESCRIPTION
     Common lisp implementation of Unicode normalization functions :nfc, :nfd, :nfkc and :nfkd (Uax-15)
-    SHA256 0nld8a95fy0nfni8g663786cz5q3x63bxymx0jlaknb6lfibb6pc URL
-    http://beta.quicklisp.org/archive/uax-15/2020-03-25/uax-15-20200325-git.tgz
-    MD5 95b8883fa0e85189f701a40c292b8828 NAME uax-15 FILENAME uax-15 DEPS
+    SHA256 1vf590djzyika6200zqw4mbqrajcmv7g5swydimnvk7xqzpa8ksp URL
+    http://beta.quicklisp.org/archive/uax-15/2021-02-28/uax-15-20210228-git.tgz
+    MD5 b801b3b91cdd57cecf086f1fe5fb31d6 NAME uax-15 FILENAME uax-15 DEPS
     ((NAME cl-ppcre FILENAME cl-ppcre) (NAME fiveam FILENAME fiveam)
      (NAME split-sequence FILENAME split-sequence) (NAME uiop FILENAME uiop))
-    DEPENDENCIES (cl-ppcre fiveam split-sequence uiop) VERSION 20200325-git
+    DEPENDENCIES (cl-ppcre fiveam split-sequence uiop) VERSION 20210228-git
     SIBLINGS NIL PARASITES (uax-15/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uffi.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uffi.nix
index 2c36113658af..222e2634a49f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uffi.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uffi.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "uffi";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uiop.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uiop.nix
index b5a77d6ea345..b2cd8d4aa65b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uiop.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uiop.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "uiop";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unit-test.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unit-test.nix
index 8f54a89416e6..17ac69cafb3c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unit-test.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unit-test.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "unit-test";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unix-options.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unix-options.nix
index 250ef24f9ad1..5cb97238b655 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unix-options.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unix-options.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "unix-options";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unix-opts.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unix-opts.nix
index b7af624f7a58..759a8f9b3188 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unix-opts.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/unix-opts.nix
@@ -1,7 +1,8 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "unix-opts";
-  version = "20200925-git";
+  version = "20210124-git";
 
   parasites = [ "unix-opts/tests" ];
 
@@ -10,8 +11,8 @@ rec {
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/unix-opts/2020-09-25/unix-opts-20200925-git.tgz";
-    sha256 = "0y7bg825l8my7kpk4iwx0n8wn7rgy7bir60kb0s55g3x0nx5vx35";
+    url = "http://beta.quicklisp.org/archive/unix-opts/2021-01-24/unix-opts-20210124-git.tgz";
+    sha256 = "1gjjav035n6297vgc4wi3i64516b8sdyi0d02q0nwicciwg6mwsn";
   };
 
   packageName = "unix-opts";
@@ -20,8 +21,8 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM unix-opts DESCRIPTION minimalistic parser of command line arguments
-    SHA256 0y7bg825l8my7kpk4iwx0n8wn7rgy7bir60kb0s55g3x0nx5vx35 URL
-    http://beta.quicklisp.org/archive/unix-opts/2020-09-25/unix-opts-20200925-git.tgz
-    MD5 cdde0f71cfa437636d20509b4072df0c NAME unix-opts FILENAME unix-opts DEPS
-    NIL DEPENDENCIES NIL VERSION 20200925-git SIBLINGS NIL PARASITES
+    SHA256 1gjjav035n6297vgc4wi3i64516b8sdyi0d02q0nwicciwg6mwsn URL
+    http://beta.quicklisp.org/archive/unix-opts/2021-01-24/unix-opts-20210124-git.tgz
+    MD5 c75d3233c0f2e16793b1ce19bfc83811 NAME unix-opts FILENAME unix-opts DEPS
+    NIL DEPENDENCIES NIL VERSION 20210124-git SIBLINGS NIL PARASITES
     (unix-opts/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/usocket-server.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/usocket-server.nix
index 977ee934c90f..c1b24f691a43 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/usocket-server.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/usocket-server.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "usocket-server";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/usocket.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/usocket.nix
index 4dbf781f968a..034f36bda70e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/usocket.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/usocket.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "usocket";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-items.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-items.nix
index 5b992620ecd2..bbaf2de554f0 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-items.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-items.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "utilities_dot_print-items";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-tree.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-tree.nix
index 2f2345fe0be5..ecb9aafbb36c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-tree.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-tree.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "utilities_dot_print-tree";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uuid.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uuid.nix
index a64d913d1d90..32142fcb02c2 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uuid.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/uuid.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "uuid";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/vom.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/vom.nix
index 401466e8a59c..39165dc95509 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/vom.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/vom.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "vom";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/woo.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/woo.nix
index e4ddb59c3986..e29626da50cd 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/woo.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/woo.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "woo";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/wookie.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/wookie.nix
index b28c751fdd4d..6e5800d47373 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/wookie.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/wookie.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "wookie";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xembed.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xembed.nix
index 5130b81c91ab..f44a128dc3cd 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xembed.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xembed.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "xembed";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xkeyboard.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xkeyboard.nix
index f46bff1f58f0..34b0476bfbd2 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xkeyboard.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xkeyboard.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "xkeyboard";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xml_dot_location.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xml_dot_location.nix
index 730b1287ba27..a7d23952d8cd 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xml_dot_location.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xml_dot_location.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "xml_dot_location";
@@ -5,8 +6,8 @@ rec {
 
   parasites = [ "xml.location/test" ];
 
-  description = ''This system provides a convenient interface for
- manipulating XML data. It is inspired by the xmltio library.'';
+  description = "This system provides a convenient interface for
+ manipulating XML data. It is inspired by the xmltio library.";
 
   deps = [ args."alexandria" args."anaphora" args."babel" args."cl-ppcre" args."closer-mop" args."closure-common" args."cxml" args."cxml-stp" args."iterate" args."let-plus" args."lift" args."more-conditions" args."parse-number" args."puri" args."split-sequence" args."trivial-features" args."trivial-gray-streams" args."xpath" args."yacc" ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xmls.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xmls.nix
index e1da47fe37af..9dec677b6d1b 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xmls.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xmls.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "xmls";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xpath.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xpath.nix
index 1f062549a0a2..dc47f866e320 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xpath.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xpath.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "xpath";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xsubseq.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xsubseq.nix
index 7d0c52d28a72..364b7144333d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xsubseq.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/xsubseq.nix
@@ -1,9 +1,10 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "xsubseq";
   version = "20170830-git";
 
-  description = ''Efficient way to manage "subseq"s in Common Lisp'';
+  description = "Efficient way to manage \"subseq\"s in Common Lisp";
 
   deps = [ ];
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/yacc.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/yacc.nix
index 5ec84290c4dd..79b49a86be02 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/yacc.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/yacc.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "yacc";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/yason.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/yason.nix
index 727bb74e57b8..aa06097e7549 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/yason.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/yason.nix
@@ -1,3 +1,4 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "yason";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/zpb-ttf.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/zpb-ttf.nix
index bed825c24b26..dece0b5126d1 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/zpb-ttf.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/zpb-ttf.nix
@@ -1,15 +1,16 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
   baseName = "zpb-ttf";
-  version = "1.0.3";
+  version = "release-1.0.4";
 
   description = "Access TrueType font metrics and outlines from Common Lisp";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/zpb-ttf/2013-07-20/zpb-ttf-1.0.3.tgz";
-    sha256 = "1irv0d0pcbwi2wx6hhjjyxzw12lnw8pvyg6ljsljh8xmhppbg5j6";
+    url = "http://beta.quicklisp.org/archive/zpb-ttf/2021-01-24/zpb-ttf-release-1.0.4.tgz";
+    sha256 = "186jzhmklby2pkmwv3zxw09qh8023f7w5ng2ql46l6abx146s3ll";
   };
 
   packageName = "zpb-ttf";
@@ -19,7 +20,7 @@ rec {
 }
 /* (SYSTEM zpb-ttf DESCRIPTION
     Access TrueType font metrics and outlines from Common Lisp SHA256
-    1irv0d0pcbwi2wx6hhjjyxzw12lnw8pvyg6ljsljh8xmhppbg5j6 URL
-    http://beta.quicklisp.org/archive/zpb-ttf/2013-07-20/zpb-ttf-1.0.3.tgz MD5
-    1e896d8b0b01babab882e43fe4c3c2d4 NAME zpb-ttf FILENAME zpb-ttf DEPS NIL
-    DEPENDENCIES NIL VERSION 1.0.3 SIBLINGS NIL PARASITES NIL) */
+    186jzhmklby2pkmwv3zxw09qh8023f7w5ng2ql46l6abx146s3ll URL
+    http://beta.quicklisp.org/archive/zpb-ttf/2021-01-24/zpb-ttf-release-1.0.4.tgz
+    MD5 b66f67b0a1fc347657d4d71ddb304920 NAME zpb-ttf FILENAME zpb-ttf DEPS NIL
+    DEPENDENCIES NIL VERSION release-1.0.4 SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
index 412fd4b8dee5..628001000e8c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
@@ -1,4 +1,4 @@
-{pkgs, quicklisp-to-nix-packages}:
+{pkgs, clwrapper, quicklisp-to-nix-packages}:
 let
   addNativeLibs = libs: x: { propagatedBuildInputs = libs; };
   skipBuildPhase = x: {
@@ -6,6 +6,10 @@ let
   };
   multiOverride = l: x: if l == [] then {} else
     ((builtins.head l) x) // (multiOverride (builtins.tail l) x);
+  lispName = (clwrapper.lisp.pname or (builtins.parseDrvName clwrapper.lisp.name).name);
+  ifLispIn = l: f: if (pkgs.lib.elem lispName l) then f else (x: {});
+  ifLispNotIn = l: f: if ! (pkgs.lib.elem lispName l) then f else (x: {});
+  extraLispDeps = l: x: { deps = x.deps ++ l; };
 in
 {
   stumpwm = x:{
@@ -23,7 +27,8 @@ in
       '';
     };
   };
-  iterate = skipBuildPhase;
+  iterate = multiOverride [ skipBuildPhase
+    (ifLispNotIn ["sbcl" "gcl"] (x: { parasites=[]; }))];
   cl-fuse = x: {
     propagatedBuildInputs = [pkgs.fuse];
     overrides = y : (x.overrides y) // {
@@ -65,15 +70,32 @@ in
   cl-libuv = addNativeLibs [pkgs.libuv];
   cl-async-ssl = addNativeLibs [pkgs.openssl (import ./openssl-lib-marked.nix)];
   cl-async-test = addNativeLibs [pkgs.openssl];
-  clsql = x: {
+  clsql = multiOverride [ (x: {
     propagatedBuildInputs = with pkgs; [libmysqlclient postgresql sqlite zlib];
     overrides = y: (x.overrides y) // {
       preConfigure = ((x.overrides y).preConfigure or "") + ''
         export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${pkgs.libmysqlclient}/include/mysql"
         export NIX_LDFLAGS="$NIX_LDFLAGS -L${pkgs.libmysqlclient}/lib/mysql"
-      '';
-    };
-  };
+      '';};})
+    (ifLispIn ["ecl" "clisp"] (x: {
+       deps = pkgs.lib.filter (x: x.outPath != quicklisp-to-nix-packages.uffi.outPath)
+         (x.deps ++ (with quicklisp-to-nix-packages; [cffi-uffi-compat]));
+       overrides = y: (x.overrides y) // {
+         postUnpack = ''
+           sed -e '1i(cl:push :clsql-cffi cl:*features*)' -i "$sourceRoot/clsql.asd"
+         '';
+       };
+    }))
+  ];
+  clsql-postgresql-socket = ifLispIn ["ecl" "clisp"] (x: {
+       deps = pkgs.lib.filter (x: x.outPath != quicklisp-to-nix-packages.uffi.outPath)
+         (x.deps ++ (with quicklisp-to-nix-packages; [cffi-uffi-compat]));
+       overrides = y: (x.overrides y) // {
+         postUnpack = ''
+           sed -e '1i(cl:push :clsql-cffi cl:*features*)' -i "$sourceRoot/clsql-postgresql-socket.asd"
+         '';
+       };
+    });
   clx-truetype = skipBuildPhase;
   query-fs = x: {
     overrides = y: (x.overrides y) // {
@@ -225,7 +247,7 @@ $out/lib/common-lisp/query-fs"
       x.deps;
   };
   cl-cffi-gtk-glib = addNativeLibs [pkgs.glib];
-  cl-cffi-gtk-gdk-pixbuf = addNativeLibs [pkgs.gdk_pixbuf];
+  cl-cffi-gtk-gdk-pixbuf = addNativeLibs [pkgs.gdk-pixbuf];
   cl-cffi-gtk-cairo = addNativeLibs [pkgs.cairo];
   cl-cffi-gtk-pango = addNativeLibs [pkgs.pango];
   cl-cffi-gtk-gdk = addNativeLibs [pkgs.gtk3];
@@ -241,4 +263,17 @@ $out/lib/common-lisp/query-fs"
       '';
     };
   };
+  woo = ifLispNotIn ["sbcl" "gcl"]
+    (extraLispDeps (with quicklisp-to-nix-packages; [cl-speedy-queue]));
+  cl-syslog = x: {
+    overrides = y: (x.overrides y) // {
+      postUnpack = ''
+        sed -e '1a:serial t' -i $sourceRoot/cl-syslog.asd
+      '';
+    };
+  };
+  log4cl = ifLispNotIn ["sbcl" "gcl"]
+    (extraLispDeps (with quicklisp-to-nix-packages; [cl-syslog]));
+  md5 = ifLispNotIn ["sbcl" "ccl" "gcl"]
+    (extraLispDeps (with quicklisp-to-nix-packages; [flexi-streams]));
 }
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
index 383510df777e..27eb3c90eddb 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
@@ -9,9 +9,12 @@ asdf-system-connections
 babel
 blackbird
 bordeaux-threads
+calispel
 caveman
+cl-custom-hash-table
 cffi
 cffi-grovel
+cffi-uffi-compat
 chanl
 chipz
 chunga
@@ -39,6 +42,7 @@ cl-fad
 cl-fuse
 cl-fuse-meta-fs
 cl-hooks
+cl-html-diff
 cl-html5-parser
 cl-html-parse
 cl-interpol
@@ -47,6 +51,7 @@ cl-json
 cl-l10n
 cl-libuv
 cl-locale
+cl-markup
 cl-mysql
 closer-mop
 closure-common
@@ -61,7 +66,9 @@ cl-protobufs
 cl-qprint
 cl-reexport
 cl-slice
+cl-speedy-queue
 cl-smtp
+cl-syslog
 clsql
 clsql-postgresql
 clsql-postgresql-socket
@@ -110,6 +117,7 @@ fare-quasiquote
 fare-utils
 fast-http
 fast-io
+file-attributes
 fiveam
 flexi-streams
 form-fiddle
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix.nix
index df6d908ba9d0..1e0952aabafd 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix.nix
@@ -1,6 +1,6 @@
-{lib, stdenv, fetchurl, pkgs, clwrapper}:
+{stdenv, lib, fetchurl, pkgs, clwrapper}:
 let quicklisp-to-nix-packages = rec {
-  inherit lib stdenv fetchurl clwrapper pkgs quicklisp-to-nix-packages;
+  inherit stdenv lib fetchurl clwrapper pkgs quicklisp-to-nix-packages;
 
   callPackage = pkgs.lib.callPackageWith quicklisp-to-nix-packages;
   buildLispPackage = callPackage ./define-package.nix;
@@ -45,6 +45,7 @@ let quicklisp-to-nix-packages = rec {
            "esrap" = quicklisp-to-nix-packages."esrap";
            "html-encode" = quicklisp-to-nix-packages."html-encode";
            "split-sequence" = quicklisp-to-nix-packages."split-sequence";
+           "trivial-with-current-source-form" = quicklisp-to-nix-packages."trivial-with-current-source-form";
        }));
 
 
@@ -93,6 +94,7 @@ let quicklisp-to-nix-packages = rec {
            "split-sequence" = quicklisp-to-nix-packages."split-sequence";
            "swank" = quicklisp-to-nix-packages."swank";
            "trivial-features" = quicklisp-to-nix-packages."trivial-features";
+           "trivial-with-current-source-form" = quicklisp-to-nix-packages."trivial-with-current-source-form";
        }));
 
 
@@ -116,6 +118,7 @@ let quicklisp-to-nix-packages = rec {
            "cl-ppcre" = quicklisp-to-nix-packages."cl-ppcre";
            "cl-ppcre-unicode" = quicklisp-to-nix-packages."cl-ppcre-unicode";
            "cl-unicode" = quicklisp-to-nix-packages."cl-unicode";
+           "fiveam" = quicklisp-to-nix-packages."fiveam";
            "flexi-streams" = quicklisp-to-nix-packages."flexi-streams";
        }));
 
@@ -176,17 +179,28 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
-  "global-vars" = buildLispPackage
+  "cl-postgres_slash_tests" = quicklisp-to-nix-packages."cl-postgres";
+
+
+  "cl-postgres_plus_local-time" = buildLispPackage
     ((f: x: (x // (f x)))
-       (qlOverrides."global-vars" or (x: {}))
-       (import ./quicklisp-to-nix-output/global-vars.nix {
+       (qlOverrides."cl-postgres_plus_local-time" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-postgres_plus_local-time.nix {
          inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "bordeaux-threads" = quicklisp-to-nix-packages."bordeaux-threads";
+           "cl-base64" = quicklisp-to-nix-packages."cl-base64";
+           "cl-postgres" = quicklisp-to-nix-packages."cl-postgres";
+           "cl-ppcre" = quicklisp-to-nix-packages."cl-ppcre";
+           "ironclad" = quicklisp-to-nix-packages."ironclad";
+           "local-time" = quicklisp-to-nix-packages."local-time";
+           "md5" = quicklisp-to-nix-packages."md5";
+           "split-sequence" = quicklisp-to-nix-packages."split-sequence";
+           "uax-15" = quicklisp-to-nix-packages."uax-15";
+           "usocket" = quicklisp-to-nix-packages."usocket";
        }));
 
 
-  "cl-postgres_slash_tests" = quicklisp-to-nix-packages."cl-postgres";
-
-
   "stefil" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."stefil" or (x: {}))
@@ -638,14 +652,6 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
-  "cl-markup" = buildLispPackage
-    ((f: x: (x // (f x)))
-       (qlOverrides."cl-markup" or (x: {}))
-       (import ./quicklisp-to-nix-output/cl-markup.nix {
-         inherit fetchurl;
-       }));
-
-
   "cl-anonfun" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-anonfun" or (x: {}))
@@ -664,6 +670,14 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "global-vars" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."global-vars" or (x: {}))
+       (import ./quicklisp-to-nix-output/global-vars.nix {
+         inherit fetchurl;
+       }));
+
+
   "clunit" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."clunit" or (x: {}))
@@ -749,6 +763,14 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-difflib" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-difflib" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-difflib.nix {
+         inherit fetchurl;
+       }));
+
+
   "pcall-queue" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."pcall-queue" or (x: {}))
@@ -1160,6 +1182,36 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "jpl-util" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."jpl-util" or (x: {}))
+       (import ./quicklisp-to-nix-output/jpl-util.nix {
+         inherit fetchurl;
+       }));
+
+
+  "jpl-queues" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."jpl-queues" or (x: {}))
+       (import ./quicklisp-to-nix-output/jpl-queues.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "bordeaux-threads" = quicklisp-to-nix-packages."bordeaux-threads";
+           "jpl-util" = quicklisp-to-nix-packages."jpl-util";
+       }));
+
+
+  "eager-future2" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."eager-future2" or (x: {}))
+       (import ./quicklisp-to-nix-output/eager-future2.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "bordeaux-threads" = quicklisp-to-nix-packages."bordeaux-threads";
+           "trivial-garbage" = quicklisp-to-nix-packages."trivial-garbage";
+       }));
+
+
   "vom" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."vom" or (x: {}))
@@ -1192,6 +1244,15 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "trivial-with-current-source-form" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."trivial-with-current-source-form" or (x: {}))
+       (import ./quicklisp-to-nix-output/trivial-with-current-source-form.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+       }));
+
+
   "yason" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."yason" or (x: {}))
@@ -1640,6 +1701,7 @@ let quicklisp-to-nix-packages = rec {
        (import ./quicklisp-to-nix-output/serapeum.nix {
          inherit fetchurl;
            "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "babel" = quicklisp-to-nix-packages."babel";
            "bordeaux-threads" = quicklisp-to-nix-packages."bordeaux-threads";
            "closer-mop" = quicklisp-to-nix-packages."closer-mop";
            "fare-quasiquote" = quicklisp-to-nix-packages."fare-quasiquote";
@@ -1664,6 +1726,7 @@ let quicklisp-to-nix-packages = rec {
            "trivia_dot_quasiquote" = quicklisp-to-nix-packages."trivia_dot_quasiquote";
            "trivia_dot_trivial" = quicklisp-to-nix-packages."trivia_dot_trivial";
            "trivial-cltl2" = quicklisp-to-nix-packages."trivial-cltl2";
+           "trivial-features" = quicklisp-to-nix-packages."trivial-features";
            "trivial-file-size" = quicklisp-to-nix-packages."trivial-file-size";
            "trivial-garbage" = quicklisp-to-nix-packages."trivial-garbage";
            "trivial-macroexpand-all" = quicklisp-to-nix-packages."trivial-macroexpand-all";
@@ -1779,6 +1842,7 @@ let quicklisp-to-nix-packages = rec {
            "bordeaux-threads" = quicklisp-to-nix-packages."bordeaux-threads";
            "cl-base64" = quicklisp-to-nix-packages."cl-base64";
            "cl-postgres" = quicklisp-to-nix-packages."cl-postgres";
+           "cl-postgres_plus_local-time" = quicklisp-to-nix-packages."cl-postgres_plus_local-time";
            "cl-postgres_slash_tests" = quicklisp-to-nix-packages."cl-postgres_slash_tests";
            "cl-ppcre" = quicklisp-to-nix-packages."cl-ppcre";
            "cl-unicode" = quicklisp-to-nix-packages."cl-unicode";
@@ -1787,6 +1851,7 @@ let quicklisp-to-nix-packages = rec {
            "flexi-streams" = quicklisp-to-nix-packages."flexi-streams";
            "global-vars" = quicklisp-to-nix-packages."global-vars";
            "ironclad" = quicklisp-to-nix-packages."ironclad";
+           "local-time" = quicklisp-to-nix-packages."local-time";
            "md5" = quicklisp-to-nix-packages."md5";
            "s-sql" = quicklisp-to-nix-packages."s-sql";
            "s-sql_slash_tests" = quicklisp-to-nix-packages."s-sql_slash_tests";
@@ -1832,6 +1897,7 @@ let quicklisp-to-nix-packages = rec {
            "fiveam" = quicklisp-to-nix-packages."fiveam";
            "let-plus" = quicklisp-to-nix-packages."let-plus";
            "split-sequence" = quicklisp-to-nix-packages."split-sequence";
+           "trivial-with-current-source-form" = quicklisp-to-nix-packages."trivial-with-current-source-form";
        }));
 
 
@@ -2031,7 +2097,7 @@ let quicklisp-to-nix-packages = rec {
        (qlOverrides."local-time" or (x: {}))
        (import ./quicklisp-to-nix-output/local-time.nix {
          inherit fetchurl;
-           "stefil" = quicklisp-to-nix-packages."stefil";
+           "hu_dot_dwim_dot_stefil" = quicklisp-to-nix-packages."hu_dot_dwim_dot_stefil";
            "uiop" = quicklisp-to-nix-packages."uiop";
        }));
 
@@ -2270,16 +2336,19 @@ let quicklisp-to-nix-packages = rec {
            "cl-fad" = quicklisp-to-nix-packages."cl-fad";
            "cl-ppcre" = quicklisp-to-nix-packages."cl-ppcre";
            "cl-who" = quicklisp-to-nix-packages."cl-who";
+           "cxml-stp" = quicklisp-to-nix-packages."cxml-stp";
            "drakma" = quicklisp-to-nix-packages."drakma";
            "flexi-streams" = quicklisp-to-nix-packages."flexi-streams";
            "md5" = quicklisp-to-nix-packages."md5";
            "rfc2388" = quicklisp-to-nix-packages."rfc2388";
            "split-sequence" = quicklisp-to-nix-packages."split-sequence";
+           "swank" = quicklisp-to-nix-packages."swank";
            "trivial-backtrace" = quicklisp-to-nix-packages."trivial-backtrace";
            "trivial-features" = quicklisp-to-nix-packages."trivial-features";
            "trivial-garbage" = quicklisp-to-nix-packages."trivial-garbage";
            "trivial-gray-streams" = quicklisp-to-nix-packages."trivial-gray-streams";
            "usocket" = quicklisp-to-nix-packages."usocket";
+           "xpath" = quicklisp-to-nix-packages."xpath";
        }));
 
 
@@ -2386,6 +2455,20 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "file-attributes" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."file-attributes" or (x: {}))
+       (import ./quicklisp-to-nix-output/file-attributes.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "babel" = quicklisp-to-nix-packages."babel";
+           "cffi" = quicklisp-to-nix-packages."cffi";
+           "documentation-utils" = quicklisp-to-nix-packages."documentation-utils";
+           "trivial-features" = quicklisp-to-nix-packages."trivial-features";
+           "trivial-indent" = quicklisp-to-nix-packages."trivial-indent";
+       }));
+
+
   "fast-io" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."fast-io" or (x: {}))
@@ -2473,6 +2556,7 @@ let quicklisp-to-nix-packages = rec {
            "cl-unification" = quicklisp-to-nix-packages."cl-unification";
            "esrap" = quicklisp-to-nix-packages."esrap";
            "iterate" = quicklisp-to-nix-packages."iterate";
+           "trivial-with-current-source-form" = quicklisp-to-nix-packages."trivial-with-current-source-form";
        }));
 
 
@@ -2483,6 +2567,7 @@ let quicklisp-to-nix-packages = rec {
          inherit fetchurl;
            "alexandria" = quicklisp-to-nix-packages."alexandria";
            "fiveam" = quicklisp-to-nix-packages."fiveam";
+           "trivial-with-current-source-form" = quicklisp-to-nix-packages."trivial-with-current-source-form";
        }));
 
 
@@ -2848,6 +2933,7 @@ let quicklisp-to-nix-packages = rec {
            "fiasco" = quicklisp-to-nix-packages."fiasco";
        }));
 
+
   "clfswm" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."clfswm" or (x: {}))
@@ -2856,6 +2942,7 @@ let quicklisp-to-nix-packages = rec {
            "clx" = quicklisp-to-nix-packages."clx";
        }));
 
+
   "cl-who" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-who" or (x: {}))
@@ -3029,10 +3116,12 @@ let quicklisp-to-nix-packages = rec {
            "bordeaux-threads" = quicklisp-to-nix-packages."bordeaux-threads";
            "cffi" = quicklisp-to-nix-packages."cffi";
            "flexi-streams" = quicklisp-to-nix-packages."flexi-streams";
+           "split-sequence" = quicklisp-to-nix-packages."split-sequence";
            "trivial-features" = quicklisp-to-nix-packages."trivial-features";
            "trivial-garbage" = quicklisp-to-nix-packages."trivial-garbage";
            "trivial-gray-streams" = quicklisp-to-nix-packages."trivial-gray-streams";
            "uiop" = quicklisp-to-nix-packages."uiop";
+           "usocket" = quicklisp-to-nix-packages."usocket";
        }));
 
 
@@ -3090,6 +3179,22 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-syslog" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-syslog" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-syslog.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "babel" = quicklisp-to-nix-packages."babel";
+           "cffi" = quicklisp-to-nix-packages."cffi";
+           "global-vars" = quicklisp-to-nix-packages."global-vars";
+           "local-time" = quicklisp-to-nix-packages."local-time";
+           "split-sequence" = quicklisp-to-nix-packages."split-sequence";
+           "trivial-features" = quicklisp-to-nix-packages."trivial-features";
+           "usocket" = quicklisp-to-nix-packages."usocket";
+       }));
+
+
   "cl-smtp" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-smtp" or (x: {}))
@@ -3110,6 +3215,14 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-speedy-queue" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-speedy-queue" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-speedy-queue.nix {
+         inherit fetchurl;
+       }));
+
+
   "cl-slice" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-slice" or (x: {}))
@@ -3267,6 +3380,14 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-markup" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-markup" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-markup.nix {
+         inherit fetchurl;
+       }));
+
+
   "cl-locale" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-locale" or (x: {}))
@@ -3376,6 +3497,15 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-html-diff" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-html-diff" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-html-diff.nix {
+         inherit fetchurl;
+           "cl-difflib" = quicklisp-to-nix-packages."cl-difflib";
+       }));
+
+
   "cl-hooks" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-hooks" or (x: {}))
@@ -3798,6 +3928,18 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cffi-uffi-compat" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cffi-uffi-compat" or (x: {}))
+       (import ./quicklisp-to-nix-output/cffi-uffi-compat.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "babel" = quicklisp-to-nix-packages."babel";
+           "cffi" = quicklisp-to-nix-packages."cffi";
+           "trivial-features" = quicklisp-to-nix-packages."trivial-features";
+       }));
+
+
   "cffi-grovel" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cffi-grovel" or (x: {}))
@@ -3825,6 +3967,14 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-custom-hash-table" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-custom-hash-table" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-custom-hash-table.nix {
+         inherit fetchurl;
+       }));
+
+
   "caveman" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."caveman" or (x: {}))
@@ -3900,6 +4050,19 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "calispel" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."calispel" or (x: {}))
+       (import ./quicklisp-to-nix-output/calispel.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "bordeaux-threads" = quicklisp-to-nix-packages."bordeaux-threads";
+           "eager-future2" = quicklisp-to-nix-packages."eager-future2";
+           "jpl-queues" = quicklisp-to-nix-packages."jpl-queues";
+           "jpl-util" = quicklisp-to-nix-packages."jpl-util";
+       }));
+
+
   "bordeaux-threads" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."bordeaux-threads" or (x: {}))
@@ -4011,6 +4174,7 @@ let quicklisp-to-nix-packages = rec {
            "alexandria" = quicklisp-to-nix-packages."alexandria";
            "esrap" = quicklisp-to-nix-packages."esrap";
            "split-sequence" = quicklisp-to-nix-packages."split-sequence";
+           "trivial-with-current-source-form" = quicklisp-to-nix-packages."trivial-with-current-source-form";
        }));
 
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb
index ac3387d7b6d5..6b0940ba55a6 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb
@@ -1,17 +1,18 @@
+/* Generated file. */
 args @ { fetchurl, ... }:
 rec {
-  baseName = ''<% @var filename %>'';
-  version = ''<% @var version %>'';<% @if parasites %>
+  baseName = "<% @var filename %>";
+  version = "<% @var version %>";<% @if parasites %>
 
   parasites = [<% (dolist (p (getf env :parasites)) (format t " \"~A\"" p)) %> ];<% @endif %>
 
-  description = ''<% @var description %>'';
+  description = <%= (format nil "~s" (cl-emb::getf-emb "description")) %>;
 
   deps = [ <% @loop deps %>args."<% @var filename %>" <% @endloop %>];
 
   src = fetchurl {
-    url = ''<% @var url %>'';
-    sha256 = ''<% @var sha256 %>'';
+    url = "<% @var url %>";
+    sha256 = "<% @var sha256 %>";
   };
 
   packageName = "<% @var name %>";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/system-info.lisp b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/system-info.lisp
index fecae710247d..e9df02e010ea 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/system-info.lisp
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/system-info.lisp
@@ -244,7 +244,8 @@ dependencies that are detected during the install."
     "named-readtables/doc" ;; Dependency cycle between named-readtabes and mgl-pax
     "symbol-munger-test" ;; Dependency cycle between lisp-unit2 and symbol-munger
     "cl-postgres-simple-date-tests" ;; Dependency cycle between cl-postgres and simple-date
-    "cl-containers/with-variates") ;; Symbol conflict between cl-variates:next-element, metabang.utilities:next-element
+    "cl-containers/with-variates" ;; Symbol conflict between cl-variates:next-element, metabang.utilities:next-element
+    "serapeum/docs") ;; Weird issue with FUN-INFO redefinition
   "A vector of systems that shouldn't be loaded by `quickload-parasitic-systems'.
 
 These systems are known to be troublemakers.  In some sense, all
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/top-package.emb b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/top-package.emb
index 9ba7a89eb253..38b4f67aa1c3 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/top-package.emb
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix/top-package.emb
@@ -1,6 +1,6 @@
-{stdenv, fetchurl, pkgs, clwrapper}:
+{stdenv, lib, fetchurl, pkgs, clwrapper}:
 let quicklisp-to-nix-packages = rec {
-  inherit stdenv fetchurl clwrapper pkgs quicklisp-to-nix-packages;
+  inherit stdenv lib fetchurl clwrapper pkgs quicklisp-to-nix-packages;
 
   callPackage = pkgs.lib.callPackageWith quicklisp-to-nix-packages;
   buildLispPackage = callPackage ./define-package.nix;
diff --git a/nixpkgs/pkgs/development/lisp-modules/shell.nix b/nixpkgs/pkgs/development/lisp-modules/shell.nix
index 0201491f4cca..a8ed246e6f8f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/shell.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/shell.nix
@@ -11,6 +11,6 @@ self = rec {
     lispPackages.quicklisp-to-nix lispPackages.quicklisp-to-nix-system-info
   ];
   CPATH = "${libfixposix}/include";
-  LD_LIBRARY_PATH = "${openssl.out}/lib:${fuse}/lib:${libuv}/lib:${libev}/lib:${libmysqlclient}/lib:${libmysqlclient}/lib/mysql:${postgresql.lib}/lib:${sqlite.out}/lib:${libfixposix}/lib:${freetds}/lib:${openssl_lib_marked}/lib:${glib.out}/lib:${gdk_pixbuf}/lib:${cairo}/lib:${pango.out}/lib:${gtk3}/lib:${webkitgtk}/lib";
+  LD_LIBRARY_PATH = "${openssl.out}/lib:${fuse}/lib:${libuv}/lib:${libev}/lib:${libmysqlclient}/lib:${libmysqlclient}/lib/mysql:${postgresql.lib}/lib:${sqlite.out}/lib:${libfixposix}/lib:${freetds}/lib:${openssl_lib_marked}/lib:${glib.out}/lib:${gdk-pixbuf}/lib:${cairo}/lib:${pango.out}/lib:${gtk3}/lib:${webkitgtk}/lib";
 };
 in stdenv.mkDerivation self
diff --git a/nixpkgs/pkgs/development/misc/avr8-burn-omat/default.nix b/nixpkgs/pkgs/development/misc/avr8-burn-omat/default.nix
index 0a9d666f8b7f..3364fe796e72 100644
--- a/nixpkgs/pkgs/development/misc/avr8-burn-omat/default.nix
+++ b/nixpkgs/pkgs/development/misc/avr8-burn-omat/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "02k0fd0cd3y1yqip36wr3bkxbywp8913w4y7jdg6qwqxjnii58ln";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   phases = "unpackPhase installPhase";
 
diff --git a/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix b/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
new file mode 100644
index 000000000000..7f49430c15c3
--- /dev/null
+++ b/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, ansi-wl-pprint, base, fetchgit, lib, process, QuickCheck
+, transformers, transformers-compat
+}:
+mkDerivation {
+  pname = "hercules-ci-optparse-applicative";
+  version = "0.16.1.0";
+  src = fetchgit {
+    url = "https://github.com/hercules-ci/optparse-applicative.git";
+    sha256 = "0v0r11jaav95im82if976256kncp0ji7nfdrlpbgmwxnkj1hxl48";
+    rev = "f9d1242f9889d2e09ff852db9dc2d231d9a3e8d8";
+    fetchSubmodules = true;
+  };
+  libraryHaskellDepends = [
+    ansi-wl-pprint base process transformers transformers-compat
+  ];
+  testHaskellDepends = [ base QuickCheck ];
+  homepage = "https://github.com/hercules-ci/optparse-applicative";
+  description = "Utilities and combinators for parsing command line options (fork)";
+  license = lib.licenses.bsd3;
+  maintainers = with lib.maintainers; [ roberth ];
+}
diff --git a/nixpkgs/pkgs/development/misc/qmk_firmware/default.nix b/nixpkgs/pkgs/development/misc/qmk_firmware/default.nix
deleted file mode 100644
index 38b1df3ca3b5..000000000000
--- a/nixpkgs/pkgs/development/misc/qmk_firmware/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ stdenv, fetchFromGitHub
-, avrgcc, avrbinutils
-, gcc-arm-embedded, gcc-armhf-embedded
-, teensy-loader-cli, dfu-programmer, dfu-util }:
-
-let version = "0.6.144";
-
-in stdenv.mkDerivation {
-  pname = "qmk_firmware";
-  inherit version;
-  src = fetchFromGitHub {
-    owner = "qmk";
-    repo = "qmk_firmware";
-    rev = version;
-    sha256 = "0m71f9w32ksqjkrwhqwhr74q5v3pr38bihjyb9ks0k5id0inhrjn";
-    fetchSubmodules = true;
-  };
-  postPatch = ''
-    substituteInPlace tmk_core/arm_atsam.mk \
-      --replace arm-none-eabi arm-none-eabihf
-    rm keyboards/handwired/frenchdev/rules.mk keyboards/dk60/rules.mk
-  '';
-  buildFlags = [ "all:default" ];
-  doCheck = true;
-  checkTarget = "test:all";
-  installPhase = ''
-    mkdir $out
-  '';
-  NIX_CFLAGS_COMPILE = "-Wno-error";
-  nativeBuildInputs = [
-    avrgcc
-    avrbinutils
-    gcc-arm-embedded
-    gcc-armhf-embedded
-    teensy-loader-cli
-    dfu-programmer
-    dfu-util
-  ];
-}
diff --git a/nixpkgs/pkgs/development/misc/resholve/deps.nix b/nixpkgs/pkgs/development/misc/resholve/deps.nix
index 86bcba570759..6a1d9c77b5a0 100644
--- a/nixpkgs/pkgs/development/misc/resholve/deps.nix
+++ b/nixpkgs/pkgs/development/misc/resholve/deps.nix
@@ -60,13 +60,13 @@ rec {
   # resholve's primary dependency is this developer build of the oil shell.
   oildev = python27Packages.buildPythonPackage rec {
     pname = "oildev-unstable";
-    version = "2020-03-31";
+    version = "2021-02-26";
 
     src = fetchFromGitHub {
       owner = "oilshell";
       repo = "oil";
-      rev = "ea80cdad7ae1152a25bd2a30b87fe3c2ad32394a";
-      sha256 = "0pxn0f8qbdman4gppx93zwml7s5byqfw560n079v68qjgzh2brq2";
+      rev = "11c6bd3ca0e126862c7a1f938c8510779837affa";
+      hash = "sha256-UTQywtx+Dn1/qx5uocqgGn7oFYW4R5DbuiRNF8t/BzY=";
 
       /*
       It's not critical to drop most of these; the primary target is
diff --git a/nixpkgs/pkgs/development/misc/resholve/resholve.nix b/nixpkgs/pkgs/development/misc/resholve/resholve.nix
index e8b4ed2cfb25..4d039770ce0e 100644
--- a/nixpkgs/pkgs/development/misc/resholve/resholve.nix
+++ b/nixpkgs/pkgs/development/misc/resholve/resholve.nix
@@ -11,12 +11,12 @@
 , doCheck ? true
 }:
 let
-  version = "0.4.2";
+  version = "0.5.1";
   rSrc = fetchFromGitHub {
     owner = "abathur";
     repo = "resholve";
     rev = "v${version}";
-    hash = "sha256-ArUQjqh4LRvFLzHiTIcae0q/VFxFF/X9eOFeRnYmTO0=";
+    hash = "sha256-+9MjvO1H+A3Ol2to5tWqdpNR7osQsYcbkX9avAqyrKw=";
   };
   deps = callPackage ./deps.nix {
     /*
@@ -29,6 +29,9 @@ let
       "${rSrc}/0002-add_MANIFEST_in.patch"
       "${rSrc}/0003-fix_codegen_shebang.patch"
       "${rSrc}/0004-disable-internal-py-yajl-for-nix-built.patch"
+      "${rSrc}/0005_revert_libc_locale.patch"
+      "${rSrc}/0006_disable_failing_libc_tests.patch"
+      "${rSrc}/0007_restore_root_init_py.patch"
     ];
   };
 in
diff --git a/nixpkgs/pkgs/development/misc/umr/default.nix b/nixpkgs/pkgs/development/misc/umr/default.nix
new file mode 100644
index 000000000000..158cef2eed1e
--- /dev/null
+++ b/nixpkgs/pkgs/development/misc/umr/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchgit, bash-completion, cmake, pkg-config
+, libdrm, libpciaccess, llvmPackages, ncurses
+}:
+
+stdenv.mkDerivation rec {
+  pname = "umr";
+  version = "unstable-2021-02-18";
+
+  src = fetchgit {
+    url = "https://gitlab.freedesktop.org/tomstdenis/umr";
+    rev = "79e17f8f2807ed707fc1be369d0aad536f6dbc97";
+    sha256 = "IwTkHEuJ82hngPjFVIihU2rSolLBqHxQTNsP8puYPaY=";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [
+    bash-completion
+    libdrm
+    libpciaccess
+    llvmPackages.llvm
+    ncurses
+  ];
+
+  # Remove static libraries (there are no dynamic libraries in there)
+  postInstall = ''
+    rm -r $out/lib
+  '';
+
+  meta = with lib; {
+    description = "A userspace debugging and diagnostic tool for AMD GPUs";
+    homepage = "https://gitlab.freedesktop.org/tomstdenis/umr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ Flakebi ];
+    platforms = platforms.linux;
+ };
+}
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/compose-android-packages.nix b/nixpkgs/pkgs/development/mobile/androidenv/compose-android-packages.nix
index fd78fa9ac0f8..5db3538563f9 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/compose-android-packages.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/compose-android-packages.nix
@@ -24,7 +24,8 @@
 }:
 
 let
-  inherit (pkgs) stdenv lib fetchurl makeWrapper unzip;
+  inherit (pkgs) stdenv lib fetchurl;
+  inherit (pkgs.buildPackages) makeWrapper unzip;
 
   # Determine the Android os identifier from Nix's system identifier
   os = if stdenv.system == "x86_64-linux" then "linux"
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/emulator.nix b/nixpkgs/pkgs/development/mobile/androidenv/emulator.nix
index e08078ea6725..c8fce166aa7d 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/emulator.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/emulator.nix
@@ -5,16 +5,16 @@ deployAndroidPackage {
   buildInputs = [ autoPatchelfHook makeWrapper ]
   ++ lib.optional (os == "linux") [
     pkgs.glibc
-    pkgs.xlibs.libX11
-    pkgs.xlibs.libXext
-    pkgs.xlibs.libXdamage
-    pkgs.xlibs.libXfixes
-    pkgs.xlibs.libxcb
-    pkgs.xlibs.libXcomposite
-    pkgs.xlibs.libXcursor
-    pkgs.xlibs.libXi
-    pkgs.xlibs.libXrender
-    pkgs.xlibs.libXtst
+    pkgs.xorg.libX11
+    pkgs.xorg.libXext
+    pkgs.xorg.libXdamage
+    pkgs.xorg.libXfixes
+    pkgs.xorg.libxcb
+    pkgs.xorg.libXcomposite
+    pkgs.xorg.libXcursor
+    pkgs.xorg.libXi
+    pkgs.xorg.libXrender
+    pkgs.xorg.libXtst
     pkgs.libcxx
     pkgs.libGL
     pkgs.libpulseaudio
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix b/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
index f74b949a7b3c..26d6a847b4d0 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
@@ -14,10 +14,14 @@ deployAndroidPackage {
   patchInstructions = lib.optionalString (os == "linux") (''
     patchShebangs .
 
+    # Fix the shebangs of the auto-generated scripts.
+    substituteInPlace ./build/tools/make_standalone_toolchain.py \
+      --replace '#!/bin/bash' '#!${pkgs.bash}/bin/bash'
+
   '' + lib.optionalString (builtins.compareVersions (lib.getVersion package) "21" > 0) ''
     patch -p1 \
       --no-backup-if-mismatch < ${./make_standalone_toolchain.py_18.patch} || true
-    wrapProgram $(pwd)/build/tools/make_standalone_toolchain.py --prefix PATH : "${runtime_paths}"
+    wrapProgram ./build/tools/make_standalone_toolchain.py --prefix PATH : "${runtime_paths}"
   '' + ''
 
     # TODO: allow this stuff
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/tools/26.nix b/nixpkgs/pkgs/development/mobile/androidenv/tools/26.nix
index 0234c9f3d04b..a768a120547f 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/tools/26.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/tools/26.nix
@@ -4,7 +4,7 @@ deployAndroidPackage {
   name = "androidsdk";
   inherit os package;
   buildInputs = [ autoPatchelfHook makeWrapper ]
-    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xlibs.libX11 pkgs.xlibs.libXrender pkgs.xlibs.libXext pkgs.fontconfig pkgs.freetype pkgs_i686.glibc pkgs_i686.xlibs.libX11 pkgs_i686.xlibs.libXrender pkgs_i686.xlibs.libXext pkgs_i686.fontconfig.lib pkgs_i686.freetype pkgs_i686.zlib pkgs.fontconfig.lib ];
+    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xorg.libX11 pkgs.xorg.libXrender pkgs.xorg.libXext pkgs.fontconfig pkgs.freetype pkgs_i686.glibc pkgs_i686.xorg.libX11 pkgs_i686.xorg.libXrender pkgs_i686.xorg.libXext pkgs_i686.fontconfig.lib pkgs_i686.freetype pkgs_i686.zlib pkgs.fontconfig.lib ];
 
   patchInstructions = ''
     ${lib.optionalString (os == "linux") ''
@@ -27,7 +27,7 @@ deployAndroidPackage {
     # Wrap monitor script
     wrapProgram $PWD/monitor \
       --prefix PATH : ${pkgs.jdk8}/bin \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.xlibs.libX11 pkgs.xlibs.libXtst ]}
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.xorg.libX11 pkgs.xorg.libXtst ]}
 
     # Patch all script shebangs
     patchShebangs .
diff --git a/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock b/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
index 9c5e10d3a482..6f4522ebf1c9 100644
--- a/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
+++ b/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
@@ -1,8 +1,8 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.2)
-    activesupport (5.2.4.4)
+    CFPropertyList (3.0.3)
+    activesupport (5.2.4.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -14,10 +14,10 @@ GEM
       json (>= 1.5.1)
     atomos (0.1.3)
     claide (1.0.3)
-    cocoapods (1.10.0)
+    cocoapods (1.10.1)
       addressable (~> 2.6)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.10.0)
+      cocoapods-core (= 1.10.1)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 1.4.0, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -32,7 +32,7 @@ GEM
       nap (~> 1.0)
       ruby-macho (~> 1.4)
       xcodeproj (>= 1.19.0, < 2.0)
-    cocoapods-core (1.10.0)
+    cocoapods-core (1.10.1)
       activesupport (> 5.0, < 6)
       addressable (~> 2.6)
       algoliasearch (~> 1.0)
@@ -52,19 +52,19 @@ GEM
       netrc (~> 0.11)
     cocoapods-try (1.2.0)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     escape (0.0.4)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.13.1)
+    ffi (1.15.0)
     fourflusher (2.3.1)
     fuzzy_match (2.0.4)
     gh_inspector (1.1.3)
     httpclient (2.8.3)
-    i18n (1.8.5)
+    i18n (1.8.9)
       concurrent-ruby (~> 1.0)
-    json (2.3.1)
-    minitest (5.14.2)
+    json (2.5.1)
+    minitest (5.14.4)
     molinillo (0.6.6)
     nanaimo (0.3.0)
     nap (1.1.0)
@@ -74,7 +74,7 @@ GEM
     thread_safe (0.3.6)
     typhoeus (1.4.0)
       ethon (>= 0.9.0)
-    tzinfo (1.2.7)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
     xcodeproj (1.19.0)
       CFPropertyList (>= 2.3.3, < 4.0)
diff --git a/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile.lock b/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile.lock
index d4de7cd698d7..cf718b02c087 100644
--- a/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile.lock
+++ b/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile.lock
@@ -1,8 +1,8 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.2)
-    activesupport (5.2.4.4)
+    CFPropertyList (3.0.3)
+    activesupport (5.2.4.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -14,10 +14,10 @@ GEM
       json (>= 1.5.1)
     atomos (0.1.3)
     claide (1.0.3)
-    cocoapods (1.10.0)
+    cocoapods (1.10.1)
       addressable (~> 2.6)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.10.0)
+      cocoapods-core (= 1.10.1)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 1.4.0, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -32,7 +32,7 @@ GEM
       nap (~> 1.0)
       ruby-macho (~> 1.4)
       xcodeproj (>= 1.19.0, < 2.0)
-    cocoapods-core (1.10.0)
+    cocoapods-core (1.10.1)
       activesupport (> 5.0, < 6)
       addressable (~> 2.6)
       algoliasearch (~> 1.0)
@@ -52,19 +52,19 @@ GEM
       netrc (~> 0.11)
     cocoapods-try (1.2.0)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     escape (0.0.4)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.13.1)
+    ffi (1.15.0)
     fourflusher (2.3.1)
     fuzzy_match (2.0.4)
     gh_inspector (1.1.3)
     httpclient (2.8.3)
-    i18n (1.8.5)
+    i18n (1.8.9)
       concurrent-ruby (~> 1.0)
-    json (2.3.1)
-    minitest (5.14.2)
+    json (2.5.1)
+    minitest (5.14.4)
     molinillo (0.6.6)
     nanaimo (0.3.0)
     nap (1.1.0)
@@ -74,7 +74,7 @@ GEM
     thread_safe (0.3.6)
     typhoeus (1.4.0)
       ethon (>= 0.9.0)
-    tzinfo (1.2.7)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
     xcodeproj (1.19.0)
       CFPropertyList (>= 2.3.3, < 4.0)
diff --git a/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix b/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix
index 195f0901a19c..9c18d393bcb9 100644
--- a/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix
+++ b/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dpnk20s754fz6jfz9sp3ri49hn46ksw4hf6ycnlw7s3hsdxqgcd";
+      sha256 = "0fp4gr3g25qgl01y3pd88wfh4pjc5zj3bz4v7rkxxwaxdjg7a9cc";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "5.2.4.5";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -47,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1825ll26p28swjiw8n3x2pnh5ygsmg83spf82fnzcjn2p87vc5lf";
+      sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.0.3";
   };
   claide = {
     groups = ["default"];
@@ -68,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bbpg93gqjryxwr864z7s3jp3ic5pig313jcly4g3n159ssx3a4j";
+      sha256 = "0k1fgp93nbgvp5m76wf067jcqy5zzbx0kczcxvhrzdxkkixzm30a";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "1.10.1";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
@@ -79,10 +79,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sb07hj2kjygrzbdkzsyabcsfmip8gcfpjgacw4gfc71h3cnzra4";
+      sha256 = "0x5lh6ws3rn2zxv7bagam54rkcslxrx6w1anwd35rjxsn4xx0d83";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "1.10.1";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -161,10 +161,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   escape = {
     groups = ["default"];
@@ -192,10 +192,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   fourflusher = {
     groups = ["default"];
@@ -243,30 +243,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.9";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.2";
+    version = "5.14.4";
   };
   molinillo = {
     groups = ["default"];
@@ -355,10 +355,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.7";
+    version = "1.2.9";
   };
   xcodeproj = {
     dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
diff --git a/nixpkgs/pkgs/development/mobile/cocoapods/gemset.nix b/nixpkgs/pkgs/development/mobile/cocoapods/gemset.nix
index 732d2a2cdd8d..90c1687aeaba 100644
--- a/nixpkgs/pkgs/development/mobile/cocoapods/gemset.nix
+++ b/nixpkgs/pkgs/development/mobile/cocoapods/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dpnk20s754fz6jfz9sp3ri49hn46ksw4hf6ycnlw7s3hsdxqgcd";
+      sha256 = "0fp4gr3g25qgl01y3pd88wfh4pjc5zj3bz4v7rkxxwaxdjg7a9cc";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "5.2.4.5";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -45,10 +45,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1825ll26p28swjiw8n3x2pnh5ygsmg83spf82fnzcjn2p87vc5lf";
+      sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.0.3";
   };
   claide = {
     groups = ["default"];
@@ -66,10 +66,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bbpg93gqjryxwr864z7s3jp3ic5pig313jcly4g3n159ssx3a4j";
+      sha256 = "0k1fgp93nbgvp5m76wf067jcqy5zzbx0kczcxvhrzdxkkixzm30a";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "1.10.1";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
@@ -77,10 +77,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sb07hj2kjygrzbdkzsyabcsfmip8gcfpjgacw4gfc71h3cnzra4";
+      sha256 = "0x5lh6ws3rn2zxv7bagam54rkcslxrx6w1anwd35rjxsn4xx0d83";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "1.10.1";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -153,10 +153,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   escape = {
     source = {
@@ -182,10 +182,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   fourflusher = {
     groups = ["default"];
@@ -229,30 +229,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.9";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.2";
+    version = "5.14.4";
   };
   molinillo = {
     source = {
@@ -333,10 +333,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.7";
+    version = "1.2.9";
   };
   xcodeproj = {
     dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
diff --git a/nixpkgs/pkgs/development/mobile/genymotion/default.nix b/nixpkgs/pkgs/development/mobile/genymotion/default.nix
index 5602f598e9d6..1aa81132c260 100644
--- a/nixpkgs/pkgs/development/mobile/genymotion/default.nix
+++ b/nixpkgs/pkgs/development/mobile/genymotion/default.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
     sha256 = "0lvfdlpmmsyq2i9gs4mf6a8fxkfimdr4rhyihqnfhjij3fzxz4lk";
   };
 
-  buildInputs = [ makeWrapper which xdg-utils ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ which xdg-utils ];
 
   unpackPhase = ''
     mkdir -p phony-home $out/share/applications
diff --git a/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix b/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix
index f471dc977b3d..89fd34bb5a3d 100644
--- a/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix
+++ b/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
   }
   else throw "Platform: ${stdenv.system} not supported!";
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   buildCommand = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix b/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix
index 0742247893c3..fb462cc27fe6 100644
--- a/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix
+++ b/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
   }
   else throw "Platform: ${stdenv.system} not supported!";
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   buildCommand = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix b/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix
index 965a385ac56c..c207b112fae2 100644
--- a/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix
+++ b/nixpkgs/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
   }
   else throw "Platform: ${stdenv.system} not supported!";
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   buildCommand = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/development/node-packages/default.nix b/nixpkgs/pkgs/development/node-packages/default.nix
index 517e719c287b..fc02654451fa 100644
--- a/nixpkgs/pkgs/development/node-packages/default.nix
+++ b/nixpkgs/pkgs/development/node-packages/default.nix
@@ -77,6 +77,10 @@ let
       dependencies = builtins.filter (d: d.packageName != "@expo/traveling-fastlane-${if stdenv.isLinux then "darwin" else "linux"}") attrs.dependencies;
     });
 
+    "@electron-forge/cli" = super."@electron-forge/cli".override {
+      buildInputs = [ self.node-pre-gyp self.rimraf ];
+    };
+
     git-ssb = super.git-ssb.override {
       buildInputs = [ self.node-gyp-build ];
       meta.broken = since "10";
@@ -112,7 +116,7 @@ let
     mirakurun = super.mirakurun.override rec {
       nativeBuildInputs = with pkgs; [ makeWrapper ];
       postInstall = let
-        runtimeDeps = [ nodejs ] ++ (with pkgs; [ bash which v4l_utils ]);
+        runtimeDeps = [ nodejs ] ++ (with pkgs; [ bash which v4l-utils ]);
       in
       ''
         substituteInPlace $out/lib/node_modules/mirakurun/processes.json \
diff --git a/nixpkgs/pkgs/development/node-packages/generate.sh b/nixpkgs/pkgs/development/node-packages/generate.sh
index 5f9936c51240..e7a15d5d869c 100755
--- a/nixpkgs/pkgs/development/node-packages/generate.sh
+++ b/nixpkgs/pkgs/development/node-packages/generate.sh
@@ -2,8 +2,13 @@
 set -eu -o pipefail
 
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-node2nix=$(nix-build ../../.. --no-out-link -A nodePackages.node2nix)
-
+node2nix=$(nix-build ../../.. -A nodePackages.node2nix)
 cd ${DIR}
 rm -f ./node-env.nix
 ${node2nix}/bin/node2nix -i node-packages.json -o node-packages.nix -c composition.nix
+# using --no-out-link in nix-build argument would cause the
+# gc to run before the script finishes
+# which would cause a failure
+# it's safer to just remove the link after the script finishes
+# see https://github.com/NixOS/nixpkgs/issues/112846 for more details
+rm ./result
diff --git a/nixpkgs/pkgs/development/node-packages/node-packages.json b/nixpkgs/pkgs/development/node-packages/node-packages.json
index 7e78691b20ca..01f87779a88e 100644
--- a/nixpkgs/pkgs/development/node-packages/node-packages.json
+++ b/nixpkgs/pkgs/development/node-packages/node-packages.json
@@ -12,6 +12,7 @@
 , "@webassemblyjs/wast-refmt"
 , "alloy"
 , "asar"
+, "balanceofsatoshis"
 , "bash-language-server"
 , "bower"
 , "bower2nix"
@@ -22,6 +23,8 @@
 , "cdktf-cli"
 , "clean-css-cli"
 , "clubhouse-cli"
+, "coc-clangd"
+, "coc-cmake"
 , "coc-css"
 , "coc-diagnostic"
 , "coc-emmet"
@@ -39,6 +42,7 @@
 , "coc-metals"
 , "coc-pairs"
 , "coc-prettier"
+, "coc-pyright"
 , "coc-python"
 , "coc-r-lsp"
 , "coc-rls"
@@ -48,6 +52,7 @@
 , "coc-solargraph"
 , "coc-stylelint"
 , "coc-tabnine"
+, "coc-texlab"
 , "coc-tslint"
 , "coc-tslint-plugin"
 , "coc-tsserver"
@@ -71,6 +76,7 @@
 , "diagnostic-languageserver"
 , "dockerfile-language-server-nodejs"
 , "elasticdump"
+, "@electron-forge/cli"
 , "elm-oracle"
 , "emoj"
 , "emojione"
@@ -85,9 +91,12 @@
 , "firebase-tools"
 , "fixjson"
 , "fkill-cli"
+, "fleek-cli"
 , "flood"
 , "forever"
 , "fx"
+, "ganache-cli"
+, "gatsby-cli"
 , "get-graphql-schema"
 , "git-run"
 , "git-ssb"
@@ -115,7 +124,7 @@
 , "indium"
 , "insect"
 , "ionic"
-, {"iosevka": "https://github.com/be5invis/Iosevka/archive/v4.5.0.tar.gz"}
+, {"iosevka": "https://github.com/be5invis/Iosevka/archive/v5.0.2.tar.gz"}
 , "jake"
 , "javascript-typescript-langserver"
 , "joplin"
@@ -128,6 +137,7 @@
 , "json-refs"
 , "json-server"
 , "jsonlint"
+, "kaput-cli"
 , "karma"
 , "lcov-result-merger"
 , "leetcode-cli"
@@ -183,6 +193,7 @@
 , "readability-cli"
 , "redoc-cli"
 , "reveal.js"
+, "rimraf"
 , "rollup"
 , { "rust-analyzer-build-deps": "../../misc/vscode-extensions/rust-analyzer/build-deps" }
 , "s3http"
diff --git a/nixpkgs/pkgs/development/node-packages/node-packages.nix b/nixpkgs/pkgs/development/node-packages/node-packages.nix
index b40d868f2a65..505b256037c2 100644
--- a/nixpkgs/pkgs/development/node-packages/node-packages.nix
+++ b/nixpkgs/pkgs/development/node-packages/node-packages.nix
@@ -22,76 +22,103 @@ let
         sha512 = "t4WmWoGV9gyzypwG3y3JlcK2t8fKLtvzBA7xEoFTj9SMPvOuLsf13uh4ikK0RRaaa9RPPWLgFUdOyIRaQvCpwQ==";
       };
     };
-    "@angular-devkit/architect-0.1102.0" = {
+    "@alexbosworth/html2unicode-1.1.5" = {
+      name = "_at_alexbosworth_slash_html2unicode";
+      packageName = "@alexbosworth/html2unicode";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@alexbosworth/html2unicode/-/html2unicode-1.1.5.tgz";
+        sha512 = "CXMFAyovJHtLzKlraBpGlM/8TX9bvVz081IDZkQF3IMGHePgHCAs1vQdnKM38VMGekywNCbo7kt3fHooSMgA2w==";
+      };
+    };
+    "@alexbosworth/request-2.88.3" = {
+      name = "_at_alexbosworth_slash_request";
+      packageName = "@alexbosworth/request";
+      version = "2.88.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@alexbosworth/request/-/request-2.88.3.tgz";
+        sha512 = "51/Y5x0SncVGQc274YckWMo9CooUGp7XppgV9K8v5eBwcXnw9sM/j0LpAvUFE7gjJcmZVYXDmLxtOYtgC0f2dg==";
+      };
+    };
+    "@alexbosworth/saxophone-0.6.2" = {
+      name = "_at_alexbosworth_slash_saxophone";
+      packageName = "@alexbosworth/saxophone";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@alexbosworth/saxophone/-/saxophone-0.6.2.tgz";
+        sha512 = "o/xdK8b4P0t/xpCARgWXAeaiWeh9jeua6bP1jrcbfN39+Z4zC4x2jg4NysHNhz6spRG8dJFH3kJIUoIbs0Ckww==";
+      };
+    };
+    "@angular-devkit/architect-0.1102.7" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1102.0";
+      version = "0.1102.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.0.tgz";
-        sha512 = "d9Da6SiTiDb5N1avxWLcPHSyWCq3G62TlROXxr32WkcQRko8wtgW5VOzgSkdmY2p6UTSME89naUojfzgu2Wh6g==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.7.tgz";
+        sha512 = "55SduK1ZpoHDSNd5ACBFVUQ5dMNVLOznJDoec76acrDuY7EZ6bptfjcK329fBQME0Ne6Jvip7zzrmec+PBXS+g==";
       };
     };
-    "@angular-devkit/core-11.0.3" = {
+    "@angular-devkit/core-11.2.4" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "11.0.3";
+      version = "11.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.0.3.tgz";
-        sha512 = "gJRiBj0gWDR2VtIvLvwwc/GM2MZvg1xw69ZbBJ1VuUgDqPBHdC8q3UMW3B82wdhxK+RBYa7ZOJxtIVggaHkm9g==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.4.tgz";
+        sha512 = "98mGDV4XtKWiQ/2D6yzvOHrnJovXchaAN9AjscAHd2an8Fkiq72d9m2wREpk+2J40NWTDB6J5iesTh3qbi8+CA==";
       };
     };
-    "@angular-devkit/core-11.1.0" = {
+    "@angular-devkit/core-11.2.6" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "11.1.0";
+      version = "11.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.1.0.tgz";
-        sha512 = "O2oIcqpQKGvYJH88d/NCgLYZGc9laA1eo2d1s0FH1Udu4c2L+bAsviQqtTKNmzyaqODHrlkt+eKx7uakdwWtnQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.6.tgz";
+        sha512 = "3dA0Z6sIIxCDjZS/DucgmIKti7EZ/LgHoHgCO72Q50H5ZXbUSNBz5wGl5hVq2+gzrnFgU/0u40MIs6eptk30ZA==";
       };
     };
-    "@angular-devkit/core-11.2.0" = {
+    "@angular-devkit/core-11.2.7" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "11.2.0";
+      version = "11.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.0.tgz";
-        sha512 = "qqYEH8m/bwpngoLDMFuth8ykvoHxQ3aHHnAWfRXz9NXydwSfathG0VSYCctB126sK39JKIn+xq16CQAExxNu+Q==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.7.tgz";
+        sha512 = "oflo+LsUob5nF0PknivtRdkHH/iMbVNIPRnv/c52Nk7+FUlEx53pkLWBc2rdhTrEptBFMmrpNaa30P+TQrFNkQ==";
       };
     };
-    "@angular-devkit/schematics-11.0.3" = {
+    "@angular-devkit/schematics-11.2.4" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "11.0.3";
+      version = "11.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.0.3.tgz";
-        sha512 = "VZnqgnnfyzyMluIDvGp+ZlDU2P9BnjrhacBOdqBS/jNQ7oxyE0AWrUApGXcejOJ13Z7pEf31E64P3bImcjwP+A==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.4.tgz";
+        sha512 = "M9Ike1TYawOIHzenlZS1ufQbsS+Z11/doj5w/UrU0q2OEKc6U375t5qVGgKo3PLHHS8osb9aW9xYwBfVlKrryQ==";
       };
     };
-    "@angular-devkit/schematics-11.1.0" = {
+    "@angular-devkit/schematics-11.2.6" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "11.1.0";
+      version = "11.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.1.0.tgz";
-        sha512 = "6qfR5w1jyk8MC+5Tfimz+Czsq3WlsVoB57dpxSZfhGGsv1Vxc8Q41y5f3BrAyEqHYjcH7NtaoLQoJjtra5KaAg==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.6.tgz";
+        sha512 = "bhi2+5xtVAjtr3bsXKT8pnoBamQrArd/Y20ueA4Od7cd38YT97nzTA1wyHBFG0vWd0HMyg42ZS0aycNBuOebaA==";
       };
     };
-    "@angular-devkit/schematics-11.2.0" = {
+    "@angular-devkit/schematics-11.2.7" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "11.2.0";
+      version = "11.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.0.tgz";
-        sha512 = "sMDacACJbA4pykiqgJf/RdW0damcf4mDqErGgEqs/bGG+SBUb8+wgt4cQnUwwVX5V2nMdvv7f0A84rgR6I3G2w==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.7.tgz";
+        sha512 = "cnORKnyVtsdVZ180ZZyrmCMeSH1IGK2apfgGGW3UaUZvTAtolQPrqT0RQUK8qLF/RC85xy9QYXApiAaLDUixIw==";
       };
     };
-    "@angular-devkit/schematics-cli-0.1100.3" = {
+    "@angular-devkit/schematics-cli-0.1102.6" = {
       name = "_at_angular-devkit_slash_schematics-cli";
       packageName = "@angular-devkit/schematics-cli";
-      version = "0.1100.3";
+      version = "0.1102.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-0.1100.3.tgz";
-        sha512 = "dECFHCDTgWfSHosfKTeQoyTgUUqgJaftxg4DxA23sMsQtDb1U8ZsIIPpH+L4QhCDT2zlhv51ynd5RUgu28h2DQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-0.1102.6.tgz";
+        sha512 = "86PmafA9mYDeM08cNWHcJCEY1Yqo5aq/YaBzCak93luByDQ4Ao4Jqts9l/xBCZBGUdVrczCNzcdwr/Y/6JPPzA==";
       };
     };
     "@antora/asciidoc-loader-2.3.4" = {
@@ -211,15 +238,6 @@ let
         sha512 = "QdwOGF1+eeyFh+17v2Tz626WX0nucd1iKOm6JUTUvCZdbolblCOOQCxGrQPY0f7jEhn36PiAWqZnsC2r5vmUWg==";
       };
     };
-    "@apollo/federation-0.20.7" = {
-      name = "_at_apollo_slash_federation";
-      packageName = "@apollo/federation";
-      version = "0.20.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.20.7.tgz";
-        sha512 = "URIayksqBaJ+xlcJmyGCf+OqHP60lX2CYGv9fDWQ1KM48sEN1ABHGXkEa0vwgWMH0XUVo94lYDVY11BAJUsuCw==";
-      };
-    };
     "@apollo/protobufjs-1.0.5" = {
       name = "_at_apollo_slash_protobufjs";
       packageName = "@apollo/protobufjs";
@@ -229,58 +247,40 @@ let
         sha512 = "ZtyaBH1icCgqwIGb3zrtopV2D5Q8yxibkJzlaViM08eOhTQc7rACdYu0pfORFfhllvdMZ3aq69vifYHszY4gNA==";
       };
     };
-    "@apollographql/apollo-tools-0.4.8" = {
+    "@apollographql/apollo-tools-0.4.9" = {
       name = "_at_apollographql_slash_apollo-tools";
       packageName = "@apollographql/apollo-tools";
-      version = "0.4.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.8.tgz";
-        sha512 = "W2+HB8Y7ifowcf3YyPHgDI05izyRtOeZ4MqIr7LbTArtmJ0ZHULWpn84SGMW7NAvTV1tFExpHlveHhnXuJfuGA==";
-      };
-    };
-    "@apollographql/graphql-language-service-interface-2.0.2" = {
-      name = "_at_apollographql_slash_graphql-language-service-interface";
-      packageName = "@apollographql/graphql-language-service-interface";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/graphql-language-service-interface/-/graphql-language-service-interface-2.0.2.tgz";
-        sha512 = "28wePK0hlIVjgmvMXMAUq8qRSjz9O+6lqFp4PzOTHtfJfSsjVe9EfjF98zTpHsTgT3HcOxmbqDZZy8jlXtOqEA==";
-      };
-    };
-    "@apollographql/graphql-language-service-parser-2.0.2" = {
-      name = "_at_apollographql_slash_graphql-language-service-parser";
-      packageName = "@apollographql/graphql-language-service-parser";
-      version = "2.0.2";
+      version = "0.4.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/graphql-language-service-parser/-/graphql-language-service-parser-2.0.2.tgz";
-        sha512 = "rpTPrEJu1PMaRQxz5P8BZWsixNNhYloS0H0dwTxNBuE3qctbARvR7o8UCKLsmKgTbo+cz3T3a6IAsWlkHgMWGg==";
+        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.9.tgz";
+        sha512 = "M50pk8oo3CGTu4waGOklIX3YtTZoPfWG9K/G9WB8NpyQGA1OwYTiBFv94XqUtKElTDoFwoMXpMQd3Wy5dINvxA==";
       };
     };
-    "@apollographql/graphql-language-service-types-2.0.2" = {
-      name = "_at_apollographql_slash_graphql-language-service-types";
-      packageName = "@apollographql/graphql-language-service-types";
-      version = "2.0.2";
+    "@apollographql/graphql-playground-html-1.6.27" = {
+      name = "_at_apollographql_slash_graphql-playground-html";
+      packageName = "@apollographql/graphql-playground-html";
+      version = "1.6.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/graphql-language-service-types/-/graphql-language-service-types-2.0.2.tgz";
-        sha512 = "vE+Dz8pG+Xa1Z2nMl82LoO66lQ6JqBUjaXqLDvS3eMjvA3N4hf+YUDOWfPdNZ0zjhHhHXzUIIZCkax6bXfFbzQ==";
+        url = "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz";
+        sha512 = "tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==";
       };
     };
-    "@apollographql/graphql-language-service-utils-2.0.2" = {
-      name = "_at_apollographql_slash_graphql-language-service-utils";
-      packageName = "@apollographql/graphql-language-service-utils";
-      version = "2.0.2";
+    "@apollographql/graphql-upload-8-fork-8.1.3" = {
+      name = "_at_apollographql_slash_graphql-upload-8-fork";
+      packageName = "@apollographql/graphql-upload-8-fork";
+      version = "8.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/graphql-language-service-utils/-/graphql-language-service-utils-2.0.2.tgz";
-        sha512 = "fDj5rWlTi/czvUS5t7V7I45Ai6bOO3Z7JARYj21Y2xxfbRGtJi6h8FvLX0N/EbzQgo/fiZc/HAhtfwn+OCjD7A==";
+        url = "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz";
+        sha512 = "ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==";
       };
     };
-    "@apollographql/graphql-playground-html-1.6.26" = {
-      name = "_at_apollographql_slash_graphql-playground-html";
-      packageName = "@apollographql/graphql-playground-html";
-      version = "1.6.26";
+    "@arcanis/slice-ansi-1.0.2" = {
+      name = "_at_arcanis_slash_slice-ansi";
+      packageName = "@arcanis/slice-ansi";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.26.tgz";
-        sha512 = "XAwXOIab51QyhBxnxySdK3nuMEUohhDsHQ5Rbco/V1vjlP75zZ0ZLHD9dTpXTN8uxKxopb2lUvJTq+M4g2Q0HQ==";
+        url = "https://registry.npmjs.org/@arcanis/slice-ansi/-/slice-ansi-1.0.2.tgz";
+        sha512 = "lDL63z0W/L/WTgqrwVOuNyMAsTv+pvjybd21z9SWdStmQoXT59E/iVWwat3gYjcdTNBf6oHAMoyFm8dtjpXEYw==";
       };
     };
     "@ardatan/aggregate-error-0.0.6" = {
@@ -319,6 +319,15 @@ let
         sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
       };
     };
+    "@babel/code-frame-7.12.11" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.12.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz";
+        sha512 = "Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==";
+      };
+    };
     "@babel/code-frame-7.12.13" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
@@ -328,22 +337,31 @@ let
         sha512 = "HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==";
       };
     };
-    "@babel/compat-data-7.12.13" = {
+    "@babel/compat-data-7.13.12" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.12.13";
+      version = "7.13.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz";
+        sha512 = "3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==";
+      };
+    };
+    "@babel/core-7.10.5" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.13.tgz";
-        sha512 = "U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz";
+        sha512 = "O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==";
       };
     };
-    "@babel/core-7.12.16" = {
+    "@babel/core-7.13.14" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.12.16";
+      version = "7.13.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.12.16.tgz";
-        sha512 = "t/hHIB504wWceOeaOoONOhu+gX+hpjfeN6YRBT209X/4sibZQfSF1I0HFRRlBe97UZZosGx5XwUg1ZgNbelmNw==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.13.14.tgz";
+        sha512 = "wZso/vyF4ki0l0znlgM4inxbdrUvCb+cVz8grxDq+6C9k6qbqoIJteQOKicaKjCipU3ISV+XedCqpL2RJJVehA==";
       };
     };
     "@babel/core-7.9.0" = {
@@ -355,22 +373,13 @@ let
         sha512 = "kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==";
       };
     };
-    "@babel/generator-7.12.11" = {
+    "@babel/generator-7.13.9" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.12.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz";
-        sha512 = "Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==";
-      };
-    };
-    "@babel/generator-7.12.15" = {
-      name = "_at_babel_slash_generator";
-      packageName = "@babel/generator";
-      version = "7.12.15";
+      version = "7.13.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz";
-        sha512 = "6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz";
+        sha512 = "mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==";
       };
     };
     "@babel/helper-annotate-as-pure-7.12.13" = {
@@ -391,40 +400,49 @@ let
         sha512 = "CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==";
       };
     };
-    "@babel/helper-compilation-targets-7.12.16" = {
+    "@babel/helper-compilation-targets-7.13.13" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.12.16";
+      version = "7.13.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.16.tgz";
-        sha512 = "dBHNEEaZx7F3KoUYqagIhRIeqyyuI65xMndMZ3WwGwEBI609I4TleYQHcrS627vbKyNTXqShoN+fvYD9HuQxAg==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz";
+        sha512 = "q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.12.16" = {
+    "@babel/helper-create-class-features-plugin-7.13.11" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.12.16";
+      version = "7.13.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.16.tgz";
-        sha512 = "KbSEj8l9zYkMVHpQqM3wJNxS1d9h3U9vm/uE5tpjMbaj3lTp+0noe3KPsV5dSD9jxKnf9jO9Ip9FX5PKNZCKow==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz";
+        sha512 = "ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.12.16" = {
+    "@babel/helper-create-regexp-features-plugin-7.12.17" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.12.16";
+      version = "7.12.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz";
+        sha512 = "p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==";
+      };
+    };
+    "@babel/helper-define-polyfill-provider-0.1.5" = {
+      name = "_at_babel_slash_helper-define-polyfill-provider";
+      packageName = "@babel/helper-define-polyfill-provider";
+      version = "0.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.16.tgz";
-        sha512 = "jAcQ1biDYZBdaAxB4yg46/XirgX7jBDiMHDbwYQOgtViLBXGxJpZQ24jutmBqAIB/q+AwB6j+NbBXjKxEY8vqg==";
+        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz";
+        sha512 = "nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==";
       };
     };
-    "@babel/helper-explode-assignable-expression-7.12.13" = {
+    "@babel/helper-explode-assignable-expression-7.13.0" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz";
-        sha512 = "5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw==";
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz";
+        sha512 = "qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==";
       };
     };
     "@babel/helper-function-name-7.12.13" = {
@@ -445,40 +463,40 @@ let
         sha512 = "DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==";
       };
     };
-    "@babel/helper-hoist-variables-7.12.13" = {
+    "@babel/helper-hoist-variables-7.13.0" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.12.13.tgz";
-        sha512 = "KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw==";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz";
+        sha512 = "0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.12.16" = {
+    "@babel/helper-member-expression-to-functions-7.13.12" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.12.16";
+      version = "7.13.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.16.tgz";
-        sha512 = "zYoZC1uvebBFmj1wFAlXwt35JLEgecefATtKp20xalwEK8vHAixLBXTGxNrVGEmTT+gzOThUgr8UEdgtalc1BQ==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz";
+        sha512 = "48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==";
       };
     };
-    "@babel/helper-module-imports-7.12.13" = {
+    "@babel/helper-module-imports-7.13.12" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.12.13";
+      version = "7.13.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz";
-        sha512 = "NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==";
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz";
+        sha512 = "4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==";
       };
     };
-    "@babel/helper-module-transforms-7.12.13" = {
+    "@babel/helper-module-transforms-7.13.14" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.12.13";
+      version = "7.13.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz";
-        sha512 = "acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz";
+        sha512 = "QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==";
       };
     };
     "@babel/helper-optimise-call-expression-7.12.13" = {
@@ -490,40 +508,49 @@ let
         sha512 = "BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==";
       };
     };
-    "@babel/helper-plugin-utils-7.12.13" = {
+    "@babel/helper-plugin-utils-7.10.4" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.12.13";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
+      };
+    };
+    "@babel/helper-plugin-utils-7.13.0" = {
+      name = "_at_babel_slash_helper-plugin-utils";
+      packageName = "@babel/helper-plugin-utils";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz";
-        sha512 = "C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz";
+        sha512 = "ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.12.13" = {
+    "@babel/helper-remap-async-to-generator-7.13.0" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz";
-        sha512 = "Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz";
+        sha512 = "pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==";
       };
     };
-    "@babel/helper-replace-supers-7.12.13" = {
+    "@babel/helper-replace-supers-7.13.12" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.12.13";
+      version = "7.13.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz";
-        sha512 = "pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz";
+        sha512 = "Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==";
       };
     };
-    "@babel/helper-simple-access-7.12.13" = {
+    "@babel/helper-simple-access-7.13.12" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.12.13";
+      version = "7.13.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz";
-        sha512 = "0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==";
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz";
+        sha512 = "7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==";
       };
     };
     "@babel/helper-skip-transparent-expression-wrappers-7.12.1" = {
@@ -553,49 +580,58 @@ let
         sha512 = "np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==";
       };
     };
-    "@babel/helper-validator-option-7.12.16" = {
+    "@babel/helper-validator-option-7.12.17" = {
       name = "_at_babel_slash_helper-validator-option";
       packageName = "@babel/helper-validator-option";
-      version = "7.12.16";
+      version = "7.12.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.16.tgz";
-        sha512 = "uCgsDBPUQDvzr11ePPo4TVEocxj8RXjUVSC/Y8N1YpVAI/XDdUwGJu78xmlGhTxj2ntaWM7n9LQdRtyhOzT2YQ==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz";
+        sha512 = "TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==";
       };
     };
-    "@babel/helper-wrap-function-7.12.13" = {
+    "@babel/helper-wrap-function-7.13.0" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.13.tgz";
-        sha512 = "t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz";
+        sha512 = "1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==";
       };
     };
-    "@babel/helpers-7.12.13" = {
+    "@babel/helpers-7.13.10" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.12.13";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz";
-        sha512 = "oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz";
+        sha512 = "4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==";
       };
     };
-    "@babel/highlight-7.12.13" = {
+    "@babel/highlight-7.13.10" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.12.13";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz";
-        sha512 = "kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz";
+        sha512 = "5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==";
       };
     };
-    "@babel/parser-7.12.16" = {
+    "@babel/parser-7.13.13" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.12.16";
+      version = "7.13.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz";
-        sha512 = "c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz";
+        sha512 = "OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==";
+      };
+    };
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12" = {
+      name = "_at_babel_slash_plugin-bugfix-v8-spread-parameters-in-optional-chaining";
+      packageName = "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining";
+      version = "7.13.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz";
+        sha512 = "d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==";
       };
     };
     "@babel/plugin-external-helpers-7.8.3" = {
@@ -607,13 +643,13 @@ let
         sha512 = "mx0WXDDiIl5DwzMtzWGRSPugXi9BxROS05GQrhLNbEamhBiicgn994ibwkyiBH+6png7bm/yA7AUsvHyCXi4Vw==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.12.13" = {
+    "@babel/plugin-proposal-async-generator-functions-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.13.tgz";
-        sha512 = "1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz";
+        sha512 = "rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==";
       };
     };
     "@babel/plugin-proposal-class-properties-7.12.13" = {
@@ -625,13 +661,22 @@ let
         sha512 = "8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.12.16" = {
+    "@babel/plugin-proposal-class-properties-7.13.0" = {
+      name = "_at_babel_slash_plugin-proposal-class-properties";
+      packageName = "@babel/plugin-proposal-class-properties";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz";
+        sha512 = "KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==";
+      };
+    };
+    "@babel/plugin-proposal-dynamic-import-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.12.16";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.16.tgz";
-        sha512 = "yiDkYFapVxNOCcBfLnsb/qdsliroM+vc3LHiZwS4gh7pFjo5Xq3BDhYBNn3H3ao+hWPvqeeTdU+s+FIvokov+w==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz";
+        sha512 = "ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==";
       };
     };
     "@babel/plugin-proposal-export-default-from-7.12.13" = {
@@ -652,31 +697,31 @@ let
         sha512 = "INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.12.13" = {
+    "@babel/plugin-proposal-json-strings-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.13.tgz";
-        sha512 = "v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz";
+        sha512 = "w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==";
       };
     };
-    "@babel/plugin-proposal-logical-assignment-operators-7.12.13" = {
+    "@babel/plugin-proposal-logical-assignment-operators-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
       packageName = "@babel/plugin-proposal-logical-assignment-operators";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.13.tgz";
-        sha512 = "fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz";
+        sha512 = "aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.12.13" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.13.tgz";
-        sha512 = "Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz";
+        sha512 = "iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==";
       };
     };
     "@babel/plugin-proposal-numeric-separator-7.12.13" = {
@@ -688,40 +733,49 @@ let
         sha512 = "O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.12.13" = {
+    "@babel/plugin-proposal-object-rest-spread-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.12.13";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz";
+        sha512 = "6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==";
+      };
+    };
+    "@babel/plugin-proposal-object-rest-spread-7.13.8" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.13.tgz";
-        sha512 = "WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz";
+        sha512 = "DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.12.13" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.13.tgz";
-        sha512 = "9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz";
+        sha512 = "0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.12.16" = {
+    "@babel/plugin-proposal-optional-chaining-7.13.12" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.12.16";
+      version = "7.13.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.16.tgz";
-        sha512 = "O3ohPwOhkwji5Mckb7F/PJpJVJY3DpPsrt/F0Bk40+QMk9QpAIqeGusHWqu/mYqsM8oBa6TziL/2mbERWsUZjg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz";
+        sha512 = "fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==";
       };
     };
-    "@babel/plugin-proposal-private-methods-7.12.13" = {
+    "@babel/plugin-proposal-private-methods-7.13.0" = {
       name = "_at_babel_slash_plugin-proposal-private-methods";
       packageName = "@babel/plugin-proposal-private-methods";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.13.tgz";
-        sha512 = "sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz";
+        sha512 = "MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==";
       };
     };
     "@babel/plugin-proposal-unicode-property-regex-7.12.13" = {
@@ -814,6 +868,15 @@ let
         sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
       };
     };
+    "@babel/plugin-syntax-jsx-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-jsx";
+      packageName = "@babel/plugin-syntax-jsx";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz";
+        sha512 = "KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==";
+      };
+    };
     "@babel/plugin-syntax-jsx-7.12.13" = {
       name = "_at_babel_slash_plugin-syntax-jsx";
       packageName = "@babel/plugin-syntax-jsx";
@@ -895,22 +958,22 @@ let
         sha512 = "cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.12.13" = {
+    "@babel/plugin-transform-arrow-functions-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.13.tgz";
-        sha512 = "tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz";
+        sha512 = "96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.12.13" = {
+    "@babel/plugin-transform-async-to-generator-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.13.tgz";
-        sha512 = "psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz";
+        sha512 = "3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==";
       };
     };
     "@babel/plugin-transform-block-scoped-functions-7.12.13" = {
@@ -931,31 +994,31 @@ let
         sha512 = "Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==";
       };
     };
-    "@babel/plugin-transform-classes-7.12.13" = {
+    "@babel/plugin-transform-classes-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.13.tgz";
-        sha512 = "cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz";
+        sha512 = "9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.12.13" = {
+    "@babel/plugin-transform-computed-properties-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.13.tgz";
-        sha512 = "dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz";
+        sha512 = "RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.12.13" = {
+    "@babel/plugin-transform-destructuring-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.13.tgz";
-        sha512 = "Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz";
+        sha512 = "zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==";
       };
     };
     "@babel/plugin-transform-dotall-regex-7.12.13" = {
@@ -985,22 +1048,22 @@ let
         sha512 = "fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==";
       };
     };
-    "@babel/plugin-transform-flow-strip-types-7.12.13" = {
+    "@babel/plugin-transform-flow-strip-types-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-flow-strip-types";
       packageName = "@babel/plugin-transform-flow-strip-types";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.13.tgz";
-        sha512 = "39/t9HtN+Jlc7EEY6oCSCf3kRrKIl2JULOGPnHZiaRjoYZEFaDXDZI32uE2NosQRh8o6N9B+8iGvDK7ToJhJaw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz";
+        sha512 = "EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg==";
       };
     };
-    "@babel/plugin-transform-for-of-7.12.13" = {
+    "@babel/plugin-transform-for-of-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.13.tgz";
-        sha512 = "xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz";
+        sha512 = "IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==";
       };
     };
     "@babel/plugin-transform-function-name-7.12.13" = {
@@ -1030,40 +1093,40 @@ let
         sha512 = "kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.12.13" = {
+    "@babel/plugin-transform-modules-amd-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.13.tgz";
-        sha512 = "JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz";
+        sha512 = "EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.12.13" = {
+    "@babel/plugin-transform-modules-commonjs-7.13.8" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.13.tgz";
-        sha512 = "OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz";
+        sha512 = "9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.12.13" = {
+    "@babel/plugin-transform-modules-systemjs-7.13.8" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.12.13";
+      version = "7.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz";
-        sha512 = "aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz";
+        sha512 = "hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.12.13" = {
+    "@babel/plugin-transform-modules-umd-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.13.tgz";
-        sha512 = "BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz";
+        sha512 = "D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==";
       };
     };
     "@babel/plugin-transform-named-capturing-groups-regex-7.12.13" = {
@@ -1102,13 +1165,13 @@ let
         sha512 = "JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==";
       };
     };
-    "@babel/plugin-transform-parameters-7.12.13" = {
+    "@babel/plugin-transform-parameters-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.13.tgz";
-        sha512 = "e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz";
+        sha512 = "Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==";
       };
     };
     "@babel/plugin-transform-property-literals-7.12.13" = {
@@ -1129,13 +1192,22 @@ let
         sha512 = "MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==";
       };
     };
-    "@babel/plugin-transform-react-jsx-7.12.16" = {
+    "@babel/plugin-transform-react-jsx-7.13.12" = {
       name = "_at_babel_slash_plugin-transform-react-jsx";
       packageName = "@babel/plugin-transform-react-jsx";
-      version = "7.12.16";
+      version = "7.13.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz";
+        sha512 = "jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==";
+      };
+    };
+    "@babel/plugin-transform-react-jsx-self-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-react-jsx-self";
+      packageName = "@babel/plugin-transform-react-jsx-self";
+      version = "7.12.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.16.tgz";
-        sha512 = "dNu0vAbIk8OkqJfGtYF6ADk6jagoyAl+Ks5aoltbAlfoKv8d6yooi3j+kObeSQaCj9PgN6KMZPB90wWyek5TmQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz";
+        sha512 = "FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ==";
       };
     };
     "@babel/plugin-transform-react-jsx-source-7.12.13" = {
@@ -1165,13 +1237,13 @@ let
         sha512 = "xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==";
       };
     };
-    "@babel/plugin-transform-runtime-7.12.15" = {
+    "@babel/plugin-transform-runtime-7.13.10" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.12.15";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.15.tgz";
-        sha512 = "OwptMSRnRWJo+tJ9v9wgAf72ydXWfYSXWhnQjZing8nGZSDFqU1MBleKM3+DriKkcbv7RagA8gVeB0A1PNlNow==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.10.tgz";
+        sha512 = "Y5k8ipgfvz5d/76tx7JYbKQTcgFSU6VgJ3kKQv4zGTKr+a9T/KBvfRvGtSFgKDQGt/DBykQixV0vNWKIdzWErA==";
       };
     };
     "@babel/plugin-transform-shorthand-properties-7.12.13" = {
@@ -1183,13 +1255,13 @@ let
         sha512 = "xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==";
       };
     };
-    "@babel/plugin-transform-spread-7.12.13" = {
+    "@babel/plugin-transform-spread-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.13.tgz";
-        sha512 = "dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz";
+        sha512 = "V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==";
       };
     };
     "@babel/plugin-transform-sticky-regex-7.12.13" = {
@@ -1201,13 +1273,13 @@ let
         sha512 = "Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.12.13" = {
+    "@babel/plugin-transform-template-literals-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.12.13";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.13.tgz";
-        sha512 = "arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz";
+        sha512 = "d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==";
       };
     };
     "@babel/plugin-transform-typeof-symbol-7.12.13" = {
@@ -1219,13 +1291,13 @@ let
         sha512 = "eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==";
       };
     };
-    "@babel/plugin-transform-typescript-7.12.16" = {
+    "@babel/plugin-transform-typescript-7.13.0" = {
       name = "_at_babel_slash_plugin-transform-typescript";
       packageName = "@babel/plugin-transform-typescript";
-      version = "7.12.16";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.16.tgz";
-        sha512 = "88hep+B6dtDOiEqtRzwHp2TYO+CN8nbAV3eh5OpBGPsedug9J6y1JwLKzXRIGGQZDC8NlpxpQMIIxcfIW96Wgw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz";
+        sha512 = "elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ==";
       };
     };
     "@babel/plugin-transform-unicode-escapes-7.12.13" = {
@@ -1246,31 +1318,31 @@ let
         sha512 = "mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==";
       };
     };
-    "@babel/polyfill-7.12.1" = {
-      name = "_at_babel_slash_polyfill";
-      packageName = "@babel/polyfill";
-      version = "7.12.1";
+    "@babel/preset-env-7.12.17" = {
+      name = "_at_babel_slash_preset-env";
+      packageName = "@babel/preset-env";
+      version = "7.12.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz";
-        sha512 = "X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.17.tgz";
+        sha512 = "9PMijx8zFbCwTHrd2P4PJR5nWGH3zWebx2OcpTjqQrHhCiL2ssSR2Sc9ko2BsI2VmVBfoaQmPrlMTCui4LmXQg==";
       };
     };
-    "@babel/preset-env-7.12.16" = {
+    "@babel/preset-env-7.13.12" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.12.16";
+      version = "7.13.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.16.tgz";
-        sha512 = "BXCAXy8RE/TzX416pD2hsVdkWo0G+tYd16pwnRV4Sc0fRwTLRS/Ssv8G5RLXUGQv7g4FG7TXkdDJxCjQ5I+Zjg==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.12.tgz";
+        sha512 = "JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA==";
       };
     };
-    "@babel/preset-flow-7.12.13" = {
+    "@babel/preset-flow-7.13.13" = {
       name = "_at_babel_slash_preset-flow";
       packageName = "@babel/preset-flow";
-      version = "7.12.13";
+      version = "7.13.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.12.13.tgz";
-        sha512 = "gcEjiwcGHa3bo9idURBp5fmJPcyFPOszPQjztXrOjUE2wWVqc6fIVJPgWPIQksaQ5XZ2HWiRsf2s1fRGVjUtVw==";
+        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.13.13.tgz";
+        sha512 = "MDtwtamMifqq3R2mC7l3A3uFalUb3NH5TIBQWjN/epEPlZktcLq4se3J+ivckKrLMGsR7H9LW8+pYuIUN9tsKg==";
       };
     };
     "@babel/preset-modules-0.1.4" = {
@@ -1291,40 +1363,49 @@ let
         sha512 = "dStnEQgejNYIHFNACdDCigK4BF7wgW6Zahv9Dc2un7rGjbeVtZhBfR3sy0I7ZJOhBexkFxVdMZ5hqmll7BFShw==";
       };
     };
-    "@babel/preset-typescript-7.12.16" = {
+    "@babel/preset-typescript-7.12.17" = {
+      name = "_at_babel_slash_preset-typescript";
+      packageName = "@babel/preset-typescript";
+      version = "7.12.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.17.tgz";
+        sha512 = "T513uT4VSThRcmWeqcLkITKJ1oGQho9wfWuhQm10paClQkp1qyd0Wf8mvC8Se7UYssMyRSj4tZYpVTkCmAK/mA==";
+      };
+    };
+    "@babel/preset-typescript-7.13.0" = {
       name = "_at_babel_slash_preset-typescript";
       packageName = "@babel/preset-typescript";
-      version = "7.12.16";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.16.tgz";
-        sha512 = "IrYNrpDSuQfNHeqh7gsJsO35xTGyAyGkI1VxOpBEADFtxCqZ77a1RHbJqM3YJhroj7qMkNMkNtcw0lqeZUrzow==";
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz";
+        sha512 = "LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw==";
       };
     };
-    "@babel/register-7.12.13" = {
+    "@babel/register-7.13.14" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.12.13";
+      version = "7.13.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.12.13.tgz";
-        sha512 = "fnCeRXj970S9seY+973oPALQg61TRvAaW0nRDe1f4ytKqM3fZgsNXewTZWmqZedg74LFIRpg/11dsrPZZvYs2g==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.13.14.tgz";
+        sha512 = "iyw0hUwjh/fzN8qklVqZodbyWjEBOG0KdDnBOpv3zzIgK3NmuRXBmIXH39ZBdspkn8LTHvSboN+oYb4MT43+9Q==";
       };
     };
-    "@babel/runtime-7.12.13" = {
+    "@babel/runtime-7.13.10" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.12.13";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz";
-        sha512 = "8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz";
+        sha512 = "4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==";
       };
     };
-    "@babel/runtime-7.12.5" = {
+    "@babel/runtime-7.13.9" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.12.5";
+      version = "7.13.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz";
-        sha512 = "plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz";
+        sha512 = "aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==";
       };
     };
     "@babel/runtime-7.9.0" = {
@@ -1336,6 +1417,15 @@ let
         sha512 = "cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==";
       };
     };
+    "@babel/standalone-7.13.14" = {
+      name = "_at_babel_slash_standalone";
+      packageName = "@babel/standalone";
+      version = "7.13.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.14.tgz";
+        sha512 = "ZhIZaufaCVMuGt9yLlNTO/ORtI6xNKIHK0D/uEdVUYmS8xROOPgDPZtYesmXBA+xlArlCj5s94g4Nz4g0m0ytA==";
+      };
+    };
     "@babel/template-7.12.13" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
@@ -1345,31 +1435,22 @@ let
         sha512 = "/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==";
       };
     };
-    "@babel/traverse-7.12.13" = {
+    "@babel/traverse-7.13.13" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.12.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz";
-        sha512 = "3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==";
-      };
-    };
-    "@babel/types-7.10.4" = {
-      name = "_at_babel_slash_types";
-      packageName = "@babel/types";
-      version = "7.10.4";
+      version = "7.13.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz";
-        sha512 = "UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz";
+        sha512 = "CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==";
       };
     };
-    "@babel/types-7.12.13" = {
+    "@babel/types-7.13.14" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.12.13";
+      version = "7.13.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz";
-        sha512 = "oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz";
+        sha512 = "A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==";
       };
     };
     "@braintree/sanitize-url-3.1.0" = {
@@ -1381,22 +1462,22 @@ let
         sha512 = "GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==";
       };
     };
-    "@bugsnag/browser-7.6.0" = {
+    "@bugsnag/browser-7.9.2" = {
       name = "_at_bugsnag_slash_browser";
       packageName = "@bugsnag/browser";
-      version = "7.6.0";
+      version = "7.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.6.0.tgz";
-        sha512 = "8sth20TM8BVfebkqxqJQOCM2P2L4foOgFH2QA3ruG0iknDKZDhE7XcoWgmUP9zVSNJqkCyiIzcBOuiwZW8JaSQ==";
+        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.9.2.tgz";
+        sha512 = "vD0UEpInqoOWxqSdXhDN7wbt8hUnaqmHF/nyQK6pVYlPmBOaseexwjGBWQ1BCa4QWwK1CDDBy6sS9onUvWKsnw==";
       };
     };
-    "@bugsnag/core-7.6.0" = {
+    "@bugsnag/core-7.9.2" = {
       name = "_at_bugsnag_slash_core";
       packageName = "@bugsnag/core";
-      version = "7.6.0";
+      version = "7.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.6.0.tgz";
-        sha512 = "hBYAZJw4ScqoyM1jA1x/m2e4iS2EqYEs0I2hdzBCZFv2ls17ILmU58eRSyVdUfyzbv0J7Hi6DwwBGC4Yb6ROZA==";
+        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.9.2.tgz";
+        sha512 = "iz18qkEhrF0Bra0lpEP4VC0EJa48R+3QDDiTtfHW9fiZGKw+ADrUhwW7pHJn+LDqWfq4kMqJNuQC+8s4dV3MYg==";
       };
     };
     "@bugsnag/cuid-3.0.0" = {
@@ -1408,22 +1489,22 @@ let
         sha512 = "LOt8aaBI+KvOQGneBtpuCz3YqzyEAehd1f3nC5yr9TIYW1+IzYKa2xWS4EiMz5pPOnRPHkyyS5t/wmSmN51Gjg==";
       };
     };
-    "@bugsnag/js-7.6.0" = {
+    "@bugsnag/js-7.9.2" = {
       name = "_at_bugsnag_slash_js";
       packageName = "@bugsnag/js";
-      version = "7.6.0";
+      version = "7.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.6.0.tgz";
-        sha512 = "EcI3sTpyOs94/OOjwI7fOg1iZ800o3kkOAipAnULRoP62j1vmErH2l/2xubny7g0JTOL59iZEkt+5O5MhbQJ2A==";
+        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.9.2.tgz";
+        sha512 = "RkajX7cnlYKm4uWclf4oQKZL69A9Vo5jNyQiE7u8uFXhotHoDyHi5QLkdHOSIOZHkBGkgoRV9tkbPAJKcnJSuQ==";
       };
     };
-    "@bugsnag/node-7.6.0" = {
+    "@bugsnag/node-7.9.2" = {
       name = "_at_bugsnag_slash_node";
       packageName = "@bugsnag/node";
-      version = "7.6.0";
+      version = "7.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.6.0.tgz";
-        sha512 = "n3BVb04bq4z16nOM4gbWoXsi6k8R9bryWS/NAYi/jQg6tgyBkNYzmK0ojf3fYJ7uAgCjUJNMX6S9UHSJy/MMcQ==";
+        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.9.2.tgz";
+        sha512 = "e+tEyUBQ6e5z4WJlPAi962rnbR0f+0wxPjSoUHV5uVFg5Dkjg3ioXDdzKVbxfOEv3nVpXlMD8DrQqYe5g0O6sA==";
       };
     };
     "@bugsnag/safe-json-stringify-6.0.0" = {
@@ -1435,6 +1516,15 @@ let
         sha512 = "htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==";
       };
     };
+    "@cdktf/hcl2json-0.2.1" = {
+      name = "_at_cdktf_slash_hcl2json";
+      packageName = "@cdktf/hcl2json";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.2.1.tgz";
+        sha512 = "fn2ZA+Fxdk+QfDleT7GOiZozHdic5kVR0MhFHPzTEipXw7tJlrrbqd1fH+GJFu090uzIagdUM3Y+j4w1GTOz7g==";
+      };
+    };
     "@chemzqm/neovim-5.2.13" = {
       name = "_at_chemzqm_slash_neovim";
       packageName = "@chemzqm/neovim";
@@ -1444,24 +1534,6 @@ let
         sha512 = "Eo1NBUj0e2vtOdNA7fpHra6xviDtwDWbYZiPzH5BWGwPtbRa0XjNGPMggcDCCKKKFRJgp9AaAfmT0LaqIyQvyg==";
       };
     };
-    "@cliqz-oss/firefox-client-0.3.1" = {
-      name = "_at_cliqz-oss_slash_firefox-client";
-      packageName = "@cliqz-oss/firefox-client";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@cliqz-oss/firefox-client/-/firefox-client-0.3.1.tgz";
-        sha512 = "RO+Tops/wGnBzWoZYkCraqyh2JqOejqJq5/a4b54HhmjTNSKdUPwAOK17EGg/zPb0nWqkuB7QyZsI9bo+ev8Kw==";
-      };
-    };
-    "@cliqz-oss/node-firefox-connect-1.2.1" = {
-      name = "_at_cliqz-oss_slash_node-firefox-connect";
-      packageName = "@cliqz-oss/node-firefox-connect";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@cliqz-oss/node-firefox-connect/-/node-firefox-connect-1.2.1.tgz";
-        sha512 = "O/IyiB5pfztCdmxQZg0/xeq5w+YiP3gtJz8d4We2EpLPKzbDVjOrtfLKYgVfm6Ya6mbvDge1uLkSRwaoVCWKnA==";
-      };
-    };
     "@cnakazawa/watch-1.0.4" = {
       name = "_at_cnakazawa_slash_watch";
       packageName = "@cnakazawa/watch";
@@ -1489,6 +1561,15 @@ let
         sha512 = "do5jDoX9oCR/dGHE4POVQ3PYDCmQ2Fow4CA72UL4WoE8zUImA/0lChczjfl+ucNjE4sXFWUnzoO6j4WzrUvLnw==";
       };
     };
+    "@cto.af/textdecoder-0.0.0" = {
+      name = "_at_cto.af_slash_textdecoder";
+      packageName = "@cto.af/textdecoder";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@cto.af/textdecoder/-/textdecoder-0.0.0.tgz";
+        sha512 = "sJpx3F5xcVV/9jNYJQtvimo4Vfld/nD3ph+ZWtQzZ03Zo8rJC7QKQTRcIGS13Rcz80DwFNthCWMrd58vpY4ZAQ==";
+      };
+    };
     "@cycle/dom-18.3.0" = {
       name = "_at_cycle_slash_dom";
       packageName = "@cycle/dom";
@@ -1552,6 +1633,15 @@ let
         sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
       };
     };
+    "@deepcode/dcignore-1.0.2" = {
+      name = "_at_deepcode_slash_dcignore";
+      packageName = "@deepcode/dcignore";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@deepcode/dcignore/-/dcignore-1.0.2.tgz";
+        sha512 = "DPgxtHuJwBORpqRkPXzzOT+uoPRVJmaN7LR+pmeL6DQM90kj6G6GFUH1i/YpRH8NbML8ZGEDwB9f9u4UwD2pzg==";
+      };
+    };
     "@devicefarmer/adbkit-2.11.3" = {
       name = "_at_devicefarmer_slash_adbkit";
       packageName = "@devicefarmer/adbkit";
@@ -1588,22 +1678,193 @@ let
         sha512 = "HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==";
       };
     };
-    "@emmetio/abbreviation-2.2.0" = {
+    "@electron-forge/async-ora-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_async-ora";
+      packageName = "@electron-forge/async-ora";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.54.tgz";
+        sha512 = "OCoHds0BIXaB54HgKw6pjlHC1cnaTcfJfVVkPSJl1GLC3VShZ5bETJfsitwbiP2kbfKLUQFayW27sqbwnwQR2w==";
+      };
+    };
+    "@electron-forge/core-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_core";
+      packageName = "@electron-forge/core";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.54.tgz";
+        sha512 = "yggZeiwRLnIsQYCT5jKhx2L7I02CwUCjnIzA+CqUZXD0AU1c2o0BA/26dNOGvY/+pr5yWjOXcrGy1hvj3dnLmQ==";
+      };
+    };
+    "@electron-forge/installer-base-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_installer-base";
+      packageName = "@electron-forge/installer-base";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.54.tgz";
+        sha512 = "q6Z5kBAE6StKqn+3Z5tXVHu7WGCb9OMeIomw9H9Q41UUIehF7V0J3tCWTkJdhZ8D6/tkXcis3GKptaj0wfMpyg==";
+      };
+    };
+    "@electron-forge/installer-darwin-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_installer-darwin";
+      packageName = "@electron-forge/installer-darwin";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.54.tgz";
+        sha512 = "kRbH24+QBhbcIugnIvevnf43JGzLFLoyFsoY3YeyZeeDL3vfyg0vtSyUx0hfq1GpHG+zObDf3o18c3WbxdXlXA==";
+      };
+    };
+    "@electron-forge/installer-deb-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_installer-deb";
+      packageName = "@electron-forge/installer-deb";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.54.tgz";
+        sha512 = "UbJR2Md0SBqex5AIv9YZ56hY2Iz5gZ6f1iAx0q4PlYpCY19W9nRXdudLNhx1w5go26DsT53+h6EzX2NGpBLq3Q==";
+      };
+    };
+    "@electron-forge/installer-dmg-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_installer-dmg";
+      packageName = "@electron-forge/installer-dmg";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.54.tgz";
+        sha512 = "F9jwhUTzdFNlbLus7RQ8paoGPryr79JFYDLi42f0dyuFwlOjwlrA1wN5xWqrvcMeqFlc3DfjjeRWZ+10RQyorA==";
+      };
+    };
+    "@electron-forge/installer-exe-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_installer-exe";
+      packageName = "@electron-forge/installer-exe";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.54.tgz";
+        sha512 = "PE7RBPerSenNcSkKXJWpervKNl7AVT+JeMzx61OHUQSw3h63NHRvXWh31llxk32mmJcaKRgGle2GsWob87Lv/w==";
+      };
+    };
+    "@electron-forge/installer-linux-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_installer-linux";
+      packageName = "@electron-forge/installer-linux";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.54.tgz";
+        sha512 = "WQVV5fitsfTyktjb18m9Bx+Dho6rCFvVILqFNZAu1RfXIsjLl/h0WdkozdGDccfeDMqlRYmaNs3e5THn5swnAg==";
+      };
+    };
+    "@electron-forge/installer-rpm-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_installer-rpm";
+      packageName = "@electron-forge/installer-rpm";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.54.tgz";
+        sha512 = "8gaJA2m8+Y/ZhV4xEeijXz8UksrliMEzyUAdwM5ZdAsmfmGlnhchGr0L6rI23D66dQP9DeyvUIuUwXrsTlj1nQ==";
+      };
+    };
+    "@electron-forge/installer-zip-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_installer-zip";
+      packageName = "@electron-forge/installer-zip";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.54.tgz";
+        sha512 = "KCY5zreA79wjZODhLmtrbFweTWdlh9JgmW9WruIrmHm3sK19rRhCdaZ+Dg5ZWUhMx2A79d5a2C7r78lWGcHl7A==";
+      };
+    };
+    "@electron-forge/maker-base-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_maker-base";
+      packageName = "@electron-forge/maker-base";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.54.tgz";
+        sha512 = "4y0y15ieb1EOR5mibtFM9tZzaShbAO0RZu6ARLCpD5BgKuJBzXRPfWvEmY6WeDNzoWTJ+mQdYikLAeOL2E9mew==";
+      };
+    };
+    "@electron-forge/plugin-base-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_plugin-base";
+      packageName = "@electron-forge/plugin-base";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.54.tgz";
+        sha512 = "8HwGzgNCHo2PgUfNnTch3Gvj7l6fqOgjnARK1y056UfsxFy+hwvHaAO+7LLfr7ktNwU/bH3hGhOpE+ZmBSwSqQ==";
+      };
+    };
+    "@electron-forge/publisher-base-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_publisher-base";
+      packageName = "@electron-forge/publisher-base";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.54.tgz";
+        sha512 = "Dny0jW0N8QcNYKHTtzQFZD4pBWJ7tclJWf3ZCX031vUKG7RhThdA06IPNzV6JtWJswrvAE9TPndzZONMza2V7g==";
+      };
+    };
+    "@electron-forge/shared-types-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_shared-types";
+      packageName = "@electron-forge/shared-types";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.54.tgz";
+        sha512 = "6CzWKFR17rxxeIqm1w5ZyT9uTAHSVAjhqL8c+TmizF2703GyCEusUkjP2UXt/tZNY4MJlukZoJM66Bct6oZJ+w==";
+      };
+    };
+    "@electron-forge/template-base-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_template-base";
+      packageName = "@electron-forge/template-base";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-6.0.0-beta.54.tgz";
+        sha512 = "LuSpeOiM6AzUbamz5U/NqRkn4y7dzof1JK1ISAb+6tORf7JU014aKqDcLdwgP8Lxaz6P1bdlMmNJTvg5+SBrEw==";
+      };
+    };
+    "@electron-forge/template-typescript-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_template-typescript";
+      packageName = "@electron-forge/template-typescript";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/template-typescript/-/template-typescript-6.0.0-beta.54.tgz";
+        sha512 = "7V87LWH+vJ1YibM9MsTttbz7upfwLrmXgchQ399EfLxK306g7q/ouyGkeTerhLr2gCUAvm/Oqx+sXQ7402ol9w==";
+      };
+    };
+    "@electron-forge/template-typescript-webpack-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_template-typescript-webpack";
+      packageName = "@electron-forge/template-typescript-webpack";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/template-typescript-webpack/-/template-typescript-webpack-6.0.0-beta.54.tgz";
+        sha512 = "1MIw1eGlMZg7KLG4oAEE0rB28WDOtz01OSoW2a2NqkmUzmu4BxJdSvQ97Tp7xCU0naW0H1uU39B9QOjJQgLGCQ==";
+      };
+    };
+    "@electron-forge/template-webpack-6.0.0-beta.54" = {
+      name = "_at_electron-forge_slash_template-webpack";
+      packageName = "@electron-forge/template-webpack";
+      version = "6.0.0-beta.54";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.54.tgz";
+        sha512 = "4/zUOZ8MCZqs8PcUCeeG6ofpy6HT53tQiLknM23OPaFP6ckuE6kOunC6N/teijUrJuLpKl3P8d39SWPVacxEzg==";
+      };
+    };
+    "@electron/get-1.12.4" = {
+      name = "_at_electron_slash_get";
+      packageName = "@electron/get";
+      version = "1.12.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron/get/-/get-1.12.4.tgz";
+        sha512 = "6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==";
+      };
+    };
+    "@emmetio/abbreviation-2.2.2" = {
       name = "_at_emmetio_slash_abbreviation";
       packageName = "@emmetio/abbreviation";
-      version = "2.2.0";
+      version = "2.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.2.0.tgz";
-        sha512 = "NPGVUmnr7cLj4i6MKS4c8NjuoIIJROrruJl/8nXsp2MdbDRHvtfq25foySvv/NbfqTQm+P9JzVLDD9JxGIpvkQ==";
+        url = "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.2.2.tgz";
+        sha512 = "TtE/dBnkTCct8+LntkqVrwqQao6EnPAs1YN3cUgxOxTaBlesBCY37ROUAVZrRlG64GNnVShdl/b70RfAI3w5lw==";
       };
     };
-    "@emmetio/css-abbreviation-2.1.2" = {
+    "@emmetio/css-abbreviation-2.1.4" = {
       name = "_at_emmetio_slash_css-abbreviation";
       packageName = "@emmetio/css-abbreviation";
-      version = "2.1.2";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.2.tgz";
-        sha512 = "CvYTzJltVpLqJaCZ1Qn97LVAKsl2Uwl2fzir1EX/WuMY3xWxgc3BWRCheL6k65km6GyDrLVl6RhrrNb/pxOiAQ==";
+        url = "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.4.tgz";
+        sha512 = "qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==";
       };
     };
     "@emmetio/extract-abbreviation-0.1.6" = {
@@ -1660,67 +1921,13 @@ let
         sha512 = "OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==";
       };
     };
-    "@endemolshinegroup/cosmiconfig-typescript-loader-1.0.2" = {
-      name = "_at_endemolshinegroup_slash_cosmiconfig-typescript-loader";
-      packageName = "@endemolshinegroup/cosmiconfig-typescript-loader";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.2.tgz";
-        sha512 = "ZHkXKq2XFFmAUdmSZrmqUSIrRM4O9gtkdpxMmV+LQl7kScUnbo6pMnXu6+FTDgZ12aW6SDoZoOJfS56WD+Eu6A==";
-      };
-    };
-    "@eslint/eslintrc-0.2.2" = {
-      name = "_at_eslint_slash_eslintrc";
-      packageName = "@eslint/eslintrc";
-      version = "0.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz";
-        sha512 = "EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==";
-      };
-    };
-    "@eslint/eslintrc-0.3.0" = {
+    "@eslint/eslintrc-0.4.0" = {
       name = "_at_eslint_slash_eslintrc";
       packageName = "@eslint/eslintrc";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz";
-        sha512 = "1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==";
-      };
-    };
-    "@evocateur/libnpmaccess-3.1.2" = {
-      name = "_at_evocateur_slash_libnpmaccess";
-      packageName = "@evocateur/libnpmaccess";
-      version = "3.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz";
-        sha512 = "KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg==";
-      };
-    };
-    "@evocateur/libnpmpublish-1.2.2" = {
-      name = "_at_evocateur_slash_libnpmpublish";
-      packageName = "@evocateur/libnpmpublish";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz";
-        sha512 = "MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg==";
-      };
-    };
-    "@evocateur/npm-registry-fetch-4.0.0" = {
-      name = "_at_evocateur_slash_npm-registry-fetch";
-      packageName = "@evocateur/npm-registry-fetch";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz";
-        sha512 = "k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g==";
-      };
-    };
-    "@evocateur/pacote-9.6.5" = {
-      name = "_at_evocateur_slash_pacote";
-      packageName = "@evocateur/pacote";
-      version = "9.6.5";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@evocateur/pacote/-/pacote-9.6.5.tgz";
-        sha512 = "EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w==";
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz";
+        sha512 = "2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==";
       };
     };
     "@exodus/schemasafe-1.0.0-rc.3" = {
@@ -1741,15 +1948,6 @@ let
         sha512 = "ecpC6e3xTtMVVKWpp231L8vptoSPqwtKSmfJ8sXfMlQRtWbq8Bu1pCHR/pdAx9X4IYzygjrTa9IDAPpbGuSaMg==";
       };
     };
-    "@expo/babel-preset-cli-0.2.18" = {
-      name = "_at_expo_slash_babel-preset-cli";
-      packageName = "@expo/babel-preset-cli";
-      version = "0.2.18";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/babel-preset-cli/-/babel-preset-cli-0.2.18.tgz";
-        sha512 = "y2IZFynVtRxMQ4uxXYUnrnXZa+pvSH1R1aSUAfC6RsUb2UNOxC6zRehdLGSOyF4s9Wy+j3/CPm6fC0T5UJYoQg==";
-      };
-    };
     "@expo/bunyan-4.0.0" = {
       name = "_at_expo_slash_bunyan";
       packageName = "@expo/bunyan";
@@ -1759,22 +1957,22 @@ let
         sha512 = "Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==";
       };
     };
-    "@expo/config-3.3.28" = {
+    "@expo/config-3.3.34" = {
       name = "_at_expo_slash_config";
       packageName = "@expo/config";
-      version = "3.3.28";
+      version = "3.3.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config/-/config-3.3.28.tgz";
-        sha512 = "0zJBOZIl/p4KejUkz6G6uzMjGnWsooWayDk7TeFSCxWZ84HWGCx+LIXbEkc8c/CmMm9HyjYlhESw96mwZZzpPQ==";
+        url = "https://registry.npmjs.org/@expo/config/-/config-3.3.34.tgz";
+        sha512 = "Yekmn9sIm70vGUwugXlL/jpTQufTJXV7IrYWvFKd4B8ZwdMBFK08NY2XBwvl+jJOVdhmLe+yHc44bCmrEPb6vA==";
       };
     };
-    "@expo/config-plugins-1.0.18" = {
+    "@expo/config-plugins-1.0.24" = {
       name = "_at_expo_slash_config-plugins";
       packageName = "@expo/config-plugins";
-      version = "1.0.18";
+      version = "1.0.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.18.tgz";
-        sha512 = "8Ey+22cEAOxK+SBJY+OazaLsPyL5FXdsykfBg/QQJE2Y/DTFebUVlr5bQyeqavbASDvmDxg3Fd71A8Se8+qT1g==";
+        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.24.tgz";
+        sha512 = "DB4CgkeZEKG2DWC0GzbLSHuWlxWZ6d3wE95Cjy6DOyR60cFyxo+1eriaxLaBCApX3KrFAdxJFsxvwK9zbCtuzQ==";
       };
     };
     "@expo/config-types-40.0.0-beta.2" = {
@@ -1786,85 +1984,94 @@ let
         sha512 = "t9pHCQMXOP4nwd7LGXuHkLlFy0JdfknRSCAeVF4Kw2/y+5OBbR9hW9ZVnetpBf0kORrekgiI7K/qDaa3hh5+Qg==";
       };
     };
-    "@expo/configure-splash-screen-0.3.3" = {
+    "@expo/configure-splash-screen-0.3.4" = {
       name = "_at_expo_slash_configure-splash-screen";
       packageName = "@expo/configure-splash-screen";
-      version = "0.3.3";
+      version = "0.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.3.3.tgz";
-        sha512 = "fWy6Z52Mj2a7yjdvpIJkP9G3kfkoXE79aHvTDwgggIE0KLhwnPF27v+KS0wJUf7b4JM6w0zKOlUZjQhn0kSNyA==";
+        url = "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.3.4.tgz";
+        sha512 = "HsukM03X5/EXSucVsLN/oLqyFq/1jAjpADkgU1HLaezFpkr+TOquI6yDwdDp1450kcm891PE/SYJ+mCdPxzDLw==";
       };
     };
-    "@expo/dev-server-0.1.54" = {
+    "@expo/dev-server-0.1.60" = {
       name = "_at_expo_slash_dev-server";
       packageName = "@expo/dev-server";
-      version = "0.1.54";
+      version = "0.1.60";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.54.tgz";
-        sha512 = "15JC58wiL1N6N95lxM7pG42SY8geMYq19i0FSp5CsEvNZrbc1tuzaRGZhrW7I1EwOhNNdR2teyoLaIKCP7ynSg==";
+        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.60.tgz";
+        sha512 = "tm+l8enWZ//2nst6s91V+29KwXlA69bFhG6b50lTXfY++7Q0OaOsDoGl3cQaWHKo2K3MQ/7C8riIGf7q6T5wjg==";
       };
     };
-    "@expo/dev-tools-0.13.82" = {
+    "@expo/dev-tools-0.13.89" = {
       name = "_at_expo_slash_dev-tools";
       packageName = "@expo/dev-tools";
-      version = "0.13.82";
+      version = "0.13.89";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.89.tgz";
+        sha512 = "8qlcd46x5CJU2VR+IL3MoHY0eScLe9Io2ibzvuFK+7kNP3gQle/LU+biAKtWIfUVlp4+xzEaAiDc202RTtHhqA==";
+      };
+    };
+    "@expo/devcert-1.0.0" = {
+      name = "_at_expo_slash_devcert";
+      packageName = "@expo/devcert";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.82.tgz";
-        sha512 = "Uq3HoRP0/+w/c6LHdRAMEPLqO3NZS4cailJCYR/MXcZ6xGMrAOjBZwB64H7SP12ADyzhjOsISvr+JG5SE/lRRA==";
+        url = "https://registry.npmjs.org/@expo/devcert/-/devcert-1.0.0.tgz";
+        sha512 = "cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==";
       };
     };
-    "@expo/image-utils-0.3.10" = {
+    "@expo/image-utils-0.3.12" = {
       name = "_at_expo_slash_image-utils";
       packageName = "@expo/image-utils";
-      version = "0.3.10";
+      version = "0.3.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.10.tgz";
-        sha512 = "EebukeUnzyk4ts1E1vMQSb0p8otYqWKsZNDZEoqHtERhxMSO7WhQLqa7/z2kB/YMHRJjrhaa3Aa2X5zjYot1kA==";
+        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.12.tgz";
+        sha512 = "QMMAjyCJUFXI8b6AOrVC40gubkt++qYfRJdKgbegf9JHQNul/O4Q1ENWTgid+PH0EUqlMLbv6kJ6ai0ZjO08kw==";
       };
     };
-    "@expo/json-file-8.2.27" = {
+    "@expo/json-file-8.2.28" = {
       name = "_at_expo_slash_json-file";
       packageName = "@expo/json-file";
-      version = "8.2.27";
+      version = "8.2.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.27.tgz";
-        sha512 = "Iyqg1jbXOTg0JfCGwMrkaaRmVFjQrWDBQAhYLTdvOD3GrXYuKI1vUV+3Wqw0NnU+TYoNUpi7aB8dNzPvLj0oag==";
+        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.28.tgz";
+        sha512 = "C28McDuCIOmCmp6e2ZgIpNaT/fZG+L3/WFv5x2DCrooOQmamrkLSH/4Dib0NUmLgWVhgIhXL2hU4RB+LjzVvkQ==";
       };
     };
-    "@expo/metro-config-0.1.54" = {
+    "@expo/metro-config-0.1.60" = {
       name = "_at_expo_slash_metro-config";
       packageName = "@expo/metro-config";
-      version = "0.1.54";
+      version = "0.1.60";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.54.tgz";
-        sha512 = "DOlTzNheS5IZDDmQjWt60mAmbFreH8xT3ZXc6y/k4UVq7khQ41/g5kl1AJOC9WzE6xgPtmDQqTWanBprn+OhzA==";
+        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.60.tgz";
+        sha512 = "aA/UMZ5ga1QfF9pN1rYvwTg7ez/Ptz6vSFWyOdYM00X+egKlQFDwe8UuMKiUZUHaLFJ3XbixMLTIvDVdnVxk7w==";
       };
     };
-    "@expo/osascript-2.0.24" = {
+    "@expo/osascript-2.0.25" = {
       name = "_at_expo_slash_osascript";
       packageName = "@expo/osascript";
-      version = "2.0.24";
+      version = "2.0.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.24.tgz";
-        sha512 = "oqar3vmvxkVx1OBG7hTjTbCaVVUX2o+aEMLxZWLUiubL0ly1qxgQKEt5p3g3pzkxTft+b1oMf8bT7jMi6iOv+Q==";
+        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.25.tgz";
+        sha512 = "rB+RLHCp72q0OBWmisoBswfTpyzc91OJMs3UQVWJP9mXVNJhemONt7PKjE+FinBm33uH1HCC6U7JPGigpVsJBg==";
       };
     };
-    "@expo/package-manager-0.0.38" = {
+    "@expo/package-manager-0.0.39" = {
       name = "_at_expo_slash_package-manager";
       packageName = "@expo/package-manager";
-      version = "0.0.38";
+      version = "0.0.39";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.38.tgz";
-        sha512 = "meuDK53dkORUCRnIMBOkgPNWMfH47KJgUFZ3b1shYD+JFpsk4OX4OieKdyFX/J6Q7HgHwFSJvdCCFxgPbsAQyg==";
+        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.39.tgz";
+        sha512 = "2KSx1jjdDmWsnkZfWZL4TwveeIyAcORQna5VOZdd+sBalK8taMtPQEdchwAGD4mOFsFFPmpbQHwboRfXoSlbOQ==";
       };
     };
-    "@expo/plist-0.0.11" = {
+    "@expo/plist-0.0.12" = {
       name = "_at_expo_slash_plist";
       packageName = "@expo/plist";
-      version = "0.0.11";
+      version = "0.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.11.tgz";
-        sha512 = "yza93QHDkbdkdwu/PXef0eJSCMkMNdrHujK5G1viZLaZt0Rxw2s+geTyjgJsYpwqQEAoOYVpKlVymOenK+bFQg==";
+        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.12.tgz";
+        sha512 = "anGvLk58fxfeHY2PbtH79VxhrLDPGd+173pHYYXNg9HlfbrEVLI2Vo0ZBOrr/cYr7cgU5A/WNcMphRoO/KfYZQ==";
       };
     };
     "@expo/results-1.0.0" = {
@@ -1876,13 +2083,13 @@ let
         sha512 = "qECzzXX5oJot3m2Gu9pfRDz50USdBieQVwYAzeAtQRUTD3PVeTK1tlRUoDcrK8PSruDLuVYdKkLebX4w/o55VA==";
       };
     };
-    "@expo/schemer-1.3.26" = {
+    "@expo/schemer-1.3.27" = {
       name = "_at_expo_slash_schemer";
       packageName = "@expo/schemer";
-      version = "1.3.26";
+      version = "1.3.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.26.tgz";
-        sha512 = "++PmBy75BpaPRrbIzmgpp3r73gtoa2PkSKucTXRH8OfADlF0FDJ7W0S1L6iKMhZml3339pjUMLo7a9A7OlgU6g==";
+        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.27.tgz";
+        sha512 = "cuCvSo6qErgK7OOM8CoCtCsVifq+WX1wUCeu+fmSyhnZcqnz45ZTK20Ghk5bT3OrTNQipbTiCjn9RCDrkEMMkg==";
       };
     };
     "@expo/simple-spinner-1.0.2" = {
@@ -1903,22 +2110,22 @@ let
         sha512 = "LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==";
       };
     };
-    "@expo/webpack-config-0.12.58" = {
+    "@expo/webpack-config-0.12.64" = {
       name = "_at_expo_slash_webpack-config";
       packageName = "@expo/webpack-config";
-      version = "0.12.58";
+      version = "0.12.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.12.58.tgz";
-        sha512 = "c3UrHaNll4+nBmmNA/1HU7OYm7USsaqzMqExfC+mB3E1RnPi0qft83zf7wgwNwQCcqs06NH3VRKxpmQ7qzKuNw==";
+        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.12.64.tgz";
+        sha512 = "STR9ctDYG36JUIjgcGClvsi3ZU55lc2jtIxf04+0TN8IVYOCoYTF3P971zA1dd3En/q//CpgtKX/UAoimdlL9A==";
       };
     };
-    "@expo/xdl-59.0.22" = {
-      name = "_at_expo_slash_xdl";
-      packageName = "@expo/xdl";
-      version = "59.0.22";
+    "@expo/xcpretty-1.1.1" = {
+      name = "_at_expo_slash_xcpretty";
+      packageName = "@expo/xcpretty";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/xdl/-/xdl-59.0.22.tgz";
-        sha512 = "1kfDyr5Gg9f1d93eJJ2JXiMXvhtf5IGWMp4C+aSPcH1ajxaWGak9SRpkTGv0Mi0VN9jIimTFT+kTkWZv9W1VMQ==";
+        url = "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-1.1.1.tgz";
+        sha512 = "YospUT3y7tPheNCW0SgzbDM8KzipuWukW/qxJRX1MnlgVb1wnnsvtBrY0z/ndRCBMlZFVUu+FkNfI0qDKo8YiA==";
       };
     };
     "@fast-csv/format-4.3.5" = {
@@ -1939,67 +2146,67 @@ let
         sha512 = "uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==";
       };
     };
-    "@fluentui/date-time-utilities-7.9.0" = {
+    "@fluentui/date-time-utilities-7.9.1" = {
       name = "_at_fluentui_slash_date-time-utilities";
       packageName = "@fluentui/date-time-utilities";
-      version = "7.9.0";
+      version = "7.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.9.0.tgz";
-        sha512 = "D8p5WWeonqRO1EgIvo7WSlX1rcm87r2VQd62zTJPQImx8rpwc77CRI+iAvfxyVHRZMdt4Qk6Jq99dUaudPWaZw==";
+        url = "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.9.1.tgz";
+        sha512 = "o8iU1VIY+QsqVRWARKiky29fh4KR1xaKSgMClXIi65qkt8EDDhjmlzL0KVDEoDA2GWukwb/1PpaVCWDg4v3cUQ==";
       };
     };
-    "@fluentui/dom-utilities-1.1.1" = {
+    "@fluentui/dom-utilities-1.1.2" = {
       name = "_at_fluentui_slash_dom-utilities";
       packageName = "@fluentui/dom-utilities";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-1.1.1.tgz";
-        sha512 = "w40gi8fzCpwa7U8cONiuu8rszPStkVOL/weDf5pCbYEb1gdaV7MDPSNkgM6IV0Kz+k017noDgK9Fv4ru1Dwz1g==";
+        url = "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-1.1.2.tgz";
+        sha512 = "XqPS7l3YoMwxdNlaYF6S2Mp0K3FmVIOIy2K3YkMc+eRxu9wFK6emr2Q/3rBhtG5u/On37NExRT7/5CTLnoi9gw==";
       };
     };
-    "@fluentui/keyboard-key-0.2.13" = {
+    "@fluentui/keyboard-key-0.2.16" = {
       name = "_at_fluentui_slash_keyboard-key";
       packageName = "@fluentui/keyboard-key";
-      version = "0.2.13";
+      version = "0.2.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.13.tgz";
-        sha512 = "HLZNtkETFUuCP76Wk/oF54+tVp6aPGzsoJRsmnkh78gloC9CGp8JK+LQUYfj9dtzcHDHq64/dAA2e4j2tzjhaQ==";
+        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.16.tgz";
+        sha512 = "T4eQ0uqhbTScsoXVx10Tlp0C2RgNdAzlbe52qJ0Tn288/Nuztda5Z/aTCRd5Rp5MRYBycjAf4iNot6ZHAP864g==";
       };
     };
-    "@fluentui/react-7.160.0" = {
+    "@fluentui/react-7.165.2" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "7.160.0";
+      version = "7.165.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.160.0.tgz";
-        sha512 = "ckbM7zFAob59vHqfKz+K9Gmivqp9YmAF1TIMJX6RKC/MEVpeA4s5G412/J0SgFNsWwwdCYaqh0UL9W/pnwuE8A==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.165.2.tgz";
+        sha512 = "Mj1Vv+qVIrQ0nCsHHF5zKq5FJsGfOc2eV0+ebEH3NC4CtKoZYGaoYcQsTS8/4Ft59KOeaU6CZtl4WPIflYaSWw==";
       };
     };
-    "@fluentui/react-focus-7.17.4" = {
+    "@fluentui/react-focus-7.17.6" = {
       name = "_at_fluentui_slash_react-focus";
       packageName = "@fluentui/react-focus";
-      version = "7.17.4";
+      version = "7.17.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.17.4.tgz";
-        sha512 = "L7MK538JOSpLQubyVxYZV1ftd3hViBQhcFftuJfah/mdekQkIcFTS0fsymQ4MK5i7bn13jE7lPM8QfH23wpaJg==";
+        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.17.6.tgz";
+        sha512 = "JkLWNDe567lhvbnIhbYv9nUWYDIVN06utc3krs0UZBI+A0YZtQmftBtY0ghXo4PSjgozZocdu9sYkkgZOgyRLg==";
       };
     };
-    "@fluentui/react-window-provider-1.0.1" = {
+    "@fluentui/react-window-provider-1.0.2" = {
       name = "_at_fluentui_slash_react-window-provider";
       packageName = "@fluentui/react-window-provider";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-1.0.1.tgz";
-        sha512 = "5hvruDyF0uE8+6YN6Y+d2sEzexBadxUNxUjDcDreTPsmtHPwF5FPBYLhoD7T84L5U4YNvKxKh25tYJm6E0GE2w==";
+        url = "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-1.0.2.tgz";
+        sha512 = "fGSgL3Vp/+6t1Ysfz21FWZmqsU+iFVxOigvHnm5uKVyyRPwtaabv/F6kQ2y5isLMI2YmJaUd2i0cDJKu8ggrvw==";
       };
     };
-    "@fluentui/theme-1.7.3" = {
+    "@fluentui/theme-1.7.4" = {
       name = "_at_fluentui_slash_theme";
       packageName = "@fluentui/theme";
-      version = "1.7.3";
+      version = "1.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/theme/-/theme-1.7.3.tgz";
-        sha512 = "S97i1SBL5ytQtZQpygAIvOnQSg9tFZM25843xCY40eWRA/eAdPixzWvVmV8PPQs/K5WmXhghepWaC1SjxVO90g==";
+        url = "https://registry.npmjs.org/@fluentui/theme/-/theme-1.7.4.tgz";
+        sha512 = "o4eo7lstLxxXl1g2RR9yz18Yt8yjQO/LbQuZjsiAfv/4Bf0CRnb+3j1F7gxIdBWAchKj9gzaMpIFijfI98pvYQ==";
       };
     };
     "@gardenapple/yargs-17.0.0-candidate.0" = {
@@ -2047,13 +2254,13 @@ let
         sha512 = "d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw==";
       };
     };
-    "@google-cloud/pubsub-2.8.0" = {
+    "@google-cloud/pubsub-2.10.0" = {
       name = "_at_google-cloud_slash_pubsub";
       packageName = "@google-cloud/pubsub";
-      version = "2.8.0";
+      version = "2.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.8.0.tgz";
-        sha512 = "AoSKAbpHCoLq6jO9vMX+K6hJhkayafan24Rs2RKHU8Y0qF6IGSm1+ly0OG12TgziHWg818/6dljWWKgwDcp8KA==";
+        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.10.0.tgz";
+        sha512 = "XM/Fc6/W/LYzGH2pnhGLDR5E6JNZFMfzyUFP5bWgC4FK1KqIZ4g6hrnCCO38G4JfH2i1IuSQuefPF7FrZZo9tw==";
       };
     };
     "@graphql-cli/common-4.1.0" = {
@@ -2074,22 +2281,22 @@ let
         sha512 = "RNhQk0jMz6fZB4Ilu37PZj6YUQgSEZJrppXlaHpw/xYyDelcjYKZg/z9eMvYo6rxQPR2mGXjoj6by+zew1WgOw==";
       };
     };
-    "@graphql-tools/batch-execute-7.0.0" = {
+    "@graphql-tools/batch-execute-7.1.0" = {
       name = "_at_graphql-tools_slash_batch-execute";
       packageName = "@graphql-tools/batch-execute";
-      version = "7.0.0";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.0.0.tgz";
-        sha512 = "+ywPfK6N2Ddna6oOa5Qb1Mv7EA8LOwRNOAPP9dL37FEhksJM9pYqPSceUcqMqg7S9b0+Cgr78s408rgvurV3/Q==";
+        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.0.tgz";
+        sha512 = "Yb4QRpHZqDk24+T4K3ARk/KFU26Dyl30XcbYeVvIrgIKcmeON/p3DfSeiB0+MaxYlsv+liQKvlxNbeC2hD31pA==";
       };
     };
-    "@graphql-tools/delegate-7.0.10" = {
+    "@graphql-tools/delegate-7.1.1" = {
       name = "_at_graphql-tools_slash_delegate";
       packageName = "@graphql-tools/delegate";
-      version = "7.0.10";
+      version = "7.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.0.10.tgz";
-        sha512 = "6Di9ia5ohoDvrHuhj2cak1nJGhIefJmUsd3WKZcJ2nu2yZAFawWMxGvQImqv3N7iyaWKiVhrrK8Roi/JrYhdKg==";
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.1.tgz";
+        sha512 = "+uV0KZPI070sEykf3uxy+AhirHOqZnqbVqTqcfhH8/97+vdoLPE5oVceCTvMQsC7bDapbcbNiwcpYd8T6OQ4KQ==";
       };
     };
     "@graphql-tools/graphql-file-loader-6.2.7" = {
@@ -2101,13 +2308,13 @@ let
         sha512 = "5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==";
       };
     };
-    "@graphql-tools/import-6.2.6" = {
+    "@graphql-tools/import-6.3.0" = {
       name = "_at_graphql-tools_slash_import";
       packageName = "@graphql-tools/import";
-      version = "6.2.6";
+      version = "6.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.2.6.tgz";
-        sha512 = "/0H/bDjNK1MnKonk8fMbB7wIYU6QLCwbQOHtSHbFJ4j2qki5CqfAxpF+fGX6KovDtkdigcgRMvSKKi14oiuHPA==";
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz";
+        sha512 = "zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==";
       };
     };
     "@graphql-tools/json-file-loader-6.2.6" = {
@@ -2128,13 +2335,13 @@ let
         sha512 = "FlQC50VELwRxoWUbJMMMs5gG0Dl8BaQYMrXUHTsxwqR7UmksUYnysC21rdousvs6jVZ7pf4unZfZFtBjz+8Edg==";
       };
     };
-    "@graphql-tools/merge-6.2.7" = {
+    "@graphql-tools/merge-6.2.11" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "6.2.7";
+      version = "6.2.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.7.tgz";
-        sha512 = "9acgDkkYeAHpuqhOa3E63NZPCX/iWo819Q320sCCMkydF1xgx0qCRYz/V03xPdpQETKRqBG2i2N2csneeEYYig==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.11.tgz";
+        sha512 = "temQABWkDTZb/qJwcIdrEbyJ5WkhaWZQeYxiuxGqZWlIOoFkYfqzfAP2qKl2Ry+ZkN+Q/Yozr1/ap//xjpwAlA==";
       };
     };
     "@graphql-tools/schema-7.1.3" = {
@@ -2146,13 +2353,13 @@ let
         sha512 = "ZY76hmcJlF1iyg3Im0sQ3ASRkiShjgv102vLTVcH22lEGJeCaCyyS/GF1eUHom418S60bS8Th6+autRUxfBiBg==";
       };
     };
-    "@graphql-tools/url-loader-6.8.0" = {
+    "@graphql-tools/url-loader-6.8.2" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "6.8.0";
+      version = "6.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.0.tgz";
-        sha512 = "x4f93UnH7kNr9iHFpJHL6kYWogRFlxMEnXybHS9xNCFd08+ftMO22bUb8esnFsyNrtMMlkLtshDSyNb3LbIMQg==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.2.tgz";
+        sha512 = "YzsXSCOwlSj8UqOMhQThPzgEChgS/MonyWV7f0WKmN9gAT/f3fPaUcYhVamsH0vGbvTkfNM4JdoZO/39amRs5Q==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -2164,13 +2371,13 @@ let
         sha512 = "ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==";
       };
     };
-    "@graphql-tools/utils-7.2.5" = {
+    "@graphql-tools/utils-7.7.1" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "7.2.5";
+      version = "7.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.5.tgz";
-        sha512 = "S9RUkPimq+5eEDohDjiq/JCPUsiZblKRG8ve+diUwF1f8+r6FV2xGXrOt0qhQJiMxIO+BOK3DU9c+U3tX9Jo0w==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz";
+        sha512 = "SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==";
       };
     };
     "@graphql-tools/wrap-7.0.5" = {
@@ -2182,13 +2389,22 @@ let
         sha512 = "KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==";
       };
     };
-    "@grpc/grpc-js-1.2.6" = {
+    "@grpc/grpc-js-1.2.11" = {
       name = "_at_grpc_slash_grpc-js";
       packageName = "@grpc/grpc-js";
-      version = "1.2.6";
+      version = "1.2.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.11.tgz";
+        sha512 = "DZqx3nHBm2OGY7NKq4sppDEfx4nBAsQH/d/H/yxo/+BwpVLWLGs+OorpwQ+Fqd6EgpDEoi4MhqndjGUeLl/5GA==";
+      };
+    };
+    "@grpc/grpc-js-1.2.12" = {
+      name = "_at_grpc_slash_grpc-js";
+      packageName = "@grpc/grpc-js";
+      version = "1.2.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.6.tgz";
-        sha512 = "wfYwFy7CvVEmBKzeDX1kQQYrv5NBpe8Z+VwXipFvqof3lCXKch7k+4T3grKtptaH5GQ5KP9iKwPr9hMDSynIUw==";
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.12.tgz";
+        sha512 = "+gPCklP1eqIgrNPyzddYQdt9+GvZqPlLpIjIo+TveE+gbtp74VV1A2ju8ExeO8ma8f7MbpaGZx/KJPYVWL9eDw==";
       };
     };
     "@grpc/proto-loader-0.5.6" = {
@@ -2218,6 +2434,15 @@ let
         sha1 = "890ae7c5d8c877f6d384860215ace9d7ec945bda";
       };
     };
+    "@handsontable/formulajs-2.0.2" = {
+      name = "_at_handsontable_slash_formulajs";
+      packageName = "@handsontable/formulajs";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@handsontable/formulajs/-/formulajs-2.0.2.tgz";
+        sha512 = "maIyMJtYjA5e/R9nyA22Qd7Yw73MBSxClJvle0a8XWAS/5l6shc/OFpQqrmwMy4IXUCmywJ9ER0gOGz/YA720w==";
+      };
+    };
     "@hapi/address-2.1.4" = {
       name = "_at_hapi_slash_address";
       packageName = "@hapi/address";
@@ -2443,13 +2668,13 @@ let
         sha512 = "VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==";
       };
     };
-    "@istanbuljs/schema-0.1.2" = {
+    "@istanbuljs/schema-0.1.3" = {
       name = "_at_istanbuljs_slash_schema";
       packageName = "@istanbuljs/schema";
-      version = "0.1.2";
+      version = "0.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz";
-        sha512 = "tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==";
+        url = "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz";
+        sha512 = "ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==";
       };
     };
     "@jest/transform-25.5.1" = {
@@ -2812,6 +3037,15 @@ let
         sha512 = "4BPgTSkhvxPI3tbjG4BPiBq0VuNZji1Y77DRWHb09GnzsrgwBI+gpo3EI6obkyIeRuN/03wzf98W5u1iau2vpQ==";
       };
     };
+    "@josephg/resolvable-1.0.0" = {
+      name = "_at_josephg_slash_resolvable";
+      packageName = "@josephg/resolvable";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.0.tgz";
+        sha512 = "OfTtjoqB2doov5aTJxkyAMK8dXoo7CjCUQSYUEtiY34jbWduOGV7+168tmCT8COMsUEd5DMSFg/0iAOPCBTNAQ==";
+      };
+    };
     "@jsdevtools/ono-7.1.3" = {
       name = "_at_jsdevtools_slash_ono";
       packageName = "@jsdevtools/ono";
@@ -2821,13 +3055,13 @@ let
         sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
       };
     };
-    "@jsii/spec-1.20.1" = {
+    "@jsii/spec-1.27.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.20.1";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.20.1.tgz";
-        sha512 = "+ot9SPb/lFnRiPlhWUGLMp8owpr/pnpFX0/iIUhZ0kJ1LIAUde7TSuaz70mV6x+ES2wvVXKsgfu2WTMFHIAwZQ==";
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.27.0.tgz";
+        sha512 = "mdfSlcYY9qI3kI0rK1dAN13BkHtOffhFXzOwtuZvxjhz2+8hx6DpW5nqHAWCrq+ZQuPAPxiMOVXBsA58PZ9Ycg==";
       };
     };
     "@kwsites/file-exists-1.1.1" = {
@@ -2848,535 +3082,544 @@ let
         sha512 = "GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==";
       };
     };
-    "@lerna/add-3.21.0" = {
+    "@lerna/add-4.0.0" = {
       name = "_at_lerna_slash_add";
       packageName = "@lerna/add";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/add/-/add-3.21.0.tgz";
-        sha512 = "vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A==";
+        url = "https://registry.npmjs.org/@lerna/add/-/add-4.0.0.tgz";
+        sha512 = "cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng==";
       };
     };
-    "@lerna/bootstrap-3.21.0" = {
+    "@lerna/bootstrap-4.0.0" = {
       name = "_at_lerna_slash_bootstrap";
       packageName = "@lerna/bootstrap";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.21.0.tgz";
-        sha512 = "mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw==";
+        url = "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-4.0.0.tgz";
+        sha512 = "RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw==";
       };
     };
-    "@lerna/changed-3.21.0" = {
+    "@lerna/changed-4.0.0" = {
       name = "_at_lerna_slash_changed";
       packageName = "@lerna/changed";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/changed/-/changed-3.21.0.tgz";
-        sha512 = "hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw==";
+        url = "https://registry.npmjs.org/@lerna/changed/-/changed-4.0.0.tgz";
+        sha512 = "cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ==";
       };
     };
-    "@lerna/check-working-tree-3.16.5" = {
+    "@lerna/check-working-tree-4.0.0" = {
       name = "_at_lerna_slash_check-working-tree";
       packageName = "@lerna/check-working-tree";
-      version = "3.16.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz";
-        sha512 = "xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ==";
+        url = "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz";
+        sha512 = "/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q==";
       };
     };
-    "@lerna/child-process-3.16.5" = {
+    "@lerna/child-process-4.0.0" = {
       name = "_at_lerna_slash_child-process";
       packageName = "@lerna/child-process";
-      version = "3.16.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz";
-        sha512 = "vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==";
+        url = "https://registry.npmjs.org/@lerna/child-process/-/child-process-4.0.0.tgz";
+        sha512 = "XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==";
       };
     };
-    "@lerna/clean-3.21.0" = {
+    "@lerna/clean-4.0.0" = {
       name = "_at_lerna_slash_clean";
       packageName = "@lerna/clean";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/clean/-/clean-3.21.0.tgz";
-        sha512 = "b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg==";
+        url = "https://registry.npmjs.org/@lerna/clean/-/clean-4.0.0.tgz";
+        sha512 = "uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA==";
       };
     };
-    "@lerna/cli-3.18.5" = {
+    "@lerna/cli-4.0.0" = {
       name = "_at_lerna_slash_cli";
       packageName = "@lerna/cli";
-      version = "3.18.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/cli/-/cli-3.18.5.tgz";
-        sha512 = "erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA==";
+        url = "https://registry.npmjs.org/@lerna/cli/-/cli-4.0.0.tgz";
+        sha512 = "Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA==";
       };
     };
-    "@lerna/collect-uncommitted-3.16.5" = {
+    "@lerna/collect-uncommitted-4.0.0" = {
       name = "_at_lerna_slash_collect-uncommitted";
       packageName = "@lerna/collect-uncommitted";
-      version = "3.16.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz";
-        sha512 = "ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg==";
+        url = "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz";
+        sha512 = "ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g==";
       };
     };
-    "@lerna/collect-updates-3.20.0" = {
+    "@lerna/collect-updates-4.0.0" = {
       name = "_at_lerna_slash_collect-updates";
       packageName = "@lerna/collect-updates";
-      version = "3.20.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.20.0.tgz";
-        sha512 = "qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q==";
+        url = "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-4.0.0.tgz";
+        sha512 = "bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw==";
       };
     };
-    "@lerna/command-3.21.0" = {
+    "@lerna/command-4.0.0" = {
       name = "_at_lerna_slash_command";
       packageName = "@lerna/command";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/command/-/command-3.21.0.tgz";
-        sha512 = "T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ==";
+        url = "https://registry.npmjs.org/@lerna/command/-/command-4.0.0.tgz";
+        sha512 = "LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A==";
       };
     };
-    "@lerna/conventional-commits-3.22.0" = {
+    "@lerna/conventional-commits-4.0.0" = {
       name = "_at_lerna_slash_conventional-commits";
       packageName = "@lerna/conventional-commits";
-      version = "3.22.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz";
-        sha512 = "z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA==";
+        url = "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz";
+        sha512 = "CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw==";
       };
     };
-    "@lerna/create-3.22.0" = {
+    "@lerna/create-4.0.0" = {
       name = "_at_lerna_slash_create";
       packageName = "@lerna/create";
-      version = "3.22.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/create/-/create-3.22.0.tgz";
-        sha512 = "MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw==";
+        url = "https://registry.npmjs.org/@lerna/create/-/create-4.0.0.tgz";
+        sha512 = "mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag==";
       };
     };
-    "@lerna/create-symlink-3.16.2" = {
+    "@lerna/create-symlink-4.0.0" = {
       name = "_at_lerna_slash_create-symlink";
       packageName = "@lerna/create-symlink";
-      version = "3.16.2";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.16.2.tgz";
-        sha512 = "pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw==";
+        url = "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-4.0.0.tgz";
+        sha512 = "I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig==";
       };
     };
-    "@lerna/describe-ref-3.16.5" = {
+    "@lerna/describe-ref-4.0.0" = {
       name = "_at_lerna_slash_describe-ref";
       packageName = "@lerna/describe-ref";
-      version = "3.16.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.16.5.tgz";
-        sha512 = "c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw==";
+        url = "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-4.0.0.tgz";
+        sha512 = "eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ==";
       };
     };
-    "@lerna/diff-3.21.0" = {
+    "@lerna/diff-4.0.0" = {
       name = "_at_lerna_slash_diff";
       packageName = "@lerna/diff";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/diff/-/diff-3.21.0.tgz";
-        sha512 = "5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw==";
+        url = "https://registry.npmjs.org/@lerna/diff/-/diff-4.0.0.tgz";
+        sha512 = "jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag==";
       };
     };
-    "@lerna/exec-3.21.0" = {
+    "@lerna/exec-4.0.0" = {
       name = "_at_lerna_slash_exec";
       packageName = "@lerna/exec";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/exec/-/exec-3.21.0.tgz";
-        sha512 = "iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q==";
+        url = "https://registry.npmjs.org/@lerna/exec/-/exec-4.0.0.tgz";
+        sha512 = "VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw==";
       };
     };
-    "@lerna/filter-options-3.20.0" = {
+    "@lerna/filter-options-4.0.0" = {
       name = "_at_lerna_slash_filter-options";
       packageName = "@lerna/filter-options";
-      version = "3.20.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.20.0.tgz";
-        sha512 = "bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g==";
+        url = "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-4.0.0.tgz";
+        sha512 = "vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw==";
       };
     };
-    "@lerna/filter-packages-3.18.0" = {
+    "@lerna/filter-packages-4.0.0" = {
       name = "_at_lerna_slash_filter-packages";
       packageName = "@lerna/filter-packages";
-      version = "3.18.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.18.0.tgz";
-        sha512 = "6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ==";
+        url = "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-4.0.0.tgz";
+        sha512 = "+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA==";
       };
     };
-    "@lerna/get-npm-exec-opts-3.13.0" = {
+    "@lerna/get-npm-exec-opts-4.0.0" = {
       name = "_at_lerna_slash_get-npm-exec-opts";
       packageName = "@lerna/get-npm-exec-opts";
-      version = "3.13.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz";
-        sha512 = "Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw==";
+        url = "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz";
+        sha512 = "yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ==";
       };
     };
-    "@lerna/get-packed-3.16.0" = {
+    "@lerna/get-packed-4.0.0" = {
       name = "_at_lerna_slash_get-packed";
       packageName = "@lerna/get-packed";
-      version = "3.16.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.16.0.tgz";
-        sha512 = "AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw==";
+        url = "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-4.0.0.tgz";
+        sha512 = "rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w==";
       };
     };
-    "@lerna/github-client-3.22.0" = {
+    "@lerna/github-client-4.0.0" = {
       name = "_at_lerna_slash_github-client";
       packageName = "@lerna/github-client";
-      version = "3.22.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.22.0.tgz";
-        sha512 = "O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg==";
+        url = "https://registry.npmjs.org/@lerna/github-client/-/github-client-4.0.0.tgz";
+        sha512 = "2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw==";
       };
     };
-    "@lerna/gitlab-client-3.15.0" = {
+    "@lerna/gitlab-client-4.0.0" = {
       name = "_at_lerna_slash_gitlab-client";
       packageName = "@lerna/gitlab-client";
-      version = "3.15.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz";
-        sha512 = "OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q==";
+        url = "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz";
+        sha512 = "OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA==";
       };
     };
-    "@lerna/global-options-3.13.0" = {
+    "@lerna/global-options-4.0.0" = {
       name = "_at_lerna_slash_global-options";
       packageName = "@lerna/global-options";
-      version = "3.13.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz";
-        sha512 = "SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==";
+        url = "https://registry.npmjs.org/@lerna/global-options/-/global-options-4.0.0.tgz";
+        sha512 = "TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ==";
       };
     };
-    "@lerna/has-npm-version-3.16.5" = {
+    "@lerna/has-npm-version-4.0.0" = {
       name = "_at_lerna_slash_has-npm-version";
       packageName = "@lerna/has-npm-version";
-      version = "3.16.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz";
-        sha512 = "WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q==";
+        url = "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz";
+        sha512 = "LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg==";
       };
     };
-    "@lerna/import-3.22.0" = {
+    "@lerna/import-4.0.0" = {
       name = "_at_lerna_slash_import";
       packageName = "@lerna/import";
-      version = "3.22.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/import/-/import-3.22.0.tgz";
-        sha512 = "uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg==";
+        url = "https://registry.npmjs.org/@lerna/import/-/import-4.0.0.tgz";
+        sha512 = "FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg==";
       };
     };
-    "@lerna/info-3.21.0" = {
+    "@lerna/info-4.0.0" = {
       name = "_at_lerna_slash_info";
       packageName = "@lerna/info";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/info/-/info-3.21.0.tgz";
-        sha512 = "0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA==";
+        url = "https://registry.npmjs.org/@lerna/info/-/info-4.0.0.tgz";
+        sha512 = "8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q==";
       };
     };
-    "@lerna/init-3.21.0" = {
+    "@lerna/init-4.0.0" = {
       name = "_at_lerna_slash_init";
       packageName = "@lerna/init";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/init/-/init-3.21.0.tgz";
-        sha512 = "6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg==";
+        url = "https://registry.npmjs.org/@lerna/init/-/init-4.0.0.tgz";
+        sha512 = "wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ==";
       };
     };
-    "@lerna/link-3.21.0" = {
+    "@lerna/link-4.0.0" = {
       name = "_at_lerna_slash_link";
       packageName = "@lerna/link";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/link/-/link-3.21.0.tgz";
-        sha512 = "tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ==";
+        url = "https://registry.npmjs.org/@lerna/link/-/link-4.0.0.tgz";
+        sha512 = "KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w==";
       };
     };
-    "@lerna/list-3.21.0" = {
+    "@lerna/list-4.0.0" = {
       name = "_at_lerna_slash_list";
       packageName = "@lerna/list";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/list/-/list-3.21.0.tgz";
-        sha512 = "KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg==";
+        url = "https://registry.npmjs.org/@lerna/list/-/list-4.0.0.tgz";
+        sha512 = "L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg==";
       };
     };
-    "@lerna/listable-3.18.5" = {
+    "@lerna/listable-4.0.0" = {
       name = "_at_lerna_slash_listable";
       packageName = "@lerna/listable";
-      version = "3.18.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/listable/-/listable-3.18.5.tgz";
-        sha512 = "Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg==";
+        url = "https://registry.npmjs.org/@lerna/listable/-/listable-4.0.0.tgz";
+        sha512 = "/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ==";
       };
     };
-    "@lerna/log-packed-3.16.0" = {
+    "@lerna/log-packed-4.0.0" = {
       name = "_at_lerna_slash_log-packed";
       packageName = "@lerna/log-packed";
-      version = "3.16.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.16.0.tgz";
-        sha512 = "Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ==";
+        url = "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-4.0.0.tgz";
+        sha512 = "+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ==";
       };
     };
-    "@lerna/npm-conf-3.16.0" = {
+    "@lerna/npm-conf-4.0.0" = {
       name = "_at_lerna_slash_npm-conf";
       packageName = "@lerna/npm-conf";
-      version = "3.16.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.16.0.tgz";
-        sha512 = "HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA==";
+        url = "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-4.0.0.tgz";
+        sha512 = "uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw==";
       };
     };
-    "@lerna/npm-dist-tag-3.18.5" = {
+    "@lerna/npm-dist-tag-4.0.0" = {
       name = "_at_lerna_slash_npm-dist-tag";
       packageName = "@lerna/npm-dist-tag";
-      version = "3.18.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.5.tgz";
-        sha512 = "xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ==";
+        url = "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz";
+        sha512 = "F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw==";
       };
     };
-    "@lerna/npm-install-3.16.5" = {
+    "@lerna/npm-install-4.0.0" = {
       name = "_at_lerna_slash_npm-install";
       packageName = "@lerna/npm-install";
-      version = "3.16.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.16.5.tgz";
-        sha512 = "hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg==";
+        url = "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-4.0.0.tgz";
+        sha512 = "aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg==";
       };
     };
-    "@lerna/npm-publish-3.18.5" = {
+    "@lerna/npm-publish-4.0.0" = {
       name = "_at_lerna_slash_npm-publish";
       packageName = "@lerna/npm-publish";
-      version = "3.18.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.18.5.tgz";
-        sha512 = "3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg==";
+        url = "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-4.0.0.tgz";
+        sha512 = "vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w==";
       };
     };
-    "@lerna/npm-run-script-3.16.5" = {
+    "@lerna/npm-run-script-4.0.0" = {
       name = "_at_lerna_slash_npm-run-script";
       packageName = "@lerna/npm-run-script";
-      version = "3.16.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz";
-        sha512 = "1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ==";
+        url = "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz";
+        sha512 = "Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA==";
       };
     };
-    "@lerna/otplease-3.18.5" = {
+    "@lerna/otplease-4.0.0" = {
       name = "_at_lerna_slash_otplease";
       packageName = "@lerna/otplease";
-      version = "3.18.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.18.5.tgz";
-        sha512 = "S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog==";
+        url = "https://registry.npmjs.org/@lerna/otplease/-/otplease-4.0.0.tgz";
+        sha512 = "Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw==";
       };
     };
-    "@lerna/output-3.13.0" = {
+    "@lerna/output-4.0.0" = {
       name = "_at_lerna_slash_output";
       packageName = "@lerna/output";
-      version = "3.13.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz";
-        sha512 = "7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg==";
+        url = "https://registry.npmjs.org/@lerna/output/-/output-4.0.0.tgz";
+        sha512 = "Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w==";
       };
     };
-    "@lerna/pack-directory-3.16.4" = {
+    "@lerna/pack-directory-4.0.0" = {
       name = "_at_lerna_slash_pack-directory";
       packageName = "@lerna/pack-directory";
-      version = "3.16.4";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.16.4.tgz";
-        sha512 = "uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng==";
+        url = "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-4.0.0.tgz";
+        sha512 = "NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ==";
       };
     };
-    "@lerna/package-3.16.0" = {
+    "@lerna/package-4.0.0" = {
       name = "_at_lerna_slash_package";
       packageName = "@lerna/package";
-      version = "3.16.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/package/-/package-3.16.0.tgz";
-        sha512 = "2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw==";
+        url = "https://registry.npmjs.org/@lerna/package/-/package-4.0.0.tgz";
+        sha512 = "l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q==";
       };
     };
-    "@lerna/package-graph-3.18.5" = {
+    "@lerna/package-graph-4.0.0" = {
       name = "_at_lerna_slash_package-graph";
       packageName = "@lerna/package-graph";
-      version = "3.18.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.18.5.tgz";
-        sha512 = "8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA==";
+        url = "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-4.0.0.tgz";
+        sha512 = "QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw==";
       };
     };
-    "@lerna/prerelease-id-from-version-3.16.0" = {
+    "@lerna/prerelease-id-from-version-4.0.0" = {
       name = "_at_lerna_slash_prerelease-id-from-version";
       packageName = "@lerna/prerelease-id-from-version";
-      version = "3.16.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz";
-        sha512 = "qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA==";
+        url = "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz";
+        sha512 = "GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg==";
       };
     };
-    "@lerna/profiler-3.20.0" = {
+    "@lerna/profiler-4.0.0" = {
       name = "_at_lerna_slash_profiler";
       packageName = "@lerna/profiler";
-      version = "3.20.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/profiler/-/profiler-3.20.0.tgz";
-        sha512 = "bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg==";
+        url = "https://registry.npmjs.org/@lerna/profiler/-/profiler-4.0.0.tgz";
+        sha512 = "/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q==";
       };
     };
-    "@lerna/project-3.21.0" = {
+    "@lerna/project-4.0.0" = {
       name = "_at_lerna_slash_project";
       packageName = "@lerna/project";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/project/-/project-3.21.0.tgz";
-        sha512 = "xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A==";
+        url = "https://registry.npmjs.org/@lerna/project/-/project-4.0.0.tgz";
+        sha512 = "o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg==";
       };
     };
-    "@lerna/prompt-3.18.5" = {
+    "@lerna/prompt-4.0.0" = {
       name = "_at_lerna_slash_prompt";
       packageName = "@lerna/prompt";
-      version = "3.18.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.18.5.tgz";
-        sha512 = "rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ==";
+        url = "https://registry.npmjs.org/@lerna/prompt/-/prompt-4.0.0.tgz";
+        sha512 = "4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ==";
       };
     };
-    "@lerna/publish-3.22.1" = {
+    "@lerna/publish-4.0.0" = {
       name = "_at_lerna_slash_publish";
       packageName = "@lerna/publish";
-      version = "3.22.1";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/publish/-/publish-3.22.1.tgz";
-        sha512 = "PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw==";
+        url = "https://registry.npmjs.org/@lerna/publish/-/publish-4.0.0.tgz";
+        sha512 = "K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg==";
       };
     };
-    "@lerna/pulse-till-done-3.13.0" = {
+    "@lerna/pulse-till-done-4.0.0" = {
       name = "_at_lerna_slash_pulse-till-done";
       packageName = "@lerna/pulse-till-done";
-      version = "3.13.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz";
-        sha512 = "1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA==";
+        url = "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz";
+        sha512 = "Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg==";
       };
     };
-    "@lerna/query-graph-3.18.5" = {
+    "@lerna/query-graph-4.0.0" = {
       name = "_at_lerna_slash_query-graph";
       packageName = "@lerna/query-graph";
-      version = "3.18.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.18.5.tgz";
-        sha512 = "50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA==";
+        url = "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-4.0.0.tgz";
+        sha512 = "YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg==";
       };
     };
-    "@lerna/resolve-symlink-3.16.0" = {
+    "@lerna/resolve-symlink-4.0.0" = {
       name = "_at_lerna_slash_resolve-symlink";
       packageName = "@lerna/resolve-symlink";
-      version = "3.16.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz";
-        sha512 = "Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ==";
+        url = "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz";
+        sha512 = "RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA==";
       };
     };
-    "@lerna/rimraf-dir-3.16.5" = {
+    "@lerna/rimraf-dir-4.0.0" = {
       name = "_at_lerna_slash_rimraf-dir";
       packageName = "@lerna/rimraf-dir";
-      version = "3.16.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz";
-        sha512 = "bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA==";
+        url = "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz";
+        sha512 = "QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg==";
       };
     };
-    "@lerna/run-3.21.0" = {
+    "@lerna/run-4.0.0" = {
       name = "_at_lerna_slash_run";
       packageName = "@lerna/run";
-      version = "3.21.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/run/-/run-3.21.0.tgz";
-        sha512 = "fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q==";
+        url = "https://registry.npmjs.org/@lerna/run/-/run-4.0.0.tgz";
+        sha512 = "9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ==";
       };
     };
-    "@lerna/run-lifecycle-3.16.2" = {
+    "@lerna/run-lifecycle-4.0.0" = {
       name = "_at_lerna_slash_run-lifecycle";
       packageName = "@lerna/run-lifecycle";
-      version = "3.16.2";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz";
-        sha512 = "RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A==";
+        url = "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz";
+        sha512 = "IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ==";
       };
     };
-    "@lerna/run-topologically-3.18.5" = {
+    "@lerna/run-topologically-4.0.0" = {
       name = "_at_lerna_slash_run-topologically";
       packageName = "@lerna/run-topologically";
-      version = "3.18.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.18.5.tgz";
-        sha512 = "6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg==";
+        url = "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-4.0.0.tgz";
+        sha512 = "EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA==";
       };
     };
-    "@lerna/symlink-binary-3.17.0" = {
+    "@lerna/symlink-binary-4.0.0" = {
       name = "_at_lerna_slash_symlink-binary";
       packageName = "@lerna/symlink-binary";
-      version = "3.17.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz";
-        sha512 = "RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ==";
+        url = "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz";
+        sha512 = "zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA==";
       };
     };
-    "@lerna/symlink-dependencies-3.17.0" = {
+    "@lerna/symlink-dependencies-4.0.0" = {
       name = "_at_lerna_slash_symlink-dependencies";
       packageName = "@lerna/symlink-dependencies";
-      version = "3.17.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz";
-        sha512 = "KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q==";
+        url = "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz";
+        sha512 = "BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw==";
       };
     };
-    "@lerna/timer-3.13.0" = {
+    "@lerna/timer-4.0.0" = {
       name = "_at_lerna_slash_timer";
       packageName = "@lerna/timer";
-      version = "3.13.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz";
-        sha512 = "RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw==";
+        url = "https://registry.npmjs.org/@lerna/timer/-/timer-4.0.0.tgz";
+        sha512 = "WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg==";
       };
     };
-    "@lerna/validation-error-3.13.0" = {
+    "@lerna/validation-error-4.0.0" = {
       name = "_at_lerna_slash_validation-error";
       packageName = "@lerna/validation-error";
-      version = "3.13.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz";
-        sha512 = "SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA==";
+        url = "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-4.0.0.tgz";
+        sha512 = "1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw==";
       };
     };
-    "@lerna/version-3.22.1" = {
+    "@lerna/version-4.0.0" = {
       name = "_at_lerna_slash_version";
       packageName = "@lerna/version";
-      version = "3.22.1";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/version/-/version-3.22.1.tgz";
-        sha512 = "PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g==";
+        url = "https://registry.npmjs.org/@lerna/version/-/version-4.0.0.tgz";
+        sha512 = "otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA==";
       };
     };
-    "@lerna/write-log-file-3.13.0" = {
+    "@lerna/write-log-file-4.0.0" = {
       name = "_at_lerna_slash_write-log-file";
       packageName = "@lerna/write-log-file";
-      version = "3.13.0";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-4.0.0.tgz";
+        sha512 = "XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg==";
+      };
+    };
+    "@malept/cross-spawn-promise-1.1.1" = {
+      name = "_at_malept_slash_cross-spawn-promise";
+      packageName = "@malept/cross-spawn-promise";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz";
-        sha512 = "RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==";
+        url = "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz";
+        sha512 = "RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==";
       };
     };
     "@mark.probst/typescript-json-schema-0.32.0" = {
@@ -3397,13 +3640,22 @@ let
         sha512 = "7AQsO0hMmpqDledV7AhBuSYqYPFsKP9PaltMecX9nlnsyFxqtsqUg9/pvB2L/jxvskrDrNkdKYz2KTbQznCtng==";
       };
     };
-    "@mdn/browser-compat-data-2.0.7" = {
+    "@mdn/browser-compat-data-3.1.3" = {
       name = "_at_mdn_slash_browser-compat-data";
       packageName = "@mdn/browser-compat-data";
-      version = "2.0.7";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz";
-        sha512 = "GeeM827DlzFFidn1eKkMBiqXFD2oLsnZbaiGhByPl0vcapsRzUL+t9hDoov1swc9rB2jw64R+ihtzC8qOE9wXw==";
+        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.1.3.tgz";
+        sha512 = "Qdqeox4APsYwAQQSO68D1p75DL9an1wS8b/51m+nH98unN4jbS5bvg22WQrg+TMq2/3Mg/E5zprqfUzJD84qgw==";
+      };
+    };
+    "@mdx-js/util-2.0.0-next.8" = {
+      name = "_at_mdx-js_slash_util";
+      packageName = "@mdx-js/util";
+      version = "2.0.0-next.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz";
+        sha512 = "T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ==";
       };
     };
     "@medv/blessed-2.0.1" = {
@@ -3415,13 +3667,40 @@ let
         sha512 = "/NdX1Ql8hKNM0vHFJnEr/bcw6BG0ULHD3HhInpniZw5ixpl+n/QIRfMEEmLCn7acedbM1zGdZvU5ZMbn9kcF5Q==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.147" = {
+    "@microsoft/load-themed-styles-1.10.155" = {
+      name = "_at_microsoft_slash_load-themed-styles";
+      packageName = "@microsoft/load-themed-styles";
+      version = "1.10.155";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.155.tgz";
+        sha512 = "jXcfI934j2I6lFdja5fuz8BCAXX/W+bHo0eXNAnE1qQB1UPf31fvXT2XeqazqZP45G/XqwfrUu0zeflSadx6WQ==";
+      };
+    };
+    "@microsoft/load-themed-styles-1.10.156" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.147";
+      version = "1.10.156";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.156.tgz";
+        sha512 = "MHEgmg/y+J4I/VT0j3hf0HQ4U+XFSHvPO5lNxD4wQN6Teo/aH1EBgy5B/CU5UrDxG+Rx06MboYtX4WfucrY4Og==";
+      };
+    };
+    "@mitmaro/errors-1.0.0" = {
+      name = "_at_mitmaro_slash_errors";
+      packageName = "@mitmaro/errors";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mitmaro/errors/-/errors-1.0.0.tgz";
+        sha512 = "KUU0J4rgHsJiMsAj6Ndj+OTAlsKsX/fe3geQ0UB1jYm1DoaqFoanh1sBshb9rLNJpPjsD7yNQFykGajAsPciyw==";
+      };
+    };
+    "@mitmaro/http-authorization-header-1.0.0" = {
+      name = "_at_mitmaro_slash_http-authorization-header";
+      packageName = "@mitmaro/http-authorization-header";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.147.tgz";
-        sha512 = "fqkftQUoc2fjR9F+4uZkCt2hJhgZlkgM33k4qD4UdI75+SDOK9Zp5iU3dWzvwDWWVIXTOE+GKMFlmUtrlKZ+fg==";
+        url = "https://registry.npmjs.org/@mitmaro/http-authorization-header/-/http-authorization-header-1.0.0.tgz";
+        sha512 = "cAm7w7S04aswBtsXAReyzHrq9EV7yNalYj8OObsnavCucDoxC10y14gE2Eg82UKnR5v2TWSJAVCLFea4gaiddQ==";
       };
     };
     "@mozilla/readability-0.4.1" = {
@@ -3451,13 +3730,13 @@ let
         sha512 = "Vwhc3ObxmDZmA5hY8mfsau2rJ4vGPvzbj20QSZ2/E1GDPF61QVyjLfNHak9xmel6pW4heRt3v1fHa6np9Ehfeg==";
       };
     };
-    "@nestjs/schematics-7.2.7" = {
+    "@nestjs/schematics-7.3.1" = {
       name = "_at_nestjs_slash_schematics";
       packageName = "@nestjs/schematics";
-      version = "7.2.7";
+      version = "7.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-7.2.7.tgz";
-        sha512 = "71XqMPf7s2P1Q6PVMDLbSLphVWgGDK2CgURVYyreuIWXVSoi9pcPIeO5k0Qb5n5jELlKwdrf66g05U2I6TIxzg==";
+        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-7.3.1.tgz";
+        sha512 = "eyBjJstAjecpdzRuBLiqnwomwXIAEV3+kPkpaphOieRUM6nBhjnXCCl3Qf8Dul2QUQK4NOVPd8FFxWtGP5XNlg==";
       };
     };
     "@netflix/nerror-1.1.3" = {
@@ -3469,58 +3748,58 @@ let
         sha512 = "b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==";
       };
     };
-    "@netlify/build-9.1.2" = {
+    "@netlify/build-10.2.4" = {
       name = "_at_netlify_slash_build";
       packageName = "@netlify/build";
-      version = "9.1.2";
+      version = "10.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/build/-/build-9.1.2.tgz";
-        sha512 = "GvAx6f3T8MZRHDEPNOsGdsAfW188FjKTGpA04G2QoMJdLHgzAp6gI6J6m7B9b16Sw7qs5U+JX2A9JjZRHmOAsg==";
+        url = "https://registry.npmjs.org/@netlify/build/-/build-10.2.4.tgz";
+        sha512 = "pBeG3DEjzOLLH6ajScaYMHL/RP+d4yD/U5lwhMVdOb75KJuuSIJ0XGxguBg/BAva7s7Y99jltQBUSR2m1O2UlA==";
       };
     };
-    "@netlify/cache-utils-1.0.6" = {
+    "@netlify/cache-utils-1.0.7" = {
       name = "_at_netlify_slash_cache-utils";
       packageName = "@netlify/cache-utils";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-1.0.6.tgz";
-        sha512 = "Pz/TzLZhMUACT+X7Un6jZCXgEUwLPVNbx69DQtEOMZ6hNBE1b1ErTHFbSaHA0KfDn/yqCII5vS274DERvNuRwg==";
+        url = "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-1.0.7.tgz";
+        sha512 = "yrdrnQkzg/qMovoFYwQ24UVt/OyHtP+t0KpQFd7eBl6gnuuGGgxFocaFFv6eKpMVwzHTsOwx/y9B/FcC3/6cfA==";
       };
     };
-    "@netlify/config-4.0.1" = {
+    "@netlify/config-5.1.0" = {
       name = "_at_netlify_slash_config";
       packageName = "@netlify/config";
-      version = "4.0.1";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/config/-/config-4.0.1.tgz";
-        sha512 = "qI/PxBx5RGuQbVgYOtbEJ498+yDWqfqetDOHYzxJEFZYpZjS5Effu4jt92amnW55pzOZvTk/vQZQx8zLb4N2WQ==";
+        url = "https://registry.npmjs.org/@netlify/config/-/config-5.1.0.tgz";
+        sha512 = "HScoMDm58zS5qOemD4ad0M+3GTt8hJbpLj/YVGGH1XTCMbIiL5L+w1sx6YDjBgf4J7Y1VKwMHSHgQhFPixrsIA==";
       };
     };
-    "@netlify/framework-info-2.3.0" = {
+    "@netlify/framework-info-3.2.1" = {
       name = "_at_netlify_slash_framework-info";
       packageName = "@netlify/framework-info";
-      version = "2.3.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-2.3.0.tgz";
-        sha512 = "vqy9wbBRP8qWnkzA/OQsThr1+cfqapMrORJ4hWcrjhIPRmXIJtwB6OWuLIUalMeSGCwqZjYpKfudc4BLuxxvjw==";
+        url = "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-3.2.1.tgz";
+        sha512 = "OL/RSLbi8qd2mQebktudz3Hws/xZwf0gCgNnM3jr+vp+l3ejQXmAQd6k5zH/a9EjZLWgUyUSeMIqIjDLJKaN8Q==";
       };
     };
-    "@netlify/functions-utils-1.3.12" = {
+    "@netlify/functions-utils-1.3.22" = {
       name = "_at_netlify_slash_functions-utils";
       packageName = "@netlify/functions-utils";
-      version = "1.3.12";
+      version = "1.3.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.12.tgz";
-        sha512 = "u2t6AVKsg9MuXicYETMqWubOXUayNdCU0GuMl2u5T3bz9E7mVCnCB4VVkEVDqlC8GnrdbVHzEu+OPmbv+dkzJA==";
+        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.22.tgz";
+        sha512 = "MKamaR0k6wiWNgJtwhAsdiRtgLdTUfVz8n41/eS2V1CAFYzk3194tffaYHtKBMAXZUORjemWZnL7yr9vwUnlJg==";
       };
     };
-    "@netlify/git-utils-1.0.7" = {
+    "@netlify/git-utils-1.0.8" = {
       name = "_at_netlify_slash_git-utils";
       packageName = "@netlify/git-utils";
-      version = "1.0.7";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-1.0.7.tgz";
-        sha512 = "+CT/1D13Uxi3Qlnf0/F2XpmBsTYGCax0SQJhIrq6hLJXJt0Ej2FBA3Rq7XxOXibAptK1Dw2LUi1JWHQ36H/3aw==";
+        url = "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-1.0.8.tgz";
+        sha512 = "YWK2H6qjBmspTIibE/ai8YTsSnqROtubqWUuXz/RoQXYf03KWx/F9BFRm1S/TOoQM9v4fozRhVeHyH45Ki0ztA==";
       };
     };
     "@netlify/open-api-1.3.0" = {
@@ -3532,31 +3811,31 @@ let
         sha512 = "GcCPXIWI8VDBsLN4nPvb6sKS9tbi4lrHLhex90hT27nwTDeu4HgGE93YilcsgZ1LLODJNxC5LdfTNLtvEHMKVg==";
       };
     };
-    "@netlify/plugin-edge-handlers-1.11.3" = {
+    "@netlify/plugin-edge-handlers-1.11.6" = {
       name = "_at_netlify_slash_plugin-edge-handlers";
       packageName = "@netlify/plugin-edge-handlers";
-      version = "1.11.3";
+      version = "1.11.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/plugin-edge-handlers/-/plugin-edge-handlers-1.11.3.tgz";
-        sha512 = "ewAXDU46PONZ279M1S7hrwIvdyBjwDJL+DkA1iRFKydEMAIl5Z/HyAM4bX2OoRDi2eaIKLRO06dMAjaYgzpaog==";
+        url = "https://registry.npmjs.org/@netlify/plugin-edge-handlers/-/plugin-edge-handlers-1.11.6.tgz";
+        sha512 = "7L5pkXlwPfyUrmm9cu2+nOQYW1FMx6waMbl2Uj5SmxjLz5Dvt2zkUYbNU2ImNmJ10mxziv3LABSFn2k2qy2nLw==";
       };
     };
-    "@netlify/plugins-list-2.2.0" = {
+    "@netlify/plugins-list-2.6.0" = {
       name = "_at_netlify_slash_plugins-list";
       packageName = "@netlify/plugins-list";
-      version = "2.2.0";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-2.2.0.tgz";
-        sha512 = "8OCwatZIPsyze2KZ8fj21/+luzdTA78fxQ6p7UFLE9IRJlZqCRVXtgiIVd/HtEr6B9OacywX3fV1hVRBVlbmDA==";
+        url = "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-2.6.0.tgz";
+        sha512 = "XtBrsd4M0OW3RT9O7omqBhWevPoxVfkEX9BJ2Hv5J3gpujTN6IZEYmyprxhQ+Y98r4VvZVUX8dPzR99aF15YcQ==";
       };
     };
-    "@netlify/run-utils-1.0.5" = {
+    "@netlify/run-utils-1.0.7" = {
       name = "_at_netlify_slash_run-utils";
       packageName = "@netlify/run-utils";
-      version = "1.0.5";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/run-utils/-/run-utils-1.0.5.tgz";
-        sha512 = "Ovgkw9b7HSLsdhTBA+LNq3KY83gU9DP0xHbwDlg07zLpY3RtRN2IBy11w+nRPjQwfNT33OmuTvayH6amJDku5Q==";
+        url = "https://registry.npmjs.org/@netlify/run-utils/-/run-utils-1.0.7.tgz";
+        sha512 = "YFi1Sf+ktQICS3tAKu7/uiGzLXgi8RNVwH9naUkziXwXQNH2oxDhKgy0/Zv5Nw0zMDJyKWrJ3xObWEC57mJ/KA==";
       };
     };
     "@netlify/traffic-mesh-agent-0.27.10" = {
@@ -3595,13 +3874,22 @@ let
         sha512 = "ea6S9ik5X0TlA2e+jXk5D7lfvArPZjyQoIBEo7G1Tjw/vUU5Fx6KLfXv1iy7eJy+ENTLoyidscAjJ2wXlHI47g==";
       };
     };
-    "@netlify/zip-it-and-ship-it-2.3.0" = {
+    "@netlify/zip-it-and-ship-it-2.7.1" = {
       name = "_at_netlify_slash_zip-it-and-ship-it";
       packageName = "@netlify/zip-it-and-ship-it";
-      version = "2.3.0";
+      version = "2.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-2.7.1.tgz";
+        sha512 = "Tt37A8tyQcEw3h4YZ4g5/Cgqya4rf/BnweDjfwPDj0BFZmfjRSH8CIZvTJd2y+R2AvLJ1b89cXVYen9uwb2A9w==";
+      };
+    };
+    "@netlify/zip-it-and-ship-it-3.1.0" = {
+      name = "_at_netlify_slash_zip-it-and-ship-it";
+      packageName = "@netlify/zip-it-and-ship-it";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-2.3.0.tgz";
-        sha512 = "dqYXA/e2ZY6bO7fvp18YKXLYE/CK8cAbjBE2mo339sA+xchoV3ryYEjsLpoYqFWofUBLQnCYahm4D9a4H7RT0A==";
+        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-3.1.0.tgz";
+        sha512 = "x8Qz2ufrpz+dfv/HY4s/Xiwux4B0A4KbXp+vDdbTU8TkrIIRD9LGdzuwlCGBhTCufAWim3wARhSIZBC6+0k69w==";
       };
     };
     "@node-red/editor-api-1.2.9" = {
@@ -3748,13 +4036,13 @@ let
         sha512 = "QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==";
       };
     };
-    "@npmcli/run-script-1.8.3" = {
+    "@npmcli/run-script-1.8.4" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
-      version = "1.8.3";
+      version = "1.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.3.tgz";
-        sha512 = "ELPGWAVU/xyU+A+H3pEPj0QOvYwLTX71RArXcClFzeiyJ/b/McsZ+d0QxpznvfFtZzxGN/gz/1cvlqICR4/suQ==";
+        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.4.tgz";
+        sha512 = "Yd9HXTtF1JGDXZw0+SOn+mWLYS0e7bHBHVC/2C8yqs4wUrs/k8rwBSinD7rfk+3WG/MFGRZKxjyoD34Pch2E/A==";
       };
     };
     "@oclif/color-0.1.2" = {
@@ -3820,15 +4108,6 @@ let
         sha512 = "Afchpdd8FNfx9GaU/1D9IzyfiXvjfGybgzQ6G4GTFvPO0/hLdkXX3YyYq+SnxE6/bCrhg4pleiB+GuJACmmkEA==";
       };
     };
-    "@oclif/plugin-autocomplete-0.3.0" = {
-      name = "_at_oclif_slash_plugin-autocomplete";
-      packageName = "@oclif/plugin-autocomplete";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-0.3.0.tgz";
-        sha512 = "gCuIUCswvoU1BxDDvHSUGxW8rFagiacle8jHqE49+WnuniXD/N8NmJvnzmlNyc8qLE192CnKK+qYyAF+vaFQBg==";
-      };
-    };
     "@oclif/plugin-help-1.2.11" = {
       name = "_at_oclif_slash_plugin-help";
       packageName = "@oclif/plugin-help";
@@ -3865,22 +4144,13 @@ let
         sha512 = "G440PCuMi/OT8b71aWkR+kCWikngGtyRjOR24sPMDbpUFV4+B3r51fz1fcqeUiiEOYqUpr0Uy/sneUe1O/NfBg==";
       };
     };
-    "@oclif/plugin-plugins-1.9.5" = {
+    "@oclif/plugin-plugins-1.10.0" = {
       name = "_at_oclif_slash_plugin-plugins";
       packageName = "@oclif/plugin-plugins";
-      version = "1.9.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-1.9.5.tgz";
-        sha512 = "8U1MKPTaitCBj4HPZpwFo7F5Krw9zEaNqKiX+QkvPz2wfftLqnSqariYvP38S/uo8CDwiR3zHPEYFSxu9CDQQA==";
-      };
-    };
-    "@oclif/plugin-warn-if-update-available-1.7.0" = {
-      name = "_at_oclif_slash_plugin-warn-if-update-available";
-      packageName = "@oclif/plugin-warn-if-update-available";
-      version = "1.7.0";
+      version = "1.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-1.7.0.tgz";
-        sha512 = "Nwyz3BJ8RhsfQ+OmFSsJSPIfn5YJqMrCzPh72Zgo2jqIjKIBWD8N9vTTe4kZlpeUUn77SyXFfwlBQbNCL5OEuQ==";
+        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-1.10.0.tgz";
+        sha512 = "lfHNiuuCrCUtH9A912T/ztxRA9lS1lCZm+gcmVWksIJG/gwKH/fMn+GdLTbRzU2k6ojtMhBblYk1RWKxUEJuzA==";
       };
     };
     "@oclif/screen-1.0.4" = {
@@ -3892,6 +4162,15 @@ let
         sha512 = "60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw==";
       };
     };
+    "@octetstream/promisify-2.0.2" = {
+      name = "_at_octetstream_slash_promisify";
+      packageName = "@octetstream/promisify";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octetstream/promisify/-/promisify-2.0.2.tgz";
+        sha512 = "7XHoRB61hxsz8lBQrjC1tq/3OEIgpvGWg6DKAdwi7WRzruwkmsdwmOoUXbU4Dtd4RSOMDwed0SkP3y8UlMt1Bg==";
+      };
+    };
     "@octokit/auth-token-2.4.5" = {
       name = "_at_octokit_slash_auth-token";
       packageName = "@octokit/auth-token";
@@ -3901,6 +4180,15 @@ let
         sha512 = "BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==";
       };
     };
+    "@octokit/core-3.4.0" = {
+      name = "_at_octokit_slash_core";
+      packageName = "@octokit/core";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/core/-/core-3.4.0.tgz";
+        sha512 = "6/vlKPP8NF17cgYXqucdshWqmMZGXkuvtcrWCgU5NOI0Pl2GjlmZyWgBMrU8zJ3v2MJlM6++CiB45VKYmhiWWg==";
+      };
+    };
     "@octokit/endpoint-6.0.11" = {
       name = "_at_octokit_slash_endpoint";
       packageName = "@octokit/endpoint";
@@ -3910,13 +4198,22 @@ let
         sha512 = "fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==";
       };
     };
-    "@octokit/openapi-types-4.0.2" = {
+    "@octokit/graphql-4.6.1" = {
+      name = "_at_octokit_slash_graphql";
+      packageName = "@octokit/graphql";
+      version = "4.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.1.tgz";
+        sha512 = "2lYlvf4YTDgZCTXTW4+OX+9WTLFtEUc6hGm4qM1nlZjzxj+arizM4aHWzBVBCxY9glh7GIs0WEuiSgbVzv8cmA==";
+      };
+    };
+    "@octokit/openapi-types-6.0.0" = {
       name = "_at_octokit_slash_openapi-types";
       packageName = "@octokit/openapi-types";
-      version = "4.0.2";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-4.0.2.tgz";
-        sha512 = "quqmeGTjcVks8YaatVGCpt7QpUTs2PK0D3mW5aEQqmFKOuIZ/CxwWrgnggPjqP3CNp6eALdQRgf0jUpcG8X1/Q==";
+        url = "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-6.0.0.tgz";
+        sha512 = "CnDdK7ivHkBtJYzWzZm7gEkanA7gKH6a09Eguz7flHw//GacPJLmkHA3f3N++MJmlxD1Fl+mB7B32EEpSCwztQ==";
       };
     };
     "@octokit/plugin-enterprise-rest-6.0.1" = {
@@ -3937,6 +4234,15 @@ let
         sha512 = "jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==";
       };
     };
+    "@octokit/plugin-paginate-rest-2.13.3" = {
+      name = "_at_octokit_slash_plugin-paginate-rest";
+      packageName = "@octokit/plugin-paginate-rest";
+      version = "2.13.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.13.3.tgz";
+        sha512 = "46lptzM9lTeSmIBt/sVP/FLSTPGx6DCzAdSX3PfeJ3mTf4h9sGC26WpaQzMEq/Z44cOcmx8VsOhO+uEgE3cjYg==";
+      };
+    };
     "@octokit/plugin-request-log-1.0.3" = {
       name = "_at_octokit_slash_plugin-request-log";
       packageName = "@octokit/plugin-request-log";
@@ -3955,6 +4261,15 @@ let
         sha512 = "EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==";
       };
     };
+    "@octokit/plugin-rest-endpoint-methods-5.0.0" = {
+      name = "_at_octokit_slash_plugin-rest-endpoint-methods";
+      packageName = "@octokit/plugin-rest-endpoint-methods";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.0.0.tgz";
+        sha512 = "Jc7CLNUueIshXT+HWt6T+M0sySPjF32mSFQAK7UfAg8qGeRI6OM1GSBxDLwbXjkqy2NVdnqCedJcP1nC785JYg==";
+      };
+    };
     "@octokit/request-5.4.14" = {
       name = "_at_octokit_slash_request";
       packageName = "@octokit/request";
@@ -3991,6 +4306,15 @@ let
         sha512 = "ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==";
       };
     };
+    "@octokit/rest-18.5.2" = {
+      name = "_at_octokit_slash_rest";
+      packageName = "@octokit/rest";
+      version = "18.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.2.tgz";
+        sha512 = "Kz03XYfKS0yYdi61BkL9/aJ0pP2A/WK5vF/syhu9/kY30J8He3P68hv9GRpn8bULFx2K0A9MEErn4v3QEdbZcw==";
+      };
+    };
     "@octokit/types-2.16.2" = {
       name = "_at_octokit_slash_types";
       packageName = "@octokit/types";
@@ -4000,13 +4324,13 @@ let
         sha512 = "O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==";
       };
     };
-    "@octokit/types-6.8.3" = {
+    "@octokit/types-6.13.0" = {
       name = "_at_octokit_slash_types";
       packageName = "@octokit/types";
-      version = "6.8.3";
+      version = "6.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/types/-/types-6.8.3.tgz";
-        sha512 = "ZNAy8z77ewKZ5LCX0KaUm4tWdgloWQ6FWJCh06qgahq/MH13sQefIPKSo0dBdPU3bcioltyZUcC0k8oHHfjvnQ==";
+        url = "https://registry.npmjs.org/@octokit/types/-/types-6.13.0.tgz";
+        sha512 = "W2J9qlVIU11jMwKHUp5/rbVUeErqelCsO5vW5PKNb7wAXQVUz87Rc+imjlEvpvbH8yUb+KHmv8NEjVZdsdpyxA==";
       };
     };
     "@open-policy-agent/opa-wasm-1.2.0" = {
@@ -4099,310 +4423,310 @@ let
         sha512 = "2TUGhTGkhgnxTciHCNAILPSeyXageJewRqfP9wOrx65sKd/jgvNYoY8nYf4EVWVMirDOxKDsmYgUkjdQrwb2dg==";
       };
     };
-    "@ot-builder/bin-composite-types-1.0.1" = {
+    "@ot-builder/bin-composite-types-1.0.3" = {
       name = "_at_ot-builder_slash_bin-composite-types";
       packageName = "@ot-builder/bin-composite-types";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.0.1.tgz";
-        sha512 = "OwX0d7IN7LhgeWiPPftMTcGYVisMPWXuvuLQHdc7gO+1Sg/7+XbMwXbdYI1PvJwqNlqKPE5+yVesjgVtt1RRwQ==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.0.3.tgz";
+        sha512 = "PEjk6MhiY53QQEW6NQAPYfNBdCqoFEE9OkG+25tvhJ6MWsEUz+hUq9argDjeP2DNckd4WRyGcmp6GtH8J4clLQ==";
       };
     };
-    "@ot-builder/bin-util-1.0.1" = {
+    "@ot-builder/bin-util-1.0.3" = {
       name = "_at_ot-builder_slash_bin-util";
       packageName = "@ot-builder/bin-util";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.0.1.tgz";
-        sha512 = "LN6iR+Y/gmRkRoxW6VV5U1SIDRu9zQ5ZshePQukp1+gdJQJBrhmCrreL4XEEOQ/3AC67yuj6pAPi70jagqKxyA==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.0.3.tgz";
+        sha512 = "x66vsg6oNJmQ/xp+sQLMUk2imXn5L0psdKj5FYziqZQ99B055+t8Ydf6FM42GRYW2xIczeDIesmLZkRaQPgTOA==";
       };
     };
-    "@ot-builder/cli-help-shower-1.0.1" = {
+    "@ot-builder/cli-help-shower-1.0.3" = {
       name = "_at_ot-builder_slash_cli-help-shower";
       packageName = "@ot-builder/cli-help-shower";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.0.1.tgz";
-        sha512 = "oCsKX1ecjd1L8uOmU1z0YziizRoOWN4NOhnDU+sLGtPYPnM9bOzKprfY6W99NFkTYu27N19glwFUPM/s0F+nNA==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.0.3.tgz";
+        sha512 = "gLKTb/EnGKl5qmhzRQum0szIT0v5Fzk0UxVWdbmJjeCl6xWNsWQd2sCUujIFVz0qaKGLPvImvn2W8Q5j8JnOkw==";
       };
     };
-    "@ot-builder/cli-proc-1.0.1" = {
+    "@ot-builder/cli-proc-1.0.3" = {
       name = "_at_ot-builder_slash_cli-proc";
       packageName = "@ot-builder/cli-proc";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.0.1.tgz";
-        sha512 = "lR90Mb/Wmm2GZH0tBIGjfZhh/VxQl5YiwXVjQIo7UM5iFviHf44lYqVkn0vyE9D1IT5E/tA1OzDrjpIBG7WBKQ==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.0.3.tgz";
+        sha512 = "m+oaigFwF2fuXEvK1OQxfF3n0c4KOnNdq0TV+nIqRHzovU/e4Z1WM8Z3uUt0MJFy4k+SS+HUlQTTAOP9VA1Fcw==";
       };
     };
-    "@ot-builder/cli-shared-1.0.1" = {
+    "@ot-builder/cli-shared-1.0.3" = {
       name = "_at_ot-builder_slash_cli-shared";
       packageName = "@ot-builder/cli-shared";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.0.1.tgz";
-        sha512 = "I9Zd7gRiZdD+MFr13A9zH2CRvEkjZX91OfkDiAxpDM9ncKlnlZpbbIVp3nh0VCbUAad9lrdc+xI+MMwOEPKhIA==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.0.3.tgz";
+        sha512 = "cGZvNRD/YQ1CKwfNoN+93PDkAifZJ5Ey57Pgaheo/K2C60WqNYooIhjI6ws4YKJ3fyR7Bnblm3i+X3Yk8VSCBg==";
       };
     };
-    "@ot-builder/common-impl-1.0.1" = {
+    "@ot-builder/common-impl-1.0.3" = {
       name = "_at_ot-builder_slash_common-impl";
       packageName = "@ot-builder/common-impl";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.0.1.tgz";
-        sha512 = "v0r2tPYO8MTmx6Eo6cPGCXYZe2ScX4zA9xAfqvXn//h0sr4K11k3F6ELLDY64zKASOhITcWgznU3Prt3ubpkjg==";
+        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.0.3.tgz";
+        sha512 = "WflKduZfy2q3NbnBcHpkKRo/ifSxRaSqnTQkJD9UBmhS10zVYv6XoPL9NC/CAUjbeRLL8eS3WMdBZWaw6mwEvQ==";
       };
     };
-    "@ot-builder/errors-1.0.1" = {
+    "@ot-builder/errors-1.0.3" = {
       name = "_at_ot-builder_slash_errors";
       packageName = "@ot-builder/errors";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.0.1.tgz";
-        sha512 = "66pRCyZq/uESMHTb6Wz3FYwUr6YYnuJ+sJMGyfvOCCvwZzlUYiZZ9r0lPjh/lvZ3j1UYFG6OvpIgUeBCqean9w==";
+        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.0.3.tgz";
+        sha512 = "tpgnvmZeaK36OvAcbDQ4eeCWxJMk223BHYT2xUw7cRq7fUXJZI7+CqSg81Hwbir1sL6SbHjl356bkgbut1zHJQ==";
       };
     };
-    "@ot-builder/io-bin-cff-1.0.1" = {
+    "@ot-builder/io-bin-cff-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-cff";
       packageName = "@ot-builder/io-bin-cff";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.0.1.tgz";
-        sha512 = "rEuNFXtyU0/a2xpqTHajIZ8YgEkVdB7XImODrs308zlkHdaWL6akOUgBNr866qj6kVWEdfnXkcF0ZCaRJYrCzA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.0.3.tgz";
+        sha512 = "LfXw3RkxrvudKYAwVsWMGXZ7R6fSUM9GFl4tBCOiY/MmSwkZ3pI7JicrVTLOs+ZuizKdtVQe5KfY/sjz0SyFeg==";
       };
     };
-    "@ot-builder/io-bin-encoding-1.0.1" = {
+    "@ot-builder/io-bin-encoding-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-encoding";
       packageName = "@ot-builder/io-bin-encoding";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.0.1.tgz";
-        sha512 = "50IRjuNn2vJny5QXFcEp7EccfHEVZ8TTp4TdA6w6pyNtqxyUSHukrqJTpnO30jitNS+NRSqdoI9EHDgZh2Z5IQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.0.3.tgz";
+        sha512 = "0QTgXPfEyItzkqNGXhxPIciOrF7+hbAwfnJf1yBSYvJl3JiE0FKpN3XDIWrPl71flkvvXFBHGoB+wIp8vwiLNw==";
       };
     };
-    "@ot-builder/io-bin-ext-private-1.0.1" = {
+    "@ot-builder/io-bin-ext-private-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-ext-private";
       packageName = "@ot-builder/io-bin-ext-private";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.0.1.tgz";
-        sha512 = "+vWNtsB9YDoM6bYcADfQEw5g9BIM1qbNlYDtntas/3BcEkjtMC2hUmHfkjPYJCaLpJSROUTqH9n+3Ih+OLgvRw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.0.3.tgz";
+        sha512 = "RRzfr6yzFTDx0w7L5AKIIJPZ0ab+5WUxUssnBxnBatzOnmtgJmobYdX4R6SLbFPiq+YDyAa/mB44EGLyWcVAgw==";
       };
     };
-    "@ot-builder/io-bin-font-1.0.1" = {
+    "@ot-builder/io-bin-font-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-font";
       packageName = "@ot-builder/io-bin-font";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.0.1.tgz";
-        sha512 = "GQ605nx70kUD3Mu+4RZ7+GyO5Yp6zGG4+Lrw6Fpmyd7aCTchCeYkHAIAuIUtzkTo/xKTg+MDQqHUK1a9V9hQpw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.0.3.tgz";
+        sha512 = "Eq+tjzRqivY8e3r3rCzVppWizqXpXutacWO8Mdw0TqlnfSONVfJStLafzDTOKrbrr2m7dYEC7sBwkQz65iuARQ==";
       };
     };
-    "@ot-builder/io-bin-glyph-store-1.0.1" = {
+    "@ot-builder/io-bin-glyph-store-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-glyph-store";
       packageName = "@ot-builder/io-bin-glyph-store";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.0.1.tgz";
-        sha512 = "O51k7dReVjls62SfpIh+bNv053dxqRq+fbHBwU2mXo/klKk+T7NIQvaWqZpomUFlY3nrNv9AOAlAHZzjkHyIeA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.0.3.tgz";
+        sha512 = "TNHLSZ7Hs6X92HMMjZQ6Zru84bbu/5p/SWJDIEq4IuiNrDGIrTHFtIAC4XfK5mWOFfP0fNXR00ox9wjeerYeZw==";
       };
     };
-    "@ot-builder/io-bin-layout-1.0.1" = {
+    "@ot-builder/io-bin-layout-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-layout";
       packageName = "@ot-builder/io-bin-layout";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.0.1.tgz";
-        sha512 = "dfdqHp77r5jixq0E/7v/PyrMWVKVtZPCEAa7QonPIfFxoG5a/nq9hzuXSLldg8GxuUXzEqV3waXB9sSo7KpOCg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.0.3.tgz";
+        sha512 = "XyyAgn6FjXgdyudq5CcbDoWpUbqlraqDiXHAY1XttpiIvLiTDtWj8KTryLoS8WkfaWLvZ/W2t8VylL6wvR4Saw==";
       };
     };
-    "@ot-builder/io-bin-metadata-1.0.1" = {
+    "@ot-builder/io-bin-metadata-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-metadata";
       packageName = "@ot-builder/io-bin-metadata";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.0.1.tgz";
-        sha512 = "c5DMb048oMO3WKkeszVif5OVN1ZCEGexBjPBS06zIeRB3F0X+/ZjCjbtx6WWXRvF9DkZDrDMAFDmG3dAhtPvdA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.0.3.tgz";
+        sha512 = "JmnK3csx7+M+61Id/w9+cRNz/hrCShNZbG04yPMAWKbq7YXuPRhX1/4/vdlDwmJFRF3V3TIz1WsIVpjmdrhocw==";
       };
     };
-    "@ot-builder/io-bin-metric-1.0.1" = {
+    "@ot-builder/io-bin-metric-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-metric";
       packageName = "@ot-builder/io-bin-metric";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.0.1.tgz";
-        sha512 = "vRodhi6NOZ3J91XtnhNRC/i4FyUhV4xFA3kavsJvuRa6kmubSmkqoH1xYGgIxvRxi3pRdfojGI9+a/usZ5DikA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.0.3.tgz";
+        sha512 = "b6pvou6rYgT+VUkRLM1UqdVcCCgi+/YIRuzLH+mKfYcP3oEhdK5g1FbX0gEzPHuwjIksOAq+z57JY5WuWkRAbQ==";
       };
     };
-    "@ot-builder/io-bin-name-1.0.1" = {
+    "@ot-builder/io-bin-name-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-name";
       packageName = "@ot-builder/io-bin-name";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.0.1.tgz";
-        sha512 = "GnOPDSjIFG2uR2tbEondXqEt2ArISyTn7yXJbYM3AG4hdY52xn/mFcEvidgHEYLDDOkxuxoNTBDnbeCg3LxEyA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.0.3.tgz";
+        sha512 = "jDKoPRX4to+z5yuY/pZv7owEGjzjIvqqlZN8jNeDYwbnq1+Mheyfwe+0A5RnYSTdvQceLHtwRN722/rap33r7A==";
       };
     };
-    "@ot-builder/io-bin-sfnt-1.0.1" = {
+    "@ot-builder/io-bin-sfnt-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-sfnt";
       packageName = "@ot-builder/io-bin-sfnt";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.0.1.tgz";
-        sha512 = "5TjEG3bEthvgn/LlQT/c2wSiPUeY+7jmfPr6+7G839avl/31FwxYIbhCjrjWbg/ceuo8NNRxvmi7H+m1HwjcBg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.0.3.tgz";
+        sha512 = "7AOYNulmBGQxvr+4jeQTz2cgS88l8arPE4m8EcLcNj9AGlKF5Mhk1an+OjH8JRvuHjRaq7yqfO8ZCdAaF32U9Q==";
       };
     };
-    "@ot-builder/io-bin-ttf-1.0.1" = {
+    "@ot-builder/io-bin-ttf-1.0.3" = {
       name = "_at_ot-builder_slash_io-bin-ttf";
       packageName = "@ot-builder/io-bin-ttf";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.0.1.tgz";
-        sha512 = "nYRGtMLRDZdrSkCxp6sDjFeSeOEsCDTMFWBZrNSeRKINSvDmXpVJQCKLqx+TBZBykNb9Cf7+iCuNG5YfNUiEGg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.0.3.tgz";
+        sha512 = "xQFAG3lnzycqNrxbZ9jn8V+b9RzdgMg7YFRMd12TYoRzdoHaIh+v2DZ8lyhwkv3owvYDzr6iRCI6nts3mFQuug==";
       };
     };
-    "@ot-builder/ot-1.0.1" = {
+    "@ot-builder/ot-1.0.3" = {
       name = "_at_ot-builder_slash_ot";
       packageName = "@ot-builder/ot";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.0.1.tgz";
-        sha512 = "l+nQjrTWO6De0OkX1ETC+7Pr8gArJL5L+2vhYdktiqe0tAC/odmu/dVINMenqOufC+DVzJLHhCyFNT/HrukGCA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.0.3.tgz";
+        sha512 = "fEQdRjO58o5PfnUSpx3KzqC4l5tpvX9tquKrvEi/MgKr08PykTs9iUFkzcfQ3+1zHDrebfrq2Peei0vpcaGC3Q==";
       };
     };
-    "@ot-builder/ot-encoding-1.0.1" = {
+    "@ot-builder/ot-encoding-1.0.3" = {
       name = "_at_ot-builder_slash_ot-encoding";
       packageName = "@ot-builder/ot-encoding";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.0.1.tgz";
-        sha512 = "eY1L/Waa9J7OAu5xaggvied4qKnJobpfELVcrDTdsR85F7JJQMdV2P1o9oRS0tzf6nHMfhkCihV5IlLqLxS1eQ==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.0.3.tgz";
+        sha512 = "Bmd7Zdb6E791681fH2a7th9puyVbQb1YARYaIdns3fGu9+BJCrvZ2D5SBOIVuPen2TxSDZ5tfQkf/yjz63WbPQ==";
       };
     };
-    "@ot-builder/ot-ext-private-1.0.1" = {
+    "@ot-builder/ot-ext-private-1.0.3" = {
       name = "_at_ot-builder_slash_ot-ext-private";
       packageName = "@ot-builder/ot-ext-private";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.0.1.tgz";
-        sha512 = "VTagNcyvtC9EmfVHDAni78dYX97k+Hd1/ruDRSPAJhttLA5xiLWah9xAuPeQtBcglFx7375N8qA9f6CQgFBrBA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.0.3.tgz";
+        sha512 = "yu7C79YRwHV7W6cuee0ONsye2Dd6MOgAWcAcORtpFn5VjBc2Nvxs5OAXKlysbOeHtaVGfDub4w8phx/9ZfoxvA==";
       };
     };
-    "@ot-builder/ot-glyphs-1.0.1" = {
+    "@ot-builder/ot-glyphs-1.0.3" = {
       name = "_at_ot-builder_slash_ot-glyphs";
       packageName = "@ot-builder/ot-glyphs";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.0.1.tgz";
-        sha512 = "FZfcl61XFO393QOBZK8hzRAdavVHW5tUKEzkZzlnDWJEhlZNUTqycn+nJWc5rwfMtQnnJ4UQ1DdJDUTaDZ2VHQ==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.0.3.tgz";
+        sha512 = "NJgyHqEINRlZnyEiP+tBsYvQceIvD2XBM1bcJqUCY4xwrOBGtEceP3ChVz44UQEBrtdIOCjv/nycxp55VIKqug==";
       };
     };
-    "@ot-builder/ot-layout-1.0.1" = {
+    "@ot-builder/ot-layout-1.0.3" = {
       name = "_at_ot-builder_slash_ot-layout";
       packageName = "@ot-builder/ot-layout";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.0.1.tgz";
-        sha512 = "1Kes3RWBnP+k6bCtQAASquh4zDHvJI7BcD+vS0FyerwvniarxGxw4CELmLN87xGrQBybmez/aftqXnRmhsjrRQ==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.0.3.tgz";
+        sha512 = "HIpQABvaJTKfFi4ui+Vu3AM51VV0Zr2sU3jtAy2kS8HFIyiNVlJCn925jc3n/NzLHvU2FjBeQDFr8o2sQGRchg==";
       };
     };
-    "@ot-builder/ot-metadata-1.0.1" = {
+    "@ot-builder/ot-metadata-1.0.3" = {
       name = "_at_ot-builder_slash_ot-metadata";
       packageName = "@ot-builder/ot-metadata";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.0.1.tgz";
-        sha512 = "YO6WGvXyhvSCmsGdkK/L37YzoMpFn6A8YoDgMJk4R0MPjoJuVta4srDv41RvOLVr9oDiYtiPFRw8BjkdEWrMbg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.0.3.tgz";
+        sha512 = "JK6IPCVCuCdi5k6FQWEXMqdPlPoORuWan4skXWpe7s7NUXYHonJBwZ6sLrPqPIbYmOlEotxT93VvoUo1sqZS0A==";
       };
     };
-    "@ot-builder/ot-name-1.0.1" = {
+    "@ot-builder/ot-name-1.0.3" = {
       name = "_at_ot-builder_slash_ot-name";
       packageName = "@ot-builder/ot-name";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.0.1.tgz";
-        sha512 = "6L4SAwLALNOjifhX47HvXPkGKcX1HfpeGnzFtMDtgUi3muiYrKb3YJffV8vk8V1EQhiVTWJ1j7441SS6cY2m8g==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.0.3.tgz";
+        sha512 = "Z1VjRAoCgxMDloyOEoKWiimHf0S/AHXHsw57QtNAyPwzn8MR7tuzZ2epMxygrAQSaGHgOwPQ/th+fZ2RdvPuzA==";
       };
     };
-    "@ot-builder/ot-sfnt-1.0.1" = {
+    "@ot-builder/ot-sfnt-1.0.3" = {
       name = "_at_ot-builder_slash_ot-sfnt";
       packageName = "@ot-builder/ot-sfnt";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.0.1.tgz";
-        sha512 = "jmojZ36QbcDUIXX+UPYlKtkxklKSlV35Cpa4P4vWVAISqocmX3fFIQ+Xz7Ub1XeLnkcIf86ruOrDyoSytF5NHg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.0.3.tgz";
+        sha512 = "uLctpLG/QM15IBuP8GQG7UfwFEcWVLPwTbOlrx0K6he393YVtZ3t+QwNzT1T+Ucvy2E6oxnlDSzvlz+xGHLvJA==";
       };
     };
-    "@ot-builder/ot-standard-glyph-namer-1.0.1" = {
+    "@ot-builder/ot-standard-glyph-namer-1.0.3" = {
       name = "_at_ot-builder_slash_ot-standard-glyph-namer";
       packageName = "@ot-builder/ot-standard-glyph-namer";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.0.1.tgz";
-        sha512 = "yKgPw8neJZr/wa/mFWtPbi4sKTkfyYCo+Q0SONkjJLNchuI6i/w3ijX3EDf8R9/m4j65JhHKQ8wltKBnRgHlCQ==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.0.3.tgz";
+        sha512 = "JW9cwINVxteCadCKiBo4ufCWS7DP1t+RfcVbDgQ940VGIRm59MJw5CbVM50k4Pf3dYXHJmDYMGDzSKGAZ9x+6g==";
       };
     };
-    "@ot-builder/prelude-1.0.1" = {
+    "@ot-builder/prelude-1.0.3" = {
       name = "_at_ot-builder_slash_prelude";
       packageName = "@ot-builder/prelude";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.0.1.tgz";
-        sha512 = "ocaoVx+QeYm5aYjzy+gD67cK1j/JGArqTjGXmo/ndjsBCvS9Ni9QpN4UEjoN2oz8rzr0sK4RhX9fJ7ufQ27gPA==";
+        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.0.3.tgz";
+        sha512 = "7GJ+sMzMqsI7Pe4bqM4lATQLdOJrxOoQudg3xJBe1C0UbVfXLmqvVUkKM1GMd3eR0C1sTkAxRdqILycAXzNwKQ==";
       };
     };
-    "@ot-builder/primitive-1.0.1" = {
+    "@ot-builder/primitive-1.0.3" = {
       name = "_at_ot-builder_slash_primitive";
       packageName = "@ot-builder/primitive";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.0.1.tgz";
-        sha512 = "mRSNfNNf7qUmZJ23UJVK6VnITRKgGQC5X1I1DFlIve/YfTVe6SbH0AbBBcS4OsC/gXskLkywXX6rZChjSWDmTg==";
+        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.0.3.tgz";
+        sha512 = "IgtWW8Q+gb5lzXWyPivKG0CxU3CdPZUB6tjxA9Ui+TNxTZAmj1nxmJ90Cw9CODFkcywRykSHzo3WTgLGWH6kIQ==";
       };
     };
-    "@ot-builder/rectify-1.0.1" = {
+    "@ot-builder/rectify-1.0.3" = {
       name = "_at_ot-builder_slash_rectify";
       packageName = "@ot-builder/rectify";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.0.1.tgz";
-        sha512 = "IBA/v+6ksxUADQEpk1Nbc0jRwXhZD2CNPz8xmtPPqnRAE3b8JpxIjmu6zhn1pRx0E0AvtPdMfAilhNis7IzY9g==";
+        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.0.3.tgz";
+        sha512 = "nm6Ql6oyxEdDrGtFAPOqBlEKUGIyiM8QaI57MosPshfB8UUDJAI6uAaQP4pzV4Go8/6Do3zPkDnmqQIYt/lmmQ==";
       };
     };
-    "@ot-builder/stat-glyphs-1.0.1" = {
+    "@ot-builder/stat-glyphs-1.0.3" = {
       name = "_at_ot-builder_slash_stat-glyphs";
       packageName = "@ot-builder/stat-glyphs";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.0.1.tgz";
-        sha512 = "YgsglcyhfAHNpbPXdPoZD4DhqbaHzAhtocJ/cblaOQr+uE7LD66890is1kJ4mrKUYV4Ei0uLZDyw9ngixZGteg==";
+        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.0.3.tgz";
+        sha512 = "1pZ7I/OXbQ5egHlHAK4bOthg04qp9Og/RPvFN2UTNAobRPEun/IOpnf6yO7t/JLR4Lvr1lxxDeQjt4tdPMOWOQ==";
       };
     };
-    "@ot-builder/trace-1.0.1" = {
+    "@ot-builder/trace-1.0.3" = {
       name = "_at_ot-builder_slash_trace";
       packageName = "@ot-builder/trace";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.0.1.tgz";
-        sha512 = "UZ7Fi+A+LEnkjagFeCiPlzFKSrBtY04l/B2iXqlC4gyfmwOzKGe+A8B0kVfjheePhteUm4808Yx3e419o2EepQ==";
+        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.0.3.tgz";
+        sha512 = "wr+cLAXFEdXOyLpBRW9XR28NapfJhhqOnJIiOaC3g0A31nvQtINBZaiQ8o2tSekmcmhCOsimoYWpg/SjLgq0GA==";
       };
     };
-    "@ot-builder/var-store-1.0.1" = {
+    "@ot-builder/var-store-1.0.3" = {
       name = "_at_ot-builder_slash_var-store";
       packageName = "@ot-builder/var-store";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.0.1.tgz";
-        sha512 = "IcoJ7U+Z+wjbFSL2qLuU0tIW9G/NR6sWI0r1bKgnBr0hE2Si4dj/D+GYjIVkRscfvI3x/5/XL2sWayuh2Pjvdg==";
+        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.0.3.tgz";
+        sha512 = "qJSHH+bll62V+T1oa2AvB/kAamgdFO2ZmTfkiyUK1Rb1zaBthYDADHXrzrAUdUARgAkXUXGHTZEGWc8WeU2smw==";
       };
     };
-    "@ot-builder/variance-1.0.1" = {
+    "@ot-builder/variance-1.0.3" = {
       name = "_at_ot-builder_slash_variance";
       packageName = "@ot-builder/variance";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.0.1.tgz";
-        sha512 = "cJ4eL1xyvJnPlEcrnKkZeqIw6NbPGAP2RFyEclBU2U4Freu2ZH1R8WqATbekdQqlOnwoZ1vgV8mH8EpNI3N8Uw==";
+        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.0.3.tgz";
+        sha512 = "K23fg29QU8hJkwqwhAHjVeoFVxzdEi8miOXopn8MIjPPnKUCQ+Zkbnml1I+XKrz9juQDhBszcB0kuPpBy4/hxA==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -4450,31 +4774,22 @@ let
         sha512 = "USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==";
       };
     };
-    "@pm2/agent-1.0.4" = {
+    "@pm2/agent-1.0.8" = {
       name = "_at_pm2_slash_agent";
       packageName = "@pm2/agent";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.4.tgz";
-        sha512 = "cZLwaoLa45FRuetKCcoI3kHnnQ7VMLpZnmVom04MoK0cpY/RxcSarkCHSCu9V+pdARwxx96QrWdrtAJdw97dng==";
-      };
-    };
-    "@pm2/agent-node-1.1.10" = {
-      name = "_at_pm2_slash_agent-node";
-      packageName = "@pm2/agent-node";
-      version = "1.1.10";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@pm2/agent-node/-/agent-node-1.1.10.tgz";
-        sha512 = "xRcrk7OEwhS3d/227/kKGvxgmbIi6Yyp27FzGlFNermEKhgddmFaRnmd7GRLIsBM/KB28NrwflBZulzk/mma6g==";
+        url = "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.8.tgz";
+        sha512 = "r8mud8BhBz+a2yjlgtk+PBXUR5EQ9UKSJCs232OxfCmuBr1MZw0Mo+Kfog6WJ8OmVk99r1so9yTUK4IyrgGcMQ==";
       };
     };
-    "@pm2/io-4.3.5" = {
+    "@pm2/io-5.0.0" = {
       name = "_at_pm2_slash_io";
       packageName = "@pm2/io";
-      version = "4.3.5";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@pm2/io/-/io-4.3.5.tgz";
-        sha512 = "CY/a6Nw72vrlp/FPx38l4jfEHp4gNEbo8i+WlSJ2cnWO6VE6CKmnC1zb4yQLvdP8f3EuzzoOBZVq6aGN20M82Q==";
+        url = "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz";
+        sha512 = "3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==";
       };
     };
     "@pm2/js-api-0.6.7" = {
@@ -4486,13 +4801,13 @@ let
         sha512 = "jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==";
       };
     };
-    "@pm2/pm2-version-check-1.0.3" = {
+    "@pm2/pm2-version-check-1.0.4" = {
       name = "_at_pm2_slash_pm2-version-check";
       packageName = "@pm2/pm2-version-check";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.3.tgz";
-        sha512 = "SBuYsh+o35knItbRW97vl5/5nEc5c5DYP7PxjyPLOfmm9bMaDsVeATXjXMBy6+KLlyrYWHZxGbfXe003NnHClg==";
+        url = "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz";
+        sha512 = "SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==";
       };
     };
     "@pmmmwh/react-refresh-webpack-plugin-0.3.3" = {
@@ -4504,13 +4819,13 @@ let
         sha512 = "uc6FmPEegAZawSHjUMFQwU7EjaDn7zy1iD/KD/wBROL9F4378OES8MKMYHoRAKT61Fk7LxVKZSDR5VespMQiqw==";
       };
     };
-    "@primer/octicons-11.2.0" = {
+    "@primer/octicons-12.1.0" = {
       name = "_at_primer_slash_octicons";
       packageName = "@primer/octicons";
-      version = "11.2.0";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-11.2.0.tgz";
-        sha512 = "a9ORJaeu7Kt0LCaawQy8S+ZVPDe1qXJvKZraX0b6R0KXkXjL519rpGUDRiGUlskuxEpVf2kmbVYfqGDDlMGLMg==";
+        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-12.1.0.tgz";
+        sha512 = "jayKLMTCx/0zh4fjYmkxdlEgQ8STwevn5S48fkvi/03asITmBkaYAMPrUgO8VNSQkSPHIEuc3oTLXgh+JwH0UQ==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -4603,6 +4918,15 @@ let
         sha1 = "a777360b5b39a1a2e5106f8e858f2fd2d060c570";
       };
     };
+    "@putdotio/api-client-8.15.1" = {
+      name = "_at_putdotio_slash_api-client";
+      packageName = "@putdotio/api-client";
+      version = "8.15.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.15.1.tgz";
+        sha512 = "1ODxgqJJTWe+Sb6XL05oJWmHKt81nDerLtfbJH16LY5Z8dkzg9FS9K0DWrzPR8e9TmGg8rdnF4MBCDGzOJRgCA==";
+      };
+    };
     "@react-native-community/cli-debugger-ui-4.13.1" = {
       name = "_at_react-native-community_slash_cli-debugger-ui";
       packageName = "@react-native-community/cli-debugger-ui";
@@ -4612,15 +4936,6 @@ let
         sha512 = "UFnkg5RTq3s2X15fSkrWY9+5BKOFjihNSnJjTV2H5PtTUFbd55qnxxPw8CxSfK0bXb1IrSvCESprk2LEpqr5cg==";
       };
     };
-    "@react-native-community/cli-platform-ios-4.13.0" = {
-      name = "_at_react-native-community_slash_cli-platform-ios";
-      packageName = "@react-native-community/cli-platform-ios";
-      version = "4.13.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.13.0.tgz";
-        sha512 = "6THlTu8zp62efkzimfGr3VIuQJ2514o+vScZERJCV1xgEi8XtV7mb/ZKt9o6Y9WGxKKkc0E0b/aVAtgy+L27CA==";
-      };
-    };
     "@react-native-community/cli-server-api-4.9.0" = {
       name = "_at_react-native-community_slash_cli-server-api";
       packageName = "@react-native-community/cli-server-api";
@@ -4648,13 +4963,13 @@ let
         sha512 = "rmuSC2JFFl4DkPDdGVrmffT9KcbG2AB5jvhxPIrOc1dO9mHRMUUftQY35KZlvWqqSSqVn+AM+J9dhiTo1ZqR8A==";
       };
     };
-    "@rollup/plugin-babel-5.2.3" = {
+    "@rollup/plugin-babel-5.3.0" = {
       name = "_at_rollup_slash_plugin-babel";
       packageName = "@rollup/plugin-babel";
-      version = "5.2.3";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.2.3.tgz";
-        sha512 = "DOMc7nx6y5xFi86AotrFssQqCen6CxYn+zts5KSI879d4n1hggSb4TH3mjVgG17Vc3lZziWWfcXzrEmVdzPMdw==";
+        url = "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz";
+        sha512 = "9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==";
       };
     };
     "@rollup/plugin-commonjs-17.1.0" = {
@@ -4684,13 +4999,13 @@ let
         sha512 = "yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==";
       };
     };
-    "@rollup/plugin-node-resolve-11.1.1" = {
+    "@rollup/plugin-node-resolve-11.2.1" = {
       name = "_at_rollup_slash_plugin-node-resolve";
       packageName = "@rollup/plugin-node-resolve";
-      version = "11.1.1";
+      version = "11.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.1.1.tgz";
-        sha512 = "zlBXR4eRS+2m79TsUZWhsd0slrHUYdRx4JF+aVQm+MI0wsKdlpC2vlDVjmlGvtZY1vsefOT9w3JxvmWSBei+Lg==";
+        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz";
+        sha512 = "yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==";
       };
     };
     "@rollup/pluginutils-3.1.0" = {
@@ -4729,40 +5044,31 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@scarf/scarf-1.1.0" = {
-      name = "_at_scarf_slash_scarf";
-      packageName = "@scarf/scarf";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.0.tgz";
-        sha512 = "b2iE8kjjzzUo2WZ0xuE2N77kfnTds7ClrDxcz3Atz7h2XrNVoAPUoT75i7CY0st5x++70V91Y+c6RpBX9MX7Jg==";
-      };
-    };
-    "@schematics/angular-11.2.0" = {
+    "@schematics/angular-11.2.7" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "11.2.0";
+      version = "11.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.0.tgz";
-        sha512 = "PtbyZ7TEEEae9Y5siSZYigWyk8iOSjZ10ThA7tRxm8gdcLjGimyyKr5TyjufIAvrXIYnBXNLgPkZG6s5CQIEyw==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.7.tgz";
+        sha512 = "LI6FkFHmwS/MCt+QENpGT/xl1Y6RMvcDqQ/efbZ3qz2W+0W0DkaPSlDmVbbNzgol+eJ7eHx4kmJr2U2r9ZOQgg==";
       };
     };
-    "@schematics/schematics-0.1100.3" = {
+    "@schematics/schematics-0.1102.6" = {
       name = "_at_schematics_slash_schematics";
       packageName = "@schematics/schematics";
-      version = "0.1100.3";
+      version = "0.1102.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.1100.3.tgz";
-        sha512 = "tzjKnjD90FQ4LgRN9ALT2qCqgJYZrAKoy1embFJRuGKA8vv1hTG4JonVDqQEUoNwTc9r/Ok2Z1eenAI9TSUd1A==";
+        url = "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.1102.6.tgz";
+        sha512 = "x77kbJL/HqR4gx0tbt35VCOGLyMvB7jD/x7eB1njhQRF8E/xynEOk3i+7A5VmK67QP5NJxU8BQKlPkJ55tBDmg==";
       };
     };
-    "@schematics/update-0.1102.0" = {
+    "@schematics/update-0.1102.7" = {
       name = "_at_schematics_slash_update";
       packageName = "@schematics/update";
-      version = "0.1102.0";
+      version = "0.1102.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1102.0.tgz";
-        sha512 = "2hFt/2iPe6LqQvzYj4HvQ8us0e0lBU75rSK2yY6VfiZWR/qo7yk99YKI7JWFTLvLsNbhNnSG/9opXJHqqUoc3g==";
+        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1102.7.tgz";
+        sha512 = "aSuG4VtGlcEGNIhcRS+99Sbhs+IRJn1JLOG1rWV5U5d40M/kLDsNx5O5JCXE062ga209sJc++sgLXRXn5yrEiQ==";
       };
     };
     "@segment/loosely-validate-event-2.0.0" = {
@@ -4792,13 +5098,13 @@ let
         sha512 = "lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang==";
       };
     };
-    "@serverless/components-3.6.2" = {
+    "@serverless/components-3.8.1" = {
       name = "_at_serverless_slash_components";
       packageName = "@serverless/components";
-      version = "3.6.2";
+      version = "3.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/components/-/components-3.6.2.tgz";
-        sha512 = "JT8+t3J90WF/ZjizTbIUbmwzLJFAybP6S2T8TK9TtHl1imeeIIu69LcFAth7fFYdPn6LrACSEMZMXJ2+QlLM6w==";
+        url = "https://registry.npmjs.org/@serverless/components/-/components-3.8.1.tgz";
+        sha512 = "GgIsO/8fKz4tS6y7W4j90EHacyR3XkssVQncEpMt4e8gfAlr3JZBZVka2fO29Ehhx3xYxqDDWBkcVKRzPf8Iaw==";
       };
     };
     "@serverless/core-1.1.2" = {
@@ -4810,13 +5116,13 @@ let
         sha512 = "PY7gH+7aQ+MltcUD7SRDuQODJ9Sav9HhFJsgOiyf8IVo7XVD6FxZIsSnpMI6paSkptOB7n+0Jz03gNlEkKetQQ==";
       };
     };
-    "@serverless/enterprise-plugin-4.4.3" = {
+    "@serverless/enterprise-plugin-4.5.3" = {
       name = "_at_serverless_slash_enterprise-plugin";
       packageName = "@serverless/enterprise-plugin";
-      version = "4.4.3";
+      version = "4.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-4.4.3.tgz";
-        sha512 = "2HKtgzv4c9yr9dyecbTJlSnYWaIJL4TQJ4YtVORzeBAm812r8PDK1XS9X8tvLlk2+DF2gu+Tb/Umnxl2rqhqZg==";
+        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-4.5.3.tgz";
+        sha512 = "/JwlHoBSmxP8bAaWD3dIGePkJU1sLRHhEgvMyXuDo9i9tN5D6kyZypM2GUVNx4MpUR/XPJtCUgCSp5xI4aSsxg==";
       };
     };
     "@serverless/event-mocks-1.1.1" = {
@@ -4828,31 +5134,22 @@ let
         sha512 = "YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A==";
       };
     };
-    "@serverless/platform-client-3.11.0" = {
+    "@serverless/platform-client-4.2.2" = {
       name = "_at_serverless_slash_platform-client";
       packageName = "@serverless/platform-client";
-      version = "3.11.0";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-3.11.0.tgz";
-        sha512 = "fC4Q6mjARGdkPrBzEdsiZIgC4To74P7ro9qbtjhre1K9O0tJvvFB7/TuF3F7Xdry4fSPG6RuqdEDEXYA4FwkZw==";
+        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-4.2.2.tgz";
+        sha512 = "8jP72e0POFGEW7HKtDzK0qt1amYtvlB7bYSal8JUCXbeY2qk3xRJZuLWCZBBKRGz4ha4eBNjlz7iniACb9biLg==";
       };
     };
-    "@serverless/platform-client-china-2.1.4" = {
+    "@serverless/platform-client-china-2.1.9" = {
       name = "_at_serverless_slash_platform-client-china";
       packageName = "@serverless/platform-client-china";
-      version = "2.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-2.1.4.tgz";
-        sha512 = "jX+MoKgX7wkdg2lGUlUhbQNZLZkONs5jZa8edT+nDC8s9B1C5u5NO4mMuAy0ZigBQcfw/VVv2KvB06ntuw/QBA==";
-      };
-    };
-    "@serverless/platform-sdk-2.3.2" = {
-      name = "_at_serverless_slash_platform-sdk";
-      packageName = "@serverless/platform-sdk";
-      version = "2.3.2";
+      version = "2.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-sdk/-/platform-sdk-2.3.2.tgz";
-        sha512 = "JSX0/EphGVvnb4RAgZYewtBXPuVsU2TFCuXh6EEZ4jxK3WgUwNYeYdwB8EuVLrm1/dYqu/UWUC0rPKb+ZDycJg==";
+        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-2.1.9.tgz";
+        sha512 = "PAqhHshlwY1PTeuwCaJeXfGB64w1Vg6C9FtpoFv7dkb7OAlYl86evJbugGUc4YlsdhQsgJvG3QSZpo7sYK1Ipw==";
       };
     };
     "@serverless/template-1.1.4" = {
@@ -4882,6 +5179,15 @@ let
         sha512 = "HhmnTtfGt4gKCNGHg0q9pioltChh+dWbdA7y1aP7vNqjwpZ/pUDAqJf/M3GFozTnhlFpwCY9Ik1tOpDkgP3oiA==";
       };
     };
+    "@serverless/utils-4.0.1" = {
+      name = "_at_serverless_slash_utils";
+      packageName = "@serverless/utils";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serverless/utils/-/utils-4.0.1.tgz";
+        sha512 = "3/+Tw/kcIpBlrPyN244Ci7IZXVhGH9WLiLZcSwL0U96g0QQBofIGbv5v2h3Q6J4rBpPUOiZJcabJc7cIvlcP6Q==";
+      };
+    };
     "@serverless/utils-china-1.0.14" = {
       name = "_at_serverless_slash_utils-china";
       packageName = "@serverless/utils-china";
@@ -4891,6 +5197,33 @@ let
         sha512 = "7ku9ePjb+bneFV1Akmz0t8pU8hhHfPJsBjG/Kf6IjyGAQrEjN/PcY2QUDm0emdCNyCsuido1wp0DWMGiwuhC8Q==";
       };
     };
+    "@sideway/address-4.1.1" = {
+      name = "_at_sideway_slash_address";
+      packageName = "@sideway/address";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz";
+        sha512 = "+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ==";
+      };
+    };
+    "@sideway/formula-3.0.0" = {
+      name = "_at_sideway_slash_formula";
+      packageName = "@sideway/formula";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz";
+        sha512 = "vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==";
+      };
+    };
+    "@sideway/pinpoint-2.0.0" = {
+      name = "_at_sideway_slash_pinpoint";
+      packageName = "@sideway/pinpoint";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz";
+        sha512 = "RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==";
+      };
+    };
     "@sindresorhus/is-0.14.0" = {
       name = "_at_sindresorhus_slash_is";
       packageName = "@sindresorhus/is";
@@ -4945,22 +5278,31 @@ let
         sha512 = "ujZRbmmizX26yS/HnB3P9QNlNa4+UvHh+rIse3RbOXLp8yl6n1TxB4t7NHggtVgS8QmmOtzXo48kCxZGACpkPw==";
       };
     };
-    "@sindresorhus/transliterate-0.1.1" = {
+    "@sindresorhus/transliterate-0.1.2" = {
       name = "_at_sindresorhus_slash_transliterate";
       packageName = "@sindresorhus/transliterate";
-      version = "0.1.1";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz";
+        sha512 = "5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==";
+      };
+    };
+    "@skorfmann/ink-confirm-input-3.0.0" = {
+      name = "_at_skorfmann_slash_ink-confirm-input";
+      packageName = "@skorfmann/ink-confirm-input";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.1.tgz";
-        sha512 = "QSdIQ5keUFAZ3KLbfbsntW39ox0Ym8183RqTwBq/ZEFoN3NQAtGV+qWaNdzKpIDHgj9J2CQ2iNDRVU11Zyr7MQ==";
+        url = "https://registry.npmjs.org/@skorfmann/ink-confirm-input/-/ink-confirm-input-3.0.0.tgz";
+        sha512 = "mPZe3gBAV4ZDeYZbEs6WpNZuHHj7Hse9p44z6lrKBcbAMWnvApVOC7zZUpeQsUuWPTOWQRu/QSYElDKNajQ2oA==";
       };
     };
-    "@skorfmann/terraform-cloud-1.7.1" = {
+    "@skorfmann/terraform-cloud-1.9.1" = {
       name = "_at_skorfmann_slash_terraform-cloud";
       packageName = "@skorfmann/terraform-cloud";
-      version = "1.7.1";
+      version = "1.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@skorfmann/terraform-cloud/-/terraform-cloud-1.7.1.tgz";
-        sha512 = "uwcalR9R5/9M+UcOeKR+XgCyIlipl5dxiAryuWT8D4erW6sPnTE/B97G6F3VzzrZfcaPmljX5NVG8Dkl79ki6A==";
+        url = "https://registry.npmjs.org/@skorfmann/terraform-cloud/-/terraform-cloud-1.9.1.tgz";
+        sha512 = "R28bedoGjAmDiEYHu2cmeVd3R6vxq6anQQlGCpdjk5oqnSiROFFm8dzywvMon4/9C+CErhgY7fr76NVErS/U2w==";
       };
     };
     "@slack/client-3.16.0" = {
@@ -4981,22 +5323,22 @@ let
         sha512 = "T3xfDqrEFKclHGdJx4/5+D5F7e76/99f33guE4RTlVITBhy7VVnjz4t/NDr3UYqcC0MgAmiC4bSVYHnlshuwJw==";
       };
     };
-    "@snyk/cli-interface-2.9.1" = {
-      name = "_at_snyk_slash_cli-interface";
-      packageName = "@snyk/cli-interface";
-      version = "2.9.1";
+    "@snyk/cocoapods-lockfile-parser-3.6.2" = {
+      name = "_at_snyk_slash_cocoapods-lockfile-parser";
+      packageName = "@snyk/cocoapods-lockfile-parser";
+      version = "3.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.9.1.tgz";
-        sha512 = "2zHRvEt4S0DO+hPRX3hp5ssELouJqgb/JUTmPDMr/32r//qooSTxojwSvAK2A6VYgYOHuo1S3VTpsSP/ywkPXA==";
+        url = "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.6.2.tgz";
+        sha512 = "ca2JKOnSRzYHJkhOB9gYmdRZHmd02b/uBd/S0D5W+L9nIMS7sUBV5jfhKwVgrYPIpVNIc0XCI9rxK4TfkQRpiA==";
       };
     };
-    "@snyk/cocoapods-lockfile-parser-3.5.2" = {
-      name = "_at_snyk_slash_cocoapods-lockfile-parser";
-      packageName = "@snyk/cocoapods-lockfile-parser";
-      version = "3.5.2";
+    "@snyk/code-client-3.4.0" = {
+      name = "_at_snyk_slash_code-client";
+      packageName = "@snyk/code-client";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.5.2.tgz";
-        sha512 = "fIiUNCmhDp7lVKTs/nHCnLK1roMkG15HhuQhtZXxiFW3EZ5H9IqMdtrxqjXuzVWt7X2h7lbF5OMBzD07NODtug==";
+        url = "https://registry.npmjs.org/@snyk/code-client/-/code-client-3.4.0.tgz";
+        sha512 = "RY2IftAiWB7tp36Mcq7WiEwqoD8A/mqrD6N7oDWTxBOIqsH0t4djo/UibiWDJotaffO9aXXndOf3iZ/kTt+Rdg==";
       };
     };
     "@snyk/composer-lockfile-parser-1.4.1" = {
@@ -5008,31 +5350,13 @@ let
         sha512 = "wNANv235j95NFsQuODIXCiQZ9kcyg9fz92Kg1zoGvaP3kN/ma7fgCnvQL/dyml6iouQJR5aZovjhrrfEFoKtiQ==";
       };
     };
-    "@snyk/dep-graph-1.19.4" = {
-      name = "_at_snyk_slash_dep-graph";
-      packageName = "@snyk/dep-graph";
-      version = "1.19.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.19.4.tgz";
-        sha512 = "h3MMhjVm3BuIruwpDBqnMowKOG9viwr3TJHdIxTHulWKWSsPTTW1AAP3/RaK+UBp1y/Ua9yzeHncKIrzBdT5Nw==";
-      };
-    };
-    "@snyk/dep-graph-1.21.0" = {
-      name = "_at_snyk_slash_dep-graph";
-      packageName = "@snyk/dep-graph";
-      version = "1.21.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.21.0.tgz";
-        sha512 = "+xwiU1zw+Z1V6RaIL7oWUqZo8jDIpoKfzvv8xGiq0hYxsiP9tGSUNuFXwQzAFEP60kJyD2a/nptdRPjsKD0jPw==";
-      };
-    };
-    "@snyk/dep-graph-1.23.1" = {
+    "@snyk/dep-graph-1.28.0" = {
       name = "_at_snyk_slash_dep-graph";
       packageName = "@snyk/dep-graph";
-      version = "1.23.1";
+      version = "1.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.23.1.tgz";
-        sha512 = "bSlTRVJP0PHtvoilhE463AMt0fhsf9PxCEqJ28VHCVSe5QFzIlgGdljtytV+2DheadGwu27BgLGqPDGMdTBHRQ==";
+        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.28.0.tgz";
+        sha512 = "Oup9nAvb558jdNvbZah/vaBtOtCcizkdeS+OBQeBIqIffyer4mc4juSn4b1SFjCpu7AG7piio8Lj8k1B9ps6Tg==";
       };
     };
     "@snyk/docker-registry-v2-client-1.13.9" = {
@@ -5044,6 +5368,24 @@ let
         sha512 = "DIFLEhr8m1GrAwsLGInJmpcQMacjuhf3jcbpQTR+LeMvZA9IuKq+B7kqw2O2FzMiHMZmUb5z+tV+BR7+IUHkFQ==";
       };
     };
+    "@snyk/fast-glob-3.2.6-patch" = {
+      name = "_at_snyk_slash_fast-glob";
+      packageName = "@snyk/fast-glob";
+      version = "3.2.6-patch";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/fast-glob/-/fast-glob-3.2.6-patch.tgz";
+        sha512 = "E/Pfdze/WFfxwyuTFcfhQN1SwyUsc43yuCoW63RVBCaxTD6OzhVD2Pvc/Sy7BjiWUfmelzyKkIBpoow8zZX7Zg==";
+      };
+    };
+    "@snyk/fix-1.518.0" = {
+      name = "_at_snyk_slash_fix";
+      packageName = "@snyk/fix";
+      version = "1.518.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/fix/-/fix-1.518.0.tgz";
+        sha512 = "Cwh0wU8SxZgx1+qRgcGkMctNx9F6UCdUJYcCvKaYJNDEYQwpQat4nsLZsJeODYNx7Byh0ZnPrqakUck4qFrPvA==";
+      };
+    };
     "@snyk/gemfile-1.2.0" = {
       name = "_at_snyk_slash_gemfile";
       packageName = "@snyk/gemfile";
@@ -5053,22 +5395,58 @@ let
         sha512 = "nI7ELxukf7pT4/VraL4iabtNNMz8mUo7EXlqCFld8O5z6mIMLX9llps24iPpaIZOwArkY3FWA+4t+ixyvtTSIA==";
       };
     };
-    "@snyk/java-call-graph-builder-1.17.0" = {
+    "@snyk/glob-parent-5.1.2-patch.1" = {
+      name = "_at_snyk_slash_glob-parent";
+      packageName = "@snyk/glob-parent";
+      version = "5.1.2-patch.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/glob-parent/-/glob-parent-5.1.2-patch.1.tgz";
+        sha512 = "OkUPdHgxIWKAAzceG1nraNA0kgI+eS0I9wph8tll9UL0slD2mIWSj4mAqroGovaEXm8nHedoUfuDRGEb6wnzCQ==";
+      };
+    };
+    "@snyk/graphlib-2.1.9-patch.3" = {
+      name = "_at_snyk_slash_graphlib";
+      packageName = "@snyk/graphlib";
+      version = "2.1.9-patch.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/graphlib/-/graphlib-2.1.9-patch.3.tgz";
+        sha512 = "bBY9b9ulfLj0v2Eer0yFYa3syVeIxVKl2EpxSrsVeT4mjA0CltZyHsF0JjoaGXP27nItTdJS5uVsj1NA+3aE+Q==";
+      };
+    };
+    "@snyk/inquirer-7.3.3-patch" = {
+      name = "_at_snyk_slash_inquirer";
+      packageName = "@snyk/inquirer";
+      version = "7.3.3-patch";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/inquirer/-/inquirer-7.3.3-patch.tgz";
+        sha512 = "aWiQSOacH2lOpJ1ard9ErABcH4tdJogdr+mg1U67iZJOPO9n2gFgAwz1TQJDyPkv4/A5mh4hT2rg03Uq+KBn2Q==";
+      };
+    };
+    "@snyk/java-call-graph-builder-1.19.1" = {
       name = "_at_snyk_slash_java-call-graph-builder";
       packageName = "@snyk/java-call-graph-builder";
-      version = "1.17.0";
+      version = "1.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.17.0.tgz";
-        sha512 = "uO1b6UtT6QGz7F5ZgNdOSyMXBvykUhOcuHBRc//xUnBWsyJwdlAFp/d646zIeaBCe87Fcn5hXuWUGjj+N8rBzA==";
+        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.19.1.tgz";
+        sha512 = "bxjHef5Qm3pNc+BrFlxMudmSSbOjA395ZqBddc+dvsFHoHeyNbiY56Y1JSGUlTgjRM+PKNPBiCuELTSMaROeZg==";
       };
     };
-    "@snyk/java-call-graph-builder-1.19.0" = {
+    "@snyk/java-call-graph-builder-1.20.0" = {
       name = "_at_snyk_slash_java-call-graph-builder";
       packageName = "@snyk/java-call-graph-builder";
-      version = "1.19.0";
+      version = "1.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.19.0.tgz";
-        sha512 = "in26UkFVEWvGyHmSmVUebvgyubANJB7rfrkE3PKjHDA80NwSLZDSNWOOC2lF2B+4ob4STWjQdMbv+bMqXl5Yew==";
+        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.20.0.tgz";
+        sha512 = "NX8bpIu7oG5cuSSm6WvtxqcCuJs2gRjtKhtuSeF1p5TYXyESs3FXQ0nHjfY90LiyTTc+PW/UBq6SKbBA6bCBww==";
+      };
+    };
+    "@snyk/mix-parser-1.1.1" = {
+      name = "_at_snyk_slash_mix-parser";
+      packageName = "@snyk/mix-parser";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/mix-parser/-/mix-parser-1.1.1.tgz";
+        sha512 = "KmX4Le+1M01m6kM2UeDColzMZctrSqoMGajqcRHR3dLpCyHE3nzZzPeOWjbUVgjQlTX07oQvq9udSJGZJ/+Gdg==";
       };
     };
     "@snyk/rpm-parser-2.2.1" = {
@@ -5080,13 +5458,13 @@ let
         sha512 = "OAON0bPf3c5fgM/GK9DX0aZErB6SnuRyYlPH0rqI1TXGsKrYnVELhaE6ctNbEfPTQuY9r6q0vM+UYDaFM/YliA==";
       };
     };
-    "@snyk/snyk-cocoapods-plugin-2.5.1" = {
+    "@snyk/snyk-cocoapods-plugin-2.5.2" = {
       name = "_at_snyk_slash_snyk-cocoapods-plugin";
       packageName = "@snyk/snyk-cocoapods-plugin";
-      version = "2.5.1";
+      version = "2.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.5.1.tgz";
-        sha512 = "A+1xHD+SpmXQa0p+dWmiApFZtz/y37qAW9aWmFx2B1j7fwRBf9Qr89/6RbJOznf1a4nEitjzE3fa98yNZk/MNg==";
+        url = "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.5.2.tgz";
+        sha512 = "WHhnwyoGOhjFOjBXqUfszD84SErrtjHjium/4xFbqKpEE+yuwxs8OwV/S29BtxhYiGtjpD1azv5QtH30VUMl0A==";
       };
     };
     "@snyk/snyk-docker-pull-3.2.3" = {
@@ -5098,6 +5476,15 @@ let
         sha512 = "hiFiSmWGLc2tOI7FfgIhVdFzO2f69im8O6p3OV4xEZ/Ss1l58vwtqudItoswsk7wj/azRlgfBW8wGu2MjoudQg==";
       };
     };
+    "@snyk/snyk-hex-plugin-1.0.0" = {
+      name = "_at_snyk_slash_snyk-hex-plugin";
+      packageName = "@snyk/snyk-hex-plugin";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/snyk-hex-plugin/-/snyk-hex-plugin-1.0.0.tgz";
+        sha512 = "ZydVdZ5kDpPDoehQnNHN3wZ6c470k5DPLJtWMoyfzlnCU2+y1rsUEdn4yhttn60RPx3JiLGwmckeDvZw8BqnGQ==";
+      };
+    };
     "@starptech/expression-parser-0.10.0" = {
       name = "_at_starptech_slash_expression-parser";
       packageName = "@starptech/expression-parser";
@@ -5233,139 +5620,139 @@ let
         sha512 = "AmyMQndtxMsM59eDeA0gGiw8T2LzNvDhx/xl+ygFXXrsw+yb/mit73ndHkiHKcRA1EpNHTyD1PN9ATxghzplfg==";
       };
     };
-    "@textlint/ast-node-types-4.4.1" = {
+    "@textlint/ast-node-types-4.4.2" = {
       name = "_at_textlint_slash_ast-node-types";
       packageName = "@textlint/ast-node-types";
-      version = "4.4.1";
+      version = "4.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz";
-        sha512 = "2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==";
+        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz";
+        sha512 = "m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==";
       };
     };
-    "@textlint/ast-tester-2.3.2" = {
+    "@textlint/ast-tester-2.3.4" = {
       name = "_at_textlint_slash_ast-tester";
       packageName = "@textlint/ast-tester";
-      version = "2.3.2";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.3.2.tgz";
-        sha512 = "4e1kyqsHks5POcQmuh7ITVrU/dbYyRUfQarQbeVRPP271n2HnlgnoYyZ10yV2Sb/Ksw+lQf7DPSnwNewXdCWww==";
+        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.3.4.tgz";
+        sha512 = "2gIsnJ1Dmr5jjF+u/vusNRqk2bJi0WwwbjP9WV/op51DhDTi7BUNjVSiZtcP9NVxidvs51XNEg+EMTRoKP3Msg==";
       };
     };
-    "@textlint/ast-traverse-2.3.2" = {
+    "@textlint/ast-traverse-2.3.4" = {
       name = "_at_textlint_slash_ast-traverse";
       packageName = "@textlint/ast-traverse";
-      version = "2.3.2";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.3.2.tgz";
-        sha512 = "Dt1s/6x0XWhUNFH2rAa9gL6ODtq232BZuBHuHiOg+SrVwzl+VjOfa3fMQ0LoYixGSyDtwqAlksWcC0KyLz0eSw==";
+        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.3.4.tgz";
+        sha512 = "NcjPXCvP8r4D2/azeQhwjPvh2+099I9RRBUrg6IpMfTW4IUUJb4BwZOPgjW+XRIVc71Dhgm82VSIagDL90FYcg==";
       };
     };
-    "@textlint/feature-flag-3.3.2" = {
+    "@textlint/feature-flag-3.3.4" = {
       name = "_at_textlint_slash_feature-flag";
       packageName = "@textlint/feature-flag";
-      version = "3.3.2";
+      version = "3.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.3.2.tgz";
-        sha512 = "7ErQ/UF0IBAd+PkQNBD7yYCDqL2o6leErMDENSWAgUHWLy5TcHr3Orn7qswtBMW5gIyXW9lh+EpllwLJ5qv35w==";
+        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.3.4.tgz";
+        sha512 = "ULAqdD2y1sPAhbkaMjS2fltrZYCNQGsNDv/NQWFsCmDpQ1R8kxoUaTiXpebTM+nVuyvU5GfdkxhHyMarPIjmYw==";
       };
     };
-    "@textlint/fixer-formatter-3.3.2" = {
+    "@textlint/fixer-formatter-3.3.4" = {
       name = "_at_textlint_slash_fixer-formatter";
       packageName = "@textlint/fixer-formatter";
-      version = "3.3.2";
+      version = "3.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.3.2.tgz";
-        sha512 = "aTEyH/rHSzxRLrluSjNhDnMSgIYK60J5AAgprKJCkb9h3dDRuNoiJ+BXh5FXVSSm1tGF0d8pu+Ph8OFBgQOchQ==";
+        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.3.4.tgz";
+        sha512 = "H4i+N+uN7EiI5vRnfRIccFc5yekNHnO8795fiOK2TZPb6SzY3iwLOGZ2rDKvgu7ZKdyGW945w3T0elUF3Fkr5A==";
       };
     };
-    "@textlint/kernel-3.4.2" = {
+    "@textlint/kernel-3.4.4" = {
       name = "_at_textlint_slash_kernel";
       packageName = "@textlint/kernel";
-      version = "3.4.2";
+      version = "3.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.4.2.tgz";
-        sha512 = "PpxAtvLGI9ewn+Dbt4j0KMfmMM39/AY3cikmZffu59nyTdIymXMeVMEVkpVZTEUk5OlL27RAON9FF+2u+0fshg==";
+        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.4.4.tgz";
+        sha512 = "ro9TPnE16C6gtKkY3aOjTs8ZfzAxdXLCV9JD4BuV5P+xBiiu9NdiE2Hwm3LyEGQjMxaKnXjbm/DTCAxA4gz0Dg==";
       };
     };
-    "@textlint/linter-formatter-3.3.2" = {
+    "@textlint/linter-formatter-3.3.4" = {
       name = "_at_textlint_slash_linter-formatter";
       packageName = "@textlint/linter-formatter";
-      version = "3.3.2";
+      version = "3.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.3.2.tgz";
-        sha512 = "MRa8D1/x6pWycKTwb1QLjtY7GyjgcsYRfV0Gu0Aze5szCa3UDwZSewHycpcAGlIqr8AkqPRfyXi653M47eJ0rA==";
+        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.3.4.tgz";
+        sha512 = "k1lyvR+w7ctwr5dWhMVRTKk19GH99BAO2dLk8ZS0ZcYyKqKAKu6Iyb1cWEg/u3dT3KFbWwoegnAelfz5828SHQ==";
       };
     };
-    "@textlint/markdown-to-ast-6.3.2" = {
+    "@textlint/markdown-to-ast-6.3.4" = {
       name = "_at_textlint_slash_markdown-to-ast";
       packageName = "@textlint/markdown-to-ast";
-      version = "6.3.2";
+      version = "6.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.3.2.tgz";
-        sha512 = "uwndF3PRJ48wTVAEDSy0IAEVJg/scxpdZ1r+QKeGuFfdtaGSrtcgROI6qiVU1g/WNyNfQw+DAA7F8HfM+pmleg==";
+        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.3.4.tgz";
+        sha512 = "LLScbDRXov1l4U4OCLJ5clu9eWNonBG+rhuArwYAHpf0hwIoNoETfAQvrNtXZG/NZ96fdWv4PLtaN6dA4ldRdQ==";
       };
     };
-    "@textlint/module-interop-1.2.2" = {
+    "@textlint/module-interop-1.2.4" = {
       name = "_at_textlint_slash_module-interop";
       packageName = "@textlint/module-interop";
-      version = "1.2.2";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.2.2.tgz";
-        sha512 = "B8HPS129lOqzEpRcafYl/OJ2TDxfBw1jGfEhebzwt3kGoMd5pQVih+hUIOl+SfAmLWqCDEniaKn0gw1s+hjSXA==";
+        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.2.4.tgz";
+        sha512 = "/wUKvDbBEujrhpcuD7Et4Mcicm3SG2oAe/tyMruLxSJ86umGxd34dEcHRON8fJzou9qyt0gFoczcypd4k3hJow==";
       };
     };
-    "@textlint/source-code-fixer-3.4.2" = {
+    "@textlint/source-code-fixer-3.4.4" = {
       name = "_at_textlint_slash_source-code-fixer";
       packageName = "@textlint/source-code-fixer";
-      version = "3.4.2";
+      version = "3.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-3.4.2.tgz";
-        sha512 = "mSGQNO8is21KcHgDh4S8Cx88r7uU+7xpzHLuEuzhgEZfgwz3+tnpk22TrEjNYe1V1+aseU9iCQegVQQr1wroKQ==";
+        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-3.4.4.tgz";
+        sha512 = "GDHVin2EJ9PGJ33VMGlqtPcvUlY+pkTbaWs4jWv8oBaEK8UUBzS5ZpEc4xi7Xp5vIXnVsCSLKNC6bgvR9X/AoQ==";
       };
     };
-    "@textlint/text-to-ast-3.3.2" = {
+    "@textlint/text-to-ast-3.3.4" = {
       name = "_at_textlint_slash_text-to-ast";
       packageName = "@textlint/text-to-ast";
-      version = "3.3.2";
+      version = "3.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.3.2.tgz";
-        sha512 = "+DKAP62ho21KID8IcKy1kP6K+kUZk+Z0MwvS9u2l39J0cK+vX523KI+sA6AXxEhOMDA8zhdIsBf3onGvrAtyhA==";
+        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.3.4.tgz";
+        sha512 = "oDwGNQCAo7ROnHqaksPEogf8fxXGU3Z61C6NEv0n9vEWEkUX9oUVX4c9kh5UieZL5nN/xIdzVc3TrXywkkOK3g==";
       };
     };
-    "@textlint/textlint-plugin-markdown-5.3.2" = {
+    "@textlint/textlint-plugin-markdown-5.3.4" = {
       name = "_at_textlint_slash_textlint-plugin-markdown";
       packageName = "@textlint/textlint-plugin-markdown";
-      version = "5.3.2";
+      version = "5.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.3.2.tgz";
-        sha512 = "6Ph7ESKR48tEz5Pnog3PpvF84LU3jkADvr4iBkkVz9vLQt3KbqGnmk8EV94Y0hLEX+UrZKWmH3cJfh6O1Zy/eA==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.3.4.tgz";
+        sha512 = "g8KKuwhzzlRjvKrpq3SbGc+JJMAJoy5Xp0Ibvq7QKgNVxwN/f5WtmrJc8CdgFG7++jgtkDPlofz0c9xG63xKwQ==";
       };
     };
-    "@textlint/textlint-plugin-text-4.3.2" = {
+    "@textlint/textlint-plugin-text-4.3.4" = {
       name = "_at_textlint_slash_textlint-plugin-text";
       packageName = "@textlint/textlint-plugin-text";
-      version = "4.3.2";
+      version = "4.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.3.2.tgz";
-        sha512 = "xnjad0bXaM6ZtgffuFKogHYkzXymUK3VTLP5MGA00kLitADlNUtwXQk82TebkXFcSPRhePU9+2XFipXNQDsg7g==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.3.4.tgz";
+        sha512 = "ZtctKFR8V9mIZAMibS97xPWlt2lViizIRAy4oDaKCnxAwJ0uAjxm/OlHHdaFwNydGaEDtN60mcmarDqOOAZIiA==";
       };
     };
-    "@textlint/types-1.5.2" = {
+    "@textlint/types-1.5.4" = {
       name = "_at_textlint_slash_types";
       packageName = "@textlint/types";
-      version = "1.5.2";
+      version = "1.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/types/-/types-1.5.2.tgz";
-        sha512 = "IdS0h2MCzdY+wjM0+qvl8IW/IxhmVFAVrGu5TmIBpJkihIV7WMa3ITFXIVb0oqwnePUmyLBRIVsCtC66E3QbfQ==";
+        url = "https://registry.npmjs.org/@textlint/types/-/types-1.5.4.tgz";
+        sha512 = "bhSrOjW8AFSa/xf6lYZ2akE0j+4O/WEAA2S/R8RrjNMkA5Az2j57mxPNpqMhEeyHDkpzN/coIlqUwgYvcJHv1A==";
       };
     };
-    "@textlint/utils-1.2.2" = {
+    "@textlint/utils-1.2.4" = {
       name = "_at_textlint_slash_utils";
       packageName = "@textlint/utils";
-      version = "1.2.2";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/utils/-/utils-1.2.2.tgz";
-        sha512 = "7Mqcl9G9YYrPBv5d/tZ2NlWC66hTUpQEQxZEHDMTdF3gPmQUSNRNGjqUR9mhw00Wy8Wo6i3LUWuxwMT6heHNBQ==";
+        url = "https://registry.npmjs.org/@textlint/utils/-/utils-1.2.4.tgz";
+        sha512 = "FREWc8n6bJFsKehtUlHPtbqnXULWhdnlazqWiHMjiBtcxUfD+1kY3P7PNGbChdzeZGmwBkgFQyGkok8bAGnZOw==";
       };
     };
     "@tokenizer/token-0.1.1" = {
@@ -5386,6 +5773,33 @@ let
         sha512 = "RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==";
       };
     };
+    "@trysound/sax-0.1.1" = {
+      name = "_at_trysound_slash_sax";
+      packageName = "@trysound/sax";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz";
+        sha512 = "Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==";
+      };
+    };
+    "@turist/fetch-7.1.7" = {
+      name = "_at_turist_slash_fetch";
+      packageName = "@turist/fetch";
+      version = "7.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@turist/fetch/-/fetch-7.1.7.tgz";
+        sha512 = "XP20kvfyMNlWdPVQXyuzA40LoCHbbJptikt7W+TlZ5sS+NNjk70xjXCtHBLEudp7li3JldXEFSIUzpW1a0WEhA==";
+      };
+    };
+    "@turist/time-0.0.1" = {
+      name = "_at_turist_slash_time";
+      packageName = "@turist/time";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@turist/time/-/time-0.0.1.tgz";
+        sha512 = "M2BiThcbxMxSKX8W4z5u9jKZn6datnM3+FpEU+eYw0//l31E2xhqi7vTAuJ/Sf0P3yhp66SDJgPu3bRRpvrdQQ==";
+      };
+    };
     "@types/accepts-1.3.5" = {
       name = "_at_types_slash_accepts";
       packageName = "@types/accepts";
@@ -5413,6 +5827,15 @@ let
         sha512 = "baFOhanb/hxmcOd1Uey2TfFg43kTSmM6py1Eo7Rjbv/ivcl7PXLhY0QgXGf50Hx/eskGCFqPfhs/7IZLb15C5g==";
       };
     };
+    "@types/atob-2.1.2" = {
+      name = "_at_types_slash_atob";
+      packageName = "@types/atob";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/atob/-/atob-2.1.2.tgz";
+        sha512 = "8GAYQ1jDRUQkSpHzJUqXwAkYFOxuWAOGLhIR4aPd/Y/yL12Q/9m7LsKpHKlfKdNE/362Hc9wPI1Yh6opDfxVJg==";
+      };
+    };
     "@types/babel-types-7.0.9" = {
       name = "_at_types_slash_babel-types";
       packageName = "@types/babel-types";
@@ -5422,13 +5845,13 @@ let
         sha512 = "qZLoYeXSTgQuK1h7QQS16hqLGdmqtRmN8w/rl3Au/l5x/zkHx+a4VHrHyBsi1I1vtK2oBHxSzKIu0R5p6spdOA==";
       };
     };
-    "@types/babel__core-7.1.12" = {
+    "@types/babel__core-7.1.14" = {
       name = "_at_types_slash_babel__core";
       packageName = "@types/babel__core";
-      version = "7.1.12";
+      version = "7.1.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz";
-        sha512 = "wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==";
+        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz";
+        sha512 = "zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==";
       };
     };
     "@types/babel__generator-7.6.2" = {
@@ -5449,13 +5872,13 @@ let
         sha512 = "NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==";
       };
     };
-    "@types/babel__traverse-7.11.0" = {
+    "@types/babel__traverse-7.11.1" = {
       name = "_at_types_slash_babel__traverse";
       packageName = "@types/babel__traverse";
-      version = "7.11.0";
+      version = "7.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz";
-        sha512 = "kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==";
+        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz";
+        sha512 = "Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==";
       };
     };
     "@types/babylon-6.16.5" = {
@@ -5485,6 +5908,15 @@ let
         sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
       };
     };
+    "@types/braces-3.0.0" = {
+      name = "_at_types_slash_braces";
+      packageName = "@types/braces";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/braces/-/braces-3.0.0.tgz";
+        sha512 = "TbH79tcyi9FHwbyboOKeRachRq63mSuWYXOflsNO9ZyE5ClQ/JaozNKl+aWUq87qPNsXasXxi2AbgfwIJ+8GQw==";
+      };
+    };
     "@types/cacheable-request-6.0.1" = {
       name = "_at_types_slash_cacheable-request";
       packageName = "@types/cacheable-request";
@@ -5521,6 +5953,15 @@ let
         sha512 = "d/aS/lPOnUSruPhgNtT8jW39fHRVTLQy9sodysP1kkG8EdAtdZu1vt8NJaYA8w/6Z9j8izkAsx1A/yJhcYR1CA==";
       };
     };
+    "@types/common-tags-1.8.0" = {
+      name = "_at_types_slash_common-tags";
+      packageName = "@types/common-tags";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/common-tags/-/common-tags-1.8.0.tgz";
+        sha512 = "htRqZr5qn8EzMelhX/Xmx142z218lLyGaeZ3YR8jlze4TATRU9huKKvuBmAJEW4LCC4pnY1N6JAm6p85fMHjhg==";
+      };
+    };
     "@types/component-emitter-1.2.10" = {
       name = "_at_types_slash_component-emitter";
       packageName = "@types/component-emitter";
@@ -5530,15 +5971,6 @@ let
         sha512 = "bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==";
       };
     };
-    "@types/configstore-2.1.1" = {
-      name = "_at_types_slash_configstore";
-      packageName = "@types/configstore";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/configstore/-/configstore-2.1.1.tgz";
-        sha1 = "cd1e8553633ad3185c3f2f239ecff5d2643e92b6";
-      };
-    };
     "@types/connect-3.4.34" = {
       name = "_at_types_slash_connect";
       packageName = "@types/connect";
@@ -5584,31 +6016,22 @@ let
         sha512 = "FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==";
       };
     };
-    "@types/cors-2.8.8" = {
+    "@types/cors-2.8.10" = {
       name = "_at_types_slash_cors";
       packageName = "@types/cors";
-      version = "2.8.8";
+      version = "2.8.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.8.tgz";
-        sha512 = "fO3gf3DxU2Trcbr75O7obVndW/X5k8rJNZkLXlQWStTHhP71PkRqjwPIEI0yMnJdg9R9OasjU+Bsr+Hr1xy/0w==";
+        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz";
+        sha512 = "C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==";
       };
     };
-    "@types/cors-2.8.9" = {
+    "@types/cors-2.8.8" = {
       name = "_at_types_slash_cors";
       packageName = "@types/cors";
-      version = "2.8.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.9.tgz";
-        sha512 = "zurD1ibz21BRlAOIKP8yhrxlqKx6L9VCwkB5kMiP6nZAhoF5MvC7qS1qPA7nRcr1GJolfkQC7/EAL4hdYejLtg==";
-      };
-    };
-    "@types/debug-0.0.30" = {
-      name = "_at_types_slash_debug";
-      packageName = "@types/debug";
-      version = "0.0.30";
+      version = "2.8.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/debug/-/debug-0.0.30.tgz";
-        sha512 = "orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ==";
+        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.8.tgz";
+        sha512 = "fO3gf3DxU2Trcbr75O7obVndW/X5k8rJNZkLXlQWStTHhP71PkRqjwPIEI0yMnJdg9R9OasjU+Bsr+Hr1xy/0w==";
       };
     };
     "@types/debug-4.1.5" = {
@@ -5656,6 +6079,15 @@ let
         sha512 = "kM2g9Fdk/du24fKuuQhA/LBleFR4Z4JP2MVKpLxQQSzofF1uJ06D+c05zfLDAkkDO55aEeNwJih0gHrE/Ci20A==";
       };
     };
+    "@types/emscripten-1.39.4" = {
+      name = "_at_types_slash_emscripten";
+      packageName = "@types/emscripten";
+      version = "1.39.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.4.tgz";
+        sha512 = "k3LLVMFrdNA9UCvMDPWMbFrGPNb+GcPyw29ktJTo1RCN7RmxFG5XzPZcPKRlnLuLT/FRm8wp4ohvDwNY7GlROQ==";
+      };
+    };
     "@types/engine.io-3.1.5" = {
       name = "_at_types_slash_engine.io";
       packageName = "@types/engine.io";
@@ -5665,13 +6097,13 @@ let
         sha512 = "DLVpLEGTEZGBXOYoYoagHSxXkDHONc0fZouF2ayw7Q18aRu1Afwci+1CFKvPpouCUOVWP+dmCaAWpQjswe7kpg==";
       };
     };
-    "@types/eslint-7.2.6" = {
+    "@types/eslint-7.2.8" = {
       name = "_at_types_slash_eslint";
       packageName = "@types/eslint";
-      version = "7.2.6";
+      version = "7.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.6.tgz";
-        sha512 = "I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw==";
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.8.tgz";
+        sha512 = "RTKvBsfz0T8CKOGZMfuluDNyMFHnu5lvNr4hWEsQeHXH6FcmIDIozOyWMh36nLGMwVd5UFNXC2xztA8lln22MQ==";
       };
     };
     "@types/eslint-scope-3.7.0" = {
@@ -5701,15 +6133,6 @@ let
         sha512 = "EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==";
       };
     };
-    "@types/estree-0.0.45" = {
-      name = "_at_types_slash_estree";
-      packageName = "@types/estree";
-      version = "0.0.45";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz";
-        sha512 = "jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==";
-      };
-    };
     "@types/estree-0.0.46" = {
       name = "_at_types_slash_estree";
       packageName = "@types/estree";
@@ -5719,22 +6142,22 @@ let
         sha512 = "laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==";
       };
     };
-    "@types/events-3.0.0" = {
-      name = "_at_types_slash_events";
-      packageName = "@types/events";
-      version = "3.0.0";
+    "@types/estree-0.0.47" = {
+      name = "_at_types_slash_estree";
+      packageName = "@types/estree";
+      version = "0.0.47";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
-        sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==";
+        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz";
+        sha512 = "c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==";
       };
     };
-    "@types/express-4.17.7" = {
+    "@types/express-4.17.11" = {
       name = "_at_types_slash_express";
       packageName = "@types/express";
-      version = "4.17.7";
+      version = "4.17.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express/-/express-4.17.7.tgz";
-        sha512 = "dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ==";
+        url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz";
+        sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==";
       };
     };
     "@types/express-4.17.8" = {
@@ -5746,13 +6169,13 @@ let
         sha512 = "wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ==";
       };
     };
-    "@types/express-serve-static-core-4.17.18" = {
+    "@types/express-serve-static-core-4.17.19" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.18";
+      version = "4.17.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz";
-        sha512 = "m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz";
+        sha512 = "DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==";
       };
     };
     "@types/fancy-log-1.3.0" = {
@@ -5773,6 +6196,15 @@ let
         sha512 = "mky/O83TXmGY39P1H9YbUpjV6l6voRYlufqfFCvel8l1phuy8HRjdWc1rrPuN53ITBJlbyMSV6z3niOySO5pgQ==";
       };
     };
+    "@types/flat-cache-2.0.0" = {
+      name = "_at_types_slash_flat-cache";
+      packageName = "@types/flat-cache";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/flat-cache/-/flat-cache-2.0.0.tgz";
+        sha512 = "fHeEsm9hvmZ+QHpw6Fkvf19KIhuqnYLU6vtWLjd5BsMd/qVi7iTkMioDZl0mQmfNRA1A6NwvhrSRNr9hGYZGww==";
+      };
+    };
     "@types/fs-capacitor-2.0.0" = {
       name = "_at_types_slash_fs-capacitor";
       packageName = "@types/fs-capacitor";
@@ -5782,24 +6214,6 @@ let
         sha512 = "FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==";
       };
     };
-    "@types/get-port-3.2.0" = {
-      name = "_at_types_slash_get-port";
-      packageName = "@types/get-port";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/get-port/-/get-port-3.2.0.tgz";
-        sha512 = "TiNg8R1kjDde5Pub9F9vCwZA/BNW9HeXP5b9j7Qucqncy/McfPZ6xze/EyBdXS5FhMIGN6Fx3vg75l5KHy3V1Q==";
-      };
-    };
-    "@types/glob-5.0.36" = {
-      name = "_at_types_slash_glob";
-      packageName = "@types/glob";
-      version = "5.0.36";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/glob/-/glob-5.0.36.tgz";
-        sha512 = "KEzSKuP2+3oOjYYjujue6Z3Yqis5HKA1BsIC+jZ1v3lrRNdsqyNNtX0rQf6LSuI4DJJ2z5UV//zBZCcvM0xikg==";
-      };
-    };
     "@types/glob-7.1.3" = {
       name = "_at_types_slash_glob";
       packageName = "@types/glob";
@@ -5836,15 +6250,6 @@ let
         sha512 = "K7T1n6U2HbTYu+SFHlBjz/RH74OA2D/zF1qlzn8uXbvB4uRg7knOM85ugS2bbXI1TXMh7rLqk4OVRwIwEBaixg==";
       };
     };
-    "@types/graphql-upload-8.0.4" = {
-      name = "_at_types_slash_graphql-upload";
-      packageName = "@types/graphql-upload";
-      version = "8.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.4.tgz";
-        sha512 = "0TRyJD2o8vbkmJF8InppFcPVcXKk+Rvlg/xvpHBIndSJYpmDWfmtx/ZAtl4f3jR2vfarpTqYgj8MZuJssSoU7Q==";
-      };
-    };
     "@types/hast-2.3.1" = {
       name = "_at_types_slash_hast";
       packageName = "@types/hast";
@@ -5863,15 +6268,6 @@ let
         sha512 = "5sr71YcHBVHJY8DhM+L6O9WjAGS3jrie2hpBldVpd8sqvRvNTgIikTE6RxKya1ZvJCvUkZR2ewQarZaC4TRZLg==";
       };
     };
-    "@types/hosted-git-info-2.7.0" = {
-      name = "_at_types_slash_hosted-git-info";
-      packageName = "@types/hosted-git-info";
-      version = "2.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-2.7.0.tgz";
-        sha512 = "OW/D8GqCyQtH8F7xDdDxzPJTBgknZeZhlCakUcBCya2rYPRN53F+0YJVwSPyiyAhrknnjkl3P9qVk0oBI4S1qw==";
-      };
-    };
     "@types/html-minifier-terser-5.1.1" = {
       name = "_at_types_slash_html-minifier-terser";
       packageName = "@types/html-minifier-terser";
@@ -6034,13 +6430,13 @@ let
         sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==";
       };
     };
-    "@types/koa-2.11.7" = {
+    "@types/koa-2.13.1" = {
       name = "_at_types_slash_koa";
       packageName = "@types/koa";
-      version = "2.11.7";
+      version = "2.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/koa/-/koa-2.11.7.tgz";
-        sha512 = "1iXJZZWCePoMe9LGSIPWsu5k5RI4ooXijW78c+nljMn3YbUts8PXoEESu1OeFmrazLPl1l97vTxzwvmH32TWVQ==";
+        url = "https://registry.npmjs.org/@types/koa/-/koa-2.13.1.tgz";
+        sha512 = "Qbno7FWom9nNqu0yHZ6A0+RWt4mrYBhw3wpBAQ3+IuzGcLlfeYkzZrnMq5wsxulN2np8M4KKeUpTodsOsSad5Q==";
       };
     };
     "@types/koa-compose-3.2.5" = {
@@ -6070,6 +6466,33 @@ let
         sha512 = "oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==";
       };
     };
+    "@types/lodash.chunk-4.2.6" = {
+      name = "_at_types_slash_lodash.chunk";
+      packageName = "@types/lodash.chunk";
+      version = "4.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/lodash.chunk/-/lodash.chunk-4.2.6.tgz";
+        sha512 = "SPlusB7jxXyGcTXYcUdWr7WmhArO/rmTq54VN88iKMxGUhyg79I4Q8n4riGn3kjaTjOJrVlHhxgX/d7woak5BQ==";
+      };
+    };
+    "@types/lodash.omit-4.5.6" = {
+      name = "_at_types_slash_lodash.omit";
+      packageName = "@types/lodash.omit";
+      version = "4.5.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/lodash.omit/-/lodash.omit-4.5.6.tgz";
+        sha512 = "KXPpOSNX2h0DAG2w7ajpk7TXvWF28ZHs5nJhOJyP0BQHkehgr948RVsToItMme6oi0XJkp19CbuNXkIX8FiBlQ==";
+      };
+    };
+    "@types/lodash.union-4.6.6" = {
+      name = "_at_types_slash_lodash.union";
+      packageName = "@types/lodash.union";
+      version = "4.6.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/lodash.union/-/lodash.union-4.6.6.tgz";
+        sha512 = "Wu0ZEVNcyCz8eAn6TlUbYWZoGbH9E+iOHxAZbwUoCEXdUiy6qpcz5o44mMXViM4vlPLLCPlkAubEP1gokoSZaw==";
+      };
+    };
     "@types/long-4.0.1" = {
       name = "_at_types_slash_long";
       packageName = "@types/long";
@@ -6097,6 +6520,15 @@ let
         sha512 = "SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==";
       };
     };
+    "@types/micromatch-4.0.1" = {
+      name = "_at_types_slash_micromatch";
+      packageName = "@types/micromatch";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.1.tgz";
+        sha512 = "my6fLBvpY70KattTNzYOK6KU1oR1+UCz9ug/JbcF5UrEmeCt9P7DV2t7L8+t18mMPINqGQCE4O8PLOPbI84gxw==";
+      };
+    };
     "@types/mime-1.3.2" = {
       name = "_at_types_slash_mime";
       packageName = "@types/mime";
@@ -6106,13 +6538,13 @@ let
         sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==";
       };
     };
-    "@types/minimatch-3.0.3" = {
+    "@types/minimatch-3.0.4" = {
       name = "_at_types_slash_minimatch";
       packageName = "@types/minimatch";
-      version = "3.0.3";
+      version = "3.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz";
-        sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
+        url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==";
       };
     };
     "@types/minimist-1.2.0" = {
@@ -6169,13 +6601,13 @@ let
         sha512 = "ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==";
       };
     };
-    "@types/mocha-8.2.0" = {
+    "@types/mocha-8.2.2" = {
       name = "_at_types_slash_mocha";
       packageName = "@types/mocha";
-      version = "8.2.0";
+      version = "8.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.0.tgz";
-        sha512 = "/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==";
+        url = "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz";
+        sha512 = "Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==";
       };
     };
     "@types/multer-1.4.4" = {
@@ -6205,13 +6637,13 @@ let
         sha512 = "fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==";
       };
     };
-    "@types/node-10.17.51" = {
+    "@types/node-10.17.56" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.17.51";
+      version = "10.17.56";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.51.tgz";
-        sha512 = "KANw+MkL626tq90l++hGelbl67irOJzGhUJk6a1Bt8QHOeh9tztJx+L0AqttraWKinmZn7Qi5lJZJzx45Gq0dg==";
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.56.tgz";
+        sha512 = "LuAa6t1t0Bfw4CuSR0UITsm1hP17YL+u82kfHGrHUWdhlBtH7sa7jGY5z7glGaIj/WDYDkRtgGd+KCjCzxBW1w==";
       };
     };
     "@types/node-12.12.70" = {
@@ -6223,13 +6655,13 @@ let
         sha512 = "i5y7HTbvhonZQE+GnUM2rz1Bi8QkzxdQmEv1LKOv4nWyaQk/gdeiTApuQR3PDJHX7WomAbpx2wlWSEpxXGZ/UQ==";
       };
     };
-    "@types/node-13.13.41" = {
+    "@types/node-13.13.48" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.13.41";
+      version = "13.13.48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.13.41.tgz";
-        sha512 = "qLT9IvHiXJfdrje9VmsLzun7cQ65obsBTmtU3EOnCSLFOoSHx1hpiRHoBnpdbyFqnzqdUUIv81JcEJQCB8un9g==";
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.48.tgz";
+        sha512 = "z8wvSsgWQzkr4sVuMEEOvwMdOQjiRY2Y/ZW4fDfjfe3+TfQrZqFKOthBgk2RnVEmtOKrkwdZ7uTvsxTBLjKGDQ==";
       };
     };
     "@types/node-14.11.1" = {
@@ -6241,13 +6673,22 @@ let
         sha512 = "oTQgnd0hblfLsJ6BvJzzSL+Inogp3lq9fGgqRkMB/ziKMgEUaFl801OncOzUmalfzt14N0oPHMK47ipl+wbTIw==";
       };
     };
-    "@types/node-14.14.26" = {
+    "@types/node-14.14.35" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.14.26";
+      version = "14.14.35";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.14.26.tgz";
-        sha512 = "skWxepWOs+VArEBWd2S/VR3wUavioIIx9/HzW+UJiIjtwa6+kNXdsOeq7FfxDXf56hIcL0ieo2brwMgBJ1+lhw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz";
+        sha512 = "Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==";
+      };
+    };
+    "@types/node-14.14.37" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.14.37";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz";
+        sha512 = "XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==";
       };
     };
     "@types/node-6.14.13" = {
@@ -6286,13 +6727,13 @@ let
         sha512 = "o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==";
       };
     };
-    "@types/node-fetch-2.5.8" = {
+    "@types/node-fetch-2.5.9" = {
       name = "_at_types_slash_node-fetch";
       packageName = "@types/node-fetch";
-      version = "2.5.8";
+      version = "2.5.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.8.tgz";
-        sha512 = "fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw==";
+        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.9.tgz";
+        sha512 = "6cUyqLK+JBsATAqNQqk10jURoBFrzfRCDh4kaYxg8ivKhRPIpyBgAvuY7zM/3E4AwsYJSh5HCHBCJRM4DsCTaQ==";
       };
     };
     "@types/normalize-package-data-2.4.0" = {
@@ -6358,13 +6799,13 @@ let
         sha512 = "1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==";
       };
     };
-    "@types/qs-6.9.5" = {
+    "@types/qs-6.9.6" = {
       name = "_at_types_slash_qs";
       packageName = "@types/qs";
-      version = "6.9.5";
+      version = "6.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz";
-        sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz";
+        sha512 = "0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==";
       };
     };
     "@types/range-parser-1.2.3" = {
@@ -6376,13 +6817,13 @@ let
         sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
       };
     };
-    "@types/readline-sync-1.4.3" = {
-      name = "_at_types_slash_readline-sync";
-      packageName = "@types/readline-sync";
-      version = "1.4.3";
+    "@types/readable-stream-2.3.9" = {
+      name = "_at_types_slash_readable-stream";
+      packageName = "@types/readable-stream";
+      version = "2.3.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/readline-sync/-/readline-sync-1.4.3.tgz";
-        sha512 = "YP9NVli96E+qQLAF2db+VjnAUEeZcFVg4YnMgr8kpDUFwQBnj31rPLOVHmazbKQhaIkJ9cMHsZhpKdzUeL0KTg==";
+        url = "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.9.tgz";
+        sha512 = "sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw==";
       };
     };
     "@types/request-2.48.5" = {
@@ -6439,13 +6880,13 @@ let
         sha512 = "wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==";
       };
     };
-    "@types/rimraf-2.0.4" = {
-      name = "_at_types_slash_rimraf";
-      packageName = "@types/rimraf";
-      version = "2.0.4";
+    "@types/sarif-2.1.3" = {
+      name = "_at_types_slash_sarif";
+      packageName = "@types/sarif";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.4.tgz";
-        sha512 = "8gBudvllD2A/c0CcEX/BivIDorHFt5UI5m46TsNj8DjWCCTTZT74kEe4g+QsY7P/B9WdO98d82zZgXO/RQzu2Q==";
+        url = "https://registry.npmjs.org/@types/sarif/-/sarif-2.1.3.tgz";
+        sha512 = "zf+EoIplTkQW2TV2mwtJtlI0g540Z3Rs9tX9JqRAtyjnDCqkP+eMTgWCj3PGNbQpi+WXAjvC3Ou/dvvX2sLK4w==";
       };
     };
     "@types/sass-1.16.0" = {
@@ -6466,6 +6907,15 @@ let
         sha512 = "41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==";
       };
     };
+    "@types/semver-7.3.4" = {
+      name = "_at_types_slash_semver";
+      packageName = "@types/semver";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz";
+        sha512 = "+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==";
+      };
+    };
     "@types/serve-static-1.13.9" = {
       name = "_at_types_slash_serve-static";
       packageName = "@types/serve-static";
@@ -6520,15 +6970,6 @@ let
         sha512 = "OBsK0KIGUICExQ/ZvnPY4cKx5Kz4NcrVyGTIvOL5y4ajXu7r++RfBajfpGfGDmDVCKcoCDX1dO84/oeyeITnxA==";
       };
     };
-    "@types/stream-buffers-3.0.3" = {
-      name = "_at_types_slash_stream-buffers";
-      packageName = "@types/stream-buffers";
-      version = "3.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.3.tgz";
-        sha512 = "NeFeX7YfFZDYsCfbuaOmFQ0OjSmHreKBpp7MQ4alWQBHeh2USLsj7qyMyn9t82kjqIX516CR/5SRHnARduRtbQ==";
-      };
-    };
     "@types/superagent-3.8.2" = {
       name = "_at_types_slash_superagent";
       packageName = "@types/superagent";
@@ -6538,13 +6979,13 @@ let
         sha512 = "kdU8ydio1weSvhIIh9rptZ6MdMiR2NQGFnlnZ5qQ7OiQS1ej79zK4GaJ9qX3naSTpOA7iWqwUnZCQpd7SpD1NA==";
       };
     };
-    "@types/tapable-1.0.6" = {
+    "@types/tapable-1.0.7" = {
       name = "_at_types_slash_tapable";
       packageName = "@types/tapable";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz";
-        sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
+        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz";
+        sha512 = "0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==";
       };
     };
     "@types/text-table-0.2.1" = {
@@ -6565,15 +7006,6 @@ let
         sha512 = "FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==";
       };
     };
-    "@types/tmp-0.0.33" = {
-      name = "_at_types_slash_tmp";
-      packageName = "@types/tmp";
-      version = "0.0.33";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz";
-        sha1 = "1073c4bc824754ae3d10cfab88ab0237ba964e4d";
-      };
-    };
     "@types/tough-cookie-4.0.0" = {
       name = "_at_types_slash_tough-cookie";
       packageName = "@types/tough-cookie";
@@ -6583,13 +7015,22 @@ let
         sha512 = "I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A==";
       };
     };
-    "@types/uglify-js-3.12.0" = {
+    "@types/treeify-1.0.0" = {
+      name = "_at_types_slash_treeify";
+      packageName = "@types/treeify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/treeify/-/treeify-1.0.0.tgz";
+        sha512 = "ONpcZAEYlbPx4EtJwfTyCDQJGUpKf4sEcuySdCVjK5Fj/3vHp5HII1fqa1/+qrsLnpYELCQTfVW/awsGJePoIg==";
+      };
+    };
+    "@types/uglify-js-3.13.0" = {
       name = "_at_types_slash_uglify-js";
       packageName = "@types/uglify-js";
-      version = "3.12.0";
+      version = "3.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.12.0.tgz";
-        sha512 = "sYAF+CF9XZ5cvEBkI7RtrG9g2GtMBkviTnBxYYyq+8BWvO4QtXfwwR6a2LFwCi4evMKZfpv6U43ViYvv17Wz3Q==";
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz";
+        sha512 = "EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==";
       };
     };
     "@types/unist-2.0.3" = {
@@ -6637,31 +7078,22 @@ let
         sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
       };
     };
-    "@types/vscode-1.53.0" = {
+    "@types/vscode-1.55.0" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.53.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.53.0.tgz";
-        sha512 = "XjFWbSPOM0EKIT2XhhYm3D3cx3nn3lshMUcWNy1eqefk+oqRuBq8unVb6BYIZqXy9lQZyeUl7eaBCOZWv+LcXQ==";
-      };
-    };
-    "@types/webpack-4.41.25" = {
-      name = "_at_types_slash_webpack";
-      packageName = "@types/webpack";
-      version = "4.41.25";
+      version = "1.55.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.25.tgz";
-        sha512 = "cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.55.0.tgz";
+        sha512 = "49hysH7jneTQoSC8TWbAi7nKK9Lc5osQNjmDHVosrcU8o3jecD9GrK0Qyul8q4aGPSXRfNGqIp9CBdb13akETg==";
       };
     };
-    "@types/webpack-4.41.26" = {
+    "@types/webpack-4.41.27" = {
       name = "_at_types_slash_webpack";
       packageName = "@types/webpack";
-      version = "4.41.26";
+      version = "4.41.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz";
-        sha512 = "7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz";
+        sha512 = "wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA==";
       };
     };
     "@types/webpack-sources-2.1.0" = {
@@ -6673,13 +7105,13 @@ let
         sha512 = "LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==";
       };
     };
-    "@types/websocket-1.0.1" = {
+    "@types/websocket-1.0.2" = {
       name = "_at_types_slash_websocket";
       packageName = "@types/websocket";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.1.tgz";
-        sha512 = "f5WLMpezwVxCLm1xQe/kdPpQIOmL0TXYx2O15VYfYzc7hTIdxiOoOvez+McSIw3b7z/1zGovew9YSL7+h4h7/Q==";
+        url = "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.2.tgz";
+        sha512 = "B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ==";
       };
     };
     "@types/ws-7.4.0" = {
@@ -6691,6 +7123,15 @@ let
         sha512 = "Y29uQ3Uy+58bZrFLhX36hcI3Np37nqWE7ky5tjiDoy1GDZnIwVxS0CgF+s+1bXMzjKBFy+fqaRfb708iNzdinw==";
       };
     };
+    "@types/ws-7.4.1" = {
+      name = "_at_types_slash_ws";
+      packageName = "@types/ws";
+      version = "7.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.4.1.tgz";
+        sha512 = "ISCK1iFnR+jYv7+jLNX0wDqesZ/5RAeY3wUx6QaphmocphU61h+b+PHjS18TF4WIPTu/MMzxIq2PHr32o2TS5Q==";
+      };
+    };
     "@types/yargs-13.0.11" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
@@ -6736,22 +7177,13 @@ let
         sha512 = "S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==";
       };
     };
-    "@types/zen-observable-0.8.2" = {
-      name = "_at_types_slash_zen-observable";
-      packageName = "@types/zen-observable";
-      version = "0.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.2.tgz";
-        sha512 = "HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg==";
-      };
-    };
-    "@typescript-eslint/eslint-plugin-4.15.0" = {
+    "@typescript-eslint/eslint-plugin-4.21.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "4.15.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.0.tgz";
-        sha512 = "DJgdGZW+8CFUTz5C/dnn4ONcUm2h2T0itWD85Ob5/V27Ndie8hUoX5HKyGssvR8sUMkAIlUc/AMK67Lqa3kBIQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.21.0.tgz";
+        sha512 = "FPUyCPKZbVGexmbCFI3EQHzCZdy2/5f+jv6k2EDljGdXSRc0cKvbndd2nHZkSLqCNOPk0jB6lGzwIkglXcYVsQ==";
       };
     };
     "@typescript-eslint/experimental-utils-3.10.1" = {
@@ -6763,13 +7195,13 @@ let
         sha512 = "DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==";
       };
     };
-    "@typescript-eslint/experimental-utils-4.15.0" = {
+    "@typescript-eslint/experimental-utils-4.21.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "4.15.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.0.tgz";
-        sha512 = "V4vaDWvxA2zgesg4KPgEGiomWEBpJXvY4ZX34Y3qxK8LUm5I87L+qGIOTd9tHZOARXNRt9pLbblSKiYBlGMawg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.21.0.tgz";
+        sha512 = "cEbgosW/tUFvKmkg3cU7LBoZhvUs+ZPVM9alb25XvR0dal4qHL3SiUqHNrzoWSxaXA9gsifrYrS1xdDV6w/gIA==";
       };
     };
     "@typescript-eslint/parser-3.10.1" = {
@@ -6781,22 +7213,22 @@ let
         sha512 = "Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==";
       };
     };
-    "@typescript-eslint/parser-4.15.0" = {
+    "@typescript-eslint/parser-4.21.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "4.15.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.15.0.tgz";
-        sha512 = "L6Dtbq8Bc7g2aZwnIBETpmUa9XDKCMzKVwAArnGp5Mn7PRNFjf3mUzq8UeBjL3K8t311hvevnyqXAMSmxO8Gpg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.21.0.tgz";
+        sha512 = "eyNf7QmE5O/l1smaQgN0Lj2M/1jOuNg2NrBm1dqqQN0sVngTLyw8tdCbih96ixlhbF1oINoN8fDCyEH9SjLeIA==";
       };
     };
-    "@typescript-eslint/scope-manager-4.15.0" = {
+    "@typescript-eslint/scope-manager-4.21.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "4.15.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.15.0.tgz";
-        sha512 = "CSNBZnCC2jEA/a+pR9Ljh8Y+5TY5qgbPz7ICEk9WCpSEgT6Pi7H2RIjxfrrbUXvotd6ta+i27sssKEH8Azm75g==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.21.0.tgz";
+        sha512 = "kfOjF0w1Ix7+a5T1knOw00f7uAP9Gx44+OEsNQi0PvvTPLYeXJlsCJ4tYnDj5PQEYfpcgOH5yBlw7K+UEI9Agw==";
       };
     };
     "@typescript-eslint/types-3.10.1" = {
@@ -6808,13 +7240,13 @@ let
         sha512 = "+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==";
       };
     };
-    "@typescript-eslint/types-4.15.0" = {
+    "@typescript-eslint/types-4.21.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "4.15.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.15.0.tgz";
-        sha512 = "su4RHkJhS+iFwyqyXHcS8EGPlUVoC+XREfy5daivjLur9JP8GhvTmDipuRpcujtGC4M+GYhUOJCPDE3rC5NJrg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.21.0.tgz";
+        sha512 = "+OQaupjGVVc8iXbt6M1oZMwyKQNehAfLYJJ3SdvnofK2qcjfor9pEM62rVjBknhowTkh+2HF+/KdRAc/wGBN2w==";
       };
     };
     "@typescript-eslint/typescript-estree-2.34.0" = {
@@ -6835,13 +7267,13 @@ let
         sha512 = "QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==";
       };
     };
-    "@typescript-eslint/typescript-estree-4.15.0" = {
+    "@typescript-eslint/typescript-estree-4.21.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "4.15.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.0.tgz";
-        sha512 = "jG6xTmcNbi6xzZq0SdWh7wQ9cMb2pqXaUp6bUZOMsIlu5aOlxGxgE/t6L/gPybybQGvdguajXGkZKSndZJpksA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.21.0.tgz";
+        sha512 = "ZD3M7yLaVGVYLw4nkkoGKumb7Rog7QID9YOWobFDMQKNl+vPxqVIW/uDk+MDeGc+OHcoG2nJ2HphwiPNajKw3w==";
       };
     };
     "@typescript-eslint/visitor-keys-3.10.1" = {
@@ -6853,76 +7285,76 @@ let
         sha512 = "9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==";
       };
     };
-    "@typescript-eslint/visitor-keys-4.15.0" = {
+    "@typescript-eslint/visitor-keys-4.21.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "4.15.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.0.tgz";
-        sha512 = "RnDtJwOwFucWFAMjG3ghCG/ikImFJFEg20DI7mn4pHEx3vC48lIAoyjhffvfHmErRDboUPC7p9Z2il4CLb7qxA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.21.0.tgz";
+        sha512 = "dH22dROWGi5Z6p+Igc8bLVLmwy7vEe8r+8c+raPQU0LxgogPUrRAtRGtvBWmlr9waTu3n+QLt/qrS/hWzk1x5w==";
       };
     };
-    "@uifabric/foundation-7.9.24" = {
+    "@uifabric/foundation-7.9.26" = {
       name = "_at_uifabric_slash_foundation";
       packageName = "@uifabric/foundation";
-      version = "7.9.24";
+      version = "7.9.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.9.24.tgz";
-        sha512 = "f9W6x6gqczgkayA89TsiGzdze2A8RJXc/GbANYvBad3zeyDlQahepMrlgRMOXcTiwZIiltTje+7ADtvD/o176Q==";
+        url = "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.9.26.tgz";
+        sha512 = "1FLTb+jlH/Tuel2L9wT/zLl5ZW6W4Lbjrs5VUVjv81vWxzznvPnTf8+Ew0qkzaH7xDuMNMl7okswhV0IfJyheg==";
       };
     };
-    "@uifabric/icons-7.5.21" = {
+    "@uifabric/icons-7.5.23" = {
       name = "_at_uifabric_slash_icons";
       packageName = "@uifabric/icons";
-      version = "7.5.21";
+      version = "7.5.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/icons/-/icons-7.5.21.tgz";
-        sha512 = "ZTqLpdCZeCChcMWCgEyWUke2wJxfi3SNdSjNFXWK90SsDWlafg3s/eDd7+n6oRi4pHlF6eBnc4oTLR6PFXt8kQ==";
+        url = "https://registry.npmjs.org/@uifabric/icons/-/icons-7.5.23.tgz";
+        sha512 = "eIvUbH0EWgFgdfgFfINgqS2ZVZTyJ/9n5nR4bmcyAe75wsKxm4ser4WIT9IvaBF6+HFVfjUF/v6+VMD7y2LBng==";
       };
     };
-    "@uifabric/merge-styles-7.19.1" = {
+    "@uifabric/merge-styles-7.19.2" = {
       name = "_at_uifabric_slash_merge-styles";
       packageName = "@uifabric/merge-styles";
-      version = "7.19.1";
+      version = "7.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.19.1.tgz";
-        sha512 = "yqUwmk62Kgu216QNPE9vOfS3h0kiSbTvoqM5QcZi+IzpqsBOlzZx3A9Er9UiDaqHRd5lsYF5pO/jeUULmBWF/A==";
+        url = "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.19.2.tgz";
+        sha512 = "kTlhwglDqwVgIaJq+0yXgzi65plGhmFcPrfme/rXUGMJZoU+qlGT5jXj5d3kuI59p6VB8jWEg9DAxHozhYeu0g==";
       };
     };
-    "@uifabric/react-hooks-7.13.11" = {
+    "@uifabric/react-hooks-7.14.0" = {
       name = "_at_uifabric_slash_react-hooks";
       packageName = "@uifabric/react-hooks";
-      version = "7.13.11";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.13.11.tgz";
-        sha512 = "9qX4hiZ4MelUxOxx4IPl+vgn9/e43KkYTpYedl2QtUxFpDjsOVJ0jbG3Dkokyl+Kvw1gerYCT1SXL8UC4kG97w==";
+        url = "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.14.0.tgz";
+        sha512 = "Ndu/DEKHF4gFXEZa2AGgSkdWaj+njVrsSyXbkWRh2UZReFWnH1LMko9p/ZCwk1i9kAd5CUmyIfURUzIEya9YCg==";
       };
     };
-    "@uifabric/set-version-7.0.23" = {
+    "@uifabric/set-version-7.0.24" = {
       name = "_at_uifabric_slash_set-version";
       packageName = "@uifabric/set-version";
-      version = "7.0.23";
+      version = "7.0.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.23.tgz";
-        sha512 = "9E+YKtnH2kyMKnK9XZZsqyM8OCxEJIIfxtaThTlQpYOzrWAGJxQADFbZ7+Usi0U2xHnWNPFROjq+B9ocEzhqMA==";
+        url = "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.24.tgz";
+        sha512 = "t0Pt21dRqdC707/ConVJC0WvcQ/KF7tKLU8AZY7YdjgJpMHi1c0C427DB4jfUY19I92f60LOQyhJ4efH+KpFEg==";
       };
     };
-    "@uifabric/styling-7.18.0" = {
+    "@uifabric/styling-7.19.0" = {
       name = "_at_uifabric_slash_styling";
       packageName = "@uifabric/styling";
-      version = "7.18.0";
+      version = "7.19.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/styling/-/styling-7.18.0.tgz";
-        sha512 = "PuCSr2PeVDLTtyqOjS67QBgN7rDYf044oRvMEkSCP57p9Du8rIAJio0LQjVNRKo+QlmfgFzmT3XjpS2LYkhFIg==";
+        url = "https://registry.npmjs.org/@uifabric/styling/-/styling-7.19.0.tgz";
+        sha512 = "fXComDtGV7dHF4rP4cLHwI6fC+1f/nvPavpMBz4IQdySwixta9TVMKbzt0OA6i0mJztqZCVAd27F/sl9R/JmcQ==";
       };
     };
-    "@uifabric/utilities-7.33.4" = {
+    "@uifabric/utilities-7.33.5" = {
       name = "_at_uifabric_slash_utilities";
       packageName = "@uifabric/utilities";
-      version = "7.33.4";
+      version = "7.33.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.33.4.tgz";
-        sha512 = "FgEL2+GWOHMNMQqmI5Mko293W3c9PWIc/WrlU6jQ5AU83M1BQSxhS0LPNnRbahukiEFNkosCOOKzKCNdjzkCwA==";
+        url = "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.33.5.tgz";
+        sha512 = "I+Oi0deD/xltSluFY8l2EVd/J4mvOaMljxKO2knSD9/KoGDlo/o5GN4gbnVo8nIt76HWHLAk3KtlJKJm6BhbIQ==";
       };
     };
     "@ungap/from-entries-0.2.1" = {
@@ -6943,13 +7375,13 @@ let
         sha512 = "sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==";
       };
     };
-    "@unicode/unicode-13.0.0-1.0.3" = {
+    "@unicode/unicode-13.0.0-1.0.6" = {
       name = "_at_unicode_slash_unicode-13.0.0";
       packageName = "@unicode/unicode-13.0.0";
-      version = "1.0.3";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@unicode/unicode-13.0.0/-/unicode-13.0.0-1.0.3.tgz";
-        sha512 = "foNhrvnwzUpt6Od/L7hgkNwZkDjsGMPgPFdVcXSdcKKYNicNBySiypBwgLLMsdBLWS30aJ8eLjftifnGuNGN1g==";
+        url = "https://registry.npmjs.org/@unicode/unicode-13.0.0/-/unicode-13.0.0-1.0.6.tgz";
+        sha512 = "ywSlML1wdeBSGH12b6PkblGtjzsQNMZ7+JlJj+eoPj0VuCeg52hcUTeVWfd4GmISU+zOQHWjNC6c0xmsIuVy8Q==";
       };
     };
     "@uphold/request-logger-2.0.0" = {
@@ -6961,112 +7393,67 @@ let
         sha1 = "c585c0bdb94210198945c6597e4fe23d6e63e084";
       };
     };
-    "@vue/cli-shared-utils-4.5.11" = {
+    "@vue/cli-shared-utils-4.5.12" = {
       name = "_at_vue_slash_cli-shared-utils";
       packageName = "@vue/cli-shared-utils";
-      version = "4.5.11";
+      version = "4.5.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.11.tgz";
-        sha512 = "+aaQ+ThQG3+WMexfSWNl0y6f43edqVqRNbguE53F3TIH81I7saS5S750ayqXhZs2r6STJJyqorQnKtAWfHo29A==";
+        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz";
+        sha512 = "qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==";
       };
     };
-    "@vue/cli-ui-4.5.11" = {
+    "@vue/cli-ui-4.5.12" = {
       name = "_at_vue_slash_cli-ui";
       packageName = "@vue/cli-ui";
-      version = "4.5.11";
+      version = "4.5.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-4.5.11.tgz";
-        sha512 = "hT9cukom8WkV+U3GL0yOFDvWXqG35vy5ddSLideUOK2Ylht0AW7P9DDfUls/cDCpQ172LfPnvKRO/8zADqSElg==";
+        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-4.5.12.tgz";
+        sha512 = "TeP4ujkrUF3/l92R7fAIl6SbTyEw5CbrMpQggctgKrtOtMWorSGhWm17vGtP0C3PoZqzniOzDC7cdO83PL4n+g==";
       };
     };
-    "@vue/cli-ui-addon-webpack-4.5.11" = {
+    "@vue/cli-ui-addon-webpack-4.5.12" = {
       name = "_at_vue_slash_cli-ui-addon-webpack";
       packageName = "@vue/cli-ui-addon-webpack";
-      version = "4.5.11";
+      version = "4.5.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-4.5.11.tgz";
-        sha512 = "k7Iv8ZfoiFtbHNDlntIUee1fCbS5PkQT9ZuI+tMV7eP7fbQXPSRDefsEOb0lAnrZ953tli+AF+hh2XhP6ihZig==";
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-4.5.12.tgz";
+        sha512 = "sPAElJL00koP6BxUSGj5wntH96+IBuhLpu+0YPUYpIMeT/e/Hip/HnsjBzeiv88CvGQKomsjykPQRi26kR/Tjw==";
       };
     };
-    "@vue/cli-ui-addon-widgets-4.5.11" = {
+    "@vue/cli-ui-addon-widgets-4.5.12" = {
       name = "_at_vue_slash_cli-ui-addon-widgets";
       packageName = "@vue/cli-ui-addon-widgets";
-      version = "4.5.11";
+      version = "4.5.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-4.5.11.tgz";
-        sha512 = "uUZIfWWfvFMAtfyzaJDtwRqN2vNzc2nnALEJliv2ccVRZHS8mwB/aLoaX0hL3h+RBJ8WV2PDiXmRFcESyDfKjA==";
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-4.5.12.tgz";
+        sha512 = "GIh+ETKezlmEWmZ/MxKuuJqdfSgYk8DlnIsMnNpbUcdxhHZFbkV2mv/0UoQaH2y0BQhBXBOt9TBJ9j4OeN3DwA==";
       };
     };
-    "@vue/compiler-core-3.0.5" = {
+    "@vue/compiler-core-3.0.11" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.0.5";
+      version = "3.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.5.tgz";
-        sha512 = "iFXwk2gmU/GGwN4hpBwDWWMLvpkIejf/AybcFtlQ5V1ur+5jwfBaV0Y1RXoR6ePfBPJixtKZ3PmN+M+HgMAtfQ==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.11.tgz";
+        sha512 = "6sFj6TBac1y2cWCvYCA8YzHJEbsVkX7zdRs/3yK/n1ilvRqcn983XvpBbnN3v4mZ1UiQycTvOiajJmOgN9EVgw==";
       };
     };
-    "@vue/compiler-dom-3.0.5" = {
+    "@vue/compiler-dom-3.0.11" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.0.5";
+      version = "3.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.5.tgz";
-        sha512 = "HSOSe2XSPuCkp20h4+HXSiPH9qkhz6YbW9z9ZtL5vef2T2PMugH7/osIFVSrRZP/Ul5twFZ7MIRlp8tPX6e4/g==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.11.tgz";
+        sha512 = "+3xB50uGeY5Fv9eMKVJs2WSRULfgwaTJsy23OIltKgMrynnIj8hTYY2UL97HCoz78aDw1VDXdrBQ4qepWjnQcw==";
       };
     };
-    "@vue/compiler-sfc-3.0.5" = {
-      name = "_at_vue_slash_compiler-sfc";
-      packageName = "@vue/compiler-sfc";
-      version = "3.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.5.tgz";
-        sha512 = "uOAC4X0Gx3SQ9YvDC7YMpbDvoCmPvP0afVhJoxRotDdJ+r8VO3q4hFf/2f7U62k4Vkdftp6DVni8QixrfYzs+w==";
-      };
-    };
-    "@vue/compiler-ssr-3.0.5" = {
-      name = "_at_vue_slash_compiler-ssr";
-      packageName = "@vue/compiler-ssr";
-      version = "3.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.5.tgz";
-        sha512 = "Wm//Kuxa1DpgjE4P9W0coZr8wklOfJ35Jtq61CbU+t601CpPTK4+FL2QDBItaG7aoUUDCWL5nnxMkuaOgzTBKg==";
-      };
-    };
-    "@vue/reactivity-3.0.5" = {
-      name = "_at_vue_slash_reactivity";
-      packageName = "@vue/reactivity";
-      version = "3.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.5.tgz";
-        sha512 = "3xodUE3sEIJgS7ntwUbopIpzzvi7vDAOjVamfb2l+v1FUg0jpd3gf62N2wggJw3fxBMr+QvyxpD+dBoxLsmAjw==";
-      };
-    };
-    "@vue/runtime-core-3.0.5" = {
-      name = "_at_vue_slash_runtime-core";
-      packageName = "@vue/runtime-core";
-      version = "3.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.5.tgz";
-        sha512 = "Cnyi2NqREwOLcTEsIi1DQX1hHtkVj4eGm4hBG7HhokS05DqpK4/80jG6PCCnCH9rIJDB2FqtaODX397210plXg==";
-      };
-    };
-    "@vue/runtime-dom-3.0.5" = {
-      name = "_at_vue_slash_runtime-dom";
-      packageName = "@vue/runtime-dom";
-      version = "3.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.5.tgz";
-        sha512 = "iilX1KySeIzHHtErT6Y44db1rhWK5tAI0CiJIPr+SJoZ2jbjoOSE6ff/jfIQakchbm1d6jq6VtRVnp5xYdOXKA==";
-      };
-    };
-    "@vue/shared-3.0.5" = {
+    "@vue/shared-3.0.11" = {
       name = "_at_vue_slash_shared";
       packageName = "@vue/shared";
-      version = "3.0.5";
+      version = "3.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz";
-        sha512 = "gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.0.11.tgz";
+        sha512 = "b+zB8A2so8eCE0JsxjL24J7vdGl8rzPQ09hZNhystm+KqSbKcAej1A+Hbva1rCMmTTqA+hFnUSDc5kouEo0JzA==";
       };
     };
     "@webassemblyjs/ast-1.11.0" = {
@@ -7564,40 +7951,31 @@ let
         sha512 = "2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==";
       };
     };
-    "@webpack-cli/configtest-1.0.1" = {
+    "@webpack-cli/configtest-1.0.2" = {
       name = "_at_webpack-cli_slash_configtest";
       packageName = "@webpack-cli/configtest";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.1.tgz";
-        sha512 = "B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==";
+        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz";
+        sha512 = "3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==";
       };
     };
-    "@webpack-cli/info-1.2.2" = {
+    "@webpack-cli/info-1.2.3" = {
       name = "_at_webpack-cli_slash_info";
       packageName = "@webpack-cli/info";
-      version = "1.2.2";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.2.tgz";
-        sha512 = "5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==";
+        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz";
+        sha512 = "lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==";
       };
     };
-    "@webpack-cli/serve-1.3.0" = {
+    "@webpack-cli/serve-1.3.1" = {
       name = "_at_webpack-cli_slash_serve";
       packageName = "@webpack-cli/serve";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.0.tgz";
-        sha512 = "k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==";
-      };
-    };
-    "@wry/context-0.4.4" = {
-      name = "_at_wry_slash_context";
-      packageName = "@wry/context";
-      version = "0.4.4";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@wry/context/-/context-0.4.4.tgz";
-        sha512 = "LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==";
+        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz";
+        sha512 = "0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==";
       };
     };
     "@wry/equality-0.1.11" = {
@@ -7636,6 +8014,42 @@ let
         sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==";
       };
     };
+    "@yarnpkg/core-2.4.0" = {
+      name = "_at_yarnpkg_slash_core";
+      packageName = "@yarnpkg/core";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/core/-/core-2.4.0.tgz";
+        sha512 = "FYjcPNTfDfMKLFafQPt49EY28jnYC82Z2S7oMwLPUh144BL8v8YXzb4aCnFyi5nFC5h2kcrJfZh7+Pm/qvCqGw==";
+      };
+    };
+    "@yarnpkg/fslib-2.4.0" = {
+      name = "_at_yarnpkg_slash_fslib";
+      packageName = "@yarnpkg/fslib";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.4.0.tgz";
+        sha512 = "CwffYY9owtl3uImNOn1K4jl5iIb/L16a9UZ9Q3lkBARk6tlUsPrNFX00eoUlFcLn49TTfd3zdN6higloGCyncw==";
+      };
+    };
+    "@yarnpkg/json-proxy-2.1.0" = {
+      name = "_at_yarnpkg_slash_json-proxy";
+      packageName = "@yarnpkg/json-proxy";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/json-proxy/-/json-proxy-2.1.0.tgz";
+        sha512 = "rOgCg2DkyviLgr80mUMTt9vzdf5RGOujQB26yPiXjlz4WNePLBshKlTNG9rKSoKQSOYEQcw6cUmosfOKDatrCw==";
+      };
+    };
+    "@yarnpkg/libzip-2.2.1" = {
+      name = "_at_yarnpkg_slash_libzip";
+      packageName = "@yarnpkg/libzip";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.2.1.tgz";
+        sha512 = "AYDJXrkzayoDd3ZlVgFJ+LyDX+Zj/cki3vxIpcYxejtgkl3aquVWOxlC0DD9WboBWsJFIP1MjrUbchLyh++/7A==";
+      };
+    };
     "@yarnpkg/lockfile-1.1.0" = {
       name = "_at_yarnpkg_slash_lockfile";
       packageName = "@yarnpkg/lockfile";
@@ -7645,6 +8059,33 @@ let
         sha512 = "GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==";
       };
     };
+    "@yarnpkg/parsers-2.3.0" = {
+      name = "_at_yarnpkg_slash_parsers";
+      packageName = "@yarnpkg/parsers";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.3.0.tgz";
+        sha512 = "qgz0QUgOvnhtF92kaluIhIIKBUHlYlHUBQxqh5v9+sxEQvUeF6G6PKiFlzo3E6O99XwvNEGpVu1xZPoSGyGscQ==";
+      };
+    };
+    "@yarnpkg/pnp-2.3.2" = {
+      name = "_at_yarnpkg_slash_pnp";
+      packageName = "@yarnpkg/pnp";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/pnp/-/pnp-2.3.2.tgz";
+        sha512 = "JdwHu1WBCISqJEhIwx6Hbpe8MYsYbkGMxoxolkDiAeJ9IGEe08mQcbX1YmUDV1ozSWlm9JZE90nMylcDsXRFpA==";
+      };
+    };
+    "@yarnpkg/shell-2.4.1" = {
+      name = "_at_yarnpkg_slash_shell";
+      packageName = "@yarnpkg/shell";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/shell/-/shell-2.4.1.tgz";
+        sha512 = "oNNJkH8ZI5uwu0dMkJf737yMSY1WXn9gp55DqSA5wAOhKvV5DJTXFETxkVgBQhO6Bow9tMGSpvowTMD/oAW/9g==";
+      };
+    };
     "@zeit/schemas-2.6.0" = {
       name = "_at_zeit_slash_schemas";
       packageName = "@zeit/schemas";
@@ -7654,15 +8095,6 @@ let
         sha512 = "uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==";
       };
     };
-    "@zkochan/cmd-shim-3.1.0" = {
-      name = "_at_zkochan_slash_cmd-shim";
-      packageName = "@zkochan/cmd-shim";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz";
-        sha512 = "o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg==";
-      };
-    };
     "CSSselect-0.4.1" = {
       name = "CSSselect";
       packageName = "CSSselect";
@@ -7681,15 +8113,6 @@ let
         sha1 = "867da0ff39f778613242c44cfea83f0aa4ebdf9b";
       };
     };
-    "JSONSelect-0.2.1" = {
-      name = "JSONSelect";
-      packageName = "JSONSelect";
-      version = "0.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.2.1.tgz";
-        sha1 = "415418a526d33fe31d74b4defa3c836d485ec203";
-      };
-    };
     "JSONStream-0.10.0" = {
       name = "JSONStream";
       packageName = "JSONStream";
@@ -7897,13 +8320,13 @@ let
         sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
       };
     };
-    "acorn-8.0.5" = {
+    "acorn-8.1.0" = {
       name = "acorn";
       packageName = "acorn";
-      version = "8.0.5";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-8.0.5.tgz";
-        sha512 = "v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz";
+        sha512 = "LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==";
       };
     };
     "acorn-globals-1.0.9" = {
@@ -8032,22 +8455,31 @@ let
         sha1 = "f291be701a2efc567a63fc7aa6afcded31430be1";
       };
     };
-    "addons-linter-2.13.1" = {
+    "add-stream-1.0.0" = {
+      name = "add-stream";
+      packageName = "add-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz";
+        sha1 = "6a7990437ca736d5e1288db92bd3266d5f5cb2aa";
+      };
+    };
+    "addons-linter-2.21.0" = {
       name = "addons-linter";
       packageName = "addons-linter";
-      version = "2.13.1";
+      version = "2.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-2.13.1.tgz";
-        sha512 = "OWMuABpZRNeru38oOjn7QYOF0JOXJQXG9c3r4ILTRwTBeSu3LtfgCh9/7zLVgTYPbTs7Qy6h23u4Sel65uSnUQ==";
+        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-2.21.0.tgz";
+        sha512 = "1XfqeVbvaEpjRlWJq/Ti0W6bH3RszaIDPeKl+4ZmXCx+C8ovRqy4CJmitqNffLr+2KpY4h5ei2eRygbvJYDyrw==";
       };
     };
-    "addons-scanner-utils-4.0.0" = {
+    "addons-scanner-utils-4.2.0" = {
       name = "addons-scanner-utils";
       packageName = "addons-scanner-utils";
-      version = "4.0.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-4.0.0.tgz";
-        sha512 = "+BfePzqoo/7Nhum9LONGsga2xhNJYb+6k6j819pzcd2tqaaqDUJu+3lz4CQQYFcD8QoolB3ksfZcCPymleFq0A==";
+        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-4.2.0.tgz";
+        sha512 = "VKLYNlKg2RCMvmOKmbWlu14hjdyk2vcTHscQGmDlnHfWcf6fAb8E7vY9/ajWdLykVVKZEUiGOoD5EIkIp1FyUA==";
       };
     };
     "addr-to-ip-port-1.5.1" = {
@@ -8077,13 +8509,13 @@ let
         sha512 = "TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==";
       };
     };
-    "adm-zip-0.5.2" = {
+    "adm-zip-0.5.5" = {
       name = "adm-zip";
       packageName = "adm-zip";
-      version = "0.5.2";
+      version = "0.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.2.tgz";
-        sha512 = "lUI3ZSNsfQXNYNzGjt68MdxzCs0eW29lgL74y/Y2h4nARgHmH3poFWuK3LonvFbNHFt4dTb2X/QQ4c1ZUWWsJw==";
+        url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.5.tgz";
+        sha512 = "IWwXKnCbirdbyXSfUDvCCrmYrOHANRZcc8NcRrvTlIApdl7PwE9oGcsYvNeJPAVY1M+70b4PxXGKIf8AEuiQ6w==";
       };
     };
     "adverb-where-0.0.9" = {
@@ -8095,13 +8527,13 @@ let
         sha1 = "09c5cddd8d503b9fe5f76e0b8dc5c70a8f193e34";
       };
     };
-    "adverb-where-0.2.1" = {
+    "adverb-where-0.2.2" = {
       name = "adverb-where";
       packageName = "adverb-where";
-      version = "0.2.1";
+      version = "0.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/adverb-where/-/adverb-where-0.2.1.tgz";
-        sha512 = "IAveFBziMRMNPKFdWRcdIKaJvJG1cAfU9/tf9MzqQ84Dh4QjD9eqwnt4hNSt9cbrcEJD74BMIOaRVgVDEU7MwQ==";
+        url = "https://registry.npmjs.org/adverb-where/-/adverb-where-0.2.2.tgz";
+        sha512 = "hZPUFSgljaJnzQQXqc4GCEVSxmyhBkLgf/DyeW7F068PdRE9PervS4LmftJWWSPfTpaEhpJebx3eP7D9slBjSw==";
       };
     };
     "after-0.8.1" = {
@@ -8131,15 +8563,6 @@ let
         sha1 = "d6de10d5af6132d5bd692427d46fc538539094c7";
       };
     };
-    "agent-base-4.2.1" = {
-      name = "agent-base";
-      packageName = "agent-base";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz";
-        sha512 = "JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==";
-      };
-    };
     "agent-base-4.3.0" = {
       name = "agent-base";
       packageName = "agent-base";
@@ -8149,15 +8572,6 @@ let
         sha512 = "salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==";
       };
     };
-    "agent-base-5.1.1" = {
-      name = "agent-base";
-      packageName = "agent-base";
-      version = "5.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz";
-        sha512 = "TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==";
-      };
-    };
     "agent-base-6.0.2" = {
       name = "agent-base";
       packageName = "agent-base";
@@ -8167,15 +8581,6 @@ let
         sha512 = "RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==";
       };
     };
-    "agentkeepalive-3.5.2" = {
-      name = "agentkeepalive";
-      packageName = "agentkeepalive";
-      version = "3.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz";
-        sha512 = "e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==";
-      };
-    };
     "agentkeepalive-4.1.4" = {
       name = "agentkeepalive";
       packageName = "agentkeepalive";
@@ -8266,13 +8671,22 @@ let
         sha512 = "LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==";
       };
     };
-    "ajv-7.1.0" = {
+    "ajv-7.2.4" = {
       name = "ajv";
       packageName = "ajv";
-      version = "7.1.0";
+      version = "7.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz";
+        sha512 = "nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==";
+      };
+    };
+    "ajv-8.0.5" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "8.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-7.1.0.tgz";
-        sha512 = "svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.0.5.tgz";
+        sha512 = "RkiLa/AeJx7+9OvniQ/qeWu0w74A8DiPPBclQ6ji3ZQkv5KamO+QGpqmi7O4JIw3rHGUXZ6CoP9tsAkn3gyazg==";
       };
     };
     "ajv-errors-1.0.1" = {
@@ -8284,6 +8698,15 @@ let
         sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==";
       };
     };
+    "ajv-formats-1.6.1" = {
+      name = "ajv-formats";
+      packageName = "ajv-formats";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv-formats/-/ajv-formats-1.6.1.tgz";
+        sha512 = "4CjkH20If1lhR5CGtqkrVg3bbOtFEG80X9v6jDOIUhbzzbB+UzPBGy8GQhUNVZ0yvMHdMpawCOcy5ydGMsagGQ==";
+      };
+    };
     "ajv-keywords-1.5.1" = {
       name = "ajv-keywords";
       packageName = "ajv-keywords";
@@ -8347,6 +8770,15 @@ let
         sha512 = "2Sy0hWhifVb8ycNFJgicL8fDPL2Ct1r62XOVxXnykn36z22MPZwnQlCmB2viQlY/lwfuO67GaQjUZ0rJgdVP7Q==";
       };
     };
+    "all-node-versions-8.0.0" = {
+      name = "all-node-versions";
+      packageName = "all-node-versions";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/all-node-versions/-/all-node-versions-8.0.0.tgz";
+        sha512 = "cF8ibgj23U7ai4qjSFzpeccwDXUlPFMzKe0Z6qf6gChR+9S0JMyzYz6oYz4n0nHi/FLH9BJIefsONsMH/WDM2w==";
+      };
+    };
     "alphanum-sort-1.0.2" = {
       name = "alphanum-sort";
       packageName = "alphanum-sort";
@@ -8509,13 +8941,13 @@ let
         sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==";
       };
     };
-    "ansi-escapes-4.3.1" = {
+    "ansi-escapes-4.3.2" = {
       name = "ansi-escapes";
       packageName = "ansi-escapes";
-      version = "4.3.1";
+      version = "4.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
-        sha512 = "JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==";
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz";
+        sha512 = "gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==";
       };
     };
     "ansi-gray-0.1.1" = {
@@ -8653,13 +9085,13 @@ let
         sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
       };
     };
-    "ansi-styles-5.1.0" = {
+    "ansi-styles-5.2.0" = {
       name = "ansi-styles";
       packageName = "ansi-styles";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.1.0.tgz";
-        sha512 = "osxifZo3ar56+e8tdYreU6p8FZGciBHo5O0JoDAxMUqZuyNUb+yHEwYtJZ+Z32R459jEgtwVf1u8D7qYwU0l6w==";
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz";
+        sha512 = "Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==";
       };
     };
     "ansi-term-0.0.2" = {
@@ -8788,130 +9220,40 @@ let
         sha512 = "sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==";
       };
     };
-    "apollo-2.32.1" = {
-      name = "apollo";
-      packageName = "apollo";
-      version = "2.32.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo/-/apollo-2.32.1.tgz";
-        sha512 = "aSjGnxxm+ZZ6uYTuGrBqtQ4e3boG408K16CbB5Zm/QHCRNHpPUz7r9VRDfAJWMFE1mBdWi+r0dyY+7FUkKeRrw==";
-      };
-    };
-    "apollo-cache-1.3.5" = {
-      name = "apollo-cache";
-      packageName = "apollo-cache";
-      version = "1.3.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.5.tgz";
-        sha512 = "1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==";
-      };
-    };
-    "apollo-cache-control-0.11.6" = {
+    "apollo-cache-control-0.12.0" = {
       name = "apollo-cache-control";
       packageName = "apollo-cache-control";
-      version = "0.11.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.6.tgz";
-        sha512 = "YZ+uuIG+fPy+mkpBS2qKF0v1qlzZ3PW6xZVaDukeK3ed3iAs4L/2YnkTqau3OmoF/VPzX2FmSkocX/OVd59YSw==";
-      };
-    };
-    "apollo-cache-inmemory-1.6.6" = {
-      name = "apollo-cache-inmemory";
-      packageName = "apollo-cache-inmemory";
-      version = "1.6.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz";
-        sha512 = "L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==";
-      };
-    };
-    "apollo-client-2.6.10" = {
-      name = "apollo-client";
-      packageName = "apollo-client";
-      version = "2.6.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-client/-/apollo-client-2.6.10.tgz";
-        sha512 = "jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==";
-      };
-    };
-    "apollo-codegen-core-0.39.1" = {
-      name = "apollo-codegen-core";
-      packageName = "apollo-codegen-core";
-      version = "0.39.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.39.1.tgz";
-        sha512 = "8Sb9CN+lYR2BMeg7p3A4wjsQW7oxDTnKbueUHV/fmZU+hg2GNLXqVTdyWE2UWDEOyDTNpQMyysGEUZZBsOmBrw==";
-      };
-    };
-    "apollo-codegen-flow-0.37.1" = {
-      name = "apollo-codegen-flow";
-      packageName = "apollo-codegen-flow";
-      version = "0.37.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.37.1.tgz";
-        sha512 = "XhGUzlBxi3IHCBbIsnfk0c41mz30Ky1SPSYtJzrMdtMAdUAfMEGBLXzlLqgp1iAbUegQ10zbp2kgzLG0hkeYhg==";
-      };
-    };
-    "apollo-codegen-scala-0.38.1" = {
-      name = "apollo-codegen-scala";
-      packageName = "apollo-codegen-scala";
-      version = "0.38.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.38.1.tgz";
-        sha512 = "WvIX6Gm7KHnh6FJzq/XVRyHMNwwbQEnMfRXpR9zFtaUuzZHfg9RNawtsUGMSQCnNw1sm5YLGIJvNFUp1hUEqGA==";
-      };
-    };
-    "apollo-codegen-swift-0.39.1" = {
-      name = "apollo-codegen-swift";
-      packageName = "apollo-codegen-swift";
-      version = "0.39.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.39.1.tgz";
-        sha512 = "dKqDd2w2YAOkyDbDkJ5etXLdn8foNnm55r5rsIssIxCdtdR5qsusrPHQvywVjHw8ZHBy4o229dVoSzmrIUygKg==";
-      };
-    };
-    "apollo-codegen-typescript-0.39.1" = {
-      name = "apollo-codegen-typescript";
-      packageName = "apollo-codegen-typescript";
-      version = "0.39.1";
+      version = "0.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.39.1.tgz";
-        sha512 = "cSnMrAqyK2AMZRxTsBrZZhemfv87AU0OS1/aM45WQRyQurkEjf8GmWMfp2IRkJo9m+jgdo74X5ct3KZOXbYMXg==";
+        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.12.0.tgz";
+        sha512 = "kClF5rfAm159Nboul1LxA+l58Tjz0M8L1GUknEMpZt0UHhILLAn3BfcG3ToX4TbNoR9M57kKMUcbPWLdy3Up7w==";
       };
     };
-    "apollo-datasource-0.7.3" = {
+    "apollo-datasource-0.8.0" = {
       name = "apollo-datasource";
       packageName = "apollo-datasource";
-      version = "0.7.3";
+      version = "0.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.3.tgz";
-        sha512 = "PE0ucdZYjHjUyXrFWRwT02yLcx2DACsZ0jm1Mp/0m/I9nZu/fEkvJxfsryXB6JndpmQO77gQHixf/xGCN976kA==";
+        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.8.0.tgz";
+        sha512 = "gXgsGVLuejLc138z/2jUjPAzadDQxWbcLJyBgaQsg5BaXJNkv5uW/NjiSPk00cK51hyZrb0Xx8a+L+wPk2qIBA==";
       };
     };
-    "apollo-env-0.6.5" = {
+    "apollo-env-0.6.6" = {
       name = "apollo-env";
       packageName = "apollo-env";
-      version = "0.6.5";
+      version = "0.6.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.5.tgz";
-        sha512 = "jeBUVsGymeTHYWp3me0R2CZRZrFeuSZeICZHCeRflHTfnQtlmbSXdy5E0pOyRM9CU4JfQkKDC98S1YglQj7Bzg==";
+        url = "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.6.tgz";
+        sha512 = "hXI9PjJtzmD34XviBU+4sPMOxnifYrHVmxpjykqI/dUD2G3yTiuRaiQqwRwB2RCdwC1Ug/jBfoQ/NHDTnnjndQ==";
       };
     };
-    "apollo-graphql-0.6.0" = {
+    "apollo-graphql-0.6.1" = {
       name = "apollo-graphql";
       packageName = "apollo-graphql";
-      version = "0.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.6.0.tgz";
-        sha512 = "BxTf5LOQe649e9BNTPdyCGItVv4Ll8wZ2BKnmiYpRAocYEXAVrQPWuSr3dO4iipqAU8X0gvle/Xu9mSqg5b7Qg==";
-      };
-    };
-    "apollo-language-server-1.25.0" = {
-      name = "apollo-language-server";
-      packageName = "apollo-language-server";
-      version = "1.25.0";
+      version = "0.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.25.0.tgz";
-        sha512 = "k6weI4Jd64LzMO9aGHqPWUmifBy0TDxW15BkU4GLmVTi7pBSYPhwOVP8Haa+81FG2ZO2CCEv8J0VQHTv5Z8itA==";
+        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.6.1.tgz";
+        sha512 = "ZRXAV+k+hboCVS+FW86FW/QgnDR7gm/xMUwJPGXEbV53OLGuQQdIT0NCYK7AzzVkCfsbb7NJ3mmEclkZY9uuxQ==";
       };
     };
     "apollo-link-1.2.1" = {
@@ -8932,69 +9274,6 @@ let
         sha512 = "p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==";
       };
     };
-    "apollo-link-context-1.0.20" = {
-      name = "apollo-link-context";
-      packageName = "apollo-link-context";
-      version = "1.0.20";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-link-context/-/apollo-link-context-1.0.20.tgz";
-        sha512 = "MLLPYvhzNb8AglNsk2NcL9AvhO/Vc9hn2ZZuegbhRHGet3oGr0YH9s30NS9+ieoM0sGT11p7oZ6oAILM/kiRBA==";
-      };
-    };
-    "apollo-link-error-1.1.13" = {
-      name = "apollo-link-error";
-      packageName = "apollo-link-error";
-      version = "1.1.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.1.13.tgz";
-        sha512 = "jAZOOahJU6bwSqb2ZyskEK1XdgUY9nkmeclCrW7Gddh1uasHVqmoYc4CKdb0/H0Y1J9lvaXKle2Wsw/Zx1AyUg==";
-      };
-    };
-    "apollo-link-http-1.5.17" = {
-      name = "apollo-link-http";
-      packageName = "apollo-link-http";
-      version = "1.5.17";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.17.tgz";
-        sha512 = "uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg==";
-      };
-    };
-    "apollo-link-http-common-0.2.16" = {
-      name = "apollo-link-http-common";
-      packageName = "apollo-link-http-common";
-      version = "0.2.16";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz";
-        sha512 = "2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg==";
-      };
-    };
-    "apollo-link-persisted-queries-0.2.2" = {
-      name = "apollo-link-persisted-queries";
-      packageName = "apollo-link-persisted-queries";
-      version = "0.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-link-persisted-queries/-/apollo-link-persisted-queries-0.2.2.tgz";
-        sha512 = "YL7XBu/5QsSbbYaWUXgm87T2Hn/2AQZk5Wr8CLXGDr3Wl3E/TRhBhKgQQTly9xhaTi7jgBO+AeIyTH5wCBHA9w==";
-      };
-    };
-    "apollo-link-state-0.4.2" = {
-      name = "apollo-link-state";
-      packageName = "apollo-link-state";
-      version = "0.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-link-state/-/apollo-link-state-0.4.2.tgz";
-        sha512 = "xMPcAfuiPVYXaLwC6oJFIZrKgV3GmdO31Ag2eufRoXpvT0AfJZjdaPB4450Nu9TslHRePN9A3quxNueILlQxlw==";
-      };
-    };
-    "apollo-link-ws-1.0.20" = {
-      name = "apollo-link-ws";
-      packageName = "apollo-link-ws";
-      version = "1.0.20";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-link-ws/-/apollo-link-ws-1.0.20.tgz";
-        sha512 = "mjSFPlQxmoLArpHBeUb2Xj+2HDYeTaJqFGOqQ+I8NVJxgL9lJe84PDWcPah/yMLv3rB7QgBDSuZ0xoRFBPlySw==";
-      };
-    };
     "apollo-reporting-protobuf-0.6.2" = {
       name = "apollo-reporting-protobuf";
       packageName = "apollo-reporting-protobuf";
@@ -9004,31 +9283,22 @@ let
         sha512 = "WJTJxLM+MRHNUxt1RTl4zD0HrLdH44F2mDzMweBj1yHL0kSt8I1WwoiF/wiGVSpnG48LZrBegCaOJeuVbJTbtw==";
       };
     };
-    "apollo-server-caching-0.5.3" = {
+    "apollo-server-caching-0.6.0" = {
       name = "apollo-server-caching";
       packageName = "apollo-server-caching";
-      version = "0.5.3";
+      version = "0.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.3.tgz";
-        sha512 = "iMi3087iphDAI0U2iSBE9qtx9kQoMMEWr6w+LwXruBD95ek9DWyj7OeC2U/ngLjRsXM43DoBDXlu7R+uMjahrQ==";
+        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.6.0.tgz";
+        sha512 = "SfjKaccrhRzUQ8TAke9FrYppp4pZV3Rp8KCs+4Ox3kGtbco68acRPJkiYYtSVc4idR8XNAUOOVfAEZVNHdZQKQ==";
       };
     };
-    "apollo-server-core-2.20.0" = {
+    "apollo-server-core-2.22.2" = {
       name = "apollo-server-core";
       packageName = "apollo-server-core";
-      version = "2.20.0";
+      version = "2.22.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.20.0.tgz";
-        sha512 = "tteFTl6y9c3MtuhePOs9IbCccaKVXELttLvefMzd7EfR3CPgIfIbxpy2ZEcDys8NteYXoJ+4LiM8Eh9kLgkKmQ==";
-      };
-    };
-    "apollo-server-env-2.4.5" = {
-      name = "apollo-server-env";
-      packageName = "apollo-server-env";
-      version = "2.4.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.5.tgz";
-        sha512 = "nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA==";
+        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.22.2.tgz";
+        sha512 = "YPrhfN+I5vUerc4c0I6pd89fdqP5UNYCt/+MGv4bDA/a0kOCLvzylkQ3NlEepK1fewtqf4QO+S1LscC8vMmYdg==";
       };
     };
     "apollo-server-env-3.0.0" = {
@@ -9049,49 +9319,40 @@ let
         sha512 = "FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==";
       };
     };
-    "apollo-server-express-2.20.0" = {
+    "apollo-server-express-2.22.2" = {
       name = "apollo-server-express";
       packageName = "apollo-server-express";
-      version = "2.20.0";
+      version = "2.22.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.20.0.tgz";
-        sha512 = "Bf2c/1J/ScXmioWi+0HFIsZ1bt8zFlI2VV/7oUn+Dd/lUBHLVfMNKvEJNMwjRkIrI9b9+eqANDrO6lf2ruC52w==";
+        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.22.2.tgz";
+        sha512 = "MRiWF/oT6toUz909iq1I08vKfRxaqRMKS/v9kzyEXcnuudUCQ5WnxrjZEh/iMEfr7RHSQ4STjY7E/ZooPnueqA==";
       };
     };
-    "apollo-server-plugin-base-0.10.4" = {
+    "apollo-server-plugin-base-0.11.0" = {
       name = "apollo-server-plugin-base";
       packageName = "apollo-server-plugin-base";
-      version = "0.10.4";
+      version = "0.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.4.tgz";
-        sha512 = "HRhbyHgHFTLP0ImubQObYhSgpmVH4Rk1BinnceZmwudIVLKrqayIVOELdyext/QnSmmzg5W7vF3NLGBcVGMqDg==";
+        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.11.0.tgz";
+        sha512 = "Du68x0XCyQ6EWlgoL9Z+1s8fJfXgY131QbKP7ao617StQPzwB0aGCwxBDfcMt1A75VXf4TkvV1rdUH5YeJFlhQ==";
       };
     };
-    "apollo-server-types-0.6.3" = {
+    "apollo-server-types-0.7.0" = {
       name = "apollo-server-types";
       packageName = "apollo-server-types";
-      version = "0.6.3";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.3.tgz";
-        sha512 = "aVR7SlSGGY41E1f11YYz5bvwA89uGmkVUtzMiklDhZ7IgRJhysT5Dflt5IuwDxp+NdQkIhVCErUXakopocFLAg==";
+        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.7.0.tgz";
+        sha512 = "pJ6ri2N4xJ+e2PUUPHeCNpMDzHUagJyn0DDZGQmXDz6aoMlSd4B2KUvK81hHyHkw3wHk9clgcpfM9hKqbfZweA==";
       };
     };
-    "apollo-tracing-0.12.2" = {
+    "apollo-tracing-0.13.0" = {
       name = "apollo-tracing";
       packageName = "apollo-tracing";
-      version = "0.12.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.12.2.tgz";
-        sha512 = "SYN4o0C0wR1fyS3+P0FthyvsQVHFopdmN3IU64IaspR/RZScPxZ3Ae8uu++fTvkQflAkglnFM0aX6DkZERBp6w==";
-      };
-    };
-    "apollo-upload-client-11.0.0" = {
-      name = "apollo-upload-client";
-      packageName = "apollo-upload-client";
-      version = "11.0.0";
+      version = "0.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-upload-client/-/apollo-upload-client-11.0.0.tgz";
-        sha512 = "JChTrBi1VSF8u6OPrkWUApJlyUvzwhw98kqRB3fSi7/CU6z0OUD42Mee9s5h8mfjKEfOanK6GNZhF4t2tIPXSw==";
+        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.13.0.tgz";
+        sha512 = "28z4T+XfLQ6t696usU0nTFDxVN8BfF3o74d2p/zsT4eu1OuoyoDOEmVJqdInmVRpyTJK0tDEOjkIuDJJHZftog==";
       };
     };
     "apollo-utilities-1.3.4" = {
@@ -9220,22 +9481,22 @@ let
         sha512 = "B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==";
       };
     };
-    "archiver-5.0.2" = {
+    "archiver-5.2.0" = {
       name = "archiver";
       packageName = "archiver";
-      version = "5.0.2";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/archiver/-/archiver-5.0.2.tgz";
-        sha512 = "Tq3yV/T4wxBsD2Wign8W9VQKhaUxzzRmjEiSoOK0SLqPgDP/N1TKdYyBeIEu56T4I9iO4fKTTR0mN9NWkBA0sg==";
+        url = "https://registry.npmjs.org/archiver/-/archiver-5.2.0.tgz";
+        sha512 = "QEAKlgQuAtUxKeZB9w5/ggKXh21bZS+dzzuQ0RPBC20qtDCbTyzqmisoeJP46MP39fg4B4IcyvR+yeyEBdblsQ==";
       };
     };
-    "archiver-5.2.0" = {
+    "archiver-5.3.0" = {
       name = "archiver";
       packageName = "archiver";
-      version = "5.2.0";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/archiver/-/archiver-5.2.0.tgz";
-        sha512 = "QEAKlgQuAtUxKeZB9w5/ggKXh21bZS+dzzuQ0RPBC20qtDCbTyzqmisoeJP46MP39fg4B4IcyvR+yeyEBdblsQ==";
+        url = "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz";
+        sha512 = "iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==";
       };
     };
     "archiver-utils-2.1.0" = {
@@ -9274,15 +9535,6 @@ let
         sha512 = "XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==";
       };
     };
-    "arg-4.1.3" = {
-      name = "arg";
-      packageName = "arg";
-      version = "4.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz";
-        sha512 = "58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==";
-      };
-    };
     "argparse-0.1.15" = {
       name = "argparse";
       packageName = "argparse";
@@ -9445,15 +9697,6 @@ let
         sha1 = "eff52e3758249d33be402b8bb8e564bb2b5d4031";
       };
     };
-    "array-differ-2.1.0" = {
-      name = "array-differ";
-      packageName = "array-differ";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz";
-        sha512 = "KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==";
-      };
-    };
     "array-differ-3.0.0" = {
       name = "array-differ";
       packageName = "array-differ";
@@ -9562,13 +9805,13 @@ let
         sha1 = "9e528762b4a9066ad163a6962a364418e9626ece";
       };
     };
-    "array-includes-3.1.2" = {
+    "array-includes-3.1.3" = {
       name = "array-includes";
       packageName = "array-includes";
-      version = "3.1.2";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz";
-        sha512 = "w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==";
+        url = "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz";
+        sha512 = "gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==";
       };
     };
     "array-initial-1.1.0" = {
@@ -9742,15 +9985,6 @@ let
         sha512 = "mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==";
       };
     };
-    "array.prototype.flatmap-1.2.4" = {
-      name = "array.prototype.flatmap";
-      packageName = "array.prototype.flatmap";
-      version = "1.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz";
-        sha512 = "r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==";
-      };
-    };
     "arraybuffer.slice-0.0.6" = {
       name = "arraybuffer.slice";
       packageName = "arraybuffer.slice";
@@ -9814,6 +10048,15 @@ let
         sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
       };
     };
+    "asar-3.0.3" = {
+      name = "asar";
+      packageName = "asar";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asar/-/asar-3.0.3.tgz";
+        sha512 = "k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw==";
+      };
+    };
     "ascii-table-0.0.9" = {
       name = "ascii-table";
       packageName = "ascii-table";
@@ -9823,6 +10066,15 @@ let
         sha1 = "06a6604d6a55d4bf41a9a47d9872d7a78da31e73";
       };
     };
+    "asciichart-1.5.25" = {
+      name = "asciichart";
+      packageName = "asciichart";
+      version = "1.5.25";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asciichart/-/asciichart-1.5.25.tgz";
+        sha512 = "PNxzXIPPOtWq8T7bgzBtk9cI2lgS4SJZthUHEiQ1aoIc3lNzGfUvIvo9LiAnq26TACo9t1/4qP6KTGAUbzX9Xg==";
+      };
+    };
     "asciidoctor.js-1.5.9" = {
       name = "asciidoctor.js";
       packageName = "asciidoctor.js";
@@ -10075,15 +10327,6 @@ let
         sha1 = "e587c68580994ac67fc56ff86d3ac56bdbe810bc";
       };
     };
-    "async-2.5.0" = {
-      name = "async";
-      packageName = "async";
-      version = "2.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-2.5.0.tgz";
-        sha512 = "e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==";
-      };
-    };
     "async-2.6.0" = {
       name = "async";
       packageName = "async";
@@ -10111,13 +10354,13 @@ let
         sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
       };
     };
-    "async-append-only-log-3.0.3" = {
+    "async-append-only-log-3.0.8" = {
       name = "async-append-only-log";
       packageName = "async-append-only-log";
-      version = "3.0.3";
+      version = "3.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async-append-only-log/-/async-append-only-log-3.0.3.tgz";
-        sha512 = "w6F/oWReK4qyNBnCFe/cfYZHXMs07BZjS0LmpHQ5JByK5yEVzvvWGdNMStFPVbQhVJnT1PdmP+/LwEzmoe33qA==";
+        url = "https://registry.npmjs.org/async-append-only-log/-/async-append-only-log-3.0.8.tgz";
+        sha512 = "y80CcN4xifsNHFDCU3aOnOZytNUX+UGXz6pkNmUzSOCNV77q+srsm6OlcM9bTwFBy5VGoUUJfOB1lo9tNB2Okg==";
       };
     };
     "async-done-1.3.2" = {
@@ -10201,6 +10444,15 @@ let
         sha512 = "aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==";
       };
     };
+    "async-retry-ng-2.0.1" = {
+      name = "async-retry-ng";
+      packageName = "async-retry-ng";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-retry-ng/-/async-retry-ng-2.0.1.tgz";
+        sha512 = "iitlc2murdQ3/A5Re3CcplQBEf7vOmFrFQ6RFn3+/+zZUyIHYkZnnEziMSa6YIb2Bs2EJEPZWReTxjHqvQbDbw==";
+      };
+    };
     "async-settle-1.0.0" = {
       name = "async-settle";
       packageName = "async-settle";
@@ -10228,6 +10480,33 @@ let
         sha1 = "1e762817d849ce44bfac07925a42036787061b15";
       };
     };
+    "asyncjs-util-1.2.3" = {
+      name = "asyncjs-util";
+      packageName = "asyncjs-util";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.3.tgz";
+        sha512 = "gwrRUMa6oZ1qssVupX4lgSey1PDCEbouUjCqa2/MRgaZ4gZmZfAVBZ/Nzple7r9BN+iVMJPIWrwVu00CRgjHgw==";
+      };
+    };
+    "asyncjs-util-1.2.4" = {
+      name = "asyncjs-util";
+      packageName = "asyncjs-util";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.4.tgz";
+        sha512 = "hIsyIeDv5LPDh+/Yv9+NDcV0z+WtHo7937abePpW9ikx9WNB75BRn/AuP2jkk3YpfxIp4mGaY6zgUm014VU7Hw==";
+      };
+    };
+    "asyncjs-util-1.2.5" = {
+      name = "asyncjs-util";
+      packageName = "asyncjs-util";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.5.tgz";
+        sha512 = "P0BY77ZZvaF+rka9mx12r9ys+U+DDz9yhIz6vbSSNhyKzFJce+jrYSRufvg7RLOH/M8XnhIDOBpagbRtRJiuGA==";
+      };
+    };
     "asynckit-0.4.0" = {
       name = "asynckit";
       packageName = "asynckit";
@@ -10336,6 +10615,15 @@ let
         sha1 = "28f51393dd8bb8bdaad972342519bf09621a35a3";
       };
     };
+    "author-regex-1.0.0" = {
+      name = "author-regex";
+      packageName = "author-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz";
+        sha1 = "d08885be6b9bbf9439fe087c76287245f0a81450";
+      };
+    };
     "auto-bind-4.0.0" = {
       name = "auto-bind";
       packageName = "auto-bind";
@@ -10390,15 +10678,6 @@ let
         sha512 = "d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==";
       };
     };
-    "await-to-js-2.1.1" = {
-      name = "await-to-js";
-      packageName = "await-to-js";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/await-to-js/-/await-to-js-2.1.1.tgz";
-        sha512 = "CHBC6gQGCIzjZ09tJ+XmpQoZOn4GdWePB4qUweCaKNJ0D3f115YdhmYVTZ4rMVpiJ3cFzZcTYK1VMYEICV4YXw==";
-      };
-    };
     "aws-sdk-1.18.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
@@ -10417,13 +10696,13 @@ let
         sha512 = "+KBkqH7t/XE91Fqn8eyJeNIWsnhSWL8bSUqFD7TfE3FN07MTlC0nprGYp+2WfcYNz5i8Bus1vY2DHNVhtTImnw==";
       };
     };
-    "aws-sdk-2.842.0" = {
+    "aws-sdk-2.880.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.842.0";
+      version = "2.880.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.842.0.tgz";
-        sha512 = "9vjVDxsLzNI79JChUgEHDUpv2obkTe35F3oGFGViKsf4C7xlOexzKOCfTRNcgzh0MON6rVDFpYBtF2LlEyDGKg==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.880.0.tgz";
+        sha512 = "/dBk3ejw22ED2edzGfmJB83KXDA4wLIw5Hb+2YMhly+gOWecvevy0tML2+YN/cmxyTy+wT0E0sM7fm1v7kmHtw==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -10453,6 +10732,24 @@ let
         sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==";
       };
     };
+    "aws4-1.9.1" = {
+      name = "aws4";
+      packageName = "aws4";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
+        sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
+      };
+    };
+    "axios-0.19.2" = {
+      name = "axios";
+      packageName = "axios";
+      version = "0.19.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz";
+        sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==";
+      };
+    };
     "axios-0.21.1" = {
       name = "axios";
       packageName = "axios";
@@ -10741,6 +11038,33 @@ let
         sha1 = "1bc6f15b87f7ab1085d42b330b717657a2156500";
       };
     };
+    "babel-plugin-polyfill-corejs2-0.1.10" = {
+      name = "babel-plugin-polyfill-corejs2";
+      packageName = "babel-plugin-polyfill-corejs2";
+      version = "0.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz";
+        sha512 = "DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==";
+      };
+    };
+    "babel-plugin-polyfill-corejs3-0.1.7" = {
+      name = "babel-plugin-polyfill-corejs3";
+      packageName = "babel-plugin-polyfill-corejs3";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz";
+        sha512 = "u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==";
+      };
+    };
+    "babel-plugin-polyfill-regenerator-0.1.6" = {
+      name = "babel-plugin-polyfill-regenerator";
+      packageName = "babel-plugin-polyfill-regenerator";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz";
+        sha512 = "OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==";
+      };
+    };
     "babel-plugin-styled-components-1.12.0" = {
       name = "babel-plugin-styled-components";
       packageName = "babel-plugin-styled-components";
@@ -11047,13 +11371,13 @@ let
         sha512 = "xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==";
       };
     };
-    "balanced-match-1.0.0" = {
+    "balanced-match-1.0.2" = {
       name = "balanced-match";
       packageName = "balanced-match";
-      version = "1.0.0";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
       };
     };
     "base-0.11.2" = {
@@ -11344,6 +11668,15 @@ let
         sha512 = "s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==";
       };
     };
+    "bech32-2.0.0" = {
+      name = "bech32";
+      packageName = "bech32";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz";
+        sha512 = "LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==";
+      };
+    };
     "beeper-1.1.1" = {
       name = "beeper";
       packageName = "beeper";
@@ -11353,13 +11686,13 @@ let
         sha1 = "e6d5ea8c5dad001304a70b22638447f69cb2f809";
       };
     };
-    "before-after-hook-2.1.1" = {
+    "before-after-hook-2.2.1" = {
       name = "before-after-hook";
       packageName = "before-after-hook";
-      version = "2.1.1";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.1.tgz";
-        sha512 = "5ekuQOvO04MDj7kYZJaMab2S8SPjGJbotVNyv7QYFCOAwrGZs/YnoDNlh1U+m5hl7H2D/+n0taaAV/tfyd3KMA==";
+        url = "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz";
+        sha512 = "/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw==";
       };
     };
     "bencode-0.7.0" = {
@@ -11407,6 +11740,15 @@ let
         sha512 = "yGQTG4NtwTciX0Bkgk1FqQL4p+NiCQKpTSFho2lrxvUkXIlzyJDwraj8aYxAxRZMnnOhRr7QlIBoMRPEnIR34Q==";
       };
     };
+    "bessel-1.0.2" = {
+      name = "bessel";
+      packageName = "bessel";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bessel/-/bessel-1.0.2.tgz";
+        sha512 = "Al3nHGQGqDYqqinXhQzmwmcRToe/3WyBv4N8aZc5Pef8xw2neZlR9VPi84Sa23JtgWcucu18HxVZrnI0fn2etw==";
+      };
+    };
     "better-ajv-errors-0.6.7" = {
       name = "better-ajv-errors";
       packageName = "better-ajv-errors";
@@ -11425,6 +11767,33 @@ let
         sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
       };
     };
+    "better-opn-2.1.1" = {
+      name = "better-opn";
+      packageName = "better-opn";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz";
+        sha512 = "kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==";
+      };
+    };
+    "better-queue-3.8.10" = {
+      name = "better-queue";
+      packageName = "better-queue";
+      version = "3.8.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz";
+        sha512 = "e3gwNZgDCnNWl0An0Tz6sUjKDV9m6aB+K9Xg//vYeo8+KiH8pWhLFxkawcXhm6FpM//GfD9IQv/kmvWCAVVpKA==";
+      };
+    };
+    "better-queue-memory-1.0.4" = {
+      name = "better-queue-memory";
+      packageName = "better-queue-memory";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-queue-memory/-/better-queue-memory-1.0.4.tgz";
+        sha512 = "SWg5wFIShYffEmJpI6LgbL8/3Dqhku7xI1oEiy6FroP9DbcZlG0ZDjxvPdP9t7hTGW40IpIcC6zVoGT1oxjOuA==";
+      };
+    };
     "bevent-0.1.5" = {
       name = "bevent";
       packageName = "bevent";
@@ -11596,6 +11965,15 @@ let
         sha512 = "H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==";
       };
     };
+    "binary-search-tree-0.2.5" = {
+      name = "binary-search-tree";
+      packageName = "binary-search-tree";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz";
+        sha1 = "7dbb3b210fdca082450dad2334c304af39bdc784";
+      };
+    };
     "binaryextensions-2.3.0" = {
       name = "binaryextensions";
       packageName = "binaryextensions";
@@ -11632,6 +12010,15 @@ let
         sha512 = "6pm+Gc3uNiiJZEv0k8JDWqQlo9ki/o9UNAkLmr0EGm7hI5MboOJVIOlO1nw3YuDkLHWN78OPsaC4JhRkn2jMLw==";
       };
     };
+    "binjumper-0.1.4" = {
+      name = "binjumper";
+      packageName = "binjumper";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binjumper/-/binjumper-0.1.4.tgz";
+        sha512 = "Gdxhj+U295tIM6cO4bJO1jsvSjBVHNpj2o/OwW7pqDEtaqF6KdOxjtbo93jMMKAkP7+u09+bV8DhSqjIv4qR3w==";
+      };
+    };
     "bintrees-1.0.1" = {
       name = "bintrees";
       packageName = "bintrees";
@@ -11659,6 +12046,15 @@ let
         sha512 = "HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==";
       };
     };
+    "bip65-1.0.3" = {
+      name = "bip65";
+      packageName = "bip65";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bip65/-/bip65-1.0.3.tgz";
+        sha512 = "RQ1nc7xtnLa5XltnCqkoR2zmhuz498RjMJwrLKQzOE049D1HUqnYfon7cVSbwS5UGm0/EQlC2CH+NY3MyITA4Q==";
+      };
+    };
     "bip66-1.1.5" = {
       name = "bip66";
       packageName = "bip66";
@@ -11668,13 +12064,22 @@ let
         sha1 = "01fa8748785ca70955d5011217d1b3139969ca22";
       };
     };
-    "bipf-1.4.0" = {
+    "bip68-1.0.4" = {
+      name = "bip68";
+      packageName = "bip68";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz";
+        sha512 = "O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==";
+      };
+    };
+    "bipf-1.5.0" = {
       name = "bipf";
       packageName = "bipf";
-      version = "1.4.0";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bipf/-/bipf-1.4.0.tgz";
-        sha512 = "8b2T/OWIRI73kcPXhI+jqK+0QyxRlZ6HIzQBK8tRxIZ2NO0dBxJ4T9eeX6XsYEHy2cqM69n+rOZyVjhvRUGRig==";
+        url = "https://registry.npmjs.org/bipf/-/bipf-1.5.0.tgz";
+        sha512 = "EjpRVanEn4/Z2ilD2OeTfkWnogvxe+PZ8Gxzt7m+2xRT9rg6g1pETAdYy2vmJhNNZYX9axiV3Zf8HxuaYb0W3w==";
       };
     };
     "bitcoin-core-2.3.0" = {
@@ -12037,22 +12442,31 @@ let
         sha512 = "nXWOXtQHbfPaMl6jyEF/rmRMrcemj2qn+OCAI/uZYurjfx7Dg3baoXdPzHOL0U8Cfvn8CWxKcnM/rgxL7DR4zw==";
       };
     };
-    "bn.js-4.11.9" = {
+    "bn.js-4.11.6" = {
       name = "bn.js";
       packageName = "bn.js";
-      version = "4.11.9";
+      version = "4.11.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz";
-        sha512 = "E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==";
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz";
+        sha1 = "53344adb14617a13f6e8dd2ce28905d1c0ba3215";
       };
     };
-    "bn.js-5.1.3" = {
+    "bn.js-4.12.0" = {
       name = "bn.js";
       packageName = "bn.js";
-      version = "5.1.3";
+      version = "4.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz";
+        sha512 = "c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==";
+      };
+    };
+    "bn.js-5.2.0" = {
+      name = "bn.js";
+      packageName = "bn.js";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz";
-        sha512 = "GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==";
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz";
+        sha512 = "D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==";
       };
     };
     "bncode-0.2.3" = {
@@ -12127,6 +12541,60 @@ let
         sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
       };
     };
+    "bolt01-1.2.1" = {
+      name = "bolt01";
+      packageName = "bolt01";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bolt01/-/bolt01-1.2.1.tgz";
+        sha512 = "Mpk1QZofLqrJ1Sjm1vA1HKov6+ffOhCUTP5ae8UTK+U7IwbGSQTfQWu1m6waoSmUN7esQDAS2gBE6PiVaHK0ww==";
+      };
+    };
+    "bolt03-1.2.9" = {
+      name = "bolt03";
+      packageName = "bolt03";
+      version = "1.2.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bolt03/-/bolt03-1.2.9.tgz";
+        sha512 = "2WVVcn+pQXIbDkVixZ6c6Hu0E+LiCyUnj14xQs6qEgU3Sq4NFEguAzDwuvr2B9IxwVGD+5/rH5H9RbY0+d5KlQ==";
+      };
+    };
+    "bolt07-1.7.1" = {
+      name = "bolt07";
+      packageName = "bolt07";
+      version = "1.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bolt07/-/bolt07-1.7.1.tgz";
+        sha512 = "vZCX56PB0274YW8BuCE91xWgqCPkfndBkknYYZFajX6Zr/KByMDXKQ2t1KKSYVkzzTL0rqeLWyQKdL6gJU1zHA==";
+      };
+    };
+    "bolt07-1.7.2" = {
+      name = "bolt07";
+      packageName = "bolt07";
+      version = "1.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bolt07/-/bolt07-1.7.2.tgz";
+        sha512 = "b1ZmcU1ucTjRL/FvYUDbLqCmc1I0PRLWB+yvlI6w8l9be5JJgzaf1AmU6+yoa1eL3cqX8leWzyaVjWTjRKGfMg==";
+      };
+    };
+    "bolt09-0.1.3" = {
+      name = "bolt09";
+      packageName = "bolt09";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bolt09/-/bolt09-0.1.3.tgz";
+        sha512 = "xFfW/ix6qSzBVGGt3jgpG/SX1LgVvGUYxA/0yC6uaPAjgqbdqmbDZzNEqMRps7Z8Vp1H3yfO5JXQuX54n/GzZg==";
+      };
+    };
+    "bolt09-0.1.4" = {
+      name = "bolt09";
+      packageName = "bolt09";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bolt09/-/bolt09-0.1.4.tgz";
+        sha512 = "I8GZoVvQDF7w/93XNbUD29hBoN+kiPomPb8X/D6510pjRI5/KgZ0nITH4BAymS89GTGPjI5ZavkFw3vxxRhjQQ==";
+      };
+    };
     "bonjour-3.5.0" = {
       name = "bonjour";
       packageName = "bonjour";
@@ -12145,13 +12613,13 @@ let
         sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
       };
     };
-    "boolean-3.0.2" = {
+    "boolean-3.0.3" = {
       name = "boolean";
       packageName = "boolean";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz";
-        sha512 = "RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==";
+        url = "https://registry.npmjs.org/boolean/-/boolean-3.0.3.tgz";
+        sha512 = "EqrTKXQX6Z3A2nRmMEIlAIfjQOgFnVO2nqZGpbcsPnYGWBwpFqzlrozU1dy+S2iqfYDLh26ef4KrgTxu9xQrxA==";
       };
     };
     "boom-2.10.1" = {
@@ -12271,13 +12739,13 @@ let
         sha512 = "eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==";
       };
     };
-    "boxen-5.0.0" = {
+    "boxen-5.0.1" = {
       name = "boxen";
       packageName = "boxen";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/boxen/-/boxen-5.0.0.tgz";
-        sha512 = "5bvsqw+hhgUi3oYGK0Vf4WpIkyemp60WBInn7+WNfoISzAqk/HX4L7WNROq38E6UR/y3YADpv6pEm4BfkeEAdA==";
+        url = "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz";
+        sha512 = "49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==";
       };
     };
     "bplist-creator-0.0.6" = {
@@ -12649,13 +13117,13 @@ let
         sha512 = "/l9Kg/c5o+n/0AqreMxh2jpzDMl1ikl4gUxT7RFNe3A3YRIyZkiREhwcjmqxiymJSRI/Qhew357xGn1SLw/xEw==";
       };
     };
-    "bsocks-0.2.5" = {
+    "bsocks-0.2.6" = {
       name = "bsocks";
       packageName = "bsocks";
-      version = "0.2.5";
+      version = "0.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bsocks/-/bsocks-0.2.5.tgz";
-        sha512 = "w1yG8JmfKPIaTDLuR9TIxJM2Ma6nAiInRpLNZ43g3qPnPHjawCC4SV6Bdy84bEJQX1zJWYTgdod/BnQlDhq4Gg==";
+        url = "https://registry.npmjs.org/bsocks/-/bsocks-0.2.6.tgz";
+        sha512 = "66UkjoB9f7lhT+WKgYq8MQa6nkr96mlX64JYMlIsXe/X4VeqNwvsx7UOE3ZqD6lkwg8GvBhapRTWj0qWO3Pw8w==";
       };
     };
     "btcp-0.1.5" = {
@@ -12901,6 +13369,15 @@ let
         sha1 = "3d253fe2f0ab70e851d728712e8cd6f914a8c002";
       };
     };
+    "buffer-to-arraybuffer-0.0.5" = {
+      name = "buffer-to-arraybuffer";
+      packageName = "buffer-to-arraybuffer";
+      version = "0.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz";
+        sha1 = "6064a40fa76eb43c723aba9ef8f6e1216d10511a";
+      };
+    };
     "buffer-writer-2.0.0" = {
       name = "buffer-writer";
       packageName = "buffer-writer";
@@ -13054,15 +13531,6 @@ let
         sha1 = "f150f0f6748abdd72aeae84f04403be2ef113797";
       };
     };
-    "bunyan-1.8.14" = {
-      name = "bunyan";
-      packageName = "bunyan";
-      version = "1.8.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bunyan/-/bunyan-1.8.14.tgz";
-        sha512 = "LlahJUxXzZLuw/hetUQJmRgZ1LF6+cr5TPpRj6jf327AsiIq2jhYEH4oqUUkVKTor+9w2BT3oxVwhzE5lw9tcg==";
-      };
-    };
     "bunyan-1.8.15" = {
       name = "bunyan";
       packageName = "bunyan";
@@ -13135,13 +13603,13 @@ let
         sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1";
       };
     };
-    "byte-size-5.0.1" = {
+    "byte-size-7.0.1" = {
       name = "byte-size";
       packageName = "byte-size";
-      version = "5.0.1";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz";
-        sha512 = "/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw==";
+        url = "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz";
+        sha512 = "crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==";
       };
     };
     "bytebuffer-3.5.5" = {
@@ -13216,13 +13684,13 @@ let
         sha512 = "a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==";
       };
     };
-    "cacache-15.0.5" = {
+    "cacache-15.0.6" = {
       name = "cacache";
       packageName = "cacache";
-      version = "15.0.5";
+      version = "15.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz";
-        sha512 = "lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==";
+        url = "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz";
+        sha512 = "g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==";
       };
     };
     "cache-base-1.0.1" = {
@@ -13477,15 +13945,6 @@ let
         sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
       };
     };
-    "camelcase-6.0.0" = {
-      name = "camelcase";
-      packageName = "camelcase";
-      version = "6.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz";
-        sha512 = "8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==";
-      };
-    };
     "camelcase-6.2.0" = {
       name = "camelcase";
       packageName = "camelcase";
@@ -13540,31 +13999,31 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001185" = {
+    "caniuse-lite-1.0.30001207" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001185";
+      version = "1.0.30001207";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz";
-        sha512 = "Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz";
+        sha512 = "UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==";
       };
     };
-    "canvas-2.6.1" = {
+    "canvas-2.7.0" = {
       name = "canvas";
       packageName = "canvas";
-      version = "2.6.1";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz";
-        sha512 = "S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==";
+        url = "https://registry.npmjs.org/canvas/-/canvas-2.7.0.tgz";
+        sha512 = "pzCxtkHb+5su5MQjTtepMDlIOtaXo277x0C0u3nMOxtkhTyQ+h2yNKhlROAaDllWgRyePAUitC08sXw26Eb6aw==";
       };
     };
-    "capital-case-1.0.4" = {
-      name = "capital-case";
-      packageName = "capital-case";
-      version = "1.0.4";
+    "caporal-1.4.0" = {
+      name = "caporal";
+      packageName = "caporal";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz";
-        sha512 = "ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==";
+        url = "https://registry.npmjs.org/caporal/-/caporal-1.4.0.tgz";
+        sha512 = "3pWfIwKVdIbB/gWmpLloO6iGAXTRi9mcTinPOwvHfzH3BYjOhLgq2XRG3hKtp+F6vBcBXxMgCobUzBAx1d8T4A==";
       };
     };
     "capture-exit-2.0.0" = {
@@ -13657,6 +14116,24 @@ let
         sha512 = "Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==";
       };
     };
+    "cbor-7.0.4" = {
+      name = "cbor";
+      packageName = "cbor";
+      version = "7.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cbor/-/cbor-7.0.4.tgz";
+        sha512 = "9hBTn31l7+9qteBso7+HPp2R5ytqFRBd98fHK4ZTpvrba8V7CuoOsEL0S6vf7+11gubMTd3RW97lOgMTl5SNfg==";
+      };
+    };
+    "cbor-7.0.5" = {
+      name = "cbor";
+      packageName = "cbor";
+      version = "7.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cbor/-/cbor-7.0.5.tgz";
+        sha512 = "0aaAPgW92lLmypb9iCd22k7tSD1FbF6dps8VQzmIBKY6ych2gO09b2vo/SbaLTmezJuB8Kh88Rvpl/Uq52mNZg==";
+      };
+    };
     "ccount-1.1.0" = {
       name = "ccount";
       packageName = "ccount";
@@ -13666,22 +14143,22 @@ let
         sha512 = "vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==";
       };
     };
-    "cdk8s-1.0.0-beta.8" = {
+    "cdk8s-1.0.0-beta.11" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "1.0.0-beta.8";
+      version = "1.0.0-beta.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.0.0-beta.8.tgz";
-        sha512 = "99jNfGUIVic0hZCWXTU1yQLJ5ww06O7egXkgjltlHS0Fom9MY4bzFpqlVTNlmKguEO5eK3OEjjkoek4qVpEbpw==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.0.0-beta.11.tgz";
+        sha512 = "G6SIJSg6mxeEzWEWNY8NAn/jqysTPegV79mOQ6eYj1uyKYggyzP5MzuWt8fKmYShM5BTDadnCRajwDnku9LZeQ==";
       };
     };
-    "cdktf-0.1.0" = {
+    "cdktf-0.2.1" = {
       name = "cdktf";
       packageName = "cdktf";
-      version = "0.1.0";
+      version = "0.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.1.0.tgz";
-        sha512 = "6PKMz7dkou3qrHD+rnj7fa8U+XujkRUVHsWcVaH7faCxBCIGSxUz0TFb8KeY//o0MHg285Agt1NTCgFIpJ7Clg==";
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.2.1.tgz";
+        sha512 = "yz2eoeiSWDjf98ackXw6D0bWvdsmJ7EIxuTHbkn7hzaIJ9sDrXhVLpcTP0rolBVZ/FR8/mtFLoEdHnthIg5IcA==";
       };
     };
     "center-align-0.1.3" = {
@@ -13693,13 +14170,22 @@ let
         sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
       };
     };
-    "chai-4.3.0" = {
+    "cert-info-1.5.1" = {
+      name = "cert-info";
+      packageName = "cert-info";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cert-info/-/cert-info-1.5.1.tgz";
+        sha512 = "eoQC/yAgW3gKTKxjzyClvi+UzuY97YCjcl+lSqbsGIy7HeGaWxCPOQFivhUYm27hgsBMhsJJFya3kGvK6PMIcQ==";
+      };
+    };
+    "chai-4.3.4" = {
       name = "chai";
       packageName = "chai";
-      version = "4.3.0";
+      version = "4.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chai/-/chai-4.3.0.tgz";
-        sha512 = "/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA==";
+        url = "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz";
+        sha512 = "yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==";
       };
     };
     "chai-as-promised-7.1.1" = {
@@ -13810,15 +14296,6 @@ let
         sha512 = "g9YLQVHVZS/3F+zIicfB58vjcxopvYQRp7xHzvyDFDhXH1aRZI/JhwSAO0X5qYiQluoGnaNAU6wByD2KTxJN1A==";
       };
     };
-    "change-case-4.1.2" = {
-      name = "change-case";
-      packageName = "change-case";
-      version = "4.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz";
-        sha512 = "bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==";
-      };
-    };
     "character-entities-1.2.4" = {
       name = "character-entities";
       packageName = "character-entities";
@@ -14098,15 +14575,6 @@ let
         sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
       };
     };
-    "chokidar-3.4.3" = {
-      name = "chokidar";
-      packageName = "chokidar";
-      version = "3.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz";
-        sha512 = "DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==";
-      };
-    };
     "chokidar-3.5.1" = {
       name = "chokidar";
       packageName = "chokidar";
@@ -14143,13 +14611,13 @@ let
         sha512 = "bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==";
       };
     };
-    "chroma-js-2.1.0" = {
+    "chroma-js-2.1.1" = {
       name = "chroma-js";
       packageName = "chroma-js";
-      version = "2.1.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chroma-js/-/chroma-js-2.1.0.tgz";
-        sha512 = "uiRdh4ZZy+UTPSrAdp8hqEdVb1EllLtTHOt5TMaOjJUvi+O54/83Fc5K2ld1P+TJX+dw5B+8/sCgzI6eaur/lg==";
+        url = "https://registry.npmjs.org/chroma-js/-/chroma-js-2.1.1.tgz";
+        sha512 = "gYc5/Dooshun2OikK7oY/hYnoEiZ0dxqRpXosEdYRYm505vU5mRsHFqIW062C9nMtr32DVErP6mlxuepo2kNkw==";
       };
     };
     "chrome-dgram-3.0.6" = {
@@ -14242,13 +14710,13 @@ let
         sha1 = "04a106672c18b085ab774d983dfa3ea138f22205";
       };
     };
-    "chunk-store-stream-4.2.0" = {
+    "chunk-store-stream-4.3.0" = {
       name = "chunk-store-stream";
       packageName = "chunk-store-stream";
-      version = "4.2.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chunk-store-stream/-/chunk-store-stream-4.2.0.tgz";
-        sha512 = "90iueoPoqT2isnmy1fyqwzgFy5FokuaxQuijOQG1VgC/6DaXRfeYN0da8iWENkzqElWhqLxo8pWc7pH9dmxlcA==";
+        url = "https://registry.npmjs.org/chunk-store-stream/-/chunk-store-stream-4.3.0.tgz";
+        sha512 = "qby+/RXoiMoTVtPiylWZt7KFF1jy6M829TzMi2hxZtBIH9ptV19wxcft6zGiXLokJgCbuZPGNGab6DWHqiSEKw==";
       };
     };
     "ci-info-1.6.0" = {
@@ -14269,6 +14737,15 @@ let
         sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
       };
     };
+    "ci-info-3.1.1" = {
+      name = "ci-info";
+      packageName = "ci-info";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-3.1.1.tgz";
+        sha512 = "kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ==";
+      };
+    };
     "cint-8.2.1" = {
       name = "cint";
       packageName = "cint";
@@ -14341,13 +14818,13 @@ let
         sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
       };
     };
-    "classnames-2.2.6" = {
+    "classnames-2.3.1" = {
       name = "classnames";
       packageName = "classnames";
-      version = "2.2.6";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz";
-        sha512 = "JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==";
+        url = "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz";
+        sha512 = "OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==";
       };
     };
     "cldr-5.8.0" = {
@@ -14377,13 +14854,13 @@ let
         sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==";
       };
     };
-    "clean-css-5.0.1" = {
+    "clean-css-5.1.2" = {
       name = "clean-css";
       packageName = "clean-css";
-      version = "5.0.1";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clean-css/-/clean-css-5.0.1.tgz";
-        sha512 = "F1zAGOowUCg8yxT0O4UR+nmbMauf3YwbiUS60CPxpzJU7ulpamGzQomFrJSK4w/HqHtMmQKSHJUNue+dQQYQdg==";
+        url = "https://registry.npmjs.org/clean-css/-/clean-css-5.1.2.tgz";
+        sha512 = "QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw==";
       };
     };
     "clean-deep-3.4.0" = {
@@ -14557,22 +15034,22 @@ let
         sha512 = "1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==";
       };
     };
-    "cli-spinners-2.5.0" = {
+    "cli-spinners-2.6.0" = {
       name = "cli-spinners";
       packageName = "cli-spinners";
-      version = "2.5.0";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz";
-        sha512 = "PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==";
+        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz";
+        sha512 = "t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==";
       };
     };
-    "cli-table-0.3.4" = {
+    "cli-table-0.3.6" = {
       name = "cli-table";
       packageName = "cli-table";
-      version = "0.3.4";
+      version = "0.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-table/-/cli-table-0.3.4.tgz";
-        sha512 = "1vinpnX/ZERcmE443i3SZTmU5DF0rPO9DrL4I2iVAllhxzCM9SzPlHnz19fsZB78htkKZvYBvj6SZ6vXnaxmTA==";
+        url = "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz";
+        sha512 = "ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==";
       };
     };
     "cli-table3-0.5.1" = {
@@ -14701,13 +15178,22 @@ let
         sha1 = "a211e09c6a3de3ba1af27d049d301250d18812bc";
       };
     };
-    "clipboard-2.0.6" = {
+    "clipanion-2.6.2" = {
+      name = "clipanion";
+      packageName = "clipanion";
+      version = "2.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clipanion/-/clipanion-2.6.2.tgz";
+        sha512 = "0tOHJNMF9+4R3qcbBL+4IxLErpaYSYvzs10aXuECDbZdJOuJHdagJMAqvLdeaUQTI/o2uSCDRpet6ywDiKOAYw==";
+      };
+    };
+    "clipboard-2.0.8" = {
       name = "clipboard";
       packageName = "clipboard";
-      version = "2.0.6";
+      version = "2.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz";
-        sha512 = "g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==";
+        url = "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz";
+        sha512 = "Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==";
       };
     };
     "clipboardy-1.2.3" = {
@@ -14953,6 +15439,15 @@ let
         sha512 = "DtGg+0xiFhQIntSBRzL2fRQBnmtAVwXIDo4Qq46HPpObYquxMaZS4sb82U9nH91qJrlosC1wa9gwr0QyL/HypA==";
       };
     };
+    "cmd-shim-4.1.0" = {
+      name = "cmd-shim";
+      packageName = "cmd-shim";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz";
+        sha512 = "lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==";
+      };
+    };
     "cmdln-3.2.1" = {
       name = "cmdln";
       packageName = "cmdln";
@@ -15106,13 +15601,13 @@ let
         sha512 = "3WQV/Fpa77nvzjUlc+0u53uIroJyyMB2Qwl++aXpAiDIsrsiAQq4uCURwdRBRX+eLkOTIAmT0L4qna3T7+2pUg==";
       };
     };
-    "codemaker-1.20.1" = {
+    "codemaker-1.27.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.20.1";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.20.1.tgz";
-        sha512 = "AhDdoC0jhSw8VhbHBH2WN8CDp8PZKnO0YMAlZXG9BRLJnu4ztOQkYuB8BWipNydRHS3Zj1LQX4lPtTQkJN4vWg==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.27.0.tgz";
+        sha512 = "W5r3XLxBG2a33M3g3Sg9mOU5wPbw6hz14GfmeQsKlWoSCx8Y3CCxY8ogbh77/K34epqYh43ydybI8e7UVgD/tQ==";
       };
     };
     "codepage-1.4.0" = {
@@ -15241,13 +15736,13 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "color-string-1.5.4" = {
+    "color-string-1.5.5" = {
       name = "color-string";
       packageName = "color-string";
-      version = "1.5.4";
+      version = "1.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz";
-        sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==";
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz";
+        sha512 = "jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==";
       };
     };
     "color-support-1.1.3" = {
@@ -15259,13 +15754,13 @@ let
         sha512 = "qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==";
       };
     };
-    "colorette-1.2.1" = {
+    "colorette-1.2.2" = {
       name = "colorette";
       packageName = "colorette";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz";
-        sha512 = "puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==";
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz";
+        sha512 = "MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==";
       };
     };
     "colornames-1.1.1" = {
@@ -15277,15 +15772,6 @@ let
         sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
       };
     };
-    "colors-0.5.1" = {
-      name = "colors";
-      packageName = "colors";
-      version = "0.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz";
-        sha1 = "7d0023eaeb154e8ee9fce75dcb923d0ed1667774";
-      };
-    };
     "colors-0.6.2" = {
       name = "colors";
       packageName = "colors";
@@ -15511,15 +15997,6 @@ let
         sha512 = "wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==";
       };
     };
-    "commander-2.18.0" = {
-      name = "commander";
-      packageName = "commander";
-      version = "2.18.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz";
-        sha512 = "6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==";
-      };
-    };
     "commander-2.19.0" = {
       name = "commander";
       packageName = "commander";
@@ -15637,6 +16114,24 @@ let
         sha512 = "ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==";
       };
     };
+    "commander-7.1.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz";
+        sha512 = "pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==";
+      };
+    };
+    "commander-7.2.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz";
+        sha512 = "QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==";
+      };
+    };
     "commandpost-1.4.0" = {
       name = "commandpost";
       packageName = "commandpost";
@@ -15826,13 +16321,13 @@ let
         sha512 = "FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==";
       };
     };
-    "compress-commons-4.0.2" = {
+    "compress-commons-4.1.0" = {
       name = "compress-commons";
       packageName = "compress-commons";
-      version = "4.0.2";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/compress-commons/-/compress-commons-4.0.2.tgz";
-        sha512 = "qhd32a9xgzmpfoga1VQEiLEwdKZ6Plnpx5UCgIsf89FSolyJ7WnifY4Gtjgv5WR6hWAyRaHxC5MiEhU/38U70A==";
+        url = "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.0.tgz";
+        sha512 = "ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==";
       };
     };
     "compressible-2.0.18" = {
@@ -15916,6 +16411,15 @@ let
         sha512 = "bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==";
       };
     };
+    "conf-6.2.4" = {
+      name = "conf";
+      packageName = "conf";
+      version = "6.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conf/-/conf-6.2.4.tgz";
+        sha512 = "GjgyPRLo1qK1LR9RWAdUagqo+DP18f5HWCFk4va7GS+wpxQTOzfuKTwKOvGW2c01/YXNicAyyoyuSddmdkBzZQ==";
+      };
+    };
     "conf-7.1.2" = {
       name = "conf";
       packageName = "conf";
@@ -15925,6 +16429,15 @@ let
         sha512 = "r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==";
       };
     };
+    "conf-9.0.2" = {
+      name = "conf";
+      packageName = "conf";
+      version = "9.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conf/-/conf-9.0.2.tgz";
+        sha512 = "rLSiilO85qHgaTBIIHQpsv8z+NnVfZq3cKuYNCXN1AOqPzced0GWZEe/A517VldRLyQYXUMyV+vszavE2jSAqw==";
+      };
+    };
     "config-1.31.0" = {
       name = "config";
       packageName = "config";
@@ -16105,24 +16618,6 @@ let
         sha1 = "5a25047bc76f73072667c8cb52c989888f494c63";
       };
     };
-    "consolidate-0.16.0" = {
-      name = "consolidate";
-      packageName = "consolidate";
-      version = "0.16.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz";
-        sha512 = "Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==";
-      };
-    };
-    "constant-case-3.0.4" = {
-      name = "constant-case";
-      packageName = "constant-case";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz";
-        sha512 = "I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==";
-      };
-    };
     "constantinople-3.1.2" = {
       name = "constantinople";
       packageName = "constantinople";
@@ -16141,22 +16636,13 @@ let
         sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
       };
     };
-    "constructs-3.3.18" = {
-      name = "constructs";
-      packageName = "constructs";
-      version = "3.3.18";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.18.tgz";
-        sha512 = "aoFeZLctXI17AYApAc9Ilg/kTY3m7e29VbxeGnNiKvrsj9+UyC1setKozYPxtxr1dVC0UTUrOEYdP1rIAVGffQ==";
-      };
-    };
-    "constructs-3.3.5" = {
+    "constructs-3.3.71" = {
       name = "constructs";
       packageName = "constructs";
-      version = "3.3.5";
+      version = "3.3.71";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.5.tgz";
-        sha512 = "qicg+YQ/8ftntU+PtvB+faUmGMCPMJyQ+Vo1Y7z2QdlDVRW1YJ5XVS4Skk4WlOfaJ9r/dvlSinB9+Vaw3Yb2Ww==";
+        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.71.tgz";
+        sha512 = "3KFtTsA7OV27m/+pJhN4iJkKzHbPIPvyvEX5BQ/JCAWjfCHOQEVpIgxHLpT4i8L1OFta+pJrzcEVAHo6UitwqA==";
       };
     };
     "consume-http-header-1.0.0" = {
@@ -16232,6 +16718,24 @@ let
         sha1 = "0e790b3abfef90f6ecb77ae8585db9099caf7578";
       };
     };
+    "contentful-management-7.14.0" = {
+      name = "contentful-management";
+      packageName = "contentful-management";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/contentful-management/-/contentful-management-7.14.0.tgz";
+        sha512 = "6i3lDp+1S+DZc7nv+dYGKqZ/GbhbiJakp4fS0zqCtuaQb+80k9+9a/DO1/M3QmS7t7urITYiwTVgQl8hvqAFFg==";
+      };
+    };
+    "contentful-sdk-core-6.7.0" = {
+      name = "contentful-sdk-core";
+      packageName = "contentful-sdk-core";
+      version = "6.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.7.0.tgz";
+        sha512 = "+b8UXVE249Z6WzMLXvsu3CIvN/s5xXRZ9o+zY7zDdPkIYBMW15xcs9N2ATI6ncmc+s1uj4XZij/2skflletHiw==";
+      };
+    };
     "continuable-1.1.8" = {
       name = "continuable";
       packageName = "continuable";
@@ -16304,13 +16808,13 @@ let
         sha512 = "5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==";
       };
     };
-    "conventional-changelog-core-3.2.3" = {
+    "conventional-changelog-core-4.2.2" = {
       name = "conventional-changelog-core";
       packageName = "conventional-changelog-core";
-      version = "3.2.3";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz";
-        sha512 = "LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==";
+        url = "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.2.tgz";
+        sha512 = "7pDpRUiobQDNkwHyJG7k9f6maPo9tfPzkSWbRq97GGiZqisElhnvUZSvyQH20ogfOjntB5aadvv6NNcKL1sReg==";
       };
     };
     "conventional-changelog-preset-loader-2.3.4" = {
@@ -16340,22 +16844,31 @@ let
         sha512 = "ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==";
       };
     };
-    "conventional-commits-parser-3.2.0" = {
+    "conventional-commits-parser-3.2.1" = {
       name = "conventional-commits-parser";
       packageName = "conventional-commits-parser";
-      version = "3.2.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.0.tgz";
-        sha512 = "XmJiXPxsF0JhAKyfA2Nn+rZwYKJ60nanlbSWwwkGwLQFbugsc0gv1rzc7VbbUWAzJfR1qR87/pNgv9NgmxtBMQ==";
+        url = "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz";
+        sha512 = "OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA==";
       };
     };
-    "conventional-recommended-bump-5.0.1" = {
+    "conventional-recommended-bump-6.1.0" = {
       name = "conventional-recommended-bump";
       packageName = "conventional-recommended-bump";
-      version = "5.0.1";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz";
+        sha512 = "uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==";
+      };
+    };
+    "convert-hrtime-3.0.0" = {
+      name = "convert-hrtime";
+      packageName = "convert-hrtime";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz";
-        sha512 = "RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ==";
+        url = "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz";
+        sha512 = "7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==";
       };
     };
     "convert-source-map-1.1.3" = {
@@ -16394,13 +16907,13 @@ let
         sha1 = "7e3e48bbe6d997b1417ddca2868204b4d3d85715";
       };
     };
-    "convict-6.0.0" = {
+    "convict-6.0.1" = {
       name = "convict";
       packageName = "convict";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/convict/-/convict-6.0.0.tgz";
-        sha512 = "osfPkv5yjVoZqrTWBXuh/ABGpFoaJplbt0WXr0CodR4CSWt8UnzY4PSUyRz/+5BX5YUtWcToG29Kr0B6xhdIMg==";
+        url = "https://registry.npmjs.org/convict/-/convict-6.0.1.tgz";
+        sha512 = "M4YNNq5NV4/VS8JhvBSHAokwvQRL4evEuU0VFe1GNPiqnj9TAkLXpf39ImCCVZlsp3CFp04bc/kRSWPGsJGJWg==";
       };
     };
     "cookie-0.0.4" = {
@@ -16538,13 +17051,13 @@ let
         sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
       };
     };
-    "copy-props-2.0.4" = {
+    "copy-props-2.0.5" = {
       name = "copy-props";
       packageName = "copy-props";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz";
-        sha512 = "7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==";
+        url = "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz";
+        sha512 = "XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==";
       };
     };
     "copy-template-dir-1.4.0" = {
@@ -16628,13 +17141,13 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
-    "core-js-3.6.5" = {
+    "core-js-3.10.0" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.6.5";
+      version = "3.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz";
-        sha512 = "vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.10.0.tgz";
+        sha512 = "MQx/7TLgmmDVamSyfE+O+5BHvG1aUGj/gHhLn1wVtm2B5u1eVIPvh7vkfjwWKNCjrTJB8+He99IntSQ1qP+vYQ==";
       };
     };
     "core-js-3.8.3" = {
@@ -16646,13 +17159,13 @@ let
         sha512 = "KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==";
       };
     };
-    "core-js-compat-3.8.3" = {
+    "core-js-compat-3.10.0" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.8.3";
+      version = "3.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.3.tgz";
-        sha512 = "1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.0.tgz";
+        sha512 = "9yVewub2MXNYyGvuLnMHcN1k9RkvB7/ofktpeKTIaASyB88YYqGzUnu0ywMMhJrDHOMiTjSHWGzR+i7Wb9Z1kQ==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -16781,13 +17294,22 @@ let
         sha1 = "868fd9092f439d1ef95f4a85e5fa4b9f07efc95c";
       };
     };
-    "cpy-8.1.1" = {
+    "cpus-1.0.3" = {
+      name = "cpus";
+      packageName = "cpus";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cpus/-/cpus-1.0.3.tgz";
+        sha512 = "PXHBvGLuL69u55IkLa5e5838fLhIMHxmkV4ge42a8alGyn7BtawYgI0hQ849EedvtHIOLNNH3i6eQU1BiE9SUA==";
+      };
+    };
+    "cpy-8.1.2" = {
       name = "cpy";
       packageName = "cpy";
-      version = "8.1.1";
+      version = "8.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cpy/-/cpy-8.1.1.tgz";
-        sha512 = "vqHT+9o67sMwJ5hUd/BAOYeemkU+MuFRsK2c36Xc3eefQpAsp1kAsyDxEDcc5JS1+y9l/XHPrIsVTcyGGmkUUQ==";
+        url = "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz";
+        sha512 = "dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==";
       };
     };
     "crc-0.2.0" = {
@@ -16853,6 +17375,15 @@ let
         sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
       };
     };
+    "create-gatsby-1.2.0" = {
+      name = "create-gatsby";
+      packageName = "create-gatsby";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.2.0.tgz";
+        sha512 = "CXvs1wxGqU1m8PMGmcuJfi9x8koFZZu0JwQr+e7MNnUL33wQEnaLSdwFDBUT4cEqFVWXWAcGErBOZT7/XEgh7Q==";
+      };
+    };
     "create-graphback-1.0.1" = {
       name = "create-graphback";
       packageName = "create-graphback";
@@ -16880,13 +17411,13 @@ let
         sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==";
       };
     };
-    "create-torrent-4.5.0" = {
+    "create-torrent-4.6.0" = {
       name = "create-torrent";
       packageName = "create-torrent";
-      version = "4.5.0";
+      version = "4.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-torrent/-/create-torrent-4.5.0.tgz";
-        sha512 = "RvhI3/mMbvSGb+NbV2V1nax64fc47rRYXY8WJV47t4RfzM+P2p2zpAOYyBjKqz+CkBUexS9Mvgga4Rx53m+tyA==";
+        url = "https://registry.npmjs.org/create-torrent/-/create-torrent-4.6.0.tgz";
+        sha512 = "fIGI7w1K27XK3WSLrH7OS7A7p5me4IcXWbXSn5VNu48Hp7+HlRsQGqYGJX1DXHgpVWICoq5w8pdYQ/nENnGljQ==";
       };
     };
     "cron-1.7.2" = {
@@ -16943,6 +17474,24 @@ let
         sha512 = "KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==";
       };
     };
+    "cross-fetch-3.1.1" = {
+      name = "cross-fetch";
+      packageName = "cross-fetch";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.1.tgz";
+        sha512 = "eIF+IHQpRzoGd/0zPrwQmHwDC90mdvjk+hcbYhKoaRrEk4GEIDqdjs/MljmdPPoHTQudbmWS+f0hZsEpFaEvWw==";
+      };
+    };
+    "cross-fetch-3.1.4" = {
+      name = "cross-fetch";
+      packageName = "cross-fetch";
+      version = "3.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz";
+        sha512 = "1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==";
+      };
+    };
     "cross-spawn-4.0.2" = {
       name = "cross-spawn";
       packageName = "cross-spawn";
@@ -17042,6 +17591,15 @@ let
         sha1 = "fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8";
       };
     };
+    "crypto-js-4.0.0" = {
+      name = "crypto-js";
+      packageName = "crypto-js";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz";
+        sha512 = "bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==";
+      };
+    };
     "crypto-random-string-1.0.0" = {
       name = "crypto-random-string";
       packageName = "crypto-random-string";
@@ -17231,13 +17789,13 @@ let
         sha512 = "DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==";
       };
     };
-    "css-tree-1.1.2" = {
+    "css-tree-1.1.3" = {
       name = "css-tree";
       packageName = "css-tree";
-      version = "1.1.2";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz";
-        sha512 = "wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==";
+        url = "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz";
+        sha512 = "tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==";
       };
     };
     "css-what-1.0.0" = {
@@ -17303,22 +17861,22 @@ let
         sha1 = "c6d2672632a2e5c83e013e6864a42ce8defd20ae";
       };
     };
-    "cssnano-4.1.10" = {
+    "cssnano-4.1.11" = {
       name = "cssnano";
       packageName = "cssnano";
-      version = "4.1.10";
+      version = "4.1.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz";
-        sha512 = "5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==";
+        url = "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz";
+        sha512 = "6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==";
       };
     };
-    "cssnano-preset-default-4.0.7" = {
+    "cssnano-preset-default-4.0.8" = {
       name = "cssnano-preset-default";
       packageName = "cssnano-preset-default";
-      version = "4.0.7";
+      version = "4.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz";
-        sha512 = "x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==";
+        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz";
+        sha512 = "LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==";
       };
     };
     "cssnano-util-get-arguments-4.0.0" = {
@@ -17420,15 +17978,6 @@ let
         sha512 = "AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==";
       };
     };
-    "csstype-2.6.14" = {
-      name = "csstype";
-      packageName = "csstype";
-      version = "2.6.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/csstype/-/csstype-2.6.14.tgz";
-        sha512 = "2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A==";
-      };
-    };
     "csurf-1.11.0" = {
       name = "csurf";
       packageName = "csurf";
@@ -17465,6 +18014,15 @@ let
         sha1 = "d1cfd8743c2f849a0abb2fd544db56695d19a490";
       };
     };
+    "csv-parse-4.15.3" = {
+      name = "csv-parse";
+      packageName = "csv-parse";
+      version = "4.15.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.3.tgz";
+        sha512 = "jlTqDvLdHnYMSr08ynNfk4IAUSJgJjTKy2U5CQBSu4cN9vQOJonLVZP4Qo4gKKrIgIQ5dr07UwOJdi+lRqT12w==";
+      };
+    };
     "csv-parser-1.12.1" = {
       name = "csv-parser";
       packageName = "csv-parser";
@@ -17618,13 +18176,13 @@ let
         sha512 = "KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==";
       };
     };
-    "d3-array-2.11.0" = {
+    "d3-array-2.12.1" = {
       name = "d3-array";
       packageName = "d3-array";
-      version = "2.11.0";
+      version = "2.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz";
-        sha512 = "26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==";
+        url = "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz";
+        sha512 = "B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==";
       };
     };
     "d3-axis-1.0.12" = {
@@ -17924,13 +18482,13 @@ let
         sha512 = "LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==";
       };
     };
-    "d3-scale-3.2.3" = {
+    "d3-scale-3.2.4" = {
       name = "d3-scale";
       packageName = "d3-scale";
-      version = "3.2.3";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.3.tgz";
-        sha512 = "8E37oWEmEzj57bHcnjPVOBS3n4jqakOeuv1EDdQSiSrYnMCBdMd3nc4HtKk7uia8DUHcY/CGuJ42xxgtEYrX0g==";
+        url = "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.4.tgz";
+        sha512 = "PG6gtpbPCFqKbvdBEswQcJcTzHC8VEd/XzezF5e68KlkT4/ggELw/nR1tv863jY6ufKTvDlzCMZvhe06codbbA==";
       };
     };
     "d3-scale-chromatic-1.5.0" = {
@@ -17960,13 +18518,13 @@ let
         sha512 = "EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==";
       };
     };
-    "d3-shape-2.0.0" = {
+    "d3-shape-2.1.0" = {
       name = "d3-shape";
       packageName = "d3-shape";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-shape/-/d3-shape-2.0.0.tgz";
-        sha512 = "djpGlA779ua+rImicYyyjnOjeubyhql1Jyn1HK0bTyawuH76UQRWXd+pftr67H6Fa8hSwetkgb/0id3agKWykw==";
+        url = "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz";
+        sha512 = "PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==";
       };
     };
     "d3-time-1.1.0" = {
@@ -18077,22 +18635,22 @@ let
         sha512 = "e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==";
       };
     };
-    "dargs-4.1.0" = {
+    "dargs-6.1.0" = {
       name = "dargs";
       packageName = "dargs";
-      version = "4.1.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz";
-        sha1 = "03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17";
+        url = "https://registry.npmjs.org/dargs/-/dargs-6.1.0.tgz";
+        sha512 = "5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==";
       };
     };
-    "dargs-6.1.0" = {
+    "dargs-7.0.0" = {
       name = "dargs";
       packageName = "dargs";
-      version = "6.1.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dargs/-/dargs-6.1.0.tgz";
-        sha512 = "5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==";
+        url = "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz";
+        sha512 = "2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==";
       };
     };
     "dash-ast-1.0.0" = {
@@ -18239,15 +18797,6 @@ let
         sha512 = "gz9RuhUxq3coYBrelzuFXCNyC579aO3Bm1Wlwa12/9tJr1NP0AAGxpHJYA1HZvt8X7ZdrtMzpFyNvs2Y9PFG6w==";
       };
     };
-    "data-uri-to-buffer-1.2.0" = {
-      name = "data-uri-to-buffer";
-      packageName = "data-uri-to-buffer";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz";
-        sha512 = "vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==";
-      };
-    };
     "data-uri-to-buffer-3.0.1" = {
       name = "data-uri-to-buffer";
       packageName = "data-uri-to-buffer";
@@ -18401,6 +18950,24 @@ let
         sha512 = "mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==";
       };
     };
+    "debounce-1.2.1" = {
+      name = "debounce";
+      packageName = "debounce";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz";
+        sha512 = "XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==";
+      };
+    };
+    "debounce-fn-3.0.1" = {
+      name = "debounce-fn";
+      packageName = "debounce-fn";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debounce-fn/-/debounce-fn-3.0.1.tgz";
+        sha512 = "aBoJh5AhpqlRoHZjHmOzZlRx+wz2xVwGL9rjs+Kj0EWUrL4/h4K7OD176thl2Tdoqui/AaA4xhHrNArGLAaI3Q==";
+      };
+    };
     "debounce-fn-4.0.0" = {
       name = "debounce-fn";
       packageName = "debounce-fn";
@@ -18950,13 +19517,13 @@ let
         sha512 = "0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==";
       };
     };
-    "defer-to-connect-2.0.0" = {
+    "defer-to-connect-2.0.1" = {
       name = "defer-to-connect";
       packageName = "defer-to-connect";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz";
-        sha512 = "bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==";
+        url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz";
+        sha512 = "4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==";
       };
     };
     "deferred-0.7.11" = {
@@ -18977,6 +19544,15 @@ let
         sha512 = "a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==";
       };
     };
+    "define-lazy-prop-2.0.0" = {
+      name = "define-lazy-prop";
+      packageName = "define-lazy-prop";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz";
+        sha512 = "Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==";
+      };
+    };
     "define-properties-1.1.3" = {
       name = "define-properties";
       packageName = "define-properties";
@@ -19031,15 +19607,6 @@ let
         sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
       };
     };
-    "degenerator-1.0.4" = {
-      name = "degenerator";
-      packageName = "degenerator";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz";
-        sha1 = "fcf490a37ece266464d9cc431ab98c5819ced095";
-      };
-    };
     "degenerator-2.2.0" = {
       name = "degenerator";
       packageName = "degenerator";
@@ -19094,13 +19661,13 @@ let
         sha512 = "aL3AhqtfhOlT/3ai6sWXeqwnw63ATNpnUiN4HL7x9q+My5QtHlO3OIkasmug9LKzpheLdmUKGRKnYXYAS7FQkQ==";
       };
     };
-    "delay-async-1.2.0" = {
-      name = "delay-async";
-      packageName = "delay-async";
-      version = "1.2.0";
+    "delay-5.0.0" = {
+      name = "delay";
+      packageName = "delay";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/delay-async/-/delay-async-1.2.0.tgz";
-        sha512 = "BDhPL4k42yL2c0b5zTUlMIM3/wmv77HOgZi4ya/8tOHw16GZ1i9Qj7Tmy3xt0jWb4VmpQtklLPReUtOUZUuzuQ==";
+        url = "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz";
+        sha512 = "ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -19292,6 +19859,15 @@ let
         sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
       };
     };
+    "detect-newline-1.0.3" = {
+      name = "detect-newline";
+      packageName = "detect-newline";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz";
+        sha1 = "e97b1003877d70c09af1af35bfadff168de4920d";
+      };
+    };
     "detect-newline-2.1.0" = {
       name = "detect-newline";
       packageName = "detect-newline";
@@ -19310,13 +19886,22 @@ let
         sha512 = "TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==";
       };
     };
-    "detect-node-2.0.4" = {
+    "detect-node-2.0.5" = {
       name = "detect-node";
       packageName = "detect-node";
-      version = "2.0.4";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz";
+        sha512 = "qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==";
+      };
+    };
+    "detect-port-1.3.0" = {
+      name = "detect-port";
+      packageName = "detect-port";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz";
-        sha512 = "ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==";
+        url = "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz";
+        sha512 = "E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==";
       };
     };
     "detect-port-alt-1.1.6" = {
@@ -19346,13 +19931,13 @@ let
         sha512 = "6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==";
       };
     };
-    "detective-amd-3.0.1" = {
+    "detective-amd-3.1.0" = {
       name = "detective-amd";
       packageName = "detective-amd";
-      version = "3.0.1";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detective-amd/-/detective-amd-3.0.1.tgz";
-        sha512 = "vJgluSKkPyo+/McW9hzwmZwY1VPA3BS0VS1agdpPAWAhr65HwC1ox4Ig82rVfGYDYCa4GcKQON5JWBk++2Kf1Q==";
+        url = "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.0.tgz";
+        sha512 = "G7wGWT6f0VErjUkE2utCm7IUshT7nBh7aBBH2VBOiY9Dqy2DMens5iiOvYCuhstoIxRKLrnOvVAz4/EyPIAjnw==";
       };
     };
     "detective-cjs-3.1.1" = {
@@ -19427,22 +20012,13 @@ let
         sha512 = "SrsUCfCaDTF64QVMHMidRal+kmkbIc5zP8cxxZPsomWx9vuEUjBlSJNhf7/ypE5cLdJJDI4qzKDmyzqQ+iz/xg==";
       };
     };
-    "devcert-1.1.3" = {
-      name = "devcert";
-      packageName = "devcert";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/devcert/-/devcert-1.1.3.tgz";
-        sha512 = "7/nIzKdQ8y2K0imjIP7dyg2GJ2h38Ps6VOMXWZHIarNDV3p6mTXyEugKFnkmsZ2DD58JEG34ILyVb3qdOMmP9w==";
-      };
-    };
-    "devtools-protocol-0.0.818844" = {
+    "devtools-protocol-0.0.854822" = {
       name = "devtools-protocol";
       packageName = "devtools-protocol";
-      version = "0.0.818844";
+      version = "0.0.854822";
       src = fetchurl {
-        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz";
-        sha512 = "AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==";
+        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.854822.tgz";
+        sha512 = "xd4D8kHQtB0KtWW0c9xBZD5LVtm9chkMOfs/3Yn01RhT/sFIsVtzTtypfKoFfWBaL+7xCYLxjOLkhwPXaX/Kcg==";
       };
     };
     "dezalgo-1.0.3" = {
@@ -19544,13 +20120,22 @@ let
         sha512 = "IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==";
       };
     };
-    "diff2html-3.1.18" = {
+    "diff-sequences-25.2.6" = {
+      name = "diff-sequences";
+      packageName = "diff-sequences";
+      version = "25.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz";
+        sha512 = "Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==";
+      };
+    };
+    "diff2html-3.4.2" = {
       name = "diff2html";
       packageName = "diff2html";
-      version = "3.1.18";
+      version = "3.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.1.18.tgz";
-        sha512 = "1S3ubwa8+frMFsQ6rQLiXAkUtPoqzXdx6I/Q4I/a0pPXJQd1LfuqJY4s2ZUj2ahzODr/7nc6Bn1pWJrU1i9MEQ==";
+        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.4.2.tgz";
+        sha512 = "3H4gFSnyf+TI6hM+AIF1Y2Hk3RZ5/Rb+/IpafgDDX0loc/klLS8iQxbx7+ByfRccb09E+pTVt+g9UEM2L9ebPw==";
       };
     };
     "diff3-0.0.3" = {
@@ -19697,13 +20282,13 @@ let
         sha512 = "EAyaxl8hy4Ph07kzlzGTfpbZMNAAAHXSZtNEMwdlnSd1noHzvA6HsgKt4fEMSvaEXQYLSphe5rPMxN4WOj0hcQ==";
       };
     };
-    "dispensary-0.59.0" = {
+    "dispensary-0.61.0" = {
       name = "dispensary";
       packageName = "dispensary";
-      version = "0.59.0";
+      version = "0.61.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.59.0.tgz";
-        sha512 = "JSnh4AhtYgwoyUHtunZbAhklkD9IeNacK1IDlrAJSZjzBMGFoTp9+Nggg+ITJ+F1geXc04DZ55ixnjFr5Ozknw==";
+        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.61.0.tgz";
+        sha512 = "5BK13jrYQ+0bHgZBv7IOQsff5ydeNcnp87w3c7T8x5im21RDFQyiHrTlH0DoouZDyAVHILpat4Ytf7gRuhMRgw==";
       };
     };
     "diveSync-0.3.0" = {
@@ -19832,6 +20417,15 @@ let
         sha512 = "qKftHMVoMliYBaYLkgttm+NXhRISVNkIMfAL4ecmXjiWRElfdfY+xNgITiehG0LpUEDbFUa/UDCByYq/2UZIpQ==";
       };
     };
+    "dockerfile-ast-0.2.0" = {
+      name = "dockerfile-ast";
+      packageName = "dockerfile-ast";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.2.0.tgz";
+        sha512 = "iQyp12k1A4tF3sEfLAq2wfFPKdpoiGTJeuiu2Y1bdEqIZu0DfSSL2zm0fk7a/UHeQkngnYaRRGuON+C+2LO1Fw==";
+      };
+    };
     "dockerfile-language-service-0.2.0" = {
       name = "dockerfile-language-service";
       packageName = "dockerfile-language-service";
@@ -19976,13 +20570,13 @@ let
         sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
       };
     };
-    "domelementtype-2.1.0" = {
+    "domelementtype-2.2.0" = {
       name = "domelementtype";
       packageName = "domelementtype";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz";
-        sha512 = "LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==";
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz";
+        sha512 = "DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==";
       };
     };
     "domexception-1.0.1" = {
@@ -20039,13 +20633,13 @@ let
         sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
       };
     };
-    "domhandler-4.0.0" = {
+    "domhandler-4.1.0" = {
       name = "domhandler";
       packageName = "domhandler";
-      version = "4.0.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz";
-        sha512 = "KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==";
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.1.0.tgz";
+        sha512 = "/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ==";
       };
     };
     "domino-2.1.6" = {
@@ -20057,13 +20651,13 @@ let
         sha512 = "3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==";
       };
     };
-    "dompurify-2.2.6" = {
+    "dompurify-2.2.7" = {
       name = "dompurify";
       packageName = "dompurify";
-      version = "2.2.6";
+      version = "2.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.2.6.tgz";
-        sha512 = "7b7ZArhhH0SP6W2R9cqK6RjaU82FZ2UPM7RO8qN1b1wyvC/NY1FNWcX1Pu00fFOAnzEORtwXe4bPaClg6pUybQ==";
+        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.2.7.tgz";
+        sha512 = "jdtDffdGNY+C76jvodNTu9jt5yYj59vuTUyx+wXdzcSwAGTYZDAQkQ7Iwx9zcGrA4ixC1syU4H3RZROqRxokxg==";
       };
     };
     "domutils-1.4.3" = {
@@ -20093,13 +20687,13 @@ let
         sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
       };
     };
-    "domutils-2.4.4" = {
+    "domutils-2.5.1" = {
       name = "domutils";
       packageName = "domutils";
-      version = "2.4.4";
+      version = "2.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz";
-        sha512 = "jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==";
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.5.1.tgz";
+        sha512 = "hO1XwHMGAthA/1KL7c83oip/6UWo3FlUNIuWiWKltoiQ5oCOiqths8KknvY2jpOohUoUgnwa/+Rm7UpwpSbY/Q==";
       };
     };
     "dot-case-3.0.4" = {
@@ -20273,13 +20867,13 @@ let
         sha512 = "ic2BigbyUWx7/CBbsfGjf71zUNZB4edBGC3oRliSzsoNmvyVx3Ycfp1w3vp2Y78Ee0eIIkjIEO5KzW0zThDGaA==";
       };
     };
-    "draftlog-1.0.12" = {
+    "draftlog-1.0.13" = {
       name = "draftlog";
       packageName = "draftlog";
-      version = "1.0.12";
+      version = "1.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/draftlog/-/draftlog-1.0.12.tgz";
-        sha1 = "7db6a3c5b62106bb32dd4a35d67bcccb6c7d9da0";
+        url = "https://registry.npmjs.org/draftlog/-/draftlog-1.0.13.tgz";
+        sha512 = "GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==";
       };
     };
     "drange-1.1.1" = {
@@ -20543,15 +21137,6 @@ let
         sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==";
       };
     };
-    "ejs-3.1.5" = {
-      name = "ejs";
-      packageName = "ejs";
-      version = "3.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz";
-        sha512 = "dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==";
-      };
-    };
     "ejs-3.1.6" = {
       name = "ejs";
       packageName = "ejs";
@@ -20561,13 +21146,49 @@ let
         sha512 = "9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==";
       };
     };
-    "electron-to-chromium-1.3.663" = {
+    "electron-notarize-1.0.0" = {
+      name = "electron-notarize";
+      packageName = "electron-notarize";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.0.0.tgz";
+        sha512 = "dsib1IAquMn0onCrNMJ6gtEIZn/azG8hZMCYOuZIMVMUeRMgBYHK1s5TK9P8xAcrAjh/2aN5WYHzgVSWX314og==";
+      };
+    };
+    "electron-osx-sign-0.5.0" = {
+      name = "electron-osx-sign";
+      packageName = "electron-osx-sign";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz";
+        sha512 = "icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==";
+      };
+    };
+    "electron-packager-15.2.0" = {
+      name = "electron-packager";
+      packageName = "electron-packager";
+      version = "15.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-packager/-/electron-packager-15.2.0.tgz";
+        sha512 = "BaklTBRQy1JTijR3hi8XxHf/uo76rHbDCNM/eQHSblzE9C0NoNfOe86nPxB7y1u2jwlqoEJ4zFiHpTFioKGGRA==";
+      };
+    };
+    "electron-rebuild-2.3.5" = {
+      name = "electron-rebuild";
+      packageName = "electron-rebuild";
+      version = "2.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.5.tgz";
+        sha512 = "1sQ1DRtQGpglFhc3urD4olMJzt/wxlbnAAsf+WY2xHf5c50ZovivZvCXSpVgTOP9f4TzOMvelWyspyfhxQKHzQ==";
+      };
+    };
+    "electron-to-chromium-1.3.708" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.663";
+      version = "1.3.708";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.663.tgz";
-        sha512 = "xkVkzHj6k3oRRGlmdgUCCLSLhtFYHDCTH7SeK+LJdJjnsLcrdbpr8EYmfMQhez3V/KPO5UScSpzQ0feYX6Qoyw==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.708.tgz";
+        sha512 = "+A8ggYZ5riOLMcVAuzHx6bforaPzaiLnW1QOMD2SlMYQVi7QQTyQ/WrlZoebIH9ikmgr+tLJGpNITFFCUiQcPw==";
       };
     };
     "electrum-client-git://github.com/janoside/electrum-client" = {
@@ -20662,13 +21283,13 @@ let
         sha512 = "Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==";
       };
     };
-    "emmet-2.3.0" = {
+    "emmet-2.3.4" = {
       name = "emmet";
       packageName = "emmet";
-      version = "2.3.0";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/emmet/-/emmet-2.3.0.tgz";
-        sha512 = "/9jfXVKjODNt1QBpMkfUp2SlyYNfi0CcWLpiYCQmwnsLmME/To3lScw+Ip4V7Pasp0O0uYUU0Um0M9ewSIfx3g==";
+        url = "https://registry.npmjs.org/emmet/-/emmet-2.3.4.tgz";
+        sha512 = "3IqSwmO+N2ZGeuhDyhV/TIOJFUbkChi53bcasSNRE7Yd+4eorbbYz4e53TpMECt38NtYkZNupQCZRlwdAYA42A==";
       };
     };
     "emoji-named-characters-1.0.2" = {
@@ -20824,6 +21445,15 @@ let
         sha1 = "d4596e702734a93e40e9af864319eabd99ff2f0e";
       };
     };
+    "end-of-stream-1.1.0" = {
+      name = "end-of-stream";
+      packageName = "end-of-stream";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz";
+        sha1 = "e9353258baa9108965efc41cb0ef8ade2f3cfb07";
+      };
+    };
     "end-of-stream-1.4.4" = {
       name = "end-of-stream";
       packageName = "end-of-stream";
@@ -20896,22 +21526,22 @@ let
         sha512 = "21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==";
       };
     };
-    "engine.io-4.0.6" = {
+    "engine.io-4.1.1" = {
       name = "engine.io";
       packageName = "engine.io";
-      version = "4.0.6";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-4.0.6.tgz";
-        sha512 = "rf7HAVZpcRrcKEKddgIzYUnwg0g5HE1RvJaTLwkcfJmce4g+po8aMuE6vxzp6JwlK8FEq/vi0KWN6tA585DjaA==";
+        url = "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz";
+        sha512 = "t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==";
       };
     };
-    "engine.io-4.1.1" = {
+    "engine.io-5.0.0" = {
       name = "engine.io";
       packageName = "engine.io";
-      version = "4.1.1";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz";
-        sha512 = "t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==";
+        url = "https://registry.npmjs.org/engine.io/-/engine.io-5.0.0.tgz";
+        sha512 = "BATIdDV3H1SrE9/u2BAotvsmjJg0t1P4+vGedImSs1lkFAtQdvk4Ev1y4LDiPF7BPWgXWEG+NDY+nLvW3UrMWw==";
       };
     };
     "engine.io-client-1.3.1" = {
@@ -20932,13 +21562,13 @@ let
         sha512 = "iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==";
       };
     };
-    "engine.io-client-3.5.0" = {
+    "engine.io-client-3.5.1" = {
       name = "engine.io-client";
       packageName = "engine.io-client";
-      version = "3.5.0";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.0.tgz";
-        sha512 = "12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==";
+        url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.1.tgz";
+        sha512 = "oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ==";
       };
     };
     "engine.io-parser-1.0.6" = {
@@ -21076,15 +21706,6 @@ let
         sha512 = "5CCY/3ci4MC1m2jlumNjWd7VBFt4VfFnmSqSNmVcXq4gxM3Vmarxtt+SvmBnzwLS669MWdVuXboNVj1qN2esVg==";
       };
     };
-    "env-ci-3.2.2" = {
-      name = "env-ci";
-      packageName = "env-ci";
-      version = "3.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/env-ci/-/env-ci-3.2.2.tgz";
-        sha512 = "AOiNZ3lmxrtva3r/roqaYDF+1PX2V+ouUzuGqJf7KNxyyYkuU+CsfFbbUeibQPdixxjI/lP6eDtvtkX1/wymJw==";
-      };
-    };
     "env-editor-0.4.2" = {
       name = "env-editor";
       packageName = "env-editor";
@@ -21103,13 +21724,13 @@ let
         sha1 = "4168133b42bb05c38a35b1ae4397c8298ab369e0";
       };
     };
-    "env-paths-2.2.0" = {
+    "env-paths-2.2.1" = {
       name = "env-paths";
       packageName = "env-paths";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz";
-        sha512 = "6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==";
+        url = "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz";
+        sha512 = "+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==";
       };
     };
     "env-variable-0.0.6" = {
@@ -21139,13 +21760,13 @@ let
         sha512 = "46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==";
       };
     };
-    "envinfo-7.7.4" = {
+    "envinfo-7.8.1" = {
       name = "envinfo";
       packageName = "envinfo";
-      version = "7.7.4";
+      version = "7.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz";
-        sha512 = "TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==";
+        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz";
+        sha512 = "/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==";
       };
     };
     "eol-0.9.1" = {
@@ -21247,22 +21868,13 @@ let
         sha512 = "rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==";
       };
     };
-    "es-abstract-1.17.7" = {
-      name = "es-abstract";
-      packageName = "es-abstract";
-      version = "1.17.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz";
-        sha512 = "VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==";
-      };
-    };
-    "es-abstract-1.18.0-next.2" = {
+    "es-abstract-1.18.0" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.18.0-next.2";
+      version = "1.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz";
-        sha512 = "Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz";
+        sha512 = "LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==";
       };
     };
     "es-get-iterator-1.1.2" = {
@@ -21274,13 +21886,13 @@ let
         sha512 = "+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==";
       };
     };
-    "es-module-lexer-0.3.26" = {
+    "es-module-lexer-0.4.1" = {
       name = "es-module-lexer";
       packageName = "es-module-lexer";
-      version = "0.3.26";
+      version = "0.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.26.tgz";
-        sha512 = "Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==";
+        url = "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz";
+        sha512 = "ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -21427,13 +22039,22 @@ let
         sha512 = "p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==";
       };
     };
-    "esbuild-0.8.44" = {
+    "esbuild-0.8.57" = {
+      name = "esbuild";
+      packageName = "esbuild";
+      version = "0.8.57";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.8.57.tgz";
+        sha512 = "j02SFrUwFTRUqiY0Kjplwjm1psuzO1d6AjaXKuOR9hrY0HuPsT6sV42B6myW34h1q4CRy+Y3g4RU/cGJeI/nNA==";
+      };
+    };
+    "esbuild-0.9.7" = {
       name = "esbuild";
       packageName = "esbuild";
-      version = "0.8.44";
+      version = "0.9.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.8.44.tgz";
-        sha512 = "m9yyBZMgWuAB7e7tA2g9L4PovoLa5Xb73+Yg9uBBR2w3Fe4P9/nxqj/HLrw1k/rjdjF1eX1kNJRytboqOtRCCQ==";
+        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.9.7.tgz";
+        sha512 = "VtUf6aQ89VTmMLKrWHYG50uByMF4JQlVysb8dmg6cOgW8JnFCipmz7p+HNBl+RR3LLCuBxFGVauAe2wfnF9bLg==";
       };
     };
     "esc-exit-2.0.2" = {
@@ -21481,15 +22102,6 @@ let
         sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
       };
     };
-    "escape-regexp-0.0.1" = {
-      name = "escape-regexp";
-      packageName = "escape-regexp";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-regexp/-/escape-regexp-0.0.1.tgz";
-        sha1 = "f44bda12d45bbdf9cb7f862ee7e4827b3dd32254";
-      };
-    };
     "escape-regexp-component-1.0.2" = {
       name = "escape-regexp-component";
       packageName = "escape-regexp-component";
@@ -21616,31 +22228,22 @@ let
         sha512 = "S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==";
       };
     };
-    "eslint-6.8.0" = {
-      name = "eslint";
-      packageName = "eslint";
-      version = "6.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz";
-        sha512 = "K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==";
-      };
-    };
-    "eslint-7.14.0" = {
+    "eslint-7.21.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.14.0";
+      version = "7.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz";
-        sha512 = "5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.21.0.tgz";
+        sha512 = "W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg==";
       };
     };
-    "eslint-7.19.0" = {
+    "eslint-7.23.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.19.0";
+      version = "7.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.19.0.tgz";
-        sha512 = "CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz";
+        sha512 = "kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==";
       };
     };
     "eslint-plugin-no-unsanitized-3.1.4" = {
@@ -21652,15 +22255,6 @@ let
         sha512 = "WF1+eZo2Sh+bQNjZuVNwT0dA61zuJORsLh+1Sww7+O6GOPw+WPWIIRfTWNqrmaXaDMhM4SXAqYPcNlhRMiH13g==";
       };
     };
-    "eslint-plugin-react-7.22.0" = {
-      name = "eslint-plugin-react";
-      packageName = "eslint-plugin-react";
-      version = "7.22.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz";
-        sha512 = "p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==";
-      };
-    };
     "eslint-plugin-vue-6.2.2" = {
       name = "eslint-plugin-vue";
       packageName = "eslint-plugin-vue";
@@ -21670,13 +22264,13 @@ let
         sha512 = "Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==";
       };
     };
-    "eslint-plugin-vue-7.5.0" = {
+    "eslint-plugin-vue-7.8.0" = {
       name = "eslint-plugin-vue";
       packageName = "eslint-plugin-vue";
-      version = "7.5.0";
+      version = "7.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.5.0.tgz";
-        sha512 = "QnMMTcyV8PLxBz7QQNAwISSEs6LYk2LJvGlxalXvpCtfKnqo7qcY0aZTIxPe8QOnHd7WCwiMZLOJzg6A03T0Gw==";
+        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.8.0.tgz";
+        sha512 = "OGrnPz+PuYL2HmVyBHxm4mRjxW2kfFCQE6Hw9G6qOHs/Pcu0srOlCCW0FMa8SLzIEqxl8WuKoBSPcMnrjUG2vw==";
       };
     };
     "eslint-scope-3.7.3" = {
@@ -21742,15 +22336,6 @@ let
         sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==";
       };
     };
-    "esm-3.2.25" = {
-      name = "esm";
-      packageName = "esm";
-      version = "3.2.25";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz";
-        sha512 = "U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==";
-      };
-    };
     "esmangle-1.0.1" = {
       name = "esmangle";
       packageName = "esmangle";
@@ -21796,15 +22381,6 @@ let
         sha512 = "ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==";
       };
     };
-    "espree-7.3.0" = {
-      name = "espree";
-      packageName = "espree";
-      version = "7.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz";
-        sha512 = "dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==";
-      };
-    };
     "espree-7.3.1" = {
       name = "espree";
       packageName = "espree";
@@ -21949,6 +22525,15 @@ let
         sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
       };
     };
+    "estree-util-is-identifier-name-1.1.0" = {
+      name = "estree-util-is-identifier-name";
+      packageName = "estree-util-is-identifier-name";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-1.1.0.tgz";
+        sha512 = "OVJZ3fGGt9By77Ix9NhaRbzfbDV/2rx9EP7YIDJTmsZSEc5kYn2vWcNccYyahJL2uAQZK2a5Or2i0wtIKTPoRQ==";
+      };
+    };
     "estree-walker-0.6.1" = {
       name = "estree-walker";
       packageName = "estree-walker";
@@ -21994,15 +22579,6 @@ let
         sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
       };
     };
-    "esy-solve-cudf-0.1.10" = {
-      name = "esy-solve-cudf";
-      packageName = "esy-solve-cudf";
-      version = "0.1.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esy-solve-cudf/-/esy-solve-cudf-0.1.10.tgz";
-        sha512 = "/MrZOBH0wuJndvZN8pl+S3Mg3zJaK70PH9ZZwqDeJHulghEWROEZxpmenNiS9pqAaxyUVhTZJBt2/vL9jKCJbg==";
-      };
-    };
     "etag-1.8.1" = {
       name = "etag";
       packageName = "etag";
@@ -22012,6 +22588,33 @@ let
         sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
       };
     };
+    "eth-lib-0.2.8" = {
+      name = "eth-lib";
+      packageName = "eth-lib";
+      version = "0.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz";
+        sha512 = "ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==";
+      };
+    };
+    "ethereum-bloom-filters-1.0.9" = {
+      name = "ethereum-bloom-filters";
+      packageName = "ethereum-bloom-filters";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.9.tgz";
+        sha512 = "GiK/RQkAkcVaEdxKVkPcG07PQ5vD7v2MFSHgZmBJSfMzNRHimntdBithsHAT89tAXnIpzVDWt8iaCD1DvkaxGg==";
+      };
+    };
+    "ethjs-unit-0.1.6" = {
+      name = "ethjs-unit";
+      packageName = "ethjs-unit";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz";
+        sha1 = "c665921e476e87bce2a9d588a6fe0405b2c41699";
+      };
+    };
     "eve-0.5.4" = {
       name = "eve";
       packageName = "eve";
@@ -22039,13 +22642,13 @@ let
         sha512 = "HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==";
       };
     };
-    "event-loop-spinner-2.0.0" = {
+    "event-loop-spinner-2.1.0" = {
       name = "event-loop-spinner";
       packageName = "event-loop-spinner";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/event-loop-spinner/-/event-loop-spinner-2.0.0.tgz";
-        sha512 = "1y4j/Mhttr8ordvHkbDsGzGrlQaSYJoXD/3YKUxiOXIk7myEn9UPfybEk/lLtrcU3D4QvCNmVUxVQaPtvAIaUw==";
+        url = "https://registry.npmjs.org/event-loop-spinner/-/event-loop-spinner-2.1.0.tgz";
+        sha512 = "RJ10wL8/F9AlfBgRCvYctJIXSb9XkVmSCK3GGUvPD3dJrvTjDeDT0tmhcbEC6I2NEjNM9xD38HQJ4F/f/gb4VQ==";
       };
     };
     "event-pubsub-4.3.0" = {
@@ -22138,6 +22741,15 @@ let
         sha512 = "t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ==";
       };
     };
+    "eventemitter2-6.4.4" = {
+      name = "eventemitter2";
+      packageName = "eventemitter2";
+      version = "6.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz";
+        sha512 = "HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==";
+      };
+    };
     "eventemitter3-1.2.0" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
@@ -22201,13 +22813,13 @@ let
         sha512 = "3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==";
       };
     };
-    "events-3.2.0" = {
+    "events-3.3.0" = {
       name = "events";
       packageName = "events";
-      version = "3.2.0";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz";
-        sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==";
+        url = "https://registry.npmjs.org/events/-/events-3.3.0.tgz";
+        sha512 = "mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==";
       };
     };
     "events-listener-1.1.0" = {
@@ -22228,13 +22840,13 @@ let
         sha1 = "82998ea749501145fd2da7cf8ecbe6420fac02a4";
       };
     };
-    "eventsource-1.0.7" = {
+    "eventsource-1.1.0" = {
       name = "eventsource";
       packageName = "eventsource";
-      version = "1.0.7";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz";
-        sha512 = "4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==";
+        url = "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz";
+        sha512 = "VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==";
       };
     };
     "everyauth-0.4.5" = {
@@ -22273,13 +22885,13 @@ let
         sha512 = "FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==";
       };
     };
-    "exec-sh-0.3.4" = {
+    "exec-sh-0.3.6" = {
       name = "exec-sh";
       packageName = "exec-sh";
-      version = "0.3.4";
+      version = "0.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz";
-        sha512 = "sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==";
+        url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz";
+        sha512 = "nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==";
       };
     };
     "execa-0.1.1" = {
@@ -22507,13 +23119,13 @@ let
         sha1 = "a793d3ac0cad4c6ab571e9968fbbab6cb2532929";
       };
     };
-    "expo-pwa-0.0.64" = {
+    "expo-pwa-0.0.70" = {
       name = "expo-pwa";
       packageName = "expo-pwa";
-      version = "0.0.64";
+      version = "0.0.70";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.64.tgz";
-        sha512 = "pMZ1UP5ionvJYw5ny602Av8KKhLHiv3W0rWUTOU2LZpPe4GQn+saHJMh1dSNDBo9gQ/QZM3x//pFqnI8tFqE9A==";
+        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.70.tgz";
+        sha512 = "DLmNZFBpVsv6mxq43opEentBZbKWODJBwtQmQKtHVS0kzzfYH6X+wI2ZWC73cA16QiGxWROoPtLjtQUcpfSxcw==";
       };
     };
     "express-2.5.11" = {
@@ -22552,6 +23164,15 @@ let
         sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
       };
     };
+    "express-graphql-0.9.0" = {
+      name = "express-graphql";
+      packageName = "express-graphql";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-graphql/-/express-graphql-0.9.0.tgz";
+        sha512 = "wccd9Lb6oeJ8yHpUs/8LcnGjFUUQYmOG9A5BNLybRdCzGw0PeUrtBxsIR8bfiur6uSW4OvPkVDoYH06z6/N9+w==";
+      };
+    };
     "express-handlebars-3.1.0" = {
       name = "express-handlebars";
       packageName = "express-handlebars";
@@ -22606,13 +23227,13 @@ let
         sha512 = "64YwTWpxgVGnwoLi4zvKaQ5RWIV0dkxVE4GGkBF7D89RI0/I6gTRUDL25Il4AK3cUqyLtxnX2X5BZ2YRvRx5uQ==";
       };
     };
-    "express-openapi-7.3.0" = {
+    "express-openapi-7.5.0" = {
       name = "express-openapi";
       packageName = "express-openapi";
-      version = "7.3.0";
+      version = "7.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express-openapi/-/express-openapi-7.3.0.tgz";
-        sha512 = "SENL0+eC1P2NMXAZJr/xGTGlWw62pUbD49EkRKrVdCZO4M3dNLEfvPsdkDhvJvzL8YiFjrQ2C3hF77/RhVgC4w==";
+        url = "https://registry.npmjs.org/express-openapi/-/express-openapi-7.5.0.tgz";
+        sha512 = "94JMAXcBkBHYazc8y85akJQvq/7PFdBHOWc5B421liyQXdDzvq49ct4tbTHRnpOZ3aPlsufLGVQdhJIuGUNiTQ==";
       };
     };
     "express-session-1.17.1" = {
@@ -22795,15 +23416,6 @@ let
         sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
       };
     };
-    "extract-files-5.0.1" = {
-      name = "extract-files";
-      packageName = "extract-files";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extract-files/-/extract-files-5.0.1.tgz";
-        sha512 = "qRW6y9eKF0VbCyOoOEtFhzJ3uykAw8GKwQVXyAIqwocyEWW4m+v+evec34RwtUkkxxHh7NKBLJ6AnXM8W4dH5w==";
-      };
-    };
     "extract-files-9.0.0" = {
       name = "extract-files";
       packageName = "extract-files";
@@ -22939,6 +23551,24 @@ let
         sha512 = "t8HYqkuE3YEqNcyWlAfh55479aTxO+GpYwvQvJppYqyBfSmRdNIhzY2m09FKN/MENTzq4wH6heHOIvsPyMAwvQ==";
       };
     };
+    "fast-copy-2.1.1" = {
+      name = "fast-copy";
+      packageName = "fast-copy";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.1.tgz";
+        sha512 = "Qod3DdRgFZ8GUIM6ygeoZYpQ0QLW9cf/FS9KhhjlYggcSZXWAemAw8BOCO5LuYCrR3Uj3qXDVTUzOUwG8C7beQ==";
+      };
+    };
+    "fast-crc32c-2.0.0" = {
+      name = "fast-crc32c";
+      packageName = "fast-crc32c";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-crc32c/-/fast-crc32c-2.0.0.tgz";
+        sha512 = "LIREwygxtxzHF11oLJ4xIVKu/ZWNgrj/QaGvaSD8ZggIsgCyCtSYevlrpWVqNau57ZwezV8K1HFBSjQ7FcRbTQ==";
+      };
+    };
     "fast-csv-4.3.6" = {
       name = "fast-csv";
       packageName = "fast-csv";
@@ -23155,13 +23785,22 @@ let
         sha512 = "483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==";
       };
     };
-    "fastq-1.10.1" = {
+    "fastpriorityqueue-0.7.1" = {
+      name = "fastpriorityqueue";
+      packageName = "fastpriorityqueue";
+      version = "0.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fastpriorityqueue/-/fastpriorityqueue-0.7.1.tgz";
+        sha512 = "XJ+vbiXYjmxc32VEpXScAq7mBg3vqh90OjLfiuyQ0zAtXpgICdVgGjKHep1kLGQufyuCBiEYpl6ZKcw79chTpA==";
+      };
+    };
+    "fastq-1.11.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.10.1";
+      version = "1.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz";
-        sha512 = "AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz";
+        sha512 = "7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==";
       };
     };
     "fault-1.0.4" = {
@@ -23245,13 +23884,13 @@ let
         sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
       };
     };
-    "fecha-4.2.0" = {
+    "fecha-4.2.1" = {
       name = "fecha";
       packageName = "fecha";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
-        sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz";
+        sha512 = "MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==";
       };
     };
     "fetch-everywhere-1.0.5" = {
@@ -23263,6 +23902,15 @@ let
         sha1 = "b2497f47a57d9026b3907c09756acf5f4bd34e8b";
       };
     };
+    "fetch-node-website-5.0.3" = {
+      name = "fetch-node-website";
+      packageName = "fetch-node-website";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fetch-node-website/-/fetch-node-website-5.0.3.tgz";
+        sha512 = "O86T46FUWSOq4AWON39oaT8H90QFKAbmjfOVBhgaS87AFfeW00txz73KTv7QopPWtHBbGdI1S8cIT1VK1OQYLg==";
+      };
+    };
     "fields-0.1.24" = {
       name = "fields";
       packageName = "fields";
@@ -23344,13 +23992,13 @@ let
         sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==";
       };
     };
-    "file-entry-cache-6.0.0" = {
+    "file-entry-cache-6.0.1" = {
       name = "file-entry-cache";
       packageName = "file-entry-cache";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz";
-        sha512 = "fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==";
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha512 = "7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==";
       };
     };
     "file-loader-6.0.0" = {
@@ -23407,6 +24055,15 @@ let
         sha512 = "sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA==";
       };
     };
+    "file-type-16.3.0" = {
+      name = "file-type";
+      packageName = "file-type";
+      version = "16.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-type/-/file-type-16.3.0.tgz";
+        sha512 = "ZA0hV64611vJT42ltw0T9IDwHApQuxRdrmQZWTeDmeAUtZBBVSQW3nSQqhhW1cAgpXgqcJvm410BYHXJQ9AymA==";
+      };
+    };
     "file-type-3.9.0" = {
       name = "file-type";
       packageName = "file-type";
@@ -23533,6 +24190,15 @@ let
         sha512 = "KQV/uJDI9VQgN7sHH1Zbk6+42cD6mnQ2HONzkXUfPJ+K2FC8GZ1dpewbbHw0Sz8Tf5k3EVdHVayM4DoAwWlmtg==";
       };
     };
+    "filenamify-4.2.0" = {
+      name = "filenamify";
+      packageName = "filenamify";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/filenamify/-/filenamify-4.2.0.tgz";
+        sha512 = "pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA==";
+      };
+    };
     "filesize-3.6.1" = {
       name = "filesize";
       packageName = "filesize";
@@ -23596,13 +24262,13 @@ let
         sha1 = "9b311112bc6c6127a16e016c6c5d7f19e0805c5b";
       };
     };
-    "filter-obj-2.0.1" = {
+    "filter-obj-2.0.2" = {
       name = "filter-obj";
       packageName = "filter-obj";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/filter-obj/-/filter-obj-2.0.1.tgz";
-        sha512 = "yDEp513p7+iLdFHWBVdZFnRiOYwg8ZqmpaAiZCMjzqsbo7tCS4Qm4ulXOht337NGzkukKa9u3W4wqQ9tQPm3Ug==";
+        url = "https://registry.npmjs.org/filter-obj/-/filter-obj-2.0.2.tgz";
+        sha512 = "lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg==";
       };
     };
     "finalhandler-1.1.1" = {
@@ -23713,15 +24379,6 @@ let
         sha1 = "2ad90d490f6828c1aa40292cf709ac3318210c3c";
       };
     };
-    "find-yarn-workspace-root-1.2.1" = {
-      name = "find-yarn-workspace-root";
-      packageName = "find-yarn-workspace-root";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz";
-        sha512 = "dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q==";
-      };
-    };
     "find-yarn-workspace-root-2.0.0" = {
       name = "find-yarn-workspace-root";
       packageName = "find-yarn-workspace-root";
@@ -23767,6 +24424,15 @@ let
         sha512 = "YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==";
       };
     };
+    "findup-sync-4.0.0" = {
+      name = "findup-sync";
+      packageName = "findup-sync";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz";
+        sha512 = "6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==";
+      };
+    };
     "fined-1.2.0" = {
       name = "fined";
       packageName = "fined";
@@ -23776,13 +24442,13 @@ let
         sha512 = "ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==";
       };
     };
-    "firefox-profile-4.0.0" = {
+    "firefox-profile-4.1.0" = {
       name = "firefox-profile";
       packageName = "firefox-profile";
-      version = "4.0.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.0.0.tgz";
-        sha512 = "Vw31AsjfLDbcApMDwwnhZcz3tWjV6lxB9BNf84FaV44rZXtU87cVbFMBzPEtrJdUDbwPYiuYzprp6yksYGwjSw==";
+        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.1.0.tgz";
+        sha512 = "n+0jsWhW57i7cAmdHg67W6u5vVSoIJN9D+d7M3w1MzhFLE5X/QxBfP80ksjNvNQDFXGdJQAnW9YupLkzgCxaFQ==";
       };
     };
     "first-chunk-stream-2.0.0" = {
@@ -23812,13 +24478,13 @@ let
         sha512 = "VoPpKScAzvZ07jtciOY0bJieJwyd/VVCuo4fn3nBLh4iBagzYED7GLQeFBpMpy7HP5edEKTDo8yxaIrYrwb7hg==";
       };
     };
-    "fkill-7.1.0" = {
+    "fkill-7.1.1" = {
       name = "fkill";
       packageName = "fkill";
-      version = "7.1.0";
+      version = "7.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fkill/-/fkill-7.1.0.tgz";
-        sha512 = "l8zya4nRaXya4DJbSIkCCpJfE9+M0z8vbWDN+CynvNFIAWNZhBBS/G5c7t2l1NvtTpVcmCvnTm94bUICkRcqRQ==";
+        url = "https://registry.npmjs.org/fkill/-/fkill-7.1.1.tgz";
+        sha512 = "jFPrW3qmbPQxjbKUMGPTXbpWoX5plS0BMotAB7q9jwInFd/YdrY40/5Szt4gFroF2BfXHIVuMdQC40X8IcgL3w==";
       };
     };
     "flagged-respawn-1.0.1" = {
@@ -23956,6 +24622,15 @@ let
         sha512 = "dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==";
       };
     };
+    "flora-colossus-1.0.1" = {
+      name = "flora-colossus";
+      packageName = "flora-colossus";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.1.tgz";
+        sha512 = "d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA==";
+      };
+    };
     "flow-bin-0.118.0" = {
       name = "flow-bin";
       packageName = "flow-bin";
@@ -23965,13 +24640,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.144.0" = {
+    "flow-parser-0.148.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.144.0";
+      version = "0.148.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.144.0.tgz";
-        sha512 = "si2lCamPs0N1QcTiQY8p9RxvVsVGbx4rpkX6dcfUQ2OOvEg6Cya7LItlPqcx54Gtakdx1St6TseQlV8nafYW5g==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.148.0.tgz";
+        sha512 = "m7YX6L2y0bW+bC+lH8mq3bWNS8zLdfXSkZR1Rrd9313abmBjEVYLez+D3NhYx8TnVcpJiiT28jbRVTnz/eG4ug==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -24136,13 +24811,22 @@ let
         sha512 = "VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q==";
       };
     };
-    "follow-redirects-1.13.2" = {
+    "follow-redirects-1.13.3" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.13.2";
+      version = "1.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz";
-        sha512 = "6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz";
+        sha512 = "DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==";
+      };
+    };
+    "follow-redirects-1.5.10" = {
+      name = "follow-redirects";
+      packageName = "follow-redirects";
+      version = "1.5.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz";
+        sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==";
       };
     };
     "font-awesome-filetypes-2.1.0" = {
@@ -24253,13 +24937,13 @@ let
         sha512 = "DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==";
       };
     };
-    "fork-ts-checker-webpack-plugin-6.0.5" = {
+    "fork-ts-checker-webpack-plugin-6.2.0" = {
       name = "fork-ts-checker-webpack-plugin";
       packageName = "fork-ts-checker-webpack-plugin";
-      version = "6.0.5";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.0.5.tgz";
-        sha512 = "2jIHv2RhXzSxWtvRQX/ZtOxd5joo+FQYzn+sJ/hyLqApKGgvjMEMF951GnvuSNPheGsqiVzIDjvSZo1qRtry1Q==";
+        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.2.0.tgz";
+        sha512 = "DTNbOhq6lRdjYprukX54JMeYJgQ0zMow+R5BMLwWxEX2NAXthIkwnV8DBmsWjwNLSUItKZM4TCCJbtgrtKBu2Q==";
       };
     };
     "form-data-1.0.0-rc3" = {
@@ -24316,13 +25000,31 @@ let
         sha512 = "CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==";
       };
     };
-    "form-urlencoded-4.2.1" = {
+    "form-data-3.0.1" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz";
+        sha512 = "RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==";
+      };
+    };
+    "form-data-4.0.0" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz";
+        sha512 = "ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==";
+      };
+    };
+    "form-urlencoded-4.4.2" = {
       name = "form-urlencoded";
       packageName = "form-urlencoded";
-      version = "4.2.1";
+      version = "4.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.2.1.tgz";
-        sha512 = "0eFJroOH2qaqc/630d4YZpmsyKmh6sfq/1z3YMXvFab0O6teGnf8640C7gufikwbQJFaC6nPlG4d/GiYVN+Dcw==";
+        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.4.2.tgz";
+        sha512 = "6sZj0HI9tCcGuzC9W/nkHvNLAjOo1G/jjnNluChOGMwn75Po6g5nGYASxQUJeSQHLng1SpovGjQr1f4xz1PqQw==";
       };
     };
     "format-0.2.2" = {
@@ -24523,6 +25225,15 @@ let
         sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
       };
     };
+    "fs-exists-cached-1.0.0" = {
+      name = "fs-exists-cached";
+      packageName = "fs-exists-cached";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz";
+        sha1 = "cf25554ca050dc49ae6656b41de42258989dcbce";
+      };
+    };
     "fs-exists-sync-0.1.0" = {
       name = "fs-exists-sync";
       packageName = "fs-exists-sync";
@@ -24676,13 +25387,13 @@ let
         sha1 = "0b7815fc3201c6a69e14db98ce098c16935259eb";
       };
     };
-    "fs-monkey-1.0.1" = {
+    "fs-monkey-1.0.3" = {
       name = "fs-monkey";
       packageName = "fs-monkey";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.1.tgz";
-        sha512 = "fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA==";
+        url = "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz";
+        sha512 = "cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==";
       };
     };
     "fs-routes-2.0.0" = {
@@ -24766,15 +25477,6 @@ let
         sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
       };
     };
-    "fsevents-2.2.1" = {
-      name = "fsevents";
-      packageName = "fsevents";
-      version = "2.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz";
-        sha512 = "bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==";
-      };
-    };
     "fsevents-2.3.2" = {
       name = "fsevents";
       packageName = "fsevents";
@@ -24901,6 +25603,42 @@ let
         sha512 = "Ces2bm+LNuXehkvmN1/Z+oEDkI/jHBp9xdyBtBy7hcgvF18/pv/D8F6A6kQgNkMZsnBgLEv+VvdDxyqkfkYycw==";
       };
     };
+    "galactus-0.2.1" = {
+      name = "galactus";
+      packageName = "galactus";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/galactus/-/galactus-0.2.1.tgz";
+        sha1 = "cbed2d20a40c1f5679a35908e2b9415733e78db9";
+      };
+    };
+    "gatsby-core-utils-2.2.0" = {
+      name = "gatsby-core-utils";
+      packageName = "gatsby-core-utils";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.2.0.tgz";
+        sha512 = "7T6aVJAj0u/VUg+zKOLuxyZLS/8KDQcDeEFCkKY0d7Pd4wV/QqKRLljr0TRVkivRZHXyWQI9fM3ox5DzfkHdCQ==";
+      };
+    };
+    "gatsby-recipes-0.13.0" = {
+      name = "gatsby-recipes";
+      packageName = "gatsby-recipes";
+      version = "0.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.13.0.tgz";
+        sha512 = "ni3J7wu45XfktDyxjL42zgjRzDqGQZX4/l541P5UbcAjdPAQJBP3qUgyPt2qhtenPYP/iZdbutXKxKjfkckcsQ==";
+      };
+    };
+    "gatsby-telemetry-2.2.0" = {
+      name = "gatsby-telemetry";
+      packageName = "gatsby-telemetry";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.2.0.tgz";
+        sha512 = "Zx/MP+By8QHgm2fikfq6egmcrwREsWAg2wfqTo0CRax5WUQQWl57zX3b0bIJ+k0sFCvU4XuxP0XrytvzxkVViQ==";
+      };
+    };
     "gauge-1.2.7" = {
       name = "gauge";
       packageName = "gauge";
@@ -24919,13 +25657,13 @@ let
         sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
       };
     };
-    "gaxios-4.1.0" = {
+    "gaxios-4.2.0" = {
       name = "gaxios";
       packageName = "gaxios";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gaxios/-/gaxios-4.1.0.tgz";
-        sha512 = "vb0to8xzGnA2qcgywAjtshOKKVDf2eQhJoiL6fHhgW5tVN7wNk7egnYIO9zotfn3lQ3De1VPdf7V5/BWfCtCmg==";
+        url = "https://registry.npmjs.org/gaxios/-/gaxios-4.2.0.tgz";
+        sha512 = "Ms7fNifGv0XVU+6eIyL9LB7RVESeML9+cMvkwGS70xyD6w2Z80wl6RiqiJ9k1KFlJCUTQqFFc8tXmPQfSKUe8g==";
       };
     };
     "gaze-1.1.3" = {
@@ -25000,24 +25738,6 @@ let
         sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
       };
     };
-    "generic-names-2.0.1" = {
-      name = "generic-names";
-      packageName = "generic-names";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz";
-        sha512 = "kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==";
-      };
-    };
-    "genfun-5.0.0" = {
-      name = "genfun";
-      packageName = "genfun";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz";
-        sha512 = "KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==";
-      };
-    };
     "gensync-1.0.0-beta.2" = {
       name = "gensync";
       packageName = "gensync";
@@ -25081,6 +25801,15 @@ let
         sha1 = "ead774abee72e20409433a066366023dd6887a41";
       };
     };
+    "get-installed-path-2.1.1" = {
+      name = "get-installed-path";
+      packageName = "get-installed-path";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-installed-path/-/get-installed-path-2.1.1.tgz";
+        sha512 = "Qkn9eq6tW5/q9BDVdMpB8tOHljX9OSP0jRC5TRNVA4qRc839t4g8KQaR8t0Uv0EFVL0MlyG7m/ofjEgAROtYsA==";
+      };
+    };
     "get-intrinsic-1.1.1" = {
       name = "get-intrinsic";
       packageName = "get-intrinsic";
@@ -25099,6 +25828,15 @@ let
         sha512 = "I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==";
       };
     };
+    "get-package-info-1.0.0" = {
+      name = "get-package-info";
+      packageName = "get-package-info";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz";
+        sha1 = "6432796563e28113cd9474dbbd00052985a4999c";
+      };
+    };
     "get-package-type-0.1.0" = {
       name = "get-package-type";
       packageName = "get-package-type";
@@ -25126,15 +25864,6 @@ let
         sha1 = "dd7ce7de187c06c8bf353796ac71e099f0980ebc";
       };
     };
-    "get-port-4.2.0" = {
-      name = "get-port";
-      packageName = "get-port";
-      version = "4.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz";
-        sha512 = "/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==";
-      };
-    };
     "get-port-5.1.1" = {
       name = "get-port";
       packageName = "get-port";
@@ -25252,15 +25981,6 @@ let
         sha512 = "A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==";
       };
     };
-    "get-uri-2.0.4" = {
-      name = "get-uri";
-      packageName = "get-uri";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz";
-        sha512 = "v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==";
-      };
-    };
     "get-uri-3.0.2" = {
       name = "get-uri";
       packageName = "get-uri";
@@ -25279,13 +25999,13 @@ let
         sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
       };
     };
-    "getenv-0.7.0" = {
+    "getenv-1.0.0" = {
       name = "getenv";
       packageName = "getenv";
-      version = "0.7.0";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/getenv/-/getenv-0.7.0.tgz";
-        sha1 = "39b91838707e2086fd1cf6ef8777d1c93e14649e";
+        url = "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz";
+        sha512 = "7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==";
       };
     };
     "getmac-5.17.0" = {
@@ -25387,22 +26107,13 @@ let
         sha1 = "c57d1145eec16465ab9bfbdf575262b1691624d6";
       };
     };
-    "git-parse-1.0.4" = {
-      name = "git-parse";
-      packageName = "git-parse";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/git-parse/-/git-parse-1.0.4.tgz";
-        sha512 = "NSC71SqG6jN0XYPbib8t/mgguVLddw+xvkkLv2EsCFvHfsZjO+ZqMcGoGHHMqfhZllCDDAkOwZESkZEmICj9ZA==";
-      };
-    };
-    "git-raw-commits-2.0.0" = {
+    "git-raw-commits-2.0.10" = {
       name = "git-raw-commits";
       packageName = "git-raw-commits";
-      version = "2.0.0";
+      version = "2.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz";
-        sha512 = "w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==";
+        url = "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz";
+        sha512 = "sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==";
       };
     };
     "git-remote-origin-url-2.0.0" = {
@@ -25432,22 +26143,13 @@ let
         sha512 = "8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==";
       };
     };
-    "git-rev-sync-2.1.0" = {
-      name = "git-rev-sync";
-      packageName = "git-rev-sync";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/git-rev-sync/-/git-rev-sync-2.1.0.tgz";
-        sha512 = "qZWv4D3GBm9sHEq5Jvc2rGuwQbz52mJoNAhe/zZS+rlwft7n8BGAG0QCgXt6m+jxn82IwlpOT3UXY81LkFJufA==";
-      };
-    };
-    "git-semver-tags-2.0.3" = {
+    "git-semver-tags-4.1.1" = {
       name = "git-semver-tags";
       packageName = "git-semver-tags";
-      version = "2.0.3";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz";
-        sha512 = "tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==";
+        url = "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz";
+        sha512 = "OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==";
       };
     };
     "git-sha1-0.1.2" = {
@@ -25486,15 +26188,6 @@ let
         sha512 = "kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ==";
       };
     };
-    "git-url-parse-11.4.3" = {
-      name = "git-url-parse";
-      packageName = "git-url-parse";
-      version = "11.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.4.3.tgz";
-        sha512 = "LZTTk0nqJnKN48YRtOpR8H5SEfp1oM2tls90NuZmBxN95PnCvmuXGzqQ4QmVirBgKx2KPYfPGteX3/raWjKenQ==";
-      };
-    };
     "git-url-parse-11.4.4" = {
       name = "git-url-parse";
       packageName = "git-url-parse";
@@ -25621,15 +26314,6 @@ let
         sha512 = "vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==";
       };
     };
-    "glob-7.1.5" = {
-      name = "glob";
-      packageName = "glob";
-      version = "7.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz";
-        sha512 = "J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==";
-      };
-    };
     "glob-7.1.6" = {
       name = "glob";
       packageName = "glob";
@@ -25666,13 +26350,13 @@ let
         sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
       };
     };
-    "glob-parent-5.1.1" = {
+    "glob-parent-5.1.2" = {
       name = "glob-parent";
       packageName = "glob-parent";
-      version = "5.1.1";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
       };
     };
     "glob-slash-1.0.0" = {
@@ -25738,13 +26422,13 @@ let
         sha512 = "wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==";
       };
     };
-    "global-agent-2.1.12" = {
+    "global-agent-2.2.0" = {
       name = "global-agent";
       packageName = "global-agent";
-      version = "2.1.12";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz";
-        sha512 = "caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==";
+        url = "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz";
+        sha512 = "+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==";
       };
     };
     "global-cache-dir-1.0.1" = {
@@ -25756,6 +26440,15 @@ let
         sha512 = "wYGh6O3Xkx1LsMXQpObr/uu3PsFpbWhpbslgn9Xq52rbDZ6YOwJcQtU5R4lSEQgCDtXLItV9EH5X1F/VnBTAlw==";
       };
     };
+    "global-cache-dir-2.0.0" = {
+      name = "global-cache-dir";
+      packageName = "global-cache-dir";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global-cache-dir/-/global-cache-dir-2.0.0.tgz";
+        sha512 = "30pvU3e8muclEhc9tt+jRMaywOS3QfNdURflJ5Zv0bohjhcVQpBe5bwRHghGSJORLOKW81/n+3iJvHRHs+/S1Q==";
+      };
+    };
     "global-dirs-0.1.1" = {
       name = "global-dirs";
       packageName = "global-dirs";
@@ -25883,6 +26576,15 @@ let
         sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
       };
     };
+    "globals-13.7.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "13.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-13.7.0.tgz";
+        sha512 = "Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==";
+      };
+    };
     "globals-9.18.0" = {
       name = "globals";
       packageName = "globals";
@@ -25892,13 +26594,13 @@ let
         sha512 = "S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==";
       };
     };
-    "globalthis-1.0.1" = {
+    "globalthis-1.0.2" = {
       name = "globalthis";
       packageName = "globalthis";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz";
-        sha512 = "mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==";
+        url = "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz";
+        sha512 = "ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==";
       };
     };
     "globalyzer-0.1.4" = {
@@ -25928,13 +26630,13 @@ let
         sha512 = "iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==";
       };
     };
-    "globby-11.0.2" = {
+    "globby-11.0.3" = {
       name = "globby";
       packageName = "globby";
-      version = "11.0.2";
+      version = "11.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz";
-        sha512 = "2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==";
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz";
+        sha512 = "ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==";
       };
     };
     "globby-4.1.0" = {
@@ -26027,6 +26729,15 @@ let
         sha1 = "2edeeb958084d0f8ea7988e5d995b1c7dfc14777";
       };
     };
+    "goldengate-10.0.3" = {
+      name = "goldengate";
+      packageName = "goldengate";
+      version = "10.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/goldengate/-/goldengate-10.0.3.tgz";
+        sha512 = "zNvkjnJQWbFWtK7or4CtX0WMy2n5AfMVnob5ipf+AznwLxKX8KyqY9W4bzYpVh6Xjm9N21ZUbubsPheV3mA4qQ==";
+      };
+    };
     "gonzales-pe-4.3.0" = {
       name = "gonzales-pe";
       packageName = "gonzales-pe";
@@ -26054,6 +26765,15 @@ let
         sha512 = "Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==";
       };
     };
+    "google-auth-library-7.0.3" = {
+      name = "google-auth-library";
+      packageName = "google-auth-library";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.0.3.tgz";
+        sha512 = "6wJNYqY1QUr5I2lWaUkkzOT2b9OCNhNQrdFOt/bsBbGb7T7NCdEvrBsXraUm+KTUGk2xGlQ7m9RgUd4Llcw8NQ==";
+      };
+    };
     "google-closure-compiler-js-20170910.0.1" = {
       name = "google-closure-compiler-js";
       packageName = "google-closure-compiler-js";
@@ -26063,13 +26783,13 @@ let
         sha512 = "Vric7QFWxzHFxITZ10bmlG1H/5rhODb7hJuWyKWMD8GflpQzRmbMVqkFp3fKvN+U9tPwZItGVhkiOR+84PX3ew==";
       };
     };
-    "google-gax-2.10.2" = {
+    "google-gax-2.11.2" = {
       name = "google-gax";
       packageName = "google-gax";
-      version = "2.10.2";
+      version = "2.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/google-gax/-/google-gax-2.10.2.tgz";
-        sha512 = "adECud3d5jsk24SvPkKQG3Kw1szpy4We0OqKfsdBHKWlSWhdY4hVQEOG7iBBp469Zm327fzz7NZz8BMLOYZJHg==";
+        url = "https://registry.npmjs.org/google-gax/-/google-gax-2.11.2.tgz";
+        sha512 = "PNqXv7Oi5XBMgoMWVxLZHUidfMv7cPHrDSDXqLyEd6kY6pqFnVKC8jt2T1df4JPSc2+VLPdeo6L7X9mbdQG8Xw==";
       };
     };
     "google-p12-pem-3.0.3" = {
@@ -26135,13 +26855,13 @@ let
         sha512 = "yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==";
       };
     };
-    "got-11.8.1" = {
+    "got-11.8.2" = {
       name = "got";
       packageName = "got";
-      version = "11.8.1";
+      version = "11.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-11.8.1.tgz";
-        sha512 = "9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==";
+        url = "https://registry.npmjs.org/got/-/got-11.8.2.tgz";
+        sha512 = "D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==";
       };
     };
     "got-3.3.1" = {
@@ -26216,15 +26936,6 @@ let
         sha512 = "J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==";
       };
     };
-    "graceful-fs-4.1.15" = {
-      name = "graceful-fs";
-      packageName = "graceful-fs";
-      version = "4.1.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz";
-        sha512 = "6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==";
-      };
-    };
     "graceful-fs-4.2.6" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
@@ -26315,13 +27026,13 @@ let
         sha512 = "OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==";
       };
     };
-    "graphql-anywhere-4.2.7" = {
-      name = "graphql-anywhere";
-      packageName = "graphql-anywhere";
-      version = "4.2.7";
+    "graphql-compose-7.25.1" = {
+      name = "graphql-compose";
+      packageName = "graphql-compose";
+      version = "7.25.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-anywhere/-/graphql-anywhere-4.2.7.tgz";
-        sha512 = "fJHvVywWVWjiHuPIMs16Nfjf4zdQUwSO1LKycwBJCWIPeoeQ8LqXK2BgYoZAHkhKEFktZZeYyzS4o/uIUG0z5A==";
+        url = "https://registry.npmjs.org/graphql-compose/-/graphql-compose-7.25.1.tgz";
+        sha512 = "TPXTe1BoQkMjp/MH93yA0SQo8PiXxJAv6Eo6K/+kpJELM9l2jZnd5PCduweuXFcKv+nH973wn/VYzYKDMQ9YoQ==";
       };
     };
     "graphql-config-3.0.3" = {
@@ -26333,40 +27044,31 @@ let
         sha512 = "MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g==";
       };
     };
-    "graphql-extensions-0.12.8" = {
+    "graphql-extensions-0.13.0" = {
       name = "graphql-extensions";
       packageName = "graphql-extensions";
-      version = "0.12.8";
+      version = "0.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.8.tgz";
-        sha512 = "xjsSaB6yKt9jarFNNdivl2VOx52WySYhxPgf8Y16g6GKZyAzBoIFiwyGw5PJDlOSUa6cpmzn6o7z8fVMbSAbkg==";
+        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.13.0.tgz";
+        sha512 = "Bb7E97nvfX4gtrIdZ/i5YFlqOd6MGzrw8ED+t4wQVraYje6NQ+8P8MHMOV2WZLfbW8zsNTx8NdnnlbsdH5siag==";
       };
     };
-    "graphql-subscriptions-1.2.0" = {
+    "graphql-subscriptions-1.2.1" = {
       name = "graphql-subscriptions";
       packageName = "graphql-subscriptions";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.0.tgz";
-        sha512 = "uXvp729fztqwa7HFUFaAqKwNMwwOfsvu4HwOu7/35Cd44bNrMPCn97mNGN0ybuuZE36CPXBTaW/4U/xyOS4D9w==";
-      };
-    };
-    "graphql-tag-2.11.0" = {
-      name = "graphql-tag";
-      packageName = "graphql-tag";
-      version = "2.11.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz";
-        sha512 = "VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==";
+        url = "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz";
+        sha512 = "95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==";
       };
     };
-    "graphql-tag-2.12.0" = {
+    "graphql-tag-2.12.3" = {
       name = "graphql-tag";
       packageName = "graphql-tag";
-      version = "2.12.0";
+      version = "2.12.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.0.tgz";
-        sha512 = "iK040pFYpQpHfqF5UJOlYu2XEw6wx56aiyKJP1zqhxabGssqfbTIqz6U++cBwx/Izad0JNq6IsWvrL+p6d1GOA==";
+        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.3.tgz";
+        sha512 = "5wJMjSvj30yzdciEuk9dPuUBUR56AqDi3xncoYQl1i42pGdSqOJrJsdb/rz5BDoy+qoGvQwABcBeF0xXY3TrKw==";
       };
     };
     "graphql-tools-3.0.0" = {
@@ -26405,22 +27107,13 @@ let
         sha512 = "zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==";
       };
     };
-    "graphql-upload-8.1.0" = {
-      name = "graphql-upload";
-      packageName = "graphql-upload";
-      version = "8.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.1.0.tgz";
-        sha512 = "U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q==";
-      };
-    };
-    "graphql-ws-4.1.0" = {
+    "graphql-ws-4.2.2" = {
       name = "graphql-ws";
       packageName = "graphql-ws";
-      version = "4.1.0";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.1.0.tgz";
-        sha512 = "DxJP1y2YzCqVLy7DrQN0iuR2l48vMOBWukX2d/J9aN2o5x9un5psIIq/2UFRh91UGARmfvPH86y1p4qbC1dITg==";
+        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.2.2.tgz";
+        sha512 = "b6TLtWLAmKunD72muL9EeItRGpio9+V3Cx4zJsBkRA+3wxzTWXDvQr9/3qSwJ3D/2abz0ys2KHTM6lB1uH7KIQ==";
       };
     };
     "gray-matter-2.1.1" = {
@@ -26639,13 +27332,13 @@ let
         sha512 = "9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==";
       };
     };
-    "handlebars-4.7.6" = {
+    "handlebars-4.7.7" = {
       name = "handlebars";
       packageName = "handlebars";
-      version = "4.7.6";
+      version = "4.7.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz";
-        sha512 = "1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==";
+        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz";
+        sha512 = "aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==";
       };
     };
     "har-schema-1.0.5" = {
@@ -26684,6 +27377,15 @@ let
         sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
       };
     };
+    "har-validator-5.1.3" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "5.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
+        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+      };
+    };
     "har-validator-5.1.5" = {
       name = "har-validator";
       packageName = "har-validator";
@@ -26738,6 +27440,15 @@ let
         sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
       };
     };
+    "has-bigints-1.0.1" = {
+      name = "has-bigints";
+      packageName = "has-bigints";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz";
+        sha512 = "LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==";
+      };
+    };
     "has-binary-data-0.1.1" = {
       name = "has-binary-data";
       packageName = "has-binary-data";
@@ -26864,13 +27575,13 @@ let
         sha512 = "3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==";
       };
     };
-    "has-symbols-1.0.1" = {
+    "has-symbols-1.0.2" = {
       name = "has-symbols";
       packageName = "has-symbols";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
       };
     };
     "has-to-string-tag-x-1.4.1" = {
@@ -27089,15 +27800,6 @@ let
         sha512 = "P3uxm+8bnwcfAS/XpGie9wMmQXAQqsYhgQQKRwmWH/V6chiq0lmTy8KjQRJmYjusdMtNKGCUksdILSZy1suSpQ==";
       };
     };
-    "hast-util-to-html-7.1.2" = {
-      name = "hast-util-to-html";
-      packageName = "hast-util-to-html";
-      version = "7.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-7.1.2.tgz";
-        sha512 = "pu73bvORzdF6XZgwl9eID/0RjBb/jtRfoGRRSykpR1+o9rCdiAHpgkSukZsQBRlIqMg6ylAcd7F0F7myJUb09Q==";
-      };
-    };
     "hast-util-to-nlcst-1.2.8" = {
       name = "hast-util-to-nlcst";
       packageName = "hast-util-to-nlcst";
@@ -27161,6 +27863,15 @@ let
         sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4";
       };
     };
+    "hcl-to-json-0.1.1" = {
+      name = "hcl-to-json";
+      packageName = "hcl-to-json";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hcl-to-json/-/hcl-to-json-0.1.1.tgz";
+        sha512 = "sj1RPsdgX/ilBGZGnyjbSHQbRe20hyA6VDXYBGJedHSCdwSWkr/7tr85N7FGeM7KvBjIQX7Gl897bo0Ug73Z/A==";
+      };
+    };
     "he-0.5.0" = {
       name = "he";
       packageName = "he";
@@ -27179,15 +27890,6 @@ let
         sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
       };
     };
-    "header-case-2.0.4" = {
-      name = "header-case";
-      packageName = "header-case";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz";
-        sha512 = "H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==";
-      };
-    };
     "headless-0.1.7" = {
       name = "headless";
       packageName = "headless";
@@ -27269,13 +27971,22 @@ let
         sha1 = "b86ce808598e8a9d1892c571f3cedd86fc9f0653";
       };
     };
-    "highlight.js-10.6.0" = {
+    "hicat-0.8.0" = {
+      name = "hicat";
+      packageName = "hicat";
+      version = "0.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hicat/-/hicat-0.8.0.tgz";
+        sha512 = "om8L9O5XwqeSdwl5NtHgrzK3wcF4fT9T4gb/NktoH8EyoZipas/tvUZLV48xT7fQfMYr9qvb0WEutqdf0LWSqA==";
+      };
+    };
+    "highlight.js-10.7.2" = {
       name = "highlight.js";
       packageName = "highlight.js";
-      version = "10.6.0";
+      version = "10.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.6.0.tgz";
-        sha512 = "8mlRcn5vk/r4+QcqerapwBYTe+iPL5ih6xrNylxrnBdHQiijDETfXX7VIxC3UiCRiINBJfANBAsPzAvRQj8RpQ==";
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.2.tgz";
+        sha512 = "oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg==";
       };
     };
     "highlight.js-8.2.0" = {
@@ -27422,6 +28133,24 @@ let
         sha512 = "aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==";
       };
     };
+    "hosted-git-info-4.0.2" = {
+      name = "hosted-git-info";
+      packageName = "hosted-git-info";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz";
+        sha512 = "c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==";
+      };
+    };
+    "hot-formula-parser-4.0.0" = {
+      name = "hot-formula-parser";
+      packageName = "hot-formula-parser";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hot-formula-parser/-/hot-formula-parser-4.0.0.tgz";
+        sha512 = "diG1UvuQ3HxtfezVUIpvndk/bVkqZJ9Rfv10MdVF7pJEj8P2Jd4iCZSMJCN3lDhnLegaVlfSYSA6+szYNFQUKg==";
+      };
+    };
     "hot-shots-6.8.7" = {
       name = "hot-shots";
       packageName = "hot-shots";
@@ -27467,15 +28196,6 @@ let
         sha1 = "c1ce7a3168c8c6614033a4b5f7877f3b225f9c38";
       };
     };
-    "html-comment-regex-1.1.2" = {
-      name = "html-comment-regex";
-      packageName = "html-comment-regex";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
-        sha512 = "P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==";
-      };
-    };
     "html-encoding-sniffer-1.0.2" = {
       name = "html-encoding-sniffer";
       packageName = "html-encoding-sniffer";
@@ -27647,13 +28367,13 @@ let
         sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==";
       };
     };
-    "htmlparser2-6.0.0" = {
+    "htmlparser2-6.0.1" = {
       name = "htmlparser2";
       packageName = "htmlparser2";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.0.tgz";
-        sha512 = "numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw==";
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.1.tgz";
+        sha512 = "GDKPd+vk4jvSuvCbyuzx/unmXkk090Azec7LovXP8as1Hn8q9p3hbjmDGbUqqhknw0ajwit6LiiWqfiTUPMK7w==";
       };
     };
     "http-auth-2.0.7" = {
@@ -27828,13 +28548,13 @@ let
         sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
       };
     };
-    "http-proxy-middleware-1.0.6" = {
+    "http-proxy-middleware-1.1.0" = {
       name = "http-proxy-middleware";
       packageName = "http-proxy-middleware";
-      version = "1.0.6";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.0.6.tgz";
-        sha512 = "NyL6ZB6cVni7pl+/IT2W0ni5ME00xR0sN27AQZZrpKn1b+qRh+mLbBxIq9Cq1oGfmTc7BUq4HB77mxwCaxAYNg==";
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.1.0.tgz";
+        sha512 = "OnjU5vyVgcZVe2AjLJyMrk8YLNOC2lspCHirB5ldM+B/dwEfZ5bgVTrFyzE9R7xRWAP/i/FXtvIqKjTNEZBhBg==";
       };
     };
     "http-signature-0.11.0" = {
@@ -27864,6 +28584,15 @@ let
         sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
       };
     };
+    "http-signature-1.3.1" = {
+      name = "http-signature";
+      packageName = "http-signature";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.3.1.tgz";
+        sha512 = "Y29YKEc8MQsjch/VzkUVJ+2MXd9WcR42fK5u36CZf4G8bXw2DXMTWuESiB0R6m59JAWxlPPw5/Fri/t/AyyueA==";
+      };
+    };
     "http-signature-1.3.5" = {
       name = "http-signature";
       packageName = "http-signature";
@@ -27891,13 +28620,13 @@ let
         sha512 = "nUxLymWQ9pzkzTmir24p2RtsgruLmhje7lH3hLX1IpwvyTg77fW+1brenPPP3USAR+rQ36p5sTA/x7sjCJVkAA==";
       };
     };
-    "http2-wrapper-1.0.0-beta.5.2" = {
+    "http2-wrapper-1.0.3" = {
       name = "http2-wrapper";
       packageName = "http2-wrapper";
-      version = "1.0.0-beta.5.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz";
-        sha512 = "xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==";
+        url = "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz";
+        sha512 = "V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==";
       };
     };
     "http_ece-1.1.0" = {
@@ -27945,15 +28674,6 @@ let
         sha512 = "+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==";
       };
     };
-    "https-proxy-agent-4.0.0" = {
-      name = "https-proxy-agent";
-      packageName = "https-proxy-agent";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz";
-        sha512 = "zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==";
-      };
-    };
     "https-proxy-agent-5.0.0" = {
       name = "https-proxy-agent";
       packageName = "https-proxy-agent";
@@ -28170,15 +28890,6 @@ let
         sha512 = "snvtAQRforYUI+C2+45L2LBJy/0/uQUffxv8/uwiS98fSUoXHVrFPClgzWZWxT0drwkLHJRm9inZcYzTR42GLA==";
       };
     };
-    "idx-2.4.0" = {
-      name = "idx";
-      packageName = "idx";
-      version = "2.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/idx/-/idx-2.4.0.tgz";
-        sha512 = "FnV6fXF1/cXvam/OXAz98v3GbhQVws+ecMEVLxyQ1aXgK2nooTkTDqex5Lks84wiCsS1So6QtwwCYT6H+vIKkw==";
-      };
-    };
     "ieee754-1.1.13" = {
       name = "ieee754";
       packageName = "ieee754";
@@ -28332,13 +29043,13 @@ let
         sha512 = "yM7jo9+hvYgvdCQdqvhCNRRio0SCXc8xDPzA25SvKWa7b1WVPjLwQs1VYU5JPXjcJPTqAa5NP5dqpORGYBQ2AA==";
       };
     };
-    "immer-7.0.9" = {
+    "immer-8.0.1" = {
       name = "immer";
       packageName = "immer";
-      version = "7.0.9";
+      version = "8.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/immer/-/immer-7.0.9.tgz";
-        sha512 = "Vs/gxoM4DqNAYR7pugIxi0Xc8XAun/uy7AQu4fLLqaTBHxjOP9pJ266Q9MWA/ly4z6rAFZbvViOtihxUZ7O28A==";
+        url = "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz";
+        sha512 = "aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==";
       };
     };
     "import-cwd-3.0.0" = {
@@ -28530,15 +29241,6 @@ let
         sha1 = "45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216";
       };
     };
-    "inflected-2.1.0" = {
-      name = "inflected";
-      packageName = "inflected";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz";
-        sha512 = "hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==";
-      };
-    };
     "inflight-1.0.6" = {
       name = "inflight";
       packageName = "inflight";
@@ -28629,13 +29331,13 @@ let
         sha512 = "zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==";
       };
     };
-    "ink-2.7.1" = {
-      name = "ink";
-      packageName = "ink";
-      version = "2.7.1";
+    "init-package-json-2.0.2" = {
+      name = "init-package-json";
+      packageName = "init-package-json";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink/-/ink-2.7.1.tgz";
-        sha512 = "s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==";
+        url = "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.2.tgz";
+        sha512 = "PO64kVeArePvhX7Ff0jVWkpnE1DfGRvaWcStYrPugcJz9twQGYibagKJuIMHCX7ENcp0M6LJlcjLBuLD5KeJMg==";
       };
     };
     "ink-3.0.8" = {
@@ -28647,31 +29349,13 @@ let
         sha512 = "ubMFylXYaG4IkXQVhPautbhV/p6Lo0GlvAMI/jh8cGJQ39yeznJbaTTJP2CqZXezA4GOHzalpwCWqux/NEY38w==";
       };
     };
-    "ink-confirm-input-2.0.0" = {
-      name = "ink-confirm-input";
-      packageName = "ink-confirm-input";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ink-confirm-input/-/ink-confirm-input-2.0.0.tgz";
-        sha512 = "YCd7a9XW0DIIbOhF3XiLo3WF86mOart9qI1qN56wT5IDJxU+j8BanEZh5/QXoazyIPSv1iXlHPIlRB5cbZIMIA==";
-      };
-    };
-    "ink-spinner-3.1.0" = {
+    "ink-spinner-4.0.1" = {
       name = "ink-spinner";
       packageName = "ink-spinner";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ink-spinner/-/ink-spinner-3.1.0.tgz";
-        sha512 = "sPqmE4qeJ43vJFk9DGLd0wIqhMBAr3129ZqHPt7b847fVl+YTZ3g96khI82Db+FYE7v/Fc5B3lp4ZNtJfqpRUg==";
-      };
-    };
-    "ink-text-input-3.3.0" = {
-      name = "ink-text-input";
-      packageName = "ink-text-input";
-      version = "3.3.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink-text-input/-/ink-text-input-3.3.0.tgz";
-        sha512 = "gO4wrOf2ie3YuEARTIwGlw37lMjFn3Gk6CKIDrMlHb46WFMagZU7DplohjM24zynlqfnXA5UDEIfC2NBcvD8kg==";
+        url = "https://registry.npmjs.org/ink-spinner/-/ink-spinner-4.0.1.tgz";
+        sha512 = "2eYtzzUPb22Z0Cn2bGvE4BteYjcqDhgrHnCzGJM81EHXXlyNU7aYfucPgZs2CZPy0LWz/5hwoecFhd0mj1hrbw==";
       };
     };
     "ink-text-input-4.0.1" = {
@@ -28692,6 +29376,15 @@ let
         sha1 = "f9393471c18a79d1724f863fa38b586370ade2a5";
       };
     };
+    "inline-style-parser-0.1.1" = {
+      name = "inline-style-parser";
+      packageName = "inline-style-parser";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz";
+        sha512 = "7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==";
+      };
+    };
     "innertext-1.0.3" = {
       name = "innertext";
       packageName = "innertext";
@@ -28800,6 +29493,15 @@ let
         sha512 = "JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==";
       };
     };
+    "inquirer-8.0.0" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-8.0.0.tgz";
+        sha512 = "ON8pEJPPCdyjxj+cxsYRe6XfCJepTxANdNnTebsTuQgXpRyZRRT9t4dJwjRubgmvn20CLSEnozRUayXyM9VTXA==";
+      };
+    };
     "inquirer-autocomplete-prompt-1.3.0" = {
       name = "inquirer-autocomplete-prompt";
       packageName = "inquirer-autocomplete-prompt";
@@ -28953,22 +29655,13 @@ let
         sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==";
       };
     };
-    "internal-slot-1.0.3" = {
-      name = "internal-slot";
-      packageName = "internal-slot";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz";
-        sha512 = "O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==";
-      };
-    };
-    "internmap-1.0.0" = {
+    "internmap-1.0.1" = {
       name = "internmap";
       packageName = "internmap";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/internmap/-/internmap-1.0.0.tgz";
-        sha512 = "SdoDWwNOTE2n4JWUsLn4KXZGuZPjPF9yyOGc8bnfWnBQh7BD/l80rzSznKc/r4Y0aQ7z3RTk9X+tV4tHBpu+dA==";
+        url = "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz";
+        sha512 = "lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==";
       };
     };
     "interpret-1.1.0" = {
@@ -29034,6 +29727,15 @@ let
         sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
       };
     };
+    "inversify-5.0.5" = {
+      name = "inversify";
+      packageName = "inversify";
+      version = "5.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inversify/-/inversify-5.0.5.tgz";
+        sha512 = "60QsfPz8NAU/GZqXu8hJ+BhNf/C/c+Hp0eDc6XMIJTxBiP36AQyyQKpBkOVTLWBFDQWYVHpbbEuIsHu9dLuJDA==";
+      };
+    };
     "invert-kv-1.0.0" = {
       name = "invert-kv";
       packageName = "invert-kv";
@@ -29061,6 +29763,24 @@ let
         sha512 = "CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==";
       };
     };
+    "invoices-1.1.6" = {
+      name = "invoices";
+      packageName = "invoices";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invoices/-/invoices-1.1.6.tgz";
+        sha512 = "/rNd9R/qcq+4QakROCQGnOJbiQ9BKwtOVF+OWu+3pYVYgPydnAMA++VCcKxZYFCGDC70Ee+9oUvIlXI8UQoiqQ==";
+      };
+    };
+    "invoices-1.1.7" = {
+      name = "invoices";
+      packageName = "invoices";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invoices/-/invoices-1.1.7.tgz";
+        sha512 = "AMCHpf/7sJOjeRbTgCLLvhH41ZnUv0D809ZFJRhR2dGOfp8GxJHzfnNqtgYGxQiW0+dVK2ooBVyR+dqoEQs6mw==";
+      };
+    };
     "iota-array-1.0.0" = {
       name = "iota-array";
       packageName = "iota-array";
@@ -29529,13 +30249,13 @@ let
         sha1 = "f04374d4eee5310e9a8e113bf1495411e46176a1";
       };
     };
-    "is-docker-2.1.1" = {
+    "is-docker-2.2.0" = {
       name = "is-docker";
       packageName = "is-docker";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz";
-        sha512 = "ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==";
+        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.2.0.tgz";
+        sha512 = "K4GwB4i/HzhAzwP/XSlspzRdFTI9N8OxJOyOU7Y5Rz+p+WBokXWVWblaJeBkggthmoSV0OoGTH5thJNvplpkvQ==";
       };
     };
     "is-dotfile-1.0.3" = {
@@ -29709,6 +30429,15 @@ let
         sha1 = "6ca8b07b99c77998025900e555ced8ed80879a83";
       };
     };
+    "is-hex-prefixed-1.0.0" = {
+      name = "is-hex-prefixed";
+      packageName = "is-hex-prefixed";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz";
+        sha1 = "7d8d37e6ad77e5d127148913c573e082d777f554";
+      };
+    };
     "is-hexadecimal-1.0.4" = {
       name = "is-hexadecimal";
       packageName = "is-hexadecimal";
@@ -30024,13 +30753,13 @@ let
         sha512 = "wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==";
       };
     };
-    "is-path-inside-3.0.2" = {
+    "is-path-inside-3.0.3" = {
       name = "is-path-inside";
       packageName = "is-path-inside";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz";
-        sha512 = "/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==";
+        url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz";
+        sha512 = "Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==";
       };
     };
     "is-plain-obj-1.1.0" = {
@@ -30051,6 +30780,15 @@ let
         sha512 = "YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==";
       };
     };
+    "is-plain-obj-3.0.0" = {
+      name = "is-plain-obj";
+      packageName = "is-plain-obj";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz";
+        sha512 = "gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==";
+      };
+    };
     "is-plain-object-2.0.4" = {
       name = "is-plain-object";
       packageName = "is-plain-object";
@@ -30348,15 +31086,6 @@ let
         sha512 = "3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==";
       };
     };
-    "is-svg-3.0.0" = {
-      name = "is-svg";
-      packageName = "is-svg";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz";
-        sha512 = "gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==";
-      };
-    };
     "is-symbol-1.0.3" = {
       name = "is-symbol";
       packageName = "is-symbol";
@@ -30375,13 +31104,13 @@ let
         sha1 = "4e1aa0fb51bfbcb3e92688001397202c1775b66e";
       };
     };
-    "is-typed-array-1.1.4" = {
+    "is-typed-array-1.1.5" = {
       name = "is-typed-array";
       packageName = "is-typed-array";
-      version = "1.1.4";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.4.tgz";
-        sha512 = "ILaRgn4zaSrVNXNGtON6iFNotXW3hAPF3+0fB1usg2jFlWqo5fEDdmJkz0zBfoi7Dgskr8Khi2xZ8cXqZEfXNA==";
+        url = "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz";
+        sha512 = "S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -30411,6 +31140,15 @@ let
         sha512 = "mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==";
       };
     };
+    "is-unicode-supported-0.1.0" = {
+      name = "is-unicode-supported";
+      packageName = "is-unicode-supported";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz";
+        sha512 = "knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==";
+      };
+    };
     "is-url-1.2.4" = {
       name = "is-url";
       packageName = "is-url";
@@ -30483,13 +31221,13 @@ let
         sha512 = "pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==";
       };
     };
-    "is-what-3.12.0" = {
+    "is-what-3.14.1" = {
       name = "is-what";
       packageName = "is-what";
-      version = "3.12.0";
+      version = "3.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-what/-/is-what-3.12.0.tgz";
-        sha512 = "2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==";
+        url = "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz";
+        sha512 = "sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==";
       };
     };
     "is-whitespace-character-1.0.4" = {
@@ -30609,6 +31347,15 @@ let
         sha512 = "xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==";
       };
     };
+    "isbinaryfile-3.0.3" = {
+      name = "isbinaryfile";
+      packageName = "isbinaryfile";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz";
+        sha512 = "8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==";
+      };
+    };
     "isbinaryfile-4.0.6" = {
       name = "isbinaryfile";
       packageName = "isbinaryfile";
@@ -30654,6 +31401,15 @@ let
         sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
       };
     };
+    "isnumber-1.0.0" = {
+      name = "isnumber";
+      packageName = "isnumber";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isnumber/-/isnumber-1.0.0.tgz";
+        sha1 = "0e3f9759b581d99dd85086f0ec2a74909cfadd01";
+      };
+    };
     "isobject-2.1.0" = {
       name = "isobject";
       packageName = "isobject";
@@ -30690,15 +31446,6 @@ let
         sha1 = "611ae1acf14f5e81f729507472819fe9733558a9";
       };
     };
-    "isomorphic-form-data-2.0.0" = {
-      name = "isomorphic-form-data";
-      packageName = "isomorphic-form-data";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-2.0.0.tgz";
-        sha512 = "TYgVnXWeESVmQSg4GLVbalmQ+B4NPi/H4eWxqALKj63KsUrcu301YDjBqaOw3h+cbak7Na4Xyps3BiptHtxTfg==";
-      };
-    };
     "isomorphic-git-0.78.5" = {
       name = "isomorphic-git";
       packageName = "isomorphic-git";
@@ -30870,15 +31617,6 @@ let
         sha512 = "eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==";
       };
     };
-    "java-properties-1.0.2" = {
-      name = "java-properties";
-      packageName = "java-properties";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz";
-        sha512 = "qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==";
-      };
-    };
     "javascript-stringify-1.6.0" = {
       name = "javascript-stringify";
       packageName = "javascript-stringify";
@@ -30897,6 +31635,15 @@ let
         sha1 = "7a549bbd9ffe1585b0cd0a191e203055bee574b4";
       };
     };
+    "jest-diff-25.5.0" = {
+      name = "jest-diff";
+      packageName = "jest-diff";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz";
+        sha512 = "z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==";
+      };
+    };
     "jest-get-type-24.9.0" = {
       name = "jest-get-type";
       packageName = "jest-get-type";
@@ -30906,6 +31653,15 @@ let
         sha512 = "lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==";
       };
     };
+    "jest-get-type-25.2.6" = {
+      name = "jest-get-type";
+      packageName = "jest-get-type";
+      version = "25.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz";
+        sha512 = "DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==";
+      };
+    };
     "jest-haste-map-25.5.1" = {
       name = "jest-haste-map";
       packageName = "jest-haste-map";
@@ -30951,6 +31707,15 @@ let
         sha512 = "HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==";
       };
     };
+    "jest-validate-25.5.0" = {
+      name = "jest-validate";
+      packageName = "jest-validate";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz";
+        sha512 = "okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==";
+      };
+    };
     "jest-worker-25.5.0" = {
       name = "jest-worker";
       packageName = "jest-worker";
@@ -30969,15 +31734,6 @@ let
         sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==";
       };
     };
-    "jetpack-id-1.0.0" = {
-      name = "jetpack-id";
-      packageName = "jetpack-id";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jetpack-id/-/jetpack-id-1.0.0.tgz";
-        sha1 = "2cf9fbae46d8074fc16b7de0071c8efebca473a6";
-      };
-    };
     "jimp-0.12.1" = {
       name = "jimp";
       packageName = "jimp";
@@ -30987,13 +31743,13 @@ let
         sha512 = "0soPJif+yjmzmOF+4cF2hyhxUWWpXpQntsm2joJXFFoRcQiPzsG4dbLKYqYPT3Fc6PjZ8MaLtCkDqqckVSfmRw==";
       };
     };
-    "jitdb-2.0.7" = {
+    "jitdb-2.3.5" = {
       name = "jitdb";
       packageName = "jitdb";
-      version = "2.0.7";
+      version = "2.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jitdb/-/jitdb-2.0.7.tgz";
-        sha512 = "Ymkv6cQg6NUPXu6890NY4/xWgn08+YYz4gy9VMerzgC1jx5L38ggzfz6m2ylm0COoHE4Ni5QlxO43+lJoTGPuw==";
+        url = "https://registry.npmjs.org/jitdb/-/jitdb-2.3.5.tgz";
+        sha512 = "Z22GkEA2GJqnJZX3sIErn/v4rW4fyk/Vj2nOJfVXhCfgZkhrGzT0MVRF9RlE4pKmm010wfp09n9jLli5bpKQ7g==";
       };
     };
     "jju-1.4.0" = {
@@ -31041,6 +31797,15 @@ let
         sha512 = "O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA==";
       };
     };
+    "joi-17.4.0" = {
+      name = "joi";
+      packageName = "joi";
+      version = "17.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz";
+        sha512 = "F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==";
+      };
+    };
     "join-component-1.1.0" = {
       name = "join-component";
       packageName = "join-component";
@@ -31086,13 +31851,13 @@ let
         sha1 = "f6f9f099f9882bad84585c6b1004344d6fadb33c";
       };
     };
-    "jquery-3.5.1" = {
+    "jquery-3.6.0" = {
       name = "jquery";
       packageName = "jquery";
-      version = "3.5.1";
+      version = "3.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz";
-        sha512 = "XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==";
+        url = "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz";
+        sha512 = "JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==";
       };
     };
     "jquery-ui-1.12.1" = {
@@ -31104,13 +31869,13 @@ let
         sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
       };
     };
-    "jquery.terminal-2.21.0" = {
+    "jquery.terminal-2.22.0" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.21.0";
+      version = "2.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.21.0.tgz";
-        sha512 = "Cd2uediwjcWaKbag/+WtF25coudkPLnH7RSg8oKH80BsUiPi/3aQIVBTKVB7Gw3viGwN6VV3G3TsuvKBqPrKTg==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.22.0.tgz";
+        sha512 = "0VDAqWMrqIcI7Mduqkgw/SM9G8aTMJUx/Lu8rxHVPfn10wkHZmaVywczVQgQWRCSdGa+/hy/qZEdaVPPmLyplw==";
       };
     };
     "js-base64-2.6.4" = {
@@ -31158,13 +31923,13 @@ let
         sha512 = "pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==";
       };
     };
-    "js-select-0.6.0" = {
-      name = "js-select";
-      packageName = "js-select";
-      version = "0.6.0";
+    "js-sha3-0.8.0" = {
+      name = "js-sha3";
+      packageName = "js-sha3";
+      version = "0.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-select/-/js-select-0.6.0.tgz";
-        sha1 = "c284e22824d5927aec962dcdf247174aefb0d190";
+        url = "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz";
+        sha512 = "gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==";
       };
     };
     "js-string-escape-1.0.1" = {
@@ -31293,13 +32058,13 @@ let
         sha512 = "xYuhvQ7I9PDJIGBWev9xm0+SMSed3ZDBAmvVjbFR1ZRLAF+vlXcQu6cRI9uAlj81rzikElRVteehwV7DuX2ZmQ==";
       };
     };
-    "jscodeshift-0.10.0" = {
+    "jscodeshift-0.11.0" = {
       name = "jscodeshift";
       packageName = "jscodeshift";
-      version = "0.10.0";
+      version = "0.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.10.0.tgz";
-        sha512 = "xpH2FVSEepXoNr6+cPlPHzPzBY1W9bPulufhCHOShzk8+CTCzAOQKytuOXT0b/9PvmO4biRi0g/ZIylVew815w==";
+        url = "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.11.0.tgz";
+        sha512 = "SdRK2C7jjs4k/kT2mwtO07KJN9RnjxtKn03d9JVj6c3j9WwaLcFYsICYDnLAzY0hp+wG2nxl+Cm2jWLiNVYb8g==";
       };
     };
     "jsdom-11.12.0" = {
@@ -31338,13 +32103,13 @@ let
         sha512 = "fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==";
       };
     };
-    "jsdom-16.4.0" = {
+    "jsdom-16.5.2" = {
       name = "jsdom";
       packageName = "jsdom";
-      version = "16.4.0";
+      version = "16.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz";
-        sha512 = "lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==";
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.5.2.tgz";
+        sha512 = "JxNtPt9C1ut85boCbJmffaQ06NBnzkQY/MWO3YxPW8IWS38A26z+B1oBvA9LwKrytewdfymnhi4UNH3/RAgZrg==";
       };
     };
     "jsdom-7.2.2" = {
@@ -31383,49 +32148,49 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.20.1" = {
+    "jsii-1.27.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "1.20.1";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.20.1.tgz";
-        sha512 = "e4LS9u4QhhsqDN/JlK7JHDhYXhg3fiw+nq1xU5EeAtHQJvmM7CXTXhgDT9FjtnkWbnnjCOd0hgLcE8yIIZ8Lkw==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.27.0.tgz";
+        sha512 = "EP1NIeheeUw4WpGESkOK7Kb/bT9bBlOunlQuQb+KSMKYq+Zh8uWuFxzTYbt3pg/UdaVis5YD0jsdVgQFVU7ufA==";
       };
     };
-    "jsii-pacmak-1.20.1" = {
+    "jsii-pacmak-1.27.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.20.1";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.20.1.tgz";
-        sha512 = "mNViMzB+wqDKowjmcOMa4qLmkhZ4GAs2wOjNiHcWTN9ZtdyjG5BoRgJrKChlRYQfjRuE+EmqiHpZyH8IzPo8SQ==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.27.0.tgz";
+        sha512 = "K19kyUvFKpg6l5VaTkwFz4pgnrOR/vH69iqE6YWSJVY1i3S7dTA2mhG+dVbeB96MMnx7IUno0iKT3br/aWCtew==";
       };
     };
-    "jsii-reflect-1.20.1" = {
+    "jsii-reflect-1.27.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.20.1";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.20.1.tgz";
-        sha512 = "TkimkYu25H6YtfKRz7D/ZXbquXbhylS60TxgSPZC85iItCpZMwTlbIdvnpBKasx8e7MtJO6xYoAHEYHRhs8djQ==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.27.0.tgz";
+        sha512 = "+E2VhlDxvEcsBj8LdBaJ0OFS6+mDaWbDNmUSZ7UPIJxDPQzRFMGlMUyymz8J0f3Y2UWKiXgLvBhzEvF9UA4fCQ==";
       };
     };
-    "jsii-rosetta-1.20.1" = {
+    "jsii-rosetta-1.27.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.20.1";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.20.1.tgz";
-        sha512 = "3F01+B8zahWD4GhTMWPzlaGhuGvdPdYyIdhIe1bkHCYJuL1ttcf+ulCxVeF4qkBAxB2+/cfHBvEMHfSMoYCISA==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.27.0.tgz";
+        sha512 = "swQz1lsB5k2v2euJfxYOtRy+SHnYS9WJ2XRkstY8/j0xMFOLNNXoWwSDrK97h3qis+yUuCHZlI6DNQzQh1NutA==";
       };
     };
-    "jsii-srcmak-0.1.222" = {
+    "jsii-srcmak-0.1.255" = {
       name = "jsii-srcmak";
       packageName = "jsii-srcmak";
-      version = "0.1.222";
+      version = "0.1.255";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.222.tgz";
-        sha512 = "OLeezlo5ag/GoW+7YmiYVfE8zItDmV+rFcovlfYQCjCnksg6nX/e0t1mXOeLmCSetUNnu0DNrzwuqiO4hhgODQ==";
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.255.tgz";
+        sha512 = "vWIcR+z9HmqHX4lwJI9TFkGhBsZK2tPlgnvANJ09+SwrrLdBFOBFOJB298U5vMyQ/2mf0VFGlFFoJO9mA/6B4A==";
       };
     };
     "json-bigint-0.2.3" = {
@@ -31482,6 +32247,15 @@ let
         sha512 = "FD/SedD78LCdSvJaOUQAXseT8oQBb5z6IVYaQaCrVUlu9zOAr1BDdKyVYQaSD/GDsAMrXpKcOyBD4LIl8nfjHw==";
       };
     };
+    "json-file-plus-3.3.1" = {
+      name = "json-file-plus";
+      packageName = "json-file-plus";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-file-plus/-/json-file-plus-3.3.1.tgz";
+        sha512 = "wo0q1UuiV5NsDPQDup1Km8IwEeqe+olr8tkWxeJq9Bjtcp7DZ0l+yrg28fSC3DEtrE311mhTZ54QGS6oiqnZEA==";
+      };
+    };
     "json-merge-patch-0.2.3" = {
       name = "json-merge-patch";
       packageName = "json-merge-patch";
@@ -31680,13 +32454,13 @@ let
         sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
       };
     };
-    "json-stringify-pretty-compact-2.0.0" = {
+    "json-stringify-pretty-compact-3.0.0" = {
       name = "json-stringify-pretty-compact";
       packageName = "json-stringify-pretty-compact";
-      version = "2.0.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz";
-        sha512 = "WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ==";
+        url = "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz";
+        sha512 = "Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==";
       };
     };
     "json-stringify-safe-5.0.1" = {
@@ -31707,6 +32481,15 @@ let
         sha512 = "W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==";
       };
     };
+    "json2csv-5.0.6" = {
+      name = "json2csv";
+      packageName = "json2csv";
+      version = "5.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json2csv/-/json2csv-5.0.6.tgz";
+        sha512 = "0/4Lv6IenJV0qj2oBdgPIAmFiKKnh8qh7bmLFJ+/ZZHLjSeiL3fKKGX3UryvKPbxFbhV+JcYo9KUC19GJ/Z/4A==";
+      };
+    };
     "json2jsii-0.1.188" = {
       name = "json2jsii";
       packageName = "json2jsii";
@@ -31959,6 +32742,15 @@ let
         sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
       };
     };
+    "jstat-1.9.4" = {
+      name = "jstat";
+      packageName = "jstat";
+      version = "1.9.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jstat/-/jstat-1.9.4.tgz";
+        sha512 = "IiTPlI7pcrsq41EpDzrghlA1fhiC9GXxNqO4k5ogsjsM1XAWQ8zESH/bZsExLVgQsYpXE+7c11kEbbuxTLUpJQ==";
+      };
+    };
     "jstransform-10.1.0" = {
       name = "jstransform";
       packageName = "jstransform";
@@ -31986,15 +32778,6 @@ let
         sha1 = "69ec30ce4518bed5997b38f027648e8c285e92f7";
       };
     };
-    "jsx-ast-utils-3.2.0" = {
-      name = "jsx-ast-utils";
-      packageName = "jsx-ast-utils";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz";
-        sha512 = "EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==";
-      };
-    };
     "jszip-2.6.1" = {
       name = "jszip";
       packageName = "jszip";
@@ -32031,13 +32814,13 @@ let
         sha512 = "pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==";
       };
     };
-    "just-debounce-1.0.0" = {
+    "just-debounce-1.1.0" = {
       name = "just-debounce";
       packageName = "just-debounce";
-      version = "1.0.0";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz";
-        sha1 = "87fccfaeffc0b68cd19d55f6722943f929ea35ea";
+        url = "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz";
+        sha512 = "qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==";
       };
     };
     "just-detect-adblock-1.1.0" = {
@@ -32311,13 +33094,13 @@ let
         sha1 = "1e80454250018dbad4c3fe94497d6e67b6269c77";
       };
     };
-    "keytar-7.3.0" = {
+    "keytar-7.6.0" = {
       name = "keytar";
       packageName = "keytar";
-      version = "7.3.0";
+      version = "7.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keytar/-/keytar-7.3.0.tgz";
-        sha512 = "t8YD0ETO5AeRxCaaN4N/hzj3JusIH0ugjVooE724+ozaVG9+l16Mau62T+U8tEhCv7SozY/g69BWF1U+o47qJg==";
+        url = "https://registry.npmjs.org/keytar/-/keytar-7.6.0.tgz";
+        sha512 = "H3cvrTzWb11+iv0NOAnoNAPgEapVZnYLVHZQyxmh7jdmVfR/c0jNNFEZ6AI38W/4DeTGTaY66ZX4Z1SbfKPvCQ==";
       };
     };
     "keyv-3.0.0" = {
@@ -32347,13 +33130,13 @@ let
         sha512 = "zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==";
       };
     };
-    "khroma-1.2.0" = {
+    "khroma-1.3.0" = {
       name = "khroma";
       packageName = "khroma";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/khroma/-/khroma-1.2.0.tgz";
-        sha512 = "DlKk5y243dujy8fOH02aRnnewLfiHJV0s8aXaVrCohgBf3s7fEAn6gc6LLQ21agODlFZS8ufrn+juu70uCA9Tw==";
+        url = "https://registry.npmjs.org/khroma/-/khroma-1.3.0.tgz";
+        sha512 = "fpi0vIulP3FrM3BQOsEs+0ujWUNrg/YyHtEAcnvPxIHbASHNXEKEsDHtU2mADnJss7KvEdz7z2pUCQAEfFaFbA==";
       };
     };
     "killable-1.0.1" = {
@@ -32941,6 +33724,15 @@ let
         sha512 = "IR5ASkAU4NHTN1JFeP9bYvhARhaBg8VD8yUcmvNIvFWg6L3dsM2yK1A9EM6MpPvWYKH9SEiljB59ZUa5s2pYnA==";
       };
     };
+    "libnpmaccess-4.0.1" = {
+      name = "libnpmaccess";
+      packageName = "libnpmaccess";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.1.tgz";
+        sha512 = "ZiAgvfUbvmkHoMTzdwmNWCrQRsDkOC+aM5BDfO0C9aOSwF3R1LdFDBD+Rer1KWtsoQYO35nXgmMR7OUHpDRxyA==";
+      };
+    };
     "libnpmconfig-1.2.1" = {
       name = "libnpmconfig";
       packageName = "libnpmconfig";
@@ -32950,6 +33742,15 @@ let
         sha512 = "9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==";
       };
     };
+    "libnpmpublish-4.0.0" = {
+      name = "libnpmpublish";
+      packageName = "libnpmpublish";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.0.tgz";
+        sha512 = "2RwYXRfZAB1x/9udKpZmqEzSqNd7ouBRU52jyG14/xG8EF+O9A62d7/XVR3iABEQHf1iYhkm0Oq9iXjrL3tsXA==";
+      };
+    };
     "libsodium-0.7.9" = {
       name = "libsodium";
       packageName = "libsodium";
@@ -32968,6 +33769,15 @@ let
         sha512 = "9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==";
       };
     };
+    "lie-3.1.1" = {
+      name = "lie";
+      packageName = "lie";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz";
+        sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
+      };
+    };
     "lie-3.3.0" = {
       name = "lie";
       packageName = "lie";
@@ -32977,15 +33787,6 @@ let
         sha512 = "UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==";
       };
     };
-    "liftoff-2.5.0" = {
-      name = "liftoff";
-      packageName = "liftoff";
-      version = "2.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz";
-        sha1 = "2009291bb31cea861bbf10a7c15a28caf75c31ec";
-      };
-    };
     "liftoff-3.1.0" = {
       name = "liftoff";
       packageName = "liftoff";
@@ -32995,6 +33796,15 @@ let
         sha512 = "DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==";
       };
     };
+    "liftup-3.0.1" = {
+      name = "liftup";
+      packageName = "liftup";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz";
+        sha512 = "yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==";
+      };
+    };
     "lighthouse-logger-1.2.0" = {
       name = "lighthouse-logger";
       packageName = "lighthouse-logger";
@@ -33004,6 +33814,24 @@ let
         sha512 = "wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==";
       };
     };
+    "lightning-3.3.1" = {
+      name = "lightning";
+      packageName = "lightning";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lightning/-/lightning-3.3.1.tgz";
+        sha512 = "lzj7oODpX7XS/4qHGBG/VAMirBDK/rbWS8S9pTCSUV9ZknuXg2loCkDyPQuB3vC2MMt1QOsXn4oQUtxpPtSa1g==";
+      };
+    };
+    "lightning-3.3.2" = {
+      name = "lightning";
+      packageName = "lightning";
+      version = "3.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lightning/-/lightning-3.3.2.tgz";
+        sha512 = "DPZc9695RCNYivfO9/rhQuQ9B5Fn5N89ct2UrqJiuB43VocBOjn+KLjhSGcxbzCLtFtmGuZupvJFbNXnCVEICw==";
+      };
+    };
     "limit-spawn-0.0.3" = {
       name = "limit-spawn";
       packageName = "limit-spawn";
@@ -33130,6 +33958,51 @@ let
         sha512 = "04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==";
       };
     };
+    "ln-accounting-4.2.7" = {
+      name = "ln-accounting";
+      packageName = "ln-accounting";
+      version = "4.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-accounting/-/ln-accounting-4.2.7.tgz";
+        sha512 = "joCN96uuTS53sfJQ5XBFUsKetXk6GOc7NsXqmPmjn/78swpqkxWLar30BvbweGTIveSvDb9xfCT7v1PfSxgiJg==";
+      };
+    };
+    "ln-service-51.5.0" = {
+      name = "ln-service";
+      packageName = "ln-service";
+      version = "51.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-51.5.0.tgz";
+        sha512 = "Q22CcKJ+52mExGNvOmeEVBza82LGdbLkFVzfMjC9oPlP5DikS+sdlK5GZM/Dc5HFN5pwK7y9Ke7gRue/UxHwbw==";
+      };
+    };
+    "ln-service-51.6.0" = {
+      name = "ln-service";
+      packageName = "ln-service";
+      version = "51.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-51.6.0.tgz";
+        sha512 = "Bzvn8yv6mnlxJewWbloZOKpX4MEGRjCrALpDHOvA9EVnz5xeu5zbKmVyWElAhFIB5iXwX0xz6/8qhaJVFSyF9A==";
+      };
+    };
+    "ln-sync-0.4.5" = {
+      name = "ln-sync";
+      packageName = "ln-sync";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-0.4.5.tgz";
+        sha512 = "ETaASkbv5v2gcrob/xonsjy0deKSxIHfKOTfOXQicxhZed02plQ2oAUx/K3yxIhRnm7YS45Z/gYQLxUqHkI4ow==";
+      };
+    };
+    "ln-telegram-3.2.2" = {
+      name = "ln-telegram";
+      packageName = "ln-telegram";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.2.2.tgz";
+        sha512 = "6gJmRkOpcsyARrCL0+O66xgVlZVRd1erLSw1/dsiGXgUsaSuZ4mFpxE40j6eXZZZxwcFcYNE06Q79BMtsIvoqA==";
+      };
+    };
     "load-bmfont-1.4.1" = {
       name = "load-bmfont";
       packageName = "load-bmfont";
@@ -33139,13 +34012,13 @@ let
         sha512 = "8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==";
       };
     };
-    "load-ip-set-2.1.2" = {
+    "load-ip-set-2.2.1" = {
       name = "load-ip-set";
       packageName = "load-ip-set";
-      version = "2.1.2";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/load-ip-set/-/load-ip-set-2.1.2.tgz";
-        sha512 = "AgO3AGwWPru+tJboq0l2+hIkFqbAE3tbG74z2SCpt+c3h0PFI3t2mHamS707OzSc3b+GBVBKjZxPFz97YZNisA==";
+        url = "https://registry.npmjs.org/load-ip-set/-/load-ip-set-2.2.1.tgz";
+        sha512 = "G3hQXehU2LTOp52e+lPffpK4EvidfjwbvHaGqmFcp4ptiZagR4xFdL+D08kMX906dxeqZyWhfonEjdUxrWcldg==";
       };
     };
     "load-json-file-1.1.0" = {
@@ -33157,6 +34030,15 @@ let
         sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
       };
     };
+    "load-json-file-2.0.0" = {
+      name = "load-json-file";
+      packageName = "load-json-file";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz";
+        sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
+      };
+    };
     "load-json-file-4.0.0" = {
       name = "load-json-file";
       packageName = "load-json-file";
@@ -33175,6 +34057,15 @@ let
         sha512 = "cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==";
       };
     };
+    "load-json-file-6.2.0" = {
+      name = "load-json-file";
+      packageName = "load-json-file";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz";
+        sha512 = "gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==";
+      };
+    };
     "load-plugin-2.3.1" = {
       name = "load-plugin";
       packageName = "load-plugin";
@@ -33238,6 +34129,15 @@ let
         sha512 = "uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==";
       };
     };
+    "localforage-1.9.0" = {
+      name = "localforage";
+      packageName = "localforage";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz";
+        sha512 = "rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==";
+      };
+    };
     "locate-java-home-1.1.2" = {
       name = "locate-java-home";
       packageName = "locate-java-home";
@@ -33283,6 +34183,15 @@ let
         sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==";
       };
     };
+    "lock-1.1.0" = {
+      name = "lock";
+      packageName = "lock";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lock/-/lock-1.1.0.tgz";
+        sha1 = "53157499d1653b136ca66451071fca615703fa55";
+      };
+    };
     "locks-0.2.2" = {
       name = "locks";
       packageName = "locks";
@@ -33346,6 +34255,15 @@ let
         sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
       };
     };
+    "lodash-4.17.21" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.21";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz";
+        sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
+      };
+    };
     "lodash-4.17.5" = {
       name = "lodash";
       packageName = "lodash";
@@ -33373,13 +34291,13 @@ let
         sha1 = "c6940128a9d30f8e902cd2cf99fd0cba4ecfc183";
       };
     };
-    "lodash-es-4.17.20" = {
+    "lodash-es-4.17.21" = {
       name = "lodash-es";
       packageName = "lodash-es";
-      version = "4.17.20";
+      version = "4.17.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.20.tgz";
-        sha512 = "JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA==";
+        url = "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz";
+        sha512 = "mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==";
       };
     };
     "lodash-id-0.14.0" = {
@@ -33760,6 +34678,15 @@ let
         sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
       };
     };
+    "lodash.chunk-4.2.0" = {
+      name = "lodash.chunk";
+      packageName = "lodash.chunk";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz";
+        sha1 = "66e5ce1f76ed27b4303d8c6512e8d1216e8106bc";
+      };
+    };
     "lodash.clone-4.5.0" = {
       name = "lodash.clone";
       packageName = "lodash.clone";
@@ -33841,6 +34768,15 @@ let
         sha1 = "9ccb4e505d486b91651345772885a2df27fd017c";
       };
     };
+    "lodash.endswith-4.2.1" = {
+      name = "lodash.endswith";
+      packageName = "lodash.endswith";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.endswith/-/lodash.endswith-4.2.1.tgz";
+        sha1 = "fed59ac1738ed3e236edd7064ec456448b37bc09";
+      };
+    };
     "lodash.escape-3.2.0" = {
       name = "lodash.escape";
       packageName = "lodash.escape";
@@ -33868,6 +34804,24 @@ let
         sha1 = "668b1d4981603ae1cc5a6fa760143e480b4c4ace";
       };
     };
+    "lodash.find-4.6.0" = {
+      name = "lodash.find";
+      packageName = "lodash.find";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz";
+        sha1 = "cb0704d47ab71789ffa0de8b97dd926fb88b13b1";
+      };
+    };
+    "lodash.findindex-4.6.0" = {
+      name = "lodash.findindex";
+      packageName = "lodash.findindex";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.findindex/-/lodash.findindex-4.6.0.tgz";
+        sha1 = "a3245dee61fb9b6e0624b535125624bb69c11106";
+      };
+    };
     "lodash.findkey-4.6.0" = {
       name = "lodash.findkey";
       packageName = "lodash.findkey";
@@ -33985,15 +34939,6 @@ let
         sha1 = "6694cffa65fef931f7c31ce86c74597cf560f4f1";
       };
     };
-    "lodash.identity-3.0.0" = {
-      name = "lodash.identity";
-      packageName = "lodash.identity";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.identity/-/lodash.identity-3.0.0.tgz";
-        sha1 = "ad7bc6a4e647d79c972e1b80feef7af156267876";
-      };
-    };
     "lodash.includes-4.3.0" = {
       name = "lodash.includes";
       packageName = "lodash.includes";
@@ -34228,6 +35173,15 @@ let
         sha1 = "a08602ac12e4fb83f91fc1fb7a360a4d9ba35205";
       };
     };
+    "lodash.last-3.0.0" = {
+      name = "lodash.last";
+      packageName = "lodash.last";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.last/-/lodash.last-3.0.0.tgz";
+        sha1 = "242f663112dd4c6e63728c60a3c909d1bdadbd4c";
+      };
+    };
     "lodash.map-4.6.0" = {
       name = "lodash.map";
       packageName = "lodash.map";
@@ -34291,6 +35245,15 @@ let
         sha1 = "0dd3971213c7c56df880977d504c88fb471a97ac";
       };
     };
+    "lodash.orderby-4.6.0" = {
+      name = "lodash.orderby";
+      packageName = "lodash.orderby";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.orderby/-/lodash.orderby-4.6.0.tgz";
+        sha1 = "e697f04ce5d78522f54d9338b32b81a3393e4eb3";
+      };
+    };
     "lodash.pad-4.5.1" = {
       name = "lodash.pad";
       packageName = "lodash.pad";
@@ -34327,15 +35290,6 @@ let
         sha1 = "52f05610fff9ded422611441ed1fc123a03001b3";
       };
     };
-    "lodash.pickby-4.6.0" = {
-      name = "lodash.pickby";
-      packageName = "lodash.pickby";
-      version = "4.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz";
-        sha1 = "7dea21d8c18d7703a27c704c15d3b84a67e33aff";
-      };
-    };
     "lodash.reduce-4.6.0" = {
       name = "lodash.reduce";
       packageName = "lodash.reduce";
@@ -34417,6 +35371,15 @@ let
         sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
       };
     };
+    "lodash.sum-4.0.2" = {
+      name = "lodash.sum";
+      packageName = "lodash.sum";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.sum/-/lodash.sum-4.0.2.tgz";
+        sha1 = "ad90e397965d803d4f1ff7aa5b2d0197f3b4637b";
+      };
+    };
     "lodash.support-2.4.1" = {
       name = "lodash.support";
       packageName = "lodash.support";
@@ -34498,6 +35461,15 @@ let
         sha1 = "12306422f63324aed8483d3f38332b5f670547a0";
       };
     };
+    "lodash.truncate-4.4.2" = {
+      name = "lodash.truncate";
+      packageName = "lodash.truncate";
+      version = "4.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
+        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
+      };
+    };
     "lodash.unescape-4.0.1" = {
       name = "lodash.unescape";
       packageName = "lodash.unescape";
@@ -34534,6 +35506,15 @@ let
         sha1 = "a3a17bbf62eeb6240f491846e97c1c4e2a5e1e21";
       };
     };
+    "lodash.upperfirst-4.3.1" = {
+      name = "lodash.upperfirst";
+      packageName = "lodash.upperfirst";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz";
+        sha1 = "1365edf431480481ef0d1c68957a5ed99d49f7ce";
+      };
+    };
     "lodash.values-2.4.1" = {
       name = "lodash.values";
       packageName = "lodash.values";
@@ -34552,15 +35533,6 @@ let
         sha1 = "a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347";
       };
     };
-    "lodash.xorby-4.7.0" = {
-      name = "lodash.xorby";
-      packageName = "lodash.xorby";
-      version = "4.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.xorby/-/lodash.xorby-4.7.0.tgz";
-        sha1 = "9c19a6f9f063a6eb53dd03c1b6871799801463d7";
-      };
-    };
     "lodash.zip-4.2.0" = {
       name = "lodash.zip";
       packageName = "lodash.zip";
@@ -34633,6 +35605,15 @@ let
         sha512 = "FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==";
       };
     };
+    "log-symbols-4.1.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz";
+        sha512 = "8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==";
+      };
+    };
     "log-update-1.0.2" = {
       name = "log-update";
       packageName = "log-update";
@@ -35038,6 +36019,24 @@ let
         sha1 = "79e6674530da4183e87953bd686171e070da50b9";
       };
     };
+    "lzma-native-6.0.1" = {
+      name = "lzma-native";
+      packageName = "lzma-native";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz";
+        sha512 = "O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==";
+      };
+    };
+    "macaroon-3.0.4" = {
+      name = "macaroon";
+      packageName = "macaroon";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/macaroon/-/macaroon-3.0.4.tgz";
+        sha512 = "Tja2jvupseKxltPZbu5RPSz2Pgh6peYA3O46YCTcYL8PI1VqtGwDqRhGfP8pows26xx9wTiygk+en62Bq+Y8JA==";
+      };
+    };
     "machine-10.4.0" = {
       name = "machine";
       packageName = "machine";
@@ -35182,24 +36181,6 @@ let
         sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
       };
     };
-    "make-error-1.3.6" = {
-      name = "make-error";
-      packageName = "make-error";
-      version = "1.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz";
-        sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
-      };
-    };
-    "make-fetch-happen-5.0.2" = {
-      name = "make-fetch-happen";
-      packageName = "make-fetch-happen";
-      version = "5.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz";
-        sha512 = "07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==";
-      };
-    };
     "make-fetch-happen-8.0.14" = {
       name = "make-fetch-happen";
       packageName = "make-fetch-happen";
@@ -35308,13 +36289,13 @@ let
         sha1 = "a65cd29087a92598b8791257a523e021222ac1f9";
       };
     };
-    "map-obj-4.1.0" = {
+    "map-obj-4.2.0" = {
       name = "map-obj";
       packageName = "map-obj";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz";
-        sha512 = "glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==";
+        url = "https://registry.npmjs.org/map-obj/-/map-obj-4.2.0.tgz";
+        sha512 = "NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ==";
       };
     };
     "map-stream-0.0.7" = {
@@ -35524,13 +36505,13 @@ let
         sha512 = "UB/IbzjWazwTlNAX0pvWNlJS8NKsOQ4syrXZQ/C72j+jirrsjVRT627lCaylrKJFBQWfRsPmIVQie8x38DEhAQ==";
       };
     };
-    "markdown-link-extractor-1.2.6" = {
+    "markdown-link-extractor-1.2.7" = {
       name = "markdown-link-extractor";
       packageName = "markdown-link-extractor";
-      version = "1.2.6";
+      version = "1.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.6.tgz";
-        sha512 = "WDiwWTzR/zk0n0As7q1KCB1Jd/T7nJ7IEr6E1QKZR1Agd/xRmB0FjM2IrtC7IZ1ZwxflBE0aLe4pkX8d+rzV8w==";
+        url = "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.7.tgz";
+        sha512 = "gFwyqKEMPAwXiW2n7ZeM26bJL9WfkYnzP1O2lxFvqenefzPQE4A5XjidqbotOyDA5qUzjOHeqYoaGa2qb4B4Og==";
       };
     };
     "markdown-serve-0.3.3" = {
@@ -35596,13 +36577,13 @@ let
         sha512 = "EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==";
       };
     };
-    "marked-1.2.9" = {
+    "marked-2.0.1" = {
       name = "marked";
       packageName = "marked";
-      version = "1.2.9";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/marked/-/marked-1.2.9.tgz";
-        sha512 = "H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw==";
+        url = "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz";
+        sha512 = "5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==";
       };
     };
     "marked-terminal-3.3.0" = {
@@ -35614,13 +36595,13 @@ let
         sha512 = "+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==";
       };
     };
-    "marked-terminal-4.1.0" = {
+    "marked-terminal-4.1.1" = {
       name = "marked-terminal";
       packageName = "marked-terminal";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.1.0.tgz";
-        sha512 = "5KllfAOW02WS6hLRQ7cNvGOxvKW1BKuXELH4EtbWfyWgxQhROoMxEvuQ/3fTgkNjledR0J48F4HbapvYp1zWkQ==";
+        url = "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.1.1.tgz";
+        sha512 = "t7Mdf6T3PvOEyN01c3tYxDzhyKZ8xnkp8Rs6Fohno63L/0pFTJ5Qtwto2AQVuDtbQiWzD+4E5AAu1Z2iLc8miQ==";
       };
     };
     "marky-1.2.1" = {
@@ -35857,6 +36838,42 @@ let
         sha512 = "2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==";
       };
     };
+    "mdast-util-mdx-0.1.1" = {
+      name = "mdast-util-mdx";
+      packageName = "mdast-util-mdx";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-0.1.1.tgz";
+        sha512 = "9nncdnHNYSb4HNxY3AwE6gU632jhbXsDGXe9PkkJoEawYWJ8tTwmEOHGlGa2TCRidtkd6FF5I8ogDU9pTDlQyA==";
+      };
+    };
+    "mdast-util-mdx-expression-0.1.1" = {
+      name = "mdast-util-mdx-expression";
+      packageName = "mdast-util-mdx-expression";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-0.1.1.tgz";
+        sha512 = "SoO8y1B9NjMOYlNdwXMchuTVvqSTlUmXm1P5QvZNPv7OH7aa8qJV+3aA+vl1DHK9Vk1uZAlgwokjvDQhS6bINA==";
+      };
+    };
+    "mdast-util-mdx-jsx-0.1.4" = {
+      name = "mdast-util-mdx-jsx";
+      packageName = "mdast-util-mdx-jsx";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-0.1.4.tgz";
+        sha512 = "67KOAvCmypBSpr+AJEAVQg1Obig5Wnguo4ETTxASe5WVP4TLt57bZjDX/9EW5sWYQsO4gPqLxkUOlypVn5rkhg==";
+      };
+    };
+    "mdast-util-mdxjs-esm-0.1.1" = {
+      name = "mdast-util-mdxjs-esm";
+      packageName = "mdast-util-mdxjs-esm";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-0.1.1.tgz";
+        sha512 = "kBiYeashz+nuhfv+712nc4THQhzXIH2gBFUDbuLxuDCqU/fZeg+9FAcdRBx9E13dkpk1p2Xwufzs3wsGJ+mISQ==";
+      };
+    };
     "mdast-util-to-markdown-0.6.5" = {
       name = "mdast-util-to-markdown";
       packageName = "mdast-util-to-markdown";
@@ -35947,6 +36964,15 @@ let
         sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
       };
     };
+    "meant-1.0.3" = {
+      name = "meant";
+      packageName = "meant";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/meant/-/meant-1.0.3.tgz";
+        sha512 = "88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw==";
+      };
+    };
     "media-typer-0.3.0" = {
       name = "media-typer";
       packageName = "media-typer";
@@ -36010,13 +37036,13 @@ let
         sha512 = "Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==";
       };
     };
-    "mem-8.0.0" = {
+    "mem-8.1.0" = {
       name = "mem";
       packageName = "mem";
-      version = "8.0.0";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-8.0.0.tgz";
-        sha512 = "qrcJOe6uD+EW8Wrci1Vdiua/15Xw3n/QnaNXE7varnB6InxSk7nu3/i5jfy3S6kWxr8WYJ6R1o0afMUtvorTsA==";
+        url = "https://registry.npmjs.org/mem/-/mem-8.1.0.tgz";
+        sha512 = "FIkgXo0kTi3XpvaznV5Muk6Y6w8SkdmRXcY7ZLonQesuYezp59UooLxAVBcGuN6PH2tXN84mR3vyzSc6oSMUfA==";
       };
     };
     "mem-fs-1.2.0" = {
@@ -36046,13 +37072,13 @@ let
         sha512 = "BH6QEqCXSqGeX48V7zu+e3cMwHU7x640NB8Zk8VNvVZniz+p4FK60pMx/3yfkzo6miI6G3a8pH6z7FeuIzqrzA==";
       };
     };
-    "memfs-3.2.0" = {
+    "memfs-3.2.2" = {
       name = "memfs";
       packageName = "memfs";
-      version = "3.2.0";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/memfs/-/memfs-3.2.0.tgz";
-        sha512 = "f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A==";
+        url = "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz";
+        sha512 = "RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==";
       };
     };
     "memoize-one-5.1.1" = {
@@ -36154,6 +37180,15 @@ let
         sha512 = "51j4kUedbqkWGby44hAhf5f/hj8GOvHoLX00/YHURBNxOMf5k8JbPuGfmeNpZEXhc3vrmfnFben4+rOOx3HjEQ==";
       };
     };
+    "memorystore-1.6.6" = {
+      name = "memorystore";
+      packageName = "memorystore";
+      version = "1.6.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memorystore/-/memorystore-1.6.6.tgz";
+        sha512 = "EbLl1xg9+DlnjXkZK/eMUoWyhZ1IxcWMpSuFyqyA/Z4BNuH7BR+E0yC40WbLZZ6G8LxHiUZ2DPhqV8DR8+9UQQ==";
+      };
+    };
     "memorystream-0.3.1" = {
       name = "memorystream";
       packageName = "memorystream";
@@ -36253,6 +37288,15 @@ let
         sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
       };
     };
+    "merge-options-3.0.4" = {
+      name = "merge-options";
+      packageName = "merge-options";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz";
+        sha512 = "2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==";
+      };
+    };
     "merge-source-map-1.0.4" = {
       name = "merge-source-map";
       packageName = "merge-source-map";
@@ -36262,15 +37306,6 @@ let
         sha1 = "a5de46538dae84d4114cc5ea02b4772a6346701f";
       };
     };
-    "merge-source-map-1.1.0" = {
-      name = "merge-source-map";
-      packageName = "merge-source-map";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz";
-        sha512 = "Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==";
-      };
-    };
     "merge-stream-2.0.0" = {
       name = "merge-stream";
       packageName = "merge-stream";
@@ -36307,13 +37342,13 @@ let
         sha1 = "f8a064760d37e7978ad5f9f6d3c119a494f57081";
       };
     };
-    "mermaid-8.9.0" = {
+    "mermaid-8.9.2" = {
       name = "mermaid";
       packageName = "mermaid";
-      version = "8.9.0";
+      version = "8.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mermaid/-/mermaid-8.9.0.tgz";
-        sha512 = "J582tyE1vkdNu4BGgfwXnFo4Mu6jpuc4uK96mIenavaak9kr4T5gaMmYCo/7edwq/vTBkx/soZ5LcJo5WXZ1BQ==";
+        url = "https://registry.npmjs.org/mermaid/-/mermaid-8.9.2.tgz";
+        sha512 = "XWEaraDRDlHZexdeHSSr/MH4VJAOksRSPudchi69ecZJ7IUjjlzHsg32n4ZwJUh6lFO+NMYLHwHNNYUyxIjGPg==";
       };
     };
     "mersenne-0.0.4" = {
@@ -36388,49 +37423,49 @@ let
         sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
       };
     };
-    "metro-babel-transformer-0.58.0" = {
+    "metro-babel-transformer-0.59.0" = {
       name = "metro-babel-transformer";
       packageName = "metro-babel-transformer";
-      version = "0.58.0";
+      version = "0.59.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.58.0.tgz";
-        sha512 = "yBX3BkRhw2TCNPhe+pmLSgsAEA3huMvnX08UwjFqSXXI1aiqzRQobn92uKd1U5MM1Vx8EtXVomlJb95ZHNAv6A==";
+        url = "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz";
+        sha512 = "fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w==";
       };
     };
-    "metro-react-native-babel-preset-0.58.0" = {
+    "metro-react-native-babel-preset-0.59.0" = {
       name = "metro-react-native-babel-preset";
       packageName = "metro-react-native-babel-preset";
-      version = "0.58.0";
+      version = "0.59.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.58.0.tgz";
-        sha512 = "MRriNW+fF6jxABsgPphocUY6mIhmCm8idcrQZ58fT3Iti2vCdtkaK32TyCGUNUptzhUe2/cbE57j4aC+eaodAA==";
+        url = "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz";
+        sha512 = "BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg==";
       };
     };
-    "metro-react-native-babel-transformer-0.58.0" = {
+    "metro-react-native-babel-transformer-0.59.0" = {
       name = "metro-react-native-babel-transformer";
       packageName = "metro-react-native-babel-transformer";
-      version = "0.58.0";
+      version = "0.59.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.58.0.tgz";
-        sha512 = "3A73+cRq1eUPQ8g+hPNGgMUMCGmtQjwqHfoG1DwinAoJ/kr4WOXWWbGZo0xHJNBe/zdHGl0uHcDCp2knPglTdQ==";
+        url = "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.59.0.tgz";
+        sha512 = "1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ==";
       };
     };
-    "metro-source-map-0.58.0" = {
+    "metro-source-map-0.59.0" = {
       name = "metro-source-map";
       packageName = "metro-source-map";
-      version = "0.58.0";
+      version = "0.59.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.58.0.tgz";
-        sha512 = "yvN1YPmejmgiiS7T1aKBiiUTHPw2Vcm3r2TZ+DY92z/9PR4alysIywrCs/fTHs8rbDcKM5VfPCKGLpkBrbKeOw==";
+        url = "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.59.0.tgz";
+        sha512 = "0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ==";
       };
     };
-    "metro-symbolicate-0.58.0" = {
+    "metro-symbolicate-0.59.0" = {
       name = "metro-symbolicate";
       packageName = "metro-symbolicate";
-      version = "0.58.0";
+      version = "0.59.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.58.0.tgz";
-        sha512 = "uIVxUQC1E26qOMj13dKROhwAa2FmZk5eR0NcBqej/aXmQhpr8LjJg2sondkoLKUp827Tf/Fm9+pS4icb5XiqCw==";
+        url = "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz";
+        sha512 = "asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw==";
       };
     };
     "micro-api-client-3.3.0" = {
@@ -36496,6 +37531,60 @@ let
         sha512 = "+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==";
       };
     };
+    "micromark-extension-mdx-0.2.1" = {
+      name = "micromark-extension-mdx";
+      packageName = "micromark-extension-mdx";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-mdx/-/micromark-extension-mdx-0.2.1.tgz";
+        sha512 = "J+nZegf1ExPz1Ft6shxu8M9WfRom1gwRIx6gpJK1SEEqKzY5LjOR1d/WHRtjwV4KoMXrL53+PoN7T1Rw1euJew==";
+      };
+    };
+    "micromark-extension-mdx-expression-0.3.2" = {
+      name = "micromark-extension-mdx-expression";
+      packageName = "micromark-extension-mdx-expression";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-0.3.2.tgz";
+        sha512 = "Sh8YHLSAlbm/7TZkVKEC4wDcJE8XhVpZ9hUXBue1TcAicrrzs/oXu7PHH3NcyMemjGyMkiVS34Y0AHC5KG3y4A==";
+      };
+    };
+    "micromark-extension-mdx-jsx-0.3.3" = {
+      name = "micromark-extension-mdx-jsx";
+      packageName = "micromark-extension-mdx-jsx";
+      version = "0.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-0.3.3.tgz";
+        sha512 = "kG3VwaJlzAPdtIVDznfDfBfNGMTIzsHqKpTmMlew/iPnUCDRNkX+48ElpaOzXAtK5axtpFKE3Hu3VBriZDnRTQ==";
+      };
+    };
+    "micromark-extension-mdx-md-0.1.1" = {
+      name = "micromark-extension-mdx-md";
+      packageName = "micromark-extension-mdx-md";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-0.1.1.tgz";
+        sha512 = "emlFQEyfx/2aPhwyEqeNDfKE6jPH1cvLTb5ANRo4qZBjaUObnzjLRdzK8RJ4Xc8+/dOmKN8TTRxFnOYF5/EAwQ==";
+      };
+    };
+    "micromark-extension-mdxjs-0.3.0" = {
+      name = "micromark-extension-mdxjs";
+      packageName = "micromark-extension-mdxjs";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-0.3.0.tgz";
+        sha512 = "NQuiYA0lw+eFDtSG4+c7ao3RG9dM4P0Kx/sn8OLyPhxtIc6k+9n14k5VfLxRKfAxYRTo8c5PLZPaRNmslGWxJw==";
+      };
+    };
+    "micromark-extension-mdxjs-esm-0.3.1" = {
+      name = "micromark-extension-mdxjs-esm";
+      packageName = "micromark-extension-mdxjs-esm";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-0.3.1.tgz";
+        sha512 = "tuLgcELrgY1a5tPxjk+MrI3BdYtwW67UaHZdzKiDYD8loNbxwIscfdagI6A2BKuAkrfeyHF6FW3B8KuDK3ZMXw==";
+      };
+    };
     "micromatch-2.3.11" = {
       name = "micromatch";
       packageName = "micromatch";
@@ -36523,6 +37612,15 @@ let
         sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
       };
     };
+    "micromist-1.1.0" = {
+      name = "micromist";
+      packageName = "micromist";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromist/-/micromist-1.1.0.tgz";
+        sha512 = "+CQ76pabE9egniSEdmDuH+j2cYyIBKP97kujG8ZLZyLCRq5ExwtIy4DPHPFrq4jVbhMRBnyjuH50KU9Ohs8QCg==";
+      };
+    };
     "middleware-handler-0.2.0" = {
       name = "middleware-handler";
       packageName = "middleware-handler";
@@ -36604,13 +37702,13 @@ let
         sha512 = "dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==";
       };
     };
-    "mime-2.5.0" = {
+    "mime-2.5.2" = {
       name = "mime";
       packageName = "mime";
-      version = "2.5.0";
+      version = "2.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz";
-        sha512 = "ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==";
+        url = "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz";
+        sha512 = "tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==";
       };
     };
     "mime-db-1.33.0" = {
@@ -36622,6 +37720,15 @@ let
         sha512 = "BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==";
       };
     };
+    "mime-db-1.43.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.43.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
+        sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
+      };
+    };
     "mime-db-1.44.0" = {
       name = "mime-db";
       packageName = "mime-db";
@@ -36631,13 +37738,13 @@ let
         sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
       };
     };
-    "mime-db-1.45.0" = {
+    "mime-db-1.47.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.45.0";
+      version = "1.47.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz";
-        sha512 = "CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz";
+        sha512 = "QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==";
       };
     };
     "mime-types-2.1.18" = {
@@ -36649,6 +37756,15 @@ let
         sha512 = "lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==";
       };
     };
+    "mime-types-2.1.26" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.26";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz";
+        sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==";
+      };
+    };
     "mime-types-2.1.27" = {
       name = "mime-types";
       packageName = "mime-types";
@@ -36658,13 +37774,13 @@ let
         sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
-    "mime-types-2.1.28" = {
+    "mime-types-2.1.30" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.28";
+      version = "2.1.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz";
-        sha512 = "0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz";
+        sha512 = "crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==";
       };
     };
     "mimic-fn-1.2.0" = {
@@ -37045,6 +38161,15 @@ let
         sha512 = "mgw+DMZlhMS4PpprF6dl7ZoeZq5GGcAuWnrg5e12MvaGauc4jzWsDZtVGRCktsiQczOEUr2K5teKbE5k44RlOg==";
       };
     };
+    "mitt-1.2.0" = {
+      name = "mitt";
+      packageName = "mitt";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz";
+        sha512 = "r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==";
+      };
+    };
     "mixin-deep-1.3.2" = {
       name = "mixin-deep";
       packageName = "mixin-deep";
@@ -37108,13 +38233,13 @@ let
         sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==";
       };
     };
-    "mkdirp-promise-5.0.1" = {
-      name = "mkdirp-promise";
-      packageName = "mkdirp-promise";
-      version = "5.0.1";
+    "mkdirp-infer-owner-2.0.0" = {
+      name = "mkdirp-infer-owner";
+      packageName = "mkdirp-infer-owner";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz";
-        sha1 = "e9b8f68e552c68a9c1713b84883f7a1dd039b8a1";
+        url = "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz";
+        sha512 = "sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==";
       };
     };
     "mkpath-1.0.0" = {
@@ -37126,13 +38251,13 @@ let
         sha1 = "ebb3a977e7af1c683ae6fda12b545a6ba6c5853d";
       };
     };
-    "mobx-6.1.6" = {
+    "mobx-6.1.8" = {
       name = "mobx";
       packageName = "mobx";
-      version = "6.1.6";
+      version = "6.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mobx/-/mobx-6.1.6.tgz";
-        sha512 = "3by0Avodad/3cdPAuJuj8jWXhe1YByHKaEkonD9yOdcMoMuot2jrjlSXmQPhR1bJpNHfSsOx122tM9Pv3IzFWA==";
+        url = "https://registry.npmjs.org/mobx/-/mobx-6.1.8.tgz";
+        sha512 = "U4yCvUeh6yKXRwFxm2lyJjXPVekOEar/R8ZKWAXem/3fthJqYflViawfjDAUh7lZEvbKqljC3NT/pSaUKpE+gg==";
       };
     };
     "mobx-react-7.1.0" = {
@@ -37171,13 +38296,13 @@ let
         sha512 = "O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==";
       };
     };
-    "mocha-8.3.0" = {
+    "mocha-8.3.2" = {
       name = "mocha";
       packageName = "mocha";
-      version = "8.3.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mocha/-/mocha-8.3.0.tgz";
-        sha512 = "TQqyC89V1J/Vxx0DhJIXlq9gbbL9XFNdeLQ1+JsnZsVaSOV1z3tWfw0qZmQJGQRIfkvZcs7snQnZnOCKoldq1Q==";
+        url = "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz";
+        sha512 = "UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==";
       };
     };
     "mock-require-3.0.3" = {
@@ -37243,13 +38368,13 @@ let
         sha512 = "7PZH8QFJ51cIVtDv7wfUREBd3gL59JB0v/ARA3RI9zkSRa9LyGjS1Bdldii2J1/NQXRQ/3OOVOSdnZrCcVaZlw==";
       };
     };
-    "moize-6.0.0" = {
+    "moize-6.0.1" = {
       name = "moize";
       packageName = "moize";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moize/-/moize-6.0.0.tgz";
-        sha512 = "/GXPWgxfgQAeM2S7IPh29MDbhK9ZF1YjzP6QRcJ1QcYrqehe6eFpAQZ88Xk/s4dy/wYhMY5axT1vaaWC+lllZA==";
+        url = "https://registry.npmjs.org/moize/-/moize-6.0.1.tgz";
+        sha512 = "Bl91P98A6Xba35mn9XoAW9DuGoQb3HyoY888TxrvQbMr9+1v3dzBzi9n4Guh5Lne8ENdqbXjQ0a8mf7UUvZ9wg==";
       };
     };
     "mold-source-map-0.4.0" = {
@@ -37387,13 +38512,13 @@ let
         sha512 = "2/PRtGGiqPc/VEhbm7xAQ+gbb7yzHjjMAv6MpAifr5pCpbh3fQUdj93uNgwPiTppAGu8HFKe3PeU+OdRyAxStA==";
       };
     };
-    "mp4-stream-3.1.2" = {
+    "mp4-stream-3.1.3" = {
       name = "mp4-stream";
       packageName = "mp4-stream";
-      version = "3.1.2";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mp4-stream/-/mp4-stream-3.1.2.tgz";
-        sha512 = "AviUjTA6aER9DFVFPNYd4KrEKfhw2Pi8OKBY46r39ORmyX8qfaYx6XBIUGFCl67gX4+Giv2FLF+Gh6P3g81xrQ==";
+        url = "https://registry.npmjs.org/mp4-stream/-/mp4-stream-3.1.3.tgz";
+        sha512 = "DUT8f0x2jHbZjNMdqe9h6lZdt6RENWTTdGn8z3TXa4uEsoltuNY9lCCij84mdm0q7xcV0E2W25WRxlKBMo4hSw==";
       };
     };
     "mpath-0.5.2" = {
@@ -37414,13 +38539,13 @@ let
         sha512 = "GpxVObyOzL0CGPBqo6B04GinN8JLk12NRYAIkYvARd9ZCoJKevvOyCaWK6bdK/kFSDj3LPDnCsJbezzNlsi87Q==";
       };
     };
-    "mqtt-packet-6.7.0" = {
+    "mqtt-packet-6.9.0" = {
       name = "mqtt-packet";
       packageName = "mqtt-packet";
-      version = "6.7.0";
+      version = "6.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.7.0.tgz";
-        sha512 = "GzgeeCirQpB59FyhHvf8BLiIYgxctPSxuSyaF2vWnkt7paX7jtuQ8Gpl+DkHCxZmYuv7GQE6zcUAegpafd0MqQ==";
+        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.9.0.tgz";
+        sha512 = "cngFSAXWSl5XHKJYUQiYQjtp75zhf1vygY00NnJdhQoXOH2v3aizmaaMIHI5n1N/TJEHSAbHryQhFr3gJ9VNvA==";
       };
     };
     "mri-1.1.6" = {
@@ -37504,13 +38629,13 @@ let
         sha1 = "dd3c50b26f059f25e7edee3644418358e2a9ad89";
       };
     };
-    "msgpack5-3.6.0" = {
+    "msgpack5-3.6.1" = {
       name = "msgpack5";
       packageName = "msgpack5";
-      version = "3.6.0";
+      version = "3.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/msgpack5/-/msgpack5-3.6.0.tgz";
-        sha512 = "6HuCZHA57WtNUzrKIvjJ8OMxigzveJ6D5i13y6TsgGu3X3zxABpuBvChpppOoGdB9SyWZcmqUs1fwUV/PpSQ7Q==";
+        url = "https://registry.npmjs.org/msgpack5/-/msgpack5-3.6.1.tgz";
+        sha512 = "VoY2AaoowHZLLKyEb5FRzuhdSzXn5quGjcMKJOJHJPxp9baYZx5t6jiHUhp5aNRlqqlt+5GXQGovMLNKsrm1hg==";
       };
     };
     "multer-1.4.2" = {
@@ -37612,22 +38737,22 @@ let
         sha1 = "9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b";
       };
     };
-    "multimatch-3.0.0" = {
+    "multimatch-4.0.0" = {
       name = "multimatch";
       packageName = "multimatch";
-      version = "3.0.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz";
-        sha512 = "22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==";
+        url = "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz";
+        sha512 = "lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==";
       };
     };
-    "multimatch-4.0.0" = {
+    "multimatch-5.0.0" = {
       name = "multimatch";
       packageName = "multimatch";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz";
-        sha512 = "lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==";
+        url = "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz";
+        sha512 = "ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==";
       };
     };
     "multiparty-2.2.0" = {
@@ -37729,6 +38854,15 @@ let
         sha512 = "0FsgP/WVq4mKyjolIyX+Z9Bd+3WS8GOwoUTyKXT5cTYMGeauNTi2HPCwERqseC1IHAy0Z7MDZnJBfjabd4O8GQ==";
       };
     };
+    "mustache-4.2.0" = {
+      name = "mustache";
+      packageName = "mustache";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz";
+        sha512 = "71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==";
+      };
+    };
     "mutate.js-0.2.0" = {
       name = "mutate.js";
       packageName = "mutate.js";
@@ -37945,13 +39079,13 @@ let
         sha1 = "4f3152e09540fde28c76f44b19bbcd1d5a42478d";
       };
     };
-    "nanobus-4.4.0" = {
+    "nanobus-4.5.0" = {
       name = "nanobus";
       packageName = "nanobus";
-      version = "4.4.0";
+      version = "4.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanobus/-/nanobus-4.4.0.tgz";
-        sha512 = "Hv9USGyH8EsPy0o8pPWE7x3YRIfuZDgMBirzjU6XLebhiSK2g53JlfqgolD0c39ne6wXAfaBNcIAvYe22Bav+Q==";
+        url = "https://registry.npmjs.org/nanobus/-/nanobus-4.5.0.tgz";
+        sha512 = "7sBZo9wthqNJ7QXnfVXZL7fkKJLN55GLOdX+RyZT34UOvxxnFtJe/c7K0ZRLAKOvaY1xJThFFn0Usw2H9R6Frg==";
       };
     };
     "nanoguard-1.3.0" = {
@@ -37981,6 +39115,15 @@ let
         sha512 = "a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==";
       };
     };
+    "nanoid-3.1.22" = {
+      name = "nanoid";
+      packageName = "nanoid";
+      version = "3.1.22";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz";
+        sha512 = "/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==";
+      };
+    };
     "nanolru-1.0.0" = {
       name = "nanolru";
       packageName = "nanolru";
@@ -38242,6 +39385,15 @@ let
         sha512 = "U8HkIv90/lrdNlHVp63PoF3FeuQUvJ6toMX6InqRqpBmQq9iukZRAnq/yCE4Ii6WHZRYa6DEiTH/EGFTZ0rIGg==";
       };
     };
+    "nedb-1.8.0" = {
+      name = "nedb";
+      packageName = "nedb";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz";
+        sha1 = "0e3502cd82c004d5355a43c9e55577bd7bd91d88";
+      };
+    };
     "needle-1.6.0" = {
       name = "needle";
       packageName = "needle";
@@ -38260,15 +39412,6 @@ let
         sha512 = "4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==";
       };
     };
-    "needle-2.5.0" = {
-      name = "needle";
-      packageName = "needle";
-      version = "2.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/needle/-/needle-2.5.0.tgz";
-        sha512 = "o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA==";
-      };
-    };
     "needle-2.6.0" = {
       name = "needle";
       packageName = "needle";
@@ -38360,31 +39503,22 @@ let
         sha512 = "AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==";
       };
     };
-    "netlify-6.1.7" = {
+    "netlify-6.1.16" = {
       name = "netlify";
       packageName = "netlify";
-      version = "6.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/netlify/-/netlify-6.1.7.tgz";
-        sha512 = "6eSG7gtjOKNDUMjk/s35auWJJ4o03j+iy6eY4L3Fe2p0FoSm6x5wGk0ZCnD9o0QCleXubSJIPe6MCYa/fwdpqg==";
-      };
-    };
-    "netlify-plugin-deploy-preview-commenting-0.0.1-alpha.16" = {
-      name = "netlify-plugin-deploy-preview-commenting";
-      packageName = "netlify-plugin-deploy-preview-commenting";
-      version = "0.0.1-alpha.16";
+      version = "6.1.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/netlify-plugin-deploy-preview-commenting/-/netlify-plugin-deploy-preview-commenting-0.0.1-alpha.16.tgz";
-        sha512 = "5Rvi17CKgPpZTazEV2wkSj4IbS2zJpoKuytaYCyvemV/CMVeZUUPRwNPWm7+NjxObqJHgzUyi2FmWql8HfWhGA==";
+        url = "https://registry.npmjs.org/netlify/-/netlify-6.1.16.tgz";
+        sha512 = "hRIUwdJAkFnQNY6H274Sa1xU4LnBkoMJdhRnxD3YQcdmdn8i1Mns54xweLY3+F0Pg9g9lLtmqsZcm68gG/Fxvw==";
       };
     };
-    "netlify-redirect-parser-3.0.3" = {
+    "netlify-redirect-parser-3.0.9" = {
       name = "netlify-redirect-parser";
       packageName = "netlify-redirect-parser";
-      version = "3.0.3";
+      version = "3.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.3.tgz";
-        sha512 = "Enafs4wGjLXry4SREr0Rhc6A3k7hLhlJA/+M/jYzoDza9aK+xTV6Y0rHmWFW1ffUe2fN8kyrtxW++Fdipxffbw==";
+        url = "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.9.tgz";
+        sha512 = "1lSHjLA10jyjQpkC/emn5O2pL3uGLGF+8Snt7btwRHKGAN+K05hvhtqTIl5t2GPPAeKnGGWp9L+g4ruLNHgR0Q==";
       };
     };
     "netlify-redirector-0.2.1" = {
@@ -38405,6 +39539,15 @@ let
         sha1 = "20297e89d86f6f6400f250d9f4f6b4c1945fcd35";
       };
     };
+    "netmask-2.0.2" = {
+      name = "netmask";
+      packageName = "netmask";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz";
+        sha512 = "dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==";
+      };
+    };
     "netrc-parser-3.1.6" = {
       name = "netrc-parser";
       packageName = "netrc-parser";
@@ -38576,22 +39719,22 @@ let
         sha512 = "mYihjs47X5+N71CN3P+QBrEIBuclIfMMpgWEpkmLqFPvrOXdzokvDlhbLfjdBNZOqYgniaeZC6J1ZCgxFdyvXw==";
       };
     };
-    "no-cliches-0.2.2" = {
+    "no-cliches-0.3.0" = {
       name = "no-cliches";
       packageName = "no-cliches";
-      version = "0.2.2";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/no-cliches/-/no-cliches-0.2.2.tgz";
-        sha512 = "iEOqDAOFl6uN5jZGRj39Jdo8qALzf2HPXtpFso8+BMaDylDrUMYMwhFbfYGgxdnMlsRnxYTwv68kaXEpsHIapg==";
+        url = "https://registry.npmjs.org/no-cliches/-/no-cliches-0.3.0.tgz";
+        sha512 = "F5RA5GyDsJ9dYx2nFwzzy371BbFTBInQ/gO6arT+ngrI+1sDP5cSZxkWsVLgRoLMln4rs3xXBLjD2sLa7TnV1g==";
       };
     };
-    "node-abi-2.19.3" = {
+    "node-abi-2.21.0" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "2.19.3";
+      version = "2.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz";
-        sha512 = "9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.21.0.tgz";
+        sha512 = "smhrivuPqEM3H5LmnY3KU6HfYv0u4QklgAxfFyRNujKUzbUcYZ+Jc2EhukB9SRcD2VpqhxM7n/MIcp1Ua1/JMg==";
       };
     };
     "node-addon-api-1.7.2" = {
@@ -38612,6 +39755,15 @@ let
         sha512 = "ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA==";
       };
     };
+    "node-addon-api-2.0.2" = {
+      name = "node-addon-api";
+      packageName = "node-addon-api";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz";
+        sha512 = "Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==";
+      };
+    };
     "node-addon-api-3.1.0" = {
       name = "node-addon-api";
       packageName = "node-addon-api";
@@ -38666,6 +39818,15 @@ let
         sha1 = "5f5665d93351335caabef8f1c554516cf5f1e4e5";
       };
     };
+    "node-downloader-helper-1.0.17" = {
+      name = "node-downloader-helper";
+      packageName = "node-downloader-helper";
+      version = "1.0.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-downloader-helper/-/node-downloader-helper-1.0.17.tgz";
+        sha512 = "EnaY0uBSdVo4kYfSmkDlTJG8GqmS8fbfoOau/OsTnikCwt9vsU0w8REVxwWbVz7DzNtHSEBKpU6jV1hmtlx0Dg==";
+      };
+    };
     "node-emoji-1.10.0" = {
       name = "node-emoji";
       packageName = "node-emoji";
@@ -38694,6 +39855,15 @@ let
         sha512 = "5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==";
       };
     };
+    "node-eta-0.9.0" = {
+      name = "node-eta";
+      packageName = "node-eta";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz";
+        sha1 = "9fb0b099bcd2a021940e603c64254dc003d9a7a8";
+      };
+    };
     "node-fetch-1.6.3" = {
       name = "node-fetch";
       packageName = "node-fetch";
@@ -38739,15 +39909,6 @@ let
         sha512 = "ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==";
       };
     };
-    "node-fetch-npm-2.0.4" = {
-      name = "node-fetch-npm";
-      packageName = "node-fetch-npm";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz";
-        sha512 = "iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==";
-      };
-    };
     "node-forge-0.10.0" = {
       name = "node-forge";
       packageName = "node-forge";
@@ -38856,13 +40017,13 @@ let
         sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
       };
     };
-    "node-ipc-9.1.3" = {
+    "node-ipc-9.1.4" = {
       name = "node-ipc";
       packageName = "node-ipc";
-      version = "9.1.3";
+      version = "9.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.3.tgz";
-        sha512 = "8RS4RZyS/KMKKYG8mrje+cLxwATe9dBCuOiqKFSWND4oOuKytfuKCiR9yinvhoXF/nGdX/WnbywaUee+9U87zA==";
+        url = "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.4.tgz";
+        sha512 = "A+f0mn2KxUt1uRTSd5ktxQUsn2OEhj5evo7NUi/powBzMSZ0vocdzDjlq9QN2v3LH6CJi3e5xAenpZ1QwU5A8g==";
       };
     };
     "node-libs-browser-2.2.1" = {
@@ -38883,13 +40044,13 @@ let
         sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
       };
     };
-    "node-notifier-8.0.1" = {
+    "node-notifier-8.0.2" = {
       name = "node-notifier";
       packageName = "node-notifier";
-      version = "8.0.1";
+      version = "8.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz";
-        sha512 = "BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==";
+        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz";
+        sha512 = "oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==";
       };
     };
     "node-notifier-9.0.0" = {
@@ -38901,6 +40062,24 @@ let
         sha512 = "SkwNwGnMMlSPrcoeH4CSo9XyWe72acAHEJGDdPdB+CyBVHsIYaTQ4U/1wk3URsyzC75xZLg2vzU2YaALlqDF1Q==";
       };
     };
+    "node-notifier-9.0.1" = {
+      name = "node-notifier";
+      packageName = "node-notifier";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz";
+        sha512 = "fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==";
+      };
+    };
+    "node-object-hash-2.3.1" = {
+      name = "node-object-hash";
+      packageName = "node-object-hash";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.1.tgz";
+        sha512 = "ab7pm34jqISawXpJ+fHjj2E9CmzDtm2fTTdurgzbWXIrdTEk2q2cSZRzoeGrwa0cvq6Sqezq6S9bhOBYPHRzuQ==";
+      };
+    };
     "node-persist-2.1.0" = {
       name = "node-persist";
       packageName = "node-persist";
@@ -38955,6 +40134,15 @@ let
         sha512 = "+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==";
       };
     };
+    "node-pre-gyp-0.15.0" = {
+      name = "node-pre-gyp";
+      packageName = "node-pre-gyp";
+      version = "0.15.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz";
+        sha512 = "7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==";
+      };
+    };
     "node-pre-gyp-0.6.39" = {
       name = "node-pre-gyp";
       packageName = "node-pre-gyp";
@@ -39000,13 +40188,13 @@ let
         sha512 = "j1g/VtSCI2tBrBnCD+u8iSo9tH0nvn70k1O1SxkHk3+qx7tHUyOKQc7wNc4rUs9J1PkGngUC3qEDd5cL7Z/klg==";
       };
     };
-    "node-releases-1.1.70" = {
+    "node-releases-1.1.71" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.70";
+      version = "1.1.71";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz";
-        sha512 = "Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz";
+        sha512 = "zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==";
       };
     };
     "node-source-walk-4.2.0" = {
@@ -39063,6 +40251,15 @@ let
         sha1 = "b040eb0923968afabf8d32fb1f17f1167fdab907";
       };
     };
+    "node-version-alias-1.0.1" = {
+      name = "node-version-alias";
+      packageName = "node-version-alias";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-version-alias/-/node-version-alias-1.0.1.tgz";
+        sha512 = "E9EhoJkpIIZyYplB298W8ZfhcojQrnKnUPcaOgJqVqICUZwPZkuj10nTzEscwdziOOj545v4tGPvNBG3ieUbSw==";
+      };
+    };
     "node-wsfederation-0.1.1" = {
       name = "node-wsfederation";
       packageName = "node-wsfederation";
@@ -39108,6 +40305,15 @@ let
         sha512 = "VGPaqQBNk193lrJFotBU8nvWZPqEZY2eIzymy2jjY0fJ9qIsxA0sxQ8ATPl0gZC645gijYEc1jtZvpS8QWzJGQ==";
       };
     };
+    "nofilter-2.0.3" = {
+      name = "nofilter";
+      packageName = "nofilter";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nofilter/-/nofilter-2.0.3.tgz";
+        sha512 = "FbuXC+lK+GU2+63D1kC1ETiZo+Z7SIi7B+mxKTCH1byrh6WFvfBCN/wpherFz0a0bjGd7EKTst/cz0yLeNngug==";
+      };
+    };
     "nomnom-1.8.1" = {
       name = "nomnom";
       packageName = "nomnom";
@@ -39207,6 +40413,15 @@ let
         sha512 = "Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==";
       };
     };
+    "normalize-node-version-10.0.0" = {
+      name = "normalize-node-version";
+      packageName = "normalize-node-version";
+      version = "10.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-node-version/-/normalize-node-version-10.0.0.tgz";
+        sha512 = "/gVbS/qAnowVxr2fJy3F0MxmCvx8QdXJDl8XUE7HT3vsDeDjQfZkX9OiPahF+51Hgy93cKG1hP6uyBjQsMCvWQ==";
+      };
+    };
     "normalize-package-data-2.5.0" = {
       name = "normalize-package-data";
       packageName = "normalize-package-data";
@@ -39216,13 +40431,13 @@ let
         sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
       };
     };
-    "normalize-package-data-3.0.0" = {
+    "normalize-package-data-3.0.2" = {
       name = "normalize-package-data";
       packageName = "normalize-package-data";
-      version = "3.0.0";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz";
-        sha512 = "6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==";
+        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz";
+        sha512 = "6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==";
       };
     };
     "normalize-path-2.1.1" = {
@@ -39423,6 +40638,15 @@ let
         sha512 = "/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==";
       };
     };
+    "npm-package-arg-8.1.2" = {
+      name = "npm-package-arg";
+      packageName = "npm-package-arg";
+      version = "8.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.2.tgz";
+        sha512 = "6Eem455JsSMJY6Kpd3EyWE+n5hC+g9bSyHr9K9U2zqZb7+02+hObQ2c0+8iDk/mNF+8r1MhY44WypKJAkySIYA==";
+      };
+    };
     "npm-packlist-1.4.8" = {
       name = "npm-packlist";
       packageName = "npm-packlist";
@@ -39432,31 +40656,31 @@ let
         sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
       };
     };
-    "npm-packlist-2.1.4" = {
+    "npm-packlist-2.1.5" = {
       name = "npm-packlist";
       packageName = "npm-packlist";
-      version = "2.1.4";
+      version = "2.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.4.tgz";
-        sha512 = "Qzg2pvXC9U4I4fLnUrBmcIT4x0woLtUgxUi9eC+Zrcv1Xx5eamytGAfbDWQ67j7xOcQ2VW1I3su9smVTIdu7Hw==";
+        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.5.tgz";
+        sha512 = "KCfK3Vi2F+PH1klYauoQzg81GQ8/GGjQRKYY6tRnpQUPKTs/1gBZSRWtTEd7jGdSn1LZL7gpAmJT+BcS55k2XQ==";
       };
     };
-    "npm-pick-manifest-3.0.2" = {
+    "npm-pick-manifest-6.1.0" = {
       name = "npm-pick-manifest";
       packageName = "npm-pick-manifest";
-      version = "3.0.2";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz";
-        sha512 = "wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==";
+        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz";
+        sha512 = "ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==";
       };
     };
-    "npm-pick-manifest-6.1.0" = {
+    "npm-pick-manifest-6.1.1" = {
       name = "npm-pick-manifest";
       packageName = "npm-pick-manifest";
-      version = "6.1.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz";
-        sha512 = "ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==";
+        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz";
+        sha512 = "dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==";
       };
     };
     "npm-prefix-1.2.0" = {
@@ -39585,6 +40809,15 @@ let
         sha512 = "i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==";
       };
     };
+    "nugget-2.0.1" = {
+      name = "nugget";
+      packageName = "nugget";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz";
+        sha1 = "201095a487e1ad36081b3432fa3cada4f8d071b0";
+      };
+    };
     "num-sort-2.1.0" = {
       name = "num-sort";
       packageName = "num-sort";
@@ -39612,6 +40845,15 @@ let
         sha1 = "097b602b53422a522c1afb8790318336941a011d";
       };
     };
+    "number-to-bn-1.7.0" = {
+      name = "number-to-bn";
+      packageName = "number-to-bn";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz";
+        sha1 = "bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0";
+      };
+    };
     "numeral-1.5.6" = {
       name = "numeral";
       packageName = "numeral";
@@ -39757,13 +40999,13 @@ let
         sha1 = "793cef251d45ebdeac32ae40a8b6814faab1d483";
       };
     };
-    "ob1-0.58.0" = {
+    "ob1-0.59.0" = {
       name = "ob1";
       packageName = "ob1";
-      version = "0.58.0";
+      version = "0.59.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ob1/-/ob1-0.58.0.tgz";
-        sha512 = "uZP44cbowAfHafP1k4skpWItk5iHCoRevMfrnUvYCfyNNPPJd3rfDCyj0exklWi2gDXvjlj2ObsfiqP/bs/J7Q==";
+        url = "https://registry.npmjs.org/ob1/-/ob1-0.59.0.tgz";
+        sha512 = "opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ==";
       };
     };
     "object-assign-1.0.0" = {
@@ -39865,13 +41107,13 @@ let
         sha512 = "i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==";
       };
     };
-    "object-is-1.1.4" = {
+    "object-is-1.1.5" = {
       name = "object-is";
       packageName = "object-is";
-      version = "1.1.4";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz";
-        sha512 = "1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==";
+        url = "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz";
+        sha512 = "3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==";
       };
     };
     "object-keys-0.4.0" = {
@@ -39910,13 +41152,13 @@ let
         sha512 = "BfWfuAwuhdH1bhMG5EG90WE/eckkBhBvnke8eSEkCDXoLE9Jk5JwYGTbCx1ehGwV48HvBkn62VukPBdlMUOY9w==";
       };
     };
-    "object-treeify-1.1.31" = {
+    "object-treeify-1.1.33" = {
       name = "object-treeify";
       packageName = "object-treeify";
-      version = "1.1.31";
+      version = "1.1.33";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.31.tgz";
-        sha512 = "kt2UuyHDTH+J6w0pv2c+3uuEApGuwgfjWogbqPWAvk4nOM/T3No0SzDtp6CuJ/XBUy//nFNuerb8ms7CqjD9Tw==";
+        url = "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz";
+        sha512 = "EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==";
       };
     };
     "object-visit-1.0.1" = {
@@ -39964,22 +41206,13 @@ let
         sha512 = "ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==";
       };
     };
-    "object.fromentries-2.0.3" = {
-      name = "object.fromentries";
-      packageName = "object.fromentries";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.3.tgz";
-        sha512 = "IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==";
-      };
-    };
-    "object.getownpropertydescriptors-2.1.1" = {
+    "object.getownpropertydescriptors-2.1.2" = {
       name = "object.getownpropertydescriptors";
       packageName = "object.getownpropertydescriptors";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz";
-        sha512 = "6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==";
+        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz";
+        sha512 = "WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==";
       };
     };
     "object.map-1.0.1" = {
@@ -40018,13 +41251,13 @@ let
         sha1 = "6fe348f2ac7fa0f95ca621226599096825bb03ad";
       };
     };
-    "object.values-1.1.2" = {
+    "object.values-1.1.3" = {
       name = "object.values";
       packageName = "object.values";
-      version = "1.1.2";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz";
-        sha512 = "MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==";
+        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz";
+        sha512 = "nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==";
       };
     };
     "objectorarray-1.0.4" = {
@@ -40081,6 +41314,15 @@ let
         sha512 = "rH3U4eLHsV+OgkOS29ULiC9JLspwMCyCIH/+BglLPXDxQs13IK8AGD+nVmkGXqGN5JefZu85YhfIi05CsOKWPw==";
       };
     };
+    "oclif-plugin-completion-0.6.0" = {
+      name = "oclif-plugin-completion";
+      packageName = "oclif-plugin-completion";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oclif-plugin-completion/-/oclif-plugin-completion-0.6.0.tgz";
+        sha512 = "0HGaSR/E/seIhSzFxLkh0QqckuNSre4iGqSElZRUv1hVHH2YgrZ7xtQL9McwL8o1fh6HqkzykjUx0Iy2haVIUg==";
+      };
+    };
     "octokit-pagination-methods-1.1.0" = {
       name = "octokit-pagination-methods";
       packageName = "octokit-pagination-methods";
@@ -40090,13 +41332,13 @@ let
         sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
       };
     };
-    "office-ui-fabric-react-7.160.0" = {
+    "office-ui-fabric-react-7.165.2" = {
       name = "office-ui-fabric-react";
       packageName = "office-ui-fabric-react";
-      version = "7.160.0";
+      version = "7.165.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.160.0.tgz";
-        sha512 = "HMEqVKCjCmWckgnwNZtOZfSffrkfoAiUlqyi5Ypzs/QJsnUaclwhPPo8mwfWGEDInsrLgfT6OQvehWqWBfusJg==";
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.165.2.tgz";
+        sha512 = "PC36Ga+e8xHmslNiYbvsaXkQJjghlnwkgWeU1mXK9ebMASed4men5KlABbRRHFrLotfKFrgkcI41jbdWccuKmw==";
       };
     };
     "omggif-1.0.10" = {
@@ -40270,13 +41512,13 @@ let
         sha512 = "jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==";
       };
     };
-    "oo-ascii-tree-1.20.1" = {
+    "oo-ascii-tree-1.27.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.20.1";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.20.1.tgz";
-        sha512 = "imKW5pdztAEqtl5pmNTM9Rva53XOcuY91YL9jTuwFGJpBGqT6pnyxXJOFdwc5TRaQr9+GdpWTpByGRvgNPbdvQ==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.27.0.tgz";
+        sha512 = "3hqwUDNTJC2YLzSRye8Fh35AC4fSHl2FZhFF/hyQtO8C9lV1PEXIPWGIRZ0zwQSHFutnriEvK8AHJgbbMrLxqg==";
       };
     };
     "opal-runtime-1.0.11" = {
@@ -40333,22 +41575,31 @@ let
         sha512 = "mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==";
       };
     };
-    "open-7.3.1" = {
+    "open-7.4.0" = {
       name = "open";
       packageName = "open";
-      version = "7.3.1";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.3.1.tgz";
-        sha512 = "f2wt9DCBKKjlFbjzGb8MOAW8LH8F0mrs1zc7KTjAJ9PZNQbfenzWbNP1VZJvw6ICMG9r14Ah6yfwPn7T7i646A==";
+        url = "https://registry.npmjs.org/open/-/open-7.4.0.tgz";
+        sha512 = "PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==";
       };
     };
-    "open-7.4.0" = {
+    "open-7.4.2" = {
       name = "open";
       packageName = "open";
-      version = "7.4.0";
+      version = "7.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.4.0.tgz";
-        sha512 = "PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==";
+        url = "https://registry.npmjs.org/open/-/open-7.4.2.tgz";
+        sha512 = "MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==";
+      };
+    };
+    "open-8.0.5" = {
+      name = "open";
+      packageName = "open";
+      version = "8.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-8.0.5.tgz";
+        sha512 = "hkPXCz7gijWp2GoWqsQ4O/5p7F6d5pIQ/+9NyeWG1nABJ4zvLi9kJRv1a44kVf5p13wK0WMoiRA+Xey68yOytA==";
       };
     };
     "openapi-default-setter-2.1.0" = {
@@ -40378,13 +41629,13 @@ let
         sha512 = "TbgwwOnlatb+xSYh/XALQjrVO3dirVNXuONR6CLQHVI/i1e+nq/ubW8I5i6rlGpnFLZNZKXZ0gF7RMvjLBk8ow==";
       };
     };
-    "openapi-framework-7.3.0" = {
+    "openapi-framework-7.5.0" = {
       name = "openapi-framework";
       packageName = "openapi-framework";
-      version = "7.3.0";
+      version = "7.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openapi-framework/-/openapi-framework-7.3.0.tgz";
-        sha512 = "I0KDyH9LNYNfMUGK+nmM+0S+E1hiqKAikEIogGaVmKcJSenHaZyfbjuw1BdotBuQyCKSpcYg5yUZOyLwHVlytg==";
+        url = "https://registry.npmjs.org/openapi-framework/-/openapi-framework-7.5.0.tgz";
+        sha512 = "t+sGVNMs2apX6d/rf5oq/3S6tCyBTgCjgFY0EDEIKKWepO4v3wM+kjy/Ve9iU92Ui5GeWbGR6ceFKY6VP/OKfQ==";
       };
     };
     "openapi-jsonschema-parameters-1.2.0" = {
@@ -40414,13 +41665,13 @@ let
         sha512 = "UFRzW7C7Q31FUOFHEMYNeSuEmETH7KGlsMgMJanv0RxXkACyzKpKANPfM3oiMubQENPya3Ie9ZIq5HLvZEy/eQ==";
       };
     };
-    "openapi-request-coercer-7.2.3" = {
+    "openapi-request-coercer-7.5.0" = {
       name = "openapi-request-coercer";
       packageName = "openapi-request-coercer";
-      version = "7.2.3";
+      version = "7.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openapi-request-coercer/-/openapi-request-coercer-7.2.3.tgz";
-        sha512 = "w+CcKjQ/UWgtA5lgrCh7t/D2FGaKyQRXgMk8aWuT/y2a/pvdZbXdmdABWdafXB6iVlBr9CKXYHJUDlBcoKH2yQ==";
+        url = "https://registry.npmjs.org/openapi-request-coercer/-/openapi-request-coercer-7.5.0.tgz";
+        sha512 = "wvrh3xSEpmgKaHiAnVhPxL6Yp9IXW+NEI192z6X5RiU6xe+jszn6A3v8vJcceyNsvDBA4tkm4I3mFndDlhc6Zw==";
       };
     };
     "openapi-request-validator-4.2.0" = {
@@ -40432,13 +41683,13 @@ let
         sha512 = "ukdX4T8heEI2GudiqDkk8hwfZhZP7zAz8zwngTyHtI0ZRUuU76+Zix8LVfrvSTZ2RpsPClKmYU2kDU4YZqdRHg==";
       };
     };
-    "openapi-request-validator-7.3.0" = {
+    "openapi-request-validator-7.4.0" = {
       name = "openapi-request-validator";
       packageName = "openapi-request-validator";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openapi-request-validator/-/openapi-request-validator-7.3.0.tgz";
-        sha512 = "Apyo0eiR1ya63vWxjAKuPBkqr953133o5BgBxXS0gFSfvbK9tmXCPwYOhvafPknkoJGaCKy5psRuBRWjUuVNSg==";
+        url = "https://registry.npmjs.org/openapi-request-validator/-/openapi-request-validator-7.4.0.tgz";
+        sha512 = "0rnslY82Btw5nM6rUEuXkvupav4ujvP+e9WziZvcMrE+VZ6IxRGDP8F7w0XmtPBwMS2nJGgt/J7BnRXAFTx5tw==";
       };
     };
     "openapi-response-validator-4.0.0" = {
@@ -40450,13 +41701,13 @@ let
         sha512 = "bIG8bpHT/vE+Dtz4aVyfQnweXtUdvxvJf5/D6Uu98UGf3T42Ez940ctwnlmDCQxTPqdu0yLFbMoiNf/A3jYCIg==";
       };
     };
-    "openapi-response-validator-7.2.3" = {
+    "openapi-response-validator-7.4.0" = {
       name = "openapi-response-validator";
       packageName = "openapi-response-validator";
-      version = "7.2.3";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openapi-response-validator/-/openapi-response-validator-7.2.3.tgz";
-        sha512 = "j9OvLWO/6sWiR4fwdbzPbZuuj02abk+kt8Zd2aXS4mS8K7/sl7QiJGI/VmQpvq9CTlNG67eEKyqgmBzI1ovu/g==";
+        url = "https://registry.npmjs.org/openapi-response-validator/-/openapi-response-validator-7.4.0.tgz";
+        sha512 = "Su8jA45PhegUgJnEAT15DYt2spPJgvjyTtXqg+Lw5AtGePfcQskV6ACEzsL0XPoAXIFf09Vx6sBor9pek+tl+Q==";
       };
     };
     "openapi-sampler-1.0.0-beta.18" = {
@@ -40585,13 +41836,13 @@ let
         sha512 = "ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==";
       };
     };
-    "openid-2.0.7" = {
+    "openid-2.0.8" = {
       name = "openid";
       packageName = "openid";
-      version = "2.0.7";
+      version = "2.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openid/-/openid-2.0.7.tgz";
-        sha512 = "xH6qaz/hS55rEX8xURz4HRUO96cpj821WY6UEG9rgcusZ8Jsq54jGWP1EMCjGvgngonw8vgSljM1i2OESv16Gw==";
+        url = "https://registry.npmjs.org/openid/-/openid-2.0.8.tgz";
+        sha512 = "ljI4GE6p4RYn9dLftlXw6TvlA+untAkoWBRpj4qIB4AJQWcDZ2lOVOJQ2tq346ok38mtGDBYRBvp3Q+AsuCBnQ==";
       };
     };
     "opentracing-0.14.5" = {
@@ -40639,15 +41890,6 @@ let
         sha512 = "I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==";
       };
     };
-    "optimism-0.10.3" = {
-      name = "optimism";
-      packageName = "optimism";
-      version = "0.10.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optimism/-/optimism-0.10.3.tgz";
-        sha512 = "9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw==";
-      };
-    };
     "optimist-0.2.8" = {
       name = "optimist";
       packageName = "optimist";
@@ -40810,22 +42052,22 @@ let
         sha512 = "9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==";
       };
     };
-    "ora-5.2.0" = {
+    "ora-5.3.0" = {
       name = "ora";
       packageName = "ora";
-      version = "5.2.0";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ora/-/ora-5.2.0.tgz";
-        sha512 = "+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ==";
+        url = "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz";
+        sha512 = "zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==";
       };
     };
-    "ora-5.3.0" = {
+    "ora-5.4.0" = {
       name = "ora";
       packageName = "ora";
-      version = "5.3.0";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz";
-        sha512 = "zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==";
+        url = "https://registry.npmjs.org/ora/-/ora-5.4.0.tgz";
+        sha512 = "1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg==";
       };
     };
     "ordered-read-streams-1.0.1" = {
@@ -40963,22 +42205,22 @@ let
         sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
       };
     };
-    "ot-builder-1.0.1" = {
+    "ot-builder-1.0.3" = {
       name = "ot-builder";
       packageName = "ot-builder";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.0.1.tgz";
-        sha512 = "tx0ZlR8KGohvVketGtOmd5nClqvdoWPxMwugihnkzSu2z75b1uAgEfiJ2gvZLix+re20trKq/HooYv+iQ+kmjA==";
+        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.0.3.tgz";
+        sha512 = "ApuXJZmB30IAspJwojBh2VxQfLMMqu6fkQ7nrNmG+ubL6uvgqW7kZYIyCcaXU4utONLP6bDP988bNovQXVfNAQ==";
       };
     };
-    "otb-ttc-bundle-1.0.1" = {
+    "otb-ttc-bundle-1.0.3" = {
       name = "otb-ttc-bundle";
       packageName = "otb-ttc-bundle";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.0.1.tgz";
-        sha512 = "dkdU3V3jqOLOSABpKYzl1mocygPZUhv6DjJSip5Hp2L7PVsDKv1xS+TNf+SQSBlPYPXLzP6cwvbDvwsqeeCEBw==";
+        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.0.3.tgz";
+        sha512 = "U2Eh0kXe8YzP/F8sNJvqnBi8Y57oG4xcAND0IsGGSm+q1Csn30V0k34rA3rKmelnM/oXT5J0EbZKIvlapPdfLw==";
       };
     };
     "ow-0.21.0" = {
@@ -41035,13 +42277,13 @@ let
         sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
       };
     };
-    "p-cancelable-2.0.0" = {
+    "p-cancelable-2.1.0" = {
       name = "p-cancelable";
       packageName = "p-cancelable";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz";
-        sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==";
+        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.0.tgz";
+        sha512 = "HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==";
       };
     };
     "p-debounce-1.0.0" = {
@@ -41089,6 +42331,15 @@ let
         sha512 = "KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==";
       };
     };
+    "p-every-2.0.0" = {
+      name = "p-every";
+      packageName = "p-every";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-every/-/p-every-2.0.0.tgz";
+        sha512 = "MCz9DqD5opPC48Zsd+BHm56O/HfhYIQQtupfDzhXoVgQdg/Ux4F8/JcdRuQ+arq7zD5fB6zP3axbH3d9Nr8dlw==";
+      };
+    };
     "p-filter-2.1.0" = {
       name = "p-filter";
       packageName = "p-filter";
@@ -41233,13 +42484,13 @@ let
         sha512 = "/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==";
       };
     };
-    "p-map-series-1.0.0" = {
+    "p-map-series-2.1.0" = {
       name = "p-map-series";
       packageName = "p-map-series";
-      version = "1.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz";
-        sha1 = "bf98fe575705658a9e1351befb85ae4c1f07bdca";
+        url = "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz";
+        sha512 = "RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==";
       };
     };
     "p-memoize-4.0.1" = {
@@ -41251,22 +42502,13 @@ let
         sha512 = "km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE//2G74qTv6b4iMog==";
       };
     };
-    "p-pipe-1.2.0" = {
+    "p-pipe-3.1.0" = {
       name = "p-pipe";
       packageName = "p-pipe";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz";
-        sha1 = "4b1a11399a11520a67790ee5a0c1d5881d6befe9";
-      };
-    };
-    "p-queue-4.0.0" = {
-      name = "p-queue";
-      packageName = "p-queue";
-      version = "4.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz";
-        sha512 = "3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==";
+        url = "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz";
+        sha512 = "08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==";
       };
     };
     "p-queue-6.6.2" = {
@@ -41278,15 +42520,6 @@ let
         sha512 = "RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==";
       };
     };
-    "p-reduce-1.0.0" = {
-      name = "p-reduce";
-      packageName = "p-reduce";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz";
-        sha1 = "18c2b0dd936a4690a529f8231f58a0fdb6a47dfa";
-      };
-    };
     "p-reduce-2.1.0" = {
       name = "p-reduce";
       packageName = "p-reduce";
@@ -41395,22 +42628,13 @@ let
         sha512 = "wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==";
       };
     };
-    "p-waterfall-1.0.0" = {
+    "p-waterfall-2.1.1" = {
       name = "p-waterfall";
       packageName = "p-waterfall";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-waterfall/-/p-waterfall-1.0.0.tgz";
-        sha1 = "7ed94b3ceb3332782353af6aae11aa9fc235bb00";
-      };
-    };
-    "pac-proxy-agent-3.0.1" = {
-      name = "pac-proxy-agent";
-      packageName = "pac-proxy-agent";
-      version = "3.0.1";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz";
-        sha512 = "44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==";
+        url = "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz";
+        sha512 = "RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==";
       };
     };
     "pac-proxy-agent-4.1.0" = {
@@ -41422,22 +42646,13 @@ let
         sha512 = "ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==";
       };
     };
-    "pac-resolver-3.0.0" = {
-      name = "pac-resolver";
-      packageName = "pac-resolver";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz";
-        sha512 = "tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==";
-      };
-    };
-    "pac-resolver-4.1.0" = {
+    "pac-resolver-4.2.0" = {
       name = "pac-resolver";
       packageName = "pac-resolver";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.1.0.tgz";
-        sha512 = "d6lf2IrZJJ7ooVHr7BfwSjRO1yKSJMaiiWYSHcrxSIUtZrCa4KKGwcztdkZ/E9LFleJfjoi1yl+XLR7AX24nbQ==";
+        url = "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.2.0.tgz";
+        sha512 = "rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ==";
       };
     };
     "package-json-1.2.0" = {
@@ -41530,13 +42745,13 @@ let
         sha512 = "GfTeVQGJ6WyBQbQD4t3ocHbyOmTQLmWjkCKSZPmKiGFKYKNUaM5U2gbLzUW8WG1XmS9yQFnsTFA0k3o1+q4klQ==";
       };
     };
-    "pacote-11.2.6" = {
+    "pacote-11.3.1" = {
       name = "pacote";
       packageName = "pacote";
-      version = "11.2.6";
+      version = "11.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-11.2.6.tgz";
-        sha512 = "xCl++Hb3aBC7LaWMimbO4xUqZVsEbKDVc6KKDIIyAeBYrmMwY1yJC2nES/lsGd8sdQLUosgBxQyuVNncZ2Ru0w==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-11.3.1.tgz";
+        sha512 = "TymtwoAG12cczsJIrwI/euOQKtjrQHlD0k0oyt9QSmZGpqa+KdlxKdWR/YUjYizkixaVyztxt/Wsfo8bL3A6Fg==";
       };
     };
     "pad-0.0.5" = {
@@ -41656,6 +42871,15 @@ let
         sha512 = "RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==";
       };
     };
+    "parse-author-2.0.0" = {
+      name = "parse-author";
+      packageName = "parse-author";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz";
+        sha1 = "d3460bf1ddd0dfaeed42da754242e65fb684a81f";
+      };
+    };
     "parse-bmfont-ascii-1.0.6" = {
       name = "parse-bmfont-ascii";
       packageName = "parse-bmfont-ascii";
@@ -41809,15 +43033,6 @@ let
         sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
       };
     };
-    "parse-json-5.0.1" = {
-      name = "parse-json";
-      packageName = "parse-json";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz";
-        sha512 = "ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==";
-      };
-    };
     "parse-json-5.2.0" = {
       name = "parse-json";
       packageName = "parse-json";
@@ -41998,15 +43213,6 @@ let
         sha512 = "fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==";
       };
     };
-    "parse5-5.1.1" = {
-      name = "parse5";
-      packageName = "parse5";
-      version = "5.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz";
-        sha512 = "ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==";
-      };
-    };
     "parse5-6.0.1" = {
       name = "parse5";
       packageName = "parse5";
@@ -42277,15 +43483,6 @@ let
         sha512 = "b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==";
       };
     };
-    "path-case-3.0.4" = {
-      name = "path-case";
-      packageName = "path-case";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz";
-        sha512 = "qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==";
-      };
-    };
     "path-dirname-1.0.2" = {
       name = "path-dirname";
       packageName = "path-dirname";
@@ -42448,6 +43645,15 @@ let
         sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
       };
     };
+    "path-type-2.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz";
+        sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
+      };
+    };
     "path-type-3.0.0" = {
       name = "path-type";
       packageName = "path-type";
@@ -42826,13 +44032,22 @@ let
         sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
       };
     };
-    "pino-6.7.0" = {
+    "pino-6.11.1" = {
       name = "pino";
       packageName = "pino";
-      version = "6.7.0";
+      version = "6.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.7.0.tgz";
-        sha512 = "vPXJ4P9rWCwzlTJt+f0Ni4THc3DWyt8iDDCO4edQ8narTu6hnpzdXu8FqeSJCGndl1W6lfbYQUQihUO54y66Lw==";
+        url = "https://registry.npmjs.org/pino/-/pino-6.11.1.tgz";
+        sha512 = "PoDR/4jCyaP1k2zhuQ4N0NuhaMtei+C9mUHBRRJQujexl/bq3JkeL2OC23ada6Np3zeUMHbO4TGzY2D/rwZX3w==";
+      };
+    };
+    "pino-6.9.0" = {
+      name = "pino";
+      packageName = "pino";
+      version = "6.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pino/-/pino-6.9.0.tgz";
+        sha512 = "9RrRJsKOsgj50oGoR/y4EEVyUjMb/eRu8y4hjwPqM6q214xsxSxY/IKB+aEEv0slqNd4U0RVRfivKfy83UxgUQ==";
       };
     };
     "pino-std-serializers-2.5.0" = {
@@ -42844,6 +44059,15 @@ let
         sha512 = "wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg==";
       };
     };
+    "pino-std-serializers-3.2.0" = {
+      name = "pino-std-serializers";
+      packageName = "pino-std-serializers";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz";
+        sha512 = "EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==";
+      };
+    };
     "pipe-functions-1.3.0" = {
       name = "pipe-functions";
       packageName = "pipe-functions";
@@ -43006,13 +44230,13 @@ let
         sha1 = "084b5093ddc92506e259f874b8d9b1afb8c79593";
       };
     };
-    "plist-3.0.1" = {
+    "plist-3.0.2" = {
       name = "plist";
       packageName = "plist";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz";
-        sha512 = "GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==";
+        url = "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz";
+        sha512 = "MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==";
       };
     };
     "plist-with-patches-0.5.1" = {
@@ -43096,40 +44320,22 @@ let
         sha512 = "Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==";
       };
     };
-    "pm2-axon-3.3.0" = {
+    "pm2-axon-4.0.1" = {
       name = "pm2-axon";
       packageName = "pm2-axon";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pm2-axon/-/pm2-axon-3.3.0.tgz";
-        sha512 = "dAFlFYRuFbFjX7oAk41zT+dx86EuaFX/TgOp5QpUKRKwxb946IM6ydnoH5sSTkdI2pHSVZ+3Am8n/l0ocr7jdQ==";
-      };
-    };
-    "pm2-axon-4.0.0" = {
-      name = "pm2-axon";
-      packageName = "pm2-axon";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.0.tgz";
-        sha512 = "A8dy0C57cRIm+kX58HrMcnvUdg8EdwCuCmavDdmFE4eoUE+5zfwGbDfZKCBVLNpDwjXPuXQQYZi3wQt/5xC8DQ==";
-      };
-    };
-    "pm2-axon-rpc-0.5.2" = {
-      name = "pm2-axon-rpc";
-      packageName = "pm2-axon-rpc";
-      version = "0.5.2";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.5.2.tgz";
-        sha512 = "o4u1jO1EYBgBUVlraE1aeGWB5DvClJFB2+v7ytqLypNfgYeT6eJ/B+WMh5NcvRnexAYL5kblcRgNgSbgGEobvA==";
+        url = "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz";
+        sha512 = "kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==";
       };
     };
-    "pm2-axon-rpc-0.6.0" = {
+    "pm2-axon-rpc-0.7.1" = {
       name = "pm2-axon-rpc";
       packageName = "pm2-axon-rpc";
-      version = "0.6.0";
+      version = "0.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.6.0.tgz";
-        sha512 = "xjYR0y1HpOopJ09VL2Qd5H1LajVN+QLPVZ1G+GesbORJDAZiStMhwECtOzm/Gx5ANQxL0usW8WZsElMfQq2hbw==";
+        url = "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz";
+        sha512 = "FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==";
       };
     };
     "pm2-deploy-1.0.2" = {
@@ -43195,13 +44401,13 @@ let
         sha512 = "7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==";
       };
     };
-    "polished-3.7.0" = {
+    "polished-3.7.1" = {
       name = "polished";
       packageName = "polished";
-      version = "3.7.0";
+      version = "3.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/polished/-/polished-3.7.0.tgz";
-        sha512 = "1tnvQ2wsxfR/DyPE2Xu9sRbnLAwXAarCWiZJ8Hfirw59bTigqjbzEWSAmzYizT6ocQW995V8n7RP48jq50DjJA==";
+        url = "https://registry.npmjs.org/polished/-/polished-3.7.1.tgz";
+        sha512 = "/QgHrNGYwIA4mwxJ/7FSvalUJsm7KNfnXiScVSEG2Xa5qxDeBn4nmdjN2pW00mkM2Tts64ktc47U8F7Ed1BRAA==";
       };
     };
     "polyraf-1.1.0" = {
@@ -43295,13 +44501,13 @@ let
         sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
       };
     };
-    "postcss-8.1.10" = {
+    "postcss-8.2.7" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.1.10";
+      version = "8.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.1.10.tgz";
-        sha512 = "iBXEV5VTTYaRRdxiFYzTtuv2lGMQBExqkZKSzkJe+Fl6rvQrA/49UVGKqB+LG54hpW/TtDBMGds8j33GFNW7pg==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.2.7.tgz";
+        sha512 = "DsVLH3xJzut+VT+rYr0mtvOtpTjSyqDwPf5EZWXcb0uAKfitGpTY9Ec+afi2+TgdN8rWS9Cs88UDYehKo/RvOw==";
       };
     };
     "postcss-calc-7.0.5" = {
@@ -43475,15 +44681,6 @@ let
         sha512 = "D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==";
       };
     };
-    "postcss-modules-3.2.2" = {
-      name = "postcss-modules";
-      packageName = "postcss-modules";
-      version = "3.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-modules/-/postcss-modules-3.2.2.tgz";
-        sha512 = "JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw==";
-      };
-    };
     "postcss-modules-extract-imports-1.1.0" = {
       name = "postcss-modules-extract-imports";
       packageName = "postcss-modules-extract-imports";
@@ -43772,13 +44969,13 @@ let
         sha512 = "gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==";
       };
     };
-    "postcss-svgo-4.0.2" = {
+    "postcss-svgo-4.0.3" = {
       name = "postcss-svgo";
       packageName = "postcss-svgo";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz";
-        sha512 = "C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==";
+        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz";
+        sha512 = "NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==";
       };
     };
     "postcss-syntax-0.36.2" = {
@@ -43925,13 +45122,13 @@ let
         sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==";
       };
     };
-    "prebuild-install-6.0.0" = {
+    "prebuild-install-6.1.1" = {
       name = "prebuild-install";
       packageName = "prebuild-install";
-      version = "6.0.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.0.0.tgz";
-        sha512 = "h2ZJ1PXHKWZpp1caLw0oX9sagVpL2YTk+ZwInQbQ3QqNd4J03O6MpFNmMTJlkfgPENWqe5kP0WjQLqz5OjLfsw==";
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.1.tgz";
+        sha512 = "M+cKwofFlHa5VpTWub7GLg5RLcunYIcLqtY5pKcls/u7xaAb8FrXZ520qY8rkpYy5xw90tYCyMO0MP5ggzR3Sw==";
       };
     };
     "precinct-6.3.1" = {
@@ -44042,13 +45239,13 @@ let
         sha1 = "994b02aa46f699c50b6257b5faaa7fe2557e62d6";
       };
     };
-    "prettier-eslint-11.0.0" = {
+    "prettier-eslint-12.0.0" = {
       name = "prettier-eslint";
       packageName = "prettier-eslint";
-      version = "11.0.0";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-11.0.0.tgz";
-        sha512 = "ACjL7T8m10HCO7DwYdXwhNWuZzQv86JkZAhVpzFV9brTMWi3i6LhqoELFaXf6RetDngujz89tnbDmGyvDl+rzA==";
+        url = "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-12.0.0.tgz";
+        sha512 = "N8SGGQwAosISXTNl1E57sBbtnqUGlyRWjcfIUxyD3HF4ynehA9GZ8IfJgiep/OfYvCof/JEpy9ZqSl250Wia7A==";
       };
     };
     "prettier-eslint-8.8.2" = {
@@ -44060,13 +45257,13 @@ let
         sha512 = "2UzApPuxi2yRoyMlXMazgR6UcH9DKJhNgCviIwY3ixZ9THWSSrUww5vkiZ3C48WvpFl1M1y/oU63deSy1puWEA==";
       };
     };
-    "prettier-plugin-svelte-2.1.4" = {
+    "prettier-plugin-svelte-2.2.0" = {
       name = "prettier-plugin-svelte";
       packageName = "prettier-plugin-svelte";
-      version = "2.1.4";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.1.4.tgz";
-        sha512 = "fQfcIyl04VNWI3+JeseT+gLljs2bJJifbKmrTe8yMnTCdv0unfM1jnY2p4etzCfOj6skC1FPFaqBayYk3+7ZZg==";
+        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.2.0.tgz";
+        sha512 = "Xdmqgr71tAuMqqzNCK52/v94g/Yv7V7lz+nmbO9NEA+9ol15VV3uUHOfydMNOo3SWvFaVlBcp947ebEaMWqVfQ==";
       };
     };
     "prettier-stylelint-0.4.2" = {
@@ -44087,6 +45284,15 @@ let
         sha512 = "urhX7U/F+fu8sztEs/Z7CxNS8PdEytEwGKhQaH5fxxCdRmHGT45FoClyDlcZrMk9cK/8JpX/asFmTOHtSGJfLg==";
       };
     };
+    "pretty-bytes-1.0.4" = {
+      name = "pretty-bytes";
+      packageName = "pretty-bytes";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz";
+        sha1 = "0a22e8210609ad35542f8c8d5d2159aff0751c84";
+      };
+    };
     "pretty-bytes-4.0.2" = {
       name = "pretty-bytes";
       packageName = "pretty-bytes";
@@ -44096,13 +45302,13 @@ let
         sha1 = "b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9";
       };
     };
-    "pretty-bytes-5.5.0" = {
+    "pretty-bytes-5.6.0" = {
       name = "pretty-bytes";
       packageName = "pretty-bytes";
-      version = "5.5.0";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz";
-        sha512 = "p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==";
+        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz";
+        sha512 = "FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==";
       };
     };
     "pretty-error-2.1.2" = {
@@ -44168,6 +45374,15 @@ let
         sha512 = "4gaK1skD2gwscCfkswYQRmddUb2GJZtzDGRjHWadVHtK/DIKFufa12MvES6/xu1tVbUYeia5bmLcwJtZJQUqnw==";
       };
     };
+    "pretty-ms-7.0.1" = {
+      name = "pretty-ms";
+      packageName = "pretty-ms";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz";
+        sha512 = "973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==";
+      };
+    };
     "pretty-quick-3.1.0" = {
       name = "pretty-quick";
       packageName = "pretty-quick";
@@ -44267,15 +45482,6 @@ let
         sha512 = "abAuk3ZDyQvPLY6MygtwaDTUBIZ0C5wMMuX1jXa0svazV+keTwn7cPobRv4WYA9ctsDUztm/9CYu4y2TPL08xw==";
       };
     };
-    "probe-image-size-5.0.0" = {
-      name = "probe-image-size";
-      packageName = "probe-image-size";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/probe-image-size/-/probe-image-size-5.0.0.tgz";
-        sha512 = "V6uBYw5eBc5UVIE7MUZD6Nxg0RYuGDWLDenEn0B1WC6PcTvn1xdQ6HLDDuznefsiExC6rNrCz7mFRBo0f3Xekg==";
-      };
-    };
     "probe-image-size-6.0.0" = {
       name = "probe-image-size";
       packageName = "probe-image-size";
@@ -44285,6 +45491,15 @@ let
         sha512 = "99PZ5+RU4gqiTfK5ZDMDkZtn6eL4WlKfFyVJV7lFQvH3iGmQ85DqMTOdxorERO26LHkevR2qsxnHp0x/2UDJPA==";
       };
     };
+    "probing-1.3.5" = {
+      name = "probing";
+      packageName = "probing";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/probing/-/probing-1.3.5.tgz";
+        sha512 = "Pn7gjrWqgsCyTIlSgTvhni17I3BsLXXL/QLDcDhEPI84xsyUWpSqiUw7Vr15kKvtPABrwtFb6k81v4kWGLo1ZQ==";
+      };
+    };
     "process-0.10.1" = {
       name = "process";
       packageName = "process";
@@ -44366,6 +45581,15 @@ let
         sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==";
       };
     };
+    "progress-stream-1.2.0" = {
+      name = "progress-stream";
+      packageName = "progress-stream";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz";
+        sha1 = "2cd3cfea33ba3a89c9c121ec3347abe9ab125f77";
+      };
+    };
     "progress-string-1.2.2" = {
       name = "progress-string";
       packageName = "progress-string";
@@ -44420,6 +45644,24 @@ let
         sha512 = "mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==";
       };
     };
+    "promise-deferred-2.0.3" = {
+      name = "promise-deferred";
+      packageName = "promise-deferred";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise-deferred/-/promise-deferred-2.0.3.tgz";
+        sha512 = "n10XaoznCzLfyPFOlEE8iurezHpxrYzyjgq/1eW9Wk1gJwur/N7BdBmjJYJpqMeMcXK4wEbzo2EvZQcqjYcKUQ==";
+      };
+    };
+    "promise-fs-2.1.1" = {
+      name = "promise-fs";
+      packageName = "promise-fs";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise-fs/-/promise-fs-2.1.1.tgz";
+        sha512 = "43p7e4QzAQ3w6eyN0+gbBL7jXiZFWLWYITg9wIObqkBySu/a5K1EDcQ/S6UyB/bmiZWDA4NjTbcopKLTaKcGSw==";
+      };
+    };
     "promise-inflight-1.0.1" = {
       name = "promise-inflight";
       packageName = "promise-inflight";
@@ -44474,6 +45716,15 @@ let
         sha512 = "A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA==";
       };
     };
+    "promiseback-2.0.3" = {
+      name = "promiseback";
+      packageName = "promiseback";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promiseback/-/promiseback-2.0.3.tgz";
+        sha512 = "VZXdCwS0ppVNTIRfNsCvVwJAaP2b+pxQF7lM8DMWfmpNWyTxB6O5YNbzs+8z0ki/KIBHKHk308NTIl4kJUem3w==";
+      };
+    };
     "promised-temp-0.1.0" = {
       name = "promised-temp";
       packageName = "promised-temp";
@@ -44555,6 +45806,15 @@ let
         sha512 = "awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==";
       };
     };
+    "prompts-2.4.1" = {
+      name = "prompts";
+      packageName = "prompts";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz";
+        sha512 = "EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==";
+      };
+    };
     "promzard-0.3.0" = {
       name = "promzard";
       packageName = "promzard";
@@ -44582,6 +45842,15 @@ let
         sha1 = "159fb06193d32003f4b3691dd2ec1a634aa80d1d";
       };
     };
+    "proper-lockfile-4.1.2" = {
+      name = "proper-lockfile";
+      packageName = "proper-lockfile";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz";
+        sha512 = "TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==";
+      };
+    };
     "property-information-5.6.0" = {
       name = "property-information";
       packageName = "property-information";
@@ -44636,15 +45905,6 @@ let
         sha512 = "IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==";
       };
     };
-    "protoduck-5.0.1" = {
-      name = "protoduck";
-      packageName = "protoduck";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz";
-        sha512 = "WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==";
-      };
-    };
     "proxy-addr-1.1.5" = {
       name = "proxy-addr";
       packageName = "proxy-addr";
@@ -44663,15 +45923,6 @@ let
         sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
       };
     };
-    "proxy-agent-3.1.1" = {
-      name = "proxy-agent";
-      packageName = "proxy-agent";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz";
-        sha512 = "WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==";
-      };
-    };
     "proxy-agent-4.0.1" = {
       name = "proxy-agent";
       packageName = "proxy-agent";
@@ -44744,6 +45995,24 @@ let
         sha512 = "0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==";
       };
     };
+    "psbt-1.1.8" = {
+      name = "psbt";
+      packageName = "psbt";
+      version = "1.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psbt/-/psbt-1.1.8.tgz";
+        sha512 = "gnGq1ikGhvcsJij9BU2DZWBfXp09yRi/72+790hNwPaMPobgWrdlQ6sg6rNyDNYf+lwzYV8WIyHOLk2zH/7fGg==";
+      };
+    };
+    "psbt-1.1.9" = {
+      name = "psbt";
+      packageName = "psbt";
+      version = "1.1.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psbt/-/psbt-1.1.9.tgz";
+        sha512 = "lL4unvP9nZFCWlqpKvWUEfTKVpkVyGKeBsYH/f76NNlgn1PF87Glw7opoAJQ5m0xfUTeUqy8J6ukIt4tFCqi1Q==";
+      };
+    };
     "pseudomap-1.0.2" = {
       name = "pseudomap";
       packageName = "pseudomap";
@@ -44798,13 +46067,13 @@ let
         sha512 = "TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==";
       };
     };
-    "pug-code-gen-2.0.2" = {
+    "pug-code-gen-2.0.3" = {
       name = "pug-code-gen";
       packageName = "pug-code-gen";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz";
-        sha512 = "kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==";
+        url = "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.3.tgz";
+        sha512 = "r9sezXdDuZJfW9J91TN/2LFbiqDhmltTFmGpHTsGdrNGp3p4SxAjjXEfnuK2e4ywYsRIVP0NeLbSAMHUcaX1EA==";
       };
     };
     "pug-error-1.3.3" = {
@@ -44888,15 +46157,6 @@ let
         sha512 = "GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==";
       };
     };
-    "puka-1.0.1" = {
-      name = "puka";
-      packageName = "puka";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/puka/-/puka-1.0.1.tgz";
-        sha512 = "ssjRZxBd7BT3dte1RR3VoeT2cT/ODH8x+h0rUF1rMqB0srHYf48stSDWfiYakTp5UBZMxroZhB2+ExLDHm7W3g==";
-      };
-    };
     "pull-abortable-4.0.0" = {
       name = "pull-abortable";
       packageName = "pull-abortable";
@@ -44915,6 +46175,15 @@ let
         sha1 = "146b36e3e043d7a666b59a14165fdd3bef3cf44c";
       };
     };
+    "pull-async-filter-1.0.0" = {
+      name = "pull-async-filter";
+      packageName = "pull-async-filter";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pull-async-filter/-/pull-async-filter-1.0.0.tgz";
+        sha1 = "ebc3617d9de2463908c89fd01671c727564d6831";
+      };
+    };
     "pull-awaitable-1.0.0" = {
       name = "pull-awaitable";
       packageName = "pull-awaitable";
@@ -45014,6 +46283,15 @@ let
         sha512 = "/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==";
       };
     };
+    "pull-drain-gently-1.1.0" = {
+      name = "pull-drain-gently";
+      packageName = "pull-drain-gently";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pull-drain-gently/-/pull-drain-gently-1.1.0.tgz";
+        sha512 = "ZUPsNrn8jkU6Y2B4w8Jz3gXAmjSpb+qn4AQhAL8qTWUHULglH16ANr+6qnfOEa1kUoUGVCQZaORTd2NSQFAnhA==";
+      };
+    };
     "pull-file-0.5.0" = {
       name = "pull-file";
       packageName = "pull-file";
@@ -45248,6 +46526,15 @@ let
         sha1 = "51a4193ce9c8d7215d95adad45e2bcdb8493b23a";
       };
     };
+    "pull-pause-0.0.2" = {
+      name = "pull-pause";
+      packageName = "pull-pause";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pull-pause/-/pull-pause-0.0.2.tgz";
+        sha1 = "19d45be8faa615fa556f14a96fd733462c37fba3";
+      };
+    };
     "pull-ping-2.0.3" = {
       name = "pull-ping";
       packageName = "pull-ping";
@@ -45509,13 +46796,13 @@ let
         sha512 = "l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==";
       };
     };
-    "puppeteer-5.5.0" = {
+    "puppeteer-8.0.0" = {
       name = "puppeteer";
       packageName = "puppeteer";
-      version = "5.5.0";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-5.5.0.tgz";
-        sha512 = "OM8ZvTXAhfgFA7wBIIGlPQzvyEETzDjeRa4mZRCRHxYL+GNH5WAuYUQdja3rpWZvkX/JKqmuVgbsxDNsDFjMEg==";
+        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-8.0.0.tgz";
+        sha512 = "D0RzSWlepeWkxPPdK3xhTcefj8rjah1791GE82Pdjsri49sy11ci/JQsAO8K2NRukqvwEtcI+ImP5F4ZiMvtIQ==";
       };
     };
     "purgecss-2.3.0" = {
@@ -45563,6 +46850,15 @@ let
         sha1 = "15931d3cd967ade52206f523aa7331aef7d43af7";
       };
     };
+    "pyright-1.1.128" = {
+      name = "pyright";
+      packageName = "pyright";
+      version = "1.1.128";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.128.tgz";
+        sha512 = "p+QG3W+PEQs6raeix/oIBU/eKRL487WftEFI3PVR7npF/2fzh6v4ucNjlF/jPAfP1x/ulInqeyeqvwLwvajTwA==";
+      };
+    };
     "q-0.9.7" = {
       name = "q";
       packageName = "q";
@@ -45689,6 +46985,15 @@ let
         sha1 = "c31d9b74ec27df75e543a86c78728ed8d4623607";
       };
     };
+    "qs-6.10.1" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz";
+        sha512 = "M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==";
+      };
+    };
     "qs-6.3.2" = {
       name = "qs";
       packageName = "qs";
@@ -45725,13 +47030,13 @@ let
         sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
-    "qs-6.9.6" = {
+    "qs-6.9.1" = {
       name = "qs";
       packageName = "qs";
-      version = "6.9.6";
+      version = "6.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz";
-        sha512 = "TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==";
+        url = "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz";
+        sha512 = "Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==";
       };
     };
     "query-string-1.0.1" = {
@@ -45761,13 +47066,13 @@ let
         sha512 = "gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==";
       };
     };
-    "query-string-6.14.0" = {
+    "query-string-6.14.1" = {
       name = "query-string";
       packageName = "query-string";
-      version = "6.14.0";
+      version = "6.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/query-string/-/query-string-6.14.0.tgz";
-        sha512 = "In3o+lUxlgejoVJgwEdYtdxrmlL0cQWJXj0+kkI7RWVo7hg5AhFtybeKlC9Dpgbr8eOC4ydpEh8017WwyfzqVQ==";
+        url = "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz";
+        sha512 = "XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==";
       };
     };
     "querystring-0.2.0" = {
@@ -45779,6 +47084,15 @@ let
         sha1 = "b209849203bb25df820da756e747005878521620";
       };
     };
+    "querystring-0.2.1" = {
+      name = "querystring";
+      packageName = "querystring";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz";
+        sha512 = "wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==";
+      };
+    };
     "querystring-es3-0.2.1" = {
       name = "querystring-es3";
       packageName = "querystring-es3";
@@ -45806,22 +47120,31 @@ let
         sha512 = "AMD7w5hRXcFSb8s9u38acBZ+309u6GsiibP4/0YacJeaurRshogB7v/ZcVPxP5gD5+zIw6ixRHdutiYUJfwKHw==";
       };
     };
-    "queue-microtask-1.2.2" = {
+    "queue-6.0.2" = {
+      name = "queue";
+      packageName = "queue";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz";
+        sha512 = "iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==";
+      };
+    };
+    "queue-microtask-1.2.3" = {
       name = "queue-microtask";
       packageName = "queue-microtask";
-      version = "1.2.2";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz";
-        sha512 = "dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==";
+        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz";
+        sha512 = "NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==";
       };
     };
-    "quick-format-unescaped-4.0.1" = {
+    "quick-format-unescaped-4.0.3" = {
       name = "quick-format-unescaped";
       packageName = "quick-format-unescaped";
-      version = "4.0.1";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.1.tgz";
-        sha512 = "RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==";
+        url = "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz";
+        sha512 = "MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==";
       };
     };
     "quick-lru-1.1.0" = {
@@ -45959,13 +47282,13 @@ let
         sha512 = "xZW1BT26g+gl8AF1kC/oXX97jCMVoLIbf6yx4eVMwLgOddGhhkJygimnfERSEmhUKiGs3DTymNao6wf/P23Nkg==";
       };
     };
-    "random-access-file-2.1.5" = {
+    "random-access-file-2.2.0" = {
       name = "random-access-file";
       packageName = "random-access-file";
-      version = "2.1.5";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/random-access-file/-/random-access-file-2.1.5.tgz";
-        sha512 = "lqmUGgF9X+LD0XSeWSHcs7U2nSLYp+RQvkDDqKWoxW8jcd13tZ00G6PHV32OZqDIHmS9ewoEUEa6jcvyB7UCvg==";
+        url = "https://registry.npmjs.org/random-access-file/-/random-access-file-2.2.0.tgz";
+        sha512 = "B744003Mj7v3EcuPl9hCiB2Ot4aZjgtU2mV6yFY1THiWU/XfGf1uSadR+SlQdJcwHgAWeG7Lbos0aUqjtj8FQg==";
       };
     };
     "random-access-idb-1.2.1" = {
@@ -46211,6 +47534,15 @@ let
         sha512 = "//LRTblJEcqbmmro1GCmZ39qZXD+JqzuD8Y5/IZU3Dhp3A1Yr0Xn68ks8MQ6qKfKvYCWDveUmRDKDA40c+sCXw==";
       };
     };
+    "rcedit-2.3.0" = {
+      name = "rcedit";
+      packageName = "rcedit";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rcedit/-/rcedit-2.3.0.tgz";
+        sha512 = "h1gNEl9Oai1oijwyJ1WYqYSXTStHnOcv1KYljg/8WM4NAg3H1KBK3azIaKkQ1WQl+d7PoJpcBMscPfLXVKgCLQ==";
+      };
+    };
     "re-emitter-1.1.4" = {
       name = "re-emitter";
       packageName = "re-emitter";
@@ -46247,13 +47579,13 @@ let
         sha512 = "0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==";
       };
     };
-    "react-dev-utils-11.0.2" = {
+    "react-dev-utils-11.0.4" = {
       name = "react-dev-utils";
       packageName = "react-dev-utils";
-      version = "11.0.2";
+      version = "11.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.2.tgz";
-        sha512 = "xG7GlMoYkrgc2M1kDCHKRywXMDbFnjOB+/VzpytQyYBusEzR8NlGTMmUbvN86k94yyKu5XReHB8eZC2JZrNchQ==";
+        url = "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz";
+        sha512 = "dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==";
       };
     };
     "react-devtools-core-4.10.1" = {
@@ -46319,13 +47651,13 @@ let
         sha512 = "X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==";
       };
     };
-    "react-tabs-3.2.0" = {
+    "react-tabs-3.2.1" = {
       name = "react-tabs";
       packageName = "react-tabs";
-      version = "3.2.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-tabs/-/react-tabs-3.2.0.tgz";
-        sha512 = "q7oNapNRoYTQq8gDhApXwdBheuuN5qQ4YvUaQUAkb6OSSttJulBAvxJ0FS6W5uojvMxbbIZKu1f2I+GXISoLjw==";
+        url = "https://registry.npmjs.org/react-tabs/-/react-tabs-3.2.1.tgz";
+        sha512 = "M7ERQvJgBVLTyojFmC3G4tpaJuMmUtsnYenVQm2oA1NjDrGXq1UuzHgxhVTDwimkJcKEbzgWCybXFSHQ/+2bsA==";
       };
     };
     "read-1.0.7" = {
@@ -46373,13 +47705,13 @@ let
         sha512 = "CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==";
       };
     };
-    "read-cmd-shim-1.0.5" = {
+    "read-cmd-shim-2.0.0" = {
       name = "read-cmd-shim";
       packageName = "read-cmd-shim";
-      version = "1.0.5";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz";
-        sha512 = "v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA==";
+        url = "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz";
+        sha512 = "HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==";
       };
     };
     "read-last-lines-1.6.0" = {
@@ -46418,6 +47750,15 @@ let
         sha512 = "D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==";
       };
     };
+    "read-package-json-3.0.1" = {
+      name = "read-package-json";
+      packageName = "read-package-json";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz";
+        sha512 = "aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==";
+      };
+    };
     "read-package-json-fast-1.2.2" = {
       name = "read-package-json-fast";
       packageName = "read-package-json-fast";
@@ -46427,13 +47768,13 @@ let
         sha512 = "39DbPJjkltEzfXJXB6D8/Ir3GFOU2YbSKa2HaB/Y3nKrc/zY+0XrALpID6/13ezWyzqvOHrBbR4t4cjQuTdBVQ==";
       };
     };
-    "read-package-json-fast-2.0.1" = {
+    "read-package-json-fast-2.0.2" = {
       name = "read-package-json-fast";
       packageName = "read-package-json-fast";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.1.tgz";
-        sha512 = "bp6z0tdgLy9KzdfENDIw/53HWAolOVoQTRWXv7PUiqAo3YvvoUVeLr7RWPWq+mu7KUOu9kiT4DvxhUgNUBsvug==";
+        url = "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.2.tgz";
+        sha512 = "5fyFUyO9B799foVk4n6ylcoAktG/FbE3jwRKxvwaeSrIunaoMc0u81dzXxjeAFKOce7O5KncdfwpGvvs6r5PsQ==";
       };
     };
     "read-package-tree-5.3.1" = {
@@ -46454,6 +47795,15 @@ let
         sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
       };
     };
+    "read-pkg-2.0.0" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz";
+        sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
+      };
+    };
     "read-pkg-3.0.0" = {
       name = "read-pkg";
       packageName = "read-pkg";
@@ -46481,6 +47831,15 @@ let
         sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
       };
     };
+    "read-pkg-up-2.0.0" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
+        sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
+      };
+    };
     "read-pkg-up-3.0.0" = {
       name = "read-pkg-up";
       packageName = "read-pkg-up";
@@ -46607,6 +47966,15 @@ let
         sha512 = "+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA==";
       };
     };
+    "readable-web-to-node-stream-3.0.1" = {
+      name = "readable-web-to-node-stream";
+      packageName = "readable-web-to-node-stream";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.1.tgz";
+        sha512 = "4zDC6CvjUyusN7V0QLsXVB7pJCD9+vtrM9bYDRv6uBQ+SKfx36rp5AFNPRgh9auKRul/a1iFZJYXcCbwRL+SaA==";
+      };
+    };
     "readdir-glob-1.1.1" = {
       name = "readdir-glob";
       packageName = "readdir-glob";
@@ -46652,6 +48020,15 @@ let
         sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==";
       };
     };
+    "readdirp-3.6.0" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz";
+        sha512 = "hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==";
+      };
+    };
     "readline-1.3.0" = {
       name = "readline";
       packageName = "readline";
@@ -46841,13 +48218,13 @@ let
         sha1 = "52ed09dacac108f1a631c07e9b69941e7a19504b";
       };
     };
-    "redoc-2.0.0-rc.49" = {
+    "redoc-2.0.0-rc.50" = {
       name = "redoc";
       packageName = "redoc";
-      version = "2.0.0-rc.49";
+      version = "2.0.0-rc.50";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.49.tgz";
-        sha512 = "mCdO0kHnnmwieCq56R5LDJ5eIEhLCoq/le1m0AlMFkIkxMJWZfmq9y3QYq6Fe4Uec73kZgG7gN3qYSGBMHtgQQ==";
+        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.50.tgz";
+        sha512 = "SngLJr1YEDWIfp3YGBax8H8HQQ/gIqmf9YEmWsMACbAevsf7rt2tkTwALdjOf1pD27bVYfbZm1nud0QenoXsng==";
       };
     };
     "reduce-component-1.0.1" = {
@@ -46877,6 +48254,24 @@ let
         sha512 = "pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==";
       };
     };
+    "redux-4.0.5" = {
+      name = "redux";
+      packageName = "redux";
+      version = "4.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz";
+        sha512 = "VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==";
+      };
+    };
+    "reflect-metadata-0.1.13" = {
+      name = "reflect-metadata";
+      packageName = "reflect-metadata";
+      version = "0.1.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz";
+        sha512 = "Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==";
+      };
+    };
     "reftools-1.1.8" = {
       name = "reftools";
       packageName = "reftools";
@@ -46922,13 +48317,13 @@ let
         sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
       };
     };
-    "regenerator-runtime-0.13.7" = {
+    "regenerator-runtime-0.13.8" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
-      version = "0.13.7";
+      version = "0.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
-        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.8.tgz";
+        sha512 = "o/ASGwgZ6UiVjspr4YnzHKF1NbBdX+mCPkSeymofk/d7I+csCYn3ZgZMMVtXeecpT8DBiI2nAlYkHd+xNCqu4A==";
       };
     };
     "regenerator-transform-0.14.5" = {
@@ -47057,13 +48452,13 @@ let
         sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
       };
     };
-    "regjsparser-0.6.7" = {
+    "regjsparser-0.6.9" = {
       name = "regjsparser";
       packageName = "regjsparser";
-      version = "0.6.7";
+      version = "0.6.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz";
-        sha512 = "ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==";
+        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz";
+        sha512 = "ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==";
       };
     };
     "rehype-parse-7.0.1" = {
@@ -47093,15 +48488,6 @@ let
         sha512 = "DitR4wnEvYQEFU8pRPwldGMGW76LM29fvz8s7oTYMwZBMSqNFtBr8eAts/I55LODCQm6b4jzdgFQ+/c6v7RmdA==";
       };
     };
-    "rehype-stringify-8.0.0" = {
-      name = "rehype-stringify";
-      packageName = "rehype-stringify";
-      version = "8.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-8.0.0.tgz";
-        sha512 = "VkIs18G0pj2xklyllrPSvdShAV36Ff3yE5PUO9u36f6+2qJFnn22Z5gKwBOwgXviux4UC7K+/j13AnZfPICi/g==";
-      };
-    };
     "reinterval-1.1.0" = {
       name = "reinterval";
       packageName = "reinterval";
@@ -47201,13 +48587,22 @@ let
         sha1 = "592a347bdd3d5881f4f080c98b5b152fb1407a92";
       };
     };
-    "remark-mdx-2.0.0-next.8" = {
+    "remark-mdx-2.0.0-next.9" = {
       name = "remark-mdx";
       packageName = "remark-mdx";
+      version = "2.0.0-next.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.0.0-next.9.tgz";
+        sha512 = "I5dCKP5VE18SMd5ycIeeEk8Hl6oaldUY6PIvjrfm65l7d0QRnLqknb62O2g3QEmOxCswcHTtwITtz6rfUIVs+A==";
+      };
+    };
+    "remark-mdxjs-2.0.0-next.8" = {
+      name = "remark-mdxjs";
+      packageName = "remark-mdxjs";
       version = "2.0.0-next.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.0.0-next.8.tgz";
-        sha512 = "mjP0yo6BgjYrx5a+gKWYRFWbGnRiWi4Fdf17xGCr9VkSMnG4Dyo06spqbaLfHwl0KkQ/RQZlR2sn1mKnYduJdw==";
+        url = "https://registry.npmjs.org/remark-mdxjs/-/remark-mdxjs-2.0.0-next.8.tgz";
+        sha512 = "Z/+0eWc7pBEABwg3a5ptL+vCTWHYMFnYzpLoJxTm2muBSk8XyB/CL+tEJ6SV3Q/fScHX2dtG4JRcGSpbZFLazQ==";
       };
     };
     "remark-message-control-6.0.0" = {
@@ -47237,6 +48632,15 @@ let
         sha512 = "b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==";
       };
     };
+    "remark-parse-6.0.3" = {
+      name = "remark-parse";
+      packageName = "remark-parse";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz";
+        sha512 = "QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==";
+      };
+    };
     "remark-parse-8.0.3" = {
       name = "remark-parse";
       packageName = "remark-parse";
@@ -47516,13 +48920,13 @@ let
         sha512 = "eBEh+GzJAftUnex6tcL6eV2JCifY0+sZMIUpUPOVXbs2nV5hla4ZMmO3icYKGuGVuQ2zHE9evh4OrRcH4iyYYw==";
       };
     };
-    "request-light-0.3.0" = {
+    "request-light-0.4.0" = {
       name = "request-light";
       packageName = "request-light";
-      version = "0.3.0";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request-light/-/request-light-0.3.0.tgz";
-        sha512 = "xlVlZVT0ZvCT+c3zm3SjeFCzchoQxsUUmx5fkal0I6RIDJK+lmb1UYyKJ7WM4dTfnzHP4ElWwAf8Dli8c0/tVA==";
+        url = "https://registry.npmjs.org/request-light/-/request-light-0.4.0.tgz";
+        sha512 = "fimzjIVw506FBZLspTAXHdpvgvQebyjpNyLRd0e6drPPRq7gcrROeGWRyF81wLqFg5ijPgnOQbmfck5wdTqpSA==";
       };
     };
     "request-progress-2.0.1" = {
@@ -47822,6 +49226,15 @@ let
         sha1 = "32bb9e39c06d67338dc9378c0d6d6074566ad131";
       };
     };
+    "resolve-package-1.0.1" = {
+      name = "resolve-package";
+      packageName = "resolve-package";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-package/-/resolve-package-1.0.1.tgz";
+        sha1 = "686f70b188bd7d675f5bbc4282ccda060abb9d27";
+      };
+    };
     "resolve-url-0.2.1" = {
       name = "resolve-url";
       packageName = "resolve-url";
@@ -48065,13 +49478,13 @@ let
         sha1 = "eeeb88342fadbe8027c0f36ada921a13e6f96206";
       };
     };
-    "rfdc-1.2.0" = {
+    "rfdc-1.3.0" = {
       name = "rfdc";
       packageName = "rfdc";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rfdc/-/rfdc-1.2.0.tgz";
-        sha512 = "ijLyszTMmUrXvjSooucVQwimGUk84eRcmCuLV8Xghe3UO85mjUtRAHRyoMM6XtyqbECaXuBWx18La3523sXINA==";
+        url = "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz";
+        sha512 = "V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==";
       };
     };
     "rgb-regex-1.0.1" = {
@@ -48218,13 +49631,13 @@ let
         sha512 = "/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==";
       };
     };
-    "rollup-2.38.5" = {
+    "rollup-2.44.0" = {
       name = "rollup";
       packageName = "rollup";
-      version = "2.38.5";
+      version = "2.44.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz";
-        sha512 = "VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.44.0.tgz";
+        sha512 = "rGSF4pLwvuaH/x4nAS+zP6UNn5YUDWf/TeEU5IoXSZKBbKRNTCI3qMnYXKZgrC0D2KzS2baiOZt1OlqhMu5rnQ==";
       };
     };
     "rollup-plugin-babel-4.4.0" = {
@@ -48353,13 +49766,13 @@ let
         sha1 = "44e00858ebebc0133d58e40b2cd8a1fbb04203f5";
       };
     };
-    "rss-parser-3.11.0" = {
+    "rss-parser-3.12.0" = {
       name = "rss-parser";
       packageName = "rss-parser";
-      version = "3.11.0";
+      version = "3.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.11.0.tgz";
-        sha512 = "oTLoYW+bNqNwkz8OpGinBU9s3As0sdczQjETIZFgyAdi7AopyhoVFGPIyFMYXXEY8hayKzD5CH+4CtmiPtJ89g==";
+        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.12.0.tgz";
+        sha512 = "aqD3E8iavcCdkhVxNDIdg1nkBI17jgqF+9OqPS1orwNaOgySdpvq6B+DoONLhzjzwV8mWg37sb60e4bmLK117A==";
       };
     };
     "rss-parser-3.7.1" = {
@@ -48551,6 +49964,15 @@ let
         sha512 = "trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==";
       };
     };
+    "rxjs-6.6.7" = {
+      name = "rxjs";
+      packageName = "rxjs";
+      version = "6.6.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz";
+        sha512 = "hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==";
+      };
+    };
     "s3-stream-upload-2.0.2" = {
       name = "s3-stream-upload";
       packageName = "s3-stream-upload";
@@ -48623,6 +50045,15 @@ let
         sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     };
+    "safe-compare-1.1.4" = {
+      name = "safe-compare";
+      packageName = "safe-compare";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-compare/-/safe-compare-1.1.4.tgz";
+        sha512 = "b9wZ986HHCo/HbKrRpBJb2kqXMK9CEWIE1egeEvZsYn69ay3kdfl9nG3RyOcR+jInTDf7a86WQ1d4VJX7goSSQ==";
+      };
+    };
     "safe-join-0.1.3" = {
       name = "safe-join";
       packageName = "safe-join";
@@ -48695,13 +50126,13 @@ let
         sha512 = "y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==";
       };
     };
-    "sass-1.32.7" = {
+    "sass-1.32.8" = {
       name = "sass";
       packageName = "sass";
-      version = "1.32.7";
+      version = "1.32.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.32.7.tgz";
-        sha512 = "C8Z4bjqGWnsYa11o8hpKAuoyFdRhrSHcYjCr+XAWVPSIQqC8mp2f5Dx4em0dKYehPzg5XSekmCjqJnEZbIls9A==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.32.8.tgz";
+        sha512 = "Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ==";
       };
     };
     "sax-0.5.8" = {
@@ -48848,6 +50279,15 @@ let
         sha1 = "033d60a3ad20ecf2e00940d14f97823465774335";
       };
     };
+    "secp256k1-4.0.2" = {
+      name = "secp256k1";
+      packageName = "secp256k1";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz";
+        sha512 = "UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==";
+      };
+    };
     "secret-handshake-1.1.20" = {
       name = "secret-handshake";
       packageName = "secret-handshake";
@@ -49073,6 +50513,15 @@ let
         sha512 = "tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==";
       };
     };
+    "semver-7.3.5" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz";
+        sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
+      };
+    };
     "semver-compare-1.0.0" = {
       name = "semver-compare";
       packageName = "semver-compare";
@@ -49181,15 +50630,6 @@ let
         sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
-    "sentence-case-3.0.4" = {
-      name = "sentence-case";
-      packageName = "sentence-case";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz";
-        sha512 = "8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==";
-      };
-    };
     "sentence-splitter-2.3.2" = {
       name = "sentence-splitter";
       packageName = "sentence-splitter";
@@ -49226,15 +50666,6 @@ let
         sha1 = "ae02af3a424793d8ccbf212d69174e0c54dffe38";
       };
     };
-    "serialize-error-5.0.0" = {
-      name = "serialize-error";
-      packageName = "serialize-error";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz";
-        sha512 = "/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==";
-      };
-    };
     "serialize-error-6.0.0" = {
       name = "serialize-error";
       packageName = "serialize-error";
@@ -49334,13 +50765,13 @@ let
         sha1 = "f13bf928e42b9c3e79383e61cc3998b5d14e6cdd";
       };
     };
-    "service-runner-2.8.1" = {
+    "service-runner-2.8.2" = {
       name = "service-runner";
       packageName = "service-runner";
-      version = "2.8.1";
+      version = "2.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.8.1.tgz";
-        sha512 = "YAJ9JPJ9w84iLj2VR5wUkiFvPKUp5vApOzDTEPZ97t5wmPN8LbyAKKKG4hyPuFlpCb00F0YGdfemi0A1dkpGPw==";
+        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.8.2.tgz";
+        sha512 = "SspUqYN+hp8fB5qhG9PbTzIPL3ze5wKXThdyUny2BIA6wdT5MljVkYUCUMQgo5xjM4e95+qU+XrsvfM2ytt6ng==";
       };
     };
     "set-blocking-1.0.0" = {
@@ -49712,13 +51143,13 @@ let
         sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
       };
     };
-    "sign-addon-3.1.0" = {
+    "sign-addon-3.3.0" = {
       name = "sign-addon";
       packageName = "sign-addon";
-      version = "3.1.0";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sign-addon/-/sign-addon-3.1.0.tgz";
-        sha512 = "zZ7nKc5/3QWM3skYBosGDvYQf2jkKhW2u8BELrZoN1wgCSOnwsV9T47Vx9uaNbA3CyZ+V9XSA0tDVHoV1QfVPw==";
+        url = "https://registry.npmjs.org/sign-addon/-/sign-addon-3.3.0.tgz";
+        sha512 = "TZNZfxRb5jnNcGI8gbyGvaI3kLw+M0O9p7yas2eTu3WpLZ66Wy+FAhYOccgpeQQAcKtwf4WaSnfPKYTBBWWiDQ==";
       };
     };
     "signal-exit-3.0.3" = {
@@ -49802,13 +51233,13 @@ let
         sha512 = "rohCHmEjD/ESXFLxF4bVeqgdb4Awc65ZyyuCKl3f7BvgMbZOBa/Ye3HN/GFnvruiUOAWWNupxhz3Rz5/3vJLTg==";
       };
     };
-    "simple-git-2.34.2" = {
+    "simple-git-2.37.0" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "2.34.2";
+      version = "2.37.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.34.2.tgz";
-        sha512 = "/EX4FtcpAj5L/Bs5zgaBGYDrnkrKflFVNppNLH9VXpIjZBLHx5cZ6/mOYJCoKXKlLRuk3iTvzrIsHo7v42zWHg==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.37.0.tgz";
+        sha512 = "ZK6qRnP+Xa2v23UEZDNHUfzswsuNCDHOQpWZRkpqNaXn7V5wVBBx3zRJLji3pROJGzrzA7mXwY7preL5EKuAaQ==";
       };
     };
     "simple-markdown-0.4.4" = {
@@ -49829,13 +51260,13 @@ let
         sha1 = "4e421f485ac7b13b08077a4476934d52c5ba3bb3";
       };
     };
-    "simple-peer-9.9.3" = {
+    "simple-peer-9.10.0" = {
       name = "simple-peer";
       packageName = "simple-peer";
-      version = "9.9.3";
+      version = "9.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-peer/-/simple-peer-9.9.3.tgz";
-        sha512 = "T3wuv0UqBpDTV0x0pJPPsz4thy0tC0fTOHE4g9+AF43RUxxT+MWeXVtdQcK5Xuzv/XTVrB2NrGzdfO1IFBqOkw==";
+        url = "https://registry.npmjs.org/simple-peer/-/simple-peer-9.10.0.tgz";
+        sha512 = "sKrKtca1UdmwdZIbvuT3iEL05tDGt/xdLP6+ej8rh1ADgtDk44yLaEZjIyPJ6c34zsSih46Ou7zUIT7e4hPK7g==";
       };
     };
     "simple-plist-1.1.1" = {
@@ -49856,13 +51287,13 @@ let
         sha512 = "TQl9rm4rdKAVmhO++sXAb8TNN0D6JAD5iyI1mqEPNpxUzTRrtm4aOG1pDf/5W/qCFihiaoK6uuL9rvQz1x1VKw==";
       };
     };
-    "simple-sha1-3.0.1" = {
+    "simple-sha1-3.1.0" = {
       name = "simple-sha1";
       packageName = "simple-sha1";
-      version = "3.0.1";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-sha1/-/simple-sha1-3.0.1.tgz";
-        sha512 = "q7ehqWfHc1VhOm7sW099YDZ4I0yYX7rqyhqqhHV1IYeUTjPOhHyD3mXvv8k2P+rO7+7c8R4/D+8ffzC9BE7Cqg==";
+        url = "https://registry.npmjs.org/simple-sha1/-/simple-sha1-3.1.0.tgz";
+        sha512 = "ArTptMRC1v08H8ihPD6l0wesKvMfF9e8XL5rIHPanI7kGOsSsbY514MwVu6X1PITHCTB2F08zB7cyEbfc4wQjg==";
       };
     };
     "simple-swizzle-0.2.2" = {
@@ -49919,6 +51350,15 @@ let
         sha1 = "c2f83f273a3e1a16edb0995661da0ed5ef033364";
       };
     };
+    "single-trailing-newline-1.0.0" = {
+      name = "single-trailing-newline";
+      packageName = "single-trailing-newline";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/single-trailing-newline/-/single-trailing-newline-1.0.0.tgz";
+        sha1 = "81f0ad2ad645181945c80952a5c1414992ee9664";
+      };
+    };
     "siphash24-1.1.1" = {
       name = "siphash24";
       packageName = "siphash24";
@@ -49937,6 +51377,15 @@ let
         sha512 = "bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==";
       };
     };
+    "sjcl-1.0.8" = {
+      name = "sjcl";
+      packageName = "sjcl";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sjcl/-/sjcl-1.0.8.tgz";
+        sha512 = "LzIjEQ0S0DpIgnxMEayM1rq9aGwGRG4OnZhCdjx7glTaJtf4zRfpg87ImfjSJjoW9vKpagd82McDOwbRT5kQKQ==";
+      };
+    };
     "skin-tone-1.0.0" = {
       name = "skin-tone";
       packageName = "skin-tone";
@@ -50072,13 +51521,13 @@ let
         sha1 = "e09f00899c09f5a7058edc36dd49f046fd50a82a";
       };
     };
-    "slugify-1.4.6" = {
+    "slugify-1.5.0" = {
       name = "slugify";
       packageName = "slugify";
-      version = "1.4.6";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/slugify/-/slugify-1.4.6.tgz";
-        sha512 = "ZdJIgv9gdrYwhXqxsH9pv7nXxjUEyQ6nqhngRxoAAOlmMGA28FDq5O4/5US4G2/Nod7d1ovNcgURQJ7kHq50KQ==";
+        url = "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz";
+        sha512 = "Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==";
       };
     };
     "smart-buffer-4.1.0" = {
@@ -50198,13 +51647,13 @@ let
         sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198";
       };
     };
-    "snyk-config-4.0.0-rc.2" = {
+    "snyk-config-4.0.0" = {
       name = "snyk-config";
       packageName = "snyk-config";
-      version = "4.0.0-rc.2";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-config/-/snyk-config-4.0.0-rc.2.tgz";
-        sha512 = "HIXpMCRp5IdQDFH/CY6WqOUt5X5Ec55KC9dFVjlMLe/2zeqsImJn1vbjpE5uBoLYIdYi1SteTqtsJhyJZWRK8g==";
+        url = "https://registry.npmjs.org/snyk-config/-/snyk-config-4.0.0.tgz";
+        sha512 = "E6jNe0oUjjzVASWBOAc/mA23DhbzABDF9MI6UZvl0gylh2NSXSXw2/LjlqMNOKL2c1qkbSkzLOdIX5XACoLCAQ==";
       };
     };
     "snyk-cpp-plugin-2.2.1" = {
@@ -50216,13 +51665,13 @@ let
         sha512 = "NFwVLMCqKTocY66gcim0ukF6e31VRDJqDapg5sy3vCHqlD1OCNUXSK/aI4VQEEndDrsnFmQepsL5KpEU0dDRIQ==";
       };
     };
-    "snyk-docker-plugin-4.16.0" = {
+    "snyk-docker-plugin-4.19.3" = {
       name = "snyk-docker-plugin";
       packageName = "snyk-docker-plugin";
-      version = "4.16.0";
+      version = "4.19.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-4.16.0.tgz";
-        sha512 = "bsKvWJ2ic5vzCcpjRWDTMumfXNuyIiQfsDcpNb/Hhev3UhKu6vb3KXaS6kPg360r5o/KxY7xOjW1L9VjZ0zZeA==";
+        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-4.19.3.tgz";
+        sha512 = "5WkXyT7uY5NrTOvEqxeMqb6dDcskT3c/gbHUTOyPuvE6tMut+OOYK8RRXbwZFeLzpS8asq4e1R7U7syYG3VXwg==";
       };
     };
     "snyk-go-parser-1.4.1" = {
@@ -50234,31 +51683,22 @@ let
         sha512 = "StU3uHB85VMEkcgXta63M0Fgd+9cs5sMCjQXTBoYTdE4dxarPn7U67yCuwkRRdZdny1ZXtzfY8LKns9i0+dy9w==";
       };
     };
-    "snyk-go-plugin-1.16.4" = {
+    "snyk-go-plugin-1.17.0" = {
       name = "snyk-go-plugin";
       packageName = "snyk-go-plugin";
-      version = "1.16.4";
+      version = "1.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.16.4.tgz";
-        sha512 = "7REUy5U6h2wCPIg9060V5bh24gichRHfuqWC22xrp/n+dVolQXvG5RN/PqdJiPsCj7Y9voyWLbYai+Tmk3o82Q==";
+        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.17.0.tgz";
+        sha512 = "1jAYPRgMapO2BYL+HWsUq5gsAiDGmI0Pn7omc0lk24tcUOMhUB+1hb0u9WBMNzHvXBjevBkjOctjpnt2hMKN6Q==";
       };
     };
-    "snyk-gradle-plugin-3.12.3" = {
+    "snyk-gradle-plugin-3.14.0" = {
       name = "snyk-gradle-plugin";
       packageName = "snyk-gradle-plugin";
-      version = "3.12.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.12.3.tgz";
-        sha512 = "1LdlB/tDGqeeh5xgJYmv2Rw9eeYsbZ9VX9MS+u6V/DwdzbiXZvFeqexdCqwVOKwBtYUeQfg/QXm5AAd0hQwxCA==";
-      };
-    };
-    "snyk-module-2.1.0" = {
-      name = "snyk-module";
-      packageName = "snyk-module";
-      version = "2.1.0";
+      version = "3.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-module/-/snyk-module-2.1.0.tgz";
-        sha512 = "K5xeA39vLbm23Y/29wFEhKGvo7FwV4x9XhCP5gB22dBPyYiCCNiDERX4ofHQvtM6q96cL0hIroMdlbctv/0nPw==";
+        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.14.0.tgz";
+        sha512 = "2A8ifM91TyzSx/U2fYvHXbaCRVsEx60hGFQjbSH9Hl9AokxEzMi2qti7wsObs1jUX2m198D1mdXu4k/Y1jWxXg==";
       };
     };
     "snyk-module-3.1.0" = {
@@ -50270,31 +51710,40 @@ let
         sha512 = "HHuOYEAACpUpkFgU8HT57mmxmonaJ4O3YADoSkVhnhkmJ+AowqZyJOau703dYHNrq2DvQ7qYw81H7yyxS1Nfjw==";
       };
     };
-    "snyk-mvn-plugin-2.25.1" = {
+    "snyk-mvn-plugin-2.25.3" = {
       name = "snyk-mvn-plugin";
       packageName = "snyk-mvn-plugin";
-      version = "2.25.1";
+      version = "2.25.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.25.1.tgz";
-        sha512 = "buhFh7iDxIxTiQy1D+bLm2aYlqHqMoQxaeLTtMw939rU4TqIrvFiTDYZo0kq8PfvCWU5yvxLHlbR5V4goObv7w==";
+        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.25.3.tgz";
+        sha512 = "JAxOThX51JDbgMMjp3gQDVi07G9VgTYSF06QC7f5LNA0zoXNr743e2rm78RGw5bqE3JRjZxEghiLHPPuvS5DDg==";
       };
     };
-    "snyk-nodejs-lockfile-parser-1.30.1" = {
+    "snyk-nodejs-lockfile-parser-1.30.2" = {
       name = "snyk-nodejs-lockfile-parser";
       packageName = "snyk-nodejs-lockfile-parser";
-      version = "1.30.1";
+      version = "1.30.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.30.2.tgz";
+        sha512 = "wI3VXVYO/ok0uaQm5i+Koo4rKBNilYC/QRIQFlyGbZXf+WBdRcTBKVDfTy8uNfUhMRSGzd84lNclMnetU9Y+vw==";
+      };
+    };
+    "snyk-nodejs-lockfile-parser-1.32.0" = {
+      name = "snyk-nodejs-lockfile-parser";
+      packageName = "snyk-nodejs-lockfile-parser";
+      version = "1.32.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.30.1.tgz";
-        sha512 = "QyhE4pmy7GI7fQrVmZ+qrQB8GGSbxN7OoYueS4BEP9nDxIyH4dJAz8dME5zOUeUxh3frcgBWoWgZoSzE4VOYpg==";
+        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.32.0.tgz";
+        sha512 = "FdYa/7NibnJPqBfobyw5jgI1/rd0LpMZf2W4WYYLRc2Hz7LZjKAByPjIX6qoA+lB9SC7yk5HYwWj2n4Fbg/DDw==";
       };
     };
-    "snyk-nuget-plugin-1.20.0" = {
+    "snyk-nuget-plugin-1.21.0" = {
       name = "snyk-nuget-plugin";
       packageName = "snyk-nuget-plugin";
-      version = "1.20.0";
+      version = "1.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.20.0.tgz";
-        sha512 = "hKN1saA8lyVp4lVi/qfieKmFuTxKoUMxYt6omo7JY0MmeXbHXwGcCo5c+JSHsHdn0uKIQPOKKGnTE1yg3VvzuQ==";
+        url = "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.21.0.tgz";
+        sha512 = "c/JYF3sZzMN/lYz171zrEkVcPqDVcUTVgKIKHiL8nhhuFKxZQ1gzqOgk+lnfN31TLoTNQsZ3DhW/WY+4zEALvw==";
       };
     };
     "snyk-paket-parser-1.6.0" = {
@@ -50315,40 +51764,40 @@ let
         sha512 = "IQcdsQBqqXVRY5DatlI7ASy4flbhtU2V7cr4P2rK9rkFnVHO6LHcitwKXVZa9ocdOmpZDzk7U6iwHJkVFcR6OA==";
       };
     };
-    "snyk-poetry-lockfile-parser-1.1.5" = {
+    "snyk-poetry-lockfile-parser-1.1.6" = {
       name = "snyk-poetry-lockfile-parser";
       packageName = "snyk-poetry-lockfile-parser";
-      version = "1.1.5";
+      version = "1.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-poetry-lockfile-parser/-/snyk-poetry-lockfile-parser-1.1.5.tgz";
-        sha512 = "HR5XjWyueRZc0mWlcXD+OidyDnZ83tgAqJN+n7DGxqTv1z00eogkTxsW2DwNvXevF7ItoBaN80t14oicNQ8GlA==";
+        url = "https://registry.npmjs.org/snyk-poetry-lockfile-parser/-/snyk-poetry-lockfile-parser-1.1.6.tgz";
+        sha512 = "MoekbWOZPj9umfukjk2bd2o3eRj0OyO+58sxq9crMtHmTlze4h0/Uj4+fb0JFPBOtBO3c2zwbA+dvFQmpKoOTA==";
       };
     };
-    "snyk-policy-1.14.1" = {
+    "snyk-policy-1.19.0" = {
       name = "snyk-policy";
       packageName = "snyk-policy";
-      version = "1.14.1";
+      version = "1.19.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-policy/-/snyk-policy-1.14.1.tgz";
-        sha512 = "C5vSkoBYxPnaqb218sm4m6N5s1BhIXlldpIX5xRNnZ0QkDwVj3dy/PfgwxRgVQh7QFGa1ajbvKmsGmm4RRsN8g==";
+        url = "https://registry.npmjs.org/snyk-policy/-/snyk-policy-1.19.0.tgz";
+        sha512 = "XYjhOTRPFA7NfDUsH6uH1fbML2OgSFsqdUPbud7x01urNP9CHXgUgAD4NhKMi3dVQK+7IdYadWt0wrFWw4y+qg==";
       };
     };
-    "snyk-python-plugin-1.19.4" = {
+    "snyk-python-plugin-1.19.7" = {
       name = "snyk-python-plugin";
       packageName = "snyk-python-plugin";
-      version = "1.19.4";
+      version = "1.19.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.19.4.tgz";
-        sha512 = "d1c/QKb3Il3xF1HY0IYoqQ+16+i0Ex5ai+J4KqOMbcKFvNcfkiOSPpCsrgSNJtBa50srbRleUrILdorALxaV2w==";
+        url = "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.19.7.tgz";
+        sha512 = "twAGoIgJVSLVzMkuT/n5l9ZDvhMbWH7De6flWiHQB/grthfl3vJDzLCxiTa+6H/IEEYNSv6F/nSrfNh9UbW5/A==";
       };
     };
-    "snyk-resolve-1.0.1" = {
+    "snyk-resolve-1.1.0" = {
       name = "snyk-resolve";
       packageName = "snyk-resolve";
-      version = "1.0.1";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-resolve/-/snyk-resolve-1.0.1.tgz";
-        sha512 = "7+i+LLhtBo1Pkth01xv+RYJU8a67zmJ8WFFPvSxyCjdlKIcsps4hPQFebhz+0gC5rMemlaeIV6cqwqUf9PEDpw==";
+        url = "https://registry.npmjs.org/snyk-resolve/-/snyk-resolve-1.1.0.tgz";
+        sha512 = "OZMF8I8TOu0S58Z/OS9mr8jkEzGAPByCsAkrWlcmZgPaE0RsxVKVIFPhbMNy/JlYswgGDYYIEsNw+e0j1FnTrw==";
       };
     };
     "snyk-resolve-deps-4.7.2" = {
@@ -50387,6 +51836,15 @@ let
         sha1 = "6e026f92e64af7fcccea1ee53d524841e418a212";
       };
     };
+    "snyk-try-require-2.0.1" = {
+      name = "snyk-try-require";
+      packageName = "snyk-try-require";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snyk-try-require/-/snyk-try-require-2.0.1.tgz";
+        sha512 = "VCOfFIvqLMXgCXEdooQgu3A40XYIFBnj0X8Y01RJ5iAbu08b4WKGN/uAKaRVF30dABS4EcjsalmCO+YlKUPEIA==";
+      };
+    };
     "socket.io-1.0.6" = {
       name = "socket.io";
       packageName = "socket.io";
@@ -50414,22 +51872,22 @@ let
         sha512 = "Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==";
       };
     };
-    "socket.io-3.0.5" = {
+    "socket.io-3.1.2" = {
       name = "socket.io";
       packageName = "socket.io";
-      version = "3.0.5";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-3.0.5.tgz";
-        sha512 = "5yWQ43P/4IttmPCGKDQ3CVocBiJWGpibyhYJxgUhf69EHMzmK8XW0DkmHIoYdLmZaVZJyiEkUqpeC7rSCIqekw==";
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz";
+        sha512 = "JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==";
       };
     };
-    "socket.io-3.1.1" = {
+    "socket.io-4.0.1" = {
       name = "socket.io";
       packageName = "socket.io";
-      version = "3.1.1";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-3.1.1.tgz";
-        sha512 = "7cBWdsDC7bbyEF6WbBqffjizc/H4YF1wLdZoOzuYfo2uMNSFjJKuQ36t0H40o9B20DO6p+mSytEd92oP4S15bA==";
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.0.1.tgz";
+        sha512 = "g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ==";
       };
     };
     "socket.io-adapter-0.2.0" = {
@@ -50450,22 +51908,22 @@ let
         sha512 = "WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==";
       };
     };
-    "socket.io-adapter-2.0.3" = {
+    "socket.io-adapter-2.1.0" = {
       name = "socket.io-adapter";
       packageName = "socket.io-adapter";
-      version = "2.0.3";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.3.tgz";
-        sha512 = "2wo4EXgxOGSFueqvHAdnmi5JLZzWqMArjuP4nqC26AtLh5PoCPsaRbRdah2xhcwTAMooZfjYiNVNkkmmSMaxOQ==";
+        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz";
+        sha512 = "+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==";
       };
     };
-    "socket.io-adapter-2.1.0" = {
+    "socket.io-adapter-2.2.0" = {
       name = "socket.io-adapter";
       packageName = "socket.io-adapter";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz";
-        sha512 = "+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==";
+        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.2.0.tgz";
+        sha512 = "rG49L+FwaVEwuAdeBRq49M97YI3ElVabJPzvHT9S6a2CWhDKnjSFasvwAwSYPRhQzfn4NtDIbCaGYgOCOU/rlg==";
       };
     };
     "socket.io-client-1.0.6" = {
@@ -50567,40 +52025,22 @@ let
         sha512 = "5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==";
       };
     };
-    "sockjs-client-1.5.0" = {
+    "sockjs-client-1.5.1" = {
       name = "sockjs-client";
       packageName = "sockjs-client";
-      version = "1.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz";
-        sha512 = "8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==";
-      };
-    };
-    "socks-2.3.3" = {
-      name = "socks";
-      packageName = "socks";
-      version = "2.3.3";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz";
-        sha512 = "o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==";
+        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz";
+        sha512 = "VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==";
       };
     };
-    "socks-2.5.1" = {
+    "socks-2.6.0" = {
       name = "socks";
       packageName = "socks";
-      version = "2.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socks/-/socks-2.5.1.tgz";
-        sha512 = "oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ==";
-      };
-    };
-    "socks-proxy-agent-4.0.2" = {
-      name = "socks-proxy-agent";
-      packageName = "socks-proxy-agent";
-      version = "4.0.2";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz";
-        sha512 = "NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==";
+        url = "https://registry.npmjs.org/socks/-/socks-2.6.0.tgz";
+        sha512 = "mNmr9owlinMplev0Wd7UHFlqI4ofnBnNzFuzrm63PPaHgbkqCFe4T5LzwKmtQ/f2tX0NTpcdVLyD/FHxFBstYw==";
       };
     };
     "socks-proxy-agent-5.0.0" = {
@@ -50711,13 +52151,13 @@ let
         sha512 = "csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg==";
       };
     };
-    "sonic-boom-1.3.2" = {
+    "sonic-boom-1.4.1" = {
       name = "sonic-boom";
       packageName = "sonic-boom";
-      version = "1.3.2";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.3.2.tgz";
-        sha512 = "/B4tAuK2+hIlR94GhhWU1mJHWk5lt0CEuBvG0kvk1qIAzQc4iB1TieMio8DCZxY+Y7tsuzOxSUDOGmaUm3vXMg==";
+        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz";
+        sha512 = "LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==";
       };
     };
     "sorcery-0.10.0" = {
@@ -50756,6 +52196,15 @@ let
         sha1 = "658535584861ec97d730d6cf41822e1f56684128";
       };
     };
+    "sort-keys-4.2.0" = {
+      name = "sort-keys";
+      packageName = "sort-keys";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz";
+        sha512 = "aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==";
+      };
+    };
     "sort-keys-length-1.0.1" = {
       name = "sort-keys-length";
       packageName = "sort-keys-length";
@@ -51161,13 +52610,13 @@ let
         sha1 = "6c83aff3692fa61256e0cd197e05e9de157691a6";
       };
     };
-    "split-lines-2.0.0" = {
+    "split-lines-2.1.0" = {
       name = "split-lines";
       packageName = "split-lines";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/split-lines/-/split-lines-2.0.0.tgz";
-        sha512 = "gaIdhbqxkB5/VflPXsJwZvEzh/kdwiRPF9iqpkxX4us+lzB8INedFwjCyo6vwuz5x2Ddlnav2zh270CEjCG8mA==";
+        url = "https://registry.npmjs.org/split-lines/-/split-lines-2.1.0.tgz";
+        sha512 = "8dv+1zKgTpfTkOy8XZLFyWrfxO0NV/bj/3EaQ+hBrBxGv2DwiroljPjU8NlCr+59nLnsVm9WYT7lXKwe4TC6bw==";
       };
     };
     "split-on-first-1.1.0" = {
@@ -51287,13 +52736,13 @@ let
         sha512 = "rjvqHFUaSGnzxDy2AHCwhHy6Zp6MNJzCPGYju4kD8yi6bze4d1/zMTg6C7JI49b7/EM7jKMTvyfN/4ylBKdwfw==";
       };
     };
-    "sqlite3-5.0.1" = {
+    "sqlite3-5.0.2" = {
       name = "sqlite3";
       packageName = "sqlite3";
-      version = "5.0.1";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.1.tgz";
-        sha512 = "kh2lTIcYNfmVcvhVJihsYuPj9U0xzBbh6bmqILO2hkryWSC9RRhzYmkIDtJkJ+d8Kg4wZRJ0T1reyHUEspICfg==";
+        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.2.tgz";
+        sha512 = "1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==";
       };
     };
     "sqlstring-2.3.1" = {
@@ -51386,13 +52835,13 @@ let
         sha512 = "pJAFizB6OcuJLX4RJJuU9HWyPwM2CqLi/vs08lhVIR3TGxacxpavvK5LzbxT+Y3iWkBchOTKS5hHCigA5aaung==";
       };
     };
-    "ssb-db2-1.11.2" = {
+    "ssb-db2-1.18.7" = {
       name = "ssb-db2";
       packageName = "ssb-db2";
-      version = "1.11.2";
+      version = "1.18.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-1.11.2.tgz";
-        sha512 = "nwo7Ope08o6yVSbSH3F0YbU/X8rLw79b+s+++X07Aheg9GBaZOgTUp8DgF9ZDywkqqUPSG7agyX+o/icmYCe/g==";
+        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-1.18.7.tgz";
+        sha512 = "sTHdEMGMaQl0ysxwwiH+aUcoPtSXcSDbCBT3/K/wU7pjWctWSpDjZj2ZIE7AfSmIAcakILN1xOGj2kEmtR5caA==";
       };
     };
     "ssb-ebt-5.6.7" = {
@@ -51404,13 +52853,13 @@ let
         sha512 = "ifPgPNmDE8EKuuoqtXibwgYNtDZNry7sJL1epSUb3XgQr62bUV31N9R5LHKDsI2kx96OgWRwWY2PfZ7vf/hU8Q==";
       };
     };
-    "ssb-friends-4.4.3" = {
+    "ssb-friends-4.4.4" = {
       name = "ssb-friends";
       packageName = "ssb-friends";
-      version = "4.4.3";
+      version = "4.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-friends/-/ssb-friends-4.4.3.tgz";
-        sha512 = "9LY+XH05epjsJD7MPyuz1OHnErfNI4DJbAqMgees3DtEOfb2wYjeTzfsR3xUnayCgHJQ0p3SVmUhQVyKAy0xkg==";
+        url = "https://registry.npmjs.org/ssb-friends/-/ssb-friends-4.4.4.tgz";
+        sha512 = "Gny8HraAVnii45tn9baWr27DjEqJndLsBRgV2fqhFLHZm3sGagiv0baJR4W2UgRikADKmrLulvRGI1xaOGxaeg==";
       };
     };
     "ssb-git-0.5.0" = {
@@ -51467,13 +52916,13 @@ let
         sha512 = "FPeyYU/3LpxcagnbmVWE+Q/qzg6keqeOBPbD7sEH9UKixUASeufPKiORDgh8nVX7J9Z+0vUaHt/WG999kGjvVQ==";
       };
     };
-    "ssb-keys-8.0.2" = {
+    "ssb-keys-8.1.0" = {
       name = "ssb-keys";
       packageName = "ssb-keys";
-      version = "8.0.2";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-keys/-/ssb-keys-8.0.2.tgz";
-        sha512 = "u2U9t5YLbFShKQzr+ayMx9cYNvUJzDeOScodMwfP5zM3+/1AStvc5W91knZGllGwsmGjNC57KW+whRun+H/dBQ==";
+        url = "https://registry.npmjs.org/ssb-keys/-/ssb-keys-8.1.0.tgz";
+        sha512 = "RC2gFMptimj2QZZESOViKVhzqgXCnfW3IqUeKLQ/E8nnTdODuCVa3soLYu4KUF8nGIzFIfdKq7L2Teg32kD85w==";
       };
     };
     "ssb-links-3.0.10" = {
@@ -51647,13 +53096,13 @@ let
         sha512 = "Z4jBj917W+dKAiDglwxCpWm8vINOMtkpHQIgk50NQTb5jHqHI5Rcyiy7EO0uRcWwRWqXi1ZwOTEFVyLyyuittA==";
       };
     };
-    "ssb-validate-4.1.3" = {
+    "ssb-validate-4.1.4" = {
       name = "ssb-validate";
       packageName = "ssb-validate";
-      version = "4.1.3";
+      version = "4.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.1.3.tgz";
-        sha512 = "g7tOs4nCwHk+G/FZ1N2RmaCkaTNS9hoh/BBP12EH8Jf1PWlkOJtTCak78FHjSTAGFCq/i8Y1ZFQXPNKSK7p3wg==";
+        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.1.4.tgz";
+        sha512 = "nzj5EQnhm5fBGXgtzuuWgxv45dW+CJJm4eCLZKiOxyG1NE/WJZwju2DmqZfiE9zr9bC2T2hPHkckDP0CCP8v8w==";
       };
     };
     "ssb-ws-6.2.3" = {
@@ -51683,6 +53132,15 @@ let
         sha512 = "jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==";
       };
     };
+    "sse4_crc32-6.0.1" = {
+      name = "sse4_crc32";
+      packageName = "sse4_crc32";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sse4_crc32/-/sse4_crc32-6.0.1.tgz";
+        sha512 = "FUTYXpLroqytNKWIfHzlDWoy9E4tmBB/RklNMy6w3VJs+/XEYAHgbiylg4SS43iOk/9bM0BlJ2EDpFAGT66IoQ==";
+      };
+    };
     "ssh-config-1.1.6" = {
       name = "ssh-config";
       packageName = "ssh-config";
@@ -51818,15 +53276,6 @@ let
         sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
       };
     };
-    "stack-trace-0.0.9" = {
-      name = "stack-trace";
-      packageName = "stack-trace";
-      version = "0.0.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz";
-        sha1 = "a8f6eaeca90674c333e7c43953f275b451510695";
-      };
-    };
     "stack-utils-2.0.3" = {
       name = "stack-utils";
       packageName = "stack-utils";
@@ -51926,6 +53375,15 @@ let
         sha1 = "ec7b4750ff03ab24a64dd9b357a78316bead78aa";
       };
     };
+    "stats-lite-2.2.0" = {
+      name = "stats-lite";
+      packageName = "stats-lite";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stats-lite/-/stats-lite-2.2.0.tgz";
+        sha512 = "/Kz55rgUIv2KP2MKphwYT/NCuSfAlbbMRv2ZWw7wyXayu230zdtzhxxuXXcvsc6EmmhS8bSJl3uS1wmMHFumbA==";
+      };
+    };
     "statsd-client-0.4.5" = {
       name = "statsd-client";
       packageName = "statsd-client";
@@ -51962,13 +53420,13 @@ let
         sha1 = "161c7dac177659fd9811f43771fa99381478628c";
       };
     };
-    "std-env-2.2.1" = {
+    "std-env-2.3.0" = {
       name = "std-env";
       packageName = "std-env";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/std-env/-/std-env-2.2.1.tgz";
-        sha512 = "IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ==";
+        url = "https://registry.npmjs.org/std-env/-/std-env-2.3.0.tgz";
+        sha512 = "4qT5B45+Kjef2Z6pE0BkskzsH0GO7GrND0wGlTM1ioUe3v0dGYx9ZJH0Aro/YyA8fqQ5EyIKDRjZojJYMFTflw==";
       };
     };
     "stealthy-require-1.1.1" = {
@@ -52241,6 +53699,15 @@ let
         sha512 = "PS6wT2ZyyR38Cy+lE6PBEI1ZmO2HdzZoLeDGG0zZbYikCZd0dh8FUoSeFzgWLItpBYw1WJmPVRLpykRV+lAWLQ==";
       };
     };
+    "stream-to-promise-2.2.0" = {
+      name = "stream-to-promise";
+      packageName = "stream-to-promise";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-to-promise/-/stream-to-promise-2.2.0.tgz";
+        sha1 = "b1edb2e1c8cb11289d1b503c08d3f2aef51e650f";
+      };
+    };
     "stream-to-promise-3.0.0" = {
       name = "stream-to-promise";
       packageName = "stream-to-promise";
@@ -52367,15 +53834,6 @@ let
         sha512 = "78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==";
       };
     };
-    "string-hash-1.1.3" = {
-      name = "string-hash";
-      packageName = "string-hash";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz";
-        sha1 = "e8aafc0ac1855b4666929ed7dd1275df5d6c811b";
-      };
-    };
     "string-kit-0.11.10" = {
       name = "string-kit";
       packageName = "string-kit";
@@ -52475,22 +53933,13 @@ let
         sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
       };
     };
-    "string-width-4.2.0" = {
+    "string-width-4.2.2" = {
       name = "string-width";
       packageName = "string-width";
-      version = "4.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
-        sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
-      };
-    };
-    "string.prototype.matchall-4.0.3" = {
-      name = "string.prototype.matchall";
-      packageName = "string.prototype.matchall";
-      version = "4.0.3";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz";
-        sha512 = "OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw==";
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz";
+        sha512 = "XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==";
       };
     };
     "string.prototype.repeat-0.2.0" = {
@@ -52502,31 +53951,31 @@ let
         sha1 = "aba36de08dcee6a5a337d49b2ea1da1b28fc0ecf";
       };
     };
-    "string.prototype.trim-1.2.3" = {
+    "string.prototype.trim-1.2.4" = {
       name = "string.prototype.trim";
       packageName = "string.prototype.trim";
-      version = "1.2.3";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz";
-        sha512 = "16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg==";
+        url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz";
+        sha512 = "hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q==";
       };
     };
-    "string.prototype.trimend-1.0.3" = {
+    "string.prototype.trimend-1.0.4" = {
       name = "string.prototype.trimend";
       packageName = "string.prototype.trimend";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz";
-        sha512 = "ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==";
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz";
+        sha512 = "y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==";
       };
     };
-    "string.prototype.trimstart-1.0.3" = {
+    "string.prototype.trimstart-1.0.4" = {
       name = "string.prototype.trimstart";
       packageName = "string.prototype.trimstart";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz";
-        sha512 = "oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==";
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz";
+        sha512 = "jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==";
       };
     };
     "string2compact-1.3.0" = {
@@ -52817,6 +54266,15 @@ let
         sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==";
       };
     };
+    "strip-hex-prefix-1.0.0" = {
+      name = "strip-hex-prefix";
+      packageName = "strip-hex-prefix";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz";
+        sha1 = "0c5f155fef1151373377de9dbb588da05500e36f";
+      };
+    };
     "strip-indent-1.0.1" = {
       name = "strip-indent";
       packageName = "strip-indent";
@@ -52961,13 +54419,22 @@ let
         sha1 = "7958c793e47e32e07d2b5cafe5c0bf8e12e77902";
       };
     };
-    "styled-components-5.2.1" = {
+    "style-to-object-0.3.0" = {
+      name = "style-to-object";
+      packageName = "style-to-object";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz";
+        sha512 = "CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==";
+      };
+    };
+    "styled-components-5.2.3" = {
       name = "styled-components";
       packageName = "styled-components";
-      version = "5.2.1";
+      version = "5.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/styled-components/-/styled-components-5.2.1.tgz";
-        sha512 = "sBdgLWrCFTKtmZm/9x7jkIabjFNVzCUeKfoQsM6R3saImkUnjx0QYdLwJHBjY9ifEcmjDamJDVfknWm1yxZPxQ==";
+        url = "https://registry.npmjs.org/styled-components/-/styled-components-5.2.3.tgz";
+        sha512 = "BlR+KrLW3NL1yhvEB+9Nu9Dt51CuOnHoxd+Hj+rYPdtyR8X11uIW9rvhpy3Dk4dXXBsiW1u5U78f00Lf/afGoA==";
       };
     };
     "stylehacks-4.0.3" = {
@@ -52979,13 +54446,13 @@ let
         sha512 = "7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==";
       };
     };
-    "stylelint-13.10.0" = {
+    "stylelint-13.12.0" = {
       name = "stylelint";
       packageName = "stylelint";
-      version = "13.10.0";
+      version = "13.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylelint/-/stylelint-13.10.0.tgz";
-        sha512 = "eDuLrL0wzPKbl5/TbNGZcbw0lTIGbDEr5W6lCODvb1gAg0ncbgCRt7oU0C2VFDvbrcY0A3MFZOwltwTRmc0XCw==";
+        url = "https://registry.npmjs.org/stylelint/-/stylelint-13.12.0.tgz";
+        sha512 = "P8O1xDy41B7O7iXaSlW+UuFbE5+ZWQDb61ndGDxKIt36fMH50DtlQTbwLpFLf8DikceTAb3r6nPrRv30wBlzXw==";
       };
     };
     "stylelint-8.4.0" = {
@@ -53096,6 +54563,15 @@ let
         sha512 = "es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==";
       };
     };
+    "sudo-prompt-9.2.1" = {
+      name = "sudo-prompt";
+      packageName = "sudo-prompt";
+      version = "9.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz";
+        sha512 = "Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==";
+      };
+    };
     "sugarss-1.0.1" = {
       name = "sugarss";
       packageName = "sugarss";
@@ -53114,6 +54590,15 @@ let
         sha512 = "WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==";
       };
     };
+    "sumchecker-3.0.1" = {
+      name = "sumchecker";
+      packageName = "sumchecker";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz";
+        sha512 = "MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==";
+      };
+    };
     "superagent-1.8.5" = {
       name = "superagent";
       packageName = "superagent";
@@ -53267,31 +54752,31 @@ let
         sha512 = "zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==";
       };
     };
-    "svelte-3.32.3" = {
+    "svelte-3.35.0" = {
       name = "svelte";
       packageName = "svelte";
-      version = "3.32.3";
+      version = "3.35.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte/-/svelte-3.32.3.tgz";
-        sha512 = "5etu/wDwtewhnYO/631KKTjSmFrKohFLWNm1sWErVHXqGZ8eJLqrW0qivDSyYTcN8GbUqsR4LkIhftNFsjNehg==";
+        url = "https://registry.npmjs.org/svelte/-/svelte-3.35.0.tgz";
+        sha512 = "gknlZkR2sXheu/X+B7dDImwANVvK1R0QGQLd8CNIfxxGPeXBmePnxfzb6fWwTQRsYQG7lYkZXvpXJvxvpsoB7g==";
       };
     };
-    "svelte-preprocess-4.6.8" = {
+    "svelte-preprocess-4.6.9" = {
       name = "svelte-preprocess";
       packageName = "svelte-preprocess";
-      version = "4.6.8";
+      version = "4.6.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.6.8.tgz";
-        sha512 = "yrT+vuHPoGnNx5Oxa6gMqWV5ZhLgA4isfhUOBwv9iVqZAro9/Nyy8XF5sahAglfMmnCxJkDZSwg7CdAwGpVxhw==";
+        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.6.9.tgz";
+        sha512 = "SROWH0rB0DJ+0Ii264cprmNu/NJyZacs5wFD71ya93Cg/oA2lKHgQm4F6j0EWA4ktFMzeuJJm/eX6fka39hEHA==";
       };
     };
-    "svelte2tsx-0.1.169" = {
+    "svelte2tsx-0.1.186" = {
       name = "svelte2tsx";
       packageName = "svelte2tsx";
-      version = "0.1.169";
+      version = "0.1.186";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.1.169.tgz";
-        sha512 = "E4AM2WGMdsYWe8z3BQXbvKQ9dWrOPDrO9xx5V7e+5MHFhyof1a5ZupY6LprJlwQYmWm0Vj9HUGkm8fdVFCfnhA==";
+        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.1.186.tgz";
+        sha512 = "E4BmTNmIg6yHEqazhcQ8S60GI7AaV2JKf2y5deOyr3o2zpow4gGyz7yE0uSnFDdqp2iafCD7PImWZ/v1R6uQVw==";
       };
     };
     "sver-compat-1.5.0" = {
@@ -53420,13 +54905,13 @@ let
         sha512 = "xk5CMbwoQVI53rTq9o/iMojAqXP5NT4/+TMeTP4uXWDIH18pB9AXgO5Olqt0RXuf3jH032DA4DS4qzem6XdXAw==";
       };
     };
-    "swagger-ui-dist-3.43.0" = {
+    "swagger-ui-dist-3.46.0" = {
       name = "swagger-ui-dist";
       packageName = "swagger-ui-dist";
-      version = "3.43.0";
+      version = "3.46.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.43.0.tgz";
-        sha512 = "PtE+g23bNbYv8qqAVoPBqNQth8hU5Sl5ZsQ7gHXlO5jlCt31dVTiKI9ArHIT1b23ZzUYTnKsFgPYYFoiWyNCAw==";
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.46.0.tgz";
+        sha512 = "ueaZ45OHhHvGKmocvCkxFY8VCfbP5PgcxutoQxy9j8/VZeDoLDvg8FBf4SO6NxHhieNAdYPUd0O6G9FjJO2fqw==";
       };
     };
     "swagger2openapi-6.2.3" = {
@@ -53546,13 +55031,13 @@ let
         sha512 = "YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==";
       };
     };
-    "systeminformation-4.34.9" = {
+    "systeminformation-4.34.19" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "4.34.9";
+      version = "4.34.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.34.9.tgz";
-        sha512 = "jvc4DlJeXazsen2riPDR97GSaHNCmoL+mgfB8IXxmpNpNd7kv5MfkuihXEmF1/prBFtqzUA2lxnt1qp4maOMQA==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.34.19.tgz";
+        sha512 = "ssUYQ0s1FFeb8EGtyCX/41cC/XaF84gbNAUfaUTziibx+xCAaR0zrOy0yZlnUrsWDQ+snp/Utl8cx8IdtrevrA==";
       };
     };
     "table-3.8.3" = {
@@ -53591,13 +55076,13 @@ let
         sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
       };
     };
-    "table-6.0.7" = {
+    "table-6.0.9" = {
       name = "table";
       packageName = "table";
-      version = "6.0.7";
+      version = "6.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.0.7.tgz";
-        sha512 = "rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==";
+        url = "https://registry.npmjs.org/table/-/table-6.0.9.tgz";
+        sha512 = "F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==";
       };
     };
     "table-layout-0.4.5" = {
@@ -53618,6 +55103,15 @@ let
         sha1 = "bb9c2ca6324f659fde7634c2caf3c096e1187ca7";
       };
     };
+    "tabtab-2.2.2" = {
+      name = "tabtab";
+      packageName = "tabtab";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tabtab/-/tabtab-2.2.2.tgz";
+        sha1 = "7a047f143b010b4cbd31f857e82961512cbf4e14";
+      };
+    };
     "tabtab-3.0.2" = {
       name = "tabtab";
       packageName = "tabtab";
@@ -53655,13 +55149,13 @@ let
         sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
       };
     };
-    "tail-2.2.0" = {
+    "tail-2.2.1" = {
       name = "tail";
       packageName = "tail";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tail/-/tail-2.2.0.tgz";
-        sha512 = "QqUMtWlnzArTvGyjVnAE5fAiXEm2Psvk/BlE7vWx2/dIEWMsAhcNPz7iW6WTiSM8h1fjtCkRMsaWBS1j6rpGBg==";
+        url = "https://registry.npmjs.org/tail/-/tail-2.2.1.tgz";
+        sha512 = "pqtI8HB6pbltcaDxkTq12meYxMeLNtZg7+h+c2WlXofaOh4bUeLFQ3eU8S23niqb8We4/UFc+QNlky9nCRnrSQ==";
       };
     };
     "taketalk-1.0.0" = {
@@ -53871,6 +55365,15 @@ let
         sha512 = "va4VlrKWp64JrowFoZX/NPzzA6q38kvaIukVXOWFO1V+jR1G8+hCfgJy4TX8Z3rwLJzwaBEet1QhikHDRZWl3A==";
       };
     };
+    "telegraf-4.3.0" = {
+      name = "telegraf";
+      packageName = "telegraf";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/telegraf/-/telegraf-4.3.0.tgz";
+        sha512 = "MuDUtSMipzMzQp8fXbQx76jp4ZD70KREdnpH1idUzN9Zlgm6EzatBQFU4Ps0ipxtEmnBBdghBMumQwrjRe3eqg==";
+      };
+    };
     "telegram-typings-3.6.1" = {
       name = "telegram-typings";
       packageName = "telegram-typings";
@@ -53952,6 +55455,15 @@ let
         sha1 = "8cff630fb7e9da05f047c74ce4ce4d685457d492";
       };
     };
+    "temp-write-4.0.0" = {
+      name = "temp-write";
+      packageName = "temp-write";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/temp-write/-/temp-write-4.0.0.tgz";
+        sha512 = "HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==";
+      };
+    };
     "tempfile-2.0.0" = {
       name = "tempfile";
       packageName = "tempfile";
@@ -54015,13 +55527,13 @@ let
         sha512 = "wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==";
       };
     };
-    "terminal-kit-1.47.0" = {
+    "terminal-kit-1.49.3" = {
       name = "terminal-kit";
       packageName = "terminal-kit";
-      version = "1.47.0";
+      version = "1.49.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.47.0.tgz";
-        sha512 = "wyfslVEOJrB2kmZyUEkTKtd4jlNTVR9G1ogkrs7a1VMk55t83+m8sMDJTNuEqfwYXvWbRyGD8pyhv9vyl9xc5w==";
+        url = "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.49.3.tgz";
+        sha512 = "7GovmExYxwGWOGfTh9LlH9uRt5braMj0bi6HmrhdhGi78Xi3S8hfJhTnio/h4iaN4pKtbAn3ugdGF2ypviZvMA==";
       };
     };
     "terminal-link-2.1.1" = {
@@ -54051,13 +55563,13 @@ let
         sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
       };
     };
-    "terser-5.5.1" = {
+    "terser-5.6.1" = {
       name = "terser";
       packageName = "terser";
-      version = "5.5.1";
+      version = "5.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz";
-        sha512 = "6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==";
+        url = "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz";
+        sha512 = "yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==";
       };
     };
     "terser-webpack-plugin-1.4.5" = {
@@ -54249,6 +55761,15 @@ let
         sha1 = "8a32e4a15f1763d997948317c5ebe3ad8a41e4b7";
       };
     };
+    "throttleit-0.0.2" = {
+      name = "throttleit";
+      packageName = "throttleit";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz";
+        sha1 = "cfedf88e60c00dd9697b61fdd2a8343a9b680eaf";
+      };
+    };
     "throttleit-1.0.0" = {
       name = "throttleit";
       packageName = "throttleit";
@@ -54276,6 +55797,15 @@ let
         sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
       };
     };
+    "through2-0.2.3" = {
+      name = "through2";
+      packageName = "through2";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz";
+        sha1 = "eb3284da4ea311b6cc8ace3653748a52abf25a3f";
+      };
+    };
     "through2-0.4.2" = {
       name = "through2";
       packageName = "through2";
@@ -54996,13 +56526,13 @@ let
         sha512 = "ElXPyXKKG73o+uziHJ8qlYE9EuyDVxnK2zWL+pW/2bma7RsLpSwFFIJAb8Qui7/tel2hsHQW1z3zBnfQNREpWA==";
       };
     };
-    "torrent-piece-2.0.0" = {
+    "torrent-piece-2.0.1" = {
       name = "torrent-piece";
       packageName = "torrent-piece";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/torrent-piece/-/torrent-piece-2.0.0.tgz";
-        sha512 = "H/Z/yCuvZJj1vl1IQHI8dvF2QrUuXRJoptT5DW5967/dsLpXlCg+uyhFR5lfNj5mNaYePUbKtnL+qKWZGXv4Nw==";
+        url = "https://registry.npmjs.org/torrent-piece/-/torrent-piece-2.0.1.tgz";
+        sha512 = "JLSOyvQVLI6JTWqioY4vFL0JkEUKQcaHQsU3loxkCvPTSttw8ePs2tFwsP4XIjw99Fz8EdOzt/4faykcbnPbCQ==";
       };
     };
     "torrent-stream-1.2.1" = {
@@ -55068,6 +56598,15 @@ let
         sha512 = "yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==";
       };
     };
+    "tough-cookie-4.0.0" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz";
+        sha512 = "tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==";
+      };
+    };
     "township-client-1.3.2" = {
       name = "township-client";
       packageName = "township-client";
@@ -55131,15 +56670,6 @@ let
         sha1 = "717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9";
       };
     };
-    "traverse-0.4.6" = {
-      name = "traverse";
-      packageName = "traverse";
-      version = "0.4.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/traverse/-/traverse-0.4.6.tgz";
-        sha1 = "d04b2280e4c792a5815429ef7b8b60c64c9ccc34";
-      };
-    };
     "traverse-0.6.6" = {
       name = "traverse";
       packageName = "traverse";
@@ -55311,15 +56841,6 @@ let
         sha512 = "ikUlS+/BcImLhNYyIgZcEmq4byc31QpC+46/6Jm5ECWkVFhf8SM2Fp/0pMVXPX6vk45SMCwrP4Taxucne8I0VA==";
       };
     };
-    "ts-invariant-0.3.3" = {
-      name = "ts-invariant";
-      packageName = "ts-invariant";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.3.3.tgz";
-        sha512 = "UReOKsrJFGC9tUblgSRWo+BsVNbEd77Cl6WiV/XpMlkifXwNIJbknViCucHvVZkXSC/mcWeRnIGdY7uprcwvdQ==";
-      };
-    };
     "ts-invariant-0.4.4" = {
       name = "ts-invariant";
       packageName = "ts-invariant";
@@ -55356,15 +56877,6 @@ let
         sha512 = "XvB+OdKSJ708Dmf9ore4Uf/q62AYDTzFcAdxc8KNML1mmAWywRFVt/dn1KYJH8Agt5UJNujfM3znU5PxgAzA2w==";
       };
     };
-    "ts-node-8.10.2" = {
-      name = "ts-node";
-      packageName = "ts-node";
-      version = "8.10.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz";
-        sha512 = "ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==";
-      };
-    };
     "ts-pnp-1.2.0" = {
       name = "ts-pnp";
       packageName = "ts-pnp";
@@ -55374,15 +56886,6 @@ let
         sha512 = "csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==";
       };
     };
-    "ts-process-promises-1.0.2" = {
-      name = "ts-process-promises";
-      packageName = "ts-process-promises";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ts-process-promises/-/ts-process-promises-1.0.2.tgz";
-        sha512 = "6qWWz2HdFbD2uAfgS5t65Dd6HQKYjfra+YXQzKzxIG+RKTpoeDi+x+TW85SEF3cWUI2UecrOXJobvD+04MiTZg==";
-      };
-    };
     "tsconfig-paths-3.9.0" = {
       name = "tsconfig-paths";
       packageName = "tsconfig-paths";
@@ -55392,13 +56895,13 @@ let
         sha512 = "dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==";
       };
     };
-    "tsconfig-paths-webpack-plugin-3.3.0" = {
+    "tsconfig-paths-webpack-plugin-3.5.1" = {
       name = "tsconfig-paths-webpack-plugin";
       packageName = "tsconfig-paths-webpack-plugin";
-      version = "3.3.0";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.3.0.tgz";
-        sha512 = "MpQeZpwPY4gYASCUjY4yt2Zj8yv86O8f++3Ai4o0yI0fUC6G1syvnL9VuY71PBgimRYDQU47f12BEmJq9wRaSw==";
+        url = "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.5.1.tgz";
+        sha512 = "n5CMlUUj+N5pjBhBACLq4jdr9cPTitySCjIosoQm0zwK99gmrcTGAfY9CwxRFT9+9OleNWXPRUcxsKP4AYExxQ==";
       };
     };
     "tslib-1.11.1" = {
@@ -55455,6 +56958,15 @@ let
         sha512 = "hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==";
       };
     };
+    "tslib-2.2.0" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz";
+        sha512 = "gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==";
+      };
+    };
     "tslint-5.20.1" = {
       name = "tslint";
       packageName = "tslint";
@@ -55491,13 +57003,13 @@ let
         sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==";
       };
     };
-    "tsutils-3.20.0" = {
+    "tsutils-3.21.0" = {
       name = "tsutils";
       packageName = "tsutils";
-      version = "3.20.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz";
-        sha512 = "RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==";
+        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz";
+        sha512 = "mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==";
       };
     };
     "ttl-1.3.1" = {
@@ -55509,15 +57021,6 @@ let
         sha512 = "+bGy9iDAqg3WSfc2ZrprToSPJhZjqy7vUv9wupQzsiv+BVPVx1T2a6G4T0290SpQj+56Toaw9BiLO5j5Bd7QzA==";
       };
     };
-    "tty-1.0.1" = {
-      name = "tty";
-      packageName = "tty";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tty/-/tty-1.0.1.tgz";
-        sha1 = "e4409ac98b0dd1c50b59ff38e86eac3f0764ee45";
-      };
-    };
     "tty-browserify-0.0.0" = {
       name = "tty-browserify";
       packageName = "tty-browserify";
@@ -55635,6 +57138,15 @@ let
         sha1 = "b75bc2df15649bb84e8b9aa3c0669c6c4bce0d25";
       };
     };
+    "tweetnacl-util-0.15.1" = {
+      name = "tweetnacl-util";
+      packageName = "tweetnacl-util";
+      version = "0.15.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz";
+        sha512 = "RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==";
+      };
+    };
     "tweetsodium-0.0.5" = {
       name = "tweetsodium";
       packageName = "tweetsodium";
@@ -55680,13 +57192,13 @@ let
         sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
       };
     };
-    "type-2.2.0" = {
+    "type-2.5.0" = {
       name = "type";
       packageName = "type";
-      version = "2.2.0";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type/-/type-2.2.0.tgz";
-        sha512 = "M/u37b4oSGlusaU8ZB96BfFPWQ8MbsZYXB+kXGMiDj6IKinkcNaQvmirBuWj8mAXqP6LYn1rQvbTYum3yPhaOA==";
+        url = "https://registry.npmjs.org/type/-/type-2.5.0.tgz";
+        sha512 = "180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==";
       };
     };
     "type-check-0.3.2" = {
@@ -55725,15 +57237,6 @@ let
         sha512 = "EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==";
       };
     };
-    "type-fest-0.11.0" = {
-      name = "type-fest";
-      packageName = "type-fest";
-      version = "0.11.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz";
-        sha512 = "OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==";
-      };
-    };
     "type-fest-0.12.0" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -55788,6 +57291,15 @@ let
         sha512 = "Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==";
       };
     };
+    "type-fest-0.21.3" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.21.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz";
+        sha512 = "t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==";
+      };
+    };
     "type-fest-0.3.1" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -55896,6 +57408,15 @@ let
         sha512 = "7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==";
       };
     };
+    "typegram-3.2.3" = {
+      name = "typegram";
+      packageName = "typegram";
+      version = "3.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typegram/-/typegram-3.2.3.tgz";
+        sha512 = "zlkY7vNTLcwQhLUyYXAUzRelzH752LBFl8m4u04d5g5P7lM9bGegeIRwzd3mVCHJH6R3s48pKeFTVSdVlN+omg==";
+      };
+    };
     "typescript-2.9.2" = {
       name = "typescript";
       packageName = "typescript";
@@ -55941,22 +57462,22 @@ let
         sha512 = "tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==";
       };
     };
-    "typescript-4.0.5" = {
+    "typescript-4.1.5" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.0.5";
+      version = "4.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz";
-        sha512 = "ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz";
+        sha512 = "6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==";
       };
     };
-    "typescript-4.1.5" = {
+    "typescript-4.2.3" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.1.5";
+      version = "4.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz";
-        sha512 = "6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz";
+        sha512 = "qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==";
       };
     };
     "typescript-eslint-parser-16.0.1" = {
@@ -56004,13 +57525,13 @@ let
         sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d";
       };
     };
-    "typo-geom-0.11.1" = {
+    "typo-geom-0.11.2" = {
       name = "typo-geom";
       packageName = "typo-geom";
-      version = "0.11.1";
+      version = "0.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typo-geom/-/typo-geom-0.11.1.tgz";
-        sha512 = "DqAx/eGYLJprgRHEV2cMQBzRJo2N9UdBJ2eN54OeZ9chHbq+9U059lLY2DUxeGMff5rtTyG966CuL9aO4csxbQ==";
+        url = "https://registry.npmjs.org/typo-geom/-/typo-geom-0.11.2.tgz";
+        sha512 = "ouK6sY+LNGDDQra+MEZb2ZYDaEkCUeutr6x8BZAGGGB0fCsR0wt6YIuz9DJoc8idQS8mnqY8npGmXcMsTZAXPA==";
       };
     };
     "ua-parser-js-0.7.21" = {
@@ -56022,13 +57543,13 @@ let
         sha512 = "+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==";
       };
     };
-    "ua-parser-js-0.7.23" = {
+    "ua-parser-js-0.7.27" = {
       name = "ua-parser-js";
       packageName = "ua-parser-js";
-      version = "0.7.23";
+      version = "0.7.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.23.tgz";
-        sha512 = "m4hvMLxgGHXG3O3fQVAyyAQpZzDOvwnhOTjYz5Xmr7r/+LpkNy3vJXdVRWgd1TkAb7NGROZuSy96CrlNVjA7KA==";
+        url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.27.tgz";
+        sha512 = "eXMaRYK2skomGocoX0x9sBXzx5A1ZVQgXfrW4mTc8dT0zS7olEcyfudAzRC5tIIRgLxQ69B6jut3DI+n5hslPA==";
       };
     };
     "uc.micro-1.0.6" = {
@@ -56058,13 +57579,13 @@ let
         sha512 = "L5i5jg/SHkEqzN18gQMTWsZk3KelRsfD1wUVNqtq0kzqWQqcJjyL8yc1o8hJgRrWqrAl2mUFbhfznEIoi7zi2A==";
       };
     };
-    "uglify-js-3.12.7" = {
+    "uglify-js-3.13.3" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.12.7";
+      version = "3.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.7.tgz";
-        sha512 = "SIZhkoh+U/wjW+BHGhVwE9nt8tWJspncloBcFapkpGRwNPqcH8pzX36BXe3TPBjzHWPMUZotpCigak/udWNr1Q==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.3.tgz";
+        sha512 = "otIc7O9LyxpUcQoXzj2hL4LPWKklO6LJWoJUzNa8A17Xgi4fOeDC8FBDOLHnC/Slo1CQgsZMcM6as0M76BZaig==";
       };
     };
     "uglify-js-3.4.10" = {
@@ -56202,6 +57723,15 @@ let
         sha512 = "2ISqZLXtzp1l9f1V8Yr6S+zuhXxEwE1CjKHjXULFDHJcfhc9Gm3mn19hdPp4rlNGEdCivKYGKjYe3WRGnafYdA==";
       };
     };
+    "unbox-primitive-1.0.1" = {
+      name = "unbox-primitive";
+      packageName = "unbox-primitive";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz";
+        sha512 = "tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==";
+      };
+    };
     "unbzip2-stream-1.4.3" = {
       name = "unbzip2-stream";
       packageName = "unbzip2-stream";
@@ -56256,13 +57786,13 @@ let
         sha512 = "N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==";
       };
     };
-    "underscore-1.12.0" = {
+    "underscore-1.12.1" = {
       name = "underscore";
       packageName = "underscore";
-      version = "1.12.0";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz";
-        sha512 = "21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ==";
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz";
+        sha512 = "hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==";
       };
     };
     "underscore-1.2.1" = {
@@ -56436,13 +57966,22 @@ let
         sha512 = "lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==";
       };
     };
-    "unified-9.2.0" = {
+    "unified-8.4.2" = {
       name = "unified";
       packageName = "unified";
-      version = "9.2.0";
+      version = "8.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz";
+        sha512 = "JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==";
+      };
+    };
+    "unified-9.2.1" = {
+      name = "unified";
+      packageName = "unified";
+      version = "9.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz";
-        sha512 = "vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==";
+        url = "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz";
+        sha512 = "juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==";
       };
     };
     "unified-diff-3.1.0" = {
@@ -56463,13 +58002,13 @@ let
         sha512 = "iDJYH82TgcezQA4IZzhCNJQx7vBsGk4h9s4Q7Fscrb3qcPsxBqVrVNYez2W3sBVTxuU1bFAhyRpA6ba/R4j93A==";
       };
     };
-    "unified-engine-8.0.0" = {
+    "unified-engine-8.1.0" = {
       name = "unified-engine";
       packageName = "unified-engine";
-      version = "8.0.0";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-8.0.0.tgz";
-        sha512 = "vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==";
+        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-8.1.0.tgz";
+        sha512 = "ptXTWUf9HZ2L9xto7tre+hSdSN7M9S0rypUpMAcFhiDYjrXLrND4If+8AZOtPFySKI/Zhfxf7GVAR34BqixDUA==";
       };
     };
     "unified-message-control-3.0.3" = {
@@ -56652,13 +58191,13 @@ let
         sha512 = "sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==";
       };
     };
-    "unist-util-is-4.0.4" = {
+    "unist-util-is-4.1.0" = {
       name = "unist-util-is";
       packageName = "unist-util-is";
-      version = "4.0.4";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.4.tgz";
-        sha512 = "3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA==";
+        url = "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz";
+        sha512 = "ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==";
       };
     };
     "unist-util-map-1.0.5" = {
@@ -56697,6 +58236,15 @@ let
         sha512 = "w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==";
       };
     };
+    "unist-util-remove-2.1.0" = {
+      name = "unist-util-remove";
+      packageName = "unist-util-remove";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz";
+        sha512 = "J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==";
+      };
+    };
     "unist-util-remove-position-1.1.4" = {
       name = "unist-util-remove-position";
       packageName = "unist-util-remove-position";
@@ -56715,6 +58263,15 @@ let
         sha512 = "fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==";
       };
     };
+    "unist-util-remove-position-3.0.0" = {
+      name = "unist-util-remove-position";
+      packageName = "unist-util-remove-position";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-3.0.0.tgz";
+        sha512 = "17kIOuolVuK16LMb9KyMJlqdfCtlfQY5FjY3Sdo9iC7F5wqdXhNjMq0PBvMpkVNNnAmHxXssUW+rZ9T2zbP0Rg==";
+      };
+    };
     "unist-util-stringify-position-1.1.2" = {
       name = "unist-util-stringify-position";
       packageName = "unist-util-stringify-position";
@@ -57066,15 +58623,6 @@ let
         sha512 = "Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==";
       };
     };
-    "update-notifier-5.0.0" = {
-      name = "update-notifier";
-      packageName = "update-notifier";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-5.0.0.tgz";
-        sha512 = "8tqsiVrMv7aZsKNSjqA6DdBLKJpZG1hRpkj1RbOJu1PgyP69OX+EInAnP1EK/ShX5YdPFgwWdk19oquZ0HTM8g==";
-      };
-    };
     "update-notifier-5.1.0" = {
       name = "update-notifier";
       packageName = "update-notifier";
@@ -57111,15 +58659,6 @@ let
         sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
       };
     };
-    "upper-case-2.0.2" = {
-      name = "upper-case";
-      packageName = "upper-case";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz";
-        sha512 = "KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==";
-      };
-    };
     "upper-case-first-1.1.2" = {
       name = "upper-case-first";
       packageName = "upper-case-first";
@@ -57129,15 +58668,6 @@ let
         sha1 = "5d79bedcff14419518fd2edb0a0507c9b6859115";
       };
     };
-    "upper-case-first-2.0.2" = {
-      name = "upper-case-first";
-      packageName = "upper-case-first";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz";
-        sha512 = "514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==";
-      };
-    };
     "uri-js-3.0.2" = {
       name = "uri-js";
       packageName = "uri-js";
@@ -57156,13 +58686,13 @@ let
         sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
       };
     };
-    "urijs-1.19.5" = {
+    "urijs-1.19.6" = {
       name = "urijs";
       packageName = "urijs";
-      version = "1.19.5";
+      version = "1.19.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/urijs/-/urijs-1.19.5.tgz";
-        sha512 = "48z9VGWwdCV5KfizHsE05DWS5fhK6gFlx5MjO7xu0Krc5FGPWzjlXEVV0nPMrdVuP7xmMHiPZ2HoYZwKOFTZOg==";
+        url = "https://registry.npmjs.org/urijs/-/urijs-1.19.6.tgz";
+        sha512 = "eSXsXZ2jLvGWeLYlQA3Gh36BcjF+0amo92+wHPyN1mdR8Nxf75fuEuYTd9c0a+m/vhCjRK0ESlE9YNLW+E1VEw==";
       };
     };
     "urix-0.1.0" = {
@@ -57255,13 +58785,13 @@ let
         sha512 = "3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==";
       };
     };
-    "url-parse-1.4.7" = {
+    "url-parse-1.5.1" = {
       name = "url-parse";
       packageName = "url-parse";
-      version = "1.4.7";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz";
-        sha512 = "d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==";
+        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz";
+        sha512 = "HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==";
       };
     };
     "url-parse-lax-1.0.0" = {
@@ -57282,6 +58812,15 @@ let
         sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
       };
     };
+    "url-set-query-1.0.0" = {
+      name = "url-set-query";
+      packageName = "url-set-query";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz";
+        sha1 = "016e8cfd7c20ee05cafe7795e892bd0702faa339";
+      };
+    };
     "url-template-2.0.8" = {
       name = "url-template";
       packageName = "url-template";
@@ -57345,6 +58884,15 @@ let
         sha1 = "9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f";
       };
     };
+    "username-5.1.0" = {
+      name = "username";
+      packageName = "username";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/username/-/username-5.1.0.tgz";
+        sha512 = "PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==";
+      };
+    };
     "uslug-git+https://github.com/laurent22/uslug.git#emoji-support" = {
       name = "uslug";
       packageName = "uslug";
@@ -57589,13 +59137,13 @@ let
         sha512 = "vRAKaS8WcYNgzbxyH2LdheqgL4sQLis8LXl7r/mN+O4mpWlUpoCsTtietxepLrft2q0TFA2gaIvSWN1iRkzW/w==";
       };
     };
-    "utp-native-2.3.0" = {
+    "utp-native-2.4.0" = {
       name = "utp-native";
       packageName = "utp-native";
-      version = "2.3.0";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.3.0.tgz";
-        sha512 = "5dV711teCP21FIRndcq44ETDPL00TnRVmEnINu3jxyg0tq//ptxOyq7oNO6TcMmuFfeFZRSYOqDmTUl8MmPauQ==";
+        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.4.0.tgz";
+        sha512 = "jKwpFiEaDUuNH5S4vVk/+waAX+yA6f3Lw4flqOROH1ZE/jcT4mh0/hjIGSuPP9j9RbQcsBG6Fu6LaFk4ojXFxw==";
       };
     };
     "uuid-2.0.3" = {
@@ -57661,13 +59209,13 @@ let
         sha512 = "+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==";
       };
     };
-    "v8-compile-cache-2.2.0" = {
+    "v8-compile-cache-2.3.0" = {
       name = "v8-compile-cache";
       packageName = "v8-compile-cache";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
-        sha512 = "gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==";
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==";
       };
     };
     "v8-debug-1.0.1" = {
@@ -57688,15 +59236,6 @@ let
         sha1 = "e8381cbebb5b5fd0ca8d2b09f6a0181a158db34d";
       };
     };
-    "v8flags-3.1.3" = {
-      name = "v8flags";
-      packageName = "v8flags";
-      version = "3.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz";
-        sha512 = "amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==";
-      };
-    };
     "v8flags-3.2.0" = {
       name = "v8flags";
       packageName = "v8flags";
@@ -57895,13 +59434,13 @@ let
         sha1 = "cfde751860a15822db3b132bc59b116a4adaf01b";
       };
     };
-    "vega-5.19.1" = {
+    "vega-5.20.2" = {
       name = "vega";
       packageName = "vega";
-      version = "5.19.1";
+      version = "5.20.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega/-/vega-5.19.1.tgz";
-        sha512 = "UE6/c9q9kzuz4HULFuU9HscBASoZa+zcXqGKdbQP545Nwmhd078QpcH+wZsq9lYfiTxmFtzLK/a0OH0zhkghvA==";
+        url = "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz";
+        sha512 = "qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==";
       };
     };
     "vega-canvas-1.2.6" = {
@@ -57922,13 +59461,13 @@ let
         sha512 = "yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==";
       };
     };
-    "vega-dataflow-5.7.3" = {
+    "vega-dataflow-5.7.4" = {
       name = "vega-dataflow";
       packageName = "vega-dataflow";
-      version = "5.7.3";
+      version = "5.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-dataflow/-/vega-dataflow-5.7.3.tgz";
-        sha512 = "2ipzKgQUmbSXcQBH+9XF0BYbXyZrHvjlbJ8ifyRWYQk78w8kMvE6wy/rcdXYK6iVZ6aAbEDDT7jTI+rFt3tGLA==";
+        url = "https://registry.npmjs.org/vega-dataflow/-/vega-dataflow-5.7.4.tgz";
+        sha512 = "JGHTpUo8XGETH3b1V892we6hdjzCWB977ybycIu8DPqRoyrZuj6t1fCVImazfMgQD1LAfJlQybWP+alwKDpKig==";
       };
     };
     "vega-encode-4.8.3" = {
@@ -57949,15 +59488,6 @@ let
         sha512 = "UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==";
       };
     };
-    "vega-expression-3.0.1" = {
-      name = "vega-expression";
-      packageName = "vega-expression";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vega-expression/-/vega-expression-3.0.1.tgz";
-        sha512 = "+UwOFEkBnAWo8Zud6i8O4Pd2W6QqmPUOaAhjNtj0OxRL+d+Duoy7M4edUDZ+YuoUcMnjjBFfDQu7oRAA1fIMEQ==";
-      };
-    };
     "vega-expression-4.0.1" = {
       name = "vega-expression";
       packageName = "vega-expression";
@@ -58075,13 +59605,13 @@ let
         sha512 = "yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==";
       };
     };
-    "vega-scenegraph-4.9.3" = {
+    "vega-scenegraph-4.9.4" = {
       name = "vega-scenegraph";
       packageName = "vega-scenegraph";
-      version = "4.9.3";
+      version = "4.9.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.3.tgz";
-        sha512 = "lBvqLbXqrqRCTGJmSgzZC/tLR/o+TXfakbdhDzNdpgTavTaQ65S/67Gpj5hPpi77DvsfZUIY9lCEeO37aJhy0Q==";
+        url = "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz";
+        sha512 = "QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==";
       };
     };
     "vega-selections-5.3.0" = {
@@ -58111,40 +59641,40 @@ let
         sha512 = "U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==";
       };
     };
-    "vega-transforms-4.9.3" = {
+    "vega-transforms-4.9.4" = {
       name = "vega-transforms";
       packageName = "vega-transforms";
-      version = "4.9.3";
+      version = "4.9.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.3.tgz";
-        sha512 = "PdqQd5oPlRyD405M2w+Sz9Bo+i7Rwi8o03SVK7RaeQsJC2FffKGJ6acIaSEgOq+yD1Q2k/1SePmCXcmLUlIiEA==";
+        url = "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz";
+        sha512 = "JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==";
       };
     };
-    "vega-typings-0.19.2" = {
+    "vega-typings-0.21.0" = {
       name = "vega-typings";
       packageName = "vega-typings";
-      version = "0.19.2";
+      version = "0.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-typings/-/vega-typings-0.19.2.tgz";
-        sha512 = "YU/S9rDk4d+t4+4eTa9fzuw87PMNteeVtpcL51kUO8H7HvGaoW7ll8RHKLkR0NYBEGPRoFDKUxnoyMvhgjsdYw==";
+        url = "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz";
+        sha512 = "dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==";
       };
     };
-    "vega-util-1.16.0" = {
+    "vega-util-1.16.1" = {
       name = "vega-util";
       packageName = "vega-util";
-      version = "1.16.0";
+      version = "1.16.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-util/-/vega-util-1.16.0.tgz";
-        sha512 = "6mmz6mI+oU4zDMeKjgvE2Fjz0Oh6zo6WGATcvCfxH2gXBzhBHmy5d25uW5Zjnkc6QBXSWPLV9Xa6SiqMsrsKog==";
+        url = "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz";
+        sha512 = "FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==";
       };
     };
-    "vega-view-5.9.2" = {
+    "vega-view-5.10.1" = {
       name = "vega-view";
       packageName = "vega-view";
-      version = "5.9.2";
+      version = "5.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-view/-/vega-view-5.9.2.tgz";
-        sha512 = "XAwKWyVjLClR3aCbTLCWdZj7aZozOULNg7078GxJIgVcBJOENCAidceI/H7JieyUZ96p3AiEHLQdWr167InBpg==";
+        url = "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz";
+        sha512 = "4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==";
       };
     };
     "vega-view-transforms-4.5.8" = {
@@ -58183,13 +59713,13 @@ let
         sha512 = "/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==";
       };
     };
-    "verda-1.2.1" = {
+    "verda-1.2.2" = {
       name = "verda";
       packageName = "verda";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/verda/-/verda-1.2.1.tgz";
-        sha512 = "hEkyReHbrar3MikWeZTLWaR3Sr7KAl/M+KczKgGs80LHTPaKC06ussYuWVg9lMeOrwbOZb1o3DRNv91VzoGoYg==";
+        url = "https://registry.npmjs.org/verda/-/verda-1.2.2.tgz";
+        sha512 = "qWyG2W2wgAw27sV5kVUjceb7GBwUFleVjBmH5XA4L9J8rLpB10N7uaP45ZDYGA7gRuNjo/5futihrBWbKKvJ0Q==";
       };
     };
     "verror-1.1.0" = {
@@ -58489,13 +60019,13 @@ let
         sha512 = "gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==";
       };
     };
-    "vls-0.5.10" = {
+    "vls-0.7.2" = {
       name = "vls";
       packageName = "vls";
-      version = "0.5.10";
+      version = "0.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vls/-/vls-0.5.10.tgz";
-        sha512 = "/zXdkUatCptsDGmrEVh0A/LEQ48qEwrKe+7HiIwUOmiz+0DkoHsyf/j6eppXMVRWMcHWopwd9/VTNCRlFf2NFw==";
+        url = "https://registry.npmjs.org/vls/-/vls-0.7.2.tgz";
+        sha512 = "9nKgSPtNxQlc32K5GgZV++MdsCpNuac/SfxnEmVI0DCF4E0Uekj+RUo7Zk6NnA4veiNMN+AEjAIlbXYWPHgX6Q==";
       };
     };
     "vm-browserify-1.1.2" = {
@@ -58525,13 +60055,13 @@ let
         sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
       };
     };
-    "vsce-1.85.0" = {
+    "vsce-1.87.1" = {
       name = "vsce";
       packageName = "vsce";
-      version = "1.85.0";
+      version = "1.87.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vsce/-/vsce-1.85.0.tgz";
-        sha512 = "YVFwjXWvHRwk75mm3iL4Wr3auCdbBPTv2amtLf97ccqH0hkt0ZVBddu7iOs4HSEbSr9xiiaZwQHUsqMm6Ks0ag==";
+        url = "https://registry.npmjs.org/vsce/-/vsce-1.87.1.tgz";
+        sha512 = "3tSUWZl9AmhZrqy/UVUpdPODSzBiCGjIr/AMSSgF2PuFLSdrh+6kiOr2Ath7bpQEXOxf55hNgz3qdO5MuEJmww==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -58561,22 +60091,22 @@ let
         sha512 = "DTMa8QbVmujFPvD3NxoC5jjIXCyCG+cvn3hNzwQRhvhsk8LblNymBZBwzfcDdgEtqsi4O/2AB5HnMIRzxhzEzg==";
       };
     };
-    "vscode-debugadapter-testsupport-1.44.0" = {
+    "vscode-debugadapter-testsupport-1.46.0" = {
       name = "vscode-debugadapter-testsupport";
       packageName = "vscode-debugadapter-testsupport";
-      version = "1.44.0";
+      version = "1.46.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-debugadapter-testsupport/-/vscode-debugadapter-testsupport-1.44.0.tgz";
-        sha512 = "5sPAQ4/OFPBvZoyx2nPI91Zv7CCZ63CS9XrsCaR1t2awEY+hv+yjwryaWpV0AQX6lrYOCO/PehYvzmDsGLEy6A==";
+        url = "https://registry.npmjs.org/vscode-debugadapter-testsupport/-/vscode-debugadapter-testsupport-1.46.0.tgz";
+        sha512 = "6n+uu4+Q5sZvN2FgFLNJkyaE6AECYzFh+Hfv+IeJoVKA7KNiQ1SNd3yTsvSFxkS00LmVU6V00XGaqZRlwM15Jg==";
       };
     };
-    "vscode-debugprotocol-1.44.0" = {
+    "vscode-debugprotocol-1.46.0" = {
       name = "vscode-debugprotocol";
       packageName = "vscode-debugprotocol";
-      version = "1.44.0";
+      version = "1.46.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.44.0.tgz";
-        sha512 = "qf+eBnrDyR2MpP08y1JfzJnFZGHdkk86+SRGRp0XepDGNA6n/Nann5XhtAzdGX/yaZokjTAINK313S2yYhHoPQ==";
+        url = "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.46.0.tgz";
+        sha512 = "V10u1L679DJZfOtQXhKylJPMqNbhazav4mRxPrBE8/Jpznow1b1j1EGDDvJ4prQ623CLAnvpFfVkVQ+CX3xdtg==";
       };
     };
     "vscode-emmet-helper-1.2.17" = {
@@ -58624,6 +60154,15 @@ let
         sha512 = "QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA==";
       };
     };
+    "vscode-json-languageservice-4.0.2" = {
+      name = "vscode-json-languageservice";
+      packageName = "vscode-json-languageservice";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.0.2.tgz";
+        sha512 = "d8Ahw990Cq/G60CzN26rehXcbhbMgMGMmXeN6C/V/RYZUhfs16EELRK+EL7b/3Y8ZGshtKqboePSeDVa94qqFg==";
+      };
+    };
     "vscode-jsonrpc-3.5.0" = {
       name = "vscode-jsonrpc";
       packageName = "vscode-jsonrpc";
@@ -58678,13 +60217,13 @@ let
         sha512 = "wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==";
       };
     };
-    "vscode-jsonrpc-6.0.0-next.2" = {
+    "vscode-jsonrpc-6.1.0-next.2" = {
       name = "vscode-jsonrpc";
       packageName = "vscode-jsonrpc";
-      version = "6.0.0-next.2";
+      version = "6.1.0-next.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0-next.2.tgz";
-        sha512 = "dKQXRYNUY6BHALQJBJlyZyv9oWlYpbJ2vVoQNNVNPLAYQ3hzNp4zy+iSo7zGx1BPXByArJQDWTKLQh8dz3dnNw==";
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.1.0-next.2.tgz";
+        sha512 = "nkiNDGI+Ytp7uj1lxHXddXCoEunhcry1D+KmVHBfUUgWT9jMF8ZJyH5KQObdF+OGAh7bXZxD/SV4uGwSCeHHWA==";
       };
     };
     "vscode-languageclient-4.0.1" = {
@@ -58696,13 +60235,13 @@ let
         sha512 = "0fuBZj9pMkeJ8OMyIvSGeRaRVhUaJt+yeFxi7a3sz/AbrngQdcxOovMXPgKuieoBSBKS05gXPS88BsWpJZfBkA==";
       };
     };
-    "vscode-languageclient-7.0.0" = {
+    "vscode-languageclient-7.1.0-next.4" = {
       name = "vscode-languageclient";
       packageName = "vscode-languageclient";
-      version = "7.0.0";
+      version = "7.1.0-next.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz";
-        sha512 = "P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==";
+        url = "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.1.0-next.4.tgz";
+        sha512 = "Gal+DvbI1KIwO1z90MvSnghMCVBCGlwdpOVIS0Hhmep7rjHUOwuC5Df7YlVkpzfPm+RCRyZQnUSJ19VNrnxxhA==";
       };
     };
     "vscode-languageserver-3.5.1" = {
@@ -58777,15 +60316,6 @@ let
         sha512 = "60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==";
       };
     };
-    "vscode-languageserver-7.0.0-next.3" = {
-      name = "vscode-languageserver";
-      packageName = "vscode-languageserver";
-      version = "7.0.0-next.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0-next.3.tgz";
-        sha512 = "qSt8eb546iFuoFIN+9MPl4Avru6Iz2/JP0UmS/3djf40ICa31Np/yJ7anX2j0Az5rCzb0fak8oeKwDioGeVOYg==";
-      };
-    };
     "vscode-languageserver-protocol-3.14.1" = {
       name = "vscode-languageserver-protocol";
       packageName = "vscode-languageserver-protocol";
@@ -58822,13 +60352,13 @@ let
         sha512 = "atmkGT/W6tF0cx4SaWFYtFs2UeSeC28RPiap9myv2YZTaTCFvTBEPNWrU5QRKfkyM0tbgtGo6T3UCQ8tkDpjzA==";
       };
     };
-    "vscode-languageserver-protocol-3.16.0-next.4" = {
+    "vscode-languageserver-protocol-3.17.0-next.5" = {
       name = "vscode-languageserver-protocol";
       packageName = "vscode-languageserver-protocol";
-      version = "3.16.0-next.4";
+      version = "3.17.0-next.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0-next.4.tgz";
-        sha512 = "6GmPUp2MhJy2H1CTWp2B40Pa9BeC9glrXWmQWVG6A/0V9UbcAjVC9m56znm2GL32iyLDIprTBe8gBvvvcjbpaQ==";
+        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.5.tgz";
+        sha512 = "LFZ6WMB3iPezQAU9OnGoERzcIVKhcs0OLfD/NHcqSj3g1wgxuLUL5kSlZbbjFySQCmhzm6b0yb3hjTSeBtq1+w==";
       };
     };
     "vscode-languageserver-protocol-3.5.1" = {
@@ -58912,6 +60442,15 @@ let
         sha512 = "QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==";
       };
     };
+    "vscode-languageserver-types-3.17.0-next.1" = {
+      name = "vscode-languageserver-types";
+      packageName = "vscode-languageserver-types";
+      version = "3.17.0-next.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.0-next.1.tgz";
+        sha512 = "VGzh06oynbYa6JbTKUbxOEZN7CYEtWhN7DK5wfzUpeCJl8X8xZX39g2PVfpqXrIEduu7dcJgK007KgnX9tHNKA==";
+      };
+    };
     "vscode-languageserver-types-3.5.0" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
@@ -58957,13 +60496,13 @@ let
         sha512 = "u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==";
       };
     };
-    "vscode-test-1.5.0" = {
+    "vscode-test-1.5.2" = {
       name = "vscode-test";
       packageName = "vscode-test";
-      version = "1.5.0";
+      version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-test/-/vscode-test-1.5.0.tgz";
-        sha512 = "svwE/mhBBqrB77C1U7pkUKfUmxnkzg0dLGi1vEmitsleu88oNsqZEhG3ANZrL/Ia4m0CW0oYEKRw2EojpFxLlQ==";
+        url = "https://registry.npmjs.org/vscode-test/-/vscode-test-1.5.2.tgz";
+        sha512 = "x9PVfKxF6EInH9iSFGQi0V8H5zIW1fC7RAer6yNQR6sy3WyOwlWkuT3I+wf75xW/cO53hxMi1aj/EvqQfDFOAg==";
       };
     };
     "vscode-textbuffer-1.0.0" = {
@@ -58984,15 +60523,6 @@ let
         sha1 = "631bdbf716dccab0e65291a8dc25c23232085a52";
       };
     };
-    "vscode-uri-1.0.6" = {
-      name = "vscode-uri";
-      packageName = "vscode-uri";
-      version = "1.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.6.tgz";
-        sha512 = "sLI2L0uGov3wKVb9EB+vIQBl9tVP90nqRvxSoJ35vI3NjxE8jfsE5DSOhWgSunHSZmKS4OCi2jrtfxK7uyp2ww==";
-      };
-    };
     "vscode-uri-1.0.8" = {
       name = "vscode-uri";
       packageName = "vscode-uri";
@@ -59038,31 +60568,13 @@ let
         sha512 = "uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==";
       };
     };
-    "vue-3.0.5" = {
-      name = "vue";
-      packageName = "vue";
-      version = "3.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vue/-/vue-3.0.5.tgz";
-        sha512 = "TfaprOmtsAfhQau7WsomXZ8d9op/dkQLNIq8qPV3A0Vxs6GR5E+c1rfJS1SDkXRQj+dFyfnec7+U0Be1huiScg==";
-      };
-    };
-    "vue-cli-plugin-apollo-0.21.3" = {
-      name = "vue-cli-plugin-apollo";
-      packageName = "vue-cli-plugin-apollo";
-      version = "0.21.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vue-cli-plugin-apollo/-/vue-cli-plugin-apollo-0.21.3.tgz";
-        sha512 = "8CzRVrAsFkB9lpl600cRCNR9OUnrSYYAIVF9/qW4pP0TMXbhrd1F1wEAAN6E0CPimjTLB+qSt6zWS4vb2wC8Wg==";
-      };
-    };
-    "vue-codemod-0.0.4" = {
+    "vue-codemod-0.0.5" = {
       name = "vue-codemod";
       packageName = "vue-codemod";
-      version = "0.0.4";
+      version = "0.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-codemod/-/vue-codemod-0.0.4.tgz";
-        sha512 = "mAI9g4CcY3GJOOt/fTOC8Cz9lYtBEuSiDizQHgvcX0HpoKw1bNZBPaNUqFoNxnk6+nGZVgt0/CXYnq80rRK9vg==";
+        url = "https://registry.npmjs.org/vue-codemod/-/vue-codemod-0.0.5.tgz";
+        sha512 = "DE+24W1d3oanGqq7yna4ddOKXmVzjECgku2ddMcm7OS9Bp9QOblMHT88PzKiCc7npGiHf5+mTfrEW1JVIBbA2A==";
       };
     };
     "vue-eslint-parser-2.0.3" = {
@@ -59092,13 +60604,13 @@ let
         sha512 = "8FdXi0gieEwh1IprIBafpiJWcApwrU+l2FEj8c1HtHFdNXMd0+2jUSjBVmcQYohf/E72irwAXEXLga6TQcB3FA==";
       };
     };
-    "vue-eslint-parser-7.4.1" = {
+    "vue-eslint-parser-7.6.0" = {
       name = "vue-eslint-parser";
       packageName = "vue-eslint-parser";
-      version = "7.4.1";
+      version = "7.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.4.1.tgz";
-        sha512 = "AFvhdxpFvliYq1xt/biNBslTHE/zbEvSnr1qfHA/KxRIpErmEDrQZlQnvEexednRHmLfDNOMuDYwZL5xkLzIXQ==";
+        url = "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.6.0.tgz";
+        sha512 = "QXxqH8ZevBrtiZMZK0LpwaMfevQi9UL7lY6Kcp+ogWHC88AuwUPwwCIzkOUc1LR4XsYAt/F9yHXAB/QoD17QXA==";
       };
     };
     "vue-onsenui-helper-json-1.0.2" = {
@@ -59290,6 +60802,15 @@ let
         sha512 = "n1CfuJcJ+dynIx/fmavB6haPx37N3GZvY5HIGIselymDiSwNRC+8pAxOzoB4eVwUBJnbP3+aA8vWttrAZbgs7A==";
       };
     };
+    "web3-utils-1.3.5" = {
+      name = "web3-utils";
+      packageName = "web3-utils";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.5.tgz";
+        sha512 = "5apMRm8ElYjI/92GHqijmaLC+s+d5lgjpjHft+rJSs/dsnX8I8tQreqev0dmU+wzU+2EEe4Sx9a/OwGWHhQv3A==";
+      };
+    };
     "webassemblyjs-1.11.0" = {
       name = "webassemblyjs";
       packageName = "webassemblyjs";
@@ -59362,13 +60883,13 @@ let
         sha512 = "6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==";
       };
     };
-    "webpack-5.9.0" = {
+    "webpack-5.28.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "5.9.0";
+      version = "5.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.9.0.tgz";
-        sha512 = "YnnqIV/uAS5ZrNpctSv378qV7HmbJ74DL+XfvMxzbX1bV9e7eeT6eEWU4wuUw33CNr/HspBh7R/xQlVjTEyAeA==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.28.0.tgz";
+        sha512 = "1xllYVmA4dIvRjHzwELgW4KjIU1fW4PEuEnjsylz7k7H5HgPOctIq7W1jrt3sKH9yG5d72//XWzsHhfoWvsQVg==";
       };
     };
     "webpack-cli-3.3.12" = {
@@ -59515,13 +61036,13 @@ let
         sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
       };
     };
-    "webtorrent-0.114.1" = {
+    "webtorrent-0.116.1" = {
       name = "webtorrent";
       packageName = "webtorrent";
-      version = "0.114.1";
+      version = "0.116.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-0.114.1.tgz";
-        sha512 = "RJqwy6cTG1kysvd3xX2CJIAMeC/3e5M/MPu4MuZKcBxa2I+D75nONoNjP0cLTnE+gVb0MFQSQU93ln/2/f6k6g==";
+        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-0.116.1.tgz";
+        sha512 = "xCmA9U8RviUbGD2Gv8pAPEGaPzGw8ZXseuUb5bbNrTg7zseRw4SrRvhPM17ri3yKN7+jWPeDvVXPPsNY9scFHw==";
       };
     };
     "well-known-symbols-2.0.0" = {
@@ -59542,13 +61063,13 @@ let
         sha512 = "b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==";
       };
     };
-    "whatwg-fetch-3.5.0" = {
+    "whatwg-fetch-3.6.2" = {
       name = "whatwg-fetch";
       packageName = "whatwg-fetch";
-      version = "3.5.0";
+      version = "3.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz";
-        sha512 = "jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A==";
+        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz";
+        sha512 = "bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==";
       };
     };
     "whatwg-mimetype-2.3.0" = {
@@ -59578,13 +61099,13 @@ let
         sha512 = "WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==";
       };
     };
-    "whatwg-url-8.4.0" = {
+    "whatwg-url-8.5.0" = {
       name = "whatwg-url";
       packageName = "whatwg-url";
-      version = "8.4.0";
+      version = "8.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz";
-        sha512 = "vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==";
+        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz";
+        sha512 = "fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==";
       };
     };
     "whatwg-url-compat-0.6.5" = {
@@ -59821,6 +61342,15 @@ let
         sha1 = "b4315bb4214a3d7058ebeee892e13fa24d98b075";
       };
     };
+    "window-size-1.1.1" = {
+      name = "window-size";
+      packageName = "window-size";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/window-size/-/window-size-1.1.1.tgz";
+        sha512 = "5D/9vujkmVQ7pSmc0SCBmHXbkv6eaHwXEx65MywhmUMsI8sGqJ972APq1lotfcwMKPFLuCFfL8xGHLIp7jaBmA==";
+      };
+    };
     "windows-no-runnable-0.0.6" = {
       name = "windows-no-runnable";
       packageName = "windows-no-runnable";
@@ -60298,31 +61828,31 @@ let
         sha512 = "fDKIHO5wCzTLCOGNJl1rzzJrZlTIzfZl8msOoJQZzRhYo0X/tFTm4+2B1zTibFYK01Nnd1kLZBjj4xjcFLePNQ==";
       };
     };
-    "write-json-file-2.3.0" = {
+    "write-json-file-3.2.0" = {
       name = "write-json-file";
       packageName = "write-json-file";
-      version = "2.3.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz";
-        sha1 = "2b64c8a33004d54b8698c76d585a77ceb61da32f";
+        url = "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz";
+        sha512 = "3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==";
       };
     };
-    "write-json-file-3.2.0" = {
+    "write-json-file-4.3.0" = {
       name = "write-json-file";
       packageName = "write-json-file";
-      version = "3.2.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz";
-        sha512 = "3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==";
+        url = "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz";
+        sha512 = "PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==";
       };
     };
-    "write-pkg-3.2.0" = {
+    "write-pkg-4.0.0" = {
       name = "write-pkg";
       packageName = "write-pkg";
-      version = "3.2.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz";
-        sha512 = "tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==";
+        url = "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz";
+        sha512 = "v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==";
       };
     };
     "ws-0.4.31" = {
@@ -60397,22 +61927,22 @@ let
         sha512 = "C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==";
       };
     };
-    "ws-7.4.2" = {
+    "ws-7.4.3" = {
       name = "ws";
       packageName = "ws";
-      version = "7.4.2";
+      version = "7.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz";
-        sha512 = "T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz";
+        sha512 = "hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==";
       };
     };
-    "ws-7.4.3" = {
+    "ws-7.4.4" = {
       name = "ws";
       packageName = "ws";
-      version = "7.4.3";
+      version = "7.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz";
-        sha512 = "hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz";
+        sha512 = "Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==";
       };
     };
     "x-default-browser-0.3.1" = {
@@ -60451,15 +61981,6 @@ let
         sha1 = "c9af18876f7a175801d564fe70ad9e8317784934";
       };
     };
-    "xcode-2.1.0" = {
-      name = "xcode";
-      packageName = "xcode";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xcode/-/xcode-2.1.0.tgz";
-        sha512 = "uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ==";
-      };
-    };
     "xcode-3.0.1" = {
       name = "xcode";
       packageName = "xcode";
@@ -60496,6 +62017,15 @@ let
         sha512 = "PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==";
       };
     };
+    "xdl-59.0.29" = {
+      name = "xdl";
+      packageName = "xdl";
+      version = "59.0.29";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xdl/-/xdl-59.0.29.tgz";
+        sha512 = "f593BX+PUoAy/Sz+OG6GFGhobKKWbi5nzW9Pph9RKZK3ovpiKc+dVX8zNY+bJxWCkgPCv7c11smb/8mOPsWAQA==";
+      };
+    };
     "xenvar-0.5.1" = {
       name = "xenvar";
       packageName = "xenvar";
@@ -60514,6 +62044,24 @@ let
         sha512 = "/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==";
       };
     };
+    "xhr-request-1.1.0" = {
+      name = "xhr-request";
+      packageName = "xhr-request";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz";
+        sha512 = "Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==";
+      };
+    };
+    "xhr-request-promise-0.1.3" = {
+      name = "xhr-request-promise";
+      packageName = "xhr-request-promise";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz";
+        sha512 = "YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==";
+      };
+    };
     "xml-1.0.1" = {
       name = "xml";
       packageName = "xml";
@@ -60730,15 +62278,6 @@ let
         sha1 = "631fc07776efd84118bf25171b37ed4d075a0abc";
       };
     };
-    "xmldom-0.1.27" = {
-      name = "xmldom";
-      packageName = "xmldom";
-      version = "0.1.27";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz";
-        sha1 = "d501f97b3bdb403af8ef9ecc20573187aadac0e9";
-      };
-    };
     "xmldom-0.1.31" = {
       name = "xmldom";
       packageName = "xmldom";
@@ -60766,6 +62305,15 @@ let
         sha512 = "2E93k08T30Ugs+34HBSTQLVtpi6mCddaY8uO+pMNk1pqSjV5vElzn4mmh6KLxN3hki8rNcHSYzILoh3TEWORvA==";
       };
     };
+    "xmldom-0.5.0" = {
+      name = "xmldom";
+      packageName = "xmldom";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz";
+        sha512 = "Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==";
+      };
+    };
     "xmlhttprequest-1.8.0" = {
       name = "xmlhttprequest";
       packageName = "xmlhttprequest";
@@ -60866,6 +62414,15 @@ let
         sha512 = "3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==";
       };
     };
+    "xstate-4.17.1" = {
+      name = "xstate";
+      packageName = "xstate";
+      version = "4.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xstate/-/xstate-4.17.1.tgz";
+        sha512 = "3q7so9qAKFnz9/t7BNQXQtV+9fwDATCOkC+0tAvVqczboEbu6gz2dvPPVCCkj55Hyzgro9aSOntGSPGLei82BA==";
+      };
+    };
     "xstream-11.14.0" = {
       name = "xstream";
       packageName = "xstream";
@@ -60911,13 +62468,13 @@ let
         sha512 = "wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==";
       };
     };
-    "y18n-5.0.5" = {
+    "y18n-5.0.6" = {
       name = "y18n";
       packageName = "y18n";
-      version = "5.0.5";
+      version = "5.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz";
-        sha512 = "hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==";
+        url = "https://registry.npmjs.org/y18n/-/y18n-5.0.6.tgz";
+        sha512 = "PlVX4Y0lDTN6E2V4ES2tEdyvXkeKzxa8c/vo0pxPr/TqbztddTP0yn7zZylIyiAuxerqj0Q5GhpJ1YJCP8LaZQ==";
       };
     };
     "yallist-2.1.2" = {
@@ -60947,13 +62504,13 @@ let
         sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
       };
     };
-    "yaml-1.10.0" = {
+    "yaml-1.10.2" = {
       name = "yaml";
       packageName = "yaml";
-      version = "1.10.0";
+      version = "1.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz";
-        sha512 = "yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==";
+        url = "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz";
+        sha512 = "r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==";
       };
     };
     "yaml-ast-parser-0.0.43" = {
@@ -60983,13 +62540,13 @@ let
         sha1 = "87cfa5a9613f48e26005420d6a8ee0da6fe8daec";
       };
     };
-    "yaml-language-server-0.13.1-dcc82a9.0" = {
+    "yaml-language-server-0.13.1-d0f9b44.0" = {
       name = "yaml-language-server";
       packageName = "yaml-language-server";
-      version = "0.13.1-dcc82a9.0";
+      version = "0.13.1-d0f9b44.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.13.1-dcc82a9.0.tgz";
-        sha512 = "26QP9JhfcrroDTeMv2OsY4eoI+NKb6tZwy1Uz0MBWi1uGmOw0/6aR9Oa3guOsC96U27GAqT6glRFMjCGqLro7A==";
+        url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.13.1-d0f9b44.0.tgz";
+        sha512 = "6q5NKJiCqB1ptEopsA6pQDNDBnpwQ5o3A6im9Mus9XdB1gM0TCaR2TT9XU13CFo6JoCgVZ6s3lgoUOsbN8Y5Qw==";
       };
     };
     "yaml-language-server-parser-0.1.2" = {
@@ -61091,15 +62648,6 @@ let
         sha512 = "6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA==";
       };
     };
-    "yargs-16.1.1" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "16.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-16.1.1.tgz";
-        sha512 = "hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w==";
-      };
-    };
     "yargs-16.2.0" = {
       name = "yargs";
       packageName = "yargs";
@@ -61217,6 +62765,15 @@ let
         sha512 = "WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==";
       };
     };
+    "yargs-parser-20.2.7" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "20.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz";
+        sha512 = "FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==";
+      };
+    };
     "yargs-parser-4.2.1" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -61289,6 +62846,15 @@ let
         sha512 = "oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA==";
       };
     };
+    "yarn-or-npm-3.0.1" = {
+      name = "yarn-or-npm";
+      packageName = "yarn-or-npm";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yarn-or-npm/-/yarn-or-npm-3.0.1.tgz";
+        sha512 = "fTiQP6WbDAh5QZAVdbMQkecZoahnbOjClTQhzv74WX5h2Uaidj1isf9FDes11TKtsZ0/ZVfZsqZ+O3x6aLERHQ==";
+      };
+    };
     "yauzl-2.10.0" = {
       name = "yauzl";
       packageName = "yauzl";
@@ -61388,6 +62954,15 @@ let
         sha512 = "avX6nz2esp7IMXGag4gu6OyQBsMh/SEn+ZybGu3yKPlOTE6z9qJrzG/0X5vCq/e0rPFy0CUYCze0G5hL310ibA==";
       };
     };
+    "yurnalist-2.1.0" = {
+      name = "yurnalist";
+      packageName = "yurnalist";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yurnalist/-/yurnalist-2.1.0.tgz";
+        sha512 = "PgrBqosQLM3gN2xBFIMDLACRTV9c365VqityKKpSTWpwR+U4LAFR3rSVyEoscWlu3EzX9+Y0I86GXUKxpHFl6w==";
+      };
+    };
     "z-schema-3.25.1" = {
       name = "z-schema";
       packageName = "z-schema";
@@ -61442,13 +63017,13 @@ let
         sha1 = "62814dd799eff8361f2a228f41f705c5e19de4c9";
       };
     };
-    "zip-dir-1.0.2" = {
+    "zip-dir-2.0.0" = {
       name = "zip-dir";
       packageName = "zip-dir";
-      version = "1.0.2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zip-dir/-/zip-dir-1.0.2.tgz";
-        sha1 = "253f907aead62a21acd8721d8b88032b2411c051";
+        url = "https://registry.npmjs.org/zip-dir/-/zip-dir-2.0.0.tgz";
+        sha512 = "uhlsJZWz26FLYXOD6WVuq+fIcZ3aBPGo/cFdiLlv3KNwpa52IF3ISV8fLhQLiqVu5No3VhlqlgthN6gehil1Dg==";
       };
     };
     "zip-stream-2.1.3" = {
@@ -61469,13 +63044,13 @@ let
         sha512 = "r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==";
       };
     };
-    "zip-stream-4.0.4" = {
+    "zip-stream-4.1.0" = {
       name = "zip-stream";
       packageName = "zip-stream";
-      version = "4.0.4";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zip-stream/-/zip-stream-4.0.4.tgz";
-        sha512 = "a65wQ3h5gcQ/nQGWV1mSZCEzCML6EK/vyVPcrPNynySP1j3VBbQKh3nhC8CbORb+jfl2vXvh56Ul5odP1bAHqw==";
+        url = "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz";
+        sha512 = "zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==";
       };
     };
     "zmq-2.15.3" = {
@@ -61511,15 +63086,15 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "11.2.0";
+    version = "11.2.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-11.2.0.tgz";
-      sha512 = "waIR5Nqc2wcYXZh/Mgm+4Iyvu0nzKAhvmKiJjcJ+f2UuPRMLdNAInTvhdpfgKaNdmiArxNa6UntRIu+EavGc9Q==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-11.2.7.tgz";
+      sha512 = "+0uC485NHE5Z8FCyCAeZnb7OCOZSGzEsUxGS5pEs8V9+c02/FmMg5aFBmxoXJhCWMJnb2QrJgAjb6rgka8e4Hg==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1102.0"
-      sources."@angular-devkit/core-11.2.0"
-      sources."@angular-devkit/schematics-11.2.0"
+      sources."@angular-devkit/architect-0.1102.7"
+      sources."@angular-devkit/core-11.2.7"
+      sources."@angular-devkit/schematics-11.2.7"
       sources."@npmcli/ci-detect-1.3.0"
       (sources."@npmcli/git-2.0.6" // {
         dependencies = [
@@ -61530,13 +63105,13 @@ in
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      (sources."@npmcli/run-script-1.8.3" // {
+      (sources."@npmcli/run-script-1.8.4" // {
         dependencies = [
-          sources."read-package-json-fast-2.0.1"
+          sources."read-package-json-fast-2.0.2"
         ];
       })
-      sources."@schematics/angular-11.2.0"
-      sources."@schematics/update-0.1102.0"
+      sources."@schematics/angular-11.2.7"
+      sources."@schematics/update-0.1102.7"
       sources."@tootallnate/once-1.1.2"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."abbrev-1.1.1"
@@ -61545,7 +63120,7 @@ in
       sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
       sources."ansi-colors-4.1.1"
-      sources."ansi-escapes-4.3.1"
+      sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."aproba-1.2.0"
@@ -61561,21 +63136,21 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
       sources."buffer-5.7.1"
       sources."builtins-1.0.3"
-      sources."cacache-15.0.5"
+      sources."cacache-15.0.6"
       sources."caseless-0.12.0"
       sources."chalk-4.1.0"
       sources."chardet-0.7.0"
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.5.0"
+      sources."cli-spinners-2.6.0"
       sources."cli-width-3.0.0"
       sources."clone-1.0.4"
       sources."code-point-at-1.1.0"
@@ -61598,7 +63173,7 @@ in
           sources."iconv-lite-0.6.2"
         ];
       })
-      sources."env-paths-2.2.0"
+      sources."env-paths-2.2.1"
       sources."err-code-2.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."extend-3.0.2"
@@ -61646,11 +63221,12 @@ in
       sources."inquirer-7.3.3"
       sources."ip-1.1.5"
       sources."is-core-module-2.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-interactive-1.0.0"
       sources."is-lambda-1.0.1"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
@@ -61663,8 +63239,8 @@ in
       sources."jsonc-parser-3.0.0"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.20"
-      sources."log-symbols-4.0.0"
+      sources."lodash-4.17.21"
+      sources."log-symbols-4.1.0"
       sources."lru-cache-6.0.0"
       sources."magic-string-0.25.7"
       (sources."make-fetch-happen-8.0.14" // {
@@ -61672,8 +63248,8 @@ in
           sources."promise-retry-2.0.1"
         ];
       })
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minipass-3.1.3"
@@ -61693,7 +63269,7 @@ in
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.0"
-      sources."npm-packlist-2.1.4"
+      sources."npm-packlist-2.1.5"
       sources."npm-pick-manifest-6.1.0"
       sources."npm-registry-fetch-9.0.0"
       sources."npmlog-4.1.2"
@@ -61719,7 +63295,6 @@ in
         ];
       })
       sources."psl-1.8.0"
-      sources."puka-1.0.1"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."read-package-json-fast-1.2.2"
@@ -61746,13 +63321,13 @@ in
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.3"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.5.1"
+      sources."socks-2.6.0"
       sources."socks-proxy-agent-5.0.0"
       sources."source-map-0.7.3"
       sources."sourcemap-codec-1.4.8"
       sources."sshpk-1.16.1"
       sources."ssri-8.0.1"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.0"
       sources."supports-color-7.2.0"
@@ -61764,7 +63339,7 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-fest-0.11.0"
+      sources."type-fest-0.21.3"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       (sources."universal-analytics-0.4.23" // {
@@ -61815,13 +63390,13 @@ in
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
       sources."commander-6.1.0"
-      sources."convict-6.0.0"
+      sources."convict-6.0.1"
       sources."decamelize-1.2.0"
       sources."esprima-4.0.1"
       sources."js-yaml-3.14.1"
       sources."json5-2.1.3"
       sources."lodash.clonedeep-4.5.0"
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       sources."minimist-1.2.5"
       sources."quick-lru-4.0.1"
       sources."sprintf-js-1.0.3"
@@ -61865,7 +63440,7 @@ in
       sources."argparse-1.0.10"
       sources."asciidoctor.js-1.5.9"
       sources."async-lock-1.2.8"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-0.0.2"
       sources."bl-4.0.4"
       sources."bops-0.0.7"
@@ -61911,7 +63486,7 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."convict-6.0.0"
+      sources."convict-6.0.1"
       sources."core-util-is-1.0.2"
       sources."crc-32-1.2.0"
       sources."decamelize-1.2.0"
@@ -61986,9 +63561,9 @@ in
           sources."through2-2.0.5"
         ];
       })
-      sources."handlebars-4.7.6"
+      sources."handlebars-4.7.7"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."http-cache-semantics-4.1.0"
       sources."ieee754-1.2.1"
       sources."ignore-5.1.8"
@@ -62023,11 +63598,11 @@ in
       sources."lead-1.0.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lowercase-keys-1.0.1"
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       sources."marky-1.2.1"
       sources."matcher-2.1.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimatch-all-1.1.0"
@@ -62116,7 +63691,7 @@ in
         ];
       })
       sources."to-utf8-0.0.1"
-      sources."uglify-js-3.12.7"
+      sources."uglify-js-3.13.3"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
@@ -62156,10 +63731,10 @@ in
   "@bitwarden/cli" = nodeEnv.buildNodePackage {
     name = "_at_bitwarden_slash_cli";
     packageName = "@bitwarden/cli";
-    version = "1.14.0";
+    version = "1.15.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.14.0.tgz";
-      sha512 = "j9xCEhsE+xkR6tYYONv+MSlv7/OIQHj9G2JYq5vOauC4RNRLYSmo5I94LKliqUZDrZb4HpByhcL/nUcNxu5fNw==";
+      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.15.1.tgz";
+      sha512 = "kD+EkbSqFRtkwV/PXbgaCvrSOqVRTRaFhfT4XNoYbggWhMVwB6ebvdHvHe5I7pRKE8/xgP7WiIM/b0HP81bbHg==";
     };
     dependencies = [
       sources."abab-2.0.5"
@@ -62190,7 +63765,7 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."combined-stream-1.0.6"
-      sources."commander-2.18.0"
+      sources."commander-7.0.0"
       sources."core-util-is-1.0.2"
       sources."cssom-0.3.8"
       sources."cssstyle-1.4.0"
@@ -62225,7 +63800,7 @@ in
       sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.4.24"
       sources."inquirer-6.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-promise-2.2.2"
       sources."is-typedarray-1.0.0"
@@ -62238,12 +63813,12 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
       sources."levn-0.3.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.sortby-4.7.0"
       sources."lowdb-1.0.0"
       sources."lunr-2.3.3"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.7"
@@ -62269,7 +63844,7 @@ in
       sources."request-promise-native-1.0.9"
       sources."restore-cursor-2.0.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."saxes-3.1.11"
@@ -62323,18 +63898,23 @@ in
   "@nestjs/cli" = nodeEnv.buildNodePackage {
     name = "_at_nestjs_slash_cli";
     packageName = "@nestjs/cli";
-    version = "7.5.4";
+    version = "7.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-7.5.4.tgz";
-      sha512 = "qKdniSA7NXO/5HqSxGaalMS7roIJXeT4yXTadBQ47Qv68DHh/0jfCcTzH6hqCuyRV7DV2k0bxob+rq4peMaZBw==";
+      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-7.6.0.tgz";
+      sha512 = "lW1px2gSHkRoBpKSxzP6IJNQscRKs97OAaVyV46OAP6oUR996E0EPkIslIaa16kKLJ3SFOUeZo5xl5nYbqp43g==";
     };
     dependencies = [
-      sources."@angular-devkit/core-11.0.3"
-      sources."@angular-devkit/schematics-11.0.3"
-      sources."@angular-devkit/schematics-cli-0.1100.3"
+      sources."@angular-devkit/core-11.2.6"
+      (sources."@angular-devkit/schematics-11.2.6" // {
+        dependencies = [
+          sources."chalk-4.1.0"
+          sources."ora-5.3.0"
+        ];
+      })
+      sources."@angular-devkit/schematics-cli-0.1102.6"
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -62344,66 +63924,49 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      (sources."@nestjs/schematics-7.2.7" // {
+      (sources."@nestjs/schematics-7.3.1" // {
         dependencies = [
-          sources."@angular-devkit/core-11.1.0"
-          sources."@angular-devkit/schematics-11.1.0"
+          sources."@angular-devkit/core-11.2.4"
+          sources."@angular-devkit/schematics-11.2.4"
           sources."chalk-4.1.0"
-          sources."ora-5.2.0"
+          sources."ora-5.3.0"
         ];
       })
-      sources."@schematics/schematics-0.1100.3"
-      sources."@types/anymatch-1.3.1"
-      sources."@types/eslint-7.2.6"
+      sources."@schematics/schematics-0.1102.6"
+      sources."@types/eslint-7.2.8"
       sources."@types/eslint-scope-3.7.0"
-      sources."@types/estree-0.0.45"
+      sources."@types/estree-0.0.46"
       sources."@types/json-schema-7.0.7"
       sources."@types/json5-0.0.29"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/parse-json-4.0.0"
-      sources."@types/source-list-map-0.1.2"
-      sources."@types/tapable-1.0.6"
-      (sources."@types/uglify-js-3.12.0" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      (sources."@types/webpack-4.41.25" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      sources."@types/webpack-sources-2.1.0"
-      sources."@webassemblyjs/ast-1.9.0"
-      sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
-      sources."@webassemblyjs/helper-api-error-1.9.0"
-      sources."@webassemblyjs/helper-buffer-1.9.0"
-      sources."@webassemblyjs/helper-code-frame-1.9.0"
-      sources."@webassemblyjs/helper-fsm-1.9.0"
-      sources."@webassemblyjs/helper-module-context-1.9.0"
-      sources."@webassemblyjs/helper-wasm-bytecode-1.9.0"
-      sources."@webassemblyjs/helper-wasm-section-1.9.0"
-      sources."@webassemblyjs/ieee754-1.9.0"
-      sources."@webassemblyjs/leb128-1.9.0"
-      sources."@webassemblyjs/utf8-1.9.0"
-      sources."@webassemblyjs/wasm-edit-1.9.0"
-      sources."@webassemblyjs/wasm-gen-1.9.0"
-      sources."@webassemblyjs/wasm-opt-1.9.0"
-      sources."@webassemblyjs/wasm-parser-1.9.0"
-      sources."@webassemblyjs/wast-parser-1.9.0"
-      sources."@webassemblyjs/wast-printer-1.9.0"
+      sources."@webassemblyjs/ast-1.11.0"
+      sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
+      sources."@webassemblyjs/helper-api-error-1.11.0"
+      sources."@webassemblyjs/helper-buffer-1.11.0"
+      sources."@webassemblyjs/helper-numbers-1.11.0"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.11.0"
+      sources."@webassemblyjs/helper-wasm-section-1.11.0"
+      sources."@webassemblyjs/ieee754-1.11.0"
+      sources."@webassemblyjs/leb128-1.11.0"
+      sources."@webassemblyjs/utf8-1.11.0"
+      sources."@webassemblyjs/wasm-edit-1.11.0"
+      sources."@webassemblyjs/wasm-gen-1.11.0"
+      sources."@webassemblyjs/wasm-opt-1.11.0"
+      sources."@webassemblyjs/wasm-parser-1.11.0"
+      sources."@webassemblyjs/wast-printer-1.11.0"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.0.5"
+      sources."acorn-8.1.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
       sources."ansi-colors-4.1.1"
-      sources."ansi-escapes-4.3.1"
+      sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.1"
       sources."at-least-node-1.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."binary-extensions-2.2.0"
       sources."bl-4.1.0"
@@ -62413,33 +63976,36 @@ in
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.1"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001185"
+      sources."caniuse-lite-1.0.30001207"
       sources."chalk-3.0.0"
       sources."chardet-0.7.0"
-      sources."chokidar-3.4.3"
+      sources."chokidar-3.5.1"
       sources."chrome-trace-event-1.0.2"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.5.0"
+      sources."cli-spinners-2.6.0"
       sources."cli-table3-0.5.1"
       sources."cli-width-3.0.0"
       sources."clone-1.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."colorette-1.2.1"
+      sources."colorette-1.2.2"
       sources."colors-1.4.0"
       sources."commander-4.1.1"
       sources."concat-map-0.0.1"
-      sources."core-util-is-1.0.2"
       sources."cosmiconfig-6.0.0"
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.3.663"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
-      sources."enhanced-resolve-4.5.0"
-      sources."errno-0.1.8"
+      (sources."enhanced-resolve-5.7.0" // {
+        dependencies = [
+          sources."tapable-2.2.0"
+        ];
+      })
       sources."error-ex-1.3.2"
+      sources."es-module-lexer-0.4.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."eslint-scope-5.1.1"
@@ -62449,27 +64015,26 @@ in
         ];
       })
       sources."estraverse-4.3.0"
-      sources."events-3.2.0"
+      sources."events-3.3.0"
       sources."execa-4.1.0"
       sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
-      sources."find-up-4.1.0"
-      (sources."fork-ts-checker-webpack-plugin-6.0.5" // {
+      (sources."fork-ts-checker-webpack-plugin-6.2.0" // {
         dependencies = [
           sources."chalk-4.1.0"
         ];
       })
       sources."fs-extra-9.1.0"
-      sources."fs-monkey-1.0.1"
+      sources."fs-monkey-1.0.3"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.3"
+      sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
       sources."get-stream-5.2.0"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
@@ -62484,7 +64049,7 @@ in
         dependencies = [
           sources."chalk-4.1.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
         ];
       })
       sources."interpret-1.4.0"
@@ -62497,7 +64062,7 @@ in
       sources."is-interactive-1.0.0"
       sources."is-number-7.0.0"
       sources."is-stream-2.0.0"
-      sources."isarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
       sources."jest-worker-26.6.2"
       sources."js-tokens-4.0.0"
@@ -62505,13 +64070,13 @@ in
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-traverse-0.4.1"
       sources."json5-1.0.1"
+      sources."jsonc-parser-3.0.0"
       sources."jsonfile-6.1.0"
       sources."lines-and-columns-1.1.6"
       sources."loader-runner-4.2.0"
-      sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.toarray-4.4.0"
-      (sources."log-symbols-4.0.0" // {
+      (sources."log-symbols-4.1.0" // {
         dependencies = [
           sources."chalk-4.1.0"
         ];
@@ -62519,51 +64084,38 @@ in
       sources."lru-cache-6.0.0"
       sources."macos-release-2.4.1"
       sources."magic-string-0.25.7"
-      sources."memfs-3.2.0"
-      (sources."memory-fs-0.5.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."memfs-3.2.2"
       sources."merge-stream-2.0.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mute-stream-0.0.8"
       sources."neo-async-2.6.2"
       sources."node-emoji-1.10.0"
-      sources."node-releases-1.1.70"
+      sources."node-releases-1.1.71"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      (sources."ora-5.1.0" // {
+      (sources."ora-5.4.0" // {
         dependencies = [
           sources."chalk-4.1.0"
         ];
       })
       sources."os-name-4.0.0"
       sources."os-tmpdir-1.0.2"
-      sources."p-limit-2.3.0"
-      sources."p-locate-4.1.0"
-      sources."p-try-2.2.0"
+      sources."p-limit-3.1.0"
       sources."parent-module-1.0.1"
       sources."parse-json-5.2.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.6"
       sources."path-type-4.0.0"
       sources."picomatch-2.2.2"
-      sources."pkg-dir-4.2.0"
       sources."pluralize-8.0.0"
-      sources."process-nextick-args-2.0.1"
-      sources."prr-1.0.1"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."randombytes-2.1.0"
@@ -62579,7 +64131,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."schema-utils-2.7.0"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."serialize-javascript-5.0.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -62604,16 +64156,15 @@ in
       sources."strip-bom-3.0.0"
       sources."strip-final-newline-2.0.0"
       sources."supports-color-7.2.0"
-      sources."symbol-observable-2.0.3"
+      sources."symbol-observable-3.0.0"
       sources."tapable-1.1.3"
-      (sources."terser-5.5.1" // {
+      (sources."terser-5.6.1" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
       })
       (sources."terser-webpack-plugin-5.1.1" // {
         dependencies = [
-          sources."p-limit-3.1.0"
           sources."schema-utils-3.0.0"
           sources."source-map-0.6.1"
         ];
@@ -62623,27 +64174,21 @@ in
       sources."to-regex-range-5.0.1"
       sources."tree-kill-1.2.2"
       sources."tsconfig-paths-3.9.0"
-      (sources."tsconfig-paths-webpack-plugin-3.3.0" // {
+      (sources."tsconfig-paths-webpack-plugin-3.5.1" // {
         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."chalk-4.1.0"
         ];
       })
       sources."tslib-1.14.1"
-      sources."type-fest-0.11.0"
-      sources."typescript-4.0.5"
+      sources."type-fest-0.21.3"
+      sources."typescript-4.2.3"
       sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."watchpack-2.1.1"
       sources."wcwidth-1.0.1"
-      (sources."webpack-5.9.0" // {
+      (sources."webpack-5.28.0" // {
         dependencies = [
-          sources."enhanced-resolve-5.7.0"
           sources."schema-utils-3.0.0"
           sources."tapable-2.2.0"
         ];
@@ -62658,7 +64203,7 @@ in
       sources."windows-release-4.0.0"
       sources."wrappy-1.0.2"
       sources."yallist-4.0.0"
-      sources."yaml-1.10.0"
+      sources."yaml-1.10.2"
       sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -62674,152 +64219,64 @@ in
   "@vue/cli" = nodeEnv.buildNodePackage {
     name = "_at_vue_slash_cli";
     packageName = "@vue/cli";
-    version = "4.5.11";
+    version = "4.5.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@vue/cli/-/cli-4.5.11.tgz";
-      sha512 = "w6B1+Fb0AHwAd8eE1q4/KrJph/kXo/cqQ0Lf5MnXCYt7SXdDPBGTdyFAumMaSPQESXgmdWgEo8EhnVEBNpXDIw==";
+      url = "https://registry.npmjs.org/@vue/cli/-/cli-4.5.12.tgz";
+      sha512 = "ZP0bxmM+VpmH8xT/5DbH8UD5nnlXLxJNYLiMcndx0pmuujabUORZdhIO3B9pq1w1Y204p2CJq3srrEUwhKKY5g==";
     };
     dependencies = [
       sources."@akryum/winattr-3.0.0"
-      (sources."@apollo/federation-0.20.7" // {
-        dependencies = [
-          sources."apollo-server-env-2.4.5"
-        ];
-      })
       (sources."@apollo/protobufjs-1.0.5" // {
         dependencies = [
-          sources."@types/node-10.17.51"
+          sources."@types/node-10.17.56"
         ];
       })
-      sources."@apollographql/apollo-tools-0.4.8"
-      sources."@apollographql/graphql-language-service-interface-2.0.2"
-      sources."@apollographql/graphql-language-service-parser-2.0.2"
-      sources."@apollographql/graphql-language-service-types-2.0.2"
-      sources."@apollographql/graphql-language-service-utils-2.0.2"
-      sources."@apollographql/graphql-playground-html-1.6.26"
+      sources."@apollographql/apollo-tools-0.4.9"
+      sources."@apollographql/graphql-playground-html-1.6.27"
+      sources."@apollographql/graphql-upload-8-fork-8.1.3"
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.12.13"
-      (sources."@babel/core-7.12.16" // {
-        dependencies = [
-          sources."@babel/generator-7.12.15"
-          sources."@babel/types-7.12.13"
-          sources."semver-5.7.1"
-        ];
-      })
-      (sources."@babel/generator-7.12.11" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-annotate-as-pure-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-compilation-targets-7.12.16" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."@babel/helper-create-class-features-plugin-7.12.16"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.16"
-      (sources."@babel/helper-explode-assignable-expression-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-function-name-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-get-function-arity-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-hoist-variables-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-member-expression-to-functions-7.12.16" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-module-imports-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-module-transforms-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-optimise-call-expression-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      sources."@babel/helper-plugin-utils-7.12.13"
-      (sources."@babel/helper-remap-async-to-generator-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-replace-supers-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-simple-access-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helper-split-export-declaration-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
+      sources."@babel/compat-data-7.13.12"
+      sources."@babel/core-7.13.14"
+      sources."@babel/generator-7.13.9"
+      sources."@babel/helper-annotate-as-pure-7.12.13"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
+      sources."@babel/helper-compilation-targets-7.13.13"
+      sources."@babel/helper-create-class-features-plugin-7.13.11"
+      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
+      sources."@babel/helper-define-polyfill-provider-0.1.5"
+      sources."@babel/helper-explode-assignable-expression-7.13.0"
+      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-get-function-arity-7.12.13"
+      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
+      sources."@babel/helper-optimise-call-expression-7.12.13"
+      sources."@babel/helper-plugin-utils-7.13.0"
+      sources."@babel/helper-remap-async-to-generator-7.13.0"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
+      sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/helper-validator-option-7.12.16"
-      (sources."@babel/helper-wrap-function-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/helpers-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      sources."@babel/highlight-7.12.13"
-      sources."@babel/parser-7.12.16"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.13"
-      sources."@babel/plugin-proposal-class-properties-7.12.13"
-      sources."@babel/plugin-proposal-dynamic-import-7.12.16"
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helper-wrap-function-7.13.0"
+      sources."@babel/helpers-7.13.10"
+      sources."@babel/highlight-7.13.10"
+      sources."@babel/parser-7.13.13"
+      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
+      sources."@babel/plugin-proposal-class-properties-7.13.0"
+      sources."@babel/plugin-proposal-dynamic-import-7.13.8"
       sources."@babel/plugin-proposal-export-namespace-from-7.12.13"
-      sources."@babel/plugin-proposal-json-strings-7.12.13"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.12.13"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.12.13"
+      sources."@babel/plugin-proposal-json-strings-7.13.8"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.13.8"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.13.8"
       sources."@babel/plugin-proposal-numeric-separator-7.12.13"
-      sources."@babel/plugin-proposal-object-rest-spread-7.12.13"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.12.13"
-      sources."@babel/plugin-proposal-optional-chaining-7.12.16"
-      sources."@babel/plugin-proposal-private-methods-7.12.13"
+      sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.13.8"
+      sources."@babel/plugin-proposal-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-private-methods-7.13.0"
       sources."@babel/plugin-proposal-unicode-property-regex-7.12.13"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
@@ -62835,186 +64292,69 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-top-level-await-7.12.13"
       sources."@babel/plugin-syntax-typescript-7.12.13"
-      sources."@babel/plugin-transform-arrow-functions-7.12.13"
-      sources."@babel/plugin-transform-async-to-generator-7.12.13"
+      sources."@babel/plugin-transform-arrow-functions-7.13.0"
+      sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
       sources."@babel/plugin-transform-block-scoping-7.12.13"
-      sources."@babel/plugin-transform-classes-7.12.13"
-      sources."@babel/plugin-transform-computed-properties-7.12.13"
-      sources."@babel/plugin-transform-destructuring-7.12.13"
+      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-computed-properties-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.0"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
-      sources."@babel/plugin-transform-flow-strip-types-7.12.13"
-      sources."@babel/plugin-transform-for-of-7.12.13"
+      sources."@babel/plugin-transform-flow-strip-types-7.13.0"
+      sources."@babel/plugin-transform-for-of-7.13.0"
       sources."@babel/plugin-transform-function-name-7.12.13"
       sources."@babel/plugin-transform-literals-7.12.13"
       sources."@babel/plugin-transform-member-expression-literals-7.12.13"
-      sources."@babel/plugin-transform-modules-amd-7.12.13"
-      sources."@babel/plugin-transform-modules-commonjs-7.12.13"
-      sources."@babel/plugin-transform-modules-systemjs-7.12.13"
-      sources."@babel/plugin-transform-modules-umd-7.12.13"
+      sources."@babel/plugin-transform-modules-amd-7.13.0"
+      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-systemjs-7.13.8"
+      sources."@babel/plugin-transform-modules-umd-7.13.0"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.13"
       sources."@babel/plugin-transform-new-target-7.12.13"
       sources."@babel/plugin-transform-object-super-7.12.13"
-      sources."@babel/plugin-transform-parameters-7.12.13"
+      sources."@babel/plugin-transform-parameters-7.13.0"
       sources."@babel/plugin-transform-property-literals-7.12.13"
       sources."@babel/plugin-transform-regenerator-7.12.13"
       sources."@babel/plugin-transform-reserved-words-7.12.13"
       sources."@babel/plugin-transform-shorthand-properties-7.12.13"
-      sources."@babel/plugin-transform-spread-7.12.13"
+      sources."@babel/plugin-transform-spread-7.13.0"
       sources."@babel/plugin-transform-sticky-regex-7.12.13"
-      sources."@babel/plugin-transform-template-literals-7.12.13"
+      sources."@babel/plugin-transform-template-literals-7.13.0"
       sources."@babel/plugin-transform-typeof-symbol-7.12.13"
-      sources."@babel/plugin-transform-typescript-7.12.16"
+      sources."@babel/plugin-transform-typescript-7.13.0"
       sources."@babel/plugin-transform-unicode-escapes-7.12.13"
       sources."@babel/plugin-transform-unicode-regex-7.12.13"
-      (sources."@babel/preset-env-7.12.16" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."@babel/preset-flow-7.12.13"
+      sources."@babel/preset-env-7.13.12"
+      sources."@babel/preset-flow-7.13.13"
       sources."@babel/preset-modules-0.1.4"
-      sources."@babel/preset-typescript-7.12.16"
-      (sources."@babel/register-7.12.13" // {
+      sources."@babel/preset-typescript-7.13.0"
+      (sources."@babel/register-7.13.14" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/runtime-7.12.13"
-      (sources."@babel/template-7.12.13" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      (sources."@babel/traverse-7.12.13" // {
-        dependencies = [
-          sources."@babel/generator-7.12.15"
-          sources."@babel/types-7.12.13"
-        ];
-      })
-      sources."@babel/types-7.10.4"
-      sources."@endemolshinegroup/cosmiconfig-typescript-loader-1.0.2"
+      sources."@babel/runtime-7.13.10"
+      sources."@babel/template-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
       sources."@hapi/joi-15.1.1"
       sources."@hapi/topo-3.1.6"
+      sources."@josephg/resolvable-1.0.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.scandir-2.1.4"
-      sources."@nodelib/fs.stat-2.0.4"
-      sources."@nodelib/fs.walk-1.2.6"
-      (sources."@oclif/color-0.1.2" // {
-        dependencies = [
-          (sources."chalk-3.0.0" // {
-            dependencies = [
-              sources."ansi-styles-4.3.0"
-              sources."supports-color-7.2.0"
-            ];
-          })
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
-      (sources."@oclif/command-1.8.0" // {
-        dependencies = [
-          sources."@oclif/plugin-help-3.2.2"
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."lru-cache-6.0.0"
-          sources."semver-7.3.4"
-          sources."supports-color-7.2.0"
-        ];
-      })
-      (sources."@oclif/config-1.17.0" // {
-        dependencies = [
-          sources."globby-11.0.2"
-          sources."is-wsl-2.2.0"
-          sources."tslib-2.1.0"
-        ];
-      })
-      (sources."@oclif/errors-1.3.4" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."clean-stack-3.0.1"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."escape-string-regexp-4.0.0"
-          sources."fs-extra-8.1.0"
-          sources."wrap-ansi-7.0.0"
-        ];
-      })
-      sources."@oclif/linewrap-1.0.0"
-      sources."@oclif/parser-3.8.5"
-      (sources."@oclif/plugin-autocomplete-0.3.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."fs-extra-9.1.0"
-          sources."has-flag-4.0.0"
-          sources."jsonfile-6.1.0"
-          sources."supports-color-7.2.0"
-          sources."universalify-2.0.0"
-        ];
-      })
-      (sources."@oclif/plugin-help-2.2.3" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-          (sources."widest-line-2.0.1" // {
-            dependencies = [
-              sources."string-width-2.1.1"
-              sources."strip-ansi-4.0.0"
-            ];
-          })
-        ];
-      })
-      (sources."@oclif/plugin-not-found-1.2.4" // {
-        dependencies = [
-          sources."cli-ux-4.9.3"
-          sources."indent-string-3.2.0"
-          sources."semver-5.7.1"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
-      (sources."@oclif/plugin-plugins-1.9.5" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."fs-extra-9.1.0"
-          sources."has-flag-4.0.0"
-          sources."jsonfile-6.1.0"
-          sources."lru-cache-6.0.0"
-          sources."npm-run-path-4.0.1"
-          sources."path-key-3.1.1"
-          sources."semver-7.3.4"
-          sources."supports-color-7.2.0"
-          sources."tslib-2.1.0"
-          sources."universalify-2.0.0"
-        ];
-      })
-      (sources."@oclif/plugin-warn-if-update-available-1.7.0" // {
+      (sources."@nodelib/fs.scandir-2.1.4" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."@nodelib/fs.stat-2.0.4"
         ];
       })
-      sources."@oclif/screen-1.0.4"
+      sources."@nodelib/fs.stat-1.1.3"
+      sources."@nodelib/fs.walk-1.2.6"
       sources."@protobufjs/aspromise-1.1.2"
       sources."@protobufjs/base64-1.1.2"
       sources."@protobufjs/codegen-2.0.4"
@@ -63025,7 +64365,6 @@ in
       sources."@protobufjs/path-1.1.2"
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
-      sources."@samverschueren/stream-to-observable-0.3.1"
       sources."@sindresorhus/is-0.7.0"
       sources."@types/accepts-1.3.5"
       sources."@types/body-parser-1.19.0"
@@ -63034,15 +64373,10 @@ in
       sources."@types/cookies-0.7.6"
       sources."@types/cors-2.8.8"
       sources."@types/ejs-2.7.0"
-      sources."@types/express-4.17.7"
-      sources."@types/express-serve-static-core-4.17.18"
+      sources."@types/express-4.17.11"
+      sources."@types/express-serve-static-core-4.17.19"
       sources."@types/fs-capacitor-2.0.0"
       sources."@types/glob-7.1.3"
-      (sources."@types/graphql-upload-8.0.4" // {
-        dependencies = [
-          sources."graphql-15.5.0"
-        ];
-      })
       sources."@types/http-assert-1.5.1"
       sources."@types/http-errors-1.8.0"
       sources."@types/inquirer-6.5.0"
@@ -63054,134 +64388,67 @@ in
         ];
       })
       sources."@types/keygrip-1.0.2"
-      sources."@types/koa-2.11.7"
+      sources."@types/koa-2.13.1"
       sources."@types/koa-compose-3.2.5"
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.26"
+      sources."@types/minimatch-3.0.4"
+      sources."@types/node-14.14.37"
       (sources."@types/node-fetch-2.5.7" // {
         dependencies = [
-          sources."form-data-3.0.0"
+          sources."form-data-3.0.1"
         ];
       })
       sources."@types/normalize-package-data-2.4.0"
-      sources."@types/qs-6.9.5"
+      sources."@types/qs-6.9.6"
       sources."@types/range-parser-1.2.3"
       sources."@types/serve-static-1.13.9"
       sources."@types/through-0.0.30"
-      sources."@types/ws-7.4.0"
-      sources."@types/zen-observable-0.8.2"
-      sources."@vue/cli-shared-utils-4.5.11"
-      (sources."@vue/cli-ui-4.5.11" // {
+      sources."@types/ws-7.4.1"
+      sources."@vue/cli-shared-utils-4.5.12"
+      (sources."@vue/cli-ui-4.5.12" // {
         dependencies = [
           sources."clone-2.1.2"
         ];
       })
-      sources."@vue/cli-ui-addon-webpack-4.5.11"
-      sources."@vue/cli-ui-addon-widgets-4.5.11"
-      (sources."@vue/compiler-core-3.0.5" // {
-        dependencies = [
-          sources."@babel/types-7.12.13"
-          sources."source-map-0.6.1"
-        ];
-      })
-      sources."@vue/compiler-dom-3.0.5"
-      (sources."@vue/compiler-sfc-3.0.5" // {
+      sources."@vue/cli-ui-addon-webpack-4.5.12"
+      sources."@vue/cli-ui-addon-widgets-4.5.12"
+      (sources."@vue/compiler-core-3.0.11" // {
         dependencies = [
-          sources."@babel/types-7.12.13"
           sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/compiler-ssr-3.0.5"
-      sources."@vue/reactivity-3.0.5"
-      sources."@vue/runtime-core-3.0.5"
-      sources."@vue/runtime-dom-3.0.5"
-      sources."@vue/shared-3.0.5"
-      sources."@wry/context-0.4.4"
+      sources."@vue/compiler-dom-3.0.11"
+      sources."@vue/shared-3.0.11"
       sources."@wry/equality-0.1.11"
-      sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
-      (sources."ansi-align-2.0.0" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
-      sources."ansi-escapes-3.2.0"
-      sources."ansi-regex-4.1.0"
-      sources."ansi-styles-3.2.1"
-      sources."ansicolors-0.3.2"
-      sources."any-observable-0.3.0"
-      (sources."anymatch-2.0.0" // {
-        dependencies = [
-          (sources."braces-2.3.2" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."extend-shallow-3.0.2"
-          (sources."fill-range-4.0.0" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."is-extendable-1.0.1"
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."micromatch-3.1.10"
-          sources."normalize-path-2.1.1"
-          sources."to-regex-range-2.1.1"
-        ];
-      })
-      (sources."apollo-2.32.1" // {
+      (sources."ansi-align-3.0.0" // {
         dependencies = [
-          sources."graphql-tag-2.11.0"
-          sources."mkdirp-1.0.4"
+          sources."string-width-3.1.0"
           sources."strip-ansi-5.2.0"
         ];
       })
-      sources."apollo-cache-1.3.5"
-      sources."apollo-cache-control-0.11.6"
-      sources."apollo-cache-inmemory-1.6.6"
-      sources."apollo-client-2.6.10"
-      (sources."apollo-codegen-core-0.39.1" // {
+      (sources."ansi-escapes-4.3.2" // {
         dependencies = [
-          sources."recast-0.20.4"
-          sources."source-map-0.6.1"
-          sources."tslib-2.1.0"
+          sources."type-fest-0.21.3"
         ];
       })
-      sources."apollo-codegen-flow-0.37.1"
-      sources."apollo-codegen-scala-0.38.1"
-      sources."apollo-codegen-swift-0.39.1"
-      sources."apollo-codegen-typescript-0.39.1"
-      sources."apollo-datasource-0.7.3"
-      sources."apollo-env-0.6.5"
-      sources."apollo-graphql-0.6.0"
-      sources."apollo-language-server-1.25.0"
+      sources."ansi-regex-4.1.0"
+      sources."ansi-styles-3.2.1"
+      sources."apollo-cache-control-0.12.0"
+      sources."apollo-datasource-0.8.0"
+      sources."apollo-env-0.6.6"
+      sources."apollo-graphql-0.6.1"
       sources."apollo-link-1.2.14"
-      sources."apollo-link-context-1.0.20"
-      sources."apollo-link-error-1.1.13"
-      sources."apollo-link-http-1.5.17"
-      sources."apollo-link-http-common-0.2.16"
-      sources."apollo-link-persisted-queries-0.2.2"
-      sources."apollo-link-state-0.4.2"
-      sources."apollo-link-ws-1.0.20"
       sources."apollo-reporting-protobuf-0.6.2"
-      (sources."apollo-server-caching-0.5.3" // {
+      (sources."apollo-server-caching-0.6.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
         ];
       })
-      (sources."apollo-server-core-2.20.0" // {
+      (sources."apollo-server-core-2.22.2" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."uuid-8.3.2"
@@ -63189,54 +64456,43 @@ in
       })
       sources."apollo-server-env-3.0.0"
       sources."apollo-server-errors-2.4.2"
-      sources."apollo-server-express-2.20.0"
-      sources."apollo-server-plugin-base-0.10.4"
-      sources."apollo-server-types-0.6.3"
-      sources."apollo-tracing-0.12.2"
-      sources."apollo-upload-client-11.0.0"
+      sources."apollo-server-express-2.22.2"
+      sources."apollo-server-plugin-base-0.11.0"
+      sources."apollo-server-types-0.7.0"
+      sources."apollo-tracing-0.13.0"
       sources."apollo-utilities-1.3.4"
       (sources."archive-type-4.0.0" // {
         dependencies = [
           sources."file-type-4.4.0"
         ];
       })
-      sources."arg-4.1.3"
-      (sources."argparse-1.0.10" // {
-        dependencies = [
-          sources."sprintf-js-1.0.3"
-        ];
-      })
+      sources."argparse-1.0.10"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
       sources."array-flatten-1.1.1"
-      sources."array-union-2.1.0"
+      sources."array-union-1.0.2"
       sources."array-uniq-1.0.3"
       sources."array-unique-0.3.2"
       sources."arrify-2.0.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."assign-symbols-1.0.0"
-      (sources."ast-types-0.14.2" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
-      sources."astral-regex-1.0.0"
+      sources."ast-types-0.13.3"
       sources."async-2.6.3"
-      sources."async-each-1.0.3"
       sources."async-limiter-1.0.1"
       sources."async-retry-1.3.1"
       sources."asynckit-0.4.0"
-      sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
-      sources."await-to-js-2.1.1"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."babel-core-7.0.0-bridge.0"
       sources."babel-plugin-dynamic-import-node-2.3.3"
+      sources."babel-plugin-polyfill-corejs2-0.1.10"
+      sources."babel-plugin-polyfill-corejs3-0.1.7"
+      sources."babel-plugin-polyfill-regenerator-0.1.6"
       sources."backo2-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -63244,11 +64500,7 @@ in
       })
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."big.js-5.2.2"
-      sources."binary-extensions-1.13.1"
-      sources."bindings-1.5.0"
       sources."bl-1.2.3"
-      sources."bluebird-3.7.2"
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -63258,31 +64510,19 @@ in
           sources."setprototypeof-1.1.1"
         ];
       })
-      sources."boolean-3.0.2"
       (sources."boxen-4.2.0" // {
         dependencies = [
-          (sources."ansi-align-3.0.0" // {
-            dependencies = [
-              sources."string-width-3.1.0"
-            ];
-          })
           sources."ansi-styles-4.3.0"
-          sources."camelcase-5.3.1"
           sources."chalk-3.0.0"
-          sources."cli-boxes-2.2.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."emoji-regex-7.0.3"
           sources."has-flag-4.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."strip-ansi-5.2.0"
           sources."supports-color-7.2.0"
-          sources."term-size-2.2.1"
           sources."type-fest-0.8.1"
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-2.3.2"
       sources."browserslist-4.16.3"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
@@ -63292,63 +64532,22 @@ in
       sources."buffer-from-1.1.1"
       sources."builtins-1.0.3"
       sources."busboy-0.3.1"
-      sources."byline-5.0.0"
       sources."bytes-3.1.0"
       sources."cache-base-1.0.1"
       (sources."cacheable-request-2.1.4" // {
         dependencies = [
           sources."get-stream-3.0.0"
           sources."lowercase-keys-1.0.0"
-          sources."normalize-url-2.0.1"
-          sources."prepend-http-2.0.0"
-          sources."query-string-5.1.1"
-          sources."sort-keys-2.0.0"
-          sources."strict-uri-encode-1.1.0"
         ];
       })
       sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
-      sources."caller-callsite-2.0.0"
-      sources."caller-path-2.0.0"
-      sources."callsites-2.0.0"
-      (sources."camel-case-4.1.2" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
-      sources."camelcase-4.1.0"
-      sources."caniuse-lite-1.0.30001185"
-      (sources."capital-case-1.0.4" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
-      sources."capture-stack-trace-1.0.1"
-      sources."cardinal-2.1.1"
+      sources."camelcase-5.3.1"
+      sources."caniuse-lite-1.0.30001207"
       sources."caseless-0.12.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
-      (sources."change-case-4.1.2" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       sources."chardet-0.7.0"
-      (sources."chokidar-2.1.8" // {
-        dependencies = [
-          sources."braces-2.3.2"
-          sources."fill-range-4.0.0"
-          (sources."glob-parent-3.1.0" // {
-            dependencies = [
-              sources."is-glob-3.1.0"
-            ];
-          })
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."to-regex-range-2.1.1"
-        ];
-      })
-      sources."ci-info-1.6.0"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -63367,72 +64566,26 @@ in
         ];
       })
       sources."clean-stack-2.2.0"
-      sources."cli-boxes-1.0.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
-      sources."cli-progress-3.9.0"
-      sources."cli-spinners-2.5.0"
-      (sources."cli-truncate-0.2.1" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
-        ];
-      })
-      (sources."cli-ux-5.5.1" // {
-        dependencies = [
-          sources."ansi-escapes-4.3.1"
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
-          sources."clean-stack-3.0.1"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."escape-string-regexp-4.0.0"
-          sources."extract-stack-2.0.0"
-          sources."fs-extra-8.1.0"
-          sources."has-flag-4.0.0"
-          sources."is-wsl-2.2.0"
-          sources."lru-cache-6.0.0"
-          sources."semver-7.3.4"
-          sources."supports-color-7.2.0"
-          sources."supports-hyperlinks-2.1.0"
-          sources."tslib-2.1.0"
-          sources."type-fest-0.11.0"
-        ];
-      })
+      sources."cli-spinners-2.6.0"
       sources."cli-width-3.0.0"
-      sources."clipboard-2.0.6"
-      (sources."cliui-6.0.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."wrap-ansi-6.2.0"
-        ];
-      })
+      sources."clipboard-2.0.8"
+      sources."cliui-7.0.4"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."cmd-shim-3.0.3"
-      sources."code-point-at-1.1.0"
       sources."collection-visit-1.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."colorette-1.2.1"
+      sources."colorette-1.2.2"
       sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
       sources."commander-2.20.3"
-      sources."common-tags-1.8.0"
       sources."commondir-1.0.1"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."config-chain-1.1.12"
-      sources."configstore-3.1.5"
-      sources."consolidate-0.16.0"
-      (sources."constant-case-3.0.4" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       (sources."content-disposition-0.5.3" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -63447,38 +64600,27 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.8.3"
-      (sources."core-js-compat-3.8.3" // {
+      sources."core-js-3.10.0"
+      (sources."core-js-compat-3.10.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
       })
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
-      (sources."cosmiconfig-5.2.1" // {
-        dependencies = [
-          sources."parse-json-4.0.0"
-        ];
-      })
-      sources."create-error-class-3.0.2"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
-      sources."crypto-random-string-1.0.0"
-      sources."cssesc-3.0.0"
       sources."cssfilter-0.0.10"
-      sources."csstype-2.6.14"
       sources."csv-parser-1.12.1"
       sources."dashdash-1.14.1"
-      sources."date-fns-1.30.1"
       (sources."debug-4.3.2" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
       })
-      sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       (sources."decompress-4.2.1" // {
         dependencies = [
@@ -63508,7 +64650,6 @@ in
           sources."pify-2.3.0"
         ];
       })
-      sources."deep-extend-0.6.0"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
       sources."define-properties-1.1.3"
@@ -63518,24 +64659,11 @@ in
       sources."depd-1.1.2"
       sources."deprecated-decorator-0.1.6"
       sources."destroy-1.0.4"
-      sources."detect-node-2.0.4"
       sources."dicer-0.3.0"
-      sources."diff-4.0.2"
-      sources."dir-glob-3.0.1"
-      (sources."dot-case-3.0.4" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
-      sources."dot-prop-4.2.1"
-      sources."dotenv-8.2.0"
+      sources."dir-glob-2.2.2"
       (sources."download-7.1.0" // {
         dependencies = [
           sources."get-stream-3.0.0"
-          sources."got-8.3.2"
-          sources."into-stream-3.1.0"
-          sources."prepend-http-2.0.0"
-          sources."url-parse-lax-3.0.0"
         ];
       })
       sources."download-git-repo-3.0.2"
@@ -63544,23 +64672,18 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.663"
-      sources."elegant-spinner-1.0.1"
-      sources."emoji-regex-8.0.0"
-      sources."emojis-list-3.0.0"
+      sources."electron-to-chromium-1.3.708"
+      sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
-      sources."env-ci-3.2.2"
-      sources."envinfo-7.7.4"
+      sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       sources."es-to-primitive-1.2.1"
-      sources."es6-error-4.1.1"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
-      sources."esm-3.2.25"
       sources."esprima-4.0.1"
       sources."estree-walker-2.0.2"
       sources."esutils-2.0.3"
@@ -63607,22 +64730,17 @@ in
           sources."define-property-1.0.0"
         ];
       })
-      sources."extract-files-5.0.1"
-      sources."extract-stack-1.0.0"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-3.2.5"
+      sources."fast-glob-2.2.7"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."fd-slicer-1.1.0"
-      sources."figures-1.7.0"
+      sources."figures-3.2.0"
       sources."file-type-8.1.0"
-      sources."file-uri-to-path-1.0.0"
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-2.1.0"
-      sources."fill-range-7.0.1"
-      sources."filter-obj-1.1.0"
+      sources."fill-range-4.0.0"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -63637,7 +64755,7 @@ in
       })
       sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.144.0"
+      sources."flow-parser-0.148.0"
       sources."for-each-0.3.3"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
@@ -63651,13 +64769,10 @@ in
       sources."fs-exists-sync-0.1.0"
       sources."fs-extra-7.0.1"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-1.2.13"
       sources."fswin-2.17.1227"
       sources."function-bind-1.1.1"
-      sources."gaze-1.1.3"
       sources."generate-function-1.1.0"
       sources."generate-object-property-1.2.0"
-      sources."generic-names-2.0.1"
       sources."gensync-1.0.0-beta.2"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
@@ -63667,199 +64782,117 @@ in
       sources."getpass-0.1.7"
       sources."git-clone-0.1.0"
       sources."git-config-path-1.0.1"
-      (sources."git-parse-1.0.4" // {
-        dependencies = [
-          sources."es-abstract-1.17.7"
-          sources."util.promisify-1.0.1"
-        ];
-      })
-      (sources."git-rev-sync-2.1.0" // {
+      sources."glob-7.1.6"
+      (sources."glob-parent-3.1.0" // {
         dependencies = [
-          sources."graceful-fs-4.1.15"
+          sources."is-glob-3.1.0"
         ];
       })
-      sources."git-up-4.0.2"
-      sources."git-url-parse-11.4.3"
-      sources."glob-7.1.5"
-      sources."glob-parent-5.1.1"
       sources."glob-to-regexp-0.3.0"
-      (sources."global-agent-2.1.12" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."semver-7.3.4"
-        ];
-      })
       sources."global-dirs-0.1.1"
       sources."globals-11.12.0"
-      sources."globalthis-1.0.1"
       (sources."globby-9.2.0" // {
         dependencies = [
-          sources."@nodelib/fs.stat-1.1.3"
-          sources."array-union-1.0.2"
-          (sources."braces-2.3.2" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."dir-glob-2.2.2"
-          sources."extend-shallow-3.0.2"
-          sources."fast-glob-2.2.7"
-          (sources."fill-range-4.0.0" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."glob-parent-3.1.0"
-          sources."ignore-4.0.6"
-          sources."is-extendable-1.0.1"
-          sources."is-glob-3.1.0"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."micromatch-3.1.10"
-          (sources."path-type-3.0.0" // {
-            dependencies = [
-              sources."pify-3.0.0"
-            ];
-          })
           sources."pify-4.0.1"
           sources."slash-2.0.0"
-          sources."to-regex-range-2.1.1"
         ];
       })
-      sources."globule-1.3.2"
       sources."good-listener-1.2.2"
-      (sources."got-6.7.1" // {
+      (sources."got-8.3.2" // {
         dependencies = [
           sources."get-stream-3.0.0"
+          sources."into-stream-3.1.0"
         ];
       })
       sources."graceful-fs-4.2.6"
       sources."graphql-14.7.0"
-      (sources."graphql-anywhere-4.2.7" // {
+      sources."graphql-extensions-0.13.0"
+      sources."graphql-subscriptions-1.2.1"
+      (sources."graphql-tag-2.12.3" // {
         dependencies = [
-          sources."ts-invariant-0.3.3"
+          sources."tslib-2.2.0"
         ];
       })
-      sources."graphql-extensions-0.12.8"
-      sources."graphql-subscriptions-1.2.0"
-      sources."graphql-tag-2.12.0"
       sources."graphql-tools-4.0.8"
       sources."graphql-type-json-0.3.2"
-      sources."graphql-upload-8.1.0"
       sources."growly-1.3.0"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
-      (sources."has-ansi-2.0.0" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-        ];
-      })
+      sources."has-bigints-1.0.1"
       sources."has-flag-3.0.0"
       sources."has-symbol-support-x-1.4.2"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-to-string-tag-x-1.4.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
           sources."kind-of-4.0.0"
         ];
       })
-      sources."hash-sum-2.0.0"
-      sources."hash.js-1.1.7"
-      (sources."header-case-2.0.4" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       sources."homedir-polyfill-1.0.3"
       sources."hosted-git-info-2.8.8"
       sources."http-cache-semantics-3.8.1"
-      (sources."http-call-5.3.0" // {
-        dependencies = [
-          sources."is-stream-2.0.0"
-          sources."parse-json-4.0.0"
-        ];
-      })
       sources."http-errors-1.8.0"
       sources."http-signature-1.2.0"
       sources."human-signals-1.1.1"
-      sources."hyperlinker-1.0.0"
       sources."iconv-lite-0.4.24"
-      sources."icss-replace-symbols-1.1.0"
-      sources."icss-utils-4.1.1"
       sources."ieee754-1.2.1"
-      sources."ignore-5.1.8"
-      sources."ignore-by-default-1.0.1"
-      sources."import-fresh-2.0.0"
+      sources."ignore-4.0.6"
       sources."import-global-0.1.0"
-      sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
-      sources."indexes-of-1.0.1"
-      sources."inflected-2.1.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       (sources."inquirer-7.3.3" // {
         dependencies = [
-          sources."ansi-escapes-4.3.1"
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
           sources."cli-cursor-3.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."figures-3.2.0"
           sources."has-flag-4.0.0"
           sources."mimic-fn-2.1.0"
           sources."onetime-5.1.2"
           sources."restore-cursor-3.1.0"
           sources."supports-color-7.2.0"
-          sources."type-fest-0.11.0"
         ];
       })
-      sources."interpret-1.4.0"
       sources."into-stream-2.0.1"
       sources."ipaddr.js-1.9.1"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-binary-path-1.0.1"
+      sources."is-bigint-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
-      sources."is-ci-1.2.1"
       sources."is-core-module-2.2.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
-      sources."is-directory-0.3.1"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
-      sources."is-installed-globally-0.1.0"
       sources."is-natural-number-4.0.1"
       sources."is-negative-zero-2.0.1"
-      sources."is-npm-1.0.0"
-      sources."is-number-7.0.0"
-      sources."is-obj-1.0.1"
+      (sources."is-number-3.0.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."is-number-object-1.0.4"
       sources."is-object-1.0.2"
-      sources."is-observable-1.1.0"
-      sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
-      sources."is-redirect-1.0.0"
       sources."is-regex-1.1.2"
       sources."is-retry-allowed-1.2.0"
-      sources."is-ssh-1.3.2"
       sources."is-stream-1.1.0"
+      sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-windows-1.0.2"
@@ -63871,36 +64904,22 @@ in
       sources."isstream-0.1.2"
       sources."isurl-1.0.0"
       sources."iterall-1.3.0"
-      sources."java-properties-1.0.2"
       sources."javascript-stringify-1.6.0"
       sources."js-message-1.0.7"
       sources."js-queue-2.0.2"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
-      (sources."jscodeshift-0.10.0" // {
+      (sources."jscodeshift-0.11.0" // {
         dependencies = [
-          (sources."braces-2.3.2" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."extend-shallow-3.0.2"
-          (sources."fill-range-4.0.0" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."is-extendable-1.0.1"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."micromatch-3.1.10"
-          sources."to-regex-range-2.1.1"
+          sources."ast-types-0.14.2"
+          sources."recast-0.20.4"
+          sources."source-map-0.6.1"
+          sources."tslib-2.2.0"
         ];
       })
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.0"
-      sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
@@ -63910,106 +64929,45 @@ in
       sources."jsprim-1.4.1"
       sources."keyv-3.0.0"
       sources."kind-of-6.0.3"
-      sources."latest-version-3.1.0"
       sources."launch-editor-2.2.1"
       sources."leven-3.1.0"
       sources."lines-and-columns-1.1.6"
-      sources."listr-0.14.3"
-      sources."listr-silent-renderer-1.1.1"
-      (sources."listr-update-renderer-0.5.0" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."indent-string-3.2.0"
-          sources."log-symbols-1.0.2"
-          sources."strip-ansi-3.0.1"
-          sources."supports-color-2.0.0"
-        ];
-      })
-      (sources."listr-verbose-renderer-0.5.0" // {
-        dependencies = [
-          sources."figures-2.0.0"
-        ];
-      })
-      (sources."load-json-file-5.3.0" // {
-        dependencies = [
-          sources."parse-json-4.0.0"
-          sources."pify-4.0.1"
-          sources."type-fest-0.3.1"
-        ];
-      })
-      (sources."loader-utils-1.4.0" // {
-        dependencies = [
-          sources."json5-1.0.1"
-        ];
-      })
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.20"
-      sources."lodash._reinterpolate-3.0.0"
-      sources."lodash.camelcase-4.3.0"
+      sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
       sources."lodash.debounce-4.0.8"
-      sources."lodash.get-4.4.2"
-      sources."lodash.identity-3.0.0"
       sources."lodash.merge-4.6.2"
-      sources."lodash.pickby-4.6.0"
       sources."lodash.sortby-4.7.0"
-      sources."lodash.template-4.5.0"
-      sources."lodash.templatesettings-4.2.0"
-      sources."lodash.xorby-4.7.0"
       sources."log-symbols-2.2.0"
-      (sources."log-update-2.3.0" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-          sources."wrap-ansi-3.0.1"
-        ];
-      })
       sources."loglevel-1.7.1"
       sources."long-4.0.0"
       sources."lowdb-1.0.0"
-      (sources."lower-case-2.0.2" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       sources."lowercase-keys-1.0.1"
       (sources."lru-cache-5.1.1" // {
         dependencies = [
           sources."yallist-3.1.1"
         ];
       })
-      sources."magic-string-0.25.7"
       sources."make-dir-1.3.0"
-      sources."make-error-1.3.6"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
-      (sources."matcher-3.0.0" // {
-        dependencies = [
-          sources."escape-string-regexp-4.0.0"
-        ];
-      })
       sources."media-typer-0.3.0"
       sources."merge-1.2.1"
       sources."merge-descriptors-1.0.1"
-      (sources."merge-source-map-1.1.0" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."micromatch-4.0.2"
+      (sources."micromatch-3.1.10" // {
+        dependencies = [
+          sources."extend-shallow-3.0.2"
+          sources."is-extendable-1.0.1"
+        ];
+      })
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
-      sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       (sources."mixin-deep-1.3.2" // {
@@ -64018,10 +64976,8 @@ in
         ];
       })
       sources."mkdirp-0.5.5"
-      sources."moment-2.29.1"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.2"
       sources."nanoid-2.1.11"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
@@ -64029,7 +64985,6 @@ in
           sources."is-extendable-1.0.1"
         ];
       })
-      sources."natural-orderby-2.0.3"
       sources."ndjson-1.5.0"
       (sources."neat-csv-2.1.0" // {
         dependencies = [
@@ -64039,43 +64994,32 @@ in
       sources."negotiator-0.6.2"
       sources."neo-async-2.6.2"
       sources."nice-try-1.0.5"
-      (sources."no-case-3.0.4" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       sources."node-dir-0.1.17"
       sources."node-fetch-2.6.1"
-      sources."node-ipc-9.1.3"
+      sources."node-ipc-9.1.4"
       sources."node-modules-regexp-1.0.0"
-      (sources."node-notifier-9.0.0" // {
+      (sources."node-notifier-9.0.1" // {
         dependencies = [
           sources."is-wsl-2.2.0"
           sources."lru-cache-6.0.0"
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
           sources."uuid-8.3.2"
           sources."which-2.0.2"
         ];
       })
-      sources."node-releases-1.1.70"
-      (sources."nodemon-1.19.4" // {
+      sources."node-releases-1.1.71"
+      (sources."normalize-package-data-2.5.0" // {
         dependencies = [
-          sources."debug-3.2.7"
-          sources."ms-2.1.3"
           sources."semver-5.7.1"
         ];
       })
-      sources."nopt-1.0.10"
-      (sources."normalize-package-data-2.5.0" // {
+      (sources."normalize-url-2.0.1" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."sort-keys-2.0.0"
         ];
       })
-      sources."normalize-path-3.0.0"
-      sources."normalize-url-3.3.0"
       sources."npm-conf-1.1.3"
       sources."npm-run-path-2.0.2"
-      sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
@@ -64094,16 +65038,14 @@ in
       sources."object-inspect-1.9.0"
       sources."object-keys-1.1.1"
       sources."object-path-0.11.5"
-      sources."object-treeify-1.1.31"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
-      sources."object.getownpropertydescriptors-2.1.1"
+      sources."object.getownpropertydescriptors-2.1.2"
       sources."object.pick-1.3.0"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
       sources."open-6.4.0"
-      sources."optimism-0.10.3"
       (sources."ora-3.4.0" // {
         dependencies = [
           sources."strip-ansi-5.2.0"
@@ -64116,49 +65058,20 @@ in
       sources."p-is-promise-1.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
-      sources."p-map-2.1.0"
       sources."p-timeout-2.0.1"
       sources."p-try-2.2.0"
-      (sources."package-json-4.0.1" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      (sources."param-case-3.0.4" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       sources."parse-git-config-2.0.3"
       sources."parse-json-5.2.0"
       sources."parse-passwd-1.0.0"
-      (sources."parse-path-4.0.3" // {
-        dependencies = [
-          sources."qs-6.9.6"
-        ];
-      })
-      sources."parse-url-5.0.2"
       sources."parseurl-1.3.3"
-      (sources."pascal-case-3.1.2" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       sources."pascalcase-0.1.1"
-      sources."password-prompt-1.1.2"
-      (sources."path-case-3.0.4" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       sources."path-dirname-1.0.2"
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-is-inside-1.0.2"
       sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
       sources."path-to-regexp-0.1.7"
-      sources."path-type-4.0.0"
+      sources."path-type-3.0.0"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
       sources."picomatch-2.2.2"
@@ -64183,36 +65096,21 @@ in
         ];
       })
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.35" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-          sources."supports-color-6.1.0"
-        ];
-      })
-      sources."postcss-modules-3.2.2"
-      sources."postcss-modules-extract-imports-2.0.0"
-      sources."postcss-modules-local-by-default-3.0.3"
-      sources."postcss-modules-scope-2.2.0"
-      sources."postcss-modules-values-3.0.0"
-      sources."postcss-selector-parser-6.0.4"
-      sources."postcss-value-parser-4.1.0"
-      sources."prepend-http-1.0.4"
+      sources."prepend-http-2.0.0"
       sources."prismjs-1.23.0"
       sources."private-0.1.8"
       sources."process-exists-3.1.0"
       sources."process-nextick-args-2.0.1"
       sources."proto-list-1.2.4"
-      sources."protocols-1.4.8"
       sources."proxy-addr-2.0.6"
       sources."ps-list-4.1.0"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
-      sources."pstree.remy-1.1.8"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."query-string-6.14.0"
-      sources."queue-microtask-1.2.2"
+      sources."query-string-5.1.1"
+      sources."queue-microtask-1.2.3"
       sources."range-parser-1.2.1"
       (sources."raw-body-2.4.0" // {
         dependencies = [
@@ -64221,44 +65119,20 @@ in
           sources."setprototypeof-1.1.1"
         ];
       })
-      sources."rc-1.2.8"
       sources."read-pkg-5.2.0"
       (sources."readable-stream-2.3.7" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
         ];
       })
-      (sources."readdirp-2.2.1" // {
-        dependencies = [
-          (sources."braces-2.3.2" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."extend-shallow-3.0.2"
-          (sources."fill-range-4.0.0" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."is-extendable-1.0.1"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."micromatch-3.1.10"
-          sources."to-regex-range-2.1.1"
-        ];
-      })
       (sources."recast-0.18.10" // {
         dependencies = [
-          sources."ast-types-0.13.3"
           sources."source-map-0.6.1"
         ];
       })
-      sources."rechoir-0.6.2"
-      sources."redeyed-2.1.1"
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-runtime-0.13.8"
       sources."regenerator-transform-0.14.5"
       (sources."regex-not-1.0.2" // {
         dependencies = [
@@ -64267,22 +65141,17 @@ in
         ];
       })
       sources."regexpu-core-4.7.1"
-      sources."registry-auth-token-3.4.0"
-      sources."registry-url-3.1.0"
       sources."regjsgen-0.5.2"
-      (sources."regjsparser-0.6.7" // {
+      (sources."regjsparser-0.6.9" // {
         dependencies = [
           sources."jsesc-0.5.0"
         ];
       })
-      sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
-      sources."require-main-filename-2.0.0"
       sources."resolve-1.20.0"
-      sources."resolve-from-3.0.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
       sources."restore-cursor-2.0.0"
@@ -64290,11 +65159,10 @@ in
       sources."retry-0.12.0"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."roarr-2.15.4"
-      sources."rss-parser-3.11.0"
+      sources."rss-parser-3.12.0"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -64303,12 +65171,6 @@ in
       sources."seek-bzip-1.0.6"
       sources."select-1.1.2"
       sources."semver-6.3.0"
-      sources."semver-compare-1.0.0"
-      (sources."semver-diff-2.1.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
       (sources."send-0.17.1" // {
         dependencies = [
           (sources."debug-2.6.9" // {
@@ -64321,35 +65183,17 @@ in
           sources."setprototypeof-1.1.1"
         ];
       })
-      (sources."sentence-case-3.0.4" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
-      (sources."serialize-error-7.0.1" // {
-        dependencies = [
-          sources."type-fest-0.13.1"
-        ];
-      })
       sources."serve-static-1.14.1"
-      sources."set-blocking-2.0.0"
       sources."set-value-2.0.1"
       sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.2"
-      sources."shelljs-0.8.4"
       sources."shellwords-0.1.1"
       sources."shortid-2.2.16"
       sources."signal-exit-3.0.3"
       sources."slash-3.0.0"
-      sources."slice-ansi-0.0.4"
-      (sources."snake-case-3.0.4" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -64388,12 +65232,10 @@ in
         ];
       })
       sources."source-map-url-0.4.1"
-      sources."sourcemap-codec-1.4.8"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.7"
-      sources."split-on-first-1.1.0"
       (sources."split-string-3.1.0" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
@@ -64401,7 +65243,7 @@ in
         ];
       })
       sources."split2-2.2.0"
-      sources."sprintf-js-1.1.2"
+      sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       (sources."static-extend-0.1.2" // {
         dependencies = [
@@ -64423,11 +65265,15 @@ in
       sources."statuses-1.5.0"
       sources."steno-0.4.4"
       sources."streamsearch-0.1.2"
-      sources."strict-uri-encode-2.0.0"
-      sources."string-hash-1.1.3"
-      sources."string-width-4.2.0"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."strict-uri-encode-1.1.0"
+      (sources."string-width-4.2.2" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+        ];
+      })
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -64438,11 +65284,9 @@ in
           sources."ansi-regex-5.0.0"
         ];
       })
-      sources."strip-bom-3.0.0"
       sources."strip-dirs-2.1.0"
       sources."strip-eof-1.0.0"
       sources."strip-final-newline-2.0.0"
-      sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
       (sources."subscriptions-transport-ws-0.9.18" // {
         dependencies = [
@@ -64450,21 +65294,7 @@ in
         ];
       })
       sources."supports-color-5.5.0"
-      (sources."supports-hyperlinks-1.0.1" // {
-        dependencies = [
-          sources."has-flag-2.0.0"
-        ];
-      })
       sources."symbol-observable-1.2.0"
-      (sources."table-5.4.6" // {
-        dependencies = [
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."slice-ansi-2.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
       sources."tar-stream-1.6.2"
       (sources."taskkill-3.1.0" // {
         dependencies = [
@@ -64492,15 +65322,7 @@ in
           sources."rimraf-2.6.3"
         ];
       })
-      (sources."term-size-1.2.0" // {
-        dependencies = [
-          sources."cross-spawn-5.1.0"
-          sources."execa-0.7.0"
-          sources."get-stream-3.0.0"
-          sources."lru-cache-4.1.5"
-          sources."yallist-2.1.2"
-        ];
-      })
+      sources."term-size-2.2.1"
       sources."through-2.3.8"
       sources."through2-2.0.5"
       sources."timed-out-4.0.1"
@@ -64519,34 +65341,24 @@ in
           sources."is-extendable-1.0.1"
         ];
       })
-      sources."to-regex-range-5.0.1"
+      sources."to-regex-range-2.1.1"
       sources."toidentifier-1.0.0"
-      sources."touch-3.1.0"
       sources."tough-cookie-2.5.0"
-      sources."treeify-1.1.0"
       sources."trim-repeated-1.0.0"
       sources."ts-invariant-0.4.4"
-      sources."ts-node-8.10.2"
       sources."tslib-1.14.1"
-      sources."tty-1.0.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.6.0"
       sources."type-is-1.6.18"
-      sources."typescript-3.9.9"
+      sources."typescript-4.1.5"
+      sources."unbox-primitive-1.0.1"
       sources."unbzip2-stream-1.4.3"
-      (sources."undefsafe-2.0.3" // {
-        dependencies = [
-          sources."debug-2.6.9"
-        ];
-      })
       sources."unicode-canonical-property-names-ecmascript-1.0.4"
       sources."unicode-match-property-ecmascript-1.0.4"
       sources."unicode-match-property-value-ecmascript-1.2.0"
       sources."unicode-property-aliases-ecmascript-1.1.0"
       sources."union-value-1.0.1"
-      sources."uniq-1.0.1"
-      sources."unique-string-1.0.0"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
       (sources."unset-value-1.0.0" // {
@@ -64559,31 +65371,9 @@ in
           sources."has-values-0.1.4"
         ];
       })
-      sources."unzip-response-2.0.1"
-      sources."upath-1.2.0"
-      (sources."update-notifier-2.5.0" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."boxen-1.3.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-          sources."widest-line-2.0.1"
-        ];
-      })
-      (sources."upper-case-2.0.2" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
-      (sources."upper-case-first-2.0.2" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       sources."uri-js-4.4.1"
       sources."urix-0.1.0"
-      sources."url-parse-lax-1.0.0"
+      sources."url-parse-lax-3.0.0"
       sources."url-to-options-1.0.1"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
@@ -64594,79 +65384,55 @@ in
       sources."validate-npm-package-name-3.0.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."vscode-jsonrpc-4.0.0"
-      sources."vscode-languageserver-5.2.1"
-      sources."vscode-languageserver-protocol-3.14.1"
-      sources."vscode-languageserver-types-3.14.0"
-      sources."vscode-uri-1.0.6"
       sources."vue-2.6.12"
-      (sources."vue-cli-plugin-apollo-0.21.3" // {
+      (sources."vue-codemod-0.0.5" // {
         dependencies = [
-          sources."cross-spawn-7.0.3"
-          sources."execa-3.4.0"
-          sources."fs-extra-8.1.0"
-          sources."get-stream-5.2.0"
-          sources."is-stream-2.0.0"
-          sources."mimic-fn-2.1.0"
-          sources."npm-run-path-4.0.1"
-          sources."onetime-5.1.2"
-          sources."p-finally-2.0.1"
-          sources."path-key-3.1.1"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.0.0"
-          sources."which-2.0.2"
-        ];
-      })
-      (sources."vue-codemod-0.0.4" // {
-        dependencies = [
-          sources."globby-10.0.2"
-          sources."vue-3.0.5"
+          sources."@nodelib/fs.stat-2.0.4"
+          sources."array-union-2.1.0"
+          sources."braces-3.0.2"
+          sources."dir-glob-3.0.1"
+          sources."fast-glob-3.2.5"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.2"
+          sources."globby-11.0.3"
+          sources."ignore-5.1.8"
+          sources."is-number-7.0.0"
+          sources."lru-cache-6.0.0"
+          sources."micromatch-4.0.2"
+          sources."path-type-4.0.0"
+          sources."source-map-0.6.1"
+          sources."to-regex-range-5.0.1"
         ];
       })
       sources."watch-1.0.2"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
-      sources."which-module-2.0.0"
+      sources."which-boxed-primitive-1.0.2"
       sources."widest-line-3.1.0"
-      (sources."wrap-ansi-4.0.0" // {
+      (sources."wrap-ansi-7.0.0" // {
         dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
         ];
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
       sources."ws-6.2.1"
-      sources."xdg-basedir-3.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xss-1.0.8"
       sources."xtend-4.0.2"
-      sources."y18n-4.0.1"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       (sources."yaml-front-matter-3.4.1" // {
         dependencies = [
           sources."commander-1.0.0"
         ];
       })
-      (sources."yargs-15.4.1" // {
-        dependencies = [
-          sources."find-up-4.1.0"
-          sources."locate-path-5.0.0"
-          sources."p-locate-4.1.0"
-          sources."path-exists-4.0.0"
-        ];
-      })
-      (sources."yargs-parser-18.1.3" // {
-        dependencies = [
-          sources."camelcase-5.3.1"
-        ];
-      })
-      sources."yarn-1.22.10"
+      sources."yargs-16.2.0"
+      sources."yargs-parser-20.2.7"
       sources."yauzl-2.10.0"
-      sources."yn-3.1.1"
       sources."zen-observable-0.8.15"
       sources."zen-observable-ts-0.8.21"
     ];
@@ -64805,12 +65571,12 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/generator-7.12.15"
+      sources."@babel/generator-7.13.9"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.12.13"
-      sources."@babel/parser-7.12.16"
+      sources."@babel/highlight-7.13.10"
+      sources."@babel/parser-7.13.13"
       sources."@babel/template-7.12.13"
-      sources."@babel/types-7.12.13"
+      sources."@babel/types-7.13.14"
       sources."@webassemblyjs/ast-1.11.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
       sources."@webassemblyjs/helper-api-error-1.11.0"
@@ -64831,7 +65597,7 @@ in
       sources."has-flag-3.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."source-map-0.5.7"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
@@ -64879,55 +65645,63 @@ in
   alloy = nodeEnv.buildNodePackage {
     name = "alloy";
     packageName = "alloy";
-    version = "1.15.4";
+    version = "1.16.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/alloy/-/alloy-1.15.4.tgz";
-      sha512 = "bBFO/imgikyrGd6urHfiZDmceZzAMfWeAmt5Fd9du5B+rv6IIJsDZMrTcalKUhwL6NdM0mBwkFcLmQvjm8UMOw==";
+      url = "https://registry.npmjs.org/alloy/-/alloy-1.16.0.tgz";
+      sha512 = "TR3y3sHEmRSAt7ikc9rWtWrpJ/2MpvgM5knMhbDJWxvqcvyTPagASAA5gktPJRhxnS2+RScVFEd0I6G/XGTuoQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      (sources."@babel/core-7.12.16" // {
+      sources."@babel/compat-data-7.13.12"
+      (sources."@babel/core-7.13.14" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.12.15" // {
+      (sources."@babel/generator-7.13.9" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
+      sources."@babel/helper-compilation-targets-7.13.13"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-member-expression-to-functions-7.12.16"
-      sources."@babel/helper-module-imports-7.12.13"
-      sources."@babel/helper-module-transforms-7.12.13"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-replace-supers-7.12.13"
-      sources."@babel/helper-simple-access-7.12.13"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/helpers-7.12.13"
-      sources."@babel/highlight-7.12.13"
-      sources."@babel/parser-7.12.16"
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helpers-7.13.10"
+      sources."@babel/highlight-7.13.10"
+      sources."@babel/parser-7.13.13"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.12.13"
-      sources."@babel/types-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
       sources."array-unique-0.3.2"
       sources."async-3.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
+      sources."browserslist-4.16.3"
+      sources."caniuse-lite-1.0.30001207"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
+      sources."colorette-1.2.2"
       sources."colors-1.4.0"
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.7.0"
       sources."debug-4.3.2"
-      sources."ejs-3.1.5"
+      sources."ejs-3.1.6"
+      sources."electron-to-chromium-1.3.708"
       sources."ensure-posix-path-1.1.1"
+      sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."filelist-1.0.2"
       sources."fs-extra-5.0.0"
@@ -64965,12 +65739,13 @@ in
       sources."json5-2.2.0"
       sources."jsonfile-4.0.0"
       sources."jsonlint-1.6.3"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."matcher-collection-1.1.2"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."moment-2.29.1"
       sources."ms-2.1.2"
+      sources."node-releases-1.1.71"
       sources."node.extend-2.0.2"
       (sources."nomnom-1.8.1" // {
         dependencies = [
@@ -64984,7 +65759,7 @@ in
       sources."resolve-1.20.0"
       sources."safe-buffer-5.1.2"
       sources."sax-0.5.8"
-      sources."semver-5.7.1"
+      sources."semver-6.3.0"
       sources."source-map-0.6.1"
       sources."strip-ansi-0.1.1"
       sources."supports-color-5.5.0"
@@ -65017,9 +65792,9 @@ in
     };
     dependencies = [
       sources."@types/glob-7.1.3"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.26"
-      sources."balanced-match-1.0.0"
+      sources."@types/minimatch-3.0.4"
+      sources."@types/node-14.14.37"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
       sources."commander-5.1.0"
@@ -65043,6 +65818,698 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  balanceofsatoshis = nodeEnv.buildNodePackage {
+    name = "balanceofsatoshis";
+    packageName = "balanceofsatoshis";
+    version = "8.0.4";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-8.0.4.tgz";
+      sha512 = "dU1X9/T1kSVnxJW6EWu63pR5RP1NAn+YMw2G8aGN2xcPrlgFc/oKEyDexVXa8xXMqLXFFs7UI5lY3FJ+yKFbeA==";
+    };
+    dependencies = [
+      sources."@alexbosworth/html2unicode-1.1.5"
+      (sources."@alexbosworth/request-2.88.3" // {
+        dependencies = [
+          sources."safe-buffer-5.2.0"
+        ];
+      })
+      sources."@alexbosworth/saxophone-0.6.2"
+      sources."@cto.af/textdecoder-0.0.0"
+      (sources."@grpc/grpc-js-1.2.12" // {
+        dependencies = [
+          sources."@types/node-14.14.37"
+        ];
+      })
+      sources."@grpc/proto-loader-0.5.6"
+      sources."@handsontable/formulajs-2.0.2"
+      sources."@mitmaro/errors-1.0.0"
+      sources."@mitmaro/http-authorization-header-1.0.0"
+      sources."@protobufjs/aspromise-1.1.2"
+      sources."@protobufjs/base64-1.1.2"
+      sources."@protobufjs/codegen-2.0.4"
+      sources."@protobufjs/eventemitter-1.1.0"
+      sources."@protobufjs/fetch-1.1.0"
+      sources."@protobufjs/float-1.0.2"
+      sources."@protobufjs/inquire-1.1.0"
+      sources."@protobufjs/path-1.1.2"
+      sources."@protobufjs/pool-1.1.0"
+      sources."@protobufjs/utf8-1.1.0"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/body-parser-1.19.0"
+      sources."@types/caseless-0.12.2"
+      sources."@types/connect-3.4.34"
+      sources."@types/express-4.17.11"
+      sources."@types/express-serve-static-core-4.17.19"
+      sources."@types/long-4.0.1"
+      sources."@types/mime-1.3.2"
+      sources."@types/node-10.12.18"
+      sources."@types/qs-6.9.6"
+      sources."@types/range-parser-1.2.3"
+      (sources."@types/request-2.48.5" // {
+        dependencies = [
+          sources."form-data-2.5.1"
+        ];
+      })
+      sources."@types/serve-static-1.13.9"
+      sources."@types/tough-cookie-4.0.0"
+      sources."@types/ws-7.4.0"
+      sources."abort-controller-3.0.0"
+      sources."accepts-1.3.7"
+      (sources."agent-base-6.0.2" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."ajv-6.12.6"
+      sources."ansi-0.3.1"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."ansi-escapes-1.4.0"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-2.2.1"
+      (sources."are-we-there-yet-1.1.5" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."array-flatten-1.1.1"
+      sources."arrify-2.0.1"
+      sources."asciichart-1.5.25"
+      sources."asn1-0.2.4"
+      sources."assert-plus-1.0.0"
+      sources."astral-regex-2.0.0"
+      sources."async-3.2.0"
+      sources."asyncjs-util-1.2.5"
+      sources."asynckit-0.4.0"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.9.1"
+      sources."base-x-3.0.8"
+      sources."base64-js-1.5.1"
+      (sources."basic-auth-2.0.1" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."bech32-1.1.4"
+      sources."bessel-1.0.2"
+      sources."bignumber.js-9.0.1"
+      sources."bindings-1.5.0"
+      sources."bip174-2.0.1"
+      sources."bip32-2.0.6"
+      sources."bip65-1.0.3"
+      sources."bip66-1.1.5"
+      sources."bip68-1.0.4"
+      sources."bitcoin-ops-1.4.1"
+      sources."bitcoinjs-lib-5.2.0"
+      sources."bluebird-3.7.2"
+      sources."bn.js-4.12.0"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."qs-6.7.0"
+        ];
+      })
+      (sources."bolt01-1.2.1" // {
+        dependencies = [
+          sources."bn.js-5.2.0"
+        ];
+      })
+      sources."bolt03-1.2.9"
+      (sources."bolt07-1.7.2" // {
+        dependencies = [
+          sources."bn.js-5.2.0"
+        ];
+      })
+      sources."bolt09-0.1.3"
+      (sources."boxen-5.0.1" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+          sources."supports-color-7.2.0"
+          sources."type-fest-0.20.2"
+        ];
+      })
+      sources."brorand-1.1.0"
+      sources."bs58-4.0.1"
+      sources."bs58check-2.1.2"
+      sources."buffer-alloc-1.2.0"
+      sources."buffer-alloc-unsafe-1.1.0"
+      sources."buffer-equal-constant-time-1.0.1"
+      sources."buffer-fill-1.0.0"
+      sources."buffer-from-1.1.1"
+      sources."bytes-3.1.0"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+          sources."lowercase-keys-2.0.0"
+        ];
+      })
+      sources."call-bind-1.0.2"
+      sources."camelcase-6.2.0"
+      sources."caporal-1.4.0"
+      sources."caseless-0.12.0"
+      sources."cbor-7.0.5"
+      sources."cert-info-1.5.1"
+      (sources."chalk-1.1.3" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."chardet-0.7.0"
+      sources."ci-info-2.0.0"
+      sources."cipher-base-1.0.4"
+      sources."cli-boxes-2.2.1"
+      sources."cli-cursor-1.0.2"
+      sources."cli-table3-0.5.1"
+      sources."cli-width-2.2.1"
+      sources."clone-response-1.0.2"
+      sources."code-point-at-1.1.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."colorette-1.2.2"
+      sources."colors-1.4.0"
+      sources."combined-stream-1.0.8"
+      sources."commander-6.2.1"
+      (sources."concat-stream-1.6.2" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."configstore-5.0.1"
+      (sources."content-disposition-0.5.3" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."content-type-1.0.4"
+      sources."cookie-0.4.0"
+      sources."cookie-signature-1.0.6"
+      sources."core-util-is-1.0.2"
+      sources."cors-2.8.5"
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      sources."crypto-js-4.0.0"
+      sources."crypto-random-string-2.0.0"
+      sources."csv-parse-4.15.3"
+      sources."cycle-1.0.3"
+      sources."dashdash-1.14.1"
+      sources."debug-2.6.9"
+      sources."decompress-response-3.3.0"
+      sources."deep-extend-0.6.0"
+      sources."defer-to-connect-1.1.3"
+      sources."define-property-1.0.0"
+      sources."delayed-stream-1.0.0"
+      sources."delegates-1.0.0"
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."dot-prop-5.3.0"
+      sources."duplexer3-0.1.4"
+      sources."ecc-jsbn-0.1.2"
+      sources."ecdsa-sig-formatter-1.0.11"
+      sources."ee-first-1.1.1"
+      sources."elliptic-6.5.4"
+      sources."emoji-regex-8.0.0"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      sources."escape-goat-2.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."etag-1.8.1"
+      sources."event-target-shim-5.0.1"
+      sources."exit-hook-1.1.1"
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."qs-6.7.0"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."extend-3.0.2"
+      sources."external-editor-1.1.1"
+      sources."extsprintf-1.3.0"
+      sources."eyes-0.1.8"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."fast-text-encoding-1.0.3"
+      sources."figures-1.7.0"
+      sources."file-uri-to-path-1.0.0"
+      sources."finalhandler-1.1.2"
+      sources."forever-agent-0.6.1"
+      sources."form-data-3.0.0"
+      sources."forwarded-0.1.2"
+      sources."fresh-0.5.2"
+      sources."function-bind-1.1.1"
+      sources."gauge-1.2.7"
+      sources."gaxios-4.2.0"
+      sources."gcp-metadata-4.2.1"
+      sources."get-intrinsic-1.1.1"
+      sources."get-stream-4.1.0"
+      sources."getpass-0.1.7"
+      sources."global-dirs-3.0.0"
+      (sources."goldengate-10.0.3" // {
+        dependencies = [
+          sources."asyncjs-util-1.2.4"
+          sources."bech32-2.0.0"
+          sources."bn.js-5.2.0"
+          sources."bolt07-1.7.1"
+          sources."invoices-1.1.6"
+          sources."ln-service-51.5.0"
+        ];
+      })
+      sources."google-auth-library-6.1.6"
+      sources."google-p12-pem-3.0.3"
+      sources."got-9.6.0"
+      sources."graceful-fs-4.2.6"
+      sources."gtoken-5.2.1"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.3"
+      sources."has-1.0.3"
+      (sources."has-ansi-2.0.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+        ];
+      })
+      sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.2"
+      sources."has-unicode-2.0.1"
+      sources."has-yarn-2.1.0"
+      sources."hash-base-3.1.0"
+      sources."hash.js-1.1.7"
+      sources."hmac-drbg-1.0.1"
+      sources."hot-formula-parser-4.0.0"
+      sources."http-cache-semantics-4.1.0"
+      (sources."http-errors-1.7.2" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."http-signature-1.3.1"
+      (sources."https-proxy-agent-5.0.0" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."iconv-lite-0.4.24"
+      sources."import-lazy-4.0.0"
+      sources."imurmurhash-0.1.4"
+      sources."inherits-2.0.4"
+      sources."ini-2.0.0"
+      (sources."inquirer-8.0.0" // {
+        dependencies = [
+          sources."ansi-escapes-4.3.2"
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.0"
+          sources."cli-cursor-3.1.0"
+          sources."cli-width-3.0.0"
+          sources."external-editor-3.1.0"
+          sources."figures-3.2.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."mute-stream-0.0.8"
+          sources."onetime-5.1.2"
+          sources."restore-cursor-3.1.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+          sources."supports-color-7.2.0"
+          sources."tmp-0.0.33"
+        ];
+      })
+      (sources."invoices-1.1.7" // {
+        dependencies = [
+          sources."bech32-2.0.0"
+          sources."bn.js-5.2.0"
+          sources."bolt09-0.1.4"
+        ];
+      })
+      sources."ip-regex-2.1.0"
+      sources."ipaddr.js-1.9.1"
+      sources."is-accessor-descriptor-1.0.0"
+      sources."is-boolean-object-1.1.0"
+      sources."is-buffer-1.1.6"
+      sources."is-ci-2.0.0"
+      sources."is-data-descriptor-1.0.0"
+      sources."is-descriptor-1.0.2"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-installed-globally-0.4.0"
+      sources."is-npm-5.0.0"
+      (sources."is-number-3.0.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."is-number-object-1.0.4"
+      sources."is-obj-2.0.0"
+      sources."is-path-inside-3.0.3"
+      sources."is-stream-2.0.0"
+      sources."is-string-1.0.5"
+      sources."is-typedarray-1.0.0"
+      sources."is-yarn-global-0.3.0"
+      sources."isarray-1.0.0"
+      sources."isnumber-1.0.0"
+      sources."isstream-0.1.2"
+      sources."jsbn-0.1.1"
+      sources."json-bigint-1.0.0"
+      sources."json-buffer-3.0.0"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."json2csv-5.0.6"
+      sources."jsonparse-1.3.1"
+      sources."jsprim-1.4.1"
+      sources."jstat-1.9.4"
+      sources."jwa-2.0.0"
+      sources."jws-4.0.0"
+      sources."keyv-3.1.0"
+      sources."kind-of-6.0.3"
+      sources."latest-version-5.1.0"
+      (sources."lightning-3.3.1" // {
+        dependencies = [
+          sources."@grpc/grpc-js-1.2.11"
+          sources."@types/node-14.14.35"
+          sources."asyncjs-util-1.2.3"
+          sources."bech32-2.0.0"
+          sources."bn.js-5.2.0"
+          sources."bolt07-1.7.1"
+          sources."cbor-7.0.4"
+          sources."invoices-1.1.6"
+          sources."psbt-1.1.8"
+        ];
+      })
+      (sources."ln-accounting-4.2.7" // {
+        dependencies = [
+          sources."asyncjs-util-1.2.4"
+          sources."bech32-2.0.0"
+          sources."bn.js-5.2.0"
+          sources."bolt07-1.7.1"
+          sources."invoices-1.1.6"
+          sources."ln-service-51.5.0"
+        ];
+      })
+      (sources."ln-service-51.6.0" // {
+        dependencies = [
+          sources."@types/node-14.14.37"
+          sources."@types/ws-7.4.1"
+          sources."bn.js-5.2.0"
+          sources."bolt09-0.1.4"
+          sources."lightning-3.3.2"
+        ];
+      })
+      (sources."ln-sync-0.4.5" // {
+        dependencies = [
+          sources."asyncjs-util-1.2.4"
+        ];
+      })
+      (sources."ln-telegram-3.2.2" // {
+        dependencies = [
+          sources."asyncjs-util-1.2.4"
+          sources."bech32-2.0.0"
+          sources."bn.js-5.2.0"
+          sources."bolt07-1.7.1"
+          (sources."ln-service-51.5.0" // {
+            dependencies = [
+              sources."invoices-1.1.6"
+            ];
+          })
+        ];
+      })
+      sources."lodash-4.17.21"
+      sources."lodash.camelcase-4.3.0"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.difference-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.get-4.4.2"
+      sources."lodash.pad-4.5.1"
+      sources."lodash.padend-4.6.1"
+      sources."lodash.padstart-4.6.1"
+      sources."lodash.truncate-4.4.2"
+      sources."lodash.uniq-4.5.0"
+      sources."long-4.0.0"
+      sources."lowercase-keys-1.0.1"
+      sources."lru-cache-6.0.0"
+      (sources."macaroon-3.0.4" // {
+        dependencies = [
+          sources."tweetnacl-1.0.3"
+        ];
+      })
+      sources."make-dir-3.1.0"
+      sources."md5.js-1.3.5"
+      sources."media-typer-0.3.0"
+      sources."merge-descriptors-1.0.1"
+      sources."merkle-lib-2.0.10"
+      sources."methods-1.1.2"
+      sources."micromist-1.1.0"
+      sources."mime-1.6.0"
+      sources."mime-db-1.43.0"
+      sources."mime-types-2.1.26"
+      sources."mimic-fn-2.1.0"
+      sources."mimic-response-1.0.1"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."module-alias-2.2.2"
+      sources."moment-2.29.1"
+      (sources."morgan-1.10.0" // {
+        dependencies = [
+          sources."depd-2.0.0"
+        ];
+      })
+      sources."ms-2.0.0"
+      sources."mute-stream-0.0.6"
+      sources."nan-2.14.2"
+      sources."negotiator-0.6.2"
+      sources."node-addon-api-2.0.2"
+      sources."node-fetch-2.6.1"
+      sources."node-forge-0.10.0"
+      sources."node-gyp-build-4.2.3"
+      sources."nofilter-2.0.3"
+      sources."normalize-url-4.5.0"
+      sources."npmlog-2.0.4"
+      sources."number-is-nan-1.0.1"
+      sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."onetime-1.1.0"
+      sources."os-shim-0.1.3"
+      sources."os-tmpdir-1.0.2"
+      sources."p-cancelable-1.1.0"
+      sources."p-timeout-4.1.0"
+      sources."package-json-6.5.0"
+      sources."parseurl-1.3.3"
+      sources."path-to-regexp-0.1.7"
+      sources."performance-now-2.1.0"
+      sources."pinkie-2.0.4"
+      sources."pinkie-promise-2.0.1"
+      sources."prepend-http-2.0.0"
+      sources."prettyjson-1.2.1"
+      (sources."probing-1.3.5" // {
+        dependencies = [
+          sources."asyncjs-util-1.2.4"
+          sources."bech32-2.0.0"
+          sources."bn.js-5.2.0"
+          (sources."ln-service-51.5.0" // {
+            dependencies = [
+              sources."bolt07-1.7.1"
+              sources."invoices-1.1.6"
+            ];
+          })
+        ];
+      })
+      sources."process-nextick-args-2.0.1"
+      (sources."protobufjs-6.10.2" // {
+        dependencies = [
+          sources."@types/node-13.13.48"
+        ];
+      })
+      sources."proxy-addr-2.0.6"
+      (sources."psbt-1.1.9" // {
+        dependencies = [
+          sources."bn.js-5.2.0"
+        ];
+      })
+      sources."psl-1.8.0"
+      sources."pump-3.0.0"
+      sources."punycode-2.1.1"
+      sources."pupa-2.1.1"
+      sources."pushdata-bitcoin-1.0.1"
+      sources."qrcode-terminal-0.12.0"
+      sources."qs-6.9.1"
+      sources."randombytes-2.1.0"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      (sources."rc-1.2.8" // {
+        dependencies = [
+          sources."ini-1.3.8"
+        ];
+      })
+      sources."readable-stream-3.6.0"
+      sources."registry-auth-token-4.2.1"
+      sources."registry-url-5.1.0"
+      sources."require-from-string-2.0.2"
+      sources."responselike-1.0.2"
+      sources."restore-cursor-1.0.1"
+      sources."ripemd160-2.0.2"
+      sources."run-async-2.4.1"
+      sources."rx-4.1.0"
+      sources."rxjs-6.6.7"
+      sources."safe-buffer-5.2.1"
+      sources."safe-compare-1.1.4"
+      sources."safer-buffer-2.1.2"
+      sources."sandwich-stream-2.0.2"
+      sources."sanitize-filename-1.6.3"
+      sources."secp256k1-4.0.2"
+      sources."semver-6.3.0"
+      sources."semver-diff-3.1.1"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."setprototypeof-1.1.1"
+      sources."sha.js-2.4.11"
+      sources."signal-exit-3.0.3"
+      sources."sjcl-1.0.8"
+      (sources."slice-ansi-4.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."is-fullwidth-code-point-3.0.0"
+        ];
+      })
+      sources."spawn-sync-1.0.15"
+      sources."sshpk-1.16.1"
+      sources."stack-trace-0.0.10"
+      sources."stats-lite-2.2.0"
+      sources."statuses-1.5.0"
+      sources."string-width-2.1.1"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-4.0.0"
+      sources."strip-json-comments-2.0.1"
+      sources."supports-color-2.0.0"
+      (sources."table-6.0.9" // {
+        dependencies = [
+          sources."ajv-8.0.5"
+          sources."ansi-regex-5.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."json-schema-traverse-1.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      (sources."tabtab-2.2.2" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."inquirer-1.2.3"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      (sources."telegraf-4.3.0" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."through-2.3.8"
+      sources."tiny-emitter-2.1.0"
+      sources."tiny-secp256k1-1.1.6"
+      sources."tmp-0.0.29"
+      sources."to-readable-stream-1.0.0"
+      sources."toidentifier-1.0.0"
+      sources."tough-cookie-3.0.1"
+      sources."truncate-utf8-bytes-1.0.2"
+      sources."tslib-1.14.1"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."tweetnacl-util-0.15.1"
+      sources."type-fest-0.21.3"
+      sources."type-is-1.6.18"
+      sources."typedarray-0.0.6"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."typeforce-1.18.0"
+      sources."typegram-3.2.3"
+      sources."unique-string-2.0.0"
+      sources."unpipe-1.0.0"
+      (sources."update-notifier-5.1.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.0"
+          sources."import-lazy-2.1.0"
+          sources."semver-7.3.5"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."uri-js-4.4.1"
+      sources."url-parse-lax-3.0.0"
+      sources."utf8-byte-length-1.0.4"
+      sources."util-deprecate-1.0.2"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.4.0"
+      sources."varuint-bitcoin-1.1.2"
+      sources."vary-1.1.2"
+      sources."verror-1.10.0"
+      (sources."widest-line-3.1.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."wif-2.0.6"
+      sources."window-size-1.1.1"
+      (sources."winston-2.4.5" // {
+        dependencies = [
+          sources."async-1.0.0"
+          sources."colors-1.0.3"
+        ];
+      })
+      (sources."wrap-ansi-7.0.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.3.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."write-file-atomic-3.0.3"
+      sources."ws-7.4.4"
+      sources."xdg-basedir-4.0.0"
+      sources."yallist-4.0.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Lightning balance CLI";
+      homepage = "https://github.com/alexbosworth/balanceofsatoshis#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   bash-language-server = nodeEnv.buildNodePackage {
     name = "bash-language-server";
     packageName = "bash-language-server";
@@ -65068,7 +66535,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."browser-process-hrtime-1.0.0"
@@ -65120,10 +66587,10 @@ in
       sources."jsprim-1.4.1"
       sources."left-pad-1.3.0"
       sources."levn-0.3.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.sortby-4.7.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."nwsapi-2.2.0"
       sources."oauth-sign-0.9.0"
@@ -65154,7 +66621,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."uri-js-4.4.1"
-      sources."urijs-1.19.5"
+      sources."urijs-1.19.6"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."vscode-jsonrpc-6.0.0"
@@ -65212,7 +66679,7 @@ in
     dependencies = [
       sources."argparse-1.0.4"
       sources."array-find-index-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bower-1.8.12"
       sources."bower-endpoint-parser-0.2.1"
       sources."bower-json-0.6.0"
@@ -65270,7 +66737,7 @@ in
       sources."loud-rejection-1.6.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
-      sources."mime-db-1.45.0"
+      sources."mime-db-1.47.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -65350,7 +66817,7 @@ in
       sources."array-filter-1.0.0"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       (sources."assert-1.5.0" // {
@@ -65360,9 +66827,9 @@ in
         ];
       })
       sources."available-typed-arrays-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
-      sources."bn.js-5.1.3"
+      sources."bn.js-5.2.0"
       sources."brace-expansion-1.1.11"
       sources."brorand-1.1.0"
       sources."browser-pack-6.1.0"
@@ -65393,7 +66860,7 @@ in
       sources."core-util-is-1.0.2"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."create-hash-1.2.0"
@@ -65407,19 +66874,19 @@ in
       sources."detective-5.2.0"
       (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."domain-browser-1.2.0"
       sources."duplexer2-0.1.4"
       (sources."elliptic-6.5.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       sources."es-to-primitive-1.2.1"
-      sources."events-3.2.0"
+      sources."events-3.3.0"
       sources."evp_bytestokey-1.0.3"
       sources."fast-safe-stringify-2.0.7"
       sources."foreach-2.0.5"
@@ -65429,7 +66896,8 @@ in
       sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-bigints-1.0.1"
+      sources."has-symbols-1.0.2"
       (sources."hash-base-3.1.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
@@ -65445,15 +66913,19 @@ in
       sources."inline-source-map-0.6.2"
       sources."insert-module-globals-7.2.1"
       sources."is-arguments-1.1.0"
+      sources."is-bigint-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
       sources."is-core-module-2.2.0"
       sources."is-date-object-1.0.2"
       sources."is-generator-function-1.0.8"
       sources."is-negative-zero-2.0.1"
+      sources."is-number-object-1.0.4"
       sources."is-regex-1.1.2"
+      sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.4"
+      sources."is-typed-array-1.1.5"
       sources."isarray-1.0.0"
       sources."jsonparse-1.3.1"
       sources."labeled-stream-splicer-2.0.2"
@@ -65461,7 +66933,7 @@ in
       sources."md5.js-1.3.5"
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."minimalistic-assert-1.0.1"
@@ -65488,7 +66960,7 @@ in
       sources."process-nextick-args-2.0.1"
       (sources."public-encrypt-4.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."punycode-1.4.1"
@@ -65524,8 +66996,8 @@ in
         ];
       })
       sources."stream-splicer-2.0.1"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-1.3.0"
       sources."subarg-1.0.0"
       sources."syntax-error-1.4.0"
@@ -65535,6 +67007,7 @@ in
       sources."tty-browserify-0.0.1"
       sources."typedarray-0.0.6"
       sources."umd-3.0.3"
+      sources."unbox-primitive-1.0.1"
       sources."undeclared-identifiers-1.1.3"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -65544,6 +67017,7 @@ in
       sources."util-0.12.3"
       sources."util-deprecate-1.0.2"
       sources."vm-browserify-1.1.2"
+      sources."which-boxed-primitive-1.0.2"
       sources."which-typed-array-1.1.4"
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
@@ -65596,7 +67070,7 @@ in
       sources."babel-runtime-6.26.0"
       sources."babel-types-6.26.0"
       sources."babylon-6.18.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base-x-3.0.8"
       sources."base64-js-1.5.1"
       sources."basic-auth-2.0.1"
@@ -65615,7 +67089,7 @@ in
       sources."bitcoin-ops-1.4.1"
       sources."bitcoinjs-lib-5.2.0"
       sources."bluebird-3.7.2"
-      sources."bn.js-4.11.9"
+      sources."bn.js-4.12.0"
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -65738,7 +67212,7 @@ in
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       (sources."hash-base-3.1.0" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
@@ -65793,7 +67267,7 @@ in
       sources."linkify-it-2.2.0"
       sources."load-json-file-4.0.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."longest-1.0.1"
       sources."loud-rejection-1.6.0"
       sources."lru-cache-5.1.1"
@@ -65814,8 +67288,8 @@ in
       sources."merkle-lib-2.0.10"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -65863,7 +67337,7 @@ in
       sources."psl-1.8.0"
       sources."pug-2.0.4"
       sources."pug-attrs-2.0.4"
-      sources."pug-code-gen-2.0.2"
+      sources."pug-code-gen-2.0.3"
       sources."pug-error-1.3.3"
       sources."pug-filters-3.1.1"
       sources."pug-lexer-4.1.0"
@@ -65918,7 +67392,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."safe-json-stringify-1.2.0"
       sources."safer-buffer-2.1.2"
-      (sources."semver-7.3.4" // {
+      (sources."semver-7.3.5" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."yallist-4.0.0"
@@ -66039,7 +67513,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.41"
+      sources."@types/node-13.13.48"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.6"
@@ -66055,7 +67529,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bencode-2.0.1"
@@ -66072,7 +67546,7 @@ in
         ];
       })
       sources."blob-to-buffer-1.2.9"
-      sources."bn.js-4.11.9"
+      sources."bn.js-4.12.0"
       sources."bncode-0.5.3"
       sources."brace-expansion-1.1.11"
       sources."buffer-alloc-1.2.0"
@@ -66101,7 +67575,7 @@ in
       sources."co-3.1.0"
       sources."codepage-1.4.0"
       sources."combined-stream-1.0.8"
-      sources."commander-7.0.0"
+      sources."commander-7.2.0"
       sources."compact2string-1.4.1"
       sources."concat-map-0.0.1"
       (sources."concat-stream-2.0.0" // {
@@ -66220,8 +67694,8 @@ in
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -66281,7 +67755,7 @@ in
           sources."supports-color-0.2.0"
         ];
       })
-      sources."plist-3.0.1"
+      sources."plist-3.0.2"
       sources."process-nextick-args-2.0.1"
       sources."promiscuous-0.6.0"
       sources."protobufjs-6.10.2"
@@ -66295,8 +67769,8 @@ in
       sources."qap-3.3.1"
       sources."qs-6.5.2"
       sources."query-string-1.0.1"
-      sources."queue-microtask-1.2.2"
-      sources."random-access-file-2.1.5"
+      sources."queue-microtask-1.2.3"
+      sources."random-access-file-2.2.0"
       sources."random-access-storage-1.4.1"
       sources."random-iterate-1.0.1"
       sources."randombytes-2.1.0"
@@ -66428,7 +67902,7 @@ in
         ];
       })
       sources."xmlbuilder-9.0.7"
-      sources."xmldom-0.1.31"
+      sources."xmldom-0.5.0"
       sources."xspfr-0.3.1"
       sources."xtend-4.0.2"
     ];
@@ -66445,14 +67919,14 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "1.0.0-beta.8";
+    version = "1.0.0-beta.11";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.0-beta.8.tgz";
-      sha512 = "3gtzVdy2/KcfUsXmbEuehe8O1L1EtjzEvfzBYcQtZ1VYJK+X95H2UXlDwI6ug+K8A/Fmnrh2TjtIq1Vakv0fcQ==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.0-beta.11.tgz";
+      sha512 = "Oo/tO5aqmjsBORN93dSnidF7+2u77Q9zwUn9VbCQkZqCNfeZZcwIV9AG108hMYwtcXqtKQC7wevX6rmi9l8lng==";
     };
     dependencies = [
-      sources."@jsii/spec-1.20.1"
-      sources."@types/node-10.17.51"
+      sources."@jsii/spec-1.27.0"
+      sources."@types/node-10.17.56"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."array-filter-1.0.0"
@@ -66461,10 +67935,10 @@ in
       sources."call-bind-1.0.2"
       sources."camelcase-6.2.0"
       sources."case-1.6.3"
-      sources."cdk8s-1.0.0-beta.8"
+      sources."cdk8s-1.0.0-beta.11"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.20.1" // {
+      (sources."codemaker-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
@@ -66473,7 +67947,7 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.4.0"
       sources."commonmark-0.29.3"
-      sources."constructs-3.3.5"
+      sources."constructs-3.3.71"
       sources."date-format-3.0.0"
       sources."debug-4.3.2"
       sources."decamelize-5.0.0"
@@ -66484,7 +67958,7 @@ in
       sources."dot-case-3.0.4"
       sources."emoji-regex-8.0.0"
       sources."entities-2.0.3"
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
@@ -66503,7 +67977,8 @@ in
       sources."get-intrinsic-1.1.1"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-bigints-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."is-arguments-1.1.0"
       sources."is-bigint-1.0.1"
       sources."is-boolean-object-1.1.0"
@@ -66517,35 +67992,35 @@ in
       sources."is-set-2.0.2"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.4"
+      sources."is-typed-array-1.1.5"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."isarray-2.0.5"
-      (sources."jsii-1.20.1" // {
+      (sources."jsii-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.20.1" // {
+      (sources."jsii-pacmak-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.20.1" // {
+      (sources."jsii-reflect-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.20.1" // {
+      (sources."jsii-rosetta-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.222" // {
+      (sources."jsii-srcmak-0.1.255" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
@@ -66564,10 +68039,10 @@ in
       sources."ncp-2.0.0"
       sources."no-case-3.0.4"
       sources."object-inspect-1.9.0"
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."oo-ascii-tree-1.20.1"
+      sources."oo-ascii-tree-1.27.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -66575,8 +68050,8 @@ in
       sources."regexp.prototype.flags-1.3.1"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."rfdc-1.2.0"
-      sources."semver-7.3.4"
+      sources."rfdc-1.3.0"
+      sources."semver-7.3.5"
       (sources."semver-intersect-1.4.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -66593,13 +68068,14 @@ in
           sources."date-format-2.1.0"
         ];
       })
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."string.prototype.repeat-0.2.0"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."strip-ansi-6.0.0"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."typescript-3.9.9"
+      sources."unbox-primitive-1.0.1"
       sources."universalify-2.0.0"
       sources."which-boxed-primitive-1.0.2"
       sources."which-collection-1.0.1"
@@ -66607,10 +68083,10 @@ in
       sources."which-typed-array-1.1.4"
       sources."wrap-ansi-7.0.0"
       sources."xmlbuilder-15.1.1"
-      sources."xmldom-0.4.0"
-      sources."y18n-5.0.5"
+      sources."xmldom-0.5.0"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
-      sources."yaml-1.10.0"
+      sources."yaml-1.10.2"
       (sources."yargs-15.4.1" // {
         dependencies = [
           sources."camelcase-5.3.1"
@@ -66621,7 +68097,7 @@ in
           sources."yargs-parser-18.1.3"
         ];
       })
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -66636,42 +68112,41 @@ in
   cdktf-cli = nodeEnv.buildNodePackage {
     name = "cdktf-cli";
     packageName = "cdktf-cli";
-    version = "0.1.0";
+    version = "0.2.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.1.0.tgz";
-      sha512 = "tlkYo1SbitrwfqcTK0S5ZsGasRaJtN5tRP3VxgIszJZggav7mpRGABjTkqY23GzG8UXIaUTvH4uBGshx+iqcOA==";
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.2.1.tgz";
+      sha512 = "DcAkiIy8oA3GIUG8/zqO7oBYyER7WxC4ylVNkQFqq/k7m+x+YCk18JvHkZHX4uK2xxQyttQ0lxHMNyZyA5y1oA==";
     };
     dependencies = [
-      sources."@jsii/spec-1.20.1"
-      sources."@skorfmann/terraform-cloud-1.7.1"
-      sources."@types/archiver-5.1.0"
-      sources."@types/glob-7.1.3"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.26"
-      sources."@types/readline-sync-1.4.3"
-      sources."@types/stream-buffers-3.0.3"
-      sources."@types/uuid-8.3.0"
+      sources."@cdktf/hcl2json-0.2.1"
+      sources."@jsii/spec-1.27.0"
+      sources."@skorfmann/ink-confirm-input-3.0.0"
+      sources."@skorfmann/terraform-cloud-1.9.1"
+      sources."@types/node-14.14.37"
+      sources."@types/node-fetch-2.5.9"
       sources."@types/yoga-layout-1.9.2"
-      sources."ansi-escapes-4.3.1"
-      sources."ansi-regex-5.0.0"
+      (sources."ansi-escapes-4.3.2" // {
+        dependencies = [
+          sources."type-fest-0.21.3"
+        ];
+      })
+      sources."ansi-regex-4.1.0"
       sources."ansi-styles-4.3.0"
-      sources."archiver-5.2.0"
+      sources."archiver-5.3.0"
       (sources."archiver-utils-2.1.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
         ];
       })
       sources."array-filter-1.0.0"
-      sources."array-includes-3.1.2"
-      sources."array.prototype.flatmap-1.2.4"
-      sources."arrify-2.0.1"
       sources."astral-regex-2.0.0"
       sources."async-3.2.0"
+      sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."auto-bind-4.0.0"
       sources."available-typed-arrays-1.0.2"
       sources."axios-0.21.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
@@ -66681,11 +68156,12 @@ in
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
       sources."case-1.6.3"
-      sources."cdktf-0.1.0"
+      sources."cdktf-0.2.1"
       sources."chalk-4.1.0"
       sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-1.3.1"
+      sources."cli-spinners-2.6.0"
       sources."cli-truncate-2.1.0"
       (sources."cliui-7.0.4" // {
         dependencies = [
@@ -66693,14 +68169,17 @@ in
         ];
       })
       sources."clone-2.1.2"
+      sources."code-excerpt-3.0.0"
       sources."codemaker-0.22.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."colors-1.4.0"
+      sources."combined-stream-1.0.8"
       sources."commonmark-0.29.3"
-      sources."compress-commons-4.0.2"
+      sources."compress-commons-4.1.0"
       sources."concat-map-0.0.1"
-      sources."constructs-3.3.18"
+      sources."constructs-3.3.71"
+      sources."convert-to-spaces-1.0.2"
       sources."core-util-is-1.0.2"
       sources."crc-32-1.2.0"
       sources."crc32-stream-4.0.2"
@@ -66713,13 +68192,14 @@ in
         ];
       })
       sources."define-properties-1.1.3"
+      sources."delay-5.0.0"
+      sources."delayed-stream-1.0.0"
       sources."detect-indent-5.0.0"
       sources."detect-newline-2.1.0"
-      sources."doctrine-2.1.0"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-2.0.3"
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       (sources."es-get-iterator-1.1.2" // {
         dependencies = [
           sources."isarray-2.0.5"
@@ -66727,14 +68207,13 @@ in
       })
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
-      sources."escape-string-regexp-4.0.0"
-      sources."eslint-plugin-react-7.22.0"
-      sources."esutils-2.0.3"
+      sources."escape-string-regexp-2.0.0"
       sources."exit-on-epipe-1.0.1"
       sources."find-up-4.1.0"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."foreach-2.0.5"
+      sources."form-data-3.0.1"
       sources."fs-constants-1.0.0"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
@@ -66744,32 +68223,27 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
+      sources."has-bigints-1.0.1"
       sources."has-flag-4.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."ieee754-1.2.1"
+      sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."ink-2.7.1" // {
-        dependencies = [
-          sources."chalk-3.0.0"
-        ];
-      })
-      sources."ink-confirm-input-2.0.0"
-      sources."ink-spinner-3.1.0"
-      (sources."ink-text-input-3.3.0" // {
+      (sources."ink-3.0.8" // {
         dependencies = [
-          sources."chalk-3.0.0"
+          sources."type-fest-0.12.0"
         ];
       })
-      sources."internal-slot-1.0.3"
+      sources."ink-spinner-4.0.1"
+      sources."ink-text-input-4.0.1"
       sources."is-arguments-1.1.0"
       sources."is-bigint-1.0.1"
       sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.1"
@@ -66778,13 +68252,13 @@ in
       sources."is-set-2.0.2"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.4"
+      sources."is-typed-array-1.1.5"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."js-tokens-4.0.0"
-      (sources."jsii-1.20.1" // {
+      (sources."jsii-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -66792,18 +68266,19 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.20.1" // {
+      (sources."jsii-pacmak-1.27.0" // {
         dependencies = [
           sources."camelcase-6.2.0"
-          sources."codemaker-1.20.1"
+          sources."codemaker-1.27.0"
           sources."decamelize-5.0.0"
+          sources."escape-string-regexp-4.0.0"
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
           sources."universalify-2.0.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.20.1" // {
+      (sources."jsii-reflect-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -66811,7 +68286,7 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.20.1" // {
+      (sources."jsii-rosetta-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -66819,7 +68294,7 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.222" // {
+      (sources."jsii-srcmak-0.1.255" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -66828,71 +68303,53 @@ in
       })
       sources."jsonfile-4.0.0"
       sources."jsonschema-1.4.0"
-      sources."jsx-ast-utils-3.2.0"
       (sources."lazystream-1.0.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
         ];
       })
       sources."locate-path-5.0.0"
+      sources."lodash-4.17.21"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
       sources."lodash.isplainobject-4.0.6"
-      sources."lodash.throttle-4.1.1"
       sources."lodash.union-4.6.0"
-      (sources."log-update-3.4.0" // {
-        dependencies = [
-          sources."ansi-escapes-3.2.0"
-          sources."ansi-regex-4.1.0"
-          sources."ansi-styles-3.2.1"
-          sources."cli-cursor-2.1.0"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."mimic-fn-1.2.0"
-          sources."onetime-2.0.1"
-          sources."restore-cursor-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-          sources."wrap-ansi-5.1.0"
-        ];
-      })
       sources."log4js-6.3.0"
       sources."loose-envify-1.4.0"
       sources."lru-cache-6.0.0"
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       sources."mdurl-1.0.1"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."ms-2.1.2"
       sources."ncp-2.0.0"
+      sources."node-fetch-2.6.1"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."object-inspect-1.9.0"
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."object.entries-1.1.3"
-      sources."object.fromentries-2.0.3"
-      sources."object.values-1.1.2"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.20.1"
-      sources."open-7.4.0"
+      sources."oo-ascii-tree-1.27.0"
+      sources."open-7.4.2"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
+      sources."patch-console-1.0.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
       sources."printj-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."prop-types-15.7.2"
       sources."quick-lru-4.0.1"
       sources."react-16.14.0"
+      sources."react-devtools-core-4.10.1"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.24.0"
       sources."readable-stream-3.6.0"
@@ -66901,24 +68358,25 @@ in
       sources."regexp.prototype.flags-1.3.1"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."resolve-1.20.0"
       sources."restore-cursor-3.1.0"
-      sources."rfdc-1.2.0"
+      sources."rfdc-1.3.0"
       sources."safe-buffer-5.1.2"
       sources."scheduler-0.18.0"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."semver-intersect-1.4.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
       sources."set-blocking-2.0.0"
+      sources."shell-quote-1.7.2"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
       sources."slice-ansi-3.0.0"
       sources."sort-json-2.0.0"
       sources."spdx-license-list-6.4.0"
       sources."sscaff-1.2.0"
+      sources."stack-utils-2.0.3"
       sources."stream-buffers-3.0.2"
       (sources."streamroller-2.2.4" // {
         dependencies = [
@@ -66927,22 +68385,25 @@ in
       })
       (sources."string-length-3.1.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
           sources."astral-regex-1.0.0"
           sources."strip-ansi-5.2.0"
         ];
       })
-      sources."string-width-4.2.0"
-      sources."string.prototype.matchall-4.0.3"
+      sources."string-width-4.2.2"
       sources."string.prototype.repeat-0.2.0"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-1.1.1"
-      sources."strip-ansi-6.0.0"
+      (sources."strip-ansi-6.0.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+        ];
+      })
       sources."supports-color-7.2.0"
       sources."tar-stream-2.2.0"
-      sources."type-fest-0.11.0"
+      sources."type-fest-0.15.1"
       sources."typescript-3.9.9"
+      sources."unbox-primitive-1.0.1"
       sources."universalify-0.1.2"
       sources."util-deprecate-1.0.2"
       sources."uuid-8.3.2"
@@ -66953,9 +68414,10 @@ in
       sources."widest-line-3.1.0"
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
+      sources."ws-7.4.4"
       sources."xmlbuilder-15.1.1"
-      sources."xmldom-0.4.0"
-      sources."y18n-5.0.5"
+      sources."xmldom-0.5.0"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       (sources."yargs-15.4.1" // {
         dependencies = [
@@ -66964,10 +68426,10 @@ in
           sources."yargs-parser-18.1.3"
         ];
       })
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
       sources."yn-3.1.1"
       sources."yoga-layout-prebuilt-1.10.0"
-      sources."zip-stream-4.0.4"
+      sources."zip-stream-4.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -66982,16 +68444,16 @@ in
   clean-css-cli = nodeEnv.buildNodePackage {
     name = "clean-css-cli";
     packageName = "clean-css-cli";
-    version = "5.0.1";
+    version = "5.2.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-5.0.1.tgz";
-      sha512 = "6Y+G8FmQu76rSWQjSBY5rVcdgatknjvzfEUU5xtx1uaYovClg7jap7ol3Xf3NP7vMd1fs38TtfhsyIS8Dq0Jvw==";
+      url = "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-5.2.2.tgz";
+      sha512 = "XlgBVTpEAsU/aT7gxAZ/g5Q8P9glHZeg6yfNvE7hYuvoozMdw5Wd46b12QtzuDVs8/7UZ/GCulS0VR9TI5NWRg==";
     };
     dependencies = [
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."clean-css-5.0.1"
-      sources."commander-7.0.0"
+      sources."clean-css-5.1.2"
+      sources."commander-7.2.0"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
       sources."glob-7.1.6"
@@ -67024,7 +68486,7 @@ in
     dependencies = [
       sources."ansi-styles-3.2.1"
       sources."async-0.9.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chalk-2.4.2"
       sources."cli-spinner-0.2.10"
@@ -67065,7 +68527,7 @@ in
       sources."path-is-absolute-1.0.1"
       sources."prompt-1.1.0"
       sources."punycode-2.1.1"
-      sources."query-string-6.14.0"
+      sources."query-string-6.14.1"
       sources."read-1.0.7"
       sources."revalidator-0.1.8"
       sources."rimraf-2.7.1"
@@ -67078,7 +68540,7 @@ in
       sources."universal-url-2.0.0"
       sources."utile-0.3.0"
       sources."webidl-conversions-4.0.2"
-      sources."whatwg-fetch-3.5.0"
+      sources."whatwg-fetch-3.6.2"
       sources."whatwg-url-7.1.0"
       (sources."winston-2.4.5" // {
         dependencies = [
@@ -67098,6 +68560,42 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  coc-clangd = nodeEnv.buildNodePackage {
+    name = "coc-clangd";
+    packageName = "coc-clangd";
+    version = "0.9.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-clangd/-/coc-clangd-0.9.0.tgz";
+      sha512 = "QmYLkObs561ld4vqvivzgVpGGpjsx+d0+x2slqKPvB80juKfaZbfcBxttkcAa6giB6qKFU4njhyz4pP54JebZg==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "clangd extension for coc.nvim";
+      homepage = "https://github.com/clangd/coc-clangd#readme";
+      license = "Apache-2.0 WITH LLVM-exception";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  coc-cmake = nodeEnv.buildNodePackage {
+    name = "coc-cmake";
+    packageName = "coc-cmake";
+    version = "0.1.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-cmake/-/coc-cmake-0.1.1.tgz";
+      sha512 = "1cWC11FqQG6qUNi08xIBgojxR/Q4P2dCbcvVAQup4moCXYpTwF1YdtRmdLNBY6mpSw/5U7A1Sh/8FffrxIgj7A==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "coc.nvim extension for cmake language";
+      homepage = "https://github.com/voldikss/coc-cmake#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   coc-css = nodeEnv.buildNodePackage {
     name = "coc-css";
     packageName = "coc-css";
@@ -67118,10 +68616,10 @@ in
   coc-diagnostic = nodeEnv.buildNodePackage {
     name = "coc-diagnostic";
     packageName = "coc-diagnostic";
-    version = "0.18.0";
+    version = "0.18.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.18.0.tgz";
-      sha512 = "6ghwTYVdJ/XMcoLb690DPcxVM3t2bCDKTFPqMfkamBhKRJNFJDSjxQiP3Njn5f7g4rYvIuBQdZ8wteB4dr/4HA==";
+      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.18.2.tgz";
+      sha512 = "uiWZlGLle3EXfC+1AmYmPrQfYeL2gY1BKpROBr5BWgT2+1W21gAlY1mziopAk0AmCNA8M4wgvfgc+CC3KVYkjQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -67177,10 +68675,10 @@ in
   coc-git = nodeEnv.buildNodePackage {
     name = "coc-git";
     packageName = "coc-git";
-    version = "2.2.1";
+    version = "2.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-git/-/coc-git-2.2.1.tgz";
-      sha512 = "UlT5D++GU9vWlK/bANGHDxtThdPOWWiVRg9Fsist2ytrg6pjNPSDT/f6US1J7aBCRCB9p2463e/G7JSUT4WTow==";
+      url = "https://registry.npmjs.org/coc-git/-/coc-git-2.3.1.tgz";
+      sha512 = "119J+uanlMO9xZA4yeyvjwbWKDckLUKUtJu6mreHuyQbd7x4Ea3qwjpWMlGl2+QLJQ78OPZjpbzzlc8FzDZY2A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -67203,7 +68701,7 @@ in
     dependencies = [
       sources."isexe-2.0.0"
       sources."node-fetch-2.6.1"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-uri-3.0.2"
       sources."which-2.0.2"
@@ -67243,7 +68741,7 @@ in
       sha512 = "7SHQYzpRKPrpaLcTm1UUk1zu9VvFEJKFqxwDIuqv/CL0cBTtEvlsfpVh9DOaMHlZPu8U8Lgyf04bHV/sFS1zJw==";
     };
     dependencies = [
-      sources."typescript-4.1.5"
+      sources."typescript-4.2.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -67293,10 +68791,10 @@ in
   coc-jest = nodeEnv.buildNodePackage {
     name = "coc-jest";
     packageName = "coc-jest";
-    version = "1.1.3";
+    version = "1.1.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-jest/-/coc-jest-1.1.3.tgz";
-      sha512 = "iE9zECMZPRdN/HUu1FqjNQ2bkBYePtFpwXOfLQSkb7C+8g3PB3ne3GpS7eLaqVnjgRz9mXzQ6xMBvFIp++7PFA==";
+      url = "https://registry.npmjs.org/coc-jest/-/coc-jest-1.1.4.tgz";
+      sha512 = "kGyCzSYNygSEe8Ha4hUupyacjxHBDmgOhy7Xgf4dSWpCpJmXTj3F69XbKwjkUVGNaAafFuyAAVd4P7CE5t4f7g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -67346,10 +68844,10 @@ in
   coc-markdownlint = nodeEnv.buildNodePackage {
     name = "coc-markdownlint";
     packageName = "coc-markdownlint";
-    version = "1.10.1";
+    version = "1.11.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-markdownlint/-/coc-markdownlint-1.10.1.tgz";
-      sha512 = "nYuGmxppC3+16kN7128HxrzDWAPGrC5KdP4XQQHoKeOAApLTphF9rH/gfWjUale+Roq8YDe0rEJBLc3DUdIebg==";
+      url = "https://registry.npmjs.org/coc-markdownlint/-/coc-markdownlint-1.11.1.tgz";
+      sha512 = "9tUMyH60l/jD8ebENGZfqlfkLrdZvavEc9UhX9E1c7+rwH5oaiCODYYh8Ffz1FyV+ZYQS2StQO1zmgDrqZhV7g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -67364,10 +68862,10 @@ in
   coc-metals = nodeEnv.buildNodePackage {
     name = "coc-metals";
     packageName = "coc-metals";
-    version = "1.0.1";
+    version = "1.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-1.0.1.tgz";
-      sha512 = "1chc5qluoxF39fNKSoLNrPWrWsBQc+zHkXmleOka2HLYDQHmqgYqWZiPgJ03IqOoR3uJcS8sgdrCLyVdqWBwrg==";
+      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-1.0.2.tgz";
+      sha512 = "oONqWYHICin0t9chOrx6dkL2pEBeaFwrfwaBPX9we0bNrhQ3XQNLNC/O+/x4ZSHzHQ0hucmmGOuCoQ9Q7wbdGg==";
     };
     dependencies = [
       sources."@chemzqm/neovim-5.2.13"
@@ -67376,7 +68874,7 @@ in
       sources."arch-2.2.0"
       sources."async-2.6.3"
       sources."await-semaphore-0.1.3"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."big-integer-1.6.48"
       sources."binary-0.3.0"
       sources."bluebird-3.4.7"
@@ -67400,20 +68898,20 @@ in
         ];
       })
       sources."date-format-3.0.0"
-      sources."debounce-1.2.0"
+      sources."debounce-1.2.1"
       sources."debug-4.3.2"
       sources."deep-extend-0.6.0"
       sources."define-properties-1.1.3"
       sources."duplexer2-0.1.4"
       sources."end-of-stream-1.4.4"
-      sources."es-abstract-1.17.7"
+      sources."es-abstract-1.18.0"
       sources."es-to-primitive-1.2.1"
       sources."event-lite-0.1.2"
       sources."execa-1.0.0"
       sources."fast-diff-1.2.0"
       sources."fb-watchman-2.0.1"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."fp-ts-2.9.5"
       sources."fs-extra-8.1.0"
       sources."fs-minipass-2.1.0"
@@ -67430,7 +68928,8 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-bigints-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."http-proxy-agent-4.0.1"
       sources."https-proxy-agent-5.0.0"
       sources."ieee754-1.2.1"
@@ -67438,11 +68937,16 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."int64-buffer-0.1.10"
+      sources."is-bigint-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
+      sources."is-negative-zero-2.0.1"
+      sources."is-number-object-1.0.4"
       sources."is-regex-1.1.2"
       sources."is-stream-1.1.0"
+      sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
@@ -67456,7 +68960,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."log4js-6.3.0"
       sources."lru-cache-6.0.0"
       sources."metals-languageclient-0.4.0"
@@ -67493,10 +68997,10 @@ in
       sources."rc-1.2.8"
       sources."readable-stream-2.3.7"
       sources."rfc-3986-1.0.1"
-      sources."rfdc-1.2.0"
+      sources."rfdc-1.3.0"
       sources."rimraf-3.0.2"
       sources."safe-buffer-5.1.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."setimmediate-1.0.5"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
@@ -67507,14 +69011,15 @@ in
           sources."date-format-2.1.0"
         ];
       })
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-1.1.1"
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
       sources."tar-6.1.0"
       sources."traverse-0.3.9"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
+      sources."unbox-primitive-1.0.1"
       sources."universalify-0.1.2"
       sources."unzipper-0.10.11"
       sources."util-deprecate-1.0.2"
@@ -67529,6 +69034,7 @@ in
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-2.1.2"
       sources."which-2.0.2"
+      sources."which-boxed-primitive-1.0.2"
       sources."wrappy-1.0.2"
       sources."yallist-4.0.0"
     ];
@@ -67544,10 +69050,10 @@ in
   coc-pairs = nodeEnv.buildNodePackage {
     name = "coc-pairs";
     packageName = "coc-pairs";
-    version = "1.2.22";
+    version = "1.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-pairs/-/coc-pairs-1.2.22.tgz";
-      sha512 = "AskNxINhyImxvFhlt0tvFJUS/Z4sUehgKPdy1jxVa+vu4CU903cNR6Dot4phrRRfgSCH3NT8SrYBhg4YvsxlkA==";
+      url = "https://registry.npmjs.org/coc-pairs/-/coc-pairs-1.3.0.tgz";
+      sha512 = "elI1hdsA5VNBKoEAo6gkNpYu3Ze5rxZIhhIfE+mPnFoT/KsaWlcidyv2HBHBOawiudMsuWhNYbWfn6hoR2abUg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -67562,15 +69068,24 @@ in
   coc-prettier = nodeEnv.buildNodePackage {
     name = "coc-prettier";
     packageName = "coc-prettier";
-    version = "1.1.20";
+    version = "1.1.23";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-prettier/-/coc-prettier-1.1.20.tgz";
-      sha512 = "3p4AwJnsjtLJM53wLsMtcVUzWPMnnYI6pkwQraHH6Tp7/ZuXwIVhjUvDgMcAvhmIkVePyvJF5xZHN4ghLLP02A==";
+      url = "https://registry.npmjs.org/coc-prettier/-/coc-prettier-1.1.23.tgz";
+      sha512 = "9tjbN4O13DXlrNaZWtXozthLSW0LE+YjmBZf4LDdrpbfmzqLDvncDtOtqcRCd9LStoLPY7pv2o4Tucb2IrHjMw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.12.13"
+      (sources."@babel/highlight-7.13.10" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      (sources."@eslint/eslintrc-0.4.0" // {
+        dependencies = [
+          sources."globals-12.4.0"
+        ];
+      })
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@types/eslint-visitor-keys-1.0.0"
@@ -67592,11 +69107,7 @@ in
           sources."strip-ansi-4.0.0"
         ];
       })
-      (sources."ansi-escapes-4.3.1" // {
-        dependencies = [
-          sources."type-fest-0.11.0"
-        ];
-      })
+      sources."ansi-colors-4.1.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -67609,11 +69120,11 @@ in
       sources."array-unique-0.2.1"
       sources."arrify-1.0.1"
       sources."assign-symbols-1.0.0"
-      sources."astral-regex-1.0.0"
+      sources."astral-regex-2.0.0"
       sources."atob-2.1.2"
       sources."autoprefixer-7.2.6"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -67624,6 +69135,7 @@ in
         dependencies = [
           sources."ansi-regex-3.0.0"
           sources."camelcase-4.1.0"
+          sources."chalk-2.4.2"
           sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
@@ -67638,19 +69150,27 @@ in
           sources."isobject-3.0.1"
         ];
       })
+      sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001185"
+      sources."caniuse-lite-1.0.30001207"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.1.0"
-      sources."chalk-2.4.2"
+      (sources."chalk-4.1.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
       sources."character-entities-1.2.4"
       sources."character-entities-html4-1.1.4"
       sources."character-entities-legacy-1.1.4"
       sources."character-reference-invalid-1.1.4"
-      sources."chardet-0.7.0"
       sources."ci-info-1.6.0"
       sources."circular-json-0.3.3"
       (sources."class-utils-0.3.6" // {
@@ -67672,8 +69192,6 @@ in
         ];
       })
       sources."cli-boxes-1.0.0"
-      sources."cli-cursor-3.1.0"
-      sources."cli-width-3.0.0"
       (sources."cliui-4.1.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -67699,14 +69217,10 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.8.3"
+      sources."core-js-3.10.0"
       sources."cosmiconfig-3.1.0"
       sources."create-error-class-3.0.2"
-      (sources."cross-spawn-6.0.5" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."cross-spawn-7.0.3"
       sources."crypto-random-string-1.0.0"
       sources."currently-unhandled-0.4.1"
       sources."debug-4.3.2"
@@ -67730,7 +69244,7 @@ in
       sources."doctrine-3.0.0"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.1.0"
+          sources."domelementtype-2.2.0"
           sources."entities-2.2.0"
         ];
       })
@@ -67739,22 +69253,22 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.663"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
+      sources."enquirer-2.3.6"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-6.8.0" // {
+      (sources."eslint-7.23.0" // {
         dependencies = [
-          sources."eslint-utils-1.4.3"
-          sources."semver-6.3.0"
+          sources."eslint-visitor-keys-2.0.0"
         ];
       })
       sources."eslint-scope-5.1.1"
       sources."eslint-utils-2.1.0"
       sources."eslint-visitor-keys-1.3.0"
-      sources."espree-6.2.1"
+      sources."espree-7.3.1"
       sources."esprima-4.0.1"
       (sources."esquery-1.4.0" // {
         dependencies = [
@@ -67772,6 +69286,9 @@ in
         dependencies = [
           sources."cross-spawn-5.1.0"
           sources."lru-cache-4.1.5"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
           sources."yallist-2.1.2"
         ];
       })
@@ -67784,7 +69301,6 @@ in
           sources."is-extendable-1.0.1"
         ];
       })
-      sources."external-editor-3.1.0"
       (sources."extglob-0.3.2" // {
         dependencies = [
           sources."is-extglob-1.0.0"
@@ -67851,13 +69367,12 @@ in
       })
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."figures-3.2.0"
-      sources."file-entry-cache-5.0.1"
+      sources."file-entry-cache-6.0.1"
       sources."filename-regex-2.0.1"
       sources."fill-range-2.2.4"
       sources."find-up-2.1.0"
-      sources."flat-cache-2.0.1"
-      sources."flatted-2.0.2"
+      sources."flat-cache-3.0.4"
+      sources."flatted-3.1.1"
       sources."for-in-1.0.2"
       sources."for-own-0.1.5"
       sources."fragment-cache-0.2.1"
@@ -67865,6 +69380,7 @@ in
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."get-caller-file-1.0.3"
+      sources."get-intrinsic-1.1.1"
       sources."get-stdin-5.0.1"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
@@ -67876,10 +69392,14 @@ in
           sources."is-glob-2.0.1"
         ];
       })
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.3.0"
       sources."global-dirs-0.1.1"
-      sources."globals-12.4.0"
+      (sources."globals-13.7.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
       (sources."globby-6.1.0" // {
         dependencies = [
           sources."pify-2.3.0"
@@ -67896,6 +69416,7 @@ in
         ];
       })
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       (sources."has-value-1.0.0" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -67914,7 +69435,6 @@ in
       sources."hosted-git-info-2.8.8"
       sources."html-tags-2.0.0"
       sources."htmlparser2-3.10.1"
-      sources."iconv-lite-0.4.24"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."import-lazy-2.1.0"
@@ -67925,17 +69445,6 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      (sources."inquirer-7.3.3" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."strip-ansi-6.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
       sources."invert-kv-2.0.0"
       (sources."is-accessor-descriptor-1.0.0" // {
         dependencies = [
@@ -67946,6 +69455,7 @@ in
       sources."is-alphanumeric-1.0.0"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-ci-1.2.1"
       sources."is-core-module-2.2.0"
@@ -67972,6 +69482,7 @@ in
       sources."is-installed-globally-0.1.0"
       sources."is-npm-1.0.0"
       sources."is-number-2.1.0"
+      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
@@ -67986,6 +69497,7 @@ in
       sources."is-regexp-1.0.0"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
+      sources."is-string-1.0.5"
       sources."is-supported-regexp-flag-1.0.1"
       sources."is-utf8-0.2.1"
       sources."is-whitespace-character-1.0.4"
@@ -68004,7 +69516,7 @@ in
       sources."known-css-properties-0.5.0"
       sources."latest-version-3.1.0"
       sources."lcid-2.0.0"
-      sources."levn-0.3.0"
+      sources."levn-0.4.1"
       (sources."load-json-file-1.1.0" // {
         dependencies = [
           sources."parse-json-2.2.0"
@@ -68012,9 +69524,16 @@ in
         ];
       })
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
       sources."lodash.merge-4.6.2"
-      sources."log-symbols-2.2.0"
+      sources."lodash.truncate-4.4.2"
+      (sources."log-symbols-2.2.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
       sources."loglevel-1.7.1"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
         dependencies = [
@@ -68059,7 +69578,6 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."mute-stream-0.0.8"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -68077,7 +69595,11 @@ in
       sources."normalize-path-2.1.1"
       sources."normalize-range-0.1.2"
       sources."normalize-selector-0.2.0"
-      sources."npm-run-path-2.0.2"
+      (sources."npm-run-path-2.0.2" // {
+        dependencies = [
+          sources."path-key-2.0.1"
+        ];
+      })
       sources."num2fraction-1.2.2"
       sources."number-is-nan-1.0.1"
       sources."object-assign-4.1.1"
@@ -68105,15 +69627,19 @@ in
         ];
       })
       sources."once-1.4.0"
-      sources."onetime-5.1.2"
-      sources."optionator-0.8.3"
+      sources."optionator-0.9.1"
       (sources."os-locale-3.1.0" // {
         dependencies = [
+          sources."cross-spawn-6.0.5"
           sources."execa-1.0.0"
           sources."get-stream-4.1.0"
+          sources."path-key-2.0.1"
+          sources."semver-5.7.1"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
         ];
       })
-      sources."os-tmpdir-1.0.2"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
@@ -68139,7 +69665,7 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
-      sources."path-key-2.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
       (sources."path-type-1.1.0" // {
         dependencies = [
@@ -68151,7 +69677,11 @@ in
       sources."pinkie-promise-2.0.1"
       sources."pkg-dir-2.0.0"
       sources."posix-character-classes-0.1.1"
-      sources."postcss-6.0.23"
+      (sources."postcss-6.0.23" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
       sources."postcss-html-0.12.0"
       (sources."postcss-less-1.1.5" // {
         dependencies = [
@@ -68170,18 +69700,22 @@ in
         ];
       })
       sources."postcss-media-query-parser-0.2.3"
-      sources."postcss-reporter-5.0.0"
+      (sources."postcss-reporter-5.0.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
       sources."postcss-resolve-nested-selector-0.1.1"
       sources."postcss-safe-parser-3.0.1"
       sources."postcss-sass-0.2.0"
       sources."postcss-scss-1.0.6"
       sources."postcss-selector-parser-3.1.2"
       sources."postcss-value-parser-3.3.1"
-      sources."prelude-ls-1.1.2"
+      sources."prelude-ls-1.2.1"
       sources."prepend-http-1.0.4"
       sources."preserve-0.2.0"
       sources."prettier-2.2.1"
-      sources."prettier-eslint-11.0.0"
+      sources."prettier-eslint-12.0.0"
       (sources."prettier-stylelint-0.4.2" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -68191,6 +69725,7 @@ in
       })
       (sources."prettier-tslint-0.4.2" // {
         dependencies = [
+          sources."chalk-2.4.2"
           sources."dir-glob-2.0.0"
           sources."globby-8.0.2"
           sources."ignore-3.3.10"
@@ -68233,7 +69768,7 @@ in
       })
       sources."regex-cache-0.4.4"
       sources."regex-not-1.0.2"
-      sources."regexpp-2.0.1"
+      sources."regexpp-3.1.0"
       sources."registry-auth-token-3.4.0"
       sources."registry-url-3.1.0"
       sources."remark-8.0.0"
@@ -68256,15 +69791,11 @@ in
       })
       sources."resolve-from-4.0.0"
       sources."resolve-url-0.2.1"
-      sources."restore-cursor-3.1.0"
       sources."ret-0.1.15"
-      sources."rimraf-2.6.3"
-      sources."run-async-2.4.1"
-      sources."rxjs-6.6.3"
+      sources."rimraf-3.0.2"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
-      sources."safer-buffer-2.1.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."semver-diff-2.1.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -68276,13 +69807,15 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
       sources."slash-1.0.0"
-      (sources."slice-ansi-2.1.0" // {
+      (sources."slice-ansi-4.0.0" // {
         dependencies = [
-          sources."is-fullwidth-code-point-2.0.0"
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
         ];
       })
       (sources."snapdragon-0.8.2" // {
@@ -68341,18 +69874,10 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      (sources."string-width-4.2.0" // {
-        dependencies = [
-          sources."strip-ansi-6.0.0"
-        ];
-      })
+      sources."string-width-4.2.2"
       sources."string_decoder-1.3.0"
       sources."stringify-entities-1.3.2"
-      (sources."strip-ansi-5.2.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-        ];
-      })
+      sources."strip-ansi-6.0.0"
       sources."strip-bom-2.0.0"
       sources."strip-eof-1.0.0"
       (sources."strip-indent-1.0.1" // {
@@ -68367,6 +69892,7 @@ in
           sources."ansi-regex-3.0.0"
           sources."camelcase-4.1.0"
           sources."camelcase-keys-4.2.0"
+          sources."chalk-2.4.2"
           sources."debug-3.2.7"
           sources."file-entry-cache-2.0.0"
           sources."flat-cache-1.3.4"
@@ -68382,6 +69908,7 @@ in
           sources."read-pkg-3.0.0"
           sources."read-pkg-up-3.0.0"
           sources."redent-2.0.0"
+          sources."rimraf-2.6.3"
           sources."slice-ansi-1.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
@@ -68389,17 +69916,15 @@ in
           sources."strip-indent-2.0.0"
           sources."table-4.0.3"
           sources."trim-newlines-2.0.0"
-          sources."write-0.2.1"
         ];
       })
       sources."sugarss-1.0.1"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      (sources."table-5.4.6" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
+          sources."ajv-8.0.5"
+          sources."json-schema-traverse-1.0.0"
         ];
       })
       sources."temp-dir-1.0.0"
@@ -68407,9 +69932,7 @@ in
       sources."tempy-0.2.1"
       sources."term-size-1.2.0"
       sources."text-table-0.2.0"
-      sources."through-2.3.8"
       sources."timed-out-4.0.1"
-      sources."tmp-0.0.33"
       sources."to-object-path-0.3.0"
       sources."to-regex-3.0.2"
       (sources."to-regex-range-2.1.1" // {
@@ -68424,12 +69947,13 @@ in
       sources."tslib-1.14.1"
       (sources."tslint-5.20.1" // {
         dependencies = [
+          sources."chalk-2.4.2"
           sources."semver-5.7.1"
           sources."tsutils-2.29.0"
         ];
       })
-      sources."tsutils-3.20.0"
-      sources."type-check-0.3.2"
+      sources."tsutils-3.21.0"
+      sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
       sources."typescript-3.9.9"
       sources."unherit-1.1.3"
@@ -68455,20 +69979,28 @@ in
         ];
       })
       sources."unzip-response-2.0.1"
-      sources."update-notifier-2.5.0"
+      (sources."update-notifier-2.5.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
       sources."uri-js-4.4.1"
       sources."urix-0.1.0"
       sources."url-parse-lax-1.0.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."validate-npm-package-license-3.0.4"
       sources."vfile-2.3.0"
       sources."vfile-location-2.0.6"
       sources."vfile-message-1.1.1"
-      sources."vue-eslint-parser-7.1.1"
-      sources."which-1.3.1"
+      (sources."vue-eslint-parser-7.1.1" // {
+        dependencies = [
+          sources."espree-6.2.1"
+        ];
+      })
+      sources."which-2.0.2"
       sources."which-module-2.0.0"
       (sources."widest-line-2.0.1" // {
         dependencies = [
@@ -68488,7 +70020,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."write-1.0.3"
+      sources."write-0.2.1"
       sources."write-file-atomic-2.4.3"
       sources."x-is-string-0.1.0"
       sources."xdg-basedir-3.0.0"
@@ -68518,6 +70050,27 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  coc-pyright = nodeEnv.buildNodePackage {
+    name = "coc-pyright";
+    packageName = "coc-pyright";
+    version = "1.1.128";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.128.tgz";
+      sha512 = "3im1yc6Z412I09hqsFZBGCEGvnC92aIohpivQfwqK+amP5ySQEBYAtlTF0cJ8C9+cbWHkpFLUThcL/jZDvi9yQ==";
+    };
+    dependencies = [
+      sources."pyright-1.1.128"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Pyright extension for coc.nvim";
+      homepage = "https://github.com/fannheyward/coc-pyright#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   coc-python = nodeEnv.buildNodePackage {
     name = "coc-python";
     packageName = "coc-python";
@@ -68580,10 +70133,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.32.0";
+    version = "0.40.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.32.0.tgz";
-      sha512 = "AwUqoPFeetwDcCe6BpCRMsW+/VtPJ/I/wJA/3ycArSx2mYy+P2IBfBW62NERmw9RNopUbHQKjr6JBTXbl9T/uA==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.40.0.tgz";
+      sha512 = "OrneTjhj7lOFRRrQg93PjeDNu65XJN0jeAwOu2kbICGassqW5ILhNkYadfQDGbPbjPxbREZwzrHzBc2qcvzPPg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -68616,10 +70169,10 @@ in
   coc-snippets = nodeEnv.buildNodePackage {
     name = "coc-snippets";
     packageName = "coc-snippets";
-    version = "2.4.0";
+    version = "2.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-2.4.0.tgz";
-      sha512 = "XjL23iRnKCxeh/qG6FN1SJQQRHLunlxs6UlJua35A42tjztC6ZZYwuE4W9W8oU53iqGrSYrIrkT1+WFznBr/0g==";
+      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-2.4.1.tgz";
+      sha512 = "+81jc8T250Ipl50MMypedTqHvAAGPu/COg9wEUsBzEOHmA0r4ouvRhzjAOWt7G6L2dHdB4KJl8AWfiVZhc5dRA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -68657,28 +70210,31 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/core-7.12.16"
-      sources."@babel/generator-7.12.15"
+      sources."@babel/compat-data-7.13.12"
+      sources."@babel/core-7.13.14"
+      sources."@babel/generator-7.13.9"
+      sources."@babel/helper-compilation-targets-7.13.13"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-member-expression-to-functions-7.12.16"
-      sources."@babel/helper-module-imports-7.12.13"
-      sources."@babel/helper-module-transforms-7.12.13"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-replace-supers-7.12.13"
-      sources."@babel/helper-simple-access-7.12.13"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/helpers-7.12.13"
-      (sources."@babel/highlight-7.12.13" // {
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helpers-7.13.10"
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.12.16"
+      sources."@babel/parser-7.13.13"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.12.13"
-      sources."@babel/types-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -68689,7 +70245,7 @@ in
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/unist-2.0.3"
-      sources."ajv-7.1.0"
+      sources."ajv-8.0.5"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -68697,14 +70253,15 @@ in
       sources."astral-regex-2.0.0"
       sources."autoprefixer-9.8.6"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browserslist-4.16.3"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001185"
+      sources."caniuse-lite-1.0.30001207"
       (sources."chalk-4.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -68720,7 +70277,7 @@ in
       sources."clone-regexp-2.2.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."colorette-1.2.1"
+      sources."colorette-1.2.2"
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.7.0"
       sources."cosmiconfig-7.0.0"
@@ -68735,14 +70292,14 @@ in
       sources."dir-glob-3.0.1"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.1.0"
+          sources."domelementtype-2.2.0"
           sources."entities-2.2.0"
         ];
       })
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.663"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -68754,8 +70311,8 @@ in
       sources."fast-diff-1.2.0"
       sources."fast-glob-3.2.5"
       sources."fastest-levenshtein-1.0.12"
-      sources."fastq-1.10.1"
-      sources."file-entry-cache-6.0.0"
+      sources."fastq-1.11.0"
+      sources."file-entry-cache-6.0.1"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."flat-cache-3.0.4"
@@ -68763,19 +70320,21 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
+      sources."get-intrinsic-1.1.1"
       sources."get-stdin-8.0.0"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."global-modules-2.0.0"
       sources."global-prefix-3.0.0"
       sources."globals-11.12.0"
-      sources."globby-11.0.2"
+      sources."globby-11.0.3"
       sources."globjoin-0.1.4"
       sources."gonzales-pe-4.3.0"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."hosted-git-info-3.0.8"
+      sources."has-symbols-1.0.2"
+      sources."hosted-git-info-4.0.2"
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
       sources."ignore-5.1.8"
@@ -68794,6 +70353,7 @@ in
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-2.0.5"
       sources."is-core-module-2.2.0"
       sources."is-decimal-1.0.4"
@@ -68802,9 +70362,12 @@ in
       sources."is-glob-4.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-regexp-2.1.0"
+      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
@@ -68815,11 +70378,14 @@ in
       sources."known-css-properties-0.21.0"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
-      sources."log-symbols-4.0.0"
+      sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
+      sources."log-symbols-4.1.0"
       sources."longest-streak-2.0.4"
       sources."lru-cache-6.0.0"
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       sources."mathml-tag-names-2.1.3"
       sources."mdast-util-from-markdown-0.8.5"
       sources."mdast-util-to-markdown-0.6.5"
@@ -68837,10 +70403,10 @@ in
         ];
       })
       sources."ms-2.1.2"
-      sources."node-releases-1.1.70"
-      (sources."normalize-package-data-3.0.0" // {
+      sources."node-releases-1.1.71"
+      (sources."normalize-package-data-3.0.2" // {
         dependencies = [
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
         ];
       })
       sources."normalize-range-0.1.2"
@@ -68881,12 +70447,13 @@ in
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-4.1.0"
       sources."punycode-2.1.1"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
       (sources."read-pkg-5.2.0" // {
         dependencies = [
           sources."hosted-git-info-2.8.8"
           sources."normalize-package-data-2.5.0"
+          sources."semver-5.7.1"
           sources."type-fest-0.6.0"
         ];
       })
@@ -68908,7 +70475,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.2"
-      sources."semver-5.7.1"
+      sources."semver-6.3.0"
       sources."signal-exit-3.0.3"
       sources."slash-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -68924,7 +70491,7 @@ in
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.7"
       sources."specificity-0.4.1"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       (sources."string_decoder-1.3.0" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
@@ -68933,25 +70500,25 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-indent-3.0.0"
       sources."style-search-0.1.0"
-      sources."stylelint-13.10.0"
+      sources."stylelint-13.12.0"
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.0.7"
+      sources."table-6.0.9"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.0"
       sources."trough-1.0.5"
       sources."type-fest-0.18.1"
       sources."typedarray-to-buffer-3.1.5"
-      sources."unified-9.2.0"
+      sources."unified-9.2.1"
       sources."uniq-1.0.1"
       sources."unist-util-find-all-after-3.0.2"
-      sources."unist-util-is-4.0.4"
+      sources."unist-util-is-4.1.0"
       sources."unist-util-stringify-position-2.0.3"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."validate-npm-package-license-3.0.4"
       sources."vfile-4.2.1"
       sources."vfile-message-2.0.4"
@@ -68969,8 +70536,8 @@ in
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."yallist-4.0.0"
-      sources."yaml-1.10.0"
-      sources."yargs-parser-20.2.4"
+      sources."yaml-1.10.2"
+      sources."yargs-parser-20.2.7"
       sources."zwitch-1.0.5"
     ];
     buildInputs = globalBuildInputs;
@@ -68999,6 +70566,24 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  coc-texlab = nodeEnv.buildNodePackage {
+    name = "coc-texlab";
+    packageName = "coc-texlab";
+    version = "2.3.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-texlab/-/coc-texlab-2.3.0.tgz";
+      sha512 = "1Nph3BgqAbANW1LWa49kscQdt8i55fB304YohKvA2y78DlvxIfG0J7UnbIz+R1HQX0TpvwWdD/wzFP6ll68l8w==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "TexLab extension for coc.nvim";
+      homepage = "https://github.com/fannheyward/coc-texlab#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   coc-tslint = nodeEnv.buildNodePackage {
     name = "coc-tslint";
     packageName = "coc-tslint";
@@ -69010,10 +70595,10 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.12.13"
+      sources."@babel/highlight-7.13.10"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."builtin-modules-1.1.1"
       sources."chalk-2.4.2"
@@ -69063,13 +70648,13 @@ in
   coc-tslint-plugin = nodeEnv.buildNodePackage {
     name = "coc-tslint-plugin";
     packageName = "coc-tslint-plugin";
-    version = "1.1.2";
+    version = "1.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tslint-plugin/-/coc-tslint-plugin-1.1.2.tgz";
-      sha512 = "wLm2JJVkf2yUk3XzMSmAs8pnibQRTroHnF3XkIH7DJ5mrcrZe9o0Od2lYyuNxgJn2v6/Iw221o8/LfoamfywdQ==";
+      url = "https://registry.npmjs.org/coc-tslint-plugin/-/coc-tslint-plugin-1.2.0.tgz";
+      sha512 = "WEl0FM8ui0Oip6YqyOYApf8vErXFudj2ftjSYqm5WNLNuPq53JSNi+5w+WNqHwX2UWE8MOB2mQszqwU2fyE8Ag==";
     };
     dependencies = [
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."get-caller-file-1.0.3"
@@ -69096,13 +70681,13 @@ in
   coc-tsserver = nodeEnv.buildNodePackage {
     name = "coc-tsserver";
     packageName = "coc-tsserver";
-    version = "1.6.7";
+    version = "1.6.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.6.7.tgz";
-      sha512 = "NVBl6AEbEax6GQdBlBy/SelJ5TXCkrnLN/dDqgDWwhIPX6UBFhFTFCLcqcHbfMjLM/MDvP/t85w+OYBGe2gXxg==";
+      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.6.8.tgz";
+      sha512 = "No0Eio7RJDawPS2fuWyJgnbDRN9ivtxf085o4jOuSOrwFeId88Se1ngPoT7whVAOkAiW75KgqFyuLDlr9XH+9w==";
     };
     dependencies = [
-      sources."typescript-4.1.5"
+      sources."typescript-4.2.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -69117,20 +70702,24 @@ in
   coc-vetur = nodeEnv.buildNodePackage {
     name = "coc-vetur";
     packageName = "coc-vetur";
-    version = "1.2.3";
+    version = "1.2.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-vetur/-/coc-vetur-1.2.3.tgz";
-      sha512 = "2SHFFjxkw2kl0hADDNUYX85OR/PbjqYPxFnpNp6G83SbeZBoJN8KDUl7TrIJ7BZ4UCiIilXnKQCHpxREiVPAEg==";
+      url = "https://registry.npmjs.org/coc-vetur/-/coc-vetur-1.2.4.tgz";
+      sha512 = "9ZEPHykSx2J/OwLFocXSK1Bg4p35AegacFb0ZaWV9s0IEtdNSkYi25Y9CscqV6fQheMfyEl0f4rlI4yh6DbcPg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@eslint/eslintrc-0.3.0"
+      (sources."@eslint/eslintrc-0.4.0" // {
+        dependencies = [
+          sources."globals-12.4.0"
+        ];
+      })
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
       sources."ajv-6.12.6"
@@ -69139,9 +70728,10 @@ in
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."astral-regex-2.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."builtin-modules-1.1.1"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       (sources."chalk-4.1.0" // {
         dependencies = [
@@ -69164,8 +70754,8 @@ in
       sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.19.0"
-      sources."eslint-plugin-vue-7.5.0"
+      sources."eslint-7.23.0"
+      sources."eslint-plugin-vue-7.8.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
@@ -69194,33 +70784,45 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."file-entry-cache-6.0.0"
+      sources."file-entry-cache-6.0.1"
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
+      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      sources."globals-12.4.0"
+      sources."glob-parent-5.1.2"
+      (sources."globals-13.7.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      sources."is-boolean-object-1.1.0"
       sources."is-core-module-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
+      sources."is-number-object-1.0.4"
+      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
       sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -69242,7 +70844,7 @@ in
       sources."resolve-1.20.0"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -69253,13 +70855,13 @@ in
         ];
       })
       sources."sprintf-js-1.0.3"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.1.0"
+          sources."ajv-8.0.5"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -69274,11 +70876,11 @@ in
       sources."tsutils-2.29.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
-      sources."typescript-4.1.5"
+      sources."typescript-4.2.3"
       sources."uri-js-4.4.1"
-      sources."v8-compile-cache-2.2.0"
-      sources."vls-0.5.10"
-      (sources."vue-eslint-parser-7.4.1" // {
+      sources."v8-compile-cache-2.3.0"
+      sources."vls-0.7.2"
+      (sources."vue-eslint-parser-7.6.0" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
           sources."espree-6.2.1"
@@ -69301,10 +70903,10 @@ in
   coc-vimlsp = nodeEnv.buildNodePackage {
     name = "coc-vimlsp";
     packageName = "coc-vimlsp";
-    version = "0.11.0";
+    version = "0.12.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-vimlsp/-/coc-vimlsp-0.11.0.tgz";
-      sha512 = "tcou7cmYgzjLLPfLEyuea5umVkITER0IqDsJCc/3IeuPFyL03D7EDyeXIcyR+fJwXpJ0AzO6rzoLBMqpt4hYGg==";
+      url = "https://registry.npmjs.org/coc-vimlsp/-/coc-vimlsp-0.12.1.tgz";
+      sha512 = "2ESErZRwj6NZJbjX3wNZpiP5UxS2+La3uKEfA4dI3KQnaOrJ9ZR6TNROGl4MI0I2DgZNJO9Y3FZmyt1I/WJm+Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -69354,10 +70956,10 @@ in
   coc-yaml = nodeEnv.buildNodePackage {
     name = "coc-yaml";
     packageName = "coc-yaml";
-    version = "1.3.0";
+    version = "1.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-yaml/-/coc-yaml-1.3.0.tgz";
-      sha512 = "i71kwyF20R+vAHhuF9uBbvs6kkvKuSifMkxTeIbBnLobHE500rSSwUD2SPIvt+I1g1rfHrM0Sj89fzrhDA60NQ==";
+      url = "https://registry.npmjs.org/coc-yaml/-/coc-yaml-1.3.1.tgz";
+      sha512 = "OJeA16cZ7ds4QsyPP9Vmztca4DDpcz7odPN5O75+jb5nmTD5UgYWQE71sY10vIIqdI+dKYdWw+iausu90cuZHA==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -69369,16 +70971,18 @@ in
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
       sources."js-yaml-3.14.1"
-      sources."jsonc-parser-3.0.0"
+      sources."jsonc-parser-2.3.1"
       sources."ms-2.0.0"
       sources."prettier-2.0.5"
-      (sources."request-light-0.2.5" // {
+      sources."request-light-0.2.5"
+      sources."sprintf-js-1.0.3"
+      (sources."vscode-json-languageservice-3.11.0" // {
         dependencies = [
-          sources."vscode-nls-4.1.2"
+          sources."jsonc-parser-3.0.0"
+          sources."vscode-languageserver-types-3.16.0-next.2"
+          sources."vscode-nls-5.0.0"
         ];
       })
-      sources."sprintf-js-1.0.3"
-      sources."vscode-json-languageservice-3.11.0"
       sources."vscode-jsonrpc-4.0.0"
       (sources."vscode-languageserver-5.2.1" // {
         dependencies = [
@@ -69391,16 +70995,10 @@ in
         ];
       })
       sources."vscode-languageserver-textdocument-1.0.1"
-      sources."vscode-languageserver-types-3.16.0-next.2"
-      sources."vscode-nls-5.0.0"
+      sources."vscode-languageserver-types-3.16.0"
+      sources."vscode-nls-4.1.2"
       sources."vscode-uri-2.1.2"
-      (sources."yaml-language-server-0.13.1-dcc82a9.0" // {
-        dependencies = [
-          sources."jsonc-parser-2.3.1"
-          sources."vscode-languageserver-types-3.16.0"
-          sources."vscode-nls-4.1.2"
-        ];
-      })
+      sources."yaml-language-server-0.13.1-d0f9b44.0"
       sources."yaml-language-server-parser-0.1.3-fa8245c.0"
     ];
     buildInputs = globalBuildInputs;
@@ -69451,10 +71049,10 @@ in
   coinmon = nodeEnv.buildNodePackage {
     name = "coinmon";
     packageName = "coinmon";
-    version = "0.0.27";
+    version = "0.0.28";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coinmon/-/coinmon-0.0.27.tgz";
-      sha512 = "aOxDy3oAUu5oKpjb+ZrQgOuT+yBPxbaOc4CMLD+c8uKyDbAodf/0Xee53xVihqeQtjvdCXszoAnMNtKid+/MrA==";
+      url = "https://registry.npmjs.org/coinmon/-/coinmon-0.0.28.tgz";
+      sha512 = "jARqwj0uyTfbcsTr3IDoaGI6ZXUV8e8qVjw+LaRBujvjgsiWypJweze5IZy0/sjNEKlptwB7GDjmuphtBzngFA==";
     };
     dependencies = [
       sources."ansi-regex-3.0.0"
@@ -69469,7 +71067,7 @@ in
       sources."colors-1.4.0"
       sources."commander-2.20.3"
       sources."escape-string-regexp-1.0.5"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."has-flag-3.0.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."log-symbols-2.2.0"
@@ -69496,10 +71094,10 @@ in
   configurable-http-proxy = nodeEnv.buildNodePackage {
     name = "configurable-http-proxy";
     packageName = "configurable-http-proxy";
-    version = "4.2.2";
+    version = "4.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/configurable-http-proxy/-/configurable-http-proxy-4.2.2.tgz";
-      sha512 = "sG/P4fxVzz7lTzKjIg1MmnNF5ChW1+zk/LpLxdNgCHlgAMlQTAC12UqBtkFrczGQ6SapsvB3x4VbKLjdrcrjhA==";
+      url = "https://registry.npmjs.org/configurable-http-proxy/-/configurable-http-proxy-4.3.1.tgz";
+      sha512 = "/Q1Lb5YtxupfXD51GMf//a5ubHNj7gQZfbQj4xxnoKNhec4iUgjTQ9IiemsJJDFlp3Bqgh+cV4OW/zuVkibahg==";
     };
     dependencies = [
       sources."@dabh/diagnostics-2.0.2"
@@ -69507,17 +71105,17 @@ in
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.4"
+      sources."color-string-1.5.5"
       sources."colors-1.4.0"
       sources."colorspace-1.1.2"
-      sources."commander-6.1.0"
+      sources."commander-7.1.0"
       sources."core-util-is-1.0.2"
       sources."enabled-2.0.0"
       sources."eventemitter3-4.0.7"
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."fn.name-1.1.0"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."http-proxy-1.18.1"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
@@ -69579,7 +71177,7 @@ in
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.3"
+      sources."@npmcli/run-script-1.8.4"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-1.1.2"
@@ -69613,7 +71211,7 @@ in
       sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big-integer-1.6.48"
@@ -69631,7 +71229,7 @@ in
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -69640,7 +71238,7 @@ in
       sources."braces-3.0.2"
       sources."builtins-1.0.3"
       sources."bytes-3.0.0"
-      sources."cacache-15.0.5"
+      sources."cacache-15.0.6"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."lowercase-keys-2.0.0"
@@ -69733,7 +71331,7 @@ in
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."endent-1.4.1"
-      sources."env-paths-2.2.0"
+      sources."env-paths-2.2.1"
       sources."err-code-2.0.3"
       sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
@@ -69759,7 +71357,7 @@ in
       sources."fast-glob-3.2.5"
       sources."fast-json-parse-1.0.3"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."figures-2.0.0"
       sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
@@ -69781,9 +71379,9 @@ in
       sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."global-dirs-2.1.0"
-      sources."globby-11.0.2"
+      sources."globby-11.0.3"
       (sources."got-9.6.0" // {
         dependencies = [
           sources."get-stream-4.1.0"
@@ -69796,7 +71394,7 @@ in
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
-      sources."hosted-git-info-3.0.8"
+      sources."hosted-git-info-4.0.2"
       sources."http-cache-semantics-4.1.0"
       (sources."http-errors-1.7.2" // {
         dependencies = [
@@ -69865,7 +71463,7 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-ci-2.0.0"
       sources."is-core-module-2.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
@@ -69874,7 +71472,7 @@ in
       sources."is-npm-4.0.0"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-stream-2.0.0"
       sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
@@ -69899,7 +71497,7 @@ in
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.debounce-4.0.8"
       sources."loud-rejection-2.2.0"
       sources."lowercase-keys-1.0.1"
@@ -69919,8 +71517,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -69954,9 +71552,9 @@ in
       sources."npm-bundled-1.1.1"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-package-arg-8.1.0"
-      sources."npm-packlist-2.1.4"
-      sources."npm-pick-manifest-6.1.0"
+      sources."npm-package-arg-8.1.2"
+      sources."npm-packlist-2.1.5"
+      sources."npm-pick-manifest-6.1.1"
       sources."npm-registry-fetch-9.0.0"
       sources."npm-run-path-4.0.1"
       sources."npmlog-4.1.2"
@@ -69968,7 +71566,7 @@ in
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."open-7.4.0"
+      sources."open-7.4.2"
       sources."os-homedir-1.0.2"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
@@ -69988,7 +71586,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-11.2.6"
+      sources."pacote-11.3.1"
       sources."parent-module-1.0.1"
       sources."parseurl-1.3.3"
       sources."path-exists-3.0.0"
@@ -70002,7 +71600,7 @@ in
       sources."picomatch-2.2.2"
       sources."pify-4.0.1"
       sources."pkg-up-2.0.0"
-      sources."plist-3.0.1"
+      sources."plist-3.0.2"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
       sources."promise-inflight-1.0.1"
@@ -70010,13 +71608,12 @@ in
       sources."promzard-0.3.0"
       sources."proxy-addr-2.0.6"
       sources."psl-1.8.0"
-      sources."puka-1.0.1"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
       sources."q-1.5.1"
       sources."qs-6.5.2"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."range-parser-1.2.1"
       (sources."raw-body-2.4.0" // {
         dependencies = [
@@ -70028,7 +71625,7 @@ in
       sources."read-1.0.7"
       sources."read-chunk-3.2.0"
       sources."read-package-json-2.1.2"
-      sources."read-package-json-fast-2.0.1"
+      sources."read-package-json-fast-2.0.2"
       sources."readable-stream-2.3.7"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
@@ -70047,11 +71644,11 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -70075,7 +71672,7 @@ in
       sources."signal-exit-3.0.3"
       sources."slash-3.0.0"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.5.1"
+      sources."socks-2.6.0"
       sources."socks-proxy-agent-5.0.0"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
@@ -70093,7 +71690,7 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
-      sources."systeminformation-4.34.9"
+      sources."systeminformation-4.34.19"
       sources."tar-6.1.0"
       sources."term-size-2.2.1"
       sources."through-2.3.8"
@@ -70108,7 +71705,7 @@ in
       sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
-      sources."underscore-1.12.0"
+      sources."underscore-1.12.1"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-2.0.0"
@@ -70132,7 +71729,7 @@ in
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -70155,7 +71752,7 @@ in
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
       sources."xmlbuilder-9.0.7"
-      sources."xmldom-0.1.31"
+      sources."xmldom-0.5.0"
       sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
@@ -70179,13 +71776,13 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.12.13"
+      sources."@babel/highlight-7.13.10"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@types/glob-7.1.3"
-      sources."@types/minimatch-3.0.3"
+      sources."@types/minimatch-3.0.4"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/normalize-package-data-2.4.0"
       sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
@@ -70198,7 +71795,7 @@ in
       sources."arrify-2.0.1"
       sources."assign-symbols-1.0.0"
       sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -70240,7 +71837,7 @@ in
       sources."concat-map-0.0.1"
       sources."copy-descriptor-0.1.1"
       sources."cp-file-7.0.0"
-      sources."cpy-8.1.1"
+      sources."cpy-8.1.2"
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
@@ -70349,7 +71946,7 @@ in
       sources."locate-path-5.0.0"
       sources."make-dir-3.1.0"
       sources."map-cache-0.2.2"
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       sources."map-visit-1.0.0"
       sources."meow-6.1.1"
       sources."merge2-1.4.1"
@@ -70556,12 +72153,13 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.2"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
       sources."asynckit-0.4.0"
+      sources."call-bind-1.0.2"
       (sources."chalk-2.4.2" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -70599,7 +72197,7 @@ in
       sources."event-emitter-0.3.5"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.2.0"
+          sources."type-2.5.0"
         ];
       })
       sources."extend-3.0.2"
@@ -70607,9 +72205,13 @@ in
       sources."figures-2.0.0"
       sources."form-data-2.5.1"
       sources."formidable-1.2.2"
-      sources."globalthis-1.0.1"
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
+      sources."globalthis-1.0.2"
+      sources."has-1.0.3"
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."iconv-lite-0.4.24"
       sources."inherits-2.0.4"
       (sources."inquirer-3.3.0" // {
@@ -70621,7 +72223,7 @@ in
       sources."is-fullwidth-code-point-2.0.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash._baseiteratee-4.7.0"
       sources."lodash._basetostring-4.12.0"
       sources."lodash._baseuniq-4.6.0"
@@ -70632,21 +72234,22 @@ in
       sources."lru-cache-4.1.5"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimist-1.2.5"
       sources."ms-2.1.3"
       sources."mute-stream-0.0.7"
       sources."next-tick-1.0.0"
       sources."object-assign-4.1.1"
+      sources."object-inspect-1.9.0"
       sources."object-keys-1.1.1"
       sources."onetime-2.0.1"
       sources."os-tmpdir-1.0.2"
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."pseudomap-1.0.2"
-      sources."qs-6.9.6"
+      sources."qs-6.10.1"
       sources."quicktask-1.1.0"
       sources."raf-3.3.2"
       sources."readable-stream-2.3.7"
@@ -70659,6 +72262,7 @@ in
       sources."setimmediate-1.0.5"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
       sources."snabbdom-0.7.0"
       sources."snabbdom-selector-1.2.1"
@@ -70700,15 +72304,15 @@ in
   create-react-app = nodeEnv.buildNodePackage {
     name = "create-react-app";
     packageName = "create-react-app";
-    version = "4.0.2";
+    version = "4.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-react-app/-/create-react-app-4.0.2.tgz";
-      sha512 = "B78UC1E8LwvbmvEjIPumKXvu9yeNTpaKrNVf0HpP5AJmGgq9fdipcYKtpqRNAwm06lvhpNhO3jvR9xeRQDsmog==";
+      url = "https://registry.npmjs.org/create-react-app/-/create-react-app-4.0.3.tgz";
+      sha512 = "Gz/ilrPq0ehiZ+K3L4jAZXGVep6NDkAytIdiHXsE4cWJav9uHe8xzEN84i3SjMYox6yNrBaULXHAkWdn4ZBF9Q==";
     };
     dependencies = [
       sources."ansi-styles-4.3.0"
       sources."at-least-node-1.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."block-stream-0.0.9"
       sources."brace-expansion-1.1.11"
       sources."buffer-from-0.1.2"
@@ -70798,10 +72402,10 @@ in
   create-react-native-app = nodeEnv.buildNodePackage {
     name = "create-react-native-app";
     packageName = "create-react-native-app";
-    version = "3.5.3";
+    version = "3.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.5.3.tgz";
-      sha512 = "YJWlLKBx4tdOJ7NbUVqKATTAHB4IJTHSTJBAj0eBbdXdmpI4WGGS725MzoapgJPiBWUMtjgZcVcR5MHe3UHczQ==";
+      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.6.0.tgz";
+      sha512 = "DlhSk4dbD4V+8ZnIRi3WW/Y+F90slstYUzbnz21pKxvMW1Pkri+081q+zAY1+piBq1wqUE5VbKrkXUKg019lnw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -70873,7 +72477,7 @@ in
       sources."atomic-batcher-1.0.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -71183,9 +72787,9 @@ in
       sources."menu-string-1.3.0"
       sources."merkle-tree-stream-3.0.3"
       sources."micromatch-3.1.10"
-      sources."mime-2.5.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-2.5.2"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-2.1.0"
       sources."min-document-2.19.0"
       sources."minimatch-3.0.4"
@@ -71206,7 +72810,7 @@ in
       sources."mutexify-1.3.1"
       sources."nan-2.14.2"
       sources."nanoassert-1.1.0"
-      sources."nanobus-4.4.0"
+      sources."nanobus-4.5.0"
       sources."nanoguard-1.3.0"
       sources."nanomatch-1.2.13"
       sources."nanoscheduler-1.0.3"
@@ -71267,7 +72871,7 @@ in
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."random-access-file-2.1.5"
+      sources."random-access-file-2.2.0"
       sources."random-access-memory-3.1.2"
       sources."random-access-storage-1.4.1"
       sources."randombytes-2.1.0"
@@ -71456,7 +73060,7 @@ in
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."utile-0.3.0"
-      (sources."utp-native-2.3.0" // {
+      (sources."utp-native-2.4.0" // {
         dependencies = [
           sources."node-gyp-build-4.2.3"
           sources."readable-stream-3.6.0"
@@ -71527,7 +73131,7 @@ in
       sources."@nodelib/fs.walk-1.2.6"
       sources."aggregate-error-3.1.0"
       sources."array-union-2.1.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."clean-stack-2.2.0"
@@ -71537,13 +73141,13 @@ in
       sources."del-6.0.0"
       sources."dir-glob-3.0.1"
       sources."fast-glob-3.2.5"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."fs.realpath-1.0.0"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      sources."globby-11.0.2"
+      sources."glob-parent-5.1.2"
+      sources."globby-11.0.3"
       sources."graceful-fs-4.2.6"
       sources."ignore-5.1.8"
       sources."indent-string-4.0.0"
@@ -71553,10 +73157,10 @@ in
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
       sources."is-path-cwd-2.2.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-stream-2.0.0"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
       sources."minimatch-3.0.4"
@@ -71569,11 +73173,11 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-type-4.0.0"
       sources."picomatch-2.2.2"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."slash-3.0.0"
       sources."temp-dir-2.0.0"
       sources."tempy-0.7.1"
@@ -71629,15 +73233,15 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.65.3";
+    version = "6.68.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.65.3.tgz";
-      sha512 = "GNai5B3ipW7ekXxj0WeFN7IsqY8+hXogeL5WWDn4F5z7DlB8idXmX/0RWv/2tS5Hnh4R9BzW1cJ5s2n85bhsSw==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.68.0.tgz";
+      sha512 = "TbyxmvjB/wAuZfeXQIfFSn5LVE/SarcYSflAfL1tWnh4Az3OXGe4U5FoB/HRM8G3JTc2gp3oe1akrRpfda9+NQ==";
     };
     dependencies = [
       sources."@fast-csv/format-4.3.5"
       sources."@fast-csv/parse-4.3.6"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."JSONStream-1.3.5"
       sources."ajv-6.12.6"
       sources."asn1-0.2.4"
@@ -71693,7 +73297,7 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.escaperegexp-4.1.2"
       sources."lodash.groupby-4.6.0"
       sources."lodash.isboolean-3.0.3"
@@ -71704,8 +73308,8 @@ in
       sources."lodash.uniq-4.5.0"
       sources."lossless-json-1.0.4"
       sources."method-missing-1.2.4"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."oauth-sign-0.9.0"
       sources."p-finally-1.0.0"
@@ -71772,6 +73376,612 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  "@electron-forge/cli" = nodeEnv.buildNodePackage {
+    name = "_at_electron-forge_slash_cli";
+    packageName = "@electron-forge/cli";
+    version = "6.0.0-beta.54";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.54.tgz";
+      sha512 = "+Ui1BI8c5CnBawH2OEySa5QR8DzrFd/I9FHlClvrTsIDfsBAeMSv9NTbSNcmo9Af5kI+aNsLQa8tp1vD8DNrng==";
+    };
+    dependencies = [
+      sources."@electron-forge/async-ora-6.0.0-beta.54"
+      sources."@electron-forge/core-6.0.0-beta.54"
+      sources."@electron-forge/installer-base-6.0.0-beta.54"
+      sources."@electron-forge/installer-darwin-6.0.0-beta.54"
+      sources."@electron-forge/installer-deb-6.0.0-beta.54"
+      sources."@electron-forge/installer-dmg-6.0.0-beta.54"
+      sources."@electron-forge/installer-exe-6.0.0-beta.54"
+      sources."@electron-forge/installer-linux-6.0.0-beta.54"
+      sources."@electron-forge/installer-rpm-6.0.0-beta.54"
+      sources."@electron-forge/installer-zip-6.0.0-beta.54"
+      sources."@electron-forge/maker-base-6.0.0-beta.54"
+      sources."@electron-forge/plugin-base-6.0.0-beta.54"
+      sources."@electron-forge/publisher-base-6.0.0-beta.54"
+      sources."@electron-forge/shared-types-6.0.0-beta.54"
+      sources."@electron-forge/template-base-6.0.0-beta.54"
+      sources."@electron-forge/template-typescript-6.0.0-beta.54"
+      sources."@electron-forge/template-typescript-webpack-6.0.0-beta.54"
+      sources."@electron-forge/template-webpack-6.0.0-beta.54"
+      (sources."@electron/get-1.12.4" // {
+        dependencies = [
+          sources."@sindresorhus/is-0.14.0"
+          sources."@szmarczak/http-timer-1.1.2"
+          (sources."cacheable-request-6.1.0" // {
+            dependencies = [
+              sources."get-stream-5.2.0"
+              sources."lowercase-keys-2.0.0"
+            ];
+          })
+          sources."decompress-response-3.3.0"
+          sources."defer-to-connect-1.1.3"
+          sources."fs-extra-8.1.0"
+          sources."get-stream-4.1.0"
+          sources."got-9.6.0"
+          sources."json-buffer-3.0.0"
+          sources."keyv-3.1.0"
+          sources."lowercase-keys-1.0.1"
+          sources."p-cancelable-1.1.0"
+          sources."responselike-1.0.2"
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@malept/cross-spawn-promise-1.1.1"
+      sources."@sindresorhus/is-4.0.0"
+      sources."@szmarczak/http-timer-4.0.5"
+      sources."@types/cacheable-request-6.0.1"
+      sources."@types/glob-7.1.3"
+      sources."@types/http-cache-semantics-4.0.0"
+      sources."@types/keyv-3.1.1"
+      sources."@types/minimatch-3.0.4"
+      sources."@types/node-14.14.37"
+      sources."@types/responselike-1.0.0"
+      sources."@types/yauzl-2.9.1"
+      sources."abbrev-1.1.1"
+      sources."ajv-6.12.6"
+      (sources."ansi-escapes-4.3.2" // {
+        dependencies = [
+          sources."type-fest-0.21.3"
+        ];
+      })
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.3.0"
+      sources."aproba-1.2.0"
+      (sources."are-we-there-yet-1.1.5" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."array-find-index-1.0.2"
+      (sources."asar-3.0.3" // {
+        dependencies = [
+          sources."commander-5.1.0"
+        ];
+      })
+      sources."asn1-0.2.4"
+      sources."assert-plus-1.0.0"
+      sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
+      sources."author-regex-1.0.0"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.11.0"
+      sources."balanced-match-1.0.2"
+      sources."base64-js-1.5.1"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."bl-4.1.0"
+      sources."bluebird-3.7.2"
+      sources."boolean-3.0.3"
+      sources."brace-expansion-1.1.11"
+      sources."buffer-5.7.1"
+      sources."buffer-alloc-1.2.0"
+      sources."buffer-alloc-unsafe-1.1.0"
+      sources."buffer-crc32-0.2.13"
+      sources."buffer-fill-1.0.0"
+      sources."buffer-from-1.1.1"
+      sources."cacheable-lookup-5.0.4"
+      sources."cacheable-request-7.0.1"
+      sources."camelcase-2.1.1"
+      sources."camelcase-keys-2.1.0"
+      sources."caseless-0.12.0"
+      sources."chalk-4.1.0"
+      sources."chardet-0.7.0"
+      sources."chownr-1.1.4"
+      sources."chromium-pickle-js-0.2.0"
+      sources."cli-cursor-3.1.0"
+      sources."cli-spinners-2.6.0"
+      sources."cli-width-3.0.0"
+      (sources."cliui-7.0.4" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+        ];
+      })
+      sources."clone-1.0.4"
+      sources."clone-response-1.0.2"
+      sources."code-point-at-1.1.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."colors-1.4.0"
+      sources."combined-stream-1.0.8"
+      sources."commander-4.1.1"
+      sources."compare-version-0.1.2"
+      sources."concat-map-0.0.1"
+      sources."config-chain-1.1.12"
+      sources."console-control-strings-1.1.0"
+      sources."core-js-3.10.0"
+      sources."core-util-is-1.0.2"
+      sources."cross-spawn-7.0.3"
+      sources."currently-unhandled-0.4.1"
+      sources."dashdash-1.14.1"
+      (sources."debug-4.3.2" // {
+        dependencies = [
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."decamelize-1.2.0"
+      (sources."decompress-response-6.0.0" // {
+        dependencies = [
+          sources."mimic-response-3.1.0"
+        ];
+      })
+      sources."deep-extend-0.6.0"
+      sources."defaults-1.0.3"
+      sources."defer-to-connect-2.0.1"
+      (sources."define-properties-1.1.3" // {
+        dependencies = [
+          sources."object-keys-1.1.1"
+        ];
+      })
+      sources."delayed-stream-1.0.0"
+      sources."delegates-1.0.0"
+      sources."detect-libc-1.0.3"
+      sources."detect-node-2.0.5"
+      sources."duplexer3-0.1.4"
+      sources."ecc-jsbn-0.1.2"
+      sources."electron-notarize-1.0.0"
+      (sources."electron-osx-sign-0.5.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+        ];
+      })
+      sources."electron-packager-15.2.0"
+      sources."electron-rebuild-2.3.5"
+      sources."emoji-regex-8.0.0"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      sources."env-paths-2.2.1"
+      sources."error-ex-1.3.2"
+      sources."es6-error-4.1.1"
+      sources."escalade-3.1.1"
+      sources."escape-string-regexp-1.0.5"
+      (sources."execa-1.0.0" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+          sources."get-stream-4.1.0"
+          sources."path-key-2.0.1"
+          sources."semver-5.7.1"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
+        ];
+      })
+      sources."expand-tilde-2.0.2"
+      sources."extend-3.0.2"
+      sources."external-editor-3.1.0"
+      sources."extract-zip-2.0.1"
+      sources."extsprintf-1.3.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fd-slicer-1.1.0"
+      sources."figures-3.2.0"
+      sources."filename-reserved-regex-2.0.0"
+      sources."filenamify-4.2.0"
+      (sources."find-up-5.0.0" // {
+        dependencies = [
+          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."flora-colossus-1.0.1" // {
+        dependencies = [
+          sources."fs-extra-7.0.1"
+        ];
+      })
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      (sources."fs-extra-9.1.0" // {
+        dependencies = [
+          sources."jsonfile-6.1.0"
+          sources."universalify-2.0.0"
+        ];
+      })
+      sources."fs-minipass-1.2.7"
+      sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
+      (sources."galactus-0.2.1" // {
+        dependencies = [
+          sources."debug-3.2.7"
+          sources."fs-extra-4.0.3"
+          sources."ms-2.1.3"
+        ];
+      })
+      (sources."gauge-2.7.4" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."get-caller-file-2.0.5"
+      sources."get-installed-path-2.1.1"
+      (sources."get-package-info-1.0.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+        ];
+      })
+      sources."get-stdin-4.0.1"
+      sources."get-stream-5.2.0"
+      sources."getpass-0.1.7"
+      sources."glob-7.1.6"
+      sources."global-agent-2.2.0"
+      sources."global-modules-1.0.0"
+      (sources."global-prefix-1.0.2" // {
+        dependencies = [
+          sources."which-1.3.1"
+        ];
+      })
+      sources."global-tunnel-ng-2.7.1"
+      sources."globalthis-1.0.2"
+      sources."got-11.8.2"
+      sources."graceful-fs-4.2.6"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.5"
+      sources."has-1.0.3"
+      sources."has-flag-4.0.0"
+      sources."has-unicode-2.0.1"
+      sources."homedir-polyfill-1.0.3"
+      sources."hosted-git-info-2.8.8"
+      sources."http-cache-semantics-4.1.0"
+      sources."http-signature-1.2.0"
+      sources."http2-wrapper-1.0.3"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.2.1"
+      sources."ignore-walk-3.0.3"
+      sources."indent-string-2.1.0"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.8"
+      (sources."inquirer-7.3.3" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+        ];
+      })
+      sources."is-arrayish-0.2.1"
+      sources."is-core-module-2.2.0"
+      sources."is-docker-2.2.0"
+      sources."is-finite-1.1.0"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-interactive-1.0.0"
+      sources."is-stream-1.1.0"
+      sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
+      sources."is-utf8-0.2.1"
+      sources."is-windows-1.0.2"
+      sources."is-wsl-2.2.0"
+      sources."isarray-1.0.0"
+      sources."isbinaryfile-3.0.3"
+      sources."isexe-2.0.0"
+      sources."isstream-0.1.2"
+      sources."jsbn-0.1.1"
+      sources."json-buffer-3.0.1"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsonfile-4.0.0"
+      sources."jsprim-1.4.1"
+      sources."junk-3.1.0"
+      sources."keyv-4.0.3"
+      sources."load-json-file-2.0.0"
+      sources."locate-path-2.0.0"
+      sources."lodash-4.17.21"
+      sources."lodash.get-4.4.2"
+      sources."log-symbols-4.1.0"
+      sources."loud-rejection-1.6.0"
+      sources."lowercase-keys-2.0.0"
+      (sources."lru-cache-6.0.0" // {
+        dependencies = [
+          sources."yallist-4.0.0"
+        ];
+      })
+      (sources."lzma-native-6.0.1" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."map-age-cleaner-0.1.3"
+      sources."map-obj-1.0.1"
+      (sources."matcher-3.0.0" // {
+        dependencies = [
+          sources."escape-string-regexp-4.0.0"
+        ];
+      })
+      sources."mem-4.3.0"
+      (sources."meow-3.7.0" // {
+        dependencies = [
+          sources."find-up-1.1.2"
+          sources."load-json-file-1.1.0"
+          sources."path-exists-2.1.0"
+          sources."path-type-1.1.0"
+          sources."read-pkg-1.1.0"
+          sources."read-pkg-up-1.0.1"
+          sources."strip-bom-2.0.0"
+        ];
+      })
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
+      sources."mimic-fn-2.1.0"
+      sources."mimic-response-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."minipass-2.9.0"
+      sources."minizlib-1.3.3"
+      sources."mkdirp-0.5.5"
+      sources."ms-2.0.0"
+      sources."mute-stream-0.0.8"
+      (sources."needle-2.6.0" // {
+        dependencies = [
+          sources."debug-3.2.7"
+          sources."ms-2.1.3"
+        ];
+      })
+      sources."nice-try-1.0.5"
+      (sources."node-abi-2.21.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."node-addon-api-1.7.2"
+      sources."node-fetch-2.6.1"
+      (sources."node-gyp-7.1.2" // {
+        dependencies = [
+          sources."nopt-5.0.0"
+          sources."rimraf-3.0.2"
+        ];
+      })
+      (sources."node-pre-gyp-0.11.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+          sources."tar-4.4.13"
+        ];
+      })
+      sources."nopt-4.0.3"
+      (sources."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."normalize-url-4.5.0"
+      sources."npm-bundled-1.1.1"
+      (sources."npm-conf-1.1.3" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."npm-normalize-package-bin-1.0.1"
+      sources."npm-packlist-1.4.8"
+      (sources."npm-run-path-2.0.2" // {
+        dependencies = [
+          sources."path-key-2.0.1"
+        ];
+      })
+      sources."npmlog-4.1.2"
+      (sources."nugget-2.0.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+        ];
+      })
+      sources."number-is-nan-1.0.1"
+      sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
+      sources."object-keys-0.4.0"
+      sources."once-1.4.0"
+      sources."onetime-5.1.2"
+      sources."open-7.4.2"
+      sources."ora-5.4.0"
+      sources."os-homedir-1.0.2"
+      sources."os-tmpdir-1.0.2"
+      sources."osenv-0.1.5"
+      sources."p-cancelable-2.1.0"
+      sources."p-defer-1.0.0"
+      sources."p-finally-1.0.0"
+      sources."p-is-promise-2.1.0"
+      sources."p-limit-1.3.0"
+      sources."p-locate-2.0.0"
+      sources."p-try-1.0.0"
+      sources."parse-author-2.0.0"
+      sources."parse-json-2.2.0"
+      sources."parse-ms-2.1.0"
+      sources."parse-passwd-1.0.0"
+      sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
+      sources."path-parse-1.0.6"
+      sources."path-type-2.0.0"
+      sources."pend-1.2.0"
+      sources."performance-now-2.1.0"
+      sources."pify-2.3.0"
+      sources."pinkie-2.0.4"
+      sources."pinkie-promise-2.0.1"
+      (sources."pkg-dir-4.2.0" // {
+        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."p-try-2.2.0"
+          sources."path-exists-4.0.0"
+        ];
+      })
+      sources."plist-3.0.2"
+      sources."prepend-http-2.0.0"
+      sources."pretty-bytes-1.0.4"
+      sources."pretty-ms-7.0.1"
+      sources."process-nextick-args-2.0.1"
+      sources."progress-2.0.3"
+      sources."progress-stream-1.2.0"
+      sources."proto-list-1.2.4"
+      sources."psl-1.8.0"
+      sources."pump-3.0.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.5.2"
+      sources."quick-lru-5.1.1"
+      sources."rc-1.2.8"
+      sources."rcedit-2.3.0"
+      sources."read-pkg-2.0.0"
+      (sources."read-pkg-up-2.0.0" // {
+        dependencies = [
+          sources."find-up-2.1.0"
+        ];
+      })
+      sources."readable-stream-3.6.0"
+      sources."redent-1.0.0"
+      sources."repeating-2.0.1"
+      sources."request-2.88.2"
+      sources."require-directory-2.1.1"
+      sources."resolve-1.20.0"
+      sources."resolve-alpn-1.0.0"
+      sources."resolve-dir-1.0.1"
+      sources."resolve-package-1.0.1"
+      sources."responselike-2.0.0"
+      sources."restore-cursor-3.1.0"
+      sources."rimraf-2.7.1"
+      sources."roarr-2.15.4"
+      sources."run-async-2.4.1"
+      sources."rxjs-6.6.7"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."sax-1.2.4"
+      sources."semver-7.3.5"
+      sources."semver-compare-1.0.0"
+      sources."serialize-error-7.0.1"
+      sources."set-blocking-2.0.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-3.0.3"
+      sources."single-line-log-1.1.2"
+      sources."source-map-0.6.1"
+      sources."source-map-support-0.5.19"
+      sources."spdx-correct-3.1.1"
+      sources."spdx-exceptions-2.3.0"
+      sources."spdx-expression-parse-3.0.1"
+      sources."spdx-license-ids-3.0.7"
+      sources."speedometer-0.1.4"
+      sources."sprintf-js-1.1.2"
+      sources."sshpk-1.16.1"
+      (sources."string-width-1.0.2" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-6.0.0"
+      sources."strip-bom-3.0.0"
+      sources."strip-eof-1.0.0"
+      sources."strip-indent-1.0.1"
+      sources."strip-json-comments-2.0.1"
+      sources."strip-outer-1.0.1"
+      sources."sudo-prompt-9.2.1"
+      sources."sumchecker-3.0.1"
+      sources."supports-color-7.2.0"
+      (sources."tar-6.1.0" // {
+        dependencies = [
+          sources."chownr-2.0.0"
+          sources."fs-minipass-2.1.0"
+          sources."minipass-3.1.3"
+          sources."minizlib-2.1.2"
+          sources."mkdirp-1.0.4"
+          sources."yallist-4.0.0"
+        ];
+      })
+      sources."throttleit-0.0.2"
+      sources."through-2.3.8"
+      (sources."through2-0.2.3" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.1.14"
+          sources."string_decoder-0.10.31"
+        ];
+      })
+      sources."tmp-0.0.33"
+      sources."to-readable-stream-1.0.0"
+      sources."tough-cookie-2.5.0"
+      sources."trim-newlines-1.0.0"
+      sources."trim-repeated-1.0.0"
+      sources."tslib-1.14.1"
+      sources."tunnel-0.0.6"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."type-fest-0.13.1"
+      sources."universalify-0.1.2"
+      sources."uri-js-4.4.1"
+      sources."url-parse-lax-3.0.0"
+      sources."username-5.1.0"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-3.4.0"
+      sources."validate-npm-package-license-3.0.4"
+      sources."verror-1.10.0"
+      sources."wcwidth-1.0.1"
+      sources."which-2.0.2"
+      sources."wide-align-1.1.3"
+      (sources."wrap-ansi-7.0.0" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."xmlbuilder-9.0.7"
+      sources."xmldom-0.5.0"
+      sources."xtend-2.1.2"
+      sources."y18n-5.0.6"
+      sources."yallist-3.1.1"
+      (sources."yargs-16.2.0" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+        ];
+      })
+      sources."yargs-parser-20.2.7"
+      (sources."yarn-or-npm-3.0.1" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+          sources."path-key-2.0.1"
+          sources."semver-5.7.1"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
+        ];
+      })
+      sources."yauzl-2.10.0"
+      sources."yocto-queue-0.1.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A complete tool for building modern Electron applications";
+      homepage = "https://github.com/electron-userland/electron-forge#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   elm-oracle = nodeEnv.buildNodePackage {
     name = "elm-oracle";
     packageName = "elm-oracle";
@@ -71800,46 +74010,57 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/core-7.12.16"
-      sources."@babel/generator-7.12.15"
+      sources."@babel/compat-data-7.13.12"
+      (sources."@babel/core-7.13.14" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/generator-7.13.9"
       sources."@babel/helper-annotate-as-pure-7.12.13"
+      (sources."@babel/helper-compilation-targets-7.13.13" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-member-expression-to-functions-7.12.16"
-      sources."@babel/helper-module-imports-7.12.13"
-      sources."@babel/helper-module-transforms-7.12.13"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-plugin-utils-7.12.13"
-      sources."@babel/helper-replace-supers-7.12.13"
-      sources."@babel/helper-simple-access-7.12.13"
+      sources."@babel/helper-plugin-utils-7.13.0"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/helpers-7.12.13"
-      sources."@babel/highlight-7.12.13"
-      sources."@babel/parser-7.12.16"
-      sources."@babel/plugin-proposal-object-rest-spread-7.12.13"
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helpers-7.13.10"
+      sources."@babel/highlight-7.13.10"
+      sources."@babel/parser-7.13.13"
+      sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
       sources."@babel/plugin-syntax-jsx-7.12.13"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.12.13"
-      sources."@babel/plugin-transform-parameters-7.12.13"
-      sources."@babel/plugin-transform-react-jsx-7.12.16"
+      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-parameters-7.13.0"
+      sources."@babel/plugin-transform-react-jsx-7.13.12"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.12.13"
-      sources."@babel/types-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@sindresorhus/is-4.0.0"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/responselike-1.0.0"
       sources."@types/yoga-layout-1.9.2"
       sources."ajv-6.12.6"
-      (sources."ansi-escapes-4.3.1" // {
+      (sources."ansi-escapes-4.3.2" // {
         dependencies = [
-          sources."type-fest-0.11.0"
+          sources."type-fest-0.21.3"
         ];
       })
       sources."ansi-regex-5.0.0"
@@ -71849,8 +74070,9 @@ in
       sources."astral-regex-2.0.0"
       sources."atomically-1.7.0"
       sources."auto-bind-4.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
+      sources."browserslist-4.16.3"
       sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.1" // {
         dependencies = [
@@ -71866,6 +74088,7 @@ in
           sources."quick-lru-4.0.1"
         ];
       })
+      sources."caniuse-lite-1.0.30001207"
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -71876,11 +74099,12 @@ in
       sources."code-excerpt-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
+      sources."colorette-1.2.2"
       sources."commondir-1.0.1"
       sources."concat-map-0.0.1"
       (sources."conf-7.1.2" // {
         dependencies = [
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
         ];
       })
       sources."convert-source-map-1.7.0"
@@ -71899,13 +74123,15 @@ in
           sources."mimic-response-3.1.0"
         ];
       })
-      sources."defer-to-connect-2.0.0"
+      sources."defer-to-connect-2.0.1"
       sources."dot-prop-5.3.0"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
-      sources."env-paths-2.2.0"
+      sources."env-paths-2.2.1"
       sources."error-ex-1.3.2"
+      sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."execa-1.0.0"
       sources."fast-deep-equal-3.1.3"
@@ -71918,13 +74144,13 @@ in
       sources."get-stream-4.1.0"
       sources."glob-7.1.6"
       sources."globals-11.12.0"
-      sources."got-11.8.1"
+      sources."got-11.8.2"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."hosted-git-info-2.8.8"
       sources."http-cache-semantics-4.1.0"
-      sources."http2-wrapper-1.0.0-beta.5.2"
+      sources."http2-wrapper-1.0.3"
       sources."import-jsx-4.0.0"
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
@@ -71953,7 +74179,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
       sources."is-core-module-2.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-obj-2.0.0"
       sources."is-plain-obj-1.1.0"
@@ -71971,7 +74197,7 @@ in
       sources."kind-of-6.0.3"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."loose-envify-1.4.0"
       sources."lowercase-keys-2.0.0"
       sources."lru-cache-6.0.0"
@@ -71981,7 +74207,7 @@ in
         ];
       })
       sources."map-age-cleaner-0.1.3"
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       sources."mem-6.1.1"
       (sources."meow-7.1.1" // {
         dependencies = [
@@ -71996,6 +74222,7 @@ in
       sources."minimist-options-4.1.0"
       sources."ms-2.1.2"
       sources."nice-try-1.0.5"
+      sources."node-releases-1.1.71"
       sources."normalize-package-data-2.5.0"
       sources."normalize-url-4.5.0"
       sources."npm-run-path-2.0.2"
@@ -72006,7 +74233,7 @@ in
           sources."mimic-fn-2.1.0"
         ];
       })
-      sources."p-cancelable-2.0.0"
+      sources."p-cancelable-2.1.0"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
@@ -72088,7 +74315,7 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."strip-eof-1.0.0"
       sources."strip-indent-3.0.0"
@@ -72109,7 +74336,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."yallist-4.0.0"
       sources."yargs-parser-18.1.3"
       sources."yoga-layout-prebuilt-1.10.0"
@@ -72149,20 +74376,20 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@fluentui/date-time-utilities-7.9.0"
-      sources."@fluentui/dom-utilities-1.1.1"
-      sources."@fluentui/keyboard-key-0.2.13"
-      sources."@fluentui/react-7.160.0"
-      sources."@fluentui/react-focus-7.17.4"
-      sources."@fluentui/react-window-provider-1.0.1"
-      sources."@fluentui/theme-1.7.3"
+      sources."@fluentui/date-time-utilities-7.9.1"
+      sources."@fluentui/dom-utilities-1.1.2"
+      sources."@fluentui/keyboard-key-0.2.16"
+      sources."@fluentui/react-7.165.2"
+      sources."@fluentui/react-focus-7.17.6"
+      sources."@fluentui/react-window-provider-1.0.2"
+      sources."@fluentui/theme-1.7.4"
       (sources."@gulp-sourcemaps/identity-map-1.0.2" // {
         dependencies = [
           sources."normalize-path-2.1.1"
@@ -72173,7 +74400,7 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."@microsoft/load-themed-styles-1.10.147"
+      sources."@microsoft/load-themed-styles-1.10.155"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -72191,7 +74418,7 @@ in
       sources."@types/connect-3.4.34"
       sources."@types/engine.io-3.1.5"
       sources."@types/express-4.17.8"
-      sources."@types/express-serve-static-core-4.17.18"
+      sources."@types/express-serve-static-core-4.17.19"
       sources."@types/fancy-log-1.3.0"
       sources."@types/glob-7.1.3"
       sources."@types/hls.js-0.13.1"
@@ -72200,7 +74427,7 @@ in
       sources."@types/lodash-4.14.161"
       sources."@types/material-design-lite-1.1.16"
       sources."@types/mime-1.3.2"
-      sources."@types/minimatch-3.0.3"
+      sources."@types/minimatch-3.0.4"
       sources."@types/minimist-1.2.0"
       sources."@types/mithril-2.0.3"
       sources."@types/mkdirp-1.0.1"
@@ -72209,7 +74436,7 @@ in
       sources."@types/node-14.11.1"
       sources."@types/pg-7.14.5"
       sources."@types/pg-types-2.2.0"
-      sources."@types/qs-6.9.5"
+      sources."@types/qs-6.9.6"
       sources."@types/range-parser-1.2.3"
       (sources."@types/request-2.48.5" // {
         dependencies = [
@@ -72222,13 +74449,13 @@ in
       sources."@types/sqlite3-3.1.6"
       sources."@types/tough-cookie-4.0.0"
       sources."@types/url-join-4.0.0"
-      sources."@uifabric/foundation-7.9.24"
-      sources."@uifabric/icons-7.5.21"
-      sources."@uifabric/merge-styles-7.19.1"
-      sources."@uifabric/react-hooks-7.13.11"
-      sources."@uifabric/set-version-7.0.23"
-      sources."@uifabric/styling-7.18.0"
-      sources."@uifabric/utilities-7.33.4"
+      sources."@uifabric/foundation-7.9.26"
+      sources."@uifabric/icons-7.5.23"
+      sources."@uifabric/merge-styles-7.19.2"
+      sources."@uifabric/react-hooks-7.14.0"
+      sources."@uifabric/set-version-7.0.24"
+      sources."@uifabric/styling-7.19.0"
+      sources."@uifabric/utilities-7.33.5"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
       sources."@webassemblyjs/helper-api-error-1.9.0"
@@ -72329,7 +74556,7 @@ in
       sources."asn1-0.2.4"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       (sources."assert-1.5.0" // {
@@ -72358,7 +74585,7 @@ in
       })
       sources."bach-1.2.0"
       sources."backo2-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -72377,7 +74604,7 @@ in
       sources."blob-0.0.5"
       sources."block-stream-0.0.9"
       sources."bluebird-3.7.2"
-      sources."bn.js-5.1.3"
+      sources."bn.js-5.2.0"
       sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -72407,7 +74634,7 @@ in
         ];
       })
       sources."bytes-3.1.0"
-      (sources."cacache-15.0.5" // {
+      (sources."cacache-15.0.6" // {
         dependencies = [
           sources."chownr-2.0.0"
           sources."fs-minipass-2.1.0"
@@ -72526,13 +74753,17 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      sources."copy-props-2.0.4"
+      (sources."copy-props-2.0.5" // {
+        dependencies = [
+          sources."is-plain-object-5.0.0"
+        ];
+      })
       sources."core-js-2.6.12"
       sources."core-util-is-1.0.2"
       sources."crc-3.8.0"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."create-hash-1.2.0"
@@ -72586,7 +74817,7 @@ in
       sources."diff-4.0.2"
       (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."difunc-0.0.4"
@@ -72607,7 +74838,7 @@ in
       sources."ee-first-1.1.1"
       (sources."elliptic-6.5.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
           sources."inherits-2.0.4"
         ];
       })
@@ -72657,7 +74888,7 @@ in
       sources."etag-1.8.1"
       sources."event-emitter-0.3.5"
       sources."eventemitter3-2.0.3"
-      sources."events-3.2.0"
+      sources."events-3.3.0"
       sources."evp_bytestokey-1.0.3"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -72683,7 +74914,7 @@ in
       sources."express-openapi-7.0.1"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.2.0"
+          sources."type-2.5.0"
         ];
       })
       sources."extend-3.0.2"
@@ -72705,7 +74936,7 @@ in
       sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-1.1.4"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."figgy-pudding-3.5.2"
       sources."figures-2.0.0"
       sources."file-uri-to-path-1.0.0"
@@ -72779,7 +75010,7 @@ in
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       (sources."glob-stream-6.1.0" // {
         dependencies = [
           sources."glob-parent-3.1.0"
@@ -72845,7 +75076,7 @@ in
       })
       sources."has-cors-1.1.0"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-unicode-2.0.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -72910,7 +75141,7 @@ in
       sources."is-negated-glob-1.0.0"
       sources."is-number-7.0.0"
       sources."is-path-cwd-2.2.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-plain-object-2.0.4"
       sources."is-promise-2.2.2"
       sources."is-relative-1.0.0"
@@ -72947,7 +75178,7 @@ in
         ];
       })
       sources."jsprim-1.4.1"
-      sources."just-debounce-1.0.0"
+      sources."just-debounce-1.1.0"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
       sources."last-run-1.1.1"
@@ -73026,12 +75257,12 @@ in
       sources."micromatch-4.0.2"
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
@@ -73196,7 +75427,7 @@ in
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
       sources."object.reduce-1.0.1"
-      sources."office-ui-fabric-react-7.160.0"
+      sources."office-ui-fabric-react-7.165.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -73206,7 +75437,7 @@ in
           sources."openapi-types-7.2.3"
         ];
       })
-      (sources."openapi-framework-7.3.0" // {
+      (sources."openapi-framework-7.5.0" // {
         dependencies = [
           sources."openapi-types-7.2.3"
         ];
@@ -73216,17 +75447,17 @@ in
           sources."openapi-types-7.2.3"
         ];
       })
-      (sources."openapi-request-coercer-7.2.3" // {
+      (sources."openapi-request-coercer-7.5.0" // {
         dependencies = [
           sources."openapi-types-7.2.3"
         ];
       })
-      (sources."openapi-request-validator-7.3.0" // {
+      (sources."openapi-request-validator-7.4.0" // {
         dependencies = [
           sources."openapi-types-7.2.3"
         ];
       })
-      (sources."openapi-response-validator-7.2.3" // {
+      (sources."openapi-response-validator-7.4.0" // {
         dependencies = [
           sources."openapi-types-7.2.3"
         ];
@@ -73343,7 +75574,7 @@ in
       sources."psl-1.8.0"
       (sources."public-encrypt-4.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."pump-3.0.0"
@@ -73356,7 +75587,7 @@ in
       sources."qs-6.7.0"
       sources."querystring-0.2.0"
       sources."querystring-es3-0.2.1"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."randombytes-2.1.0"
       sources."randomfill-1.0.4"
       sources."range-parser-1.2.1"
@@ -73413,7 +75644,7 @@ in
       sources."restore-cursor-2.0.0"
       sources."ret-0.1.15"
       sources."reusify-1.0.4"
-      sources."rfdc-1.2.0"
+      sources."rfdc-1.3.0"
       sources."rimraf-2.7.1"
       sources."ripemd160-2.0.2"
       sources."run-async-2.4.1"
@@ -73423,11 +75654,11 @@ in
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-1.32.7"
+      sources."sass-1.32.8"
       sources."sax-1.2.4"
       sources."scheduler-0.19.1"
       sources."schema-utils-2.7.1"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."semver-greatest-satisfied-range-1.1.0"
       (sources."send-0.17.1" // {
         dependencies = [
@@ -73591,7 +75822,7 @@ in
       sources."sver-compat-1.5.0"
       sources."swagger-schema-official-2.0.0-bab6bed"
       sources."swagger-ui-dist-3.34.0"
-      sources."tail-2.2.0"
+      sources."tail-2.2.1"
       sources."tapable-1.1.3"
       (sources."tar-4.4.13" // {
         dependencies = [
@@ -73599,7 +75830,7 @@ in
           sources."yallist-3.1.1"
         ];
       })
-      (sources."terser-5.5.1" // {
+      (sources."terser-5.6.1" // {
         dependencies = [
           sources."source-map-0.7.3"
         ];
@@ -73784,7 +76015,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."y18n-3.2.2"
@@ -73830,20 +76061,24 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "7.19.0";
+    version = "7.23.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-7.19.0.tgz";
-      sha512 = "CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz";
+      sha512 = "kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@eslint/eslintrc-0.3.0"
+      (sources."@eslint/eslintrc-0.4.0" // {
+        dependencies = [
+          sources."globals-12.4.0"
+        ];
+      })
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
       sources."ajv-6.12.6"
@@ -73852,8 +76087,9 @@ in
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."astral-regex-2.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       (sources."chalk-4.1.0" // {
         dependencies = [
@@ -73902,30 +76138,44 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."file-entry-cache-6.0.0"
+      sources."file-entry-cache-6.0.1"
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
       sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
+      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      sources."globals-12.4.0"
+      sources."glob-parent-5.1.2"
+      (sources."globals-13.7.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
+      sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      sources."is-boolean-object-1.1.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
+      sources."is-number-object-1.0.4"
+      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
       sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
       sources."ms-2.1.2"
@@ -73942,7 +76192,7 @@ in
       sources."require-from-string-2.0.2"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -73953,13 +76203,13 @@ in
         ];
       })
       sources."sprintf-js-1.0.3"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.1.0"
+          sources."ajv-8.0.5"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -73967,7 +76217,7 @@ in
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
       sources."uri-js-4.4.1"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."which-2.0.2"
       sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
@@ -73986,22 +76236,26 @@ in
   eslint_d = nodeEnv.buildNodePackage {
     name = "eslint_d";
     packageName = "eslint_d";
-    version = "10.0.2";
+    version = "10.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-10.0.2.tgz";
-      sha512 = "owgGugHDhfzqe2tjbkz+Htv4stRwFfXJEG6lc+c9dKxwgAvuYNurldosLJ2gyC66Uv/cPf4IS70wuUTmNLTrOQ==";
+      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-10.0.4.tgz";
+      sha512 = "DEJaGxP6VDs3byYKQYw6Py8l2b1KH9S5vUo4IjvhWIEcdo5gjNkJjjzUCoExTIb0Bo7/GbKyNRI/dctUQ5f+7w==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."has-flag-3.0.0"
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@eslint/eslintrc-0.3.0"
+      (sources."@eslint/eslintrc-0.4.0" // {
+        dependencies = [
+          sources."globals-12.4.0"
+        ];
+      })
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
       sources."ajv-6.12.6"
@@ -74010,8 +76264,9 @@ in
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."astral-regex-2.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       (sources."chalk-4.1.0" // {
         dependencies = [
@@ -74032,7 +76287,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.19.0"
+      sources."eslint-7.23.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
@@ -74061,30 +76316,44 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."file-entry-cache-6.0.0"
+      sources."file-entry-cache-6.0.1"
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
       sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
+      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      sources."globals-12.4.0"
+      sources."glob-parent-5.1.2"
+      (sources."globals-13.7.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
+      sources."has-1.0.3"
       sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      sources."is-boolean-object-1.1.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
+      sources."is-number-object-1.0.4"
+      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
       sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
       sources."ms-2.1.2"
@@ -74102,7 +76371,7 @@ in
       sources."require-from-string-2.0.2"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -74113,13 +76382,13 @@ in
         ];
       })
       sources."sprintf-js-1.0.3"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-8.1.1"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.1.0"
+          sources."ajv-8.0.5"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -74127,7 +76396,7 @@ in
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
       sources."uri-js-4.4.1"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."which-2.0.2"
       sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
@@ -74146,14 +76415,11 @@ in
   esy = nodeEnv.buildNodePackage {
     name = "esy";
     packageName = "esy";
-    version = "0.6.7";
+    version = "0.6.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/esy/-/esy-0.6.7.tgz";
-      sha512 = "G/C0wXDQy19eDqlFNmPg2kHmrllUez9deZd1OOIk/VTKtc75STdeE/Nl1NusVY+La/+eCtovNqk0/ZAb4Mg8gw==";
+      url = "https://registry.npmjs.org/esy/-/esy-0.6.10.tgz";
+      sha512 = "O+mWNPB9NJqDr3CA1PUbWUO1ZSy53ksZWivGrvbquATR5INlp3CYguwkq4BzZACg1s1bVYyhr7byjB/l1nuGRA==";
     };
-    dependencies = [
-      sources."esy-solve-cudf-0.1.10"
-    ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "Package builder for esy.";
@@ -74166,66 +76432,71 @@ in
   expo-cli = nodeEnv.buildNodePackage {
     name = "expo-cli";
     packageName = "expo-cli";
-    version = "4.1.6";
+    version = "4.3.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.1.6.tgz";
-      sha512 = "C6UvtUWCsJyFOah57CKNeSP+tZeJDfED7dyHIWDQ+cQx2EYzNQVt4GIOu63u1Hzf3WArehxMroTmMayHCdhTeA==";
+      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.3.4.tgz";
+      sha512 = "feD7OAnzf7PKZgi4VpEpkuI8TYdplPaQVILoS+6ejMLvjjgDOTPh9Tn47xdox35Q3S1VPWS6qivNvOXjhUNDDQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.12.13"
+      sources."@babel/compat-data-7.13.12"
       (sources."@babel/core-7.9.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/generator-7.12.15"
+      sources."@babel/generator-7.13.9"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.12.16" // {
+      (sources."@babel/helper-compilation-targets-7.13.13" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-create-class-features-plugin-7.13.11"
+      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
+      (sources."@babel/helper-define-polyfill-provider-0.1.5" // {
+        dependencies = [
+          sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.12.16"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.16"
-      sources."@babel/helper-explode-assignable-expression-7.12.13"
+      sources."@babel/helper-explode-assignable-expression-7.13.0"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.12.13"
-      sources."@babel/helper-member-expression-to-functions-7.12.16"
-      sources."@babel/helper-module-imports-7.12.13"
-      sources."@babel/helper-module-transforms-7.12.13"
+      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-plugin-utils-7.12.13"
-      sources."@babel/helper-remap-async-to-generator-7.12.13"
-      sources."@babel/helper-replace-supers-7.12.13"
-      sources."@babel/helper-simple-access-7.12.13"
+      sources."@babel/helper-plugin-utils-7.13.0"
+      sources."@babel/helper-remap-async-to-generator-7.13.0"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/helper-validator-option-7.12.16"
-      sources."@babel/helper-wrap-function-7.12.13"
-      sources."@babel/helpers-7.12.13"
-      (sources."@babel/highlight-7.12.13" // {
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helper-wrap-function-7.13.0"
+      sources."@babel/helpers-7.13.10"
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.12.16"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.13"
+      sources."@babel/parser-7.13.13"
+      sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
       sources."@babel/plugin-proposal-class-properties-7.12.13"
-      sources."@babel/plugin-proposal-dynamic-import-7.12.16"
+      sources."@babel/plugin-proposal-dynamic-import-7.13.8"
       sources."@babel/plugin-proposal-export-default-from-7.12.13"
       sources."@babel/plugin-proposal-export-namespace-from-7.12.13"
-      sources."@babel/plugin-proposal-json-strings-7.12.13"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.12.13"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.12.13"
+      sources."@babel/plugin-proposal-json-strings-7.13.8"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.13.8"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.13.8"
       sources."@babel/plugin-proposal-numeric-separator-7.12.13"
-      sources."@babel/plugin-proposal-object-rest-spread-7.12.13"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.12.13"
-      sources."@babel/plugin-proposal-optional-chaining-7.12.16"
-      sources."@babel/plugin-proposal-private-methods-7.12.13"
+      sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.13.8"
+      sources."@babel/plugin-proposal-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-private-methods-7.13.0"
       sources."@babel/plugin-proposal-unicode-property-regex-7.12.13"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
@@ -74243,79 +76514,73 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-top-level-await-7.12.13"
       sources."@babel/plugin-syntax-typescript-7.12.13"
-      sources."@babel/plugin-transform-arrow-functions-7.12.13"
-      sources."@babel/plugin-transform-async-to-generator-7.12.13"
+      sources."@babel/plugin-transform-arrow-functions-7.13.0"
+      sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
       sources."@babel/plugin-transform-block-scoping-7.12.13"
-      sources."@babel/plugin-transform-classes-7.12.13"
-      sources."@babel/plugin-transform-computed-properties-7.12.13"
-      sources."@babel/plugin-transform-destructuring-7.12.13"
+      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-computed-properties-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.0"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
-      sources."@babel/plugin-transform-flow-strip-types-7.12.13"
-      sources."@babel/plugin-transform-for-of-7.12.13"
+      sources."@babel/plugin-transform-flow-strip-types-7.13.0"
+      sources."@babel/plugin-transform-for-of-7.13.0"
       sources."@babel/plugin-transform-function-name-7.12.13"
       sources."@babel/plugin-transform-literals-7.12.13"
       sources."@babel/plugin-transform-member-expression-literals-7.12.13"
-      sources."@babel/plugin-transform-modules-amd-7.12.13"
-      sources."@babel/plugin-transform-modules-commonjs-7.12.13"
-      sources."@babel/plugin-transform-modules-systemjs-7.12.13"
-      sources."@babel/plugin-transform-modules-umd-7.12.13"
+      sources."@babel/plugin-transform-modules-amd-7.13.0"
+      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-systemjs-7.13.8"
+      sources."@babel/plugin-transform-modules-umd-7.13.0"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.13"
       sources."@babel/plugin-transform-new-target-7.12.13"
       sources."@babel/plugin-transform-object-assign-7.12.13"
       sources."@babel/plugin-transform-object-super-7.12.13"
-      sources."@babel/plugin-transform-parameters-7.12.13"
+      sources."@babel/plugin-transform-parameters-7.13.0"
       sources."@babel/plugin-transform-property-literals-7.12.13"
       sources."@babel/plugin-transform-react-display-name-7.12.13"
-      sources."@babel/plugin-transform-react-jsx-7.12.16"
+      sources."@babel/plugin-transform-react-jsx-7.13.12"
+      sources."@babel/plugin-transform-react-jsx-self-7.12.13"
       sources."@babel/plugin-transform-react-jsx-source-7.12.13"
       sources."@babel/plugin-transform-regenerator-7.12.13"
       sources."@babel/plugin-transform-reserved-words-7.12.13"
-      (sources."@babel/plugin-transform-runtime-7.12.15" // {
+      (sources."@babel/plugin-transform-runtime-7.13.10" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."semver-6.3.0"
         ];
       })
       sources."@babel/plugin-transform-shorthand-properties-7.12.13"
-      sources."@babel/plugin-transform-spread-7.12.13"
+      sources."@babel/plugin-transform-spread-7.13.0"
       sources."@babel/plugin-transform-sticky-regex-7.12.13"
-      sources."@babel/plugin-transform-template-literals-7.12.13"
+      sources."@babel/plugin-transform-template-literals-7.13.0"
       sources."@babel/plugin-transform-typeof-symbol-7.12.13"
-      sources."@babel/plugin-transform-typescript-7.12.16"
+      sources."@babel/plugin-transform-typescript-7.13.0"
       sources."@babel/plugin-transform-unicode-escapes-7.12.13"
       sources."@babel/plugin-transform-unicode-regex-7.12.13"
-      (sources."@babel/preset-env-7.12.16" // {
+      (sources."@babel/preset-env-7.12.17" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
       sources."@babel/preset-modules-0.1.4"
-      sources."@babel/preset-typescript-7.12.16"
-      sources."@babel/runtime-7.12.13"
+      sources."@babel/preset-typescript-7.12.17"
+      sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.12.13"
-      sources."@babel/types-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@expo/apple-utils-0.0.0-alpha.17"
-      sources."@expo/babel-preset-cli-0.2.18"
       sources."@expo/bunyan-4.0.0"
-      sources."@expo/config-3.3.28"
-      (sources."@expo/config-plugins-1.0.18" // {
-        dependencies = [
-          sources."slash-3.0.0"
-          sources."uuid-3.4.0"
-          sources."xcode-2.1.0"
-        ];
-      })
+      sources."@expo/config-3.3.34"
+      sources."@expo/config-plugins-1.0.24"
       sources."@expo/config-types-40.0.0-beta.2"
-      (sources."@expo/configure-splash-screen-0.3.3" // {
+      (sources."@expo/configure-splash-screen-0.3.4" // {
         dependencies = [
           sources."commander-5.1.0"
           sources."pngjs-5.0.0"
         ];
       })
-      (sources."@expo/dev-server-0.1.54" // {
+      (sources."@expo/dev-server-0.1.60" // {
         dependencies = [
           sources."body-parser-1.19.0"
           sources."bytes-3.1.0"
@@ -74326,60 +76591,62 @@ in
           sources."ms-2.0.0"
           sources."qs-6.7.0"
           sources."raw-body-2.4.0"
-          sources."serialize-error-6.0.0"
           sources."setprototypeof-1.1.1"
           sources."statuses-1.5.0"
-          sources."type-fest-0.12.0"
         ];
       })
-      sources."@expo/dev-tools-0.13.82"
-      (sources."@expo/image-utils-0.3.10" // {
+      sources."@expo/dev-tools-0.13.89"
+      (sources."@expo/devcert-1.0.0" // {
+        dependencies = [
+          sources."debug-3.2.7"
+          sources."rimraf-2.7.1"
+          sources."sudo-prompt-8.2.5"
+        ];
+      })
+      (sources."@expo/image-utils-0.3.12" // {
         dependencies = [
           sources."tempy-0.3.0"
         ];
       })
-      (sources."@expo/json-file-8.2.27" // {
+      (sources."@expo/json-file-8.2.28" // {
         dependencies = [
           sources."@babel/code-frame-7.10.4"
           sources."json5-1.0.1"
         ];
       })
-      sources."@expo/metro-config-0.1.54"
-      sources."@expo/osascript-2.0.24"
-      (sources."@expo/package-manager-0.0.38" // {
+      sources."@expo/metro-config-0.1.60"
+      sources."@expo/osascript-2.0.25"
+      (sources."@expo/package-manager-0.0.39" // {
         dependencies = [
           sources."npm-package-arg-7.0.0"
           sources."rimraf-3.0.2"
           sources."semver-5.7.1"
         ];
       })
-      (sources."@expo/plist-0.0.11" // {
+      (sources."@expo/plist-0.0.12" // {
         dependencies = [
           sources."xmlbuilder-14.0.0"
         ];
       })
       sources."@expo/results-1.0.0"
-      sources."@expo/schemer-1.3.26"
+      (sources."@expo/schemer-1.3.27" // {
+        dependencies = [
+          sources."ajv-5.5.2"
+          sources."fast-deep-equal-1.1.0"
+          sources."json-schema-traverse-0.3.1"
+        ];
+      })
       sources."@expo/simple-spinner-1.0.2"
       sources."@expo/spawn-async-1.5.0"
-      (sources."@expo/webpack-config-0.12.58" // {
+      (sources."@expo/webpack-config-0.12.64" // {
         dependencies = [
           sources."@babel/runtime-7.9.0"
-          sources."is-wsl-2.2.0"
           sources."react-refresh-0.8.3"
         ];
       })
-      (sources."@expo/xdl-59.0.22" // {
+      (sources."@expo/xcpretty-1.1.1" // {
         dependencies = [
-          sources."chownr-1.1.4"
-          sources."fs-minipass-1.2.7"
-          sources."indent-string-3.2.0"
-          sources."minipass-2.9.0"
-          sources."tar-4.4.6"
-          sources."uuid-3.3.2"
-          sources."xcode-2.1.0"
-          sources."xmldom-0.1.27"
-          sources."yallist-3.1.1"
+          sources."@babel/code-frame-7.10.4"
         ];
       })
       sources."@hapi/address-4.1.0"
@@ -74448,21 +76715,9 @@ in
       })
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.3"
+      sources."@npmcli/run-script-1.8.4"
       sources."@pmmmwh/react-refresh-webpack-plugin-0.3.3"
       sources."@react-native-community/cli-debugger-ui-4.13.1"
-      (sources."@react-native-community/cli-platform-ios-4.13.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-3.0.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-          sources."uuid-3.4.0"
-          sources."xcode-2.1.0"
-        ];
-      })
       (sources."@react-native-community/cli-server-api-4.9.0" // {
         dependencies = [
           sources."ultron-1.0.2"
@@ -74472,23 +76727,23 @@ in
       (sources."@react-native-community/cli-tools-4.13.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
+          sources."array-filter-0.0.1"
           sources."chalk-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
+          sources."is-wsl-1.1.0"
+          sources."open-6.4.0"
+          sources."shell-quote-1.6.1"
           sources."supports-color-7.2.0"
         ];
       })
       sources."@segment/loosely-validate-event-2.0.0"
-      sources."@sindresorhus/is-0.14.0"
-      sources."@szmarczak/http-timer-1.1.2"
+      sources."@sindresorhus/is-4.0.0"
+      sources."@szmarczak/http-timer-4.0.5"
       sources."@tootallnate/once-1.1.2"
       sources."@types/anymatch-1.3.1"
       sources."@types/cacheable-request-6.0.1"
-      sources."@types/configstore-2.1.1"
-      sources."@types/debug-0.0.30"
-      sources."@types/events-3.0.0"
-      sources."@types/get-port-3.2.0"
       sources."@types/glob-7.1.3"
       sources."@types/html-minifier-terser-5.1.1"
       sources."@types/http-cache-semantics-4.0.0"
@@ -74497,24 +76752,20 @@ in
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-schema-7.0.7"
       sources."@types/keyv-3.1.1"
-      sources."@types/lodash-4.14.168"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/mkdirp-0.5.2"
+      sources."@types/minimatch-3.0.4"
       sources."@types/node-9.6.61"
       sources."@types/q-1.5.4"
       sources."@types/responselike-1.0.0"
       sources."@types/retry-0.12.0"
-      sources."@types/rimraf-2.0.4"
       sources."@types/source-list-map-0.1.2"
-      sources."@types/tapable-1.0.6"
+      sources."@types/tapable-1.0.7"
       sources."@types/text-table-0.2.1"
-      sources."@types/tmp-0.0.33"
-      (sources."@types/uglify-js-3.12.0" // {
+      (sources."@types/uglify-js-3.13.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-4.41.26" // {
+      (sources."@types/webpack-4.41.27" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -74554,7 +76805,7 @@ in
       sources."agent-base-6.0.2"
       sources."agentkeepalive-4.1.4"
       sources."aggregate-error-3.1.0"
-      sources."ajv-5.5.2"
+      sources."ajv-6.12.6"
       sources."ajv-errors-1.0.1"
       sources."ajv-keywords-3.5.2"
       sources."alphanum-sort-1.0.2"
@@ -74566,16 +76817,14 @@ in
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
           sources."strip-ansi-5.2.0"
         ];
       })
       sources."ansi-colors-3.2.4"
-      (sources."ansi-escapes-4.3.1" // {
+      (sources."ansi-escapes-4.3.2" // {
         dependencies = [
-          sources."type-fest-0.11.0"
+          sources."type-fest-0.21.3"
         ];
       })
       sources."ansi-html-0.0.7"
@@ -74593,18 +76842,18 @@ in
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
-      sources."array-filter-0.0.1"
+      sources."array-filter-1.0.0"
       sources."array-flatten-1.1.1"
       sources."array-map-0.0.0"
       sources."array-reduce-0.0.0"
-      sources."array-union-1.0.2"
+      sources."array-union-2.1.0"
       sources."array-uniq-1.0.3"
       sources."array-unique-0.3.2"
       sources."arrify-2.0.1"
       sources."asn1-0.2.4"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       (sources."assert-1.5.0" // {
@@ -74621,18 +76870,26 @@ in
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
-      (sources."available-typed-arrays-1.0.2" // {
-        dependencies = [
-          sources."array-filter-1.0.0"
-        ];
-      })
+      sources."available-typed-arrays-1.0.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."axios-0.21.1"
       sources."axios-retry-3.1.9"
       sources."babel-extract-comments-1.0.0"
-      sources."babel-loader-8.1.0"
+      (sources."babel-loader-8.1.0" // {
+        dependencies = [
+          sources."json5-1.0.1"
+          sources."loader-utils-1.4.0"
+        ];
+      })
       sources."babel-plugin-dynamic-import-node-2.3.3"
+      (sources."babel-plugin-polyfill-corejs2-0.1.10" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."babel-plugin-polyfill-corejs3-0.1.7"
+      sources."babel-plugin-polyfill-regenerator-0.1.6"
       sources."babel-plugin-syntax-object-rest-spread-6.13.0"
       sources."babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0"
       sources."babel-plugin-transform-object-rest-spread-6.26.0"
@@ -74645,7 +76902,7 @@ in
       })
       sources."babylon-6.18.0"
       sources."backo2-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -74662,7 +76919,7 @@ in
       sources."bindings-1.5.0"
       sources."bluebird-3.7.2"
       sources."bmp-js-0.1.0"
-      sources."bn.js-5.1.3"
+      sources."bn.js-5.2.0"
       (sources."body-parser-1.18.3" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -74707,23 +76964,16 @@ in
       sources."builtin-status-codes-3.0.0"
       sources."builtins-1.0.3"
       sources."bytes-3.0.0"
-      (sources."cacache-15.0.5" // {
+      (sources."cacache-15.0.6" // {
         dependencies = [
           sources."minipass-3.1.3"
           sources."mkdirp-1.0.4"
-          sources."p-map-4.0.0"
           sources."rimraf-3.0.2"
         ];
       })
       sources."cache-base-1.0.1"
       sources."cacheable-lookup-5.0.4"
-      (sources."cacheable-request-6.1.0" // {
-        dependencies = [
-          sources."get-stream-5.2.0"
-          sources."lowercase-keys-2.0.0"
-          sources."normalize-url-4.5.0"
-        ];
-      })
+      sources."cacheable-request-7.0.1"
       sources."call-bind-1.0.2"
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
@@ -74732,12 +76982,12 @@ in
       (sources."camel-case-4.1.2" // {
         dependencies = [
           sources."pascal-case-3.1.2"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001185"
+      sources."caniuse-lite-1.0.30001207"
       sources."caseless-0.12.0"
       (sources."chalk-4.1.0" // {
         dependencies = [
@@ -74752,7 +77002,7 @@ in
       sources."chokidar-3.5.1"
       sources."chownr-2.0.0"
       sources."chrome-trace-event-1.0.2"
-      sources."ci-info-1.6.0"
+      sources."ci-info-3.1.1"
       sources."cipher-base-1.0.4"
       (sources."class-utils-0.3.6" // {
         dependencies = [
@@ -74777,22 +77027,29 @@ in
         ];
       })
       sources."clean-stack-2.2.0"
-      sources."clean-webpack-plugin-3.0.0"
+      (sources."clean-webpack-plugin-3.0.0" // {
+        dependencies = [
+          sources."array-union-1.0.2"
+          sources."del-4.1.1"
+          sources."globby-6.1.0"
+          sources."p-map-2.1.0"
+          sources."pify-2.3.0"
+          sources."rimraf-2.7.1"
+        ];
+      })
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
-      sources."cli-spinners-2.5.0"
+      sources."cli-spinners-2.6.0"
       sources."cli-table3-0.6.0"
       (sources."cliui-5.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
           sources."strip-ansi-5.2.0"
           sources."wrap-ansi-5.1.0"
         ];
       })
-      sources."clone-2.1.2"
+      sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."co-4.6.0"
       (sources."coa-2.0.2" // {
@@ -74805,8 +77062,8 @@ in
       sources."color-3.1.3"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.4"
-      sources."colorette-1.2.1"
+      sources."color-string-1.5.5"
+      sources."colorette-1.2.2"
       sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
       sources."command-exists-1.2.9"
@@ -74850,11 +77107,8 @@ in
       sources."copy-descriptor-0.1.1"
       (sources."copy-webpack-plugin-6.0.4" // {
         dependencies = [
-          sources."array-union-2.1.0"
           sources."find-cache-dir-3.3.1"
           sources."find-up-4.1.0"
-          sources."globby-11.0.2"
-          sources."loader-utils-2.0.0"
           sources."locate-path-5.0.0"
           sources."make-dir-3.1.0"
           (sources."p-locate-4.1.0" // {
@@ -74864,11 +77118,10 @@ in
           })
           sources."pkg-dir-4.2.0"
           sources."semver-6.3.0"
-          sources."slash-3.0.0"
         ];
       })
-      sources."core-js-3.8.3"
-      (sources."core-js-compat-3.8.3" // {
+      sources."core-js-3.10.0"
+      (sources."core-js-compat-3.10.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -74877,7 +77130,7 @@ in
       sources."cosmiconfig-5.2.1"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."create-hash-1.2.0"
@@ -74894,6 +77147,8 @@ in
       sources."css-declaration-sorter-4.0.1"
       (sources."css-loader-3.6.0" // {
         dependencies = [
+          sources."json5-1.0.1"
+          sources."loader-utils-1.4.0"
           sources."semver-6.3.0"
         ];
       })
@@ -74901,7 +77156,7 @@ in
         dependencies = [
           (sources."dom-serializer-0.2.2" // {
             dependencies = [
-              sources."domelementtype-2.1.0"
+              sources."domelementtype-2.2.0"
             ];
           })
           sources."domelementtype-1.3.1"
@@ -74916,15 +77171,15 @@ in
       })
       sources."css-what-3.4.2"
       sources."cssesc-3.0.0"
-      sources."cssnano-4.1.10"
-      sources."cssnano-preset-default-4.0.7"
+      sources."cssnano-4.1.11"
+      sources."cssnano-preset-default-4.0.8"
       sources."cssnano-util-get-arguments-4.0.0"
       sources."cssnano-util-get-match-4.0.0"
       sources."cssnano-util-raw-cache-4.0.1"
       sources."cssnano-util-same-parent-4.0.1"
       (sources."csso-4.2.0" // {
         dependencies = [
-          sources."css-tree-1.1.2"
+          sources."css-tree-1.1.3"
           sources."mdn-data-2.0.14"
           sources."source-map-0.6.1"
         ];
@@ -74937,52 +77192,41 @@ in
       sources."decache-4.4.0"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
-      sources."decompress-response-3.3.0"
+      (sources."decompress-response-6.0.0" // {
+        dependencies = [
+          sources."mimic-response-3.1.0"
+        ];
+      })
       sources."deep-equal-2.0.5"
       sources."deep-extend-0.6.0"
       sources."deep-scope-analyser-1.7.0"
       sources."deepmerge-4.2.2"
       sources."default-gateway-4.2.0"
-      (sources."defaults-1.0.3" // {
-        dependencies = [
-          sources."clone-1.0.4"
-        ];
-      })
-      sources."defer-to-connect-1.1.3"
+      sources."defaults-1.0.3"
+      sources."defer-to-connect-2.0.1"
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
-      (sources."del-4.1.1" // {
+      (sources."del-6.0.0" // {
         dependencies = [
-          sources."p-map-2.1.0"
-          sources."rimraf-2.7.1"
+          sources."rimraf-3.0.2"
         ];
       })
-      sources."delay-async-1.2.0"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."deprecated-decorator-0.1.6"
       sources."des.js-1.0.1"
       sources."destroy-1.0.4"
-      sources."detect-node-2.0.4"
+      sources."detect-node-2.0.5"
       (sources."detect-port-alt-1.1.6" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
         ];
       })
-      (sources."devcert-1.1.3" // {
-        dependencies = [
-          sources."@types/glob-5.0.36"
-          sources."@types/node-8.10.66"
-          sources."debug-3.2.7"
-          sources."rimraf-2.7.1"
-          sources."sudo-prompt-8.2.5"
-        ];
-      })
       (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."dir-glob-3.0.1"
@@ -74992,22 +77236,22 @@ in
       sources."dom-converter-0.2.0"
       (sources."dom-serializer-1.2.0" // {
         dependencies = [
-          sources."domhandler-4.0.0"
+          sources."domhandler-4.1.0"
         ];
       })
       sources."dom-walk-0.1.2"
       sources."domain-browser-1.2.0"
-      sources."domelementtype-2.1.0"
+      sources."domelementtype-2.2.0"
       sources."domhandler-3.3.0"
       sources."domino-2.1.6"
-      (sources."domutils-2.4.4" // {
+      (sources."domutils-2.5.1" // {
         dependencies = [
-          sources."domhandler-4.0.0"
+          sources."domhandler-4.1.0"
         ];
       })
       (sources."dot-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."dot-prop-5.3.0"
@@ -75016,13 +77260,13 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.663"
+      sources."electron-to-chromium-1.3.708"
       (sources."elliptic-6.5.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
       sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
       (sources."encoding-0.1.13" // {
@@ -75038,7 +77282,7 @@ in
       })
       sources."entities-2.2.0"
       sources."env-editor-0.4.2"
-      sources."env-paths-2.2.0"
+      sources."env-paths-2.2.1"
       sources."envinfo-7.5.0"
       sources."eol-0.9.1"
       sources."err-code-2.0.3"
@@ -75050,7 +77294,7 @@ in
       })
       sources."error-stack-parser-2.0.6"
       sources."errorhandler-1.5.1"
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
@@ -75067,11 +77311,16 @@ in
       sources."esutils-2.0.3"
       sources."etag-1.8.1"
       sources."eventemitter3-2.0.3"
-      sources."events-3.2.0"
-      sources."eventsource-1.0.7"
+      sources."events-3.3.0"
+      sources."eventsource-1.1.0"
       sources."evp_bytestokey-1.0.3"
       sources."exec-async-2.2.0"
-      sources."execa-1.0.0"
+      (sources."execa-1.0.0" // {
+        dependencies = [
+          sources."get-stream-4.1.0"
+          sources."is-stream-1.1.0"
+        ];
+      })
       sources."exif-parser-0.1.12"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -75093,7 +77342,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."expo-pwa-0.0.64" // {
+      (sources."expo-pwa-0.0.70" // {
         dependencies = [
           sources."commander-2.20.0"
         ];
@@ -75117,18 +77366,14 @@ in
         ];
       })
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-1.1.0"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."faye-websocket-0.10.0"
       sources."figgy-pudding-3.5.2"
       sources."figures-3.2.0"
-      (sources."file-loader-6.0.0" // {
-        dependencies = [
-          sources."loader-utils-2.0.0"
-        ];
-      })
+      sources."file-loader-6.0.0"
       sources."file-type-9.0.0"
       sources."file-uri-to-path-1.0.0"
       sources."filesize-6.1.0"
@@ -75143,18 +77388,28 @@ in
       sources."find-up-5.0.0"
       sources."find-yarn-workspace-root-2.0.0"
       sources."flush-write-stream-1.1.1"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."for-in-1.0.2"
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
       (sources."fork-ts-checker-webpack-plugin-4.1.6" // {
         dependencies = [
-          sources."braces-2.3.2"
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
           sources."chalk-2.4.2"
-          sources."extend-shallow-2.0.1"
-          sources."fill-range-4.0.0"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
           sources."micromatch-3.1.10"
           sources."semver-5.7.1"
           sources."to-regex-range-2.1.1"
@@ -75166,16 +77421,7 @@ in
       sources."freeport-async-2.0.0"
       sources."fresh-0.5.2"
       sources."from2-2.3.0"
-      (sources."fs-extra-9.0.0" // {
-        dependencies = [
-          (sources."jsonfile-6.1.0" // {
-            dependencies = [
-              sources."universalify-2.0.0"
-            ];
-          })
-          sources."universalify-1.0.0"
-        ];
-      })
+      sources."fs-extra-9.0.0"
       (sources."fs-minipass-2.1.0" // {
         dependencies = [
           sources."minipass-3.1.3"
@@ -75198,38 +77444,18 @@ in
       sources."get-intrinsic-1.1.1"
       sources."get-own-enumerable-property-symbols-3.0.2"
       sources."get-port-3.2.0"
-      sources."get-stream-4.1.0"
+      sources."get-stream-5.2.0"
       sources."get-value-2.0.6"
-      sources."getenv-0.7.0"
+      sources."getenv-1.0.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."global-4.4.0"
       sources."global-modules-2.0.0"
       sources."global-prefix-3.0.0"
       sources."globals-11.12.0"
-      (sources."globby-6.1.0" // {
-        dependencies = [
-          sources."pify-2.3.0"
-        ];
-      })
-      (sources."got-11.8.1" // {
-        dependencies = [
-          sources."@sindresorhus/is-4.0.0"
-          sources."@szmarczak/http-timer-4.0.5"
-          sources."cacheable-request-7.0.1"
-          sources."decompress-response-6.0.0"
-          sources."defer-to-connect-2.0.0"
-          sources."get-stream-5.2.0"
-          sources."json-buffer-3.0.1"
-          sources."keyv-4.0.3"
-          sources."lowercase-keys-2.0.0"
-          sources."mimic-response-3.1.0"
-          sources."normalize-url-4.5.0"
-          sources."p-cancelable-2.0.0"
-          sources."responselike-2.0.0"
-        ];
-      })
+      sources."globby-11.0.1"
+      sources."got-11.8.2"
       sources."graceful-fs-4.2.6"
       sources."graphql-0.13.2"
       (sources."graphql-tools-3.0.0" // {
@@ -75240,16 +77466,11 @@ in
       sources."gzip-size-5.1.1"
       sources."handle-thing-2.0.1"
       sources."har-schema-2.0.0"
-      (sources."har-validator-5.1.5" // {
-        dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
-        ];
-      })
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
+      sources."has-bigints-1.0.1"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-unicode-2.0.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -75279,19 +77500,19 @@ in
       sources."hpack.js-2.1.6"
       sources."hsl-regex-1.0.0"
       sources."hsla-regex-1.0.0"
-      sources."html-comment-regex-1.1.2"
       sources."html-entities-1.4.0"
-      (sources."html-loader-1.1.0" // {
+      sources."html-loader-1.1.0"
+      (sources."html-minifier-terser-5.1.1" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
+          sources."commander-4.1.1"
         ];
       })
-      (sources."html-minifier-terser-5.1.1" // {
+      (sources."html-webpack-plugin-4.3.0" // {
         dependencies = [
-          sources."commander-4.1.1"
+          sources."json5-1.0.1"
+          sources."loader-utils-1.4.0"
         ];
       })
-      sources."html-webpack-plugin-4.3.0"
       sources."htmlparser2-4.1.0"
       sources."http-cache-semantics-4.1.0"
       sources."http-deceiver-1.2.7"
@@ -75318,18 +77539,17 @@ in
         ];
       })
       sources."http-signature-1.2.0"
-      sources."http2-wrapper-1.0.0-beta.5.2"
+      sources."http2-wrapper-1.0.3"
       sources."https-browserify-1.0.0"
       sources."https-proxy-agent-5.0.0"
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.4.23"
       sources."icss-utils-4.1.1"
-      sources."idx-2.4.0"
       sources."ieee754-1.2.1"
       sources."iferr-0.1.5"
       sources."ignore-5.1.8"
       sources."ignore-walk-3.0.3"
-      sources."immer-7.0.9"
+      sources."immer-8.0.1"
       (sources."import-fresh-2.0.0" // {
         dependencies = [
           sources."resolve-from-3.0.0"
@@ -75363,10 +77583,10 @@ in
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
       sources."is-directory-0.3.1"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-function-1.0.2"
       sources."is-glob-4.0.1"
       (sources."is-invalid-path-0.1.0" // {
@@ -75382,14 +77602,34 @@ in
       sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-cwd-2.2.0"
-      sources."is-path-in-cwd-2.1.0"
-      sources."is-path-inside-2.1.0"
+      (sources."is-path-in-cwd-2.1.0" // {
+        dependencies = [
+          sources."is-path-inside-2.1.0"
+        ];
+      })
+      sources."is-path-inside-3.0.3"
       sources."is-plain-object-2.0.4"
       sources."is-port-reachable-2.0.1"
       (sources."is-reachable-4.0.0" // {
         dependencies = [
+          sources."@sindresorhus/is-0.14.0"
+          sources."@szmarczak/http-timer-1.1.2"
+          (sources."cacheable-request-6.1.0" // {
+            dependencies = [
+              sources."get-stream-5.2.0"
+              sources."lowercase-keys-2.0.0"
+            ];
+          })
+          sources."decompress-response-3.3.0"
+          sources."defer-to-connect-1.1.3"
+          sources."get-stream-4.1.0"
           sources."got-9.6.0"
+          sources."json-buffer-3.0.0"
+          sources."keyv-3.1.0"
+          sources."lowercase-keys-1.0.1"
+          sources."p-cancelable-1.1.0"
           sources."p-timeout-3.2.0"
+          sources."responselike-1.0.2"
         ];
       })
       sources."is-regex-1.1.2"
@@ -75398,17 +77638,16 @@ in
       sources."is-retry-allowed-1.2.0"
       sources."is-root-2.1.0"
       sources."is-set-2.0.2"
-      sources."is-stream-1.1.0"
+      sources."is-stream-2.0.0"
       sources."is-string-1.0.5"
-      sources."is-svg-3.0.0"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.4"
+      sources."is-typed-array-1.1.5"
       sources."is-typedarray-1.0.0"
       sources."is-valid-path-0.1.1"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."is-windows-1.0.2"
-      sources."is-wsl-1.1.0"
+      sources."is-wsl-2.2.0"
       sources."isarray-2.0.5"
       sources."isemail-3.2.0"
       sources."isexe-2.0.0"
@@ -75429,26 +77668,31 @@ in
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."jsesc-2.5.2"
-      sources."json-buffer-3.0.0"
+      sources."json-buffer-3.0.1"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       (sources."json-schema-deref-sync-0.13.0" // {
         dependencies = [
+          sources."clone-2.1.2"
           sources."md5-2.2.1"
         ];
       })
-      sources."json-schema-traverse-0.3.1"
+      sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-1.0.1"
       sources."json-stringify-safe-5.0.1"
       sources."json3-3.3.3"
       sources."json5-2.2.0"
-      sources."jsonfile-4.0.0"
+      (sources."jsonfile-6.1.0" // {
+        dependencies = [
+          sources."universalify-2.0.0"
+        ];
+      })
       sources."jsonify-0.0.0"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
       sources."keychain-1.3.0"
-      sources."keyv-3.1.0"
+      sources."keyv-4.0.3"
       sources."killable-1.0.1"
       sources."kind-of-6.0.3"
       sources."kleur-3.0.3"
@@ -75461,13 +77705,9 @@ in
         ];
       })
       sources."loader-runner-2.4.0"
-      (sources."loader-utils-1.4.0" // {
-        dependencies = [
-          sources."json5-1.0.1"
-        ];
-      })
+      sources."loader-utils-2.0.0"
       sources."locate-path-6.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash._reinterpolate-3.0.0"
       sources."lodash.assign-4.2.0"
       sources."lodash.debounce-4.0.8"
@@ -75486,10 +77726,10 @@ in
       sources."loose-envify-1.4.0"
       (sources."lower-case-2.0.2" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
-      sources."lowercase-keys-1.0.1"
+      sources."lowercase-keys-2.0.0"
       sources."lru-cache-6.0.0"
       (sources."make-dir-2.1.0" // {
         dependencies = [
@@ -75515,29 +77755,28 @@ in
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."metro-babel-transformer-0.58.0"
-      sources."metro-react-native-babel-preset-0.58.0"
-      sources."metro-react-native-babel-transformer-0.58.0"
-      sources."metro-source-map-0.58.0"
-      sources."metro-symbolicate-0.58.0"
+      sources."metro-babel-transformer-0.59.0"
+      sources."metro-react-native-babel-preset-0.59.0"
+      sources."metro-react-native-babel-transformer-0.59.0"
+      sources."metro-source-map-0.59.0"
+      sources."metro-symbolicate-0.59.0"
       sources."microevent.ts-0.1.1"
       sources."micromatch-4.0.2"
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
-      sources."mime-2.5.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-2.5.2"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."min-document-2.19.0"
       (sources."mini-css-extract-plugin-0.5.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
+          sources."json5-1.0.1"
+          sources."loader-utils-1.4.0"
           sources."schema-utils-1.0.0"
         ];
       })
@@ -75558,7 +77797,6 @@ in
       (sources."minipass-fetch-1.3.3" // {
         dependencies = [
           sources."minipass-3.1.3"
-          sources."minizlib-2.1.2"
         ];
       })
       (sources."minipass-flush-1.0.5" // {
@@ -75581,10 +77819,9 @@ in
           sources."minipass-3.1.3"
         ];
       })
-      (sources."minizlib-1.3.3" // {
+      (sources."minizlib-2.1.2" // {
         dependencies = [
-          sources."minipass-2.9.0"
-          sources."yallist-3.1.1"
+          sources."minipass-3.1.3"
         ];
       })
       sources."mississippi-3.0.0"
@@ -75619,11 +77856,11 @@ in
       sources."nice-try-1.0.5"
       (sources."no-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."node-fetch-2.6.1"
-      sources."node-forge-0.7.6"
+      sources."node-forge-0.10.0"
       (sources."node-gyp-7.1.2" // {
         dependencies = [
           sources."rimraf-3.0.2"
@@ -75638,10 +77875,10 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.70"
+      sources."node-releases-1.1.71"
       sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
-      sources."normalize-url-3.3.0"
+      sources."normalize-url-4.5.0"
       sources."npm-bundled-1.1.1"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
@@ -75651,17 +77888,20 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."npm-packlist-2.1.4"
-      (sources."npm-pick-manifest-6.1.0" // {
+      sources."npm-packlist-2.1.5"
+      (sources."npm-pick-manifest-6.1.1" // {
         dependencies = [
-          sources."npm-package-arg-8.1.0"
+          sources."hosted-git-info-4.0.2"
+          sources."npm-package-arg-8.1.2"
+          sources."semver-7.3.5"
         ];
       })
       (sources."npm-registry-fetch-9.0.0" // {
         dependencies = [
+          sources."hosted-git-info-4.0.2"
           sources."minipass-3.1.3"
-          sources."minizlib-2.1.2"
-          sources."npm-package-arg-8.1.0"
+          sources."npm-package-arg-8.1.2"
+          sources."semver-7.3.5"
         ];
       })
       sources."npm-run-path-2.0.2"
@@ -75669,7 +77909,7 @@ in
       sources."nth-check-1.0.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
-      sources."ob1-0.58.0"
+      sources."ob1-0.59.0"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
         dependencies = [
@@ -75685,22 +77925,26 @@ in
         ];
       })
       sources."object-inspect-1.9.0"
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
       sources."object.entries-1.1.3"
-      sources."object.getownpropertydescriptors-2.1.1"
+      sources."object.getownpropertydescriptors-2.1.2"
       sources."object.pick-1.3.0"
-      sources."object.values-1.1.2"
+      sources."object.values-1.1.3"
       sources."obuf-1.1.2"
       sources."omggif-1.0.10"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
-      sources."open-6.4.0"
-      sources."opn-5.5.0"
+      sources."open-7.4.2"
+      (sources."opn-5.5.0" // {
+        dependencies = [
+          sources."is-wsl-1.1.0"
+        ];
+      })
       sources."optimize-css-assets-webpack-plugin-5.0.4"
       sources."options-0.0.6"
       (sources."ora-3.4.0" // {
@@ -75715,45 +77959,55 @@ in
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      (sources."p-any-2.1.0" // {
-        dependencies = [
-          sources."p-cancelable-2.0.0"
-        ];
-      })
-      sources."p-cancelable-1.1.0"
+      sources."p-any-2.1.0"
+      sources."p-cancelable-2.1.0"
       sources."p-finally-1.0.0"
       sources."p-limit-3.1.0"
       sources."p-locate-5.0.0"
-      sources."p-map-3.0.0"
+      sources."p-map-4.0.0"
       sources."p-retry-4.1.0"
-      (sources."p-some-4.1.0" // {
-        dependencies = [
-          sources."p-cancelable-2.0.0"
-        ];
-      })
+      sources."p-some-4.1.0"
       sources."p-timeout-3.1.0"
       sources."p-try-2.2.0"
       (sources."package-json-6.4.0" // {
         dependencies = [
+          sources."@sindresorhus/is-0.14.0"
+          sources."@szmarczak/http-timer-1.1.2"
+          (sources."cacheable-request-6.1.0" // {
+            dependencies = [
+              sources."get-stream-5.2.0"
+              sources."lowercase-keys-2.0.0"
+            ];
+          })
+          sources."decompress-response-3.3.0"
+          sources."defer-to-connect-1.1.3"
+          sources."get-stream-4.1.0"
           sources."got-9.6.0"
+          sources."json-buffer-3.0.0"
+          sources."keyv-3.1.0"
+          sources."lowercase-keys-1.0.1"
+          sources."p-cancelable-1.1.0"
           sources."registry-auth-token-3.4.0"
           sources."registry-url-5.1.0"
+          sources."responselike-1.0.2"
           sources."semver-6.3.0"
         ];
       })
-      (sources."pacote-11.2.6" // {
+      (sources."pacote-11.3.1" // {
         dependencies = [
+          sources."hosted-git-info-4.0.2"
           sources."minipass-3.1.3"
           sources."mkdirp-1.0.4"
-          sources."npm-package-arg-8.1.0"
+          sources."npm-package-arg-8.1.2"
           sources."rimraf-3.0.2"
+          sources."semver-7.3.5"
         ];
       })
       sources."pako-1.0.11"
       sources."parallel-transform-1.2.0"
       (sources."param-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."parse-asn1-5.1.6"
@@ -75813,7 +78067,11 @@ in
           sources."path-exists-3.0.0"
         ];
       })
-      sources."plist-3.0.1"
+      (sources."plist-3.0.2" // {
+        dependencies = [
+          sources."xmlbuilder-9.0.7"
+        ];
+      })
       sources."pngjs-3.4.0"
       sources."pnp-webpack-plugin-1.6.4"
       (sources."portfinder-1.0.28" // {
@@ -75916,6 +78174,7 @@ in
       })
       (sources."postcss-normalize-url-4.0.1" // {
         dependencies = [
+          sources."normalize-url-3.3.0"
           sources."postcss-value-parser-3.3.1"
         ];
       })
@@ -75937,7 +78196,7 @@ in
       })
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-selector-parser-6.0.4"
-      (sources."postcss-svgo-4.0.2" // {
+      (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
         ];
@@ -75945,7 +78204,7 @@ in
       sources."postcss-unique-selectors-4.0.1"
       sources."postcss-value-parser-4.1.0"
       sources."prepend-http-3.0.1"
-      sources."pretty-bytes-5.5.0"
+      sources."pretty-bytes-5.6.0"
       sources."pretty-error-2.1.2"
       (sources."pretty-format-25.5.0" // {
         dependencies = [
@@ -75961,16 +78220,15 @@ in
       sources."progress-2.0.3"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
-      sources."prompts-2.4.0"
+      sources."prompts-2.4.1"
       sources."proxy-addr-2.0.6"
       sources."prr-1.0.1"
       sources."psl-1.8.0"
       (sources."public-encrypt-4.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
-      sources."puka-1.0.1"
       sources."pump-3.0.0"
       (sources."pumpify-1.5.1" // {
         dependencies = [
@@ -75981,10 +78239,10 @@ in
       sources."q-1.5.1"
       sources."qrcode-terminal-0.11.0"
       sources."qs-6.5.2"
-      sources."querystring-0.2.0"
+      sources."querystring-0.2.1"
       sources."querystring-es3-0.2.1"
       sources."querystringify-2.2.0"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
       sources."randombytes-2.1.0"
       sources."randomfill-1.0.4"
@@ -75996,10 +78254,9 @@ in
       })
       sources."raw-body-2.3.3"
       sources."rc-1.2.8"
-      (sources."react-dev-utils-11.0.2" // {
+      (sources."react-dev-utils-11.0.4" // {
         dependencies = [
           sources."@babel/code-frame-7.10.4"
-          sources."array-union-2.1.0"
           sources."browserslist-4.14.2"
           (sources."chalk-2.4.2" // {
             dependencies = [
@@ -76009,18 +78266,13 @@ in
           sources."cross-spawn-7.0.3"
           sources."escape-string-regexp-2.0.0"
           sources."find-up-4.1.0"
-          sources."globby-11.0.1"
-          sources."is-wsl-2.2.0"
-          sources."loader-utils-2.0.0"
           sources."locate-path-5.0.0"
-          sources."open-7.4.0"
           sources."p-limit-2.3.0"
           sources."p-locate-4.1.0"
           sources."path-key-3.1.1"
+          sources."prompts-2.4.0"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
-          sources."shell-quote-1.7.2"
-          sources."slash-3.0.0"
           sources."which-2.0.2"
         ];
       })
@@ -76029,7 +78281,7 @@ in
       sources."react-refresh-0.4.3"
       sources."read-chunk-3.2.0"
       sources."read-last-lines-1.6.0"
-      sources."read-package-json-fast-2.0.1"
+      sources."read-package-json-fast-2.0.2"
       (sources."readable-stream-2.3.7" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -76039,7 +78291,7 @@ in
       sources."recursive-readdir-2.2.2"
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-runtime-0.13.8"
       sources."regenerator-transform-0.14.5"
       sources."regex-not-1.0.2"
       sources."regexp.prototype.flags-1.3.1"
@@ -76047,7 +78299,7 @@ in
       sources."registry-auth-token-3.3.2"
       sources."registry-url-3.1.0"
       sources."regjsgen-0.5.2"
-      (sources."regjsparser-0.6.7" // {
+      (sources."regjsparser-0.6.9" // {
         dependencies = [
           sources."jsesc-0.5.0"
         ];
@@ -76060,7 +78312,7 @@ in
           sources."ansi-regex-2.1.1"
           (sources."dom-serializer-0.2.2" // {
             dependencies = [
-              sources."domelementtype-2.1.0"
+              sources."domelementtype-2.2.0"
               sources."entities-2.2.0"
             ];
           })
@@ -76100,7 +78352,7 @@ in
       })
       sources."resolve-from-5.0.0"
       sources."resolve-url-0.2.1"
-      sources."responselike-1.0.2"
+      sources."responselike-2.0.0"
       sources."restore-cursor-2.0.0"
       sources."ret-0.1.15"
       sources."retry-0.12.0"
@@ -76121,19 +78373,9 @@ in
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      (sources."schema-utils-2.7.1" // {
-        dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
-        ];
-      })
+      sources."schema-utils-2.7.1"
       sources."select-hose-2.0.0"
-      (sources."selfsigned-1.10.8" // {
-        dependencies = [
-          sources."node-forge-0.10.0"
-        ];
-      })
+      sources."selfsigned-1.10.8"
       sources."semver-7.3.2"
       (sources."send-0.16.2" // {
         dependencies = [
@@ -76142,9 +78384,9 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."serialize-error-5.0.0" // {
+      (sources."serialize-error-6.0.0" // {
         dependencies = [
-          sources."type-fest-0.8.1"
+          sources."type-fest-0.12.0"
         ];
       })
       sources."serialize-javascript-4.0.0"
@@ -76166,19 +78408,19 @@ in
       sources."sha.js-2.4.11"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."shell-quote-1.6.1"
+      sources."shell-quote-1.7.2"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
       sources."simple-plist-1.1.1"
       sources."simple-swizzle-0.2.2"
       sources."sisteransi-1.0.5"
-      sources."slash-1.0.0"
+      sources."slash-3.0.0"
       (sources."slugid-1.1.0" // {
         dependencies = [
           sources."uuid-2.0.3"
         ];
       })
-      sources."slugify-1.4.6"
+      sources."slugify-1.5.0"
       sources."smart-buffer-4.1.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -76221,7 +78463,7 @@ in
           sources."faye-websocket-0.11.3"
         ];
       })
-      sources."socks-2.5.1"
+      sources."socks-2.6.0"
       sources."socks-proxy-agent-5.0.0"
       sources."source-list-map-2.0.1"
       sources."source-map-0.5.7"
@@ -76264,7 +78506,7 @@ in
         ];
       })
       sources."statuses-1.4.0"
-      sources."std-env-2.2.1"
+      sources."std-env-2.3.0"
       sources."stream-browserify-2.0.2"
       sources."stream-buffers-2.2.0"
       sources."stream-each-1.2.3"
@@ -76276,9 +78518,14 @@ in
         ];
       })
       sources."stream-shift-1.0.1"
-      sources."string-width-4.2.0"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      (sources."string-width-4.2.2" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+        ];
+      })
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-1.1.1"
       (sources."stringify-object-3.3.0" // {
         dependencies = [
@@ -76289,11 +78536,7 @@ in
       sources."strip-comments-1.0.2"
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
-      (sources."style-loader-1.2.1" // {
-        dependencies = [
-          sources."loader-utils-2.0.0"
-        ];
-      })
+      sources."style-loader-1.2.1"
       (sources."stylehacks-4.0.3" // {
         dependencies = [
           sources."postcss-selector-parser-3.1.2"
@@ -76318,22 +78561,13 @@ in
       (sources."tar-6.1.0" // {
         dependencies = [
           sources."minipass-3.1.3"
-          sources."minizlib-2.1.2"
           sources."mkdirp-1.0.4"
         ];
       })
       sources."temp-dir-1.0.0"
       (sources."tempy-0.7.1" // {
         dependencies = [
-          sources."array-union-2.1.0"
           sources."crypto-random-string-2.0.0"
-          sources."del-6.0.0"
-          sources."globby-11.0.2"
-          sources."is-path-inside-3.0.2"
-          sources."is-stream-2.0.0"
-          sources."p-map-4.0.0"
-          sources."rimraf-3.0.2"
-          sources."slash-3.0.0"
           sources."temp-dir-2.0.0"
           sources."type-fest-0.16.0"
           sources."unique-string-2.0.0"
@@ -76402,6 +78636,7 @@ in
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
       sources."ultron-1.1.1"
+      sources."unbox-primitive-1.0.1"
       sources."unicode-canonical-property-names-ecmascript-1.0.4"
       sources."unicode-match-property-ecmascript-1.0.4"
       sources."unicode-match-property-value-ecmascript-1.2.0"
@@ -76412,7 +78647,7 @@ in
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-1.0.0"
-      sources."universalify-0.1.2"
+      sources."universalify-1.0.0"
       sources."unpipe-1.0.0"
       sources."unquote-1.1.1"
       (sources."unset-value-1.0.0" // {
@@ -76436,19 +78671,16 @@ in
       (sources."url-0.11.0" // {
         dependencies = [
           sources."punycode-1.3.2"
+          sources."querystring-0.2.0"
         ];
       })
       sources."url-join-4.0.0"
       (sources."url-loader-4.1.1" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
-          sources."loader-utils-2.0.0"
           sources."schema-utils-3.0.0"
         ];
       })
-      sources."url-parse-1.4.7"
+      sources."url-parse-1.5.1"
       (sources."url-parse-lax-3.0.0" // {
         dependencies = [
           sources."prepend-http-2.0.0"
@@ -76498,26 +78730,16 @@ in
       sources."wcwidth-1.0.1"
       (sources."webpack-4.43.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          (sources."braces-2.3.2" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
+          sources."braces-2.3.2"
           sources."cacache-12.0.4"
           sources."chownr-1.1.4"
-          sources."fast-deep-equal-3.1.3"
-          (sources."fill-range-4.0.0" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."json-schema-traverse-0.4.1"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."is-number-3.0.0"
+          sources."is-wsl-1.1.0"
+          sources."json5-1.0.1"
+          sources."kind-of-3.2.2"
+          sources."loader-utils-1.4.0"
           sources."lru-cache-5.1.1"
           sources."micromatch-3.1.10"
           sources."rimraf-2.7.1"
@@ -76533,9 +78755,9 @@ in
       sources."webpack-dev-middleware-3.7.3"
       (sources."webpack-dev-server-3.11.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
           sources."ansi-regex-2.1.1"
           sources."anymatch-2.0.0"
+          sources."array-union-1.0.2"
           sources."binary-extensions-1.13.1"
           (sources."body-parser-1.19.0" // {
             dependencies = [
@@ -76547,13 +78769,13 @@ in
           sources."chokidar-2.1.8"
           sources."content-disposition-0.5.3"
           sources."cookie-0.4.0"
+          sources."del-4.1.1"
           (sources."express-4.17.1" // {
             dependencies = [
               sources."debug-2.6.9"
             ];
           })
           sources."extend-shallow-2.0.1"
-          sources."fast-deep-equal-3.1.3"
           sources."fill-range-4.0.0"
           (sources."finalhandler-1.1.2" // {
             dependencies = [
@@ -76562,6 +78784,7 @@ in
           })
           sources."fsevents-1.2.13"
           sources."glob-parent-3.1.0"
+          sources."globby-6.1.0"
           sources."http-errors-1.7.2"
           sources."iconv-lite-0.4.24"
           sources."inherits-2.0.3"
@@ -76569,16 +78792,18 @@ in
           sources."is-binary-path-1.0.1"
           sources."is-glob-3.1.0"
           sources."is-number-3.0.0"
-          sources."json-schema-traverse-0.4.1"
           sources."kind-of-3.2.2"
           sources."micromatch-3.1.10"
           sources."mime-1.6.0"
           sources."ms-2.0.0"
           sources."normalize-path-2.1.1"
+          sources."p-map-2.1.0"
           sources."p-retry-3.0.1"
+          sources."pify-2.3.0"
           sources."qs-6.7.0"
           sources."raw-body-2.4.0"
           sources."readdirp-2.2.1"
+          sources."rimraf-2.7.1"
           sources."schema-utils-1.0.0"
           sources."semver-6.3.0"
           (sources."send-0.17.1" // {
@@ -76608,6 +78833,8 @@ in
       (sources."webpack-manifest-plugin-2.2.0" // {
         dependencies = [
           sources."fs-extra-7.0.1"
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
         ];
       })
       (sources."webpack-sources-1.4.3" // {
@@ -76634,7 +78861,6 @@ in
       (sources."wide-align-1.1.3" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
         ];
@@ -76646,7 +78872,9 @@ in
       (sources."workbox-build-3.6.3" // {
         dependencies = [
           sources."fs-extra-4.0.3"
+          sources."jsonfile-4.0.0"
           sources."pretty-bytes-4.0.2"
+          sources."universalify-0.1.2"
         ];
       })
       sources."workbox-cache-expiration-3.6.3"
@@ -76664,9 +78892,8 @@ in
       sources."worker-farm-1.7.0"
       (sources."worker-loader-2.0.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
+          sources."json5-1.0.1"
+          sources."loader-utils-1.4.0"
           sources."schema-utils-0.4.7"
         ];
       })
@@ -76686,25 +78913,32 @@ in
           sources."uuid-7.0.3"
         ];
       })
-      sources."xhr-2.6.0"
-      sources."xml-js-1.6.11"
-      sources."xml-parse-from-string-1.0.1"
-      (sources."xml2js-0.4.23" // {
+      (sources."xdl-59.0.29" // {
         dependencies = [
-          sources."xmlbuilder-11.0.1"
+          sources."chownr-1.1.4"
+          sources."fs-minipass-1.2.7"
+          sources."indent-string-3.2.0"
+          sources."minipass-2.9.0"
+          sources."minizlib-1.3.3"
+          sources."p-map-3.0.0"
+          sources."tar-4.4.6"
+          sources."uuid-3.3.2"
+          sources."yallist-3.1.1"
         ];
       })
-      sources."xmlbuilder-9.0.7"
-      sources."xmldom-0.1.31"
+      sources."xhr-2.6.0"
+      sources."xml-js-1.6.11"
+      sources."xml-parse-from-string-1.0.1"
+      sources."xml2js-0.4.23"
+      sources."xmlbuilder-11.0.1"
+      sources."xmldom-0.5.0"
       sources."xtend-4.0.2"
       sources."y18n-4.0.1"
       sources."yallist-4.0.0"
       (sources."yargs-13.3.2" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
           sources."find-up-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
           sources."locate-path-3.0.0"
           sources."p-limit-2.3.0"
           sources."p-locate-3.0.0"
@@ -76825,8 +79059,8 @@ in
       sources."loud-rejection-1.6.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -76916,10 +79150,10 @@ in
   fauna-shell = nodeEnv.buildNodePackage {
     name = "fauna-shell";
     packageName = "fauna-shell";
-    version = "0.12.2";
+    version = "0.12.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/fauna-shell/-/fauna-shell-0.12.2.tgz";
-      sha512 = "terh0qFI5xNAGp/tL4EtKQKSVQdLYeBpFGOwU7vaoigzFgO3TZpH6JLwF36NeUae9sTdTlQt7X3ti2bOqCDnQQ==";
+      url = "https://registry.npmjs.org/fauna-shell/-/fauna-shell-0.12.3.tgz";
+      sha512 = "2K8kh4MAteqj7kOnUq8Goux4Zw0oIZEGN1xoW14cGxrOTDRXvBm3eBndI9gt24rSC8h7T8qdIeLY7O9hn6LSUg==";
     };
     dependencies = [
       (sources."@heroku-cli/color-1.1.14" // {
@@ -76953,8 +79187,8 @@ in
       })
       (sources."@oclif/config-1.17.0" // {
         dependencies = [
-          sources."globby-11.0.2"
-          sources."tslib-2.1.0"
+          sources."globby-11.0.3"
+          sources."tslib-2.2.0"
         ];
       })
       sources."@oclif/errors-1.3.4"
@@ -76999,7 +79233,7 @@ in
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -77046,7 +79280,7 @@ in
         ];
       })
       sources."clean-stack-3.0.1"
-      sources."cli-table-0.3.4"
+      sources."cli-table-0.3.6"
       (sources."cli-ux-4.9.3" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -77066,12 +79300,13 @@ in
       sources."collection-visit-1.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
+      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
-      sources."cross-fetch-3.0.6"
+      sources."cross-fetch-3.1.4"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -77133,7 +79368,7 @@ in
       sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."faunadb-4.0.3"
       sources."fill-range-7.0.1"
       sources."fn-annotate-1.2.0"
@@ -77148,7 +79383,7 @@ in
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.3.0"
       (sources."globby-8.0.2" // {
         dependencies = [
@@ -77221,7 +79456,7 @@ in
       sources."is-buffer-1.1.6"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -77250,7 +79485,7 @@ in
       sources."keyv-3.0.0"
       sources."kind-of-6.0.3"
       sources."levn-0.3.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash._reinterpolate-3.0.0"
       sources."lodash.template-4.5.0"
       sources."lodash.templatesettings-4.2.0"
@@ -77260,8 +79495,8 @@ in
       sources."map-visit-1.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       (sources."mixin-deep-1.3.2" // {
@@ -77322,7 +79557,7 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."query-string-5.1.1"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       (sources."readable-stream-2.3.7" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -77343,7 +79578,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -77409,7 +79644,7 @@ in
       })
       sources."stealthy-require-1.1.1"
       sources."strict-uri-encode-1.1.0"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -77477,10 +79712,10 @@ in
   firebase-tools = nodeEnv.buildNodePackage {
     name = "firebase-tools";
     packageName = "firebase-tools";
-    version = "9.3.0";
+    version = "9.8.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.3.0.tgz";
-      sha512 = "tLg1GKpf8Jxlgqq3JttWTOHsOKIyNpro0Ic5sOabmxd1XSeXdK0XW3r3INASoSpy1SYPQn5EEyR1Vs/a0gCu2w==";
+      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.8.0.tgz";
+      sha512 = "UhOnT8csgc1jlS1GYz0IxTHwB9BYoxj+TSy4aIKj8a44OzsXVSiT6lOhLIYHZFLVdjqkLi08i1+07JoOVTmtTA==";
     };
     dependencies = [
       sources."@apidevtools/json-schema-ref-parser-9.0.7"
@@ -77489,8 +79724,12 @@ in
       sources."@google-cloud/precise-date-2.0.3"
       sources."@google-cloud/projectify-2.0.1"
       sources."@google-cloud/promisify-2.0.3"
-      sources."@google-cloud/pubsub-2.8.0"
-      (sources."@grpc/grpc-js-1.2.6" // {
+      (sources."@google-cloud/pubsub-2.10.0" // {
+        dependencies = [
+          sources."google-auth-library-7.0.3"
+        ];
+      })
+      (sources."@grpc/grpc-js-1.2.12" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -77501,7 +79740,7 @@ in
       sources."@opentelemetry/context-base-0.12.0"
       (sources."@opentelemetry/core-0.12.0" // {
         dependencies = [
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
         ];
       })
       sources."@opentelemetry/resources-0.12.0"
@@ -77520,9 +79759,12 @@ in
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-1.1.2"
+      sources."@types/archiver-5.1.0"
       sources."@types/duplexify-3.6.0"
+      sources."@types/glob-7.1.3"
       sources."@types/long-4.0.1"
-      sources."@types/node-14.14.26"
+      sources."@types/minimatch-3.0.4"
+      sources."@types/node-14.14.37"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -77531,11 +79773,7 @@ in
       sources."ajv-6.12.6"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
         ];
       })
       sources."ansi-escapes-3.2.0"
@@ -77544,7 +79782,7 @@ in
       sources."ansicolors-0.3.2"
       sources."anymatch-3.1.1"
       sources."aproba-1.2.0"
-      sources."archiver-3.1.1"
+      sources."archiver-5.3.0"
       (sources."archiver-utils-2.1.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -77566,11 +79804,11 @@ in
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."ast-types-0.13.4"
-      sources."async-2.6.3"
+      sources."async-3.2.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       (sources."basic-auth-2.0.1" // {
         dependencies = [
@@ -77583,6 +79821,7 @@ in
       sources."bignumber.js-9.0.1"
       sources."binary-0.3.0"
       sources."binary-extensions-2.2.0"
+      sources."bindings-1.5.0"
       sources."bl-4.1.0"
       sources."blakejs-1.1.0"
       sources."bluebird-3.4.7"
@@ -77594,11 +79833,16 @@ in
       })
       (sources."boxen-4.2.0" // {
         dependencies = [
+          sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
+          sources."emoji-regex-8.0.0"
           sources."has-flag-4.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
           sources."supports-color-7.2.0"
         ];
       })
@@ -77630,8 +79874,8 @@ in
       sources."cli-boxes-2.2.1"
       sources."cli-color-1.4.0"
       sources."cli-cursor-2.1.0"
-      sources."cli-spinners-2.5.0"
-      sources."cli-table-0.3.4"
+      sources."cli-spinners-2.6.0"
+      sources."cli-table-0.3.6"
       sources."cli-width-2.2.1"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
@@ -77639,19 +79883,13 @@ in
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.4"
-      sources."colors-1.4.0"
+      sources."color-string-1.5.5"
+      sources."colors-1.0.3"
       sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
       sources."commander-4.1.1"
       sources."compare-semver-1.1.0"
-      (sources."compress-commons-2.1.1" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."compress-commons-4.1.0"
       sources."compressible-2.0.18"
       (sources."compression-1.7.4" // {
         dependencies = [
@@ -77679,8 +79917,9 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.2"
-      sources."crc-3.8.0"
-      sources."crc32-stream-3.0.1"
+      sources."cors-2.8.5"
+      sources."crc-32-1.2.0"
+      sources."crc32-stream-4.0.2"
       (sources."cross-env-5.2.1" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
@@ -77725,11 +79964,11 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
       sources."ee-first-1.1.1"
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
       sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      sources."env-paths-2.2.0"
+      sources."env-paths-2.2.1"
       sources."es5-ext-0.10.53"
       sources."es6-iterator-2.0.3"
       sources."es6-symbol-3.1.3"
@@ -77747,11 +79986,12 @@ in
       sources."events-listener-1.1.0"
       (sources."exegesis-2.5.6" // {
         dependencies = [
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
         ];
       })
       sources."exegesis-express-2.0.0"
       sources."exit-code-1.0.2"
+      sources."exit-on-epipe-1.0.1"
       (sources."express-4.17.1" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -77761,12 +80001,13 @@ in
       })
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.2.0"
+          sources."type-2.5.0"
         ];
       })
       sources."extend-3.0.2"
       sources."external-editor-3.1.0"
       sources."extsprintf-1.3.0"
+      sources."fast-crc32c-2.0.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
@@ -77777,10 +80018,10 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."figures-2.0.0"
-      sources."file-uri-to-path-2.0.0"
-      sources."filesize-3.6.1"
+      sources."file-uri-to-path-1.0.0"
+      sources."filesize-6.1.0"
       sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
@@ -77832,23 +80073,28 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      sources."gaxios-4.1.0"
+      sources."gaxios-4.2.0"
       sources."gcp-metadata-4.2.1"
       sources."get-stream-4.1.0"
       (sources."get-uri-3.0.2" // {
         dependencies = [
+          sources."file-uri-to-path-2.0.0"
           sources."fs-extra-8.1.0"
           sources."jsonfile-4.0.0"
         ];
       })
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."glob-slash-1.0.0"
       sources."glob-slasher-1.0.1"
       sources."global-dirs-2.1.0"
       sources."google-auth-library-6.1.6"
-      sources."google-gax-2.10.2"
+      (sources."google-gax-2.11.2" // {
+        dependencies = [
+          sources."google-auth-library-7.0.3"
+        ];
+      })
       sources."google-p12-pem-3.0.3"
       sources."got-9.6.0"
       sources."graceful-fs-4.2.6"
@@ -77876,22 +80122,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.7"
-      (sources."inquirer-6.3.1" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          (sources."string-width-2.1.1" // {
-            dependencies = [
-              sources."strip-ansi-4.0.0"
-            ];
-          })
-          (sources."strip-ansi-5.2.0" // {
-            dependencies = [
-              sources."ansi-regex-4.1.0"
-            ];
-          })
-        ];
-      })
+      sources."inquirer-6.3.1"
       sources."install-artifact-from-github-1.2.0"
       sources."ip-1.1.5"
       sources."ip-regex-4.3.0"
@@ -77900,13 +80131,13 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-ci-2.0.0"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.3.2"
       sources."is-npm-4.0.0"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-promise-2.2.2"
       sources."is-stream-2.0.0"
       sources."is-stream-ended-0.1.4"
@@ -77954,7 +80185,7 @@ in
       sources."leven-3.1.0"
       sources."levn-0.3.0"
       sources."listenercount-1.0.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash._isnative-2.4.1"
       sources."lodash._objecttypes-2.4.1"
       sources."lodash._shimkeys-2.4.1"
@@ -77977,7 +80208,11 @@ in
       sources."lodash.union-4.6.0"
       sources."lodash.values-2.4.1"
       sources."log-symbols-2.2.0"
-      sources."logform-2.2.0"
+      (sources."logform-2.2.0" // {
+        dependencies = [
+          sources."colors-1.4.0"
+        ];
+      })
       sources."long-4.0.0"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
@@ -77998,8 +80233,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -78023,16 +80258,17 @@ in
         ];
       })
       sources."negotiator-0.6.2"
-      sources."netmask-1.0.6"
+      sources."netmask-2.0.2"
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
+      sources."node-addon-api-1.7.2"
       sources."node-emoji-1.10.0"
       sources."node-fetch-2.6.1"
       sources."node-forge-0.10.0"
       (sources."node-gyp-7.1.2" // {
         dependencies = [
           sources."mkdirp-1.0.4"
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
           sources."tar-6.1.0"
           sources."which-2.0.2"
         ];
@@ -78052,17 +80288,12 @@ in
       sources."open-6.4.0"
       sources."openapi3-ts-1.4.0"
       sources."optionator-0.8.3"
-      (sources."ora-3.4.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
+      sources."ora-3.4.0"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-defer-3.0.0"
       sources."pac-proxy-agent-4.1.0"
-      sources."pac-resolver-4.1.0"
+      sources."pac-resolver-4.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -78074,20 +80305,22 @@ in
       sources."path-to-regexp-0.1.7"
       sources."performance-now-2.1.0"
       sources."picomatch-2.2.2"
-      sources."plist-3.0.1"
+      sources."plist-3.0.2"
       (sources."portfinder-1.0.28" // {
         dependencies = [
+          sources."async-2.6.3"
           sources."debug-3.2.7"
         ];
       })
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
+      sources."printj-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."promise-breaker-5.0.0"
       (sources."protobufjs-6.10.2" // {
         dependencies = [
-          sources."@types/node-13.13.41"
+          sources."@types/node-13.13.48"
         ];
       })
       sources."proxy-addr-2.0.6"
@@ -78108,6 +80341,7 @@ in
       sources."rc-1.2.8"
       sources."re2-1.15.9"
       sources."readable-stream-3.6.0"
+      sources."readdir-glob-1.1.1"
       sources."readdirp-3.5.0"
       sources."redeyed-2.1.1"
       sources."registry-auth-token-4.2.1"
@@ -78131,7 +80365,7 @@ in
       })
       sources."rsvp-4.8.5"
       sources."run-async-2.4.1"
-      (sources."rxjs-6.6.3" // {
+      (sources."rxjs-6.6.7" // {
         dependencies = [
           sources."tslib-1.14.1"
         ];
@@ -78163,10 +80397,11 @@ in
       sources."signal-exit-3.0.3"
       sources."simple-swizzle-0.2.2"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.5.1"
+      sources."socks-2.6.0"
       sources."socks-proxy-agent-5.0.0"
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
+      sources."sse4_crc32-6.0.1"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
       sources."statuses-1.5.0"
@@ -78176,11 +80411,16 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      sources."string-width-4.2.0"
+      (sources."string-width-2.1.1" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
       sources."string_decoder-1.3.0"
-      (sources."strip-ansi-6.0.0" // {
+      (sources."strip-ansi-5.2.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
+          sources."ansi-regex-4.1.0"
         ];
       })
       sources."strip-json-comments-2.0.1"
@@ -78236,7 +80476,7 @@ in
       sources."toxic-1.0.1"
       sources."traverse-0.3.9"
       sources."triple-beam-1.3.0"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       (sources."tweetsodium-0.0.5" // {
@@ -78281,20 +80521,17 @@ in
       sources."verror-1.10.0"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
-      (sources."wide-align-1.1.3" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
-      sources."widest-line-3.1.0"
-      (sources."winston-3.3.3" // {
+      sources."wide-align-1.1.3"
+      (sources."widest-line-3.1.0" // {
         dependencies = [
-          sources."async-3.2.0"
+          sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
         ];
       })
+      sources."winston-3.3.3"
       (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -78305,14 +80542,14 @@ in
       sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."xdg-basedir-4.0.0"
       sources."xmlbuilder-9.0.7"
-      sources."xmldom-0.1.31"
+      sources."xmldom-0.5.0"
       sources."xregexp-2.0.0"
       sources."xtend-4.0.2"
       sources."yallist-4.0.0"
-      sources."zip-stream-2.1.3"
+      sources."zip-stream-4.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -78335,7 +80572,7 @@ in
     dependencies = [
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
@@ -78355,13 +80592,13 @@ in
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."require-directory-2.1.1"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yargs-16.2.0"
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -78384,7 +80621,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -78397,7 +80634,7 @@ in
       sources."@types/minimist-1.2.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."aggregate-error-3.1.0"
-      sources."ansi-escapes-4.3.1"
+      sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."arrify-2.0.1"
@@ -78428,13 +80665,13 @@ in
       sources."external-editor-3.1.0"
       sources."figures-3.2.0"
       sources."find-up-4.1.0"
-      sources."fkill-7.1.0"
+      sources."fkill-7.1.1"
       sources."function-bind-1.1.1"
       sources."get-stream-6.0.0"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
-      sources."hosted-git-info-3.0.8"
+      sources."hosted-git-info-4.0.2"
       sources."human-signals-2.1.0"
       sources."iconv-lite-0.4.24"
       sources."indent-string-4.0.0"
@@ -78451,9 +80688,9 @@ in
       sources."kind-of-6.0.3"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lru-cache-6.0.0"
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       (sources."meow-8.1.2" // {
         dependencies = [
           sources."type-fest-0.18.1"
@@ -78468,7 +80705,7 @@ in
         ];
       })
       sources."mute-stream-0.0.8"
-      sources."normalize-package-data-3.0.0"
+      sources."normalize-package-data-3.0.2"
       sources."npm-run-path-4.0.1"
       sources."num-sort-2.1.0"
       sources."once-1.4.0"
@@ -78508,9 +80745,9 @@ in
       sources."resolve-1.20.0"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
@@ -78519,7 +80756,7 @@ in
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.7"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
@@ -78535,12 +80772,12 @@ in
       sources."tmp-0.0.33"
       sources."trim-newlines-3.0.0"
       sources."tslib-1.14.1"
-      sources."type-fest-0.11.0"
+      sources."type-fest-0.21.3"
       sources."validate-npm-package-license-3.0.4"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
       sources."yallist-4.0.0"
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -78552,13 +80789,223 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  fleek-cli = nodeEnv.buildNodePackage {
+    name = "fleek-cli";
+    packageName = "fleek-cli";
+    version = "0.0.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/fleek-cli/-/fleek-cli-0.0.1.tgz";
+      sha512 = "6TL8NcVoGh7q+1qO/uQ4d/YDAG+x8ddQctZILObjdNmztf9Dv8JI9X0l0U+fsDPTcytYjkw910UwW7uzzWGclA==";
+    };
+    dependencies = [
+      sources."@types/atob-2.1.2"
+      sources."@types/inquirer-6.5.0"
+      sources."@types/node-14.14.37"
+      sources."@types/through-0.0.30"
+      sources."ajv-6.12.6"
+      sources."ansi-escapes-4.3.2"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.3.0"
+      sources."argparse-1.0.10"
+      sources."asn1-0.2.4"
+      sources."assert-plus-1.0.0"
+      sources."async-0.2.10"
+      sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
+      sources."atob-2.1.2"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.11.0"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."binary-search-tree-0.2.5"
+      sources."bluebird-3.7.2"
+      sources."bn.js-4.12.0"
+      sources."brorand-1.1.0"
+      sources."buffer-to-arraybuffer-0.0.5"
+      sources."camelcase-5.3.1"
+      sources."caseless-0.12.0"
+      sources."chalk-4.1.0"
+      sources."chardet-0.7.0"
+      sources."cli-cursor-3.1.0"
+      sources."cli-width-3.0.0"
+      sources."cliui-6.0.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."colors-1.4.0"
+      sources."combined-stream-1.0.8"
+      sources."command-exists-1.2.9"
+      sources."core-util-is-1.0.2"
+      sources."dashdash-1.14.1"
+      sources."decamelize-1.2.0"
+      sources."decode-uri-component-0.2.0"
+      sources."decompress-response-3.3.0"
+      sources."delayed-stream-1.0.0"
+      sources."dom-walk-0.1.2"
+      sources."dotenv-8.2.0"
+      sources."ecc-jsbn-0.1.2"
+      sources."elliptic-6.5.4"
+      sources."emoji-regex-8.0.0"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."eth-lib-0.2.8"
+      sources."ethereum-bloom-filters-1.0.9"
+      (sources."ethjs-unit-0.1.6" // {
+        dependencies = [
+          sources."bn.js-4.11.6"
+        ];
+      })
+      sources."extend-3.0.2"
+      sources."external-editor-3.1.0"
+      sources."extsprintf-1.3.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."figures-3.2.0"
+      sources."find-up-4.1.0"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      sources."fs-extra-9.1.0"
+      sources."get-caller-file-2.0.5"
+      sources."getpass-0.1.7"
+      sources."global-4.4.0"
+      sources."graceful-fs-4.2.6"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.5"
+      sources."has-flag-4.0.0"
+      sources."hash.js-1.1.7"
+      sources."hmac-drbg-1.0.1"
+      sources."http-signature-1.2.0"
+      sources."iconv-lite-0.4.24"
+      sources."immediate-3.0.6"
+      sources."inherits-2.0.4"
+      sources."inquirer-7.3.3"
+      sources."inversify-5.0.5"
+      sources."is-docker-2.2.0"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-function-1.0.2"
+      sources."is-hex-prefixed-1.0.0"
+      sources."is-typedarray-1.0.0"
+      sources."is-wsl-2.2.0"
+      sources."isstream-0.1.2"
+      sources."js-sha3-0.8.0"
+      sources."js-yaml-3.14.1"
+      sources."jsbn-0.1.1"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsonfile-6.1.0"
+      sources."jsprim-1.4.1"
+      sources."jwt-decode-2.2.0"
+      sources."lie-3.1.1"
+      sources."localforage-1.9.0"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.21"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
+      sources."mimic-fn-2.1.0"
+      sources."mimic-response-1.0.1"
+      sources."min-document-2.19.0"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."mute-stream-0.0.8"
+      sources."nedb-1.8.0"
+      sources."node-fetch-2.6.1"
+      (sources."number-to-bn-1.7.0" // {
+        dependencies = [
+          sources."bn.js-4.11.6"
+        ];
+      })
+      sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."onetime-5.1.2"
+      sources."open-7.4.2"
+      sources."os-tmpdir-1.0.2"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      sources."parse-headers-2.0.3"
+      sources."path-exists-4.0.0"
+      sources."performance-now-2.1.0"
+      sources."process-0.11.10"
+      sources."psl-1.8.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.5.2"
+      sources."query-string-5.1.1"
+      sources."querystring-0.2.1"
+      sources."randombytes-2.1.0"
+      sources."reflect-metadata-0.1.13"
+      sources."request-2.88.2"
+      sources."request-promise-4.2.6"
+      sources."request-promise-core-1.1.4"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."restore-cursor-3.1.0"
+      sources."run-async-2.4.1"
+      sources."rxjs-6.6.7"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."set-blocking-2.0.0"
+      sources."signal-exit-3.0.3"
+      sources."simple-concat-1.0.1"
+      sources."simple-get-2.8.1"
+      sources."sprintf-js-1.0.3"
+      sources."sshpk-1.16.1"
+      sources."stealthy-require-1.1.1"
+      sources."strict-uri-encode-1.1.0"
+      sources."string-width-4.2.2"
+      sources."strip-ansi-6.0.0"
+      sources."strip-hex-prefix-1.0.0"
+      sources."supports-color-7.2.0"
+      sources."through-2.3.8"
+      sources."timed-out-4.0.1"
+      sources."tmp-0.0.33"
+      sources."tough-cookie-2.5.0"
+      sources."tslib-1.14.1"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."type-fest-0.21.3"
+      sources."underscore-1.4.4"
+      sources."universalify-2.0.0"
+      sources."untildify-4.0.0"
+      sources."uri-js-4.4.1"
+      sources."url-set-query-1.0.0"
+      sources."utf8-3.0.0"
+      sources."uuid-3.4.0"
+      sources."verror-1.10.0"
+      (sources."web3-utils-1.3.5" // {
+        dependencies = [
+          sources."underscore-1.9.1"
+        ];
+      })
+      sources."which-module-2.0.0"
+      sources."wrap-ansi-6.2.0"
+      sources."wrappy-1.0.2"
+      sources."xhr-2.6.0"
+      sources."xhr-request-1.1.0"
+      sources."xhr-request-promise-0.1.3"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.1"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Fleek command line utilities";
+      homepage = "https://github.com/fleekhq/fleek-cli#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   flood = nodeEnv.buildNodePackage {
     name = "flood";
     packageName = "flood";
-    version = "4.4.1";
+    version = "4.5.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/flood/-/flood-4.4.1.tgz";
-      sha512 = "C15ULT/FBNrjhF4Qf6d235+Pnmyv9TO6fqy4t/dS41emoHAjJsFZe5opefo6OQXtZ7BBvUz0flgPclq4zM3mkg==";
+      url = "https://registry.npmjs.org/flood/-/flood-4.5.2.tgz";
+      sha512 = "rgT/2x0GT5DR5bvK+R0znv1M3IYWAINb3zBz697q7+wJy2ryNUmaC9yYXV4+QqpsrlSxzI6nCZvWlAPqmJo48A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -78593,7 +81040,7 @@ in
       sources."async-1.5.2"
       sources."async-each-1.0.3"
       sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -78718,7 +81165,7 @@ in
       })
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -78795,7 +81242,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
@@ -78976,7 +81423,7 @@ in
       sources."indent-string-4.0.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."lossless-json-1.0.4"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."supports-color-7.2.0"
     ];
@@ -78990,6 +81437,800 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  ganache-cli = nodeEnv.buildNodePackage {
+    name = "ganache-cli";
+    packageName = "ganache-cli";
+    version = "6.12.2";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz";
+      sha512 = "bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "<p align=\"center\">   <em>NOTICE</em>: <code>testrpc</code> is now <code>ganache-cli</code>. Use it just as you would <code>testrpc</code>. </p> <hr/>";
+      homepage = "https://github.com/trufflesuite/ganache-cli#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  gatsby-cli = nodeEnv.buildNodePackage {
+    name = "gatsby-cli";
+    packageName = "gatsby-cli";
+    version = "3.2.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.2.0.tgz";
+      sha512 = "MOj7LgwNX/O30LNdZ1WDUQ4Wiyn3uXFGND7QQepfWpaHvrgtposhy/vseAAR54N5pyehcdLhQkNQkbd4Zw9olA==";
+    };
+    dependencies = [
+      (sources."@ardatan/aggregate-error-0.0.6" // {
+        dependencies = [
+          sources."tslib-2.0.3"
+        ];
+      })
+      sources."@babel/code-frame-7.12.13"
+      sources."@babel/compat-data-7.13.12"
+      (sources."@babel/core-7.13.14" // {
+        dependencies = [
+          sources."semver-6.3.0"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/generator-7.13.9" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."@babel/helper-annotate-as-pure-7.12.13"
+      (sources."@babel/helper-compilation-targets-7.13.13" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-get-function-arity-7.12.13"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
+      sources."@babel/helper-optimise-call-expression-7.12.13"
+      sources."@babel/helper-plugin-utils-7.13.0"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
+      sources."@babel/helper-split-export-declaration-7.12.13"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helpers-7.13.10"
+      (sources."@babel/highlight-7.13.10" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      sources."@babel/parser-7.13.13"
+      sources."@babel/plugin-proposal-object-rest-spread-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.13.12"
+      sources."@babel/plugin-syntax-jsx-7.12.13"
+      sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+      sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+      sources."@babel/plugin-transform-parameters-7.13.0"
+      sources."@babel/plugin-transform-react-jsx-7.13.12"
+      sources."@babel/runtime-7.13.10"
+      sources."@babel/standalone-7.13.14"
+      sources."@babel/template-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
+      sources."@graphql-tools/schema-7.1.3"
+      sources."@graphql-tools/utils-7.7.1"
+      sources."@hapi/address-2.1.4"
+      sources."@hapi/bourne-1.3.2"
+      sources."@hapi/hoek-8.5.1"
+      sources."@hapi/joi-15.1.1"
+      sources."@hapi/topo-3.1.6"
+      (sources."@jest/types-25.5.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."@mdx-js/util-2.0.0-next.8"
+      (sources."@sideway/address-4.1.1" // {
+        dependencies = [
+          sources."@hapi/hoek-9.1.1"
+        ];
+      })
+      sources."@sideway/formula-3.0.0"
+      sources."@sideway/pinpoint-2.0.0"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@tokenizer/token-0.1.1"
+      sources."@turist/fetch-7.1.7"
+      sources."@turist/time-0.0.1"
+      sources."@types/common-tags-1.8.0"
+      sources."@types/debug-4.1.5"
+      sources."@types/istanbul-lib-coverage-2.0.3"
+      sources."@types/istanbul-lib-report-3.0.0"
+      sources."@types/istanbul-reports-1.1.2"
+      sources."@types/node-14.14.37"
+      sources."@types/node-fetch-2.5.9"
+      sources."@types/readable-stream-2.3.9"
+      sources."@types/unist-2.0.3"
+      sources."@types/yargs-15.0.13"
+      sources."@types/yargs-parser-20.2.0"
+      sources."@types/yoga-layout-1.9.2"
+      sources."accepts-1.3.7"
+      sources."acorn-8.1.0"
+      sources."acorn-jsx-5.3.1"
+      sources."address-1.1.2"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
+      (sources."ansi-escapes-4.3.2" // {
+        dependencies = [
+          sources."type-fest-0.21.3"
+        ];
+      })
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.1"
+      sources."arch-2.2.0"
+      sources."array-flatten-1.1.1"
+      sources."async-retry-ng-2.0.1"
+      sources."asynckit-0.4.0"
+      sources."axios-0.21.1"
+      sources."bail-1.0.5"
+      sources."balanced-match-1.0.2"
+      sources."better-opn-2.1.1"
+      sources."better-queue-3.8.10"
+      sources."better-queue-memory-1.0.4"
+      sources."binary-extensions-2.2.0"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."qs-6.7.0"
+        ];
+      })
+      sources."boolbase-1.0.0"
+      (sources."boxen-4.2.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+          sources."type-fest-0.8.1"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."browserslist-4.16.3"
+      sources."bytes-3.1.0"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+          sources."lowercase-keys-2.0.0"
+          sources."normalize-url-4.5.0"
+        ];
+      })
+      sources."call-bind-1.0.2"
+      sources."camel-case-4.1.2"
+      sources."camelcase-5.3.1"
+      sources."caniuse-lite-1.0.30001207"
+      sources."ccount-1.1.0"
+      (sources."chalk-4.1.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."character-entities-1.2.4"
+      sources."character-entities-html4-1.1.4"
+      sources."character-entities-legacy-1.1.4"
+      sources."character-reference-invalid-1.1.4"
+      sources."chardet-0.7.0"
+      sources."chokidar-3.5.1"
+      sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.1"
+      sources."cli-cursor-3.1.0"
+      sources."cli-width-3.0.0"
+      (sources."clipboardy-2.3.0" // {
+        dependencies = [
+          sources."execa-1.0.0"
+        ];
+      })
+      (sources."cliui-6.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."strip-ansi-6.0.0"
+          sources."wrap-ansi-6.2.0"
+        ];
+      })
+      sources."clone-response-1.0.2"
+      sources."collapse-white-space-1.0.6"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."colorette-1.2.2"
+      sources."combined-stream-1.0.8"
+      sources."common-tags-1.8.0"
+      sources."concat-map-0.0.1"
+      sources."configstore-5.0.1"
+      (sources."content-disposition-0.5.3" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."content-type-1.0.4"
+      sources."contentful-management-7.14.0"
+      sources."contentful-sdk-core-6.7.0"
+      sources."convert-hrtime-3.0.0"
+      (sources."convert-source-map-1.7.0" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."cookie-0.4.0"
+      sources."cookie-signature-1.0.6"
+      sources."cors-2.8.5"
+      sources."create-gatsby-1.2.0"
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."crypto-random-string-2.0.0"
+      sources."css-select-2.1.0"
+      sources."css-what-3.4.2"
+      sources."debug-4.3.2"
+      sources."decamelize-1.2.0"
+      sources."decode-uri-component-0.2.0"
+      sources."decompress-response-3.3.0"
+      sources."deep-extend-0.6.0"
+      sources."defer-to-connect-1.1.3"
+      sources."delayed-stream-1.0.0"
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."detect-newline-1.0.3"
+      (sources."detect-port-1.3.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."diff-sequences-25.2.6"
+      sources."dom-converter-0.2.0"
+      (sources."dom-serializer-0.2.2" // {
+        dependencies = [
+          sources."domelementtype-2.2.0"
+        ];
+      })
+      sources."domelementtype-1.3.1"
+      sources."domhandler-2.4.2"
+      sources."domutils-1.7.0"
+      sources."dot-prop-5.3.0"
+      sources."dotenv-8.2.0"
+      sources."duplexer3-0.1.4"
+      sources."ee-first-1.1.1"
+      sources."electron-to-chromium-1.3.708"
+      sources."emoji-regex-7.0.3"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      sources."entities-2.2.0"
+      sources."envinfo-7.8.1"
+      sources."escalade-3.1.1"
+      sources."escape-goat-2.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."estree-util-is-identifier-name-1.1.0"
+      sources."etag-1.8.1"
+      (sources."execa-3.4.0" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."get-stream-5.2.0"
+          sources."is-stream-2.0.0"
+          sources."npm-run-path-4.0.1"
+          sources."p-finally-2.0.1"
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."which-2.0.2"
+        ];
+      })
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."qs-6.7.0"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      (sources."express-graphql-0.9.0" // {
+        dependencies = [
+          sources."http-errors-1.8.0"
+          (sources."raw-body-2.4.1" // {
+            dependencies = [
+              sources."http-errors-1.7.3"
+              sources."setprototypeof-1.1.1"
+            ];
+          })
+          sources."setprototypeof-1.2.0"
+        ];
+      })
+      sources."extend-3.0.2"
+      (sources."external-editor-3.1.0" // {
+        dependencies = [
+          sources."tmp-0.0.33"
+        ];
+      })
+      sources."fast-copy-2.1.1"
+      sources."figures-3.2.0"
+      sources."file-type-16.3.0"
+      sources."fill-range-7.0.1"
+      sources."filter-obj-1.1.0"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."find-up-4.1.0"
+      sources."follow-redirects-1.13.3"
+      sources."form-data-3.0.1"
+      sources."forwarded-0.1.2"
+      sources."fresh-0.5.2"
+      sources."fs-exists-cached-1.0.0"
+      sources."fs-extra-8.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.3.2"
+      sources."function-bind-1.1.1"
+      sources."gatsby-core-utils-2.2.0"
+      (sources."gatsby-recipes-0.13.0" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."execa-4.1.0"
+          sources."get-stream-5.2.0"
+          sources."is-stream-2.0.0"
+          sources."npm-run-path-4.0.1"
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."strip-ansi-6.0.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."gatsby-telemetry-2.2.0"
+      sources."gensync-1.0.0-beta.2"
+      sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
+      sources."get-stdin-4.0.1"
+      sources."get-stream-4.1.0"
+      sources."git-up-4.0.2"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.2"
+      sources."global-dirs-3.0.0"
+      sources."globals-11.12.0"
+      sources."got-9.6.0"
+      sources."graceful-fs-4.2.6"
+      sources."graphql-15.5.0"
+      sources."graphql-compose-7.25.1"
+      sources."graphql-subscriptions-1.2.1"
+      sources."graphql-type-json-0.3.2"
+      sources."has-1.0.3"
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
+      sources."has-yarn-2.1.0"
+      sources."hicat-0.8.0"
+      sources."highlight.js-10.7.2"
+      sources."hosted-git-info-3.0.8"
+      (sources."htmlparser2-3.10.1" // {
+        dependencies = [
+          sources."entities-1.1.2"
+        ];
+      })
+      sources."http-cache-semantics-4.1.0"
+      (sources."http-errors-1.7.2" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."human-signals-1.1.1"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.2.1"
+      sources."import-lazy-2.1.0"
+      sources."imurmurhash-0.1.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-2.0.0"
+      sources."inline-style-parser-0.1.1"
+      (sources."inquirer-7.3.3" // {
+        dependencies = [
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."ipaddr.js-1.9.1"
+      sources."is-alphabetical-1.0.4"
+      sources."is-alphanumeric-1.0.0"
+      sources."is-alphanumerical-1.0.4"
+      sources."is-binary-path-2.1.0"
+      sources."is-buffer-2.0.5"
+      sources."is-ci-2.0.0"
+      sources."is-core-module-2.2.0"
+      sources."is-decimal-1.0.4"
+      sources."is-docker-2.2.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-hexadecimal-1.0.4"
+      sources."is-installed-globally-0.4.0"
+      (sources."is-invalid-path-0.1.0" // {
+        dependencies = [
+          sources."is-extglob-1.0.0"
+          sources."is-glob-2.0.1"
+        ];
+      })
+      sources."is-npm-5.0.0"
+      sources."is-number-7.0.0"
+      sources."is-obj-2.0.0"
+      sources."is-path-inside-3.0.3"
+      sources."is-plain-obj-2.1.0"
+      sources."is-ssh-1.3.2"
+      sources."is-stream-1.1.0"
+      sources."is-typedarray-1.0.0"
+      sources."is-url-1.2.4"
+      sources."is-valid-path-0.1.1"
+      sources."is-whitespace-character-1.0.4"
+      sources."is-word-character-1.0.4"
+      sources."is-wsl-2.2.0"
+      sources."is-yarn-global-0.3.0"
+      sources."isexe-2.0.0"
+      sources."iterall-1.3.0"
+      (sources."jest-diff-25.5.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jest-get-type-25.2.6"
+      (sources."joi-17.4.0" // {
+        dependencies = [
+          sources."@hapi/hoek-9.1.1"
+          sources."@hapi/topo-5.0.0"
+        ];
+      })
+      sources."js-tokens-4.0.0"
+      sources."jsesc-2.5.2"
+      sources."json-buffer-3.0.0"
+      sources."json5-2.2.0"
+      sources."jsonfile-4.0.0"
+      sources."keyv-3.1.0"
+      sources."kleur-3.0.3"
+      sources."latest-version-5.1.0"
+      sources."locate-path-5.0.0"
+      sources."lock-1.1.0"
+      sources."lodash-4.17.21"
+      sources."lodash.isplainobject-4.0.6"
+      sources."longest-streak-2.0.4"
+      sources."loose-envify-1.4.0"
+      sources."lower-case-2.0.2"
+      sources."lowercase-keys-1.0.1"
+      sources."lru-cache-6.0.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."markdown-escapes-1.0.4"
+      sources."markdown-table-2.0.0"
+      sources."mdast-util-compact-2.0.1"
+      sources."mdast-util-mdx-0.1.1"
+      sources."mdast-util-mdx-expression-0.1.1"
+      sources."mdast-util-mdx-jsx-0.1.4"
+      sources."mdast-util-mdxjs-esm-0.1.1"
+      sources."mdast-util-to-markdown-0.6.5"
+      sources."mdast-util-to-string-2.0.0"
+      sources."meant-1.0.3"
+      sources."media-typer-0.3.0"
+      sources."merge-descriptors-1.0.1"
+      sources."merge-stream-2.0.0"
+      sources."methods-1.1.2"
+      sources."micromark-2.11.4"
+      sources."micromark-extension-mdx-0.2.1"
+      sources."micromark-extension-mdx-expression-0.3.2"
+      sources."micromark-extension-mdx-jsx-0.3.3"
+      sources."micromark-extension-mdx-md-0.1.1"
+      sources."micromark-extension-mdxjs-0.3.0"
+      sources."micromark-extension-mdxjs-esm-0.3.1"
+      sources."mime-1.6.0"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
+      sources."mimic-fn-2.1.0"
+      sources."mimic-response-1.0.1"
+      sources."min-indent-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mitt-1.2.0"
+      sources."mkdirp-0.5.5"
+      sources."ms-2.1.2"
+      sources."mute-stream-0.0.8"
+      sources."negotiator-0.6.2"
+      sources."nice-try-1.0.5"
+      sources."no-case-3.0.4"
+      sources."node-eta-0.9.0"
+      sources."node-fetch-2.6.1"
+      sources."node-object-hash-2.3.1"
+      sources."node-releases-1.1.71"
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-3.3.0"
+      sources."npm-run-path-2.0.2"
+      sources."nth-check-1.0.2"
+      sources."object-assign-4.1.1"
+      sources."object-inspect-1.9.0"
+      sources."object-path-0.11.5"
+      sources."on-finished-2.3.0"
+      sources."once-1.4.0"
+      sources."onetime-5.1.2"
+      sources."open-7.4.2"
+      sources."opentracing-0.14.5"
+      sources."os-tmpdir-1.0.2"
+      sources."p-cancelable-1.1.0"
+      sources."p-finally-1.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."parse-entities-2.0.0"
+      sources."parse-path-4.0.3"
+      sources."parse-url-5.0.2"
+      sources."parseurl-1.3.3"
+      sources."pascal-case-3.1.2"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
+      sources."path-parse-1.0.6"
+      sources."path-to-regexp-0.1.7"
+      sources."peek-readable-3.1.3"
+      sources."picomatch-2.2.2"
+      sources."pkg-dir-4.2.0"
+      sources."prepend-http-2.0.0"
+      sources."prettier-2.2.1"
+      sources."pretty-error-2.1.2"
+      (sources."pretty-format-25.5.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
+      sources."progress-2.0.3"
+      sources."prompts-2.4.1"
+      sources."prop-types-15.7.2"
+      sources."proper-lockfile-4.1.2"
+      sources."protocols-1.4.8"
+      sources."proxy-addr-2.0.6"
+      sources."pump-3.0.0"
+      sources."pupa-2.1.1"
+      sources."qs-6.10.1"
+      sources."query-string-6.14.1"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      (sources."rc-1.2.8" // {
+        dependencies = [
+          sources."ini-1.3.8"
+        ];
+      })
+      sources."react-is-16.13.1"
+      sources."read-1.0.7"
+      sources."readable-stream-3.6.0"
+      sources."readable-web-to-node-stream-3.0.1"
+      sources."readdirp-3.5.0"
+      sources."redux-4.0.5"
+      sources."regenerator-runtime-0.13.8"
+      sources."registry-auth-token-4.2.1"
+      sources."registry-url-5.1.0"
+      sources."remark-mdx-2.0.0-next.9"
+      (sources."remark-mdxjs-2.0.0-next.8" // {
+        dependencies = [
+          sources."@babel/core-7.10.5"
+          sources."@babel/helper-plugin-utils-7.10.4"
+          sources."@babel/plugin-syntax-jsx-7.10.4"
+          sources."semver-5.7.1"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."remark-parse-6.0.3" // {
+        dependencies = [
+          sources."parse-entities-1.2.2"
+          sources."unist-util-remove-position-1.1.4"
+          sources."unist-util-visit-1.4.1"
+        ];
+      })
+      sources."remark-stringify-8.1.1"
+      (sources."renderkid-2.0.5" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."repeat-string-1.6.1"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."resolve-1.20.0"
+      sources."resolve-cwd-3.0.0"
+      sources."resolve-from-5.0.0"
+      sources."responselike-1.0.2"
+      sources."restore-cursor-3.1.0"
+      sources."retry-0.12.0"
+      sources."rimraf-3.0.2"
+      sources."run-async-2.4.1"
+      (sources."rxjs-6.6.7" // {
+        dependencies = [
+          sources."tslib-1.14.1"
+        ];
+      })
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."semver-7.3.5"
+      (sources."semver-diff-3.1.1" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."send-0.17.1" // {
+        dependencies = [
+          (sources."debug-2.6.9" // {
+            dependencies = [
+              sources."ms-2.0.0"
+            ];
+          })
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
+      sources."setprototypeof-1.1.1"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."side-channel-1.0.4"
+      sources."signal-exit-3.0.3"
+      sources."single-trailing-newline-1.0.0"
+      sources."sisteransi-1.0.5"
+      sources."source-map-0.7.3"
+      sources."split-on-first-1.1.0"
+      sources."stack-trace-0.0.10"
+      sources."state-toggle-1.0.3"
+      sources."statuses-1.5.0"
+      sources."strict-uri-encode-2.0.0"
+      (sources."string-width-4.2.2" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."string_decoder-1.3.0"
+      sources."stringify-entities-3.1.0"
+      (sources."strip-ansi-5.2.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+        ];
+      })
+      sources."strip-eof-1.0.0"
+      sources."strip-final-newline-2.0.0"
+      sources."strip-indent-3.0.0"
+      sources."strip-json-comments-2.0.1"
+      sources."strtok3-6.0.8"
+      sources."style-to-object-0.3.0"
+      sources."supports-color-5.5.0"
+      sources."symbol-observable-1.2.0"
+      sources."term-size-2.2.1"
+      sources."through-2.3.8"
+      sources."tmp-0.2.1"
+      sources."to-fast-properties-2.0.0"
+      sources."to-readable-stream-1.0.0"
+      sources."to-regex-range-5.0.1"
+      sources."toidentifier-1.0.0"
+      sources."token-types-2.1.1"
+      sources."trim-0.0.1"
+      sources."trim-trailing-lines-1.1.4"
+      sources."trough-1.0.5"
+      sources."tslib-2.1.0"
+      sources."type-fest-0.20.2"
+      sources."type-is-1.6.18"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."unherit-1.1.3"
+      sources."unified-8.4.2"
+      sources."unique-string-2.0.0"
+      sources."unist-util-is-3.0.0"
+      (sources."unist-util-remove-2.1.0" // {
+        dependencies = [
+          sources."unist-util-is-4.1.0"
+        ];
+      })
+      sources."unist-util-remove-position-3.0.0"
+      sources."unist-util-stringify-position-2.0.3"
+      (sources."unist-util-visit-2.0.3" // {
+        dependencies = [
+          sources."unist-util-is-4.1.0"
+          sources."unist-util-visit-parents-3.1.1"
+        ];
+      })
+      sources."unist-util-visit-parents-2.1.2"
+      sources."universalify-0.1.2"
+      sources."unpipe-1.0.0"
+      (sources."update-notifier-5.1.0" // {
+        dependencies = [
+          sources."boxen-5.0.1"
+          sources."camelcase-6.2.0"
+        ];
+      })
+      sources."url-parse-lax-3.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."utila-0.4.0"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.4.0"
+      sources."vary-1.1.2"
+      sources."vfile-4.2.1"
+      sources."vfile-location-2.0.6"
+      sources."vfile-message-2.0.4"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      sources."widest-line-3.1.0"
+      (sources."wrap-ansi-7.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."write-file-atomic-3.0.3"
+      sources."ws-7.4.4"
+      sources."xdg-basedir-4.0.0"
+      sources."xstate-4.17.1"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.1"
+      sources."yallist-4.0.0"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
+      sources."yoga-layout-prebuilt-1.10.0"
+      (sources."yurnalist-2.1.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      sources."zwitch-1.0.5"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Gatsby command-line interface for creating new sites and running Gatsby commands";
+      homepage = "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-cli#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   get-graphql-schema = nodeEnv.buildNodePackage {
     name = "get-graphql-schema";
     packageName = "get-graphql-schema";
@@ -79032,7 +82273,7 @@ in
     dependencies = [
       sources."async-2.6.3"
       sources."debug-4.3.2"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.groupby-4.6.0"
       sources."microee-0.0.6"
       sources."minilog-3.1.0"
@@ -79095,8 +82336,8 @@ in
       sources."lodash.get-4.4.2"
       sources."looper-4.0.0"
       sources."lrucache-1.0.3"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."moment-2.29.1"
@@ -79174,7 +82415,7 @@ in
       sources."separator-escape-0.0.1"
       sources."sha.js-2.4.5"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.5.1"
+      sources."socks-2.6.0"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -79255,15 +82496,15 @@ in
   gitmoji-cli = nodeEnv.buildNodePackage {
     name = "gitmoji-cli";
     packageName = "gitmoji-cli";
-    version = "3.2.18";
+    version = "3.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.2.18.tgz";
-      sha512 = "2H4Y6kXvYRBdh42FUz8gaLkQ5AvtYYBXRgRElXjX/st4QhG+bgHdnCFGYoTbrVc2uA2vS63HtUS8AJ7SNE6Rew==";
+      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.3.1.tgz";
+      sha512 = "wsCS8L8QTb9ghnJJpn1qKj+LokhGQ7OlKSM/n6/LhB8E4w/Pn4hiSgqcBthaL5J6CwJiWjpbNSA4t3sE0yqEPw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -79277,7 +82518,8 @@ in
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/minimist-1.2.1"
       sources."@types/normalize-package-data-2.4.0"
-      sources."ajv-6.12.6"
+      sources."ajv-7.2.4"
+      sources."ajv-formats-1.6.1"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -79287,14 +82529,14 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
-      sources."ansi-escapes-4.3.1"
+      sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."arrify-1.0.1"
       sources."atomically-1.7.0"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
-      (sources."boxen-5.0.0" // {
+      (sources."boxen-5.0.1" // {
         dependencies = [
           sources."camelcase-6.2.0"
           sources."type-fest-0.20.2"
@@ -79314,14 +82556,18 @@ in
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.5.0"
+      sources."cli-spinners-2.6.0"
       sources."cli-width-3.0.0"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."conf-7.1.2"
-      sources."configstore-5.0.1"
+      sources."conf-9.0.2"
+      (sources."configstore-5.0.1" // {
+        dependencies = [
+          sources."dot-prop-5.3.0"
+        ];
+      })
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
       sources."debounce-fn-4.0.0"
@@ -79335,18 +82581,17 @@ in
       sources."deep-extend-0.6.0"
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
-      sources."dot-prop-5.3.0"
+      sources."dot-prop-6.0.1"
       sources."duplexer3-0.1.4"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
-      sources."env-paths-2.2.0"
+      sources."env-paths-2.2.1"
       sources."error-ex-1.3.2"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."execa-5.0.0"
       sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-json-stable-stringify-2.1.0"
       sources."figures-3.2.0"
       sources."find-up-3.0.0"
       sources."function-bind-1.1.1"
@@ -79363,7 +82608,7 @@ in
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-yarn-2.1.0"
-      sources."hosted-git-info-3.0.8"
+      sources."hosted-git-info-4.0.2"
       sources."http-cache-semantics-4.1.0"
       sources."human-signals-2.1.0"
       sources."iconv-lite-0.4.24"
@@ -79383,16 +82628,17 @@ in
       sources."is-interactive-1.0.0"
       sources."is-npm-5.0.0"
       sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-plain-obj-1.1.0"
       sources."is-stream-2.0.0"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."is-yarn-global-0.3.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."json-buffer-3.0.0"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-traverse-0.4.1"
+      sources."json-schema-traverse-1.0.0"
       sources."json-schema-typed-7.0.3"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
@@ -79403,8 +82649,8 @@ in
           sources."path-exists-3.0.0"
         ];
       })
-      sources."lodash-4.17.20"
-      sources."log-symbols-4.0.0"
+      sources."lodash-4.17.21"
+      sources."log-symbols-4.1.0"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
@@ -79412,8 +82658,8 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."map-obj-4.1.0"
-      (sources."meow-8.1.2" // {
+      sources."map-obj-4.2.0"
+      (sources."meow-9.0.0" // {
         dependencies = [
           sources."type-fest-0.18.1"
         ];
@@ -79426,7 +82672,7 @@ in
       sources."minimist-options-4.1.0"
       sources."mute-stream-0.0.8"
       sources."node-fetch-2.6.1"
-      sources."normalize-package-data-3.0.0"
+      sources."normalize-package-data-3.0.2"
       sources."normalize-url-4.5.0"
       sources."npm-run-path-4.0.1"
       sources."once-1.4.0"
@@ -79435,7 +82681,7 @@ in
           sources."mimic-fn-2.1.0"
         ];
       })
-      sources."ora-5.3.0"
+      sources."ora-5.4.0"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-limit-2.3.0"
@@ -79481,14 +82727,15 @@ in
       sources."redent-3.0.0"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
+      sources."require-from-string-2.0.2"
       sources."resolve-1.20.0"
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -79501,7 +82748,7 @@ in
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.7"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.0"
       sources."strip-final-newline-2.0.0"
@@ -79513,7 +82760,7 @@ in
       sources."to-readable-stream-1.0.0"
       sources."trim-newlines-3.0.0"
       sources."tslib-1.14.1"
-      sources."type-fest-0.11.0"
+      sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
       sources."update-notifier-5.1.0"
@@ -79529,7 +82776,7 @@ in
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
       sources."yallist-4.0.0"
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -79553,7 +82800,7 @@ in
       sources."@ardatan/aggregate-error-0.0.6"
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -79566,35 +82813,32 @@ in
       sources."@exodus/schemasafe-1.0.0-rc.3"
       sources."@graphql-cli/common-4.1.0"
       sources."@graphql-cli/init-4.1.0"
-      (sources."@graphql-tools/batch-execute-7.0.0" // {
+      (sources."@graphql-tools/batch-execute-7.1.0" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.2.5" // {
-            dependencies = [
-              sources."tslib-2.1.0"
-            ];
-          })
+          sources."@graphql-tools/utils-7.7.1"
+          sources."tslib-2.1.0"
         ];
       })
-      (sources."@graphql-tools/delegate-7.0.10" // {
+      (sources."@graphql-tools/delegate-7.1.1" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.2.5"
+          sources."@graphql-tools/utils-7.7.1"
           sources."tslib-2.1.0"
         ];
       })
       (sources."@graphql-tools/graphql-file-loader-6.2.7" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.2.5"
+          sources."@graphql-tools/utils-7.7.1"
           sources."tslib-2.1.0"
         ];
       })
-      (sources."@graphql-tools/import-6.2.6" // {
+      (sources."@graphql-tools/import-6.3.0" // {
         dependencies = [
           sources."tslib-2.1.0"
         ];
       })
       (sources."@graphql-tools/json-file-loader-6.2.6" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.2.5" // {
+          (sources."@graphql-tools/utils-7.7.1" // {
             dependencies = [
               sources."tslib-2.1.0"
             ];
@@ -79602,21 +82846,23 @@ in
         ];
       })
       sources."@graphql-tools/load-6.2.4"
-      (sources."@graphql-tools/merge-6.2.7" // {
+      (sources."@graphql-tools/merge-6.2.11" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.2.5"
+          sources."@graphql-tools/utils-7.7.1"
           sources."tslib-2.1.0"
         ];
       })
       (sources."@graphql-tools/schema-7.1.3" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.2.5"
+          sources."@graphql-tools/utils-7.7.1"
           sources."tslib-2.1.0"
         ];
       })
-      (sources."@graphql-tools/url-loader-6.8.0" // {
+      (sources."@graphql-tools/url-loader-6.8.2" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.2.5"
+          sources."@graphql-tools/utils-7.7.1"
+          sources."cross-fetch-3.1.1"
+          sources."form-data-4.0.0"
           sources."tslib-2.1.0"
         ];
       })
@@ -79631,7 +82877,7 @@ in
       })
       (sources."@graphql-tools/wrap-7.0.5" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.2.5" // {
+          (sources."@graphql-tools/utils-7.7.1" // {
             dependencies = [
               sources."tslib-2.1.0"
             ];
@@ -79645,14 +82891,14 @@ in
       sources."@nodelib/fs.walk-1.2.6"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/parse-json-4.0.0"
-      sources."@types/websocket-1.0.1"
+      sources."@types/websocket-1.0.2"
       sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
-      (sources."ansi-escapes-4.3.1" // {
+      (sources."ansi-escapes-4.3.2" // {
         dependencies = [
-          sources."type-fest-0.11.0"
+          sources."type-fest-0.21.3"
         ];
       })
       sources."ansi-regex-4.1.0"
@@ -79667,7 +82913,7 @@ in
       sources."available-typed-arrays-1.0.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -79685,7 +82931,7 @@ in
       sources."callsites-3.1.0"
       (sources."camel-case-4.1.2" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."caseless-0.12.0"
@@ -79694,7 +82940,7 @@ in
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-2.1.0"
-      sources."cli-spinners-2.5.0"
+      sources."cli-spinners-2.6.0"
       sources."cli-width-3.0.0"
       (sources."cliui-7.0.4" // {
         dependencies = [
@@ -79741,14 +82987,14 @@ in
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-3.3.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
-      sources."eventsource-1.0.7"
+      sources."eventsource-1.1.0"
       sources."execa-1.0.0"
       sources."extend-3.0.2"
       (sources."external-editor-3.1.0" // {
@@ -79762,15 +83008,15 @@ in
       sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-safe-stringify-2.0.7"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."figlet-1.5.0"
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
-      sources."filter-obj-2.0.1"
+      sources."filter-obj-2.0.2"
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."form-urlencoded-4.2.1"
+      sources."form-urlencoded-4.4.2"
       sources."fs-capacitor-6.2.0"
       sources."fs-extra-9.0.1"
       sources."fs-minipass-2.1.0"
@@ -79782,7 +83028,7 @@ in
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."globby-11.0.1"
       (sources."got-9.6.0" // {
         dependencies = [
@@ -79796,15 +83042,16 @@ in
           sources."cosmiconfig-6.0.0"
         ];
       })
-      sources."graphql-subscriptions-1.2.0"
+      sources."graphql-subscriptions-1.2.1"
       sources."graphql-type-json-0.3.2"
       sources."graphql-upload-11.0.0"
-      sources."graphql-ws-4.1.0"
+      sources."graphql-ws-4.2.2"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
+      sources."has-bigints-1.0.1"
       sources."has-flag-4.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."http-cache-semantics-4.1.0"
       sources."http-errors-1.8.0"
       sources."http-signature-1.2.0"
@@ -79838,7 +83085,7 @@ in
       sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
@@ -79853,15 +83100,15 @@ in
       sources."is-stream-1.1.0"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.4"
+      sources."is-typed-array-1.1.5"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."is-wsl-2.2.0"
       sources."isarray-2.0.5"
       sources."isexe-2.0.0"
       sources."isobject-4.0.0"
-      sources."isomorphic-form-data-2.0.0"
       sources."isomorphic-ws-4.0.1"
       sources."isstream-0.1.2"
       sources."iterall-1.3.0"
@@ -79884,7 +83131,7 @@ in
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
       sources."lines-and-columns-1.1.6"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.toarray-4.4.0"
       (sources."log-symbols-2.2.0" // {
         dependencies = [
@@ -79898,7 +83145,7 @@ in
       })
       (sources."lower-case-2.0.2" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."lowercase-keys-1.0.1"
@@ -79910,8 +83157,8 @@ in
       })
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -79924,7 +83171,7 @@ in
       sources."nice-try-1.0.5"
       (sources."no-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."node-emoji-1.10.0"
@@ -79945,7 +83192,7 @@ in
       sources."oas-validator-5.0.5"
       sources."oauth-sign-0.9.0"
       sources."object-inspect-1.9.0"
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-path-0.11.5"
       sources."object.assign-4.1.2"
@@ -79957,7 +83204,7 @@ in
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."cli-cursor-3.1.0"
-          sources."log-symbols-4.0.0"
+          sources."log-symbols-4.1.0"
           sources."mimic-fn-2.1.0"
           sources."onetime-5.1.2"
           sources."restore-cursor-3.1.0"
@@ -79967,7 +83214,7 @@ in
       sources."original-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."p-any-2.1.0"
-      sources."p-cancelable-2.0.0"
+      sources."p-cancelable-2.1.0"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
@@ -79984,7 +83231,7 @@ in
       sources."parse-json-5.2.0"
       (sources."pascal-case-3.1.2" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."passwd-user-3.0.0"
@@ -80000,7 +83247,7 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."querystringify-2.2.0"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
       sources."reftools-1.1.8"
       sources."regexp.prototype.flags-1.3.1"
@@ -80017,7 +83264,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      (sources."rxjs-6.6.3" // {
+      (sources."rxjs-6.6.7" // {
         dependencies = [
           sources."tslib-1.14.1"
         ];
@@ -80044,14 +83291,14 @@ in
       sources."statuses-1.5.0"
       sources."streamsearch-0.1.2"
       sources."string-env-interpolation-1.0.1"
-      (sources."string-width-4.2.0" // {
+      (sources."string-width-4.2.2" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."strip-ansi-6.0.0"
         ];
       })
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."strip-ansi-5.2.0"
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
@@ -80073,10 +83320,11 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.3.1"
+      sources."unbox-primitive-1.0.1"
       sources."universalify-1.0.0"
       sources."unixify-1.0.0"
       sources."uri-js-4.4.1"
-      sources."url-parse-1.4.7"
+      sources."url-parse-1.5.1"
       sources."url-parse-lax-3.0.0"
       sources."uuid-3.4.0"
       sources."valid-url-1.0.9"
@@ -80093,12 +83341,12 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.2"
-      sources."y18n-5.0.5"
+      sources."ws-7.4.4"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
-      sources."yaml-1.10.0"
+      sources."yaml-1.10.2"
       sources."yargs-16.0.3"
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -80113,162 +83361,50 @@ in
   grunt-cli = nodeEnv.buildNodePackage {
     name = "grunt-cli";
     packageName = "grunt-cli";
-    version = "1.3.2";
+    version = "1.4.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz";
-      sha512 = "8OHDiZZkcptxVXtMfDxJvmN7MVJNE8L/yIcPb4HB7TlyFD1kDvjHrb62uhySsU14wJx9ORMnTuhRMQ40lH/orQ==";
+      url = "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.2.tgz";
+      sha512 = "wsu6BZh7KCnfeaSkDrKIAvOlqGKxNRTZjc8xfZlvxCByQIqUfZ31kh5uHpPnhQ4NdVgvaWaVxa1LUbVU80nACw==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
       sources."array-each-1.0.1"
       sources."array-slice-1.1.0"
-      sources."array-unique-0.3.2"
-      sources."assign-symbols-1.0.0"
-      sources."atob-2.1.2"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."braces-2.3.2" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."cache-base-1.0.1"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      sources."collection-visit-1.0.0"
-      sources."component-emitter-1.3.0"
-      sources."copy-descriptor-0.1.1"
-      sources."debug-2.6.9"
-      sources."decode-uri-component-0.2.0"
-      sources."define-property-2.0.2"
+      sources."braces-3.0.2"
       sources."detect-file-1.0.0"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."expand-tilde-2.0.2"
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."findup-sync-2.0.0"
+      sources."fill-range-7.0.1"
+      sources."findup-sync-4.0.0"
       sources."fined-1.2.0"
       sources."flagged-respawn-1.0.1"
       sources."for-in-1.0.2"
       sources."for-own-1.0.0"
-      sources."fragment-cache-0.2.1"
       sources."function-bind-1.1.1"
-      sources."get-value-2.0.6"
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
       sources."grunt-known-options-1.1.1"
       sources."has-1.0.3"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          sources."kind-of-4.0.0"
-        ];
-      })
       sources."homedir-polyfill-1.0.3"
       sources."ini-1.3.8"
       sources."interpret-1.1.0"
       sources."is-absolute-1.0.0"
-      sources."is-accessor-descriptor-1.0.0"
-      sources."is-buffer-1.1.6"
       sources."is-core-module-2.2.0"
-      sources."is-data-descriptor-1.0.0"
-      sources."is-descriptor-1.0.2"
-      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-glob-3.1.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
+      sources."is-glob-4.0.1"
+      sources."is-number-7.0.0"
       sources."is-plain-object-2.0.4"
       sources."is-relative-1.0.0"
       sources."is-unc-path-1.0.0"
       sources."is-windows-1.0.2"
-      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."kind-of-6.0.3"
-      sources."liftoff-2.5.0"
+      sources."liftup-3.0.1"
       sources."make-iterator-1.0.1"
       sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
-      sources."micromatch-3.1.10"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      sources."ms-2.0.0"
-      sources."nanomatch-1.2.13"
+      sources."micromatch-4.0.2"
       sources."nopt-4.0.3"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."object-visit-1.0.1"
       sources."object.defaults-1.1.0"
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
@@ -80277,96 +83413,16 @@ in
       sources."osenv-0.1.5"
       sources."parse-filepath-1.0.2"
       sources."parse-passwd-1.0.0"
-      sources."pascalcase-0.1.1"
       sources."path-parse-1.0.6"
       sources."path-root-0.1.1"
       sources."path-root-regex-0.1.2"
-      sources."posix-character-classes-0.1.1"
-      sources."rechoir-0.6.2"
-      sources."regex-not-1.0.2"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
+      sources."picomatch-2.2.2"
+      sources."rechoir-0.7.0"
       sources."resolve-1.20.0"
       sources."resolve-dir-1.0.1"
-      sources."resolve-url-0.2.1"
-      sources."ret-0.1.15"
-      sources."safe-regex-1.1.0"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.1"
-      sources."split-string-3.1.0"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
+      sources."to-regex-range-5.0.1"
       sources."unc-path-regex-0.1.2"
-      sources."union-value-1.0.1"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
-      sources."urix-0.1.0"
-      sources."use-3.1.1"
-      sources."v8flags-3.1.3"
+      sources."v8flags-3.2.0"
       sources."which-1.3.1"
     ];
     buildInputs = globalBuildInputs;
@@ -80382,10 +83438,10 @@ in
   makam = nodeEnv.buildNodePackage {
     name = "makam";
     packageName = "makam";
-    version = "0.7.39";
+    version = "0.7.40";
     src = fetchurl {
-      url = "https://registry.npmjs.org/makam/-/makam-0.7.39.tgz";
-      sha512 = "6XvSBJfpz1Jr5UHajYsKKLDlFcdYuhVmOJu3IqKsD14BcYoi+oZ+wfta8CVbKvRJDT7mF7e9dzCei8+nlsA3kA==";
+      url = "https://registry.npmjs.org/makam/-/makam-0.7.40.tgz";
+      sha512 = "EfuAPhLvKuN2ruOqyDpG8epeaDzAKg/6K5BgaDMaivJ9+DC84eI7PsluBYe01cuEJGaOoQCtO2mGKwMy7o2DNw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -80434,8 +83490,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
@@ -80498,7 +83554,7 @@ in
       sources."is-stream-1.1.0"
       sources."iterall-1.3.0"
       sources."js-tokens-3.0.2"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."node-fetch-1.7.3"
       sources."pad-component-0.0.1"
       sources."pluralize-5.1.0"
@@ -80529,7 +83585,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ansi-escapes-4.3.1"
+      sources."ansi-escapes-4.3.2"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
       sources."ansi-term-0.0.2"
@@ -80541,22 +83597,13 @@ in
       sources."cardinal-2.1.1"
       sources."chalk-1.1.3"
       sources."charm-0.1.2"
-      (sources."cli-table-0.3.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."cli-table-0.3.6"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
+      sources."colors-1.0.3"
       sources."core-util-is-1.0.2"
       sources."drawille-blessed-contrib-1.0.0"
       sources."drawille-canvas-blessed-contrib-0.1.3"
-      sources."emoji-regex-8.0.0"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       (sources."event-stream-0.9.8" // {
@@ -80569,13 +83616,12 @@ in
       sources."has-flag-4.0.0"
       sources."here-0.0.2"
       sources."inherits-2.0.4"
-      sources."is-fullwidth-code-point-3.0.0"
       sources."isarray-0.0.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.toarray-4.4.0"
       sources."map-canvas-0.1.5"
       sources."marked-0.7.0"
-      (sources."marked-terminal-4.1.0" // {
+      (sources."marked-terminal-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
@@ -80593,12 +83639,6 @@ in
       sources."redeyed-2.1.1"
       sources."sax-1.2.4"
       sources."sparkline-0.1.2"
-      (sources."string-width-4.2.0" // {
-        dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."strip-ansi-6.0.0"
-        ];
-      })
       sources."string_decoder-0.10.31"
       sources."strip-ansi-3.0.1"
       sources."supports-color-2.0.0"
@@ -80607,9 +83647,9 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."systeminformation-4.34.9"
+      sources."systeminformation-4.34.19"
       sources."term-canvas-0.0.5"
-      sources."type-fest-0.11.0"
+      sources."type-fest-0.21.3"
       sources."wordwrap-0.0.3"
       sources."x256-0.0.2"
       sources."xml2js-0.4.23"
@@ -80674,7 +83714,7 @@ in
       sources."async-settle-1.0.0"
       sources."atob-2.1.2"
       sources."bach-1.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -80725,7 +83765,11 @@ in
       sources."concat-stream-1.6.2"
       sources."convert-source-map-1.7.0"
       sources."copy-descriptor-0.1.1"
-      sources."copy-props-2.0.4"
+      (sources."copy-props-2.0.5" // {
+        dependencies = [
+          sources."is-plain-object-5.0.0"
+        ];
+      })
       sources."core-util-is-1.0.2"
       sources."d-1.0.1"
       sources."debug-2.6.9"
@@ -80769,7 +83813,7 @@ in
       sources."expand-tilde-2.0.2"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.2.0"
+          sources."type-2.5.0"
         ];
       })
       sources."extend-3.0.2"
@@ -80822,7 +83866,7 @@ in
       sources."gulp-cli-2.3.0"
       sources."gulplog-1.0.0"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -80864,7 +83908,7 @@ in
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
-      sources."just-debounce-1.0.0"
+      sources."just-debounce-1.1.0"
       sources."kind-of-6.0.3"
       sources."last-run-1.1.1"
       sources."lazystream-1.0.0"
@@ -81147,7 +84191,7 @@ in
       sources."component-emitter-1.3.0"
       sources."concat-stream-1.6.2"
       sources."copy-descriptor-0.1.1"
-      sources."copy-props-2.0.4"
+      sources."copy-props-2.0.5"
       sources."core-util-is-1.0.2"
       sources."d-1.0.1"
       sources."debug-2.6.9"
@@ -81157,7 +84201,11 @@ in
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       sources."detect-file-1.0.0"
-      sources."each-props-1.3.2"
+      (sources."each-props-1.3.2" // {
+        dependencies = [
+          sources."is-plain-object-2.0.4"
+        ];
+      })
       sources."error-ex-1.3.2"
       sources."es5-ext-0.10.53"
       sources."es6-iterator-2.0.3"
@@ -81175,13 +84223,14 @@ in
       sources."expand-tilde-2.0.2"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.2.0"
+          sources."type-2.5.0"
         ];
       })
       sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
           sources."is-extendable-1.0.1"
+          sources."is-plain-object-2.0.4"
         ];
       })
       (sources."extglob-2.0.4" // {
@@ -81198,7 +84247,11 @@ in
       })
       sources."find-up-1.1.2"
       sources."findup-sync-3.0.0"
-      sources."fined-1.2.0"
+      (sources."fined-1.2.0" // {
+        dependencies = [
+          sources."is-plain-object-2.0.4"
+        ];
+      })
       sources."flagged-respawn-1.0.1"
       sources."for-in-1.0.2"
       sources."for-own-1.0.0"
@@ -81213,7 +84266,7 @@ in
       sources."graceful-fs-4.2.6"
       sources."gulplog-1.0.0"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -81254,7 +84307,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."is-plain-object-2.0.4"
+      sources."is-plain-object-5.0.0"
       sources."is-relative-1.0.0"
       sources."is-unc-path-1.0.0"
       sources."is-utf8-0.2.1"
@@ -81264,7 +84317,11 @@ in
       sources."isobject-3.0.1"
       sources."kind-of-5.1.0"
       sources."lcid-1.0.0"
-      sources."liftoff-3.1.0"
+      (sources."liftoff-3.1.0" // {
+        dependencies = [
+          sources."is-plain-object-2.0.4"
+        ];
+      })
       sources."load-json-file-1.1.0"
       (sources."make-iterator-1.0.1" // {
         dependencies = [
@@ -81287,6 +84344,7 @@ in
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
           sources."is-extendable-1.0.1"
+          sources."is-plain-object-2.0.4"
         ];
       })
       sources."ms-2.0.0"
@@ -81358,6 +84416,7 @@ in
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
+          sources."is-plain-object-2.0.4"
         ];
       })
       (sources."snapdragon-0.8.2" // {
@@ -81484,7 +84543,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.12.7"
+      sources."uglify-js-3.13.3"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -81514,7 +84573,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."caseless-0.12.0"
@@ -81555,8 +84614,8 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
@@ -81602,24 +84661,31 @@ in
     dependencies = [
       sources."async-2.6.3"
       sources."basic-auth-1.1.0"
+      sources."call-bind-1.0.2"
       sources."colors-1.4.0"
       sources."corser-2.0.1"
       sources."debug-3.2.7"
       sources."ecstatic-3.3.2"
       sources."eventemitter3-4.0.7"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
+      sources."has-1.0.3"
+      sources."has-symbols-1.0.2"
       sources."he-1.2.0"
       sources."http-proxy-1.18.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."mime-1.6.0"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.3"
+      sources."object-inspect-1.9.0"
       sources."opener-1.5.2"
       sources."portfinder-1.0.28"
-      sources."qs-6.9.6"
+      sources."qs-6.10.1"
       sources."requires-port-1.0.0"
       sources."secure-compare-3.0.1"
+      sources."side-channel-1.0.4"
       sources."union-0.5.0"
       sources."url-join-2.0.5"
     ];
@@ -81636,10 +84702,10 @@ in
   hsd = nodeEnv.buildNodePackage {
     name = "hsd";
     packageName = "hsd";
-    version = "2.3.0";
+    version = "2.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/hsd/-/hsd-2.3.0.tgz";
-      sha512 = "tgGO2ortI4HjQrMqmzrp+W3RSadfPdgZWWubNemxnugdiu4gGHCIv2FF3zHZbVd02UVBW+HRKDwqwltvGG+tbQ==";
+      url = "https://registry.npmjs.org/hsd/-/hsd-2.4.0.tgz";
+      sha512 = "DoHhX+opX1RVMCtGgBedvbNqTde4otlrc6HZ+Jhd8sJyokJ2BB8EUl2OZYXrsznGytuZ51D+zGvLv4T9g3GXPw==";
     };
     dependencies = [
       sources."bcfg-0.1.6"
@@ -81661,7 +84727,7 @@ in
       sources."bs32-0.1.6"
       sources."bsert-0.0.10"
       sources."bsock-0.1.9"
-      sources."bsocks-0.2.5"
+      sources."bsocks-0.2.6"
       sources."btcp-0.1.5"
       sources."budp-0.1.6"
       sources."buffer-map-0.0.7"
@@ -81751,7 +84817,7 @@ in
       sources."argparse-1.0.10"
       sources."assert-plus-1.0.0"
       sources."autocast-0.0.4"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."cmdln-4.4.0"
       sources."color-convert-2.0.1"
@@ -81841,7 +84907,7 @@ in
       sources."nan-2.14.2"
       sources."napi-build-utils-1.0.2"
       sources."nel-1.2.0"
-      sources."node-abi-2.19.3"
+      sources."node-abi-2.21.0"
       sources."noop-logger-0.1.1"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
@@ -82017,8 +85083,8 @@ in
       sources."longest-1.0.1"
       sources."lowercase-keys-1.0.1"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
@@ -82112,7 +85178,7 @@ in
     };
     dependencies = [
       sources."async-0.2.10"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."bunyan-1.8.15"
       sources."colors-0.6.2"
@@ -82204,9 +85270,9 @@ in
       sources."@types/jquery-3.5.5"
       sources."@types/sizzle-2.3.2"
       sources."arch-2.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."clipboard-2.0.6"
+      sources."clipboard-2.0.8"
       sources."clipboardy-2.3.0"
       sources."clone-1.0.4"
       sources."concat-map-0.0.1"
@@ -82225,12 +85291,12 @@ in
       sources."historic-readline-1.0.8"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-stream-1.1.0"
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
-      sources."jquery-3.5.1"
-      sources."jquery.terminal-2.21.0"
+      sources."jquery-3.6.0"
+      sources."jquery.terminal-2.22.0"
       sources."jsonfile-2.4.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."line-reader-0.4.0"
@@ -82294,14 +85360,15 @@ in
       sources."ansi-styles-3.2.1"
       (sources."ast-types-0.13.4" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."astral-regex-2.0.0"
       sources."asynckit-0.4.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."bytes-3.1.0"
+      sources."call-bind-1.0.2"
       (sources."chalk-3.0.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -82369,11 +85436,15 @@ in
           sources."string_decoder-0.10.31"
         ];
       })
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       sources."get-uri-3.0.2"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.6"
+      sources."has-1.0.3"
       sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.2"
       sources."http-errors-1.7.3"
       sources."http-proxy-agent-4.0.1"
       sources."https-proxy-agent-5.0.0"
@@ -82383,7 +85454,7 @@ in
       sources."inherits-2.0.4"
       (sources."inquirer-7.3.3" // {
         dependencies = [
-          sources."ansi-escapes-4.3.1"
+          sources."ansi-escapes-4.3.2"
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
           sources."cli-cursor-3.1.0"
@@ -82395,7 +85466,7 @@ in
         ];
       })
       sources."ip-1.1.5"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
@@ -82410,7 +85481,7 @@ in
         ];
       })
       sources."levn-0.3.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash._baseassign-3.2.0"
       sources."lodash._basecopy-3.0.1"
       sources."lodash._bindcallback-3.0.1"
@@ -82432,9 +85503,9 @@ in
       sources."lru-cache-5.1.1"
       sources."macos-release-2.4.1"
       sources."methods-1.1.2"
-      sources."mime-2.5.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-2.5.2"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -82450,15 +85521,20 @@ in
           sources."path-key-2.0.1"
         ];
       })
+      sources."object-inspect-1.9.0"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
-      sources."open-7.4.0"
+      sources."open-7.4.2"
       sources."optionator-0.8.3"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
       sources."p-finally-1.0.0"
       sources."pac-proxy-agent-4.1.0"
-      sources."pac-resolver-4.1.0"
+      (sources."pac-resolver-4.2.0" // {
+        dependencies = [
+          sources."netmask-2.0.2"
+        ];
+      })
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."prelude-ls-1.1.2"
@@ -82466,14 +85542,14 @@ in
       sources."proxy-agent-4.0.1"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      sources."qs-6.9.6"
+      sources."qs-6.10.1"
       sources."raw-body-2.4.1"
       sources."readable-stream-3.6.0"
       sources."restore-cursor-2.0.0"
       sources."rimraf-3.0.2"
       sources."rsvp-3.6.2"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
@@ -82481,6 +85557,7 @@ in
       sources."setprototypeof-1.1.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
       (sources."slice-ansi-3.0.0" // {
         dependencies = [
@@ -82491,7 +85568,7 @@ in
         ];
       })
       sources."smart-buffer-4.1.0"
-      sources."socks-2.5.1"
+      sources."socks-2.6.0"
       sources."socks-proxy-agent-5.0.0"
       sources."source-map-0.6.1"
       sources."split2-3.2.2"
@@ -82504,7 +85581,7 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      (sources."string-width-4.2.0" // {
+      (sources."string-width-4.2.2" // {
         dependencies = [
           sources."emoji-regex-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
@@ -82532,7 +85609,7 @@ in
       sources."tree-kill-1.2.2"
       sources."tslib-1.14.1"
       sources."type-check-0.3.2"
-      sources."type-fest-0.11.0"
+      sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
@@ -82551,7 +85628,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."xregexp-2.0.0"
       sources."yallist-3.1.1"
     ];
@@ -82565,20 +85642,20 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  "iosevka-https://github.com/be5invis/Iosevka/archive/v4.5.0.tar.gz" = nodeEnv.buildNodePackage {
+  "iosevka-https://github.com/be5invis/Iosevka/archive/v5.0.2.tar.gz" = nodeEnv.buildNodePackage {
     name = "iosevka";
     packageName = "iosevka";
-    version = "4.5.0";
+    version = "5.0.2";
     src = fetchurl {
-      name = "iosevka-4.5.0.tar.gz";
-      url = "https://codeload.github.com/be5invis/Iosevka/tar.gz/v4.5.0";
-      sha256 = "f6dc0160e927241c7a63f5278d6e19b1da93f23defa02486b9a3ac7bdd3bde74";
+      name = "iosevka-5.0.2.tar.gz";
+      url = "https://codeload.github.com/be5invis/Iosevka/tar.gz/v5.0.2";
+      sha256 = "93aada519e3014b472b3ae1e33a139bcc588618239393735ff88d9d0822d7ced";
     };
     dependencies = [
       sources."@iarna/toml-2.2.5"
-      sources."@ot-builder/bin-composite-types-1.0.1"
-      sources."@ot-builder/bin-util-1.0.1"
-      (sources."@ot-builder/cli-help-shower-1.0.1" // {
+      sources."@ot-builder/bin-composite-types-1.0.3"
+      sources."@ot-builder/bin-util-1.0.3"
+      (sources."@ot-builder/cli-help-shower-1.0.3" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
@@ -82588,7 +85665,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      (sources."@ot-builder/cli-proc-1.0.1" // {
+      (sources."@ot-builder/cli-proc-1.0.3" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
@@ -82598,7 +85675,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      (sources."@ot-builder/cli-shared-1.0.1" // {
+      (sources."@ot-builder/cli-shared-1.0.3" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
@@ -82608,36 +85685,36 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."@ot-builder/common-impl-1.0.1"
-      sources."@ot-builder/errors-1.0.1"
-      sources."@ot-builder/io-bin-cff-1.0.1"
-      sources."@ot-builder/io-bin-encoding-1.0.1"
-      sources."@ot-builder/io-bin-ext-private-1.0.1"
-      sources."@ot-builder/io-bin-font-1.0.1"
-      sources."@ot-builder/io-bin-glyph-store-1.0.1"
-      sources."@ot-builder/io-bin-layout-1.0.1"
-      sources."@ot-builder/io-bin-metadata-1.0.1"
-      sources."@ot-builder/io-bin-metric-1.0.1"
-      sources."@ot-builder/io-bin-name-1.0.1"
-      sources."@ot-builder/io-bin-sfnt-1.0.1"
-      sources."@ot-builder/io-bin-ttf-1.0.1"
-      sources."@ot-builder/ot-1.0.1"
-      sources."@ot-builder/ot-encoding-1.0.1"
-      sources."@ot-builder/ot-ext-private-1.0.1"
-      sources."@ot-builder/ot-glyphs-1.0.1"
-      sources."@ot-builder/ot-layout-1.0.1"
-      sources."@ot-builder/ot-metadata-1.0.1"
-      sources."@ot-builder/ot-name-1.0.1"
-      sources."@ot-builder/ot-sfnt-1.0.1"
-      sources."@ot-builder/ot-standard-glyph-namer-1.0.1"
-      sources."@ot-builder/prelude-1.0.1"
-      sources."@ot-builder/primitive-1.0.1"
-      sources."@ot-builder/rectify-1.0.1"
-      sources."@ot-builder/stat-glyphs-1.0.1"
-      sources."@ot-builder/trace-1.0.1"
-      sources."@ot-builder/var-store-1.0.1"
-      sources."@ot-builder/variance-1.0.1"
-      sources."@unicode/unicode-13.0.0-1.0.3"
+      sources."@ot-builder/common-impl-1.0.3"
+      sources."@ot-builder/errors-1.0.3"
+      sources."@ot-builder/io-bin-cff-1.0.3"
+      sources."@ot-builder/io-bin-encoding-1.0.3"
+      sources."@ot-builder/io-bin-ext-private-1.0.3"
+      sources."@ot-builder/io-bin-font-1.0.3"
+      sources."@ot-builder/io-bin-glyph-store-1.0.3"
+      sources."@ot-builder/io-bin-layout-1.0.3"
+      sources."@ot-builder/io-bin-metadata-1.0.3"
+      sources."@ot-builder/io-bin-metric-1.0.3"
+      sources."@ot-builder/io-bin-name-1.0.3"
+      sources."@ot-builder/io-bin-sfnt-1.0.3"
+      sources."@ot-builder/io-bin-ttf-1.0.3"
+      sources."@ot-builder/ot-1.0.3"
+      sources."@ot-builder/ot-encoding-1.0.3"
+      sources."@ot-builder/ot-ext-private-1.0.3"
+      sources."@ot-builder/ot-glyphs-1.0.3"
+      sources."@ot-builder/ot-layout-1.0.3"
+      sources."@ot-builder/ot-metadata-1.0.3"
+      sources."@ot-builder/ot-name-1.0.3"
+      sources."@ot-builder/ot-sfnt-1.0.3"
+      sources."@ot-builder/ot-standard-glyph-namer-1.0.3"
+      sources."@ot-builder/prelude-1.0.3"
+      sources."@ot-builder/primitive-1.0.3"
+      sources."@ot-builder/rectify-1.0.3"
+      sources."@ot-builder/stat-glyphs-1.0.3"
+      sources."@ot-builder/trace-1.0.3"
+      sources."@ot-builder/var-store-1.0.3"
+      sources."@ot-builder/variance-1.0.3"
+      sources."@unicode/unicode-13.0.0-1.0.6"
       sources."amdefine-1.0.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
@@ -82645,8 +85722,7 @@ in
       sources."async-0.9.2"
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
-      sources."bluebird-3.7.2"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."camelcase-5.3.1"
       sources."chainsaw-0.0.9"
@@ -82700,17 +85776,14 @@ in
       sources."find-up-4.1.0"
       sources."fs-extra-9.1.0"
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.6"
-      sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."hashish-0.0.4"
       sources."iconv-lite-0.6.2"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-core-module-2.2.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."isexe-2.0.0"
       sources."jake-10.8.2"
@@ -82723,12 +85796,11 @@ in
       sources."minimatch-3.0.4"
       sources."mkdirp-1.0.4"
       sources."ms-2.0.0"
-      sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."optionator-0.8.3"
-      sources."ot-builder-1.0.1"
-      (sources."otb-ttc-bundle-1.0.1" // {
+      sources."ot-builder-1.0.3"
+      (sources."otb-ttc-bundle-1.0.3" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
@@ -82745,21 +85817,19 @@ in
       sources."patel-0.34.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
       sources."patrisika-0.22.2"
       sources."patrisika-scopes-0.11.1"
       sources."pegjs-0.10.0"
       sources."prelude-ls-1.1.2"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."resolve-1.20.0"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-3.1.0"
       sources."resumer-0.0.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."semaphore-async-await-1.5.1"
-      (sources."semver-7.3.4" // {
+      (sources."semver-7.3.5" // {
         dependencies = [
           sources."lru-cache-6.0.0"
         ];
@@ -82775,10 +85845,8 @@ in
           sources."tslib-1.14.1"
         ];
       })
-      sources."split-1.0.1"
       sources."sprintf-js-1.0.3"
-      sources."stack-trace-0.0.9"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       (sources."stylus-0.54.8" // {
         dependencies = [
@@ -82790,14 +85858,13 @@ in
       sources."through-2.3.8"
       sources."toposort-2.0.2"
       sources."traverse-0.3.9"
-      sources."ts-process-promises-1.0.2"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."type-check-0.3.2"
-      sources."typo-geom-0.11.1"
+      sources."typo-geom-0.11.2"
       sources."unicoderegexp-0.4.1"
       sources."universalify-2.0.0"
       sources."urix-0.1.0"
-      (sources."verda-1.2.1" // {
+      (sources."verda-1.2.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
@@ -82827,10 +85894,10 @@ in
       sources."wrappy-1.0.2"
       sources."xmldom-0.4.0"
       sources."xpath-0.0.32"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       sources."yargs-16.2.0"
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -82850,7 +85917,7 @@ in
     dependencies = [
       sources."ansi-styles-3.2.1"
       sources."async-0.9.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
@@ -82885,10 +85952,10 @@ in
       sources."ansi-styles-3.2.1"
       sources."any-promise-1.3.0"
       sources."assertion-error-1.1.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."bufrw-1.3.0"
-      sources."chai-4.3.0"
+      sources."chai-4.3.4"
       sources."chai-as-promised-7.1.1"
       sources."chalk-2.4.2"
       sources."check-error-1.0.2"
@@ -82910,7 +85977,7 @@ in
       sources."inherits-2.0.4"
       sources."iterare-1.2.1"
       sources."jaeger-client-3.18.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."long-2.4.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -83020,7 +86087,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.842.0" // {
+      (sources."aws-sdk-2.880.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-3.3.2"
@@ -83030,7 +86097,7 @@ in
       })
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base-64-0.1.0"
       sources."base64-js-1.5.1"
       sources."base64-stream-1.0.0"
@@ -83056,7 +86123,7 @@ in
       sources."charenc-0.0.2"
       sources."chokidar-3.5.1"
       sources."chownr-1.1.4"
-      sources."chroma-js-2.1.0"
+      sources."chroma-js-2.1.1"
       sources."clean-css-4.2.3"
       sources."clean-html-1.5.0"
       sources."cliss-0.0.2"
@@ -83064,7 +86131,7 @@ in
       sources."color-3.1.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.4"
+      sources."color-string-1.5.5"
       sources."combined-stream-1.0.8"
       sources."command-line-usage-4.1.0"
       sources."commander-2.17.1"
@@ -83134,15 +86201,15 @@ in
       sources."diff-match-patch-1.0.5"
       (sources."dom-serializer-1.2.0" // {
         dependencies = [
-          sources."domhandler-4.0.0"
+          sources."domhandler-4.1.0"
         ];
       })
-      sources."domelementtype-2.1.0"
+      sources."domelementtype-2.2.0"
       sources."domexception-1.0.1"
       sources."domhandler-3.3.0"
-      (sources."domutils-2.4.4" // {
+      (sources."domutils-2.5.1" // {
         dependencies = [
-          sources."domhandler-4.0.0"
+          sources."domhandler-4.1.0"
         ];
       })
       sources."ecc-jsbn-0.1.2"
@@ -83181,7 +86248,7 @@ in
       sources."file-uri-to-path-1.0.0"
       sources."fill-range-7.0.1"
       sources."find-up-2.1.0"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."font-awesome-filetypes-2.1.0"
       sources."for-each-property-0.0.4"
       sources."for-each-property-deep-0.0.3"
@@ -83208,7 +86275,7 @@ in
       sources."getpass-0.1.7"
       sources."github-from-package-0.0.0"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."graceful-fs-4.2.6"
       sources."graphlib-2.1.8"
       sources."growly-1.3.0"
@@ -83218,7 +86285,7 @@ in
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."he-1.2.0"
-      sources."highlight.js-10.6.0"
+      sources."highlight.js-10.7.2"
       sources."html-encoding-sniffer-1.0.2"
       sources."html-entities-1.4.0"
       sources."html-minifier-3.5.21"
@@ -83226,7 +86293,7 @@ in
         dependencies = [
           (sources."dom-serializer-0.2.2" // {
             dependencies = [
-              sources."domelementtype-2.1.0"
+              sources."domelementtype-2.2.0"
               sources."entities-2.2.0"
             ];
           })
@@ -83284,7 +86351,7 @@ in
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
@@ -83319,16 +86386,16 @@ in
           sources."commander-2.20.3"
         ];
       })
-      sources."keytar-7.3.0"
-      sources."khroma-1.2.0"
+      sources."keytar-7.6.0"
+      sources."khroma-1.3.0"
       sources."klaw-1.3.1"
       sources."lazyness-1.2.0"
       sources."levenshtein-1.0.5"
       sources."levn-0.3.0"
       sources."linkify-it-2.2.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.20"
-      sources."lodash-es-4.17.20"
+      sources."lodash-4.17.21"
+      sources."lodash-es-4.17.21"
       sources."lodash.padend-4.6.1"
       sources."lodash.repeat-4.1.0"
       sources."lodash.sortby-4.7.0"
@@ -83368,9 +86435,9 @@ in
       sources."md5-2.3.0"
       sources."md5-file-4.0.0"
       sources."mdurl-1.0.1"
-      sources."mermaid-8.9.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mermaid-8.9.2"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-2.1.0"
       (sources."minify-4.1.3" // {
         dependencies = [
@@ -83378,7 +86445,7 @@ in
           sources."debug-4.3.2"
           sources."html-minifier-4.0.0"
           sources."ms-2.1.2"
-          sources."uglify-js-3.12.7"
+          sources."uglify-js-3.13.3"
         ];
       })
       sources."minimatch-3.0.4"
@@ -83395,15 +86462,15 @@ in
       sources."moment-mini-2.24.0"
       sources."ms-2.1.3"
       sources."multiparty-4.2.2"
-      sources."mustache-4.1.0"
-      sources."nanoid-3.1.20"
+      sources."mustache-4.2.0"
+      sources."nanoid-3.1.22"
       sources."napi-build-utils-1.0.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
       sources."needle-2.6.0"
       sources."nextgen-events-1.3.4"
       sources."no-case-2.3.2"
-      (sources."node-abi-2.19.3" // {
+      (sources."node-abi-2.21.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
@@ -83420,7 +86487,7 @@ in
           sources."which-1.3.1"
         ];
       })
-      (sources."node-notifier-8.0.1" // {
+      (sources."node-notifier-8.0.2" // {
         dependencies = [
           sources."uuid-8.3.2"
         ];
@@ -83450,7 +86517,7 @@ in
       })
       sources."omggif-1.0.10"
       sources."once-1.4.0"
-      sources."open-7.4.0"
+      sources."open-7.4.2"
       sources."optionator-0.8.3"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
@@ -83469,7 +86536,7 @@ in
       sources."pipe-functions-1.3.0"
       sources."pn-1.1.0"
       sources."pngjs-5.0.0"
-      sources."prebuild-install-6.0.0"
+      sources."prebuild-install-6.1.1"
       sources."prelude-ls-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."promise-7.3.1"
@@ -83518,7 +86585,7 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."saxes-3.1.11"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."server-destroy-1.0.1"
       sources."set-blocking-2.0.0"
       sources."setimmediate-1.0.5"
@@ -83550,7 +86617,7 @@ in
       sources."source-map-url-0.4.1"
       sources."split-skip-0.0.2"
       sources."sprintf-js-1.1.2"
-      sources."sqlite3-5.0.1"
+      sources."sqlite3-5.0.2"
       sources."sshpk-1.16.1"
       sources."statuses-1.5.0"
       sources."stealthy-require-1.1.1"
@@ -83601,7 +86668,7 @@ in
           sources."q-0.9.7"
         ];
       })
-      sources."terminal-kit-1.47.0"
+      sources."terminal-kit-1.49.3"
       (sources."terser-4.8.0" // {
         dependencies = [
           sources."commander-2.20.3"
@@ -83650,7 +86717,7 @@ in
           sources."punycode-1.3.2"
         ];
       })
-      sources."url-parse-1.4.7"
+      sources."url-parse-1.5.1"
       sources."uslug-git+https://github.com/laurent22/uslug.git#emoji-support"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
@@ -83663,7 +86730,6 @@ in
       sources."whatwg-mimetype-2.3.0"
       sources."whatwg-url-7.1.0"
       sources."which-2.0.2"
-      sources."which-pm-runs-1.0.0"
       sources."wide-align-1.1.3"
       sources."word-wrap-1.2.3"
       sources."wordwrapjs-3.0.0"
@@ -83674,7 +86740,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."xml-name-validator-3.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
@@ -83702,7 +86768,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
@@ -83766,7 +86832,7 @@ in
       sha512 = "znR99e1BHeyEkSvgDDpX0sTiTu+8aQyDl9DawrkOGZTTW8hv0deIFXx87114zJ7gRaDZKVQD/4tr1ifmJp9xhQ==";
     };
     dependencies = [
-      sources."@babel/parser-7.12.16"
+      sources."@babel/parser-7.13.13"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
       sources."catharsis-0.8.11"
@@ -83776,7 +86842,7 @@ in
       sources."js2xmlparser-4.0.1"
       sources."klaw-3.0.0"
       sources."linkify-it-2.2.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."markdown-it-10.0.0"
       sources."markdown-it-anchor-5.3.0"
       sources."marked-0.8.2"
@@ -83809,7 +86875,7 @@ in
       sha512 = "TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==";
     };
     dependencies = [
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."cli-1.0.1"
       sources."concat-map-0.0.1"
@@ -83818,7 +86884,7 @@ in
       sources."date-now-0.1.4"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.1.0"
+          sources."domelementtype-2.2.0"
           sources."entities-2.2.0"
         ];
       })
@@ -83833,7 +86899,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."isarray-0.0.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."minimatch-3.0.4"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
@@ -83906,6 +86972,7 @@ in
     dependencies = [
       sources."argparse-1.0.10"
       sources."asynckit-0.4.0"
+      sources."call-bind-1.0.2"
       sources."combined-stream-1.0.8"
       sources."commander-4.1.1"
       sources."component-emitter-1.3.0"
@@ -83917,23 +86984,29 @@ in
       sources."extend-3.0.2"
       sources."form-data-2.5.1"
       sources."formidable-1.2.2"
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
       sources."graphlib-2.1.8"
+      sources."has-1.0.3"
+      sources."has-symbols-1.0.2"
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
       sources."js-yaml-3.14.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
+      sources."object-inspect-1.9.0"
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
       sources."punycode-2.1.1"
-      sources."qs-6.9.6"
+      sources."qs-6.10.1"
       sources."readable-stream-2.3.7"
       sources."safe-buffer-5.1.2"
+      sources."side-channel-1.0.4"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
       sources."string_decoder-1.1.1"
@@ -83973,7 +87046,7 @@ in
       sources."array-flatten-1.1.1"
       sources."basic-auth-2.0.1"
       sources."body-parser-1.19.0"
-      sources."boxen-5.0.0"
+      sources."boxen-5.0.1"
       sources."bytes-3.1.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
@@ -84054,7 +87127,7 @@ in
       sources."is-installed-globally-0.4.0"
       sources."is-npm-5.0.0"
       sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-promise-2.2.2"
       sources."is-typedarray-1.0.0"
       sources."is-yarn-global-0.3.0"
@@ -84064,7 +87137,7 @@ in
       sources."json-parse-helpfulerror-1.0.3"
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash-id-0.14.0"
       sources."lowdb-1.0.0"
       sources."lowercase-keys-1.0.1"
@@ -84083,8 +87156,8 @@ in
       })
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-1.0.1"
       sources."minimist-1.2.5"
       (sources."morgan-1.10.0" // {
@@ -84093,7 +87166,7 @@ in
         ];
       })
       sources."ms-2.0.0"
-      sources."nanoid-3.1.20"
+      sources."nanoid-3.1.22"
       sources."negotiator-0.6.2"
       sources."normalize-url-4.5.0"
       sources."object-assign-4.1.1"
@@ -84129,7 +87202,7 @@ in
       sources."responselike-1.0.2"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."semver-compare-1.0.0"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
@@ -84147,7 +87220,7 @@ in
       sources."signal-exit-3.0.3"
       sources."statuses-1.5.0"
       sources."steno-0.4.4"
-      (sources."string-width-4.2.0" // {
+      (sources."string-width-4.2.2" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
@@ -84179,10 +87252,10 @@ in
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       sources."yargs-16.2.0"
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -84220,24 +87293,275 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  kaput-cli = nodeEnv.buildNodePackage {
+    name = "kaput-cli";
+    packageName = "kaput-cli";
+    version = "1.1.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/kaput-cli/-/kaput-cli-1.1.1.tgz";
+      sha512 = "JbF3PiO1wNawJnOQlb4nJZ2rvDfDWnD7ROCdzqgFXhqi3XTNXBqjpoC7PT3ylfNR6BGibjchndH27VieqyMA0A==";
+    };
+    dependencies = [
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
+      sources."@oclif/command-1.8.0"
+      (sources."@oclif/config-1.17.0" // {
+        dependencies = [
+          sources."tslib-2.2.0"
+        ];
+      })
+      sources."@oclif/errors-1.3.4"
+      sources."@oclif/linewrap-1.0.0"
+      (sources."@oclif/parser-3.8.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."escape-string-regexp-1.0.5"
+        ];
+      })
+      (sources."@oclif/plugin-help-3.2.2" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."ansi-styles-3.2.1"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          (sources."wrap-ansi-4.0.0" // {
+            dependencies = [
+              sources."string-width-2.1.1"
+              sources."strip-ansi-4.0.0"
+            ];
+          })
+        ];
+      })
+      sources."@oclif/screen-1.0.4"
+      sources."@putdotio/api-client-8.15.1"
+      sources."ajv-6.12.6"
+      sources."ansi-escapes-4.3.2"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.3.0"
+      sources."ansicolors-0.3.2"
+      sources."argparse-1.0.10"
+      sources."array-union-2.1.0"
+      sources."asynckit-0.4.0"
+      sources."axios-0.19.2"
+      sources."braces-3.0.2"
+      sources."call-bind-1.0.2"
+      sources."cardinal-2.1.1"
+      (sources."chalk-4.1.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."chardet-0.7.0"
+      sources."clean-stack-3.0.1"
+      sources."cli-cursor-3.1.0"
+      sources."cli-progress-3.9.0"
+      (sources."cli-ux-5.5.1" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+          sources."tslib-2.2.0"
+        ];
+      })
+      sources."cli-width-3.0.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."colors-1.4.0"
+      sources."combined-stream-1.0.8"
+      (sources."conf-6.2.4" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      (sources."d-1.0.1" // {
+        dependencies = [
+          sources."type-1.2.0"
+        ];
+      })
+      sources."debounce-fn-3.0.1"
+      sources."debug-4.3.2"
+      sources."delayed-stream-1.0.0"
+      sources."dir-glob-3.0.1"
+      sources."dot-prop-5.3.0"
+      sources."dotenv-8.2.0"
+      sources."emoji-regex-8.0.0"
+      sources."env-paths-2.2.1"
+      sources."es5-ext-0.10.53"
+      sources."es6-iterator-2.0.3"
+      sources."es6-symbol-3.1.3"
+      sources."escape-string-regexp-4.0.0"
+      sources."esprima-4.0.1"
+      sources."event-emitter-0.3.5"
+      sources."ext-1.4.0"
+      sources."external-editor-3.1.0"
+      sources."extract-stack-2.0.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-3.2.5"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fastq-1.11.0"
+      (sources."figures-3.2.0" // {
+        dependencies = [
+          sources."escape-string-regexp-1.0.5"
+        ];
+      })
+      sources."fill-range-7.0.1"
+      sources."find-up-3.0.0"
+      (sources."follow-redirects-1.5.10" // {
+        dependencies = [
+          sources."debug-3.1.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."form-data-3.0.1"
+      sources."fs-extra-8.1.0"
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
+      sources."glob-parent-5.1.2"
+      sources."globby-11.0.3"
+      sources."graceful-fs-4.2.6"
+      sources."has-1.0.3"
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
+      sources."hyperlinker-1.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."ignore-5.1.8"
+      sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."inquirer-7.3.3"
+      sources."is-docker-2.2.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-number-7.0.0"
+      sources."is-obj-2.0.0"
+      sources."is-typedarray-1.0.0"
+      sources."is-wsl-2.2.0"
+      sources."isexe-2.0.0"
+      sources."js-base64-2.6.4"
+      sources."js-yaml-3.14.1"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-schema-typed-7.0.3"
+      sources."jsonfile-4.0.0"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.21"
+      sources."lodash._reinterpolate-3.0.0"
+      sources."lodash.template-4.5.0"
+      sources."lodash.templatesettings-4.2.0"
+      sources."lru-cache-6.0.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."merge2-1.4.1"
+      sources."micromatch-4.0.2"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
+      sources."mimic-fn-2.1.0"
+      sources."moment-2.29.1"
+      sources."ms-2.1.2"
+      sources."mute-stream-0.0.8"
+      sources."natural-orderby-2.0.3"
+      sources."next-tick-1.0.0"
+      sources."nice-try-1.0.5"
+      sources."node-downloader-helper-1.0.17"
+      sources."object-inspect-1.9.0"
+      sources."object-treeify-1.1.33"
+      sources."onetime-5.1.2"
+      sources."os-tmpdir-1.0.2"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
+      sources."p-try-2.2.0"
+      (sources."password-prompt-1.1.2" // {
+        dependencies = [
+          sources."ansi-escapes-3.2.0"
+        ];
+      })
+      sources."path-exists-3.0.0"
+      sources."path-key-2.0.1"
+      sources."path-type-4.0.0"
+      sources."picomatch-2.2.2"
+      sources."pkg-up-3.1.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.10.1"
+      sources."queue-microtask-1.2.3"
+      sources."redeyed-2.1.1"
+      sources."restore-cursor-3.1.0"
+      sources."reusify-1.0.4"
+      sources."run-async-2.4.1"
+      sources."run-parallel-1.2.0"
+      sources."rxjs-6.6.7"
+      sources."safer-buffer-2.1.2"
+      sources."semver-7.3.5"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."side-channel-1.0.4"
+      sources."signal-exit-3.0.3"
+      sources."slash-3.0.0"
+      sources."sprintf-js-1.0.3"
+      sources."string-width-4.2.2"
+      sources."strip-ansi-6.0.0"
+      sources."supports-color-5.5.0"
+      (sources."supports-hyperlinks-2.1.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."through-2.3.8"
+      sources."tmp-0.0.33"
+      sources."to-regex-range-5.0.1"
+      sources."tslib-1.14.1"
+      sources."type-2.5.0"
+      sources."type-fest-0.21.3"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."universalify-0.1.2"
+      sources."uri-js-4.4.1"
+      sources."urijs-1.19.6"
+      sources."which-1.3.1"
+      sources."widest-line-3.1.0"
+      sources."wrap-ansi-7.0.0"
+      sources."write-file-atomic-3.0.3"
+      sources."yallist-4.0.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "CLI tools for Put.io";
+      homepage = "https://github.com/davidchalifoux/kaput-cli";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   karma = nodeEnv.buildNodePackage {
     name = "karma";
     packageName = "karma";
-    version = "6.1.0";
+    version = "6.3.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/karma/-/karma-6.1.0.tgz";
-      sha512 = "QmRZ6HdKe6mHd89Az6yb85URRyDbXmn2IBo3lic7cwkkLjDWpjrMJxPAKlwNa5dFM1iHdT+kjtNJM0J5YAH90A==";
+      url = "https://registry.npmjs.org/karma/-/karma-6.3.2.tgz";
+      sha512 = "fo4Wt0S99/8vylZMxNj4cBFyOBBnC1bewZ0QOlePij/2SZVWxqbyLeIddY13q6URa2EpLRW8ixvFRUMjkmo1bw==";
     };
     dependencies = [
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
-      sources."@types/cors-2.8.9"
-      sources."@types/node-14.14.26"
+      sources."@types/cors-2.8.10"
+      sources."@types/node-14.14.37"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
       sources."binary-extensions-2.2.0"
@@ -84280,13 +87604,13 @@ in
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."get-caller-file-2.0.5"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."graceful-fs-4.2.6"
       sources."http-errors-1.7.2"
       sources."http-proxy-1.18.1"
@@ -84300,7 +87624,7 @@ in
       sources."is-number-7.0.0"
       sources."isbinaryfile-4.0.6"
       sources."jsonfile-4.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       (sources."log4js-6.3.0" // {
         dependencies = [
           sources."debug-4.3.2"
@@ -84308,9 +87632,9 @@ in
         ];
       })
       sources."media-typer-0.3.0"
-      sources."mime-2.5.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-2.5.2"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
@@ -84328,11 +87652,11 @@ in
       sources."readdirp-3.5.0"
       sources."require-directory-2.1.1"
       sources."requires-port-1.0.0"
-      sources."rfdc-1.2.0"
+      sources."rfdc-1.3.0"
       sources."rimraf-3.0.2"
       sources."safer-buffer-2.1.2"
       sources."setprototypeof-1.1.1"
-      (sources."socket.io-3.1.1" // {
+      (sources."socket.io-3.1.2" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
@@ -84354,13 +87678,13 @@ in
           sources."ms-2.1.2"
         ];
       })
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."tmp-0.2.1"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."type-is-1.6.18"
-      sources."ua-parser-js-0.7.23"
+      sources."ua-parser-js-0.7.27"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
       sources."utils-merge-1.0.1"
@@ -84368,10 +87692,10 @@ in
       sources."void-elements-2.0.1"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.3"
-      sources."y18n-5.0.5"
+      sources."ws-7.4.4"
+      sources."y18n-5.0.6"
       sources."yargs-16.2.0"
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -84393,7 +87717,7 @@ in
     };
     dependencies = [
       sources."append-buffer-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."buffer-equal-1.0.0"
       sources."call-bind-1.0.2"
@@ -84418,7 +87742,7 @@ in
       sources."glob-stream-6.1.0"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-absolute-1.0.0"
@@ -84501,7 +87825,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
@@ -84589,7 +87913,7 @@ in
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."log-symbols-2.2.0"
       sources."map-age-cleaner-0.1.3"
       (sources."mem-4.3.0" // {
@@ -84597,8 +87921,8 @@ in
           sources."mimic-fn-2.1.0"
         ];
       })
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimatch-3.0.4"
       sources."minimist-0.0.8"
@@ -84740,314 +88064,244 @@ in
   lerna = nodeEnv.buildNodePackage {
     name = "lerna";
     packageName = "lerna";
-    version = "3.22.1";
+    version = "4.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/lerna/-/lerna-3.22.1.tgz";
-      sha512 = "vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg==";
+      url = "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz";
+      sha512 = "DD/i1znurfOmNJb0OBw66NmNqiM8kF6uIrzrJ0wGE3VNdzeOhz9ziWLYiRaZDGGwgbcjOo6eIfcx9O5Qynz+kg==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.12.13"
-      (sources."@evocateur/libnpmaccess-3.1.2" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
-          sources."aproba-2.0.0"
-        ];
-      })
-      (sources."@evocateur/libnpmpublish-1.2.2" // {
-        dependencies = [
-          sources."aproba-2.0.0"
-          sources."semver-5.7.1"
+          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."@evocateur/npm-registry-fetch-4.0.0"
-      (sources."@evocateur/pacote-9.6.5" // {
+      sources."@lerna/add-4.0.0"
+      sources."@lerna/bootstrap-4.0.0"
+      sources."@lerna/changed-4.0.0"
+      sources."@lerna/check-working-tree-4.0.0"
+      sources."@lerna/child-process-4.0.0"
+      sources."@lerna/clean-4.0.0"
+      sources."@lerna/cli-4.0.0"
+      sources."@lerna/collect-uncommitted-4.0.0"
+      sources."@lerna/collect-updates-4.0.0"
+      sources."@lerna/command-4.0.0"
+      (sources."@lerna/conventional-commits-4.0.0" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."pify-5.0.0"
         ];
       })
-      sources."@lerna/add-3.21.0"
-      sources."@lerna/bootstrap-3.21.0"
-      sources."@lerna/changed-3.21.0"
-      sources."@lerna/check-working-tree-3.16.5"
-      sources."@lerna/child-process-3.16.5"
-      sources."@lerna/clean-3.21.0"
-      sources."@lerna/cli-3.18.5"
-      sources."@lerna/collect-uncommitted-3.16.5"
-      sources."@lerna/collect-updates-3.20.0"
-      sources."@lerna/command-3.21.0"
-      (sources."@lerna/conventional-commits-3.22.0" // {
+      (sources."@lerna/create-4.0.0" // {
         dependencies = [
-          sources."pify-4.0.1"
+          sources."pify-5.0.0"
+          sources."yargs-parser-20.2.4"
         ];
       })
-      (sources."@lerna/create-3.22.0" // {
+      sources."@lerna/create-symlink-4.0.0"
+      sources."@lerna/describe-ref-4.0.0"
+      sources."@lerna/diff-4.0.0"
+      sources."@lerna/exec-4.0.0"
+      sources."@lerna/filter-options-4.0.0"
+      sources."@lerna/filter-packages-4.0.0"
+      sources."@lerna/get-npm-exec-opts-4.0.0"
+      sources."@lerna/get-packed-4.0.0"
+      sources."@lerna/github-client-4.0.0"
+      sources."@lerna/gitlab-client-4.0.0"
+      sources."@lerna/global-options-4.0.0"
+      sources."@lerna/has-npm-version-4.0.0"
+      sources."@lerna/import-4.0.0"
+      sources."@lerna/info-4.0.0"
+      sources."@lerna/init-4.0.0"
+      sources."@lerna/link-4.0.0"
+      sources."@lerna/list-4.0.0"
+      sources."@lerna/listable-4.0.0"
+      sources."@lerna/log-packed-4.0.0"
+      (sources."@lerna/npm-conf-4.0.0" // {
         dependencies = [
-          sources."pify-4.0.1"
+          sources."pify-5.0.0"
         ];
       })
-      sources."@lerna/create-symlink-3.16.2"
-      sources."@lerna/describe-ref-3.16.5"
-      sources."@lerna/diff-3.21.0"
-      sources."@lerna/exec-3.21.0"
-      sources."@lerna/filter-options-3.20.0"
-      sources."@lerna/filter-packages-3.18.0"
-      sources."@lerna/get-npm-exec-opts-3.13.0"
-      sources."@lerna/get-packed-3.16.0"
-      sources."@lerna/github-client-3.22.0"
-      sources."@lerna/gitlab-client-3.15.0"
-      sources."@lerna/global-options-3.13.0"
-      sources."@lerna/has-npm-version-3.16.5"
-      sources."@lerna/import-3.22.0"
-      sources."@lerna/info-3.21.0"
-      sources."@lerna/init-3.21.0"
-      sources."@lerna/link-3.21.0"
-      sources."@lerna/list-3.21.0"
-      sources."@lerna/listable-3.18.5"
-      sources."@lerna/log-packed-3.16.0"
-      (sources."@lerna/npm-conf-3.16.0" // {
+      sources."@lerna/npm-dist-tag-4.0.0"
+      sources."@lerna/npm-install-4.0.0"
+      (sources."@lerna/npm-publish-4.0.0" // {
         dependencies = [
-          sources."pify-4.0.1"
-        ];
-      })
-      sources."@lerna/npm-dist-tag-3.18.5"
-      sources."@lerna/npm-install-3.16.5"
-      (sources."@lerna/npm-publish-3.18.5" // {
+          sources."normalize-package-data-3.0.2"
+          sources."pify-5.0.0"
+          sources."read-package-json-3.0.1"
+        ];
+      })
+      sources."@lerna/npm-run-script-4.0.0"
+      sources."@lerna/otplease-4.0.0"
+      sources."@lerna/output-4.0.0"
+      sources."@lerna/pack-directory-4.0.0"
+      sources."@lerna/package-4.0.0"
+      sources."@lerna/package-graph-4.0.0"
+      sources."@lerna/prerelease-id-from-version-4.0.0"
+      sources."@lerna/profiler-4.0.0"
+      sources."@lerna/project-4.0.0"
+      sources."@lerna/prompt-4.0.0"
+      sources."@lerna/publish-4.0.0"
+      sources."@lerna/pulse-till-done-4.0.0"
+      sources."@lerna/query-graph-4.0.0"
+      sources."@lerna/resolve-symlink-4.0.0"
+      sources."@lerna/rimraf-dir-4.0.0"
+      sources."@lerna/run-4.0.0"
+      sources."@lerna/run-lifecycle-4.0.0"
+      sources."@lerna/run-topologically-4.0.0"
+      sources."@lerna/symlink-binary-4.0.0"
+      sources."@lerna/symlink-dependencies-4.0.0"
+      sources."@lerna/timer-4.0.0"
+      sources."@lerna/validation-error-4.0.0"
+      sources."@lerna/version-4.0.0"
+      (sources."@lerna/write-log-file-4.0.0" // {
         dependencies = [
-          sources."pify-4.0.1"
+          sources."write-file-atomic-3.0.3"
         ];
       })
-      sources."@lerna/npm-run-script-3.16.5"
-      sources."@lerna/otplease-3.18.5"
-      sources."@lerna/output-3.13.0"
-      sources."@lerna/pack-directory-3.16.4"
-      sources."@lerna/package-3.16.0"
-      sources."@lerna/package-graph-3.18.5"
-      sources."@lerna/prerelease-id-from-version-3.16.0"
-      sources."@lerna/profiler-3.20.0"
-      sources."@lerna/project-3.21.0"
-      sources."@lerna/prompt-3.18.5"
-      sources."@lerna/publish-3.22.1"
-      sources."@lerna/pulse-till-done-3.13.0"
-      sources."@lerna/query-graph-3.18.5"
-      sources."@lerna/resolve-symlink-3.16.0"
-      sources."@lerna/rimraf-dir-3.16.5"
-      sources."@lerna/run-3.21.0"
-      sources."@lerna/run-lifecycle-3.16.2"
-      sources."@lerna/run-topologically-3.18.5"
-      sources."@lerna/symlink-binary-3.17.0"
-      sources."@lerna/symlink-dependencies-3.17.0"
-      sources."@lerna/timer-3.13.0"
-      sources."@lerna/validation-error-3.13.0"
-      sources."@lerna/version-3.22.1"
-      sources."@lerna/write-log-file-3.13.0"
-      sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.stat-1.1.3"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
+      sources."@npmcli/ci-detect-1.3.0"
+      sources."@npmcli/git-2.0.6"
+      sources."@npmcli/installed-package-contents-1.0.7"
+      sources."@npmcli/move-file-1.1.2"
+      sources."@npmcli/node-gyp-1.0.2"
+      sources."@npmcli/promise-spawn-1.3.2"
+      sources."@npmcli/run-script-1.8.4"
       sources."@octokit/auth-token-2.4.5"
+      sources."@octokit/core-3.4.0"
       (sources."@octokit/endpoint-6.0.11" // {
         dependencies = [
           sources."is-plain-object-5.0.0"
-          sources."universal-user-agent-6.0.0"
         ];
       })
-      sources."@octokit/openapi-types-4.0.2"
+      sources."@octokit/graphql-4.6.1"
+      sources."@octokit/openapi-types-6.0.0"
       sources."@octokit/plugin-enterprise-rest-6.0.1"
-      (sources."@octokit/plugin-paginate-rest-1.1.2" // {
-        dependencies = [
-          sources."@octokit/types-2.16.2"
-        ];
-      })
+      sources."@octokit/plugin-paginate-rest-2.13.3"
       sources."@octokit/plugin-request-log-1.0.3"
-      (sources."@octokit/plugin-rest-endpoint-methods-2.4.0" // {
-        dependencies = [
-          sources."@octokit/types-2.16.2"
-        ];
-      })
+      sources."@octokit/plugin-rest-endpoint-methods-5.0.0"
       (sources."@octokit/request-5.4.14" // {
         dependencies = [
-          sources."@octokit/request-error-2.0.5"
           sources."is-plain-object-5.0.0"
-          sources."universal-user-agent-6.0.0"
-        ];
-      })
-      (sources."@octokit/request-error-1.2.1" // {
-        dependencies = [
-          sources."@octokit/types-2.16.2"
         ];
       })
-      sources."@octokit/rest-16.43.2"
-      sources."@octokit/types-6.8.3"
-      sources."@types/glob-7.1.3"
-      sources."@types/minimatch-3.0.3"
+      sources."@octokit/request-error-2.0.5"
+      sources."@octokit/rest-18.5.2"
+      sources."@octokit/types-6.13.0"
+      sources."@tootallnate/once-1.1.2"
+      sources."@types/minimatch-3.0.4"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.26"
       sources."@types/normalize-package-data-2.4.0"
-      sources."@zkochan/cmd-shim-3.1.0"
+      sources."@types/parse-json-4.0.0"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
-      sources."agent-base-4.3.0"
-      sources."agentkeepalive-3.5.2"
+      sources."add-stream-1.0.0"
+      sources."agent-base-6.0.2"
+      sources."agentkeepalive-4.1.4"
+      sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
-      sources."ansi-escapes-3.2.0"
+      (sources."ansi-escapes-4.3.2" // {
+        dependencies = [
+          sources."type-fest-0.21.3"
+        ];
+      })
       sources."ansi-regex-2.1.1"
-      sources."ansi-styles-3.2.1"
-      sources."any-promise-1.3.0"
-      sources."aproba-1.2.0"
-      sources."are-we-there-yet-1.1.5"
-      sources."argparse-1.0.10"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
-      sources."array-differ-2.1.0"
+      sources."ansi-styles-4.3.0"
+      sources."aproba-2.0.0"
+      (sources."are-we-there-yet-1.1.5" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."array-differ-3.0.0"
       sources."array-find-index-1.0.2"
       sources."array-ify-1.0.0"
-      sources."array-union-1.0.2"
-      sources."array-uniq-1.0.3"
-      sources."array-unique-0.3.2"
-      sources."arrify-1.0.1"
+      sources."array-union-2.1.0"
+      sources."arrify-2.0.1"
       sources."asap-2.0.6"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
-      sources."assign-symbols-1.0.0"
       sources."asynckit-0.4.0"
-      sources."atob-2.1.2"
-      sources."atob-lite-2.0.0"
+      sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."before-after-hook-2.1.1"
-      sources."bluebird-3.7.2"
+      sources."before-after-hook-2.2.1"
       sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."btoa-lite-1.0.0"
+      sources."braces-3.0.2"
       sources."buffer-from-1.1.1"
       sources."builtins-1.0.3"
       sources."byline-5.0.0"
-      sources."byte-size-5.0.1"
-      sources."cacache-12.0.4"
-      sources."cache-base-1.0.1"
+      sources."byte-size-7.0.1"
+      sources."cacache-15.0.6"
       sources."call-bind-1.0.2"
-      sources."call-me-maybe-1.0.1"
-      sources."caller-callsite-2.0.0"
-      sources."caller-path-2.0.0"
-      sources."callsites-2.0.0"
+      sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
       sources."caseless-0.12.0"
-      sources."chalk-2.4.2"
+      sources."chalk-4.1.0"
       sources."chardet-0.7.0"
-      sources."chownr-1.1.4"
+      sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      sources."cli-cursor-2.1.0"
-      sources."cli-width-2.2.1"
-      (sources."cliui-5.0.0" // {
+      sources."clean-stack-2.2.0"
+      sources."cli-cursor-3.1.0"
+      sources."cli-width-3.0.0"
+      (sources."cliui-7.0.4" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."ansi-regex-5.0.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
       sources."clone-1.0.4"
       sources."clone-deep-4.0.1"
+      sources."cmd-shim-4.1.0"
       sources."code-point-at-1.1.0"
-      sources."collection-visit-1.0.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."columnify-1.5.4"
       sources."combined-stream-1.0.8"
       (sources."compare-func-2.0.0" // {
         dependencies = [
           sources."dot-prop-5.3.0"
-          sources."is-obj-2.0.0"
         ];
       })
-      sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
+      sources."concat-stream-2.0.0"
       sources."config-chain-1.1.12"
       sources."console-control-strings-1.1.0"
       sources."conventional-changelog-angular-5.0.12"
-      (sources."conventional-changelog-core-3.2.3" // {
+      (sources."conventional-changelog-core-4.2.2" // {
         dependencies = [
-          sources."through2-3.0.2"
+          sources."normalize-package-data-3.0.2"
         ];
       })
       sources."conventional-changelog-preset-loader-2.3.4"
       (sources."conventional-changelog-writer-4.1.0" // {
         dependencies = [
-          sources."readable-stream-3.6.0"
-          sources."through2-4.0.2"
+          sources."semver-6.3.0"
         ];
       })
       sources."conventional-commits-filter-2.0.7"
-      (sources."conventional-commits-parser-3.2.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-          sources."through2-4.0.2"
-        ];
-      })
-      (sources."conventional-recommended-bump-5.0.1" // {
-        dependencies = [
-          sources."camelcase-4.1.0"
-          sources."camelcase-keys-4.2.0"
-          sources."concat-stream-2.0.0"
-          sources."indent-string-3.2.0"
-          sources."map-obj-2.0.0"
-          sources."meow-4.0.1"
-          sources."minimist-options-3.0.2"
-          sources."quick-lru-1.1.0"
-          sources."readable-stream-3.6.0"
-          sources."redent-2.0.0"
-          sources."strip-indent-2.0.0"
-          sources."trim-newlines-2.0.0"
-        ];
-      })
-      sources."copy-concurrently-1.0.5"
-      sources."copy-descriptor-0.1.1"
+      sources."conventional-commits-parser-3.2.1"
+      sources."conventional-recommended-bump-6.1.0"
       sources."core-util-is-1.0.2"
-      sources."cosmiconfig-5.2.1"
-      (sources."cross-spawn-6.0.5" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."cosmiconfig-7.0.0"
+      sources."cross-spawn-7.0.3"
       sources."currently-unhandled-0.4.1"
-      sources."cyclist-1.0.1"
-      sources."dargs-4.1.0"
+      sources."dargs-7.0.0"
       sources."dashdash-1.14.1"
       sources."dateformat-3.0.3"
-      (sources."debug-3.1.0" // {
-        dependencies = [
-          sources."ms-2.0.0"
-        ];
-      })
+      sources."debug-4.3.2"
       sources."debuglog-1.0.1"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
@@ -85059,108 +88313,56 @@ in
       sources."dedent-0.7.0"
       sources."defaults-1.0.3"
       sources."define-properties-1.1.3"
-      sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
+      sources."depd-1.1.2"
       sources."deprecation-2.3.1"
       sources."detect-indent-5.0.0"
       sources."dezalgo-1.0.3"
-      sources."dir-glob-2.2.2"
-      sources."dot-prop-4.2.1"
+      sources."dir-glob-3.0.1"
+      sources."dot-prop-6.0.1"
       sources."duplexer-0.1.2"
-      sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
-      sources."end-of-stream-1.4.4"
-      sources."env-paths-2.2.0"
-      sources."envinfo-7.7.4"
-      sources."err-code-1.1.2"
+      sources."env-paths-2.2.1"
+      sources."envinfo-7.8.1"
+      sources."err-code-2.0.3"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       sources."es-to-primitive-1.2.1"
-      sources."es6-promise-4.2.8"
-      sources."es6-promisify-5.0.0"
+      sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."esprima-4.0.1"
-      sources."eventemitter3-3.1.2"
-      sources."execa-1.0.0"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."debug-2.6.9"
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
-        ];
-      })
+      sources."eventemitter3-4.0.7"
+      sources."execa-5.0.0"
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
       (sources."external-editor-3.1.0" // {
         dependencies = [
           sources."iconv-lite-0.4.24"
         ];
       })
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
-      (sources."fast-glob-2.2.7" // {
-        dependencies = [
-          (sources."glob-parent-3.1.0" // {
-            dependencies = [
-              sources."is-glob-3.1.0"
-            ];
-          })
-        ];
-      })
+      sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."figgy-pudding-3.5.2"
-      sources."figures-2.0.0"
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
+      sources."fastq-1.11.0"
+      sources."figures-3.2.0"
+      sources."fill-range-7.0.1"
       sources."filter-obj-1.1.0"
-      sources."find-up-3.0.0"
-      sources."flush-write-stream-1.1.1"
-      sources."for-in-1.0.2"
+      sources."find-up-4.1.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fragment-cache-0.2.1"
-      sources."from2-2.3.0"
-      sources."fs-extra-8.1.0"
-      sources."fs-minipass-1.2.7"
-      sources."fs-write-stream-atomic-1.0.10"
+      sources."fs-extra-9.1.0"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       (sources."gauge-2.7.4" // {
         dependencies = [
+          sources."aproba-1.2.0"
           sources."is-fullwidth-code-point-1.0.0"
           sources."string-width-1.0.2"
         ];
       })
-      sources."genfun-5.0.0"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
       (sources."get-pkg-repo-1.4.0" // {
@@ -85168,6 +88370,7 @@ in
           sources."camelcase-2.1.1"
           sources."camelcase-keys-2.1.0"
           sources."find-up-1.1.2"
+          sources."hosted-git-info-2.8.8"
           sources."indent-string-2.1.0"
           sources."load-json-file-1.1.0"
           sources."map-obj-1.0.1"
@@ -85178,202 +88381,158 @@ in
           sources."pify-2.3.0"
           sources."read-pkg-1.1.0"
           sources."read-pkg-up-1.0.1"
+          sources."readable-stream-2.3.7"
           sources."redent-1.0.0"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
           sources."strip-bom-2.0.0"
           sources."strip-indent-1.0.1"
+          sources."through2-2.0.5"
           sources."trim-newlines-1.0.0"
         ];
       })
-      sources."get-port-4.2.0"
+      sources."get-port-5.1.1"
       sources."get-stdin-4.0.1"
-      sources."get-stream-4.1.0"
-      sources."get-value-2.0.6"
+      sources."get-stream-6.0.0"
       sources."getpass-0.1.7"
-      (sources."git-raw-commits-2.0.0" // {
-        dependencies = [
-          sources."camelcase-4.1.0"
-          sources."camelcase-keys-4.2.0"
-          sources."indent-string-3.2.0"
-          sources."map-obj-2.0.0"
-          sources."meow-4.0.1"
-          sources."minimist-options-3.0.2"
-          sources."quick-lru-1.1.0"
-          sources."redent-2.0.0"
-          sources."strip-indent-2.0.0"
-          sources."trim-newlines-2.0.0"
-        ];
-      })
+      sources."git-raw-commits-2.0.10"
       (sources."git-remote-origin-url-2.0.0" // {
         dependencies = [
           sources."pify-2.3.0"
         ];
       })
-      (sources."git-semver-tags-2.0.3" // {
+      (sources."git-semver-tags-4.1.1" // {
         dependencies = [
-          sources."camelcase-4.1.0"
-          sources."camelcase-keys-4.2.0"
-          sources."indent-string-3.2.0"
-          sources."map-obj-2.0.0"
-          sources."meow-4.0.1"
-          sources."minimist-options-3.0.2"
-          sources."quick-lru-1.1.0"
-          sources."redent-2.0.0"
-          sources."strip-indent-2.0.0"
-          sources."trim-newlines-2.0.0"
+          sources."semver-6.3.0"
         ];
       })
       sources."git-up-4.0.2"
       sources."git-url-parse-11.4.4"
       sources."gitconfiglocal-1.0.0"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      sources."glob-to-regexp-0.3.0"
-      (sources."globby-9.2.0" // {
-        dependencies = [
-          sources."pify-4.0.1"
-        ];
-      })
+      sources."glob-parent-5.1.2"
+      sources."globby-11.0.3"
       sources."graceful-fs-4.2.6"
-      (sources."handlebars-4.7.6" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
+      sources."handlebars-4.7.7"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
-      sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-bigints-1.0.1"
+      sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.2"
       sources."has-unicode-2.0.1"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          sources."kind-of-4.0.0"
-        ];
-      })
-      sources."hosted-git-info-2.8.8"
-      sources."http-cache-semantics-3.8.1"
-      sources."http-proxy-agent-2.1.0"
+      sources."hosted-git-info-4.0.2"
+      sources."http-cache-semantics-4.1.0"
+      sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
-      sources."https-proxy-agent-2.2.4"
+      sources."https-proxy-agent-5.0.0"
+      sources."human-signals-2.1.0"
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.6.2"
-      sources."iferr-0.1.5"
-      sources."ignore-4.0.6"
+      sources."ignore-5.1.8"
       sources."ignore-walk-3.0.3"
-      (sources."import-fresh-2.0.0" // {
+      (sources."import-fresh-3.3.0" // {
         dependencies = [
-          sources."resolve-from-3.0.0"
+          sources."resolve-from-4.0.0"
         ];
       })
-      sources."import-local-2.0.0"
+      sources."import-local-3.0.2"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      (sources."init-package-json-1.10.3" // {
+      (sources."init-package-json-2.0.2" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."normalize-package-data-3.0.2"
+          sources."read-package-json-3.0.1"
         ];
       })
-      (sources."inquirer-6.5.2" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."ansi-regex-5.0.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
+      sources."interpret-1.4.0"
       sources."ip-1.1.5"
-      sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-buffer-1.1.6"
+      sources."is-bigint-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
       sources."is-ci-2.0.0"
       sources."is-core-module-2.2.0"
-      sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
-      sources."is-descriptor-1.0.2"
-      sources."is-directory-0.3.1"
-      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-finite-1.1.0"
-      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
+      sources."is-lambda-1.0.1"
       sources."is-negative-zero-2.0.1"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."is-obj-1.0.1"
+      sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
+      sources."is-obj-2.0.0"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
       sources."is-regex-1.1.2"
       sources."is-ssh-1.3.2"
-      sources."is-stream-1.1.0"
+      sources."is-stream-2.0.0"
+      sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."is-text-path-1.0.1"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
-      sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-4.0.0"
+      sources."jsonfile-6.1.0"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
       sources."kind-of-6.0.3"
+      sources."libnpmaccess-4.0.1"
+      (sources."libnpmpublish-4.0.0" // {
+        dependencies = [
+          sources."normalize-package-data-3.0.2"
+        ];
+      })
       sources."lines-and-columns-1.1.6"
-      (sources."load-json-file-5.3.0" // {
+      (sources."load-json-file-6.2.0" // {
         dependencies = [
-          sources."pify-4.0.1"
+          sources."type-fest-0.6.0"
         ];
       })
-      sources."locate-path-3.0.0"
-      sources."lodash-4.17.20"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.21"
       sources."lodash._reinterpolate-3.0.0"
-      sources."lodash.clonedeep-4.5.0"
-      sources."lodash.get-4.4.2"
       sources."lodash.ismatch-4.4.0"
-      sources."lodash.set-4.3.2"
-      sources."lodash.sortby-4.7.0"
       sources."lodash.template-4.5.0"
       sources."lodash.templatesettings-4.2.0"
-      sources."lodash.uniq-4.5.0"
       sources."loud-rejection-1.6.0"
-      sources."lru-cache-5.1.1"
-      sources."macos-release-2.4.1"
-      sources."make-dir-1.3.0"
-      sources."make-fetch-happen-5.0.2"
-      sources."map-cache-0.2.2"
-      sources."map-obj-4.1.0"
-      sources."map-visit-1.0.0"
+      sources."lru-cache-6.0.0"
+      (sources."make-dir-2.1.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."make-fetch-happen-8.0.14"
+      sources."map-obj-4.2.0"
       (sources."meow-8.1.2" // {
         dependencies = [
-          sources."find-up-4.1.0"
-          sources."hosted-git-info-3.0.8"
-          sources."locate-path-5.0.0"
-          sources."lru-cache-6.0.0"
-          sources."normalize-package-data-3.0.0"
-          sources."p-locate-4.1.0"
-          sources."parse-json-5.2.0"
-          sources."path-exists-4.0.0"
+          sources."hosted-git-info-2.8.8"
+          sources."normalize-package-data-3.0.2"
           (sources."read-pkg-5.2.0" // {
             dependencies = [
-              sources."hosted-git-info-2.8.8"
               sources."normalize-package-data-2.5.0"
-              sources."semver-5.7.1"
               sources."type-fest-0.6.0"
             ];
           })
@@ -85382,157 +88541,144 @@ in
               sources."type-fest-0.8.1"
             ];
           })
-          sources."semver-7.3.4"
+          sources."semver-5.7.1"
           sources."type-fest-0.18.1"
-          sources."yallist-4.0.0"
-          sources."yargs-parser-20.2.4"
         ];
       })
+      sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-3.1.10"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
-      sources."mimic-fn-1.2.0"
+      sources."micromatch-4.0.2"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
+      sources."mimic-fn-2.1.0"
       sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minimist-options-4.1.0"
-      sources."minipass-2.9.0"
-      sources."minizlib-1.3.3"
-      sources."mississippi-3.0.0"
-      (sources."mixin-deep-1.3.2" // {
+      (sources."minimist-options-4.1.0" // {
         dependencies = [
-          sources."is-extendable-1.0.1"
+          sources."arrify-1.0.1"
         ];
       })
-      sources."mkdirp-0.5.5"
-      sources."mkdirp-promise-5.0.1"
+      sources."minipass-3.1.3"
+      sources."minipass-collect-1.0.2"
+      sources."minipass-fetch-1.3.3"
+      sources."minipass-flush-1.0.5"
+      sources."minipass-json-stream-1.0.1"
+      sources."minipass-pipeline-1.2.4"
+      sources."minipass-sized-1.0.3"
+      sources."minizlib-2.1.2"
+      sources."mkdirp-1.0.4"
+      sources."mkdirp-infer-owner-2.0.0"
       sources."modify-values-1.0.1"
-      sources."move-concurrently-1.0.1"
-      sources."ms-2.1.3"
-      sources."multimatch-3.0.0"
-      sources."mute-stream-0.0.7"
-      sources."mz-2.7.0"
-      sources."nanomatch-1.2.13"
+      sources."ms-2.1.2"
+      sources."multimatch-5.0.0"
+      sources."mute-stream-0.0.8"
       sources."neo-async-2.6.2"
-      sources."nice-try-1.0.5"
       sources."node-fetch-2.6.1"
-      sources."node-fetch-npm-2.0.4"
-      (sources."node-gyp-5.1.1" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."nopt-4.0.3"
+      sources."node-gyp-7.1.2"
+      sources."nopt-5.0.0"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
+          sources."hosted-git-info-2.8.8"
           sources."semver-5.7.1"
         ];
       })
       sources."normalize-url-3.3.0"
       sources."npm-bundled-1.1.1"
-      sources."npm-lifecycle-3.1.5"
-      sources."npm-normalize-package-bin-1.0.1"
-      (sources."npm-package-arg-6.1.1" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."npm-packlist-1.4.8"
-      (sources."npm-pick-manifest-3.0.2" // {
+      sources."npm-install-checks-4.0.0"
+      (sources."npm-lifecycle-3.1.5" // {
         dependencies = [
+          sources."chownr-1.1.4"
+          sources."fs-minipass-1.2.7"
+          sources."minipass-2.9.0"
+          sources."minizlib-1.3.3"
+          sources."mkdirp-0.5.5"
+          sources."node-gyp-5.1.1"
+          sources."nopt-4.0.3"
+          sources."resolve-from-4.0.0"
+          sources."rimraf-2.7.1"
           sources."semver-5.7.1"
+          sources."tar-4.4.13"
+          sources."which-1.3.1"
+          sources."yallist-3.1.1"
         ];
       })
-      sources."npm-run-path-2.0.2"
+      sources."npm-normalize-package-bin-1.0.1"
+      sources."npm-package-arg-8.1.2"
+      sources."npm-packlist-2.1.5"
+      sources."npm-pick-manifest-6.1.1"
+      sources."npm-registry-fetch-9.0.0"
+      sources."npm-run-path-4.0.1"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
       sources."object-inspect-1.9.0"
       sources."object-keys-1.1.1"
-      sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
-      sources."object.getownpropertydescriptors-2.1.1"
-      sources."object.pick-1.3.0"
-      sources."octokit-pagination-methods-1.1.0"
+      sources."object.getownpropertydescriptors-2.1.2"
       sources."once-1.4.0"
-      sources."onetime-2.0.1"
+      sources."onetime-5.1.2"
       sources."os-homedir-1.0.2"
-      sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
-      sources."p-locate-3.0.0"
-      sources."p-map-2.1.0"
-      sources."p-map-series-1.0.0"
-      sources."p-pipe-1.2.0"
-      sources."p-queue-4.0.0"
-      sources."p-reduce-1.0.0"
+      sources."p-locate-4.1.0"
+      sources."p-map-4.0.0"
+      sources."p-map-series-2.1.0"
+      sources."p-pipe-3.1.0"
+      sources."p-queue-6.6.2"
+      sources."p-reduce-2.1.0"
+      sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
-      sources."p-waterfall-1.0.0"
-      sources."parallel-transform-1.2.0"
+      sources."p-waterfall-2.1.1"
+      sources."pacote-11.3.1"
+      sources."parent-module-1.0.1"
       sources."parse-github-repo-url-1.4.1"
-      sources."parse-json-4.0.0"
+      sources."parse-json-5.2.0"
       (sources."parse-path-4.0.3" // {
         dependencies = [
-          sources."qs-6.9.6"
+          sources."qs-6.10.1"
         ];
       })
       sources."parse-url-5.0.2"
-      sources."pascalcase-0.1.1"
-      sources."path-dirname-1.0.2"
-      sources."path-exists-3.0.0"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
-      sources."path-type-3.0.0"
+      sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
-      sources."pify-3.0.0"
+      sources."picomatch-2.2.2"
+      sources."pify-4.0.1"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
-      sources."pkg-dir-3.0.0"
-      sources."posix-character-classes-0.1.1"
+      sources."pkg-dir-4.2.0"
       sources."process-nextick-args-2.0.1"
       sources."promise-inflight-1.0.1"
-      sources."promise-retry-1.1.1"
+      sources."promise-retry-2.0.1"
       sources."promzard-0.3.0"
       sources."proto-list-1.2.4"
       sources."protocols-1.4.8"
-      sources."protoduck-5.0.1"
       sources."psl-1.8.0"
-      sources."pump-3.0.0"
-      (sources."pumpify-1.5.1" // {
-        dependencies = [
-          sources."pump-2.0.1"
-        ];
-      })
       sources."punycode-2.1.1"
       sources."q-1.5.1"
       sources."qs-6.5.2"
-      sources."query-string-6.14.0"
+      sources."query-string-6.14.1"
+      sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
       sources."read-1.0.7"
-      sources."read-cmd-shim-1.0.5"
+      sources."read-cmd-shim-2.0.0"
       sources."read-package-json-2.1.2"
+      sources."read-package-json-fast-2.0.2"
       sources."read-package-tree-5.3.1"
       (sources."read-pkg-3.0.0" // {
         dependencies = [
           sources."load-json-file-4.0.0"
+          sources."parse-json-4.0.0"
+          sources."path-type-3.0.0"
+          sources."pify-3.0.0"
+          sources."strip-bom-3.0.0"
         ];
       })
       (sources."read-pkg-up-3.0.0" // {
@@ -85542,191 +88688,101 @@ in
           sources."p-limit-1.3.0"
           sources."p-locate-2.0.0"
           sources."p-try-1.0.0"
+          sources."path-exists-3.0.0"
         ];
       })
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."readable-stream-3.6.0"
       sources."readdir-scoped-modules-1.1.0"
+      sources."rechoir-0.6.2"
       sources."redent-3.0.0"
-      sources."regex-not-1.0.2"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
       sources."repeating-2.0.1"
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
-      sources."require-main-filename-2.0.0"
       sources."resolve-1.20.0"
-      (sources."resolve-cwd-2.0.0" // {
-        dependencies = [
-          sources."resolve-from-3.0.0"
-        ];
-      })
-      sources."resolve-from-4.0.0"
-      sources."resolve-url-0.2.1"
-      sources."restore-cursor-2.0.0"
-      sources."ret-0.1.15"
-      sources."retry-0.10.1"
-      sources."rimraf-2.7.1"
+      sources."resolve-cwd-3.0.0"
+      sources."resolve-from-5.0.0"
+      sources."restore-cursor-3.1.0"
+      sources."retry-0.12.0"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
-      sources."run-queue-1.0.3"
-      sources."rxjs-6.6.3"
+      sources."run-parallel-1.2.0"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
-      sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."semver-6.3.0"
+      sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
       sources."shallow-clone-3.0.1"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."shelljs-0.8.4"
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
-      sources."slash-2.0.0"
+      sources."slash-3.0.0"
       sources."slide-1.1.6"
       sources."smart-buffer-4.1.0"
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."debug-2.6.9"
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."socks-2.3.3"
-      (sources."socks-proxy-agent-4.0.2" // {
-        dependencies = [
-          sources."agent-base-4.2.1"
-        ];
-      })
+      sources."socks-2.6.0"
+      sources."socks-proxy-agent-5.0.0"
       sources."sort-keys-2.0.0"
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.1"
+      sources."source-map-0.6.1"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.7"
       sources."split-1.0.1"
       sources."split-on-first-1.1.0"
-      sources."split-string-3.1.0"
-      sources."split2-2.2.0"
-      sources."sprintf-js-1.0.3"
+      sources."split2-3.2.2"
       sources."sshpk-1.16.1"
-      sources."ssri-6.0.1"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      sources."stream-each-1.2.3"
-      sources."stream-shift-1.0.1"
+      sources."ssri-8.0.1"
       sources."strict-uri-encode-2.0.0"
-      (sources."string-width-2.1.1" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
-      (sources."string_decoder-1.1.1" // {
+      (sources."string-width-4.2.2" // {
         dependencies = [
-          sources."safe-buffer-5.1.2"
+          sources."ansi-regex-5.0.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
+      sources."string_decoder-1.3.0"
       sources."strip-ansi-3.0.1"
-      sources."strip-bom-3.0.0"
-      sources."strip-eof-1.0.0"
+      sources."strip-bom-4.0.0"
+      sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
       sources."strong-log-transformer-2.1.0"
-      sources."supports-color-5.5.0"
-      sources."tar-4.4.13"
+      sources."supports-color-7.2.0"
+      sources."tar-6.1.0"
       sources."temp-dir-1.0.0"
-      sources."temp-write-3.4.0"
-      sources."text-extensions-1.9.0"
-      sources."thenify-3.3.1"
-      sources."thenify-all-1.6.0"
-      sources."through-2.3.8"
-      sources."through2-2.0.5"
-      sources."tmp-0.0.33"
-      (sources."to-object-path-0.3.0" // {
+      (sources."temp-write-4.0.0" // {
         dependencies = [
-          sources."kind-of-3.2.2"
+          sources."make-dir-3.1.0"
+          sources."semver-6.3.0"
         ];
       })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
+      sources."text-extensions-1.9.0"
+      sources."through-2.3.8"
+      sources."through2-4.0.2"
+      sources."tmp-0.0.33"
+      sources."to-regex-range-5.0.1"
       sources."tough-cookie-2.5.0"
-      sources."tr46-1.0.1"
+      sources."tr46-2.0.2"
       sources."trim-newlines-3.0.0"
       sources."trim-off-newlines-1.0.1"
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-fest-0.3.1"
+      sources."type-fest-0.4.1"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.12.7"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."uglify-js-3.13.3"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
-      sources."union-value-1.0.1"
+      sources."unbox-primitive-1.0.1"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
-      sources."universal-user-agent-4.0.1"
-      sources."universalify-0.1.2"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
-      sources."upath-1.2.0"
+      sources."universal-user-agent-6.0.0"
+      sources."universalify-2.0.0"
+      sources."upath-2.0.1"
       sources."uri-js-4.4.1"
-      sources."urix-0.1.0"
-      sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."util-promisify-2.1.0"
       sources."uuid-3.4.0"
@@ -85734,45 +88790,48 @@ in
       sources."validate-npm-package-name-3.0.0"
       sources."verror-1.10.0"
       sources."wcwidth-1.0.1"
-      sources."webidl-conversions-4.0.2"
-      sources."whatwg-url-7.1.0"
-      sources."which-1.3.1"
-      sources."which-module-2.0.0"
-      sources."wide-align-1.1.3"
-      sources."windows-release-3.3.3"
+      sources."webidl-conversions-6.1.0"
+      sources."whatwg-url-8.5.0"
+      sources."which-2.0.2"
+      sources."which-boxed-primitive-1.0.2"
+      (sources."wide-align-1.1.3" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
       sources."wordwrap-1.0.0"
-      (sources."wrap-ansi-5.1.0" // {
+      (sources."wrap-ansi-7.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."ansi-regex-5.0.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      (sources."write-json-file-3.2.0" // {
+      (sources."write-json-file-4.3.0" // {
         dependencies = [
-          sources."make-dir-2.1.0"
-          sources."pify-4.0.1"
-          sources."semver-5.7.1"
+          sources."detect-indent-6.0.0"
+          sources."is-plain-obj-2.1.0"
+          sources."make-dir-3.1.0"
+          sources."semver-6.3.0"
+          sources."sort-keys-4.2.0"
+          sources."write-file-atomic-3.0.3"
         ];
       })
-      (sources."write-pkg-3.2.0" // {
+      (sources."write-pkg-4.0.0" // {
         dependencies = [
-          sources."write-json-file-2.3.0"
+          sources."write-json-file-3.2.0"
         ];
       })
       sources."xtend-4.0.2"
-      sources."y18n-4.0.1"
-      sources."yallist-3.1.1"
-      (sources."yargs-14.2.3" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
-      sources."yargs-parser-15.0.1"
+      sources."y18n-5.0.6"
+      sources."yallist-4.0.0"
+      sources."yaml-1.10.2"
+      sources."yargs-16.2.0"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85799,7 +88858,7 @@ in
       sources."graceful-fs-4.2.6"
       sources."iconv-lite-0.4.24"
       sources."image-size-0.5.5"
-      sources."is-what-3.12.0"
+      sources."is-what-3.14.1"
       sources."make-dir-2.1.0"
       sources."mime-1.6.0"
       sources."ms-2.1.3"
@@ -86010,8 +89069,8 @@ in
       sources."map-visit-1.0.0"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mixin-deep-1.3.2"
       sources."morgan-1.10.0"
       sources."ms-2.0.0"
@@ -86280,7 +89339,7 @@ in
           sources."ms-2.1.3"
         ];
       })
-      (sources."engine.io-client-3.5.0" // {
+      (sources."engine.io-client-3.5.1" // {
         dependencies = [
           sources."debug-3.1.0"
         ];
@@ -86407,8 +89466,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-2.3.11"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
@@ -86661,7 +89720,7 @@ in
       sources."uuid-3.4.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yeast-0.1.2"
     ];
@@ -86682,51 +89741,53 @@ in
     src = ../interpreters/clojurescript/lumo;
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.12.13"
-      sources."@babel/core-7.12.16"
-      sources."@babel/generator-7.12.15"
+      sources."@babel/compat-data-7.13.12"
+      sources."@babel/core-7.13.14"
+      sources."@babel/generator-7.13.9"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      sources."@babel/helper-compilation-targets-7.12.16"
-      sources."@babel/helper-create-class-features-plugin-7.12.16"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.16"
-      sources."@babel/helper-explode-assignable-expression-7.12.13"
+      sources."@babel/helper-compilation-targets-7.13.13"
+      sources."@babel/helper-create-class-features-plugin-7.13.11"
+      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
+      sources."@babel/helper-define-polyfill-provider-0.1.5"
+      sources."@babel/helper-explode-assignable-expression-7.13.0"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.12.13"
-      sources."@babel/helper-member-expression-to-functions-7.12.16"
-      sources."@babel/helper-module-imports-7.12.13"
-      sources."@babel/helper-module-transforms-7.12.13"
+      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-plugin-utils-7.12.13"
-      sources."@babel/helper-remap-async-to-generator-7.12.13"
-      sources."@babel/helper-replace-supers-7.12.13"
-      sources."@babel/helper-simple-access-7.12.13"
+      sources."@babel/helper-plugin-utils-7.13.0"
+      sources."@babel/helper-remap-async-to-generator-7.13.0"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/helper-validator-option-7.12.16"
-      sources."@babel/helper-wrap-function-7.12.13"
-      sources."@babel/helpers-7.12.13"
-      (sources."@babel/highlight-7.12.13" // {
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helper-wrap-function-7.13.0"
+      sources."@babel/helpers-7.13.10"
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.12.16"
+      sources."@babel/parser-7.13.13"
+      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
       sources."@babel/plugin-external-helpers-7.8.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.13"
-      sources."@babel/plugin-proposal-class-properties-7.12.13"
-      sources."@babel/plugin-proposal-dynamic-import-7.12.16"
+      sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
+      sources."@babel/plugin-proposal-class-properties-7.13.0"
+      sources."@babel/plugin-proposal-dynamic-import-7.13.8"
       sources."@babel/plugin-proposal-export-namespace-from-7.12.13"
-      sources."@babel/plugin-proposal-json-strings-7.12.13"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.12.13"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.12.13"
+      sources."@babel/plugin-proposal-json-strings-7.13.8"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.13.8"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.13.8"
       sources."@babel/plugin-proposal-numeric-separator-7.12.13"
-      sources."@babel/plugin-proposal-object-rest-spread-7.12.13"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.12.13"
-      sources."@babel/plugin-proposal-optional-chaining-7.12.16"
-      sources."@babel/plugin-proposal-private-methods-7.12.13"
+      sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.13.8"
+      sources."@babel/plugin-proposal-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-private-methods-7.13.0"
       sources."@babel/plugin-proposal-unicode-property-regex-7.12.13"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-bigint-7.8.3"
@@ -86742,67 +89803,67 @@ in
       sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-top-level-await-7.12.13"
-      sources."@babel/plugin-transform-arrow-functions-7.12.13"
-      sources."@babel/plugin-transform-async-to-generator-7.12.13"
+      sources."@babel/plugin-transform-arrow-functions-7.13.0"
+      sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
       sources."@babel/plugin-transform-block-scoping-7.12.13"
-      sources."@babel/plugin-transform-classes-7.12.13"
-      sources."@babel/plugin-transform-computed-properties-7.12.13"
-      sources."@babel/plugin-transform-destructuring-7.12.13"
+      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-computed-properties-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.0"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
-      sources."@babel/plugin-transform-for-of-7.12.13"
+      sources."@babel/plugin-transform-for-of-7.13.0"
       sources."@babel/plugin-transform-function-name-7.12.13"
       sources."@babel/plugin-transform-literals-7.12.13"
       sources."@babel/plugin-transform-member-expression-literals-7.12.13"
-      sources."@babel/plugin-transform-modules-amd-7.12.13"
-      sources."@babel/plugin-transform-modules-commonjs-7.12.13"
-      sources."@babel/plugin-transform-modules-systemjs-7.12.13"
-      sources."@babel/plugin-transform-modules-umd-7.12.13"
+      sources."@babel/plugin-transform-modules-amd-7.13.0"
+      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-systemjs-7.13.8"
+      sources."@babel/plugin-transform-modules-umd-7.13.0"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.13"
       sources."@babel/plugin-transform-new-target-7.12.13"
       sources."@babel/plugin-transform-object-super-7.12.13"
-      sources."@babel/plugin-transform-parameters-7.12.13"
+      sources."@babel/plugin-transform-parameters-7.13.0"
       sources."@babel/plugin-transform-property-literals-7.12.13"
       sources."@babel/plugin-transform-regenerator-7.12.13"
       sources."@babel/plugin-transform-reserved-words-7.12.13"
-      sources."@babel/plugin-transform-runtime-7.12.15"
+      sources."@babel/plugin-transform-runtime-7.13.10"
       sources."@babel/plugin-transform-shorthand-properties-7.12.13"
-      sources."@babel/plugin-transform-spread-7.12.13"
+      sources."@babel/plugin-transform-spread-7.13.0"
       sources."@babel/plugin-transform-sticky-regex-7.12.13"
-      sources."@babel/plugin-transform-template-literals-7.12.13"
+      sources."@babel/plugin-transform-template-literals-7.13.0"
       sources."@babel/plugin-transform-typeof-symbol-7.12.13"
       sources."@babel/plugin-transform-unicode-escapes-7.12.13"
       sources."@babel/plugin-transform-unicode-regex-7.12.13"
-      sources."@babel/preset-env-7.12.16"
+      sources."@babel/preset-env-7.13.12"
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-stage-2-7.8.3"
-      sources."@babel/runtime-7.12.13"
+      sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.12.13"
-      sources."@babel/types-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
       sources."@istanbuljs/load-nyc-config-1.1.0"
-      sources."@istanbuljs/schema-0.1.2"
+      sources."@istanbuljs/schema-0.1.3"
       (sources."@jest/transform-25.5.1" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
       sources."@jest/types-25.5.0"
-      sources."@types/babel__core-7.1.12"
+      sources."@types/babel__core-7.1.14"
       sources."@types/babel__generator-7.6.2"
       sources."@types/babel__template-7.4.0"
-      sources."@types/babel__traverse-7.11.0"
-      sources."@types/estree-0.0.46"
+      sources."@types/babel__traverse-7.11.1"
+      sources."@types/estree-0.0.47"
       sources."@types/graceful-fs-4.1.5"
       sources."@types/istanbul-lib-coverage-2.0.3"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-schema-7.0.7"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.13"
@@ -86848,7 +89909,7 @@ in
       sources."asn1-0.2.4"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       (sources."assert-1.5.0" // {
@@ -86891,6 +89952,9 @@ in
       sources."babel-plugin-minify-replace-0.5.0"
       sources."babel-plugin-minify-simplify-0.5.1"
       sources."babel-plugin-minify-type-constructors-0.4.3"
+      sources."babel-plugin-polyfill-corejs2-0.1.10"
+      sources."babel-plugin-polyfill-corejs3-0.1.7"
+      sources."babel-plugin-polyfill-regenerator-0.1.6"
       sources."babel-plugin-syntax-flow-6.18.0"
       sources."babel-plugin-transform-flow-strip-types-6.22.0"
       sources."babel-plugin-transform-inline-consecutive-adds-0.4.3"
@@ -86912,7 +89976,7 @@ in
           sources."regenerator-runtime-0.11.1"
         ];
       })
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -86930,7 +89994,7 @@ in
         ];
       })
       sources."bluebird-3.7.2"
-      sources."bn.js-5.1.3"
+      sources."bn.js-5.2.0"
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -86972,7 +90036,7 @@ in
       sources."cached-path-relative-1.0.2"
       sources."call-bind-1.0.2"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001185"
+      sources."caniuse-lite-1.0.30001207"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -87021,7 +90085,7 @@ in
       sources."collection-visit-1.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."colorette-1.2.1"
+      sources."colorette-1.2.2"
       sources."colors-1.4.0"
       (sources."combine-source-map-0.8.0" // {
         dependencies = [
@@ -87044,7 +90108,7 @@ in
       })
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.8.3" // {
+      (sources."core-js-compat-3.10.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -87052,7 +90116,7 @@ in
       sources."core-util-is-1.0.2"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."create-hash-1.2.0"
@@ -87067,6 +90131,7 @@ in
       })
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
+          sources."semver-5.7.1"
           sources."which-1.3.1"
         ];
       })
@@ -87088,17 +90153,17 @@ in
       sources."detective-5.2.0"
       (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."domain-browser-1.2.0"
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.663"
+      sources."electron-to-chromium-1.3.708"
       (sources."elliptic-6.5.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."emoji-regex-7.0.3"
@@ -87126,7 +90191,7 @@ in
       sources."esutils-2.0.3"
       sources."events-2.1.0"
       sources."evp_bytestokey-1.0.3"
-      sources."exec-sh-0.3.4"
+      sources."exec-sh-0.3.6"
       sources."execa-1.0.0"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -87201,7 +90266,7 @@ in
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       (sources."global-modules-2.0.0" // {
         dependencies = [
           sources."global-prefix-3.0.0"
@@ -87226,7 +90291,7 @@ in
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -87296,11 +90361,7 @@ in
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."istanbul-lib-coverage-3.0.0"
-      (sources."istanbul-lib-instrument-4.0.3" // {
-        dependencies = [
-          sources."semver-6.3.0"
-        ];
-      })
+      sources."istanbul-lib-instrument-4.0.3"
       sources."jest-haste-map-25.5.1"
       sources."jest-regex-util-25.2.6"
       sources."jest-serializer-25.5.0"
@@ -87336,15 +90397,12 @@ in
         ];
       })
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
+      sources."lodash.debounce-4.0.8"
       sources."lodash.memoize-3.0.4"
       sources."lru-cache-5.1.1"
       sources."magic-string-0.25.7"
-      (sources."make-dir-3.1.0" // {
-        dependencies = [
-          sources."semver-6.3.0"
-        ];
-      })
+      sources."make-dir-3.1.0"
       sources."makeerror-1.0.11"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
@@ -87361,11 +90419,11 @@ in
       })
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -87395,7 +90453,7 @@ in
       (sources."node-libs-browser-2.2.1" // {
         dependencies = [
           sources."buffer-4.9.2"
-          sources."events-3.2.0"
+          sources."events-3.3.0"
           sources."inherits-2.0.3"
           sources."punycode-1.4.1"
           sources."stream-http-2.8.3"
@@ -87405,8 +90463,12 @@ in
         ];
       })
       sources."node-modules-regexp-1.0.0"
-      sources."node-releases-1.1.70"
-      sources."normalize-package-data-2.5.0"
+      sources."node-releases-1.1.71"
+      (sources."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       sources."normalize-path-3.0.0"
       sources."npm-run-path-2.0.2"
       sources."oauth-sign-0.9.0"
@@ -87469,7 +90531,7 @@ in
       sources."psl-1.8.0"
       (sources."public-encrypt-4.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."pump-3.0.0"
@@ -87495,12 +90557,12 @@ in
       sources."realpath-native-2.0.0"
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-runtime-0.13.8"
       sources."regenerator-transform-0.14.5"
       sources."regex-not-1.0.2"
       sources."regexpu-core-4.7.1"
       sources."regjsgen-0.5.2"
-      (sources."regjsparser-0.6.7" // {
+      (sources."regjsparser-0.6.9" // {
         dependencies = [
           sources."jsesc-0.5.0"
         ];
@@ -87549,7 +90611,7 @@ in
         ];
       })
       sources."schema-utils-2.7.1"
-      sources."semver-5.7.1"
+      sources."semver-6.3.0"
       sources."serialize-javascript-4.0.0"
       sources."set-blocking-2.0.0"
       (sources."set-value-2.0.1" // {
@@ -87674,6 +90736,7 @@ in
           sources."path-exists-3.0.0"
           sources."pkg-dir-3.0.0"
           sources."schema-utils-1.0.0"
+          sources."semver-5.7.1"
           sources."source-map-0.6.1"
         ];
       })
@@ -87734,7 +90797,7 @@ in
       })
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."validate-npm-package-license-3.0.4"
       sources."verror-1.10.0"
       sources."vinyl-2.2.1"
@@ -87826,7 +90889,7 @@ in
     };
     dependencies = [
       sources."amdefine-1.0.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
@@ -87853,10 +90916,10 @@ in
   markdown-link-check = nodeEnv.buildNodePackage {
     name = "markdown-link-check";
     packageName = "markdown-link-check";
-    version = "3.8.6";
+    version = "3.8.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.6.tgz";
-      sha512 = "GWzd54hNol2Zwf6fFEhUYqi9wbib1BMdcphvGCZqhinaAKhiILDaQkX7sn2u9GMoItmZ1jQK0f8wULOK/M+M4w==";
+      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.7.tgz";
+      sha512 = "Qy2JBkrzmZjMIoOstIMV/Wk/pONM0xuTBO2d/9UuqtO84emvge9A9IdtHfE4r1bxH+GdqyVn3e7aHQLXvRPnYQ==";
     };
     dependencies = [
       sources."ajv-6.12.6"
@@ -87900,11 +90963,11 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
       sources."link-check-4.5.4"
-      sources."lodash-4.17.20"
-      sources."markdown-link-extractor-1.2.6"
-      sources."marked-1.2.9"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."lodash-4.17.21"
+      sources."markdown-link-extractor-1.2.7"
+      sources."marked-2.0.1"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."ms-2.1.3"
       sources."oauth-sign-0.9.0"
       sources."performance-now-2.1.0"
@@ -87937,10 +91000,10 @@ in
   mastodon-bot = nodeEnv.buildNodePackage {
     name = "mastodon-bot";
     packageName = "mastodon-bot";
-    version = "1.10.3";
+    version = "1.10.12-20210326145549";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mastodon-bot/-/mastodon-bot-1.10.3.tgz";
-      sha512 = "0/oDK4jgCpcQplwWihbT8RNJ2Kz1rb87IcY5/RG8RyFDDgEyXvlfLH5J5x/kRjjnz2E35yOLNQr1jm/0irQ8bg==";
+      url = "https://registry.npmjs.org/mastodon-bot/-/mastodon-bot-1.10.12-20210326145549.tgz";
+      sha512 = "buuQt4rao3Vsq0og+WM8vrcVdD1vy1jhh8Vj6CynGuZ2BSY8fcyJKlPLkd3IK5xIJe3h+Iqnfx364eqmjwpw/Q==";
     };
     dependencies = [
       sources."acorn-5.7.4"
@@ -87965,7 +91028,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."babel-code-frame-6.26.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."beeper-1.1.1"
       sources."bindings-1.5.0"
@@ -88037,7 +91100,7 @@ in
       sources."exit-hook-1.1.1"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.2.0"
+          sources."type-2.5.0"
         ];
       })
       sources."extend-3.0.2"
@@ -88104,7 +91167,7 @@ in
       sources."jsonpointer-4.1.0"
       sources."jsprim-1.4.1"
       sources."levn-0.3.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash._basecopy-3.0.1"
       sources."lodash._basetostring-3.0.1"
       sources."lodash._basevalues-3.0.0"
@@ -88123,8 +91186,8 @@ in
       sources."lodash.templatesettings-3.1.1"
       sources."mastodon-api-1.3.0"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -88287,18 +91350,18 @@ in
   "@mermaid-js/mermaid-cli" = nodeEnv.buildNodePackage {
     name = "_at_mermaid-js_slash_mermaid-cli";
     packageName = "@mermaid-js/mermaid-cli";
-    version = "8.9.0";
+    version = "8.9.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.9.0.tgz";
-      sha512 = "DF3nwcCi2ihM3OXIcCn4cNKUxSSU9UeyVuH9bNpgtymjpwAFU45jJXCK9RHtNhLtdjuXz+tcE/sYop3tnBGSuw==";
+      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.9.2.tgz";
+      sha512 = "Hw44+V/n4s6ViCnh5RR/uiza5QxaeUv/A4Q62ho+U1W1yoCLHle6kbx1ZXRSF3Jvl3BfQHuaoE3t+dyx2L4hnA==";
     };
     dependencies = [
       sources."@braintree/sanitize-url-3.1.0"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/yauzl-2.9.1"
-      sources."agent-base-5.1.1"
+      sources."agent-base-6.0.2"
       sources."ansi-styles-4.3.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
@@ -88353,7 +91416,7 @@ in
       sources."dagre-0.8.5"
       sources."dagre-d3-0.6.4"
       sources."debug-4.3.2"
-      sources."devtools-protocol-0.0.818844"
+      sources."devtools-protocol-0.0.854822"
       sources."end-of-stream-1.4.4"
       sources."entity-decode-2.0.2"
       sources."extract-zip-2.0.1"
@@ -88371,16 +91434,16 @@ in
           sources."commander-2.20.3"
         ];
       })
-      sources."https-proxy-agent-4.0.0"
+      sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."khroma-1.2.0"
+      sources."khroma-1.3.0"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lower-case-1.1.4"
-      sources."mermaid-8.9.0"
+      sources."mermaid-8.9.2"
       sources."minify-4.1.3"
       sources."minimatch-3.0.4"
       sources."mkdirp-classic-0.5.3"
@@ -88400,7 +91463,7 @@ in
       sources."progress-2.0.3"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      sources."puppeteer-5.5.0"
+      sources."puppeteer-8.0.0"
       sources."readable-stream-3.6.0"
       sources."relateurl-0.2.7"
       sources."rimraf-3.0.2"
@@ -88422,12 +91485,12 @@ in
       sources."through-2.3.8"
       sources."try-catch-2.0.1"
       sources."try-to-catch-1.1.1"
-      sources."uglify-js-3.12.7"
+      sources."uglify-js-3.13.3"
       sources."unbzip2-stream-1.4.3"
       sources."upper-case-1.1.3"
       sources."util-deprecate-1.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."yauzl-2.10.0"
     ];
     buildInputs = globalBuildInputs;
@@ -88449,23 +91512,23 @@ in
       sha512 = "j2ukrvANZQUreLl2grOQxPl0pbRSoJthYLqujdphZdwJyDwYjPqGOs+KrWwY26QbfqG2Toy06qFnYTaGx9txIg==";
     };
     dependencies = [
-      sources."@fluentui/date-time-utilities-7.9.0"
-      sources."@fluentui/dom-utilities-1.1.1"
-      sources."@fluentui/keyboard-key-0.2.13"
-      sources."@fluentui/react-7.160.0"
-      sources."@fluentui/react-focus-7.17.4"
-      sources."@fluentui/react-window-provider-1.0.1"
-      sources."@fluentui/theme-1.7.3"
-      sources."@microsoft/load-themed-styles-1.10.147"
+      sources."@fluentui/date-time-utilities-7.9.1"
+      sources."@fluentui/dom-utilities-1.1.2"
+      sources."@fluentui/keyboard-key-0.2.16"
+      sources."@fluentui/react-7.165.2"
+      sources."@fluentui/react-focus-7.17.6"
+      sources."@fluentui/react-window-provider-1.0.2"
+      sources."@fluentui/theme-1.7.4"
+      sources."@microsoft/load-themed-styles-1.10.156"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@uifabric/foundation-7.9.24"
-      sources."@uifabric/icons-7.5.21"
-      sources."@uifabric/merge-styles-7.19.1"
-      sources."@uifabric/react-hooks-7.13.11"
-      sources."@uifabric/set-version-7.0.23"
-      sources."@uifabric/styling-7.18.0"
-      sources."@uifabric/utilities-7.33.4"
+      sources."@uifabric/foundation-7.9.26"
+      sources."@uifabric/icons-7.5.23"
+      sources."@uifabric/merge-styles-7.19.2"
+      sources."@uifabric/react-hooks-7.14.0"
+      sources."@uifabric/set-version-7.0.24"
+      sources."@uifabric/styling-7.19.0"
+      sources."@uifabric/utilities-7.33.5"
       sources."accepts-1.3.7"
       sources."ajv-6.12.6"
       sources."ansi-escapes-1.4.0"
@@ -88480,7 +91543,7 @@ in
           sources."regenerator-runtime-0.11.1"
         ];
       })
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."basic-auth-2.0.1"
       sources."body-parser-1.19.0"
@@ -88532,7 +91595,7 @@ in
       sources."eventemitter3-4.0.7"
       sources."express-4.17.1"
       sources."express-normalize-query-params-middleware-0.5.1"
-      sources."express-openapi-7.3.0"
+      sources."express-openapi-7.5.0"
       sources."external-editor-2.2.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
@@ -88565,7 +91628,7 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.merge-4.6.2"
       sources."loose-envify-1.4.0"
       sources."lowercase-keys-1.0.1"
@@ -88574,8 +91637,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -88592,17 +91655,17 @@ in
       sources."node-fetch-1.6.3"
       sources."normalize-url-4.5.0"
       sources."object-assign-4.1.1"
-      sources."office-ui-fabric-react-7.160.0"
+      sources."office-ui-fabric-react-7.165.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
       sources."openapi-default-setter-7.2.3"
-      sources."openapi-framework-7.3.0"
+      sources."openapi-framework-7.5.0"
       sources."openapi-jsonschema-parameters-7.2.3"
-      sources."openapi-request-coercer-7.2.3"
-      sources."openapi-request-validator-7.3.0"
-      sources."openapi-response-validator-7.2.3"
+      sources."openapi-request-coercer-7.5.0"
+      sources."openapi-request-validator-7.4.0"
+      sources."openapi-response-validator-7.4.0"
       sources."openapi-schema-validator-7.2.3"
       sources."openapi-security-handler-7.2.3"
       sources."openapi-types-7.2.3"
@@ -88649,7 +91712,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."scheduler-0.19.1"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."send-0.17.1" // {
         dependencies = [
           sources."ms-2.1.1"
@@ -88683,8 +91746,8 @@ in
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
       sources."swagger-schema-official-2.0.0-bab6bed"
-      sources."swagger-ui-dist-3.43.0"
-      sources."tail-2.2.0"
+      sources."swagger-ui-dist-3.46.0"
+      sources."tail-2.2.1"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
       sources."to-readable-stream-1.0.0"
@@ -88715,10 +91778,10 @@ in
   mocha = nodeEnv.buildNodePackage {
     name = "mocha";
     packageName = "mocha";
-    version = "8.3.0";
+    version = "8.3.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mocha/-/mocha-8.3.0.tgz";
-      sha512 = "TQqyC89V1J/Vxx0DhJIXlq9gbbL9XFNdeLQ1+JsnZsVaSOV1z3tWfw0qZmQJGQRIfkvZcs7snQnZnOCKoldq1Q==";
+      url = "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz";
+      sha512 = "UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==";
     };
     dependencies = [
       sources."@ungap/promise-all-settled-1.1.2"
@@ -88727,7 +91790,7 @@ in
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.1"
       sources."argparse-2.0.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -88743,7 +91806,7 @@ in
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -88767,7 +91830,7 @@ in
       sources."fsevents-2.3.2"
       sources."get-caller-file-2.0.5"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."growl-1.10.5"
       sources."has-flag-4.0.0"
       sources."he-1.2.0"
@@ -88810,17 +91873,17 @@ in
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
       sources."wrappy-1.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       (sources."yargs-16.2.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -88849,6 +91912,7 @@ in
     dependencies = [
       sources."argparse-1.0.10"
       sources."asynckit-0.4.0"
+      sources."call-bind-1.0.2"
       sources."combined-stream-1.0.8"
       sources."commander-2.20.3"
       sources."component-emitter-1.3.0"
@@ -88860,7 +91924,11 @@ in
       sources."extend-3.0.2"
       sources."form-data-2.5.1"
       sources."formidable-1.2.2"
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
       sources."graphlib-2.1.8"
+      sources."has-1.0.3"
+      sources."has-symbols-1.0.2"
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
       sources."js-yaml-3.14.1"
@@ -88869,19 +91937,21 @@ in
           sources."commander-4.1.1"
         ];
       })
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
+      sources."object-inspect-1.9.0"
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
       sources."punycode-2.1.1"
-      sources."qs-6.9.6"
+      sources."qs-6.10.1"
       sources."readable-stream-2.3.7"
       sources."safe-buffer-5.1.2"
+      sources."side-channel-1.0.4"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
       sources."string_decoder-1.1.1"
@@ -88912,7 +91982,7 @@ in
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.4"
+      sources."color-string-1.5.5"
       sources."colornames-1.1.1"
       sources."colors-1.4.0"
       sources."colorspace-1.1.2"
@@ -88921,13 +91991,13 @@ in
       sources."enabled-1.0.2"
       sources."env-variable-0.0.6"
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
       sources."is-stream-1.1.0"
       sources."isarray-1.0.0"
       sources."kuler-1.0.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.defaults-4.2.0"
       sources."lodash.omit-4.5.0"
       sources."logform-2.2.0"
@@ -88937,7 +92007,7 @@ in
       sources."process-nextick-args-2.0.1"
       sources."readable-stream-3.6.0"
       sources."safe-buffer-5.2.1"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
       sources."string_decoder-1.3.0"
@@ -88967,61 +92037,67 @@ in
   netlify-cli = nodeEnv.buildNodePackage {
     name = "netlify-cli";
     packageName = "netlify-cli";
-    version = "3.7.1";
+    version = "3.15.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.7.1.tgz";
-      sha512 = "hqvtdK1A6COn6JDw9jJPs02RN9XJmI/ke1LsO8CmtsoDByvhUfjnOUmtX00lk5KHBCMEkmxKBNkG5AVZyhjZSw==";
+      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.15.1.tgz";
+      sha512 = "L3koM/4a7Ts4fQgJ7bEWbkoYJbShUEZ8KN03+ti+V72MN+4vChmtbNlRkISw1KrfyvyCIP4va2EBTFL4pKfO7Q==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.12.13"
-      (sources."@babel/core-7.12.16" // {
+      sources."@babel/compat-data-7.13.12"
+      (sources."@babel/core-7.13.14" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.12.15"
+      sources."@babel/generator-7.13.9"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.12.16" // {
+      (sources."@babel/helper-compilation-targets-7.13.13" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-create-class-features-plugin-7.13.11"
+      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
+      (sources."@babel/helper-define-polyfill-provider-0.1.5" // {
+        dependencies = [
+          sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.12.16"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.16"
-      sources."@babel/helper-explode-assignable-expression-7.12.13"
+      sources."@babel/helper-explode-assignable-expression-7.13.0"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.12.13"
-      sources."@babel/helper-member-expression-to-functions-7.12.16"
-      sources."@babel/helper-module-imports-7.12.13"
-      sources."@babel/helper-module-transforms-7.12.13"
+      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-plugin-utils-7.12.13"
-      sources."@babel/helper-remap-async-to-generator-7.12.13"
-      sources."@babel/helper-replace-supers-7.12.13"
-      sources."@babel/helper-simple-access-7.12.13"
+      sources."@babel/helper-plugin-utils-7.13.0"
+      sources."@babel/helper-remap-async-to-generator-7.13.0"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/helper-validator-option-7.12.16"
-      sources."@babel/helper-wrap-function-7.12.13"
-      sources."@babel/helpers-7.12.13"
-      sources."@babel/highlight-7.12.13"
-      sources."@babel/parser-7.12.16"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.13"
-      sources."@babel/plugin-proposal-class-properties-7.12.13"
-      sources."@babel/plugin-proposal-dynamic-import-7.12.16"
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helper-wrap-function-7.13.0"
+      sources."@babel/helpers-7.13.10"
+      sources."@babel/highlight-7.13.10"
+      sources."@babel/parser-7.13.13"
+      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
+      sources."@babel/plugin-proposal-class-properties-7.13.0"
+      sources."@babel/plugin-proposal-dynamic-import-7.13.8"
       sources."@babel/plugin-proposal-export-namespace-from-7.12.13"
-      sources."@babel/plugin-proposal-json-strings-7.12.13"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.12.13"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.12.13"
+      sources."@babel/plugin-proposal-json-strings-7.13.8"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.13.8"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.13.8"
       sources."@babel/plugin-proposal-numeric-separator-7.12.13"
-      sources."@babel/plugin-proposal-object-rest-spread-7.12.13"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.12.13"
-      sources."@babel/plugin-proposal-optional-chaining-7.12.16"
-      sources."@babel/plugin-proposal-private-methods-7.12.13"
+      sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.13.8"
+      sources."@babel/plugin-proposal-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-private-methods-7.13.0"
       sources."@babel/plugin-proposal-unicode-property-regex-7.12.13"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
@@ -89035,85 +92111,86 @@ in
       sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-top-level-await-7.12.13"
-      sources."@babel/plugin-transform-arrow-functions-7.12.13"
-      sources."@babel/plugin-transform-async-to-generator-7.12.13"
+      sources."@babel/plugin-transform-arrow-functions-7.13.0"
+      sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
       sources."@babel/plugin-transform-block-scoping-7.12.13"
-      sources."@babel/plugin-transform-classes-7.12.13"
-      sources."@babel/plugin-transform-computed-properties-7.12.13"
-      sources."@babel/plugin-transform-destructuring-7.12.13"
+      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-computed-properties-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.0"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
-      sources."@babel/plugin-transform-for-of-7.12.13"
+      sources."@babel/plugin-transform-for-of-7.13.0"
       sources."@babel/plugin-transform-function-name-7.12.13"
       sources."@babel/plugin-transform-literals-7.12.13"
       sources."@babel/plugin-transform-member-expression-literals-7.12.13"
-      sources."@babel/plugin-transform-modules-amd-7.12.13"
-      sources."@babel/plugin-transform-modules-commonjs-7.12.13"
-      sources."@babel/plugin-transform-modules-systemjs-7.12.13"
-      sources."@babel/plugin-transform-modules-umd-7.12.13"
+      sources."@babel/plugin-transform-modules-amd-7.13.0"
+      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-systemjs-7.13.8"
+      sources."@babel/plugin-transform-modules-umd-7.13.0"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.13"
       sources."@babel/plugin-transform-new-target-7.12.13"
       sources."@babel/plugin-transform-object-super-7.12.13"
-      sources."@babel/plugin-transform-parameters-7.12.13"
+      sources."@babel/plugin-transform-parameters-7.13.0"
       sources."@babel/plugin-transform-property-literals-7.12.13"
       sources."@babel/plugin-transform-regenerator-7.12.13"
       sources."@babel/plugin-transform-reserved-words-7.12.13"
       sources."@babel/plugin-transform-shorthand-properties-7.12.13"
-      sources."@babel/plugin-transform-spread-7.12.13"
+      sources."@babel/plugin-transform-spread-7.13.0"
       sources."@babel/plugin-transform-sticky-regex-7.12.13"
-      sources."@babel/plugin-transform-template-literals-7.12.13"
+      sources."@babel/plugin-transform-template-literals-7.13.0"
       sources."@babel/plugin-transform-typeof-symbol-7.12.13"
       sources."@babel/plugin-transform-unicode-escapes-7.12.13"
       sources."@babel/plugin-transform-unicode-regex-7.12.13"
-      (sources."@babel/preset-env-7.12.16" // {
+      (sources."@babel/preset-env-7.13.12" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."semver-6.3.0"
         ];
       })
       sources."@babel/preset-modules-0.1.4"
-      sources."@babel/runtime-7.12.13"
+      sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.12.13"
-      sources."@babel/types-7.12.13"
-      sources."@bugsnag/browser-7.6.0"
-      sources."@bugsnag/core-7.6.0"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
+      sources."@bugsnag/browser-7.9.2"
+      sources."@bugsnag/core-7.9.2"
       sources."@bugsnag/cuid-3.0.0"
-      sources."@bugsnag/js-7.6.0"
-      sources."@bugsnag/node-7.6.0"
+      sources."@bugsnag/js-7.9.2"
+      sources."@bugsnag/node-7.9.2"
       sources."@bugsnag/safe-json-stringify-6.0.0"
       sources."@dabh/diagnostics-2.0.2"
       sources."@jest/types-24.9.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      (sources."@netlify/build-9.1.2" // {
+      (sources."@netlify/build-10.2.4" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."execa-3.4.0"
           sources."locate-path-5.0.0"
           sources."resolve-2.0.0-next.3"
+          sources."semver-6.3.0"
         ];
       })
-      (sources."@netlify/cache-utils-1.0.6" // {
+      (sources."@netlify/cache-utils-1.0.7" // {
         dependencies = [
           sources."locate-path-5.0.0"
         ];
       })
-      (sources."@netlify/config-4.0.1" // {
+      (sources."@netlify/config-5.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."execa-3.4.0"
         ];
       })
-      (sources."@netlify/framework-info-2.3.0" // {
+      (sources."@netlify/framework-info-3.2.1" // {
         dependencies = [
           sources."locate-path-5.0.0"
         ];
       })
-      sources."@netlify/functions-utils-1.3.12"
-      (sources."@netlify/git-utils-1.0.7" // {
+      sources."@netlify/functions-utils-1.3.22"
+      (sources."@netlify/git-utils-1.0.8" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."execa-3.4.0"
@@ -89124,7 +92201,7 @@ in
         ];
       })
       sources."@netlify/open-api-1.3.0"
-      (sources."@netlify/plugin-edge-handlers-1.11.3" // {
+      (sources."@netlify/plugin-edge-handlers-1.11.6" // {
         dependencies = [
           sources."@nodelib/fs.stat-2.0.4"
           sources."array-union-2.1.0"
@@ -89133,8 +92210,8 @@ in
           sources."dir-glob-3.0.1"
           sources."fast-glob-3.2.5"
           sources."fill-range-7.0.1"
-          sources."glob-parent-5.1.1"
-          sources."globby-11.0.2"
+          sources."glob-parent-5.1.2"
+          sources."globby-11.0.3"
           sources."ignore-5.1.8"
           sources."is-number-7.0.0"
           sources."micromatch-4.0.2"
@@ -89143,8 +92220,8 @@ in
           sources."to-regex-range-5.0.1"
         ];
       })
-      sources."@netlify/plugins-list-2.2.0"
-      (sources."@netlify/run-utils-1.0.5" // {
+      sources."@netlify/plugins-list-2.6.0"
+      (sources."@netlify/run-utils-1.0.7" // {
         dependencies = [
           sources."execa-3.4.0"
         ];
@@ -89153,10 +92230,11 @@ in
       sources."@netlify/traffic-mesh-agent-darwin-x64-0.27.10"
       sources."@netlify/traffic-mesh-agent-linux-x64-0.27.10"
       sources."@netlify/traffic-mesh-agent-win32-x64-0.27.10"
-      (sources."@netlify/zip-it-and-ship-it-2.3.0" // {
+      (sources."@netlify/zip-it-and-ship-it-3.1.0" // {
         dependencies = [
           sources."locate-path-5.0.0"
           sources."resolve-2.0.0-next.3"
+          sources."semver-6.3.0"
         ];
       })
       (sources."@nodelib/fs.scandir-2.1.4" // {
@@ -89210,14 +92288,14 @@ in
           sources."dir-glob-3.0.1"
           sources."fast-glob-3.2.5"
           sources."fill-range-7.0.1"
-          sources."glob-parent-5.1.1"
-          sources."globby-11.0.2"
+          sources."glob-parent-5.1.2"
+          sources."globby-11.0.3"
           sources."ignore-5.1.8"
           sources."is-number-7.0.0"
           sources."micromatch-4.0.2"
           sources."slash-3.0.0"
           sources."to-regex-range-5.0.1"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       (sources."@oclif/errors-1.3.4" // {
@@ -89269,13 +92347,13 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      (sources."@oclif/plugin-plugins-1.9.5" // {
+      (sources."@oclif/plugin-plugins-1.10.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
           sources."universalify-2.0.0"
         ];
       })
@@ -89287,7 +92365,7 @@ in
           sources."universal-user-agent-6.0.0"
         ];
       })
-      sources."@octokit/openapi-types-4.0.2"
+      sources."@octokit/openapi-types-6.0.0"
       (sources."@octokit/plugin-paginate-rest-1.1.2" // {
         dependencies = [
           sources."@octokit/types-2.16.2"
@@ -89312,8 +92390,8 @@ in
         ];
       })
       sources."@octokit/rest-16.43.2"
-      sources."@octokit/types-6.8.3"
-      sources."@rollup/plugin-babel-5.2.3"
+      sources."@octokit/types-6.13.0"
+      sources."@rollup/plugin-babel-5.3.0"
       (sources."@rollup/plugin-commonjs-17.1.0" // {
         dependencies = [
           sources."estree-walker-2.0.2"
@@ -89321,39 +92399,41 @@ in
       })
       sources."@rollup/plugin-inject-4.0.2"
       sources."@rollup/plugin-json-4.1.0"
-      sources."@rollup/plugin-node-resolve-11.1.1"
+      sources."@rollup/plugin-node-resolve-11.2.1"
       sources."@rollup/pluginutils-3.1.0"
+      sources."@samverschueren/stream-to-observable-0.3.1"
       sources."@sindresorhus/is-0.14.0"
       (sources."@sindresorhus/slugify-1.1.0" // {
         dependencies = [
           sources."escape-string-regexp-4.0.0"
         ];
       })
-      (sources."@sindresorhus/transliterate-0.1.1" // {
+      (sources."@sindresorhus/transliterate-0.1.2" // {
         dependencies = [
           sources."escape-string-regexp-2.0.0"
         ];
       })
       sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/cacheable-request-6.0.1"
       sources."@types/decompress-4.2.3"
       sources."@types/download-6.2.4"
       sources."@types/estree-0.0.39"
       sources."@types/glob-7.1.3"
       sources."@types/got-8.3.5"
-      sources."@types/hast-2.3.1"
+      sources."@types/http-cache-semantics-4.0.0"
       sources."@types/http-proxy-1.17.5"
       sources."@types/istanbul-lib-coverage-2.0.3"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
-      sources."@types/minimatch-3.0.3"
+      sources."@types/keyv-3.1.1"
+      sources."@types/minimatch-3.0.4"
       sources."@types/mkdirp-0.5.2"
-      sources."@types/node-14.14.26"
-      sources."@types/node-fetch-2.5.8"
+      sources."@types/node-14.14.37"
+      sources."@types/node-fetch-2.5.9"
       sources."@types/normalize-package-data-2.4.0"
-      sources."@types/parse5-5.0.3"
       sources."@types/resolve-1.17.1"
+      sources."@types/responselike-1.0.0"
       sources."@types/semver-5.5.0"
-      sources."@types/unist-2.0.3"
       sources."@types/yargs-13.0.11"
       sources."@types/yargs-parser-20.2.0"
       sources."@typescript-eslint/typescript-estree-2.34.0"
@@ -89361,7 +92441,20 @@ in
       sources."accepts-1.3.7"
       sources."agent-base-6.0.2"
       sources."aggregate-error-3.1.0"
-      sources."ajv-7.1.0"
+      sources."ajv-8.0.5"
+      (sources."all-node-versions-8.0.0" // {
+        dependencies = [
+          sources."@jest/types-25.5.0"
+          sources."@types/yargs-15.0.13"
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.3.0"
+          sources."chalk-3.0.0"
+          sources."global-cache-dir-2.0.0"
+          sources."jest-get-type-25.2.6"
+          sources."jest-validate-25.5.0"
+          sources."pretty-format-25.5.0"
+        ];
+      })
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."emoji-regex-7.0.3"
@@ -89372,8 +92465,9 @@ in
       })
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-4.1.0"
-      sources."ansi-styles-5.1.0"
+      sources."ansi-styles-5.2.0"
       sources."ansicolors-0.3.2"
+      sources."any-observable-0.3.0"
       sources."anymatch-3.1.1"
       (sources."archive-type-4.0.0" // {
         dependencies = [
@@ -89405,7 +92499,7 @@ in
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."atob-lite-2.0.0"
-      (sources."aws-sdk-2.842.0" // {
+      (sources."aws-sdk-2.880.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -89413,16 +92507,22 @@ in
         ];
       })
       sources."babel-plugin-dynamic-import-node-2.3.3"
+      (sources."babel-plugin-polyfill-corejs2-0.1.10" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."babel-plugin-polyfill-corejs3-0.1.7"
+      sources."babel-plugin-polyfill-regenerator-0.1.6"
       sources."backoff-2.5.0"
-      sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
         ];
       })
       sources."base64-js-1.5.1"
-      sources."before-after-hook-2.1.1"
+      sources."before-after-hook-2.2.1"
       sources."binary-extensions-2.2.0"
       sources."bl-4.1.0"
       (sources."body-parser-1.19.0" // {
@@ -89457,6 +92557,12 @@ in
       sources."byline-5.0.0"
       sources."bytes-3.1.0"
       sources."cache-base-1.0.1"
+      (sources."cacheable-lookup-2.0.1" // {
+        dependencies = [
+          sources."json-buffer-3.0.1"
+          sources."keyv-4.0.3"
+        ];
+      })
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."lowercase-keys-2.0.0"
@@ -89466,10 +92572,9 @@ in
       sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001185"
+      sources."caniuse-lite-1.0.30001207"
       sources."cardinal-2.1.1"
       sources."caw-2.0.1"
-      sources."ccount-1.1.0"
       (sources."chalk-2.4.2" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -89479,19 +92584,18 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."character-entities-html4-1.1.4"
-      sources."character-entities-legacy-1.1.4"
       sources."chardet-0.7.0"
       (sources."chokidar-3.5.1" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."fill-range-7.0.1"
-          sources."glob-parent-5.1.1"
+          sources."glob-parent-5.1.2"
           sources."is-number-7.0.0"
+          sources."readdirp-3.5.0"
           sources."to-regex-range-5.0.1"
         ];
       })
-      sources."ci-info-2.0.0"
+      sources."ci-info-3.1.1"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -89514,10 +92618,18 @@ in
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-progress-3.9.0"
-      sources."cli-spinners-2.5.0"
+      sources."cli-spinners-2.6.0"
+      (sources."cli-truncate-0.2.1" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
       (sources."cli-ux-5.5.1" // {
         dependencies = [
-          sources."ansi-escapes-4.3.1"
+          sources."ansi-escapes-4.3.2"
           sources."ansi-styles-4.3.0"
           sources."argparse-1.0.10"
           sources."chalk-4.1.0"
@@ -89526,14 +92638,15 @@ in
           sources."extract-stack-2.0.0"
           sources."js-yaml-3.14.1"
           sources."supports-hyperlinks-2.1.0"
-          sources."tslib-2.1.0"
-          sources."type-fest-0.11.0"
+          sources."tslib-2.2.0"
+          sources."type-fest-0.21.3"
         ];
       })
       sources."cli-width-2.2.1"
       sources."cliui-6.0.0"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
+      sources."code-point-at-1.1.0"
       sources."collection-visit-1.0.0"
       (sources."color-3.0.0" // {
         dependencies = [
@@ -89543,12 +92656,11 @@ in
       })
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."color-string-1.5.4"
-      sources."colorette-1.2.1"
+      sources."color-string-1.5.5"
+      sources."colorette-1.2.2"
       sources."colors-1.4.0"
       sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
-      sources."comma-separated-tokens-1.0.8"
       sources."commander-2.20.3"
       sources."common-path-prefix-2.0.0"
       sources."commondir-1.0.1"
@@ -89589,14 +92701,14 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      (sources."core-js-compat-3.8.3" // {
+      (sources."core-js-compat-3.10.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
       })
       sources."core-util-is-1.0.2"
       sources."cp-file-7.0.0"
-      (sources."cpy-8.1.1" // {
+      (sources."cpy-8.1.2" // {
         dependencies = [
           sources."globby-9.2.0"
         ];
@@ -89606,6 +92718,7 @@ in
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
       sources."cyclist-1.0.1"
+      sources."date-fns-1.30.1"
       sources."date-time-2.1.0"
       (sources."debug-4.3.2" // {
         dependencies = [
@@ -89670,7 +92783,7 @@ in
       sources."depd-1.1.2"
       sources."deprecation-2.3.1"
       sources."destroy-1.0.4"
-      sources."detective-amd-3.0.1"
+      sources."detective-amd-3.1.0"
       sources."detective-cjs-3.1.1"
       sources."detective-es6-2.2.0"
       sources."detective-less-1.0.2"
@@ -89678,7 +92791,11 @@ in
       sources."detective-sass-3.0.1"
       sources."detective-scss-2.0.1"
       sources."detective-stylus-1.0.0"
-      sources."detective-typescript-5.8.0"
+      (sources."detective-typescript-5.8.0" // {
+        dependencies = [
+          sources."typescript-3.9.9"
+        ];
+      })
       (sources."dir-glob-2.2.2" // {
         dependencies = [
           sources."path-type-3.0.0"
@@ -89709,29 +92826,30 @@ in
       })
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.663"
+      sources."electron-to-chromium-1.3.708"
+      sources."elegant-spinner-1.0.1"
       sources."elf-cam-0.1.1"
       sources."emoji-regex-8.0.0"
       sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      sources."env-paths-2.2.0"
-      sources."envinfo-7.7.4"
+      sources."env-paths-2.2.1"
+      sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
       sources."error-stack-parser-2.0.6"
-      sources."esbuild-0.8.44"
+      sources."esbuild-0.9.7"
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
-      (sources."escodegen-1.14.3" // {
+      (sources."escodegen-2.0.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
       sources."eslint-visitor-keys-1.3.0"
       sources."esprima-4.0.1"
-      sources."estraverse-4.3.0"
+      sources."estraverse-5.2.0"
       sources."estree-walker-1.0.1"
       sources."esutils-2.0.3"
       sources."etag-1.8.1"
@@ -89772,7 +92890,6 @@ in
       sources."express-logging-1.1.1"
       sources."ext-list-2.2.2"
       sources."ext-name-5.0.0"
-      sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
           sources."is-extendable-1.0.1"
@@ -89797,9 +92914,42 @@ in
       sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.7"
       sources."fast-stringify-1.1.2"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."fd-slicer-1.1.0"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
+      (sources."fetch-node-website-5.0.3" // {
+        dependencies = [
+          (sources."@jest/types-25.5.0" // {
+            dependencies = [
+              sources."chalk-3.0.0"
+            ];
+          })
+          sources."@sindresorhus/is-2.1.1"
+          sources."@szmarczak/http-timer-4.0.5"
+          sources."@types/yargs-15.0.13"
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.3.0"
+          sources."cacheable-request-7.0.1"
+          sources."chalk-4.1.0"
+          sources."decompress-response-5.0.0"
+          sources."defer-to-connect-2.0.1"
+          sources."got-10.7.0"
+          sources."jest-get-type-25.2.6"
+          (sources."jest-validate-25.5.0" // {
+            dependencies = [
+              sources."chalk-3.0.0"
+            ];
+          })
+          sources."json-buffer-3.0.1"
+          sources."keyv-4.0.3"
+          sources."lowercase-keys-2.0.0"
+          sources."mimic-response-2.1.0"
+          sources."p-cancelable-2.1.0"
+          sources."pretty-format-25.5.0"
+          sources."responselike-2.0.0"
+          sources."type-fest-0.10.0"
+        ];
+      })
       sources."figures-3.2.0"
       sources."file-size-0.0.5"
       sources."file-type-8.1.0"
@@ -89810,7 +92960,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."filter-obj-2.0.1"
+      sources."filter-obj-2.0.2"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -89825,9 +92975,9 @@ in
       sources."flush-write-stream-2.0.0"
       sources."fn.name-1.1.0"
       sources."folder-walker-3.2.0"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."for-in-1.0.2"
-      sources."form-data-3.0.0"
+      sources."form-data-3.0.1"
       sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
@@ -89881,7 +93031,7 @@ in
           sources."dir-glob-3.0.1"
           sources."fast-glob-3.2.5"
           sources."fill-range-7.0.1"
-          sources."glob-parent-5.1.1"
+          sources."glob-parent-5.1.2"
           sources."ignore-5.1.8"
           sources."is-number-7.0.0"
           sources."micromatch-4.0.2"
@@ -89898,9 +93048,9 @@ in
       })
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
-      (sources."has-ansi-0.1.0" // {
+      (sources."has-ansi-2.0.0" // {
         dependencies = [
-          sources."ansi-regex-0.2.1"
+          sources."ansi-regex-2.1.1"
         ];
       })
       sources."has-flag-4.0.0"
@@ -89910,7 +93060,7 @@ in
         ];
       })
       sources."has-symbol-support-x-1.4.2"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-to-string-tag-x-1.4.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -89919,15 +93069,13 @@ in
         ];
       })
       sources."has-yarn-2.1.0"
+      (sources."hasbin-1.2.3" // {
+        dependencies = [
+          sources."async-1.5.2"
+        ];
+      })
       sources."hasha-5.2.2"
-      sources."hast-util-from-parse5-6.0.1"
-      sources."hast-util-is-element-1.1.0"
-      sources."hast-util-parse-selector-2.2.5"
-      sources."hast-util-to-html-7.1.2"
-      sources."hast-util-whitespace-1.0.4"
-      sources."hastscript-6.0.0"
       sources."hosted-git-info-2.8.8"
-      sources."html-void-elements-1.0.5"
       sources."http-cache-semantics-4.1.0"
       (sources."http-call-5.3.0" // {
         dependencies = [
@@ -89940,11 +93088,13 @@ in
         ];
       })
       sources."http-proxy-1.18.1"
-      (sources."http-proxy-middleware-1.0.6" // {
+      (sources."http-proxy-middleware-1.1.0" // {
         dependencies = [
           sources."braces-3.0.2"
+          sources."camelcase-6.2.0"
           sources."fill-range-7.0.1"
           sources."is-number-7.0.0"
+          sources."is-plain-obj-3.0.0"
           sources."micromatch-4.0.2"
           sources."to-regex-range-5.0.1"
         ];
@@ -89981,10 +93131,10 @@ in
       })
       (sources."inquirer-autocomplete-prompt-1.3.0" // {
         dependencies = [
-          sources."ansi-escapes-4.3.1"
+          sources."ansi-escapes-4.3.2"
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
-          sources."type-fest-0.11.0"
+          sources."type-fest-0.21.3"
         ];
       })
       sources."into-stream-3.1.0"
@@ -89993,11 +93143,15 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
-      sources."is-ci-2.0.0"
+      (sources."is-ci-2.0.0" // {
+        dependencies = [
+          sources."ci-info-2.0.0"
+        ];
+      })
       sources."is-core-module-2.2.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -90014,10 +93168,12 @@ in
       })
       sources."is-obj-2.0.0"
       sources."is-object-1.0.2"
+      sources."is-observable-1.1.0"
       sources."is-path-cwd-2.2.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-plain-obj-2.1.0"
       sources."is-plain-object-2.0.4"
+      sources."is-promise-2.2.2"
       sources."is-reference-1.2.1"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-2.0.0"
@@ -90070,6 +93226,30 @@ in
       sources."leven-3.1.0"
       sources."levn-0.3.0"
       sources."lines-and-columns-1.1.6"
+      (sources."listr-0.14.3" // {
+        dependencies = [
+          sources."is-stream-1.1.0"
+          sources."p-map-2.1.0"
+        ];
+      })
+      sources."listr-silent-renderer-1.1.1"
+      (sources."listr-update-renderer-0.5.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."figures-1.7.0"
+          sources."indent-string-3.2.0"
+          sources."log-symbols-1.0.2"
+          sources."strip-ansi-3.0.1"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      (sources."listr-verbose-renderer-0.5.0" // {
+        dependencies = [
+          sources."figures-2.0.0"
+        ];
+      })
       (sources."load-json-file-5.3.0" // {
         dependencies = [
           sources."parse-json-4.0.0"
@@ -90082,10 +93262,11 @@ in
           sources."p-locate-5.0.0"
         ];
       })
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash._reinterpolate-3.0.0"
       sources."lodash.camelcase-4.3.0"
       sources."lodash.clonedeep-4.5.0"
+      sources."lodash.debounce-4.0.8"
       sources."lodash.deburr-4.1.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
@@ -90112,6 +93293,15 @@ in
         ];
       })
       sources."log-symbols-3.0.0"
+      (sources."log-update-2.3.0" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+          sources."wrap-ansi-3.0.1"
+        ];
+      })
       (sources."logform-2.2.0" // {
         dependencies = [
           sources."ms-2.1.3"
@@ -90127,7 +93317,7 @@ in
         ];
       })
       sources."map-cache-0.2.2"
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       sources."map-visit-1.0.0"
       sources."maxstache-1.0.7"
       (sources."maxstache-stream-1.0.4" // {
@@ -90140,6 +93330,7 @@ in
       sources."media-typer-0.3.0"
       sources."memoize-one-5.1.1"
       sources."merge-descriptors-1.0.1"
+      sources."merge-options-3.0.4"
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
@@ -90147,8 +93338,8 @@ in
       sources."micro-memoize-4.0.9"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -90160,7 +93351,7 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."module-definition-3.3.1"
-      sources."moize-6.0.0"
+      sources."moize-6.0.1"
       (sources."move-file-1.2.0" // {
         dependencies = [
           (sources."cp-file-6.2.0" // {
@@ -90184,19 +93375,47 @@ in
       sources."natural-orderby-2.0.3"
       sources."negotiator-0.6.2"
       sources."nested-error-stacks-2.1.0"
-      (sources."netlify-6.1.7" // {
+      (sources."netlify-6.1.16" // {
         dependencies = [
-          sources."qs-6.9.6"
+          sources."@netlify/zip-it-and-ship-it-2.7.1"
+          sources."esbuild-0.8.57"
+          sources."locate-path-5.0.0"
+          sources."qs-6.10.1"
+          sources."resolve-2.0.0-next.3"
+          sources."semver-6.3.0"
         ];
       })
-      sources."netlify-plugin-deploy-preview-commenting-0.0.1-alpha.16"
-      sources."netlify-redirect-parser-3.0.3"
+      sources."netlify-redirect-parser-3.0.9"
       sources."netlify-redirector-0.2.1"
       sources."nice-try-1.0.5"
       sources."node-fetch-2.6.1"
-      sources."node-releases-1.1.70"
+      sources."node-releases-1.1.71"
       sources."node-source-walk-4.2.0"
+      (sources."node-version-alias-1.0.1" // {
+        dependencies = [
+          sources."@jest/types-25.5.0"
+          sources."@types/yargs-15.0.13"
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.3.0"
+          sources."chalk-3.0.0"
+          sources."jest-get-type-25.2.6"
+          sources."jest-validate-25.5.0"
+          sources."pretty-format-25.5.0"
+        ];
+      })
       sources."noop2-2.0.0"
+      (sources."normalize-node-version-10.0.0" // {
+        dependencies = [
+          sources."@jest/types-25.5.0"
+          sources."@types/yargs-15.0.13"
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.3.0"
+          sources."chalk-3.0.0"
+          sources."jest-get-type-25.2.6"
+          sources."jest-validate-25.5.0"
+          sources."pretty-format-25.5.0"
+        ];
+      })
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -90210,6 +93429,7 @@ in
         ];
       })
       sources."npm-run-path-4.0.1"
+      sources."number-is-nan-1.0.1"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
         dependencies = [
@@ -90224,11 +93444,17 @@ in
           sources."kind-of-3.2.2"
         ];
       })
+      sources."object-inspect-1.9.0"
       sources."object-keys-1.1.1"
-      sources."object-treeify-1.1.31"
+      sources."object-treeify-1.1.33"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
       sources."object.pick-1.3.0"
+      (sources."oclif-plugin-completion-0.6.0" // {
+        dependencies = [
+          sources."tslib-2.2.0"
+        ];
+      })
       sources."octokit-pagination-methods-1.1.0"
       sources."omit.js-2.0.2"
       sources."on-finished-2.3.0"
@@ -90236,7 +93462,7 @@ in
       sources."once-1.4.0"
       sources."one-time-1.0.0"
       sources."onetime-5.1.2"
-      sources."open-7.4.0"
+      sources."open-7.4.2"
       (sources."opn-5.5.0" // {
         dependencies = [
           sources."is-wsl-1.1.0"
@@ -90261,6 +93487,11 @@ in
       })
       sources."p-cancelable-1.1.0"
       sources."p-event-4.2.0"
+      (sources."p-every-2.0.0" // {
+        dependencies = [
+          sources."p-map-2.1.0"
+        ];
+      })
       (sources."p-filter-2.1.0" // {
         dependencies = [
           sources."p-map-2.1.0"
@@ -90290,12 +93521,10 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."parse-github-repo-url-1.4.1"
       sources."parse-github-url-1.0.2"
       sources."parse-gitignore-1.0.1"
       sources."parse-json-5.2.0"
       sources."parse-ms-2.1.0"
-      sources."parse5-6.0.1"
       sources."parseurl-1.3.3"
       sources."pascalcase-0.1.1"
       (sources."password-prompt-1.1.2" // {
@@ -90345,16 +93574,16 @@ in
       sources."prettyjson-1.2.1"
       sources."process-es6-0.11.6"
       sources."process-nextick-args-2.0.1"
-      sources."property-information-5.6.0"
       sources."proto-list-1.2.4"
       sources."proxy-addr-2.0.6"
+      sources."ps-list-6.3.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
       sources."qs-6.7.0"
       sources."query-string-5.1.1"
       sources."querystring-0.2.0"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."random-bytes-1.0.0"
       sources."random-item-3.1.0"
       sources."randombytes-2.1.0"
@@ -90373,24 +93602,22 @@ in
       })
       sources."read-pkg-up-7.0.1"
       sources."readable-stream-3.6.0"
-      sources."readdirp-3.5.0"
+      sources."readdirp-3.6.0"
       sources."redeyed-2.1.1"
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-runtime-0.13.8"
       sources."regenerator-transform-0.14.5"
       sources."regex-not-1.0.2"
       sources."regexpu-core-4.7.1"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       sources."regjsgen-0.5.2"
-      (sources."regjsparser-0.6.7" // {
+      (sources."regjsparser-0.6.9" // {
         dependencies = [
           sources."jsesc-0.5.0"
         ];
       })
-      sources."rehype-parse-7.0.1"
-      sources."rehype-stringify-8.0.0"
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
@@ -90411,7 +93638,7 @@ in
       sources."ret-0.1.15"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."rollup-2.38.5"
+      sources."rollup-2.44.0"
       (sources."rollup-plugin-inject-3.0.2" // {
         dependencies = [
           sources."estree-walker-0.6.1"
@@ -90426,7 +93653,7 @@ in
       })
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safe-join-0.1.3"
       sources."safe-json-stringify-1.2.0"
@@ -90434,7 +93661,7 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.1"
       sources."seek-bzip-1.0.6"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -90461,6 +93688,7 @@ in
       sources."setprototypeof-1.1.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
       (sources."simple-swizzle-0.2.2" // {
         dependencies = [
@@ -90468,6 +93696,7 @@ in
         ];
       })
       sources."slash-2.0.0"
+      sources."slice-ansi-0.0.4"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -90512,7 +93741,6 @@ in
       })
       sources."source-map-url-0.4.1"
       sources."sourcemap-codec-1.4.8"
-      sources."space-separated-tokens-1.1.5"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -90545,6 +93773,7 @@ in
           sources."ansi-regex-0.2.1"
           sources."ansi-styles-1.1.0"
           sources."chalk-0.5.1"
+          sources."has-ansi-0.1.0"
           sources."strip-ansi-0.3.0"
           sources."supports-color-0.2.0"
         ];
@@ -90552,13 +93781,12 @@ in
       sources."statsd-client-0.4.5"
       sources."statuses-1.5.0"
       sources."strict-uri-encode-1.1.0"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."stringify-entities-3.1.0"
       (sources."strip-ansi-6.0.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -90582,6 +93810,7 @@ in
           })
         ];
       })
+      sources."symbol-observable-1.2.0"
       sources."tar-stream-2.2.0"
       sources."temp-dir-1.0.0"
       (sources."tempy-0.3.0" // {
@@ -90592,7 +93821,7 @@ in
         ];
       })
       sources."term-size-2.2.1"
-      (sources."terser-5.5.1" // {
+      (sources."terser-5.6.1" // {
         dependencies = [
           sources."source-map-0.7.3"
         ];
@@ -90627,33 +93856,23 @@ in
       sources."treeify-1.1.0"
       sources."trim-repeated-1.0.0"
       sources."triple-beam-1.3.0"
-      sources."trough-1.0.5"
       sources."tslib-1.14.1"
-      sources."tsutils-3.20.0"
+      sources."tsutils-3.21.0"
       sources."tunnel-agent-0.6.0"
       sources."type-check-0.3.2"
       sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
-      sources."typescript-3.9.9"
+      sources."typescript-4.2.3"
       sources."uid-safe-2.1.5"
       sources."unbzip2-stream-1.4.3"
       sources."unicode-canonical-property-names-ecmascript-1.0.4"
       sources."unicode-match-property-ecmascript-1.0.4"
       sources."unicode-match-property-value-ecmascript-1.2.0"
       sources."unicode-property-aliases-ecmascript-1.1.0"
-      (sources."unified-9.2.0" // {
-        dependencies = [
-          sources."is-buffer-2.0.5"
-        ];
-      })
       sources."union-value-1.0.1"
       sources."uniq-1.0.1"
       sources."unique-string-2.0.0"
-      sources."unist-util-is-4.0.4"
-      sources."unist-util-stringify-position-2.0.3"
-      sources."unist-util-visit-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
       sources."universal-user-agent-4.0.1"
       sources."universalify-0.1.2"
       (sources."unixify-1.0.0" // {
@@ -90694,20 +93913,12 @@ in
       sources."validate-npm-package-license-3.0.4"
       sources."validate-npm-package-name-3.0.0"
       sources."vary-1.1.2"
-      (sources."vfile-4.2.1" // {
-        dependencies = [
-          sources."is-buffer-2.0.5"
-        ];
-      })
-      sources."vfile-location-3.2.0"
-      sources."vfile-message-2.0.4"
       (sources."wait-port-0.2.9" // {
         dependencies = [
           sources."commander-3.0.2"
         ];
       })
       sources."wcwidth-1.0.1"
-      sources."web-namespaces-1.1.4"
       sources."well-known-symbols-2.0.0"
       sources."which-2.0.2"
       sources."which-module-2.0.0"
@@ -90790,104 +94001,98 @@ in
   node-gyp = nodeEnv.buildNodePackage {
     name = "node-gyp";
     packageName = "node-gyp";
-    version = "7.1.2";
+    version = "8.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz";
-      sha512 = "CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==";
+      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-8.0.0.tgz";
+      sha512 = "Jod6NxyWtcwrpAQe0O/aXOpC5QfncotgtG73dg65z6VW/C6g/G4jiajXQUBIJ8pk/VfM6mBYE9BN/HvudTunUQ==";
     };
     dependencies = [
+      sources."@npmcli/move-file-1.1.2"
+      sources."@tootallnate/once-1.1.2"
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.6"
+      sources."agent-base-6.0.2"
+      sources."agentkeepalive-4.1.4"
+      sources."aggregate-error-3.1.0"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
-      sources."asn1-0.2.4"
-      sources."assert-plus-1.0.0"
-      sources."asynckit-0.4.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
-      sources."bcrypt-pbkdf-1.0.2"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."caseless-0.12.0"
+      sources."cacache-15.0.6"
       sources."chownr-2.0.0"
+      sources."clean-stack-2.2.0"
       sources."code-point-at-1.1.0"
-      sources."combined-stream-1.0.8"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.2"
-      sources."dashdash-1.14.1"
-      sources."delayed-stream-1.0.0"
+      sources."debug-4.3.2"
       sources."delegates-1.0.0"
-      sources."ecc-jsbn-0.1.2"
-      sources."env-paths-2.2.0"
-      sources."extend-3.0.2"
-      sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-json-stable-stringify-2.1.0"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
+      sources."depd-1.1.2"
+      sources."encoding-0.1.13"
+      sources."env-paths-2.2.1"
+      sources."err-code-2.0.3"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."gauge-2.7.4"
-      sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.6"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
-      sources."http-signature-1.2.0"
+      sources."http-cache-semantics-4.1.0"
+      sources."http-proxy-agent-4.0.1"
+      sources."https-proxy-agent-5.0.0"
+      sources."humanize-ms-1.2.1"
+      sources."iconv-lite-0.6.2"
+      sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      sources."ip-1.1.5"
       sources."is-fullwidth-code-point-1.0.0"
-      sources."is-typedarray-1.0.0"
+      sources."is-lambda-1.0.1"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
-      sources."isstream-0.1.2"
-      sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
       sources."lru-cache-6.0.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."make-fetch-happen-8.0.14"
       sources."minimatch-3.0.4"
       sources."minipass-3.1.3"
+      sources."minipass-collect-1.0.2"
+      sources."minipass-fetch-1.3.3"
+      sources."minipass-flush-1.0.5"
+      sources."minipass-pipeline-1.2.4"
+      sources."minipass-sized-1.0.3"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
+      sources."ms-2.1.2"
       sources."nopt-5.0.0"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
-      sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
+      sources."p-map-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
-      sources."psl-1.8.0"
-      sources."punycode-2.1.1"
-      sources."qs-6.5.2"
+      sources."promise-inflight-1.0.1"
+      sources."promise-retry-2.0.1"
       sources."readable-stream-2.3.7"
-      sources."request-2.88.2"
+      sources."retry-0.12.0"
       sources."rimraf-3.0.2"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.3"
-      sources."sshpk-1.16.1"
+      sources."smart-buffer-4.1.0"
+      sources."socks-2.6.0"
+      sources."socks-proxy-agent-5.0.0"
+      sources."ssri-8.0.1"
       sources."string-width-1.0.2"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
       sources."tar-6.1.0"
-      sources."tough-cookie-2.5.0"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
-      sources."uri-js-4.4.1"
+      sources."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
       sources."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
-      sources."verror-1.10.0"
       sources."which-2.0.2"
       sources."wide-align-1.1.3"
       sources."wrappy-1.0.2"
@@ -90945,7 +94150,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.6.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-0.0.8"
       sources."bcrypt-pbkdf-1.0.2"
       sources."biased-opener-0.2.8"
@@ -91061,8 +94266,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -91232,7 +94437,7 @@ in
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chownr-1.1.4"
       sources."code-point-at-1.1.0"
@@ -91313,7 +94518,7 @@ in
       sha512 = "1BXFaT7oDd5VM80O+1Lf72P9wCkYjg3CODROPRIPvcSEke6ubMo1M5GFsgh5EwGPLlTTlkuSgI+a4T3UhjAzbQ==";
     };
     dependencies = [
-      sources."@babel/runtime-7.12.13"
+      sources."@babel/runtime-7.13.10"
       sources."@node-red/editor-api-1.2.9"
       sources."@node-red/editor-client-1.2.9"
       (sources."@node-red/nodes-1.2.9" // {
@@ -91342,8 +94547,7 @@ in
         ];
       })
       sources."ajv-6.12.6"
-      sources."ansi-regex-5.0.0"
-      sources."ansi-styles-3.2.1"
+      sources."ansi-regex-2.1.1"
       sources."append-field-1.0.0"
       sources."aproba-1.2.0"
       (sources."are-we-there-yet-1.1.5" // {
@@ -91365,7 +94569,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."axios-0.21.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       (sources."basic-auth-2.0.1" // {
         dependencies = [
@@ -91404,14 +94608,12 @@ in
       sources."bytes-3.1.0"
       sources."callback-stream-1.1.0"
       sources."caseless-0.12.0"
-      sources."chalk-2.4.2"
       sources."cheerio-0.22.0"
       sources."chownr-2.0.0"
-      sources."cli-table-0.3.4"
+      sources."cli-table-0.3.6"
       sources."clone-2.1.2"
       sources."code-point-at-1.1.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
       sources."commist-1.1.0"
       sources."concat-map-0.0.1"
@@ -91462,12 +94664,10 @@ in
       })
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
       sources."escape-html-1.0.3"
-      sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."etag-1.8.1"
       (sources."express-4.17.1" // {
@@ -91485,7 +94685,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."finalhandler-1.1.2"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."forwarded-0.1.2"
@@ -91494,14 +94694,7 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.notify-0.0.4"
       sources."fs.realpath-1.0.0"
-      (sources."gauge-2.7.4" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
-        ];
-      })
+      sources."gauge-2.7.4"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."glob-parent-3.1.0"
@@ -91516,7 +94709,6 @@ in
       sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
-      sources."has-flag-3.0.0"
       sources."has-unicode-2.0.1"
       sources."hash-sum-2.0.0"
       sources."help-me-1.1.0"
@@ -91544,7 +94736,7 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-absolute-1.0.0"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-3.1.0"
       sources."is-negated-glob-1.0.0"
       sources."is-relative-1.0.0"
@@ -91588,8 +94780,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-2.4.7"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       (sources."minipass-3.1.3" // {
@@ -91612,10 +94804,10 @@ in
           sources."ms-2.1.2"
           sources."readable-stream-3.6.0"
           sources."string_decoder-1.3.0"
-          sources."ws-7.4.3"
+          sources."ws-7.4.4"
         ];
       })
-      (sources."mqtt-packet-6.7.0" // {
+      (sources."mqtt-packet-6.9.0" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
@@ -91704,7 +94896,7 @@ in
       sources."rc-1.2.8"
       sources."read-1.0.7"
       sources."readable-stream-1.1.14"
-      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-runtime-0.13.8"
       sources."reinterval-1.1.0"
       sources."remove-trailing-separator-1.1.0"
       (sources."request-2.88.0" // {
@@ -91739,12 +94931,11 @@ in
       sources."statuses-1.5.0"
       sources."stream-shift-1.0.1"
       sources."streamsearch-0.1.2"
-      sources."string-width-4.2.0"
+      sources."string-width-1.0.2"
       sources."string_decoder-0.10.31"
-      sources."strip-ansi-6.0.0"
+      sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-5.5.0"
-      sources."tail-2.2.0"
+      sources."tail-2.2.1"
       (sources."tar-6.0.5" // {
         dependencies = [
           sources."mkdirp-1.0.4"
@@ -91767,7 +94958,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
@@ -91786,14 +94977,7 @@ in
       sources."vary-1.1.2"
       sources."verror-1.10.0"
       sources."when-3.7.8"
-      (sources."wide-align-1.1.3" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
+      sources."wide-align-1.1.3"
       sources."wrappy-1.0.2"
       sources."ws-6.2.1"
       sources."xml2js-0.4.23"
@@ -91830,7 +95014,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -91896,8 +95080,8 @@ in
       sources."jsonfile-1.0.1"
       sources."jsprim-1.4.1"
       sources."lru-cache-6.0.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-3.1.3"
@@ -91955,7 +95139,7 @@ in
       sources."rimraf-2.6.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.3"
       sources."slasp-0.0.4"
@@ -92025,7 +95209,7 @@ in
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
       sources."boxen-4.2.0"
       sources."brace-expansion-1.1.11"
@@ -92064,7 +95248,7 @@ in
       sources."fill-range-7.0.1"
       sources."fsevents-2.3.2"
       sources."get-stream-4.1.0"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."global-dirs-2.1.0"
       sources."got-9.6.0"
       sources."graceful-fs-4.2.6"
@@ -92084,7 +95268,7 @@ in
       sources."is-npm-4.0.0"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-yarn-global-0.3.0"
       sources."json-buffer-3.0.0"
@@ -92127,7 +95311,7 @@ in
         ];
       })
       sources."signal-exit-3.0.3"
-      (sources."string-width-4.2.0" // {
+      (sources."string-width-4.2.2" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
@@ -92171,15 +95355,15 @@ in
   np = nodeEnv.buildNodePackage {
     name = "np";
     packageName = "np";
-    version = "7.3.0";
+    version = "7.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/np/-/np-7.3.0.tgz";
-      sha512 = "rbKZ7YMtdyv7k2ViAfhkcmDUimQxTMDyGs8qH3Ex2tzoxei9ZSrQUm2LkTzZ7Uwtde9pIAyud/rwsyxS4w9lDg==";
+      url = "https://registry.npmjs.org/np/-/np-7.4.0.tgz";
+      sha512 = "woJn5Bodg0/VDyUWx5EHIsi+8QlKSows0AVRBt47PG++cJAVE6jQFXcXDFDBMqY5PueFc4w0SA3gxqPklk6oGg==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -92204,7 +95388,7 @@ in
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/responselike-1.0.0"
@@ -92218,15 +95402,15 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
-      sources."ansi-escapes-4.3.1"
+      sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."any-observable-0.5.1"
       sources."array-union-2.1.0"
       sources."arrify-1.0.1"
       sources."async-exit-hook-2.0.1"
-      sources."balanced-match-1.0.0"
-      (sources."boxen-5.0.0" // {
+      sources."balanced-match-1.0.2"
+      (sources."boxen-5.0.1" // {
         dependencies = [
           sources."camelcase-6.2.0"
           sources."type-fest-0.20.2"
@@ -92286,7 +95470,7 @@ in
       })
       sources."decompress-response-5.0.0"
       sources."deep-extend-0.6.0"
-      sources."defer-to-connect-2.0.0"
+      sources."defer-to-connect-2.0.1"
       sources."del-6.0.0"
       sources."dir-glob-3.0.1"
       sources."dot-prop-6.0.1"
@@ -92300,7 +95484,7 @@ in
       sources."execa-5.0.0"
       sources."external-editor-3.1.0"
       sources."fast-glob-3.2.5"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       (sources."figures-3.2.0" // {
         dependencies = [
           sources."escape-string-regexp-1.0.5"
@@ -92313,9 +95497,9 @@ in
       sources."get-stream-6.0.0"
       sources."github-url-from-git-1.5.0"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."global-dirs-2.1.0"
-      sources."globby-11.0.2"
+      sources."globby-11.0.3"
       (sources."got-10.7.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -92385,7 +95569,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
       sources."is-core-module-2.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
@@ -92400,12 +95584,13 @@ in
         ];
       })
       sources."is-path-cwd-2.2.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-plain-obj-1.1.0"
       sources."is-promise-2.2.2"
       sources."is-scoped-2.1.0"
       sources."is-stream-2.0.0"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."is-url-superb-4.0.0"
       sources."is-wsl-2.2.0"
       sources."is-yarn-global-0.3.0"
@@ -92455,10 +95640,10 @@ in
         ];
       })
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.isequal-4.5.0"
       sources."lodash.zip-4.2.0"
-      sources."log-symbols-4.0.0"
+      sources."log-symbols-4.1.0"
       (sources."log-update-2.3.0" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
@@ -92475,7 +95660,7 @@ in
         ];
       })
       sources."map-age-cleaner-0.1.3"
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       (sources."mem-6.1.1" // {
         dependencies = [
           sources."mimic-fn-3.1.0"
@@ -92501,7 +95686,11 @@ in
           sources."type-fest-0.4.1"
         ];
       })
-      sources."normalize-package-data-3.0.0"
+      (sources."normalize-package-data-3.0.2" // {
+        dependencies = [
+          sources."hosted-git-info-4.0.2"
+        ];
+      })
       sources."normalize-url-4.5.0"
       (sources."npm-name-6.0.1" // {
         dependencies = [
@@ -92517,7 +95706,7 @@ in
           sources."mimic-fn-2.1.0"
         ];
       })
-      sources."open-7.4.0"
+      sources."open-7.4.2"
       sources."org-regex-1.0.0"
       sources."os-tmpdir-1.0.2"
       (sources."ow-0.21.0" // {
@@ -92526,7 +95715,7 @@ in
           sources."type-fest-0.20.2"
         ];
       })
-      sources."p-cancelable-2.0.0"
+      sources."p-cancelable-2.1.0"
       sources."p-defer-1.0.0"
       (sources."p-event-4.2.0" // {
         dependencies = [
@@ -92591,7 +95780,7 @@ in
           sources."escape-goat-2.1.1"
         ];
       })
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
       sources."rc-1.2.8"
       (sources."read-pkg-5.2.0" // {
@@ -92623,10 +95812,10 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safer-buffer-2.1.2"
       sources."scoped-regex-2.1.0"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -92642,7 +95831,7 @@ in
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.7"
       sources."split-1.0.1"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
@@ -92657,7 +95846,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.0"
       sources."tslib-1.14.1"
-      sources."type-fest-0.11.0"
+      sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
       (sources."update-notifier-5.1.0" // {
@@ -92685,8 +95874,8 @@ in
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
       sources."yallist-4.0.0"
-      sources."yaml-1.10.0"
-      sources."yargs-parser-20.2.4"
+      sources."yaml-1.10.2"
+      sources."yargs-parser-20.2.7"
       sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -92702,16 +95891,11 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "7.5.3";
+    version = "7.8.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-7.5.3.tgz";
-      sha512 = "4MhBvHrQ82v5cvoWe7tX+IK8Z2xsbde9IS9sCP3SKpRo4JOHxe14tpZ/ZOTCy8xkp0DhBYqjxECmWv2EZK8BXg==";
+      url = "https://registry.npmjs.org/npm/-/npm-7.8.0.tgz";
+      sha512 = "9AC3Dj9OUWaUdmTmEVttE/1MWkfF7+sAKPRo9tKEyjo49AXmHQBn+RC33M9dima91mEMqDIA71xyRm4VmhDipg==";
     };
-    dependencies = [
-      sources."@npmcli/installed-package-contents-1.0.7"
-      sources."npm-bundled-1.1.1"
-      sources."npm-normalize-package-bin-1.0.1"
-    ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "a package manager for JavaScript";
@@ -92725,10 +95909,10 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "11.1.1";
+    version = "11.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-11.1.1.tgz";
-      sha512 = "0K2csepXxqXd3sh05qxU9BcW/pvFBatlM6E4UKKVFe6XlGjQXo4TfI5vRT4uZLG0v2Zj/bWUouQiZvEg5iAFHA==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-11.3.0.tgz";
+      sha512 = "7GMDj40cWw/nRn3BsN+20ca3T6CvHqIiFhooVa5a3VybrS7TNBdbR3/BIi9dw4vFORgFZw/OsW3ZtRTFamnPDQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.4"
@@ -92740,7 +95924,7 @@ in
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.3"
+      sources."@npmcli/run-script-1.8.4"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-1.1.2"
@@ -92752,13 +95936,12 @@ in
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
           sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
           sources."strip-ansi-5.2.0"
         ];
       })
-      sources."ansi-regex-5.0.0"
+      sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.3.0"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -92769,13 +95952,21 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."boxen-5.0.0"
+      (sources."boxen-5.0.1" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."builtins-1.0.3"
-      sources."cacache-15.0.5"
+      sources."cacache-15.0.6"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -92790,20 +95981,12 @@ in
       sources."cint-8.2.1"
       sources."clean-stack-2.2.0"
       sources."cli-boxes-2.2.1"
-      (sources."cli-table-0.3.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."cli-table-0.3.6"
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
+      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
       sources."commander-6.2.1"
       sources."concat-map-0.0.1"
@@ -92823,19 +96006,18 @@ in
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
-      sources."env-paths-2.2.0"
+      sources."env-paths-2.2.1"
       sources."err-code-2.0.3"
       sources."escape-goat-2.1.1"
-      sources."escape-string-regexp-1.0.5"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."figgy-pudding-3.5.2"
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
@@ -92844,25 +96026,18 @@ in
       sources."fp-and-or-0.1.3"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      (sources."gauge-2.7.4" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
-        ];
-      })
+      sources."gauge-2.7.4"
       sources."get-stdin-8.0.0"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       (sources."global-dirs-3.0.0" // {
         dependencies = [
           sources."ini-2.0.0"
         ];
       })
-      sources."globby-11.0.2"
+      sources."globby-11.0.3"
       sources."got-9.6.0"
       sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
@@ -92870,7 +96045,7 @@ in
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
-      sources."hosted-git-info-3.0.8"
+      sources."hosted-git-info-4.0.2"
       sources."http-cache-semantics-4.1.0"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
@@ -92889,14 +96064,14 @@ in
       sources."ip-1.1.5"
       sources."is-ci-2.0.0"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.4.0"
       sources."is-lambda-1.0.1"
       sources."is-npm-5.0.0"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-yarn-global-0.3.0"
       sources."isarray-1.0.0"
@@ -92928,7 +96103,7 @@ in
         ];
       })
       sources."locate-path-6.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
@@ -92938,11 +96113,11 @@ in
       })
       sources."make-fetch-happen-8.0.14"
       sources."map-age-cleaner-0.1.3"
-      sources."mem-8.0.0"
+      sources."mem-8.1.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-3.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -92963,9 +96138,9 @@ in
       sources."npm-bundled-1.1.1"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-package-arg-8.1.0"
-      sources."npm-packlist-2.1.4"
-      sources."npm-pick-manifest-6.1.0"
+      sources."npm-package-arg-8.1.2"
+      sources."npm-packlist-2.1.5"
+      sources."npm-pick-manifest-6.1.1"
       sources."npm-registry-fetch-9.0.0"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
@@ -92983,7 +96158,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-11.2.6"
+      sources."pacote-11.3.1"
       sources."parse-github-url-1.0.2"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
@@ -92995,17 +96170,16 @@ in
       sources."progress-2.0.3"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
-      sources."prompts-2.4.0"
+      sources."prompts-2.4.1"
       sources."psl-1.8.0"
-      sources."puka-1.0.1"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
       sources."qs-6.5.2"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
       sources."rc-config-loader-4.0.0"
-      sources."read-package-json-fast-2.0.1"
+      sources."read-package-json-fast-2.0.2"
       sources."readable-stream-2.3.7"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
@@ -93019,7 +96193,7 @@ in
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -93031,14 +96205,14 @@ in
       sources."sisteransi-1.0.5"
       sources."slash-3.0.0"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.5.1"
+      sources."socks-2.6.0"
       sources."socks-proxy-agent-5.0.0"
       sources."spawn-please-1.0.0"
       sources."sshpk-1.16.1"
       sources."ssri-8.0.1"
-      sources."string-width-4.2.0"
+      sources."string-width-1.0.2"
       sources."string_decoder-1.1.1"
-      sources."strip-ansi-6.0.0"
+      sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
       sources."tar-6.1.0"
@@ -93060,16 +96234,25 @@ in
       sources."validate-npm-package-name-3.0.0"
       sources."verror-1.10.0"
       sources."which-2.0.2"
-      (sources."wide-align-1.1.3" // {
+      sources."wide-align-1.1.3"
+      (sources."widest-line-3.1.0" // {
         dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
+          sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      (sources."wrap-ansi-7.0.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
         ];
       })
-      sources."widest-line-3.1.0"
-      sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
@@ -93107,7 +96290,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."block-stream-0.0.9"
       sources."brace-expansion-1.1.11"
@@ -93171,8 +96354,8 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-1.0.1"
       sources."jsprim-1.4.1"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.3.5"
@@ -93269,7 +96452,7 @@ in
     };
     dependencies = [
       sources."async-2.6.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."deepmerge-2.1.0"
@@ -93304,62 +96487,73 @@ in
   parcel-bundler = nodeEnv.buildNodePackage {
     name = "parcel-bundler";
     packageName = "parcel-bundler";
-    version = "1.12.4";
+    version = "1.12.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.4.tgz";
-      sha512 = "G+iZGGiPEXcRzw0fiRxWYCKxdt/F7l9a0xkiU4XbcVRJCSlBnioWEwJMutOCCpoQmaQtjB4RBHDGIHN85AIhLQ==";
+      url = "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.5.tgz";
+      sha512 = "hpku8mW67U6PXQIenW6NBbphBOMb8XzW6B9r093DUhYj5GN2FUB/CXCiz5hKoPYUsusZ35BpProH8AUF9bh5IQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.12.13"
-      (sources."@babel/core-7.12.16" // {
+      sources."@babel/compat-data-7.13.12"
+      (sources."@babel/core-7.13.14" // {
         dependencies = [
           sources."json5-2.2.0"
+          sources."semver-6.3.0"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.12.15" // {
+      (sources."@babel/generator-7.13.9" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      sources."@babel/helper-compilation-targets-7.12.16"
-      sources."@babel/helper-create-class-features-plugin-7.12.16"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.16"
-      sources."@babel/helper-explode-assignable-expression-7.12.13"
+      (sources."@babel/helper-compilation-targets-7.13.13" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-create-class-features-plugin-7.13.11"
+      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
+      (sources."@babel/helper-define-polyfill-provider-0.1.5" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-explode-assignable-expression-7.13.0"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.12.13"
-      sources."@babel/helper-member-expression-to-functions-7.12.16"
-      sources."@babel/helper-module-imports-7.12.13"
-      sources."@babel/helper-module-transforms-7.12.13"
+      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-plugin-utils-7.12.13"
-      sources."@babel/helper-remap-async-to-generator-7.12.13"
-      sources."@babel/helper-replace-supers-7.12.13"
-      sources."@babel/helper-simple-access-7.12.13"
+      sources."@babel/helper-plugin-utils-7.13.0"
+      sources."@babel/helper-remap-async-to-generator-7.13.0"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/helper-validator-option-7.12.16"
-      sources."@babel/helper-wrap-function-7.12.13"
-      sources."@babel/helpers-7.12.13"
-      sources."@babel/highlight-7.12.13"
-      sources."@babel/parser-7.12.16"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.13"
-      sources."@babel/plugin-proposal-class-properties-7.12.13"
-      sources."@babel/plugin-proposal-dynamic-import-7.12.16"
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helper-wrap-function-7.13.0"
+      sources."@babel/helpers-7.13.10"
+      sources."@babel/highlight-7.13.10"
+      sources."@babel/parser-7.13.13"
+      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
+      sources."@babel/plugin-proposal-class-properties-7.13.0"
+      sources."@babel/plugin-proposal-dynamic-import-7.13.8"
       sources."@babel/plugin-proposal-export-namespace-from-7.12.13"
-      sources."@babel/plugin-proposal-json-strings-7.12.13"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.12.13"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.12.13"
+      sources."@babel/plugin-proposal-json-strings-7.13.8"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.13.8"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.13.8"
       sources."@babel/plugin-proposal-numeric-separator-7.12.13"
-      sources."@babel/plugin-proposal-object-rest-spread-7.12.13"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.12.13"
-      sources."@babel/plugin-proposal-optional-chaining-7.12.16"
-      sources."@babel/plugin-proposal-private-methods-7.12.13"
+      sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.13.8"
+      sources."@babel/plugin-proposal-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-private-methods-7.13.0"
       sources."@babel/plugin-proposal-unicode-property-regex-7.12.13"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
@@ -93375,46 +96569,50 @@ in
       sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-top-level-await-7.12.13"
-      sources."@babel/plugin-transform-arrow-functions-7.12.13"
-      sources."@babel/plugin-transform-async-to-generator-7.12.13"
+      sources."@babel/plugin-transform-arrow-functions-7.13.0"
+      sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
       sources."@babel/plugin-transform-block-scoping-7.12.13"
-      sources."@babel/plugin-transform-classes-7.12.13"
-      sources."@babel/plugin-transform-computed-properties-7.12.13"
-      sources."@babel/plugin-transform-destructuring-7.12.13"
+      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-computed-properties-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.0"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
-      sources."@babel/plugin-transform-flow-strip-types-7.12.13"
-      sources."@babel/plugin-transform-for-of-7.12.13"
+      sources."@babel/plugin-transform-flow-strip-types-7.13.0"
+      sources."@babel/plugin-transform-for-of-7.13.0"
       sources."@babel/plugin-transform-function-name-7.12.13"
       sources."@babel/plugin-transform-literals-7.12.13"
       sources."@babel/plugin-transform-member-expression-literals-7.12.13"
-      sources."@babel/plugin-transform-modules-amd-7.12.13"
-      sources."@babel/plugin-transform-modules-commonjs-7.12.13"
-      sources."@babel/plugin-transform-modules-systemjs-7.12.13"
-      sources."@babel/plugin-transform-modules-umd-7.12.13"
+      sources."@babel/plugin-transform-modules-amd-7.13.0"
+      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-systemjs-7.13.8"
+      sources."@babel/plugin-transform-modules-umd-7.13.0"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.13"
       sources."@babel/plugin-transform-new-target-7.12.13"
       sources."@babel/plugin-transform-object-super-7.12.13"
-      sources."@babel/plugin-transform-parameters-7.12.13"
+      sources."@babel/plugin-transform-parameters-7.13.0"
       sources."@babel/plugin-transform-property-literals-7.12.13"
-      sources."@babel/plugin-transform-react-jsx-7.12.16"
+      sources."@babel/plugin-transform-react-jsx-7.13.12"
       sources."@babel/plugin-transform-regenerator-7.12.13"
       sources."@babel/plugin-transform-reserved-words-7.12.13"
       sources."@babel/plugin-transform-shorthand-properties-7.12.13"
-      sources."@babel/plugin-transform-spread-7.12.13"
+      sources."@babel/plugin-transform-spread-7.13.0"
       sources."@babel/plugin-transform-sticky-regex-7.12.13"
-      sources."@babel/plugin-transform-template-literals-7.12.13"
+      sources."@babel/plugin-transform-template-literals-7.13.0"
       sources."@babel/plugin-transform-typeof-symbol-7.12.13"
       sources."@babel/plugin-transform-unicode-escapes-7.12.13"
       sources."@babel/plugin-transform-unicode-regex-7.12.13"
-      sources."@babel/preset-env-7.12.16"
+      (sources."@babel/preset-env-7.13.12" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."@babel/preset-modules-0.1.4"
-      sources."@babel/runtime-7.12.13"
+      sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.12.13"
-      sources."@babel/types-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -93451,7 +96649,7 @@ in
       sources."asn1-0.2.4"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       (sources."assert-1.5.0" // {
@@ -93469,6 +96667,13 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."babel-plugin-dynamic-import-node-2.3.3"
+      (sources."babel-plugin-polyfill-corejs2-0.1.10" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."babel-plugin-polyfill-corejs3-0.1.7"
+      sources."babel-plugin-polyfill-regenerator-0.1.6"
       (sources."babel-runtime-6.26.0" // {
         dependencies = [
           sources."regenerator-runtime-0.11.1"
@@ -93480,7 +96685,7 @@ in
         ];
       })
       sources."babylon-walk-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -93490,7 +96695,7 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
-      sources."bn.js-5.1.3"
+      sources."bn.js-5.2.0"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-2.3.2"
@@ -93529,7 +96734,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001185"
+      sources."caniuse-lite-1.0.30001207"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -93543,8 +96748,8 @@ in
       sources."color-3.1.3"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.4"
-      sources."colorette-1.2.1"
+      sources."color-string-1.5.5"
+      sources."colorette-1.2.2"
       sources."combined-stream-1.0.8"
       sources."command-exists-1.2.9"
       sources."commander-2.20.3"
@@ -93556,7 +96761,7 @@ in
       sources."convert-source-map-1.7.0"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.8.3" // {
+      (sources."core-js-compat-3.10.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -93565,7 +96770,7 @@ in
       sources."cosmiconfig-5.2.1"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."create-hash-1.2.0"
@@ -93596,15 +96801,15 @@ in
       sources."css-tree-1.0.0-alpha.37"
       sources."css-what-3.4.2"
       sources."cssesc-3.0.0"
-      sources."cssnano-4.1.10"
-      sources."cssnano-preset-default-4.0.7"
+      sources."cssnano-4.1.11"
+      sources."cssnano-preset-default-4.0.8"
       sources."cssnano-util-get-arguments-4.0.0"
       sources."cssnano-util-get-match-4.0.0"
       sources."cssnano-util-raw-cache-4.0.1"
       sources."cssnano-util-same-parent-4.0.1"
       (sources."csso-4.2.0" // {
         dependencies = [
-          sources."css-tree-1.1.2"
+          sources."css-tree-1.1.3"
           sources."mdn-data-2.0.14"
         ];
       })
@@ -93644,12 +96849,12 @@ in
       sources."destroy-1.0.4"
       (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.1.0"
+          sources."domelementtype-2.2.0"
           sources."entities-2.2.0"
         ];
       })
@@ -93664,17 +96869,17 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.663"
+      sources."electron-to-chromium-1.3.708"
       (sources."elliptic-6.5.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."encodeurl-1.0.2"
       sources."entities-1.1.2"
-      sources."envinfo-7.7.4"
+      sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
-      (sources."es-abstract-1.18.0-next.2" // {
+      (sources."es-abstract-1.18.0" // {
         dependencies = [
           sources."object-inspect-1.9.0"
         ];
@@ -93688,7 +96893,7 @@ in
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."etag-1.8.1"
-      sources."events-3.2.0"
+      sources."events-3.3.0"
       sources."evp_bytestokey-1.0.3"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -93745,8 +96950,9 @@ in
           sources."ansi-regex-2.1.1"
         ];
       })
+      sources."has-bigints-1.0.1"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -93764,7 +96970,6 @@ in
       sources."hmac-drbg-1.0.1"
       sources."hsl-regex-1.0.0"
       sources."hsla-regex-1.0.0"
-      sources."html-comment-regex-1.1.2"
       sources."html-encoding-sniffer-1.0.2"
       sources."html-tags-1.2.0"
       (sources."htmlnano-0.2.8" // {
@@ -93796,7 +97001,9 @@ in
         ];
       })
       sources."is-arrayish-0.2.1"
+      sources."is-bigint-1.0.1"
       sources."is-binary-path-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
       sources."is-color-stop-1.1.0"
@@ -93819,11 +97026,12 @@ in
       sources."is-html-1.1.0"
       sources."is-negative-zero-2.0.1"
       sources."is-number-3.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-plain-object-2.0.4"
       sources."is-regex-1.1.2"
       sources."is-resolvable-1.1.0"
-      sources."is-svg-3.0.0"
+      sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-url-1.2.4"
@@ -93857,8 +97065,9 @@ in
       sources."jsprim-1.4.1"
       sources."kind-of-3.2.2"
       sources."levn-0.3.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.clone-4.5.0"
+      sources."lodash.debounce-4.0.8"
       sources."lodash.memoize-4.1.2"
       sources."lodash.sortby-4.7.0"
       sources."lodash.uniq-4.5.0"
@@ -93884,12 +97093,12 @@ in
       })
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
@@ -93913,13 +97122,13 @@ in
       })
       sources."nice-try-1.0.5"
       sources."node-addon-api-1.7.2"
-      sources."node-forge-0.7.6"
+      sources."node-forge-0.10.0"
       (sources."node-libs-browser-2.2.1" // {
         dependencies = [
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.70"
+      sources."node-releases-1.1.71"
       sources."normalize-path-3.0.0"
       sources."normalize-url-3.3.0"
       sources."nth-check-1.0.2"
@@ -93931,9 +97140,9 @@ in
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
-      sources."object.getownpropertydescriptors-2.1.1"
+      sources."object.getownpropertydescriptors-2.1.2"
       sources."object.pick-1.3.0"
-      sources."object.values-1.1.2"
+      sources."object.values-1.1.3"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
@@ -94020,7 +97229,7 @@ in
       sources."postcss-reduce-initial-4.0.3"
       sources."postcss-reduce-transforms-4.0.2"
       sources."postcss-selector-parser-6.0.4"
-      sources."postcss-svgo-4.0.2"
+      sources."postcss-svgo-4.0.3"
       sources."postcss-unique-selectors-4.0.1"
       sources."postcss-value-parser-3.3.1"
       sources."posthtml-0.11.6"
@@ -94032,7 +97241,7 @@ in
       sources."psl-1.8.0"
       (sources."public-encrypt-4.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."punycode-2.1.1"
@@ -94059,7 +97268,7 @@ in
       sources."readdirp-2.2.1"
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-runtime-0.13.8"
       sources."regenerator-transform-0.14.5"
       (sources."regex-not-1.0.2" // {
         dependencies = [
@@ -94069,7 +97278,7 @@ in
       })
       sources."regexpu-core-4.7.1"
       sources."regjsgen-0.5.2"
-      (sources."regjsparser-0.6.7" // {
+      (sources."regjsparser-0.6.9" // {
         dependencies = [
           sources."jsesc-0.5.0"
         ];
@@ -94160,8 +97369,8 @@ in
       sources."stealthy-require-1.1.1"
       sources."stream-browserify-2.0.2"
       sources."stream-http-2.8.3"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-4.0.0"
       (sources."stylehacks-4.0.3" // {
@@ -94196,6 +97405,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."typedarray-0.0.6"
+      sources."unbox-primitive-1.0.1"
       (sources."uncss-0.17.3" // {
         dependencies = [
           sources."is-absolute-url-3.0.3"
@@ -94237,14 +97447,9 @@ in
         ];
       })
       sources."util-deprecate-1.0.2"
-      (sources."util.promisify-1.0.1" // {
-        dependencies = [
-          sources."es-abstract-1.17.7"
-          sources."object-inspect-1.9.0"
-        ];
-      })
+      sources."util.promisify-1.0.1"
       sources."uuid-3.4.0"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."vendors-1.0.4"
       sources."verror-1.10.0"
       sources."vlq-0.2.3"
@@ -94257,6 +97462,7 @@ in
       sources."whatwg-mimetype-2.3.0"
       sources."whatwg-url-7.1.0"
       sources."which-1.3.1"
+      sources."which-boxed-primitive-1.0.2"
       sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
       sources."ws-5.2.2"
@@ -94301,7 +97507,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."babybird-0.0.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bindings-1.5.0"
       sources."bintrees-1.0.1"
@@ -94385,11 +97591,11 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.6"
-      sources."handlebars-4.7.6"
+      sources."handlebars-4.7.7"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."hat-0.0.3"
       sources."heapdump-0.3.15"
       sources."hot-shots-6.8.7"
@@ -94420,7 +97626,7 @@ in
       sources."kad-memstore-0.0.1"
       sources."limitation-0.2.1"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.clone-4.5.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lru-cache-6.0.0"
@@ -94430,14 +97636,14 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."moment-2.29.1"
       sources."ms-2.0.0"
-      sources."msgpack5-3.6.0"
+      sources."msgpack5-3.6.1"
       sources."mv-2.1.1"
       sources."nan-2.14.2"
       sources."ncp-2.0.0"
@@ -94502,9 +97708,9 @@ in
         ];
       })
       sources."serve-static-1.14.1"
-      (sources."service-runner-2.8.1" // {
+      (sources."service-runner-2.8.2" // {
         dependencies = [
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
           sources."yargs-14.2.3"
         ];
       })
@@ -94525,7 +97731,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.12.7"
+      sources."uglify-js-3.13.3"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.1"
@@ -94563,259 +97769,59 @@ in
   patch-package = nodeEnv.buildNodePackage {
     name = "patch-package";
     packageName = "patch-package";
-    version = "6.2.2";
+    version = "6.4.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/patch-package/-/patch-package-6.2.2.tgz";
-      sha512 = "YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg==";
+      url = "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz";
+      sha512 = "S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==";
     };
     dependencies = [
       sources."@yarnpkg/lockfile-1.1.0"
       sources."ansi-styles-3.2.1"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
-      sources."array-unique-0.3.2"
-      sources."assign-symbols-1.0.0"
-      sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."cache-base-1.0.1"
+      sources."braces-3.0.2"
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      sources."collection-visit-1.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
-      sources."copy-descriptor-0.1.1"
       sources."cross-spawn-6.0.5"
-      sources."debug-2.6.9"
-      sources."decode-uri-component-0.2.0"
-      sources."define-property-2.0.2"
       sources."escape-string-regexp-1.0.5"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      (sources."find-yarn-workspace-root-1.2.1" // {
-        dependencies = [
-          sources."fs-extra-4.0.3"
-        ];
-      })
-      sources."for-in-1.0.2"
-      sources."fragment-cache-0.2.1"
+      sources."fill-range-7.0.1"
+      sources."find-yarn-workspace-root-2.0.0"
       sources."fs-extra-7.0.1"
       sources."fs.realpath-1.0.0"
-      sources."get-value-2.0.6"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.6"
       sources."has-flag-3.0.0"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          sources."kind-of-4.0.0"
-        ];
-      })
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-accessor-descriptor-1.0.0"
-      sources."is-buffer-1.1.6"
       sources."is-ci-2.0.0"
-      sources."is-data-descriptor-1.0.0"
-      sources."is-descriptor-1.0.2"
-      sources."is-extendable-0.1.1"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."is-plain-object-2.0.4"
-      sources."is-windows-1.0.2"
-      sources."isarray-1.0.0"
+      sources."is-docker-2.2.0"
+      sources."is-number-7.0.0"
+      sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
-      sources."isobject-3.0.1"
       sources."jsonfile-4.0.0"
-      sources."kind-of-6.0.3"
       sources."klaw-sync-6.0.0"
-      sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
-      sources."micromatch-3.1.10"
+      sources."micromatch-4.0.2"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      sources."ms-2.0.0"
-      sources."nanomatch-1.2.13"
       sources."nice-try-1.0.5"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."object-visit-1.0.1"
-      sources."object.pick-1.3.0"
       sources."once-1.4.0"
+      sources."open-7.4.2"
       sources."os-tmpdir-1.0.2"
-      sources."pascalcase-0.1.1"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."posix-character-classes-0.1.1"
-      sources."regex-not-1.0.2"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
-      sources."resolve-url-0.2.1"
-      sources."ret-0.1.15"
+      sources."picomatch-2.2.2"
       sources."rimraf-2.7.1"
-      sources."safe-regex-1.1.0"
       sources."semver-5.7.1"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."slash-2.0.0"
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.1"
-      sources."split-string-3.1.0"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."supports-color-5.5.0"
       sources."tmp-0.0.33"
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
-      sources."union-value-1.0.1"
+      sources."to-regex-range-5.0.1"
       sources."universalify-0.1.2"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
-      sources."urix-0.1.0"
-      sources."use-3.1.1"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
     ];
@@ -94850,7 +97856,7 @@ in
       sources."appendable-cli-menu-2.0.0"
       sources."array-find-index-1.0.2"
       sources."array-flatten-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-0.0.8"
       sources."bencode-2.0.1"
       sources."bep53-range-1.1.0"
@@ -94867,7 +97873,7 @@ in
         ];
       })
       sources."blob-to-buffer-1.2.9"
-      sources."bn.js-4.11.9"
+      sources."bn.js-4.12.0"
       sources."bncode-0.5.3"
       sources."bonjour-3.5.0"
       sources."bplist-creator-0.0.6"
@@ -94934,7 +97940,7 @@ in
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."hat-0.0.3"
       sources."hosted-git-info-2.8.8"
       sources."http-headers-3.0.2"
@@ -94950,7 +97956,7 @@ in
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
           sources."is-fullwidth-code-point-2.0.0"
-          sources."lodash-4.17.20"
+          sources."lodash-4.17.21"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
           sources."supports-color-5.5.0"
@@ -94984,7 +97990,7 @@ in
       sources."magnet-uri-5.4.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
-      sources."mime-2.5.0"
+      sources."mime-2.5.2"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -95001,7 +98007,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.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
@@ -95043,8 +98049,8 @@ in
       sources."plist-1.2.0"
       sources."process-nextick-args-2.0.1"
       sources."pump-2.0.1"
-      sources."queue-microtask-1.2.2"
-      sources."random-access-file-2.1.5"
+      sources."queue-microtask-1.2.3"
+      sources."random-access-file-2.2.0"
       sources."random-access-storage-1.4.1"
       sources."random-iterate-1.0.1"
       sources."randombytes-2.1.0"
@@ -95173,7 +98179,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."backo2-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64-js-1.5.1"
       sources."base64id-2.0.0"
@@ -95191,7 +98197,7 @@ in
       })
       sources."bl-4.1.0"
       sources."blob-0.0.5"
-      sources."bn.js-4.11.9"
+      sources."bn.js-4.12.0"
       sources."bncode-0.5.3"
       sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
@@ -95249,7 +98255,7 @@ in
           sources."ms-2.1.3"
         ];
       })
-      (sources."engine.io-client-3.5.0" // {
+      (sources."engine.io-client-3.5.1" // {
         dependencies = [
           sources."debug-3.1.0"
         ];
@@ -95326,7 +98332,7 @@ in
           sources."readable-stream-2.3.7"
         ];
       })
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
@@ -95338,8 +98344,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -95392,8 +98398,8 @@ in
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
-      sources."queue-microtask-1.2.2"
-      sources."random-access-file-2.1.5"
+      sources."queue-microtask-1.2.3"
+      sources."random-access-file-2.2.0"
       sources."random-access-storage-1.4.1"
       sources."random-bytes-1.0.0"
       sources."random-iterate-1.0.1"
@@ -95494,7 +98500,7 @@ in
       sources."verror-1.10.0"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."yeast-0.1.2"
@@ -95513,10 +98519,10 @@ in
   pm2 = nodeEnv.buildNodePackage {
     name = "pm2";
     packageName = "pm2";
-    version = "4.5.4";
+    version = "4.5.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pm2/-/pm2-4.5.4.tgz";
-      sha512 = "2xKXrKz21i1R3BK2XxVIPq5Iy9fKHBVgZ+KMfRrx72mc7bq84SG/D+iTO32ihLf2Qe+N1o8rDskAt4M30JWyiA==";
+      url = "https://registry.npmjs.org/pm2/-/pm2-4.5.6.tgz";
+      sha512 = "4J5q704Xl6VmpmQhXFGMJL4kXyyQw3AZM1FE9vRxhS3LiDI/+WVBtOM6pqJ4g/RKW+AUjEkc23i/DCC4BVenDA==";
     };
     dependencies = [
       (sources."@opencensus/core-0.0.9" // {
@@ -95530,33 +98536,15 @@ in
           sources."semver-5.7.1"
         ];
       })
-      (sources."@pm2/agent-1.0.4" // {
+      (sources."@pm2/agent-1.0.8" // {
         dependencies = [
-          sources."debug-4.1.1"
-          (sources."pm2-axon-3.3.0" // {
-            dependencies = [
-              sources."debug-3.2.7"
-            ];
-          })
-          (sources."pm2-axon-rpc-0.5.2" // {
-            dependencies = [
-              sources."debug-3.2.7"
-            ];
-          })
           sources."semver-7.2.3"
         ];
       })
-      (sources."@pm2/agent-node-1.1.10" // {
-        dependencies = [
-          sources."debug-3.2.7"
-          sources."ws-6.2.1"
-        ];
-      })
-      (sources."@pm2/io-4.3.5" // {
+      (sources."@pm2/io-5.0.0" // {
         dependencies = [
           sources."async-2.6.3"
-          sources."debug-4.1.1"
-          sources."eventemitter2-6.4.3"
+          sources."eventemitter2-6.4.4"
           sources."semver-6.3.0"
           sources."tslib-1.9.3"
         ];
@@ -95564,11 +98552,12 @@ in
       (sources."@pm2/js-api-0.6.7" // {
         dependencies = [
           sources."async-2.6.3"
-          sources."eventemitter2-6.4.3"
+          sources."eventemitter2-6.4.4"
         ];
       })
-      sources."@pm2/pm2-version-check-1.0.3"
-      sources."agent-base-4.3.0"
+      sources."@pm2/pm2-version-check-1.0.4"
+      sources."@tootallnate/once-1.1.2"
+      sources."agent-base-6.0.2"
       sources."amp-0.3.1"
       sources."amp-message-0.1.2"
       sources."ansi-colors-4.1.1"
@@ -95579,16 +98568,15 @@ in
           sources."sprintf-js-1.0.3"
         ];
       })
-      sources."ast-types-0.14.2"
+      sources."ast-types-0.13.4"
       sources."async-3.2.0"
-      sources."async-limiter-1.0.1"
       (sources."async-listener-0.6.10" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
       sources."axios-0.21.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
       sources."blessed-0.1.81"
       sources."bodec-0.1.0"
@@ -95600,7 +98588,6 @@ in
       sources."charm-0.1.2"
       sources."chokidar-3.5.1"
       sources."cli-tableau-2.0.1"
-      sources."co-4.6.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."commander-2.15.1"
@@ -95609,69 +98596,41 @@ in
       sources."core-util-is-1.0.2"
       sources."cron-1.8.2"
       sources."culvert-0.1.2"
-      sources."data-uri-to-buffer-1.2.0"
+      sources."data-uri-to-buffer-3.0.1"
       sources."dayjs-1.8.36"
-      (sources."debug-4.3.2" // {
-        dependencies = [
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."debug-4.3.2"
       sources."deep-is-0.1.3"
-      sources."degenerator-1.0.4"
+      sources."degenerator-2.2.0"
       sources."depd-1.1.2"
       sources."emitter-listener-1.1.2"
       sources."enquirer-2.3.6"
-      sources."es6-promise-4.2.8"
-      sources."es6-promisify-5.0.0"
-      sources."escape-regexp-0.0.1"
       sources."escape-string-regexp-4.0.0"
-      (sources."escodegen-1.14.3" // {
-        dependencies = [
-          sources."esprima-4.0.1"
-        ];
-      })
-      sources."esprima-3.1.3"
+      sources."escodegen-1.14.3"
+      sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."eventemitter2-5.0.1"
-      sources."extend-3.0.2"
       sources."fast-levenshtein-2.0.6"
       sources."fclone-1.0.11"
-      sources."file-uri-to-path-1.0.0"
+      sources."file-uri-to-path-2.0.0"
       sources."fill-range-7.0.1"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
+      sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
-      (sources."ftp-0.3.10" // {
-        dependencies = [
-          sources."readable-stream-1.1.14"
-        ];
-      })
+      sources."ftp-0.3.10"
       sources."function-bind-1.1.1"
-      (sources."get-uri-2.0.4" // {
-        dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
-        ];
-      })
+      sources."get-uri-3.0.2"
       sources."git-node-fs-1.0.0"
       sources."git-sha1-0.1.2"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
+      sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."http-errors-1.7.3"
-      (sources."http-proxy-agent-2.1.0" // {
-        dependencies = [
-          sources."debug-3.1.0"
-          sources."ms-2.0.0"
-        ];
-      })
-      (sources."https-proxy-agent-3.0.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
+      sources."http-proxy-agent-4.0.1"
+      sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -95684,9 +98643,10 @@ in
       sources."is-number-7.0.0"
       sources."isarray-0.0.1"
       sources."js-git-0.7.8"
+      sources."jsonfile-4.0.0"
       sources."lazy-1.0.11"
       sources."levn-0.3.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."log-driver-1.2.7"
       sources."lru-cache-5.1.1"
       sources."minimatch-3.0.4"
@@ -95694,14 +98654,14 @@ in
       sources."module-details-from-path-1.0.3"
       sources."moment-2.29.1"
       sources."moment-timezone-0.5.33"
-      sources."ms-2.1.3"
+      sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       (sources."needle-2.4.0" // {
         dependencies = [
           sources."debug-3.2.7"
         ];
       })
-      sources."netmask-1.0.6"
+      sources."netmask-2.0.2"
       sources."normalize-path-3.0.0"
       (sources."nssocket-0.6.0" // {
         dependencies = [
@@ -95710,47 +98670,33 @@ in
       })
       sources."once-1.4.0"
       sources."optionator-0.8.3"
-      sources."pac-proxy-agent-3.0.1"
-      sources."pac-resolver-3.0.0"
+      sources."pac-proxy-agent-4.1.0"
+      sources."pac-resolver-4.2.0"
       sources."pako-0.2.9"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.6"
       sources."picomatch-2.2.2"
-      (sources."pidusage-2.0.21" // {
-        dependencies = [
-          sources."safe-buffer-5.2.1"
-        ];
-      })
-      sources."pm2-axon-4.0.0"
-      (sources."pm2-axon-rpc-0.6.0" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
+      sources."pidusage-2.0.21"
+      sources."pm2-axon-4.0.1"
+      sources."pm2-axon-rpc-0.7.1"
       sources."pm2-deploy-1.0.2"
       sources."pm2-multimeter-0.1.2"
       sources."prelude-ls-1.1.2"
-      sources."process-nextick-args-2.0.1"
       sources."promptly-2.2.0"
-      sources."proxy-agent-3.1.1"
+      sources."proxy-agent-4.0.1"
       sources."proxy-from-env-1.1.0"
       sources."ps-list-6.3.0"
       sources."raw-body-2.4.1"
       sources."read-1.0.7"
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."readable-stream-1.1.14"
       sources."readdirp-3.5.0"
       sources."require-in-the-middle-5.1.0"
       sources."resolve-1.20.0"
       sources."run-series-1.1.9"
-      sources."safe-buffer-5.1.2"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      (sources."semver-7.3.4" // {
+      (sources."semver-7.3.5" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."yallist-4.0.0"
@@ -95760,27 +98706,21 @@ in
       sources."shimmer-1.2.1"
       sources."signal-exit-3.0.3"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.3.3"
-      (sources."socks-proxy-agent-4.0.2" // {
-        dependencies = [
-          sources."agent-base-4.2.1"
-        ];
-      })
+      sources."socks-2.6.0"
+      sources."socks-proxy-agent-5.0.0"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.19"
       sources."sprintf-js-1.1.2"
       sources."statuses-1.5.0"
       sources."string_decoder-0.10.31"
       sources."supports-color-7.2.0"
-      sources."systeminformation-4.34.9"
-      sources."thunkify-2.1.2"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."tv4-1.3.0"
       sources."type-check-0.3.2"
+      sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
-      sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       (sources."vizion-2.2.1" // {
         dependencies = [
@@ -95807,15 +98747,15 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "5.17.1";
+    version = "6.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.17.1.tgz";
-      sha512 = "jSQZCzWyf3tZSANyWnA/errzlnomqrZQO11yvURLxkLDyJvzi5D1equahjJXyT/ubd7S2iJb8dlkHvqR5ORb3w==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.0.0.tgz";
+      sha512 = "oVY4Juer+T0INNldcob07mWrDmsZJof3DDZuz1+fBhCXjs5yihf5eL+1OKBGVMIIwW+dRXnQHfwbBF9FPA/08A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "Fast, disk space efficient package manager";
-      homepage = "https://pnpm.js.org";
+      homepage = "https://pnpm.io";
       license = "MIT";
     };
     production = true;
@@ -95861,7 +98801,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -95888,7 +98828,7 @@ in
       sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."colorette-1.2.1"
+      sources."colorette-1.2.2"
       sources."cosmiconfig-7.0.0"
       sources."dependency-graph-0.9.0"
       sources."dir-glob-3.0.1"
@@ -95897,14 +98837,14 @@ in
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."fast-glob-3.2.5"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."fill-range-7.0.1"
       sources."fs-extra-9.1.0"
       sources."fsevents-2.3.2"
       sources."get-caller-file-2.0.5"
       sources."get-stdin-8.0.0"
-      sources."glob-parent-5.1.1"
-      sources."globby-11.0.2"
+      sources."glob-parent-5.1.2"
+      sources."globby-11.0.3"
       sources."graceful-fs-4.2.6"
       sources."has-flag-4.0.0"
       sources."ignore-5.1.8"
@@ -95941,7 +98881,7 @@ in
       sources."postcss-load-config-3.0.1"
       sources."postcss-reporter-7.0.2"
       sources."pretty-hrtime-1.0.3"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
       sources."readdirp-3.5.0"
       sources."require-directory-2.1.1"
@@ -95949,16 +98889,16 @@ in
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
       sources."slash-3.0.0"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."supports-color-7.2.0"
       sources."to-regex-range-5.0.1"
       sources."universalify-2.0.0"
       sources."wrap-ansi-7.0.0"
-      sources."y18n-5.0.5"
-      sources."yaml-1.10.0"
+      sources."y18n-5.0.6"
+      sources."yaml-1.10.2"
       sources."yargs-16.2.0"
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -95997,7 +98937,7 @@ in
       sha512 = "6N4chHbL38Km4kTrC7a9UJ4fpPsFV6BDwO3yZetdExN7agC+YGYLpVhLflFUlsZJ9VnUT9UToitwC/DqGnGSjA==";
     };
     dependencies = [
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
@@ -96008,7 +98948,7 @@ in
       sources."inherits-2.0.4"
       sources."isexe-2.0.0"
       sources."keypress-0.2.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."minimatch-3.0.4"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
@@ -96040,7 +98980,7 @@ in
       sources."acorn-walk-7.2.0"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       (sources."assert-1.5.0" // {
@@ -96050,9 +98990,9 @@ in
         ];
       })
       sources."async-1.5.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
-      sources."bn.js-5.1.3"
+      sources."bn.js-5.2.0"
       sources."brace-expansion-1.1.11"
       sources."brorand-1.1.0"
       sources."browser-pack-6.1.0"
@@ -96100,7 +99040,7 @@ in
       sources."core-util-is-1.0.2"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."create-hash-1.2.0"
@@ -96113,14 +99053,14 @@ in
       sources."detective-5.2.0"
       (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."domain-browser-1.2.0"
       sources."duplexer2-0.1.4"
       (sources."elliptic-6.5.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."es6-promise-3.3.1"
@@ -96161,12 +99101,12 @@ in
       sources."jsonify-0.0.0"
       sources."jsonparse-1.3.1"
       sources."labeled-stream-splicer-2.0.2"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.memoize-3.0.4"
       sources."md5.js-1.3.5"
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."mime-1.6.0"
@@ -96209,7 +99149,7 @@ in
       sources."process-nextick-args-2.0.1"
       (sources."public-encrypt-4.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."punycode-1.4.1"
@@ -96293,10 +99233,10 @@ in
   purescript-language-server = nodeEnv.buildNodePackage {
     name = "purescript-language-server";
     packageName = "purescript-language-server";
-    version = "0.14.4";
+    version = "0.15.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/purescript-language-server/-/purescript-language-server-0.14.4.tgz";
-      sha512 = "qsyk0PNStUQJnoxZKPAO0QTRBsZ2fu/PZwfMIAv6b1lHbdi5fsyC7BdCtZxzwAO2hF0OxCIANEeRkbUi+e55Fg==";
+      url = "https://registry.npmjs.org/purescript-language-server/-/purescript-language-server-0.15.0.tgz";
+      sha512 = "zzVqn7EnHdFYVrXhIVQ5LJqQ1ysZb7leo6kdNnxwkBgvmdrdi68OQBPG3QlmJ+LULnEyKhhWyAdb5lc+W2Ha1Q==";
     };
     dependencies = [
       sources."isexe-2.0.0"
@@ -96341,10 +99281,10 @@ in
   purty = nodeEnv.buildNodePackage {
     name = "purty";
     packageName = "purty";
-    version = "6.3.1";
+    version = "7.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/purty/-/purty-6.3.1.tgz";
-      sha512 = "KfOSejzz4PExqRwhRuLIJoggKY+cCVLGt+fB4csiyEv3ATX0IB93udl66UW4ZVj/zNJ4Ds+FK9nLfEXcNwBo5A==";
+      url = "https://registry.npmjs.org/purty/-/purty-7.0.0.tgz";
+      sha512 = "gHHghPEjRY39GUJ8KnOMRfPArJILGCXwEhX6BmEdNiLgZuCjLLBLyawGiKFjYMfy8H5Dsk5NbgwIGslrPrernA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -96359,10 +99299,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.109";
+    version = "1.1.128";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.109.tgz";
-      sha512 = "CAaPMKMmeucbbaDLADjhtOdr/KEKknALovBlGh+VbFqAVta1rxrytiIzF2V6xKWx0QpKdkRixkItSa8rTWalnw==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.128.tgz";
+      sha512 = "p+QG3W+PEQs6raeix/oIBU/eKRL487WftEFI3PVR7npF/2fzh6v4ucNjlF/jPAfP1x/ulInqeyeqvwLwvajTwA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -96377,10 +99317,10 @@ in
   quicktype = nodeEnv.buildNodePackage {
     name = "quicktype";
     packageName = "quicktype";
-    version = "15.0.258";
+    version = "15.0.260";
     src = fetchurl {
-      url = "https://registry.npmjs.org/quicktype/-/quicktype-15.0.258.tgz";
-      sha512 = "nTDC6LmwsFNJU1qY9+t09e4k1J1PosVDhZKRizkRinQzRVITFOzKSMuFBD3UJ1yaO9Irn7QKBlm9rae+9p+Cdg==";
+      url = "https://registry.npmjs.org/quicktype/-/quicktype-15.0.260.tgz";
+      sha512 = "OYP77enVz2UkcdDqVFc2AcFGYjk5/ENGYZHmSEY5Oy6Y2xVatlHUnrScddEkI+xJxSfYS6UXSH8oOTW7mEOiEw==";
     };
     dependencies = [
       sources."@mark.probst/typescript-json-schema-0.32.0"
@@ -96389,7 +99329,7 @@ in
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-back-2.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."brfs-1.6.1"
       sources."browser-or-node-1.3.0"
@@ -96448,7 +99388,11 @@ in
       sources."is-url-1.2.4"
       sources."isarray-2.0.5"
       sources."isexe-2.0.0"
-      sources."isomorphic-fetch-2.2.1"
+      (sources."isomorphic-fetch-2.2.1" // {
+        dependencies = [
+          sources."node-fetch-1.7.3"
+        ];
+      })
       sources."iterall-1.1.3"
       sources."js-base64-2.6.4"
       sources."json-stable-stringify-1.0.1"
@@ -96456,7 +99400,7 @@ in
       sources."lcid-2.0.0"
       sources."levn-0.3.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.padend-4.6.1"
       sources."magic-string-0.22.5"
       sources."map-age-cleaner-0.1.3"
@@ -96471,7 +99415,7 @@ in
       sources."minimist-1.2.5"
       sources."moment-2.29.1"
       sources."nice-try-1.0.5"
-      sources."node-fetch-1.7.3"
+      sources."node-fetch-2.6.1"
       sources."npm-run-path-2.0.2"
       sources."number-is-nan-1.0.1"
       sources."object-inspect-1.4.1"
@@ -96561,11 +99505,11 @@ in
           sources."pako-0.2.9"
         ];
       })
-      sources."urijs-1.19.5"
+      sources."urijs-1.19.6"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."vlq-0.2.3"
-      sources."whatwg-fetch-3.5.0"
+      sources."whatwg-fetch-3.6.2"
       sources."which-1.3.1"
       sources."which-module-2.0.0"
       sources."word-wrap-1.2.3"
@@ -96581,7 +99525,7 @@ in
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
       sources."y18n-4.0.1"
-      sources."yaml-1.10.0"
+      sources."yaml-1.10.2"
       sources."yargs-12.0.5"
       sources."yargs-parser-11.1.1"
     ];
@@ -96609,7 +99553,7 @@ in
       sources."array-filter-1.0.0"
       sources."async-0.2.10"
       sources."available-typed-arrays-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."call-bind-1.0.2"
       sources."chalk-1.1.3"
@@ -96618,7 +99562,7 @@ in
       sources."cycle-1.0.3"
       sources."deep-equal-2.0.5"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
@@ -96630,7 +99574,8 @@ in
       sources."glob-7.1.6"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-bigints-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."i-0.3.6"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -96646,7 +99591,7 @@ in
       sources."is-set-2.0.2"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.4"
+      sources."is-typed-array-1.1.5"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."isarray-2.0.5"
@@ -96657,7 +99602,7 @@ in
       sources."mute-stream-0.0.8"
       sources."ncp-0.4.2"
       sources."object-inspect-1.9.0"
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
@@ -96671,10 +99616,11 @@ in
       sources."semver-5.7.1"
       sources."side-channel-1.0.4"
       sources."stack-trace-0.0.10"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."strip-ansi-3.0.1"
       sources."supports-color-2.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."utile-0.2.1"
       sources."which-boxed-primitive-1.0.2"
       sources."which-collection-1.0.1"
@@ -96708,7 +99654,7 @@ in
       sources."acorn-5.7.4"
       sources."amdefine-1.0.1"
       sources."ast-types-0.9.6"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base62-0.1.1"
       sources."brace-expansion-1.1.11"
       sources."commander-2.20.3"
@@ -96753,17 +99699,21 @@ in
   readability-cli = nodeEnv.buildNodePackage {
     name = "readability-cli";
     packageName = "readability-cli";
-    version = "2.2.1-pre";
+    version = "2.2.3-pre";
     src = fetchurl {
-      url = "https://registry.npmjs.org/readability-cli/-/readability-cli-2.2.1-pre.tgz";
-      sha512 = "1f8y1ZeGRYskJyZZQzXVw5OlzQKs597JEr48wBzD6ZhmDhUbtqxswsFYROfCigWpkxywBsykesDy8ENKDOYQZg==";
+      url = "https://registry.npmjs.org/readability-cli/-/readability-cli-2.2.3-pre.tgz";
+      sha512 = "7dAkgA92K/xzFu+ZeS1oVDgjIMmBuWQBo0CNFucPxyWds7I8liDDdt2ph64eaZauzrSlfy3T8G895SDQb188cA==";
     };
     dependencies = [
       sources."@gardenapple/yargs-17.0.0-candidate.0"
       sources."@mozilla/readability-0.4.1"
       sources."abab-2.0.5"
-      sources."acorn-7.4.1"
-      sources."acorn-globals-6.0.0"
+      sources."acorn-8.1.0"
+      (sources."acorn-globals-6.0.0" // {
+        dependencies = [
+          sources."acorn-7.4.1"
+        ];
+      })
       sources."acorn-walk-7.2.0"
       sources."ajv-6.12.6"
       sources."ansi-regex-5.0.0"
@@ -96797,13 +99747,13 @@ in
           sources."webidl-conversions-5.0.0"
         ];
       })
-      sources."dompurify-2.2.6"
+      sources."dompurify-2.2.7"
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
-      sources."escodegen-1.14.3"
+      sources."escodegen-2.0.0"
       sources."esprima-4.0.1"
-      sources."estraverse-4.3.0"
+      sources."estraverse-5.2.0"
       sources."esutils-2.0.3"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
@@ -96819,26 +99769,24 @@ in
       sources."html-encoding-sniffer-2.0.1"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
-      sources."ip-regex-2.1.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-potential-custom-element-name-1.0.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."jsdom-16.4.0"
+      sources."jsdom-16.5.2"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
       sources."levn-0.3.0"
-      sources."lodash-4.17.20"
-      sources."lodash.sortby-4.7.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."lodash-4.17.21"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."nwsapi-2.2.0"
       sources."oauth-sign-0.9.0"
       sources."optionator-0.8.3"
-      sources."parse5-5.1.1"
+      sources."parse5-6.0.1"
       sources."performance-now-2.1.0"
       sources."prelude-ls-1.1.2"
       sources."psl-1.8.0"
@@ -96862,14 +99810,15 @@ in
       sources."source-map-0.6.1"
       sources."sshpk-1.16.1"
       sources."stealthy-require-1.1.1"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."symbol-tree-3.2.4"
-      sources."tough-cookie-3.0.1"
+      sources."tough-cookie-4.0.0"
       sources."tr46-2.0.2"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
+      sources."universalify-0.1.2"
       sources."uri-js-4.4.1"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -96878,14 +99827,14 @@ in
       sources."webidl-conversions-6.1.0"
       sources."whatwg-encoding-1.0.5"
       sources."whatwg-mimetype-2.3.0"
-      sources."whatwg-url-8.4.0"
+      sources."whatwg-url-8.5.0"
       sources."word-wrap-1.2.3"
       sources."wrap-ansi-7.0.0"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
-      sources."y18n-5.0.5"
-      sources."yargs-parser-20.2.4"
+      sources."y18n-5.0.6"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -96900,14 +99849,14 @@ in
   redoc-cli = nodeEnv.buildNodePackage {
     name = "redoc-cli";
     packageName = "redoc-cli";
-    version = "0.10.3";
+    version = "0.10.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.10.3.tgz";
-      sha512 = "j4dwDetXrQT5sz1wl6/ZckQ0Ynl9Z+Q/De+e4Qz29dqAq0itimml55DcGRDMyIfEcyYkFgdzpusvWIAi1t/OUw==";
+      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.10.4.tgz";
+      sha512 = "2KcHOC0hps8Hi1OJH+BQOQ9ARXv2JAewwsknzakPFnVgWQGtQTvLqbpqdg75KPIXPpleRHnYGFFjOcJQJy43/Q==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      (sources."@babel/generator-7.12.15" // {
+      (sources."@babel/generator-7.13.9" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
@@ -96915,23 +99864,22 @@ in
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-module-imports-7.12.13"
+      sources."@babel/helper-module-imports-7.13.12"
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.12.13"
-      sources."@babel/parser-7.12.16"
-      sources."@babel/runtime-7.12.13"
+      sources."@babel/highlight-7.13.10"
+      sources."@babel/parser-7.13.13"
+      sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.12.13"
-      sources."@babel/types-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@emotion/is-prop-valid-0.8.8"
       sources."@emotion/memoize-0.7.4"
       sources."@emotion/stylis-0.8.5"
       sources."@emotion/unitless-0.7.5"
       sources."@exodus/schemasafe-1.0.0-rc.3"
       sources."@redocly/react-dropdown-aria-2.0.11"
-      sources."@scarf/scarf-1.1.0"
-      sources."@types/node-13.13.41"
+      sources."@types/node-13.13.48"
       sources."ajv-5.5.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
@@ -96939,7 +99887,7 @@ in
       sources."argparse-1.0.10"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       (sources."assert-1.5.0" // {
@@ -96952,7 +99900,7 @@ in
       sources."base64-js-1.5.1"
       sources."better-ajv-errors-0.6.7"
       sources."binary-extensions-2.2.0"
-      sources."bn.js-5.1.3"
+      sources."bn.js-5.2.0"
       sources."braces-3.0.2"
       sources."brorand-1.1.0"
       sources."browserify-aes-1.2.0"
@@ -96979,8 +99927,8 @@ in
       sources."chalk-2.4.2"
       sources."chokidar-3.5.1"
       sources."cipher-base-1.0.4"
-      sources."classnames-2.2.6"
-      sources."clipboard-2.0.6"
+      sources."classnames-2.3.1"
+      sources."clipboard-2.0.8"
       sources."cliui-7.0.4"
       sources."clsx-1.1.1"
       sources."co-4.6.0"
@@ -96989,11 +99937,11 @@ in
       sources."color-name-1.1.3"
       sources."console-browserify-1.2.0"
       sources."constants-browserify-1.0.0"
-      sources."core-js-3.8.3"
+      sources."core-js-3.10.0"
       sources."core-util-is-1.0.2"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."create-hash-1.2.0"
@@ -97008,14 +99956,14 @@ in
       sources."des.js-1.0.1"
       (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."domain-browser-1.2.0"
-      sources."dompurify-2.2.6"
+      sources."dompurify-2.2.7"
       (sources."elliptic-6.5.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
           sources."inherits-2.0.4"
         ];
       })
@@ -97025,7 +99973,7 @@ in
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."eventemitter3-4.0.7"
-      sources."events-3.2.0"
+      sources."events-3.3.0"
       sources."evp_bytestokey-1.0.3"
       sources."fast-deep-equal-1.1.0"
       sources."fast-json-stable-stringify-2.1.0"
@@ -97036,11 +99984,11 @@ in
       sources."format-util-1.0.5"
       sources."fsevents-2.3.2"
       sources."get-caller-file-2.0.5"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."globals-11.12.0"
       sources."good-listener-1.2.2"
       sources."grapheme-splitter-1.0.4"
-      sources."handlebars-4.7.6"
+      sources."handlebars-4.7.7"
       sources."has-flag-3.0.0"
       (sources."hash-base-3.1.0" // {
         dependencies = [
@@ -97075,7 +100023,7 @@ in
       sources."jsonpointer-4.1.0"
       sources."leven-3.1.0"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."loose-envify-1.4.0"
       sources."lunr-2.3.8"
       sources."mark.js-8.11.1"
@@ -97084,14 +100032,14 @@ in
       sources."memoize-one-5.1.1"
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimist-1.2.5"
       sources."mkdirp-1.0.4"
-      sources."mobx-6.1.6"
+      sources."mobx-6.1.8"
       sources."mobx-react-7.1.0"
       sources."mobx-react-lite-3.2.0"
       sources."ms-2.1.2"
@@ -97123,7 +100071,7 @@ in
       sources."pbkdf2-3.1.1"
       sources."perfect-scrollbar-1.5.0"
       sources."picomatch-2.2.2"
-      sources."polished-3.7.0"
+      sources."polished-3.7.1"
       sources."postcss-value-parser-4.1.0"
       sources."prismjs-1.23.0"
       sources."process-0.11.10"
@@ -97131,7 +100079,7 @@ in
       sources."prop-types-15.7.2"
       (sources."public-encrypt-4.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."punycode-1.4.1"
@@ -97142,7 +100090,7 @@ in
       sources."react-16.14.0"
       sources."react-dom-16.14.0"
       sources."react-is-16.13.1"
-      sources."react-tabs-3.2.0"
+      sources."react-tabs-3.2.1"
       (sources."readable-stream-2.3.7" // {
         dependencies = [
           sources."inherits-2.0.4"
@@ -97152,9 +100100,9 @@ in
         ];
       })
       sources."readdirp-3.5.0"
-      sources."redoc-2.0.0-rc.49"
+      sources."redoc-2.0.0-rc.50"
       sources."reftools-1.1.8"
-      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-runtime-0.13.8"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."ripemd160-2.0.2"
@@ -97172,16 +100120,16 @@ in
       sources."should-type-1.4.0"
       sources."should-type-adaptors-1.1.0"
       sources."should-util-1.0.1"
-      sources."slugify-1.4.6"
+      sources."slugify-1.5.0"
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
       sources."stickyfill-1.1.1"
       sources."stream-browserify-2.0.2"
       sources."stream-http-2.8.3"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.0"
-      sources."styled-components-5.2.1"
+      sources."styled-components-5.2.3"
       sources."supports-color-5.5.0"
       sources."swagger2openapi-6.2.3"
       sources."timers-browserify-2.0.12"
@@ -97189,9 +100137,9 @@ in
       sources."to-arraybuffer-1.0.1"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."tty-browserify-0.0.0"
-      sources."uglify-js-3.12.7"
+      sources."uglify-js-3.13.3"
       (sources."url-0.11.0" // {
         dependencies = [
           sources."punycode-1.3.2"
@@ -97215,8 +100163,8 @@ in
         ];
       })
       sources."xtend-4.0.2"
-      sources."y18n-5.0.5"
-      sources."yaml-1.10.0"
+      sources."y18n-5.0.6"
+      sources."yaml-1.10.2"
       (sources."yargs-15.4.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -97228,7 +100176,7 @@ in
           sources."yargs-parser-18.1.3"
         ];
       })
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -97258,13 +100206,44 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  rimraf = nodeEnv.buildNodePackage {
+    name = "rimraf";
+    packageName = "rimraf";
+    version = "3.0.2";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
+      sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
+    };
+    dependencies = [
+      sources."balanced-match-1.0.2"
+      sources."brace-expansion-1.1.11"
+      sources."concat-map-0.0.1"
+      sources."fs.realpath-1.0.0"
+      sources."glob-7.1.6"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."minimatch-3.0.4"
+      sources."once-1.4.0"
+      sources."path-is-absolute-1.0.1"
+      sources."wrappy-1.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A deep deletion module for node (like `rm -rf`)";
+      homepage = "https://github.com/isaacs/rimraf#readme";
+      license = "ISC";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.38.5";
+    version = "2.44.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz";
-      sha512 = "VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.44.0.tgz";
+      sha512 = "rGSF4pLwvuaH/x4nAS+zP6UNn5YUDWf/TeEU5IoXSZKBbKRNTCI3qMnYXKZgrC0D2KzS2baiOZt1OlqhMu5rnQ==";
     };
     dependencies = [
       sources."fsevents-2.3.2"
@@ -97285,15 +100264,16 @@ in
     version = "0.4.0-dev";
     src = ../../misc/vscode-extensions/rust-analyzer/build-deps;
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      (sources."@eslint/eslintrc-0.3.0" // {
+      (sources."@eslint/eslintrc-0.4.0" // {
         dependencies = [
+          sources."globals-12.4.0"
           sources."ignore-4.0.6"
         ];
       })
@@ -97301,7 +100281,7 @@ in
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
       sources."@rollup/plugin-commonjs-17.1.0"
-      sources."@rollup/plugin-node-resolve-11.1.1"
+      sources."@rollup/plugin-node-resolve-11.2.1"
       (sources."@rollup/pluginutils-3.1.0" // {
         dependencies = [
           sources."estree-walker-1.0.1"
@@ -97311,19 +100291,19 @@ in
       sources."@types/estree-0.0.39"
       sources."@types/glob-7.1.3"
       sources."@types/json-schema-7.0.7"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/mocha-8.2.0"
+      sources."@types/minimatch-3.0.4"
+      sources."@types/mocha-8.2.2"
       sources."@types/node-12.12.70"
-      sources."@types/node-fetch-2.5.8"
+      sources."@types/node-fetch-2.5.9"
       sources."@types/resolve-1.17.1"
-      sources."@types/vscode-1.53.0"
-      sources."@typescript-eslint/eslint-plugin-4.15.0"
-      sources."@typescript-eslint/experimental-utils-4.15.0"
-      sources."@typescript-eslint/parser-4.15.0"
-      sources."@typescript-eslint/scope-manager-4.15.0"
-      sources."@typescript-eslint/types-4.15.0"
-      sources."@typescript-eslint/typescript-estree-4.15.0"
-      sources."@typescript-eslint/visitor-keys-4.15.0"
+      sources."@types/vscode-1.55.0"
+      sources."@typescript-eslint/eslint-plugin-4.21.0"
+      sources."@typescript-eslint/experimental-utils-4.21.0"
+      sources."@typescript-eslint/parser-4.21.0"
+      sources."@typescript-eslint/scope-manager-4.21.0"
+      sources."@typescript-eslint/types-4.21.0"
+      sources."@typescript-eslint/typescript-estree-4.21.0"
+      sources."@typescript-eslint/visitor-keys-4.21.0"
       sources."@ungap/promise-all-settled-1.1.2"
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
@@ -97338,7 +100318,7 @@ in
       sources."astral-regex-2.0.0"
       sources."asynckit-0.4.0"
       sources."azure-devops-node-api-7.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."big-integer-1.6.48"
       sources."binary-0.3.0"
       sources."binary-extensions-2.2.0"
@@ -97351,6 +100331,7 @@ in
       sources."buffer-indexof-polyfill-1.0.2"
       sources."buffers-0.1.1"
       sources."builtin-modules-3.2.0"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       sources."camelcase-6.2.0"
       sources."chainsaw-0.1.0"
@@ -97388,9 +100369,9 @@ in
       sources."dir-glob-3.0.1"
       sources."doctrine-3.0.0"
       sources."dom-serializer-1.2.0"
-      sources."domelementtype-2.1.0"
-      sources."domhandler-4.0.0"
-      sources."domutils-2.4.4"
+      sources."domelementtype-2.2.0"
+      sources."domhandler-4.1.0"
+      sources."domutils-2.5.1"
       sources."duplexer2-0.1.4"
       (sources."editorconfig-0.15.3" // {
         dependencies = [
@@ -97404,7 +100385,7 @@ in
       sources."entities-2.1.0"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.19.0" // {
+      (sources."eslint-7.23.0" // {
         dependencies = [
           sources."ignore-4.0.6"
         ];
@@ -97439,15 +100420,15 @@ in
       sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."fd-slicer-1.1.0"
-      sources."file-entry-cache-6.0.0"
+      sources."file-entry-cache-6.0.1"
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
       sources."flat-5.0.2"
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
-      sources."form-data-3.0.0"
+      sources."form-data-3.0.1"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       (sources."fstream-1.0.12" // {
@@ -97458,16 +100439,22 @@ in
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      sources."globals-12.4.0"
-      sources."globby-11.0.2"
+      sources."glob-parent-5.1.2"
+      (sources."globals-13.7.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
+      sources."globby-11.0.3"
       sources."graceful-fs-4.2.6"
       sources."growl-1.10.5"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."he-1.2.0"
-      sources."htmlparser2-6.0.0"
+      sources."htmlparser2-6.0.1"
       sources."http-proxy-agent-4.0.1"
       sources."https-proxy-agent-5.0.0"
       sources."ignore-5.1.8"
@@ -97476,14 +100463,17 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-binary-path-2.1.0"
+      sources."is-boolean-object-1.1.0"
       sources."is-core-module-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-module-1.0.0"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-reference-1.2.1"
+      sources."is-string-1.0.5"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
@@ -97495,7 +100485,10 @@ in
       sources."linkify-it-2.2.0"
       sources."listenercount-1.0.1"
       sources."locate-path-6.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
       sources."log-symbols-4.0.0"
       sources."lru-cache-6.0.0"
       sources."magic-string-0.25.7"
@@ -97508,12 +100501,12 @@ in
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      (sources."mocha-8.3.0" // {
+      (sources."mocha-8.3.2" // {
         dependencies = [
           sources."argparse-2.0.1"
           (sources."debug-4.3.1" // {
@@ -97563,7 +100556,7 @@ in
       sources."progress-2.0.3"
       sources."pseudomap-1.0.2"
       sources."punycode-2.1.1"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."randombytes-2.1.0"
       sources."read-1.0.7"
       (sources."readable-stream-2.3.7" // {
@@ -97579,10 +100572,10 @@ in
       sources."resolve-from-4.0.0"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."rollup-2.38.5"
+      sources."rollup-2.44.0"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.2.1"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."serialize-javascript-5.0.1"
       sources."setimmediate-1.0.5"
       sources."shebang-command-2.0.0"
@@ -97598,7 +100591,7 @@ in
       })
       sources."sourcemap-codec-1.4.8"
       sources."sprintf-js-1.0.3"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -97607,9 +100600,9 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.1.0"
+          sources."ajv-8.0.5"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -97617,8 +100610,8 @@ in
       sources."tmp-0.0.29"
       sources."to-regex-range-5.0.1"
       sources."traverse-0.3.9"
-      sources."tslib-2.1.0"
-      (sources."tsutils-3.20.0" // {
+      sources."tslib-2.2.0"
+      (sources."tsutils-3.21.0" // {
         dependencies = [
           sources."tslib-1.14.1"
         ];
@@ -97627,7 +100620,7 @@ in
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
       sources."typed-rest-client-1.2.0"
-      sources."typescript-4.1.5"
+      sources."typescript-4.2.3"
       sources."typescript-formatter-7.2.2"
       sources."uc.micro-1.0.6"
       sources."underscore-1.8.3"
@@ -97635,19 +100628,19 @@ in
       sources."uri-js-4.4.1"
       sources."url-join-1.1.0"
       sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-2.2.0"
-      (sources."vsce-1.85.0" // {
+      sources."v8-compile-cache-2.3.0"
+      (sources."vsce-1.87.1" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."commander-6.2.1"
           sources."semver-5.7.1"
         ];
       })
-      sources."vscode-jsonrpc-6.0.0"
-      sources."vscode-languageclient-7.0.0"
-      sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-types-3.16.0"
-      sources."vscode-test-1.5.0"
+      sources."vscode-jsonrpc-6.1.0-next.2"
+      sources."vscode-languageclient-7.1.0-next.4"
+      sources."vscode-languageserver-protocol-3.17.0-next.5"
+      sources."vscode-languageserver-types-3.17.0-next.1"
+      sources."vscode-test-1.5.2"
       sources."which-2.0.2"
       (sources."wide-align-1.1.3" // {
         dependencies = [
@@ -97667,7 +100660,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.4"
@@ -97763,8 +100756,8 @@ in
       sources."keypress-0.1.0"
       sources."methods-0.1.0"
       sources."mime-1.2.11"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mkdirp-0.3.5"
       sources."ms-2.1.2"
       sources."multiparty-2.2.0"
@@ -97774,7 +100767,7 @@ in
       sources."node-wsfederation-0.1.1"
       sources."oauth-https://github.com/ciaranj/node-oauth/tarball/master"
       sources."oauth-sign-0.9.0"
-      (sources."openid-2.0.7" // {
+      (sources."openid-2.0.8" // {
         dependencies = [
           sources."qs-6.5.2"
           sources."request-2.88.2"
@@ -97818,10 +100811,10 @@ in
   sass = nodeEnv.buildNodePackage {
     name = "sass";
     packageName = "sass";
-    version = "1.32.7";
+    version = "1.32.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sass/-/sass-1.32.7.tgz";
-      sha512 = "C8Z4bjqGWnsYa11o8hpKAuoyFdRhrSHcYjCr+XAWVPSIQqC8mp2f5Dx4em0dKYehPzg5XSekmCjqJnEZbIls9A==";
+      url = "https://registry.npmjs.org/sass/-/sass-1.32.8.tgz";
+      sha512 = "Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ==";
     };
     dependencies = [
       sources."anymatch-3.1.1"
@@ -97830,7 +100823,7 @@ in
       sources."chokidar-3.5.1"
       sources."fill-range-7.0.1"
       sources."fsevents-2.3.2"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.1"
@@ -97853,10 +100846,10 @@ in
   semver = nodeEnv.buildNodePackage {
     name = "semver";
     packageName = "semver";
-    version = "7.3.4";
+    version = "7.3.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz";
-      sha512 = "tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==";
+      url = "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz";
+      sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
     };
     dependencies = [
       sources."lru-cache-6.0.0"
@@ -97889,7 +100882,7 @@ in
       sources."ansi-styles-3.2.1"
       sources."arch-2.2.0"
       sources."arg-2.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."boxen-1.3.0"
       sources."brace-expansion-1.1.11"
       sources."bytes-3.0.0"
@@ -97927,8 +100920,8 @@ in
       sources."isexe-2.0.0"
       sources."json-schema-traverse-0.4.1"
       sources."lru-cache-4.1.5"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."ms-2.0.0"
@@ -97981,10 +100974,10 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "2.23.0";
+    version = "2.33.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-2.23.0.tgz";
-      sha512 = "D5RN0ywVPxL4EFfIzREx9K7vgkHlXBQQn9zTfDzlfz2WHkmKX0kW3LG89J51UYNdeKlBN1YXPIphybzZH3ujOw==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-2.33.1.tgz";
+      sha512 = "NLRnK6376mAjGYnsfjr3UCIX8pH6US1hHow3ESRs+/ycIzRdG/LXlDAgq+4vLnPQ8t8vc9ZyU8FTFfrSR4sHqg==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
@@ -98016,12 +101009,24 @@ in
         ];
       })
       sources."@serverless/component-metrics-1.0.8"
-      (sources."@serverless/components-3.6.2" // {
+      (sources."@serverless/components-3.8.1" // {
         dependencies = [
+          (sources."@serverless/utils-3.1.0" // {
+            dependencies = [
+              sources."js-yaml-4.0.0"
+            ];
+          })
           sources."ansi-regex-5.0.0"
-          sources."js-yaml-3.14.1"
+          sources."argparse-2.0.1"
+          (sources."js-yaml-3.14.1" // {
+            dependencies = [
+              sources."argparse-1.0.10"
+            ];
+          })
+          sources."jwt-decode-3.1.2"
           sources."ramda-0.27.1"
           sources."strip-ansi-6.0.0"
+          sources."write-file-atomic-3.0.3"
         ];
       })
       (sources."@serverless/core-1.1.2" // {
@@ -98031,37 +101036,21 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."@serverless/enterprise-plugin-4.4.3" // {
-        dependencies = [
-          sources."js-yaml-3.14.1"
-        ];
-      })
+      sources."@serverless/enterprise-plugin-4.5.3"
       sources."@serverless/event-mocks-1.1.1"
-      (sources."@serverless/platform-client-3.11.0" // {
+      (sources."@serverless/platform-client-4.2.2" // {
         dependencies = [
+          sources."adm-zip-0.4.16"
           sources."js-yaml-3.14.1"
         ];
       })
-      (sources."@serverless/platform-client-china-2.1.4" // {
+      (sources."@serverless/platform-client-china-2.1.9" // {
         dependencies = [
-          sources."adm-zip-0.5.2"
           sources."js-yaml-3.14.1"
         ];
       })
-      (sources."@serverless/platform-sdk-2.3.2" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-          sources."debug-4.3.2"
-          sources."https-proxy-agent-4.0.0"
-          sources."is-docker-1.1.0"
-          sources."ms-2.1.2"
-          sources."ramda-0.25.0"
-          sources."uuid-3.4.0"
-          sources."ws-6.2.1"
-        ];
-      })
       sources."@serverless/template-1.1.4"
-      (sources."@serverless/utils-3.1.0" // {
+      (sources."@serverless/utils-4.0.1" // {
         dependencies = [
           sources."jwt-decode-3.1.2"
           sources."write-file-atomic-3.0.3"
@@ -98077,14 +101066,19 @@ in
       sources."@types/keyv-3.1.1"
       sources."@types/lodash-4.14.168"
       sources."@types/long-4.0.1"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/request-2.48.5"
       sources."@types/request-promise-native-1.0.17"
       sources."@types/responselike-1.0.0"
       sources."@types/tough-cookie-4.0.0"
-      sources."adm-zip-0.4.16"
+      sources."adm-zip-0.5.5"
       sources."after-0.8.2"
-      sources."agent-base-5.1.1"
+      (sources."agent-base-6.0.2" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
       (sources."ansi-align-3.0.0" // {
@@ -98094,7 +101088,7 @@ in
           sources."string-width-3.1.0"
         ];
       })
-      sources."ansi-escapes-4.3.1"
+      sources."ansi-escapes-4.3.2"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
@@ -98104,7 +101098,7 @@ in
           sources."file-type-4.4.0"
         ];
       })
-      (sources."archiver-5.2.0" // {
+      (sources."archiver-5.3.0" // {
         dependencies = [
           sources."async-3.2.0"
           sources."bl-4.1.0"
@@ -98131,13 +101125,13 @@ in
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-2.6.3"
-      sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      (sources."aws-sdk-2.842.0" // {
+      (sources."aws-sdk-2.880.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
+          sources."querystring-0.2.0"
           sources."uuid-3.3.2"
         ];
       })
@@ -98145,7 +101139,7 @@ in
       sources."aws4-1.11.0"
       sources."axios-0.21.1"
       sources."backo2-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -98168,11 +101162,11 @@ in
       })
       sources."blob-0.0.5"
       sources."bluebird-3.7.2"
-      (sources."boxen-5.0.0" // {
+      (sources."boxen-5.0.1" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
           sources."type-fest-0.20.2"
         ];
@@ -98184,7 +101178,6 @@ in
       sources."buffer-alloc-unsafe-1.1.0"
       sources."buffer-crc32-0.2.13"
       sources."buffer-fill-1.0.0"
-      sources."buffer-from-1.1.1"
       sources."buffermaker-1.2.1"
       sources."buffers-0.1.1"
       sources."builtin-modules-3.2.0"
@@ -98216,6 +101209,7 @@ in
       sources."child-process-ext-2.1.1"
       sources."chokidar-3.5.1"
       sources."chownr-1.1.4"
+      sources."ci-info-3.1.1"
       sources."cli-boxes-2.2.1"
       (sources."cli-color-2.0.0" // {
         dependencies = [
@@ -98229,7 +101223,7 @@ in
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.4"
+      sources."color-string-1.5.5"
       sources."colornames-1.1.1"
       sources."colors-1.3.3"
       sources."colorspace-1.1.2"
@@ -98238,7 +101232,7 @@ in
       sources."component-bind-1.0.0"
       sources."component-emitter-1.3.0"
       sources."component-inherit-0.0.3"
-      sources."compress-commons-4.0.2"
+      sources."compress-commons-4.1.0"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       (sources."content-disposition-0.5.3" // {
@@ -98324,7 +101318,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."enabled-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-client-3.5.0" // {
+      (sources."engine.io-client-3.5.1" // {
         dependencies = [
           sources."debug-3.1.0"
         ];
@@ -98360,9 +101354,9 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-safe-stringify-2.0.7"
       sources."fastest-levenshtein-1.0.12"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."fd-slicer-1.1.0"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."figures-3.2.0"
       sources."file-type-5.2.0"
       sources."file-uri-to-path-1.0.0"
@@ -98372,7 +101366,7 @@ in
       sources."fill-range-7.0.1"
       sources."find-requires-1.0.0"
       sources."flat-5.0.2"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."forever-agent-0.6.1"
       sources."form-data-2.5.1"
       sources."formidable-1.2.2"
@@ -98405,21 +101399,21 @@ in
       sources."getpass-0.1.7"
       sources."github-from-package-0.0.0"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      sources."globby-11.0.2"
-      (sources."got-11.8.1" // {
+      sources."glob-parent-5.1.2"
+      sources."globby-11.0.3"
+      (sources."got-11.8.2" // {
         dependencies = [
           sources."@sindresorhus/is-4.0.0"
           sources."@szmarczak/http-timer-4.0.5"
           sources."cacheable-request-7.0.1"
           sources."decompress-response-6.0.0"
-          sources."defer-to-connect-2.0.0"
+          sources."defer-to-connect-2.0.1"
           sources."get-stream-5.2.0"
           sources."json-buffer-3.0.1"
           sources."keyv-4.0.3"
           sources."lowercase-keys-2.0.0"
           sources."mimic-response-3.1.0"
-          sources."p-cancelable-2.0.0"
+          sources."p-cancelable-2.1.0"
           sources."responselike-2.0.0"
         ];
       })
@@ -98439,10 +101433,9 @@ in
       sources."has-unicode-2.0.1"
       sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
-      sources."http2-wrapper-1.0.0-beta.5.2"
+      sources."http2-wrapper-1.0.3"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."agent-base-6.0.2"
           sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
@@ -98460,7 +101453,7 @@ in
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -98468,7 +101461,7 @@ in
       sources."into-stream-3.1.0"
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
@@ -98529,7 +101522,7 @@ in
         ];
       })
       sources."lie-3.3.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
@@ -98563,8 +101556,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -98583,7 +101576,7 @@ in
       sources."nested-error-stacks-2.1.0"
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
-      (sources."node-abi-2.19.3" // {
+      (sources."node-abi-2.21.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
@@ -98601,12 +101594,7 @@ in
       sources."once-1.4.0"
       sources."one-time-0.0.4"
       sources."onetime-5.1.2"
-      sources."open-7.4.0"
-      (sources."opn-5.5.0" // {
-        dependencies = [
-          sources."is-wsl-1.1.0"
-        ];
-      })
+      sources."open-7.4.2"
       sources."optional-0.1.4"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
@@ -98647,7 +101635,7 @@ in
       sources."promise-queue-2.2.5"
       (sources."protobufjs-6.10.2" // {
         dependencies = [
-          sources."@types/node-13.13.41"
+          sources."@types/node-13.13.48"
           sources."long-4.0.0"
         ];
       })
@@ -98657,15 +101645,14 @@ in
       sources."qrcode-terminal-0.12.0"
       sources."qs-6.5.2"
       sources."query-string-5.1.1"
-      sources."querystring-0.2.0"
-      sources."queue-microtask-1.2.2"
+      sources."querystring-0.2.1"
+      sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
       sources."ramda-0.26.1"
       sources."rc-1.2.8"
       sources."readable-stream-3.6.0"
       sources."readdir-glob-1.1.1"
       sources."readdirp-3.5.0"
-      sources."regenerator-runtime-0.13.7"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       sources."replaceall-0.1.6"
@@ -98685,12 +101672,12 @@ in
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
       sources."run-parallel-limit-1.1.0"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.1"
       sources."seek-bzip-1.0.6"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
       sources."set-immediate-shim-1.0.1"
       sources."shebang-command-1.2.0"
@@ -98699,7 +101686,7 @@ in
       sources."signal-exit-3.0.3"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
-      (sources."simple-git-2.34.2" // {
+      (sources."simple-git-2.37.0" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
@@ -98721,8 +101708,6 @@ in
       })
       sources."sort-keys-1.1.2"
       sources."sort-keys-length-1.0.1"
-      sources."source-map-0.6.1"
-      sources."source-map-support-0.5.19"
       sources."split2-3.2.2"
       sources."sprintf-js-1.0.3"
       sources."sprintf-kit-2.0.0"
@@ -98810,8 +101795,8 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-2.2.0"
-      sources."type-fest-0.11.0"
+      sources."type-2.5.0"
+      sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
       sources."unbzip2-stream-1.4.3"
       sources."universalify-0.1.2"
@@ -98820,6 +101805,7 @@ in
       (sources."url-0.10.3" // {
         dependencies = [
           sources."punycode-1.3.2"
+          sources."querystring-0.2.0"
         ];
       })
       sources."url-parse-lax-3.0.0"
@@ -98835,7 +101821,7 @@ in
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -98854,13 +101840,13 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
       sources."xmlhttprequest-ssl-1.5.5"
@@ -98868,11 +101854,10 @@ in
       sources."yallist-4.0.0"
       sources."yaml-ast-parser-0.0.43"
       sources."yamljs-0.3.0"
-      sources."yargs-parser-20.2.4"
       sources."yauzl-2.10.0"
       sources."yeast-0.1.2"
       sources."yocto-queue-0.1.0"
-      sources."zip-stream-4.0.4"
+      sources."zip-stream-4.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -99009,8 +101994,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."moment-2.7.0"
@@ -99125,8 +102110,6 @@ in
       sha512 = "8XJnwCFR4DatLz1s0nGFe6IJPJ+5pjRFhoBuBKq8SLgFI40eD7ak6jOXpzeG0tmIpyOc1zCs9bjKAxMFm1451A==";
     };
     dependencies = [
-      sources."ansi-regex-5.0.0"
-      sources."ansi-styles-3.2.1"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
@@ -99145,7 +102128,6 @@ in
         ];
       })
       sources."cache-base-1.0.1"
-      sources."chalk-2.4.2"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -99163,10 +102145,9 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."cli-table-0.3.4"
+      sources."cli-table-0.3.6"
       sources."collection-visit-1.0.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      sources."colors-1.0.3"
       sources."commander-2.9.0"
       sources."component-emitter-1.3.0"
       sources."copy-descriptor-0.1.1"
@@ -99174,8 +102155,6 @@ in
       sources."debug-2.6.9"
       sources."decode-uri-component-0.2.0"
       sources."define-property-2.0.2"
-      sources."emoji-regex-8.0.0"
-      sources."escape-string-regexp-1.0.5"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -99215,7 +102194,6 @@ in
       sources."get-value-2.0.6"
       sources."graceful-fs-4.2.6"
       sources."graceful-readlink-1.0.1"
-      sources."has-flag-3.0.0"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -99228,7 +102206,6 @@ in
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -99239,7 +102216,7 @@ in
       sources."isarray-1.0.0"
       sources."isobject-3.0.1"
       sources."kind-of-6.0.3"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."micromatch-3.1.10"
@@ -99331,10 +102308,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."string-width-4.2.0"
       sources."string_decoder-1.1.1"
-      sources."strip-ansi-6.0.0"
-      sources."supports-color-5.5.0"
       (sources."to-object-path-0.3.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -99380,7 +102354,7 @@ in
       sources."asn1-0.1.11"
       sources."assert-plus-0.1.5"
       sources."backoff-2.5.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."bunyan-1.5.1"
@@ -99522,34 +102496,66 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.452.0";
+    version = "1.526.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.452.0.tgz";
-      sha512 = "afwZGN8ze1J1SMGtI5TbjYtESREWFD78oqum1azV6fuCOwS5j8aYcEFep358dqUcKnKEG5TIJ0J09+fW/AvSjw==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.526.0.tgz";
+      sha512 = "HVJFcE/eA0J4uYubQ2t1RYQdXOKfQg4BbeTt8nKQisT92vWASX+BWqhPuiYQNpcUgca7x3V33LYf/bDJtXAbJQ==";
     };
     dependencies = [
+      sources."@arcanis/slice-ansi-1.0.2"
+      sources."@deepcode/dcignore-1.0.2"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
+      sources."@octetstream/promisify-2.0.2"
       sources."@open-policy-agent/opa-wasm-1.2.0"
       sources."@sindresorhus/is-2.1.1"
       sources."@snyk/cli-interface-2.11.0"
-      (sources."@snyk/cocoapods-lockfile-parser-3.5.2" // {
+      sources."@snyk/cocoapods-lockfile-parser-3.6.2"
+      (sources."@snyk/code-client-3.4.0" // {
         dependencies = [
-          sources."@snyk/dep-graph-1.19.4"
+          sources."uuid-8.3.2"
         ];
       })
       sources."@snyk/composer-lockfile-parser-1.4.1"
-      sources."@snyk/dep-graph-1.21.0"
+      (sources."@snyk/dep-graph-1.28.0" // {
+        dependencies = [
+          sources."semver-7.3.5"
+        ];
+      })
       sources."@snyk/docker-registry-v2-client-1.13.9"
+      sources."@snyk/fast-glob-3.2.6-patch"
+      (sources."@snyk/fix-1.518.0" // {
+        dependencies = [
+          sources."chalk-4.1.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."@snyk/gemfile-1.2.0"
-      (sources."@snyk/java-call-graph-builder-1.19.0" // {
+      sources."@snyk/glob-parent-5.1.2-patch.1"
+      sources."@snyk/graphlib-2.1.9-patch.3"
+      (sources."@snyk/inquirer-7.3.3-patch" // {
+        dependencies = [
+          sources."ansi-escapes-4.3.2"
+          sources."chalk-4.1.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      (sources."@snyk/java-call-graph-builder-1.20.0" // {
         dependencies = [
           sources."rimraf-3.0.2"
           sources."tmp-0.2.1"
         ];
       })
+      (sources."@snyk/mix-parser-1.1.1" // {
+        dependencies = [
+          sources."tslib-2.2.0"
+        ];
+      })
       sources."@snyk/rpm-parser-2.2.1"
-      (sources."@snyk/snyk-cocoapods-plugin-2.5.1" // {
+      (sources."@snyk/snyk-cocoapods-plugin-2.5.2" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       (sources."@snyk/snyk-docker-pull-3.2.3" // {
@@ -99557,19 +102563,67 @@ in
           sources."tmp-0.1.0"
         ];
       })
+      (sources."@snyk/snyk-hex-plugin-1.0.0" // {
+        dependencies = [
+          sources."tslib-2.2.0"
+        ];
+      })
       sources."@szmarczak/http-timer-4.0.5"
+      sources."@types/braces-3.0.0"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/debug-4.1.5"
+      sources."@types/emscripten-1.39.4"
+      sources."@types/flat-cache-2.0.0"
       sources."@types/graphlib-2.1.7"
-      sources."@types/hosted-git-info-2.7.0"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/js-yaml-3.12.6"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-14.14.26"
+      sources."@types/lodash-4.14.168"
+      sources."@types/lodash.chunk-4.2.6"
+      sources."@types/lodash.omit-4.5.6"
+      sources."@types/lodash.union-4.6.6"
+      sources."@types/micromatch-4.0.1"
+      sources."@types/node-14.14.37"
       sources."@types/responselike-1.0.0"
+      sources."@types/sarif-2.1.3"
+      sources."@types/semver-7.3.4"
+      sources."@types/treeify-1.0.0"
+      sources."@types/uuid-8.3.0"
+      (sources."@yarnpkg/core-2.4.0" // {
+        dependencies = [
+          sources."@sindresorhus/is-4.0.0"
+          sources."chalk-3.0.0"
+          sources."cross-spawn-7.0.3"
+          sources."got-11.8.2"
+          sources."mkdirp-0.5.5"
+          sources."path-key-3.1.1"
+          sources."semver-7.3.5"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."@yarnpkg/fslib-2.4.0"
+      sources."@yarnpkg/json-proxy-2.1.0"
+      sources."@yarnpkg/libzip-2.2.1"
       sources."@yarnpkg/lockfile-1.1.0"
+      sources."@yarnpkg/parsers-2.3.0"
+      (sources."@yarnpkg/pnp-2.3.2" // {
+        dependencies = [
+          sources."@types/node-13.13.48"
+        ];
+      })
+      (sources."@yarnpkg/shell-2.4.1" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."which-2.0.2"
+        ];
+      })
       sources."abbrev-1.1.1"
-      sources."agent-base-4.3.0"
+      sources."aggregate-error-3.1.0"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."emoji-regex-7.0.3"
@@ -99579,40 +102633,29 @@ in
       })
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-5.0.0"
-      sources."ansi-styles-3.2.1"
+      sources."ansi-styles-4.3.0"
       sources."ansicolors-0.3.2"
+      sources."any-promise-1.3.0"
       sources."archy-1.0.0"
       (sources."argparse-1.0.10" // {
         dependencies = [
           sources."sprintf-js-1.0.3"
         ];
       })
+      sources."array-union-2.1.0"
       sources."asap-2.0.6"
       sources."asn1-0.2.4"
-      (sources."ast-types-0.14.2" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       sources."async-3.2.0"
-      sources."balanced-match-1.0.0"
+      sources."axios-0.21.1"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
-      (sources."bl-4.1.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-          sources."safe-buffer-5.2.1"
-          sources."string_decoder-1.3.0"
-        ];
-      })
+      sources."binjumper-0.1.4"
+      sources."bl-4.1.0"
+      sources."boolean-3.0.3"
       (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
           sources."type-fest-0.8.1"
         ];
       })
@@ -99621,28 +102664,41 @@ in
       sources."browserify-zlib-0.1.4"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.1"
-      sources."bytes-3.1.0"
       sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.1" // {
         dependencies = [
           sources."get-stream-5.2.0"
         ];
       })
+      sources."call-bind-1.0.2"
       sources."camelcase-5.3.1"
-      sources."chalk-2.4.2"
+      (sources."chalk-2.4.2" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          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."chardet-0.7.0"
       sources."child-process-1.0.2"
+      sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
+      sources."clean-stack-2.2.0"
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
       sources."cli-spinner-0.2.10"
+      sources."cli-spinners-2.6.0"
       sources."cli-width-3.0.0"
+      sources."clipanion-2.6.2"
+      sources."clone-1.0.4"
       sources."clone-response-1.0.2"
-      sources."co-4.6.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
+      sources."core-js-3.10.0"
       sources."core-util-is-1.0.2"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
@@ -99650,7 +102706,6 @@ in
         ];
       })
       sources."crypto-random-string-2.0.0"
-      sources."data-uri-to-buffer-1.2.0"
       sources."debug-4.3.2"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
@@ -99658,200 +102713,225 @@ in
         ];
       })
       sources."deep-extend-0.6.0"
-      sources."deep-is-0.1.3"
-      sources."defer-to-connect-2.0.0"
-      (sources."degenerator-1.0.4" // {
-        dependencies = [
-          sources."esprima-3.1.3"
-        ];
-      })
-      sources."depd-1.1.2"
+      sources."defaults-1.0.3"
+      sources."defer-to-connect-2.0.1"
+      sources."define-properties-1.1.3"
+      sources."detect-node-2.0.5"
       sources."diff-4.0.2"
-      (sources."docker-modem-2.1.3" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-          sources."safe-buffer-5.2.1"
-          sources."string_decoder-1.3.0"
-        ];
-      })
-      sources."dockerfile-ast-0.1.0"
+      sources."dir-glob-3.0.1"
+      sources."docker-modem-2.1.3"
+      sources."dockerfile-ast-0.2.0"
       sources."dot-prop-5.3.0"
       sources."dotnet-deps-parser-5.0.0"
       sources."duplexer3-0.1.4"
-      sources."duplexify-3.7.1"
+      (sources."duplexify-3.7.1" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."elfy-1.0.0"
       sources."email-validator-2.0.4"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."endian-reader-0.3.0"
-      sources."es6-promise-4.2.8"
-      sources."es6-promisify-5.0.0"
+      sources."es6-error-4.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
-      sources."estraverse-4.3.0"
-      sources."esutils-2.0.3"
-      sources."event-loop-spinner-2.0.0"
+      (sources."event-loop-spinner-2.1.0" // {
+        dependencies = [
+          sources."tslib-2.2.0"
+        ];
+      })
       sources."execa-1.0.0"
-      sources."extend-3.0.2"
       sources."external-editor-3.1.0"
-      sources."fast-levenshtein-2.0.6"
+      sources."fast-glob-3.2.5"
+      sources."fastq-1.11.0"
       sources."figures-3.2.0"
-      sources."file-uri-to-path-1.0.0"
       sources."fill-range-7.0.1"
+      sources."follow-redirects-1.13.3"
       sources."fs-constants-1.0.0"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      (sources."ftp-0.3.10" // {
-        dependencies = [
-          sources."readable-stream-1.1.14"
-        ];
-      })
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
-      (sources."get-uri-2.0.4" // {
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.2"
+      (sources."global-agent-2.2.0" // {
         dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
+          sources."semver-7.3.5"
         ];
       })
-      sources."glob-7.1.6"
       sources."global-dirs-2.1.0"
+      sources."globalthis-1.0.2"
+      sources."globby-11.0.3"
       sources."got-11.4.0"
       sources."graceful-fs-4.2.6"
-      sources."graphlib-2.1.8"
+      sources."grapheme-splitter-1.0.4"
       sources."gunzip-maybe-1.4.2"
-      sources."has-flag-3.0.0"
+      sources."has-1.0.3"
+      sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.2"
       sources."has-yarn-2.1.0"
-      (sources."hosted-git-info-3.0.8" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."yallist-4.0.0"
-        ];
-      })
-      sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.7.3"
-      (sources."http-proxy-agent-2.1.0" // {
-        dependencies = [
-          sources."debug-3.1.0"
-          sources."ms-2.0.0"
-        ];
-      })
-      sources."http2-wrapper-1.0.0-beta.5.2"
-      (sources."https-proxy-agent-3.0.1" // {
+      (sources."hcl-to-json-0.1.1" // {
         dependencies = [
           sources."debug-3.2.7"
         ];
       })
+      sources."hosted-git-info-3.0.8"
+      sources."http-cache-semantics-4.1.0"
+      sources."http2-wrapper-1.0.3"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
+      sources."ignore-5.1.8"
       sources."immediate-3.0.6"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.7"
-      (sources."inquirer-7.3.3" // {
-        dependencies = [
-          sources."ansi-escapes-4.3.1"
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."strip-ansi-6.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
-      sources."ip-1.1.5"
+      sources."is-3.3.0"
+      sources."is-callable-1.2.3"
       sources."is-ci-2.0.0"
       sources."is-deflate-1.0.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
+      sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
       sources."is-gzip-1.0.0"
       sources."is-installed-globally-0.3.2"
+      sources."is-interactive-1.0.0"
       sources."is-npm-4.0.0"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."is-wsl-2.2.0"
       sources."is-yarn-global-0.3.0"
-      sources."isarray-0.0.1"
+      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."js-yaml-3.14.1"
       sources."json-buffer-3.0.1"
+      sources."json-file-plus-3.3.1"
+      sources."json-stringify-safe-5.0.1"
       (sources."jszip-3.6.0" // {
         dependencies = [
           sources."pako-1.0.11"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
         ];
       })
       sources."keyv-4.0.3"
       sources."latest-version-5.1.0"
-      sources."levn-0.3.0"
       sources."lie-3.3.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.assign-4.2.0"
       sources."lodash.assignin-4.2.0"
+      sources."lodash.camelcase-4.3.0"
+      sources."lodash.chunk-4.2.0"
       sources."lodash.clone-4.5.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lodash.constant-3.0.0"
+      sources."lodash.defaults-4.2.0"
+      sources."lodash.endswith-4.2.1"
       sources."lodash.filter-4.6.0"
+      sources."lodash.find-4.6.0"
+      sources."lodash.findindex-4.6.0"
       sources."lodash.findkey-4.6.0"
       sources."lodash.flatmap-4.5.0"
       sources."lodash.flatten-4.4.0"
+      sources."lodash.flattendeep-4.4.0"
       sources."lodash.foreach-4.5.0"
       sources."lodash.get-4.4.2"
+      sources."lodash.groupby-4.6.0"
       sources."lodash.has-4.5.2"
       sources."lodash.invert-4.3.0"
+      sources."lodash.isboolean-3.0.3"
       sources."lodash.isempty-4.4.0"
       sources."lodash.isequal-4.5.0"
       sources."lodash.isfunction-3.0.9"
+      sources."lodash.isnumber-3.0.3"
+      sources."lodash.isobject-3.0.2"
+      sources."lodash.isplainobject-4.0.6"
+      sources."lodash.isstring-4.0.1"
       sources."lodash.isundefined-3.0.1"
       sources."lodash.keys-4.2.0"
+      sources."lodash.last-3.0.0"
       sources."lodash.map-4.6.0"
       sources."lodash.merge-4.6.2"
+      sources."lodash.omit-4.5.0"
+      sources."lodash.orderby-4.6.0"
       sources."lodash.reduce-4.6.0"
       sources."lodash.set-4.3.2"
       sources."lodash.size-4.2.0"
+      sources."lodash.sortby-4.7.0"
+      sources."lodash.sum-4.0.2"
       sources."lodash.topairs-4.3.0"
       sources."lodash.transform-4.6.0"
       sources."lodash.union-4.6.0"
       sources."lodash.uniq-4.5.0"
+      sources."lodash.upperfirst-4.3.1"
       sources."lodash.values-4.3.0"
+      (sources."log-symbols-4.1.0" // {
+        dependencies = [
+          sources."chalk-4.1.0"
+        ];
+      })
       sources."lowercase-keys-2.0.0"
-      sources."lru-cache-5.1.1"
+      sources."lru-cache-6.0.0"
       sources."macos-release-2.4.1"
       sources."make-dir-3.1.0"
+      (sources."matcher-3.0.0" // {
+        dependencies = [
+          sources."escape-string-regexp-4.0.0"
+        ];
+      })
+      sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
+      sources."minipass-3.1.3"
+      sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
-      (sources."needle-2.5.0" // {
+      (sources."needle-2.6.0" // {
         dependencies = [
           sources."debug-3.2.7"
         ];
       })
-      sources."netmask-1.0.6"
       sources."nice-try-1.0.5"
+      sources."node.extend-2.0.2"
       sources."normalize-url-4.5.0"
       sources."npm-run-path-2.0.2"
       sources."object-hash-2.1.1"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.2"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."open-7.4.0"
-      sources."optionator-0.8.3"
+      sources."open-7.4.2"
+      (sources."ora-5.3.0" // {
+        dependencies = [
+          sources."chalk-4.1.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
-      sources."p-cancelable-2.0.0"
+      sources."p-cancelable-2.1.0"
       sources."p-finally-1.0.0"
-      sources."p-map-2.1.0"
-      sources."pac-proxy-agent-3.0.1"
-      sources."pac-resolver-3.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-map-4.0.0"
+      sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."@sindresorhus/is-0.14.0"
@@ -99876,15 +102956,19 @@ in
       sources."parse-link-header-1.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
+      sources."path-type-4.0.0"
       sources."peek-stream-1.1.3"
       sources."picomatch-2.2.2"
-      sources."prelude-ls-1.1.2"
+      sources."pluralize-7.0.0"
       sources."prepend-http-2.0.0"
+      sources."pretty-bytes-5.6.0"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."promise-7.3.1"
+      sources."promise-deferred-2.0.3"
+      sources."promise-fs-2.1.1"
       sources."promise-queue-2.2.5"
-      sources."proxy-agent-3.1.1"
+      sources."promiseback-2.0.3"
       sources."proxy-from-env-1.1.0"
       sources."pseudomap-1.0.2"
       sources."pump-3.0.0"
@@ -99894,89 +102978,74 @@ in
         ];
       })
       sources."pupa-2.1.1"
+      sources."queue-6.0.2"
+      sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
-      sources."raw-body-2.4.1"
       sources."rc-1.2.8"
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."readable-stream-3.6.0"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       sources."resolve-alpn-1.0.0"
       sources."responselike-2.0.0"
       sources."restore-cursor-3.1.0"
+      sources."reusify-1.0.4"
       sources."rimraf-2.7.1"
+      sources."roarr-2.15.4"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.3"
-      sources."safe-buffer-5.1.2"
+      sources."run-parallel-1.2.0"
+      sources."rxjs-6.6.7"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."semver-6.3.0"
+      sources."semver-compare-1.0.0"
       sources."semver-diff-3.1.1"
+      (sources."serialize-error-7.0.1" // {
+        dependencies = [
+          sources."type-fest-0.13.1"
+        ];
+      })
       sources."set-immediate-shim-1.0.1"
-      sources."setprototypeof-1.1.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
-      sources."smart-buffer-4.1.0"
-      sources."snyk-config-4.0.0-rc.2"
+      sources."slash-3.0.0"
+      sources."snyk-config-4.0.0"
       (sources."snyk-cpp-plugin-2.2.1" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
-      (sources."snyk-docker-plugin-4.16.0" // {
+      (sources."snyk-docker-plugin-4.19.3" // {
         dependencies = [
+          sources."p-map-2.1.0"
           sources."rimraf-3.0.2"
+          sources."semver-7.3.5"
+          sources."snyk-nodejs-lockfile-parser-1.30.2"
           sources."tmp-0.2.1"
           sources."uuid-8.3.2"
         ];
       })
       sources."snyk-go-parser-1.4.1"
-      (sources."snyk-go-plugin-1.16.4" // {
+      (sources."snyk-go-plugin-1.17.0" // {
         dependencies = [
           sources."rimraf-3.0.2"
           sources."tmp-0.2.1"
         ];
       })
-      (sources."snyk-gradle-plugin-3.12.3" // {
+      (sources."snyk-gradle-plugin-3.14.0" // {
         dependencies = [
-          (sources."@snyk/cli-interface-2.9.1" // {
-            dependencies = [
-              sources."@snyk/dep-graph-1.19.4"
-              sources."tslib-1.14.1"
-            ];
-          })
-          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
           sources."rimraf-3.0.2"
-          sources."supports-color-7.2.0"
           sources."tmp-0.2.1"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."snyk-module-3.1.0"
-      (sources."snyk-mvn-plugin-2.25.1" // {
+      (sources."snyk-mvn-plugin-2.25.3" // {
         dependencies = [
-          sources."@snyk/cli-interface-2.9.1"
-          (sources."@snyk/dep-graph-1.19.4" // {
-            dependencies = [
-              sources."tslib-1.14.1"
-            ];
-          })
-          (sources."@snyk/java-call-graph-builder-1.17.0" // {
+          (sources."@snyk/java-call-graph-builder-1.19.1" // {
             dependencies = [
               sources."tmp-0.2.1"
             ];
@@ -99990,15 +103059,19 @@ in
           sources."tslib-1.11.1"
         ];
       })
-      (sources."snyk-nodejs-lockfile-parser-1.30.1" // {
+      (sources."snyk-nodejs-lockfile-parser-1.32.0" // {
         dependencies = [
+          sources."p-map-2.1.0"
           sources."uuid-8.3.2"
         ];
       })
-      (sources."snyk-nuget-plugin-1.20.0" // {
+      (sources."snyk-nuget-plugin-1.21.0" // {
         dependencies = [
           sources."jszip-3.4.0"
           sources."pako-1.0.11"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
         ];
       })
       sources."snyk-paket-parser-1.6.0"
@@ -100007,33 +103080,20 @@ in
           sources."tslib-1.11.1"
         ];
       })
-      (sources."snyk-poetry-lockfile-parser-1.1.5" // {
-        dependencies = [
-          (sources."@snyk/dep-graph-1.23.1" // {
-            dependencies = [
-              sources."tslib-1.14.1"
-            ];
-          })
-          sources."tslib-2.1.0"
-        ];
-      })
-      (sources."snyk-policy-1.14.1" // {
+      (sources."snyk-poetry-lockfile-parser-1.1.6" // {
         dependencies = [
-          sources."@types/node-6.14.13"
-          sources."hosted-git-info-2.8.8"
-          (sources."snyk-module-2.1.0" // {
-            dependencies = [
-              sources."debug-3.2.7"
-            ];
-          })
+          sources."tslib-2.2.0"
         ];
       })
-      sources."snyk-python-plugin-1.19.4"
-      (sources."snyk-resolve-1.0.1" // {
+      (sources."snyk-policy-1.19.0" // {
         dependencies = [
-          sources."debug-3.2.7"
+          sources."lru-cache-5.1.1"
+          sources."snyk-try-require-2.0.1"
+          sources."yallist-3.1.1"
         ];
       })
+      sources."snyk-python-plugin-1.19.7"
+      sources."snyk-resolve-1.1.0"
       (sources."snyk-resolve-deps-4.7.2" // {
         dependencies = [
           sources."lru-cache-4.1.5"
@@ -100054,27 +103114,28 @@ in
           sources."yallist-2.1.2"
         ];
       })
-      sources."socks-2.3.3"
-      (sources."socks-proxy-agent-4.0.2" // {
-        dependencies = [
-          sources."agent-base-4.2.1"
-        ];
-      })
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.19"
       sources."split-ca-1.0.1"
       sources."sprintf-js-1.1.2"
       sources."ssh2-0.8.9"
       sources."ssh2-streams-0.4.10"
-      sources."statuses-1.5.0"
+      sources."stream-buffers-3.0.2"
       sources."stream-shift-1.0.1"
+      sources."stream-to-array-2.3.0"
+      (sources."stream-to-promise-2.2.0" // {
+        dependencies = [
+          sources."end-of-stream-1.1.0"
+          sources."once-1.3.3"
+        ];
+      })
       sources."streamsearch-0.1.2"
-      (sources."string-width-4.2.0" // {
+      (sources."string-width-4.2.2" // {
         dependencies = [
           sources."strip-ansi-6.0.0"
         ];
       })
-      sources."string_decoder-0.10.31"
+      sources."string_decoder-1.3.0"
       (sources."strip-ansi-5.2.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -100082,14 +103143,9 @@ in
       })
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-5.5.0"
-      (sources."tar-stream-2.2.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-          sources."safe-buffer-5.2.1"
-          sources."string_decoder-1.3.0"
-        ];
-      })
+      sources."supports-color-7.2.0"
+      sources."tar-6.1.0"
+      sources."tar-stream-2.2.0"
       sources."temp-dir-2.0.0"
       (sources."tempfile-2.0.0" // {
         dependencies = [
@@ -100099,29 +103155,28 @@ in
       sources."term-size-2.2.1"
       sources."then-fs-2.0.0"
       sources."through-2.3.8"
-      sources."through2-2.0.5"
-      sources."thunkify-2.1.2"
+      (sources."through2-2.0.5" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."tmp-0.0.33"
       sources."to-readable-stream-1.0.0"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
       sources."toml-3.0.0"
       sources."tree-kill-1.2.2"
+      sources."treeify-1.1.0"
       sources."tslib-1.14.1"
+      sources."tunnel-0.0.6"
       sources."tweetnacl-0.14.5"
-      sources."type-check-0.3.2"
-      sources."type-fest-0.11.0"
+      sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
-      sources."unpipe-1.0.0"
       (sources."update-notifier-4.1.3" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
         ];
       })
       sources."url-parse-lax-3.0.0"
@@ -100129,12 +103184,15 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."vscode-languageserver-types-3.16.0"
+      sources."wcwidth-1.0.1"
       sources."which-1.3.1"
       sources."widest-line-3.1.0"
       sources."windows-release-3.3.3"
-      sources."word-wrap-1.2.3"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
           sources."emoji-regex-7.0.3"
           sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
@@ -100146,10 +103204,9 @@ in
       sources."xml-js-1.6.11"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."xregexp-2.0.0"
       sources."xtend-4.0.2"
-      sources."yallist-3.1.1"
-      sources."yaml-1.10.0"
+      sources."yallist-4.0.0"
+      sources."yaml-1.10.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -100164,16 +103221,16 @@ in
   "socket.io" = nodeEnv.buildNodePackage {
     name = "socket.io";
     packageName = "socket.io";
-    version = "3.1.1";
+    version = "4.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-3.1.1.tgz";
-      sha512 = "7cBWdsDC7bbyEF6WbBqffjizc/H4YF1wLdZoOzuYfo2uMNSFjJKuQ36t0H40o9B20DO6p+mSytEd92oP4S15bA==";
+      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.0.1.tgz";
+      sha512 = "g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ==";
     };
     dependencies = [
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
-      sources."@types/cors-2.8.9"
-      sources."@types/node-14.14.26"
+      sources."@types/cors-2.8.10"
+      sources."@types/node-14.14.37"
       sources."accepts-1.3.7"
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
@@ -100181,17 +103238,17 @@ in
       sources."cookie-0.4.1"
       sources."cors-2.8.5"
       sources."debug-4.3.2"
-      sources."engine.io-4.1.1"
+      sources."engine.io-5.0.0"
       sources."engine.io-parser-4.0.2"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."ms-2.1.2"
       sources."negotiator-0.6.2"
       sources."object-assign-4.1.1"
-      sources."socket.io-adapter-2.1.0"
+      sources."socket.io-adapter-2.2.0"
       sources."socket.io-parser-4.0.4"
       sources."vary-1.1.2"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -100227,7 +103284,7 @@ in
       sources."ci-info-1.6.0"
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-2.1.0"
-      sources."cli-spinners-2.5.0"
+      sources."cli-spinners-2.6.0"
       sources."clone-1.0.4"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -100246,7 +103303,7 @@ in
       sources."deep-extend-0.6.0"
       sources."defaults-1.0.3"
       sources."dot-prop-4.2.1"
-      sources."draftlog-1.0.12"
+      sources."draftlog-1.0.13"
       sources."duplexer3-0.1.4"
       sources."error-ex-1.3.2"
       sources."es6-promise-4.2.8"
@@ -100393,7 +103450,7 @@ in
           sources."random-access-storage-1.3.0"
         ];
       })
-      sources."@types/minimatch-3.0.3"
+      sources."@types/minimatch-3.0.4"
       sources."abstract-leveldown-6.0.3"
       sources."aligned-block-file-1.2.2"
       sources."ansi-escapes-1.4.0"
@@ -100411,7 +103468,7 @@ in
       sources."array-unique-0.2.1"
       sources."arrify-1.0.1"
       sources."assign-symbols-1.0.0"
-      (sources."async-append-only-log-3.0.3" // {
+      (sources."async-append-only-log-3.0.8" // {
         dependencies = [
           sources."push-stream-11.0.0"
         ];
@@ -100426,7 +103483,7 @@ in
       sources."attach-ware-1.1.1"
       sources."available-typed-arrays-1.0.2"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -100440,7 +103497,7 @@ in
       sources."binary-search-1.3.6"
       sources."binary-search-bounds-2.0.5"
       sources."bindings-1.5.0"
-      sources."bipf-1.4.0"
+      sources."bipf-1.5.0"
       sources."blake2s-1.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-1.8.5"
@@ -100547,7 +103604,7 @@ in
       sources."end-of-stream-1.4.4"
       sources."epidemic-broadcast-trees-7.0.0"
       sources."errno-0.1.8"
-      (sources."es-abstract-1.18.0-next.2" // {
+      (sources."es-abstract-1.18.0" // {
         dependencies = [
           sources."object-inspect-1.9.0"
         ];
@@ -100582,6 +103639,7 @@ in
       sources."extend.js-0.0.2"
       sources."extglob-0.3.2"
       sources."fastintcompression-0.0.4"
+      sources."fastpriorityqueue-0.7.1"
       sources."file-uri-to-path-1.0.0"
       sources."filename-regex-2.0.1"
       sources."fill-range-2.2.4"
@@ -100641,9 +103699,10 @@ in
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
+      sources."has-bigints-1.0.1"
       sources."has-flag-4.0.0"
       sources."has-network-0.0.1"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       (sources."has-value-1.0.0" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -100725,7 +103784,7 @@ in
       sources."is-stream-2.0.0"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.4"
+      sources."is-typed-array-1.1.5"
       sources."is-typedarray-1.0.0"
       sources."is-valid-domain-0.0.17"
       sources."is-weakmap-2.0.1"
@@ -100734,7 +103793,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-2.1.0"
-      (sources."jitdb-2.0.7" // {
+      (sources."jitdb-2.3.5" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."push-stream-11.0.0"
@@ -100860,7 +103919,7 @@ in
         ];
       })
       sources."object-inspect-1.7.0"
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       (sources."object-visit-1.0.1" // {
         dependencies = [
@@ -100922,13 +103981,20 @@ in
       sources."prr-1.0.1"
       sources."pull-abortable-4.0.0"
       sources."pull-async-1.0.0"
+      (sources."pull-async-filter-1.0.0" // {
+        dependencies = [
+          sources."pull-stream-2.28.4"
+        ];
+      })
       sources."pull-awaitable-1.0.0"
       sources."pull-box-stream-1.0.13"
       sources."pull-cat-1.1.11"
       sources."pull-catch-1.0.1"
       sources."pull-cont-0.1.1"
+      sources."pull-core-1.1.0"
       sources."pull-cursor-3.0.0"
       sources."pull-defer-0.2.3"
+      sources."pull-drain-gently-1.1.0"
       sources."pull-file-1.1.0"
       sources."pull-flatmap-0.0.1"
       (sources."pull-fs-1.1.6" // {
@@ -100953,6 +104019,7 @@ in
       sources."pull-notify-0.1.1"
       sources."pull-pair-1.1.0"
       sources."pull-paramap-1.2.2"
+      sources."pull-pause-0.0.2"
       sources."pull-ping-2.0.3"
       sources."pull-pushable-2.2.0"
       sources."pull-rate-1.0.2"
@@ -100983,7 +104050,7 @@ in
       sources."railroad-diagrams-1.0.0"
       sources."randexp-0.4.6"
       sources."random-access-chrome-file-1.1.4"
-      sources."random-access-file-2.1.5"
+      sources."random-access-file-2.2.0"
       (sources."random-access-idb-1.2.1" // {
         dependencies = [
           sources."buffer-from-0.1.2"
@@ -101137,7 +104204,7 @@ in
         ];
       })
       sources."snapdragon-util-3.0.1"
-      sources."socks-2.5.1"
+      sources."socks-2.6.0"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -101157,16 +104224,21 @@ in
       sources."ssb-client-4.9.0"
       sources."ssb-config-3.4.5"
       sources."ssb-db-19.2.0"
-      (sources."ssb-db2-1.11.2" // {
+      (sources."ssb-db2-1.18.7" // {
         dependencies = [
           sources."abstract-leveldown-6.2.3"
-          sources."flumecodec-0.0.1"
+          (sources."flumecodec-0.0.1" // {
+            dependencies = [
+              sources."level-codec-6.2.0"
+            ];
+          })
+          sources."glob-7.1.6"
           sources."level-6.0.1"
-          sources."level-codec-6.2.0"
           sources."level-js-5.0.2"
           sources."mkdirp-1.0.4"
           sources."push-stream-11.0.0"
-          (sources."ssb-keys-8.0.2" // {
+          sources."rimraf-3.0.2"
+          (sources."ssb-keys-8.1.0" // {
             dependencies = [
               sources."mkdirp-0.5.5"
             ];
@@ -101175,7 +104247,7 @@ in
         ];
       })
       sources."ssb-ebt-5.6.7"
-      (sources."ssb-friends-4.4.3" // {
+      (sources."ssb-friends-4.4.4" // {
         dependencies = [
           sources."flumecodec-0.0.1"
           sources."level-codec-6.2.0"
@@ -101209,7 +104281,11 @@ in
       sources."ssb-replicate-1.3.2"
       sources."ssb-sort-1.1.3"
       sources."ssb-unix-socket-1.0.0"
-      sources."ssb-validate-4.1.3"
+      (sources."ssb-validate-4.1.4" // {
+        dependencies = [
+          sources."ssb-keys-8.1.0"
+        ];
+      })
       sources."ssb-ws-6.2.3"
       sources."stack-0.1.0"
       (sources."static-extend-0.1.2" // {
@@ -101236,9 +104312,9 @@ in
         ];
       })
       sources."string-width-1.0.2"
-      sources."string.prototype.trim-1.2.3"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trim-1.2.4"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-1.1.1"
       sources."stringify-entities-1.3.2"
       sources."strip-ansi-3.0.1"
@@ -101278,6 +104354,7 @@ in
       sources."typewiselite-1.0.0"
       sources."uint48be-2.0.1"
       sources."ultron-1.0.2"
+      sources."unbox-primitive-1.0.1"
       sources."unherit-1.1.3"
       sources."unified-2.1.4"
       sources."union-value-1.0.1"
@@ -101415,7 +104492,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.842.0" // {
+      (sources."aws-sdk-2.880.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -101432,7 +104509,7 @@ in
           sources."lodash-3.10.1"
         ];
       })
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64-js-1.5.1"
       sources."base64id-2.0.0"
@@ -101554,14 +104631,14 @@ in
         dependencies = [
           sources."cookie-0.4.1"
           sources."debug-4.1.1"
-          sources."ws-7.4.3"
+          sources."ws-7.4.4"
         ];
       })
-      (sources."engine.io-client-3.5.0" // {
+      (sources."engine.io-client-3.5.1" // {
         dependencies = [
           sources."debug-3.1.0"
           sources."ms-2.0.0"
-          sources."ws-7.4.3"
+          sources."ws-7.4.4"
         ];
       })
       sources."engine.io-parser-2.2.1"
@@ -101599,7 +104676,7 @@ in
       sources."fd-slicer-1.1.0"
       sources."finalhandler-1.1.2"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."forever-agent-0.6.1"
       sources."form-data-2.1.4"
       sources."formidable-1.2.2"
@@ -101635,7 +104712,7 @@ in
         ];
       })
       sources."has-cors-1.1.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."hawk-3.1.3"
       sources."highlight.js-8.2.0"
       (sources."hipchatter-0.3.2" // {
@@ -101731,7 +104808,7 @@ in
       })
       sources."load-json-file-1.1.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.get-4.4.2"
       sources."lodash.isequal-4.5.0"
       sources."long-2.4.0"
@@ -101771,8 +104848,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."minicap-prebuilt-2.3.0"
       sources."minimatch-3.0.4"
@@ -101800,10 +104877,11 @@ in
       sources."oauth-sign-0.8.2"
       sources."object-assign-4.1.1"
       sources."object-hash-0.3.0"
+      sources."object-inspect-1.9.0"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."openid-2.0.7"
+      sources."openid-2.0.8"
       sources."options-0.0.6"
       sources."optjs-3.2.2"
       sources."os-locale-3.1.0"
@@ -101855,7 +104933,7 @@ in
       sources."psl-1.8.0"
       sources."pug-2.0.4"
       sources."pug-attrs-2.0.4"
-      sources."pug-code-gen-2.0.2"
+      sources."pug-code-gen-2.0.3"
       sources."pug-error-1.3.3"
       sources."pug-filters-3.1.1"
       sources."pug-lexer-4.1.0"
@@ -101940,6 +105018,7 @@ in
       sources."setprototypeof-1.1.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
       sources."slash-1.0.0"
       sources."sntp-1.0.9"
@@ -102005,7 +105084,7 @@ in
         dependencies = [
           sources."debug-3.2.7"
           sources."form-data-2.5.1"
-          sources."qs-6.9.6"
+          sources."qs-6.10.1"
           sources."readable-stream-2.3.7"
           sources."string_decoder-1.1.1"
         ];
@@ -102018,7 +105097,7 @@ in
           sources."esprima-4.0.1"
           sources."js-yaml-3.14.1"
           sources."lodash-3.10.1"
-          sources."qs-6.9.6"
+          sources."qs-6.10.1"
         ];
       })
       sources."swagger-schema-official-2.0.0-bab6bed"
@@ -102183,35 +105262,38 @@ in
   stylelint = nodeEnv.buildNodePackage {
     name = "stylelint";
     packageName = "stylelint";
-    version = "13.10.0";
+    version = "13.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/stylelint/-/stylelint-13.10.0.tgz";
-      sha512 = "eDuLrL0wzPKbl5/TbNGZcbw0lTIGbDEr5W6lCODvb1gAg0ncbgCRt7oU0C2VFDvbrcY0A3MFZOwltwTRmc0XCw==";
+      url = "https://registry.npmjs.org/stylelint/-/stylelint-13.12.0.tgz";
+      sha512 = "P8O1xDy41B7O7iXaSlW+UuFbE5+ZWQDb61ndGDxKIt36fMH50DtlQTbwLpFLf8DikceTAb3r6nPrRv30wBlzXw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/core-7.12.16"
-      sources."@babel/generator-7.12.15"
+      sources."@babel/compat-data-7.13.12"
+      sources."@babel/core-7.13.14"
+      sources."@babel/generator-7.13.9"
+      sources."@babel/helper-compilation-targets-7.13.13"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-member-expression-to-functions-7.12.16"
-      sources."@babel/helper-module-imports-7.12.13"
-      sources."@babel/helper-module-transforms-7.12.13"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-replace-supers-7.12.13"
-      sources."@babel/helper-simple-access-7.12.13"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/helpers-7.12.13"
-      (sources."@babel/highlight-7.12.13" // {
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helpers-7.13.10"
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.12.16"
+      sources."@babel/parser-7.13.13"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.12.13"
-      sources."@babel/types-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -102222,7 +105304,7 @@ in
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/unist-2.0.3"
-      sources."ajv-7.1.0"
+      sources."ajv-8.0.5"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -102230,14 +105312,15 @@ in
       sources."astral-regex-2.0.0"
       sources."autoprefixer-9.8.6"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browserslist-4.16.3"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001185"
+      sources."caniuse-lite-1.0.30001207"
       (sources."chalk-4.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -102253,7 +105336,7 @@ in
       sources."clone-regexp-2.2.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."colorette-1.2.1"
+      sources."colorette-1.2.2"
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.7.0"
       sources."cosmiconfig-7.0.0"
@@ -102268,14 +105351,14 @@ in
       sources."dir-glob-3.0.1"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.1.0"
+          sources."domelementtype-2.2.0"
           sources."entities-2.2.0"
         ];
       })
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.663"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -102286,8 +105369,8 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.5"
       sources."fastest-levenshtein-1.0.12"
-      sources."fastq-1.10.1"
-      sources."file-entry-cache-6.0.0"
+      sources."fastq-1.11.0"
+      sources."file-entry-cache-6.0.1"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."flat-cache-3.0.4"
@@ -102295,19 +105378,21 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
+      sources."get-intrinsic-1.1.1"
       sources."get-stdin-8.0.0"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       sources."global-modules-2.0.0"
       sources."global-prefix-3.0.0"
       sources."globals-11.12.0"
-      sources."globby-11.0.2"
+      sources."globby-11.0.3"
       sources."globjoin-0.1.4"
       sources."gonzales-pe-4.3.0"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."hosted-git-info-3.0.8"
+      sources."has-symbols-1.0.2"
+      sources."hosted-git-info-4.0.2"
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
       sources."ignore-5.1.8"
@@ -102326,6 +105411,7 @@ in
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-2.0.5"
       sources."is-core-module-2.2.0"
       sources."is-decimal-1.0.4"
@@ -102334,9 +105420,12 @@ in
       sources."is-glob-4.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-regexp-2.1.0"
+      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
@@ -102347,11 +105436,14 @@ in
       sources."known-css-properties-0.21.0"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
-      sources."log-symbols-4.0.0"
+      sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
+      sources."log-symbols-4.1.0"
       sources."longest-streak-2.0.4"
       sources."lru-cache-6.0.0"
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       sources."mathml-tag-names-2.1.3"
       sources."mdast-util-from-markdown-0.8.5"
       sources."mdast-util-to-markdown-0.6.5"
@@ -102369,10 +105461,10 @@ in
         ];
       })
       sources."ms-2.1.2"
-      sources."node-releases-1.1.70"
-      (sources."normalize-package-data-3.0.0" // {
+      sources."node-releases-1.1.71"
+      (sources."normalize-package-data-3.0.2" // {
         dependencies = [
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
         ];
       })
       sources."normalize-range-0.1.2"
@@ -102412,12 +105504,13 @@ in
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-4.1.0"
       sources."punycode-2.1.1"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
       (sources."read-pkg-5.2.0" // {
         dependencies = [
           sources."hosted-git-info-2.8.8"
           sources."normalize-package-data-2.5.0"
+          sources."semver-5.7.1"
           sources."type-fest-0.6.0"
         ];
       })
@@ -102439,7 +105532,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.2"
-      sources."semver-5.7.1"
+      sources."semver-6.3.0"
       sources."signal-exit-3.0.3"
       sources."slash-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -102455,7 +105548,7 @@ in
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.7"
       sources."specificity-0.4.1"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       (sources."string_decoder-1.3.0" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
@@ -102467,21 +105560,21 @@ in
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.0.7"
+      sources."table-6.0.9"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.0"
       sources."trough-1.0.5"
       sources."type-fest-0.18.1"
       sources."typedarray-to-buffer-3.1.5"
-      sources."unified-9.2.0"
+      sources."unified-9.2.1"
       sources."uniq-1.0.1"
       sources."unist-util-find-all-after-3.0.2"
-      sources."unist-util-is-4.0.4"
+      sources."unist-util-is-4.1.0"
       sources."unist-util-stringify-position-2.0.3"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."validate-npm-package-license-3.0.4"
       sources."vfile-4.2.1"
       sources."vfile-message-2.0.4"
@@ -102489,8 +105582,8 @@ in
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."yallist-4.0.0"
-      sources."yaml-1.10.0"
-      sources."yargs-parser-20.2.4"
+      sources."yaml-1.10.2"
+      sources."yargs-parser-20.2.7"
       sources."zwitch-1.0.5"
     ];
     buildInputs = globalBuildInputs;
@@ -102506,75 +105599,62 @@ in
   svelte-language-server = nodeEnv.buildNodePackage {
     name = "svelte-language-server";
     packageName = "svelte-language-server";
-    version = "0.12.9";
+    version = "0.13.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.12.9.tgz";
-      sha512 = "a1J4BTiP2uJ4LLk3/iuw4G9t2FbmTel0V8wyeuSVBPk+aZVAvt9sQ19Um0OFyUdwXWQVJn/jRTcrFYVXqE4Bgg==";
+      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.13.0.tgz";
+      sha512 = "ov9SZmsCdfy3GcyvrlulEkYnkCc1EK/Qoety+xLsIZtVLMBitudp0OmHx5AWHk+FF2+78A0PYL2z8PEBX6UPjA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.12.13"
-      sources."@emmetio/abbreviation-2.2.0"
-      sources."@emmetio/css-abbreviation-2.1.2"
+      sources."@emmetio/abbreviation-2.2.2"
+      sources."@emmetio/css-abbreviation-2.1.4"
       sources."@emmetio/scanner-1.0.0"
-      sources."@types/node-14.14.26"
-      sources."@types/parse-json-4.0.0"
+      sources."@types/node-14.14.37"
       sources."@types/pug-2.0.4"
       sources."@types/sass-1.16.0"
-      sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
+      sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
+      sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."callsites-3.1.0"
-      sources."chalk-2.4.2"
       sources."chokidar-3.5.1"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."cosmiconfig-7.0.0"
+      sources."concat-map-0.0.1"
       sources."dedent-js-1.0.1"
       sources."detect-indent-6.0.0"
-      sources."emmet-2.3.0"
-      sources."error-ex-1.3.2"
-      sources."escape-string-regexp-1.0.5"
+      sources."emmet-2.3.4"
       sources."estree-walker-2.0.2"
       sources."fill-range-7.0.1"
+      sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
-      sources."glob-parent-5.1.1"
-      sources."has-flag-3.0.0"
-      sources."import-fresh-3.3.0"
-      sources."is-arrayish-0.2.1"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.2"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
-      sources."js-tokens-4.0.0"
-      sources."json-parse-even-better-errors-2.3.1"
       sources."jsonc-parser-2.3.1"
-      sources."lines-and-columns-1.1.6"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lower-case-2.0.2"
       sources."min-indent-1.0.1"
+      sources."minimatch-3.0.4"
       sources."no-case-3.0.4"
       sources."normalize-path-3.0.0"
-      sources."parent-module-1.0.1"
-      sources."parse-json-5.2.0"
+      sources."once-1.4.0"
       sources."pascal-case-3.1.2"
-      sources."path-type-4.0.0"
+      sources."path-is-absolute-1.0.1"
       sources."picomatch-2.2.2"
       sources."prettier-2.2.1"
-      sources."prettier-plugin-svelte-2.1.4"
+      sources."prettier-plugin-svelte-2.2.0"
       sources."readdirp-3.5.0"
-      sources."resolve-from-4.0.0"
       sources."source-map-0.7.3"
       sources."strip-indent-3.0.0"
-      sources."supports-color-5.5.0"
-      sources."svelte-3.32.3"
-      sources."svelte-preprocess-4.6.8"
-      sources."svelte2tsx-0.1.169"
+      sources."svelte-3.35.0"
+      sources."svelte-preprocess-4.6.9"
+      sources."svelte2tsx-0.1.186"
       sources."to-regex-range-5.0.1"
-      sources."tslib-2.1.0"
-      sources."typescript-4.1.5"
+      sources."tslib-2.2.0"
+      sources."typescript-4.2.3"
       sources."vscode-css-languageservice-5.0.0"
       sources."vscode-emmet-helper-2.1.2"
       sources."vscode-html-languageservice-4.0.0"
@@ -102585,7 +105665,7 @@ in
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-5.0.0"
       sources."vscode-uri-2.1.2"
-      sources."yaml-1.10.0"
+      sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -102600,78 +105680,34 @@ in
   svgo = nodeEnv.buildNodePackage {
     name = "svgo";
     packageName = "svgo";
-    version = "1.3.2";
+    version = "2.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz";
-      sha512 = "yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==";
+      url = "https://registry.npmjs.org/svgo/-/svgo-2.3.0.tgz";
+      sha512 = "fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q==";
     };
     dependencies = [
-      sources."@types/q-1.5.4"
-      sources."ansi-styles-3.2.1"
-      sources."argparse-1.0.10"
+      sources."@trysound/sax-0.1.1"
+      sources."ansi-styles-4.3.0"
       sources."boolbase-1.0.0"
-      sources."call-bind-1.0.2"
-      sources."chalk-2.4.2"
-      sources."coa-2.0.2"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."css-select-2.1.0"
-      sources."css-select-base-adapter-0.1.1"
-      sources."css-tree-1.0.0-alpha.37"
-      sources."css-what-3.4.2"
-      (sources."csso-4.2.0" // {
-        dependencies = [
-          sources."css-tree-1.1.2"
-          sources."mdn-data-2.0.14"
-        ];
-      })
-      sources."define-properties-1.1.3"
-      (sources."dom-serializer-0.2.2" // {
-        dependencies = [
-          sources."domelementtype-2.1.0"
-        ];
-      })
-      sources."domelementtype-1.3.1"
-      sources."domutils-1.7.0"
+      sources."chalk-4.1.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."commander-7.2.0"
+      sources."css-select-3.1.2"
+      sources."css-tree-1.1.3"
+      sources."css-what-4.0.0"
+      sources."csso-4.2.0"
+      sources."dom-serializer-1.2.0"
+      sources."domelementtype-2.2.0"
+      sources."domhandler-4.1.0"
+      sources."domutils-2.5.1"
       sources."entities-2.2.0"
-      sources."es-abstract-1.18.0-next.2"
-      sources."es-to-primitive-1.2.1"
-      sources."escape-string-regexp-1.0.5"
-      sources."esprima-4.0.1"
-      sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.1.1"
-      sources."has-1.0.3"
-      sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
-      sources."is-callable-1.2.3"
-      sources."is-date-object-1.0.2"
-      sources."is-negative-zero-2.0.1"
-      sources."is-regex-1.1.2"
-      sources."is-symbol-1.0.3"
-      sources."js-yaml-3.14.1"
-      sources."mdn-data-2.0.4"
-      sources."minimist-1.2.5"
-      sources."mkdirp-0.5.5"
-      sources."nth-check-1.0.2"
-      sources."object-inspect-1.9.0"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.2"
-      sources."object.getownpropertydescriptors-2.1.1"
-      sources."object.values-1.1.2"
-      sources."q-1.5.1"
-      sources."sax-1.2.4"
+      sources."has-flag-4.0.0"
+      sources."mdn-data-2.0.14"
+      sources."nth-check-2.0.0"
       sources."source-map-0.6.1"
-      sources."sprintf-js-1.0.3"
       sources."stable-0.1.8"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
-      sources."supports-color-5.5.0"
-      sources."unquote-1.1.1"
-      (sources."util.promisify-1.0.1" // {
-        dependencies = [
-          sources."es-abstract-1.17.7"
-        ];
-      })
+      sources."supports-color-7.2.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -102714,7 +105750,7 @@ in
       sources."async-each-1.0.3"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -102756,6 +105792,7 @@ in
       })
       sources."bytes-1.0.0"
       sources."cache-base-1.0.1"
+      sources."call-bind-1.0.2"
       sources."camelcase-4.1.0"
       sources."capture-stack-trace-1.0.1"
       sources."chalk-1.1.3"
@@ -102878,6 +105915,8 @@ in
       sources."fs-extra-0.24.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-1.2.13"
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
       sources."glob-7.1.6"
@@ -102891,18 +105930,20 @@ in
       sources."graceful-fs-4.2.6"
       (sources."graphlib-2.1.8" // {
         dependencies = [
-          sources."lodash-4.17.20"
+          sources."lodash-4.17.21"
         ];
       })
       sources."growl-1.9.2"
-      (sources."handlebars-4.7.6" // {
+      (sources."handlebars-4.7.7" // {
         dependencies = [
           sources."minimist-1.2.5"
           sources."source-map-0.6.1"
         ];
       })
+      sources."has-1.0.3"
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -102963,7 +106004,7 @@ in
       sources."json-refs-2.1.7"
       (sources."json-schema-deref-sync-0.6.0" // {
         dependencies = [
-          sources."lodash-4.17.20"
+          sources."lodash-4.17.21"
         ];
       })
       sources."jsonfile-2.4.0"
@@ -103011,8 +106052,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-0.0.8"
       sources."mixin-deep-1.3.2"
@@ -103061,6 +106102,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
+      sources."object-inspect-1.9.0"
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
       sources."on-finished-2.3.0"
@@ -103078,7 +106120,7 @@ in
         dependencies = [
           sources."debug-3.2.7"
           sources."ms-2.1.3"
-          sources."qs-6.9.6"
+          sources."qs-6.10.1"
           sources."superagent-3.8.3"
         ];
       })
@@ -103142,6 +106184,7 @@ in
       sources."setprototypeof-1.1.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
+      sources."side-channel-1.0.4"
       sources."sigmund-1.0.1"
       sources."signal-exit-3.0.3"
       sources."slash-1.0.0"
@@ -103230,7 +106273,7 @@ in
       sources."swagger-editor-2.10.5"
       (sources."swagger-test-templates-1.6.0" // {
         dependencies = [
-          sources."lodash-4.17.20"
+          sources."lodash-4.17.21"
         ];
       })
       (sources."swagger-tools-0.9.16" // {
@@ -103255,7 +106298,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.12.7"
+      sources."uglify-js-3.13.3"
       sources."undefsafe-2.0.3"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -103375,9 +106418,9 @@ in
       sources."jsprim-1.4.1"
       sources."locate-path-3.0.0"
       sources."long-4.0.0"
-      sources."mime-2.5.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-2.5.2"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."module-alias-2.2.2"
       sources."moment-2.29.1"
@@ -103447,7 +106490,7 @@ in
       sources."acorn-6.4.2"
       sources."acorn-loose-6.1.0"
       sources."acorn-walk-6.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.2"
@@ -103487,36 +106530,36 @@ in
   textlint = nodeEnv.buildNodePackage {
     name = "textlint";
     packageName = "textlint";
-    version = "11.8.2";
+    version = "11.9.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint/-/textlint-11.8.2.tgz";
-      sha512 = "YrTGagGzWKXYw6VjW4uhJ1y7LoW8zqWZIr8sWgeQVIFE84+G/cHPoZ8RhFlia+RZ4YryZPNOqevuF4vG+dbKNQ==";
+      url = "https://registry.npmjs.org/textlint/-/textlint-11.9.0.tgz";
+      sha512 = "a9ZCfCOcOTNxEQsRbYBDFNu8m5cjJC+znnXCBommGSdP0W+9QmwZnkralwpxrVhRgWvLz+QyuDXtLBZcqfDmHg==";
     };
     dependencies = [
       sources."@azu/format-text-1.0.1"
       sources."@azu/style-format-1.0.0"
-      sources."@textlint/ast-node-types-4.4.1"
-      sources."@textlint/ast-tester-2.3.2"
-      sources."@textlint/ast-traverse-2.3.2"
-      sources."@textlint/feature-flag-3.3.2"
-      sources."@textlint/fixer-formatter-3.3.2"
-      sources."@textlint/kernel-3.4.2"
-      sources."@textlint/linter-formatter-3.3.2"
-      sources."@textlint/markdown-to-ast-6.3.2"
-      sources."@textlint/module-interop-1.2.2"
-      sources."@textlint/source-code-fixer-3.4.2"
-      sources."@textlint/text-to-ast-3.3.2"
-      sources."@textlint/textlint-plugin-markdown-5.3.2"
-      sources."@textlint/textlint-plugin-text-4.3.2"
-      sources."@textlint/types-1.5.2"
-      sources."@textlint/utils-1.2.2"
+      sources."@textlint/ast-node-types-4.4.2"
+      sources."@textlint/ast-tester-2.3.4"
+      sources."@textlint/ast-traverse-2.3.4"
+      sources."@textlint/feature-flag-3.3.4"
+      sources."@textlint/fixer-formatter-3.3.4"
+      sources."@textlint/kernel-3.4.4"
+      sources."@textlint/linter-formatter-3.3.4"
+      sources."@textlint/markdown-to-ast-6.3.4"
+      sources."@textlint/module-interop-1.2.4"
+      sources."@textlint/source-code-fixer-3.4.4"
+      sources."@textlint/text-to-ast-3.3.4"
+      sources."@textlint/textlint-plugin-markdown-5.3.4"
+      sources."@textlint/textlint-plugin-text-4.3.4"
+      sources."@textlint/types-1.5.4"
+      sources."@textlint/utils-1.2.4"
       sources."ajv-4.11.8"
       sources."ajv-keywords-1.5.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
       sources."argparse-1.0.10"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."boundary-1.0.1"
       sources."brace-expansion-1.1.11"
       sources."buffer-from-1.1.1"
@@ -103561,7 +106604,7 @@ in
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."hosted-git-info-2.8.8"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -103590,7 +106633,7 @@ in
       sources."levn-0.4.1"
       sources."load-json-file-1.1.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."log-symbols-1.0.2"
       sources."map-like-2.0.0"
       sources."markdown-escapes-1.0.4"
@@ -103601,7 +106644,7 @@ in
       sources."ms-2.1.2"
       sources."normalize-package-data-2.5.0"
       sources."number-is-nan-1.0.1"
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."once-1.4.0"
       sources."optionator-0.9.1"
@@ -103720,7 +106763,7 @@ in
       sha1 = "9139c65b8da891c983b368a50a286338cd76777a";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.4.1"
+      sources."@textlint/ast-node-types-4.4.2"
       sources."txt-to-ast-3.0.3"
     ];
     buildInputs = globalBuildInputs;
@@ -103747,7 +106790,7 @@ in
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."match-index-1.0.3"
       sources."object-keys-1.1.1"
       sources."regexp.prototype.flags-1.3.1"
@@ -103773,16 +106816,18 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.12.13"
+      sources."@babel/highlight-7.13.10"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@textlint/ast-node-types-4.4.1"
-      sources."@textlint/types-1.5.2"
+      sources."@textlint/ast-node-types-4.4.2"
+      sources."@textlint/types-1.5.4"
       sources."@types/hast-2.3.1"
       sources."@types/minimist-1.2.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse5-5.0.3"
       sources."@types/unist-2.0.3"
+      sources."acorn-8.1.0"
+      sources."acorn-jsx-5.3.1"
       sources."alex-9.1.0"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
@@ -103795,7 +106840,7 @@ in
       sources."array-iterate-1.1.4"
       sources."arrify-1.0.1"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."boundary-1.0.1"
       (sources."boxen-4.2.0" // {
         dependencies = [
@@ -103863,6 +106908,7 @@ in
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
+      sources."estree-util-is-identifier-name-1.1.0"
       sources."event-stream-3.1.7"
       sources."extend-3.0.2"
       sources."fault-1.0.4"
@@ -103913,7 +106959,6 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."is-alphabetical-1.0.4"
-      sources."is-alphanumeric-1.0.0"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
@@ -103926,7 +106971,7 @@ in
       sources."is-installed-globally-0.3.2"
       sources."is-npm-4.0.0"
       sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.2"
+      sources."is-path-inside-3.0.3"
       sources."is-plain-obj-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-whitespace-character-1.0.4"
@@ -103961,14 +107006,25 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."map-obj-4.1.0"
+      sources."map-obj-4.2.0"
       sources."map-stream-0.1.0"
       sources."markdown-escapes-1.0.4"
-      sources."markdown-table-2.0.0"
       sources."mdast-comment-marker-1.1.2"
-      sources."mdast-util-compact-2.0.1"
+      sources."mdast-util-mdx-0.1.1"
+      sources."mdast-util-mdx-expression-0.1.1"
+      sources."mdast-util-mdx-jsx-0.1.4"
+      sources."mdast-util-mdxjs-esm-0.1.1"
+      sources."mdast-util-to-markdown-0.6.5"
       sources."mdast-util-to-nlcst-4.0.1"
+      sources."mdast-util-to-string-2.0.0"
       sources."meow-7.1.1"
+      sources."micromark-2.11.4"
+      sources."micromark-extension-mdx-0.2.1"
+      sources."micromark-extension-mdx-expression-0.3.2"
+      sources."micromark-extension-mdx-jsx-0.3.3"
+      sources."micromark-extension-mdx-md-0.1.1"
+      sources."micromark-extension-mdxjs-0.3.0"
+      sources."micromark-extension-mdxjs-esm-0.3.1"
       sources."mimic-response-1.0.1"
       sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
@@ -104028,11 +107084,14 @@ in
       sources."rehype-parse-7.0.1"
       sources."rehype-retext-2.0.4"
       sources."remark-frontmatter-2.0.0"
-      sources."remark-mdx-2.0.0-next.8"
+      sources."remark-mdx-2.0.0-next.9"
       sources."remark-message-control-6.0.0"
-      sources."remark-parse-8.0.3"
+      (sources."remark-parse-8.0.3" // {
+        dependencies = [
+          sources."unist-util-remove-position-2.0.1"
+        ];
+      })
       sources."remark-retext-4.0.0"
-      sources."remark-stringify-8.1.1"
       sources."repeat-string-1.6.1"
       sources."resolve-1.20.0"
       sources."resolve-from-5.0.0"
@@ -104073,7 +107132,7 @@ in
       sources."sprintf-js-1.0.3"
       sources."state-toggle-1.0.3"
       sources."stream-combiner-0.0.4"
-      (sources."string-width-4.2.0" // {
+      (sources."string-width-4.2.2" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
@@ -104113,13 +107172,13 @@ in
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."unherit-1.1.3"
-      (sources."unified-9.2.0" // {
+      (sources."unified-9.2.1" // {
         dependencies = [
           sources."is-plain-obj-2.1.0"
         ];
       })
       sources."unified-diff-3.1.0"
-      (sources."unified-engine-8.0.0" // {
+      (sources."unified-engine-8.1.0" // {
         dependencies = [
           sources."is-plain-obj-2.1.0"
         ];
@@ -104127,10 +107186,10 @@ in
       sources."unified-message-control-3.0.3"
       sources."unique-string-2.0.0"
       sources."unist-util-inspect-5.0.1"
-      sources."unist-util-is-4.0.4"
+      sources."unist-util-is-4.1.0"
       sources."unist-util-modify-children-2.0.0"
       sources."unist-util-position-3.1.0"
-      sources."unist-util-remove-position-2.0.1"
+      sources."unist-util-remove-position-3.0.0"
       sources."unist-util-stringify-position-2.0.3"
       sources."unist-util-visit-2.0.3"
       sources."unist-util-visit-children-1.1.4"
@@ -104166,6 +107225,7 @@ in
       sources."xdg-basedir-4.0.0"
       sources."xtend-4.0.2"
       sources."yargs-parser-18.1.3"
+      sources."zwitch-1.0.5"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -104227,10 +107287,10 @@ in
   textlint-rule-en-max-word-count = nodeEnv.buildNodePackage {
     name = "textlint-rule-en-max-word-count";
     packageName = "textlint-rule-en-max-word-count";
-    version = "1.0.2";
+    version = "1.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-en-max-word-count/-/textlint-rule-en-max-word-count-1.0.2.tgz";
-      sha512 = "ZDjItH8P4EqwpDUjhvuZQHO5mgXxyQruW5YC/h4ogDEJ0uwiPZBo9O74mao7jd8xteG5rOET2h3M05nnWoVg0w==";
+      url = "https://registry.npmjs.org/textlint-rule-en-max-word-count/-/textlint-rule-en-max-word-count-1.1.0.tgz";
+      sha512 = "nDm8b6cN+62P6mdJ81vHJ0K6UYu5oQkkiHhM9XicMRxBoAP6tml4BqeeRtq84UeBfXSf9QcRjI3D5ob1oN8iXA==";
     };
     dependencies = [
       sources."boundary-1.0.1"
@@ -104307,43 +107367,50 @@ in
       sha512 = "HydBbkWjnMn4KrnlpnusY1BGjIG+64UySxRCvRphUAIiuJL2nbkdrIIiOjwfQhllKUa7Sf33bs6RAcbEWjZVfg==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.4.1"
-      sources."@textlint/types-1.5.2"
+      sources."@textlint/ast-node-types-4.4.2"
+      sources."@textlint/types-1.5.4"
       sources."boundary-1.0.1"
       sources."buffer-from-1.1.1"
       sources."call-bind-1.0.2"
       sources."concat-stream-2.0.0"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-bigints-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."inherits-2.0.4"
+      sources."is-bigint-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
       sources."is-date-object-1.0.2"
       sources."is-negative-zero-2.0.1"
+      sources."is-number-object-1.0.4"
       sources."is-regex-1.1.2"
+      sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."object-assign-4.1.1"
       sources."object-inspect-1.9.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."object.values-1.1.2"
+      sources."object.values-1.1.3"
       sources."readable-stream-3.6.0"
       sources."safe-buffer-5.2.1"
       sources."sentence-splitter-3.2.0"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-1.3.0"
       sources."structured-source-3.0.2"
       sources."textlint-rule-helper-2.1.1"
       sources."typedarray-0.0.6"
+      sources."unbox-primitive-1.0.1"
       sources."unist-util-is-3.0.0"
       sources."unist-util-visit-1.4.1"
       sources."unist-util-visit-parents-2.1.2"
       sources."util-deprecate-1.0.2"
+      sources."which-boxed-primitive-1.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -104370,21 +107437,29 @@ in
       sources."define-properties-1.1.3"
       sources."emoji-regex-6.5.1"
       sources."end-with-1.0.2"
-      sources."es-abstract-1.17.7"
+      sources."es-abstract-1.18.0"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-bigints-1.0.1"
+      sources."has-symbols-1.0.2"
+      sources."is-bigint-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
       sources."is-date-object-1.0.2"
+      sources."is-negative-zero-2.0.1"
+      sources."is-number-object-1.0.4"
       sources."is-regex-1.1.2"
+      sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."object-inspect-1.9.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
+      sources."unbox-primitive-1.0.1"
+      sources."which-boxed-primitive-1.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -104405,11 +107480,11 @@ in
       sha512 = "UW7nWrqBUHfz/sRLTFo40BNjwXOiXSHg00TJuYY4GVDQtsWRLyAsOnXSBqClP4i6wl7ejMBeYmB5mfllYAYMgA==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.4.1"
-      sources."@textlint/types-1.5.2"
+      sources."@textlint/ast-node-types-4.4.2"
+      sources."@textlint/types-1.5.4"
       sources."boundary-1.0.1"
-      sources."lodash-4.17.20"
-      sources."split-lines-2.0.0"
+      sources."lodash-4.17.21"
+      sources."split-lines-2.1.0"
       sources."structured-source-3.0.2"
       sources."textlint-rule-helper-2.1.1"
       sources."unist-util-is-3.0.0"
@@ -104435,10 +107510,10 @@ in
       sha512 = "VW+ea4ByLPddSUqoFkVVJF8zWnO8kqKwvC681wGFAjI4CYz9WhjEQH1ikhoEHXnd5AFXNArcjyoa8hoihrXy0w==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.4.1"
-      sources."@textlint/types-1.5.2"
+      sources."@textlint/ast-node-types-4.4.2"
+      sources."@textlint/types-1.5.4"
       sources."boundary-1.0.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."strip-json-comments-3.1.1"
       sources."structured-source-3.0.2"
       sources."textlint-rule-helper-2.1.1"
@@ -104465,27 +107540,33 @@ in
       sha512 = "F1kV06CdonOM2awtXjCSRYUsRJfDfZIujQQo4zEMqNqD6UwpkapxpZOiwcwbeaQz00+17ljbJEoGqIe2XeiU+w==";
     };
     dependencies = [
-      sources."array-includes-3.1.2"
+      sources."array-includes-3.1.3"
       sources."call-bind-1.0.2"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.18.0-next.2"
+      sources."es-abstract-1.18.0"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-bigints-1.0.1"
+      sources."has-symbols-1.0.2"
+      sources."is-bigint-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
       sources."is-capitalized-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-negative-zero-2.0.1"
+      sources."is-number-object-1.0.4"
       sources."is-regex-1.1.2"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."object-inspect-1.9.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
+      sources."unbox-primitive-1.0.1"
+      sources."which-boxed-primitive-1.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -104506,8 +107587,8 @@ in
       sha1 = "3c79b04091319d4e8be5fb442c596bf500e8493e";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.4.1"
-      sources."@textlint/types-1.5.2"
+      sources."@textlint/ast-node-types-4.4.2"
+      sources."@textlint/types-1.5.4"
       sources."adverb-where-0.0.9"
       sources."boundary-1.0.1"
       sources."call-bind-1.0.2"
@@ -104516,7 +107597,7 @@ in
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."no-cliches-0.1.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
@@ -104556,7 +107637,7 @@ in
       sources."@types/debug-4.1.5"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -104591,7 +107672,7 @@ in
       sources."aws4-1.11.0"
       sources."backo2-1.0.2"
       sources."backoff-2.5.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
       sources."bcrypt-pbkdf-1.0.2"
@@ -104599,7 +107680,7 @@ in
       sources."better-assert-1.0.2"
       sources."blob-0.0.5"
       sources."block-stream-0.0.9"
-      sources."bn.js-4.11.9"
+      sources."bn.js-4.12.0"
       sources."body-parser-1.19.0"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
@@ -104632,7 +107713,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.8.3"
+      sources."core-js-3.10.0"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -104644,7 +107725,7 @@ in
         ];
       })
       sources."deep-extend-0.6.0"
-      sources."defer-to-connect-2.0.0"
+      sources."defer-to-connect-2.0.1"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
@@ -104725,7 +107806,7 @@ in
         ];
       })
       sources."http-signature-1.2.0"
-      sources."http2-wrapper-1.0.0-beta.5.2"
+      sources."http2-wrapper-1.0.3"
       sources."http_ece-1.1.0"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
@@ -104824,7 +107905,7 @@ in
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      sources."p-cancelable-2.0.0"
+      sources."p-cancelable-2.1.0"
       sources."p-finally-1.0.0"
       sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
@@ -104874,7 +107955,7 @@ in
       sources."read-chunk-3.2.0"
       sources."readable-stream-3.6.0"
       sources."readable-web-to-node-stream-2.0.0"
-      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-runtime-0.13.8"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
@@ -104971,7 +108052,7 @@ in
       sources."wide-align-1.1.3"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yallist-3.1.1"
       sources."yarn-1.22.4"
@@ -104990,10 +108071,10 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.125.2";
+    version = "0.127.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.125.2.tgz";
-      sha512 = "7rIRO23jVKWcAPFdW/HREU2NZMGWPBZ4XwEMt0Ak0jwLUKVJhcKM55eCBWyGZq/KiQbeo1IeuAoo/9l2dzhTXA==";
+      url = "https://registry.npmjs.org/three/-/three-0.127.0.tgz";
+      sha512 = "wtgrn+mhYUbobxT7QN3GPdu3SRpSBQvwY6uOzLChWS7QE//f7paDU/+wlzbg+ngeIvBBqjBHSRuywTh8A99Jng==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -105040,7 +108121,7 @@ in
       sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."buffer-crc32-0.2.13"
@@ -105090,10 +108171,10 @@ in
       })
       sources."jsprim-1.4.1"
       sources."keypress-0.2.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lru-cache-6.0.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       (sources."node-appc-1.1.2" // {
         dependencies = [
@@ -105116,7 +108197,7 @@ in
       sources."rimraf-2.6.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       sources."sprintf-0.1.5"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
@@ -105152,16 +108233,16 @@ in
   triton = nodeEnv.buildNodePackage {
     name = "triton";
     packageName = "triton";
-    version = "7.12.2";
+    version = "7.14.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/triton/-/triton-7.12.2.tgz";
-      sha512 = "xzGDHq2Jt6THs+/Kz1XiTEaco67KmeBzUFqCROPIaMS4BL8UNXoY0cU2ZyH1/4Brrzn70muAOgl7PYDokNb4Pw==";
+      url = "https://registry.npmjs.org/triton/-/triton-7.14.0.tgz";
+      sha512 = "2oIu0p1QjDYdNp3fI0gTxJvwOmzcP76hMwCn4KlqfFxDihBghwDmvWhGU3PPn4zNf3yBDJ1xlsxY14WHqgcV7g==";
     };
     dependencies = [
       sources."asn1-0.2.4"
       sources."assert-plus-0.2.0"
       sources."backoff-2.4.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bigspinner-3.1.0"
       sources."brace-expansion-1.1.11"
@@ -105211,7 +108292,7 @@ in
         ];
       })
       sources."keep-alive-agent-0.0.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       (sources."lomstream-1.1.0" // {
         dependencies = [
           sources."assert-plus-0.1.5"
@@ -105360,7 +108441,7 @@ in
       sources."ansi-0.3.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chalk-1.1.3"
       sources."colors-1.4.0"
@@ -105422,10 +108503,10 @@ in
   typescript = nodeEnv.buildNodePackage {
     name = "typescript";
     packageName = "typescript";
-    version = "4.1.5";
+    version = "4.2.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz";
-      sha512 = "6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==";
+      url = "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz";
+      sha512 = "qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -105477,10 +108558,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.12.7";
+    version = "3.13.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.7.tgz";
-      sha512 = "SIZhkoh+U/wjW+BHGhVwE9nt8tWJspncloBcFapkpGRwNPqcH8pzX36BXe3TPBjzHWPMUZotpCigak/udWNr1Q==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.3.tgz";
+      sha512 = "otIc7O9LyxpUcQoXzj2hL4LPWKklO6LJWoJUzNa8A17Xgi4fOeDC8FBDOLHnC/Slo1CQgsZMcM6as0M76BZaig==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -105513,20 +108594,20 @@ in
   ungit = nodeEnv.buildNodePackage {
     name = "ungit";
     packageName = "ungit";
-    version = "1.5.15";
+    version = "1.5.16";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.15.tgz";
-      sha512 = "jisiuRjEd8HfBLQxATHzyWnvSljsKwBs+YEPl50yg91ZQiie7tQWBlw/wKxfFfVzN52HYIqKvOEWYqJYJgpP8A==";
+      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.16.tgz";
+      sha512 = "Hv5QiC0qMJChmDf6s3qwwclL38XQUKVInJaJZiNuIHh6vvO9hjkeoUb7djmGb2F2xxVuU7aOtpbdizfwunzU4A==";
     };
     dependencies = [
       sources."@dabh/diagnostics-2.0.2"
-      sources."@primer/octicons-11.2.0"
+      sources."@primer/octicons-12.1.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
-      sources."@types/cors-2.8.9"
-      sources."@types/node-14.14.26"
+      sources."@types/cors-2.8.10"
+      sources."@types/node-14.14.37"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.0"
@@ -105538,7 +108619,7 @@ in
       })
       sources."array-flatten-1.1.1"
       sources."async-3.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
       sources."blueimp-md5-2.18.0"
@@ -105558,7 +108639,7 @@ in
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.4"
+      sources."color-string-1.5.5"
       sources."colors-1.4.0"
       sources."colorspace-1.1.2"
       sources."component-emitter-1.3.0"
@@ -105575,10 +108656,11 @@ in
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
+      sources."define-lazy-prop-2.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."diff-4.0.2"
-      sources."diff2html-3.1.18"
+      sources."diff-5.0.0"
+      sources."diff2html-3.4.2"
       sources."dnd-page-scroll-0.0.4"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
@@ -105586,7 +108668,7 @@ in
       sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-4.0.6" // {
+      (sources."engine.io-5.0.0" // {
         dependencies = [
           sources."cookie-0.4.1"
           sources."debug-4.3.2"
@@ -105606,7 +108688,7 @@ in
         ];
       })
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."finalhandler-1.1.2"
       sources."fn.name-1.1.0"
       sources."forwarded-0.1.2"
@@ -105632,12 +108714,12 @@ in
       sources."ini-1.3.8"
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.3.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-stream-2.0.0"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
-      sources."jquery-3.5.1"
+      sources."jquery-3.6.0"
       sources."jquery-ui-1.12.1"
       sources."json-buffer-3.0.0"
       sources."just-detect-adblock-1.1.0"
@@ -105646,7 +108728,7 @@ in
       sources."kuler-2.0.0"
       sources."latest-version-5.1.0"
       sources."locks-0.2.2"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       (sources."logform-2.2.0" // {
         dependencies = [
           sources."ms-2.1.3"
@@ -105655,7 +108737,7 @@ in
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-4.1.5"
       sources."media-typer-0.3.0"
-      (sources."memorystore-1.6.4" // {
+      (sources."memorystore-1.6.6" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
@@ -105664,8 +108746,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -105682,7 +108764,7 @@ in
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
-      sources."open-7.3.1"
+      sources."open-8.0.5"
       sources."p-cancelable-1.1.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
@@ -105715,7 +108797,7 @@ in
       sources."rimraf-3.0.2"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      (sources."semver-7.3.4" // {
+      (sources."semver-7.3.5" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."yallist-4.0.0"
@@ -105731,13 +108813,13 @@ in
       sources."signals-1.0.0"
       sources."simple-swizzle-0.2.2"
       sources."snapsvg-0.5.1"
-      (sources."socket.io-3.0.5" // {
+      (sources."socket.io-4.0.1" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-2.0.3"
+      sources."socket.io-adapter-2.2.0"
       (sources."socket.io-parser-4.0.4" // {
         dependencies = [
           sources."debug-4.3.2"
@@ -105746,7 +108828,7 @@ in
       })
       sources."stack-trace-0.0.10"
       sources."statuses-1.5.0"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       (sources."string_decoder-1.3.0" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
@@ -105780,11 +108862,11 @@ in
       })
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.3"
-      sources."y18n-5.0.5"
+      sources."ws-7.4.4"
+      sources."y18n-5.0.6"
       sources."yallist-2.1.2"
       sources."yargs-16.2.0"
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -105799,10 +108881,10 @@ in
   vega-cli = nodeEnv.buildNodePackage {
     name = "vega-cli";
     packageName = "vega-cli";
-    version = "5.19.1";
+    version = "5.20.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.19.1.tgz";
-      sha512 = "zUyyUYl2GgpAqdaQ3f/riNdaued3030hiJAjreX7/3XBiJ64vmF1l42x3KD8rq24ff9xLFwe0qyfnQOk4nK+fg==";
+      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.20.2.tgz";
+      sha512 = "dp7CncooBn6zSacyoSRdlm+fS1mQ6PsCT2pFILUgsDzn3e/e56iQA2mjmob8DOqM1n/0xbVziVelH31M8fcYXw==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -105810,15 +108892,15 @@ in
       sources."ansi-styles-4.3.0"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."canvas-2.6.1"
+      sources."canvas-2.7.0"
       sources."chownr-1.1.4"
       (sources."cliui-7.0.4" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -105829,7 +108911,7 @@ in
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.2"
-      sources."d3-array-2.11.0"
+      sources."d3-array-2.12.1"
       sources."d3-color-2.0.0"
       sources."d3-delaunay-5.3.0"
       sources."d3-dispatch-2.0.0"
@@ -105842,8 +108924,8 @@ in
       sources."d3-interpolate-2.0.1"
       sources."d3-path-2.0.0"
       sources."d3-quadtree-2.0.0"
-      sources."d3-scale-3.2.3"
-      sources."d3-shape-2.0.0"
+      sources."d3-scale-3.2.4"
+      sources."d3-shape-2.1.0"
       sources."d3-time-2.0.0"
       sources."d3-time-format-3.0.0"
       sources."d3-timer-2.0.0"
@@ -105868,7 +108950,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      sources."internmap-1.0.0"
+      sources."internmap-1.0.1"
       sources."is-core-module-2.2.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."isarray-1.0.0"
@@ -105882,7 +108964,7 @@ in
       sources."nan-2.14.2"
       sources."needle-2.6.0"
       sources."node-fetch-2.6.1"
-      sources."node-pre-gyp-0.11.0"
+      sources."node-pre-gyp-0.15.0"
       sources."nopt-4.0.3"
       sources."npm-bundled-1.1.1"
       sources."npm-normalize-package-bin-1.0.1"
@@ -105918,10 +109000,10 @@ in
       sources."tar-4.4.13"
       sources."topojson-client-3.1.0"
       sources."util-deprecate-1.0.2"
-      sources."vega-5.19.1"
+      sources."vega-5.20.2"
       sources."vega-canvas-1.2.6"
       sources."vega-crossfilter-4.0.5"
-      sources."vega-dataflow-5.7.3"
+      sources."vega-dataflow-5.7.4"
       sources."vega-encode-4.8.3"
       sources."vega-event-selector-2.0.6"
       sources."vega-expression-4.0.1"
@@ -105937,14 +109019,14 @@ in
       sources."vega-regression-1.0.9"
       sources."vega-runtime-6.1.3"
       sources."vega-scale-7.1.1"
-      sources."vega-scenegraph-4.9.3"
+      sources."vega-scenegraph-4.9.4"
       sources."vega-selections-5.3.0"
       sources."vega-statistics-1.7.9"
       sources."vega-time-2.0.4"
-      sources."vega-transforms-4.9.3"
-      sources."vega-typings-0.19.2"
-      sources."vega-util-1.16.0"
-      sources."vega-view-5.9.2"
+      sources."vega-transforms-4.9.4"
+      sources."vega-typings-0.21.0"
+      sources."vega-util-1.16.1"
+      sources."vega-view-5.10.1"
       sources."vega-view-transforms-4.5.8"
       sources."vega-voronoi-4.1.5"
       sources."vega-wordcloud-4.1.3"
@@ -105953,22 +109035,22 @@ in
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
       sources."wrappy-1.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-3.1.1"
       (sources."yargs-16.2.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -105983,10 +109065,10 @@ in
   vega-lite = nodeEnv.buildNodePackage {
     name = "vega-lite";
     packageName = "vega-lite";
-    version = "4.17.0";
+    version = "5.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-4.17.0.tgz";
-      sha512 = "MO2XsaVZqx6iWWmVA5vwYFamvhRUsKfVp7n0pNlkZ2/21cuxelSl92EePZ2YGmzL6z4/3K7r/45zaG8p+qNHeg==";
+      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-5.0.0.tgz";
+      sha512 = "CrMAy3D2E662qtShrOeGttwwthRxUOZUfdu39THyxkOfLNJBCLkNjfQpFekEidxwbtFTO1zMZzyFIP3AE2I8kQ==";
     };
     dependencies = [
       sources."@types/clone-2.1.0"
@@ -106004,18 +109086,18 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."get-caller-file-2.0.5"
       sources."is-fullwidth-code-point-3.0.0"
-      sources."json-stringify-pretty-compact-2.0.0"
+      sources."json-stringify-pretty-compact-3.0.0"
       sources."require-directory-2.1.1"
-      sources."string-width-4.2.0"
+      sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
-      sources."tslib-2.0.3"
+      sources."tslib-2.1.0"
       sources."vega-event-selector-2.0.6"
-      sources."vega-expression-3.0.1"
-      sources."vega-util-1.16.0"
+      sources."vega-expression-4.0.1"
+      sources."vega-util-1.16.1"
       sources."wrap-ansi-7.0.0"
-      sources."y18n-5.0.5"
-      sources."yargs-16.0.3"
-      sources."yargs-parser-20.2.4"
+      sources."y18n-5.0.6"
+      sources."yargs-16.2.0"
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -106030,10 +109112,10 @@ in
   vim-language-server = nodeEnv.buildNodePackage {
     name = "vim-language-server";
     packageName = "vim-language-server";
-    version = "2.1.2";
+    version = "2.2.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vim-language-server/-/vim-language-server-2.1.2.tgz";
-      sha512 = "i+IVvvla+7oyXU3Mb1Vc4hCymCEUbRRhJE7/So+wZNZZgtVH4SNWwhtjzNV2l9egYAyCqJnJKKtErwgJnfAHsA==";
+      url = "https://registry.npmjs.org/vim-language-server/-/vim-language-server-2.2.1.tgz";
+      sha512 = "AJATzCMaiLr8I3qzjX5OH+G8vOijMWnN/AaS2D92+OM3SsdRHhlX6auNpzqaw8hcW4IbthV6EKtYM4lPqiHDdA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -106114,10 +109196,10 @@ in
   vscode-json-languageserver = nodeEnv.buildNodePackage {
     name = "vscode-json-languageserver";
     packageName = "vscode-json-languageserver";
-    version = "1.3.1";
+    version = "1.3.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vscode-json-languageserver/-/vscode-json-languageserver-1.3.1.tgz";
-      sha512 = "yP75lCPSZVkFUfA0pUA9yKu2OumueIIaht5i9c7XVwwm08PMt1GMDI8RNv/fPkUjU9uBnb5bJW20BHxWBATgrA==";
+      url = "https://registry.npmjs.org/vscode-json-languageserver/-/vscode-json-languageserver-1.3.4.tgz";
+      sha512 = "+ghebnslXk6fVDySBrT0BVqozLDdmKY/qxgkDD4JtOQcU2vXc3e7jh7YyMxvuvE93E9OLvBqUrvajttj8xf3BA==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -106126,22 +109208,21 @@ in
       sources."es6-promisify-5.0.0"
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
-      sources."jsonc-parser-2.3.1"
+      sources."jsonc-parser-3.0.0"
       sources."ms-2.0.0"
-      sources."request-light-0.3.0"
-      (sources."vscode-json-languageservice-3.11.0" // {
+      sources."request-light-0.4.0"
+      (sources."vscode-json-languageservice-4.0.2" // {
         dependencies = [
-          sources."jsonc-parser-3.0.0"
           sources."vscode-nls-5.0.0"
         ];
       })
-      sources."vscode-jsonrpc-6.0.0-next.2"
-      sources."vscode-languageserver-7.0.0-next.3"
-      sources."vscode-languageserver-protocol-3.16.0-next.4"
+      sources."vscode-jsonrpc-6.0.0"
+      sources."vscode-languageserver-7.0.0"
+      sources."vscode-languageserver-protocol-3.16.0"
       sources."vscode-languageserver-textdocument-1.0.1"
-      sources."vscode-languageserver-types-3.16.0-next.2"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-4.1.2"
-      sources."vscode-uri-2.1.2"
+      sources."vscode-uri-3.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -106212,7 +109293,7 @@ in
       sources."@types/json5-0.0.30"
       sources."@types/mocha-7.0.2"
       sources."@types/node-8.10.66"
-      sources."@types/vscode-1.53.0"
+      sources."@types/vscode-1.55.0"
       sources."@types/yauzl-2.9.1"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
@@ -106250,7 +109331,7 @@ in
       sources."array-unique-0.3.2"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       (sources."assert-1.5.0" // {
@@ -106263,7 +109344,7 @@ in
       sources."async-each-1.0.3"
       sources."atob-2.1.2"
       sources."azure-devops-node-api-7.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -106274,7 +109355,7 @@ in
       sources."binary-extensions-2.2.0"
       sources."bindings-1.5.0"
       sources."bluebird-3.7.2"
-      sources."bn.js-5.1.3"
+      sources."bn.js-5.2.0"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -106366,7 +109447,7 @@ in
       sources."core-util-is-1.0.2"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."create-hash-1.2.0"
@@ -106387,14 +109468,14 @@ in
       sources."diff-3.5.0"
       (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."dom-serializer-1.2.0"
       sources."domain-browser-1.2.0"
-      sources."domelementtype-2.1.0"
-      sources."domhandler-4.0.0"
-      sources."domutils-2.4.4"
+      sources."domelementtype-2.2.0"
+      sources."domhandler-4.1.0"
+      sources."domutils-2.5.1"
       (sources."duplexify-3.7.1" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -106404,7 +109485,7 @@ in
       })
       (sources."elliptic-6.5.4" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."emoji-regex-7.0.3"
@@ -106420,7 +109501,7 @@ in
       })
       sources."entities-2.1.0"
       sources."errno-0.1.8"
-      (sources."es-abstract-1.18.0-next.2" // {
+      (sources."es-abstract-1.18.0" // {
         dependencies = [
           sources."object.assign-4.1.2"
         ];
@@ -106435,7 +109516,7 @@ in
         ];
       })
       sources."estraverse-4.3.0"
-      sources."events-3.2.0"
+      sources."events-3.3.0"
       sources."evp_bytestokey-1.0.3"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -106504,7 +109585,7 @@ in
       sources."get-intrinsic-1.1.1"
       sources."get-value-2.0.6"
       sources."glob-7.1.3"
-      sources."glob-parent-5.1.1"
+      sources."glob-parent-5.1.2"
       (sources."global-modules-2.0.0" // {
         dependencies = [
           sources."global-prefix-3.0.0"
@@ -106514,8 +109595,9 @@ in
       sources."graceful-fs-4.2.6"
       sources."growl-1.10.5"
       sources."has-1.0.3"
+      sources."has-bigints-1.0.1"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -106539,7 +109621,7 @@ in
       sources."he-1.2.0"
       sources."hmac-drbg-1.0.1"
       sources."homedir-polyfill-1.0.3"
-      sources."htmlparser2-6.0.0"
+      sources."htmlparser2-6.0.1"
       sources."https-browserify-1.0.0"
       sources."ieee754-1.2.1"
       sources."iferr-0.1.5"
@@ -106551,7 +109633,9 @@ in
       sources."ini-1.3.8"
       sources."interpret-1.4.0"
       sources."is-accessor-descriptor-1.0.0"
+      sources."is-bigint-1.0.1"
       sources."is-binary-path-2.1.0"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-2.0.5"
       sources."is-callable-1.2.3"
       sources."is-data-descriptor-1.0.0"
@@ -106563,8 +109647,10 @@ in
       sources."is-glob-4.0.1"
       sources."is-negative-zero-2.0.1"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-plain-object-2.0.4"
       sources."is-regex-1.1.2"
+      sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
@@ -106581,7 +109667,7 @@ in
       sources."loader-runner-2.4.0"
       sources."loader-utils-1.4.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."log-symbols-3.0.0"
       sources."lru-cache-5.1.1"
       sources."make-dir-2.1.0"
@@ -106625,7 +109711,7 @@ in
       })
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."mime-1.6.0"
@@ -106683,7 +109769,7 @@ in
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.0"
-      sources."object.getownpropertydescriptors-2.1.1"
+      sources."object.getownpropertydescriptors-2.1.2"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
       sources."os-0.1.1"
@@ -106725,7 +109811,7 @@ in
       sources."prr-1.0.1"
       (sources."public-encrypt-4.0.3" // {
         dependencies = [
-          sources."bn.js-4.11.9"
+          sources."bn.js-4.12.0"
         ];
       })
       sources."pump-3.0.0"
@@ -106853,8 +109939,8 @@ in
       sources."stream-shift-1.0.1"
       sources."string-argv-0.3.1"
       sources."string-width-2.1.1"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-0.10.31"
       sources."strip-ansi-4.0.0"
       sources."strip-json-comments-2.0.1"
@@ -106897,6 +109983,7 @@ in
       sources."typedarray-0.0.6"
       sources."typescript-3.9.9"
       sources."uc.micro-1.0.6"
+      sources."unbox-primitive-1.0.1"
       sources."underscore-1.8.3"
       sources."union-value-1.0.1"
       sources."unique-filename-1.1.1"
@@ -106928,11 +110015,11 @@ in
         ];
       })
       sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."vm-browserify-1.1.2"
-      sources."vsce-1.85.0"
-      sources."vscode-debugadapter-testsupport-1.44.0"
-      sources."vscode-debugprotocol-1.44.0"
+      sources."vsce-1.87.1"
+      sources."vscode-debugadapter-testsupport-1.46.0"
+      sources."vscode-debugprotocol-1.46.0"
       (sources."watchpack-1.7.5" // {
         dependencies = [
           sources."chokidar-3.5.1"
@@ -106971,6 +110058,7 @@ in
       })
       sources."webpack-sources-1.4.3"
       sources."which-1.3.1"
+      sources."which-boxed-primitive-1.0.2"
       sources."which-module-2.0.0"
       sources."wide-align-1.1.3"
       sources."worker-farm-1.7.0"
@@ -106985,7 +110073,7 @@ in
       sources."xtend-4.0.2"
       sources."y18n-4.0.1"
       sources."yallist-3.1.1"
-      sources."yaml-1.10.0"
+      sources."yaml-1.10.2"
       (sources."yargs-13.3.2" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -107032,7 +110120,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bl-1.2.3"
@@ -107115,7 +110203,7 @@ in
       sources."got-6.7.1"
       sources."graceful-fs-4.2.6"
       sources."gray-matter-2.1.1"
-      sources."handlebars-4.7.6"
+      sources."handlebars-4.7.7"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       (sources."has-ansi-2.0.0" // {
@@ -107155,7 +110243,7 @@ in
       sources."jsonfile-2.4.0"
       sources."jsprim-1.4.1"
       sources."klaw-1.3.1"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."log-symbols-2.2.0"
       sources."lowercase-keys-1.0.1"
       (sources."make-dir-1.3.0" // {
@@ -107172,8 +110260,8 @@ in
           sources."supports-color-2.0.0"
         ];
       })
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -107216,7 +110304,7 @@ in
       sources."restore-cursor-2.0.0"
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."seek-bzip-1.0.6"
@@ -107258,7 +110346,7 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.12.7"
+      sources."uglify-js-3.13.3"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
@@ -107301,7 +110389,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.12.13"
+      sources."@babel/highlight-7.13.10"
       sources."@emmetio/extract-abbreviation-0.1.6"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -107317,7 +110405,7 @@ in
       sources."@starptech/rehype-webparser-0.10.0"
       sources."@starptech/webparser-0.10.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -107363,7 +110451,7 @@ in
       })
       sources."babel-runtime-6.26.0"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -107413,7 +110501,7 @@ in
         dependencies = [
           sources."braces-3.0.2"
           sources."fill-range-7.0.1"
-          sources."glob-parent-5.1.1"
+          sources."glob-parent-5.1.2"
           sources."is-number-7.0.0"
           sources."to-regex-range-5.0.1"
         ];
@@ -107517,7 +110605,7 @@ in
           sources."eslint-scope-5.1.1"
           sources."espree-6.2.1"
           sources."ms-2.1.2"
-          sources."vue-eslint-parser-7.4.1"
+          sources."vue-eslint-parser-7.6.0"
         ];
       })
       sources."eslint-scope-4.0.3"
@@ -107721,7 +110809,7 @@ in
       sources."load-json-file-4.0.0"
       sources."load-plugin-2.3.1"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.assign-4.2.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.iteratee-4.7.0"
@@ -107903,7 +110991,7 @@ in
         ];
       })
       sources."readable-stream-2.3.7"
-      sources."readdirp-3.5.0"
+      sources."readdirp-3.6.0"
       sources."redent-2.0.0"
       sources."regenerator-runtime-0.11.1"
       sources."regex-not-1.0.2"
@@ -107932,7 +111020,7 @@ in
       sources."run-async-2.4.1"
       sources."rx-lite-4.0.8"
       sources."rx-lite-aggregates-4.0.8"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -108156,7 +111244,7 @@ in
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
+          sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
           sources."supports-color-6.1.0"
         ];
@@ -108228,15 +111316,15 @@ in
   web-ext = nodeEnv.buildNodePackage {
     name = "web-ext";
     packageName = "web-ext";
-    version = "5.5.0";
+    version = "6.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/web-ext/-/web-ext-5.5.0.tgz";
-      sha512 = "f+NHiYwbTS0X6eSLkBDWoCYkkIJweVazGf4MD8S+kRX/5z40WsYsnRdVWG+p34Z6rCyNvlHHrnO2S1W8WWg7Tw==";
+      url = "https://registry.npmjs.org/web-ext/-/web-ext-6.0.0.tgz";
+      sha512 = "djjTY89kM5ULdKYQo+6TYJSlT+0zNkanW5hQJNybOqGyovUYpH7C3Ns9Pd1cy6ApbmG2VV4Gds9u4yCSuRfHUw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.12.13" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -108246,35 +111334,27 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/polyfill-7.12.1"
-      sources."@babel/runtime-7.12.5"
-      sources."@cliqz-oss/firefox-client-0.3.1"
-      sources."@cliqz-oss/node-firefox-connect-1.2.1"
+      sources."@babel/runtime-7.13.9"
       sources."@devicefarmer/adbkit-2.11.3"
       sources."@devicefarmer/adbkit-logcat-1.1.0"
       sources."@devicefarmer/adbkit-monkey-1.0.1"
-      (sources."@eslint/eslintrc-0.2.2" // {
+      (sources."@eslint/eslintrc-0.4.0" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
-      sources."@mdn/browser-compat-data-2.0.7"
+      sources."@mdn/browser-compat-data-3.1.3"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.26"
+      sources."@types/minimatch-3.0.4"
+      sources."@types/node-14.14.37"
       sources."@types/yauzl-2.9.1"
-      sources."JSONSelect-0.2.1"
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
-      (sources."addons-linter-2.13.1" // {
-        dependencies = [
-          sources."yargs-16.1.1"
-        ];
-      })
-      sources."addons-scanner-utils-4.0.0"
-      sources."adm-zip-0.4.16"
+      sources."addons-linter-2.21.0"
+      sources."addons-scanner-utils-4.2.0"
+      sources."adm-zip-0.5.5"
       sources."ajv-6.12.6"
       sources."ajv-merge-patch-4.1.0"
       (sources."ansi-align-3.0.0" // {
@@ -108290,8 +111370,7 @@ in
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.3.0"
       sources."any-promise-1.3.0"
-      sources."anymatch-3.1.1"
-      (sources."archiver-5.0.2" // {
+      (sources."archiver-5.2.0" // {
         dependencies = [
           sources."async-3.2.0"
         ];
@@ -108300,59 +111379,41 @@ in
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
         ];
       })
       sources."argparse-1.0.10"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
       sources."array-differ-3.0.0"
       sources."array-filter-0.0.1"
       sources."array-map-0.0.0"
       sources."array-reduce-0.0.0"
       sources."array-union-2.1.0"
-      sources."array-unique-0.3.2"
       sources."arrify-2.0.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
-      sources."assign-symbols-1.0.0"
-      sources."astral-regex-1.0.0"
+      sources."astral-regex-2.0.0"
       sources."async-0.2.10"
-      sources."async-each-1.0.3"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      sources."atob-2.1.2"
       sources."atomic-sleep-1.0.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."binary-extensions-2.2.0"
-      sources."bindings-1.5.0"
       sources."bl-4.1.0"
       sources."bluebird-2.9.34"
       sources."boolbase-1.0.0"
-      (sources."boxen-4.2.0" // {
+      (sources."boxen-5.0.1" // {
         dependencies = [
-          sources."camelcase-5.3.1"
-          sources."chalk-3.0.0"
+          sources."type-fest-0.20.2"
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
       sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."buffer-equal-constant-time-1.0.1"
       sources."buffer-from-1.1.1"
-      sources."bunyan-1.8.14"
-      sources."cache-base-1.0.1"
+      sources."bunyan-1.8.15"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."lowercase-keys-2.0.0"
@@ -108360,39 +111421,17 @@ in
       })
       sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
-      sources."camelcase-6.0.0"
+      sources."camelcase-6.2.0"
       sources."caseless-0.12.0"
       sources."chalk-4.1.0"
-      sources."cheerio-1.0.0-rc.3"
-      (sources."chokidar-3.5.1" // {
-        dependencies = [
-          sources."fsevents-2.3.2"
-        ];
-      })
+      sources."cheerio-1.0.0-rc.5"
+      sources."cheerio-select-tmp-0.1.1"
       (sources."chrome-launcher-0.13.4" // {
         dependencies = [
           sources."mkdirp-0.5.5"
-          sources."rimraf-3.0.2"
         ];
       })
       sources."ci-info-2.0.0"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."cli-boxes-2.2.1"
       (sources."cliui-7.0.4" // {
         dependencies = [
@@ -108402,40 +111441,34 @@ in
       })
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
-      sources."collection-visit-1.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."colorette-1.2.1"
-      sources."colors-0.5.1"
+      sources."colorette-1.2.2"
       sources."columnify-1.5.4"
       sources."combined-stream-1.0.8"
       sources."commander-2.20.3"
       sources."common-tags-1.8.0"
-      sources."component-emitter-1.3.0"
-      sources."compress-commons-4.0.2"
+      sources."compress-commons-4.1.0"
       sources."concat-map-0.0.1"
       (sources."concat-stream-1.6.2" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
         ];
       })
       sources."configstore-5.0.1"
-      sources."copy-descriptor-0.1.1"
-      sources."core-js-2.6.12"
+      sources."core-js-3.8.3"
       sources."core-util-is-1.0.2"
       sources."crc-32-1.2.0"
       sources."crc32-stream-4.0.2"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."css-select-1.2.0"
-      sources."css-what-2.1.3"
+      sources."css-select-3.1.2"
+      sources."css-what-4.0.0"
       sources."dashdash-1.14.1"
       sources."debounce-1.2.0"
       sources."debug-2.6.9"
-      sources."decamelize-4.0.0"
-      sources."decode-uri-component-0.2.0"
+      sources."decamelize-5.0.0"
       sources."decompress-response-3.3.0"
       sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
@@ -108445,19 +111478,18 @@ in
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
-      sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
-      (sources."dispensary-0.59.0" // {
+      (sources."dispensary-0.61.0" // {
         dependencies = [
           sources."async-3.2.0"
-          sources."yargs-16.1.1"
+          sources."pino-6.9.0"
         ];
       })
       sources."doctrine-3.0.0"
-      sources."dom-serializer-0.1.1"
-      sources."domelementtype-1.3.1"
-      sources."domhandler-2.4.2"
-      sources."domutils-1.5.1"
+      sources."dom-serializer-1.2.0"
+      sources."domelementtype-2.2.0"
+      sources."domhandler-4.1.0"
+      sources."domutils-2.5.1"
       sources."dot-prop-5.3.0"
       sources."dtrace-provider-0.8.8"
       sources."duplexer3-0.1.4"
@@ -108466,15 +111498,14 @@ in
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
-      sources."entities-1.1.2"
+      sources."entities-2.1.0"
       sources."error-ex-1.3.2"
       sources."es6-error-4.1.1"
-      sources."es6-promise-2.3.0"
       sources."es6-promisify-6.1.1"
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.14.0" // {
+      (sources."eslint-7.21.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."debug-4.3.2"
@@ -108490,7 +111521,7 @@ in
         ];
       })
       sources."eslint-visitor-keys-2.0.0"
-      (sources."espree-7.3.0" // {
+      (sources."espree-7.3.1" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
         ];
@@ -108511,36 +111542,7 @@ in
       sources."event-to-promise-0.8.0"
       sources."execa-4.1.0"
       sources."exit-on-epipe-1.0.1"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
       (sources."fast-json-patch-2.2.1" // {
@@ -108553,38 +111555,28 @@ in
       sources."fast-redact-3.0.0"
       sources."fast-safe-stringify-2.0.7"
       sources."fd-slicer-1.1.0"
-      sources."file-entry-cache-5.0.1"
-      sources."file-uri-to-path-1.0.0"
-      sources."fill-range-7.0.1"
-      sources."find-up-4.1.0"
-      (sources."firefox-profile-4.0.0" // {
+      sources."file-entry-cache-6.0.1"
+      (sources."firefox-profile-4.1.0" // {
         dependencies = [
-          sources."async-2.5.0"
-          sources."fs-extra-4.0.3"
+          sources."fs-extra-9.0.1"
+          sources."uuid-8.3.2"
         ];
       })
       sources."first-chunk-stream-3.0.0"
-      sources."flat-cache-2.0.1"
+      sources."flat-cache-3.0.4"
       sources."flatstr-1.0.12"
-      sources."flatted-2.0.2"
+      sources."flatted-3.1.1"
       sources."fluent-syntax-0.13.0"
-      sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fragment-cache-0.2.1"
       sources."fs-constants-1.0.0"
-      (sources."fs-extra-9.0.1" // {
+      (sources."fs-extra-9.1.0" // {
         dependencies = [
-          (sources."jsonfile-6.1.0" // {
-            dependencies = [
-              sources."universalify-2.0.0"
-            ];
-          })
-          sources."universalify-1.0.0"
+          sources."universalify-2.0.0"
         ];
       })
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.2.1"
+      sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       (sources."fx-runner-1.0.13" // {
@@ -108597,15 +111589,11 @@ in
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-5.2.0"
-      sources."get-value-2.0.6"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      (sources."global-dirs-2.1.0" // {
-        dependencies = [
-          sources."ini-1.3.7"
-        ];
-      })
+      sources."glob-parent-5.1.2"
+      sources."glob-to-regexp-0.4.1"
+      sources."global-dirs-3.0.0"
       sources."globals-12.4.0"
       (sources."got-9.6.0" // {
         dependencies = [
@@ -108619,80 +111607,66 @@ in
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
-      sources."has-symbols-1.0.1"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."kind-of-4.0.0"
-        ];
-      })
+      sources."has-symbols-1.0.2"
       sources."has-yarn-2.1.0"
-      sources."htmlparser2-3.10.1"
+      sources."htmlparser2-6.0.1"
       sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
       sources."human-signals-1.1.1"
+      sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-4.0.6"
+      sources."immediate-3.0.6"
       sources."import-fresh-3.3.0"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.8"
+      sources."ini-2.0.0"
       sources."invert-kv-3.0.1"
       sources."is-absolute-0.1.7"
-      sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
-      sources."is-binary-path-2.1.0"
-      sources."is-buffer-1.1.6"
+      sources."is-boolean-object-1.1.0"
       sources."is-ci-2.0.0"
-      sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
-      sources."is-descriptor-1.0.2"
-      sources."is-docker-2.1.1"
-      sources."is-extendable-0.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
-      sources."is-installed-globally-0.3.2"
+      sources."is-installed-globally-0.4.0"
       sources."is-mergeable-object-1.1.1"
       sources."is-npm-5.0.0"
-      sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.2"
-      sources."is-plain-object-2.0.4"
+      sources."is-path-inside-3.0.3"
       sources."is-regex-1.1.2"
       sources."is-relative-0.1.3"
       sources."is-stream-2.0.0"
+      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
-      sources."is-windows-1.0.2"
       sources."is-wsl-2.2.0"
       sources."is-yarn-global-0.3.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
-      sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."jed-1.1.1"
-      sources."jetpack-id-1.0.0"
-      sources."js-select-0.6.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-merge-patch-0.2.3"
-      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-4.0.0"
+      (sources."jsonfile-6.1.0" // {
+        dependencies = [
+          sources."universalify-2.0.0"
+        ];
+      })
       sources."jsonify-0.0.0"
       (sources."jsonwebtoken-8.5.1" // {
         dependencies = [
@@ -108701,25 +111675,29 @@ in
         ];
       })
       sources."jsprim-1.4.1"
-      sources."jszip-2.6.1"
+      (sources."jszip-3.6.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
       sources."jwa-1.4.1"
       sources."jws-3.2.2"
       sources."keyv-3.1.0"
-      sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
       (sources."lazystream-1.0.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
         ];
       })
       sources."lcid-3.1.1"
       sources."levn-0.4.1"
+      sources."lie-3.3.0"
       sources."lighthouse-logger-1.2.0"
       sources."lines-and-columns-1.1.6"
-      sources."locate-path-5.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
@@ -108730,55 +111708,29 @@ in
       sources."lodash.isplainobject-4.0.6"
       sources."lodash.isstring-4.0.1"
       sources."lodash.once-4.1.1"
-      sources."lodash.sortby-4.7.0"
+      sources."lodash.truncate-4.4.2"
       sources."lodash.union-4.6.0"
       sources."lowercase-keys-1.0.1"
+      sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."map-age-cleaner-0.1.3"
-      sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
       sources."marky-1.2.1"
       sources."mem-5.1.1"
       sources."merge-stream-2.0.0"
-      (sources."micromatch-3.1.10" // {
-        dependencies = [
-          (sources."braces-2.3.2" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          (sources."fill-range-4.0.0" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."to-regex-range-2.1.1"
-        ];
-      })
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
       sources."mkdirp-1.0.4"
       sources."moment-2.29.1"
       sources."ms-2.0.0"
-      sources."multimatch-4.0.0"
+      sources."multimatch-5.0.0"
       (sources."mv-2.1.1" // {
         dependencies = [
           sources."glob-6.0.4"
@@ -108788,15 +111740,18 @@ in
       })
       sources."mz-2.7.0"
       sources."nan-2.14.2"
-      sources."nanoid-3.1.20"
-      sources."nanomatch-1.2.13"
+      sources."nanoid-3.1.22"
       sources."natural-compare-1.4.0"
       sources."natural-compare-lite-1.4.0"
       sources."ncp-2.0.0"
-      sources."neo-async-2.6.2"
-      sources."next-tick-1.1.0"
+      (sources."needle-2.6.0" // {
+        dependencies = [
+          sources."debug-3.2.7"
+          sources."ms-2.1.3"
+        ];
+      })
       sources."node-forge-0.10.0"
-      (sources."node-notifier-8.0.1" // {
+      (sources."node-notifier-9.0.0" // {
         dependencies = [
           sources."uuid-8.3.2"
         ];
@@ -108804,38 +111759,20 @@ in
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
       sources."npm-run-path-4.0.1"
-      sources."nth-check-1.0.2"
+      sources."nth-check-2.0.0"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
-      sources."object-visit-1.0.1"
-      sources."object.pick-1.3.0"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."open-7.3.0"
+      sources."open-7.4.2"
       sources."optionator-0.9.1"
       sources."os-locale-5.0.0"
       sources."os-shim-0.1.3"
       sources."p-cancelable-1.1.0"
       sources."p-defer-1.0.0"
       sources."p-is-promise-2.1.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-4.1.0"
-      sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -108843,24 +111780,24 @@ in
       })
       sources."pako-1.0.11"
       sources."parent-module-1.0.1"
-      sources."parse-json-5.0.1"
-      sources."parse5-3.0.3"
-      sources."pascalcase-0.1.1"
-      sources."path-dirname-1.0.2"
-      sources."path-exists-4.0.0"
+      sources."parse-json-5.2.0"
+      sources."parse5-6.0.1"
+      sources."parse5-htmlparser2-tree-adapter-6.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
-      sources."picomatch-2.2.2"
-      sources."pino-6.7.0"
+      (sources."pino-6.11.1" // {
+        dependencies = [
+          sources."pino-std-serializers-3.2.0"
+        ];
+      })
       sources."pino-std-serializers-2.5.0"
-      sources."posix-character-classes-0.1.1"
-      sources."postcss-8.1.10"
+      sources."postcss-8.2.7"
       sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
       sources."printj-1.1.2"
-      sources."probe-image-size-5.0.0"
+      sources."probe-image-size-6.0.0"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."psl-1.8.0"
@@ -108868,17 +111805,16 @@ in
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
       sources."qs-6.5.2"
-      sources."quick-format-unescaped-4.0.1"
+      sources."quick-format-unescaped-4.0.3"
       (sources."rc-1.2.8" // {
         dependencies = [
+          sources."ini-1.3.8"
           sources."strip-json-comments-2.0.1"
         ];
       })
       sources."readable-stream-3.6.0"
       sources."readdir-glob-1.1.1"
-      sources."readdirp-3.5.0"
-      sources."regenerator-runtime-0.13.7"
-      sources."regex-not-1.0.2"
+      sources."regenerator-runtime-0.13.8"
       sources."regexp.prototype.flags-1.3.1"
       sources."regexpp-3.1.0"
       sources."registry-auth-token-4.2.1"
@@ -108893,119 +111829,52 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."remove-trailing-separator-1.1.0"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
-      sources."require-main-filename-2.0.0"
+      sources."require-from-string-2.0.2"
       sources."resolve-from-4.0.0"
-      sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
-      sources."ret-0.1.15"
-      sources."rimraf-2.6.3"
+      sources."rimraf-3.0.2"
       sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
-      sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.3.2"
+      sources."semver-7.3.4"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."set-blocking-2.0.0"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
+      sources."set-immediate-shim-1.0.1"
       sources."sha.js-2.4.11"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shell-quote-1.6.1"
       sources."shellwords-0.1.1"
-      (sources."sign-addon-3.1.0" // {
-        dependencies = [
-          sources."core-js-3.6.5"
-        ];
-      })
+      sources."sign-addon-3.3.0"
       sources."signal-exit-3.0.3"
-      (sources."slice-ansi-2.1.0" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."is-fullwidth-code-point-2.0.0"
-        ];
-      })
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-          sources."source-map-0.5.7"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."sonic-boom-1.3.2"
+      sources."slice-ansi-4.0.0"
+      sources."sonic-boom-1.4.1"
       sources."source-map-0.6.1"
-      sources."source-map-resolve-0.5.3"
       sources."source-map-support-0.5.19"
-      sources."source-map-url-0.4.1"
       sources."spawn-sync-1.0.15"
       sources."split-0.3.3"
-      sources."split-string-3.1.0"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."stream-parser-0.3.1"
       sources."stream-to-array-2.3.0"
       sources."stream-to-promise-3.0.0"
-      (sources."string-width-4.2.0" // {
+      (sources."string-width-4.2.2" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."strip-ansi-6.0.0"
         ];
       })
-      sources."string_decoder-1.3.0"
+      (sources."string_decoder-1.1.1" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
       sources."strip-ansi-3.0.1"
       sources."strip-bom-4.0.0"
       sources."strip-bom-buf-2.0.0"
@@ -109013,38 +111882,21 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-7.2.0"
-      (sources."table-5.4.6" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."ajv-8.0.5"
+          sources."json-schema-traverse-1.0.0"
         ];
       })
       sources."tar-stream-2.2.0"
-      sources."term-size-2.2.1"
       sources."text-table-0.2.0"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."through-2.3.8"
-      (sources."tmp-0.2.1" // {
-        dependencies = [
-          sources."rimraf-3.0.2"
-        ];
-      })
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
+      sources."tmp-0.2.1"
       sources."to-readable-stream-1.0.0"
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-5.0.1"
       sources."tosource-1.0.0"
       sources."tough-cookie-2.5.0"
-      sources."tr46-2.0.2"
-      sources."traverse-0.4.6"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.4.0"
@@ -109052,60 +111904,20 @@ in
       sources."type-fest-0.8.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."union-value-1.0.1"
       sources."unique-string-2.0.0"
-      sources."universalify-0.1.2"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
+      sources."universalify-1.0.0"
       sources."upath-2.0.1"
-      sources."update-notifier-5.0.0"
+      sources."update-notifier-5.1.0"
       sources."uri-js-4.4.1"
-      sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
-      sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."verror-1.10.0"
-      sources."vfile-location-3.2.0"
-      sources."watchpack-1.7.5"
-      (sources."watchpack-chokidar2-2.0.1" // {
-        dependencies = [
-          sources."anymatch-2.0.0"
-          sources."binary-extensions-1.13.1"
-          sources."braces-2.3.2"
-          sources."chokidar-2.1.8"
-          sources."extend-shallow-2.0.1"
-          sources."fill-range-4.0.0"
-          sources."fsevents-1.2.13"
-          sources."glob-parent-3.1.0"
-          sources."is-binary-path-1.0.1"
-          sources."is-glob-3.1.0"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."normalize-path-2.1.1"
-          sources."readable-stream-2.3.7"
-          sources."readdirp-2.2.1"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-          sources."to-regex-range-2.1.1"
-          sources."upath-1.2.0"
-        ];
-      })
+      sources."watchpack-2.1.1"
       sources."wcwidth-1.0.1"
-      sources."webidl-conversions-6.1.0"
-      sources."whatwg-url-8.4.0"
       sources."when-3.7.7"
       sources."which-2.0.2"
-      sources."which-module-2.0.0"
       sources."widest-line-3.1.0"
       sources."winreg-0.0.12"
       sources."word-wrap-1.2.3"
@@ -109116,37 +111928,22 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      (sources."write-1.0.3" // {
-        dependencies = [
-          sources."mkdirp-0.5.5"
-        ];
-      })
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.2"
+      sources."ws-7.4.3"
       sources."xdg-basedir-4.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."y18n-5.0.5"
-      (sources."yargs-15.4.1" // {
-        dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."camelcase-5.3.1"
-          sources."cliui-6.0.0"
-          sources."decamelize-1.2.0"
-          sources."strip-ansi-6.0.0"
-          sources."wrap-ansi-6.2.0"
-          sources."y18n-4.0.1"
-          sources."yargs-parser-18.1.3"
-        ];
-      })
-      sources."yargs-parser-20.2.4"
+      sources."y18n-5.0.6"
+      sources."yallist-4.0.0"
+      sources."yargs-16.2.0"
+      sources."yargs-parser-20.2.7"
       sources."yauzl-2.10.0"
-      (sources."zip-dir-1.0.2" // {
+      (sources."zip-dir-2.0.0" // {
         dependencies = [
-          sources."async-1.5.2"
+          sources."async-3.2.0"
         ];
       })
-      sources."zip-stream-4.0.4"
+      sources."zip-stream-4.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -109161,17 +111958,17 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "5.21.2";
+    version = "5.30.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-5.21.2.tgz";
-      sha512 = "xHflCenx+AM4uWKX71SWHhxml5aMXdy2tu/vdi4lClm7PADKxlyDAFFN1rEFzNV0MAoPpHtBeJnl/+K6F4QBPg==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-5.30.0.tgz";
+      sha512 = "Zr9NIri5yzpfmaMea2lSMV1UygbW0zQsSlGLMgKUm63ACXg6alhd1u4v5UBSBjzYKXJN6BNMGVM7w165e7NxYA==";
     };
     dependencies = [
-      sources."@types/eslint-7.2.6"
+      sources."@types/eslint-7.2.8"
       sources."@types/eslint-scope-3.7.0"
       sources."@types/estree-0.0.46"
       sources."@types/json-schema-7.0.7"
-      sources."@types/node-14.14.26"
+      sources."@types/node-14.14.37"
       sources."@webassemblyjs/ast-1.11.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
       sources."@webassemblyjs/helper-api-error-1.11.0"
@@ -109189,18 +111986,18 @@ in
       sources."@webassemblyjs/wast-printer-1.11.0"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.0.5"
+      sources."acorn-8.1.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
       sources."browserslist-4.16.3"
       sources."buffer-from-1.1.1"
-      sources."caniuse-lite-1.0.30001185"
+      sources."caniuse-lite-1.0.30001207"
       sources."chrome-trace-event-1.0.2"
-      sources."colorette-1.2.1"
+      sources."colorette-1.2.2"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.3.663"
+      sources."electron-to-chromium-1.3.708"
       sources."enhanced-resolve-5.7.0"
-      sources."es-module-lexer-0.3.26"
+      sources."es-module-lexer-0.4.1"
       sources."escalade-3.1.1"
       sources."eslint-scope-5.1.1"
       (sources."esrecurse-4.3.0" // {
@@ -109209,7 +112006,7 @@ in
         ];
       })
       sources."estraverse-4.3.0"
-      sources."events-3.2.0"
+      sources."events-3.3.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."glob-to-regexp-0.4.1"
@@ -109220,10 +112017,10 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."loader-runner-4.2.0"
       sources."merge-stream-2.0.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."neo-async-2.6.2"
-      sources."node-releases-1.1.70"
+      sources."node-releases-1.1.71"
       sources."p-limit-3.1.0"
       sources."punycode-2.1.1"
       sources."randombytes-2.1.0"
@@ -109235,7 +112032,7 @@ in
       sources."source-map-support-0.5.19"
       sources."supports-color-7.2.0"
       sources."tapable-2.2.0"
-      (sources."terser-5.5.1" // {
+      (sources."terser-5.6.1" // {
         dependencies = [
           sources."source-map-0.7.3"
         ];
@@ -109260,23 +112057,23 @@ in
   webpack-cli = nodeEnv.buildNodePackage {
     name = "webpack-cli";
     packageName = "webpack-cli";
-    version = "4.5.0";
+    version = "4.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.5.0.tgz";
-      sha512 = "wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==";
+      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz";
+      sha512 = "9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==";
     };
     dependencies = [
       sources."@discoveryjs/json-ext-0.5.2"
-      sources."@webpack-cli/configtest-1.0.1"
-      sources."@webpack-cli/info-1.2.2"
-      sources."@webpack-cli/serve-1.3.0"
+      sources."@webpack-cli/configtest-1.0.2"
+      sources."@webpack-cli/info-1.2.3"
+      sources."@webpack-cli/serve-1.3.1"
       sources."ansi-colors-4.1.1"
       sources."clone-deep-4.0.1"
-      sources."colorette-1.2.1"
-      sources."commander-7.0.0"
+      sources."colorette-1.2.2"
+      sources."commander-7.2.0"
       sources."cross-spawn-7.0.3"
       sources."enquirer-2.3.6"
-      sources."envinfo-7.7.4"
+      sources."envinfo-7.8.1"
       sources."execa-5.0.0"
       sources."fastest-levenshtein-1.0.12"
       sources."find-up-4.1.0"
@@ -109313,7 +112110,7 @@ in
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
       sources."strip-final-newline-2.0.0"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."webpack-merge-5.7.3"
       sources."which-2.0.2"
       sources."wildcard-2.0.0"
@@ -109321,7 +112118,6 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "CLI for webpack & friends";
-      homepage = "https://github.com/webpack/webpack-cli#readme";
       license = "MIT";
     };
     production = true;
@@ -109338,8 +112134,8 @@ in
     };
     dependencies = [
       sources."@types/glob-7.1.3"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.26"
+      sources."@types/minimatch-3.0.4"
+      sources."@types/node-14.14.37"
       sources."accepts-1.3.7"
       sources."ajv-6.12.6"
       sources."ajv-errors-1.0.1"
@@ -109365,7 +112161,7 @@ in
       sources."async-each-1.0.3"
       sources."async-limiter-1.0.1"
       sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -109459,7 +112255,7 @@ in
       sources."del-4.1.1"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."detect-node-2.0.4"
+      sources."detect-node-2.0.5"
       sources."dns-equal-1.0.0"
       sources."dns-packet-1.3.1"
       sources."dns-txt-2.0.2"
@@ -109471,7 +112267,7 @@ in
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."eventemitter3-4.0.7"
-      sources."eventsource-1.0.7"
+      sources."eventsource-1.1.0"
       sources."execa-1.0.0"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -109524,7 +112320,7 @@ in
         ];
       })
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."for-in-1.0.2"
       sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
@@ -109551,7 +112347,7 @@ in
       sources."handle-thing-2.0.1"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
+      sources."has-symbols-1.0.2"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -109610,7 +112406,7 @@ in
       sources."killable-1.0.1"
       sources."kind-of-6.0.3"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."loglevel-1.7.1"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
@@ -109620,8 +112416,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -109651,7 +112447,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-is-1.1.4"
+      sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
@@ -109788,7 +112584,7 @@ in
         ];
       })
       sources."sockjs-0.3.21"
-      (sources."sockjs-client-1.5.0" // {
+      (sources."sockjs-client-1.5.1" // {
         dependencies = [
           sources."debug-3.2.7"
           sources."ms-2.1.3"
@@ -109870,7 +112666,7 @@ in
           sources."punycode-1.3.2"
         ];
       })
-      sources."url-parse-1.4.7"
+      sources."url-parse-1.5.1"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
@@ -109879,7 +112675,7 @@ in
       sources."wbuf-1.7.3"
       (sources."webpack-dev-middleware-3.7.3" // {
         dependencies = [
-          sources."mime-2.5.0"
+          sources."mime-2.5.2"
         ];
       })
       sources."webpack-log-2.0.0"
@@ -109912,10 +112708,10 @@ in
   copy-webpack-plugin = nodeEnv.buildNodePackage {
     name = "copy-webpack-plugin";
     packageName = "copy-webpack-plugin";
-    version = "7.0.0";
+    version = "8.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-7.0.0.tgz";
-      sha512 = "SLjQNa5iE3BoCP76ESU9qYo9ZkEWtXoZxDurHoqPchAFRblJ9g96xTeC560UXBMre1Nx6ixIIUfiY3VcjpJw3g==";
+      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz";
+      sha512 = "rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.4"
@@ -109925,33 +112721,28 @@ in
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
       sources."array-union-2.1.0"
-      sources."big.js-5.2.2"
       sources."braces-3.0.2"
       sources."dir-glob-3.0.1"
-      sources."emojis-list-3.0.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.10.1"
+      sources."fastq-1.11.0"
       sources."fill-range-7.0.1"
-      sources."glob-parent-5.1.1"
-      sources."globby-11.0.2"
+      sources."glob-parent-5.1.2"
+      sources."globby-11.0.3"
       sources."ignore-5.1.8"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
       sources."json-schema-traverse-0.4.1"
-      sources."json5-2.2.0"
-      sources."loader-utils-2.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."minimist-1.2.5"
       sources."normalize-path-3.0.0"
       sources."p-limit-3.1.0"
       sources."path-type-4.0.0"
       sources."picomatch-2.2.2"
       sources."punycode-2.1.1"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."randombytes-2.1.0"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
@@ -109993,10 +112784,10 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.41"
+      sources."@types/node-13.13.48"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.3.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bencode-2.0.1"
       sources."bep53-range-1.1.0"
@@ -110032,7 +112823,7 @@ in
       })
       sources."blob-to-buffer-1.2.9"
       sources."block-stream2-2.1.0"
-      sources."bn.js-5.1.3"
+      sources."bn.js-5.2.0"
       sources."brace-expansion-1.1.11"
       sources."browserify-package-json-1.0.1"
       sources."buffer-6.0.3"
@@ -110058,7 +112849,7 @@ in
           sources."mime-1.6.0"
         ];
       })
-      sources."chunk-store-stream-4.2.0"
+      sources."chunk-store-stream-4.3.0"
       sources."clivas-0.2.0"
       sources."common-tags-1.8.0"
       sources."compact2string-1.4.1"
@@ -110071,7 +112862,8 @@ in
         ];
       })
       sources."core-util-is-1.0.2"
-      sources."create-torrent-4.5.0"
+      sources."cpus-1.0.3"
+      sources."create-torrent-4.6.0"
       sources."debug-2.6.9"
       sources."decompress-response-3.3.0"
       (sources."dlnacasts-0.1.0" // {
@@ -110110,7 +112902,7 @@ in
       sources."ip-set-2.1.0"
       sources."ipaddr.js-2.0.0"
       sources."is-ascii-1.0.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-file-1.0.0"
       sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
@@ -110120,7 +112912,7 @@ in
       sources."k-rpc-5.1.0"
       sources."k-rpc-socket-1.11.1"
       sources."last-one-wins-1.0.4"
-      (sources."load-ip-set-2.1.2" // {
+      (sources."load-ip-set-2.2.1" // {
         dependencies = [
           sources."decompress-response-6.0.0"
           sources."mimic-response-3.1.0"
@@ -110134,14 +112926,14 @@ in
       sources."mdns-js-packet-0.2.0"
       sources."mediasource-2.4.0"
       sources."memory-chunk-store-1.3.2"
-      sources."mime-2.5.0"
+      sources."mime-2.5.2"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-classic-0.5.3"
       sources."moment-2.29.1"
       sources."mp4-box-encoding-1.4.1"
-      sources."mp4-stream-3.1.2"
+      sources."mp4-stream-3.1.3"
       sources."ms-2.0.0"
       (sources."multicast-dns-6.2.3" // {
         dependencies = [
@@ -110150,7 +112942,7 @@ in
       })
       sources."multistream-4.1.0"
       sources."napi-macros-2.0.0"
-      sources."netmask-1.0.6"
+      sources."netmask-2.0.2"
       sources."network-address-1.1.2"
       sources."next-event-1.0.0"
       sources."node-gyp-build-4.2.3"
@@ -110158,7 +112950,7 @@ in
       sources."nodebmc-0.0.7"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."open-7.4.0"
+      sources."open-7.4.2"
       sources."package-json-versionify-1.0.4"
       (sources."parse-torrent-7.1.3" // {
         dependencies = [
@@ -110180,8 +112972,8 @@ in
       sources."protobufjs-6.10.2"
       sources."pump-3.0.0"
       sources."qap-3.3.1"
-      sources."queue-microtask-1.2.2"
-      sources."random-access-file-2.1.5"
+      sources."queue-microtask-1.2.3"
+      sources."random-access-file-2.2.0"
       sources."random-access-storage-1.4.1"
       sources."random-iterate-1.0.1"
       sources."randombytes-2.1.0"
@@ -110205,13 +112997,13 @@ in
       sources."semver-5.1.1"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
-      (sources."simple-peer-9.9.3" // {
+      (sources."simple-peer-9.10.0" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
-      sources."simple-sha1-3.0.1"
+      sources."simple-sha1-3.1.0"
       (sources."simple-websocket-9.1.0" // {
         dependencies = [
           sources."debug-4.3.2"
@@ -110240,7 +113032,7 @@ in
           sources."ms-2.1.2"
         ];
       })
-      sources."torrent-piece-2.0.0"
+      sources."torrent-piece-2.0.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."uint64be-2.0.2"
@@ -110258,10 +113050,10 @@ in
       sources."ut_pex-2.0.1"
       sources."utf-8-validate-5.0.4"
       sources."util-deprecate-1.0.2"
-      sources."utp-native-2.3.0"
+      sources."utp-native-2.4.0"
       sources."videostream-3.2.2"
       sources."vlc-command-1.2.0"
-      (sources."webtorrent-0.114.1" // {
+      (sources."webtorrent-0.116.1" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."decompress-response-6.0.0"
@@ -110275,7 +113067,7 @@ in
       })
       sources."winreg-1.2.4"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.3"
+      sources."ws-7.4.4"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xmldom-0.1.31"
@@ -110311,16 +113103,16 @@ in
   write-good = nodeEnv.buildNodePackage {
     name = "write-good";
     packageName = "write-good";
-    version = "1.0.6";
+    version = "1.0.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/write-good/-/write-good-1.0.6.tgz";
-      sha512 = "7oWy7O3sGnc7ht7pL0ki5SDIt746vgthEdoKT5ldFYkTQ2J7xJn998qHRiiR1SEpFhNZYd0gZUwoRN3xM/GSkQ==";
+      url = "https://registry.npmjs.org/write-good/-/write-good-1.0.8.tgz";
+      sha512 = "P1Ct7+DNrOcr2JAxDZ3Q5i5sx2LSveu7iLaoUL0A+YiG0GKf0l5+9j3rwMeyh6JeTL1+HfQV1rnwEvzhNIvpFw==";
     };
     dependencies = [
-      sources."adverb-where-0.2.1"
+      sources."adverb-where-0.2.2"
       sources."commander-2.20.3"
       sources."e-prime-0.10.4"
-      sources."no-cliches-0.2.2"
+      sources."no-cliches-0.3.0"
       sources."passive-voice-0.1.0"
       sources."too-wordy-0.3.1"
       sources."weasel-words-0.1.1"
@@ -110338,10 +113130,10 @@ in
   yaml-language-server = nodeEnv.buildNodePackage {
     name = "yaml-language-server";
     packageName = "yaml-language-server";
-    version = "0.15.0";
+    version = "0.17.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.15.0.tgz";
-      sha512 = "idaCYstdGoV5Pi7PKxbUkGHt6jAI3l+nxNWrsVCetxrEgfH6T7qytfT0pF3n4NdfDNPHPHcqnl69FzCFDVfHnQ==";
+      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.17.0.tgz";
+      sha512 = "jugQKTXkLDMq9J6ZN2hl+pTR2lDdSHV+bb8sCGO7//BSX7HFXlX2C5M4jghFeL4AAodBZ5WEHUzHoI7llm5p6g==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -110357,24 +113149,16 @@ in
       sources."ms-2.0.0"
       sources."request-light-0.2.5"
       sources."sprintf-js-1.0.3"
-      (sources."vscode-json-languageservice-3.11.0" // {
+      (sources."vscode-json-languageservice-4.0.2" // {
         dependencies = [
           sources."jsonc-parser-3.0.0"
-          sources."vscode-languageserver-types-3.16.0-next.2"
           sources."vscode-nls-5.0.0"
+          sources."vscode-uri-3.0.2"
         ];
       })
-      sources."vscode-jsonrpc-4.0.0"
-      (sources."vscode-languageserver-5.2.1" // {
-        dependencies = [
-          sources."vscode-uri-1.0.8"
-        ];
-      })
-      (sources."vscode-languageserver-protocol-3.14.1" // {
-        dependencies = [
-          sources."vscode-languageserver-types-3.14.0"
-        ];
-      })
+      sources."vscode-jsonrpc-6.0.0"
+      sources."vscode-languageserver-7.0.0"
+      sources."vscode-languageserver-protocol-3.16.0"
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-4.1.2"
@@ -110419,14 +113203,14 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.12.13"
-      sources."@babel/runtime-7.12.13"
+      sources."@babel/highlight-7.13.10"
+      sources."@babel/runtime-7.13.10"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@sindresorhus/is-0.7.0"
       sources."@types/glob-7.1.3"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.26"
+      sources."@types/minimatch-3.0.4"
+      sources."@types/node-14.14.37"
       sources."@types/normalize-package-data-2.4.0"
       sources."JSONStream-1.3.5"
       sources."aggregate-error-3.1.0"
@@ -110456,7 +113240,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."axios-0.21.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -110470,7 +113254,7 @@ in
       })
       sources."bin-version-check-3.0.0"
       sources."binaryextensions-2.3.0"
-      sources."boolean-3.0.2"
+      sources."boolean-3.0.3"
       (sources."boxen-1.3.0" // {
         dependencies = [
           sources."camelcase-4.1.0"
@@ -110519,14 +113303,7 @@ in
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-2.1.0"
       sources."cli-list-0.2.0"
-      (sources."cli-table-0.3.4" // {
-        dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
-          sources."strip-ansi-6.0.0"
-        ];
-      })
+      sources."cli-table-0.3.6"
       sources."cli-width-2.2.1"
       sources."clone-2.1.2"
       sources."clone-buffer-1.0.0"
@@ -110539,6 +113316,7 @@ in
       sources."collection-visit-1.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
+      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
       sources."commondir-1.0.1"
       sources."component-emitter-1.3.0"
@@ -110548,7 +113326,7 @@ in
       sources."config-chain-1.1.12"
       sources."configstore-3.1.5"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.8.3"
+      sources."core-js-3.10.0"
       sources."core-util-is-1.0.2"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-6.0.5"
@@ -110573,7 +113351,7 @@ in
       sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
-      sources."detect-node-2.0.4"
+      sources."detect-node-2.0.5"
       sources."diff-3.5.0"
       (sources."dir-glob-2.0.0" // {
         dependencies = [
@@ -110646,11 +113424,11 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."filter-obj-2.0.1"
+      sources."filter-obj-2.0.2"
       sources."find-up-2.1.0"
       sources."find-versions-2.0.0"
       sources."first-chunk-stream-2.0.0"
-      sources."follow-redirects-1.13.2"
+      sources."follow-redirects-1.13.3"
       sources."for-in-1.0.2"
       sources."foreachasync-3.0.0"
       sources."forever-agent-0.6.1"
@@ -110681,14 +113459,14 @@ in
         ];
       })
       sources."glob-to-regexp-0.3.0"
-      (sources."global-agent-2.1.12" // {
+      (sources."global-agent-2.2.0" // {
         dependencies = [
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
         ];
       })
       sources."global-dirs-0.1.1"
       sources."global-tunnel-ng-2.7.1"
-      sources."globalthis-1.0.1"
+      sources."globalthis-1.0.2"
       sources."globby-8.0.2"
       (sources."got-8.3.2" // {
         dependencies = [
@@ -110816,7 +113594,7 @@ in
       })
       sources."locate-path-2.0.0"
       sources."locutus-2.0.14"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lodash.debounce-4.0.8"
       sources."lodash.pad-4.5.1"
       sources."lodash.padend-4.6.1"
@@ -110862,8 +113640,8 @@ in
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-3.1.10"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -110933,7 +113711,7 @@ in
       sources."os-shim-0.1.3"
       sources."os-tmpdir-1.0.2"
       sources."p-any-2.1.0"
-      sources."p-cancelable-2.0.0"
+      sources."p-cancelable-2.1.0"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
@@ -110967,7 +113745,7 @@ in
       sources."pkg-up-2.0.0"
       sources."posix-character-classes-0.1.1"
       sources."prepend-http-2.0.0"
-      sources."pretty-bytes-5.5.0"
+      sources."pretty-bytes-5.6.0"
       sources."process-nextick-args-2.0.1"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
@@ -111008,7 +113786,7 @@ in
           sources."indent-string-2.1.0"
         ];
       })
-      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-runtime-0.13.8"
       sources."regex-not-1.0.2"
       sources."registry-auth-token-3.4.0"
       sources."registry-url-3.1.0"
@@ -111032,7 +113810,7 @@ in
       sources."root-check-1.0.0"
       sources."run-async-2.4.1"
       sources."rx-4.1.0"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -111271,7 +114049,7 @@ in
       sources."yeoman-doctor-4.0.0"
       (sources."yeoman-environment-2.10.3" // {
         dependencies = [
-          sources."ansi-escapes-4.3.1"
+          sources."ansi-escapes-4.3.2"
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.3.0"
           sources."cli-cursor-3.1.0"
@@ -111298,10 +114076,10 @@ in
           sources."onetime-5.1.2"
           sources."path-key-3.1.1"
           sources."restore-cursor-3.1.0"
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
-          (sources."string-width-4.2.0" // {
+          (sources."string-width-4.2.2" // {
             dependencies = [
               sources."strip-ansi-6.0.0"
             ];
@@ -111312,7 +114090,7 @@ in
             ];
           })
           sources."supports-color-7.2.0"
-          sources."type-fest-0.11.0"
+          sources."type-fest-0.21.3"
           sources."which-2.0.2"
         ];
       })
@@ -111350,7 +114128,7 @@ in
           sources."pify-4.0.1"
           sources."read-pkg-5.2.0"
           sources."read-pkg-up-5.0.0"
-          sources."semver-7.3.4"
+          sources."semver-7.3.5"
           sources."slash-2.0.0"
           sources."type-fest-0.6.0"
         ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/asn1-combinators/default.nix b/nixpkgs/pkgs/development/ocaml-modules/asn1-combinators/default.nix
index ddc181a49928..289f6a6cba4b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/asn1-combinators/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/asn1-combinators/default.nix
@@ -6,13 +6,13 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.05";
 
   pname = "asn1-combinators";
-  version = "0.2.4";
+  version = "0.2.5";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v${version}/asn1-combinators-v${version}.tbz";
-    sha256 = "09rn5wwqhwg7x51b9ycl15s7007hgha6lwaz2bpw85fr70jq3i9r";
+    sha256 = "1pbcdwm12hnfpd1jv2b7cjfkj5r7h61xp2gr8dysb8waa455kwln";
   };
 
   propagatedBuildInputs = [ cstruct zarith bigarray-compat stdlib-shims ptime ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/atd/default.nix b/nixpkgs/pkgs/development/ocaml-modules/atd/default.nix
index e4edac5fdc10..2f85221e539c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/atd/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/atd/default.nix
@@ -1,22 +1,22 @@
-{ lib, menhir, easy-format, fetchFromGitHub, buildDunePackage, which, biniou, yojson }:
+{ lib, menhir, easy-format, fetchurl, buildDunePackage, which, re }:
 
 buildDunePackage rec {
   pname = "atd";
-  version = "2.0.0";
+  version = "2.2.1";
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.02";
 
-  src = fetchFromGitHub {
-    owner = "mjambon";
-    repo = pname;
-    rev = version;
-    sha256 = "0alzmk97rxg7s6irs9lvf89dy9n3r769my5n4j9p9qyigcdgjaia";
+  src = fetchurl {
+    url = "https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz";
+    sha256 = "17jm79np69ixp53a4njxnlb1pg8sd1g47nm3nyki9clkc8d4qsyv";
   };
 
-  createFindlibDestdir = true;
-
   buildInputs = [ which menhir ];
-  propagatedBuildInputs = [ easy-format biniou yojson ];
+  propagatedBuildInputs = [ easy-format re ];
+
+  doCheck = true;
 
   meta = with lib; {
     homepage = "https://github.com/mjambon/atd";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/atdgen/default.nix b/nixpkgs/pkgs/development/ocaml-modules/atdgen/default.nix
index d8ef2fec9990..2537c92d97a5 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/atdgen/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/atdgen/default.nix
@@ -3,7 +3,7 @@
 let runtime =
   buildDunePackage {
     pname = "atdgen-runtime";
-    inherit (atd) version src;
+    inherit (atd) version useDune2 src;
 
     propagatedBuildInputs = [ biniou yojson ];
 
@@ -13,7 +13,7 @@ let runtime =
 
 buildDunePackage {
   pname = "atdgen";
-  inherit (atd) version src;
+  inherit (atd) version useDune2 src;
 
   buildInputs = [ atd ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix b/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix
index 9284bbaf9c62..94f254a2edfb 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix
@@ -2,28 +2,26 @@
 , ocaml, findlib, ocamlbuild, ocaml_oasis
 , bitstring, camlzip, cmdliner, core_kernel, ezjsonm, fileutils, ocaml_lwt, ocamlgraph, ocurl, re, uri, zarith, piqi, piqi-ocaml, uuidm, llvm, frontc, ounit, ppx_jane, parsexp
 , utop, libxml2, ncurses
+, linenoise
+, ppx_bap
 , ppx_bitstring
-, ppx_tools_versioned
+, yojson
 , which, makeWrapper, writeText
 , z3
 }:
 
-if !lib.versionAtLeast ocaml.version "4.07"
+if !lib.versionAtLeast ocaml.version "4.08"
 then throw "BAP is not available for OCaml ${ocaml.version}"
 else
 
-if lib.versionAtLeast core_kernel.version "0.13"
-then throw "BAP needs core_kernel-0.12 (hence OCaml 4.07)"
-else
-
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-bap-${version}";
-  version = "2.1.0";
+  version = "2.2.0";
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap";
     rev = "v${version}";
-    sha256 = "10fkr6p798ad18j4h9bvp9dg4pmjdpv3hmj7k389i0vhqniwi5xq";
+    sha256 = "0c53sps6ba9n5cjdmapi8ylzlpcc11pksijp9swzlwgxyz5d276f";
   };
 
   sigs = fetchurl {
@@ -41,12 +39,14 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ which makeWrapper ];
 
   buildInputs = [ ocaml findlib ocamlbuild ocaml_oasis
-                  llvm ppx_bitstring ppx_tools_versioned
+                  linenoise
+                  ounit
+                  ppx_bitstring
                   z3
                   utop libxml2 ncurses ];
 
-  propagatedBuildInputs = [ bitstring camlzip cmdliner ppx_jane core_kernel ezjsonm fileutils ocaml_lwt ocamlgraph ocurl re uri zarith piqi parsexp
-                            piqi-ocaml uuidm frontc ounit ];
+  propagatedBuildInputs = [ bitstring camlzip cmdliner ppx_bap core_kernel ezjsonm fileutils ocaml_lwt ocamlgraph ocurl re uri zarith piqi parsexp
+                            piqi-ocaml uuidm frontc yojson ];
 
   installPhase = ''
     export OCAMLPATH=$OCAMLPATH:$OCAMLFIND_DESTDIR;
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
   patches = [ ./curses_is_ncurses.patch ];
 
   preConfigure = ''
-    substituteInPlace oasis/elf --replace bitstring.ppx ppx_bitstring
+    substituteInPlace oasis/elf-loader --replace bitstring.ppx ppx_bitstring
   '';
 
   configureFlags = [ "--enable-everything ${disableIda}" "--with-llvm-config=${llvm}/bin/llvm-config" ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/base64/default.nix b/nixpkgs/pkgs/development/ocaml-modules/base64/default.nix
index de0bc13e2833..efb7f41b95dd 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/base64/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/base64/default.nix
@@ -1,20 +1,21 @@
-{ lib, fetchurl, buildDunePackage, alcotest, bos, dune-configurator }:
+{ lib, fetchurl, buildDunePackage, ocaml, alcotest, bos, rresult }:
 
 buildDunePackage rec {
   pname = "base64";
-  version = "3.4.0";
+  version = "3.5.0";
+
+  minimumOCamlVersion = "4.03";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-base64/releases/download/v${version}/base64-v${version}.tbz";
-    sha256 = "0d0n5gd4nkdsz14jnxq13f1f7rzxmndg5xql039a8wfppmazd70w";
+    sha256 = "sha256-WJ3pwAV46/54QZismBjTWGxHSyMWts0+HEbMsfYq46Q=";
   };
 
-  buildInputs = [ bos dune-configurator ];
-
-  doCheck = true;
-  checkInputs = [ alcotest ];
+  # otherwise fmt breaks evaluation
+  doCheck = lib.versionAtLeast ocaml.version "4.05";
+  checkInputs = [ alcotest bos rresult ];
 
   meta = {
     homepage = "https://github.com/mirage/ocaml-base64";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/batteries/default.nix b/nixpkgs/pkgs/development/ocaml-modules/batteries/default.nix
index d4b7f3ff9a12..7785a70e0509 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/batteries/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/batteries/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, qtest, num }:
 
-let version = "3.2.0"; in
+let version = "3.3.0"; in
 
 stdenv.mkDerivation {
   name = "ocaml${ocaml.version}-batteries-${version}";
 
   src = fetchurl {
     url = "https://github.com/ocaml-batteries-team/batteries-included/releases/download/v${version}/batteries-${version}.tar.gz";
-    sha256 = "0a77njgc6c6kz4rpwqgmnii7f1na6hzsa55nqqm3dndhq9xh628w";
+    sha256 = "002pqkcg18zx59hsf172wg6s7lwsiagp5sfvf5yssp7xxal5jdgx";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/bigarray-compat/default.nix b/nixpkgs/pkgs/development/ocaml-modules/bigarray-compat/default.nix
index 6d833b48f269..487249ce5ae5 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/bigarray-compat/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/bigarray-compat/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "bigarray-compat";
   version = "1.0.0";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner = "mirage";
     repo = pname;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/bigstring/default.nix b/nixpkgs/pkgs/development/ocaml-modules/bigstring/default.nix
index 98687262c33b..f966e0b90b1b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/bigstring/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/bigstring/default.nix
@@ -2,7 +2,9 @@
 
 buildDunePackage rec {
   pname = "bigstring";
-  version = "0.2";
+  version = "0.3";
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.03";
 
@@ -10,10 +12,11 @@ buildDunePackage rec {
     owner = "c-cube";
     repo = "ocaml-bigstring";
     rev = version;
-    sha256 = "0ypdf29cmwmjm3djr5ygz8ls81dl41a4iz1xx5gbcdpbrdiapb77";
+    sha256 = "0bkxwdcswy80f6rmx5wjza92xzq4rdqsb4a9fm8aav8bdqx021n8";
   };
 
-  doCheck = true;
+  # Circular dependency with bigstring-unix
+  doCheck = false;
 
   meta = with lib; {
     homepage = "https://github.com/c-cube/ocaml-bigstring";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/biniou/default.nix b/nixpkgs/pkgs/development/ocaml-modules/biniou/default.nix
index 8e0780ae6c5c..535b34b03dcd 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/biniou/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/biniou/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "biniou";
   version = "1.2.1";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner = "ocaml-community";
     repo = pname;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/bitstring/default.nix b/nixpkgs/pkgs/development/ocaml-modules/bitstring/default.nix
index 583017d9ddec..12ed4ae787da 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/bitstring/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/bitstring/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "bitstring";
-  version = "4.0.1";
+  version = "4.1.0";
 
   useDune2 = true;
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
     owner = "xguerin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1z7jmgljvp52lvn3ml2cp6gssxqp4sikwyjf6ym97cycbcw0fjjm";
+    sha256 = "0mghsl8b2zd2676mh1r9142hymhvzy9cw8kgkjmirxkn56wbf56b";
   };
 
   propagatedBuildInputs = [ stdlib-shims ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/bitstring/ppx.nix b/nixpkgs/pkgs/development/ocaml-modules/bitstring/ppx.nix
index ee0a8c51f732..4d391d3458dc 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/bitstring/ppx.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/bitstring/ppx.nix
@@ -3,6 +3,10 @@
 , ounit
 }:
 
+if !lib.versionAtLeast ppxlib.version "0.18.0"
+then throw "ppx_bitstring is not available with ppxlib-${ppxlib.version}"
+else
+
 buildDunePackage rec {
   pname = "ppx_bitstring";
   inherit (bitstring) version useDune2 src;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ca-certs/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ca-certs/default.nix
index 65b411c52d52..dacc181f751c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ca-certs/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ca-certs/default.nix
@@ -4,13 +4,13 @@
 
 buildDunePackage rec {
   pname = "ca-certs";
-  version = "0.1.3";
+  version = "0.2.0";
 
   minimumOCamlVersion = "4.07";
 
   src = fetchurl {
     url = "https://github.com/mirage/ca-certs/releases/download/v${version}/ca-certs-v${version}.tbz";
-    sha256 = "0jpghxjp2n8wx6ig0d2x87ycaql6mb92w8ai3xh3jb288m7g02zn";
+    sha256 = "15jfb5zvahs90jsfs7ridqihlka5198z2xrvplj8ddchxfmpx868";
   };
 
   useDune2 = true;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/camomile/default.nix b/nixpkgs/pkgs/development/ocaml-modules/camomile/default.nix
index 6bae728cafac..ec20eedd7688 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/camomile/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/camomile/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "camomile";
   version = "1.0.2";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner = "yoriyuki";
     repo = pname;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/carton/default.nix b/nixpkgs/pkgs/development/ocaml-modules/carton/default.nix
new file mode 100644
index 000000000000..31b864e29d32
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/carton/default.nix
@@ -0,0 +1,67 @@
+{ lib, buildDunePackage, fetchurl
+, ke, duff, decompress, cstruct, optint, bigstringaf, stdlib-shims
+, bigarray-compat, checkseum, logs, psq, fmt
+, result, rresult, fpath, base64, bos, digestif, mmap, alcotest
+, crowbar, alcotest-lwt, lwt, findlib, mirage-flow, cmdliner, hxd
+}:
+
+buildDunePackage rec {
+  pname = "carton";
+  version = "0.4.0";
+
+  useDune2 = true;
+  minimumOCamlVersion = "4.08";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/ocaml-git/releases/download/${pname}-v${version}/${pname}-${pname}-v${version}.tbz";
+    sha256 = "777f9692b83cd63570c17527a32c5045818ab9242d923cbbde72fc23d0da0140";
+  };
+
+  # remove changelogs for mimic and the git* packages
+  postPatch = ''
+    rm CHANGES.md CHANGES.mimic.md
+  '';
+
+  buildInputs = [
+    cmdliner
+    digestif
+    mmap
+    result
+    rresult
+    fpath
+    bos
+    hxd
+  ];
+  propagatedBuildInputs = [
+    ke
+    duff
+    decompress
+    cstruct
+    optint
+    bigstringaf
+    stdlib-shims
+    bigarray-compat
+    checkseum
+    logs
+    psq
+    fmt
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    base64
+    alcotest
+    alcotest-lwt
+    crowbar
+    lwt
+    findlib
+    mirage-flow
+  ];
+
+  meta = with lib; {
+    description = "Implementation of PACKv2 file in OCaml";
+    license = licenses.mit;
+    homepage = "https://github.com/mirage/ocaml-git";
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/carton/git.nix b/nixpkgs/pkgs/development/ocaml-modules/carton/git.nix
new file mode 100644
index 000000000000..ef41ff2b5947
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/carton/git.nix
@@ -0,0 +1,28 @@
+{ buildDunePackage, carton, carton-lwt
+, bigarray-compat, bigstringaf, lwt, fpath, result
+, mmap, fmt, decompress, astring
+, alcotest, alcotest-lwt, cstruct, logs
+, mirage-flow, rresult, ke
+}:
+
+buildDunePackage {
+  pname = "carton-git";
+
+  inherit (carton) version src useDune2 minimumOCamlVersion postPatch;
+
+  propagatedBuildInputs = [
+    carton
+    carton-lwt
+    bigarray-compat
+    bigstringaf
+    lwt
+    fpath
+    result
+    mmap
+    fmt
+    decompress
+    astring
+  ];
+
+  inherit (carton) meta;
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/carton/lwt.nix b/nixpkgs/pkgs/development/ocaml-modules/carton/lwt.nix
new file mode 100644
index 000000000000..024ff51559e4
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/carton/lwt.nix
@@ -0,0 +1,46 @@
+{ buildDunePackage, carton
+, lwt, decompress, optint, bigstringaf
+, alcotest, alcotest-lwt, cstruct, fmt, logs
+, mirage-flow, result, rresult, bigarray-compat
+, ke, base64, bos, checkseum, digestif, fpath, mmap
+, stdlib-shims
+, git-binary # pkgs.git
+}:
+
+buildDunePackage {
+  pname = "carton-lwt";
+
+  inherit (carton) version src useDune2 minimumOCamlVersion postPatch;
+
+  propagatedBuildInputs = [
+    carton
+    lwt
+    decompress
+    optint
+    bigstringaf
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    git-binary
+    alcotest
+    alcotest-lwt
+    cstruct
+    fmt
+    logs
+    mirage-flow
+    result
+    rresult
+    bigarray-compat
+    ke
+    base64
+    bos
+    checkseum
+    digestif
+    fpath
+    mmap
+    stdlib-shims
+  ];
+
+  inherit (carton) meta;
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix b/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix
index e664d17f215e..1cbc43bc2804 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix
@@ -1,11 +1,12 @@
 { lib, fetchurl, buildDunePackage
 , ppx_fields_conv, ppx_sexp_conv, stdlib-shims
 , base64, fieldslib, jsonm, re, stringext, uri-sexp
+, ocaml, fmt, alcotest
 }:
 
 buildDunePackage rec {
   pname = "cohttp";
-  version = "2.5.4";
+  version = "2.5.5";
 
   useDune2 = true;
 
@@ -13,13 +14,16 @@ buildDunePackage rec {
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-cohttp/releases/download/v${version}/cohttp-v${version}.tbz";
-    sha256 = "1q04spmki5zis5p5m1vs77i3k7ijm134j62g61071vblwx25z17a";
+    sha256 = "0ywmql4lp6ps2gd064ixbjzsdnnn5vk3pipm005sswl553qqwaim";
   };
 
   buildInputs = [ jsonm ppx_fields_conv ppx_sexp_conv ];
 
   propagatedBuildInputs = [ base64 fieldslib re stringext uri-sexp stdlib-shims ];
 
+  doCheck = lib.versionAtLeast ocaml.version "4.05";
+  checkInputs = [ fmt alcotest ];
+
   meta = {
     description = "HTTP(S) library for Lwt, Async and Mirage";
     license = lib.licenses.isc;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cpu/default.nix b/nixpkgs/pkgs/development/ocaml-modules/cpu/default.nix
index 083f00d5d5f1..33702ca18296 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cpu/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cpu/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "cpu";
   version = "2.0.0";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner = "UnixJunkie";
     repo   = pname;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cpuid/default.nix b/nixpkgs/pkgs/development/ocaml-modules/cpuid/default.nix
index 8adca8b956f6..a0c28bc92d9a 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cpuid/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cpuid/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "cpuid";
   version = "0.1.2";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.03";
 
   src = fetchurl {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/crowbar/default.nix b/nixpkgs/pkgs/development/ocaml-modules/crowbar/default.nix
index d05d15286bf7..e114e7d8433a 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/crowbar/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/crowbar/default.nix
@@ -5,6 +5,8 @@ buildDunePackage rec {
   pname = "crowbar";
   version = "0.2";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner  = "stedolan";
     repo   = pname;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix b/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix
index 26c064d6ff51..4bb83019dc5c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "csexp";
-  version = "1.3.2";
+  version = "1.4.0";
 
   useDune2 = true;
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
 
   src = fetchurl {
     url = "https://github.com/ocaml-dune/csexp/releases/download/${version}/csexp-${version}.tbz";
-    sha256 = "0jhwrxfjb0x31xj4g4b89fzw34sq19j0rq2hs2zyh1vz4xxl47zj";
+    sha256 = "sha256-jj1vyofxAqEm3ui3KioNFG8QQ5xHIY38FJ1Rvz7fNk4=";
   };
 
   propagatedBuildInputs = [ result ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ctypes/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ctypes/default.nix
index 9cb3a3d4cb87..f8ccffcf217f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ctypes/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ctypes/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, ocaml, findlib, libffi, pkg-config, ncurses, integers }:
+{ lib, stdenv, fetchzip, ocaml, findlib, libffi, pkg-config, ncurses, integers, bigarray-compat }:
 
 if !lib.versionAtLeast ocaml.version "4.02"
 then throw "ctypes is not available for OCaml ${ocaml.version}"
@@ -6,16 +6,16 @@ else
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-ctypes-${version}";
-  version = "0.17.1";
+  version = "0.18.0";
 
   src = fetchzip {
     url = "https://github.com/ocamllabs/ocaml-ctypes/archive/${version}.tar.gz";
-    sha256 = "16brmdnz7wi2z25qqhd5s5blyq4app6jbv6g9pa4vyg6h0nzbcys";
+    sha256 = "03zrbnl16m67ls0yfhq7a4k4238x6x6b3m456g4dw2yqwc153vks";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ocaml findlib ncurses ];
-  propagatedBuildInputs = [ integers libffi ];
+  propagatedBuildInputs = [ integers libffi bigarray-compat ];
 
   buildPhase =  ''
      make XEN=false libffi.config ctypes-base ctypes-stubs
diff --git a/nixpkgs/pkgs/development/ocaml-modules/decompress/default.nix b/nixpkgs/pkgs/development/ocaml-modules/decompress/default.nix
index 067fac33d455..d2cba68d732e 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/decompress/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/decompress/default.nix
@@ -1,22 +1,24 @@
 { lib, fetchurl, buildDunePackage
-, checkseum, cmdliner
-, alcotest, bos, camlzip, mmap, re
+, checkseum, bigarray-compat, optint, cmdliner
+, bigstringaf, alcotest, camlzip, base64, ctypes, fmt
 }:
 
 buildDunePackage rec {
-  version = "0.9.0";
+  version = "1.3.0";
   pname = "decompress";
 
+  minimumOCamlVersion = "4.07";
+
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/decompress/releases/download/v${version}/decompress-v${version}.tbz";
-    sha256 = "0fryhcvv96vfca51c7kqdn3n3canqsbbvfbi75ya6lca4lmpipbh";
+    sha256 = "de149896939be13fedec46a4581121d5ab74850a2241d08e6aa8ae4bb18c52c4";
   };
 
   buildInputs = [ cmdliner ];
-  propagatedBuildInputs = [ checkseum ];
-  checkInputs = lib.optionals doCheck [ alcotest bos camlzip mmap re ];
+  propagatedBuildInputs = [ optint bigarray-compat checkseum ];
+  checkInputs = [ alcotest bigstringaf ctypes fmt camlzip base64 ];
   doCheck = true;
 
   meta = {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/digestif/default.nix b/nixpkgs/pkgs/development/ocaml-modules/digestif/default.nix
index dd8a0f571649..e2501c60f5a1 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/digestif/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/digestif/default.nix
@@ -5,13 +5,13 @@
 
 buildDunePackage rec {
   pname = "digestif";
-  version = "0.9.0";
+  version = "1.0.0";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/digestif/releases/download/v${version}/digestif-v${version}.tbz";
-    sha256 = "0vk9prgjp46xs8qizq7szkj6mqjj2ymncs2016bc8zswcdc1a3q4";
+    sha256 = "11188ya6ksb0p0zvs6saz3qxv4a8pyy8m3sq35f3qfxrxhghqi99";
   };
 
   propagatedBuildInputs = [ bigarray-compat eqaf stdlib-shims ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/directories/default.nix b/nixpkgs/pkgs/development/ocaml-modules/directories/default.nix
new file mode 100644
index 000000000000..eae11953113b
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/directories/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, buildDunePackage }:
+
+buildDunePackage rec {
+  pname = "directories";
+  version = "0.2";
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.07";
+
+  src = fetchFromGitHub {
+    owner = "ocamlpro";
+    repo = pname;
+    rev = version;
+    sha256 = "0s7ginh0g0fhw8xf9v58cx99a8q9jqsf4i0p134m5qzf84qpjwff";
+  };
+
+  meta = {
+    homepage = "https://github.com/ocamlpro/directories";
+    description = "An OCaml library that provides configuration, cache and data paths (and more!) following the suitable conventions on Linux, macOS and Windows";
+    longDescription = ''
+      directories is an OCaml library that provides configuration, cache and
+      data paths (and more!) following the suitable conventions on Linux, macOS
+      and Windows. It is inspired by similar libraries for other languages such
+      as directories-jvm.
+
+      The following conventions are used: XDG Base Directory Specification and
+      xdg-user-dirs on Linux, Known Folders on Windows, Standard Directories on
+      macOS.
+    '';
+    license = lib.licenses.isc;
+    maintainers = with lib.maintainers; [ bcc32 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/dtoa/default.nix b/nixpkgs/pkgs/development/ocaml-modules/dtoa/default.nix
index 62fa7cd08c8b..da075f5c7982 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/dtoa/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/dtoa/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "dtoa";
   version = "0.3.2";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.02";
 
   src = fetchurl {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/duff/default.nix b/nixpkgs/pkgs/development/ocaml-modules/duff/default.nix
index 8c9dad42fd7a..a57f8564d9e1 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/duff/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/duff/default.nix
@@ -1,24 +1,29 @@
-{ lib, fetchurl, buildDunePackage
-, cstruct, fmt
-, bos, cmdliner, fpath, logs
-, alcotest
+{ lib, fetchurl, buildDunePackage, fetchpatch
+, stdlib-shims, bigarray-compat, fmt
+, alcotest, hxd, crowbar, bigstringaf
 }:
 
 buildDunePackage rec {
   pname = "duff";
-  version = "0.2";
+  version = "0.4";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/duff/releases/download/v${version}/duff-v${version}.tbz";
-    sha256 = "0bi081w4349cqc1n9jsjh1lrcqlnv3nycmvh9fniscv8lz1c0gjq";
+    sha256 = "4795e8344a2c2562e0ef6c44ab742334b5cd807637354715889741b20a461da4";
   };
 
-  buildInputs = [ bos cmdliner fpath logs ] ++ lib.optional doCheck alcotest;
-  propagatedBuildInputs = [ cstruct fmt ];
+  propagatedBuildInputs = [ stdlib-shims bigarray-compat fmt ];
 
   doCheck = true;
+  checkInputs = [
+    alcotest
+    crowbar
+    hxd
+    bigstringaf
+  ];
+
 
   meta = {
     description = "Pure OCaml implementation of libXdiff (Rabin’s fingerprint)";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix b/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix
index 4c845273d714..92d89afe398d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix
@@ -1,6 +1,7 @@
-{ stdenv, lib, fetchzip, which, ocsigen_server, ocaml,
+{ stdenv, lib, fetchzip, fetchpatch, which, ocsigen_server, ocaml,
   lwt_react,
   opaline, ppx_deriving, findlib
+, ocaml-migrate-parsetree
 , ppx_tools_versioned
 , js_of_ocaml-ocamlbuild, js_of_ocaml-ppx, js_of_ocaml-ppx_deriving_json
 , js_of_ocaml-lwt
@@ -22,7 +23,17 @@ stdenv.mkDerivation rec
     sha256 = "00m6v2k4mg8705dy41934lznl6gj91i6dk7p1nkaccm51nna25kz";
   };
 
-  buildInputs = [ ocaml which findlib js_of_ocaml-ocamlbuild js_of_ocaml-ppx_deriving_json opaline
+  patches = [
+    # Compatibility with js_of_ocaml >= 3.9.0, remove at next release
+    (fetchpatch {
+      url = "https://github.com/ocsigen/eliom/commit/4106a4217956f7b74a8ef3f73a1e1f55e02ade45.patch";
+      sha256 = "1cgbvpljn9x6zxirxf3rdjrsdwy319ykz3qq03c36cc40hy2w13p";
+    })
+  ];
+
+  buildInputs = [ ocaml which findlib js_of_ocaml-ocamlbuild
+    ocaml-migrate-parsetree
+    js_of_ocaml-ppx_deriving_json opaline
     ppx_tools_versioned
   ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix b/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix
index e2d2a2c5dc9f..5c93c111040b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix
@@ -1,10 +1,11 @@
 { stdenv, lib, fetchzip, buildDunePackage, camlp5
 , ppxlib, ppx_deriving, re, perl, ncurses
-, version ? "1.12.0"
+, version ? "1.13.0"
 }:
 with lib;
 let fetched = import ../../../build-support/coq/meta-fetch/default.nix
   {inherit lib stdenv fetchzip; } ({
+    release."1.13.0".sha256 = "0dmzy058m1mkndv90byjaik6lzzfk3aaac7v84mpmkv6my23bygr";
     release."1.12.0".sha256 = "1agisdnaq9wrw3r73xz14yrq3wx742i6j8i5icjagqk0ypmly2is";
     release."1.11.4".sha256 = "1m0jk9swcs3jcrw5yyw5343v8mgax238cjb03s8gc4wipw1fn9f5";
     releaseRev = v: "v${v}";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/encore/default.nix b/nixpkgs/pkgs/development/ocaml-modules/encore/default.nix
index dd05982c3cab..5924845c4f46 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/encore/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/encore/default.nix
@@ -1,19 +1,20 @@
 { lib, buildDunePackage, fetchurl, ocaml
-, fmt, bigstringaf, bigarray-compat
-, bigarray-overlap, angstrom, ke, alcotest }:
+, fmt, bigstringaf, angstrom, alcotest }:
 
 buildDunePackage rec {
   pname = "encore";
-  version = "0.5";
+  version = "0.8";
+
+  minimumOCamlVersion = "4.07";
 
   src = fetchurl {
     url = "https://github.com/mirage/encore/releases/download/v${version}/encore-v${version}.tbz";
-    sha256 = "15n0dla149k9h7migs76wap08z5402qcvxyqxzl887ha6isj3p9n";
+    sha256 = "a406bc9863b04bb424692045939d6c170a2bb65a98521ae5608d25b0559344f6";
   };
 
   useDune2 = true;
 
-  propagatedBuildInputs = [ angstrom ke fmt bigstringaf bigarray-compat bigarray-overlap ];
+  propagatedBuildInputs = [ angstrom fmt bigstringaf ];
   checkInputs = [ alcotest ];
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/extlib/default.nix b/nixpkgs/pkgs/development/ocaml-modules/extlib/default.nix
index a8b1810e51f1..5c7d36fcc08d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/extlib/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/extlib/default.nix
@@ -1,28 +1,29 @@
-{ stdenv, lib, fetchurl, ocaml, findlib, cppo, minimal ? true }:
+{ stdenv, lib, fetchurl, ocaml, findlib, cppo
+# De facto, option minimal seems to be the default. See the README.
+, minimal ? true
+}:
 
-assert lib.versionAtLeast (lib.getVersion ocaml) "3.11";
-
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-extlib-1.7.7";
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-extlib";
+  version = "1.7.8";
 
   src = fetchurl {
-    url = "http://ygrek.org.ua/p/release/ocaml-extlib/extlib-1.7.7.tar.gz";
-    sha256 = "1sxmzc1mx3kg62j8kbk0dxkx8mkf1rn70h542cjzrziflznap0s1";
+    url = "https://ygrek.org/p/release/ocaml-extlib/extlib-${version}.tar.gz";
+    sha256 = "0npq4hq3zym8nmlyji7l5cqk6drx2rkcx73d60rxqh5g8dla8p4k";
   };
 
   buildInputs = [ ocaml findlib cppo ];
 
   createFindlibDestdir = true;
+  dontConfigure = true;
 
-  dontConfigure = true;      # Skip configure
-  # De facto, option minimal=1 seems to be the default.  See the README.
-  buildPhase     = "make ${if minimal then "minimal=1" else ""} build";
-  installPhase   = "make ${if minimal then "minimal=1" else ""} install";
+  makeFlags = lib.optional minimal "minimal=1";
 
   meta = {
     homepage = "https://github.com/ygrek/ocaml-extlib";
     description = "Enhancements to the OCaml Standard Library modules";
-    license = lib.licenses.lgpl21;
+    license = lib.licenses.lgpl21Only;
     platforms = ocaml.meta.platforms or [];
+    maintainers = [ lib.maintainers.sternenseemann ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/faraday/async.nix b/nixpkgs/pkgs/development/ocaml-modules/faraday/async.nix
new file mode 100644
index 000000000000..666eb684925c
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/faraday/async.nix
@@ -0,0 +1,14 @@
+{ buildDunePackage, faraday, core, async }:
+
+buildDunePackage rec {
+  pname = "faraday-async";
+  inherit (faraday) version src useDune2;
+
+  minimumOCamlVersion = "4.08";
+
+  propagatedBuildInputs = [ faraday core async ];
+
+  meta = faraday.meta // {
+    description = "Async support for Faraday";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/faraday/lwt-unix.nix b/nixpkgs/pkgs/development/ocaml-modules/faraday/lwt-unix.nix
new file mode 100644
index 000000000000..23914de26575
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/faraday/lwt-unix.nix
@@ -0,0 +1,12 @@
+{ buildDunePackage, faraday, faraday-lwt, lwt }:
+
+buildDunePackage rec {
+  pname = "faraday-lwt-unix";
+  inherit (faraday) version src useDune2 minimumOCamlVersion;
+
+  propagatedBuildInputs = [ lwt faraday-lwt ];
+
+  meta = faraday.meta // {
+    description = "Lwt + Unix support for Faraday";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/faraday/lwt.nix b/nixpkgs/pkgs/development/ocaml-modules/faraday/lwt.nix
new file mode 100644
index 000000000000..7fe7319575c5
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/faraday/lwt.nix
@@ -0,0 +1,12 @@
+{ buildDunePackage, faraday, lwt }:
+
+buildDunePackage rec {
+  pname = "faraday-lwt";
+  inherit (faraday) version src useDune2 minimumOCamlVersion;
+
+  propagatedBuildInputs = [ faraday lwt ];
+
+  meta = faraday.meta // {
+    description = "Lwt support for Faraday";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git-http/default.nix b/nixpkgs/pkgs/development/ocaml-modules/git-http/default.nix
deleted file mode 100644
index 54bd5c2da233..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/git-http/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ buildDunePackage, git, cohttp, cohttp-lwt }:
-
-buildDunePackage {
-  pname = "git-http";
-  inherit (git) version src minimumOCamlVersion;
-
-  useDune2 = true;
-
-  propagatedBuildInputs = [ git cohttp cohttp-lwt ];
-
-  meta = {
-    description = "Client implementation of the “Smart” HTTP Git protocol in pure OCaml";
-    inherit (git.meta) homepage license maintainers;
-  };
-}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git-unix/default.nix b/nixpkgs/pkgs/development/ocaml-modules/git-unix/default.nix
deleted file mode 100644
index 6ee6ef21c15e..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/git-unix/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, buildDunePackage, git-http, cohttp, cohttp-lwt-unix
-, mmap, cmdliner, mtime, alcotest, mirage-crypto-rng, tls
-, io-page, git-binary
-}:
-
-buildDunePackage {
-  pname = "git-unix";
-  inherit (git-http) version src minimumOCamlVersion;
-
-  useDune2 = true;
-
-  propagatedBuildInputs = [ mmap cmdliner git-http cohttp cohttp-lwt-unix mtime ];
-  checkInputs = [ alcotest mirage-crypto-rng tls io-page git-binary ];
-  doCheck = !stdenv.isAarch64;
-
-  meta = {
-    description = "Unix backend for the Git protocol(s)";
-    inherit (git-http.meta) homepage license maintainers;
-  };
-}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git/cohttp-mirage.nix b/nixpkgs/pkgs/development/ocaml-modules/git/cohttp-mirage.nix
new file mode 100644
index 000000000000..d30884006410
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/git/cohttp-mirage.nix
@@ -0,0 +1,18 @@
+{ lib, buildDunePackage
+, git, mimic, cohttp-mirage, cohttp, cohttp-lwt
+, fmt, lwt, result, rresult, uri
+}:
+
+buildDunePackage {
+  pname = "git-cohttp-mirage";
+
+  inherit (git) version src minimumOCamlVersion useDune2;
+
+  propagatedBuildInputs = [
+    git mimic cohttp-mirage cohttp cohttp-lwt fmt lwt result rresult uri
+  ];
+
+  meta = git.meta // {
+    description = "A package to use HTTP-based ocaml-git with MirageOS backend";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git/cohttp-unix.nix b/nixpkgs/pkgs/development/ocaml-modules/git/cohttp-unix.nix
new file mode 100644
index 000000000000..ac6d423d58ae
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/git/cohttp-unix.nix
@@ -0,0 +1,17 @@
+{ buildDunePackage, git, git-cohttp
+, cohttp-lwt-unix, cohttp-lwt, fmt, lwt, result, rresult, uri
+}:
+
+buildDunePackage {
+  pname = "git-cohttp-unix";
+
+  inherit (git) version src minimumOCamlVersion useDune2;
+
+  propagatedBuildInputs = [
+    git git-cohttp cohttp-lwt-unix cohttp-lwt fmt lwt result rresult uri
+  ];
+
+  meta = git.meta // {
+    description = "A package to use HTTP-based ocaml-git with Unix backend";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git/cohttp.nix b/nixpkgs/pkgs/development/ocaml-modules/git/cohttp.nix
new file mode 100644
index 000000000000..e9126ba4bece
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/git/cohttp.nix
@@ -0,0 +1,19 @@
+{ buildDunePackage, git
+, cohttp, cohttp-lwt, fmt, lwt, result, rresult, uri
+, alcotest, alcotest-lwt, bigstringaf, cstruct, logs
+, mirage-flow, ke
+}:
+
+buildDunePackage rec {
+  pname = "git-cohttp";
+
+  inherit (git) version minimumOCamlVersion src useDune2;
+
+  propagatedBuildInputs = [
+    git cohttp cohttp-lwt fmt lwt result rresult uri
+  ];
+
+  meta = git.meta // {
+    description = "A package to use HTTP-based ocaml-git with Unix backend";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git/default.nix b/nixpkgs/pkgs/development/ocaml-modules/git/default.nix
index f5cb452f1a91..b8d73178d09b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/git/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/git/default.nix
@@ -1,33 +1,40 @@
 { stdenv, lib, fetchurl, buildDunePackage
 , alcotest, mtime, mirage-crypto-rng, tls, git-binary
 , angstrom, astring, cstruct, decompress, digestif, encore, duff, fmt, checkseum
-, fpath, hex, ke, logs, lru, ocaml_lwt, ocamlgraph, ocplib-endian, uri, rresult
-, stdlib-shims
+, fpath, ke, logs, lwt, ocamlgraph, uri, rresult, base64
+, result, bigstringaf, optint, mirage-flow, domain-name, emile
+, mimic, carton, carton-lwt, carton-git, ipaddr, psq, crowbar, alcotest-lwt
 }:
 
 buildDunePackage rec {
   pname = "git";
-  version = "2.1.3";
+  version = "3.3.3";
 
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.08";
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-git/releases/download/${version}/git-${version}.tbz";
-    sha256 = "1ppllv65vrkfrmx46aiq5879isffcjmg92z9rv2kh92a83h4lqax";
+    sha256 = "0j8pw9w74bfhrjsqr8zm8g7h1az94z9vg7qgc6z6649zm9yjiax3";
   };
 
+  buildInputs = [
+    base64
+  ];
   propagatedBuildInputs = [
     angstrom astring checkseum cstruct decompress digestif encore duff fmt fpath
-    hex ke logs lru ocaml_lwt ocamlgraph ocplib-endian uri rresult stdlib-shims
+    ke logs lwt ocamlgraph uri rresult result bigstringaf optint mirage-flow
+    domain-name emile mimic carton carton-lwt carton-git ipaddr psq
+  ];
+  checkInputs = [
+    alcotest alcotest-lwt mtime mirage-crypto-rng tls git-binary crowbar
   ];
-  checkInputs = [ alcotest mtime mirage-crypto-rng tls git-binary ];
   doCheck = !stdenv.isAarch64;
 
   meta = {
     description = "Git format and protocol in pure OCaml";
     license = lib.licenses.isc;
-    maintainers = [ lib.maintainers.vbgl ];
+    maintainers = with lib.maintainers; [ sternenseemann vbgl ];
     homepage = "https://github.com/mirage/ocaml-git";
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git/unix.nix b/nixpkgs/pkgs/development/ocaml-modules/git/unix.nix
new file mode 100644
index 000000000000..f4cea472886d
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/git/unix.nix
@@ -0,0 +1,38 @@
+{ buildDunePackage, git
+, mmap, rresult, result, bigstringaf
+, fmt, bos, fpath, uri, digestif, logs, lwt, git-cohttp-unix
+, mirage-clock, mirage-clock-unix, astring, awa, cmdliner
+, cohttp-lwt-unix, decompress, domain-name, ipaddr, mtime
+, tcpip, awa-mirage, mirage-flow
+, alcotest, alcotest-lwt, base64, cstruct
+, ke, mirage-crypto-rng, ocurl, git-binary
+, ptime
+}:
+
+buildDunePackage {
+  pname = "git-unix";
+  inherit (git) version src minimumOCamlVersion;
+
+  useDune2 = true;
+
+  buildInputs = [
+    awa awa-mirage cmdliner git-cohttp-unix
+    mirage-clock mirage-clock-unix tcpip
+  ];
+  propagatedBuildInputs = [
+    mmap rresult result bigstringaf
+    fmt bos fpath uri digestif logs lwt
+    astring cohttp-lwt-unix decompress
+    domain-name ipaddr mtime mirage-flow
+  ];
+  checkInputs = [
+    alcotest alcotest-lwt base64 cstruct ke
+    mirage-crypto-rng ocurl git-binary ptime
+  ];
+  doCheck = true;
+
+  meta = {
+    description = "Unix backend for the Git protocol(s)";
+    inherit (git.meta) homepage license maintainers;
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/gnuplot/default.nix b/nixpkgs/pkgs/development/ocaml-modules/gnuplot/default.nix
index d939b884e875..038863aad978 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/gnuplot/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/gnuplot/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "gnuplot";
   version = "0.7";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.03";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/graphics/default.nix b/nixpkgs/pkgs/development/ocaml-modules/graphics/default.nix
index 6a3217431b43..10d0b4ea6fc7 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/graphics/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/graphics/default.nix
@@ -3,13 +3,13 @@
 buildDunePackage rec {
 
   pname = "graphics";
-  version = "5.1.0";
+  version = "5.1.1";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/ocaml/graphics/releases/download/${version}/graphics-${version}.tbz";
-    sha256 = "16z997mp0ccilaqqvmz3wp7vx0ghaf4ik9qklgd4piklcl1yv5n5";
+    sha256 = "sha256-KGyD497ZKHA2xeXHezmh3P1zoSlre1h5N9zjkAFmMo4=";
   };
 
   buildInputs = [ dune-configurator ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/gsl/default.nix b/nixpkgs/pkgs/development/ocaml-modules/gsl/default.nix
index 046c92afca0a..eacdda27f435 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/gsl/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/gsl/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "gsl";
   version = "1.24.3";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.08";
 
   src = fetchurl {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/hidapi/default.nix b/nixpkgs/pkgs/development/ocaml-modules/hidapi/default.nix
index cd95b34fa2bd..0de997881c2c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/hidapi/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/hidapi/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, lib, fetchurl, buildDunePackage, pkg-config
+{ pkgs, lib, fetchurl, buildDunePackage, pkg-config, dune-configurator
 , bigstring,
 }:
 
@@ -6,6 +6,8 @@ buildDunePackage rec {
   pname = "hidapi";
   version = "1.1.1";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/vbmithr/ocaml-hidapi/releases/download/${version}/${pname}-${version}.tbz";
     sha256 = "1j7rd7ajrzla76r3sxljx6fb18f4f4s3jd7vhv59l2ilxyxycai2";
@@ -13,7 +15,7 @@ buildDunePackage rec {
 
   minimumOCamlVersion = "4.03";
 
-  buildInputs = [ pkgs.hidapi pkg-config ];
+  buildInputs = [ pkgs.hidapi pkg-config dune-configurator ];
   propagatedBuildInputs = [ bigstring ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/hxd/default.nix b/nixpkgs/pkgs/development/ocaml-modules/hxd/default.nix
index 1d677ac1a2ef..0775e21b1f8d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/hxd/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/hxd/default.nix
@@ -1,11 +1,11 @@
 { lib, buildDunePackage, fetchurl
-, dune-configurator, cmdliner, angstrom
-, rresult, stdlib-shims, fmt, fpath
+, ocaml, dune-configurator, cmdliner
+, lwt, withLwt ? lib.versionAtLeast ocaml.version "4.07"
 }:
 
 buildDunePackage rec {
   pname = "hxd";
-  version = "0.2.0";
+  version = "0.3.1";
 
   useDune2 = true;
 
@@ -13,24 +13,25 @@ buildDunePackage rec {
 
   src = fetchurl {
     url = "https://github.com/dinosaure/hxd/releases/download/v${version}/hxd-v${version}.tbz";
-    sha256 = "1lyfrq058cc9x0c0hzsf3hv3ys0h8mxkwin9lldidlnj10izqf1l";
+    sha256 = "1c226c91e17cd329dec0c287bfd20f36302aa533069ff9c6ced32721f96b29bc";
   };
 
+  # ignore yes stderr output due to trapped SIGPIPE
+  postPatch = ''
+    sed -i 's|yes ".\+"|& 2> /dev/null|' test/*.t
+  '';
+
   nativeBuildInputs = [
     dune-configurator
   ];
 
+  propagatedBuildInputs = lib.optional withLwt lwt;
+
   buildInputs = [
     cmdliner
-    angstrom
-    rresult
-    fmt
-    fpath
   ];
 
-  propagatedBuildInputs = [
-    stdlib-shims
-  ];
+  doCheck = true;
 
   meta = with lib; {
     description = "Hexdump in OCaml";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/imagelib/default.nix b/nixpkgs/pkgs/development/ocaml-modules/imagelib/default.nix
index 46bd4b962681..0a846214dc05 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/imagelib/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/imagelib/default.nix
@@ -1,30 +1,28 @@
-{ lib, fetchFromGitHub, fetchpatch, buildDunePackage, decompress }:
+{ lib, fetchurl, buildDunePackage
+, decompress, stdlib-shims, alcotest
+}:
 
 buildDunePackage rec {
   minimumOCamlVersion = "4.07";
-  version = "20191011";
+  version = "20210402";
   pname = "imagelib";
 
   useDune2 = true;
 
-  src = fetchFromGitHub {
-    owner = "rlepigre";
-    repo = "ocaml-imagelib";
-    rev = "03fed7733825cef7e0465163f398f6af810e2e75";
-    sha256 = "0h7vgyss42nhlfqpbdnb54nxq86rskqi2ilx8b87r0hi19hqx463";
+  src = fetchurl {
+    url = "https://github.com/rlepigre/ocaml-imagelib/releases/download/${version}/imagelib-${version}.tbz";
+    sha256 = "b3c8ace02b10b36b6c60b3ce3ae0b9109d4a861916ec320c59cc1194f4cc86e3";
   };
 
-  patches = [ (fetchpatch {
-    url = "https://github.com/rlepigre/ocaml-imagelib/pull/24/commits/4704fd44adcda62e0d96ea5b1927071326aa6111.patch";
-    sha256 = "0ipjab1hfa2v2pnd8g1k3q2ia0plgiw7crm3fa4w2aqpzdyabkb9";
-  }) ];
+  propagatedBuildInputs = [ decompress stdlib-shims ];
 
-  propagatedBuildInputs = [ decompress ];
+  doCheck = true;
+  checkInputs = [ alcotest ];
 
   meta = {
     description = "Image formats such as PNG and PPM in OCaml";
     license = lib.licenses.lgpl3;
     maintainers = [ lib.maintainers.vbgl ];
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/rlepigre/ocaml-imagelib";
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/imagelib/unix.nix b/nixpkgs/pkgs/development/ocaml-modules/imagelib/unix.nix
deleted file mode 100644
index a188165a48fa..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/imagelib/unix.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ buildDunePackage, imagelib }:
-
-buildDunePackage {
-  pname = "imagelib-unix";
-  inherit (imagelib) version src useDune2 meta;
-
-  propagatedBuildInputs = [ imagelib ];
-}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/index/default.nix b/nixpkgs/pkgs/development/ocaml-modules/index/default.nix
index f4b1844d684c..a24d72a34458 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/index/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/index/default.nix
@@ -1,18 +1,29 @@
-{ lib, fetchurl, buildDunePackage, fmt, logs, mtime, stdlib-shims }:
+{ lib, fetchurl, buildDunePackage
+, repr, ppx_repr, fmt, logs, mtime, stdlib-shims
+, cmdliner, progress, semaphore-compat
+, alcotest, crowbar, re
+}:
 
 buildDunePackage rec {
   pname = "index";
-  version = "1.2.1";
+  version = "1.3.0";
 
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.08";
+
+  useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/index/releases/download/${version}/index-${version}.tbz";
-    sha256 = "1a9b6rsazrjy07syxl9ix5002i95mlvx5vk7nl2x9cs6s0zw906d";
+    sha256 = "00qwhwg79scs5bgp8nbppv06qs9yhicf686q7lh64ngh0642iz6n";
   };
 
   buildInputs = [ stdlib-shims ];
-  propagatedBuildInputs = [ fmt logs mtime ];
+  propagatedBuildInputs = [
+    fmt logs mtime repr ppx_repr cmdliner progress semaphore-compat
+  ];
+
+  doCheck = true;
+  checkInputs = [ alcotest crowbar re ];
 
   meta = {
     homepage = "https://github.com/mirage/index";
@@ -20,5 +31,4 @@ buildDunePackage rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/integers/default.nix b/nixpkgs/pkgs/development/ocaml-modules/integers/default.nix
index ad6f1f9f813d..97443bf5706e 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/integers/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/integers/default.nix
@@ -1,9 +1,11 @@
-{ lib, fetchzip, buildDunePackage }:
+{ lib, fetchzip, buildDunePackage, ocaml }:
 
 buildDunePackage rec {
   pname = "integers";
   version = "0.4.0";
 
+  useDune2 = lib.versionAtLeast ocaml.version "4.08";
+
   src = fetchzip {
     url = "https://github.com/ocamllabs/ocaml-integers/archive/${version}.tar.gz";
     sha256 = "0yp3ab0ph7mp5741g7333x4nx8djjvxzpnv3zvsndyzcycspn9dd";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/chunk.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/chunk.nix
index 7a2ad0ec7dfd..0014bbbcfcb0 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/chunk.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/chunk.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, irmin, irmin-mem, irmin-test }:
+{ lib, buildDunePackage, irmin, irmin-test, alcotest }:
 
 buildDunePackage rec {
 
@@ -8,7 +8,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ irmin ];
 
   doCheck = true;
-  checkInputs = [ irmin-mem irmin-test ];
+  checkInputs = [ alcotest irmin-test ];
 
   meta = irmin.meta // {
     description = "Irmin backend which allow to store values into chunks";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/containers.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/containers.nix
new file mode 100644
index 000000000000..761e9bf5619e
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/containers.nix
@@ -0,0 +1,27 @@
+{ buildDunePackage
+, irmin, irmin-unix, irmin-git, ppx_irmin, lwt, mtime
+, alcotest, alcotest-lwt
+}:
+
+buildDunePackage {
+  pname = "irmin-containers";
+
+  inherit (ppx_irmin) src version useDune2;
+
+  nativeBuildInputs = [
+    ppx_irmin
+  ];
+
+  propagatedBuildInputs = [
+    irmin irmin-unix irmin-git ppx_irmin lwt mtime
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest alcotest-lwt
+  ];
+
+  meta = ppx_irmin.meta // {
+    description = "Mergeable Irmin data structures";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/default.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/default.nix
index 2e3e27df7ffb..fe13377b3c2b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchurl, buildDunePackage
-, astring, base64, digestif, fmt, jsonm, logs, ocaml_lwt, ocamlgraph, uri
-, alcotest, hex, ppx_irmin
+{ lib, buildDunePackage
+, astring, digestif, fmt, jsonm, logs, ocaml_lwt, ocamlgraph, uri
+, repr, ppx_irmin, bheap
 }:
 
 buildDunePackage {
@@ -11,10 +11,22 @@ buildDunePackage {
   useDune2 = true;
   minimumOCamlVersion = "4.07";
 
-  propagatedBuildInputs = [ astring base64 digestif fmt jsonm logs ocaml_lwt ocamlgraph uri ];
+  propagatedBuildInputs = [
+    astring
+    digestif
+    fmt
+    jsonm
+    logs
+    ocaml_lwt
+    ocamlgraph
+    uri
+    repr
+    bheap
+    ppx_irmin
+  ];
 
-  checkInputs = [ alcotest hex ppx_irmin ];
-  doCheck = true;
+  # circular dependency on irmin-mem
+  doCheck = false;
 
   meta = ppx_irmin.meta // {
     description = "A distributed database built on the same principles as Git";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix
index b222bc53e3a2..a6c1e8af8fa4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix
@@ -1,6 +1,10 @@
-{ lib, buildDunePackage, git, irmin, irmin-mem, irmin-test, git-unix }:
+{ lib, buildDunePackage
+, git, irmin, irmin-test, ppx_irmin, git-cohttp-unix, git-unix
+, digestif, cstruct, fmt, astring, fpath, logs, lwt, uri
+, mtime, alcotest
+}:
 
-buildDunePackage rec {
+buildDunePackage {
 
   pname = "irmin-git";
 
@@ -8,9 +12,21 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  propagatedBuildInputs = [ git irmin ];
-
-  checkInputs = lib.optionals doCheck [ git-unix irmin-mem irmin-test ];
+  propagatedBuildInputs = [
+    git
+    irmin
+    ppx_irmin
+    digestif
+    cstruct
+    fmt
+    astring
+    fpath
+    logs
+    lwt
+    uri
+  ];
+
+  checkInputs = [ mtime alcotest git-cohttp-unix git-unix irmin-test ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix
index 6e4598dd986a..ca205cac4e15 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix
@@ -1,4 +1,6 @@
-{ lib, buildDunePackage, cohttp-lwt, graphql-cohttp, graphql-lwt, irmin }:
+{ lib, buildDunePackage, cohttp-lwt, graphql-cohttp, graphql-lwt, irmin
+, alcotest, alcotest-lwt, logs, yojson, cohttp-lwt-unix
+}:
 
 buildDunePackage rec {
 
@@ -10,8 +12,14 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ cohttp-lwt graphql-cohttp graphql-lwt irmin ];
 
-  # test requires network
-  doCheck = false;
+  doCheck = true;
+  checkInputs = [
+    alcotest
+    alcotest-lwt
+    logs
+    cohttp-lwt-unix
+    yojson
+  ];
 
   meta = irmin.meta // {
     description = "GraphQL server for Irmin";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix
index 24e9f52aa086..b50e0b873454 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix
@@ -1,5 +1,5 @@
 { lib, buildDunePackage, cohttp-lwt, irmin, webmachine
-, checkseum, git-unix, irmin-git, irmin-mem, irmin-test
+, checkseum, git-unix, irmin-git, irmin-test, digestif, git-cohttp-unix
 }:
 
 buildDunePackage rec {
@@ -12,7 +12,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ cohttp-lwt irmin webmachine ];
 
-  checkInputs = lib.optionals doCheck [ checkseum git-unix irmin-git irmin-mem irmin-test ];
+  checkInputs = [ digestif checkseum git-cohttp-unix git-unix irmin-git irmin-test ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/layers.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/layers.nix
new file mode 100644
index 000000000000..40410b004ae7
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/layers.nix
@@ -0,0 +1,18 @@
+{ buildDunePackage, irmin, mtime, logs, lwt }:
+
+buildDunePackage {
+  pname = "irmin-layers";
+
+  inherit (irmin) version src useDune2;
+
+  propagatedBuildInputs = [
+    irmin
+    mtime
+    logs
+    lwt
+  ];
+
+  meta = irmin.meta // {
+    description = "Combine different Irmin stores into a single, layered store";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/mem.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/mem.nix
deleted file mode 100644
index 1b8947849a92..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/mem.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, buildDunePackage, irmin, irmin-test }:
-
-buildDunePackage rec {
-
-  pname = "irmin-mem";
-
-  inherit (irmin) version src;
-
-  useDune2 = true;
-
-  propagatedBuildInputs = [ irmin ];
-
-  checkInputs = lib.optional doCheck irmin-test;
-
-  doCheck = true;
-
-  meta = irmin.meta // {
-    description = "Generic in-memory Irmin stores";
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-git.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-git.nix
new file mode 100644
index 000000000000..dfa84ff2335d
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-git.nix
@@ -0,0 +1,27 @@
+{ buildDunePackage, irmin-mirage, irmin-git
+, mirage-kv, cohttp, conduit-lwt, conduit-mirage
+, git-cohttp-mirage, fmt, git, lwt, mirage-clock, uri
+}:
+
+buildDunePackage {
+  pname = "irmin-mirage-git";
+
+  inherit (irmin-mirage) version src useDune2;
+
+  propagatedBuildInputs = [
+    irmin-mirage
+    irmin-git
+    mirage-kv
+    cohttp
+    conduit-lwt
+    conduit-mirage
+    git-cohttp-mirage
+    fmt
+    git
+    lwt
+    mirage-clock
+    uri
+  ];
+
+  inherit (irmin-mirage) meta;
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-graphql.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-graphql.nix
new file mode 100644
index 000000000000..d550b9c924b1
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-graphql.nix
@@ -0,0 +1,21 @@
+{ buildDunePackage, irmin-mirage, irmin-graphql
+, mirage-clock, cohttp-lwt, lwt, uri, git
+}:
+
+buildDunePackage {
+  pname = "irmin-mirage-graphql";
+
+  inherit (irmin-mirage) version src useDune2;
+
+  propagatedBuildInputs = [
+    irmin-mirage
+    irmin-graphql
+    mirage-clock
+    cohttp-lwt
+    lwt
+    uri
+    git
+  ];
+
+  inherit (irmin-mirage) meta;
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage.nix
new file mode 100644
index 000000000000..675c8a3fdd28
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage.nix
@@ -0,0 +1,15 @@
+{ buildDunePackage, irmin, fmt, ptime, mirage-clock }:
+
+buildDunePackage {
+  pname = "irmin-mirage";
+
+  inherit (irmin) version src useDune2;
+
+  propagatedBuildInputs = [
+    irmin fmt ptime mirage-clock
+  ];
+
+  meta = irmin.meta // {
+    description = "MirageOS-compatible Irmin stores";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/pack.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/pack.nix
index b0081eb366e4..16ef675c1f8c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/pack.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/pack.nix
@@ -1,4 +1,6 @@
-{ lib, buildDunePackage, alcotest-lwt, index, irmin, irmin-test, ocaml_lwt }:
+{ lib, buildDunePackage
+, alcotest-lwt, index, irmin, irmin-layers, irmin-test, ocaml_lwt, fpath
+}:
 
 buildDunePackage rec {
   minimumOCamlVersion = "4.02.3";
@@ -9,9 +11,10 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  propagatedBuildInputs = [ index irmin ocaml_lwt ];
+  buildInputs = [ fpath ];
+  propagatedBuildInputs = [ index irmin irmin-layers ocaml_lwt ];
 
-  checkInputs = lib.optionals doCheck [ alcotest-lwt irmin-test ];
+  checkInputs = [ alcotest-lwt irmin-test ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix
index 35aa659fbc8a..1d605763ab52 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix
@@ -1,29 +1,27 @@
-{ lib, fetchurl, buildDunePackage, ppxlib, ocaml-syntax-shims }:
+{ lib, fetchurl, buildDunePackage, ppxlib, ppx_repr }:
 
 buildDunePackage rec {
   pname = "ppx_irmin";
-  version = "2.2.0";
+  version = "2.5.1";
 
   src = fetchurl {
     url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz";
-    sha256 = "0gzw918b661qkvd140hilww9jsc49rxsxz1k4iihyvikjn202km4";
+    sha256 = "131pcgmpys6danprcbxzf4pdsl0ka74bpmmxz8db4507cvxhsz3n";
   };
 
-  minimumOCamlVersion = "4.06";
+  minimumOCamlVersion = "4.08";
 
   useDune2 = true;
 
-  buildInputs = [ ocaml-syntax-shims ];
-  propagatedBuildInputs = [ ppxlib ];
-
-  # tests depend on irmin, would create mutual dependency
-  # opt to test irmin instead of ppx_irmin
-  doCheck = false;
+  propagatedBuildInputs = [
+    ppx_repr
+    ppxlib
+  ];
 
   meta = {
     homepage = "https://irmin.org/";
     description = "PPX deriver for Irmin generics";
     license = lib.licenses.isc;
-    maintainers = [ lib.maintainers.vbgl ];
+    maintainers = with lib.maintainers; [ vbgl sternenseemann ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/test.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/test.nix
index b8a3f3ae2457..90141d925e6f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/test.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/test.nix
@@ -1,4 +1,6 @@
-{ buildDunePackage, alcotest, cmdliner, irmin, metrics-unix, mtime }:
+{ buildDunePackage
+, alcotest, cmdliner, irmin, metrics-unix, mtime, irmin-layers
+}:
 
 buildDunePackage {
 
@@ -8,7 +10,9 @@ buildDunePackage {
 
   useDune2 = true;
 
-  propagatedBuildInputs = [ alcotest cmdliner irmin metrics-unix mtime ];
+  propagatedBuildInputs = [
+    alcotest cmdliner irmin metrics-unix mtime irmin-layers
+  ];
 
   meta = irmin.meta // {
     description = "Irmin test suite";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix
index 7a09eaabd3ec..a3dfb5d508c2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix
@@ -1,7 +1,7 @@
 { lib, buildDunePackage
-, checkseum, cmdliner, git-unix, yaml
-, irmin, irmin-fs, irmin-git, irmin-graphql, irmin-http, irmin-mem, irmin-pack, irmin-watcher
-, irmin-test
+, checkseum, cmdliner, git-unix, git-cohttp-unix, yaml, fpath
+, irmin, irmin-fs, irmin-git, irmin-graphql, irmin-http
+, irmin-pack, irmin-watcher, irmin-test
 }:
 
 buildDunePackage rec {
@@ -12,8 +12,10 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  propagatedBuildInputs = [ checkseum cmdliner git-unix yaml
-    irmin irmin-fs irmin-git irmin-graphql irmin-http irmin-mem irmin-pack irmin-watcher
+  propagatedBuildInputs = [
+    checkseum cmdliner git-unix yaml fpath
+    irmin irmin-fs irmin-git irmin-graphql irmin-http
+    irmin-pack irmin-watcher git-cohttp-unix
   ];
 
   checkInputs = lib.optional doCheck irmin-test;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix b/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix
index 4585a3b8596c..295960764dc5 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix
@@ -382,7 +382,12 @@ rec {
   async_ssl = janePackage {
     pname = "async_ssl";
     hash = "02ard8x5q5c42d9jdqmyzfx624yjq8cxxmvq3zb82hf6p8cc57ml";
-    meta.description = "An Async-pipe-based interface with OpenSSL";
+    meta = {
+      description = "An Async-pipe-based interface with OpenSSL";
+      # ctypes no longer works with dune 1
+      # dune 2 no longer supports jbuild
+      broken = true;
+    };
     propagatedBuildInputs = [ async ctypes openssl ];
   };
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.14.nix b/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.14.nix
index 29b18e0bf980..738828e83086 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.14.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.14.nix
@@ -147,6 +147,11 @@ rec {
     meta.description = "Async wrappers for SSL";
     buildInputs = [ dune-configurator ];
     propagatedBuildInputs = [ async ctypes openssl ];
+    # in ctypes.foreign 0.18.0 threaded and unthreaded have been merged
+    postPatch = ''
+      substituteInPlace bindings/dune \
+        --replace "ctypes.foreign.threaded" "ctypes.foreign"
+    '';
   };
 
   async_unix = janePackage {
@@ -158,7 +163,8 @@ rec {
 
   base = janePackage {
     pname = "base";
-    hash = "1d5ynzzq58g9qammhba5dasrg734p9vndq28a7kg80bdxb8gh3kp";
+    version = "0.14.1";
+    hash = "1hizjxmiqlj2zzkwplzjamw9rbnl0kh44sxgjpzdij99qnfkzylf";
     minimumOCamlVersion = "4.07";
     meta.description = "Full standard library replacement for OCaml";
     buildInputs = [ dune-configurator ];
@@ -176,7 +182,8 @@ rec {
 
   base_quickcheck = janePackage {
     pname = "base_quickcheck";
-    hash = "1lmp1h68g0gqiw8m6gqcbrp0fn76nsrlsqrwxp20d7jhh0693f3j";
+    version = "0.14.1";
+    hash = "0apq3d9xb0zdaqsl4cjk5skyig57ff1plndb2mh0nn3czvfhifxs";
     minimumOCamlVersion = "4.04.2";
     meta.description = "Randomized testing framework, designed for compatibility with Base";
     propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let ppx_sexp_value splittable_random ];
@@ -216,7 +223,8 @@ rec {
 
   core = janePackage {
     pname = "core";
-    hash = "1m9h73pk9590m8ngs1yf4xrw61maiqmi9glmlrl12qhi0wcja5f3";
+    version = "0.14.1";
+    hash = "1isrcl07nkmdm6akqsqs9z8s6zvva2lvg47kaagy7gsbyszrqb82";
     meta.description = "System-independent part of Core";
     buildInputs = [ jst-config ];
     propagatedBuildInputs = [ core_kernel spawn timezone ];
@@ -239,7 +247,8 @@ rec {
 
   core_kernel = janePackage {
     pname = "core_kernel";
-    hash = "012sp02v35j41lzkvf073620602fgiswz2n224j06mk3bm8jmjms";
+    version = "0.14.1";
+    hash = "0pikg4ln6177gbs0jfix7xj50zlcm7058h64lxnd7wspnj7mq8sd";
     meta.description = "System-independent part of Core";
     buildInputs = [ jst-config ];
     propagatedBuildInputs = [ base_bigstring sexplib ];
@@ -442,7 +451,8 @@ rec {
 
   ppx_custom_printf = janePackage {
     pname = "ppx_custom_printf";
-    hash = "0p9hgx0krxqw8hlzfv2bg2m3zi5nxsnzhyp0fj5936rapad02hc5";
+    version = "0.14.1";
+    hash = "0c1m65kn27zvwmfwy7kk46ga76yw2a3ik9jygpy1b6nn6pi026w9";
     minimumOCamlVersion = "4.04.2";
     meta.description = "Printf-style format-strings for user-defined string conversion";
     propagatedBuildInputs = [ ppx_sexp_conv ];
@@ -458,7 +468,8 @@ rec {
 
   ppx_expect = janePackage {
     pname = "ppx_expect";
-    hash = "05v6jzn1nbmwk3vzxxnb3380wzg2nb28jpb3v5m5c4ikn0jrhcwn";
+    version = "0.14.1";
+    hash = "0vbbnjrzpyk5p0js21lafr6fcp2wqka89p1876rdf472cmg0l7fv";
     minimumOCamlVersion = "4.04.2";
     meta.description = "Cram like framework for OCaml";
     propagatedBuildInputs = [ ppx_here ppx_inline_test re ];
@@ -533,6 +544,14 @@ rec {
     propagatedBuildInputs = [ ppxlib ];
   };
 
+  ppx_log = janePackage {
+    pname = "ppx_log";
+    hash = "10hnr5lpww3fw0bnidzngalbgy0j1wvz1g5ki9c9h558pnpvsazr";
+    minimumOCamlVersion = "4.08.0";
+    meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages";
+    propagatedBuildInputs = [ async_unix ppx_jane sexplib ];
+  };
+
   ppx_module_timer = janePackage {
     pname = "ppx_module_timer";
     hash = "163q1rpblwv82fxwyf0p4j9zpsj0jzvkfmzb03r0l49gqhn89mp6";
@@ -543,7 +562,8 @@ rec {
 
   ppx_optcomp = janePackage {
     pname = "ppx_optcomp";
-    hash = "1wav3zgh4244x1ll562g735cwwrzyk5jj72niq9jgz9qjlpsprlk";
+    version = "0.14.1";
+    hash = "0j5smqa0hig1yn8wfrb4mv0y59kkwsalmqkm5asbd7kcc6589ap4";
     minimumOCamlVersion = "4.04.2";
     meta.description = "Optional compilation for OCaml";
     propagatedBuildInputs = [ ppxlib ];
@@ -575,16 +595,17 @@ rec {
 
   ppx_sexp_conv = janePackage {
     pname = "ppx_sexp_conv";
-    version = "0.14.1";
+    version = "0.14.3";
     minimumOCamlVersion = "4.04.2";
-    hash = "04bx5id99clrgvkg122nx03zig1m7igg75piphhyx04w33shgkz2";
+    hash = "0dbri9d00ydi0dw1cavswnqdmhjaaz80vap29ns2lr6mhhlvyjmj";
     meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
     propagatedBuildInputs = [ ppxlib sexplib0 base ];
   };
 
   ppx_sexp_message = janePackage {
     pname = "ppx_sexp_message";
-    hash = "17xnq345xwfkl9ydn05ljsg37m2glh3alnspayl3fgbhmcjmav3i";
+    version = "0.14.1";
+    hash = "1lvsr0d68kakih1ll33hy6dxbjkly6lmky4q6z0h0hrcbd6z48k4";
     minimumOCamlVersion = "4.04.2";
     meta.description = "A ppx rewriter for easy construction of s-expressions";
     propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
@@ -618,9 +639,9 @@ rec {
 
   ppx_typerep_conv = janePackage {
     pname = "ppx_typerep_conv";
-    version = "0.14.1";
+    version = "0.14.2";
     minimumOCamlVersion = "4.04.2";
-    hash = "1r0z7qlcpaicas5hkymy2q0gi207814wlay4hys7pl5asd59wcdh";
+    hash = "0yk9vkpnwr8labgfncqdi4rfkj88d8mb3cr8m4gdqpi3f2r27hf0";
     meta.description = "Generation of runtime types from type declarations";
     propagatedBuildInputs = [ ppxlib typerep ];
   };
diff --git a/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix b/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix
index 25b498bb7da0..a4c026ffb8b2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix
@@ -417,7 +417,12 @@ rec {
     pname = "async_ssl";
     hash = "1p83fzfla4rb820irdrz3f2hp8kq5zrhw47rqmfv6qydlca1bq64";
     propagatedBuildInputs = [ async ctypes openssl ];
-    meta.description = "Async wrappers for SSL";
+    meta = {
+      description = "Async wrappers for SSL";
+      # ctypes no longer works with dune 1
+      # dune 2 no longer supports jbuild
+      broken = true;
+    };
   };
 
   sexp_pretty = janePackage {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage.nix b/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage.nix
index 0dd0dde6ec9e..9a67db4966ce 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage.nix
@@ -14,6 +14,8 @@ buildDunePackage (args // {
     sha256 = hash;
   };
 
-  meta.license = lib.licenses.asl20;
-  meta.homepage = "https://github.com/janestreet/${pname}";
+  meta = {
+    license = lib.licenses.asl20;
+    homepage = "https://github.com/janestreet/${pname}";
+  } // args.meta;
 })
diff --git a/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix b/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix
index 5b7d9c3210d4..6c7d746e9481 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix
@@ -14,6 +14,8 @@ buildDunePackage (args // {
     sha256 = hash;
   };
 
-  meta.license = lib.licenses.mit;
-  meta.homepage = "https://github.com/janestreet/${pname}";
+  meta = {
+    license = lib.licenses.mit;
+    homepage = "https://github.com/janestreet/${pname}";
+  } // args.meta;
 })
diff --git a/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix b/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix
index 9675c8d019a0..1ed2e6bc4f20 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix
@@ -22,6 +22,8 @@ buildDunePackage (args // {
 
   inherit doCheck;
 
-  meta.license = lib.licenses.mit;
-  meta.homepage = "https://github.com/janestreet/${pname}";
+  meta = {
+    license = lib.licenses.mit;
+    homepage = "https://github.com/janestreet/${pname}";
+  } // args.meta;
 })
diff --git a/nixpkgs/pkgs/development/ocaml-modules/labltk/default.nix b/nixpkgs/pkgs/development/ocaml-modules/labltk/default.nix
index 65ea4d4b82ec..3ee09b2d51c9 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/labltk/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/labltk/default.nix
@@ -56,6 +56,10 @@ let param =
     version = "8.06.9";
     sha256 = "1k42k3bjkf22gk39lwwzqzfhgjyhxnclslldrzpg5qy1829pbnc0";
   };
+  "4.12" = mkNewParam {
+    version = "8.06.10";
+    sha256 = "06cck7wijq4zdshzhxm6jyl8k3j0zglj2axsyfk6q1sq754zyf4a";
+  };
 }.${builtins.substring 0 4 ocaml.version};
 in
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/linenoise/default.nix b/nixpkgs/pkgs/development/ocaml-modules/linenoise/default.nix
index dd5504dda5ca..eaeb053239e8 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/linenoise/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/linenoise/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "linenoise";
   version = "1.3.0";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.02";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lru/default.nix b/nixpkgs/pkgs/development/ocaml-modules/lru/default.nix
index e5c7937b27a4..035d612cfe27 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/lru/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/lru/default.nix
@@ -1,9 +1,11 @@
-{ lib, fetchurl, buildDunePackage, psq }:
+{ lib, fetchurl, buildDunePackage, ocaml, psq, qcheck-alcotest }:
 
 buildDunePackage rec {
   pname = "lru";
   version = "0.3.0";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/pqwy/lru/releases/download/v${version}/lru-v${version}.tbz";
     sha256 = "1ab9rd7cq15ml8x0wjl44wy99h5z7x4g9vkkz4i2d7n84ghy7vw4";
@@ -11,6 +13,9 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ psq ];
 
+  doCheck = lib.versionAtLeast ocaml.version "4.05";
+  checkInputs = [ qcheck-alcotest ];
+
   meta = {
     homepage = "https://github.com/pqwy/lru";
     description = "Scalable LRU caches for OCaml";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/luv/default.nix b/nixpkgs/pkgs/development/ocaml-modules/luv/default.nix
new file mode 100644
index 000000000000..6ad5ce5d4879
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/luv/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildDunePackage, fetchurl
+, ctypes, result
+, alcotest
+, file
+}:
+
+buildDunePackage rec {
+  pname = "luv";
+  version = "0.5.7";
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/aantron/luv/releases/download/${version}/luv-${version}.tar.gz";
+    sha256 = "0wjnw5riydnzsk1xdzljlpzdnjwpa0j597y6x6ma4990mqj54260";
+  };
+
+  postConfigure = ''
+    for f in src/c/vendor/configure/{ltmain.sh,configure}; do
+      substituteInPlace "$f" --replace /usr/bin/file file
+    done
+  '';
+
+  nativeBuildInputs = [ file ];
+  propagatedBuildInputs = [ ctypes result ];
+  checkInputs = [ alcotest ];
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/aantron/luv";
+    description = "Binding to libuv: cross-platform asynchronous I/O";
+    # MIT-licensed, extra licenses apply partially to libuv vendor
+    license = with licenses; [ mit bsd2 bsd3 cc-by-sa-40 ];
+    maintainers = with maintainers; [ locallycompact sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mariadb/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mariadb/default.nix
index ed3e5999b416..2c3c7c423ac0 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mariadb/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mariadb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, buildOasisPackage
+{ lib, fetchFromGitHub, buildOasisPackage
 , ctypes, mariadb, libmysqlclient }:
 
 buildOasisPackage rec {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix b/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix
index 752fbc039fa2..6d4fcad09775 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "merlin-extend";
   version = "0.6";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/let-def/merlin-extend/releases/download/v${version}/merlin-extend-v${version}.tbz";
     sha256 = "0hvc4mz92x3rl2dxwrhvhzwl4gilnyvvwcqgr45vmdpyjyp3dwn2";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mimic/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mimic/default.nix
index 01b2c813f2f8..3ddae57e9e8d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mimic/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mimic/default.nix
@@ -5,14 +5,14 @@
 
 buildDunePackage rec {
   pname = "mimic";
-  version = "0.0.1";
+  version = "0.0.2";
 
   minimumOCamlVersion = "4.08";
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-git/releases/download/${pname}-v${version}/${pname}-${pname}-v${version}.tbz";
-    sha256 = "0j4l99sgm5mdmv67vakkz2pw45l6i89bpza88xqkgmskfk50c5pk";
+    sha256 = "3ad5af3caa1120ecfdf022de41ba5be8edfbf50270fc99238b82d3d2d6e7c317";
   };
 
   # don't install changelogs for other packages
@@ -25,7 +25,6 @@ buildDunePackage rec {
     mirage-flow
     result
     rresult
-    cstruct
     logs
   ];
 
@@ -35,6 +34,7 @@ buildDunePackage rec {
     alcotest-lwt
     bigstringaf
     bigarray-compat
+    cstruct
     ke
   ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/minisat/default.nix b/nixpkgs/pkgs/development/ocaml-modules/minisat/default.nix
index 9a02f57cc385..f9d37d6b4faf 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/minisat/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/minisat/default.nix
@@ -2,15 +2,17 @@
 
 buildDunePackage rec {
   pname = "minisat";
-  version = "0.2";
+  version = "0.3";
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.05";
 
   src = fetchFromGitHub {
     owner  = "c-cube";
     repo   = "ocaml-minisat";
-    rev    = version;
-    sha256 = "1jibylmb1ww0x42n6wl8bdwicaysgxp0ag244x7w5m3jifq3xs6q";
+    rev    = "v${version}";
+    sha256 = "01wggbziqz5x6d7mwdl40sbf6qal7fd853b224zjf9n0kzzsnczh";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/default.nix
index 77d6b4ef7788..de8cfd311e54 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/default.nix
@@ -4,6 +4,10 @@ buildDunePackage rec {
   pname = "mirage-clock";
   version = "3.1.0";
 
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.06";
+
   src = fetchurl {
     url = "https://github.com/mirage/mirage-clock/releases/download/v${version}/mirage-clock-v${version}.tbz";
     sha256 = "0cqa07aqkamw0dvis1fl46brvk81zvb92iy5076ik62gv9n5a0mn";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/freestanding.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/freestanding.nix
new file mode 100644
index 000000000000..ef278f1cd25b
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/freestanding.nix
@@ -0,0 +1,23 @@
+{ lib
+, buildDunePackage
+, mirage-clock
+}:
+
+buildDunePackage {
+  pname = "mirage-clock-freestanding";
+
+  inherit (mirage-clock)
+    version
+    src
+    useDune2
+    minimumOCamlVersion
+    ;
+
+  propagatedBuildInputs = [
+    mirage-clock
+  ];
+
+  meta = mirage-clock.meta // {
+    description = "Paravirtual implementation of the MirageOS Clock interface";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/unix.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/unix.nix
index 5918d89221f2..355cffaaa157 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/unix.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-clock/unix.nix
@@ -1,9 +1,11 @@
-{ buildDunePackage, mirage-clock }:
+{ buildDunePackage, mirage-clock, dune-configurator }:
 
 buildDunePackage {
   pname = "mirage-clock-unix";
 
-  inherit (mirage-clock) version src;
+  inherit (mirage-clock) version useDune2 src;
+
+  buildInputs = [ dune-configurator ];
 
   propagatedBuildInputs = [ mirage-clock ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/default.nix
index ab48e01950e6..3265413d98fa 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/default.nix
@@ -1,14 +1,17 @@
-{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, eqaf, pkg-config }:
+{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, eqaf, pkg-config
+, withFreestanding ? false
+, ocaml-freestanding
+}:
 
 buildDunePackage rec {
   minimumOCamlVersion = "4.08";
 
   pname = "mirage-crypto";
-  version = "0.8.10";
+  version = "0.9.1";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz";
-    sha256 = "8a5976fe7837491d2fbd1917b77524776f70ae590e9f55cf757cc8951b5481fc";
+    sha256 = "53e0ae90f19651ab7f09156557ea5ec07bce7a52468ec6687471e0333f3e2133";
   };
 
   useDune2 = true;
@@ -17,12 +20,20 @@ buildDunePackage rec {
   checkInputs = [ ounit ];
 
   nativeBuildInputs = [ dune-configurator pkg-config ];
-  propagatedBuildInputs = [ cstruct eqaf ];
+  propagatedBuildInputs = [
+    cstruct eqaf
+  ] ++ lib.optionals withFreestanding [
+    ocaml-freestanding
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/mirage/mirage-crypto";
     description = "Simple symmetric cryptography for the modern age";
-    license = licenses.isc;
+    license = [
+      licenses.isc  # default license
+      licenses.bsd2 # mirage-crypto-rng-mirage
+      licenses.mit  # mirage-crypto-ec
+    ];
     maintainers = with maintainers; [ sternenseemann ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/ec.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/ec.nix
new file mode 100644
index 000000000000..bcd7a1f04f25
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/ec.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildDunePackage
+, mirage-crypto
+, dune-configurator
+, pkg-config
+, cstruct
+, mirage-crypto-rng
+, mirage-crypto-pk
+, hex
+, alcotest
+, asn1-combinators
+, ppx_deriving_yojson
+, ppx_deriving
+, yojson
+, withFreestanding ? false
+, ocaml-freestanding
+}:
+
+buildDunePackage {
+  pname = "mirage-crypto-ec";
+
+  inherit (mirage-crypto)
+    minimumOCamlVersion
+    src
+    version
+    useDune2
+    ;
+
+  nativeBuildInputs = [
+    pkg-config
+    dune-configurator
+  ];
+  propagatedBuildInputs = [
+    cstruct
+    mirage-crypto
+    mirage-crypto-rng
+  ] ++ lib.optionals withFreestanding [
+    ocaml-freestanding
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    hex
+    alcotest
+    asn1-combinators
+    ppx_deriving_yojson
+    ppx_deriving
+    yojson
+    mirage-crypto-pk
+  ];
+
+  meta = mirage-crypto.meta // {
+    description = "Elliptic Curve Cryptography with primitives taken from Fiat";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mmap/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mmap/default.nix
index 8ae1f4a9d47c..b13639150b0d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mmap/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mmap/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "mmap";
   version = "1.1.0";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/mirage/mmap/releases/download/v${version}/mmap-v${version}.tbz";
     sha256 = "0l6waidal2n8mkdn74avbslvc10sf49f5d889n838z03pra5chsc";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/npy/default.nix b/nixpkgs/pkgs/development/ocaml-modules/npy/default.nix
index 87fd72b7567a..5ba6cb08cc66 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/npy/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/npy/default.nix
@@ -2,15 +2,17 @@
 
 buildDunePackage rec {
   pname = "npy";
-  version = "unstable-2019-04-02";
+  version = "0.0.9";
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.06";
 
   src = fetchFromGitHub {
     owner = "LaurentMazare";
     repo   = "${pname}-ocaml";
-    rev    = "c051086bfea6bee58208098bcf1c2f725a80a1fb";
-    sha256 = "06mgrnm7xiw2lhqvbdv2zmd65sqfdnjd7j4qmcswanmplm17yhvb";
+    rev    = version;
+    sha256 = "1fryglkm20h6kdqjl55b7065b34bdg3g3p6j0jv33zvd1m5888m1";
   };
 
   propagatedBuildInputs = [ camlzip ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-cairo/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-cairo/default.nix
index 49c8fe5470b6..7d2960fc5a66 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-cairo/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-cairo/default.nix
@@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./META.patch ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ ocaml automake gnum4 autoconf unzip
+  nativeBuildInputs = [ pkg-config unzip ];
+  buildInputs = [ ocaml automake gnum4 autoconf
                   findlib freetype lablgtk cairo gdk-pixbuf gtk2 pango ];
 
   createFindlibDestdir = true;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/configurable-binding.patch b/nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/configurable-binding.patch
new file mode 100644
index 000000000000..25a7b92f01fc
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/configurable-binding.patch
@@ -0,0 +1,49 @@
+commit b273c9f7ab10475787db4d6e09bd4b71b374d0ec
+Author: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>
+Date:   Thu Mar 18 01:28:46 2021 +0100
+
+    Let user specify solo5-binding to use
+    
+    This is a little feature for the configure script I wanted to have for
+    the NixOS package: It allows the user to set PKG_CONFIG_DEPS before
+    running configure.sh to disable the autodetection mechanism. This is
+    useful for NixOS as we have all bindings bundled in the solo5 package,
+    so the result would also be solo5-bindings-xen. Additionally, it allows
+    us to do the binding selection declaratively and minimize the risk of
+    accidentally switching backend.
+    
+    PKG_CONFIG_DEPS seems like a bit of an unappropriate variable name for a
+    user “interface”, let me know if you want a dedicated environment
+    variable for this in case there will be more PKG_CONFIG_DEPS.
+
+diff --git a/configure.sh b/configure.sh
+index c254f7b..c675a02 100755
+--- a/configure.sh
++++ b/configure.sh
+@@ -11,13 +11,19 @@ if pkg_exists solo5-bindings-hvt solo5-bindings-spt solo5-bindings-virtio solo5-
+     echo "ERROR: Only one of solo5-bindings-hvt, solo5-bindings-spt, solo5-bindings-virtio, solo5-bindings-muen, solo5-bindings-genode, solo5-bindings-xen can be installed." 1>&2
+     exit 1
+ fi
+-PKG_CONFIG_DEPS=
+-pkg_exists solo5-bindings-hvt && PKG_CONFIG_DEPS=solo5-bindings-hvt
+-pkg_exists solo5-bindings-spt && PKG_CONFIG_DEPS=solo5-bindings-spt
+-pkg_exists solo5-bindings-muen && PKG_CONFIG_DEPS=solo5-bindings-muen
+-pkg_exists solo5-bindings-virtio && PKG_CONFIG_DEPS=solo5-bindings-virtio
+-pkg_exists solo5-bindings-genode && PKG_CONFIG_DEPS=solo5-bindings-genode
+-pkg_exists solo5-bindings-xen && PKG_CONFIG_DEPS=solo5-bindings-xen
++if [ -z "${PKG_CONFIG_DEPS}" ]; then
++    PKG_CONFIG_DEPS=
++    pkg_exists solo5-bindings-hvt && PKG_CONFIG_DEPS=solo5-bindings-hvt
++    pkg_exists solo5-bindings-spt && PKG_CONFIG_DEPS=solo5-bindings-spt
++    pkg_exists solo5-bindings-muen && PKG_CONFIG_DEPS=solo5-bindings-muen
++    pkg_exists solo5-bindings-virtio && PKG_CONFIG_DEPS=solo5-bindings-virtio
++    pkg_exists solo5-bindings-genode && PKG_CONFIG_DEPS=solo5-bindings-genode
++    pkg_exists solo5-bindings-xen && PKG_CONFIG_DEPS=solo5-bindings-xen
++else
++    pkg_exists "${PKG_CONFIG_DEPS}" \
++        || (echo "ERROR: ${PKG_CONFIG_DEPS} is not installed" 1>&2; exit 1) \
++        || exit 1
++fi
+ if [ -z "${PKG_CONFIG_DEPS}" ]; then
+     echo "ERROR: No supported Solo5 bindings package found." 1>&2
+     echo "ERROR: solo5-bindings-hvt, solo5-bindings-spt, solo5-bindings-virtio, solo5-bindings-muen, solo5-bindings-genode or solo5-bindings-xen must be installed." 1>&2
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/default.nix
new file mode 100644
index 000000000000..cf72397057db
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/default.nix
@@ -0,0 +1,87 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, ocaml
+, pkg-config
+, solo5
+, target ? "xen"
+}:
+
+# note: this is not technically an ocaml-module,
+# but can be built with different compilers, so
+# the ocamlPackages set is very useful.
+
+let
+  pname = "ocaml-freestanding";
+in
+
+if lib.versionOlder ocaml.version "4.08"
+then builtins.throw "${pname} is not available for OCaml ${ocaml.version}"
+else
+
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-${pname}-${version}";
+  inherit pname;
+  version = "0.6.4";
+
+  src = fetchFromGitHub {
+    owner = "mirage";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0w3x2wfd04qr6mci4cp1gfqw33yysp8gamgkpgbgwslr0skryiq5";
+  };
+
+  postUnpack = ''
+    # get ocaml-src from the ocaml drv instead of via ocamlfind
+    mkdir -p "${src.name}/ocaml"
+    tar --strip-components=1 -xf ${ocaml.src} -C "${src.name}/ocaml"
+  '';
+
+  patches = [
+    ./no-opam.patch
+    ./configurable-binding.patch
+  ];
+
+  nativeBuildInputs = [
+    ocaml
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [ solo5 ];
+
+  configurePhase = ''
+    runHook preConfigure
+    env PKG_CONFIG_DEPS=solo5-bindings-${target} sh configure.sh
+    runHook postConfigure
+  '';
+
+  preBuild = ''
+    # perform substitutions, so opam isn't needed
+    for flags in flags/cflags.tmp flags/libs.tmp; do
+      substitute "$flags.in" "$flags" \
+        --replace "%{prefix}%" "$out" \
+        --replace "%{ocaml-freestanding:lib}%" "$out/lib"
+    done
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    ./install.sh "$out"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Freestanding OCaml runtime";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+    homepage = "https://github.com/mirage/ocaml-freestanding";
+    platforms = builtins.map ({ arch, os }: "${arch}-${os}")
+      (cartesianProductOfSets {
+          arch = [ "aarch64" "x86_64" ];
+          os = [ "linux" ];
+      } ++ [
+        { arch = "x86_64"; os = "freebsd"; }
+        { arch = "x86_64"; os = "openbsd"; }
+      ]);
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/no-opam.patch b/nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/no-opam.patch
new file mode 100644
index 000000000000..43141b1472a9
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-freestanding/no-opam.patch
@@ -0,0 +1,84 @@
+commit 637b7ce639d54e617170433aa9596176b167d085
+Author: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>
+Date:   Thu Mar 18 01:07:49 2021 +0100
+
+    Allow building without ocamlfind and opam
+    
+    This change is the result of my first go at packaging ocaml-freestanding
+    for NixOS. Our build infrastructure for ocaml there is completely
+    independent of opam at the moment, so depending on opam for the build
+    time is not an option, especially in this case where the information it
+    would give us would be garbage.
+    
+    Fortunately the build environment plays nicely with pkg-config which is
+    already heavily used by ocaml-freestanding. This patch leaves pkg-config
+    to its own devices if opam is not present (it can be assisted by a
+    manually set PKG_CONFIG_PATH environment variable).
+    
+    Additionally, in configure.sh we check if the target ocaml source
+    directory already exists. This allows for building ocaml-freestanding
+    without the ocaml-src package (which would be unnecessarily cumbersome
+    to package for NixOS) and ocamlfind (one less dependency is always a
+    nice bonus). The Makefile needs no fix since the target ocaml/Makefile
+    won't be built if it's already present.
+
+diff --git a/Makefile b/Makefile
+index b07b8c6..a68b31d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -2,6 +2,12 @@
+ 
+ include Makeconf
+ 
++ifneq ($(shell command -v opam),)
++	# only set if opam is available and PKG_CONFIG_PATH isn't
++	# already set in the environment or on the command line
++	PKG_CONFIG_PATH ?= $(shell opam config var prefix)/lib/pkgconfig
++endif
++
+ FREESTANDING_LIBS=openlibm/libopenlibm.a \
+ 		  ocaml/runtime/libasmrun.a \
+ 		  nolibc/libnolibc.a
+@@ -73,8 +79,7 @@ flags/libs.tmp: flags/libs.tmp.in
+ 	opam config subst $@
+ 
+ flags/libs: flags/libs.tmp Makeconf
+-	env PKG_CONFIG_PATH="$(shell opam config var prefix)/lib/pkgconfig" \
+-	    pkg-config $(PKG_CONFIG_DEPS) --libs >> $<
++	pkg-config $(PKG_CONFIG_DEPS) --libs >> $<
+ 	awk -v RS= -- '{ \
+ 	    sub("@@PKG_CONFIG_EXTRA_LIBS@@", "$(PKG_CONFIG_EXTRA_LIBS)", $$0); \
+ 	    print "(", $$0, ")" \
+@@ -84,8 +89,7 @@ flags/cflags.tmp: flags/cflags.tmp.in
+ 	opam config subst $@
+ 
+ flags/cflags: flags/cflags.tmp Makeconf
+-	env PKG_CONFIG_PATH="$(shell opam config var prefix)/lib/pkgconfig" \
+-	    pkg-config $(PKG_CONFIG_DEPS) --cflags >> $<
++	pkg-config $(PKG_CONFIG_DEPS) --cflags >> $<
+ 	awk -v RS= -- '{ \
+ 	    print "(", $$0, ")" \
+ 	    }' $< >$@
+diff --git a/configure.sh b/configure.sh
+index 4d154ed..c254f7b 100755
+--- a/configure.sh
++++ b/configure.sh
+@@ -1,6 +1,8 @@
+ #!/bin/sh
+ 
+-export PKG_CONFIG_PATH=$(opam config var prefix)/lib/pkgconfig
++if command -v opam &> /dev/null; then
++    export PKG_CONFIG_PATH=$(opam config var prefix)/lib/pkgconfig
++fi
+ pkg_exists() {
+     pkg-config --exists "$@"
+ }
+@@ -21,7 +23,7 @@ if [ -z "${PKG_CONFIG_DEPS}" ]; then
+     echo "ERROR: solo5-bindings-hvt, solo5-bindings-spt, solo5-bindings-virtio, solo5-bindings-muen, solo5-bindings-genode or solo5-bindings-xen must be installed." 1>&2
+     exit 1
+ fi
+-ocamlfind query ocaml-src >/dev/null || exit 1
++[ -e "$(dirname "$0")/ocaml" ] || ocamlfind query ocaml-src >/dev/null || exit 1
+ 
+ FREESTANDING_CFLAGS="$(pkg-config --cflags ${PKG_CONFIG_DEPS})"
+ BUILD_ARCH="$(uname -m)"
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/camomile.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/camomile.nix
new file mode 100644
index 000000000000..012f3b61ff32
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/camomile.nix
@@ -0,0 +1,16 @@
+{ buildDunePackage, ocaml_gettext, camomile, ounit, fileutils }:
+
+buildDunePackage {
+  pname = "gettext-camomile";
+  inherit (ocaml_gettext) src version useDune2;
+
+  propagatedBuildInputs = [ camomile ocaml_gettext ];
+
+  doCheck = true;
+  checkInputs = [ ounit fileutils ];
+
+  meta = ocaml_gettext.meta // {
+    description = "Internationalization library using camomile (i18n)";
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
index ba571b32084e..7525a10030eb 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
 
   minimumOCamlVersion = "4.03";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/gildor478/ocaml-gettext/releases/download/v${version}/gettext-v${version}.tbz";
     sha256 = "19ynsldb21r539fiwz1f43apsdnx7hj2a2d9qr9wg2hva9y2qrwb";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/stub.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/stub.nix
index b18c0abc530b..51e902b91408 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/stub.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/stub.nix
@@ -1,14 +1,16 @@
-{ lib, buildDunePackage, ocaml_gettext, ounit }:
+{ buildDunePackage, ocaml_gettext, dune-configurator, ounit }:
 
 buildDunePackage rec {
 
   pname = "gettext-stub";
 
-  inherit (ocaml_gettext) src version meta;
+  inherit (ocaml_gettext) src version useDune2 meta;
+
+  buildInputs = [ dune-configurator ];
 
   propagatedBuildInputs = [ ocaml_gettext ];
 
   doCheck = true;
 
-  checkInputs = lib.optional doCheck ounit;
+  checkInputs = [ ounit ];
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
index 0391498c37ae..a56621465f34 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
@@ -1,78 +1,21 @@
-{ buildDunePackage
-, stdlib-shims
-, ppx_yojson_conv_lib
-, ocaml-syntax-shims
-, yojson
-, result
-, omd
-, octavius
-, dune-build-info
-, uutf
-, csexp
-, cmdliner
-, fetchzip
-, lib
-}:
-let
-  version = "1.4.0";
-  src = fetchzip {
-    url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/jsonrpc-${version}.tbz";
-    sha256 = "16vvwq3d9xmr91r6yv5i2gyqcdliji7asyq4g6iygi617233fa33";
-  };
-
-  # unvendor some (not all) dependencies.
-  # They are vendored by upstream only because it is then easier to install
-  # ocaml-lsp without messing with your opam switch, but nix should prevent
-  # this type of problems without resorting to vendoring.
-  preBuild = ''
-    rm -r ocaml-lsp-server/vendor/{octavius,uutf,ocaml-syntax-shims,omd,cmdliner}
-  '';
-
-  buildInputs = [
-    stdlib-shims
-    ppx_yojson_conv_lib
-    ocaml-syntax-shims
-    octavius
-    uutf
-    csexp
-    dune-build-info
-    omd
-    cmdliner
-    jsonrpc
-  ];
-
-  lsp = buildDunePackage {
-    pname = "lsp";
-    inherit version src;
-    useDune2 = true;
-    minimumOCamlVersion = "4.06";
-
-    inherit buildInputs preBuild;
-  };
+{ buildDunePackage, jsonrpc, lsp, makeWrapper, dot-merlin-reader }:
 
-  jsonrpc = buildDunePackage {
-    pname = "jsonrpc";
-    inherit version src;
-    useDune2 = true;
-    minimumOCamlVersion = "4.06";
-
-    buildInputs = [ yojson stdlib-shims ocaml-syntax-shims ppx_yojson_conv_lib result ];
-  };
-
-in
 buildDunePackage {
   pname = "ocaml-lsp-server";
-  inherit version src;
+  inherit (jsonrpc) version src;
   useDune2 = true;
 
-  inherit preBuild;
+  inherit (lsp) preBuild;
 
-  buildInputs = buildInputs ++ [ lsp ];
+  buildInputs = lsp.buildInputs ++ [ lsp ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/ocamllsp --prefix PATH : ${dot-merlin-reader}/bin
+  '';
 
-  meta = with lib; {
+  meta = jsonrpc.meta // {
     description = "OCaml Language Server Protocol implementation";
-    license = lib.licenses.isc;
-    platforms = platforms.unix;
-    maintainers = [ maintainers.symphorien ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix
new file mode 100644
index 000000000000..701604c8710a
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix
@@ -0,0 +1,31 @@
+{ buildDunePackage
+, stdlib-shims
+, ppx_yojson_conv_lib
+, ocaml-syntax-shims
+, yojson
+, result
+, fetchzip
+, lib
+}:
+
+
+buildDunePackage rec {
+  pname = "jsonrpc";
+  version = "1.4.1";
+  src = fetchzip {
+    url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/jsonrpc-${version}.tbz";
+    sha256 = "0hzpw17qfhb0cxgwah1fv4k300r363dy1kv0977anl44dlanx1v5";
+  };
+
+  useDune2 = true;
+  minimumOCamlVersion = "4.06";
+
+  buildInputs = [ yojson stdlib-shims ocaml-syntax-shims ppx_yojson_conv_lib result ];
+
+  meta = with lib; {
+    description = "Jsonrpc protocol implementation in OCaml";
+    license = licenses.isc;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ symphorien marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix
new file mode 100644
index 000000000000..b501282c1558
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix
@@ -0,0 +1,44 @@
+{ buildDunePackage
+, stdlib-shims
+, ppx_yojson_conv_lib
+, ocaml-syntax-shims
+, jsonrpc
+, omd
+, octavius
+, dune-build-info
+, uutf
+, csexp
+, cmdliner
+}:
+
+buildDunePackage {
+  pname = "lsp";
+  inherit (jsonrpc) version src;
+  useDune2 = true;
+  minimumOCamlVersion = "4.06";
+
+  # unvendor some (not all) dependencies.
+  # They are vendored by upstream only because it is then easier to install
+  # ocaml-lsp without messing with your opam switch, but nix should prevent
+  # this type of problems without resorting to vendoring.
+  preBuild = ''
+    rm -r ocaml-lsp-server/vendor/{octavius,uutf,ocaml-syntax-shims,omd,cmdliner}
+  '';
+
+  buildInputs = [
+    stdlib-shims
+    ppx_yojson_conv_lib
+    ocaml-syntax-shims
+    octavius
+    uutf
+    csexp
+    dune-build-info
+    omd
+    cmdliner
+    jsonrpc
+  ];
+
+  meta = jsonrpc.meta // {
+    description = "LSP protocol implementation in OCaml";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.1.x.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.1.x.nix
index afe3d34963ae..ca88fe32416a 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.1.x.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.1.x.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
    pname = "ocaml-migrate-parsetree";
    version = "2.1.0";
 
+   useDune2 = true;
+
    minimumOCamlVersion = "4.02";
 
    src = fetchurl {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-result/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-result/default.nix
index 2814c6c52806..2fda6f1440be 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-result/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-result/default.nix
@@ -1,9 +1,11 @@
-{ lib, buildDunePackage, fetchurl }:
+{ lib, buildDunePackage, fetchurl, ocaml }:
 
 buildDunePackage rec {
   pname = "result";
   version = "1.5";
 
+  useDune2 = lib.versionAtLeast ocaml.version "4.08";
+
   src = fetchurl {
     url = "https://github.com/janestreet/result/releases/download/${version}/result-${version}.tbz";
     sha256 = "0cpfp35fdwnv3p30a06wd0py3805qxmq3jmcynjc3x2qhlimwfkw";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-version/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-version/default.nix
index 54133850e077..4fde475cf936 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-version/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-version/default.nix
@@ -7,6 +7,8 @@ buildDunePackage rec {
 
   minimumOCamlVersion = "4.07";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/ocurrent/ocaml-version/releases/download/v${version}/ocaml-version-v${version}.tbz";
     sha256 = "15vk8sh50p3f2mbv8z7mqnx76cffri36f2krp25zkkwix8jg7ci4";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix
index 1da80a2202d7..bdbbf1d8c67f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, pkg-config, ncurses, ocaml, findlib, ocaml_pcre, camlzip
+{ stdenv, lib, fetchurl, pkg-config, which, ncurses, ocaml, findlib, ocaml_pcre, camlzip
 , gnutls, nettle
 }:
 
@@ -8,14 +8,14 @@ else
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-ocamlnet-${version}";
-  version = "4.1.8";
+  version = "4.1.9";
 
   src = fetchurl {
     url = "http://download.camlcity.org/download/ocamlnet-${version}.tar.gz";
-    sha256 = "1x703mjqsv9nvffnkj5i36ij2s5zfvxxll2z1qj6a7p428b2yfnm";
+    sha256 = "1vlwxjxr946gdl61a1d7yk859cijq45f60dhn54ik3w4g6cx33pr";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config which ];
   buildInputs = [ ncurses ocaml findlib ocaml_pcre camlzip gnutls nettle ];
 
   createFindlibDestdir = true;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix
index b4842da12dd7..cf869b6e5ef9 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix
@@ -29,9 +29,8 @@ stdenv.mkDerivation rec {
     sha256 = "0xda4fj8p5102lh9xmrn5mv3s0ps6yykqj3mpjf72gf4zd6fzcn7";
   }) ];
 
-  buildInputs = [ which makeWrapper ocaml findlib
-    lwt_react pgocaml camlzip ocaml_sqlite3
-  ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ which ocaml findlib lwt_react pgocaml camlzip ocaml_sqlite3 ];
 
   propagatedBuildInputs = [ cryptokit ipaddr lwt_log lwt_ssl ocamlnet
     ocaml_pcre tyxml xml-light
diff --git a/nixpkgs/pkgs/development/ocaml-modules/opti/default.nix b/nixpkgs/pkgs/development/ocaml-modules/opti/default.nix
index 9638e8e0d4ef..4ce5087912d2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/opti/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/opti/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "opti";
   version = "1.0.3";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.02";
 
   src = fetchurl {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/optint/default.nix b/nixpkgs/pkgs/development/ocaml-modules/optint/default.nix
index 18e4bd1ae864..7f8ded5feb6c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/optint/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/optint/default.nix
@@ -9,6 +9,8 @@ buildDunePackage rec {
     sha256 = "1a7gabxqmfvii8qnxq1clx43md2h9glskxhac8y8r0rhzblx3s1a";
   };
 
+  useDune2 = true;
+
   meta = {
     homepage = "https://github.com/mirage/optint";
     description = "Abstract type of integer between x64 and x86 architecture";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ounit2/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ounit2/default.nix
index 52676a1c88d9..0b68609584d4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ounit2/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ounit2/default.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
   pname = "ounit2";
   version = "2.2.4";
 
+  useDune2 = lib.versionAtLeast ocaml.version "4.08";
+
   src = fetchurl {
     url = "https://github.com/gildor478/ounit/releases/download/v${version}/ounit-v${version}.tbz";
     sha256 = "0i9kiqbf2dp12c4qcvbn4abdpdp6h4g5z54ycsh0q8jpv6jnkh5m";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/owl-base/default.nix b/nixpkgs/pkgs/development/ocaml-modules/owl-base/default.nix
index b930ea88654b..b767b1db24c8 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/owl-base/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/owl-base/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "owl-base";
-  version = "1.0.0";
+  version = "1.0.1";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/owlbarn/owl/releases/download/${version}/owl-${version}.tbz";
-    sha256 = "1gny4351ws2r7dp53nampfyh39l0z6qqvxj5v3d05mpdi2aa06yr";
+    sha256 = "72ca9f6edd302fdfa16c7559cedac7ac2c885466a367e17ea1ea8807b2dd13ef";
   };
 
   minimumOCamlVersion = "4.10";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/parany/default.nix b/nixpkgs/pkgs/development/ocaml-modules/parany/default.nix
index afe9e7d39b57..a4378016b47c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/parany/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/parany/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "parany";
   version = "8.0.0";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner = "UnixJunkie";
     repo   = pname;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/parmap/default.nix b/nixpkgs/pkgs/development/ocaml-modules/parmap/default.nix
index 5127dc3b1e6d..7adc8482b232 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/parmap/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/parmap/default.nix
@@ -1,14 +1,18 @@
-{ lib, buildDunePackage, fetchurl }:
+{ lib, buildDunePackage, fetchurl, dune-configurator }:
 
 buildDunePackage rec {
   pname = "parmap";
-  version = "1.1.1";
+  version = "1.2";
+
+  useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/rdicosmo/${pname}/releases/download/${version}/${pname}-${version}.tbz";
-    sha256 = "1pci7b1jqxkgmrbhr0p5j98i4van5nfmmb3sak8cyvxhwgna93j4";
+    sha256 = "sha256-XUXptzD0eytaypaBQ+EBp4iVFRE6/Y0inS93t/YZrM8=";
   };
 
+  buildInputs = [ dune-configurator ];
+
   doCheck = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/pbkdf/default.nix b/nixpkgs/pkgs/development/ocaml-modules/pbkdf/default.nix
new file mode 100644
index 000000000000..1ecf213f6d36
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/pbkdf/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, mirage-crypto
+, alcotest
+}:
+
+buildDunePackage rec {
+  pname = "pbkdf";
+  version = "1.1.0";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/abeaumont/ocaml-pbkdf/releases/download/${version}/pbkdf-${version}.tbz";
+    sha256 = "e53ed1bd9abf490c858a341c10fb548bc9ad50d4479acdf95a9358a73d042264";
+  };
+
+  propagatedBuildInputs = [ mirage-crypto ];
+  checkInputs = [ alcotest ];
+  doCheck = true;
+
+  meta = {
+    description = "Password based key derivation functions (PBKDF) from PKCS#5";
+    maintainers = [ lib.maintainers.sternenseemann ];
+    license = lib.licenses.bsd2;
+    homepage = "https://github.com/abeaumont/ocaml-pbkdf";
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/ocaml-modules/pgocaml/default.nix b/nixpkgs/pkgs/development/ocaml-modules/pgocaml/default.nix
index f67d614af3ae..5c00f2c8991f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/pgocaml/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/pgocaml/default.nix
@@ -4,12 +4,12 @@
 
 buildDunePackage rec {
   pname = "pgocaml";
-  version = "4.2.2";
+  version = "4.2.2-dev-20210111";
   src = fetchFromGitHub {
     owner = "darioteixeira";
     repo = "pgocaml";
-    rev = version;
-    sha256 = "1rdypc83nap9j2ml9r6n1pzgf79gk1yffwyi6fmcrl7zmy01cg0n";
+    rev = "1bb0025deeb3d14029afdcc69aaa7847026e243e";
+    sha256 = "11inbjf87gclc2xmpq56ag4cm4467y9q9hjgbdn69fa1bman2zn2";
   };
 
   minimumOCamlVersion = "4.08";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/pgocaml/ppx.nix b/nixpkgs/pkgs/development/ocaml-modules/pgocaml/ppx.nix
index 35c19622f88d..dce2e2b0c99d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/pgocaml/ppx.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/pgocaml/ppx.nix
@@ -1,8 +1,8 @@
-{ buildDunePackage, pgocaml, ppx_optcomp, ppx_tools, ppx_tools_versioned, rresult }:
+{ buildDunePackage, pgocaml, ppx_optcomp }:
 
 buildDunePackage {
   pname = "pgocaml_ppx";
   inherit (pgocaml) src version useDune2 meta;
 
-  propagatedBuildInputs = [ pgocaml ppx_optcomp ppx_tools ppx_tools_versioned rresult ];
+  propagatedBuildInputs = [ pgocaml ppx_optcomp ];
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_bap/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_bap/default.nix
new file mode 100644
index 000000000000..f0a223c3db75
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_bap/default.nix
@@ -0,0 +1,51 @@
+{ lib, buildDunePackage
+, fetchFromGitHub
+, ppx_assert
+, ppx_bench
+, ppx_bin_prot
+, ppx_compare
+, ppx_enumerate
+, ppx_hash
+, ppx_here
+, ppx_optcomp
+, ppx_sexp_conv
+, ppx_sexp_value
+}:
+
+buildDunePackage rec {
+  pname = "ppx_bap";
+  version = "0.14";
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.07";
+
+  src = fetchFromGitHub {
+    owner = "BinaryAnalysisPlatform";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1c6rcdp8bicdiwqc2mb59cl9l2vxlp3y8hmnr9x924fq7acly248";
+  };
+
+  buildInputs = [
+    ppx_optcomp
+    ppx_sexp_value
+  ];
+
+  propagatedBuildInputs = [
+    ppx_assert
+    ppx_bench
+    ppx_bin_prot
+    ppx_compare
+    ppx_enumerate
+    ppx_hash
+    ppx_here
+    ppx_sexp_conv
+  ];
+
+  meta = {
+    description = "The set of ppx rewriters for BAP";
+    license = lib.licenses.mit;
+    inherit (src.meta) homepage;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_cstubs/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_cstubs/default.nix
new file mode 100644
index 000000000000..b4ddb4dd5e45
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_cstubs/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchFromGitHub
+, buildDunePackage
+, bigarray-compat
+, containers
+, cppo
+, ctypes
+, integers
+, num
+, ppxlib
+, re
+}:
+
+buildDunePackage rec {
+  pname = "ppx_cstubs";
+  version = "0.6.1.1";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "fdopen";
+    repo = "ppx_cstubs";
+    rev = version;
+    sha256 = "0rgg78435ypi6ryhcq5ljkch4qjvra2jqjd47c2hhhcbwvi2ssxh";
+  };
+
+  buildInputs = [
+    bigarray-compat
+    containers
+    cppo
+    ctypes
+    integers
+    num
+    ppxlib
+    re
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fdopen/ppx_cstubs";
+    description = "Preprocessor for easier stub generation with ocaml-ctypes";
+    license = licenses.mit;
+    maintainers = [ maintainers.osener ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_derivers/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_derivers/default.nix
index 3d4675ed90b9..84dda38846fe 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ppx_derivers/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_derivers/default.nix
@@ -1,9 +1,11 @@
-{ lib, fetchFromGitHub, buildDunePackage }:
+{ lib, fetchFromGitHub, buildDunePackage, ocaml }:
 
 buildDunePackage rec {
   pname = "ppx_derivers";
   version = "1.2.1";
 
+  useDune2 = lib.versionAtLeast ocaml.version "4.08";
+
   minimumOCamlVersion = "4.02";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving/default.nix
index 910e53900966..7d415bd894e0 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving/default.nix
@@ -1,15 +1,28 @@
-{ lib, fetchurl, buildDunePackage
-, cppo, ppxlib, ppx_derivers, result, ounit, ocaml-migrate-parsetree
+{ lib
+, fetchurl
+, buildDunePackage
+, cppo
+, ppxlib
+, ppx_derivers
+, result
+, ounit
+, ocaml-migrate-parsetree
+, ocaml-migrate-parsetree-2-1
 }:
 
 let params =
-  if lib.versionAtLeast ppxlib.version "0.15"
-  then {
+  if lib.versionAtLeast ppxlib.version "0.20" then {
+    version = "5.2.1";
+    sha256 = "11h75dsbv3rs03pl67hdd3lbim7wjzh257ij9c75fcknbfr5ysz9";
+    useOMP2 = true;
+  } else if lib.versionAtLeast ppxlib.version "0.15" then {
     version = "5.1";
     sha256 = "1i64fd7qrfzbam5hfbl01r0sx4iihsahcwqj13smmrjlnwi3nkxh";
+    useOMP2 = false;
   } else {
     version = "5.0";
     sha256 = "0fkzrn4pdyvf1kl0nwvhqidq01pnq3ql8zk1jd56hb0cxaw851w3";
+    useOMP2 = false;
   }
 ; in
 
@@ -25,7 +38,13 @@ buildDunePackage rec {
   };
 
   buildInputs = [ ppxlib cppo ];
-  propagatedBuildInputs = [ ocaml-migrate-parsetree ppx_derivers result ];
+  propagatedBuildInputs = [
+    (if params.useOMP2
+    then ocaml-migrate-parsetree-2-1
+    else ocaml-migrate-parsetree)
+    ppx_derivers
+    result
+  ];
 
   doCheck = true;
   checkInputs = [ ounit ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_import/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_import/default.nix
index b5651a8cec2a..4ad26ff0862b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ppx_import/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_import/default.nix
@@ -1,27 +1,28 @@
-{ lib, fetchurl, buildDunePackage, ocaml
-, ounit, ppx_deriving, ppx_tools_versioned
-, ppxlib, ocaml-migrate-parsetree
+{ lib, fetchurl, buildDunePackage
+, ppx_tools_versioned
+, ocaml-migrate-parsetree
+, ounit, ppx_deriving, ppxlib
 }:
 
 buildDunePackage rec {
   pname = "ppx_import";
-  version = "1.7.1";
+  version = "1.8.0";
 
   useDune2 = true;
 
   minimumOCamlVersion = "4.04";
 
   src = fetchurl {
-    url = "https://github.com/ocaml-ppx/ppx_import/releases/download/v${version}/ppx_import-v${version}.tbz";
-    sha256 = "16dyxfb7syz659rqa7yq36ny5vzl7gkqd7f4m6qm2zkjc1gc8j4v";
+    url = "https://github.com/ocaml-ppx/ppx_import/releases/download/v${version}/ppx_import-${version}.tbz";
+    sha256 = "0zqcj70yyp4ik4jc6jz3qs2xhb94vxc6yq9ij0d5cyak28klc3gv";
   };
 
   propagatedBuildInputs = [
-    ppxlib ppx_tools_versioned ocaml-migrate-parsetree
+    ppx_tools_versioned ocaml-migrate-parsetree
   ];
 
   doCheck = true;
-  checkInputs = [ ounit ppx_deriving ];
+  checkInputs = [ ounit ppx_deriving ppxlib ];
 
   meta = {
     description = "A syntax extension that allows to pull in types or signatures from other compiled interface files";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
index 442a4126a897..07d817d22938 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "ppx_yojson_conv_lib";
   version = "0.14.0";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.02.3";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppxlib/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppxlib/default.nix
index 03085a13cdf0..c92992197d22 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ppxlib/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppxlib/default.nix
@@ -1,5 +1,8 @@
 { lib, fetchFromGitHub, buildDunePackage, ocaml
-, version ? if lib.versionAtLeast ocaml.version "4.07" then "0.15.0" else "0.13.0"
+, version ?
+  if lib.versionAtLeast ocaml.version "4.07"
+  then if lib.versionAtLeast ocaml.version "4.08"
+  then "0.22.0" else "0.15.0" else "0.13.0"
 , ocaml-compiler-libs, ocaml-migrate-parsetree, ppx_derivers, stdio
 , stdlib-shims, ocaml-migrate-parsetree-2-1
 }:
@@ -19,11 +22,17 @@ let param = {
   "0.15.0" = {
     sha256 = "1p037kqj5858xrhh0dps6vbf4fnijla6z9fjz5zigvnqp4i2xkrn";
     min_version = "4.07";
+    max_version = "4.12";
     useOMP2 = false;
   };
   "0.18.0" = {
     sha256 = "1ciy6va2gjrpjs02kha83pzh0x1gkmfsfsdgabbs1v14a8qgfibm";
     min_version = "4.07";
+    max_version = "4.12";
+  };
+  "0.22.0" = {
+    sha256 = "0kf7lgcwygf6zlx7rwddqpqvasa6v7xiq0bqal8vxlib6lpg074q";
+    min_version = "4.07";
   };
 }."${version}"; in
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/psmt2-frontend/default.nix b/nixpkgs/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
index 30fb5de7cb8e..dbdf3970f636 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
@@ -1,35 +1,27 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, ocaml, findlib, menhir }:
+{ lib, fetchFromGitHub, buildDunePackage, menhir }:
 
-if !lib.versionAtLeast ocaml.version "4.03"
-then throw "psmt2-frontend is not available for OCaml ${ocaml.version}"
-else
-
-stdenv.mkDerivation rec {
-  version = "0.2";
-  name = "ocaml${ocaml.version}-psmt2-frontend-${version}";
+buildDunePackage rec {
+  version = "0.3.1";
+  pname = "psmt2-frontend";
 
   src = fetchFromGitHub {
-    owner = "Coquera";
-    repo = "psmt2-frontend";
+    owner = "ACoquereau";
+    repo = pname;
     rev = version;
-    sha256 = "097zmbrx4gp2gnrxdmsm9lkkp5450gwi0blpxqy3833m6k5brx3n";
+    sha256 = "038jrfsq09nhnzpjiishg4adk09w3aw1bpczgbj66lqqilkd6gci";
   };
 
-  prefixKey = "-prefix ";
-
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ ocaml findlib menhir ];
+  useDune2 = true;
 
-  createFindlibDestdir = true;
+  minimumOCamlVersion = "4.03";
 
-  installFlags = [ "LIBDIR=$(OCAMLFIND_DESTDIR)" ];
+  buildInputs = [ menhir ];
 
   meta = {
     description = "A simple parser and type-checker for polomorphic extension of the SMT-LIB 2 language";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
-    inherit (ocaml.meta) platforms;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/psq/default.nix b/nixpkgs/pkgs/development/ocaml-modules/psq/default.nix
index ff9c52c50a76..f7c2f3497a11 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/psq/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/psq/default.nix
@@ -1,10 +1,12 @@
-{ lib, buildDunePackage, fetchurl, seq }:
+{ lib, buildDunePackage, ocaml, fetchurl, seq, qcheck-alcotest }:
 
 buildDunePackage rec {
   minimumOCamlVersion = "4.03";
   pname = "psq";
   version = "0.2.0";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/pqwy/psq/releases/download/v${version}/psq-v${version}.tbz";
     sha256 = "1j4lqkq17rskhgcrpgr4n1m1a2b1x35mlxj6f9g05rhpmgvgvknk";
@@ -12,6 +14,9 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ seq ];
 
+  doCheck = lib.versionAtLeast ocaml.version "4.07";
+  checkInputs = [ qcheck-alcotest ];
+
   meta = {
     description = "Functional Priority Search Queues for OCaml";
     homepage = "https://github.com/pqwy/psq";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/qcheck/core.nix b/nixpkgs/pkgs/development/ocaml-modules/qcheck/core.nix
index 03de70237a46..e1b3503b5418 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/qcheck/core.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/qcheck/core.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "qcheck-core";
-  version = "0.16";
+  version = "0.17";
 
   useDune2 = true;
 
@@ -12,7 +12,7 @@ buildDunePackage rec {
     owner = "c-cube";
     repo = "qcheck";
     rev = version;
-    sha256 = "1s5dpqj8zvd3wr2w3fp4wb6yc57snjpxzzfv9fb6l9qgigswwjdr";
+    sha256 = "0qfyqhfg98spmfci9z6f527a16gwjnx2lrbbgw67p37ys5acrfar";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix b/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix
index d5829127a8bc..5e9a89a83769 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "qtest";
-  version = "2.11.1";
+  version = "2.11.2";
 
   useDune2 = true;
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
     owner = "vincent-hugot";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01aaqnblpkrkv1b2iy5cwn92vxdj4yjiav9s2nvvrqz5m8b9hi1f";
+    sha256 = "sha256-VLY8+Nu6md0szW4RVxTFwlSQ9kyrgUqf7wQEA6GW8BE=";
   };
 
   propagatedBuildInputs = [ qcheck ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/re/default.nix b/nixpkgs/pkgs/development/ocaml-modules/re/default.nix
index ca3cf1e82675..4734d4a9bf52 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/re/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/re/default.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
 
   minimumOCamlVersion = "4.02";
 
+  useDune2 = lib.versionAtLeast ocaml.version "4.08";
+
   src = fetchurl {
     url = "https://github.com/ocaml/ocaml-re/releases/download/${version}/re-${version}.tbz";
     sha256 = "1gas4ky49zgxph3870nffzkr6y41kkpqp4nj38pz1gh49zcf12aj";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/rope/default.nix b/nixpkgs/pkgs/development/ocaml-modules/rope/default.nix
index 481342e98c7a..f29219e30c24 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/rope/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/rope/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, dune, benchmark }:
+{ stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, dune_2, benchmark }:
 
 let param =
   if lib.versionAtLeast ocaml.version "4.03"
@@ -6,7 +6,7 @@ let param =
     version = "0.6.2";
     url = "https://github.com/Chris00/ocaml-rope/releases/download/${version}/rope-${version}.tbz";
     sha256 = "15cvfa0s1vjx7gjd07d3fkznilishqf4z4h2q5f20wm9ysjh2h2i";
-    buildInputs = [ dune ];
+    buildInputs = [ dune_2 ];
     extra = {
       buildPhase = "dune build -p rope";
       installPhase = ''
diff --git a/nixpkgs/pkgs/development/ocaml-modules/sha/default.nix b/nixpkgs/pkgs/development/ocaml-modules/sha/default.nix
new file mode 100644
index 000000000000..a506e6795fd1
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/sha/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, fetchurl
+, buildDunePackage
+, ounit
+}:
+
+buildDunePackage rec {
+  pname = "sha";
+  version = "1.13";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/djs55/ocaml-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
+    sha256 = "00z2s4fsv9i1h09rj5dy3nd9hhcn79b75sn2ljj5wihlf4y4g304";
+  };
+
+  doCheck = true;
+  checkInputs = [ ounit ];
+
+  meta = with lib; {
+    description = "Binding for SHA interface code in OCaml";
+    maintainers = [ maintainers.arthurteisseire ];
+    homepage = "https://github.com/djs55/ocaml-${pname}";
+    license = licenses.isc;
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/sodium/default.nix b/nixpkgs/pkgs/development/ocaml-modules/sodium/default.nix
index d0c203689e32..dc090e91743f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/sodium/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/sodium/default.nix
@@ -15,6 +15,11 @@ stdenv.mkDerivation rec {
     sha256 = "124gpi1jhac46x05gp5viykyrafnlp03v1cmkl13c6pgcs8w04pv";
   };
 
+  patches = [
+    # ctypes.stubs no longer pulls in bigarray automatically
+    ./lib-gen-link-bigarray.patch
+  ];
+
   buildInputs = [ ocaml findlib ocamlbuild ];
   propagatedBuildInputs = [ ctypes libsodium ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/sodium/lib-gen-link-bigarray.patch b/nixpkgs/pkgs/development/ocaml-modules/sodium/lib-gen-link-bigarray.patch
new file mode 100644
index 000000000000..f05f53320975
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/sodium/lib-gen-link-bigarray.patch
@@ -0,0 +1,7 @@
+diff --git a/lib_gen/_tags b/lib_gen/_tags
+index 7a7e632..7a4e0b7 100644
+--- a/lib_gen/_tags
++++ b/lib_gen/_tags
+@@ -1 +1 @@
+-<*.{ml,byte,native}>: package(ctypes.stubs)
++<*.{ml,byte,native}>: package(ctypes.stubs), package(bigarray)
diff --git a/nixpkgs/pkgs/development/ocaml-modules/sosa/default.nix b/nixpkgs/pkgs/development/ocaml-modules/sosa/default.nix
index 4278989341f1..3687f2be9974 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/sosa/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/sosa/default.nix
@@ -1,7 +1,11 @@
 { lib, fetchFromGitHub, stdenv
-, findlib, nonstd, ocaml, ocamlbuild
+, findlib, ocaml, ocamlbuild
 }:
 
+if !lib.versionAtLeast ocaml.version "4.02"
+then throw "sosa is not available for OCaml ${ocaml.version}"
+else
+
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-sosa-${version}";
   version = "0.3.0";
@@ -13,7 +17,7 @@ stdenv.mkDerivation rec {
     sha256 = "053hdv6ww0q4mivajj4iyp7krfvgq8zajq9d8x4mia4lid7j0dyk";
   };
 
-  buildInputs = [ nonstd ocaml ocamlbuild findlib ];
+  buildInputs = [ ocaml ocamlbuild findlib ];
 
   buildPhase = "make build";
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/spacetime_lib/default.nix b/nixpkgs/pkgs/development/ocaml-modules/spacetime_lib/default.nix
index db6d184655cb..009b2ce32619 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/spacetime_lib/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/spacetime_lib/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "spacetime_lib";
   version = "0.3.0";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner = "lpw25";
     repo = "spacetime_lib";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/spelll/default.nix b/nixpkgs/pkgs/development/ocaml-modules/spelll/default.nix
index 5901dcb896ac..9df0779e53a3 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/spelll/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/spelll/default.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
   pname = "spelll";
   version = "0.3";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner = "c-cube";
     repo = pname;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix b/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix
index 1b8f9d629e39..90b469288c7f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix
@@ -1,8 +1,9 @@
-{ lib, fetchurl, sqlite, pkg-config, buildDunePackage }:
+{ lib, fetchurl, sqlite, pkg-config, buildDunePackage, dune-configurator }:
 
 buildDunePackage rec {
   pname = "sqlite3";
   version = "5.0.2";
+  useDune2 = true;
   minimumOCamlVersion = "4.05";
 
   src = fetchurl {
@@ -11,7 +12,7 @@ buildDunePackage rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ sqlite ];
+  buildInputs = [ dune-configurator sqlite ];
 
   meta = with lib; {
     homepage = "http://mmottl.github.io/sqlite3-ocaml/";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/stdint/default.nix b/nixpkgs/pkgs/development/ocaml-modules/stdint/default.nix
index bffef61956e2..52d97e12998f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/stdint/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/stdint/default.nix
@@ -1,18 +1,43 @@
-{ lib, fetchFromGitHub, buildDunePackage }:
+{ lib, fetchurl, fetchpatch, buildDunePackage, qcheck }:
 
 buildDunePackage rec {
   pname = "stdint";
-  version = "0.6.0";
+  version = "0.7.0";
 
-  minimumOCamlVersion = "4.07";
+  useDune2 = true;
 
-  src = fetchFromGitHub {
-    owner = "andrenth";
-    repo = "ocaml-stdint";
-    rev = version;
-    sha256 = "19ccxs0vij81vyc9nqc9kbr154ralb9dgc2y2nr71a5xkx6xfn0y";
+  minimumOCamlVersion = "4.03";
+
+  src = fetchurl {
+    url = "https://github.com/andrenth/ocaml-stdint/releases/download/${version}/stdint-${version}.tbz";
+    sha256 = "4fcc66aef58e2b96e7af3bbca9d910aa239e045ba5fb2400aaef67d0041252dc";
   };
 
+  patches = [
+    # fix test bug, remove at next release
+    (fetchpatch {
+      url = "https://github.com/andrenth/ocaml-stdint/commit/fc64293f99f597cdfd4470954da6fb323988e2af.patch";
+      sha256 = "0nxck14vfjfzldsf8cdj2jg1cvhnyh37hqnrcxbdkqmpx4rxkbxs";
+    })
+  ];
+
+  # 1. disable remaining broken tests, see
+  #    https://github.com/andrenth/ocaml-stdint/issues/59
+  # 2. fix tests to liberal test range
+  #    https://github.com/andrenth/ocaml-stdint/pull/61
+  postPatch = ''
+    substituteInPlace tests/stdint_test.ml \
+      --replace 'test "An integer should perform left-shifts correctly"' \
+                'skip "An integer should perform left-shifts correctly"' \
+      --replace 'test "Logical shifts must not sign-extend"' \
+                'skip "Logical shifts must not sign-extend"' \
+      --replace 'let pos_int = QCheck.map_same_type abs in_range' \
+                'let pos_int = QCheck.int_range 0 maxi'
+  '';
+
+  doCheck = true;
+  checkInputs = [ qcheck ];
+
   meta = {
     description = "Various signed and unsigned integers for OCaml";
     homepage = "https://github.com/andrenth/ocaml-stdint";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/stdlib-shims/default.nix b/nixpkgs/pkgs/development/ocaml-modules/stdlib-shims/default.nix
index d76ec29e63aa..470a2a5bd030 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/stdlib-shims/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/stdlib-shims/default.nix
@@ -2,11 +2,12 @@
 
 buildDunePackage rec {
   pname = "stdlib-shims";
-  version = "0.1.0";
+  version = "0.3.0";
   src = fetchurl {
     url = "https://github.com/ocaml/${pname}/releases/download/${version}/${pname}-${version}.tbz";
-    sha256 = "1jv6yb47f66239m7hsz7zzw3i48mjpbvfgpszws48apqx63wjwsk";
+    sha256 = "0jnqsv6pqp5b5g7lcjwgd75zqqvcwcl5a32zi03zg1kvj79p5gxs";
   };
+  useDune2 = lib.versionAtLeast ocaml.version "4.08";
   minimumOCamlVersion = "4.02";
   doCheck = true;
   meta = {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/tcpip/default.nix b/nixpkgs/pkgs/development/ocaml-modules/tcpip/default.nix
index 80fa01066f1e..4d9f97480ef2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/tcpip/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/tcpip/default.nix
@@ -1,5 +1,5 @@
 { lib, buildDunePackage, fetchurl
-, bisect_ppx, ppx_cstruct
+, bisect_ppx, ppx_cstruct, pkg-config
 , rresult, cstruct, cstruct-lwt, mirage-net, mirage-clock
 , mirage-random, mirage-stack, mirage-protocols, mirage-time
 , ipaddr, macaddr, macaddr-cstruct, mirage-profile, fmt
@@ -7,22 +7,29 @@
 , alcotest, mirage-flow, mirage-vnetif, pcap-format
 , mirage-clock-unix, arp, ipaddr-cstruct, mirage-random-test
 , lru
+, withFreestanding ? false
+, ocaml-freestanding
 }:
 
 buildDunePackage rec {
   pname = "tcpip";
-  version = "6.0.0";
+  version = "6.1.0";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "0wbrs8jz1vw3zdrqmqcwawxh4yhc2gy30rw7gz4w116cblkvnb8s";
+    sha256 = "7b3ed2e1ca835c1cc65ac911bcb0de12ebc2b580dd195006bdea2cb387510474";
   };
 
+  patches = [
+    ./makefile-no-opam.patch
+  ];
+
   nativeBuildInputs = [
     bisect_ppx
     ppx_cstruct
+    pkg-config
   ];
 
   propagatedBuildInputs = [
@@ -48,6 +55,8 @@ buildDunePackage rec {
     randomconv
     ethernet
     lru
+  ] ++ lib.optionals withFreestanding [
+    ocaml-freestanding
   ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/tcpip/makefile-no-opam.patch b/nixpkgs/pkgs/development/ocaml-modules/tcpip/makefile-no-opam.patch
new file mode 100644
index 000000000000..1603a1278b0e
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/tcpip/makefile-no-opam.patch
@@ -0,0 +1,12 @@
+diff --git a/freestanding/Makefile b/freestanding/Makefile
+index f22d220d..3e97b4c5 100644
+--- a/freestanding/Makefile
++++ b/freestanding/Makefile
+@@ -1,4 +1,6 @@
+-PKG_CONFIG_PATH := $(shell opam config var prefix)/lib/pkgconfig
++ifneq (, $(shell command -v opam))
++	PKG_CONFIG_PATH ?= $(shell opam config var prefix)/lib/pkgconfig
++endif
+ 
+ EXISTS := $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) pkg-config --exists ocaml-freestanding; echo $$?)
+ 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/torch/default.nix b/nixpkgs/pkgs/development/ocaml-modules/torch/default.nix
index d90a80c5648c..5f59b4ae056e 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/torch/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/torch/default.nix
@@ -17,7 +17,7 @@
 
 buildDunePackage rec {
   pname = "torch";
-  version = "0.11";
+  version = "0.12";
 
   useDune2 = true;
 
@@ -27,7 +27,7 @@ buildDunePackage rec {
     owner = "LaurentMazare";
     repo   = "ocaml-${pname}";
     rev    = version;
-    sha256 = "19zbl9zn6fslrcm6x9cis6nswhwz8mc57nrhkada658n7rcdmskr";
+    sha256 = "0nl6hd2rivhgkc3sdkdmrk3j0ij3xjx1clhqm8m5iznir4g77g91";
   };
 
   buildInputs = [ dune-configurator ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/uucp/default.nix b/nixpkgs/pkgs/development/ocaml-modules/uucp/default.nix
index 020b256c72f5..bb70ff6a4b7e 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/uucp/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/uucp/default.nix
@@ -1,12 +1,16 @@
-{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, uunf }:
+{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, uunf, uucd }:
 
 let
   pname = "uucp";
-  version = "11.0.0";
+  version = "13.0.0";
   webpage = "https://erratique.ch/software/${pname}";
+  minimumOCamlVersion = "4.03";
+  doCheck = true;
 in
 
-assert lib.versionAtLeast ocaml.version "4.01";
+if !(lib.versionAtLeast ocaml.version minimumOCamlVersion)
+then builtins.throw "${pname} needs at least OCaml ${minimumOCamlVersion}"
+else
 
 stdenv.mkDerivation {
 
@@ -14,17 +18,29 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "${webpage}/releases/${pname}-${version}.tbz";
-    sha256 = "0pidg2pmqsifmk4xx9cc5p5jprhg26xb68g1xddjm7sjzbdzhlm4";
+    sha256 = "sha256-OPpHbCOC/vMFdyHwyhCSisUv2PyO8xbeY2oq1a9HbqY=";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild topkg uutf uunf ];
 
   propagatedBuildInputs = [ uchar ];
 
-  buildPhase = "${topkg.buildPhase} --with-cmdliner false";
+  buildPhase = ''
+    runHook preBuild
+    ${topkg.buildPhase} --with-cmdliner false --tests ${lib.boolToString doCheck}
+    runHook postBuild
+  '';
 
   inherit (topkg) installPhase;
 
+  inherit doCheck;
+  checkPhase = ''
+    runHook preCheck
+    ${topkg.run} test
+    runHook postCheck
+  '';
+  checkInputs = [ uucd ];
+
   meta = with lib; {
     description = "An OCaml library providing efficient access to a selection of character properties of the Unicode character database";
     homepage = webpage;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/visitors/default.nix b/nixpkgs/pkgs/development/ocaml-modules/visitors/default.nix
index bda50bdb78ed..a47cd414fb1e 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/visitors/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/visitors/default.nix
@@ -2,18 +2,18 @@
 
 buildDunePackage rec {
   pname = "visitors";
-  version = "20210127";
+  version = "20210316";
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.08";
 
   src = fetchFromGitLab {
     owner = "fpottier";
     repo = pname;
     rev = version;
     domain = "gitlab.inria.fr";
-    sha256 = "0b73h7d4yv04a0b5x2i222jknbcgf9vvxzfjxzy2jwanxz9d873z";
+    sha256 = "12d45ncy3g9mpcs6n58aq6yzs5qz662msgcr7ccms9jhiq44m8f7";
   };
 
   propagatedBuildInputs = [ ppxlib ppx_deriving result ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/wodan/irmin.nix b/nixpkgs/pkgs/development/ocaml-modules/wodan/irmin.nix
index a42259af9e6b..86064d887dbb 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/wodan/irmin.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/wodan/irmin.nix
@@ -15,6 +15,12 @@ buildDunePackage rec {
     wodan
   ];
 
-  meta = wodan.meta // { description = "Wodan as an Irmin store"; };
-
+  meta = wodan.meta // {
+    # wodan is currently incompatible with irmin 2.3.0.
+    # additionally upgrading to current master (unclear
+    # if the issue is fixed there) is not possible as it
+    # depends on a custom fork of mirage-block
+    broken = true;
+    description = "Wodan as an Irmin store";
+  };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/wtf8/default.nix b/nixpkgs/pkgs/development/ocaml-modules/wtf8/default.nix
index 828df66b41d5..fec6c433604e 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/wtf8/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/wtf8/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "wtf8";
   version = "1.0.2";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.02";
 
   src = fetchurl {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/yojson/default.nix b/nixpkgs/pkgs/development/ocaml-modules/yojson/default.nix
index c9bf285b7bda..07025be296ce 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/yojson/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/yojson/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, ocaml, findlib, dune, cppo, easy-format, biniou }:
+{ lib, stdenv, fetchzip, ocaml, findlib, dune_2, cppo, easy-format, biniou }:
 let
   pname = "yojson";
   param =
@@ -6,7 +6,7 @@ let
     version = "1.7.0";
     url = "https://github.com/ocaml-community/yojson/releases/download/${version}/yojson-${version}.tbz";
     sha256 = "08llz96if8bcgnaishf18si76cv11zbkni0aldb54k3cn7ipiqvd";
-    nativeBuildInputs = [ dune ];
+    nativeBuildInputs = [ dune_2 ];
     extra = {
       installPhase = ''
         dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${pname}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/zarith/default.nix b/nixpkgs/pkgs/development/ocaml-modules/zarith/default.nix
index bddf2a2448fd..eed6b158d4a6 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/zarith/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/zarith/default.nix
@@ -1,31 +1,26 @@
-{ lib, stdenv, fetchurl
-, ocaml, findlib, pkg-config, perl
+{ lib, stdenv, fetchFromGitHub
+, ocaml, findlib, pkg-config
 , gmp
 }:
 
-let source =
-  if lib.versionAtLeast ocaml.version "4.02"
-  then {
-    version = "1.11";
-    url = "https://github.com/ocaml/Zarith/archive/release-1.11.tar.gz";
-    sha256 = "111n33flg4aq5xp5jfksqm4yyz6mzxx9ps9a4yl0dz8h189az5pr";
-  } else {
-    version = "1.3";
-    url = "http://forge.ocamlcore.org/frs/download.php/1471/zarith-1.3.tgz";
-    sha256 = "1mx3nxcn5h33qhx4gbg0hgvvydwlwdvdhqcnvfwnmf9jy3b8frll";
-  };
-in
+if !lib.versionAtLeast ocaml.version "4.04"
+then throw "zarith is not available for OCaml ${ocaml.version}"
+else
 
 stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-zarith-${version}";
-  inherit (source) version;
-  src = fetchurl { inherit (source) url sha256; };
+  pname = "ocaml${ocaml.version}-zarith";
+  version = "1.12";
+  src = fetchFromGitHub {
+    owner = "ocaml";
+    repo = "Zarith";
+    rev = "release-${version}";
+    sha256 = "1jslm1rv1j0ya818yh23wf3bb6hz7qqj9pn5fwl45y9mqyqa01s9";
+  };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ ocaml findlib perl ];
+  buildInputs = [ ocaml findlib ];
   propagatedBuildInputs = [ gmp ];
 
-  patchPhase = "patchShebangs ./z_pp.pl";
   dontAddPrefix = true;
   configureFlags = [ "-installdir ${placeholder "out"}/lib/ocaml/${ocaml.version}/site-lib" ];
 
diff --git a/nixpkgs/pkgs/development/octave-modules/arduino/default.nix b/nixpkgs/pkgs/development/octave-modules/arduino/default.nix
new file mode 100644
index 000000000000..f6536108e6cc
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/arduino/default.nix
@@ -0,0 +1,33 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, instrument-control
+, arduino
+}:
+
+buildOctavePackage rec {
+  pname = "arduino";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0fnfk206n31s7diijaylmqhxnr88z6l3l3vsxq4z8gcp9ylm9nkj";
+  };
+
+  requiredOctavePackages = [
+    instrument-control
+  ];
+
+  # Might be able to use pkgs.arduino-core
+  propagatedBuildInputs = [
+    arduino
+  ];
+
+  meta = with lib; {
+    name = "Octave Arduino Toolkit";
+    homepage = "https://octave.sourceforge.io/arduino/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Basic Octave implementation of the matlab arduino extension, allowing communication to a programmed arduino board to control its hardware";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/audio/default.nix b/nixpkgs/pkgs/development/octave-modules/audio/default.nix
new file mode 100644
index 000000000000..4fafefd6f75d
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/audio/default.nix
@@ -0,0 +1,36 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, jack2
+, alsaLib
+, rtmidi
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "audio";
+  version = "2.0.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "18lyvwmdy4b9pcv5sm7g17n3is32q23daw8fcsalkf4rj6cc6qdk";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    jack2
+    alsaLib
+    rtmidi
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/audio/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Audio and MIDI Toolbox for GNU Octave";
+    platforms = platforms.linux; # Because of run-time dependency on jack2 and alsaLib
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/bim/default.nix b/nixpkgs/pkgs/development/octave-modules/bim/default.nix
new file mode 100644
index 000000000000..5dc8ca88710d
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/bim/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, fpl
+, msh
+}:
+
+buildOctavePackage rec {
+  pname = "bim";
+  version = "1.1.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0y70w8mj80c5yns1j7nwngwwrxp1pa87kyz2n2yvmc3zdigcd6g8";
+  };
+
+  requiredOctavePackages = [
+    fpl
+    msh
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/bim/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Package for solving Diffusion Advection Reaction (DAR) Partial Differential Equations";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/bsltl/default.nix b/nixpkgs/pkgs/development/octave-modules/bsltl/default.nix
new file mode 100644
index 000000000000..aefe543b097d
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/bsltl/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "bsltl";
+  version = "1.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0i8ry347y5f5db3702nhpsmfys9v18ks2fsmpdqpy3fcvrwaxdsb";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/bsltl/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Free collection of OCTAVE/MATLAB routines for working with the biospeckle laser technique";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/cgi/default.nix b/nixpkgs/pkgs/development/octave-modules/cgi/default.nix
new file mode 100644
index 000000000000..4686881251af
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/cgi/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "cgi";
+  version = "0.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0hygj7cpwrs2w9bfb7qrvv7gq410bfiddqvza8smg766pqmfp1s1";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/cgi/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Common Gateway Interface for Octave";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/communications/default.nix b/nixpkgs/pkgs/development/octave-modules/communications/default.nix
new file mode 100644
index 000000000000..492c837255f7
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/communications/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, signal
+, hdf5
+}:
+
+buildOctavePackage rec {
+  pname = "communications";
+  version = "1.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1xay2vjyadv3ja8dmqqzm2his8s0rvidz23nq1c2yl3xh1gavyck";
+  };
+
+  buildInputs = [
+    hdf5
+  ];
+
+  requiredOctavePackages = [
+    signal
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/communications/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = " Digital Communications, Error Correcting Codes (Channel Code), Source Code functions, Modulation and Galois Fields";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/control/default.nix b/nixpkgs/pkgs/development/octave-modules/control/default.nix
new file mode 100644
index 000000000000..2d61e30cc60c
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/control/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gfortran
+, lapack, blas
+}:
+
+buildOctavePackage rec {
+  pname = "control";
+  version = "3.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0gjyjsxs01x0nyc4cgn3d5af17l3lzs8h4hsm57nxd3as48dbwgs";
+  };
+
+  nativeBuildInputs = [
+    gfortran
+  ];
+
+  buildInputs = [
+    lapack blas
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/control/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Computer-Aided Control System Design (CACSD) Tools for GNU Octave, based on the proven SLICOT Library";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/data-smoothing/default.nix b/nixpkgs/pkgs/development/octave-modules/data-smoothing/default.nix
new file mode 100644
index 000000000000..551582a77703
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/data-smoothing/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, optim
+}:
+
+buildOctavePackage rec {
+  pname = "data-smoothing";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0q0vqdmp8ygyfhk296xbxcpsh5wvpa2kfgv4v0rys68nd2lxfaq1";
+  };
+
+  requiredOctavePackages = [
+    optim
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/data-smoothing/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Algorithms for smoothing noisy data";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/database/default.nix b/nixpkgs/pkgs/development/octave-modules/database/default.nix
new file mode 100644
index 000000000000..3e1fe863276c
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/database/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, struct
+, postgresql
+}:
+
+buildOctavePackage rec {
+  pname = "database";
+  version = "2.4.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1c0n76adi0jw6bx62s04vjyda6kb6ca8lzz2vam43vdy10prcq9p";
+  };
+
+  propagatedBuildInputs = [
+    postgresql
+  ];
+
+  requiredOctavePackages = [
+    struct
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/database/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Interface to SQL databases, currently only postgresql using libpq";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/dataframe/default.nix b/nixpkgs/pkgs/development/octave-modules/dataframe/default.nix
new file mode 100644
index 000000000000..8f145f0d510c
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/dataframe/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "dataframe";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "10ara084gkb7d5vxv9qv7zpj8b4mm5y06nccrdy3skw5nfbb4djx";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/dataframe/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Data manipulation toolbox similar to R data.frame";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/dicom/default.nix b/nixpkgs/pkgs/development/octave-modules/dicom/default.nix
new file mode 100644
index 000000000000..e16b6447805e
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/dicom/default.nix
@@ -0,0 +1,33 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gdcm
+, cmake
+}:
+
+buildOctavePackage rec {
+  pname = "dicom";
+  version = "0.4.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "131wn6mrv20np10plirvqia8dlpz3g0aqi3mmn2wyl7r95p3dnza";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  propagatedBuildInputs = [
+    gdcm
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/dicom/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Digital communications in medicine (DICOM) file io";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/divand/default.nix b/nixpkgs/pkgs/development/octave-modules/divand/default.nix
new file mode 100644
index 000000000000..ac8de9060680
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/divand/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "divand";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0nmaz5j37dflz7p4a4lmwzkh7g1gghdh7ccvkbyy0fpgv9lr1amg";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/divand/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Performs an n-dimensional variational analysis (interpolation) of arbitrarily located observations";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/doctest/default.nix b/nixpkgs/pkgs/development/octave-modules/doctest/default.nix
new file mode 100644
index 000000000000..3c02a20cdad1
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/doctest/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "doctest";
+  version = "0.7.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0hh9izj9ds69bmrvmmj16fd1c4z7733h50c7isl8f714srw26kf4";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/doctest/index.html";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Find and run example code within documentation";
+    longDescription = ''
+      Find and run example code within documentation. Formatted blocks
+      of example code are extracted from documentation files and executed
+      to confirm their output is correct. This can be part of a testing
+      framework or simply to ensure that documentation stays up-to-date
+      during software development.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/econometrics/default.nix b/nixpkgs/pkgs/development/octave-modules/econometrics/default.nix
new file mode 100644
index 000000000000..0aa795959ab6
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/econometrics/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, optim
+}:
+
+buildOctavePackage rec {
+  pname = "econometrics";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1srx78k90ycla7yisa9h593n9l8br31lsdxlspra8sxiyq0sbk72";
+  };
+
+  requiredOctavePackages = [
+    optim
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/econometrics/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Econometrics functions including MLE and GMM based techniques";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/fem-fenics/default.nix b/nixpkgs/pkgs/development/octave-modules/fem-fenics/default.nix
new file mode 100644
index 000000000000..300dfd758774
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/fem-fenics/default.nix
@@ -0,0 +1,35 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, dolfin
+, ffc
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "fem-fenics";
+  version = "0.0.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1xd80nnkschldvrqx0wvrg3fzbf8sck8bvq24phr5x49xs7b8x78";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    dolfin
+    ffc
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fem-fenics/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Package for the resolution of partial differential equations based on fenics";
+    # Lots of compilation errors for newer octave versions and syntax errors
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/financial/default.nix b/nixpkgs/pkgs/development/octave-modules/financial/default.nix
new file mode 100644
index 000000000000..5fb6a00df78b
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/financial/default.nix
@@ -0,0 +1,23 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, io
+, statistics
+}:
+
+buildOctavePackage rec {
+  pname = "financial";
+  version = "0.5.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0f963yg6pwvrdk5fg7b71ny47gzy48nqxdzj2ngcfrvmb5az4vmf";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/financial/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Monte Carlo simulation, options pricing routines, financial manipulation, plotting functions and additional date manipulation tools";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/fits/default.nix b/nixpkgs/pkgs/development/octave-modules/fits/default.nix
new file mode 100644
index 000000000000..9d236cb9f1fa
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/fits/default.nix
@@ -0,0 +1,41 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, cfitsio
+, hdf5
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "fits";
+  version = "1.0.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0jab5wmrpifqphmrfkqcyrlpc0h4y4m735yc3avqqjajz1rl24lm";
+  };
+
+  # Found here: https://build.opensuse.org/package/view_file/science/octave-forge-fits/octave-forge-fits.spec?expand=1
+  patchPhase = ''
+    sed -i -s -e 's/D_NINT/octave::math::x_nint/g' src/*.cc
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    hdf5
+  ];
+
+  propagatedBuildInputs = [
+    cfitsio
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fits/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions for reading, and writing FITS (Flexible Image Transport System) files using cfitsio";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/fpl/default.nix b/nixpkgs/pkgs/development/octave-modules/fpl/default.nix
new file mode 100644
index 000000000000..e5b276c0c20d
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/fpl/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "fpl";
+  version = "1.3.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0cbpahn9flrv9ppp5xakhwh8vyyy7wzlsz22i3s93yqg9q2bh4ys";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fpl/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Collection of routines to export data produced by Finite Elements or Finite Volume Simulations in formats used by some visualization programs";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix b/nixpkgs/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix
new file mode 100644
index 000000000000..5cb567b2bb85
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "fuzzy-logic-toolkit";
+  version = "0.4.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0cs1xh594h1psdinicxrsvm27gzax5jja7bjk4sl3kk2hv24mhml";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fuzzy-logic-toolkit/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "A mostly MATLAB-compatible fuzzy logic toolkit for Octave";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/ga/default.nix b/nixpkgs/pkgs/development/octave-modules/ga/default.nix
new file mode 100644
index 000000000000..a5265a4ce450
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/ga/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "ga";
+  version = "0.10.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0s5azn4n174avlmh5gw21zfqfkyxkzn4v09q4l9swv7ldmg3mirv";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/ga/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Genetic optimization code";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/general/default.nix b/nixpkgs/pkgs/development/octave-modules/general/default.nix
new file mode 100644
index 000000000000..52ad9af93b0f
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/general/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, pkg-config
+, nettle
+}:
+
+buildOctavePackage rec {
+  pname = "general";
+  version = "2.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0jmvczssqz1aa665v9h8k9cchb7mg3n9af6b5kh9b2qcjl4r9l7v";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    nettle
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/general/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "General tools for Octave";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/generate_html/default.nix b/nixpkgs/pkgs/development/octave-modules/generate_html/default.nix
new file mode 100644
index 000000000000..83f3a65bedc2
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/generate_html/default.nix
@@ -0,0 +1,27 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "generate_html";
+  version = "0.3.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1ai4h7jf9fqi7w565iprzylsh94pg4rhyf51hfj9kfdgdpb1abfs";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/generate_html/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Provides functions for generating HTML pages that contain the help texts for a set of functions";
+    longDescription = ''
+      This package provides functions for generating HTML pages that contain
+      the help texts for a set of functions. The package is designed to be as
+      general as possible, but also contains convenience functions for generating
+      a set of pages for entire packages.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/geometry/default.nix b/nixpkgs/pkgs/development/octave-modules/geometry/default.nix
new file mode 100644
index 000000000000..b4bf57262fae
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/geometry/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, matgeom
+}:
+
+buildOctavePackage rec {
+  pname = "geometry";
+  version = "4.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1zmd97xir62fr5v57xifh2cvna5fg67h9yb7bp2vm3ll04y41lhs";
+  };
+
+  requiredOctavePackages = [
+    matgeom
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/geometry/index.html";
+    license = with licenses; [ gpl3Plus boost ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Library for extending MatGeom functionality";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/gsl/default.nix b/nixpkgs/pkgs/development/octave-modules/gsl/default.nix
new file mode 100644
index 000000000000..5922c015dbdf
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/gsl/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gsl
+}:
+
+buildOctavePackage rec {
+  pname = "gsl";
+  version = "2.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1lvfxbqmw8h1nlrxmvrl6j4xffmbzxfhdpxz3vrc6lg2g4jwaa6h";
+  };
+
+  buildInputs = [
+    gsl
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/gsl/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Octave bindings to the GNU Scientific Library";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/image-acquisition/default.nix b/nixpkgs/pkgs/development/octave-modules/image-acquisition/default.nix
new file mode 100644
index 000000000000..08c4305999b3
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/image-acquisition/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, libv4l
+, fltk
+}:
+
+buildOctavePackage rec {
+  pname = "image-acquisition";
+  version = "0.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1amp6npkddnnz2i5rm6gvn65qrbn0nxzl2cja3dvc2xqg396wrhh";
+  };
+
+  buildInputs = [
+    libv4l
+    fltk
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/image-acquisition/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions to capture images from connected devices";
+    longDescription = ''
+      The Octave-forge Image Aquisition package provides functions to
+      capture images from connected devices. Currently only v4l2 is supported.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/image/default.nix b/nixpkgs/pkgs/development/octave-modules/image/default.nix
new file mode 100644
index 000000000000..8bff55fadc64
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/image/default.nix
@@ -0,0 +1,27 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "image";
+  version = "2.12.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1d3kqhbkq9acc29k42fcilfmykk9a0r321mvk46l5iibc7nqrmg7";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/image/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions for processing images";
+    longDescription = ''
+       The Octave-forge Image package provides functions for processing
+       images. The package also provides functions for feature extraction,
+       image statistics, spatial and geometric transformations, morphological
+       operations, linear filtering, and much more.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/instrument-control/default.nix b/nixpkgs/pkgs/development/octave-modules/instrument-control/default.nix
new file mode 100644
index 000000000000..51c8f300cc59
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/instrument-control/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "instrument-control";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0vckax6rx5v3fq5j6kb6n39a5zas9i24x4wvmjlhc8xbykkg5nkk";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/instrument-control/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Low level I/O functions for serial, i2c, spi, parallel, tcp, gpib, vxi11, udp and usbtmc interfaces";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/interval/default.nix b/nixpkgs/pkgs/development/octave-modules/interval/default.nix
new file mode 100644
index 000000000000..0891a6143852
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/interval/default.nix
@@ -0,0 +1,39 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, mpfr
+}:
+
+buildOctavePackage rec {
+  pname = "interval";
+  version = "3.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0a0sz7b4y53qgk1xr4pannn4w7xiin2pf74x7r54hrr1wf4abp20";
+  };
+
+  propagatedBuildInputs = [
+    mpfr
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/interval/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Interval arithmetic to evaluate functions over subsets of their domain";
+    longDescription = ''
+       The interval package for real-valued interval arithmetic allows one to
+       evaluate functions over subsets of their domain. All results are verified,
+       because interval computations automatically keep track of any errors.
+
+       These concepts can be used to handle uncertainties, estimate arithmetic
+       errors and produce reliable results. Also it can be applied to
+       computer-assisted proofs, constraint programming, and verified computing.
+
+       The implementation is based on interval boundaries represented by
+       binary64 numbers and is conforming to IEEE Std 1788-2015, IEEE standard
+       for interval arithmetic.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/io/default.nix b/nixpkgs/pkgs/development/octave-modules/io/default.nix
new file mode 100644
index 000000000000..57058c5f95de
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/io/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, enableJava
+, jdk
+, unzip
+}:
+
+buildOctavePackage rec {
+  pname = "io";
+  version = "2.6.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "044y8lfp93fx0592mv6x2ss0nvjkjgvlci3c3ahav76pk1j3rikb";
+  };
+
+  buildInputs = [
+    (lib.optional enableJava jdk)
+  ];
+
+  propagatedBuildInputs = [
+    unzip
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/io/index.html";
+    license = with licenses; [ gpl3Plus bsd2 ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Input/Output in external formats";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/level-set/default.nix b/nixpkgs/pkgs/development/octave-modules/level-set/default.nix
new file mode 100644
index 000000000000..d1f882904d59
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/level-set/default.nix
@@ -0,0 +1,54 @@
+{ buildOctavePackage
+, lib
+, fetchgit
+, automake
+, autoconf
+, autoconf-archive
+, parallel
+}:
+
+buildOctavePackage rec {
+  pname = "level-set";
+  version = "2019-04-13";
+
+  src = fetchgit {
+    url = "https://git.code.sf.net/p/octave/${pname}";
+    rev = "dbf46228a7582eef4fe5470fd00bc5b421dd33a5";
+    sha256 = "14qwa4j24m2j7njw8gbagkgmp040h6k0h7kyrrzgb9y0jm087qkl";
+    fetchSubmodules = false;
+  };
+
+  # The monstrosity of a regex below is to ensure that only error() calls are
+  # corrected to have a %s format specifier. However, logic_error() also
+  # exists, (a simple regex also matches that), but logic_error() doesn't
+  # require a format specifier. So, this regex was born to handle that...
+  patchPhase = ''
+    substituteInPlace build.sh --replace "level-set-0.3.1" "${pname}-${version}" \
+                               --replace "\`pwd\`" '/build'
+    sed -i -E 's#[^[:graph:]]error \(# error \(\"%s\", #g' src/*.cpp
+  '';
+
+  nativeBuildInputs = [
+    automake
+    autoconf
+    autoconf-archive
+  ];
+
+  requiredOctavePackages = [
+    parallel
+  ];
+
+  preBuild = ''
+    mkdir -p $out
+    source ./build.sh
+    cd -
+  '';
+
+  meta = with lib; {
+    name = "Level Set";
+    homepage = "https://octave.sourceforge.io/level-set/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Routines for calculating the time-evolution of the level-set equation and extracting geometric information from the level-set function";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/linear-algebra/default.nix b/nixpkgs/pkgs/development/octave-modules/linear-algebra/default.nix
new file mode 100644
index 000000000000..18818c1db606
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/linear-algebra/default.nix
@@ -0,0 +1,22 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "linear-algebra";
+  version = "2.2.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1wwjpxp9vjc6lszh0z3kgy4hyzpib8rvvh6b74ijh9qk9r9nmvjk";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/linear-algebra/index.html";
+    license = with licenses; [ gpl3Plus lgpl3Plus ];
+    # They claim to have a FreeBSD license, but none of their code seems to have it.
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional linear algebra code, including matrix functions";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/lssa/default.nix b/nixpkgs/pkgs/development/octave-modules/lssa/default.nix
new file mode 100644
index 000000000000..f737c104f302
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/lssa/default.nix
@@ -0,0 +1,27 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "lssa";
+  version = "0.1.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "10h9lzsi7pqh93i7y50b618g05fnbw9n0i505bz5kz4avfa990zh";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/lssa/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Tools to compute spectral decompositions of irregularly-spaced time series";
+    longDescription = ''
+       A package implementing tools to compute spectral decompositions of
+       irregularly-spaced time series. Currently includes functions based off
+       the Lomb-Scargle periodogram and Adolf Mathias' implementation for R
+       and C.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/ltfat/default.nix b/nixpkgs/pkgs/development/octave-modules/ltfat/default.nix
new file mode 100644
index 000000000000..505670f6298b
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/ltfat/default.nix
@@ -0,0 +1,54 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, fftw
+, fftwSinglePrec
+, fftwFloat
+, fftwLongDouble
+, lapack
+, blas
+, portaudio
+, jdk
+}:
+
+buildOctavePackage rec {
+  pname = "ltfat";
+  version = "2.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0gghh5a4w649ff776wvidfvqas87m0n7rqs960pid1d11bnyqqrh";
+  };
+
+  patches = [
+    # Fixes a syntax error with performing multiplication.
+    ./syntax-error.patch
+  ];
+
+  buildInputs = [
+    fftw
+    fftwSinglePrec
+    fftwFloat
+    fftwLongDouble
+    lapack
+    blas
+    portaudio
+    jdk
+  ];
+
+  meta = with lib; {
+    name = "The Large Time-Frequency Analysis Toolbox";
+    homepage = "https://octave.sourceforge.io/ltfat/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Toolbox for working with time-frequency analysis, wavelets and signal processing";
+    longDescription = ''
+      The Large Time/Frequency Analysis Toolbox (LTFAT) is a Matlab/Octave
+      toolbox for working with time-frequency analysis, wavelets and signal
+      processing. It is intended both as an educational and a computational
+      tool. The toolbox provides a large number of linear transforms including
+      Gabor and wavelet transforms along with routines for constructing windows
+      (filter prototypes) and routines for manipulating coefficients.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/ltfat/syntax-error.patch b/nixpkgs/pkgs/development/octave-modules/ltfat/syntax-error.patch
new file mode 100644
index 000000000000..732030b70434
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/ltfat/syntax-error.patch
@@ -0,0 +1,15 @@
+diff --git a/inst/nonstatgab/nsdgt.m b/inst/nonstatgab/nsdgt.m
+index ac53963..81656cb 100644
+--- a/inst/nonstatgab/nsdgt.m
++++ b/inst/nonstatgab/nsdgt.m
+@@ -149,8 +149,8 @@ for ii = 1:N
+         col = ceil(Lg/M(ii));
+         
+         temp = zeros(col*M(ii),W,assert_classname(f,g{1}));
+-        temp([end-floor(Lg/2)+1:end,1:ceil(Lg/2)],:) = bsxfun(@ ...
+-                                                          times,f(win_range,:),g{ii}(idx));
++        temp([end-floor(Lg/2)+1:end,1:ceil(Lg/2)],:) = bsxfun(@times, ...
++                                                          f(win_range,:),g{ii}(idx));
+         
+         temp = reshape(temp,M(ii),col,W);
+         X = squeeze(fft(sum(temp,2)));
diff --git a/nixpkgs/pkgs/development/octave-modules/mapping/default.nix b/nixpkgs/pkgs/development/octave-modules/mapping/default.nix
new file mode 100644
index 000000000000..26cea27a7253
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/mapping/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, io # >= 2.2.7
+, geometry # >= 4.0.0
+}:
+
+buildOctavePackage rec {
+  pname = "mapping";
+  version = "1.4.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0wj0q1rkrqs4qgpjh4vn9kcpdh94pzr6v4jc1vcrjwkp87yjv8c0";
+  };
+
+  requiredOctavePackages = [
+    io
+    geometry
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/mapping/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Simple mapping and GIS .shp .dxf and raster file functions";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/matgeom/default.nix b/nixpkgs/pkgs/development/octave-modules/matgeom/default.nix
new file mode 100644
index 000000000000..b8607cf5dff9
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/matgeom/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "matgeom";
+  version = "1.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05xfmlh1k3mhq8yag7gr8q1ysl1s43vm46fr1i3gcg9b1kkwi8by";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/matgeom/index.html";
+    license = with licenses; [ bsd2 gpl3Plus ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Geometry toolbox for 2D/3D geometric computing";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/miscellaneous/default.nix b/nixpkgs/pkgs/development/octave-modules/miscellaneous/default.nix
new file mode 100644
index 000000000000..74c3879aa9ef
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/miscellaneous/default.nix
@@ -0,0 +1,34 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Build-time dependencies
+, mlterm
+, ncurses # >= 5
+, units
+}:
+
+buildOctavePackage rec {
+  pname = "miscellaneous";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "10n107njz24ln7v9a1l3dkh7s7vd6qwgbinrj1nl4wflxsir4l9k";
+  };
+
+  buildInputs = [
+    mlterm
+    ncurses
+  ];
+
+  propagatedBuildInputs = [
+    units
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/miscellaneous/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Miscellaneous tools that don't fit somewhere else";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/msh/default.nix b/nixpkgs/pkgs/development/octave-modules/msh/default.nix
new file mode 100644
index 000000000000..a4e876c8128f
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/msh/default.nix
@@ -0,0 +1,56 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave Dependencies
+, splines
+# Other Dependencies
+, gmsh
+, gawk
+, pkg-config
+, dolfin
+, autoconf, automake
+}:
+
+buildOctavePackage rec {
+  pname = "msh";
+  version = "1.0.10";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1mb5qrp9y1w1cbzrd9v84430ldy57ca843yspnrgbcqpxyyxbgfz";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    autoconf automake
+    dolfin
+  ];
+
+  buildInputs = [
+    dolfin
+  ];
+
+  propagatedBuildInputs = [
+    gmsh
+    gawk
+    dolfin
+  ];
+
+  requiredOctavePackages = [
+    splines
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/msh/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Create and manage triangular and tetrahedral meshes for Finite Element or Finite Volume PDE solvers";
+    longDescription = ''
+      Create and manage triangular and tetrahedral meshes for Finite Element or
+      Finite Volume PDE solvers. Use a mesh data structure compatible with
+      PDEtool. Rely on gmsh for unstructured mesh generation.
+    '';
+    # Not technically broken, but missing some functionality.
+    # dolfin needs to be its own stand-alone library for the last tests to pass.
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/mvn/default.nix b/nixpkgs/pkgs/development/octave-modules/mvn/default.nix
new file mode 100644
index 000000000000..06fd1905604d
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/mvn/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "mvn";
+  version = "1.1.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "00w69hxqnqdm3744z6p7gvzci44a3gy228x6bgq3xf5n3jwicnmg";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/mvn/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Multivariate normal distribution clustering and utility functions";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/nan/default.nix b/nixpkgs/pkgs/development/octave-modules/nan/default.nix
new file mode 100644
index 000000000000..a0517db714bd
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/nan/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, blas
+}:
+
+buildOctavePackage rec {
+  pname = "nan";
+  version = "3.5.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0bp8zl50f8qj5sivl88kjdswm035v4li33fiq3v1gmh0pvgbcw7a";
+  };
+
+  buildInputs = [
+    blas
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/nan/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "A statistics and machine learning toolbox for data with and w/o missing values";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/ncarray/default.nix b/nixpkgs/pkgs/development/octave-modules/ncarray/default.nix
new file mode 100644
index 000000000000..10db554c87fc
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/ncarray/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, netcdf
+, statistics
+}:
+
+buildOctavePackage rec {
+  pname = "ncarray";
+  version = "1.0.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0v96iziikvq2v7hczhbfs9zmk49v99kn6z3lgibqqpwam175yqgd";
+  };
+
+  buildInputs = [
+    netcdf
+  ];
+
+  requiredOctavePackages = [
+    statistics
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/ncarray/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Access a single or a collection of NetCDF files as a multi-dimensional array";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/netcdf/default.nix b/nixpkgs/pkgs/development/octave-modules/netcdf/default.nix
new file mode 100644
index 000000000000..9292da6918cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/netcdf/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, netcdf
+}:
+
+buildOctavePackage rec {
+  pname = "netcdf";
+  version = "1.0.14";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1wdwl76zgcg7kkdxjfjgf23ylzb0x4dyfliffylyl40g6cjym9lf";
+  };
+
+  buildInputs = [
+    netcdf
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/netcdf/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "A NetCDF interface for Octave";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/nurbs/default.nix b/nixpkgs/pkgs/development/octave-modules/nurbs/default.nix
new file mode 100644
index 000000000000..e5e26d7bb952
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/nurbs/default.nix
@@ -0,0 +1,30 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "nurbs";
+  version = "1.3.13";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0zkyldm63pc3pcal3yvj6af24cvpjvv9qfhf0ihhwcsh4w3yggyv";
+  };
+
+  # Has been fixed in more recent commits, but has not been pushed out as a
+  # new version yet.
+  # The sed changes allow nurbs to compile.
+  patchPhase = ''
+    sed -i s/feval/octave::feval/g src/*.cc
+    sed -i s/is_real_type/isreal/g src/*.cc
+    sed -i s/is_cell/iscell/g src/*.cc
+  '';
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/nurbs/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Collection of routines for the creation, and manipulation of Non-Uniform Rational B-Splines (NURBS), based on the NURBS toolbox by Mark Spink";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/ocl/default.nix b/nixpkgs/pkgs/development/octave-modules/ocl/default.nix
new file mode 100644
index 000000000000..0e47160ad0ea
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/ocl/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "ocl";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0ayi5x9zk9p4zm0qsr3i94lyp5468c9d1a7mqrqjqpdvkhrw0xnm";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/ocl/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Use OpenCL for parallelization";
+    longDescription = ''
+       Package using OpenCL for parallelization, mostly suitable to
+       Single-Instruction-Multiple-Data (SIMD) computations, selectively
+       using available OpenCL hardware and drivers.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/octclip/default.nix b/nixpkgs/pkgs/development/octave-modules/octclip/default.nix
new file mode 100644
index 000000000000..43bcfcd7d849
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/octclip/default.nix
@@ -0,0 +1,29 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "octclip";
+  version = "2.0.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05ijh3izgfaan84n6zp690nap9vnz0zicjd0cgvd1c6askm7vxql";
+  };
+
+  # The only compilation problem is that no formatting specifier was provided
+  # for the error function. Because errorText is a string, I provide such a
+  # formatting specifier.
+  patchPhase = ''
+    sed -i s/"error(errorText)"/"error(\"%s\", errorText)"/g src/*.cc
+  '';
+
+  meta = with lib; {
+    name = "GNU Octave Clipping Polygons Tool";
+    homepage = "https://octave.sourceforge.io/octclip/index.html";
+    license = with licenses; [ gpl3Plus ]; # modified BSD?
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Perform boolean operations with polygons using the Greiner-Hormann algorithm";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/octproj/default.nix b/nixpkgs/pkgs/development/octave-modules/octproj/default.nix
new file mode 100644
index 000000000000..74596c015f85
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/octproj/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, proj # >= 6.3.0
+}:
+
+buildOctavePackage rec {
+  pname = "octproj";
+  version = "2.0.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1mb8gb0r8kky47ap85h9qqdvs40mjp3ya0nkh45gqhy67ml06paq";
+  };
+
+  # The sed changes below allow for the package to be compiled.
+  patchPhase = ''
+    sed -i s/"error(errorText)"/"error(\"%s\", errorText)"/g src/*.cc
+    sed -i s/"warning(errorText)"/"warning(\"%s\", errorText)"/g src/*.cc
+  '';
+
+  propagatedBuildInputs = [
+    proj
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/octproj/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "GNU Octave bindings to PROJ library for cartographic projections and CRS transformations";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/optics/default.nix b/nixpkgs/pkgs/development/octave-modules/optics/default.nix
new file mode 100644
index 000000000000..1324c6cd4ba3
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/optics/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "optics";
+  version = "0.1.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1d9z82241a1zmr8m1vgw10pyk81vn0q4dcyx7d05pigfn5gykrgc";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/optics/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions covering various aspects of optics";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/optim/default.nix b/nixpkgs/pkgs/development/octave-modules/optim/default.nix
new file mode 100644
index 000000000000..b9561faafb12
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/optim/default.nix
@@ -0,0 +1,36 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, struct
+, statistics
+, lapack
+, blas
+}:
+
+buildOctavePackage rec {
+  pname = "optim";
+  version = "1.6.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1z2h8gy99glxh5qi3r22am2vdirlbklkq0lx4r8jrx1ak7awh47r";
+  };
+
+  buildInputs = [
+    lapack
+    blas
+  ];
+
+  requiredOctavePackages = [
+    struct
+    statistics
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/optim/index.html";
+    license = with licenses; [ gpl3Plus publicDomain ];
+    # Modified BSD code seems removed
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Non-linear optimization toolkit";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/optiminterp/default.nix b/nixpkgs/pkgs/development/octave-modules/optiminterp/default.nix
new file mode 100644
index 000000000000..8409a10104e6
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/optiminterp/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gfortran
+}:
+
+buildOctavePackage rec {
+  pname = "optiminterp";
+  version = "0.3.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05nzj2jmrczbnsr64w2a7kww19s6yialdqnsbg797v11ii7aiylc";
+  };
+
+  nativeBuildInputs = [
+    gfortran
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/optiminterp/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "An optimal interpolation toolbox for octave";
+    longDescription = ''
+       An optimal interpolation toolbox for octave. This package provides
+       functions to perform a n-dimensional optimal interpolations of
+       arbitrarily distributed data points.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/parallel/default.nix b/nixpkgs/pkgs/development/octave-modules/parallel/default.nix
new file mode 100644
index 000000000000..0ea1d4d9df23
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/parallel/default.nix
@@ -0,0 +1,36 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, struct
+, gnutls
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "parallel";
+  version = "4.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0wmpak01rsccrnb8is7fsjdlxw15157sqyf9s2fabr16yykfmvi8";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    gnutls
+  ];
+
+  requiredOctavePackages = [
+    struct
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/parallel/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Parallel execution package";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/quaternion/default.nix b/nixpkgs/pkgs/development/octave-modules/quaternion/default.nix
new file mode 100644
index 000000000000..4681b699684c
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/quaternion/default.nix
@@ -0,0 +1,29 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "quaternion";
+  version = "2.4.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "040ncksf0xz32qmi4484xs3q01nappxrsvwwa60g04yjy7c4sbac";
+  };
+
+  # Octave replaced many of the is_thing_type check function with isthing.
+  # The patch changes the occurrences of the old functions.
+  patchPhase = ''
+    sed -i s/is_numeric_type/isnumeric/g src/*.cc
+    sed -i s/is_real_type/isreal/g src/*.cc
+    sed -i s/is_bool_type/islogical/g src/*.cc
+  '';
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/quaternion/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Quaternion package for GNU Octave, includes a quaternion class with overloaded operators";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/queueing/default.nix b/nixpkgs/pkgs/development/octave-modules/queueing/default.nix
new file mode 100644
index 000000000000..75b3e67e3536
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/queueing/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "queueing";
+  version = "1.2.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1yhw277i1qgmddf6wbfb6a4zrfhvplkmfr20q1l15z4xi8afnm6d";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/queueing/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Provides functions for queueing networks and Markov chains analysis";
+    longDescription = ''
+      The queueing package provides functions for queueing networks and Markov
+      chains analysis. This package can be used to compute steady-state
+      performance measures for open, closed and mixed networks with single or
+      multiple job classes. Mean Value Analysis (MVA), convolution, and various
+      bounding techniques are implemented. Furthermore, several transient and
+      steady-state performance measures for Markov chains can be computed, such
+      as state occupancy probabilities, mean time to absorption, time-averaged
+      sojourn times and so forth. Discrete- and continuous-time Markov chains
+      are supported.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/signal/default.nix b/nixpkgs/pkgs/development/octave-modules/signal/default.nix
new file mode 100644
index 000000000000..ae1339ca274a
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/signal/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, control
+}:
+
+buildOctavePackage rec {
+  pname = "signal";
+  version = "1.4.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1amfh7ifjqxz2kr34hgq2mq8ygmd5j3cjdk1k2dk6qcgic7n0y6r";
+  };
+
+  requiredOctavePackages = [
+    control
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/signal/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Signal processing tools, including filtering, windowing and display functions";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/sockets/default.nix b/nixpkgs/pkgs/development/octave-modules/sockets/default.nix
new file mode 100644
index 000000000000..688bd6a0e929
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/sockets/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "sockets";
+  version = "1.2.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "18f1zpqcf6h9b4fb0x2c5nvc3mvgj1141f1s8d9gnlhlrjlq8vqg";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/sockets/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Socket functions for networking from within octave";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/sparsersb/default.nix b/nixpkgs/pkgs/development/octave-modules/sparsersb/default.nix
new file mode 100644
index 000000000000..ecea6c0f62e4
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/sparsersb/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, librsb
+}:
+
+buildOctavePackage rec {
+  pname = "sparsersb";
+  version = "1.0.8";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0nl7qppa1cm51188hqhbfswlih9hmy1yz7v0f5i07z0g0kbd62xw";
+  };
+
+  propagatedBuildInputs = [
+    librsb
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/sparsersb/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Interface to the librsb package implementing the RSB sparse matrix format for fast shared-memory sparse matrix computations";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/splines/default.nix b/nixpkgs/pkgs/development/octave-modules/splines/default.nix
new file mode 100644
index 000000000000..69d5e46147d6
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/splines/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "splines";
+  version = "1.3.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "16wisph8axc5xci0h51zj0y0x2wj6c9zybi2sjpb9v8z9dagjjqa";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/splines/index.html";
+    license = with licenses; [ gpl3Plus publicDomain ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional spline functions";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/statistics/default.nix b/nixpkgs/pkgs/development/octave-modules/statistics/default.nix
new file mode 100644
index 000000000000..61133ec49e54
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/statistics/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, io
+}:
+
+buildOctavePackage rec {
+  pname = "statistics";
+  version = "1.4.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0iv2hw3zp7h69n8ncfjfgm29xaihdl5gp2slcw1yf23mhd7q2xkr";
+  };
+
+  requiredOctavePackages = [
+    io
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/statistics/index.html";
+    license = with licenses; [ gpl3Plus publicDomain ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional statistics functions for Octave";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/stk/default.nix b/nixpkgs/pkgs/development/octave-modules/stk/default.nix
new file mode 100644
index 000000000000..16ac7b7d03dc
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/stk/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "stk";
+  version = "2.6.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1rqndfankwlwm4igw3xqpnrrl749zz1d5pjzh1qbfns7ixwrm19a";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/stk/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "STK is a (not so) Small Toolbox for Kriging";
+    longDescription = ''
+      The STK is a (not so) Small Toolbox for Kriging. Its primary focus is on
+      the interpolation/regression technique known as kriging, which is very
+      closely related to Splines and Radial Basis Functions, and can be
+      interpreted as a non-parametric Bayesian method using a Gaussian Process
+      (GP) prior. The STK also provides tools for the sequential and non-sequential
+      design of experiments. Even though it is, currently, mostly geared towards
+      the Design and Analysis of Computer Experiments (DACE), the STK can be
+      useful for other applications areas (such as Geostatistics, Machine
+      Learning, Non-parametric Regression, etc.).
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/strings/default.nix b/nixpkgs/pkgs/development/octave-modules/strings/default.nix
new file mode 100644
index 000000000000..7b556272f5da
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/strings/default.nix
@@ -0,0 +1,37 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, pcre
+}:
+
+buildOctavePackage rec {
+  pname = "strings";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1b0ravfvq3bxd0w3axjfsx13mmmkifmqz6pfdgyf2s8vkqnp1qng";
+  };
+
+  buildInputs = [
+    pcre
+  ];
+
+  # The gripes library no longer exists.
+  # https://build.opensuse.org/package/view_file/openSUSE:Backports:SLE-15-SP3/octave-forge-strings/octave-forge-strings.spec
+  # toascii is a deprecated function. Has been fixed in recent commits, but has
+  # not been released yet.
+  # https://sourceforge.net/p/octave/strings/ci/2db1dbb75557eef94605cb4ac682783ab78ac8d8/
+  patchPhase = ''
+    sed -i -s -e 's/gripes.h/errwarn.h/' -e 's/gripe_/err_/g' src/*.cc
+    sed -i s/toascii/double/g inst/*.m
+  '';
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/strings/index.html";
+    license = licenses.gpl3Plus;
+    # Claims to have a freebsd license, but I found none.
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional functions for manipulation and analysis of strings";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/struct/default.nix b/nixpkgs/pkgs/development/octave-modules/struct/default.nix
new file mode 100644
index 000000000000..a69a8e4b6e22
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/struct/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "struct";
+  version = "1.0.16";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0gx20r126f0ccl4yflp823xi77p8fh4acx1fv0mmcsglmx4c4vgm";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/struct/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional structure manipulation functions";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/symbolic/default.nix b/nixpkgs/pkgs/development/octave-modules/symbolic/default.nix
new file mode 100644
index 000000000000..e40d27e7c385
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/symbolic/default.nix
@@ -0,0 +1,46 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave's Python (Python 3)
+, python
+# Needed only to get the correct version of sympy needed
+, python2Packages
+}:
+
+let
+  # Need to use sympy 1.5.1 for https://github.com/cbm755/octsympy/issues/1023
+  # It has been addressed, but not merged yet.
+  # In the meantime, we create a Python environment with Python 3, its mpmath
+  # version and sympy 1.5 from python2Packages.
+  pythonEnv = (let
+      overridenPython = let
+        packageOverrides = self: super: {
+          sympy = super.sympy.overridePythonAttrs (old: rec {
+            version = python2Packages.sympy.version;
+            src = python2Packages.sympy.src;
+          });
+        };
+      in python.override {inherit packageOverrides; self = overridenPython; };
+    in overridenPython.withPackages (ps: [
+      ps.sympy
+      ps.mpmath
+    ]));
+
+in buildOctavePackage rec {
+  pname = "symbolic";
+  version = "2.9.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1jr3kg9q6r4r4h3hiwq9fli6wsns73rqfzkrg25plha9195c97h8";
+  };
+
+  propagatedBuildInputs = [ pythonEnv ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/symbolic/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Adds symbolic calculation features to GNU Octave";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/tisean/default.nix b/nixpkgs/pkgs/development/octave-modules/tisean/default.nix
new file mode 100644
index 000000000000..b21ef0a5f56a
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/tisean/default.nix
@@ -0,0 +1,33 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave dependencies
+, signal # >= 1.3.0
+# Build dependencies
+, gfortran
+}:
+
+buildOctavePackage rec {
+  pname = "tisean";
+  version = "0.2.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0nc2d9h91glxzmpizxdrc2dablw4bqhqhzs37a394c36myk4xjdv";
+  };
+
+  nativeBuildInputs = [
+    gfortran
+  ];
+
+  requiredOctavePackages = [
+    signal
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/tisean/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Port of TISEAN 3.0.1";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/tsa/default.nix b/nixpkgs/pkgs/development/octave-modules/tsa/default.nix
new file mode 100644
index 000000000000..a6320f0fc01c
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/tsa/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, nan # > 3.0.0
+}:
+
+buildOctavePackage rec {
+  pname = "tsa";
+  version = "4.6.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0p2cjszzjwhp4ih3q3r67qnikgxc0fwxc12p3727jbdvzq2h10mn";
+  };
+
+  requiredOctavePackages = [
+    nan
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/tsa/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Stochastic concepts and maximum entropy methods for time series analysis";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/vibes/default.nix b/nixpkgs/pkgs/development/octave-modules/vibes/default.nix
new file mode 100644
index 000000000000..f60a5d7339a0
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/vibes/default.nix
@@ -0,0 +1,39 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, vibes
+}:
+
+buildOctavePackage rec {
+  pname = "vibes";
+  version = "0.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1zn86rcsjkqg67hphz5inxc5xkgr18sby8za68zhppc2z7pd91ng";
+  };
+
+  buildInputs = [
+    vibes
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/vibes/index.html";
+    license = with licenses; [ gpl3Plus mit ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Easily display results (boxes, pavings) from interval methods";
+    longDescription = ''
+      The VIBes API allows one to easily display results (boxes, pavings) from
+      interval methods. VIBes consists in two parts: (1) the VIBes application
+      that features viewing, annotating and exporting figures, and (2) the
+      VIBes API that enables your program to communicate with the viewer in order
+      to draw figures. This package integrates the VIBes API into Octave. The
+      VIBes application is required for operation and must be installed
+      seperately. Data types from third-party interval arithmetic libraries for
+      Octave are also supported.
+    '';
+    # Marked this way until KarlJoad gets around to packaging the vibes program.
+    # https://github.com/ENSTABretagneRobotics/VIBES
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/video/default.nix b/nixpkgs/pkgs/development/octave-modules/video/default.nix
new file mode 100644
index 000000000000..8467da98be99
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/video/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, pkg-config
+, ffmpeg
+}:
+
+buildOctavePackage rec {
+  pname = "video";
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0s6j3c4dh5nsbh84s7vnd2ajcayy1gn07b4fcyrcynch3wl28mrv";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    ffmpeg
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/video/index.html";
+    license = with licenses; [ gpl3Plus bsd3 ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Wrapper for OpenCV's CvCapture_FFMPEG and CvVideoWriter_FFMPEG";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/vrml/default.nix b/nixpkgs/pkgs/development/octave-modules/vrml/default.nix
new file mode 100644
index 000000000000..e46e621b80d9
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/vrml/default.nix
@@ -0,0 +1,41 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave dependencies
+, linear-algebra
+, miscellaneous
+, struct
+, statistics
+# Runtime dependencies
+, freewrl
+}:
+
+buildOctavePackage rec {
+  pname = "vrml";
+  version = "1.0.13";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1mx93k150agd27mbzvds13v9z0x36j68hwpdvlvjmcl2fga5fly4";
+  };
+
+  propagatedBuildInputs = [
+    freewrl
+  ];
+
+  requiredOctavePackages = [
+    linear-algebra
+    miscellaneous
+    struct
+    statistics
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/vrml/index.html";
+    license = with licenses; [ gpl3Plus fdl12Plus ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "3D graphics using VRML";
+    # Marked this way until KarlJoad gets freewrl as a runtime dependency.
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/windows/default.nix b/nixpkgs/pkgs/development/octave-modules/windows/default.nix
new file mode 100644
index 000000000000..274ba1e3b7dd
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/windows/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "windows";
+  version = "1.5.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05bsf3q816b9vwgmjdm761ybhmk8raq6dzxqvd11brma0granx3a";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/windows/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Provides COM interface and additional functionality on Windows";
+  };
+}
diff --git a/nixpkgs/pkgs/development/octave-modules/zeromq/default.nix b/nixpkgs/pkgs/development/octave-modules/zeromq/default.nix
new file mode 100644
index 000000000000..7a8f7f6d16a1
--- /dev/null
+++ b/nixpkgs/pkgs/development/octave-modules/zeromq/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, zeromq
+}:
+
+buildOctavePackage rec {
+  pname = "zeromq";
+  version = "1.5.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "18h1039ri7dr37jv20cvj5vhw7b57frrda0hhbvlgixinbqmn9j7";
+  };
+
+  propagatedBuildInputs = [
+    zeromq
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/zeromq/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "ZeroMQ bindings for GNU Octave";
+  };
+}
diff --git a/nixpkgs/pkgs/development/perl-modules/ham/default.nix b/nixpkgs/pkgs/development/perl-modules/ham/default.nix
index 4f6dc5d9ddb7..8b19c9404fe0 100644
--- a/nixpkgs/pkgs/development/perl-modules/ham/default.nix
+++ b/nixpkgs/pkgs/development/perl-modules/ham/default.nix
@@ -13,7 +13,7 @@ buildPerlPackage {
 
   outputs = [ "out" ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   propagatedBuildInputs = [ openssh GitRepository URI XMLMini ];
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/pharo/launcher/default.nix b/nixpkgs/pkgs/development/pharo/launcher/default.nix
index 45531b551761..23afd44b67d9 100644
--- a/nixpkgs/pkgs/development/pharo/launcher/default.nix
+++ b/nixpkgs/pkgs/development/pharo/launcher/default.nix
@@ -23,7 +23,8 @@ stdenv.mkDerivation rec {
   # because upstream tarball has no top-level directory.
   sourceRoot = ".";
 
-  buildInputs = [ bash pharo unzip ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ bash pharo ];
 
   installPhase = ''
     mkdir -p $prefix/share/pharo-launcher
diff --git a/nixpkgs/pkgs/development/pharo/vm/build-vm.nix b/nixpkgs/pkgs/development/pharo/vm/build-vm.nix
index 5427e36746ca..c1f703f72515 100644
--- a/nixpkgs/pkgs/development/pharo/vm/build-vm.nix
+++ b/nixpkgs/pkgs/development/pharo/vm/build-vm.nix
@@ -53,10 +53,9 @@ stdenv.mkDerivation rec {
   # http://forum.world.st/OSProcess-fork-issue-with-Debian-built-VM-td4947326.html
   #
   # (stack protection is disabled above for gcc 4.8 compatibility.)
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook unzip ];
   buildInputs = [
     bash
-    unzip
     glibc
     openssl
     gcc48
diff --git a/nixpkgs/pkgs/development/pharo/vm/share.nix b/nixpkgs/pkgs/development/pharo/vm/share.nix
index 720f2e39a7d3..a2a55f2eb437 100644
--- a/nixpkgs/pkgs/development/pharo/vm/share.nix
+++ b/nixpkgs/pkgs/development/pharo/vm/share.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     sha256 = "0xbdi679ryb2zg412xy6zkh22l20pmbl92m3qhfgzjvgybna8z2a";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     mkdir -p $prefix/lib
diff --git a/nixpkgs/pkgs/development/php-packages/apcu/default.nix b/nixpkgs/pkgs/development/php-packages/apcu/default.nix
index 04b611fd598f..3301d949c228 100644
--- a/nixpkgs/pkgs/development/php-packages/apcu/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/apcu/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "apcu";
 
-  version = "5.1.19";
-  sha256 = "1q3c4y9jqh1yz5vps2iiz2x04vn0y1g5ibxg1x8zp7n7sncvqzw3";
+  version = "5.1.20";
+  sha256 = "sha256-uZ1A+v7Ab00TL87lPnUm3b/B0EHqbgThc4nfrSj5w5A=";
 
   buildInputs = [ pcre' ];
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/php-packages/box/default.nix b/nixpkgs/pkgs/development/php-packages/box/default.nix
index 8d6bba3e460c..8ff61920ac85 100644
--- a/nixpkgs/pkgs/development/php-packages/box/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/box/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, fetchurl, pkgs, lib, php }:
+{ mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "box";
   version = "2.7.5";
@@ -12,7 +12,7 @@ mkDerivation {
   };
 
   phases = [ "installPhase" ];
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/development/php-packages/composer/2.0.nix b/nixpkgs/pkgs/development/php-packages/composer/1.x.nix
index 5b0234fa7a14..4660da9532dc 100644
--- a/nixpkgs/pkgs/development/php-packages/composer/2.0.nix
+++ b/nixpkgs/pkgs/development/php-packages/composer/1.x.nix
@@ -1,29 +1,29 @@
-{ mkDerivation, fetchurl, pkgs, lib, php }:
+{ mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
 let
   pname = "composer";
-  version = "2.0.9";
+  version = "1.10.15";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://getcomposer.org/download/${version}/composer.phar";
-    sha256 = "sha256-JPqlvIB+OZ8y6aIaM/u1sGht+ciFDvq+LAR8LM+5+cw=";
+    sha256 = "1shsxsrc2kq74s1jbq3njn9wzidcz7ak66n9vyz8z8d0hqpg37d6";
   };
 
   dontUnpack = true;
 
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
     install -D $src $out/libexec/composer/composer.phar
     makeWrapper ${php}/bin/php $out/bin/composer \
       --add-flags "$out/libexec/composer/composer.phar" \
-      --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.unzip ]}
+      --prefix PATH : ${lib.makeBinPath [ unzip ]}
   '';
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "Dependency Manager for PHP";
     license = licenses.mit;
     homepage = "https://getcomposer.org/";
diff --git a/nixpkgs/pkgs/development/php-packages/composer/default.nix b/nixpkgs/pkgs/development/php-packages/composer/default.nix
index 37c983507ce3..d704b5f9a27d 100644
--- a/nixpkgs/pkgs/development/php-packages/composer/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/composer/default.nix
@@ -1,29 +1,29 @@
-{ mkDerivation, fetchurl, pkgs, lib, php }:
+{ mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
 let
   pname = "composer";
-  version = "1.10.15";
+  version = "2.0.11";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://getcomposer.org/download/${version}/composer.phar";
-    sha256 = "1shsxsrc2kq74s1jbq3njn9wzidcz7ak66n9vyz8z8d0hqpg37d6";
+    sha256 = "sha256-6r8pFwcglqlGeRk3YlATGeYh4rNppKElaywn9OaYRHc=";
   };
 
   dontUnpack = true;
 
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
     install -D $src $out/libexec/composer/composer.phar
     makeWrapper ${php}/bin/php $out/bin/composer \
       --add-flags "$out/libexec/composer/composer.phar" \
-      --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.unzip ]}
+      --prefix PATH : ${lib.makeBinPath [ unzip ]}
   '';
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "Dependency Manager for PHP";
     license = licenses.mit;
     homepage = "https://getcomposer.org/";
diff --git a/nixpkgs/pkgs/development/php-packages/couchbase/default.nix b/nixpkgs/pkgs/development/php-packages/couchbase/default.nix
index 4ec718469197..3566c7916e55 100644
--- a/nixpkgs/pkgs/development/php-packages/couchbase/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/couchbase/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pkgs, php }:
+{ lib, buildPecl, fetchFromGitHub, writeText, libcouchbase, zlib, php }:
 let
   pname = "couchbase";
   version = "2.6.2";
@@ -6,7 +6,7 @@ in
 buildPecl {
   inherit pname version;
 
-  src = pkgs.fetchFromGitHub {
+  src = fetchFromGitHub {
     owner = "couchbase";
     repo = "php-couchbase";
     rev = "v${version}";
@@ -16,12 +16,12 @@ buildPecl {
   configureFlags = [ "--with-couchbase" ];
   broken = lib.versionAtLeast php.version "8.0";
 
-  buildInputs = with pkgs; [ libcouchbase zlib ];
+  buildInputs = [ libcouchbase zlib ];
   internalDeps = [] ++ lib.optionals (lib.versionOlder php.version "8.0") [ php.extensions.json ];
   peclDeps = [ php.extensions.igbinary ];
 
   patches = [
-    (pkgs.writeText "php-couchbase.patch" ''
+    (writeText "php-couchbase.patch" ''
       --- a/config.m4
       +++ b/config.m4
       @@ -9,7 +9,7 @@ if test "$PHP_COUCHBASE" != "no"; then
@@ -29,7 +29,7 @@ buildPecl {
          else
            AC_MSG_CHECKING(for libcouchbase in default path)
       -    for i in /usr/local /usr; do
-      +    for i in ${pkgs.libcouchbase}; do
+      +    for i in ${libcouchbase}; do
              if test -r $i/include/libcouchbase/couchbase.h; then
                LIBCOUCHBASE_DIR=$i
                AC_MSG_RESULT(found in $i)
diff --git a/nixpkgs/pkgs/development/php-packages/event/default.nix b/nixpkgs/pkgs/development/php-packages/event/default.nix
index 940150ac9867..420f2385e544 100644
--- a/nixpkgs/pkgs/development/php-packages/event/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/event/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pkgs, php }:
+{ buildPecl, lib, php, pkg-config, openssl, libevent }:
 buildPecl {
   pname = "event";
 
@@ -6,7 +6,7 @@ buildPecl {
   sha256 = "1ws4l014z52vb23xbsfj6viwkf7fmh462af639xgbp0n6syf77dq";
 
   configureFlags = [
-    "--with-event-libevent-dir=${pkgs.libevent.dev}"
+    "--with-event-libevent-dir=${libevent.dev}"
     "--with-event-core"
     "--with-event-extra"
     "--with-event-pthreads"
@@ -18,11 +18,11 @@ buildPecl {
       ':'
   '';
 
-  nativeBuildInputs = [ pkgs.pkg-config ];
-  buildInputs = with pkgs; [ openssl libevent ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl libevent ];
   internalDeps = [ php.extensions.sockets ];
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = ''
       This is an extension to efficiently schedule I/O, time and signal based
       events using the best I/O notification mechanism available for specific platform.
diff --git a/nixpkgs/pkgs/development/php-packages/imagick/default.nix b/nixpkgs/pkgs/development/php-packages/imagick/default.nix
index f697b44affd6..ebff9b00f02c 100644
--- a/nixpkgs/pkgs/development/php-packages/imagick/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/imagick/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, fetchpatch, lib, pkgs, pcre' }:
+{ buildPecl, fetchpatch, lib, imagemagick, pkg-config, pcre' }:
 
 buildPecl {
   pname = "imagick";
@@ -19,8 +19,8 @@ buildPecl {
     })
   ];
 
-  configureFlags = [ "--with-imagick=${pkgs.imagemagick7.dev}" ];
-  nativeBuildInputs = [ pkgs.pkg-config ];
+  configureFlags = [ "--with-imagick=${imagemagick.dev}" ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ pcre' ];
 
   meta.maintainers = lib.teams.php.members;
diff --git a/nixpkgs/pkgs/development/php-packages/maxminddb/default.nix b/nixpkgs/pkgs/development/php-packages/maxminddb/default.nix
index 2533a6ef06db..9a5a96e15c23 100644
--- a/nixpkgs/pkgs/development/php-packages/maxminddb/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/maxminddb/default.nix
@@ -1,22 +1,22 @@
-{ buildPecl, lib, pkgs }:
+{ buildPecl, lib, fetchFromGitHub, libmaxminddb }:
 let
   pname = "maxminddb";
-  version = "1.9.0";
+  version = "1.10.0";
 in
 buildPecl {
   inherit pname version;
 
-  src = pkgs.fetchFromGitHub {
+  src = fetchFromGitHub {
     owner = "maxmind";
     repo = "MaxMind-DB-Reader-php";
     rev = "v${version}";
-    sha256 = "sha256-sNG2FhnxzbHA4Lmzj97al1WFwSU70Mr1R2i5ygF1L6Y=";
+    sha256 = "sha256-2SnajDdO5uAYcuVpEbOuFlZzMxwo/EqFtUSr9XxT0KQ=";
   };
 
-  buildInputs = [ pkgs.libmaxminddb ];
+  buildInputs = [ libmaxminddb ];
   sourceRoot = "source/ext";
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "C extension that is a drop-in replacement for MaxMind\\Db\\Reader";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ ajs124 das_j ] ++ teams.php.members;
diff --git a/nixpkgs/pkgs/development/php-packages/memcached/default.nix b/nixpkgs/pkgs/development/php-packages/memcached/default.nix
index 3eb1da463b9f..4880e08e0629 100644
--- a/nixpkgs/pkgs/development/php-packages/memcached/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/memcached/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, fetchgit, php, pkgs }:
+{ buildPecl, lib, fetchgit, php, cyrus_sasl, zlib, pkg-config, libmemcached }:
 let
   pname = "memcached";
   version = "3.1.5";
@@ -19,12 +19,12 @@ buildPecl {
   ];
 
   configureFlags = [
-    "--with-zlib-dir=${pkgs.zlib.dev}"
-    "--with-libmemcached-dir=${pkgs.libmemcached}"
+    "--with-zlib-dir=${zlib.dev}"
+    "--with-libmemcached-dir=${libmemcached}"
   ];
 
-  nativeBuildInputs = [ pkgs.pkg-config ];
-  buildInputs = with pkgs; [ cyrus_sasl zlib ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ cyrus_sasl zlib ];
 
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/nixpkgs/pkgs/development/php-packages/mongodb/default.nix b/nixpkgs/pkgs/development/php-packages/mongodb/default.nix
index 18bb515d15e1..95e51892f04e 100644
--- a/nixpkgs/pkgs/development/php-packages/mongodb/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/mongodb/default.nix
@@ -1,4 +1,5 @@
-{ buildPecl, lib, pkgs, pcre' }:
+{ stdenv, buildPecl, lib, pcre', pkg-config, cyrus_sasl, icu64
+, openssl, snappy, zlib, darwin }:
 
 buildPecl {
   pname = "mongodb";
@@ -6,15 +7,15 @@ buildPecl {
   version = "1.9.0";
   sha256 = "16mbw3p80qxsj86nmjbfch8wv6jaq8wbz4rlpmixvhj9nwbp37hs";
 
-  nativeBuildInputs = [ pkgs.pkg-config ];
-  buildInputs = with pkgs; [
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
     cyrus_sasl
     icu64
     openssl
     snappy
     zlib
     pcre'
-  ] ++ lib.optional (pkgs.stdenv.isDarwin) pkgs.darwin.apple_sdk.frameworks.Security;
+  ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
 
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/nixpkgs/pkgs/development/php-packages/oci8/default.nix b/nixpkgs/pkgs/development/php-packages/oci8/default.nix
index 697ad6740200..eeaffb4b7fc9 100644
--- a/nixpkgs/pkgs/development/php-packages/oci8/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/oci8/default.nix
@@ -1,14 +1,14 @@
-{ buildPecl, lib, pkgs, version, sha256 }:
+{ buildPecl, lib, version, sha256, oracle-instantclient }:
 buildPecl {
   pname = "oci8";
 
   inherit version sha256;
 
-  buildInputs = [ pkgs.oracle-instantclient ];
-  configureFlags = [ "--with-oci8=shared,instantclient,${pkgs.oracle-instantclient.lib}/lib" ];
+  buildInputs = [ oracle-instantclient ];
+  configureFlags = [ "--with-oci8=shared,instantclient,${oracle-instantclient.lib}/lib" ];
 
   postPatch = ''
-    sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${pkgs.oracle-instantclient.dev}/include"|' config.m4
+    sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${oracle-instantclient.dev}/include"|' config.m4
   '';
 
   meta.maintainers = lib.teams.php.members;
diff --git a/nixpkgs/pkgs/development/php-packages/pcov/default.nix b/nixpkgs/pkgs/development/php-packages/pcov/default.nix
index 84fbc4f7a469..1422e1b176d4 100644
--- a/nixpkgs/pkgs/development/php-packages/pcov/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/pcov/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "pcov";
 
-  version = "1.0.6";
-  sha256 = "1psfwscrc025z8mziq69pcx60k4fbkqa5g2ia8lplb94mmarj0v1";
+  version = "1.0.8";
+  sha256 = "sha256-6rbniyxLIHPW/e+eWZN1qS8F1rOB7ld1N8JKUS1geRQ=";
 
   buildInputs = [ pcre' ];
 
diff --git a/nixpkgs/pkgs/development/php-packages/pdlib/default.nix b/nixpkgs/pkgs/development/php-packages/pdlib/default.nix
index 830519467017..e217edd29ef7 100644
--- a/nixpkgs/pkgs/development/php-packages/pdlib/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/pdlib/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pkgs }:
+{ buildPecl, fetchFromGitHub, lib, pkg-config, dlib }:
 let
   pname = "pdlib";
   version = "1.0.2";
@@ -6,15 +6,15 @@ in
 buildPecl {
   inherit pname version;
 
-  src = pkgs.fetchFromGitHub {
+  src = fetchFromGitHub {
     owner = "goodspb";
     repo = "pdlib";
     rev = "v${version}";
     sha256 = "0qnmqwlw5vb2rvliap4iz9val6mal4qqixcw69pwskdw5jka6v5i";
   };
 
-  nativeBuildInputs = [ pkgs.pkg-config ];
-  buildInputs = [ (pkgs.dlib.override { guiSupport = true; }) ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ (dlib.override { guiSupport = true; }) ];
 
   meta = with lib; {
     description = "A PHP extension for Dlib";
diff --git a/nixpkgs/pkgs/development/php-packages/pdo_sqlsrv/default.nix b/nixpkgs/pkgs/development/php-packages/pdo_sqlsrv/default.nix
index ae0159444430..d80944ada09f 100644
--- a/nixpkgs/pkgs/development/php-packages/pdo_sqlsrv/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/pdo_sqlsrv/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pkgs, php }:
+{ stdenv, buildPecl, lib, libiconv, unixODBC, php }:
 
 buildPecl {
   pname = "pdo_sqlsrv";
@@ -8,7 +8,7 @@ buildPecl {
 
   internalDeps = [ php.extensions.pdo ];
 
-  buildInputs = [ pkgs.unixODBC ] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.libiconv ];
+  buildInputs = [ unixODBC ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/nixpkgs/pkgs/development/php-packages/php-cs-fixer/default.nix b/nixpkgs/pkgs/development/php-packages/php-cs-fixer/default.nix
index c855b975e546..c2e6a1292c7b 100644
--- a/nixpkgs/pkgs/development/php-packages/php-cs-fixer/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/php-cs-fixer/default.nix
@@ -1,18 +1,18 @@
-{ mkDerivation, fetchurl, pkgs, lib, php }:
+{ mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "php-cs-fixer";
-  version = "2.18.2";
+  version = "2.18.4";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
-    sha256 = "sha256-451be1O/y92ib5hZNVbf8iCkD+e9DoK47Z7IkMnwuo0=";
+    sha256 = "sha256-ZgnWv7Xd+0XgZ/IPdjVpAEraNNJq2KHB3aUUIG1SirU=";
   };
 
   phases = [ "installPhase" ];
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -21,7 +21,7 @@ mkDerivation {
       --add-flags "$out/libexec/php-cs-fixer/php-cs-fixer.phar"
   '';
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "A tool to automatically fix PHP coding standards issues";
     license = licenses.mit;
     homepage = "http://cs.sensiolabs.org/";
diff --git a/nixpkgs/pkgs/development/php-packages/php-parallel-lint/default.nix b/nixpkgs/pkgs/development/php-packages/php-parallel-lint/default.nix
index f479581fb2ee..50fd23540ee5 100644
--- a/nixpkgs/pkgs/development/php-packages/php-parallel-lint/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/php-parallel-lint/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, fetchFromGitHub, pkgs, lib, php }:
+{ mkDerivation, fetchFromGitHub, makeWrapper, lib, php }:
 let
   pname = "php-parallel-lint";
   version = "1.0.0";
@@ -14,7 +14,7 @@ mkDerivation {
   };
 
   nativeBuildInputs = [
-    pkgs.makeWrapper
+    makeWrapper
     php.packages.composer
     php.packages.box
   ];
@@ -31,7 +31,7 @@ mkDerivation {
       --add-flags "$out/libexec/php-parallel-lint/php-parallel-lint.phar"
   '';
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "Tool to check syntax of PHP files faster than serial check with fancier output";
     license = licenses.bsd2;
     homepage = "https://github.com/JakubOnderka/PHP-Parallel-Lint";
diff --git a/nixpkgs/pkgs/development/php-packages/php_excel/default.nix b/nixpkgs/pkgs/development/php-packages/php_excel/default.nix
index ab6d193fcd4d..8b83f558a53a 100644
--- a/nixpkgs/pkgs/development/php-packages/php_excel/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/php_excel/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, fetchurl, lib, pkgs }:
+{ buildPecl, fetchurl, lib, libxl }:
 let
   pname = "php_excel";
   phpVersion = "php7";
@@ -12,12 +12,12 @@ buildPecl {
     sha256 = "0dpvih9gpiyh1ml22zi7hi6kslkilzby00z1p8x248idylldzs2n";
   };
 
-  buildInputs = with pkgs; [ libxl ];
+  buildInputs = [ libxl ];
 
   configureFlags = [
     "--with-excel"
-    "--with-libxl-incdir=${pkgs.libxl}/include_c"
-    "--with-libxl-libdir=${pkgs.libxl}/lib"
+    "--with-libxl-incdir=${libxl}/include_c"
+    "--with-libxl-libdir=${libxl}/lib"
   ];
 
   meta.maintainers = lib.teams.php.members;
diff --git a/nixpkgs/pkgs/development/php-packages/phpcbf/default.nix b/nixpkgs/pkgs/development/php-packages/phpcbf/default.nix
index b58ba42a5d04..da114a4d348f 100644
--- a/nixpkgs/pkgs/development/php-packages/phpcbf/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/phpcbf/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, fetchurl, pkgs, lib, php }:
+{ mkDerivation, fetchurl, lib, php, makeWrapper }:
 let
   pname = "phpcbf";
   version = "3.5.8";
@@ -12,7 +12,7 @@ mkDerivation {
   };
 
   phases = [ "installPhase" ];
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -21,7 +21,7 @@ mkDerivation {
       --add-flags "$out/libexec/phpcbf/phpcbf.phar"
   '';
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "PHP coding standard beautifier and fixer";
     license = licenses.bsd3;
     homepage = "https://squizlabs.github.io/PHP_CodeSniffer/";
diff --git a/nixpkgs/pkgs/development/php-packages/phpcs/default.nix b/nixpkgs/pkgs/development/php-packages/phpcs/default.nix
index 0e8557c04eb7..d2053dbe9cb7 100644
--- a/nixpkgs/pkgs/development/php-packages/phpcs/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/phpcs/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, fetchurl, pkgs, lib, php }:
+{ mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "phpcs";
   version = "3.5.8";
@@ -12,7 +12,7 @@ mkDerivation {
   };
 
   phases = [ "installPhase" ];
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -21,7 +21,7 @@ mkDerivation {
       --add-flags "$out/libexec/phpcs/phpcs.phar"
   '';
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "PHP coding standard tool";
     license = licenses.bsd3;
     homepage = "https://squizlabs.github.io/PHP_CodeSniffer/";
diff --git a/nixpkgs/pkgs/development/php-packages/phpmd/default.nix b/nixpkgs/pkgs/development/php-packages/phpmd/default.nix
index fd7390498ba3..fde674701eb2 100644
--- a/nixpkgs/pkgs/development/php-packages/phpmd/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/phpmd/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, fetchurl, pkgs, lib, php }:
+{ mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "phpmd";
   version = "2.8.2";
@@ -8,13 +8,13 @@ in
 mkDerivation {
   inherit pname version;
 
-  src = pkgs.fetchurl {
+  src = fetchurl {
     url = "https://github.com/phpmd/phpmd/releases/download/${version}/phpmd.phar";
     sha256 = "1i8qgzxniw5d8zjpypalm384y7qfczapfq70xmg129laq6xiqlqb";
   };
 
   phases = [ "installPhase" ];
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -23,7 +23,7 @@ mkDerivation {
       --add-flags "$out/libexec/phpmd/phpmd.phar"
   '';
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "PHP code quality analyzer";
     license = licenses.bsd3;
     homepage = "https://phpmd.org/";
diff --git a/nixpkgs/pkgs/development/php-packages/phpstan/default.nix b/nixpkgs/pkgs/development/php-packages/phpstan/default.nix
index f8124e43d7f5..902529806a3b 100644
--- a/nixpkgs/pkgs/development/php-packages/phpstan/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/phpstan/default.nix
@@ -1,18 +1,18 @@
-{ mkDerivation, fetchurl, pkgs, lib, php }:
+{ mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "phpstan";
-  version = "0.12.74";
+  version = "0.12.82";
 in
 mkDerivation {
   inherit pname version;
 
-  src = pkgs.fetchurl {
+  src = fetchurl {
     url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar";
-    sha256 = "sha256-zEDqswyldyXha836ye+FmE4yYxH+7AzEvlKJYOje0xQ=";
+    sha256 = "sha256-fX7YK4z6xUhSJ2jTCy7bRK13TxXSn/qo7E5DeZlv2Nw=";
   };
 
   phases = [ "installPhase" ];
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -21,7 +21,7 @@ mkDerivation {
       --add-flags "$out/libexec/phpstan/phpstan.phar"
   '';
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "PHP Static Analysis Tool";
     longDescription = ''
       PHPStan focuses on finding errors in your code without actually
diff --git a/nixpkgs/pkgs/development/php-packages/psalm/default.nix b/nixpkgs/pkgs/development/php-packages/psalm/default.nix
index 1de01d1d09d1..01160fc35fe6 100644
--- a/nixpkgs/pkgs/development/php-packages/psalm/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/psalm/default.nix
@@ -1,18 +1,18 @@
-{ mkDerivation, fetchurl, pkgs, lib, php }:
+{ mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "psalm";
-  version = "4.4.1";
+  version = "4.6.1";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/vimeo/psalm/releases/download/${version}/psalm.phar";
-    sha256 = "sha256-4hqgAPflzNmeQQaxQATpWYBB5Pz7jKu8Vlw3BiMyhtw=";
+    sha256 = "sha256-YFeTSIfZ2u1KmpoKV5I7pMMvCk3u5ILktsunvoDnBsg=";
   };
 
   phases = [ "installPhase" ];
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -21,7 +21,7 @@ mkDerivation {
       --add-flags "$out/libexec/psalm/psalm.phar"
   '';
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "A static analysis tool for finding errors in PHP applications";
     license = licenses.mit;
     homepage = "https://github.com/vimeo/psalm";
diff --git a/nixpkgs/pkgs/development/php-packages/psysh/default.nix b/nixpkgs/pkgs/development/php-packages/psysh/default.nix
index 4c5f703d025f..514706dc178c 100644
--- a/nixpkgs/pkgs/development/php-packages/psysh/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/psysh/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, fetchurl, pkgs, lib, php }:
+{ mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "psysh";
   version = "0.10.4";
@@ -12,7 +12,7 @@ mkDerivation {
   };
 
   phases = [ "installPhase" ];
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -21,7 +21,7 @@ mkDerivation {
     wrapProgram $out/bin/psysh --prefix PATH : "${lib.makeBinPath [ php ]}"
   '';
 
-  meta = with pkgs.lib; {
+  meta = with lib; {
     description = "PsySH is a runtime developer console, interactive debugger and REPL for PHP.";
     license = licenses.mit;
     homepage = "https://psysh.org/";
diff --git a/nixpkgs/pkgs/development/php-packages/rdkafka/default.nix b/nixpkgs/pkgs/development/php-packages/rdkafka/default.nix
index e5bdc2a22984..0e78d3bbc976 100644
--- a/nixpkgs/pkgs/development/php-packages/rdkafka/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/rdkafka/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pkgs, pcre' }:
+{ buildPecl, lib, rdkafka, pcre' }:
 
 buildPecl {
   pname = "rdkafka";
@@ -6,11 +6,11 @@ buildPecl {
   version = "5.0.0";
   sha256 = "sha256-Qy+6rkPczhdxFbDhcuzmUTLMPUXYZ0HaheDBhkh4FXs=";
 
-  buildInputs = [ pkgs.rdkafka pcre' ];
+  buildInputs = [ rdkafka pcre' ];
 
   postPhpize = ''
     substituteInPlace configure \
-      --replace 'SEARCH_PATH="/usr/local /usr"' 'SEARCH_PATH=${pkgs.rdkafka}'
+      --replace 'SEARCH_PATH="/usr/local /usr"' 'SEARCH_PATH=${rdkafka}'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/php-packages/smbclient/default.nix b/nixpkgs/pkgs/development/php-packages/smbclient/default.nix
index 1aec97251e1b..0b485e048052 100644
--- a/nixpkgs/pkgs/development/php-packages/smbclient/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/smbclient/default.nix
@@ -1,14 +1,14 @@
-{ buildPecl, lib, pkgs }:
+{ buildPecl, lib, samba, pkg-config }:
 buildPecl {
   pname = "smbclient";
-  version = "1.0.4";
-  sha256 = "07p72m5kbdyp3r1mfxhiayzdvymhc8afwcxa9s86m96sxbmlbbp8";
+  version = "1.0.6";
+  sha256 = "sha256-ZsQzdDt6NLRWBsA75om9zkxSvB6zBsvvPhXJZrX/KNc=";
 
   # TODO: remove this when upstream merges a fix - https://github.com/eduardok/libsmbclient-php/pull/66
-  LIBSMBCLIENT_INCDIR = "${pkgs.samba.dev}/include/samba-4.0";
+  LIBSMBCLIENT_INCDIR = "${samba.dev}/include/samba-4.0";
 
-  nativeBuildInputs = [ pkgs.pkg-config ];
-  buildInputs = [ pkgs.samba ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ samba ];
 
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/nixpkgs/pkgs/development/php-packages/sqlsrv/default.nix b/nixpkgs/pkgs/development/php-packages/sqlsrv/default.nix
index 939be27671b1..4522129b2aa3 100644
--- a/nixpkgs/pkgs/development/php-packages/sqlsrv/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/sqlsrv/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pkgs }:
+{ stdenv, buildPecl, lib, unixODBC, libiconv }:
 
 buildPecl {
   pname = "sqlsrv";
@@ -7,10 +7,8 @@ buildPecl {
   sha256 = "1css440b4qrbblmcswd5wdr2v1rjxlj2iicbmvjq9fg81028w40a";
 
   buildInputs = [
-    pkgs.unixODBC
-  ] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [
-    pkgs.libiconv
-  ];
+    unixODBC
+  ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/nixpkgs/pkgs/development/php-packages/swoole/default.nix b/nixpkgs/pkgs/development/php-packages/swoole/default.nix
new file mode 100644
index 000000000000..b3d43acd1b32
--- /dev/null
+++ b/nixpkgs/pkgs/development/php-packages/swoole/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPecl, php, valgrind, pcre' }:
+
+buildPecl {
+  pname = "swoole";
+
+  version = "4.6.4";
+  sha256 = "0hgndnn27q7fbsb0nw6bfdg0kyy5di9vrmf7g53jc6lsnf73ha31";
+
+  buildInputs = [ valgrind pcre' ];
+  internalDeps = lib.optionals (lib.versionOlder php.version "7.4") [ php.extensions.hash ];
+
+  doCheck = true;
+  checkTarget = "tests";
+
+  meta = with lib; {
+    description = "Coroutine-based concurrency library for PHP";
+    license = licenses.asl20;
+    homepage = "https://www.swoole.co.uk/";
+    maintainers = teams.php.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/php-packages/xdebug/default.nix b/nixpkgs/pkgs/development/php-packages/xdebug/default.nix
index 780bb8c9086b..56341be436a0 100644
--- a/nixpkgs/pkgs/development/php-packages/xdebug/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/xdebug/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "xdebug";
 
-  version = "3.0.2";
-  sha256 = "05sfgkw55ym7mg0b54l9x3i9598kf2bkp4z3sdl1hd31q3g4cv89";
+  version = "3.0.3";
+  sha256 = "sha256-5yZagVGOOX+XLcki50bRpIRTcXf/SJVDUWfRCeKTJDI=";
 
   doCheck = true;
   checkTarget = "test";
diff --git a/nixpkgs/pkgs/development/php-packages/yaml/default.nix b/nixpkgs/pkgs/development/php-packages/yaml/default.nix
index 40e5a859f9e4..9bd30ff4e3c4 100644
--- a/nixpkgs/pkgs/development/php-packages/yaml/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/yaml/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pkgs }:
+{ buildPecl, lib, pkg-config, libyaml }:
 
 buildPecl {
   pname = "yaml";
@@ -6,9 +6,9 @@ buildPecl {
   version = "2.2.1";
   sha256 = "sha256-4XrQTnUuJf0Jm93S350m3+8YPI0AxBebydei4cl9eBk=";
 
-  configureFlags = [ "--with-yaml=${pkgs.libyaml}" ];
+  configureFlags = [ "--with-yaml=${libyaml}" ];
 
-  nativeBuildInputs = [ pkgs.pkg-config ];
+  nativeBuildInputs = [ pkg-config ];
 
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix b/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix
index d1ac191489ad..1a27c8c1f0fc 100644
--- a/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix
@@ -1,26 +1,29 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
-, pytest
+, setuptools-scm
+, pytestCheckHook
+, pytest-asyncio
+, pytest-tornado
 , pytestcov
 , sqlalchemy
 , tornado
 , twisted
 , mock
-, trollius
 , gevent
 , six
 , pytz
 , tzlocal
 , funcsigs
-, futures
-, isPy3k
+, setuptools
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "APScheduler";
   version = "3.7.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
@@ -28,17 +31,18 @@ buildPythonPackage rec {
   };
 
   buildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   checkInputs = [
-    pytest
+    pytest-asyncio
+    pytest-tornado
+    pytestCheckHook
     pytestcov
     sqlalchemy
     tornado
     twisted
     mock
-    trollius
     gevent
   ];
 
@@ -47,18 +51,19 @@ buildPythonPackage rec {
     pytz
     tzlocal
     funcsigs
-  ] ++ lib.optional (!isPy3k) futures;
+    setuptools
+  ];
 
-  checkPhase = ''
-    py.test
-  '';
+  disabledTests = lib.optionals stdenv.isDarwin [
+    "test_submit_job"
+    "test_max_instances"
+  ];
 
-  # Somehow it cannot find pytestcov
-  doCheck = false;
+  pythonImportsCheck = [ "apscheduler" ];
 
   meta = with lib; {
     description = "A Python library that lets you schedule your Python code to be executed";
-    homepage = "https://pypi.python.org/pypi/APScheduler/";
+    homepage = "https://github.com/agronholm/apscheduler";
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/Cython/default.nix b/nixpkgs/pkgs/development/python-modules/Cython/default.nix
index 64f5bb3ab656..c09f1586fd6f 100644
--- a/nixpkgs/pkgs/development/python-modules/Cython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Cython/default.nix
@@ -26,11 +26,11 @@ let
 
 in buildPythonPackage rec {
   pname = "Cython";
-  version = "0.29.21";
+  version = "0.29.22";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bcwpra7c6k30yvic3sw2v3rq2dr40ypc4zqif6kr52mpn4wnyp5";
+    sha256 = "sha256-32uDx6bR2WfqiaKQPkqTE3djSil0WWUuRVFzTEgZVAY=";
   };
 
   nativeBuildInputs = [
@@ -49,6 +49,15 @@ in buildPythonPackage rec {
       url = "https://github.com/cython/cython/commit/28251032f86c266065e4976080230481b1a1bb29.patch";
       sha256 = "19rg7xs8gr90k3ya5c634bs8gww1sxyhdavv07cyd2k71afr83gy";
     })
+
+    # backport Cython 3.0 trashcan support (https://github.com/cython/cython/pull/2842) to 0.X series.
+    # it does not affect Python code unless the code explicitly uses the feature.
+    # trashcan support is needed to avoid stack overflows during object deallocation in sage (https://trac.sagemath.org/ticket/27267)
+    (fetchpatch {
+      name = "trashcan.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/cython/patches/trashcan.patch?id=4569a839f070a1a38d5dbce2a4d19233d25aeed2";
+      sha256 = "sha256-+pOF1XNTEtNseLpqPzrc1Jfwt5hGx7doUoccIhNneYY=";
+    })
   ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix b/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix
index 3cd211db7559..8380832abd67 100644
--- a/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix
@@ -1,41 +1,64 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, curve25519-donna, ed25519
-, cryptography, ecdsa, zeroconf, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, base36
+, cryptography
+, curve25519-donna
+, ecdsa
+, ed25519
+, fetchFromGitHub
+, h11
+, pyqrcode
+, pytest-asyncio
+, pytest-timeout
+, pytestCheckHook
+, pythonOlder
+, zeroconf
+}:
 
 buildPythonPackage rec {
   pname = "HAP-python";
-  version = "3.1.0";
+  version = "3.4.1";
+  disabled = pythonOlder "3.5";
 
   # pypi package does not include tests
   src = fetchFromGitHub {
     owner = "ikalchev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qg38lfjby2xfm09chzc40a7i3b84kgyfs7g4xq8f5m8s39hg6d7";
+    sha256 = "sha256-tZ6Zwlx5J62Xqpxxmt8Phdd9ngtKYhP/p3uor1dRfK8=";
   };
 
-  disabled = !isPy3k;
-
   propagatedBuildInputs = [
-    curve25519-donna
-    ed25519
+    base36
     cryptography
+    curve25519-donna
     ecdsa
+    ed25519
+    h11
+    pyqrcode
     zeroconf
   ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytest-asyncio
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  # Disable tests requiring network access
+  disabledTestPaths = [
+    "tests/test_accessory_driver.py"
+    "tests/test_hap_handler.py"
+    "tests/test_hap_protocol.py"
+  ];
 
   disabledTests = [
-    #disable tests needing network
-    "test_persist"
-    "test_setup_endpoints"
-    "test_auto_add_aid_mac"
-    "test_service_callbacks"
-    "test_send_events"
-    "test_not_standalone_aid"
-    "test_start_stop_async_acc"
-    "test_external_zeroconf"
-    "test_start_stop_sync_acc"
+    "test_persist_and_load"
+    "test_we_can_connect"
+    "test_idle_connection_cleanup"
+    "test_we_can_start_stop"
+    "test_push_event"
+    "test_bridge_run_stop"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/Mako/default.nix b/nixpkgs/pkgs/development/python-modules/Mako/default.nix
index c129e411a473..533e1317a091 100644
--- a/nixpkgs/pkgs/development/python-modules/Mako/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Mako/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "Mako";
-  version = "1.1.3";
+  version = "1.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8195c8c1400ceb53496064314c6736719c6f25e7479cd24c77be3d9361cddc27";
+    sha256 = "17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab";
   };
 
   propagatedBuildInputs = [ markupsafe ];
diff --git a/nixpkgs/pkgs/development/python-modules/Nikola/default.nix b/nixpkgs/pkgs/development/python-modules/Nikola/default.nix
index eeab02fcb75e..d8c49c99eba3 100644
--- a/nixpkgs/pkgs/development/python-modules/Nikola/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Nikola/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchPypi
@@ -35,7 +36,7 @@
 
 buildPythonPackage rec {
   pname = "Nikola";
-  version = "8.1.2";
+  version = "8.1.3";
 
   # Nix contains only Python 3 supported version of doit, which is a dependency
   # of Nikola. Python 2 support would require older doit 0.29.0 (which on the
@@ -54,7 +55,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26f4fb1a2b0105cf0f71187c6c1eb54283767a883d1c8f4ca8c8039033217d27";
+    sha256 = "05eac356bb4273cdd05d2dd6ad676226133496c457af91987c3f0d40e2fe57ef";
   };
 
   patchPhase = ''
@@ -72,5 +73,7 @@ buildPythonPackage rec {
     description = "A modular, fast, simple, static website and blog generator";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ jluttine ];
+    # all tests fail
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix b/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix
index 86fb75f14548..cfbf3be1c40c 100644
--- a/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix
@@ -1,13 +1,19 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, flit
-, lxml, httpx
-, pytest, pytestcov, pytest-asyncio, pytest-mock, aresponses
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
 , pythonOlder
+, flit
+, async-timeout
+, lxml
+, httpx
+, pytestCheckHook
+, pytest-asyncio
+, pytest-httpx
 }:
 
 buildPythonPackage rec {
   pname = "PyRMVtransport";
-  version = "0.2.10";
+  version = "0.3.1";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -15,7 +21,7 @@ buildPythonPackage rec {
     owner = "cgtobi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03qrylidb1d6zw6a22d1drdf73cvfxqcqaa8qi8x4pli1axcfh5w";
+    sha256 = "1savzndg8l7rrc5dgzgsrdz9hnnjfv6qs5drznqmdw4f2rq84ypa";
   };
 
   nativeBuildInputs = [
@@ -23,24 +29,18 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    async-timeout
     httpx
     lxml
   ];
 
-  # requires pytest-httpx
-  doCheck = false;
+  pythonImportsCheck = [ "RMVtransport" ];
 
   checkInputs = [
-    pytest
-    pytestcov
+    pytestCheckHook
     pytest-asyncio
-    pytest-mock
-    # pytest-httpx is missing
-    aresponses
+    pytest-httpx
   ];
-  checkPhase = ''
-    pytest --cov=RMVtransport tests
-  '';
 
   meta = with lib; {
     homepage = "https://github.com/cgtobi/PyRMVtransport";
diff --git a/nixpkgs/pkgs/development/python-modules/Pygments/2_5.nix b/nixpkgs/pkgs/development/python-modules/Pygments/2_5.nix
index a0c40550c9a9..aa59c370d2e7 100644
--- a/nixpkgs/pkgs/development/python-modules/Pygments/2_5.nix
+++ b/nixpkgs/pkgs/development/python-modules/Pygments/2_5.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , docutils
 }:
 
@@ -13,6 +14,15 @@ buildPythonPackage rec {
     sha256 = "98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2021-27291.patch";
+      url = "https://github.com/pygments/pygments/commit/2e7e8c4a7b318f4032493773732754e418279a14.patch";
+      sha256 = "0ap7jgkmvkkzijabsgnfrwl376cjsxa4jmzvqysrkwpjq3q4rxpa";
+      excludes = ["CHANGES"];
+    })
+  ];
+
   propagatedBuildInputs = [ docutils ];
 
   # Circular dependency with sphinx
diff --git a/nixpkgs/pkgs/development/python-modules/Pygments/default.nix b/nixpkgs/pkgs/development/python-modules/Pygments/default.nix
index 02f39b3014d4..a879aef02266 100644
--- a/nixpkgs/pkgs/development/python-modules/Pygments/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Pygments/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Pygments";
-  version = "2.7.2";
+  version = "2.7.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "381985fcc551eb9d37c52088a32914e00517e57f4a21609f48141ba08e193fa0";
+    sha256 = "df49d09b498e83c1a73128295860250b0b7edd4c723a32e9bc0d295c7c2ec337";
   };
 
   propagatedBuildInputs = [ docutils ];
diff --git a/nixpkgs/pkgs/development/python-modules/Rtree/default.nix b/nixpkgs/pkgs/development/python-modules/Rtree/default.nix
index 82c8ced9704b..eb4dae8e3aa2 100644
--- a/nixpkgs/pkgs/development/python-modules/Rtree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Rtree/default.nix
@@ -1,29 +1,38 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, libspatialindex, numpy }:
+{ lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  libspatialindex,
+  numpy,
+  pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "Rtree";
-  version = "0.9.4";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i1zlyz6vczy3cgg7fan5hq9zzjm7s7zdzfh83ma8g9vq3i2gqya";
+    sha256 = "be8772ca34699a9ad3fb4cfe2cfb6629854e453c10b3328039301bbfc128ca3e";
   };
 
-  propagatedBuildInputs = [ libspatialindex ];
+  buildInputs = [ libspatialindex ];
 
   patchPhase = ''
-    substituteInPlace rtree/core.py --replace \
+    substituteInPlace rtree/finder.py --replace \
       "find_library('spatialindex_c')" "'${libspatialindex}/lib/libspatialindex_c${stdenv.hostPlatform.extensions.sharedLibrary}'"
   '';
 
-  # Tests appear to be broken due to mysterious memory unsafe issues. See #36760
-  doCheck = false;
-  checkInputs = [ numpy ];
+  checkInputs = [
+    numpy
+    pytestCheckHook
+  ];
+  pythonImportsCheck = [ "rtree" ];
 
   meta = with lib; {
     description = "R-Tree spatial index for Python GIS";
     homepage = "https://toblerity.org/rtree/";
-    license = licenses.lgpl21;
+    license = licenses.mit;
     maintainers = with maintainers; [ bgamari ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/WSME/default.nix b/nixpkgs/pkgs/development/python-modules/WSME/default.nix
index 50e90ded7622..118288acb59e 100644
--- a/nixpkgs/pkgs/development/python-modules/WSME/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/WSME/default.nix
@@ -22,13 +22,13 @@
 
 buildPythonPackage rec {
   pname = "WSME";
-  version = "0.10.0";
+  version = "0.10.1";
 
   disabled = pythonAtLeast "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "965b9ce48161e5c50d84aedcf50dca698f05bf07e9d489201bccaec3141cd304";
+    sha256 = "34209b623635a905bcdbc654f53ac814d038da65e4c2bc070ea1745021984079";
   };
 
   nativeBuildInputs = [ pbr ];
diff --git a/nixpkgs/pkgs/development/python-modules/Wand/default.nix b/nixpkgs/pkgs/development/python-modules/Wand/default.nix
index e180f0cea332..4faedcada3b3 100644
--- a/nixpkgs/pkgs/development/python-modules/Wand/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Wand/default.nix
@@ -1,28 +1,28 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, imagemagick7Big
+, imagemagickBig
 }:
 
 buildPythonPackage rec {
   pname = "Wand";
-  version = "0.6.5";
+  version = "0.6.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ec981b4f07f7582fc564aba8b57763a549392e9ef8b6a338e9da54cdd229cf95";
+    sha256 = "540a2da5fb3ada1f0abf6968e0fa01ca7de6cd517f3be5c52d03a4fc8d54d75e";
   };
 
   postPatch = ''
     substituteInPlace wand/api.py --replace \
       "magick_home = os.environ.get('MAGICK_HOME')" \
-      "magick_home = '${imagemagick7Big}'"
+      "magick_home = '${imagemagickBig}'"
   '';
 
   # tests not included with pypi release
   doCheck = false;
 
-  passthru.imagemagick = imagemagick7Big;
+  passthru.imagemagick = imagemagickBig;
 
   meta = with lib; {
     description = "Ctypes-based simple MagickWand API binding for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/accupy/default.nix b/nixpkgs/pkgs/development/python-modules/accupy/default.nix
index 0d2cd2239b50..67aba7342148 100644
--- a/nixpkgs/pkgs/development/python-modules/accupy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/accupy/default.nix
@@ -1,41 +1,47 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , mpmath
 , numpy
-, pipdate
 , pybind11
 , pyfma
 , eigen
+, importlib-metadata
 , pytestCheckHook
 , matplotlib
+, dufte
 , isPy27
 }:
 
 buildPythonPackage rec {
   pname = "accupy";
-  version = "0.3.3";
+  version = "0.3.4";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a234c9897a683a6ade44f0bafa71196f122a61e3ebeacb5b813e7d139d54f3c7";
+    sha256 = "36506aca53154528997ac22aee6292c83da0f4850bb375c149512b5284bd4948";
   };
 
+  nativeBuildInputs = [
+    pybind11
+  ];
+
   buildInputs = [
-    pybind11 eigen
+    eigen
   ];
 
   propagatedBuildInputs = [
     mpmath
     numpy
-    pipdate
     pyfma
-  ];
+  ] ++ lib.optional (pythonOlder "3.8") importlib-metadata;
 
   checkInputs = [
     pytestCheckHook
     matplotlib
+    dufte
   ];
 
   postConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/accuweather/default.nix b/nixpkgs/pkgs/development/python-modules/accuweather/default.nix
index ed6dcb54377e..01a299c89fde 100644
--- a/nixpkgs/pkgs/development/python-modules/accuweather/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/accuweather/default.nix
@@ -1,26 +1,48 @@
-{ aiohttp, buildPythonPackage, fetchFromGitHub, lib, pytest, pytestCheckHook
-, pytestcov, pytestrunner, pytest-asyncio, python, pythonOlder }:
+{ lib
+, aiohttp
+, aioresponses
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytest-error-for-skips
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "accuweather";
-  version = "0.0.11";
-
-  disabled = pythonOlder "3.8";
+  version = "0.1.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "bieniu";
     repo = pname;
     rev = version;
-    sha256 = "1sgbw9yldf81phwx6pbvqg9sp767whxymyj0ca9pwx1r6ipr080h";
+    sha256 = "sha256-fjOwa13hxY8/gCM6TCAFWVmEY1oZyqKyc6o3OSsxHpY=";
   };
 
-  nativeBuildInputs = [ pytestrunner ];
-  propagatedBuildInputs = [ aiohttp ];
-  checkInputs = [ pytestCheckHook pytestcov pytest-asyncio ];
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pytest-runner" ""
+    substituteInPlace pytest.ini \
+      --replace "--cov --cov-report term-missing" ""
+  '';
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    aioresponses
+    pytest-asyncio
+    pytest-error-for-skips
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "accuweather" ];
 
   meta = with lib; {
-    description =
-      "Python wrapper for getting weather data from AccuWeather servers.";
+    description = "Python wrapper for getting weather data from AccuWeather servers";
     homepage = "https://github.com/bieniu/accuweather";
     license = licenses.asl20;
     maintainers = with maintainers; [ jamiemagee ];
diff --git a/nixpkgs/pkgs/development/python-modules/acme/default.nix b/nixpkgs/pkgs/development/python-modules/acme/default.nix
index e63a26e5f74f..97e725bb7119 100644
--- a/nixpkgs/pkgs/development/python-modules/acme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/acme/default.nix
@@ -10,7 +10,6 @@
 , requests-toolbelt
 , six
 , werkzeug
-, mock
 , ndg-httpsclient
 }:
 
@@ -21,7 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     cryptography pyasn1 pyopenssl pyRFC3339 pytz requests requests-toolbelt six
-    werkzeug mock ndg-httpsclient josepy
+    werkzeug ndg-httpsclient josepy
   ];
 
   # does not contain any tests
diff --git a/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index cc8ee9462504..ac4768c31d83 100644
--- a/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -5,12 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Adafruit-PlatformDetect";
-  version = "3.1.0";
+  pname = "adafruit-platformdetect";
+  version = "3.5.0";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-Wd8Qq/jE/C/zx1CRuKLt5Tz8VHY/4bwUa229aDcCFjk=";
+    pname = "Adafruit-PlatformDetect";
+    inherit version;
+    sha256 = "sha256-QJeb9+iiS4QZ7poOBp5oKD5KuagkG6cfTalbNRwrI1M=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/adal/default.nix b/nixpkgs/pkgs/development/python-modules/adal/default.nix
index 55dc21240ec2..fab4c0839e20 100644
--- a/nixpkgs/pkgs/development/python-modules/adal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adal/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "adal";
-  version = "1.2.5";
+  version = "1.2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8003ba03ef04170195b3eddda8a5ab43649ef2c5f0287023d515affb1ccfcfc3";
+    sha256 = "08b94d30676ceb78df31bce9dd0f05f1bc2b6172e44c437cbf5b968a00ac6489";
   };
 
   propagatedBuildInputs =  [ requests pyjwt dateutil ];
diff --git a/nixpkgs/pkgs/development/python-modules/adb-enhanced/default.nix b/nixpkgs/pkgs/development/python-modules/adb-enhanced/default.nix
new file mode 100644
index 000000000000..59eb468868a8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/adb-enhanced/default.nix
@@ -0,0 +1,34 @@
+{ lib, jdk11, fetchFromGitHub, buildPythonPackage, docopt, psutil, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "adb-enhanced";
+  version = "2.5.10";
+
+  disabled = pythonOlder "3.4";
+
+  src = fetchFromGitHub {
+    owner = "ashishb";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-JMbcOk9Yr4WbfVUMKe5zZZWvvjKwhpPMdBt9d7xE6ek=";
+  };
+
+  postPatch = ''
+    substituteInPlace adbe/adb_enhanced.py \
+      --replace "cmd = 'java" "cmd = '${jdk11}/bin/java"
+  '';
+
+  propagatedBuildInputs = [ psutil docopt ];
+
+  # Disable tests because they require a dedicated android emulator
+  doCheck = false;
+
+  pythonImportsCheck = [ "adbe" ];
+
+  meta = with lib; {
+    description = "Tool for Android testing and development";
+    homepage = "https://github.com/ashishb/adb-enhanced";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ vtuan10 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/adb-shell/default.nix b/nixpkgs/pkgs/development/python-modules/adb-shell/default.nix
index 9cd3fe362334..5377785ff25a 100644
--- a/nixpkgs/pkgs/development/python-modules/adb-shell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adb-shell/default.nix
@@ -1,9 +1,20 @@
-{ aiofiles, buildPythonPackage, cryptography, fetchFromGitHub, isPy3k, lib
-, libusb1, mock, pyasn1, python, pycryptodome, rsa }:
+{ lib
+, aiofiles
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, isPy3k
+, libusb1
+, mock
+, pyasn1
+, pycryptodome
+, pytestCheckHook
+, rsa
+}:
 
 buildPythonPackage rec {
   pname = "adb-shell";
-  version = "0.3.0";
+  version = "0.3.1";
 
   disabled = !isPy3k;
 
@@ -12,19 +23,27 @@ buildPythonPackage rec {
     owner = "JeffLIrion";
     repo = "adb_shell";
     rev = "v${version}";
-    sha256 = "0qnlhcd58zxh39cd5xzdx8yc5hc0pf8kix4rbn4avsapwb0l75n2";
+    sha256 = "sha256-b+9ySme44TdIlVnF8AHBBGd8pkoeYG99wmDK/nyAreo=";
   };
 
-  propagatedBuildInputs = [ aiofiles cryptography libusb1 pyasn1 rsa ];
+  propagatedBuildInputs = [
+    aiofiles
+    cryptography
+    libusb1
+    pyasn1
+    rsa
+  ];
 
-  checkInputs = [ mock pycryptodome ];
-  checkPhase = ''
-    ${python.interpreter} -m unittest discover -s tests -t .
-  '';
+  checkInputs = [
+    mock
+    pycryptodome
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "adb_shell" ];
 
   meta = with lib; {
-    description =
-      "A Python implementation of ADB with shell and FileSync functionality.";
+    description = "Python implementation of ADB with shell and FileSync functionality";
     homepage = "https://github.com/JeffLIrion/adb_shell";
     license = licenses.asl20;
     maintainers = with maintainers; [ jamiemagee ];
diff --git a/nixpkgs/pkgs/development/python-modules/adblock/default.nix b/nixpkgs/pkgs/development/python-modules/adblock/default.nix
index de6d72a61ecf..8fc697828f0a 100644
--- a/nixpkgs/pkgs/development/python-modules/adblock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adblock/default.nix
@@ -1,10 +1,9 @@
 { stdenv
 , lib
-, rustPlatform
 , fetchFromGitHub
-, pipInstallHook
+, buildPythonPackage
+, rustPlatform
 , pythonImportsCheckHook
-, maturin
 , pkg-config
 , openssl
 , publicsuffix-list
@@ -13,7 +12,7 @@
 , Security
 }:
 
-rustPlatform.buildRustPackage rec {
+buildPythonPackage rec {
   pname = "adblock";
   version = "0.4.0";
   disabled = isPy27;
@@ -25,39 +24,32 @@ rustPlatform.buildRustPackage rec {
     rev = version;
     sha256 = "10d6ks2fyzbizq3kb69q478idj0h86k6ygjb6wl3zq3mf65ma4zg";
   };
-  format = "pyproject";
 
-  cargoSha256 = "0di05j942rrm2crpdpp9czhh65fmidyrvdp2n3pipgnagy7nchc0";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-gEFmj3/KvhvvsOK2nX2L1RUD4Wfp3nYzEzVnQZIsIDY=";
+  };
 
-  nativeBuildInputs = [ pipInstallHook maturin pkg-config pythonImportsCheckHook ];
+  format = "pyproject";
+
+  nativeBuildInputs = [ pkg-config pythonImportsCheckHook ]
+    ++ (with rustPlatform; [ cargoSetupHook maturinBuildHook ]);
 
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
 
   PSL_PATH = "${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat";
 
-  buildPhase = ''
-    runHook preBuild
-    maturin build --release --manylinux off --strip
-    runHook postBuild
-  '';
-
   # There are no rust tests
   doCheck = false;
-  pythonImportsCheck = [ "adblock" ];
 
-  installPhase = ''
-    runHook preInstall
-    install -Dm644 -t dist target/wheels/*.whl
-    pipInstallPhase
-    runHook postInstall
-  '';
+  pythonImportsCheck = [ "adblock" ];
 
-  passthru.meta = with lib; {
+  meta = with lib; {
     description = "Python wrapper for Brave's adblocking library, which is written in Rust";
     homepage = "https://github.com/ArniDagur/python-adblock/";
     maintainers = with maintainers; [ petabyteboy ];
     license = with licenses; [ asl20 mit ];
-    platforms = with platforms; [ all ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/addic7ed-cli/default.nix b/nixpkgs/pkgs/development/python-modules/addic7ed-cli/default.nix
index bdf6aab3dbfc..3ee3a897a906 100644
--- a/nixpkgs/pkgs/development/python-modules/addic7ed-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/addic7ed-cli/default.nix
@@ -1,4 +1,6 @@
-{ lib, python3Packages, }:
+{ lib
+, python3Packages
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "addic7ed-cli";
@@ -14,6 +16,10 @@ python3Packages.buildPythonApplication rec {
     pyquery
   ];
 
+  # Tests require network access
+  doCheck = false;
+  pythonImportsCheck = [ "addic7ed_cli" ];
+
   meta = with lib; {
     description = "A commandline access to addic7ed subtitles";
     homepage = "https://github.com/BenoitZugmeyer/addic7ed-cli";
diff --git a/nixpkgs/pkgs/development/python-modules/adext/default.nix b/nixpkgs/pkgs/development/python-modules/adext/default.nix
index f3818c93188b..12c86bfc8f5f 100644
--- a/nixpkgs/pkgs/development/python-modules/adext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adext/default.nix
@@ -1,24 +1,26 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools-scm
 , alarmdecoder
 }:
 
 buildPythonPackage rec {
   pname = "adext";
-  version = "0.3";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "184qxw6i5ixnhgkjnby4zwn4jg90mxb8xy9vbg80x5w331p4z50f";
+    sha256 = "1yz1rpfvhbf7kfjck5vadbj9rd3bkx5248whaa3impdrjh7vs03x";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "alarmdecoder==1.13.2" "alarmdecoder>=1.13.2"
-  '';
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
-  propagatedBuildInputs = [ alarmdecoder ];
+  propagatedBuildInputs = [
+    alarmdecoder
+  ];
 
   # Tests are not published yet
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/adguardhome/default.nix b/nixpkgs/pkgs/development/python-modules/adguardhome/default.nix
index b3cbfd212ba6..dfa576e657c9 100644
--- a/nixpkgs/pkgs/development/python-modules/adguardhome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adguardhome/default.nix
@@ -1,24 +1,49 @@
-{ aiohttp, aresponses, buildPythonPackage, fetchFromGitHub, isPy3k, lib
-, pytest-asyncio, pytestCheckHook, yarl }:
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
 
 buildPythonPackage rec {
   pname = "adguardhome";
-  version = "0.4.2";
-
-  disabled = !isPy3k;
+  version = "0.5.0";
+  format = "pyproject";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "frenck";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "0lcf3yg27amrnqvgn5nw4jn2j0vj4yfmyl5p5yncmn7dh6bdbsp8";
+    sha256 = "sha256-f8uZF4DXbfiL1nL82shjGNpo6lXSUomRgO1YnNT/GDw=";
   };
 
-  propagatedBuildInputs = [ aiohttp yarl ];
-  checkInputs = [ aresponses pytest-asyncio pytestCheckHook ];
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml --replace "--cov" ""
+  '';
+
+  pythonImportsCheck = [ "adguardhome" ];
 
   meta = with lib; {
-    description = "Asynchronous Python client for the AdGuard Home API.";
+    description = "Python client for the AdGuard Home API";
     homepage = "https://github.com/frenck/python-adguardhome";
     license = licenses.mit;
     maintainers = with maintainers; [ jamiemagee ];
diff --git a/nixpkgs/pkgs/development/python-modules/afdko/default.nix b/nixpkgs/pkgs/development/python-modules/afdko/default.nix
index 4df6c5f6c493..f86151f2f51f 100644
--- a/nixpkgs/pkgs/development/python-modules/afdko/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/afdko/default.nix
@@ -17,14 +17,19 @@ buildPythonPackage rec {
     sha256 = "1qg7dgl81yq0sp50pkhgvmf8az1svx20zmpkfa68ka9d0ssh1wjw";
   };
 
-  # Skip date-dependent test. See
-  # https://github.com/adobe-type-tools/afdko/pull/1232
-  # https://github.com/NixOS/nixpkgs/pull/98158#issuecomment-704321117
   patches = [
+    # Skip date-dependent test. See
+    # https://github.com/adobe-type-tools/afdko/pull/1232
+    # https://github.com/NixOS/nixpkgs/pull/98158#issuecomment-704321117
     (fetchpatch {
       url = "https://github.com/adobe-type-tools/afdko/commit/2c36ad10f9d964759f643e8ed7b0972a27aa26bd.patch";
       sha256 = "0p6a485mmzrbfldfbhgfghsypfiad3cabcw7qlw2rh993ivpnibf";
     })
+    # fix tests for fonttools 4.21.1
+    (fetchpatch {
+      url = "https://github.com/adobe-type-tools/afdko/commit/0919e7454a0a05a1b141c23bf8134c67e6b688fc.patch";
+      sha256 = "0glly85swyl1kcc0mi8i0w4bm148bb001jz1winz5drfrw3a63jp";
+    })
   ];
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix b/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
index 29bbfa81ed23..890f44b4ad38 100644
--- a/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
@@ -1,20 +1,39 @@
-{ lib, fetchPypi, buildPythonPackage, agate, sqlalchemy, crate }:
+{ lib
+, buildPythonPackage
+, isPy27
+, fetchPypi
+, agate
+, sqlalchemy
+, crate
+, nose
+, geojson
+}:
 
 buildPythonPackage rec {
-    pname = "agate-sql";
-    version = "0.5.5";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "50a39754babef6cd0d1b1e75763324a49593394fe46ab1ea9546791b5e6b69a7";
-    };
-
-    propagatedBuildInputs = [ agate sqlalchemy crate ];
-
-    meta = with lib; {
-      description = "Adds SQL read/write support to agate.";
-      homepage    = "https://github.com/wireservice/agate-sql";
-      license     = with licenses; [ mit ];
-      maintainers = with maintainers; [ vrthra ];
-    };
+  pname = "agate-sql";
+  version = "0.5.6";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "056dc9e587fbdfdf3f1c9950f4793a5ee87622c19deba31aa0a6d6681816dcde";
+  };
+
+  propagatedBuildInputs = [ agate sqlalchemy ];
+
+  checkInputs = [ crate nose geojson ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  pythonImportsCheck = [ "agatesql" ];
+
+  meta = with lib; {
+    description = "Adds SQL read/write support to agate.";
+    homepage = "https://github.com/wireservice/agate-sql";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ vrthra ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ailment/default.nix b/nixpkgs/pkgs/development/python-modules/ailment/default.nix
index e23db23d151e..13386eb12a6b 100644
--- a/nixpkgs/pkgs/development/python-modules/ailment/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ailment/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.0.5739";
+  version = "9.0.5903";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1fjwksia6h7w7m5zhys65yr4zxvyfgp9hr1k5dn802p9kvz34bpc";
+    sha256 = "sha256-75Ul9JfMFYv3AfBlgmer6IDyfgOAS4AdXexznoxi35Y=";
   };
 
   propagatedBuildInputs = [ pyvex ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioambient/default.nix b/nixpkgs/pkgs/development/python-modules/aioambient/default.nix
new file mode 100644
index 000000000000..5e504ab87a02
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioambient/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, aiohttp
+, aresponses
+, asynctest
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytest-cov
+, pytestCheckHook
+, python-engineio
+, python-socketio
+, pythonOlder
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "aioambient";
+  version = "1.2.4";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-uqvM5F0rpw+xeCXYl4lGMt3r0ugPsUmSvujmTJ9HABk=";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    python-engineio
+    python-socketio
+    websockets
+  ];
+
+  checkInputs = [
+    aresponses
+    asynctest
+    pytest-asyncio
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  # Ignore the examples directory as the files are prefixed with test_
+  pytestFlagsArray = [ "--ignore examples/" ];
+  pythonImportsCheck = [ "aioambient" ];
+
+  meta = with lib; {
+    description = "Python library for the Ambient Weather API";
+    homepage = "https://github.com/bachya/aioambient";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aioasuswrt/default.nix b/nixpkgs/pkgs/development/python-modules/aioasuswrt/default.nix
new file mode 100644
index 000000000000..edd2796eca48
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioasuswrt/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, asyncssh
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytest-mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "aioasuswrt";
+  version = "1.3.3";
+
+  src = fetchFromGitHub {
+    owner = "kennedyshead";
+    repo = pname;
+    rev = "V${version}";
+    sha256 = "1h1qwc7szgrcwiz4q6x4mlf26is20lj1ds5rcb9i611j26656v6d";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "cryptography==3.3.2" "cryptography"
+    substituteInPlace setup.cfg \
+      --replace "--cov-report html" "" \
+      --replace "--cov-report term-missing" ""
+  '';
+
+  propagatedBuildInputs = [ asyncssh ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aioasuswrt" ];
+
+  meta = with lib; {
+    description = "Python module for Asuswrt";
+    homepage = "https://github.com/kennedyshead/aioasuswrt";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix b/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
index 2e7c9c2401c3..5d9c3fe16695 100644
--- a/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
@@ -1,10 +1,7 @@
 { lib
-
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, pytestrunner
-, typing-extensions
 , wrapt
 , aioitertools
 , aiohttp
diff --git a/nixpkgs/pkgs/development/python-modules/aiocache/default.nix b/nixpkgs/pkgs/development/python-modules/aiocache/default.nix
new file mode 100644
index 000000000000..54979dbd7ba4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiocache/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, aioredis
+, buildPythonPackage
+, fetchFromGitHub
+, msgpack
+}:
+
+buildPythonPackage rec {
+  pname = "aiocache";
+  version = "0.11.1";
+
+  src = fetchFromGitHub {
+    owner = "aio-libs";
+    repo = pname;
+    rev = version;
+    sha256 = "1czs8pvhzi92qy2dch2995rb62mxpbhd80dh2ir7zpa9qcm6wxvx";
+  };
+
+  propagatedBuildInputs = [
+    aioredis
+    msgpack
+  ];
+
+  # aiomcache would be required but last release was in 2017
+  doCheck = false;
+  pythonImportsCheck = [ "aiocache" ];
+
+  meta = with lib; {
+    description = "Python API Rate Limit Decorator";
+    homepage = "https://github.com/tomasbasham/ratelimit";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix b/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
new file mode 100644
index 000000000000..e724d53bfe75
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, async-dns
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, ifaddr
+, pyroute2
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiodiscover";
+  version = "1.3.3";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "bdraco";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "186agrjx818vn00d3pqlka5ir48rgpbfyn1cifkn9ylsxg9cz3ph";
+  };
+
+  propagatedBuildInputs = [
+    async-dns
+    pyroute2
+    ifaddr
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py --replace '"pytest-runner>=5.2",' ""
+  '';
+
+  # Tests require access to /etc/resolv.conf
+  # pythonImportsCheck doesn't work as async-dns wants to create its CONFIG_DIR
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python module to discover hosts via ARP and PTR lookup";
+    homepage = "https://github.com/bdraco/aiodiscover";
+    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 03f1ed91cfd8..425575442592 100644
--- a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "2.6.4";
+  version = "2.6.6";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d8def7a909c0471479e1d8b0965de6bb7644b8de315d6e578f9d848b8a6812d0";
+    sha256 = "sha256-LdBUtU5rNoixh7DPIFkHxLMvBeI6MZH57sO0IjuOQAw=";
   };
 
   propagatedBuildInputs = [ attrs protobuf zeroconf ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioflo/default.nix b/nixpkgs/pkgs/development/python-modules/aioflo/default.nix
index 60288178def5..8fe61282ab86 100644
--- a/nixpkgs/pkgs/development/python-modules/aioflo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioflo/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "aioflo";
-  version = "0.4.2";
+  version = "0.4.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "1ppsinmjph6snj7s4hg28p3qa67kpkadc98ikjjg6w65vcm3dlaz";
+    sha256 = "sha256-Dap3yjFIS+k/LLNg+vmYmiFQCOEPNp27p0GCMpn/edA=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix b/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix
index f6822ede08cd..47b820161886 100644
--- a/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix
@@ -4,7 +4,6 @@
 , asyncio-dgram
 , asynctest
 , buildPythonPackage
-, cryptography
 , fetchFromGitHub
 , poetry
 , pytest-aiohttp
@@ -16,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "aioguardian";
-  version = "1.0.4";
+  version = "1.0.7";
   disabled = pythonAtLeast "3.9";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "1cbxcsxh9c8r2zx3lsjdns26sm2qmlwnqgah2sfzbgp1lay23vvq";
+    sha256 = "sha256-KMhq86hcqoYloS/6VHsl+3KVEZBbN97ABrZlmEr32Z8=";
   };
 
   format = "pyproject";
diff --git a/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix b/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
index 514d1d308e12..c0722c8c9781 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
@@ -3,82 +3,77 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, async-timeout
 , attrs
 , chardet
-, multidict
-, async-timeout
-, yarl
 , idna-ssl
+, multidict
 , typing-extensions
-, pytestrunner
-, pytestCheckHook
-, gunicorn
+, yarl
 , async_generator
-, pytest_xdist
-, pytestcov
-, pytest-mock
-, trustme
 , brotlipy
 , freezegun
-, isPy38
+, gunicorn
+, pytest-mock
+, pytest-xdist
+, pytestCheckHook
 , re-assert
+, trustme
 }:
 
 buildPythonPackage rec {
   pname = "aiohttp";
-  version = "3.7.3";
-  # https://github.com/aio-libs/aiohttp/issues/4525 python3.8 failures
-  disabled = pythonOlder "3.5";
+  version = "3.7.4.post0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9c1a81af067e72261c9cbe33ea792893e83bc6aa987bfbd6fdc1e5e7b22777c4";
+    sha256 = "493d3299ebe5f5a7c66b9819eacdcfbbaaf1a8e84911ddffcdc48888497afecf";
   };
 
-  checkInputs = [
-    pytestrunner pytestCheckHook gunicorn async_generator pytest_xdist
-    pytest-mock pytestcov trustme brotlipy freezegun
-    re-assert
-  ];
+  postPatch = ''
+    substituteInPlace setup.cfg --replace " --cov=aiohttp" ""
+  '';
 
   propagatedBuildInputs = [
+    async-timeout
     attrs
     chardet
     multidict
-    async-timeout
     typing-extensions
     yarl
   ] ++ lib.optionals (pythonOlder "3.7") [
     idna-ssl
   ];
 
+  checkInputs = [
+    async_generator
+    brotlipy
+    freezegun
+    gunicorn
+    pytest-mock
+    pytest-xdist
+    pytestCheckHook
+    re-assert
+    trustme
+  ];
+
+  pytestFlagsArray = [
+    "-n auto"
+  ];
+
   disabledTests = [
-    # disable tests which attempt to do loopback connections
-    "get_valid_log_format_exc"
-    "test_access_logger_atoms"
-    "aiohttp_request_coroutine"
-    "server_close_keepalive_connection"
-    "connector"
-    "client_disconnect"
-    "handle_keepalive_on_closed_connection"
-    "proxy_https_bad_response"
-    "partially_applied_handler"
-    "middleware"
+    # Disable tests that require network access
     "test_mark_formdata_as_processed"
-    # no longer compatible with pytest>=6
-    "aiohttp_plugin_async_fixture"
   ] ++ lib.optionals stdenv.is32bit [
     "test_cookiejar"
-  ] ++ lib.optionals isPy38 [
-    # Python 3.8  https://github.com/aio-libs/aiohttp/issues/4525
-    "test_read_boundary_with_incomplete_chunk"
-    "test_read_incomplete_chunk"
-    "test_request_tracing_exception"
   ] ++ lib.optionals stdenv.isDarwin [
-    "test_addresses"  # https://github.com/aio-libs/aiohttp/issues/3572
+    "test_addresses"  # https://github.com/aio-libs/aiohttp/issues/3572, remove >= v4.0.0
     "test_close"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   # aiohttp in current folder shadows installed version
   # Probably because we run `python -m pytest` instead of `pytest` in the hook.
   preCheck = ''
diff --git a/nixpkgs/pkgs/development/python-modules/aiolyric/default.nix b/nixpkgs/pkgs/development/python-modules/aiolyric/default.nix
new file mode 100644
index 000000000000..0dc576fca49a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiolyric/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "aiolyric";
+  version = "1.0.6";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "timmo001";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1lnzsdw6kvgk0762f3vyw4xfzn7qkvsff16q61gm0ryjqg9j8whx";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    # AssertionError, https://github.com/timmo001/aiolyric/issues/5
+    "test_location"
+  ];
+  pythonImportsCheck = [ "aiolyric" ];
+
+  meta = with lib; {
+    description = "Python module for the Honeywell Lyric Platform";
+    homepage = "https://github.com/timmo001/aiolyric";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiomultiprocess/default.nix b/nixpkgs/pkgs/development/python-modules/aiomultiprocess/default.nix
index 9b648d595379..7b84996a1c91 100644
--- a/nixpkgs/pkgs/development/python-modules/aiomultiprocess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiomultiprocess/default.nix
@@ -1,20 +1,26 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, flit-core
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "aiomultiprocess";
-  version = "0.8.0";
+  version = "0.9.0";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "omnilib";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vkj1vgvlv828pi3sn0hjzdy9f0j63gljs2ylibbsaixa7mbkpvy";
+    sha256 = "sha256-yOP69FXDb2Grmtszx7oa6uiJGUar8su3KwqQPI+xjrw=";
   };
 
+  nativeBuildInputs = [ flit-core ];
+
   checkInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [ "aiomultiprocess/tests/*.py" ];
diff --git a/nixpkgs/pkgs/development/python-modules/aionotion/default.nix b/nixpkgs/pkgs/development/python-modules/aionotion/default.nix
new file mode 100644
index 000000000000..078184275eb5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aionotion/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-aiohttp
+, pytest-asyncio
+, pytest-cov
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aionotion";
+  version = "3.0.1";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = pname;
+    rev = version;
+    sha256 = "1ydrazg7gcwf53006n1fvxh9zm77by6zi36haq1bmy5skqccyiki";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-aiohttp
+    pytest-asyncio
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [ "examples" ];
+
+  pythonImportsCheck = [ "aionotion" ];
+
+  meta = with lib; {
+    description = "Python library for Notion Home Monitoring";
+    homepage = "https://github.com/bachya/aionotion";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiopylgtv/default.nix b/nixpkgs/pkgs/development/python-modules/aiopylgtv/default.nix
new file mode 100644
index 000000000000..200bc41b7a5d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiopylgtv/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pythonOlder
+, sqlitedict
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "aiopylgtv";
+  version = "0.4.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "bendavid";
+    repo = pname;
+    rev = version;
+    sha256 = "0x0xcnlz42arsp53zlq5wyv9pwif1in8j2pv48gh0pkdnz9s86b6";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    sqlitedict
+    websockets
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "aiopylgtv" ];
+
+  meta = with lib; {
+    description = "Python library to control webOS based LG TV units";
+    homepage = "https://github.com/bendavid/aiopylgtv";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiorecollect/default.nix b/nixpkgs/pkgs/development/python-modules/aiorecollect/default.nix
index c802633e5723..53daf1f22696 100644
--- a/nixpkgs/pkgs/development/python-modules/aiorecollect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiorecollect/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "aiorecollect";
-  version = "1.0.2";
+  version = "1.0.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "0dlz8zmqcn6g6000lfgcy5krpfafzdzrznmk6iwra65wcs7l9392";
+    sha256 = "sha256-S4HL8vJS/dTKsR5egKRSHqZYPClcET5Le06euHPyIkU=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioresponses/default.nix b/nixpkgs/pkgs/development/python-modules/aioresponses/default.nix
index 6a0d69371a8e..2a3a2e60be79 100644
--- a/nixpkgs/pkgs/development/python-modules/aioresponses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioresponses/default.nix
@@ -1,22 +1,22 @@
 { lib
+, aiohttp
+, asynctest
 , buildPythonPackage
+, ddt
 , fetchPypi
-, pythonOlder
 , pbr
-, aiohttp
-, ddt
-, asynctest
-, pytest
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "aioresponses";
-  version = "0.7.1";
+  version = "0.7.2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f65bba2be1e9a4997ee166bc0161a50be0fef7350ad09e6afdb2adccf74dfefe";
+    sha256 = "sha256-guSV0Ri3SJaqW01H4X7/teLMeD5RCuOVzq3l6Hyr6Jo=";
   };
 
   nativeBuildInputs = [
@@ -30,13 +30,16 @@ buildPythonPackage rec {
   checkInputs = [
     asynctest
     ddt
-    pytest
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Skip a test which makes requests to httpbin.org
+    "test_address_as_instance_of_url_combined_with_pass_through"
+    "test_pass_through_with_origin_params"
   ];
 
-  # Skip a test which makes requests to httpbin.org
-  checkPhase = ''
-    pytest -k "not (test_address_as_instance_of_url_combined_with_pass_through or test_pass_through_with_origin_params)"
-  '';
+  pythonImportsCheck = [ "aioresponses" ];
 
   meta = {
     description = "A helper to mock/fake web requests in python aiohttp package";
diff --git a/nixpkgs/pkgs/development/python-modules/aiorpcx/default.nix b/nixpkgs/pkgs/development/python-modules/aiorpcx/default.nix
index 5b270319661a..8e2078f52128 100644
--- a/nixpkgs/pkgs/development/python-modules/aiorpcx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiorpcx/default.nix
@@ -1,13 +1,18 @@
-{ lib, fetchPypi, buildPythonPackage, pythonOlder, attrs }:
+{ lib
+, fetchPypi
+, buildPythonPackage
+, pythonOlder
+, attrs
+}:
 
 buildPythonPackage rec {
   pname = "aiorpcx";
-  version = "0.18.4";
+  version = "0.18.7";
 
   src = fetchPypi {
     inherit version;
     pname = "aiorpcX";
-    sha256 = "0jpvrkan6w8bpq017m8si7r9hb1pyw3ip4vr1fl2pmi8ngzc1jdy";
+    sha256 = "808a9ec9172df11677a0f7b459b69d1a6cf8b19c19da55541fa31fb1afce5ce7";
   };
 
   propagatedBuildInputs = [ attrs ];
@@ -17,9 +22,12 @@ buildPythonPackage rec {
   # Checks needs internet access
   doCheck = false;
 
-  meta = {
+  pythonImportsCheck = [ "aiorpcx" ];
+
+  meta = with lib; {
     description = "Transport, protocol and framing-independent async RPC client and server implementation";
-    license = lib.licenses.mit;
     homepage = "https://github.com/kyuupichan/aiorpcX";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/aiorun/default.nix b/nixpkgs/pkgs/development/python-modules/aiorun/default.nix
index a0a3d74e5780..414f8a6d9a64 100644
--- a/nixpkgs/pkgs/development/python-modules/aiorun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiorun/default.nix
@@ -1,25 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, isPy27
+, pythonOlder
 , pygments
-, pytest
-, pytestcov
+, pytestCheckHook
+, pytest-cov
 , uvloop
 }:
 
 buildPythonPackage rec {
   pname = "aiorun";
-  version = "2020.6.1";
+  version = "2020.12.1";
   format = "flit";
-
-  disabled = isPy27;
+  disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "cjrh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00mq5ylhhdfdqrh7zdqabf3wy85jrkqvgfb1421ll46fsjim2d14";
+    sha256 = "sha256-ktc2cmoPNYcsVyKCWs+ivhV5onywFIrdDRBiBKrdiF4=";
   };
 
   propagatedBuildInputs = [
@@ -27,8 +26,8 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
-    pytestcov
+    pytestCheckHook
+    pytest-cov
     uvloop
   ];
 
@@ -37,14 +36,12 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  checkPhase = ''
-     pytest
-  '';
+  pythonImportsCheck = [ "aiorun" ];
 
   meta = with lib; {
     description = "Boilerplate for asyncio applications";
     homepage = "https://github.com/cjrh/aiorun";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix b/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
index f53877e03a3c..aa5e227ca65b 100644
--- a/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "aioshelly";
-  version = "0.5.4";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EjzWx3wcmTfB3OmN0OB37K6wYKVO3HzGEIf+uihas8k=";
+    sha256 = "sha256-vlIon+VAHeJiaSIVMEKEpwQC4gXA52vxfEkiQMC9yiw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiosmb/default.nix b/nixpkgs/pkgs/development/python-modules/aiosmb/default.nix
new file mode 100644
index 000000000000..49c67a0aa040
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiosmb/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, asysocks
+, buildPythonPackage
+, fetchPypi
+, minikerberos
+, prompt_toolkit
+, pythonOlder
+, six
+, tqdm
+, winacl
+, winsspi
+}:
+
+buildPythonPackage rec {
+  pname = "aiosmb";
+  version = "0.2.37";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0daf1fk7406vpywc0yxv0wzf4nw986js9lc2agfyfxz0q7s29lf0";
+  };
+
+  propagatedBuildInputs = [
+    minikerberos
+    winsspi
+    six
+    asysocks
+    tqdm
+    prompt_toolkit
+    winacl
+  ];
+
+  # Project doesn't have tests
+  doCheck = false;
+  pythonImportsCheck = [ "aiosmb" ];
+
+  meta = with lib; {
+    description = "Python SMB library";
+    homepage = "https://github.com/skelsec/aiosmb";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiosmtpd/default.nix b/nixpkgs/pkgs/development/python-modules/aiosmtpd/default.nix
index 7bdddb42d4e3..c204261644c5 100644
--- a/nixpkgs/pkgs/development/python-modules/aiosmtpd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiosmtpd/default.nix
@@ -1,9 +1,9 @@
 { lib, isPy3k, fetchFromGitHub, buildPythonPackage
-, atpublic }:
+, attrs, atpublic }:
 
 buildPythonPackage rec {
   pname = "aiosmtpd";
-  version = "1.2.1";
+  version = "1.4.2";
   disabled = !isPy3k;
 
   # Release not published to Pypi
@@ -11,11 +11,11 @@ buildPythonPackage rec {
     owner = "aio-libs";
     repo = pname;
     rev = version;
-    sha256 = "14c30dm6jzxiblnsah53fdv68vqhxwvb9x0aq9bc4vcdas747vr7";
+    sha256 = "0hbpyns1j1fpvpj7gyb8cz359j7l4hzfqbig74xp4xih59sih0wj";
   };
 
   propagatedBuildInputs = [
-    atpublic
+    atpublic attrs
   ];
 
   # Tests need network access
diff --git a/nixpkgs/pkgs/development/python-modules/aiosqlite/default.nix b/nixpkgs/pkgs/development/python-modules/aiosqlite/default.nix
index 44cae12cba52..022e34e23c1b 100644
--- a/nixpkgs/pkgs/development/python-modules/aiosqlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiosqlite/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "aiosqlite";
-  version = "0.16.0";
+  version = "0.17.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a0fjmlvadyzsml10g5p1qif7192k0swy5zwjp8v48y5zc3yy56h";
+    sha256 = "sha256-8OaswkvEhkFJJnrIL7Rt+zvkRV+Z/iHfgmCcxua67lE=";
   };
 
   checkInputs = [
@@ -26,6 +26,8 @@ buildPythonPackage rec {
   # tests are not pick-up automatically by the hook
   pytestFlagsArray = [ "aiosqlite/tests/*.py" ];
 
+  pythonImportsCheck = [ "aiosqlite" ];
+
   meta = with lib; {
     description = "Asyncio bridge to the standard sqlite3 module";
     homepage = "https://github.com/jreese/aiosqlite";
diff --git a/nixpkgs/pkgs/development/python-modules/aiostream/default.nix b/nixpkgs/pkgs/development/python-modules/aiostream/default.nix
index a48e2ae02401..b51a71056992 100644
--- a/nixpkgs/pkgs/development/python-modules/aiostream/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiostream/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "aiostream";
-  version = "0.4.1";
+  version = "0.4.2";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "vxgmichel";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wwnjrzkd61k3arxzk7yhg7cc1099bcwr5kz5n91ai6ma5ln139s";
+    sha256 = "0ss41hzvlnyll5xc5ddxqyqqw4gnd67yyhci25xnb1vpcz0jqsq8";
   };
 
   checkInputs = [ pytestCheckHook pytestcov pytest-asyncio ];
diff --git a/nixpkgs/pkgs/development/python-modules/airly/default.nix b/nixpkgs/pkgs/development/python-modules/airly/default.nix
index e75653fb684a..40cb085a17e8 100644
--- a/nixpkgs/pkgs/development/python-modules/airly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/airly/default.nix
@@ -1,29 +1,40 @@
 { lib
+, aiohttp
+, aioresponses
+, aiounittest
 , buildPythonPackage
 , fetchFromGitHub
-, aiohttp
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "airly";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "ak-ambi";
     repo = "python-airly";
     rev = "v${version}";
-    sha256 = "0an6nbl0i5pahxm6x4z03s9apzgqrw9zf7srjcs0r3y1ppicb4s6";
+    sha256 = "sha256-weliT/FYnRX+pzVAyRWFly7lfj2z7P+hpq5SIhyIgmI=";
   };
 
   propagatedBuildInputs = [ aiohttp ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    aioresponses
+    aiounittest
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    cd tests
+  '';
 
   disabledTests = [
     "InstallationsLoaderTestCase"
     "MeasurementsSessionTestCase"
   ];
+
   pythonImportsCheck = [ "airly" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix b/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix
new file mode 100644
index 000000000000..e5a81d9cfa6e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix
@@ -0,0 +1,24 @@
+{ lib, pythonOlder, buildPythonPackage, fetchPypi, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "ajsonrpc";
+  version = "1.1.0";
+
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1b5r8975wdnk3qnc1qjnn4lkxmqcir3brbwnxml9ii90dnsw408a";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "ajsonrpc" ];
+
+  meta = with lib; {
+    description = "Async JSON-RPC 2.0 protocol + asyncio server";
+    homepage = "https://github.com/pavlov99/ajsonrpc";
+    license = licenses.mit;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix b/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix
index 10438d540816..ee07588b325d 100644
--- a/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "alarmdecoder";
-  version = "1.13.9";
+  version = "1.13.10";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "nutechsoftware";
     repo = "alarmdecoder";
     rev = version;
-    sha256 = "0plr2h1qn4ryawbaxf29cfna4wailghhaqy1jcm9kxq6q7b9xqqy";
+    sha256 = "05581j78181p6mwbfpbkp5irnrzsvps1lslgqrh7xbdcmz5b2nxd";
   };
 
   propagatedBuildInputs = [ pyserial pyftdi pyusb pyopenssl ];
diff --git a/nixpkgs/pkgs/development/python-modules/alerta/default.nix b/nixpkgs/pkgs/development/python-modules/alerta/default.nix
deleted file mode 100644
index e69503777d4e..000000000000
--- a/nixpkgs/pkgs/development/python-modules/alerta/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi
-, six, click, requests, requests-hawk, pytz, tabulate, pythonOlder
-}:
-
-buildPythonPackage rec {
-  pname = "alerta";
-  version = "8.3.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "83c7d751bad0cb9bd7886700da4cd83c5451b2e8eb8d4cc697966e02d6a565f8";
-  };
-
-  propagatedBuildInputs = [ six click requests requests-hawk pytz tabulate ];
-
-  doCheck = false;
-
-  postInstall = ''
-    wrapProgram $out/bin/alerta --prefix PYTHONPATH : "$PYTHONPATH"
-  '';
-
-  disabled = pythonOlder "3.5";
-
-  meta = with lib; {
-    homepage = "https://alerta.io";
-    description = "Alerta Monitoring System command-line interface";
-    license = licenses.asl20;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/alot/default.nix b/nixpkgs/pkgs/development/python-modules/alot/default.nix
index 1f4617ce9c0d..1117557a8a0a 100644
--- a/nixpkgs/pkgs/development/python-modules/alot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alot/default.nix
@@ -1,9 +1,7 @@
-{ lib, buildPythonPackage, python, fetchFromGitHub, fetchpatch, isPy3k
+{ lib, buildPythonPackage, python, fetchFromGitHub, isPy3k
 , notmuch, urwid, urwidtrees, twisted, python_magic, configobj, mock, file, gpgme
-, service-identity
-, gnupg ? null, sphinx, awk ? null, procps ? null, future ? null
-, withManpage ? false }:
-
+, service-identity, gnupg, sphinx, gawk, procps, future , withManpage ? false
+}:
 
 buildPythonPackage rec {
   pname = "alot";
@@ -41,7 +39,7 @@ buildPythonPackage rec {
   doCheck = false;
   postBuild = lib.optionalString withManpage "make -C docs man";
 
-  checkInputs =  [ awk future mock gnupg procps ];
+  checkInputs =  [ gawk future mock gnupg procps ];
 
   postInstall = let
     completionPython = python.withPackages (ps: [ ps.configobj ]);
diff --git a/nixpkgs/pkgs/development/python-modules/altair/default.nix b/nixpkgs/pkgs/development/python-modules/altair/default.nix
index 37c1efd9c1b6..99ee559da6b9 100644
--- a/nixpkgs/pkgs/development/python-modules/altair/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/altair/default.nix
@@ -33,18 +33,20 @@ buildPythonPackage rec {
     pandas
     six
     toolz
+    jinja2
   ] ++ lib.optionals (pythonOlder "3.5") [ typing ];
 
   checkInputs = [
     glibcLocales
     ipython
-    jinja2
     pytest
     recommonmark
     sphinx
     vega_datasets
   ];
 
+  pythonImportsCheck = [ "altair" ];
+
   checkPhase = ''
     export LANG=en_US.UTF-8
     # histogram_responsive.py attempt network access, and cannot be disabled through pytest flags
diff --git a/nixpkgs/pkgs/development/python-modules/android-backup/default.nix b/nixpkgs/pkgs/development/python-modules/android-backup/default.nix
new file mode 100644
index 000000000000..319c9514183e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/android-backup/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pycrypto
+, pythonOlder
+, enum34
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "android-backup";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "bluec0re";
+    repo = "android-backup-tools";
+    rev = "v${version}";
+    sha256 = "0c436hv64ddqrjs77pa7z6spiv49pjflbmgg31p38haj5mzlrqvw";
+  };
+
+  propagatedBuildInputs = [
+    pycrypto
+  ] ++ lib.optional (pythonOlder "3.4") enum34;
+
+  checkPhase = ''
+    ${python.interpreter} -m android_backup.tests
+  '';
+
+  pythonImportsCheck = [ "android_backup" ];
+
+  meta = with lib; {
+    description = "Unpack and repack android backups";
+    homepage = https://github.com/bluec0re/android-backup-tools;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/androidtv/default.nix b/nixpkgs/pkgs/development/python-modules/androidtv/default.nix
index ec00c31147b0..98ab09fd8e6b 100644
--- a/nixpkgs/pkgs/development/python-modules/androidtv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/androidtv/default.nix
@@ -7,19 +7,18 @@
 , mock
 , pure-python-adb
 , pytestCheckHook
-, python
 }:
 
 buildPythonPackage rec {
   pname = "androidtv";
-  version = "0.0.57";
+  version = "0.0.58";
 
   # pypi does not contain tests, using github sources instead
   src = fetchFromGitHub {
     owner = "JeffLIrion";
     repo = "python-androidtv";
     rev = "v${version}";
-    sha256 = "sha256-xOLMUf72VHeBzbMnhJGOnUIKkflnY4rV9NS/P1aYLJc=";
+    sha256 = "sha256-/5sYiYRFa8XJJ4QSxLzJBHaKfAKsGETiVDHerNQ79U8=";
   };
 
   propagatedBuildInputs = [ adb-shell pure-python-adb ]
diff --git a/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix b/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix
index 538cb11db13f..90d34951e441 100644
--- a/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "aniso8601";
-  version = "8.1.0";
+  version = "8.1.1";
 
   meta = with lib; {
     description = "Parses ISO 8601 strings.";
@@ -17,6 +17,6 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "246bf8d3611527030889e6df970878969d3a2f760ba3eb694fa1fb10e6ce53f9";
+    sha256 = "be08b19c19ca527af722f2d4ba4dc569db292ec96f7de963746df4bb0bff9250";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ansible-lint/default.nix b/nixpkgs/pkgs/development/python-modules/ansible-lint/default.nix
index 2718ba7670b5..e404edddbcf3 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible-lint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible-lint/default.nix
@@ -4,52 +4,71 @@
 , isPy27
 , ansible
 , pyyaml
-, setuptools_scm
-, ruamel_yaml
+, ruamel-yaml
 , rich
 , pytestCheckHook
-, pytestcov
-, pytest_xdist
+, pytest-xdist
 , git
+, wcmatch
+, enrich
+, python
 }:
 
 buildPythonPackage rec {
   pname = "ansible-lint";
-  version = "4.3.7";
-  # pip is not able to import version info on raumel.yaml
+  version = "5.0.2";
   disabled = isPy27;
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kwwv9dv9rgsqvp15r2vma7hii9lkkqn0n2irvp5h32cbhzzq4hh";
+    sha256 = "sha256-vgt/KqNozTPaON/I19SybBZuo7bbl3Duq5dTBTMlj44=";
   };
 
-  format = "pyproject";
-
-  nativeBuildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ pyyaml ansible ruamel_yaml rich ];
-  checkInputs = [ pytestCheckHook pytestcov pytest_xdist git ];
-
   postPatch = ''
-    patchShebangs bin/ansible-lint
-    substituteInPlace setup.cfg \
-      --replace "setuptools_scm_git_archive>=1.0" ""
+    substituteInPlace src/ansiblelint/file_utils.py \
+      --replace 'raise RuntimeError("Unable to determine file type for %s" % pathex)' 'return "playbook"'
   '';
 
-  # give a hint to setuptools_scm on package version
-  preBuild = ''
-    export SETUPTOOLS_SCM_PRETEND_VERSION="v${version}"
+  buildInputs = [ python ];
+
+  propagatedBuildInputs = [ ansible enrich pyyaml rich ruamel-yaml wcmatch ];
+
+  checkInputs = [ pytestCheckHook pytest-xdist git ];
+
+  preCheck = ''
+    # ansible wants to write to $HOME and crashes if it can't
     export HOME=$(mktemp -d)
-  '';
+    export PATH=$PATH:${lib.makeBinPath [ ansible ]}
 
-  checkPhase = ''
-    pytest -k 'not test_run_playbook_github and not test_run_single_role_path_no_trailing_slash_script'
+    # create a working ansible-lint executable
+    export PATH=$PATH:$PWD/src/ansiblelint
+    ln -rs src/ansiblelint/__main__.py src/ansiblelint/ansible-lint
+    patchShebangs src/ansiblelint/__main__.py
   '';
 
+  disabledTests = [
+    # requires network
+    "test_prerun_reqs_v1"
+    "test_prerun_reqs_v2"
+    # Assertion error with negative numbers; maybe requieres an ansible update?
+    "test_negative"
+    "test_example"
+    "test_playbook"
+    "test_included_tasks"
+    "test_long_line"
+
+    "test_get_yaml_files_umlaut"
+    "test_run_inside_role_dir"
+    "test_role_handler_positive"
+  ];
+
+  makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ansible ]}" ];
+
   meta = with lib; {
-    homepage = "https://github.com/ansible/ansible-lint";
+    homepage = "https://github.com/ansible-community/ansible-lint";
     description = "Best practices checker for Ansible";
     license = licenses.mit;
-    maintainers = [ maintainers.sengaya ];
+    maintainers = with maintainers; [ sengaya SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix b/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix
index 7f29bb5695c6..ba11ef11e3b8 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "ansible-runner";
-  version = "1.4.6";
+  version = "1.4.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "53605de32f7d3d3442a6deb8937bf1d9c1f91c785e3f71003d22c3e63f85c71d";
+    sha256 = "1bb56f9061c3238d89ec8871bc842f5b8d0e868f892347e8455c98d5b6fa58a1";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/anyio/default.nix b/nixpkgs/pkgs/development/python-modules/anyio/default.nix
index 1c3c72a8e2c7..e6cc3182487a 100644
--- a/nixpkgs/pkgs/development/python-modules/anyio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anyio/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "anyio";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "agronholm";
     repo = pname;
     rev = version;
-    sha256 = "0k5c4a7xcbiyah8rgrfh2hwj3l3a9al7rh2lyz9ip4rr1hwnqvaf";
+    sha256 = "0ram1niv2lg9qj53zssph104a4kxl8f94ilfn6mibn034m3ikcc8";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/apache-airflow/default.nix b/nixpkgs/pkgs/development/python-modules/apache-airflow/default.nix
index 705b7b721f8f..82d7a8cc32af 100644
--- a/nixpkgs/pkgs/development/python-modules/apache-airflow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apache-airflow/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , buildPythonPackage
-, fetchPypi
 , fetchFromGitHub
 , fetchpatch
 , alembic
@@ -47,10 +46,7 @@
 , tzlocal
 , unicodecsv
 , zope_deprecation
-, enum34
-, typing
 , nose
-, python
 , pythonOlder
 , pythonAtLeast
 }:
diff --git a/nixpkgs/pkgs/development/python-modules/apispec/default.nix b/nixpkgs/pkgs/development/python-modules/apispec/default.nix
index ac6eb0957778..13fb71d7f2f2 100644
--- a/nixpkgs/pkgs/development/python-modules/apispec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apispec/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "apispec";
-  version = "4.2.0";
+  version = "4.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fbbd069caa22c0270bc71a5330b46b5a4e1984d8345b9236ca02fbca23094647";
+    sha256 = "5ec0fe72f1422a1198973fcbb48d0eb5c7390f4b0fbe55474fce999ad6826a9b";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/appnope/default.nix b/nixpkgs/pkgs/development/python-modules/appnope/default.nix
index 2380fb7d8adf..e4f1262a6c60 100644
--- a/nixpkgs/pkgs/development/python-modules/appnope/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/appnope/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "appnope";
-  version = "0.1.0";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71";
+    sha256 = "dd83cd4b5b460958838f6eb3000c660b1f9caf2a5b1de4264e941512f603258a";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/apprise/default.nix b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
index c3f318503884..fad9e7d03fa8 100644
--- a/nixpkgs/pkgs/development/python-modules/apprise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
@@ -1,21 +1,21 @@
 { lib, buildPythonPackage, fetchPypi, installShellFiles
-, Babel, requests, requests_oauthlib, six, click, markdown, pyyaml
+, Babel, requests, requests_oauthlib, six, click, markdown, pyyaml, cryptography
 , pytestrunner, coverage, flake8, mock, pytestCheckHook, pytestcov, tox, gntp, sleekxmpp
 }:
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bab3563bc1e0c64938c4c7700112797bd99f20eb5d4a3e6038338bc8f060e153";
+    sha256 = "sha256-FW5gt35yoXVr2+hiGBDJ/5jFFfIpn2Z9sDN8acoO4FI=";
   };
 
   nativeBuildInputs = [ Babel installShellFiles ];
 
   propagatedBuildInputs = [
-    requests requests_oauthlib six click markdown pyyaml
+    cryptography requests requests_oauthlib six click markdown pyyaml
   ];
 
   checkInputs = [
@@ -28,6 +28,8 @@ buildPythonPackage rec {
     installManPage packaging/man/apprise.1
   '';
 
+  pythonImportsCheck = [ "apprise" ];
+
   meta = with lib; {
     homepage = "https://github.com/caronc/apprise";
     description = "Push Notifications that work with just about every platform!";
diff --git a/nixpkgs/pkgs/development/python-modules/apptools/default.nix b/nixpkgs/pkgs/development/python-modules/apptools/default.nix
index a03b051b11d2..4ee3add12b13 100644
--- a/nixpkgs/pkgs/development/python-modules/apptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apptools/default.nix
@@ -1,34 +1,44 @@
-{ lib, fetchPypi, buildPythonPackage, fetchpatch
-, configobj, six, traitsui
-, nose, tables, pandas
+{ lib, fetchPypi, buildPythonPackage
+, fetchpatch, configobj, six, traitsui
+, pytestCheckHook, tables, pandas
+, pythonOlder, importlib-resources
 }:
 
 buildPythonPackage rec {
   pname = "apptools";
-  version = "4.5.0";
+  version = "5.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10h52ibhr2aw076pivqxiajr9rpcr1mancg6xlpxzckcm3if02i6";
+    sha256 = "12x5lcs1cllpybz7f0i1lcwvmqsaa5n818wb2165lj049wqxx4yh";
   };
 
-  # PyTables issue; should be merged in next post-4.5.0 release (#117)
-  patches = [ (fetchpatch {
-      url = "https://github.com/enthought/apptools/commit/3734289d1a0ebd8513fa67f75288add31ed0113c.patch";
-      sha256 = "001012q1ib5cbib3nq1alh9ckzj588bfrywr8brkd1f6y1pgvngk";
+  patches = [
+    # python39: importlib_resources -> importlib.resources. This patch will be included
+    # in the next release after 5.1.0.
+    (fetchpatch {
+      url = "https://github.com/enthought/apptools/commit/0ae4f52f19a8c0ca9d7926e17c7de949097f24b4.patch";
+      sha256 = "165aiwjisr5c3lasg7xblcha7y1y5bq23vi3g9gc80c24bzwcbsw";
     })
   ];
 
-  propagatedBuildInputs = [ configobj six traitsui ];
+  propagatedBuildInputs = [
+    configobj
+    six
+    traitsui
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    importlib-resources
+  ];
 
   checkInputs = [
-    nose
     tables
     pandas
+    pytestCheckHook
   ];
 
-  doCheck = true;
-  checkPhase = "HOME=$TMP nosetests";
+  preCheck = ''
+    export HOME=$TMP
+  '';
 
   meta = with lib; {
     description = "Set of packages that Enthought has found useful in creating a number of applications.";
diff --git a/nixpkgs/pkgs/development/python-modules/aqualogic/default.nix b/nixpkgs/pkgs/development/python-modules/aqualogic/default.nix
new file mode 100644
index 000000000000..9a23ebd82a9f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aqualogic/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, pyserial
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "aqualogic";
+  version = "2.6";
+
+  src = fetchFromGitHub {
+    owner = "swilson";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-dAC/0OjvrC8J/5pu5vcOKV/WqgkAlz0LuFl0up6FQRM=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "allow-iobase-objects.patch";
+      url = "https://github.com/swilson/aqualogic/commit/185fe25a86c82c497a55c78914b55ed39f5ca339.patch";
+      sha256 = "072jrrsqv86bn3skibjc57111jlpm8pq2503997fl3h4v6ziwdxg";
+    })
+  ];
+
+  propagatedBuildInputs = [ pyserial ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "aqualogic" ];
+
+  meta = with lib; {
+    description = "Python library to interface with Hayward/Goldline AquaLogic/ProLogic pool controllers";
+    homepage = "https://github.com/swilson/aqualogic";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/archinfo/default.nix b/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
index 79f21a2762c5..b06e0320dc92 100644
--- a/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.0.5739";
+  version = "9.0.5903";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6qjX0r2vLYgJdrKBVKedplfa1yhWv9tBvTu5BsViXBc=";
+    sha256 = "sha256-4e+ZGIt/ouZj5rsmaVxUrz8gAq4Yq2+Qx4jdOojB4Sw=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/argon2_cffi/default.nix b/nixpkgs/pkgs/development/python-modules/argon2_cffi/default.nix
index 85c6c4b638a5..eec01adfebca 100644
--- a/nixpkgs/pkgs/development/python-modules/argon2_cffi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/argon2_cffi/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "argon2_cffi";
-  version = "19.2.0";
+  version = "20.1.0";
 
   src = fetchPypi {
     pname = "argon2-cffi";
     inherit version;
-    sha256 = "ffaa623eea77b497ffbdd1a51e941b33d3bf552c60f14dbee274c4070677bda3";
+    sha256 = "0zgr4mnnm0p4i99023safb0qb8cgvl202nly1rvylk2b7qnrn0nq";
   };
 
   propagatedBuildInputs = [ cffi six ] ++ lib.optional (!isPy3k) enum34;
diff --git a/nixpkgs/pkgs/development/python-modules/arrayqueues/default.nix b/nixpkgs/pkgs/development/python-modules/arrayqueues/default.nix
index 82c8fc93267f..79a44ad42cdd 100644
--- a/nixpkgs/pkgs/development/python-modules/arrayqueues/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/arrayqueues/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "arrayqueues";
-  version = "1.2.0b0";
+  version = "1.3.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1gvrxb2rw0dk469wq5azylar7hhanfp07gl5mc6ajdbgz9gsd6ln";
+    sha256 = "a955df768e39d459de28c7ea10ee02f67b1c70996cfa229846ab98df77a6fb69";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/asdf/default.nix b/nixpkgs/pkgs/development/python-modules/asdf/default.nix
index 4006a034d48d..33513b2289c5 100644
--- a/nixpkgs/pkgs/development/python-modules/asdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asdf/default.nix
@@ -1,48 +1,51 @@
 { lib
+, astropy
 , buildPythonPackage
 , fetchPypi
-, pytest-astropy
-, semantic-version
-, pyyaml
 , jsonschema
-, six
 , numpy
-, isPy27
-, astropy
-, setuptools_scm
-, setuptools
+, packaging
+, pytest-astropy
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, semantic-version
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "asdf";
-  version = "2.7.1";
-  disabled = isPy27;
+  version = "2.7.3";
+  disabled = pythonOlder "3.6";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4ba2e31cb24b974a10dfae3edee23db2e6bea2d00608604d062366aa3af6e81a";
+    sha256 = "11dyr295wn5m2pcynlwj7kgw9xr66msfvwn1m6a5vv13vzj19spp";
   };
 
-  checkInputs = [
-    pytest-astropy
-    astropy
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
-    semantic-version
-    pyyaml
     jsonschema
-    six
     numpy
-    setuptools_scm
-    setuptools
+    packaging
+    pyyaml
+    semantic-version
   ];
 
-  checkPhase = ''
-    PY_IGNORE_IMPORTMISMATCH=1 pytest
+  checkInputs = [
+    pytest-astropy
+    astropy
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export PY_IGNORE_IMPORTMISMATCH=1
   '';
 
+  pythonImportsCheck = [ "asdf" ];
+
   meta = with lib; {
     description = "Python tools to handle ASDF files";
     homepage = "https://github.com/spacetelescope/asdf";
diff --git a/nixpkgs/pkgs/development/python-modules/ase/default.nix b/nixpkgs/pkgs/development/python-modules/ase/default.nix
index fcbeb1f1f4d9..868402577256 100644
--- a/nixpkgs/pkgs/development/python-modules/ase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ase/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "ase";
-  version = "3.20.1";
+  version = "3.21.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "72c81f21b6adb907595fce8d883c0231301cbd8e9f6e5ce8e98bab927054daca";
+    sha256 = "78b01d88529d5f604e76bc64be102d48f058ca50faad72ac740d717545711c7b";
   };
 
   propagatedBuildInputs = [ numpy scipy matplotlib flask pillow psycopg2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/asteval/default.nix b/nixpkgs/pkgs/development/python-modules/asteval/default.nix
index 0d4d41a54730..a55aef99ecbb 100644
--- a/nixpkgs/pkgs/development/python-modules/asteval/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asteval/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "asteval";
-  version = "0.9.22";
+  version = "0.9.23";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "newville";
     repo = pname;
     rev = version;
-    sha256 = "sha256-93IBv6beYE/VTKJCWUbA1QTRdmQdn2kg35KBw6kmDis=";
+    sha256 = "sha256-9Zxb2EzB6nxDQHdlryFiwyNW+76VvysLUB78bXKzfv0=";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/astroid/default.nix b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
index 49f04bcb9116..468488ec0cad 100644
--- a/nixpkgs/pkgs/development/python-modules/astroid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
@@ -1,34 +1,39 @@
-{ lib, fetchPypi, buildPythonPackage, pythonOlder, isPyPy, pythonAtLeast
-, lazy-object-proxy, six, wrapt, typing, typed-ast
-, pytestrunner, pytest
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, isPyPy
+, lazy-object-proxy
+, wrapt
+, typed-ast
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.4.2";
+  version = "2.5";
 
-  disabled = pythonOlder "3.4" || pythonAtLeast "3.9";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2f4078c2a41bf377eea06d71c9d2ba4eb8f6b1af2135bec27bbbb7d8f12bb703";
+    sha256 = "03dzhjrsc5d2whyjngfrwvxn42058k0cjjr85x2wqzai8psr475k";
   };
 
-  postPatch = ''
-    substituteInPlace astroid/__pkginfo__.py --replace "lazy_object_proxy==1.4.*" "lazy_object_proxy"
-  '';
-
   # From astroid/__pkginfo__.py
-  propagatedBuildInputs = [ lazy-object-proxy six wrapt ]
-    ++ lib.optional (pythonOlder "3.5") typing
-    ++ lib.optional (!isPyPy) typed-ast;
+  propagatedBuildInputs = [
+    lazy-object-proxy
+    wrapt
+  ] ++ lib.optional (!isPyPy && pythonOlder "3.8") typed-ast;
 
-  checkInputs = [ pytestrunner pytest ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "An abstract syntax tree for Python with inference support";
     homepage = "https://github.com/PyCQA/astroid";
-    license = licenses.lgpl2;
+    license = licenses.lgpl21Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ nand0p ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/asttokens/default.nix b/nixpkgs/pkgs/development/python-modules/asttokens/default.nix
index 0f090d14abad..ecbbfa909112 100644
--- a/nixpkgs/pkgs/development/python-modules/asttokens/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asttokens/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchPypi, buildPythonPackage,
+{ lib, fetchPypi, fetchpatch, buildPythonPackage,
   setuptools_scm, toml, six, astroid, pytest
 }:
 
@@ -11,6 +11,16 @@ buildPythonPackage rec {
     sha256 = "0a2ixiz04aw4p0aivxh47k3fa9ql804l3y5iv5gcih9aizi5fbm4";
   };
 
+  patches = [
+    # Fixes compatibility with python 3.9, will be included in the next release
+    # after 2.0.4
+    (fetchpatch {
+      url = "https://github.com/gristlabs/asttokens/commit/d8ff80ee7d2e64c5e1daf50cc38eb99663f1b1ac.patch";
+      sha256 = "19y8n8vpzr2ijldbq5rh19sf0vz5azqqpkb9bx0ljjg98h6k7kjj";
+      excludes = [ "setup.cfg" ];
+    })
+  ];
+
   propagatedBuildInputs = [ setuptools_scm toml six astroid ];
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/async-dns/default.nix b/nixpkgs/pkgs/development/python-modules/async-dns/default.nix
new file mode 100644
index 000000000000..fdf240f5ba96
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/async-dns/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, poetry-core
+, python
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "async-dns";
+  version = "1.1.9";
+  disabled = pythonOlder "3.6";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "gera2ld";
+    repo = "async_dns";
+    rev = "v${version}";
+    sha256 = "1z8j0s3dwcyavarhx41q75k1cmfzmwiqdh4svv3v15np26cywyag";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  patches = [
+    # Switch to poetry-core, https://github.com/gera2ld/async_dns/pull/22
+    # Can be remove for async-dns>1.1.9
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/gera2ld/async_dns/commit/25fee497aae3bde0ddf9f8804d249a27edbe607e.patch";
+      sha256 = "0w4zlppnp1a2q1wasc95ymqx3djswl32y5nw6fvz3nn8jg4gc743";
+    })
+  ];
+
+  checkPhase = ''
+    export HOME=$TMPDIR
+    # Test needs network access
+    rm tests/test_resolver.py
+    ${python.interpreter} -m unittest
+  '';
+
+  pythonImportsCheck = [ "async_dns" ];
+
+  meta = with lib; {
+    description = "Python DNS library";
+    homepage = "https://github.com/gera2ld/async_dns";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
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 6697cb5d13e8..a25916bc99c1 100644
--- a/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -1,17 +1,26 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, voluptuous, aiohttp, async-timeout, python-didl-lite, defusedxml
-, pytest_6, pytest-asyncio }:
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, defusedxml
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+, python-didl-lite
+, pythonOlder
+, voluptuous
+}:
 
 buildPythonPackage rec {
   pname = "async-upnp-client";
-  version = "0.14.15";
+  version = "0.16.0";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "StevenLooman";
     repo = "async_upnp_client";
     rev = version;
-    sha256 = "1mr65msdc51wq7326z3q41x79yi9dsmcjrmyzkgj9h9vgpxdk2nw";
+    sha256 = "sha256-vgy/zn1Xm7Fm7u/YMe/nJa3tyRNKx/WHz0AHfhFaVKo=";
   };
 
   propagatedBuildInputs = [
@@ -23,12 +32,14 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest_6
+    pytestCheckHook
     pytest-asyncio
   ];
 
+  pythonImportsCheck = [ "async_upnp_client" ];
+
   meta = with lib; {
-    description = "Asyncio UPnP Client library for Python/asyncio.";
+    description = "Asyncio UPnP Client library for Python";
     homepage = "https://github.com/StevenLooman/async_upnp_client";
     license = licenses.asl20;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix b/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix
index 14c800f568b0..2360d170f38e 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "asyncio-dgram";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "jsbronder";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zkmjvq47zw2fsbnzhr5mh9rsazx0z1f8m528ash25jrxsza5crm";
+    sha256 = "sha256-wgcL/BdNjzitkkaGyRUQbW1uv1enLDnHk30YHClK58o=";
   };
 
   # OSError: AF_UNIX path too long
diff --git a/nixpkgs/pkgs/development/python-modules/asyncio-nats-client/default.nix b/nixpkgs/pkgs/development/python-modules/asyncio-nats-client/default.nix
new file mode 100644
index 000000000000..a7feac7312f5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/asyncio-nats-client/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, ed25519
+, fetchFromGitHub
+, nats-server
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "asyncio-nats-client";
+  version = "0.11.4";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "nats-io";
+    repo = "nats.py";
+    rev = "v${version}";
+    sha256 = "1aj57xi2rj1xswq8air13xdsll1ybpi0nmz5f6jq01azm0zy9xyd";
+  };
+
+  propagatedBuildInputs = [
+    ed25519
+  ];
+
+  checkInputs = [
+    nats-server
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov=nats --cov-report html" ""
+  '';
+
+  disabledTests = [
+    # RuntimeError: Event loop is closed
+    "test_subscribe_no_echo"
+    "test_reconnect_to_new_server_with_auth"
+  ];
+
+  pythonImportsCheck = [ "nats.aio" ];
+
+  meta = with lib; {
+    description = "Python client for NATS.io";
+    homepage = "https://github.com/nats-io/nats.py";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/asyncio_mqtt/default.nix b/nixpkgs/pkgs/development/python-modules/asyncio_mqtt/default.nix
index 088681a19895..bb2ead70d716 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncio_mqtt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncio_mqtt/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "asyncio_mqtt";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hwfgww1ywhjvkpnvafbk2hxlqkrngfdz0sx5amzw68srzazvl6g";
+    sha256 = "c1b3bea68a35c83d290a89903079ffb311106195cd56867e201633a1ee1cad0c";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix b/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix
index 826ee6103fc0..674212bf922f 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix
@@ -1,14 +1,14 @@
-{ lib, isPy3k, fetchPypi, fetchpatch, buildPythonPackage
+{ lib, isPy3k, fetchPypi, buildPythonPackage
 , uvloop, postgresql }:
 
 buildPythonPackage rec {
   pname = "asyncpg";
-  version = "0.21.0";
+  version = "0.22.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "53cb2a0eb326f61e34ef4da2db01d87ce9c0ebe396f65a295829df334e31863f";
+    sha256 = "348ad471d9bdd77f0609a00c860142f47c81c9123f4064d13d65c8569415d802";
   };
 
   checkInputs = [
@@ -16,6 +16,8 @@ buildPythonPackage rec {
     postgresql
   ];
 
+  pythonImportsCheck = [ "asyncpg" ];
+
   meta = with lib; {
     homepage = "https://github.com/MagicStack/asyncpg";
     description = "An asyncio PosgtreSQL driver";
diff --git a/nixpkgs/pkgs/development/python-modules/asyncwhois/default.nix b/nixpkgs/pkgs/development/python-modules/asyncwhois/default.nix
index 077c5078caae..fe055d7f1972 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncwhois/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncwhois/default.nix
@@ -1,20 +1,23 @@
 { lib
+, aiodns
+, asynctest
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, pytestCheckHook
 , pythonOlder
-, aiodns
 , tldextract
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "asyncwhois";
-  version = "0.2.3";
-  disabled = pythonOlder "3.6";
+  version = "0.3.1";
+  disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "95df90d5be581e3c69398abc6a3ec69a4e568852d9d6df4582bfcc0e22ffb3bb";
+  src = fetchFromGitHub {
+    owner = "pogzyb";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1wp6pwnc1inzzn9nhkwq9m9ab1aylw0hzq94w6p2dsm2njfqma8h";
   };
 
   propagatedBuildInputs = [
@@ -22,9 +25,24 @@ buildPythonPackage rec {
     tldextract
   ];
 
-  # tests are only present at GitHub but not the released source tarballs
-  # https://github.com/pogzyb/asyncwhois/issues/10
-  doCheck = false;
+  checkInputs = [
+    asynctest
+    pytestCheckHook
+  ];
+
+  # Disable tests that require network access
+  disabledTests = [
+    "test_pywhois_aio_get_hostname_from_ip"
+    "test_pywhois_get_hostname_from_ip"
+    "test_pywhois_aio_lookup_ipv4"
+    "test_not_found"
+    "test_aio_from_whois_cmd"
+    "test_aio_get_hostname_from_ip"
+    "test_from_whois_cmd"
+    "test_get_hostname_from_ip"
+    "test_whois_query_run"
+  ];
+
   pythonImportsCheck = [ "asyncwhois" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/asysocks/default.nix b/nixpkgs/pkgs/development/python-modules/asysocks/default.nix
index b5028e4bebc3..21a3ed2a8fe3 100644
--- a/nixpkgs/pkgs/development/python-modules/asysocks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asysocks/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "asysocks";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-NH53FaOJx79q5IIYeiz976H9Q8Vnw13qFw4zgRc2TTw=";
+    sha256 = "sha256-7EzSALAJcx8BNHX44FeeiSPRcTe9UFHXQ4IoSKxMU8w=";
   };
 
   # Upstream hasn't release the tests yet
diff --git a/nixpkgs/pkgs/development/python-modules/atpublic/default.nix b/nixpkgs/pkgs/development/python-modules/atpublic/default.nix
index 41353598f895..f21733991044 100644
--- a/nixpkgs/pkgs/development/python-modules/atpublic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atpublic/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "atpublic";
-  version = "2.1.1";
+  version = "2.1.3";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa1d48bcb85bbed90f6ffee6936578f65ff0e93aa607397bd88eaeb408bd96d8";
+    sha256 = "e0b274759bfbcb6eeb7c7b44a7a46391990a43ac77aa55359b075765b54d9f5d";
   };
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
diff --git a/nixpkgs/pkgs/development/python-modules/auroranoaa/default.nix b/nixpkgs/pkgs/development/python-modules/auroranoaa/default.nix
new file mode 100644
index 000000000000..5d3fe1ff15dd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/auroranoaa/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "auroranoaa";
+  version = "0.0.2";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "djtimca";
+    repo = "aurora-api";
+    rev = version;
+    sha256 = "0bh8amixkg3xigwh3ryra22x6kzhbdassmf1iqv20lhbvzmsqjv0";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "auroranoaa" ];
+
+  meta = with lib; {
+    description = "Python wrapper for the Aurora API";
+    homepage = "https://github.com/djtimca/aurora-api";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/autopep8/default.nix b/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
index c748c0cb8c1a..fa3482c07951 100644
--- a/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "autopep8";
-  version = "1.5.4";
+  version = "1.5.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d21d3901cb0da6ebd1e83fc9b0dfbde8b46afc2ede4fe32fbda0c7c6118ca094";
+    sha256 = "cae4bc0fb616408191af41d062d7ec7ef8679c7f27b068875ca3a9e2878d5443";
   };
 
   propagatedBuildInputs = [ pycodestyle toml ];
diff --git a/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix b/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
index e0294246fb2d..fb51b698ed82 100644
--- a/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "avro-python3";
-  version = "1.10.1";
+  version = "1.10.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9027abeab63dd9b66bd3c564fa0670c70f78027ecb1978d96c6af7ed415b626b";
+    sha256 = "3b63f24e6b04368c3e4a6f923f484be0230d821aad65ac36108edbff29e9aaab";
   };
 
   buildInputs = [ pycodestyle isort ];
diff --git a/nixpkgs/pkgs/development/python-modules/avro/default.nix b/nixpkgs/pkgs/development/python-modules/avro/default.nix
index 5a38e86eee37..4c1fb77dc69b 100644
--- a/nixpkgs/pkgs/development/python-modules/avro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/avro/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "avro";
-  version = "1.10.1";
+  version = "1.10.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b3a405df5aa8654b992d2aca7b80482b858a1919a44dc0b10a682162e8ee340a";
+    sha256 = "381b990cc4c4444743c3297348ffd46e0c3a5d7a17e15b2f4a9042f6e955c31a";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix b/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
index 2a532beca473..09a4c9460d1c 100644
--- a/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "awesomeversion";
-  version = "21.2.2";
+  version = "21.4.0";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "1yl09csypa64nhsw7dc6kj8iybm1wkhfzylyfyq8b7jpwdx7ql31";
+    sha256 = "sha256-ulByke1sKVcDdBhAz/fxdNFJ0PSjYVdnBcO+GYEnZUQ=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/awkward/default.nix b/nixpkgs/pkgs/development/python-modules/awkward/default.nix
index 298074f300d9..a343306a5b9e 100644
--- a/nixpkgs/pkgs/development/python-modules/awkward/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awkward/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "1.0.2";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3468cb80cab51252a1936e5e593c7df4588ea0e18dcb6fb31e3d2913ba883928";
+    sha256 = "4ae8371d9e6d5bd3e90f3686b433cebc0541c88072655d2c75ec58e79b5d6943";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook numba ];
   dontUseSetuptoolsCheck = true;
+  disabledTestPaths = [ "tests-cuda" ];
 
   meta = with lib; {
     description = "Manipulate JSON-like data with NumPy-like idioms";
diff --git a/nixpkgs/pkgs/development/python-modules/awkward0/default.nix b/nixpkgs/pkgs/development/python-modules/awkward0/default.nix
index c248c81da751..3783f9776cd1 100644
--- a/nixpkgs/pkgs/development/python-modules/awkward0/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awkward0/default.nix
@@ -2,33 +2,31 @@
 , buildPythonPackage
 , fetchFromGitHub
 , numpy
-, pandas
 , pytestrunner
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "awkward0";
-  version = "0.15.2";
+  version = "0.15.5";
 
   src = fetchFromGitHub {
     owner = "scikit-hep";
     repo = "awkward-0.x";
     rev = version;
-    sha256 = "sha256-C6/byIGcabGjws5QI9sh5BO2M4Lhqkooh4mSjUEKCKU=";
+    sha256 = "039pxzgll2yz8xpr6bw788ymvgvqgna5kgl9m6d9mzi4yhbjsjpx";
   };
 
   nativeBuildInputs = [ pytestrunner ];
 
   propagatedBuildInputs = [ numpy ];
 
-  checkInputs = [ pandas pytestCheckHook ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    # Almost all tests in this file fail
-    rm tests/test_persist.py
-    py.test
-  '';
+  # Can't find a fixture
+  disabledTests = [ "test_import_pandas" ];
+
+  pythonImportsCheck = [ "awkward0" ];
 
   meta = with lib; {
     description = "Manipulate jagged, chunky, and/or bitmasked arrays as easily as Numpy";
diff --git a/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix b/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
index ce4c6f789263..461ce9d90d9d 100644
--- a/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
@@ -1,6 +1,19 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest, pytestrunner, pytestcov, mock, glibcLocales, lxml, botocore
-, requests, requests-kerberos, click, configparser, fido2, isPy27 }:
+{ lib
+, botocore
+, buildPythonPackage
+, click
+, configparser
+, fetchPypi
+, fido2
+, glibcLocales
+, isPy27
+, lxml
+, mock
+, pyopenssl
+, pytestCheckHook
+, requests
+, requests-kerberos
+}:
 
 buildPythonPackage rec {
   pname = "aws-adfs";
@@ -12,9 +25,28 @@ buildPythonPackage rec {
     sha256 = "6a78bd31477ea9988166215ae86abcbfe1413bee20373ecdf0dd170b7290db55";
   };
 
+  propagatedBuildInputs = [
+    botocore
+    click
+    configparser
+    fido2
+    lxml
+    pyopenssl
+    requests
+    requests-kerberos
+  ];
+
+  checkInputs = [
+    glibcLocales
+    mock
+    pytestCheckHook
+  ];
+
   # Relax version constraint
-  patchPhase = ''
-    sed -i 's/coverage < 4/coverage/' setup.py
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'coverage < 4' 'coverage' \
+      --replace 'fido2>=0.8.1,<0.9.0' 'fido2>=0.8.1,<1.0.0'
   '';
 
   # Test suite writes files to $HOME/.aws/, or /homeless-shelter if unset
@@ -23,8 +55,7 @@ buildPythonPackage rec {
   # Required for python3 tests, along with glibcLocales
   LC_ALL = "en_US.UTF-8";
 
-  checkInputs = [ glibcLocales pytest pytestrunner pytestcov mock ];
-  propagatedBuildInputs = [ botocore lxml requests requests-kerberos click configparser fido2 ];
+  pythonImportsCheck = [ "aws_adfs" ];
 
   meta = with lib; {
     description = "Command line tool to ease aws cli authentication against ADFS";
diff --git a/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix b/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix
new file mode 100644
index 000000000000..ff26bb6245d5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, pytestCheckHook, autoconf
+, automake, cmake, gcc, libtool, perl, simplejson }:
+
+buildPythonPackage rec {
+  pname = "awslambdaric";
+  version = "1.0.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "aws";
+    repo = "aws-lambda-python-runtime-interface-client";
+    rev = "v${version}";
+    sha256 = "13v1lsp3lxbqknvlb3gvljjf3wyrx5jg8sf9yfiaj1sm8pb8pmrf";
+  };
+
+  propagatedBuildInputs = [ simplejson ];
+
+  nativeBuildInputs = [ autoconf automake cmake libtool perl ];
+
+  buildInputs = [ gcc ];
+
+  dontUseCmakeConfigure = true;
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "awslambdaric" "runtime_client" ];
+
+  meta = with lib; {
+    description = "AWS Lambda Runtime Interface Client for Python";
+    homepage = "https://github.com/aws/aws-lambda-python-runtime-interface-client";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ austinbutler ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/axis/default.nix b/nixpkgs/pkgs/development/python-modules/axis/default.nix
index 707d958bab53..b926a1abc25b 100644
--- a/nixpkgs/pkgs/development/python-modules/axis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/axis/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "axis";
-  version = "43";
+  version = "44";
 
   src = fetchFromGitHub {
     owner = "Kane610";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1p9yfixsrkw7rxbvgybcb653rbqv0x18wzqkh620g193snm9sgm2";
+    sha256 = "sha256-GC8GiDP/QHU+8swe60VFPRx8kSMMHuXjIPEKCja8HPE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-core/default.nix b/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
index e91a0fb07493..2bcb4d42646c 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
@@ -14,14 +14,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.10.0";
+  version = "1.12.0";
   pname = "azure-core";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "b9cddf3eb239e32b14cf44750b21d7bc8d78b82aa53d57628523598dcd006803";
+    sha256 = "adf2b1c6ef150a92295b4b405f982a9d2c55c4846728cb14760ca592acbb09ec";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix b/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
index 9781fcecaaf2..3d8e4df56540 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -3,23 +3,25 @@
 , fetchPypi
 , msrest
 , azure-common
+, azure-core
 , msrestazure
 }:
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "1.3.0";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c82c4bf6ea59aeec69ce8f95f1b6a4edc6d733874aeb056669c9d2806168c86e";
+    sha256 = "c4f29b2d9b717dad7919048f0a458dd84f83637c3d5c8f5a7e64634b22086719";
   };
 
   propagatedBuildInputs = [
+    azure-common
+    azure-core
     msrest
     msrestazure
-    azure-common
   ];
 
   # has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-applicationinsights/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-applicationinsights/default.nix
index 7330ef5fb3e1..2685d8803b89 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-applicationinsights/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-applicationinsights/default.nix
@@ -1,28 +1,29 @@
 { lib
 , buildPythonPackage
-, python
 , fetchPypi
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-applicationinsights";
-  version = "0.3.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "3c788a54db4fbca1a8850151462ec1471ff59c86b3a10d6082952bbdaa7e6651";
+    sha256 = "c287a2c7def4de19f92c0c31ba02867fac6f5b8df71b5dbdab19288bb455fc5b";
   };
 
   propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
     msrest
     msrestazure
-    azure-common
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
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 e8a45ebf5aa4..2bfa56dc81c5 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
@@ -1,20 +1,18 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, python
 , azure-mgmt-common
 , azure-mgmt-core
-, isPy3k
 }:
 
 buildPythonPackage rec {
-  version = "18.1.0";
+  version = "19.0.0";
   pname = "azure-mgmt-compute";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "02de691c5ce7237993e65b0ae6154b3bf8ec32bcb15f13ade72bc7f3cb3183d4";
+    sha256 = "65afe759c6ee87dd89d65d59c8da4b2c04d197c07c1fbfdc56ef1aea468e4525";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index 8e93026b6021..8433025bbc04 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "14.0.0";
+  version = "15.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "fbb13448fb52a4090ee91940ae8676403dbe8ae81044b7a5cd3c9e58b47d66de";
+    sha256 = "e205aada94bb630e1ba5ee57751849456e1535aec3f2173edf2cbf596b99c0d9";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
index 3814770b2e57..22823bfdd583 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cosmosdb";
-  version = "6.0.0";
+  version = "6.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "15e4140870f2756fbd43965ccceca55361a634a0504bbdb033a1909eff14dfb1";
+    sha256 = "7eb28eae4354e0a68e098de314b380d92f6482f53b2947dc8a36913195bdfde0";
   };
 
   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 91f420f11ae8..8454d4463f4b 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datafactory";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "d4f3984eca74b1e3691467aadc09626e578ed1fc5ef410872d474f3e7653916a";
+    sha256 = "433ad8e83bd8df4abc5af47a0e3a7a4515f79931db4036f2bccd65b5a9e88bfb";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
index 9a23d31309b2..c4453e8c0c11 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-hanaonazure";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "7f8b912ca62431c1697b4914c12cc5f8123e60ee6c65d123591f937744d204e0";
+    sha256 = "f5699cd2f6ad09555c3f1a75c8703e12db76bbbb7ec8b621dcb948d4fc9829a5";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
index 2f368b826491..c7528dace274 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-iotcentral";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "ab793fde2b5eeb73ab37434013d4b5ba7750031220013edb3c1758c45a00a91a";
+    sha256 = "e6d4810f454c0d63a5e816eaa7e54a073a3f70b2256162ff1c234cfe91783ae6";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
index 93c78c401f0c..c5adc61ea203 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
@@ -1,21 +1,27 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
-  version = "0.10.0";
+  version = "1.0.0";
   pname = "azure-mgmt-kusto";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09e8d4928e19d12feb374adb47651b474f3ee3bc6a12704e4b70c9b38e3bcd9e";
+    sha256 = "fa3ede0ebd6489bbf993f420bcb5fc63d9fad2a1e945c3c49b26fa012bb3534e";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [ azure-common msrest msrestazure ];
+  propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
+    msrest
+    msrestazure
+  ];
 
   # no tests included
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix
index 9538ed2a2345..628d0bbcac03 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-marketplaceordering";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "85103080f9e59215036bdfb8f806d91ea182d72c46a13f55c3acc479849351e3";
+    sha256 = "68b381f52a4df4435dacad5a97e1c59ac4c981f667dcca8f9d04453417d60ad8";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix
index 90effb44c69c..6320588ed430 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-media";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "8944775725c5253614d257576d841ee68afa34f570b05c0924a7f73f1db28a24";
+    sha256 = "c35316d3d63dc99feb97ad7f12a7b411046537f5c6d79ef14f6067bcc379292f";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
index ec1caa5c3e4a..35dc7ef05aba 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.0.0";
+  version = "2.0.0";
   pname = "azure-mgmt-netapp";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e2c0cecd634c0a106e389f39ad767bfd1d718d90692e4e3c9664b1fe9a792ade";
+    sha256 = "ff3b663e36c961e86fc0cdbd6f9fb9fb863d3e7db9035fe713af7299e809ee5e";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix
index b15fd3afa097..f70c8420c829 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix
@@ -10,14 +10,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "17.1.0";
+  version = "18.0.0";
   pname = "azure-mgmt-network";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f47852836a5960447ab534784a9285696969f007744ba030828da2eab92621ab";
+    sha256 = "85fdeb7a1a8d89be9b585396796b218b31b681590d57d82d3ea14cf1f2d20b4a";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix
index bdba89498877..5cbbee77ae8e 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix
@@ -8,14 +8,14 @@
 
 
 buildPythonPackage rec {
-  version = "15.0.0";
+  version = "16.0.0";
   pname = "azure-mgmt-resource";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "80ecb69aa21152b924edf481e4b26c641f11aa264120bc322a14284811df9c14";
+    sha256 = "0bdbdc9c1ed2ef975d8dff45f358d1e06dc6761eace5b6817f13993447e48a68";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
index 2f1032c2bb9b..6f14ce174cd2 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
@@ -8,14 +8,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "16.0.0";
+  version = "17.0.0";
   pname = "azure-mgmt-storage";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "2f9d714d9722b1ef4bac6563676612e6e795c4e90f6f3cd323616fdadb0a99e5";
+    sha256 = "c0e3fd99028d98c80dddabe1c22dfeb3d694e5c1393c6de80766eb240739e4bc";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix
index f02bee6befe6..9bd5371412d7 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-web";
-  version = "1.0.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c4b218a5d1353cd7c55b39c9b2bd1b13bfbe3b8a71bc735122b171eab81670d1";
+    sha256 = "0040e1c9c795f7bebe43647ff30b62cb0db7175175df5cbfa1e554a6a277b81e";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-multiapi-storage/default.nix b/nixpkgs/pkgs/development/python-modules/azure-multiapi-storage/default.nix
index 18e4a12d3b36..be011a1ed002 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-multiapi-storage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-multiapi-storage/default.nix
@@ -1,5 +1,4 @@
-{ lib, python, buildPythonPackage, fetchPypi, isPy27
-, fetchpatch
+{ lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
 , azure-core
 , msrest
@@ -8,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.1";
+  version = "0.6.2";
   pname = "azure-multiapi-storage";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0h7bzaqwyl3j9xqzjbnwxp59kmg6shxk76pml9kvvqbwsq9w6fx3";
+    sha256 = "74061f99730fa82c54d9b8ab3c7d6e219da3f30912740ecf0456b20cb3555ebc";
   };
 
   propagatedBuildInputs = [
@@ -25,14 +24,6 @@ buildPythonPackage rec {
     requests
   ];
 
-  # Fix to actually install the package
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/Azure/azure-multiapi-storage-python/pull/29/commits/1c8b08dfc9c5445498de3475dec8820eafbd0ca1.patch";
-      sha256 = "1f80sdbw4pagrlp9dhcimhp23sdmy0whiba07aa84agkpv4df9ny";
-    })
-  ];
-
   # fix namespace
   pythonNamespaces = [ "azure.multiapi" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix b/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
index 356de52212d0..b0c0a9e96cb9 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-servicebus";
-  version = "7.0.1";
+  version = "7.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "46d1e7b9da537da831c3184d42d3e2bc3c7ab9234e204a9d4c2e5dc54010721b";
+    sha256 = "c5b3681ce4d7a44c223ddddfdec4c8d2eadede3b11b598ac09c4dbf4b729e89b";
   };
 
   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 cd42be98f9ff..7367e9604b9a 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-blob";
-  version = "12.7.1";
+  version = "12.8.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c6249f211684929ea6c9d34b5151b06d039775344f0d48fcf479736ed4c11b9e";
+    sha256 = "36b85a3423379d4a93f663022487cf53aa3043a355f8414321dde878c00cb577";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix b/nixpkgs/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
index 1f8ba7dbe8af..b9a6a40e733c 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "azure-synapse-accesscontrol";
-  version = "0.4.0";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4f32423d9facaae512c433f5460b4ceec73a6c20b44b00e9de9de7a0e86dacd";
+    sha256 = "2f8f71561ca30ff3b04b172f5a64b231baeb02f4bce4bd6763df93a178c8b5d7";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix b/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
index 5a414388c4c8..76ad61636061 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "azure-synapse-artifacts";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "09fd9cf8c25c901d2daf7e436062065ada866f212f371f9d66f394d39ccaa23b";
+    sha256 = "a13124dc9405277f697f6452728d7dcf4c50601ee76055fd42f12b51494d6579";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-synapse-spark/default.nix b/nixpkgs/pkgs/development/python-modules/azure-synapse-spark/default.nix
index 571f3f9d08da..09b25fe9d518 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-synapse-spark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-synapse-spark/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "azure-synapse-spark";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7f5881fda4108363c8c6fdee0494fa067ba81e60f038883859d23fc197f5f286";
+    sha256 = "2b037024dc7c034f47aac551cc918f78590a1e1ae30cd2370c8a14da15994970";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/backports_lzma/default.nix b/nixpkgs/pkgs/development/python-modules/backports_lzma/default.nix
index 1ebae86dec99..bf346f3a3ca1 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_lzma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_lzma/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy3k
-, lzma
+, xz
 , python
 , pythonOlder
 }:
@@ -18,7 +18,7 @@ if !(pythonOlder "3.3") then null else buildPythonPackage rec {
     sha256 = "16d8b68e4d3cd4e6c9ddb059850452946da3914c8a8e197a7f2b0954559f2df4";
   };
 
-  buildInputs = [ lzma ];
+  buildInputs = [ xz ];
 
   checkPhase = ''
     ${python.interpreter} test/test_lzma.py
diff --git a/nixpkgs/pkgs/development/python-modules/backports_ssl_match_hostname/default.nix b/nixpkgs/pkgs/development/python-modules/backports_ssl_match_hostname/default.nix
index d6fecfbdfb91..a7403e16123a 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_ssl_match_hostname/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_ssl_match_hostname/default.nix
@@ -1,8 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi, pythonAtLeast }:
 
 buildPythonPackage rec {
   pname = "backports.ssl_match_hostname";
   version = "3.7.0.1";
+  disabled = pythonAtLeast "3.7";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix b/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix
index 16b8f317a223..8706a31d5711 100644
--- a/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , isPy27
 , fetchFromGitHub
-, fetchpatch
 , pytestCheckHook
 , unittest2
 , future
@@ -16,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "batchgenerators";
-  version = "0.20.1";
+  version = "0.21";
 
   disabled = isPy27;
 
@@ -24,18 +23,10 @@ buildPythonPackage rec {
     owner = "MIC-DKFZ";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1f91yflv9rschyl5bnfn735hp1rxrzcxkx18aajmlzb067h0ip8m";
+    sha256 = "16bk4r0q3m2c9fawpmj4l7kz0x3fyv1spb92grf44gmyricq3jdb";
 
   };
 
-  patches = [
-    # lift Pillow bound; should be merged in next release
-    (fetchpatch {
-      url = "https://github.com/MIC-DKFZ/batchgenerators/pull/59.patch";
-      sha256 = "171b3dm40yn0wi91m9s2nq3j565s1w39jpdf1mvc03rn75i8vdp0";
-    })
-  ];
-
   propagatedBuildInputs = [
     future numpy pillow scipy scikitlearn scikitimage threadpoolctl
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/bayespy/default.nix b/nixpkgs/pkgs/development/python-modules/bayespy/default.nix
index 6ebe9919ec9b..95bb22ce2cb8 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.20";
+  version = "0.5.22";
 
   # Python 2 not supported and not some old Python 3 because MPL doesn't support
   # them properly.
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c16cdc73bbcd9a1124a0495056065b7ce938dbe6c2c780dc330c83fb4d2640a";
+    sha256 = "ed0057dc22bd392df4b3bba23536117e1b2866e3201b12c5a37428d23421a5ba";
   };
 
   checkInputs = [ pytest nose glibcLocales ];
diff --git a/nixpkgs/pkgs/development/python-modules/beaker/default.nix b/nixpkgs/pkgs/development/python-modules/beaker/default.nix
index 09e0b8b3f3e5..a429ab682f76 100644
--- a/nixpkgs/pkgs/development/python-modules/beaker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beaker/default.nix
@@ -1,6 +1,8 @@
-{ lib
+{ stdenv
+, lib
 , buildPythonPackage
 , fetchFromGitHub
+, glibcLocales
 , nose
 , pylibmc
 , memcached
@@ -19,14 +21,14 @@
 
 buildPythonPackage rec {
   pname = "Beaker";
-  version = "1.10.1";
+  version = "1.11.0";
 
   # The pypy release do not contains the tests
   src = fetchFromGitHub {
     owner = "bbangert";
     repo = "beaker";
     rev = version;
-    sha256 = "0xrvg503xmi28w0hllr4s7fkap0p09fgw2wax3p1s2r6b3xjvbz7";
+    sha256 = "059sc7iar90lc2y9mppdis5ddfcxyirz03gmsfb0307f5dsa1dhj";
   };
 
   propagatedBuildInputs = [
@@ -39,16 +41,16 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    nose
+    glibcLocales
+    memcached
     mock
-    webtest
+    nose
     pylibmc
-    memcached
-    redis
     pymongo
+    redis
+    webtest
   ];
 
-
   # Can not run memcached tests because it immediately tries to connect
   postPatch = lib.optionalString isPy3k ''
     substituteInPlace setup.py \
@@ -66,6 +68,7 @@ buildPythonPackage rec {
     nosetests \
       -e ".*test_ext_.*" \
       -e "test_upgrade" \
+      ${lib.optionalString (!stdenv.isLinux) ''-e "test_cookie_expires_different_locale"''} \
       -vv tests
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/beancount/default.nix b/nixpkgs/pkgs/development/python-modules/beancount/default.nix
index e4a6a5f5625e..88369f41872b 100644
--- a/nixpkgs/pkgs/development/python-modules/beancount/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beancount/default.nix
@@ -1,17 +1,29 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, beautifulsoup4, bottle, chardet, dateutil
-, google_api_python_client, lxml, oauth2client
-, ply, python_magic, pytest, requests }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, beautifulsoup4
+, bottle
+, chardet
+, dateutil
+, google-api-python-client
+, lxml
+, oauth2client
+, ply
+, pytest
+, python_magic
+, requests
+}:
 
 buildPythonPackage rec {
-  version = "2.3.3";
+  version = "2.3.4";
   pname = "beancount";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0767ap2n9vk9dz40njndfhaprajr75fvzx7igbd1szc6x8wri8nr";
+    sha256 = "sha256-K/CM5qldmAAPTXM5WYXNHeuBwNUu1aduYQusd9gvhsA=";
   };
 
   # Tests require files not included in the PyPI archive.
@@ -22,14 +34,14 @@ buildPythonPackage rec {
     bottle
     chardet
     dateutil
-    google_api_python_client
+    google-api-python-client
     lxml
     oauth2client
     ply
     python_magic
     requests
     # pytest really is a runtime dependency
-    # https://bitbucket.org/blais/beancount/commits/554e13057551951e113835196770847c788dd592
+    # https://github.com/beancount/beancount/blob/v2/setup.py#L81-L82
     pytest
   ];
 
@@ -41,8 +53,7 @@ buildPythonPackage rec {
         financial transaction records in a text file, read them in memory,
         generate a variety of reports from them, and provides a web interface.
     '';
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ ];
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ bhipple ];
   };
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/bellows/default.nix b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
index d47c5d716a73..79bcaa91cbe7 100644
--- a/nixpkgs/pkgs/development/python-modules/bellows/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
@@ -1,21 +1,40 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, click, click-log, pure-pcapy3
-, pyserial-asyncio, voluptuous, zigpy
-, asynctest, pytestCheckHook, pytest-asyncio }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, click
+, click-log
+, pure-pcapy3
+, pyserial-asyncio
+, voluptuous
+, zigpy
+, asynctest
+, pytestCheckHook
+, pytest-asyncio
+}:
 
 buildPythonPackage rec {
   pname = "bellows";
-  version = "0.21.0";
+  version = "0.23.1";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "bellows";
     rev = version;
-    sha256 = "1gja7cb1cyzbi19k8awa2gyc3bjam0adapalpk5slxny0vxlc73a";
+    sha256 = "sha256-c9rKRmGMlYrzVQmUuM9P3c/Jm4QVM2aBRSZ0OkyrPTY=";
   };
 
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace "click-log==0.2.1" "click-log>=0.2.1"
+  '';
+
   propagatedBuildInputs = [
-    click click-log pure-pcapy3 pyserial-asyncio voluptuous zigpy
+    click
+    click-log
+    pure-pcapy3
+    pyserial-asyncio
+    voluptuous
+    zigpy
   ];
 
   checkInputs = [
@@ -24,11 +43,6 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace "click-log==0.2.0" "click-log>=0.2.0"
-  '';
-
   meta = with lib; {
     description = "A Python 3 project to implement EZSP for EmberZNet devices";
     homepage = "https://github.com/zigpy/bellows";
diff --git a/nixpkgs/pkgs/development/python-modules/beniget/default.nix b/nixpkgs/pkgs/development/python-modules/beniget/default.nix
new file mode 100644
index 000000000000..c5508fb33032
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/beniget/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, gast
+}:
+
+buildPythonPackage rec {
+  pname = "beniget";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1";
+  };
+
+  propagatedBuildInputs = [
+    gast
+  ];
+
+  meta = {
+    description = "Extract semantic information about static Python code";
+    homepage = "https://github.com/serge-sans-paille/beniget";
+    license = lib.licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/binwalk/default.nix b/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
index b9120d412cb0..a3e48d20c602 100644
--- a/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
@@ -14,7 +14,6 @@
 , cramfsswap
 , sasquatch
 , squashfsTools
-, lzma
 , matplotlib
 , nose
 , pycrypto
@@ -32,7 +31,7 @@ buildPythonPackage rec {
     sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc";
   };
 
-  propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract squashfsTools lzma pycrypto ]
+  propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract squashfsTools xz pycrypto ]
   ++ lib.optionals visualizationSupport [ matplotlib pyqtgraph ]
   ++ lib.optionals (!stdenv.isDarwin) [ cramfsprogs cramfsswap sasquatch ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix b/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix
index 17f996bfd709..1854bd4f71b5 100644
--- a/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "bip_utils";
-  version = "1.6.0";
+  version = "1.7.0";
 
   disabled = pythonOlder "3.6";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "ebellocchia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zbjrgl4dd65r3liyp8syxr106z1wn7ngfcm5dlfcxqwj8zkf56m";
+    sha256 = "1dj0c9sj0c4dkdf7rbz3s1z5kfzw22hpncm4bnwqigjzi6nrk81z";
   };
 
   propagatedBuildInputs = [ ecdsa pysha3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
index 2f98f3917b84..dc09aa2c6bcb 100644
--- a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
@@ -2,13 +2,15 @@
 
 buildPythonPackage rec {
   pname = "bitarray";
-  version = "1.6.3";
+  version = "1.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ae27ce4bef4f35b4cc2c0b0d9cf02ed49eee567c23d70cb5066ad215f9b62b3c";
+    sha256 = "e02f79fba7a470d438eb39017d503498faaf760b17b6b46af1a9de12fd58d311";
   };
 
+  pythonImportsCheck = [ "bitarray" ];
+
   meta = with lib; {
     description = "Efficient arrays of booleans";
     homepage = "https://github.com/ilanschnell/bitarray";
diff --git a/nixpkgs/pkgs/development/python-modules/bitbox02/default.nix b/nixpkgs/pkgs/development/python-modules/bitbox02/default.nix
index ce62fd6dce04..d57d4a6585bd 100644
--- a/nixpkgs/pkgs/development/python-modules/bitbox02/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitbox02/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bitbox02";
-  version = "5.2.0";
+  version = "5.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "52b0b617660601939b30c8b588c28910946448b1b6d69ca231d5e3e47a322b71";
+    sha256 = "fe0e8aeb9b32fd7d76bb3e9838895973a74dfd532a8fb8ac174a1a60214aee26";
   };
 
   propagatedBuildInputs = [ base58 ecdsa hidapi noiseprotocol protobuf semver typing-extensions ];
diff --git a/nixpkgs/pkgs/development/python-modules/bitlist/default.nix b/nixpkgs/pkgs/development/python-modules/bitlist/default.nix
new file mode 100644
index 000000000000..ac8cf39cff2f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bitlist/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+, parts
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "bitlist";
+  version = "0.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04dz64r21a39p8wph5qlhvs5y873qgk6xxjlzw8n695b8jm3ixir";
+  };
+
+  propagatedBuildInputs = [
+    parts
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    nose
+  ];
+
+  pythonImportsCheck = [ "bitlist" ];
+
+  meta = with lib; {
+    description = "Python library for working with little-endian list representation of bit strings";
+    homepage = "https://github.com/lapets/bitlist";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/bleach/default.nix b/nixpkgs/pkgs/development/python-modules/bleach/default.nix
index 1bdedde1cb4e..53319466d3a5 100644
--- a/nixpkgs/pkgs/development/python-modules/bleach/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bleach/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "bleach";
-  version = "3.2.1";
+  version = "3.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "52b5919b81842b1854196eaae5ca29679a2f2e378905c346d3ca8227c2c66080";
+    sha256 = "sha256-mLMXBznl6D3Z3BljPwdHJ62EjL7bYCZwjIrC07aXpDM=";
   };
 
   checkInputs = [ pytest pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/bleak/default.nix b/nixpkgs/pkgs/development/python-modules/bleak/default.nix
index 38390e8377e9..f229beb2b049 100644
--- a/nixpkgs/pkgs/development/python-modules/bleak/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bleak/default.nix
@@ -1,14 +1,16 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi, bluez, txdbus, pytest, pytestcov }:
+{ lib, buildPythonPackage, isPy3k, fetchPypi
+, bluez, dbus-next, pytestCheckHook, pytest-cov
+}:
 
 buildPythonPackage rec {
   pname = "bleak";
-  version = "0.10.0";
+  version = "0.11.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c3a873965f2910865895e572e7a4f10533d6e150e6ba17936397426bf8d1eee";
+    sha256 = "1zs5lz3r17a2xn19i4na132iccyjsl9navj0d3v7gks7hlcad5kp";
   };
 
   postPatch = ''
@@ -19,10 +21,11 @@ buildPythonPackage rec {
       --replace \"bluetoothctl\" \"${bluez}/bin/bluetoothctl\"
   '';
 
-  propagatedBuildInputs = [ txdbus ];
-  checkInputs = [ pytest pytestcov ];
+  propagatedBuildInputs = [ dbus-next ];
 
-  checkPhase = "AGENT_OS=linux py.test";
+  checkInputs = [ pytestCheckHook pytest-cov ];
+
+  pythonImportsCheck = [ "bleak" ];
 
   meta = with lib; {
     description = "Bluetooth Low Energy platform Agnostic Klient for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/blinker/default.nix b/nixpkgs/pkgs/development/python-modules/blinker/default.nix
index 5591113ab0ad..ca59a0d710ab 100644
--- a/nixpkgs/pkgs/development/python-modules/blinker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blinker/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi, nose, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "blinker";
@@ -9,6 +9,9 @@ buildPythonPackage rec {
     sha256 = "1dpq0vb01p36jjwbhhd08ylvrnyvcc82yxx3mwjx6awrycjyw6j7";
   };
 
+  checkInputs = [ nose pytestCheckHook ];
+  pythonImportsCheck = [ "blinker" ];
+
   meta = with lib; {
     homepage = "https://pythonhosted.org/blinker/";
     description = "Fast, simple object-to-object and broadcast signaling";
diff --git a/nixpkgs/pkgs/development/python-modules/bokeh/default.nix b/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
index 091b020efc25..9375aa22a3fe 100644
--- a/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "bokeh";
-  version = "2.2.3";
+  version = "2.2.3";  # update together with panel which is not straightforward
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/boltons/default.nix b/nixpkgs/pkgs/development/python-modules/boltons/default.nix
index f4842981c4a7..0986a5dc7c43 100644
--- a/nixpkgs/pkgs/development/python-modules/boltons/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boltons/default.nix
@@ -1,19 +1,35 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytest }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "boltons";
-  version = "20.2.0";
+  version = "20.2.1";
 
   # No tests in PyPi Tarball
   src = fetchFromGitHub {
     owner = "mahmoud";
     repo = "boltons";
     rev = version;
-    sha256 = "08rd6av8dp5n1vz6nybmayl1mfsmj66cskiaybfshcgix29ca803";
+    sha256 = "0vw0h0z81gfxgjfijqiza92ic0siv9xy65mklgj5d0dzr1k9waw8";
   };
 
-  checkInputs = [ pytest ];
-  checkPhase = "pytest tests";
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/mahmoud/boltons/commit/754afddf141ea26956c88c7e13fe5e7ca7942654.patch";
+      sha256 = "14kcq8pl4pmgcnlnmj1sh1yrksgym0kn0kgz2648g192svqkbpz8";
+    })
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+  disabledTests = [
+    # This test is broken without this PR, which has not yet been merged
+    # https://github.com/mahmoud/boltons/pull/283
+    "test_frozendict_ior"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/mahmoud/boltons";
diff --git a/nixpkgs/pkgs/development/python-modules/boto3/default.nix b/nixpkgs/pkgs/development/python-modules/boto3/default.nix
index 1d3e0cca6749..9fdd4f35d1b2 100644
--- a/nixpkgs/pkgs/development/python-modules/boto3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boto3/default.nix
@@ -12,12 +12,12 @@
 }:
 
 buildPythonPackage rec {
-  pname =  "boto3";
-  version = "1.17.5"; # N.B: if you change this, change botocore too
+  pname = "boto3";
+  version = "1.17.46"; # N.B: if you change this, change botocore and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1qr7gE/KK2fGXdp4rYtK/tkB4AQHEgi4TIBNNFrZ67o=";
+    sha256 = "sha256-Xe4Vv5YepYTWgfrkLFADTIOXF+dFTD2pDLV6bFLpdTI=";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
@@ -35,6 +35,8 @@ buildPythonPackage rec {
   # Network access
   doCheck = false;
 
+  pythonImportsCheck = [ "boto3" ];
+
   meta = {
     homepage = "https://github.com/boto/boto3";
     license = lib.licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/botocore/default.nix b/nixpkgs/pkgs/development/python-modules/botocore/default.nix
index 05c333d93979..7301ef5ae488 100644
--- a/nixpkgs/pkgs/development/python-modules/botocore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/botocore/default.nix
@@ -1,4 +1,5 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchPypi
 , dateutil
 , jmespath
@@ -12,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.20.5"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.20.46"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-BKHfdZaB9fFxrMs1TYY7/tB3TWSk6O41/0mDV1VmCk4=";
+    sha256 = "sha256-ULvD6TQcfaqCGduYw48mASoVHKiPomAUjlvzrcvLlUE=";
   };
 
   propagatedBuildInputs = [
@@ -28,10 +29,6 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
-  '';
-
   checkInputs = [ mock nose ];
 
   checkPhase = ''
@@ -41,9 +38,11 @@ buildPythonPackage rec {
   # Network access
   doCheck = false;
 
-  meta = {
+  pythonImportsCheck = [ "botocore" ];
+
+  meta = with lib; {
     homepage = "https://github.com/boto/botocore";
-    license = "bsd";
+    license = licenses.asl20;
     description = "A low-level interface to a growing number of Amazon Web Services";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/bracex/default.nix b/nixpkgs/pkgs/development/python-modules/bracex/default.nix
new file mode 100644
index 000000000000..0f8282ae7b6e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bracex/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "bracex";
+  version = "2.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-AfcVzQ7XpiLsizIyLnFYE/dXTeUx8Jtw9vOywQ9oJCU=";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "bracex" ];
+
+  meta = with lib; {
+    description = "Bash style brace expansion for Python";
+    homepage = "https://github.com/facelessuser/bracex";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/braintree/default.nix b/nixpkgs/pkgs/development/python-modules/braintree/default.nix
index 7ad0b5604fc6..28b6fccfca90 100644
--- a/nixpkgs/pkgs/development/python-modules/braintree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/braintree/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "braintree";
-  version = "4.6.0";
+  version = "4.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ef19892f99fa497c90684db6d41442e94b2d3b0ed00afe2c574e46d89cb9a89c";
+    sha256 = "25a95f95acb7f180b37f8dcf4df7efa84ae0ba6ad9dc4ba0e724e2cc534c3483";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/breathe/default.nix b/nixpkgs/pkgs/development/python-modules/breathe/default.nix
index 29de26ac495e..1ca33222ef5a 100644
--- a/nixpkgs/pkgs/development/python-modules/breathe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/breathe/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k, isPy27 }:
 
 buildPythonPackage rec {
-  version = "4.26.1";
+  version = "4.28.0";
   pname = "breathe";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f59ecadebbb76e3b4710e8c9d2f8f98d51e54701930a38ddf732930653dcf6b5";
+    sha256 = "11e35a5fed7545554be51b70eea4578643d8c08972bea43774f413943006b17a";
   };
 
   propagatedBuildInputs = [ docutils six sphinx ];
diff --git a/nixpkgs/pkgs/development/python-modules/broadlink/default.nix b/nixpkgs/pkgs/development/python-modules/broadlink/default.nix
index dcb1368f4116..2418d282ce0a 100644
--- a/nixpkgs/pkgs/development/python-modules/broadlink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/broadlink/default.nix
@@ -1,25 +1,29 @@
-{ lib, fetchPypi, buildPythonPackage
-, cryptography, pyaes, pycrc }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cryptography
+}:
 
 buildPythonPackage rec {
   pname = "broadlink";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "637dabc6f47b283b72bc521322554462da7a247f04614e458d65df8574d03a41";
+    sha256 = "bfd1ff007d0d1187c17ae52be938afc8137fbd1ed6a794426e975df10d167571";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace pyaes==1.6.0 pyaes
-    '';
-
-  propagatedBuildInputs = [ cryptography pyaes pycrc ];
+  propagatedBuildInputs = [
+    cryptography
+  ];
 
   # no tests available
   doCheck = false;
 
+  pythonImportsCheck = [
+    "broadlink"
+  ];
+
   meta = with lib; {
     description = "Python API for controlling Broadlink IR controllers";
     homepage =  "https://github.com/mjg59/python-broadlink";
diff --git a/nixpkgs/pkgs/development/python-modules/brother/default.nix b/nixpkgs/pkgs/development/python-modules/brother/default.nix
index 3e86aac02f1f..e4f9d63bd6b1 100644
--- a/nixpkgs/pkgs/development/python-modules/brother/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/brother/default.nix
@@ -1,25 +1,33 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
 , pysnmp
-, asynctest, pytestcov, pytestrunner, pytest-asyncio, pytest-trio, pytest-tornasync }:
+, pytest-asyncio
+, pytest-error-for-skips
+, pytest-runner
+, pytest-tornasync
+, pytest-trio
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "brother";
-  version = "0.2.1";
+  version = "0.2.2";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "bieniu";
     repo = pname;
     rev = version;
-    sha256 = "sha256-yOloGkOVhXcTt0PAjf3yWUItN1okO94DndRFsImiuz4=";
+    sha256 = "sha256-vIefcL3K3ZbAUxMFM7gbbTFdrnmufWZHcq4OA19SYXE=";
   };
 
-  # pytest-error-for-skips is not packaged
   postPatch = ''
     substituteInPlace pytest.ini \
-      --replace " --error-for-skips" ""
-    substituteInPlace setup.py \
-      --replace "\"pytest-error-for-skips\"" ""
+      --replace "--cov --cov-report term-missing " ""
+    substituteInPlace requirements-test.txt \
+      --replace "pytest-cov" ""
   '';
 
   propagatedBuildInputs = [
@@ -27,16 +35,18 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    asynctest
-    pytestcov
-    pytestrunner
     pytest-asyncio
-    pytest-trio
+    pytest-error-for-skips
+    pytest-runner
     pytest-tornasync
+    pytest-trio
+    pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "brother" ];
+
   meta = with lib; {
-    description = "Python wrapper for getting data from Brother laser and inkjet printers via SNMP.";
+    description = "Python wrapper for getting data from Brother laser and inkjet printers via SNMP";
     homepage = "https://github.com/bieniu/brother";
     license = licenses.asl20;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/build/default.nix b/nixpkgs/pkgs/development/python-modules/build/default.nix
index 46c3bea0b8c5..b5dce09d516f 100644
--- a/nixpkgs/pkgs/development/python-modules/build/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/build/default.nix
@@ -1,25 +1,29 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, filelock
 , flit-core
-, toml
-, pep517
-, packaging
+, importlib-metadata
 , isPy3k
-, typing
+, packaging
+, pep517
+, pytest-mock
+, pytest-xdist
+, pytestCheckHook
 , pythonOlder
-, importlib-metadata
+, toml
+, typing
 }:
 
 buildPythonPackage rec {
   pname = "build";
-  version = "0.1.0";
+  version = "0.3.0";
 
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d6m21lijwm04g50nwgsgj7x3vhblzw7jv05ah8psqgzk20bbch8";
+    sha256 = "sha256-DrlbLI13DXxMm5LGjCJ8NQu/ZfPsg1UazpCXwYzBX90=";
   };
 
   nativeBuildInputs = [
@@ -36,8 +40,25 @@ buildPythonPackage rec {
     importlib-metadata
   ];
 
-  # No tests in archive
-  doCheck = false;
+  checkInputs = [
+    filelock
+    pytestCheckHook
+    pytest-mock
+    pytest-xdist
+  ];
+
+  disabledTests = [
+    "test_isolation"
+    "test_isolated_environment_install"
+    "test_default_pip_is_never_too_old"
+    "test_build_isolated - StopIteration"
+    "test_build_raises_build_exception"
+    "test_build_raises_build_backend_exception"
+    "test_projectbuilder.py"
+    "test_projectbuilder.py"
+  ];
+
+  pythonImportsCheck = [ "build" ];
 
   meta = with lib; {
     description = "Simple, correct PEP517 package builder";
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/default.nix b/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
index f4c5bfb16221..52a43d0d1137 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
@@ -1,15 +1,15 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, makeWrapper, isPy3k,
-  python, twisted, jinja2, zope_interface, future, sqlalchemy,
-  sqlalchemy_migrate, dateutil, txaio, autobahn, pyjwt, pyyaml, treq,
+  python, twisted, jinja2, zope_interface, sqlalchemy,
+  sqlalchemy_migrate, dateutil, txaio, autobahn, pyjwt, pyyaml, unidiff, treq,
   txrequests, pypugjs, boto3, moto, mock, python-lz4, setuptoolsTrial,
   isort, pylint, flake8, buildbot-worker, buildbot-pkg, buildbot-plugins,
-  parameterized, git, openssh, glibcLocales, nixosTests }:
+  parameterized, git, openssh, glibcLocales, ldap3, nixosTests }:
 
 let
   withPlugins = plugins: buildPythonPackage {
     name = "${package.name}-with-plugins";
     phases = [ "installPhase" "fixupPhase" ];
-    buildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
     propagatedBuildInputs = plugins ++ package.propagatedBuildInputs;
 
     installPhase = ''
@@ -25,11 +25,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "2.10.1";
+    version = "3.1.0";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0jmgpvgn36kfc1sa27a1l1g26dawhl99a1wl8gn4ajbcbcvc2pkh";
+      sha256 = "1b9m9l8bz2slkrq0l5z8zd8pd0js5w4k7dam8bdp00kv3aln4si9";
     };
 
     propagatedBuildInputs = [
@@ -44,6 +44,7 @@ let
       autobahn
       pyjwt
       pyyaml
+      unidiff
     ]
       # tls
       ++ twisted.extras.tls;
@@ -67,6 +68,9 @@ let
       git
       openssh
       glibcLocales
+      # optional dependency that was accidentally made required for tests
+      # https://github.com/buildbot/buildbot/pull/5857
+      ldap3
     ];
 
     patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix b/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
index f3dc0440ac5c..4c17eb2b6e53 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ymqkjz1zk4gs0hkxjh07napc4k24xxb8f3pganw27fca60xcii0";
+    sha256 = "0bv1qq4cf24cklxfqfnkhjb6w4xqcp3afdcan75n6v7mnwqxyyvr";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix b/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
index ed2f363901e1..042bddc1d124 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0x2k95lwx2gz2zj2ys646qiylhyqzlbiqf1k3q1l8w1wlggwv3xp";
+      sha256 = "1a40fbmbf4gb0hgpr40yr9fb17ynxwi6vj8hvv3mm1fm9nqiggm1";
     };
 
     # Remove unneccessary circular dependency on buildbot
@@ -34,7 +34,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0fpam6x8x207la1xrr8m45yx35r646iizrs4gsaghlysmr95jb3i";
+      sha256 = "1fcm4h489sb5a1hk82y1a8575s4k6qd82qkfbm2q5gd14bdvysb0";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -56,7 +56,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0ari338hmi1bb1pln3mxv4k9aclbcby6z3km61wg3va511qhrrbq";
+      sha256 = "1qw9g2maixlcm5l1kpmc721b2p4b7adw5rsimlqcjz96mjya7acj";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -78,7 +78,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0a5nrklyzfasaa119y4ivr7449rvsgifpkyravinacrl1g9phlls";
+      sha256 = "1q0fm2h4alcck6g8fwwd42jsmkw3gdy9xmw1p78xnvk5dgs6cf9c";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -100,7 +100,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0rris2p7ic9p9ms3qcczia4nn5mb1yx2gv5mlnmg2yligjad2jaf";
+      sha256 = "0n8q607rl1qs012gpkxpq1n7ny8306n4vr3hjlz96pm60a7j7904";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix b/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
index 02139d15e75a..242849e2c79e 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
@@ -7,7 +7,7 @@ buildPythonPackage (rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10ap7jlxs9vcmnyafr62mxlgsp709165nw55xmv9sw18r7m8wsm6";
+    sha256 = "0n5p9x9gz276nv1m8vn3d74jfbd35gff332cjxxqvabk06iqcjp6";
   };
 
   propagatedBuildInputs = [ twisted future ];
diff --git a/nixpkgs/pkgs/development/python-modules/buildout-nix/default.nix b/nixpkgs/pkgs/development/python-modules/buildout-nix/default.nix
index 7f7afd67e7e0..834dd42bc087 100644
--- a/nixpkgs/pkgs/development/python-modules/buildout-nix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildout-nix/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "zc.buildout";
-  version = "2.13.3";
+  version = "2.13.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dyc5g3yv7wm3hf3fcsh6y1wivzjj1bspafr5qqb653z9a31lsfn";
+    sha256 = "b978b2f9317b317ee4191f78fcc4f05b1ac41bdaaae47f0956f14c8285feef63";
   };
 
   patches = [ ./nix.patch ];
diff --git a/nixpkgs/pkgs/development/python-modules/buildout/default.nix b/nixpkgs/pkgs/development/python-modules/buildout/default.nix
index a9fe66a37ea2..796eaa18259f 100644
--- a/nixpkgs/pkgs/development/python-modules/buildout/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildout/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "zc.buildout";
-  version = "2.13.3";
+  version = "2.13.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dyc5g3yv7wm3hf3fcsh6y1wivzjj1bspafr5qqb653z9a31lsfn";
+    sha256 = "b978b2f9317b317ee4191f78fcc4f05b1ac41bdaaae47f0956f14c8285feef63";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/bx-python/default.nix b/nixpkgs/pkgs/development/python-modules/bx-python/default.nix
index 57ace67d3f26..aa1e3d1d8648 100644
--- a/nixpkgs/pkgs/development/python-modules/bx-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bx-python/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "bx-python";
-  version = "0.8.9";
+  version = "0.8.11";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "bxlab";
     repo = "bx-python";
     rev = "v${version}";
-    sha256 = "0bsqnw8rv08586wksvx2a8dawvhyzvz5pzsh9y3217b6wxq98dnq";
+    sha256 = "0cz5vgw19hmkcg689vr540q2gl2lb3xcf1lphm7zbfp8wmypcadm";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/nixpkgs/pkgs/development/python-modules/cachetools/default.nix b/nixpkgs/pkgs/development/python-modules/cachetools/default.nix
index 120fd5df124b..a160c5ea94c5 100644
--- a/nixpkgs/pkgs/development/python-modules/cachetools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cachetools/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, isPy27
 , fetchFromGitHub
 , pytestCheckHook
 }:
@@ -8,6 +9,8 @@ buildPythonPackage rec {
   pname = "cachetools";
   version = "4.2.1";
 
+  disabled = isPy27;
+
   src = fetchFromGitHub {
     owner = "tkem";
     repo = pname;
diff --git a/nixpkgs/pkgs/development/python-modules/cadquery/default.nix b/nixpkgs/pkgs/development/python-modules/cadquery/default.nix
index 72334390bc3e..bc8cbe1f2c82 100644
--- a/nixpkgs/pkgs/development/python-modules/cadquery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cadquery/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, toPythonModule
 , isPy3k
 , pythonOlder
 , pythonAtLeast
@@ -23,7 +24,7 @@
 }:
 
 let
-  pythonocc-core-cadquery = stdenv.mkDerivation {
+  pythonocc-core-cadquery = toPythonModule (stdenv.mkDerivation {
     pname = "pythonocc-core-cadquery";
     version = "0.18.2";
 
@@ -61,7 +62,7 @@ let
       "-DSMESH_LIB_PATH=${smesh}/lib"
       "-DPYTHONOCC_WRAP_SMESH=TRUE"
     ];
-  };
+  });
 
 in
   buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/development/python-modules/cairocffi/default.nix b/nixpkgs/pkgs/development/python-modules/cairocffi/default.nix
index 574aeefa7fca..5c561af2f172 100644
--- a/nixpkgs/pkgs/development/python-modules/cairocffi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cairocffi/default.nix
@@ -12,6 +12,7 @@
 , glibcLocales
 , cairo
 , cffi
+, numpy
 , withXcffib ? false, xcffib
 , python
 , glib
@@ -19,8 +20,8 @@
 }@args:
 
 import ./generic.nix ({
-  version = "1.1.0";
-  sha256 = "1nq53f5jipgy9jgyfxp43j40qfbmrhgn1cj8bp5rrb3liy3wbh7i";
+  version = "1.2.0";
+  sha256 = "sha256-mpebUAxkyBef7ChvM36P5kTsovLNBYYM4LYtJfIuoUA=";
   dlopen_patch = ./dlopen-paths.patch;
   disabled = pythonOlder "3.5";
   inherit withXcffib;
diff --git a/nixpkgs/pkgs/development/python-modules/cairocffi/generic.nix b/nixpkgs/pkgs/development/python-modules/cairocffi/generic.nix
index ee795d80dcef..8b674f3baaa8 100644
--- a/nixpkgs/pkgs/development/python-modules/cairocffi/generic.nix
+++ b/nixpkgs/pkgs/development/python-modules/cairocffi/generic.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     fontDirectories = [ freefont_ttf ];
   };
 
-  checkInputs = [ pytest pytestrunner glibcLocales ];
+  checkInputs = [ numpy pytest pytestrunner glibcLocales ];
   propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix b/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix
index 53f3ebc0c088..5e8e8d985aab 100644
--- a/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix
@@ -1,25 +1,44 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, fetchpatch
-, cairocffi, cssselect2, defusedxml, pillow, tinycss2
-, pytest, pytestrunner, pytestcov, pytest-flake8, pytest-isort }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, cairocffi
+, cssselect2
+, defusedxml
+, pillow
+, tinycss2
+, pytestCheckHook
+, pytest-runner
+, pytest-flake8
+, pytest-isort
+}:
 
 buildPythonPackage rec {
   pname = "CairoSVG";
-  version = "2.5.0";
-
+  version = "2.5.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3fc50d10f0cbef53b3ee376a97a88d81bbd9e2f190f7e63de08431a1a08e9afa";
+    sha256 = "sha256-sLmSnPXboAUXjXRqgDb88AJVUPSYylTbYYczIjhHg7w=";
   };
 
+  nativeBuildInputs = [ pytest-runner ];
+
   propagatedBuildInputs = [ cairocffi cssselect2 defusedxml pillow tinycss2 ];
 
-  checkInputs = [ pytest pytestrunner pytestcov pytest-flake8 pytest-isort ];
+  checkInputs = [ pytestCheckHook pytest-flake8 pytest-isort ];
+
+  pytestFlagsArray = [
+    "cairosvg/test_api.py"
+  ];
+
+  pythonImportsCheck = [ "cairosvg" ];
 
   meta = with lib; {
     homepage = "https://cairosvg.org";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Plus;
     description = "SVG converter based on Cairo";
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/caldav/default.nix b/nixpkgs/pkgs/development/python-modules/caldav/default.nix
index 3888bb7ec65a..2b50b5f2966a 100644
--- a/nixpkgs/pkgs/development/python-modules/caldav/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/caldav/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "caldav";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "python-caldav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1shfj67kq6qzd0ngyfk09hpzfggybcfxv5s7hqs87nq9l51bssv8";
+    sha256 = "11q3svns3a2ywfci739krxbh67cx691qja772wq22606blyygyjy";
   };
 
   nativeBuildInputs = lib.optionals (pythonOlder "3.5") [ mock ];
@@ -34,6 +34,10 @@ buildPythonPackage rec {
     tzlocal
   ];
 
+  checkPhase = ''
+    nosetests tests
+  '';
+
   # xandikos and radicale is only a optional test dependency, not available for python3
   postPatch = ''
     substituteInPlace setup.py \
@@ -45,7 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "This project is a CalDAV (RFC4791) client library for Python.";
-    homepage = "https://pythonhosted.org/caldav/";
+    homepage = "https://github.com/python-caldav/caldav";
     license = licenses.asl20;
     maintainers = with maintainers; [ marenz ];
     #broken = true; # requires radicale which is not packaged yet
diff --git a/nixpkgs/pkgs/development/python-modules/canopen/default.nix b/nixpkgs/pkgs/development/python-modules/canopen/default.nix
index 8925c1cc8a41..51a6d0d11c0f 100644
--- a/nixpkgs/pkgs/development/python-modules/canopen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/canopen/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "canopen";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15d49f1f71e9989dde6e3b75fb8445c76bd223064dfc0ac629fe9ecb0e21fba9";
+    sha256 = "18d01d56ff0023795cb336cafd4810a76cf402b98b42139b201fa8c5d4ba8c06";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/capstone/default.nix b/nixpkgs/pkgs/development/python-modules/capstone/default.nix
index d7df0bee5ca9..af6b9031e66e 100644
--- a/nixpkgs/pkgs/development/python-modules/capstone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/capstone/default.nix
@@ -1,9 +1,10 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , buildPythonPackage
-, fetchPypi
+, capstone
 , fetchpatch
+, fetchPypi
 , setuptools
-, capstone
 }:
 
 buildPythonPackage rec {
@@ -16,6 +17,7 @@ buildPythonPackage rec {
   postPatch = ''
     ln -s ${capstone}/lib/libcapstone${stdenv.targetPlatform.extensions.sharedLibrary} prebuilt/
     ln -s ${capstone}/lib/libcapstone.a prebuilt/
+    substituteInPlace setup.py --replace manylinux1 manylinux2014
   '';
 
   propagatedBuildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/cartopy/default.nix b/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
index f41aa6985da9..7e3e32067577 100644
--- a/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
@@ -54,6 +54,7 @@ buildPythonPackage rec {
     license = licenses.lgpl3;
     homepage = "https://scitools.org.uk/cartopy/docs/latest/";
     maintainers = with maintainers; [ mredaelli ];
+    # following tests fail: test_eccentric_globe and test_ellipse_globe
+    broken = true;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/casbin/default.nix b/nixpkgs/pkgs/development/python-modules/casbin/default.nix
index 7e26181cf552..ea6e2ed079ab 100644
--- a/nixpkgs/pkgs/development/python-modules/casbin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/casbin/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "0.16.2";
+  version = "0.19.1";
 
   disabled = isPy27;
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "pycasbin";
     rev = "v${version}";
-    sha256 = "0jan4xikyi1p92rsir8camc6ify81wnd9l57v1pgmjf5fgb5r2w8";
+    sha256 = "0fkkz5k3h4pkxacrbacamnh4yfghxgajdzzmdlck7i4v5x06vz8f";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cbor2/default.nix b/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
index f793ecfae372..776cc4d38e98 100644
--- a/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
@@ -22,6 +23,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  # https://github.com/agronholm/cbor2/issues/99
+  disabledTests = lib.optionals stdenv.is32bit [
+    "test_huge_truncated_bytes"
+    "test_huge_truncated_string"
+  ];
+
   pythonImportsCheck = [ "cbor2" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/celery/default.nix b/nixpkgs/pkgs/development/python-modules/celery/default.nix
index 3ba06c92a5ce..f0fe81f85e28 100644
--- a/nixpkgs/pkgs/development/python-modules/celery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/celery/default.nix
@@ -1,15 +1,15 @@
 { lib, buildPythonPackage, fetchPypi
-, billiard, click, click-didyoumean, click-repl, kombu, pytz, vine
+, billiard, click, click-didyoumean, click-plugins, click-repl, kombu, pytz, vine
 , boto3, case, moto, pytest, pytest-celery, pytest-subtests, pytest-timeout
 }:
 
 buildPythonPackage rec {
   pname = "celery";
-  version = "5.0.2";
+  version = "5.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "012c814967fe89e3f5d2cf49df2dba3de5f29253a7f4f2270e8fce6b901b4ebf";
+    sha256 = "f4efebe6f8629b0da2b8e529424de376494f5b7a743c321c8a2ddc2b1414921c";
   };
 
   postPatch = ''
@@ -17,7 +17,7 @@ buildPythonPackage rec {
       --replace "moto==1.3.7" moto
   '';
 
-  propagatedBuildInputs = [ billiard click click-didyoumean click-repl kombu pytz vine ];
+  propagatedBuildInputs = [ billiard click click-didyoumean click-plugins click-repl kombu pytz vine ];
 
   checkInputs = [ boto3 case moto pytest pytest-celery pytest-subtests pytest-timeout ];
 
@@ -38,5 +38,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/celery/celery/";
     description = "Distributed task queue";
     license = licenses.bsd3;
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/censys/default.nix b/nixpkgs/pkgs/development/python-modules/censys/default.nix
index 561d9651fed8..23c883a48a4c 100644
--- a/nixpkgs/pkgs/development/python-modules/censys/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/censys/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "censys";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "censys";
     repo = "censys-python";
-    rev = "v${version}";
-    sha256 = "0vvd13g48i4alnqil98zc09zi5kv6l2s3kdfyg5syjxvq4lfd476";
+    rev = version;
+    sha256 = "06jwk0ps80fjzbsy24qn5bsggfpgn4ccjzjz65cdh0ap1mfvh5jf";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/certbot/default.nix b/nixpkgs/pkgs/development/python-modules/certbot/default.nix
index 129ef932bdc5..7ae6a3fa0b8f 100644
--- a/nixpkgs/pkgs/development/python-modules/certbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certbot/default.nix
@@ -3,19 +3,19 @@
 , python, runCommand
 , fetchFromGitHub
 , ConfigArgParse, acme, configobj, cryptography, distro, josepy, parsedatetime, pyRFC3339, pyopenssl, pytz, requests, six, zope_component, zope_interface
-, dialog, mock, gnureadline
-, pytest_xdist, pytest, pytestCheckHook, dateutil
+, dialog, gnureadline
+, pytest_xdist, pytestCheckHook, dateutil
 }:
 
 buildPythonPackage rec {
   pname = "certbot";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lMQkVc2UzC5GqEy88rcaJ74CaT3+YWveNDCXql/McRM=";
+    sha256 = "1cwhhybj2fjalhhyd184ndn3bid3qib1yy5a93m146cqqgwpw4j6";
   };
 
   sourceRoot = "source/${pname}";
@@ -37,16 +37,19 @@ buildPythonPackage rec {
     zope_interface
   ];
 
-  buildInputs = [ dialog mock gnureadline ];
+  buildInputs = [ dialog gnureadline ];
 
   checkInputs = [
     dateutil
-    pytest
     pytestCheckHook
     pytest_xdist
   ];
 
-  pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ];
+  pytestFlagsArray = [
+    "-o cache_dir=$(mktemp -d)"
+    # See https://github.com/certbot/certbot/issues/8746
+    "-W ignore::ResourceWarning"
+  ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/python-modules/certvalidator/default.nix b/nixpkgs/pkgs/development/python-modules/certvalidator/default.nix
new file mode 100644
index 000000000000..8f53bd9805ba
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/certvalidator/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, asn1crypto, oscrypto
+, cacert
+}:
+
+buildPythonPackage rec {
+  pname = "certvalidator";
+  version = "0.11.1";
+
+  src = fetchFromGitHub {
+    owner = "wbond";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-yVF7t4FuU3C9fDg67JeM7LWZZh/mv5F4EKmjlO4AuBY=";
+  };
+
+  propagatedBuildInputs = [ asn1crypto oscrypto ];
+
+  checkInputs = [ cacert ];
+  checkPhase = ''
+    # Tests are run with a custom executor/loader
+    # The regex to skip specific tests relies on negative lookahead of regular expressions
+    # We're skipping the few tests that rely on the network, fetching CRLs, OCSP or remote certificates
+    python -c 'import dev.tests; dev.tests.run("^(?!.*test_(basic_certificate_validator_tls|fetch|revocation|build_path)).*$")'
+  '';
+  pythonImportsCheck = [ "certvalidator" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/wbond/certvalidator";
+    description = "Validates X.509 certificates and paths";
+    license = licenses.mit;
+    maintainers = with maintainers; [ baloo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cffi/default.nix b/nixpkgs/pkgs/development/python-modules/cffi/default.nix
index 3dcd6a996cb9..afd9cfdc2950 100644
--- a/nixpkgs/pkgs/development/python-modules/cffi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cffi/default.nix
@@ -2,11 +2,11 @@
 
 if isPyPy then null else buildPythonPackage rec {
   pname = "cffi";
-  version = "1.14.4";
+  version = "1.14.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a465cbe98a7fd391d47dce4b8f7e5b921e6cd805ef421d04f5f66ba8f06086c";
+    sha256 = "fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/python-modules/chalice/default.nix b/nixpkgs/pkgs/development/python-modules/chalice/default.nix
index 5445157b8530..9115b1d57c3f 100644
--- a/nixpkgs/pkgs/development/python-modules/chalice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chalice/default.nix
@@ -52,8 +52,7 @@ buildPythonPackage rec {
   postPatch = ''
     sed -i setup.py -e "/pip>=/c\'pip',"
     substituteInPlace setup.py \
-      --replace 'typing==3.6.4' 'typing' \
-      --replace 'attrs>=19.3.0,<20.3.0' 'attrs'
+      --replace 'typing==3.6.4' 'typing'
   '';
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix b/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
index 95bb9660d4cf..de833e18be8e 100644
--- a/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
@@ -1,4 +1,14 @@
-{ lib, buildPythonPackage, fetchPypi, pep517, toml, mock, breezy, git, build }:
+{ lib
+, breezy
+, build
+, buildPythonPackage
+, fetchPypi
+, git
+, mock
+, pep517
+, pytestCheckHook
+, toml
+}:
 
 buildPythonPackage rec {
   pname = "check-manifest";
@@ -14,9 +24,20 @@ buildPythonPackage rec {
     substituteInPlace tests.py --replace "test_build_sdist" "no_test_build_sdist"
   '';
 
-  propagatedBuildInputs = [ build pep517 toml ];
+  propagatedBuildInputs = [
+    build
+    pep517
+    toml
+  ];
 
-  checkInputs = [ mock breezy git ];
+  checkInputs = [
+    breezy
+    git
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "check_manifest" ];
 
   meta = with lib; {
     homepage = "https://github.com/mgedmin/check-manifest";
diff --git a/nixpkgs/pkgs/development/python-modules/cheroot/default.nix b/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
index e5c7c23e2e43..4d6c71a7e2a5 100644
--- a/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
@@ -73,7 +73,7 @@ buildPythonPackage rec {
     "bind_addr_unix"
   ];
 
-  disabledTestFiles = [
+  disabledTestPaths = [
     # avoid attempting to use 3 packages not available on nixpkgs
     # (jaraco.apt, jaraco.context, yg.lockfile)
     "cheroot/test/test_wsgi.py"
diff --git a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
index 8a915d520e5c..9a01a030e685 100644
--- a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
@@ -18,6 +18,26 @@ buildPythonPackage rec {
     sha256 = "16f410izp2c4qhn4n3l5l3qirmkf43h2amjqms8hkl0shgfqwq2n";
   };
 
+  patches = [
+    # 1/3 Fix compatibility with pytest 6. Will be part of the next release after 18.6
+    (fetchpatch {
+      url = "https://github.com/cherrypy/cherrypy/pull/1897/commits/59c0e19d7df8680e36afc96756dce72435121448.patch";
+      sha256 = "1jachbvp505gndccdhny0c3grzdrmvmbzq4kw55jx93ay94ni6p0";
+    })
+    # 2/3 Fix compatibility with pytest 6. Will be part of the next release after 18.6
+    (fetchpatch {
+      url = "https://github.com/cherrypy/cherrypy/pull/1897/commits/4a6287b73539adcb7b0ae72d69644a1ced1f7eaa.patch";
+      sha256 = "0nz40qmgxknkbjsdzfzcqfxdsmsxx3v104fb0h04yvs76mqvw3i4";
+    })
+    # 3/3 Fix compatibility with pytest 6. Will be part of the next release after 18.6
+    (fetchpatch {
+      url = "https://github.com/cherrypy/cherrypy/commit/3bae7f06868553b006915f05ff14d86163f59a7d.patch";
+      sha256 = "1z0bv23ybyw87rf1i8alsdi3gc2bzmdj9d0kjsghdkvi3zdp4n8q";
+    })
+  ];
+
+  nativeBuildInputs = [ setuptools_scm ];
+
   propagatedBuildInputs = [
     # required
     cheroot portend more-itertools zc_lockfile
@@ -26,8 +46,6 @@ buildPythonPackage rec {
     routes
   ];
 
-  nativeBuildInputs = [ setuptools_scm ];
-
   checkInputs = [
     objgraph pytest pytestcov pathpy requests_toolbelt pytest-services
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/chirpstack-api/default.nix b/nixpkgs/pkgs/development/python-modules/chirpstack-api/default.nix
new file mode 100644
index 000000000000..a019dd651999
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/chirpstack-api/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, grpcio
+}:
+
+buildPythonPackage rec {
+  pname = "chirpstack-api";
+  version = "3.9.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08djidy3fyhghyzvndcjas3hb1s9d7719gvmgbl8bzxjm4h2c433";
+  };
+
+  propagatedBuildInputs = [
+    google-api-core
+    grpcio
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "chirpstack_api" ];
+
+  meta = with lib; {
+    description = "ChirpStack gRPC API message and service wrappers for Python";
+    homepage = "https://github.com/brocaar/chirpstack-api";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cirq/default.nix b/nixpkgs/pkgs/development/python-modules/cirq/default.nix
index ebc0eb51df43..f0b576299b21 100644
--- a/nixpkgs/pkgs/development/python-modules/cirq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cirq/default.nix
@@ -3,8 +3,6 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, fetchpatch
-, freezegun
 , google-api-core
 , matplotlib
 , networkx
@@ -15,8 +13,10 @@
 , scipy
 , sortedcontainers
 , sympy
+, tqdm
 , typing-extensions
   # test inputs
+, freezegun
 , pytestCheckHook
 , pytest-asyncio
 , pytest-benchmark
@@ -28,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "cirq";
-  version = "0.9.1";
+  version = "0.10.0";
 
   disabled = pythonOlder "3.6";
 
@@ -36,42 +36,36 @@ buildPythonPackage rec {
     owner = "quantumlib";
     repo = "cirq";
     rev = "v${version}";
-    sha256 = "0mygvpq7kzga8l1w2jvwv9a2n3akpss45hrx250gdrnqjp6xrw64";
+    sha256 = "0xinml44n2lfl0q2lb2apmn69gsszlwim83082f66vyk0gpwd4lr";
   };
 
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "freezegun~=0.3.15" "freezegun" \
       --replace "matplotlib~=3.0" "matplotlib" \
       --replace "networkx~=2.4" "networkx" \
       --replace "numpy~=1.16" "numpy" \
-      --replace "protobuf~=3.12.0" "protobuf"
-
-    # Fix serialize_sympy_constants test by allowing small errors in pi
-    substituteInPlace cirq/google/arg_func_langs_test.py \
-      --replace "'float_value': float(str(np.float32(sympy.pi)))" "'float_value': pytest.approx(float(str(np.float32(sympy.pi))))"
+      --replace "protobuf~=3.13.0" "protobuf"
   '';
 
   propagatedBuildInputs = [
-    freezegun
     google-api-core
-    numpy
     matplotlib
     networkx
+    numpy
     pandas
     protobuf
     requests
     scipy
     sortedcontainers
     sympy
+    tqdm
     typing-extensions
   ];
 
-  doCheck = true;
   # pythonImportsCheck = [ "cirq" "cirq.Circuit" ];  # cirq's importlib hook doesn't work here
-  dontUseSetuptoolsCheck = true;
   checkInputs = [
     pytestCheckHook
+    freezegun
     pytest-asyncio
     pytest-benchmark
     ply
@@ -85,9 +79,7 @@ buildPythonPackage rec {
     "--ignore=cirq/contrib/"  # requires external (unpackaged) python packages, so untested.
     "--benchmark-disable" # Don't need to run benchmarks when packaging.
   ];
-  disabledTests = [
-    "test_convert_to_ion_gates" # fails on some systems due to rounding error, 0.75 != 0.750...2
-  ] ++ lib.optionals stdenv.isAarch64 [
+  disabledTests = lib.optionals stdenv.isAarch64 [
     # Seem to fail due to math issues on aarch64?
     "expectation_from_wavefunction"
     "test_single_qubit_op_to_framed_phase_form_output_on_example_case"
diff --git a/nixpkgs/pkgs/development/python-modules/ciscomobilityexpress/default.nix b/nixpkgs/pkgs/development/python-modules/ciscomobilityexpress/default.nix
index 86a2bd8aa88e..d48ba03ad537 100644
--- a/nixpkgs/pkgs/development/python-modules/ciscomobilityexpress/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ciscomobilityexpress/default.nix
@@ -1,20 +1,34 @@
-{ buildPythonPackage, fetchPypi, lib, requests }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, python
+}:
 
 buildPythonPackage rec {
   pname = "ciscomobilityexpress";
-  version = "1.0.0";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fd3fe893d8a44f5ac1d46580af88e07f1066e73744763aca4ef2226f87d575ff";
+    sha256 = "d8787245598e8371a83baa4db1df949d8a942c43f13454fa26ee3b09c3ccafc0";
   };
 
   propagatedBuildInputs = [ requests ];
 
-  meta = {
+  # tests directory is set up, but has no tests
+  checkPhase = ''
+    ${python.interpreter} -m unittest
+  '';
+
+  pythonImportsCheck = [
+    "ciscomobilityexpress"
+  ];
+
+  meta = with lib; {
     description = "Module to interact with Cisco Mobility Express APIs to fetch connected devices";
-    homepage = "https://pypi.python.org/pypi/${pname}/";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ uvnikita ];
+    homepage = "https://github.com/fbradyirl/ciscomobilityexpress";
+    license = licenses.mit;
+    maintainers = with maintainers; [ uvnikita ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix b/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
index eaf89948e8f2..e15a062a8939 100644
--- a/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
@@ -4,31 +4,30 @@
 , ecdsa
 , hidapi
 , fetchPypi
-, pytest
 , pyaes
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "ckcc-protocol";
-  version = "1.0.2";
+  version = "1.1.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zpn3miyapskw6s71v614pmga5zfain9j085axm9v50b8r71xh1i";
+    sha256 = "b660225ac06fc06ad17b33ece428126eef785388450e14313f72d25d4082c5ab";
   };
 
-  checkInputs = [
-    pytest
-  ];
-
   propagatedBuildInputs = [ click ecdsa hidapi pyaes ];
 
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "ckcc" ];
+
   meta = with lib; {
     description = "Communicate with your Coldcard using Python";
     homepage = "https://github.com/Coldcard/ckcc-protocol";
-    license = licenses.gpl3;
+    license = licenses.mit;
     maintainers = [ maintainers.hkjn ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/claripy/default.nix b/nixpkgs/pkgs/development/python-modules/claripy/default.nix
index 1812ddff9520..61b72e8cf31f 100644
--- a/nixpkgs/pkgs/development/python-modules/claripy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/claripy/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.0.5739";
+  version = "9.0.5903";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1aym01f99zwb9w8qwy8gz631ka7g6akzdld0m4ykc5ip0rq70mki";
+    sha256 = "sha256-NIKWUx1VT5TjnuqppuT6VzwNRwcBLc0xI5k3F2Nmj8A=";
   };
 
   # Use upstream z3 implementation
diff --git a/nixpkgs/pkgs/development/python-modules/cliff/default.nix b/nixpkgs/pkgs/development/python-modules/cliff/default.nix
index 33a129d287ef..54cc75341717 100644
--- a/nixpkgs/pkgs/development/python-modules/cliff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cliff/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "cliff";
-  version = "3.6.0";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a3f4fa67eeafbcfa7cf9fe4b1755d410876528e1d0d115740db00b50a1250272";
+    sha256 = "389c81960de13f05daf1cbd546f33199e86c518ba4266c79ec7a153a280980ea";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/clifford/default.nix b/nixpkgs/pkgs/development/python-modules/clifford/default.nix
index 85ed160413e7..b26689cf38cc 100644
--- a/nixpkgs/pkgs/development/python-modules/clifford/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clifford/default.nix
@@ -46,11 +46,6 @@ buildPythonPackage rec {
     ipython
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "'numba==0.43'" "'numba'"
-  '';
-
   # avoid collecting local files
   preCheck = ''
     cd clifford/test
@@ -68,5 +63,7 @@ buildPythonPackage rec {
     homepage = "https://clifford.readthedocs.io";
     license = licenses.bsd3;
     maintainers = [ maintainers.costrouc ];
+    # many TypeError's in tests
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/clldutils/default.nix b/nixpkgs/pkgs/development/python-modules/clldutils/default.nix
index b9ffd35bf96d..96e6b86c1507 100644
--- a/nixpkgs/pkgs/development/python-modules/clldutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clldutils/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "clldutils";
-  version = "3.6.0";
+  version = "3.7.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "clld";
     repo = pname;
     rev = "v${version}";
-    sha256 = "10jcd2x99z5ym2aki92c54caw97b3xgrkjj83qpln26hbdwpaz99";
+    sha256 = "13shas7krf7j04gqxjn09ipy318hmrp1s3b5d576d5r1xfxakam4";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/cmarkgfm/default.nix b/nixpkgs/pkgs/development/python-modules/cmarkgfm/default.nix
index 3c6342f6596f..7379d6dc6c96 100644
--- a/nixpkgs/pkgs/development/python-modules/cmarkgfm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cmarkgfm/default.nix
@@ -1,25 +1,29 @@
-{ lib, buildPythonPackage, fetchPypi, cffi, pytest }:
+{ lib
+, buildPythonPackage
+, cffi
+, fetchPypi
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "cmarkgfm";
-  version = "0.5.0";
+  version = "0.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7a5131a78836e55dcdb1f2c5f17bbaa40e5f83c86a205de1b71a298928e1391f";
+    sha256 = "sha256-tqVJq6Mnq9mG1nSM8hyGN9dBx2hQ5/773vjSi/4TjjI=";
   };
 
   propagatedBuildInputs = [ cffi ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    py.test
-  '';
+  pythonImportsCheck = [ "cmarkgfm" ];
 
   meta = with lib; {
     description = "Minimal bindings to GitHub's fork of cmark";
     homepage = "https://github.com/jonparrott/cmarkgfm";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cmigemo/default.nix b/nixpkgs/pkgs/development/python-modules/cmigemo/default.nix
new file mode 100644
index 000000000000..907e144c86ea
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cmigemo/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchPypi, six, cmigemo, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "cmigemo";
+  version = "0.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09j68kvcskav2cqb7pj12caksmj4wh2lhjp0csq00xpn0wqal4vk";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  preConfigure = ''
+    export LDFLAGS="-L${cmigemo}/lib"
+    export CPPFLAGS="-I${cmigemo}/include"
+    export LD_LIBRARY_PATH="${cmigemo}/lib"
+  '';
+
+  postPatch = ''
+    sed -i 's~dict_path_base = "/usr/share/cmigemo"~dict_path_base = "/${cmigemo}/share/migemo"~g' test/test_cmigemo.py
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "test/" ];
+
+  pythonImportsCheck = [ "cmigemo" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/mooz/python-cmigemo";
+    description = "A pure python binding for C/Migemo";
+    license = licenses.mit;
+    maintainers = with maintainers; [ illustris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix b/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix
index 92af67fa183a..5baa28e4bd7f 100644
--- a/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix
@@ -2,7 +2,6 @@
 , fetchFromGitHub
 , fetchpatch
 , rPackages
-, rWrapper
 , buildPythonPackage
 , biopython
 , numpy
@@ -55,11 +54,6 @@ buildPythonPackage rec {
     rPackages.DNAcopy
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pandas >= 0.20.1, < 0.25.0" "pandas"
-  '';
-
   checkInputs = [ R ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/codecov/default.nix b/nixpkgs/pkgs/development/python-modules/codecov/default.nix
index 924422bf7d4f..2e8cbf29220c 100644
--- a/nixpkgs/pkgs/development/python-modules/codecov/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/codecov/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "codecov";
-  version = "2.1.10";
+  version = "2.1.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d30ad6084501224b1ba699cbf018a340bb9553eb2701301c14133995fdd84f33";
+    sha256 = "6cde272454009d27355f9434f4e49f238c0273b216beda8472a65dc4957f473b";
   };
 
   checkInputs = [ unittest2 ]; # Tests only
diff --git a/nixpkgs/pkgs/development/python-modules/codespell/default.nix b/nixpkgs/pkgs/development/python-modules/codespell/default.nix
index e1aa8252d13b..7427d391c615 100644
--- a/nixpkgs/pkgs/development/python-modules/codespell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/codespell/default.nix
@@ -17,7 +17,7 @@ buildPythonApplication rec {
     export ASPELL_CONF="dict-dir ${aspellDicts.en}/lib/aspell"
   '';
 
-  # tries to run not rully installed script
+  # tries to run not fully installed script
   disabledTests = [ "test_command" ];
 
   pythonImportsCheck = [ "codespell_lib" ];
diff --git a/nixpkgs/pkgs/development/python-modules/coinmarketcap/default.nix b/nixpkgs/pkgs/development/python-modules/coinmarketcap/default.nix
deleted file mode 100644
index 168f75b7f49b..000000000000
--- a/nixpkgs/pkgs/development/python-modules/coinmarketcap/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, requests-cache }:
-
-buildPythonPackage rec {
-  pname = "coinmarketcap";
-  version = "5.0.3";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1cfee31bf330a17cedf188e4e99588e6a4c6c969c93da71f55a9f4ec6a6c216f";
-  };
-
-  propagatedBuildInputs = [ requests-cache ];
-
-  meta = with lib; {
-    description = "A python wrapper around the https://coinmarketcap.com API.";
-    homepage = "https://github.com/barnumbirr/coinmarketcap";
-    license = licenses.asl20;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/colorcet/default.nix b/nixpkgs/pkgs/development/python-modules/colorcet/default.nix
index 6198e4e1b281..207653375144 100644
--- a/nixpkgs/pkgs/development/python-modules/colorcet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colorcet/default.nix
@@ -24,7 +24,6 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    nbsmoke
     pytest
     flake8
     pytest-mpl
diff --git a/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix b/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
index caa783bb8238..8cdd714bf105 100644
--- a/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "coloredlogs";
-  version = "14.0";
+  version = "15.0";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-coloredlogs";
     rev = version;
-    sha256 = "0rnmxwrim4razlv4vi3krxk5lc5ksck6h5374j8avqwplika7q2x";
+    sha256 = "sha256-C1Eo+XrrL3bwhT49KyOE6xjbAHJxn9Qy4s1RR5ERVtA=";
   };
 
   # capturer is broken on darwin / py38, so we skip the test until a fix for
diff --git a/nixpkgs/pkgs/development/python-modules/colorlog/default.nix b/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
index 0740ee33b5f1..daff7bc76d38 100644
--- a/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "colorlog";
-  version = "4.7.2";
+  version = "4.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0lc2r105hxbyh29dsgczdi379lh57gnbj56jsxi5g9rqcihmpl0q";
+    sha256 = "sha256-WbUxYMYJAsQFzewo04NW4J1AaGZZBIiT4CbsvViVFrE=";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/configargparse/default.nix b/nixpkgs/pkgs/development/python-modules/configargparse/default.nix
index d1dcce9699b3..5646bca04736 100644
--- a/nixpkgs/pkgs/development/python-modules/configargparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configargparse/default.nix
@@ -1,20 +1,31 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
-  pname = "ConfigArgParse";
-  version = "1.2.3";
+  pname = "configargparse";
+  version = "1.4";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1p1pzpf5qpf80bfxsx1mbw9blyhhypjvhl3i60pbmhfmhvlpplgd";
+  src = fetchFromGitHub {
+    owner = "bw2";
+    repo = "ConfigArgParse";
+    rev = "v${version}";
+    sha256 = "0x6ar7d8qhr7gb1s8asbhqymg9jd635h7cyczqrbmvm8689zhj1d";
   };
 
-  # no tests in tarball
-  doCheck = false;
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "configargparse" ];
 
   meta = with lib; {
     description = "A drop-in replacement for argparse";
-    homepage = "https://github.com/zorro3/ConfigArgParse";
+    homepage = "https://github.com/bw2/ConfigArgParse";
     license = licenses.mit;
     maintainers = [ maintainers.willibutz ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/configshell/default.nix b/nixpkgs/pkgs/development/python-modules/configshell/default.nix
index a41d077f22df..9f67aacf2d4e 100644
--- a/nixpkgs/pkgs/development/python-modules/configshell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configshell/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "configshell";
-  version = "1.1.28";
+  version = "1.1.29";
 
   src = fetchFromGitHub {
     owner = "open-iscsi";
     repo = "${pname}-fb";
     rev = "v${version}";
-    sha256 = "1ym2hkvmmacgy21wnjwzyrcxyl3sx4bcx4hc51vf4lzcnj589l68";
+    sha256 = "0mjj3c9335sph8rhwww7j4zvhyk896fbmx887vibm89w3jpvjjr9";
   };
 
   propagatedBuildInputs = [ pyparsing six urwid ];
diff --git a/nixpkgs/pkgs/development/python-modules/construct/2.10.54.nix b/nixpkgs/pkgs/development/python-modules/construct/2.10.54.nix
new file mode 100644
index 000000000000..6bb279490ab2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/construct/2.10.54.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+, six, pytestCheckHook, pytest-benchmark, enum34, numpy, arrow, ruamel_yaml
+}:
+
+buildPythonPackage rec {
+  pname   = "construct";
+  version = "2.10.54";
+
+  # no tests in PyPI tarball
+  src = fetchFromGitHub {
+    owner  = pname;
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "1mqspsn6bf3ibvih1zna2glkg8iw7vy5zg9gzg0d1m8zcndk2c48";
+  };
+
+  checkInputs = [ pytestCheckHook pytest-benchmark enum34 numpy arrow ruamel_yaml ];
+
+  disabledTests = lib.optionals stdenv.isDarwin [ "test_multiprocessing" ];
+
+  pytestFlagsArray = [ "--benchmark-disable" ];
+
+  meta = with lib; {
+    description = "Powerful declarative parser (and builder) for binary data";
+    homepage = "https://construct.readthedocs.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/convertdate/2.2.x.nix b/nixpkgs/pkgs/development/python-modules/convertdate/2.2.x.nix
new file mode 100644
index 000000000000..d67f4c5a3449
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/convertdate/2.2.x.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pymeeus
+, pytz
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "convertdate";
+  version = "2.2.2";
+
+  # Tests are not available in the PyPI tarball so use GitHub instead.
+  src = fetchFromGitHub {
+    owner = "fitnr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1xgi7x9b9kxm0q51bqnmwdm5lp8vwhx5yk4d1b23r37spz9dbhw5";
+  };
+
+  propagatedBuildInputs = [
+    pymeeus
+    pytz
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fitnr/convertdate";
+    description = "Utils for converting between date formats and calculating holidays";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jluttine ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/convertdate/default.nix b/nixpkgs/pkgs/development/python-modules/convertdate/default.nix
index f285a74e5449..cc26142d362b 100644
--- a/nixpkgs/pkgs/development/python-modules/convertdate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/convertdate/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, isPy27
 , fetchFromGitHub
 , pymeeus
 , pytz
@@ -8,14 +9,15 @@
 
 buildPythonPackage rec {
   pname = "convertdate";
-  version = "2.3.0";
+  version = "2.3.2";
+  disabled = isPy27;
 
   # Tests are not available in the PyPI tarball so use GitHub instead.
   src = fetchFromGitHub {
     owner = "fitnr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17j188zlp46zmq8qyy4z4f9v25l3zibkwzj8wp4fxqgimjnfj2nr";
+    sha256 = "0k7j59sbqwyi72vcjx5vsh3qb6hxfnkfjkd2i6f6lckdr1bkh7fz";
   };
 
   propagatedBuildInputs = [
@@ -27,6 +29,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "convertdate" ];
+
   meta = with lib; {
     homepage = "https://github.com/fitnr/convertdate";
     description = "Utils for converting between date formats and calculating holidays";
diff --git a/nixpkgs/pkgs/development/python-modules/cornice/default.nix b/nixpkgs/pkgs/development/python-modules/cornice/default.nix
index 6c488a271e25..ba6df4fd24a6 100644
--- a/nixpkgs/pkgs/development/python-modules/cornice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cornice/default.nix
@@ -9,17 +9,18 @@
 
 buildPythonPackage rec {
   pname = "cornice";
-  version = "5.0.3";
+  version = "5.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f971831e90343374b21c0c97d523e23eb09cec41a2a8fc2e85bb5c2585348576";
+    sha256 = "c81cd9429759c0de475f580bbff92d5646cfc5f43e8aa24492037e2e90677ee6";
   };
 
   propagatedBuildInputs = [ pyramid simplejson six venusian ];
 
   # tests not packaged with pypi release
   doCheck = false;
+  pythonImportsCheck = [ "cornice" ];
 
   meta = with lib; {
     homepage = "https://github.com/mozilla-services/cornice";
@@ -27,5 +28,4 @@ buildPythonPackage rec {
     license = licenses.mpl20;
     maintainers = [ maintainers.costrouc ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cot/default.nix b/nixpkgs/pkgs/development/python-modules/cot/default.nix
index a6de8321dc0c..607057b73f21 100644
--- a/nixpkgs/pkgs/development/python-modules/cot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cot/default.nix
@@ -1,13 +1,12 @@
 { lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder, isPy3k
-, argcomplete, colorlog, pyvmomi, requests, verboselogs
+, colorlog, pyvmomi, requests, verboselogs
 , psutil, pyopenssl, setuptools
-, mock, pytest, pytest-mock, pytestCheckHook, qemu
+, mock, pytest-mock, pytestCheckHook, qemu
 }:
 
 buildPythonPackage rec {
   pname = "cot";
   version = "2.2.1";
-
   disabled = !isPy3k;
 
   src = fetchPypi {
diff --git a/nixpkgs/pkgs/development/python-modules/coverage/default.nix b/nixpkgs/pkgs/development/python-modules/coverage/default.nix
index 8823435e2f8b..b7bb3c811344 100644
--- a/nixpkgs/pkgs/development/python-modules/coverage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coverage/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "coverage";
-  version = "5.3";
+  version = "5.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "280baa8ec489c4f542f8940f9c4c2181f0306a8ee1a54eceba071a449fb870a0";
+    sha256 = "38f16b1317b8dd82df67ed5daa5f5e7c959e46579840d77a67a4ceb9cef0a50b";
   };
 
   # No tests in archive
diff --git a/nixpkgs/pkgs/development/python-modules/cozy/default.nix b/nixpkgs/pkgs/development/python-modules/cozy/default.nix
index 39f2d1227e7c..fcd002f762d7 100644
--- a/nixpkgs/pkgs/development/python-modules/cozy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cozy/default.nix
@@ -1,5 +1,5 @@
 { buildPythonPackage, isPy3k, fetchFromGitHub, lib,
-  z3, ply, python-igraph, oset, ordered-set, dictionaries }:
+  z3, ply, python-igraph, oset, ordered-set, dictionaries, setuptools }:
 
 buildPythonPackage {
   pname = "cozy";
@@ -7,7 +7,7 @@ buildPythonPackage {
   disabled = !isPy3k;
 
   propagatedBuildInputs = [
-    z3 ply python-igraph oset ordered-set dictionaries
+    setuptools z3 ply python-igraph oset ordered-set dictionaries
   ];
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/python-modules/crate/default.nix b/nixpkgs/pkgs/development/python-modules/crate/default.nix
index a37160a01acf..9be85ff4b3cd 100644
--- a/nixpkgs/pkgs/development/python-modules/crate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crate/default.nix
@@ -6,6 +6,7 @@
 , isPy3k
 , sqlalchemy
 , pytestCheckHook
+, stdenv
 }:
 
 buildPythonPackage rec {
@@ -28,6 +29,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTestPaths = lib.optionals stdenv.isDarwin [ "src/crate/client/test_http.py" ];
+
   meta = with lib; {
     homepage = "https://github.com/crate/crate-python";
     description = "A Python client library for CrateDB";
diff --git a/nixpkgs/pkgs/development/python-modules/croniter/default.nix b/nixpkgs/pkgs/development/python-modules/croniter/default.nix
index 308070355790..577fef8d79d9 100644
--- a/nixpkgs/pkgs/development/python-modules/croniter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/croniter/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , python-dateutil
-, pytest
+, pytestCheckHook
 , pytz
 , natsort
 , tzlocal
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "croniter";
-  version = "0.3.37";
+  version = "1.0.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12ced475dfc107bf7c6c1440af031f34be14cd97bbbfaf0f62221a9c11e86404";
+    sha256 = "708532f70584207e23ef2989ca40f367e6238bfe050133a1aff43e1e0e6f6092";
   };
 
   propagatedBuildInputs = [
@@ -23,15 +23,11 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
     pytz
     tzlocal
   ];
 
-  checkPhase = ''
-    pytest src/croniter
-  '';
-
   meta = with lib; {
     description = "croniter provides iteration for datetime object with cron like format";
     homepage = "https://github.com/kiorky/croniter";
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/3.3.nix b/nixpkgs/pkgs/development/python-modules/cryptography/3.3.nix
index b6972e6d56bb..049718520753 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/3.3.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/3.3.nix
@@ -22,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "3.3.1"; # Also update the hash in vectors-3.3.nix
+  version = "3.3.2"; # Also update the hash in vectors-3.3.nix
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy";
+    sha256 = "1vcvw4lkw1spiq322pm1256kail8nck6bbgpdxx3pqa905wd6q2s";
   };
 
   patches = [ ./cryptography-py27-warning.patch ];
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
index ad402efd7593..32624e54c400 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
@@ -2,8 +2,8 @@
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
-, isPy27
-, ipaddress
+, rustPlatform
+, setuptools-rust
 , openssl
 , cryptography_vectors
 , darwin
@@ -13,27 +13,39 @@
 , isPyPy
 , cffi
 , pytest
+, pytest-subtests
 , pretend
 , iso8601
 , pytz
 , hypothesis
-, enum34
 }:
 
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "3.3.1"; # Also update the hash in vectors.nix
+  version = "3.4.6"; # Also update the hash in vectors.nix
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy";
+    sha256 = "11wgsihfq72fav67c3igi0xbhbd6c5dj869byd1jkq0fbcz24cid";
   };
 
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    sourceRoot = "${pname}-${version}/${cargoRoot}";
+    name = "${pname}-${version}";
+    sha256 = "1i0sd2y4a5g1yqwcpw2ycp6p4p8sk5v7clblq756i5864j52v6w1";
+  };
+
+  cargoRoot = "src/rust";
+
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = lib.optionals (!isPyPy) [
     cffi
-  ];
+  ] ++ [
+    rustPlatform.cargoSetupHook
+    setuptools-rust
+  ] ++ (with rustPlatform; [ rust.cargo rust.rustc ]);
 
   buildInputs = [ openssl ]
              ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
@@ -42,8 +54,6 @@ buildPythonPackage rec {
     six
   ] ++ lib.optionals (!isPyPy) [
     cffi
-  ] ++ lib.optionals isPy27 [
-    ipaddress enum34
   ];
 
   checkInputs = [
@@ -52,6 +62,7 @@ buildPythonPackage rec {
     iso8601
     pretend
     pytest
+    pytest-subtests
     pytz
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/vectors-3.3.nix b/nixpkgs/pkgs/development/python-modules/cryptography/vectors-3.3.nix
index 94526c8268ef..f9b7c525237a 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/vectors-3.3.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/vectors-3.3.nix
@@ -7,7 +7,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "192wix3sr678x21brav5hgc6j93l7ab1kh69p2scr3fsblq9qy03";
+    sha256 = "1yhaps0f3h2yjb6lmz953z1l1d84y9swk4k3gj9nqyk4vbx5m7cc";
   };
 
   # No tests included
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix b/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
index 94526c8268ef..a807be9c3bbb 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
@@ -7,7 +7,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "192wix3sr678x21brav5hgc6j93l7ab1kh69p2scr3fsblq9qy03";
+    sha256 = "1a1d5ix5b3ajhrqaf8rm6qmd6gkaidij0jgd1vrb8q1xn1gqmy75";
   };
 
   # No tests included
diff --git a/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix b/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix
index 95f2effc045a..a5ae90c57e37 100644
--- a/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "crytic-compile";
-  version = "0.1.12";
+  version = "0.1.13";
 
   disabled = pythonOlder "3.6";
 
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     owner = "crytic";
     repo = "crytic-compile";
     rev = version;
-    sha256 = "1q75n84yxv2cb6x7gqyk3vcwkxpq7pni30wgz3d1bk6pmi2pqgw6";
+    sha256 = "sha256-KJRfkUyUI0M7HevY4XKOtCvU+SFlsJIl3kTIccWfNmw=";
   };
 
   propagatedBuildInputs = [ pysha3 setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/cssutils/default.nix b/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
index a12fbf48c820..8bfe8ea2948d 100644
--- a/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
@@ -1,22 +1,52 @@
-{ lib, buildPythonPackage, fetchPypi, mock }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, setuptools-scm
+, toml
+, importlib-metadata
+, mock
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "cssutils";
-  version = "1.0.2";
+  version = "2.2.0";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a2fcf06467553038e98fea9cfe36af2bf14063eb147a70958cfcaa8f5786acaf";
+    sha256 = "5bef59f6b59bdccbea8e36cb292d2be1b6be1b485fc4a9f5886616f19eb31aaf";
   };
 
-  buildInputs = [ mock ];
+  nativeBuildInputs = [
+    setuptools-scm
+    toml
+  ];
+
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # access network
+    "test_parseUrl"
+    "encutils"
+  ];
 
-  # couple of failing tests
-  doCheck = false;
+  pythonImportsCheck = [ "cssutils" ];
 
   meta = with lib; {
-    description = "A Python package to parse and build CSS";
-    homepage = "http://cthedot.de/cssutils/";
+    description = "A CSS Cascading Style Sheets library for Python";
+    homepage = "https://github.com/jaraco/cssutils";
+    changelog = "https://github.com/jaraco/cssutils/blob/v${version}/CHANGES.rst";
     license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix b/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix
index 4105d981386d..ea32471f09c5 100644
--- a/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix
@@ -2,13 +2,12 @@
 , buildPythonPackage
 , fetchFromGitHub
 , isPy3k
-, pytestrunner
 , click
 , dateparser
 , pandas
 , py-lru-cache
 , six
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -23,11 +22,6 @@ buildPythonPackage rec {
     sha256 = "0p99cg76d3s7jxvigh5ad04dzhmr6g62qzzh4i6h7x9aiyvdhvk4";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace pandas~=0.25.0 pandas
-  '';
-
   propagatedBuildInputs = [
     click
     dateparser
@@ -37,13 +31,9 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    pytest
-  '';
-
   meta = with lib; {
     description = "Convert CSV files into a SQLite database";
     homepage = "https://github.com/simonw/csvs-to-sqlite";
diff --git a/nixpkgs/pkgs/development/python-modules/csvw/default.nix b/nixpkgs/pkgs/development/python-modules/csvw/default.nix
index 410248b0193b..e4bd7ab2b624 100644
--- a/nixpkgs/pkgs/development/python-modules/csvw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/csvw/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "csvw";
-  version = "1.10.0";
+  version = "1.10.1";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "cldf";
     repo = "csvw";
     rev = "v${version}";
-    sha256 = "0cvfzfi1a2m1xqpm34mwp9r3bhgsnfz4pmslvgn81i42n5grbnis";
+    sha256 = "1764nfa4frjdd7v6wj35y7prnciaqz57wwygy5zfavl4laxn4nxd";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/cufflinks/default.nix b/nixpkgs/pkgs/development/python-modules/cufflinks/default.nix
index 4c2db1f52146..42f1d77b12b9 100644
--- a/nixpkgs/pkgs/development/python-modules/cufflinks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cufflinks/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, fetchpatch
+{ lib, buildPythonPackage, fetchPypi
 , chart-studio
 , colorlover
 , ipython
diff --git a/nixpkgs/pkgs/development/python-modules/cupy/default.nix b/nixpkgs/pkgs/development/python-modules/cupy/default.nix
index 5c4978a388f2..f5d262f0b8fd 100644
--- a/nixpkgs/pkgs/development/python-modules/cupy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cupy/default.nix
@@ -1,32 +1,35 @@
 { lib, buildPythonPackage
-, fetchPypi, isPy3k, linuxPackages
-, fastrlock, numpy, six, wheel, pytest, mock, setuptools
-, cudatoolkit, cudnn, nccl
+, fetchPypi, isPy3k, cython
+, fastrlock, numpy, six, wheel, pytestCheckHook, mock, setuptools
+, cudatoolkit, cudnn, cutensor, nccl
+, addOpenGLRunpath
 }:
 
 buildPythonPackage rec {
   pname = "cupy";
-  version = "8.4.0";
+  version = "8.5.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58d19af6b2e83388d4f0f6ca4226bae4b947920d2ca4951c2eddc8bc78abf66b";
+    sha256 = "fb3f8d3b3454beb249b9880502a45fe493c5a44efacc4c72914cbe1a5dbdf803";
   };
 
-  checkInputs = [
-    pytest
-    mock
-  ];
-
   preConfigure = ''
-      export CUDA_PATH=${cudatoolkit}
+    export CUDA_PATH=${cudatoolkit}
   '';
 
+  nativeBuildInputs = [
+    addOpenGLRunpath
+    cython
+  ];
+
+  LDFLAGS = "-L${cudatoolkit}/lib/stubs";
+
   propagatedBuildInputs = [
     cudatoolkit
     cudnn
-    linuxPackages.nvidia_x11
+    cutensor
     nccl
     fastrlock
     numpy
@@ -35,8 +38,20 @@ buildPythonPackage rec {
     wheel
   ];
 
-  # In python3, test was failed...
-  doCheck = !isPy3k;
+  checkInputs = [
+    pytestCheckHook
+    mock
+  ];
+
+  # Won't work with the GPU, whose drivers won't be accessible from the build
+  # sandbox
+  doCheck = false;
+
+  postFixup = ''
+    find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
+      addOpenGLRunpath "$lib"
+    done
+  '';
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/python-modules/curio/default.nix b/nixpkgs/pkgs/development/python-modules/curio/default.nix
index 31875abd1e83..fb1eceda7f2b 100644
--- a/nixpkgs/pkgs/development/python-modules/curio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/curio/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , isPy3k
 , pytestCheckHook
 , sphinx
@@ -16,6 +17,20 @@ buildPythonPackage rec {
     sha256 = "57edce81c837f3c2cf42fbb346dee26e537d1659e6605269fb13bd179e068744";
   };
 
+  patches = [
+    # Fix the flaky test due to slow moving time on Apple Silicon chips.
+    # Remove when https://github.com/dabeaz/curio/pull/339 is in the next release.
+    (fetchpatch {
+      url = "https://github.com/dabeaz/curio/commit/132376724bbfaa0a52d3d63d0791aa4ac1eb6f5f.patch";
+      sha256 = "sha256-AxO0xRcR9l9/NKEJFwyZIoYcyZxpqOhpdNaeaYokVb4=";
+    })
+    # Same as above
+    (fetchpatch {
+      url = "https://github.com/dabeaz/curio/commit/8ac2f12a2cdacbc750b01fc7459cee8879bc1ee3.patch";
+      sha256 = "sha256-2Si3fuDLrI09QuzJd1TrE0QY02G9e9m+1eHFTB/MrWU=";
+    })
+  ];
+
   disabled = !isPy3k;
 
   checkInputs = [ pytestCheckHook sphinx ];
diff --git a/nixpkgs/pkgs/development/python-modules/cvxopt/default.nix b/nixpkgs/pkgs/development/python-modules/cvxopt/default.nix
index 9270effcaa91..d3cbc94f7153 100644
--- a/nixpkgs/pkgs/development/python-modules/cvxopt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cvxopt/default.nix
@@ -17,13 +17,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 buildPythonPackage rec {
   pname = "cvxopt";
-  version = "1.2.5";
+  version = "1.2.6";
 
   disabled = isPyPy; # hangs at [translation:info]
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0widrfxr0x0cyg72ibkv7fdzkvmf5mllchq1x4fs2a36plv8rv4l";
+    sha256 = "a4c433706fd0ad9d47e7f222773a7f7601766fb8e74b633524b3c3fce29aa73e";
   };
 
   buildInputs = [ blas lapack ];
diff --git a/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix b/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix
index 1f5a2edc9895..eca28633aaf4 100644
--- a/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix
@@ -4,40 +4,35 @@
 , fetchPypi
 , cvxopt
 , ecos
-, multiprocess
 , numpy
 , osqp
 , scipy
 , scs
-, six
   # Check inputs
 , pytestCheckHook
-, nose
 }:
 
 buildPythonPackage rec {
   pname = "cvxpy";
-  version = "1.1.8";
+  version = "1.1.11";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "444068d4eda9ffcd43578895174489d4cef36b28ba7ae8a96ab9ef9571d2b4ff";
+    hash = "sha256-W4qly+g07Q1iYJ76/tGZNkBPa+oavhTDUYRQ3cZ+s1I=";
   };
 
   propagatedBuildInputs = [
     cvxopt
     ecos
-    multiprocess
     numpy
     osqp
     scipy
     scs
-    six
   ];
 
-  checkInputs = [ pytestCheckHook nose ];
+  checkInputs = [ pytestCheckHook ];
   pytestFlagsArray = [ "./cvxpy" ];
   # Disable the slowest benchmarking tests, cuts test time in half
   disabledTests = [
@@ -46,7 +41,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A domain-specific language for modeling convex optimization problems in Python.";
+    description = "A domain-specific language for modeling convex optimization problems in Python";
     homepage = "https://www.cvxpy.org/";
     downloadPage = "https://github.com/cvxgrp/cvxpy/releases";
     changelog = "https://github.com/cvxgrp/cvxpy/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix b/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
index 1c3ee6892990..53f0ef656e20 100644
--- a/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cx_Freeze";
-  version = "6.4.1";
+  version = "6.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "043513b85e33038e38cc0571cea1f3ee8044ec083891c9a5dad1d436894424ea";
+    sha256 = "fe0af7c658442402bcd209f993219a6ab98a951459495b4a141eb03b552a1c68";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/nixpkgs/pkgs/development/python-modules/cypari2/default.nix b/nixpkgs/pkgs/development/python-modules/cypari2/default.nix
index a7115d1e940d..a553aeab65c0 100644
--- a/nixpkgs/pkgs/development/python-modules/cypari2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cypari2/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , python
+, fetchpatch
 , fetchPypi
 , pari
 , gmp
@@ -11,13 +12,23 @@
 buildPythonPackage rec {
   pname = "cypari2";
   # upgrade may break sage, please test the sage build or ping @timokau on upgrade
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "df1ef62e771ec36e5a456f5fc8b51bc6745b70f0efdd0c7a30c3f0b5f1fb93db";
+    sha256 = "03cd45edab8716ebbfdb754e65fea72e873c73dc91aec098fe4a01e35324ac7a";
   };
 
+  patches = [
+    # patch to avoid some segfaults in sage's totallyreal.pyx test.
+    # (https://trac.sagemath.org/ticket/27267). depends on Cython patch.
+    (fetchpatch {
+      name = "use-trashcan-for-gen.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/cypari/patches/trashcan.patch?id=b6ea17ef8e4d652de0a85047bac8d41e90b25555";
+      sha256 = "sha256-w4kktWb9/aR9z4CjrUvAMOxEwRN2WkubaKzQttN8rU8=";
+    })
+  ];
+
   # This differs slightly from the default python installPhase in that it pip-installs
   # "." instead of "*.whl".
   # That is because while the default install phase succeeds to build the package,
@@ -48,7 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Cython bindings for PARI";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = teams.sage.members;
     homepage = "https://github.com/defeo/cypari2";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/cysignals/default.nix b/nixpkgs/pkgs/development/python-modules/cysignals/default.nix
index 736afab4257c..d075360d1a44 100644
--- a/nixpkgs/pkgs/development/python-modules/cysignals/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cysignals/default.nix
@@ -9,11 +9,11 @@ assert pariSupport -> pari != null;
 
 buildPythonPackage rec {
   pname = "cysignals";
-  version = "1.10.2";
+  version = "1.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ckxzch3wk5cg80mppky5jib5z4fzslny3001r5zg4ar1ixbc1w1";
+    sha256 = "sha256-XEYGxDV3UCgxb3Jf23y4lOPK4Lb9L4YqDSlxdIRptDo=";
   };
 
   # explicit check:
diff --git a/nixpkgs/pkgs/development/python-modules/dask-gateway-server/default.nix b/nixpkgs/pkgs/development/python-modules/dask-gateway-server/default.nix
index d2f040609d32..f55a2fe75094 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-gateway-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-gateway-server/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   preBuild = ''
     export HOME=$(mktemp -d)
+    export GO111MODULE=off
   '';
 
   # tests requires cluster for testing
diff --git a/nixpkgs/pkgs/development/python-modules/dask-image/default.nix b/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
index a3cc7b6afda0..a68c86538ee1 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , dask
 , numpy, toolz # dask[array]
 , scipy
@@ -38,6 +37,7 @@ buildPythonPackage rec {
   checkPhase = ''
     pytest --ignore=tests/test_dask_image/
   '';
+  pythonImportsCheck = [ "dask_image" ];
 
   meta = with lib; {
     homepage = "https://github.com/dask/dask-image";
diff --git a/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix b/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix
index f4f5c03858ae..7719842fbad6 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.7.1";
+  version = "0.7.2";
   pname = "dask-jobqueue";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d32ddf3e3c7db29ace102037fa5f61c8db2d945176454dc316a6ffdb8bbfe88b";
+    sha256 = "1767f4146b2663d9d2eaef62b882a86e1df0bccdb8ae68ae3e5e546aa6796d35";
   };
 
   checkInputs = [ pytest ];
@@ -29,5 +29,6 @@ buildPythonPackage rec {
     description = "Deploy Dask on job schedulers like PBS, SLURM, and SGE";
     license = licenses.bsd3;
     maintainers = [ maintainers.costrouc ];
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix b/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
index 737def7b9ac3..4f4b7b705c4e 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
@@ -12,10 +12,6 @@
 , six
 , multipledispatch
 , packaging
-, pytest
-, xgboost
-, tensorflow
-, joblib
 , distributed
 }:
 
diff --git a/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix b/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
index 1bec4c828728..d656b055d119 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
@@ -4,8 +4,6 @@
 , dask
 , distributed
 , mpi4py
-, pytest
-, requests
 }:
 
 buildPythonPackage rec {
@@ -17,15 +15,11 @@ buildPythonPackage rec {
     sha256 = "76e153fc8c58047d898970b33ede0ab1990bd4e69cc130c6627a96f11b12a1a7";
   };
 
-  checkInputs = [ pytest requests ];
   propagatedBuildInputs = [ dask distributed mpi4py ];
 
-  checkPhase = ''
-    py.test dask_mpi
-  '';
-
   # hardcoded mpirun path in tests
   doCheck = false;
+  pythonImportsCheck = [ "dask_mpi" ];
 
   meta = with lib; {
     homepage = "https://github.com/dask/dask-mpi";
diff --git a/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix b/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
index 4e64b8c9f0c5..eb18ac31fd03 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
@@ -4,8 +4,6 @@
 , xgboost
 , dask
 , distributed
-, pytest
-, scikitlearn
 }:
 
 buildPythonPackage rec {
@@ -17,19 +15,17 @@ buildPythonPackage rec {
     sha256 = "3fbe1bf4344dc74edfbe9f928c7e3e6acc26dc57cefd8da8ae56a15469c6941c";
   };
 
-  checkInputs = [ pytest scikitlearn ];
   propagatedBuildInputs = [ xgboost dask distributed ];
 
-  checkPhase = ''
-    py.test dask_xgboost/tests/test_core.py
-  '';
-
   doCheck = false;
+  pythonImportsCheck = [ "dask_xdgboost" ];
 
   meta = with lib; {
     homepage = "https://github.com/dask/dask-xgboost";
     description = "Interactions between Dask and XGBoost";
     license = licenses.bsd3;
     maintainers = [ maintainers.costrouc ];
+    # TypeError: __init__() got an unexpected keyword argument 'iid'
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dask/default.nix b/nixpkgs/pkgs/development/python-modules/dask/default.nix
index 721463421440..8f3e4d08583b 100644
--- a/nixpkgs/pkgs/development/python-modules/dask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , fsspec
 , pytestCheckHook
+, pytest-rerunfailures
 , pythonOlder
 , cloudpickle
 , numpy
@@ -11,27 +12,23 @@
 , dill
 , pandas
 , partd
+, pytest-xdist
+, withExtraComplete ? false
+, distributed
 }:
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2021.01.0";
-
+  version = "2021.03.0";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "V2cEOzV/L1zjyQ76zlGyN9CIkq6W8y8Yab4NQi3/Ju4=";
+    sha256 = "LACv7lWpQULQknNGX/9vH9ckLsypbqKDGnsNBgKT1eI=";
   };
 
-  checkInputs = [
-    pytestCheckHook
-  ];
-
-  dontUseSetuptoolsCheck = true;
-
   propagatedBuildInputs = [
     bokeh
     cloudpickle
@@ -41,8 +38,20 @@ buildPythonPackage rec {
     pandas
     partd
     toolz
+  ] ++ lib.optionals withExtraComplete [
+    distributed
   ];
 
+  doCheck = false;
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-rerunfailures
+    pytest-xdist
+  ];
+
+  dontUseSetuptoolsCheck = true;
+
   postPatch = ''
     # versioneer hack to set version of github package
     echo "def get_versions(): return {'dirty': False, 'error': None, 'full-revisionid': None, 'version': '${version}'}" > dask/_version.py
@@ -52,21 +61,18 @@ buildPythonPackage rec {
       --replace "cmdclass=versioneer.get_cmdclass()," ""
   '';
 
-  #pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
+  pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
 
   disabledTests = [
-    "test_argwhere_str"
-    "test_count_nonzero_str"
-    "rolling_methods"  # floating percision error ~0.1*10^8 small
-    "num_workers_config" # flaky
-    "test_2args_with_array[pandas1-darray1-ldexp]"  # flaky
+    "test_annotation_pack_unpack"
+    "test_annotations_blockwise_unpack"
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Minimal task scheduling abstraction";
     homepage = "https://dask.org/";
     changelog = "https://docs.dask.org/en/latest/changelog.html";
-    license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ fridh ];
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fridh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix b/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix
index 483c565536d5..547b9a3af7a2 100644
--- a/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "databricks-cli";
-  version = "0.14.1";
+  version = "0.14.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bf94dc5187fa3500a31d52d7225fbc1a4699aa6e3c321223e7088eb5b5c94b62";
+    sha256 = "bdf89a3917a3f8f8b99163e38d40e66dc478c7408954747f145cd09816b05e2c";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix b/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
index a97d9bc0c985..17116eb130f9 100644
--- a/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "databricks-connect";
-  version = "7.3.8";
+  version = "8.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c0f036cf30e00fdc47c983875c72d16a3073ae9be9bcf39371514280f00a82d";
+    sha256 = "3726c648cc60796294356e2617acc534d2503824ccfbdff26abbea595eb83135";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/development/python-modules/datadog/default.nix b/nixpkgs/pkgs/development/python-modules/datadog/default.nix
index a8917c3965f8..4a1bddfe3692 100644
--- a/nixpkgs/pkgs/development/python-modules/datadog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datadog/default.nix
@@ -1,6 +1,19 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
-, decorator, requests, simplejson, pillow, typing
-, nose, mock, pytest, freezegun }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, decorator
+, requests
+, typing
+, configparser
+, click
+, freezegun
+, mock
+, pytestCheckHook
+, pytest-vcr
+, python-dateutil
+, vcrpy
+}:
 
 buildPythonPackage rec {
   pname = "datadog";
@@ -15,13 +28,30 @@ buildPythonPackage rec {
     find . -name '*.pyc' -exec rm {} \;
   '';
 
-  propagatedBuildInputs = [ decorator requests simplejson pillow ]
-    ++ lib.optionals (pythonOlder "3.5") [ typing ];
+  propagatedBuildInputs = [ decorator requests ]
+    ++ lib.optional (pythonOlder "3.5") typing
+    ++ lib.optional (pythonOlder "3.0") configparser;
 
-  checkInputs = [ nose mock pytest freezegun ];
-  checkPhase = ''
-    pytest tests/unit
-  '';
+  checkInputs = [
+    click
+    freezegun
+    mock
+    pytestCheckHook
+    pytest-vcr
+    python-dateutil
+    vcrpy
+  ];
+
+  disabledTestPaths = [
+    "tests/unit/dogstatsd/test_statsd.py" # does not work in sandbox
+  ];
+
+  disabledTests = [
+    "test_default_settings_set"
+    "test_threadstats_thread_safety"
+  ];
+
+  pythonImportsCheck = [ "datadog" ];
 
   meta = with lib; {
     description = "The Datadog Python library";
diff --git a/nixpkgs/pkgs/development/python-modules/datasets/default.nix b/nixpkgs/pkgs/development/python-modules/datasets/default.nix
index fc349cdc277b..cc06297c4ea0 100644
--- a/nixpkgs/pkgs/development/python-modules/datasets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datasets/default.nix
@@ -3,6 +3,8 @@
 , fetchFromGitHub
 , dill
 , filelock
+, fsspec
+, huggingface-hub
 , multiprocess
 , numpy
 , pandas
@@ -14,18 +16,20 @@
 
 buildPythonPackage rec {
   pname = "datasets";
-  version = "1.1.2";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = version;
-    hash = "sha256-upXZ2rOfmjnJbDo6RMGeHv/fe10RQAf/zwDWWKdt6SA=";
+    hash = "sha256-is8TS84varARWyfeDTbQH0pcYFTk0PcEyK183emB4GE=";
   };
 
   propagatedBuildInputs = [
     dill
     filelock
+    fsspec
+    huggingface-hub
     multiprocess
     numpy
     pandas
@@ -36,7 +40,9 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace setup.py --replace '"tqdm>=4.27,<4.50.0"' '"tqdm>=4.27"'
+    substituteInPlace setup.py \
+      --replace '"tqdm>=4.27,<4.50.0"' '"tqdm>=4.27"' \
+      --replace "huggingface_hub==0.0.2" "huggingface_hub>=0.0.2"
   '';
 
   # Tests require pervasive internet access.
diff --git a/nixpkgs/pkgs/development/python-modules/datashader/default.nix b/nixpkgs/pkgs/development/python-modules/datashader/default.nix
index 534cc816def7..d656a203b9e8 100644
--- a/nixpkgs/pkgs/development/python-modules/datashader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datashader/default.nix
@@ -1,9 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , dask
-, distributed
 , bokeh
 , toolz
 , datashape
@@ -15,38 +13,26 @@
 , colorcet
 , param
 , pyct
-, pyyaml
-, requests
-, scikitimage
 , scipy
-, pytest
-, pytest-benchmark
-, flake8
+, pytestCheckHook
 , nbsmoke
 , fastparquet
-, testpath
 , nbconvert
-, pytest_xdist
+, pytest-xdist
+, netcdf4
 }:
 
 buildPythonPackage rec {
   pname = "datashader";
-  version = "0.11.1";
+  version = "0.12.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b1f80415f72f92ccb660aaea7b2881ddd35d07254f7c44101709d42e819d6be6";
+    sha256 = "a135612876dc3e4b16ccb9ddb70de50519825c8c1be251b49aefa550bcf8a39a";
   };
-  patches = [ (fetchpatch {
-    # Unpins pyct==0.46 (Sep. 11, 2020).
-    # Will be incorporated into the next datashader release after 0.11.1
-    url = "https://github.com/holoviz/datashader/pull/960/commits/d7a462fa399106c34fd0d44505a8a73789dbf874.patch";
-    sha256 = "1wqsk9dpxnkxr49fa7y5q6ahin80cvys05lnirs2w2p1dja35y4x";
-  })];
 
   propagatedBuildInputs = [
     dask
-    distributed
     bokeh
     toolz
     datashape
@@ -58,30 +44,29 @@ buildPythonPackage rec {
     colorcet
     param
     pyct
-    pyyaml
-    requests
-    scikitimage
     scipy
-    testpath
   ];
 
   checkInputs = [
-    pytest
-    pytest-benchmark
-    pytest_xdist # not needed
-    flake8
+    pytestCheckHook
+    pytest-xdist # not needed
     nbsmoke
     fastparquet
-    pandas
     nbconvert
+    netcdf4
+  ];
+
+  pytestFlagsArray = [
+    "-n $NIX_BUILD_CORES"
+    "datashader"
   ];
 
-  # dask doesn't do well with large core counts
-  checkPhase = ''
-    pytest -n $NIX_BUILD_CORES datashader -k 'not dask.array'
-  '';
+  disabledTestPaths = [
+    # 31/50 tests fail with TypeErrors
+    "datashader/tests/test_datatypes.py"
+  ];
 
-  meta = with lib; {
+  meta = with lib;{
     description = "Data visualization toolchain based on aggregating into a grid";
     homepage = "https://datashader.org";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/dateparser/0.x.nix b/nixpkgs/pkgs/development/python-modules/dateparser/0.x.nix
new file mode 100644
index 000000000000..49e2d1f2796e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dateparser/0.x.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, parameterized
+, pytestCheckHook
+, dateutil
+, pytz
+, regex
+, tzlocal
+, convertdate
+, umalqurra
+, jdatetime
+, ruamel_yaml
+}:
+
+buildPythonPackage rec {
+  pname = "dateparser";
+  version = "0.7.6";
+
+  src = fetchFromGitHub {
+    owner = "scrapinghub";
+    repo = "dateparser";
+    rev = "v${version}";
+    sha256 = "0j3sm4hlx7z0ci5fnjq5n9i02vvlfz0wxa889ydryfknjhy5apqw";
+  };
+
+  checkInputs = [
+    mock
+    parameterized
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "tests" ];
+
+  disabledTestPaths = [
+    "tests/test_dateparser_data_integrity.py" # ImportError: No module named ruamel.yaml
+  ];
+
+  propagatedBuildInputs = [
+    # install_requires
+    dateutil pytz regex tzlocal
+    # extra_requires
+    convertdate umalqurra jdatetime ruamel_yaml
+  ];
+
+  pythonImportsCheck = [ "dateparser" ];
+
+  meta = with lib; {
+    description = "Date parsing library designed to parse dates from HTML pages";
+    homepage = "https://github.com/scrapinghub/dateparser";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dateparser/default.nix b/nixpkgs/pkgs/development/python-modules/dateparser/default.nix
index 2a80523a6560..21dcffc4a841 100644
--- a/nixpkgs/pkgs/development/python-modules/dateparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dateparser/default.nix
@@ -1,61 +1,55 @@
-{ lib, fetchPypi, buildPythonPackage
-, nose
-, parameterized
-, mock
-, flake8
-, glibcLocales
-, six
-, jdatetime
+{ lib
+, buildPythonPackage
+, isPy3k
+, fetchFromGitHub
 , dateutil
-, umalqurra
 , pytz
-, tzlocal
 , regex
+, tzlocal
+, hijri-converter
+, convertdate
+, parameterized
+, pytestCheckHook
+, GitPython
 , ruamel_yaml
-, python
-, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "dateparser";
   version = "1.0.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "159cc4e01a593706a15cd4e269a0b3345edf3aef8bf9278a57dac8adf5bf1e4a";
-  };
+  disabled = !isPy3k;
 
-  checkInputs = [
-    flake8
-    nose
-    mock
-    parameterized
-    six
-    glibcLocales
-  ];
-  preCheck =''
-    # skip because of missing convertdate module, which is an extra requirement
-    rm tests/test_jalali.py
-  '';
-
-  checkPhase = ''
-    ${python.interpreter} -m unittest discover -s tests
-  '';
-
-  # Strange
-  # AttributeError: 'module' object has no attribute 'config'
-  doCheck = false;
+  src = fetchFromGitHub {
+    owner = "scrapinghub";
+    repo = "dateparser";
+    rev = "v${version}";
+    sha256 = "0i6ci14lqfsqrmaif57dyilrjbxzmbl98hps1b565gkiy1xqmjhl";
+  };
 
   propagatedBuildInputs = [
     # install_requires
     dateutil pytz regex tzlocal
     # extra_requires
-    jdatetime ruamel_yaml umalqurra
+    hijri-converter convertdate
   ];
 
+  checkInputs = [
+    parameterized
+    pytestCheckHook
+    GitPython
+    ruamel_yaml
+  ];
+
+  # Upstream only runs the tests in tests/ in CI, others use git clone
+  pytestFlagsArray = [ "tests" ];
+
+  pythonImportsCheck = [ "dateparser" ];
+
   meta = with lib; {
     description = "Date parsing library designed to parse dates from HTML pages";
     homepage = "https://github.com/scrapinghub/dateparser";
     license = licenses.bsd3;
+    maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dateutil/default.nix b/nixpkgs/pkgs/development/python-modules/dateutil/default.nix
index dcad0c3698a7..e71a532a806d 100644
--- a/nixpkgs/pkgs/development/python-modules/dateutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dateutil/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, six, setuptools_scm, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+, six
+}:
+
 buildPythonPackage rec {
   pname = "python-dateutil";
   version = "2.8.1";
@@ -8,19 +14,27 @@ buildPythonPackage rec {
     sha256 = "73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c";
   };
 
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ six setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  checkPhase = ''
-    py.test dateutil/test
-  '';
+  propagatedBuildInputs = [ six ];
 
-  # Requires fixing
+  # cyclic dependency: tests need freezegun, which depends on python-dateutil
   doCheck = false;
 
+  pythonImportsCheck = [
+    "dateutil.easter"
+    "dateutil.parser"
+    "dateutil.relativedelta"
+    "dateutil.rrule"
+    "dateutil.tz"
+    "dateutil.utils"
+    "dateutil.zoneinfo"
+  ];
+
   meta = with lib; {
     description = "Powerful extensions to the standard datetime module";
-    homepage = "https://pypi.python.org/pypi/python-dateutil";
-    license = "BSD-style";
+    homepage = "https://github.com/dateutil/dateutil/";
+    license = with licenses; [ asl20 bsd3 ];
+    maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dbf/default.nix b/nixpkgs/pkgs/development/python-modules/dbf/default.nix
index 18560734bd85..b5b6f277fd65 100644
--- a/nixpkgs/pkgs/development/python-modules/dbf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
     pname = "dbf";
-    version = "0.99.0";
+    version = "0.99.1";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "a4a7a8cdc113d840142d21a796c16c7d329ad35c48f17156446732c83ebc571a";
+      sha256 = "4ed598a3866dfe7761b8099cf53ab44cb6ed5e4a7dbffb0da8c67a4af8d62fc5";
     };
 
     propagatedBuildInputs = [ aenum ] ++ lib.optional (pythonOlder "3.4") enum34;
diff --git a/nixpkgs/pkgs/development/python-modules/ddt/default.nix b/nixpkgs/pkgs/development/python-modules/ddt/default.nix
index f993c3844b85..11d32adf3bfb 100644
--- a/nixpkgs/pkgs/development/python-modules/ddt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ddt/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "ddt";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0595e70d074e5777771a45709e99e9d215552fb1076443a25fad6b23d8bf38da";
+    sha256 = "sha256-ZKZzZqJxXmNriGlMxgdcwC2ykvAQmLjjhTl8iU05U3g=";
   };
 
   checkInputs = [ six pyyaml mock pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix b/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix
index 0d81110dee82..c29737595af8 100644
--- a/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix
@@ -1,22 +1,30 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, vcver }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, setuptools-scm
+, vcver
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "deepmerge";
-  version = "0.1.1";
+  version = "0.2.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa1d44269786bcc12d30a7471b0b39478aa37a43703b134d7f12649792f92c1f";
+    sha256 = "082bvlk65pkf9qzkzzl8fq7s6zfz1b2v5pcb0ikwg1nx0xspggaz";
   };
 
-  propagatedBuildInputs = [
+  nativeBuildInputs = [
+    setuptools-scm
     vcver
   ];
 
-  # depends on https://pypi.org/project/uranium/
-  doCheck = false;
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "deepmerge" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/deeptoolsintervals/default.nix b/nixpkgs/pkgs/development/python-modules/deeptoolsintervals/default.nix
index eef8d51ae911..0dde3c51c3ae 100644
--- a/nixpkgs/pkgs/development/python-modules/deeptoolsintervals/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deeptoolsintervals/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , pytest
 , zlib
-, lzma
+, xz
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "1xnl80nblysj6dylj4683wgrfa425rkx4dp5k65hvwdns9pw753x";
   };
 
-  buildInputs = [ zlib lzma ];
+  buildInputs = [ zlib xz ];
 
   checkInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/defcon/default.nix b/nixpkgs/pkgs/development/python-modules/defcon/default.nix
index 25c590299922..100c7ee6fc1f 100644
--- a/nixpkgs/pkgs/development/python-modules/defcon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/defcon/default.nix
@@ -1,18 +1,24 @@
 { lib, buildPythonPackage, fetchPypi, pythonOlder
-, fonttools
+, fonttools, setuptools-scm
 , pytest, pytestrunner, lxml, fs, unicodedata2, fontpens
 }:
 
 buildPythonPackage rec {
   pname = "defcon";
-  version = "0.7.2";
+  version = "0.8.1";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lfqsvxmq1j0nvp26gidnqkj1dyxv7jalc6i7fz1r3nc7niflrqr";
+    sha256 = "1sj9yhwkyvzchglpy07pkx5362mwlap581ibv150b5l9s5mxn2j1";
     extension = "zip";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     fonttools
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/defusedxml/default.nix b/nixpkgs/pkgs/development/python-modules/defusedxml/default.nix
index 581a6cce9b2a..797fee025be4 100644
--- a/nixpkgs/pkgs/development/python-modules/defusedxml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/defusedxml/default.nix
@@ -1,11 +1,30 @@
-{ buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, python
+}:
 
 buildPythonPackage rec {
   pname = "defusedxml";
-  version = "0.6.0";
+  version = "0.7.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5";
+    sha256 = "183fz8xwclhkirwpvpldyypn47r8lgzfz2mk9jgyg7b37jg5vcc6";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} tests.py
+  '';
+
+  pythonImportsCheck = [ "defusedxml" ];
+
+  meta = with lib; {
+    description = "Python module to defuse XML issues";
+    homepage = "https://github.com/tiran/defusedxml";
+    license = licenses.psfl;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/deprecated/default.nix b/nixpkgs/pkgs/development/python-modules/deprecated/default.nix
index 0374bebe4f95..c6e309335289 100644
--- a/nixpkgs/pkgs/development/python-modules/deprecated/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deprecated/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "Deprecated";
-  version = "1.2.11";
+  version = "1.2.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "471ec32b2755172046e28102cd46c481f21c6036a0ec027521eba8521aa4ef35";
+    sha256 = "6d2de2de7931a968874481ef30208fd4e08da39177d61d3d4ebdf4366e7dbca1";
   };
 
   propagatedBuildInputs = [ wrapt ];
diff --git a/nixpkgs/pkgs/development/python-modules/descartes/default.nix b/nixpkgs/pkgs/development/python-modules/descartes/default.nix
index b10526ff0fd5..a4df1fe20c99 100644
--- a/nixpkgs/pkgs/development/python-modules/descartes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/descartes/default.nix
@@ -21,5 +21,7 @@ buildPythonPackage rec {
     homepage = "https://bitbucket.org/sgillies/descartes/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ knedlsepp ];
+    # all tests are failing
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/desktop-notifier/default.nix b/nixpkgs/pkgs/development/python-modules/desktop-notifier/default.nix
new file mode 100644
index 000000000000..ab4189c8f51d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/desktop-notifier/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, stdenv
+, packaging
+, importlib-resources
+, dbus-next
+}:
+
+buildPythonPackage rec {
+  pname = "desktop-notifier";
+  version = "3.2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cf359450efc0944ac4db3106e50faa9d49dcef072307c3531e6af2c8a10cd523";
+  };
+
+  propagatedBuildInputs = [
+    packaging
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    importlib-resources
+  ] ++ lib.optionals stdenv.isLinux [
+    dbus-next
+  ];
+
+  # no tests available, do the imports check instead
+  doCheck = false;
+  pythonImportsCheck = [ "desktop_notifier" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/samschott/desktop-notifier";
+    description = "A Python library for cross-platform desktop notifications";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sfrijters ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/devolo-home-control-api/default.nix b/nixpkgs/pkgs/development/python-modules/devolo-home-control-api/default.nix
index 1e388fd3a117..8fba64d0a8f3 100644
--- a/nixpkgs/pkgs/development/python-modules/devolo-home-control-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/devolo-home-control-api/default.nix
@@ -2,28 +2,26 @@
 , aiohttp
 , buildPythonPackage
 , fetchFromGitHub
-, pytestCheckHook
-, pytest-cov
 , pytest-mock
+, pytestCheckHook
+, pythonOlder
 , requests
-, zeroconf
 , websocket_client
-, pytest-runner
+, zeroconf
 }:
 
 buildPythonPackage rec {
   pname = "devolo-home-control-api";
-  version = "0.16.0";
+  version = "0.17.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "2Fake";
     repo = "devolo_home_control_api";
     rev = "v${version}";
-    sha256 = "19zzdbx0dxlm8pq0yk00nn9gqqblgpp16fgl7z6a98hsa6459zzb";
+    sha256 = "sha256-5PaIZPwikDmT4kmh0Qfg65gBAUYralmO6a22GtzoB7A=";
   };
 
-  nativeBuildInputs = [ pytest-runner ];
-
   propagatedBuildInputs = [
     requests
     zeroconf
@@ -32,12 +30,22 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytestCheckHook
-    pytest-cov
     pytest-mock
   ];
 
+  postPatch = ''
+    # setup.py is not able to detect the version with setuptools_scm
+    substituteInPlace setup.py \
+      --replace "setuptools_scm" "" \
+      --replace 'use_scm_version=True' 'use_scm_version="${version}"'
+  '';
+
   # Disable test that requires network access
-  disabledTests = [ "test__on_pong" ];
+  disabledTests = [
+    "test__on_pong"
+    "TestMprm"
+  ];
+
   pythonImportsCheck = [ "devolo_home_control_api" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/dftfit/default.nix b/nixpkgs/pkgs/development/python-modules/dftfit/default.nix
index 0f0563e3baf5..73791bdaa9a6 100644
--- a/nixpkgs/pkgs/development/python-modules/dftfit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dftfit/default.nix
@@ -12,11 +12,7 @@
 , lammps-cython
 , pymatgen-lammps
 , pytestrunner
-, pytest
-, pytestcov
-, pytest-benchmark
 , isPy3k
-, openssh
 }:
 
 buildPythonPackage rec {
@@ -25,18 +21,27 @@ buildPythonPackage rec {
   disabled = (!isPy3k);
 
   src = fetchPypi {
-     inherit pname version;
-     sha256 = "4dcbde48948835dcf2d49d6628c9df5747a8ec505d517e374b8d6c7fe95892df";
+    inherit pname version;
+    sha256 = "4dcbde48948835dcf2d49d6628c9df5747a8ec505d517e374b8d6c7fe95892df";
   };
 
   buildInputs = [ pytestrunner ];
-  checkInputs = [ pytest pytestcov pytest-benchmark openssh ];
-  propagatedBuildInputs = [ pymatgen marshmallow pyyaml pygmo
-                            pandas scipy numpy scikitlearn
-                            lammps-cython pymatgen-lammps ];
+  propagatedBuildInputs = [
+    pymatgen
+    marshmallow
+    pyyaml
+    pygmo
+    pandas
+    scipy
+    numpy
+    scikitlearn
+    lammps-cython
+    pymatgen-lammps
+  ];
 
   # tests require git lfs download. and is quite large so skip tests
   doCheck = false;
+  pythonImportsCheck = [ "dftfit" ];
 
   meta = {
     description = "Ab-Initio Molecular Dynamics Potential Development";
diff --git a/nixpkgs/pkgs/development/python-modules/dicom2nifti/default.nix b/nixpkgs/pkgs/development/python-modules/dicom2nifti/default.nix
index abc07346efd3..a9c2e4e82373 100644
--- a/nixpkgs/pkgs/development/python-modules/dicom2nifti/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dicom2nifti/default.nix
@@ -8,11 +8,12 @@
 , numpy
 , pydicom
 , scipy
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "dicom2nifti";
-  version = "2.2.8";
+  version = "2.2.12";
   disabled = isPy27;
 
   # no tests in PyPI dist
@@ -20,10 +21,10 @@ buildPythonPackage rec {
     owner = "icometrix";
     repo = pname;
     rev = version;
-    sha256 = "1qi2map6f4pa1l8wsif7ff7rhja6ynrjlm7w306dzvi9l25mia34";
+    sha256 = "0ddzaw0yasyi2wsh7a6r73cdcmdfbb0nh0k0n4yxp9vnkw1ag5z4";
   };
 
-  propagatedBuildInputs = [ gdcm nibabel numpy pydicom scipy ];
+  propagatedBuildInputs = [ nibabel numpy pydicom scipy setuptools ];
 
   checkInputs = [ nose gdcm ];
   checkPhase = "nosetests tests";
diff --git a/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix b/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix
index 03b1f4fa28ee..91832bc88ff3 100644
--- a/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix
@@ -6,7 +6,6 @@
 , six
 # test dependencies
 , coverage
-, flake8
 , mock
 , nose
 , pycodestyle
diff --git a/nixpkgs/pkgs/development/python-modules/digi-xbee/default.nix b/nixpkgs/pkgs/development/python-modules/digi-xbee/default.nix
index d5f1445a6771..025939f2db28 100644
--- a/nixpkgs/pkgs/development/python-modules/digi-xbee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/digi-xbee/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "digi-xbee";
-  version = "1.3.0";
+  version = "1.4.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2ed798faee0853bf7ae9ca5aa4bdcbab496e3c2d56c9f0719a8e3e0d13270891";
+    sha256 = "664737d1aab453ea40b9745f1ee1e88920acff1cce2e07c42e7f5aa64a16e6aa";
   };
 
   propagatedBuildInputs = [ pyserial srp ];
@@ -15,6 +15,24 @@ buildPythonPackage rec {
   # Upstream doesn't contain unit tests, only functional tests which require specific hardware
   doCheck = false;
 
+  pythonImportsCheck = [
+    "digi.xbee.models"
+    "digi.xbee.packets"
+    "digi.xbee.util"
+    "digi.xbee.comm_interface"
+    "digi.xbee.devices"
+    "digi.xbee.exception"
+    "digi.xbee.filesystem"
+    "digi.xbee.firmware"
+    "digi.xbee.io"
+    "digi.xbee.profile"
+    "digi.xbee.reader"
+    "digi.xbee.recovery"
+    "digi.xbee.sender"
+    "digi.xbee.serial"
+    "digi.xbee.xsocket"
+  ];
+
   meta = with lib; {
     description = "Python library to interact with Digi International's XBee radio frequency modules";
     homepage = "https://github.com/digidotcom/xbee-python";
diff --git a/nixpkgs/pkgs/development/python-modules/discordpy/default.nix b/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
index 9c30606f75d9..94181def867f 100644
--- a/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "discord.py";
-  version = "1.6.0";
+  version = "1.7.0";
   disabled = pythonOlder "3.5.3";
 
   # only distributes wheels on pypi now
@@ -17,13 +17,12 @@ buildPythonPackage rec {
     owner = "Rapptz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "036prc4iw91qx31zz48hy3b30kn2qnlg68lgrvv2mcvsjxf2gd1l";
+    sha256 = "1i5k2qb894rjksn21pk9shash1y7v4138rkk8mqr1a1yvgnr5ibg";
   };
 
   propagatedBuildInputs = [ aiohttp websockets ];
   patchPhase = ''
     substituteInPlace "requirements.txt" \
-      --replace "aiohttp>=3.6.0,<3.7.0" "aiohttp" \
       --replace "websockets>=6.0,!=7.0,!=8.0,!=8.0.1,<9.0" "websockets"
   '' + lib.optionalString withVoice ''
     substituteInPlace "discord/opus.py" \
diff --git a/nixpkgs/pkgs/development/python-modules/diskcache/default.nix b/nixpkgs/pkgs/development/python-modules/diskcache/default.nix
index 8b968c3272fb..ed6007f87ed2 100644
--- a/nixpkgs/pkgs/development/python-modules/diskcache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diskcache/default.nix
@@ -7,18 +7,17 @@
 , pytest_xdist
 , pytest-django
 , mock
-, django
 }:
 
 buildPythonPackage rec {
   pname = "diskcache";
-  version = "5.1.0";
+  version = "5.2.1";
 
   src = fetchFromGitHub {
     owner = "grantjenks";
     repo = "python-diskcache";
     rev = "v${version}";
-    sha256 = "0xwqw60dbn1x2294galcs08vm6ydcr677lr8slqz8a3ry6sgkhn9";
+    sha256 = "sha256-dWtEyyWpg0rxEwyhBdPyApzgS9o60HVGbtY76ELHvX8=";
   };
 
   checkInputs = [
@@ -31,6 +30,7 @@ buildPythonPackage rec {
 
   # Darwin sandbox causes most tests to fail.
   doCheck = !stdenv.isDarwin;
+  pythonImportsCheck = [ "diskcache" ];
 
   meta = with lib; {
     description = "Disk and file backed persistent cache";
diff --git a/nixpkgs/pkgs/development/python-modules/distributed/default.nix b/nixpkgs/pkgs/development/python-modules/distributed/default.nix
index f4be407fade2..8ce554e6f6be 100644
--- a/nixpkgs/pkgs/development/python-modules/distributed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distributed/default.nix
@@ -1,11 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
-, pytest-repeat
-, pytest-timeout
-, mock
-, joblib
 , click
 , cloudpickle
 , dask
@@ -18,9 +13,6 @@
 , tornado
 , zict
 , pyyaml
-, isPy3k
-, futures
-, singledispatch
 , mpi4py
 , bokeh
 , pythonOlder
@@ -28,37 +20,29 @@
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2.30.1";
+  version = "2021.3.0";
+  disabled = pythonOlder "3.6";
 
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1421d3b84a0885aeb2c4bdc9e8896729c0f053a9375596c9de8864e055e2ac8e";
+    sha256 = "sha256-Qn/n4Ee7rXQTxl1X5W+k1rHPkh/SBqPSyquUv5FTw9s=";
   };
 
-  disabled = pythonOlder "3.6";
-
-  checkInputs = [ pytest pytest-repeat pytest-timeout mock joblib ];
   propagatedBuildInputs = [
       click cloudpickle dask msgpack psutil six
       sortedcontainers tblib toolz tornado zict pyyaml mpi4py bokeh
   ];
 
-  # tests take about 10-15 minutes
-  # ignore 5 cli tests out of 1000 total tests that fail due to subprocesses
-  # these tests are not critical to the library (only the cli)
-  checkPhase = ''
-    py.test distributed -m "not avoid-travis" -r s --timeout-method=thread --timeout=0 --durations=20 --ignore="distributed/cli/tests"
-  '';
-
   # when tested random tests would fail and not repeatably
   doCheck = false;
+  pythonImportsCheck = [ "distributed" ];
 
-  meta = {
+  meta = with lib; {
     description = "Distributed computation in Python.";
     homepage = "https://distributed.readthedocs.io/en/latest/";
-    license = lib.licenses.bsd3;
-    platforms = lib.platforms.x86; # fails on aarch64
-    maintainers = with lib.maintainers; [ teh costrouc ];
+    license = licenses.bsd3;
+    platforms = platforms.x86; # fails on aarch64
+    maintainers = with maintainers; [ teh costrouc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix b/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix
index 2271be1d16f4..d89bc6023c69 100644
--- a/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-auth-ldap";
-  version = "2.2.0";
+  version = "2.3.0";
   disabled = isPy27;
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11af1773b08613339d2c3a0cec1308a4d563518f17b1719c3759994d0b4d04bf";
+    sha256 = "5894317122a086c9955ed366562869a81459cf6b663636b152857bb5d3a0a3b7";
   };
 
   propagatedBuildInputs = [ ldap django ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-cacheops/default.nix b/nixpkgs/pkgs/development/python-modules/django-cacheops/default.nix
new file mode 100644
index 000000000000..c9344d3bd010
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/django-cacheops/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+, django
+, funcy
+, redis
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "django-cacheops";
+  version = "5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-1YUc178whzhKH87PqN3bj1UDDu39b98SciW3W8oPmd0=";
+  };
+
+  propagatedBuildInputs = [
+    django
+    funcy
+    redis
+    six
+  ];
+
+  # tests need a redis server
+  # pythonImportsCheck not possible since DJANGO_SETTINGS_MODULE needs to be set
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A slick ORM cache with automatic granular event-driven invalidation for Django";
+    homepage = "https://github.com/Suor/django-cacheops";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ petabyteboy ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix b/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
index 455eeebddde0..9bd72965cf8b 100644
--- a/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "django-extensions";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "hZ6GS2VkXH8KfKZuL1rR6JS/nDkx8SfKuUx5XrvTbec=";
+    sha256 = "0ss5x3d21c3g8i1s79l4akazlf116yp4y50gx4vrk1dxh3jb29zj";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix b/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
index 9e3cf0dad99f..a9e295b04360 100644
--- a/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "django-mailman3";
-  version = "1.3.4";
+  version = "1.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7e37b68bb47e9ae196ca19018f576e2c8c90189c5bd82d4e549d0c2f2f3f35fb";
+    sha256 = "368595b3c2623edeaca5beea5f12887424c384edd6f7052cf442443075084313";
   };
 
   propagatedBuildInputs = [
@@ -22,10 +22,12 @@ buildPythonPackage rec {
     PYTHONPATH=.:$PYTHONPATH django-admin.py test --settings=django_mailman3.tests.settings_test
   '';
 
+  pythonImportsCheck = [ "django_mailman3" ];
+
   meta = with lib; {
     description = "Django library for Mailman UIs";
     homepage = "https://gitlab.com/mailman/django-mailman3";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ globin peti ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/django-q/default.nix b/nixpkgs/pkgs/development/python-modules/django-q/default.nix
index 16b1e0bcc59f..3d9d885daf7a 100644
--- a/nixpkgs/pkgs/development/python-modules/django-q/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-q/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "django-q";
-  version = "1.3.4";
+  version = "1.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "523d54dcf1b66152c1b658f914f00ed3b518a3432a9decd4898738ca8dbbe10f";
+    sha256 = "8871c602e2c7e892fbedc271d5b91c4a96803b689c3ee2f15464931f99f4e32b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/django-simple-captcha/default.nix b/nixpkgs/pkgs/development/python-modules/django-simple-captcha/default.nix
index 0724bf27b317..2a7f1e1da26d 100644
--- a/nixpkgs/pkgs/development/python-modules/django-simple-captcha/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-simple-captcha/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "django-simple-captcha";
-  version = "0.5.13";
+  version = "0.5.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e43ba3b61daf690ac0319157837bb57e31df8bddbdc9a59ef42ef1a99e21fa2";
+    sha256 = "84b5c188e6ae50e9ecec5e5d734c5bc4d2a50fbbca7f59d2c12da9a3bbee5051";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/django/3.nix b/nixpkgs/pkgs/development/python-modules/django/3.nix
index 7b447eb8d787..7f2db712f00a 100644
--- a/nixpkgs/pkgs/development/python-modules/django/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/django/3.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "3.1.6";
+  version = "3.1.7";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6c0462b8b361f8691171af1fb87eceb4442da28477e12200c40420176206ba7";
+    sha256 = "32ce792ee9b6a0cbbec340123e229ac9f765dff8c2a4ae9247a14b2ba3a365a7";
   };
 
   patches = lib.optional withGdal
diff --git a/nixpkgs/pkgs/development/python-modules/django_contrib_comments/default.nix b/nixpkgs/pkgs/development/python-modules/django_contrib_comments/default.nix
index a452db3cf281..3f717b0fb5ce 100644
--- a/nixpkgs/pkgs/development/python-modules/django_contrib_comments/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_contrib_comments/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-contrib-comments";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26350b2c353816570a74b7fb19c558ce00288625ac32886a5274f4f931c098f9";
+    sha256 = "d82f1d04690550df026553053903deec0c52dc54212e1b79241b08f0355cff2c";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix b/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix
index 816442d6e2a8..16358c54c1a7 100644
--- a/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "django_evolution";
-  version = "2.1";
+  version = "2.1.2";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "997efdc7f27248fd3c5e9eeccae1cfee046dfead037b171d30cbe6e91c9ca3d7";
+    sha256 = "28bad07b5e29a0ea4bd9727c6927cbee25d349d21606a553a0c748fbee0c073c";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/nixpkgs/pkgs/development/python-modules/dlib/default.nix b/nixpkgs/pkgs/development/python-modules/dlib/default.nix
index 204c1a985425..58ceb16870a8 100644
--- a/nixpkgs/pkgs/development/python-modules/dlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dlib/default.nix
@@ -1,4 +1,5 @@
 { buildPythonPackage, stdenv, lib, dlib, python, pytest, more-itertools
+, sse4Support ? stdenv.hostPlatform.sse4_1Support
 , avxSupport ? stdenv.hostPlatform.avxSupport
 }:
 
@@ -12,7 +13,10 @@ buildPythonPackage {
     ${python.interpreter} nix_run_setup test --no USE_AVX_INSTRUCTIONS
   '';
 
-  setupPyBuildFlags = lib.optional avxSupport "--no USE_AVX_INSTRUCTIONS";
+  setupPyBuildFlags = [
+    "--set USE_SSE4_INSTRUCTIONS=${if sse4Support then "yes" else "no"}"
+    "--set USE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}"
+  ];
 
   patches = [ ./build-cores.patch ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/docker/default.nix b/nixpkgs/pkgs/development/python-modules/docker/default.nix
index 5b148a9d62af..ab7a7b664b0d 100644
--- a/nixpkgs/pkgs/development/python-modules/docker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docker/default.nix
@@ -1,8 +1,11 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
 , backports_ssl_match_hostname
 , mock
 , paramiko
-, pytest
 , pytestCheckHook
 , requests
 , six
@@ -11,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "docker";
-  version = "4.4.1";
+  version = "4.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-BgSnRxnV0t5Dh1OTS3Vb/NpvYvSbjkswlppLCiqKEiA=";
+    sha256 = "d3393c878f575d3a9ca3b94471a3c89a6d960b35feb92f033c0de36cc9d934db";
   };
 
   nativeBuildInputs = lib.optional isPy27 mock;
@@ -32,8 +35,9 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [ "tests/unit" ];
+
   # Deselect socket tests on Darwin because it hits the path length limit for a Unix domain socket
-  disabledTests = lib.optionals stdenv.isDarwin [ "stream_response" "socket_file" ];
+  disabledTests = lib.optionals stdenv.isDarwin [ "api_test" "stream_response" "socket_file" ];
 
   dontUseSetuptoolsCheck = true;
 
diff --git a/nixpkgs/pkgs/development/python-modules/docloud/default.nix b/nixpkgs/pkgs/development/python-modules/docloud/default.nix
index f1ec269f7cbb..2c92b32c748c 100644
--- a/nixpkgs/pkgs/development/python-modules/docloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docloud/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , requests
+, six
 }:
 
 buildPythonPackage rec {
@@ -15,6 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     requests
+    six
   ];
 
   # Pypi's tarball doesn't contain tests. Source not available.
diff --git a/nixpkgs/pkgs/development/python-modules/docplex/default.nix b/nixpkgs/pkgs/development/python-modules/docplex/default.nix
index 0fa202addb92..54af81d5d8b0 100644
--- a/nixpkgs/pkgs/development/python-modules/docplex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docplex/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "docplex";
-  version = "2.19.202";
+  version = "2.20.204";
 
   # No source available from official repo
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2b606dc645f99feae67dfc528620dddc773ecef5d59bcaeae68bba601f25162b";
+    sha256 = "sha256-JNjD9UtLHsMGwTuXydZ+L5+pPQ2eobkr26Yt9pgs1qA=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/docrep/default.nix b/nixpkgs/pkgs/development/python-modules/docrep/default.nix
index cd1971234a3b..3e5d9f21a2bb 100644
--- a/nixpkgs/pkgs/development/python-modules/docrep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docrep/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "docrep";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ef6e7433716c0d2c59889aae8bff800b48e82d7e759dfd934b93100dc7bccaa1";
+    sha256 = "ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/docx2python/default.nix b/nixpkgs/pkgs/development/python-modules/docx2python/default.nix
new file mode 100644
index 000000000000..b6a63d48b357
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/docx2python/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "docx2python";
+  version = "unstable-2020-11-15";
+
+  # Pypi does not contain tests
+  src = fetchFromGitHub {
+    owner = "ShayHill";
+    repo = pname;
+    rev = "21b2edafc0a01a6cfb73aefc61747a65917e2cad";
+    sha256 = "1nwg17ziwm9a2x7yxsscj8zgc1d383ifsk5w7qa2fws6gf627kyi";
+  };
+
+  preCheck = "cd test"; # Tests require the `test/resources` folder to be accessible
+  checkInputs = [ pytestCheckHook ];
+  disabledTests = [ # asserts related to file deletions fail
+    "test_docx2python.py"
+    "test_docx_context.py"
+    "test_google_docs.py"
+  ];
+  pythonImportsCheck = [ "docx2python" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/ShayHill/docx2python";
+    description = "Extract docx headers, footers, (formatted) text, footnotes, endnotes, properties, and images";
+    maintainers = [ maintainers.ivar ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dopy/default.nix b/nixpkgs/pkgs/development/python-modules/dopy/default.nix
index 538a861c9f4c..9bd32d1ba4a1 100644
--- a/nixpkgs/pkgs/development/python-modules/dopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dopy/default.nix
@@ -5,18 +5,22 @@
 }:
 
 buildPythonPackage {
-  version = "2016-01-04";
   pname = "dopy";
+  version = "2016-01-04";
 
   src = pkgs.fetchFromGitHub {
     owner = "Wiredcraft";
     repo = "dopy";
     rev = "cb443214166a4e91b17c925f40009ac883336dc3";
-    sha256 ="0ams289qcgna96aak96jbz6wybs6qb95h2gn8lb4lmx2p5sq4q56";
+    sha256 = "0ams289qcgna96aak96jbz6wybs6qb95h2gn8lb4lmx2p5sq4q56";
   };
 
   propagatedBuildInputs = [ requests six ];
 
+  # contains no tests
+  doCheck = false;
+  pythonImportsCheck = [ "dopy" ];
+
   meta = with pkgs.lib; {
     description = "Digital Ocean API python wrapper";
     homepage = "https://github.com/Wiredcraft/dopy";
diff --git a/nixpkgs/pkgs/development/python-modules/dpkt/default.nix b/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
index 52f4f42661d9..ebaa4c88b968 100644
--- a/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dpkt";
-  version = "1.9.4";
+  version = "1.9.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f4e579cbaf6e2285ebf3a9e84019459b4367636bac079ba169527e582fca48b4";
+    sha256 = "141cab4defcb4ead83e664765ebb045f55dbe73e17d617acafd6eaf368d7c55e";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix b/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
index d69ece809bb9..ab1d551fea35 100644
--- a/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
@@ -1,13 +1,15 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  inflection,
-  ruamel_yaml,
-  setuptools_scm,
-  six,
-  coreapi,
-  djangorestframework,
+{ lib
+, buildPythonPackage
+, fetchPypi
+, inflection
+, ruamel_yaml
+, setuptools_scm
+, six
+, coreapi
+, djangorestframework
+, pytestCheckHook
+, pytest-django
+, datadiff
 }:
 
 buildPythonPackage rec {
@@ -19,6 +21,11 @@ buildPythonPackage rec {
     sha256 = "d50f197c7f02545d0b736df88c6d5cf874f8fea2507ad85ad7de6ae5bf2d9e5a";
   };
 
+  postPatch = ''
+    # https://github.com/axnsan12/drf-yasg/pull/710
+    substituteInPlace requirements/base.txt --replace packaging ""
+  '';
+
   nativeBuildInputs = [
     setuptools_scm
   ];
@@ -31,6 +38,17 @@ buildPythonPackage rec {
     djangorestframework
   ];
 
+  checkInputs = [
+    pytestCheckHook
+    pytest-django
+    datadiff
+  ];
+
+  # ImportError: No module named 'testproj.settings'
+  doCheck = false;
+
+  pythonImportsCheck = [ "drf_yasg" ];
+
   meta = with lib; {
     description = "Generation of Swagger/OpenAPI schemas for Django REST Framework";
     homepage = "https://github.com/axnsan12/drf-yasg";
diff --git a/nixpkgs/pkgs/development/python-modules/drivelib/default.nix b/nixpkgs/pkgs/development/python-modules/drivelib/default.nix
new file mode 100644
index 000000000000..526e58d14340
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/drivelib/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, expiringdict
+, google-auth-httplib2
+, google-auth-oauthlib
+, google-api-python-client
+}:
+
+buildPythonApplication rec {
+  pname = "drivelib";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bz3dn6wm9mlm2w8czwjmhvf3ws3iggr57hvd8z8acl1qafr2g4m";
+  };
+
+  propagatedBuildInputs = [
+    google-api-python-client
+    google-auth-oauthlib
+    google-auth-httplib2
+    expiringdict
+  ];
+
+  # tests depend on a google auth token
+  doCheck = false;
+
+  pythonImportsCheck = [ "drivelib" ];
+
+  meta = with lib; {
+    description = "Easy access to the most common Google Drive API calls";
+    homepage = "https://pypi.org/project/drivelib/";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ gravndal ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/duckdb/default.nix b/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
index ea6dfe32fda9..56fb450b3e5d 100644
--- a/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
@@ -6,7 +6,7 @@
 , pybind11
 , setuptools_scm
 , pytestrunner
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -31,18 +31,10 @@ buildPythonPackage rec {
     pytestrunner
   ];
 
-  checkInputs = [
-    pytest
-  ];
-
-  propagatedBuildInputs = [
-    numpy
-    pandas
-  ];
+  propagatedBuildInputs = [ numpy pandas ];
 
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "duckdb" ];
 
   meta = with lib; {
     description = "DuckDB is an embeddable SQL OLAP Database Management System";
diff --git a/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix b/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix
index f0d3bad7a04f..9a09c7cc75dd 100644
--- a/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix
+++ b/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Simple Python implementation of the Git file formats and protocols";
-    homepage = "https://samba.org/~jelmer/dulwich/";
+    homepage = "https://www.dulwich.io/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ koral ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/dulwich/default.nix b/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
index 4cc3f34929b7..9c7f62edf11a 100644
--- a/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
@@ -13,12 +13,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.20.18";
+  version = "0.20.21";
   pname = "dulwich";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ATE4f5uZrsxprJhlWzkx8q1D2lPTpj4FD6Om1iYKxVQ=";
+    sha256 = "sha256-rHZMmpuA+mGv40BNUnDFBgqlf38IexGpU5XTt287cf0=";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/nixpkgs/pkgs/development/python-modules/dwdwfsapi/default.nix b/nixpkgs/pkgs/development/python-modules/dwdwfsapi/default.nix
new file mode 100644
index 000000000000..6699050035d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dwdwfsapi/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, ciso8601
+}:
+
+buildPythonPackage rec {
+  pname = "dwdwfsapi";
+  version = "1.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-PX1b1msaZH8HKVBo3GU7TOr8Lo7INLjjJBkDHHs6mzk=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    ciso8601
+  ];
+
+  # All tests require network access
+  doCheck = false;
+
+  pythonImportsCheck = [ "dwdwfsapi" ];
+
+  meta = with lib; {
+    description = "Python client to retrieve data provided by DWD via their geoserver WFS API";
+    homepage = "https://github.com/stephan192/dwdwfsapi";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ elohmeier ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/easygui/default.nix b/nixpkgs/pkgs/development/python-modules/easygui/default.nix
index 322e6461e5d4..108c5287eb6e 100644
--- a/nixpkgs/pkgs/development/python-modules/easygui/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/easygui/default.nix
@@ -1,16 +1,26 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{ lib, fetchPypi, buildPythonPackage, tkinter }:
 
 buildPythonPackage rec {
   pname = "easygui";
-  version = "0.98.1";
+  version = "0.98.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zmvmwgxyzvm83818skhn8b4wrci4kmnixaax8q3ia5cn7xrmj6v";
+    sha256 = "073f728ca88a77b74f404446fb8ec3004945427677c5618bd00f70c1b999fef2";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py --replace README.md README.txt
+  '';
+
+  propagatedBuildInputs = [
+    tkinter
+  ];
+
   doCheck = false; # No tests available
 
+  pythonImportsCheck = [ "easygui" ];
+
   meta = with lib; {
     description = "Very simple, very easy GUI programming in Python";
     homepage = "https://github.com/robertlugg/easygui";
diff --git a/nixpkgs/pkgs/development/python-modules/easywatch/default.nix b/nixpkgs/pkgs/development/python-modules/easywatch/default.nix
index a56ffb952819..36f3ea0de6ef 100644
--- a/nixpkgs/pkgs/development/python-modules/easywatch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/easywatch/default.nix
@@ -17,6 +17,7 @@ buildPythonPackage rec {
 
   # There are no tests
   doCheck = false;
+  pythonImportsCheck = [ "easywatch" ];
 
   meta = with lib; {
     description = "Dead-simple way to watch a directory";
diff --git a/nixpkgs/pkgs/development/python-modules/editdistance/default.nix b/nixpkgs/pkgs/development/python-modules/editdistance/default.nix
new file mode 100644
index 000000000000..01e59fdb040d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/editdistance/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, cython
+}:
+
+buildPythonPackage rec {
+  pname = "editdistance";
+  version = "0.5.3";
+
+
+  src = fetchFromGitHub {
+    owner = "roy-ht";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0vk8vz41p2cs7s7zbaw3cnw2jnvy5rhy525xral68dh14digpgsd";
+  };
+
+  nativeBuildInputs = [ cython ];
+
+  preBuild = ''
+    cythonize --inplace editdistance/bycython.pyx
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "editdistance" ];
+
+  meta = with lib; {
+    description = "Python implementation of the edit distance (Levenshtein distance)";
+    homepage = "https://github.com/roy-ht/editdistance";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix b/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
index 9161525c2bc6..465e8f6c772a 100644
--- a/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage (rec {
   pname = "elasticsearch";
-  version = "7.10.1";
+  version = "7.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a725dd923d349ca0652cf95d6ce23d952e2153740cf4ab6daf4a2d804feeed48";
+    sha256 = "1e24b33a82bf381b42d3b0d390f76fdb9d6a9d47b310dea8eaeb0a5933c394c0";
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/nixpkgs/pkgs/development/python-modules/elementpath/default.nix b/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
index a5a639484ec1..c98937804a31 100644
--- a/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27 }:
 
 buildPythonPackage rec {
-  version = "2.1.3";
+  version = "2.2.1";
   pname = "elementpath";
   disabled = isPy27; # uses incompatible class syntax
 
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "elementpath";
     rev = "v${version}";
-    sha256 = "062l1dqbaz1pab3qz6x5zmja8m8gw1bxgfl4kx91gdh0zsiakg8j";
+    sha256 = "15yjl18n81zddd27789mcy12gnja3cqycjdykybwgd9i0ysj96gl";
   };
 
   # avoid circular dependency with xmlschema which directly depends on this
diff --git a/nixpkgs/pkgs/development/python-modules/elmax/default.nix b/nixpkgs/pkgs/development/python-modules/elmax/default.nix
new file mode 100644
index 000000000000..7ec3b8d1c112
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/elmax/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, poetry-core
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "elmax";
+  version = "0.1.1";
+  format = "pyproject";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-ecosystem";
+    repo = "python-elmax";
+    rev = version;
+    sha256 = "sha256-vDISJ/CVOjpM+GPF2TCm3/AMFTWTM0b/+ZPCpAEvNvY=";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    httpx
+    yarl
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "elmax" ];
+
+  meta = with lib; {
+    description = "Python API client for the Elmax Cloud services";
+    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/enrich/default.nix b/nixpkgs/pkgs/development/python-modules/enrich/default.nix
new file mode 100644
index 000000000000..2b81577af22d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/enrich/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, setuptools-scm, rich, pytest-mock }:
+
+buildPythonPackage rec {
+  pname = "enrich";
+  version = "1.2.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-Dpn/V9h/e13vDKeZF+iPuTUaoNUuIo7ji/982FgxX+Q=";
+  };
+
+  buildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [ rich ];
+
+  checkInputs = [ pytestCheckHook pytest-mock ];
+
+  pythonImportsCheck = [ "enrich" ];
+
+  meta = with lib; {
+    description = "Enrich adds few missing features to the wonderful rich library";
+    homepage = "https://github.com/pycontribs/enrich";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/entrance/default.nix b/nixpkgs/pkgs/development/python-modules/entrance/default.nix
index 2f0f80bcf7a5..ca6158bd5e96 100644
--- a/nixpkgs/pkgs/development/python-modules/entrance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/entrance/default.nix
@@ -18,11 +18,11 @@ in
 
 buildPythonPackage rec {
   pname = "entrance";
-  version = "1.1.14";
+  version = "1.1.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d1fc9d128ce05837d7e149413fbec71bcf84d9ca510accea56761d3f4bd0a021";
+    sha256 = "5b354ecf03226edae567511c8a8db95038cc9c3da20fcfcf5546d1e197eb3aef";
   };
 
   # The versions of `sanic` and `websockets` in nixpkgs only support 3.6 or later
diff --git a/nixpkgs/pkgs/development/python-modules/envisage/default.nix b/nixpkgs/pkgs/development/python-modules/envisage/default.nix
index 397e573a252f..f53184a8166c 100644
--- a/nixpkgs/pkgs/development/python-modules/envisage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/envisage/default.nix
@@ -1,18 +1,18 @@
-{ lib, fetchPypi, fetchpatch, isPy27
+{ lib, fetchPypi, isPy27
 , buildPythonPackage
-, traits, apptools
-, python, ipykernel, ipython
+, traits, apptools, pytestCheckHook
+, ipykernel, ipython
 }:
 
 buildPythonPackage rec {
   pname = "envisage";
-  version = "4.9.2";
+  version = "5.0.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1srjmkhnz84nz5jd72vdsnc4fn7dd9jr8nyf3hzk6yx1dsn815gd";
+    sha256 = "0zrxlq4v3091727vf10ngc8418sp26raxa8q83i4h0sydfkh2dic";
   };
 
   propagatedBuildInputs = [ traits apptools ];
@@ -21,22 +21,10 @@ buildPythonPackage rec {
     export HOME=$PWD/HOME
   '';
 
-  # fix a test failure; should be merged in next release
-  patches = [ (fetchpatch {
-    url = "https://github.com/enthought/envisage/pull/248/commits/7b6d2dd615d5cb7455b200eb8f37e030bbf4df9e.patch";
-    sha256 = "0a3dmbpxwsn1bkjcjv9v7b751rcmppj6hc9wcgiayg4l9r2nrvyh";
-  }) ];
-
   checkInputs = [
-    ipykernel ipython
+    ipykernel ipython pytestCheckHook
   ];
 
-  checkPhase = ''
-    runHook preCheck
-    ${python.interpreter} -m unittest
-    runHook postCheck
-  '';
-
   meta = with lib; {
     description = "Framework for building applications whose functionalities can be extended by adding 'plug-ins'";
     homepage = "https://github.com/enthought/envisage";
diff --git a/nixpkgs/pkgs/development/python-modules/etebase/default.nix b/nixpkgs/pkgs/development/python-modules/etebase/default.nix
index 7832f6b4787a..14c93fc719f2 100644
--- a/nixpkgs/pkgs/development/python-modules/etebase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/etebase/default.nix
@@ -1,56 +1,59 @@
-{ lib, stdenv
-, wheel
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildPythonPackage
 , rustPlatform
-, pipInstallHook
+, pkg-config
+, rustfmt
 , setuptools-rust
-, python
-, msgpack
-, requests
 , openssl
-, perl
-, rustfmt
-, fetchFromGitHub
 , Security
+, msgpack
 }:
 
-rustPlatform.buildRustPackage rec {
+buildPythonPackage rec {
   pname = "etebase";
-  version = "0.31.1";
+  version = "0.31.2";
 
   src = fetchFromGitHub {
     owner = "etesync";
     repo = "etebase-py";
     rev = "v${version}";
-    sha256 = "163iw64l8lwawf84qswcjsq9p8qddv9ysjrr3dzqpqxb2yb0sy39";
+    hash = "sha256-enGmfXW8eV6FgdHfJqXr1orAsGbxDz9xUY6T706sf5U=";
   };
 
-  cargoSha256 = "0w8ypl6kj1mf6ahbdiwbd4jw6ldxdaig47zwk91jjsww5lbyx4lf";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-4eJvFf6aY+DYkrYgam5Ok9941PX4uQOmtRznEY0+1TE=";
+  };
+
+  format = "pyproject";
 
   nativeBuildInputs = [
+    pkg-config
     rustfmt
-    perl
-    openssl
-    pipInstallHook
     setuptools-rust
-    wheel
-  ];
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
 
   propagatedBuildInputs = [
-    python
     msgpack
   ];
 
-  doCheck = true;
-
-  buildPhase = ''
-    ${python.interpreter} setup.py bdist_wheel
+  postPatch = ''
+    # Use system OpenSSL, which gets security updates.
+    substituteInPlace Cargo.toml \
+      --replace ', features = ["vendored"]' ""
   '';
 
-  installPhase = ''
-    pipInstallPhase
-  '';
+  pythonImportsCheck = [ "etebase" ];
+
 
   meta = with lib; {
     homepage = "https://www.etebase.com/";
diff --git a/nixpkgs/pkgs/development/python-modules/eve/default.nix b/nixpkgs/pkgs/development/python-modules/eve/default.nix
index 4d5c6173cd79..32f531e4ff59 100644
--- a/nixpkgs/pkgs/development/python-modules/eve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eve/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "Eve";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a057277bba7144a0c15ab8c737dc8a1002e87e7284847aa011ce122e353418e";
+    sha256 = "5647ee7dd6e063b967276e49f564cd4f96decdd0a218482bdf86c404a2be1fbf";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/eventlet/default.nix b/nixpkgs/pkgs/development/python-modules/eventlet/default.nix
index 93b058859858..9966dd81d2ee 100644
--- a/nixpkgs/pkgs/development/python-modules/eventlet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eventlet/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "eventlet";
-  version = "0.30.0";
+  version = "0.30.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19d6f3aa9525221ba60d0ec31b570508021af7ad5497fb77f77501fe9a7c34d3";
+    sha256 = "d00649a7e17de0bcddff1a96311ed3baf1b295b3223d4b71aceafe7b45e6d6f8";
   };
 
   propagatedBuildInputs = [ dnspython greenlet monotonic six ]
diff --git a/nixpkgs/pkgs/development/python-modules/evohome-async/default.nix b/nixpkgs/pkgs/development/python-modules/evohome-async/default.nix
new file mode 100644
index 000000000000..0f38faf57340
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/evohome-async/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "evohome-async";
+  version = "0.3.8";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "zxdavb";
+    repo = pname;
+    rev = version;
+    sha256 = "04xy72k79cnb8pc19v5jzkc0djazfm6pbm10ysphx06ndwvxr9mn";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "evohomeasync2" ];
+
+  meta = with lib; {
+    description = "Python client for connecting to Honeywell's TCC RESTful API";
+    homepage = "https://github.com/zxdavb/evohome-async";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/exdown/default.nix b/nixpkgs/pkgs/development/python-modules/exdown/default.nix
index 17cab3fe55fb..9daf9a00bfd0 100644
--- a/nixpkgs/pkgs/development/python-modules/exdown/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/exdown/default.nix
@@ -1,14 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
+{ lib, buildPythonPackage, isPy27, fetchPypi, pythonOlder
 , importlib-metadata }:
 
 buildPythonPackage rec {
   pname = "exdown";
-  version = "0.7.1";
+  version = "0.8.6";
   format = "pyproject";
 
+  disabled = isPy27;
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-vnSso3vmPIjX7JX+NwoxguwqwPHocJACeh5H0ClPcUI=";
+    sha256 = "sha256-BCn+rkMxQSw/gO+dpzgpYSOqEiooWFzSh7LUYIFr6wE=";
   };
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
diff --git a/nixpkgs/pkgs/development/python-modules/execnet/default.nix b/nixpkgs/pkgs/development/python-modules/execnet/default.nix
index ec4bcca9f86a..b66c8a28128c 100644
--- a/nixpkgs/pkgs/development/python-modules/execnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/execnet/default.nix
@@ -2,22 +2,22 @@
 , buildPythonPackage
 , isPyPy
 , fetchPypi
-, pytest
-, setuptools_scm
+, pytestCheckHook
+, setuptools-scm
 , apipkg
 }:
 
 buildPythonPackage rec {
   pname = "execnet";
-  version = "1.7.1";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cacb9df31c9680ec5f95553976c4da484d407e85e41c83cb812aa014f0eddc50";
+    sha256 = "sha256-tzxVZeUX8kti3qilzqwXjGYcQwnTqgw+QghWwHLEEbQ=";
   };
 
-  checkInputs = [ pytest ];
-  nativeBuildInputs = [ setuptools_scm ];
+  checkInputs = [ pytestCheckHook ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ apipkg ];
 
   # remove vbox tests
@@ -29,15 +29,13 @@ buildPythonPackage rec {
     ${lib.optionalString isPyPy "rm -v testing/test_multi.py"}
   '';
 
-  checkPhase = ''
-    py.test testing
-  '';
+  pythonImportsCheck = [ "execnet" ];
 
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "Rapid multi-Python deployment";
-    license = licenses.gpl2;
+    description = "Distributed Python deployment and communication";
+    license = licenses.mit;
     homepage = "https://execnet.readthedocs.io/";
     maintainers = with maintainers; [ nand0p ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/executing/default.nix b/nixpkgs/pkgs/development/python-modules/executing/default.nix
index 84026d7374c4..f0c67f3ae591 100644
--- a/nixpkgs/pkgs/development/python-modules/executing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/executing/default.nix
@@ -1,15 +1,27 @@
-{ lib, buildPythonPackage, fetchzip, pytest, asttokens }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, asttokens
+}:
 
 buildPythonPackage rec {
   pname = "executing";
-  version = "0.4.3";
+  version = "0.5.4";
 
-  src = fetchzip {
-    url = "https://github.com/alexmojaki/executing/archive/v${version}.tar.gz";
-    sha256 = "1fqfc26nl703nsx2flzf7x4mgr3rpbd8pnn9c195rca648zhi3nh";
+  src = fetchFromGitHub {
+    owner = "alexmojaki";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1hqx94h6l2wg9sljiaajfay2nr62sqa819w3bxrz8cdki1abdygv";
   };
 
-  checkInputs = [ pytest asttokens ];
+  preBuild = ''
+    export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
+  '';
+
+  # Tests appear to run fine (Ran 22 tests in 4.076s) with setuptoolsCheckPhase
+  # but crash with pytestCheckHook
+  checkInputs = [ asttokens ];
 
   meta = with lib; {
     description = "Get information about what a frame is currently doing, particularly the AST node being executed";
diff --git a/nixpkgs/pkgs/development/python-modules/expiringdict/default.nix b/nixpkgs/pkgs/development/python-modules/expiringdict/default.nix
new file mode 100644
index 000000000000..23ca9c1c3f2a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/expiringdict/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, dill
+, coverage
+, coveralls
+, mock
+, nose
+}:
+
+buildPythonApplication rec {
+  pname = "expiringdict";
+  version = "1.2.1";
+
+  # use fetchFromGitHub instead of fetchPypi because the test suite of
+  # the package is not included into the PyPI tarball
+  src = fetchFromGitHub {
+    owner = "mailgun";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07g1vxznmim78bankfl9brr01s31sksdcpwynq1yryh6xw9ri5xs";
+  };
+
+  checkInputs = [
+    dill
+    coverage
+    coveralls
+    mock
+    nose
+  ];
+
+  checkPhase = ''
+    nosetests -v --with-coverage --cover-package=expiringdict
+  '';
+
+  pythonImportsCheck = [ "expiringdict" ];
+
+  meta = with lib; {
+    description = "Dictionary with auto-expiring values for caching purposes";
+    homepage = "https://pypi.org/project/expiringdict/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ gravndal ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/exrex/default.nix b/nixpkgs/pkgs/development/python-modules/exrex/default.nix
new file mode 100644
index 000000000000..8c980c8d00fa
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/exrex/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "exrex";
+  version = "0.10.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wq8nyycdprxl9q9y1pfhkbca4rvysj45h1xn7waybl3v67v3f1z";
+  };
+
+  # Projec thas no released tests
+  doCheck = false;
+  pythonImportsCheck = [ "exrex" ];
+
+  meta = with lib; {
+    description = "Irregular methods on regular expressions";
+    homepage = "https://github.com/asciimoo/exrex";
+    license = with licenses; [ agpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/faadelays/default.nix b/nixpkgs/pkgs/development/python-modules/faadelays/default.nix
new file mode 100644
index 000000000000..3175aabcae84
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/faadelays/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "faadelays";
+  version = "0.0.6";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02z8p0n9d6n4l6v1m969009gxwmy5v14z108r4f3swd6yrk0h2xd";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "faadelays" ];
+
+  meta = with lib; {
+    description = "Python package to retrieve FAA airport status";
+    homepage = "https://github.com/ntilley905/faadelays";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix b/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
new file mode 100644
index 000000000000..b0cf3b546fd7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, aioredis
+, async_generator
+, buildPythonPackage
+, fetchPypi
+, hypothesis
+, lupa
+, pytest-asyncio
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, redis
+, six
+, sortedcontainers
+}:
+
+buildPythonPackage rec {
+  pname = "fakeredis";
+  version = "1.5.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ac0cef767c37f51718874a33afb5413e69d132988cb6a80c6e6dbeddf8c7623";
+  };
+
+  propagatedBuildInputs = [
+    aioredis
+    lupa
+    redis
+    six
+    sortedcontainers
+  ];
+
+  checkInputs = [
+    async_generator
+    hypothesis
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "fakeredis" ];
+
+  meta = with lib; {
+    description = "Fake implementation of Redis API";
+    homepage = "https://github.com/jamesls/fakeredis";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix b/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix
index 07922ee19efa..dc25759afe39 100644
--- a/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix
@@ -1,5 +1,5 @@
-{ lib, buildPythonPackage, fetchFromGitHub, numba, numpy, pandas, pytestrunner,
-thrift, pytest, python-snappy, lz4, zstd }:
+{ lib, buildPythonPackage, fetchFromGitHub, numba, numpy, pandas, pytestrunner
+, thrift, pytestCheckHook, python-snappy, lz4, zstandard, zstd }:
 
 buildPythonPackage rec {
   pname = "fastparquet";
@@ -12,15 +12,13 @@ buildPythonPackage rec {
     sha256 = "17i091kky34m2xivk29fqsyxxxa7v4352n79w01n7ni93za6wana";
   };
 
-  postPatch = ''
-    # FIXME: package zstandard
-    # removing the test dependency for now
-    substituteInPlace setup.py --replace "'zstandard'," ""
-  '';
-
   nativeBuildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ numba numpy pandas thrift ];
-  checkInputs = [ pytest python-snappy lz4 zstd ];
+  checkInputs = [ pytestCheckHook python-snappy lz4 zstandard zstd ];
+
+  # E   ModuleNotFoundError: No module named 'fastparquet.speedups'
+  doCheck = false;
+  pythonImportsCheck = [ "fastparquet" ];
 
   meta = with lib; {
     description = "A python implementation of the parquet format";
diff --git a/nixpkgs/pkgs/development/python-modules/fe25519/default.nix b/nixpkgs/pkgs/development/python-modules/fe25519/default.nix
new file mode 100644
index 000000000000..466de64453f4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fe25519/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, bitlist
+, buildPythonPackage
+, fetchPypi
+, fountains
+, parts
+, nose
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "fe25519";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1m85qvw9dwxk81mv9k45c9n75pk8wqn70qkinqh56h5zv56vgq24";
+  };
+
+  propagatedBuildInputs = [
+    bitlist
+    fountains
+    parts
+  ];
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "fe25519" ];
+
+  meta = with lib; {
+    description = "Python field operations for Curve25519's prime";
+    homepage = "https://github.com/BjoernMHaase/fe25519";
+    license = with licenses; [ cc0 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fido2/default.nix b/nixpkgs/pkgs/development/python-modules/fido2/default.nix
index 96019f61cac0..1e1af8e95916 100644
--- a/nixpkgs/pkgs/development/python-modules/fido2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fido2/default.nix
@@ -9,17 +9,29 @@
 
 buildPythonPackage rec {
   pname = "fido2";
-  version = "0.8.1";
+  version = "0.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1hzprnd407g2xh9kyv8j8pq949hwr1snmg3fp65pqfbghzv6i424";
+    hash = "sha256-hoDuJSOOIwdZbrOQCg+MDZzJEYkUbtgDlUTxo6ad/m4=";
   };
 
   propagatedBuildInputs = [ six cryptography ];
 
   checkInputs = [ mock pyfakefs ];
 
+  # Testing with `python setup.py test` doesn't work:
+  # https://github.com/Yubico/python-fido2/issues/108#issuecomment-763513576
+  checkPhase = ''
+    runHook preCheck
+
+    python -m unittest discover -v
+
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [ "fido2" ];
+
   meta = with lib; {
     description = "Provides library functionality for FIDO 2.0, including communication with a device over USB.";
     homepage = "https://github.com/Yubico/python-fido2";
diff --git a/nixpkgs/pkgs/development/python-modules/fints/default.nix b/nixpkgs/pkgs/development/python-modules/fints/default.nix
index c4dfc04046b7..7972a9374c78 100644
--- a/nixpkgs/pkgs/development/python-modules/fints/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fints/default.nix
@@ -1,13 +1,14 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27
 , bleach
 , mt-940
-, pytest
 , requests
 , sepaxml
+, pytestCheckHook
+, pytest-mock
 }:
 
 buildPythonPackage rec {
-  version = "3.0.0";
+  version = "3.0.1";
   pname = "fints";
   disabled = isPy27;
 
@@ -15,22 +16,17 @@ buildPythonPackage rec {
     owner = "raphaelm";
     repo = "python-fints";
     rev = "v${version}";
-    sha256 = "00fqgnmv7z6d792ga4cyzn9lrfjf79jplkssm2jbyb0akfggfj7h";
+    sha256 = "sha256-P9+3QuB5c7WMjic2fSp8pwXrOUHIrLThvfodtbBXLMY=";
   };
 
   propagatedBuildInputs = [ requests mt-940 sepaxml bleach ];
 
-  checkInputs = [ pytest ];
-
-  # ignore network calls and broken fixture
-  checkPhase = ''
-    pytest . --ignore=tests/test_client.py -k 'not robust_mode'
-  '';
+  checkInputs = [ pytestCheckHook pytest-mock ];
 
   meta = with lib; {
     homepage = "https://github.com/raphaelm/python-fints/";
     description = "Pure-python FinTS (formerly known as HBCI) implementation";
-    license = licenses.lgpl3;
-    maintainers = with maintainers; [ elohmeier ];
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ elohmeier dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/fiona/default.nix b/nixpkgs/pkgs/development/python-modules/fiona/default.nix
index 665bb0c8df0e..42f1a410624c 100644
--- a/nixpkgs/pkgs/development/python-modules/fiona/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fiona/default.nix
@@ -2,6 +2,7 @@
 , attrs, click, cligj, click-plugins, six, munch, enum34
 , pytest, boto3, mock, giflib, pytz
 , gdal_2 # can't bump to 3 yet, https://github.com/Toblerity/Fiona/issues/745
+, certifi
 }:
 
 buildPythonPackage rec {
@@ -25,6 +26,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     attrs
+    certifi
     click
     cligj
     click-plugins
diff --git a/nixpkgs/pkgs/development/python-modules/fipy/default.nix b/nixpkgs/pkgs/development/python-modules/fipy/default.nix
index d54379d0683e..ab670e557da4 100644
--- a/nixpkgs/pkgs/development/python-modules/fipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fipy/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , numpy
 , scipy
 , pyamg
@@ -18,41 +17,37 @@
 , fetchurl
 }:
 
-let
-  not_darwin_inputs = lib.optionals (! stdenv.isDarwin) [ gmsh ];
-in
-  buildPythonPackage rec {
-    pname = "fipy";
-    version = "3.4.1";
+buildPythonPackage rec {
+  pname = "fipy";
+  version = "3.4.2.1";
 
-    src = fetchurl {
-      url = "https://github.com/usnistgov/fipy/releases/download/${version}/FiPy-${version}.tar.gz";
-      sha256 = "0078yg96fknqhywn1v26ryc5z47c0j0c1qwz6p8wsjn0wmzggaqk";
-    };
+  src = fetchurl {
+    url = "https://github.com/usnistgov/fipy/releases/download/${version}/FiPy-${version}.tar.gz";
+    sha256 = "0v5yk9b4hksy3176w4vm4gagb9kxqgv75zcyswlqvl371qwy1grk";
+  };
 
-    propagatedBuildInputs = [
-      numpy
-      scipy
-      pyamg
-      matplotlib
-      tkinter
-      mpi4py
-      future
-      scikit-fmm
-      openssh
-    ] ++ lib.optionals isPy27 [ pysparse ] ++ not_darwin_inputs;
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    pyamg
+    matplotlib
+    tkinter
+    mpi4py
+    future
+    scikit-fmm
+    openssh
+  ] ++ lib.optionals isPy27 [ pysparse ]
+  ++ lib.optionals (!stdenv.isDarwin) [ gmsh ];
 
-    checkInputs = not_darwin_inputs;
+  checkPhase = ''
+    export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
+    ${python.interpreter} setup.py test --modules
+  '';
 
-    checkPhase = ''
-      export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
-      ${python.interpreter} setup.py test --modules
-    '';
-
-    meta = with lib; {
-      homepage = "https://www.ctcms.nist.gov/fipy/";
-      description = "A Finite Volume PDE Solver Using Python";
-      license = licenses.free;
-      maintainers = with maintainers; [ costrouc wd15 ];
-    };
-  }
+  meta = with lib; {
+    homepage = "https://www.ctcms.nist.gov/fipy/";
+    description = "A Finite Volume PDE Solver Using Python";
+    license = licenses.free;
+    maintainers = with maintainers; [ costrouc wd15 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fixtures/default.nix b/nixpkgs/pkgs/development/python-modules/fixtures/default.nix
index 9f1549e98f9f..e802dbaa2691 100644
--- a/nixpkgs/pkgs/development/python-modules/fixtures/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fixtures/default.nix
@@ -1,11 +1,12 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
+, pythonAtLeast
 , pbr
 , testtools
 , mock
 , python
-, isPy39
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,26 @@ buildPythonPackage rec {
     sha256 = "fcf0d60234f1544da717a9738325812de1f42c2fa085e2d9252d8fff5712b2ef";
   };
 
-  propagatedBuildInputs = [ pbr testtools mock ];
+  patches = lib.optional (pythonAtLeast "3.9") [
+    # drop tests that try to monkeypatch a classmethod, which fails on python3.9
+    # https://github.com/testing-cabal/fixtures/issues/44
+    (fetchpatch {
+       url = "https://salsa.debian.org/openstack-team/python/python-fixtures/-/raw/debian/victoria/debian/patches/remove-broken-monkey-patch-test.patch";
+       sha256 = "1s3hg2zmqc4shmnf90kscphzj5qlqpxghzw2a59p8f88zrbsj97r";
+    })
+  ];
+
+  nativeBuildInputs = [
+    pbr
+  ];
+
+  propagatedBuildInputs = [
+    testtools
+  ];
+
+  checkInputs = [
+    mock
+  ];
 
   checkPhase = ''
     ${python.interpreter} -m testtools.run fixtures.test_suite
@@ -27,6 +47,5 @@ buildPythonPackage rec {
     description = "Reusable state for writing clean tests and more";
     homepage = "https://pypi.python.org/pypi/fixtures";
     license = lib.licenses.asl20;
-    broken = isPy39; # see https://github.com/testing-cabal/fixtures/issues/44
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flammkuchen/default.nix b/nixpkgs/pkgs/development/python-modules/flammkuchen/default.nix
index a5525d97f604..1349e10c5397 100644
--- a/nixpkgs/pkgs/development/python-modules/flammkuchen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flammkuchen/default.nix
@@ -1,4 +1,4 @@
-{ lib, pkgs, buildPythonPackage, fetchPypi, isPy27
+{ lib, buildPythonPackage, fetchPypi, isPy27
 , numpy
 , scipy
 , tables
diff --git a/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix b/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix
index 1e133df2b2bb..06c91670f449 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix
@@ -3,12 +3,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.8.0";
+  version = "1.9.0";
   pname = "Flask-Compress";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c132590e7c948877a96d675c13cbfa64edec0faafa2381678dea6f36aa49a552";
+    sha256 = "d93edd8fc02ae74b73c3df10a8e7ee26dee489c65dedce0b3a1d2ce05ac3d1be";
   };
 
   propagatedBuildInputs = [ flask brotli ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix b/nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix
index 580cd1f89f7b..dd018d84a6d3 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-JWT-Extended";
-  version = "3.25.0";
+  version = "3.25.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b2e4dba91661e4697b30269106386c2b29e416a00d9ff66b26c462edddc10078";
+    sha256 = "bbf4467f41c56cf1fd8a5870d2556f419c572aad2b4085757581c3f9b4d7767a";
   };
 
   propagatedBuildInputs = [ dateutil flask pyjwt werkzeug ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix b/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
index d22096f91494..418225550167 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
@@ -1,16 +1,60 @@
-{ lib, fetchPypi, buildPythonPackage, flask, limits }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flask
+, flask-restful
+, hiro
+, limits
+, mock
+, ordereddict
+, pymemcache
+, pytestCheckHook
+, redis
+}:
 
 buildPythonPackage rec {
   pname = "Flask-Limiter";
   version = "1.4";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "021279c905a1e24f181377ab3be711be7541734b494f4e6db2b8edeba7601e48";
+  src = fetchFromGitHub {
+    owner = "alisaifee";
+    repo = "flask-limiter";
+    rev = version;
+    sha256 = "1k1b4b3s1acphqnar0y5g747bh1y7w35gcl5g819idq2a5vqnass";
   };
 
   propagatedBuildInputs = [ flask limits ];
 
+  checkInputs = [
+    pytestCheckHook
+    hiro
+    mock
+    redis
+    flask-restful
+    pymemcache
+    ordereddict
+  ];
+
+  postPatch = ''
+    sed -i "/--cov/d" pytest.ini
+  '';
+
+  # Some tests requires a local Redis instance
+  disabledTests = [
+    "test_fallback_to_memory"
+    "test_reset_unsupported"
+    "test_constructor_arguments_over_config"
+    "test_fallback_to_memory_config"
+    "test_fallback_to_memory_backoff_check"
+    "test_fallback_to_memory_with_global_override"
+    "test_custom_key_prefix"
+    "test_redis_request_slower_than_fixed_window"
+    "test_redis_request_slower_than_moving_window"
+    "test_custom_key_prefix_with_headers"
+  ];
+
+  pythonImportsCheck = [ "flask_limiter" ];
+
   meta = with lib; {
     description = "Rate limiting for flask applications";
     homepage = "https://flask-limiter.readthedocs.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix b/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
index dfa1a0fbd01b..5297c83d64b7 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-Migrate";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8626af845e6071ef80c70b0dc16d373f761c981f0ad61bb143a529cab649e725";
+    sha256 = "ae2f05671588762dd83a21d8b18c51fe355e86783e24594995ff8d7380dffe38";
   };
 
   checkInputs = [ flask_script ] ++ lib.optional isPy3k glibcLocales;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-seasurf/default.nix b/nixpkgs/pkgs/development/python-modules/flask-seasurf/default.nix
new file mode 100644
index 000000000000..ff1f97c42184
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/flask-seasurf/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub, buildPythonPackage, isPy3k, flask }:
+
+buildPythonPackage rec {
+  pname = "Flask-SeaSurf";
+  version = "0.3.0";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "maxcountryman";
+    repo = "flask-seasurf";
+    rev = version;
+    sha256 = "02hsvppsz1d93v641f14fdnd22gbc12ilc9k9kn7wl119n5s3pd8";
+  };
+
+  propagatedBuildInputs = [ flask ];
+
+  pythonImportsCheck = [ "flask_seasurf" ];
+
+  meta = with lib; {
+    description = "A Flask extension for preventing cross-site request forgery";
+    homepage = "https://github.com/maxcountryman/flask-seasurf";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/flask-sslify/default.nix b/nixpkgs/pkgs/development/python-modules/flask-sslify/default.nix
new file mode 100644
index 000000000000..ad4bc4dc0523
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/flask-sslify/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchPypi, buildPythonPackage, flask }:
+
+buildPythonPackage rec {
+  pname = "Flask-SSLify";
+  version = "0.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0gjl1m828z5dm3c5dpc2qjgi4llf84cp72mafr0ib5fd14y1sgnk";
+  };
+
+  propagatedBuildInputs = [ flask ];
+
+  doCheck = false;
+  pythonImportsCheck = [ "flask_sslify" ];
+
+  meta = with lib; {
+    description = "A Flask extension that redirects all incoming requests to HTTPS";
+    homepage = "https://github.com/kennethreitz42/flask-sslify";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/flower/default.nix b/nixpkgs/pkgs/development/python-modules/flower/default.nix
index 605d08d1258e..3662116bc2a6 100644
--- a/nixpkgs/pkgs/development/python-modules/flower/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flower/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "flower";
-  version = "0.9.5";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "171zckhk9ni14f1d82wf62hhciy0gx13fd02sr9m9qlj50fnv4an";
+    sha256 = "cf27a254268bb06fd4972408d0518237fcd847f7da4b4cd8055e228150ace8f3";
   };
 
   postPatch = ''
@@ -35,11 +35,13 @@ buildPythonPackage rec {
 
   checkInputs = [ mock ];
 
+  pythonImportsCheck = [ "flower" ];
+
   meta = with lib; {
     description = "Celery Flower";
     homepage = "https://github.com/mher/flower";
     license = licenses.bsdOriginal;
     maintainers = [ maintainers.arnoldfarkas ];
-    broken = (celery.version == "5.0.2"); # currently broken with celery>=5.0 by https://github.com/mher/flower/pull/1021
+    broken = (celery.version >= "5.0.2"); # currently broken with celery>=5.0 by https://github.com/mher/flower/pull/1021
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix b/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix
index 9fd36fab2941..f8468209bb45 100644
--- a/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "flowlogs_reader";
-  version = "2.3.0";
+  version = "2.4.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19118ff77925c66a6782152066d86bc8d5c6ed60189b642263fb0c6eb7cb22ef";
+    sha256 = "e47637b40a068a0c814ba2087fb691b43aa12e6174ab06b6cdb7109bb94624e4";
   };
 
   propagatedBuildInputs = [ botocore boto3 docutils ];
diff --git a/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix b/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix
index 70c9173f4d50..00cc8bf58a3f 100644
--- a/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "fluent-logger";
-  version = "0.9.6";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7d47eae4d2a11c8cb0df10ae3d034d95b0b8cef9d060e59e7519ad1f82ffa73";
+    sha256 = "678bda90c513ff0393964b64544ce41ef25669d2089ce6c3b63d9a18554b9bfa";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/fontparts/default.nix b/nixpkgs/pkgs/development/python-modules/fontparts/default.nix
index c694c15f5573..3280f5f4bb1e 100644
--- a/nixpkgs/pkgs/development/python-modules/fontparts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fontparts/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "fontParts";
-  version = "0.9.7";
+  version = "0.9.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "183y1y11bqd4ky4anyv40qbvsm6i90gnydqzrjg7syspjsqvfqgy";
+    sha256 = "0hwjnqbkcfkhigx581w4532vddsx5wiy73gx46kjisp0hlir9628";
     extension = "zip";
   };
 
@@ -28,7 +28,9 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
+    runHook preCheck
     ${python.interpreter} Lib/fontParts/fontshell/test.py
+    runHook postCheck
   '';
   checkInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/fonttools/default.nix b/nixpkgs/pkgs/development/python-modules/fonttools/default.nix
index 75f4908b63bc..407b72c953f1 100644
--- a/nixpkgs/pkgs/development/python-modules/fonttools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fonttools/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.19.1";
+  version = "4.21.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = version;
-    sha256 = "16jz3g4jzfdc43hs33b59vzd9m233qgflvy3ycdynifqk16lqsp2";
+    sha256 = "1x9qrg6ppqhm5214ymwvn0r34qdz8pqvyxd0sj7rkp06wa757z2i";
   };
 
   # all dependencies are optional, but
@@ -67,9 +67,10 @@ buildPythonPackage rec {
       -k 'not ttcompile_timestamp_calcs and not recalc_timestamp'
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/fonttools/fonttools";
     description = "A library to manipulate font files from Python";
-    license = lib.licenses.mit;
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/forbiddenfruit/default.nix b/nixpkgs/pkgs/development/python-modules/forbiddenfruit/default.nix
index 1bb3b17e9df3..13c46ba1e8aa 100644
--- a/nixpkgs/pkgs/development/python-modules/forbiddenfruit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/forbiddenfruit/default.nix
@@ -1,20 +1,27 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , nose
 }:
 
 buildPythonPackage rec {
-  version = "0.1.3";
+  version = "0.1.4";
   pname = "forbiddenfruit";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1188a07cc24a9bd2c529dad06490b80a6fc88cde968af4d7861da81686b2cc8c";
+  src = fetchFromGitHub {
+    owner = "clarete";
+    repo = "forbiddenfruit";
+    rev = version;
+    sha256 = "16chhrxbbmg6lfbzm532fq0v00z8qihcsj0kg2b5jlgnb6qijwn8";
   };
 
   checkInputs = [ nose ];
 
+  preBuild = ''
+    export FFRUIT_EXTENSION="true";
+  '';
+
+  # https://github.com/clarete/forbiddenfruit/pull/47 required to switch to pytest
   checkPhase = ''
     find ./build -name '*.so' -exec mv {} tests/unit \;
     nosetests
@@ -22,7 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Patch python built-in objects";
-    homepage = "https://pypi.python.org/pypi/forbiddenfruit";
+    homepage = "https://github.com/clarete/forbiddenfruit";
     license = licenses.mit;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/fountains/default.nix b/nixpkgs/pkgs/development/python-modules/fountains/default.nix
new file mode 100644
index 000000000000..b706930b3ef3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fountains/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, bitlist
+}:
+
+buildPythonPackage rec {
+  pname = "fountains";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0jk5y099g6ggaq5lwp0jlg4asyhcdxnl3him3ibmzc1k9nnknp30";
+  };
+
+  propagatedBuildInputs = [
+    bitlist
+  ];
+
+  # Project has no test
+  doCheck = false;
+  pythonImportsCheck = [ "fountains" ];
+
+  meta = with lib; {
+    description = "Python library for generating and embedding data for unit testing";
+    homepage = "https://github.com/reity/fountains";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/freebox-api/default.nix b/nixpkgs/pkgs/development/python-modules/freebox-api/default.nix
new file mode 100644
index 000000000000..54a6ce8662e5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/freebox-api/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, importlib-metadata
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "freebox-api";
+  version = "0.0.10";
+  format = "pyproject";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "hacf-fr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-yUcHdSHSgWxZl0z7Ue0MestvGhiXkDsxArNoDk0ZkR4=";
+  };
+
+  patches = [
+    # Switch to poetry-core, https://github.com/hacf-fr/freebox-api/pull/187
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/hacf-fr/freebox-api/commit/07356ac65483bc24fb1ed32612e77f2c2eed0134.patch";
+      sha256 = "1zwricrwsqy01pmhrjy41gh4kxb3gki8z8yxlpywd66y7gid547r";
+    })
+  ];
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "freebox_api" ];
+
+  meta = with lib; {
+    description = "Python module to interact with the Freebox OS API";
+    homepage = "https://github.com/hacf-fr/freebox-api";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/freezegun/0.3.nix b/nixpkgs/pkgs/development/python-modules/freezegun/0.3.nix
index 09ce8bbd11b1..a83a432d89dc 100644
--- a/nixpkgs/pkgs/development/python-modules/freezegun/0.3.nix
+++ b/nixpkgs/pkgs/development/python-modules/freezegun/0.3.nix
@@ -11,17 +11,15 @@
 
 buildPythonPackage rec {
   pname = "freezegun";
-  version = "0.3.5";
+  version = "0.3.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02ly89wwn0plcw8clkkzvxaw6zlpm8qyqpm9x2mfw4a0vppb4ngf";
+    sha256 = "e2062f2c7f95cc276a834c22f1a17179467176b624cc6f936e8bc3be5535ad1b";
   };
 
   propagatedBuildInputs = [ dateutil six ];
   checkInputs = [ mock nose pytest ];
-  # contains python3 specific code
-  doCheck = !isPy27;
 
   meta = with lib; {
     description = "FreezeGun: Let your Python tests travel through time";
diff --git a/nixpkgs/pkgs/development/python-modules/freezegun/default.nix b/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
index 4c5a87e8266b..00d03435de9d 100644
--- a/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
@@ -2,28 +2,22 @@
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
-, isPy27
 , dateutil
-, six
-, mock
-, nose
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "freezegun";
-  version = "1.0.0";
+  version = "1.1.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cf08e441f913ff5e59b19cc065a8faa9dd1ddc442eaf0375294f344581a0643";
+    sha256 = "177f9dd59861d871e27a484c3332f35a6e3f5d14626f2bf91be37891f18927f3";
   };
 
-  propagatedBuildInputs = [ dateutil six ];
-  checkInputs = [ mock nose pytest ];
-  # contains python3 specific code
-  doCheck = !isPy27;
+  propagatedBuildInputs = [ dateutil ];
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "FreezeGun: Let your Python tests travel through time";
diff --git a/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix b/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix
index b8312d1c8ec5..8e54cb6897cc 100644
--- a/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "fritzconnection";
-  version = "1.4.0";
+  version = "1.4.2";
 
   # no tests on PyPI
   src = fetchFromGitHub {
     owner = "kbr";
     repo = pname;
     rev = version;
-    sha256 = "1p8dqcc75xfhyvc9izjzz8c7qfrdkjkrkj36j7ms5fimn5bwk70q";
+    sha256 = "02w1hwbfwbh5xlq433myzv6ms7jqxg8kn3d6znq4ic22zprzf5r2";
   };
 
   disabled = pythonOlder "3.6";
@@ -18,9 +18,12 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "fritzconnection" ];
+
   meta = with lib; {
-    description = "Python-Tool to communicate with the AVM FritzBox using the TR-064 protocol";
+    description = "Python-Tool to communicate with the AVM Fritz!Box";
     homepage = "https://github.com/kbr/fritzconnection";
+    changelog = "https://fritzconnection.readthedocs.io/en/${version}/sources/changes.html";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda valodim ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/fs/default.nix b/nixpkgs/pkgs/development/python-modules/fs/default.nix
index 1f784a06e2ea..aa6831441d89 100644
--- a/nixpkgs/pkgs/development/python-modules/fs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fs/default.nix
@@ -20,11 +20,11 @@
 
 buildPythonPackage rec {
   pname = "fs";
-  version = "2.4.11";
+  version = "2.4.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cc99d476b500f993df8ef697b96dc70928ca2946a455c396a566efe021126767";
+    sha256 = "c10ba188b14d6213a1ca950efd004931abbfa64b294c80bbf1045753831bf42f";
   };
 
   buildInputs = [ glibcLocales ];
diff --git a/nixpkgs/pkgs/development/python-modules/ftfy/default.nix b/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
index dbc363172288..403ca5247923 100644
--- a/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
@@ -2,36 +2,31 @@
 , buildPythonPackage
 , isPy3k
 , fetchPypi
-, html5lib
 , wcwidth
-, setuptools
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "ftfy";
-  version = "5.8";
+  version = "5.9";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "081p5z20dirrf1i3nshylc31qd5mbxibjc7gzj8x4isbiizpdisi";
+    sha256 = "8c4fb2863c0b82eae2ab3cf353d9ade268dfbde863d322f78d6a9fd5cefb31e9";
   };
 
   propagatedBuildInputs = [
-    html5lib
     wcwidth
-    setuptools
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  # We suffix PATH like this because the tests want the ftfy executable
-  checkPhase = ''
-    PATH=$out/bin:$PATH pytest
+  preCheck = ''
+    export PATH=$out/bin:$PATH
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/ftputil/default.nix b/nixpkgs/pkgs/development/python-modules/ftputil/default.nix
index 883ff69c6d68..6d84aa9ae607 100644
--- a/nixpkgs/pkgs/development/python-modules/ftputil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ftputil/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, pythonOlder, pytest, freezegun }:
 
 buildPythonPackage rec {
-  version = "4.0.0";
+  version = "5.0.1";
   pname = "ftputil";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d494c47f24fd3f8fbe92d40d90e0902c0e04288f200688af2b16d6b46fe441e1";
+    sha256 = "394997ccb3cd4825c6e22b5e349c62cf5016c35db4d60940f3513db66d205561";
   };
 
   checkInputs = [ pytest freezegun ];
diff --git a/nixpkgs/pkgs/development/python-modules/furl/default.nix b/nixpkgs/pkgs/development/python-modules/furl/default.nix
index 72089da11e10..da52bfb8fbcd 100644
--- a/nixpkgs/pkgs/development/python-modules/furl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/furl/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, flake8, six, orderedmultidict, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, flake8
+, orderedmultidict
+, pytestCheckHook
+, six
+}:
 
 buildPythonPackage rec {
   pname = "furl";
@@ -9,17 +17,33 @@ buildPythonPackage rec {
     sha256 = "08dnw3bs1mk0f1ccn466a5a7fi1ivwrp0jspav9arqpf3wd27q60";
   };
 
-  checkInputs = [ flake8 pytest ];
+  patches = [
+    (fetchpatch {
+      name = "tests_overcome_bpo42967.patch";
+      url = "https://github.com/gruns/furl/files/6030371/tests_overcome_bpo42967.patch.txt";
+      sha256 = "1l0lxmcp9x73kxy0ky2bh7zxa4n1cf1qxyyax97n90d1s3dc7k2q";
+    })
+  ];
 
-  propagatedBuildInputs = [ six orderedmultidict ];
+  propagatedBuildInputs = [
+    orderedmultidict
+    six
+  ];
 
-  # see https://github.com/gruns/furl/issues/121
-  checkPhase = ''
-    pytest -k 'not join'
-  '';
+  checkInputs = [
+    flake8
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+     # see https://github.com/gruns/furl/issues/121
+    "join"
+  ];
+
+  pythonImportsCheck = [ "furl" ];
 
   meta = with lib; {
-    description = "furl is a small Python library that makes parsing and manipulating URLs easy";
+    description = "Python library that makes parsing and manipulating URLs easy";
     homepage = "https://github.com/gruns/furl";
     license = licenses.unlicense;
     maintainers = with maintainers; [ vanzef ];
diff --git a/nixpkgs/pkgs/development/python-modules/fuzzyfinder/default.nix b/nixpkgs/pkgs/development/python-modules/fuzzyfinder/default.nix
new file mode 100644
index 000000000000..a422e5606b0b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fuzzyfinder/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "fuzzyfinder";
+  version = "2.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c56d86f110866becad6690c7518f7036c20831c0f82fc87eba8fdb943132f04b";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "fuzzyfinder" ];
+
+  meta = with lib; {
+    description = "Fuzzy Finder implemented in Python";
+    homepage = "https://github.com/amjith/fuzzyfinder";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/gdown/default.nix b/nixpkgs/pkgs/development/python-modules/gdown/default.nix
index 9af107272854..8195bb0d4039 100644
--- a/nixpkgs/pkgs/development/python-modules/gdown/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gdown/default.nix
@@ -5,6 +5,7 @@
 , requests
 , tqdm
 , setuptools
+, six
 }:
 
 buildPythonApplication rec {
@@ -16,7 +17,7 @@ buildPythonApplication rec {
     sha256 = "4b3a1301e57bfd8dce939bf25ef8fbb4b23967fd0f878eede328bdcc41386bac";
   };
 
-  propagatedBuildInputs = [ filelock requests tqdm setuptools ];
+  propagatedBuildInputs = [ filelock requests tqdm setuptools six ];
 
   checkPhase = ''
     $out/bin/gdown --help > /dev/null
diff --git a/nixpkgs/pkgs/development/python-modules/gdrivefs/default.nix b/nixpkgs/pkgs/development/python-modules/gdrivefs/default.nix
index 6060dc3a5bb8..836fdee4bebd 100644
--- a/nixpkgs/pkgs/development/python-modules/gdrivefs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gdrivefs/default.nix
@@ -8,7 +8,7 @@
 , six
 , dateutil
 , fusepy
-, google_api_python_client
+, google-api-python-client
 }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ gipc greenlet httplib2 six ];
-  propagatedBuildInputs = [ dateutil fusepy google_api_python_client ];
+  propagatedBuildInputs = [ dateutil fusepy google-api-python-client ];
 
   patchPhase = ''
     substituteInPlace gdrivefs/resources/requirements.txt \
diff --git a/nixpkgs/pkgs/development/python-modules/ge25519/default.nix b/nixpkgs/pkgs/development/python-modules/ge25519/default.nix
new file mode 100644
index 000000000000..0e8d3722fbec
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ge25519/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, bitlist
+, buildPythonPackage
+, fe25519
+, fetchPypi
+, fountains
+, nose
+, parts
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "ge25519";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wgv0vqg8iv9y5d7if14gmcgslwd5zzgk322w9jaxdfbndldddik";
+  };
+
+  propagatedBuildInputs = [
+    fe25519
+    parts
+    bitlist
+    fountains
+  ];
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "ge25519" ];
+
+  meta = with lib; {
+    description = "Python implementation of Ed25519 group elements and operations";
+    homepage = "https://github.com/nthparty/ge25519";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/geoip2/default.nix b/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
index 69b5d2f97fbe..c0e6580e8a94 100644
--- a/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
@@ -1,16 +1,16 @@
-{ buildPythonPackage, lib, fetchPypi, isPy27
+{ buildPythonPackage, lib, fetchPypi, pythonOlder
 , aiohttp
 , maxminddb
-, mock
 , mocket
 , requests
 , requests-mock
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   version = "4.1.0";
   pname = "geoip2";
-  disabled = isPy27;
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
@@ -23,11 +23,17 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ aiohttp requests maxminddb ];
 
-  checkInputs = [ mocket requests-mock ];
+  checkInputs = [
+    mocket
+    requests-mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "geoip2" ];
 
   meta = with lib; {
-    description = "MaxMind GeoIP2 API";
-    homepage = "https://www.maxmind.com/en/home";
+    description = "Python client for GeoIP2 webservice client and database reader";
+    homepage = "https://github.com/maxmind/GeoIP2-python";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/getmac/default.nix b/nixpkgs/pkgs/development/python-modules/getmac/default.nix
index 51ce0ef05031..483539bc221f 100644
--- a/nixpkgs/pkgs/development/python-modules/getmac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/getmac/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, pytest, pytest-benchmark, pytest-mock }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-benchmark
+, pytest-mock
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "getmac";
@@ -7,19 +12,32 @@ buildPythonPackage rec {
 
   src = fetchFromGitHub {
     owner = "GhostofGoes";
-    repo = "getmac";
+    repo = pname;
     rev = version;
     sha256 = "08d4iv5bjl1s4i9qhzf3pzjgj1rgbwi0x26qypf3ycgdj0a6gvh2";
   };
 
-  checkInputs = [ pytest pytest-benchmark pytest-mock ];
-  checkPhase = ''
-    pytest --ignore tests/test_cli.py
-  '';
+  checkInputs = [
+    pytestCheckHook
+    pytest-benchmark
+    pytest-mock
+  ];
+
+  disabledTests = [
+    # Disable CLI tests
+    "test_cli_main_basic"
+    "test_cli_main_verbose"
+    "test_cli_main_debug"
+    "test_cli_multiple_debug_levels"
+    # Disable test that require network access
+    "test_uuid_lanscan_iface"
+  ];
+
+  pythonImportsCheck = [ "getmac" ];
 
   meta = with lib; {
+    description = "Python package to get the MAC address of network interfaces and hosts on the local network";
     homepage = "https://github.com/GhostofGoes/getmac";
-    description = "Pure-Python package to get the MAC address of network interfaces and hosts on the local network.";
     license = licenses.mit;
     maintainers = with maintainers; [ colemickens ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix b/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
index c82da3c8a98e..5563ff94baf5 100644
--- a/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
@@ -6,19 +6,21 @@
 , certifi
 , six
 , backports_ssl_match_hostname
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "geventhttpclient";
-  version = "1.4.4";
+  version = "1.4.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f59e5153f22e4a0be27b48aece8e45e19c1da294f8c49442b1c9e4d152c5c4c3";
+    sha256 = "3f0ab18d84ef26ba0c9df73ae2a41ba30a46072b447f2e36c740400de4a63d44";
   };
 
   buildInputs = [ pytest ];
-  propagatedBuildInputs = [ gevent certifi six backports_ssl_match_hostname ];
+  propagatedBuildInputs = [ gevent certifi six ]
+    ++ lib.optionals (pythonOlder "3.7") [ backports_ssl_match_hostname ];
 
   # Several tests fail that require network
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/gipc/default.nix b/nixpkgs/pkgs/development/python-modules/gipc/default.nix
index 8df2808328fb..57db65268d5b 100644
--- a/nixpkgs/pkgs/development/python-modules/gipc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gipc/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "gipc";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06116628e9cb7b2c34c8f248d0e4859fa5943e1e07381ad2b234ae9c7ed6f4cc";
+    sha256 = "f9a9d557e65e17bab8d7ff727ee3f1935e25bd52b01e63c23c7b3b52415728a5";
   };
 
   propagatedBuildInputs = [ gevent ];
diff --git a/nixpkgs/pkgs/development/python-modules/github3_py/default.nix b/nixpkgs/pkgs/development/python-modules/github3_py/default.nix
index 6b1ea305d4a6..8a1eea40c682 100644
--- a/nixpkgs/pkgs/development/python-modules/github3_py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/github3_py/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "github3.py";
-  version = "1.3.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15a115c18f7bfcf934dfef7ab103844eb9f620c586bad65967708926da47cbda";
+    sha256 = "8dd4ac612fd60cb277eaf6e2ce02f68dda54aba06870ca6fa2b28369bf39aa14";
   };
 
   checkInputs = [ betamax pytest betamax-matchers ]
diff --git a/nixpkgs/pkgs/development/python-modules/glances-api/default.nix b/nixpkgs/pkgs/development/python-modules/glances-api/default.nix
index 2f5a1416e41c..1ec6ce334200 100644
--- a/nixpkgs/pkgs/development/python-modules/glances-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glances-api/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "glances-api";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "home-assistant-ecosystem";
     repo = "python-glances-api";
     rev = version;
-    sha256 = "0rgv77n0lvr7d3vk4qc8svipxafmm6s4lfxrl976hsygrhaqidch";
+    sha256 = "sha256-mbkZZg2fmus4kOXFxHE/UV/nxemFAsoEZu8IUa7SPsg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/glasgow/default.nix b/nixpkgs/pkgs/development/python-modules/glasgow/default.nix
index 8a63f78728e2..398ee8eedf13 100644
--- a/nixpkgs/pkgs/development/python-modules/glasgow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glasgow/default.nix
@@ -2,7 +2,8 @@
 , buildPythonPackage
 , fetchFromGitHub
 , setuptools
-, setuptools_scm
+, setuptools-scm
+, pythonOlder
 , sdcc
 , nmigen
 , fx2
@@ -18,18 +19,19 @@
 
 buildPythonPackage rec {
   pname = "glasgow";
-  version = "unstable-2020-06-29";
+  version = "unstable-2021-03-02";
+  disabled = pythonOlder "3.7";
   # python software/setup.py --version
-  realVersion = "0.1.dev1352+g${lib.substring 0 7 src.rev}";
+  realVersion = "0.1.dev1660+g${lib.substring 0 7 src.rev}";
 
   src = fetchFromGitHub {
     owner = "GlasgowEmbedded";
     repo = "glasgow";
-    rev = "f885790d7927b893e631c33744622d6ebc18b5e3";
-    sha256 = "sha256-fSorSEa5K09aPEOk4XPWOFRxYl1KGVy29jOBqIvs2hk=";
+    rev = "41c48bbcee284d024e4249a81419fbbae674cf40";
+    sha256 = "1fg8ps228930d70bczwmcwnrd1gvm02a58mxbpn8pyakwbwwa6hq";
   };
 
-  nativeBuildInputs = [ setuptools_scm sdcc ];
+  nativeBuildInputs = [ setuptools-scm sdcc ];
 
   propagatedBuildInputs = [
     setuptools
diff --git a/nixpkgs/pkgs/development/python-modules/glymur/default.nix b/nixpkgs/pkgs/development/python-modules/glymur/default.nix
index 50ed257f57e0..9a0b1b09db68 100644
--- a/nixpkgs/pkgs/development/python-modules/glymur/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glymur/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , numpy
-, setuptools
 , python
 , scikitimage
 , openjpeg
diff --git a/nixpkgs/pkgs/development/python-modules/gmusicapi/default.nix b/nixpkgs/pkgs/development/python-modules/gmusicapi/default.nix
deleted file mode 100644
index 1797f1d4264d..000000000000
--- a/nixpkgs/pkgs/development/python-modules/gmusicapi/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, validictory
-, decorator
-, mutagen
-, protobuf
-, setuptools
-, requests
-, dateutil
-, proboscis
-, mock
-, appdirs
-, oauth2client
-, pyopenssl
-, gpsoauth
-, MechanicalSoup
-, future
-}:
-
-buildPythonPackage rec {
-  pname = "gmusicapi";
-  version = "13.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "14dqs64nhy84dykyyrdjmsirc7m169zsvwa8abh4v0xcm658lm5k";
-  };
-
-  propagatedBuildInputs = [ validictory decorator mutagen protobuf setuptools requests dateutil proboscis mock appdirs oauth2client pyopenssl gpsoauth MechanicalSoup future ];
-
-  meta = with lib; {
-    description = "An unofficial API for Google Play Music";
-    homepage = "https://pypi.python.org/pypi/gmusicapi/";
-    license = licenses.bsd3;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/goobook/default.nix b/nixpkgs/pkgs/development/python-modules/goobook/default.nix
index 83175b6c86a5..42e2b84783f5 100644
--- a/nixpkgs/pkgs/development/python-modules/goobook/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/goobook/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k
 , docutils, installShellFiles
-, google_api_python_client, simplejson, oauth2client, setuptools, xdg
+, google-api-python-client, simplejson, oauth2client, setuptools, xdg
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ docutils installShellFiles ];
   propagatedBuildInputs = [
-    google_api_python_client simplejson oauth2client setuptools xdg
+    google-api-python-client simplejson oauth2client setuptools xdg
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/python-modules/google-api-core/default.nix b/nixpkgs/pkgs/development/python-modules/google-api-core/default.nix
index 74d74d51c49d..c24419b01e28 100644
--- a/nixpkgs/pkgs/development/python-modules/google-api-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-api-core/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , google-auth
-, googleapis_common_protos
+, googleapis-common-protos
 , grpcio
 , protobuf
 , pytz
@@ -15,15 +15,15 @@
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "1.25.1";
+  version = "1.26.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0e152ec37b8481d1be1258d95844a5a7031cd3d83d7c7046d9e9b2d807042440";
+    sha256 = "sha256-uRQ0XH6iOGEWJpOidwO6uASlVQT35umryv8XTYDfMqw=";
   };
 
   propagatedBuildInputs = [
-    googleapis_common_protos
+    googleapis-common-protos
     google-auth
     grpcio
     protobuf
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 854ec37a1e4a..39ed8d68345f 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
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "1.12.8";
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3b9684442eec2cfe9f9bb48e796ef919456b82142c7528c5fd527e5224f08bb";
+    sha256 = "04c0c8m4c7lzqv0m3jm0zks9wjcv1myas80rxswvi36wn376qs28";
   };
 
   # No tests included in archive
@@ -34,6 +34,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/google/google-api-python-client";
     changelog = "https://github.com/googleapis/google-api-python-client/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix b/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
index bb7836ef85d1..05ea601330db 100644
--- a/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth-httplib2";
-  version = "0.0.4";
+  version = "0.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fdwnx2yd65f5vhnmn39f4xnxac5j6x0pv2p42qifrdi1z32q2cd";
+    sha256 = "sha256-oHw5/WMr7KzT8HcY39YCG/OWl48DrTzkMh0GABXMMKw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix b/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix
index 7fa7200fbbe5..37752601e265 100644
--- a/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth-oauthlib";
-  version = "0.4.2";
+  version = "0.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nai9k86g7g7w1pxk105dllncgax8nc5hpmk758b3jnqkb1mpdk5";
+    sha256 = "sha256-CYMsbnUDL5OBjt8a/+R0YSHWQMYlpb75tclq9nbpju4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-auth/default.nix b/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
index 22b02552cd75..addd67f9faac 100644
--- a/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
@@ -12,18 +12,26 @@
 , pytest-localserver
 , responses
 , rsa
+, six
+, pyopenssl
 }:
 
 buildPythonPackage rec {
   pname = "google-auth";
-  version = "1.24.0";
+  version = "1.28.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bmdqkyv8k8n6s8dss4zpbcq1cdxwicpb42kwybd02ia85mh43hb";
+    sha256 = "sha256-m9Q20ZqwRwAaE0ByDStinrlt1QMljFJJIewq8+6IqA4=";
   };
 
-  propagatedBuildInputs = [ pyasn1-modules cachetools rsa ];
+  propagatedBuildInputs = [
+    cachetools
+    pyasn1-modules
+    rsa
+    six
+    pyopenssl
+  ];
 
   checkInputs = [
     flask
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 aec3b51acb5e..bd8bdc0b8c31 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix
@@ -24,6 +24,11 @@ buildPythonPackage rec {
     sha256 = "05q0yaw6b553qmzylr45zin17h8mvi8yyyxhbv3cxa7f0ahviw8w";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"google-cloud-org-policy >= 0.1.2, < 0.2.0dev"' '"google-cloud-org-policy >= 0.1.2, < 0.2.1"'
+  '';
+
   propagatedBuildInputs = [
     grpc_google_iam_v1
     google-api-core
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-automl/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-automl/default.nix
index 83fe052a5422..94516e25a38d 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-automl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-automl/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-automl";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "520dfe2ee04d28f3088c9c582fa2a534fc272647d5e2e59acc903c0152e61696";
+    sha256 = "874defad583e90e55a3e83aff27eb5fe108d9197d839cd45f3eacf2395881806";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
index 8f67fed79d7a..3b194dae92c7 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hmsqvs2srmqcwmli48vd5vw829zax3pwj63fsxig6sdhjlf6j7j";
+    sha256 = "sha256-mAZSVxiTiLbMeXR4xLK9+G6ejNyspdFw3tAnZGREpYY=";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus ];
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 2cada2e0b0f6..0c62727ff8ac 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -7,7 +7,6 @@
 , google-cloud-storage
 , google-cloud-testutils
 , google-resumable-media
-, grpcio
 , ipython
 , mock
 , pandas
@@ -18,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "2.7.0";
+  version = "2.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "29721972f5e539e486fbdc722ddf849ad86acd092680d16c271430dc16023544";
+    sha256 = "915f93c61c03d1d6024d5b19355bb96af25da9f924d0b5bab5cde851e1bd48f4";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-bigtable/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-bigtable/default.nix
index 93cbc22b7cd8..786250ce9e15 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-bigtable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-bigtable/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigtable";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ace4ff7c6e00fb7d86963503615db85336b6484339f5774bd8c589df224772a8";
+    sha256 = "90bd53a19c33c34101b8567c82a6dc0386af4118d70e1ad69b49375358a21aa6";
   };
 
   checkInputs = [ pytest mock ];
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 1cf94d220e69..ce21a27209fd 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04f9mx1wxy3l9dvzvvr579fnjp1fdqhgplv5y2gl7h2mvn281k8d";
+    sha256 = "c62d15f58459fbe83ba5789f800ac27b4be9a1d7735f6c6b702cd6c3f8c6f0c9";
   };
 
   propagatedBuildInputs = [ google-api-core grpc_google_iam_v1 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 44764a4edb1c..1c70d1dc2664 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-core";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01liq4nrd2g3ingg8v0ly4c86db8agnr9h1fiz219c7fz0as0xqj";
+    sha256 = "sha256-xquxhSdUU3n8gu/E3nXOmjdyzK0vxkWtrOWTugl8uwI=";
   };
 
   propagatedBuildInputs = [ google-api-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix
index 095e01fbbd76..0115524d5467 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dataproc";
-  version = "2.2.0";
+  version = "2.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07rv2kgbaqkbd71k5i2zn9kcxasfzkkyai8jnbszhkf92k0lmi41";
+    sha256 = "sha256-TADApBkE4DvEFkVFy56Flh2s6XR9uGxzGTf5aspohsA=";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix
index fa4c8c6c52df..3e80f9def448 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dns";
-  version = "0.32.1";
+  version = "0.32.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01l6pvfic0vxcvd97ckbxyc7ccr9vb9ln4lyhpp3amdmcy0far3j";
+    sha256 = "0ec98a9933b2abd95b174c9cae0477b90aa4c1f5068b69a9f8ced6d20db1cd5a";
   };
 
   propagatedBuildInputs = [ google-api-core google-cloud-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
index bbd51326e0f2..8a481945efba 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-error-reporting";
-  version = "1.1.0";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2fd6fe25343f7017c22e2733a0358c64b3171edc1669d0c8a1e1f07f86a048c4";
+    sha256 = "sha256-NT/+2mtIaEMyXnmM1fWX4kEV9pb1+aNas2lNobUPR14=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
index 30ef0af76a1a..f0aac21ee317 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-firestore";
-  version = "2.0.2";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1q5s2gpkibnjxal9zrz02jfnazf7rxk0bi0ln5a3di6i47kjnga9";
+    sha256 = "sha256-kG68fG9EqwvE72nzc89MXwEQ/YYEM9tYH6zK2iTCFJo=";
   };
 
   propagatedBuildInputs = [
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 ab31a8ee4ed4..55efb8e2c2d4 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-logging";
-  version = "2.2.0";
+  version = "2.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8932ac382eee6af85cd08400a77586dd3139fbf40b61db757c4c492490899741";
+    sha256 = "sha256-yi3lG7tKi2BkU7vtMIEPsll1UX/JxrNj4G+DJaGQ/+k=";
   };
 
   propagatedBuildInputs = [ google-api-core google-cloud-core proto-plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix
index f8fc079aa3e4..4c63df9f1746 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix
@@ -5,6 +5,7 @@
 , google-cloud-testutils
 , libcst
 , proto-plus
+, pandas
 , pytestCheckHook
 , pytest-asyncio
 , mock
@@ -12,16 +13,16 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-monitoring";
-  version = "2.0.0";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07r0y995fin6cbnqlhmd38fv3pfhhqyw04l7nr38sldrd82gmsqx";
+    sha256 = "sha256-QeMJBJKjW3Zu0p0mSmo5dVOJNwRmmA5FKXRXjCd+zN4=";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus ];
 
-  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+  checkInputs = [ google-cloud-testutils mock pandas pytestCheckHook pytest-asyncio ];
 
   disabledTests = [
     # requires credentials
@@ -35,7 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Stackdriver Monitoring API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
+    homepage = "https://github.com/googleapis/python-monitoring";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix
index 10ee559b8f0b..206e740aa462 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, google-api-core }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, google-api-core, proto-plus }:
 
 buildPythonPackage rec {
   pname = "google-cloud-org-policy";
-  version = "0.1.2";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ncgcnbvmgqph54yh2pjx2hh82gnkhsrw5yirp4wlf7jclh6j9xh";
+    sha256 = "sha256-tGNwSv+rMnwdP6SvKAqFhjW19ZqIRWsqCNtiozajUqo=";
   };
 
-  propagatedBuildInputs = [ google-api-core ];
+  propagatedBuildInputs = [ google-api-core proto-plus ];
 
   # No tests in repo
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-os-config/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-os-config/default.nix
index 94d8d4738f5c..dcb820640a6b 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-os-config/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-os-config/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-os-config";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07zvagy9hwaccwvg1xad5nkalgkria0maa5yxiwqf1yk9f7gbyq1";
+    sha256 = "c993129ecb1db6ab9b49cacfa11f368f30c7d897640c56f52558edf542c08ade";
   };
 
   propagatedBuildInputs = [ google-api-core libcst 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 3bc5f185e494..1a11fcfc731b 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.3.0";
+  version = "2.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b19f0556c252b805a52c976e3317c53d91e36f56dc8d28192eea190627faf343";
+    sha256 = "sha256-5gyqZ+JthC/Qja8ZCX79r4K+evuZY5jPZ73cA6hrgSA=";
   };
 
   propagatedBuildInputs = [ grpc_google_iam_v1 google-api-core libcst proto-plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-redis/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-redis/default.nix
index 86fbc360d73c..8787eb6779a1 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-redis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-redis/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-redis";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f67mr473vzv0qgjm4hycfnrjgiqrsv47vqrynwjy9yrca2130y7";
+    sha256 = "957f436986275dcc82483906b424dcabe8d1f8c08ae5c9677bf7547a314b0a59";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus ];
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 a143a418c222..47e23c21422a 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
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.2.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97a46d2318f00c1c6ae1a4ab587e338677c5cc1651d7c6304982d74fa364dd9d";
+    sha256 = "sha256-/ROngNZJld6iA8WjbJLLNzu5vFWPFUNdTikc70kNkQ4=";
   };
 
   propagatedBuildInputs = [
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 c4849dd2f559..726e48ee192b 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-spanner";
-  version = "3.0.0";
+  version = "3.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "060c53bc6f541660a2fe868fd83a695207d4e7b050e04fe103d1e77634b813c7";
+    sha256 = "sha256-XnOCmxQ6YCO1C7RYHzcZY4ihrt2KommWTkTD9y+B5tg=";
   };
 
   propagatedBuildInputs = [ google-cloud-core grpc_google_iam_v1 libcst proto-plus sqlparse ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
index c57329eebcc3..2261345f4205 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-speech";
-  version = "2.0.1";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ch85h5xrb15fcml5v0f30s0niw02k4v8gi7i8a40161yj882hm7";
+    sha256 = "sha256-AviYDI68Z11M/rqHgQTQugYNemPTA5nW4aVQTiwMYxI=";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix
index 84706a8b5a91..40d70176c5d6 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-storage";
-  version = "1.35.1";
+  version = "1.37.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dc076b6af6da991252416639cb93831f8e50c8328d5ac3fb8e03e40cd8de2290";
+    sha256 = "sha256-IAPF7Uc/mzfQRfMMTIvn0w19Dripe80sWLOovFScTMw=";
   };
 
   propagatedBuildInputs = [
@@ -41,6 +41,8 @@ buildPythonPackage rec {
     "get"
     "post"
     "test_build_api_url"
+    "test_ctor_mtls"
+    "test_open"
   ];
 
   pytestFlagsArray = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-tasks/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-tasks/default.nix
index 5911bfe61562..c01c294ec334 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-tasks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-tasks/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jsf7y88lvln9r08pmx673ibmgw397qmir5drrcfvlmgqvszp7qx";
+    sha256 = "6be2f2bca14b4eb1c1bdb0f4ba1dadf791e79a2a3e1fae762e5631a3d9fe094e";
   };
 
   propagatedBuildInputs = [ google-api-core grpc_google_iam_v1 libcst proto-plus ];
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 2380e9183b73..62139b81c26f 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, google-auth, six }:
+{ lib, buildPythonPackage, fetchPypi, click, google-auth, six }:
 
 buildPythonPackage rec {
   pname = "google-cloud-testutils";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bn1pz00lxym3vkl6l45b3nydpmfdvmylwggh2lspldrxwx39a0k";
+    sha256 = "sha256-ojvnzCO8yxrm3rt0pH3FtRhYtjIvzwNMqS/npKy4lvM=";
   };
 
-  propagatedBuildInputs = [ google-auth six ];
+  propagatedBuildInputs = [ click google-auth six ];
 
   # does not contain tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
index 3c84c21344a9..ab4415e3412b 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-texttospeech";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17igfwh34369gkvsbrm46j1ii61i6268wg2g2dl9c65nf9z3kgfb";
+    sha256 = "sha256-zzssVnXA1xe3270yEOREJ9GdmyRPjV1F4EBelf9AQ/c=";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix
index 2b0ac55fa2eb..a884919c7e18 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-translate";
-  version = "3.0.2";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s2gvlzfqd2gsrzaz7yl9q8s1k03dlsjahgg95s017vlcn21d0v1";
+    sha256 = "sha256-zVRD2lWRaKtSlZn84Rqpj+a1OT7Wcak524TKsBctueE=";
   };
 
   propagatedBuildInputs = [ google-api-core google-cloud-core libcst proto-plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
index 26e3320a5ccb..f56b00af0a54 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-videointelligence";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yhmizig41ymr2dz0i6ccrwszp0ivyykmq11vqxp82l9ncjima82";
+    sha256 = "sha256-gn/KWf3A4SkTqt9rqwYcsaxvfKXPvb7DXJ+zryGjWIA=";
   };
 
   propagatedBuildInputs = [ google-api-core proto-plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix
index b69229123809..5857de341d29 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-vision";
-  version = "2.1.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2bae8b4aca9aa38ad7459102cc5743c506adf9060ad2b3b15cff1e8021085017";
+    sha256 = "sha256-6XYHADzyk0/WSGk9wni9bOtVURJ+U2Eve8LAh0Eg7KI=";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus];
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 ac91ab85bd64..971f5cce90e7 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-websecurityscanner";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14sky9bkl00n65ksig3f6psm31pkmkvlcprlk6s9if470j40zrhx";
+    sha256 = "sha256-lrMnp9jVndz0C8VdreVudYdwh7zSdRniPHYm9BNdjak=";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus ];
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 590962590e5f..53ce654e41bb 100644
--- a/nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage, fetchPypi, lib, requests, pytestCheckHook, mock }:
+{ buildPythonPackage, fetchPypi, pythonAtLeast, lib, requests, pytestCheckHook, mock }:
 
 buildPythonPackage rec {
   pname = "google-i18n-address";
   version = "2.4.0";
+  disabled = pythonAtLeast "3.9";
 
   src = fetchPypi {
     inherit pname version;
@@ -15,7 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Google's i18n address data packaged for Python";
-    homepage = "https://pypi.org/project/google-i18n-address/";
+    homepage = "https://github.com/mirumee/google-i18n-address";
     maintainers = with maintainers; [ SuperSandro2000 ];
     license = licenses.bsd3;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix b/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix
deleted file mode 100644
index a883f707bdf1..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, attrs
-, audio-metadata
-, importlib-metadata
-, marshmallow
-, pendulum
-, protobuf
-}:
-
-buildPythonPackage rec {
-  pname = "google-music-proto";
-  version = "2.10.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "91b78c0de4f59b1e5503fd6d49cb3fec029d9199cca0794c87667e643342e987";
-  };
-
-  postPatch = ''
-    sed -i -e "/audio-metadata/c\'audio-metadata'," -e "/marshmallow/c\'marshmallow'," setup.py
-    substituteInPlace setup.py \
-      --replace "'attrs>=18.2,<19.4'" "'attrs'"
-  '';
-
-  propagatedBuildInputs = [
-    attrs
-    audio-metadata
-    marshmallow
-    pendulum
-    protobuf
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
-
-  # No tests
-  doCheck = false;
-  pythonImportsCheck = [ "google_music_proto" ];
-
-  meta = with lib; {
-    homepage = "https://github.com/thebigmunch/google-music-proto";
-    description = "Sans-I/O wrapper of Google Music API calls";
-    license = licenses.mit;
-    maintainers = with maintainers; [ jakewaksbaum ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google-music-utils/default.nix b/nixpkgs/pkgs/development/python-modules/google-music-utils/default.nix
deleted file mode 100644
index 801b4b78a178..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google-music-utils/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, audio-metadata
-, multidict
-, poetry
-, pytestCheckHook
-}:
-
-buildPythonPackage rec {
-  pname = "google-music-utils";
-  version = "2.5.0";
-
-  # Pypi tarball doesn't contain tests
-  src = fetchFromGitHub {
-    owner = "thebigmunch";
-    repo = "google-music-utils";
-    rev = version;
-    sha256 = "0vwbrgakk23fypjspmscz4gllnb3dksv2njy4j4bm8vyr6fwbi5f";
-  };
-  format = "pyproject";
-
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'multidict = "^4.0"' 'multidict = ">4.0"'
-  '';
-
-  nativeBuildInputs = [ poetry ];
-
-  propagatedBuildInputs = [ audio-metadata multidict ];
-
-  checkInputs = [ pytestCheckHook ];
-
-  meta = with lib; {
-    homepage = "https://github.com/thebigmunch/google-music-utils";
-    description = "A set of utility functionality for google-music and related projects";
-    license = licenses.mit;
-    maintainers = with maintainers; [ jakewaksbaum ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google-music/default.nix b/nixpkgs/pkgs/development/python-modules/google-music/default.nix
deleted file mode 100644
index 90978ad2cba7..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google-music/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, appdirs
-, audio-metadata
-, google-music-proto
-, httpx
-, protobuf
-, requests_oauthlib
-, tenacity
-}:
-
-buildPythonPackage rec {
-  pname = "google-music";
-  version = "3.7.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0fsp491ifsw0i1r98l8xr41m8d00nw9n5bin8k3laqzq1p65d6dp";
-  };
-
-  propagatedBuildInputs = [
-    appdirs
-    audio-metadata
-    google-music-proto
-    httpx
-    protobuf
-    requests_oauthlib
-    tenacity
-  ];
-
-  # No tests
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://github.com/thebigmunch/google-music";
-    description = "A Google Music API wrapper";
-    license = licenses.mit;
-    maintainers = with maintainers; [ jakewaksbaum ];
-  };
-}
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 898971629ae0..1b54d64f1a2c 100644
--- a/nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix
@@ -3,16 +3,15 @@
 , fetchPypi
 , grpc
 , protobuf
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "googleapis-common-protos";
-  version = "1.52.0";
+  version = "1.53.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0lakcsd35qm5x4visvw6z5f1niasv9a0mjyf2bd98wqi0z41c1sn";
+    sha256 = "sha256-qI7okDqgqB9sPOwtXPYtPIqmfAZDmwSWtJBI+xhU6/Q=";
   };
 
   propagatedBuildInputs = [ grpc protobuf ];
diff --git a/nixpkgs/pkgs/development/python-modules/googlemaps/default.nix b/nixpkgs/pkgs/development/python-modules/googlemaps/default.nix
index 007d4eb2cea7..938a472eddf1 100644
--- a/nixpkgs/pkgs/development/python-modules/googlemaps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/googlemaps/default.nix
@@ -1,28 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pytest-cov
+, pytestCheckHook
+, pythonOlder
 , requests
 , responses
-, pytestCheckHook
-, pytestcov
-, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "googlemaps";
-  version = "4.4.2";
-  disabled = isPy27;
+  version = "4.4.5";
+  disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "googlemaps";
     repo = "google-maps-services-python";
     rev = "v${version}";
-    sha256 = "DYhW1OGce/0gY7Jmwq6iM45PxLyXIYo4Cfg2u6Xuyg4=";
+    sha256 = "sha256-Rdfp98UqTMbqcOpkzh0Dz8fNSSbuvCnCztCkxiBgaAA=";
   };
 
   propagatedBuildInputs = [ requests ];
 
-  checkInputs = [ pytestCheckHook responses pytestcov ];
+  checkInputs = [
+    pytest-cov
+    pytestCheckHook
+    responses
+  ];
 
   disabledTests = [
     # touches network
@@ -30,6 +34,8 @@ buildPythonPackage rec {
     "test_transit_without_time"
   ];
 
+  pythonImportsCheck = [ "googlemaps" ];
+
   meta = with lib; {
     homepage = "https://github.com/googlemaps/google-maps-services-python";
     description = "Python client library for Google Maps API Web Services";
diff --git a/nixpkgs/pkgs/development/python-modules/gpsoauth/default.nix b/nixpkgs/pkgs/development/python-modules/gpsoauth/default.nix
index 1ad50642e2b9..b821c7e1f583 100644
--- a/nixpkgs/pkgs/development/python-modules/gpsoauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gpsoauth/default.nix
@@ -16,16 +16,21 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.1";
+  version = "0.4.3";
   pname = "gpsoauth";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c3f45824d45ac3d06b9d9a0c0eccafe1052505d31ac9a698aef8b00fb0dfc37";
+    sha256 = "b38f654450ec55f130c9414d457355d78030a2c29c5ad8f20b28304a9fc8fad7";
   };
 
   propagatedBuildInputs = [ cffi cryptography enum34 idna ipaddress ndg-httpsclient pyopenssl pyasn1 pycparser pycryptodomex requests six ];
 
+  # no tests executed
+  doCheck = false;
+
+  pythonImportsCheck = [ "gpsoauth" ];
+
   meta = with lib; {
     description = "A python client library for Google Play Services OAuth";
     homepage = "https://github.com/simon-weber/gpsoauth";
diff --git a/nixpkgs/pkgs/development/python-modules/gradient-utils/default.nix b/nixpkgs/pkgs/development/python-modules/gradient-utils/default.nix
index cf0ffb6bb417..ee8d1bde6222 100644
--- a/nixpkgs/pkgs/development/python-modules/gradient-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gradient-utils/default.nix
@@ -1,12 +1,13 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
 , hyperopt
-, lib
 , mock
 , numpy
-, poetry
+, poetry-core
 , prometheus_client
 , pytestCheckHook
+, requests
 }:
 
 buildPythonPackage rec {
@@ -24,23 +25,39 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace 'numpy = "1.18.5"' 'numpy = "^1.18.5"' \
-      --replace 'hyperopt = "0.1.2"' 'hyperopt = ">=0.1.2"'
+      --replace 'hyperopt = "0.1.2"' 'hyperopt = ">=0.1.2"' \
+      --replace 'wheel = "^0.35.1"' 'wheel = "*"'
   '';
 
-  nativeBuildInputs = [ poetry ];
-  checkInputs = [ mock pytestCheckHook ];
-  propagatedBuildInputs = [ hyperopt prometheus_client numpy ];
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    hyperopt
+    prometheus_client
+    numpy
+  ];
+
+  checkInputs = [
+    mock
+    requests
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOSTNAME=myhost-experimentId
+  '';
 
-  preCheck = "export HOSTNAME=myhost-experimentId";
   disabledTests = [
     "test_add_metrics_pushes_metrics" # requires a working prometheus push gateway
   ];
 
+  pythonImportsCheck = [ "gradient_utils" ];
+
   meta = with lib; {
-    description = "Gradient ML SDK";
-    homepage    = "https://github.com/Paperspace/gradient-utils";
-    license     = licenses.mit;
-    platforms   = platforms.unix;
+    description = "Python utils and helpers library for Gradient";
+    homepage = "https://github.com/Paperspace/gradient-utils";
+    license = licenses.mit;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ freezeboy ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/gradient/default.nix b/nixpkgs/pkgs/development/python-modules/gradient/default.nix
index 14df3b882bba..1965e0d3aded 100644
--- a/nixpkgs/pkgs/development/python-modules/gradient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gradient/default.nix
@@ -1,17 +1,32 @@
-{ lib, fetchPypi, buildPythonPackage
-, attrs, boto3, requests, gradient_statsd, terminaltables
-, click-completion , click-didyoumean, click-help-colors
-, colorama, requests_toolbelt, gradient-utils, halo, progressbar2
-, marshmallow, pyyaml, websocket_client
+{ lib
+, attrs
+, boto3
+, buildPythonPackage
+, click-completion
+, click-didyoumean
+, click-help-colors
+, colorama
+, fetchPypi
+, gradient_statsd
+, gradient-utils
+, halo
+, marshmallow
+, progressbar2
+, pyopenssl
+, pyyaml
+, requests
+, requests_toolbelt
+, terminaltables
+, websocket_client
 }:
 
 buildPythonPackage rec {
   pname = "gradient";
-  version = "1.4.0";
+  version = "1.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15s21945hg342195ig7nchap5mdnsw931iis92pr7hy8ff0rks3n";
+    sha256 = "a8fa91669c97440049132119019e90d0a9cf09e96352cf43c7c6ca244894bd4e";
   };
 
   postPatch = ''
@@ -19,12 +34,28 @@ buildPythonPackage rec {
       --replace 'attrs<=' 'attrs>=' \
       --replace 'colorama==' 'colorama>=' \
       --replace 'PyYAML==' 'PyYAML>=' \
-      --replace 'marshmallow<' 'marshmallow>='
+      --replace 'marshmallow<' 'marshmallow>=' \
+      --replace 'websocket-client==' 'websocket-client>='
   '';
 
-  propagatedBuildInputs = [ attrs boto3 requests gradient_statsd terminaltables
-    click-completion click-didyoumean click-help-colors requests_toolbelt
-    colorama gradient-utils halo marshmallow progressbar2 pyyaml websocket_client
+  propagatedBuildInputs = [
+    attrs
+    boto3
+    click-completion
+    click-didyoumean
+    click-help-colors
+    colorama
+    gradient_statsd
+    gradient-utils
+    halo
+    marshmallow
+    progressbar2
+    pyopenssl
+    pyyaml
+    requests
+    requests_toolbelt
+    terminaltables
+    websocket_client
   ];
 
   # tries to use /homeless-shelter to mimic container usage, etc
@@ -32,9 +63,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "The command line interface for Gradient";
-    homepage    = "https://github.com/Paperspace/gradient-cli";
-    license     = licenses.isc;
-    platforms   = platforms.unix;
+    homepage = "https://github.com/Paperspace/gradient-cli";
+    license = licenses.isc;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/gradient_statsd/default.nix b/nixpkgs/pkgs/development/python-modules/gradient_statsd/default.nix
index ada005d14f8e..180e20c9f560 100644
--- a/nixpkgs/pkgs/development/python-modules/gradient_statsd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gradient_statsd/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchPypi, buildPythonPackage
-, boto3, requests, datadog, configparser, python
+, requests, datadog, configparser, python
 }:
 
 buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/development/python-modules/graphene/default.nix b/nixpkgs/pkgs/development/python-modules/graphene/default.nix
index bf7d08cdce36..2839fc337cd8 100644
--- a/nixpkgs/pkgs/development/python-modules/graphene/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphene/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , aniso8601
-, iso8601
 , graphql-core
 , graphql-relay
 , promise
diff --git a/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix b/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix
index 17ac91329163..81260110f929 100644
--- a/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix
@@ -1,6 +1,19 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, django, django_tagging, whisper, pycairo, cairocffi, ldap, memcached, pytz, urllib3, scandir
+{ lib, buildPythonPackage, fetchPypi
+, django
+, memcached
+, txamqp
+, django_tagging
+, gunicorn
+, pytz
+, pyparsing
+, cairocffi
+, whisper
+, whitenoise
+, scandir
+, urllib3
+, six
 }:
+
 buildPythonPackage rec {
   pname = "graphite-web";
   version = "1.1.7";
@@ -15,8 +28,19 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    django django_tagging whisper pycairo cairocffi
-    ldap memcached pytz urllib3 scandir
+    django
+    memcached
+    txamqp
+    django_tagging
+    gunicorn
+    pytz
+    pyparsing
+    cairocffi
+    whisper
+    whitenoise
+    scandir
+    urllib3
+    six
   ];
 
   # Carbon-s default installation is /opt/graphite. This env variable ensures
@@ -28,6 +52,8 @@ buildPythonPackage rec {
       --replace "join(WEBAPP_DIR, 'content')" "join('$out', 'webapp', 'content')"
   '';
 
+  pythonImportsCheck = [ "graphite" ];
+
   meta = with lib; {
     homepage = "http://graphiteapp.org/";
     description = "Enterprise scalable realtime graphing";
diff --git a/nixpkgs/pkgs/development/python-modules/graphql-relay/default.nix b/nixpkgs/pkgs/development/python-modules/graphql-relay/default.nix
index fa6a9ec60a73..08e27c194873 100644
--- a/nixpkgs/pkgs/development/python-modules/graphql-relay/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphql-relay/default.nix
@@ -1,17 +1,32 @@
-{ lib, buildPythonPackage, fetchPypi, graphql-core, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, graphql-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, typing-extensions
+}:
 
 buildPythonPackage rec {
   pname = "graphql-relay";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mjmpf4abrxfyln0ykxq4xa6lp7xwgqr8631qp011hv0nfl6jgxd";
+    sha256 = "sha256-cNWn7lmV6nwqmjflEidmOxpGTx9A6Y/d6VC+VBXf4LQ=";
   };
 
-  propagatedBuildInputs = [ graphql-core ];
+  propagatedBuildInputs = [
+    graphql-core
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    typing-extensions
+  ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "graphql_relay" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/graphtage/default.nix b/nixpkgs/pkgs/development/python-modules/graphtage/default.nix
new file mode 100644
index 000000000000..c222ea521bb8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/graphtage/default.nix
@@ -0,0 +1,48 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, pytestCheckHook
+, pythonOlder
+  # Python dependencies
+, colorama
+, intervaltree
+, json5
+, pyyaml
+, scipy
+, tqdm
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "graphtage";
+  version = "0.2.5";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "trailofbits";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-cFOTbPv7CnRdet7bx5LVq5xp9LG4yNm0oxlW5aSEeZs=";
+  };
+
+  propagatedBuildInputs = [
+    colorama
+    intervaltree
+    json5
+    pyyaml
+    scipy
+    tqdm
+    typing-extensions
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "graphtage" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/trailofbits/graphtage";
+    description = "A utility to diff tree-like files such as JSON and XML";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/graspologic/default.nix b/nixpkgs/pkgs/development/python-modules/graspologic/default.nix
index 4fd6ccf19c57..b4e8803784b5 100644
--- a/nixpkgs/pkgs/development/python-modules/graspologic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graspologic/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [ pytestCheckHook pytestcov ];
-  pytestFlagsArray = [ "tests" "--ignore=docs" ];
+  pytestFlagsArray = [ "tests" "--ignore=docs" "--ignore=tests/test_sklearn.py" ];
   disabledTests = [ "gridplot_outputs" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/gremlinpython/default.nix b/nixpkgs/pkgs/development/python-modules/gremlinpython/default.nix
index 97d169283b23..59da8f173d97 100644
--- a/nixpkgs/pkgs/development/python-modules/gremlinpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gremlinpython/default.nix
@@ -1,22 +1,23 @@
-{ stdenv, lib, buildPythonPackage, fetchFromGitHub, python, pythonOlder
-, pytestCheckHook, pyhamcrest, pytestrunner, pytest
+{ lib, buildPythonPackage, fetchFromGitHub
+, pytestCheckHook, pyhamcrest, pytestrunner
 , six, isodate, tornado, aenum, radish-bdd, mock
 }:
 
 buildPythonPackage rec {
   pname = "gremlinpython";
-  version = "3.4.8";
+  version = "3.4.10";
 
   # pypi tarball doesn't include tests
   src = fetchFromGitHub {
     owner = "apache";
     repo = "tinkerpop";
     rev = version;
-    sha256 = "0kcyhfxz7z4f8i64gig8q1q9dhy24cprbh63vwsdiwryg74q4chl";
+    sha256 = "0i9lkrwbsmpx1h9480vf97pibm2v37sgw2qm2r1c0i8gg5bcmhj3";
   };
   sourceRoot = "source/gremlin-python/src/main/jython";
   postPatch = ''
     substituteInPlace setup.py \
+      --replace 'aenum>=1.4.5,<3.0.0' 'aenum' \
       --replace 'tornado>=4.4.1,<6.0' 'tornado' \
       --replace 'PyHamcrest>=1.9.0,<2.0.0' 'PyHamcrest' \
       --replace 'radish-bdd==0.8.6' 'radish-bdd' \
diff --git a/nixpkgs/pkgs/development/python-modules/grpc_google_iam_v1/default.nix b/nixpkgs/pkgs/development/python-modules/grpc_google_iam_v1/default.nix
index 7291cd4b65e0..9a74206f02e0 100644
--- a/nixpkgs/pkgs/development/python-modules/grpc_google_iam_v1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpc_google_iam_v1/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , grpcio
-, googleapis_common_protos
+, googleapis-common-protos
 , pytest
 }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "0bfb5b56f648f457021a91c0df0db4934b6e0c300bd0f2de2333383fe958aa72";
   };
 
-  propagatedBuildInputs = [ grpcio googleapis_common_protos ];
+  propagatedBuildInputs = [ grpcio googleapis-common-protos ];
 
   # non-standard test format, and python3 will load local google folder first
   # but tests cannot be ran if google folder is removed or moved
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
index 8ac1cd6f0d6c..d2d06450b925 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.35.0";
+  version = "1.36.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e2a41cba9c5a20ae299d0fdd377fe231434fa04cbfbfb3807293c6ec10b03cf";
+    sha256 = "80ef584f7b917f575e4b8f2ec59cd4a4d98c2046e801a735f3136b05742a36a6";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
index 1b1ffb975fb6..0fe6b9343eb3 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , buildPythonPackage
-, darwin
 , grpc
 , six
 , protobuf
@@ -20,8 +19,7 @@ buildPythonPackage rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ cython pkg-config ]
-    ++ lib.optional stdenv.isDarwin darwin.cctools;
+  nativeBuildInputs = [ cython pkg-config ];
 
   buildInputs = [ c-ares openssl zlib ];
   propagatedBuildInputs = [ six protobuf ]
diff --git a/nixpkgs/pkgs/development/python-modules/gsd/default.nix b/nixpkgs/pkgs/development/python-modules/gsd/default.nix
index 8eefb1f4318b..b23cfc71e602 100644
--- a/nixpkgs/pkgs/development/python-modules/gsd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gsd/default.nix
@@ -1,10 +1,10 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27
-, numpy
-, pytest
+, cython, numpy
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  version = "1.9.3";
+  version = "2.4.1";
   pname = "gsd";
   disabled = isPy27;
 
@@ -12,14 +12,18 @@ buildPythonPackage rec {
     owner = "glotzerlab";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07hw29r2inyp493dia4fx3ysfr1wxi2jb3n9cmwdi0l54s2ahqvf";
+    sha256 = "02zxfmqw7a5kz8qjdph9a9961mbkd4haxwwa28yjkxs5hzs5x3c8";
   };
 
+  nativeBuildInputs = [ cython ];
   propagatedBuildInputs = [ numpy ];
 
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    pytest
+  checkInputs = [ pytestCheckHook ];
+  preCheck = ''
+    pushd gsd/test
+  '';
+  postCheck = ''
+    popd
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/gspread/default.nix b/nixpkgs/pkgs/development/python-modules/gspread/default.nix
index 0370f80b4a40..beaf1e4f9038 100644
--- a/nixpkgs/pkgs/development/python-modules/gspread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gspread/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.6.0";
+  version = "3.7.0";
   pname = "gspread";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e04f1a6267b3929fc1600424c5ec83906d439672cafdd61a9d5b916a139f841c";
+    sha256 = "4bda4ab8c5edb9e41cf4ae40d4d5fb30447522b4e43608e05c01351ab1b96912";
   };
 
   propagatedBuildInputs = [ requests google-auth google-auth-oauthlib ];
diff --git a/nixpkgs/pkgs/development/python-modules/gssapi/default.nix b/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
index e5149f6025ad..9a1d54e6b5e3 100644
--- a/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
@@ -7,7 +7,7 @@
 , decorator
 , nose
 , krb5Full
-, darwin
+, GSS
 , parameterized
 , shouldbe
 , cython
@@ -17,20 +17,20 @@
 
 buildPythonPackage rec {
   pname = "gssapi";
-  version = "1.6.10";
+  version = "1.6.12";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pythongssapi";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "11w8z9ik6zzv3pw3319mz91cgbfkgx0mffxbapqnhilzij2jad4q";
+    sha256 = "sha256-x86/KMcXChPLzoCqR9xwemusWktf/seHLQmEKLco3GQ=";
   };
 
   # It's used to locate headers
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "get_output('krb5-config gssapi --prefix')" "'${lib.getDev krb5Full}'"
+      --replace 'get_output(f"{kc} gssapi --prefix")' '"${lib.getDev krb5Full}"'
   '';
 
   nativeBuildInputs = [
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.GSS
+    GSS
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/guppy3/default.nix b/nixpkgs/pkgs/development/python-modules/guppy3/default.nix
new file mode 100644
index 000000000000..578f979914cb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/guppy3/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, tkinter
+}:
+
+buildPythonPackage rec {
+  pname = "guppy3";
+  version = "3.1.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "zhuyifei1999";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0yjsn8najbic4f50nj6jzhzrhj1bw6918w0gihdkzhqynwgqi64m";
+  };
+
+  propagatedBuildInputs = [ tkinter ];
+
+  # Tests are starting a Tkinter GUI
+  doCheck = false;
+  pythonImportsCheck = [ "guppy" ];
+
+  meta = with lib; {
+    description = "Python Programming Environment & Heap analysis toolset";
+    homepage = "https://zhuyifei1999.github.io/guppy3/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/gviz-api/default.nix b/nixpkgs/pkgs/development/python-modules/gviz-api/default.nix
index fabc2d147fca..92f33abb594a 100644
--- a/nixpkgs/pkgs/development/python-modules/gviz-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gviz-api/default.nix
@@ -8,8 +8,7 @@ buildPythonPackage rec {
   format = "wheel";
 
   src = fetchPypi {
-    inherit pname version;
-    format = "wheel";
+    inherit pname version format;
     sha256 = "1yag559lpmwfdxpxn679a6ajifcbpgljr5n6k5b7rrj38k2xq7jg";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/h3/default.nix b/nixpkgs/pkgs/development/python-modules/h3/default.nix
index e66a3f5e9fcb..3552b6922fcd 100644
--- a/nixpkgs/pkgs/development/python-modules/h3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/h3/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "h3";
-  version = "3.7.1";
+  version = "3.7.2";
 
   # pypi version does not include tests
   src = fetchFromGitHub {
     owner = "uber";
     repo = "h3-py";
     rev = "v${version}";
-    sha256 = "sha256-MIVV3kZGsIsaJ/ccJOK3+j1VwkUsZGHS5d1sGOBa1Ec=";
+    sha256 = "00yi5ncfhi2wpakwm9visi1jlnnaaha66y90fjcsfyvi4hkm8xv2";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix b/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
index 102ab3a2540c..0397a2d7629e 100644
--- a/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.41.0";
+  version = "0.42.0";
 
   src = fetchFromGitHub {
     owner = "nabucasa";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ewWw3PyJGRHP23J6WBBWs9YGl4vTb9/j/soZ6n5wbLM=";
+    sha256 = "sha256-vDgjuNgwNp9cDgiCNxhACOcuaxcrR+0DW/U5OaSW0n4=";
   };
 
   postPatch = ''
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/NabuCasa/hass-nabucasa";
     description = "Home Assistant cloud integration by Nabu Casa, inc.";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ Scriptkiddi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix b/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix
index daa181a9cfc5..961137ed9ab2 100644
--- a/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "hatasmota";
-  version = "0.2.8";
+  version = "0.2.9";
 
   src = fetchFromGitHub {
     owner = "emontnemery";
     repo = pname;
     rev = version;
-    sha256 = "sha256-DuVpo+g5VS7bkj/DZi0vNOAPjPkzfIA5I2BD5KJ/rNQ=";
+    sha256 = "sha256-+4jlzemF5f4Qz4QHDaErsmVHq1Pjn/vsvoq/oCbW/hI=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/hcloud/default.nix b/nixpkgs/pkgs/development/python-modules/hcloud/default.nix
index 8f9d69a8941d..192589cdc8fb 100644
--- a/nixpkgs/pkgs/development/python-modules/hcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hcloud/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "hcloud";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11sdyays90lmkbdxhllc8ccx0xhrafb7dknqgjlrfpzq04v67vyy";
+    sha256 = "1yq7g9hk6b95nqd0f7kvh9r8ij8k9hs6gmjif83qip98xvkdwf0b";
   };
 
   propagatedBuildInputs = [ future requests python-dateutil ];
diff --git a/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix b/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix
index 6ee76e5271a7..d2590d14955c 100644
--- a/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix
@@ -1,8 +1,9 @@
 { lib
 , buildPythonPackage
+, fetchpatch
 , cython
 , numpy
-, nose
+, pytestCheckHook
 , scipy
 , scikitlearn
 , fetchPypi
@@ -12,17 +13,28 @@
 
 buildPythonPackage rec {
   pname = "hdbscan";
-  version = "0.8.26";
+  version = "0.8.27";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zlj2y42f0hrklviv21j9m895259ad8273dxgh7b44702781r9l1";
+    sha256 = "e3a418d0d36874f7b6a1bf0b7461f3857fc13a525fd48ba34caed2fe8973aa26";
   };
-
-  checkInputs = [ nose ];
+  patches = [
+    # This patch fixes compatibility with numpy 1.20. It will be in the next release
+    # after 0.8.27
+    (fetchpatch {
+      url = "https://github.com/scikit-learn-contrib/hdbscan/commit/5b67a4fba39c5aebe8187a6a418da677f89a63e0.patch";
+      sha256 = "07d7jdwk0b8kgaqkifd529sarji01j1jiih7cfccc5kxmlb5py9h";
+    })
+  ];
 
   nativeBuildInputs = [ cython ];
   propagatedBuildInputs = [ numpy scipy scikitlearn joblib six ];
+  preCheck = ''
+    cd hdbscan/tests
+    rm __init__.py
+  '';
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Hierarchical Density-Based Spatial Clustering of Applications with Noise, a clustering algorithm with a scikit-learn compatible API";
diff --git a/nixpkgs/pkgs/development/python-modules/hdmedians/default.nix b/nixpkgs/pkgs/development/python-modules/hdmedians/default.nix
index f1b0d13e56e5..cc953aa696e3 100644
--- a/nixpkgs/pkgs/development/python-modules/hdmedians/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hdmedians/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.14.1";
+  version = "0.14.2";
   pname = "hdmedians";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ccefaae26302afd843c941b3b662f1119d5a36dec118077310f811a7a1ed8871";
+    sha256 = "b47aecb16771e1ba0736557255d80ae0240b09156bff434321de559b359ac2d6";
   };
 
   # nose was specified in setup.py as a build dependency...
diff --git a/nixpkgs/pkgs/development/python-modules/hetzner/default.nix b/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
index 9b89567d8ef5..4264183e5f53 100644
--- a/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "hetzner";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     repo = "hetzner";
     owner = "aszlig";
     rev = "v${version}";
-    sha256 = "152fklxff08s71v0b78yp5ajwpqyszm3sd7j0qsrwa2x9ik4968h";
+    sha256 = "0nhm7j2y4rgmrl0c1rklg982qllp7fky34dchqwd4czbsdnv9j7a";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix b/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
index 38a770e879fa..4c74621b483b 100644
--- a/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "hg-evolve";
-  version = "10.1.0";
+  version = "10.2.0.post1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a386e6ee2d9a0e332a49f1cb210c4c11ba9844bcd52808270f48e688314783d8";
+    sha256 = "391aa877a61ed04c58b8d82d465b3771f632bb9b19f22cbf18f0e5a1f42f8d4e";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/hickle/default.nix b/nixpkgs/pkgs/development/python-modules/hickle/default.nix
index 0806573d7bec..036122f702b4 100644
--- a/nixpkgs/pkgs/development/python-modules/hickle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hickle/default.nix
@@ -19,12 +19,12 @@
 
 buildPythonPackage rec {
   pname   = "hickle";
-  version = "4.0.1";
+  version = "4.0.4";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fcf2c4f9e4b7f0d9dae7aa6c59a58473884017875d3b17898d56eaf8a9c1da96";
+    sha256 = "0d35030a76fe1c7fa6480088cde932689960ed354a2539ffaf5f3c90c578c06f";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/holidays/default.nix b/nixpkgs/pkgs/development/python-modules/holidays/default.nix
index 3ac51ac050fb..fe362fa86da8 100644
--- a/nixpkgs/pkgs/development/python-modules/holidays/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/holidays/default.nix
@@ -1,32 +1,25 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , convertdate
 , dateutil
+, fetchPypi
 , hijri-converter
 , korean-lunar-calendar
+, pytestCheckHook
+, pythonOlder
 , six
-, python
-, flake8
 }:
 
 buildPythonPackage rec {
   pname = "holidays";
-  version = "0.10.5.2";
+  version = "0.11.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0g4hqbb94cwxlcwsjzrzxzlann1ks2r4mgnfzqz74a2rg1nih5zd";
+    sha256 = "sha256-f6/YRvZ/Drfh+cGcOPSnlnvweu1d7S3XqKovk3sOoBs=";
   };
 
-  postPatch = ''
-    # ignore too long line issues
-    # https://github.com/dr-prodigy/python-holidays/issues/423
-    substituteInPlace tests.py \
-      --replace "flake8.get_style_guide(ignore=[" "flake8.get_style_guide(ignore=['E501', "
-  '';
-
-
   propagatedBuildInputs = [
     convertdate
     dateutil
@@ -36,13 +29,9 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    flake8
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    ${python.interpreter} -m unittest
-  '';
-
   pythonImportsCheck = [ "holidays" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/holoviews/default.nix b/nixpkgs/pkgs/development/python-modules/holoviews/default.nix
index 4d9da17bd3a9..667da5aa6499 100644
--- a/nixpkgs/pkgs/development/python-modules/holoviews/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/holoviews/default.nix
@@ -11,18 +11,20 @@
 , bokeh
 , scipy
 , panel
+, colorcet
 }:
 
 buildPythonPackage rec {
   pname = "holoviews";
-  version = "1.13.5";
+  version = "1.14.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3f8a00ce1cc67a388a3a949441accd7e7e9ca9960ba16b49ee96a50305105a01";
+    sha256 = "64f85cf2c99b083b96f26cd26452aec4b41ced6d9e57f56ae8d72b88defc61c9";
   };
 
   propagatedBuildInputs = [
+    colorcet
     param
     numpy
     pyviz-comms
diff --git a/nixpkgs/pkgs/development/python-modules/homepluscontrol/default.nix b/nixpkgs/pkgs/development/python-modules/homepluscontrol/default.nix
new file mode 100644
index 000000000000..680c4a5a7266
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/homepluscontrol/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, aiohttp
+, aioresponses
+, buildPythonPackage
+, fetchFromGitHub
+, pyjwt
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "homepluscontrol";
+  version = "0.0.5";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "chemaaa";
+    repo = pname;
+    rev = version;
+    sha256 = "1nd3a7nhh1xb70cdh2h2bimwbffvpc3457smyzr9fqkjwfbcrr93";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    pyjwt
+    yarl
+  ];
+
+  checkInputs = [
+    aioresponses
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "homepluscontrol" ];
+
+  meta = with lib; {
+    description = "Python API to interact with the Legrand Eliot Home and Control";
+    homepage = "https://github.com/chemaaa/homepluscontrol";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/howdoi/default.nix b/nixpkgs/pkgs/development/python-modules/howdoi/default.nix
index e6323c951ee9..f75a84c01b87 100644
--- a/nixpkgs/pkgs/development/python-modules/howdoi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/howdoi/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "howdoi";
-  version = "2.0.10";
+  version = "2.0.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e561e3c5d4f39ab1f86e9f24bb0b2803ee6e312de61e90907f739aa638f35215";
+    sha256 = "9416be3c8a319fc0764a743a2ad05fa374876dab71dbe15ce86c3a05ece44a0a";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix b/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
index 7562e36e4d95..55aafc620424 100644
--- a/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2020.12.22";
+  version = "2021.3.29";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "1jzcw4clmpbyw67pzskms5rq5b7285iwh42jzc4ly6jz9amggdzc";
+    sha256 = "sha256-F5EXwCoXYmFkV0VWT5leIWZU2xH1t6T0LuxodAANS8E=";
   };
 
   # tests require network connection
@@ -25,6 +25,6 @@ buildPythonPackage rec {
     description = "Chromium HSTS Preload list as a Python package and updated daily";
     homepage = "https://github.com/sethmlarson/hstspreload";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/httpbin/default.nix b/nixpkgs/pkgs/development/python-modules/httpbin/default.nix
index 2e711141fcba..ace9a7041e3f 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
 , flask
 , flask-limiter
 , markupsafe
diff --git a/nixpkgs/pkgs/development/python-modules/httpcore/default.nix b/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
index aa15c2555e67..dbbdf0bb38c0 100644
--- a/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
@@ -9,18 +9,20 @@
 , pytestcov
 , sniffio
 , uvicorn
+, trustme
+, trio
 }:
 
 buildPythonPackage rec {
   pname = "httpcore";
-  version = "0.12.0";
+  version = "0.12.3";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "0bwxn7m7r7h6k41swxj0jqj3nzi76wqxwbnry6y7d4qfh4m26g2j";
+    sha256 = "09hbjc5wzhrnri5y3idxcq329d7jiaxljc7y6npwv9gh9saln109";
   };
 
   propagatedBuildInputs = [
@@ -34,11 +36,15 @@ buildPythonPackage rec {
     pytestCheckHook
     pytestcov
     uvicorn
+    trustme
+    trio
   ];
 
   pytestFlagsArray = [
     # these tests fail during dns lookups: httpcore.ConnectError: [Errno -2] Name or service not known
+    "--ignore=tests/test_threadsafety.py"
     "--ignore=tests/sync_tests/test_interfaces.py"
+    "--ignore=tests/sync_tests/test_retries.py"
   ];
 
   pythonImportsCheck = [ "httpcore" ];
diff --git a/nixpkgs/pkgs/development/python-modules/httplib2/default.nix b/nixpkgs/pkgs/development/python-modules/httplib2/default.nix
index b23d501f1e53..ce3b3aa1f671 100644
--- a/nixpkgs/pkgs/development/python-modules/httplib2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httplib2/default.nix
@@ -1,21 +1,53 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, mock
+, pyparsing
+, pytest-forked
+, pytest-randomly
+, pytest-timeout
+, pytest-xdist
+, pytestCheckHook
+, six
+}:
 
 buildPythonPackage rec {
   pname = "httplib2";
-  version = "0.18.1";
+  version = "0.19.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "8af66c1c52c7ffe1aa5dc4bcd7c769885254b0756e6e69f953c7f0ab49a70ba3";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04y2bc2yv3q84llxnafqrciqxjqpxbrd8glbnvvr16c20fwc3r4q";
   };
 
-  # Needs setting up
-  doCheck = false;
+  postPatch = ''
+    sed -i "/--cov/d" setup.cfg
+  '';
+
+  propagatedBuildInputs = [ pyparsing ];
+
+  checkInputs = [
+    mock
+    pytest-forked
+    pytest-randomly
+    pytest-timeout
+    pytest-xdist
+    six
+    pytestCheckHook
+  ];
+
+  # Don't run tests for Python 2.7
+  doCheck = !isPy27;
+  pytestFlagsArray = [ "--ignore python2" ];
+  pythonImportsCheck = [ "httplib2" ];
 
   meta = with lib; {
-    homepage = "https://github.com/httplib2/httplib2";
     description = "A comprehensive HTTP client library";
+    homepage = "https://httplib2.readthedocs.io";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/httpretty/default.nix b/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
index 8974672d0a93..b4a82d04fa18 100644
--- a/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "httpretty";
-  version = "1.0.3";
+  version = "1.0.5";
 
   # drop this for version > 0.9.7
   # Flaky tests: https://github.com/gabrielfalcao/HTTPretty/pull/394
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9335cbd8f38745e0e2dc4755d8932a77d378d93e15804969504b1e6b568d613c";
+    sha256 = "e53c927c4d3d781a0761727f1edfad64abef94e828718e12b672a678a8b3e0b5";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/httpsig/default.nix b/nixpkgs/pkgs/development/python-modules/httpsig/default.nix
index 30c918d86feb..accc731eeadf 100644
--- a/nixpkgs/pkgs/development/python-modules/httpsig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpsig/default.nix
@@ -1,9 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pycryptodome
 , requests
+, six
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,17 @@ buildPythonPackage rec {
     sha256 = "1rkc3zwsq53rjsmc47335m4viljiwdbmw3y2zry4z70j8q1dbmki";
   };
 
-  buildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ pycryptodome requests ];
+  buildInputs = [
+    setuptools-scm
+  ];
 
-  # Jailbreak pycryptodome
-  preBuild = ''
-    substituteInPlace setup.py --replace "==3.4.7" ""
-  '';
+  propagatedBuildInputs = [
+    pycryptodome
+    requests
+    six
+  ];
+
+  pythonImportsCheck = [ "httpsig" ];
 
   meta = with lib; {
     description = "Sign HTTP requests with secure signatures";
diff --git a/nixpkgs/pkgs/development/python-modules/httpx/default.nix b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
index 6e81cc92193c..2aba203ea01f 100644
--- a/nixpkgs/pkgs/development/python-modules/httpx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.16.1";
+  version = "0.17.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "00gmq45fckcqkj910bvd7pyqz1mvgsdvz4s0k7dzbnc5czzq1f4a";
+    sha256 = "sha256-P4Uki+vlAgVECBUz9UGvv1ip49jmf0kYbyU2/mkWE3U=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/huggingface-hub/default.nix b/nixpkgs/pkgs/development/python-modules/huggingface-hub/default.nix
new file mode 100644
index 000000000000..0fce65f2b8bd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, pythonOlder
+, filelock
+, importlib-metadata
+, requests
+, tqdm
+}:
+
+buildPythonPackage rec {
+  pname = "huggingface-hub";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "huggingface";
+    repo = "huggingface_hub";
+    rev = "v${version}";
+    hash = "sha256-0DSgWmodeRmvGq2v3n86BzRx5Xdb8fIQh+G/2O2d+yo=";
+  };
+
+  propagatedBuildInputs = [
+    filelock
+    requests
+    tqdm
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+
+  # Tests require network access.
+  doCheck = false;
+  pythonImportsCheck = [ "huggingface_hub" ];
+
+   meta = with lib; {
+    homepage = "https://github.com/huggingface/huggingface_hub";
+    description = "Download and publish models and other files on the huggingface.co hub";
+    changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix b/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix
index 49cb31b7d030..81ea4286c96f 100644
--- a/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "humanfriendly";
-  version = "8.2";
+  version = "9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bf52ec91244819c780341a3438d5d7b09f431d3f113a475147ac9b7b167a3d12";
+    sha256 = "sha256-BmVilWY5qyH/JnbR/aC1mH6YXFNPx2cAoZvVS8uBEh0=";
   };
 
   propagatedBuildInputs = lib.optional (pythonOlder "3.3") monotonic;
diff --git a/nixpkgs/pkgs/development/python-modules/humanize/default.nix b/nixpkgs/pkgs/development/python-modules/humanize/default.nix
index b6f78e5cf8fd..ef66870ddfd7 100644
--- a/nixpkgs/pkgs/development/python-modules/humanize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/humanize/default.nix
@@ -2,31 +2,31 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, mock
 , setuptools_scm
+, setuptools
+, pytestCheckHook
+, freezegun
 }:
 
 buildPythonPackage rec {
-  version = "3.1.0";
+  version = "3.2.0";
   pname = "humanize";
   disabled = isPy27; # setup.py no longer compatible
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fd3eb915310335c63a54d4507289ecc7b3a7454cd2c22ac5086d061a3cbfd592";
+    sha256 = "09ph6fd1362xdn2hgwdgh30z0zqjp3bgvr1akyvm36b8jm400sdb";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
-  checkInputs = [ mock ];
-
-  doCheck = false;
+  propagatedBuildInputs = [ setuptools ];
+  checkInputs = [ pytestCheckHook freezegun ];
 
   meta = with lib; {
     description = "Python humanize utilities";
     homepage = "https://github.com/jmoiron/humanize";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.unix;
+    maintainers = with maintainers; [ rmcgibbo ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/hupper/default.nix b/nixpkgs/pkgs/development/python-modules/hupper/default.nix
index 1fe5ab7153d3..27e308ee4477 100644
--- a/nixpkgs/pkgs/development/python-modules/hupper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hupper/default.nix
@@ -1,5 +1,10 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi
-, pytest, pytestcov, watchdog, mock
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pytest-cov
+, watchdog
 }:
 
 buildPythonPackage rec {
@@ -11,11 +16,14 @@ buildPythonPackage rec {
     sha256 = "3818f53dabc24da66f65cf4878c1c7a9b5df0c46b813e014abdd7c569eb9a02a";
   };
 
-  checkPhase = ''
-    py.test
-  '';
-
   # FIXME: watchdog dependency is disabled on Darwin because of #31865, which causes very silent
   # segfaults in the testsuite that end up failing the tests in a background thread (in myapp)
-  checkInputs = [ pytest pytestcov mock ] ++ lib.optional (!stdenv.isDarwin) watchdog;
+  checkInputs = [ pytestCheckHook pytest-cov ] ++ lib.optional (!stdenv.isDarwin) watchdog;
+
+  meta = with lib; {
+    description = "in-process file monitor / reloader for reloading your code automatically during development";
+    homepage = "https://github.com/Pylons/hupper";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/hvac/default.nix b/nixpkgs/pkgs/development/python-modules/hvac/default.nix
index f7eb29484142..f67b5de7ee06 100644
--- a/nixpkgs/pkgs/development/python-modules/hvac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hvac/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "hvac";
-  version = "0.10.7";
+  version = "0.10.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6ee2ba6002f11151472fa873b6637d902fc6045a2193aea08b39ae8147c230ba";
+    sha256 = "cd74138994b1b99cdb75d34aadfd900352b3170bfc31c5e4cc0ff63eaa731cf9";
   };
 
   propagatedBuildInputs = [ requests six ];
diff --git a/nixpkgs/pkgs/development/python-modules/hvplot/default.nix b/nixpkgs/pkgs/development/python-modules/hvplot/default.nix
index aaad8f2b1dec..c5fb601ea426 100644
--- a/nixpkgs/pkgs/development/python-modules/hvplot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hvplot/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "hvplot";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c709bebb737ebd71a0433f2333ed15f03dd3c431d4646c41c2b9fcbae4a29b7";
+    sha256 = "cdb61183d3cdb1296c7f63c6aab59ee72b7b79b9ddc18abce2ebd3214e8de9db";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/hwi/default.nix b/nixpkgs/pkgs/development/python-modules/hwi/default.nix
index 7c34235a190b..5da15fa3e233 100644
--- a/nixpkgs/pkgs/development/python-modules/hwi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hwi/default.nix
@@ -7,28 +7,20 @@
 , libusb1
 , mnemonic
 , pyaes
-, pythonAtLeast
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "hwi";
-  version = "1.2.1";
-  disabled = pythonAtLeast "3.9";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "bitcoin-core";
     repo = "HWI";
     rev = version;
-    sha256 = "0fs3152lw7y5l9ssr5as8gd739m9lb7wxpv1vc5m77k5nw7l8ax5";
+    sha256 = "148m0vgwm6l8drcx6j3fjs2zpdzvslk4w2nkb8nm0g8qdlm6gjlw";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "'ecdsa>=0.13.0,<0.14.0'" "'ecdsa'" \
-      --replace "'hidapi>=0.7.99,<0.8.0'" "'hidapi'" \
-      --replace "'mnemonic>=0.18.0,<0.19.0'" "'mnemonic'"
-  '';
-
   propagatedBuildInputs = [
     bitbox02
     ecdsa
@@ -36,6 +28,7 @@ buildPythonPackage rec {
     libusb1
     mnemonic
     pyaes
+    typing-extensions
   ];
 
   # tests require to clone quite a few firmwares
diff --git a/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix b/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
index dac4ca43fc91..e956cb9cc46f 100644
--- a/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
@@ -1,7 +1,14 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, isPy3k, attrs, coverage, enum34, pexpect
-, doCheck ? true, pytest, pytest_xdist, flaky, mock
+{ lib
+, buildPythonPackage
+, pythonAtLeast
+, fetchFromGitHub
+, attrs
+, pexpect
+, doCheck ? true
+, pytestCheckHook
+, pytest-xdist
 , sortedcontainers
+, tzdata
 }:
 buildPythonPackage rec {
   # https://hypothesis.readthedocs.org/en/latest/packaging.html
@@ -10,36 +17,40 @@ buildPythonPackage rec {
   # pytz fake_factory django numpy pytest
   # If you need these, you can just add them to your environment.
 
-  version = "5.30.0";
   pname = "hypothesis";
+  version = "5.49.0";
 
   # Use github tarballs that includes tests
   src = fetchFromGitHub {
     owner = "HypothesisWorks";
     repo = "hypothesis-python";
     rev = "hypothesis-python-${version}";
-    sha256 = "0fmc4jfaksr285fjhp18ibj2rr8cxmbd0pwx370r5wf8jnhm6jb3";
+    sha256 = "1lr9a93vdx70s9i1zazazif5hy8fbqhvwqq402ygpf53yw4lgi2w";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
 
   propagatedBuildInputs = [
     attrs
-    coverage
     sortedcontainers
-  ] ++ lib.optional (!isPy3k) enum34;
+  ];
+
+  checkInputs = [ pytestCheckHook pytest-xdist pexpect ]
+    ++ lib.optional (pythonAtLeast "3.9") tzdata;
 
-  checkInputs = [ pytest pytest_xdist flaky mock pexpect ];
   inherit doCheck;
 
-  checkPhase = ''
-    rm tox.ini # This file changes how py.test runs and breaks it
-    py.test tests/cover
+  # This file changes how pytest runs and breaks it
+  preCheck = ''
+    rm tox.ini
   '';
 
+  pytestFlagsArray = [ "tests/cover" ];
+
   meta = with lib; {
     description = "A Python library for property based testing";
     homepage = "https://github.com/HypothesisWorks/hypothesis";
     license = licenses.mpl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix b/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix
new file mode 100644
index 000000000000..4bf1ca8d02f7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, hypothesis, lark-parser, libcst, black, parso, pytestCheckHook, pytest-cov, pytest-xdist }:
+
+buildPythonPackage rec {
+  pname = "hypothesmith";
+  version = "0.1.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-+f8EexXE7TEs49pX6idXD4bWtTzhKvnyXlnmV2oAQQo=";
+  };
+
+  propagatedBuildInputs = [ hypothesis lark-parser libcst ];
+
+  checkInputs = [ black parso pytestCheckHook pytest-cov pytest-xdist ];
+
+  pythonImportsCheck = [ "hypothesmith" ];
+
+  meta = with lib; {
+    description = "Hypothesis strategies for generating Python programs, something like CSmith";
+    homepage = "https://github.com/Zac-HD/hypothesmith";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/iaqualink/default.nix b/nixpkgs/pkgs/development/python-modules/iaqualink/default.nix
new file mode 100644
index 000000000000..223f3893e18d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/iaqualink/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-runner
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "iaqualink";
+  version = "0.4.0";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "flz";
+    repo = "iaqualink-py";
+    rev = "v${version}";
+    sha256 = "13iwngjjqzr1pkmskbc2wakccvcjkf4bk65f4jp4ywpciilr4zjw";
+  };
+
+  nativeBuildInputs = [ pytest-runner ];
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "iaqualink" ];
+
+  meta = with lib; {
+    description = "Python library for Jandy iAqualink";
+    homepage = "https://github.com/flz/iaqualink-py";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/icmplib/default.nix b/nixpkgs/pkgs/development/python-modules/icmplib/default.nix
index 89f49d9cf624..2718b6340540 100644
--- a/nixpkgs/pkgs/development/python-modules/icmplib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/icmplib/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "icmplib";
-  version = "2.0.2";
+  version = "2.1.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "ValentinBELYN";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0djsbksgml2h18w6509w59s88730w1xaxdxzws12alq4m5v4hirr";
+    sha256 = "06xx9854yzxa7x1mjfzbhhw5rfzgjnw269j5k0rshyqh3qvw1nwv";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/identify/default.nix b/nixpkgs/pkgs/development/python-modules/identify/default.nix
index f3b8393a2759..cb4d538da3dd 100644
--- a/nixpkgs/pkgs/development/python-modules/identify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/identify/default.nix
@@ -1,20 +1,33 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, editdistance
+}:
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "1.5.13";
+  version = "1.6.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "70b638cf4743f33042bebb3b51e25261a0a10e80f978739f17e7fd4837664a66";
+
+  src = fetchFromGitHub {
+    owner = "pre-commit";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1sqhqqjp53dwm8yq4nrgggxbvzs3szbg49z5sj2ss9xzlgmimclm";
   };
 
-  # Tests not included in PyPI tarball
-  doCheck = false;
+  checkInputs = [
+    editdistance
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "identify" ];
 
   meta = with lib; {
     description = "File identification library for Python";
     homepage = "https://github.com/chriskuehl/identify";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ijson/default.nix b/nixpkgs/pkgs/development/python-modules/ijson/default.nix
index 8ccc7eb4e0c0..3f65b9291ae6 100644
--- a/nixpkgs/pkgs/development/python-modules/ijson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ijson/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ijson";
-  version = "3.1.3";
+  version = "3.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d29977f7235b5bf83c372825c6abd8640ba0e3a8e031d3ffc3b63deaf6ae1487";
+    sha256 = "1d1003ae3c6115ec9b587d29dd136860a81a23c7626b682e2b5b12c9fd30e4ea";
   };
 
   doCheck = false; # something about yajl
diff --git a/nixpkgs/pkgs/development/python-modules/image-match/default.nix b/nixpkgs/pkgs/development/python-modules/image-match/default.nix
index 7464f3c89972..ed5179d6db5f 100644
--- a/nixpkgs/pkgs/development/python-modules/image-match/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/image-match/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage {
 
   # tests cannot work without elasticsearch
   doCheck = false;
+  pythonImportsCheck = [ "image_match" ];
 
   meta = with lib; {
     homepage = "https://github.com/ascribe/image-match";
diff --git a/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix b/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix
index 8d2b7fd8da88..ee1df820a401 100644
--- a/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix
@@ -26,6 +26,9 @@ buildPythonPackage rec {
     opencv3
   ];
 
+  doCheck = false;
+  pythonImportsCheck = [ "imagecorruptions" ];
+
   meta = with lib; {
     homepage = "https://github.com/bethgelab/imagecorruptions";
     description = "This package provides a set of image corruptions";
diff --git a/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix b/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix
index 107febe4041b..136415eb54e5 100644
--- a/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imap-tools";
-  version = "0.37.0";
+  version = "0.39.0";
 
   disabled = isPy27;
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "ikvk";
     repo = "imap_tools";
     rev = "v${version}";
-    sha256 = "1501lk3fjxqmzxffahbj33y795gwl96yqvk3fs86cchm6vz2gnkk";
+    sha256 = "sha256-PyksCYVe7Ij/+bZpntHgY51I/ZVnC6L20TcKfTLr2CY=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
index e0c2adb8e8bb..cf3fca9aa03c 100644
--- a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -1,31 +1,22 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, fetchpatch
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
 , pandas
 , pytestCheckHook
 , scikitlearn
-, tensorflow
 }:
 
 buildPythonPackage rec {
   pname = "imbalanced-learn";
-  version = "0.7.0";
+  version = "0.8.0";
   disabled = isPy27; # scikit-learn>=0.21 doesn't work on python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "da59de0d1c0fa66f62054dd9a0a295a182563aa1abbb3bf9224a3678fcfe8fa4";
+    sha256 = "0a9xrw4qsh95g85pg2611hvj6xcfncw646si2icaz22haw1x410w";
   };
 
-  patches = [
-    # Fix compatibility with scikit-learn 0.24. This patch will be included in releases of
-    # imbalanced-learn after 0.7.0
-    (fetchpatch {
-      url = "https://github.com/scikit-learn-contrib/imbalanced-learn/commit/dc4051fe0011c68d900be05971b71016d4ad9e90.patch";
-      sha256 = "1rv61k9wv4q37a0v943clr8fflcg9ly530smgndgkjlxkyzw6swh";
-      excludes = ["doc/conf.py" "build_tools/*" "azure-pipelines.yml"];
-    })
-  ];
-
   propagatedBuildInputs = [ scikitlearn ];
   checkInputs = [ pytestCheckHook pandas ];
   preCheck = ''
@@ -37,6 +28,10 @@ buildPythonPackage rec {
     "_generator"
     "show_versions"
     "test_make_imbalanced_iris"
+    "test_rusboost[SAMME.R]"
+
+    # https://github.com/scikit-learn-contrib/imbalanced-learn/issues/824
+    "ValueDifferenceMetric"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/iminuit/default.nix b/nixpkgs/pkgs/development/python-modules/iminuit/default.nix
new file mode 100644
index 000000000000..5bfb66fe4c6c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/iminuit/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, isPy3k, fetchPypi, cmake, numpy, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "iminuit";
+  version = "2.4.0";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "350c13d33f3ec5884335aea1cc11a17ae49dd8e6b2181c3f1b3c9c27e2e0b228";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  propagatedBuildInputs = [ numpy ];
+
+  dontUseCmakeConfigure = true;
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    homepage = "https://github.com/scikit-hep/iminuit";
+    description = "Python interface for the Minuit2 C++ library";
+    license = with licenses; [ mit lgpl2Only ];
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/immutables/default.nix b/nixpkgs/pkgs/development/python-modules/immutables/default.nix
index 41dcc6b2c11e..196ea78bba70 100644
--- a/nixpkgs/pkgs/development/python-modules/immutables/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/immutables/default.nix
@@ -1,19 +1,28 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "immutables";
-  version = "0.14";
+  version = "0.15";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0y0aqw29g525frdnmv9paljzacpp4s21sadfbca5b137iciwr8d0";
+    sha256 = "3713ab1ebbb6946b7ce1387bb9d1d7f5e09c45add58c2a2ee65f963c171e746b";
   };
 
-  meta = {
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "immutables" ];
+
+  meta = with lib; {
     description = "An immutable mapping type for Python";
     homepage = "https://github.com/MagicStack/immutables";
-    license = with lib.licenses; [ asl20 ];
-    maintainers = with lib.maintainers; [ catern ];
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ catern ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix b/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
index 22c05e3319c6..ccb2190cf045 100644
--- a/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "importlib_resources";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b51f0106c8ec564b1bef3d9c588bc694ce2b92125bbb6278f4f2f5b54ec3592";
+    sha256 = "0ed250dbd291947d1a298e89f39afcc477d5a6624770503034b72588601bcc05";
   };
 
   nativeBuildInputs = [ setuptools_scm toml ];
diff --git a/nixpkgs/pkgs/development/python-modules/incomfort-client/default.nix b/nixpkgs/pkgs/development/python-modules/incomfort-client/default.nix
new file mode 100644
index 000000000000..d281ece24635
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/incomfort-client/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "incomfort-client";
+  version = "0.4.5";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "zxdavb";
+    repo = pname;
+    rev = version;
+    sha256 = "0r9f15fcjwhrq6ldji1dzbb76wsvinpkmyyaj7n55rl6ibnsyrwp";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "incomfortclient" ];
+
+  meta = with lib; {
+    description = "Python module to poll Intergas boilers via a Lan2RF gateway";
+    homepage = "https://github.com/zxdavb/incomfort-client";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/inflect/default.nix b/nixpkgs/pkgs/development/python-modules/inflect/default.nix
index c0f6fe920505..b8ebce462dce 100644
--- a/nixpkgs/pkgs/development/python-modules/inflect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inflect/default.nix
@@ -1,16 +1,32 @@
-{ buildPythonPackage, fetchPypi, isPy27, setuptools_scm, nose, six, importlib-metadata, toml }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, setuptools_scm
+, toml
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "inflect";
-  version = "5.0.2";
+  version = "5.3.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d284c905414fe37c050734c8600fe170adfb98ba40f72fc66fed393f5b8d5ea0";
+    sha256 = "41a23f6788962e9775e40e2ecfb1d6455d02de315022afeedd3c5dc070019d73";
   };
 
   nativeBuildInputs = [ setuptools_scm toml ];
-  propagatedBuildInputs = [ six importlib-metadata ];
-  checkInputs = [ nose ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "inflect" ];
+
+  meta = with lib; {
+    description = "Correctly generate plurals, singular nouns, ordinals, indefinite articles";
+    homepage = "https://github.com/jaraco/inflect";
+    changelog = "https://github.com/jaraco/inflect/blob/v${version}/CHANGES.rst";
+    license = licenses.mit;
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix b/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
index 56436cdd0eb9..82153f4b3d9b 100644
--- a/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "influxdb-client";
-  version = "1.14.0";
+  version = "1.15.0";
 
   disabled = pythonOlder "3.6"; # requires python version >=3.6
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "influxdata";
     repo = "influxdb-client-python";
     rev = "v${version}";
-    sha256 = "1qq727gwz5migr3xlqxj57qxv1y52g7xpkdgggz2wz739w5czffd";
+    sha256 = "1b2xh78v965rgafyj7cdbjm2p96d74f7ifsqllc7242n9wv3k53q";
   };
 
   # makes test not reproducible
diff --git a/nixpkgs/pkgs/development/python-modules/influxdb/default.nix b/nixpkgs/pkgs/development/python-modules/influxdb/default.nix
index 69fe83b8779b..6b3a46ea3915 100644
--- a/nixpkgs/pkgs/development/python-modules/influxdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/influxdb/default.nix
@@ -1,38 +1,70 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, requests
 , dateutil
+, fetchFromGitHub
+, fetchpatch
+, mock
+, msgpack
+, nose
+, pandas
+, pytestCheckHook
 , pytz
+, requests
+, requests-mock
 , six
-, msgpack
-, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "influxdb";
   version = "5.3.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9bcaafd57ac152b9824ab12ed19f204206ef5df8af68404770554c5b55b475f6";
+  src = fetchFromGitHub {
+    owner = "influxdata";
+    repo = "influxdb-python";
+    rev = "v${version}";
+    sha256 = "1jfkf53jcf8lcq98qc0bw5d1d0yp3558mh8l2dqc9jlsm0smigjs";
   };
 
+  propagatedBuildInputs = [
+    requests
+    dateutil
+    pytz
+    six
+    msgpack
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    requests-mock
+    mock
+    nose
+    pandas
+  ];
+
   patches = [
     (fetchpatch {
+      # Relaxes msgpack pinning
       url = "https://github.com/influxdata/influxdb-python/commit/cc41e290f690c4eb67f75c98fa9f027bdb6eb16b.patch";
       sha256 = "1fb9qrq1kp24pixjwvzhdy67z3h0wnj92aj0jw0a25fd0rdxdvg4";
     })
   ];
 
-  # ImportError: No module named tests
-  doCheck = false;
-  propagatedBuildInputs = [ requests dateutil pytz six msgpack ];
+  disabledTests = [
+    # Tests cause FutureWarning due to use of 'record' instead of 'records' in pandas.
+    #   https://github.com/influxdata/influxdb-python/pull/845
+    # Also type mismatches in assertEqual on DataFrame:
+    #   b'foo[30 chars]_one=1.0,column_two=1.0 0\nfoo,tag_one=red,tag[47 chars]00\n' !=
+    #   b'foo[30 chars]_one="1",column_two=1i 0\nfoo,tag_one=red,tag_[46 chars]00\n'
+    "test_write_points_from_dataframe_with_nan_json"
+    "test_write_points_from_dataframe_with_tags_and_nan_json"
+  ];
+
+  pythonImportsCheck = [ "influxdb" ];
 
   meta = with lib; {
     description = "Python client for InfluxDB";
     homepage = "https://github.com/influxdb/influxdb-python";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/intake/default.nix b/nixpkgs/pkgs/development/python-modules/intake/default.nix
index 922d543fd1de..49cf660bf568 100644
--- a/nixpkgs/pkgs/development/python-modules/intake/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/intake/default.nix
@@ -23,13 +23,12 @@
 
 buildPythonPackage rec {
   pname = "intake";
-  version = "0.6.0";
-
+  version = "0.6.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c284abeb74927a7366dcab6cefc010c4d050365b8af61c37326a2473a490a4e";
+    sha256 = "f09800203fcaf1512f9234e54dbd07ec2b5217aafd21716385725ec052f5a52e";
   };
 
   propagatedBuildInputs = [
@@ -64,14 +63,17 @@ buildPythonPackage rec {
     PATH=$out/bin:$PATH
   '';
 
-  # disable tests which touch network
-  disabledTests = ''
+  disabledTests = [
+    # disable tests which touch network
     "test_discover"
     "test_filtered_compressed_cache"
     "test_get_dir"
     "test_remote_cat"
     "http"
-  '';
+
+    # broken test
+    "test_read_pattern"
+  ];
 
   meta = with lib; {
     description = "Data load and catalog system";
diff --git a/nixpkgs/pkgs/development/python-modules/intelhex/default.nix b/nixpkgs/pkgs/development/python-modules/intelhex/default.nix
index 0634e9190242..e5b0cc6fbc74 100644
--- a/nixpkgs/pkgs/development/python-modules/intelhex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/intelhex/default.nix
@@ -1,25 +1,23 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "intelhex";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ckqjbxd8gwcg98gfzpn4vq1qxzfvq3rdbrr1hikj1nmw08qb780";
+    sha256 = "sha256-iStzYacZ9JRSN9qMz3VOlRPbMvViiFJ4WuoQjc0lAJM=";
   };
 
-  patches = [
-    # patch the tests to check for the correct version string (2.2.1)
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/bialix/intelhex/pull/26.patch";
-      sha256 = "1f3f2cyf9ipb9zdifmjs8rqhg028dhy91vabxxn3l7br657s8r2l";
-    })
-  ];
+  checkInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "intelhex/test.py" ];
+
+  pythonImportsCheck = [ "intelhex" ];
 
   meta = {
     homepage = "https://github.com/bialix/intelhex";
diff --git a/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix b/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
index ca91ad954a44..0d1fb08e2a4e 100644
--- a/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
@@ -19,11 +19,11 @@
 
 buildPythonPackage rec {
   pname = "internetarchive";
-  version = "1.9.9";
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a1614cbf35499d833e07699ddfd344764f86959fd5535aa9ce1203f57a77f970";
+    sha256 = "515e6646a2b917c15f2241670d21f14a014b9c67dc509aef4d4aca5a59cdda65";
   };
 
   propagatedBuildInputs = [
@@ -52,7 +52,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A Python and Command-Line Interface to Archive.org";
     homepage = "https://github.com/jjjake/internetarchive";
-    license = licenses.agpl3;
+    changelog = "https://github.com/jjjake/internetarchive/raw/v${version}/HISTORY.rst";
+    license = licenses.agpl3Plus;
     maintainers = [ maintainers.marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix b/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
index c8539598fe6f..98944d2543c4 100644
--- a/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , flaky
 , ipython
 , jupyter_client
@@ -15,23 +14,15 @@
 
 buildPythonPackage rec {
   pname = "ipykernel";
-  version = "5.2.1";
+  version = "5.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a3hr7wx3ywwskr99hgp120dw9ab1vmcaxdixlsbd9bg6ly3fdr9";
+    sha256 = "98321abefdf0505fb3dc7601f60fc4087364d394bd8fad53107eb1adee9ff475";
   };
 
   propagatedBuildInputs = [ ipython jupyter_client traitlets tornado ];
 
-  # https://github.com/ipython/ipykernel/pull/377
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/ipython/ipykernel/commit/a3bf849dbd368a1826deb9dfc94c2bd3e5ed04fe.patch";
-      sha256 = "1yhpwqixlf98a3n620z92mfips3riw6psijqnc5jgs2p58fgs2yc";
-    })
-  ];
-
   checkInputs = [ pytestCheckHook nose flaky ];
   dontUseSetuptoolsCheck = true;
   preCheck = ''
diff --git a/nixpkgs/pkgs/development/python-modules/ipython/default.nix b/nixpkgs/pkgs/development/python-modules/ipython/default.nix
index dd9004aa0cb3..d9447e91385f 100644
--- a/nixpkgs/pkgs/development/python-modules/ipython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipython/default.nix
@@ -22,12 +22,12 @@
 
 buildPythonPackage rec {
   pname = "ipython";
-  version = "7.19.0";
+  version = "7.21.0";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cbb2ef3d5961d44e6a963b9817d4ea4e1fa2eb589c371a470fed14d8d40cbd6a";
+    sha256 = "04323f72d5b85b606330b6d7e2dc8d2683ad46c3905e955aa96ecc7a99388e70";
   };
 
   prePatch = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/development/python-modules/ircrobots/default.nix b/nixpkgs/pkgs/development/python-modules/ircrobots/default.nix
index 41973e805846..947da75ce9a9 100644
--- a/nixpkgs/pkgs/development/python-modules/ircrobots/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ircrobots/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "ircrobots";
-  version = "0.3.6";
+  version = "0.3.7";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "jesopo";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c8h8b78gmnfipppr9dxp7sl6wd9lx4l3pdwykaib1f49dqwavys";
+    sha256 = "0cm4hcmprca24d979ydbzwn9mfxw16jki6ld7yykxryf0983nqc7";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/iso8601/default.nix b/nixpkgs/pkgs/development/python-modules/iso8601/default.nix
index b83374fff3e1..783f6f1eb305 100644
--- a/nixpkgs/pkgs/development/python-modules/iso8601/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iso8601/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "iso8601";
-  version = "0.1.13";
+  version = "0.1.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f7dec22af52025d4526be94cc1303c7d8f5379b746a3f54a8c8446384392eeb1";
+    sha256 = "8aafd56fa0290496c5edbb13c311f78fa3a241f0853540da09d9363eae3ebd79";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/jabberbot/default.nix b/nixpkgs/pkgs/development/python-modules/jabberbot/default.nix
deleted file mode 100644
index d00ccd06c8d6..000000000000
--- a/nixpkgs/pkgs/development/python-modules/jabberbot/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi, xmpppy }:
-
-buildPythonPackage rec {
-  pname = "jabberbot";
-  version = "0.16";
-
-  disabled = isPy3k;
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1qr7c5p9a0nzsvri1djnd5r3d7ilh2mdxvviqn1s2hcc70rha65d";
-  };
-
-  propagatedBuildInputs = [ xmpppy ];
-
-  doCheck = false; # lol, it does not even specify dependencies properly
-
-  meta = with lib; {
-    description = "A framework for writing Jabber/XMPP bots and services";
-    homepage = "http://thp.io/2007/python-jabberbot/";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ mic92 ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix
index a3d19df76537..9054f1f109c5 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix
@@ -1,19 +1,34 @@
-{ buildPythonPackage, fetchPypi, isPy27, setuptools_scm, six, more-itertools }:
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27
+, setuptools_scm, toml
+, more-itertools
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "jaraco.classes";
-  version = "3.1.0";
+  version = "3.1.1";
   disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1avsxzm5mwylmy2zbxq3xvn48z5djb0qy3hwv4ryncprivzri1n3";
+  src = fetchFromGitHub {
+    owner = "jaraco";
+    repo = "jaraco.classes";
+    rev = "v${version}";
+    sha256 = "0wzrcsxi9gb65inayg0drm08iaw37jm1lqxhz3860i6pwjh503pr";
   };
 
   pythonNamespaces = [ "jaraco" ];
 
-  nativeBuildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ six more-itertools ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
-  doCheck = false;
+  nativeBuildInputs = [ setuptools_scm toml ];
+
+  propagatedBuildInputs = [ more-itertools ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Utility functions for Python class constructs";
+    homepage = "https://github.com/jaraco/jaraco.classes";
+    license = licenses.mit;
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/jc/default.nix b/nixpkgs/pkgs/development/python-modules/jc/default.nix
index e1318b51aefe..61c9e85ced2e 100644
--- a/nixpkgs/pkgs/development/python-modules/jc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jc/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.14.3";
+  version = "1.14.4";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = "jc";
     rev = "v${version}";
-    sha256 = "sha256-6ofw74onFECJYYSuZlOVcNVAVuJaJKV4pkaJ4cTrvPk=";
+    sha256 = "sha256-RJiJByORpdMWZkA7q7A+WoV4S/UcOP/VZ5TVxFMLYSg=";
   };
 
   propagatedBuildInputs = [ ruamel_yaml xmltodict pygments ];
diff --git a/nixpkgs/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix b/nixpkgs/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
index 33c14dbaeb2d..b06db621b730 100644
--- a/nixpkgs/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
@@ -1,24 +1,23 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests
+{ lib, buildPythonPackage, fetchPypi, requests
 , websocket_client, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "jellyfin-apiclient-python";
-  version = "1.6.1";
+  version = "1.7.2";
   disabled = pythonOlder "3.6";
 
-  src = fetchFromGitHub {
-    owner = "iwalton3";
-    repo = "jellyfin-apiclient-python";
-    rev = "v${version}";
-    sha256 = "0f7czq83ic22fz1vnf0cavb7l3grcxxd5yyw9wcjz3g1j2d76735";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-nSLUa9/jAT6XrHo77kV5HYBxPO/lhcWKqPfpES7ul9A=";
   };
 
   propagatedBuildInputs = [ requests websocket_client ];
 
+  doCheck = false; # no tests
   pythonImportsCheck = [ "jellyfin_apiclient_python" ];
 
   meta = with lib; {
-    homepage = "https://github.com/iwalton3/jellyfin-apiclient-python";
+    homepage = "https://github.com/jellyfin/jellyfin-apiclient-python";
     description = "Python API client for Jellyfin";
     license = licenses.gpl3;
     maintainers = with maintainers; [ jojosch ];
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 7d4f6dd93639..3ae6bf84ae4f 100644
--- a/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "jenkins-job-builder";
-  version = "3.8.0";
+  version = "3.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-uRyeRP1y3GS7tXb0kHLBi7+trJRme/Ke3xgOY+LqZ6k=";
+    sha256 = "4a53e146843d567c375c2e61e70a840d75a412402fd78c1dd3da5642a6aaa375";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/jinja2/default.nix b/nixpkgs/pkgs/development/python-modules/jinja2/default.nix
index 5dc3cbe105e5..dce93d33ab50 100644
--- a/nixpkgs/pkgs/development/python-modules/jinja2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jinja2/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "Jinja2";
-  version = "2.11.2";
+  version = "2.11.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0";
+    sha256 = "a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/joblib/default.nix b/nixpkgs/pkgs/development/python-modules/joblib/default.nix
index 16edf3c04e14..9c54418bafef 100644
--- a/nixpkgs/pkgs/development/python-modules/joblib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/joblib/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "joblib";
-  version = "0.17.0";
-  disabled = pythonOlder "3.6";
+  version = "1.0.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e284edd6be6b71883a63c9b7f124738a3c16195513ad940eae7e3438de885d5";
+    sha256 = "092bnvr724cfvka8267z687bf086fvm7i1hwslkyrzf1g836dn3s";
   };
 
   checkInputs = [ sphinx numpydoc pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix b/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix
index 77789fa44dbe..460b0cddf616 100644
--- a/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix
@@ -1,14 +1,12 @@
 { lib
 , stdenv
-, rustPlatform
 , fetchFromGitHub
-, pipInstallHook
+, buildPythonPackage
+, rustPlatform
 , llvmPackages
 , pkg-config
-, maturin
 , pcsclite
 , nettle
-, python
 , requests
 , vcrpy
 , numpy
@@ -17,7 +15,7 @@
 , PCSC
 }:
 
-rustPlatform.buildRustPackage rec {
+buildPythonPackage rec {
   pname = "johnnycanencrypt";
   version = "0.5.0";
   disabled = pythonOlder "3.7";
@@ -28,7 +26,16 @@ rustPlatform.buildRustPackage rec {
     rev = "v${version}";
     sha256 = "192wfrlyylrpzq70yki421mi1smk8q2cyki2a1d03q7h6apib3j4";
   };
-  cargoPatches = [ ./Cargo.lock.patch ];
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit patches src;
+    name = "${pname}-${version}";
+    hash = "sha256-2XhXCKyXVlFgbcOoMy/A5ajiIVxBii56YeI29mO720U=";
+  };
+
+  format = "pyproject";
+
+  patches = [ ./Cargo.lock.patch ];
 
   cargoSha256 = "0ifvpdizcdp2c5x2x2j1bhhy5a75q0pk7a63dmh52mlpmh45fy6r";
 
@@ -42,10 +49,10 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [
     llvmPackages.clang
     pkg-config
-    python
-    maturin
-    pipInstallHook
-  ];
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
+  ]);
 
   buildInputs = [
     pcsclite
@@ -67,17 +74,6 @@ rustPlatform.buildRustPackage rec {
     sed '/project-url = /d' -i Cargo.toml
   '';
 
-  buildPhase = ''
-    runHook preBuild
-    maturin build --release --manylinux off --strip --cargo-extra-args="-j $NIX_BUILD_CORES --frozen"
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    install -Dm644 -t dist target/wheels/*.whl
-    pipInstallPhase
-  '';
-
   preCheck = ''
     export TESTDIR=$(mktemp -d)
     cp -r tests/ $TESTDIR
diff --git a/nixpkgs/pkgs/development/python-modules/josepy/default.nix b/nixpkgs/pkgs/development/python-modules/josepy/default.nix
index b6e6f47b64b1..3f30da8da9b4 100644
--- a/nixpkgs/pkgs/development/python-modules/josepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/josepy/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "josepy";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0aab1c3ceffe045e7fd5bcfe7685e27e9d2758518d9ba7116b5de34087e70bf5";
+    sha256 = "d265414fa16d7a8b7a1d1833b4ebb19a22bd0deae5d44413cf9040fd8491d85a";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/jq/default.nix b/nixpkgs/pkgs/development/python-modules/jq/default.nix
index 3d4097b07186..efc1152678f3 100644
--- a/nixpkgs/pkgs/development/python-modules/jq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jq/default.nix
@@ -2,16 +2,21 @@
 
 buildPythonPackage rec {
   pname = "jq";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "62d649c4f6f26ed91810c8db075f5fe05319c3dc99dbebcd2d31b0b697a4592e";
+    sha256 = "77e747c6ad10ce65479f5f9064ab036483bf307bf71fdd7d6235ef895fcc506e";
   };
+
   patches = [ ./jq-py-setup.patch ];
 
   buildInputs = [ jq ];
 
+  # no tests executed
+  doCheck = false;
+  pythonImportsCheck = [ "jq" ];
+
   meta = {
     description = "Python bindings for jq, the flexible JSON processor";
     homepage = "https://github.com/mwilliamson/jq.py";
diff --git a/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix b/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix
index a5468fa273b5..09eb45f964cd 100644
--- a/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonApplication rec {
   pname = "jsbeautifier";
-  version = "1.13.0";
+  version = "1.13.5";
 
   propagatedBuildInputs = [ six editorconfig ];
   checkInputs = [ pytest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f5565fbcd95f79945e124324815e586ae0d2e43df5af82a4400390e6ea789e8b";
+    sha256 = "4532a6bc85ba91ffc542b55d65cd13cedc971a934f26f51ed56d4c680b3fbe66";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/json-rpc/default.nix b/nixpkgs/pkgs/development/python-modules/json-rpc/default.nix
new file mode 100644
index 000000000000..e475c3117df3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/json-rpc/default.nix
@@ -0,0 +1,24 @@
+{ lib, isPy27, buildPythonPackage, fetchPypi, pytestCheckHook, mock }:
+
+let
+  pythonEnv = lib.optional isPy27 mock;
+in buildPythonPackage rec {
+  pname = "json-rpc";
+  version = "1.13.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "12bmblnznk174hqg2irggx4hd3cq1nczbwkpsqqzr13hbg7xpw6y";
+  };
+
+  checkInputs = pythonEnv ++ [ pytestCheckHook ];
+
+  nativeBuildInputs = pythonEnv;
+
+  meta = with lib; {
+    description = "JSON-RPC 1/2 transport implementation";
+    homepage = "https://github.com/pavlov99/json-rpc";
+    license = licenses.mit;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/json5/default.nix b/nixpkgs/pkgs/development/python-modules/json5/default.nix
new file mode 100644
index 000000000000..cecce31e0ecc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/json5/default.nix
@@ -0,0 +1,30 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, hypothesis
+, lib
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "json5";
+  version = "0.9.5";
+
+  src = fetchFromGitHub {
+    owner = "dpranke";
+    repo = "pyjson5";
+    rev = "v${version}";
+    sha256 = "sha256-VkJnZG1BuC49/jJuwObbqAF48CtbWU9rDEYW4Dg0w4U=";
+  };
+
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/dpranke/pyjson5";
+    description = "A Python implementation of the JSON5 data format";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpath-ng/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpath-ng/default.nix
new file mode 100644
index 000000000000..a623c859e168
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jsonpath-ng/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, decorator
+, fetchFromGitHub
+, ply
+, pytestCheckHook
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "jsonpath-ng";
+  version = "1.5.2";
+
+  src = fetchFromGitHub {
+    owner = "h2non";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1cxjwhx0nj85a3awnl7j6afnk07awzv45qfwxl5jqbbc9cxh5bd6";
+  };
+
+  propagatedBuildInputs = [
+    decorator
+    ply
+    six
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTestFiles = [
+    # Exclude tests that require oslotest
+    "tests/test_jsonpath_rw_ext.py"
+  ];
+
+  pythonImportsCheck = [ "jsonpath_ng" ];
+
+  meta = with lib; {
+    description = "JSONPath implementation for Python";
+    homepage = "https://github.com/h2non/jsonpath-ng";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
index 66e7d62aa839..abf3c27e98ff 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "jsonpickle";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e8d4b7cd0bd6826001a74377df1079a76ad8bae0f909282de2554164c837c8ba";
+    sha256 = "c9b99b28a9e6a3043ec993552db79f4389da11afcb1d0246d93c79f4b5e64062";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-packaging/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-packaging/default.nix
new file mode 100644
index 000000000000..fdc28f08ef4b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-packaging/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, packaging
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "jupyter-packaging";
+  version = "0.7.12";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-sUAyV3GIGn33t/LRSZe2GQY/51rnVrkCWFLkNGAAu7g=";
+  };
+
+  propagatedBuildInputs = [ packaging ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # disable tests depending on network connection
+  disabledTests = [ "test_develop" "test_install" ];
+
+  pythonImportsCheck = [ "jupyter_packaging" ];
+
+  meta = with lib; {
+    description = "Jupyter Packaging Utilities";
+    homepage = "https://github.com/jupyter/jupyter-packaging";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.elohmeier ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix
index 47d3bb6af0c0..456e82e75f18 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "jupyter_client";
-  version = "6.1.7";
+  version = "6.1.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "49e390b36fe4b4226724704ea28d9fb903f1a3601b6882ce3105221cd09377a1";
+    sha256 = "649ca3aca1e28f27d73ef15868a7c7f10d6e70f761514582accec3ca6bb13085";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter_console/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter_console/default.nix
index 372698744cf7..712117d50113 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter_console/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter_console/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "jupyter_console";
-  version = "6.2.0";
+  version = "6.3.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7f6194f4f4692d292da3f501c7f343ccd5e36c6a1becf7b7515e23e66d6bf1e9";
+    sha256 = "947f66bbdeee2221b4fb3a6b78225d337b8f10832f14cecf7932183635abe1d9";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter_core/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter_core/default.nix
index 54ea49c34004..cff5dc194aa4 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter_core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter_core/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "jupyter_core";
-  version = "4.7.0";
+  version = "4.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aa1f9496ab3abe72da4efe0daab0cb2233997914581f9a071e07498c6add8ed3";
+    sha256 = "79025cb3225efcd36847d0840f3fc672c0abd7afd0de83ba8a1d3837619122b4";
   };
 
   checkInputs = [ pytest mock glibcLocales nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix
new file mode 100644
index 000000000000..a9f98781b4fb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, pytestCheckHook
+, pytest-tornasync
+, jinja2
+, tornado
+, pyzmq
+, ipython_genutils
+, traitlets
+, jupyter_core
+, jupyter_client
+, nbformat
+, nbconvert
+, send2trash
+, terminado
+, prometheus_client
+, anyio
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "jupyter_server";
+  version = "1.4.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-sBJvI39nlTPuxGJEz8ZtYeOh+OwPrS1HNS+hnT51Tkc=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "anyio>=2.0.2" "anyio"
+  '';
+
+  propagatedBuildInputs = [
+    jinja2
+    tornado
+    pyzmq
+    ipython_genutils
+    traitlets
+    jupyter_core
+    jupyter_client
+    nbformat
+    nbconvert
+    send2trash
+    terminado
+    prometheus_client
+    anyio
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-tornasync
+    requests
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  pytestFlagsArray = [ "jupyter_server/tests/" ];
+
+  # disabled failing tests
+  disabledTests = [ "test_server_extension_list" "test_list_formats" "test_base_url" ];
+
+  meta = with lib; {
+    description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications.";
+    homepage = "https://github.com/jupyter-server/jupyter_server";
+    license = licenses.bsdOriginal;
+    maintainers = [ maintainers.elohmeier ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterhub/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterhub/default.nix
index 704d9174ebd7..108d11853f05 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterhub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterhub/default.nix
@@ -1,33 +1,40 @@
 { lib
+, stdenv
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
 , fetchzip
 , alembic
-, ipython
-, jinja2
-, python-oauth2
-, prometheus_client
 , async_generator
+, certipy
+, dateutil
+, entrypoints
+, jinja2
+, jupyter-telemetry
+, oauthlib
 , pamela
+, prometheus_client
+, requests
 , sqlalchemy
 , tornado
 , traitlets
-, requests
-, notebook
-, pythonOlder
 , nodePackages
-, oauthlib
-, certipy
-, jupyter-telemetry
+, beautifulsoup4
+, cryptography
+, notebook
+, pytest-asyncio
+, pytestCheckHook
+, requests-mock
+, virtualenv
 }:
 
 let
   # js/css assets that setup.py tries to fetch via `npm install` when building
-  # from source.
+  # from source. https://github.com/jupyterhub/jupyterhub/blob/master/package.json
   bootstrap =
     fetchzip {
-      url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz";
-      sha256 = "0r7s54bbf68ri1na9bbabyf12mcpb6zk5ja2q6z82aw1fa4xi3yd";
+      url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz";
+      sha256 = "1ywmxqdccg0mgx0xknrn1hlrfnhcwphc12y9l91zizx26fqfmzgc";
     };
   font-awesome =
     fetchzip {
@@ -36,30 +43,30 @@ let
     };
   jquery =
     fetchzip {
-      url = "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz";
-      sha256 = "1j6y18miwzafdj8kfpwbmbn9qvgnbnpc7l4arqrhqj33m04xrlgi";
+      url = "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz";
+      sha256 = "0yi9ql493din1qa1s923nd5zvd0klk1sx00xj1wx2yambmq86vm9";
     };
   moment =
     fetchzip {
-      url = "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz";
-      sha256 = "12gb3p0rz5wyjwykv9g0pix7dd352lx1z7rzdjsf2brhwc4ffyip";
+      url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
+      sha256 = "0ifzzla4zffw23g3xvhwx3fj3jny6cjzxfzl1x0317q8wa0c7w5i";
     };
   requirejs =
     fetchzip {
-      url = "https://registry.npmjs.org/requirejs/-/requirejs-2.3.4.tgz";
-      sha256 = "0q6mkj0iv341kks06dya6lfs2kdw0n6vc7n4a7aa3ia530fk9vja";
+      url = "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz";
+      sha256 = "165hkli3qcd59cjqvli9r5f92i0h7czkmhcg1cgwamw2d0b7xibz";
     };
 
 in
 
 buildPythonPackage rec {
   pname = "jupyterhub";
-  version = "1.1.0";
-  disabled = pythonOlder "3.5";
+  version = "1.3.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mqknz0rxqzx4nc57vscvfh2d4znzlzpy83ancqxdaq3b8i70al5";
+    sha256 = "13pf6qhimpaxj20871ff5rvwwan59320cdhhrn9cfh6314971zq5";
   };
 
   # Most of this only applies when building from source (e.g. js/css assets are
@@ -86,12 +93,7 @@ buildPythonPackage rec {
       "'${nodePackages.configurable-http-proxy}/bin/configurable-http-proxy'"
 
     substituteInPlace setup.py --replace \
-      "'npm', 'run', 'lessc', '--'" \
-      "'${nodePackages.less}/bin/lessc'"
-
-    substituteInPlace setup.py --replace \
-      "'npm', 'install', '--progress=false'" \
-      "'true'"
+      "'npm'" "'true'"
 
     declare -A deps
     deps[bootstrap]=${bootstrap}
@@ -109,19 +111,52 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
-    alembic ipython jinja2 pamela python-oauth2 requests sqlalchemy tornado
-    traitlets prometheus_client async_generator notebook certipy oauthlib
+    # https://github.com/jupyterhub/jupyterhub/blob/master/requirements.txt
+    alembic
+    async_generator
+    certipy
+    dateutil
+    entrypoints
+    jinja2
     jupyter-telemetry
+    oauthlib
+    pamela
+    prometheus_client
+    requests
+    sqlalchemy
+    tornado
+    traitlets
   ];
 
-  # Disable tests because they take an excessive amount of time to complete.
-  doCheck = false;
+  preCheck = ''
+    substituteInPlace jupyterhub/tests/test_spawner.py --replace \
+      "'jupyterhub-singleuser'" "'$out/bin/jupyterhub-singleuser'"
+  '';
 
+  checkInputs = [
+    # https://github.com/jupyterhub/jupyterhub/blob/master/dev-requirements.txt
+    beautifulsoup4
+    cryptography
+    notebook
+    pytest-asyncio
+    pytestCheckHook
+    requests-mock
+    virtualenv
+  ];
+
+  disabledTests = [
+    # Tries to install older versions through pip
+    "test_upgrade"
+    # Testcase fails to find requests import
+    "test_external_service"
+  ];
 
   meta = with lib; {
     description = "Serves multiple Jupyter notebook instances";
     homepage = "https://jupyter.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ixxie cstrahan ];
+    # E   OSError: dlopen(/nix/store/43zml0mlr17r5jsagxr00xxx91hz9lky-openpam-20170430/lib/libpam.so, 6): image not found
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
index ff725ce18297..f22b52b25b6a 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
@@ -4,19 +4,21 @@
 , jupyterlab_server
 , notebook
 , pythonOlder
+, jupyter-packaging
+, nbclassic
 }:
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "2.2.9";
+  version = "3.0.12";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3be8f8edea173753dd838c1b6d3bbcb6f5c801121f824a477025c1b6a1d33dc6";
+    sha256 = "929c60d7fb4aa704084c02d8ededc209b8b378e0b3adab46158b7fa6acc24230";
   };
 
-  propagatedBuildInputs = [ jupyterlab_server notebook ];
+  propagatedBuildInputs = [ jupyterlab_server notebook jupyter-packaging nbclassic ];
 
   makeWrapperArgs = [
     "--set" "JUPYTERLAB_DIR" "$out/share/jupyter/lab"
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
index 3d9b5b9f831b..c110cc0590fe 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
@@ -1,34 +1,45 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, notebook
 , jsonschema
 , pythonOlder
 , requests
-, pytest
+, pytestCheckHook
 , pyjson5
+, Babel
+, jupyter_server
+, pytest-tornasync
+, pytestcov
+, strict-rfc3339
 }:
 
 buildPythonPackage rec {
   pname = "jupyterlab_server";
-  version = "1.2.0";
+  version = "2.3.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c";
+    sha256 = "sha256-56AkWqPeI6GAPeLv9AHkykWUU42fWYBhNPMEGabYtqM=";
   };
 
-  checkInputs = [ requests pytest ];
-  propagatedBuildInputs = [ notebook jsonschema pyjson5 ];
+  propagatedBuildInputs = [ requests jsonschema pyjson5 Babel jupyter_server ];
 
-  # test_listing test fails
-  # this is a new package and not all tests pass
-  doCheck = false;
+  checkInputs = [
+    pytestCheckHook
+    pytest-tornasync
+    pytestcov
+    strict-rfc3339
+  ];
 
-  checkPhase = ''
-    pytest
-  '';
+  disabledTests = [
+    "test_get_locale"
+    "test_get_installed_language_pack_locales_passes"
+    "test_get_installed_package_locales"
+    "test_get_installed_packages_locale"
+    "test_get_language_packs"
+    "test_get_language_pack"
+  ];
 
   meta = with lib; {
     description = "JupyterLab Server";
diff --git a/nixpkgs/pkgs/development/python-modules/kaggle/default.nix b/nixpkgs/pkgs/development/python-modules/kaggle/default.nix
index 8ff129637375..6b67818decfc 100644
--- a/nixpkgs/pkgs/development/python-modules/kaggle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kaggle/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "kaggle";
-  version = "1.5.10";
+  version = "1.5.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05a2a3d4adeebc8a465d037999ba8db2cb471a24b41d623d4bcb80aac02ddbc9";
+    sha256 = "b4d87d107bff743aaa805c2b382c3661c4c175cdb159656d4972be2a9cef42cb";
   };
 
   # The version bounds in the setup.py file are unnecessarily restrictive.
diff --git a/nixpkgs/pkgs/development/python-modules/keep/default.nix b/nixpkgs/pkgs/development/python-modules/keep/default.nix
index 5a70dcb4676d..8b9823b6f031 100644
--- a/nixpkgs/pkgs/development/python-modules/keep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keep/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "keep";
-  version = "2.10";
+  version = "2.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce71d14110df197ab5afdbd26a14c0bd266b79671118ae1351835fa192e61d9b";
+    sha256 = "3abbe445347711cecd9cbb80dab4a0777418972fc14a14e9387d0d2ae4b6adb7";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/kerberos/default.nix b/nixpkgs/pkgs/development/python-modules/kerberos/default.nix
index 7a9ce3aab448..c4772d606518 100644
--- a/nixpkgs/pkgs/development/python-modules/kerberos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kerberos/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, kerberos
+, libkrb5
 }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "cdd046142a4e0060f96a00eb13d82a5d9ebc0f2d7934393ed559bac773460a2c";
   };
 
-  nativeBuildInputs = [ kerberos ];
+  nativeBuildInputs = [ libkrb5 ];
 
   # No tests in archive
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/kivy-garden/default.nix b/nixpkgs/pkgs/development/python-modules/kivy-garden/default.nix
new file mode 100644
index 000000000000..edfad0c9b91d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/kivy-garden/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "kivy-garden";
+  version = "0.1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wkcpr2zc1q5jb0bi7v2dgc0vs5h1y7j42mviyh764j2i0kz8mn2";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  pythonImportsCheck = [ "garden" ];
+
+  # There are no tests in the Pypi archive and building from source is not
+  # easily feasible because the build is done using buildozer and multiple
+  # repositories.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "The kivy garden installation script, split into its own package for convenient use in buildozer.";
+    homepage = "https://pypi.python.org/pypi/kivy-garden";
+    license = licenses.mit;
+    maintainers = with maintainers; [ risson ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/kivy/default.nix b/nixpkgs/pkgs/development/python-modules/kivy/default.nix
new file mode 100644
index 000000000000..d4fa39c0c363
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/kivy/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildPythonPackage, fetchPypi
+, pkg-config, cython, docutils
+, kivy-garden
+, mesa, mtdev, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer, gst_all_1
+, pillow, requests, pygments
+}:
+
+buildPythonPackage rec {
+  pname = "Kivy";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n0j9046vgjncy50v06r3wcg3q2l37jp8n0cznr64dz48kml8pnj";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    cython
+    docutils
+  ];
+
+  buildInputs = [
+    mesa
+    mtdev
+    SDL2
+    SDL2_image
+    SDL2_ttf
+    SDL2_mixer
+
+    # NOTE: The degree to which gstreamer actually works is unclear
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+  ];
+
+  propagatedBuildInputs = [
+    kivy-garden
+    pillow
+    pygments
+    requests
+  ];
+
+  KIVY_NO_CONFIG = 1;
+  KIVY_NO_ARGS = 1;
+  KIVY_NO_FILELOG = 1;
+
+  postPatch = ''
+    substituteInPlace kivy/lib/mtdev.py \
+      --replace "LoadLibrary('libmtdev.so.1')" "LoadLibrary('${mtdev}/lib/libmtdev.so.1')"
+  '';
+
+  /*
+    We cannot run tests as Kivy tries to import itself before being fully
+    installed.
+  */
+  doCheck = false;
+  pythonImportsCheck = [ "kivy" ];
+
+  meta = with lib; {
+    description = "Library for rapid development of hardware-accelerated multitouch applications.";
+    homepage = "https://pypi.python.org/pypi/kivy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ risson ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/knack/default.nix b/nixpkgs/pkgs/development/python-modules/knack/default.nix
index c08bdab4cf34..0b4c24afa4dc 100644
--- a/nixpkgs/pkgs/development/python-modules/knack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/knack/default.nix
@@ -4,7 +4,6 @@
 , argcomplete
 , colorama
 , jmespath
-, knack
 , pygments
 , pyyaml
 , six
@@ -16,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "knack";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dfc6aef6760ea9a9620577e01540617678d78cab3111a0f03e8b9f987d0f08ca";
+    sha256 = "16aa47240add6badd933a0b27576f3c090d7469177dc941e3ece05ca88123199";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/kombu/default.nix b/nixpkgs/pkgs/development/python-modules/kombu/default.nix
index 1aa22a62e19f..a5ca1a7ab2a4 100644
--- a/nixpkgs/pkgs/development/python-modules/kombu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kombu/default.nix
@@ -22,8 +22,6 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace requirements/test.txt \
       --replace "pytest-sugar" ""
-    substituteInPlace requirements/default.txt \
-      --replace "amqp==2.5.1" "amqp~=2.5"
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/labelbox/default.nix b/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
index 1efe01092124..1c29d7473681 100644
--- a/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "2.4.9";
+  version = "2.4.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "488fb0b2233738c3bba3d3bf67b941f105553b7286cca3099ac0120dd247bd84";
+    sha256 = "e5a631a94ac2059648a884bebf39f7ca1e689baef4a2497f9aa5ec598e24deb7";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/labgrid/0001-serialdriver-remove-pyserial-version-check.patch b/nixpkgs/pkgs/development/python-modules/labgrid/0001-serialdriver-remove-pyserial-version-check.patch
new file mode 100644
index 000000000000..d3e3082b352d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/labgrid/0001-serialdriver-remove-pyserial-version-check.patch
@@ -0,0 +1,33 @@
+From 75baa1751973378cb96fb204b0a18a74e5caa2d1 Mon Sep 17 00:00:00 2001
+From: Rouven Czerwinski <r.czerwinski@pengutronix.de>
+Date: Wed, 17 Feb 2021 14:03:20 +0100
+Subject: [PATCH] serialdriver: remove pyserial version check
+
+This check isn't required on NixOS, since pyserial within NixOS already
+contains the patches.
+
+Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
+---
+ labgrid/driver/serialdriver.py | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/labgrid/driver/serialdriver.py b/labgrid/driver/serialdriver.py
+index 126f674e..59a92269 100644
+--- a/labgrid/driver/serialdriver.py
++++ b/labgrid/driver/serialdriver.py
+@@ -27,12 +27,6 @@ class SerialDriver(ConsoleExpectMixin, Driver, ConsoleProtocol):
+         bindings = {"port": "SerialPort", }
+     else:
+         bindings = {"port": {"SerialPort", "NetworkSerialPort"}, }
+-    if version.parse(serial.__version__) != version.Version('3.4.0.1'):
+-        message = ("The installed pyserial version does not contain important RFC2217 fixes.\n"
+-                   "You can install the labgrid fork via:\n"
+-                   "pip uninstall pyserial\n"
+-                   "pip install https://github.com/labgrid-project/pyserial/archive/v3.4.0.1.zip#egg=pyserial\n")  # pylint: disable=line-too-long
+-        warnings.warn(message)
+ 
+     txdelay = attr.ib(default=0.0, validator=attr.validators.instance_of(float))
+     timeout = attr.ib(default=3.0, validator=attr.validators.instance_of(float))
+-- 
+2.30.0
+
diff --git a/nixpkgs/pkgs/development/python-modules/labgrid/default.nix b/nixpkgs/pkgs/development/python-modules/labgrid/default.nix
new file mode 100644
index 000000000000..e9f0eda56cc7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/labgrid/default.nix
@@ -0,0 +1,80 @@
+{ ansicolors
+, attrs
+, autobahn
+, buildPythonPackage
+, fetchFromGitHub
+, jinja2
+, lib
+, mock
+, pexpect
+, psutil
+, pyserial
+, pytestCheckHook
+, pytest-dependency
+, pytest-mock
+, pyudev
+, pyusb
+, pyyaml
+, requests
+, setuptools-scm
+, xmodem
+}:
+
+buildPythonPackage rec {
+  pname = "labgrid";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    owner = "labgrid-project";
+    repo = "labgrid";
+    rev = "v${version}";
+    sha256 = "sha256-wMYsgZXNP8kTt/x8c4e96BXrbjIZZ6RsH04BfD0zGwo=";
+  };
+
+  patches = [
+    # Pyserial within Nixpkgs already includes the necessary fix, remove the
+    # pyserial version check from labgrid.
+    ./0001-serialdriver-remove-pyserial-version-check.patch
+  ];
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    ansicolors
+    attrs
+    autobahn
+    jinja2
+    pexpect
+    pyserial
+    pyudev
+    pyusb
+    pyyaml
+    requests
+    xmodem
+  ];
+
+  preBuild = ''
+    export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
+  '';
+
+  checkInputs = [
+    mock
+    psutil
+    pytestCheckHook
+    pytest-mock
+    pytest-dependency
+  ];
+
+  disabledTests = [
+    "docker"
+    "sshmanager"
+  ];
+
+  meta = with lib; {
+    description = "Embedded control & testing library";
+    homepage = "https://labgrid.org";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ emantor ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/labmath/default.nix b/nixpkgs/pkgs/development/python-modules/labmath/default.nix
new file mode 100644
index 000000000000..24018fd7420e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/labmath/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "labmath";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-/fZ61tJ6PVZsubr3OXlbg/VxyyKimz36uPV+r33kgD0=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "labmath/DESCRIPTION.rst" "PKG-INFO"
+  '';
+
+  pythonImportsCheck = [ "labmath" ];
+
+  meta = with lib; {
+    homepage = "https://pypi.org/project/labmath";
+    description = "Module for basic math in the general vicinity of computational number theory";
+    license = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/lammps-cython/default.nix b/nixpkgs/pkgs/development/python-modules/lammps-cython/default.nix
index 4c16010f4af8..cf6bdc38ffaa 100644
--- a/nixpkgs/pkgs/development/python-modules/lammps-cython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lammps-cython/default.nix
@@ -9,10 +9,7 @@
 , pymatgen
 , ase
 , pytestrunner
-, pytest_4
-, pytestcov
 , isPy3k
-, openssh
 }:
 
 buildPythonPackage rec {
@@ -26,7 +23,6 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ cython pytestrunner ];
-  checkInputs = [ pytest_4 pytestcov openssh ];
   propagatedBuildInputs = [ mpi4py pymatgen ase numpy ];
 
   preBuild = ''
@@ -44,10 +40,14 @@ buildPythonPackage rec {
     EOF
   '';
 
+  pythonImportsCheck = [ "lammps" ];
+
   meta = {
     description = "Pythonic Wrapper to LAMMPS using cython";
     homepage = "https://gitlab.com/costrouc/lammps-cython";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ costrouc ];
+    # fails import check
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix b/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
index a95a8907422a..d8996a153e64 100644
--- a/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
@@ -1,28 +1,36 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, regex
+  # Test inputs
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "lark-parser";
-  version = "0.8.8";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "lark-parser";
     repo = "lark";
     rev = version;
-    sha256 = "1q2dvkkfx9dvag5v5ps0ki4avh7i003gn9sj30jy1rsv1bg4y2mb";
+    sha256 = "1v1piaxpz4780km2z5i6sr9ygi9wpn09yyh999b3f4y0dcz20pbd";
   };
 
-  # tests of Nearley support require js2py
-  preCheck = ''
-    rm -r tests/test_nearley
-  '';
+  propagatedBuildInputs = [ regex ];
 
-  meta = {
+  checkInputs = [ pytestCheckHook ];
+  disabledTestPaths = [
+    "tests/test_nearley" # requires Js2Py package (not in nixpkgs)
+  ];
+  disabledTests = [
+    "test_override_rule"  # has issue with file access paths
+  ];
+
+  meta = with lib; {
     description = "A modern parsing library for Python, implementing Earley & LALR(1) and an easy interface";
     homepage = "https://github.com/lark-parser/lark";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ fridh ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ fridh drewrisinger ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/launchpadlib/default.nix b/nixpkgs/pkgs/development/python-modules/launchpadlib/default.nix
index 6c5112312bb3..e39e313baa7f 100644
--- a/nixpkgs/pkgs/development/python-modules/launchpadlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/launchpadlib/default.nix
@@ -10,6 +10,7 @@
 , six
 , testresources
 , wadllib
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -32,6 +33,8 @@ buildPythonPackage rec {
     wadllib
   ];
 
+  checkInputs = [ pytestCheckHook ];
+
   preCheck = ''
     export HOME=$TMPDIR
   '';
@@ -41,7 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Script Launchpad through its web services interfaces. Officially supported";
     homepage = "https://help.launchpad.net/API/launchpadlib";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Only;
     maintainers = [ maintainers.marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/lazr-restfulclient/default.nix b/nixpkgs/pkgs/development/python-modules/lazr-restfulclient/default.nix
index 93956c51b256..cb78dfff1a29 100644
--- a/nixpkgs/pkgs/development/python-modules/lazr-restfulclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lazr-restfulclient/default.nix
@@ -8,6 +8,10 @@
 , setuptools
 , six
 , wadllib
+, fixtures
+, lazr-uri
+, pytestCheckHook
+, wsgi-intercept
 }:
 
 buildPythonPackage rec {
@@ -23,7 +27,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ distro httplib2 oauthlib setuptools six wadllib ];
 
-  doCheck = false; # requires to package lazr.restful, lazr.authentication, and wsgi_intercept
+  # E   ModuleNotFoundError: No module named 'lazr.uri'
+  doCheck = false;
+  checkInputs = [ fixtures lazr-uri pytestCheckHook wsgi-intercept ];
 
   pythonImportsCheck = [ "lazr.restfulclient" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/ldap/default.nix b/nixpkgs/pkgs/development/python-modules/ldap/default.nix
index e5cd3d3828e1..1b1aea2ab114 100644
--- a/nixpkgs/pkgs/development/python-modules/ldap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ldap/default.nix
@@ -1,5 +1,6 @@
 { buildPythonPackage, fetchPypi
-, pyasn1, pyasn1-modules, pytest
+, pyasn1, pyasn1-modules
+, pythonAtLeast, pytestCheckHook
 , openldap, cyrus_sasl, lib, stdenv }:
 
 buildPythonPackage rec {
@@ -13,20 +14,22 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyasn1 pyasn1-modules ];
 
+  checkInputs = [ pytestCheckHook ];
   buildInputs = [ openldap cyrus_sasl ];
 
-  checkInputs = [ pytest ];
-
-  checkPhase = ''
+  preCheck = ''
     # Needed by tests to setup a mockup ldap server.
     export BIN="${openldap}/bin"
     export SBIN="${openldap}/bin"
     export SLAPD="${openldap}/libexec/slapd"
     export SCHEMA="${openldap}/etc/schema"
-
-    py.test
   '';
 
+  disabledTests = lib.optionals (pythonAtLeast "3.9") [
+    # See https://github.com/python-ldap/python-ldap/issues/407
+    "test_simple_bind_noarg"
+  ];
+
   doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/ldaptor/default.nix b/nixpkgs/pkgs/development/python-modules/ldaptor/default.nix
index e3694bffe378..0d0c1159332a 100644
--- a/nixpkgs/pkgs/development/python-modules/ldaptor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ldaptor/default.nix
@@ -8,25 +8,23 @@
 , service-identity
 , zope_interface
 , isPy3k
-, pythonAtLeast
 , python
 }:
 
 buildPythonPackage rec {
   pname = "ldaptor";
-  version = "20.1.1";
+  version = "21.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "778f45d68a0b5d63a892c804c05e57b464413a41d8ae52f92ae569321473ab67";
+    sha256 = "sha256-jEnrGTddSqs+W4NYYGFODLF+VrtaIOGHSAj6W+xno1g=";
   };
 
   propagatedBuildInputs = [
     twisted passlib pyopenssl pyparsing service-identity zope_interface
   ];
 
-  # https://github.com/twisted/ldaptor/pull/210
-  disabled = !isPy3k || pythonAtLeast "3.9";
+  disabled = !isPy3k;
 
   checkPhase = ''
     ${python.interpreter} -m twisted.trial ldaptor
diff --git a/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix b/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix
index fe94753f1a62..a900c61d40b8 100644
--- a/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "ledgerblue";
-  version = "0.1.34";
+  version = "0.1.35";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f9553d496fbc6b612d98cc9db2f1648c1bcb63939c988ee1520e8fcb9bd77b24";
+    sha256 = "44fbd8fcf62430a6b84d4e826a9ef7fc21c77a7d8ff275f3952d6086ef06d076";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/lektor/default.nix b/nixpkgs/pkgs/development/python-modules/lektor/default.nix
index 844e28aa0788..febb1b1f0b16 100644
--- a/nixpkgs/pkgs/development/python-modules/lektor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lektor/default.nix
@@ -12,8 +12,8 @@
 , flask
 , pyopenssl
 , ndg-httpsclient
-, pytest
-, pytestcov
+, pytestCheckHook
+, pytest-cov
 , pytest-mock
 , pytest-pylint
 , pytest-click
@@ -39,13 +39,9 @@ buildPythonPackage rec {
   ] ++ lib.optionals isPy27 [ functools32 ];
 
   checkInputs = [
-    pytest pytestcov pytest-mock pytest-pylint pytest-click
+    pytestCheckHook pytest-cov pytest-mock pytest-pylint pytest-click
   ];
 
-  checkPhase = ''
-    pytest
-  '';
-
   # many errors -- tests assume inside of git repo, linting errors 13/317 fail
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/libagent/default.nix b/nixpkgs/pkgs/development/python-modules/libagent/default.nix
index 47be977755cd..5334513e23c8 100644
--- a/nixpkgs/pkgs/development/python-modules/libagent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libagent/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Using hardware wallets as SSH/GPG agent";
     homepage = "https://github.com/romanz/trezor-agent";
-    license = licenses.gpl3;
+    license = licenses.lgpl3Only;
     maintainers = with maintainers; [ np ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/libcst/default.nix b/nixpkgs/pkgs/development/python-modules/libcst/default.nix
index f064c34e1586..ed6e7755bf15 100644
--- a/nixpkgs/pkgs/development/python-modules/libcst/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libcst/default.nix
@@ -1,9 +1,21 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, black, isort
-, pytestCheckHook, pyyaml, typing-extensions, typing-inspect, dataclasses }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, hypothesis
+, dataclasses
+, hypothesmith
+, pytestCheckHook
+, pyyaml
+, typing-extensions
+, typing-inspect
+, black
+, isort
+}:
 
 buildPythonPackage rec {
   pname = "libcst";
-  version = "0.3.13";
+  version = "0.3.18";
 
   # Some files for tests missing from PyPi
   # https://github.com/Instagram/LibCST/issues/331
@@ -11,34 +23,30 @@ buildPythonPackage rec {
     owner = "instagram";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0pbddjrsqj641mr6zijk2phfn15dampbx268zcws4bhhhnrxlj65";
+    sha256 = "sha256-19yGaKBLpGASSPv/aSX0kx9lh2JxKExHJDKKtuBbuqI=";
   };
 
   disabled = pythonOlder "3.6";
 
-  propagatedBuildInputs = [ pyyaml typing-inspect ]
+  propagatedBuildInputs = [ hypothesis typing-extensions typing-inspect pyyaml ]
     ++ lib.optional (pythonOlder "3.7") dataclasses;
 
-  checkInputs = [ black isort pytestCheckHook ];
+  checkInputs = [ black hypothesmith isort pytestCheckHook ];
+
+  # can't run tests due to circular dependency on hypothesmith -> licst
+  doCheck = false;
 
-  # https://github.com/Instagram/LibCST/issues/346
-  # https://github.com/Instagram/LibCST/issues/347
   preCheck = ''
     python -m libcst.codegen.generate visitors
     python -m libcst.codegen.generate return_types
-    rm libcst/tests/test_fuzz.py
-    rm libcst/tests/test_pyre_integration.py
-    rm libcst/metadata/tests/test_full_repo_manager.py
-    rm libcst/metadata/tests/test_type_inference_provider.py
   '';
 
   pythonImportsCheck = [ "libcst" ];
 
   meta = with lib; {
-    description =
-      "A Concrete Syntax Tree (CST) parser and serializer library for Python.";
+    description = "A Concrete Syntax Tree (CST) parser and serializer library for Python.";
     homepage = "https://github.com/Instagram/libcst";
     license = with licenses; [ mit asl20 psfl ];
-    maintainers = with maintainers; [ maintainers.ruuda ];
+    maintainers = with maintainers; [ ruuda SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/libnacl/default.nix b/nixpkgs/pkgs/development/python-modules/libnacl/default.nix
index 2406738cf1bb..f8cb85ab4182 100644
--- a/nixpkgs/pkgs/development/python-modules/libnacl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libnacl/default.nix
@@ -1,33 +1,41 @@
-{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pytest, libsodium }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, libsodium
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "libnacl";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "saltstack";
     repo = pname;
     rev = "v${version}";
-    sha256 = "10rpim9lf0qd861a3miq8iqg8w87slqwqni7nq66h72jdk130axg";
+    sha256 = "sha256-nttR9PQimhqd2pByJ5IJzJ4RmSI4y7lcX7a7jcK+vqc=";
   };
 
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ libsodium ];
+  buildInputs = [ libsodium ];
 
   postPatch =
-    let soext = stdenv.hostPlatform.extensions.sharedLibrary; in ''
-    substituteInPlace "./libnacl/__init__.py" --replace "ctypes.cdll.LoadLibrary('libsodium${soext}')" "ctypes.cdll.LoadLibrary('${libsodium}/lib/libsodium${soext}')"
-  '';
+    let soext = stdenv.hostPlatform.extensions.sharedLibrary; in
+    ''
+      substituteInPlace "./libnacl/__init__.py" --replace \
+        "ctypes.cdll.LoadLibrary('libsodium${soext}')" \
+        "ctypes.cdll.LoadLibrary('${libsodium}/lib/libsodium${soext}')"
+    '';
 
-  checkPhase = ''
-    py.test
-  '';
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "libnacl" ];
 
   meta = with lib; {
-    maintainers = with maintainers; [ xvapx ];
     description = "Python bindings for libsodium based on ctypes";
-    homepage = "https://pypi.python.org/pypi/libnacl";
+    homepage = "https://libnacl.readthedocs.io/";
     license = licenses.asl20;
     platforms = platforms.unix;
+    maintainers = with maintainers; [ xvapx ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/librouteros/default.nix b/nixpkgs/pkgs/development/python-modules/librouteros/default.nix
new file mode 100644
index 000000000000..32c9889681ca
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/librouteros/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, pytestCheckHook
+, pytest-xdist
+}:
+
+buildPythonPackage rec {
+  pname = "librouteros";
+  version = "3.1.0";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "luqasz";
+    repo = pname;
+    rev = version;
+    sha256 = "1skjwnqa3vcpq9gzgpw93wdmisq15fp0q07kzyq3fgx4yg7b6sql";
+  };
+
+  checkInputs = [
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Disable tests which require QEMU to run
+    "test_login"
+    "test_long_word"
+    "test_query"
+    "test_add_then_remove"
+    "test_add_then_update"
+    "test_generator_ditch"
+  ];
+
+  pythonImportsCheck = [ "librouteros" ];
+
+  meta = with lib; {
+    description = "Python implementation of the MikroTik RouterOS API";
+    homepage = "https://librouteros.readthedocs.io/";
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/libusb1/default.nix b/nixpkgs/pkgs/development/python-modules/libusb1/default.nix
index 0446299fd1bd..cc0ba39e64ef 100644
--- a/nixpkgs/pkgs/development/python-modules/libusb1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libusb1/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libusb1";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14ljk7rywy3fiv23dpayvk14y1ywma729r3b1x2cxf68919g2gnh";
+    sha256 = "17hqck808m59jv6m2g4hasnay44pycy3y0im01fq9jpr3ymcdbi7";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/libversion/default.nix b/nixpkgs/pkgs/development/python-modules/libversion/default.nix
index 2edc9211d928..4bc2dfa2ffda 100644
--- a/nixpkgs/pkgs/development/python-modules/libversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libversion/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libversion";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1h8x9hglrqi03f461lhw3wwz23zs84dgw7hx4laxcmyrgvyzvcq1";
+    sha256 = "cf9ef702d0bc750f0ad44a2cffe8ebd83cd356b92cc25f767846509f84ea7e73";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix b/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix
index 62686234b6e9..1018ceaec4b2 100644
--- a/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "lightgbm";
-  version = "3.1.1";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "babece2e3613e97748a67ed45387bb0e984bdb1f4126e39f010fbfe7503c7b20";
+    sha256 = "000c6e0e225834a8a94a84571cf41e4b7c7b97a0db6d286c1237de8ba6066726";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/lightparam/default.nix b/nixpkgs/pkgs/development/python-modules/lightparam/default.nix
index 0c3eb5292a88..936cc9a06269 100644
--- a/nixpkgs/pkgs/development/python-modules/lightparam/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lightparam/default.nix
@@ -1,4 +1,4 @@
-{ lib, pkgs, buildPythonPackage, fetchFromGitHub, isPy3k
+{ lib, buildPythonPackage, fetchFromGitHub, isPy3k
 , ipython
 , ipywidgets
 , numpy
diff --git a/nixpkgs/pkgs/development/python-modules/lima/default.nix b/nixpkgs/pkgs/development/python-modules/lima/default.nix
new file mode 100644
index 000000000000..16a5f01ed7a9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/lima/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "lima";
+  version = "0.5";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qqj0053r77ppkcyyk2fhpaxjzsl1h98nf9clpny6cs66sdl241v";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Lightweight Marshalling of Python 3 Objects.";
+    homepage = "https://github.com/b6d/lima";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/limnoria/default.nix b/nixpkgs/pkgs/development/python-modules/limnoria/default.nix
index 86a505d4448c..6f0532a390a9 100644
--- a/nixpkgs/pkgs/development/python-modules/limnoria/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/limnoria/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "limnoria";
-  version = "2021.01.15";
+  version = "2021.03.13";
   disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d7109fc779c44070e3c57186eae59b133014835d5fe15b262fa9438d7599c81";
+    sha256 = "c13dd7a84eddfcf9c3068d57f3c9da90ea7c0d11688dc3f78f9265f3f093c6ea";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/linode-api/default.nix b/nixpkgs/pkgs/development/python-modules/linode-api/default.nix
index 7df182d94fed..48d5a1e80802 100644
--- a/nixpkgs/pkgs/development/python-modules/linode-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/linode-api/default.nix
@@ -1,41 +1,38 @@
-{
-  buildPythonPackage,
-  fetchFromGitHub,
-  pythonOlder,
-  lib,
-  requests,
-  future,
-  enum34,
-  mock }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, requests
+, pytestCheckHook
+, mock
+}:
 
 buildPythonPackage rec {
   pname = "linode-api";
-  version = "4.1.8b1"; # NOTE: this is a beta, and the API may change in future versions.
-
-  disabled = (pythonOlder "2.7");
-
-  propagatedBuildInputs = [ requests future ]
-                             ++ lib.optionals (pythonOlder "3.4") [ enum34 ];
-
-  postPatch = (lib.optionalString (!pythonOlder "3.4") ''
-    sed -i -e '/"enum34",/d' setup.py
-  '');
-
-  doCheck = true;
-  checkInputs = [ mock ];
+  version = "5.0.0";
+  disabled = pythonOlder "3.6";
 
   # Sources from Pypi exclude test fixtures
   src = fetchFromGitHub {
-    rev = "v${version}";
     owner = "linode";
     repo = "python-linode-api";
-    sha256 = "0qfqn92fr876dncwbkf2vhm90hnf7lwpg80hzwyzyzwz1hcngvjg";
+    rev = version;
+    sha256 = "0lqi15vks4fxbki1l7n1bfzygjy3w17d9wchjxvp22ijmas44yai";
   };
 
-  meta = {
+  propagatedBuildInputs = [ requests ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "linode_api4" ];
+
+  meta = with lib; {
+    description = "Python library for the Linode API v4";
     homepage = "https://github.com/linode/python-linode-api";
-    description = "The official python library for the Linode API v4 in python.";
-    license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ glenns ];
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ glenns ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/livestreamer/default.nix b/nixpkgs/pkgs/development/python-modules/livestreamer/default.nix
index 184a215c407a..98878c90640f 100644
--- a/nixpkgs/pkgs/development/python-modules/livestreamer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/livestreamer/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     sha256 = "1fp3d3z2grb1ls97smjkraazpxnvajda2d1g1378s6gzmda2jvjd";
   };
 
-  buildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ pkgs.makeWrapper ];
 
   propagatedBuildInputs = [ pkgs.rtmpdump pycrypto requests ]
     ++ lib.optionals isPy27 [ singledispatch futures ];
diff --git a/nixpkgs/pkgs/development/python-modules/llfuse/default.nix b/nixpkgs/pkgs/development/python-modules/llfuse/default.nix
index e615582a282d..44aa9136b07c 100644
--- a/nixpkgs/pkgs/development/python-modules/llfuse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/llfuse/default.nix
@@ -1,44 +1,53 @@
-{ lib, stdenv, fetchPypi, fetchpatch, buildPythonPackage, pkg-config, pytest, fuse, attr, which
-, contextlib2, osxfuse
+{ lib
+, stdenv
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, contextlib2
+, cython
+, fuse
+, pkg-config
+, pytestCheckHook
+, python
+, which
 }:
 
 buildPythonPackage rec {
   pname = "llfuse";
-  version = "1.3.8";
+  version = "1.4.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1g2cdhdqrb6m7655qp61pn61pwj1ql61cdzhr2jvl3w4i8877ddr";
-  };
-
-  patches = [
-    # fix tests with pytest 6
-    (fetchpatch {
-      url = "https://github.com/python-llfuse/python-llfuse/commit/1ed8b280d2544eedf8bf209761bef0d2519edd17.diff";
-      sha256 = "0wailfrr1i0n2m9ylwpr00jh79s7z3l36w7x19jx1x4djcz2hdps";
-    })
-  ];
+  disabled = pythonOlder "3.5";
 
-  nativeBuildInputs = [ pkg-config ];
+  src = fetchFromGitHub {
+    owner = "python-llfuse";
+    repo = "python-llfuse";
+    rev = "release-${version}";
+    sha256 = "1dcpdg6cpkmdbyg66fgrylj7dp9zqzg5bf23y6m6673ykgxlv480";
+  };
 
-  buildInputs =
-    lib.optionals stdenv.isLinux [ fuse ]
-    ++ lib.optionals stdenv.isDarwin [ osxfuse ];
+  nativeBuildInputs = [ cython pkg-config ];
 
-  checkInputs = [ pytest which ] ++
-    lib.optionals stdenv.isLinux [ attr ];
+  buildInputs = [ fuse ];
 
   propagatedBuildInputs = [ contextlib2 ];
 
-  checkPhase = ''
-    py.test -k "not test_listdir" ${lib.optionalString stdenv.isDarwin ''-m "not uses_fuse"''}
+  preBuild = ''
+    ${python.interpreter} setup.py build_cython
   '';
 
+  # On Darwin, the test requires macFUSE to be installed outside of Nix.
+  doCheck = !stdenv.isDarwin;
+  checkInputs = [ pytestCheckHook which ];
+
+  disabledTests = [
+    "test_listdir" # accesses /usr/bin
+  ];
+
   meta = with lib; {
     description = "Python bindings for the low-level FUSE API";
     homepage = "https://github.com/python-llfuse/python-llfuse";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ bjornfor ];
+    maintainers = with maintainers; [ bjornfor dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix b/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
index 02ee088782aa..609dcb82237d 100644
--- a/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "llvmlite";
-  version = "0.34.0";
+  version = "0.35.0";
 
   disabled = isPyPy || !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f03ee0d19bca8f2fe922bb424a909d05c28411983b0c2bc58b020032a0d11f63";
+    sha256 = "80e51d5aa02ad72da9870e89d21f9b152b0220ca551b4596a6c0614bcde336fc";
   };
 
   nativeBuildInputs = [ llvm ];
diff --git a/nixpkgs/pkgs/development/python-modules/localimport/default.nix b/nixpkgs/pkgs/development/python-modules/localimport/default.nix
new file mode 100644
index 000000000000..3c41618d5b83
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/localimport/default.nix
@@ -0,0 +1,23 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "localimport";
+  version = "1.7.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-p7ACOzJRwH9hICMcxtVt/r+twEoFsDxPKGuarFnFIbo=";
+  };
+
+  pythonImportsCheck = [ "localimport" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/NiklasRosenstein/py-localimport";
+    description = "Isolated import of Python modules";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/locket/default.nix b/nixpkgs/pkgs/development/python-modules/locket/default.nix
index e0be7d8f9440..fd75a965c52f 100644
--- a/nixpkgs/pkgs/development/python-modules/locket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/locket/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "locket";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d4z2zngrpqkrfhnd4yhysh66kjn4mblys2l06sh5dix2p0n7vhz";
+    sha256 = "3e1faba403619fe201552f083f1ecbf23f550941bc51985ac6ed4d02d25056dd";
   };
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/loguru/default.nix b/nixpkgs/pkgs/development/python-modules/loguru/default.nix
index 458d2ca50329..8146f8b183e1 100644
--- a/nixpkgs/pkgs/development/python-modules/loguru/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/loguru/default.nix
@@ -1,19 +1,36 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, colorama, pytestCheckHook }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, isPy27
+, colorama
+, pytestCheckHook
+, pythonAtLeast
+}:
 
 buildPythonPackage rec {
   pname = "loguru";
   version = "0.5.3";
 
-  disabled = isPy27;
+  # python3.9 compatibility should be in the next release after 0.5.3
+  disabled = isPy27 || pythonAtLeast "3.9";
   src = fetchPypi {
     inherit pname version;
     sha256 = "b28e72ac7a98be3d28ad28570299a393dfcd32e5e3f6a353dec94675767b6319";
   };
 
-  checkInputs = [ pytestCheckHook colorama ];
+  patches = [
+    # Fixes tests with pytest>=6.2.2. Will be part of the next release after 0.5.3
+    (fetchpatch {
+      url = "https://github.com/Delgan/loguru/commit/31cf758ee9d22dbfa125f38153782fe20ac9dce5.patch";
+      sha256 = "1lzbs8akg1s7s6xjl3samf4c4bpssqvwg5fn3mwlm4ysr7jd5y67";
+    })
+  ];
 
-  pytestFlagsArray = lib.optionals stdenv.isDarwin [ "--ignore=tests/test_multiprocessing.py" ];
+  checkInputs = [ pytestCheckHook colorama ];
 
+  disabledTestPaths = lib.optionals stdenv.isDarwin [ "tests/test_multiprocessing.py" ];
   disabledTests = [ "test_time_rotation_reopening" "test_file_buffering" ]
     ++ lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" "test_await_complete_inheritance" ];
 
@@ -21,6 +38,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/Delgan/loguru";
     description = "Python logging made (stupidly) simple";
     license = licenses.mit;
-    maintainers = with maintainers; [ jakewaksbaum ];
+    maintainers = with maintainers; [ jakewaksbaum rmcgibbo ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/lsassy/default.nix b/nixpkgs/pkgs/development/python-modules/lsassy/default.nix
index 6b1d5ec2bb4c..ad9d09b32662 100644
--- a/nixpkgs/pkgs/development/python-modules/lsassy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lsassy/default.nix
@@ -4,7 +4,6 @@
 , impacket
 , netaddr
 , pypykatz
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/development/python-modules/luftdaten/default.nix b/nixpkgs/pkgs/development/python-modules/luftdaten/default.nix
index dbbe3d252125..71daa4bdbfa4 100644
--- a/nixpkgs/pkgs/development/python-modules/luftdaten/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/luftdaten/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "luftdaten";
-  version = "0.6.4";
+  version = "0.6.5";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w1f0kmiwslg1dxn7gq0ak8f5wajlwl03r5zklshjc11j34b4d5i";
+    sha256 = "sha256-5SFb+psULyg9UKVY3oJPNLF3TGS/W+Bxoj79iTzReL4=";
   };
 
   propagatedBuildInputs = [ aiohttp async-timeout ];
@@ -16,9 +16,11 @@ buildPythonPackage rec {
   # No tests implemented
   doCheck = false;
 
+  pythonImportsCheck = [ "luftdaten" ];
+
   meta = with lib; {
     description = "Python API for interacting with luftdaten.info";
-    homepage = "https://github.com/fabaff/python-luftdaten";
+    homepage = "https://github.com/home-assistant-ecosystem/python-luftdaten";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/lupa/default.nix b/nixpkgs/pkgs/development/python-modules/lupa/default.nix
new file mode 100644
index 000000000000..e50404e50472
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/lupa/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, cython
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "lupa";
+  version = "1.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "13ifv0nxbf70xg69sp49j484m8cnid7rgh8f94pgfb50dj01vqd3";
+  };
+
+  nativeBuildInputs = [ cython ];
+
+  pythonImportsCheck = [ "lupa" ];
+
+  meta = with lib; {
+    description = "Lua in Python";
+    homepage = "https://github.com/scoder/lupa";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/lxml/default.nix b/nixpkgs/pkgs/development/python-modules/lxml/default.nix
index aa009e0a3e73..36b1539834d6 100644
--- a/nixpkgs/pkgs/development/python-modules/lxml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lxml/default.nix
@@ -1,23 +1,24 @@
-{ lib, buildPythonPackage, fetchFromGitHub
+{ stdenv, lib, buildPythonPackage, fetchFromGitHub
 , cython
 , libxml2
 , libxslt
 , zlib
+, xcodebuild
 }:
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.5.2";
+  version = "4.6.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "1d0cpwdjxfzwjzmnz066ibzicyj2vhx15qxmm775l8hxqi65xps4";
+    sha256 = "1zidx62sxh2r4fmjfjzd4f6i4yxgzkpd20nafbyr0i0wnw9da3fd";
   };
 
   # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs
-  nativeBuildInputs = [ libxml2.dev libxslt.dev cython ];
+  nativeBuildInputs = [ libxml2.dev libxslt.dev cython ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ];
   buildInputs = [ libxml2 libxslt zlib ];
 
   # tests are meant to be ran "in-place" in the same directory as src
diff --git a/nixpkgs/pkgs/development/python-modules/maestral/default.nix b/nixpkgs/pkgs/development/python-modules/maestral/default.nix
index 990545e41736..63425b6c853a 100644
--- a/nixpkgs/pkgs/development/python-modules/maestral/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/maestral/default.nix
@@ -1,30 +1,27 @@
-{ lib, stdenv
+{ lib
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
 , python
-, alembic, bugsnag, click, dropbox, fasteners, keyring, keyrings-alt, packaging, pathspec, Pyro5, requests, setuptools, sdnotify, sqlalchemy, survey, watchdog
+, click, desktop-notifier, dropbox, fasteners, keyring, keyrings-alt, packaging, pathspec, Pyro5, requests, setuptools, sdnotify, survey, watchdog
 , importlib-metadata
-, importlib-resources
-, dbus-next
 }:
 
 buildPythonPackage rec {
   pname = "maestral";
-  version = "1.3.1";
+  version = "1.4.3";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "SamSchott";
     repo = "maestral";
     rev = "v${version}";
-    sha256 = "sha256-SspyTdmAbbmWN3AqVp9bj/QfAKLVgU2bLiiHjZO0aCM=";
+    sha256 = "sha256-3GleQNkJrGIkFqOL2Dq0jTpgw7ts9ecpovKbyh3OrEI=";
   };
 
   propagatedBuildInputs = [
-    alembic
-    bugsnag
     click
+    desktop-notifier
     dropbox
     fasteners
     keyring
@@ -35,15 +32,10 @@ buildPythonPackage rec {
     requests
     setuptools
     sdnotify
-    sqlalchemy
     survey
     watchdog
   ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ] ++ lib.optionals stdenv.isLinux [
-    dbus-next
   ];
 
   makeWrapperArgs = [
diff --git a/nixpkgs/pkgs/development/python-modules/makefun/default.nix b/nixpkgs/pkgs/development/python-modules/makefun/default.nix
new file mode 100644
index 000000000000..1f5596a46ccc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/makefun/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "makefun";
+  version = "1.11.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-2qNQpILtWLVyREPGUUMhkem5ewyDdDh50JExccaigIU=";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  # Disabling tests for now due to various (transitive) dependencies on modules
+  # from @smarie which are, as of yet, not part of nixpkgs. Also introduces
+  # a tricky dependency: makefun tests depend on pytest-cases, installing
+  # pytest-cases depends on makefun.
+  doCheck = false;
+
+  pythonImportsCheck = [ "makefun" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/smarie/python-makefun";
+    description = "Small library to dynamically create python functions";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/managesieve/default.nix b/nixpkgs/pkgs/development/python-modules/managesieve/default.nix
index e23c3621c2e9..fd2eac2b2c7e 100644
--- a/nixpkgs/pkgs/development/python-modules/managesieve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/managesieve/default.nix
@@ -1,26 +1,25 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestrunner
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "managesieve";
-  version = "0.6";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee70e298e9b68eb81f93d52a1320a034fdc182f3927fdd551836fc93b0ed2c5f";
+    sha256 = "44930a3b48332d23b35a5305ae7ba47904d4485ed1b7a22208b7d5ad9d60427a";
   };
 
-  checkInputs = [ pytestrunner pytest ];
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "ManageSieve client library for remotely managing Sieve scripts";
-    homepage    = "https://managesieve.readthedocs.io/";
-    # PSFL for the python module, GPLv3 for sieveshell
-    license     = with licenses; [ gpl3 psfl ];
+    homepage = "https://managesieve.readthedocs.io/";
+    # PSFL for the python module, GPLv3 only for sieveshell
+    license = with licenses; [ gpl3Only psfl ];
     maintainers = with maintainers; [ dadada ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/marisa-trie/default.nix b/nixpkgs/pkgs/development/python-modules/marisa-trie/default.nix
index 031f7b04021b..e646ee71ec43 100644
--- a/nixpkgs/pkgs/development/python-modules/marisa-trie/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marisa-trie/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, cython
 , pytestrunner
 , pytest
 , hypothesis
@@ -20,7 +21,11 @@ buildPythonPackage rec {
       --replace "hypothesis==" "hypothesis>="
   '';
 
-  nativeBuildInputs = [ pytestrunner ];
+  nativeBuildInputs = [ cython pytestrunner ];
+
+  preBuild = ''
+    ./update_cpp.sh
+  '';
 
   checkInputs = [ pytest hypothesis ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/mat2/default.nix b/nixpkgs/pkgs/development/python-modules/mat2/default.nix
new file mode 100644
index 000000000000..0b097024a55f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mat2/default.nix
@@ -0,0 +1,98 @@
+{ lib
+, buildPythonPackage
+, python
+, pythonOlder
+, fetchFromGitLab
+, substituteAll
+, bubblewrap
+, exiftool
+, ffmpeg
+, mime-types
+, wrapGAppsHook
+, gdk-pixbuf
+, gobject-introspection
+, librsvg
+, poppler_gi
+, mutagen
+, pygobject3
+, pycairo
+, dolphinIntegration ? false, plasma5Packages
+}:
+
+buildPythonPackage rec {
+  pname = "mat2";
+  version = "0.12.1";
+
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitLab {
+    domain = "0xacab.org";
+    owner = "jvoisin";
+    repo = "mat2";
+    rev = version;
+    sha256 = "sha256-TxHelOr7ygp4R+dW+oJ034l2w9zrB4gn0QLs5Pa4EFE=";
+  };
+
+  patches = [
+    # hardcode paths to some binaries
+    (substituteAll ({
+      src = ./paths.patch;
+      bwrap = "${bubblewrap}/bin/bwrap";
+      exiftool = "${exiftool}/bin/exiftool";
+      ffmpeg = "${ffmpeg}/bin/ffmpeg";
+      # remove once faf0f8a8a4134edbeec0a73de7f938453444186d is in master
+      mimetypes = "${mime-types}/etc/mime.types";
+    } // lib.optionalAttrs dolphinIntegration {
+      kdialog = "${plasma5Packages.kdialog}/bin/kdialog";
+    }))
+    # the executable shouldn't be called .mat2-wrapped
+    ./executable-name.patch
+    # hardcode path to mat2 executable
+    ./tests.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace dolphin/mat2.desktop \
+      --replace "@mat2@" "$out/bin/mat2" \
+      --replace "@mat2svg@" "$out/share/icons/hicolor/scalable/apps/mat2.svg"
+  '';
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    gobject-introspection
+    librsvg
+    poppler_gi
+  ];
+
+  propagatedBuildInputs = [
+    mutagen
+    pygobject3
+    pycairo
+  ];
+
+  postInstall = ''
+    install -Dm 444 data/mat2.svg -t "$out/share/icons/hicolor/scalable/apps"
+    install -Dm 444 doc/mat2.1 -t "$out/share/man/man1"
+    install -Dm 444 nautilus/mat2.py -t "$out/share/nautilus-python/extensions"
+    buildPythonPath "$out $pythonPath"
+    patchPythonScript "$out/share/nautilus-python/extensions/mat2.py"
+  '' + lib.optionalString dolphinIntegration ''
+    install -Dm 444 dolphin/mat2.desktop -t "$out/share/kservices5/ServiceMenus"
+  '';
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -v
+  '';
+
+  meta = with lib; {
+    description = "A handy tool to trash your metadata";
+    homepage = "https://0xacab.org/jvoisin/mat2";
+    changelog = "https://0xacab.org/jvoisin/mat2/-/blob/${version}/CHANGELOG.md";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mat2/executable-name.patch b/nixpkgs/pkgs/development/python-modules/mat2/executable-name.patch
new file mode 100644
index 000000000000..6eee0a949400
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mat2/executable-name.patch
@@ -0,0 +1,13 @@
+diff --git a/mat2 b/mat2
+index 3b77e1e..b99a633 100755
+--- a/mat2
++++ b/mat2
+@@ -46,7 +46,7 @@ def __check_file(filename: str, mode: int = os.R_OK) -> bool:
+ 
+ 
+ def create_arg_parser() -> argparse.ArgumentParser:
+-    parser = argparse.ArgumentParser(description='Metadata anonymisation toolkit 2')
++    parser = argparse.ArgumentParser(description='Metadata anonymisation toolkit 2', prog='mat2')
+ 
+     parser.add_argument('-V', '--verbose', action='store_true',
+                         help='show more verbose status information')
diff --git a/nixpkgs/pkgs/development/python-modules/mat2/paths.patch b/nixpkgs/pkgs/development/python-modules/mat2/paths.patch
new file mode 100644
index 000000000000..e0144be9fef6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mat2/paths.patch
@@ -0,0 +1,111 @@
+diff --git a/dolphin/mat2.desktop b/dolphin/mat2.desktop
+index e623962..5d69ae2 100644
+--- a/dolphin/mat2.desktop
++++ b/dolphin/mat2.desktop
+@@ -7,5 +7,5 @@ Type=Service
+ [Desktop Action cleanMetadata]
+ Name=Clean metadata
+ Name[es]=Limpiar metadatos
+-Icon=/usr/share/icons/hicolor/scalable/apps/mat2.svg
+-Exec=kdialog --yesno  "$( mat2 -s %U )" --title "Clean Metadata?" && mat2 %U
++Icon=@mat2svg@
++Exec=@kdialog@ --yesno  "$( @mat2@ -s %U )" --title "Clean Metadata?" && @mat2@ %U
+diff --git a/libmat2/bubblewrap.py b/libmat2/bubblewrap.py
+index 970d5dd..5d3c0b7 100644
+--- a/libmat2/bubblewrap.py
++++ b/libmat2/bubblewrap.py
+@@ -22,11 +22,7 @@ CalledProcessError = subprocess.CalledProcessError
+ 
+ 
+ def _get_bwrap_path() -> str:
+-    which_path = shutil.which('bwrap')
+-    if which_path:
+-        return which_path
+-
+-    raise RuntimeError("Unable to find bwrap")  # pragma: no cover
++    return '@bwrap@'
+ 
+ 
+ def _get_bwrap_args(tempdir: str,
+@@ -37,16 +33,11 @@ def _get_bwrap_args(tempdir: str,
+ 
+     # XXX: use --ro-bind-try once all supported platforms
+     # have a bubblewrap recent enough to support it.
+-    ro_bind_dirs = ['/usr', '/lib', '/lib64', '/bin', '/sbin', '/etc/alternatives', cwd]
++    ro_bind_dirs = ['/nix/store', cwd]
+     for bind_dir in ro_bind_dirs:
+         if os.path.isdir(bind_dir):  # pragma: no cover
+             ro_bind_args.extend(['--ro-bind', bind_dir, bind_dir])
+ 
+-    ro_bind_files = ['/etc/ld.so.cache']
+-    for bind_file in ro_bind_files:
+-        if os.path.isfile(bind_file):  # pragma: no cover
+-            ro_bind_args.extend(['--ro-bind', bind_file, bind_file])
+-
+     args = ro_bind_args + \
+         ['--dev', '/dev',
+          '--proc', '/proc',
+diff --git a/libmat2/exiftool.py b/libmat2/exiftool.py
+index eb65b2a..51a0fa1 100644
+--- a/libmat2/exiftool.py
++++ b/libmat2/exiftool.py
+@@ -1,8 +1,6 @@
+-import functools
+ import json
+ import logging
+ import os
+-import shutil
+ import subprocess
+ from typing import Dict, Union, Set
+ 
+@@ -70,14 +68,5 @@ class ExiftoolParser(abstract.AbstractParser):
+             return False
+         return True
+ 
+-@functools.lru_cache()
+ def _get_exiftool_path() -> str:  # pragma: no cover
+-    which_path = shutil.which('exiftool')
+-    if which_path:
+-        return which_path
+-
+-    # Exiftool on Arch Linux has a weird path
+-    if os.access('/usr/bin/vendor_perl/exiftool', os.X_OK):
+-        return '/usr/bin/vendor_perl/exiftool'
+-
+-    raise RuntimeError("Unable to find exiftool")
++    return '@exiftool@'
+diff --git a/libmat2/parser_factory.py b/libmat2/parser_factory.py
+index 9965432..bd45179 100644
+--- a/libmat2/parser_factory.py
++++ b/libmat2/parser_factory.py
+@@ -8,6 +8,7 @@ from . import abstract, UNSUPPORTED_EXTENSIONS
+ 
+ T = TypeVar('T', bound='abstract.AbstractParser')
+ 
++mimetypes.init(['@mimetypes@'])
+ mimetypes.add_type('application/epub+zip', '.epub')
+ mimetypes.add_type('application/x-dtbncx+xml', '.ncx')  # EPUB Navigation Control XML File
+ 
+diff --git a/libmat2/video.py b/libmat2/video.py
+index b4a3232..3dd7ee5 100644
+--- a/libmat2/video.py
++++ b/libmat2/video.py
+@@ -1,6 +1,4 @@
+ import subprocess
+-import functools
+-import shutil
+ import logging
+ 
+ from typing import Dict, Union
+@@ -135,10 +133,5 @@ class MP4Parser(AbstractFFmpegParser):
+     }
+ 
+ 
+-@functools.lru_cache()
+ def _get_ffmpeg_path() -> str:  # pragma: no cover
+-    which_path = shutil.which('ffmpeg')
+-    if which_path:
+-        return which_path
+-
+-    raise RuntimeError("Unable to find ffmpeg")
++    return '@ffmpeg@'
diff --git a/nixpkgs/pkgs/development/python-modules/mat2/tests.patch b/nixpkgs/pkgs/development/python-modules/mat2/tests.patch
new file mode 100644
index 000000000000..8958d937dd43
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mat2/tests.patch
@@ -0,0 +1,18 @@
+diff --git a/tests/test_climat2.py b/tests/test_climat2.py
+index cede642..2d5ad77 100644
+--- a/tests/test_climat2.py
++++ b/tests/test_climat2.py
+@@ -10,12 +10,7 @@ import glob
+ from libmat2 import images, parser_factory
+ 
+ 
+-mat2_binary = ['./mat2']
+-
+-if 'MAT2_GLOBAL_PATH_TESTSUITE' in os.environ:
+-    # Debian runs tests after installing the package
+-    # https://0xacab.org/jvoisin/mat2/issues/16#note_153878
+-    mat2_binary = ['/usr/bin/env', 'mat2']
++mat2_binary = [os.environ['out'] + '/bin/mat2']
+ 
+ 
+ class TestHelp(unittest.TestCase):
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
index bf21422b7721..4be4189f8c7a 100644
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
@@ -20,14 +20,14 @@ assert enableTk -> (tcl != null)
 assert enableQt -> pyqt5 != null;
 
 buildPythonPackage rec {
-  version = "3.3.3";
+  version = "3.3.4";
   pname = "matplotlib";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b1b60c6476c4cfe9e5cf8ab0d3127476fd3d5f05de0f343a452badaad0e4bdec";
+    sha256 = "3e477db76c22929e4c6876c44f88d790aacdf3c3f8f3a90cb1975c0bf37825b0";
   };
 
   XDG_RUNTIME_DIR = "/tmp";
diff --git a/nixpkgs/pkgs/development/python-modules/mautrix/default.nix b/nixpkgs/pkgs/development/python-modules/mautrix/default.nix
index d46b505991f3..6a6e35367331 100644
--- a/nixpkgs/pkgs/development/python-modules/mautrix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mautrix/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchPypi, aiohttp, pythonOlder
-, sqlalchemy, ruamel_yaml, CommonMark, lxml, fetchpatch
+, sqlalchemy, ruamel_yaml, CommonMark, lxml
 }:
 
 buildPythonPackage rec {
   pname = "mautrix";
-  version = "0.8.12";
+  version = "0.8.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "471684d40cbc2f7db345f2f809553b221a34d1c81e04bcdcb08a2832f140db1e";
+    sha256 = "9a15a8e39f9d0b36c91dfe0f5dd1efc8752cc1d317057840a3dbffd6ee90e068";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix b/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix
new file mode 100644
index 000000000000..7ed7a0ff328b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, asyncio-dgram
+, buildPythonPackage
+, click
+, dnspython
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+, pythonOlder
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "mcstatus";
+  version = "5.1.2";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "Dinnerbone";
+    repo = pname;
+    rev = "release-${version}";
+    sha256 = "16k5vcqpd9r7mm1cg9khzba42rcxs491h8gk2klymav249yzrwk7";
+  };
+
+  propagatedBuildInputs = [
+    asyncio-dgram
+    click
+    dnspython
+    six
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace requirements.txt --replace "dnspython3" "dnspython"
+  '';
+
+  pythonImportsCheck = [ "mcstatus" ];
+
+  meta = with lib; {
+    description = "Python library for checking the status of Minecraft servers";
+    homepage = "https://github.com/Dinnerbone/mcstatus";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix b/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix
index cdd19beb68d9..46de34050239 100644
--- a/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "mergedeep";
-  version = "1.3.1";
+  version = "1.3.4";
   disabled = isPy27;
 
   # PyPI tarball doesn't include tests directory
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "clarketm";
     repo = "mergedeep";
     rev = "v${version}";
-    sha256 = "1ryccb64hg438y1wsjlfp4ciq05q4c6khwhllwdnndm8cbkbrgph";
+    sha256 = "1msvvdzk33sxzgyvs4fs8dlsrsi7fjj038z83s0yw5h8m8d78469";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/meshio/default.nix b/nixpkgs/pkgs/development/python-modules/meshio/default.nix
new file mode 100644
index 000000000000..2c293b3b9c26
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/meshio/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, numpy
+, netcdf4
+, h5py
+, exdown
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "meshio";
+  version = "4.3.10";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1i34bk8bbc0dnizrlgj0yxnbzyvndkmnl6ryymxgcl9rv1abkfki";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    netcdf4
+    h5py
+  ];
+
+  checkInputs = [
+    exdown
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = ["meshio"];
+
+  meta = with lib; {
+    homepage = "https://github.com/nschloe/meshio";
+    description = "I/O for mesh files.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ wd15 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/metar/default.nix b/nixpkgs/pkgs/development/python-modules/metar/default.nix
new file mode 100644
index 000000000000..e832c7cf56fe
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/metar/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "metar";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "python-metar";
+    repo = "python-metar";
+    rev = "v${version}";
+    sha256 = "019vfq9191cdvvq1afdcdgdgbzpj7wq6pz9li8ggim71azjnv5nn";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "metar" ];
+
+  meta = with lib; {
+    description = "Python parser for coded METAR weather reports";
+    homepage = "https://github.com/python-metar/python-metar";
+    license = with licenses; [ bsd1 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/micawber/default.nix b/nixpkgs/pkgs/development/python-modules/micawber/default.nix
index 73f50d32a5f4..97681291a63a 100644
--- a/nixpkgs/pkgs/development/python-modules/micawber/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/micawber/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "micawber";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ac2d737d8ff27ed01ea3825ed8806970e8137d7b342cef37b39b6dd17e6eb3a4";
+    sha256 = "05ef4c89e307e3031dd1d85a3a557cd7f9f900f7dbbbcb33dde454940ca38460";
   };
 
   propagatedBuildInputs = [ beautifulsoup4 ];
diff --git a/nixpkgs/pkgs/development/python-modules/milc/default.nix b/nixpkgs/pkgs/development/python-modules/milc/default.nix
index 998f0a58b2ba..afdab1194b78 100644
--- a/nixpkgs/pkgs/development/python-modules/milc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/milc/default.nix
@@ -4,31 +4,32 @@
 , appdirs
 , argcomplete
 , colorama
-, gnugrep
+, nose2
+, semver
 }:
 
 buildPythonPackage rec {
   pname = "milc";
-  version = "1.0.10";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "clueboard";
     repo = "milc";
     rev = version;
-    sha256 = "04mk057b6jh0k4maqkg80kpilxak9r7vlr9xqwzczh2gs3g2x573";
+    sha256 = "sha256-koyOBz+pB/vkTHOR1p77ACO11/ULDIBzqsszUUpnE88=";
   };
 
-  checkInputs = [ gnugrep ];
   propagatedBuildInputs = [ appdirs argcomplete colorama ];
 
-  # Upstream has a nose2 test suite that runs this hello script in a handful of
-  # ways, but it's not in setup.py and makes assumptions about relative paths in
-  # the src repo, so just sanity-check basic functionality.
+  checkInputs = [ nose2 semver ];
+
   checkPhase = ''
-    patchShebangs ./hello
-    ./hello | grep "Hello, World"
+    patchShebangs example hello
+    nose2
   '';
 
+  pythonImportsCheck = [ "milc" ];
+
   meta = with lib; {
     description = "An Opinionated Batteries-Included Python 3 CLI Framework";
     homepage = "https://milc.clueboard.co";
diff --git a/nixpkgs/pkgs/development/python-modules/minidump/default.nix b/nixpkgs/pkgs/development/python-modules/minidump/default.nix
index 346430d23926..45adc7adb748 100644
--- a/nixpkgs/pkgs/development/python-modules/minidump/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/minidump/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "minidump";
-  version = "0.0.13";
+  version = "0.0.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w93yh2dz7llxjgv0jn7gf9praz7d5952is7idgh0lsyj67ri2ms";
+    sha256 = "65a71ca1da2b73ee96daa9d52e4fb9c9b80a849475502c6a1c2a80a68bd149b0";
   };
 
   # Upstream doesn't have tests
diff --git a/nixpkgs/pkgs/development/python-modules/minio/default.nix b/nixpkgs/pkgs/development/python-modules/minio/default.nix
index 00ea5b06c646..09389f7cf1b0 100644
--- a/nixpkgs/pkgs/development/python-modules/minio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/minio/default.nix
@@ -8,6 +8,7 @@
 , pytz
 , pytestCheckHook
 , urllib3
+, certifi
 }:
 
 buildPythonPackage rec {
@@ -26,6 +27,7 @@ buildPythonPackage rec {
     python-dateutil
     pytz
     urllib3
+    certifi
   ];
 
   checkInputs = [ faker mock nose pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix b/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
index dd351931e062..e9c12548269f 100644
--- a/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
@@ -1,21 +1,25 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , buildPythonPackage
-, isPy27
-, fetchpatch
-# Mitmproxy requirements
+, pythonOlder
+  # Mitmproxy requirements
+, asgiref
 , blinker
 , brotli
 , certifi
 , click
 , cryptography
 , flask
+, h11
 , h2
 , hyperframe
 , kaitaistruct
 , ldap3
+, msgpack
 , passlib
 , protobuf
+, publicsuffix2
 , pyasn1
 , pyopenssl
 , pyparsing
@@ -26,45 +30,31 @@
 , tornado
 , urwid
 , wsproto
-, publicsuffix2
 , zstandard
-# Additional check requirements
+  # Additional check requirements
 , beautifulsoup4
 , glibcLocales
-, pytest
-, requests
-, asynctest
+, hypothesis
 , parver
 , pytest-asyncio
-, hypothesis
-, asgiref
-, msgpack
+, pytest-timeout
+, pytest-xdist
+, pytestCheckHook
+, requests
 }:
 
 buildPythonPackage rec {
   pname = "mitmproxy";
-  version = "5.3.0";
-  disabled = isPy27;
+  version = "6.0.2";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner  = pname;
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "04y7fxxssrs14i7zl7fwlwrpnms39i7a6m18481sg8vlrkbagxjr";
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-FyIZKFQtf6qvwo4+NzPa/KOmBCcdGJ3jCqxz26+S2e4=";
   };
 
-  postPatch = ''
-    # remove dependency constraints
-    sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?\( \?, \?!=\([0-9]\.\?\)\+\)\?//' -i setup.py
-  '';
-
-  doCheck = (!stdenv.isDarwin);
-
-  checkPhase = ''
-    export HOME=$(mktemp -d)
-    pytest -k 'not test_get_version' # expects a Git repository
-  '';
-
   propagatedBuildInputs = [
     setuptools
     # setup.py
@@ -75,6 +65,7 @@ buildPythonPackage rec {
     click
     cryptography
     flask
+    h11
     h2
     hyperframe
     kaitaistruct
@@ -96,21 +87,39 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    asynctest
     beautifulsoup4
-    flask
     glibcLocales
     hypothesis
     parver
-    pytest
     pytest-asyncio
+    pytest-timeout
+    pytest-xdist
+    pytestCheckHook
     requests
   ];
 
+  doCheck = !stdenv.isDarwin;
+
+  postPatch = ''
+    # remove dependency constraints
+    sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?\( \?, \?!=\([0-9]\.\?\)\+\)\?//' -i setup.py
+  '';
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  disabledTests = [
+    # Tests require a git repository
+    "test_get_version"
+  ];
+
+  pythonImportsCheck = [ "mitmproxy" ];
+
   meta = with lib; {
     description = "Man-in-the-middle proxy";
-    homepage    = "https://mitmproxy.org/";
-    license     = licenses.mit;
+    homepage = "https://mitmproxy.org/";
+    license = licenses.mit;
     maintainers = with maintainers; [ fpletz kamilchm ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix b/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
index 35f55bb27930..44402b36ec08 100644
--- a/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
@@ -45,5 +45,7 @@ buildPythonPackage rec {
     license= licenses.bsd3;
     maintainers = with maintainers; [ evax ];
     platforms = platforms.unix;
+    # incompatible with nixpkgs scikitlearn version
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mmh3/default.nix b/nixpkgs/pkgs/development/python-modules/mmh3/default.nix
index cd2b01d05782..66d33d97f702 100644
--- a/nixpkgs/pkgs/development/python-modules/mmh3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mmh3/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "mmh3";
-  version = "2.5.1";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0265pvfbcsijf51szsh14qk3l3zgs0rb5rbrw11zwan52yi0jlhq";
+    sha256 = "d1ec578c09a07d3518ec9be540b87546397fa3455de73c166fcce51eaa5c41c5";
   };
 
   pythonImportsCheck = [ "mmh3" ];
diff --git a/nixpkgs/pkgs/development/python-modules/mock/default.nix b/nixpkgs/pkgs/development/python-modules/mock/default.nix
index e905add00f5f..72e40d750ed1 100644
--- a/nixpkgs/pkgs/development/python-modules/mock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mock/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "mock";
-  version = "4.0.2";
+  version = "4.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dd33eb70232b6118298d516bbcecd26704689c386594f0f3c4f13867b2c56f72";
+    sha256 = "7d3fbbde18228f4ff2f1f119a45cdffa458b4c0dee32eb4d2bb2f82554bac7bc";
   };
 
   propagatedBuildInputs = [ six pbr ] ++ lib.optionals isPy27 [ funcsigs ];
diff --git a/nixpkgs/pkgs/development/python-modules/mocket/default.nix b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
index 2102718ab6ef..76b64be7430b 100644
--- a/nixpkgs/pkgs/development/python-modules/mocket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
@@ -1,10 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, isPy27
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, isPy3k
 , decorator
 , http-parser
-, importlib-metadata
-, python
 , python_magic
-, six
 , urllib3
 , pytestCheckHook
 , pytest-mock
@@ -13,15 +14,17 @@
 , redis
 , requests
 , sure
+, pook
 }:
 
 buildPythonPackage rec {
   pname = "mocket";
-  version = "3.9.39";
+  version = "3.9.40";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mbcgfy1vfwwzn54vkq8xmfzdyc28brfpqk4d55r3a6abwwsn6a4";
+    sha256 = "061w3zqf4ir7hfj0vzl58lg8szsik1fxv126s32x03nk1sd39r6v";
   };
 
   propagatedBuildInputs = [
@@ -29,8 +32,7 @@ buildPythonPackage rec {
     http-parser
     python_magic
     urllib3
-    six
-  ] ++ lib.optionals (isPy27) [ six ];
+  ];
 
   checkInputs = [
     pytestCheckHook
@@ -40,13 +42,14 @@ buildPythonPackage rec {
     redis
     requests
     sure
+    pook
   ];
 
   pytestFlagsArray = [
-    "--ignore=tests/main/test_pook.py" # pook is not packaged
-    "--ignore=tests/main/test_redis.py" # requires a live redis instance
+    # Requires a live Redis instance
+    "--ignore=tests/main/test_redis.py"
   ] ++ lib.optionals (pythonOlder "3.8") [
-    # uses IsolatedAsyncioTestCase which is only available >= 3.8
+    # Uses IsolatedAsyncioTestCase which is only available >= 3.8
     "--ignore=tests/tests38/test_http_aiohttp.py"
   ];
 
@@ -61,6 +64,7 @@ buildPythonPackage rec {
     "test_truesendall_with_recording_https"
     "test_truesendall_after_mocket_session"
     "test_real_request_session"
+    "test_asyncio_record_replay"
   ];
 
   pythonImportsCheck = [ "mocket" ];
diff --git a/nixpkgs/pkgs/development/python-modules/modeled/default.nix b/nixpkgs/pkgs/development/python-modules/modeled/default.nix
index 66fe63e3daf1..acf8ee4c1123 100644
--- a/nixpkgs/pkgs/development/python-modules/modeled/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/modeled/default.nix
@@ -24,9 +24,11 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "modeled" ];
+
   meta = with lib; {
     description = "Universal data modeling for Python";
-    homepage = "https://bitbucket.org/userzimmermann/python-modeled";
+    homepage = "https://github.com/modeled/modeled";
     license = licenses.lgpl3Only;
     maintainers = [ maintainers.costrouc ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/moderngl_window/default.nix b/nixpkgs/pkgs/development/python-modules/moderngl_window/default.nix
index b4aee8c61cf7..7f6d9893c969 100644
--- a/nixpkgs/pkgs/development/python-modules/moderngl_window/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moderngl_window/default.nix
@@ -7,7 +7,6 @@
 , pyglet
 , pillow
 , pyrr
-, pytest
 }:
 
 buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/development/python-modules/moinmoin/default.nix b/nixpkgs/pkgs/development/python-modules/moinmoin/default.nix
index cc00643b71ae..b4ecf28724a4 100644
--- a/nixpkgs/pkgs/development/python-modules/moinmoin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moinmoin/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "moinmoin";
-  version = "1.9.10";
+  version = "1.9.11";
 
   # SyntaxError in setup.py
   disabled = isPy3k;
 
   src = fetchurl {
     url = "http://static.moinmo.in/files/moin-${version}.tar.gz";
-    sha256 = "0g05lnl1s8v61phi3z1g3b6lfj4g98grj9kw8nyjl246x0c489ja";
+    sha256 = "sha256-Ar4x1V851P4MYlPfi0ngG3bQlWNMvRtW0YX2bh4MPPU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix b/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix
index 74c214d9231d..2f26cc0c86fa 100644
--- a/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "more-itertools";
-  version = "8.6.0";
+  version = "8.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b3a9005928e5bed54076e6e549c792b306fddfe72b2d1d22dd63d42d5d3899cf";
+    sha256 = "c5d6da9ca3ff65220c3bfd2a8db06d698f05d4d2b9be57e1deb2be5a45019713";
   };
 
   checkInputs = [ nose ];
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://more-itertools.readthedocs.org";
+    changelog = "https://more-itertools.readthedocs.io/en/stable/versions.html";
     description = "Expansion of the itertools module";
     license = lib.licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/moto/default.nix b/nixpkgs/pkgs/development/python-modules/moto/default.nix
index 3efc09bc0017..ddc3896c6a55 100644
--- a/nixpkgs/pkgs/development/python-modules/moto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moto/default.nix
@@ -1,7 +1,6 @@
 { lib, buildPythonPackage, fetchPypi, isPy27, fetchpatch
 , aws-xray-sdk
 , backports_tempfile
-, boto
 , boto3
 , botocore
 , cfn-lint
@@ -11,7 +10,6 @@
 , jinja2
 , jsondiff
 , mock
-, nose
 , pyaml
 , python-jose
 , pytz
@@ -24,34 +22,42 @@
 , xmltodict
 , parameterized
 , idna
+, nose
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "moto";
-  version = "1.3.14";
+  version = "1.3.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fm09074qic24h8rw9a0paklygyb7xd0ch4890y4v8lj2pnsxbkr";
+    sha256 = "0zy0prsyip264i6h03lxsn1qg1n3dc8c4iyfawckjqvm24gnns3c";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "jsondiff==1.1.2" "jsondiff~=1.1"
-    sed -i '/datetime/d' setup.py # should be taken care of by std library
+      --replace "ecdsa<0.15" "ecdsa"
   '';
 
   patches = [
-    # loosen idna upper limit
+    # Remove dependence on boto. The boto library  (long ago superseded by boto3)
+    # has not had an official release in over two years or even a commit in the
+    # last 18 months. These patches should be included in the next moto release
+    # after 1.3.16
+    (fetchpatch {
+      url = "https://github.com/spulec/moto/pull/3503/commits/ae85c539fd57034c4d5cfd0f95af41ff19862dd1.patch";
+      sha256 = "16hr2py6q701d8ih6zcvs3lbanshpbk15ixckgdqngjf160k5m9p";
+      excludes = ["tests/test_ec2/test_ec2_cloudformation.py"];
+    })
     (fetchpatch {
-      url = "https://github.com/spulec/moto/commit/649b497f71cce95a6474a3ff6f3c9c3339efb68f.patch";
-      sha256 = "03qdybzlskgbdadmlcg6ayxfp821b5iaa8q2542cwkcq7msqbbqc";
+      url = "https://github.com/spulec/moto/pull/3468/commits/6ee39bd7fda4d3623569e10dcd9561bf2cd1d0bd.patch";
+      sha256 = "10m3xdqxgys7spav9mkbhcn4z0124rlprwxnw6ysb10610xlna0i";
     })
   ];
 
   propagatedBuildInputs = [
     aws-xray-sdk
-    boto
     boto3
     botocore
     cfn-lint
@@ -72,26 +78,183 @@ buildPythonPackage rec {
     idna
   ] ++ lib.optionals isPy27 [ backports_tempfile ];
 
-  checkInputs = [ boto3 freezegun nose sure parameterized ];
+  # Next release after 1.3.16 will not require `nose`
+  checkInputs = [ boto3 nose freezegun pytestCheckHook sure parameterized ];
 
-  checkPhase = ''
-    nosetests -v ./tests/ \
-              -e test_invoke_function_from_sns \
-              -e test_invoke_requestresponse_function \
-              -e test_context_manager \
-              -e test_decorator_start_and_stop \
-              -e test_invoke_event_function \
-              -e test_invoke_function_from_dynamodb \
-              -e test_invoke_function_from_sqs \
-              -e test_invoke_lambda_error \
-              -e test_invoke_async_function \
-              -e test_passthrough_requests
-  '';
+  # Multiple test files still import boto, rather than boto3 like
+  # boto is long-deprecated and broken on python3.9
+  # https://github.com/spulec/moto/blob/63ce647123755e4c4693a89f52c254596004c098/tests/test_autoscaling/test_autoscaling.py#L2
+  # NOTE: This should change to use disabledTestFiles / disabledTestPaths once that
+  # feature stabalizes: see #113153 (mostly the discussion therein), #113167, #110700
+  pytestFlagsArray = [
+    "--ignore=tests/test_awslambda/test_policy.py"
+    "--ignore=tests/test_autoscaling/test_autoscaling.py"
+    "--ignore=tests/test_autoscaling/test_cloudformation.py"
+    "--ignore=tests/test_autoscaling/test_elbv2.py"
+    "--ignore=tests/test_autoscaling/test_launch_configurations.py"
+    "--ignore=tests/test_autoscaling/test_policies.py"
+    "--ignore=tests/test_autoscaling/test_server.py"
+    "--ignore=tests/test_awslambda/test_lambda.py"
+    "--ignore=tests/test_awslambda/test_lambda_cloudformation.py"
+    "--ignore=tests/test_batch/test_cloudformation.py"
+    "--ignore=tests/test_batch/test_server.py"
+    "--ignore=tests/test_cloudformation/test_cloudformation_depends_on.py"
+    "--ignore=tests/test_cloudformation/test_cloudformation_stack_crud.py"
+    "--ignore=tests/test_cloudformation/test_cloudformation_stack_crud_boto3.py"
+    "--ignore=tests/test_cloudformation/test_cloudformation_stack_integration.py"
+    "--ignore=tests/test_cloudformation/test_stack_parsing.py"
+    "--ignore=tests/test_cloudformation/test_validate.py"
+    "--ignore=tests/test_cloudwatch/test_cloudwatch.py"
+    "--ignore=tests/test_cognitoidentity/test_server.py"
+    "--ignore=tests/test_config/test_config.py"
+    "--ignore=tests/test_core/test_auth.py"
+    "--ignore=tests/test_core/test_decorator_calls.py"
+    "--ignore=tests/test_core/test_nested.py"
+    "--ignore=tests/test_core/test_server.py"
+    "--ignore=tests/test_datapipeline/test_datapipeline.py"
+    "--ignore=tests/test_datapipeline/test_server.py"
+    "--ignore=tests/test_datasync/test_datasync.py"
+    "--ignore=tests/test_dynamodb/test_dynamodb.py"
+    "--ignore=tests/test_dynamodb/test_dynamodb_table_with_range_key.py"
+    "--ignore=tests/test_dynamodb/test_dynamodb_table_without_range_key.py"
+    "--ignore=tests/test_dynamodb/test_server.py"
+    "--ignore=tests/test_dynamodb2/test_dynamodb.py"
+    "--ignore=tests/test_dynamodb2/test_dynamodb_table_with_range_key.py"
+    "--ignore=tests/test_dynamodb2/test_dynamodb_table_without_range_key.py"
+    "--ignore=tests/test_dynamodb2/test_server.py"
+    "--ignore=tests/test_ec2/test_amazon_dev_pay.py"
+    "--ignore=tests/test_ec2/test_amis.py"
+    "--ignore=tests/test_ec2/test_availability_zones_and_regions.py"
+    "--ignore=tests/test_ec2/test_customer_gateways.py"
+    "--ignore=tests/test_ec2/test_dhcp_options.py"
+    "--ignore=tests/test_ec2/test_elastic_block_store.py"
+    "--ignore=tests/test_ec2/test_elastic_ip_addresses.py"
+    "--ignore=tests/test_ec2/test_elastic_network_interfaces.py"
+    "--ignore=tests/test_ec2/test_general.py"
+    "--ignore=tests/test_ec2/test_instances.py"
+    "--ignore=tests/test_ec2/test_internet_gateways.py"
+    "--ignore=tests/test_ec2/test_ip_addresses.py"
+    "--ignore=tests/test_ec2/test_key_pairs.py"
+    "--ignore=tests/test_ec2/test_monitoring.py"
+    "--ignore=tests/test_ec2/test_network_acls.py"
+    "--ignore=tests/test_ec2/test_placement_groups.py"
+    "--ignore=tests/test_ec2/test_regions.py"
+    "--ignore=tests/test_ec2/test_reserved_instances.py"
+    "--ignore=tests/test_ec2/test_route_tables.py"
+    "--ignore=tests/test_ec2/test_security_groups.py"
+    "--ignore=tests/test_ec2/test_spot_instances.py"
+    "--ignore=tests/test_ec2/test_subnets.py"
+    "--ignore=tests/test_ec2/test_tags.py"
+    "--ignore=tests/test_ec2/test_virtual_private_gateways.py"
+    "--ignore=tests/test_ec2/test_vm_export.py"
+    "--ignore=tests/test_ec2/test_vm_import.py"
+    "--ignore=tests/test_ec2/test_vpc_peering.py"
+    "--ignore=tests/test_ec2/test_vpcs.py"
+    "--ignore=tests/test_ec2/test_vpn_connections.py"
+    "--ignore=tests/test_ec2/test_vpn_connections.py"
+    "--ignore=tests/test_ec2/test_windows.py"
+    "--ignore=tests/test_ecs/test_ecs_boto3.py"
+    "--ignore=tests/test_elb/test_elb.py"
+    "--ignore=tests/test_elb/test_server.py"
+    "--ignore=tests/test_elbv2/test_elbv2.py"
+    "--ignore=tests/test_elbv2/test_server.py"
+    "--ignore=tests/test_emr/test_emr.py"
+    "--ignore=tests/test_emr/test_server.py"
+    "--ignore=tests/test_glacier/test_glacier_archives.py"
+    "--ignore=tests/test_glacier/test_glacier_jobs.py"
+    "--ignore=tests/test_glacier/test_glacier_vaults.py"
+    "--ignore=tests/test_iam/test_iam.py"
+    "--ignore=tests/test_iam/test_iam_cloudformation.py"
+    "--ignore=tests/test_iam/test_iam_groups.py"
+    "--ignore=tests/test_iam/test_server.py"
+    "--ignore=tests/test_iot/test_server.py"
+    "--ignore=tests/test_iotdata/test_server.py"
+    "--ignore=tests/test_kinesis/test_kinesis.py"
+    "--ignore=tests/test_kinesis/test_kinesis_cloudformation.py"
+    "--ignore=tests/test_kinesis/test_server.py"
+    "--ignore=tests/test_kinesisvideo/test_server.py"
+    "--ignore=tests/test_kinesisvideoarchivedmedia/test_server.py"
+    "--ignore=tests/test_kms/test_kms.py"
+    "--ignore=tests/test_kms/test_server.py"
+    "--ignore=tests/test_kms/test_utils.py"
+    "--ignore=tests/test_logs/test_logs.py"
+    "--ignore=tests/test_polly/test_server.py"
+    "--ignore=tests/test_rds/test_rds.py"
+    "--ignore=tests/test_rds/test_server.py"
+    "--ignore=tests/test_rds2/test_server.py"
+    "--ignore=tests/test_redshift/test_redshift.py"
+    "--ignore=tests/test_redshift/test_server.py"
+    "--ignore=tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py"
+    "--ignore=tests/test_route53/test_route53.py"
+    "--ignore=tests/test_s3/test_s3.py"
+    "--ignore=tests/test_s3/test_s3_cloudformation.py"
+    "--ignore=tests/test_s3/test_s3_lifecycle.py"
+    "--ignore=tests/test_s3/test_s3_storageclass.py"
+    "--ignore=tests/test_s3/test_s3_utils.py"
+    "--ignore=tests/test_s3bucket_path/test_s3bucket_path.py"
+    "--ignore=tests/test_s3bucket_path/test_s3bucket_path_combo.py"
+    "--ignore=tests/test_secretsmanager/test_server.py"
+    "--ignore=tests/test_ses/test_server.py"
+    "--ignore=tests/test_ses/test_ses.py"
+    "--ignore=tests/test_ses/test_ses_boto3.py"
+    "--ignore=tests/test_ses/test_ses_sns_boto3.py"
+    "--ignore=tests/test_sns/test_application.py"
+    "--ignore=tests/test_sns/test_application_boto3.py"
+    "--ignore=tests/test_sns/test_publishing.py"
+    "--ignore=tests/test_sns/test_publishing_boto3.py"
+    "--ignore=tests/test_sns/test_server.py"
+    "--ignore=tests/test_sns/test_subscriptions.py"
+    "--ignore=tests/test_sns/test_subscriptions_boto3.py"
+    "--ignore=tests/test_sns/test_topics.py"
+    "--ignore=tests/test_sns/test_topics_boto3.py"
+    "--ignore=tests/test_sqs/test_server.py"
+    "--ignore=tests/test_sqs/test_sqs.py"
+    "--ignore=tests/test_ssm/test_ssm_boto3.py"
+    "--ignore=tests/test_ssm/test_ssm_docs.py"
+    "--ignore=tests/test_sts/test_server.py"
+    "--ignore=tests/test_sts/test_sts.py"
+    "--ignore=tests/test_swf/models/test_activity_task.py"
+    "--ignore=tests/test_swf/models/test_decision_task.py"
+    "--ignore=tests/test_swf/models/test_timeout.py"
+    "--ignore=tests/test_swf/models/test_workflow_execution.py"
+    "--ignore=tests/test_swf/responses/test_activity_tasks.py"
+    "--ignore=tests/test_swf/responses/test_activity_types.py"
+    "--ignore=tests/test_swf/responses/test_decision_tasks.py"
+    "--ignore=tests/test_swf/responses/test_domains.py"
+    "--ignore=tests/test_swf/responses/test_timeouts.py"
+    "--ignore=tests/test_swf/responses/test_workflow_executions.py"
+    "--ignore=tests/test_swf/responses/test_workflow_types.py"
+  ];
 
-  # Disabling because of 20 failing tests due to https://github.com/spulec/moto/issues/2728
-  # We should enable these as soon as possible again though. Note the issue
-  # is unrelated to the docutils 0.16 bump.
-  doCheck = false;
+  disabledTests = [
+    # these tests rely on the network
+    "test_server"
+    "test_managedblockchain_nodes"
+    "test_swf"
+    "test_simple_instance"
+    "test_passthrough_requests"
+    "test_s3_server_get"
+    "test_s3_server_bucket_create"
+    "test_s3_server_post_to_bucket"
+    "test_s3_server_put_ipv6"
+    "test_s3_server_put_ipv4"
+    "test_http_proxying_integration"
+    "test_submit_job_by_name"
+    "test_submit_job"
+    "test_list_jobs"
+    "test_terminate_job"
+    "test_idtoken_contains_kid_header"
+    "test_latest_meta_data"
+    "test_meta_data_iam"
+    "test_meta_data_security_credentials"
+    "test_meta_data_default_role"
+    "test_reset_api"
+    "test_data_api"
+    "test_requests_to_amazon_subdomains_dont_work"
+    "test_get_records_seq"
+    "test_stream_with_range_key"
+    "test_create_notebook_instance_bad_volume_size"
+  ];
 
   meta = with lib; {
     description = "Allows your tests to easily mock out AWS Services";
diff --git a/nixpkgs/pkgs/development/python-modules/mpi4py/default.nix b/nixpkgs/pkgs/development/python-modules/mpi4py/default.nix
index 058133665f4a..6e8fd896d913 100644
--- a/nixpkgs/pkgs/development/python-modules/mpi4py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mpi4py/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchPypi, python, buildPythonPackage, mpi, openssh }:
+{ lib, fetchPypi, fetchpatch, python, buildPythonPackage, mpi, openssh }:
 
 buildPythonPackage rec {
   pname = "mpi4py";
@@ -9,6 +9,12 @@ buildPythonPackage rec {
     sha256 = "012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f";
   };
 
+  patches = [ (fetchpatch {
+    name = "disable-broken-test"; # upstream patch
+    url = "https://github.com/mpi4py/mpi4py/commit/e13cc3ee59ec6ec2c6ee20e384e1e649d5027e8a.patch";
+    sha256 = "0iwknrhxnfmsqjj8ahpn50c8pcdyv9p3wmcqi1jhr4i5y7lnmvvx";
+  })];
+
   passthru = {
     inherit mpi;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/mplfinance/default.nix b/nixpkgs/pkgs/development/python-modules/mplfinance/default.nix
new file mode 100644
index 000000000000..b1d0bf2b9aa9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mplfinance/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi, matplotlib, pandas }:
+
+buildPythonPackage rec {
+  pname = "mplfinance";
+  version = "0.12.7a7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-pATiprTELt8GrEkeKjILPfpdNDVoex5t+Mc+6Gg7cPY=";
+  };
+
+  propagatedBuildInputs = [ matplotlib pandas ];
+
+  # tests are only included on GitHub where this version misses a tag
+  # and half of them fail
+  doCheck = false;
+
+  pythonImportsCheck = [ "mplfinance" ];
+
+  meta = with lib; {
+    description = "Matplotlib utilities for the visualization, and visual analysis, of financial data";
+    homepage = "https://github.com/matplotlib/mplfinance";
+    license = [ licenses.bsd3 ];
+    maintainers = [ maintainers.ehmry ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mpv/default.nix b/nixpkgs/pkgs/development/python-modules/mpv/default.nix
index 0ff66fa8132e..11d0bed476af 100644
--- a/nixpkgs/pkgs/development/python-modules/mpv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mpv/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "mpv";
-  version = "0.4.7";
+  version = "0.5.2";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "jaseg";
     repo = "python-mpv";
     rev = "v${version}";
-    sha256 = "1gq2ynzbpmc7bv066ddv2f4rnmvfsi7034vhf9ffp7yzbixf6ys8";
+    sha256 = "0ffskpynhl1252h6a05087lvpjgn1cn2z3caiv3i666dn1n79fjd";
   };
 
   buildInputs = [ mpv ];
@@ -28,6 +28,6 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A python interface to the mpv media player";
     homepage = "https://github.com/jaseg/python-mpv";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/msal/default.nix b/nixpkgs/pkgs/development/python-modules/msal/default.nix
index 37266df5f216..3df0527589a1 100644
--- a/nixpkgs/pkgs/development/python-modules/msal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msal/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "msal";
-  version = "1.8.0";
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dcc737ca517df53438bc9a3fae97f17d93d7a93fa1389e6bc44e82eee81ab83";
+    sha256 = "582e92e3b9fa68084dca6ecfd8db866ddc75cd9043de267c79d6b6277dd27f55";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/msldap/default.nix b/nixpkgs/pkgs/development/python-modules/msldap/default.nix
index d068380a7a2f..e9790db9f5eb 100644
--- a/nixpkgs/pkgs/development/python-modules/msldap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msldap/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "msldap";
-  version = "0.3.25";
+  version = "0.3.28";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b5ef61c4f05493cfe78b3f955878a3d0a71950eead5ebb484282f07456a47bea";
+    sha256 = "sha256-0sMi5PpwMWf/W+Hu0akQVF/1ZkbanfOzYDC3R6lZrSE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/msrest/default.nix b/nixpkgs/pkgs/development/python-modules/msrest/default.nix
index 21b93bf5bfe3..acdcf69e301d 100644
--- a/nixpkgs/pkgs/development/python-modules/msrest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msrest/default.nix
@@ -18,7 +18,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.19";
+  version = "0.6.21";
   pname = "msrest";
 
   # no tests in PyPI tarball
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "Azure";
     repo = "msrest-for-python";
     rev = "v${version}";
-    sha256 = "sha256-hcUJrWw5EU0aO5Gyhn5+LmuRQN9Bom59cTz3maQ0jvw=";
+    sha256 = "sha256-IlBwlVQ/v+vJmCWNbFZKGL6a9K09z4AYrPm3kwaA/nI=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mullvad-api/default.nix b/nixpkgs/pkgs/development/python-modules/mullvad-api/default.nix
new file mode 100644
index 000000000000..22e6647b57d2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mullvad-api/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "mullvad-api";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    pname = "mullvad_api";
+    inherit version;
+    sha256 = "0r0hc2d6vky52hxdqxn37w0y42ddh1zal6zz2cvqlxamc53wbiv1";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "mullvad_api" ];
+
+  meta = with lib; {
+    description = "Python client for the Mullvad API";
+    homepage = "https://github.com/meichthys/mullvad-api";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix b/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix
index c2a7eb193377..ca2ffea183b7 100644
--- a/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "murmurhash";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "422084ac1fe994cb7c893689c600923dee4e2c3fc74e832f7d9a8d6fdcc362d5";
+    sha256 = "98ec9d727bd998a35385abd56b062cf0cca216725ea7ec5068604ab566f7e97f";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/mxnet/default.nix b/nixpkgs/pkgs/development/python-modules/mxnet/default.nix
index 2ad3b9fd6df1..47f4d80ad927 100644
--- a/nixpkgs/pkgs/development/python-modules/mxnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mxnet/default.nix
@@ -9,7 +9,7 @@
 }:
 
 buildPythonPackage {
-  inherit (pkgs.mxnet) name version src meta;
+  inherit (pkgs.mxnet) pname version src meta;
 
   buildInputs = [ pkgs.mxnet ];
   propagatedBuildInputs = [ requests numpy graphviz ];
diff --git a/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix b/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix
index 0638ce5d1ee5..35d1c70a23a7 100644
--- a/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "myfitnesspal";
-  version = "1.16.1";
+  version = "1.16.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c2275e91c794a3569a76c47c78cf2ff04d7f569a98558227e899ead7b30af0d6";
+    sha256 = "44b31623fd71fedd891c3f66be3bc1caa6f1caf88076a75236ab74f8807f6ae5";
   };
 
   # Remove overly restrictive version constraints
diff --git a/nixpkgs/pkgs/development/python-modules/myjwt/default.nix b/nixpkgs/pkgs/development/python-modules/myjwt/default.nix
new file mode 100644
index 000000000000..d80e66e07bf0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/myjwt/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, click
+, colorama
+, cryptography
+, exrex
+, pyopenssl
+, pyperclip
+, questionary
+, requests
+, pytestCheckHook
+, pytest-mock
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "myjwt";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "mBouamama";
+    repo = "MyJWT";
+    rev = version;
+    sha256 = "1n3lvdrzp6wbbcygjwa7xar2jnhjnrz7a9khmn2phhkkngxm5rc4";
+  };
+
+  patches = [ ./pinning.patch ];
+
+  propagatedBuildInputs = [
+    click
+    colorama
+    cryptography
+    exrex
+    pyopenssl
+    pyperclip
+    questionary
+    requests
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-mock
+    requests-mock
+  ];
+
+  pythonImportsCheck = [ "myjwt" ];
+
+  meta = with lib; {
+    description = "CLI tool for testing vulnerabilities on Json Web Token(JWT)";
+    homepage = "https://github.com/mBouamama/MyJWT";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+    # Build failures
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/myjwt/pinning.patch b/nixpkgs/pkgs/development/python-modules/myjwt/pinning.patch
new file mode 100644
index 000000000000..abae9d0e2ecb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/myjwt/pinning.patch
@@ -0,0 +1,21 @@
+diff --git a/requirements.txt b/requirements.txt
+index 3017e02..2b465db 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -1,8 +1,8 @@
+-click==7.1.2
+-colorama==0.4.4
+-cryptography==3.3.1
+-exrex==0.10.5
+-pyOpenSSL==20.0.1
+-pyperclip==1.8.1
+-questionary==1.9.0
+-requests==2.25.1
++click
++colorama
++cryptography
++exrex
++pyOpenSSL
++pyperclip
++questionary
++requests
diff --git a/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix b/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
index 69178edb6919..6c6ea7b7b1c9 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
@@ -1,12 +1,14 @@
-{ lib, fetchPypi, buildPythonApplication, protobuf }:
+{ lib, fetchPypi, buildPythonApplication, protobuf, pythonOlder }:
 
 buildPythonApplication rec {
   pname = "mypy-protobuf";
-  version = "1.23";
+  version = "2.4";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cf79c77e828a2de9bdc74b43ad4abd4c2a3a30f0471b46e9b4e01b9877f166fb";
+    sha256 = "77e10c476cdd3ee14535c2357e64deac6b1a69f33eb500d795b064acda48c66f";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/nixpkgs/pkgs/development/python-modules/mypy/default.nix b/nixpkgs/pkgs/development/python-modules/mypy/default.nix
index 4bea992f6ba8..dbbcb30ffcec 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy/default.nix
@@ -1,22 +1,15 @@
-{ lib, stdenv, fetchFromGitHub, buildPythonPackage, typed-ast, psutil, isPy3k
+{ lib, stdenv, fetchPypi, buildPythonPackage, typed-ast, psutil, isPy3k
 , mypy-extensions
 , typing-extensions
-, fetchpatch
 }:
 buildPythonPackage rec {
   pname = "mypy";
-  version = "0.790";
+  version = "0.812";
   disabled = !isPy3k;
 
-  # Fetch 0.790 from GitHub temporarily because mypyc.analysis is missing from
-  # the Pip package (see also https://github.com/python/mypy/issues/9584). It
-  # should be possible to move back to Pypi for the next release.
-  src = fetchFromGitHub {
-    owner = "python";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0zq3lpdf9hphcklk40wz444h8w3dkhwa12mqba5j9lmg11klnhz7";
-    fetchSubmodules = true;
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "069i9qnfanp7dn8df1vspnqb0flvsszzn22v00vj08nzlnd061yd";
   };
 
   propagatedBuildInputs = [ typed-ast psutil mypy-extensions typing-extensions ];
@@ -34,23 +27,6 @@ buildPythonPackage rec {
     "mypyc.analysis"
   ];
 
-  # These three patches are required to make compilation with mypyc work for
-  # 0.790, see also https://github.com/python/mypy/issues/9584.
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/python/mypy/commit/f6522ae646a8d87ce10549f29fcf961dc014f154.patch";
-      sha256 = "0d3jp4d0b7vdc0prk07grhajsy7x3wcynn2xysnszawiww93bfrh";
-    })
-    (fetchpatch {
-      url = "https://github.com/python/mypy/commit/acd603496237a78b109ca9d89991539633cbbb99.patch";
-      sha256 = "0ry1rxpz2ws7zzrmq09pra9dlzxb84zhs8kxwf5xii1k1bgmrljr";
-    })
-    (fetchpatch {
-      url = "https://github.com/python/mypy/commit/81818b23b5d53f31caf3515d6f0b54e3c018d790.patch";
-      sha256 = "002y24kfscywkw4mz9lndsps543j4xhr2kcnfbrqr4i0yxlvdbca";
-    })
-  ];
-
   # Compile mypy with mypyc, which makes mypy about 4 times faster. The compiled
   # version is also the default in the wheels on Pypi that include binaries.
   # is64bit: unfortunately the build would exhaust all possible memory on i686-linux.
diff --git a/nixpkgs/pkgs/development/python-modules/nats-python/default.nix b/nixpkgs/pkgs/development/python-modules/nats-python/default.nix
new file mode 100644
index 000000000000..5bf5b2a6d21c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nats-python/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, poetry-core
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "nats-python";
+  version = "0.8.0";
+  disabled = pythonOlder "3.6";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "Gr1N";
+    repo = "nats-python";
+    rev = version;
+    sha256 = "1j7skyxldir3mphvnsyhjxmf3cimv4h7n5v58jl2gff4yd0hdw7g";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  patches = [
+    # Switch to poetry-core, https://github.com/Gr1N/nats-python/pull/19
+    (fetchpatch {
+      name = "use-poetry-core.patch";
+      url = "https://github.com/Gr1N/nats-python/commit/71b25b324212dccd7fc06ba3914491adba22e83f.patch";
+      sha256 = "1fip1qpzk2ka7qgkrdpdr6vnrnb1p8cwapa51xp0h26nm7yis1gl";
+    })
+  ];
+
+  # Tests require a running NATS server
+  doCheck = false;
+
+  pythonImportsCheck = [ "pynats" ];
+
+  meta = with lib; {
+    description = "Python client for NATS messaging system";
+    homepage = "https://github.com/Gr1N/nats-python";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/natsort/default.nix b/nixpkgs/pkgs/development/python-modules/natsort/default.nix
index e4c42496597e..d475f21fcb51 100644
--- a/nixpkgs/pkgs/development/python-modules/natsort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/natsort/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "natsort";
-  version = "7.1.0";
+  version = "7.1.1";
 
   checkInputs = [
     pytest
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "33f3f1003e2af4b4df20908fe62aa029999d136b966463746942efbfc821add3";
+    sha256 = "00c603a42365830c4722a2eb7663a25919551217ec09a243d3399fa8dd4ac403";
   };
 
   # Does not support Python 2
diff --git a/nixpkgs/pkgs/development/python-modules/nbclassic/default.nix b/nixpkgs/pkgs/development/python-modules/nbclassic/default.nix
new file mode 100644
index 000000000000..3644b4e48dd7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nbclassic/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, notebook
+, pythonOlder
+, jupyter_server
+, pytestCheckHook
+, pytest-tornasync
+}:
+
+buildPythonPackage rec {
+  pname = "nbclassic";
+  version = "0.2.6";
+  disabled = pythonOlder "3.5";
+
+  # tests only on github
+  src = fetchFromGitHub {
+    owner = "jupyterlab";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-stp0LZJAOCrnObvJIPEVt8mMb8yL29nlHECypbTg3ec=";
+  };
+
+  propagatedBuildInputs = [ jupyter_server notebook ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-tornasync
+  ];
+
+  meta = with lib; {
+    description = "Jupyter lab environment notebook server extension.";
+    license = with licenses; [ bsd3 ];
+    homepage = "https://github.com/jupyterlab/nbclassic";
+    maintainers = [ maintainers.elohmeier ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/nbclient/default.nix b/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
index c320415e0754..169b89f7b892 100644
--- a/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "nbclient";
-  version = "0.5.1";
+  version = "0.5.3";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01e2d726d16eaf2cde6db74a87e2451453547e8832d142f73f72fddcd4fe0250";
+    sha256 = "db17271330c68c8c88d46d72349e24c147bb6f34ec82d8481a8f025c4d26589c";
   };
 
   inherit doCheck;
diff --git a/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix b/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix
index 582a6132c259..02eda2beb195 100644
--- a/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix
@@ -30,6 +30,16 @@ buildPythonPackage rec {
     sha256 = "cbbc13a86dfbd4d1b5dee106539de0795b4db156c894c2c5dc382062bbc29002";
   };
 
+  # Add $out/share/jupyter to the list of paths that are used to search for
+  # various exporter templates
+  patches = [
+    ./templates.patch
+  ];
+
+  postPatch = ''
+    substituteAllInPlace ./nbconvert/exporters/templateexporter.py
+  '';
+
   checkInputs = [ pytestCheckHook glibcLocales ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/nbconvert/templates.patch b/nixpkgs/pkgs/development/python-modules/nbconvert/templates.patch
new file mode 100644
index 000000000000..cadaf69a7b84
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nbconvert/templates.patch
@@ -0,0 +1,12 @@
+diff --git a/nbconvert/exporters/templateexporter.py b/nbconvert/exporters/templateexporter.py
+index 0d540eb1..440f6382 100644
+--- a/nbconvert/exporters/templateexporter.py
++++ b/nbconvert/exporters/templateexporter.py
+@@ -616,6 +616,7 @@ class TemplateExporter(Exporter):
+         if DEV_MODE:
+             root_dirs.append(os.path.abspath(os.path.join(ROOT, '..', '..', 'share', 'jupyter')))
+         root_dirs.extend(jupyter_path())
++        root_dirs.append(os.path.join("@out@", "share", "jupyter"))
+         return root_dirs
+ 
+     def _init_resources(self, resources):
diff --git a/nixpkgs/pkgs/development/python-modules/nbdime/default.nix b/nixpkgs/pkgs/development/python-modules/nbdime/default.nix
index 299cfc87024c..66e1edd93908 100644
--- a/nixpkgs/pkgs/development/python-modules/nbdime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbdime/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, callPackage, isPy3k
+{ lib, buildPythonPackage, fetchPypi, isPy3k
 , hypothesis
 , setuptools_scm
 , six
@@ -49,7 +49,7 @@ buildPythonPackage rec {
     "test_filter_cmd_invalid_filter"
     "test_inline_merge"
     "test_interrogate_filter_no_repo"
-    "test_merge_input_strategy_inline_source_conflict"
+    "test_merge"
   ];
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/nbformat/default.nix b/nixpkgs/pkgs/development/python-modules/nbformat/default.nix
index 3bd119179a45..a3143780e1c7 100644
--- a/nixpkgs/pkgs/development/python-modules/nbformat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbformat/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "nbformat";
-  version = "5.0.8";
+  version = "5.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f545b22138865bfbcc6b1ffe89ed5a2b8e2dc5d4fe876f2ca60d8e6f702a30f8";
+    sha256 = "sha256-HSI+ZKGL+nzfLbLpuoqBgxL8KgcB0ukQtY32aAk4WlY=";
   };
 
   LC_ALL="en_US.utf8";
diff --git a/nixpkgs/pkgs/development/python-modules/nbsmoke/default.nix b/nixpkgs/pkgs/development/python-modules/nbsmoke/default.nix
index b7ddf35caec6..86c5afd8c4a7 100644
--- a/nixpkgs/pkgs/development/python-modules/nbsmoke/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbsmoke/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   # tests not included with pypi release
   doCheck = false;
+  pythonImportsCheck = [ "nbsmoke" ];
 
   meta = with lib; {
     description = "Basic notebook checks and linting";
diff --git a/nixpkgs/pkgs/development/python-modules/nbsphinx/default.nix b/nixpkgs/pkgs/development/python-modules/nbsphinx/default.nix
index 979b357607e5..2622b815f1ee 100644
--- a/nixpkgs/pkgs/development/python-modules/nbsphinx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbsphinx/default.nix
@@ -7,7 +7,6 @@
 , nbformat
 , sphinx
 , traitlets
-, python
 , isPy3k
 }:
 
diff --git a/nixpkgs/pkgs/development/python-modules/ndjson/default.nix b/nixpkgs/pkgs/development/python-modules/ndjson/default.nix
index 175b04d31074..b69e8401eb51 100644
--- a/nixpkgs/pkgs/development/python-modules/ndjson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ndjson/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, wheel, watchdog, flake8
+{ lib, buildPythonPackage, fetchPypi, watchdog, flake8
 , pytest, pytestrunner, coverage, sphinx, twine }:
 
 buildPythonPackage rec {
@@ -16,6 +16,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/rhgrant10/ndjson";
     description = "JsonDecoder";
     platforms = platforms.unix;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ freezeboy ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix b/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix
index 60f7dbe6c239..35e5e063bb7c 100644
--- a/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix
@@ -3,13 +3,13 @@
 }:
 buildPythonPackage rec {
   pname = "netCDF4";
-  version = "1.5.5.1";
+  version = "1.5.6";
 
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d957e55a667d1fc651ddef22fea10ded0f142b7d9dbbf4d08c0012d32f445abd";
+    sha256 = "7577f4656af8431b2fa6b6797acb45f81fa1890120e9123b3645e14765da5a7c";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/netdata/default.nix b/nixpkgs/pkgs/development/python-modules/netdata/default.nix
index f4e625b12b4e..3b1ccbb73f70 100644
--- a/nixpkgs/pkgs/development/python-modules/netdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netdata/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "netdata";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14kyjp1q3clizs1bqx4rp31d2awjmi5v65z8sarr2ycgwqqmkrzw";
+    sha256 = "sha256-oGOT4RvftI/2Ri2icM/AtglNZXt10jkFh/rlr6A46YE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/nodepy-runtime/default.nix b/nixpkgs/pkgs/development/python-modules/nodepy-runtime/default.nix
new file mode 100644
index 000000000000..5be806e4cefe
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nodepy-runtime/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, localimport
+, pathlib2
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "nodepy-runtime";
+  version = "2.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-6tSsD76EpCZxkdulv1BcUZtIXGWLG6PuII25J8STygE=";
+  };
+
+  propagatedBuildInputs = [
+    localimport
+    pathlib2
+    six
+  ];
+
+  pythonImportsCheck = [
+    "nodepy"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/nodepy/nodepy";
+    description = "Runtime for Python inspired by Node.JS";
+    longDescription = ''
+      Node.py is a Python runtime and package manager compatible with CPython
+      2.7 and 3.3 – 3.6. It provides a separate import mechanism for modules
+      inspired by Node.js, bringing dependency management and ease of deployment
+      for Python applications up to par with other languages without virtual
+      environments.
+
+      Node.py comes with a built-in package manager that builds on Pip for
+      standard Python dependencies but also adds the capability to install
+      packages that are specifically developed for Node.py. To install the
+      dependencies of the package manager you must specify the [pm] install
+      extra.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/nose-timer/default.nix b/nixpkgs/pkgs/development/python-modules/nose-timer/default.nix
index c93f5bda9838..bbc164c85e2b 100644
--- a/nixpkgs/pkgs/development/python-modules/nose-timer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose-timer/default.nix
@@ -1,20 +1,44 @@
-{ buildPythonPackage, fetchPypi, lib, nose, }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, mock
+, parameterized
+, termcolor
+}:
 
 buildPythonPackage rec {
   pname = "nose-timer";
-  version = "1.0.0";
+  version = "1.0.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "09hwjwbczi06bfqgiylb2yxs5h88jdl26zi1fdqxdzvamrkksf2c";
+  src = fetchFromGitHub {
+    owner = "mahmoudimus";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0xsai2l5i1av62y9y0q63wy2zk27klmf2jizgghhxg2y8nfa8x3x";
   };
 
   propagatedBuildInputs = [ nose ];
 
+  checkInputs = [
+    mock
+    nose
+    parameterized
+    termcolor
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    nosetests --verbosity 2 tests
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [ "nosetimer" ];
+
   meta = with lib; {
+    description = "A timer plugin for nosetests";
     homepage = "https://github.com/mahmoudimus/nose-timer";
     license = licenses.mit;
-    description = "A timer plugin for nosetests (how much time does every test take?)";
     maintainers = with maintainers; [ doronbehar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/notebook/default.nix b/nixpkgs/pkgs/development/python-modules/notebook/default.nix
index bab3aa590ec6..bfc5d8c60c1a 100644
--- a/nixpkgs/pkgs/development/python-modules/notebook/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notebook/default.nix
@@ -12,7 +12,6 @@
 , tornado
 , ipython_genutils
 , traitlets
-, jupyter
 , jupyter_core
 , jupyter_client
 , nbformat
@@ -28,12 +27,12 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "6.1.5";
+  version = "6.2.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3db37ae834c5f3b6378381229d0e5dfcbfb558d08c8ce646b1ad355147f5e91d";
+    sha256 = "0464b28e18e7a06cec37e6177546c2322739be07962dd13bf712bcb88361f013";
   };
 
   LC_ALL = "en_US.utf8";
diff --git a/nixpkgs/pkgs/development/python-modules/notify/default.nix b/nixpkgs/pkgs/development/python-modules/notify/default.nix
index 1a60cf70d2d2..8aa70b43e665 100644
--- a/nixpkgs/pkgs/development/python-modules/notify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notify/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
       configure
   '';
 
-  nativeBuildInputs = [ pkgs.pkgconfig ];
+  nativeBuildInputs = [ pkgs.pkg-config ];
   buildInputs = [ python pygobject2 pygtk pkgs.libnotify pkgs.glib pkgs.gtk2 pkgs.dbus-glib ];
 
   postInstall = "cd $out/lib/python*/site-packages && ln -s gtk-*/pynotify .";
diff --git a/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix b/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
index a85bd0f8fc37..dc7ba5d8b681 100644
--- a/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
+, poetry-core
 , textfsm
 , pytestCheckHook
 , ruamel_yaml
@@ -10,22 +11,36 @@
 
 buildPythonPackage rec {
   pname = "ntc-templates";
-  version = "1.6.0";
+  version = "2.0.0";
+  format = "pyproject";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "networktocode";
     repo = pname;
-    rev = "dc27599b0c5f3bb6ff23049e781b5dab2849c2c3";  # not tagged
-    sha256 = "1vg5y5c51vc9dj3b8qcffh6dz85ri11zb1azxmyvgbq86pcvbx9f";
+    rev = "v${version}";
+    sha256 = "05ifbzps9jxrrkrqybsdbm67jhynfcjc298pqkhp21q5jwnlrl72";
   };
 
-  propagatedBuildInputs = [ textfsm ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
-  checkInputs = [ pytestCheckHook ruamel_yaml yamllint ];
+  propagatedBuildInputs = [
+    textfsm
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    ruamel_yaml
+    yamllint
+  ];
 
   # https://github.com/networktocode/ntc-templates/issues/743
-  disabledTests = [ "test_raw_data_against_mock" "test_verify_parsed_and_reference_data_exists" ];
+  disabledTests = [
+    "test_raw_data_against_mock"
+    "test_verify_parsed_and_reference_data_exists"
+  ];
 
   meta = with lib; {
     description = "TextFSM templates for parsing show commands of network devices";
diff --git a/nixpkgs/pkgs/development/python-modules/ntlm-auth/default.nix b/nixpkgs/pkgs/development/python-modules/ntlm-auth/default.nix
index 080734bd25e8..d56fccde051d 100644
--- a/nixpkgs/pkgs/development/python-modules/ntlm-auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ntlm-auth/default.nix
@@ -1,10 +1,10 @@
 { lib
 , buildPythonPackage
+, cryptography
 , fetchFromGitHub
 , mock
-, pytest
+, pytestCheckHook
 , requests
-, unittest2
 , six
 }:
 
@@ -19,13 +19,18 @@ buildPythonPackage rec {
     sha256 = "00dpf5bfsy07frsjihv1k10zmwcyq4bvkilbxha7h6nlwpcm2409";
   };
 
-  checkInputs = [ mock pytest requests unittest2 ];
-  propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [
+    cryptography
+    six
+  ];
 
-  # Functional tests require networking
-  checkPhase = ''
-    py.test --ignore=tests/functional/test_iis.py
-  '';
+  checkInputs = [
+    mock
+    pytestCheckHook
+    requests
+  ];
+
+  pythonImportsCheck = [ "ntlm_auth" ];
 
   meta = with lib; {
     description = "Calculates NTLM Authentication codes";
diff --git a/nixpkgs/pkgs/development/python-modules/numba/default.nix b/nixpkgs/pkgs/development/python-modules/numba/default.nix
index aa08ead2d971..48ed52499c5e 100644
--- a/nixpkgs/pkgs/development/python-modules/numba/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numba/default.nix
@@ -1,34 +1,31 @@
 { lib
 , stdenv
+, pythonAtLeast
 , pythonOlder
 , fetchPypi
 , python
 , buildPythonPackage
-, isPy27
-, isPy3k
 , numpy
 , llvmlite
-, funcsigs
-, singledispatch
+, setuptools
 , libcxx
 }:
 
 buildPythonPackage rec {
-  version = "0.51.2";
+  version = "0.52.0";
   pname = "numba";
-  # uses f-strings
-  disabled = pythonOlder "3.6";
+  # uses f-strings, python 3.9 is not yet supported
+  disabled = pythonOlder "3.6" || pythonAtLeast "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16bd59572114adbf5f600ea383880d7b2071ae45477e84a24994e089ea390768";
+    sha256 = "44661c5bd85e3d3619be0a40eedee34e397e9ccb3d4c458b70e10bf95d1ce933";
   };
 
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
 
-  propagatedBuildInputs = [numpy llvmlite]
-    ++ lib.optionals isPy27 [ funcsigs singledispatch];
-
+  propagatedBuildInputs = [ numpy llvmlite setuptools ];
+  pythonImportsCheck = [ "numba" ];
   # Copy test script into $out and run the test suite.
   checkPhase = ''
     ${python.interpreter} -m numba.runtests
diff --git a/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix b/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix
index 3857e80bbd39..89471207c944 100644
--- a/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "numcodecs";
-  version = "0.7.2";
+  version = "0.7.3";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4a038064d5604e6181a64db668d7b700d9ae87e4041984c04cbf0042469664b0";
+    sha256 = "022b12ad83eb623ec53f154859d49f6ec43b15c36052fa864eaf2d9ee786dd85";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/numpy-stl/default.nix b/nixpkgs/pkgs/development/python-modules/numpy-stl/default.nix
index cb43084556e8..2176b5f94979 100644
--- a/nixpkgs/pkgs/development/python-modules/numpy-stl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numpy-stl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "numpy-stl";
-  version = "2.13.0";
+  version = "2.15.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "648386e6cdad3218adc4e3e6a349bee41c55a61980dace616c05d6a31e8c652d";
+    sha256 = "f57fdb3c0e420f729dbe54ec3add9bdbbd19b62183aa8f4576e00e5834b2ef52";
   };
 
   checkInputs = [ pytest pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/numpy/default.nix b/nixpkgs/pkgs/development/python-modules/numpy/default.nix
index 51eeab3177e2..ed6f80b34a69 100644
--- a/nixpkgs/pkgs/development/python-modules/numpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numpy/default.nix
@@ -4,15 +4,15 @@
 , buildPythonPackage
 , gfortran
 , hypothesis
-, pytest_5
+, pytest
 , blas
 , lapack
 , writeTextFile
 , isPyPy
 , cython
 , setuptoolsBuildHook
-, fetchpatch
- }:
+, pythonOlder
+}:
 
 assert (!blas.isILP64) && (!lapack.isILP64);
 
@@ -40,31 +40,26 @@ let
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.19.4";
+  version = "1.20.1";
   format = "pyproject.toml";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512";
+    sha256 = "02m6sms6wb4flfg8y4h0msan4y7w7qgfqxhdk21lcabhm2339iiv";
   };
 
-  nativeBuildInputs = [ gfortran cython setuptoolsBuildHook ];
-  buildInputs = [ blas lapack ];
-
-  patches = [
-    # For compatibility with newer pytest
-    (fetchpatch {
-      url = "https://github.com/numpy/numpy/commit/ba315034759fbf91c61bb55390edc86e7b2627f3.patch";
-      sha256 = "F2P5q61CyhqsZfwkLmxb7A9YdE+43FXLbQkSjop2rVY=";
-    })
-  ] ++ lib.optionals python.hasDistutilsCxxPatch [
+  patches = lib.optionals python.hasDistutilsCxxPatch [
     # We patch cpython/distutils to fix https://bugs.python.org/issue1222585
     # Patching of numpy.distutils is needed to prevent it from undoing the
     # patch to distutils.
     ./numpy-distutils-C++.patch
   ];
 
+  nativeBuildInputs = [ gfortran cython setuptoolsBuildHook ];
+  buildInputs = [ blas lapack ];
+
   # we default openblas to build with 64 threads
   # if a machine has more than 64 threads, it will segfault
   # see https://github.com/xianyi/OpenBLAS/issues/2993
@@ -83,7 +78,7 @@ in buildPythonPackage rec {
   doCheck = !isPyPy; # numpy 1.16+ hits a bug in pypy's ctypes, using either numpy or pypy HEAD fixes this (https://github.com/numpy/numpy/issues/13807)
 
   checkInputs = [
-    pytest_5 # pytest 6 will error: "module is already imported: hypothesis"
+    pytest
     hypothesis
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/numtraits/default.nix b/nixpkgs/pkgs/development/python-modules/numtraits/default.nix
deleted file mode 100644
index 624f32fd337b..000000000000
--- a/nixpkgs/pkgs/development/python-modules/numtraits/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, six
-, numpy
-, traitlets
-}:
-
-buildPythonPackage rec {
-  pname = "numtraits";
-  version = "0.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "2fca9a6c9334f7358ef1a3e2e64ccaa6a479fc99fc096910e0d5fbe8edcdfd7e";
-  };
-
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ six numpy traitlets];
-
-  checkPhase = ''
-    py.test
-  '';
-
-  meta = {
-    description = "Numerical traits for Python objects";
-    license = lib.licenses.bsd2;
-    maintainers = with lib.maintainers; [ fridh ];
-    homepage = "https://github.com/astrofrog/numtraits";
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/nunavut/default.nix b/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
index 63b5214b27ba..df831ab6b535 100644
--- a/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
@@ -7,12 +7,12 @@
 
  buildPythonPackage rec {
   pname = "nunavut";
-  version = "1.0.1";
+  version = "1.0.2";
   disabled = pythonOlder "3.5"; # only python>=3.5 is supported
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1gvs3fx2l15y5ffqsxxjfa4p1ydaqbq7qp5nsgb8jbz871358jxm";
+    sha256 = "c6fe0a1b92c44bb64b2427f944fee663fe1aaf3d4d4080d04ad9c212b40a8763";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix b/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
index 17537be82b49..b3fd0384ef48 100644
--- a/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
@@ -1,9 +1,11 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , pythonOlder
 , pytestCheckHook
 , setuptools
+, packaging
 , toml
 , structlog
 , appdirs
@@ -19,18 +21,26 @@
 
 buildPythonPackage rec {
   pname = "nvchecker";
-  version = "2.2";
+  version = "2.3";
 
   # Tests not included in PyPI tarball
   src = fetchFromGitHub {
     owner = "lilydjwg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0b17pikqyxcsid69lwnjl44n8z46ydjmxxdnbzasfdl7r83l7ijr";
+    sha256 = "0ikqjlw6v7va69i8qskj1lf07ik84q4n3qgsb7khk520gv2ks3sx";
   };
 
+  patches = [
+    # Fix test that fail in sandbox build. See https://github.com/lilydjwg/nvchecker/pull/179
+    (fetchpatch {
+      url = "https://github.com/lilydjwg/nvchecker/commit/7366d82bfc3dcf231f7908e259bf2437cf7dafd5.patch";
+      sha256 = "0pwrwa2wyy4i668lk2mqzzy6y3xi08mq3w520b4954kfm07g75a9";
+    })
+  ];
+
   nativeBuildInputs = [ installShellFiles docutils ];
-  propagatedBuildInputs = [ setuptools toml structlog appdirs tornado pycurl aiohttp ];
+  propagatedBuildInputs = [ setuptools packaging toml structlog appdirs tornado pycurl aiohttp ];
   checkInputs = [ pytestCheckHook pytest-asyncio flaky pytest-httpbin ];
 
   disabled = pythonOlder "3.7";
diff --git a/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix b/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
index 2394e32403f9..839582e87f0d 100644
--- a/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
@@ -1,41 +1,42 @@
 { lib
 , buildPythonPackage
+, pythonOlder
+, fetchPypi
+, google-api-python-client
+, google-auth-oauthlib
 , jupyterhub
-, globus-sdk
 , mwoauth
-, codecov
-, flake8
 , pyjwt
-, pytest
-, pytestcov
-, pytest-tornado
+, pytest-asyncio
+, pytestCheckHook
 , requests-mock
-, pythonOlder
-, fetchPypi
 }:
 
 buildPythonPackage rec {
   pname = "oauthenticator";
-  version = "0.12.3";
+  version = "0.13.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f86e18e954ae37796ee149fe01ab0be0707d9e0415d62336ba3447e7b4383461";
+    sha256 = "5202adcd96ddbbccbc267da02f2d14e977300c81291aaa77be4fd9f2e27cfa37";
   };
 
-  checkPhase = ''
-    py.test oauthenticator/tests
-  '';
-
-  # No tests in archive
-  doCheck = false;
-
-  checkInputs = [  globus-sdk mwoauth codecov flake8 pytest
-    pytestcov pytest-tornado requests-mock pyjwt ];
-
-  propagatedBuildInputs = [ jupyterhub ];
-
-  disabled = pythonOlder "3.4";
+  propagatedBuildInputs = [
+    jupyterhub
+  ];
+
+  pytestFlagsArray = [ "oauthenticator/tests" ];
+
+  checkInputs = [
+    google-api-python-client
+    google-auth-oauthlib
+    mwoauth
+    pyjwt
+    pytest-asyncio
+    pytestCheckHook
+    requests-mock
+  ];
 
   meta = with lib; {
     description = "Authenticate JupyterHub users with common OAuth providers, including GitHub, Bitbucket, and more.";
diff --git a/nixpkgs/pkgs/development/python-modules/objgraph/default.nix b/nixpkgs/pkgs/development/python-modules/objgraph/default.nix
index c79b11252be0..0d2da52f015c 100644
--- a/nixpkgs/pkgs/development/python-modules/objgraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/objgraph/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , isPyPy
 , substituteAll
-, graphvizPkg
+, graphvizPkgs
 , graphviz
 , mock
 }:
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   patches = [
     (substituteAll {
       src = ./hardcode-graphviz-path.patch;
-      graphviz = graphvizPkg;
+      graphviz = graphvizPkgs;
     })
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/onnx/default.nix b/nixpkgs/pkgs/development/python-modules/onnx/default.nix
index 278d7c1df046..90683a84f46a 100644
--- a/nixpkgs/pkgs/development/python-modules/onnx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/onnx/default.nix
@@ -1,5 +1,4 @@
 { lib
-, fetchpatch
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -18,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "onnx";
-  version = "1.8.0";
+  version = "1.8.1";
 
   # Due to Protobuf packaging issues this build of Onnx with Python 2 gives
   # errors on import.
@@ -27,7 +26,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5f787fd3ce1290e12da335237b3b921152157e51aa09080b65631b3ce3fcc50c";
+    sha256 = "9d65c52009a90499f8c25fdfe5acda3ac88efe0788eb1d5f2575a989277145fb";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -47,7 +46,8 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    patchShebangs tools/protoc-gen-mypy.py
+    chmod +x tools/protoc-gen-mypy.sh.in
+    patchShebangs tools/protoc-gen-mypy.sh.in tools/protoc-gen-mypy.py
   '';
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/development/python-modules/openhomedevice/default.nix b/nixpkgs/pkgs/development/python-modules/openhomedevice/default.nix
new file mode 100644
index 000000000000..625980b3b9db
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/openhomedevice/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, async-upnp-client
+, buildPythonPackage
+, fetchFromGitHub
+, lxml
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "openhomedevice";
+  version = "1.0.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "bazwilliams";
+    repo = pname;
+    rev = version;
+    sha256 = "04qdlyzc8xsk7qxyn9l59pbwnlw49zknw0r5lqwx402va12g4ra0";
+  };
+
+  propagatedBuildInputs = [
+    async-upnp-client
+    lxml
+  ];
+
+  # Tests are currently outdated
+  # https://github.com/bazwilliams/openhomedevice/issues/20
+  doCheck = false;
+  pythonImportsCheck = [ "openhomedevice" ];
+
+  meta = with lib; {
+    description = "Python module to access Linn Ds and Openhome devices";
+    homepage = "https://github.com/bazwilliams/openhomedevice";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/openpyxl/default.nix b/nixpkgs/pkgs/development/python-modules/openpyxl/default.nix
index 5a7d2a6425b0..48941c808161 100644
--- a/nixpkgs/pkgs/development/python-modules/openpyxl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openpyxl/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "openpyxl";
-  version = "3.0.5";
+  version = "3.0.6";
   disabled = isPy27; # 2.6.4 was final python2 release
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18e11f9a650128a12580a58e3daba14e00a11d9e907c554a17ea016bf1a2c71b";
+    sha256 = "b229112b46e158b910a5d1b270b212c42773d39cab24e8db527f775b82afc041";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/openrazer/common.nix b/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
index 2ed723944dda..35655b207a59 100644
--- a/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
+++ b/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
@@ -1,12 +1,12 @@
 { lib
 , fetchFromGitHub
 }: rec {
-  version = "2.9.0";
+  version = "3.0.0";
   src = fetchFromGitHub {
     owner = "openrazer";
     repo = "openrazer";
     rev = "v${version}";
-    sha256 = "1js7hq7zx5kj99brffrfaaah283ydkffmmrzsxv4mkd3nnd6rykk";
+    sha256 = "sha256-gw6Qt9BntPcF3zw19PXftDbhoCeBr8hwrujy51rb5Fc=";
   };
   meta = with lib; {
     homepage = "https://openrazer.github.io/";
diff --git a/nixpkgs/pkgs/development/python-modules/openrouteservice/default.nix b/nixpkgs/pkgs/development/python-modules/openrouteservice/default.nix
index c35405f417b2..cae450a9af33 100644
--- a/nixpkgs/pkgs/development/python-modules/openrouteservice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openrouteservice/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "openrouteservice";
-  version = "2.3.0";
+  version = "2.3.3";
 
   src = fetchFromGitHub {
     owner = "GIScience";
     repo = "${pname}-py";
     rev = "v${version}";
-    sha256 = "ySXzOQI9NcF1W/otbL7i3AY628/74ZkJjDMQ9ywVEPc=";
+    sha256 = "1d5qbygb81fhpwfdm1a118r3xv45xz9n9avfkgxkvw1n8y6ywz2q";
   };
 
   checkInputs = [ pytestCheckHook responses ];
diff --git a/nixpkgs/pkgs/development/python-modules/opensensemap-api/default.nix b/nixpkgs/pkgs/development/python-modules/opensensemap-api/default.nix
index d9f4cb6b1add..8311cb6c57e1 100644
--- a/nixpkgs/pkgs/development/python-modules/opensensemap-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opensensemap-api/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "opensensemap-api";
-  version = "0.1.5";
+  version = "0.1.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f3iqwl8ynvrkdd961v2hjsbldwbr217pv5pay2m5f0m974bhblx";
+    sha256 = "sha256-e60aVIoKFqo++WJHUYGutugkjB8YgyNQgJbILgAyOOY=";
   };
 
   propagatedBuildInputs = [
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 2e7666d3ab0b..7b806ecebe23 100644
--- a/nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
@@ -1,33 +1,39 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{ lib
+, buildPythonPackage
 , click
-, requests
+, fetchPypi
 , packaging
+, pytestCheckHook
+, requests
 }:
 
-with lib;
-
 buildPythonPackage rec {
   pname = "openwrt-luci-rpc";
-  version = "1.1.7";
+  version = "1.1.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8074c1ed24cdd1fadc5a99bd63d9313a0a44703714473ed781ed11e7fb45c96f";
+    sha256 = "sha256-DkitN+mwCZ14QEn2fTOqUrQTtoncR1ifP3WDSQ6qkkk=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "requests==2.21.0" "requests"
-    substituteInPlace setup.py --replace "packaging==19.1" "packaging"
-  '';
+  propagatedBuildInputs = [
+    click
+    requests
+    packaging
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  propagatedBuildInputs = [ click requests packaging ];
+  pythonImportsCheck = [ "openwrt_luci_rpc" ];
 
-  meta = {
-    description = ''
-      Python3 module for interacting with the OpenWrt Luci RPC interface.
-      Supports 15.X & 17.X & 18.X or newer releases of OpenWrt.
+  meta = with lib; {
+    description = "Python module for interacting with the OpenWrt Luci RPC interface";
+    longDescription = ''
+      This module allows you to use the Luci RPC interface to fetch connected devices
+      on your OpenWrt based router. Supports 15.X & 17.X & 18.X or newer releases of
+      OpenWrt.
     '';
     homepage = "https://github.com/fbradyirl/openwrt-luci-rpc";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/openwrt-ubus-rpc/default.nix b/nixpkgs/pkgs/development/python-modules/openwrt-ubus-rpc/default.nix
new file mode 100644
index 000000000000..14d0909e658e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/openwrt-ubus-rpc/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "openwrt-ubus-rpc";
+  version = "0.0.3";
+
+  src = fetchFromGitHub {
+    owner = "Noltari";
+    repo = "python-ubus-rpc";
+    rev = version;
+    sha256 = "19scncc1w9ar3pw4yrw24akjgm74n2m7y308hzl1i360daf5p21k";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    urllib3
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "openwrt.ubus" ];
+
+  meta = with lib; {
+    description = "Python API for OpenWrt ubus RPC";
+    homepage = "https://github.com/Noltari/python-ubus-rpc";
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/osmnx/default.nix b/nixpkgs/pkgs/development/python-modules/osmnx/default.nix
index e1c22ddbfa3c..3cd420c7491f 100755
--- a/nixpkgs/pkgs/development/python-modules/osmnx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osmnx/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub, geopandas, descartes, matplotlib, networkx, numpy
-, pandas, requests, Rtree, shapely, pytest, coverage, coveralls, folium, scikitlearn, scipy}:
+, pandas, requests, Rtree, shapely, folium, scikitlearn, scipy}:
 
 buildPythonPackage rec {
   pname = "osmnx";
@@ -14,14 +14,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ geopandas descartes matplotlib networkx numpy pandas requests Rtree shapely folium scikitlearn scipy ];
 
-  checkInputs = [ coverage pytest coveralls ];
-  #Fails when using sandboxing as it requires internet connection, works fine without it
+  # requires network
   doCheck = false;
-
-  #Check phase for the record
-  #checkPhase = ''
-  #  coverage run --source osmnx -m pytest --verbose
-  #'';
+  pythonImportsCheck = [ "osmnx" ];
 
   meta = with lib; {
     description = "A package to easily download, construct, project, visualize, and analyze complex street networks from OpenStreetMap with NetworkX.";
diff --git a/nixpkgs/pkgs/development/python-modules/osmpythontools/default.nix b/nixpkgs/pkgs/development/python-modules/osmpythontools/default.nix
index ccb15aec01b3..3cb0bc49e724 100644
--- a/nixpkgs/pkgs/development/python-modules/osmpythontools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osmpythontools/default.nix
@@ -13,15 +13,17 @@
 
 buildPythonPackage rec {
   pname = "osmpythontools";
-  version = "0.2.9";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "mocnik-science";
     repo = "osm-python-tools";
     rev = "v${version}";
-    sha256 = "1qpj03fgn8rmrg9a9vk7bw32k9hdy15g5p2q3a6q52ykpb78jdz5";
+    sha256 = "0r72z7f7kmvvbd9zvgci8rwmfj85xj34mb3x5dj3jcv5ij5j72yh";
   };
 
+  # Upstream setup.py has test dependencies in `install_requires` argument.
+  # Remove them, as we don't run the tests.
   patches = [ ./remove-test-only-dependencies.patch ];
 
   propagatedBuildInputs = [
@@ -55,7 +57,7 @@ buildPythonPackage rec {
       Nominatim, and the OpenStreetMap editing API.
     '';
     homepage = "https://github.com/mocnik-science/osm-python-tools";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ das-g ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ovito/default.nix b/nixpkgs/pkgs/development/python-modules/ovito/default.nix
deleted file mode 100644
index a33e5d19b44e..000000000000
--- a/nixpkgs/pkgs/development/python-modules/ovito/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib, stdenv
-, fetchFromGitLab
-, cmake
-, ffmpeg
-, netcdf
-, qscintilla
-, zlib
-, boost
-, git
-, fftw
-, hdf5
-, libssh
-, qt5
-, python
-}:
-
-stdenv.mkDerivation rec {
-  version = "3.3.5";
-  pname = "ovito";
-
-  src = fetchFromGitLab {
-    owner = "stuko";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "2tptLK0RU0afSFFE7uzL8bZ5j+nyRyh97ujJAHFh0wQ=";
-  };
-
-  nativeBuildInputs = [ cmake git ];
-  buildInputs = [ ffmpeg netcdf qscintilla zlib boost zlib fftw hdf5 libssh qt5.qtbase qt5.qtsvg ];
-
-  propagatedBuildInputs = with python.pkgs; [ sphinx numpy sip pyqt5 matplotlib ase ];
-
-  meta = with lib; {
-    description = "Scientific visualization and analysis software for atomistic simulation data";
-    homepage = "https://www.ovito.org";
-    license = with licenses; [ gpl3Only mit ];
-    maintainers = with maintainers; [ costrouc ];
-    # ensures not built on hydra
-    # https://github.com/NixOS/nixpkgs/pull/46846#issuecomment-436388048
-    hydraPlatforms = [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/packageurl-python/default.nix b/nixpkgs/pkgs/development/python-modules/packageurl-python/default.nix
new file mode 100644
index 000000000000..afca46ec8a80
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/packageurl-python/default.nix
@@ -0,0 +1,22 @@
+{ buildPythonPackage, fetchPypi, lib, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "packageurl-python";
+  version = "0.9.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mpvj8imsaqhrgfq1cxx16flc5201y78kqa7bh2i5zxsc29843mx";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "packageurl" ];
+
+  meta = with lib; {
+    description = "Python parser and builder for package URLs";
+    homepage = "https://github.com/package-url/packageurl-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ armijnhemel ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/packaging/default.nix b/nixpkgs/pkgs/development/python-modules/packaging/default.nix
index 689c2e4516d7..a261c8c1e268 100644
--- a/nixpkgs/pkgs/development/python-modules/packaging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/packaging/default.nix
@@ -5,21 +5,21 @@
 , six
 , pytestCheckHook
 , pretend
-, flit-core
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "packaging";
-  version = "20.7";
+  version = "20.8";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "Ba87uF0yA3fbKBzyVKsFDhp+vL9UEGhamkB+GKH4EjY=";
+    sha256 = "sha256-eFmBhacAikcNZFJqgFnemqpEkjjygPyetrE7psQQkJM=";
   };
 
   nativeBuildInputs = [
-    flit-core
+    setuptools
   ];
 
   propagatedBuildInputs = [ pyparsing six ];
@@ -29,10 +29,6 @@ buildPythonPackage rec {
     pretend
   ];
 
-  checkPhase = ''
-    py.test tests
-  '';
-
   # Prevent circular dependency
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/pandas-datareader/default.nix b/nixpkgs/pkgs/development/python-modules/pandas-datareader/default.nix
index ea0ba44e99da..d4aa1551bedc 100644
--- a/nixpkgs/pkgs/development/python-modules/pandas-datareader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandas-datareader/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
 , isPy27
 , pandas
 , lxml
diff --git a/nixpkgs/pkgs/development/python-modules/pandas/default.nix b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
index ab70a7782adf..7fd551e192c9 100644
--- a/nixpkgs/pkgs/development/python-modules/pandas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -8,36 +9,41 @@
 , cython
 , dateutil
 , html5lib
+, jinja2
 , lxml
 , numexpr
 , openpyxl
 , pytz
-, sqlalchemy
 , scipy
+, sqlalchemy
 , tables
 , xlrd
 , xlwt
-# Test Inputs
+# Test inputs
 , glibcLocales
 , hypothesis
-, moto
 , pytestCheckHook
+, pytest-xdist
+, pytest-asyncio
+, XlsxWriter
 # Darwin inputs
 , runtimeShell
-, libcxx ? null
+, libcxx
 }:
 
 buildPythonPackage rec {
   pname = "pandas";
-  version = "1.1.5";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06vhk75hmzgv1sfbjzgnsw9x10h7y6bd6s6z7d6lfnn7wcgc83zi";
+    sha256 = "078b4nncn6778ymmqn80j2q6n7fcs4d6bbaraar5nypgbaw10vyz";
   };
 
   nativeBuildInputs = [ cython ];
+
   buildInputs = lib.optional stdenv.isDarwin libcxx;
+
   propagatedBuildInputs = [
     beautifulsoup4
     bottleneck
@@ -54,9 +60,17 @@ buildPythonPackage rec {
     xlwt
   ];
 
-  checkInputs = [ pytestCheckHook glibcLocales moto hypothesis ];
+  checkInputs = [
+    glibcLocales
+    hypothesis
+    jinja2
+    pytest-asyncio
+    pytest-xdist
+    pytestCheckHook
+    XlsxWriter
+  ];
 
-  # doesn't work with -Werror,-Wunused-command-line-argument
+  # Doesn't work with -Werror,-Wunused-command-line-argument
   # https://github.com/NixOS/nixpkgs/issues/39687
   hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
 
@@ -70,52 +84,33 @@ buildPythonPackage rec {
                 "['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
   '';
 
-  # Parallel Cythonization is broken in Python 3.8 on Darwin. Fixed in the next
-  # release. https://github.com/pandas-dev/pandas/pull/30862
-  setupPyBuildFlags = lib.optionals (!(isPy38 && stdenv.isDarwin)) [
-    # As suggested by
-    # https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#creating-a-python-environment
-    "--parallel=$NIX_BUILD_CORES"
-  ];
-
   doCheck = !stdenv.isAarch64; # upstream doesn't test this architecture
 
   pytestFlagsArray = [
     "--skip-slow"
     "--skip-network"
+    "--numprocesses" "0"
   ];
+
   disabledTests = [
-    # since dateutil 0.6.0 the following fails: test_fallback_plural, test_ambiguous_flags, test_ambiguous_compat
-    # was supposed to be solved by https://github.com/dateutil/dateutil/issues/321, but is not the case
-    "test_fallback_plural"
-    "test_ambiguous_flags"
-    "test_ambiguous_compat"
     # Locale-related
     "test_names"
     "test_dt_accessor_datetime_name_accessors"
     "test_datetime_name_accessors"
-    # Can't import from test folder
-    "test_oo_optimizable"
     # Disable IO related tests because IO data is no longer distributed
     "io"
-    # KeyError Timestamp
-    "test_to_excel"
-    # ordering logic has changed
-    "numpy_ufuncs_other"
-    "order_without_freq"
-    # tries to import from pandas.tests post install
+    # Tries to import from pandas.tests post install
     "util_in_top_level"
-    # Fails with 1.0.5
-    "test_constructor_list_frames"
-    "test_constructor_with_embedded_frames"
-    # tries to import compiled C extension locally
+    # Tries to import compiled C extension locally
     "test_missing_required_dependency"
+    # AssertionError with 1.2.3
+    "test_from_coo"
   ] ++ lib.optionals stdenv.isDarwin [
     "test_locale"
     "test_clipboard"
   ];
 
-  # tests have relative paths, and need to reference compiled C extensions
+  # Tests have relative paths, and need to reference compiled C extensions
   # so change directory where `import .test` is able to be resolved
   preCheck = ''
     cd $out/${python.sitePackages}/pandas
@@ -132,6 +127,8 @@ buildPythonPackage rec {
     export PATH=$(pwd):$PATH
   '';
 
+  pythonImportsCheck = [ "pandas" ];
+
   meta = with lib; {
     # https://github.com/pandas-dev/pandas/issues/14866
     # pandas devs are no longer testing i686 so safer to assume it's broken
diff --git a/nixpkgs/pkgs/development/python-modules/papermill/default.nix b/nixpkgs/pkgs/development/python-modules/papermill/default.nix
index 56536de8446b..0311e783d397 100644
--- a/nixpkgs/pkgs/development/python-modules/papermill/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/papermill/default.nix
@@ -25,11 +25,11 @@
 
 buildPythonPackage rec {
   pname = "papermill";
-  version = "2.2.2";
+  version = "2.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c452b1c5a9ab52b94c99d8b7705ae7173f6aa88a3d28a5d30cffba48a46f5b6";
+    sha256 = "sha256-ptwZXypS9b7Y1CkszqOa8PMzgyS+r9VikPlhbJUDNiM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/papis/default.nix b/nixpkgs/pkgs/development/python-modules/papis/default.nix
index b05a525d91ad..3e7c6ae00116 100644
--- a/nixpkgs/pkgs/development/python-modules/papis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/papis/default.nix
@@ -3,7 +3,7 @@
 , pyyaml, chardet, beautifulsoup4, colorama, bibtexparser
 , click, python-slugify, habanero, isbnlib, typing-extensions
 , prompt_toolkit, pygments, stevedore, tqdm, lxml
-, python-doi, isPy3k, pythonOlder, pytestcov
+, python-doi, isPy3k, pytestcov
 #, optional, dependencies
 , whoosh, pytest
 , stdenv
diff --git a/nixpkgs/pkgs/development/python-modules/param/default.nix b/nixpkgs/pkgs/development/python-modules/param/default.nix
index 9f6d78a8ecbe..8e090561ed06 100644
--- a/nixpkgs/pkgs/development/python-modules/param/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/param/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "param";
-  version = "1.10.0";
+  version = "1.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a284c1b42aff6367e8eea2f649d4f3f70a9f16c6f17d8ad672a31ff36089f995";
+    sha256 = "1f0f1133fbadcd2c5138e579b9934e29fd00f803af01d9bf6f9e6b80ecf1999b";
   };
 
   checkInputs = [ flake8 nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/parameterized/default.nix b/nixpkgs/pkgs/development/python-modules/parameterized/default.nix
index 207a6a38bd5a..1183c09e62eb 100644
--- a/nixpkgs/pkgs/development/python-modules/parameterized/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parameterized/default.nix
@@ -1,28 +1,40 @@
-{ lib, fetchPypi, buildPythonPackage, nose, mock, glibcLocales, isPy3k, isPy38 }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, glibcLocales
+, isPy3k
+, mock
+, nose
+}:
 
 buildPythonPackage rec {
   pname = "parameterized";
-  version = "0.7.4";
+  version = "0.8.1";
+  disable = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "190f8cc7230eee0b56b30d7f074fd4d165f7c45e6077582d0813c8557e738490";
+    sha256 = "sha256-Qbv/N9YYZDD3f5ANd35btqJJKKHEb7HeaS+LUriDO1w=";
   };
 
-  # Tests require some python3-isms but code works without.
-  # python38 is not fully supported yet
-  doCheck = isPy3k && (!isPy38);
-
-  checkInputs = [ nose mock glibcLocales ];
+  checkInputs = [
+    nose
+    mock
+    glibcLocales
+  ];
 
   checkPhase = ''
+    runHook preCheck
     LC_ALL="en_US.UTF-8" nosetests -v
+    runHook postCheck
   '';
 
+  pythonImportsCheck = [ "parameterized" ];
+
   meta = with lib; {
     description = "Parameterized testing with any Python test framework";
-    homepage = "https://pypi.python.org/pypi/parameterized";
-    license = licenses.bsd3;
+    homepage = "https://github.com/wolever/parameterized";
+    license = licenses.bsd2;
     maintainers = with maintainers; [ ma27 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/parso/default.nix b/nixpkgs/pkgs/development/python-modules/parso/default.nix
index f9a87fa5f65f..a68f535d29db 100644
--- a/nixpkgs/pkgs/development/python-modules/parso/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parso/default.nix
@@ -1,20 +1,30 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , pythonOlder
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "parso";
-  version = "0.8.0";
+  version = "0.8.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2b6db14759c528d857eeb9eac559c2166b2554548af39f5198bdfb976f72aa64";
+    sha256 = "8519430ad07087d4c997fda3a7918f7cfa27cb58972a8c89c2a0295a1c940e9e";
   };
 
+  patches = [
+    # Fix the flaky test due to slow moving time on Apple Silicon chips.
+    # Remove when https://github.com/davidhalter/parso/pull/177 is in the next release.
+    (fetchpatch {
+      url = "https://github.com/davidhalter/parso/pull/177/commits/2799a7a3c2cf87fdc2d0c19a0890acea425091ce.patch";
+      sha256 = "sha256-A5EQly1wR/7lo+L8Pp0UPSUIhC0WcblXEWQNvRMlZYA=";
+    })
+  ];
+
   checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/parts/default.nix b/nixpkgs/pkgs/development/python-modules/parts/default.nix
new file mode 100644
index 000000000000..1bf7f26adfd0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/parts/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "parts";
+  version = "1.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ym238hxwsw15ivvf6gzmkmla08b9hwhdyc3v6rs55wga9j3a4db";
+  };
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "parts" ];
+
+  meta = with lib; {
+    description = "Python library for common list functions related to partitioning lists";
+    homepage = "https://github.com/lapets/parts";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pecan/default.nix b/nixpkgs/pkgs/development/python-modules/pecan/default.nix
index a66c4077c3c9..50b62503ff87 100644
--- a/nixpkgs/pkgs/development/python-modules/pecan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pecan/default.nix
@@ -16,7 +16,6 @@
 , Kajiki
 , mock
 , sqlalchemy
-, uwsgi
 , virtualenv
 }:
 
diff --git a/nixpkgs/pkgs/development/python-modules/percol/default.nix b/nixpkgs/pkgs/development/python-modules/percol/default.nix
index eddf58e559dc..58e7aff5601d 100644
--- a/nixpkgs/pkgs/development/python-modules/percol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/percol/default.nix
@@ -1,25 +1,26 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, six
-}:
+{ lib, buildPythonPackage, fetchFromGitHub, cmigemo }:
 
 buildPythonPackage rec {
   pname = "percol";
-  version = "0.2.1";
-  disabled = isPy3k;
+  version = "unstable-2019-07-24";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "7a649c6fae61635519d12a6bcacc742241aad1bff3230baef2cedd693ed9cfe8";
+  src = fetchFromGitHub {
+    owner = "mooz";
+    repo = "percol";
+    rev = "4b28037e328da3d0fe8165c11b800cbaddcb525e";
+    sha256 = "07sq3517wzn04j2dzlmczmcvx3w6r7xnzz3634zgf1zi6dbr2a3g";
   };
 
-  propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [ cmigemo ];
+
+  # package has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "percol" ];
 
   meta = with lib; {
     homepage = "https://github.com/mooz/percol";
     description = "Adds flavor of interactive filtering to the traditional pipe concept of shell";
     license = licenses.mit;
     maintainers = with maintainers; [ koral ];
-    broken = true; # missing cmigemo package which is missing libmigemo.so
-    # also doesn't support python3
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pex/default.nix b/nixpkgs/pkgs/development/python-modules/pex/default.nix
index e65f62c8ff7b..588a27159e8e 100644
--- a/nixpkgs/pkgs/development/python-modules/pex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pex/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.1.21";
+  version = "2.1.30";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d580a26da1b342ab2ebbf675ba2bab04e98c4d1aaf2a6fea09f41d68dfc466ba";
+    sha256 = "ac170d656d2083d02048850005415d03d1767087e4f5037bc86defb6b23e712d";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
index 9f9bb1702a90..efa4c3005fcd 100644
--- a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
@@ -1,29 +1,37 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, scramp
-, isPy3k
 , passlib
+, pythonOlder
+, scramp
 }:
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.16.6";
-
-  disabled = !isPy3k;
+  version = "1.19.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8fc1e6a62ccb7c9830f1e7e9288e2d20eaf373cc8875b5c55b7d5d9b7717be91";
+    sha256 = "sha256-EexwwLIOpECAfiyGmUDxSE7qk9cbQ1gHtjhW3YK3RN0=";
   };
 
-  propagatedBuildInputs = [ passlib scramp ];
+  propagatedBuildInputs = [passlib scramp ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "scramp==1.3.0" "scramp>=1.3.0"
+  '';
+
+  # Tests require a running PostgreSQL instance
+  doCheck = false;
+  pythonImportsCheck = [ "pg8000" ];
 
   meta = with lib; {
+    description = "Python driver for PostgreSQL";
     homepage = "https://github.com/tlocke/pg8000";
-    description = "PostgreSQL interface library, for asyncio";
+    license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ domenkozar ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pglast/default.nix b/nixpkgs/pkgs/development/python-modules/pglast/default.nix
index 767140e6bf8f..3240b0809922 100644
--- a/nixpkgs/pkgs/development/python-modules/pglast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pglast/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "1.14";
+  version = "1.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "72652b9edc7bdbfc9c3192235fb2fa1b2fb73a681613368fcaec747d7f5e479f";
+    sha256 = "2979b38ca5f72cfa0a5db78af2f62d04db6a7647ee7f03eac7a67f9e86e3f5f9";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/phonemizer/backend-paths.patch b/nixpkgs/pkgs/development/python-modules/phonemizer/backend-paths.patch
index 1734addb0ef1..5f828aaaae13 100644
--- a/nixpkgs/pkgs/development/python-modules/phonemizer/backend-paths.patch
+++ b/nixpkgs/pkgs/development/python-modules/phonemizer/backend-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/phonemizer/backend/espeak.py b/phonemizer/backend/espeak.py
-index 387c11c..ceb5e7e 100644
+index b4712bf..5628fd5 100644
 --- a/phonemizer/backend/espeak.py
 +++ b/phonemizer/backend/espeak.py
-@@ -81,10 +81,7 @@ class BaseEspeakBackend(BaseBackend):
+@@ -82,10 +82,7 @@ class BaseEspeakBackend(BaseBackend):
          if _ESPEAK_DEFAULT_PATH:
              return _ESPEAK_DEFAULT_PATH
  
@@ -15,10 +15,10 @@ index 387c11c..ceb5e7e 100644
      @classmethod
      def is_available(cls):
 diff --git a/phonemizer/backend/festival.py b/phonemizer/backend/festival.py
-index b5bc56d..0833160 100644
+index 3037be5..684ffff 100644
 --- a/phonemizer/backend/festival.py
 +++ b/phonemizer/backend/festival.py
-@@ -78,7 +78,7 @@ class FestivalBackend(BaseBackend):
+@@ -80,7 +80,7 @@ class FestivalBackend(BaseBackend):
          if _FESTIVAL_DEFAULT_PATH:
              return _FESTIVAL_DEFAULT_PATH
  
@@ -27,3 +27,16 @@ index b5bc56d..0833160 100644
  
      @classmethod
      def is_available(cls):
+diff --git a/test/test_punctuation.py b/test/test_punctuation.py
+index 6ed642a..08060df 100644
+--- a/test/test_punctuation.py
++++ b/test/test_punctuation.py
+@@ -28,7 +28,7 @@ ESPEAK_143 = (EspeakBackend.version(as_tuple=True) >= (1, 49, 3))
+ ESPEAK_150 = (EspeakBackend.version(as_tuple=True) >= (1, 50))
+ 
+ # True if we are using festival>=2.5
+-FESTIVAL_25 = (FestivalBackend.version(as_tuple=True) >= (2, 5))
++FESTIVAL_25 = False
+ 
+ 
+ @pytest.mark.parametrize(
diff --git a/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix b/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix
index 2d6531794313..43ce5f1e766d 100644
--- a/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix
@@ -2,24 +2,21 @@
 , substituteAll
 , buildPythonApplication
 , fetchPypi
-, python3Packages
-, pkgs
 , joblib
 , segments
 , attrs
 , espeak-ng
 , pytestCheckHook
-, pytestrunner
 , pytestcov
 }:
 
 buildPythonApplication rec {
   pname = "phonemizer";
-  version = "2.2.1";
+  version = "2.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "127n4f10zxq60qd8xvlc1amji4wbghqb90rfp25rzdk716kvgwab";
+    sha256 = "ae252f0bc7633e172b08622f318e7e112cde847e9281d4675ea7210157325146";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix b/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
index 354ca2796e19..72c61e08ce4b 100644
--- a/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.12.13";
+  version = "8.12.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "96d02120a3481e22d8a8eb5e4595ceec1930855749f6e4a06ef931881f59f562";
+    sha256 = "0aa0f5e1382d292a7ff2f8bc08673126521461c7f908e0220756449a734d8fef";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/piep/default.nix b/nixpkgs/pkgs/development/python-modules/piep/default.nix
index aacd9e314cb3..c99f408db62f 100644
--- a/nixpkgs/pkgs/development/python-modules/piep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/piep/default.nix
@@ -3,11 +3,13 @@
 , fetchPypi
 , nose
 , pygments
+, isPy3k
 }:
 
 buildPythonPackage rec {
   version = "0.9.2";
   pname = "piep";
+  disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix b/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
index 8ed27ea962ed..565822c33558 100644
--- a/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
@@ -23,12 +23,12 @@
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "2.5.2";
+  version = "2.8.0";
   disabled = ! isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-j8PpeyTa+9SxrAV8jxRMGEZ85V00KhqMQmiIkOrVjvM=";
+    sha256 = "74ff96fddd21cd4c0830eb549137ea9eccbdbff8cef4f684322b9afb8e42ccb5";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pillow-simd/default.nix b/nixpkgs/pkgs/development/python-modules/pillow-simd/default.nix
new file mode 100644
index 000000000000..3aed634dfb1a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pillow-simd/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPyPy, isPy3k
+, olefile, freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2
+, tk, libX11, openjpeg, libimagequant, pyroma, numpy, pytestCheckHook
+}@args:
+
+import ../pillow/generic.nix (rec {
+  pname = "Pillow-SIMD";
+  version = "7.0.0.post3";
+
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "uploadcare";
+    repo = "pillow-simd";
+    rev = "v${version}";
+    sha256 = "1h832xp1bzf951hr4dmjmxqfsv28sx9lr2cq96qdz1c72k40zj1h";
+  };
+
+  meta = with lib; {
+    homepage = "https://python-pillow.github.io/pillow-perf/";
+    description = "The friendly PIL fork - SIMD version";
+    longDescription = ''
+      Pillow-SIMD is "following" Pillow. Pillow-SIMD versions are 100% compatible drop-in replacements for Pillow of the same version.
+
+      SIMD stands for "single instruction, multiple data" and its essence is in performing the same operation on multiple data points simultaneously by using multiple processing elements. Common CPU SIMD instruction sets are MMX, SSE-SSE4, AVX, AVX2, AVX512, NEON.
+
+      Currently, Pillow-SIMD can be compiled with SSE4 (default) or AVX2 support.
+    '';
+    license = "http://www.pythonware.com/products/pil/license.htm";
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+} // args )
diff --git a/nixpkgs/pkgs/development/python-modules/pillow/6.nix b/nixpkgs/pkgs/development/python-modules/pillow/6.nix
index 0e3fabf1fbca..51833edfd0b0 100644
--- a/nixpkgs/pkgs/development/python-modules/pillow/6.nix
+++ b/nixpkgs/pkgs/development/python-modules/pillow/6.nix
@@ -1,75 +1,22 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy
-, olefile
-, freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2, tk, libX11
-, openjpeg, libimagequant
-, pytest, pytestrunner, pyroma, numpy
-}:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy, isPy3k
+, olefile, freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2, tk, libX11
+, openjpeg, libimagequant, pyroma, numpy, pytestCheckHook
+}@args:
 
-buildPythonPackage rec {
+import ./generic.nix (rec {
   pname = "Pillow";
   version = "6.2.2";
 
+  disabled = !isPy3k;
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "0l5rv8jkdrb5q846v60v03mcq64yrhklidjkgwv6s1pda71g17yv";
   };
 
-  # Disable imagefont tests, because they don't work well with infinality:
-  # https://github.com/python-pillow/Pillow/issues/1259
-  postPatch = ''
-    rm Tests/test_imagefont.py
-  '';
-
-  checkPhase = ''
-    runHook preCheck
-    python -m pytest -v -x -W always${lib.optionalString stdenv.isDarwin " --deselect=Tests/test_file_icns.py::TestFileIcns::test_save --deselect=Tests/test_imagegrab.py::TestImageGrab::test_grab"}
-    runHook postCheck
-  '';
-
-  propagatedBuildInputs = [ olefile ];
-
-  checkInputs = [ pytest pytestrunner pyroma numpy ];
-
-  buildInputs = [
-    freetype libjpeg openjpeg libimagequant zlib libtiff libwebp tcl lcms2 ]
-    ++ lib.optionals (isPyPy) [ tk libX11 ];
-
-  # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
-  # NOTE: The Pillow install script will, by default, add paths like /usr/lib
-  # and /usr/include to the search paths. This can break things when building
-  # on a non-NixOS system that has some libraries installed that are not
-  # installed in Nix (for example, Arch Linux has jpeg2000 but Nix doesn't
-  # build Pillow with this support). We patch the `disable_platform_guessing`
-  # setting here, instead of passing the `--disable-platform-guessing`
-  # command-line option, since the command-line option doesn't work when we run
-  # tests.
-  preConfigure = let
-    libinclude' = pkg: ''"${pkg.out}/lib", "${pkg.out}/include"'';
-    libinclude = pkg: ''"${pkg.out}/lib", "${pkg.dev}/include"'';
-  in ''
-    sed -i "setup.py" \
-        -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = ${libinclude freetype}|g ;
-            s|^JPEG_ROOT =.*$|JPEG_ROOT = ${libinclude libjpeg}|g ;
-            s|^JPEG2K_ROOT =.*$|JPEG2K_ROOT = ${libinclude openjpeg}|g ;
-            s|^IMAGEQUANT_ROOT =.*$|IMAGEQUANT_ROOT = ${libinclude' libimagequant}|g ;
-            s|^ZLIB_ROOT =.*$|ZLIB_ROOT = ${libinclude zlib}|g ;
-            s|^LCMS_ROOT =.*$|LCMS_ROOT = ${libinclude lcms2}|g ;
-            s|^TIFF_ROOT =.*$|TIFF_ROOT = ${libinclude libtiff}|g ;
-            s|^TCL_ROOT=.*$|TCL_ROOT = ${libinclude' tcl}|g ;
-            s|self\.disable_platform_guessing = None|self.disable_platform_guessing = True|g ;'
-    export LDFLAGS="-L${libwebp}/lib"
-    export CFLAGS="-I${libwebp}/include"
-  ''
-  # Remove impurities
-  + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace setup.py \
-      --replace '"/Library/Frameworks",' "" \
-      --replace '"/System/Library/Frameworks"' ""
-  '';
-
   meta = with lib; {
-    homepage = "https://python-pillow.github.io/";
-    description = "Fork of The Python Imaging Library (PIL)";
+    homepage = "https://python-pillow.org/";
+    description = "The friendly PIL fork (Python Imaging Library)";
     longDescription = ''
       The Python Imaging Library (PIL) adds image processing
       capabilities to your Python interpreter.  This library
@@ -77,6 +24,6 @@ buildPythonPackage rec {
       processing and graphics capabilities.
     '';
     license = "http://www.pythonware.com/products/pil/license.htm";
-    maintainers = with maintainers; [ goibhniu prikhi ];
+    maintainers = with maintainers; [ goibhniu prikhi SuperSandro2000 ];
   };
-}
+} // args )
diff --git a/nixpkgs/pkgs/development/python-modules/pillow/default.nix b/nixpkgs/pkgs/development/python-modules/pillow/default.nix
index 4084df19404b..02611c5a9255 100644
--- a/nixpkgs/pkgs/development/python-modules/pillow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pillow/default.nix
@@ -1,72 +1,19 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy
-, olefile
-, freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2, tk, libX11
-, openjpeg, libimagequant
-, pyroma, numpy, pytestCheckHook
-, isPy3k
-}:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy, isPy3k
+, olefile, freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2, tk, libX11
+, libxcb, openjpeg, libimagequant, pyroma, numpy, pytestCheckHook
+}@args:
 
-buildPythonPackage rec {
+import ./generic.nix (rec {
   pname = "Pillow";
-  version = "8.0.1";
+  version = "8.1.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11c5c6e9b02c9dac08af04f093eb5a2f84857df70a7d4a6a6ad461aca803fb9e";
+    sha256 = "086g7nhv52wclrwnzbzs2x3nvyzs2hfq1bvgivsrp5f7r7wiiz7n";
   };
 
-  # Disable imagefont tests, because they don't work well with infinality:
-  # https://github.com/python-pillow/Pillow/issues/1259
-  postPatch = ''
-    rm Tests/test_imagefont.py
-  '';
-
-  # Disable darwin tests which require executables: `iconutil` and `screencapture`
-  disabledTests = lib.optionals stdenv.isDarwin [ "test_save" "test_grab" "test_grabclipboard" ];
-
-  propagatedBuildInputs = [ olefile ];
-
-  checkInputs = [ pytestCheckHook pyroma numpy ];
-
-  buildInputs = [
-    freetype libjpeg openjpeg libimagequant zlib libtiff libwebp tcl lcms2 ]
-    ++ lib.optionals (isPyPy) [ tk libX11 ];
-
-  # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
-  # NOTE: The Pillow install script will, by default, add paths like /usr/lib
-  # and /usr/include to the search paths. This can break things when building
-  # on a non-NixOS system that has some libraries installed that are not
-  # installed in Nix (for example, Arch Linux has jpeg2000 but Nix doesn't
-  # build Pillow with this support). We patch the `disable_platform_guessing`
-  # setting here, instead of passing the `--disable-platform-guessing`
-  # command-line option, since the command-line option doesn't work when we run
-  # tests.
-  preConfigure = let
-    libinclude' = pkg: ''"${pkg.out}/lib", "${pkg.out}/include"'';
-    libinclude = pkg: ''"${pkg.out}/lib", "${pkg.dev}/include"'';
-  in ''
-    sed -i "setup.py" \
-        -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = ${libinclude freetype}|g ;
-            s|^JPEG_ROOT =.*$|JPEG_ROOT = ${libinclude libjpeg}|g ;
-            s|^JPEG2K_ROOT =.*$|JPEG2K_ROOT = ${libinclude openjpeg}|g ;
-            s|^IMAGEQUANT_ROOT =.*$|IMAGEQUANT_ROOT = ${libinclude' libimagequant}|g ;
-            s|^ZLIB_ROOT =.*$|ZLIB_ROOT = ${libinclude zlib}|g ;
-            s|^LCMS_ROOT =.*$|LCMS_ROOT = ${libinclude lcms2}|g ;
-            s|^TIFF_ROOT =.*$|TIFF_ROOT = ${libinclude libtiff}|g ;
-            s|^TCL_ROOT=.*$|TCL_ROOT = ${libinclude' tcl}|g ;
-            s|self\.disable_platform_guessing = None|self.disable_platform_guessing = True|g ;'
-    export LDFLAGS="-L${libwebp}/lib"
-    export CFLAGS="-I${libwebp}/include"
-  ''
-  # Remove impurities
-  + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace setup.py \
-      --replace '"/Library/Frameworks",' "" \
-      --replace '"/System/Library/Frameworks"' ""
-  '';
-
   meta = with lib; {
     homepage = "https://python-pillow.org/";
     description = "The friendly PIL fork (Python Imaging Library)";
@@ -76,7 +23,7 @@ buildPythonPackage rec {
       supports many file formats, and provides powerful image
       processing and graphics capabilities.
     '';
-    license = "http://www.pythonware.com/products/pil/license.htm";
-    maintainers = with maintainers; [ goibhniu prikhi ];
+    license = licenses.hpnd;
+    maintainers = with maintainers; [ goibhniu prikhi SuperSandro2000 ];
   };
-}
+} // args )
diff --git a/nixpkgs/pkgs/development/python-modules/pillow/generic.nix b/nixpkgs/pkgs/development/python-modules/pillow/generic.nix
new file mode 100644
index 000000000000..64ae91895593
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pillow/generic.nix
@@ -0,0 +1,76 @@
+{ pname
+, version
+, disabled
+, src
+, meta
+, ...
+}@args:
+
+with args;
+
+buildPythonPackage rec {
+  inherit pname version src meta;
+
+  # Disable imagefont tests, because they don't work well with infinality:
+  # https://github.com/python-pillow/Pillow/issues/1259
+  postPatch = ''
+    rm Tests/test_imagefont.py
+  '';
+
+  # Disable darwin tests which require executables: `iconutil` and `screencapture`
+  disabledTests = lib.optionals stdenv.isDarwin [
+    "test_grab"
+    "test_grabclipboard"
+    "test_save"
+
+    # pillow-simd
+    "test_roundtrip"
+    "test_basic"
+  ] ++ lib.optionals (lib.versions.major version == "6") [
+    # RuntimeError: Error setting from dictionary
+    "test_custom_metadata"
+  ];
+
+  propagatedBuildInputs = [ olefile ];
+
+  checkInputs = [ pytestCheckHook pyroma numpy ];
+
+  buildInputs = [ freetype libjpeg openjpeg libimagequant zlib libtiff libwebp tcl lcms2 ]
+    ++ lib.optionals (lib.versionAtLeast version "7.1.0") [ libxcb ]
+    ++ lib.optionals (isPyPy) [ tk libX11 ];
+
+  # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
+  # NOTE: The Pillow install script will, by default, add paths like /usr/lib
+  # and /usr/include to the search paths. This can break things when building
+  # on a non-NixOS system that has some libraries installed that are not
+  # installed in Nix (for example, Arch Linux has jpeg2000 but Nix doesn't
+  # build Pillow with this support). We patch the `disable_platform_guessing`
+  # setting here, instead of passing the `--disable-platform-guessing`
+  # command-line option, since the command-line option doesn't work when we run
+  # tests.
+  preConfigure = let
+    libinclude' = pkg: ''"${pkg.out}/lib", "${pkg.out}/include"'';
+    libinclude = pkg: ''"${pkg.out}/lib", "${pkg.dev}/include"'';
+  in ''
+    sed -i "setup.py" \
+        -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = ${libinclude freetype}|g ;
+            s|^JPEG_ROOT =.*$|JPEG_ROOT = ${libinclude libjpeg}|g ;
+            s|^JPEG2K_ROOT =.*$|JPEG2K_ROOT = ${libinclude openjpeg}|g ;
+            s|^IMAGEQUANT_ROOT =.*$|IMAGEQUANT_ROOT = ${libinclude' libimagequant}|g ;
+            s|^ZLIB_ROOT =.*$|ZLIB_ROOT = ${libinclude zlib}|g ;
+            s|^LCMS_ROOT =.*$|LCMS_ROOT = ${libinclude lcms2}|g ;
+            s|^TIFF_ROOT =.*$|TIFF_ROOT = ${libinclude libtiff}|g ;
+            s|^TCL_ROOT=.*$|TCL_ROOT = ${libinclude' tcl}|g ;
+            s|self\.disable_platform_guessing = None|self.disable_platform_guessing = True|g ;'
+    export LDFLAGS="$LDFLAGS -L${libwebp}/lib"
+    export CFLAGS="$CFLAGS -I${libwebp}/include"
+  '' + lib.optionalString (lib.versionAtLeast version "7.1.0") ''
+    export LDFLAGS="$LDFLAGS -L${libxcb}/lib"
+    export CFLAGS="$CFLAGS -I${libxcb.dev}/include"
+  '' + lib.optionalString stdenv.isDarwin ''
+    # Remove impurities
+    substituteInPlace setup.py \
+      --replace '"/Library/Frameworks",' "" \
+      --replace '"/System/Library/Frameworks"' ""
+  '';
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pims/default.nix b/nixpkgs/pkgs/development/python-modules/pims/default.nix
index bfe4e2b9ea03..2f9fbdccd550 100644
--- a/nixpkgs/pkgs/development/python-modules/pims/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pims/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
 
   # not everything packaged with pypi release
   doCheck = false;
+  pythonImportsCheck = [ "pims" ];
 
   meta = with lib; {
     homepage = "https://github.com/soft-matter/pims";
diff --git a/nixpkgs/pkgs/development/python-modules/pip/default.nix b/nixpkgs/pkgs/development/python-modules/pip/default.nix
index f35ed6b3d116..6f859d365c59 100644
--- a/nixpkgs/pkgs/development/python-modules/pip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pip/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "pip";
-  version = "20.3";
+  version = "20.3.4";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = pname;
     rev = version;
-    sha256 = "e/2/0MrGY3myELmvuTAbNfXCBuT8kmvz9qTwITdDtQU=";
+    sha256 = "0hkhs9yc1cjdj1gn9wkycd3sy65c05q8k8rhqgsm5jbpksfssiwn";
     name = "${pname}-${version}-source";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pipx/default.nix b/nixpkgs/pkgs/development/python-modules/pipx/default.nix
index c29847c9f29c..34a7bc6b31a1 100644
--- a/nixpkgs/pkgs/development/python-modules/pipx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pipx/default.nix
@@ -6,12 +6,13 @@
 , argcomplete
 , packaging
 , importlib-metadata
+, colorama
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pipx";
-  version = "0.16.0.0";
+  version = "0.16.1.0";
 
   disabled = pythonOlder "3.6";
 
@@ -20,13 +21,14 @@ buildPythonPackage rec {
     owner = "pipxproject";
     repo = pname;
     rev = version;
-    sha256 = "08mn7vm8iw20pg0gfn491y1jx8wcyjijps6f1hy7ipzd5ckynscn";
+    sha256 = "081raqsaq7i2x4yxhxppv930jhajdwmngin5wazy7vqhiy3xc669";
   };
 
   propagatedBuildInputs = [
     userpath
     argcomplete
     packaging
+    colorama
   ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pivy/default.nix b/nixpkgs/pkgs/development/python-modules/pivy/default.nix
index 312c87ae5444..7645fdaec8aa 100644
--- a/nixpkgs/pkgs/development/python-modules/pivy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pivy/default.nix
@@ -11,6 +11,8 @@ buildPythonPackage rec {
     sha256 = "0vids7sxk8w5vr73xdnf8xdci71a7syl6cd35aiisppbqyyfmykx";
   };
 
+  dontUseCmakeConfigure = true;
+
   nativeBuildInputs = with pkgs; [
     swig qmake cmake
   ];
@@ -29,8 +31,7 @@ buildPythonPackage rec {
   ];
 
   dontUseQmakeConfigure = true;
-  dontUseCmakeConfigure = true;
-
+  dontWrapQtApps =true;
   doCheck = false;
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix b/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix
index 1b03f720fbcd..098b79a15d05 100644
--- a/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pkgconfig";
-  version = "1.5.1";
+  version = "1.5.2";
 
   inherit (pkg-config)
     setupHooks
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97bfe3d981bab675d5ea3ef259045d7919c93897db7d3b59d4e8593cba8d354f";
+    sha256 = "38d612488f0633755a2e7a8acab6c01d20d63dbc31af75e2a9ac98a6f638ca94";
   };
 
 
diff --git a/nixpkgs/pkgs/development/python-modules/pkutils/default.nix b/nixpkgs/pkgs/development/python-modules/pkutils/default.nix
index d674e876b147..c383f5ff86c4 100644
--- a/nixpkgs/pkgs/development/python-modules/pkutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pkutils/default.nix
@@ -1,5 +1,4 @@
 { lib
-, pythonOlder
 , buildPythonPackage
 , isPy3k
 , fetchFromGitHub
diff --git a/nixpkgs/pkgs/development/python-modules/pleroma-bot/default.nix b/nixpkgs/pkgs/development/python-modules/pleroma-bot/default.nix
new file mode 100644
index 000000000000..1dca45eca762
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pleroma-bot/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, requests-mock
+, oauthlib
+, requests_oauthlib
+, requests
+, pyaml
+}:
+
+buildPythonPackage rec {
+  pname = "pleroma-bot";
+  version = "0.8.6";
+
+  src = fetchFromGitHub {
+    owner = "robertoszek";
+    repo = "pleroma-bot";
+    rev = version;
+    sha256 = "1q0xhgqq41zbqiawpd4kbdx41zhwxxp5ipn1c2rc8d7pjyb5p75w";
+  };
+
+  propagatedBuildInputs = [ pyaml requests requests_oauthlib oauthlib ];
+  checkInputs = [ pytestCheckHook requests-mock ];
+
+  pythonImportsCheck = [ "pleroma_bot" ];
+
+  meta = with lib; {
+    homepage = "https://robertoszek.github.io/pleroma-bot/";
+    description = "Bot for mirroring one or multiple Twitter accounts in Pleroma/Mastodon";
+    license = licenses.mit;
+    maintainers = with maintainers; [ robertoszek ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/plexapi/default.nix b/nixpkgs/pkgs/development/python-modules/plexapi/default.nix
index 5251ff1de0ec..1fbdd6773e67 100644
--- a/nixpkgs/pkgs/development/python-modules/plexapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plexapi/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "PlexAPI";
-  version = "4.3.1";
+  version = "4.5.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "pkkid";
     repo = "python-plexapi";
     rev = version;
-    sha256 = "sha256-gRXNOGd9YGcGysKbAtiNwi5NxPvv39F6PEXBjiYbVq4=";
+    sha256 = "sha256-MjV1JUHrIHTu3UHy4HnMtTEjSCx3U9kMgUkbCJOAZr0=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/plotly/default.nix b/nixpkgs/pkgs/development/python-modules/plotly/default.nix
index f11cf1c0984c..e2496d6097d9 100644
--- a/nixpkgs/pkgs/development/python-modules/plotly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plotly/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "plotly";
-  version = "4.13.0";
+  version = "4.14.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20df14f7883807f57d96ac245841e086a1799f2c2778462a7f3bca704e369c66";
+    sha256 = "14cxlfl79i9bh3awsf4xgwr14ywm7lnrz2a81s7gp0if77nsx2kx";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/plugwise/default.nix b/nixpkgs/pkgs/development/python-modules/plugwise/default.nix
index f4be0e5140b5..289f1871f338 100644
--- a/nixpkgs/pkgs/development/python-modules/plugwise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plugwise/default.nix
@@ -19,13 +19,13 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.8.5";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "python-plugwise";
     rev = version;
-    sha256 = "1gviyy31l1j8z0if2id3m13r43kw4mcgd8921813yfhmf174piq4";
+    sha256 = "sha256-MZ4R55vGUyWmR0Md83eNerzsgtYMch1vfQ3sqbm12bM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/plyfile/default.nix b/nixpkgs/pkgs/development/python-modules/plyfile/default.nix
index b0936a50baa7..d3042c92e328 100644
--- a/nixpkgs/pkgs/development/python-modules/plyfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plyfile/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "plyfile";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "59a25845d00a51098e6c9147c3c96ce89ad97395e256a4fabb4aed7cf7db5541";
+    sha256 = "5ac55b685cfcb3e8f70f3c5c2660bd1f6431a892a5319a612792b1ec09aec0f0";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix b/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
index d5d4e36d3a37..80c4b5acfe8c 100644
--- a/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "poetry-core";
-  version = "1.0.0";
+  version = "1.0.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "python-poetry";
     repo = pname;
     rev = version;
-    sha256 = "02pqkwzbg43xz2zsw8q7m0sfkj8wbw07in83gy0bk0znhljhp0vw";
+    sha256 = "sha256-OE6oc/3HYrMmgPnINxvSZ27m8YeZk5Gnn9ok8GlSIZ0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pook/default.nix b/nixpkgs/pkgs/development/python-modules/pook/default.nix
new file mode 100644
index 000000000000..480dc7dcba64
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pook/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, furl
+, jsonschema
+, nose
+, pytestCheckHook
+, pythonOlder
+, requests
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "pook";
+  version = "1.0.1";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "h2non";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0z48vswj07kr2sdvq5qzrwqyijpmj2rlnh2z2b32id1mckr6nnz8";
+  };
+
+  patches = [
+    (fetchpatch {
+      # Will be fixed with the new release, https://github.com/h2non/pook/issues/69
+      name = "use-match-keyword-in-pytest.patch";
+      url = "https://github.com/h2non/pook/commit/2071da27701c82ce02b015e01e2aa6fd203e7bb5.patch";
+      sha256 = "0i3qcpbdqqsnbygi46dyqamgkh9v8rhpbm4lkl75riw48j4n080k";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    furl
+    jsonschema
+    requests
+    xmltodict
+  ];
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pook" ];
+
+  meta = with lib; {
+    description = "HTTP traffic mocking and testing made simple in Python";
+    homepage = "https://github.com/h2non/pook";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix b/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix
index e94a234dc1a3..345f092a80fa 100644
--- a/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix
@@ -34,6 +34,8 @@ buildPythonPackage rec {
   # no tests, just bindings for `poppler_qt5`
   doCheck = false;
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://github.com/wbsoft/python-poppler-qt5";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/portend/default.nix b/nixpkgs/pkgs/development/python-modules/portend/default.nix
index 1408f7ca905f..0429519c2021 100644
--- a/nixpkgs/pkgs/development/python-modules/portend/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/portend/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "portend";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ac0e57ae557f75dc47467579980af152e8f60bc2139547eff8469777d9110379";
+    sha256 = "986ed9a278e64a87b5b5f4c21e61c25bebdce9919a92238d9c14c37a7416482b";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/powerline/default.nix b/nixpkgs/pkgs/development/python-modules/powerline/default.nix
index 1ad17d0459dd..292c44cf58fa 100644
--- a/nixpkgs/pkgs/development/python-modules/powerline/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/powerline/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, python
 , buildPythonPackage
 , socat
 , psutil
@@ -14,14 +13,14 @@
 # TODO: bzr support is missing because nixpkgs switched to `breezy`
 
 buildPythonPackage rec {
-  version  = "2.8.1";
+  version  = "2.8.2";
   pname = "powerline";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0xscckcbw75pbcl4546ndrjs4682pn2sqqrd6qvqm0s6zswg7a0y";
+    sha256 = "sha256-6V8ozl5KJQvytfflBmKJlIZQ5m3hkpCzMBtWZ2SzcQ0=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pplpy/default.nix b/nixpkgs/pkgs/development/python-modules/pplpy/default.nix
index de37c338bfa2..190e28e714cd 100644
--- a/nixpkgs/pkgs/development/python-modules/pplpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pplpy/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "pplpy";
-  version = "0.8.4";
+  version = "0.8.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dk8l5r3f2jbkkasddvxwvhlq35pjsiirh801lrapv8lb16r2qmr";
+    sha256 = "500bd0f4ae1a76956fae7fcba77854f5ec3e64fce76803664983763c3f2bd8bd";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/prance/default.nix b/nixpkgs/pkgs/development/python-modules/prance/default.nix
index 758cd0a78464..f9d5b6f80b1f 100644
--- a/nixpkgs/pkgs/development/python-modules/prance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prance/default.nix
@@ -6,20 +6,19 @@
 , requests
 , six
 , semver
-, pytest
+, pytestCheckHook
 , pytestcov
 , pytestrunner
-, sphinx
 , openapi-spec-validator
 }:
 
 buildPythonPackage rec {
   pname = "prance";
-  version = "0.20.0";
+  version = "0.20.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f7e98b0f7e8ef0dd581c40d8a3e869e15e74b08026b862c3212447f8aa2426a7";
+    sha256 = "4ffcddae6218cf6753a02af36ca9fb1c92eec4689441789ee2e9963230882388";
   };
 
   buildInputs = [
@@ -35,18 +34,28 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
     pytestcov
     openapi-spec-validator
   ];
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "tests_require = dev_require," "tests_require = None,"
+      --replace "tests_require = dev_require," "tests_require = None," \
+      --replace "chardet~=4.0" "" \
+      --replace "semver~=2.13" ""
+    substituteInPlace setup.cfg \
+      --replace "--cov-fail-under=90" ""
   '';
 
-  # many tests require network connection
-  doCheck = false;
+  # Disable tests that require network
+  disabledTestPaths = [
+    "tests/test_convert.py"
+  ];
+  disabledTests = [
+    "test_fetch_url_http"
+  ];
+  pythonImportsCheck = [ "prance" ];
 
   meta = with lib; {
     description = "Resolving Swagger/OpenAPI 2.0 and 3.0.0 Parser";
diff --git a/nixpkgs/pkgs/development/python-modules/praw/default.nix b/nixpkgs/pkgs/development/python-modules/praw/default.nix
index 5ca1d3d83c91..5047c1e88b0d 100644
--- a/nixpkgs/pkgs/development/python-modules/praw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/praw/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "praw";
-  version = "7.1.4";
+  version = "7.2.0";
 
   src = fetchFromGitHub {
     owner = "praw-dev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-onxag3kmswqqSycbwW+orofrukry0pCaRSxVRq2u53A=";
+    sha256 = "sha256-/GV5ZhrJxeChcYwmH/9FsLceAYRSeTCDe4lMEwdTa8Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/prawcore/default.nix b/nixpkgs/pkgs/development/python-modules/prawcore/default.nix
index 2b6eff885f9e..1e38f401a43d 100644
--- a/nixpkgs/pkgs/development/python-modules/prawcore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prawcore/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "prawcore";
-  version = "1.5.0";
+  version = "2.0.0";
   disabled = isPy27; # see https://github.com/praw-dev/prawcore/pull/101
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f1eafc8a65d671f9892354f73142014fbb5d3a9ee621568c662d0a354e0578b";
+    sha256 = "sha256-tJjZtvVJkQBecn1SNcj0nqW6DJpteT+3Q7QPoInNNtE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix b/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix
index 88fb6e3abf91..1b5af02dca0d 100644
--- a/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix
@@ -2,7 +2,6 @@
 , aspy-yaml
 , cached-property
 , cfgv
-, futures
 , identify
 , importlib-metadata
 , importlib-resources
@@ -16,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "pre-commit";
-  version = "2.7.1";
+  version = "2.11.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit version;
     pname = "pre_commit";
-    sha256 = "0w2a104yhbw1z92rcwpq0gdjsxvr2bwx5ry5xhlf2psnfkjx6ky5";
+    sha256 = "15f1chxrbmfcajk1ngk3jvf6jjbigb5dg66wnn7phmlywaawpy06";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch b/nixpkgs/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
index c1bead48b345..6d274aae3c07 100644
--- a/nixpkgs/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
+++ b/nixpkgs/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
@@ -12,15 +12,15 @@ index 26f4919..4885ec1 100644
          if version != C.DEFAULT:
              cmd.extend(['-n', version])
 diff --git a/pre_commit/languages/python.py b/pre_commit/languages/python.py
-index e17376e..0c1d2ab 100644
+index 43b7280..f0f2338 100644
 --- a/pre_commit/languages/python.py
 +++ b/pre_commit/languages/python.py
-@@ -204,7 +204,7 @@ def install_environment(
+@@ -192,7 +192,7 @@ def install_environment(
+         additional_dependencies: Sequence[str],
  ) -> None:
      envdir = prefix.path(helpers.environment_dir(ENVIRONMENT_DIR, version))
+-    venv_cmd = [sys.executable, '-mvirtualenv', envdir]
++    venv_cmd = ['@virtualenv@/bin/virtualenv', envdir]
      python = norm_version(version)
--    venv_cmd = (sys.executable, '-mvirtualenv', envdir, '-p', python)
-+    venv_cmd = ('@virtualenv@/bin/virtualenv', envdir, '-p', python)
-     install_cmd = ('python', '-mpip', 'install', '.', *additional_dependencies)
-
-     with clean_path_on_failure(envdir):
+     if python is not None:
+         venv_cmd.extend(('-p', python))
diff --git a/nixpkgs/pkgs/development/python-modules/preshed/default.nix b/nixpkgs/pkgs/development/python-modules/preshed/default.nix
index 767d5b867f0e..4fc1adfbf018 100644
--- a/nixpkgs/pkgs/development/python-modules/preshed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/preshed/default.nix
@@ -9,11 +9,11 @@
 }:
 buildPythonPackage rec {
   pname = "preshed";
-  version = "3.0.4";
+  version = "3.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13a779205d55ce323976ac06df597f9ec2d6f0563ebcf5652176cf4520c7d540";
+    sha256 = "c6d3dba39ed5059aaf99767017b9568c75b2d0780c3481e204b1daecde00360e";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/privacyidea/default.nix b/nixpkgs/pkgs/development/python-modules/privacyidea/default.nix
index 84cc4530b34e..c28a00901682 100644
--- a/nixpkgs/pkgs/development/python-modules/privacyidea/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/privacyidea/default.nix
@@ -1,34 +1,56 @@
-{ lib, buildPythonPackage, fetchFromGitHub, cacert, openssl, python
+{ lib, buildPythonPackage, fetchFromGitHub, cacert, openssl, python, nixosTests
 
 , cryptography, pyrad, pymysql, python-dateutil, flask-versioned, flask_script
 , defusedxml, croniter, flask_migrate, pyjwt, configobj, sqlsoup, pillow
 , python-gnupg, passlib, pyopenssl, beautifulsoup4, smpplib, flask-babel
 , ldap3, huey, pyyaml, qrcode, oauth2client, requests, lxml, cbor2, psycopg2
+, pydash
 
-, mock, pytest, responses, testfixtures
+, mock, pytestCheckHook, responses, testfixtures
 }:
 
 buildPythonPackage rec {
   pname = "privacyIDEA";
-  version = "3.3";
+  version = "3.5.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "188ki924dig899wlih45xfsm0s7mjkya56vii26bg02h91izrb4b";
+    sha256 = "sha256-k2om2LjkFRCT53ECPAJEztCiMdz4fF5eoipVUvSoyGo=";
+    fetchSubmodules = true;
   };
 
+  patches = [
+    # Subset of https://github.com/privacyidea/privacyidea/commit/359db6dd10212b8a210e0a83536e92e9e796a1f8,
+    # fixes app context errors in tests. Can be removed on the next bump.
+    ./fix-tests.patch
+  ];
+
   propagatedBuildInputs = [
     cryptography pyrad pymysql python-dateutil flask-versioned flask_script
     defusedxml croniter flask_migrate pyjwt configobj sqlsoup pillow
     python-gnupg passlib pyopenssl beautifulsoup4 smpplib flask-babel
     ldap3 huey pyyaml qrcode oauth2client requests lxml cbor2 psycopg2
+    pydash
   ];
 
-  checkInputs = [ openssl mock pytest responses testfixtures ];
-  # issues with hardware token tests
-  doCheck = false;
+  passthru.tests = { inherit (nixosTests) privacyidea; };
+
+  checkInputs = [ openssl mock pytestCheckHook responses testfixtures ];
+  disabledTests = [
+    "AESHardwareSecurityModuleTestCase"
+    "test_01_cert_request"
+    "test_01_loading_scripts"
+    "test_02_api_push_poll"
+    "test_02_cert_enrolled"
+    "test_02_enroll_rights"
+    "test_02_get_resolvers"
+    "test_02_success"
+    "test_03_get_identifiers"
+    "test_04_remote_user_auth"
+    "test_14_convert_timestamp_to_utc"
+  ];
 
   pythonImportsCheck = [ "privacyidea" ];
 
@@ -46,6 +68,6 @@ buildPythonPackage rec {
     description = "Multi factor authentication system (2FA, MFA, OTP Server)";
     license = licenses.agpl3Plus;
     homepage = "http://www.privacyidea.org";
-    maintainers = [ maintainers.globin ];
+    maintainers = with maintainers; [ globin ma27 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/privacyidea/fix-tests.patch b/nixpkgs/pkgs/development/python-modules/privacyidea/fix-tests.patch
new file mode 100644
index 000000000000..67c22d2052e1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/privacyidea/fix-tests.patch
@@ -0,0 +1,28 @@
+diff --git a/privacyidea/lib/resolvers/LDAPIdResolver.py b/privacyidea/lib/resolvers/LDAPIdResolver.py
+index ae9d87764..cfc609931 100644
+--- a/privacyidea/lib/resolvers/LDAPIdResolver.py
++++ b/privacyidea/lib/resolvers/LDAPIdResolver.py
+@@ -97,11 +97,6 @@
+ SERVERPOOL_ROUNDS = 2
+ # The number of seconds a non-responding server is removed from the server pool
+ SERVERPOOL_SKIP = 30
+-# The number of seconds that ldap3 waits if no server is left in the pool, before
+-# starting the next round
+-pooling_loop_timeout = get_app_config_value("PI_LDAP_POOLING_LOOP_TIMEOUT", 10)
+-log.info("Setting system wide POOLING_LOOP_TIMEOUT to {0!s}.".format(pooling_loop_timeout))
+-ldap3.set_config_parameter("POOLING_LOOP_TIMEOUT", pooling_loop_timeout)
+ 
+ # 1 sec == 10^9 nano secs == 10^7 * (100 nano secs)
+ MS_AD_MULTIPLYER = 10 ** 7
+@@ -314,6 +309,11 @@ def __init__(self):
+         self.serverpool_rounds = SERVERPOOL_ROUNDS
+         self.serverpool_skip = SERVERPOOL_SKIP
+         self.serverpool = None
++        # The number of seconds that ldap3 waits if no server is left in the pool, before
++        # starting the next round
++        pooling_loop_timeout = get_app_config_value("PI_LDAP_POOLING_LOOP_TIMEOUT", 10)
++        log.info("Setting system wide POOLING_LOOP_TIMEOUT to {0!s}.".format(pooling_loop_timeout))
++        ldap3.set_config_parameter("POOLING_LOOP_TIMEOUT", pooling_loop_timeout)
+ 
+     def checkPass(self, uid, password):
+         """
diff --git a/nixpkgs/pkgs/development/python-modules/promise/default.nix b/nixpkgs/pkgs/development/python-modules/promise/default.nix
index 68668812fc8a..403f0c097916 100644
--- a/nixpkgs/pkgs/development/python-modules/promise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/promise/default.nix
@@ -1,41 +1,35 @@
 { buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , lib
-
-, coveralls
-, gevent
+, six
+, pytestCheckHook
 , mock
 , pytest-asyncio
-, pytest-benchmark
-, pytestcov
-, six
 }:
 
 buildPythonPackage rec {
   pname = "promise";
-  version = "2.3";
+  version = "2.3.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1l4kknj97dj5pxfpsz3ln78x9a843561c740b1m4pfi3qlvq7lfz";
+  src = fetchFromGitHub {
+    owner = "syrusakbary";
+    repo = "promise";
+    rev = "v${version}";
+    sha256 = "17mq1bm78xfl0x1g50ng502m5ldq6421rzz35hlqafsj0cq8dkp6";
   };
 
-  patchPhase = ''
-    substituteInPlace setup.py \
-      --replace '"futures",' ""
-  '';
-
   propagatedBuildInputs = [
-    gevent
     six
   ];
 
   checkInputs = [
-    coveralls
+    pytestCheckHook
     mock
     pytest-asyncio
-    pytest-benchmark
-    pytestcov
+  ];
+
+  disabledTestPaths = [
+    "tests/test_benchmark.py"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/prompt_toolkit/default.nix b/nixpkgs/pkgs/development/python-modules/prompt_toolkit/default.nix
index 2fa885a69f71..e43931d914c5 100644
--- a/nixpkgs/pkgs/development/python-modules/prompt_toolkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prompt_toolkit/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "prompt_toolkit";
-  version = "3.0.8";
+  version = "3.0.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "25c95d2ac813909f813c93fde734b6e44406d1477a9faef7c915ff37d39c0a8c";
+    sha256 = "0fa02fa80363844a4ab4b8d6891f62dd0645ba672723130423ca4037b80c1974";
   };
   checkPhase = ''
     py.test -k 'not test_pathcompleter_can_expanduser'
diff --git a/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix b/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix
index cc9444098def..120d5215b2fe 100644
--- a/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix
@@ -3,24 +3,24 @@
 , fetchPypi
 , isPy3k
 , protobuf
-, googleapis_common_protos
+, googleapis-common-protos
 , pytestCheckHook
 , pytz
 }:
 
 buildPythonPackage rec {
   pname = "proto-plus";
-  version = "1.13.0";
+  version = "1.18.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1i5jjnwpd288378h37zads08h695iwmhxm0sxbr3ln6aax97rdb1";
+    sha256 = "sha256-z8RUdMftoP48S57KJUISTyoP9VQyQr7GHo0IvOD1vUg=";
   };
 
   propagatedBuildInputs = [ protobuf ];
 
-  checkInputs = [ pytestCheckHook pytz googleapis_common_protos ];
+  checkInputs = [ pytestCheckHook pytz googleapis-common-protos ];
 
   pythonImportsCheck = [ "proto" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/protobuf/default.nix b/nixpkgs/pkgs/development/python-modules/protobuf/default.nix
index e7bbdd6ccdf8..60c6f333275b 100644
--- a/nixpkgs/pkgs/development/python-modules/protobuf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/protobuf/default.nix
@@ -1,6 +1,5 @@
 { buildPackages
 , lib
-, stdenv
 , fetchpatch
 , python
 , buildPythonPackage
@@ -20,12 +19,6 @@ buildPythonPackage {
   inherit disabled;
   doCheck = doCheck && !isPy27; # setuptools>=41.4 no longer collects correctly on python2
 
-  NIX_CFLAGS_COMPILE = toString (
-    # work around python distutils compiling C++ with $CC
-    lib.optional stdenv.isDarwin "-I${libcxx}/include/c++/v1"
-    ++ lib.optional (lib.versionOlder protobuf.version "2.7.0") "-std=c++98"
-  );
-
   outputs = [ "out" "dev" ];
 
   propagatedBuildInputs = [ six ] ++ lib.optionals isPy27 [ google-apputils ];
diff --git a/nixpkgs/pkgs/development/python-modules/protobuf3-to-dict/default.nix b/nixpkgs/pkgs/development/python-modules/protobuf3-to-dict/default.nix
new file mode 100644
index 000000000000..ffc21c1428fe
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/protobuf3-to-dict/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, protobuf, six }:
+
+buildPythonPackage rec {
+  pname = "protobuf3-to-dict";
+  version = "0.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nibblvj3n20zvq6d73zalbjqjby0w8ji5mim7inhn7vb9dw4hhy";
+  };
+
+  doCheck = false;
+
+  pythonImportsCheck = [ "protobuf_to_dict" ];
+
+  propagatedBuildInputs = [ protobuf six ];
+
+  meta = with lib; {
+    description = "A teeny Python library for creating Python dicts from protocol buffers and the reverse";
+    homepage = "https://github.com/kaporzhu/protobuf-to-dict";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ nequissimus ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/proxmoxer/default.nix b/nixpkgs/pkgs/development/python-modules/proxmoxer/default.nix
new file mode 100644
index 000000000000..cdbec22bc1fe
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/proxmoxer/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, nose
+, paramiko
+, pytestCheckHook
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "proxmoxer";
+  version = "1.1.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "09fz8zbxjaly9zqksvq6cqp66plbsyjsmndy4g25ryys45siz1ny";
+  };
+
+  propagatedBuildInputs = [
+    paramiko
+    requests
+  ];
+
+  checkInputs = [
+    mock
+    nose
+    pytestCheckHook
+  ];
+
+  # Tests require openssh_wrapper which is outdated and not available
+  pytestFlagsArray = [ "tests/paramiko_tests.py" ];
+  pythonImportsCheck = [ "proxmoxer" ];
+
+  meta = with lib; {
+    description = "Python wrapper for Proxmox API v2";
+    homepage = "https://github.com/proxmoxer/proxmoxer";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/psautohint/default.nix b/nixpkgs/pkgs/development/python-modules/psautohint/default.nix
index 68d151336706..cfed6dd74cf6 100644
--- a/nixpkgs/pkgs/development/python-modules/psautohint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psautohint/default.nix
@@ -2,12 +2,12 @@
 , fonttools
 , lxml, fs # for fonttools extras
 , setuptools_scm
-, pytestCheckHook, pytest_5, pytestcov, pytest_xdist
+, pytestCheckHook, pytestcov, pytest_xdist
 }:
 
 buildPythonPackage rec {
   pname = "psautohint";
-  version = "2.2.0";
+  version = "2.3.0";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "adobe-type-tools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0gsgfr190xy2rnjf1gf7688xrh13ihgq10s19s4rv5hp6pmg9iaa";
+    sha256 = "1y7mqc2myn1gfzg4h018f8xza0q535shnqg6snnaqynz20i8jcfh";
     fetchSubmodules = true; # data dir for tests
   };
 
@@ -30,14 +30,14 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ fonttools lxml fs ];
 
   checkInputs = [
-    # Override pytestCheckHook to use pytest v5, because some tests fail on pytest >= v6
-    # https://github.com/adobe-type-tools/psautohint/issues/284#issuecomment-742800965
-    # Override might be able to be removed in future, check package dependency pins (coverage.yml)
-    (pytestCheckHook.override{ pytest = pytest_5; })
+    pytestCheckHook
     pytestcov
     pytest_xdist
   ];
   disabledTests = [
+    # Test that fails on pytest >= v6
+    # https://github.com/adobe-type-tools/psautohint/issues/284#issuecomment-742800965
+    "test_hashmap_old_version"
     # Slow tests, reduces test time from ~5 mins to ~30s
     "test_mmufo"
     "test_flex_ufo"
diff --git a/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix b/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
index 783905c70241..92810ec6a5fb 100644
--- a/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "psd-tools";
-  version = "1.9.16";
+  version = "1.9.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dece6327b5aa03b53163c63e2bf90b4a7b0ff6872ef743adab140a59cb2318ff";
+    sha256 = "d01e11581442dfcc1bd73ac3278bdf1f98e9df8f083a11e5989632ff97322b65";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/psutil/default.nix b/nixpkgs/pkgs/development/python-modules/psutil/default.nix
index 6760ff168e56..a53005c7426a 100644
--- a/nixpkgs/pkgs/development/python-modules/psutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psutil/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, buildPythonPackage, fetchPypi, isPy27, python
 , darwin
-, pytest
+, pytestCheckHook
 , mock
 , ipaddress
 , unittest2
@@ -18,15 +18,20 @@ buildPythonPackage rec {
   # arch doesn't report frequency is the same way
   # tests segfaults on darwin https://github.com/giampaolo/psutil/issues/1715
   doCheck = !stdenv.isDarwin && stdenv.isx86_64;
-  checkInputs = [ pytest ]
+  checkInputs = [ pytestCheckHook ]
     ++ lib.optionals isPy27 [ mock ipaddress unittest2 ];
-  # out must be referenced as test import paths are relative
+  pytestFlagsArray = [
+    "$out/${python.sitePackages}/psutil/tests/test_system.py"
+  ];
   # disable tests which don't work in sandbox
   # cpu_times is flakey on darwin
-  checkPhase = ''
-    pytest $out/${python.sitePackages}/psutil/tests/test_system.py \
-      -k 'not user and not disk_io_counters and not sensors_battery and not cpu_times'
-  '';
+  disabledTests = [
+    "user"
+    "disk_io_counters"
+    "sensors_battery"
+    "cpu_times"
+    "cpu_freq"
+  ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.IOKit ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/ptpython/default.nix b/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
index 2758c3a582ff..51ad2e85ff2e 100644
--- a/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
@@ -1,18 +1,30 @@
-{ lib, buildPythonPackage, pythonOlder, fetchPypi, prompt_toolkit, appdirs, docopt, jedi
-, pygments, importlib-metadata, isPy3k }:
+{ lib, buildPythonPackage, pythonOlder, fetchPypi
+, appdirs
+, black
+, importlib-metadata
+, isPy3k
+, jedi
+, prompt_toolkit
+, pygments
+}:
 
 buildPythonPackage rec {
   pname = "ptpython";
-  version = "3.0.7";
+  version = "3.0.16";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "34814eb410f854c823be4c4a34124e1dc8ca696da1c1fa611f9da606c5a8a609";
+    sha256 = "4b0f6e381a8251ec8d6aa94fe12f3400bf6edf789f89c8a6099f8a91d4a5d2e1";
   };
 
-  propagatedBuildInputs = [ appdirs prompt_toolkit docopt jedi pygments ]
-    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+  propagatedBuildInputs = [
+    appdirs
+    black # yes, this is in install_requires
+    jedi
+    prompt_toolkit
+    pygments
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # no tests to run
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pubnub/default.nix b/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
index e4bab25fd9c1..c2f1a9fb34dd 100644
--- a/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
@@ -5,7 +5,6 @@
 , fetchFromGitHub
 , pycryptodomex
 , pytestCheckHook
-, pyyaml
 , pytest-vcr
 , pytest-asyncio
 , requests
@@ -14,16 +13,17 @@
 
 buildPythonPackage rec {
   pname = "pubnub";
-  version = "4.8.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "python";
     rev = "v${version}";
-    sha256 = "16wjal95042kh5fxhvji0rwmw892pacqcnyms520mw15wcwilqir";
+    sha256 = "sha256-ir8f8A6XuN1ZQIYQbArChLzTlYu4ZKpkoOXQtSLOvKg=";
   };
 
   propagatedBuildInputs = [
+    aiohttp
     cbor2
     pycryptodomex
     requests
@@ -31,19 +31,15 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    aiohttp
-    pycryptodomex
     pytest-asyncio
     pytestCheckHook
     pytest-vcr
-
   ];
 
-  # Some tests don't pass with recent releases of tornado/twisted
-  pytestFlagsArray = [
-    "--ignore tests/integrational"
-    "--ignore tests/manual/asyncio"
-    "--ignore tests/manual/tornado/test_reconnections.py"
+  # Some tests don't pass with recent releases of twisted
+  disabledTestPaths = [
+    "tests/integrational"
+    "tests/manual/asyncio"
   ];
 
   pythonImportsCheck = [ "pubnub" ];
diff --git a/nixpkgs/pkgs/development/python-modules/pure-cdb/default.nix b/nixpkgs/pkgs/development/python-modules/pure-cdb/default.nix
new file mode 100644
index 000000000000..29905d72cf27
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pure-cdb/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub, buildPythonPackage, pythonOlder, flake8 }:
+
+buildPythonPackage rec {
+  pname = "pure-cdb";
+  version = "3.1.1";
+  disabled = pythonOlder "3.4";
+
+  # Archive on pypi has no tests.
+  src = fetchFromGitHub {
+    owner = "bbayles";
+    repo = "python-pure-cdb";
+    rev = "v${version}";
+    hash = "sha256-/FAe4NkY5unt83BOnJ3QqBJFQCPdQnbMVl1fSZ511Fc=";
+  };
+
+  checkInputs = [ flake8 ];
+
+  pythonImportsCheck = [ "cdblib" ];
+
+  meta = with lib; {
+    description = "Python library for working with constant databases";
+    homepage = "https://python-pure-cdb.readthedocs.io/en/latest";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kaction ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/py-cid/default.nix b/nixpkgs/pkgs/development/python-modules/py-cid/default.nix
new file mode 100644
index 000000000000..86c2e80601f6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/py-cid/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, base58
+, py-multibase
+, py-multicodec
+, morphys
+, py-multihash
+, hypothesis
+}:
+
+buildPythonPackage rec {
+  pname = "py-cid";
+  version = "0.3.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "ipld";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-aN7ee25ghKKa90+FoMDCdGauToePc5AzDLV3tONvh4U=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "base58>=1.0.2,<2.0" "base58>=1.0.2" \
+      --replace "py-multihash>=0.2.0,<1.0.0" "py-multihash>=0.2.0" \
+      --replace "'pytest-runner'," ""
+  '';
+
+  propagatedBuildInputs = [
+    base58
+    py-multibase
+    py-multicodec
+    morphys
+    py-multihash
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    hypothesis
+  ];
+
+  pythonImportsCheck = [ "cid" ];
+
+  meta = with lib; {
+    description = "Self-describing content-addressed identifiers for distributed systems implementation in Python";
+    homepage = "https://github.com/ipld/py-cid";
+    license = licenses.mit;
+    maintainers = with maintainers; [ Luflosi ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix b/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix
index ae2f5ae9d6db..f9e276b3bb5f 100644
--- a/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix
@@ -1,28 +1,45 @@
 { lib
+, stdenv
 , fetchFromGitHub
+, fetchpatch
 , buildPythonPackage
-, pytest
+, pytestCheckHook
+, sysctl
 }:
 
 buildPythonPackage rec {
   pname = "py-cpuinfo";
-  version = "5.0.0";
+  version = "7.0.0";
 
   src = fetchFromGitHub {
      owner = "workhorsy";
      repo = pname;
      rev = "v${version}";
-     sha256 = "0lxl9n6djaz5h1zrb2jca4qwl41c2plxy8chr7yhcxnzg0srddqi";
+     sha256 = "10qfaibyb2syiwiyv74l7d97vnmlk079qirgnw3ncklqjs0s3gbi";
   };
 
+  patches = [
+    # Make it detect Apple Silicon, remove after https://github.com/workhorsy/py-cpuinfo/pull/161 is merged.
+    (fetchpatch {
+      url = "https://github.com/workhorsy/py-cpuinfo/commit/54c32da6678f9d75ec5acf4534056cdc85c2a04d.patch";
+      sha256 = "sha256-3R46KrpACAQ1V0CQtz48V5mQXxvplUQrXnACtiE8WqY=";
+    })
+    # Continuation of the patch above
+    (fetchpatch {
+      url = "https://github.com/workhorsy/py-cpuinfo/commit/0d00f4b99750f292c85ff23e1039ea9489cb7ec8.patch";
+      sha256 = "sha256-mHoXoCAEG2v3xpQppRFWzSvhYCp5i9CZkbEgtiLVzMs=";
+    })
+  ];
+
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    runHook preCheck
-    pytest -k "not TestActual"
-    runHook postCheck
+  # On Darwin sysctl is used to read CPU information.
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace cpuinfo/cpuinfo.py \
+      --replace "len(_program_paths('sysctl')) > 0" "True" \
+      --replace "_run_and_get_stdout(['sysctl'" "_run_and_get_stdout(['${sysctl}/bin/sysctl'"
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/py-multiaddr/default.nix b/nixpkgs/pkgs/development/python-modules/py-multiaddr/default.nix
new file mode 100644
index 000000000000..24fa6975cc5e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/py-multiaddr/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, varint
+, base58
+, netaddr
+, idna
+, py-cid
+, py-multicodec
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "py-multiaddr";
+  version = "0.0.9";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "multiformats";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-cGM7iYQPP+UOkbTxRhzuED0pkcydFCO8vpx9wTc0/HI=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "'pytest-runner'," ""
+  '';
+
+  propagatedBuildInputs = [
+    varint
+    base58
+    netaddr
+    idna
+    py-cid
+    py-multicodec
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "multiaddr" ];
+
+  meta = with lib; {
+    description = "Composable and future-proof network addresses";
+    homepage = "https://github.com/multiformats/py-multiaddr";
+    license = with licenses; [ mit asl20 ];
+    maintainers = with maintainers; [ Luflosi ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/py-sonic/default.nix b/nixpkgs/pkgs/development/python-modules/py-sonic/default.nix
index c35e650e18bb..dce8157da566 100644
--- a/nixpkgs/pkgs/development/python-modules/py-sonic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-sonic/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "py-sonic";
-  version = "0.7.8";
+  version = "0.7.9";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nfpiry1jlgcyxcs5zamyfxwdvdiwg4yw0v8jysfc74hm362rg7d";
+    sha256 = "1677b7287914567b5123de90ad872b441628d8a7777cf4a5f41671b813facf75";
   };
 
   # package has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index ea5c93dbeaa1..76e9954a024a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyTelegramBotAPI";
-  version = "3.7.4";
+  version = "3.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9b95f441c390fd30a4452a984406310f60a7f4803df57860ccb6a79881506c46";
+    sha256 = "859136cbd50e99922e1ea495d4ebe8235b2cb10fe419a5421f28855249db4278";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix b/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix
index 882182a3a1ef..bcbb672f5c80 100644
--- a/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyairvisual";
-  version = "5.0.6";
+  version = "5.0.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-7u8AwIr1Ah/7zCfXFwj/C/CaD/B3uLRkZ8Gf6d18Xp0=";
+    sha256 = "sha256-r/AJl36dv6+C92tc3kpX4/VzG69qdh4ERCyQxDOHdVU=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyalmond/default.nix b/nixpkgs/pkgs/development/python-modules/pyalmond/default.nix
new file mode 100644
index 000000000000..59a9339c2649
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyalmond/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyalmond";
+  version = "0.0.3";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "stanford-oval";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0d1w83lr7k2wxcs846iz4mjyqn1ximnw6155kgl515v10fqyrhgk";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Tests require a running Almond instance
+  doCheck = false;
+  pythonImportsCheck = [ "pyalmond" ];
+
+  meta = with lib; {
+    description = "Python client for the Almond API";
+    homepage = "https://github.com/stanford-oval/pyalmond";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix b/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix
index b9c84c484dfe..a38d5df50ddf 100644
--- a/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, futures, hypothesis, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkg-config, setuptools_scm, six }:
+{ lib, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, hypothesis, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkg-config, setuptools_scm, six }:
 
 let
   _arrow-cpp = arrow-cpp.override { python3 = python; };
diff --git a/nixpkgs/pkgs/development/python-modules/pyatv/default.nix b/nixpkgs/pkgs/development/python-modules/pyatv/default.nix
index 2fca74b33aa9..ddf2c9695a46 100644
--- a/nixpkgs/pkgs/development/python-modules/pyatv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyatv/default.nix
@@ -1,55 +1,58 @@
-{ lib, buildPythonPackage
+{ lib
+, buildPythonPackage
 , aiohttp
 , aiozeroconf
-, asynctest
 , cryptography
 , deepdiff
+, fetchFromGitHub
 , netifaces
 , protobuf
-, pytest
 , pytest-aiohttp
 , pytest-asyncio
-, pytestrunner
+, pytest-runner
+, pytest-timeout
+, pytestCheckHook
 , srptools
 , zeroconf
-, fetchFromGitHub
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pyatv";
-  version = "0.7.6";
+  version = "0.7.7";
+
   src = fetchFromGitHub {
     owner = "postlund";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1lahv6f97fizgh5b2w5yz9455l8ygn99rslhiygkgjywi2flx3p3";
+    sha256 = "sha256-dPnh8XZN7ZVR2rYNnj7GSYXW5I2GNQwD/KRDTgs2AtI=";
   };
 
-  nativeBuildInputs = [ pytestrunner];
+  nativeBuildInputs = [ pytest-runner];
 
   propagatedBuildInputs = [
-    aiozeroconf
-    srptools
     aiohttp
-    protobuf
+    aiozeroconf
     cryptography
     netifaces
+    protobuf
+    srptools
     zeroconf
   ];
 
   checkInputs = [
     deepdiff
-    pytest
     pytest-aiohttp
     pytest-asyncio
+    pytest-timeout
     pytestCheckHook
   ];
 
   __darwinAllowLocalNetworking = true;
 
+  pythonImportsCheck = [ "pyatv" ];
+
   meta = with lib; {
-    description = "A python client library for the Apple TV";
+    description = "Python client library for the Apple TV";
     homepage = "https://github.com/postlund/pyatv";
     license = licenses.mit;
     maintainers = with maintainers; [ elseym ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix b/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix
index e77c6dda8402..961b00e15332 100644
--- a/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix
@@ -1,29 +1,19 @@
-{ buildPythonPackage, lib, lxml, click, fetchFromGitHub, pytest, isPy3k }:
+{ buildPythonPackage, lib, lxml, click, fetchFromGitHub, pytestCheckHook, asn1crypto }:
 
 buildPythonPackage rec {
-  version = "0.3.24";
+  version = "0.3.26";
   pname = "pyaxmlparser";
 
-  # the PyPI tarball doesn't ship tests.
   src = fetchFromGitHub {
     owner = "appknox";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fys26p7xhbnbdzp80zm6n3mragp38p08nyrsnilfgnlpi6rjpg0";
+    sha256 = "sha256-wD0rN00q4ipKnKubptrgrjNwkBpqsA+ix2xedOOr8Yg=";
   };
 
-  disabled = !isPy3k;
+  propagatedBuildInputs = [ asn1crypto click lxml ];
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "click==6.7" "click"
-  '';
-
-  propagatedBuildInputs = [ lxml click ];
-
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    py.test tests/
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Python3 Parser for Android XML file and get Application Name without using Androguard";
diff --git a/nixpkgs/pkgs/development/python-modules/pybids/default.nix b/nixpkgs/pkgs/development/python-modules/pybids/default.nix
index 9cca6cf57efc..034bdb6363a0 100644
--- a/nixpkgs/pkgs/development/python-modules/pybids/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybids/default.nix
@@ -1,7 +1,6 @@
 { buildPythonPackage
 , lib
 , fetchPypi
-, isPy27
 , click
 , num2words
 , numpy
@@ -11,8 +10,7 @@
 , patsy
 , bids-validator
 , sqlalchemy
-, pytest
-, pathlib
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -36,11 +34,8 @@ buildPythonPackage rec {
     sqlalchemy
   ];
 
-  checkInputs = [ pytest ] ++ lib.optionals isPy27 [ pathlib ];
-
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "bids" ];
 
   meta = with lib; {
     description = "Python tools for querying and manipulating BIDS datasets";
diff --git a/nixpkgs/pkgs/development/python-modules/pybigwig/default.nix b/nixpkgs/pkgs/development/python-modules/pybigwig/default.nix
index be54a38cd996..cb1764b23b04 100644
--- a/nixpkgs/pkgs/development/python-modules/pybigwig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybigwig/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pyBigWig";
-  version = "0.3.17";
+  version = "0.3.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "157x6v48y299zm382krf1dw08fdxg95im8lnabhp5vc94s04zxj1";
+    sha256 = "4c2a8c571b4100ad7c4c318c142eb48558646be52aaab28215a70426f5be31bc";
   };
 
   buildInputs = [ zlib ];
diff --git a/nixpkgs/pkgs/development/python-modules/pycdio/default.nix b/nixpkgs/pkgs/development/python-modules/pycdio/default.nix
index 712029b692ce..7e06b18e32b2 100644
--- a/nixpkgs/pkgs/development/python-modules/pycdio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycdio/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     patchShebangs .
   '';
 
-  nativeBuildInputs = [ nose pkgs.pkgconfig pkgs.swig ];
+  nativeBuildInputs = [ nose pkgs.pkg-config pkgs.swig ];
   buildInputs = [ setuptools pkgs.libcdio ]
     ++ lib.optional stdenv.isDarwin pkgs.libiconv;
 
diff --git a/nixpkgs/pkgs/development/python-modules/pycec/default.nix b/nixpkgs/pkgs/development/python-modules/pycec/default.nix
new file mode 100644
index 000000000000..c65ea3a695ff
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pycec/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, libcec
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pycec";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "konikvranik";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ivnmihajhfkwwghgl0f8n9ragpirbmbj1mhj9bmjjc29zzdc3m6";
+  };
+
+  propagatedBuildInputs = [
+    libcec
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pycec" ];
+
+  meta = with lib; {
+    description = "Python modules to access HDMI CEC devices";
+    homepage = "https://github.com/konikvranik/pycec/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pychannels/default.nix b/nixpkgs/pkgs/development/python-modules/pychannels/default.nix
new file mode 100644
index 000000000000..0c5e290334da
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pychannels/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pychannels";
+  version = "1.2.2";
+
+  src = fetchFromGitHub {
+    owner = "fancybits";
+    repo = pname;
+    rev = version;
+    sha256 = "0dqc0vhf6c5r3g7nfbpa668x6z2zxrznk6h907s6sxkq4sbqnhqf";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Project has not published tests yet
+  doCheck = false;
+  pythonImportsCheck = [ "pychannels" ];
+
+  meta = with lib; {
+    description = "Python library for interacting with the Channels app";
+    homepage = "https://github.com/fancybits/pychannels";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
index 9eefaa5f364f..cc68d83d02b0 100644
--- a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "8.0.0";
+  version = "9.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dlxgh57j25cvk2pqr2dj4lv6yn0pix2rcl2kzqsg2405rdjks91";
+    sha256 = "sha256-kHZWzqRtOdDpPsgVl5V470+29lX9i/TojmQh/NeCToU=";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/pycryptodomex/default.nix b/nixpkgs/pkgs/development/python-modules/pycryptodomex/default.nix
index d58821569e62..fae49e7be0a7 100644
--- a/nixpkgs/pkgs/development/python-modules/pycryptodomex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -1,17 +1,23 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
 
 buildPythonPackage rec {
   pname = "pycryptodomex";
-  version = "3.9.9";
-
-  meta = {
-    description = "A self-contained cryptographic library for Python";
-    homepage = "https://www.pycryptodome.org";
-    license = lib.licenses.bsd2;
-  };
+  version = "3.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b5b7c5896f8172ea0beb283f7f9428e0ab88ec248ce0a5b8c98d73e26267d51";
+    sha256 = "sha256-VBzT4+JS+xmntI9CC3mLU0gzArf+TZlUyUdgXQomPWI=";
+  };
+
+  pythonImportsCheck = [ "Cryptodome" ];
+
+  meta = with lib; {
+    description = "A self-contained cryptographic library for Python";
+    homepage = "https://www.pycryptodome.org";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pydaikin/default.nix b/nixpkgs/pkgs/development/python-modules/pydaikin/default.nix
new file mode 100644
index 000000000000..209ef3dbc235
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pydaikin/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromBitbucket
+, freezegun
+, netifaces
+, pytest-aiohttp
+, pytestCheckHook
+, pythonOlder
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "pydaikin";
+  version = "2.4.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromBitbucket {
+    owner = "mustang51";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1624adp4lqd1n9flnf0wqrcibml2nd19ga3fmxzjg4x5z6767bs3";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    netifaces
+    urllib3
+  ];
+
+  checkInputs = [
+    freezegun
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pydaikin" ];
+
+  meta = with lib; {
+    description = "Python Daikin HVAC appliances interface";
+    homepage = "https://bitbucket.org/mustang51/pydaikin";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pydantic/default.nix b/nixpkgs/pkgs/development/python-modules/pydantic/default.nix
index 9bf4bede1faf..d3c6e37bbe4b 100644
--- a/nixpkgs/pkgs/development/python-modules/pydantic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydantic/default.nix
@@ -1,44 +1,45 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
-, ujson
 , email_validator
-, typing-extensions
-, python
-, isPy3k
-, pytest
-, pytestcov
+, fetchFromGitHub
 , pytest-mock
+, pytestCheckHook
+, python-dotenv
+, pythonOlder
+, typing-extensions
+, ujson
 }:
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "1.7.3";
-  disabled = !isPy3k;
+  version = "1.8";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "samuelcolvin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "xihEDmly0vprmA+VdeCoGXg9PjWRPmBWAwk/9f2DLts=";
+    sha256 = "sha256-+HfnM/IrFlUyQJdiOYyaJUNenh8dLtd8CUJWSbn6hwQ=";
   };
 
   propagatedBuildInputs = [
-    ujson
     email_validator
+    python-dotenv
     typing-extensions
+    ujson
   ];
 
   checkInputs = [
-    pytest
-    pytestcov
     pytest-mock
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    pytest
+  preCheck = ''
+    export HOME=$(mktemp -d)
   '';
 
+  pythonImportsCheck = [ "pydantic" ];
+
   meta = with lib; {
     homepage = "https://github.com/samuelcolvin/pydantic";
     description = "Data validation and settings management using Python type hinting";
diff --git a/nixpkgs/pkgs/development/python-modules/pydash/0001-Only-build-unit-tests.patch b/nixpkgs/pkgs/development/python-modules/pydash/0001-Only-build-unit-tests.patch
new file mode 100644
index 000000000000..56a5ff391194
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pydash/0001-Only-build-unit-tests.patch
@@ -0,0 +1,30 @@
+From 2fe7a445bafedee2c43050e40697d8b0fd7f7b30 Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Fri, 19 Mar 2021 19:37:34 +0100
+Subject: [PATCH] Only build unit-tests
+
+---
+ setup.cfg | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/setup.cfg b/setup.cfg
+index 2c2f49f..a5ec152 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -83,13 +83,6 @@ force_sort_within_sections = true
+ junit_family = xunit2
+ addopts =
+     --verbose
+-    --doctest-modules
+-    --no-cov-on-fail
+-    --cov-fail-under=100
+-    --cov-report=term-missing
+-    --cov-report=xml:build/coverage/coverage.xml
+-    --cov-report=html:build/coverage
+-    --junitxml=build/testresults/junit.xml
+ 
+ [coverage:run]
+ omit =
+-- 
+2.29.3
+
diff --git a/nixpkgs/pkgs/development/python-modules/pydash/default.nix b/nixpkgs/pkgs/development/python-modules/pydash/default.nix
new file mode 100644
index 000000000000..7d75896397f3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pydash/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchFromGitHub, mock, pytestCheckHook, invoke }:
+
+buildPythonPackage rec {
+  pname = "pydash";
+  version = "4.9.3";
+
+  src = fetchFromGitHub {
+    owner = "dgilland";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-BAyiSnILvujUOFOAkiXSgyozs2Q809pYihHwa+6BHcQ=";
+  };
+
+  patches = [ ./0001-Only-build-unit-tests.patch ];
+
+  checkInputs = [ mock pytestCheckHook invoke ];
+
+  meta = with lib; {
+    homepage = "https://github.com/dgilland/pydash";
+    description = "The kitchen sink of Python utility libraries for doing \"stuff\" in a functional way. Based on the Lo-Dash Javascript library.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ma27 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix b/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
new file mode 100644
index 000000000000..73d989468c55
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, aiohttp
+, aioresponses
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pydeconz";
+  version = "78";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Kane610";
+    repo = "deconz";
+    rev = "v${version}";
+    sha256 = "sha256-uIRuLNGFX7gq59/ntfks9pECiGkX7jjKh2jmjxFRcv4=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pydeconz" ];
+
+  meta = with lib; {
+    description = "Python library wrapping the Deconz REST API";
+    homepage = "https://github.com/Kane610/deconz";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pydot/default.nix b/nixpkgs/pkgs/development/python-modules/pydot/default.nix
index 0a637a48ba2f..00e36ec37312 100644
--- a/nixpkgs/pkgs/development/python-modules/pydot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydot/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pydot";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d49c9d4dd1913beec2a997f831543c8cbd53e535b1a739e921642fe416235f01";
+    sha256 = "248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pydrive/default.nix b/nixpkgs/pkgs/development/python-modules/pydrive/default.nix
index aa0515323e29..5d1fc187c9f5 100644
--- a/nixpkgs/pkgs/development/python-modules/pydrive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydrive/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, google_api_python_client
+, google-api-python-client
 , oauth2client
 , pyyaml
 }:
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    google_api_python_client
+    google-api-python-client
     oauth2client
     pyyaml
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyeight/default.nix b/nixpkgs/pkgs/development/python-modules/pyeight/default.nix
new file mode 100644
index 000000000000..b3a2de5ed404
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyeight/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyeight";
+  version = "0.1.5";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "mezz64";
+    repo = "pyEight";
+    rev = version;
+    sha256 = "1wzmjqs8zx611b71ip7a0phyas96vxpq8xpnhrirfi9l09kdjgsw";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyeight" ];
+
+  meta = with lib; {
+    description = "Python library to interface with the Eight Sleep API";
+    homepage = "https://github.com/mezz64/pyEight";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix b/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix
index 258c97a3c112..ef9a7f1368ee 100644
--- a/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "09igdym2qj2fvfcazbz25qybmgz7ccrn25xn3havfkdkka0z0i3p";
   };
 
-  doCheck = stdenv.is64bit && !stdenv.isDarwin;
+  doCheck = stdenv.hostPlatform.system == "x86_64-linux";
 
   checkPhase = ''
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" test/external_tools/readelf
diff --git a/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix b/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix
index 34d11830e570..7e09a21e3627 100644
--- a/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pyexcel-xls";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c4cc1fb4ac5d1682a44d9a368a43ec2e089ad6fc46884648ccfad46863e3da0a";
+    sha256 = "2fbf66e8df88051eaaa9745be433903d18db819ddd3a987c992ead1d68b7feb5";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix b/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
index 64ec58487c45..8ba9b3fc46fc 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
@@ -1,13 +1,19 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder, python, pytest, glibcLocales }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
-  version = "4.3.2";
+  version = "4.3.3";
   pname = "pyfakefs";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dfeed4715e2056e3e56b9c5f51a679ce2934897eef926f3d14e5364e43f19070";
+    sha256 = "sha256-/7KrJkoLg69Uii2wxQl5jiCDYd85YBuomK5lzs+1nLs=";
   };
 
   postPatch = ''
@@ -17,28 +23,22 @@ buildPythonPackage rec {
     substituteInPlace pyfakefs/tests/fake_os_test.py \
       --replace "test_path_links_not_resolved" "notest_path_links_not_resolved" \
       --replace "test_append_mode_tell_linux_windows" "notest_append_mode_tell_linux_windows"
-    substituteInPlace pyfakefs/tests/fake_filesystem_unittest_test.py \
-      --replace "test_copy_real_file" "notest_copy_real_file"
   '' + (lib.optionalString stdenv.isDarwin ''
     # this test fails on darwin due to case-insensitive file system
     substituteInPlace pyfakefs/tests/fake_os_test.py \
       --replace "test_rename_dir_to_existing_dir" "notest_rename_dir_to_existing_dir"
   '');
 
-  checkInputs = [ pytest glibcLocales ];
-
-  checkPhase = ''
-    export LC_ALL=en_US.UTF-8
-    ${python.interpreter} -m pyfakefs.tests.all_tests
-    ${python.interpreter} -m pyfakefs.tests.all_tests_without_extra_packages
-    ${python.interpreter} -m pytest pyfakefs/pytest_tests/pytest_plugin_test.py
-  '';
+  checkInputs = [ pytestCheckHook ];
+  # https://github.com/jmcgeheeiv/pyfakefs/issues/581 (OSError: [Errno 9] Bad file descriptor)
+  disabledTests = [ "test_open_existing_pipe" ];
+  pythonImportsCheck = [ "pyfakefs" ];
 
   meta = with lib; {
     description = "Fake file system that mocks the Python file system modules";
-    license     = licenses.asl20;
-    homepage    = "http://pyfakefs.org/";
-    changelog   = "https://github.com/jmcgeheeiv/pyfakefs/blob/master/CHANGES.md";
+    homepage = "http://pyfakefs.org/";
+    changelog = "https://github.com/jmcgeheeiv/pyfakefs/blob/master/CHANGES.md";
+    license = licenses.asl20;
     maintainers = with maintainers; [ gebner ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyfftw/default.nix b/nixpkgs/pkgs/development/python-modules/pyfftw/default.nix
index 155254a6af35..96e807f8eba3 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfftw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfftw/default.nix
@@ -10,20 +10,18 @@ buildPythonPackage rec {
     sha256 = "60988e823ca75808a26fd79d88dbae1de3699e72a293f812aa4534f8a0a58cb0";
   };
 
+  preConfigure = ''
+    export LDFLAGS="-L${fftw.out}/lib -L${fftwFloat.out}/lib -L${fftwLongDouble.out}/lib"
+    export CFLAGS="-I${fftw.dev}/include -I${fftwFloat.dev}/include -I${fftwLongDouble.dev}/include"
+  '';
+
   buildInputs = [ fftw fftwFloat fftwLongDouble];
 
   propagatedBuildInputs = [ numpy scipy cython dask ];
 
   # Tests cannot import pyfftw. pyfftw works fine though.
   doCheck = false;
-
-  preConfigure = ''
-    export LDFLAGS="-L${fftw.out}/lib -L${fftwFloat.out}/lib -L${fftwLongDouble.out}/lib"
-    export CFLAGS="-I${fftw.dev}/include -I${fftwFloat.dev}/include -I${fftwLongDouble.dev}/include"
-  '';
-  #+ optionalString isDarwin ''
-  #  export DYLD_LIBRARY_PATH="${pkgs.fftw.out}/lib"
-  #'';
+  pythonImportsCheck = [ "pyfftw" ];
 
   meta = with lib; {
     description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
diff --git a/nixpkgs/pkgs/development/python-modules/pyflume/default.nix b/nixpkgs/pkgs/development/python-modules/pyflume/default.nix
new file mode 100644
index 000000000000..a1d36670a396
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyflume/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, pyjwt
+, ratelimit
+, pytz
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "pyflume";
+  version = "0.6.2";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "ChrisMandich";
+    repo = "PyFlume";
+    rev = "v${version}";
+    sha256 = "0i181c8722j831bjlcjwv5ccy20hl8zzlv7bfp8w0976gdmv4iz8";
+  };
+
+  propagatedBuildInputs = [
+    pyjwt
+    ratelimit
+    pytz
+    requests
+  ];
+
+  checkInputs = [
+    requests-mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pyflume" ];
+
+  meta = with lib; {
+    description = "Python module to work with Flume sensors";
+    homepage = "https://github.com/ChrisMandich/PyFlume";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyflunearyou/default.nix b/nixpkgs/pkgs/development/python-modules/pyflunearyou/default.nix
new file mode 100644
index 000000000000..c8706760343e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyflunearyou/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, aiohttp
+, aresponses
+, aiocache
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytest-aiohttp
+, pytestCheckHook
+, pythonOlder
+, msgpack
+, ujson
+}:
+
+buildPythonPackage rec {
+  pname = "pyflunearyou";
+  version = "2.0.1";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-2a4OKPmy9tFLJqRg9bEXqrbr3RKVHmKPSYDrtAEqvdo=";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    aiocache
+    msgpack
+    ujson
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+  # Ignore the examples directory as the files are prefixed with test_.
+  # disabledTestFiles doesn't seem to work here
+  pytestFlagsArray = [ "--ignore examples/" ];
+  pythonImportsCheck = [ "pyflunearyou" ];
+
+  meta = with lib; {
+    description = "Python library for retrieving UV-related information from Flu Near You";
+    homepage = "https://github.com/bachya/pyflunearyou";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyfma/default.nix b/nixpkgs/pkgs/development/python-modules/pyfma/default.nix
index 936f9c2a02df..405098113acb 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfma/default.nix
@@ -1,18 +1,22 @@
 { lib
 , buildPythonPackage
+, isPy27
 , fetchPypi
 , pybind11
+, exdown
 , numpy
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pyfma";
-  version = "0.1.1";
+  version = "0.1.2";
+
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2c9ea44c5e30ca8318ca794ff1e3941d3dc7958901b1a9c430d38734bf7b6f8d";
+    sha256 = "3a9e2503fd01baa4978af5f491b79b7646d7872df9ecc7ab63ba10c250c50d8a";
   };
 
   buildInputs = [
@@ -20,17 +24,12 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    exdown
     numpy
-    pytest
+    pytestCheckHook
   ];
 
-  preBuild = ''
-    export HOME=$(mktemp -d)
-  '';
-
-  checkPhase = ''
-    pytest test
-  '';
+  pythonImportsCheck = [ "pyfma" ];
 
   meta = with lib; {
     description = "Fused multiply-add for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix b/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix
index e9b66a95771b..bac70be9987f 100644
--- a/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix
@@ -1,40 +1,48 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi, substituteAll, graphviz
-, pkg-config, doctest-ignore-unicode, mock, nose }:
+{ lib
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+, substituteAll
+, graphviz
+, coreutils
+, pkg-config
+, pytest
+}:
 
 buildPythonPackage rec {
   pname = "pygraphviz";
-  version = "1.6";
+  version = "1.7";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "411ae84a5bc313e3e1523a1cace59159f512336318a510573b47f824edef8860";
+    sha256 = "a7bec6609f37cf1e64898c59f075afd659106cf9356c5f387cecaa2e0cdb2304";
     extension = "zip";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ graphviz ];
-  checkInputs = [ doctest-ignore-unicode mock nose ];
-
   patches = [
-    # pygraphviz depends on graphviz being in PATH. This patch always prepends
-    # graphviz to PATH.
+    # pygraphviz depends on graphviz executables and wc being in PATH
     (substituteAll {
-      src = ./graphviz-path.patch;
-      inherit graphviz;
+      src = ./path.patch;
+      path = lib.makeBinPath [ graphviz coreutils ];
     })
   ];
 
-  # The tests are currently failing because of a bug in graphviz 2.40.1.
-  # Upstream does not want to skip the relevant tests:
-  # https://github.com/pygraphviz/pygraphviz/pull/129
-  doCheck = false;
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ graphviz ];
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest --pyargs pygraphviz
+  '';
 
   meta = with lib; {
     description = "Python interface to Graphviz graph drawing package";
     homepage = "https://github.com/pygraphviz/pygraphviz";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ matthiasbeyer ];
+    maintainers = with maintainers; [ matthiasbeyer dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pygraphviz/graphviz-path.patch b/nixpkgs/pkgs/development/python-modules/pygraphviz/graphviz-path.patch
deleted file mode 100644
index e4ff925009d7..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pygraphviz/graphviz-path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/pygraphviz/agraph.py b/pygraphviz/agraph.py
-index 8f72024..2d8358e 100644
---- a/pygraphviz/agraph.py
-+++ b/pygraphviz/agraph.py
-@@ -1557,7 +1557,7 @@ class AGraph(object):
-         import os
-         import glob
- 
--        paths = os.environ["PATH"]
-+        paths = '@graphviz@/bin:' + os.environ["PATH"]
-         if os.name == "nt":
-             exe = ".exe"
-         else:
diff --git a/nixpkgs/pkgs/development/python-modules/pygraphviz/path.patch b/nixpkgs/pkgs/development/python-modules/pygraphviz/path.patch
new file mode 100644
index 000000000000..a895eae77567
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pygraphviz/path.patch
@@ -0,0 +1,13 @@
+diff --git a/pygraphviz/agraph.py b/pygraphviz/agraph.py
+index d539ba0..f5bac3f 100644
+--- a/pygraphviz/agraph.py
++++ b/pygraphviz/agraph.py
+@@ -1792,7 +1792,7 @@ class AGraph:
+         if platform.system() == "Windows":
+             name += ".exe"
+ 
+-        paths = os.environ["PATH"]
++        paths = '@path@'
+         for path in paths.split(os.pathsep):
+             match = glob.glob(os.path.join(path, name))
+             if match:
diff --git a/nixpkgs/pkgs/development/python-modules/pygtrie/default.nix b/nixpkgs/pkgs/development/python-modules/pygtrie/default.nix
index e22af4b52068..8ee176e80c2f 100644
--- a/nixpkgs/pkgs/development/python-modules/pygtrie/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygtrie/default.nix
@@ -1,10 +1,10 @@
 { lib, fetchPypi, buildPythonPackage, ... }:
 buildPythonPackage rec {
   pname = "pygtrie";
-  version = "2.4.1";
+  version = "2.4.2";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4367b87d92eaf475107421dce0295a9d4d72156702908c96c430a426b654aee7";
+    sha256 = "43205559d28863358dbbf25045029f58e2ab357317a59b11f11ade278ac64692";
   };
   meta = {
     homepage = "https://github.com/mina86/pygtrie";
diff --git a/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix b/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
index 22290695cc0a..ade4c01833c3 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pyhaversion";
-  version = "20.12.1";
+  version = "21.3.0";
 
   # Only 3.8.0 and beyond are supported
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "17yl67dgw75dghljcfwzblm11kqnh6sxf47w62mxz86aq9zrvcxd";
+    sha256 = "sha256-2vW4BN5qwJZYQ8FU3bpSA2v1dX6TOhcHDbHRMDPoRAs=";
   };
 
   propagatedBuildInputs = [
@@ -32,7 +32,6 @@ buildPythonPackage rec {
 
   checkInputs = [
     aresponses
-    awesomeversion
     pytest-asyncio
     pytestCheckHook
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix b/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
index 65d3f60da047..9bfa814894de 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
@@ -1,19 +1,26 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi }:
+{ lib
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+, python
+}:
 
 buildPythonPackage rec {
   pname = "pyhomematic";
-  version = "0.1.71";
+  version = "0.1.72";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0z09bw2mlhg7n9jyqmcyir306wpxr5nw1qsp5ps2iaw1qnyz5s9n";
+    sha256 = "a1d44103b90418d9c8cde4699a1c671d57d12469be23a45e93bfc00df28ef11b";
   };
 
-  # PyPI tarball does not include tests/ directory
-  # Unreliable timing: https://github.com/danielperna84/pyhomematic/issues/126
-  doCheck = false;
+  checkPhase = ''
+    ${python.interpreter} -m unittest
+  '';
+
+  pythonImportsCheck = [ "pyhomematic" ];
 
   meta = with lib; {
     description = "Python 3 Interface to interact with Homematic devices";
diff --git a/nixpkgs/pkgs/development/python-modules/pyicu/default.nix b/nixpkgs/pkgs/development/python-modules/pyicu/default.nix
index e152002cdd15..75bbcde09cd2 100644
--- a/nixpkgs/pkgs/development/python-modules/pyicu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyicu/default.nix
@@ -1,36 +1,26 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
+, pytestCheckHook
 , six
-, fetchpatch
 , icu
 }:
 
 buildPythonPackage rec {
   pname = "PyICU";
-  version = "2.3.1";
+  version = "2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ddb2b453853b4c25db382bc5e8c4cde09b3f4696ef1e1494f8294e174f459cf4";
+    sha256 = "0wb3v421i2fnnxdywam4ay8hqvnxlz0r2nrpx5lqy3rn6dlbz9d9";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://salsa.debian.org/python-team/modules/pyicu/raw/debian/2.2-2/"
-            + "debian/patches/icu_test.patch";
-      sha256 = "1iavdkyqixm9i753svl17barla93b7jzgkw09dn3hnggamx7zwx9";
-    })
-  ];
-
   nativeBuildInputs = [ icu ]; # for icu-config
   buildInputs = [ icu ];
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ six ];
+  checkInputs = [ pytestCheckHook six ];
 
   meta = with lib; {
-    homepage = "https://pypi.python.org/pypi/PyICU/";
+    homepage = "https://github.com/ovalhub/pyicu/";
     description = "Python extension wrapping the ICU C++ API";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix b/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
index 8596883326ba..cfe5112ab221 100644
--- a/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "pyinsteon";
-  version = "1.0.8";
+  version = "1.0.10";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0d028fcqmdzxp0vsz7digx794s9l65ydsnsyvyx275z6577x7h4h";
+    sha256 = "sha256-8b/PvMFHvYGVWw6ycLnL8n972cn+1QW/VTMiblMPam4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix b/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
index f231f98df85d..d2775d6e3b9e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pyiqvia";
-  version = "0.3.2";
+  version = "0.3.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "089lah23939m523jmjkaw2li0fikp2nswxznfvzwnr6wjpp3m9as";
+    sha256 = "sha256-XYWoHKa/yq7MtGVM6eVgLtR2E3VmqsjX3TNcQcd7dEQ=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/pykmtronic/default.nix b/nixpkgs/pkgs/development/python-modules/pykmtronic/default.nix
new file mode 100644
index 000000000000..50260afab10f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pykmtronic/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, lxml
+}:
+
+buildPythonPackage rec {
+  pname = "pykmtronic";
+  version = "0.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-8bxn27DU1XUQUxQFJklEge29DHx1DMu7pJG4hVE1jDU=";
+  };
+
+  propagatedBuildInputs = [ aiohttp lxml ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pykmtronic" ];
+
+  meta = with lib; {
+    description = "Python client to interface with KM-Tronic web relays";
+    homepage = "https://github.com/dgomes/pykmtronic";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pykodi/default.nix b/nixpkgs/pkgs/development/python-modules/pykodi/default.nix
new file mode 100644
index 000000000000..24450270a836
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pykodi/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi, aiohttp, jsonrpc-async, jsonrpc-websocket }:
+
+buildPythonPackage rec {
+  pname = "pykodi";
+  version = "0.2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "099xyn5aql5mdim6kh4hwx0fg1a3bx73qdvwr48nz23cljmmk1m8";
+  };
+
+  propagatedBuildInputs = [ aiohttp jsonrpc-async jsonrpc-websocket ];
+
+  pythonImportsCheck = [ "pykodi" ];
+
+  meta = with lib; {
+    description = "An async python interface for Kodi over JSON-RPC";
+    homepage = "https://github.com/OnFreund/PyKodi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sephalon ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pylast/default.nix b/nixpkgs/pkgs/development/python-modules/pylast/default.nix
index 26812ff9151a..b16ea62717a5 100644
--- a/nixpkgs/pkgs/development/python-modules/pylast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylast/default.nix
@@ -1,27 +1,41 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, certifi, six
-, setuptools_scm
+{ lib
+, buildPythonPackage
+, certifi
+, fetchPypi
+, flaky
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+, six
 }:
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "4.1.0";
-
-  disabled = !isPy3k;
+  version = "4.2.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ad084aec1bf7e307bc42d7cc1a003851f5bee1ad24fb697a9fdc300bbfe63932";
+    sha256 = "sha256-w/mkAUUgj7L7Xv+nz1pI1TYKfihH3S3MbxaNQ4VtoH0=";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ certifi six ];
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    certifi
+    six
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    flaky
+  ];
 
-  # tests require last.fm credentials
-  doCheck = false;
+  pythonImportsCheck = [ "pylast" ];
 
   meta = with lib; {
+    description = "Python interface to last.fm (and compatibles)";
     homepage = "https://github.com/pylast/pylast";
-    description = "A python interface to last.fm (and compatibles)";
     license = licenses.asl20;
     maintainers = with maintainers; [ rvolosatovs ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pylint/default.nix b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
index 102619b2b31e..43183482eceb 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
@@ -1,50 +1,67 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, pythonOlder, astroid, installShellFiles,
-  isort, mccabe, pytestCheckHook, pytest-benchmark, pytestrunner, toml }:
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, installShellFiles
+, astroid
+, isort
+, mccabe
+, toml
+, pytest-benchmark
+, pytest-xdist
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.6.0";
+  version = "2.7.1";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bb4a908c9dadbc3aac18860550e870f58e1a02c9f2c204fdf5693d73be061210";
+    sha256 = "10nrvzk1naf5ryawmi59wp99k31053sz37q3x9li2hj2cf7i1kl1";
   };
 
-  nativeBuildInputs = [ pytestrunner installShellFiles ];
+  nativeBuildInputs = [
+    installShellFiles
+  ];
 
-  checkInputs = [ pytestCheckHook pytest-benchmark ];
+  propagatedBuildInputs = [
+    astroid
+    isort
+    mccabe
+    toml
+  ];
 
-  propagatedBuildInputs = [ astroid isort mccabe toml ];
-
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    # Remove broken darwin test
-    rm -vf pylint/test/test_functional.py
+  postInstall = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp -v "elisp/"*.el $out/share/emacs/site-lisp/
+    installManPage man/*.1
   '';
 
-  disabledTests = [
-    # https://github.com/PyCQA/pylint/issues/3198
-    "test_by_module_statement_value"
-    # has issues with local directories
-    "test_version"
-   ] ++ lib.optionals stdenv.isDarwin [
-      "test_parallel_execution"
-      "test_py3k_jobs_option"
-   ];
+  checkInputs = [
+    pytest-benchmark
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  dontUseSetuptoolsCheck = true;
 
   # calls executable in one of the tests
   preCheck = ''
     export PATH=$PATH:$out/bin
   '';
 
-  dontUseSetuptoolsCheck = true;
+  pytestFlagsArray = [
+    "-n auto"
+  ];
 
-  postInstall = ''
-    mkdir -p $out/share/emacs/site-lisp
-    cp "elisp/"*.el $out/share/emacs/site-lisp/
-    installManPage man/*.1
-  '';
+  disabledTests = lib.optionals stdenv.isDarwin [
+    "test_parallel_execution"
+    "test_py3k_jobs_option"
+  ];
 
   meta = with lib; {
     homepage = "https://pylint.pycqa.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix b/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix
new file mode 100644
index 000000000000..7aa5bebfaa0a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, authlib
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "pylitterbot";
+  version = "2021.3.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "natekspencer";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-w2iyzCYoma8zQsXGIQnpgijDHNqmlvCnbeyF7PmLz9c=";
+  };
+
+  propagatedBuildInputs = [
+    authlib
+    httpx
+    pytz
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pylitterbot" ];
+
+  meta = with lib; {
+    description = "Python package for controlling a Litter-Robot";
+    homepage = "https://github.com/natekspencer/pylitterbot";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyls-mypy/default.nix b/nixpkgs/pkgs/development/python-modules/pyls-mypy/default.nix
index b9cf9738ed42..eaf069c8ccb4 100644
--- a/nixpkgs/pkgs/development/python-modules/pyls-mypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyls-mypy/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27
 , future, python-language-server, mypy, configparser
-, pytestCheckHook, mock, isPy3k, pytestcov, coverage
+, pytestCheckHook, mock, pytestcov, coverage
 , fetchpatch
 }:
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyls-spyder/default.nix b/nixpkgs/pkgs/development/python-modules/pyls-spyder/default.nix
index 7e1fa0606191..aa83253ed2d3 100644
--- a/nixpkgs/pkgs/development/python-modules/pyls-spyder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyls-spyder/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyls-spyder";
-  version = "0.3.0";
+  version = "0.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07apxh12b8ybkx5izr7pg8kbg5g5wgzw7vh5iy2n8dhiqarzp7s1";
+    sha256 = "f2be1b05f2c7a72565b28de7289d2c2b16052b88e46914279a2d631e074ed158";
   };
 
   propagatedBuildInputs = [ python-language-server ];
diff --git a/nixpkgs/pkgs/development/python-modules/pylutron/default.nix b/nixpkgs/pkgs/development/python-modules/pylutron/default.nix
index 90a45640812e..b9ed3cc20e26 100644
--- a/nixpkgs/pkgs/development/python-modules/pylutron/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylutron/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "pylutron";
-  version = "0.2.6";
+  version = "0.2.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1q8qdy26s9hvfsh75pak7xiqjwrwsgq18p4d86dwf4dwmy5s4qj1";
+    sha256 = "sha256-wwVTDpoRT/TIJhoRap0T01a8gmYt+vfKc+ATRs6phB4=";
   };
 
   # Project has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/pymatgen-lammps/default.nix b/nixpkgs/pkgs/development/python-modules/pymatgen-lammps/default.nix
index c80472a6730a..72f362f85c45 100644
--- a/nixpkgs/pkgs/development/python-modules/pymatgen-lammps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymatgen-lammps/default.nix
@@ -3,14 +3,14 @@
 , buildPythonPackage
 , pymatgen
 , pytestrunner
-, pytest
+, pytestCheckHook
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "pymatgen-lammps";
   version = "0.4.5";
-  disabled = (!isPy3k);
+  disabled = !isPy3k;
 
   src = fetchurl {
      url = "https://gitlab.com/costrouc/${pname}/-/archive/v${version}/${pname}-v${version}.tar.gz";
@@ -18,13 +18,17 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ pytestrunner ];
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
   propagatedBuildInputs = [ pymatgen ];
 
+  pythonImportsCheck = [ "pmg_lammps" ];
+
   meta = {
     description = "A LAMMPS wrapper using pymatgen";
     homepage = "https://gitlab.com/costrouc/pymatgen-lammps";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ costrouc ];
+    # not compatible with recent versions of pymatgen
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix b/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
index bae7a5613239..fdf6b089844b 100644
--- a/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
@@ -21,11 +21,11 @@
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2020.12.3";
+  version = "2020.12.31";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7ae7aba87e88965c3e1490f5b9742c95e06150f2fc73da69647a9366dd88018";
+    sha256 = "5002490facd47c55d2dae42c35712e061c1f5d881180485c0543a899589856d6";
   };
 
   nativeBuildInputs = [ glibcLocales ];
@@ -52,6 +52,7 @@ buildPythonPackage rec {
 
   # No tests in pypi tarball.
   doCheck = false;
+  pythonImportsCheck = [ "pymatgen" ];
 
   meta = with lib; {
     description = "A robust materials analysis code that defines core object representations for structures and molecules";
diff --git a/nixpkgs/pkgs/development/python-modules/pymazda/default.nix b/nixpkgs/pkgs/development/python-modules/pymazda/default.nix
new file mode 100644
index 000000000000..8b390ac12faf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymazda/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, pycryptodome
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pymazda";
+  version = "0.0.10";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-sJj4RkVaELNitcz1H8YitNgIx4f35WeQf7M5miYD5yI=";
+  };
+
+  propagatedBuildInputs = [ aiohttp pycryptodome ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pymazda" ];
+
+  meta = with lib; {
+    description = "Python client for interacting with the MyMazda API";
+    homepage = "https://github.com/bdr99/pymazda";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymediaroom/default.nix b/nixpkgs/pkgs/development/python-modules/pymediaroom/default.nix
new file mode 100644
index 000000000000..e977cb23d752
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymediaroom/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "pymediaroom";
+  version = "0.6.4.1";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "dgomes";
+    repo = pname;
+    rev = version;
+    sha256 = "1klf2dxd8rlq3n4b9m03lzwcsasn9vi6m3hzrjqhqnprhrnp0xmy";
+  };
+
+  propagatedBuildInputs = [
+    async-timeout
+    xmltodict
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pymediaroom" ];
+
+  meta = with lib; {
+    description = "Python Remote Control for Mediaroom STB";
+    homepage = "https://github.com/dgomes/pymediaroom";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymeeus/default.nix b/nixpkgs/pkgs/development/python-modules/pymeeus/default.nix
index 13e80a38e4b5..047b7d697c9e 100644
--- a/nixpkgs/pkgs/development/python-modules/pymeeus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymeeus/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyMeeus";
-  version = "0.3.7";
+  version = "0.3.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qjnk9sc65i4by2x4zm6w941a4i31fmhgwbkpbqkk87rwq4h4hsn";
+    sha256 = "43b800a2571f3237e558d8d305e97f6ac4027977666e22af98448e0f1f86af86";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymemcache/default.nix b/nixpkgs/pkgs/development/python-modules/pymemcache/default.nix
new file mode 100644
index 000000000000..d0089e8edbe6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymemcache/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, future
+, mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pymemcache";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "pinterest";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0xkw76y4059jg2a902wlpk6psyh2g4x6j6vlj9gzd5vqb7ihg2y7";
+  };
+
+  checkInputs = [
+    future
+    mock
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    sed -i "/--cov/d" setup.cfg
+  '';
+
+  disabledTests = [
+    # python-memcached is not available (last release in 2017)
+    "TestClientSocketConnect"
+  ];
+
+  pythonImportsCheck = [ "pymemcache" ];
+
+  meta = with lib; {
+    description = "Python memcached client";
+    homepage = "https://pymemcache.readthedocs.io/";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymfy/default.nix b/nixpkgs/pkgs/development/python-modules/pymfy/default.nix
new file mode 100644
index 000000000000..32483eea7b9a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymfy/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, httpretty
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests_oauthlib
+}:
+
+buildPythonPackage rec {
+  pname = "pymfy";
+  version = "0.9.4";
+  format = "pyproject";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "tetienne";
+    repo = "somfy-open-api";
+    rev = "v${version}";
+    sha256 = "1ml536dvva2xd52jfgrd557h2sr5w6567sxnyq0blhkgpyz4m2av";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    requests
+    requests_oauthlib
+  ];
+
+  checkInputs = [
+    httpretty
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pymfy" ];
+
+  meta = with lib; {
+    description = "Python client for the Somfy Open API";
+    homepage = "https://github.com/tetienne/somfy-open-api";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymitv/default.nix b/nixpkgs/pkgs/development/python-modules/pymitv/default.nix
new file mode 100644
index 000000000000..32f90d07dcb4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymitv/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pymitv";
+  version = "1.5.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-0n4IS5W3nvYwKdl6FVf4upRrFDGdYHohsaXadFy8d8w=";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Projec thas no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pymitv" ];
+
+  meta = with lib; {
+    description = "Python client the Mi Tv 3";
+    homepage = "https://github.com/simse/pymitv";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix b/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
index 76f2e9a9338b..9d524bfe946f 100644
--- a/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
@@ -1,12 +1,15 @@
 { lib
+, aiohttp
 , asynctest
 , buildPythonPackage
+, click
 , fetchFromGitHub
 , mock
+, prompt_toolkit
+, pygments
 , pyserial
 , pyserial-asyncio
 , pytestCheckHook
-, pythonOlder
 , redis
 , sqlalchemy
 , tornado
@@ -15,17 +18,21 @@
 
 buildPythonPackage rec {
   pname = "pymodbus";
-  version = "2.4.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "riptideio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x0dv02shcc2yxxm9kvcbhip111sna74dvcfssxdzzy967vnq76v";
+    sha256 = "sha256-b85jfBZfMZtqtmID+tGBgOe9o0BbmBH83UV71lYAI5c=";
   };
 
   # Twisted asynchronous version is not supported due to a missing dependency
   propagatedBuildInputs = [
+    aiohttp
+    click
+    prompt_toolkit
+    pygments
     pyserial
     pyserial-asyncio
     tornado
@@ -34,11 +41,9 @@ buildPythonPackage rec {
   checkInputs = [
     asynctest
     mock
-    pyserial-asyncio
     pytestCheckHook
     redis
     sqlalchemy
-    tornado
     twisted
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pymongo/default.nix b/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
index 18c697fec445..c5cfa0049966 100644
--- a/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymongo";
-  version = "3.11.1";
+  version = "3.11.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a9c1a2538cd120283e7137ac97ce27ebdfcb675730c5055d6332b0043f4e5a55";
+    sha256 = "db5098587f58fbf8582d9bda2462762b367207246d3e19623782fb449c3c5fcc";
   };
 
   # Tests call a running mongodb instance
diff --git a/nixpkgs/pkgs/development/python-modules/pymsteams/default.nix b/nixpkgs/pkgs/development/python-modules/pymsteams/default.nix
new file mode 100644
index 000000000000..a475d074efd6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymsteams/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pymsteams";
+  version = "0.1.14";
+
+  src = fetchFromGitHub {
+    owner = "rveachkc";
+    repo = pname;
+    rev = version;
+    sha256 = "19gnsjzf3kwcwp2rwa30zpqjqgxb9plgcsx7fqbmxnrxgw99fyqx";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Tests require network access
+  doCheck = false;
+  pythonImportsCheck = [ "pymsteams" ];
+
+  meta = with lib; {
+    description = "Python module to interact with Microsoft Teams";
+    homepage = "https://github.com/rveachkc/pymsteams";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymumble/default.nix b/nixpkgs/pkgs/development/python-modules/pymumble/default.nix
index 6e72309a58d3..45c193899fe0 100644
--- a/nixpkgs/pkgs/development/python-modules/pymumble/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymumble/default.nix
@@ -1,31 +1,50 @@
-{ buildPythonPackage,
-  fetchFromGitHub,
-  isPy27,
-  lib,
-  opuslib,
-  protobuf,
+{ buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, isPy27
+, lib
+, opuslib
+, protobuf
+, pytestCheckHook
+, pycrypto
 }:
 
 buildPythonPackage rec {
   pname = "pymumble";
-  version = "0.3.1";
+  version = "1.6";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "azlux";
     repo = "pymumble";
-    rev = "1dd6d6d4df2fdef33202f17e2acf3ba9678a5737";
-    sha256 = "1r1sch8xrpbzffsb72lhp5xjr3ac3xb599n44vsfmaam3xklz6vz";
+    rev = version;
+    sha256 = "04nc66d554a98mbmdgzgsg6ncaz0jsn4zdr3mr14w6wnhrxpjkrs";
   };
+  patches = [
+    # Compatibility with pycryptodome (which is what our pycrypto really is)
+    # See https://github.com/azlux/pymumble/pull/99
+    (fetchpatch {
+      url = "https://github.com/azlux/pymumble/pull/99/commits/b85548a0e1deaac820954b1c0b308af214311a14.patch";
+      sha256 = "0w9dpc87rny6vmhi634pih1p97b67jm26qajscpa9wp6nphdlxlj";
+    })
+  ];
+
+  postPatch = ''
+    # Changes all `library==x.y.z` statements to just `library`
+    # So that we aren't constrained to a specific version
+    sed -i 's/\(.*\)==.*/\1/' requirements.txt
+  '';
 
   propagatedBuildInputs = [ opuslib protobuf ];
 
+  checkInputs = [ pytestCheckHook pycrypto ];
+
   pythonImportsCheck = [ "pymumble_py3" ];
 
   meta = with lib; {
     description = "Python 3 version of pymumble, Mumble library used for multiple uses like making mumble bot.";
     homepage = "https://github.com/azlux/pymumble";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ thelegy ];
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ thelegy infinisil ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pymyq/default.nix b/nixpkgs/pkgs/development/python-modules/pymyq/default.nix
index e93d0b602b4d..71788db45c9a 100644
--- a/nixpkgs/pkgs/development/python-modules/pymyq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymyq/default.nix
@@ -4,17 +4,19 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pkce
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pymyq";
-  version = "3.0.3";
+  version = "3.0.4";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "arraylabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wrfnbz87ns2ginyvljna0axl35s0xfaiqwzapxm8ira40ax5wrl";
+    sha256 = "sha256-jeoFlLBjD81Bt6E75rk4U1Ach53KGy23QGx+A6X2rpg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pymysensors/default.nix b/nixpkgs/pkgs/development/python-modules/pymysensors/default.nix
new file mode 100644
index 000000000000..24d7d4c28266
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymysensors/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, click
+, crcmod
+, fetchFromGitHub
+, getmac
+, intelhex
+, paho-mqtt
+, pyserial
+, pyserial-asyncio
+, pytest-sugar
+, pytest-timeout
+, pytestCheckHook
+, pythonOlder
+, voluptuous
+}:
+
+buildPythonPackage rec {
+  pname = "pymysensors";
+  version = "0.21.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "theolind";
+    repo = pname;
+    rev = version;
+    sha256 = "1k75gwvyzslyjr3cdx8b74fb302k2i7bda4q92rb75rhgp4gch55";
+  };
+
+  propagatedBuildInputs = [
+    click
+    crcmod
+    getmac
+    intelhex
+    paho-mqtt
+    pyserial
+    pyserial-asyncio
+    voluptuous
+  ];
+
+  checkInputs = [
+    pytest-sugar
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "mysensors" ];
+
+  meta = with lib; {
+    description = "Python API for talking to a MySensors gateway";
+    homepage = "https://github.com/theolind/pymysensors";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pynanoleaf/default.nix b/nixpkgs/pkgs/development/python-modules/pynanoleaf/default.nix
index 40e2783aa577..9bdf4885dd4f 100644
--- a/nixpkgs/pkgs/development/python-modules/pynanoleaf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynanoleaf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pynanoleaf";
-  version = "0.0.5";
+  version = "0.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2ced000e3c37f4e2ce0ea177d924af71c97007de9e4fd0ef37dcd7b4a6d1b622";
+    sha256 = "sha256-BiLJgsey7kIIeN5+CKKnrTB2bSKMNEbeMLwGi2LRLcg=";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/pynetdicom/default.nix b/nixpkgs/pkgs/development/python-modules/pynetdicom/default.nix
new file mode 100644
index 000000000000..192827566df2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pynetdicom/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pydicom
+, pyfakefs
+, pytestCheckHook
+, sqlalchemy
+}:
+
+buildPythonPackage rec {
+  pname = "pynetdicom";
+  version = "1.5.6";
+
+  src = fetchFromGitHub {
+    owner = "pydicom";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-xYwnv30I0+CAx4QODSeMNhdlM2NuM8v4J3rx99NdYCc=";
+  };
+
+  propagatedBuildInputs = [
+    pydicom
+  ];
+
+  checkInputs = [
+    pyfakefs
+    pytestCheckHook
+    sqlalchemy
+  ];
+
+  disabledTests = [
+    # Some tests needs network capabilities
+    "test_str_types_empty"
+    "test_associate_reject"
+    "TestEchoSCP"
+    "TestEchoSCPCLI"
+    "TestFindSCP"
+    "TestFindSCPCLI"
+    "TestGetSCP"
+    "TestGetSCPCLI"
+    "TestMoveSCP"
+    "TestMoveSCPCLI"
+    "TestQRGetServiceClass"
+    "TestQRMoveServiceClass"
+    "TestStoreSCP"
+    "TestStoreSCPCLI"
+    "TestStoreSCU"
+    "TestStoreSCUCLI"
+    "TestState"
+  ];
+
+  pythonImportsCheck = [ "pynetdicom" ];
+
+  meta = with lib; {
+    description = "Python implementation of the DICOM networking protocol";
+    homepage = "https://github.com/pydicom/pynetdicom";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+    # Tests are not passing on Darwin/Aarch64, thus it's assumed that it doesn't work
+    broken = stdenv.isDarwin || stdenv.isAarch64;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix b/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix
index de208c7a9dbb..8bb82fa330a5 100644
--- a/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix
@@ -1,16 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "pynmea2";
-  version = "1.15.0";
+  version = "1.17.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8b83fa7e3e668af5e182ef1c2fd4a535433ecadf60d7b627280172d695a1646b";
+    sha256 = "0x5xrk51dpzsvky1ncikadm80a44a82j3mjjykmhmx7jddc5qh9d";
   };
 
-  checkInputs = [ pytest ];
-  checkPhase = "pytest";
+  checkInputs = [ pytestCheckHook ];
 
   meta = {
     homepage = "https://github.com/Knio/pynmea2";
diff --git a/nixpkgs/pkgs/development/python-modules/pynput/default.nix b/nixpkgs/pkgs/development/python-modules/pynput/default.nix
index 49da01f8e716..4b7f85482a41 100644
--- a/nixpkgs/pkgs/development/python-modules/pynput/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynput/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pynput";
-  version = "1.7.1";
+  version = "1.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5a5598bfb14322eff980ac6ca820635fce9028faa4f64a8e1581243aaf6785ee";
+    sha256 = "4e50b1a0ab86847e87e58f6d1993688b9a44f9f4c88d4712315ea8eb552ef828";
   };
 
   nativeBuildInputs = [ sphinx ];
diff --git a/nixpkgs/pkgs/development/python-modules/pynws/default.nix b/nixpkgs/pkgs/development/python-modules/pynws/default.nix
new file mode 100644
index 000000000000..abe4c93b818f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pynws/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, freezegun
+, metar
+, pytest-aiohttp
+, pytest-asyncio
+, pytest-cov
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pynws";
+  version = "1.3.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "MatthewFlamm";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "13ipmx60kicwh8qxjazap4vk94x8i3r0lnkdsap7gffaizwgp49d";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    metar
+  ];
+
+  checkInputs = [
+    freezegun
+    pytest-aiohttp
+    pytest-asyncio
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pynws" ];
+
+  meta = with lib; {
+    description = "Python library to retrieve data from NWS/NOAA";
+    homepage = "https://github.com/MatthewFlamm/pynws";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix b/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix
index 4b27bea10bc5..541a733b3f80 100644
--- a/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pyobjc";
-  version = "7.0";
+  version = "7.0.1";
 
   # Gives "No matching distribution found for
   # pyobjc-framework-Collaboration==4.0b1 (from pyobjc==4.0b1)"
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2b6c3e98f1408564ace1df36927154d7827c8e2f382386ab5d2db95c891e35a0";
+    sha256 = "f4fd120683b19a2abeac351784204e6b092cf1fb94f597b6eb22f30c117b2ef0";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix b/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix
index c8b3bd4158c4..6bc8c04ec30c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix
@@ -64,12 +64,13 @@ let
 in
 
 buildPythonPackage rec {
-  pname = "pyOpenSSL";
-  version = "20.0.0";
+  pname = "pyopenssl";
+  version = "20.0.1";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "1i8ab5zn9i9iq2ksizp3rd42v157kacddzz88kviqw3kpp68xw4j";
+    pname = "pyOpenSSL";
+    inherit version;
+    sha256 = "4c231c759543ba02560fcd2480c48dcec4dae34c9da7d3747c508227e0624b51";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyopenuv/default.nix b/nixpkgs/pkgs/development/python-modules/pyopenuv/default.nix
index a5414021b259..130b44c09694 100644
--- a/nixpkgs/pkgs/development/python-modules/pyopenuv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyopenuv/default.nix
@@ -1,7 +1,6 @@
 { lib
 , aiohttp
 , aresponses
-, async-timeout
 , asynctest
 , buildPythonPackage
 , fetchFromGitHub
@@ -14,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "pyopenuv";
-  version = "2.0.1";
+  version = "2.0.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "1pzdcy65gndrlyhrwyc1rwsh8n4w79wla8n9fr13m00vac3cqkl0";
+    sha256 = "sha256-QVgNwu/NXSV9nbRN0POBCdKCv6xdp4uSEzFAiHkhVaQ=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix b/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix
index 577f00fd1114..6bd360036000 100644
--- a/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix
@@ -1,10 +1,10 @@
 { lib, buildPythonPackage, fetchFromGitHub, cmake, python
 , libosmium, protozero, boost, expat, bzip2, zlib, pybind11
-, nose, shapely, pythonOlder, isPyPy }:
+, nose, shapely, pythonOlder, isPyPy, lz4 }:
 
 buildPythonPackage rec {
   pname = "pyosmium";
-  version = "3.1.0";
+  version = "3.1.3";
 
   disabled = pythonOlder "3.4" || isPyPy;
 
@@ -12,11 +12,11 @@ buildPythonPackage rec {
     owner = "osmcode";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0m11hdgiysdhyi5yn6nj8a8ycjzx5hpjy7n1c4j6q5caifj7rf7h";
+    sha256 = "11ma8nr7k2ixwwb55fiqvrj5qbmpgkyfk0canz4l0m8b7rcw3qsc";
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ libosmium protozero boost expat bzip2 zlib pybind11 ];
+  buildInputs = [ libosmium protozero boost expat bzip2 zlib pybind11 lz4 ];
 
   preBuild = "cd ..";
 
@@ -27,6 +27,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python bindings for libosmium";
     homepage = "https://osmcode.org/pyosmium";
+    changelog = "https://github.com/osmcode/pyosmium/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd2;
     maintainers = with maintainers; [ sikmir ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyowm/default.nix b/nixpkgs/pkgs/development/python-modules/pyowm/default.nix
index 423d38ab25d8..3cfb70e7b875 100644
--- a/nixpkgs/pkgs/development/python-modules/pyowm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyowm/default.nix
@@ -1,30 +1,42 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, requests, geojson }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, geojson
+, pysocks
+, pythonOlder
+, requests
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pyowm";
-  version = "3.1.1";
+  version = "3.2.0";
+  disabled = pythonOlder "3.7";
 
-  disabled = pythonOlder "3.3";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a7b18297a9189dbe5f6b454b12d61a407e35c7eb9ca75bcabfe5e1c83245290d";
+  src = fetchFromGitHub {
+    owner = "csparpa";
+    repo = pname;
+    rev = version;
+    sha256 = "0sq8rxcgdiayl5gy4qhkvvsdq1d93sbzn0nfg8f1vr8qxh8qkfq4";
   };
 
-  propagatedBuildInputs = [ requests geojson ];
+  propagatedBuildInputs = [
+    geojson
+    pysocks
+    requests
+  ];
+
+  checkInputs = [ pytestCheckHook ];
 
-  # This may actually break the package.
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "requests>=2.18.2,<2.19" "requests"
-  '';
+  # Run only tests which don't require network access
+  pytestFlagsArray = [ "tests/unit" ];
 
-  # No tests in archive
-  doCheck = false;
+  pythonImportsCheck = [ "pyowm" ];
 
   meta = with lib; {
-    description = "A Python wrapper around the OpenWeatherMap web API";
+    description = "Python wrapper around the OpenWeatherMap web API";
     homepage = "https://pyowm.readthedocs.io/";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyparted/default.nix b/nixpkgs/pkgs/development/python-modules/pyparted/default.nix
index f46a5d2db827..16a894546e49 100644
--- a/nixpkgs/pkgs/development/python-modules/pyparted/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyparted/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     PATH="${pkgs.parted}/sbin:$PATH"
   '';
 
-  nativeBuildInputs = [ pkgs.pkgconfig ];
+  nativeBuildInputs = [ pkgs.pkg-config ];
   checkInputs = [ six ];
   propagatedBuildInputs = [ pkgs.parted ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pypcap/default.nix b/nixpkgs/pkgs/development/python-modules/pypcap/default.nix
index 08c90d828986..fbf6769ab4ca 100644
--- a/nixpkgs/pkgs/development/python-modules/pypcap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypcap/default.nix
@@ -1,34 +1,50 @@
-{ lib, writeText, buildPythonPackage, fetchPypi, libpcap, dpkt }:
+{ lib
+, buildPythonPackage
+, dpkt
+, fetchFromGitHub
+, fetchpatch
+, libpcap
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pypcap";
   version = "1.2.3";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1w5i79gh7cswvznr8rhilcmzhnh2y5c4jwh2qrfnpx05zqigm1xd";
+
+  src = fetchFromGitHub {
+    owner = "pynetwork";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zscfk10jpqwxgc8d84y8bffiwr92qrg2b24afhjwiyr352l67cf";
   };
 
   patches = [
-    # The default setup.py searchs for pcap.h in a static list of default
-    # folders. So we have to add the path to libpcap in the nix-store.
-    (writeText "libpcap-path.patch"
-      ''
-      --- a/setup.py
-      +++ b/setup.py
-      @@ -28,6 +28,7 @@ def recursive_search(path, target_files):
-
-       def find_prefix_and_pcap_h():
-           prefixes = chain.from_iterable((
-      +        '${libpcap}',
-               ('/usr', sys.prefix),
-               glob.glob('/opt/libpcap*'),
-               glob.glob('../libpcap*'),
-      '')
+    # Support for Python 3.9, https://github.com/pynetwork/pypcap/pull/102
+    (fetchpatch {
+      name = "support-python-3.9.patch";
+      url = "https://github.com/pynetwork/pypcap/pull/102/commits/e22f5d25f0d581d19ef337493434e72cd3a6ae71.patch";
+      sha256 = "0n1syh1vcplgsf6njincpqphd2w030s3b2jyg86d7kbqv1w5wk0l";
+    })
   ];
 
+  postPatch = ''
+    # Add the path to libpcap in the nix-store
+    substituteInPlace setup.py --replace "('/usr', sys.prefix)" "'${libpcap}'"
+    # Remove coverage from test run
+    sed -i "/--cov/d" setup.cfg
+  '';
+
   buildInputs = [ libpcap ];
-  checkInputs = [ dpkt ];
+
+  checkInputs = [
+    dpkt
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "tests" ];
+
+  pythonImportsCheck = [ "pcap" ];
 
   meta = with lib; {
     homepage = "https://github.com/pynetwork/pypcap";
diff --git a/nixpkgs/pkgs/development/python-modules/pyplaato/default.nix b/nixpkgs/pkgs/development/python-modules/pyplaato/default.nix
new file mode 100644
index 000000000000..d4e91a985ef3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyplaato/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, python-dateutil
+}:
+
+buildPythonPackage rec {
+  pname = "pyplaato";
+  version = "0.0.15";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1nykbkv2fg1x5min07cbi44x6am48f5gw3mnyj7x2kpmj6sqfpqp";
+  };
+
+  propagatedBuildInputs = [ aiohttp python-dateutil ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyplaato" ];
+
+  meta = with lib; {
+    description = "Python API client for fetching Plaato data";
+    homepage = "https://github.com/JohNan/pyplaato";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pypoppler/default.nix b/nixpkgs/pkgs/development/python-modules/pypoppler/default.nix
index 348f91715022..d325c170dc64 100644
--- a/nixpkgs/pkgs/development/python-modules/pypoppler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypoppler/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   };
 
   NIX_CFLAGS_COMPILE="-I${pkgs.poppler.dev}/include/poppler/";
-  nativeBuildInputs = [ pkgs.pkgconfig ];
+  nativeBuildInputs = [ pkgs.pkg-config ];
   buildInputs = [ pkgs.poppler.dev ];
   propagatedBuildInputs = [ pycairo pygobject2 ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix b/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
index a15f7aadb88c..13f1794aebe0 100644
--- a/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyppeteer";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d1bcc61575ff788249d3bcaee696d856fa1153401a5428cb7376d826dd68dd9b";
+    sha256 = "c2974be1afa13b17f7ecd120d265d8b8cd324d536a231c3953ca872b68aba4af";
   };
 
   # tests want to write to /homeless-shelter
diff --git a/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix b/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix
index 22ac89cf6a90..77ca912db6c9 100644
--- a/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix
@@ -1,13 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, fetchpatch, six, chardet, nose
+{ lib, buildPythonPackage, fetchPypi, six, chardet, nose
 , django, jinja2, tornado, pyramid, pyramid_mako, Mako }:
 
 buildPythonPackage rec {
   pname = "pypugjs";
-  version = "5.9.8";
+  version = "5.9.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1iy8k56rbslxcylhamdik2bd6gqqirrix55mrdn29zz9gl6vg1xi";
+    sha256 = "0s0a239940z6rsssa13yz6pfkjk4300j35hs7qysyz45f3ixq19j";
   };
 
   propagatedBuildInputs = [ six chardet ];
diff --git a/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix b/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix
index 2e5f19e1d12d..e98e2bc3dbc4 100644
--- a/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix
@@ -1,7 +1,8 @@
 { lib
+, aiosmb
 , aiowinreg
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , minidump
 , minikerberos
 , msldap
@@ -10,16 +11,15 @@
 
 buildPythonPackage rec {
   pname = "pypykatz";
-  version = "0.3.15";
+  version = "0.4.7";
 
-  src = fetchFromGitHub {
-    owner = "skelsec";
-    repo = pname;
-    rev = version;
-    sha256 = "0bx2jdcfr1pdy3jgzg8fr5id9ffl2m1nc81dqhcplxdj8p214yri";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0il5sj47wyf9gn76alm8v1l63rqw2vsd27v6f7q1dpn0wq209syi";
   };
 
   propagatedBuildInputs = [
+    aiosmb
     aiowinreg
     minikerberos
     msldap
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix b/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix
index 26bf5dc1c4b8..6e4b4d37f289 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix
@@ -57,6 +57,8 @@ in buildPythonPackage rec {
 
   outputs = [ "out" "dev" ];
 
+  dontWrapQtApps = true;
+
   nativeBuildInputs = [
     pkg-config
     qmake
diff --git a/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix b/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
index f43bfb9aaa6e..fbc4853ab610 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pyqtgraph";
-  version = "0.11.0";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0p5k73wjfh0zzjvby8b5107cx7x0c2rdj66zh1nc8y95i0anf2na";
+    sha256 = "7d1417f36b5b92d1365671633a91711513e5afbcc82f32475d0690317607714e";
   };
 
   propagatedBuildInputs = [ numpy pyopengl pyqt5 scipy ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix b/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
index 42019e5a0022..ce25bc04a136 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
@@ -14,12 +14,12 @@ let
 
 in buildPythonPackage rec {
   pname = "PyQtWebEngine";
-  version = "5.15.2";
+  version = "5.15.4";
   format = "other";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "0d56ak71r14w4f9r96vaj34qcn2rbln3s6ildvvyc707fjkzwwjd";
+    sha256 = "06fc35hzg346a9c86dk7vzm1fakkgzn5l52jfq3bix3587sjip6f";
   };
 
   inherit patches;
@@ -45,6 +45,8 @@ in buildPythonPackage rec {
   propagatedBuildInputs = [ pyqt5 ]
     ++ lib.optional (!isPy3k) enum34;
 
+  dontWrapQtApps = true;
+
   configurePhase = ''
     runHook preConfigure
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyquery/default.nix b/nixpkgs/pkgs/development/python-modules/pyquery/default.nix
index 2bb2eb1c6fcc..40139c795677 100644
--- a/nixpkgs/pkgs/development/python-modules/pyquery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyquery/default.nix
@@ -1,14 +1,15 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , cssselect
+, fetchPypi
 , lxml
-, webob
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pyquery";
-  version = "1.2.9";
+  version = "1.4.3";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
@@ -16,15 +17,19 @@ buildPythonPackage rec {
     sha256 = "00p6f1dfma65192hc72dxd506491lsq3g5wgxqafi1xpg2w1xia6";
   };
 
-  propagatedBuildInputs = [ cssselect lxml webob ];
+  propagatedBuildInputs = [
+    cssselect
+    lxml
+  ];
 
   # circular dependency on webtest
   doCheck = false;
+  pythonImportsCheck = [ "pyquery" ];
 
   meta = with lib; {
+    description = "A jquery-like library for Python";
     homepage = "https://github.com/gawel/pyquery";
-    description = "A jquery-like library for python";
+    changelog = "https://github.com/gawel/pyquery/blob/${version}/CHANGES.rst";
     license = licenses.bsd0;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyradios/default.nix b/nixpkgs/pkgs/development/python-modules/pyradios/default.nix
new file mode 100644
index 000000000000..f95988063dd2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyradios/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, appdirs, requests }:
+buildPythonPackage rec {
+  pname = "pyradios";
+  version = "0.0.22";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bgfb8vz7jybswss16pdzns0qpqfrwa9f2g8qrh1r4mig4xh2dmi";
+  };
+
+  propagatedBuildInputs = [
+    appdirs
+    requests
+  ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python client for the https://api.radio-browser.info";
+    homepage = "https://github.com/andreztz/pyradios";
+    license = licenses.mit;
+    maintainers = with maintainers; [ infinisil ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid/default.nix
index 44ac5a9221ad..a26eff37ef21 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid/default.nix
@@ -33,6 +33,8 @@ buildPythonPackage rec {
   # https://github.com/Pylons/pyramid/issues/1899
   doCheck = !isPy35;
 
+  pythonImportsCheck = [ "pyramid" ];
+
   meta = with lib; {
     description = "The Pyramid Web Framework, a Pylons project";
     homepage = "https://trypyramid.com/";
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_beaker/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_beaker/default.nix
index 5c4e7c104bf0..9a529214c2e8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_beaker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_beaker/default.nix
@@ -19,6 +19,10 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ beaker pyramid ];
 
   meta = with lib; {
+    description = "Beaker session factory backend for Pyramid";
+    homepage = "https://docs.pylonsproject.org/projects/pyramid_beaker/en/latest/";
+    # idk, see https://github.com/Pylons/pyramid_beaker/blob/master/LICENSE.txt
+    # license = licenses.mpl20;
     maintainers = with maintainers; [ domenkozar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_chameleon/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_chameleon/default.nix
index d3388fdff359..377317049dc8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_chameleon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_chameleon/default.nix
@@ -23,11 +23,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ chameleon pyramid zope_interface setuptools ];
 
+  pythonImportsCheck = [ "pyramid_chameleon" ];
+
   meta = with lib; {
     description = "Chameleon template compiler for pyramid";
     homepage = "https://github.com/Pylons/pyramid_chameleon";
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_exclog/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_exclog/default.nix
index 55da77f49644..96570fce884f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_exclog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_exclog/default.nix
@@ -15,6 +15,8 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyramid ];
 
+  pythonImportsCheck = [ "pyramid_exclog" ];
+
   meta = with lib; {
     description = "A package which logs to a Python logger when an exception is raised by a Pyramid application";
     homepage = "https://docs.pylonsproject.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_hawkauth/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_hawkauth/default.nix
index f2f156e98b67..c2e17f8addef 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_hawkauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_hawkauth/default.nix
@@ -21,10 +21,12 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pyramid hawkauthlib tokenlib ];
   buildInputs = [ webtest ];
 
+  pythonImportsCheck = [ "pyramid_hawkauth" ];
+
   meta = with lib; {
     homepage = "https://github.com/mozilla-services/pyramid_hawkauth";
     description = "A Pyramid authentication plugin for HAWK";
     license = licenses.mpl20;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_jinja2/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_jinja2/default.nix
index 464d8d209bfb..d1eaf49e6bc2 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_jinja2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_jinja2/default.nix
@@ -18,11 +18,12 @@ buildPythonPackage rec {
   buildInputs = [ webtest ];
   propagatedBuildInputs = [ jinja2 pyramid ];
 
+  pythonImportsCheck = [ "pyramid_jinja2" ];
+
   meta = with lib; {
     description = "Jinja2 template bindings for the Pyramid web framework";
     homepage = "https://github.com/Pylons/pyramid_jinja2";
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix
index 2f8c5e1e0753..47aa1deb5e26 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix
@@ -22,6 +22,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/Pylons/pyramid_mako";
     description = "Mako template bindings for the Pyramid web framework";
     license = licenses.bsd0;
+    maintainers = with maintainers; [];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_multiauth/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_multiauth/default.nix
index 545883a25c1a..859d4c3b4339 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_multiauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_multiauth/default.nix
@@ -19,6 +19,6 @@ buildPythonPackage rec {
     description = "Authentication policy for Pyramid that proxies to a stack of other authentication policies";
     homepage = "https://github.com/mozilla-services/pyramid_multiauth";
     license = licenses.mpl20;
+    maintainers = with maintainers; [];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyregion/default.nix b/nixpkgs/pkgs/development/python-modules/pyregion/default.nix
index 86a5ef6bfe0f..6d33e18e4f91 100644
--- a/nixpkgs/pkgs/development/python-modules/pyregion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyregion/default.nix
@@ -1,13 +1,13 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , fetchpatch
 , pyparsing
 , numpy
 , cython
 , astropy
 , astropy-helpers
-, pytest
+, pytestCheckHook
 , pytest-astropy
 }:
 
@@ -15,15 +15,18 @@ buildPythonPackage rec {
   pname = "pyregion";
   version = "2.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a8ac5f764b53ec332f6bc43f6f2193ca13e8b7d5a3fb2e20ced6b2ea42a9d094";
+  # pypi src contains cython-produced .c files which don't compile
+  # with python3.9
+  src = fetchFromGitHub {
+    owner = "astropy";
+    repo = pname;
+    rev = version;
+    sha256 = "1izar7z606czcyws9s8bjbpb1xhqshpv5009rlpc92hciw7jv4kg";
   };
 
   propagatedBuildInputs = [
     pyparsing
     numpy
-    cython
     astropy
   ];
 
@@ -36,9 +39,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [ astropy-helpers ];
+  nativeBuildInputs = [ astropy-helpers cython ];
 
-  checkInputs = [ pytest pytest-astropy ];
+  checkInputs = [ pytestCheckHook pytest-astropy ];
 
   # Disable automatic update of the astropy-helper module
   postPatch = ''
@@ -46,9 +49,11 @@ buildPythonPackage rec {
   '';
 
   # Tests must be run in the build directory
-  checkPhase = ''
-    cd build/lib.*
-    pytest
+  preCheck = ''
+    pushd build/lib.*
+  '';
+  postCheck = ''
+    popd
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyrisco/default.nix b/nixpkgs/pkgs/development/python-modules/pyrisco/default.nix
new file mode 100644
index 000000000000..b9df9d36d41d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyrisco/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyrisco";
+  version = "0.3.1";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "OnFreund";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1im29h4rxnp98aqzgzjj5i8jv2h5zw9c5yx8xxzl4cmr3yila9zw";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyrisco" ];
+
+  meta = with lib; {
+    description = "Python interface to Risco alarm systems through Risco Cloud";
+    homepage = "https://github.com/OnFreund/pyrisco";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyrituals/default.nix b/nixpkgs/pkgs/development/python-modules/pyrituals/default.nix
new file mode 100644
index 000000000000..84bf62ff6d3b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyrituals/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyrituals";
+  version = "0.0.2";
+  format = "pyproject";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "milanmeu";
+    repo = pname;
+    rev = version;
+    sha256 = "0hrwhk3kpvdg78fgnvhmnnh3wprdv10j8jqjm4ly64chr8cdi6f2";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyrituals" ];
+
+  meta = with lib; {
+    description = "Python wrapper for the Rituals Perfume Genie API";
+    homepage = "https://github.com/milanmeu/pyrituals";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyro-ppl/default.nix b/nixpkgs/pkgs/development/python-modules/pyro-ppl/default.nix
index 54c2155a51b5..1d5608ec777a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyro-ppl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyro-ppl/default.nix
@@ -2,12 +2,12 @@
 , graphviz, networkx, six, opt-einsum, tqdm, pyro-api }:
 
 buildPythonPackage rec {
-  version = "1.5.1";
+  version = "1.5.2";
   pname = "pyro-ppl";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "00mprgf8pf9jq3kanxjldj00cg3nbfkb5yg0mdfbdi0b1rx3vnsa";
+    sha256 = "8a93af3a007ac507a8b50fd1165dbb355182d17df29d3b5bc498b02b479fdb27";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyroma/default.nix b/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
index bddf2413970c..9fee5ec56c0e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
@@ -4,13 +4,18 @@
 
 buildPythonPackage rec {
   pname = "pyroma";
-  version = "2.6";
+  version = "2.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00j1j81kiipi5yppmk385cbfccf2ih0xyapl7pw6nqhrf8vh1764";
+    sha256 = "2527423e3a24ccd56951f3ce1b0ebbcc4fa0518c82fca882e696c78726ab9c2f";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pygments < 2.6" "pygments"
+  '';
+
   propagatedBuildInputs = [ docutils pygments setuptools ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pysam/default.nix b/nixpkgs/pkgs/development/python-modules/pysam/default.nix
index 2f40a2973332..31e01e83dbf6 100644
--- a/nixpkgs/pkgs/development/python-modules/pysam/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysam/default.nix
@@ -7,7 +7,7 @@
 , cython
 , htslib
 , libdeflate
-, lzma
+, xz
 , pytest
 , samtools
 , zlib
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     curl
     cython
     libdeflate
-    lzma
+    xz
     zlib
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyscss/default.nix b/nixpkgs/pkgs/development/python-modules/pyscss/default.nix
index e4e7791fa79a..bbf4ee712c6a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscss/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscss/default.nix
@@ -26,6 +26,9 @@ buildPythonPackage rec {
     ++ (lib.optionals (pythonOlder "3.4") [ enum34 pathlib ])
     ++ (lib.optionals (pythonOlder "2.7") [ ordereddict ]);
 
+  # Test suite is broken.
+  # See https://github.com/Kronuz/pyScss/issues/415
+  doCheck = false;
   checkPhase = ''
     py.test
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/pyserial/001-rfc2217-only-negotiate-on-value-change.patch b/nixpkgs/pkgs/development/python-modules/pyserial/001-rfc2217-only-negotiate-on-value-change.patch
new file mode 100644
index 000000000000..6bd40bd935d6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyserial/001-rfc2217-only-negotiate-on-value-change.patch
@@ -0,0 +1,42 @@
+From c8b35f4b871d00e3020f525425517548bed9f6ad Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
+Date: Sun, 9 Sep 2018 20:13:27 +0200
+Subject: [PATCH] serial/rfc2217: only subnegotiate on value change
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This was suggested and is a direct copy of Uwe Kleine König's patch
+from [1].
+
+[1]: https://github.com/pyserial/pyserial/issues/376#issuecomment-418885211
+Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
+---
+ serial/rfc2217.py | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/serial/rfc2217.py b/serial/rfc2217.py
+index d962c1e8..2148512d 100644
+--- a/serial/rfc2217.py
++++ b/serial/rfc2217.py
+@@ -330,11 +330,15 @@ def set(self, value):
+         the client needs to know if the change is performed he has to check the
+         state of this object.
+         """
+-        self.value = value
+-        self.state = REQUESTED
+-        self.connection.rfc2217_send_subnegotiation(self.option, self.value)
+-        if self.connection.logger:
+-            self.connection.logger.debug("SB Requesting {} -> {!r}".format(self.name, self.value))
++        if value != self.value:
++            self.value = value
++            self.state = REQUESTED
++            self.connection.rfc2217_send_subnegotiation(self.option, self.value)
++            if self.connection.logger:
++                self.connection.logger.debug("SB Requesting {} -> {!r}".format(self.name, self.value))
++        else:
++            if self.connection.logger:
++                self.connection.logger.debug("SB Requesting {} -> {!r} (skipped)".format(self.name, self.value))
+
+     def is_ready(self):
+         """\
diff --git a/nixpkgs/pkgs/development/python-modules/pyserial/002-rfc2217-timeout-setter-for-rfc2217.patch b/nixpkgs/pkgs/development/python-modules/pyserial/002-rfc2217-timeout-setter-for-rfc2217.patch
new file mode 100644
index 000000000000..39410dee1640
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyserial/002-rfc2217-timeout-setter-for-rfc2217.patch
@@ -0,0 +1,42 @@
+From a3698dc952fce0d07628133e987b7b43ed6e1157 Mon Sep 17 00:00:00 2001
+From: Rouven Czerwinski <rouven@czerwinskis.de>
+Date: Sun, 9 Sep 2018 20:08:40 +0200
+Subject: [PATCH] serial/rfc2217: add timeout.setter for rfc2217
+
+Add a new setter method for the timeout property which does not invoke
+the port reconfiguration.
+This is a direct copy of the SerialBase timeout property without the port
+reconfiguration.
+
+Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
+---
+ serial/rfc2217.py | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/serial/rfc2217.py b/serial/rfc2217.py
+index d962c1e8..12615cf3 100644
+--- a/serial/rfc2217.py
++++ b/serial/rfc2217.py
+@@ -722,5 +722,22 @@ def cd(self):
+             raise portNotOpenError
+         return bool(self.get_modem_state() & MODEMSTATE_MASK_CD)
+
++    @property
++    def timeout(self):
++        """Get the current timeout setting."""
++        return self._timeout
++
++    @timeout.setter
++    def timeout(self, timeout):
++        """Change timeout setting."""
++        if timeout is not None:
++            try:
++                timeout + 1     # test if it's a number, will throw a TypeError if not...
++            except TypeError:
++                raise ValueError("Not a valid timeout: {!r}".format(timeout))
++            if timeout < 0:
++                raise ValueError("Not a valid timeout: {!r}".format(timeout))
++        self._timeout = timeout
++
+     # - - - platform specific - - -
+     # None so far
diff --git a/nixpkgs/pkgs/development/python-modules/pyserial/default.nix b/nixpkgs/pkgs/development/python-modules/pyserial/default.nix
index 239568f64b76..b45b031fb84a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyserial/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyserial/default.nix
@@ -9,6 +9,11 @@ buildPythonPackage rec {
     sha256 = "1nyd4m4mnrz8scbfqn4zpq8gnbl4x42w5zz62vcgpzqd2waf0xrw";
   };
 
+  patches = [
+    ./001-rfc2217-only-negotiate-on-value-change.patch
+    ./002-rfc2217-timeout-setter-for-rfc2217.patch
+  ];
+
   checkPhase = "python -m unittest discover -s test";
   doCheck = !stdenv.hostPlatform.isDarwin; # broken on darwin
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyshark/default.nix b/nixpkgs/pkgs/development/python-modules/pyshark/default.nix
index 206e3671f47f..1bb91953983f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyshark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyshark/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pyshark";
-  version = "0.4.2.11";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "KimiNewt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07dkhkf85cplcj1h3k8mmqzsn4zdkxzr0zg3gvf8yc8p5g5azx9q";
+    sha256 = "sha256-cveiFkkSplfQPgUEVWyV40KKHCtKJZsfvdV8JmEUmE4=";
   };
 
   propagatedBuildInputs = [
@@ -29,6 +29,8 @@ buildPythonPackage rec {
     wireshark-cli
   ];
 
+  pythonImportsCheck = [ "pyshark" ];
+
   meta = with lib; {
     description = "Python wrapper for tshark, allowing python packet parsing using wireshark dissectors";
     homepage = "https://github.com/KimiNewt/pyshark/";
diff --git a/nixpkgs/pkgs/development/python-modules/pyshp/default.nix b/nixpkgs/pkgs/development/python-modules/pyshp/default.nix
index 7f494e98ad22..3cb56247b553 100644
--- a/nixpkgs/pkgs/development/python-modules/pyshp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyshp/default.nix
@@ -2,12 +2,12 @@
 , setuptools }:
 
 buildPythonPackage rec {
-  version = "2.1.2";
+  version = "2.1.3";
   pname = "pyshp";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0aa668cd0fc09b873f10facfe96971c0496b7fe4f795684d96cc7306ac5841c";
+    sha256 = "e32b4a6832a3b97986df442df63b4c4a7dcc846b326c903189530a5cc6df0260";
   };
 
   buildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyside/default.nix b/nixpkgs/pkgs/development/python-modules/pyside/default.nix
index 08fd8cbfa862..f880791eeec0 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside/default.nix
@@ -23,6 +23,8 @@ buildPythonPackage rec {
 
   makeFlags = [ "QT_PLUGIN_PATH=${pysideShiboken}/lib/generatorrunner" ];
 
+  dontWrapQtApps = true;
+
   meta = {
     description = "LGPL-licensed Python bindings for the Qt cross-platform application and UI framework";
     license = lib.licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix b/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix
index 2690422932f2..21c79c6e9e1c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix
@@ -18,7 +18,6 @@ buildPythonPackage rec {
   pname = "pyside-shiboken";
   version = "1.2.4";
   format = "other";
-  disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "PySide";
@@ -49,11 +48,11 @@ buildPythonPackage rec {
     "-DPYTHON3_LIBRARY=${lib.getLib python}/lib"
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Plugin (front-end) for pyside-generatorrunner, that generates bindings for C++ libraries using CPython source code";
-    license = lib.licenses.gpl2;
-    homepage = "http://www.pyside.org/docs/shiboken/";
+    license = licenses.gpl2;
+    homepage = "http://www.pyside.org/";
     maintainers = [ ];
-    platforms = lib.platforms.all;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix b/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix
index 095a10c1047d..20f1a572f1b4 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation {
     "-DBUILD_TESTS=OFF"
   ];
 
+  dontWrapQtApps = true;
+
   # The upstream build system consists of a `setup.py` whichs builds three
   # different python libraries and calls cmake as a subprocess.  We call cmake
   # directly because that's easier to get working.  However, the `setup.py`
diff --git a/nixpkgs/pkgs/development/python-modules/pyside2/default.nix b/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
index 6986c8e5384b..c2786b647d62 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
@@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
   ];
   propagatedBuildInputs = [ shiboken2 ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "LGPL-licensed Python bindings for Qt";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/pysma/default.nix b/nixpkgs/pkgs/development/python-modules/pysma/default.nix
index f1005fe0b7a9..5cc86e909f00 100644
--- a/nixpkgs/pkgs/development/python-modules/pysma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysma/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pysma";
-  version = "0.3.5";
+  version = "0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1awcsbk14i2aw01f7b7hrmpn9q6vr9v6la0i9n7ldv1h8rzq6j16";
+    sha256 = "sha256-BOVALVFb/p2q3A4NkvgtwmL5fNvwMCk0hb1L5MRWzHY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix b/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix
new file mode 100644
index 000000000000..a3517ea87ec0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cachetools
+, paho-mqtt
+, pytz
+, requests
+, requests_oauthlib
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pysmappee";
+  version = "0.2.23";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "smappee";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-vxCZzkngYnc+hD3gT1x7qAQTFjpmmgRU5F6cusNDNgk=";
+  };
+
+  propagatedBuildInputs = [
+    cachetools
+    paho-mqtt
+    pytz
+    requests
+    requests_oauthlib
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pysmappee" ];
+
+  meta = with lib; {
+    description = "Python Library for the Smappee dev API";
+    homepage = "https://github.com/smappee/pysmappee";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pysmbc/default.nix b/nixpkgs/pkgs/development/python-modules/pysmbc/default.nix
index bea1438f6794..93aa6606c7d5 100644
--- a/nixpkgs/pkgs/development/python-modules/pysmbc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysmbc/default.nix
@@ -1,23 +1,31 @@
-{ lib, buildPythonPackage, fetchPypi
-, samba, pkg-config
-, setuptools }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, samba
+, pkg-config
+}:
 
 buildPythonPackage rec {
-  version = "1.0.21";
   pname = "pysmbc";
+  version = "1.0.23";
 
   src = fetchPypi {
     inherit pname version;
-    extension = "tar.bz2";
-    sha256 = "14b75f358ical7zzqh3g1qkh2dxwxn2gz7sah5f5svndqkd3z8jy";
+    sha256 = "1y0n1n6jkzf4mr5lqfc73l2m0qp56gvxwfjnx2vj8c0hh5i1gnq8";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ setuptools samba ];
+
+  buildInputs = [ samba ];
+
+  # Tests would require a local SMB server
+  doCheck = false;
+  pythonImportsCheck = [ "smbc" ];
 
   meta = with lib; {
     description = "libsmbclient binding for Python";
     homepage = "https://github.com/hamano/pysmbc";
-    license = licenses.gpl2Plus;
+    license = with licenses; [ gpl2Plus ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pysonos/default.nix b/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
index fdf350bd377c..704f3c44c4ed 100644
--- a/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
@@ -3,12 +3,12 @@
 , fetchFromGitHub
 , isPy3k
 , xmltodict
-, requests
 , ifaddr
+, requests
 
-# Test dependencies
-, pytest, pylint, flake8, graphviz
-, mock, sphinx, sphinx_rtd_theme
+  # Test dependencies
+, pytestCheckHook
+, mock
 , requests-mock
 }:
 
@@ -26,17 +26,17 @@ buildPythonPackage rec {
     sha256 = "0a0c7jwv39nbvpdcx32sd8kjmj4nyrd7k0yxhpmxdnx4zr4vvzqg";
   };
 
-  propagatedBuildInputs = [ xmltodict requests ifaddr ];
+  propagatedBuildInputs = [ ifaddr requests xmltodict ];
 
   checkInputs = [
-    pytest pylint flake8 graphviz
-    mock sphinx sphinx_rtd_theme
+    pytestCheckHook
+    mock
     requests-mock
   ];
 
-  checkPhase = ''
-    pytest --deselect=tests/test_discovery.py::TestDiscover::test_discover
-  '';
+  disabledTests = [
+    "test_desc_from_uri" # test requires network access
+  ];
 
   meta = {
     homepage = "https://github.com/amelchio/pysonos";
diff --git a/nixpkgs/pkgs/development/python-modules/pyspark/default.nix b/nixpkgs/pkgs/development/python-modules/pyspark/default.nix
index f8a7c09b4071..2d09a0a0c3b0 100644
--- a/nixpkgs/pkgs/development/python-modules/pyspark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyspark/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyspark";
-  version = "3.0.1";
+  version = "3.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "38b485d3634a86c9a2923c39c8f08f003fdd0e0a3d7f07114b2fb4392ce60479";
+    sha256 = "d4f2ced43394ad773f7b516a4bbcb5821a940462a17b1a25f175c83771b62ebc";
   };
 
   # pypandoc is broken with pandoc2, so we just lose docs.
diff --git a/nixpkgs/pkgs/development/python-modules/pystray/default.nix b/nixpkgs/pkgs/development/python-modules/pystray/default.nix
index 6b4bdb59f1ef..c0ae2be9e7b3 100644
--- a/nixpkgs/pkgs/development/python-modules/pystray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pystray/default.nix
@@ -3,17 +3,17 @@
 
 buildPythonPackage rec {
   pname = "pystray";
-  version = "0.16.0";
+  version = "0.17.3";
 
   src = fetchFromGitHub {
     owner = "moses-palmer";
     repo = "pystray";
     rev = "v${version}";
-    sha256 = "0q5yqfm5mzffx9vnp9xcnclgjzgs0b7f50i9xmxn1m1iha1zawh1";
+    sha256 = "sha256-da2ZkehyXrxW5LdMR3K5AEQhiCpx8ygn6eswTC8fsRo=";
   };
 
-  propagatedBuildInputs = [ pillow xlib six ];
   nativeBuildInputs = [ sphinx ];
+  propagatedBuildInputs = [ pillow xlib six ];
   checkInputs = [ xvfb_run ];
 
   checkPhase = ''
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/moses-palmer/pystray";
     description = "This library allows you to create a system tray icon";
-    license = licenses.lgpl3;
+    license = with licenses; [ gpl3Only lgpl3Only ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ jojosch ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pysvn/default.nix b/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
index 9e9948607093..37e3490a54c7 100644
--- a/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   format = "other";
 
   src = fetchurl {
-    url = "http://pysvn.barrys-emacs.org/source_kits/${pname}-${version}.tar.gz";
+    url = "https://pysvn.barrys-emacs.org/source_kits/${pname}-${version}.tar.gz";
     sha256 = "sRPa4wNyjDmGdF1gTOgLS0pnrdyZwkkH4/9UCdh/R9Q=";
   };
 
@@ -79,5 +79,7 @@ buildPythonPackage rec {
     description = "Python bindings for Subversion";
     homepage = "http://pysvn.tigris.org/";
     license = licenses.asl20;
+    # g++: command not found
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyswitchbot/default.nix b/nixpkgs/pkgs/development/python-modules/pyswitchbot/default.nix
new file mode 100644
index 000000000000..69bf01141824
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyswitchbot/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, bluepy
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "pyswitchbot";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "Danielhiversen";
+    repo = "pySwitchbot";
+    rev = version;
+    sha256 = "16p11fmyms4q93m3rna76nkp2la9m8lmfmaflbvga666vljwfw6v";
+  };
+
+  propagatedBuildInputs = [ bluepy ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "switchbot" ];
+
+  meta = with lib; {
+    description = "Python library to control Switchbot IoT devices";
+    homepage = "https://github.com/Danielhiversen/pySwitchbot";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytankerkoenig/default.nix b/nixpkgs/pkgs/development/python-modules/pytankerkoenig/default.nix
new file mode 100644
index 000000000000..0a6403107ab8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytankerkoenig/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pytankerkoenig";
+  version = "0.0.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "021fg1a4n3527fz86zxfbsi0jrk0dnai1y92q6hwh5za68lrs710";
+  };
+
+  # Tests require an API key and network access
+  doCheck = false;
+  pythonImportsCheck = [ "pytankerkoenig" ];
+
+  meta = with lib; {
+    description = "Python module to get fuel data from tankerkoenig.de";
+    homepage = "https://github.com/ultrara1n/pytankerkoenig";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyte/default.nix b/nixpkgs/pkgs/development/python-modules/pyte/default.nix
index e930f1d5717f..b907db22386c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyte/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyte/default.nix
@@ -1,21 +1,23 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, pytestrunner, wcwidth }:
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pytest-runner, wcwidth }:
 
 buildPythonPackage rec {
   pname = "pyte";
   version = "0.8.0";
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "7e71d03e972d6f262cbe8704ff70039855f05ee6f7ad9d7129df9c977b5a88c5";
   };
 
+  nativeBuildInputs = [ pytest-runner ];
+
   propagatedBuildInputs = [ wcwidth ];
 
-  checkInputs = [ pytest pytestrunner ];
+  checkInputs = [ pytestCheckHook ];
 
-  # tries to write to os.path.dirname(__file__) in test_input_output
-  checkPhase = ''
-    py.test -k "not test_input_output"
-  '';
+  disabledTests = [
+    "test_input_output"
+  ];
 
   meta = with lib; {
     description = "Simple VTXXX-compatible linux terminal emulator";
diff --git a/nixpkgs/pkgs/development/python-modules/pytenable/default.nix b/nixpkgs/pkgs/development/python-modules/pytenable/default.nix
new file mode 100644
index 000000000000..39d1116f0bb3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytenable/default.nix
@@ -0,0 +1,66 @@
+{ lib
+, buildPythonPackage
+, defusedxml
+, fetchFromGitHub
+, marshmallow
+, pytest-datafiles
+, pytest-vcr
+, pytestCheckHook
+, python-box
+, python-dateutil
+, requests
+, requests-pkcs12
+, responses
+, restfly
+, semver
+}:
+
+buildPythonPackage rec {
+  pname = "pytenable";
+  version = "1.2.8";
+
+  src = fetchFromGitHub {
+    owner = "tenable";
+    repo = "pyTenable";
+    rev = version;
+    sha256 = "12x0w1c4blm73ixv07w90jkydl7d8dx5l27ih9vc1yv9v2zzb53k";
+  };
+
+  propagatedBuildInputs = [
+    semver
+  ];
+
+  buildInputs = [
+    defusedxml
+    marshmallow
+    python-box
+    python-dateutil
+    requests
+    requests-pkcs12
+    restfly
+  ];
+
+  checkInputs = [
+    responses
+    pytest-datafiles
+    pytest-vcr
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Disable tests that requires a Docker container
+    "test_uploads_docker_push_name_typeerror"
+    "test_uploads_docker_push_tag_typeerror"
+    "test_uploads_docker_push_cs_name_typeerror"
+    "test_uploads_docker_push_cs_tag_typeerror"
+  ];
+
+  pythonImportsCheck = [ "tenable" ];
+
+  meta = with lib; {
+    description = "Python library for the Tenable.io and TenableSC API";
+    homepage = "https://github.com/tenable/pyTenable";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix b/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
index ac3bf6dbf5be..a7af2d1db032 100644
--- a/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytesseract";
-  version = "0.3.6";
+  version = "0.3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b79641b7915ff039da22d5591cb2f5ca6cb0ed7c65194c9c750360dc6a1cc87f";
+    sha256 = "4ecfc898d00a70fcc38d2bce729de1597c67e7bc5d2fa26094714c9f5b573645";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-aiohttp/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-aiohttp/default.nix
index fad9a70af0ff..4e45477c8caa 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-aiohttp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-aiohttp/default.nix
@@ -9,7 +9,9 @@ buildPythonPackage rec {
     sha256 = "0kx4mbs9bflycd8x9af0idcjhdgnzri3nw1qb0vpfyb3751qaaf9";
   };
 
-  propagatedBuildInputs = [ pytest aiohttp ];
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ aiohttp ];
 
   # There are no tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-ansible/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-ansible/default.nix
index 4ca6bdac6e96..25d5aa30543a 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-ansible/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-ansible/default.nix
@@ -21,10 +21,12 @@ buildPythonPackage rec {
     sed -i "s/'setuptools-markdown'//g" setup.py
   '';
 
+  buildInputs = [ pytest ];
+
   # requires pandoc < 2.0
   # buildInputs = [ setuptools-markdown ];
   checkInputs =  [ mock ];
-  propagatedBuildInputs = [ ansible pytest ];
+  propagatedBuildInputs = [ ansible ];
 
   # tests not included with release, even on github
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-arraydiff/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-arraydiff/default.nix
index 8b1de360f494..5c6f9cf2b852 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-arraydiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-arraydiff/default.nix
@@ -16,10 +16,11 @@ buildPythonPackage rec {
     sha256 = "de2d62f53ecc107ed754d70d562adfa7573677a263216a7f19aa332f20dc6c15";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
     numpy
     six
-    pytest
   ];
 
   # The tests requires astropy, which itself requires
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-astropy-header/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-astropy-header/default.nix
index 4b40280ed700..963e621986cf 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-astropy-header/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-astropy-header/default.nix
@@ -31,8 +31,7 @@ buildPythonPackage rec {
     })
   ];
 
-
-  propagatedBuildInputs = [
+  buildInputs = [
     pytest
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix
index ae3bc04d0b4c..5d5a0de447d2 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix
@@ -25,9 +25,10 @@ buildPythonPackage rec {
     setuptools_scm
   ];
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
     hypothesis
-    pytest
     pytest-astropy-header
     pytest-doctestplus
     pytest-filter-subpackage
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
index 83757c2e1665..e71b3e7350a7 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
@@ -22,7 +22,9 @@ buildPythonPackage rec {
     sha256 = "1yqzz44as4pxffmg4hk9lijvnvlc2chg1maq1fbj5i4k4jpagvjz";
   };
 
-  propagatedBuildInputs = [ glob2 Mako parse parse-type py pytest six ];
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ glob2 Mako parse parse-type py six ];
 
   # Tests require extra dependencies
   checkInputs = [ execnet mock pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-benchmark/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-benchmark/default.nix
index eedbbc274f4f..b84b42e351db 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-benchmark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-benchmark/default.nix
@@ -19,7 +19,9 @@ buildPythonPackage rec {
     sha256 = "1hslzzinpwc1zqhbpllqh3sllmiyk69pcycl7ahr0rz3micgwczj";
   };
 
-  propagatedBuildInputs = [ pytest py-cpuinfo ] ++ lib.optionals (pythonOlder "3.4") [ pathlib statistics ];
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ py-cpuinfo ] ++ lib.optionals (pythonOlder "3.4") [ pathlib statistics ];
 
   meta = {
     description = "Py.test fixture for benchmarking code";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix
index 6f23c00baf36..629b4292f86e 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix
@@ -16,7 +16,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools_scm ];
 
-  propagatedBuildInputs = [ black pytest toml ];
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ black toml ];
 
   # does not contain tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-catchlog/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-catchlog/default.nix
index 39c26a3e0f36..58b69c4ce560 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-catchlog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-catchlog/default.nix
@@ -10,7 +10,8 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  buildInputs = [ pytest unzip ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ pytest ];
   checkPhase = "make test";
 
   # Requires pytest < 3.1
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix
index 4c3e9dd96feb..a77295458733 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "1i01i5ab06ic11na13gcacrlcs2ab6rmaii0yz0x06z5ynnljn6s";
   };
 
-  propagatedBuildInputs = [ pytest ];
+  buildInputs = [ pytest ];
   checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-cid/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-cid/default.nix
new file mode 100644
index 000000000000..c1c918c4d60c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-cid/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, pythonOlder
+, py-cid
+, pytestCheckHook
+, pytest-cov
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-cid";
+  version = "1.1.1";
+  format = "flit";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "ntninja";
+    repo = pname;
+    rev = "1ff9ec43ac9eaf76352ea7e7a060cd081cb8b68a"; # Version has no git tag
+    sha256 = "sha256-H2RtMGYWukowTTfqZSx+hikxzkqw1v5bA4AfZfiVl8U=";
+  };
+
+  propagatedBuildInputs = [
+    py-cid
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-cov
+  ];
+
+  pythonImportsCheck = [ "pytest_cid" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/ntninja/pytest-cid";
+    description = "A simple wrapper around py-cid for easily writing tests involving CIDs in datastructures";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ Luflosi ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-click/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-click/default.nix
index 0c23a907cbae..887fe7fe7b59 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-click/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-click/default.nix
@@ -19,8 +19,9 @@ buildPythonPackage rec {
     sha256 = "197nvlqlyfrqpy5lrkmfh1ywpr6j9zipxl9d7syg2a2n7jz3a8rj";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
-    pytest
     click
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix
index 7108a8f4c176..fc6b716397dd 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix
@@ -9,7 +9,15 @@ buildPythonPackage rec {
     sha256 = "c2a892906192663f85030a6ab91304e508e546cddfe557d692d61ec57a1d946b";
   };
 
-  propagatedBuildInputs = [ pytest ];
+  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";
+      sha256 = "0ka892j0rrlnfvk900fcph0f6lsnr9dy06q5k2s2byzwijhdw6n5";
+    })
+  ];
+
+  buildInputs = [ pytest ];
 
   checkInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
index c9c373a27525..bf8dc9f8dfce 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -17,10 +17,11 @@ buildPythonPackage rec {
     sha256 = "fb083925a17ce636f33997c275f61123e63372c1db11fefac1e991ed25a4ca37";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
     six
     numpy
-    pytest
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-error-for-skips/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-error-for-skips/default.nix
new file mode 100644
index 000000000000..60d3f16a1c97
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-error-for-skips/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-error-for-skips";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner = "jankatins";
+    repo = pname;
+    rev = version;
+    sha256 = "04i4jd3bg4lgn2jfh0a0dzg3ml9b2bjv2ndia6b64w96r3r4p3qr";
+  };
+
+  buildInputs = [ pytest ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pytest_error_for_skips" ];
+
+  meta = with lib; {
+    description = "Pytest plugin to treat skipped tests a test failures";
+    homepage = "https://github.com/jankatins/pytest-error-for-skips";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-factoryboy/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-factoryboy/default.nix
index e63b7329c965..39d6bc127e6b 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-factoryboy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-factoryboy/default.nix
@@ -21,10 +21,11 @@ buildPythonPackage rec {
     sha256 = "0v6b4ly0p8nknpnp3f4dbslfsifzzjx2vv27rfylx04kzdhg4m9p";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
     factory_boy
     inflection
-    pytest
   ];
 
   checkInputs = [
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 6caf4d9c772e..67f759cb59f1 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
@@ -21,8 +21,9 @@ buildPythonPackage rec {
     setuptools_scm
   ];
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
-    pytest
     pytest-doctestplus
     pytestcov
     pytestCheckHook
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-flake8/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-flake8/default.nix
index a5ed447aceac..9486875ff34a 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-flake8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-flake8/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-flake8";
-  version = "1.0.6";
+  version = "1.0.7";
 
   # although pytest is a runtime dependency, do not add it as
   # propagatedBuildInputs in order to allow packages depend on another version
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b82bb58c88eb1db40524018d3fcfd0424575029703b4e2d8e3ee873f2b17027";
+    sha256 = "f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix
index 805c19751ed1..e016b68837de 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix
@@ -15,8 +15,9 @@ buildPythonPackage rec {
     sha256 = "bf070c5485dad82d5b5f5d0eb08d269737e378492d9a68f5223b0a90924c7754";
   };
 
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ pyflakes ];
   checkInputs = [ pytest ];
-  propagatedBuildInputs = [ pytest pyflakes ];
 
   # no longer passes
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
index 7b459b4a294c..e55d98ce46be 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
@@ -12,8 +12,9 @@ buildPythonPackage rec {
 
   doCheck = false;
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
-    pytest
     flask
     werkzeug
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
index 89200f519e76..0cfb8cd6afc8 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
@@ -2,7 +2,9 @@
 , buildPythonPackage
 , fetchPypi
 , setuptools_scm
+, py
 , pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -14,19 +16,22 @@ buildPythonPackage rec {
     sha256 = "6aa9ac7e00ad1a539c41bec6d21011332de671e938c7637378ec9710204e37ca";
   };
 
-  buildInputs = [ pytest setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm ];
 
-  # Do not function
-  doCheck = false;
+  buildInputs = [
+    pytest
+  ];
 
-  checkPhase = ''
-    py.test testing
-  '';
+  propagatedBuildInputs = [
+    py
+  ];
+
+  checkInputs = [ pytestCheckHook ];
 
   meta = {
     description = "Run tests in isolated forked subprocesses";
     homepage = "https://github.com/pytest-dev/pytest-forked";
     license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dotlambda ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-freezegun/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-freezegun/default.nix
index 424d8fde2326..2fbc7a651c18 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-freezegun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-freezegun/default.nix
@@ -1,23 +1,31 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, isPy27
+, fetchFromGitHub
 , freezegun
 , pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pytest-freezegun";
   version = "0.4.2";
 
-  src = fetchPypi {
-    inherit pname version;
-    extension = "zip";
-    sha256 = "19c82d5633751bf3ec92caa481fb5cffaac1787bd485f0df6436fd6242176949";
+  src = fetchFromGitHub {
+    owner = "ktosiek";
+    repo = "pytest-freezegun";
+    rev = version;
+    sha256 = "10c4pbh03b4s1q8cjd75lr0fvyf9id0zmdk29566qqsmaz28npas";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
     freezegun
-    pytest
+  ];
+
+  checkInputs = [
+    pytestCheckHook
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix
index 1b09d6863b97..4df30e3f1936 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix
@@ -12,7 +12,8 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ pytest pytest-metadata ];
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ pytest-metadata ];
 
   meta = with lib; {
     description = "Plugin for generating HTML reports";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix
new file mode 100644
index 000000000000..d6f30486f9b2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, pytest
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-httpx";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "Colin-b";
+    repo = "pytest_httpx";
+    rev = "v${version}";
+    sha256 = "08idd3y6khxjqkn46diqvkjvsl4w4pxhl6z1hspbkrj0pqwf9isi";
+  };
+
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [
+    httpx
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pytest_httpx" ];
+
+  meta = with lib; {
+    description = "Send responses to httpx";
+    homepage = "https://github.com/Colin-b/pytest_httpx";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
index f7766003be10..1a03ec2f91d2 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
@@ -11,7 +11,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ pytest ];
+  buildInputs = [ pytest ];
 
   meta = with lib; {
     description = "Plugin for accessing test session metadata";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix
index ad82b389bee8..3e044b4fe596 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix
@@ -1,41 +1,33 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
-, isPy3k
-, pytest
-, mock
+, pytest-asyncio
+, pytestCheckHook
 , setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-mock";
-  version = "3.3.1";
+  version = "3.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4d6d37329e4a893e77d9ffa89e838dd2b45d5dc099984cf03c703ac8411bb82";
+    sha256 = "1z6r3n78bilfzkbxj083p0ib04ia1bhfgnj2qq9x6q4mmykapqm1";
   };
 
-  propagatedBuildInputs = lib.optional (!isPy3k) mock;
-
-  nativeBuildInputs = [
-   setuptools_scm
-  ];
+  nativeBuildInputs = [ setuptools_scm ];
 
   checkInputs = [
-    pytest
+    pytest-asyncio
+    pytestCheckHook
   ];
 
-  # ignore test which only works with pytest5 output structure
-  checkPhase = ''
-    pytest -k 'not detailed_introspection_async'
-  '';
+  pythonImportsCheck = [ "pytest_mock" ];
 
   meta = with lib; {
-    description = "Thin-wrapper around the mock package for easier use with py.test.";
-    homepage    = "https://github.com/pytest-dev/pytest-mock";
-    license     = licenses.mit;
+    description = "Thin-wrapper around the mock package for easier use with pytest";
+    homepage = "https://github.com/pytest-dev/pytest-mock";
+    license = with licenses; [ mit ];
     maintainers = with maintainers; [ nand0p ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix
index 9062284d5dfd..370416c4aa82 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix
@@ -18,7 +18,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools_scm ];
 
-  propagatedBuildInputs = [ pytest mypy filelock ];
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ mypy filelock ];
 
   # does not contain tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix
index bb7bdf03d00d..baa5438dfa88 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix
@@ -20,8 +20,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools_scm ];
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
-    pytest
     psutil
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-order/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-order/default.nix
index b07be1178c63..8e10cd4f587a 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-order/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-order/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-order";
-  version = "0.9.4";
+  version = "0.9.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b7i8z6rywnkb3skyg8bnfqgkjrwvkn64b4q07wfl1q7x65ksd26";
+    sha256 = "9c9e4f1b060414c642e88ad98ca60f1fd37937debd704bd8f4a2ef8e08b9cb6d";
   };
 
-  propagatedBuildInputs = [ pytest ];
+  buildInputs = [ pytest ];
 
   checkInputs = [
     pytestCheckHook
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix
index e35d2ebc73e9..16a1fb92dd6f 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix
@@ -21,8 +21,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pytestrunner ];
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
-    pytest
     pylint
     six
     toml
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-pythonpath/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-pythonpath/default.nix
index 4194b7bd0e94..117471aa8df1 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-pythonpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-pythonpath/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "0qhxh0z2b3p52v3i0za9mrmjnb1nlvvyi2g23rf88b3xrrm59z33";
   };
 
-  propagatedBuildInputs = [ pytest ];
+  buildInputs = [ pytest ];
   checkInputs = [ pytest ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-qt/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-qt/default.nix
index 201da93b0187..c91c3eae4abe 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-qt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-qt/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     setuptools_scm
   ];
 
-  propagatedBuildInputs = [
+  buildInputs = [
     pytest
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-raises/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-raises/default.nix
new file mode 100644
index 000000000000..7891437909ed
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-raises/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-raises";
+  version = "0.11";
+
+  src = fetchFromGitHub {
+    owner = "Lemmons";
+    repo = pname;
+    rev = version;
+    sha256 = "0gbb4kml2qv7flp66i73mgb4qihdaybb6c96b5dw3mhydhymcsy2";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pytest_raises" ];
+
+  meta = with lib; {
+    description = "An implementation of pytest.raises as a pytest.mark fixture";
+    homepage = "https://github.com/Lemmons/pytest-raises";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-random-order/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-random-order/default.nix
index d84bb3c9acf9..d95af8651f34 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-random-order/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-random-order/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.5";
 
-  propagatedBuildInputs = [ pytest ];
+  buildInputs = [ pytest ];
 
   meta = with lib; {
     homepage = "https://github.com/jbasko/pytest-random-order";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-remotedata/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-remotedata/default.nix
index 94bc02159bf4..fb91f461329e 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-remotedata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-remotedata/default.nix
@@ -14,9 +14,10 @@ buildPythonPackage rec {
     sha256 = "e20c58d4b7c359c4975dc3c3d3d67be0905180d2368be0be3ae09b15a136cfc0";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
     six
-    pytest
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix
index 1bd91fe70f78..b0b0e2372f41 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix
@@ -11,9 +11,9 @@ buildPythonPackage rec {
     sha256 = "1cb11a17fc121b3918414eb5eaf314ee325f2e693ac7cb3f6abf7560790827f2";
   };
 
-  checkInputs = [ mock pytest ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [ pytest ];
+  checkInputs = [ mock pytest ];
 
   checkPhase = ''
     py.test test_pytest_rerunfailures.py
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix
index 0044a13d2c9a..84330cfd62e5 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix
@@ -1,28 +1,45 @@
 { lib
-, buildPythonPackage
-, fetchPypi
-, pytest
 , aiohttp
 , async_generator
+, buildPythonPackage
+, doCheck ? true
+, fetchFromGitHub
+, httpx
+, pytest
+, pytestCheckHook
+, sanic
+, websockets
 }:
 
 buildPythonPackage rec {
   pname = "pytest-sanic";
-  version = "1.6.2";
+  version = "1.7.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6428ed8cc2e6cfa05b92689a8589149aacdc1f0640fcf9673211aa733e6a5209";
+  src = fetchFromGitHub {
+    owner = "yunstanford";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zpgnw1lqbll59chv4hgcn31mdql1nv4gw9crbihky3ly3d3ncqi";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
-    pytest
     aiohttp
     async_generator
+    httpx
+    pytest
+    websockets
   ];
 
-  # circular dependency on sanic
-  doCheck = false;
+  checkInputs = [
+    sanic
+    pytestCheckHook
+  ];
+
+  inherit doCheck;
+
+  pythonImportsCheck = [ "pytest_sanic" ];
 
   meta = with lib; {
     description = "A pytest plugin for Sanic";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
index 761fe1d5d54e..7ab175a893c8 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
@@ -25,10 +25,11 @@ buildPythonPackage rec {
     toml
   ];
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
     requests
     psutil
-    pytest
     zc_lockfile
   ] ++ lib.optional (!isPy3k) subprocess32;
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-shutil/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-shutil/default.nix
index 9d088e44f8d7..0483063c53bc 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-shutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-shutil/default.nix
@@ -11,9 +11,9 @@ buildPythonPackage rec {
     sha256 = "0q8j0ayzmnvlraml6i977ybdq4xi096djhf30n2m1rvnvrhm45nq";
   };
 
+  buildInputs = [ pytest ];
   checkInputs = [ cmdline pytest ];
   propagatedBuildInputs = [ pytestcov coverage setuptools-git mock pathpy execnet contextlib2 termcolor ];
-  nativeBuildInputs = [ pytest ];
 
   checkPhase = ''
     py.test ${lib.optionalString isPyPy "-k'not (test_run or test_run_integration)'"}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
index d57c7f66c244..f38f39543201 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
@@ -11,7 +11,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [ packaging pytest ];
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ packaging ];
 
   # pypi does not contain tests and GitHub archive is not supported because setuptools-scm can't detect the version
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-socket/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-socket/default.nix
index dcfa20360146..05f632d39ba3 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-socket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-socket/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "1jbzkyp4xki81h01yl4vg3nrg9b6shsk1ryrmkaslffyhrqnj8zh";
   };
 
-  propagatedBuildInputs = [
+  buildInputs = [
     pytest
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-subtests/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-subtests/default.nix
index 3be2adc11a42..c07832c0b059 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-subtests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-subtests/default.nix
@@ -1,22 +1,31 @@
-{ lib, buildPythonPackage, isPy27, fetchPypi, setuptools_scm, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+}:
 
 buildPythonPackage rec {
   pname = "pytest-subtests";
-  version = "0.3.2";
-  disabled = isPy27;
+  version = "0.4.0";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mxg91mrn8672f8hwg0f31xkyarnq7q0hr4fvb9hcb09jshq2wk7";
+    sha256 = "sha256-jZ4sHR3OEfe30snQkgLr/HdXt/8MrJtyrTKO3+fuA3s=";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "pytest_subtests" ];
+
   meta = with lib; {
     description = "pytest plugin for unittest subTest() support and subtests fixture";
     homepage = "https://github.com/pytest-dev/pytest-subtests";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix
index d1f271ea2bcb..953e56ae0a44 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix
@@ -16,9 +16,10 @@ buildPythonPackage rec {
     sha256 = "b1b2186b0a72aada6859bea2a5764145e3aaa2c1cfbb23c3a19b5f7b697563d3";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
     termcolor
-    pytest
     packaging
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix
index b86947f5f758..7d2e07db01fc 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-testmon";
-  version = "1.0.3";
+  version = "1.1.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "927a73dd510b90a2e4a48ea4d37e82c4490b56caa745663262024ea0cd278169";
+    sha256 = "sha256-+IpT0o+Jg2UJcy6d7mEdZsYfW4IXIBu4IqBFbywyPRk=";
   };
 
   propagatedBuildInputs = [ coverage ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-timeout/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-timeout/default.nix
index 6bf3483d40f9..8c59b6ee2c9c 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-timeout/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-timeout/default.nix
@@ -16,12 +16,14 @@ buildPythonPackage rec {
     sha256 = "0xnsigs0kmpq1za0d4i522sp3f71x5bgpdh3ski0rs74yqy13cr0";
   };
 
-  propagatedBuildInputs = [ pytest ];
+  buildInputs = [ pytest ];
 
   checkInputs = [ pytestCheckHook pexpect pytestcov ];
 
   disabledTests = [
     "test_suppresses_timeout_when_pdb_is_entered"
+    # Remove until https://github.com/pytest-dev/pytest/pull/7207 or similar
+    "test_suppresses_timeout_when_debugger_is_entered"
   ];
   pytestFlagsArray = [
     "-ra"
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-tornado/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-tornado/default.nix
index 658ca7122f4b..bd1ce2a597b1 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-tornado/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-tornado/default.nix
@@ -17,7 +17,9 @@ buildPythonPackage rec {
   # package has no tests
   doCheck = false;
 
-  propagatedBuildInputs = [ pytest tornado ];
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ tornado ];
 
   meta = with lib; {
     description = "A py.test plugin providing fixtures and markers to simplify testing of asynchronous tornado applications.";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-tornasync/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-tornasync/default.nix
index be1e76d21e4f..f037ab86d5f6 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-tornasync/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-tornasync/default.nix
@@ -15,8 +15,9 @@ buildPythonPackage rec {
     sha256 = "04cg1cfrr55dbi8nljkpcsc103i5c6p0nr46vjr0bnxgkxx03x36";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
-    pytest
     tornado
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-trio/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-trio/default.nix
index 7bf05013f214..a9327e2b2320 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-trio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-trio/default.nix
@@ -13,11 +13,12 @@ buildPythonPackage rec {
     sha256 = "0bhh2nknhp14jzsx4zzpqm4qnfaihyi65cjf6kf6qgdhc0ax6nf4";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
     trio
     async_generator
     outcome
-    pytest
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-twisted/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-twisted/default.nix
index 19e1091c8c76..789af6769415 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-twisted/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-twisted/default.nix
@@ -16,7 +16,9 @@ buildPythonPackage rec {
     sha256 = "cee2320becc5625050ab221b8f38533e636651a24644612f4726891fdf1f1847";
   };
 
-  propagatedBuildInputs = [ greenlet pytest decorator ];
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ greenlet decorator ];
 
   meta = with lib; {
     description = "A twisted plugin for py.test";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-vcr/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-vcr/default.nix
index 9373c597b367..3887261ba5b5 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-vcr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-vcr/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pytestCheckHook
 , pytest
 , vcrpy
 }:
@@ -17,8 +16,9 @@ buildPythonPackage rec {
     sha256 = "1i6fin91mklvbi8jzfiswvwf1m91f43smpj36a17xrzk4gisfs6i";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
-    pytest
     vcrpy
    ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-warnings/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-warnings/default.nix
index 600ffbfdc7fc..d088bde8b0c9 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-warnings/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-warnings/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "5939f76fe04ad18297e53af0c9fb38aca1ec74db807bd40ad72733603adbbc7d";
   };
 
-  propagatedBuildInputs = [ pytest ];
+  buildInputs = [ pytest ];
 
   meta = {
     description = "Plugin to list Python warnings in pytest report";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-watch/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-watch/default.nix
index 12b06c2e1b63..077b3eca6bfa 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-watch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-watch/default.nix
@@ -16,10 +16,13 @@ buildPythonPackage rec {
     sha256 = "06136f03d5b361718b8d0d234042f7b2f203910d8568f63df2f866b547b3d4b9";
   };
 
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ colorama docopt watchdog ];
+
   # No Tests
   doCheck = false;
-
-  propagatedBuildInputs = [ pytest colorama docopt watchdog ];
+  pythonImportsCheck = [ "pytest_watch" ];
 
   meta = with lib; {
     homepage = "https://github.com/joeyespo/pytest-watch";
@@ -28,4 +31,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ dmvianna ];
   };
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
index 30e43c17c919..bbc08fb59df4 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -1,28 +1,42 @@
-{ lib, fetchPypi, buildPythonPackage, execnet, pytest_6
-, setuptools_scm, pytest-forked, filelock, psutil, six, isPy3k }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, setuptools_scm
+, pytestCheckHook
+, filelock
+, execnet
+, pytest
+, pytest-forked
+, psutil
+}:
 
 buildPythonPackage rec {
   pname = "pytest-xdist";
-  version = "2.1.0";
-  disabled = !isPy3k;
+  version = "2.2.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wh6pn66nncfs6ay0n863bgyriwsgppn8flx5l7551j1lbqkinc2";
+    sha256 = "718887296892f92683f6a51f25a3ae584993b06f7076ce1e1fd482e59a8220a2";
   };
 
-  nativeBuildInputs = [ setuptools_scm pytest_6 ];
-  checkInputs = [ pytest_6 filelock ];
-  propagatedBuildInputs = [ execnet pytest-forked psutil six ];
+  nativeBuildInputs = [ setuptools_scm ];
+  buildInputs = [
+    pytest
+  ];
+  checkInputs = [ pytestCheckHook filelock ];
+  propagatedBuildInputs = [ execnet pytest-forked psutil ];
 
-  # pytest6 doesn't allow for new lines
-  # capture_deprecated not compatible with latest pytest6
-  checkPhase = ''
-    # Excluded tests access file system
-    export HOME=$TMPDIR
-    pytest -n $NIX_BUILD_CORES \
-      -k "not (distribution_rsyncdirs_example or rsync or warning_captured_deprecated_in_pytest_6)"
-  '';
+  # access file system
+  disabledTests = [
+    "test_distribution_rsyncdirs_example"
+    "test_rsync_popen_with_path"
+    "test_popen_rsync_subdir"
+    "test_rsync_report"
+    "test_init_rsync_roots"
+    "test_rsyncignore"
+  ];
 
   meta = with lib; {
     description = "py.test xdist plugin for distributed testing and loop-on-failing modes";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
index 124adb8b2a53..6e557a7adceb 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
@@ -14,7 +14,10 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ psutil pytest ];
+
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ psutil ];
 
   # Remove test QoL package from install_requires
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xvfb/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-xvfb/default.nix
index 64078d68a8b8..c3dabe7f6e30 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xvfb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xvfb/default.nix
@@ -16,8 +16,9 @@ buildPythonPackage rec {
     sha256 = "1kyq5rg27dsnj7dc6x9y7r8vwf8rc88y2ppnnw6r96alw0nn9fn4";
   };
 
+  buildInputs = [ pytest ];
+
   propagatedBuildInputs = [
-    pytest
     virtual-display
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/default.nix b/nixpkgs/pkgs/development/python-modules/pytest/default.nix
index 798084d11117..579cfe1271f3 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/default.nix
@@ -1,19 +1,16 @@
 { lib, buildPythonPackage, pythonOlder, fetchPypi, isPy3k, isPyPy
 , atomicwrites
 , attrs
-, funcsigs
 , hypothesis
 , iniconfig
-, mock
 , more-itertools
 , packaging
 , pathlib2
 , pluggy
 , py
 , pygments
-, python
 , setuptools
-, setuptools_scm
+, setuptools-scm
 , six
 , toml
 , wcwidth
@@ -21,18 +18,17 @@
 }:
 
 buildPythonPackage rec {
-  version = "6.1.2";
   pname = "pytest";
-
+  version = "6.2.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0a7e94a8cdbc5422a51ccdad8e6f1024795939cc89159a0ae7f0b316ad3823e";
+    sha256 = "sha256-nR7fnn0LhNcuo9vN/SKzX7VDpejypgCS3VeJNr9j1/k=";
   };
 
-  checkInputs = [ hypothesis pygments ];
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
+
   propagatedBuildInputs = [
     atomicwrites
     attrs
@@ -47,6 +43,11 @@ buildPythonPackage rec {
     wcwidth
   ] ++ lib.optionals (pythonOlder "3.6") [ pathlib2 ];
 
+  checkInputs = [
+    hypothesis
+    pygments
+  ];
+
   doCheck = !isPyPy; # https://github.com/pytest-dev/pytest/issues/3460
 
   preCheck = ''
@@ -80,8 +81,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    homepage = "https://docs.pytest.org";
     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;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/python-awair/default.nix b/nixpkgs/pkgs/development/python-modules/python-awair/default.nix
new file mode 100644
index 000000000000..b676a7a3de98
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-awair/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-aiohttp
+, pytestCheckHook
+, pythonOlder
+, voluptuous
+, vcrpy
+}:
+
+buildPythonPackage rec {
+  pname = "python-awair";
+  version = "0.2.2";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "ahayworth";
+    repo = "python_awair";
+    rev = version;
+    sha256 = "sha256-5+s1aSvt+rXyumvf/qZ58Uvmq0p45mu23Djbwgih3qI=";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    voluptuous
+  ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytestCheckHook
+    vcrpy
+  ];
+
+  pythonImportsCheck = [ "python_awair" ];
+
+  meta = with lib; {
+    description = "Python library for the Awair API";
+    homepage = "https://github.com/ahayworth/python_awair";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-binance/default.nix b/nixpkgs/pkgs/development/python-modules/python-binance/default.nix
index 1ad3a5128be6..aea47c7b9e72 100644
--- a/nixpkgs/pkgs/development/python-modules/python-binance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-binance/default.nix
@@ -3,12 +3,12 @@
 , autobahn, certifi, chardet, cryptography, dateparser, pyopenssl, requests, service-identity, twisted }:
 
 buildPythonPackage rec {
-  version = "0.7.5";
+  version = "0.7.9";
   pname = "python-binance";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d6a96c0e55fc78d45279944515d385b3971300f35c2380ddb82689d676712053";
+    sha256 = "476459d91f6cfe0a37ccac38911643ea6cca632499ad8682e0957a075f73d239";
   };
 
   doCheck = false;  # Tries to test multiple interpreters with tox
diff --git a/nixpkgs/pkgs/development/python-modules/python-box/default.nix b/nixpkgs/pkgs/development/python-modules/python-box/default.nix
new file mode 100644
index 000000000000..cb176109fefb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-box/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, msgpack
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, ruamel_yaml
+, toml
+}:
+
+buildPythonPackage rec {
+  pname = "python-box";
+  version = "5.3.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "cdgriffith";
+    repo = "Box";
+    rev = version;
+    sha256 = "0fhmkjdcacpwyg7fajqfvnv3n9xd9rxjdpvi8z3j73a1gls36gf4";
+  };
+
+  propagatedBuildInputs = [
+    msgpack
+    pyyaml
+    ruamel_yaml
+    toml
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "box" ];
+
+  meta = with lib; {
+    description = "Python dictionaries with advanced dot notation access";
+    homepage = "https://github.com/cdgriffith/Box";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-didl-lite/default.nix b/nixpkgs/pkgs/development/python-modules/python-didl-lite/default.nix
index edde064a3335..64fcd189c749 100644
--- a/nixpkgs/pkgs/development/python-modules/python-didl-lite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-didl-lite/default.nix
@@ -1,17 +1,21 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
 , defusedxml
-, pytest }:
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "python-didl-lite";
-  version = "1.2.5";
+  version = "1.2.6";
   disabled = pythonOlder "3.5.3";
 
   src = fetchFromGitHub {
     owner = "StevenLooman";
     repo = pname;
     rev = version;
-    sha256 = "0wm831g8k9xahw20y0461cvy6lp45sxppicxah1rg9isdc3vy3nh";
+    sha256 = "sha256-1rr26dnV5As15HeFLWEDBDYPiRDHkGfYOYFhSJi7iyU=";
   };
 
   propagatedBuildInputs = [
@@ -19,12 +23,10 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    py.test
-  '';
+  pythonImportsCheck = [ "didl_lite" ];
 
   meta = with lib; {
     description = "DIDL-Lite (Digital Item Declaration Language) tools for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix b/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
index e654826e0bc2..1d8a9a85457b 100644
--- a/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
@@ -1,29 +1,38 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
+{ lib
+, buildPythonPackage
 , click
+, fetchPypi
 , ipython
-, pytest
-, sh
-, typing
 , mock
+, pytestCheckHook
+, pythonOlder
+, sh
 }:
 
 buildPythonPackage rec {
   pname = "python-dotenv";
   version = "0.15.0";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "587825ed60b1711daea4832cf37524dfd404325b7db5e25ebe88c495c9f807a0";
   };
 
-  propagatedBuildInputs = [ click ] ++ lib.optionals isPy27 [ typing ];
+  propagatedBuildInputs = [ click ];
+
+  checkInputs = [
+    ipython
+    mock
+    pytestCheckHook
+    sh
+  ];
 
-  checkInputs = [ ipython mock pytest sh ];
+  disabledTests = [
+    "cli"
+  ];
 
-  # cli tests are impure
-  checkPhase = ''
-    pytest tests/ -k 'not cli'
-  '';
+  pythonImportsCheck = [ "dotenv" ];
 
   meta = with lib; {
     description = "Add .env support to your django/flask apps in development and deployments";
diff --git a/nixpkgs/pkgs/development/python-modules/python-engineio/3.nix b/nixpkgs/pkgs/development/python-modules/python-engineio/3.nix
new file mode 100644
index 000000000000..e4c71782f990
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-engineio/3.nix
@@ -0,0 +1,67 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+, eventlet
+, iana-etc
+, libredirect
+, mock
+, requests
+, six
+, tornado
+, websocket_client
+, websockets
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "python-engineio";
+  version = "3.14.2";
+
+  src = fetchFromGitHub {
+    owner = "miguelgrinberg";
+    repo = "python-engineio";
+    rev = "v${version}";
+    sha256 = "1r3gvizrknbv036pvxid1l726wkb0l43bdaz5y879s7j3ipyb464";
+  };
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkInputs = [
+    aiohttp
+    eventlet
+    mock
+    requests
+    tornado
+    websocket_client
+    websockets
+    pytestCheckHook
+  ];
+
+  preCheck = lib.optionalString stdenv.isLinux ''
+    echo "nameserver 127.0.0.1" > resolv.conf
+    export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf) \
+      LD_PRELOAD=${libredirect}/lib/libredirect.so
+  '';
+  postCheck = ''
+    unset NIX_REDIRECTS LD_PRELOAD
+  '';
+
+  # somehow effective log level does not change?
+  disabledTests = [ "test_logger" ];
+  pythonImportsCheck = [ "engineio" ];
+
+  meta = with lib; {
+    description = "Python based Engine.IO client and server v3.x";
+    longDescription = ''
+      Engine.IO is a lightweight transport protocol that enables real-time
+      bidirectional event-based communication between clients and a server.
+    '';
+    homepage = "https://github.com/miguelgrinberg/python-engineio/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ graham33 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-gammu/default.nix b/nixpkgs/pkgs/development/python-modules/python-gammu/default.nix
new file mode 100644
index 000000000000..1548a1389474
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-gammu/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+  #, pytestCheckHook
+, pythonOlder
+, pkg-config
+, gammu
+}:
+
+buildPythonPackage rec {
+  pname = "python-gammu";
+  version = "3.1";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "gammu";
+    repo = pname;
+    rev = version;
+    sha256 = "1hw2mfrps6wqfyi40p5mp9r59n1ick6pj4hw5njz0k822pbb33p0";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ gammu ];
+
+  # Check with the next release if tests could be run with pytest
+  # checkInputs = [ pytestCheckHook ];
+  # Don't run tests for now
+  doCheck = false;
+  pythonImportsCheck = [ "gammu" ];
+
+  meta = with lib; {
+    description = "Python bindings for Gammu";
+    homepage = "https://github.com/gammu/python-gammu/";
+    license = with licenses; [ gpl2Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix b/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
index 728d47b1f967..8e90ce5190f6 100644
--- a/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
@@ -1,32 +1,54 @@
-{ buildPythonPackage, fetchPypi, lib, isPy3k
-, pkg-config, igraph
-, texttable }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, pkg-config
+, igraph
+, texttable
+, python
+}:
 
 buildPythonPackage rec {
   pname = "python-igraph";
-  version = "0.8.3";
-  disabled = !isPy3k; # fails to build
+  version = "0.9.1";
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ igraph ];
-  propagatedBuildInputs = [ texttable ];
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e1f27622eddeb2bd5fdcbadb41ef048e884790bb050f9627c086dc609d0f1236";
+  src = fetchFromGitHub {
+    owner = "igraph";
+    repo = "python-igraph";
+    rev = version;
+    sha256 = "1ldyzza25zvwh144lw8x856z76s8gfvnbdm56fcmwkvm7aj81npw";
   };
 
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    igraph
+    igraph.dev
+  ];
+
+  propagatedBuildInputs = [
+    texttable
+  ];
+
   # NB: We want to use our igraph, not vendored igraph, but even with
   # pkg-config on the PATH, their custom setup.py still needs to be explicitly
   # told to do it. ~ C.
   setupPyGlobalFlags = [ "--use-pkg-config" ];
 
-  doCheck = !isPy3k;
+  checkPhase = ''
+    ${python.interpreter} -m unittest
+  '';
+
+  pythonImportsCheck = [ "igraph" ];
 
-  meta = {
+  meta = with lib; {
     description = "High performance graph data structures and algorithms";
     homepage = "https://igraph.org/python/";
-    license = lib.licenses.gpl2;
-    maintainers = [ lib.maintainers.MostAwesomeDude ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ MostAwesomeDude dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-levenshtein/default.nix b/nixpkgs/pkgs/development/python-modules/python-levenshtein/default.nix
index b4760cef6295..d208f2c6bdd1 100644
--- a/nixpkgs/pkgs/development/python-modules/python-levenshtein/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-levenshtein/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "python-Levenshtein";
-  version = "0.12.1";
+  version = "0.12.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0489zzjlfgzpc7vggs7s7db13pld2nlnw7iwgdz1f386i0x2fkjm";
+    sha256 = "dc2395fbd148a1ab31090dd113c366695934b9e85fe5a4b2a032745efd0346f6";
   };
 
   # No tests included in archive
diff --git a/nixpkgs/pkgs/development/python-modules/python-ly/default.nix b/nixpkgs/pkgs/development/python-modules/python-ly/default.nix
index cc38553a8176..3b4a7ecc1194 100644
--- a/nixpkgs/pkgs/development/python-modules/python-ly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-ly/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-ly";
-  version = "0.9.6";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0s5hvsf17f4w1xszrf4pg29wfv9znkj195klq1v2qhlpxfp6772d";
+    sha256 = "d4d2b68eb0ef8073200154247cc9bd91ed7fb2671ac966ef3d2853281c15d7a8";
   };
 
   # tests not shipped on `pypi` and
diff --git a/nixpkgs/pkgs/development/python-modules/python-magic/default.nix b/nixpkgs/pkgs/development/python-modules/python-magic/default.nix
index 61a7dd315dfc..6737f1260733 100644
--- a/nixpkgs/pkgs/development/python-modules/python-magic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-magic/default.nix
@@ -1,24 +1,36 @@
-{ buildPythonPackage, lib, fetchPypi, file, stdenv }:
+{ lib
+, stdenv
+, python
+, buildPythonPackage
+, fetchFromGitHub
+, substituteAll
+, file
+, glibcLocales
+}:
 
 buildPythonPackage rec {
   pname = "python-magic";
-  version = "0.4.18";
+  version = "0.4.22";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b757db2a5289ea3f1ced9e60f072965243ea43a2221430048fd8cacab17be0ce";
+  src = fetchFromGitHub {
+    owner = "ahupp";
+    repo = "python-magic";
+    rev = version;
+    sha256 = "0zbdjr5shijs0jayz7gycpx0kn6v2bh83dpanyajk2vmy47jvbd6";
   };
 
-  postPatch = ''
-    substituteInPlace magic.py --replace "ctypes.util.find_library('magic')" "'${file}/lib/libmagic${stdenv.hostPlatform.extensions.sharedLibrary}'"
-  '';
+  patches = [
+    (substituteAll {
+      src = ./libmagic-path.patch;
+      libmagic = "${file}/lib/libmagic${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
 
-  doCheck = false;
+  checkInputs = [ glibcLocales ];
 
-  # TODO: tests are failing
-  #checkPhase = ''
-  #  ${python}/bin/${python.executable} ./test.py
-  #'';
+  checkPhase = ''
+    LC_ALL="en_US.UTF-8" ${python.interpreter} test/test.py
+  '';
 
   meta = {
     description = "A python interface to the libmagic file type identification library";
diff --git a/nixpkgs/pkgs/development/python-modules/python-magic/libmagic-path.patch b/nixpkgs/pkgs/development/python-modules/python-magic/libmagic-path.patch
new file mode 100644
index 000000000000..5a1dbec7d51b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-magic/libmagic-path.patch
@@ -0,0 +1,17 @@
+diff --git a/magic/loader.py b/magic/loader.py
+index 6b2bfcb..69778af 100644
+--- a/magic/loader.py
++++ b/magic/loader.py
+@@ -5,11 +5,7 @@ import glob
+ def load_lib():
+   libmagic = None
+   # Let's try to find magic or magic1
+-  dll = ctypes.util.find_library('magic') \
+-        or ctypes.util.find_library('magic1') \
+-        or ctypes.util.find_library('cygmagic-1') \
+-        or ctypes.util.find_library('libmagic-1') \
+-        or ctypes.util.find_library('msys-magic-1')  # for MSYS2
++  dll = '@libmagic@'
+ 
+   # necessary because find_library returns None if it doesn't find the library
+   if dll:
diff --git a/nixpkgs/pkgs/development/python-modules/python-miio/default.nix b/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
index 78c89408ac2d..1d9025a035f2 100644
--- a/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
@@ -1,51 +1,76 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
-, appdirs
+, poetry
 , click
-, construct
-, croniter
 , cryptography
-, importlib-metadata
-, pytest
-, pytest-mock
+, construct
 , zeroconf
 , attrs
 , pytz
+, appdirs
 , tqdm
 , netifaces
+, android-backup
+, importlib-metadata
+, croniter
+, defusedxml
+, pytestCheckHook
+, pytest-mock
+, pyyaml
 }:
 
 
 buildPythonPackage rec {
   pname = "python-miio";
-  version = "0.5.4";
+  version = "0.5.5.2";
+  disabled = pythonOlder "3.6";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5a6fd3bb2cc2f75cdfe5673f36a5a418144d08add6e53b384cb146e99f27bd39";
+    sha256 = "sha256-lk7egCyj+vSsaXmxuWxlQuom8n3JEs/RIWwCuwTOXeI=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace  "zeroconf>=0.25.1,<0.26.0" "zeroconf"
-    substituteInPlace setup.py \
-      --replace  "pytz>=2019.3,<2020.0" "pytz"
-    substituteInPlace setup.py \
-      --replace  "cryptography>=2.9,<3.0" "cryptography"
-    '';
-
-  checkInputs = [ pytest pytest-mock];
-  propagatedBuildInputs = [ appdirs click construct croniter cryptography importlib-metadata zeroconf attrs pytz tqdm netifaces ];
-
-  checkPhase = ''
-    pytest
+    substituteInPlace pyproject.toml \
+      --replace 'croniter = "^0"' 'croniter = "*"' \
+      --replace 'defusedxml = "^0.6"' 'defusedxml = "*"' \
+      --replace 'zeroconf = "^0.28"' 'zeroconf = "*"'
   '';
 
+  nativeBuildInputs = [
+    poetry
+  ];
+
+  propagatedBuildInputs = [
+    click
+    cryptography
+    construct
+    zeroconf
+    attrs
+    pytz
+    appdirs
+    tqdm
+    netifaces
+    android-backup
+    croniter
+    defusedxml
+  ] ++ lib.optional (pythonOlder "3.8") importlib-metadata;
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-mock
+    pyyaml
+  ];
+
+  pythonImportsCheck = [ "miio" ];
+
   meta = with lib; {
     description = "Python library for interfacing with Xiaomi smart appliances";
     homepage = "https://github.com/rytilahti/python-miio";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ flyfloh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-nmap/default.nix b/nixpkgs/pkgs/development/python-modules/python-nmap/default.nix
new file mode 100644
index 000000000000..745d6c67eac7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-nmap/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nmap
+}:
+
+buildPythonPackage rec {
+  pname = "python-nmap";
+  version = "0.6.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "013q2797d9sf6mrj7x1hqfcql5gqgg50zgiifp2yypfa4k8cwjsx";
+  };
+
+  propagatedBuildInputs = [ nmap ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg --replace "universal=3" "universal=1"
+  '';
+
+  # Tests requires sudo and performs scans
+  doCheck = false;
+  pythonImportsCheck = [ "nmap" ];
+
+  meta = with lib; {
+    description = "Python library which helps in using nmap";
+    longDescription = ''
+      python-nmap is a Python library which helps in using nmap port scanner. It
+      allows to easily manipulate nmap scan results and will be a perfect tool
+      for systems administrators who want to automatize scanning task and reports.
+      It also supports nmap script outputs.
+    '';
+    homepage = "http://xael.org/pages/python-nmap-en.html";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-olm/default.nix b/nixpkgs/pkgs/development/python-modules/python-olm/default.nix
index b1e01f7f4abf..2a8295a65bf7 100644
--- a/nixpkgs/pkgs/development/python-modules/python-olm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-olm/default.nix
@@ -1,11 +1,11 @@
-{ lib, buildPythonPackage, olm,
-  cffi, future, isPy3k, typing }:
+{ lib, buildPythonPackage, isPy3k, olm
+, cffi, future, typing }:
 
 buildPythonPackage {
   pname = "python-olm";
   inherit (olm) src version;
 
-  sourceRoot = "${olm.name}/python";
+  sourceRoot = "source/python";
   buildInputs = [ olm ];
 
   preBuild = ''
@@ -17,12 +17,13 @@ buildPythonPackage {
     future
   ] ++ lib.optionals (!isPy3k) [ typing ];
 
+  # Some required libraries for testing are not packaged yet.
   doCheck = false;
+  pythonImportsCheck = [ "olm" ];
 
-  meta = with lib; {
+  meta = {
+    inherit (olm.meta) license maintainers;
     description = "Python bindings for Olm";
     homepage = "https://gitlab.matrix.org/matrix-org/olm/tree/master/python";
-    license = olm.meta.license;
-    maintainers = [ maintainers.tilpner ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-opendata-transport/default.nix b/nixpkgs/pkgs/development/python-modules/python-opendata-transport/default.nix
index 634ccea371e0..906f08439808 100644
--- a/nixpkgs/pkgs/development/python-modules/python-opendata-transport/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-opendata-transport/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "python-opendata-transport";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchPypi {
     pname = "python_opendata_transport";
     inherit version;
-    sha256 = "0pxs9zqk00vn1s74cx1416mqmixrr74wb0jb0j6b1c3xpvzlfbks";
+    sha256 = "sha256-Z0VHkKYHpwbBwwFrMtA5JRy0m7f0566IjCmGizoKEoo=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-prctl/default.nix b/nixpkgs/pkgs/development/python-modules/python-prctl/default.nix
index 2fd88858de75..dc967b54305c 100644
--- a/nixpkgs/pkgs/development/python-modules/python-prctl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-prctl/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , libcap
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -13,9 +14,25 @@ buildPythonPackage rec {
     sha256 = "b4ca9a25a7d4f1ace4fffd1f3a2e64ef5208fe05f929f3edd5e27081ca7e67ce";
   };
 
-  patches = [ ./skip_bad_tests.patch ];
   buildInputs = [ libcap ];
 
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    # Intel MPX support was removed in GCC 9.1 & Linux kernel 5.6
+    "test_mpx"
+
+    # The Nix build sandbox has no_new_privs already enabled
+    "test_no_new_privs"
+
+    # The Nix build sandbox has seccomp already enabled
+    "test_seccomp"
+
+    # This will fail if prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_FORCE_DISABLE)
+    # has been set system-wide, even outside the sandbox
+    "test_speculation_ctrl"
+  ];
+
   meta = {
     description = "Python(ic) interface to the linux prctl syscall";
     homepage = "https://github.com/seveas/python-prctl";
diff --git a/nixpkgs/pkgs/development/python-modules/python-prctl/skip_bad_tests.patch b/nixpkgs/pkgs/development/python-modules/python-prctl/skip_bad_tests.patch
deleted file mode 100644
index 19d70f234a99..000000000000
--- a/nixpkgs/pkgs/development/python-modules/python-prctl/skip_bad_tests.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- ./test_prctl.py	2018-01-26 16:02:52.000000000 -0500
-+++ ./test_prctl.py	2018-06-21 18:26:43.370065009 -0400
-@@ -154,6 +154,7 @@
-         prctl.set_keepcaps(False)
-         self.assertEqual(prctl.get_keepcaps(), False)
- 
-+    @unittest.skip("No access to /proc in the Nix build sandbox")
-     @require('set_mce_kill')
-     def test_mce_kill(self):
-         """Test the MCE_KILL setting"""
-@@ -173,6 +174,7 @@
-         prctl.set_name(name)
-         self.assertEqual(prctl.get_name(), name[:15])
- 
-+    @unittest.skip("The Nix build sandbox has no_new_privs already enabled")
-     @require('get_no_new_privs')
-     def test_no_new_privs(self):
-         """Test the no_new_privs function"""
-@@ -189,6 +191,7 @@
-                 self.assertNotEqual(sp.returncode, 0)
-             os._exit(0)
- 
-+    @unittest.skip("No access to /proc in the Nix build sandbox")
-     def test_proctitle(self):
-         """Test setting the process title, including too long titles"""
-         title = "This is a test!"
-@@ -225,6 +228,7 @@
-             os._exit(0)
-         self.assertRaises(OSError, prctl.set_ptracer, new_pid)
- 
-+    @unittest.skip("The Nix build sandbox has seccomp already enabled")
-     @require('get_seccomp')
-     def test_seccomp(self):
-         """Test manipulation of the seccomp setting"""
diff --git a/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix b/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
index 2b65a658f982..aadf75d59f7f 100644
--- a/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "python-rtmidi";
-  version = "1.4.6";
+  version = "1.4.7";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1aqhsl9w3h0rwf3mhr8parjbxm2sb6sn5mac6725cvm535pqqyhz";
+    sha256 = "d7dbc2b174b09015dfbee449a672a072aa72b367be40b13e04ee35a2e2e399e3";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix b/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix
index 3162a0326288..904437bdcf66 100644
--- a/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "0zy6prrj85jjc4xmxgfg8h94j81k6zhfxfffcbvq9b10jis1rgav";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   meta = with lib; {
     description = "Easy peasy wrapper for HipChat's v1 API";
diff --git a/nixpkgs/pkgs/development/python-modules/python-smarttub/default.nix b/nixpkgs/pkgs/development/python-modules/python-smarttub/default.nix
new file mode 100644
index 000000000000..372c12c3599d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-smarttub/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, inflection
+, pyjwt
+, pytest-asyncio
+, pytestCheckHook
+, python-dateutil
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "python-smarttub";
+  version = "0.0.21";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "mdz";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-7phx6CI6sqUCZIUxL6ea25UWAcI3NAz66hIleUfN4bk=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    inflection
+    pyjwt
+    python-dateutil
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "smarttub" ];
+
+  meta = with lib; {
+    description = "Python API for SmartTub enabled hot tubs";
+    homepage = "https://github.com/mdz/python-smarttub";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-socketio/4.nix b/nixpkgs/pkgs/development/python-modules/python-socketio/4.nix
new file mode 100644
index 000000000000..3a6f5d87fdd4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-socketio/4.nix
@@ -0,0 +1,47 @@
+{ lib
+, bidict
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+, python-engineio_3
+}:
+
+buildPythonPackage rec {
+  pname = "python-socketio";
+  version = "4.6.1";
+
+  src = fetchFromGitHub {
+    owner = "miguelgrinberg";
+    repo = "python-socketio";
+    rev = "v${version}";
+    sha256 = "14dijag17v84v0pp9qi89h5awb4h4i9rj0ppkixqv6is9z9lflw5";
+  };
+
+  propagatedBuildInputs = [
+    bidict
+    python-engineio_3
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "socketio" ];
+
+  # pytestCheckHook seems to change the default log level to WARNING, but the
+  # tests assert it is ERROR
+  disabledTests = [ "test_logger" ];
+
+  meta = with lib; {
+    description = "Python Socket.IO server and client 4.x";
+    longDescription = ''
+      Socket.IO is a lightweight transport protocol that enables real-time
+      bidirectional event-based communication between clients and a server.
+    '';
+    homepage = "https://github.com/miguelgrinberg/python-socketio/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ graham33 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix b/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix
index e9c2ae146b09..8eb58b244e14 100644
--- a/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
       Socket.IO is a lightweight transport protocol that enables real-time
       bidirectional event-based communication between clients and a server.
     '';
-    homepage = "https://github.com/miguelgrinberg/python-engineio/";
+    homepage = "https://github.com/miguelgrinberg/python-socketio/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ mic92 ];
   };
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 b681fcf85a93..27276e0619cd 100644
--- a/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -7,25 +7,29 @@
 , urllib3
 , tornado
 , pytest
+, APScheduler
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "13.0";
+  version = "13.3";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ca78a41626d728a8f51affa792270e210fa503ed298d395bed2bd1281842dca3";
+    hash = "sha256-dw1sGfdeUw3n9qh4TsBpRdqEvNI0SnKTK4wqBaeM1CE=";
   };
 
   checkInputs = [ pytest ];
-  propagatedBuildInputs = [ certifi future urllib3 tornado decorator ];
+  propagatedBuildInputs = [ certifi future urllib3 tornado decorator APScheduler ];
 
   # --with-upstream-urllib3 is not working properly
   postPatch = ''
-    rm -rf telegram/vendor
+    rm -r telegram/vendor
+
+    substituteInPlace requirements.txt \
+      --replace 'APScheduler==3.6.3' 'APScheduler'
   '';
   setupPyGlobalFlags = "--with-upstream-urllib3";
 
@@ -36,7 +40,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "This library provides a pure Python interface for the Telegram Bot API.";
     homepage = "https://python-telegram-bot.org";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Only;
     maintainers = with maintainers; [ veprbl pingiun ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-twitch-client/default.nix b/nixpkgs/pkgs/development/python-modules/python-twitch-client/default.nix
new file mode 100644
index 000000000000..30f6ab9a0a71
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-twitch-client/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+, responses
+}:
+
+buildPythonPackage rec {
+  pname = "python-twitch-client";
+  version = "0.7.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "tsifrer";
+    repo = pname;
+    rev = version;
+    sha256 = "10wwkam3dw0nqr3v9xzigx1zjlrnrhzr7jvihddvzi84vjb6j443";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  checkInputs = [
+    pytestCheckHook
+    responses
+  ];
+
+  pythonImportsCheck = [ "twitch" ];
+
+  meta = with lib; {
+    description = "Python wrapper for the Twitch API";
+    homepage = "https://github.com/tsifrer/python-twitch-client";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-velbus/default.nix b/nixpkgs/pkgs/development/python-modules/python-velbus/default.nix
new file mode 100644
index 000000000000..a02edfdc1f6d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-velbus/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyserial
+}:
+
+buildPythonPackage rec {
+  pname = "python-velbus";
+  version = "2.1.2";
+
+  src = fetchFromGitHub {
+    owner = "thomasdelaet";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0dv7dsjp5li87ispdphaz7jd0a9xc328rxwawf2f58b1ii904xr4";
+  };
+
+  propagatedBuildInputs = [ pyserial ];
+
+  # Project has not tests
+  doCheck = false;
+  pythonImportsCheck = [ "velbus" ];
+
+  meta = with lib; {
+    description = "Python library to control the Velbus home automation system";
+    homepage = "https://github.com/thomasdelaet/python-velbus";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python3-saml/default.nix b/nixpkgs/pkgs/development/python-modules/python3-saml/default.nix
new file mode 100644
index 000000000000..00774cc40f88
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python3-saml/default.nix
@@ -0,0 +1,40 @@
+{ lib, fetchurl, fetchFromGitHub, buildPythonPackage, isPy3k,
+isodate, lxml, xmlsec, freezegun }:
+
+buildPythonPackage rec {
+  pname = "python3-saml";
+  version = "1.10.1";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "onelogin";
+    repo = "python3-saml";
+    rev = "v${version}";
+    sha256 = "1yk02xq90bm7p6k091av6gapb5h2ccxzgrbm03sj2x8h0wff9s8k";
+  };
+
+  patches = [
+    # Remove the dependency on defusedxml
+    #
+    # This patch is already merged upstream and does not introduce any
+    # functionality changes.
+    (fetchurl {
+      url = "https://github.com/onelogin/python3-saml/commit/4b6c4b1f2ed3f6eab70ff4391e595b808ace168c.patch";
+      sha256 = "11gqn7ib2hmlx5wp4xhi375v5ajapwmj4lpw0y44bh5ww8cypvqy";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    isodate lxml xmlsec
+  ];
+
+  checkInputs = [ freezegun ];
+  pythonImportsCheck = [ "onelogin.saml2" ];
+
+  meta = with lib; {
+    description = "OneLogin's SAML Python Toolkit for Python 3";
+    homepage = "https://github.com/onelogin/python3-saml";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pythran/default.nix b/nixpkgs/pkgs/development/python-modules/pythran/default.nix
new file mode 100644
index 000000000000..864234a37e27
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pythran/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestrunner
+, ply
+, networkx
+, decorator
+, gast
+, six
+, numpy
+, beniget
+, pytestCheckHook
+, scipy
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pythran";
+  version = "0.9.8post3";
+
+  src = fetchFromGitHub {
+    owner = "serge-sans-paille";
+    repo = "pythran";
+    rev = version;
+    sha256 = "sha256-GCWjJlf7zpFzELR6wTF8FoJzJ3F/WdT1hHjY5A5h/+4=";
+  };
+
+  nativeBuildInputs = [
+    pytestrunner
+  ];
+
+  propagatedBuildInputs = [
+    ply
+    networkx
+    decorator
+    gast
+    six
+    numpy
+    beniget
+  ];
+
+  pythonImportsCheck = [
+    "pythran"
+    "pythran.backend"
+    "pythran.middlend"
+    "pythran.passmanager"
+    "pythran.toolchain"
+    "pythran.spec"
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    numpy
+    scipy
+  ];
+
+  # Test suite is huge.
+  # Also, in the future scipy will rely on it resulting in a circular test dependency
+  doCheck = false;
+
+  disabled = !isPy3k;
+
+  meta = {
+    description = "Ahead of Time compiler for numeric kernels";
+    homepage = https://github.com/serge-sans-paille/pythran;
+    license = lib.licenses.bsd3;
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytile/default.nix b/nixpkgs/pkgs/development/python-modules/pytile/default.nix
index 771ae4d13281..c1901a750864 100644
--- a/nixpkgs/pkgs/development/python-modules/pytile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytile/default.nix
@@ -1,6 +1,5 @@
 { lib
 , aiohttp
-, async-timeout
 , aresponses
 , buildPythonPackage
 , fetchFromGitHub
@@ -14,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "pytile";
-  version = "5.1.1";
+  version = "5.2.1";
   disabled = pythonAtLeast "3.9";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-bVoFTaK/Alemtc5I+Z/M9y/FWczvJ+P86R0DMD89/BM=";
+    sha256 = "0d63xga4gjlfl9fzv3i4j605rrx2qgbzam6cl609ny96s8q8h1px";
   };
 
   format = "pyproject";
diff --git a/nixpkgs/pkgs/development/python-modules/pytools/default.nix b/nixpkgs/pkgs/development/python-modules/pytools/default.nix
index 4add5ac5e857..5c7faf50cea6 100644
--- a/nixpkgs/pkgs/development/python-modules/pytools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytools/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "pytools";
-  version = "2020.4.3";
+  version = "2020.4.4";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "21aa1fd942bc3bc54c8ae3b5e60c1f771e6db0817b7402fd802aa5964f20e629";
+    sha256 = "3645ed839cf4d79cb4bf030f37ddaeecd7fe5e2d6698438cc36c24a1d5168809";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix b/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
index 1ffda5c86b0e..1880a0e2bf93 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
@@ -5,7 +5,6 @@
 , isPy38
 , isPy39
 , python
-, nvidia_x11
 , addOpenGLRunpath
 , future
 , numpy
@@ -17,10 +16,9 @@
 
 let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
-  platform = if stdenv.isDarwin then "darwin" else "linux";
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "1.7.1";
+  version = "1.8.0";
 in buildPythonPackage {
   inherit version;
 
@@ -52,7 +50,7 @@ in buildPythonPackage {
   '';
 
   postFixup = let
-    rpath = lib.makeLibraryPath [ stdenv.cc.cc.lib nvidia_x11 ];
+    rpath = lib.makeLibraryPath [ stdenv.cc.cc.lib ];
   in ''
     find $out/${python.sitePackages}/torch/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
       echo "setting rpath for $lib..."
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix b/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
index a542233e15e8..bc838597038d 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
@@ -1,14 +1,14 @@
 version: {
   x86_64-linux-37 = {
     url = "https://download.pytorch.org/whl/cu102/torch-${version}-cp37-cp37m-linux_x86_64.whl";
-    hash = "sha256-XXbCVaQUhMHUGp/1cLnJ82y4XflCiqFaWK4WrHz8LqY=";
+    hash = "sha256-bs29RJS0vy0xok3fvf8yvZlTibyGYqRUvUDT6M4gKQc=";
   };
   x86_64-linux-38 = {
     url = "https://download.pytorch.org/whl/cu102/torch-${version}-cp38-cp38-linux_x86_64.whl";
-    hash = "sha256-3S/GiAyV6DaWDYbvu8f2PTKH8uGJPFHTH5bb/gLw1z4=";
+    hash = "sha256-+h45HMo5N9Xeox8xoagKAb1KgGLAOUSMJUu/WljrB4c=";
   };
   x86_64-linux-39 = {
     url = "https://download.pytorch.org/whl/cu102/torch-${version}-cp39-cp39-linux_x86_64.whl";
-    hash = "sha256-o3k9zOsSseIoEpDMoSd8XOht39W/BE9lQoWk1pBXrqc=";
+    hash = "sha256-Ixj6yGCuc9xkhsDeIiNnTZ72E5/HXxV68r+Nzk/KVSQ=";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/default.nix b/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
index db1914f4ee7b..145c9a240750 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, fetchpatch, buildPythonPackage, python,
-  cudaSupport ? false, cudatoolkit ? null, cudnn ? null, nccl ? null, magma ? null,
+  cudaSupport ? false, cudatoolkit, cudnn, nccl, magma,
   mklDnnSupport ? true, useSystemNccl ? true,
   MPISupport ? false, mpi,
   buildDocs ? false,
@@ -30,8 +30,6 @@
   isPy3k, pythonOlder }:
 
 # assert that everything needed for cuda is present and that the correct cuda versions are used
-assert !cudaSupport || cudatoolkit != null;
-assert cudnn == null || cudatoolkit != null;
 assert !cudaSupport || (let majorIs = lib.versions.major cudatoolkit.version;
                         in majorIs == "9" || majorIs == "10" || majorIs == "11");
 
@@ -74,27 +72,35 @@ let
   # (allowing FBGEMM to be built in pytorch-1.1), and may future proof this
   # derivation.
   brokenArchs = [ "3.0" ]; # this variable is only used as documentation.
-  cuda9ArchList = [
-    "3.5"
-    "5.0"
-    "5.2"
-    "6.0"
-    "6.1"
-    "7.0"
-    "7.0+PTX"  # I am getting a "undefined architecture compute_75" on cuda 9
-               # which leads me to believe this is the final cuda-9-compatible architecture.
-  ];
-  cuda10ArchList = cuda9ArchList ++ [
-    "7.5"
-    "7.5+PTX"  # < most recent architecture as of cudatoolkit_10_0 and pytorch-1.2.0
-  ];
+
+  cudaCapabilities = rec {
+    cuda9 = [
+      "3.5"
+      "5.0"
+      "5.2"
+      "6.0"
+      "6.1"
+      "7.0"
+      "7.0+PTX"  # I am getting a "undefined architecture compute_75" on cuda 9
+                 # which leads me to believe this is the final cuda-9-compatible architecture.
+    ];
+
+    cuda10 = cuda9 ++ [
+      "7.5"
+      "7.5+PTX"  # < most recent architecture as of cudatoolkit_10_0 and pytorch-1.2.0
+    ];
+
+    cuda11 = cuda10 ++ [
+      "8.0"
+      "8.0+PTX"  # < CUDA toolkit 11.0
+      "8.6"
+      "8.6+PTX"  # < CUDA toolkit 11.1
+    ];
+  };
   final_cudaArchList =
     if !cudaSupport || cudaArchList != null
     then cudaArchList
-    else
-      if lib.versions.major cudatoolkit.version == "9"
-      then cuda9ArchList
-      else cuda10ArchList; # the assert above removes any ambiguity here.
+    else cudaCapabilities."cuda${lib.versions.major cudatoolkit.version}";
 
   # Normally libcuda.so.1 is provided at runtime by nvidia-x11 via
   # LD_LIBRARY_PATH=/run/opengl-driver/lib.  We only use the stub
@@ -110,7 +116,7 @@ let
 in buildPythonPackage rec {
   pname = "pytorch";
   # Don't forget to update pytorch-bin to the same version.
-  version = "1.7.1";
+  version = "1.8.1";
 
   disabled = !isPy3k;
 
@@ -125,7 +131,7 @@ in buildPythonPackage rec {
     repo   = "pytorch";
     rev    = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-udpbSL8xnzf20A1pYYNlYjdp8ME8AVaAkMMiw53K6CU=";
+    sha256 = "sha256-HERbvmrfhWwH164GFHU/M0KbhVAuhI5sBZSxCZy8mRk=";
   };
 
   patches = lib.optionals stdenv.isDarwin [
@@ -289,12 +295,13 @@ in buildPythonPackage rec {
     install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libshm.dylib
   '';
 
-
-  meta = {
+  meta = with lib; {
     description = "Open source, prototype-to-production deep learning platform";
     homepage    = "https://pytorch.org/";
-    license     = lib.licenses.bsd3;
-    platforms   = with lib.platforms; linux ++ lib.optionals (!cudaSupport) darwin;
-    maintainers = with lib.maintainers; [ danieldk teh thoughtpolice tscholak ]; # tscholak esp. for darwin-related builds
+    license     = licenses.bsd3;
+    platforms   = with platforms; linux ++ lib.optionals (!cudaSupport) darwin;
+    maintainers = with maintainers; [ danieldk teh thoughtpolice tscholak ]; # tscholak esp. for darwin-related builds
+    # error: use of undeclared identifier 'noU'; did you mean 'no'?
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytrafikverket/default.nix b/nixpkgs/pkgs/development/python-modules/pytrafikverket/default.nix
new file mode 100644
index 000000000000..0a65a960fb79
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytrafikverket/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, async-timeout
+, lxml
+}:
+
+buildPythonPackage rec {
+  pname = "pytrafikverket";
+  version = "0.1.6.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hrjsw53ixgmhsiszdrzzh0wma705nrhq8npzacsyaf43r29zvqy";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    lxml
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pytrafikverket" ];
+
+  meta = with lib; {
+    description = "Python library to manage Etekcity Devices and Levoit Air Purifier";
+    homepage = "https://github.com/endor-force/pytrafikverket";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytrends/default.nix b/nixpkgs/pkgs/development/python-modules/pytrends/default.nix
index 3ce1e70e8239..20dbe0ba31c9 100644
--- a/nixpkgs/pkgs/development/python-modules/pytrends/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytrends/default.nix
@@ -17,10 +17,11 @@ buildPythonPackage rec {
     sha256 = "8ccb06c57c31fa157b978a0d810de7718ee46583d28cf818250d45f36abd2faa";
   };
 
-  doCheck = false;
-
   propagatedBuildInputs = [ requests lxml pandas ];
 
+  doCheck = false;
+  pythonImportsCheck = [ "pytrends" ];
+
   meta = with lib; {
     description = "Pseudo API for Google Trends";
     homepage = "https://github.com/GeneralMills/pytrends";
diff --git a/nixpkgs/pkgs/development/python-modules/pytube/default.nix b/nixpkgs/pkgs/development/python-modules/pytube/default.nix
new file mode 100644
index 000000000000..9f32da55ff1e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytube/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytube";
+  version = "10.7.1";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "pytube";
+    repo = "pytube";
+    rev = "v${version}";
+    sha256 = "sha256-a9MYEQFJXfPXYkWiuZkjt/PGs73Dm5614/Xvv6Nn8RA=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pytube" ];
+
+  meta = with lib; {
+    description = "Python 3 library for downloading YouTube Videos";
+    homepage = "https://github.com/nficano/pytube";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix b/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix
new file mode 100644
index 000000000000..1eebc05d89e3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenv
+, python
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, libjpeg_turbo
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "pyturbojpeg";
+  version = "1.4.1";
+
+  src = fetchPypi {
+    pname = "PyTurboJPEG";
+    inherit version;
+    sha256 = "09688a93331281e566569b4d313e1d1a058ca32ccae1a2473847a10e4ca2f2a7";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./lib-path.patch;
+      libturbojpeg = "${libjpeg_turbo.out}/lib/libturbojpeg${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  # upstream has no tests, but we want to test whether the library is found
+  checkPhase = ''
+    ${python.interpreter} -c 'from turbojpeg import TurboJPEG; TurboJPEG()'
+  '';
+
+  pythonImportsCheck = [ "turbojpeg" ];
+
+  meta = with lib; {
+    description = "A Python wrapper of libjpeg-turbo for decoding and encoding JPEG image";
+    homepage = "https://github.com/lilohuang/PyTurboJPEG";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyturbojpeg/lib-path.patch b/nixpkgs/pkgs/development/python-modules/pyturbojpeg/lib-path.patch
new file mode 100644
index 000000000000..30e6ed58bac7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyturbojpeg/lib-path.patch
@@ -0,0 +1,28 @@
+diff --git a/turbojpeg.py b/turbojpeg.py
+index 73edb38..bfa8c67 100644
+--- a/turbojpeg.py
++++ b/turbojpeg.py
+@@ -408,22 +408,7 @@ class TurboJPEG(object):
+ 
+     def __find_turbojpeg(self):
+         """returns default turbojpeg library path if possible"""
+-        lib_path = find_library('turbojpeg')
+-        if lib_path is not None:
+-            return lib_path
+-        for lib_path in DEFAULT_LIB_PATHS[platform.system()]:
+-            if os.path.exists(lib_path):
+-                return lib_path
+-        if platform.system() == 'Linux' and 'LD_LIBRARY_PATH' in os.environ:
+-            ld_library_path = os.environ['LD_LIBRARY_PATH']
+-            for path in ld_library_path.split(':'):
+-                lib_path = os.path.join(path, 'libturbojpeg.so.0')
+-                if os.path.exists(lib_path):
+-                    return lib_path
+-        raise RuntimeError(
+-            'Unable to locate turbojpeg library automatically. '
+-            'You may specify the turbojpeg library path manually.\n'
+-            'e.g. jpeg = TurboJPEG(lib_path)')
++        return '@libturbojpeg@'
+ 
+     def __getaddr(self, nda):
+         """returns the memory address for a given ndarray"""
diff --git a/nixpkgs/pkgs/development/python-modules/pytz/default.nix b/nixpkgs/pkgs/development/python-modules/pytz/default.nix
index 0351840b3e0b..1a1e1585d289 100644
--- a/nixpkgs/pkgs/development/python-modules/pytz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytz/default.nix
@@ -2,17 +2,19 @@
 
 buildPythonPackage rec {
   pname = "pytz";
-  version = "2020.4";
+  version = "2021.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3e6b7dd2d1e0a59084bcee14a17af60c5c562cdc16d828e8eba2e683d3a7e268";
+    sha256 = "sha256-g6SpCJS/OOJDzwUsi1jzgb/pp6SD9qnKsUC8f3AqxNo=";
   };
 
   checkPhase = ''
     ${python.interpreter} -m unittest discover -s pytz/tests
   '';
 
+  pythonImportsCheck = [ "pytz" ];
+
   meta = with lib; {
     description = "World timezone definitions, modern and historical";
     homepage = "https://pythonhosted.org/pytz";
diff --git a/nixpkgs/pkgs/development/python-modules/pyu2f/default.nix b/nixpkgs/pkgs/development/python-modules/pyu2f/default.nix
index c703a8fe30c4..281511192fe5 100644
--- a/nixpkgs/pkgs/development/python-modules/pyu2f/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyu2f/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ pytest six mock pyfakefs unittest2 ];
+  checkInputs = [ pytest mock pyfakefs unittest2 ];
 
   checkPhase = ''
     pytest pyu2f/tests
diff --git a/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix b/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
new file mode 100644
index 000000000000..95aa57491ca8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
@@ -0,0 +1,31 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, lib
+, pytestCheckHook
+, tokenize-rt
+}:
+
+buildPythonPackage rec {
+  pname = "pyupgrade";
+  version = "2.10.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "asottile";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-XYeqyyfwtS7dHLxeVvmcifW6UCOlnSMxqF1vxezBjT8=";
+  };
+
+  checkInputs =  [ pytestCheckHook ];
+
+  propagatedBuildInputs = [ tokenize-rt ];
+
+  meta = with lib; {
+    description = "A tool to automatically upgrade syntax for newer versions of the language";
+    homepage    = "https://github.com/asottile/pyupgrade";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ lovesegfault ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyusb/default.nix b/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
index 41207984e0ca..1ad312dd5d6a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyusb";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d69ed64bff0e2102da11b3f49567256867853b861178689671a163d30865c298";
+    sha256 = "7d449ad916ce58aff60b89aae0b65ac130f289c24d6a5b7b317742eccffafc38";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyuv/default.nix b/nixpkgs/pkgs/development/python-modules/pyuv/default.nix
index 0be0d61ed0db..2d276c6dccab 100644
--- a/nixpkgs/pkgs/development/python-modules/pyuv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyuv/default.nix
@@ -1,28 +1,32 @@
 { lib
 , buildPythonPackage
-, isPyPy
-, pkgs
+, fetchFromGitHub
+, libuv
 }:
 
 buildPythonPackage rec {
   pname = "pyuv";
-  version = "1.2.0";
-  disabled = isPyPy;  # see https://github.com/saghul/pyuv/issues/49
+  version = "1.4.0";
 
-  src = pkgs.fetchurl {
-    url = "https://github.com/saghul/pyuv/archive/${pname}-${version}.tar.gz";
-    sha256 = "19yl1l5l6dq1xr8xcv6dhx1avm350nr4v2358iggcx4ma631rycx";
+  src = fetchFromGitHub {
+    owner = "saghul";
+    repo = "pyuv";
+    rev = "pyuv-${version}";
+    sha256 = "1wiwwdylz66lfsjh6p4iv7pfhzvnhwjk332625njizfhz3gq9fwr";
   };
 
-  patches = [ ./pyuv-external-libuv.patch ];
+  setupPyBuildFlags = [ "--use-system-libuv" ];
 
-  buildInputs = [ pkgs.libuv ];
+  buildInputs = [ libuv ];
+
+  doCheck = false; # doesn't work in sandbox
+
+  pythonImportsCheck = [ "pyuv" ];
 
   meta = with lib; {
     description = "Python interface for libuv";
     homepage = "https://github.com/saghul/pyuv";
-    repositories.git = "git://github.com/saghul/pyuv.git";
     license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyuv/pyuv-external-libuv.patch b/nixpkgs/pkgs/development/python-modules/pyuv/pyuv-external-libuv.patch
deleted file mode 100644
index 41e169acd5f5..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pyuv/pyuv-external-libuv.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 5071c3b..4b4a176 100644
---- a/setup.py
-+++ b/setup.py
-@@ -7,7 +7,6 @@ try:
-     from setuptools import setup, Extension
- except ImportError:
-     from distutils.core import setup, Extension
--from setup_libuv import libuv_build_ext, libuv_sdist
-
-
- def get_version():
-@@ -35,11 +34,10 @@ setup(name             = "pyuv",
-           "Programming Language :: Python :: 3.3",
-           "Programming Language :: Python :: 3.4"
-       ],
--      cmdclass     = {'build_ext': libuv_build_ext,
--                      'sdist'    : libuv_sdist},
-       packages     = ['pyuv'],
-       ext_modules  = [Extension('pyuv._cpyuv',
-                                 sources = ['src/pyuv.c'],
-+                                libraries = ['uv']
-                      )]
-      )
-
diff --git a/nixpkgs/pkgs/development/python-modules/pyvera/default.nix b/nixpkgs/pkgs/development/python-modules/pyvera/default.nix
index 4415ca7c376d..2439bd468568 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvera/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvera/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , poetry-core
 , pytest-cov
 , pytest-asyncio
@@ -13,24 +12,16 @@
 
 buildPythonPackage rec {
   pname = "pyvera";
-  version = "0.3.11";
+  version = "0.3.13";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pavoni";
     repo = pname;
     rev = version;
-    sha256 = "0yi2cjd3jag95xa0k24f7d7agi26ywb3219a0j0k8l2nsx2sdi87";
+    sha256 = "0vh82bwgbq93jrwi9q4da534paknpak8hxi4wwlxh3qcvnpy1njv";
   };
 
-  patches = [
-    (fetchpatch {
-      # build-system section is missing https://github.com/pavoni/pyvera/pull/142
-      url = "https://github.com/pavoni/pyvera/pull/142/commits/e90995a8d55107118d324e8cf189ddf1d9e3aa6c.patch";
-      sha256 = "1psq3fiwg20kcwyybzh5g17dzn5fh29lhm238npyg846innbzgs7";
-    })
-  ];
-
   nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyvex/default.nix b/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
index ddec4f0f2397..13c54f6a41e6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , archinfo
 , bitstring
 , fetchPypi
@@ -10,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.0.5739";
+  version = "9.0.5903";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jwxxw2kw7wkz7kh8m8vbavzw6m5k6xph7mazfn3k2qbsshh3lk3";
+    sha256 = "sha256-qhLlRlmb48zhjX2u9w6TVVv2gb0E9kSapabiv+u4J2s=";
   };
 
   propagatedBuildInputs = [
@@ -35,5 +36,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/angr/pyvex";
     license = with licenses; [ bsd2 gpl3Plus lgpl3Plus ];
     maintainers = with maintainers; [ fab ];
+    # ERROR: pyvex-X-py3-none-manylinux1_aarch64.whl is not a supported wheel on this platform.
+    broken = stdenv.isAarch64;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyvicare/default.nix b/nixpkgs/pkgs/development/python-modules/pyvicare/default.nix
new file mode 100644
index 000000000000..7c87431d80b3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyvicare/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests_oauthlib
+, simplejson
+}:
+
+buildPythonPackage rec {
+  pname = "pyvicare";
+  version = "0.2.5";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    pname = "PyViCare";
+    inherit version;
+    sha256 = "16wqqjs238ad6znlz2gjadqj8891226bd02a1106xyz6vbbk2gdk";
+  };
+
+  propagatedBuildInputs = [
+    requests_oauthlib
+    simplejson
+  ];
+
+  # The published tarball on PyPI is incomplete and there are GitHub releases
+  doCheck = false;
+  pythonImportsCheck = [ "PyViCare" ];
+
+  meta = with lib; {
+    description = "Python Library to access Viessmann ViCare API";
+    homepage = "https://github.com/somm15/PyViCare";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyvizio/default.nix b/nixpkgs/pkgs/development/python-modules/pyvizio/default.nix
new file mode 100644
index 000000000000..807278d967d5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyvizio/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, click
+, fetchPypi
+, jsonpickle
+, requests
+, tabulate
+, xmltodict
+, zeroconf
+}:
+
+buildPythonPackage rec {
+  pname = "pyvizio";
+  version = "0.1.59";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1j2zbziklx4az55m3997y7yp4xflk7i0gsbdfh7fp9k0qngb2053";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    click
+    jsonpickle
+    requests
+    tabulate
+    xmltodict
+    zeroconf
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyvizio" ];
+
+  meta = with lib; {
+    description = "Python client for Vizio SmartCast";
+    homepage = "https://github.com/vkorn/pyvizio";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyvolumio/default.nix b/nixpkgs/pkgs/development/python-modules/pyvolumio/default.nix
new file mode 100644
index 000000000000..da3ac35c4622
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyvolumio/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyvolumio";
+  version = "0.1.3";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "OnFreund";
+    repo = "PyVolumio";
+    rev = "v${version}";
+    sha256 = "0x2dzmd9lwnak2iy6v54y24qjq37y3nlfhsvx7hddgv8jj1klvap";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyvolumio" ];
+
+  meta = with lib; {
+    description = "Python module to control Volumio";
+    homepage = "https://github.com/OnFreund/PyVolumio";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pywbem/default.nix b/nixpkgs/pkgs/development/python-modules/pywbem/default.nix
index 698e4ef94ca3..d6c389c22aed 100644
--- a/nixpkgs/pkgs/development/python-modules/pywbem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywbem/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pywbem";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9GpxbgNsXZJj2M5MvosNnEe+9pY+Qz64RD/7ZIDqmII=";
+    sha256 = "2abb6443f4debae56af7abefadb9fa5b8af9b53fc9bcf67f6c01a78db1064300";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pywebview/default.nix b/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
index 545fb2367322..a020517dcce2 100644
--- a/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
@@ -1,25 +1,53 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, importlib-resources, pytest, xvfb_run }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, importlib-resources
+, pyqtwebengine
+, pytest
+, pythonOlder
+, qt5
+, xvfb_run
+}:
 
 buildPythonPackage rec {
   pname = "pywebview";
-  version = "3.3.1";
+  version = "3.4";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "r0x0r";
     repo = "pywebview";
     rev = version;
-    sha256 = "015z7n0hdgkzn0p7aw1xsv6lwc260p8q67jx0zyd1zghnwyj8k79";
+    sha256 = "sha256-3JHwtw8oReolEl4k8cdt7GCVGNkfWWJN6EnZYHxzDO8=";
   };
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [ importlib-resources ];
+  nativeBuildInputs = [
+    qt5.wrapQtAppsHook
+  ];
 
-  checkInputs = [ pytest xvfb_run ];
+  propagatedBuildInputs = [
+    pyqtwebengine
+  ] ++ lib.optionals (pythonOlder "3.7") [ importlib-resources ];
+
+  checkInputs = [
+    pytest
+    xvfb_run
+  ];
 
   checkPhase = ''
+    # Cannot create directory /homeless-shelter/.... Error: FILE_ERROR_ACCESS_DENIED
+    export HOME=$TMPDIR
+    # QStandardPaths: XDG_RUNTIME_DIR not set
+    export XDG_RUNTIME_DIR=$HOME/xdg-runtime-dir
+
     pushd tests
+    substituteInPlace run.sh \
+      --replace "PYTHONPATH=.." "PYTHONPATH=$PYTHONPATH" \
+      --replace "pywebviewtest test_js_api.py::test_concurrent ''${PYTEST_OPTIONS}" "# skip flaky test_js_api.py::test_concurrent"
+
     patchShebangs run.sh
+    wrapQtApp run.sh
+
     xvfb-run -s '-screen 0 800x600x24' ./run.sh
     popd
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/pyxattr/default.nix b/nixpkgs/pkgs/development/python-modules/pyxattr/default.nix
index cba29c5cc9ed..35bfaecda977 100644
--- a/nixpkgs/pkgs/development/python-modules/pyxattr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyxattr/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
     pname = "pyxattr";
-    version = "0.7.1";
+    version = "0.7.2";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "965388dd629334e850aa989a67d2360ec8257cfe8f67d07c29f980d3152f2882";
+      sha256 = "68477027e6d3310669f98aaef15393bfcd9b2823d7a7f00a6f1d91a3c971ae64";
     };
 
     # IOError: [Errno 95] Operation not supported (expected)
diff --git a/nixpkgs/pkgs/development/python-modules/pyxeoma/default.nix b/nixpkgs/pkgs/development/python-modules/pyxeoma/default.nix
index 9b8b6eeac8ff..2fa840078df8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyxeoma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyxeoma/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyxeoma";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c9q6xdh2ciisv0crlz069haz01gfkhd5kasyr14jng4vjpzinc7";
+    sha256 = "c6a3ed855025662df9b35ae2d1cac3fa41775a7612655804bde7276a8cab8d1c";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyxiaomigateway/default.nix b/nixpkgs/pkgs/development/python-modules/pyxiaomigateway/default.nix
new file mode 100644
index 000000000000..1d3a83177edb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyxiaomigateway/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cryptography
+}:
+
+buildPythonPackage rec {
+  pname = "pyxiaomigateway";
+  version = "0.13.4";
+
+  src = fetchFromGitHub {
+    owner = "Danielhiversen";
+    repo = "PyXiaomiGateway";
+    rev = version;
+    sha256 = "1xg89sdds04wgil88ihs84cjr3df6lajjbkyb1aymj638ibdyqns";
+  };
+
+  propagatedBuildInputs = [ cryptography ];
+
+  # Tests are not mocking the gateway completely
+  doCheck = false;
+  pythonImportsCheck = [ "xiaomi_gateway" ];
+
+  meta = with lib; {
+    description = "Python library to communicate with the Xiaomi Gateway";
+    homepage = "https://github.com/Danielhiversen/PyXiaomiGateway/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyxml/default.nix b/nixpkgs/pkgs/development/python-modules/pyxml/default.nix
index a528de8e0ca2..49796054b564 100644
--- a/nixpkgs/pkgs/development/python-modules/pyxml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyxml/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "04wc8i7cdkibhrldy6j65qp5l75zjxf5lx6qxdxfdf2gb3wndawz";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   buildPhase = "${python.interpreter} ./setup.py build";
   installPhase = ''
     ${python.interpreter} ./setup.py install --prefix="$out" || exit 1
diff --git a/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix b/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
index 700188f15dd1..87f6b9756ed3 100644
--- a/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
+, pythonOlder
 , nose
 , lxml
 , requests
@@ -10,7 +10,7 @@
 buildPythonPackage rec {
   pname = "pyxnat";
   version = "1.4";
-  disabled = isPy27;
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
@@ -19,6 +19,14 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ lxml requests ];
 
+  # future is not used, and pathlib is installed part of python38+
+  # w/o an external package
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace "pathlib>=1.0" "" \
+      --replace "future>=0.16" ""
+  '';
+
   checkInputs = [ nose ];
   checkPhase = "nosetests pyxnat/tests";
   doCheck = false;  # requires a docker container running an XNAT server
diff --git a/nixpkgs/pkgs/development/python-modules/pyyaml/default.nix b/nixpkgs/pkgs/development/python-modules/pyyaml/default.nix
index 95ceeab3a04b..93cfad78d50e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyyaml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyyaml/default.nix
@@ -2,18 +2,13 @@
 
 buildPythonPackage rec {
   pname = "PyYAML";
-  version = "5.3.1";
+  version = "5.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0pb4zvkfxfijkpgd1b86xjsqql97ssf1knbd1v53wkg1qm9cgsmq";
+    sha256 = "607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e";
   };
 
-  # force regeneration using Cython
-  postPatch = ''
-    rm ext/_yaml.c
-  '';
-
   nativeBuildInputs = [ cython buildPackages.stdenv.cc ];
 
   buildInputs = [ libyaml ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyzerproc/default.nix b/nixpkgs/pkgs/development/python-modules/pyzerproc/default.nix
index 8040458bf766..99f1ac7fd099 100644
--- a/nixpkgs/pkgs/development/python-modules/pyzerproc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyzerproc/default.nix
@@ -5,7 +5,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytest-asyncio
-, pytest-cov
 , pytest-mock
 , pytestCheckHook
 , pythonOlder
@@ -13,19 +12,18 @@
 
 buildPythonPackage rec {
   pname = "pyzerproc";
-  version = "0.4.6";
+  version = "0.4.9";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "emlove";
     repo = pname;
     rev = version;
-    sha256 = "1qlxvvy9fyff56dvc46nsd5ngkxqhdi7s4gwfndj7dn76j81srpq";
+    sha256 = "11bsvmvazx9gpj0w80b6wgdp41z8y2sk6bhkj3ps7grsgr59n7rz";
   };
 
-  # Remove pytest-runner, https://github.com/emlove/pyzerproc/pull/1
-  patchPhase = ''
-    substituteInPlace setup.py --replace "'pytest-runner'," ""
+  postPatch = ''
+    sed -i "/--cov/d" setup.cfg
   '';
 
   propagatedBuildInputs = [
@@ -34,11 +32,11 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    asynctest
     pytest-asyncio
-    pytest-cov
     pytest-mock
     pytestCheckHook
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    asynctest
   ];
 
   pythonImportsCheck = [ "pyzerproc" ];
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
index e5eb877b6b2b..10a3b4482fce 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -2,7 +2,6 @@
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
   # C Inputs
 , blas
 , catch2
@@ -28,7 +27,8 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aer";
-  version = "0.7.1";
+  version = "0.7.6";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aer";
     rev = version;
-    sha256 = "07l0wavdknx0y4vy0hwgw24365sg4nb6ygl3lpa098np85qgyn4y";
+    sha256 = "0595as4rxjrd5dqx54ywz3rjsjk0z7r41bq0z9r8y1h7zgvvlrmn";
   };
 
   nativeBuildInputs = [
@@ -61,10 +61,14 @@ buildPythonPackage rec {
     pybind11
   ];
 
-  patches = [
-    # TODO: remove in favor of qiskit-aer PR #877 patch once accepted/stable
-    ./remove-conan-install.patch
-  ];
+  postPatch = ''
+    substituteInPlace setup.py --replace "'cmake!=3.17,!=3.17.0'," ""
+  '';
+
+  # Disable using conan for build
+  preBuild = ''
+    export DISABLE_CONAN=1
+  '';
 
   dontUseCmakeConfigure = true;
 
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch b/nixpkgs/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch
deleted file mode 100644
index 1c5ae87b082f..000000000000
--- a/nixpkgs/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index efeacfc..77bd6bd 100755
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -121,7 +121,11 @@ endif()
- # Looking for external libraries
- #
- 
--setup_conan()
-+find_package(muparserx REQUIRED)
-+find_package(nlohmann_json REQUIRED)
-+find_package(spdlog REQUIRED)
-+# for tests only
-+find_package(catch2)
- 
- # If we do not set them with a space CMake fails afterwards if nothing is set for this vars!
- set(AER_LINKER_FLAGS " ")
-@@ -269,16 +273,16 @@ endif()
- set(AER_LIBRARIES
- 	${AER_LIBRARIES}
- 	${BLAS_LIBRARIES}
--	CONAN_PKG::nlohmann_json
-+	nlohmann_json
- 	Threads::Threads
--	CONAN_PKG::spdlog
-+	spdlog
- 	${DL_LIB}
- 	${THRUST_DEPENDANT_LIBS})
- 
- set(AER_COMPILER_DEFINITIONS ${AER_COMPILER_DEFINITIONS} ${CONAN_DEFINES})
- # Cython build is only enabled if building through scikit-build.
- if(SKBUILD) # Terra Addon build
--	set(AER_LIBRARIES ${AER_LIBRARIES} CONAN_PKG::muparserx)
-+	set(AER_LIBRARIES ${AER_LIBRARIES} muparserx)
- 	add_subdirectory(qiskit/providers/aer/pulse/qutip_extra_lite/cy)
- 	add_subdirectory(qiskit/providers/aer/backends/wrappers)
- 	add_subdirectory(src/open_pulse)
-diff --git a/setup.py b/setup.py
-index fd71e9f..1561cc4 100644
---- a/setup.py
-+++ b/setup.py
-@@ -11,12 +11,6 @@ import inspect
- 
- PACKAGE_NAME = os.getenv('QISKIT_AER_PACKAGE_NAME', 'qiskit-aer')
- 
--try:
--    from conans import client
--except ImportError:
--    subprocess.call([sys.executable, '-m', 'pip', 'install', 'conan'])
--    from conans import client
--
- try:
-     from skbuild import setup
- except ImportError:
-@@ -46,8 +40,6 @@ common_requirements = [
- 
- setup_requirements = common_requirements + [
-     'scikit-build',
--    'cmake!=3.17,!=3.17.0',
--    'conan>=1.22.2'
- ]
- 
- requirements = common_requirements + ['qiskit-terra>=0.12.0']
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix
index 11274c525f09..0e6e8e25b538 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix
@@ -34,7 +34,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aqua";
-  version = "0.8.1";
+  version = "0.8.2";
 
   disabled = pythonOlder "3.6";
 
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aqua";
     rev = version;
-    sha256 = "11qyya3vyq50wpzrzzl8v46yx5p72rhpqhybwn47qgazxgg82r1b";
+    sha256 = "sha256-ybf8bXqsVk6quYi0vrfo/Mplk7Nr7tQS7cevXxI9khw=";
   };
 
   # Optional packages: pyscf (see below NOTE) & pytorch. Can install via pip/nix if needed.
@@ -73,13 +73,8 @@ buildPythonPackage rec {
   # It can also be installed at runtime from the pip wheel.
   # We disable appropriate tests below to allow building without pyscf installed
 
-  # NOTE: we remove cplex b/c we can't build pythonPackages.cplex.
-  # cplex is only distributed in manylinux1 wheel (no source), and Nix python is not manylinux1 compatible
-
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pyscf; sys_platform != 'win32'" "" \
-      --replace "cplex; python_version >= '3.6' and python_version < '3.8'" ""
+    substituteInPlace setup.py --replace "docplex==2.15.194" "docplex"
 
     # Add ImportWarning when running qiskit.chemistry (pyscf is a chemistry package) that pyscf is not included
     echo -e "\nimport warnings\ntry: import pyscf;\nexcept ImportError:\n    " \
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index 7374d7ce017d..80f060c66815 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
@@ -22,6 +22,7 @@
 , nbconvert
 , nbformat
 , pproxy
+, qiskit-aer
 , vcrpy
 }:
 
@@ -38,7 +39,7 @@ let
 in
 buildPythonPackage rec {
   pname = "qiskit-ibmq-provider";
-  version = "0.11.1";
+  version = "0.12.2";
 
   disabled = pythonOlder "3.6";
 
@@ -46,7 +47,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "0b5mnq8f5844idnsmp84lpkvlpszfwwi998yvggcgaayw1dbk53h";
+    sha256 = "0yil363mqssq0453nrwxgkjivzk3a4jgbnaf21bp7lwfcl2jdhqm";
   };
 
   propagatedBuildInputs = [
@@ -64,6 +65,7 @@ buildPythonPackage rec {
     nbconvert
     nbformat
     pproxy
+    qiskit-aer
     vcrpy
   ] ++ lib.optionals (!withVisualization) visualizationPackages;
 
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix
index b5295dbd0411..f73b46a520a3 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix
@@ -2,7 +2,6 @@
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , python
 , numpy
 , qiskit-terra
@@ -24,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-ignis";
-  version = "0.5.1";
+  version = "0.5.2";
 
   disabled = pythonOlder "3.6";
 
@@ -33,11 +32,11 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-ignis";
     rev = version;
-    sha256 = "17kplmi17axcbbgw35dzfr3d5bzfymxfni9sf6v14223c5674p4y";
+    sha256 = "sha256-Kl3tnoamZrCxwoDdu8betG6Lf3CC3D8R2TYiq8Zl3Aw=";
   };
 
   # hacky, fix https://github.com/Qiskit/qiskit-ignis/issues/532.
-  # TODO: remove on qiskit-ignis v0.5.1
+  # TODO: remove on qiskit-ignis v0.5.2
   postPatch = ''
     substituteInPlace qiskit/ignis/mitigation/expval/base_meas_mitigator.py --replace "plt.axes" "'plt.axes'"
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix
index 89d39b718cdf..ff51e82e351e 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -56,7 +56,7 @@ in
 
 buildPythonPackage rec {
   pname = "qiskit-terra";
-  version = "0.16.1";
+  version = "0.16.4";
 
   disabled = pythonOlder "3.6";
 
@@ -64,7 +64,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "0007glsbrvq9swamvz8r76z9nzh46b388y0ds1dypczxpwlp9xcq";
+    sha256 = "sha256-/rWlPfpAHoMedKG42jfUYt0Ezq7i+9dkyPllavkg4cc=";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
index 7c79d517ce5d..97603dc3cde9 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
@@ -15,7 +15,7 @@
 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.23.1";
+  version = "0.24.1";
 
   disabled = pythonOlder "3.6";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "qiskit";
     repo = "qiskit";
     rev = version;
-    sha256 = "0x4cqx1wqqj7h5g3vdag694qjzsmvhpw25yrlcs70mh5ywdp28x1";
+    sha256 = "0qfz69n8sl7sk4hzygni9qars9q1cyz0n3bv1lca00ia5qsc72d2";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix b/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix
index 2ee9c82f08db..dcbe213966f9 100644
--- a/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix
@@ -14,6 +14,8 @@ buildPythonPackage {
   buildInputs = [ qscintilla ];
   propagatedBuildInputs = [ pyqt5 ];
 
+  dontWrapQtApps = true;
+
   postPatch = ''
     substituteInPlace Python/configure.py \
       --replace \
diff --git a/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix b/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix
index 4945bead42d4..af9e724a9e00 100644
--- a/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "QtAwesome";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d612a313e531966d17f5a8fb7604faba961cf7ce3c77a9168c6f60e60140b767";
+    sha256 = "771dd95ac4f50d647d18b4e892fd310a580b56d258476554c7b3498593dfd887";
   };
 
   propagatedBuildInputs = [ qtpy six ];
diff --git a/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix b/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix
index f29d33d25ae3..da45b37bee95 100644
--- a/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "qtconsole";
-  version = "5.0.1";
+  version = "5.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4d7dd4eae8a90d0b2b19b31794b30f137238463998989734a3acb8a53b506bab";
+    sha256 = "404994edfe33c201d6bd0c4bd501b00c16125071573c938533224992bea0b30f";
   };
 
   checkInputs = [ nose ] ++ lib.optionals isPy27 [mock];
diff --git a/nixpkgs/pkgs/development/python-modules/quandl/default.nix b/nixpkgs/pkgs/development/python-modules/quandl/default.nix
index 56b80a4676b8..0247d20ec7d6 100644
--- a/nixpkgs/pkgs/development/python-modules/quandl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/quandl/default.nix
@@ -46,6 +46,8 @@ buildPythonPackage rec {
     importlib-metadata
   ];
 
+  pythonImportsCheck = [ "quandl" ];
+
   meta = with lib; {
     description = "Quandl Python client library";
     homepage = "https://github.com/quandl/quandl-python";
diff --git a/nixpkgs/pkgs/development/python-modules/questionary/default.nix b/nixpkgs/pkgs/development/python-modules/questionary/default.nix
new file mode 100644
index 000000000000..ecb33f6adb15
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/questionary/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry
+, prompt_toolkit
+, pytest-cov
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "questionary";
+  version = "1.9.0";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "tmbo";
+    repo = pname;
+    rev = version;
+    sha256 = "1x748bz7l2r48031dj6vr6jvvac28pv6vx1bina4lz60h1qac1kf";
+  };
+
+  nativeBuildInputs = [ poetry ];
+
+  propagatedBuildInputs = [ prompt_toolkit ];
+
+  checkInputs = [
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "questionary" ];
+
+  meta = with lib; {
+    description = "Python library to build command line user prompts";
+    homepage = "https://github.com/bachya/regenmaschine";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix b/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix
index 0de5d6de3bba..57c52ff49ba9 100644
--- a/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix
@@ -38,6 +38,10 @@ buildPythonPackage rec {
     description = "A pure python, thread-safe, minimalistic and pythonic RabbitMQ client library";
     homepage = "https://pypi.python.org/pypi/rabbitpy";
     license = licenses.bsd3;
+
+    # broken by pamqp==3, tracked in
+    # https://github.com/gmr/rabbitpy/issues/125
+    broken = true;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/radiotherm/default.nix b/nixpkgs/pkgs/development/python-modules/radiotherm/default.nix
new file mode 100644
index 000000000000..9cefe8839c1c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/radiotherm/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "radiotherm";
+  version = "2.1.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "mhrivnak";
+    repo = pname;
+    rev = version;
+    sha256 = "0p37pc7l2malmjfkdlh4q2cfa6dqpsk1rah2j2xil0pj57ai6bks";
+  };
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "radiotherm" ];
+
+  meta = with lib; {
+    description = "Python library for Wifi Radiothermostat";
+    homepage = "https://github.com/mhrivnak/radiotherm";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix b/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix
new file mode 100644
index 000000000000..8743e5014e04
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, pytestCheckHook
+, hypothesis
+, pandas
+}:
+
+buildPythonPackage rec {
+  pname = "rapidfuzz";
+  version = "1.4.1";
+
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "maxbachmann";
+    repo = "RapidFuzz";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-uZdD25ATJgRrDAHYSQNp7NvEmW7p3LD9vNmxAbf5Mwk=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+    hypothesis
+    pandas
+  ];
+
+  disabledTests = [
+    "test_levenshtein_block" # hypothesis data generation too slow
+  ];
+
+  pythonImportsCheck = [
+    "rapidfuzz.fuzz"
+    "rapidfuzz.string_metric"
+    "rapidfuzz.process"
+    "rapidfuzz.utils"
+  ];
+
+  meta = with lib; {
+    description = "Rapid fuzzy string matching";
+    homepage = "https://github.com/maxbachmann/rapidfuzz";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ratelimit/default.nix b/nixpkgs/pkgs/development/python-modules/ratelimit/default.nix
new file mode 100644
index 000000000000..f706d043bf86
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ratelimit/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "ratelimit";
+  version = "2.2.1";
+
+  src = fetchFromGitHub {
+    owner = "tomasbasham";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04hy3hhh5xdqcsz0lx8j18zbj88kh5ik4wyi5d3a5sfy2hx70in2";
+  };
+
+  postPatch = ''
+    sed -i "/--cov/d" pytest.ini
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "tests" ];
+
+  pythonImportsCheck = [ "ratelimit" ];
+
+  meta = with lib; {
+    description = "Python API Rate Limit Decorator";
+    homepage = "https://github.com/tomasbasham/ratelimit";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rdkit/default.nix b/nixpkgs/pkgs/development/python-modules/rdkit/default.nix
index b747304446b7..97f2e5a6afc2 100644
--- a/nixpkgs/pkgs/development/python-modules/rdkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rdkit/default.nix
@@ -40,8 +40,8 @@ let
   };
 in
 buildPythonPackage rec {
-  version = "2020.09.3";
   pname = "rdkit";
+  version = "2020.09.5";
 
   src =
     let
@@ -51,7 +51,7 @@ buildPythonPackage rec {
       owner = pname;
       repo = pname;
       rev = "Release_${versionTag}";
-      sha256 = "1k1wvzcd1yfx4nhz3iq2aaadzdk5w6sfcb4imhvm7pkbzij0nicx";
+      sha256 = "1ycbjia223d0w9xiwk36x2vkdidsx198rzkfyxz48cbax9vvklzq";
     };
 
   unpackPhase = ''
@@ -89,7 +89,7 @@ buildPythonPackage rec {
   ];
 
   hardeningDisable = [ "format" ]; # required by yaehmop
-  # doCheck = false;
+
   dontUseSetuptoolsBuild = true;
   dontUsePipInstall = true;
   dontUseSetuptoolsCheck = true;
diff --git a/nixpkgs/pkgs/development/python-modules/readme_renderer/default.nix b/nixpkgs/pkgs/development/python-modules/readme_renderer/default.nix
index 57a84e69d205..0d22a0c56c9f 100644
--- a/nixpkgs/pkgs/development/python-modules/readme_renderer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/readme_renderer/default.nix
@@ -1,40 +1,45 @@
 { lib
+, bleach
 , buildPythonPackage
-, fetchPypi
-, pytest
-, mock
 , cmarkgfm
-, bleach
 , docutils
+, fetchPypi
 , future
+, mock
 , pygments
-, six
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "readme_renderer";
-  version = "28.0";
+  version = "29.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6b7e5aa59210a40de72eb79931491eaf46fefca2952b9181268bd7c7c65c260a";
+    sha256 = "sha256-kv1awr+Gd/MQ8zA6pLzludX58glKuYwp8TeR17gFo9s=";
   };
 
-  checkInputs = [ pytest mock ];
-
   propagatedBuildInputs = [
-    bleach cmarkgfm docutils future pygments six
+    bleach
+    cmarkgfm
+    docutils
+    future
+    pygments
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    # disable one failing test case
-    # fixtures test is failing for incorrect class name
-    py.test -k "not test_invalid_link and not fixtures"
-  '';
+  pythonImportsCheck = [ "readme_renderer" ];
 
-  meta = {
-    description = "readme_renderer is a library for rendering readme descriptions for Warehouse";
+  meta = with lib; {
+    description = "Python library for rendering readme descriptions";
     homepage = "https://github.com/pypa/readme_renderer";
-    license = lib.licenses.asl20;
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
   };
 }
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 1a97320dc36a..ef6975b29df7 100644
--- a/nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "readthedocs-sphinx-ext";
-  version = "2.1.1";
+  version = "2.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d8343982cae238da82c809dcbd82d53f9560b50e17b1dd727123f576385139d";
+    sha256 = "209c4b5ecf233b8bb44fcb8b4548460b0806e347ce50fd8172adcb7d23969a4a";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/regenmaschine/default.nix b/nixpkgs/pkgs/development/python-modules/regenmaschine/default.nix
index 3380ef99f180..02ac2da96726 100644
--- a/nixpkgs/pkgs/development/python-modules/regenmaschine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/regenmaschine/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "regenmaschine";
-  version = "3.1.1";
+  version = "3.1.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "0m6i7vspp8ssdk2k32kznql1j8gkp300kzb7pk67hzvpijdy3mca";
+    sha256 = "sha256-lARti3Sb/jh7h8x+lFLqkM/BlL6XmELm46owsL041Cw=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/reportlab/default.nix b/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
index 3a668077a383..ace36423c191 100644
--- a/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
@@ -11,11 +11,11 @@ let
   ft = freetype.overrideAttrs (oldArgs: { dontDisableStatic = true; });
 in buildPythonPackage rec {
   pname = "reportlab";
-  version = "3.5.55";
+  version = "3.5.59";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4f307accda32c9f17015ed77c7424f904514e349dff063f78d2462d715963e53";
+    sha256 = "a755cca2dcf023130b03bb671670301a992157d5c3151d838c0b68ef89894536";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix b/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix
index a2e92283dc72..3267b0a78652 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix
@@ -1,4 +1,5 @@
-{ lib, buildPythonPackage, fetchPypi, python, requests }:
+{ lib, buildPythonPackage, fetchPypi, python, requests, six }:
+
 with lib;
 buildPythonPackage rec {
   pname = "requests-aws4auth";
@@ -9,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "9a4a5f4a61c49f098f5f669410308ac5b0ea2682fd511ee3a4f9ff73b5bb275a";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests six ];
 
   # pypi package no longer contains tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/requests-kerberos/default.nix b/nixpkgs/pkgs/development/python-modules/requests-kerberos/default.nix
index 73272990e0f2..0a023dab8714 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-kerberos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-kerberos/default.nix
@@ -1,4 +1,12 @@
-{ lib, fetchFromGitHub, buildPythonPackage, requests, pykerberos, mock }:
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, cryptography
+, requests
+, pykerberos
+, pytestCheckHook
+, mock
+}:
 
 buildPythonPackage rec {
   pname = "requests-kerberos";
@@ -12,16 +20,26 @@ buildPythonPackage rec {
     sha256 = "1qw96aw84nljh9cip372mfv50p1yyirfgigavvavgpc3c5g278s6";
   };
 
-  checkInputs = [ mock ];
-  propagatedBuildInputs = [ requests pykerberos ];
+  propagatedBuildInputs = [
+    cryptography
+    requests
+    pykerberos
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
 
   # they have a setup.py which mentions a test suite that doesn't exist...
   patches = [ ./fix_setup.patch ];
 
+  pythonImportsCheck = [ "requests_kerberos" ];
+
   meta = with lib; {
-    description = "An authentication handler for using Kerberos with Python Requests.";
-    homepage    = "https://github.com/requests/requests-kerberos";
-    license     = licenses.isc;
+    description = "An authentication handler for using Kerberos with Python Requests";
+    homepage = "https://github.com/requests/requests-kerberos";
+    license = licenses.isc;
     maintainers = with maintainers; [ catern ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/requests-pkcs12/default.nix b/nixpkgs/pkgs/development/python-modules/requests-pkcs12/default.nix
new file mode 100644
index 000000000000..c58e8a926c82
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/requests-pkcs12/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyopenssl
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "requests-pkcs12";
+  version = "1.9";
+
+  src = fetchFromGitHub {
+    owner = "m-click";
+    repo = "requests_pkcs12";
+    rev = version;
+    sha256 = "09nm3c6v911d1vwwi0f7mzapbkq7rnsl7026pb13j6ma8pkxznms";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    pyopenssl
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "requests_pkcs12" ];
+
+  meta = with lib; {
+    description = "PKCS#12 support for the Python requests library";
+    homepage = "https://github.com/m-click/requests_pkcs12";
+    license = with licenses; [ isc ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/requests/default.nix b/nixpkgs/pkgs/development/python-modules/requests/default.nix
index e0dfb9a24a64..5589ec683af4 100644
--- a/nixpkgs/pkgs/development/python-modules/requests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests/default.nix
@@ -1,24 +1,63 @@
-{ lib, fetchPypi, buildPythonPackage
-, urllib3, idna, chardet, certifi
-, pytest }:
+{ lib
+, buildPythonPackage
+, certifi
+, chardet
+, fetchPypi
+, idna
+, pytest-mock
+, pytest-xdist
+, pytestCheckHook
+, urllib3
+, isPy27
+}:
 
 buildPythonPackage rec {
   pname = "requests";
-  version = "2.25.0";
+  version = "2.25.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1y6mb8c0ipd64d5axq2p368yxndp3f966hmabjka2q2a5y9hn6kz";
+    sha256 = "sha256-J5c91KkEpPE7JjoZyGbBO5KjntHJZGVfAl8/jT11uAQ=";
   };
 
-  nativeBuildInputs = [ pytest ];
-  propagatedBuildInputs = [ urllib3 idna chardet certifi ];
-  # sadly, tests require networking
-  doCheck = false;
+  propagatedBuildInputs = [
+    certifi
+    chardet
+    idna
+    urllib3
+  ];
+
+  checkInputs = [
+    pytest-mock
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  # AttributeError: 'KeywordMapping' object has no attribute 'get'
+  doCheck = !isPy27;
+
+  disabledTests = [
+    # Disable tests that require network access and use httpbin
+    "requests.api.request"
+    "requests.models.PreparedRequest"
+    "requests.sessions.Session"
+    "requests"
+    "test_redirecting_to_bad_url"
+    "test_requests_are_updated_each_time"
+    "test_should_bypass_proxies_pass_only_hostname"
+    "test_urllib3_pool_connection_closed"
+    "test_urllib3_retries"
+    "test_use_proxy_from_environment"
+    "TestRequests"
+    "TestTimeout"
+  ];
+
+  pythonImportsCheck = [ "requests" ];
 
   meta = with lib; {
-    description = "An Apache2 licensed HTTP library, written in Python, for human beings";
+    description = "Simple HTTP library for Python";
     homepage = "http://docs.python-requests.org/en/latest/";
     license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/respx/default.nix b/nixpkgs/pkgs/development/python-modules/respx/default.nix
index 61e2016a4975..68da058194bf 100644
--- a/nixpkgs/pkgs/development/python-modules/respx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/respx/default.nix
@@ -1,5 +1,4 @@
 { lib
-, attrs
 , buildPythonPackage
 , fetchFromGitHub
 , httpcore
@@ -8,7 +7,6 @@
 , pytest-cov
 , pytestCheckHook
 , trio
-, xmltodict
 }:
 
 buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/development/python-modules/restfly/default.nix b/nixpkgs/pkgs/development/python-modules/restfly/default.nix
new file mode 100644
index 000000000000..b572b0a385d1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/restfly/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, arrow
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-datafiles
+, pytest-vcr
+, pytestCheckHook
+, python-box
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "restfly";
+  version = "1.3.5";
+
+  src = fetchFromGitHub {
+    owner = "stevemcgrath";
+    repo = pname;
+    rev = version;
+    sha256 = "0cq07wj6g3kg7i4qyjp3n3pv13k9p4p43rd6kn139wsn1mh8fr56";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    arrow
+    python-box
+  ];
+
+  checkInputs = [
+    pytest-datafiles
+    pytest-vcr
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "restfly" ];
+
+  meta = with lib; {
+    description = "Python RESTfly API Library Framework";
+    homepage = "https://github.com/stevemcgrath/restfly";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/restview/default.nix b/nixpkgs/pkgs/development/python-modules/restview/default.nix
index acce48c45d04..b2fc2d9beae7 100644
--- a/nixpkgs/pkgs/development/python-modules/restview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/restview/default.nix
@@ -7,38 +7,32 @@
 , packaging
 , pygments
 , mock
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "restview";
-  version = "2.9.1";
+  version = "2.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "de87c84f19526bd4a76505f6d40b51b7bb03ca43b6067c93f82f1c7237ac9e84";
+    sha256 = "1p1jgdvc04ws8kga3r0vrq3m0b52qw3clwyydl96a13wb3mrf03r";
   };
 
-  propagatedBuildInputs = [ docutils readme_renderer packaging pygments ];
-  checkInputs = [ mock ];
-
   patches = [
-    # fix tests after readme_renderer update
-    # TODO remove on next update
     (fetchpatch {
-      url = "https://github.com/mgedmin/restview/commit/541743ded13ae55dea4c437046984a5f13d06e8b.patch";
-      sha256 = "031b1dlqx346bz7afpc011lslnq771lnxb6iy1l2285pph534bci";
+      url = "https://github.com/mgedmin/restview/commit/a1ded30a87c65f3ce59a18497a7fc5099317c2be.patch";
+      sha256 = "1ax7pih456a3nbj8qrrq7hqigbyag4ihzpn6bm0z4y74d0r3v8a5";
     })
   ];
 
-  postPatch = ''
-    # dict order breaking tests
-    sed -i 's@<a href="http://www.example.com" rel="nofollow">@...@' src/restview/tests.py
-  '';
+  propagatedBuildInputs = [ docutils readme_renderer packaging pygments ];
+  checkInputs = [ mock pytestCheckHook ];
 
   meta = {
     description = "ReStructuredText viewer";
     homepage = "https://mg.pov.lt/restview/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ koral ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix b/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix
index 947aa505f706..2c6123df5f26 100644
--- a/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "rethinkdb";
-  version = "2.4.7";
+  version = "2.4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "945b5efdc10f468fc056bd53a4e4224ec4c2fe1a7e83ae47443bbb6e7c7a1f7d";
+    sha256 = "9f75a72bcd899ab0f6b0677873b89fba99c512bc7895eb5fbc1dc9a228b8aaee";
   };
 
   propagatedBuildInputs = [ six setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/retworkx/default.nix b/nixpkgs/pkgs/development/python-modules/retworkx/default.nix
index 02a3ef64c573..c4b7a6323e4d 100644
--- a/nixpkgs/pkgs/development/python-modules/retworkx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/retworkx/default.nix
@@ -1,48 +1,41 @@
 { lib
+, buildPythonPackage
+, pythonOlder
 , rustPlatform
-, python
 , fetchFromGitHub
-, pipInstallHook
-, maturin
-, pip
+
   # Check inputs
 , pytestCheckHook
+, networkx
 , numpy
 }:
 
-rustPlatform.buildRustPackage rec {
+buildPythonPackage rec {
   pname = "retworkx";
-  version = "0.6.0";
+  version = "0.8.0";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Qiskit";
     repo = "retworkx";
     rev = version;
-    sha256 = "11n30ldg3y3y6qxg3hbj837pnbwjkqw3nxq6frds647mmmprrd20";
+    sha256 = "0plpri6a3d6f1000kmcah9066vq2i37d14bdf8sm96493fhpqhrd";
   };
 
-  cargoSha256 = "1vg4yf0k6yypqf9z46zz818mz7fdrgxj7zl6zjf7pnm2r8mq3qw5";
-
-  propagatedBuildInputs = [ python ];
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-+k779gmge8wDdoZrWn9ND47kUqt7pqe75Zuj2Byfefo=";
+  };
 
-  nativeBuildInputs = [ pipInstallHook maturin pip ];
+  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
 
   # Needed b/c need to check AFTER python wheel is installed (using Rust Build, not buildPythonPackage)
   doCheck = false;
   doInstallCheck = true;
 
-  installCheckInputs = [ pytestCheckHook numpy ];
-
-  buildPhase = ''
-    runHook preBuild
-    maturin build --release --manylinux off --strip
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    install -Dm644 -t dist target/wheels/*.whl
-    pipInstallPhase
-  '';
+  installCheckInputs = [ pytestCheckHook networkx numpy ];
 
   preCheck = ''
     export TESTDIR=$(mktemp -d)
diff --git a/nixpkgs/pkgs/development/python-modules/rfcat/default.nix b/nixpkgs/pkgs/development/python-modules/rfcat/default.nix
new file mode 100644
index 000000000000..7bb390e79a22
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rfcat/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, future
+, ipython
+, numpy
+, pyserial
+, pyusb
+, hostPlatform
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "rfcat";
+  version = "1.9.5";
+
+  src = fetchFromGitHub {
+    owner = "atlas0fd00m";
+    repo = "rfcat";
+    rev = "v${version}";
+    sha256 = "1mmr7g7ma70sk6vl851430nqnd7zxsk7yb0xngwrdx9z7fbz2ck0";
+  };
+
+  propagatedBuildInputs = [
+    future
+    ipython
+    numpy
+    pyserial
+    pyusb
+  ];
+
+  postInstall = lib.optionalString hostPlatform.isLinux ''
+    mkdir -p $out/etc/udev/rules.d
+    cp etc/udev/rules.d/20-rfcat.rules $out/etc/udev/rules.d
+  '';
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "rflib" ];
+
+  meta = with lib; {
+    description = "Swiss Army knife of sub-GHz ISM band radio";
+    homepage = "https://github.com/atlas0fd00m/rfcat";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ trepetti ];
+    changelog = "https://github.com/atlas0fd00m/rfcat/releases/tag/v${version}";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ring-doorbell/default.nix b/nixpkgs/pkgs/development/python-modules/ring-doorbell/default.nix
new file mode 100644
index 000000000000..f70e4921b9e7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ring-doorbell/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, oauthlib
+, pytestCheckHook
+, pytz
+, requests
+, requests-mock
+, requests_oauthlib
+}:
+
+buildPythonPackage rec {
+  pname = "ring-doorbell";
+  version = "0.7.0";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    pname = "ring_doorbell";
+    inherit version;
+    sha256 = "1qnx9q9rzxhh0pygl3f9bg21b5zv7csv9h1w4zngdvsphbs0yiwg";
+  };
+
+  propagatedBuildInputs = [
+    oauthlib
+    pytz
+    requests
+    requests_oauthlib
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    requests-mock
+  ];
+
+  pythonImportsCheck = [ "ring_doorbell" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tchellomello/python-ring-doorbell";
+    description = "A Python library to communicate with Ring Door Bell (https://ring.com/)";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ graham33 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/riprova/default.nix b/nixpkgs/pkgs/development/python-modules/riprova/default.nix
new file mode 100644
index 000000000000..adf327208955
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/riprova/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec{
+  pname = "riprova";
+  version = "0.2.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04drdvjjbh370csv2vb5zamg2aanxqkfm6w361qkybnra4g4g0dz";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  # PyPI archive doesn't have tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "riprova" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/h2non/riprova";
+    description = "Small and versatile library to retry failed operations using different backoff strategies";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmilata ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rnc2rng/default.nix b/nixpkgs/pkgs/development/python-modules/rnc2rng/default.nix
index 8e42baf8ff74..62cdb5bbf32e 100644
--- a/nixpkgs/pkgs/development/python-modules/rnc2rng/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rnc2rng/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "rnc2rng";
-  version = "2.6.4";
+  version = "2.6.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kmp3iwxxyzjsd47j2sprd47ihhkwhb3yydih3af5bbfq0ibh1w8";
+    sha256 = "d354afcf0bf8e3b1e8f8d37d71a8fe5b1c0cf75cbd4b71364a9d90b5108a16e5";
   };
 
   propagatedBuildInputs = [ rply ];
diff --git a/nixpkgs/pkgs/development/python-modules/roboschool/default.nix b/nixpkgs/pkgs/development/python-modules/roboschool/default.nix
index 3e15f18a3dd1..97eee2155a5e 100644
--- a/nixpkgs/pkgs/development/python-modules/roboschool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/roboschool/default.nix
@@ -44,6 +44,8 @@ buildPythonPackage rec {
     boost
   ];
 
+  dontWrapQtApps = true;
+
   NIX_CFLAGS_COMPILE="-I ${python}/include/${python.libPrefix}";
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-tools/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-tools/default.nix
index 9b90b25bfb72..77a7fe13df99 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-tools/default.nix
@@ -1,14 +1,13 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy3k
 , robotframework
 , moretools
 , pathpy
 , six
 , zetup
 , modeled
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -20,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "0377ikajf6c3zcy3lc0kh4w9zmlqyplk2c2hb0yyc7h3jnfnya96";
   };
 
-  nativeBuildInputs = [
-    zetup
-  ];
+  nativeBuildInputs = [ zetup ];
 
   propagatedBuildInputs = [
     robotframework
@@ -32,19 +29,21 @@ buildPythonPackage rec {
     modeled
   ];
 
-  checkInputs = [
-    pytest
-  ];
-
-  checkPhase = ''
-    # tests require network
-    pytest test --ignore test/remote/test_remote.py
+  postPatch = ''
+    # Remove upstream's selfmade approach to collect the dependencies
+    # https://github.com/userzimmermann/robotframework-tools/issues/1
+    substituteInPlace setup.py --replace \
+      "setup_requires=SETUP_REQUIRES + (zfg.SETUP_REQUIRES or [])," ""
   '';
 
+  checkInputs = [ pytestCheckHook ];
+  pytestFlagsArray = [ "test" ];
+  pythonImportsCheck = [ "robottools" ];
+
   meta = with lib; {
     description = "Python Tools for Robot Framework and Test Libraries";
-    homepage = "https://bitbucket.org/userzimmermann/robotframework-tools";
-    license = licenses.gpl3;
+    homepage = "https://github.com/userzimmermann/robotframework-tools";
+    license = licenses.gpl3Plus;
     maintainers = [ maintainers.costrouc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ronin/default.nix b/nixpkgs/pkgs/development/python-modules/ronin/default.nix
new file mode 100644
index 000000000000..c9b0a0d25617
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ronin/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, blessings
+, colorama
+, glob2
+}:
+
+buildPythonPackage rec {
+  pname = "ronin";
+  version = "1.1.1";
+
+  src = fetchPypi {
+    inherit version pname;
+    hash = "sha256-5gZ8S0NR4JzKBIdi/xYtVmFg9ObbCSkT7sz+OKWnK/U=";
+  };
+
+  propagatedBuildInputs = [
+    blessings
+    colorama
+    glob2
+  ];
+
+  pythonImportsCheck = [
+    "ronin"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tliron/ronin/";
+    description = "A straightforward but powerful build system based on Ninja and Python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rope/default.nix b/nixpkgs/pkgs/development/python-modules/rope/default.nix
index c4e451aade5e..21d5886efe21 100644
--- a/nixpkgs/pkgs/development/python-modules/rope/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rope/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, pythonAtLeast, nose }:
+{ lib, buildPythonPackage, fetchPypi, fetchpatch, nose }:
 
 buildPythonPackage rec {
   pname = "rope";
@@ -9,6 +9,15 @@ buildPythonPackage rec {
     sha256 = "786b5c38c530d4846aa68a42604f61b4e69a493390e3ca11b88df0fbfdc3ed04";
   };
 
+  patches = [
+    # Python 3.9 ast changes
+    (fetchpatch {
+      url = "https://github.com/python-rope/rope/pull/333.patch";
+      excludes = [ ".github/workflows/main.yml" ];
+      sha256 = "1gq7n1zs18ndmv0p8jg1h5pawabi1m9m9z2w5hgidvqmpmcziky0";
+    })
+  ];
+
   checkInputs = [ nose ];
   checkPhase = ''
     # tracked upstream here https://github.com/python-rope/rope/issues/247
@@ -19,6 +28,6 @@ buildPythonPackage rec {
     description = "Python refactoring library";
     homepage = "https://github.com/python-rope/rope";
     maintainers = with maintainers; [ goibhniu ];
-    license = licenses.gpl2;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ropper/default.nix b/nixpkgs/pkgs/development/python-modules/ropper/default.nix
index 5a472ceb1801..1237fd09ea41 100644
--- a/nixpkgs/pkgs/development/python-modules/ropper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ropper/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonApplication rec {
   pname = "ropper";
-  version = "1.13.3";
+  version = "1.13.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dfc87477c0f53d3d2836a384c106373d761cc435eafc477f299523e5404dda43";
+    sha256 = "6e4226f5ef01951c7df87029535e051c6deb3f156f7511613fb69e8a7f4801fb";
   };
   # XXX tests rely on user-writeable /dev/shm to obtain process locks and return PermissionError otherwise
   # workaround: sudo chmod 777 /dev/shm
diff --git a/nixpkgs/pkgs/development/python-modules/rpy2/2.nix b/nixpkgs/pkgs/development/python-modules/rpy2/2.nix
index e178d3c82116..3108861e9ce2 100644
--- a/nixpkgs/pkgs/development/python-modules/rpy2/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpy2/2.nix
@@ -9,7 +9,7 @@
 , rWrapper
 , rPackages
 , pcre
-, lzma
+, xz
 , bzip2
 , zlib
 , icu
@@ -35,7 +35,7 @@ buildPythonPackage rec {
       readline
       R
       pcre
-      lzma
+      xz
       bzip2
       zlib
       icu
diff --git a/nixpkgs/pkgs/development/python-modules/rpy2/default.nix b/nixpkgs/pkgs/development/python-modules/rpy2/default.nix
index 0b042288fb75..c5443a373829 100644
--- a/nixpkgs/pkgs/development/python-modules/rpy2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpy2/default.nix
@@ -1,15 +1,13 @@
 { stdenv
 , lib
-, python
 , buildPythonPackage
-, fetchpatch
 , fetchPypi
 , isPyPy
 , R
 , rWrapper
 , rPackages
 , pcre
-, lzma
+, xz
 , bzip2
 , zlib
 , icu
@@ -26,13 +24,13 @@
 }:
 
 buildPythonPackage rec {
-    version = "3.4.1";
+    version = "3.4.2";
     pname = "rpy2";
 
     disabled = isPyPy;
     src = fetchPypi {
       inherit version pname;
-      sha256 = "1qnjjlgh6i31z45jykwd29n1336gq678fn9zw7gh0rv5d6sn0hv4";
+      sha256 = "8f7d1348b77bc45425b846a0d625f24a51a1c4f32ef2cd1c07a24222aa64e2e0";
     };
 
     patches = [
@@ -48,7 +46,7 @@ buildPythonPackage rec {
 
     buildInputs = [
       pcre
-      lzma
+      xz
       bzip2
       zlib
       icu
diff --git a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
index 9bb2a513174c..86701865861f 100644
--- a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7396943cbc1cf92eb6f7aa93be5f64a3bfa59d76908262e89bae06e3c87fa59d";
+    sha256 = "87e5210415db17b9de18c77bcfc4a301570cc9030ee112b77dc47ab82426bae1";
   };
 
   buildInputs = [ docutils ];
diff --git a/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix b/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix
index 6f816fc9bb89..51d3f3ab14ac 100644
--- a/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "s3transfer";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "921a37e2aefc64145e7b73d50c71bb4f26f46e4c9f414dc648c6245ff92cf7db";
+    sha256 = "7fdddb4f22275cf1d32129e21f056337fd2a80b6ccef1664528145b72c49e6d2";
   };
 
   propagatedBuildInputs =
diff --git a/nixpkgs/pkgs/development/python-modules/safety/default.nix b/nixpkgs/pkgs/development/python-modules/safety/default.nix
index c268f2699595..dd840c3389ca 100644
--- a/nixpkgs/pkgs/development/python-modules/safety/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/safety/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "safety";
-  version = "1.9.0";
+  version = "1.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "23bf20690d4400edc795836b0c983c2b4cbbb922233108ff925b7dd7750f00c9";
+    sha256 = "sha256-MOOU0CogrEm39lKS0Z04+pJ6j5WCzf060a27xmxkGtU=";
   };
 
   propagatedBuildInputs = [ requests dparse click setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix b/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
new file mode 100644
index 000000000000..fc675279a40a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, attrs
+, boto3
+, google-pasta
+, importlib-metadata
+, numpy
+, protobuf
+, protobuf3-to-dict
+, smdebug-rulesconfig
+, pandas
+, packaging
+}:
+
+buildPythonPackage rec {
+  pname = "sagemaker";
+  version = "2.33.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-0l8xwZ10zQb+LnV/hjYoSSgN/TGpVdzdXeSfnEyf0J0=";
+  };
+
+  pythonImportsCheck = [
+    "sagemaker"
+    "sagemaker.lineage.visualizer"
+  ];
+
+  propagatedBuildInputs = [
+    attrs
+    boto3
+    google-pasta
+    importlib-metadata
+    numpy
+    packaging
+    protobuf
+    protobuf3-to-dict
+    smdebug-rulesconfig
+    pandas
+  ];
+
+  doCheck = false;
+
+  postFixup = ''
+    [ "$($out/bin/sagemaker-upgrade-v2 --help 2>&1 | grep -cim1 'pandas failed to import')" -eq "0" ]
+  '';
+
+  meta = with lib; {
+    description = "Library for training and deploying machine learning models on Amazon SageMaker";
+    homepage = "https://github.com/aws/sagemaker-python-sdk/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nequissimus ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix b/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix
index 0b8edf8bdd90..52aa8a98e1e4 100644
--- a/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://salmon-mail.readthedocs.org/";
     description = "Pythonic mail application server";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ jluttine ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sane/default.nix b/nixpkgs/pkgs/development/python-modules/sane/default.nix
index d45c736d8d03..b02feb9e2192 100644
--- a/nixpkgs/pkgs/development/python-modules/sane/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sane/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, saneBackends
+, sane-backends
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   buildInputs = [
-    saneBackends
+    sane-backends
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/sanic/default.nix b/nixpkgs/pkgs/development/python-modules/sanic/default.nix
index f503b0b85561..e5faa440ad8d 100644
--- a/nixpkgs/pkgs/development/python-modules/sanic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sanic/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi
+{ lib, buildPythonPackage, fetchPypi, doCheck ? true
 , aiofiles, httptools, httpx, multidict, ujson, uvloop, websockets
 , pytestCheckHook, beautifulsoup4, gunicorn, httpcore, uvicorn
 , pytest-asyncio, pytest-benchmark, pytest-dependency, pytest-sanic, pytest-sugar, pytestcov
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "06p0lsxqbfbka2yaqlpp0bg5pf7ma44zi6kq7qbb6hhry48dp1w6";
   };
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace setup.py \
       --replace '"multidict==5.0.0"' '"multidict"' \
       --replace '"httpx==0.15.4"' '"httpx"' \
@@ -30,14 +30,19 @@ buildPythonPackage rec {
     pytest-asyncio pytest-benchmark pytest-dependency pytest-sanic pytest-sugar pytestcov
   ];
 
+  inherit doCheck;
+
   disabledTests = [
     "test_gunicorn" # No "examples" directory in pypi distribution.
     "test_logo" # Fails to filter out "DEBUG asyncio:selector_events.py:59 Using selector: EpollSelector"
     "test_zero_downtime" # No "examples.delayed_response.app" module in pypi distribution.
+    "test_reloader_live" # OSError: [Errno 98] error while attempting to bind on address ('127.0.0.1', 42104)
   ];
 
   __darwinAllowLocalNetworking = true;
 
+  pythonImportsCheck = [ "sanic" ];
+
   meta = with lib; {
     description = "A microframework based on uvloop, httptools, and learnings of flask";
     homepage = "http://github.com/channelcat/sanic/";
diff --git a/nixpkgs/pkgs/development/python-modules/sasmodels/default.nix b/nixpkgs/pkgs/development/python-modules/sasmodels/default.nix
index 06d2d40d1802..08c9e7ce3ebe 100644
--- a/nixpkgs/pkgs/development/python-modules/sasmodels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sasmodels/default.nix
@@ -1,20 +1,30 @@
-{ lib, fetchFromGitHub, buildPythonPackage, pytest, numpy, scipy, matplotlib, docutils
-, pyopencl, opencl-headers
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, pytest_5
+, numpy
+, scipy
+, matplotlib
+, docutils
+, pyopencl
+, opencl-headers
 }:
 
 buildPythonPackage rec {
   pname = "sasmodels";
-  version = "1.0.2";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "SasView";
     repo = "sasmodels";
     rev = "v${version}";
-    sha256 = "1qvh7q0fkls5r8r9mrph6igcvv8x3qsslqsc5jf1n20alcs5zjrl";
+    sha256 = "0h2k81dm92sm0z086qy3ipw6y6cfgpb7ppl7lhjmx6816s3k50sa";
   };
 
   buildInputs = [ opencl-headers ];
-  checkInputs = [ pytest ];
+  # Note: the 1.0.5 release should be compatible with pytest6, so this can
+  # be set back to 'pytest' at that point
+  checkInputs = [ pytest_5 ];
   propagatedBuildInputs = [ docutils matplotlib numpy scipy pyopencl ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/schema/default.nix b/nixpkgs/pkgs/development/python-modules/schema/default.nix
index 483a891f9332..a29ae2da853c 100644
--- a/nixpkgs/pkgs/development/python-modules/schema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/schema/default.nix
@@ -3,11 +3,11 @@
 buildPythonPackage rec {
 
   pname = "schema";
-  version = "0.7.3";
+  version = "0.7.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4cf529318cfd1e844ecbe02f41f7e5aa027463e7403666a52746f31f04f47a5e";
+    sha256 = "fbb6a52eb2d9facf292f233adcc6008cffd94343c63ccac9a1cb1f3e6de1db17";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix
index f14c4d82f428..f13fecc08551 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix
@@ -32,12 +32,6 @@ buildPythonPackage rec {
   checkInputs = [ coverage ];
   propagatedBuildInputs = [ lockfile cachecontrol decorator ipython matplotlib natsort numpy pandas scipy hdmedians scikitlearn ];
 
-  # remove on when version > 0.5.4
-  postPatch = ''
-    sed -i "s/numpy >= 1.9.2, < 1.14.0/numpy/" setup.py
-    sed -i "s/pandas >= 0.19.2, < 0.23.0/pandas/" setup.py
-  '';
-
   # cython package not included for tests
   doCheck = false;
 
@@ -45,6 +39,8 @@ buildPythonPackage rec {
     ${python.interpreter} -m skbio.test
   '';
 
+  pythonImportsCheck = [ "skbio" ];
+
   meta = with lib; {
     homepage = "http://scikit-bio.org/";
     description = "Data structures, algorithms and educational resources for bioinformatics";
diff --git a/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix b/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix
index e7307c926320..7e9e37831e0d 100644
--- a/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix
@@ -3,25 +3,38 @@
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
-, gfortran, glibcLocales
-, numpy, scipy, pytest, pillow
+, gfortran
+, glibcLocales
+, numpy
+, scipy
+, pytest
+, pillow
 , cython
 , joblib
 , llvmPackages
 , threadpoolctl
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "scikit-learn";
   version = "0.24.1";
-  # UnboundLocalError: local variable 'message' referenced before assignment
-  disabled = stdenv.isi686;  # https://github.com/scikit-learn/scikit-learn/issues/5534
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "oDNKGALmTWVgIsO/q1anP71r9LEpg0PzaIryFRgQu98=";
   };
 
+  patches = [
+    # This patch fixes compatibility with numpy 1.20. It was merged before 0.24.1 was released,
+    # but for some reason was not included in the 0.24.1 release tarball.
+    (fetchpatch {
+      url = "https://github.com/scikit-learn/scikit-learn/commit/e7ef22c3ba2334cb3b476e95d7c083cf6b48ce56.patch";
+      sha256 = "174554k1pbf92bj7wgq0xjj16bkib32ailyhwavdxaknh4bd9nmv";
+    })
+  ];
+
   buildInputs = [
     pillow
     gfortran
diff --git a/nixpkgs/pkgs/development/python-modules/scipy/default.nix b/nixpkgs/pkgs/development/python-modules/scipy/default.nix
index 8d08e43bc713..0bc8499a373b 100644
--- a/nixpkgs/pkgs/development/python-modules/scipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scipy/default.nix
@@ -9,11 +9,11 @@ let
   });
 in buildPythonPackage rec {
   pname = "scipy";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rh5b1rwdcvvagld8vpxnpaibszy1skpx39a0fwzd5gx5pwcjvfb";
+    sha256 = "048vd4c843xaq45yk3kn491gvqnvhp2i9rxhg671ddlh923fpz64";
   };
 
   checkInputs = [ nose pytest ];
@@ -53,9 +53,10 @@ in buildPythonPackage rec {
 
   SCIPY_USE_G77_ABI_WRAPPER = 1;
 
-  meta = {
-    description = "SciPy (pronounced 'Sigh Pie') is open-source software for mathematics, science, and engineering. ";
+  meta = with lib; {
+    description = "SciPy (pronounced 'Sigh Pie') is open-source software for mathematics, science, and engineering";
     homepage = "https://www.scipy.org/";
-    maintainers = with lib.maintainers; [ fridh ];
+    license = licenses.bsd3;
+    maintainers = [ maintainers.fridh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/scramp/default.nix b/nixpkgs/pkgs/development/python-modules/scramp/default.nix
index 7beefa4e8999..68e4b9821b1e 100644
--- a/nixpkgs/pkgs/development/python-modules/scramp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scramp/default.nix
@@ -1,16 +1,23 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook }:
+{ lib
+, asn1crypto
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "scramp";
-  version = "1.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "tlocke";
     repo = "scramp";
     rev = version;
-    sha256 = "15jb7z5l2lijxr60fb9v55i3f81h6d83c0b7fv5q0fv5q259nv0a";
+    sha256 = "sha256-aXuRIW/3qBzan8z3EzSSxqaZfa3WnPhlviNa2ugIjik=";
   };
 
+  propagatedBuildInputs = [ asn1crypto ];
+
   checkInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "scramp" ];
diff --git a/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix b/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix
index 5f238a7e05fa..80933043b3b9 100644
--- a/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonApplication rec {
   pname = "screeninfo";
-  version = "0.6.6";
+  version = "0.6.7";
   disabled = isPy27; # dataclasses isn't available for python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c93fcc3c9421cc2046e57468241c4c08c0c6cffd0e05a85cb0b18de8fe8b026f";
+    sha256 = "1c4bac1ca329da3f68cbc4d2fbc92256aa9bb8ff8583ee3e14f91f0a7baa69cb";
   };
 
   # dataclasses is a compatibility shim for python 3.6 ONLY
diff --git a/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix b/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
new file mode 100644
index 000000000000..100c487acee6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "screenlogicpy";
+  version = "0.3.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0gn2mf2n2g1ffdbijrydgb7dgd60lkvckblx6s86kxlkrp1wqgrq";
+  };
+
+  # Project doesn't publish tests
+  # https://github.com/dieselrabbit/screenlogicpy/issues/8
+  doCheck = false;
+  pythonImportsCheck = [ "screenlogicpy" ];
+
+  meta = with lib; {
+    description = "Python interface for Pentair Screenlogic devices";
+    homepage = "https://github.com/dieselrabbit/screenlogicpy";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/seaborn/default.nix b/nixpkgs/pkgs/development/python-modules/seaborn/default.nix
index b3bf8fce0fca..8c771ea286cb 100644
--- a/nixpkgs/pkgs/development/python-modules/seaborn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/seaborn/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   # Computationally very demanding tests
   doCheck = false;
+  pythonImportsCheck= [ "seaborn" ];
 
   meta = {
     description = "Statisitical data visualization";
diff --git a/nixpkgs/pkgs/development/python-modules/secretstorage/default.nix b/nixpkgs/pkgs/development/python-modules/secretstorage/default.nix
index 157876476761..5b7b7ea27972 100644
--- a/nixpkgs/pkgs/development/python-modules/secretstorage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/secretstorage/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "secretstorage";
-  version = "3.3.0";
+  version = "3.3.1";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     pname = "SecretStorage";
     inherit version;
-    sha256 = "1aj669d5s8pmr6y2d286fxd13apnxzw0ivd1dr6xdni9i3rdxkrh";
+    sha256 = "15ginv4gzxrx77n7517xnvf2jcpqc6ran12s951hc85zlr8nqrpx";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/semver/default.nix b/nixpkgs/pkgs/development/python-modules/semver/default.nix
index c281a6d6b0da..cb4578671b98 100644
--- a/nixpkgs/pkgs/development/python-modules/semver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/semver/default.nix
@@ -1,27 +1,34 @@
 { lib
-, fetchFromGitHub
 , buildPythonPackage
+, fetchFromGitHub
+, pytest-cov
 , pytestCheckHook
-, pytestcov
 }:
 
 buildPythonPackage rec {
   pname = "semver";
-  version = "2.10.2";
+  version = "2.13.0";
 
   src = fetchFromGitHub {
     owner = "python-semver";
     repo = "python-semver";
     rev = version;
-    sha256 = "0yxjmcgk5iwp53l9z1cg0ajrj18i09ircs11ifpdrggzm8n1blf3";
+    sha256 = "sha256-IWTo/P9JRxBQlhtcH3JMJZZrwAA8EALF4dtHajWUc4w=";
   };
 
-  preCheck = "rm -rf dist"; # confuses source vs dist imports in pytest
-  checkInputs = [ pytestCheckHook pytestcov ];
+  checkInputs = [
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  # Confuses source vs dist imports in pytest
+  preCheck = "rm -r dist";
+
+  pythonImportsCheck = [ "semver" ];
 
   meta = with lib; {
     description = "Python package to work with Semantic Versioning (http://semver.org/)";
-    homepage = "https://python-semver.readthedocs.io/en/latest/";
+    homepage = "https://python-semver.readthedocs.io/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ np ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix b/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix
index 77cd35938635..704549e987d7 100644
--- a/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "sendgrid";
-  version = "6.5.0";
+  version = "6.6.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "sendgrid-python";
     rev = version;
-    sha256 = "14kqjdv49486ksc1s0m0hc4k5nf9vn1v1g489mpib01hiiqxjp1b";
+    sha256 = "sha256-R9ASHDIGuPRh4yf0FAlpjUZ6QAakYs35EFSqAPc02Q8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
index 6b49d6db499d..ba5b37c8d9c7 100644
--- a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -29,11 +29,11 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "0.19.5";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0grba3rpgg20sqhrh8mxcjwmwgbwrybrxymavh7xsad59570jykk";
+    sha256 = "71de00c9711926816f750bc0f57ef2abbcb1bfbdf5378c601df7ec978f44857a";
   };
 
   checkInputs = [ blinker botocore chalice django flask tornado bottle rq falcon sqlalchemy werkzeug trytond
diff --git a/nixpkgs/pkgs/development/python-modules/serverlessrepo/default.nix b/nixpkgs/pkgs/development/python-modules/serverlessrepo/default.nix
index 1e6f8307fbca..2a8267710a09 100644
--- a/nixpkgs/pkgs/development/python-modules/serverlessrepo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/serverlessrepo/default.nix
@@ -29,10 +29,6 @@ buildPythonPackage rec {
     pytest tests/unit
   '';
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "pyyaml~=3.12" "pyyaml~=5.1"
-  '';
-
   meta = with lib; {
     homepage = "https://github.com/awslabs/aws-serverlessrepo-python";
     description = "Helpers for working with the AWS Serverless Application Repository";
diff --git a/nixpkgs/pkgs/development/python-modules/setproctitle/default.nix b/nixpkgs/pkgs/development/python-modules/setproctitle/default.nix
index fb7913ce25c9..80fb7ab77f5c 100644
--- a/nixpkgs/pkgs/development/python-modules/setproctitle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setproctitle/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "setproctitle";
-  version = "1.2";
+  version = "1.2.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9b4e48722dd96cbd66d5bf2eab930fff8546cd551dd8d774c8a319448bd381a6";
+    sha256 = "7dfb472c8852403d34007e01d6e3c68c57eb66433fb8a5c77b13b89a160d97df";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix
index ee4a3b551649..e3d8a35186a9 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix
@@ -1,17 +1,17 @@
-{ lib
+{ callPackage
+, lib
 , buildPythonPackage
 , fetchPypi
 , isPy27
 , semantic-version
 , setuptools
-, setuptools_scm
+, setuptools-scm
 , toml
 }:
 
 buildPythonPackage rec {
   pname = "setuptools-rust";
   version = "0.11.6";
-
   disabled = isPy27;
 
   src = fetchPypi {
@@ -19,10 +19,16 @@ buildPythonPackage rec {
     sha256 = "a5b5954909cbc5d66b914ee6763f81fa2610916041c7266105a469f504a7c4ca";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ semantic-version setuptools toml ];
 
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "setuptools_rust" ];
+
+  passthru.tests.pyo3 = callPackage ./pyo3-test {};
+
   meta = with lib; {
     description = "Setuptools plugin for Rust support";
     homepage = "https://github.com/PyO3/setuptools-rust";
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix
new file mode 100644
index 000000000000..9af17aa5159c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix
@@ -0,0 +1,21 @@
+{ callPackage
+, rustPlatform
+, setuptools-rust
+}:
+
+callPackage ../../../tools/rust/maturin/pyo3-test/generic.nix {
+  # Isolated builds break for this package, because PyO3 is not
+  # in the build root of the Python Package:
+  #
+  # https://github.com/pypa/pip/issues/6276
+  #
+  format = "setuptools";
+
+  nativeBuildInputs = [ setuptools-rust ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  sourceRoot = "source/examples/word-count";
+}
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix
index ba716c313fd5..fa3a3de85328 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, pip, pytest }:
+{ lib, buildPythonPackage, fetchPypi, toml }:
 
 buildPythonPackage rec {
   pname = "setuptools_scm";
@@ -9,13 +9,16 @@ buildPythonPackage rec {
     sha256 = "a8994582e716ec690f33fec70cca0f85bd23ec974e3f783233e4879090a7faa8";
   };
 
+  propagatedBuildInputs = [ toml ];
+
   # Requires pytest, circular dependency
   doCheck = false;
+  pythonImportsCheck = [ "setuptools_scm" ];
 
   meta = with lib; {
-    homepage = "https://bitbucket.org/pypa/setuptools_scm/";
+    homepage = "https://github.com/pypa/setuptools_scm/";
     description = "Handles managing your python package versions in scm metadata";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sfepy/default.nix b/nixpkgs/pkgs/development/python-modules/sfepy/default.nix
index 8a37f41086ea..dacd589b1212 100644
--- a/nixpkgs/pkgs/development/python-modules/sfepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sfepy/default.nix
@@ -9,15 +9,21 @@
 , cython
 , python
 , sympy
+, meshio
+, mpi4py
+, psutil
+, openssh
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  name = "sfepy_${version}";
-  version = "2019.4";
+  name = "sfepy";
+  version = "2020.4";
+  disabled = pythonOlder "3.8";
 
   src = fetchurl {
     url="https://github.com/sfepy/sfepy/archive/release_${version}.tar.gz";
-    sha256 = "1l9vgcw09l6bwhgfzlbn68fzpvns25r6nkd1pcp7hz5165hs6zzn";
+    sha256 = "1wb0ik6kjg3mksxin0abr88bhsly67fpg36qjdzabhj0xn7j1yaz";
   };
 
   propagatedBuildInputs = [
@@ -28,12 +34,15 @@ buildPythonPackage rec {
     pyparsing
     tables
     sympy
+    meshio
+    mpi4py
+    psutil
+    openssh
   ];
 
   postPatch = ''
-    # broken test
-    rm tests/test_homogenization_perfusion.py
-    rm tests/test_splinebox.py
+    # broken tests
+    rm tests/test_meshio.py
 
     # slow tests
     rm tests/test_input_*.py
@@ -47,6 +56,7 @@ buildPythonPackage rec {
   '';
 
   checkPhase = ''
+    export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
     export HOME=$TMPDIR
     mv sfepy sfepy.hidden
     mkdir -p $HOME/.matplotlib
diff --git a/nixpkgs/pkgs/development/python-modules/shap/default.nix b/nixpkgs/pkgs/development/python-modules/shap/default.nix
index cfbd6f92b04c..abc68709caa4 100644
--- a/nixpkgs/pkgs/development/python-modules/shap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shap/default.nix
@@ -66,5 +66,7 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ evax ];
     platforms = platforms.unix;
+    # ModuleNotFoundError: No module named 'sklearn.ensemble.iforest'
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/shapely/default.nix b/nixpkgs/pkgs/development/python-modules/shapely/default.nix
index b5dd0be5445c..e8ea874e5ca5 100644
--- a/nixpkgs/pkgs/development/python-modules/shapely/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shapely/default.nix
@@ -1,47 +1,75 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, substituteAll, pythonOlder
-, geos, pytest, cython
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, pythonOlder
+, geos
+, pytestCheckHook
+, cython
 , numpy
+, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "Shapely";
   version = "1.7.1";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "0adiz4jwmwxk7k1awqifb1a9bj5x4nx4gglb5dz9liam21674h8n";
   };
-  disabled = pythonOlder "3.5";
 
   nativeBuildInputs = [
     geos # for geos-config
     cython
   ];
 
-  checkInputs = [ pytest ];
+  propagatedBuildInputs = [
+    numpy
+  ];
 
-  propagatedBuildInputs = [ numpy ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  # environment variable used in shapely/_buildcfg.py
+  # Environment variable used in shapely/_buildcfg.py
   GEOS_LIBRARY_PATH = "${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}";
 
   patches = [
+    # Fix with geos 3.9. This patch will be part of the next release after 1.7.1
+    (fetchpatch {
+      url = "https://github.com/Toblerity/Shapely/commit/77879a954d24d1596f986d16ba3eff5e13861164.patch";
+      sha256 = "1w7ngjqbpf9vnvrfg4nyv34kckim9a60gvx20h6skc79xwihd4m5";
+      excludes = [
+        "tests/test_create_inconsistent_dimensionality.py"
+        "appveyor.yml"
+        ".travis.yml"
+      ];
+    })
+    # Patch to search form GOES .so/.dylib files in a Nix-aware way
     (substituteAll {
       src = ./library-paths.patch;
       libgeos_c = GEOS_LIBRARY_PATH;
       libc = lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
     })
-  ];
+ ];
 
-  # Disable the tests that improperly try to use the built extensions
-  checkPhase = ''
+  preCheck = ''
     rm -r shapely # prevent import of local shapely
-    py.test tests
   '';
 
+  disabledTests = [
+    "test_collection"
+  ];
+
+  pythonImportsCheck = [ "shapely" ];
+
   meta = with lib; {
     description = "Geometric objects, predicates, and operations";
-    maintainers = with maintainers; [ knedlsepp ];
     homepage = "https://pypi.python.org/pypi/Shapely/";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ knedlsepp ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sharkiqpy/default.nix b/nixpkgs/pkgs/development/python-modules/sharkiqpy/default.nix
new file mode 100644
index 000000000000..9d696bf0a21a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sharkiqpy/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "sharkiqpy";
+  version = "0.1.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nk1nbplyk28qadxc7rydjvdgbz3za0xjg6c95l95mhiz453q5sw";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "sharkiqpy" ];
+
+  meta = with lib; {
+    description = "Python API for Shark IQ robot";
+    homepage = "https://github.com/ajmarks/sharkiq";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix b/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix
index b7508a8f6447..23836addd0ca 100644
--- a/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation {
     "-DBUILD_TESTS=OFF"
   ];
 
+  dontWrapQtApps = true;
+
   postInstall = ''
     rm $out/bin/shiboken_tool.py
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/signify/certificate-expiration-date.patch b/nixpkgs/pkgs/development/python-modules/signify/certificate-expiration-date.patch
new file mode 100644
index 000000000000..6554211a4bc7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/signify/certificate-expiration-date.patch
@@ -0,0 +1,18 @@
+diff --git a/tests/test_authenticode.py b/tests/test_authenticode.py
+index 7e2c709..2f27e09 100644
+--- a/tests/test_authenticode.py
++++ b/tests/test_authenticode.py
+@@ -153,10 +153,12 @@ class AuthenticodeParserTestCase(unittest.TestCase):
+         """this certificate is revoked"""
+         with open(str(root_dir / "test_data" / "jameslth"), "rb") as f:
+             pefile = SignedPEFile(f)
+-            pefile.verify()
++            pefile.verify(verification_context_kwargs=
++                          {'timestamp': datetime.datetime(2021, 1, 1, tzinfo=datetime.timezone.utc)})
+
+     def test_jameslth_revoked(self):
+         """this certificate is revoked"""
++        # TODO: this certificate is now expired, so it will not show up as valid anyway
+         with open(str(root_dir / "test_data" / "jameslth"), "rb") as f:
+             pefile = SignedPEFile(f)
+             with self.assertRaises(VerificationError):
diff --git a/nixpkgs/pkgs/development/python-modules/signify/default.nix b/nixpkgs/pkgs/development/python-modules/signify/default.nix
new file mode 100644
index 000000000000..be0623b1b73b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/signify/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, pytestCheckHook
+, certvalidator, pyasn1, pyasn1-modules
+}:
+
+buildPythonPackage rec {
+  pname = "signify";
+  version = "0.3.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "ralphje";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-JxQECpwHhPm8TCVW/bCnEpu5I/WETyZVBx29SQE4NmE=";
+  };
+  patches = [
+    # Upstream patch is available here:
+    #  https://github.com/ralphje/signify/commit/8c345be954e898a317825bb450bed5ba0304b2b5.patch
+    # But update a couple other things and dont apply cleanly. This is an extract of the part
+    # we care about and breaks the tests after 2021-03-01
+    ./certificate-expiration-date.patch
+  ];
+
+  propagatedBuildInputs = [ certvalidator pyasn1 pyasn1-modules ];
+
+  checkInputs = [ pytestCheckHook ];
+  pytestFlagsArray = [ "-v" ];
+  pythonImportsCheck = [ "signify" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/ralphje/signify";
+    description = "library that verifies PE Authenticode-signed binaries";
+    license = licenses.mit;
+    maintainers = with maintainers; [ baloo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/simplehound/default.nix b/nixpkgs/pkgs/development/python-modules/simplehound/default.nix
new file mode 100644
index 000000000000..1ecd446c5b48
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/simplehound/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, requests
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "simplehound";
+  version = "0.6";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "robmarkcole";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1b5m3xjmk0l6ynf0yvarplsfsslgklalfcib7sikxg3v5hiv9qwh";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  checkInputs = [
+    requests-mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "simplehound" ];
+
+  meta = with lib; {
+    description = "Python API for Sighthound";
+    homepage = "https://github.com/robmarkcole/simplehound";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/simplejson/default.nix b/nixpkgs/pkgs/development/python-modules/simplejson/default.nix
index fe08f5bbe2e5..dd27c02dc874 100644
--- a/nixpkgs/pkgs/development/python-modules/simplejson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simplejson/default.nix
@@ -2,39 +2,35 @@
 , buildPythonPackage
 , fetchFromGitHub
 , stdenv
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "simplejson";
-  version = "3.17.0";
+  version = "3.17.2";
   doCheck = !stdenv.isDarwin;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1b1hhh1dia673vhq3jl2br1iqwb9yjii6iak56w96s9972vjbz3z";
+    sha256 = "sha256-2ZC7aKyUUcth43Ce0j6JdjrJ4gb4QfJDlY2M5TLMQ+o=";
   };
 
-  # Package does not need pytest, but its a bit easier debugging.
-  checkInputs = [ pytest ];
-  # Ignore warnings because test does not expect them in stderr
-  # See https://github.com/simplejson/simplejson/issues/241
-  checkPhase = ''
-    PYTHONWARNINGS="ignore" pytest simplejson/tests
-  '';
+  checkInputs = [ pytestCheckHook ];
 
-  meta = {
-    description = "A simple, fast, extensible JSON encoder/decoder for Python";
+  pythonImportsCheck = [ "simplejson" ];
+
+  meta = with lib; {
+    description = "Extensible JSON encoder/decoder for Python";
     longDescription = ''
-      simplejson is compatible with Python 2.4 and later with no
-      external dependencies.  It covers the full JSON specification
-      for both encoding and decoding, with unicode support.  By
-      default, encoding is done in an encoding neutral fashion (plain
-      ASCII with \uXXXX escapes for unicode characters).
+      simplejson covers the full JSON specification for both encoding
+      and decoding, with unicode support. By default, encoding is done
+      in an encoding neutral fashion (plain ASCII with \uXXXX escapes
+      for unicode characters).
     '';
     homepage = "https://github.com/simplejson/simplejson";
-    license = with lib.licenses; [ mit afl21 ];
+    license = with licenses; [ mit afl21 ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/simplekml/default.nix b/nixpkgs/pkgs/development/python-modules/simplekml/default.nix
index 6b8bac25b87b..42e93d63faee 100644
--- a/nixpkgs/pkgs/development/python-modules/simplekml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simplekml/default.nix
@@ -1,4 +1,7 @@
-{ lib , buildPythonPackage , fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
 
 buildPythonPackage rec {
   pname = "simplekml";
@@ -9,11 +12,13 @@ buildPythonPackage rec {
     sha256 = "17h48r1dsfz4g9xcxh1xq85h20hiz7qzzymc1gla96bj2wh4wyv5";
   };
 
-  doCheck = false; # no tests are defined in 1.3.5
+  # no tests are defined in 1.3.5
+  doCheck = false;
+  pythonImportsCheck = [ "simplekml" ];
 
   meta = with lib; {
-    description = "Generate KML with as little effort as possible";
-    homepage =  "https://readthedocs.org/projects/simplekml/";
+    description = "Python package to generate KML";
+    homepage =  "https://simplekml.readthedocs.io/";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ rvolosatovs ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/simplisafe-python/default.nix b/nixpkgs/pkgs/development/python-modules/simplisafe-python/default.nix
new file mode 100644
index 000000000000..5b8925b0a4c6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/simplisafe-python/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, aiohttp
+, aresponses
+, asynctest
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytest-cov
+, pytestCheckHook
+, python-engineio
+, python-socketio
+, pythonOlder
+, pytz
+, voluptuous
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "simplisafe-python";
+  version = "9.6.9";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = pname;
+    rev = version;
+    sha256 = "1q5w5pvrgj94bzd5wig79l4hipkfrcdah54rvwyi7b8q46gw77sg";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    python-engineio
+    python-socketio
+    pytz
+    voluptuous
+    websockets
+  ];
+
+  checkInputs = [
+    aresponses
+    asynctest
+    pytest-asyncio
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [ "examples/" ];
+
+  pythonImportsCheck = [ "simplipy" ];
+
+  meta = with lib; {
+    description = "Python library the SimpliSafe API";
+    homepage = "https://simplisafe-python.readthedocs.io/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix b/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix
index 958fc613f6f3..d973bc70bcdb 100644
--- a/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   };
 
   patches = [
-    # Fix for newer versions of scikit-learn. See: https://github.com/rsteca/sklearn-deap/pull/62
+    # Fix for scikit-learn v0.21.1. See: https://github.com/rsteca/sklearn-deap/pull/62
     (fetchpatch {
       url = "https://github.com/rsteca/sklearn-deap/commit/3ae62990fc87f36b59382e7c4db3c74cf99ec3bf.patch";
       sha256 = "1na6wf4v0dcmyz3pz8aiqkmv76d1iz3hi4iyfq9kfnycgzpv1kxk";
@@ -31,6 +31,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/rsteca/sklearn-deap";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ psyanticy ];
+    # broken by scikit-learn 0.24.1
+    broken = true;
   };
 }
 
diff --git a/nixpkgs/pkgs/development/python-modules/skorch/default.nix b/nixpkgs/pkgs/development/python-modules/skorch/default.nix
index bb41f61517fc..fd161ecd7531 100644
--- a/nixpkgs/pkgs/development/python-modules/skorch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/skorch/default.nix
@@ -26,10 +26,13 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ numpy pytorch scikitlearn scipy tabulate tqdm ];
   checkInputs = [ pytest pytestcov flaky pandas pytestCheckHook ];
 
-  # on CPU, these expect artifacts from previous GPU run
   disabledTests = [
+    # on CPU, these expect artifacts from previous GPU run
     "test_load_cuda_params_to_cpu"
+    # failing tests
     "test_pickle_load"
+    "test_grid_search_with_slds_"
+    "test_grid_search_with_dict_works"
   ];
 
   meta = with lib; {
@@ -38,5 +41,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/skorch-dev/skorch/blob/master/CHANGES.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bcdarwin ];
+    # TypeError: __init__() got an unexpected keyword argument 'iid'
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/skybellpy/default.nix b/nixpkgs/pkgs/development/python-modules/skybellpy/default.nix
new file mode 100644
index 000000000000..c94b03bcc667
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/skybellpy/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, colorlog
+, fetchFromGitHub
+, pytest-sugar
+, pytest-timeout
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "skybellpy";
+  version = "0.6.3";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "MisterWil";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ghvm0pcdyhq6xfjc2dkldd701x77w07077sx09xsk6q2milmvzz";
+  };
+
+  propagatedBuildInputs = [
+    colorlog
+    requests
+  ];
+
+  checkInputs = [
+    pytest-sugar
+    pytest-timeout
+    pytestCheckHook
+    requests-mock
+  ];
+
+  pythonImportsCheck = [ "skybellpy" ];
+
+  meta = with lib; {
+    description = "Python wrapper for the Skybell alarm API";
+    homepage = "https://github.com/MisterWil/skybellpy";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/slack-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/slack-sdk/default.nix
new file mode 100644
index 000000000000..195bd720615c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/slack-sdk/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, aiodns
+, aiohttp
+, boto3
+, buildPythonPackage
+, codecov
+, databases
+, fetchFromGitHub
+, flake8
+, flask-sockets
+, isPy3k
+, psutil
+, pytest-asyncio
+, pytest-cov
+, pytestCheckHook
+, pytestrunner
+, sqlalchemy
+, websocket_client
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "slack-sdk";
+  version = "3.4.2";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "slackapi";
+    repo = "python-slack-sdk";
+    rev = "v${version}";
+    sha256 = "sha256-AbQqe6hCy6Ke5lwKHFWLJlXv7HdDApYYK++SPNQ2Nxg=";
+  };
+
+  propagatedBuildInputs = [
+    aiodns
+    aiohttp
+    boto3
+    sqlalchemy
+    websocket_client
+    websockets
+  ];
+
+  checkInputs = [
+    codecov
+    databases
+    flake8
+    flask-sockets
+    psutil
+    pytest-asyncio
+    pytest-cov
+    pytestCheckHook
+    pytestrunner
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # Exclude tests that requires network features
+  pytestFlagsArray = [ "--ignore=integration_tests" ];
+  disabledTests = [
+    "test_start_raises_an_error_if_rtm_ws_url_is_not_returned"
+    "test_org_installation"
+  ];
+
+  pythonImportsCheck = [ "slack_sdk" ];
+
+  meta = with lib; {
+    description = "Slack Developer Kit for Python";
+    homepage = "https://slack.dev/python-slack-sdk/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/slackclient/default.nix b/nixpkgs/pkgs/development/python-modules/slackclient/default.nix
index d990295bff61..4a3c29272186 100644
--- a/nixpkgs/pkgs/development/python-modules/slackclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slackclient/default.nix
@@ -1,15 +1,15 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
 , aiohttp
-, black
+, buildPythonPackage
 , codecov
+, fetchFromGitHub
 , flake8
 , isPy3k
 , mock
+, psutil
+, pytest-cov
 , pytest-mock
 , pytestCheckHook
-, pytestcov
 , pytestrunner
 , requests
 , responses
@@ -19,15 +19,15 @@
 
 buildPythonPackage rec {
   pname = "python-slackclient";
-  version = "2.5.0";
+  version = "2.9.3";
 
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
-    owner  = "slackapi";
-    repo   = pname;
-    rev    = version;
-    sha256 = "1ngj1mivbln19546195k400w9yaw69g0w6is7c75rqwyxr8wgzsk";
+    owner = "slackapi";
+    repo = "python-slack-sdk";
+    rev = "v${version}";
+    sha256 = "1rfb7izgddv28ag37gdnv3sd8z2zysrxs7ad8x20x690zshpaq16";
   };
 
   propagatedBuildInputs = [
@@ -38,17 +38,21 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    black
     codecov
     flake8
     mock
+    psutil
+    pytest-cov
     pytest-mock
     pytestCheckHook
-    pytestcov
     pytestrunner
     responses
   ];
 
+  # Exclude tests that requires network features
+  pytestFlagsArray = [ "--ignore=integration_tests" ];
+  disabledTests = [ "test_start_raises_an_error_if_rtm_ws_url_is_not_returned" ];
+
   pythonImportsCheck = [ "slack" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/slicedimage/default.nix b/nixpkgs/pkgs/development/python-modules/slicedimage/default.nix
index 08bdc183186c..506fad5db48d 100644
--- a/nixpkgs/pkgs/development/python-modules/slicedimage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slicedimage/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , boto3
 , diskcache
 , enum34
@@ -10,7 +10,7 @@
 , requests
 , scikitimage
 , six
-, pytest
+, pytestCheckHook
 , isPy27
 , tifffile
 }:
@@ -19,9 +19,11 @@ buildPythonPackage rec {
   pname = "slicedimage";
   version = "4.1.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "7369f1d7fa09f6c9969625c4b76a8a63d2507a94c6fc257183da1c10261703e9";
+  src = fetchFromGitHub {
+    owner = "spacetx";
+    repo = pname;
+    rev = version;
+    sha256 = "1vpg8varvfx0nj6xscdfm7m118hzsfz7qfzn28r9rsfvrhr0dlcw";
   };
 
   propagatedBuildInputs = [
@@ -36,13 +38,13 @@ buildPythonPackage rec {
   ] ++ lib.optionals isPy27 [ pathlib enum34 ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  # ignore tests which require setup
-  checkPhase = ''
-    pytest --ignore tests/io_
-  '';
+  # Ignore tests which require setup, check again if disabledTestFiles can be used
+  pytestFlagsArray = [ "--ignore tests/io_" ];
+
+  pythonImportsCheck = [ "slicedimage" ];
 
   meta = with lib; {
     description = "Library to access sliced imaging data";
diff --git a/nixpkgs/pkgs/development/python-modules/slicer/default.nix b/nixpkgs/pkgs/development/python-modules/slicer/default.nix
index 83f3e412ddcf..f8329dbab479 100644
--- a/nixpkgs/pkgs/development/python-modules/slicer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slicer/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "slicer";
-  version = "0.0.5";
+  version = "0.0.7";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c0fe9845056207d7344d5850e93551f9be20656178d443332aa02da9c71ba44";
+    sha256 = "f5d5f7b45f98d155b9c0ba6554fa9770c6b26d5793a3e77a1030fb56910ebeec";
   };
 
   checkInputs = [ pytestCheckHook pandas pytorch ];
diff --git a/nixpkgs/pkgs/development/python-modules/slixmpp/default.nix b/nixpkgs/pkgs/development/python-modules/slixmpp/default.nix
index 341f53cfe0b5..f648905251e2 100644
--- a/nixpkgs/pkgs/development/python-modules/slixmpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slixmpp/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
 
   # Exclude live tests
-  disabledTestFiles = [ "tests/live_test.py" ];
+  disabledTestPaths = [ "tests/live_test.py" ];
 
   pythonImportsCheck = [ "slixmpp" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/smart_open/default.nix b/nixpkgs/pkgs/development/python-modules/smart_open/default.nix
index 3a1c890f0481..99c9c28a16a8 100644
--- a/nixpkgs/pkgs/development/python-modules/smart_open/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smart_open/default.nix
@@ -13,19 +13,14 @@
 
 buildPythonPackage rec {
   pname = "smart_open";
-  version = "4.1.0";
+  version = "4.1.2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26af5c1a3f2b76aab8c3200310f0fc783790ec5a231ffeec102e620acdd6262e";
+    sha256 = "4bbb6233364fc1173cc0af6b7a56ed76fce32509514f1978a995a5835f3177f1";
   };
 
-  # nixpkgs version of moto is >=1.2.0, remove version pin to fix build
-  postPatch = ''
-    substituteInPlace ./setup.py --replace "moto==0.4.31" "moto"
-  '';
-
   # moto>=1.0.0 is backwards-incompatible and some tests fail with it,
   # so disable tests for now
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/smartypants/default.nix b/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
index d1e11e30d619..ec41c8a32aa1 100644
--- a/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchhg
+, fetchFromGitHub
 , isPyPy
 }:
 
@@ -9,15 +9,21 @@ buildPythonPackage rec {
   pname = "smartypants";
   disabled = isPyPy;
 
-  src = fetchhg {
-    url = "https://bitbucket.org/livibetter/smartypants.py";
+  src = fetchFromGitHub {
+    owner = "leohemsted";
+    repo = "smartypants.py";
     rev = "v${version}";
     sha256 = "1cmzz44d2hm6y8jj2xcq1wfr26760gi7iq92ha8xbhb1axzd7nq6";
+    # remove this file and the name on the next version update
+    extraPostFetch = ''
+      cp ${./hgtags} "$out"/.hgtags
+    '';
+    name = "hg-archive";
   };
 
   meta = with lib; {
     description = "Python with the SmartyPants";
-    homepage = "https://bitbucket.org/livibetter/smartypants.py";
+    homepage = "https://github.com/leohemsted/smartypants.py";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/smartypants/hgtags b/nixpkgs/pkgs/development/python-modules/smartypants/hgtags
new file mode 100644
index 000000000000..522ca8d2c017
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/smartypants/hgtags
@@ -0,0 +1,17 @@
+47e996532eff9d3bb2c7048aca37d5fd1028e706 v1.5_1.2
+4ff48eba1d3d37d708005e465cf701b63eb68fd3 v1.5_1.1
+6ba7f3a14ff77e4e9bf9918413b1710c33deae4d v1.5_1.3.1
+71006a014216defb21e4db6e03434d289564ea60 v1.5_1.6
+90950ff693122f80710974abc0f2be64d4105e84 v1.5_1.3
+a6ecae6541d64f5b12c7b788c65362b0c012278d v1.5_1.0
+eed4a8a16f116f98e8280dc79128845020bbe766 v1.5_1.5
+f9a62f541f19ead9be4c3be896b64d1caa0b524c v1.5_1.4
+fc0bee49a07daf05f034560cfef81a8a8d034d1f v1.5_1.7
+096ed5f806b6dbc473fae1848643cf45005b9bf1 v1.7.0
+aaeb8099a24ad7db3f36ebe71ef326d6377730aa v1.7.1
+fd8ccc937af7280db4e581b2eb1354245f4672ab v1.8.0
+7839b0eab3e9daf5b346edfa5c54f3cc46fc202a v1.8.1
+6140b78317beabb6e49cd91b35a779ccb0af7327 v1.8.2
+c3b1c83c5ddada685b421b8f82f7e92c794bf2f6 v1.8.3
+460c1add9b9f89831e1ab965f1e1c31325f6e72d v1.8.4
+78165f4976299c37d6e3dd5463adcd61f9cb2b75 v1.8.5
diff --git a/nixpkgs/pkgs/development/python-modules/smdebug-rulesconfig/default.nix b/nixpkgs/pkgs/development/python-modules/smdebug-rulesconfig/default.nix
new file mode 100644
index 000000000000..864a395cc88c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/smdebug-rulesconfig/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "smdebug-rulesconfig";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "smdebug_rulesconfig";
+    sha256 = "1mpwjfvpmryqqwlbyf500584jclgm3vnxa740yyfzkvb5vmyc6bs";
+  };
+
+  doCheck = false;
+
+  pythonImportsCheck = [ "smdebug_rulesconfig" ];
+
+  meta = with lib; {
+    description = "These builtin rules are available in Amazon SageMaker";
+    homepage = "https://github.com/awslabs/sagemaker-debugger-rulesconfig";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nequissimus ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/smmap/default.nix b/nixpkgs/pkgs/development/python-modules/smmap/default.nix
index 04b86ad5f6f7..1b0f310f4251 100644
--- a/nixpkgs/pkgs/development/python-modules/smmap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smmap/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "smmap";
-  version = "3.0.4";
+  version = "3.0.5";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9c98bbd1f9786d22f14b3d4126894d56befb835ec90cef151af566c7e19b5d24";
+    sha256 = "84c2751ef3072d4f6b2785ec7ee40244c6f45eb934d9e543e2c51f1bd3d54c50";
   };
 
   checkInputs = [ nosexcover ];
diff --git a/nixpkgs/pkgs/development/python-modules/snapcast/default.nix b/nixpkgs/pkgs/development/python-modules/snapcast/default.nix
index c5df9f7d991d..702b0e3e365e 100644
--- a/nixpkgs/pkgs/development/python-modules/snapcast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snapcast/default.nix
@@ -1,23 +1,25 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, pytest
-, construct }:
+{ lib
+, buildPythonPackage
+, construct
+, fetchPypi
+, isPy3k
+}:
 
 buildPythonPackage rec {
   pname = "snapcast";
-  version = "2.1.1";
-
+  version = "2.1.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c3ecd63d997fbcf6e5322dc47c1f02615f1d9611cba01ec18e9c9f8c14ed824b";
+    sha256 = "sha256-ILBleqxEO7wTxAw/fvDW+4O4H4XWV5m5WWtaNeRBr4g=";
   };
 
-  checkInputs = [ pytest ];
-
   propagatedBuildInputs = [ construct ];
 
   # no checks from Pypi - https://github.com/happyleavesaoc/python-snapcast/issues/23
   doCheck = false;
+  pythonImportsCheck = [ "snapcast" ];
 
   meta = with lib; {
     description = "Control Snapcast, a multi-room synchronous audio solution";
diff --git a/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix b/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 96f489ec6ed9..0679b25ad417 100644
--- a/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -25,14 +25,20 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "2.3.8";
+  version = "2.3.10";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zsS5+0UGDwZM65MILfgAvZ67AbXGcLsVmGacgoxX530=";
+    sha256 = "ad62bfd31e677d39984449d9c68e233da2776b80894a988a2421aad412e4c44f";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pyOpenSSL>=16.2.0,<20.0.0'," "'pyOpenSSL'," \
+      --replace 'pytz<2021.0' 'pytz'
+  '';
+
   propagatedBuildInputs = [
     azure-storage-blob
     asn1crypto
@@ -55,15 +61,6 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "'boto3>=1.4.4,<1.16'," "'boto3~=1.16'," \
-      --replace "'cryptography>=2.5.0,<3.0.0'," "'cryptography'," \
-      --replace "'pyOpenSSL>=16.2.0,<20.0.0'," "'pyOpenSSL'," \
-      --replace "'idna<2.10'," "'idna'," \
-      --replace "'requests<2.24.0'," "'requests',"
-  '';
-
   # tests require encrypted secrets, see
   # https://github.com/snowflakedb/snowflake-connector-python/tree/master/.github/workflows/parameters
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
index bccca3ee6b67..9ec17443dd81 100644
--- a/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
@@ -27,5 +27,6 @@ buildPythonPackage rec {
     description = "Snowflake SQLAlchemy Dialect";
     homepage = "https://www.snowflake.net/";
     license = licenses.asl20;
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/soco/default.nix b/nixpkgs/pkgs/development/python-modules/soco/default.nix
index e203dc1c7aa5..a72c413c1860 100644
--- a/nixpkgs/pkgs/development/python-modules/soco/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/soco/default.nix
@@ -1,12 +1,15 @@
 { buildPythonPackage
-, coveralls
 , fetchFromGitHub
-, flake8
+, fetchpatch
 , graphviz
+, ifaddr
+, isPy27
 , lib
 , mock
+, nix-update-script
 , pytestCheckHook
 , requests
+, requests-mock
 , sphinx
 , sphinx_rtd_theme
 , toml
@@ -15,7 +18,8 @@
 
 buildPythonPackage rec {
   pname = "soco";
-  version = "0.20";
+  version = "0.21.2";
+  disabled = isPy27;
 
   # N.B. We fetch from GitHub because the PyPI tarball doesn't contain the
   # required files to run the tests.
@@ -23,34 +27,48 @@ buildPythonPackage rec {
     owner = "SoCo";
     repo = "SoCo";
     rev = "v${version}";
-    sha256 = "0p87aw7wxgdjz0m0nqqcfvbn24hlbq1hh1zxdq2c0k2jcbmaj8zc";
+    sha256 = "sha256-CCgkzUkt9YqTJt9tPBLmYXW6ZuRoMDd7xahYmNXgfM0=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/SoCo/SoCo/pull/811.patch";
+      sha256 = "sha256-GBd74c8zc25ROO411SZ9TTa+bi8yXJaaOQqY9FM1qj4=";
+    })
+  ];
+
   # N.B. These exist because:
   # 1. Upstream's pinning isn't well maintained, leaving dependency versions no
   #    longer in nixpkgs.
   # 2. There is no benefit for us to be running linting and coverage tests.
   postPatch = ''
     sed -i "/black/d" ./requirements-dev.txt
+    sed -i "/coveralls/d" ./requirements-dev.txt
+    sed -i "/flake8/d" ./requirements-dev.txt
     sed -i "/pylint/d" ./requirements-dev.txt
     sed -i "/pytest-cov/d" ./requirements-dev.txt
   '';
 
   propagatedBuildInputs = [
+    ifaddr
     requests
     toml
     xmltodict
   ];
+
   checkInputs = [
     pytestCheckHook
-    coveralls
-    flake8
     graphviz
     mock
+    requests-mock
     sphinx
     sphinx_rtd_theme
   ];
 
+  passthru.updateScript = nix-update-script {
+    attrPath = "python3Packages.${pname}";
+  };
+
   meta = with lib; {
     homepage = "http://python-soco.com/";
     description = "A CLI and library to control Sonos speakers";
diff --git a/nixpkgs/pkgs/development/python-modules/solaredge/default.nix b/nixpkgs/pkgs/development/python-modules/solaredge/default.nix
new file mode 100644
index 000000000000..f593ff501620
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/solaredge/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python-dateutil
+, pythonOlder
+, pytz
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "solaredge";
+  version = "0.0.4";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0q4gib0l3qnlpncg84ki027vr1apjlr47vd6845rpk7zkm8lqgfz";
+  };
+
+  propagatedBuildInputs = [
+    python-dateutil
+    pytz
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "solaredge" ];
+
+  meta = with lib; {
+    description = "Python wrapper for Solaredge monitoring service";
+    homepage = "https://github.com/bertouttier/solaredge";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/solax/default.nix b/nixpkgs/pkgs/development/python-modules/solax/default.nix
index bce0bc74f912..a5ca45627164 100644
--- a/nixpkgs/pkgs/development/python-modules/solax/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/solax/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "solax";
-  version = "0.2.5";
+  version = "0.2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0h7q6y2cdkj9dqxw0k7pgz7a7vbpq1qw50pmy9rajphhv2600cbc";
+    sha256 = "sha256-3WhJBBnIl6C0AdEsmSX3ZEVDThzCBguS4UUri80ifGg=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/solo-python/default.nix b/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
index 0ce6e338e61f..8d84ce34eb95 100644
--- a/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
@@ -1,9 +1,20 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, click, ecdsa, fido2, intelhex, pyserial, pyusb, requests}:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, click
+, cryptography
+, ecdsa
+, fido2
+, intelhex
+, pyserial
+, pyusb
+, requests
+}:
 
  buildPythonPackage rec {
   pname = "solo-python";
-  version = "0.0.26";
+  version = "0.0.27";
   format = "flit";
   disabled = pythonOlder "3.6"; # only python>=3.6 is supported
 
@@ -11,7 +22,7 @@
     owner = "solokeys";
     repo = pname;
     rev = version;
-    sha256 = "05rwqrhr1as6zqhg63d6wga7l42jm2azbav5w6ih8mx5zbxf61yz";
+    sha256 = "sha256-OCiKa6mnqJGoNCC4KqI+hMw22tzhdN63x9/KujNJqcE=";
   };
 
   # replaced pinned fido, with unrestricted fido version
@@ -21,6 +32,7 @@
 
   propagatedBuildInputs = [
     click
+    cryptography
     ecdsa
     fido2
     intelhex
@@ -48,5 +60,8 @@
     homepage = "https://github.com/solokeys/solo-python";
     maintainers = with maintainers; [ wucke13 ];
     license = with licenses; [ asl20 mit ];
+    # solo-python v0.0.27 does not support fido2 >= v0.9
+    # https://github.com/solokeys/solo-python/issues/110
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/somajo/default.nix b/nixpkgs/pkgs/development/python-modules/somajo/default.nix
index 54cd9beede3d..1f639d4f2b17 100644
--- a/nixpkgs/pkgs/development/python-modules/somajo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/somajo/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "SoMaJo";
-  version = "2.1.2";
+  version = "2.1.3";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tsproisl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c4g8nhlcc348w0axdswv69q8k3qxwbnvim1yf7vagd0adv83gsj";
+    sha256 = "07jkkg5ph5m47xf8w5asy5930qcpy6p11j0admll2y6yjynd2b47";
   };
 
   propagatedBuildInputs = [ regex ];
diff --git a/nixpkgs/pkgs/development/python-modules/sopel/default.nix b/nixpkgs/pkgs/development/python-modules/sopel/default.nix
index 7b549933588b..b7569efadf5d 100644
--- a/nixpkgs/pkgs/development/python-modules/sopel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sopel/default.nix
@@ -6,7 +6,6 @@
 , pyenchant
 , pygeoip
 , pytestCheckHook
-, python
 , pytz
 , sqlalchemy
 , xmltodict
@@ -52,6 +51,8 @@ buildPythonPackage rec {
     popd
   '';
 
+  pythonImportsCheck = [ "sopel" ];
+
   meta = with lib; {
     description = "Simple and extensible IRC bot";
     homepage = "http://sopel.chat";
diff --git a/nixpkgs/pkgs/development/python-modules/spglib/default.nix b/nixpkgs/pkgs/development/python-modules/spglib/default.nix
index 88da35a0f972..a050aadb4b20 100644
--- a/nixpkgs/pkgs/development/python-modules/spglib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spglib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "spglib";
-  version = "1.16.0";
+  version = "1.16.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "94d056e48e7e6fe2e6fe4161471e774ac03221a6225fd83d551d3184220c1edf";
+    sha256 = "9fd2fefbd83993b135877a69c498d8ddcf20a9980562b65b800cfb4cdadad003";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix
index 958c1a6b19c5..94047b359aa9 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix
@@ -1,5 +1,4 @@
 { lib
-, stdenv
 , buildPythonPackage
 , fetchPypi
 , sphinx
@@ -25,6 +24,6 @@ buildPythonPackage rec {
     description = "Rebuild Sphinx documentation on changes, with live-reload in the browser";
     homepage = "https://github.com/executablebooks/sphinx-autobuild";
     license = with licenses; [ mit ];
-    maintainer = with maintainers; [holgerpeters];
+    maintainers = with maintainers; [holgerpeters];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-navtree/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-navtree/default.nix
index 02e5711e888f..ae56a9fdce11 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-navtree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-navtree/default.nix
@@ -14,5 +14,7 @@ buildPythonPackage rec {
     description = "Navigation tree customization for Sphinx";
     homepage = "https://github.com/bintoro/sphinx-navtree";
     license = lib.licenses.mit;
+    # not compatible with sphinx 3.3, not updated since 2016
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
index e4a3c94711fa..9ce0015cdf86 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
@@ -28,6 +28,7 @@
 , sphinxcontrib-websupport
 , typing
 , setuptools
+, packaging
 }:
 
 buildPythonPackage rec {
@@ -52,6 +53,7 @@ buildPythonPackage rec {
     pygments
     alabaster
     Babel
+    packaging
     setuptools
     snowballstemmer
     six
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
index 931af4b4dde2..51d9824f639c 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
@@ -9,14 +9,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.1.4";
+  version = "2.2.0";
   pname = "sphinxcontrib-bibtex";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f53ec0cd534d2c8f0a51b4b3473ced46e9cb0dd99a7c5019249fe0ef9cbef18e";
+    sha256 = "sha256-dQCEPhVNdpg8I7ylynOAll4HJcRrj0hMEyLQtYps47I=";
   };
 
   propagatedBuildInputs = [ oset pybtex pybtex-docutils sphinx ];
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
index 6b03c245ebb7..facd37e9c325 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-tikz";
-  version = "0.4.9";
+  version = "0.4.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "054429a04ed253256a676ecc29f0bae2c644d5bd1150cd95d658990a07ebc8fe";
+    sha256 = "5c5194055d3219e2ed8d02b52b664d399674154f3db9724ae09e881d091b3d10";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/spotipy/default.nix b/nixpkgs/pkgs/development/python-modules/spotipy/default.nix
index 63ec4abcac42..6f29db2581b6 100644
--- a/nixpkgs/pkgs/development/python-modules/spotipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spotipy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "spotipy";
-  version = "2.16.1";
+  version = "2.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f50xczv8kgly6wz6zrvqzwdj6nvhdlgx8wnrhmbipjrb6qacr25";
+    sha256 = "sha256-KcYMi5naHEufDXIhabwx5iS4wH1xhrjq3ZwC6NLULL8=";
   };
 
   propagatedBuildInputs = [ requests six ];
diff --git a/nixpkgs/pkgs/development/python-modules/spyder-kernels/0.x.nix b/nixpkgs/pkgs/development/python-modules/spyder-kernels/0.x.nix
index a760033c915a..43a2f5b460f6 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder-kernels/0.x.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder-kernels/0.x.nix
@@ -60,6 +60,7 @@ buildPythonPackage rec {
     "test_turtle_launc"
     "test_umr_skip_cython"
     "test_umr_pathlist"
+    "test_user_sitepackages_in_pathlist"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix b/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
index 9533db6e4a73..614f64a0fbe1 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "spyder-kernels";
-  version = "1.10.0";
+  version = "1.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "588602b9f44961f4011a9ec83fe85f5d621126eee64835e407a7d41c54dccc74";
+    sha256 = "416534d7504c0f337e6e6e2cbd893d1866ad20d3bec99a94ad617d2fd60699ae";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/spyder/3.nix b/nixpkgs/pkgs/development/python-modules/spyder/3.nix
index 0fb98fa38e3d..2618ccfcd8c5 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder/3.nix
@@ -31,6 +31,8 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "pyqt5<5.13" "pyqt5"
   '';
 
+  pythonImportsCheck = [ "spyder" ];
+
   meta = with lib; {
     description = "Library providing a scientific python development environment";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/spyder/default.nix b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
index c41ef74c5b16..dd65079e6a13 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "4.2.0";
+  version = "4.2.1";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "44f51473b81c1bfde76097bfb957ec14f580a262b229ae8e90d18f5b82104c95";
+    sha256 = "7f93bc5b8b119cc1e195ce3efcc1598386e082c4096334c1fa2b018938ac79b9";
   };
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
index 83fd3e7b10b3..6f5fb5578665 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -1,23 +1,35 @@
-{ stdenv, lib, fetchPypi, buildPythonPackage, isPy3k, isPy35
+{ stdenv, lib, fetchPypi, buildPythonPackage, isPy3k, isPy35, fetchpatch
 , mock
 , pysqlite
 , pytestCheckHook
+, pytest_xdist
 }:
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "1.3.20";
+  version = "1.3.23";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d2f25c7f410338d31666d7ddedfa67570900e248b940d186b48461bd4e5569a1";
+    sha256 = "6fca33672578666f657c131552c4ef8979c1606e494f78cd5199742dfb26918b";
   };
 
+  patches = [
+    # fix test_pyodbc_extra_connect_azure test failure
+    (fetchpatch {
+      url = "https://github.com/sqlalchemy/sqlalchemy/commit/7293b3dc0e9eb3dae84ffd831494b85355df8e73.patch";
+      sha256 = "1z61lzxamz74771ddlqmbxba1dcr77f016vqfcmb44dxb228w2db";
+    })
+  ];
+
   checkInputs = [
     pytestCheckHook
+    pytest_xdist
     mock
   ] ++ lib.optional (!isPy3k) pysqlite;
 
+  pytestFlagsArray = [ "-n auto" ];
+
   postInstall = ''
     sed -e 's:--max-worker-restart=5::g' -i setup.cfg
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix b/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
index 1c49e1f4a026..a6dd6e41dc57 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "sqlite-utils";
-  version = "3.4.1";
+  version = "3.6";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-LJuvUTbsL2anQENEuW1oaSUsMEiXnSgLEAhZ6EP5bNs=";
+    sha256 = "sha256-WCqbz0tssy7i76Sg2PeexjDollypPGnOqqfUJOHAFWA=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix b/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix
index 940dbdab9894..065228eca218 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix
@@ -1,17 +1,17 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, stdenv
 , file
+, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "sqlmap";
-  version = "1.4.12";
+  version = "1.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "166adazdrv92azx4p0qng0cm3va6i301vfsr4yyf0azj3sdg0waj";
+    sha256 = "sha256-b2Q5Zelz0AWbNQotOLWdwN5+20Q5jATH3nzLEJQRwno=";
   };
 
   postPatch = ''
@@ -29,9 +29,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sqlmap" ];
 
   meta = with lib; {
-    homepage = "http://sqlmap.org";
-    license = licenses.gpl2;
     description = "Automatic SQL injection and database takeover tool";
+    homepage = "http://sqlmap.org";
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ bennofs ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/srp/default.nix b/nixpkgs/pkgs/development/python-modules/srp/default.nix
index c0d3a0a4aedc..31f77b0ee080 100644
--- a/nixpkgs/pkgs/development/python-modules/srp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/srp/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "srp";
-  version = "1.0.16";
+  version = "1.0.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c943b7181322a2bdd50d20e1244536c404916e546131dc1fae10a7cb99a013e9";
+    sha256 = "f2e3fed4e5cbfd6b481edc9cdd51a8c39a609eae117210218556004bdc9016b2";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/starlette/default.nix b/nixpkgs/pkgs/development/python-modules/starlette/default.nix
index 94513e5d620c..694b678930b2 100644
--- a/nixpkgs/pkgs/development/python-modules/starlette/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/starlette/default.nix
@@ -10,7 +10,6 @@
 , python-multipart
 , pyyaml
 , requests
-, ujson
 , aiosqlite
 , databases
 , pytestCheckHook
@@ -21,16 +20,21 @@
 
 buildPythonPackage rec {
   pname = "starlette";
-  version = "0.13.8";
+  version = "0.14.2";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "11i0yd8cqwscixajl734g11vf8pghki11c81chzfh8ifmj6mf9jk";
+    sha256 = "0fz28czvwiww693ig9vwdja59xxs7m0yp1df32ms1hzr99666bia";
   };
 
+  postPatch = ''
+    # remove coverage arguments to pytest
+    sed -i '/--cov/d' setup.cfg
+  '';
+
   propagatedBuildInputs = [
     aiofiles
     graphene
@@ -39,7 +43,6 @@ buildPythonPackage rec {
     python-multipart
     pyyaml
     requests
-    ujson
   ] ++ lib.optional stdenv.isDarwin [ ApplicationServices ];
 
   checkInputs = [
@@ -50,9 +53,10 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  disabledTestFiles = [ "tests/test_graphql.py" ];
-  # https://github.com/encode/starlette/issues/1131
-  disabledTests = [ "test_debug_html" ];
+  # fails to import graphql, but integrated graphql support is about to
+  # be removed in 0.15, see https://github.com/encode/starlette/pull/1135.
+  disabledTestPaths = [ "tests/test_graphql.py" ];
+
   pythonImportsCheck = [ "starlette" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix b/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix
index f538cdf0c04b..9aebe88b7923 100644
--- a/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "statsmodels";
-  version = "0.12.1";
+  version = "0.12.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a271b4ccec190148dccda25f0cbdcbf871f408fc1394a10a7dc1af4a62b91c8e";
+    sha256 = "8ad7a7ae7cdd929095684118e3b05836c0ccb08b6a01fe984159475d174a1b10";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/nixpkgs/pkgs/development/python-modules/streamz/default.nix b/nixpkgs/pkgs/development/python-modules/streamz/default.nix
index d17aed6ae43a..62e71bd2fd1c 100644
--- a/nixpkgs/pkgs/development/python-modules/streamz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/streamz/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, fetchpatch
+{ lib, buildPythonPackage, fetchPypi
 , confluent-kafka
 , distributed
 , flaky
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "streamz";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "215703456479d24f524cdcd0365006250d4502d242f57e2f5db18e8638bc8694";
+    sha256 = "04446ece273c041506b1642bd3d8380367a8372196be4d6d6d03faafadc590b2";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix b/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix
index 8f383b60b175..ddc497a64ab6 100644
--- a/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.3.0";
+  version = "1.3.2";
   pname = "strictyaml";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f640ae4e6fe761c3ae7138092c3dcb9b5050ec56e9cbac45d8a6b549d7ec973c";
+    sha256 = "637399fd80dccc95f5287b2606b74098b23c08031b7ec33c5afb314ccbf10948";
   };
 
   propagatedBuildInputs = [ ruamel_yaml python-dateutil ];
diff --git a/nixpkgs/pkgs/development/python-modules/stripe/default.nix b/nixpkgs/pkgs/development/python-modules/stripe/default.nix
index b205f48cb6f9..96ac2d208b3d 100644
--- a/nixpkgs/pkgs/development/python-modules/stripe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stripe/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "2.55.0";
+  version = "2.55.2";
 
   # Tests require network connectivity and there's no easy way to disable
   # them. ~ C.
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2eebf023595e8aa9d65d8b46ccc3c716185bb9625d0e39d3956282fd7525848d";
+    sha256 = "e32c68194a47522a10945eb893218e5cb5ee65e3a3c2c4df7efca117a6bf1902";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/stytra/default.nix b/nixpkgs/pkgs/development/python-modules/stytra/default.nix
index 88adbe4f7d94..80eefc0a639e 100644
--- a/nixpkgs/pkgs/development/python-modules/stytra/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stytra/default.nix
@@ -1,4 +1,4 @@
-{ lib, pkgs, buildPythonPackage, fetchPypi, isPy3k, callPackage
+{ lib, buildPythonPackage, fetchPypi, isPy3k
 , opencv3
 , pyqt5
 , pyqtgraph
@@ -19,7 +19,7 @@
 , imageio-ffmpeg
 , av
 , nose
-, pytest
+, pytestCheckHook
 , pyserial
 , arrayqueues
 , colorspacious
@@ -37,14 +37,18 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "aab9d07575ef599a9c0ae505656e3c03ec753462df3c15742f1f768f2b578f0a";
   };
-  doCheck = false;
+
+  # crashes python
+  preCheck = ''
+    rm stytra/tests/test_z_experiments.py
+  '';
+
   checkInputs = [
     nose
-    pytest
+    pytestCheckHook
     pyserial
   ];
 
-
   propagatedBuildInputs = [
     opencv3
     pyqt5
diff --git a/nixpkgs/pkgs/development/python-modules/subarulink/default.nix b/nixpkgs/pkgs/development/python-modules/subarulink/default.nix
index 5b6362b76a14..6ed265f65615 100644
--- a/nixpkgs/pkgs/development/python-modules/subarulink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/subarulink/default.nix
@@ -1,38 +1,49 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
 , aiohttp
 , asynctest
-, stdiomask
+, buildPythonPackage
 , cryptography
-, pytestcov
+, fetchFromGitHub
 , pytest-asyncio
 , pytestCheckHook
+, pythonOlder
+, stdiomask
 }:
 
 buildPythonPackage rec {
   pname = "subarulink";
-  version = "0.3.11";
+  version = "0.3.13";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "G-Two";
     repo = pname;
     rev = "subaru-v${version}";
-    sha256 = "1ink9bhph6blidnfsqwq01grhp7ghacmkd4vzgb9hnhl9l52s1jq";
+    sha256 = "0dqbb1iiil1vn97zxnpphn63bl8z0ibgyca90ynx958cy78kys0g";
   };
 
-  propagatedBuildInputs = [ aiohttp stdiomask ];
+  propagatedBuildInputs = [
+    aiohttp
+    stdiomask
+  ];
 
   checkInputs = [
     asynctest
     cryptography
     pytest-asyncio
-    pytestcov
     pytestCheckHook
   ];
 
+  postPatch = ''
+    substituteInPlace setup.cfg --replace "--cov=subarulink" ""
+  '';
+
   __darwinAllowLocalNetworking = true;
 
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   pythonImportsCheck = [ "subarulink" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/sunpy/default.nix b/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
index 6a455ce49ebe..48eb36d6e87d 100644
--- a/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
@@ -5,6 +5,7 @@
 , pythonOlder
 , asdf
 , astropy
+, setuptools-scm
 , astropy-helpers
 , astropy-extension-helpers
 , beautifulsoup4
@@ -29,15 +30,16 @@
 
 buildPythonPackage rec {
   pname = "sunpy";
-  version = "2.0.6";
+  version = "2.0.7";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "109flghca42yhsm2w5xicqhyx1mc8c3vlwvadbn65fz3lhysqj67";
+    sha256 = "d13ac67c14ea825652dc3e12c4c627e782e8e843e96a1d54440d39dd2ceb6a5c";
   };
 
   nativeBuildInputs = [
+    setuptools-scm
     astropy-extension-helpers
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/supervisor/default.nix b/nixpkgs/pkgs/development/python-modules/supervisor/default.nix
index 10c8f28e4463..93569fe3da73 100644
--- a/nixpkgs/pkgs/development/python-modules/supervisor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/supervisor/default.nix
@@ -1,6 +1,5 @@
 { stdenv, lib, buildPythonPackage, isPy3k, fetchPypi
 , mock
-, meld3
 , pytest
 , setuptools
 }:
@@ -22,7 +21,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  propagatedBuildInputs = [ meld3 setuptools ];
+  propagatedBuildInputs = [ setuptools ];
 
   meta = with lib; {
     description = "A system for controlling process state under UNIX";
diff --git a/nixpkgs/pkgs/development/python-modules/surepy/default.nix b/nixpkgs/pkgs/development/python-modules/surepy/default.nix
new file mode 100644
index 000000000000..dd071b5cf08f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/surepy/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, aiodns
+, aiohttp
+, async-timeout
+, brotlipy
+, buildPythonPackage
+, cchardet
+, click
+, colorama
+, fetchFromGitHub
+, halo
+, poetry-core
+, pythonOlder
+, requests
+, rich
+}:
+
+buildPythonPackage rec {
+  pname = "surepy";
+  version = "0.5.0";
+  format = "pyproject";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "benleb";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1adsnjya142bxdhfxqsi2qa35ylvdcibigs1wafjlxazlxs3mg0j";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    aiodns
+    aiohttp
+    async-timeout
+    brotlipy
+    cchardet
+    click
+    colorama
+    halo
+    requests
+    rich
+  ];
+
+  postPatch = ''
+    # halo is out-dated, https://github.com/benleb/surepy/pull/7
+    substituteInPlace pyproject.toml --replace "^0.0.30" "^0.0.31"
+  '';
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "surepy" ];
+
+  meta = with lib; {
+    description = "Python library to interact with the Sure Petcare API";
+    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 436127fae9c4..99a2d85aaa2b 100644
--- a/nixpkgs/pkgs/development/python-modules/survey/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/survey/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "survey";
-  version = "3.1.1";
+  version = "3.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-R/PfXW/CnqYiOWbCxPAYwneg6j6CLvdIpITZ2eIXn+M=";
+    sha256 = "sha256-aF7ZS5oxeIOb7mJsrusdc3HefcPE+3OTXcJB/pjJxFY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/swspotify/default.nix b/nixpkgs/pkgs/development/python-modules/swspotify/default.nix
index e213e9e265ef..020e4fe1472f 100644
--- a/nixpkgs/pkgs/development/python-modules/swspotify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/swspotify/default.nix
@@ -35,6 +35,6 @@ buildPythonPackage rec {
     description = "Library to get the currently playing song and artist from Spotify";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
-    platforms = lib.platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sybil/default.nix b/nixpkgs/pkgs/development/python-modules/sybil/default.nix
index 3bf6ed95ced1..d46fc14cdf67 100644
--- a/nixpkgs/pkgs/development/python-modules/sybil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sybil/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonApplication rec {
   pname = "sybil";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3e098ae96c4d3668cd5fb04c160334a4bc3ade9d29177e0206846b75f5ff3e91";
+    sha256 = "597d71e246690b9223c132f0ed7dcac470dcbe9ad022004a801e108a00dc3524";
   };
 
   checkInputs = [ pytest nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/tabulate/default.nix b/nixpkgs/pkgs/development/python-modules/tabulate/default.nix
index 4686d02486fc..2d841918f110 100644
--- a/nixpkgs/pkgs/development/python-modules/tabulate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tabulate/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.8.7";
+  version = "0.8.8";
   pname = "tabulate";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "db2723a20d04bcda8522165c73eea7c300eda74e0ce852d9022e0159d7895007";
+    sha256 = "26f2589d80d332fefd2371d396863dedeb806f51b54bdb4b264579270b621e92";
   };
 
   checkInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/tahoma-api/default.nix b/nixpkgs/pkgs/development/python-modules/tahoma-api/default.nix
new file mode 100644
index 000000000000..440218223117
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tahoma-api/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "tahoma-api";
+  version = "0.0.17";
+
+  src = fetchFromGitHub {
+    owner = "philklei";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-YwOKSBlN4lNyS+hfdbQDUq1gc14FBof463ofxtUVLC4=";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tahoma_api" ];
+
+  meta = with lib; {
+    description = "Python module to interface with Tahoma REST API";
+    homepage = "https://github.com/philklei/tahoma-api/";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tatsu/default.nix b/nixpkgs/pkgs/development/python-modules/tatsu/default.nix
index 540c315c8ff6..d5dfda53c08c 100644
--- a/nixpkgs/pkgs/development/python-modules/tatsu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tatsu/default.nix
@@ -1,37 +1,26 @@
 { lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, colorama, mypy, pyyaml, regex
-, dataclasses, typing
-, pytestrunner, pytest-mypy
+, colorama, regex
+, pytestrunner, pytestCheckHook, pytest-mypy
 }:
 
 buildPythonPackage rec {
-  pname = "TatSu";
-  version = "5.0.0";
+  pname = "tatsu";
+  version = "5.6.1";
 
   src = fetchFromGitHub {
     owner = "neogeny";
-    repo = pname;
+    repo = "TatSu";
     rev = "v${version}";
-    sha256 = "1c16fcxf0xjkh5py9bnj6ljb9krhrj57mkwayl1w1dvzwl5lkgj3";
+    sha256 = "149ra1lwax5m1svlv4dwjfqw00lc5vwyfj6zw2v0ammmfm1b94x9";
   };
 
-  # Since version 5.0.0 only >=3.8 is officially supported, but ics is not
-  # compatible with Python 3.8 due to aiohttp:
-  disabled = pythonOlder "3.7";
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "python_requires='>=3.8'," "python_requires='>=3.7',"
-  '';
+  disabled = pythonOlder "3.8";
 
   nativeBuildInputs = [ pytestrunner ];
-  propagatedBuildInputs = [ colorama mypy pyyaml regex ]
-    ++ lib.optionals (pythonOlder "3.7") [ dataclasses ]
-    ++ lib.optionals (pythonOlder "3.5") [ typing ];
-  checkInputs = [ pytest-mypy ];
+  propagatedBuildInputs = [ colorama regex ];
+  checkInputs = [ pytestCheckHook pytest-mypy ];
 
-  checkPhase = ''
-    pytest test/
-  '';
+  pythonImportsCheck = [ "tatsu" ];
 
   meta = with lib; {
     description = "Generates Python parsers from grammars in a variation of EBNF";
diff --git a/nixpkgs/pkgs/development/python-modules/tellduslive/default.nix b/nixpkgs/pkgs/development/python-modules/tellduslive/default.nix
new file mode 100644
index 000000000000..5a6a84af8392
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tellduslive/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, docopt
+, fetchFromGitHub
+, requests
+, requests_oauthlib
+}:
+
+buildPythonPackage rec {
+  pname = "tellduslive";
+  version = "0.10.11";
+
+  src = fetchFromGitHub {
+    owner = "molobrakos";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0aqhj6fq2z2qb4jyk23ygjicf5nlj8lkya7blkyqb7jra5k1gyg0";
+  };
+
+  propagatedBuildInputs = [
+    docopt
+    requests
+    requests_oauthlib
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tellduslive" ];
+
+  meta = with lib; {
+    description = "Python module to communicate with Telldus Live";
+    homepage = "https://github.com/molobrakos/tellduslive";
+    license = with licenses; [ unlicense ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/terminado/default.nix b/nixpkgs/pkgs/development/python-modules/terminado/default.nix
index 400751529ab6..0f02da4866f2 100644
--- a/nixpkgs/pkgs/development/python-modules/terminado/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/terminado/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "terminado";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3da72a155b807b01c9e8a5babd214e052a0a45a975751da3521a1c3381ce6d76";
+    sha256 = "89e6d94b19e4bc9dce0ffd908dfaf55cc78a9bf735934e915a4a96f65ac9704c";
   };
 
   propagatedBuildInputs = [ ptyprocess tornado ];
diff --git a/nixpkgs/pkgs/development/python-modules/termplotlib/default.nix b/nixpkgs/pkgs/development/python-modules/termplotlib/default.nix
new file mode 100644
index 000000000000..adccc99ac2fe
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/termplotlib/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, exdown
+, numpy
+, gnuplot
+}:
+
+buildPythonPackage rec {
+  pname = "termplotlib";
+  version = "0.3.4";
+
+  src = fetchFromGitHub {
+    owner = "nschloe";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "17d2727bz6kqhxczixx6nxzz4hzyi2cssylzazjimk07syvycd6n";
+  };
+
+  format = "pyproject";
+  checkInputs = [ pytestCheckHook numpy exdown gnuplot ];
+  pythonImportsCheck = [ "termplotlib" ];
+
+  # there seems to be a newline in the very front of the output
+  # which causes the test to fail, since it apparently doesn't
+  # strip whitespace. might be a gnuplot choice? sigh...
+  disabledTests = [ "test_plot_lim" ];
+
+  meta = with lib; {
+    description = "matplotlib for your terminal";
+    homepage = "https://github.com/nschloe/termplotlib";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix b/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
index 46c8a2853b54..59af2b33d2b9 100644
--- a/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -5,6 +5,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , fetchpatch
+, pytest-asyncio
 , pytestCheckHook
 , wrapt
 }:
@@ -35,15 +36,11 @@ buildPythonPackage rec {
     wrapt
   ];
 
-  checkInputs = [ pytestCheckHook ];
-
-  # Not all Home Assistant related check pass
-  # https://github.com/zabuldon/teslajsonpy/issues/121
-  # https://github.com/zabuldon/teslajsonpy/pull/124
-  disabledTests = [
-    "test_values_on_init"
-    "test_get_value_on_init"
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
   ];
+
   pythonImportsCheck = [ "teslajsonpy" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/textacy/default.nix b/nixpkgs/pkgs/development/python-modules/textacy/default.nix
index 616db71a94f4..31b02e3f2641 100644
--- a/nixpkgs/pkgs/development/python-modules/textacy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textacy/default.nix
@@ -51,6 +51,9 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
+    # scikit-learn in pythonPackages is too new for textacy
+    # remove as soon as textacy support scikit-learn >= 0.24
+    broken = true;
     description = "Higher-level text processing, built on spaCy";
     homepage = "https://textacy.readthedocs.io/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/thespian/default.nix b/nixpkgs/pkgs/development/python-modules/thespian/default.nix
index 74f94aaf2558..589ff573ca54 100644
--- a/nixpkgs/pkgs/development/python-modules/thespian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thespian/default.nix
@@ -1,13 +1,13 @@
 { fetchPypi, buildPythonPackage, lib }:
 
 buildPythonPackage rec {
-  version = "3.10.1";
+  version = "3.10.3";
   pname = "thespian";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e00bba5b0b91f9d7ec3df0ac671136df7a7be0a14dfea38ca3850488bca73d8c";
+    sha256 = "d9152089f239c80339eb0431b9561966a841fb3ab0d043b36fa47934fc7956f2";
   };
 
   # Do not run the test suite: it takes a long time and uses
diff --git a/nixpkgs/pkgs/development/python-modules/tiledb/default.nix b/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
index d5379b849ade..ddfa83e30f58 100644
--- a/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
@@ -81,6 +81,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/TileDB-Inc/TileDB-Py";
     license = licenses.mit;
     maintainers = with maintainers; [ fridh ];
+    # tiledb/core.cc:556:30: error: ‘struct std::array<long unsigned int, 2>’ has no member named ‘second’
+    broken = true;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tiros/default.nix b/nixpkgs/pkgs/development/python-modules/tiros/default.nix
deleted file mode 100644
index edc4bbdebb13..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tiros/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ fetchPypi, buildPythonPackage
-, semantic-version, boto3, flask, docutils, requests
-}:
-
-buildPythonPackage rec {
-  pname = "tiros";
-  version = "1.0.44";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "d6bf7410967554ec283f9d4eabc0ce6821d6e6d36001afbdb7fe0826423d4f37";
-  };
-
-  patchPhase = ''
-    sed -E -i "s/'([[:alnum:].-_]+)[=><]{2}[[:digit:].]*'/'\\1'/g" setup.py
-    sed -i "s/'datetime',//" setup.py
-  '';
-
-  propagatedBuildInputs = [ semantic-version boto3 flask docutils requests ];
-}
diff --git a/nixpkgs/pkgs/development/python-modules/tldextract/default.nix b/nixpkgs/pkgs/development/python-modules/tldextract/default.nix
index b91289e50614..d5b257abedf5 100644
--- a/nixpkgs/pkgs/development/python-modules/tldextract/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tldextract/default.nix
@@ -1,28 +1,56 @@
-{ lib, fetchPypi, buildPythonPackage, setuptools_scm
-, requests, requests-file, idna, filelock, pytest
+{ lib
+, buildPythonPackage
+, fetchPypi
+, filelock
+, idna
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-file
 , responses
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname   = "tldextract";
   version = "3.1.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "cfae9bc8bda37c3e8c7c8639711ad20e95dc85b207a256b60b0b23d7ff5540ea";
   };
 
-  propagatedBuildInputs = [ requests requests-file idna filelock ];
-  checkInputs = [ pytest responses ];
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    filelock
+    idna
+    requests
+    requests-file
+  ];
+
+  checkInputs = [
+    pytest-mock
+    pytestCheckHook
+    responses
+  ];
+
+  postPatch = ''
+    substituteInPlace pytest.ini --replace " --pylint" ""
+  '';
 
-  # No tests included
-  doCheck = false;
   pythonImportsCheck = [ "tldextract" ];
 
-  meta = {
+  meta = with lib; {
+    description = "Python module to accurately separate the TLD from the domain of an URL";
+    longDescription = ''
+      tldextract accurately separates the gTLD or ccTLD (generic or country code top-level domain)
+      from the registered domain and subdomains of a URL.
+    '';
     homepage = "https://github.com/john-kurkowski/tldextract";
-    description = "Accurately separate the TLD from the registered domain and subdomains of a URL, using the Public Suffix List";
-    license = lib.licenses.bsd3;
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tlsh/default.nix b/nixpkgs/pkgs/development/python-modules/tlsh/default.nix
index 7be95b970888..fbe474166c11 100644
--- a/nixpkgs/pkgs/development/python-modules/tlsh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tlsh/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage {
   pname = "tlsh";
-  version = "3.4.5";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "trendmicro";
     repo = "tlsh";
-    rev = "22fa9a62068b92c63f2b5a87004a7a7ceaac1930";
-    sha256 = "1ydliir308xn4ywy705mmsh7863ldlixdvpqwdhbipzq9vfpmvll";
+    rev = "f2bb7a97cfb0f9418a750ba92c182d1091e6c159";
+    sha256 = "1kxfhdwqjd4pjdlr1gjh2am8mxpaqmfq7rrxkjfi0mbisl1krkwb";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -26,7 +26,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Trend Micro Locality Sensitive Hash";
-    homepage = "https://github.com/trendmicro/tlsh";
+    homepage = "http://tlsh.org/";
     license = licenses.asl20;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/tokenize-rt/default.nix b/nixpkgs/pkgs/development/python-modules/tokenize-rt/default.nix
new file mode 100644
index 000000000000..7aee895c6cb6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tokenize-rt/default.nix
@@ -0,0 +1,28 @@
+{ buildPythonPackage
+, lib
+, fetchFromGitHub
+, isPy27
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "tokenize-rt";
+  version = "4.1.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "asottile";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-9qamHk2IZRmgGNFlYkSRks6mRVNlYfetpK/7rsfK9tc=";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "A wrapper around the stdlib `tokenize` which roundtrips";
+    homepage = "https://github.com/asottile/tokenize-rt";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lovesegfault ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix b/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
index cf122613f633..348302a59c55 100644
--- a/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
@@ -1,12 +1,10 @@
 { lib
-, rustPlatform
 , fetchFromGitHub
 , fetchurl
-, pipInstallHook
+, buildPythonPackage
+, rustPlatform
 , setuptools-rust
-, wheel
 , numpy
-, python
 , datasets
 , pytestCheckHook
 , requests
@@ -49,30 +47,33 @@ let
     url = "https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-merges.txt";
     sha256 = "09a754pm4djjglv3x5pkgwd6f79i2rq8ydg0f7c3q1wmwqdbba8f";
   };
-in rustPlatform.buildRustPackage rec {
+in buildPythonPackage rec {
   pname = "tokenizers";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "python-v${version}";
-    hash = "sha256-rQ2hRV52naEf6PvRsWVCTN7B1oXAQGmnpJw4iIdhamw=";
+    hash = "sha256-N/dKjQwHKmJnB76q8ISQ3cjuW0Z4GqGavnFFx/w9JRQ=";
   };
 
-  cargoSha256 = "sha256-BoHIN/519Top1NUBjpB/oEMqi86Omt3zTQcXFWqrek0=";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src sourceRoot;
+    name = "${pname}-${version}";
+    hash = "sha256-3ICSjtiRfLOj+PXu6mcuDoAtod5uXAcabYWTLxEgI18=";
+  };
 
   sourceRoot = "source/bindings/python";
 
-  nativeBuildInputs = [
-    pipInstallHook
-    setuptools-rust
-    wheel
-  ];
+  nativeBuildInputs = [ setuptools-rust ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
 
   propagatedBuildInputs = [
     numpy
-    python
   ];
 
   installCheckInputs = [
@@ -99,14 +100,6 @@ in rustPlatform.buildRustPackage rec {
       ln -s ${openaiMerges} openai-gpt-merges.txt )
   '';
 
-  buildPhase = ''
-    ${python.interpreter} setup.py bdist_wheel
-  '';
-
-  installPhase = ''
-    pipInstallPhase
-  '';
-
   preCheck = ''
     HOME=$TMPDIR
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/torchgpipe/default.nix b/nixpkgs/pkgs/development/python-modules/torchgpipe/default.nix
index 6e621ee8b688..dbfad336d0f3 100644
--- a/nixpkgs/pkgs/development/python-modules/torchgpipe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torchgpipe/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
-, pytest
 , pytestrunner
 , pytestCheckHook
 , pytorch
@@ -23,12 +22,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pytorch ];
 
-  checkInputs = [ pytest pytestrunner pytestCheckHook ];
-  disabledTests = [ "test_inplace_on_requires_grad" ];
-  # seems like a harmless failure:
-  ## AssertionError:
-  ## Pattern 'a leaf Variable that requires grad has been used in an in-place operation.'
-  ## does not match 'a leaf Variable that requires grad is being used in an in-place operation.'
+  checkInputs = [ pytestrunner pytestCheckHook ];
+  disabledTests = [
+    "test_inplace_on_requires_grad"
+    "test_input_requiring_grad"
+  ];
 
   meta = with lib; {
     description = "GPipe implemented in Pytorch and optimized for CUDA rather than TPU";
diff --git a/nixpkgs/pkgs/development/python-modules/torchvision/default.nix b/nixpkgs/pkgs/development/python-modules/torchvision/default.nix
index 79f6a19ffcb5..357592151820 100644
--- a/nixpkgs/pkgs/development/python-modules/torchvision/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torchvision/default.nix
@@ -45,6 +45,6 @@ buildPythonPackage rec {
     description = "PyTorch vision library";
     homepage = "https://pytorch.org/";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ericsagnes SuperSandro2000 ];
+    maintainers = with maintainers; [ ericsagnes ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tpm2-pytss/default.nix b/nixpkgs/pkgs/development/python-modules/tpm2-pytss/default.nix
new file mode 100644
index 000000000000..544c1a3084a6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tpm2-pytss/default.nix
@@ -0,0 +1,41 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, pkg-config, swig
+, tpm2-tss
+, cryptography, ibm-sw-tpm2
+}:
+
+buildPythonPackage rec {
+  pname = "tpm2-pytss";
+
+  # Last version on github is 0.2.4, but it looks
+  # like a mistake (it's missing commits from 0.1.9)
+  version = "0.1.9";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-v5Xth0A3tFnLFg54nvWYL2TD201e/GWv+2y5Qc60CmU=";
+  };
+  postPatch = ''
+    substituteInPlace tpm2_pytss/config.py --replace \
+      'SYSCONFDIR = CONFIG.get("sysconfdir", "/etc")' \
+      'SYSCONFDIR = "${tpm2-tss}/etc"'
+  '';
+
+  nativeBuildInputs = [ pkg-config swig ];
+  # The TCTI is dynamically loaded from tpm2-tss, we have to provide the library to the end-user
+  propagatedBuildInputs = [ tpm2-tss ];
+
+  checkInputs = [
+    cryptography
+    # provide tpm_server used as simulator for the tests
+    ibm-sw-tpm2
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tpm2-software/tpm2-pytss";
+    description = "TPM2 TSS Python bindings for Enhanced System API (ESYS)";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ baloo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tqdm/default.nix b/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
index ba40723e7ddd..950a618a5275 100644
--- a/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
@@ -1,28 +1,39 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, nose
-, coverage
-, glibcLocales
-, flake8
 , setuptools_scm
 , pytestCheckHook
+, pytest-asyncio
+, pytest-timeout
+, numpy
+, pandas
+, rich
+, tkinter
 }:
 
 buildPythonPackage rec {
   pname = "tqdm";
-  version = "4.54.1";
+  version = "4.58.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1x9chlh3msikddmq8p8p5s5kgqqs48bclxgzz3vb9ygcwjimidiq";
+    sha256 = "1fjvaag1wy70gglxjkfnn0acrya7fbhzi4adbs1bpap8x03wffn2";
   };
 
   nativeBuildInputs = [
     setuptools_scm
   ];
 
-  checkInputs = [ nose coverage glibcLocales flake8 pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+    pytest-asyncio
+    pytest-timeout
+    # tests of optional features
+    numpy
+    pandas
+    rich
+    tkinter
+  ];
 
   # Remove performance testing.
   # Too sensitive for on Hydra.
diff --git a/nixpkgs/pkgs/development/python-modules/traitsui/default.nix b/nixpkgs/pkgs/development/python-modules/traitsui/default.nix
index e76a36bcf4f9..5748ff91db13 100644
--- a/nixpkgs/pkgs/development/python-modules/traitsui/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/traitsui/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "traitsui";
-  version = "7.1.0";
+  version = "7.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b699aeea588b55723860ddc6b2bd9b5013c4a72e18d1bbf51c6689cc7c6a562a";
+    sha256 = "77d9dc5830c4e7ab94f9225bc2f082430399d95c943f1616db41e83a94df38e5";
   };
 
   propagatedBuildInputs = [ traits pyface six ];
diff --git a/nixpkgs/pkgs/development/python-modules/traittypes/default.nix b/nixpkgs/pkgs/development/python-modules/traittypes/default.nix
index 2c8f6dd80312..290892672e59 100644
--- a/nixpkgs/pkgs/development/python-modules/traittypes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/traittypes/default.nix
@@ -3,10 +3,9 @@
 , fetchFromGitHub
 , fetchpatch
 , isPy27
-, pytest
+, pytestCheckHook
 , nose
 , numpy
-, scipy
 , pandas
 , xarray
 , traitlets
@@ -35,7 +34,8 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ traitlets ];
 
-  checkInputs = [ numpy pandas xarray nose pytest ];
+  checkInputs = [ numpy pandas xarray nose pytestCheckHook ];
+  pythonImportsCheck = [ "traittypes" ];
 
   meta = with lib; {
     description = "Trait types for NumPy, SciPy, XArray, and Pandas";
diff --git a/nixpkgs/pkgs/development/python-modules/transaction/default.nix b/nixpkgs/pkgs/development/python-modules/transaction/default.nix
index 6bb5987ba484..78022cdba5ba 100644
--- a/nixpkgs/pkgs/development/python-modules/transaction/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transaction/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "transaction";
-  version = "3.0.0";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3b0ad400cb7fa25f95d1516756c4c4557bb78890510f69393ad0bd15869eaa2d";
+    sha256 = "0c15ef0b7ff3518357ceea75722a30d974c3f85e11aa5cec5d5a2b6a40cfcf68";
   };
 
   propagatedBuildInputs = [ zope_interface mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/transformers/default.nix b/nixpkgs/pkgs/development/python-modules/transformers/default.nix
index 6c04bacbd7cb..19dcc708651d 100644
--- a/nixpkgs/pkgs/development/python-modules/transformers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transformers/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.3.2";
+  version = "4.4.2";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-vv4wKf1PcuVR63ZQJd3oixdNvS7VcTmAaKkmL8I4COg=";
+    hash = "sha256-kl1Z2FBo+yqVXUqLaUtet6IycmdcAtfydNTI4MNNrkc=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/transitions/default.nix b/nixpkgs/pkgs/development/python-modules/transitions/default.nix
index 2dda33fd9682..c469875728cd 100644
--- a/nixpkgs/pkgs/development/python-modules/transitions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transitions/default.nix
@@ -1,21 +1,39 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, six, pytestCheckHook, mock, dill, pycodestyle }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, six
+, pygraphviz
+, pytestCheckHook
+, mock
+, graphviz
+, pycodestyle
+, fontconfig
+}:
 
 buildPythonPackage rec {
   pname = "transitions";
-  version = "0.8.6";
+  version = "0.8.8";
 
-  # test_codestyle.py fails in PyPI sdist
-  src = fetchFromGitHub {
-    owner = "pytransitions";
-    repo = "transitions";
-    rev = version;
-    sha256 = "1d913hzzyqhdhhbkbvjw65dqkajrw50a4sxhyxk0jlg8pcs7bs7v";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-56hrMaFhp2Ez8Ymzrp2tJ1WoDqTB4O7hgFZI0CH7Z30=";
   };
 
-  propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [
+    six
+    pygraphviz # optional
+  ];
 
-  checkInputs = [ pytestCheckHook mock dill pycodestyle ];
+  checkInputs = [
+    pytestCheckHook
+    mock
+    graphviz
+    pycodestyle
+  ];
+
+  preCheck = ''
+    export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/pytransitions/transitions";
diff --git a/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix b/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix
new file mode 100644
index 000000000000..235540209e37
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, six
+, typing-extensions
+, requests
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "transmission-rpc";
+  version = "3.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1y5048109j6z4smzwysvdjfn6cj9698dsxfim9i4nqam4nmw2wi7";
+  };
+
+  propagatedBuildInputs = [
+    six
+    typing-extensions
+    requests
+    yarl
+  ];
+
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "transmission_rpc" ];
+
+  meta = with lib; {
+    description = "Python module that implements the Transmission bittorent client RPC protocol";
+    homepage = "https://pypi.python.org/project/transmission-rpc/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ eyjhb ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/transmissionrpc/default.nix b/nixpkgs/pkgs/development/python-modules/transmissionrpc/default.nix
index a9f3042fb397..3a484692d1a2 100644
--- a/nixpkgs/pkgs/development/python-modules/transmissionrpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transmissionrpc/default.nix
@@ -17,10 +17,12 @@ buildPythonPackage rec {
 
   # no tests
   doCheck = false;
+  pythonImportsCheck = [ "transmissionrpc" ];
 
   meta = with lib; {
     description = "Python implementation of the Transmission bittorent client RPC protocol";
     homepage = "https://pypi.python.org/pypi/transmissionrpc/";
-    license = licenses.mit;
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/trimesh/default.nix b/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
index b157e32ed876..d4a021a0e311 100644
--- a/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "3.9.1";
+  version = "3.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d19cbdb830a17297aa218ba6ce4955fc11b4b553414289cfd71f58f8144cc91f";
+    sha256 = "63dd76531a4c6ddd53e00209b971e83d3fbfd9b012f4033a1c4b0f04f1f551e3";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/trio/default.nix b/nixpkgs/pkgs/development/python-modules/trio/default.nix
index 94da63cd3ec6..baaff068dbc3 100644
--- a/nixpkgs/pkgs/development/python-modules/trio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trio/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "trio";
-  version = "0.17.0";
+  version = "0.18.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zcxirpdvvl54pbfkgw7vz984879xwvdygqfpggnam24is2zjp78";
+    sha256 = "0xm0bd1rrlb4l9q0nf2n1wg7xh42ljdnm4i4j0651zi73zk6m9l7";
   };
 
   checkInputs = [ astor pytestCheckHook pyopenssl trustme jedi pylint yapf ];
@@ -34,6 +34,8 @@ buildPythonPackage rec {
     "getprotobyname"
     "waitpid"
     "static_tool_sees_all_symbols"
+    # tests pytest more than python
+    "fallback_when_no_hook_claims_it"
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/trytond/default.nix b/nixpkgs/pkgs/development/python-modules/trytond/default.nix
index 68254d8601ec..20394fb2de65 100644
--- a/nixpkgs/pkgs/development/python-modules/trytond/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trytond/default.nix
@@ -23,12 +23,12 @@
 
 buildPythonApplication rec {
   pname = "trytond";
-  version = "5.8.2";
+  version = "5.8.4";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dea7d11ec0b4584a438fab7a1acb56864b32cc9e7d6ffa166572f75a2b033dc0";
+    sha256 = "28e467b51f6dc67b8b4ca60afec82614bba8cf78852c1941cc9071d615ba7972";
   };
 
   # Tells the tests which database to use
diff --git a/nixpkgs/pkgs/development/python-modules/tubeup/default.nix b/nixpkgs/pkgs/development/python-modules/tubeup/default.nix
index 7a4b4454b3b6..9d63e466e29b 100644
--- a/nixpkgs/pkgs/development/python-modules/tubeup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tubeup/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "tubeup";
-  version = "0.0.21";
+  version = "0.0.25";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "326a499be032bee7f7ed921d85abff4b3b4dcd2c3d6ad694f08ef98dbcef19b6";
+    sha256 = "c1869363eddb85f39c05971d159bb2bf8cafa596acff3b9117635ebebfd1d342";
   };
 
   postPatch = ''
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Youtube (and other video site) to Internet Archive Uploader";
     homepage = "https://github.com/bibanon/tubeup";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = [ maintainers.marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tuyaha/default.nix b/nixpkgs/pkgs/development/python-modules/tuyaha/default.nix
new file mode 100644
index 000000000000..a53124783d18
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tuyaha/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "tuyaha";
+  version = "0.0.10";
+
+  src = fetchFromGitHub {
+    owner = "PaulAnnekov";
+    repo = pname;
+    rev = version;
+    sha256 = "0n08mqrz76zv1cyqky6ibs6im1fqcywkiyvfmfabml0vzvr43awf";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tuyaha" ];
+
+  meta = with lib; {
+    description = "Python module with the Tuya API";
+    homepage = "https://github.com/PaulAnnekov/tuyaha";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/twentemilieu/default.nix b/nixpkgs/pkgs/development/python-modules/twentemilieu/default.nix
new file mode 100644
index 000000000000..fb5617321747
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/twentemilieu/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, aiohttp
+, yarl
+, aresponses
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "twentemilieu";
+  version = "0.3.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "frenck";
+    repo = "python-twentemilieu";
+    rev = "v${version}";
+    sha256 = "1ff35sh73m2s7fh4d8p2pjwdbfljswr8b8lpcjybz8nsh0286xph";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "twentemilieu" ];
+
+  meta = with lib; {
+    description = "Python client for Twente Milieu";
+    homepage = "https://github.com/frenck/python-twentemilieu";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/twill/default.nix b/nixpkgs/pkgs/development/python-modules/twill/default.nix
index a717ab2bc9d2..e234084d31de 100644
--- a/nixpkgs/pkgs/development/python-modules/twill/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twill/default.nix
@@ -5,11 +5,11 @@
 }:
 buildPythonPackage rec {
   pname = "twill";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "85bc45bc34e3d4116123e3021c07d3a86b5e67be1ee01bc8062288eb83ae7799";
+    sha256 = "fc694ac1cb0616cfba2f9db4720e9d354bf656c318e21ef604a7e3caaef83d10";
   };
 
   checkInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/twinkly-client/default.nix b/nixpkgs/pkgs/development/python-modules/twinkly-client/default.nix
new file mode 100644
index 000000000000..fc856430da95
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/twinkly-client/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "twinkly-client";
+  version = "0.0.2";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16jbm4ya4yk2nfswza1kpgks70rmy5lpsv9dv3hdjdnr1j44hr3i";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "twinkly_client" ];
+
+  meta = with lib; {
+    description = "Python module to communicate with Twinkly LED strings";
+    homepage = "https://github.com/dr1rrb/py-twinkly-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/twitterapi/default.nix b/nixpkgs/pkgs/development/python-modules/twitterapi/default.nix
new file mode 100644
index 000000000000..b244167f88ed
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/twitterapi/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+, requests_oauthlib
+}:
+
+buildPythonPackage rec {
+  pname = "twitterapi";
+  version = "2.6.8";
+
+  src = fetchFromGitHub {
+    owner = "geduldig";
+    repo = "TwitterAPI";
+    rev = "v${version}";
+    sha256 = "sha256-X/j+3bWLQ9b4q0k/JTE984o1VZS0KTQnC0AdZpNsksY=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    requests_oauthlib
+  ];
+
+  # Tests are interacting with the Twitter API
+  doCheck = false;
+  pythonImportsCheck = [ "TwitterAPI" ];
+
+  meta = with lib; {
+    description = "Python wrapper for Twitter's REST and Streaming APIs";
+    homepage = "https://github.com/geduldig/TwitterAPI";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/typesystem/default.nix b/nixpkgs/pkgs/development/python-modules/typesystem/default.nix
index e93fd83656f8..c278680404ba 100644
--- a/nixpkgs/pkgs/development/python-modules/typesystem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typesystem/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     # the default string formatting of regular expression flags which breaks test assertion
     "test_to_json_schema_complex_regular_expression"
   ];
-  disabledTestFiles = [
+  disabledTestPaths = [
     # for some reason jinja2 not picking up forms directory (1% of tests)
     "tests/test_forms.py"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/tzdata/default.nix b/nixpkgs/pkgs/development/python-modules/tzdata/default.nix
new file mode 100644
index 000000000000..7f1803d12c62
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tzdata/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, pytestCheckHook
+, pytest-subtests
+, importlib-resources
+}:
+
+buildPythonPackage rec {
+  pname = "tzdata";
+  version = "2021.1";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-4ZxzUfiHUioaxznSEEHlkt3ebdG3ZP3vqPeys1UdPTg=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-subtests
+  ] ++ lib.optional (pythonOlder "3.7") importlib-resources;
+
+  pythonImportsCheck = [ "tzdata" ];
+
+  meta = with lib; {
+    description = "Provider of IANA time zone data";
+    homepage = "https://github.com/python/tzdata";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix b/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
index a7cd91d6845b..c5514cfa53a4 100644
--- a/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
@@ -15,9 +15,12 @@ buildPythonPackage rec {
   # test fail (timezone test fail)
   doCheck = false;
 
+  pythonImportsCheck = [ "tzlocal" ];
+
   meta = with lib; {
     description = "Tzinfo object for the local timezone";
     homepage = "https://github.com/regebro/tzlocal";
     license = licenses.cddl;
+    maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix b/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix
index cb46666f21e0..69cc04ee2d9c 100644
--- a/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "ueberzug";
-  version = "18.1.8";
+  version = "18.1.9";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3718db8f824ef5f6a69dc25b3f08e0a45388dd46843c61721476bad2b64345ee";
+    sha256 = "7ce49f351132c7d1b0f8097f6e4c5635376151ca59318540da3e296e5b21adc3";
   };
 
   buildInputs = [ libX11 libXext ];
diff --git a/nixpkgs/pkgs/development/python-modules/ujson/default.nix b/nixpkgs/pkgs/development/python-modules/ujson/default.nix
index 9c759bd41b36..d93ee9f5af70 100644
--- a/nixpkgs/pkgs/development/python-modules/ujson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ujson/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "ujson";
-  version = "4.0.1";
+  version = "4.0.2";
   disabled = isPyPy || (!isPy3k);
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26cf6241b36ff5ce4539ae687b6b02673109c5e3efc96148806a7873eaa229d3";
+    sha256 = "c615a9e9e378a7383b756b7e7a73c38b22aeb8967a8bfbffd4741f7ffd043c4d";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/unidecode/default.nix b/nixpkgs/pkgs/development/python-modules/unidecode/default.nix
index 70724bb71b51..65cb0882380f 100644
--- a/nixpkgs/pkgs/development/python-modules/unidecode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unidecode/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Unidecode";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2b6aab710c2a1647e928e36d69c21e76b453cd455f4e2621000e54b2a9b8cce8";
+    sha256 = "a039f89014245e0cad8858976293e23501accc9ff5a7bdbc739a14a2b7b85cdc";
   };
 
   LC_ALL="en_US.UTF-8";
diff --git a/nixpkgs/pkgs/development/python-modules/update-dotdee/default.nix b/nixpkgs/pkgs/development/python-modules/update-dotdee/default.nix
index ec9dbd947c08..1532fca78c4c 100644
--- a/nixpkgs/pkgs/development/python-modules/update-dotdee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/update-dotdee/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "update-dotdee";
-  version = "5.0";
+  version = "6.0";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-update-dotdee";
     rev = version;
-    sha256 = "1h3m593nwzx6vwa24k0wizb7la49yhqxwn73ipclxgxxi4dfdj01";
+    sha256 = "sha256-2k7FdgWM0ESHQb2za87yhXGaR/rbMYLVcv10QexUH1A=";
   };
 
   propagatedBuildInputs = [ executor naturalsort ];
diff --git a/nixpkgs/pkgs/development/python-modules/uproot3-methods/default.nix b/nixpkgs/pkgs/development/python-modules/uproot3-methods/default.nix
index 21fe31630de6..9fb9807d3994 100644
--- a/nixpkgs/pkgs/development/python-modules/uproot3-methods/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uproot3-methods/default.nix
@@ -6,12 +6,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.10.0";
+  version = "0.10.1";
   pname = "uproot3-methods";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rk9i1ra3panli96ghz80ddpqk77xb1kpxs3wf8rw0jy5d88pc26";
+    sha256 = "sha256-3Wj5C+HqJ2NguWNpg2hJ3ykEX3/k5TT5rCHqAHmO41g=";
   };
 
   nativeBuildInputs = [ awkward0 ];
@@ -20,6 +20,7 @@ buildPythonPackage rec {
 
   # No tests on PyPi
   doCheck = false;
+  pythonImportsCheck = [ "uproot3_methods" ];
 
   meta = with lib; {
     homepage = "https://github.com/scikit-hep/uproot3-methods";
diff --git a/nixpkgs/pkgs/development/python-modules/uproot3/default.nix b/nixpkgs/pkgs/development/python-modules/uproot3/default.nix
index 1150c76d2b48..c69237734277 100644
--- a/nixpkgs/pkgs/development/python-modules/uproot3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uproot3/default.nix
@@ -1,21 +1,24 @@
 { lib, fetchFromGitHub, buildPythonPackage, isPy27
 , awkward0, backports_lzma, cachetools, lz4, pandas
-, pytestCheckHook, pytestrunner, pkgconfig, mock
+, pytestCheckHook, pkgconfig, mock
 , numpy, requests, uproot3-methods, xxhash, zstandard
 }:
 
 buildPythonPackage rec {
   pname = "uproot3";
-  version = "3.14.2";
+  version = "3.14.4";
 
   src = fetchFromGitHub {
     owner = "scikit-hep";
     repo = "uproot3";
     rev = version;
-    sha256 = "sha256-6/e+qMgwyFUo8MRRTAaGp9WLPxE2fqMEK4paq26Epzc=";
+    sha256 = "sha256-hVJpKdYvyoCPyqgZzKYp30SvkYm+HWSNBdd9bYCYACE=";
   };
 
-  nativeBuildInputs = [ pytestrunner ];
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"pytest-runner"' ""
+  '';
 
   propagatedBuildInputs = [
     awkward0
diff --git a/nixpkgs/pkgs/development/python-modules/uranium/default.nix b/nixpkgs/pkgs/development/python-modules/uranium/default.nix
index ff262d6b0a32..0c068428f6cc 100644
--- a/nixpkgs/pkgs/development/python-modules/uranium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uranium/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub, python, cmake
-, pyqt5, numpy, scipy, shapely, libarcus, doxygen, gettext, pythonOlder }:
+, pyqt5, numpy, scipy, shapely, libarcus, cryptography, doxygen, gettext, pythonOlder }:
 
 buildPythonPackage rec {
   version = "4.7.1";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   disabled = pythonOlder "3.5.0";
 
   buildInputs = [ python gettext ];
-  propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcus ];
+  propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcus cryptography ];
   nativeBuildInputs = [ cmake doxygen ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/urllib3/2.nix b/nixpkgs/pkgs/development/python-modules/urllib3/2.nix
new file mode 100644
index 000000000000..a67ebd62f7e3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/urllib3/2.nix
@@ -0,0 +1,73 @@
+{ lib
+, brotli
+, buildPythonPackage
+, certifi
+, cryptography
+, dateutil
+, fetchPypi
+, idna
+, mock
+, pyopenssl
+, pysocks
+, pytest-freezegun
+, pytest-timeout
+, pytestCheckHook
+, pythonOlder
+, tornado
+, trustme
+}:
+
+buildPythonPackage rec {
+  pname = "urllib3";
+  version = "1.26.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08";
+  };
+
+  propagatedBuildInputs = [
+    brotli
+    certifi
+    cryptography
+    idna
+    pyopenssl
+    pysocks
+  ];
+
+  checkInputs = [
+    dateutil
+    mock
+    pytest-freezegun
+    pytest-timeout
+    pytestCheckHook
+    tornado
+    trustme
+  ];
+
+  # Tests in urllib3 are mostly timeout-based instead of event-based and
+  # are therefore inherently flaky. On your own machine, the tests will
+  # typically build fine, but on a loaded cluster such as Hydra random
+  # timeouts will occur.
+  #
+  # The urllib3 test suite has two different timeouts in their test suite
+  # (see `test/__init__.py`):
+  # - SHORT_TIMEOUT
+  # - LONG_TIMEOUT
+  # When CI is in the env, LONG_TIMEOUT will be significantly increased.
+  # Still, failures can occur and for that reason tests are disabled.
+  doCheck = false;
+
+  preCheck = ''
+    export CI # Increases LONG_TIMEOUT
+  '';
+
+  pythonImportsCheck = [ "urllib3" ];
+
+  meta = with lib; {
+    description = "Powerful, sanity-friendly HTTP client for Python";
+    homepage = "https://github.com/shazow/urllib3";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/urllib3/default.nix b/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
index 6cf7ce34d388..b7a3f81c723f 100644
--- a/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
@@ -1,33 +1,73 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest, mock, tornado, pyopenssl, cryptography
-, idna, certifi, ipaddress, pysocks }:
+{ lib
+, brotli
+, buildPythonPackage
+, cryptography
+, dateutil
+, fetchPypi
+, idna
+, isPy27
+, mock
+, pyopenssl
+, pysocks
+, pytest-freezegun
+, pytest-timeout
+, pytestCheckHook
+, pythonOlder
+, tornado
+, trustme
+}:
 
 buildPythonPackage rec {
   pname = "urllib3";
-  version = "1.26.2";
+  version = "1.26.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08";
+    sha256 = "de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73";
   };
 
-  NOSE_EXCLUDE = lib.concatStringsSep "," [
-    "test_headers" "test_headerdict" "test_can_validate_ip_san" "test_delayed_body_read_timeout"
-    "test_timeout_errors_cause_retries" "test_select_multiple_interrupts_with_event"
+  propagatedBuildInputs = [
+    brotli
+    pysocks
+  ] ++ lib.optionals isPy27 [
+    cryptography
+    idna
+    pyopenssl
   ];
 
-  checkPhase = ''
-    nosetests -v --cover-min-percentage 1
-  '';
+  checkInputs = [
+    dateutil
+    mock
+    pytest-freezegun
+    pytest-timeout
+    pytestCheckHook
+    tornado
+    trustme
+  ];
 
+  # Tests in urllib3 are mostly timeout-based instead of event-based and
+  # are therefore inherently flaky. On your own machine, the tests will
+  # typically build fine, but on a loaded cluster such as Hydra random
+  # timeouts will occur.
+  #
+  # The urllib3 test suite has two different timeouts in their test suite
+  # (see `test/__init__.py`):
+  # - SHORT_TIMEOUT
+  # - LONG_TIMEOUT
+  # When CI is in the env, LONG_TIMEOUT will be significantly increased.
+  # Still, failures can occur and for that reason tests are disabled.
   doCheck = false;
 
-  checkInputs = [ pytest mock tornado ];
-  propagatedBuildInputs = [ pyopenssl cryptography idna certifi ipaddress pysocks ];
+  preCheck = ''
+    export CI # Increases LONG_TIMEOUT
+  '';
+
+  pythonImportsCheck = [ "urllib3" ];
 
   meta = with lib; {
     description = "Powerful, sanity-friendly HTTP client for Python";
     homepage = "https://github.com/shazow/urllib3";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/uvloop/default.nix b/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
index 27f7b68fe89c..3ba9dcb5f144 100644
--- a/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "uvloop";
-  version = "0.15.0";
+  version = "0.15.2";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rfhr84km8k5gj0036b2pznwmc8macx56vkxc3aksvns95dksl0s";
+    sha256 = "2bb0624a8a70834e54dde8feed62ed63b50bad7a1265c40d6403a2ac447bce01";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/validators/default.nix b/nixpkgs/pkgs/development/python-modules/validators/default.nix
index 1bc9b1777ff6..37f00b734800 100644
--- a/nixpkgs/pkgs/development/python-modules/validators/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/validators/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "validators";
-  version = "0.18.1";
+  version = "0.18.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a653b33c0ab091790f65f42b61aa191e354ed5fdedfeb17d24a86d0789966d7";
+    sha256 = "37cd9a9213278538ad09b5b9f9134266e7c226ab1fede1d500e29e0a8fbb9ea6";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vcrpy/3.nix b/nixpkgs/pkgs/development/python-modules/vcrpy/3.nix
new file mode 100644
index 000000000000..ddd4015aad1e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/vcrpy/3.nix
@@ -0,0 +1,48 @@
+{ buildPythonPackage
+, lib
+, six
+, fetchPypi
+, pyyaml
+, mock
+, contextlib2
+, wrapt
+, pytest
+, pytest-httpbin
+, yarl
+, pythonOlder
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "vcrpy";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "21168d5ae14263a833d4b71acfd8278d8841114f24be1b4ab4a5719d0c7f07bc";
+  };
+
+  checkInputs = [
+    pytest
+    pytest-httpbin
+  ];
+
+  propagatedBuildInputs = [
+    pyyaml
+    wrapt
+    six
+  ]
+  ++ lib.optionals (pythonOlder "3.3") [ contextlib2 mock ]
+  ++ lib.optionals (pythonAtLeast "3.4") [ yarl ];
+
+  checkPhase = ''
+    py.test --ignore=tests/integration -k "not TestVCRConnection"
+  '';
+
+  meta = with lib; {
+    description = "Automatically mock your HTTP interactions to simplify and speed up testing";
+    homepage = "https://github.com/kevin1024/vcrpy";
+    license = licenses.mit;
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix b/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix
index e67bbc59e932..7766e75ba05e 100644
--- a/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix
@@ -1,5 +1,6 @@
 { buildPythonPackage
 , lib
+, isPy27
 , six
 , fetchPypi
 , pyyaml
@@ -17,6 +18,8 @@ buildPythonPackage rec {
   pname = "vcrpy";
   version = "4.1.1";
 
+  disabled = isPy27;
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "57095bf22fc0a2d99ee9674cdafebed0f3ba763018582450706f7d3a74fff599";
diff --git a/nixpkgs/pkgs/development/python-modules/vega/default.nix b/nixpkgs/pkgs/development/python-modules/vega/default.nix
index 083aa6302098..04c38838a433 100644
--- a/nixpkgs/pkgs/development/python-modules/vega/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vega/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage , fetchPypi, pythonOlder
-, pytest, jupyter_core, pandas, ipywidgets, jupyter, altair }:
+, jupyter_core, pandas, ipywidgets, jupyter }:
 
 buildPythonPackage rec {
   pname = "vega";
@@ -11,12 +11,11 @@ buildPythonPackage rec {
     sha256 = "f343ceb11add58d24cd320d69e410b111a56c98c9069ebb4ef89c608c4c1950d";
   };
 
-  buildInputs = [ pytest ];
   propagatedBuildInputs = [ jupyter jupyter_core pandas ipywidgets ];
 
   # currently, recommonmark is broken on python3
   doCheck = false;
-  checkInputs = [ altair ];
+  pythonImportsCheck = [ "vega" ];
 
   meta = with lib; {
     description = "An IPython/Jupyter widget for Vega and Vega-Lite";
diff --git a/nixpkgs/pkgs/development/python-modules/venstarcolortouch/default.nix b/nixpkgs/pkgs/development/python-modules/venstarcolortouch/default.nix
new file mode 100644
index 000000000000..713059ad9083
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/venstarcolortouch/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "venstarcolortouch";
+  version = "0.13";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04y9gmxb0vsmc5c930x9ziis5v83b29kfzsgjlww3pssj69lmw1s";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "venstarcolortouch" ];
+
+  meta = with lib; {
+    description = "Python interface for Venstar ColorTouch thermostats Resources";
+    homepage = "https://github.com/hpeyerl/venstar_colortouch";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/vidstab/default.nix b/nixpkgs/pkgs/development/python-modules/vidstab/default.nix
index 4119b26259d7..7137205b3508 100644
--- a/nixpkgs/pkgs/development/python-modules/vidstab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vidstab/default.nix
@@ -6,7 +6,6 @@
 , imutils
 , progress
 , matplotlib
-, pytest
 }:
 
 buildPythonPackage rec {
@@ -18,11 +17,11 @@ buildPythonPackage rec {
     sha256 = "649a77a0c1b670d13a1bf411451945d7da439364dc0c33ee3636a23f1d82b456";
   };
 
-  checkInputs = [ pytest ];
   propagatedBuildInputs = [ numpy pandas imutils progress matplotlib ];
 
   # tests not packaged with pypi
   doCheck = false;
+  pythonImportsCheck = [ "vidstab" ];
 
   meta = with lib; {
     homepage = "https://github.com/AdamSpannbauer/python_video_stab";
diff --git a/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix b/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
index 233101728f85..ec22660830bd 100644
--- a/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
@@ -1,27 +1,33 @@
 { buildPythonPackage
-, fetchPypi
-, lib
-, stdenv
-, pythonOlder
-, isPy27
 , appdirs
 , contextlib2
+, cython
 , distlib
+, fetchPypi
 , filelock
+, flaky
 , importlib-metadata
 , importlib-resources
+, isPy27
+, lib
 , pathlib2
+, pytest-freezegun
+, pytest-mock
+, pytest-timeout
+, pytestCheckHook
+, pythonOlder
 , setuptools_scm
 , six
+, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "20.2.1";
+  version = "20.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e0aac7525e880a429764cefd3aaaff54afb5d9f25c82627563603f5d7de5a6e5";
+    sha256 = "b7a8ec323ee02fb2312f098b6b4c9de99559b462775bc8fe3627a73706603c1b";
   };
 
   nativeBuildInputs = [
@@ -47,10 +53,39 @@ buildPythonPackage rec {
     ./0001-Check-base_prefix-and-base_exec_prefix-for-Python-2.patch
   ];
 
-  meta = {
+  checkInputs = [
+    cython
+    flaky
+    pytest-freezegun
+    pytest-mock
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # Ignore tests which require network access
+  disabledTestPaths = [
+    "tests/unit/create/test_creator.py"
+    "tests/unit/seed/embed/test_bootstrap_link_via_app_data.py"
+  ];
+
+  disabledTests = [
+    "test_can_build_c_extensions"
+    "test_xonsh" # imports xonsh, which is not in pythonPackages
+    # tests search `python3`, fail on python2, pypy
+    "test_python_via_env_var"
+    "test_python_multi_value_prefer_newline_via_env_var"
+  ];
+
+  pythonImportsCheck = [ "virtualenv" ];
+
+  meta = with lib; {
     description = "A tool to create isolated Python environments";
     homepage = "http://www.virtualenv.org";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ goibhniu ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ goibhniu ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/volkszaehler/default.nix b/nixpkgs/pkgs/development/python-modules/volkszaehler/default.nix
index b86394bc2b62..6bd509d7cd40 100644
--- a/nixpkgs/pkgs/development/python-modules/volkszaehler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/volkszaehler/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "volkszaehler";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13zhxq08wn5y9yn6xbazfl0gxxysmirwpc26wcnr6jk2va1kpc4l";
+    sha256 = "sha256-1oqzhC3Yq2V30F3ilr80vKFnTmI/CdIVLuzMlIr40xI=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vsure/default.nix b/nixpkgs/pkgs/development/python-modules/vsure/default.nix
index 40b1b328f16f..4928c2adc40c 100644
--- a/nixpkgs/pkgs/development/python-modules/vsure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vsure/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "vsure";
-  version = "1.7.2";
+  version = "1.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-EFat1sewh0Y9PHs08Grlk2RparA47GqkUv/WJ3J2494=";
+    sha256 = "sha256-Zh83t7yjZU2NjOgCkqPUHbqvEyEWXGITRgr5d2fLtRI=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/w3lib/default.nix b/nixpkgs/pkgs/development/python-modules/w3lib/default.nix
index 0c80423e36a2..a626bdd6ec02 100644
--- a/nixpkgs/pkgs/development/python-modules/w3lib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/w3lib/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , six
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -14,7 +14,14 @@ buildPythonPackage rec {
     sha256 = "1pv02lvvmgz2qb61vz1jkjc04fgm4hpfvaj5zm4i3mjp64hd1mha";
   };
 
-  buildInputs = [ six pytest ];
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "w3lib" ];
+
+  disabledTests = [
+    "test_add_or_replace_parameter"
+  ];
 
   meta = with lib; {
     description = "A library of web-related functions";
@@ -22,5 +29,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ drewkett ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/wadllib/default.nix b/nixpkgs/pkgs/development/python-modules/wadllib/default.nix
index 45b5a4734569..fcddf538d88d 100644
--- a/nixpkgs/pkgs/development/python-modules/wadllib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wadllib/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "wadllib";
-  version = "1.3.4";
+  version = "1.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e995691713d3c795d2b36278de8e212241870f46bec6ecba91794ea3cc5bd67d";
+    sha256 = "84fecbaec2fef5ae2d7717a8115d271f18c6b5441eac861c58be8ca57f63c1d3";
   };
 
   propagatedBuildInputs = [ setuptools lazr-uri ];
diff --git a/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix b/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
index 86d405a33ef9..340a407ab3fb 100644
--- a/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
@@ -1,26 +1,45 @@
-{ lib, fetchPypi, buildPythonPackage, setuptools_scm, pytest, mock }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "wakeonlan";
-  version = "1.1.6";
+  version = "2.0.0";
+  disabled = pythonOlder "3.6";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "5e6013a17004809e676c150689abd94bcc0f12a37ad3fbce1f6270968f95ffa9";
+  src = fetchFromGitHub {
+    owner = "remcohaszing";
+    repo = "pywakeonlan";
+    rev = version;
+    sha256 = "0p9jyiv0adcymbnmbay72g9phlbhsr4kmrwxscbdjq81gcmxsi0y";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "setuptools-scm ~= 1.15.7" "setuptools-scm"
-  '';
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
-  checkInputs = [ pytest mock ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  patches = [
+    # Switch to poetry-core, https://github.com/remcohaszing/pywakeonlan/pull/19
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/remcohaszing/pywakeonlan/commit/6aa5050ed94ef718dfcd0b946546b6a738f47ee3.patch";
+      sha256 = "1xzj2464ziwm7bp05bzbjwjp9whmgp1py3isr41d92qvnil86vm6";
+    })
+  ];
 
-  checkPhase = ''
-    py.test
-  '';
+  pytestFlagsArray = [ "test_wakeonlan.py" ];
+
+  pythonImportsCheck = [ "wakeonlan" ];
 
   meta = with lib; {
     description = "A small python module for wake on lan";
diff --git a/nixpkgs/pkgs/development/python-modules/wasabi/default.nix b/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
index 3e674ae266f1..f58574014ed2 100644
--- a/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "wasabi";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6e5228a51f5550844ef5080e74759e7ecb6e344241989d018686ba968f0b4f5a";
+    sha256 = "b4a36aaa9ca3a151f0c558f269d442afbb3526f0160fd541acd8a0d5e5712054";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/wasmer/default.nix b/nixpkgs/pkgs/development/python-modules/wasmer/default.nix
index 62c8a2a06b71..373e7a0a2203 100644
--- a/nixpkgs/pkgs/development/python-modules/wasmer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wasmer/default.nix
@@ -1,63 +1,34 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
-, maturin
 , buildPythonPackage
-, isPy38
-, python
 }:
 let
   pname = "wasmer";
   version = "1.0.0";
+in buildPythonPackage rec {
+  inherit pname version;
 
-  wheel = rustPlatform.buildRustPackage rec {
-    inherit pname version;
-
-    src = fetchFromGitHub {
-      owner = "wasmerio";
-      repo = "wasmer-python";
-      rev = version;
-      hash = "sha256-I1GfjLaPYMIHKh2m/5IQepUsJNiVUEJg49wyuuzUYtY=";
-    };
-
-    cargoHash = "sha256-txOOia1C4W+nsXuXp4EytEn82CFfSmiOYwRLC4WPImc=";
-
-    nativeBuildInputs = [ maturin python ];
-
-    preBuild = ''
-      cd packages/api
-    '';
-
-    buildPhase = ''
-      runHook preBuild
-      maturin build --release --manylinux off --strip
-      runHook postBuild
-    '';
-
-    postBuild = ''
-      cd ../..
-    '';
-
-    doCheck = false;
+  src = fetchFromGitHub {
+    owner = "wasmerio";
+    repo = "wasmer-python";
+    rev = version;
+    hash = "sha256-I1GfjLaPYMIHKh2m/5IQepUsJNiVUEJg49wyuuzUYtY=";
+  };
 
-    installPhase = ''
-      runHook preInstall
-      install -Dm644 -t $out target/wheels/*.whl
-      runHook postInstall
-    '';
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-txOOia1C4W+nsXuXp4EytEn82CFfSmiOYwRLC4WPImc=";
   };
 
-in
-buildPythonPackage rec {
-  inherit pname version;
+  format = "pyproject";
+
+  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
 
-  format = "wheel";
-  src = wheel;
+  buildAndTestSubdir = "packages/api";
 
-  unpackPhase = ''
-    mkdir -p dist
-    cp $src/*.whl dist
-  '';
+  doCheck = false;
 
   pythonImportsCheck = [ "wasmer" ];
 
@@ -65,7 +36,7 @@ buildPythonPackage rec {
     description = "Python extension to run WebAssembly binaries";
     homepage = "https://github.com/wasmerio/wasmer-python";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
index 693cfcce9260..ef80dedeb98d 100644
--- a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
@@ -1,25 +1,34 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , argh
 , pathtools
 , pyyaml
-, pkgs
 , pytest-cov
 , pytestCheckHook
+, CoreServices
 }:
 
 buildPythonPackage rec {
   pname = "watchdog";
-  version = "1.0.2";
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-N2y8KjXAOSsP5/8W+8GzA/2Z1N2ZEatVge6daa3IiYI=";
+    sha256 = "sha256-Uy/t2ZPnVVRnH6o2zQTFgM7T+uCEJUp3mvu9iq8AVms=";
   };
 
-  buildInputs = lib.optionals stdenv.isDarwin
-    [ pkgs.darwin.apple_sdk.frameworks.CoreServices ];
+  patches = [
+    (fetchpatch {
+      # Fix test flakiness on Apple Silicon, remove after upgrade to 2.0.6.
+      url = "https://github.com/gorakhargosh/watchdog/commit/331fd7c2c819663be39bc146e78ce67553f265fa.patch";
+      sha256 = "sha256-pLkZmbPN3qRNHs53OP0HIyDxqYCPPo6yOcBLD3aO2YE=";
+    })
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   propagatedBuildInputs = [
     argh
@@ -39,6 +48,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/gorakhargosh/watchdog";
     license = licenses.asl20;
     maintainers = with maintainers; [ goibhniu ];
+    # error: use of undeclared identifier 'kFSEventStreamEventFlagItemCloned'
+    broken = stdenv.isDarwin;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/wcmatch/default.nix b/nixpkgs/pkgs/development/python-modules/wcmatch/default.nix
new file mode 100644
index 000000000000..ade529e56274
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wcmatch/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, bracex }:
+
+buildPythonPackage rec {
+  pname = "wcmatch";
+  version = "8.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-e6CRkflYLoLYZIKb37qwLfRuJqRqME5Xx/5WUvB/KXo=";
+  };
+
+  propagatedBuildInputs = [ bracex ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  disabledTests = [
+    "TestTilde"
+  ];
+
+  pythonImportsCheck = [ "wcmatch" ];
+
+  meta = with lib; {
+    description = "Wilcard File Name matching library";
+    homepage = "https://github.com/facelessuser/wcmatch";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/web-cache/default.nix b/nixpkgs/pkgs/development/python-modules/web-cache/default.nix
new file mode 100644
index 000000000000..9246b2b571e7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/web-cache/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "web-cache";
+  version = "1.1.0";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit version;
+    pname = "web_cache";
+    sha256 = "1d8f1s3i0s3h1jqvjq6cp639hhbbpxvyq7cf9dwzrvvvr0s0m8fm";
+  };
+
+  # No tests in downloaded archive
+  doCheck = false;
+
+  pythonImportsCheck = [ "web_cache" ];
+
+  meta = with lib; {
+    description = "Simple Python key-value storage backed up by sqlite3 database";
+    homepage = "https://github.com/desbma/web_cache";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/webob/default.nix b/nixpkgs/pkgs/development/python-modules/webob/default.nix
index 124b45a2eb39..201893c2536b 100644
--- a/nixpkgs/pkgs/development/python-modules/webob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webob/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "WebOb";
-  version = "1.8.6";
+  version = "1.8.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aa3a917ed752ba3e0b242234b2a373f9c4e2a75d35291dcbe977649bd21fd108";
+    sha256 = "b64ef5141be559cfade448f044fa45c2260351edcb6a8ef6b7e00c7dcef0c323";
   };
 
   propagatedBuildInputs = [ nose pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/weboob/default.nix b/nixpkgs/pkgs/development/python-modules/weboob/default.nix
index 7c3d25068e30..861cb38389a8 100644
--- a/nixpkgs/pkgs/development/python-modules/weboob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/weboob/default.nix
@@ -6,7 +6,7 @@
 , futures
 , gdata
 , gnupg
-, google_api_python_client
+, google-api-python-client
 , html2text
 , libyaml
 , lxml
@@ -56,7 +56,7 @@ buildPythonPackage rec {
     feedparser
     gdata
     gnupg
-    google_api_python_client
+    google-api-python-client
     html2text
     libyaml
     lxml
diff --git a/nixpkgs/pkgs/development/python-modules/websocket_client/default.nix b/nixpkgs/pkgs/development/python-modules/websocket_client/default.nix
index dacae3e81e1f..6ad0634631de 100644
--- a/nixpkgs/pkgs/development/python-modules/websocket_client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/websocket_client/default.nix
@@ -1,25 +1,33 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, six
+{ lib
 , backports_ssl_match_hostname
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, pytestCheckHook
+, six
 }:
 
 buildPythonPackage rec {
-  version = "0.57.0";
   pname = "websocket_client";
+  version = "0.58.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010";
+    sha256 = "sha256-Y1CbQdFYrlt/Z+tK0g/su07umUNOc+FANU3D/44JcW8=";
   };
 
   propagatedBuildInputs = [
     six
   ] ++ lib.optional isPy27 backports_ssl_match_hostname;
 
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "websocket" ];
+
   meta = with lib; {
-    description = "Websocket client for python";
+    description = "Websocket client for Python";
     homepage = "https://github.com/websocket-client/websocket-client";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix b/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
index 7f35dd124d86..73bebd8366ec 100644
--- a/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
@@ -25,5 +25,6 @@ buildPythonPackage rec {
     homepage = "https://palletsprojects.com/p/werkzeug/";
     description = "A WSGI utility library for Python";
     license = licenses.bsd3;
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/wheel/default.nix b/nixpkgs/pkgs/development/python-modules/wheel/default.nix
index 4f51fb486ebc..60398998380a 100644
--- a/nixpkgs/pkgs/development/python-modules/wheel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wheel/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "wheel";
-  version = "0.35.1";
+  version = "0.36.2";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = pname;
     rev = version;
-    sha256 = "uS+9a47ZopI0yGlEnJi421WyzS//8BxUvH25hX4BBL8=";
+    sha256 = "sha256-8lK2UvqBIxUYm6IOuT+Jk71wYbEEjvI7typS3749N9g=";
     name = "${pname}-${version}-source";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/wiffi/default.nix b/nixpkgs/pkgs/development/python-modules/wiffi/default.nix
new file mode 100644
index 000000000000..a3da3f2f027e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wiffi/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "wiffi";
+  version = "1.0.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "mampfes";
+    repo = "python-wiffi";
+    rev = version;
+    sha256 = "1bsx8dcmbkajh7hdgxg6wdnyxz4bfnd45piiy3yzyvszfdyvxw0f";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "wiffi" ];
+
+  meta = with lib; {
+    description = "Python module to interface with STALL WIFFI devices";
+    homepage = "https://github.com/mampfes/python-wiffi";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/winacl/default.nix b/nixpkgs/pkgs/development/python-modules/winacl/default.nix
index c08c5541a61a..9aca67e2ed8d 100644
--- a/nixpkgs/pkgs/development/python-modules/winacl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/winacl/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "winacl";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05xhdhbvzs1hcd8lxmdr9mpr6ifx5flhlvk6jr0qi6h25imhqclp";
+    sha256 = "sha256-V+W0WRtL4rJD1LeYgr0PtiKdWTDQYv2ulB1divaqKe4=";
   };
 
   # Project doesn't have tests
diff --git a/nixpkgs/pkgs/development/python-modules/wrapio/default.nix b/nixpkgs/pkgs/development/python-modules/wrapio/default.nix
index bbbc1917f541..3e6a4372a642 100644
--- a/nixpkgs/pkgs/development/python-modules/wrapio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wrapio/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "wrapio";
-  version = "0.3.8";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jGupLh+xzwil+VBtAjIG+ZYT+dy+QaZOTIfipTQeyWo";
+    sha256 = "sha256-JWcPsqZy1wM6/mbU3H0W3EkpLg0wrEUUg3pT/QrL+rE=";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/wsgi-intercept/default.nix b/nixpkgs/pkgs/development/python-modules/wsgi-intercept/default.nix
new file mode 100644
index 000000000000..7303a27f5b3e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wsgi-intercept/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi, six, httplib2, py, pytestCheckHook, requests, urllib3 }:
+
+buildPythonPackage rec {
+  pname = "wsgi-intercept";
+  version = "1.9.2";
+
+  src = fetchPypi {
+    pname = "wsgi_intercept";
+    inherit version;
+    sha256 = "1b6251d03jnhqywr54bzj9fnc3qzp2kvz22asxpd27jy984qx21n";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ httplib2 py pytestCheckHook requests urllib3 ];
+
+  disabledTests = [
+    "test_http_not_intercepted"
+    "test_https_not_intercepted"
+    "test_https_no_ssl_verification_not_intercepted"
+  ];
+
+  pythonImportsCheck = [ "wsgi_intercept" ];
+
+  meta = with lib; {
+    description = "wsgi_intercept installs a WSGI application in place of a real URI for testing";
+    homepage = "https://github.com/cdent/wsgi-intercept";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix b/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix
index d72d4aa35d4d..2fc9a98a26f9 100644
--- a/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix
+++ b/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix
@@ -10,9 +10,6 @@
 , doxygen
 , ncurses
 , libintl
-, numpy
-, pillow
-, six
 , wxGTK
 , wxmac
 , IOKit
diff --git a/nixpkgs/pkgs/development/python-modules/wxPython/4.1.nix b/nixpkgs/pkgs/development/python-modules/wxPython/4.1.nix
index e4cb6ec79e01..a86e07729d97 100644
--- a/nixpkgs/pkgs/development/python-modules/wxPython/4.1.nix
+++ b/nixpkgs/pkgs/development/python-modules/wxPython/4.1.nix
@@ -6,7 +6,6 @@
 , pkg-config
 , python
 , isPy27
-, pyopengl
 , doxygen
 , cairo
 , ncurses
diff --git a/nixpkgs/pkgs/development/python-modules/xarray/default.nix b/nixpkgs/pkgs/development/python-modules/xarray/default.nix
index d905a11e3418..42402c259ab0 100644
--- a/nixpkgs/pkgs/development/python-modules/xarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xarray/default.nix
@@ -1,34 +1,29 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
+, pytestCheckHook
 , numpy
 , pandas
-, python
 , setuptools
 , isPy3k
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "xarray";
-  version = "0.16.1";
+  version = "0.16.2";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e1af056ff834bf62ca57da917159328fab21b1f8c25284f92083016bb2d92a5";
+    sha256 = "sha256-OOhDnWyRvNW3wPyjSdr44GQ6xohQyYcmLVNSbp19AeQ=";
   };
 
-  checkInputs = [ pytest ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ numpy pandas setuptools ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    pytest $out/${python.sitePackages}
-  '';
-
-  # There always seem to be broken tests...
-  doCheck = false;
-
-  disabled = !isPy3k;
+  pythonImportsCheck = [ "xarray" ];
 
   meta = {
     description = "N-D labeled arrays and datasets in Python";
diff --git a/nixpkgs/pkgs/development/python-modules/xcffib/default.nix b/nixpkgs/pkgs/development/python-modules/xcffib/default.nix
index 8f51ec1e77f8..59a2c8d7c1bc 100644
--- a/nixpkgs/pkgs/development/python-modules/xcffib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xcffib/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.11.0";
+  version = "0.11.1";
   pname = "xcffib";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a751081d816a63d02a4c63f91fd9c0112c1e0061af7ccf79c4e7c18517a75406";
+    sha256 = "12949cfe2e68c806efd57596bb9bf3c151f399d4b53e15d1101b2e9baaa66f5a";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/xdis/default.nix b/nixpkgs/pkgs/development/python-modules/xdis/default.nix
index 280470957dc7..3da25743594e 100644
--- a/nixpkgs/pkgs/development/python-modules/xdis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xdis/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "xdis";
-  version = "5.0.5";
+  version = "5.0.8";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "rocky";
     repo = "python-xdis";
     rev = version;
-    sha256 = "01248nh8y5szin6ymd3hrl8qnsg4xijsk3lxyks8zk9cjh008lmq";
+    sha256 = "01g1bk7rscwmvr2i183z0y2bs1iw7bxk7c5rcf9gf25242nppv6a";
   };
 
   checkInputs = [ pytest ];
@@ -22,10 +22,11 @@ buildPythonPackage rec {
   checkPhase = ''
     make check
   '';
+  pythonImportsCheck = [ "xdis" ];
 
   meta = with lib; {
     description = "Python cross-version byte-code disassembler and marshal routines";
     homepage = "https://github.com/rocky/python-xdis/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/xknx/default.nix b/nixpkgs/pkgs/development/python-modules/xknx/default.nix
index 221076fae84c..a181a6741887 100644
--- a/nixpkgs/pkgs/development/python-modules/xknx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xknx/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "xknx";
-  version = "0.16.3";
+  version = "0.18.0";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "XKNX";
     repo = pname;
     rev = version;
-    sha256 = "sha256-toB66woREkFUv3J14wwquRo+uAOgXKO+cwFgyw4Mma8=";
+    sha256 = "sha256-8g8DrFvhecdPsfiw+uKnfJOrLQeuFUziK2Jl3xKmrf4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/xmldiff/default.nix b/nixpkgs/pkgs/development/python-modules/xmldiff/default.nix
new file mode 100644
index 000000000000..1dfb09147589
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/xmldiff/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, lxml
+, setuptools
+, six
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "xmldiff";
+  version = "2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-Bb6iDOHyyWeGg7zODDupmB+H2StwnRkOAYvL8Efsz2M=";
+  };
+
+  propagatedBuildInputs = [ lxml setuptools six ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Shoobx/xmldiff";
+    description = "Creates diffs of XML files";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sfrijters ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix b/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix
new file mode 100644
index 000000000000..82f4a968ba6e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, pytestCheckHook
+, libxslt
+, libxml2
+, libtool
+, pkg-config
+, xmlsec
+, pkgconfig
+, setuptools-scm
+, toml
+, lxml
+, hypothesis
+}:
+
+buildPythonPackage rec {
+  pname = "xmlsec";
+  version = "1.3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c4k42zv3plm6v65p7z6l5rxyf50h40d02nhc16vq7cjrfvdf4rx";
+  };
+
+  # https://github.com/mehcode/python-xmlsec/issues/84#issuecomment-632930116
+  patches = [
+    ./reset-lxml-in-tests.patch
+  ];
+
+  nativeBuildInputs = [ pkg-config pkgconfig setuptools-scm toml ];
+
+  buildInputs = [ xmlsec libxslt libxml2 libtool ];
+
+  propagatedBuildInputs = [ lxml ];
+
+  # Full git clone required for test_doc_examples
+  checkInputs = [ pytestCheckHook hypothesis ];
+  disabledTestPaths = [ "tests/test_doc_examples.py" ];
+
+  meta = with lib; {
+    description = "Python bindings for the XML Security Library";
+    homepage = "https://github.com/mehcode/python-xmlsec";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/xmlsec/reset-lxml-in-tests.patch b/nixpkgs/pkgs/development/python-modules/xmlsec/reset-lxml-in-tests.patch
new file mode 100644
index 000000000000..0968583faa63
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/xmlsec/reset-lxml-in-tests.patch
@@ -0,0 +1,22 @@
+diff --git a/tests/base.py b/tests/base.py
+index b05de1d..5ec356f 100644
+--- a/tests/base.py
++++ b/tests/base.py
+@@ -94,6 +94,7 @@ class TestMemoryLeaks(unittest.TestCase):
+ 
+     def load_xml(self, name, xpath=None):
+         """returns xml.etree"""
++        etree.set_default_parser(parser=etree.XMLParser())
+         root = etree.parse(self.path(name)).getroot()
+         if xpath is None:
+             return root
+diff --git a/tests/test_doc_examples.py b/tests/test_doc_examples.py
+index 2fc490f..53d2377 100644
+--- a/tests/test_doc_examples.py
++++ b/tests/test_doc_examples.py
+@@ -42,3 +42,5 @@ def test_doc_example(example):
+     """
+     with cd(example.parent):
+         runpy.run_path(str(example))
++    from lxml import etree
++    etree.set_default_parser(parser=etree.XMLParser())
diff --git a/nixpkgs/pkgs/development/python-modules/xmpppy/default.nix b/nixpkgs/pkgs/development/python-modules/xmpppy/default.nix
deleted file mode 100644
index 65e2b3711fa0..000000000000
--- a/nixpkgs/pkgs/development/python-modules/xmpppy/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, buildPythonPackage, fetchurl, isPy3k }:
-buildPythonPackage rec {
-  pname = "xmpp.py";
-  version = "0.5.0rc1";
-
-  patches = [ ./ssl.patch ];
-
-  src = fetchurl {
-    url = "mirror://sourceforge/xmpppy/xmpppy-${version}.tar.gz";
-    sha256 = "16hbh8kwc5n4qw2rz1mrs8q17rh1zq9cdl05b1nc404n7idh56si";
-  };
-
-  preInstall = ''
-    mkdir -p $out/bin $out/lib $out/share $(toPythonPath $out)
-    export PYTHONPATH=$PYTHONPATH:$(toPythonPath $out)
-  '';
-
-  disabled = isPy3k;
-
-  meta = with lib; {
-    description = "XMPP python library";
-    homepage = "http://xmpppy.sourceforge.net/";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.mic92 ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/xmpppy/ssl.patch b/nixpkgs/pkgs/development/python-modules/xmpppy/ssl.patch
deleted file mode 100644
index 915602dc23e5..000000000000
--- a/nixpkgs/pkgs/development/python-modules/xmpppy/ssl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -wbBur xmpppy-0.5.0rc1/xmpp/transports.py xmpppy-0.5.0rc1.q/xmpp/transports.py
---- xmpppy-0.5.0rc1/xmpp/transports.py	2009-04-07 12:34:09.000000000 +0400
-+++ xmpppy-0.5.0rc1.q/xmpp/transports.py	2015-05-08 13:06:03.049252065 +0300
-@@ -27,7 +27,7 @@
- Also exception 'error' is defined to allow capture of this module specific exceptions.
- """
- 
--import socket,select,base64,dispatcher,sys
-+import socket,ssl,select,base64,dispatcher,sys
- from simplexml import ustr
- from client import PlugIn
- from protocol import *
-@@ -312,9 +312,9 @@
-         """ Immidiatedly switch socket to TLS mode. Used internally."""
-         """ Here we should switch pending_data to hint mode."""
-         tcpsock=self._owner.Connection
--        tcpsock._sslObj    = socket.ssl(tcpsock._sock, None, None)
--        tcpsock._sslIssuer = tcpsock._sslObj.issuer()
--        tcpsock._sslServer = tcpsock._sslObj.server()
-+        tcpsock._sslObj    = ssl.wrap_socket(tcpsock._sock, None, None)
-+        tcpsock._sslIssuer = tcpsock._sslObj.getpeercert().get('issuer')
-+        tcpsock._sslServer = tcpsock._sslObj.getpeercert().get('server')
-         tcpsock._recv = tcpsock._sslObj.read
-         tcpsock._send = tcpsock._sslObj.write
- 
diff --git a/nixpkgs/pkgs/development/python-modules/xpath-expressions/default.nix b/nixpkgs/pkgs/development/python-modules/xpath-expressions/default.nix
new file mode 100644
index 000000000000..a7c08ddc0bec
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/xpath-expressions/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, lxml
+, poetry-core
+, pythonOlder
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "xpath-expressions";
+  version = "1.1.0";
+  disabled = pythonOlder "3.5";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "orf";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0l289iw2zmzxyfi3g2z7b917vmsaz47h5jp871zvykpmpigc632h";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  checkInputs = [
+    lxml
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Was fixed upstream but not released
+    substituteInPlace pyproject.toml \
+      --replace "poetry.masonry.api" "poetry.core.masonry.api"
+  '';
+
+  pythonImportsCheck = [ "xpath" ];
+
+  meta = with lib; {
+    description = "Python module to handle XPath expressions";
+    homepage = "https://github.com/orf/xpath-expressions";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/yalesmartalarmclient/default.nix b/nixpkgs/pkgs/development/python-modules/yalesmartalarmclient/default.nix
new file mode 100644
index 000000000000..a4ca97e27ac0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/yalesmartalarmclient/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "yalesmartalarmclient";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "domwillcode";
+    repo = "yale-smart-alarm-client";
+    rev = "v${version}";
+    sha256 = "0fscp9n66h8a8khvjs2rjgm95xsdckpknadnyxqdmhw3hlj0aw6h";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "yalesmartalarmclient" ];
+
+  meta = with lib; {
+    description = "Python module to interface with Yale Smart Alarm Systems";
+    homepage = "https://github.com/mampfes/python-wiffi";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/yalexs/default.nix b/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
new file mode 100644
index 000000000000..c65c88b88d5b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, aiofiles
+, aiohttp
+, aioresponses
+, aiounittest
+, asynctest
+, buildPythonPackage
+, fetchFromGitHub
+, pubnub
+, pytestCheckHook
+, python-dateutil
+, pythonOlder
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "yalexs";
+  version = "1.1.10";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "bdraco";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1qmxiafqmh51i3l30pajaqj5h0kziq4d37fn6hl58429bb85dpp9";
+  };
+
+  propagatedBuildInputs = [
+    aiofiles
+    aiohttp
+    pubnub
+    python-dateutil
+    requests
+  ];
+
+  checkInputs = [
+    aioresponses
+    aiounittest
+    asynctest
+    pytestCheckHook
+    requests-mock
+  ];
+
+  postPatch = ''
+    # Not used requirement
+    substituteInPlace setup.py --replace '"vol",' ""
+  '';
+
+  pythonImportsCheck = [ "yalexs" ];
+
+  meta = with lib; {
+    description = "Python API for Yale Access (formerly August) Smart Lock and Doorbell";
+    homepage = "https://github.com/bdraco/yalexs";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/yamllint/default.nix b/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
index 13545c0430d1..2178e4d25791 100644
--- a/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
@@ -1,26 +1,48 @@
-{ lib, buildPythonPackage, fetchPypi
-, nose, pyyaml, pathspec }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pathspec
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, stdenv
+}:
 
 buildPythonPackage rec {
   pname = "yamllint";
-  version = "1.25.0";
+  version = "1.26.0";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b1549cbe5b47b6ba67bdeea31720f5c51431a4d0c076c1557952d841f7223519";
+    sha256 = "11qhs1jk9pwvyk5k3q5blh9sq42dh1ywdf1f3i2zixf7hncwir5h";
   };
 
-  checkInputs = [ nose ];
+  propagatedBuildInputs = [
+    pyyaml
+    pathspec
+  ];
 
-  propagatedBuildInputs = [  pyyaml pathspec ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  # Two test failures
-  doCheck = false;
+  disabledTests = [
+    # test failure reported upstream: https://github.com/adrienverge/yamllint/issues/373
+    "test_find_files_recursively"
+  ] ++ lib.optional stdenv.isDarwin [
+    # locale tests are broken on BSDs; see https://github.com/adrienverge/yamllint/issues/307
+    "test_locale_accents"
+    "test_locale_case"
+    "test_run_with_locale"
+  ];
+
+  pythonImportsCheck = [ "yamllint" ];
 
   meta = with lib; {
     description = "A linter for YAML files";
     homepage = "https://github.com/adrienverge/yamllint";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jonringer mikefaille ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/yapf/default.nix b/nixpkgs/pkgs/development/python-modules/yapf/default.nix
index 9c0e9d353993..9c759f3a2b7e 100644
--- a/nixpkgs/pkgs/development/python-modules/yapf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yapf/default.nix
@@ -1,19 +1,46 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
 
 buildPythonPackage rec {
   pname = "yapf";
-  version = "0.30.0";
+  version = "0.31.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427";
+    hash = "sha256-QI+5orJUwwL0nbg8WfmqC0sP0OwlvjpcURgTJ5Iv9j0=";
   };
 
+  checkInputs = [
+    nose
+  ];
+
   meta = with lib; {
-    description = "A formatter for Python code.";
-    homepage    = "https://github.com/google/yapf";
-    license     = licenses.asl20;
-    maintainers = with maintainers; [ siddharthist ];
-  };
+    homepage = "https://github.com/google/yapf";
+    description = "Yet Another Python Formatter";
+    longDescription = ''
+      Most of the current formatters for Python --- e.g., autopep8, and pep8ify
+      --- are made to remove lint errors from code. This has some obvious
+      limitations. For instance, code that conforms to the PEP 8 guidelines may
+      not be reformatted. But it doesn't mean that the code looks good.
 
+      YAPF takes a different approach. It's based off of 'clang-format',
+      developed by Daniel Jasper. In essence, the algorithm takes the code and
+      reformats it to the best formatting that conforms to the style guide, even
+      if the original code didn't violate the style guide. The idea is also
+      similar to the 'gofmt' tool for the Go programming language: end all holy
+      wars about formatting - if the whole codebase of a project is simply piped
+      through YAPF whenever modifications are made, the style remains consistent
+      throughout the project and there's no point arguing about style in every
+      code review.
+
+      The ultimate goal is that the code YAPF produces is as good as the code
+      that a programmer would write if they were following the style guide. It
+      takes away some of the drudgery of maintaining your code.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ AndersonTorres siddharthist ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/yapsy/default.nix b/nixpkgs/pkgs/development/python-modules/yapsy/default.nix
index e60b0a114731..a6471d8f07ef 100644
--- a/nixpkgs/pkgs/development/python-modules/yapsy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yapsy/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -16,6 +17,7 @@ buildPythonPackage rec {
     homepage = "http://yapsy.sourceforge.net/";
     description = "Yet another plugin system";
     license = licenses.bsd0;
+    # tests fail and are not using pytest to easily disable them
+    broken = stdenv.isDarwin;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/yaswfp/default.nix b/nixpkgs/pkgs/development/python-modules/yaswfp/default.nix
new file mode 100644
index 000000000000..267052f5c17d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/yaswfp/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "yaswfp";
+  version = "unstable-20210331";
+
+  src = fetchFromGitHub {
+    owner = "facundobatista";
+    repo = pname;
+    rev = "2a2cc6ca4c0b4d52bd2e658fb5f80fdc0db4924c";
+    sha256 = "1dxdz89hlycy1rnn269fwl1f0qxgxqarkc0ivs2m77f8xba2qgj9";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "yaswfp" ];
+
+  meta = with lib; {
+    description = "Python SWF Parser";
+    homepage = "https://github.com/facundobatista/yaswfp";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix b/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
new file mode 100644
index 000000000000..1f211cd2872d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, isPy27
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "ytmusicapi";
+  version = "0.15.1";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-W/eZubJ/SNLBya1S6wLUwTwZCUD+wCQ5FAuNcSpl+9Y=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  doCheck = false; # requires network access
+
+  pythonImportsCheck = [ "ytmusicapi" ];
+
+  meta = with lib; {
+    description = "Unofficial API for YouTube Music";
+    homepage = "https://github.com/sigma67/ytmusicapi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/zerobin/default.nix b/nixpkgs/pkgs/development/python-modules/zerobin/default.nix
deleted file mode 100644
index 19d02a70496b..000000000000
--- a/nixpkgs/pkgs/development/python-modules/zerobin/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cherrypy
-, bottle
-, lockfile
-, clize
-}:
-
-buildPythonPackage {
-  pname = "zerobin";
-  version = "20160108";
-
-  src = fetchFromGitHub {
-    owner = "sametmax";
-    repo = "0bin";
-    rev = "7da1615";
-    sha256 = "1pzcwy454kn5216pvwjqzz311s6jbh7viw9s6kw4xps6f5h44bid";
-  };
-
-  propagatedBuildInputs = [ cherrypy bottle lockfile clize ];
-
-  # zerobin doesn't have any tests, but includes a copy of cherrypy which
-  # can wrongly fail the check phase.
-  doCheck = false;
-
-  meta = with lib; {
-    description = "A client side encrypted pastebin";
-    homepage = "https://0bin.net/";
-    license = licenses.wtfpl;
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix b/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix
index 6dccf51100e2..2786fc979f1a 100644
--- a/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "zeroc-ice";
-  version = "3.7.4";
+  version = "3.7.5";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "dc79a1eaad1d1cd1cf8cfe636e1bc413c60645e3e87a5a8e9b97ce882690e0e4";
+    sha256 = "3b4897cc3f2adf3d03802368cedb72a038aa33c988663a667c1c48e42ea10797";
   };
 
   buildInputs = [ openssl bzip2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix b/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
index a3b00ec32324..5105cbfff021 100644
--- a/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
@@ -3,27 +3,26 @@
 , buildPythonPackage
 , fetchPypi
 , ifaddr
-, typing
-, isPy27
 , pythonOlder
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.28.8";
-  disabled = isPy27;
+  version = "0.29.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb";
+    sha256 = "sha256-eu+7ZYtFKx/X5REkNk+TjG9eQtbqiT+iVXvqjAbFQK8=";
   };
 
-  propagatedBuildInputs = [ ifaddr ]
-    ++ lib.optionals (pythonOlder "3.5") [ typing ];
+  propagatedBuildInputs = [ ifaddr ];
 
   checkInputs = [ pytestCheckHook ];
+
   pytestFlagsArray = [ "zeroconf/test.py" ];
+
   disabledTests = [
     # disable tests that expect some sort of networking in the build container
     "test_launch_and_close"
@@ -33,6 +32,7 @@ buildPythonPackage rec {
   ] ++ lib.optionals stdenv.isDarwin [
     "test_lots_of_names"
   ];
+
   __darwinAllowLocalNetworking = true;
 
   pythonImportsCheck = [ "zeroconf" ];
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python implementation of multicast DNS service discovery";
     homepage = "https://github.com/jstasiak/python-zeroconf";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Only;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/zetup/default.nix b/nixpkgs/pkgs/development/python-modules/zetup/default.nix
index 85e950b830e8..3862a8e757d1 100644
--- a/nixpkgs/pkgs/development/python-modules/zetup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zetup/default.nix
@@ -1,6 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, setuptools_scm, pathpy, nbconvert
-, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nbconvert
+, pathpy
+, pytestCheckHook
+, setuptools-scm
+}:
 
 buildPythonPackage rec {
   pname = "zetup";
@@ -11,18 +16,25 @@ buildPythonPackage rec {
     sha256 = "b8a9bdcfa4b705d72b55b218658bc9403c157db7b57a14158253c98d03ab713d";
   };
 
-  # Python 3.8 compatibility
+  # Python > 3.7 compatibility
   postPatch = ''
     substituteInPlace zetup/zetup_config.py \
-      --replace "'3.7']" "'3.7', '3.8']"
+      --replace "'3.7']" "'3.7', '3.8', '3.9', '3.10']"
   '';
 
   checkPhase = ''
     py.test test -k "not TestObject" --deselect=test/test_zetup_config.py::test_classifiers
   '';
 
-  checkInputs = [ pytest pathpy nbconvert ];
-  propagatedBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ setuptools-scm ];
+
+  checkInputs = [
+    pathpy
+    nbconvert
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "zetup" ];
 
   meta = with lib; {
     description = "Zimmermann's Extensible Tools for Unified Project setups";
diff --git a/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix b/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
index 3141f666a63a..34a4c90d190a 100644
--- a/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
@@ -1,25 +1,34 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
 , aiohttp
-, zigpy
 , asynctest
+, buildPythonPackage
+, fetchFromGitHub
 , pytestCheckHook
+, zigpy
 }:
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.53";
+  version = "0.0.55";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = version;
-    sha256 = "16n99r7bjd3lnxn72lfnxg44n7mkv196vdhkw2sf1nq1an4ks1nc";
+    sha256 = "sha256-mc7mOaxn2FCvwYv9yE0mIOSQ1F+xJJ+1LynOdEV07I8=";
   };
 
-  propagatedBuildInputs = [ aiohttp zigpy ];
-  checkInputs = [ pytestCheckHook asynctest ];
+  propagatedBuildInputs = [
+    aiohttp
+    zigpy
+  ];
+
+  checkInputs = [
+    asynctest
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "zhaquirks" ];
 
   meta = with lib; {
     description = "ZHA Device Handlers are custom quirks implementations for Zigpy";
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
index d9c7854bf984..0b7c027c0fef 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "zigpy-deconz";
-  version = "0.11.1";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = pname;
     rev = version;
-    sha256 = "1p9mdsfc200iyszppcflazzfwqg4v8nqqwqsx114nip5km7a5s37";
+    sha256 = "sha256-d/yAk8owMu+J1BzlwR5mzF9HkXiE6Kc81AznvsAboy8=";
   };
 
   propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
index 1a1c639a4738..2543d0675852 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
@@ -17,13 +17,13 @@
 
 buildPythonPackage rec {
   pname = "zigpy-znp";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "zha-ng";
     repo = "zigpy-znp";
     rev = "v${version}";
-    sha256 = "18dav2n5fqdigf8dl7gcqa9z8l6p2ig6l5q78gqg2wj7wjpncwyj";
+    sha256 = "1g5jssdnibhb4i4k1js9iy9w40cipf1gdnyp847x0bv6wblzx8rl";
   };
 
   propagatedBuildInputs = [
@@ -45,11 +45,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # zigpy-znp was too slow to sync up with the zigpy 0.29 release and has API breakage, remove >0.3.0
-    "test_force_remove"
-  ];
-
   meta = with lib; {
     description = "A library for zigpy which communicates with TI ZNP radios";
     homepage = "https://github.com/zha-ng/zigpy-znp";
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
index dbc42561db63..f03b9e96759e 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "zigpy";
-  version = "0.32.0";
+  version = "0.33.0";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zigpy";
     rev = version;
-    sha256 = "18grqx1fzh539ccar0865shgd2mnfni65rjj787cq5j5p5rn0yc7";
+    sha256 = "sha256-oEf4GnvbQ6LY4NaNFWRmnNz1TK2tMpIVUxskhU38g4w=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix b/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
index 75683cb2eb8f..43fab18daeb3 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "zope.schema";
-  version = "6.0.0";
+  version = "6.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20fbbce8a0726ba34f0e3958676498feebb818f06575193254e139d8d7214f26";
+    sha256 = "9b3fc3ac656099aa9ebf3beb2bbd83d2d6ee6f94b9ac6969d6e3993ec9c4a197";
   };
 
   propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ];
diff --git a/nixpkgs/pkgs/development/python-modules/zopfli/default.nix b/nixpkgs/pkgs/development/python-modules/zopfli/default.nix
index a80b3155b8ce..9d6757793511 100644
--- a/nixpkgs/pkgs/development/python-modules/zopfli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zopfli/default.nix
@@ -2,14 +2,15 @@
 
 buildPythonPackage rec {
   pname = "zopfli";
-  version = "0.1.7";
+  version = "0.1.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "512892714f0e3dcc9a77222cb509ed519f41ce2b92467e47a4b406a23b48561a";
+    sha256 = "8b977dc07e3797907ab59e08096583bcd0b7e6c739849fbbeec09263f6356623";
     extension = "zip";
   };
 
+  # doesn't work with pytestCheckHook
   checkInputs = [ pytest ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/r-modules/cran-packages.nix b/nixpkgs/pkgs/development/r-modules/cran-packages.nix
index 1482a872dffd..f579b108eb9c 100644
--- a/nixpkgs/pkgs/development/r-modules/cran-packages.nix
+++ b/nixpkgs/pkgs/development/r-modules/cran-packages.nix
@@ -5534,7 +5534,7 @@ in with self; {
   arrApply = derive2 { name="arrApply"; version="2.1"; sha256="0qy7iwi580rrf3sycsbv6qgxsqcdy9pdbnkdrx81j68qni9iw737"; depends=[Rcpp RcppArmadillo]; };
   arrangements = derive2 { name="arrangements"; version="1.1.9"; sha256="0nrlyxgn6667l2rb1q5rvps1anld9aq88qqr3ch2i6zchnqxrdg9"; depends=[gmp R6]; };
   arrayhelpers = derive2 { name="arrayhelpers"; version="1.1-0"; sha256="02rl530qxi1idiqpmzg5wr9vl5c7phizhpj64k5pn8xq9zfxbpaz"; depends=[svUnit]; };
-  arrow = derive2 { name="arrow"; version="2.0.0"; sha256="0n9g8j7bis7aga2icc8gd6mv7fnh2d5m7fy62fqs4z69l69y19r8"; depends=[assertthat bit64 cpp11 purrr R6 rlang tidyselect vctrs]; };
+  arrow = derive { snapshot = "2021-02-01"; } { name="arrow"; version="3.0.0"; sha256="0wgdj6fr4vbz91s76gfwyv2q66p8z3fwf9zgk4112rjhj60q7qfq"; depends=[assertthat bit64 cpp11 purrr R6 rlang tidyselect vctrs]; };
   ars = derive2 { name="ars"; version="0.6"; sha256="0zs1rk3i7pc9wcvxrvjcls194mfbvmkz7cb6pwd1cm3fzjwsyxsp"; depends=[]; };
   arse = derive2 { name="arse"; version="1.0.0"; sha256="0ssaalc058m09gfcr1n0s729rx2plia3zkhlynj67drclyvhyb0i"; depends=[dplyr pracma]; };
   arsenal = derive2 { name="arsenal"; version="3.5.0"; sha256="0avi434wkk3w7axd89a4jwsbb11fi0239mkkla6zasnjwbqgjim0"; depends=[knitr]; };
diff --git a/nixpkgs/pkgs/development/r-modules/default.nix b/nixpkgs/pkgs/development/r-modules/default.nix
index e827c9b807fd..ae23b32b71a2 100644
--- a/nixpkgs/pkgs/development/r-modules/default.nix
+++ b/nixpkgs/pkgs/development/r-modules/default.nix
@@ -231,6 +231,7 @@ let
   };
 
   packagesWithNativeBuildInputs = {
+    arrow = [ pkgs.pkg-config pkgs.arrow-cpp ];
     adimpro = [ pkgs.imagemagick ];
     animation = [ pkgs.which ];
     audio = [ pkgs.portaudio ];
@@ -309,10 +310,10 @@ let
     RGtk2 = [ pkgs.gtk2.dev ];
     rhdf5 = [ pkgs.zlib ];
     Rhdf5lib = [ pkgs.zlib ];
-    Rhpc = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.lzma.dev pkgs.mpi pkgs.pcre.dev ];
-    Rhtslib = [ pkgs.zlib.dev pkgs.automake pkgs.autoconf pkgs.bzip2.dev pkgs.lzma.dev pkgs.curl.dev ];
+    Rhpc = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.xz.dev pkgs.mpi pkgs.pcre.dev ];
+    Rhtslib = [ pkgs.zlib.dev pkgs.automake pkgs.autoconf pkgs.bzip2.dev pkgs.xz.dev pkgs.curl.dev ];
     rjags = [ pkgs.jags ];
-    rJava = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.lzma.dev pkgs.pcre.dev pkgs.jdk pkgs.libzip ];
+    rJava = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.xz.dev pkgs.pcre.dev pkgs.jdk pkgs.libzip ];
     Rlibeemd = [ pkgs.gsl_1 ];
     rmatio = [ pkgs.zlib.dev ];
     Rmpfr = [ pkgs.gmp pkgs.mpfr.dev ];
@@ -333,7 +334,7 @@ let
     RVowpalWabbit = [ pkgs.zlib.dev pkgs.boost ];
     rzmq = [ pkgs.zeromq pkgs.pkg-config ];
     clustermq = [ pkgs.zeromq ];
-    SAVE = [ pkgs.zlib pkgs.bzip2 pkgs.icu pkgs.lzma pkgs.pcre ];
+    SAVE = [ pkgs.zlib pkgs.bzip2 pkgs.icu pkgs.xz pkgs.pcre ];
     sdcTable = [ pkgs.gmp pkgs.glpk ];
     seewave = [ pkgs.fftw.dev pkgs.libsndfile.dev ];
     seqinr = [ pkgs.zlib.dev ];
@@ -938,7 +939,7 @@ let
     });
 
     littler = old.littler.overrideAttrs (attrs: with pkgs; {
-      buildInputs = [ pcre lzma zlib bzip2 icu which ] ++ attrs.buildInputs;
+      buildInputs = [ pcre xz zlib bzip2 icu which ] ++ attrs.buildInputs;
       postInstall = ''
         install -d $out/bin $out/share/man/man1
         ln -s ../library/littler/bin/r $out/bin/r
diff --git a/nixpkgs/pkgs/development/ruby-modules/bundix/default.nix b/nixpkgs/pkgs/development/ruby-modules/bundix/default.nix
index f3ac42b94062..17f5d6553f68 100644
--- a/nixpkgs/pkgs/development/ruby-modules/bundix/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/bundix/default.nix
@@ -1,29 +1,20 @@
 { buildRubyGem, fetchFromGitHub, makeWrapper, lib, bundler, nix,
-  nix-prefetch-git, fetchpatch }:
+  nix-prefetch-git }:
 
 buildRubyGem rec {
   inherit (bundler) ruby;
 
   name = "${gemName}-${version}";
   gemName = "bundix";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "bundix";
     rev = version;
-    sha256 = "05y8sy6v9km1dwvpjzkjxpfzv95g6yzac1b5blac2f1r2kw167p8";
+    sha256 = "sha256-iMp6Yj7TSWDqge3Lw855/igOWdTIuFH1LGeIN/cpq7U=";
   };
 
-  patches = [
-    # write trailing newline to gemset.nix
-    # https://github.com/nix-community/bundix/pull/78
-    (fetchpatch {
-      url = "https://github.com/nix-community/bundix/commit/02ca7a6c656a1e5e5465ad78b31040d82ae1a7e6.patch";
-      sha256 = "18r30icv7r79dlmxz1d1qlk5b6c7r257x23sqav55yhfail9hqrb";
-    })
-  ];
-
   buildInputs = [ ruby bundler ];
   nativeBuildInputs = [ makeWrapper ];
 
@@ -47,7 +38,7 @@ buildRubyGem rec {
     '';
     homepage = "https://github.com/manveru/bundix";
     license = "MIT";
-    maintainers = with lib.maintainers; [ manveru qyliss zimbatm ];
+    maintainers = with lib.maintainers; [ manveru marsam zimbatm ];
     platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
index 00c6fb73214b..5ca2612cc6f0 100644
--- a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
@@ -17,7 +17,7 @@
 # This seperates "what to build" (the exact gem versions) from "how to build"
 # (to make gems behave if necessary).
 
-{ lib, fetchurl, writeScript, ruby, kerberos, libxml2, libxslt, python, stdenv, which
+{ lib, fetchurl, writeScript, ruby, libkrb5, libxml2, libxslt, python, stdenv, which
 , libiconv, postgresql, v8, clang, sqlite, zlib, imagemagick
 , pkg-config , ncurses, xapian, gpgme, util-linux, tzdata, icu, libffi
 , cmake, libssh2, openssl, libmysqlclient, darwin, git, perl, pcre, gecode_3, curl
@@ -25,7 +25,7 @@
 , cairo, re2, rake, gobject-introspection, gdk-pixbuf, zeromq, czmq, graphicsmagick, libcxx
 , file, libvirt, glib, vips, taglib, libopus, linux-pam, libidn, protobuf, fribidi, harfbuzz
 , bison, flex, pango, python3, patchelf, binutils, freetds, wrapGAppsHook, atk
-, bundler, libsass, libselinux ? null, libsepol ? null
+, bundler, libsass, libselinux ? null, libsepol ? null, shared-mime-info
 }@args:
 
 let
@@ -164,6 +164,10 @@ in
     '';
   };
 
+  mimemagic = attrs: {
+    FREEDESKTOP_MIME_TYPES_PATH = "${shared-mime-info}/share/mime/packages/freedesktop.org.xml";
+  };
+
   mini_magick = attrs: {
     postInstall = ''
       installPath=$(cat $out/nix-support/gem-meta/install-path)
@@ -201,13 +205,32 @@ in
 
   gitlab-markup = attrs: { meta.priority = 1; };
 
-  gitlab-pg_query = attrs: lib.optionalAttrs (attrs.version == "1.3.0") {
+  gitlab-pg_query = attrs: lib.optionalAttrs (attrs.version == "1.3.1") {
+    dontBuild = false;
+    postPatch = ''
+      sed -i "s;'https://codeload.github.com.*';'${fetchurl {
+        url = "https://codeload.github.com/lfittl/libpg_query/tar.gz/10-1.0.3";
+        sha256 = "0jfij8apzxsdabl70j42xgd5f3ka1gdcrk764nccp66164gpcchk";
+      }}';" ext/pg_query/extconf.rb
+    '';
+  };
+
+  pg_query = attrs: lib.optionalAttrs (attrs.version == "2.0.2") {
+    dontBuild = false;
+    postPatch = ''
+      sed -i "s;'https://codeload.github.com.*';'${fetchurl {
+        url = "https://codeload.github.com/lfittl/libpg_query/tar.gz/13-2.0.2";
+        sha256 = "0ms2s6hmy8qyzv4g1hj4i2p5fws1v8lrj73b2knwbp2ipd45yj7y";
+      }}';" ext/pg_query/extconf.rb
+    '';
+  } // lib.optionalAttrs (attrs.version == "1.3.0") {
+    # Needed for gitlab
     dontBuild = false;
     postPatch = ''
-      sed -i 's;"https://gitlab.com.*";"${fetchurl {
-        url = "https://gitlab.com/gitlab-org/libpg_query/-/archive/gitlab-10-1.0.3/libpg_query-gitlab-10-1.0.3.tar.gz";
-        sha256 = "1519x4v6wrk189mjg4hlfah0f7hjy3syg8kk8b6g644gdspzs26j";
-      }}";' ext/pg_query/extconf.rb
+      sed -i "s;'https://codeload.github.com.*';'${fetchurl {
+        url = "https://codeload.github.com/lfittl/libpg_query/tar.gz/10-1.0.4";
+        sha256 = "0f0kshhai0pnkqj0w4kgz3fssnvwidllc31n1fysxjjzdqlr1k48";
+      }}';" ext/pg_query/extconf.rb
     '';
   };
 
@@ -588,7 +611,7 @@ in
   };
 
   timfel-krb5-auth = attrs: {
-    buildInputs = [ kerberos ];
+    buildInputs = [ libkrb5 ];
   };
 
   tiny_tds = attrs: {
diff --git a/nixpkgs/pkgs/development/ruby-modules/gem/default.nix b/nixpkgs/pkgs/development/ruby-modules/gem/default.nix
index 9e64b120af85..20667988548c 100644
--- a/nixpkgs/pkgs/development/ruby-modules/gem/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/gem/default.nix
@@ -18,7 +18,7 @@
 # Normal gem packages can be used outside of bundler; a binstub is created in
 # $out/bin.
 
-{ lib, fetchurl, fetchgit, makeWrapper, git, darwin
+{ lib, fetchurl, fetchgit, makeWrapper, gitMinimal, darwin
 , ruby, bundler
 } @ defs:
 
@@ -89,7 +89,7 @@ stdenv.mkDerivation ((builtins.removeAttrs attrs ["source"]) // {
 
   buildInputs = [
     ruby makeWrapper
-  ] ++ lib.optionals (type == "git") [ git ]
+  ] ++ lib.optionals (type == "git") [ gitMinimal ]
     ++ lib.optionals (type != "gem") [ bundler ]
     ++ lib.optional stdenv.isDarwin darwin.libobjc
     ++ buildInputs;
@@ -129,6 +129,12 @@ stdenv.mkDerivation ((builtins.removeAttrs attrs ["source"]) // {
     runHook postUnpack
   '';
 
+  # As of ruby 3.0, ruby headers require -fdeclspec when building with clang
+  # Introduced in https://github.com/ruby/ruby/commit/0958e19ffb047781fe1506760c7cbd8d7fe74e57
+  NIX_CFLAGS_COMPILE = lib.optionals (stdenv.cc.isClang && lib.versionAtLeast ruby.version.major "3") [
+    "-fdeclspec"
+  ];
+
   buildPhase = attrs.buildPhase or ''
     runHook preBuild
 
diff --git a/nixpkgs/pkgs/development/ruby-modules/with-packages/test.nix b/nixpkgs/pkgs/development/ruby-modules/with-packages/test.nix
index 946854e4545f..bcd9a787f7d3 100644
--- a/nixpkgs/pkgs/development/ruby-modules/with-packages/test.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/with-packages/test.nix
@@ -6,7 +6,6 @@ let
   stdenv = pkgs.stdenv;
 
   rubyVersions = with pkgs; [
-    ruby_2_5
     ruby_2_6
     ruby_2_7
   ];
diff --git a/nixpkgs/pkgs/development/tools/air/default.nix b/nixpkgs/pkgs/development/tools/air/default.nix
new file mode 100644
index 000000000000..912328ead267
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/air/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "air";
+  version = "1.15.1";
+
+  src = fetchFromGitHub {
+    owner = "cosmtrek";
+    repo = "air";
+    rev = "v${version}";
+    sha256 = "0d34k8hyag84j24bhax4gvg8mkzqyhdqd16rfirpfjiqvqh0vdkz";
+  };
+
+  vendorSha256 = "0k28rxnd0vyb6ljbi83bm1gl7j4r660a3ckjxnzc2qzwvfj69g53";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Live reload for Go apps";
+    homepage = "https://github.com/cosmtrek/air";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ Gonzih ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/ameba/default.nix b/nixpkgs/pkgs/development/tools/ameba/default.nix
index 13e9c56be9ff..9a8cc799bf27 100644
--- a/nixpkgs/pkgs/development/tools/ameba/default.nix
+++ b/nixpkgs/pkgs/development/tools/ameba/default.nix
@@ -2,13 +2,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "ameba";
-  version = "0.13.4";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "crystal-ameba";
     repo = "ameba";
     rev = "v${version}";
-    sha256 = "sha256-+ZsefwH1hag2syWaEXkdxgmxk6JsxP7MvV+ILlo+Hy8=";
+    sha256 = "sha256-wtUWmvAm7iTiP8eYgPiRasYjzeCIJCQd3D+8f1kMONA=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix b/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
index e5325f7da8c7..563119f6b3ab 100644
--- a/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "8.39";
+  version = "8.41.1";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-CPPSJVKf01TA89Qk/uyvIU+ejo5JyT4Mc35KKJPv4IE=";
+    sha256 = "sha256-zW6gjRu5YEH04xCbsW20FeFfmBg+i+aW3WpViBQigXI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/coan/default.nix b/nixpkgs/pkgs/development/tools/analysis/coan/default.nix
index 1e0b79e0daa5..3ef6c2b84590 100644
--- a/nixpkgs/pkgs/development/tools/analysis/coan/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/coan/default.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://coan2.sourceforge.net/";
     license = licenses.bsd3;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix b/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
index 4d7bc7c277b2..f62b1a248061 100644
--- a/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.4.2";
+  version = "2.5.0";
 
   dontConfigure = true;
   dontBuild = true;
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
-    sha256 = "sha256-hOTxlrS47gS7stfNXuGKkAbCINhPXBVncOdPr1EDU5M=";
+    sha256 = "sha256-teZ/9+oAEqGmy2S8Q89YDe8lqvAjzV6RWJ5AnfgQ6Mc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix b/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix
index 30c0614446e6..600d0efc92ee 100644
--- a/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cppcheck";
-  version = "2.3";
+  version = "2.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0mlw0z20qf0g9qrmdmbykzf87wlcgmah8bacmp4mk6dwfzr9g9n3";
+    sha256 = "sha256-mGJPqOmz1/siAVkwDP5WXFvx3TtD5KT/klciqnaEoCo=";
   };
 
   buildInputs = [ pcre ] ++ lib.optionals withZ3 [ z3 ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/emma/default.nix b/nixpkgs/pkgs/development/tools/analysis/emma/default.nix
index 97f93722a182..a1e88d8ebfb8 100644
--- a/nixpkgs/pkgs/development/tools/analysis/emma/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/emma/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "0xxy39s2lvgs56vicjzpcz936l1vjaplliwa0dm7v3iyvw6jn7vj";
   };
 
-  buildInputs = [unzip];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     mkdir -p $out/lib/jars
diff --git a/nixpkgs/pkgs/development/tools/analysis/flow/default.nix b/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
index 5578e03dc96e..aa3ba723cf45 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.144.0";
+  version = "0.148.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "sha256-Qr/fizCV+t6SbETEqns72Xv24ucLcqi1JRXF8SAtQRU=";
+    sha256 = "sha256-DPHDuTBCsRq+u5kYHwImIXPxq04kW2HiqYsxJrun6n8=";
   };
 
   installPhase = ''
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     install -Dm644 resources/shell/bash-completion $out/share/bash-completion/completions/flow
   '';
 
-  buildInputs = (with ocamlPackages; [ ocaml findlib ocamlbuild dtoa core_kernel sedlex_2 ocaml_lwt lwt_log lwt_ppx ppx_deriving ppx_gen_rec ppx_tools_versioned visitors wtf8 ocaml-migrate-parsetree ])
+  buildInputs = (with ocamlPackages; [ ocaml findlib ocamlbuild ocaml-migrate-parsetree dtoa core_kernel sedlex_2 ocaml_lwt lwt_log lwt_ppx ppx_deriving ppx_gen_rec ppx_tools_versioned visitors wtf8 ])
     ++ lib.optionals stdenv.isDarwin [ CoreServices ];
 
   meta = with lib; {
@@ -25,7 +25,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/facebook/flow/releases/tag/v${version}";
     license = licenses.mit;
     platforms = ocamlPackages.ocaml.meta.platforms;
-    broken = stdenv.isAarch64; # https://github.com/facebook/flow/issues/7556
     maintainers = with maintainers; [ marsam puffnfresh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix b/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix
index 15891e74044a..4b294bf8adaf 100644
--- a/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchFromGitHub, cmake, pkg-config, zlib, curl, elfutils, python, libiberty, libopcodes}:
+{lib, stdenv, fetchFromGitHub, cmake, pkg-config, zlib, curl, elfutils, python3, libiberty, libopcodes}:
 
 stdenv.mkDerivation rec {
   pname = "kcov";
@@ -12,9 +12,11 @@ stdenv.mkDerivation rec {
   };
 
   preConfigure = "patchShebangs src/bin-to-c-source.py";
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config python3 ];
 
-  buildInputs = [ zlib curl elfutils python libiberty libopcodes ];
+  buildInputs = [ curl zlib elfutils libiberty libopcodes ];
+
+  strictDeps = true;
 
   meta = with lib; {
     description = "Code coverage tester for compiled programs, Python scripts and shell scripts";
diff --git a/nixpkgs/pkgs/development/tools/analysis/lcov/default.nix b/nixpkgs/pkgs/development/tools/analysis/lcov/default.nix
index 35c75d67da50..30df5daed6ff 100644
--- a/nixpkgs/pkgs/development/tools/analysis/lcov/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/lcov/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1kvc7fkp45w48f0bxwbxvxkicnjrrydki0hllg294n1wrp80zzyk";
   };
 
-  buildInputs = [ perl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ];
 
   preBuild = ''
     patchShebangs bin/
diff --git a/nixpkgs/pkgs/development/tools/analysis/makefile2graph/default.nix b/nixpkgs/pkgs/development/tools/analysis/makefile2graph/default.nix
index 66f767f47028..1f9e2ba3c562 100644
--- a/nixpkgs/pkgs/development/tools/analysis/makefile2graph/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/makefile2graph/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation {
     description = "Creates a graph of dependencies from GNU-Make; Output is a graphiz-dot file or a Gexf-XML file";
     maintainers = with maintainers; [ cmcdragonkai ];
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix b/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix
index 138933ebb57f..dea2fd895f15 100644
--- a/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix
@@ -1,7 +1,6 @@
 { lib
 , mkDerivation
 , fetchFromGitHub
-, fetchpatch
 , fixplate
 , tasty
 , tasty-hunit
@@ -37,13 +36,10 @@ mkDerivation rec {
   executableHaskellDepends = [ streamly mtl path pretty-terminal text base aeson cmdargs containers hnix bytestring path-io ];
   testHaskellDepends = [ tasty tasty-hunit tasty-th ];
 
-  patches = [
-    # raise upper bound on hnix https://github.com/Synthetica9/nix-linter/pull/46
-    (fetchpatch {
-      url = "https://github.com/Synthetica9/nix-linter/commit/b406024e525977b3c69d78d6a94a683e2ded121f.patch";
-      sha256 = "0viwbprslcmy70bxy3v27did79nqhlc0jcx4kp0lycswaccvnp1j";
-    })
-  ];
+  # Relax upper bound on hnix https://github.com/Synthetica9/nix-linter/pull/46
+  postPatch = ''
+    substituteInPlace nix-linter.cabal --replace "hnix >=0.8 && < 0.11" "hnix >=0.8"
+  '';
 
   description = "Linter for Nix(pkgs), based on hnix";
   homepage = "https://github.com/Synthetica9/nix-linter";
diff --git a/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix b/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
index 0ef33270e92b..f7f933392ab4 100644
--- a/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
@@ -12,8 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1zv87nqhrzsxx0m891df4vagzssj3kblfv9yp7j96dw0vn9950qa";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ cmake pkg-config makeWrapper ];
   propagatedBuildInputs = with qt5; [
      qt5.qtbase
      qtdeclarative
@@ -23,6 +22,8 @@ rustPlatform.buildRustPackage rec {
      git
   ];
 
+  dontWrapQtApps = true;
+
   cargoSha256 = "1hdsn011y9invfy7can8c02zwa7birj9y1rxhrj7wyv4gh3659i0";
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix b/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix
index a75445c363b0..3aa37d650cb2 100644
--- a/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pmd";
-  version = "6.29.0";
+  version = "6.30.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip";
-    sha256 = "08iibpf9jhkk7ihsmlm85wpjwy1bvznbvggvqyw6109f9gzlrvvq";
+    sha256 = "sha256-LgQmoUdsG5sAyHs9YyiaOFonMFaVtHKdp/KvSAWSy8w=";
   };
 
   nativeBuildInputs = [ unzip makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix b/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix
index 0145e51ee262..5e321db01aa4 100644
--- a/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix
@@ -12,6 +12,8 @@ in stdenv.mkDerivation {
 
   nativeBuildInputs = [ qmake ];
 
+  dontWrapQtApps = true;
+
   postInstall = ''
      mkdir -p $out/bin
      cp -p converters/dprof2calltree $out/bin/dprof2calltree
diff --git a/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix b/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix
deleted file mode 100644
index 6d9543e3836f..000000000000
--- a/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ fetchFromGitHub, lib, mkDerivation
-# nativeBuildInputs
-, qmake, pkg-config
-# Qt
-, qtbase, qtsvg, qtwebengine
-# buildInputs
-, r2-for-cutter
-, python3
-, wrapQtAppsHook }:
-
-mkDerivation rec {
-  pname = "radare2-cutter";
-  version = "1.12.0";
-
-  src = fetchFromGitHub {
-    owner = "radareorg";
-    repo = "cutter";
-    rev = "v${version}";
-    sha256 = "0ljj3j3apbbw628n2nyrxpbnclixx20bqjxm0xwggqzz9vywsar0";
-  };
-
-  postUnpack = "export sourceRoot=$sourceRoot/src";
-
-  # Remove this "very helpful" helper file intended for discovering r2,
-  # as it's a doozy of harddcoded paths and unexpected behavior.
-  # Happily Nix has everything all set so we don't need it,
-  # other than as basis for the qmakeFlags set below.
-  postPatch = ''
-    substituteInPlace Cutter.pro \
-      --replace "include(lib_radare2.pri)" ""
-  '';
-
-  nativeBuildInputs = [ qmake pkg-config python3 wrapQtAppsHook ];
-  propagatedBuildInputs = [ python3.pkgs.pyside2 ];
-  buildInputs = [ qtbase qtsvg qtwebengine r2-for-cutter python3 ];
-
-  qmakeFlags = with python3.pkgs; [
-    "CONFIG+=link_pkg-config"
-    "PKGCONFIG+=r_core"
-    # Leaving this enabled doesn't break build but generates errors
-    # at runtime (to console) about being unable to load needed bits.
-    # Disable until can be looked at.
-    "CUTTER_ENABLE_JUPYTER=false"
-    # Enable support for Python plugins
-    "CUTTER_ENABLE_PYTHON=true"
-    "CUTTER_ENABLE_PYTHON_BINDINGS=true"
-    "SHIBOKEN_EXTRA_OPTIONS+=-I${r2-for-cutter}/include/libr"
-  ];
-
-  preBuild = ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS $(pkg-config --libs python3-embed)"
-    qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "A Qt and C++ GUI for radare2 reverse engineering framework";
-    homepage = src.meta.homepage;
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ mic92 dtzWill ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix b/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
index 3623893ea63e..1622c6168606 100644
--- a/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
@@ -1,128 +1,111 @@
-{lib, stdenv, fetchFromGitHub
+{ lib
+, stdenv
+, fetchFromGitHub
 , buildPackages
 , pkg-config
-, libusb-compat-0_1, readline, libewf, perl, zlib, openssl
-, libuv, file, libzip, xxHash
-, gtk2 ? null, vte ? null, gtkdialog ? null
-, python3 ? null
-, ruby ? null
-, lua ? null
+, libusb-compat-0_1
+, readline
+, libewf
+, perl
+, zlib
+, openssl
+, libuv
+, file
+, libzip
+, xxHash
+, gtk2
+, vte
+, gtkdialog
+, python3
+, ruby
+, lua
 , useX11 ? false
 , rubyBindings ? false
 , pythonBindings ? false
 , luaBindings ? false
 }:
 
-assert useX11 -> (gtk2 != null && vte != null && gtkdialog != null);
-assert rubyBindings -> ruby != null;
-assert pythonBindings -> python3 != null;
-
-
 let
   inherit (lib) optional;
 
-  generic = {
-    version_commit, # unused
-    gittap,
-    gittip,
-    rev,
-    version,
-    sha256,
-    cs_ver,
-    cs_sha256
-  }:
-    stdenv.mkDerivation {
-      pname = "radare2";
-      inherit version;
+  #<generated>
+  # DO NOT EDIT! Automatically generated by ./update.py
+  gittap = "5.1.1";
+  gittip = "a86f8077fc148abd6443384362a3717cd4310e64";
+  rev = "5.1.1";
+  version = "5.1.1";
+  sha256 = "0hv9x31iabasj12g8f04incr1rbcdkxi3xnqn3ggp8gl4h6pf2f3";
+  cs_ver = "4.0.2";
+  cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
+  #</generated>
+in
+stdenv.mkDerivation {
+  pname = "radare2";
+  inherit version;
 
-      src = fetchFromGitHub {
-        owner = "radare";
-        repo = "radare2";
-        inherit rev sha256;
-      };
+  src = fetchFromGitHub {
+    owner = "radare";
+    repo = "radare2";
+    inherit rev sha256;
+  };
 
-      postPatch = let
-        capstone = fetchFromGitHub {
-          owner = "aquynh";
-          repo = "capstone";
-          # version from $sourceRoot/shlr/Makefile
-          rev = cs_ver;
-          sha256 = cs_sha256;
-        };
-      in ''
-        mkdir -p build/shlr
-        cp -r ${capstone} capstone-${cs_ver}
-        chmod -R +w capstone-${cs_ver}
-        # radare 3.3 compat for radare2-cutter
-        (cd shlr && ln -s ../capstone-${cs_ver} capstone)
-        tar -czvf shlr/capstone-${cs_ver}.tar.gz capstone-${cs_ver}
-      '';
+  postPatch =
+    let
+      capstone = fetchFromGitHub {
+        owner = "aquynh";
+        repo = "capstone";
+        # version from $sourceRoot/shlr/Makefile
+        rev = cs_ver;
+        sha256 = cs_sha256;
+      };
+    in
+    ''
+      mkdir -p build/shlr
+      cp -r ${capstone} capstone-${cs_ver}
+      chmod -R +w capstone-${cs_ver}
+      tar -czvf shlr/capstone-${cs_ver}.tar.gz capstone-${cs_ver}
+    '';
 
-      postInstall = ''
-        install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm
-      '';
+  postInstall = ''
+    install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm
+  '';
 
-      WITHOUT_PULL="1";
-      makeFlags = [
-        "GITTAP=${gittap}"
-        "GITTIP=${gittip}"
-        "RANLIB=${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.bintools.targetPrefix}ranlib"
-      ];
-      configureFlags = [
-        "--with-sysmagic"
-        "--with-syszip"
-        "--with-sysxxhash"
-        "--with-openssl"
-      ];
+  WITHOUT_PULL = "1";
+  makeFlags = [
+    "GITTAP=${gittap}"
+    "GITTIP=${gittip}"
+    "RANLIB=${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.bintools.targetPrefix}ranlib"
+  ];
+  configureFlags = [
+    "--with-sysmagic"
+    "--with-syszip"
+    "--with-sysxxhash"
+    "--with-openssl"
+  ];
 
-      enableParallelBuilding = true;
-      depsBuildBuild = [ buildPackages.stdenv.cc ];
+  enableParallelBuilding = true;
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
 
-      nativeBuildInputs = [ pkg-config ];
-      buildInputs = [ file readline libusb-compat-0_1 libewf perl zlib openssl libuv ]
-        ++ optional useX11 [ gtkdialog vte gtk2 ]
-        ++ optional rubyBindings [ ruby ]
-        ++ optional pythonBindings [ python3 ]
-        ++ optional luaBindings [ lua ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ file readline libusb-compat-0_1 libewf perl zlib openssl libuv ]
+    ++ optional useX11 [ gtkdialog vte gtk2 ]
+    ++ optional rubyBindings [ ruby ]
+    ++ optional pythonBindings [ python3 ]
+    ++ optional luaBindings [ lua ];
 
-      propagatedBuildInputs = [
-        # radare2 exposes r_lib which depends on these libraries
-        file # for its list of magic numbers (`libmagic`)
-        libzip
-        xxHash
-      ];
+  propagatedBuildInputs = [
+    # radare2 exposes r_lib which depends on these libraries
+    file # for its list of magic numbers (`libmagic`)
+    libzip
+    xxHash
+  ];
 
-      meta = {
-        description = "unix-like reverse engineering framework and commandline tools";
-        homepage = "http://radare.org/";
-        license = lib.licenses.gpl2Plus;
-        maintainers = with lib.maintainers; [ raskin makefu mic92 ];
-        platforms = with lib.platforms; linux;
-        inherit version;
-      };
+  meta = {
+    description = "unix-like reverse engineering framework and commandline tools";
+    homepage = "http://radare.org/";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ raskin makefu mic92 ];
+    platforms = with lib.platforms; linux;
+    inherit version;
   };
-in {
-  #<generated>
-  # DO NOT EDIT! Automatically generated by ./update.py
-  radare2 = generic {
-    version_commit = "25480";
-    gittap = "5.0.0";
-    gittip = "a476454c00f64acbb7425c178c98714ef76e26d7";
-    rev = "5.0.0";
-    version = "5.0.0";
-    sha256 = "0aa7c27kd0l55fy5qfvxqmakp4pz6240v3hn84095qmqkzcbs420";
-    cs_ver = "4.0.2";
-    cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
-  };
-  r2-for-cutter = generic {
-    version_commit = "24959";
-    gittap = "4.5.1";
-    gittip = "293cf5ae65ba4e28828095dcae212955593ba255";
-    rev = "4.5.1";
-    version = "4.5.1";
-    sha256 = "0qigy1px0jy74c5ig73dc2fqjcy6vcy76i25dx9r3as6zfpkkaxj";
-    cs_ver = "4.0.2";
-    cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
-  };
-  #</generated>
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/radare2/update.py b/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
index ebd6e073fe53..ede0a6058a94 100755
--- a/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
+++ b/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
@@ -48,24 +48,6 @@ def get_radare2_rev() -> str:
     raise RuntimeError(f"No release found at {feed_url}")
 
 
-def get_cutter_version() -> str:
-    version_expr = """
-(with import <nixpkgs> {}; lib.getVersion (qt5.callPackage <radare2/cutter.nix> {}))
-"""
-    return sh("nix", "eval", "--raw", version_expr.strip(), "-I", "radare2={0}".format(SCRIPT_DIR))
-
-
-def get_r2_cutter_rev() -> str:
-    version = get_cutter_version()
-    url = f"https://api.github.com/repos/radareorg/cutter/contents?ref=v{version}"
-    with urllib.request.urlopen(url) as response:
-        data = json.load(response)  # type: ignore
-    for entry in data:
-        if entry["name"] == "radare2":
-            return entry["sha"]
-    raise Exception("no radare2 submodule found in github.com/radareorg/cutter")
-
-
 def git(dirname: str, *args: str) -> str:
     return sh("git", "-C", dirname, *args)
 
@@ -94,42 +76,23 @@ def get_repo_info(dirname: str, rev: str) -> Dict[str, str]:
     )
 
 
-def write_package_expr(version: str, info: Dict[str, str]) -> str:
-    return f"""generic {{
-    version_commit = "{info["version_commit"]}";
-    gittap = "{info["gittap"]}";
-    gittip = "{info["gittip"]}";
-    rev = "{info["rev"]}";
-    version = "{version}";
-    sha256 = "{info["sha256"]}";
-    cs_ver = "{info["cs_ver"]}";
-    cs_sha256 = "{info["cs_sha256"]}";
-  }}"""
-
-
 def main() -> None:
-    radare2_rev = get_radare2_rev()
-    r2_cutter_rev = get_r2_cutter_rev()
+    version = get_radare2_rev()
 
     with tempfile.TemporaryDirectory() as dirname:
         git(
             dirname,
             "clone",
             "--branch",
-            radare2_rev,
+            version,
             "https://github.com/radare/radare2",
             ".",
         )
         nix_file = str(SCRIPT_DIR.joinpath("default.nix"))
 
-        radare2_info = get_repo_info(dirname, radare2_rev)
-
-        git(dirname, "checkout", r2_cutter_rev)
+        info = get_repo_info(dirname, version)
 
         timestamp = git(dirname, "log", "-n1", "--format=%at")
-        r2_cutter_version = datetime.fromtimestamp(int(timestamp)).strftime("%Y-%m-%d")
-
-        r2_cutter_info = get_repo_info(dirname, r2_cutter_rev)
 
         in_block = False
         with fileinput.FileInput(nix_file, inplace=True) as f:
@@ -139,8 +102,13 @@ def main() -> None:
                     print(
                         f"""  #<generated>
   # DO NOT EDIT! Automatically generated by ./update.py
-  radare2 = {write_package_expr(radare2_rev, radare2_info)};
-  r2-for-cutter = {write_package_expr(r2_cutter_version, r2_cutter_info)};
+  gittap = "{info["gittap"]}";
+  gittip = "{info["gittip"]}";
+  rev = "{info["rev"]}";
+  version = "{version}";
+  sha256 = "{info["sha256"]}";
+  cs_ver = "{info["cs_ver"]}";
+  cs_sha256 = "{info["cs_sha256"]}";
   #</generated>"""
                     )
                 elif "#</generated>" in l:
diff --git a/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix b/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix
index 0d10d6d6b277..ed060d847ec8 100644
--- a/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0v3vla3k6csfb8w0j9njrhcjj4n7yh172n9wv6z397f1sa0fs202";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     mkdir -p $out/lib $out/doc
diff --git a/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix b/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
new file mode 100644
index 000000000000..55795b9830cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
@@ -0,0 +1,44 @@
+{ fetchFromGitHub, lib, mkDerivation
+# nativeBuildInputs
+, qmake, pkg-config, cmake
+# Qt
+, qtbase, qtsvg, qtwebengine, qttools
+# buildInputs
+, rizin
+, python3
+, wrapQtAppsHook
+}:
+
+mkDerivation rec {
+  pname = "cutter";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "rizinorg";
+    repo = "cutter";
+    rev = "v${version}";
+    sha256 = "sha256-uIN/NR+swu9Ie0wP2aBhw5WBvTe9NDmzSs+lQMCeavc=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake qmake pkg-config python3 wrapQtAppsHook ];
+  propagatedBuildInputs = [ python3.pkgs.pyside2 ];
+  buildInputs = [ qtbase qttools qtsvg qtwebengine rizin python3 ];
+
+  cmakeFlags = [
+    "-DCUTTER_USE_BUNDLED_RIZIN=OFF"
+    "-DCUTTER_ENABLE_PYTHON=ON"
+    "-DCUTTER_ENABLE_PYTHON_BINDINGS=ON"
+  ];
+
+  preBuild = ''
+    qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
+  '';
+
+  meta = with lib; {
+    description = "Free and Open Source Reverse Engineering Platform powered by rizin";
+    homepage = src.meta.homepage;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ mic92 dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix b/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
new file mode 100644
index 000000000000..fdc8da7b5f80
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, libusb-compat-0_1
+, readline
+, libewf
+, perl
+, zlib
+, openssl
+, libuv
+, file
+, libzip
+, lz4
+, xxHash
+, meson
+, cmake
+, ninja
+, capstone
+, tree-sitter
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rizin";
+  version = "0.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/rizinorg/rizin/releases/download/v${version}/rizin-src-${version}.tar.xz";
+    sha256 = "sha256-npUp8wJiKAaQKSigXtndhJLTJ4+pyFqa0FwDLBqR/sE=";
+  };
+
+  mesonFlags = [
+    "-Duse_sys_capstone=true"
+    "-Duse_sys_magic=true"
+    "-Duse_sys_libzip=true"
+    "-Duse_sys_zlib=true"
+    "-Duse_sys_xxhash=true"
+    "-Duse_sys_lz4=true"
+    "-Duse_sys_openssl=true"
+    "-Duse_sys_tree_sitter=true"
+  ];
+
+  nativeBuildInputs = [ pkg-config meson ninja cmake ];
+
+  buildInputs = [
+    file
+    libzip
+    capstone
+    readline
+    libusb-compat-0_1
+    libewf
+    perl
+    zlib
+    lz4
+    openssl
+    libuv
+    tree-sitter
+    xxHash
+  ];
+
+  meta = {
+    description = "UNIX-like reverse engineering framework and command-line toolset.";
+    homepage = "https://rizin.re/";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ raskin makefu mic92 ];
+    platforms = with lib.platforms; linux;
+    inherit version;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/analysis/spin/default.nix b/nixpkgs/pkgs/development/tools/analysis/spin/default.nix
index 49e31f53a846..58bb58fa2b0c 100644
--- a/nixpkgs/pkgs/development/tools/analysis/spin/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/spin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, makeWrapper, yacc, gcc
+{ stdenv, lib, fetchurl, makeWrapper, bison, gcc
 , withISpin ? true, tk, swarm, graphviz }:
 
 let
@@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ yacc ];
+  buildInputs = [ bison ];
 
   sourceRoot = "Spin/Src${version}";
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix b/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
index 3455d78b23f4..a562a1baeeeb 100644
--- a/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svlint";
-  version = "0.4.16";
+  version = "0.4.18";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = "svlint";
     rev = "v${version}";
-    sha256 = "sha256-2PYHKJ141RWdUIDAKAFK6IzR4C41bHi/A8lDErSRLnU=";
+    sha256 = "sha256-p002oWwTQxesWLgLq8oKKzuZKXUdO4C1TZ7lR/Mh1PA=";
   };
 
-  cargoSha256 = "sha256-x5wU0Ld4ssRoNqo9graJhjlpel+VdVdkKZMjHFqZsrE=";
+  cargoSha256 = "sha256-M0hng1JcR5Q829bVOaTASl0Eq6fFm8mUFsS5zx1JX94=";
 
   meta = with lib; {
     description = "SystemVerilog linter";
diff --git a/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix b/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix
index 894d9a2357ea..e4ebb85f27f4 100644
--- a/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
     description = "Verification script generator for Spin";
     homepage = "http://spinroot.com/";
     license = licenses.free;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix b/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
index aa5223ce3f8d..c8ae231dea8d 100644
--- a/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.24.1";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00v6d1ffj1f4djbdf41bw4ymy2fhph1b5kfi50fp9c3c7319sqwr";
+    sha256 = "054g0lr0r1xzbss4b4j9ixkls9p1llmw61afib1381z4k0lvzgwn";
   };
 
-  vendorSha256 = "1xy1vg34nv6v77sx13d3663v7xfm0f2kimdsjqzwpkzz8a6q6g2m";
+  vendorSha256 = "0j2avkhyq6vz6113lkf004d4hysygc6iw78v70z98s6m15mg9imn";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix b/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
index 14153b920e8e..246f42b63999 100644
--- a/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "tfsec";
-  version = "0.38.1";
+  version = "0.39.16";
 
   src = fetchFromGitHub {
     owner = "tfsec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ezTmtKR6ng3fuVJzLP81o0aoaqu3XPUMF0BIKFCwXdw=";
+    sha256 = "sha256-5We3Nk/AU5dj37vG4pvqzvNztK01PAPadQV/CgHZe8w=";
   };
 
   goPackagePath = "github.com/tfsec/tfsec";
diff --git a/nixpkgs/pkgs/development/tools/asmfmt/default.nix b/nixpkgs/pkgs/development/tools/asmfmt/default.nix
index c93b864b70f8..dca74fa76b73 100644
--- a/nixpkgs/pkgs/development/tools/asmfmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/asmfmt/default.nix
@@ -1,12 +1,11 @@
 { buildGoPackage
 , lib
 , fetchFromGitHub
-, fetchpatch
 }:
 
 buildGoPackage rec {
   pname = "asmfmt";
-  version = "1.2.1";
+  version = "1.2.3";
 
   goPackagePath = "github.com/klauspost/asmfmt";
 
@@ -14,7 +13,7 @@ buildGoPackage rec {
     owner = "klauspost";
     repo = "asmfmt";
     rev = "v${version}";
-    sha256 = "0qwxb4yx12yl817vgbhs7acaj98lgk27dh50mb8sm9ccw1f43h9i";
+    sha256 = "0f2cgwxs2b2kpq5348h8hjkcqc40p8ajapzpcy9ia2fsmsn2a2s4";
   };
 
   goDeps = ./deps.nix;
diff --git a/nixpkgs/pkgs/development/tools/async-profiler/default.nix b/nixpkgs/pkgs/development/tools/async-profiler/default.nix
new file mode 100644
index 000000000000..3d887d6c8935
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/async-profiler/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchFromGitHub, jdk8 }:
+
+stdenv.mkDerivation rec {
+  pname = "async-profiler";
+  version = "1.8.4";
+
+  src = fetchFromGitHub {
+    owner = "jvm-profiling-tools";
+    repo = "async-profiler";
+    rev = "v${version}";
+    sha256 = "sha256-R/TFElytq3mBG+jKjb7XlFUqpXBpSZGfbscUdg2vevE=";
+  };
+
+  buildInputs = [ jdk8 ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D "$src/profiler.sh" "$out/bin/async-profiler"
+    install -D build/jattach "$out/bin/jattach"
+    install -D build/libasyncProfiler.so "$out/lib/libasyncProfiler.so"
+    install -D -t "$out/share/java/" build/*.jar
+    runHook postInstall
+  '';
+
+  fixupPhase = ''
+    substituteInPlace $out/bin/async-profiler \
+      --replace 'JATTACH=$SCRIPT_DIR/build/jattach' \
+                'JATTACH=${placeholder "out"}/bin/jattach' \
+      --replace 'PROFILER=$SCRIPT_DIR/build/libasyncProfiler.so' \
+                'PROFILER=${placeholder "out"}/lib/libasyncProfiler.so'
+  '';
+
+  meta = with lib; {
+    description = "A low overhead sampling profiler for Java that does not suffer from Safepoint bias problem";
+    homepage    = "https://github.com/jvm-profiling-tools/async-profiler";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ mschuwalow ];
+    platforms   = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix b/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
index 0859ed513230..1429fcab4c68 100644
--- a/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
@@ -1,5 +1,4 @@
-{ fetchFromGitHub
-, lib
+{ lib
 , python3
 , enableTelemetry ? false
 }:
diff --git a/nixpkgs/pkgs/development/tools/azcopy/default.nix b/nixpkgs/pkgs/development/tools/azcopy/default.nix
index 98a6bcd5bbcc..6b94ed0a93f4 100644
--- a/nixpkgs/pkgs/development/tools/azcopy/default.nix
+++ b/nixpkgs/pkgs/development/tools/azcopy/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "azure-storage-azcopy";
-  version = "10.8.0";
+  version = "10.9.0";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-storage-azcopy";
     rev = "v${version}";
-    sha256 = "sha256-zA0/5lpVefZD0m7g7SfqSRAFkQm2b+g/F3doCl9oAn8=";
+    sha256 = "sha256-IVbvBqp/7Y3La0pP6gbWl0ATfEvkCuR4J9ChTDPNhB0=";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-t7PluxN6naDB35eC59Xus1hgZflgViWF2yFog9mkaOA=";
+  vendorSha256 = "sha256-mj1TvNuFFPJGAJCBTQtU5WWPhHbiXUxRiMZQ/XvEy0U=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/bashate/default.nix b/nixpkgs/pkgs/development/tools/bashate/default.nix
new file mode 100644
index 000000000000..cc5d3aca2c3b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/bashate/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, Babel
+, buildPythonApplication
+, fetchPypi
+, fixtures
+, mock
+, pbr
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonApplication rec {
+  pname = "bashate";
+  version = "2.0.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05qsaaqfpvr6h4g19prbkpznwb9a4dwzyzivdzh9x80cgkq0r6gb";
+  };
+
+  propagatedBuildInputs = [
+    Babel
+    pbr
+    setuptools
+  ];
+
+  checkInputs = [
+    fixtures
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "bashate" ];
+
+  meta = with lib; {
+    description = "Style enforcement for bash programs";
+    homepage = "https://opendev.org/openstack/bashate";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix b/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix
index ba9412c286c4..393799241780 100644
--- a/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix
+++ b/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "bazel-kazel";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "repo-infra";
     rev = "v${version}";
-    sha256 = "sha256-YWTWw5vDkDvIHOTqZM2xH8VPaVRuB2oyynvwWNmvPXs=";
+    sha256 = "sha256-g7jfuWe4UeAbNf+kOa0Y9BamUnGEbOGxZ+KdQWdWl48=";
   };
 
   vendorSha256 = "sha256-1+7Mx1Zh1WolqTpWNe560PRzRYaWVUVLvNvUOysaW5I=";
diff --git a/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix b/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
index bc3a2828f6cd..657704a653c7 100644
--- a/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
+++ b/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , git
 , go
-, python
+, python3
 , lib, stdenv
 }:
 
@@ -22,7 +22,7 @@ buildBazelPackage rec {
     sha256 = "0gigl1lg8sb4bj5crvj54329ws4yirldbncs15f96db6vhp0ig7r";
   };
 
-  nativeBuildInputs = [ go git python ];
+  nativeBuildInputs = [ go git python3 ];
   removeRulesCC = false;
 
   bazelTarget = "//ibazel";
diff --git a/nixpkgs/pkgs/development/tools/boost-build/default.nix b/nixpkgs/pkgs/development/tools/boost-build/default.nix
index 8566edd2315f..a821e661a604 100644
--- a/nixpkgs/pkgs/development/tools/boost-build/default.nix
+++ b/nixpkgs/pkgs/development/tools/boost-build/default.nix
@@ -1,34 +1,39 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, bison
+}:
 
 stdenv.mkDerivation rec {
   pname = "boost-build";
-  version = "2016.03";
+  version = "4.4.1";
 
   src = fetchFromGitHub {
     owner = "boostorg";
     repo = "build";
     rev = version;
-    sha256 = "1qw5marmp7z09nwcjlqrmqdg9b6myfqj3zvfz888x9mbidrmhn6p";
+    sha256 = "1r4rwlq87ydmsdqrik4ly5iai796qalvw7603mridg2nwcbbnf54";
   };
 
-  hardeningDisable = [ "format" ];
-
-  patchPhase = ''
-    grep -r '/usr/share/boost-build' \
-      | awk '{split($0,a,":"); print a[1];}' \
-      | xargs sed -i "s,/usr/share/boost-build,$out/share/boost-build,"
-  '';
+  nativeBuildInputs = [
+    bison
+  ];
 
   buildPhase = ''
+    runHook preBuild
     ./bootstrap.sh
+    runHook postBuild
   '';
 
   installPhase = ''
-    ./b2 install --prefix=$out
+    runHook preInstall
+    ./b2 install --prefix="$out"
+    ln -s b2 "$out/bin/bjam"
+    runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://www.boost.org/boost-build2/";
+    homepage = "https://www.boost.org/build/";
     license = lib.licenses.boost;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ivan-tkatchev ];
diff --git a/nixpkgs/pkgs/development/tools/buf/default.nix b/nixpkgs/pkgs/development/tools/buf/default.nix
new file mode 100644
index 000000000000..fc232d55da6d
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/buf/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, protobuf
+}:
+
+buildGoModule rec {
+  pname = "buf";
+  version = "0.40.0";
+
+  src = fetchFromGitHub {
+    owner = "bufbuild";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-N6o+1cfer8rgKJ3+CL25axJSjGV/YSG1sLIHXJzsC6o=";
+  };
+
+  patches = [
+    ./skip_test_requiring_network.patch
+  ];
+
+  preCheck = ''
+    export PATH=$PATH:$GOPATH/bin
+  '';
+
+  nativeBuildInputs = [ protobuf ];
+
+  vendorSha256 = "sha256-vl+WqtpegoAvylx/lcyfJk8DAOub8U4Lx3Pe3eW4M/E=";
+
+  meta = with lib; {
+    description = "Create consistent Protobuf APIs that preserve compatibility and comply with design best-practices";
+    homepage = "https://buf.build";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/buf/skip_test_requiring_network.patch b/nixpkgs/pkgs/development/tools/buf/skip_test_requiring_network.patch
new file mode 100644
index 000000000000..8d3e15c17ffb
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/buf/skip_test_requiring_network.patch
@@ -0,0 +1,15 @@
+diff --git a/internal/buf/internal/buftesting/buftesting.go b/internal/buf/internal/buftesting/buftesting.go
+index dc8da0c..70ad299 100644
+--- a/internal/buf/internal/buftesting/buftesting.go
++++ b/internal/buf/internal/buftesting/buftesting.go
+@@ -100,6 +100,10 @@ func RunActualProtoc(
+ 
+ // GetGoogleapisDirPath gets the path to a clone of googleapis.
+ func GetGoogleapisDirPath(t *testing.T, buftestingDirPath string) string {
++	// Requires network access, which is not available during
++	// the nixpkgs sandboxed build
++	t.Skip()
++
+ 	googleapisDirPath := filepath.Join(buftestingDirPath, testGoogleapisDirPath)
+ 	require.NoError(
+ 		t,
diff --git a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix
index 182b8633aa01..93644caa5a4e 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   pname = "ant";
   inherit version;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   src = fetchurl {
     url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
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 d88068c1c3ee..d2ef8361ec0e 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   pname = "ant";
   inherit version;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   src = fetchurl {
     url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
diff --git a/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix b/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix
index 4658703f8b10..3a1866e0b399 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "1i9qlj3vy4j1yyf22nwisd0pg88n9qzp9ymfhwqabadka7br3b96";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   inherit jdk;
 
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix
index a828c57b8c00..556725cca6c4 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, lua5_3, python }:
+{ lib, stdenv, fetchFromGitHub, lua5_3, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "bam";
@@ -11,11 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6";
   };
 
-  buildInputs = [ lua5_3 python ];
+  nativeBuildInputs = [ lua5_3 python3 ];
 
   buildPhase = "${stdenv.shell} make_unix.sh";
 
-  checkPhase = "${python.interpreter} scripts/test.py";
+  checkPhase = "${python3.interpreter} scripts/test.py";
+
+  strictDeps = true;
 
   installPhase = ''
     mkdir -p "$out/share/bam"
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
index 2ec244e502bf..f03f42be389f 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
@@ -1,6 +1,6 @@
 { stdenv, callPackage, lib, fetchurl, fetchpatch, runCommand, makeWrapper
 , zip, unzip, bash, writeCBin, coreutils
-, which, python, perl, gawk, gnused, gnutar, gnugrep, gzip, findutils
+, which, python3, perl, gawk, gnused, gnutar, gnugrep, gzip, findutils
 # Apple dependencies
 , cctools, llvmPackages_8, CoreFoundation, CoreServices, Foundation
 # Allow to independently override the jdks used to build and run respectively
@@ -210,8 +210,8 @@ stdenv'.mkDerivation rec {
       # Substitute python's stub shebang to plain python path. (see TODO add pr URL)
       # See also `postFixup` where python is added to $out/nix-support
       substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt\
-          --replace "/usr/bin/env python" "${python}/bin/python" \
-          --replace "NIX_STORE_PYTHON_PATH" "${python}/bin/python" \
+          --replace "/usr/bin/env python" "${python3.interpreter}" \
+          --replace "NIX_STORE_PYTHON_PATH" "${python3.interpreter}" \
 
       # md5sum is part of coreutils
       sed -i 's|/sbin/md5|md5sum|' \
@@ -287,11 +287,13 @@ stdenv'.mkDerivation rec {
     buildJdk
   ];
 
+  strictDeps = true;
+
   # when a command can’t be found in a bazel build, you might also
   # need to add it to `defaultShellPath`.
   nativeBuildInputs = [
     zip
-    python
+    python3
     unzip
     makeWrapper
     which
@@ -380,7 +382,7 @@ stdenv'.mkDerivation rec {
     echo "${customBash} ${defaultShellPath}" >> $out/nix-support/depends
     # The templates get tar’d up into a .jar,
     # so nix can’t detect python is needed in the runtime closure
-    echo "${python}" >> $out/nix-support/depends
+    echo "${python3}" >> $out/nix-support/depends
   '';
 
   dontStrip = true;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
index 41ae9ce21125..5b20ece76803 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
@@ -62,6 +62,7 @@ let
       srcs.rules_cc
       srcs.rules_java
       srcs.rules_proto
+      srcs.com_google_protobuf
       ]);
 
   distDir = runCommand "bazel-deps" {} ''
@@ -527,6 +528,13 @@ stdenv.mkDerivation rec {
         --output=./bazel_src/output/bazel-complete.bash \
         --prepend=./bazel_src/scripts/bazel-complete-header.bash \
         --prepend=./bazel_src/scripts/bazel-complete-template.bash
+
+    # 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 -
   '';
 
   installPhase = ''
@@ -537,7 +545,15 @@ stdenv.mkDerivation rec {
     # The binary _must_ exist with this naming if your project contains a .bazelversion
     # file.
     cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
+
+    mkdir $out/share
+    cp ./bazel_src/bazel-bin/src/tools/execlog/parser_deploy.jar $out/share/parser_deploy.jar
     mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch}
+    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 \
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
index 5482db67caee..31dbc2779cde 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
@@ -315,7 +315,7 @@ stdenv.mkDerivation rec {
   src_for_updater = stdenv.mkDerivation rec {
     name = "updater-sources";
     inherit src;
-    buildInputs = [ unzip ];
+    nativeBuildInputs = [ unzip ];
     inherit sourceRoot;
     installPhase = ''
       cp -r . "$out"
@@ -560,6 +560,13 @@ stdenv.mkDerivation rec {
     ${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 -
   '';
 
   installPhase = ''
@@ -572,6 +579,14 @@ stdenv.mkDerivation rec {
     cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
     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 \
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix
index 74b1f7040205..e7b0c1d105b4 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix
@@ -12,17 +12,19 @@
 , c-ares
 , abseil-cpp
 , zlib
+, sqlite
+, re2
 }:
 
 stdenv.mkDerivation rec {
   pname = "bear";
-  version = "3.0.3";
+  version = "3.0.9";
 
   src = fetchFromGitHub {
     owner = "rizsotto";
     repo = pname;
     rev = version;
-    sha256 = "1abx5h6xy0h3mz29ial5si8smkmjzla050d130pcc6dzr4ic642w";
+    sha256 = "xac8PYo3qYjtQbDy8piOz5BQQpcVlAvMCv1qHrVZmPQ=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -38,6 +40,8 @@ stdenv.mkDerivation rec {
     c-ares
     abseil-cpp
     zlib
+    sqlite
+    re2
   ];
 
   patches = [
@@ -56,5 +60,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.babariviere ];
+    # ld: symbol(s) not found for architecture x86_64
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bear/no-double-relative.patch b/nixpkgs/pkgs/development/tools/build-managers/bear/no-double-relative.patch
index 0184bdfd6ba7..f4d247fa5760 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bear/no-double-relative.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/bear/no-double-relative.patch
@@ -1,5 +1,5 @@
 diff --git a/source/config.h.in b/source/config.h.in
-index 2ca8853..2564c63 100644
+index 728c234..a3e76c6 100644
 --- a/source/config.h.in
 +++ b/source/config.h.in
 @@ -65,6 +65,6 @@ constexpr char VERSION[] = "@CMAKE_PROJECT_VERSION@";
@@ -7,8 +7,8 @@ index 2ca8853..2564c63 100644
  constexpr char CITNAMES_DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/citnames";
  constexpr char INTERCEPT_DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/intercept";
 -constexpr char LIBRARY_DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/@CMAKE_SHARED_LIBRARY_PREFIX@exec@CMAKE_SHARED_LIBRARY_SUFFIX@";
--constexpr char EXECUTOR_DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/er";
--constexpr char WRAPPER_DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/wrapper.d";
+-constexpr char WRAPPER_DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/wrapper";
+-constexpr char WRAPPER_DIR_DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/wrapper.d";
 +constexpr char LIBRARY_DEFAULT_PATH[] = "@CMAKE_INSTALL_LIBEXECDIR@/@CMAKE_SHARED_LIBRARY_PREFIX@exec@CMAKE_SHARED_LIBRARY_SUFFIX@";
-+constexpr char EXECUTOR_DEFAULT_PATH[] = "@CMAKE_INSTALL_LIBEXECDIR@/er";
-+constexpr char WRAPPER_DEFAULT_PATH[] = "@CMAKE_INSTALL_LIBEXECDIR@/wrapper.d";
++constexpr char WRAPPER_DEFAULT_PATH[] = "@CMAKE_INSTALL_LIBEXECDIR@/wrapper";
++constexpr char WRAPPER_DIR_DEFAULT_PATH[] = "@CMAKE_INSTALL_LIBEXECDIR@/wrapper.d";
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
index 12fd01e5e4ed..1b4f74f91d43 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bloop";
-  version = "1.4.6";
+  version = "1.4.8";
 
   bloop-coursier-channel = fetchurl {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json";
-    sha256 = "1fx80yrf03llhxcd8az5vzralz01wdfk7000q8l04rj1ax3daqia";
+    sha256 = "1hfd5gc98bp4p4m85jva2mlkh10q10n9s5136z8620mmjq93rx70";
   };
 
   bloop-bash = fetchurl {
@@ -54,9 +54,9 @@ stdenv.mkDerivation rec {
 
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = if stdenv.isLinux && stdenv.isx86_64 then "1hg02a3ildgqv8864zg08hvk4y0kmsxsg7ncbsl933rclhk2lybd"
-                     else if stdenv.isDarwin && stdenv.isx86_64 then "1i9kh4h5w3gr4w6rf5m7xpfqwps91mfddl1zk25v7f6vsraayam0"
-                     else throw "unsupported platform";
+    outputHash = if stdenv.isLinux && stdenv.isx86_64 then "1cs3ng6bj9s7xf6c4xaiqgg5qr34abnipfgc44sy2ljklr7x0jwa"
+      else if stdenv.isDarwin && stdenv.isx86_64 then "0l9vqvzcmxya1s04cps96skw4dslh3i3ks73dl53ing50zb0ga9r"
+      else throw "unsupported platform";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
index 5e5875cc36c4..65e1b553875b 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, pkg-config
-, bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash
+, bzip2, curlMinimal, expat, libarchive, xz, zlib, libuv, rhash
 , buildPackages
 # darwin attributes
 , ps
@@ -14,18 +14,18 @@
 assert withQt5 -> useQt4 == false;
 assert useQt4 -> withQt5 == false;
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   pname = "cmake"
           + lib.optionalString isBootstrap "-boot"
           + lib.optionalString useNcurses "-cursesUI"
           + lib.optionalString withQt5 "-qt5UI"
           + lib.optionalString useQt4 "-qt4UI";
-  version = "3.19.3";
+  version = "3.19.6";
 
   src = fetchurl {
     url = "${meta.homepage}files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz";
     # compare with https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}-SHA-256.txt
-    sha256 = "sha256-P6ynwTFJSh401m6fiXL/U2nkjUGeqM6qPcFbTBE2dzI=";
+    sha256 = "sha256-7IerZ8RfR8QoXyBCgMXN5I4ckgz8/tFVWyf7OxodILo=";
   };
 
   patches = [
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ setupHook pkg-config ];
 
   buildInputs = []
-    ++ lib.optionals useSharedLibraries [ bzip2 curl expat libarchive xz zlib libuv rhash ]
+    ++ lib.optionals useSharedLibraries [ bzip2 curlMinimal expat libarchive xz zlib libuv rhash ]
     ++ lib.optional useOpenSSL openssl
     ++ lib.optional useNcurses ncurses
     ++ lib.optional useQt4 qt4
@@ -64,8 +64,6 @@ stdenv.mkDerivation rec {
       --subst-var-by libc_bin ${lib.getBin stdenv.cc.libc} \
       --subst-var-by libc_dev ${lib.getDev stdenv.cc.libc} \
       --subst-var-by libc_lib ${lib.getLib stdenv.cc.libc}
-    substituteInPlace Modules/FindCxxTest.cmake \
-      --replace "$""{PYTHON_EXECUTABLE}" ${stdenv.shell}
   ''
   # CC_FOR_BUILD and CXX_FOR_BUILD are used to bootstrap cmake
   + ''
@@ -130,4 +128,5 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ttuegel lnl7 ];
     license = licenses.bsd3;
   };
-}
+} // (if withQt5 then { dontWrapQtApps = true; } else {})
+)
diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index 0bb695615fce..89e8e0e197a0 100755
--- a/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -50,9 +50,6 @@ cmakeConfigurePhase() {
     # because we usually do not package the framework
     cmakeFlags="-DCMAKE_FIND_FRAMEWORK=LAST $cmakeFlags"
 
-    # on macOS i686 was only relevant for 10.5 or earlier.
-    cmakeFlags="-DCMAKE_OSX_ARCHITECTURES=x86_64 $cmakeFlags"
-
     # we never want to use the global macOS SDK
     cmakeFlags="-DCMAKE_OSX_SYSROOT= $cmakeFlags"
 
diff --git a/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix b/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
index c73b7149a361..da5e11cce2c8 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3, fetchFromGitHub, git, pkg-config }:
+{ lib, stdenv, python3, fetchFromGitHub, git, pkg-config, fetchpatch }:
 
 # Note:
 # Conan has specific dependency demands; check
@@ -20,6 +20,13 @@ let newPython = python3.override {
         inherit version;
         sha256 = "1vn1db2akw98ybnpns92qi11v94hydwp130s8753k6ikby95883j";
       };
+      patches = oldAttrs.patches or [] ++ [
+        # Don't raise import error on non-linux os. Remove after upgrading to distro≥1.2.0
+        (fetchpatch {
+          url = "https://github.com/nir0s/distro/commit/25aa3f8c5934346dc838387fc081ce81baddeb95.patch";
+          sha256 = "0m09ldf75gacazh2kr04cifgsqfxg670vk4ypl62zv7fp3nyd5dc";
+        })
+      ];
     });
     node-semver = super.node-semver.overridePythonAttrs (oldAttrs: rec {
       version = "0.6.1";
@@ -69,7 +76,7 @@ in newPython.pkgs.buildPythonApplication rec {
     six
     tqdm
     urllib3
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ idna cryptography pyopenssl ];
 
   checkInputs = [
     pkg-config
@@ -90,6 +97,9 @@ in newPython.pkgs.buildPythonApplication rec {
     substituteInPlace conans/requirements.txt \
       --replace "PyYAML>=3.11, <3.14.0" "PyYAML" \
       --replace "deprecation>=2.0, <2.1" "deprecation" \
+      --replace "idna==2.6" "idna" \
+      --replace "cryptography>=1.3.4, <2.4.0" "cryptography" \
+      --replace "pyOpenSSL>=16.0.0, <19.0.0" "pyOpenSSL" \
       --replace "six>=1.10.0,<=1.14.0" "six"
   '';
 
@@ -98,6 +108,5 @@ in newPython.pkgs.buildPythonApplication rec {
     description = "Decentralized and portable C/C++ package manager";
     license = licenses.mit;
     maintainers = with maintainers; [ HaoZeke ];
-    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/corrosion/cmake-install-full-dir.patch b/nixpkgs/pkgs/development/tools/build-managers/corrosion/cmake-install-full-dir.patch
new file mode 100644
index 000000000000..da5e923e0fa5
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/corrosion/cmake-install-full-dir.patch
@@ -0,0 +1,18 @@
+diff --git a/cmake/CorrosionConfig.cmake.in b/cmake/CorrosionConfig.cmake.in
+index c042a00..491f53c 100644
+--- a/cmake/CorrosionConfig.cmake.in
++++ b/cmake/CorrosionConfig.cmake.in
+@@ -4,11 +4,11 @@ if (Corrosion_FOUND)
+     return()
+ endif()
+ 
+-list(APPEND CMAKE_MODULE_PATH "${PACKAGE_PREFIX_DIR}/@CORROSION_INSTALL_PREFIX@@CMAKE_INSTALL_DATADIR@/cmake")
++list(APPEND CMAKE_MODULE_PATH "@CMAKE_INSTALL_FULL_DATADIR@/cmake")
+ 
+ add_executable(Corrosion::Generator IMPORTED GLOBAL)
+ set_property(
+     TARGET Corrosion::Generator
+-    PROPERTY IMPORTED_LOCATION "${PACKAGE_PREFIX_DIR}/@CORROSION_INSTALL_PREFIX@@CMAKE_INSTALL_LIBEXECDIR@/corrosion-generator")
++    PROPERTY IMPORTED_LOCATION "@CMAKE_INSTALL_FULL_LIBEXECDIR@/corrosion-generator")
+ 
+ include(Corrosion)
diff --git a/nixpkgs/pkgs/development/tools/build-managers/corrosion/default.nix b/nixpkgs/pkgs/development/tools/build-managers/corrosion/default.nix
new file mode 100644
index 000000000000..2285579b0bbd
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/corrosion/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, rustPlatform
+}:
+
+stdenv.mkDerivation rec {
+  pname = "corrosion";
+  version = "unstable-2021-02-23";
+
+  src = fetchFromGitHub {
+    owner = "AndrewGaspar";
+    repo = "corrosion";
+    rev = "e6c35c7e55a59c8223577b5abc4d253b4a82898b";
+    sha256 = "0vq6g3ggnqiln0q8gsr8rr5rrdgpfcgfly79jwcygxrviw37m44d";
+  };
+
+  patches = [
+    # https://github.com/AndrewGaspar/corrosion/issues/84
+    ./cmake-install-full-dir.patch
+  ];
+
+  cargoRoot = "generator";
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    sourceRoot = "${src.name}/${cargoRoot}";
+    name = "${pname}-${version}";
+    sha256 = "1fsq8zzzq28fj2fh92wmg8kmdj4y10mcpdmlgxsygy5lbh4xs13f";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  cmakeFlags = [
+    "-DRust_CARGO=${rustPlatform.rust.cargo}/bin/cargo"
+
+    # tests cannot find cargo because Rust_CARGO is unset before tests
+    "-DCORROSION_BUILD_TESTS=OFF"
+  ];
+
+  meta = with lib; {
+    description = "Tool for integrating Rust into an existing CMake project";
+    homepage = "https://github.com/AndrewGaspar/corrosion";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix b/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix
index 2df829a02295..fb85c1f33269 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, curl, dmd, libevent, rsync }:
+{ lib, stdenv, fetchFromGitHub, curl, libevent, rsync, ldc, dcompiler ? ldc }:
+
+assert dcompiler != null;
 
 stdenv.mkDerivation rec {
   pname = "dub";
@@ -24,12 +26,23 @@ stdenv.mkDerivation rec {
           --replace "dub remove" "\"${dubvar}\" remove"
   '';
 
-  nativeBuildInputs = [ dmd libevent rsync ];
+  nativeBuildInputs = [ dcompiler libevent rsync ];
   buildInputs = [ curl ];
 
   buildPhase = ''
-    export DMD=${dmd.out}/bin/dmd
-    ./build.sh
+    for dc_ in dmd ldmd2 gdmd; do
+      echo "... check for D compiler $dc_ ..."
+      dc=$(type -P $dc_ || echo "")
+      if [ ! "$dc" == "" ]; then
+        break
+      fi
+    done
+    if [ "$dc" == "" ]; then
+      exit "Error: could not find D compiler"
+    fi
+    echo "$dc_ found and used as D compiler to build $pname"
+    $dc ./build.d
+    ./build
   '';
 
   doCheck = !stdenv.isDarwin;
@@ -37,7 +50,8 @@ stdenv.mkDerivation rec {
   checkPhase = ''
     export DUB=$NIX_BUILD_TOP/source/bin/dub
     export PATH=$PATH:$NIX_BUILD_TOP/source/bin/
-    export DC=${dmd.out}/bin/dmd
+    export DC=${dcompiler.out}/bin/${dcompiler.pname}
+    echo "DC out --> $DC"
     export HOME=$TMP
 
     rm -rf test/issue502-root-import
@@ -46,7 +60,6 @@ stdenv.mkDerivation rec {
     rm test/issue990-download-optional-selected.sh
     rm test/issue877-auto-fetch-package-on-run.sh
     rm test/issue1037-better-dependency-messages.sh
-    rm test/issue1040-run-with-ver.sh
     rm test/issue1416-maven-repo-pkg-supplier.sh
     rm test/issue1180-local-cache-broken.sh
     rm test/issue1574-addcommand.sh
@@ -62,13 +75,73 @@ stdenv.mkDerivation rec {
     rm test/version-spec.sh
     rm test/0-init-multi.sh
     rm test/0-init-multi-json.sh
+    rm test/4-describe-data-1-list.sh
+    rm test/4-describe-data-3-zero-delim.sh
+    rm test/4-describe-import-paths.sh
+    rm test/4-describe-string-import-paths.sh
+    rm test/4-describe-json.sh
+    rm test/5-convert-stdout.sh
+    rm test/issue1003-check-empty-ld-flags.sh
+    rm test/issue103-single-file-package.sh
+    rm test/issue1040-run-with-ver.sh
+    rm test/issue1091-bogus-rebuild.sh
+    rm test/issue1194-warn-wrong-subconfig.sh
+    rm test/issue1277.sh
+    rm test/issue1372-ignore-files-in-hidden-dirs.sh
+    rm test/issue1447-build-settings-vars.sh
+    rm test/issue1531-toolchain-requirements.sh
+    rm test/issue346-redundant-flags.sh
+    rm test/issue361-optional-deps.sh
+    rm test/issue564-invalid-upgrade-dependency.sh
+    rm test/issue586-subpack-dep.sh
+    rm test/issue616-describe-vs-generate-commands.sh
+    rm test/issue686-multiple-march.sh
+    rm test/issue813-fixed-dependency.sh
+    rm test/issue813-pure-sub-dependency.sh
+    rm test/issue820-extra-fields-after-convert.sh
+    rm test/issue923-subpackage-deps.sh
+    rm test/single-file-sdl-default-name.sh
+    rm test/subpackage-common-with-sourcefile-globbing.sh
+    rm test/issue934-path-dep.sh
+    rm -r test/1-dynLib-simple
+    rm -r test/1-exec-simple-package-json
+    rm -r test/1-exec-simple
+    rm -r test/1-staticLib-simple
+    rm -r test/2-dynLib-dep
+    rm -r test/2-staticLib-dep
+    rm -r test/2-dynLib-with-staticLib-dep
+    rm -r test/2-sourceLib-dep/
+    rm -r test/3-copyFiles
+    rm -r test/custom-source-main-bug487
+    rm -r test/custom-unittest
+    rm -r test/issue1262-version-inheritance-diamond
+    rm -r test/issue1003-check-empty-ld-flags
+    rm -r test/ignore-hidden-1
+    rm -r test/ignore-hidden-2
+    rm -r test/issue1427-betterC
+    rm -r test/issue130-unicode-*
+    rm -r test/issue1262-version-inheritance
+    rm -r test/issue1372-ignore-files-in-hidden-dirs
+    rm -r test/issue1350-transitive-none-deps
+    rm -r test/issue1775
+    rm -r test/issue1447-build-settings-vars
+    rm -r test/issue1408-inherit-linker-files
+    rm -r test/issue1551-var-escaping
+    rm -r test/issue754-path-selection-fail
+    rm -r test/issue1788-incomplete-string-import-override
+    rm -r test/subpackage-ref
+    rm -r test/issue777-bogus-path-dependency
+    rm -r test/issue959-path-based-subpack-dep
+    rm -r test/issue97-targettype-none-nodeps
+    rm -r test/issue97-targettype-none-onerecipe
+    rm -r test/path-subpackage-ref
+    rm -r test/sdl-package-simple
 
     ./test/run-unittest.sh
   '';
 
   installPhase = ''
-    mkdir $out
-    mkdir $out/bin
+    mkdir -p $out/bin
     cp bin/dub $out/bin
   '';
 
diff --git a/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix b/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
index d314064904d1..993bd6684639 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
@@ -1,6 +1,15 @@
 { lib, stdenv, fetchurl, unzip, jdk, java ? jdk, makeWrapper }:
 
-rec {
+let
+  gradleSpec = { version, nativeVersion, sha256 }: rec {
+    inherit nativeVersion;
+    name = "gradle-${version}";
+    src = fetchurl {
+      inherit sha256;
+      url = "https://services.gradle.org/distributions/${name}-bin.zip";
+    };
+  };
+in rec {
   gradleGen = {name, src, nativeVersion} : stdenv.mkDerivation {
     inherit name src nativeVersion;
 
@@ -33,7 +42,8 @@ rec {
         echo ${stdenv.cc.cc} > $out/nix-support/manual-runtime-dependencies
       '';
 
-    buildInputs = [ unzip java makeWrapper ];
+    nativeBuildInputs = [ makeWrapper unzip ];
+    buildInputs = [ java ];
 
     meta = {
       description = "Enterprise-grade build system";
@@ -51,35 +61,30 @@ rec {
     };
   };
 
+  # NOTE: Gradle 7 is a release candidate, so point to 6.8.
   gradle_latest = gradle_6_8;
 
-  gradle_6_8 = gradleGen rec {
-    name = "gradle-6.8.1";
-    nativeVersion = "0.22-milestone-9";
+  gradle_7 = gradleGen (gradleSpec {
+    version = "7.0-rc-2";
+    nativeVersion = "0.22-milestone-11";
+    sha256 = "0gzvigyvwwizx90vnzhdnbm5rdaki11inxna11s4y67xkn8hrnx5";
+  });
 
-    src = fetchurl {
-      url = "https://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "1zfn7400k39qbiidd5zxay6v5f5xz8x4g7rrf04p71bkmws1lngx";
-    };
-  };
+  gradle_6_8 = gradleGen (gradleSpec {
+    version = "6.8.3";
+    nativeVersion = "0.22-milestone-9";
+    sha256 = "01fjrk5nfdp6mldyblfmnkq2gv1rz1818kzgr0k2i1wzfsc73akz";
+  });
 
-  gradle_5_6 = gradleGen rec {
-    name = "gradle-5.6.4";
+  gradle_5_6 = gradleGen (gradleSpec {
+    version = "5.6.4";
     nativeVersion = "0.18";
+    sha256 = "1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d";
+  });
 
-    src = fetchurl {
-      url = "https://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d";
-    };
-  };
-
-  gradle_4_10 = gradleGen rec {
-    name = "gradle-4.10.3";
+  gradle_4_10 = gradleGen (gradleSpec {
+    version = "4.10.3";
     nativeVersion = "0.14";
-
-    src = fetchurl {
-      url = "https://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "0vhqxnk0yj3q9jam5w4kpia70i4h0q4pjxxqwynh3qml0vrcn9l6";
-    };
-  };
+    sha256 = "0vhqxnk0yj3q9jam5w4kpia70i4h0q4pjxxqwynh3qml0vrcn9l6";
+  });
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/gup/default.nix b/nixpkgs/pkgs/development/tools/build-managers/gup/default.nix
index dcc0c3aef90c..dfa65736f99f 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/gup/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/gup/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, nix-update-source, lib, python
+{ stdenv, fetchFromGitHub, nix-update-source, lib, python3
 , which, runtimeShell, pychecker ? null }:
 stdenv.mkDerivation rec {
   version = "0.7.0";
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "1pwnmlq2pgkkln9sgz4wlb9dqlqw83bkf105qljnlvggc21zm3pv";
   };
   pname = "gup";
-  buildInputs = lib.remove null [ python which pychecker ];
+  nativeBuildInputs = [ python3 which pychecker ];
+  buildInputs = [ python3 ];
+  strictDeps = true;
   SKIP_PYCHECKER = pychecker == null;
   buildPhase = "make python";
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/build-managers/jam/default.nix b/nixpkgs/pkgs/development/tools/build-managers/jam/default.nix
index 6f5ecde8f88c..859497345ff6 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/jam/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/jam/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, yacc }:
+{ lib, stdenv, fetchurl, bison }:
 
 stdenv.mkDerivation rec {
   name = "jam-2.6.1";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "19xkvkpycxfsncxvin6yqrql3x3z9ypc1j8kzls5k659q4kv5rmc";
   };
 
-  nativeBuildInputs = [ yacc ];
+  nativeBuildInputs = [ bison ];
 
   preConfigure = ''
     unset AR
diff --git a/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix b/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix
index 488697033d91..51b97b242d5c 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   dontUnpack = true;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   propagatedBuildInputs = [ jdk ];
 
   # the jar is not in share/java, because it's a standalone jar and should
diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
index e5ac95d0b9dc..4eb292a2e529 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
@@ -1,14 +1,14 @@
 --- a/mesonbuild/coredata.py
 +++ b/mesonbuild/coredata.py
-@@ -491,7 +491,6 @@ class CoreData:
+@@ -506,7 +506,6 @@ class CoreData:
              return value
-         if option.endswith('dir') and value.is_absolute() and \
-            option not in builtin_dir_noprefix_options:
+         if option.name.endswith('dir') and value.is_absolute() and \
+            option not in BULITIN_DIR_NOPREFIX_OPTIONS:
 -            # Value must be a subdir of the prefix
              # commonpath will always return a path in the native format, so we
              # must use pathlib.PurePath to do the same conversion before
              # comparing.
-@@ -503,7 +502,7 @@ class CoreData:
+@@ -518,7 +517,7 @@ class CoreData:
              try:
                  value = value.relative_to(prefix)
              except ValueError:
diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix b/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix
index 7009aa4898fa..de82609a5486 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix
@@ -9,11 +9,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "meson";
-  version = "0.56.0";
+  version = "0.57.1";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "04vj250bwrzq7c0z1r96b0z0vgirvn0m367wm3ygqmfdy67x6799";
+    sha256 = "19n8alcpzv6npgp27iqljkmvdmr7s2c7zm8y997j1nlvpa1cgqbj";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch
index ada58fff6d41..4b2606e2d694 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch
@@ -1,8 +1,8 @@
-diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 219b62ec8..e3ceaddbd 100644
---- a/mesonbuild/envconfig.py
-+++ b/mesonbuild/envconfig.py
-@@ -94,7 +94,7 @@ def get_env_var_pair(for_machine: MachineChoice,
+diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
+index 756dd8193..a5cc6ef8b 100644
+--- a/mesonbuild/environment.py
++++ b/mesonbuild/environment.py
+@@ -151,7 +151,7 @@ def _get_env_var(for_machine: MachineChoice, is_cross: bool, var_name: str) -> T
          # compiling we fall back on the unprefixed host version. This
          # allows native builds to never need to worry about the 'BUILD_*'
          # ones.
diff --git a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
index 5942e20ec920..4538c212da58 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mill";
-  version = "0.9.3";
+  version = "0.9.5";
 
   src = fetchurl {
-    url = "https://github.com/lihaoyi/mill/releases/download/${version}/${version}";
-    sha256 = "0x9mvcm5znyi7w6cpiasj2v6f63y7d8qdck7lx03p2k6i9aa2f77";
+    url = "https://github.com/com-lihaoyi/mill/releases/download/${version}/${version}";
+    sha256 = "142vr40p60mapvvb5amn8hz6a8930kxsz510baql40hai4yhga7z";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix b/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix
index ce08986b3e17..82c5c88d174e 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix
@@ -23,13 +23,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     dotnet-sdk
     mono
+    unzip
   ];
 
   buildInputs = [
     dotnetPackages.Nuget
     glibcLocales
     makeWrapper
-    unzip
   ];
 
   # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=msbuild
diff --git a/nixpkgs/pkgs/development/tools/build-managers/qbs/default.nix b/nixpkgs/pkgs/development/tools/build-managers/qbs/default.nix
index 3bf7623ed04c..7e46e39b438b 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/qbs/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/qbs/default.nix
@@ -3,17 +3,19 @@
 stdenv.mkDerivation rec {
   pname = "qbs";
 
-  version = "1.17.0";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "qbs";
     repo = "qbs";
     rev = "v${version}";
-    sha256 = "0sd4qwl1wh8b1hck846plrgddkrdwdfqwk2dgh5hdsrlrvx5xjrr";
+    sha256 = "sha256-W1ky3PWPzfKygY+diBld+BqTAxJvNw9mqw3owcQ6no4=";
   };
 
   nativeBuildInputs = [ qmake ];
 
+  dontWrapQtApps = true;
+
   qmakeFlags = [ "QBS_INSTALL_PREFIX=$(out)" "qbs.pro" ];
 
   buildInputs = [ qtbase qtscript ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix b/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
index 0c6450766b1a..c2b10d823a30 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -3,7 +3,7 @@
   tree }:
 
 let
-  version = "3.14.2";
+  version = "3.14.4";
 
   # Dependencies should match the ones in:
   # https://github.com/erlang/rebar3/blob/${version}/rebar.lock
@@ -12,27 +12,27 @@ let
   bbmustache = fetchHex {
     pkg = "bbmustache";
     version = "1.10.0";
-    sha256 = "43effa3fd4bb9523157af5a9e2276c493495b8459fc8737144aa186cb13ce2ee";
+    sha256 = "1vp27jqnq65a8iqp7j4z8nw9ad29dhky5agmg8aj75dvshzzmvs3";
   };
   certifi = fetchHex {
     pkg = "certifi";
-    version = "2.5.2";
-    sha256 = "3b3b5f36493004ac3455966991eaf6e768ce9884693d9968055aeeeb1e575040";
+    version = "2.5.3";
+    sha256 = "040w1scglvqhcvc1ifdnlcyrbwr0smi00w4xi8h03c99775nllgd";
   };
   cf = fetchHex {
     pkg = "cf";
     version = "0.3.1";
-    sha256 = "315e8d447d3a4b02bcdbfa397ad03bbb988a6e0aa6f44d3add0f4e3c3bf97672";
+    sha256 = "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii";
   };
   cth_readable = fetchHex {
     pkg = "cth_readable";
-    version = "1.4.9";
-    sha256 = "b4c6ababdb046c5f2fbb3c22f030b4c5a679083956dcdd29c1df0cb30b18da24";
+    version = "1.5.0";
+    sha256 = "0z58b6frqdnhyzrmbdf6x78l3izbbh5z5i3am8hqc253r7xwv0dx";
   };
   erlware_commons = fetchHex {
     pkg = "erlware_commons";
-    version = "1.3.1";
-    sha256 = "7aada93f368d0a0430122e39931b7fb4ac9e94dbf043cdc980ad4330fd9cd166";
+    version = "1.4.0";
+    sha256 = "1rp2vkgzqm6sax7fc13rh9x6qzxsgg718dnv7l0kmarvyifcyphq";
   };
   eunit_formatters = fetchHex {
     pkg = "eunit_formatters";
@@ -46,29 +46,26 @@ let
   };
   parse_trans = fetchHex {
     pkg = "parse_trans";
-    version = "3.3.0";
-    sha256 = "17ef63abde837ad30680ea7f857dd9e7ced9476cdd7b0394432af4bfc241b960";
+    version = "3.3.1";
+    sha256 = "12w8ai6b5s6b4hnvkav7hwxd846zdd74r32f84nkcmjzi1vrbk87";
   };
+
   providers = fetchHex {
     pkg = "providers";
     version = "1.8.1";
-    sha256 = "e45745ade9c476a9a469ea0840e418ab19360dc44f01a233304e118a44486ba0";
+    sha256 = "183b9128l4af60rs40agqh6kc6db33j4027ad6jajxn4x6nlamz4";
   };
+
   relx = fetchHex {
     pkg = "relx";
-    version = "4.1.0";
-    sha256 = "b94a3f96697a479ee5217a853345e0f4977bdf40d3c040af0d3d80fadad82af4";
+    version = "4.3.0";
+    sha256 = "0h044arh41sr92r1nlg176shavlv7pvw17alwklhszgwlr4hk3kk";
   };
+
   ssl_verify_fun = fetchHex {
     pkg = "ssl_verify_fun";
     version = "1.1.6";
-    sha256 = "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680";
-  };
-
-  hex_core = fetchHex {
-    pkg = "hex_core";
-    version = "0.7.1";
-    sha256 = "05c60411511b6dc79affcd99a93e67d71e1b9d6abcb28ba75cd4ebc8585b8d02";
+    sha256 = "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x";
   };
 in
 stdenv.mkDerivation rec {
@@ -81,7 +78,7 @@ stdenv.mkDerivation rec {
     owner = "erlang";
     repo = pname;
     rev = version;
-    sha256 = "02gz6xs8j5rm14r6dndcpdm8q3rl4mcj363gnnx4y5xvvfnv9bfa";
+    sha256 = "09bnqwli93sq1pcz4h88ks7qg7k8yrjy9fd46yyp8xdl7i4irwy2";
   };
 
   bootstrapper = ./rebar3-nix-bootstrap;
@@ -104,8 +101,6 @@ stdenv.mkDerivation rec {
     cp --no-preserve=mode -R ${relx} _checkouts/relx
     cp --no-preserve=mode -R ${ssl_verify_fun} _checkouts/ssl_verify_fun
 
-    cp --no-preserve=mode -R ${hex_core} _checkouts/hex_core
-
     # Bootstrap script expects the dependencies in _build/default/lib
     # TODO: Make it accept checkouts?
     for i in _checkouts/* ; do
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 d22f4bc487f8..093a825723c0 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "0d3hz3vy5qmjr9r4f8a5cx9hikpzs8h8f0fsl3dpbialf4wck24g";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   sourceRoot = ".";
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix
index 5b9a456ce75f..16ea0dc28318 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-cmake";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "rocm-cmake";
     rev = "rocm-${version}";
-    hash = "sha256-1T0S2GWA/ojRZMRyWgtFQ2rzmIqvMvaa19jI4Fl9R44=";
+    hash = "sha256-uK060F7d7/pTCNbGqdKCzxgPrPPbGjNwuUOt176z7EM=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/RadeonOpenCompute/rocm-cmake";
     license = licenses.mit;
     maintainers = with maintainers; [ danieldk ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix b/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
index efc6523cd986..b49e5f7558a9 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -1,24 +1,25 @@
 { lib, stdenv, fetchFromGitHub, which, curl, makeWrapper, jdk, writeScript
-, common-updater-scripts, cacert, git, nixfmt, nix, jq, coreutils, gnused
-, nixosTests }:
+, common-updater-scripts, cacert, git, nixfmt, nix, jq, coreutils, gnused }:
 
 stdenv.mkDerivation rec {
   pname = "sbt-extras";
-  rev = "830b72140583e2790bbd3649890ac8ef5371d0c6";
-  version = "2021-02-04";
+  rev = "a76f1f15e6ec39d886f8bf07d5bdfaf70cdc62d8";
+  version = "2021-04-06";
 
   src = fetchFromGitHub {
     owner = "paulp";
     repo = "sbt-extras";
     inherit rev;
-    sha256 = "0wq2mf8s254ns0sss5q394c1j2rnvl42x9l6kkrav505hbx0gyq6";
+    sha256 = "0zmhn8nvzrbw047g5z4q2slp0wdg6pvfh2pqnpwcq1hscf7dvz8f";
   };
 
   dontBuild = true;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
 
     substituteInPlace bin/sbt --replace 'declare java_cmd="java"' 'declare java_cmd="${jdk}/bin/java"'
@@ -26,43 +27,44 @@ stdenv.mkDerivation rec {
     install bin/sbt $out/bin
 
     wrapProgram $out/bin/sbt --prefix PATH : ${lib.makeBinPath [ which curl ]}
-  '';
 
-  passthru = {
-    tests = { inherit (nixosTests) sbt-extras; };
-
-    updateScript = writeScript "update.sh" ''
-      #!${stdenv.shell}
-      set -xo errexit
-      PATH=${
-        lib.makeBinPath [
-          common-updater-scripts
-          curl
-          cacert
-          git
-          nixfmt
-          nix
-          jq
-          coreutils
-          gnused
-        ]
-      }
+    runHook postInstall
+  '';
 
-      oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
-      latestSha="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits\?sha\=master\&since\=$oldVersion | jq -r '.[0].sha')"
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/sbt -h >/dev/null
+  '';
 
-      if [ ! "null" = "$latestSha" ]; then
-        nixpkgs="$(git rev-parse --show-toplevel)"
-        default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix"
-        latestDate="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits/$latestSha | jq '.commit.committer.date' | sed 's|"\(.*\)T.*|\1|g')"
-        update-source-version ${pname} "$latestSha" --version-key=rev
-        update-source-version ${pname} "$latestDate" --ignore-same-hash
-        nixfmt "$default_nix"
-      else
-        echo "${pname} is already up-to-date"
-      fi
-    '';
-  };
+  passthru.updateScript = writeScript "update.sh" ''
+     #!${stdenv.shell}
+     set -xo errexit
+     PATH=${
+       lib.makeBinPath [
+         common-updater-scripts
+         curl
+         cacert
+         git
+         nixfmt
+         nix
+         jq
+         coreutils
+         gnused
+       ]
+     }
+    oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
+     latestSha="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits\?sha\=master\&since\=$oldVersion | jq -r '.[0].sha')"
+    if [ ! "null" = "$latestSha" ]; then
+       nixpkgs="$(git rev-parse --show-toplevel)"
+       default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix"
+       latestDate="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits/$latestSha | jq '.commit.committer.date' | sed 's|"\(.*\)T.*|\1|g')"
+       update-source-version ${pname} "$latestSha" --version-key=rev
+       update-source-version ${pname} "$latestDate" --ignore-same-hash
+       nixfmt "$default_nix"
+     else
+       echo "${pname} is already up-to-date"
+     fi
+  '';
 
   meta = {
     description =
diff --git a/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix b/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
index 9e45c3e8b902..00e70c46b2a9 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
@@ -1,17 +1,21 @@
-{ lib, stdenv, fetchurl, jre, autoPatchelfHook, zlib, writeScript
-, common-updater-scripts, git, nixfmt, nix, coreutils, gnused, nixosTests }:
+{ lib
+, stdenv
+, fetchurl
+, jre
+, autoPatchelfHook
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "sbt";
-  version = "1.4.7";
+  version = "1.5.0";
 
   src = fetchurl {
-    url =
-      "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz";
-    sha256 = "sha256-wqdZ/kCjwhoWtaiNAM1m869vByHk6mG2OULfuDotVP0=";
+    url = "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz";
+    sha256 = "1dj241cj3v8kzqnz5s499rijpl7wv4rw171swqnc0xza90513pxa";
   };
 
-  patchPhase = ''
+  postPatch = ''
     echo -java-home ${jre.home} >>conf/sbtopts
   '';
 
@@ -20,12 +24,16 @@ stdenv.mkDerivation rec {
   buildInputs = lib.optionals stdenv.isLinux [ zlib ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/sbt $out/bin
     cp -ra . $out/share/sbt
     ln -sT ../share/sbt/bin/sbt $out/bin/sbt
     ln -sT ../share/sbt/bin/sbtn-x86_64-${
       if (stdenv.isDarwin) then "apple-darwin" else "pc-linux"
     } $out/bin/sbtn
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -35,35 +43,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ nequissimus ];
     platforms = platforms.unix;
   };
-
-  passthru = {
-    tests = { inherit (nixosTests) sbt; };
-
-    updateScript = writeScript "update.sh" ''
-      #!${stdenv.shell}
-      set -o errexit
-      PATH=${
-        lib.makeBinPath [
-          common-updater-scripts
-          git
-          nixfmt
-          nix
-          coreutils
-          gnused
-        ]
-      }
-
-      oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion sbt" | tr -d '"')"
-      latestTag="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags git@github.com:sbt/sbt.git '*.*.*' | tail --lines=1 | cut --delimiter='/' --fields=3 | sed 's|^v||g')"
-
-      if [ ! "$oldVersion" = "$latestTag" ]; then
-        update-source-version sbt "$latestTag" --version-key=version --print-changes
-        nixpkgs="$(git rev-parse --show-toplevel)"
-        default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix"
-        nixfmt "$default_nix"
-      else
-        echo "sbt is already up-to-date"
-      fi
-    '';
-  };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix b/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix
index 8cab1667b218..16b2967e632d 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchFromGitHub
 , crystal_0_34
-, crystal_0_35
+, crystal_0_36
 }:
 let
   generic =
@@ -36,17 +36,18 @@ let
 
 in
 rec {
+  # needed for anything that requires the old v1 shards format
   shards_0_11 = generic {
     version = "0.11.1";
     sha256 = "05qnhc23xbmicdl4fwyxfpcvd8jq4inzh6v7jsjjw4n76vzb1f71";
     crystal = crystal_0_34;
   };
 
-  shards_0_12 = generic {
-    version = "0.12.0";
-    sha256 = "0dginczw1gc5qlb9k4b6ldxzqz8n97jrrnjvj3mm9wcdbc9j6h3c";
-    crystal = crystal_0_35;
+  shards_0_14 = generic {
+    version = "0.14.1";
+    sha256 = "sha256-/C6whh5RbTBkFWqpn0GqyVe0opbrklm8xPv5MIG99VU=";
+    crystal = crystal_0_36;
   };
 
-  shards = shards_0_12;
+  shards = shards_0_14;
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/shards/shards.nix b/nixpkgs/pkgs/development/tools/build-managers/shards/shards.nix
index 901b7f6e47d1..95250acf1945 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/shards/shards.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/shards/shards.nix
@@ -2,7 +2,7 @@
   molinillo = {
     owner = "crystal-lang";
     repo = "crystal-molinillo";
-    rev = "v0.1.0";
-    sha256 = "0rs0w59m6ccsgkdxfy3xv6alxsziy9sy9smz71cz0dnyvlzlnaxj";
+    rev = "v0.2.0";
+    sha256 = "0pzi8pbrjn03zgk3kbha2kqqq0crmr8gy98dr05kisafvbghzwnh";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/waf/default.nix b/nixpkgs/pkgs/development/tools/build-managers/waf/default.nix
index ae62ce539bab..4d4bb6957eaa 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/waf/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/waf/default.nix
@@ -8,13 +8,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "waf";
-  version = "2.0.20";
+  version = "2.0.22";
 
   src = fetchFromGitLab {
     owner = "ita1024";
     repo = "waf";
     rev = "${pname}-${version}";
-    sha256 = "1xbd1lmchq9pdrplkr2db28xqafyw753qbhnrfn8pxdg3inxxqvq";
+    sha256 = "sha256-WGGyhvQdFYmC0NOA5VVqCRMF1fvfPcTI42x1nHvz0W0=";
   };
 
   buildInputs = [ python ensureNewerSourcesForZipFilesHook ];
diff --git a/nixpkgs/pkgs/development/tools/buildah/default.nix b/nixpkgs/pkgs/development/tools/buildah/default.nix
index 68c1e9451917..cebd80ff83e6 100644
--- a/nixpkgs/pkgs/development/tools/buildah/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildah/default.nix
@@ -14,17 +14,21 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.19.4";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    sha256 = "0hyjyk3yw2yjb47j9kd6as5bsa2wkjricnx0803sg2p4qc8rb72f";
+    sha256 = "12gmn61mfrr58071x3cdsksad6swn1b23ghih128hjdpdzk1zxs3";
   };
 
   outputs = [ "out" "man" ];
 
+  patches = [
+    ../../../applications/virtualization/podman/remove-unconfigured-runtime-warn.patch
+  ];
+
   vendorSha256 = null;
 
   doCheck = false;
@@ -41,15 +45,19 @@ buildGoModule rec {
   ];
 
   buildPhase = ''
+    runHook preBuild
     patchShebangs .
     make bin/buildah GIT_COMMIT="unknown"
     make -C docs GOMD2MAN="${go-md2man}/bin/go-md2man"
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -Dm755 bin/buildah $out/bin/buildah
     installShellCompletion --bash contrib/completions/bash/buildah
     make -C docs install PREFIX="$man"
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/buildah/wrapper.nix b/nixpkgs/pkgs/development/tools/buildah/wrapper.nix
index dfa465cfdea7..a31dece7df5e 100644
--- a/nixpkgs/pkgs/development/tools/buildah/wrapper.nix
+++ b/nixpkgs/pkgs/development/tools/buildah/wrapper.nix
@@ -17,6 +17,8 @@
 let
   buildah = buildah-unwrapped;
 
+  preferLocalBuild = true;
+
   binPath = lib.makeBinPath ([
     runc
     crun
diff --git a/nixpkgs/pkgs/development/tools/buildkit/default.nix b/nixpkgs/pkgs/development/tools/buildkit/default.nix
index 558940587949..806eb7c5b0ed 100644
--- a/nixpkgs/pkgs/development/tools/buildkit/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildkit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "buildkit";
-  version = "0.8.1";
+  version = "0.8.2";
 
   goPackagePath = "github.com/moby/buildkit";
   subPackages = [ "cmd/buildctl" ] ++ lib.optionals stdenv.isLinux [ "cmd/buildkitd" ];
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    sha256 = "0lqfz097nyb6q6bn5mmfg6vl1nmgb6k4lmwxc8anza6zp8qh7wif";
+    sha256 = "sha256-aPVroqpR4ynfHhjJ6jJX6y5cdgmoUny3A8GBhnooOeo=";
   };
 
   buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version} -X ${goPackagePath}/version.Revision=${src.rev}" ];
diff --git a/nixpkgs/pkgs/development/tools/buildpack/default.nix b/nixpkgs/pkgs/development/tools/buildpack/default.nix
index aa60d7be5b51..0f31f7b1b37d 100644
--- a/nixpkgs/pkgs/development/tools/buildpack/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildpack/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pack";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "buildpacks";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VTQ3NOskBp7ic8a/nn/ZbALJVff+Pb/ZHHbld/OxQdo=";
+    sha256 = "sha256-+fYw5dIDJJKGQKBL6RQh1SCQufbAkKeuJpPlywzbbnM=";
   };
 
-  vendorSha256 = "sha256-n8X2NyQiOpEQ0d/ek1kdxKFfaCFf0EucflVLZjOGMfY=";
+  vendorSha256 = "sha256-fSUTl5W/DyloCuCpEqA5z4bhB7wYxzPt6E0SfjorfQ0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/tools/cask/default.nix b/nixpkgs/pkgs/development/tools/cask/default.nix
index 886d435b8114..1c5f316cea9d 100644
--- a/nixpkgs/pkgs/development/tools/cask/default.nix
+++ b/nixpkgs/pkgs/development/tools/cask/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python, emacs }:
+{ lib, stdenv, fetchurl, python3, emacs }:
 
 stdenv.mkDerivation rec {
   pname = "cask";
@@ -12,9 +12,11 @@ stdenv.mkDerivation rec {
     s f dash ansi ecukes servant ert-runner el-mock
     noflet ert-async shell-split-string git package-build
   ] ++ [
-    python
+    python3
   ];
 
+  strictDeps = true;
+
   buildPhase = ''
     emacs --batch -L . -f batch-byte-compile cask.el cask-cli.el
   '';
diff --git a/nixpkgs/pkgs/development/tools/castxml/default.nix b/nixpkgs/pkgs/development/tools/castxml/default.nix
index ff47bd0e9f36..f3d9b74181aa 100644
--- a/nixpkgs/pkgs/development/tools/castxml/default.nix
+++ b/nixpkgs/pkgs/development/tools/castxml/default.nix
@@ -1,52 +1,69 @@
-{ lib, stdenv, fetchFromGitHub
-, python3Packages
+{ lib
+, stdenv
+, fetchFromGitHub
+, clang-unwrapped
 , cmake
-, llvmPackages
-, libffi, libxml2, zlib
-, withMan ? true
+, libclang
+, libffi
+, libxml2
+, llvm
+, sphinx
+, zlib
+, withManual ? true
+, withHTML ? true
 }:
-stdenv.mkDerivation rec {
 
-  pname   = "CastXML";
-  version = "0.3.4";
+stdenv.mkDerivation rec {
+  pname = "CastXML";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
-    owner  = pname;
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "0ypj67xrgj228myp7l1gsjw1ja97q68nmj98dsd33srmiayqraj4";
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-MschwCEkZrZmNgr8a1ocdukjXzHbXl2gmkPmygJaA6k=";
   };
 
-  nativeBuildInputs = [ cmake ] ++ lib.optionals withMan [ python3Packages.sphinx ];
-
-  clangVersion = lib.getVersion llvmPackages.clang;
+  nativeBuildInputs = [
+    cmake
+    llvm
+  ] ++ lib.optionals (withManual || withHTML) [
+    sphinx
+  ];
 
   cmakeFlags = [
-    "-DCLANG_RESOURCE_DIR=${llvmPackages.clang-unwrapped}/lib/clang/${clangVersion}/"
-    "-DSPHINX_MAN=${if withMan then "ON" else "OFF"}"
+    "-DCLANG_RESOURCE_DIR=${clang-unwrapped}/lib/clang/${lib.getVersion clang-unwrapped}/"
+    "-DSPHINX_HTML=${if withHTML then "ON" else "OFF"}"
+    "-DSPHINX_MAN=${if withManual then "ON" else "OFF"}"
   ];
 
   buildInputs = [
-    llvmPackages.clang-unwrapped
-    llvmPackages.llvm
-    libffi libxml2 zlib
+    clang-unwrapped
+    libffi
+    libxml2
+    zlib
   ];
 
-  propagatedBuildInputs = [ llvmPackages.libclang ];
+  propagatedBuildInputs = [
+    libclang
+  ];
 
   # 97% tests passed, 97 tests failed out of 2881
   # mostly because it checks command line and nix append -isystem and all
   doCheck = false;
+  # -E exclude 4 tests based on names
+  # see https://github.com/CastXML/CastXML/issues/90
   checkPhase = ''
-    # -E exclude 4 tests based on names
-    # see https://github.com/CastXML/CastXML/issues/90
+    runHook preCheck
     ctest -E 'cmd.cc-(gnu|msvc)-((c-src-c)|(src-cxx))-cmd'
+    runHook postCheck
   '';
 
   meta = with lib; {
     homepage = "https://github.com/CastXML/CastXML";
+    description = "C-family Abstract Syntax Tree XML Output";
     license = licenses.asl20;
-    description = "Abstract syntax tree XML output tool";
+    maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/ccloud-cli/default.nix b/nixpkgs/pkgs/development/tools/ccloud-cli/default.nix
index abf5845b7e9d..3095d661ab35 100644
--- a/nixpkgs/pkgs/development/tools/ccloud-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/ccloud-cli/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "ccloud-cli";
-  version = "0.202.0";
+  version = "1.25.0";
 
   # To get the latest version:
-  # curl -L 'https://s3-us-west-2.amazonaws.com/confluent.cloud?prefix=ccloud-cli/archives/&delimiter=/' | nix run nixpkgs.libxml2 -c xmllint --format -
+  # curl -L https://cnfl.io/ccloud-cli | sh -s -- -l | grep -v latest | sort -V | tail -n1
   src = fetchurl (if stdenv.hostPlatform.isDarwin then {
       url = "https://s3-us-west-2.amazonaws.com/confluent.cloud/ccloud-cli/archives/${version}/ccloud_v${version}_darwin_amd64.tar.gz";
-      sha256 = "1w7c7fwpjj6f26nmcgm6rkrl4v9zhdpygkh02la77n23lg8wxah5";
+      sha256 = "0306jg36dpccwyy239r2xvw3bvsrnrdc88390g26fhcb0048qmgb";
     } else {
       url = "https://s3-us-west-2.amazonaws.com/confluent.cloud/ccloud-cli/archives/${version}/ccloud_v${version}_linux_amd64.tar.gz";
-      sha256 = "1xbhv2viw8cbwv03rfq99jddnw5lwy812a8xby348290l323xi89";
+      sha256 = "02sly7cxqlrfd6chamlp05k9ar93mpfrkx5183js0hf595nlki61";
     });
 
   nativeBuildInputs = [ autoPatchelfHook ];
@@ -28,6 +28,13 @@ stdenv.mkDerivation rec {
     homepage = "https://docs.confluent.io/current/cloud/cli/index.html";
     license = licenses.unfree;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
+
+    # TODO: There's support for i686 systems but I do not have any such system
+    # to build it locally on, it's also unfree so I cannot rely on ofborg to
+    # build it. Get the list of supported system by looking at the list of
+    # files in the S3 bucket:
+    #
+    #   https://s3-us-west-2.amazonaws.com/confluent.cloud?prefix=ccloud-cli/archives/1.25.0/&delimiter=/%27
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/cdecl/default.nix b/nixpkgs/pkgs/development/tools/cdecl/default.nix
index 7e0a07ad834d..bc44741cffee 100644
--- a/nixpkgs/pkgs/development/tools/cdecl/default.nix
+++ b/nixpkgs/pkgs/development/tools/cdecl/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, yacc, flex, readline, ncurses, gnused}:
+{lib, stdenv, fetchurl, bison, flex, readline, ncurses, gnused}:
 
 stdenv.mkDerivation {
   name = "cdecl-2.5";
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     makeFlags="$makeFlags PREFIX=$out BINDIR=$out/bin MANDIR=$out/man1 CATDIR=$out/cat1 CC=$CC";
     mkdir -p $out/bin;
   '';
-  buildInputs = [yacc flex readline ncurses];
+  buildInputs = [bison flex readline ncurses];
 
   meta = {
     description = "Translator English -- C/C++ declarations";
diff --git a/nixpkgs/pkgs/development/tools/checkmake/default.nix b/nixpkgs/pkgs/development/tools/checkmake/default.nix
new file mode 100644
index 000000000000..3c21af8ff38d
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/checkmake/default.nix
@@ -0,0 +1,49 @@
+{ buildGoPackage, fetchFromGitHub, git, pandoc, lib }:
+
+buildGoPackage rec {
+  pname = "checkmake";
+  version = "0.1.0-2020.11.30";
+
+  goPackagePath = "github.com/mrtazz/checkmake";
+
+  src = fetchFromGitHub {
+    owner = "mrtazz";
+    repo = pname;
+    rev = "575315c9924da41534a9d0ce91c3f0d19bb53ffc";
+    sha256 = "121rsl9mh3wwadgf8ggi2xnb050pak6ma68b2sw5j8clmxbrqli3";
+  };
+
+  nativeBuildInputs = [ pandoc ];
+
+  preBuild =
+    let
+      buildVars = {
+        version = version;
+        buildTime = "N/A";
+        builder = "nix";
+        goversion = "$(go version | egrep -o 'go[0-9]+[.][^ ]*')";
+      };
+      buildVarsFlags = lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "-X main.${k}=${v}") buildVars);
+    in
+    ''
+      buildFlagsArray+=("-ldflags=${buildVarsFlags}")
+    '';
+
+  postInstall = ''
+    pandoc -s -t man -o checkmake.1 go/src/${goPackagePath}/man/man1/checkmake.1.md
+    mkdir -p $out/share/man/man1
+    mv checkmake.1 $out/share/man/man1/checkmake.1
+  '';
+
+  meta = with lib; {
+    description = "Experimental tool for linting and checking Makefiles";
+    homepage = https://github.com/mrtazz/checkmake;
+    license = licenses.mit;
+    maintainers = with maintainers; [ vidbina ];
+    platforms = platforms.linux;
+    longDescription = ''
+      checkmake is an experimental tool for linting and checking
+      Makefiles. It may not do what you want it to.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/chefdk/Gemfile b/nixpkgs/pkgs/development/tools/chefdk/Gemfile
index 47451c66d27f..0717cd32232b 100644
--- a/nixpkgs/pkgs/development/tools/chefdk/Gemfile
+++ b/nixpkgs/pkgs/development/tools/chefdk/Gemfile
@@ -1,6 +1,6 @@
 source 'https://rubygems.org'
 
-gem 'chef-dk', '4.7.73'
+gem 'chef-dk', '4.13.3'
 gem 'pry'
 gem 'test-kitchen'
 gem 'inspec'
diff --git a/nixpkgs/pkgs/development/tools/chefdk/Gemfile.lock b/nixpkgs/pkgs/development/tools/chefdk/Gemfile.lock
index ce23018bd738..1f71a4a71324 100644
--- a/nixpkgs/pkgs/development/tools/chefdk/Gemfile.lock
+++ b/nixpkgs/pkgs/development/tools/chefdk/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (5.2.4.1)
+    activesupport (5.2.4.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -9,166 +9,213 @@ GEM
     addressable (2.5.2)
       public_suffix (>= 2.0.2, < 4.0)
     app_conf (0.4.2)
-    ast (2.4.0)
-    aws-eventstream (1.0.3)
-    aws-partitions (1.275.0)
-    aws-sdk-apigateway (1.36.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    ast (2.4.2)
+    aws-eventstream (1.1.0)
+    aws-partitions (1.426.0)
+    aws-sdk-apigateway (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-apigatewayv2 (1.15.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-apigatewayv2 (1.31.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-athena (1.22.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-applicationautoscaling (1.49.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-autoscaling (1.22.0)
-      aws-sdk-core (~> 3, >= 3.52.1)
+    aws-sdk-athena (1.35.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-budgets (1.27.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-autoscaling (1.53.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudformation (1.30.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-batch (1.43.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudhsm (1.19.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-budgets (1.37.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudhsmv2 (1.20.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudformation (1.47.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudtrail (1.20.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudfront (1.48.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudwatch (1.32.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudhsm (1.28.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudwatchlogs (1.28.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudhsmv2 (1.32.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-codecommit (1.30.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudtrail (1.33.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-codedeploy (1.27.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudwatch (1.49.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-codepipeline (1.28.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudwatchevents (1.40.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-configservice (1.40.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudwatchlogs (1.39.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.90.1)
-      aws-eventstream (~> 1.0, >= 1.0.2)
+    aws-sdk-codecommit (1.41.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-codedeploy (1.38.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-codepipeline (1.40.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-cognitoidentity (1.29.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-cognitoidentityprovider (1.48.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-configservice (1.56.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-core (3.112.0)
+      aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-costandusagereportservice (1.18.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-costandusagereportservice (1.29.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-databasemigrationservice (1.50.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-dynamodb (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ec2 (1.224.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ecr (1.41.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-dynamodb (1.43.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-ecs (1.74.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ec2 (1.144.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-efs (1.37.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ecr (1.25.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-eks (1.47.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ecs (1.57.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-elasticache (1.53.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-eks (1.31.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-elasticbeanstalk (1.41.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticache (1.29.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-elasticloadbalancing (1.30.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticbeanstalk (1.26.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-elasticloadbalancingv2 (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticloadbalancing (1.19.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-elasticsearchservice (1.48.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticloadbalancingv2 (1.39.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-firehose (1.36.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticsearchservice (1.30.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-glue (1.82.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-firehose (1.24.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-guardduty (1.44.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.33.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-iam (1.47.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kafka (1.17.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-kafka (1.34.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kinesis (1.20.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-kinesis (1.31.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.29.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-kms (1.42.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-lambda (1.36.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-lambda (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-organizations (1.17.0)
-      aws-sdk-core (~> 3, >= 3.39.0)
-      aws-sigv4 (~> 1.0)
-    aws-sdk-rds (1.78.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-organizations (1.55.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-redshift (1.37.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-ram (1.22.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-route53 (1.30.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-rds (1.112.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-route53domains (1.18.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-redshift (1.54.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-route53resolver (1.11.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-route53 (1.46.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.60.2)
-      aws-sdk-core (~> 3, >= 3.83.0)
+    aws-sdk-route53domains (1.29.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-route53resolver (1.23.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-s3 (1.88.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
-    aws-sdk-securityhub (1.18.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-ses (1.27.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-sms (1.17.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-sns (1.21.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-sqs (1.23.1)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-ssm (1.71.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.1.0)
-      aws-eventstream (~> 1.0, >= 1.0.2)
-    azure_graph_rbac (0.17.1)
-      ms_rest_azure (~> 0.11.0)
-    azure_mgmt_key_vault (0.17.5)
-      ms_rest_azure (~> 0.11.1)
-    azure_mgmt_resources (0.17.8)
-      ms_rest_azure (~> 0.11.1)
-    azure_mgmt_security (0.18.0)
-      ms_rest_azure (~> 0.11.1)
-    azure_mgmt_storage (0.19.2)
-      ms_rest_azure (~> 0.11.1)
-    backports (3.16.1)
-    bcrypt_pbkdf (1.0.1)
-    berkshelf (7.0.9)
-      chef (>= 13.6.52)
+    aws-sdk-secretsmanager (1.43.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-securityhub (1.40.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-servicecatalog (1.57.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ses (1.37.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-shield (1.34.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sms (1.28.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sns (1.38.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sqs (1.36.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ssm (1.104.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-states (1.37.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-transfer (1.29.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sigv4 (1.2.2)
+      aws-eventstream (~> 1, >= 1.0.2)
+    azure_graph_rbac (0.17.2)
+      ms_rest_azure (~> 0.12.0)
+    azure_mgmt_key_vault (0.17.7)
+      ms_rest_azure (~> 0.12.0)
+    azure_mgmt_resources (0.18.1)
+      ms_rest_azure (~> 0.12.0)
+    azure_mgmt_security (0.19.0)
+      ms_rest_azure (~> 0.12.0)
+    azure_mgmt_storage (0.22.0)
+      ms_rest_azure (~> 0.12.0)
+    bcrypt_pbkdf (1.1.0)
+    berkshelf (7.1.0)
+      chef (>= 15.7.32)
       chef-config
       cleanroom (~> 1.0)
       concurrent-ruby (~> 1.0)
@@ -181,18 +228,18 @@ GEM
       solve (~> 4.0)
       thor (>= 0.20)
     builder (3.2.4)
-    chef (15.8.23)
+    chef (15.15.0)
       addressable
       bcrypt_pbkdf (~> 1.0)
       bundler (>= 1.10)
-      chef-config (= 15.8.23)
-      chef-utils (= 15.8.23)
+      chef-config (= 15.15.0)
+      chef-utils (= 15.15.0)
       chef-zero (>= 14.0.11)
       diff-lcs (~> 1.2, >= 1.2.4)
       ed25519 (~> 1.2)
       erubis (~> 2.7)
       ffi (~> 1.9, >= 1.9.25)
-      ffi-libarchive
+      ffi-libarchive (~> 1.0, >= 1.0.3)
       ffi-yajl (~> 2.2)
       highline (>= 1.6.9, < 2)
       iniparse (~> 1.4)
@@ -202,37 +249,37 @@ GEM
       mixlib-cli (>= 2.1.1, < 3.0)
       mixlib-log (>= 2.0.3, < 4.0)
       mixlib-shellout (>= 3.0.3, < 4.0)
-      net-sftp (~> 2.1, >= 2.1.2)
-      net-ssh (>= 4.2, < 6)
+      net-sftp (>= 2.1.2, < 4.0)
+      net-ssh (>= 4.2, < 7)
       net-ssh-multi (~> 1.2, >= 1.2.1)
       ohai (~> 15.0)
       plist (~> 3.2)
       proxifier (~> 1.0)
       syslog-logger (~> 1.6)
-      train-core (~> 3.1)
+      train-core (~> 3.2, >= 3.2.28)
       train-winrm (>= 0.2.5)
       tty-screen (~> 0.6)
       uuidtools (~> 2.1.5)
-    chef-cli (2.0.0)
-      addressable (>= 2.3.5, < 2.6)
-      chef (>= 14.0)
+    chef-cli (3.1.1)
+      addressable (>= 2.3.5, < 2.8)
+      chef (>= 15.0)
       cookbook-omnifetch (~> 0.5)
-      diff-lcs (~> 1.0)
+      diff-lcs (>= 1.0, < 1.4)
       ffi-yajl (>= 1.0, < 3.0)
-      license-acceptance (~> 1.0, >= 1.0.11)
+      license-acceptance (>= 1.0.11, < 3)
       minitar (~> 0.6)
       mixlib-cli (>= 1.7, < 3.0)
       mixlib-shellout (>= 2.0, < 4.0)
-      paint (~> 1.0)
+      pastel (~> 0.7)
       solve (> 2.0, < 5.0)
-    chef-config (15.8.23)
+    chef-config (15.15.0)
       addressable
-      chef-utils (= 15.8.23)
+      chef-utils (= 15.15.0)
       fuzzyurl
       mixlib-config (>= 2.2.12, < 4.0)
       mixlib-shellout (>= 2.0, < 4.0)
       tomlrb (~> 1.2)
-    chef-dk (4.7.73)
+    chef-dk (4.13.3)
       addressable (>= 2.3.5, < 2.6)
       chef (~> 15.0)
       cookbook-omnifetch (~> 0.5)
@@ -254,13 +301,12 @@ GEM
       winrm (~> 2.0)
       winrm-elevated (~> 1.0)
       winrm-fs (~> 1.0)
-    chef-telemetry (1.0.3)
+    chef-telemetry (1.0.14)
       chef-config
       concurrent-ruby (~> 1.0)
       ffi-yajl (~> 2.2)
-      http (~> 2.2)
-    chef-utils (15.8.23)
-    chef-vault (4.0.1)
+    chef-utils (15.15.0)
+    chef-vault (4.1.0)
     chef-zero (14.0.17)
       ffi-yajl (~> 2.2)
       hashie (>= 2.0, < 4.0)
@@ -270,51 +316,47 @@ GEM
     cheffish (14.0.13)
       chef-zero (~> 14.0)
       net-ssh
-    chefspec (9.1.0)
+    chefspec (9.2.1)
       chef (>= 14)
       chef-cli
       fauxhai-ng (>= 7.5)
       rspec (~> 3.0)
     cleanroom (1.0.0)
-    coderay (1.1.2)
-    concurrent-ruby (1.1.6)
-    cookbook-omnifetch (0.9.1)
+    coderay (1.1.3)
+    concurrent-ruby (1.1.8)
+    cookbook-omnifetch (0.11.1)
       mixlib-archive (>= 0.4, < 2.0)
-    cucumber-core (3.2.1)
-      backports (>= 3.8.0)
-      cucumber-tag_expressions (~> 1.1.0)
-      gherkin (~> 5.0)
-    cucumber-tag_expressions (1.1.1)
-    declarative (0.0.10)
+    declarative (0.0.20)
     declarative-option (0.1.0)
     diff-lcs (1.3)
-    diffy (3.3.0)
-    docker-api (1.34.2)
+    diffy (3.4.0)
+    docker-api (2.0.0)
       excon (>= 0.47.0)
       multi_json
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
     ed25519 (1.2.4)
-    equatable (0.6.1)
-    erubi (1.9.0)
+    erubi (1.10.0)
     erubis (2.7.0)
-    excon (0.72.0)
-    faraday (0.17.3)
+    excon (0.79.0)
+    faraday (1.3.0)
+      faraday-net_http (~> 1.0)
       multipart-post (>= 1.2, < 3)
-    faraday-cookie_jar (0.0.6)
-      faraday (>= 0.7.4)
+      ruby2_keywords
+    faraday-cookie_jar (0.0.7)
+      faraday (>= 0.8.0)
       http-cookie (~> 1.0.0)
-    faraday_middleware (0.12.2)
-      faraday (>= 0.7.4, < 1.0)
-    fauxhai-ng (7.6.0)
+    faraday-net_http (1.0.1)
+    faraday_middleware (1.0.0)
+      faraday (~> 1.0)
+    fauxhai-ng (8.7.0)
       net-ssh
-    ffi (1.12.2)
-    ffi-libarchive (1.0.0)
+    ffi (1.14.2)
+    ffi-libarchive (1.0.17)
       ffi (~> 1.0)
-    ffi-yajl (2.3.3)
+    ffi-yajl (2.3.4)
       libyajl2 (~> 1.2)
-    foodcritic (16.2.0)
-      cucumber-core (>= 1.3, < 4.0)
+    foodcritic (16.3.0)
       erubis
       ffi-yajl (~> 2.0)
       nokogiri (>= 1.5, < 2.0)
@@ -322,138 +364,124 @@ GEM
       rufus-lru (~> 1.0)
       treetop (~> 1.4)
     fuzzyurl (0.9.0)
-    gherkin (5.1.0)
-    git (1.6.0)
+    git (1.8.1)
       rchardet (~> 1.8)
-    google-api-client (0.34.1)
+    google-api-client (0.52.0)
       addressable (~> 2.5, >= 2.5.1)
       googleauth (~> 0.9)
       httpclient (>= 2.8.1, < 3.0)
       mini_mime (~> 1.0)
       representable (~> 3.0)
       retriable (>= 2.0, < 4.0)
+      rexml
       signet (~> 0.12)
-    googleauth (0.10.0)
-      faraday (~> 0.12)
+    googleauth (0.14.0)
+      faraday (>= 0.17.3, < 2.0)
       jwt (>= 1.4, < 3.0)
       memoist (~> 0.16)
       multi_json (~> 1.11)
       os (>= 0.9, < 2.0)
-      signet (~> 0.12)
-    gssapi (1.3.0)
+      signet (~> 0.14)
+    gssapi (1.3.1)
       ffi (>= 1.0.1)
     gyoku (1.3.1)
       builder (>= 2.1.2)
     hashie (3.6.0)
     highline (1.7.10)
-    htmlentities (4.3.4)
-    http (2.2.2)
-      addressable (~> 2.3)
-      http-cookie (~> 1.0)
-      http-form_data (~> 1.0.1)
-      http_parser.rb (~> 0.6.0)
     http-cookie (1.0.3)
       domain_name (~> 0.5)
-    http-form_data (1.0.3)
-    http_parser.rb (0.6.0)
     httpclient (2.8.3)
-    i18n (1.8.2)
+    i18n (1.8.8)
       concurrent-ruby (~> 1.0)
     inifile (3.0.0)
-    iniparse (1.4.4)
-    inspec (4.18.85)
-      faraday_middleware (~> 0.12.2)
-      inspec-core (= 4.18.85)
+    iniparse (1.5.0)
+    inspec (4.26.4)
+      faraday_middleware (>= 0.12.2, < 1.1)
+      inspec-core (= 4.26.4)
       train (~> 3.0)
       train-aws (~> 0.1)
       train-habitat (~> 0.1)
       train-winrm (~> 0.2)
-    inspec-core (4.18.85)
+    inspec-core (4.26.4)
       addressable (~> 2.4)
       chef-telemetry (~> 1.0)
-      faraday (>= 0.9.0)
-      hashie (~> 3.4)
-      htmlentities (~> 4.3)
-      json-schema (~> 2.8)
-      license-acceptance (>= 0.2.13, < 2.0)
-      method_source (~> 0.8)
+      faraday (>= 0.9.0, < 1.4)
+      faraday_middleware (~> 1.0)
+      hashie (>= 3.4, < 5.0)
+      license-acceptance (>= 0.2.13, < 3.0)
+      method_source (>= 0.8, < 2.0)
       mixlib-log (~> 3.0)
       multipart-post (~> 2.0)
       parallel (~> 1.9)
-      parslet (~> 1.5)
-      pry (~> 0)
-      rspec (~> 3.9)
+      parslet (>= 1.5, < 2.0)
+      pry (~> 0.13)
+      rspec (>= 3.9, < 3.11)
       rspec-its (~> 1.2)
-      rubyzip (~> 1.2, >= 1.2.2)
+      rubyzip (>= 1.2.2, < 3.0)
       semverse (~> 3.0)
       sslshake (~> 1.2)
-      term-ansicolor (~> 1.7)
       thor (>= 0.20, < 2.0)
-      tomlrb (~> 1.2)
+      tomlrb (>= 1.2, < 2.1)
       train-core (~> 3.0)
       tty-prompt (~> 0.17)
       tty-table (~> 0.10)
     ipaddress (0.8.3)
-    jaro_winkler (1.5.4)
     jmespath (1.4.0)
-    json (2.3.0)
-    json-schema (2.8.1)
-      addressable (>= 2.4)
-    jwt (2.2.1)
-    kitchen-inspec (1.3.1)
-      hashie (~> 3.4)
-      inspec (>= 1.47, < 5.0)
-      test-kitchen (>= 1.6, < 3)
-    kitchen-vagrant (1.6.1)
+    json (2.5.1)
+    jwt (2.2.2)
+    kitchen-inspec (2.3.0)
+      hashie (>= 3.4, <= 5.0)
+      inspec (>= 2.2.64, < 5.0)
+      test-kitchen (>= 2.7, < 3)
+    kitchen-vagrant (1.8.0)
       test-kitchen (>= 1.4, < 3)
-    knife-spork (1.7.2)
+    knife-spork (1.7.3)
       app_conf (>= 0.4.0)
       chef (>= 11.0.0)
       diffy (>= 3.0.1)
       git (>= 1.2.5)
     libyajl2 (1.2.0)
-    license-acceptance (1.0.13)
+    license-acceptance (1.0.19)
       pastel (~> 0.7)
       tomlrb (~> 1.2)
       tty-box (~> 0.3)
       tty-prompt (~> 0.18)
     little-plugger (1.1.4)
-    logging (2.2.2)
+    logging (2.3.0)
       little-plugger (~> 1.1)
-      multi_json (~> 1.10)
+      multi_json (~> 1.14)
     memoist (0.16.2)
-    method_source (0.9.2)
+    method_source (1.0.0)
     mini_mime (1.0.2)
-    mini_portile2 (2.4.0)
+    mini_portile2 (2.5.0)
     minitar (0.9)
-    minitest (5.14.0)
-    mixlib-archive (1.0.5)
+    minitest (5.14.3)
+    mixlib-archive (1.1.4)
       mixlib-log
-    mixlib-authentication (3.0.6)
-    mixlib-cli (2.1.5)
-    mixlib-config (3.0.6)
+    mixlib-authentication (3.0.7)
+    mixlib-cli (2.1.8)
+    mixlib-config (3.0.9)
       tomlrb
-    mixlib-install (3.11.26)
+    mixlib-install (3.12.5)
       mixlib-shellout
       mixlib-versioning
       thor
-    mixlib-log (3.0.8)
-    mixlib-shellout (3.0.9)
+    mixlib-log (3.0.9)
+    mixlib-shellout (3.2.2)
+      chef-utils
     mixlib-versioning (1.2.12)
-    molinillo (0.6.6)
-    ms_rest (0.7.5)
+    molinillo (0.7.0)
+    ms_rest (0.7.6)
       concurrent-ruby (~> 1.0)
-      faraday (~> 0.9)
+      faraday (>= 0.9, < 2.0.0)
       timeliness (~> 0.3.10)
-    ms_rest_azure (0.11.1)
+    ms_rest_azure (0.12.0)
       concurrent-ruby (~> 1.0)
-      faraday (~> 0.9)
+      faraday (>= 0.9, < 2.0.0)
       faraday-cookie_jar (~> 0.0.6)
-      ms_rest (~> 0.7.4)
-      unf_ext (= 0.0.7.2)
-    multi_json (1.14.1)
+      ms_rest (~> 0.7.6)
+    multi_json (1.15.0)
     multipart-post (2.1.1)
-    necromancer (0.5.1)
     net-scp (1.2.1)
       net-ssh (>= 2.6.5)
     net-sftp (2.1.2)
@@ -464,13 +492,14 @@ GEM
     net-ssh-multi (1.2.1)
       net-ssh (>= 2.6.5)
       net-ssh-gateway (>= 1.2.0)
-    nokogiri (1.10.8)
-      mini_portile2 (~> 2.4.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     nori (2.6.0)
-    octokit (4.16.0)
+    octokit (4.20.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
-    ohai (15.7.4)
+    ohai (15.12.0)
       chef-config (>= 12.8, < 16)
       ffi (~> 1.9)
       ffi-yajl (~> 2.2)
@@ -482,26 +511,27 @@ GEM
       plist (~> 3.1)
       systemu (~> 2.6.4)
       wmi-lite (~> 1.0)
-    os (1.0.1)
+    os (1.1.1)
     paint (1.0.1)
-    parallel (1.19.1)
-    parser (2.7.0.2)
-      ast (~> 2.4.0)
+    parallel (1.20.1)
+    parser (3.0.0.0)
+      ast (~> 2.4.1)
     parslet (1.8.2)
-    pastel (0.7.3)
-      equatable (~> 0.6)
+    pastel (0.8.0)
       tty-color (~> 0.5)
-    plist (3.5.0)
+    plist (3.6.0)
     polyglot (0.3.5)
     proxifier (1.0.3)
-    pry (0.12.2)
-      coderay (~> 1.1.0)
-      method_source (~> 0.9.0)
+    pry (0.14.0)
+      coderay (~> 1.1)
+      method_source (~> 1.0)
     public_suffix (3.1.1)
-    rack (2.2.2)
+    racc (1.5.2)
+    rack (2.2.3)
     rainbow (3.0.0)
-    rake (13.0.1)
+    rake (13.0.3)
     rchardet (1.8.0)
+    regexp_parser (2.0.3)
     representable (3.0.4)
       declarative (< 0.1.0)
       declarative-option (< 0.2.0)
@@ -509,110 +539,118 @@ GEM
     retriable (3.1.2)
     retryable (3.0.5)
     rexml (3.2.4)
-    rspec (3.9.0)
-      rspec-core (~> 3.9.0)
-      rspec-expectations (~> 3.9.0)
-      rspec-mocks (~> 3.9.0)
-    rspec-core (3.9.1)
-      rspec-support (~> 3.9.1)
-    rspec-expectations (3.9.0)
+    rspec (3.10.0)
+      rspec-core (~> 3.10.0)
+      rspec-expectations (~> 3.10.0)
+      rspec-mocks (~> 3.10.0)
+    rspec-core (3.10.1)
+      rspec-support (~> 3.10.0)
+    rspec-expectations (3.10.1)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.9.0)
+      rspec-support (~> 3.10.0)
     rspec-its (1.3.0)
       rspec-core (>= 3.0.0)
       rspec-expectations (>= 3.0.0)
-    rspec-mocks (3.9.1)
+    rspec-mocks (3.10.2)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.9.0)
-    rspec-support (3.9.2)
-    rubocop (0.80.0)
-      jaro_winkler (~> 1.5.1)
+      rspec-support (~> 3.10.0)
+    rspec-support (3.10.2)
+    rubocop (1.9.1)
       parallel (~> 1.10)
-      parser (>= 2.7.0.1)
+      parser (>= 3.0.0.0)
       rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 1.8, < 3.0)
       rexml
+      rubocop-ast (>= 1.2.0, < 2.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 1.7)
-    ruby-progressbar (1.10.1)
-    rubyntlm (0.6.2)
-    rubyzip (1.3.0)
+      unicode-display_width (>= 1.4.0, < 3.0)
+    rubocop-ast (1.4.1)
+      parser (>= 2.7.1.5)
+    ruby-progressbar (1.11.0)
+    ruby2_keywords (0.0.4)
+    rubyntlm (0.6.3)
+    rubyzip (2.3.0)
     rufus-lru (1.1.0)
     sawyer (0.8.2)
       addressable (>= 2.3.5)
       faraday (> 0.8, < 2.0)
     semverse (3.0.0)
-    signet (0.12.0)
+    signet (0.14.1)
       addressable (~> 2.3)
-      faraday (~> 0.9)
+      faraday (>= 0.17.3, < 2.0)
       jwt (>= 1.5, < 3.0)
       multi_json (~> 1.10)
-    solve (4.0.3)
+    solve (4.0.4)
       molinillo (~> 0.6)
       semverse (>= 1.1, < 4.0)
-    sslshake (1.3.0)
-    strings (0.1.8)
-      strings-ansi (~> 0.1)
+    sslshake (1.3.1)
+    strings (0.2.0)
+      strings-ansi (~> 0.2)
       unicode-display_width (~> 1.5)
       unicode_utils (~> 1.4)
     strings-ansi (0.2.0)
-    sync (0.5.0)
     syslog-logger (1.6.8)
     systemu (2.6.5)
-    term-ansicolor (1.7.1)
-      tins (~> 1.0)
-    test-kitchen (2.3.4)
+    test-kitchen (2.10.0)
       bcrypt_pbkdf (~> 1.0)
       ed25519 (~> 1.2)
-      license-acceptance (~> 1.0, >= 1.0.11)
+      license-acceptance (>= 1.0.11, < 3.0)
       mixlib-install (~> 3.6)
       mixlib-shellout (>= 1.2, < 4.0)
-      net-scp (>= 1.1, < 3.0)
-      net-ssh (>= 2.9, < 6.0)
+      net-scp (>= 1.1, < 4.0)
+      net-ssh (>= 2.9, < 7.0)
       net-ssh-gateway (>= 1.2, < 3.0)
-      thor (~> 0.19)
+      thor (>= 0.19, < 2.0)
       winrm (~> 2.0)
       winrm-elevated (~> 1.0)
       winrm-fs (~> 1.1)
-    thor (0.20.3)
+    thor (1.1.0)
     thread_safe (0.3.6)
     timeliness (0.3.10)
-    tins (1.24.1)
-      sync
-    tomlrb (1.2.9)
-    train (3.2.22)
-      activesupport (~> 5.2.3)
+    tomlrb (1.3.0)
+    train (3.4.9)
+      activesupport (>= 5.2.4.3, < 6.0.0)
       azure_graph_rbac (~> 0.16)
       azure_mgmt_key_vault (~> 0.17)
       azure_mgmt_resources (~> 0.15)
       azure_mgmt_security (~> 0.18)
       azure_mgmt_storage (~> 0.18)
-      docker-api (~> 1.26)
-      google-api-client (>= 0.23.9, < 0.35.0)
-      googleauth (>= 0.6.6, < 0.11.0)
-      train-core (= 3.2.22)
+      docker-api (>= 1.26, < 3.0)
+      google-api-client (>= 0.23.9, <= 0.52.0)
+      googleauth (>= 0.6.6, <= 0.14.0)
+      inifile (~> 3.0)
+      train-core (= 3.4.9)
       train-winrm (~> 0.2)
-    train-aws (0.1.15)
+    train-aws (0.1.35)
       aws-sdk-apigateway (~> 1.0)
       aws-sdk-apigatewayv2 (~> 1.0)
+      aws-sdk-applicationautoscaling (>= 1.46, < 1.50)
       aws-sdk-athena (~> 1.0)
-      aws-sdk-autoscaling (~> 1.22.0)
+      aws-sdk-autoscaling (>= 1.22, < 1.54)
+      aws-sdk-batch (>= 1.36, < 1.44)
       aws-sdk-budgets (~> 1.0)
       aws-sdk-cloudformation (~> 1.0)
+      aws-sdk-cloudfront (~> 1.0)
       aws-sdk-cloudhsm (~> 1.0)
       aws-sdk-cloudhsmv2 (~> 1.0)
       aws-sdk-cloudtrail (~> 1.8)
       aws-sdk-cloudwatch (~> 1.13)
+      aws-sdk-cloudwatchevents (>= 1.36, < 1.41)
       aws-sdk-cloudwatchlogs (~> 1.13)
       aws-sdk-codecommit (~> 1.0)
       aws-sdk-codedeploy (~> 1.0)
       aws-sdk-codepipeline (~> 1.0)
+      aws-sdk-cognitoidentity (>= 1.26, < 1.30)
+      aws-sdk-cognitoidentityprovider (>= 1.46, < 1.49)
       aws-sdk-configservice (~> 1.21)
       aws-sdk-core (~> 3.0)
       aws-sdk-costandusagereportservice (~> 1.6)
+      aws-sdk-databasemigrationservice (>= 1.42, < 1.51)
       aws-sdk-dynamodb (~> 1.31)
       aws-sdk-ec2 (~> 1.70)
       aws-sdk-ecr (~> 1.18)
       aws-sdk-ecs (~> 1.30)
+      aws-sdk-efs (~> 1.0)
       aws-sdk-eks (~> 1.9)
       aws-sdk-elasticache (~> 1.0)
       aws-sdk-elasticbeanstalk (~> 1.0)
@@ -620,68 +658,74 @@ GEM
       aws-sdk-elasticloadbalancingv2 (~> 1.0)
       aws-sdk-elasticsearchservice (~> 1.0)
       aws-sdk-firehose (~> 1.0)
+      aws-sdk-glue (>= 1.71, < 1.83)
+      aws-sdk-guardduty (~> 1.31)
       aws-sdk-iam (~> 1.13)
       aws-sdk-kafka (~> 1.0)
       aws-sdk-kinesis (~> 1.0)
       aws-sdk-kms (~> 1.13)
       aws-sdk-lambda (~> 1.0)
-      aws-sdk-organizations (~> 1.17.0)
+      aws-sdk-organizations (>= 1.17, < 1.56)
+      aws-sdk-ram (>= 1.21, < 1.23)
       aws-sdk-rds (~> 1.43)
       aws-sdk-redshift (~> 1.0)
       aws-sdk-route53 (~> 1.0)
       aws-sdk-route53domains (~> 1.0)
       aws-sdk-route53resolver (~> 1.0)
       aws-sdk-s3 (~> 1.30)
+      aws-sdk-secretsmanager (>= 1.42, < 1.44)
       aws-sdk-securityhub (~> 1.0)
+      aws-sdk-servicecatalog (>= 1.48, < 1.58)
       aws-sdk-ses (~> 1.0)
+      aws-sdk-shield (~> 1.30)
       aws-sdk-sms (~> 1.0)
       aws-sdk-sns (~> 1.9)
       aws-sdk-sqs (~> 1.10)
       aws-sdk-ssm (~> 1.0)
-    train-core (3.2.22)
+      aws-sdk-states (>= 1.35, < 1.38)
+      aws-sdk-transfer (>= 1.26, < 1.30)
+    train-core (3.4.9)
       addressable (~> 2.5)
-      inifile (~> 3.0)
+      ffi (!= 1.13.0)
       json (>= 1.8, < 3.0)
       mixlib-shellout (>= 2.0, < 4.0)
-      net-scp (>= 1.2, < 3.0)
-      net-ssh (>= 2.9, < 6.0)
-    train-habitat (0.2.13)
-    train-winrm (0.2.6)
-      winrm (~> 2.0)
+      net-scp (>= 1.2, < 4.0)
+      net-ssh (>= 2.9, < 7.0)
+    train-habitat (0.2.22)
+    train-winrm (0.2.12)
+      winrm (>= 2.3.6, < 3.0)
+      winrm-elevated (~> 1.2.2)
       winrm-fs (~> 1.0)
-    treetop (1.6.10)
+    treetop (1.6.11)
       polyglot (~> 0.3)
-    tty-box (0.5.0)
-      pastel (~> 0.7.2)
-      strings (~> 0.1.6)
+    tty-box (0.7.0)
+      pastel (~> 0.8)
+      strings (~> 0.2.0)
       tty-cursor (~> 0.7)
-    tty-color (0.5.1)
+    tty-color (0.6.0)
     tty-cursor (0.7.1)
-    tty-prompt (0.20.0)
-      necromancer (~> 0.5.0)
-      pastel (~> 0.7.0)
-      tty-reader (~> 0.7.0)
-    tty-reader (0.7.0)
+    tty-prompt (0.23.0)
+      pastel (~> 0.8)
+      tty-reader (~> 0.8)
+    tty-reader (0.9.0)
       tty-cursor (~> 0.7)
-      tty-screen (~> 0.7)
-      wisper (~> 2.0.0)
-    tty-screen (0.7.1)
-    tty-table (0.11.0)
-      equatable (~> 0.6)
-      necromancer (~> 0.5)
-      pastel (~> 0.7.2)
-      strings (~> 0.1.5)
-      tty-screen (~> 0.7)
-    tzinfo (1.2.6)
+      tty-screen (~> 0.8)
+      wisper (~> 2.0)
+    tty-screen (0.8.1)
+    tty-table (0.12.0)
+      pastel (~> 0.8)
+      strings (~> 0.2.0)
+      tty-screen (~> 0.8)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
     uber (0.1.0)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.7.2)
-    unicode-display_width (1.6.1)
+    unf_ext (0.0.7.7)
+    unicode-display_width (1.7.0)
     unicode_utils (1.4.0)
     uuidtools (2.1.5)
-    winrm (2.3.4)
+    winrm (2.3.6)
       builder (>= 2.1.2)
       erubi (~> 1.8)
       gssapi (~> 1.2)
@@ -689,15 +733,15 @@ GEM
       httpclient (~> 2.2, >= 2.2.0.2)
       logging (>= 1.6.1, < 3.0)
       nori (~> 2.0)
-      rubyntlm (~> 0.6.0, >= 0.6.1)
-    winrm-elevated (1.2.1)
+      rubyntlm (~> 0.6.0, >= 0.6.3)
+    winrm-elevated (1.2.3)
       erubi (~> 1.8)
       winrm (~> 2.0)
       winrm-fs (~> 1.0)
-    winrm-fs (1.3.3)
+    winrm-fs (1.3.5)
       erubi (~> 1.8)
       logging (>= 1.6.1, < 3.0)
-      rubyzip (~> 1.1)
+      rubyzip (~> 2.0)
       winrm (~> 2.0)
     wisper (2.0.1)
     wmi-lite (1.0.5)
@@ -707,7 +751,7 @@ PLATFORMS
 
 DEPENDENCIES
   berkshelf
-  chef-dk (= 4.7.73)
+  chef-dk (= 4.13.3)
   chef-provisioning
   chef-vault
   chefspec
diff --git a/nixpkgs/pkgs/development/tools/chefdk/default.nix b/nixpkgs/pkgs/development/tools/chefdk/default.nix
index 1a5f6c8626ad..6a1470e10749 100644
--- a/nixpkgs/pkgs/development/tools/chefdk/default.nix
+++ b/nixpkgs/pkgs/development/tools/chefdk/default.nix
@@ -1,7 +1,7 @@
 { lib, bundlerEnv, bundlerUpdateScript, ruby, perl, autoconf }:
 
 bundlerEnv {
-  name = "chef-dk-4.7.73";
+  name = "chef-dk-4.13.3";
 
   inherit ruby;
   gemdir = ./.;
diff --git a/nixpkgs/pkgs/development/tools/chefdk/gemset.nix b/nixpkgs/pkgs/development/tools/chefdk/gemset.nix
index 1f9522ba4c57..14c81742cd2a 100644
--- a/nixpkgs/pkgs/development/tools/chefdk/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/chefdk/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lmlnx79sv18xv1ddm4vq7z3mwdfa4468mq5186av0k8n1k471sp";
+      sha256 = "0fp4gr3g25qgl01y3pd88wfh4pjc5zj3bz4v7rkxxwaxdjg7a9cc";
       type = "gem";
     };
-    version = "5.2.4.1";
+    version = "5.2.4.5";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -36,30 +36,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.4.2";
   };
   aws-eventstream = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "100g77a5ixg4p5zwq77f28n2pdkk0y481f7v83qrlmnj22318qq6";
+      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.1.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bkzzk4mxsxvnd8sr5xx57vc29j69h48gj2g24fzjn7ika6az18z";
+      sha256 = "0nrqbbzykj9ckri3ci1wsksy8rhz13rigm3aznxy08gqvzv7bcy9";
       type = "gem";
     };
-    version = "1.275.0";
+    version = "1.426.0";
   };
   aws-sdk-apigateway = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -67,10 +67,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "106wn66gnn1rk9z4w84iwqb26wbyz3i2q9ck3xxabc47ly9mj03m";
+      sha256 = "15vwm6a18v1xqfpn2ipx1h5wqwd5yipgp624p4pkchcdqacb7gvm";
       type = "gem";
     };
-    version = "1.36.0";
+    version = "1.59.0";
   };
   aws-sdk-apigatewayv2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -78,10 +78,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x9qaxi1614pfp9hy5ywk7y76gfmk5d0iz6lj9p9qy92gfzx169c";
+      sha256 = "171v0xng5h6hk1nqrivv49rpz1f4jhj2lhq3pxk5izx3q1lf7rc7";
       type = "gem";
     };
-    version = "1.15.0";
+    version = "1.31.0";
+  };
+  aws-sdk-applicationautoscaling = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01zldlqn573bmlpg7qm562cy9miyrirzknagjbnzs4iwjnm4rgn4";
+      type = "gem";
+    };
+    version = "1.49.0";
   };
   aws-sdk-athena = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -89,10 +100,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hvskqq406vh9xa29jzyjhfpf6m834872p87a2j0ly5kh4ydldkz";
+      sha256 = "0lmbchjn30rpk311q2z5g8j96g5mi8hajc3fbzh3nam7wj4hmdbn";
       type = "gem";
     };
-    version = "1.22.0";
+    version = "1.35.0";
   };
   aws-sdk-autoscaling = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -100,10 +111,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jrz4brxbi8rxqk1jg5wcdsa1knfrgzrmx9dygfzbfi2szcfmbhv";
+      sha256 = "1vkfybjdmxn7hwsywfgkcr8mms88l4v6kwj29c8qr2k7ds4l4bsn";
       type = "gem";
     };
-    version = "1.22.0";
+    version = "1.53.0";
+  };
+  aws-sdk-batch = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14q0b84qa5mc24nw1fqns822wkg1gvlwvwbia1m7bzzmj98maikw";
+      type = "gem";
+    };
+    version = "1.43.0";
   };
   aws-sdk-budgets = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -111,10 +133,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xxgldgin1gavz7w37pmsxrhiwr8bvssjgv3lwzbwdsjqk0jd0f3";
+      sha256 = "0lm7m09fp5jlranzv1hfc3xv8fn6bmw2g3kwjsj6r094qi3nyp42";
       type = "gem";
     };
-    version = "1.27.0";
+    version = "1.37.0";
   };
   aws-sdk-cloudformation = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -122,10 +144,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bxipaq1g6c5g8zirqlbq74kmy8fglavhyrxyd91sy9yj2d9q26r";
+      sha256 = "09lcq8gpi4x7xvwy8njmbcbbgyrq6xsfbyc7hwj3m4dps9f116gw";
       type = "gem";
     };
-    version = "1.30.0";
+    version = "1.47.0";
+  };
+  aws-sdk-cloudfront = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w70d8wv5cb8p5wpyq828fjrccz0xxbvg5sk66bmwq0zjcxnvpb6";
+      type = "gem";
+    };
+    version = "1.48.0";
   };
   aws-sdk-cloudhsm = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -133,10 +166,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "096dpm87k0q1kqnvf5v0sb98gdsq41390pxvs014qphqycqjchc6";
+      sha256 = "0a4imw0rahd6bh4clcwxkcvl4lf8pmyba1sjlc1hx37jv641wlqf";
       type = "gem";
     };
-    version = "1.19.0";
+    version = "1.28.0";
   };
   aws-sdk-cloudhsmv2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -144,10 +177,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10cyc1brjppnkmynkb3qf7ar78a4dhngg3fmmfxnxlcrigwbrxpa";
+      sha256 = "13kdq0xnbgrvi9f9jqrig453bc5mf7by3cjcdd8jsv8aay0gqads";
       type = "gem";
     };
-    version = "1.20.0";
+    version = "1.32.0";
   };
   aws-sdk-cloudtrail = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -155,10 +188,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "034psp0g7ab9al7389y64pr2ar2jvxsg6p1djj4w53700xrj602g";
+      sha256 = "083nld91s8klfr2p0mwrdlx4lgiig9kx0cikiqrifd30lbja51wg";
       type = "gem";
     };
-    version = "1.20.0";
+    version = "1.33.0";
   };
   aws-sdk-cloudwatch = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -166,10 +199,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jvjjlcyp1sx0gsgm82h84n32sb51m8ih53ab4qq94m9jcxk49cr";
+      sha256 = "1vsb01nw85sk3zsdyw5ix0yw3n81xjhj4h0431qm60mdg9akgbs4";
       type = "gem";
     };
-    version = "1.32.0";
+    version = "1.49.0";
+  };
+  aws-sdk-cloudwatchevents = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14hhy8zbyn5x2660pg5aq02lni69clx3y7rkvzqrldcy0482863y";
+      type = "gem";
+    };
+    version = "1.40.0";
   };
   aws-sdk-cloudwatchlogs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -177,10 +221,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bhnlh3skqw3l2yfr6nd97arlcmijpm51k664m51l5xw2971bc51";
+      sha256 = "0aravrxjnp886kaag037z45xiyfr75gz0p4psjq9x3qj6gzsjn8y";
       type = "gem";
     };
-    version = "1.28.0";
+    version = "1.39.0";
   };
   aws-sdk-codecommit = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -188,10 +232,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00mkgfywxqzbbin2qidx4qvb5xcjjl41v6am023bl2yww5x8hi5p";
+      sha256 = "1cb1bqlf3kh8akll1xybrn314ngk62jqhpli99kdjq27hxir5jq2";
       type = "gem";
     };
-    version = "1.30.0";
+    version = "1.41.0";
   };
   aws-sdk-codedeploy = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -199,10 +243,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06m5i5g2j2yylksficbla25cjsdw42y5gbzmx5ycxvxz3c4n3qh1";
+      sha256 = "117rv0hx77kyhz9zm1fqbxdbk3lhyxcbibwn27nyafch6sl1x2j4";
       type = "gem";
     };
-    version = "1.27.0";
+    version = "1.38.0";
   };
   aws-sdk-codepipeline = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -210,10 +254,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09dkyclanvxz77hh933ph2ad4yh7midy09hbprszfikhfkvi4z2m";
+      sha256 = "0xdkc3xmff901bjfsyg454dn27gfr6nzvgkia0kngdzgq6x4xb45";
       type = "gem";
     };
-    version = "1.28.0";
+    version = "1.40.0";
+  };
+  aws-sdk-cognitoidentity = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "122i3g320ccaqg541kzb0pawiz61zyphvbwnkv5rlqpwspca1m3b";
+      type = "gem";
+    };
+    version = "1.29.0";
+  };
+  aws-sdk-cognitoidentityprovider = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m09dxwyw01vh9rksz8dwdx36vsr8f7p5qmjmvfazjapzv3q6qmn";
+      type = "gem";
+    };
+    version = "1.48.0";
   };
   aws-sdk-configservice = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -221,10 +287,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gjw5jv4p9zhdh4cg982x7x3lpfhgi7an14gjwz1llxmmkzv15wr";
+      sha256 = "1msdg1gpq9y9maf2fdljcp2vbydbjqfk07ff9j532bvikax0qmfy";
       type = "gem";
     };
-    version = "1.40.0";
+    version = "1.56.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -232,10 +298,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q7f9jkpmpppj31kh3wnzybkphq4piy8ays3vld0zsibfjs9iw7i";
+      sha256 = "15lynby6r91p9hh5h92pg4jr8xgnjr52px5ax0p0wncdw4vz0skp";
       type = "gem";
     };
-    version = "3.90.1";
+    version = "3.112.0";
   };
   aws-sdk-costandusagereportservice = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -243,10 +309,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18yzz7av4z8qh321r0ih6m5lc1x4mh10pn67z6y70ny8syxm4kl6";
+      sha256 = "1dzbh8xf8j466gwrawmprwclslvd8sqlzzzxpzyxv4y9m09bhypk";
       type = "gem";
     };
-    version = "1.18.0";
+    version = "1.29.0";
+  };
+  aws-sdk-databasemigrationservice = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vd4a5z1q282xx7717f542yavb6x13fli64rhwnc143xij4izgpn";
+      type = "gem";
+    };
+    version = "1.50.0";
   };
   aws-sdk-dynamodb = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -254,10 +331,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06nbf297r85ix92x9ilx8ysz67sm59mprscmmdp4rsn74v78dzaj";
+      sha256 = "19k3iznglnwwgqd95i5zmim41c98l8ydf6ih9am50gs0n6bky41q";
       type = "gem";
     };
-    version = "1.43.0";
+    version = "1.59.0";
   };
   aws-sdk-ec2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -265,10 +342,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wnql5rzwkn97w4l3pq6k97grqdci1qs7h132pnd6lc3bx62v4h5";
+      sha256 = "1lg8vh124viba77b0qhi5j8xx8b4wxdiyycl4kaawmddwhr33zx9";
       type = "gem";
     };
-    version = "1.144.0";
+    version = "1.224.0";
   };
   aws-sdk-ecr = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -276,10 +353,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1smq30avqjq6h4yvw9h0k2gwp97c4l4868f2vdj93l84i80gh1pi";
+      sha256 = "0di8s9dpyzal5n2qpx8l3jnbkm72h6kz759l04kxfapgzd5ppwhv";
       type = "gem";
     };
-    version = "1.25.0";
+    version = "1.41.0";
   };
   aws-sdk-ecs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -287,10 +364,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "113kwczkqr4jsyrnnxkm0kpdqs3ysc0913nclb5mdwapd5dbq3br";
+      sha256 = "0qilim7dm5hc4knhvz9090hzbmlrd24m5fywj9kr60fvhgnm0wf0";
       type = "gem";
     };
-    version = "1.57.0";
+    version = "1.74.0";
+  };
+  aws-sdk-efs = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03bf0g1nky772r4xz3w6nvpf09wf1096qifd0i8hgzp7cwirbmby";
+      type = "gem";
+    };
+    version = "1.37.0";
   };
   aws-sdk-eks = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -298,10 +386,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1h3bvqizz95lngmpsgysdpnn1fshrppfc6zq3qphv5hagpa1gj5n";
+      sha256 = "0nj666bl877n61h6s570ad9mcvjq4m2s6yink218zslfp10y03v4";
       type = "gem";
     };
-    version = "1.31.0";
+    version = "1.47.0";
   };
   aws-sdk-elasticache = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -309,10 +397,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0805g31chgr65bc74g8s33vk8id0gmyzvwpxjvf5drsrplbv1kca";
+      sha256 = "1kgpn2n1ap943q5nzxrl95v6g7fyff6bw5i4mhcw6g97gvv7p675";
       type = "gem";
     };
-    version = "1.29.0";
+    version = "1.53.0";
   };
   aws-sdk-elasticbeanstalk = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -320,10 +408,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nxrcfwngmbrvcbxh0cl6mqbvxda82k9kpjr1a0agypazapmy980";
+      sha256 = "1a9k9srp1q5qhlcwna7zyvviimri4gi9smlqshbvcfvy2lys5w2z";
       type = "gem";
     };
-    version = "1.26.0";
+    version = "1.41.0";
   };
   aws-sdk-elasticloadbalancing = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -331,10 +419,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13mc6mahnnrcgf2ah3p12sm538mfdygz6a6afgwijaar0za126l3";
+      sha256 = "1n6ssl3hqqm658k5ig667bgy457rs8gynl8vvin4xwknxws186di";
       type = "gem";
     };
-    version = "1.19.0";
+    version = "1.30.0";
   };
   aws-sdk-elasticloadbalancingv2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -342,10 +430,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17rvv3wlp7bm2f1cfkd8cvwz51kg6pzj8cw6jh4fvlnahx7cilr0";
+      sha256 = "0cqb2bncvqqqcqks7d6lrjb7pl06fcjizdfjpr44a7v6sjyx3bcr";
       type = "gem";
     };
-    version = "1.39.0";
+    version = "1.59.0";
   };
   aws-sdk-elasticsearchservice = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -353,10 +441,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lzm94grzggz6vrlzbk6226vlyfnxbq0rih71vdnj1h63f8gj73m";
+      sha256 = "1379lp7jqigp03zv25fgbx4bwacypjj38qbki648398r161f4bzy";
       type = "gem";
     };
-    version = "1.30.0";
+    version = "1.48.0";
   };
   aws-sdk-firehose = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -364,10 +452,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xpx6r6z2gfybfsndi7n6wr6zv6gqzfz9fm39wj8ljhsmbf2p2ch";
+      sha256 = "0ji75vqfprnkjsy6gdk9qci6wd9kwm7h7lycpx7jsw0fbv6hjx0p";
       type = "gem";
     };
-    version = "1.24.0";
+    version = "1.36.0";
+  };
+  aws-sdk-glue = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "026hka71fnzmqrn5yyb50pz1wa44irqncsk6kcgb476px4zxqwmd";
+      type = "gem";
+    };
+    version = "1.82.0";
+  };
+  aws-sdk-guardduty = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n963y20rafh51xanx0bff7jqbjcgg3wj5hs4js8h9sax48k97q9";
+      type = "gem";
+    };
+    version = "1.44.0";
   };
   aws-sdk-iam = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -375,10 +485,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s78ssjcp974v7r1znrgk78bqz23jhws4gy1nm659z5390zsn1fz";
+      sha256 = "16152qidkisakl2iqvghrjnccq279pahb953q5a4q0ipk5imw2c1";
       type = "gem";
     };
-    version = "1.33.0";
+    version = "1.47.0";
   };
   aws-sdk-kafka = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -386,10 +496,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k6pixxh9vfq2bhm89h1jpdzpikh600xmp1m1zqh9k8qa62g0glm";
+      sha256 = "182g1ya4bhxw90zb0jfqlb5s46r8k3mvl2dczir5jamjp2h1n24y";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.34.0";
   };
   aws-sdk-kinesis = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -397,10 +507,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mx60qi7sgr8a2k8h1c0ify2l3dvp509hflmbwq87jgq6npz89jr";
+      sha256 = "1wsnn4303q7501xp10gfr8s15cazm4a0xy8knz5b8pmaw93x0g4b";
       type = "gem";
     };
-    version = "1.20.0";
+    version = "1.31.0";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -408,10 +518,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "191qnrpg9qhwj24pisha28fwqx30sqkj75ibgpqcf4q389l3a2gw";
+      sha256 = "00wgf83cdy6z77b2y0ld0aqiidfyldi71hx0z8b73gxjdlbwpq1i";
       type = "gem";
     };
-    version = "1.29.0";
+    version = "1.42.0";
   };
   aws-sdk-lambda = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -419,10 +529,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16llkc8dl88m2f58kpn81lnw37zlh0ghlb1g5bzli5hm8ygn1z5s";
+      sha256 = "15fvdqp8k5w7wjgc7f5h9syd8v14h8pzklg5ldb49n5jsr0i3n73";
       type = "gem";
     };
-    version = "1.36.0";
+    version = "1.59.0";
   };
   aws-sdk-organizations = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -430,10 +540,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z71zxsvz1g3i6mnpvb05gzk2lay4dzrl45lby8n7acpp4wb2j1g";
+      sha256 = "00i8kbcx1vdch1g6pznvm0hg0hsz2kfd5vpdlfarbilv6zyh9mp7";
+      type = "gem";
+    };
+    version = "1.55.0";
+  };
+  aws-sdk-ram = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04n9x3nrxakx1zys0cc6vmkyqlqa83h6abdfyqaah1icxp585zjb";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.22.0";
   };
   aws-sdk-rds = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -441,10 +562,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09ld8vrhrhywc4imvbj238pic7qi2mg1n3421s0iwd1xhf5fvakp";
+      sha256 = "1jnmk7z4ys13vv2i1r6pvpiblgaqlpvjhcslcnqyqlmjh2ydwjxk";
       type = "gem";
     };
-    version = "1.78.0";
+    version = "1.112.0";
   };
   aws-sdk-redshift = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -452,10 +573,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w8y5vlzzws2fqpjjq59gmgrf1l5whm1zcm7fhlkikxspq9iw16b";
+      sha256 = "1f54ig5vyc2cvipsv5d62n5xd6a1i9myjgayf6x6slkvnzk5xk4g";
       type = "gem";
     };
-    version = "1.37.0";
+    version = "1.54.0";
   };
   aws-sdk-route53 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -463,10 +584,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "132c11g43zbmn2wzrnys7viymcdsznzl26igpv6ixv4jvi62r7fq";
+      sha256 = "1jxm6knx9rp5m3an93c187ds8zla4chl7zdvwnml2imna3adk4z7";
       type = "gem";
     };
-    version = "1.30.0";
+    version = "1.46.0";
   };
   aws-sdk-route53domains = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -474,10 +595,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01flbzipphp2qm4lcrxbmwqlgl7jy5w7gyj6hbgb8aich927w5qx";
+      sha256 = "0k3b37q9mhfnf4mzbhhhgx0v6y82ivq6v01g8fvdfb5n6235j0yg";
       type = "gem";
     };
-    version = "1.18.0";
+    version = "1.29.0";
   };
   aws-sdk-route53resolver = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -485,10 +606,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hlyd4h49sa3s61l1w362l2qmnm78kfj2ks6mshrjwr8l8zql1q5";
+      sha256 = "1qyb2n40v52n0xjqncaflb6cl1y0p7szlx1bzxpcnm4g5nfdcf3l";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.23.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -496,10 +617,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pblkq7rw465w08hs2xy6v7w10x9n004hk43yqzswqxirki68ldz";
+      sha256 = "029iqr52fxxz8d6jb2g4k76i7nnjyspvjdlx52xah25zzhp3bx7v";
+      type = "gem";
+    };
+    version = "1.88.0";
+  };
+  aws-sdk-secretsmanager = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pv5idvap742r4mfwgi01l0sd7skz3m9iy28piy236f6xjiiqsw3";
       type = "gem";
     };
-    version = "1.60.2";
+    version = "1.43.0";
   };
   aws-sdk-securityhub = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -507,10 +639,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a88i8bkqjy91ydj95h9v9mmlsqnx62hkinsprrx6ym0ix78kzim";
+      sha256 = "0j6wl0v5p19h3x1fphyq8db5appig7w3gsxnj6mmlm77smlkwjlq";
       type = "gem";
     };
-    version = "1.18.0";
+    version = "1.40.0";
+  };
+  aws-sdk-servicecatalog = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1awf0gcywzylqsdypx2lpib5jiy02fd4iz5q19q9qkpvxw7zj9cd";
+      type = "gem";
+    };
+    version = "1.57.0";
   };
   aws-sdk-ses = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -518,10 +661,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "046bsyj6zblcbffj15qbdz5fp8ipr6vfhrycsv6hznciy6jvpq4h";
+      sha256 = "1j45jykqll5s8y71bp4723mvcxbrihp4rhlhq1rvcyyr4y0706yy";
+      type = "gem";
+    };
+    version = "1.37.0";
+  };
+  aws-sdk-shield = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0416mrby897fnhc3iwb698m0gyih7pfgmx35h5f618i8my53alin";
       type = "gem";
     };
-    version = "1.27.0";
+    version = "1.34.0";
   };
   aws-sdk-sms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -529,10 +683,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x1x1hrs8v4vb5l79dp5qpdi0znb5cxviwk1zcx6zajpzabv7hdl";
+      sha256 = "0121bx79galz99x2wdksmzyibdy6l18k2i2nzc8lsmrgkdz22c03";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.28.0";
   };
   aws-sdk-sns = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -540,10 +694,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vfyn7hc21qgarhrfghyw3qi550656834b51n5vnginraryk6ji8";
+      sha256 = "0cqri14igfmcxlapbagg0nmy79zzg29awzybv51gl76m3mljbafb";
       type = "gem";
     };
-    version = "1.21.0";
+    version = "1.38.0";
   };
   aws-sdk-sqs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -551,10 +705,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c81w75ph7c3g8fkq8xxs1f5zkvv5yv0k3xy6441gjxvwkpiaih6";
+      sha256 = "07qg8awkqpdwf2r7y54183jfcffwjl1mdd98vmgsxv94617bnh4q";
       type = "gem";
     };
-    version = "1.23.1";
+    version = "1.36.0";
   };
   aws-sdk-ssm = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -562,10 +716,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "116vbhw7l2hk1vk3dq79czp857bcw7giw00ip4par1cgwkxym03c";
+      sha256 = "1svhxfjmvb6m8h7lm5cr7mmz6zngrhknrrkmwilnrq0lzg1wfp1r";
       type = "gem";
     };
-    version = "1.71.0";
+    version = "1.104.0";
+  };
+  aws-sdk-states = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04pdrsijckiz9fyzyvdndwci004a4fswv8mq5jm53bzmybwhndz2";
+      type = "gem";
+    };
+    version = "1.37.0";
+  };
+  aws-sdk-transfer = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ivbkfw7j83c7nagdhzdmcmwxn6ym50ak0jfkq1rdc1ppyir31dp";
+      type = "gem";
+    };
+    version = "1.29.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -573,10 +749,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dfc8i5cxjwlvi4b665lbpbwvks8a6wfy3vfmwr3pjdmxwdmc2cs";
+      sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.2";
   };
   azure_graph_rbac = {
     dependencies = ["ms_rest_azure"];
@@ -584,10 +760,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fq9gnsihrrljmlsg70kmryf72rxyy8kb4v9fa9z28abj0lncqgk";
+      sha256 = "0mmx8jp85xa13j3asa9xnfi6wa8a9wwlp0hz0nj70fi3ydmcpdag";
       type = "gem";
     };
-    version = "0.17.1";
+    version = "0.17.2";
   };
   azure_mgmt_key_vault = {
     dependencies = ["ms_rest_azure"];
@@ -595,10 +771,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18vcdhzndwa81lg877b1mg2804vhvvnw83qagx6v99adicjf8y8b";
+      sha256 = "0f4fai5l3453yirrwajds0jgah60gvawffx53a0jyv3b93ag88mz";
       type = "gem";
     };
-    version = "0.17.5";
+    version = "0.17.7";
   };
   azure_mgmt_resources = {
     dependencies = ["ms_rest_azure"];
@@ -606,10 +782,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "036p2d59jdjx5a49jz4swf37kfpc9ryyrb13xrdyghk1q79qli8p";
+      sha256 = "1hb9010cxrmm23v4dfrsf9wgvr53qkcd6397c4azg3wc65a6i1vc";
       type = "gem";
     };
-    version = "0.17.8";
+    version = "0.18.1";
   };
   azure_mgmt_security = {
     dependencies = ["ms_rest_azure"];
@@ -617,10 +793,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01rk0wbfbhrxnm0vv520ilxd55hv7n3w0sq5j0v17mnwjgm7pa6d";
+      sha256 = "11h2dyz4awzidvfj41h7k2q7mcqqcgzvm95fxpfxz609pbvck0g2";
       type = "gem";
     };
-    version = "0.18.0";
+    version = "0.19.0";
   };
   azure_mgmt_storage = {
     dependencies = ["ms_rest_azure"];
@@ -628,30 +804,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m1xajw39958kcv4qlhad2n19flijn9aqzxks2wx4b0k207vp87c";
+      sha256 = "0r8klsq3x7s4nn42h9w1kbqblrxnj7z7cpa8bxvc3xwv0vvql7m0";
       type = "gem";
     };
-    version = "0.19.2";
-  };
-  backports = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0sp3l5wa77klj34sqib95ppxyam53x3p57xk0y6gy2c3z29z6hs5";
-      type = "gem";
-    };
-    version = "3.16.1";
+    version = "0.22.0";
   };
   bcrypt_pbkdf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02vssr285m7kpsr47jdmzbar1h1d0mnkmyrpr1zg828isfmwii35";
+      sha256 = "0ndamfaivnkhc6hy0yqyk2gkwr6f3bz6216lh74hsiiyk3axz445";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   berkshelf = {
     dependencies = ["chef" "chef-config" "cleanroom" "concurrent-ruby" "minitar" "mixlib-archive" "mixlib-config" "mixlib-shellout" "octokit" "retryable" "solve" "thor"];
@@ -659,10 +825,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pb20i2blbj9w4cf9nxxxskbd7q5zk8rrirppsfjx8r02dywpq8f";
+      sha256 = "1mkakim23w7b38c8lw81wxqw68q6g7rlvxx82lq6bpp1hmmni64n";
       type = "gem";
     };
-    version = "7.0.9";
+    version = "7.1.0";
   };
   builder = {
     groups = ["default"];
@@ -680,21 +846,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lfx43yl77x074vjg77ixfxnxwl103ywjya55m4lj4vj0b2nxxxn";
+      sha256 = "068jzw97g40wbpzn51vcvwdp012202rkmjfafxwhx31wxjzhwy0n";
       type = "gem";
     };
-    version = "15.8.23";
+    version = "15.15.0";
   };
   chef-cli = {
-    dependencies = ["addressable" "chef" "cookbook-omnifetch" "diff-lcs" "ffi-yajl" "license-acceptance" "minitar" "mixlib-cli" "mixlib-shellout" "paint" "solve"];
+    dependencies = ["addressable" "chef" "cookbook-omnifetch" "diff-lcs" "ffi-yajl" "license-acceptance" "minitar" "mixlib-cli" "mixlib-shellout" "pastel" "solve"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05178w55vwqgrv8jaic2f77h6hx5b40lsmlaqfvdq63a459wl5sd";
+      sha256 = "1nw73p8wg67qkzx07v21fwiqljb0yndjm10z56li72d6b1hbw0sb";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "3.1.1";
   };
   chef-config = {
     dependencies = ["addressable" "chef-utils" "fuzzyurl" "mixlib-config" "mixlib-shellout" "tomlrb"];
@@ -702,10 +868,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xbl4pgn4kavi6b1m1f232xx4l9fhlz7d4ndmb11m36wb8l05hsk";
+      sha256 = "1ji166i5n7cxn69amsfxsvy3b7bf5ksgxxg985w5jfl1gp5bihfl";
       type = "gem";
     };
-    version = "15.8.23";
+    version = "15.15.0";
   };
   chef-dk = {
     dependencies = ["addressable" "chef" "cookbook-omnifetch" "diff-lcs" "ffi-yajl" "license-acceptance" "minitar" "mixlib-cli" "mixlib-shellout" "paint" "solve"];
@@ -713,10 +879,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zhfq3kwchay6aj6128pr13xabrfprs288ma9abnv9d6vz3ddpw6";
+      sha256 = "0zqznvry08pyiv8820b962fzvabzwbsmmwlyvk4ayjr2wshyi6g2";
       type = "gem";
     };
-    version = "4.7.73";
+    version = "4.13.3";
   };
   chef-provisioning = {
     dependencies = ["cheffish" "inifile" "mixlib-install" "net-scp" "net-ssh" "net-ssh-gateway" "winrm" "winrm-elevated" "winrm-fs"];
@@ -730,35 +896,35 @@
     version = "2.7.6";
   };
   chef-telemetry = {
-    dependencies = ["chef-config" "concurrent-ruby" "ffi-yajl" "http"];
+    dependencies = ["chef-config" "concurrent-ruby" "ffi-yajl"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lx85wy6d1khrya0idwqkdvh1x57qak3d8y699gwccfhl88xymg3";
+      sha256 = "0hnmqr6vkgsbnzdzcc6j6svnms14irrcd70wk8qg3p98cy359rm5";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.0.14";
   };
   chef-utils = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "149pgbybdpi9y11qfsm4bmnqm655s682yv7qkwxhzwqn2fylzb2j";
+      sha256 = "1j8rhqc6mj8iay755rl5yaf0rqs54gwcygib1s8g7dxl3vqcpwxa";
       type = "gem";
     };
-    version = "15.8.23";
+    version = "15.15.0";
   };
   chef-vault = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k0famr2cbrrarp4rpzcymqnpnwg734psbf0pxhasxdsjjg8nl6f";
+      sha256 = "1rpcgzawdgzvk60fw9s40i5alc7b1rc2phkgm89dckfmklfh6794";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.1.0";
   };
   chef-zero = {
     dependencies = ["ffi-yajl" "hashie" "mixlib-log" "rack" "uuidtools"];
@@ -788,10 +954,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ry6707plcrj7aicadmzxzfmlvz43i2g55k2iph8m390wpxhnhcl";
+      sha256 = "15sz88xxh48phq1w3rsivzasg4r36dhqnpqna5cfi120vk28ylb2";
       type = "gem";
     };
-    version = "9.1.0";
+    version = "9.2.1";
   };
   cleanroom = {
     groups = ["default"];
@@ -808,20 +974,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.3";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.8";
   };
   cookbook-omnifetch = {
     dependencies = ["mixlib-archive"];
@@ -829,41 +995,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w4xh4ffcm4jd3fys9yg3rb8asngll15mvra8lfi2328alvbanvb";
-      type = "gem";
-    };
-    version = "0.9.1";
-  };
-  cucumber-core = {
-    dependencies = ["backports" "cucumber-tag_expressions" "gherkin"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1iavlh8hqj9lwljbpkw06259gdicbr1bdb6pbj5yy3n8szgr8k3c";
-      type = "gem";
-    };
-    version = "3.2.1";
-  };
-  cucumber-tag_expressions = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0cvmbljybws0qzjs1l67fvr9gqr005l8jk1ni5gcsis9pfmqh3vc";
+      sha256 = "1qw8ayyflx222igmrmp1jpgfcfhpnc4myaxv9lk3ckd5l6n3w7qh";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "0.11.1";
   };
   declarative = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
+      sha256 = "1yczgnqrbls7shrg63y88g7wand2yp9h6sf56c9bdcksn5nds8c0";
       type = "gem";
     };
-    version = "0.0.10";
+    version = "0.0.20";
   };
   declarative-option = {
     groups = ["default"];
@@ -890,10 +1035,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qhx743lcx61r2d3925jk61c6r8clfjmpf5g93cdy5sq00ig76lh";
+      sha256 = "0nrg7kpgz6cn1gv2saj2fa5sfiykamvd7vn9lw2v625k7pjwf31l";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.0";
   };
   docker-api = {
     dependencies = ["excon" "multi_json"];
@@ -901,10 +1046,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04dkbg7x2m4102dnwil2v688gblxh1skh374nkzksn18jjrivkdp";
+      sha256 = "09lkc50nl3158za0fk8kpd05zlzfxiajnf6zrxpamw1nzdw89ac9";
       type = "gem";
     };
-    version = "1.34.2";
+    version = "2.0.0";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -927,25 +1072,15 @@
     };
     version = "1.2.4";
   };
-  equatable = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0fzx2ishipnp6c124ka6fiw5wk42s7c7gxid2c4c1mb55b30dglf";
-      type = "gem";
-    };
-    version = "0.6.1";
-  };
   erubi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+      sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.10.0";
   };
   erubis = {
     groups = ["default"];
@@ -962,21 +1097,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vhc5c16i8zrm3d98ppsnw514d7jvwdg0wk60kc9i1xw3797qkkd";
+      sha256 = "1759s0rz6qgsw86dds1z4jzb3fvizqsk11j5q6z7lc5n404w6i23";
       type = "gem";
     };
-    version = "0.72.0";
+    version = "0.79.0";
   };
   faraday = {
-    dependencies = ["multipart-post"];
+    dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13aghksmni2sl15y7wfpx6k5l3lfd8j9gdyqi6cbw6jgc7bqyyn2";
+      sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
       type = "gem";
     };
-    version = "0.17.3";
+    version = "1.3.0";
   };
   faraday-cookie_jar = {
     dependencies = ["faraday" "http-cookie"];
@@ -984,10 +1119,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1di4gx6446a6zdkrpj679m5k515i53wvb4yxcsqvy8d8zacxiiv6";
+      sha256 = "00hligx26w9wdnpgsrf0qdnqld4rdccy8ym6027h5m735mpvxjzk";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
       type = "gem";
     };
-    version = "0.0.6";
+    version = "1.0.1";
   };
   faraday_middleware = {
     dependencies = ["faraday"];
@@ -995,10 +1140,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
+      sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
       type = "gem";
     };
-    version = "0.12.2";
+    version = "1.0.0";
   };
   fauxhai-ng = {
     dependencies = ["net-ssh"];
@@ -1006,20 +1151,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vm9hz6k8v4i7r1s5z489n58liaaxmb8bgcvklfg1hf8k3d5afdp";
+      sha256 = "0pxzmsp31lxlkq1p0205j2s9kkjqs5a9zy2qpqabbmhny0d9ri8k";
       type = "gem";
     };
-    version = "7.6.0";
+    version = "8.7.0";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "15hgiy09i8ywjihyzyvjvk42ivi3kmy6dm21s5sgg9j7y3h3zkkx";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.14.2";
   };
   ffi-libarchive = {
     dependencies = ["ffi"];
@@ -1027,10 +1172,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vs8s37lr3bgw5d3mb6vamcqy16dj61yzzq0xf453lhr3dcampkb";
+      sha256 = "1wmbwg6hirxr85c3skdq2na8xwg4ky880qbs1z1adb9aizcjbdkx";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.17";
   };
   ffi-yajl = {
     dependencies = ["libyajl2"];
@@ -1038,21 +1183,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11m9pkx2a1vssplzb3fwx4kc25bg5xmjf0j97l5kv6mhnhd93sik";
+      sha256 = "1pfmn0gprc3c15baxa9rx64pqllk64m60f5vg4gp0icpafkp0jx5";
       type = "gem";
     };
-    version = "2.3.3";
+    version = "2.3.4";
   };
   foodcritic = {
-    dependencies = ["cucumber-core" "erubis" "ffi-yajl" "nokogiri" "rake" "rufus-lru" "treetop"];
+    dependencies = ["erubis" "ffi-yajl" "nokogiri" "rake" "rufus-lru" "treetop"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11dzfcf6p1z75anizwqm48nadd84j5wk0vm4mp4s5a7xfqjh3psi";
+      sha256 = "1gnp8lr37cv87adr3568kh7p55vwdqp01f2hwjxlvqkwkwk3fvn4";
       type = "gem";
     };
-    version = "16.2.0";
+    version = "16.3.0";
   };
   fuzzyurl = {
     groups = ["default"];
@@ -1064,37 +1209,27 @@
     };
     version = "0.9.0";
   };
-  gherkin = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1cgcdchwwdm10rsk44frjwqd4ihprhxjbm799nscqy2q1raqfj5s";
-      type = "gem";
-    };
-    version = "5.1.0";
-  };
   git = {
     dependencies = ["rchardet"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15sbv16dlap5d6naybl8cc99zffrpzygkhjz3m6l3r5y5yrhwwjc";
+      sha256 = "0vdcv93s33d9914a9nxrn2y2qv15xk7jx94007cmalp159l08cnl";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.8.1";
   };
   google-api-client = {
-    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "signet"];
+    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "signet"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xndfscxxaw73qah484vmhcd60hlbyrr9rlh7sf2n2sjfcqikjsf";
+      sha256 = "1q1lsyyyfvff7727sr01j8qx6b30qpx6h0bna5s0bfz853fhl33b";
       type = "gem";
     };
-    version = "0.34.1";
+    version = "0.52.0";
   };
   googleauth = {
     dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
@@ -1102,10 +1237,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dnkh017ln5g7x3y0w743g61bxb2cdcyr1vax9ic3gx7vkrfj3iw";
+      sha256 = "0cm60nbmwzf83fzy06f3iyn5a6sw91siw8x9bdvpwwmjsmivana6";
       type = "gem";
     };
-    version = "0.10.0";
+    version = "0.14.0";
   };
   gssapi = {
     dependencies = ["ffi"];
@@ -1113,10 +1248,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13l6pqbfrx3vv7cw26nq9p8rnyp9br31gaz85q32wx6hnzfcriwh";
+      sha256 = "1qdfhj12aq8v0y961v4xv96a1y2z80h3xhvzrs9vsfgf884g6765";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.1";
   };
   gyoku = {
     dependencies = ["builder"];
@@ -1149,27 +1284,6 @@
     };
     version = "1.7.10";
   };
-  htmlentities = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
-      type = "gem";
-    };
-    version = "4.3.4";
-  };
-  http = {
-    dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1kcd9qp8vm1rkyp7gfh8j0dbl3zpi97vz2vbhpbcsdsa7l21a59r";
-      type = "gem";
-    };
-    version = "2.2.2";
-  };
   http-cookie = {
     dependencies = ["domain_name"];
     groups = ["default"];
@@ -1181,26 +1295,6 @@
     };
     version = "1.0.3";
   };
-  http-form_data = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0j8dwwbfpf8kc0lcsqcgy29lflszd1x4d7kc0f7227892m7r6y0m";
-      type = "gem";
-    };
-    version = "1.0.3";
-  };
-  "http_parser.rb" = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
-      type = "gem";
-    };
-    version = "0.6.0";
-  };
   httpclient = {
     groups = ["default"];
     platforms = [];
@@ -1217,10 +1311,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jwrd1l4mxz06iyx6053lr6hz2zy7ah2k3ranfzisvych5q19kwm";
+      sha256 = "0k7q3pwm0l1qvx6sc3d4dxmdxqx2pc63lbfjwv0k0higq94rinvs";
       type = "gem";
     };
-    version = "1.8.2";
+    version = "1.8.8";
   };
   inifile = {
     groups = ["default"];
@@ -1237,10 +1331,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xbik6838gfh5yq9ahh1m7dzszxlk0g7x5lvhb8amk60mafkrgws";
+      sha256 = "1wb1qy4i2xrrd92dc34pi7q7ibrjpapzk9y465v0n9caiplnb89n";
       type = "gem";
     };
-    version = "1.4.4";
+    version = "1.5.0";
   };
   inspec = {
     dependencies = ["faraday_middleware" "inspec-core" "train" "train-aws" "train-habitat" "train-winrm"];
@@ -1248,21 +1342,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04cyv81rgspr9xachq2dk9xgb740jrq7vpy2r88lqdzlzbpz3f4n";
+      sha256 = "0jg818r56vzzh971ckzbknv8b70da73njr3x2y7xd6jwv5pjs93m";
       type = "gem";
     };
-    version = "4.18.85";
+    version = "4.26.4";
   };
   inspec-core = {
-    dependencies = ["addressable" "chef-telemetry" "faraday" "hashie" "htmlentities" "json-schema" "license-acceptance" "method_source" "mixlib-log" "multipart-post" "parallel" "parslet" "pry" "rspec" "rspec-its" "rubyzip" "semverse" "sslshake" "term-ansicolor" "thor" "tomlrb" "train-core" "tty-prompt" "tty-table"];
+    dependencies = ["addressable" "chef-telemetry" "faraday" "faraday_middleware" "hashie" "license-acceptance" "method_source" "mixlib-log" "multipart-post" "parallel" "parslet" "pry" "rspec" "rspec-its" "rubyzip" "semverse" "sslshake" "thor" "tomlrb" "train-core" "tty-prompt" "tty-table"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ha6dmi5lywv4gldpv2pyj0zwqv4wsf422jd4x8licmkpkcrwc2r";
+      sha256 = "0nrd4ny5cyah76pchr5xyi2m9rx0lkyk9vd2sp68rjp0x1x5y3p8";
       type = "gem";
     };
-    version = "4.18.85";
+    version = "4.26.4";
   };
   ipaddress = {
     groups = ["default"];
@@ -1274,16 +1368,6 @@
     };
     version = "0.8.3";
   };
-  jaro_winkler = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
-      type = "gem";
-    };
-    version = "1.5.4";
-  };
   jmespath = {
     groups = ["default"];
     platforms = [];
@@ -1299,31 +1383,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.0";
-  };
-  json-schema = {
-    dependencies = ["addressable"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5";
-      type = "gem";
-    };
-    version = "2.8.1";
+    version = "2.5.1";
   };
   jwt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01zg1vp3lyl3flyjdkrcc93ghf833qgfgh2p1biqfhkzz11r129c";
+      sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.2.2";
   };
   kitchen-inspec = {
     dependencies = ["hashie" "inspec" "test-kitchen"];
@@ -1331,10 +1404,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v85hnmhqdbl9zxphvbqfgma9rl095mq9jz223mkffdh9q5xv282";
+      sha256 = "1fx27vkc29kx59qmkrkl53sbyigny3rkqlfp836rwlxf1wfbbdlv";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "2.3.0";
   };
   kitchen-vagrant = {
     dependencies = ["test-kitchen"];
@@ -1342,10 +1415,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01wwryb4ha6gzhnmbg7xir32rpynbw4zc2l9dch02pwizw0n669x";
+      sha256 = "1pix3n9hbr9s736n4jh8dn71ccsm5xcqvx9clwilzhr3r89qfiwg";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "1.8.0";
   };
   knife-spork = {
     dependencies = ["app_conf" "chef" "diffy" "git"];
@@ -1353,10 +1426,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rcry9fbsi9kqfi8rrdda17yzmfyg21g9jv01sgzg1sj59kzb79s";
+      sha256 = "1ddgmv3j75m908ldykrgn9rdjdw09yakmxav7569f18lhxxfs9l0";
       type = "gem";
     };
-    version = "1.7.2";
+    version = "1.7.3";
   };
   libyajl2 = {
     groups = ["default"];
@@ -1374,10 +1447,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lxgpmzb9hafzx7f5fssb1mamcbzbdp87awvjr33fk6nsvyg3zaj";
+      sha256 = "03n3jpzivqxajvf3507c2z9vq2mrriqqc1yg3g0pgzacb3d38k2d";
       type = "gem";
     };
-    version = "1.0.13";
+    version = "1.0.19";
   };
   little-plugger = {
     groups = ["default"];
@@ -1395,10 +1468,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
+      sha256 = "0pkmhcxi8lp74bq5gz9lxrvaiv5w0745kk7s4bw2b1x07qqri0n9";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.3.0";
   };
   memoist = {
     groups = ["default"];
@@ -1415,10 +1488,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+      sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp";
       type = "gem";
     };
-    version = "0.9.2";
+    version = "1.0.0";
   };
   mini_mime = {
     groups = ["default"];
@@ -1435,10 +1508,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitar = {
     groups = ["default"];
@@ -1455,10 +1528,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "0ipjhdw8ds6q9h7bs3iw28bjrwkwp215hr4l3xf6215fsl80ky5j";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.3";
   };
   mixlib-archive = {
     dependencies = ["mixlib-log"];
@@ -1466,30 +1539,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01c7g55x126cj2493wx03n9b83i9m1rdfx2aivg1yg8d1lmj8jdg";
+      sha256 = "0dj52irvnp1riz52kg6fddmdvl9nxsrxk3vyidr7lfzhw5sj8vdk";
       type = "gem";
     };
-    version = "1.0.5";
+    version = "1.1.4";
   };
   mixlib-authentication = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d854b55d0hx0q12gwbycfdcpnxx88zz0jk557ngq2cqq94g96jy";
+      sha256 = "1wfyn645wnb79rl3ys83171ymv56k8zks9qvxh29vj8nicyrzr23";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.0.7";
   };
   mixlib-cli = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yrfgg18hlm0hkg81w5bw3fbk0m89lg96a0b65q9mrrscg37rvn2";
+      sha256 = "1ydxlfgd7nnj3rp1y70k4yk96xz5cywldjii2zbnw3sq9pippwp6";
       type = "gem";
     };
-    version = "2.1.5";
+    version = "2.1.8";
   };
   mixlib-config = {
     dependencies = ["tomlrb"];
@@ -1497,10 +1570,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14lb9dg4wg86qhbd0rykdjr00arkyvmrg20a5ylf0zd6wp7w01jk";
+      sha256 = "1askip583sfnz25gywd508l3vj5wnvx9vp7gm1sfnixm7amssrwq";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.0.9";
   };
   mixlib-install = {
     dependencies = ["mixlib-shellout" "mixlib-versioning" "thor"];
@@ -1508,30 +1581,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bsn4d0m3xw142v1vssyrxwa6y64fqd5hx2hsnm5vc1xj4xmcg0f";
+      sha256 = "0p11qf6b86dzl3q5gqi63myz484dicmn90d8v8jjb1dm51gqpajq";
       type = "gem";
     };
-    version = "3.11.26";
+    version = "3.12.5";
   };
   mixlib-log = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00kmwx7s3xpxmy44saxjk36gbhsywyxy4f8jf4gjvwwpr0ps8q0g";
+      sha256 = "0n5dm5iz90ijvjn59jfm8gb8hgsvbj0f1kpzbl38b02z0z4a4v7x";
       type = "gem";
     };
-    version = "3.0.8";
+    version = "3.0.9";
   };
   mixlib-shellout = {
+    dependencies = ["chef-utils"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c2nqa82xp0hg8sj69cypar8n7p3azl5pl2v2mjbkhgmmhqxa8km";
+      sha256 = "0y1z0phkdhpbsn8vz7a86nhkr7ra619j86z5p75amz61kfpw42z9";
       type = "gem";
     };
-    version = "3.0.9";
+    version = "3.2.2";
   };
   mixlib-versioning = {
     groups = ["default"];
@@ -1548,10 +1622,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hh40z1adl4lw16dj4hxgabx4rr28mgqycih1y1d91bwww0jjdg6";
+      sha256 = "17kvf6fijn6k886dhj89h0x39qh90c47asa2k16s913fcgn3a1n3";
       type = "gem";
     };
-    version = "0.6.6";
+    version = "0.7.0";
   };
   ms_rest = {
     dependencies = ["concurrent-ruby" "faraday" "timeliness"];
@@ -1559,31 +1633,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mgfspn3g75mhmfprpr2pnkmav34gix8cfga43g7162d0i1pd9l";
+      sha256 = "1jiha1bda5knpjqjymwik6i41n69gb0phcrgvmgc5icl4mcisai7";
       type = "gem";
     };
-    version = "0.7.5";
+    version = "0.7.6";
   };
   ms_rest_azure = {
-    dependencies = ["concurrent-ruby" "faraday" "faraday-cookie_jar" "ms_rest" "unf_ext"];
+    dependencies = ["concurrent-ruby" "faraday" "faraday-cookie_jar" "ms_rest"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "135va1hzxwn0apb2lf7b9yi8d1czid250cgf91dm331rqz84jnvz";
+      sha256 = "06i37b84r2q206kfm5vsi9s1qiiy09091vhvc5pzb7320h0hc1ih";
       type = "gem";
     };
-    version = "0.11.1";
+    version = "0.12.0";
   };
   multi_json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.15.0";
   };
   multipart-post = {
     groups = ["default"];
@@ -1595,16 +1669,6 @@
     };
     version = "2.1.1";
   };
-  necromancer = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1w2y31947axs62bsf0xrpgalsw4ip1m44vpw7p8f4s9zvnayj2vd";
-      type = "gem";
-    };
-    version = "0.5.1";
-  };
   net-scp = {
     dependencies = ["net-ssh"];
     groups = ["default"];
@@ -1660,15 +1724,15 @@
     version = "1.2.1";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yi8j8hwrlc3rg5v3w52gxndmwifyk7m732q9yfbal0qajqbh1h8";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.8";
+    version = "1.11.1";
   };
   nori = {
     groups = ["default"];
@@ -1686,10 +1750,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06kx258qa5k24q5pv8i4daaw3g57gif6p5k5h3gndj3q2jk6vhkn";
+      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
       type = "gem";
     };
-    version = "4.16.0";
+    version = "4.20.0";
   };
   ohai = {
     dependencies = ["chef-config" "ffi" "ffi-yajl" "ipaddress" "mixlib-cli" "mixlib-config" "mixlib-log" "mixlib-shellout" "plist" "systemu" "wmi-lite"];
@@ -1697,20 +1761,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6c22nqg905sivr099qrwbvnwwyvm37xzxxrysvkalxglkvxr23";
+      sha256 = "0qw3mz8f9hpzfchwqa1nix7fcvy34k5n7lln91b8gsbx2l6aycs6";
       type = "gem";
     };
-    version = "15.7.4";
+    version = "15.12.0";
   };
   os = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06r55k01g32lvz4wf2s6hpjlxbbag113jsvff3w64jllfr315a73";
+      sha256 = "12fli64wz5j9868gpzv5wqsingk1jk457qyqksv9ksmq9b0zpc9x";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.1";
   };
   paint = {
     groups = ["default"];
@@ -1727,10 +1791,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2";
+      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
       type = "gem";
     };
-    version = "1.19.1";
+    version = "1.20.1";
   };
   parser = {
     dependencies = ["ast"];
@@ -1738,10 +1802,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "145lv6rbbnbddbk79l10kadycjq05vyrzq5d733zswmypshpq6ni";
+      sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
       type = "gem";
     };
-    version = "2.7.0.2";
+    version = "3.0.0.0";
   };
   parslet = {
     groups = ["default"];
@@ -1754,25 +1818,25 @@
     version = "1.8.2";
   };
   pastel = {
-    dependencies = ["equatable" "tty-color"];
+    dependencies = ["tty-color"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m43wk7gswwkl6lfxwlliqc9v1qp8arfygihyz91jc9icf270xzm";
+      sha256 = "0xash2gj08dfjvq4hy6l1z22s5v30fhizwgs10d6nviggpxsj7a8";
       type = "gem";
     };
-    version = "0.7.3";
+    version = "0.8.0";
   };
   plist = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ra0910xxbhfsmdi0ig36pr3q0khdqzwb5da3wg7y3n8d1sh9ffp";
+      sha256 = "1whhr897z6z6av85x2cipyjk46bwh6s4wx6nbrcd3iifnzvbqs7l";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.6.0";
   };
   polyglot = {
     groups = ["default"];
@@ -1800,10 +1864,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
+      sha256 = "1shq3vfdg7c9l1wppl8slridl95wmwvnngqhga6j2571nnv50piv";
       type = "gem";
     };
-    version = "0.12.2";
+    version = "0.14.0";
   };
   public_suffix = {
     groups = ["default"];
@@ -1815,15 +1879,25 @@
     };
     version = "3.1.1";
   };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rack = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp";
+      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.2.3";
   };
   rainbow = {
     groups = ["default"];
@@ -1840,10 +1914,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
       type = "gem";
     };
-    version = "13.0.1";
+    version = "13.0.3";
   };
   rchardet = {
     groups = ["default"];
@@ -1855,6 +1929,16 @@
     };
     version = "1.8.0";
   };
+  regexp_parser = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zm86k9q8m5jkcnpb1f93wsvc57saldfj8czxkx1aw031i95inip";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
   representable = {
     dependencies = ["declarative" "declarative-option" "uber"];
     groups = ["default"];
@@ -1902,10 +1986,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
+      sha256 = "1dwai7jnwmdmd7ajbi2q0k0lx1dh88knv5wl7c34wjmf94yv8w5q";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "3.10.0";
   };
   rspec-core = {
     dependencies = ["rspec-support"];
@@ -1913,10 +1997,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzc1wdjb1qnbimjl8i1q1r1z5hdv2lmcw7ysz7jawj4d1cvpqvd";
+      sha256 = "0wwnfhxxvrlxlk1a3yxlb82k2f9lm0yn0598x7lk8fksaz4vv6mc";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.1";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -1924,10 +2008,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gjqfb39da6gywdcp4h77738r7khbrn2v4y45589z25bj4z9paf0";
+      sha256 = "1sz9bj4ri28adsklnh257pnbq4r5ayziw02qf67wry0kvzazbb17";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "3.10.1";
   };
   rspec-its = {
     dependencies = ["rspec-core" "rspec-expectations"];
@@ -1946,61 +2030,82 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+      sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.2";
   };
   rspec-support = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zwpyq1na23pvgacpxs2v9nwfbjbw6x3arca5j3l1xagigqmzhc3";
+      sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl";
       type = "gem";
     };
-    version = "3.9.2";
+    version = "3.10.2";
   };
   rubocop = {
-    dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "rexml" "ruby-progressbar" "unicode-display_width"];
+    dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06npybjypxsrz09z8ivxqfcwzpbgif6z3hwpp0ls8znqlgp3m922";
+      type = "gem";
+    };
+    version = "1.9.1";
+  };
+  rubocop-ast = {
+    dependencies = ["parser"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0adfpv76whv5dy5wr5brqkki39jfv6r08482saj64h9j4wzwcznb";
+      sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
       type = "gem";
     };
-    version = "0.80.0";
+    version = "1.4.1";
   };
   ruby-progressbar = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
       type = "gem";
     };
-    version = "1.10.1";
+    version = "1.11.0";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
+      type = "gem";
+    };
+    version = "0.0.4";
   };
   rubyntlm = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+      sha256 = "0b8hczk8hysv53ncsqzx4q6kma5gy5lqc7s5yx8h64x3vdb18cjv";
       type = "gem";
     };
-    version = "0.6.2";
+    version = "0.6.3";
   };
   rubyzip = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qxc2zxwwipm6kviiar4gfhcakpx1jdcs89v6lvzivn5hq1xk78l";
+      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "2.3.0";
   };
   rufus-lru = {
     groups = ["default"];
@@ -2039,10 +2144,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m8brljfgrxpr5j7kggv3dphqj9in3rkbf5dryx8f7nprkk85wdd";
+      sha256 = "1zmrsnrrj5j3bp9fmaa74cvlkpdwspv8gv5vpz1lclhirkiqz1xv";
       type = "gem";
     };
-    version = "0.12.0";
+    version = "0.14.1";
   };
   solve = {
     dependencies = ["molinillo" "semverse"];
@@ -2050,20 +2155,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zymaik4cxd4kmd8f4n1ij8ykrfinhnlvlhjnsdv2cv1xnqnjqmk";
+      sha256 = "059lrsf40rl5kclp1w8pb0fzz5sv8aikg073cwcvn5mndk14ayky";
       type = "gem";
     };
-    version = "4.0.3";
+    version = "4.0.4";
   };
   sslshake = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dy7pnvn0zb3qbfahgksfxqw1hxhk2i2wlw34bvr2iyzqlw04a3s";
+      sha256 = "0r3ifksx8a05yqhv7nc4cwan8bwmxgq5kyv7q7hy2h9lv5zcjs8h";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.1";
   };
   strings = {
     dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
@@ -2071,10 +2176,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "111876lcqrykh30w7zzkrl06d6rj9lq24y625m28674vgfxkkcz0";
+      sha256 = "0xgw0zmwansvmk8dnxgd83pvrj4f5y8j72bpzp409hwd6xy1hy7m";
       type = "gem";
     };
-    version = "0.1.8";
+    version = "0.2.0";
   };
   strings-ansi = {
     groups = ["default"];
@@ -2086,16 +2191,6 @@
     };
     version = "0.2.0";
   };
-  sync = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1z9qlq4icyiv3hz1znvsq1wz2ccqjb1zwd6gkvnwg6n50z65d0v6";
-      type = "gem";
-    };
-    version = "0.5.0";
-  };
   syslog-logger = {
     groups = ["default"];
     platforms = [];
@@ -2116,37 +2211,26 @@
     };
     version = "2.6.5";
   };
-  term-ansicolor = {
-    dependencies = ["tins"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj";
-      type = "gem";
-    };
-    version = "1.7.1";
-  };
   test-kitchen = {
     dependencies = ["bcrypt_pbkdf" "ed25519" "license-acceptance" "mixlib-install" "mixlib-shellout" "net-scp" "net-ssh" "net-ssh-gateway" "thor" "winrm" "winrm-elevated" "winrm-fs"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14wvv8vgm3lqqk9ifywjhhxlvnbx5gpl4f8zbw5gj41sq8hdqgqj";
+      sha256 = "1s5sj6x2dscd3wci7ns1m3jwfp1b7h8535q44ggdsz60gp63p974";
       type = "gem";
     };
-    version = "2.3.4";
+    version = "2.10.0";
   };
   thor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "0.20.3";
+    version = "1.1.0";
   };
   thread_safe = {
     groups = ["default"];
@@ -2168,80 +2252,69 @@
     };
     version = "0.3.10";
   };
-  tins = {
-    dependencies = ["sync"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0nghqcdg7ak91n2h6igx8i2ykbhna93xpg33w6232451vphlwdm0";
-      type = "gem";
-    };
-    version = "1.24.1";
-  };
   tomlrb = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0njkyq5csj4km8spmw33b5902v254wvyvqq1b0f0kky5hs7bvrgg";
+      sha256 = "00x5y9h4fbvrv4xrjk4cqlkm4vq8gv73ax4alj3ac2x77zsnnrk8";
       type = "gem";
     };
-    version = "1.2.9";
+    version = "1.3.0";
   };
   train = {
-    dependencies = ["activesupport" "azure_graph_rbac" "azure_mgmt_key_vault" "azure_mgmt_resources" "azure_mgmt_security" "azure_mgmt_storage" "docker-api" "google-api-client" "googleauth" "train-core" "train-winrm"];
+    dependencies = ["activesupport" "azure_graph_rbac" "azure_mgmt_key_vault" "azure_mgmt_resources" "azure_mgmt_security" "azure_mgmt_storage" "docker-api" "google-api-client" "googleauth" "inifile" "train-core" "train-winrm"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y7aggjyarc531a0vmh86vdqr6ws3y3h64jnkh8cavpqns4jhmjg";
+      sha256 = "09nflqvdgzxfncr8qki0jhnarfg36mii0h6hi2cd71q49613m6gk";
       type = "gem";
     };
-    version = "3.2.22";
+    version = "3.4.9";
   };
   train-aws = {
-    dependencies = ["aws-sdk-apigateway" "aws-sdk-apigatewayv2" "aws-sdk-athena" "aws-sdk-autoscaling" "aws-sdk-budgets" "aws-sdk-cloudformation" "aws-sdk-cloudhsm" "aws-sdk-cloudhsmv2" "aws-sdk-cloudtrail" "aws-sdk-cloudwatch" "aws-sdk-cloudwatchlogs" "aws-sdk-codecommit" "aws-sdk-codedeploy" "aws-sdk-codepipeline" "aws-sdk-configservice" "aws-sdk-core" "aws-sdk-costandusagereportservice" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-ecr" "aws-sdk-ecs" "aws-sdk-eks" "aws-sdk-elasticache" "aws-sdk-elasticbeanstalk" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-elasticsearchservice" "aws-sdk-firehose" "aws-sdk-iam" "aws-sdk-kafka" "aws-sdk-kinesis" "aws-sdk-kms" "aws-sdk-lambda" "aws-sdk-organizations" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-route53domains" "aws-sdk-route53resolver" "aws-sdk-s3" "aws-sdk-securityhub" "aws-sdk-ses" "aws-sdk-sms" "aws-sdk-sns" "aws-sdk-sqs" "aws-sdk-ssm"];
+    dependencies = ["aws-sdk-apigateway" "aws-sdk-apigatewayv2" "aws-sdk-applicationautoscaling" "aws-sdk-athena" "aws-sdk-autoscaling" "aws-sdk-batch" "aws-sdk-budgets" "aws-sdk-cloudformation" "aws-sdk-cloudfront" "aws-sdk-cloudhsm" "aws-sdk-cloudhsmv2" "aws-sdk-cloudtrail" "aws-sdk-cloudwatch" "aws-sdk-cloudwatchevents" "aws-sdk-cloudwatchlogs" "aws-sdk-codecommit" "aws-sdk-codedeploy" "aws-sdk-codepipeline" "aws-sdk-cognitoidentity" "aws-sdk-cognitoidentityprovider" "aws-sdk-configservice" "aws-sdk-core" "aws-sdk-costandusagereportservice" "aws-sdk-databasemigrationservice" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-ecr" "aws-sdk-ecs" "aws-sdk-efs" "aws-sdk-eks" "aws-sdk-elasticache" "aws-sdk-elasticbeanstalk" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-elasticsearchservice" "aws-sdk-firehose" "aws-sdk-glue" "aws-sdk-guardduty" "aws-sdk-iam" "aws-sdk-kafka" "aws-sdk-kinesis" "aws-sdk-kms" "aws-sdk-lambda" "aws-sdk-organizations" "aws-sdk-ram" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-route53domains" "aws-sdk-route53resolver" "aws-sdk-s3" "aws-sdk-secretsmanager" "aws-sdk-securityhub" "aws-sdk-servicecatalog" "aws-sdk-ses" "aws-sdk-shield" "aws-sdk-sms" "aws-sdk-sns" "aws-sdk-sqs" "aws-sdk-ssm" "aws-sdk-states" "aws-sdk-transfer"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dvwzk9h5kzbb9v6qm387mfysjz4nfcr56685ccl5c1jj5a59553";
+      sha256 = "014cbgkzkw1rf7652h1xqshb9crr6pn2yhlv1z41ndxlkmmdx4fg";
       type = "gem";
     };
-    version = "0.1.15";
+    version = "0.1.35";
   };
   train-core = {
-    dependencies = ["addressable" "inifile" "json" "mixlib-shellout" "net-scp" "net-ssh"];
+    dependencies = ["addressable" "ffi" "json" "mixlib-shellout" "net-scp" "net-ssh"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dfqyfi4q2vykbiw4b373n7n2aqzhq9gkn8sr3sx2w7hpd7lkd3x";
+      sha256 = "1pbfbmi9l5hxr1zly1bc72fk8a6by4d19wdap8q3mi3rlflqzbfp";
       type = "gem";
     };
-    version = "3.2.22";
+    version = "3.4.9";
   };
   train-habitat = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w642zkvgq0d1dy622lk50ngr0872v6ghd4r1g692qv8g4k6d90n";
+      sha256 = "0qdi2q5djzfl6x3fv2vrvybjdvrnx53nfh4vzrcl2h7nrf801n6v";
       type = "gem";
     };
-    version = "0.2.13";
+    version = "0.2.22";
   };
   train-winrm = {
-    dependencies = ["winrm" "winrm-fs"];
+    dependencies = ["winrm" "winrm-elevated" "winrm-fs"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x4sv6hblq9y259aka6j868di2w669f6aj2m7ssi5jxhanaf5mqk";
+      sha256 = "0nin3qfkh173yjcihxaz0sbnskds9n1n0ciphc7y70647vpsqgrh";
       type = "gem";
     };
-    version = "0.2.6";
+    version = "0.2.12";
   };
   treetop = {
     dependencies = ["polyglot"];
@@ -2249,10 +2322,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g31pijhnv7z960sd09lckmw9h8rs3wmc8g4ihmppszxqm99zpv7";
+      sha256 = "0697qz1akblf8r3wi0s2dsjh468hfsd57fb0mrp93z35y2ni6bhh";
       type = "gem";
     };
-    version = "1.6.10";
+    version = "1.6.11";
   };
   tty-box = {
     dependencies = ["pastel" "strings" "tty-cursor"];
@@ -2260,20 +2333,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14g63v0jx87hba50rlv3c521zg9rw0f5d31cihcvym19xxa7v3l5";
+      sha256 = "12yzhl3s165fl8pkfln6mi6mfy3vg7p63r3dvcgqfhyzq6h57x0p";
       type = "gem";
     };
-    version = "0.5.0";
+    version = "0.7.0";
   };
   tty-color = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0czbnp19cfnf5zwdd22payhqjv57mgi3gj5n726s20vyq3br6bsp";
+      sha256 = "0aik4kmhwwrmkysha7qibi2nyzb4c8kp42bd5vxnf8sf7b53g73g";
       type = "gem";
     };
-    version = "0.5.1";
+    version = "0.6.0";
   };
   tty-cursor = {
     groups = ["default"];
@@ -2286,15 +2359,15 @@
     version = "0.7.1";
   };
   tty-prompt = {
-    dependencies = ["necromancer" "pastel" "tty-reader"];
+    dependencies = ["pastel" "tty-reader"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19kbxny8cfsy1r02awih1gf76mi3a7zqg3ymxpmf9720khlmziax";
+      sha256 = "0rhvwpl5wk51njrh3avm09c8pwl2z5iwc0l67h40gq3r7ix2fjk2";
       type = "gem";
     };
-    version = "0.20.0";
+    version = "0.23.0";
   };
   tty-reader = {
     dependencies = ["tty-cursor" "tty-screen" "wisper"];
@@ -2302,31 +2375,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1977ajs9sxwhd88qqmf6l1hw63dqxlvg9mx626rymsc5ap2xa1r4";
+      sha256 = "1cf2k7w7d84hshg4kzrjvk9pkyc2g1m3nx2n1rpmdcf0hp4p4af6";
       type = "gem";
     };
-    version = "0.7.0";
+    version = "0.9.0";
   };
   tty-screen = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jwgr2i3wilng3mx851xczmkzllbirmsmr42ik4amqyyvry1yzyf";
+      sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.8.1";
   };
   tty-table = {
-    dependencies = ["equatable" "necromancer" "pastel" "strings" "tty-screen"];
+    dependencies = ["pastel" "strings" "tty-screen"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y07yikpk65jqmxinw8l4c45pbw1b2h4fv9fikb43a7sdlr6sn69";
+      sha256 = "0fcrbfb0hjd9vkkazkksri93dv9wgs2hp6p1xwb1lp43a13pmhpx";
       type = "gem";
     };
-    version = "0.11.0";
+    version = "0.12.0";
   };
   tzinfo = {
     dependencies = ["thread_safe"];
@@ -2334,10 +2407,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04f18jdv6z3zn3va50rqq35nj3izjpb72fnf21ixm7vanq6nc4fp";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.6";
+    version = "1.2.9";
   };
   uber = {
     groups = ["default"];
@@ -2365,20 +2438,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04d13bp6lyg695x94whjwsmzc2ms72d94vx861nx1y40k3817yp8";
+      sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
       type = "gem";
     };
-    version = "0.0.7.2";
+    version = "0.0.7.7";
   };
   unicode-display_width = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x";
+      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "1.7.0";
   };
   unicode_utils = {
     groups = ["default"];
@@ -2406,10 +2479,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13c0vf32vinkp3ia86rvq779dacl37v4v2814v4g9qrk3liv0dym";
+      sha256 = "0nxf6a47d1xf1nvi7rbfbzjyyjhz0iakrnrsr2hj6y24a381sd8i";
       type = "gem";
     };
-    version = "2.3.4";
+    version = "2.3.6";
   };
   winrm-elevated = {
     dependencies = ["erubi" "winrm" "winrm-fs"];
@@ -2417,10 +2490,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yawwrs3pnvbbm9xn0nbzvyl92kgf1jr439qfbqx0mb8zzkyi2dv";
+      sha256 = "1lmlaii8qapn84wxdg5d82gbailracgk67d0qsnbdnffcg8kswzd";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "1.2.3";
   };
   winrm-fs = {
     dependencies = ["erubi" "logging" "rubyzip" "winrm"];
@@ -2428,10 +2501,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0phhzliw47hmpi3ddygs500kfxa7il5yzmp7dw4ix2dvhrxrj7s6";
+      sha256 = "0gb91k6s1yjqw387x4w1nkpnxblq3pjdqckayl0qvz5n3ygdsb0d";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.3.5";
   };
   wisper = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/development/tools/clj-kondo/default.nix b/nixpkgs/pkgs/development/tools/clj-kondo/default.nix
index 0cc386b657c7..5539489afb02 100644
--- a/nixpkgs/pkgs/development/tools/clj-kondo/default.nix
+++ b/nixpkgs/pkgs/development/tools/clj-kondo/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "clj-kondo";
-  version = "2020.12.12";
+  version = "2021.02.13";
 
   reflectionJson = fetchurl {
     name = "reflection.json";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "27b8a82fb613803ab9c712866b7cc89c40fcafc4ac3af178c11b4ed7549934dc";
+    sha256 = "sha256-Rq7W5sP9nRB0TGRUSQIyC3U568uExmcM/gd+1HjAqac=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix b/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
index e729b8c448a9..0be4faf0ed8d 100644
--- a/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
+++ b/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.1.25";
+  version = "0.1.27";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-tbwmHsiR/RJl3CJrzJtI6GA3v9mNAirbEHXX+wDMd2k=";
+    sha256 = "1708g8msv5cw0b4gljyjqns328wbci3p3avwysms4aknm4vky0g0";
   };
 
-  vendorSha256 = "sha256-vOaklBsMuKTQ3cJgXDClM1RWh+ovemO1uDWXeK1ygU4=";
+  vendorSha256 = "0m7k6k790i06i8a5r8y7787mmikfibbvl7s8xqxygq1f5cpdspd6";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
 
diff --git a/nixpkgs/pkgs/development/tools/clpm/default.nix b/nixpkgs/pkgs/development/tools/clpm/default.nix
index 03174d6c4fcb..0dfa99367ac6 100644
--- a/nixpkgs/pkgs/development/tools/clpm/default.nix
+++ b/nixpkgs/pkgs/development/tools/clpm/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchgit
 , wrapLisp
 , sbcl
@@ -7,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clpm";
-  version = "0.3.5";
+  version = "0.3.6";
 
   src = fetchgit {
     url = "https://gitlab.common-lisp.net/clpm/clpm";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "0jivnnp3z148yf4c2nzzr5whz76w5kjhsb97z2vs5maiwf79y2if";
+    sha256 = "04w46yhv31p4cfb84b6qvyfw7x5nx6lzyd4yzhd9x6qvb7p5kmfh";
   };
 
   buildInputs = [
@@ -22,13 +23,21 @@ stdenv.mkDerivation rec {
   ];
 
   buildPhase = ''
+    runHook preBuild
+
     ln -s ${openssl.out}/lib/libcrypto.so.* .
     ln -s ${openssl.out}/lib/libssl.so.* .
     common-lisp.sh --script scripts/build.lisp
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     INSTALL_ROOT=$out sh install.sh
+
+    runHook postInstall
   '';
 
   # fixupPhase results in fatal error in SBCL, `Can't find sbcl.core`
diff --git a/nixpkgs/pkgs/development/tools/cmake-format/default.nix b/nixpkgs/pkgs/development/tools/cmake-format/default.nix
index 0d9edebe19b5..85efc5f19ccf 100644
--- a/nixpkgs/pkgs/development/tools/cmake-format/default.nix
+++ b/nixpkgs/pkgs/development/tools/cmake-format/default.nix
@@ -6,6 +6,7 @@
 , jinja2
 , pylint
 , pyyaml
+, six
 }:
 
 buildPythonApplication rec {
@@ -21,7 +22,7 @@ buildPythonApplication rec {
     sha256 = "0kmggnfbv6bba75l3zfzqwk0swi90brjka307m2kcz2w35kr8jvn";
   };
 
-  propagatedBuildInputs = [ autopep8 flake8 jinja2 pylint pyyaml ];
+  propagatedBuildInputs = [ autopep8 flake8 jinja2 pylint pyyaml six ];
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
index 5ba6718a6bd2..4a402111b086 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
@@ -2,16 +2,16 @@
   makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep }:
 buildGoModule rec {
   name = "buildkite-agent-${version}";
-  version = "3.27.0";
+  version = "3.28.1";
 
   src = fetchFromGitHub {
     owner = "buildkite";
     repo = "agent";
     rev = "v${version}";
-    sha256 = "sha256-JfOCht+awc0I22vtRD5hgowgdVkcJR3qSxnxLoc3XZY=";
+    sha256 = "sha256-5YOXYOAh/0fOagcqdK2IEwm5XDCxyfTeTzwBGtsQRCs=";
   };
 
-  vendorSha256 = "sha256-4zKe8y+9fedvCt/XmPf0HxtyqLz+FP4Ylt6k9KBjaIw=";
+  vendorSha256 = "sha256-3UXZxeiL0WO4X/3/hW8ubL1TormGbn9X/k0PX+/cLuM=";
 
   postPatch = ''
     substituteInPlace bootstrap/shell/shell.go --replace /bin/bash ${bash}/bin/bash
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/generic.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/generic.nix
index 64ca730d7dc0..3b9de427bde0 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/generic.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/generic.nix
@@ -1,4 +1,4 @@
-{ buildGoPackage, makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep
+{ lib, buildGoPackage, makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep
 , src, version, hasBootstrapScript, postPatch ? ""
 , ... }:
 let
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
index aee2a4e23416..73aefdd0cda7 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "buildkite-cli";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "buildkite";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "05hz59qzadkk4ji5icv5sxih31pnn0abnmiwcyfa2mr3l5jaqjnd";
+    sha256 = "sha256-AIa+hEYtPJ4CFvAFSpNJFxY+B3+DJH1Q0hL/3BD/yN0=";
   };
 
-  vendorSha256 = "0jxh3yhh0sdvaykhinxngpipk369hw8z1y3g2z4c1115m5rjp2bb";
+  vendorSha256 = "sha256-4AH9PZWSrBXi9w4Mr7dpXqDkQZGzuELG876YCaFTj2Q=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/drone-runner-docker/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/drone-runner-docker/default.nix
new file mode 100644
index 000000000000..a2e7b739718b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/drone-runner-docker/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "drone-runner-docker";
+  version = "1.6.3";
+
+  src = fetchFromGitHub {
+    owner = "drone-runners";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-WI3pr0t6EevIBOQwCAI+CY2O8Q7+W/CLDT/5Y0+tduQ=";
+  };
+
+  vendorSha256 = "15lpdliqz129yq5zgzjvndwdxngxa96g0ska4zkny7ycb3vwq0xm";
+
+  meta = with lib; {
+    maintainers = with maintainers; [ endocrimes ];
+    license = licenses.unfreeRedistributable;
+    homepage = "https://github.com/drone-runners/drone-runner-docker";
+    description = "Drone pipeline runner that executes builds inside Docker containers";
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/drone-runner-exec/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/drone-runner-exec/default.nix
new file mode 100644
index 000000000000..373c6183725d
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/drone-runner-exec/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "drone-runner-exec";
+  version = "unstable-2020-04-19";
+
+  src = fetchFromGitHub {
+    owner = "drone-runners";
+    repo = "drone-runner-exec";
+    rev = "c0a612ef2bdfdc6d261dfbbbb005c887a0c3668d";
+    sha256 = "sha256-0UIJwpC5Y2TQqyZf6C6neICYBZdLQBWAZ8/K1l6KVRs=";
+  };
+
+  vendorSha256 = "sha256-ypYuQKxRhRQGX1HtaWt6F6BD9vBpD8AJwx/4esLrJsw=";
+
+  meta = with lib; {
+    description = "Drone pipeline runner that executes builds directly on the host machine";
+    homepage = "https://github.com/drone-runners/drone-runner-exec";
+    # https://polyformproject.org/licenses/small-business/1.0.0/
+    license = licenses.unfree;
+    maintainers = with maintainers; [ mic92 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
index c6d609e38cf1..a2bc47b6408b 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
@@ -1,7 +1,8 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib, fetchFromGitHub, buildGoModule
+, enableUnfree ? true }:
 
 buildGoModule rec {
-  name = "drone.io-${version}";
+  pname = "drone.io${lib.optionalString (!enableUnfree) "-oss"}";
   version = "1.10.0";
 
   vendorSha256 = "sha256-cKHX/GnvGELQBfoo0/1UmDQ4Z66GGnnHG7+1CzjinL0=";
@@ -15,9 +16,13 @@ buildGoModule rec {
     sha256 = "sha256-12Jac+mXWdUX8gWvmpdO9ROv7Bi0YzvyqnNDVNJOr34=";
   };
 
+  preBuild = ''
+    buildFlagsArray+=( "-tags" "${lib.optionalString (!enableUnfree) "oss nolimit"}" )
+  '';
+
   meta = with lib; {
     maintainers = with maintainers; [ elohmeier vdemeester ];
-    license = licenses.asl20;
+    license = with licenses; if enableUnfree then unfreeRedistributable else asl20;
     description = "Continuous Integration platform built on container technology";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
index da9261741515..895d12ecb4d7 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -1,17 +1,17 @@
-{ buildGoModule, fetchFromGitHub, stdenv, lib, writeText }:
+{ buildGoModule, fetchFromGitHub, stdenv, lib }:
 
 buildGoModule rec {
   pname = "fly";
-  version = "6.7.5";
+  version = "7.1.0";
 
   src = fetchFromGitHub {
     owner = "concourse";
     repo = "concourse";
     rev = "v${version}";
-    sha256 = "sha256-pL8h/hsaiVveZ32ee0bUepzcS7igJGVtGuHocrC21pY=";
+    sha256 = "sha256-M0Jo4DyvPghhVLK3eFdew10lGUJJODxKoL+v16y9CW8=";
   };
 
-  vendorSha256 = "sha256-IcIUYFmiVuRrZQisjWX5grOZPqovibgF5NmbG96FISI=";
+  vendorSha256 = "sha256-W6m+nDNcZBVfa1OTkOHWf4E9LmEUewsTLT/56Iyp6+Y=";
 
   doCheck = false;
 
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 20cb953edea0..eeffee057d4a 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "13.8.0";
+  version = "13.10.0";
   # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
   docker_x86_64 = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
-    sha256 = "15pf6mxma8gkzyxkzm1rjwa514p7gzabn3c474lcvsjpmp76wv68";
+    sha256 = "0lw087xcbzf4d68mq0h0s31na7lww2d9nv43icw9qx05aknlcddv";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "1c4lpy7nc62rqk8bfwiy5pcgvcwx70qkz3lv9w512fr3n5hjd4c0";
+    sha256 = "1mf3w85ivc8r2rmb78r4b87rrxmbb1zda9pp8n4nvd0igg23xqk8";
   };
 in
 buildGoPackage rec {
@@ -30,7 +30,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "0v0iqpllzaabkahlc5pidzzw0bjlli984pdna3f3bbg67lm5a421";
+    sha256 = "0xy5mpcpxcmwfdrspd29z8nyn1m9i4ma7d5kbihwa2yxznylydpx";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/gocd-agent/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/gocd-agent/default.nix
index 6e58b74654da..3041a0317370 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/gocd-agent/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/gocd-agent/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ grahamc swarren83 ];
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   buildCommand = "
     unzip $src -d $out
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/gocd-server/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/gocd-server/default.nix
index 90eb61dbff8d..4b3f61cf4b4b 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/gocd-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/gocd-server/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ grahamc swarren83 ];
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   buildCommand = "
     unzip $src -d $out
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/hci/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/hci/default.nix
new file mode 100644
index 000000000000..dfca0c4d388e
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/hci/default.nix
@@ -0,0 +1,23 @@
+{ haskell, haskellPackages, lib, makeWrapper, runc, stdenv }:
+let
+  inherit (haskell.lib) overrideCabal addBuildDepends;
+  inherit (lib) makeBinPath;
+  bundledBins = lib.optional stdenv.isLinux runc;
+
+  pkg =
+    # justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
+    overrideCabal
+      (addBuildDepends (haskell.lib.justStaticExecutables haskellPackages.hercules-ci-cli) [ makeWrapper ])
+      (o: {
+        postInstall = ''
+          ${o.postInstall or ""}
+          mkdir -p $out/libexec
+          mv $out/bin/hci $out/libexec
+          makeWrapper $out/libexec/hci $out/bin/hci --prefix PATH : ${makeBinPath bundledBins}
+        '';
+      });
+in pkg // {
+    meta = pkg.meta // {
+      position = toString ./default.nix + ":1";
+    };
+  }
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
index c8316f4bb571..ccb8b4eba656 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
@@ -1,7 +1,9 @@
-{ gnutar, gzip, git, haskell, haskellPackages, lib, makeWrapper }:
+{ gnutar, gzip, git, haskell, haskellPackages, lib, makeWrapper, runc, stdenv }:
 let
   inherit (haskell.lib) overrideCabal addBuildDepends;
   inherit (lib) makeBinPath;
+  bundledBins = [ gnutar gzip git ] ++ lib.optional stdenv.isLinux runc;
+
   pkg =
     # justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
     overrideCabal
@@ -11,7 +13,7 @@ let
           ${o.postInstall or ""}
           mkdir -p $out/libexec
           mv $out/bin/hercules-ci-agent $out/libexec
-          makeWrapper $out/libexec/hercules-ci-agent $out/bin/hercules-ci-agent --prefix PATH : ${makeBinPath [ gnutar gzip git ]}
+          makeWrapper $out/libexec/hercules-ci-agent $out/bin/hercules-ci-agent --prefix PATH : ${makeBinPath bundledBins}
         '';
       });
 in pkg // {
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 6f11ee9e8773..669dc846e10d 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.263.4";
+  version = "2.277.2";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "1disj0a0qh7gzjqm6bjb7dx0v74k74hkyvxpg12ahdj2g04p8jhx";
+    sha256 = "08lv5v5kxp9ln798gjmh8j9a8r8xc471fbhiz2l7gxncpxn50ga2";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix
index f64cbd5e85fd..5b492ee67b31 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix
@@ -8,18 +8,16 @@
 , zlib
 , rapidjson
 , pandoc
-, enableSystemd ? false
-, customConfig ? null
 }:
 let
   js.vue = fetchurl {
-    url = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js";
-    sha256 = "01zklp5cyik65dfn64m8h2y2dxzgbyzgmbf99y7fwgnf0155r7pq";
+    url = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.12/vue.min.js";
+    sha256 = "1hm5kci2g6n5ikrvp1kpkkdzimjgylv1xicg2vnkbvd9rb56qa99";
   };
   js.vue-router = fetchurl {
     url =
-      "https://cdnjs.cloudflare.com/ajax/libs/vue-router/2.7.0/vue-router.min.js";
-    sha256 = "07gx7znb30rk1z7w6ca7dlfjp44q12bbq6jghwfm27mf6psa80as";
+      "https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.4.8/vue-router.min.js";
+    sha256 = "0418waib896ywwxkxliip75zp94k3s9wld51afrqrcq70axld0c9";
   };
   js.ansi_up = fetchurl {
     url = "https://raw.githubusercontent.com/drudru/ansi_up/v1.3.0/ansi_up.js";
@@ -29,17 +27,12 @@ let
     url = "https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js";
     sha256 = "1jh4h12qchsba03dx03mrvs4r8g9qfjn56xm56jqzgqf7r209xq9";
   };
-  css.bootstrap = fetchurl {
-    url =
-      "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css";
-    sha256 = "11vx860prsx7wsy8b0yrrk04ih8kvrxkk8l16snsc4n286bdkyri";
-  };
 in stdenv.mkDerivation rec {
-  name = "laminar";
-  version = "0.8";
+  pname = "laminar";
+  version = "1.0";
   src = fetchurl {
     url = "https://github.com/ohwgiles/laminar/archive/${version}.tar.gz";
-    sha256 = "05g73j3vpib47kr7mackcazf7s6bc3xwz4h6k7sp7yb5ng7gj20g";
+    sha256 = "11m6h3rdmj2rsmsryy7r40gqccj4gg1cnqwy6blscs87gx4s423g";
   };
   patches = [ ./patches/no-network.patch ];
   nativeBuildInputs = [ cmake pandoc ];
@@ -50,31 +43,23 @@ in stdenv.mkDerivation rec {
     cp  ${js.vue-router}  js/vue-router.min.js
     cp  ${js.ansi_up}     js/ansi_up.js
     cp  ${js.Chart}       js/Chart.min.js
-    cp  ${css.bootstrap}  css/bootstrap.min.css
   '';
+
   postInstall = ''
-    mv $out/usr/share $out
-    mkdir $out/bin
-    mv $out/usr/{bin,sbin}/* $out/bin
-    rmdir $out/usr/{bin,sbin}
-    rmdir $out/usr
+    mv $out/usr/share/* $out/share/
+    rmdir $out/usr/share $out/usr
 
     mkdir -p $out/share/doc/laminar
     pandoc -s ../UserManual.md -o $out/share/doc/laminar/UserManual.html
-  '' + lib.optionalString (customConfig != null) ''
-    cp ${customConfig} /etc/etc/laminar.conf
-  '' + (if enableSystemd then ''
-    sed -i "s,/etc/,$out/etc/," $out/lib/systemd/system/laminar.service
-    sed -i "s,/usr/sbin/,$out/bin/," $out/lib/systemd/system/laminar.service
-  '' else ''
-    rm -r $out/lib # it contains only systemd unit file
-  '');
+    rm -rf $out/lib # remove upstream systemd units
+    rm -rf $out/etc # remove upstream config file
+  '';
 
   meta = with lib; {
     description = "Lightweight and modular continuous integration service";
     homepage = "https://laminar.ohwg.net";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ kaction ];
+    maintainers = with maintainers; [ kaction maralorn ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch b/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch
index 80e74de95aa2..355baeb837a5 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch
@@ -6,21 +6,36 @@ put into correct location before build phase starts.
 
 --- laminar-0.8/CMakeLists.txt
 +++ laminar-0.8-new/CMakeLists.txt
-@@ -69,17 +69,6 @@
+@@ -82,15 +82,6 @@
      COMMAND sh -c '( echo -n "\\#define INDEX_HTML_UNCOMPRESSED_SIZE " && wc -c < "${CMAKE_SOURCE_DIR}/src/resources/index.html" ) > index_html_size.h'
      DEPENDS src/resources/index.html)
  
 -# Download 3rd-party frontend JS libs...
--file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js
--        js/vue.min.js EXPECTED_MD5 ae2fca1cfa0e31377819b1b0ffef704c)
--file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/vue-router/2.7.0/vue-router.min.js
--        js/vue-router.min.js EXPECTED_MD5 5d3e35710dbe02de78c39e3e439b8d4e)
+-file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.12/vue.min.js
+-	js/vue.min.js EXPECTED_MD5 fb192338844efe86ec759a40152fcb8e)
+-file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.4.8/vue-router.min.js
+-	js/vue-router.min.js EXPECTED_MD5 5f51d4dbbf68fd6725956a5a2b865f3b)
 -file(DOWNLOAD https://raw.githubusercontent.com/drudru/ansi_up/v1.3.0/ansi_up.js
 -        js/ansi_up.js EXPECTED_MD5 158566dc1ff8f2804de972f7e841e2f6)
 -file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js
 -        js/Chart.min.js EXPECTED_MD5 f6c8efa65711e0cbbc99ba72997ecd0e)
--file(DOWNLOAD https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
--        css/bootstrap.min.css EXPECTED_MD5 5d5357cb3704e1f43a1f5bfed2aebf42)
  # ...and compile them
  generate_compressed_bins(${CMAKE_BINARY_DIR} js/vue-router.min.js js/vue.min.js
-     js/ansi_up.js js/Chart.min.js css/bootstrap.min.css)
+     js/ansi_up.js js/Chart.min.js)
+@@ -141,12 +132,12 @@
+     target_link_libraries(laminar-tests ${GTEST_LIBRARY} capnp-rpc capnp kj-http kj-async kj pthread sqlite3 z)
+ endif()
+ 
+-set(SYSTEMD_UNITDIR /lib/systemd/system CACHE PATH "Path to systemd unit files")
+-set(BASH_COMPLETIONS_DIR /usr/share/bash-completion/completions CACHE PATH "Path to bash completions directory")
+-set(ZSH_COMPLETIONS_DIR /usr/share/zsh/site-functions CACHE PATH "Path to zsh completions directory")
++set(SYSTEMD_UNITDIR lib/systemd/system CACHE PATH "Path to systemd unit files")
++set(BASH_COMPLETIONS_DIR usr/share/bash-completion/completions CACHE PATH "Path to bash completions directory")
++set(ZSH_COMPLETIONS_DIR usr/share/zsh/site-functions CACHE PATH "Path to zsh completions directory")
+ install(TARGETS laminard RUNTIME DESTINATION sbin)
+ install(TARGETS laminarc RUNTIME DESTINATION bin)
+-install(FILES etc/laminar.conf DESTINATION /etc)
++install(FILES etc/laminar.conf DESTINATION etc)
+ install(FILES etc/laminarc-completion.bash DESTINATION ${BASH_COMPLETIONS_DIR} RENAME laminarc)
+ install(FILES etc/laminarc-completion.zsh DESTINATION ${ZSH_COMPLETIONS_DIR} RENAME _laminarc)
+ 
diff --git a/nixpkgs/pkgs/development/tools/convco/default.nix b/nixpkgs/pkgs/development/tools/convco/default.nix
index d6be170bb8f6..c152197358c9 100644
--- a/nixpkgs/pkgs/development/tools/convco/default.nix
+++ b/nixpkgs/pkgs/development/tools/convco/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "convco";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "convco";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fqq6irbq1aikhhw08gc9kp0vbk2aminfbvwdlm58cvywyq91bn4";
+    sha256 = "sha256-eWe7oTWl7QfIqq3GfMILi5S8zUi03ER1Mzfr8hqUvgw=";
   };
 
-  cargoSha256 = "073sfv42fbl8rjm3dih1ghs9vq75mjshp66zdzdan2dmmrnw5m9z";
+  cargoSha256 = "sha256-hAUg2mh4VyyjkBRBs5YWi14yeGlMXxt+cdoz5xOS+1A=";
 
   nativeBuildInputs = [ openssl perl pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/coursier/default.nix b/nixpkgs/pkgs/development/tools/coursier/default.nix
index e016f0ef7c92..64c48b702cf1 100644
--- a/nixpkgs/pkgs/development/tools/coursier/default.nix
+++ b/nixpkgs/pkgs/development/tools/coursier/default.nix
@@ -2,7 +2,7 @@
 , coreutils, git, gnused, nix, nixfmt }:
 
 let
-  version = "2.0.9";
+  version = "2.0.16";
 
   zshCompletion = fetchurl {
     url =
@@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url =
       "https://github.com/coursier/coursier/releases/download/v${version}/coursier";
-    sha256 = "sha256-jqSv9VBLotl6YVWgWNznvTThRIiMUStQ0WbN6u01b1c=";
+    sha256 = "sha256-Yx6PvBo763GnEwU5s7AYUs++Au25TF6cZ4WYGgruHpw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -37,14 +37,7 @@ in stdenv.mkDerivation rec {
     #!${stdenv.shell}
     set -o errexit
     PATH=${
-      lib.makeBinPath [
-        common-updater-scripts
-        coreutils
-        git
-        gnused
-        nix
-        nixfmt
-      ]
+      lib.makeBinPath [ common-updater-scripts coreutils git gnused nix nixfmt ]
     }
     oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
     latestTag="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags ${repo} 'v*.*.*' | tail --lines=1 | cut --delimiter='/' --fields=3 | sed 's|^v||g')"
diff --git a/nixpkgs/pkgs/development/tools/cue/default.nix b/nixpkgs/pkgs/development/tools/cue/default.nix
index 28660732ea4f..c974286ab99f 100644
--- a/nixpkgs/pkgs/development/tools/cue/default.nix
+++ b/nixpkgs/pkgs/development/tools/cue/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "cue";
-  version = "0.2.2";
+  version = "0.3.0";
 
   src = fetchgit {
     url = "https://cue.googlesource.com/cue";
     rev = "v${version}";
-    sha256 = "1crl5fldczc3jkwf7gvwvghckr6gfinfslzca4ps1098lbq83zcq";
+    sha256 = "1h3809xgmn7dr57i3cnifr7r555i3zh3kfsv0gxa9nd7068w19xm";
   };
 
-  vendorSha256 = "0l6slaji9nh16jqp1nvib95h2db1xyjh6knk5hj2zaa1rks4b092";
+  vendorSha256 = "10kvss23a8a6q26a7h1bqc3i0nskm2halsvc9wdv9zf9qsz7zjkp";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/dapper/default.nix b/nixpkgs/pkgs/development/tools/dapper/default.nix
index a95cac4514b7..e25aae0eba90 100644
--- a/nixpkgs/pkgs/development/tools/dapper/default.nix
+++ b/nixpkgs/pkgs/development/tools/dapper/default.nix
@@ -5,7 +5,7 @@
 
 buildGoPackage rec {
   pname = "dapper";
-  version = "0.5.5";
+  version = "0.5.6";
 
   goPackagePath = "github.com/rancher/dapper";
 
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner = "rancher";
     repo = "dapper";
     rev = "v${version}";
-    sha256 = "sha256-QzPW1uC/WuYM/lLqyKodIozGTz5Qn1haoDvgNgjhrRA=";
+    sha256 = "sha256-o64r4TBDpICnVZMIX2jKQjoJkA/jAviJkvI/xJ4ToM8=";
   };
    patchPhase = ''
      substituteInPlace main.go --replace 0.0.0 ${version}
diff --git a/nixpkgs/pkgs/development/tools/dapr/cli/default.nix b/nixpkgs/pkgs/development/tools/dapr/cli/default.nix
index 57fd984dc17c..59e04455c2a4 100644
--- a/nixpkgs/pkgs/development/tools/dapr/cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/dapr/cli/default.nix
@@ -1,15 +1,13 @@
 { buildGoModule, fetchFromGitHub, lib }:
 
-let
+buildGoModule rec {
   pname = "dapr";
-  version = "0.9.0";
-  sha256 = "1vdbh5pg3j7kqqqhhf4d9xfzbpqmjc4x373sk43pb05prg4w71s7";
-  vendorSha256 = "19qcpd5i60xmsr8m8mx16imm5falkqcgqpwpx3clfvqxjyflglpp";
-in buildGoModule {
-  inherit pname version vendorSha256;
+  version = "1.1.0";
+
+  vendorSha256 = "0fng5a1pvpbwil79xapdalzgkgc9dwsdxs6bznjfwnkyd1vvw6fm";
 
   src = fetchFromGitHub {
-    inherit sha256;
+    sha256 = "0x2mvlzlmcik6ys6xp722px9l4lj9ssyxb06bzxd7yj7m1wwcwp9";
 
     owner = "dapr";
     repo = "cli";
diff --git a/nixpkgs/pkgs/development/tools/database/ephemeralpg/default.nix b/nixpkgs/pkgs/development/tools/database/ephemeralpg/default.nix
index ae10c402945f..0fb3ae81030b 100644
--- a/nixpkgs/pkgs/development/tools/database/ephemeralpg/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/ephemeralpg/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
     url = "http://ephemeralpg.org/code/${pname}-${version}.tar.gz";
     sha256 = "1ap22ki8yz6agd0qybcjgs4b9izw1rwwcgpxn3jah2ccfyax34s6";
   };
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
     mkdir -p $out
     PREFIX=$out make install
diff --git a/nixpkgs/pkgs/development/tools/database/liquibase/default.nix b/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
index eacd35ed760c..0be77237f428 100644
--- a/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
@@ -10,14 +10,15 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Zwh8baMD8jt+yfsK0jpsTEU32rT+IAQGwavVT3rpRsU=";
+    sha256 = "sha256-hOemDLfkjjPXQErKKCIMl8c5EPZe40B1HlNfvg7IZKU=";
   };
 
-  buildInputs = [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   unpackPhase = ''
     tar xfz ${src}
diff --git a/nixpkgs/pkgs/development/tools/database/shmig/default.nix b/nixpkgs/pkgs/development/tools/database/shmig/default.nix
index 447dbc23fdf1..a25a39564513 100644
--- a/nixpkgs/pkgs/development/tools/database/shmig/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/shmig/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub
 , withMySQL ? true, withPSQL ? false, withSQLite ? false
-, mysql, postgresql, sqlite, gawk, gnugrep, findutils, gnused
+, mariadb, postgresql, sqlite, gawk, gnugrep, findutils, gnused
 , lib
 }:
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     patchShebangs .
 
     substituteInPlace shmig \
-      --replace "\`which mysql\`" "${lib.optionalString withMySQL "${mysql.client}/bin/mysql"}" \
+      --replace "\`which mysql\`" "${lib.optionalString withMySQL "${mariadb.client}/bin/mysql"}" \
       --replace "\`which psql\`" "${lib.optionalString withPSQL "${postgresql}/bin/psql"}" \
       --replace "\`which sqlite3\`" "${lib.optionalString withSQLite "${sqlite}/bin/sqlite3"}" \
       --replace "awk" "${gawk}/bin/awk" \
diff --git a/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix b/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix
index c42197e13cf1..2e361076ae48 100644
--- a/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix
@@ -49,7 +49,7 @@ in
     sha256 = "1h53gl41ydr7kim6q9ckg3xyhb0rhmwj7jnis0xz6vms52b3h59k";
   };
 
-  buildInputs = [ makeWrapper unzip ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   unpackCmd = "unzip $curSrc";
 
diff --git a/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix b/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
index 34d5d12607f7..e4132dd73451 100644
--- a/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "timescaledb-tune";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "timescale";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vrbbswmg6z3n012mqd1jasqk01navypzv5m00r6c9bxj72hgcxl";
+    sha256 = "sha256-orCnw+NM9jTrg0oeHg0CQvIXzbSkeCwwDUI1t/+k31o=";
   };
 
-  vendorSha256 = "0hbpprbxs19fcar7xcy42kn9yfzhal2zsv5pml9ghiv2s61yns4z";
+  vendorSha256 = "sha256-n2jrg9FiR/gSrbds/QVV8Duf7BTEs36yYi4F3Ve+d0E=";
 
   meta = with lib; {
     description = "A tool for tuning your TimescaleDB for better performance";
diff --git a/nixpkgs/pkgs/development/tools/database/webdis/default.nix b/nixpkgs/pkgs/development/tools/database/webdis/default.nix
index 5de8296299fb..042f5a1aa6d6 100644
--- a/nixpkgs/pkgs/development/tools/database/webdis/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/webdis/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "webdis";
-  version = "0.1.11";
+  version = "0.1.12";
 
   src = fetchFromGitHub {
     owner = "nicolasff";
     repo = pname;
     rev = version;
-    sha256 = "162xbx4dhfx4a6sksm7x60gr7ylyila4vidmdf0bn7xlvglggazf";
+    sha256 = "sha256-pppA/Uyz1ge7UOG1PrqpTQC5sSGMWPw0J+CtaoZpOCM=";
   };
 
   buildInputs = [ hiredis http-parser jansson libevent ];
diff --git a/nixpkgs/pkgs/development/tools/devpi-client/default.nix b/nixpkgs/pkgs/development/tools/devpi-client/default.nix
index 5905e05d0710..5bca87337714 100644
--- a/nixpkgs/pkgs/development/tools/devpi-client/default.nix
+++ b/nixpkgs/pkgs/development/tools/devpi-client/default.nix
@@ -32,9 +32,9 @@ buildPythonApplication rec {
     sha256 = "74ff365efeaa7b78c9eb7f6d7bd349ccd6252a6cdf879bcb4137ee5ff0fb127a";
   };
 
-  buildInputs = [ glibcLocales pkginfo check-manifest ];
+  buildInputs = [ glibcLocales ];
 
-  propagatedBuildInputs = [ py devpi-common pluggy setuptools ];
+  propagatedBuildInputs = [ py devpi-common pluggy setuptools check-manifest pkginfo ];
 
   checkInputs = [
     pytest pytest-flake8 webtest mock
diff --git a/nixpkgs/pkgs/development/tools/diesel-cli/allow-warnings.patch b/nixpkgs/pkgs/development/tools/diesel-cli/allow-warnings.patch
deleted file mode 100644
index 342ac1baa102..000000000000
--- a/nixpkgs/pkgs/development/tools/diesel-cli/allow-warnings.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-diff --git a/diesel/src/lib.rs b/diesel/src/lib.rs
-index 4e743eb4..97c53ed8 100644
---- a/diesel/src/lib.rs
-+++ b/diesel/src/lib.rs
-@@ -131,7 +131,6 @@
- #![cfg_attr(feature = "unstable", feature(specialization, try_from))]
- // Built-in Lints
- #![deny(
--    warnings,
-     missing_debug_implementations,
-     missing_copy_implementations,
-     missing_docs
-diff --git a/diesel_cli/src/main.rs b/diesel_cli/src/main.rs
-index 741ca003..cf93bb8f 100644
---- a/diesel_cli/src/main.rs
-+++ b/diesel_cli/src/main.rs
-@@ -1,5 +1,5 @@
- // Built-in Lints
--#![deny(warnings, missing_copy_implementations)]
-+#![deny(missing_copy_implementations)]
- // Clippy lints
- #![allow(clippy::option_map_unwrap_or_else, clippy::option_map_unwrap_or)]
- #![warn(
-diff --git a/diesel_cli/tests/tests.rs b/diesel_cli/tests/tests.rs
-index 2edee846..c96917c4 100644
---- a/diesel_cli/tests/tests.rs
-+++ b/diesel_cli/tests/tests.rs
-@@ -1,5 +1,3 @@
--#![deny(warnings)]
--
- extern crate chrono;
- extern crate diesel;
- #[macro_use]
-diff --git a/diesel_derives/src/lib.rs b/diesel_derives/src/lib.rs
-index 2c43b2a3..44dcf3f9 100644
---- a/diesel_derives/src/lib.rs
-+++ b/diesel_derives/src/lib.rs
-@@ -1,6 +1,6 @@
- #![recursion_limit = "1024"]
- // Built-in Lints
--#![deny(warnings, missing_copy_implementations)]
-+#![deny(missing_copy_implementations)]
- // Clippy lints
- #![allow(
-     clippy::needless_pass_by_value,
-diff --git a/diesel_derives/tests/tests.rs b/diesel_derives/tests/tests.rs
-index 636fea66..f86f3dcc 100644
---- a/diesel_derives/tests/tests.rs
-+++ b/diesel_derives/tests/tests.rs
-@@ -1,5 +1,3 @@
--#![deny(warnings)]
--
- #[macro_use]
- extern crate cfg_if;
- #[macro_use]
-diff --git a/diesel_migrations/migrations_internals/src/lib.rs b/diesel_migrations/migrations_internals/src/lib.rs
-index 933e21a8..7c4d0222 100644
---- a/diesel_migrations/migrations_internals/src/lib.rs
-+++ b/diesel_migrations/migrations_internals/src/lib.rs
-@@ -1,5 +1,5 @@
- // Built-in Lints
--#![deny(warnings, missing_debug_implementations, missing_copy_implementations)]
-+#![deny(missing_debug_implementations, missing_copy_implementations)]
- // Clippy lints
- #![allow(
-     clippy::option_map_unwrap_or_else,
-diff --git a/diesel_migrations/migrations_macros/src/lib.rs b/diesel_migrations/migrations_macros/src/lib.rs
-index 0a83234e..2f509c04 100644
---- a/diesel_migrations/migrations_macros/src/lib.rs
-+++ b/diesel_migrations/migrations_macros/src/lib.rs
-@@ -1,5 +1,5 @@
- // Built-in Lints
--#![deny(warnings, missing_debug_implementations, missing_copy_implementations)]
-+#![deny(missing_debug_implementations, missing_copy_implementations)]
- // Clippy lints
- #![allow(
-     clippy::option_map_unwrap_or_else,
-diff --git a/diesel_migrations/src/lib.rs b/diesel_migrations/src/lib.rs
-index c85414e5..f025f237 100644
---- a/diesel_migrations/src/lib.rs
-+++ b/diesel_migrations/src/lib.rs
-@@ -1,5 +1,5 @@
- // Built-in Lints
--#![deny(warnings, missing_copy_implementations)]
-+#![deny(missing_copy_implementations)]
- // Clippy lints
- #![allow(
-     clippy::needless_pass_by_value,
diff --git a/nixpkgs/pkgs/development/tools/diesel-cli/cargo-lock.patch b/nixpkgs/pkgs/development/tools/diesel-cli/cargo-lock.patch
index 26d583f9a11d..aefc40c8493c 100644
--- a/nixpkgs/pkgs/development/tools/diesel-cli/cargo-lock.patch
+++ b/nixpkgs/pkgs/development/tools/diesel-cli/cargo-lock.patch
@@ -1,1589 +1,1497 @@
 diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
-index 0000000..f20a5bf
+index 0000000..c4a129e
 --- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,1583 @@
+@@ -0,0 +1,1491 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
++version = 3
++
++[[package]]
++name = "addr2line"
++version = "0.14.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
++dependencies = [
++ "gimli",
++]
++
++[[package]]
++name = "adler"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
++
 +[[package]]
 +name = "advanced-blog-cli"
 +version = "0.1.0"
 +dependencies = [
-+ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bcrypt 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "assert_matches",
++ "bcrypt",
++ "chrono",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
 + "diesel_migrations 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "structopt 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "structopt-derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
++ "lazy_static",
++ "structopt",
++ "structopt-derive",
++ "tempfile 2.2.0",
 +]
 +
 +[[package]]
 +name = "aho-corasick"
 +version = "0.5.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66"
 +dependencies = [
-+ "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 0.1.11",
 +]
 +
 +[[package]]
 +name = "aho-corasick"
 +version = "0.6.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
 +dependencies = [
-+ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.4",
 +]
 +
 +[[package]]
 +name = "all_about_inserts"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
++ "serde_derive",
++ "serde_json",
 +]
 +
 +[[package]]
 +name = "all_about_inserts_mysql"
 +version = "0.1.0"
 +dependencies = [
-+ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
++ "serde_derive",
++ "serde_json",
 +]
 +
 +[[package]]
 +name = "all_about_inserts_sqlite"
 +version = "0.1.0"
 +dependencies = [
-+ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
++ "serde_derive",
++ "serde_json",
 +]
 +
 +[[package]]
 +name = "all_about_updates"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "ansi_term"
 +version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
 +dependencies = [
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "assert_matches"
-+version = "1.3.0"
++version = "1.5.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
 +
 +[[package]]
 +name = "atty"
-+version = "0.2.13"
++version = "0.2.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 +dependencies = [
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi",
++ "libc",
++ "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "autocfg"
-+version = "0.1.6"
++version = "0.1.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
 +
 +[[package]]
-+name = "backtrace"
-+version = "0.3.35"
++name = "autocfg"
++version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "backtrace-sys 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
 +
 +[[package]]
-+name = "backtrace-sys"
-+version = "0.1.31"
++name = "backtrace"
++version = "0.3.56"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
 +dependencies = [
-+ "cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "addr2line",
++ "cfg-if 1.0.0",
++ "libc",
++ "miniz_oxide",
++ "object",
++ "rustc-demangle",
 +]
 +
 +[[package]]
 +name = "barrel"
-+version = "0.2.0"
++version = "0.6.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9d67c978b1322c8031145b1f6c236fc371292f52c565bc96018b2971afcbffe1"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempfile 3.2.0",
 +]
 +
 +[[package]]
 +name = "base64"
-+version = "0.9.3"
++version = "0.10.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
 +dependencies = [
-+ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "safemem 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
 +]
 +
 +[[package]]
 +name = "bcrypt"
-+version = "0.1.6"
++version = "0.2.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d27c1ac8b4a79e27fc37d00060f152ebc59c95a7cfc946943d177d6799c19184"
 +dependencies = [
-+ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64",
++ "blowfish",
++ "byteorder",
++ "lazy_static",
++ "rand 0.6.5",
 +]
 +
 +[[package]]
 +name = "bigdecimal"
-+version = "0.0.14"
++version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1374191e2dd25f9ae02e3aa95041ed5d747fc77b3c102b49fe2dd9a8117a6244"
 +dependencies = [
-+ "num-bigint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-bigint",
++ "num-integer",
++ "num-traits",
 +]
 +
 +[[package]]
 +name = "bitflags"
-+version = "1.1.0"
++version = "1.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 +
 +[[package]]
-+name = "bumpalo"
-+version = "2.6.0"
++name = "block-cipher-trait"
++version = "0.6.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774"
++dependencies = [
++ "generic-array",
++]
 +
 +[[package]]
-+name = "byteorder"
-+version = "1.3.2"
++name = "blowfish"
++version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6aeb80d00f2688459b8542068abd974cfb101e7a82182414a99b5026c0d85cc3"
++dependencies = [
++ "block-cipher-trait",
++ "byteorder",
++ "opaque-debug",
++]
 +
 +[[package]]
-+name = "c2-chacha"
-+version = "0.2.2"
++name = "byteorder"
++version = "1.4.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.41"
++version = "1.0.67"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
 +
 +[[package]]
 +name = "cfg-if"
-+version = "0.1.9"
++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.8"
++version = "0.4.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
 +dependencies = [
-+ "js-sys 0.3.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasm-bindgen 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "num-integer",
++ "num-traits",
++ "time",
++ "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "clap"
-+version = "2.33.0"
++version = "2.33.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
 +dependencies = [
-+ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
 +]
 +
 +[[package]]
 +name = "cloudabi"
 +version = "0.0.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
 +dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
 +]
 +
 +[[package]]
 +name = "derive-error-chain"
 +version = "0.10.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3c9ca9ade651388daad7c993f005d0d20c4f6fe78c1cdc93e95f161c6f5ede4a"
 +dependencies = [
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.3.15",
++ "syn 0.11.11",
 +]
 +
 +[[package]]
 +name = "diesel"
-+version = "1.4.0"
-+dependencies = [
-+ "bigdecimal 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "diesel_derives 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ipnetwork 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mysqlclient-sys 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-bigint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pq-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quickcheck 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "r2d2 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
++version = "1.4.6"
++dependencies = [
++ "bigdecimal",
++ "bitflags",
++ "byteorder",
++ "cfg-if 0.1.10",
++ "chrono",
++ "diesel_derives 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
++ "ipnetwork",
++ "libc",
++ "libsqlite3-sys",
++ "mysqlclient-sys",
++ "num-bigint",
++ "num-integer",
++ "num-traits",
++ "pq-sys",
++ "quickcheck",
++ "r2d2",
++ "serde_json",
++ "tempdir",
++ "time",
++ "url",
++ "uuid 0.6.5",
++ "uuid 0.8.2",
 +]
 +
 +[[package]]
 +name = "diesel"
-+version = "1.4.2"
++version = "1.4.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "diesel_derives 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mysqlclient-sys 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pq-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "047bfc4d5c3bd2ef6ca6f981941046113524b9a9f9a7cbdfdd7ff40f58e6f542"
++replace = "diesel 1.4.6"
 +
 +[[package]]
 +name = "diesel_cli"
-+version = "1.4.0"
++version = "1.4.1"
 +dependencies = [
-+ "barrel 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "barrel",
++ "chrono",
++ "clap",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "difference",
++ "dotenv",
++ "libsqlite3-sys",
++ "migrations_internals 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 0.2.11",
++ "serde",
++ "tempdir",
++ "tempfile 3.2.0",
++ "toml",
++ "url",
 +]
 +
 +[[package]]
 +name = "diesel_demo_step_1_mysql"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
 +]
 +
 +[[package]]
 +name = "diesel_demo_step_1_pg"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
 +]
 +
 +[[package]]
 +name = "diesel_demo_step_1_sqlite"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
 +]
 +
 +[[package]]
 +name = "diesel_demo_step_2_mysql"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
 +]
 +
 +[[package]]
 +name = "diesel_demo_step_2_pg"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
 +]
 +
 +[[package]]
 +name = "diesel_demo_step_2_sqlite"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
 +]
 +
 +[[package]]
 +name = "diesel_demo_step_3_mysql"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
 +]
 +
 +[[package]]
 +name = "diesel_demo_step_3_pg"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
 +]
 +
 +[[package]]
 +name = "diesel_demo_step_3_sqlite"
 +version = "0.1.0"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
 +]
 +
 +[[package]]
 +name = "diesel_derives"
-+version = "1.4.0"
++version = "1.4.1"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
++ "proc-macro2",
++ "quote 1.0.9",
++ "syn 1.0.67",
 +]
 +
 +[[package]]
 +name = "diesel_derives"
-+version = "1.4.0"
++version = "1.4.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+replace = "diesel_derives 1.4.0"
++checksum = "45f5098f628d02a7a0f68ddba586fb61e80edec3bdc1be3b921f4ceec60858d3"
++replace = "diesel_derives 1.4.1"
 +
 +[[package]]
 +name = "diesel_infer_schema"
 +version = "1.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7bea70d0798a3d8489e1d5493bb2111a1ab2da434191b9e9605f167c01a20680"
 +dependencies = [
-+ "infer_schema_macros 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "infer_schema_macros",
 +]
 +
 +[[package]]
 +name = "diesel_migrations"
 +version = "1.4.0"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "migrations_macros 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
++ "migrations_internals 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "migrations_macros 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "diesel_migrations"
 +version = "1.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bf3cde8413353dc7f5d72fa8ce0b99a560a359d2c5ef1e5817ca731cd9008f4c"
 +replace = "diesel_migrations 1.4.0"
 +
 +[[package]]
 +name = "diesel_tests"
 +version = "0.1.0"
 +dependencies = [
-+ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bigdecimal 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "diesel 1.4.0",
-+ "diesel_infer_schema 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "assert_matches",
++ "bigdecimal",
++ "chrono",
++ "diesel 1.4.6",
++ "diesel_infer_schema",
 + "diesel_migrations 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ipnetwork 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quickcheck 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
++ "ipnetwork",
++ "quickcheck",
++ "serde_json",
++ "uuid 0.8.2",
 +]
 +
 +[[package]]
 +name = "difference"
 +version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8"
 +
 +[[package]]
 +name = "dotenv"
 +version = "0.10.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d6f0e2bb24d163428d8031d3ebd2d2bd903ad933205a97d0f18c7c1aade380f3"
 +dependencies = [
-+ "derive-error-chain 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "derive-error-chain",
++ "error-chain",
++ "regex 0.2.11",
 +]
 +
 +[[package]]
 +name = "env_logger"
 +version = "0.3.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "15abd780e45b3ea4f76b4e9a26ff4843258dd8a3eed2775a0e7368c2e7936c2f"
 +dependencies = [
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 0.1.80 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.3.9",
++ "regex 0.1.80",
 +]
 +
 +[[package]]
 +name = "error-chain"
 +version = "0.10.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8"
 +dependencies = [
-+ "backtrace 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace",
 +]
 +
 +[[package]]
 +name = "fuchsia-cprng"
 +version = "0.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
 +
 +[[package]]
-+name = "gcc"
-+version = "0.3.55"
++name = "generic-array"
++version = "0.12.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
++dependencies = [
++ "typenum",
++]
 +
 +[[package]]
 +name = "getrandom"
-+version = "0.1.11"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
++dependencies = [
++ "cfg-if 1.0.0",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "gimli"
++version = "0.23.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasi 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
 +]
 +
 +[[package]]
 +name = "idna"
 +version = "0.1.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
 +dependencies = [
-+ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
 +]
 +
 +[[package]]
 +name = "infer_schema_internals"
 +version = "1.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90e390df38a4e5cb4337a76db5b736f239e08f3ab7e8e42a34548617f0113f64"
 +dependencies = [
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "infer_schema_macros"
 +version = "1.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "07b667b471ef99645989ceea451be288b6e669eeb8951d3f0fbd310677588ac6"
 +dependencies = [
-+ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "infer_schema_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv",
++ "infer_schema_internals",
++ "quote 0.3.15",
++ "syn 0.11.11",
 +]
 +
 +[[package]]
-+name = "ipnetwork"
-+version = "0.13.1"
++name = "instant"
++version = "0.1.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
 +dependencies = [
-+ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
 +]
 +
 +[[package]]
-+name = "itoa"
-+version = "0.4.4"
++name = "ipnetwork"
++version = "0.17.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "02c3eaab3ac0ede60ffa41add21970a7df7d91772c03383aac6c2c3d53cc716b"
++dependencies = [
++ "serde",
++]
 +
 +[[package]]
-+name = "js-sys"
-+version = "0.3.27"
++name = "itoa"
++version = "0.4.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "wasm-bindgen 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
 +
 +[[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 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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.62"
++version = "0.2.91"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8916b1f6ca17130ec6568feccee27c156ad12037880833a3b842a823236502e7"
 +
 +[[package]]
 +name = "libsqlite3-sys"
-+version = "0.12.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "lock_api"
-+version = "0.2.0"
++version = "0.20.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "64d31059f22935e6c31830db5249ba2b7ecd54fd73a9909286f0a67aa55c2fbd"
 +dependencies = [
-+ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "pkg-config",
++ "vcpkg",
 +]
 +
 +[[package]]
 +name = "lock_api"
-+version = "0.3.1"
++version = "0.4.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
 +dependencies = [
-+ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard",
 +]
 +
 +[[package]]
 +name = "log"
 +version = "0.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
 +dependencies = [
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.14",
 +]
 +
 +[[package]]
 +name = "log"
-+version = "0.4.8"
++version = "0.4.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
 +]
 +
 +[[package]]
 +name = "matches"
 +version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
 +
 +[[package]]
 +name = "memchr"
 +version = "0.1.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"
 +dependencies = [
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
 +]
 +
 +[[package]]
 +name = "memchr"
-+version = "2.2.1"
++version = "2.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
 +
 +[[package]]
 +name = "migrations_internals"
-+version = "1.4.0"
++version = "1.4.1"
 +dependencies = [
-+ "barrel 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "barrel",
++ "diesel 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempdir",
 +]
 +
 +[[package]]
 +name = "migrations_internals"
-+version = "1.4.0"
++version = "1.4.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+replace = "migrations_internals 1.4.0"
++checksum = "2b4fc84e4af020b837029e017966f86a1c2d5e83e64b589963d5047525995860"
++replace = "migrations_internals 1.4.1"
 +
 +[[package]]
 +name = "migrations_macros"
-+version = "1.4.0"
++version = "1.4.2"
 +dependencies = [
-+ "migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "migrations_internals 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote 1.0.9",
++ "syn 1.0.67",
++ "tempdir",
 +]
 +
 +[[package]]
 +name = "migrations_macros"
-+version = "1.4.0"
++version = "1.4.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+replace = "migrations_macros 1.4.0"
++checksum = "9753f12909fd8d923f75ae5c3258cae1ed3c8ec052e1b38c93c21a6d157f789c"
++replace = "migrations_macros 1.4.2"
++
++[[package]]
++name = "miniz_oxide"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
++dependencies = [
++ "adler",
++ "autocfg 1.0.1",
++]
 +
 +[[package]]
 +name = "mysqlclient-sys"
 +version = "0.2.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e9637d93448044078aaafea7419aed69d301b4a12bcc4aa0ae856eb169bef85"
 +dependencies = [
-+ "pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config",
++ "vcpkg",
 +]
 +
 +[[package]]
 +name = "num-bigint"
-+version = "0.2.2"
++version = "0.2.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
 +dependencies = [
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.1",
++ "num-integer",
++ "num-traits",
 +]
 +
 +[[package]]
 +name = "num-integer"
-+version = "0.1.41"
++version = "0.1.44"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
 +dependencies = [
-+ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.1",
++ "num-traits",
 +]
 +
 +[[package]]
 +name = "num-traits"
-+version = "0.2.8"
++version = "0.2.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
 +dependencies = [
-+ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.1",
 +]
 +
 +[[package]]
-+name = "parking_lot"
-+version = "0.8.0"
++name = "object"
++version = "0.23.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "parking_lot_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
 +
 +[[package]]
-+name = "parking_lot"
-+version = "0.9.0"
++name = "opaque-debug"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
 +
 +[[package]]
-+name = "parking_lot_core"
-+version = "0.5.0"
++name = "parking_lot"
++version = "0.11.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "instant",
++ "lock_api",
++ "parking_lot_core",
 +]
 +
 +[[package]]
 +name = "parking_lot_core"
-+version = "0.6.2"
++version = "0.8.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
++ "instant",
++ "libc",
++ "redox_syscall 0.2.5",
++ "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 = "pkg-config"
-+version = "0.3.15"
++version = "0.3.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
 +
 +[[package]]
 +name = "ppv-lite86"
-+version = "0.2.5"
++version = "0.2.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
 +
 +[[package]]
 +name = "pq-sys"
 +version = "0.4.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6ac25eee5a0582f45a67e837e350d784e7003bd29a5f460796772061ca49ffda"
 +dependencies = [
-+ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vcpkg",
 +]
 +
 +[[package]]
 +name = "proc-macro2"
-+version = "0.4.30"
++version = "1.0.24"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
 +dependencies = [
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.1",
 +]
 +
 +[[package]]
 +name = "quickcheck"
 +version = "0.4.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "02c2411d418cea2364325b18a205664f9ef8252e06b2e911db97c0b0d98b1406"
 +dependencies = [
-+ "env_logger 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "env_logger",
++ "log 0.3.9",
++ "rand 0.3.23",
 +]
 +
 +[[package]]
 +name = "quote"
 +version = "0.3.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
 +
 +[[package]]
 +name = "quote"
-+version = "0.6.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.2"
++version = "1.0.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
 +dependencies = [
-+ "proc-macro2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
 +]
 +
 +[[package]]
 +name = "r2d2"
-+version = "0.8.5"
++version = "0.8.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "545c5bc2b880973c9c10e4067418407a0ccaa3091781d1671d46eb35107cb26f"
 +dependencies = [
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scheduled-thread-pool 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.14",
++ "parking_lot",
++ "scheduled-thread-pool",
 +]
 +
 +[[package]]
 +name = "rand"
 +version = "0.3.23"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
 +dependencies = [
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "rand 0.4.6",
 +]
 +
 +[[package]]
 +name = "rand"
 +version = "0.4.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
 +dependencies = [
-+ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.3.1",
++ "rdrand",
++ "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "rand"
 +version = "0.6.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
 +dependencies = [
-+ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7",
++ "libc",
++ "rand_chacha 0.1.1",
++ "rand_core 0.4.2",
++ "rand_hc 0.1.0",
++ "rand_isaac",
++ "rand_jitter",
++ "rand_os",
++ "rand_pcg",
++ "rand_xorshift",
++ "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "rand"
-+version = "0.7.0"
++version = "0.8.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
 +dependencies = [
-+ "getrandom 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "rand_chacha 0.3.0",
++ "rand_core 0.6.2",
++ "rand_hc 0.3.0",
 +]
 +
 +[[package]]
 +name = "rand_chacha"
 +version = "0.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
 +dependencies = [
-+ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7",
++ "rand_core 0.3.1",
 +]
 +
 +[[package]]
 +name = "rand_chacha"
-+version = "0.2.1"
++version = "0.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
 +dependencies = [
-+ "c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ppv-lite86",
++ "rand_core 0.6.2",
 +]
 +
 +[[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2",
 +]
 +
 +[[package]]
 +name = "rand_core"
 +version = "0.4.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
 +
 +[[package]]
 +name = "rand_core"
-+version = "0.5.1"
++version = "0.6.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
 +dependencies = [
-+ "getrandom 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
 +]
 +
 +[[package]]
 +name = "rand_hc"
-+version = "0.2.0"
++version = "0.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
 +dependencies = [
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.6.2",
 +]
 +
 +[[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7",
++ "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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
 +]
 +
 +[[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
 +]
 +
 +[[package]]
 +name = "redox_syscall"
-+version = "0.1.56"
++version = "0.1.57"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
++
++[[package]]
++name = "redox_syscall"
++version = "0.2.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
++dependencies = [
++ "bitflags",
++]
 +
 +[[package]]
 +name = "regex"
 +version = "0.1.80"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019402f"
 +dependencies = [
-+ "aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex-syntax 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aho-corasick 0.5.3",
++ "memchr 0.1.11",
++ "regex-syntax 0.3.9",
++ "thread_local 0.2.7",
++ "utf8-ranges 0.1.3",
 +]
 +
 +[[package]]
 +name = "regex"
 +version = "0.2.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384"
 +dependencies = [
-+ "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aho-corasick 0.6.10",
++ "memchr 2.3.4",
++ "regex-syntax 0.5.6",
++ "thread_local 0.3.6",
++ "utf8-ranges 1.0.4",
 +]
 +
 +[[package]]
 +name = "regex-syntax"
 +version = "0.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db834957"
 +
 +[[package]]
 +name = "regex-syntax"
 +version = "0.5.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7"
 +dependencies = [
-+ "ucd-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ucd-util",
 +]
 +
 +[[package]]
 +name = "remove_dir_all"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rust-crypto"
-+version = "0.2.36"
++version = "0.5.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
 +dependencies = [
-+ "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "rustc-demangle"
-+version = "0.1.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "rustc-serialize"
-+version = "0.3.24"
++version = "0.1.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "rustc_version"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
 +
 +[[package]]
 +name = "ryu"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "safemem"
-+version = "0.3.2"
++version = "1.0.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
 +
 +[[package]]
 +name = "scheduled-thread-pool"
-+version = "0.2.2"
++version = "0.2.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc6f74fd1204073fa02d5d5d68bec8021be4c38690b61264b2fdb48083d0e7d7"
 +dependencies = [
-+ "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot",
 +]
 +
 +[[package]]
 +name = "scopeguard"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "semver"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "semver-parser"
-+version = "0.7.0"
++version = "1.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 +
 +[[package]]
 +name = "serde"
-+version = "1.0.99"
++version = "1.0.125"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
 +dependencies = [
-+ "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive",
 +]
 +
 +[[package]]
 +name = "serde_derive"
-+version = "1.0.99"
++version = "1.0.125"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
 +dependencies = [
-+ "proc-macro2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote 1.0.9",
++ "syn 1.0.67",
 +]
 +
 +[[package]]
 +name = "serde_json"
-+version = "1.0.40"
++version = "1.0.64"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
 +dependencies = [
-+ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa",
++ "ryu",
++ "serde",
 +]
 +
 +[[package]]
 +name = "smallvec"
-+version = "0.6.10"
++version = "1.6.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
 +
 +[[package]]
 +name = "strsim"
 +version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 +
 +[[package]]
 +name = "structopt"
 +version = "0.1.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "783cb22d520b177a3772e520d04a3c7970d51c3b647ba80739f99be01131b54f"
 +dependencies = [
-+ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clap",
 +]
 +
 +[[package]]
 +name = "structopt-derive"
 +version = "0.1.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4da119c9a7a1eccb7c6de0c1eb3f7ed1c11138624d092b3687222aeed8f1375c"
 +dependencies = [
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.3.15",
++ "syn 0.11.11",
 +]
 +
 +[[package]]
 +name = "syn"
 +version = "0.11.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
 +dependencies = [
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.3.15",
++ "synom",
++ "unicode-xid 0.0.4",
 +]
 +
 +[[package]]
 +name = "syn"
-+version = "0.15.44"
++version = "1.0.67"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6498a9efc342871f91cc2d0d694c674368b4ceb40f62b65a7a08c3792935e702"
 +dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "1.0.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote 1.0.9",
++ "unicode-xid 0.2.1",
 +]
 +
 +[[package]]
 +name = "synom"
 +version = "0.11.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
 +dependencies = [
-+ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.0.4",
 +]
 +
 +[[package]]
 +name = "tempdir"
 +version = "0.3.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
 +dependencies = [
-+ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.4.6",
++ "remove_dir_all",
 +]
 +
 +[[package]]
 +name = "tempfile"
 +version = "2.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0"
 +dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "libc",
++ "rand 0.3.23",
++ "redox_syscall 0.1.57",
++ "winapi 0.2.8",
 +]
 +
 +[[package]]
 +name = "tempfile"
-+version = "3.1.0"
++version = "3.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
++ "libc",
++ "rand 0.8.3",
++ "redox_syscall 0.2.5",
++ "remove_dir_all",
++ "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "textwrap"
 +version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
 +dependencies = [
-+ "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width",
 +]
 +
 +[[package]]
 +name = "thread-id"
 +version = "2.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"
 +dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "libc",
 +]
 +
 +[[package]]
 +name = "thread_local"
 +version = "0.2.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18cfdd5"
 +dependencies = [
-+ "thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread-id",
 +]
 +
 +[[package]]
 +name = "thread_local"
 +version = "0.3.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
 +dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static",
 +]
 +
 +[[package]]
 +name = "time"
-+version = "0.1.42"
++version = "0.1.43"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
++dependencies = [
++ "libc",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "tinyvec"
++version = "1.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023"
 +dependencies = [
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tinyvec_macros",
 +]
 +
 +[[package]]
++name = "tinyvec_macros"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
++
++[[package]]
 +name = "toml"
 +version = "0.4.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
 +dependencies = [
-+ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
 +]
 +
 +[[package]]
++name = "typenum"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06"
++
++[[package]]
 +name = "ucd-util"
-+version = "0.1.5"
++version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c85f514e095d348c279b1e5cd76795082cf15bd59b93207832abe0b1d8fed236"
 +
 +[[package]]
 +name = "unicode-bidi"
 +version = "0.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
 +dependencies = [
-+ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
 +]
 +
 +[[package]]
 +name = "unicode-normalization"
-+version = "0.1.8"
++version = "0.1.17"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
 +dependencies = [
-+ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tinyvec",
 +]
 +
 +[[package]]
 +name = "unicode-width"
-+version = "0.1.6"
++version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
 +
 +[[package]]
 +name = "unicode-xid"
 +version = "0.0.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
 +
 +[[package]]
 +name = "unicode-xid"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.2.0"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
 +
 +[[package]]
 +name = "url"
 +version = "1.7.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
 +dependencies = [
-+ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "idna",
++ "matches",
++ "percent-encoding",
 +]
 +
 +[[package]]
 +name = "utf8-ranges"
 +version = "0.1.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"
 +
 +[[package]]
 +name = "utf8-ranges"
 +version = "1.0.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba"
 +
 +[[package]]
 +name = "uuid"
 +version = "0.6.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
 +]
 +
 +[[package]]
 +name = "uuid"
-+version = "0.7.4"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
 +
 +[[package]]
 +name = "vcpkg"
-+version = "0.2.7"
++version = "0.2.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
 +
 +[[package]]
 +name = "vec_map"
-+version = "0.8.1"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 +
 +[[package]]
 +name = "wasi"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "wasm-bindgen"
-+version = "0.2.50"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasm-bindgen-macro 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-backend"
-+version = "0.2.50"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bumpalo 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasm-bindgen-shared 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro"
-+version = "0.2.50"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasm-bindgen-macro-support 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro-support"
-+version = "0.2.50"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasm-bindgen-backend 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasm-bindgen-shared 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-shared"
-+version = "0.2.50"
++version = "0.10.2+wasi-snapshot-preview1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
 +
 +[[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.8"
++version = "0.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 +dependencies = [
-+ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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-x86_64-pc-windows-gnu"
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[metadata]
-+"checksum aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66"
-+"checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
-+"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-+"checksum assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5"
-+"checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
-+"checksum autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875"
-+"checksum backtrace 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "1371048253fa3bac6704bfd6bbfc922ee9bdcee8881330d40f308b81cc5adc55"
-+"checksum backtrace-sys 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)" = "82a830b4ef2d1124a711c71d263c5abdc710ef8e907bd508c88be475cebc422b"
-+"checksum barrel 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f2016bcea86b2a1a807753dc2b6ba682fa24e14e50c7474f4b1a0330949c86fb"
-+"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
-+"checksum bcrypt 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4a6f09cde06fb2cd52a77123c36bfd1e8e60cf13a8bac6ba8f451dabff4644c8"
-+"checksum bigdecimal 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "679e21a6734fdfc63378aea80c2bf31e6ac8ced21ed33e1ee37f8f7bf33c2056"
-+"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
-+"checksum bumpalo 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad807f2fc2bf185eeb98ff3a901bd46dc5ad58163d0fa4577ba0d25674d71708"
-+"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
-+"checksum c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101"
-+"checksum cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)" = "8dae9c4b8fedcae85592ba623c4fd08cfdab3e3b72d6df780c6ead964a69bfff"
-+"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
-+"checksum chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "27429a03ca54100bf6bdc726c09adc46a74187ac93f9ce96dc7aaa9594ebf707"
-+"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-+"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-+"checksum derive-error-chain 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3c9ca9ade651388daad7c993f005d0d20c4f6fe78c1cdc93e95f161c6f5ede4a"
-+"checksum diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8d24935ba50c4a8dc375a0fd1f8a2ba6bdbdc4125713126a74b965d6a01a06d7"
-+"checksum diesel_derives 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "62a27666098617d52c487a41f70de23d44a1dc1f3aa5877ceba2790fb1f1cab4"
-+"checksum diesel_infer_schema 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7bea70d0798a3d8489e1d5493bb2111a1ab2da434191b9e9605f167c01a20680"
-+"checksum diesel_migrations 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3cde8413353dc7f5d72fa8ce0b99a560a359d2c5ef1e5817ca731cd9008f4c"
-+"checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8"
-+"checksum dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d6f0e2bb24d163428d8031d3ebd2d2bd903ad933205a97d0f18c7c1aade380f3"
-+"checksum env_logger 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "15abd780e45b3ea4f76b4e9a26ff4843258dd8a3eed2775a0e7368c2e7936c2f"
-+"checksum error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8"
-+"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-+"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
-+"checksum getrandom 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "fc344b02d3868feb131e8b5fe2b9b0a1cc42942679af493061fc13b853243872"
-+"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
-+"checksum infer_schema_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "90e390df38a4e5cb4337a76db5b736f239e08f3ab7e8e42a34548617f0113f64"
-+"checksum infer_schema_macros 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07b667b471ef99645989ceea451be288b6e669eeb8951d3f0fbd310677588ac6"
-+"checksum ipnetwork 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d1d8b990621b5b0806fac3dbf71d1833a4c0a9e25702d10bd8b2c629c7ae01c"
-+"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-+"checksum js-sys 0.3.27 (registry+https://github.com/rust-lang/crates.io-index)" = "1efc4f2a556c58e79c5500912e221dd826bec64ff4aabd8ce71ccef6da02d7d4"
-+"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-+"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+"checksum libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
-+"checksum libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fd6457c70bbff456d9fe49deaba35ec47c3e598bf8d7950ff0575ceb7a8a6ad1"
-+"checksum lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed946d4529956a20f2d63ebe1b69996d5a2137c91913fe3ebbeff957f5bca7ff"
-+"checksum lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc"
-+"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
-+"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-+"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-+"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"
-+"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
-+"checksum migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8089920229070f914b9ce9b07ef60e175b2b9bc2d35c3edd8bf4433604e863b9"
-+"checksum migrations_macros 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1664412abf7db2b8a6d58be42a38b099780cc542b5b350383b805d88932833fe"
-+"checksum mysqlclient-sys 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7e9637d93448044078aaafea7419aed69d301b4a12bcc4aa0ae856eb169bef85"
-+"checksum num-bigint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "57450397855d951f1a41305e54851b1a7b8f5d2e349543a02a2effe25459f718"
-+"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
-+"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
-+"checksum parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa7767817701cce701d5585b9c4db3cdd02086398322c1d7e8bf5094a96a2ce7"
-+"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
-+"checksum parking_lot_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cb88cb1cb3790baa6776844f968fea3be44956cf184fa1be5a03341f5491278c"
-+"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
-+"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
-+"checksum pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c1d2cfa5a714db3b5f24f0915e74fcdf91d09d496ba61329705dda7774d2af"
-+"checksum ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b"
-+"checksum pq-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "6ac25eee5a0582f45a67e837e350d784e7003bd29a5f460796772061ca49ffda"
-+"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-+"checksum proc-macro2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "175a40b9cf564ce9bf050654633dbf339978706b8ead1a907bb970b63185dd95"
-+"checksum quickcheck 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "02c2411d418cea2364325b18a205664f9ef8252e06b2e911db97c0b0d98b1406"
-+"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
-+"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-+"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
-+"checksum r2d2 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bc42ce75d9f4447fb2a04bbe1ed5d18dd949104572850ec19b164e274919f81b"
-+"checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
-+"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
-+"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-+"checksum rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d47eab0e83d9693d40f825f86948aa16eff6750ead4bdffc4ab95b8b3a7f052c"
-+"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-+"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
-+"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-+"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-+"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-+"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-+"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-+"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-+"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-+"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-+"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-+"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-+"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-+"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-+"checksum regex 0.1.80 (registry+https://github.com/rust-lang/crates.io-index)" = "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019402f"
-+"checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384"
-+"checksum regex-syntax 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db834957"
-+"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7"
-+"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
-+"checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a"
-+"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
-+"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
-+"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-+"checksum ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997"
-+"checksum safemem 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d2b08423011dae9a5ca23f07cf57dac3857f5c885d352b76f6d95f4aea9434d0"
-+"checksum scheduled-thread-pool 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bd07742e081ff6c077f5f6b283f12f32b9e7cc765b316160d66289b74546fbb3"
-+"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
-+"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-+"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-+"checksum serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)" = "fec2851eb56d010dc9a21b89ca53ee75e6528bab60c11e89d38390904982da9f"
-+"checksum serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)" = "cb4dc18c61206b08dc98216c98faa0232f4337e1e1b8574551d5bad29ea1b425"
-+"checksum serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704"
-+"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7"
-+"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-+"checksum structopt 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "783cb22d520b177a3772e520d04a3c7970d51c3b647ba80739f99be01131b54f"
-+"checksum structopt-derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4da119c9a7a1eccb7c6de0c1eb3f7ed1c11138624d092b3687222aeed8f1375c"
-+"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
-+"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
-+"checksum syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf"
-+"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
-+"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
-+"checksum tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0"
-+"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-+"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-+"checksum thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"
-+"checksum thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18cfdd5"
-+"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
-+"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
-+"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
-+"checksum ucd-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa9b3b49edd3468c0e6565d85783f51af95212b6fa3986a5500954f00b460874"
-+"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-+"checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426"
-+"checksum unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
-+"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
-+"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-+"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-+"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
-+"checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"
-+"checksum utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba"
-+"checksum uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363"
-+"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
-+"checksum vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95"
-+"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
-+"checksum wasi 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fd5442abcac6525a045cc8c795aedb60da7a2e5e89c7bf18a0d5357849bb23c7"
-+"checksum wasm-bindgen 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "dcddca308b16cd93c2b67b126c688e5467e4ef2e28200dc7dfe4ae284f2faefc"
-+"checksum wasm-bindgen-backend 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "f805d9328b5fc7e5c6399960fd1889271b9b58ae17bdb2417472156cc9fafdd0"
-+"checksum wasm-bindgen-macro 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "3ff88201a482abfc63921621f6cb18eb1efd74f136b05e5841e7f8ca434539e9"
-+"checksum wasm-bindgen-macro-support 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "6a433d89ecdb9f77d46fcf00c8cf9f3467b7de9954d8710c175f61e2e245bb0e"
-+"checksum wasm-bindgen-shared 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "d41fc1bc3570cdf8d108c15e014045fd45a95bb5eb36605f96a90461fc34027d"
-+"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-+"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-+"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-+"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/nixpkgs/pkgs/development/tools/diesel-cli/default.nix b/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
index bd8e71090c53..8a976f44bf72 100644
--- a/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, rustPlatform, fetchFromGitHub, openssl, pkg-config, Security
 , sqliteSupport ? true, sqlite
 , postgresqlSupport ? true, postgresql
-, mysqlSupport ? true, mysql, zlib, libiconv
+, mysqlSupport ? true, mariadb, zlib, libiconv
 }:
 
 assert lib.assertMsg (sqliteSupport == true || postgresqlSupport == true || mysqlSupport == true)
@@ -9,50 +9,55 @@ assert lib.assertMsg (sqliteSupport == true || postgresqlSupport == true || mysq
 
 let
   inherit (lib) optional optionals optionalString;
-  features = ''
-    ${optionalString sqliteSupport "sqlite"} \
-    ${optionalString postgresqlSupport "postgres"} \
-    ${optionalString mysqlSupport "mysql"} \
-  '';
+  features = optional sqliteSupport "sqlite"
+    ++ optional postgresqlSupport "postgres"
+    ++ optional mysqlSupport "mysql";
 in
 
 rustPlatform.buildRustPackage rec {
   pname = "diesel-cli";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "diesel-rs";
     repo = "diesel";
-    rev = "v${version}";
-    sha256 = "0wp4hvpl9cf8hw1jyz3z476k5blrh6srfpv36dw10bj126rz9pvb";
+    # diesel and diesel_cli are independently versioned. diesel_cli
+    # 1.4.1 first became available in diesel 1.4.5, but we can use
+    # a newer diesel tag.
+    rev = "v1.4.6";
+    sha256 = "0c8a2f250mllzpr20j7j0msbf2csjf9dj8g7j6cl04ifdg7gwb9z";
   };
 
   patches = [
-    # Allow warnings to fix many instances of `error: trait objects without an explicit `dyn` are deprecated`
-    #
-    # Remove this after https://github.com/diesel-rs/diesel/commit/9004d1c3fa12aaee84986bd3d893002491373f8c
-    # is in a release.
-    ./allow-warnings.patch
+    # Fixes:
+    #    Compiling diesel v1.4.6 (/build/source/diesel)
+    # error: this `#[deprecated]` annotation has no effect
+    #    --> diesel/src/query_builder/insert_statement/mod.rs:205:1
+    #     |
+    # 205 | / #[deprecated(
+    # 206 | |     since = "1.2.0",
+    # 207 | |     note = "Use `<&'a [U] as Insertable<T>>::Values` instead"
+    # 208 | | )]
+    #     | |__^ help: remove the unnecessary deprecation attribute
+    #     |
+    #     = note: `#[deny(useless_deprecated)]` on by default
+    ./fix-deprecated.patch
   ];
 
-  cargoBuildFlags = [ "--no-default-features --features \"${features}\"" ];
+  cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
   cargoPatches = [ ./cargo-lock.patch ];
-  cargoSha256 = "1vbb7r0dpmq8363i040bkhf279pz51c59kcq9v5qr34hs49ish8g";
+  cargoSha256 = "1vkwp861vm20agj0lkhnnxgg4vwg4d5clvvyzxrmm4y4yw46cdl2";
 
   nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [ openssl ]
     ++ optional stdenv.isDarwin Security
     ++ optional (stdenv.isDarwin && mysqlSupport) libiconv
     ++ optional sqliteSupport sqlite
     ++ optional postgresqlSupport postgresql
-    ++ optionals mysqlSupport [ mysql zlib ];
+    ++ optionals mysqlSupport [ mariadb zlib ];
 
-  # We must `cd diesel_cli`, we cannot use `--package diesel_cli` to build
-  # because --features fails to apply to the package:
-  # https://github.com/rust-lang/cargo/issues/5015
-  # https://github.com/rust-lang/cargo/issues/4753
-  preBuild = "cd diesel_cli";
-  postBuild = "cd ..";
+  buildAndTestSubdir = "diesel_cli";
 
   checkPhase = optionalString sqliteSupport ''
     (cd diesel_cli && cargo check --features sqlite)
@@ -65,7 +70,7 @@ rustPlatform.buildRustPackage rec {
 
   # Fix the build with mariadb, which otherwise shows "error adding symbols:
   # DSO missing from command line" errors for libz and libssl.
-  NIX_LDFLAGS = lib.optionalString mysqlSupport "-lz -lssl -lcrypto";
+  NIX_LDFLAGS = optionalString mysqlSupport "-lz -lssl -lcrypto";
 
   meta = with lib; {
     description = "Database tool for working with Rust projects that use Diesel";
diff --git a/nixpkgs/pkgs/development/tools/diesel-cli/fix-deprecated.patch b/nixpkgs/pkgs/development/tools/diesel-cli/fix-deprecated.patch
new file mode 100644
index 000000000000..3f50990979f6
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/diesel-cli/fix-deprecated.patch
@@ -0,0 +1,10 @@
+diff --git a/diesel/src/query_builder/insert_statement/mod.rs b/diesel/src/query_builder/insert_statement/mod.rs
+index b6bb34df9d..7486eb7a59 100644
+--- a/diesel/src/query_builder/insert_statement/mod.rs
++++ b/diesel/src/query_builder/insert_statement/mod.rs
+@@ -1,3 +1,5 @@
++#![allow(useless_deprecated)]
++
+ mod column_list;
+ mod insert_from_select;
+ 
diff --git a/nixpkgs/pkgs/development/tools/dive/default.nix b/nixpkgs/pkgs/development/tools/dive/default.nix
index 07ca12cc9cc9..3b04c0fb8992 100644
--- a/nixpkgs/pkgs/development/tools/dive/default.nix
+++ b/nixpkgs/pkgs/development/tools/dive/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dive";
-  version = "0.9.2";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "wagoodman";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1v69xbkjmyzm5g4wi9amjk65fs4qgxkqc0dvq55vqjigzrranp22";
+    sha256 = "sha256-1pmw8pUlek5FlI1oAuvLSqDow7hw5rw86DRDZ7pFAmA=";
   };
 
-  vendorSha256 = "0219q9zjc0i6fbdngqh0wjpmq8wj5bjiz5dls0c1aam0lh4vwkhc";
+  vendorSha256 = "sha256-0gJ3dAPoilh3IWkuesy8geNsuI1T0DN64XvInc9LvlM=";
 
   doCheck = false;
 
@@ -25,6 +25,6 @@ buildGoModule rec {
     description = "A tool for exploring each layer in a docker image";
     homepage = "https://github.com/wagoodman/dive";
     license = licenses.mit;
-    maintainers = with maintainers; [ marsam spacekookie ];
+    maintainers = with maintainers; [ marsam spacekookie SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/dockle/default.nix b/nixpkgs/pkgs/development/tools/dockle/default.nix
index c20e2866dc7e..5ecaddc6f1bc 100644
--- a/nixpkgs/pkgs/development/tools/dockle/default.nix
+++ b/nixpkgs/pkgs/development/tools/dockle/default.nix
@@ -2,30 +2,35 @@
 
 buildGoModule rec {
   pname = "dockle";
-  version = "0.3.1";
+  version = "0.3.11";
 
   src = fetchFromGitHub {
     owner = "goodwithtech";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Zc2ZlyeWdRvyuJLDDTONfh0/q+HKR4lNtSFMjgJWrRY=";
+    sha256 = "sha256-TAV+bdHURclrwM0ByfbM2S4GdAnHrwclStyUlGraOpw=";
   };
 
-  vendorSha256 = "sha256-4IJKXcnMXBqoEjsV4Xg2QYvKwxDDUjcZtrj9IRuT6i4=";
+  vendorSha256 = "sha256-npbUE3ch8TamW0aikdKuFElE4YDRKwNVUscuvmlQxl4=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ btrfs-progs lvm2 ];
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-s"
-    "-w"
-    "-X main.version=${version}"
-  ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X main.version=${version}")
+  '';
 
   preCheck = ''
     # Remove tests that use networking
-    rm pkg/scanner/scan_test.go pkg/utils/fetch_test.go
+    rm pkg/scanner/scan_test.go
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/dockle --help
+    $out/bin/dockle --version | grep "dockle version ${version}"
+    runHook postInstallCheck
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/doctl/default.nix b/nixpkgs/pkgs/development/tools/doctl/default.nix
index 4d05bd3ed114..227834da97fc 100644
--- a/nixpkgs/pkgs/development/tools/doctl/default.nix
+++ b/nixpkgs/pkgs/development/tools/doctl/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.55.0";
+  version = "1.58.0";
 
   vendorSha256 = null;
 
@@ -32,7 +32,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-vhg5X8H4VegSDORtj1rgNKlWQo1H1e/vvO01LJkVK+A=";
+    sha256 = "sha256-zOEd7e9OgkQxVaHIw9LZJ7ufl2sNpMnTTM3KetiWl+w=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix b/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
new file mode 100644
index 000000000000..72b5364eb45d
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
@@ -0,0 +1,94 @@
+{ lib
+, fetchFromGitLab
+, fetchpatch
+, meson
+, ninja
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "gi-docgen";
+  version = "2021.2";
+
+  format = "other";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "ebassi";
+    repo = pname;
+    rev = version;
+    sha256 = "17swx4s60anfyyb6dcsl8fq3s0j9cy54qcw0ciq4qj59d4039w5h";
+  };
+
+  patches = [
+    # Add pkg-config file so that Meson projects can find this.
+    # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/26
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/jtojnar/gi-docgen/commit/d65ed2e4827c4129d26e3c1df9a48054b4e72c50.patch";
+      sha256 = "BEefcHiAd/HTW5zo39J2WtfQjGXUkNFB6MDJj8/Ge80=";
+    })
+
+    # Name generated devhelp files correctly.
+    # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/27
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/ebassi/gi-docgen/commit/7c4de72f55cbce5670c3a6a1451548e97e5f07f7.patch";
+      sha256 = "ov/PvrZzKmCzw7nHJkbeLCnhtUVw1UbZQjFrWT3AtVg=";
+    })
+
+    # Fix broken link in Devhelp TOC.
+    # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/28
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/ebassi/gi-docgen/commit/56f0e6f8b4bb9c92d635df60aa5d68f55b036711.patch";
+      sha256 = "5gFGiO9jPpkyZBL4qtWEotE5jY3sCGFGUGN/Fb6jZ+0=";
+    })
+
+    # Devhelp does not like subsections without links.
+    # https://gitlab.gnome.org/GNOME/devhelp/-/issues/28
+    (fetchpatch {
+      # Only visual but needed for the other two to apply.
+      # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/28
+      url = "https://gitlab.gnome.org/ebassi/gi-docgen/commit/7f67fad5107b73489cb7bffca49177d9ad78e422.patch";
+      sha256 = "OKbC690nJsl1ckm/y9eeKDYX6AEClsNvIFy7DK+JYEc=";
+    })
+    # Add links to index.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/ebassi/gi-docgen/commit/f891cc5fd481bc4180eec144d14f32c15c91833b.patch";
+      sha256 = "Fcnvdgxei+2ulGoWoCZ8WFrNy01tlNXMkHru3ArGHVQ=";
+    })
+    # Use different link for each symbol type name.
+    # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/29
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/jtojnar/gi-docgen/commit/08dcc31f62be1a5af9bd9f8f702f321f4b5cffde.patch";
+      sha256 = "vAT8s7zQ9zCoZWK+6PsxcD5/48ZAfIOl4RSNljRCGWQ=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+  ];
+
+  pythonPath = with python3.pkgs; [
+    jinja2
+    markdown
+    markupsafe
+    pygments
+    toml
+    typogrify
+  ];
+
+  doCheck = false; # no tests
+
+  postFixup = ''
+    # Do not propagate Python
+    substituteInPlace $out/nix-support/propagated-build-inputs \
+      --replace "${python3}" ""
+  '';
+
+  meta = with lib; {
+    description = "Documentation generator for GObject-based libraries";
+    homepage = "https://gitlab.gnome.org/ebassi/gi-docgen";
+    license = licenses.asl20; # OR GPL-3.0-or-later
+    maintainers = teams.gnome.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix b/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
index d82c288e5aad..e74a6b9c3c6a 100644
--- a/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -5,7 +5,7 @@
 , pkg-config
 , python3
 , docbook_xml_dtd_43
-, docbook_xsl
+, docbook-xsl-nons
 , libxslt
 , gettext
 , gnome3
@@ -14,7 +14,9 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gtk-doc";
-  version = "1.33.1";
+  version = "1.33.2";
+
+  outputDevdoc = "out";
 
   format = "other";
 
@@ -23,15 +25,13 @@ python3.pkgs.buildPythonApplication rec {
     owner = "GNOME";
     repo = pname;
     rev = version;
-    sha256 = "L9CjhZ60F42xbo50x7cdKfJrav/9mf38pff8S4xkEVo=";
+    sha256 = "A6OXpazrJ05SUIO1ZPVN0xHTXOSov8UnPvUolZAv/Iw=";
   };
 
   patches = [
     passthru.respect_xml_catalog_files_var_patch
   ];
 
-  outputDevdoc = "out";
-
   nativeBuildInputs = [
     pkg-config
     gettext
@@ -42,7 +42,7 @@ python3.pkgs.buildPythonApplication rec {
 
   buildInputs = [
     docbook_xml_dtd_43
-    docbook_xsl
+    docbook-xsl-nons
     libxslt
   ] ++ lib.optionals withDblatex [
     dblatex
@@ -50,7 +50,6 @@ python3.pkgs.buildPythonApplication rec {
 
   pythonPath = with python3.pkgs; [
     pygments # Needed for https://gitlab.gnome.org/GNOME/gtk-doc/blob/GTK_DOC_1_32/meson.build#L42
-    (anytree.override { withGraphviz = false; })
     lxml
   ];
 
@@ -79,8 +78,8 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tools to extract documentation embedded in GTK and GNOME source code";
-    homepage = "https://www.gtk.org/gtk-doc";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ pSub worldofpeace ];
+    homepage = "https://gitlab.gnome.org/GNOME/gtk-doc";
+    license = licenses.gpl2Plus;
+    maintainers = teams.gnome.members ++ (with maintainers; [ pSub ]);
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix b/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
index c8e6cafa27af..68be931aa444 100644
--- a/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdsh";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "zimbatm";
     repo = "mdsh";
     rev = "v${version}";
-    sha256 = "02xslf5ssmyklbfsif2d7yk5aaz08n5w0dqiid6v4vlr2mkqcpjl";
+    sha256 = "1ki6w3qf8ipcf7ch5120mj16vs7yan8k9zjd25v8x6vbsd1iccgy";
   };
 
-  cargoSha256 = "118ykkqlf0x6gcgywx4pg3qawfhfr5q5f51gvrw9s302c1lmgk3g";
+  cargoSha256 = "10iqypz8hfyzy1xd78r39z2waa728d97kfnf1bbx8fr4a4pzan7y";
 
   meta = with lib; {
     description = "Markdown shell pre-processor";
diff --git a/nixpkgs/pkgs/development/tools/drm_info/default.nix b/nixpkgs/pkgs/development/tools/drm_info/default.nix
index 86d55ab07804..26124b1054fb 100644
--- a/nixpkgs/pkgs/development/tools/drm_info/default.nix
+++ b/nixpkgs/pkgs/development/tools/drm_info/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "drm_info";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "ascent12";
     repo = "drm_info";
     rev = "v${version}";
-    sha256 = "0s4zp8xz21zcpinbcwdvg48rf0xr7rs0dqri28q093vfmllsk36f";
+    sha256 = "sha256-UTDYLe3QezPCyG9CIp+O+KX716JDTL9mn+OEjjyTwlg=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/nixpkgs/pkgs/development/tools/dt-schema/default.nix b/nixpkgs/pkgs/development/tools/dt-schema/default.nix
index 3d420bf19018..7f439d9b59e8 100644
--- a/nixpkgs/pkgs/development/tools/dt-schema/default.nix
+++ b/nixpkgs/pkgs/development/tools/dt-schema/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "dtschema";
-  version = "2020.12";
+  version = "2021.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01de2598075909f2afb2d45277d0358645066f5bbb1770fca5f1d6f399846924";
+    sha256 = "d9f88f069068dc5dc7e895785d7172d260cbbc34cab3b52704b20e89b80c6de8";
   };
 
   nativeBuildInputs = [ setuptools_scm git ];
diff --git a/nixpkgs/pkgs/development/tools/dtools/default.nix b/nixpkgs/pkgs/development/tools/dtools/default.nix
index 1c1604db654a..7a994df51b40 100644
--- a/nixpkgs/pkgs/development/tools/dtools/default.nix
+++ b/nixpkgs/pkgs/development/tools/dtools/default.nix
@@ -1,22 +1,22 @@
-{stdenv, lib, fetchFromGitHub, dmd, curl}:
+{stdenv, lib, fetchFromGitHub, ldc, curl}:
 
 stdenv.mkDerivation rec {
   pname = "dtools";
-  version = "2.085.1";
+  version = "2.095.1";
 
   srcs = [
     (fetchFromGitHub {
       owner = "dlang";
       repo = "dmd";
       rev = "v${version}";
-      sha256 = "0ccidfcawrcwdpfjwjiln5xwr4ffp8i2hwx52p8zn3xmc5yxm660";
+      sha256 = "sha256:0faca1y42a1h16aml4lb7z118mh9k9fjx3xlw3ki5f1h3ln91xhk";
       name = "dmd";
     })
     (fetchFromGitHub {
       owner = "dlang";
       repo = "tools";
       rev = "v${version}";
-      sha256 = "1x85w4k2zqgv2bjbvhschxdc6kq8ygp89h499cy8rfqm6q23g0ws";
+      sha256 = "sha256:0rdfk3mh3fjrb0h8pr8skwlq6ac9hdl1fkrkdl7n1fa2806b740b";
       name = "dtools";
     })
   ];
@@ -27,14 +27,13 @@ stdenv.mkDerivation rec {
       mv dmd dtools
       cd dtools
 
-      substituteInPlace posix.mak --replace "\$(DMD) \$(DFLAGS) -unittest -main -run rdmd.d" ""
   '';
 
-  nativeBuildInputs = [ dmd ];
+  nativeBuildInputs = [ ldc ];
   buildInputs = [ curl ];
 
   makeCmd = ''
-    make -f posix.mak DMD_DIR=dmd DMD=${dmd.out}/bin/dmd CC=${stdenv.cc}/bin/cc
+    make -f posix.mak all DMD_DIR=dmd DMD=${ldc.out}/bin/ldmd2 CC=${stdenv.cc}/bin/cc
   '';
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix b/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
index 633e13d25f77..608c721caf00 100644
--- a/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
+++ b/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
@@ -1,5 +1,4 @@
-{ buildEnv
-, fetchurl
+{ fetchurl
 , fontconfig
 , freetype
 , glib
@@ -80,6 +79,7 @@ stdenv.mkDerivation rec {
     mv $out/share/pixmaps/eclipse64.png $out/share/pixmaps/eclipse.png
   '';
 
+  nativeBuildInputs = [ unzip ];
   buildInputs = [
     fontconfig
     freetype
@@ -92,7 +92,6 @@ stdenv.mkDerivation rec {
     libXtst
     makeWrapper
     zlib
-    unzip
     shared-mime-info
     webkitgtk
   ];
diff --git a/nixpkgs/pkgs/development/tools/electron/default.nix b/nixpkgs/pkgs/development/tools/electron/default.nix
index e906936d2e72..518eef2d1a0d 100644
--- a/nixpkgs/pkgs/development/tools/electron/default.nix
+++ b/nixpkgs/pkgs/development/tools/electron/default.nix
@@ -14,6 +14,7 @@
 , mesa
 , libxkbcommon
 , libappindicator-gtk3
+, libxshmfence
 }@args:
 
 let
@@ -21,7 +22,7 @@ let
 in
 rec {
 
-  electron = electron_11;
+  electron = electron_12;
 
   electron_3 = mkElectron "3.1.13" {
     x86_64-linux = "1psmbplz6jhnnf6hmfhxbmmhn4n1dpnhzbc12pxn645xhfpk9ark";
@@ -76,30 +77,39 @@ rec {
     headers = "18frb1z5qkyff5z1w44mf4iz9aw9j4lq0h9yxgfnp33zf7sl9qb5";
   };
 
-  electron_9 = mkElectron "9.4.3" {
-    x86_64-linux = "7744ec8af6512e569d600d7fd8e9105d3ca5ac7b6f54390dd553edbd7816289f";
-    x86_64-darwin = "68c67a32f149618d629eb4a8a8044b98dc6ceedc16d46ff20782fcccad72fc44";
-    i686-linux = "904955ee8365b95439fb4643844ac868b59525ed230a76c8e0395c0aa5719813";
-    armv7l-linux = "5cfb3ae97a75d33d4b102d75944610dd56a566ee98186a030eb5bdbbd3d76323";
-    aarch64-linux = "8afa647e4b5b1e290d5d852c7420e82916ba740e3e5576599076dc139cd1d556";
-    headers = "0712160j1yvl9fmj2vm9lznkwnmji1hjzyicb4vis52lbrwx820l";
+  electron_9 = mkElectron "9.4.4" {
+    x86_64-linux = "781d6ca834d415c71078e1c2c198faba926d6fce19e31448bbf4450869135450";
+    x86_64-darwin = "f41c0bf874ddbba00c3d6989d07f74155a236e2d5a3eaf3d1d19ef8d3eb2256c";
+    i686-linux = "40e37f8f908a81c9fac1073fe22309cd6df2d68e685f83274c6d2f0959004187";
+    armv7l-linux = "2dfe3e21d30526688cc3d3215d06dfddca597a2cb62ff0c9d0d5f33d3e464a33";
+    aarch64-linux = "f1145e9a1feb5f2955e5f5565962423ac3c52ffe45ccc3b96c6ca485fa35bf27";
+    headers = "0yx8mkrm15ha977hzh7g2sc5fab9sdvlk1bk3yxignhxrqqbw885";
   };
 
-  electron_10 = mkElectron "10.3.2" {
-    x86_64-linux = "e28748c813ddc69c611a47961d68ae2dc3761f547c509d9ce2c56c2c6eadc9a2";
-    x86_64-darwin = "3120ae3eab94d9102003f6fa2dc833a0629295c7ec0e154b35f61116d55a4954";
-    i686-linux = "13f42ad6ea0fa41553b8f50323d0baaa29272220a2e81ca5293ad4439cda1d79";
-    armv7l-linux = "0e571f63697b8985782175af07bdd7069886195d9ccd7fc5c04578b4144ea922";
-    aarch64-linux = "173551fa6cd3ca1fb52fab3bd3e7f0ffd3e4758e78a5174e6d636a45a282ab8f";
-    headers = "00x71b18prc55pv3sykbzpmkxf8yjzf2cdnlqif993jab8fbwmqn";
+  electron_10 = mkElectron "10.4.2" {
+    x86_64-linux = "3d613b413f01c8af1600be42c82941761452407e1160125eca60feec0d7dd0c0";
+    x86_64-darwin = "87b18811d165f2fd64606ae13a567b737f54bd41c7e2204a047a3532f4fa2d9c";
+    i686-linux = "297083ca9b21554ea1f729ed17c0c8b13aaea24e77194f9c1b340489fcfc0fa6";
+    armv7l-linux = "3d93ec220824cce5d99b3a7511604b89c63935bd1130fc64ce08b8436e34c096";
+    aarch64-linux = "0060e37eada91bac51945ae325ab04309438609089d31ab3f8bbfda73cc26166";
+    headers = "13cpkblkvhvd3sww8n1gw4rhva84x2fkkg81yr3n2mb0virlfgpn";
   };
 
-  electron_11 = mkElectron "11.2.3" {
-    x86_64-linux = "9249901fd7b85a7f952abe0df2ce83a566df612ef3ee15cce488cb1d751bc94d";
-    x86_64-darwin = "e0b2784b25fd4a5ee4041d508d59bbb8386039c7ea7e9cea3e547c672f052b60";
-    i686-linux = "78b2dd2d7b5e891e695cd31c28ac5fa1e99967ff538b944aa9d1ec224e82a964";
-    armv7l-linux = "06178cd44792c7dceb72286460948cb7f575acba4e46cf72c154f243e93eaf65";
-    aarch64-linux = "e23f2572a6a66779aff5d7cf25149fd343b0eef420fbfa3e8c3742284ce6e613";
-    headers = "1yjc7zl7l5n3l2s2x3lbic2lc527alcd4mnwih7pjl5dhvdgmbm9";
+  electron_11 = mkElectron "11.4.1" {
+    x86_64-linux = "3efd3d3b5a9f71323320288aece65fcec89ea0331c3d6d3afc2495d3b0dc95d3";
+    x86_64-darwin = "6ff91613c51b2ebaf280eb86b826f47d62639081a0f38c2012c428a17619a163";
+    i686-linux = "513e1bc7a3e546dc0e712836886ac89c9f76bb7fb1e4b7a1f9d9cbc7347d8569";
+    armv7l-linux = "838fc96d90cfcc5e1e892287008f9d9d2dbe27f3d4cf2479e6275ecdd140fb65";
+    aarch64-linux = "a3de4208b5033a19ffa9dd8130d440909b181c0ef57cb51c8f9c8dbbb1267a26";
+    headers = "1bpsmmlxl4gk9yn5w7f8m6g8k1gmvwk0jwpqlk5islpkcy6x7107";
+  };
+
+  electron_12 = mkElectron "12.0.2" {
+    x86_64-linux = "fc3ff888d8cd4ada8368420c8951ed1b5ad78919bdcb688abe698d00e12a2e0a";
+    x86_64-darwin = "766ca8f8adc4535db3069665ea8983979ea79dd5ec376e1c298f858b420ec58f";
+    i686-linux = "78ab55db275b85210c6cc14ddf41607fbd5cefed93ef4d1b6b74630b0841b23c";
+    armv7l-linux = "8be8c6ea05da669d79179c5969ddee853710a1dd44f86e8f3bbe1167a2daf13c";
+    aarch64-linux = "9ef70ab9347be63555784cac99efbaff1ef2d02dcc79070d7bccd18c38de87ef";
+    headers = "07095b5rylilbmyd0syamm6fc4pngazldj5jgm7blgirdi8yzzd2";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/electron/generic.nix b/nixpkgs/pkgs/development/tools/electron/generic.nix
index e29064e673ad..7d4593dee3c5 100644
--- a/nixpkgs/pkgs/development/tools/electron/generic.nix
+++ b/nixpkgs/pkgs/development/tools/electron/generic.nix
@@ -14,6 +14,7 @@
 , mesa
 , libxkbcommon
 , libappindicator-gtk3
+, libxshmfence
 }:
 
 version: hashes:
@@ -60,6 +61,7 @@ let
     [ libuuid at-spi2-atk at-spi2-core libappindicator-gtk3 ]
     ++ optionals (! versionOlder version "9.0.0") [ libdrm mesa ]
     ++ optionals (! versionOlder version "11.0.0") [ libxkbcommon ]
+    ++ optionals (! versionOlder version "12.0.0") [ libxshmfence ]
   );
 
   linux = {
@@ -95,7 +97,7 @@ let
   };
 
   darwin = {
-    buildInputs = [ unzip ];
+    nativeBuildInputs = [ unzip ];
 
     buildCommand = ''
       mkdir -p $out/Applications
diff --git a/nixpkgs/pkgs/development/tools/errcheck/default.nix b/nixpkgs/pkgs/development/tools/errcheck/default.nix
index eb9589f723da..a387c14c0a5c 100644
--- a/nixpkgs/pkgs/development/tools/errcheck/default.nix
+++ b/nixpkgs/pkgs/development/tools/errcheck/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "errcheck";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "kisielk";
     repo = "errcheck";
     rev = "v${version}";
-    sha256 = "sha256-ZmocFXtg+Thdup+RqDYC/Td3+m1nS0FydZecfsWXIzI=";
+    sha256 = "sha256-Przf2c2jFNdkUq7IOUD7ChXHiSayAz4xTsNzajycYZ0=";
   };
 
   vendorSha256 = "sha256-rluaBdW+w2zPThELlBwX/6LXDgc2aIk/ucbrsrABpVc=";
diff --git a/nixpkgs/pkgs/development/tools/fedpkg/default.nix b/nixpkgs/pkgs/development/tools/fedpkg/default.nix
index d9633e88f346..2ba0f494c216 100644
--- a/nixpkgs/pkgs/development/tools/fedpkg/default.nix
+++ b/nixpkgs/pkgs/development/tools/fedpkg/default.nix
@@ -1,4 +1,6 @@
-{ lib, buildPythonApplication, buildPythonPackage, isPy3k, fetchurl, rpkg, offtrac, urlgrabber, pyopenssl, python_fedora }:
+{ lib, python2Packages, fetchurl }:
+
+with python2Packages;
 
 let
   fedora_cert = buildPythonPackage rec {
diff --git a/nixpkgs/pkgs/development/tools/fission/default.nix b/nixpkgs/pkgs/development/tools/fission/default.nix
new file mode 100644
index 000000000000..133db2d9ff00
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/fission/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "fission";
+  version = "1.12.0";
+
+  src = fetchFromGitHub {
+    owner = "fission";
+    repo = "fission";
+    rev = version;
+    sha256 = "0izvkjd7ydcxhr6zmgrbfm3ybz2kf4p27099lr07gd4x7c6xxmqr";
+  };
+
+  vendorSha256 = "12clw0wy4lypf45imqnabj39yxqpi348csr4m5d0d1rksxgvwngq";
+
+  buildFlagsArray = "-ldflags=-s -w -X info.Version=${version}";
+
+  subPackages = [ "cmd/fission-cli" ];
+
+  postInstall = ''
+    ln -s $out/bin/fission-cli $out/bin/fission
+  '';
+
+  meta = with lib; {
+    description = "The cli used by end user to interact Fission";
+    homepage = "https://fission.io";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ neverbehave ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix b/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
index dd9282c68961..75aa8a00f00c 100644
--- a/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
+++ b/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
@@ -46,13 +46,13 @@ let
   installed_test_metadir = "${placeholder "installedTests"}/share/installed-tests/flatpak-builder";
 in stdenv.mkDerivation rec {
   pname = "flatpak-builder";
-  version = "1.0.11";
+  version = "1.0.12";
 
   outputs = [ "out" "doc" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak-builder/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "EYNLdrvSs8S/GCYy0jGsnP1+C988y1j7WzcLfczM1Ew=";
+    sha256 = "sha256-R4DBuOCDj/tk6WOb14AUF5ZP2BjHxtXpr8pNVRHe0sg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/flawfinder/default.nix b/nixpkgs/pkgs/development/tools/flawfinder/default.nix
new file mode 100644
index 000000000000..28805b4abe43
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/flawfinder/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchurl
+, installShellFiles
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "flawfinder";
+  version = "2.0.15";
+
+  src = fetchurl {
+    url = "https://dwheeler.com/flawfinder/flawfinder-${version}.tar.gz";
+    sha256 = "01j4szy8gwvikrfzfayfayjnc1za0jxsnxp5fsa6d06kn69wyr8a";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = [ python3 ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp ${pname} $out/bin
+    installManPage flawfinder.1
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tool to examines C/C++ source code for security flaws";
+    homepage = "https://dwheeler.com/flawfinder/";
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/flyway/default.nix b/nixpkgs/pkgs/development/tools/flyway/default.nix
index 4f2bd805260c..f581806433f6 100644
--- a/nixpkgs/pkgs/development/tools/flyway/default.nix
+++ b/nixpkgs/pkgs/development/tools/flyway/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, jre_headless, makeWrapper }:
   let
-    version = "7.5.2";
+    version = "7.5.4";
   in
     stdenv.mkDerivation {
       pname = "flyway";
       inherit version;
       src = fetchurl {
         url = "https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/${version}/flyway-commandline-${version}.tar.gz";
-        sha256 = "sha256-oO7k6JOKUm11OYNN+tH/zqF9ucgrsnF4PcphT8+xnS8=";
+        sha256 = "sha256-WU8j1NSf2KfA/HJWFtMLOZ3t5nxW4sU713e6qEEhZ0I=";
       };
       nativeBuildInputs = [ makeWrapper ];
       dontBuild = true;
diff --git a/nixpkgs/pkgs/development/tools/fmbt/default.nix b/nixpkgs/pkgs/development/tools/fmbt/default.nix
index e6bb20327415..852f00bf69c1 100644
--- a/nixpkgs/pkgs/development/tools/fmbt/default.nix
+++ b/nixpkgs/pkgs/development/tools/fmbt/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, python, autoreconfHook, pkg-config, makeWrapper
 , flex
-, gettext, libedit, glib, imagemagick, libxml2, boost, gnuplot, graphviz
+, gettext, libedit, glib, imagemagick6, libxml2, boost, gnuplot, graphviz
 , tesseract, gts, libXtst
 }:
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkg-config flex makeWrapper
     python.pkgs.wrapPython ];
 
-  buildInputs = [ python gettext libedit glib imagemagick libxml2 boost
+  buildInputs = [ python gettext libedit glib imagemagick6 libxml2 boost
     gnuplot graphviz tesseract gts
     ];
 
diff --git a/nixpkgs/pkgs/development/tools/galen/default.nix b/nixpkgs/pkgs/development/tools/galen/default.nix
index 00831c05691a..df7e58bde457 100644
--- a/nixpkgs/pkgs/development/tools/galen/default.nix
+++ b/nixpkgs/pkgs/development/tools/galen/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "13dq8cf0yy24vym6z7p8hb0mybgpcl4j5crsaq8a6pjfxz6d17mq";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   buildPhase = ''
   mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/development/tools/ginkgo/default.nix b/nixpkgs/pkgs/development/tools/ginkgo/default.nix
index c6ed583ce876..e5883501f819 100644
--- a/nixpkgs/pkgs/development/tools/ginkgo/default.nix
+++ b/nixpkgs/pkgs/development/tools/ginkgo/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "ginkgo";
-  version = "1.15.0";
+  version = "1.16.1";
 
   src = fetchFromGitHub {
     owner = "onsi";
     repo = "ginkgo";
     rev = "v${version}";
-    sha256 = "sha256-NvScoKnLr0herVrjEnij45yN0MxC/MoRJJHcy59rOuA=";
+    sha256 = "sha256-nlNft9jOp8V8ks32LOb4wUTkRrXJ5K49gbHuRmCKz/0=";
   };
-  vendorSha256 = "sha256-xBa2n2BV+aXPCZ3G+rFIqHtjcXfs1rDjKbmRzjaDSb8=";
+  vendorSha256 = "sha256-tS8YCGVOsfQp02vY6brmE3pxi70GG9DYcp1JDkcVG9Y=";
   doCheck = false;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix b/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
index 3fda533c5277..7f0db1f712c4 100644
--- a/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
+++ b/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-quick-stats";
-  version = "2.1.6";
+  version = "2.1.8";
 
   src = fetchFromGitHub {
     repo = "git-quick-stats";
     owner = "arzzen";
     rev = version;
-    sha256 = "sha256-l3Aftu1RkcDgzdzrKIAlziDgbjYfj5xLIbysS0a5JZw=";
+    sha256 = "sha256-sK8HOfeiV0xn540bU7inZl/hV6uzitJ4Szqk96a8DMc=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/github/github-release/default.nix b/nixpkgs/pkgs/development/tools/github/github-release/default.nix
index 81b125ac0585..4326d4bf71ca 100644
--- a/nixpkgs/pkgs/development/tools/github/github-release/default.nix
+++ b/nixpkgs/pkgs/development/tools/github/github-release/default.nix
@@ -1,40 +1,17 @@
-{ lib, stdenv, system, fetchurl }:
+{ buildGoPackage, fetchFromGitHub, lib }:
 
-let
-  linuxPredicate = system == "x86_64-linux";
-  bsdPredicate = system == "x86_64-freebsd";
-  darwinPredicate = system == "x86_64-darwin";
-  metadata = assert linuxPredicate || bsdPredicate || darwinPredicate;
-    if linuxPredicate then
-      { arch = "linux-amd64";
-        sha256 = "0p0qj911nmmdj0r7wx3363gid8g4bm3my6mj3d6s4mwgh9lfisiz";
-        archiveBinaryPath = "linux/amd64"; }
-    else if bsdPredicate then
-      { arch = "freebsd-amd64";
-        sha256 = "0g618y9n39j11l1cbhyhwlbl2gv5a2a122c1dps3m2wmv7yzq5hk";
-        archiveBinaryPath = "freebsd/amd64"; }
-    else
-      { arch = "darwin-amd64";
-        sha256 = "0l623fgnsix0y3f960bwx3dgnrqaxs21w5652kvaaal7dhnlgmwj";
-        archiveBinaryPath = "darwin/amd64"; };
-in stdenv.mkDerivation rec {
-  shortname = "github-release";
-  name = "${shortname}-${version}";
-  version = "0.7.2";
+buildGoPackage rec {
+  pname = "github-release";
+  version = "0.10.0";
 
-  src = fetchurl {
-    url = "https://github.com/aktau/github-release/releases/download/v${version}/${metadata.arch}-${shortname}.tar.bz2";
-    sha256 = metadata.sha256;
+  src = fetchFromGitHub {
+    owner = "github-release";
+    repo = "github-release";
+    rev = "v${version}";
+    sha256 = "sha256-J5Y0Kvon7DstTueCsoYvw6x4cOH/C1IaVArE0bXtZts=";
   };
 
-  buildInputs = [ ];
-
-  phases = [ "unpackPhase" "installPhase" ];
-
-  installPhase = ''
-    mkdir -p "$out/bin"
-    cp "${metadata.archiveBinaryPath}/github-release" "$out/bin/"
-  '';
+  goPackagePath = "github.com/github-release/github-release";
 
   meta = with lib; {
     description = "Commandline app to create and edit releases on Github (and upload artifacts)";
@@ -45,8 +22,8 @@ in stdenv.mkDerivation rec {
     '';
 
     license = licenses.mit;
-    homepage = "https://github.com/aktau/github-release";
-    maintainers = with maintainers; [ ardumont ];
+    homepage = "https://github.com/github-release/github-release";
+    maintainers = with maintainers; [ ardumont j03 ];
     platforms = with platforms; unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/gllvm/default.nix b/nixpkgs/pkgs/development/tools/gllvm/default.nix
index 78038440a96d..460f59dc3d0e 100644
--- a/nixpkgs/pkgs/development/tools/gllvm/default.nix
+++ b/nixpkgs/pkgs/development/tools/gllvm/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "gllvm";
-  version = "1.2.9";
+  version = "1.3.0";
 
   goPackagePath = "github.com/SRI-CSL/gllvm";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "SRI-CSL";
     repo = "gllvm";
     rev = "v${version}";
-    sha256 = "15cgngvd9mg057iz32fk5kcprcvvavahbvfvl5ds8x7shbm60g7s";
+    sha256 = "sha256-nu6PRFk+GoN1gT1RTbX6mTPZByAGf0bSsj2C5YriGp8=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/glpaper/default.nix b/nixpkgs/pkgs/development/tools/glpaper/default.nix
index 6b7b13437cc6..f6465d53cae0 100644
--- a/nixpkgs/pkgs/development/tools/glpaper/default.nix
+++ b/nixpkgs/pkgs/development/tools/glpaper/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchhg, meson, ninja, pkg-config, wlroots, wayland, wayland-protocols
+{ lib, stdenv, fetchFromSourcehut, meson, ninja, pkg-config, wlroots, wayland, wayland-protocols
 , libX11, libGL }:
 
-stdenv.mkDerivation {
-  name = "glpaper";
+stdenv.mkDerivation rec {
+  pname = "glpaper";
   version = "unstable-2020-10-11";
 
-  src = fetchhg {
-    url = "https://hg.sr.ht/~scoopta/glpaper";
+  src = fetchFromSourcehut {
+    owner = "~scoopta";
+    repo = pname;
+    vc = "hg";
     rev = "9e7ec7cd270af330039c395345c7d23c04682267";
     sha256 = "sha256-yBHRg6eg+PK/ixuM0MBty3RJY9qcemr3Dt+8SAitqnk=";
   };
diff --git a/nixpkgs/pkgs/development/tools/gnulib/default.nix b/nixpkgs/pkgs/development/tools/gnulib/default.nix
index 2a2ce1b190ff..7441d4018a85 100644
--- a/nixpkgs/pkgs/development/tools/gnulib/default.nix
+++ b/nixpkgs/pkgs/development/tools/gnulib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit }:
+{ lib, stdenv, fetchgit, python3 }:
 
 stdenv.mkDerivation {
   pname = "gnulib";
@@ -10,19 +10,26 @@ stdenv.mkDerivation {
     sha256 = "0hkg3nql8nsll0vrqk4ifda0v4kpi67xz42r8daqsql6c4rciqnw";
   };
 
-  dontFixup = true;
-  # no "make install", gnulib is a collection of source code
+  postPatch = ''
+    patchShebangs gnulib-tool.py
+  '';
+
+  buildInputs = [ python3 ];
+
   installPhase = ''
-    mkdir -p $out; mv * $out/
-    ln -s $out/lib $out/include
     mkdir -p $out/bin
+    cp -r * $out/
+    ln -s $out/lib $out/include
     ln -s $out/gnulib-tool $out/bin/
   '';
 
-  meta = {
+  # do not change headers to not update all vendored build files
+  dontFixup = true;
+
+  meta = with lib; {
     homepage = "https://www.gnu.org/software/gnulib/";
     description = "Central location for code to be shared among GNU packages";
-    license = lib.licenses.gpl3Plus;
-    platforms = lib.platforms.unix;
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix b/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix
new file mode 100644
index 000000000000..52b233817ab8
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go-containerregistry";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-3mvGHAPKDUmrQkBKwlxnF6PG0ZpZDqlM9SMkCyC5ytE=";
+  };
+
+  vendorSha256 = null;
+
+  subPackages = [ "cmd/crane" "cmd/gcrane" ];
+
+  buildFlagsArray = [
+    "-ldflags=-s -w -X github.com/google/go-containerregistry/cmd/crane/cmd.Version=${version} -X github.com/google/go-containerregistry/pkg/v1/remote/transport.Version=${version}"
+  ];
+
+  # NOTE: no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A tool for interacting with remote images and registries";
+    homepage = "https://github.com/google/go-containerregistry";
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/go-mockery/default.nix b/nixpkgs/pkgs/development/tools/go-mockery/default.nix
new file mode 100644
index 000000000000..a65a9276add4
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/go-mockery/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go-mockery";
+  version = "2.7.4";
+
+  src = fetchFromGitHub {
+    owner = "vektra";
+    repo = "mockery";
+    rev = "v${version}";
+    sha256 = "sha256-St8QgUZUU7THM9H8i7Z+bgKu9LhXhUqH/B14LGmDCn0=";
+  };
+
+  vendorSha256 = "sha256-//V3ia3YP1hPgC1ipScURZ5uXU4A2keoG6dGuwaPBcA=";
+
+  meta = with lib; {
+    homepage = "https://github.com/vektra/mockery";
+    description = "A mock code autogenerator for Golang";
+    maintainers = with maintainers; [ fbrs ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/go-protobuf/default.nix b/nixpkgs/pkgs/development/tools/go-protobuf/default.nix
index 1fa027ae72b9..b463ecd5dee8 100644
--- a/nixpkgs/pkgs/development/tools/go-protobuf/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-protobuf/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-protobuf";
-  version = "1.4.3";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "golang";
     repo = "protobuf";
     rev = "v${version}";
-    sha256 = "1kf1d7xmyjvy0z6j5czp6nqyvj9zrk6liv6znif08927xqfrzyln";
+    sha256 = "sha256-TYx7nAyUE70hoCNKnR74FzWhrQyWG17VPoKH3vR+qOM=";
   };
 
-  vendorSha256 = "04w9vhkrwb2zfqk73xmhignjyvjqmz1j93slkqp7v8jj2dhyla54";
+  vendorSha256 = "sha256-CcJjFMslSUiZMM0LLMM3BR53YMxyWk8m7hxjMI9tduE=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/go-swagger/default.nix b/nixpkgs/pkgs/development/tools/go-swagger/default.nix
index 94f9b6d8ebe8..2147ed00c77c 100644
--- a/nixpkgs/pkgs/development/tools/go-swagger/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-swagger/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-swagger";
-  version = "0.26.1";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "go-swagger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-gA7YpzroIP26u/kmbwlcYkWVfeJ8YDEAl0H9GGQrXA8=";
+    sha256 = "sha256-S3/sXmgogxhMv53Gd/ir6ScirYQtt5kn04ZfRiS6NoA=";
   };
 
-  vendorSha256 = "sha256-eRcE6ai7076HqTWRJ8zKoV6/PJRgUpKvKF+0T7MgLQE=";
+  vendorSha256 = "sha256-ABGjrMZdgsAaEhJlGbvbX77t7TsodraadNyItESMbEc=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/go-task/default.nix b/nixpkgs/pkgs/development/tools/go-task/default.nix
index c196f167ce0b..d2ea8a4f6bd5 100644
--- a/nixpkgs/pkgs/development/tools/go-task/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-task/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-task";
-  version = "2.8.1";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "task";
     rev = "v${version}";
-    sha256 = "1yf5s22q4hsxvgzrj4k6gbbq0whl5b9j12mbwimxaf53q535wy4q";
+    sha256 = "sha256-+JhU0DXSUbpaHWJYEgiUwsR8DucGRwkiNiKDyhJroqk=";
   };
 
-  vendorSha256 = null;
+  vendorSha256 = "sha256-pNKzqUtEIQs0TP387ACHfCv1RsMjZi7O8P1A8df+QtI=";
 
   doCheck = false;
 
@@ -22,7 +22,7 @@ buildGoModule rec {
   ];
 
   postInstall = ''
-    mv $out/bin/task $out/bin/go-task
+    ln -s $out/bin/task $out/bin/go-task
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/go-tools/default.nix b/nixpkgs/pkgs/development/tools/go-tools/default.nix
index 57e836d8f4ed..2bf5093e5e36 100644
--- a/nixpkgs/pkgs/development/tools/go-tools/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-tools/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "go-tools";
-  version = "2020.2.1";
+  version = "2020.2.3";
 
   src = fetchFromGitHub {
     owner = "dominikh";
     repo = "go-tools";
     rev = version;
-    sha256 = "0a1a4dhz33grwg892436bjhgp8sygrg8yhdhy8dh6i3l6n9dalfh";
+    sha256 = "17li8jbw3cpn59kpcl3j3r2an4wkx3fc81xn0j4xgbjpkxh9493n";
   };
 
   vendorSha256 = "081p008sb3lkc8j6sa6n42qi04za4a631kihrd4ca6aigwkgl3ak";
diff --git a/nixpkgs/pkgs/development/tools/gofumpt/default.nix b/nixpkgs/pkgs/development/tools/gofumpt/default.nix
index e55cea0895be..424942663393 100644
--- a/nixpkgs/pkgs/development/tools/gofumpt/default.nix
+++ b/nixpkgs/pkgs/development/tools/gofumpt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gofumpt";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xln0a5n8na3p6b7l8im3bh4ys5rr3k413ibzk8mnp471f5h1558";
+    sha256 = "sha256-MHNxJ9DPBWrLkaEEfXOmRqo2h2ugwgZT/SIe7bi3J2E=";
   };
 
-  vendorSha256 = "05qdwz1icl8in0j94gx9pgplidm2v29hsn4kgg5gw35bsbn1c7id";
+  vendorSha256 = "sha256-LR4W7NKrDP7Ke5NYDZPYorZI77upP5IksBFRFsPnDRc=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/golangci-lint/default.nix b/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
index 2e973e9a0b06..83bc3f473d32 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.36.0";
+  version = "1.39.0";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "sha256-AObZI104q+kOvV3/6aAusl5PMro1nbNUasvmJ4mRGz8=";
+    sha256 = "0c9yka27k4v1waijk7mn7k31l5a373sclykypflchy7xnlrsa18v";
   };
 
-  vendorSha256 = "sha256-jr8sYfonggAHqtq3A8YVuTqJu3/iIu0OgBEUWj6bq+A=";
+  vendorSha256 = "1685iv1lsal462c8xqvs76x9dwvbwazrak902j0p12s0fyb66lpl";
 
   doCheck = false;
 
@@ -19,7 +19,9 @@ buildGoModule rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=19700101-00:00:00" ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags=-s -w -X main.version=${version} -X main.commit=v${version} -X main.date=19700101-00:00:00")
+  '';
 
   postInstall = ''
     for shell in bash zsh; do
@@ -31,7 +33,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Fast linters Runner for Go";
     homepage = "https://golangci-lint.run/";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ anpryl manveru ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ anpryl manveru mic92 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/golint/default.nix b/nixpkgs/pkgs/development/tools/golint/default.nix
index 89b9f1464950..3187f793127e 100644
--- a/nixpkgs/pkgs/development/tools/golint/default.nix
+++ b/nixpkgs/pkgs/development/tools/golint/default.nix
@@ -1,11 +1,10 @@
-{ lib, buildGoPackage, fetchgit }:
+{ lib, buildGoModule, fetchgit }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "lint";
-  version = "20181026-${lib.strings.substring 0 7 rev}";
-  rev = "c67002cb31c3a748b7688c27f20d8358b4193582";
+  version = "20201208-${lib.strings.substring 0 7 rev}";
+  rev = "83fdc39ff7b56453e3793356bcff3070b9b96445";
 
-  goPackagePath = "golang.org/x/lint";
   excludedPackages = "testdata";
 
   # we must allow references to the original `go` package, as golint uses
@@ -15,15 +14,15 @@ buildGoPackage rec {
   src = fetchgit {
     inherit rev;
     url = "https://go.googlesource.com/lint";
-    sha256 = "0gymbggskjmphqxqcx4s0vnlcz7mygbix0vhwcwv5r67c0bf6765";
+    sha256 = "sha256-g4Z9PREOxGoN7n/XhutawsITBznJlbz6StXeDYvOQ1c=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-dPadFoymYu2Uw2AXZfbaBfxsN8IWMuK1TrcknHco3Bo=";
 
   meta = with lib; {
     homepage = "https://golang.org";
     description = "Linter for Go source code";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ jhillyerd ];
+    maintainers = with maintainers; [ jhillyerd tomberek ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/golint/deps.nix b/nixpkgs/pkgs/development/tools/golint/deps.nix
deleted file mode 100644
index e26400989338..000000000000
--- a/nixpkgs/pkgs/development/tools/golint/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "91f80e683c10fea00e7f965a1a7cac482ce52541";
-      sha256 = "16a2vppy5hnp663f28yak6592l8p968ihsc91pigamxx3vk1qh5d";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/tools/google-app-engine-go-sdk/default.nix b/nixpkgs/pkgs/development/tools/google-app-engine-go-sdk/default.nix
index 4d572e070e76..c20d7a2e49a6 100644
--- a/nixpkgs/pkgs/development/tools/google-app-engine-go-sdk/default.nix
+++ b/nixpkgs/pkgs/development/tools/google-app-engine-go-sdk/default.nix
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
         sha256 = "0s8sqyc72lnc7dxd4cl559gyfx83x71jjpsld3i3nbp3mwwamczp";
       };
 
-  buildInputs = [ python makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python ];
 
   installPhase = ''
     mkdir -p $out/bin $out/share/
diff --git a/nixpkgs/pkgs/development/tools/gops/default.nix b/nixpkgs/pkgs/development/tools/gops/default.nix
new file mode 100644
index 000000000000..ff9b2064cec9
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/gops/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "gops";
+  version = "0.3.17";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "gops";
+    rev = "v${version}";
+    sha256 = "1l0k1v2wwwdrwwznrdq2ivbrl5z3hxa89xm89jlaglkd7jjg74zk";
+  };
+
+  vendorSha256 = null;
+
+  preCheck = "export HOME=$(mktemp -d)";
+
+  meta = with lib; {
+    description = "A tool to list and diagnose Go processes currently running on your system";
+    homepage = "https://github.com/google/gops";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ pborzenkov ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/gosec/default.nix b/nixpkgs/pkgs/development/tools/gosec/default.nix
index bbc19894661b..5f0f2da2daaa 100644
--- a/nixpkgs/pkgs/development/tools/gosec/default.nix
+++ b/nixpkgs/pkgs/development/tools/gosec/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "gosec";
-  version = "2.6.1";
+  version = "2.7.0";
 
   subPackages = [ "cmd/gosec" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "securego";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KMXRYudnJab/X6FBG0lnG9hHVmbKwnrN1oqkSn6q3DU=";
+    sha256 = "sha256-U7+0wXnuIDlATpVRVknwaPxib36+iYvvYUVM6d7Xf6I=";
   };
 
-  vendorSha256 = "sha256-0yxGEUOame9yfeIErLESWY8kZtt7Q4vD3TU6Wl9Xa54=";
+  vendorSha256 = "sha256-nr1rx6GM+ETcfLreYT081xNzUz2exloogJ+gcwF2u2o=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/gotestsum/default.nix b/nixpkgs/pkgs/development/tools/gotestsum/default.nix
index 435edd61623b..6c6d6343d437 100644
--- a/nixpkgs/pkgs/development/tools/gotestsum/default.nix
+++ b/nixpkgs/pkgs/development/tools/gotestsum/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gotestsum";
-  version = "1.6.1";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "gotestyourself";
     repo = "gotestsum";
     rev = "v${version}";
-    sha256 = "sha256-eJxrdR3JYqF+GexcwnyHV4xO75stEDNFzxDtky7PVc8=";
+    sha256 = "sha256-xUDhJLTO3JZ7rlUUzcypUev60qmRK9zOlO2VYeXqT4o=";
   };
 
-  vendorSha256 = "sha256-VQ3/VkxoYtY71xJQj6/XAoIEH4jr4Rq4hFqFnwxzkSU=";
+  vendorSha256 = "sha256-sHi8iW+ZV/coeAwDUYnSH039UNtUO9HK0Bhz9Gmtv8k=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/grabserial/default.nix b/nixpkgs/pkgs/development/tools/grabserial/default.nix
index ce336241b65d..2ce3ff49c417 100644
--- a/nixpkgs/pkgs/development/tools/grabserial/default.nix
+++ b/nixpkgs/pkgs/development/tools/grabserial/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, pythonPackages }:
+{ lib, fetchFromGitHub, python3Packages }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "grabserial";
   version = "2.0.2";
 
@@ -11,7 +11,10 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "0ryk4w8q6zfmia71nwnk5b7xaxw0sf45dw9q50xp7k76i3k5f9f3";
   };
 
-  propagatedBuildInputs = [ pythonPackages.pyserial ];
+  propagatedBuildInputs = [ python3Packages.pyserial ];
+
+  # no usable tests
+  doCheck = false;
 
   meta = with lib; {
     description = "Python based serial dump and timing program";
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 4203564ae4a5..23bd3dd3267f 100644
--- a/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix
+++ b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix
@@ -1,4 +1,4 @@
-{ lib, supportedGhcVersions ? [ "865" "884" "8103" ], stdenv, haskellPackages
+{ lib, supportedGhcVersions ? [ "884" "8104" ], stdenv, haskellPackages
 , haskell }:
 #
 # The recommended way to override this package is
diff --git a/nixpkgs/pkgs/development/tools/hcloud/default.nix b/nixpkgs/pkgs/development/tools/hcloud/default.nix
index 3e6ef4d4d342..2ad3bcbf9a7d 100644
--- a/nixpkgs/pkgs/development/tools/hcloud/default.nix
+++ b/nixpkgs/pkgs/development/tools/hcloud/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "hcloud";
-  version = "1.20.0";
+  version = "1.21.0";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0sjshcppcfdfz29nsrzvrciypcb4r7fbl2sqhlkcq948b7k3jk8b";
+    sha256 = "sha256-zXlsvuc778z1sxnv02mFJXQzkEEft0BdubWecvcytYg=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
-  vendorSha256 = "0q6jm2ghwrbjxn76i8wz72xjdmwfvl5dn8n4zilyjjx9vvllwdjw";
+  vendorSha256 = "sha256-QdTD6xeVNswaaMms82rFYb5jLDhxL+wQgaLVXqROSFs=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/heroku/default.nix b/nixpkgs/pkgs/development/tools/heroku/default.nix
index 81c059d2939f..35fccf0e62ee 100644
--- a/nixpkgs/pkgs/development/tools/heroku/default.nix
+++ b/nixpkgs/pkgs/development/tools/heroku/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "heroku";
-  version = "7.47.11";
+  version = "7.51.0";
 
   src = fetchurl {
     url = "https://cli-assets.heroku.com/heroku-v${version}/heroku-v${version}.tar.xz";
-    sha256 = "1inf2radpkd9jndap91cw0wbb2qmi71i287vyydl492372cf3cs2";
+    sha256 = "0wcqk4iy4r57k6fd6l0732yp5mclqfla1lfvx96ay45jnhh7rknx";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/hexio/default.nix b/nixpkgs/pkgs/development/tools/hexio/default.nix
index 5b3fca815e6a..0b4e474515ab 100644
--- a/nixpkgs/pkgs/development/tools/hexio/default.nix
+++ b/nixpkgs/pkgs/development/tools/hexio/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python, pcsclite, pth }:
+{ lib, stdenv, fetchFromGitHub, pcsclite, pth, python2 }:
 
 stdenv.mkDerivation rec {
   pname = "hexio";
@@ -11,8 +11,9 @@ stdenv.mkDerivation rec {
     repo = "hexio";
   };
 
-  propagatedBuildInputs = [ python ];
-  buildInputs = [ pcsclite pth ];
+  strictDeps = true;
+
+  buildInputs = [ pcsclite pth python2 ];
 
   patchPhase = ''
     substituteInPlace Makefile \
diff --git a/nixpkgs/pkgs/development/tools/hover/default.nix b/nixpkgs/pkgs/development/tools/hover/default.nix
index 81661dce8b40..d3e72811db8b 100644
--- a/nixpkgs/pkgs/development/tools/hover/default.nix
+++ b/nixpkgs/pkgs/development/tools/hover/default.nix
@@ -18,7 +18,7 @@
 
 let
   pname = "hover";
-  version = "0.46.2";
+  version = "0.46.3";
 
   libs = with xorg; [
     libX11.dev
@@ -46,13 +46,13 @@ let
 
     subPackages = [ "." ];
 
-    vendorSha256 = "0hdh4vwzvwlarjzg6pv9dp665r9px9yplfjpgyyfjyy5b9sxl795";
+    vendorSha256 = "sha256-qTBGmONlcFJcN+9bMZbVY+6kOQ97JmJWWvgmNeDWBL0=";
 
     src = fetchFromGitHub {
       rev = "v${version}";
       owner = "go-flutter-desktop";
       repo = pname;
-      sha256 = "1gmsv7hmj7zzfwbz50az3kvgzqvj0jn8i2pv7sjyl9dx1bavi5g3";
+      sha256 = "sha256-0qzbRzpqoZcAt3k52+omqZ3Fq1KdS++wPpQkBkG1p6o=";
     };
 
     nativeBuildInputs = [ addOpenGLRunpath makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/hover/fix-assets-path.patch b/nixpkgs/pkgs/development/tools/hover/fix-assets-path.patch
index 27d49197e567..00b1900bf776 100644
--- a/nixpkgs/pkgs/development/tools/hover/fix-assets-path.patch
+++ b/nixpkgs/pkgs/development/tools/hover/fix-assets-path.patch
@@ -53,7 +53,7 @@ index cb75563..3822e80 100644
 -func ExecuteTemplateFromAssetsBox(boxed, to string, assetsBox *rice.Box, templateData interface{}) {
 -	templateString, err := assetsBox.String(boxed)
 +func ExecuteTemplateFromAssetsBox(boxed, to string, assetsBox string, templateData interface{}) {
-+	templateString, err := ioutil.ReadFile(boxed + "/" + boxed)
++	templateString, err := ioutil.ReadFile(assetsBox + "/" + boxed)
  	if err != nil {
  		log.Errorf("Failed to find template file: %v\n", err)
  		os.Exit(1)
diff --git a/nixpkgs/pkgs/development/tools/icr/default.nix b/nixpkgs/pkgs/development/tools/icr/default.nix
index 11e52f77cb80..095055cbedce 100644
--- a/nixpkgs/pkgs/development/tools/icr/default.nix
+++ b/nixpkgs/pkgs/development/tools/icr/default.nix
@@ -13,13 +13,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "icr";
-  version = "unstable-2020-10-06";
+  version = "unstable-2021-03-14";
 
   src = fetchFromGitHub {
     owner = "crystal-community";
     repo = "icr";
-    rev = "8c57cd7c1fdf8088cb05c1587bd6c40d244a8a80";
-    sha256 = "sha256-b0w6oG2npNgdi2ZowMlJy0iUxQWqb9+DiruQl7Ztb0E=";
+    rev = "b6b335f40aff4c2c07d21250949935e8259f7d1b";
+    sha256 = "sha256-Qoy37lCdHFnMAuuqyB9uT15/RLllksFyApYAGy+RmDs=";
   };
 
   shardsFile = ./shards.nix;
diff --git a/nixpkgs/pkgs/development/tools/java/visualvm/default.nix b/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
index 52ccc3d91509..4425071cb140 100644
--- a/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
+++ b/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchzip, lib, makeWrapper, makeDesktopItem, jdk, gawk }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.5";
+  version = "2.0.6";
   pname = "visualvm";
 
   src = fetchzip {
     url = "https://github.com/visualvm/visualvm.src/releases/download/${version}/visualvm_${builtins.replaceStrings ["."] [""]  version}.zip";
-    sha256 = "19xf79rbilslpibi1mi31jplrgf8anpm06s6sxqh8v1qs84vkxdm";
+    sha256 = "sha256-HoDV8Z024+WnECw1ZVwA3dEfbKtuTd4he40UwQnpiGQ=";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/nixpkgs/pkgs/development/tools/jbake/default.nix b/nixpkgs/pkgs/development/tools/jbake/default.nix
index 97d1c7536821..e14cfe874040 100644
--- a/nixpkgs/pkgs/development/tools/jbake/default.nix
+++ b/nixpkgs/pkgs/development/tools/jbake/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0ripayv1vf4f4ylxr7h9kad2xhy3y98ca8s4p38z7dn8l47zg0qw";
   };
 
-  buildInputs = [ makeWrapper jre ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   postPatch = "patchShebangs .";
 
diff --git a/nixpkgs/pkgs/development/tools/jbang/default.nix b/nixpkgs/pkgs/development/tools/jbang/default.nix
index c41fb4c639f3..4c35aaaae05a 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.65.1";
+  version = "0.69.1";
   pname = "jbang";
 
   src = fetchzip {
     url = "https://github.com/jbangdev/jbang/releases/download/v${version}/${pname}-${version}.tar";
-    sha256 = "sha256-Puddnem03RGORKkvcLy5o/eOzKzrOuRvqPk5FsjQ3Lw=";
+    sha256 = "sha256-FuwivcF1SpGbLcoQshVNSWSQ7PgWC0XPCQF+i9zHb/w=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/jpexs/default.nix b/nixpkgs/pkgs/development/tools/jpexs/default.nix
index 24aa43cdeba3..5c3e2046bdb4 100644
--- a/nixpkgs/pkgs/development/tools/jpexs/default.nix
+++ b/nixpkgs/pkgs/development/tools/jpexs/default.nix
@@ -52,6 +52,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jindrapetrik/jpexs-decompiler";
     license = licenses.gpl3;
     platforms = jdk8.meta.platforms;
-    maintainers = with maintainers; [ samuelgrf ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/jq/default.nix b/nixpkgs/pkgs/development/tools/jq/default.nix
index e8fe27aae099..39819db47def 100644
--- a/nixpkgs/pkgs/development/tools/jq/default.nix
+++ b/nixpkgs/pkgs/development/tools/jq/default.nix
@@ -1,26 +1,52 @@
-{ lib, stdenv, nixosTests, fetchurl, oniguruma }:
+{ lib, stdenv, fetchpatch, fetchFromGitHub, autoreconfHook
+, onigurumaSupport ? true, oniguruma }:
 
 stdenv.mkDerivation rec {
   pname = "jq";
   version = "1.6";
 
-  src = fetchurl {
-    url =
-      "https://github.com/stedolan/jq/releases/download/jq-${version}/jq-${version}.tar.gz";
-    sha256 = "0wmapfskhzfwranf6515nzmm84r7kwljgfs7dg6bjgxakbicis2x";
+  src = fetchFromGitHub {
+    owner = "stedolan";
+    repo = "jq";
+    rev = "${pname}-${version}";
+    hash = "sha256-CIE8vumQPGK+TFAncmpBijANpFALLTadOvkob0gVzro";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "fix-tests-when-building-without-regex-supports.patch";
+      url = "https://github.com/stedolan/jq/pull/2292/commits/f6a69a6e52b68a92b816a28eb20719a3d0cb51ae.patch";
+      sha256 = "pTM5FZ6hFs5Rdx+W2dICSS2lcoLY1Q//Lan3Hu8Gr58=";
+    })
+  ];
+
   outputs = [ "bin" "doc" "man" "dev" "lib" "out" ];
 
-  buildInputs = [ oniguruma ];
+  # Upstream script that writes the version that's eventually compiled
+  # and printed in `jq --help` relies on a .git directory which our src
+  # doesn't keep.
+  preConfigure = ''
+    echo "#!/bin/sh" > scripts/version
+    echo "echo ${version}" >> scripts/version
+    patchShebangs scripts/version
+  '';
+
+  # paranoid mode: make sure we never use vendored version of oniguruma
+  # Note: it must be run after automake, or automake will complain
+  preBuild = ''
+    rm -r ./modules/oniguruma
+  '';
+
+  buildInputs = lib.optionals onigurumaSupport [ oniguruma ];
+  nativeBuildInputs = [ autoreconfHook ];
 
   configureFlags = [
     "--bindir=\${bin}/bin"
     "--sbindir=\${bin}/bin"
     "--datadir=\${doc}/share"
     "--mandir=\${man}/share/man"
-  ]
-  # jq is linked to libjq:
+  ] ++ lib.optional (!onigurumaSupport) "--with-oniguruma=no"
+    # jq is linked to libjq:
     ++ lib.optional (!stdenv.isDarwin) "LDFLAGS=-Wl,-rpath,\\\${libdir}";
 
   doInstallCheck = true;
@@ -28,9 +54,10 @@ stdenv.mkDerivation rec {
 
   postInstallCheck = ''
     $bin/bin/jq --help >/dev/null
+    $bin/bin/jq -r '.values[1]' <<< '{"values":["hello","world"]}' | grep '^world$' > /dev/null
   '';
 
-  passthru.tests = { inherit (nixosTests) jq; };
+  passthru = { inherit onigurumaSupport; };
 
   meta = with lib; {
     description = "A lightweight and flexible command-line JSON processor";
diff --git a/nixpkgs/pkgs/development/tools/jsduck/default.nix b/nixpkgs/pkgs/development/tools/jsduck/default.nix
index 233b39338760..15a3a6834034 100644
--- a/nixpkgs/pkgs/development/tools/jsduck/default.nix
+++ b/nixpkgs/pkgs/development/tools/jsduck/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
 
   phases = [ "installPhase" ];
 
-  buildInputs = [ env makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ env ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/development/tools/k6/default.nix b/nixpkgs/pkgs/development/tools/k6/default.nix
index 6a94d40c2062..b311ce4deacb 100644
--- a/nixpkgs/pkgs/development/tools/k6/default.nix
+++ b/nixpkgs/pkgs/development/tools/k6/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "k6";
-  version = "0.30.0";
+  version = "0.31.1";
 
   goPackagePath = "github.com/loadimpact/k6";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "loadimpact";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-eUvkW6IBmUp4/zYNlQKrNrxMszdzU8v6tCc2o4DN1As=";
+    sha256 = "sha256-wngOG0uSNoUU+88oShDpCgPpzuevzJxcwzSzWS3PzAw=";
   };
 
   subPackages = [ "./" ];
diff --git a/nixpkgs/pkgs/development/tools/knightos/genkfs/default.nix b/nixpkgs/pkgs/development/tools/knightos/genkfs/default.nix
index 9f553aa6bae3..fc13b68258ab 100644
--- a/nixpkgs/pkgs/development/tools/knightos/genkfs/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/genkfs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, asciidoc }:
+{ lib, stdenv, fetchFromGitHub, asciidoc, cmake, libxslt }:
 
 stdenv.mkDerivation rec {
   pname = "genkfs";
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "0f50idd2bb73b05qjmwlirjnhr1bp43zhrgy6z949ab9a7hgaydp";
   };
 
-  nativeBuildInputs = [ asciidoc cmake ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ asciidoc libxslt.bin cmake ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix b/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix
index 5f047d79a138..90a493697c8a 100644
--- a/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix
@@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
     sha256 = "13sbpv8ynq8sjackv93jqxymk0bsy76c5fc0v29wz97v53q3izjp";
   };
 
-  nativeBuildInputs = [ cmake bison flex ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ bison cmake flex ];
 
   buildInputs = [ boost ];
 
diff --git a/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix b/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix
index 33ec5b8bbb2a..70eea0f7b6a4 100644
--- a/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, asciidoc }:
+{ lib, stdenv, fetchFromGitHub, cmake, libxslt, asciidoc }:
 
 stdenv.mkDerivation rec {
   pname = "kimg";
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "040782k3rh2a5mhbfgr9gnbfis0wgxvi27vhfn7l35vrr12sw1l3";
   };
 
-  nativeBuildInputs = [ cmake asciidoc ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ asciidoc cmake libxslt.bin ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix b/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix
index 43a8e4eddfa8..447959a1e612 100644
--- a/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, asciidoc, libxslt, docbook_xsl }:
+{ lib, stdenv, fetchFromGitHub, cmake, asciidoc, libxslt }:
 
 stdenv.mkDerivation rec {
   pname = "kpack";
@@ -12,9 +12,9 @@ stdenv.mkDerivation rec {
     sha256 = "1l6bm2j45946i80qgwhrixg9sckazwb5x4051s76d3mapq9bara8";
   };
 
-  nativeBuildInputs = [ cmake ];
+  strictDeps = true;
 
-  buildInputs = [ asciidoc libxslt.bin docbook_xsl ];
+  nativeBuildInputs = [ asciidoc cmake libxslt.bin ];
 
   hardeningDisable = [ "fortify" ];
 
diff --git a/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix b/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
index b1ee36ac2dab..2e067e92d919 100644
--- a/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, asciidoc }:
+{ lib, stdenv, fetchFromGitHub, cmake, libxslt, asciidoc }:
 
 stdenv.mkDerivation rec {
   pname = "mkrom";
@@ -11,10 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0xgvanya40mdwy35j94j61hsp80dm5b440iphmr5ng3kjgchvpx2";
   };
 
-  nativeBuildInputs = [
-    asciidoc
-    cmake
-  ];
+  strictDeps = true;
+  nativeBuildInputs = [ asciidoc cmake libxslt.bin ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix b/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix
index a91d1e5beda8..efe8d454b2c4 100644
--- a/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, asciidoc }:
+{ lib, stdenv, fetchFromGitHub, cmake, libxslt, asciidoc }:
 
 stdenv.mkDerivation rec {
   pname = "mktiupgrade";
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "15y3rxvv7ipgc80wrvrpksxzdyqr21ywysc9hg6s7d3w8lqdq8dm";
   };
 
-  nativeBuildInputs = [ asciidoc cmake ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ asciidoc cmake libxslt.bin ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix b/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix
index 33ed8d38c63d..67d7159e5021 100644
--- a/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, asciidoc, libxslt, docbook_xsl }:
+{ lib, stdenv, fetchFromGitHub, cmake, asciidoc, libxslt }:
 
 
 stdenv.mkDerivation rec {
@@ -13,9 +13,9 @@ stdenv.mkDerivation rec {
     sha256 = "0yc4q7n3k7k6rx3cxq5ddd5r0la8gw1287a74kql6gwkxjq0jmcv";
   };
 
-  nativeBuildInputs = [ cmake asciidoc docbook_xsl ];
+  strictDeps = true;
 
-  buildInputs = [ libxslt ];
+  nativeBuildInputs = [ asciidoc cmake libxslt.bin ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/development/tools/knightos/scas/default.nix b/nixpkgs/pkgs/development/tools/knightos/scas/default.nix
index 573d261306a6..ceb8212cf7f9 100644
--- a/nixpkgs/pkgs/development/tools/knightos/scas/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/scas/default.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [ "-DSCAS_LIBRARY=1" ];
 
+  strictDeps = true;
+
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
@@ -21,6 +23,6 @@ stdenv.mkDerivation rec {
     description = "Assembler and linker for the Z80";
     license     = licenses.mit;
     maintainers = with maintainers; [ siraben ];
-    platforms   = platforms.unix;
+    platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/knightos/z80e/default.nix b/nixpkgs/pkgs/development/tools/knightos/z80e/default.nix
index 6d66f141e912..b8aa281d413d 100644
--- a/nixpkgs/pkgs/development/tools/knightos/z80e/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/z80e/default.nix
@@ -11,9 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-FQMYHxKxHEP+x98JbGyjaM0OL8QK/p3epsAWvQkv6bc=";
   };
 
-  nativeBuildInputs = [ cmake knightos-scas ];
+  nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ readline SDL2 ];
+  buildInputs = [ readline SDL2 knightos-scas ];
 
   cmakeFlags = [ "-Denable-sdl=YES" ];
 
diff --git a/nixpkgs/pkgs/development/tools/krankerl/default.nix b/nixpkgs/pkgs/development/tools/krankerl/default.nix
new file mode 100644
index 000000000000..b771fe6bfc5c
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/krankerl/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, dbus
+, sqlite
+, file
+, gzip
+, makeWrapper
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "krankerl";
+  version = "0.13.0";
+
+  src = fetchFromGitHub {
+    owner = "ChristophWurst";
+    repo = "krankerl";
+    rev = "v${version}";
+    sha256 = "1gp8b2m8kcz2f16zv9xwv4n1zki6imvz9z31kixh6amdj6fif3d1";
+  };
+
+  cargoSha256 = "sha256:01hcxs14wwhhvr08x816wa3jcm4zvm6g7vais793cgijipyv00rc";
+
+  nativeBuildInputs = [
+    pkg-config
+    gzip
+    makeWrapper
+  ];
+
+  buildInputs = [
+    openssl
+    dbus
+    sqlite
+  ];
+
+  checkInputs = [
+    file
+  ];
+
+  meta = with lib; {
+    description = "A CLI helper to manage, package and publish Nextcloud apps";
+    homepage = "https://github.com/ChristophWurst/krankerl";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ onny ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/krew/default.nix b/nixpkgs/pkgs/development/tools/krew/default.nix
index f2a4f390f82c..f0d0f1865114 100644
--- a/nixpkgs/pkgs/development/tools/krew/default.nix
+++ b/nixpkgs/pkgs/development/tools/krew/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "krew";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = "krew";
     rev = "v${version}";
-    sha256 = "1fcbpipnbms096c36b2z06ysfwyjj22lm1zd1r5xlv5gp24qimlv";
+    sha256 = "sha256-+YwBkXrj5sWlMA01GfBhu12st+es5YygkD16jc+blt8=";
   };
 
-  vendorSha256 = "1bmsjv5snrabd9h9szkpcl15rwxm54jgm361ghhy234d2s45c3gn";
+  vendorSha256 = "sha256-49kWaU5dYqd86DvHi3mh5jYUQVmFlI8zsWtAFseYriE=";
 
   subPackages = [ "cmd/krew" ];
 
diff --git a/nixpkgs/pkgs/development/tools/kubectx/default.nix b/nixpkgs/pkgs/development/tools/kubectx/default.nix
index 469558553323..f9d109f33879 100644
--- a/nixpkgs/pkgs/development/tools/kubectx/default.nix
+++ b/nixpkgs/pkgs/development/tools/kubectx/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubectx";
-  version = "0.9.1";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "ahmetb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c7y5hj4w72bm6y3riw0acayn4w9x7bbf1vykqcprbyw3a3dvcsw";
+    sha256 = "sha256-anTogloat0YJN6LR6mww5IPwokHYoDY6L7i2pMzI8/M=";
   };
 
-  vendorSha256 = "168hfdc2rfwpz2ls607bz5vsm1aw4brhwm8hmbiq1n1l2dn2dj0y";
+  vendorSha256 = "sha256-4sQaqC0BOsDfWH3cHy2EMQNMq6qiAcbV+RwxCdcSxsg=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/kubie/default.nix b/nixpkgs/pkgs/development/tools/kubie/default.nix
index 8a199f9191c0..c00304c1ec52 100644
--- a/nixpkgs/pkgs/development/tools/kubie/default.nix
+++ b/nixpkgs/pkgs/development/tools/kubie/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kubie";
-  version = "0.11.1";
+  version = "0.13.4";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "sbstp";
     repo = "kubie";
-    sha256 = "0q21qd9fhchggby18gzyvds517n9vq7b1rr0gmzik4036ykg1lm2";
+    sha256 = "sha256-ZD63Xtnw7qzTrzFxzzZ37N177/PnRaMEzBbhz7h/zCY=";
   };
 
-  cargoSha256 = "0dp4prv8c2a6mxl7wskpc65qlfjphdxshb4q2bswqa5i21h8r534";
+  cargoSha256 = "sha256-c6veaasuwRtaO8TwHS0tNxjbBfekQOa52I9INcE1Jn0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/tools/kustomize/default.nix b/nixpkgs/pkgs/development/tools/kustomize/default.nix
index f658995fe901..b5b0c8b81bf8 100644
--- a/nixpkgs/pkgs/development/tools/kustomize/default.nix
+++ b/nixpkgs/pkgs/development/tools/kustomize/default.nix
@@ -2,9 +2,9 @@
 
 buildGoModule rec {
   pname = "kustomize";
-  version = "3.10.0";
-  # rev is the 3.9.3 commit, mainly for kustomize version command output
-  rev = "602ad8aa98e2e17f6c9119e027a09757e63c8bec";
+  version = "4.0.5";
+  # rev is the commit of the tag, mainly for kustomize version command output
+  rev = "9e8e7a7fe99ec9fbf801463e8607928322fc5245";
 
   buildFlagsArray = let t = "sigs.k8s.io/kustomize/api/provenance"; in
     ''
@@ -17,13 +17,16 @@ buildGoModule rec {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "kustomize/v${version}";
-    sha256 = "1qr0mi83df8d9qd2svyr1h26pg97qi67nnygrkydnp8an28k48hi";
+    sha256 = "sha256-rv65sDr6V6hEYgIRxS1OSu9txmW75F7/YGAy/zRXGyY=";
   };
 
+  # TODO: Remove once https://github.com/kubernetes-sigs/kustomize/pull/3708 got merged.
+  doCheck = false;
+
   # avoid finding test and development commands
   sourceRoot = "source/kustomize";
 
-  vendorSha256 = "0p2j8mm7jpladpm6v3451g38n5bax0g368dk5h5r5gmkr6srxdy4";
+  vendorSha256 = "sha256-lLUi0vD7uyfDR4HjDiosoTU0NbfQTY7ewZGm38ZT9nU=";
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
diff --git a/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix b/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix
new file mode 100644
index 000000000000..4b448b469748
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kustomize-sops";
+  version = "2.5.1";
+
+  src = fetchFromGitHub {
+    owner = "viaduct-ai";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-XZoevXYSlBj8umxC8UNucE21pjDNaeX1c65QAwEuqWQ=";
+  };
+
+  vendorSha256 = "sha256-kJtJ2ut+yhgNoPIY5i3dKmQV0g+8RvcGnxCyay7wy2A=";
+
+  installPhase = ''
+    mkdir -p $out/lib/viaduct.ai/v1/ksops-exec/
+    mv $GOPATH/bin/kustomize-sops $out/lib/viaduct.ai/v1/ksops-exec/ksops-exec
+  '';
+
+  # Tests are broken in a nix environment
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A Flexible Kustomize Plugin for SOPS Encrypted Resource";
+    longDescription = ''
+      KSOPS can be used to decrypt any Kubernetes resource, but is most commonly
+      used to decrypt encrypted Kubernetes Secrets and ConfigMaps.
+    '';
+    homepage = "https://github.com/viaduct-ai/kustomize-sops";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ starcraft66 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/lazygit/default.nix b/nixpkgs/pkgs/development/tools/lazygit/default.nix
index a2707eb72e99..1d8e4115309e 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.24.2";
+  version = "0.26.1";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0hy13l1v2kcsn99dswlq1hl0ly18cal387zhnzjfqv51qng2q5kq";
+    sha256 = "sha256-naTO5cckUfs32z7bm5jGGEuo8db11fnTnQdUDKK2W/I=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/development/tools/literate-programming/Literate/default.nix b/nixpkgs/pkgs/development/tools/literate-programming/Literate/default.nix
index 87213b911a96..88b2f63fd5a5 100644
--- a/nixpkgs/pkgs/development/tools/literate-programming/Literate/default.nix
+++ b/nixpkgs/pkgs/development/tools/literate-programming/Literate/default.nix
@@ -1,16 +1,16 @@
-{ lib, stdenv, fetchgit, dmd, dub }:
+{ lib, stdenv, fetchgit, ldc, dub }:
 
 stdenv.mkDerivation {
   pname = "Literate";
-  version = "unstable-2020-09-02";
+  version = "unstable-2021-01-22";
 
   src = fetchgit {
     url = "https://github.com/zyedidia/Literate.git";
-    rev = "533991cca6ec7a608a778396d32d51b35182d944";
-    sha256 = "09h1as01z0fw0bj0kf1g9nlhvinya7sqq2x8qb6zmhvqqm6v4n49";
+    rev = "7004dffec0cff3068828514eca72172274fd3f7d";
+    sha256 = "0x4xgrdskybaa7ssv81grmwyc1k167v3nwj320jvp5l59xxlbcvs";
   };
 
-  buildInputs = [ dmd dub ];
+  buildInputs = [ ldc dub ];
 
   installPhase = "install -D bin/lit $out/bin/lit";
 
diff --git a/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix b/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix
index 5d4441ecfbb6..c02764035161 100644
--- a/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix
+++ b/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, gawk, groff, icon-lang ? null }:
+{ lib, stdenv, fetchFromGitHub, nawk, groff, icon-lang, useIcon ? true }:
 
-let noweb = stdenv.mkDerivation rec {
+lib.fix (noweb: stdenv.mkDerivation rec {
   pname = "noweb";
   version = "2.12";
 
@@ -11,25 +11,28 @@ let noweb = stdenv.mkDerivation rec {
     sha256 = "1160i2ghgzqvnb44kgwd6s3p4jnk9668rmc15jlcwl7pdf3xqm95";
   };
 
-  patches = [ ./no-FAQ.patch ];
+  sourceRoot = "source/src";
 
-  nativeBuildInputs = [ groff ] ++ lib.optionals (!isNull icon-lang) [ icon-lang ];
+  patches = [
+    # Remove FAQ
+    ./no-FAQ.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace Makefile --replace 'strip' '${stdenv.cc.targetPrefix}strip'
+  '';
+
+  nativeBuildInputs = [ groff ] ++ lib.optionals useIcon [ icon-lang ];
+  buildInputs = [ nawk ];
 
   preBuild = ''
     mkdir -p "$out/lib/noweb"
-    cd src
   '';
 
-  makeFlags = lib.optionals (!isNull icon-lang) [
+  makeFlags = lib.optionals useIcon [
     "LIBSRC=icon"
     "ICONC=icont"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "CC=clang"
-  ];
-
-
-  installFlags = [
-  ];
+  ] ++ [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   preInstall = ''
     mkdir -p "$tex/tex/latex/noweb"
@@ -50,11 +53,11 @@ let noweb = stdenv.mkDerivation rec {
     for f in $out/bin/no{index,roff,roots,untangle,web} \
              $out/lib/noweb/to{ascii,html,roff,tex} \
              $out/lib/noweb/{bt,empty}defn \
-             $out/lib/noweb/{noidx,unmarkup}; do
+             $out/lib/noweb/{noidx,pipedocs,unmarkup}; do
         # NOTE: substituteInPlace breaks Icon binaries, so make sure the script
         #       uses (n)awk before calling.
         if grep -q nawk "$f"; then
-            substituteInPlace "$f" --replace "nawk" "${gawk}/bin/awk"
+            substituteInPlace "$f" --replace "nawk" "${nawk}/bin/awk"
         fi
     done
 
@@ -77,4 +80,4 @@ let noweb = stdenv.mkDerivation rec {
     maintainers = with maintainers; [ yurrriq ];
     platforms = with platforms; linux ++ darwin;
   };
-}; in noweb
+})
diff --git a/nixpkgs/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch b/nixpkgs/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch
index 3230924990b8..2fa601d35c83 100644
--- a/nixpkgs/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch
+++ b/nixpkgs/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch
@@ -1,5 +1,5 @@
---- a/src/Makefile	2006-06-12 22:14:20.000000000 +0200
-+++ b/src/Makefile	2010-06-17 11:30:11.804018145 +0200
+--- a/Makefile	2006-06-12 22:14:20.000000000 +0200
++++ b/Makefile	2010-06-17 11:30:11.804018145 +0200
 @@ -198,7 +198,7 @@
  	(cd elisp; ci -l $(CINAME) $(CIMSG) *.el)
  	ci -l $(CINAME) $(CIMSG) Makefile.nw INSTALL INSTALL.DOS README FAQ COPYRIGHT nwmake *.nw
diff --git a/nixpkgs/pkgs/development/tools/luaformatter/default.nix b/nixpkgs/pkgs/development/tools/luaformatter/default.nix
new file mode 100644
index 000000000000..991f1a377170
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/luaformatter/default.nix
@@ -0,0 +1,30 @@
+{ cmake, fetchFromGitHub, lib, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "luaformatter";
+  version = "1.3.4";
+
+  src = fetchFromGitHub {
+    owner = "koihik";
+    repo = "luaformatter";
+    rev = version;
+    sha256 = "163190g37r6npg5k5mhdwckdhv9nwy2gnfp5jjk8p0s6cyvydqjw";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp lua-format $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Code formatter for lua";
+    homepage = "https://github.com/koihik/luaformatter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/metals/default.nix b/nixpkgs/pkgs/development/tools/metals/default.nix
index 729ab88c680b..100190b08945 100644
--- a/nixpkgs/pkgs/development/tools/metals/default.nix
+++ b/nixpkgs/pkgs/development/tools/metals/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "metals";
-  version = "0.9.10";
+  version = "0.10.0";
 
   deps = stdenv.mkDerivation {
     name = "${pname}-deps-${version}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "1i91jq1p27kkzxk57mm438sablnrx8j5pfyl0yg64wzrashba1xa";
+    outputHash     = "1v9br6nad6yhq9y1z4b9z6xdsjrgqh7wlxww7vp7ws28cg85mqyg";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/minizinc/default.nix b/nixpkgs/pkgs/development/tools/minizinc/default.nix
index 97aedfd8f8a0..c1e0a356df35 100644
--- a/nixpkgs/pkgs/development/tools/minizinc/default.nix
+++ b/nixpkgs/pkgs/development/tools/minizinc/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, flex, bison }:
 let
-  version = "2.5.3";
+  version = "2.5.5";
 in
 stdenv.mkDerivation {
   pname = "minizinc";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "MiniZinc";
     repo = "libminizinc";
     rev = version;
-    sha256 = "1kc65sxkc64pr560qaaznc44jnlvq7pbpzwijad410lpcnna5byg";
+    sha256 = "sha256-9z2E6KqOys9UUXlXWB4eDhg34kS3PhUB1Dd1F6iGYoE=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/minizinc/ide.nix b/nixpkgs/pkgs/development/tools/minizinc/ide.nix
index 0683b9e1265c..a1ce9d0a6960 100644
--- a/nixpkgs/pkgs/development/tools/minizinc/ide.nix
+++ b/nixpkgs/pkgs/development/tools/minizinc/ide.nix
@@ -20,6 +20,7 @@ mkDerivation {
   sourceRoot = "source/MiniZincIDE";
 
   enableParallelBuilding = true;
+  dontWrapQtApps = true;
 
   postInstall = ''
     wrapProgram $out/bin/MiniZincIDE --prefix PATH ":" ${lib.makeBinPath [ minizinc ]}
diff --git a/nixpkgs/pkgs/development/tools/misc/act/default.nix b/nixpkgs/pkgs/development/tools/misc/act/default.nix
index 85ab64a230ef..3b9cc67bc2c3 100644
--- a/nixpkgs/pkgs/development/tools/misc/act/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/act/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.20";
+  version = "0.2.21";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HgFm58zdaycOH65jfu3QsfFemhXymp3OTekISih+8WA=";
+    sha256 = "sha256-XDxG7F+oBatlb4ROBryt2Fop402riKmYoqZLJrUzBUQ=";
   };
 
-  vendorSha256 = "sha256-9LEyxIBe4c938RQbLOQOsAb9MGNtjngm48P3P83BTNw=";
+  vendorSha256 = "sha256-PwVDMSl36m+6ISJQvyrkCjaL3xp5VkaZtfxyMpNn+KI=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/autobuild/default.nix b/nixpkgs/pkgs/development/tools/misc/autobuild/default.nix
index da387105cef5..186608cde3f1 100644
--- a/nixpkgs/pkgs/development/tools/misc/autobuild/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/autobuild/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0gv7g61ja9q9zg1m30k4snqwwy1kq7b4df6sb7d2qra7kbdq8af1";
   };
 
-  buildInputs = [ makeWrapper perl openssh rsync ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl openssh rsync ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/autoconf-archive/default.nix b/nixpkgs/pkgs/development/tools/misc/autoconf-archive/default.nix
index e0d558b18800..b53adfd0be06 100644
--- a/nixpkgs/pkgs/development/tools/misc/autoconf-archive/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/autoconf-archive/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "autoconf-archive";
-  version = "2019.01.06";
+  version = "2021.02.19";
 
   src = fetchurl {
     url = "mirror://gnu/autoconf-archive/autoconf-archive-${version}.tar.xz";
-    sha256 = "0gqya7nf4j5k98dkky0c3bnr0paciya91vkqazg7knlq621mq68p";
+    sha256 = "sha256-6KbrnSjdy6j/7z+iEWUyOem/I5q6agGmt8/Hzq7GnL0=";
   };
 
   buildInputs = [ xz ];
diff --git a/nixpkgs/pkgs/development/tools/misc/autoconf/2.13.nix b/nixpkgs/pkgs/development/tools/misc/autoconf/2.13.nix
index e5280d46b598..26d6d9178edd 100644
--- a/nixpkgs/pkgs/development/tools/misc/autoconf/2.13.nix
+++ b/nixpkgs/pkgs/development/tools/misc/autoconf/2.13.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, m4, perl, lzma}:
+{lib, stdenv, fetchurl, m4, perl, xz}:
 
 stdenv.mkDerivation rec {
   name = "autoconf-2.13";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "07krzl4czczdsgzrrw9fiqx35xcf32naf751khg821g5pqv12qgh";
   };
 
-  nativebuildInputs = [ lzma ];
+  nativebuildInputs = [ xz ];
   buildInputs = [ m4 perl ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/tools/misc/automaticcomponenttoolkit/default.nix b/nixpkgs/pkgs/development/tools/misc/automaticcomponenttoolkit/default.nix
new file mode 100644
index 000000000000..cf84a98467d6
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/automaticcomponenttoolkit/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, fetchFromGitHub, go }:
+
+stdenv.mkDerivation rec {
+  pname = "AutomaticComponentToolkit";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "Autodesk";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1r0sbw82cf9dbcj3vgnbd4sc1lklzvijic2z5wgkvs21azcm0yzh";
+  };
+
+  nativeBuildInputs = [ go ];
+
+  buildPhase = ''
+    cd Source
+    export HOME=/tmp
+    go build -o act *.go
+  '';
+
+  installPhase = ''
+    install -Dm0755 act $out/bin/act
+  '';
+
+  meta = with lib; {
+    description = "Toolkit to automatically generate software components: abstract API, implementation stubs and language bindings";
+    homepage = "https://github.com/Autodesk/AutomaticComponentToolkit";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ gebner ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/avrdude/default.nix b/nixpkgs/pkgs/development/tools/misc/avrdude/default.nix
index 4d95310c342f..9cfd93800103 100644
--- a/nixpkgs/pkgs/development/tools/misc/avrdude/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/avrdude/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, yacc, flex, libusb-compat-0_1, libelf, libftdi1, readline
+{ lib, stdenv, fetchurl, bison, flex, libusb-compat-0_1, libelf, libftdi1, readline
 # docSupport is a big dependency, disabled by default
 , docSupport ? false, texLive ? null, texinfo ? null, texi2html ? null
 }:
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = lib.optionals docSupport "--enable-doc";
 
-  buildInputs = [ yacc flex libusb-compat-0_1 libelf libftdi1 readline ]
+  buildInputs = [ bison flex libusb-compat-0_1 libelf libftdi1 readline ]
     ++ lib.optionals docSupport [ texLive texinfo texi2html ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/misc/blackfire/php-probe.nix b/nixpkgs/pkgs/development/tools/misc/blackfire/php-probe.nix
index 780b2a8906f7..e9bc52874018 100644
--- a/nixpkgs/pkgs/development/tools/misc/blackfire/php-probe.nix
+++ b/nixpkgs/pkgs/development/tools/misc/blackfire/php-probe.nix
@@ -18,11 +18,11 @@ let
   }.${lib.versions.majorMinor php.version} or (throw "Unsupported PHP version.");
 in stdenv.mkDerivation rec {
   pname = "php-blackfire";
-  version = "1.49.1";
+  version = "1.53.0";
 
   src = fetchurl {
     url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire-php/blackfire-php_${version}_amd64.deb";
-    sha256 = "5Z6CUj/HfSj+pC9iDEmU/OKCYePSAazU9q9M3glnOZU=";
+    sha256 = "ApKj5gulTCzWh7oSAM+JWQnWviHCnHV3OJHegpXJL54=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix b/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix
index c49187273c46..f3b3b0b2d04b 100644
--- a/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, lib, fetchFromGitHub
+{ stdenv, lib, fetchFromGitHub, fetchpatch
 , gcc-arm-embedded, libftdi1, libusb-compat-0_1, pkg-config
-, python, pythonPackages
+, python3
 }:
 
 with lib;
@@ -19,17 +19,26 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Fix deprecation warning with libftdi 1.5
+    (fetchpatch {
+      url = "https://github.com/blacksphere/blackmagic/commit/dea4be2539c5ea63836ec78dca08b52fa8b26ab5.patch";
+      sha256 = "0f81simij1wdhifsxaavalc6yxzagfbgwry969dbjmxqzvrsrds5";
+    })
+  ];
+
   nativeBuildInputs = [
     gcc-arm-embedded pkg-config
+    python3
   ];
 
   buildInputs = [
     libftdi1
     libusb-compat-0_1
-    python
-    pythonPackages.intelhex
   ];
 
+  strictDeps = true;
+
   postPatch = ''
     # Prevent calling out to `git' to generate a version number:
     substituteInPlace src/Makefile \
@@ -42,7 +51,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildPhase = "${stdenv.shell} ${./helper.sh}";
-  installPhase = ":"; # buildPhase does this.
+  dontInstall = true;
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix b/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix
index 0f7edeea812f..62aa0ab5decf 100644
--- a/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./backslashes-quotes.diff ];
 
-  buildInputs = [ tk makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ tk ];
 
   installPhase = ''
     mkdir -p $out/bin $out/share/${name}
diff --git a/nixpkgs/pkgs/development/tools/misc/ccls/default.nix b/nixpkgs/pkgs/development/tools/misc/ccls/default.nix
index 40b53ca6934a..218a396490f1 100644
--- a/nixpkgs/pkgs/development/tools/misc/ccls/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ccls/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ccls";
-  version = "0.20201025";
+  version = "0.20201219";
 
   src = fetchFromGitHub {
     owner = "MaskRay";
     repo = "ccls";
     rev = version;
-    sha256 = "13v00q1bz8g0ckw1sv0zyicbc44irc00vhwxdv3vvwlvylm7s21p";
+    sha256 = "sha256-qCZYSzUh5WBQxMX6LtWRBz0VWnZVNR4v06aH9bJIb1o=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix b/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix
index 140e4869e88a..2d5e77f79186 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.11924";
+  version = "0.1.15149";
 
   src = fetchFromGitHub {
     owner = "CircleCI-Public";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KY1kqqRRpwNt0ovllfFcWSsJAH2J1NrlQAueqQrw354=";
+    sha256 = "sha256-pmLDCNgCQv4fetl/q6ZokH1qF6pSqsR0DUWbzGeEtaw=";
   };
 
-  vendorSha256 = "sha256-6FBMLwoLM2BtnMHQfpY7f7NiQt5evsL4CfYTZvr3gAs=";
+  vendorSha256 = "sha256-j7VP/QKKMdmWQ60BYpChG4syDlll7CY4rb4wfb4+Z1s=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/cli11/default.nix b/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
index 03c3e51cb89b..d62ad413e1ac 100644
--- a/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
@@ -3,7 +3,7 @@
   fetchFromGitHub,
   cmake,
   gtest,
-  python,
+  python3,
   boost
 }:
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  checkInputs = [ boost python ];
+  checkInputs = [ boost python3 ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix b/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
index d99649fd2a9b..c0d4567fe0b7 100644
--- a/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -1,24 +1,59 @@
-{ lib, stdenv, fetchurl, jre, makeWrapper }:
+{ lib, stdenv, callPackage, fetchFromGitHub, leiningen, openjdk11
+, graalvm11-ce, babashka }:
 
-stdenv.mkDerivation rec {
+let
   pname = "clojure-lsp";
-  version = "2021.02.10-21.13.12";
+  version = "2021.02.14-19.46.47";
+  leiningen11 = leiningen.override ({ jdk = openjdk11; });
 
-  src = fetchurl {
-    url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/${pname}.jar";
-    sha256 = "sha256-kYetCpInY87l1NTaIhjzkNc2LQctMbSmcdQuI7zrFG4=";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-Zj7/8RcuxCy2xdd+5jeOb1GTsQsX0EVW32k32fA6uf4=";
   };
 
-  dontUnpack = true;
+  repository = callPackage ./repository.nix {
+    inherit src pname version;
+    leiningen = leiningen11;
+  };
+in stdenv.mkDerivation rec {
+  inherit src pname version;
+
+  postPatch = ''
+    # Hack to set maven cache in another directory since MAVEN_OPTS doesn't work
+    substituteInPlace project.clj \
+      --replace ":main" ":local-repo \"${repository}\" :main"
+  '';
+
+  GRAALVM_HOME = graalvm11-ce;
+
+  buildInputs = [ graalvm11-ce leiningen11 repository ];
+
+  buildPhase = with lib; ''
+    runHook preBuild
+
+    export LEIN_HOME="$(mktemp -d)"
+    bash ./graalvm/native-unix-compile.sh
 
-  buildInputs = [ makeWrapper ];
+    runHook postBuild
+  '';
 
   installPhase = ''
-    install -Dm644 $src $out/share/java/${pname}.jar
-    makeWrapper ${jre}/bin/java $out/bin/${pname} \
-      --add-flags "-Xmx2g" \
-      --add-flags "-server" \
-      --add-flags "-jar $out/share/java/${pname}.jar"
+    runHook preInstall
+
+    install -Dm755 ./clojure-lsp $out/bin/clojure-lsp
+
+    runHook postInstall
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+
+    ${babashka}/bin/bb ./integration-test/run-all.clj ./clojure-lsp
+
+    runHook postCheck
   '';
 
   meta = with lib; {
@@ -26,6 +61,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/snoe/clojure-lsp";
     license = licenses.mit;
     maintainers = [ maintainers.ericdallo ];
-    platforms = jre.meta.platforms;
+    platforms = graalvm11-ce.meta.platforms;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/clojure-lsp/repository.nix b/nixpkgs/pkgs/development/tools/misc/clojure-lsp/repository.nix
new file mode 100644
index 000000000000..122096e9657a
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/clojure-lsp/repository.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, src, pname, version, leiningen }:
+
+stdenv.mkDerivation {
+  inherit src;
+
+  name = "${pname}-${version}-repository";
+  buildInputs = [ leiningen ];
+
+  postPatch = ''
+    # Hack to set maven cache in another directory since MAVEN_OPTS doesn't work
+    substituteInPlace project.clj \
+      --replace ":main" ":local-repo \"$out\" :main"
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    export LEIN_HOME="$(mktemp -d)"
+    lein with-profiles +native-image deps
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    find $out -type f \
+      -name \*.lastUpdated -or \
+      -name resolver-status.properties -or \
+      -name _remote.repositories \
+      -delete
+
+    runHook postInstall
+  '';
+
+  dontFixup = true;
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "sha256-aWZPsJF32ENyYNZCHf5amxVF9pb+5M73JqG/OITZlak=";
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/cproto/default.nix b/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
index 5ee1a64f2c23..84890f166235 100644
--- a/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "cproto";
-  version = "4.7q";
+  version = "4.7r";
 
   src = fetchurl {
     urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       # No version listings and apparently no versioned tarball over http(s).
       "ftp://ftp.invisible-island.net/cproto/cproto-${version}.tgz"
     ];
-    sha256 = "138n5j6lkanbbdcs63irzxny4nfgp0zk66z621xjbnybf920svpk";
+    sha256 = "sha256-bgRg2yVZXHobUz8AUaV4ZKBkp2KjP+2oXbDXmPTUX8U=";
   };
 
   # patch made by Joe Khoobyar copied from gentoo bugs
diff --git a/nixpkgs/pkgs/development/tools/misc/cvise/default.nix b/nixpkgs/pkgs/development/tools/misc/cvise/default.nix
new file mode 100644
index 000000000000..fe33df530cfd
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/cvise/default.nix
@@ -0,0 +1,46 @@
+{ lib, buildPythonApplication, fetchFromGitHub, cmake, flex
+, clang-unwrapped, llvm, unifdef
+, pebble, psutil, pytestCheckHook, pytest-flake8
+}:
+
+buildPythonApplication rec {
+  pname = "cvise";
+  version = "2.3.0";
+
+  src = fetchFromGitHub {
+    owner = "marxin";
+    repo = "cvise";
+    rev = "v${version}";
+    sha256 = "1x2i8nv0nncgvr07znhh2slngbrg8qcsz2zqx76bcyq9hssn6yal";
+  };
+
+  patches = [
+    # Refer to unifdef by absolute path.
+    ./unifdef.patch
+  ];
+
+  nativeBuildInputs = [ cmake flex ];
+  buildInputs = [ clang-unwrapped llvm unifdef ];
+  propagatedBuildInputs = [ pebble psutil ];
+  checkInputs = [ pytestCheckHook pytest-flake8 unifdef ];
+
+  preCheck = ''
+    patchShebangs cvise.py
+  '';
+  disabledTests = [
+    # Needs gcc, fails when run noninteractively (without tty).
+    "test_simple_reduction"
+  ];
+
+  dontUsePipInstall = true;
+  dontUseSetuptoolsBuild = true;
+  dontUseSetuptoolsCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/marxin/cvise";
+    description = "Super-parallel Python port of C-Reduce";
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/cvise/unifdef.patch b/nixpkgs/pkgs/development/tools/misc/cvise/unifdef.patch
new file mode 100644
index 000000000000..d15ca6dce0bd
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/cvise/unifdef.patch
@@ -0,0 +1,8 @@
+--- a/cvise.py
++++ b/cvise.py
+@@ -93,4 +93,5 @@ def find_external_programs():
+     # Special case for clang-format
+     programs['clang-format'] = '@CLANG_FORMAT_PATH@'
++    programs['unifdef'] = '@UNIFDEF@'
+ 
+     return programs
diff --git a/nixpkgs/pkgs/development/tools/misc/cwebbin/default.nix b/nixpkgs/pkgs/development/tools/misc/cwebbin/default.nix
index 3ab8800f3c4e..055a24f3fe0a 100644
--- a/nixpkgs/pkgs/development/tools/misc/cwebbin/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cwebbin/default.nix
@@ -16,7 +16,15 @@ stdenv.mkDerivation rec {
     sha256 = "1hdzxfzaibnjxjzgp6d2zay8nsarnfy9hfq55hz1bxzzl23n35aj";
   };
 
-  buildInputs = [ tie ];
+  # Remove references to __DATE__ and __TIME__
+  postPatch = ''
+    substituteInPlace wmerg-patch.ch --replace ' ("__DATE__", "__TIME__")' ""
+    substituteInPlace ctang-patch.ch --replace ' ("__DATE__", "__TIME__")' ""
+    substituteInPlace ctangle.cxx --replace ' ("__DATE__", "__TIME__")' ""
+    substituteInPlace cweav-patch.ch --replace ' ("__DATE__", "__TIME__")' ""
+  '';
+
+  nativeBuildInputs = [ tie ];
 
   makeFlags = [
     "MACROSDIR=$(out)/share/texmf/tex/generic/cweb"
@@ -27,7 +35,7 @@ stdenv.mkDerivation rec {
     "CP=cp"
     "RM=rm"
     "PDFTEX=echo"
-    "CC=c++"
+    "CC=${stdenv.cc.targetPrefix}c++"
   ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/misc/dejagnu/default.nix b/nixpkgs/pkgs/development/tools/misc/dejagnu/default.nix
index 285805ccb02c..612514345785 100644
--- a/nixpkgs/pkgs/development/tools/misc/dejagnu/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/dejagnu/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0qfj2wd4qk1yn9yzam6g8nmyxfazcc0knjyyibycb2ainkhp21hd";
   };
 
-  buildInputs = [ expect makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ expect ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/dialog/default.nix b/nixpkgs/pkgs/development/tools/misc/dialog/default.nix
index ac5fb4118beb..dca8d9666af5 100644
--- a/nixpkgs/pkgs/development/tools/misc/dialog/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/dialog/default.nix
@@ -12,11 +12,11 @@ assert unicodeSupport -> ncurses.unicode && ncurses != null;
 
 stdenv.mkDerivation rec {
   pname = "dialog";
-  version = "1.3-20210117";
+  version = "1.3-20210306";
 
   src = fetchurl {
     url = "ftp://ftp.invisible-island.net/dialog/${pname}-${version}.tgz";
-    sha256 = "PB7Qj0S89vFZ8qpv3nZduU6Jl7Pu+0nYtMhmkWk8Q+E=";
+    hash = "sha256-pz57YHtjX2PAICuzMTEG5wD5H+Sp9NJspwA/brK5yw8=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/nixpkgs/pkgs/development/tools/misc/direvent/default.nix b/nixpkgs/pkgs/development/tools/misc/direvent/default.nix
index 3477d60b7849..cf2a52276038 100644
--- a/nixpkgs/pkgs/development/tools/misc/direvent/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/direvent/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     description = "Directory event monitoring daemon";
     homepage = "https://www.gnu.org.ua/software/direvent/";
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ puffnfresh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/distcc/default.nix b/nixpkgs/pkgs/development/tools/misc/distcc/default.nix
index cad9fe0960b5..38ddc1ff4312 100644
--- a/nixpkgs/pkgs/development/tools/misc/distcc/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/distcc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, popt, avahi, pkg-config, python, gtk2, runCommand
+{ lib, stdenv, fetchFromGitHub, popt, avahi, pkg-config, python3, gtk2, runCommand
 , gcc, autoconf, automake, which, procps, libiberty_static
 , runtimeShell
 , sysconfDir ? ""   # set this parameter to override the default value $out/etc
@@ -18,7 +18,7 @@ let
     };
 
   nativeBuildInputs = [ pkg-config ];
-    buildInputs = [popt avahi pkg-config python gtk2 autoconf automake which procps libiberty_static];
+    buildInputs = [popt avahi pkg-config python3 gtk2 autoconf automake which procps libiberty_static];
     preConfigure =
     ''
       export CPATH=$(ls -d ${gcc.cc}/lib/gcc/*/${gcc.cc.version}/plugin/include)
diff --git a/nixpkgs/pkgs/development/tools/misc/doclifter/default.nix b/nixpkgs/pkgs/development/tools/misc/doclifter/default.nix
index 8b7717881119..0692d84b4544 100644
--- a/nixpkgs/pkgs/development/tools/misc/doclifter/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/doclifter/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, python}:
+{lib, stdenv, fetchurl, python3}:
 
 stdenv.mkDerivation {
   name = "doclifter-2.19";
@@ -6,7 +6,9 @@ stdenv.mkDerivation {
     url = "http://www.catb.org/~esr/doclifter/doclifter-2.19.tar.gz";
     sha256 = "1as6z7mdjrrkw2kism41q5ybvyzvwcmj9qzla2fz98v9f4jbj2s2";
   };
-  buildInputs = [ python ];
+  buildInputs = [ python3 ];
+
+  strictDeps = true;
 
   makeFlags = [ "PREFIX=$(out)" ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix b/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
index 82b2d2af7cd8..b4359bb18601 100644
--- a/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "editorconfig-checker";
-  version = "2.3.3";
+  version = "2.3.5";
 
   src = fetchFromGitHub {
     owner = "editorconfig-checker";
     repo = "editorconfig-checker";
     rev = version;
-    sha256 = "sha256-u3gTzsAoV4fgQjsnONIIGFE/Y02bKbCTg30O9FTI2/w=";
+    sha256 = "sha256-t1qvmTs6hOrAnq5hjU2Qjt33vdW9MuSOvWCCY82db+g=";
   };
 
-  vendorSha256 = "sha256-0Eznh9xXuYf4mVZipyE99fKwkGYeSAorhBLamupGkvw=";
+  vendorSha256 = "sha256-Rs7u/ZepnMNg5EZ/HWqSdO428KOkxpSbo7rl0treqUY=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/elfkickers/default.nix b/nixpkgs/pkgs/development/tools/misc/elfkickers/default.nix
index e60b40c7fd4c..775ad6937dc4 100644
--- a/nixpkgs/pkgs/development/tools/misc/elfkickers/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/elfkickers/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "02354yn1lh1dxny35ky2d0b44iq302krsqpwk5grr4glma00hhq6";
   };
 
-  makeFlags = [ "CC=cc prefix=$(out)" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc prefix=$(out)" ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix b/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix
index 4ad7f8300665..8954ff2bc426 100644
--- a/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix
@@ -1,47 +1,106 @@
-{ lib, stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext, xz, setupDebugInfoDirs, argp-standalone }:
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, autoreconfHook, musl-fts
+, musl-obstack, m4, zlib, bzip2, bison, flex, gettext, xz, setupDebugInfoDirs
+, argp-standalone
+, enableDebuginfod ? false, sqlite, curl, libmicrohttpd_0_9_70, libarchive
+}:
 
 # TODO: Look at the hardcoded paths to kernel, modules etc.
 stdenv.mkDerivation rec {
   pname = "elfutils";
-  version = "0.180";
+  version = "0.182";
 
   src = fetchurl {
     url = "https://sourceware.org/elfutils/ftp/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "17an1f67bfzxin482nbcxdl5qvywm27i9kypjyx8ilarbkivc9xq";
+    sha256 = "7MQGkU7fM18Lf8CE6+bEYMTW1Rdb/dZojBx42RRriFg=";
   };
 
-  patches = [ ./debug-info-from-env.patch ];
+  patches = [
+    ./debug-info-from-env.patch
+    ./musl-cdefs_h.patch
+    (fetchpatch {
+      name = "fix-aarch64_fregs.patch";
+      url = "https://git.alpinelinux.org/aports/plain/main/elfutils/fix-aarch64_fregs.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9";
+      sha256 = "zvncoRkQx3AwPx52ehjA2vcFroF+yDC2MQR5uS6DATs=";
+    })
+    (fetchpatch {
+      name = "musl-asm-ptrace-h.patch";
+      url = "https://git.alpinelinux.org/aports/plain/main/elfutils/musl-asm-ptrace-h.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9";
+      sha256 = "8D1wPcdgAkE/TNBOgsHaeTZYhd9l+9TrZg8d5C7kG6k=";
+    })
+    (fetchpatch {
+      name = "musl-fts-obstack.patch";
+      url = "https://git.alpinelinux.org/aports/plain/main/elfutils/musl-fts-obstack.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9";
+      sha256 = "3lbC0UtscTIJgT7kOXnnjWrpPAVt2PYMbW+uJK6K350=";
+    })
+    (fetchpatch {
+      name = "musl-macros.patch";
+      url = "https://git.alpinelinux.org/aports/plain/main/elfutils/musl-macros.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9";
+      sha256 = "tp6O1TRsTAMsFe8vw3LMENT/vAu6OmyA8+pzgThHeA8=";
+    })
+    (fetchpatch {
+      name = "musl-qsort_r.patch";
+      url = "https://git.alpinelinux.org/aports/plain/main/elfutils/musl-qsort_r.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9";
+      sha256 = "FPWCkdtFT3zw8aNnz0Jz5Vmu8B/mRfNgfhbM/ej7d8M=";
+    })
+    (fetchpatch {
+      name = "musl-strerror_r.patch";
+      url = "https://git.alpinelinux.org/aports/plain/main/elfutils/musl-strerror_r.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9";
+      sha256 = "QF6YwWkcT12dZHKzfqFgxy/1fkIllo0AAosbV0sM5PU=";
+    })
+    (fetchpatch {
+      name = "musl-strndupa.patch";
+      url = "https://git.alpinelinux.org/aports/plain/main/elfutils/musl-strndupa.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9";
+      sha256 = "sha256-7daehJj1t0wPtQzTv+/Rpuqqs5Ng/EYnZzrcf2o/Lb0=";
+    })
+  ] ++ lib.optional stdenv.hostPlatform.isMusl [ ./musl-error_h.patch ];
+
+  outputs = [ "bin" "dev" "out" "man" ];
 
   hardeningDisable = [ "format" ];
 
   # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
   # as the host-bzip2 will be in the path.
-  nativeBuildInputs = [ m4 bison flex gettext bzip2 ];
+  nativeBuildInputs = [ m4 bison flex gettext bzip2 ]
+    ++ lib.optional stdenv.hostPlatform.isMusl [ pkg-config autoreconfHook ]
+    ++ lib.optional enableDebuginfod [ pkg-config ];
   buildInputs = [ zlib bzip2 xz ]
-    ++ lib.optional stdenv.hostPlatform.isMusl argp-standalone;
+    ++ lib.optional stdenv.hostPlatform.isMusl [
+    argp-standalone
+    musl-fts
+    musl-obstack
+  ] ++ lib.optionals enableDebuginfod [
+    sqlite
+    curl
+    libmicrohttpd_0_9_70
+    libarchive
+  ];
 
   propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
 
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
-    NIX_CFLAGS_COMPILE+=" -fgnu89-inline"
+    NIX_CFLAGS_COMPILE+=" -Wno-null-dereference"
   '';
 
-  configureFlags =
-    [ "--program-prefix=eu-" # prevent collisions with binutils
-      "--enable-deterministic-archives"
-      "--disable-debuginfod"
-    ];
+  configureFlags = [
+    "--program-prefix=eu-" # prevent collisions with binutils
+    "--enable-deterministic-archives"
+  ] ++ lib.optionals (!enableDebuginfod) [
+    "--disable-libdebuginfod"
+    "--disable-debuginfod"
+  ];
 
   enableParallelBuilding = true;
 
   doCheck = false; # fails 3 out of 174 tests
   doInstallCheck = false; # fails 70 out of 174 tests
 
-  meta = {
+  meta = with lib; {
     homepage = "https://sourceware.org/elfutils/";
     description = "A set of utilities to handle ELF objects";
-    platforms = lib.platforms.linux;
-    license = lib.licenses.gpl3;
-    maintainers = [ lib.maintainers.eelco ];
+    platforms = platforms.linux;
+    # licenses are GPL2 or LGPL3+ for libraries, GPL3+ for bins,
+    # but since this package isn't split that way, all three are listed.
+    license = with licenses; [ gpl2Only lgpl3Plus gpl3Plus ];
+    maintainers = [ maintainers.eelco ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/elfutils/musl-cdefs_h.patch b/nixpkgs/pkgs/development/tools/misc/elfutils/musl-cdefs_h.patch
new file mode 100644
index 000000000000..1b5bf466217b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/elfutils/musl-cdefs_h.patch
@@ -0,0 +1,15 @@
+# avoids a warning about including an internal header when
+# compiling with musl-libc
+diff -crb --new-file a/lib/fixedsizehash.h b/lib/fixedsizehash.h
+*** a/lib/fixedsizehash.h	2020-06-11 11:37:46.000000000 -0400
+--- b/lib/fixedsizehash.h	2021-01-21 05:52:59.000000000 -0500
+***************
+*** 30,36 ****
+  #include <errno.h>
+  #include <stdlib.h>
+  #include <string.h>
+- #include <sys/cdefs.h>
+  
+  #include <system.h>
+  
+--- 30,35 ----
diff --git a/nixpkgs/pkgs/development/tools/misc/elfutils/musl-error_h.patch b/nixpkgs/pkgs/development/tools/misc/elfutils/musl-error_h.patch
new file mode 100644
index 000000000000..711928078d35
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/elfutils/musl-error_h.patch
@@ -0,0 +1,66 @@
+diff -crb --new-file a/lib/error.h b/lib/error.h
+*** a/lib/error.h	1969-12-31 19:00:00.000000000 -0500
+--- b/lib/error.h	2021-01-21 04:38:25.000000000 -0500
+***************
+*** 0 ****
+--- 1,27 ----
++ #ifndef _ERROR_H_
++ #define _ERROR_H_
++ 
++ #include <stdarg.h>
++ #include <stdio.h>
++ #include <stdlib.h>
++ #include <string.h>
++ #include <errno.h>
++ 
++ static unsigned int error_message_count = 0;
++ 
++ static inline void error(int status, int errnum, const char* format, ...)
++ {
++ 	va_list ap;
++ 	fprintf(stderr, "%s: ", program_invocation_name);
++ 	va_start(ap, format);
++ 	vfprintf(stderr, format, ap);
++ 	va_end(ap);
++ 	if (errnum)
++ 		fprintf(stderr, ": %s", strerror(errnum));
++ 	fprintf(stderr, "\n");
++ 	error_message_count++;
++ 	if (status)
++ 		exit(status);
++ }
++ 
++ #endif	/* _ERROR_H_ */
+diff -crb --new-file a/src/error.h b/src/error.h
+*** a/src/error.h	1969-12-31 19:00:00.000000000 -0500
+--- b/src/error.h	2021-01-21 04:38:29.000000000 -0500
+***************
+*** 0 ****
+--- 1,27 ----
++ #ifndef _ERROR_H_
++ #define _ERROR_H_
++ 
++ #include <stdarg.h>
++ #include <stdio.h>
++ #include <stdlib.h>
++ #include <string.h>
++ #include <errno.h>
++ 
++ static unsigned int error_message_count = 0;
++ 
++ static inline void error(int status, int errnum, const char* format, ...)
++ {
++ 	va_list ap;
++ 	fprintf(stderr, "%s: ", program_invocation_name);
++ 	va_start(ap, format);
++ 	vfprintf(stderr, format, ap);
++ 	va_end(ap);
++ 	if (errnum)
++ 		fprintf(stderr, ": %s", strerror(errnum));
++ 	fprintf(stderr, "\n");
++ 	error_message_count++;
++ 	if (status)
++ 		exit(status);
++ }
++ 
++ #endif	/* _ERROR_H_ */
diff --git a/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix b/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
index 6f9f5e113c06..47716b5ea9e8 100644
--- a/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
     sha256 = "11479ac436g8bwk0lfnmdms0cirv9k11pdvfrrg9jwkki1j1abkk";
   };
 
-  nativeBuildInputs = [ autoreconfHook ] ++ lib.optionals stdenv.isDarwin [ CoreServices ];
-  buildInputs = [ gettext libtool makeWrapper texinfo ];
+  nativeBuildInputs = [ autoreconfHook makeWrapper ] ++ lib.optionals stdenv.isDarwin [ CoreServices ];
+  buildInputs = [ gettext libtool texinfo ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/gdb/default.nix b/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
index 2ce779be5680..6f9237789750 100644
--- a/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
@@ -82,7 +82,8 @@ stdenv.mkDerivation rec {
     "--with-mpfr=${mpfr.dev}"
     "--with-expat" "--with-libexpat-prefix=${expat.dev}"
     "--with-auto-load-safe-path=${builtins.concatStringsSep ":" safePaths}"
-  ] ++ lib.optional (!pythonSupport) "--without-python";
+  ] ++ lib.optional (!pythonSupport) "--without-python"
+    ++ lib.optional stdenv.hostPlatform.isMusl "--disable-nls";
 
   postInstall =
     '' # Remove Info files already provided by Binutils and other packages.
diff --git a/nixpkgs/pkgs/development/tools/misc/gede/default.nix b/nixpkgs/pkgs/development/tools/misc/gede/default.nix
index 486557d9219a..00ce9958b1f9 100644
--- a/nixpkgs/pkgs/development/tools/misc/gede/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gede/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchurl, makeWrapper, python, qmake, ctags, gdb }:
+{ mkDerivation, lib, fetchurl, makeWrapper, python3, qmake, ctags, gdb }:
 
 mkDerivation rec {
   pname = "gede";
@@ -9,10 +9,12 @@ mkDerivation rec {
     sha256 = "0hbsy2ymzgl8xd9mnh43gxdfncy7g6czxfvfyh7zp3ij8yiwf8x3";
   };
 
-  nativeBuildInputs = [ qmake makeWrapper python ];
+  nativeBuildInputs = [ qmake makeWrapper python3 ];
 
   buildInputs = [ ctags ];
 
+  strictDeps = true;
+
   dontUseQmakeConfigure = true;
 
   buildPhase = ":";
diff --git a/nixpkgs/pkgs/development/tools/misc/global/default.nix b/nixpkgs/pkgs/development/tools/misc/global/default.nix
index fb3ddfcb29b3..7ace6f857c8b 100644
--- a/nixpkgs/pkgs/development/tools/misc/global/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/global/default.nix
@@ -1,8 +1,10 @@
 { fetchurl, lib, stdenv, libtool, makeWrapper
-, coreutils, ctags, ncurses, pythonPackages, sqlite, universal-ctags
+, coreutils, ctags, ncurses, python3Packages, sqlite, universal-ctags
 }:
 
-stdenv.mkDerivation rec {
+let
+  pygments = python3Packages.pygments;
+in stdenv.mkDerivation rec {
   pname = "global";
   version = "6.6.5";
 
@@ -15,7 +17,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ ncurses ];
 
-  propagatedBuildInputs = [ pythonPackages.pygments ];
+  propagatedBuildInputs = [ pygments ];
 
   configureFlags = [
     "--with-ltdl-include=${libtool}/include"
@@ -34,9 +36,9 @@ stdenv.mkDerivation rec {
     cp -v *.el "$out/share/emacs/site-lisp"
 
     wrapProgram $out/bin/gtags \
-      --prefix PYTHONPATH : "$(toPythonPath ${pythonPackages.pygments})"
+      --prefix PYTHONPATH : "$(toPythonPath ${pygments})"
     wrapProgram $out/bin/global \
-      --prefix PYTHONPATH : "$(toPythonPath ${pythonPackages.pygments})"
+      --prefix PYTHONPATH : "$(toPythonPath ${pygments})"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/misc/md2man/default.nix b/nixpkgs/pkgs/development/tools/misc/go-md2man/default.nix
index 7db3c902c7cf..fe43da91b54b 100644
--- a/nixpkgs/pkgs/development/tools/misc/md2man/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/go-md2man/default.nix
@@ -1,10 +1,10 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "go-md2man";
   version = "2.0.0";
 
-  goPackagePath = "github.com/cpuguy83/go-md2man";
+  vendorSha256 = null;
 
   src = fetchFromGitHub {
     rev = "v${version}";
diff --git a/nixpkgs/pkgs/development/tools/misc/gpshell/default.nix b/nixpkgs/pkgs/development/tools/misc/gpshell/default.nix
index 13437b719536..f5298d685eba 100644
--- a/nixpkgs/pkgs/development/tools/misc/gpshell/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gpshell/default.nix
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "19a77zvyf2vazbv17185s4pynhylk2ky8vhl4i8pg9zww29sicqi";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ globalplatform pcsclite makeWrapper ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ globalplatform pcsclite ];
 
   postFixup = ''
     wrapProgram "$out/bin/gpshell" --prefix LD_LIBRARY_PATH : "${gppcscconnectionplugin}/lib"
diff --git a/nixpkgs/pkgs/development/tools/misc/gpuvis/default.nix b/nixpkgs/pkgs/development/tools/misc/gpuvis/default.nix
new file mode 100644
index 000000000000..5e0f54b2feef
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/gpuvis/default.nix
@@ -0,0 +1,42 @@
+{ fetchFromGitHub
+, freetype
+, gtk3
+, lib
+, meson
+, ninja
+, pkg-config
+, SDL2
+, stdenv
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gpuvis";
+  version = "20210220";
+
+  src = fetchFromGitHub {
+    owner = "mikesart";
+    repo = pname;
+    rev = "216f7d810e182a89fd96ab9fad2a5c2b1e425ea9";
+    sha256 = "15pj7gy0irlp849a85z68n184jksjri0xhihgh56rs15kq333mwz";
+  };
+
+  # patch dlopen path for gtk3
+  # python2 is wrongly added in the meson file, upstream PR: https://github.com/mikesart/gpuvis/pull/62
+  postPatch = ''
+    substituteInPlace src/hook_gtk3.h \
+      --replace "libgtk-3.so" "${lib.getLib gtk3}/lib/libgtk-3.so"
+  '';
+
+  nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook ];
+
+  buildInputs = [ SDL2 gtk3 freetype ];
+
+  meta = with lib; {
+    description = "GPU Trace Visualizer";
+    homepage = "https://github.com/mikesart/gpuvis";
+    license = licenses.mit;
+    maintainers = with maintainers; [ emantor ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/help2man/default.nix b/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
index 6afc4415e113..4a205268c269 100644
--- a/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
@@ -6,11 +6,11 @@
 # files.
 
 stdenv.mkDerivation rec {
-  name = "help2man-1.47.16";
+  name = "help2man-1.48.1";
 
   src = fetchurl {
     url = "mirror://gnu/help2man/${name}.tar.xz";
-    sha256 = "1x586h7wvripcay35kdh2kvydx84y8yy93ffjah2rqw6bc65iy1y";
+    sha256 = "sha256-3op0dAvQWGRlZ7kqtOzeudqfGgfMfE9gejwU3TjRB5k=";
   };
 
   nativeBuildInputs = [ gettext perlPackages.LocaleGettext ];
diff --git a/nixpkgs/pkgs/development/tools/misc/hound/default.nix b/nixpkgs/pkgs/development/tools/misc/hound/default.nix
index 201241fb8350..e5bf07089861 100644
--- a/nixpkgs/pkgs/development/tools/misc/hound/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hound/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "hound";
-  version = "unstable-2021-01-26";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "hound-search";
     repo = "hound";
-    rev = "b88fc1f79d668e6671a478ddf4fb3e73a63067b9";
-    sha256 = "00xc3cj7d3klvhsh9hivvjwgzb6lycw3r3w7nch98nv2j8iljc44";
+    rev = "v${version}";
+    sha256 = "0p5w54fr5xz19ff8k5xkyq3iqhjki8wc0hj2x1pnmk6hzrz6hf65";
   };
 
   vendorSha256 = "0x1nhhhvqmz3qssd2d44zaxbahj8lh9r4m5jxdvzqk6m3ly7y0b6";
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra/common.nix b/nixpkgs/pkgs/development/tools/misc/hydra/common.nix
index cf56e6c1a9c9..0cc7769d3c50 100644
--- a/nixpkgs/pkgs/development/tools/misc/hydra/common.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hydra/common.nix
@@ -1,11 +1,11 @@
-{ stdenv, nix, perlPackages, buildEnv, fetchFromGitHub
+{ stdenv, nix, perlPackages, buildEnv
 , makeWrapper, autoconf, automake, libtool, unzip, pkg-config, sqlite, libpqxx
 , top-git, mercurial, darcs, subversion, breezy, openssl, bzip2, libxslt
-, guile, perl, postgresql, nukeReferences, git, boehmgc, nlohmann_json
-, docbook_xsl, openssh, gnused, coreutils, findutils, gzip, lzma, gnutar
+, perl, postgresql, nukeReferences, git, boehmgc, nlohmann_json
+, docbook_xsl, openssh, gnused, coreutils, findutils, gzip, xz, gnutar
 , rpm, dpkg, cdrkit, pixz, lib, boost, autoreconfHook, src ? null, version ? null
 , migration ? false, patches ? []
-, tests ? {}
+, tests ? {}, mdbook
 }:
 
 with stdenv;
@@ -89,10 +89,10 @@ in stdenv.mkDerivation rec {
 
   hydraPath = lib.makeBinPath (
     [ sqlite subversion openssh nix coreutils findutils pixz
-      gzip bzip2 lzma gnutar unzip git top-git mercurial /*darcs*/ gnused breezy
+      gzip bzip2 xz gnutar unzip git top-git mercurial /*darcs*/ gnused breezy
     ] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] );
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  nativeBuildInputs = [ autoreconfHook pkg-config mdbook ];
 
   configureFlags = [ "--with-docbook-xsl=${docbook_xsl}/xml/xsl/docbook" ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra/default.nix b/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
index 1636ad6dd71f..40a480a09098 100644
--- a/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
@@ -2,16 +2,13 @@
 
 {
   hydra-unstable = callPackage ./common.nix {
-    version = "2020-10-20";
+    version = "2021-03-29";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "hydra";
-      rev = "79d34ed7c93af2daf32cf44ee0e3e0768f13f97c";
-      sha256 = "1lql899430137l6ghnhyz0ivkayy83fdr087ck2wq3gf1jv8pccj";
+      rev = "9bb04ed97af047968196bad1728f927f7a6d905f";
+      sha256 = "sha256-gN/zNI2hGDMnYUjeGnU7SAuXP4KCmNqG+AYOVfINaQE=";
     };
-    patches = [
-      ./hydra-nix-receiveContents.patch
-    ];
     nix = nixFlakes;
 
     tests = {
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra/hydra-nix-receiveContents.patch b/nixpkgs/pkgs/development/tools/misc/hydra/hydra-nix-receiveContents.patch
deleted file mode 100644
index 61957e2190cd..000000000000
--- a/nixpkgs/pkgs/development/tools/misc/hydra/hydra-nix-receiveContents.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Update for https://github.com/NixOS/nix/commit/faa31f40
-
---- a/src/hydra-queue-runner/nar-extractor.cc
-+++ b/src/hydra-queue-runner/nar-extractor.cc
-@@ -48,9 +48,9 @@
--    void receiveContents(unsigned char * data, size_t len) override
-+    void receiveContents(std::string_view data) override
-     {
-         assert(expectedSize);
-         assert(curMember);
-         assert(hashSink);
--        *curMember->fileSize += len;
--        (*hashSink)(data, len);
-+        *curMember->fileSize += data.size();
-+        (*hashSink)(data);
-         if (curMember->contents) {
--            curMember->contents->append((char *) data, len);
-+            curMember->contents->append(data);
diff --git a/nixpkgs/pkgs/development/tools/misc/intltool/default.nix b/nixpkgs/pkgs/development/tools/misc/intltool/default.nix
index 7a3379d59217..967fc442a73d 100644
--- a/nixpkgs/pkgs/development/tools/misc/intltool/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/intltool/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   # fix "unescaped left brace" errors when using intltool in some cases
   patches = [(fetchpatch {
     name = "perl5.26-regex-fixes.patch";
-    url = [
+    urls = [
       "https://sources.debian.org/data/main/i/intltool/0.51.0-5/debian/patches/perl5.26-regex-fixes.patch"
       "https://src.fedoraproject.org/rpms/intltool/raw/d8d2ef29fb122a42a6b6678eb1ec97ae56902af2/f/intltool-perl5.26-regex-fixes.patch"
     ];
diff --git a/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix b/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix
index a978c31c34d1..217cbe5e0296 100644
--- a/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix
@@ -1,4 +1,4 @@
-{ autoconf, fetchurl, makedepend, perl, python, lib, stdenv, unzip, zip }:
+{ autoconf, fetchurl, makedepend, perl, python3, lib, stdenv, unzip, zip }:
 
 stdenv.mkDerivation rec {
   name = "jscoverage-0.5.1";
@@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
     ./jsfalse_to_null.patch
   ];
 
-  buildInputs = [ autoconf makedepend perl python unzip zip ];
+  nativeBuildInputs = [ unzip perl python3 zip ];
+
+  strictDeps = true;
 
   # It works without MOZ_FIX_LINK_PATHS, circumventing an impurity
   # issue.  Maybe we could kick js/ (spidermonkey) completely and
diff --git a/nixpkgs/pkgs/development/tools/misc/k2tf/default.nix b/nixpkgs/pkgs/development/tools/misc/k2tf/default.nix
new file mode 100644
index 000000000000..904256ee66a9
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/k2tf/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "k2tf";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "sl1pm4t";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0i1bhn0sccvnqbd4kv2xgng5r68adhcc61im2mn8hxmds5nf6in2";
+  };
+
+  vendorSha256 = "1c2mwhrj0xapc661z1nb6am4qq3rd1pvbvjaxikjyx95n0gs8gjk";
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=v${version}" ];
+
+  meta = with lib; {
+    description = "Kubernetes YAML to Terraform HCL converter";
+    homepage = "https://github.com/sl1pm4t/k2tf";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.flokli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/kconfig-frontends/default.nix b/nixpkgs/pkgs/development/tools/misc/kconfig-frontends/default.nix
index 3b355b6218a5..ae757f0d80d6 100644
--- a/nixpkgs/pkgs/development/tools/misc/kconfig-frontends/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/kconfig-frontends/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, bison, flex, gperf, ncurses, pythonPackages }:
+{ lib, stdenv, fetchurl, pkg-config, bison, flex, gperf, ncurses, python3, bash }:
 
 stdenv.mkDerivation rec {
   basename = "kconfig-frontends";
@@ -10,17 +10,15 @@ stdenv.mkDerivation rec {
     url = "http://ymorin.is-a-geek.org/download/${basename}/${name}.tar.xz";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ bison flex gperf ncurses pythonPackages.python pythonPackages.wrapPython ];
+  nativeBuildInputs = [ bison flex gperf pkg-config ];
+  buildInputs = [ bash ncurses python3 ];
+
+  strictDeps = true;
 
   configureFlags = [
     "--enable-frontends=conf,mconf,nconf"
   ];
 
-  postInstall = ''
-    wrapPythonPrograms
-  '';
-
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=format-security";
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix b/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
index dad7d41c1f68..35e0a52865fa 100644
--- a/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
     wrapProgram $out/bin/kdbg --prefix QT_PLUGIN_PATH : ${qtbase}/${qtbase.qtPluginPrefix}
   '';
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://www.kdbg.org/";
     description = ''
diff --git a/nixpkgs/pkgs/development/tools/misc/kibana/6.x.nix b/nixpkgs/pkgs/development/tools/misc/kibana/6.x.nix
index 3fa2d219fe3a..9ba19c836b59 100644
--- a/nixpkgs/pkgs/development/tools/misc/kibana/6.x.nix
+++ b/nixpkgs/pkgs/development/tools/misc/kibana/6.x.nix
@@ -42,7 +42,7 @@ in stdenv.mkDerivation rec {
     ./disable-nodejs-version-check.patch
   ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/libexec/kibana $out/bin
diff --git a/nixpkgs/pkgs/development/tools/misc/kibana/7.x.nix b/nixpkgs/pkgs/development/tools/misc/kibana/7.x.nix
index 7f46d6f65120..754559969d50 100644
--- a/nixpkgs/pkgs/development/tools/misc/kibana/7.x.nix
+++ b/nixpkgs/pkgs/development/tools/misc/kibana/7.x.nix
@@ -42,7 +42,7 @@ in stdenv.mkDerivation rec {
     ./disable-nodejs-version-check-7.patch
   ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/libexec/kibana $out/bin
diff --git a/nixpkgs/pkgs/development/tools/misc/macdylibbundler/default.nix b/nixpkgs/pkgs/development/tools/misc/macdylibbundler/default.nix
index c92d7b077983..f37815081ee4 100644
--- a/nixpkgs/pkgs/development/tools/misc/macdylibbundler/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/macdylibbundler/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "149p3dcnap4hs3nhq5rfvr3m70rrb5hbr5xkj1h0gsfp0d7gvxnj";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix b/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix
index 2999b741888a..d3bca0b684c7 100644
--- a/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix
@@ -1,38 +1,35 @@
-{
-  pkgs
-, stdenv
+{ stdenv
 , libusb-compat-0_1
 , fetchFromGitHub
 , lib
 }:
 stdenv.mkDerivation rec {
-   pname = "micronucleus";
-   version = "2.04";
+  pname = "micronucleus";
+  version = "2.04";
 
-   sourceRoot = "source/commandline";
+  sourceRoot = "source/commandline";
 
-   src = fetchFromGitHub {
-     owner = "micronucleus";
-     repo = "micronucleus";
-     rev = version;
-     sha256 = "14msy9amlbflw5mqrbs57b7bby3nsgx43srr7215zyhfdgsla0in";
-   };
+  src = fetchFromGitHub {
+    owner = "micronucleus";
+    repo = "micronucleus";
+    rev = version;
+    sha256 = "14msy9amlbflw5mqrbs57b7bby3nsgx43srr7215zyhfdgsla0in";
+  };
 
-   buildInputs = [ libusb-compat-0_1 ];
-   makeFlags = lib.optionals stdenv.isDarwin [ "CC=cc" ];
+  buildInputs = [ libusb-compat-0_1 ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
-   installPhase = ''
-     mkdir -p $out/bin
-     mkdir -p $out/lib/udev
-     cp micronucleus $out/bin
-     cp 49-micronucleus.rules $out/lib/udev
-   '';
-
-   meta = with lib; {
-     description = "Upload tool for micronucleus";
-     homepage = "https://github.com/micronucleus/micronucleus";
-     license = licenses.gpl3;
-     maintainers = [ maintainers.cab404 ];
-   };
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/lib/udev
+    cp micronucleus $out/bin
+    cp 49-micronucleus.rules $out/lib/udev
+  '';
 
+  meta = with lib; {
+    description = "Upload tool for micronucleus";
+    homepage = "https://github.com/micronucleus/micronucleus";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.cab404 ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/msitools/default.nix b/nixpkgs/pkgs/development/tools/misc/msitools/default.nix
index f444f86dbfbe..96ce9d405914 100644
--- a/nixpkgs/pkgs/development/tools/misc/msitools/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/msitools/default.nix
@@ -1,27 +1,87 @@
-{ lib, stdenv, fetchurl, intltool, glib, pkg-config, libgsf, libuuid, gcab, bzip2, gnome3 }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, meson
+, ninja
+, vala
+, gobject-introspection
+, perl
+, bison
+, gettext
+, glib
+, pkg-config
+, libgsf
+, gcab
+, bzip2
+, gnome3
+}:
 
 stdenv.mkDerivation rec {
   pname = "msitools";
-  version = "0.98";
+  version = "0.101";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19wb3n3nwkpc6bjr0q3f1znaxsfaqgjbdxxnbx8ic8bb5b49hwac";
+    sha256 = "DMTS4NEI+m8rQIW5qX3VvG2fyt7N2TPyCU+Guv2+hf4=";
   };
 
-  nativeBuildInputs = [ intltool pkg-config ];
-  buildInputs = [ glib libgsf libuuid gcab bzip2 ];
+  patches = [
+    # Fix executable bit on tools (regression in Meson migration).
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/msitools/commit/25c4353cf173cddeb76c0a2dd6621bcb753cabf8.patch";
+      sha256 = "VknfZCCn4jxwn9l9noXdGczv2kV+IbOsw9cNBE67P1U=";
+    })
+
+    # Fix failure on big-endian platforms.
+    # https://gitlab.gnome.org/GNOME/msitools/issues/31
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/skitt/msitools/commit/3668c8288085d5beefae7c1387330ce9599b8365.patch";
+      sha256 = "x3Mp+9TRqBAJIdzVn68HyYt0lujyMk5h5xSBUQHe9Oo=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    vala
+    gobject-introspection
+    perl
+    bison
+    gettext
+    pkg-config
+  ];
+
+  buildInputs = [
+    glib
+    libgsf
+    gcab
+    bzip2
+  ];
+
+  doCheck = true;
+
+  postPatch = ''
+    patchShebangs subprojects/bats-core/{bin,libexec}
+  '';
 
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
+      versionPolicy = "none";
     };
   };
 
   meta = with lib; {
     description = "Set of programs to inspect and build Windows Installer (.MSI) files";
     homepage = "https://wiki.gnome.org/msitools";
-    license = [ licenses.gpl2 licenses.lgpl21 ];
+    license = with licenses; [
+      # Library
+      lgpl21Plus
+      # Tools
+      gpl2Plus
+    ];
+    maintainers = with maintainers; [ PlushBeaver ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/nimlsp/default.nix b/nixpkgs/pkgs/development/tools/misc/nimlsp/default.nix
index 1919e26ddec4..7f73fb9a1bc3 100644
--- a/nixpkgs/pkgs/development/tools/misc/nimlsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/nimlsp/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     export HOME=$TMPDIR
     nim -d:release -p:${astpatternmatching}/src -p:${jsonschema}/src \
       c --threads:on -d:nimcore -d:nimsuggest -d:debugCommunication \
-      -d:debugLogging -d:explicitSourcePath=${srcOnly nim.unwrapped} -d:tempDir=/tmp src/nimlsp
+      -d:debugLogging -d:explicitSourcePath=${srcOnly nim.passthru.nim} -d:tempDir=/tmp src/nimlsp
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix b/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
index 74309a33f22f..8b603fbc5ce5 100644
--- a/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nxpmicro-mfgtools";
-  version = "1.4.43";
+  version = "1.4.72";
 
   src = fetchFromGitHub {
     owner = "NXPmicro";
     repo = "mfgtools";
     rev = "uuu_${version}";
-    sha256 = "1i1mvr6j0mc33axf6cmmsi83apr5rgq0z0sn23qav9r0izpnnh0w";
+    sha256 = "1s3wlz4yb2p8by5p66vr0z72n84mxkrmda63x9yr6pinqinsyrvv";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -25,6 +25,14 @@ stdenv.mkDerivation rec {
 
   preConfigure = "echo ${version} > .tarball-version";
 
+  postInstall = ''
+    # rules printed by the following invocation are static,
+    # they come from hardcoded configs in libuuu/config.cpp:48
+    $out/bin/uuu -udev > udev-rules 2>stderr.txt
+    rules_file="$(cat stderr.txt|grep '1: put above udev run into'|sed 's|^.*/||')"
+    install -D udev-rules "$out/lib/udev/rules.d/$rules_file"
+  '';
+
   meta = with lib; {
     description = "Freescale/NXP I.MX chip image deploy tools";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/tools/misc/openfpgaloader/default.nix b/nixpkgs/pkgs/development/tools/misc/openfpgaloader/default.nix
index 94f92bfcf298..9537e11e1127 100644
--- a/nixpkgs/pkgs/development/tools/misc/openfpgaloader/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/openfpgaloader/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openfpgaloader";
-  version = "0.2.1";
+  version = "0.2.5";
 
   src = fetchFromGitHub {
     owner = "trabucayre";
     repo = "openFPGALoader";
     rev = "v${version}";
-    sha256 = "0j87mlghbanh6c7lrxv0x3p6zgd0wrkcs9b8jf6ifh7b3ivcfg82";
+    sha256 = "sha256-Qbw+vmpxiZXTGM0JwpS5mGzcsSJNegsvmncm+cOVrVE=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/development/tools/misc/openocd/default.nix b/nixpkgs/pkgs/development/tools/misc/openocd/default.nix
index bf50a380d1fc..7b3a16fb75e4 100644
--- a/nixpkgs/pkgs/development/tools/misc/openocd/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/openocd/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
-, fetchgit
-, autoreconfHook
+, fetchurl
 , pkg-config
 , hidapi
 , libftdi1
@@ -10,16 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openocd";
-  version = "0.11.0-rc1";
-
-  src = fetchgit {
-    url = "https://git.code.sf.net/p/openocd/code";
-    rev = "v${version}";
-    sha256 = "15g8qalyxhdp0imfrg8mxwnp0nimd836fc5laaavajw49gcm65m4";
-    fetchSubmodules = true;
+  version = "0.11.0";
+  src = fetchurl {
+    url = "mirror://sourceforge/project/${pname}/${pname}/${version}/${pname}-${version}.tar.bz2";
+    sha256 = "0z8y7mmv0mhn2l5gs3vz6l7cnwak7agklyc7ml33f7gz99rwx8s3";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ hidapi libftdi1 libusb1 ];
 
@@ -64,7 +60,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://openocd.sourceforge.net/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ bjornfor ];
+    maintainers = with maintainers; [ bjornfor prusnak ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/pahole/default.nix b/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
index c39ef5e00516..86e1dac021c2 100644
--- a/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
@@ -2,11 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "pahole";
-  version = "1.17";
+  version = "1.20";
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/devel/pahole/pahole.git";
     rev = "v${version}";
-    sha256 = "13dxsmhpf9n2wqggf4gd6f12rm0vhv0q96jd50gkvaxzzvgpzzbc";
+    sha256 = "11q9dpfi4qj2v8z0nlf8c0079mlv10ljhh0d1yr0j4ds3saacd15";
+    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake ];
@@ -18,7 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://git.kernel.org/cgit/devel/pahole/pahole.git/";
     description = "Pahole and other DWARF utils";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
 
     platforms = platforms.linux;
     maintainers = [ maintainers.bosu ];
diff --git a/nixpkgs/pkgs/development/tools/misc/pkgconf/default.nix b/nixpkgs/pkgs/development/tools/misc/pkgconf/default.nix
index c6c984f9699f..2c55a6f03a7f 100644
--- a/nixpkgs/pkgs/development/tools/misc/pkgconf/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/pkgconf/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pkgconf";
-  version = "1.7.3";
+  version = "1.7.4";
 
   nativeBuildInputs = [ removeReferencesTo ];
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://distfiles.dereferenced.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1h7rf5cch0cbxp8nmjkkf272zrz2jgpqpr8a58ww75pn3jjswimq";
+    sha256 = "sha256-1z8ywkikWRE5prF3d8gNTeq2tBTsKz0h0KJL40jEdqs=";
   };
 
   # Debian has outputs like these too:
diff --git a/nixpkgs/pkgs/development/tools/misc/premake/3.nix b/nixpkgs/pkgs/development/tools/misc/premake/3.nix
index 9176842d75d0..d72cca0e785b 100644
--- a/nixpkgs/pkgs/development/tools/misc/premake/3.nix
+++ b/nixpkgs/pkgs/development/tools/misc/premake/3.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "b59841a519e75d5b6566848a2c5be2f91455bf0cc6ae4d688fcbd4c40db934d5";
   };
 
-  buildInputs = [unzip];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     install -Dm755 bin/premake $out/bin/premake
diff --git a/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix b/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
index 69ed17ab4b9e..764fa6677345 100644
--- a/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
@@ -46,7 +46,7 @@ in stdenv.mkDerivation rec {
     description = "Exploit Development and Reverse Engineering with GDB Made Easy";
     homepage = "https://github.com/pwndbg/pwndbg";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ mic92 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/rman/default.nix b/nixpkgs/pkgs/development/tools/misc/rman/default.nix
index 1f7de915c974..bf71b619e5aa 100644
--- a/nixpkgs/pkgs/development/tools/misc/rman/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/rman/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation {
 
   postPatch = ''
     substituteInPlace Makefile \
-      --replace ginstall install
+      --replace ginstall install \
+      --replace gcc '${stdenv.cc.targetPrefix}cc'
   '';
 
   makeFlags = [ "BINDIR=$(out)/bin" "MANDIR=$(out)/share/man" ];
@@ -27,6 +28,6 @@ stdenv.mkDerivation {
   meta = {
     description = "Parse formatted man pages and man page source from most flavors of UNIX and converts them to HTML, ASCII, TkMan, DocBook, and other formats";
     license = "artistic";
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix b/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
index d86277993caa..b26fbf75031d 100644
--- a/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     inherit name;
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   # The default build phase (`make`) runs the test code. It's difficult to do
   # the test in the build environment because it depends on the system package
diff --git a/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix b/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
index c26e834ee0f7..5943b57d8088 100644
--- a/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     categories = "Development";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     # Copy prebuilt app to $out
diff --git a/nixpkgs/pkgs/development/tools/misc/scc/default.nix b/nixpkgs/pkgs/development/tools/misc/scc/default.nix
index 8a5cbbcfdfae..9dfa5955f5c9 100644
--- a/nixpkgs/pkgs/development/tools/misc/scc/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/scc/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "scc";
-  version = "2.13.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "boyter";
     repo = "scc";
     rev = "v${version}";
-    sha256 = "16p5g20n5jsbisbgikk9xny94xx6c0dxf19saa686ghh31jr2hh3";
+    sha256 = "sha256-G5LYOtAUnu82cgDdtYzcfVx/WFg9/HvFQAlQtd6GaDE=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/development/tools/misc/sccache/default.nix b/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
index c41ab92fb97d..4379efd5071b 100644
--- a/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1cfdwf00jgwsv0f72427asid1xr57s56jk5xj489dgppvgy7wdbj";
 
-  cargoBuildFlags = [ "--features=all" ];
+  cargoBuildFlags = lib.optionals (!stdenv.isDarwin) [ "--features=dist-client,dist-server" ];
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
@@ -27,6 +27,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mozilla/sccache";
     maintainers = with maintainers; [ doronbehar ];
     license = licenses.asl20;
-    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/segger-ozone/default.nix b/nixpkgs/pkgs/development/tools/misc/segger-ozone/default.nix
new file mode 100644
index 000000000000..5e1c6888b8e5
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/segger-ozone/default.nix
@@ -0,0 +1,84 @@
+{ stdenv
+, fetchurl
+, fontconfig
+, freetype
+, lib
+, libICE
+, libSM
+, udev
+, libX11
+, libXcursor
+, libXext
+, libXfixes
+, libXrandr
+, libXrender
+}:
+
+stdenv.mkDerivation rec {
+  pname = "segger-ozone";
+  version = "3.22a";
+
+  src = fetchurl {
+    url = "https://www.segger.com/downloads/jlink/Ozone_Linux_V${(lib.replaceChars ["."] [""] version)}_x86_64.tgz";
+    sha256 = "0v1r8qvp1w2f3yip9fys004pa0smlmq69p7w77lfvghs1rmg1649";
+  };
+
+  rpath = lib.makeLibraryPath [
+    fontconfig
+    freetype
+    libICE
+    libSM
+    udev
+    libX11
+    libXcursor
+    libXext
+    libXfixes
+    libXrandr
+    libXrender
+  ]
+  + ":${stdenv.cc.cc.lib}/lib64";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv Lib lib
+    mv * $out
+    ln -s $out/Ozone $out/bin
+  '';
+
+  postFixup = ''
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/Ozone" \
+      --set-rpath ${rpath}:$out/lib "$out/Ozone"
+
+    for file in $(find $out/lib -maxdepth 1 -type f -and -name \*.so\*); do
+      patchelf --set-rpath ${rpath}:$out/lib $file
+    done
+  '';
+
+  meta = with lib; {
+    description = "J-Link Debugger and Performance Analyzer";
+    longDescription = ''
+      Ozone is a cross-platform debugger and performance analyzer for J-Link
+      and J-Trace.
+
+        - Stand-alone graphical debugger
+        - Debug output of any tool chain and IDE 1
+        - C/C++ source level debugging and assembly instruction debugging
+        - Debug information windows for any purpose: disassembly, memory,
+          globals and locals, (live) watches, CPU and peripheral registers
+        - Source editor to fix bugs immediately
+        - High-speed programming of the application into the target
+        - Direct use of J-Link built-in features (Unlimited Flash
+          Breakpoints, Flash Download, Real Time Terminal, Instruction Trace)
+        - Scriptable project files to set up everything automatically
+          - New project wizard to ease the basic configuration of new projects
+
+      1 Ozone has been tested with the output of the following compilers:
+      GCC, Clang, ARM, IAR. Output of other compilers may be supported but is
+      not guaranteed to be.
+    '';
+    homepage = "https://www.segger.com/products/development-tools/ozone-j-link-debugger";
+    license = licenses.unfree;
+    maintainers = [ maintainers.bmilanov ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix b/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix
index fc041f2ee8d6..2fd984902875 100644
--- a/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  makeFlags = [ "PREFIX=$(out)" "CC=cc" ];
+  makeFlags = [ "PREFIX=$(out)" "CC=${stdenv.cc.targetPrefix}cc" ];
 
   doCheck = true;
   checkPhase = ''HOME="$TMPDIR" PATH="$PWD:$PATH" make test'';
diff --git a/nixpkgs/pkgs/development/tools/misc/stm32flash/default.nix b/nixpkgs/pkgs/development/tools/misc/stm32flash/default.nix
index bc7d4b1b3dc8..8b9646713e88 100644
--- a/nixpkgs/pkgs/development/tools/misc/stm32flash/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/stm32flash/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "01p396daqw3zh6nijffbfbwyqza33bi2k4q3m5yjzs02xwi99alp";
   };
 
-  buildFlags = [ "CC=cc" ];
+  buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     # Manually copy, make install copies to /usr/local/bin
diff --git a/nixpkgs/pkgs/development/tools/misc/strace/default.nix b/nixpkgs/pkgs/development/tools/misc/strace/default.nix
index 004e1527d352..f36b1cf4495b 100644
--- a/nixpkgs/pkgs/development/tools/misc/strace/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/strace/default.nix
@@ -1,12 +1,16 @@
 { lib, stdenv, fetchurl, perl, libunwind, buildPackages }:
 
+# libunwind does not have the supportsHost attribute on darwin, thus
+# when this package is evaluated it causes an evaluation error
+assert stdenv.isLinux;
+
 stdenv.mkDerivation rec {
   pname = "strace";
-  version = "5.10";
+  version = "5.11";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-/jmC6kzZrrO0ujX2J58LV3o3F10ygr4kuaVTe1a48Bw=";
+    sha256 = "sha256-/+NAsQwUWg+Fc0Jx6czlZFfSPyGn6lkxqzL4z055OHk=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/nixpkgs/pkgs/development/tools/misc/svls/default.nix b/nixpkgs/pkgs/development/tools/misc/svls/default.nix
index c6915e294d2e..6af24ed5d10b 100644
--- a/nixpkgs/pkgs/development/tools/misc/svls/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/svls/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svls";
-  version = "0.1.25";
+  version = "0.1.27";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = "svls";
     rev = "v${version}";
-    sha256 = "sha256-+o15rElJZXQu2Hq1/79ms9wqYimINrViSdQltSJlGN8=";
+    sha256 = "sha256-+/4D0pRZs1Gy6DJnsDZA8wWi1FKhr7gRS0oq1TyWpuE=";
   };
 
-  cargoSha256 = "sha256-zLDUQcnvjyr+QJLVq6ADGPee0Fd7HeDhPAkb05hYLcE=";
+  cargoSha256 = "sha256-o6/L/4QcIei4X1pHYjV72hcEmTMp+pvJkwbb+niqWP8=";
 
   meta = with lib; {
     description = "SystemVerilog language server";
diff --git a/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix b/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
index 29edccf496ee..6f02e934394a 100644
--- a/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terracognita";
-  version = "0.6.0";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "cycloidio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1f0wi5mlb9r7ncvyvgmcdfngxrzgbdv7hm2ckb8bwmzcki2h2255";
+    sha256 = "sha256-rRSBPnvv4941IUGN/6+8/hzgYDqgPErNkd7tFrslPiQ=";
   };
 
-  vendorSha256 = "015r7zvah7lk5rbkaqhh2abbv19ky1in3ngzzrdvhbcqfns25iqr";
+  vendorSha256 = "sha256-sN9GTcG5cZxvMaLqNjY2jfLkf8a3lugM2aV3bBdT5Ww=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix b/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
index 9695c75a3c16..54adb5f8296f 100644
--- a/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "terraform-ls";
-  version = "0.13.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0WbUJYNRBKixRFl+YM1uSEltQneB6FYPFHNVVhmdseA=";
+    sha256 = "sha256-/g62LSlaIK67oY6dI8S3Lni85eBBI6piqP2Fsq3HXWQ=";
   };
-  vendorSha256 = "sha256-WYTn2QoI1Z3L4Wxjrq0YT++X9vMA1Wm3zgl08CYiU1Y=";
+  vendorSha256 = "sha256-U0jVdyY4SifPWkOkq3ohY/LvfGcYm4rI+tW1QEm39oo=";
 
   # tests fail in sandbox mode because of trying to download stuff from releases.hashicorp.com
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix b/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix
index 47c9c15a0cc7..60124ef44c93 100644
--- a/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terraformer";
-  version = "0.8.10";
+  version = "0.8.11";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = pname;
     rev = version;
-    sha256 = "005i66d2gkyixqh9sk452la7z86d5x9q3njngjf4z9slcbpgk7bl";
+    sha256 = "sha256-y6cgBYiqy+M8dfcNS6iDohqyip6xAs222MJHJFhloiI=";
   };
 
-  vendorSha256 = "02i1q11nivdlkhf9chpi03p8jpa0fx9wbf79j834qv4fqy7jqf6l";
+  vendorSha256 = "sha256-PQj3+qcmN/raDrAbufAcVT+vSumGuOY47i7ZYfvx3yk=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/texinfo/4.13a.nix b/nixpkgs/pkgs/development/tools/misc/texinfo/4.13a.nix
index 5f4478bd4fbb..b8da38ace6fb 100644
--- a/nixpkgs/pkgs/development/tools/misc/texinfo/4.13a.nix
+++ b/nixpkgs/pkgs/development/tools/misc/texinfo/4.13a.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, texinfo, ncurses, lzma }:
+{ stdenv, fetchurl, texinfo, ncurses, xz }:
 
 stdenv.mkDerivation rec {
   pname = "texinfo";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ncurses ];
-  nativeBuildInputs = [ lzma ];
+  nativeBuildInputs = [ xz ];
 
   # Disabled because we don't have zdiff in the stdenv bootstrap.
   #doCheck = true;
diff --git a/nixpkgs/pkgs/development/tools/misc/tie/default.nix b/nixpkgs/pkgs/development/tools/misc/tie/default.nix
index e75248aa8673..52a740ed1c8c 100644
--- a/nixpkgs/pkgs/development/tools/misc/tie/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tie/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildPhase = ''
-    cc tie.c -o tie
+    ${stdenv.cc.targetPrefix}cc tie.c -o tie
   '';
 
   installPhase = ''
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.ctan.org/tex-archive/web/tie";
     description = "Allow multiple web change files";
-    platforms = with platforms; unix;
+    platforms = platforms.all;
     maintainers = with maintainers; [ vrthra ];
     license = licenses.abstyles;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix b/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix
index f6b51a969b27..759c83e81c8a 100644
--- a/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   name = "${product}-${version}";
   product = "uncrustify";
-  version = "0.71.0";
+  version = "0.72.0";
 
   src = fetchFromGitHub {
     owner = product;
     repo = product;
     rev = name;
-    sha256 = "1wyhkhn000yad94fnjj61h7lyvan6hig8wh7jxlnyp5wxdwki0pj";
+    sha256 = "sha256-ZVC5tsn2m1uB7EPNJFPLWLZpLSk4WrFOgJvy1KFYqBY=";
   };
 
   nativeBuildInputs = [ cmake python ];
diff --git a/nixpkgs/pkgs/development/tools/misc/unifdef/default.nix b/nixpkgs/pkgs/development/tools/misc/unifdef/default.nix
index 53e2b2762d31..ebb034a92e72 100644
--- a/nixpkgs/pkgs/development/tools/misc/unifdef/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/unifdef/default.nix
@@ -1,31 +1,24 @@
-{ fetchurl, lib, stdenv }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "unifdef-2.6";
+  pname = "unifdef";
+  version = "2.12";
 
   src = fetchurl {
-    url    = "https://github.com/fanf2/unifdef/archive/${name}.tar.gz";
-    sha256 = "1p5wr5ms9w8kijy9h7qs1mz36dlavdj6ngz2bks588w7a20kcqxj";
+    url = "https://dotat.at/prog/unifdef/unifdef-${version}.tar.xz";
+    sha256 = "00647bp3m9n01ck6ilw6r24fk4mivmimamvm4hxp5p6wxh10zkj3";
   };
 
-  postUnpack = ''
-    substituteInPlace $sourceRoot/unifdef.c \
-      --replace '#include "version.h"' ""
-
-    substituteInPlace $sourceRoot/Makefile \
-      --replace "unifdef.c: version.h" "unifdef.c:"
-  '';
-
-  preBuild = ''
-    unset HOME
-    export DESTDIR=$out
-  '';
+  makeFlags = [
+    "prefix=$(out)"
+    "DESTDIR="
+  ];
 
   meta = with lib; {
-    homepage = "http://dotat.at/prog/unifdef/";
+    homepage = "https://dotat.at/prog/unifdef/";
     description = "Selectively remove C preprocessor conditionals";
     license = licenses.bsd2;
     platforms = platforms.unix;
-    maintainers = [ maintainers.vrthra ];
+    maintainers = with maintainers; [ orivej vrthra ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/universal-ctags/default.nix b/nixpkgs/pkgs/development/tools/misc/universal-ctags/default.nix
index bd362e8d1a45..eea1e78d4032 100644
--- a/nixpkgs/pkgs/development/tools/misc/universal-ctags/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/universal-ctags/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, perl, pythonPackages, libiconv, jansson }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, coreutils, pkg-config, perl, python3Packages, libiconv, jansson }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "universal-ctags";
-  version = "unstable-2019-07-30";
+  version = "5.9.20201206.0";
 
   src = fetchFromGitHub {
     owner = "universal-ctags";
     repo = "ctags";
-    rev = "920e7910146915e5cae367bc9f135ffd8b042042";
-    sha256 = "14n3ix77rkhq6vq6kspmgjrmm0kg0f8cxikyqdq281sbnfq8bajn";
+    rev = "p${version}";
+    sha256 = "0w10zjyz46sjm6ypxmq550dkr84hvc4phm4vm9j53jp5s19x5q19";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config pythonPackages.docutils ];
+  nativeBuildInputs = [ autoreconfHook coreutils pkg-config python3Packages.docutils ];
   buildInputs = [ jansson ] ++ lib.optional stdenv.isDarwin libiconv;
 
   # to generate makefile.in
@@ -25,6 +25,9 @@ stdenv.mkDerivation {
     # Remove source of non-determinism
     substituteInPlace main/options.c \
       --replace "printf (\"  Compiled: %s, %s\n\", __DATE__, __TIME__);" ""
+
+    substituteInPlace Tmain/utils.sh \
+      --replace /bin/echo ${coreutils}/bin/echo
   '';
 
   postConfigure = ''
diff --git a/nixpkgs/pkgs/development/tools/misc/yodl/default.nix b/nixpkgs/pkgs/development/tools/misc/yodl/default.nix
index a8b48e9fa53f..4f4dddbc9453 100644
--- a/nixpkgs/pkgs/development/tools/misc/yodl/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/yodl/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "yodl";
-  version = "4.02.02";
+  version = "4.03.02";
 
   nativeBuildInputs = [ icmake ];
 
   buildInputs = [ perl ];
 
   src = fetchFromGitLab {
-    sha256 = "1kf4h99p9i35fgas8z5wdy2qpd7gqfd645b5z7mfssjzsfdrv745";
+    sha256 = "sha256-ZxiF9He0JgqhbnQS2pE7Y85sED8avbdwGuVmFN8/XgE=";
     rev = version;
     repo = "yodl";
     owner = "fbb-git";
diff --git a/nixpkgs/pkgs/development/tools/mockgen/default.nix b/nixpkgs/pkgs/development/tools/mockgen/default.nix
index 104988eb213b..06004b9f779a 100644
--- a/nixpkgs/pkgs/development/tools/mockgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/mockgen/default.nix
@@ -1,14 +1,14 @@
 { buildGoModule, lib, fetchFromGitHub }:
 buildGoModule rec {
   pname = "mockgen";
-  version = "1.4.4";
+  version = "1.5.0";
   src = fetchFromGitHub {
     owner = "golang";
     repo = "mock";
     rev = "v${version}";
-    sha256 = "1lj0dvd6div4jaq1s0afpwqaq9ah8cxhkq93wii2ably1xmp2l0a";
+    sha256 = "sha256-YSPfe8/Ra72qk12+T78mTppvkag0Hw6O7WNyfhG4h4o=";
   };
-  vendorSha256 = "1md4cg1zzhc276sc7i2v0xvg5pf6gzy0n9ga2g1lx3d572igq1wy";
+  vendorSha256 = "sha256-cL4a7iOSeaQiG6YO0im9bXxklCL1oyKhEDmB1BtEmEw=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/neoload/default.nix b/nixpkgs/pkgs/development/tools/neoload/default.nix
index fb85aa80dc35..63452728b91e 100644
--- a/nixpkgs/pkgs/development/tools/neoload/default.nix
+++ b/nixpkgs/pkgs/development/tools/neoload/default.nix
@@ -41,7 +41,7 @@ in stdenv.mkDerivation {
       { url = "http://neoload.installers.neotys.com/documents/download/neoload/v4.1/neoload_4_1_4_linux_x86.sh";
         sha256 = "1z66jiwcxixsqqwa0f4q8m2p5kna4knq6lic8y8l74dgv25mw912"; } );
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   phases = [ "installPhase" ];
 
   # TODO: load generator / monitoring agent only builds
diff --git a/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix b/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
index 31358129821e..475c08eb169f 100644
--- a/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
+++ b/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
@@ -49,7 +49,7 @@ in stdenv.mkDerivation rec {
     ln -s $out/share/nwjs/nwjc $out/bin
   '';
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   meta = with lib; {
     description = "An app runtime based on Chromium and node.js";
diff --git a/nixpkgs/pkgs/development/tools/nrpl/default.nix b/nixpkgs/pkgs/development/tools/nrpl/default.nix
index 72177582919a..67a86ca8dec5 100644
--- a/nixpkgs/pkgs/development/tools/nrpl/default.nix
+++ b/nixpkgs/pkgs/development/tools/nrpl/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation {
     sha256 = "1cly9lhrawnc42r31b7r0p0i6hcx8r00aa17gv7w9pcpj8ngb4v2";
   };
 
-  buildInputs = [ makeWrapper nim pcre ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ nim pcre ];
 
   patches = [
     (fetchpatch {
diff --git a/nixpkgs/pkgs/development/tools/nwjs/default.nix b/nixpkgs/pkgs/development/tools/nwjs/default.nix
index d3490b2b9c99..1356bc46ced8 100644
--- a/nixpkgs/pkgs/development/tools/nwjs/default.nix
+++ b/nixpkgs/pkgs/development/tools/nwjs/default.nix
@@ -83,7 +83,7 @@ in stdenv.mkDerivation rec {
       ln -s $out/share/nwjs/nw $out/bin
   '';
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   meta = with lib; {
     description = "An app runtime based on Chromium and node.js";
diff --git a/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix b/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix
index e48707dcb9af..07082b7f5d22 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix
@@ -1,10 +1,12 @@
-{ lib, buildDunePackage, fetchurl, ocaml, cmdliner, opaline, ptime }:
+{ lib, buildDunePackage, fetchurl, ocaml, cmdliner, ptime }:
 
 buildDunePackage rec {
 
   pname = "crunch";
   version = "3.1.0";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-crunch/releases/download/v${version}/crunch-v${version}.tbz";
     sha256 = "0d26715a4h9r1wibnc12xy690m1kan7hrcgbb5qk8x78zsr67lnf";
@@ -15,7 +17,7 @@ buildDunePackage rec {
   outputs = [ "lib" "bin" "out" ];
 
   installPhase = ''
-    ${opaline}/bin/opaline -prefix $bin -libdir $lib/lib/ocaml/${ocaml.version}/site-lib/
+    dune install --prefix=$bin --libdir=$lib/lib/ocaml/${ocaml.version}/site-lib/
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune/default.nix b/nixpkgs/pkgs/development/tools/ocaml/dune/1.nix
index bbdbc45270d0..a16b3ab23f22 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/dune/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/dune/1.nix
@@ -1,6 +1,7 @@
 { stdenv, lib, fetchurl, ocaml, findlib }:
 
 if !lib.versionAtLeast ocaml.version "4.02"
+|| lib.versionAtLeast ocaml.version "4.12"
 then throw "dune is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
index f2fe3693ed7a..f1365792fbca 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
@@ -6,11 +6,11 @@ else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "2.8.2";
+  version = "2.8.5";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
-    sha256 = "07mf6pnmv1a6wh4la45zf6cn6qy2vcmz4xgx0djj75kw1wiyii72";
+    sha256 = "0a9n8ilsi3kyx5xqvk5s7iikk6y3pkpm5mvsn5za5ivlzf1i40br";
   };
 
   buildInputs = [ ocaml findlib ];
diff --git a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index f1398c2f7c7d..12306d2a305a 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -1,16 +1,16 @@
 { lib, fetchurl, buildDunePackage
-, cmdliner, cppo, yojson, ppxlib
+, ocaml, cmdliner, cppo, yojson, ppxlib
 , menhir
 }:
 
 buildDunePackage rec {
   pname = "js_of_ocaml-compiler";
-  version = "3.8.0";
+  version = "3.9.1";
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
-    sha256 = "069jyiayxcgwnips3adxb3d53mzd4rrq2783b9fgmsiyzm545lcy";
+    sha256 = "0ib551kfsjlp9vr3fk36hrbq7xxyl8bj6vcn3ccr0s370bsmgpm6";
   };
 
   nativeBuildInputs = [ cppo menhir ];
diff --git a/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix b/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix
new file mode 100644
index 000000000000..77595169565f
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix
@@ -0,0 +1,77 @@
+{ lib
+, substituteAll
+, fetchurl
+, ocaml
+, dune_2
+, buildDunePackage
+, yojson
+, csexp
+, result
+, dot-merlin-reader
+, jq
+, menhir
+}:
+
+let
+  merlinVersion = "4.1";
+
+  hashes = {
+    "4.1-411" = "9e2e6fc799c93ce1f2c7181645eafa37f64e43ace062b69218e1c29ac459937d";
+    "4.1-412" = "fb4caede73bdb8393bd60e31792af74b901ae2d319ac2f2a2252c694d2069d8d";
+  };
+
+  ocamlVersionShorthand = lib.concatStrings
+    (lib.take 2 (lib.splitVersion ocaml.version));
+
+  version = "${merlinVersion}-${ocamlVersionShorthand}";
+in
+
+if !lib.hasAttr version hashes
+then builtins.throw "merlin ${merlinVersion} is not available for OCaml ${ocaml.version}"
+else
+
+buildDunePackage {
+  pname = "merlin";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
+    sha256 = hashes."${version}";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      dot_merlin_reader = "${dot-merlin-reader}/bin/dot-merlin-reader";
+      dune = "${dune_2}/bin/dune";
+    })
+  ];
+
+  useDune2 = true;
+
+  buildInputs = [
+    dot-merlin-reader
+    yojson
+    csexp
+    result
+  ];
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+    patchShebangs tests/merlin-wrapper
+    dune runtest # filtering with -p disables tests
+    runHook postCheck
+  '';
+  checkInputs = [
+    jq
+    menhir
+  ];
+
+  meta = with lib; {
+    description = "An editor-independent tool to ease the development of programs in OCaml";
+    homepage = "https://github.com/ocaml/merlin";
+    license = licenses.mit;
+    maintainers = [ maintainers.vbgl maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix b/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix
index ce168084f2c6..1c9b549d6120 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix
@@ -3,8 +3,14 @@
 
 buildDunePackage rec {
   pname = "merlin";
+  version = "3.4.2";
 
-  inherit (dot-merlin-reader) src version useDune2;
+  src = fetchurl {
+    url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
+    sha256 = "e1b7b897b11119d92995c558530149fd07bd67a4aaf140f55f3c4ffb5e882a81";
+  };
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.02.3";
 
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 009998a3f851..894fe6f75ae9 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
@@ -1,18 +1,16 @@
-{ lib, fetchurl, ocamlPackages }:
-
-with ocamlPackages;
+{ lib, fetchurl, yojson, csexp, result, buildDunePackage }:
 
 buildDunePackage rec {
   pname = "dot-merlin-reader";
-  version = "3.4.2";
+  version = "4.1";
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.02.1";
+  minimumOCamlVersion = "4.06";
 
   src = fetchurl {
-    url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
-    sha256 = "109ai1ggnkrwbzsl1wdalikvs1zx940m6n65jllxj68in6bvidz1";
+    url = "https://github.com/ocaml/merlin/releases/download/v${version}/dot-merlin-reader-v${version}.tbz";
+    sha256 = "14a36d6fb8646a5df4530420a7861722f1a4ee04753717947305e3676031e7cd";
   };
 
   buildInputs = [ yojson csexp result ];
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix b/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix
index 57061cfe126c..c3b4182a0b51 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix
@@ -48,5 +48,9 @@ rec {
     version = "0.16.0";
   };
 
-  ocamlformat = ocamlformat_0_16_0;
+  ocamlformat_0_17_0 = mkOCamlformat {
+    version = "0.17.0";
+  };
+
+  ocamlformat = ocamlformat_0_17_0;
 }
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/generic.nix b/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/generic.nix
index 24527fcf41af..69f26c5b8877 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/generic.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/generic.nix
@@ -20,6 +20,7 @@ let src =
       "0.15.0" = "0190vz59n6ma9ca1m3syl3mc8i1smj1m3d8x1jp21f710y4llfr6";
       "0.15.1" = "1x6fha495sgk4z05g0p0q3zfqm5l6xzmf6vjm9g9g7c820ym2q9a";
       "0.16.0" = "1vwjvvwha0ljc014v8jp8snki5zsqxlwd7x0dl0rg2i9kcmwc4mr";
+      "0.17.0" = "0f1lxp697yq61z8gqxjjaqd2ns8fd1vjfggn55x0gh9dx098p138";
     }."${version}";
   }
 ; in
@@ -36,12 +37,33 @@ buildDunePackage rec {
   pname = "ocamlformat";
   inherit src version;
 
-  minimumOCamlVersion = "4.06";
+  minimumOCamlVersion =
+    if lib.versionAtLeast version "0.17.0"
+    then "4.08"
+    else "4.06";
 
   useDune2 = true;
 
   buildInputs =
-    if lib.versionAtLeast version "0.15.1"
+    if lib.versionAtLeast version "0.17.0"
+    then [
+      base
+      cmdliner
+      fpath
+      odoc
+      re
+      stdio
+      uuseg
+      uutf
+      fix
+      menhir
+      dune-build-info
+      ocaml-version
+      # Changed since 0.16.0:
+      (ppxlib.override { version = "0.22.0"; })
+      ocaml-migrate-parsetree-2-1
+    ]
+    else if lib.versionAtLeast version "0.15.1"
     then [
       base
       cmdliner
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocamlmod/default.nix b/nixpkgs/pkgs/development/tools/ocaml/ocamlmod/default.nix
index 77d390295512..cf24a132210b 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocamlmod/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocamlmod/default.nix
@@ -1,5 +1,10 @@
 { lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, ounit }:
 
+let
+  # ounit is only available for OCaml >= 4.04
+  doCheck = lib.versionAtLeast ocaml.version "4.04";
+in
+
 stdenv.mkDerivation {
   pname = "ocamlmod";
   version = "0.0.9";
@@ -9,13 +14,15 @@ stdenv.mkDerivation {
     sha256 = "0cgp9qqrq7ayyhddrmqmq1affvfqcn722qiakjq4dkywvp67h4aa";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ounit ];
+  buildInputs = [ ocaml findlib ocamlbuild ];
 
-  configurePhase = "ocaml setup.ml -configure --prefix $out --enable-tests";
+  configurePhase = "ocaml setup.ml -configure --prefix $out"
+    + lib.optionalString doCheck " --enable-tests";
   buildPhase     = "ocaml setup.ml -build";
   installPhase   = "ocaml setup.ml -install";
 
-  doCheck = true;
+  inherit doCheck;
+  checkInputs = [ ounit ];
 
   checkPhase = "ocaml setup.ml -test";
 
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix b/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix
index c03dbf756237..c14cd7ddc041 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "ocp-index";
-  version = "1.2.1";
+  version = "1.2.2";
 
   useDune2 = true;
 
   src = fetchzip {
     url = "https://github.com/OCamlPro/ocp-index/archive/${version}.tar.gz";
-    sha256 = "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8";
+    sha256 = "0k4i0aabyn750f4wqbnk0yv10kdjd6nhjw2pbmpc4cz639qcsm40";
   };
 
   buildInputs = [ cppo cmdliner re ];
@@ -16,7 +16,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ ocp-indent ];
 
   meta = {
-    homepage = "http://typerex.ocamlpro.com/ocp-index.html";
+    homepage = "https://www.typerex.org/ocp-index.html";
     description = "A simple and light-weight documentation extractor for OCaml";
     license = lib.licenses.lgpl3;
     maintainers = with lib.maintainers; [ vbgl ];
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix b/nixpkgs/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
index b12aa2e6d6de..c3da3bc2327a 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec
 {
   pname = "ocsigen-i18n";
-  version = "3.5.0";
+  version = "3.7.0";
 
   buildInputs = with ocamlPackages; [ ocaml findlib ppx_tools ];
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec
 
   src = fetchzip {
     url = "https://github.com/besport/${pname}/archive/${version}.tar.gz";
-    sha256 = "1qsgwfl64b53w235wm7nnchqinzgsvd2gb52xm0kra2wlwp69rfq";
+    sha256 = "sha256-PmdDyn+MUcNFrZpP/KLGQzdXUFRr+dYRAZjTZxHSeaw=";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix b/nixpkgs/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
index 047246cd0a0d..5a4b55cc7fec 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
@@ -20,7 +20,8 @@ stdenv.mkDerivation {
   patchFlags = [ "-p0" ];
   patches = [ ./warn.patch ];
 
-  buildInputs = [ ocaml makeWrapper ncurses ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ocaml ncurses ];
 
   phases = "unpackPhase patchPhase buildPhase";
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/ocaml/opam/1.2.2.nix b/nixpkgs/pkgs/development/tools/ocaml/opam/1.2.2.nix
index a128f2144e9f..60804684ccbc 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/opam/1.2.2.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/opam/1.2.2.nix
@@ -47,7 +47,8 @@ in stdenv.mkDerivation {
   pname = "opam";
   version = "1.2.2";
 
-  buildInputs = [ unzip curl ncurses ocaml makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ curl ncurses ocaml ];
 
   src = srcs.opam;
 
diff --git a/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix b/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix
index b99880fe7f33..bd33d4cc1d34 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix
@@ -63,7 +63,8 @@ in stdenv.mkDerivation {
   pname = "opam";
   version = "2.0.8";
 
-  buildInputs = [ unzip curl ncurses ocaml makeWrapper getconf ] ++ lib.optional stdenv.isLinux bubblewrap;
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ curl ncurses ocaml getconf ] ++ lib.optional stdenv.isLinux bubblewrap;
 
   src = srcs.opam;
 
diff --git a/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl b/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl
index b94aa7dd9a2f..bfaea0c7ef30 100755
--- a/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl
+++ b/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl
@@ -68,7 +68,8 @@ in stdenv.mkDerivation {
   pname = "opam";
   version = "$OPAM_RELEASE";
 
-  buildInputs = [ unzip curl ncurses ocaml makeWrapper getconf ] ++ lib.optional stdenv.isLinux bubblewrap;
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ curl ncurses ocaml makeWrapper getconf ] ++ lib.optional stdenv.isLinux bubblewrap;
 
   src = srcs.opam;
 
diff --git a/nixpkgs/pkgs/development/tools/ocaml/utop/default.nix b/nixpkgs/pkgs/development/tools/ocaml/utop/default.nix
index 622ac80306f7..53dd4e9827f1 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/utop/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/utop/default.nix
@@ -8,13 +8,13 @@ else
 
 buildDunePackage rec {
   pname = "utop";
-  version = "2.6.0";
+  version = "2.7.0";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/ocaml-community/utop/releases/download/${version}/utop-${version}.tbz";
-    sha256 = "17n9igl74xcvj0mzdh2ybda29f2m48a5lj4yf8lrdqr7vg0982jd";
+    sha256 = "sha256-4GisU98mfDzA8vabvCBEBPA2LMTmRyofxUfjJqY8P90=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix b/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
index ac5ab022ef12..51f731c9431f 100644
--- a/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
+++ b/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
@@ -1,20 +1,23 @@
 { lib, stdenv
 , fetchurl
-, mono5
+, mono6
+, msbuild
+, dotnet-sdk
 , makeWrapper
+, dotnetPackages
 }:
 
 stdenv.mkDerivation rec {
 
   pname = "omnisharp-roslyn";
-  version = "1.37.4";
+  version = "1.37.8";
 
   src = fetchurl {
     url = "https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v${version}/omnisharp-mono.tar.gz";
-    sha256 = "0pknphydf194n7rjyax4mh8n7j8679j0jflw63gfgh37daxry0r2";
+    sha256 = "0kgv4l15rli9a7grmcsbv72csmxi7vqa7lrrr8bd4cq9ighh54q3";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper dotnet-sdk dotnetPackages.Nuget ];
 
   preUnpack = ''
     mkdir src
@@ -26,8 +29,13 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cd ..
     cp -r src $out/
-    ls -al $out/src
-    makeWrapper ${mono5}/bin/mono $out/bin/omnisharp \
+    rm -r $out/src/.msbuild
+    cp -r ${msbuild}/lib/mono/msbuild $out/src/.msbuild
+
+    chmod -R u+w $out/src
+    mv $out/src/.msbuild/Current/{bin,Bin}
+
+    makeWrapper ${mono6}/bin/mono $out/bin/omnisharp \
     --add-flags "$out/src/OmniSharp.exe"
   '';
 
@@ -36,7 +44,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/OmniSharp/omnisharp-roslyn";
     platforms = platforms.linux;
     license = licenses.mit;
-    maintainers = with maintainers; [ tesq0 ];
+    maintainers = with maintainers; [ tesq0 ericdallo ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix b/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
index 96cae21a5b73..a73907cd2579 100644
--- a/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
+++ b/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
@@ -2,23 +2,30 @@
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.26.0";
+  version = "0.27.1";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    sha256 = "sha256-bkWfRmcUPNYeUucrbh9xAqmLg7RxEEQGa2DQdN2S6Po=";
+    sha256 = "sha256-IiPUmLgkD50LxOT+ZEf/UZJ0192GYOy9xk8U94Q0BWc=";
   };
 
   vendorSha256 = null;
 
   subPackages = [ "." ];
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-X github.com/open-policy-agent/opa/version.Version=${version}"
-  ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X github.com/open-policy-agent/opa/version.Version=${version}")
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/opa --help
+    $out/bin/opa version | grep "Version: ${version}"
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
     description = "General-purpose policy engine";
@@ -30,6 +37,6 @@ buildGoModule rec {
     '';
     homepage = "https://www.openpolicyagent.org";
     license = licenses.asl20;
-    maintainers = with maintainers; [ lewo ];
+    maintainers = with maintainers; [ lewo jk ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/operator-sdk/default.nix b/nixpkgs/pkgs/development/tools/operator-sdk/default.nix
index 34d6abb7273d..0df831b579e1 100644
--- a/nixpkgs/pkgs/development/tools/operator-sdk/default.nix
+++ b/nixpkgs/pkgs/development/tools/operator-sdk/default.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "operator-sdk";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "operator-framework";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KxYGXwK6wF5MDY+zrSdcQqBYkSdnxOCYudTh+TwTkm8=";
+    sha256 = "sha256-95fTfUKoknGBIoc/ALd5w9X89Tl9DBxapl9EgWENsa0=";
   };
 
-  vendorSha256 = "sha256-GRw0u6zox2gseQhrx7n0M3WVu4+yCKZ7D/QHVcBRb30=";
+  vendorSha256 = "sha256-Sp0ml5tnsbnuyk3NkA80dmFj6IOiL/NeYYbEbr7EPRY=";
 
   doCheck = false;
 
   subPackages = [ "cmd/operator-sdk" ];
 
-  buildInputs = [ go makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ go ];
 
   # operator-sdk uses the go compiler at runtime
   allowGoReference = true;
diff --git a/nixpkgs/pkgs/development/tools/oq/default.nix b/nixpkgs/pkgs/development/tools/oq/default.nix
index 3a3e8addf73c..f10136793bf0 100644
--- a/nixpkgs/pkgs/development/tools/oq/default.nix
+++ b/nixpkgs/pkgs/development/tools/oq/default.nix
@@ -1,35 +1,26 @@
-{ lib, fetchFromGitHub, crystal, jq, libxml2, makeWrapper, fetchpatch }:
+{ lib
+, fetchFromGitHub
+, crystal
+, jq
+, libxml2
+, makeWrapper
+}:
 
 crystal.buildCrystalPackage rec {
   pname = "oq";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "Blacksmoke16";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zg4kxpfi3sap4cwp42zg46j5dv0nf926qdqm7k22ncm6jdrgpgw";
+    sha256 = "sha256-vMW+N3N6H8S6dNm4eBJo2tSxSiouG92t4Nq3cYSWcw0=";
   };
 
-  patches = [
-    (fetchpatch {
-        # remove once we have upgraded to oq 1.1.2+
-        name = "yaml-test-leniency.patch";
-        url = "https://github.com/Blacksmoke16/oq/commit/93ed2fe50c9ce3fd8d35427e007790ddaaafce60.patch";
-        sha256 = "1iyz0c0w0ykz268bkrlqwvh1jnnrja0mqip6y89sbpa14lp0l37n";
-    })
-  ];
-
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jq libxml2 ];
 
-  format = "crystal";
-  crystalBinaries.oq.src = "src/oq_cli.cr";
-
-  preCheck = ''
-    mkdir bin
-    cp oq bin/oq
-  '';
+  format = "shards";
 
   postInstall = ''
     wrapProgram "$out/bin/oq" \
diff --git a/nixpkgs/pkgs/development/tools/out-of-tree/default.nix b/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
index 4547012e2f32..597d680cc2bb 100644
--- a/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
+++ b/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
@@ -4,7 +4,7 @@ buildGoModule rec {
   pname = "out-of-tree";
   version = "1.4.0";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   src = fetchgit {
     rev = "refs/tags/v${version}";
diff --git a/nixpkgs/pkgs/development/tools/packer/default.nix b/nixpkgs/pkgs/development/tools/packer/default.nix
index 16e5ac082039..6c59eaa73838 100644
--- a/nixpkgs/pkgs/development/tools/packer/default.nix
+++ b/nixpkgs/pkgs/development/tools/packer/default.nix
@@ -1,19 +1,28 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-buildGoPackage rec {
-  pname = "packer";
-  version = "1.6.6";
-
-  goPackagePath = "github.com/hashicorp/packer";
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
-  subPackages = [ "." ];
+buildGoModule rec {
+  pname = "packer";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "sha256-kFDy8Zlx+D5JDyNlAmB/ICTe4K9s6KDbALP5pom5OQg=";
+    sha256 = "sha256-Ey1gkld7WosJgoqnNp4Lz2x3PTI+w5p+A8Cwv4+uUZw=";
   };
 
+  vendorSha256 = null;
+
+  subPackages = [ "." ];
+
+  buildFlagsArray = [ "-ldflags=-s -w" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --zsh contrib/zsh-completion/_packer
+  '';
+
   meta = with lib; {
     description = "A tool for creating identical machine images for multiple platforms from a single source configuration";
     homepage    = "https://www.packer.io";
diff --git a/nixpkgs/pkgs/development/tools/packet-cli/default.nix b/nixpkgs/pkgs/development/tools/packet-cli/default.nix
index 79457643ce67..ff0dead13e4e 100644
--- a/nixpkgs/pkgs/development/tools/packet-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/packet-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "packet-cli";
-  version = "0.1.1";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "packethost";
     repo = pname;
     rev = version;
-    sha256 = "089fcn7yslijjivyvwl85j32gfwif8aazqdhm6hi676lz80ssppp";
+    sha256 = "sha256-P1Bn6vli0d/MroHUsioTWBrjWN+UZmSo3qmzo+fCDwM=";
   };
 
-  vendorSha256 = "1p3v4pzw9hc1iviv1zghw9imbd23nlp24dpa8hf0w8a03jvpy96x";
+  vendorSha256 = "sha256-PjKiUdhN87guPAa0loZrWYuwbl0HaspuIjmKgyq4Zp8=";
 
   postInstall = ''
     ln -s $out/bin/packet-cli $out/bin/packet
diff --git a/nixpkgs/pkgs/development/tools/pactorio/default.nix b/nixpkgs/pkgs/development/tools/pactorio/default.nix
new file mode 100644
index 000000000000..d29e12443781
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/pactorio/default.nix
@@ -0,0 +1,33 @@
+{ fetchFromGitHub, installShellFiles, lib, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pactorio";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "figsoda";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07h9hywz0pc29411myhxjq6pks4p6q6czbqjv7fxf3xkb1mg9grq";
+  };
+
+  cargoSha256 = "1m7bvi6i52xqvssjx5fr2dz25ny7hkmb8w8p23pczpdmpd2y0r7r";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  preFixup = ''
+    completions=($releaseDir/build/pactorio-*/out/completions)
+    installShellCompletion ''${completions[0]}/pactorio.{bash,fish}
+    installShellCompletion --zsh ''${completions[0]}/_pactorio
+  '';
+
+  GEN_COMPLETIONS = "1";
+
+  meta = with lib; {
+    description = "Mod package for factorio";
+    homepage = "https://github.com/figsoda/pactorio";
+    changelog = "https://github.com/figsoda/pactorio/blob/v${version}/CHANGELOG.md";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/parsing/bison/default.nix b/nixpkgs/pkgs/development/tools/parsing/bison/default.nix
index 662961ae46aa..1de45b08447b 100644
--- a/nixpkgs/pkgs/development/tools/parsing/bison/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/bison/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bison";
-  version = "3.7.4";
+  version = "3.7.6";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1qkp2rfi5njyp5c5avajab00aj74pkmkgzkvshv4p2ydkhswgazv";
+    sha256 = "sha256-adwLtG6o/DB9TKHgthyMNV6yB9Cwxp9PhGIyjnTXueo=";
   };
 
   nativeBuildInputs = [ m4 perl ] ++ lib.optional stdenv.isSunOS help2man;
diff --git a/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix b/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix
index 34e628866838..8179855e6ebc 100644
--- a/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix
@@ -1,25 +1,28 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "jikespg-1.3";
+  pname = "jikespg";
+  version = "1.3";
 
   src = fetchurl {
-    url = "mirror://sourceforge/jikes/${name}.tar.gz";
+    url = "mirror://sourceforge/jikes/${pname}-${version}.tar.gz";
     sha256 = "083ibfxaiw1abxmv1crccx1g6sixkbyhxn2hsrlf6fwii08s6rgw";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
+  '';
+
   sourceRoot = "jikespg/src";
 
-  installPhase =
-    ''
-      mkdir -p $out/bin
-      cp jikespg $out/bin
-    '';
+  installPhase = ''
+    install -Dm755 -t $out/bin jikespg
+  '';
 
   meta = with lib; {
     homepage = "http://jikes.sourceforge.net/";
     description = "The Jikes Parser Generator";
-    platforms = platforms.linux;
+    platforms = platforms.all;
     license = licenses.ipl10;
     maintainers = with maintainers; [ pSub ];
   };
diff --git a/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix b/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix
index 665609fe90af..ebba9903a47c 100644
--- a/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix
@@ -13,6 +13,30 @@ stdenv.mkDerivation rec {
 
   patches = [
     (fetchpatch {
+      name = "CVE-2018-21232-part1.patch";
+      url = "https://github.com/skvadrik/re2c/commit/fd634998f813340768c333cdad638498602856e5.patch";
+      sha256 = "1blyg5lyhqd4ymisih65xl0g36ig71ijia4skkkd59rdvj78aiw6";
+    })
+
+    (fetchpatch {
+      name = "CVE-2018-21232-part2.patch";
+      url = "https://github.com/skvadrik/re2c/commit/7b5643476bd99c994c4f51b8143f942982d85521.patch";
+      sha256 = "0rhmgqrinpk49r9x75ygrs14lz72aw5ad5kr6qp9bdyl8gs082qp";
+    })
+
+    (fetchpatch {
+      name = "CVE-2018-21232-part3.patch";
+      url = "https://github.com/skvadrik/re2c/commit/4d9c809355b574f2a58eac119f5e076c48e4d1e2.patch";
+      sha256 = "0k86wg9icw1gkqpf7rq2w6xsq4caxw3rc0zfxf39liwa35027rai";
+    })
+
+    (fetchpatch {
+      name = "CVE-2018-21232-part4.patch";
+      url = "https://github.com/skvadrik/re2c/commit/89be91f3df00657261870adbc590209fdb2bc405.patch";
+      sha256 = "1aygy9va7jwby93chlskwg7z90fn07x5hym0gziwlkx8k900p3a3";
+    })
+
+    (fetchpatch {
       name = "CVE-2020-11958.patch";
       url = "https://github.com/skvadrik/re2c/commit/c4603ba5ce229db83a2a4fb93e6d4b4e3ec3776a.patch";
       sha256 = "1d95ahxk92g7k87sda9gxgmr3blyfzwd2y7h9jxj8zkd74knd9zh";
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
index 78fb3b7f937f..0ce151f65071 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -1,9 +1,21 @@
-{ lib, stdenv
-, fetchgit, fetchFromGitHub, fetchurl
-, writeShellScript, runCommand, which, formats
-, rustPlatform, jq, nix-prefetch-git, xe, curl, emscripten
+{ lib
+, stdenv
+, fetchgit
+, fetchFromGitHub
+, fetchurl
+, writeShellScript
+, runCommand
+, which
+, formats
+, rustPlatform
+, jq
+, nix-prefetch-git
+, xe
+, curl
+, emscripten
 , Security
 , callPackage
+, linkFarm
 
 , enableShared ? !stdenv.hostPlatform.isStatic
 , enableStatic ? stdenv.hostPlatform.isStatic
@@ -16,14 +28,14 @@ let
   # 1) change all these hashes
   # 2) nix-build -A tree-sitter.updater.update-all-grammars
   # 3) run the ./result script that is output by that (it updates ./grammars)
-  version = "0.17.3";
-  sha256 = "sha256-uQs80r9cPX8Q46irJYv2FfvuppwonSS5HVClFujaP+U=";
-  cargoSha256 = "sha256-fonlxLNh9KyEwCj7G5vxa7cM/DlcHNFbQpp0SwVQ3j4=";
+  version = "0.19.3";
+  sha256 = "0zd1p9x32bwdc5cdqr0x8i9fpcykk1zczb8zdjawrrr92465d26y";
+  cargoSha256 = "0mlrbl85x1x2ynwrps94mxn95rjj1r7gb3vdivfaxqv1xvp25m41";
 
   src = fetchFromGitHub {
     owner = "tree-sitter";
     repo = "tree-sitter";
-    rev = version;
+    rev = "v${version}";
     inherit sha256;
     fetchSubmodules = true;
   };
@@ -32,35 +44,35 @@ let
     inherit writeShellScript nix-prefetch-git curl jq xe src formats lib;
   };
 
-  fetchGrammar = (v: fetchgit {inherit (v) url rev sha256 fetchSubmodules; });
+  fetchGrammar = (v: fetchgit { inherit (v) url rev sha256 fetchSubmodules; });
 
   grammars =
-    runCommand "grammars" {} (''
-       mkdir $out
-     '' + (lib.concatStrings (lib.mapAttrsToList
-            (name: grammar: "ln -s ${fetchGrammar grammar} $out/${name}\n")
-            (import ./grammars))));
-
-  builtGrammars = let
-    change = name: grammar:
-      callPackage ./grammar.nix {} {
-        language = name;
-        inherit version;
-        source = fetchGrammar grammar;
-      };
-  in
-    lib.mapAttrs change (removeAttrs (import ./grammars) [
-      # TODO these don't have parser.c in the same place as others.
-      # They might require more elaborate builds?
-      #  /nix/…/src/parser.c: No such file or directory
-      "tree-sitter-typescript"
-      #  /nix/…/src/parser.c: No such file or directory
-      "tree-sitter-ocaml"
-      # /nix/…/src/parser.c:1:10: fatal error: tree_sitter/parser.h: No such file or directory
-      "tree-sitter-razor"
-    ]);
-
-in rustPlatform.buildRustPackage {
+    runCommand "grammars" { } (''
+      mkdir $out
+    '' + (lib.concatStrings (lib.mapAttrsToList
+      (name: grammar: "ln -s ${fetchGrammar grammar} $out/${name}\n")
+      (import ./grammars))));
+
+  builtGrammars =
+    let
+      change = name: grammar:
+        callPackage ./grammar.nix { } {
+          language = name;
+          inherit version;
+          source = fetchGrammar grammar;
+          location = if grammar ? location then grammar.location else null;
+        };
+      grammars' = (import ./grammars);
+      grammars = grammars' //
+        { tree-sitter-ocaml = grammars'.tree-sitter-ocaml // { location = "ocaml"; }; } //
+        { tree-sitter-ocaml-interface = grammars'.tree-sitter-ocaml // { location = "interface"; }; } //
+        { tree-sitter-typescript = grammars'.tree-sitter-typescript // { location = "typescript"; }; } //
+        { tree-sitter-tsx = grammars'.tree-sitter-typescript // { location = "tsx"; }; };
+    in
+    lib.mapAttrs change grammars;
+
+in
+rustPlatform.buildRustPackage {
   pname = "tree-sitter";
   inherit src version cargoSha256;
 
@@ -99,8 +111,7 @@ in rustPlatform.buildRustPackage {
     updater = {
       inherit update-all-grammars;
     };
-    inherit grammars;
-    inherit builtGrammars;
+    inherit grammars builtGrammars;
 
     tests = {
       # make sure all grammars build
@@ -108,7 +119,7 @@ in rustPlatform.buildRustPackage {
     };
   };
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/tree-sitter/tree-sitter";
     description = "A parser generator tool and an incremental parsing library";
     longDescription = ''
@@ -122,10 +133,7 @@ in rustPlatform.buildRustPackage {
       * Robust enough to provide useful results even in the presence of syntax errors
       * Dependency-free so that the runtime library (which is written in pure C) can be embedded in any application
     '';
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ Profpatsch ];
-    # Aarch has test failures with how tree-sitter compiles the generated C files
-    broken = stdenv.isAarch64;
+    license = licenses.mit;
+    maintainers = with maintainers; [ Profpatsch ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammar.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammar.nix
index f92e0d79426c..5ca381e6d2ff 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammar.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammar.nix
@@ -11,6 +11,7 @@
 , version
   # source for the language grammar
 , source
+, location ? null
 }:
 
 stdenv.mkDerivation {
@@ -18,19 +19,29 @@ stdenv.mkDerivation {
   pname = "${language}-grammar";
   inherit version;
 
-  src = source;
+  src =
+    if location == null
+    then
+      source
+    else
+      "${source}/${location}"
+  ;
 
   buildInputs = [ tree-sitter ];
 
   dontUnpack = true;
-  configurePhase= ":";
+  configurePhase = ":";
   buildPhase = ''
     runHook preBuild
     scanner_cc="$src/src/scanner.cc"
     if [ ! -f "$scanner_cc" ]; then
       scanner_cc=""
     fi
-    $CC -I$src/src/ -shared -o parser -Os $src/src/parser.c $scanner_cc -lstdc++
+    scanner_c="$src/src/scanner.c"
+    if [ ! -f "$scanner_c" ]; then
+      scanner_c=""
+    fi
+    $CC -I$src/src/ -shared -o parser -Os $src/src/parser.c $scanner_cc $scanner_c -lstdc++
     runHook postBuild
   '';
   installPhase = ''
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 6d8c9237bd0f..d9d5fa46badc 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
@@ -6,6 +6,7 @@
   tree-sitter-cpp = (builtins.fromJSON (builtins.readFile ./tree-sitter-cpp.json));
   tree-sitter-css = (builtins.fromJSON (builtins.readFile ./tree-sitter-css.json));
   tree-sitter-embedded-template = (builtins.fromJSON (builtins.readFile ./tree-sitter-embedded-template.json));
+  tree-sitter-fennel = (builtins.fromJSON (builtins.readFile ./tree-sitter-fennel.json));
   tree-sitter-fluent = (builtins.fromJSON (builtins.readFile ./tree-sitter-fluent.json));
   tree-sitter-go = (builtins.fromJSON (builtins.readFile ./tree-sitter-go.json));
   tree-sitter-haskell = (builtins.fromJSON (builtins.readFile ./tree-sitter-haskell.json));
@@ -16,17 +17,19 @@
   tree-sitter-json = (builtins.fromJSON (builtins.readFile ./tree-sitter-json.json));
   tree-sitter-julia = (builtins.fromJSON (builtins.readFile ./tree-sitter-julia.json));
   tree-sitter-lua = (builtins.fromJSON (builtins.readFile ./tree-sitter-lua.json));
+  tree-sitter-markdown = (builtins.fromJSON (builtins.readFile ./tree-sitter-markdown.json));
   tree-sitter-nix = (builtins.fromJSON (builtins.readFile ./tree-sitter-nix.json));
   tree-sitter-ocaml = (builtins.fromJSON (builtins.readFile ./tree-sitter-ocaml.json));
   tree-sitter-php = (builtins.fromJSON (builtins.readFile ./tree-sitter-php.json));
   tree-sitter-python = (builtins.fromJSON (builtins.readFile ./tree-sitter-python.json));
   tree-sitter-ql = (builtins.fromJSON (builtins.readFile ./tree-sitter-ql.json));
-  tree-sitter-razor = (builtins.fromJSON (builtins.readFile ./tree-sitter-razor.json));
   tree-sitter-regex = (builtins.fromJSON (builtins.readFile ./tree-sitter-regex.json));
   tree-sitter-ruby = (builtins.fromJSON (builtins.readFile ./tree-sitter-ruby.json));
   tree-sitter-rust = (builtins.fromJSON (builtins.readFile ./tree-sitter-rust.json));
   tree-sitter-scala = (builtins.fromJSON (builtins.readFile ./tree-sitter-scala.json));
+  tree-sitter-svelte = (builtins.fromJSON (builtins.readFile ./tree-sitter-svelte.json));
   tree-sitter-swift = (builtins.fromJSON (builtins.readFile ./tree-sitter-swift.json));
   tree-sitter-typescript = (builtins.fromJSON (builtins.readFile ./tree-sitter-typescript.json));
   tree-sitter-verilog = (builtins.fromJSON (builtins.readFile ./tree-sitter-verilog.json));
+  tree-sitter-yaml = (builtins.fromJSON (builtins.readFile ./tree-sitter-yaml.json));
 }
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bash.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bash.json
index f1d5efbe7ea0..abb86b305459 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bash.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bash.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-bash",
-  "rev": "e213464b5062017dc058cfb7effe2fc7a2eebb04",
-  "date": "2020-03-02T14:55:46+01:00",
-  "path": "/nix/store/napdz7i4k0gz469zsszdlvr5hmj8y7i9-tree-sitter-bash",
-  "sha256": "0wz9rmpd36g88l2hhy1xl3i5d6a6di1jlw11qkvccgg16kb9p4h7",
+  "rev": "b6667bed364733c8a8f8e5973749f86cfa04ba2a",
+  "date": "2021-03-04T14:15:26-08:00",
+  "path": "/nix/store/nvlvdv02wdy4dq4w19bvzq6nlkgvpj20-tree-sitter-bash",
+  "sha256": "18c030bb65r50i6z37iy7jb9z9i8i36y7b08dbc9bchdifqsijs5",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
index 81ccf5a84726..03c4bb06a0c8 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-c-sharp",
-  "rev": "aae8ab2b681082ce7a35d8d5fdf75ffcf7f994e5",
-  "date": "2021-01-08T13:18:05+00:00",
-  "path": "/nix/store/fpx44l1j2dz3drnvfb7746d8zxn37gwi-tree-sitter-c-sharp",
-  "sha256": "107bxz9bhyixdla3xli06ism8rnkha7pa79hi7lyx00sfnjmgcc8",
+  "rev": "70fd2cba742506903589b5e046c32e0e3e06404a",
+  "date": "2021-03-03T17:18:54-08:00",
+  "path": "/nix/store/m0pzbb0vg0fm9nycj05ay0yldzp7qwbi-tree-sitter-c-sharp",
+  "sha256": "12jj66rsn1klsk24yj0ymgsqwy7lc5kb3nkj7griip8rmi3kgy41",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json
index 401bea63e0ac..3d98f69f053a 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-c",
-  "rev": "99151b1e9293c9e025498fee7e6691e1a52e1d03",
-  "date": "2020-05-14T11:39:30-07:00",
-  "path": "/nix/store/b5xqnw967s9a58wcpyspbkgbph6jxarv-tree-sitter-c",
-  "sha256": "07ax01r3npw13jlv20k15q2hdhqa0rwm2km6f5j50byqvmgfc6fm",
+  "rev": "5aa0bbbfc41868a3727b7a89a90e9f52e0964b2b",
+  "date": "2021-03-03T17:00:36-08:00",
+  "path": "/nix/store/2wa64ii39p31wpngvqk4ni8z8ws29r2g-tree-sitter-c",
+  "sha256": "1diys8yigvhm4ppbmp3a473yxjg2d5lk11y0ay7qprcz7233lakv",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
index a4538b1a932a..fcd0457454d3 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-cpp",
-  "rev": "a35a275df92e7583df38f2de2562361f2b69987e",
-  "date": "2020-12-13T11:27:21-08:00",
-  "path": "/nix/store/l0mv4q1xdxz94ym1nl73y52i1yr9zcgi-tree-sitter-cpp",
-  "sha256": "130vizybkm11j3lpzmf183myz0vjxq75mpy6qz48rrkidhnrlryk",
+  "rev": "05cf2030e5415e9e931f620f0924107f73976796",
+  "date": "2021-03-04T10:01:34-08:00",
+  "path": "/nix/store/fraya34acwl9i3cxpml9hwzfkyc8vs89-tree-sitter-cpp",
+  "sha256": "08ywv6n80sa541rr08bqz4zyg7byvjcabp68lvxmcahjk8xzcgwk",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-css.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-css.json
index b8609c0bd17d..924eea489cee 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-css.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-css.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-css",
-  "rev": "23f2cb97d47860c517f67f03e1f4b621d5bd2085",
-  "date": "2020-05-14T14:44:30-07:00",
-  "path": "/nix/store/r5pkz9kly0mhgrmqzdzdsr6d1dpqavld-tree-sitter-css",
-  "sha256": "17svpf36p0p7spppzhm3fi833zpdl2l1scg34r6d4vcbv7dknrjy",
+  "rev": "94e10230939e702b4fa3fa2cb5c3bc7173b95d07",
+  "date": "2021-03-04T15:25:23-08:00",
+  "path": "/nix/store/0q3y4zhphdcc54qijbx2pdp8li9idk64-tree-sitter-css",
+  "sha256": "0y90nsfbh13mf33yahbk7zklbv7124rpm0v19qydz6nv1f9hpywd",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-embedded-template.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-embedded-template.json
index f0ef7079bf67..32459e77ef01 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-embedded-template.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-embedded-template.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-embedded-template",
-  "rev": "8269c1360e5b1b9ba3e04e7896d9dd2f060de12f",
-  "date": "2020-07-20T12:50:27-07:00",
-  "path": "/nix/store/9ijnzv72vc1n56k6f1xp3kb7lc9hvlhh-tree-sitter-embedded-template",
-  "sha256": "03symsaxp8m128cn5h14pnm30ihpc49syb4vybpdvgcvraa408qq",
+  "rev": "1c03594a44df1fc2020b989d503cb084abd5fd01",
+  "date": "2021-03-04T10:06:18-08:00",
+  "path": "/nix/store/09b9drfnywcy1i8wlw6slnn76ch40kqk-tree-sitter-embedded-template",
+  "sha256": "0c9l4i6kwb29zp05h616y3vk2hhcfc8bhdf9m436bk47pfy2zabg",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fennel.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fennel.json
new file mode 100644
index 000000000000..8d3c6608ab83
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fennel.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/travonted/tree-sitter-fennel",
+  "rev": "5aad9d1f490b7fc8a847a5b260f23396c56024f5",
+  "date": "2020-11-03T09:22:17-05:00",
+  "path": "/nix/store/gsxg67brk198201h70lip7miwny084sy-tree-sitter-fennel",
+  "sha256": "1imv5nwmhsyxwq7b9z4qz72lfva40wgybdkmq0gbbfbszl9a9bgl",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
index 612b8eb64d88..d0a7188c6b2e 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-go",
-  "rev": "dadfd9c9aab2630632e61cfce645c13c35aa092f",
-  "date": "2020-10-27T13:42:16-04:00",
-  "path": "/nix/store/91a8w265vjc955hyp7cqvpm8ks9zcmqv-tree-sitter-go",
-  "sha256": "1pwbzkg7s0l2fhr4p1rpcldjcpxbkaqsm3q81543almc75k38x8w",
+  "rev": "e41dd569d91eb58725baa7089c34fc3d785b2978",
+  "date": "2021-03-03T17:11:05-08:00",
+  "path": "/nix/store/87n5nl5p1fnmwgy0zshz90vyvha6b7mn-tree-sitter-go",
+  "sha256": "0nxs47vd2fc2fr0qlxq496y852rwg39flhg334s7dlyq7d3lcx4x",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
index 10d2dd64ac28..191a23dd78c6 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-haskell",
-  "rev": "2a0aa1cb5f1b787a4056a29fa0791e87846e33fb",
-  "date": "2018-11-03T09:56:20-07:00",
-  "path": "/nix/store/9xszs4xi51qr72laxr67zxnh8y2br0gy-tree-sitter-haskell",
-  "sha256": "0z0nfip5m0yrjgm49j5nld7jkgyjdmps101xhbng39pwfnh1av83",
+  "rev": "24cf84ff618e96528882c67c8740fadcd6c4a921",
+  "date": "2021-03-06T17:58:27+01:00",
+  "path": "/nix/store/46hpbz06d1p5n0rp6z3iwy2lpwrn8kgl-tree-sitter-haskell",
+  "sha256": "1l004x1z9g1p8313ipvrf581vr2wi82qcwc0281kg083m2z4535p",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json
index 7e53e76c0dea..8c190011fd0f 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-html",
-  "rev": "7f442e1c6163d450c69c75c7a621badc3a0ea98f",
-  "date": "2020-07-20T12:46:52-07:00",
-  "path": "/nix/store/qklk97krsas1kjbh8dp6ii1gj9sqz8h9-tree-sitter-html",
-  "sha256": "0z249nnxlal8g6zbrys6kb80vksgcw2j5nd737m6yna2h5bhl126",
+  "rev": "d93af487cc75120c89257195e6be46c999c6ba18",
+  "date": "2021-03-04T14:11:18-08:00",
+  "path": "/nix/store/26yjfh6v17n4ajs9ln7x25sf1m3ijcjg-tree-sitter-html",
+  "sha256": "1hg7vbcy7bir6b8x11v0a4x0glvqnsqc3i2ixiarbxmycbgl3axy",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
index 260dc4d10c00..19c8edef5e25 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-java",
-  "rev": "f7b62ac33d63bea56ce202ace107aaa4285e50af",
-  "date": "2020-10-27T13:41:02-04:00",
-  "path": "/nix/store/h51zjbzdrm89gczcdv7nyih54vnd2xps-tree-sitter-java",
-  "sha256": "0jbh79brs1dskfqw05s9ndrp46hibyc37nfvhxlvanmgj3pjwgxb",
+  "rev": "7ad106e81963b4d5c0aff99b93d16dc577fa3bc8",
+  "date": "2021-03-05T16:03:00-08:00",
+  "path": "/nix/store/ax9m7v0pv7q7xsnrjlfdpljs4f6xi2z3-tree-sitter-java",
+  "sha256": "1594mrhqcdfs8b7wmwpzcwna4m3ra8cbzq162flwrhcsb3w0rr9w",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
index 2c563f3fbfa4..6f31e096f598 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-javascript",
-  "rev": "3f8b62f9befd3cb3b4cb0de22f6595a0aadf76ca",
-  "date": "2020-12-02T10:20:20-08:00",
-  "path": "/nix/store/c17bf7sjq95lank5ygbglv8j48i5z9w3-tree-sitter-javascript",
-  "sha256": "0fjq1jzrzd8c8rfxkh2s25gnqlyc19k3a8i3r1129kakisn1288k",
+  "rev": "b3e7667995c065be724d10b69fbc3d0177ccef0b",
+  "date": "2021-03-08T13:12:59-08:00",
+  "path": "/nix/store/1y3nirw7bbnld4qy7ysm20bq0x9403wz-tree-sitter-javascript",
+  "sha256": "0bzyq5x8x1r34fzy1f05yqdlz51b1i1jmyssm0i571n9n6142s3j",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-jsdoc.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-jsdoc.json
index 5dca4a5f9615..94920e80442f 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-jsdoc.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-jsdoc.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-jsdoc",
-  "rev": "77e7785739ad3e90c3de8ed5a55418a5fd2b8225",
-  "date": "2020-05-14T14:58:51-07:00",
-  "path": "/nix/store/3wp3hff203z15fvbnizcqzic1pjxmpg4-tree-sitter-jsdoc",
-  "sha256": "0i2ac7i0vs46668q56dpmd9c02vcyy3f8rh4i0dbvd3rvihifbgc",
+  "rev": "189a6a4829beb9cdbe837260653b4a3dfb0cc3db",
+  "date": "2021-03-04T14:39:14-08:00",
+  "path": "/nix/store/dpm11vziss6jbgp3dxvmgkb0dgg1ygc8-tree-sitter-jsdoc",
+  "sha256": "0qpsy234p30j6955wpjlaqwbr21bi56p0ln5vhrd84s99ac7s6b6",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
index a70809369888..34f2563b12a4 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-json",
-  "rev": "d3976b27df8622ed17bef6dd5e358b398e73c676",
-  "date": "2020-05-14T14:59:27-07:00",
-  "path": "/nix/store/ds2wnlrh289rsnjx828h3jy1706g3x21-tree-sitter-json",
-  "sha256": "1cbhsmzbjni0mynjcai6gshhg16nls82v9lcihxf350dz57f7sax",
+  "rev": "89607925e8989f2638cc935b8de7e44ac3c91907",
+  "date": "2021-03-04T14:55:58-08:00",
+  "path": "/nix/store/xpykb8mr4xarh6finzkz71z2bpqm8k26-tree-sitter-json",
+  "sha256": "06pjh31bv9ja9hlnykk257a6zh8bsxg2fqa54al7qk1r4n9ksnff",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
index 2cf5f06dc19c..d90f09348cad 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-julia",
-  "rev": "6a0863f1ce3fcf6f99dc0addb7886dcbd27c5a48",
-  "date": "2020-09-08T19:39:52-07:00",
-  "path": "/nix/store/xn5nii9mi2aw7xdabyxlglha2vk12h1w-tree-sitter-julia",
-  "sha256": "07ds4wzgvnkgkq07izdglkk8lgpqrylvrs96afnwxi56bnzs8sbv",
+  "rev": "0ba7a24b062b671263ae08e707e9e94383b25bb7",
+  "date": "2021-03-04T14:52:13-08:00",
+  "path": "/nix/store/2ni8p1cgyrkn1mcccl4zqdpkfm63a10m-tree-sitter-julia",
+  "sha256": "1pbnmvhy2gq4vg1b0sjzmjm4s2gsgdjh7h01yj8qrrqbcl29c463",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
index 804d613357e3..9996ac8d917e 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
@@ -1,9 +1,9 @@
 {
-  "url": "https://github.com/nvim-treesitter/tree-sitter-lua",
-  "rev": "97b757ad3546d68dc1131e6ffb9b1d2a750eea29",
-  "date": "2020-11-25T21:23:57+01:00",
-  "path": "/nix/store/irz0dikk9dahkayi41chcznqq1i3wr84-tree-sitter-lua",
-  "sha256": "1nhg139vk3xm6ip4mhr29z0rprfg4q417z2vlvkz3m9wp8gppzls",
+  "url": "https://github.com/Azganoth/tree-sitter-lua",
+  "rev": "a943944ec09c5e96f455bb166079de4ef3534457",
+  "date": "2020-12-27T00:15:24-03:00",
+  "path": "/nix/store/6glr8p3x58pva0nn586dk5jwb3bpgqrj-tree-sitter-lua",
+  "sha256": "0pm6wwb3kv73bfvvshdmvazcb1is5x1z6jwr31gz0niln18nqvpb",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
new file mode 100644
index 000000000000..164b7c0549bb
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/ikatyang/tree-sitter-markdown",
+  "rev": "5a139bed455268a06410471bf48b19d11abdd367",
+  "date": "2021-01-24T15:17:18+08:00",
+  "path": "/nix/store/125cbxcqvwyq8b7kvmg7wxjjz16s2jvw-tree-sitter-markdown",
+  "sha256": "072b4nnpymrh90y4dk18kr8l1g7m83r3gvp6v0ad9f9dnq47fgax",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
index 6d055ca0ae93..8d0b5aaf0e4f 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/cstrahan/tree-sitter-nix",
-  "rev": "791b5ff0e4f0da358cbb941788b78d436a2ca621",
-  "date": "2019-05-10T15:57:43-05:00",
-  "path": "/nix/store/5gcddcxf6jfr4f0p203jnbjc0zxk207d-tree-sitter-nix",
-  "sha256": "1y5b3wh3fcmbgq8r2i97likzfp1zp02m58zacw5a1cjqs5raqz66",
+  "rev": "a6bae0619126d70c756c11e404d8f4ad5108242f",
+  "date": "2021-02-09T00:48:18-06:00",
+  "path": "/nix/store/1rfsi62v549h72vw7ysciaw17vr5h9yx-tree-sitter-nix",
+  "sha256": "08n496k0vn7c2751gywl1v40490azlri7c92dr2wfgw5jxhjmb0d",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
index 32488ebb73ed..d13f77a9f047 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-ocaml",
-  "rev": "4ec9ee414dadc2b6e7325a9f8124d02f6cd8c250",
-  "date": "2020-09-18T02:13:40+02:00",
-  "path": "/nix/store/dszjdnwnbziqxav2khs85026msm6fasz-tree-sitter-ocaml",
-  "sha256": "0wy85940fhmrnz7c1gk6xkipm8ixzalq5q4i7mcc6wnjiiwq60gx",
+  "rev": "19a8d2aab425c4c4c8dc6a882e67c37010620c3b",
+  "date": "2021-03-08T16:57:09-08:00",
+  "path": "/nix/store/y8jsf6vp278svqm4c6xnl4i6vanslrkk-tree-sitter-ocaml",
+  "sha256": "0c5wjanka87bhha0aq3m5p448apxhv8hndlqvhly6qafj99jp85i",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
index 1fb2a0798481..8a013179e3de 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-php",
-  "rev": "b0c0367d4b7058921fdc4ba11e257441a64ab809",
-  "date": "2020-07-29T16:56:25-07:00",
-  "path": "/nix/store/la06yzcv5w1dpp31s4clllkfic8rs98a-tree-sitter-php",
-  "sha256": "0a47rr1d5dg70kfvk257g7mhpcwslv6prxc7012spxcrfiwbx89l",
+  "rev": "ba231f9844e5a1bf60e1cb72c34c0a431239585a",
+  "date": "2021-03-03T17:17:11-08:00",
+  "path": "/nix/store/cn06h14pgq3psjq3ms0yvdm3x1wwbc1j-tree-sitter-php",
+  "sha256": "1xaml64b7cx3hn6x35bbgar8cp7ccxkwvxddjdvyj5nzfx1id8y3",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
index ff60ff80101e..976ec6c57cdf 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-python",
-  "rev": "f568dfabf7c4611077467a9cd13297fa0658abb6",
-  "date": "2021-01-06T13:32:39-08:00",
-  "path": "/nix/store/5g256n8ym3ll2kp9jlmnkaxpnyf6rpk3-tree-sitter-python",
-  "sha256": "1lxmzrkw4k9pba4xywnbd1pk2x5s99qa4skgqvgy3imgbhy7ilkh",
+  "rev": "dd98afca32aaceff9025f9e85031ac50bee8b08b",
+  "date": "2021-03-05T16:00:15-08:00",
+  "path": "/nix/store/6sbmzgva73fhgqhsdrg5zy7vbs9lzll9-tree-sitter-python",
+  "sha256": "01ykryrv1nn2y8dcbl64d31h1ipz2569ywzjp10pd93h1s6czpnl",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json
index 27042b6ef957..37b0d1532408 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-ql",
-  "rev": "a0d688d62dcb9cbc7c53f0d98343c458b3776b3d",
-  "date": "2020-09-16T12:56:09-07:00",
-  "path": "/nix/store/dfdaf6wg80dfw5fvdiir7n9nj6j30g3g-tree-sitter-ql",
-  "sha256": "0f6rfhrbvpg8czfa7mld45by3rp628bs6fyl47a8mn18w6x0n5g2",
+  "rev": "965948cce9a94a710b1339851e0919471ad5ee2c",
+  "date": "2021-03-04T14:34:34-08:00",
+  "path": "/nix/store/4hi59c856ii2b79nv2wjib6qbp3hk24i-tree-sitter-ql",
+  "sha256": "01y1fzclwlaffx0rzg49h7kyvhhm25fba0w362n2y8hgjp3imgmg",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-regex.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-regex.json
index d04c1bdab867..6df921757bb8 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-regex.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-regex.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-regex",
-  "rev": "be2e415b5716615530234d179dc27c32b7a1d86b",
-  "date": "2020-05-14T15:05:54-07:00",
-  "path": "/nix/store/acbcq9lgh5pf6hq3329fa253yfvaj6ji-tree-sitter-regex",
-  "sha256": "0qxbafbwfj64bwhj3455jgkidpdzqwrlsqm3rckq2pi75flnkv42",
+  "rev": "3041aa3472d16fd94c6a9e15b741dbfecd9b714e",
+  "date": "2021-03-04T14:37:27-08:00",
+  "path": "/nix/store/7d200fzyx2rkbbgf47g5ismvd4id0fqy-tree-sitter-regex",
+  "sha256": "0jah3apalvp7966sjzdrka2n7f83h64sd56nbq2lzmrxgv98rxmg",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
index d5a1767a23ce..c8142974fd43 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-ruby",
-  "rev": "f86d90cce578e28c824afdcdbdca7d031b88c0b0",
-  "date": "2020-11-02T20:49:49-08:00",
-  "path": "/nix/store/gs0hhb1dlgmv0y60zyyz7ki30yvpddfx-tree-sitter-ruby",
-  "sha256": "1n1irdjfmv27p5ia2vqzv8zfsq19pxi0as0wrkb7z7s1lqr1gwrb",
+  "rev": "fe6a2d634da0e16b11b5aa255cc3df568a4572fd",
+  "date": "2021-03-03T16:54:30-08:00",
+  "path": "/nix/store/ragrvqj7hm98r74v5b3fljvc47gd3nhj-tree-sitter-ruby",
+  "sha256": "0m3h4928rbs300wcb6776h9r88hi32rybbhcaf6rdympl5nzi83v",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
index c02d03d11d94..c88d6e2460cd 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-rust",
-  "rev": "2beedf23bedbd7b02b416518693e8eed3944d4a0",
-  "date": "2021-01-05T10:00:48-08:00",
-  "path": "/nix/store/2igv1zlnl535b86zj8s9s3ir4q85933x-tree-sitter-rust",
-  "sha256": "0iicwhxf1f56zqpsagbm8nr30fpssi970mi9i47az206dbs506ly",
+  "rev": "20f064bd758f94b8f47ce5a21e4383c7349ca182",
+  "date": "2021-03-04T14:06:14-08:00",
+  "path": "/nix/store/za0yxqjjp9vxgwrp014qwv2v2qffl0di-tree-sitter-rust",
+  "sha256": "118vkhv7n3sw8y9pi0987cgdcd74sjqwviijw01mhnk3bkyczi3l",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
index 8d9959cf4cf4..3ec792c7190d 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-scala",
-  "rev": "211bb726bb5857f872247b600c7c1808e641a8d4",
-  "date": "2020-07-13T13:31:00-07:00",
-  "path": "/nix/store/6q66gzabxazr2581dgp4pp5wwyk2p6mw-tree-sitter-scala",
-  "sha256": "096ps5za8gxmq61gdd3xdk8cif07vb4v8asls2kdwm6jazm82777",
+  "rev": "262797b1dfe0303818c2418c0a88f6be65f37245",
+  "date": "2021-03-04T15:02:28-08:00",
+  "path": "/nix/store/vc5fr00vqx5nf17r9grdwb11wci3xrkm-tree-sitter-scala",
+  "sha256": "1zf3b1x1s94dgzjbc6l8ind5fd1mmny3893d4bqc63h4qp0n0bp3",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
new file mode 100644
index 000000000000..6cd63a61e891
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/Himujjal/tree-sitter-svelte",
+  "rev": "a96899bd1ab6a18e3837f232fd688af69e3a8071",
+  "date": "2021-03-09T15:14:24+05:30",
+  "path": "/nix/store/nlpf6gilkk19aw7pk1kbys2alhnqagqj-tree-sitter-svelte",
+  "sha256": "04virfsiqqhh3gc3cmcjd4s1zn9wdxi47m55x938napaqiaw29nx",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
index fda72fc99c6e..3ff85a0766b1 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-typescript",
-  "rev": "2d1c7d5c10c33cb444d1781fa76f2936810afec4",
-  "date": "2021-01-07T09:49:56-08:00",
-  "path": "/nix/store/s65bv25523lwa9yrqbj9hsh0k4ig6pbx-tree-sitter-typescript",
-  "sha256": "09bv44n181az5rqjd43wngj9bghwy0237gpvs6xkjf9j19kvy0yi",
+  "rev": "7e119621b1d2ab1873ba14d8702f62458df70409",
+  "date": "2021-03-08T13:23:30-08:00",
+  "path": "/nix/store/k7vam1w5c2r0hhxy0bgpmj65bw5wnh96-tree-sitter-typescript",
+  "sha256": "1fv6q1bc0j6b89skz7x2ibi6bxx0ijrb676y23aahycvz2p8x4z0",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json
new file mode 100644
index 000000000000..8231a0354d7a
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/ikatyang/tree-sitter-yaml",
+  "rev": "ab0ce67ce98f8d9cc0224ebab49c64d01fedc1a1",
+  "date": "2021-01-01T21:13:43+08:00",
+  "path": "/nix/store/3vnhqr4l2hb0ank13avj8af4qbni5szw-tree-sitter-yaml",
+  "sha256": "14f0abv68cjkwdcjjwa1nzjpwp6w59cj5v4m5h5h3jxi96z65459",
+  "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 631944cb67a0..c55858b5ff15 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix
@@ -2,6 +2,9 @@
 , curl, jq, xe
 , src }:
 
+# Grammar list:
+# https://github.com/tree-sitter/tree-sitter/blob/master/docs/index.md
+
 let
   # Grammars we want to fetch from the tree-sitter github orga
   knownTreeSitterOrgGrammarRepos = [
@@ -11,7 +14,6 @@ let
     "tree-sitter-json"
     "tree-sitter-cpp"
     "tree-sitter-ruby"
-    "tree-sitter-razor"
     "tree-sitter-go"
     "tree-sitter-c-sharp"
     "tree-sitter-python"
@@ -56,6 +58,8 @@ let
     "highlight-schema"
     # website
     "tree-sitter.github.io"
+    # not maintained
+    "tree-sitter-razor"
   ];
   ignoredTreeSitterOrgReposJson = jsonFile "ignored-tree-sitter-org-repos" ignoredTreeSitterOrgRepos;
 
@@ -68,9 +72,25 @@ let
       repo = "tree-sitter-nix";
     };
     "tree-sitter-lua" = {
-      orga = "nvim-treesitter";
+      orga = "Azganoth";
       repo = "tree-sitter-lua";
     };
+    "tree-sitter-fennel" = {
+      orga = "travonted";
+      repo = "tree-sitter-fennel";
+    };
+    "tree-sitter-markdown" = {
+      orga = "ikatyang";
+      repo = "tree-sitter-markdown";
+    };
+    "tree-sitter-svelte" = {
+      orga = "Himujjal";
+      repo = "tree-sitter-svelte";
+    };
+    "tree-sitter-yaml" = {
+      orga = "ikatyang";
+      repo = "tree-sitter-yaml";
+    };
   };
 
   allGrammars =
diff --git a/nixpkgs/pkgs/development/tools/phantomjs/default.nix b/nixpkgs/pkgs/development/tools/phantomjs/default.nix
index 66cdb09cf15a..4cd49b884ce6 100644
--- a/nixpkgs/pkgs/development/tools/phantomjs/default.nix
+++ b/nixpkgs/pkgs/development/tools/phantomjs/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
               sha256 = "0j0aq8dgzmb210xdrh0v3d4nblskl3zsckl8bzf1a603wcx085cg";
             };
 
-  buildInputs = lib.optional stdenv.isDarwin unzip;
+  nativeBuildInputs = lib.optional stdenv.isDarwin unzip;
 
   buildPhase = lib.optionalString (!stdenv.isDarwin) ''
     patchelf \
diff --git a/nixpkgs/pkgs/development/tools/phantomjs2/default.nix b/nixpkgs/pkgs/development/tools/phantomjs2/default.nix
index 594deeb1c730..3d0db49aedcd 100644
--- a/nixpkgs/pkgs/development/tools/phantomjs2/default.nix
+++ b/nixpkgs/pkgs/development/tools/phantomjs2/default.nix
@@ -77,6 +77,8 @@ in stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   installPhase = ''
     mkdir -p $out/share/doc/phantomjs
     cp -a bin $out
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
index 47c3e26fa6ad..62063ff09947 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
@@ -4,6 +4,9 @@
 , poetryLib ? import ./lib.nix { inherit lib pkgs; stdenv = pkgs.stdenv; }
 }:
 let
+  # Poetry2nix version
+  version = "1.16.1";
+
   inherit (poetryLib) isCompatible readTOML moduleName;
 
   /* The default list of poetry2nix override overlays */
@@ -70,8 +73,7 @@ let
 in
 lib.makeScope pkgs.newScope (self: {
 
-  # Poetry2nix version
-  version = "1.15.4";
+  inherit version;
 
   /* Returns a package of editable sources whose changes will be available without needing to restart the
      nix-shell.
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
index 4626f7fec37e..6af37b395e0c 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
@@ -157,7 +157,7 @@ let
       missingBuildBackendError = "No build-system.build-backend section in pyproject.toml. "
         + "Add such a section as described in https://python-poetry.org/docs/pyproject/#poetry-and-pep-517";
       requires = lib.attrByPath [ "build-system" "requires" ] (throw missingBuildBackendError) pyProject;
-      requiredPkgs = builtins.map (n: lib.elemAt (builtins.match "([^!=<>~\[]+).*" n) 0) requires;
+      requiredPkgs = builtins.map (n: lib.elemAt (builtins.match "([^!=<>~[]+).*" n) 0) requires;
     in
     builtins.map (drvAttr: pythonPackages.${drvAttr} or (throw "unsupported build system requirement ${drvAttr}")) requiredPkgs;
 
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
index 9ee690815faf..aa58864fed78 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
@@ -46,6 +46,12 @@ self: super:
     }
   );
 
+  anyio = super.anyio.overridePythonAttrs (old: {
+    postPatch = ''
+      substituteInPlace setup.py --replace 'setup()' 'setup(version="${old.version}")'
+    '';
+  });
+
   astroid = super.astroid.overridePythonAttrs (
     old: rec {
       buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ];
@@ -82,7 +88,7 @@ self: super:
   );
 
   celery = super.celery.overridePythonAttrs (old: {
-    propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.setuptools ];
+    propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ];
   });
 
   cssselect2 = super.cssselect2.overridePythonAttrs (
@@ -244,6 +250,24 @@ self: super:
     }
   );
 
+  fiona = super.fiona.overridePythonAttrs (
+    old: {
+      buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.gdal_2 ];
+      nativeBuildInputs = [
+        pkgs.gdal_2 # for gdal-config
+      ];
+    }
+  );
+
+  gdal = super.gdal.overridePythonAttrs (
+    old: {
+      preBuild = (old.preBuild or "") + ''
+        substituteInPlace setup.cfg \
+          --replace "../../apps/gdal-config" '${pkgs.gdal}/bin/gdal-config'
+      '';
+    }
+  );
+
   grandalf = super.grandalf.overridePythonAttrs (
     old: {
       buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ];
@@ -251,6 +275,23 @@ self: super:
     }
   );
 
+  grpcio = super.grpcio.overridePythonAttrs (old: {
+    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.cython pkgs.pkg-config ];
+    buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.c-ares pkgs.openssl pkgs.zlib ];
+
+    outputs = [ "out" "dev" ];
+
+    GRPC_BUILD_WITH_BORING_SSL_ASM = "";
+    GRPC_PYTHON_BUILD_SYSTEM_OPENSSL = 1;
+    GRPC_PYTHON_BUILD_SYSTEM_ZLIB = 1;
+    GRPC_PYTHON_BUILD_SYSTEM_CARES = 1;
+    DISABLE_LIBC_COMPATIBILITY = 1;
+  });
+
+  grpcio-tools = super.grpcio-tools.overridePythonAttrs (old: {
+    outputs = [ "out" "dev" ];
+  });
+
   h3 = super.h3.overridePythonAttrs (
     old: {
       preBuild = (old.preBuild or "") + ''
@@ -262,14 +303,34 @@ self: super:
 
   h5py = super.h5py.overridePythonAttrs (
     old:
-    if old.format != "wheel" then rec {
-      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
-      buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.hdf5 self.pkgconfig self.cython ];
-      configure_flags = "--hdf5=${pkgs.hdf5}";
-      postConfigure = ''
-        ${self.python.executable} setup.py configure ${configure_flags}
-      '';
-    } else old
+    if old.format != "wheel" then
+      (
+        let
+          mpi = pkgs.hdf5.mpi;
+          mpiSupport = pkgs.hdf5.mpiSupport;
+        in
+        {
+          nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
+          buildInputs =
+            (old.buildInputs or [ ])
+            ++ [ pkgs.hdf5 self.pkg-config self.cython ]
+            ++ lib.optional mpiSupport mpi
+          ;
+          propagatedBuildInputs =
+            old.propagatedBuildInputs
+            ++ lib.optionals mpiSupport [ self.mpi4py self.openssh ]
+          ;
+          preBuild = if mpiSupport then "export CC=${mpi}/bin/mpicc" else "";
+          HDF5_DIR = "${pkgs.hdf5}";
+          HDF5_MPI = if mpiSupport then "ON" else "OFF";
+          # avoid strict pinning of numpy
+          postPatch = ''
+            substituteInPlace setup.py \
+              --replace "numpy ==" "numpy >="
+          '';
+          pythonImportsCheck = [ "h5py" ];
+        }
+      ) else old
   );
 
   horovod = super.horovod.overridePythonAttrs (
@@ -283,7 +344,7 @@ self: super:
       patchPhase = ''
         substituteInPlace setup.py \
           --replace "/usr/include/openjpeg-2.3" \
-                    "${pkgs.openjpeg.dev}/include/openjpeg-2.3"
+                    "${pkgs.openjpeg.dev}/include/${pkgs.openjpeg.dev.incDir}
         substituteInPlace setup.py \
           --replace "/usr/include/jxrlib" \
                     "$out/include/libjxr"
@@ -354,9 +415,13 @@ self: super:
     }
   );
 
-  # disable the removal of pyproject.toml, required because of setuptools_scm
   jaraco-functools = super.jaraco-functools.overridePythonAttrs (
     old: {
+      # required for the extra "toml" dependency in setuptools_scm[toml]
+      buildInputs = (old.buildInputs or [ ]) ++ [
+        self.toml
+      ];
+      # disable the removal of pyproject.toml, required because of setuptools_scm
       dontPreferSetupPy = true;
     }
   );
@@ -372,6 +437,15 @@ self: super:
     }
   );
 
+  jsondiff = super.jsondiff.overridePythonAttrs (
+    old: {
+      preBuild = (old.preBuild or "") + ''
+        substituteInPlace setup.py \
+          --replace "'jsondiff=jsondiff.cli:main_deprecated'," ""
+      '';
+    }
+  );
+
   jsonpickle = super.jsonpickle.overridePythonAttrs (
     old: {
       dontPreferSetupPy = true;
@@ -379,8 +453,8 @@ self: super:
   );
 
   jsonslicer = super.jsonslicer.overridePythonAttrs (old: {
-    nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
-    buildInputs = old.buildInputs ++ [ pkgs.yajl ];
+    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
+    buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.yajl ];
   });
 
   jupyter = super.jupyter.overridePythonAttrs (
@@ -552,6 +626,13 @@ self: super:
     buildInputs = oa.buildInputs ++ [ self.pbr ];
   });
 
+  moto = super.moto.overridePythonAttrs (
+    old: {
+      buildInputs = (old.buildInputs or [ ]) ++
+        [ self.sshpubkeys ];
+    }
+  );
+
   mpi4py = super.mpi4py.overridePythonAttrs (
     old:
     let
@@ -583,6 +664,12 @@ self: super:
     }
   );
 
+  munch = super.munch.overridePythonAttrs (
+    old: {
+      buildInputs = (old.buildInputs or [ ]) ++ [ self.pbr ];
+    }
+  );
+
   mysqlclient = super.mysqlclient.overridePythonAttrs (
     old: {
       buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.libmysqlclient ];
@@ -668,6 +755,12 @@ self: super:
     }
   );
 
+  pdal = super.pdal.overridePythonAttrs (
+    old: {
+      PDAL_CONFIG = "${pkgs.pdal}/bin/pdal-config";
+    }
+  );
+
   peewee = super.peewee.overridePythonAttrs (
     old:
     let
@@ -727,9 +820,13 @@ self: super:
     '';
   });
 
-  # disable the removal of pyproject.toml, required because of setuptools_scm
   portend = super.portend.overridePythonAttrs (
     old: {
+      # required for the extra "toml" dependency in setuptools_scm[toml]
+      buildInputs = (old.buildInputs or [ ]) ++ [
+        self.toml
+      ];
+      # disable the removal of pyproject.toml, required because of setuptools_scm
       dontPreferSetupPy = true;
     }
   );
@@ -847,6 +944,11 @@ self: super:
     }
   );
 
+  pyfuse3 = super.pyfuse3.overridePythonAttrs (old: {
+    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
+    buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.fuse3 ];
+  });
+
   pygame = super.pygame.overridePythonAttrs (
     old: rec {
       nativeBuildInputs = [
@@ -889,6 +991,13 @@ self: super:
     }
   );
 
+  pygeos = super.pygeos.overridePythonAttrs (
+    old: {
+      buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.geos ];
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.geos ];
+    }
+  );
+
   pygobject = super.pygobject.overridePythonAttrs (
     old: {
       nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
@@ -909,6 +1018,16 @@ self: super:
     }
   );
 
+  pyproj = super.pyproj.overridePythonAttrs (
+    old: {
+      buildInputs = (old.buildInputs or [ ]) ++
+        [ self.cython ];
+      PROJ_DIR = "${pkgs.proj}";
+      PROJ_LIBDIR = "${pkgs.proj}/lib";
+      PROJ_INCDIR = "${pkgs.proj.dev}/include";
+    }
+  );
+
   python-bugzilla = super.python-bugzilla.overridePythonAttrs (
     old: {
       nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
@@ -941,6 +1060,8 @@ self: super:
       old: {
         format = "other";
 
+        dontWrapQtApps = true;
+
         nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
           pkgs.pkg-config
           pkgs.qt5.qmake
@@ -1060,12 +1181,9 @@ self: super:
 
   pytest-runner = super.pytest-runner or super.pytestrunner;
 
-  python-jose = super.python-jose.overridePythonAttrs (
+  pytest-pylint = super.pytest-pylint.overridePythonAttrs (
     old: {
-      postPath = ''
-        substituteInPlace setup.py --replace "'pytest-runner'," ""
-        substituteInPlace setup.py --replace "'pytest-runner'" ""
-      '';
+      buildInputs = [ self.pytest-runner ];
     }
   );
 
@@ -1090,6 +1208,11 @@ self: super:
     '';
   });
 
+  python-jose = super.python-jose.overridePythonAttrs (
+    old: {
+      buildInputs = [ self.pytest-runner ];
+    }
+  );
 
   ffmpeg-python = super.ffmpeg-python.overridePythonAttrs (
     old: {
@@ -1157,6 +1280,20 @@ self: super:
     '';
   };
 
+
+  rmfuse = super.rmfuse.overridePythonAttrs (old: {
+    propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ];
+  });
+
+  rtree = super.rtree.overridePythonAttrs (old: {
+    propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ]) ++ [ pkgs.libspatialindex ];
+    postPatch = ''
+      substituteInPlace rtree/finder.py --replace \
+        "find_library('spatialindex_c')" \
+        "'${pkgs.libspatialindex}/lib/libspatialindex_c${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}'"
+    '';
+  });
+
   scipy = super.scipy.overridePythonAttrs (
     old:
     if old.format != "wheel" then {
@@ -1217,9 +1354,13 @@ self: super:
     }
   );
 
-  # disable the removal of pyproject.toml, required because of setuptools_scm
   tempora = super.tempora.overridePythonAttrs (
     old: {
+      # required for the extra "toml" dependency in setuptools_scm[toml]
+      buildInputs = (old.buildInputs or [ ]) ++ [
+        self.toml
+      ];
+      # disable the removal of pyproject.toml, required because of setuptools_scm
       dontPreferSetupPy = true;
     }
   );
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
index 973733a6d617..b1be7a3f4e5e 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
@@ -16,15 +16,15 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
 [[package]]
 name = "attrs"
-version = "20.2.0"
+version = "20.3.0"
 description = "Classes Without Boilerplate"
 category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
 [package.extras]
-dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "sphinx-rtd-theme", "pre-commit"]
-docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"]
+dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"]
+docs = ["furo", "sphinx", "zope.interface"]
 tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
 tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"]
 
@@ -38,7 +38,7 @@ python-versions = ">=2.6"
 
 [package.extras]
 docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov"]
+testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov"]
 
 [[package]]
 name = "cachecontrol"
@@ -72,7 +72,7 @@ msgpack = ["msgpack-python (>=0.5,<0.6)"]
 
 [[package]]
 name = "certifi"
-version = "2020.6.20"
+version = "2020.12.5"
 description = "Python package for providing Mozilla's CA Bundle."
 category = "main"
 optional = false
@@ -80,7 +80,7 @@ python-versions = "*"
 
 [[package]]
 name = "cffi"
-version = "1.14.3"
+version = "1.14.5"
 description = "Foreign Function Interface for Python calling C code."
 category = "main"
 optional = false
@@ -99,11 +99,11 @@ python-versions = ">=3.6.1"
 
 [[package]]
 name = "chardet"
-version = "3.0.4"
+version = "4.0.0"
 description = "Universal encoding detector for Python 2 and 3"
 category = "main"
 optional = false
-python-versions = "*"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
 [[package]]
 name = "cleo"
@@ -134,7 +134,7 @@ typing-extensions = {version = ">=3.6,<4.0", markers = "python_version >= \"3.5\
 
 [[package]]
 name = "colorama"
-version = "0.4.3"
+version = "0.4.4"
 description = "Cross-platform colored terminal text."
 category = "dev"
 optional = false
@@ -150,7 +150,7 @@ python-versions = ">=2.6"
 
 [package.extras]
 docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2)", "pytest-flake8", "pytest-black-multipy"]
+testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2)", "pytest-flake8", "pytest-black-multipy"]
 
 [[package]]
 name = "contextlib2"
@@ -162,7 +162,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
 [[package]]
 name = "coverage"
-version = "5.3"
+version = "5.5"
 description = "Code coverage measurement for Python"
 category = "dev"
 optional = false
@@ -181,7 +181,7 @@ python-versions = ">=3.6,<4.0"
 
 [[package]]
 name = "cryptography"
-version = "3.1.1"
+version = "3.2.1"
 description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
 category = "main"
 optional = false
@@ -194,11 +194,30 @@ ipaddress = {version = "*", markers = "python_version < \"3\""}
 six = ">=1.4.1"
 
 [package.extras]
-docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0,<3.1.0 || >3.1.0,<3.1.1 || >3.1.1)", "sphinx-rtd-theme"]
+docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
 docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
 pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
 ssh = ["bcrypt (>=3.1.5)"]
-test = ["pytest (>=3.6.0,<3.9.0 || >3.9.0,<3.9.1 || >3.9.1,<3.9.2 || >3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,<3.79.2 || >3.79.2)"]
+test = ["pytest (>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
+
+[[package]]
+name = "cryptography"
+version = "3.4.6"
+description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+cffi = ">=1.12"
+
+[package.extras]
+docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
+docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
+pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
+sdist = ["setuptools-rust (>=0.11.4)"]
+ssh = ["bcrypt (>=3.1.5)"]
+test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
 
 [[package]]
 name = "distlib"
@@ -298,11 +317,11 @@ six = "*"
 
 [[package]]
 name = "identify"
-version = "1.5.5"
+version = "2.1.0"
 description = "File identification library for Python"
 category = "dev"
 optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
+python-versions = ">=3.6.1"
 
 [package.extras]
 license = ["editdistance"]
@@ -335,7 +354,7 @@ testing = ["packaging", "pep517", "importlib-resources (>=1.3)"]
 
 [[package]]
 name = "importlib-resources"
-version = "3.0.0"
+version = "3.2.1"
 description = "Read resources from Python packages"
 category = "main"
 optional = false
@@ -361,14 +380,14 @@ python-versions = "*"
 
 [[package]]
 name = "jeepney"
-version = "0.4.3"
+version = "0.6.0"
 description = "Low-level, pure Python DBus protocol wrapper."
 category = "main"
 optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.6"
 
 [package.extras]
-dev = ["testpath"]
+test = ["pytest", "pytest-trio", "pytest-asyncio", "testpath", "trio"]
 
 [[package]]
 name = "keyring"
@@ -385,7 +404,7 @@ secretstorage = {version = "<3", markers = "(sys_platform == \"linux2\" or sys_p
 
 [package.extras]
 docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs", "pytest-flake8"]
+testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs", "pytest-flake8"]
 
 [[package]]
 name = "keyring"
@@ -402,25 +421,25 @@ secretstorage = {version = "*", markers = "sys_platform == \"linux\""}
 
 [package.extras]
 docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov"]
+testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov"]
 
 [[package]]
 name = "keyring"
-version = "21.4.0"
+version = "21.8.0"
 description = "Store and access your passwords safely."
 category = "main"
 optional = false
 python-versions = ">=3.6"
 
 [package.dependencies]
-importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
+importlib-metadata = {version = ">=1", markers = "python_version < \"3.8\""}
 jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""}
 pywin32-ctypes = {version = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1", markers = "sys_platform == \"win32\""}
-SecretStorage = {version = ">=3", markers = "sys_platform == \"linux\""}
+SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""}
 
 [package.extras]
-docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black (>=0.3.7)", "pytest-cov", "pytest-mypy"]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "pytest-black (>=0.3.7)", "pytest-mypy"]
 
 [[package]]
 name = "lockfile"
@@ -460,7 +479,15 @@ six = ">=1.0.0,<2.0.0"
 
 [[package]]
 name = "more-itertools"
-version = "8.5.0"
+version = "8.6.0"
+description = "More routines for operating on iterables, beyond itertools"
+category = "dev"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "more-itertools"
+version = "8.7.0"
 description = "More routines for operating on iterables, beyond itertools"
 category = "dev"
 optional = false
@@ -468,7 +495,7 @@ python-versions = ">=3.5"
 
 [[package]]
 name = "msgpack"
-version = "1.0.0"
+version = "1.0.2"
 description = "MessagePack (de)serializer."
 category = "main"
 optional = false
@@ -484,7 +511,7 @@ python-versions = "*"
 
 [[package]]
 name = "packaging"
-version = "20.4"
+version = "20.9"
 description = "Core utilities for Python packages"
 category = "main"
 optional = false
@@ -492,7 +519,6 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
 [package.dependencies]
 pyparsing = ">=2.0.2"
-six = "*"
 
 [[package]]
 name = "pastel"
@@ -527,7 +553,7 @@ ptyprocess = ">=0.5"
 
 [[package]]
 name = "pkginfo"
-version = "1.5.0.1"
+version = "1.7.0"
 description = "Query metadatdata from sdists / bdists / installed packages."
 category = "main"
 optional = false
@@ -552,7 +578,7 @@ dev = ["pre-commit", "tox"]
 
 [[package]]
 name = "poetry-core"
-version = "1.0.0"
+version = "1.0.2"
 description = "Poetry PEP 517 Build Backend"
 category = "main"
 optional = false
@@ -567,7 +593,7 @@ typing = {version = ">=3.7.4.1,<4.0.0.0", markers = "python_version >= \"2.7\" a
 
 [[package]]
 name = "pre-commit"
-version = "2.7.1"
+version = "2.10.1"
 description = "A framework for managing and maintaining multi-language pre-commit hooks."
 category = "dev"
 optional = false
@@ -585,7 +611,7 @@ virtualenv = ">=20.0.8"
 
 [[package]]
 name = "ptyprocess"
-version = "0.6.0"
+version = "0.7.0"
 description = "Run a subprocess in a pseudo terminal"
 category = "main"
 optional = false
@@ -593,7 +619,7 @@ python-versions = "*"
 
 [[package]]
 name = "py"
-version = "1.9.0"
+version = "1.10.0"
 description = "library with cross-python path, ini-parsing, io, code, log facilities"
 category = "dev"
 optional = false
@@ -672,23 +698,23 @@ py = ">=1.5.0"
 wcwidth = "*"
 
 [package.extras]
-checkqa-mypy = ["mypy (v0.761)"]
+checkqa-mypy = ["mypy (==v0.761)"]
 testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
 
 [[package]]
 name = "pytest-cov"
-version = "2.10.1"
+version = "2.11.1"
 description = "Pytest plugin for measuring coverage."
 category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
 [package.dependencies]
-coverage = ">=4.4"
+coverage = ">=5.2.1"
 pytest = ">=4.6"
 
 [package.extras]
-testing = ["fields", "hunter", "process-tests (2.0.2)", "six", "pytest-xdist", "virtualenv"]
+testing = ["fields", "hunter", "process-tests (==2.0.2)", "six", "pytest-xdist", "virtualenv"]
 
 [[package]]
 name = "pytest-mock"
@@ -728,15 +754,15 @@ python-versions = "*"
 
 [[package]]
 name = "pyyaml"
-version = "5.3.1"
+version = "5.4.1"
 description = "YAML parser and emitter for Python"
 category = "dev"
 optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
 
 [[package]]
 name = "requests"
-version = "2.24.0"
+version = "2.25.1"
 description = "Python HTTP for Humans."
 category = "main"
 optional = false
@@ -744,13 +770,13 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
 [package.dependencies]
 certifi = ">=2017.4.17"
-chardet = ">=3.0.2,<4"
+chardet = ">=3.0.2,<5"
 idna = ">=2.5,<3"
-urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26"
+urllib3 = ">=1.21.1,<1.27"
 
 [package.extras]
 security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
-socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"]
+socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
 
 [[package]]
 name = "requests-toolbelt"
@@ -787,19 +813,19 @@ dbus-python = ["dbus-python"]
 
 [[package]]
 name = "secretstorage"
-version = "3.1.2"
+version = "3.3.1"
 description = "Python bindings to FreeDesktop.org Secret Service API"
 category = "main"
 optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.6"
 
 [package.dependencies]
-cryptography = "*"
-jeepney = ">=0.4.2"
+cryptography = ">=2.0"
+jeepney = ">=0.6"
 
 [[package]]
 name = "shellingham"
-version = "1.3.2"
+version = "1.4.0"
 description = "Tool to Detect Surrounding Shell"
 category = "main"
 optional = false
@@ -807,15 +833,19 @@ python-versions = "!=3.0,!=3.1,!=3.2,!=3.3,>=2.6"
 
 [[package]]
 name = "singledispatch"
-version = "3.4.0.3"
-description = "This library brings functools.singledispatch from Python 3.4 to Python 2.6-3.3."
+version = "3.6.1"
+description = "Backport functools.singledispatch from Python 3.4 to Python 2.6-3.3."
 category = "main"
 optional = false
-python-versions = "*"
+python-versions = ">=2.6"
 
 [package.dependencies]
 six = "*"
 
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-black (>=0.3.7)", "unittest2"]
+
 [[package]]
 name = "six"
 version = "1.15.0"
@@ -842,11 +872,11 @@ python-versions = "*"
 
 [[package]]
 name = "toml"
-version = "0.10.1"
+version = "0.10.2"
 description = "Python Library for Tom's Obvious, Minimal Language"
 category = "dev"
 optional = false
-python-versions = "*"
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
 
 [[package]]
 name = "tomlkit"
@@ -863,7 +893,7 @@ typing = {version = ">=3.6,<4.0", markers = "python_version >= \"2.7\" and pytho
 
 [[package]]
 name = "tox"
-version = "3.20.0"
+version = "3.23.0"
 description = "tox is a generic virtualenv management and test command line tool"
 category = "dev"
 optional = false
@@ -872,7 +902,7 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
 [package.dependencies]
 colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""}
 filelock = ">=3.0.0"
-importlib-metadata = {version = ">=0.12,<2", markers = "python_version < \"3.8\""}
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
 packaging = ">=14"
 pluggy = ">=0.12.0"
 py = ">=1.4.17"
@@ -882,7 +912,7 @@ virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,
 
 [package.extras]
 docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"]
-testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "pytest-xdist (>=1.22.2)"]
+testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "pytest-xdist (>=1.22.2)", "pathlib2 (>=2.3.3)"]
 
 [[package]]
 name = "typing"
@@ -900,12 +930,9 @@ category = "main"
 optional = false
 python-versions = "*"
 
-[package.dependencies]
-typing = {version = ">=3.7.4", markers = "python_version < \"3.5\""}
-
 [[package]]
 name = "urllib3"
-version = "1.25.10"
+version = "1.25.11"
 description = "HTTP library with thread-safe connection pooling, file post, and more."
 category = "main"
 optional = false
@@ -913,12 +940,12 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
 
 [package.extras]
 brotli = ["brotlipy (>=0.6.0)"]
-secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"]
-socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
+secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
+socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
 
 [[package]]
 name = "virtualenv"
-version = "20.0.31"
+version = "20.4.2"
 description = "Virtual Python Environment builder"
 category = "main"
 optional = false
@@ -928,14 +955,14 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
 appdirs = ">=1.4.3,<2"
 distlib = ">=0.3.1,<1"
 filelock = ">=3.0.0,<4"
-importlib-metadata = {version = ">=0.12,<2", markers = "python_version < \"3.8\""}
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
 importlib-resources = {version = ">=1.0", markers = "python_version < \"3.7\""}
 pathlib2 = {version = ">=2.3.3,<3", markers = "python_version < \"3.4\" and sys_platform != \"win32\""}
 six = ">=1.9.0,<2"
 
 [package.extras]
 docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=19.9.0rc1)"]
-testing = ["coverage (>=5)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "pytest-xdist (>=1.31.0)", "packaging (>=20.0)", "xonsh (>=0.9.16)"]
+testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "packaging (>=20.0)", "xonsh (>=0.9.16)"]
 
 [[package]]
 name = "wcwidth"
@@ -974,7 +1001,7 @@ testing = ["pathlib2", "unittest2", "jaraco.itertools", "func-timeout"]
 [metadata]
 lock-version = "1.1"
 python-versions = "~2.7 || ^3.5"
-content-hash = "1e774c9d8b7f6812d721cff08b51554f9a0cd051e2ae0e884421bcb56718d131"
+content-hash = "f716089bf560bb051980ddb5ff40b200027e9d9f2ed17fc7dd5576d80f5ad62a"
 
 [metadata.files]
 appdirs = [
@@ -986,8 +1013,8 @@ atomicwrites = [
     {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
 ]
 attrs = [
-    {file = "attrs-20.2.0-py2.py3-none-any.whl", hash = "sha256:fce7fc47dfc976152e82d53ff92fa0407700c21acd20886a13777a0d20e655dc"},
-    {file = "attrs-20.2.0.tar.gz", hash = "sha256:26b54ddbbb9ee1d34d5d3668dd37d6cf74990ab23c828c2888dccdceee395594"},
+    {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"},
+    {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"},
 ]
 "backports.functools-lru-cache" = [
     {file = "backports.functools_lru_cache-1.6.1-py2.py3-none-any.whl", hash = "sha256:0bada4c2f8a43d533e4ecb7a12214d9420e66eb206d54bf2d682581ca4b80848"},
@@ -1002,54 +1029,55 @@ cachy = [
     {file = "cachy-0.3.0.tar.gz", hash = "sha256:186581f4ceb42a0bbe040c407da73c14092379b1e4c0e327fdb72ae4a9b269b1"},
 ]
 certifi = [
-    {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"},
-    {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"},
+    {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"},
+    {file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"},
 ]
 cffi = [
-    {file = "cffi-1.14.3-2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3eeeb0405fd145e714f7633a5173318bd88d8bbfc3dd0a5751f8c4f70ae629bc"},
-    {file = "cffi-1.14.3-2-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:cb763ceceae04803adcc4e2d80d611ef201c73da32d8f2722e9d0ab0c7f10768"},
-    {file = "cffi-1.14.3-2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f60519595eaca110f248e5017363d751b12782a6f2bd6a7041cba275215f5d"},
-    {file = "cffi-1.14.3-2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c53af463f4a40de78c58b8b2710ade243c81cbca641e34debf3396a9640d6ec1"},
-    {file = "cffi-1.14.3-2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:33c6cdc071ba5cd6d96769c8969a0531be2d08c2628a0143a10a7dcffa9719ca"},
-    {file = "cffi-1.14.3-2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c11579638288e53fc94ad60022ff1b67865363e730ee41ad5e6f0a17188b327a"},
-    {file = "cffi-1.14.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:3cb3e1b9ec43256c4e0f8d2837267a70b0e1ca8c4f456685508ae6106b1f504c"},
-    {file = "cffi-1.14.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f0620511387790860b249b9241c2f13c3a80e21a73e0b861a2df24e9d6f56730"},
-    {file = "cffi-1.14.3-cp27-cp27m-win32.whl", hash = "sha256:005f2bfe11b6745d726dbb07ace4d53f057de66e336ff92d61b8c7e9c8f4777d"},
-    {file = "cffi-1.14.3-cp27-cp27m-win_amd64.whl", hash = "sha256:2f9674623ca39c9ebe38afa3da402e9326c245f0f5ceff0623dccdac15023e05"},
-    {file = "cffi-1.14.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:09e96138280241bd355cd585148dec04dbbedb4f46128f340d696eaafc82dd7b"},
-    {file = "cffi-1.14.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:3363e77a6176afb8823b6e06db78c46dbc4c7813b00a41300a4873b6ba63b171"},
-    {file = "cffi-1.14.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0ef488305fdce2580c8b2708f22d7785ae222d9825d3094ab073e22e93dfe51f"},
-    {file = "cffi-1.14.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:0b1ad452cc824665ddc682400b62c9e4f5b64736a2ba99110712fdee5f2505c4"},
-    {file = "cffi-1.14.3-cp35-cp35m-win32.whl", hash = "sha256:85ba797e1de5b48aa5a8427b6ba62cf69607c18c5d4eb747604b7302f1ec382d"},
-    {file = "cffi-1.14.3-cp35-cp35m-win_amd64.whl", hash = "sha256:e66399cf0fc07de4dce4f588fc25bfe84a6d1285cc544e67987d22663393926d"},
-    {file = "cffi-1.14.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:15f351bed09897fbda218e4db5a3d5c06328862f6198d4fb385f3e14e19decb3"},
-    {file = "cffi-1.14.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4d7c26bfc1ea9f92084a1d75e11999e97b62d63128bcc90c3624d07813c52808"},
-    {file = "cffi-1.14.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:23e5d2040367322824605bc29ae8ee9175200b92cb5483ac7d466927a9b3d537"},
-    {file = "cffi-1.14.3-cp36-cp36m-win32.whl", hash = "sha256:a624fae282e81ad2e4871bdb767e2c914d0539708c0f078b5b355258293c98b0"},
-    {file = "cffi-1.14.3-cp36-cp36m-win_amd64.whl", hash = "sha256:de31b5164d44ef4943db155b3e8e17929707cac1e5bd2f363e67a56e3af4af6e"},
-    {file = "cffi-1.14.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f92cdecb618e5fa4658aeb97d5eb3d2f47aa94ac6477c6daf0f306c5a3b9e6b1"},
-    {file = "cffi-1.14.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:22399ff4870fb4c7ef19fff6eeb20a8bbf15571913c181c78cb361024d574579"},
-    {file = "cffi-1.14.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f4eae045e6ab2bb54ca279733fe4eb85f1effda392666308250714e01907f394"},
-    {file = "cffi-1.14.3-cp37-cp37m-win32.whl", hash = "sha256:b0358e6fefc74a16f745afa366acc89f979040e0cbc4eec55ab26ad1f6a9bfbc"},
-    {file = "cffi-1.14.3-cp37-cp37m-win_amd64.whl", hash = "sha256:6642f15ad963b5092d65aed022d033c77763515fdc07095208f15d3563003869"},
-    {file = "cffi-1.14.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:2791f68edc5749024b4722500e86303a10d342527e1e3bcac47f35fbd25b764e"},
-    {file = "cffi-1.14.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:529c4ed2e10437c205f38f3691a68be66c39197d01062618c55f74294a4a4828"},
-    {file = "cffi-1.14.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8f0f1e499e4000c4c347a124fa6a27d37608ced4fe9f7d45070563b7c4c370c9"},
-    {file = "cffi-1.14.3-cp38-cp38-win32.whl", hash = "sha256:3b8eaf915ddc0709779889c472e553f0d3e8b7bdf62dab764c8921b09bf94522"},
-    {file = "cffi-1.14.3-cp38-cp38-win_amd64.whl", hash = "sha256:bbd2f4dfee1079f76943767fce837ade3087b578aeb9f69aec7857d5bf25db15"},
-    {file = "cffi-1.14.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:cc75f58cdaf043fe6a7a6c04b3b5a0e694c6a9e24050967747251fb80d7bce0d"},
-    {file = "cffi-1.14.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:bf39a9e19ce7298f1bd6a9758fa99707e9e5b1ebe5e90f2c3913a47bc548747c"},
-    {file = "cffi-1.14.3-cp39-cp39-win32.whl", hash = "sha256:d80998ed59176e8cba74028762fbd9b9153b9afc71ea118e63bbf5d4d0f9552b"},
-    {file = "cffi-1.14.3-cp39-cp39-win_amd64.whl", hash = "sha256:c150eaa3dadbb2b5339675b88d4573c1be3cb6f2c33a6c83387e10cc0bf05bd3"},
-    {file = "cffi-1.14.3.tar.gz", hash = "sha256:f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591"},
+    {file = "cffi-1.14.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:bb89f306e5da99f4d922728ddcd6f7fcebb3241fc40edebcb7284d7514741991"},
+    {file = "cffi-1.14.5-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:34eff4b97f3d982fb93e2831e6750127d1355a923ebaeeb565407b3d2f8d41a1"},
+    {file = "cffi-1.14.5-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99cd03ae7988a93dd00bcd9d0b75e1f6c426063d6f03d2f90b89e29b25b82dfa"},
+    {file = "cffi-1.14.5-cp27-cp27m-win32.whl", hash = "sha256:65fa59693c62cf06e45ddbb822165394a288edce9e276647f0046e1ec26920f3"},
+    {file = "cffi-1.14.5-cp27-cp27m-win_amd64.whl", hash = "sha256:51182f8927c5af975fece87b1b369f722c570fe169f9880764b1ee3bca8347b5"},
+    {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:43e0b9d9e2c9e5d152946b9c5fe062c151614b262fda2e7b201204de0b99e482"},
+    {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:cbde590d4faaa07c72bf979734738f328d239913ba3e043b1e98fe9a39f8b2b6"},
+    {file = "cffi-1.14.5-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:5de7970188bb46b7bf9858eb6890aad302577a5f6f75091fd7cdd3ef13ef3045"},
+    {file = "cffi-1.14.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:a465da611f6fa124963b91bf432d960a555563efe4ed1cc403ba5077b15370aa"},
+    {file = "cffi-1.14.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:d42b11d692e11b6634f7613ad8df5d6d5f8875f5d48939520d351007b3c13406"},
+    {file = "cffi-1.14.5-cp35-cp35m-win32.whl", hash = "sha256:72d8d3ef52c208ee1c7b2e341f7d71c6fd3157138abf1a95166e6165dd5d4369"},
+    {file = "cffi-1.14.5-cp35-cp35m-win_amd64.whl", hash = "sha256:29314480e958fd8aab22e4a58b355b629c59bf5f2ac2492b61e3dc06d8c7a315"},
+    {file = "cffi-1.14.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3d3dd4c9e559eb172ecf00a2a7517e97d1e96de2a5e610bd9b68cea3925b4892"},
+    {file = "cffi-1.14.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:48e1c69bbacfc3d932221851b39d49e81567a4d4aac3b21258d9c24578280058"},
+    {file = "cffi-1.14.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:69e395c24fc60aad6bb4fa7e583698ea6cc684648e1ffb7fe85e3c1ca131a7d5"},
+    {file = "cffi-1.14.5-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:9e93e79c2551ff263400e1e4be085a1210e12073a31c2011dbbda14bda0c6132"},
+    {file = "cffi-1.14.5-cp36-cp36m-win32.whl", hash = "sha256:58e3f59d583d413809d60779492342801d6e82fefb89c86a38e040c16883be53"},
+    {file = "cffi-1.14.5-cp36-cp36m-win_amd64.whl", hash = "sha256:005a36f41773e148deac64b08f233873a4d0c18b053d37da83f6af4d9087b813"},
+    {file = "cffi-1.14.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2894f2df484ff56d717bead0a5c2abb6b9d2bf26d6960c4604d5c48bbc30ee73"},
+    {file = "cffi-1.14.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:0857f0ae312d855239a55c81ef453ee8fd24136eaba8e87a2eceba644c0d4c06"},
+    {file = "cffi-1.14.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:cd2868886d547469123fadc46eac7ea5253ea7fcb139f12e1dfc2bbd406427d1"},
+    {file = "cffi-1.14.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:35f27e6eb43380fa080dccf676dece30bef72e4a67617ffda586641cd4508d49"},
+    {file = "cffi-1.14.5-cp37-cp37m-win32.whl", hash = "sha256:9ff227395193126d82e60319a673a037d5de84633f11279e336f9c0f189ecc62"},
+    {file = "cffi-1.14.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9cf8022fb8d07a97c178b02327b284521c7708d7c71a9c9c355c178ac4bbd3d4"},
+    {file = "cffi-1.14.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8b198cec6c72df5289c05b05b8b0969819783f9418e0409865dac47288d2a053"},
+    {file = "cffi-1.14.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:ad17025d226ee5beec591b52800c11680fca3df50b8b29fe51d882576e039ee0"},
+    {file = "cffi-1.14.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6c97d7350133666fbb5cf4abdc1178c812cb205dc6f41d174a7b0f18fb93337e"},
+    {file = "cffi-1.14.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8ae6299f6c68de06f136f1f9e69458eae58f1dacf10af5c17353eae03aa0d827"},
+    {file = "cffi-1.14.5-cp38-cp38-win32.whl", hash = "sha256:b85eb46a81787c50650f2392b9b4ef23e1f126313b9e0e9013b35c15e4288e2e"},
+    {file = "cffi-1.14.5-cp38-cp38-win_amd64.whl", hash = "sha256:1f436816fc868b098b0d63b8920de7d208c90a67212546d02f84fe78a9c26396"},
+    {file = "cffi-1.14.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1071534bbbf8cbb31b498d5d9db0f274f2f7a865adca4ae429e147ba40f73dea"},
+    {file = "cffi-1.14.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:9de2e279153a443c656f2defd67769e6d1e4163952b3c622dcea5b08a6405322"},
+    {file = "cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:6e4714cc64f474e4d6e37cfff31a814b509a35cb17de4fb1999907575684479c"},
+    {file = "cffi-1.14.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:158d0d15119b4b7ff6b926536763dc0714313aa59e320ddf787502c70c4d4bee"},
+    {file = "cffi-1.14.5-cp39-cp39-win32.whl", hash = "sha256:afb29c1ba2e5a3736f1c301d9d0abe3ec8b86957d04ddfa9d7a6a42b9367e396"},
+    {file = "cffi-1.14.5-cp39-cp39-win_amd64.whl", hash = "sha256:f2d45f97ab6bb54753eab54fffe75aaf3de4ff2341c9daee1987ee1837636f1d"},
+    {file = "cffi-1.14.5.tar.gz", hash = "sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c"},
 ]
 cfgv = [
     {file = "cfgv-3.2.0-py2.py3-none-any.whl", hash = "sha256:32e43d604bbe7896fe7c248a9c2276447dbef840feb28fe20494f62af110211d"},
     {file = "cfgv-3.2.0.tar.gz", hash = "sha256:cf22deb93d4bcf92f345a5c3cd39d3d41d6340adc60c78bbbd6588c384fda6a1"},
 ]
 chardet = [
-    {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
-    {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
+    {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
+    {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
 ]
 cleo = [
     {file = "cleo-0.8.1-py2.py3-none-any.whl", hash = "sha256:141cda6dc94a92343be626bb87a0b6c86ae291dfc732a57bf04310d4b4201753"},
@@ -1060,8 +1088,8 @@ clikit = [
     {file = "clikit-0.6.2.tar.gz", hash = "sha256:442ee5db9a14120635c5990bcdbfe7c03ada5898291f0c802f77be71569ded59"},
 ]
 colorama = [
-    {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"},
-    {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"},
+    {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
+    {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
 ]
 configparser = [
     {file = "configparser-4.0.2-py2.py3-none-any.whl", hash = "sha256:254c1d9c79f60c45dfde850850883d5aaa7f19a23f13561243a050d5a7c3fe4c"},
@@ -1072,68 +1100,93 @@ contextlib2 = [
     {file = "contextlib2-0.6.0.post1.tar.gz", hash = "sha256:01f490098c18b19d2bd5bb5dc445b2054d2fa97f09a4280ba2c5f3c394c8162e"},
 ]
 coverage = [
-    {file = "coverage-5.3-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:bd3166bb3b111e76a4f8e2980fa1addf2920a4ca9b2b8ca36a3bc3dedc618270"},
-    {file = "coverage-5.3-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:9342dd70a1e151684727c9c91ea003b2fb33523bf19385d4554f7897ca0141d4"},
-    {file = "coverage-5.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:63808c30b41f3bbf65e29f7280bf793c79f54fb807057de7e5238ffc7cc4d7b9"},
-    {file = "coverage-5.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:4d6a42744139a7fa5b46a264874a781e8694bb32f1d76d8137b68138686f1729"},
-    {file = "coverage-5.3-cp27-cp27m-win32.whl", hash = "sha256:86e9f8cd4b0cdd57b4ae71a9c186717daa4c5a99f3238a8723f416256e0b064d"},
-    {file = "coverage-5.3-cp27-cp27m-win_amd64.whl", hash = "sha256:7858847f2d84bf6e64c7f66498e851c54de8ea06a6f96a32a1d192d846734418"},
-    {file = "coverage-5.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:530cc8aaf11cc2ac7430f3614b04645662ef20c348dce4167c22d99bec3480e9"},
-    {file = "coverage-5.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:381ead10b9b9af5f64646cd27107fb27b614ee7040bb1226f9c07ba96625cbb5"},
-    {file = "coverage-5.3-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:71b69bd716698fa62cd97137d6f2fdf49f534decb23a2c6fc80813e8b7be6822"},
-    {file = "coverage-5.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:1d44bb3a652fed01f1f2c10d5477956116e9b391320c94d36c6bf13b088a1097"},
-    {file = "coverage-5.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:1c6703094c81fa55b816f5ae542c6ffc625fec769f22b053adb42ad712d086c9"},
-    {file = "coverage-5.3-cp35-cp35m-win32.whl", hash = "sha256:cedb2f9e1f990918ea061f28a0f0077a07702e3819602d3507e2ff98c8d20636"},
-    {file = "coverage-5.3-cp35-cp35m-win_amd64.whl", hash = "sha256:7f43286f13d91a34fadf61ae252a51a130223c52bfefb50310d5b2deb062cf0f"},
-    {file = "coverage-5.3-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:c851b35fc078389bc16b915a0a7c1d5923e12e2c5aeec58c52f4aa8085ac8237"},
-    {file = "coverage-5.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:aac1ba0a253e17889550ddb1b60a2063f7474155465577caa2a3b131224cfd54"},
-    {file = "coverage-5.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2b31f46bf7b31e6aa690d4c7a3d51bb262438c6dcb0d528adde446531d0d3bb7"},
-    {file = "coverage-5.3-cp36-cp36m-win32.whl", hash = "sha256:c5f17ad25d2c1286436761b462e22b5020d83316f8e8fcb5deb2b3151f8f1d3a"},
-    {file = "coverage-5.3-cp36-cp36m-win_amd64.whl", hash = "sha256:aef72eae10b5e3116bac6957de1df4d75909fc76d1499a53fb6387434b6bcd8d"},
-    {file = "coverage-5.3-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:e8caf961e1b1a945db76f1b5fa9c91498d15f545ac0ababbe575cfab185d3bd8"},
-    {file = "coverage-5.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:29a6272fec10623fcbe158fdf9abc7a5fa032048ac1d8631f14b50fbfc10d17f"},
-    {file = "coverage-5.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2d43af2be93ffbad25dd959899b5b809618a496926146ce98ee0b23683f8c51c"},
-    {file = "coverage-5.3-cp37-cp37m-win32.whl", hash = "sha256:c3888a051226e676e383de03bf49eb633cd39fc829516e5334e69b8d81aae751"},
-    {file = "coverage-5.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9669179786254a2e7e57f0ecf224e978471491d660aaca833f845b72a2df3709"},
-    {file = "coverage-5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0203acd33d2298e19b57451ebb0bed0ab0c602e5cf5a818591b4918b1f97d516"},
-    {file = "coverage-5.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:582ddfbe712025448206a5bc45855d16c2e491c2dd102ee9a2841418ac1c629f"},
-    {file = "coverage-5.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:0f313707cdecd5cd3e217fc68c78a960b616604b559e9ea60cc16795c4304259"},
-    {file = "coverage-5.3-cp38-cp38-win32.whl", hash = "sha256:78e93cc3571fd928a39c0b26767c986188a4118edc67bc0695bc7a284da22e82"},
-    {file = "coverage-5.3-cp38-cp38-win_amd64.whl", hash = "sha256:8f264ba2701b8c9f815b272ad568d555ef98dfe1576802ab3149c3629a9f2221"},
-    {file = "coverage-5.3-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:50691e744714856f03a86df3e2bff847c2acede4c191f9a1da38f088df342978"},
-    {file = "coverage-5.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:9361de40701666b034c59ad9e317bae95c973b9ff92513dd0eced11c6adf2e21"},
-    {file = "coverage-5.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:c1b78fb9700fc961f53386ad2fd86d87091e06ede5d118b8a50dea285a071c24"},
-    {file = "coverage-5.3-cp39-cp39-win32.whl", hash = "sha256:cb7df71de0af56000115eafd000b867d1261f786b5eebd88a0ca6360cccfaca7"},
-    {file = "coverage-5.3-cp39-cp39-win_amd64.whl", hash = "sha256:47a11bdbd8ada9b7ee628596f9d97fbd3851bd9999d398e9436bd67376dbece7"},
-    {file = "coverage-5.3.tar.gz", hash = "sha256:280baa8ec489c4f542f8940f9c4c2181f0306a8ee1a54eceba071a449fb870a0"},
+    {file = "coverage-5.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:b6d534e4b2ab35c9f93f46229363e17f63c53ad01330df9f2d6bd1187e5eaacf"},
+    {file = "coverage-5.5-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:b7895207b4c843c76a25ab8c1e866261bcfe27bfaa20c192de5190121770672b"},
+    {file = "coverage-5.5-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:c2723d347ab06e7ddad1a58b2a821218239249a9e4365eaff6649d31180c1669"},
+    {file = "coverage-5.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:900fbf7759501bc7807fd6638c947d7a831fc9fdf742dc10f02956ff7220fa90"},
+    {file = "coverage-5.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c"},
+    {file = "coverage-5.5-cp27-cp27m-win32.whl", hash = "sha256:06191eb60f8d8a5bc046f3799f8a07a2d7aefb9504b0209aff0b47298333302a"},
+    {file = "coverage-5.5-cp27-cp27m-win_amd64.whl", hash = "sha256:7501140f755b725495941b43347ba8a2777407fc7f250d4f5a7d2a1050ba8e82"},
+    {file = "coverage-5.5-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:372da284cfd642d8e08ef606917846fa2ee350f64994bebfbd3afb0040436905"},
+    {file = "coverage-5.5-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:8963a499849a1fc54b35b1c9f162f4108017b2e6db2c46c1bed93a72262ed083"},
+    {file = "coverage-5.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:869a64f53488f40fa5b5b9dcb9e9b2962a66a87dab37790f3fcfb5144b996ef5"},
+    {file = "coverage-5.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:4a7697d8cb0f27399b0e393c0b90f0f1e40c82023ea4d45d22bce7032a5d7b81"},
+    {file = "coverage-5.5-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:8d0a0725ad7c1a0bcd8d1b437e191107d457e2ec1084b9f190630a4fb1af78e6"},
+    {file = "coverage-5.5-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:51cb9476a3987c8967ebab3f0fe144819781fca264f57f89760037a2ea191cb0"},
+    {file = "coverage-5.5-cp310-cp310-win_amd64.whl", hash = "sha256:c0891a6a97b09c1f3e073a890514d5012eb256845c451bd48f7968ef939bf4ae"},
+    {file = "coverage-5.5-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:3487286bc29a5aa4b93a072e9592f22254291ce96a9fbc5251f566b6b7343cdb"},
+    {file = "coverage-5.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:deee1077aae10d8fa88cb02c845cfba9b62c55e1183f52f6ae6a2df6a2187160"},
+    {file = "coverage-5.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f11642dddbb0253cc8853254301b51390ba0081750a8ac03f20ea8103f0c56b6"},
+    {file = "coverage-5.5-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:6c90e11318f0d3c436a42409f2749ee1a115cd8b067d7f14c148f1ce5574d701"},
+    {file = "coverage-5.5-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:30c77c1dc9f253283e34c27935fded5015f7d1abe83bc7821680ac444eaf7793"},
+    {file = "coverage-5.5-cp35-cp35m-win32.whl", hash = "sha256:9a1ef3b66e38ef8618ce5fdc7bea3d9f45f3624e2a66295eea5e57966c85909e"},
+    {file = "coverage-5.5-cp35-cp35m-win_amd64.whl", hash = "sha256:972c85d205b51e30e59525694670de6a8a89691186012535f9d7dbaa230e42c3"},
+    {file = "coverage-5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:af0e781009aaf59e25c5a678122391cb0f345ac0ec272c7961dc5455e1c40066"},
+    {file = "coverage-5.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:74d881fc777ebb11c63736622b60cb9e4aee5cace591ce274fb69e582a12a61a"},
+    {file = "coverage-5.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:92b017ce34b68a7d67bd6d117e6d443a9bf63a2ecf8567bb3d8c6c7bc5014465"},
+    {file = "coverage-5.5-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:d636598c8305e1f90b439dbf4f66437de4a5e3c31fdf47ad29542478c8508bbb"},
+    {file = "coverage-5.5-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:41179b8a845742d1eb60449bdb2992196e211341818565abded11cfa90efb821"},
+    {file = "coverage-5.5-cp36-cp36m-win32.whl", hash = "sha256:040af6c32813fa3eae5305d53f18875bedd079960822ef8ec067a66dd8afcd45"},
+    {file = "coverage-5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:5fec2d43a2cc6965edc0bb9e83e1e4b557f76f843a77a2496cbe719583ce8184"},
+    {file = "coverage-5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:18ba8bbede96a2c3dde7b868de9dcbd55670690af0988713f0603f037848418a"},
+    {file = "coverage-5.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:2910f4d36a6a9b4214bb7038d537f015346f413a975d57ca6b43bf23d6563b53"},
+    {file = "coverage-5.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f0b278ce10936db1a37e6954e15a3730bea96a0997c26d7fee88e6c396c2086d"},
+    {file = "coverage-5.5-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:796c9c3c79747146ebd278dbe1e5c5c05dd6b10cc3bcb8389dfdf844f3ead638"},
+    {file = "coverage-5.5-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:53194af30d5bad77fcba80e23a1441c71abfb3e01192034f8246e0d8f99528f3"},
+    {file = "coverage-5.5-cp37-cp37m-win32.whl", hash = "sha256:184a47bbe0aa6400ed2d41d8e9ed868b8205046518c52464fde713ea06e3a74a"},
+    {file = "coverage-5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:2949cad1c5208b8298d5686d5a85b66aae46d73eec2c3e08c817dd3513e5848a"},
+    {file = "coverage-5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:217658ec7187497e3f3ebd901afdca1af062b42cfe3e0dafea4cced3983739f6"},
+    {file = "coverage-5.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1aa846f56c3d49205c952d8318e76ccc2ae23303351d9270ab220004c580cfe2"},
+    {file = "coverage-5.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:24d4a7de75446be83244eabbff746d66b9240ae020ced65d060815fac3423759"},
+    {file = "coverage-5.5-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d1f8bf7b90ba55699b3a5e44930e93ff0189aa27186e96071fac7dd0d06a1873"},
+    {file = "coverage-5.5-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:970284a88b99673ccb2e4e334cfb38a10aab7cd44f7457564d11898a74b62d0a"},
+    {file = "coverage-5.5-cp38-cp38-win32.whl", hash = "sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6"},
+    {file = "coverage-5.5-cp38-cp38-win_amd64.whl", hash = "sha256:2e0d881ad471768bf6e6c2bf905d183543f10098e3b3640fc029509530091502"},
+    {file = "coverage-5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d1f9ce122f83b2305592c11d64f181b87153fc2c2bbd3bb4a3dde8303cfb1a6b"},
+    {file = "coverage-5.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:13c4ee887eca0f4c5a247b75398d4114c37882658300e153113dafb1d76de529"},
+    {file = "coverage-5.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:52596d3d0e8bdf3af43db3e9ba8dcdaac724ba7b5ca3f6358529d56f7a166f8b"},
+    {file = "coverage-5.5-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:2cafbbb3af0733db200c9b5f798d18953b1a304d3f86a938367de1567f4b5bff"},
+    {file = "coverage-5.5-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:44d654437b8ddd9eee7d1eaee28b7219bec228520ff809af170488fd2fed3e2b"},
+    {file = "coverage-5.5-cp39-cp39-win32.whl", hash = "sha256:d314ed732c25d29775e84a960c3c60808b682c08d86602ec2c3008e1202e3bb6"},
+    {file = "coverage-5.5-cp39-cp39-win_amd64.whl", hash = "sha256:13034c4409db851670bc9acd836243aeee299949bd5673e11844befcb0149f03"},
+    {file = "coverage-5.5-pp36-none-any.whl", hash = "sha256:f030f8873312a16414c0d8e1a1ddff2d3235655a2174e3648b4fa66b3f2f1079"},
+    {file = "coverage-5.5-pp37-none-any.whl", hash = "sha256:2a3859cb82dcbda1cfd3e6f71c27081d18aa251d20a17d87d26d4cd216fb0af4"},
+    {file = "coverage-5.5.tar.gz", hash = "sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c"},
 ]
 crashtest = [
     {file = "crashtest-0.3.1-py3-none-any.whl", hash = "sha256:300f4b0825f57688b47b6d70c6a31de33512eb2fa1ac614f780939aa0cf91680"},
     {file = "crashtest-0.3.1.tar.gz", hash = "sha256:42ca7b6ce88b6c7433e2ce47ea884e91ec93104a4b754998be498a8e6c3d37dd"},
 ]
 cryptography = [
-    {file = "cryptography-3.1.1-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:65beb15e7f9c16e15934569d29fb4def74ea1469d8781f6b3507ab896d6d8719"},
-    {file = "cryptography-3.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:983c0c3de4cb9fcba68fd3f45ed846eb86a2a8b8d8bc5bb18364c4d00b3c61fe"},
-    {file = "cryptography-3.1.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:e97a3b627e3cb63c415a16245d6cef2139cca18bb1183d1b9375a1c14e83f3b3"},
-    {file = "cryptography-3.1.1-cp27-cp27m-win32.whl", hash = "sha256:cb179acdd4ae1e4a5a160d80b87841b3d0e0be84af46c7bb2cd7ece57a39c4ba"},
-    {file = "cryptography-3.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:b372026ebf32fe2523159f27d9f0e9f485092e43b00a5adacf732192a70ba118"},
-    {file = "cryptography-3.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:680da076cad81cdf5ffcac50c477b6790be81768d30f9da9e01960c4b18a66db"},
-    {file = "cryptography-3.1.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:5d52c72449bb02dd45a773a203196e6d4fae34e158769c896012401f33064396"},
-    {file = "cryptography-3.1.1-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:f0e099fc4cc697450c3dd4031791559692dd941a95254cb9aeded66a7aa8b9bc"},
-    {file = "cryptography-3.1.1-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:a7597ffc67987b37b12e09c029bd1dc43965f75d328076ae85721b84046e9ca7"},
-    {file = "cryptography-3.1.1-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:4549b137d8cbe3c2eadfa56c0c858b78acbeff956bd461e40000b2164d9167c6"},
-    {file = "cryptography-3.1.1-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:89aceb31cd5f9fc2449fe8cf3810797ca52b65f1489002d58fe190bfb265c536"},
-    {file = "cryptography-3.1.1-cp35-cp35m-win32.whl", hash = "sha256:559d622aef2a2dff98a892eef321433ba5bc55b2485220a8ca289c1ecc2bd54f"},
-    {file = "cryptography-3.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:451cdf60be4dafb6a3b78802006a020e6cd709c22d240f94f7a0696240a17154"},
-    {file = "cryptography-3.1.1-cp36-abi3-win32.whl", hash = "sha256:762bc5a0df03c51ee3f09c621e1cee64e3a079a2b5020de82f1613873d79ee70"},
-    {file = "cryptography-3.1.1-cp36-abi3-win_amd64.whl", hash = "sha256:b12e715c10a13ca1bd27fbceed9adc8c5ff640f8e1f7ea76416352de703523c8"},
-    {file = "cryptography-3.1.1-cp36-cp36m-win32.whl", hash = "sha256:21b47c59fcb1c36f1113f3709d37935368e34815ea1d7073862e92f810dc7499"},
-    {file = "cryptography-3.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:48ee615a779ffa749d7d50c291761dc921d93d7cf203dca2db663b4f193f0e49"},
-    {file = "cryptography-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:b2bded09c578d19e08bd2c5bb8fed7f103e089752c9cf7ca7ca7de522326e921"},
-    {file = "cryptography-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f99317a0fa2e49917689b8cf977510addcfaaab769b3f899b9c481bbd76730c2"},
-    {file = "cryptography-3.1.1-cp38-cp38-win32.whl", hash = "sha256:ab010e461bb6b444eaf7f8c813bb716be2d78ab786103f9608ffd37a4bd7d490"},
-    {file = "cryptography-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:99d4984aabd4c7182050bca76176ce2dbc9fa9748afe583a7865c12954d714ba"},
-    {file = "cryptography-3.1.1.tar.gz", hash = "sha256:9d9fc6a16357965d282dd4ab6531013935425d0dc4950df2e0cf2a1b1ac1017d"},
+    {file = "cryptography-3.2.1-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:6dc59630ecce8c1f558277ceb212c751d6730bd12c80ea96b4ac65637c4f55e7"},
+    {file = "cryptography-3.2.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:75e8e6684cf0034f6bf2a97095cb95f81537b12b36a8fedf06e73050bb171c2d"},
+    {file = "cryptography-3.2.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4e7268a0ca14536fecfdf2b00297d4e407da904718658c1ff1961c713f90fd33"},
+    {file = "cryptography-3.2.1-cp27-cp27m-win32.whl", hash = "sha256:7117319b44ed1842c617d0a452383a5a052ec6aa726dfbaffa8b94c910444297"},
+    {file = "cryptography-3.2.1-cp27-cp27m-win_amd64.whl", hash = "sha256:a733671100cd26d816eed39507e585c156e4498293a907029969234e5e634bc4"},
+    {file = "cryptography-3.2.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:a75f306a16d9f9afebfbedc41c8c2351d8e61e818ba6b4c40815e2b5740bb6b8"},
+    {file = "cryptography-3.2.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:5849d59358547bf789ee7e0d7a9036b2d29e9a4ddf1ce5e06bb45634f995c53e"},
+    {file = "cryptography-3.2.1-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:bd717aa029217b8ef94a7d21632a3bb5a4e7218a4513d2521c2a2fd63011e98b"},
+    {file = "cryptography-3.2.1-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:efe15aca4f64f3a7ea0c09c87826490e50ed166ce67368a68f315ea0807a20df"},
+    {file = "cryptography-3.2.1-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:32434673d8505b42c0de4de86da8c1620651abd24afe91ae0335597683ed1b77"},
+    {file = "cryptography-3.2.1-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:7b8d9d8d3a9bd240f453342981f765346c87ade811519f98664519696f8e6ab7"},
+    {file = "cryptography-3.2.1-cp35-cp35m-win32.whl", hash = "sha256:d3545829ab42a66b84a9aaabf216a4dce7f16dbc76eb69be5c302ed6b8f4a29b"},
+    {file = "cryptography-3.2.1-cp35-cp35m-win_amd64.whl", hash = "sha256:a4e27ed0b2504195f855b52052eadcc9795c59909c9d84314c5408687f933fc7"},
+    {file = "cryptography-3.2.1-cp36-abi3-win32.whl", hash = "sha256:13b88a0bd044b4eae1ef40e265d006e34dbcde0c2f1e15eb9896501b2d8f6c6f"},
+    {file = "cryptography-3.2.1-cp36-abi3-win_amd64.whl", hash = "sha256:07ca431b788249af92764e3be9a488aa1d39a0bc3be313d826bbec690417e538"},
+    {file = "cryptography-3.2.1-cp36-cp36m-win32.whl", hash = "sha256:a035a10686532b0587d58a606004aa20ad895c60c4d029afa245802347fab57b"},
+    {file = "cryptography-3.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:d26a2557d8f9122f9bf445fc7034242f4375bd4e95ecda007667540270965b13"},
+    {file = "cryptography-3.2.1-cp37-cp37m-win32.whl", hash = "sha256:545a8550782dda68f8cdc75a6e3bf252017aa8f75f19f5a9ca940772fc0cb56e"},
+    {file = "cryptography-3.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:55d0b896631412b6f0c7de56e12eb3e261ac347fbaa5d5e705291a9016e5f8cb"},
+    {file = "cryptography-3.2.1-cp38-cp38-win32.whl", hash = "sha256:3cd75a683b15576cfc822c7c5742b3276e50b21a06672dc3a800a2d5da4ecd1b"},
+    {file = "cryptography-3.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:d25cecbac20713a7c3bc544372d42d8eafa89799f492a43b79e1dfd650484851"},
+    {file = "cryptography-3.2.1.tar.gz", hash = "sha256:d3d5e10be0cf2a12214ddee45c6bd203dab435e3d83b4560c03066eda600bfe3"},
+    {file = "cryptography-3.4.6-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:57ad77d32917bc55299b16d3b996ffa42a1c73c6cfa829b14043c561288d2799"},
+    {file = "cryptography-3.4.6-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:93cfe5b7ff006de13e1e89830810ecbd014791b042cbe5eec253be11ac2b28f3"},
+    {file = "cryptography-3.4.6-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:5ecf2bcb34d17415e89b546dbb44e73080f747e504273e4d4987630493cded1b"},
+    {file = "cryptography-3.4.6-cp36-abi3-manylinux2014_x86_64.whl", hash = "sha256:fec7fb46b10da10d9e1d078d1ff8ed9e05ae14f431fdbd11145edd0550b9a964"},
+    {file = "cryptography-3.4.6-cp36-abi3-win32.whl", hash = "sha256:df186fcbf86dc1ce56305becb8434e4b6b7504bc724b71ad7a3239e0c9d14ef2"},
+    {file = "cryptography-3.4.6-cp36-abi3-win_amd64.whl", hash = "sha256:66b57a9ca4b3221d51b237094b0303843b914b7d5afd4349970bb26518e350b0"},
+    {file = "cryptography-3.4.6.tar.gz", hash = "sha256:2d32223e5b0ee02943f32b19245b61a62db83a882f0e76cc564e1cec60d48f87"},
 ]
 distlib = [
     {file = "distlib-0.3.1-py2.py3-none-any.whl", hash = "sha256:8c09de2c67b3e7deef7184574fc060ab8a793e7adbb183d942c389c8b13c52fb"},
@@ -1175,8 +1228,8 @@ httpretty = [
     {file = "httpretty-0.9.7.tar.gz", hash = "sha256:66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe"},
 ]
 identify = [
-    {file = "identify-1.5.5-py2.py3-none-any.whl", hash = "sha256:da683bfb7669fa749fc7731f378229e2dbf29a1d1337cbde04106f02236eb29d"},
-    {file = "identify-1.5.5.tar.gz", hash = "sha256:7c22c384a2c9b32c5cc891d13f923f6b2653aa83e2d75d8f79be240d6c86c4f4"},
+    {file = "identify-2.1.0-py2.py3-none-any.whl", hash = "sha256:2a5fdf2f5319cc357eda2550bea713a404392495961022cf2462624ce62f0f46"},
+    {file = "identify-2.1.0.tar.gz", hash = "sha256:2179e7359471ab55729f201b3fdf7dc2778e221f868410fedcb0987b791ba552"},
 ]
 idna = [
     {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
@@ -1187,24 +1240,24 @@ importlib-metadata = [
     {file = "importlib_metadata-1.7.0.tar.gz", hash = "sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83"},
 ]
 importlib-resources = [
-    {file = "importlib_resources-3.0.0-py2.py3-none-any.whl", hash = "sha256:d028f66b66c0d5732dae86ba4276999855e162a749c92620a38c1d779ed138a7"},
-    {file = "importlib_resources-3.0.0.tar.gz", hash = "sha256:19f745a6eca188b490b1428c8d1d4a0d2368759f32370ea8fb89cad2ab1106c3"},
+    {file = "importlib_resources-3.2.1-py2.py3-none-any.whl", hash = "sha256:e2860cf0c4bc999947228d18be154fa3779c5dde0b882bd2d7b3f4d25e698bd6"},
+    {file = "importlib_resources-3.2.1.tar.gz", hash = "sha256:a9fe213ab6452708ec1b3f4ec6f2881b8ab3645cb4e5efb7fea2bbf05a91db3b"},
 ]
 ipaddress = [
     {file = "ipaddress-1.0.23-py2.py3-none-any.whl", hash = "sha256:6e0f4a39e66cb5bb9a137b00276a2eff74f93b71dcbdad6f10ff7df9d3557fcc"},
     {file = "ipaddress-1.0.23.tar.gz", hash = "sha256:b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2"},
 ]
 jeepney = [
-    {file = "jeepney-0.4.3-py3-none-any.whl", hash = "sha256:d6c6b49683446d2407d2fe3acb7a368a77ff063f9182fe427da15d622adc24cf"},
-    {file = "jeepney-0.4.3.tar.gz", hash = "sha256:3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e"},
+    {file = "jeepney-0.6.0-py3-none-any.whl", hash = "sha256:aec56c0eb1691a841795111e184e13cad504f7703b9a64f63020816afa79a8ae"},
+    {file = "jeepney-0.6.0.tar.gz", hash = "sha256:7d59b6622675ca9e993a6bd38de845051d315f8b0c72cca3aef733a20b648657"},
 ]
 keyring = [
     {file = "keyring-18.0.1-py2.py3-none-any.whl", hash = "sha256:7b29ebfcf8678c4da531b2478a912eea01e80007e5ddca9ee0c7038cb3489ec6"},
     {file = "keyring-18.0.1.tar.gz", hash = "sha256:67d6cc0132bd77922725fae9f18366bb314fd8f95ff4d323a4df41890a96a838"},
     {file = "keyring-20.0.1-py2.py3-none-any.whl", hash = "sha256:c674f032424b4bffc62abeac5523ec49cc84aed07a480c3233e0baf618efc15c"},
     {file = "keyring-20.0.1.tar.gz", hash = "sha256:963bfa7f090269d30bdc5e25589e5fd9dad2cf2a7c6f176a7f2386910e5d0d8d"},
-    {file = "keyring-21.4.0-py3-none-any.whl", hash = "sha256:4e34ea2fdec90c1c43d6610b5a5fafa1b9097db1802948e90caf5763974b8f8d"},
-    {file = "keyring-21.4.0.tar.gz", hash = "sha256:9aeadd006a852b78f4b4ef7c7556c2774d2432bbef8ee538a3e9089ac8b11466"},
+    {file = "keyring-21.8.0-py3-none-any.whl", hash = "sha256:4be9cbaaaf83e61d6399f733d113ede7d1c73bc75cb6aeb64eee0f6ac39b30ea"},
+    {file = "keyring-21.8.0.tar.gz", hash = "sha256:1746d3ac913d449a090caf11e9e4af00e26c3f7f7e81027872192b2398b98675"},
 ]
 lockfile = [
     {file = "lockfile-0.12.2-py2.py3-none-any.whl", hash = "sha256:6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"},
@@ -1218,36 +1271,48 @@ more-itertools = [
     {file = "more-itertools-5.0.0.tar.gz", hash = "sha256:38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4"},
     {file = "more_itertools-5.0.0-py2-none-any.whl", hash = "sha256:c0a5785b1109a6bd7fac76d6837fd1feca158e54e521ccd2ae8bfe393cc9d4fc"},
     {file = "more_itertools-5.0.0-py3-none-any.whl", hash = "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9"},
-    {file = "more-itertools-8.5.0.tar.gz", hash = "sha256:6f83822ae94818eae2612063a5101a7311e68ae8002005b5e05f03fd74a86a20"},
-    {file = "more_itertools-8.5.0-py3-none-any.whl", hash = "sha256:9b30f12df9393f0d28af9210ff8efe48d10c94f73e5daf886f10c4b0b0b4f03c"},
+    {file = "more-itertools-8.6.0.tar.gz", hash = "sha256:b3a9005928e5bed54076e6e549c792b306fddfe72b2d1d22dd63d42d5d3899cf"},
+    {file = "more_itertools-8.6.0-py3-none-any.whl", hash = "sha256:8e1a2a43b2f2727425f2b5839587ae37093f19153dc26c0927d1048ff6557330"},
+    {file = "more-itertools-8.7.0.tar.gz", hash = "sha256:c5d6da9ca3ff65220c3bfd2a8db06d698f05d4d2b9be57e1deb2be5a45019713"},
+    {file = "more_itertools-8.7.0-py3-none-any.whl", hash = "sha256:5652a9ac72209ed7df8d9c15daf4e1aa0e3d2ccd3c87f8265a0673cd9cbc9ced"},
 ]
 msgpack = [
-    {file = "msgpack-1.0.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:cec8bf10981ed70998d98431cd814db0ecf3384e6b113366e7f36af71a0fca08"},
-    {file = "msgpack-1.0.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:aa5c057eab4f40ec47ea6f5a9825846be2ff6bf34102c560bad5cad5a677c5be"},
-    {file = "msgpack-1.0.0-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:4233b7f86c1208190c78a525cd3828ca1623359ef48f78a6fea4b91bb995775a"},
-    {file = "msgpack-1.0.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:b3758dfd3423e358bbb18a7cccd1c74228dffa7a697e5be6cb9535de625c0dbf"},
-    {file = "msgpack-1.0.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:25b3bc3190f3d9d965b818123b7752c5dfb953f0d774b454fd206c18fe384fb8"},
-    {file = "msgpack-1.0.0-cp36-cp36m-win32.whl", hash = "sha256:e7bbdd8e2b277b77782f3ce34734b0dfde6cbe94ddb74de8d733d603c7f9e2b1"},
-    {file = "msgpack-1.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5dba6d074fac9b24f29aaf1d2d032306c27f04187651511257e7831733293ec2"},
-    {file = "msgpack-1.0.0-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:908944e3f038bca67fcfedb7845c4a257c7749bf9818632586b53bcf06ba4b97"},
-    {file = "msgpack-1.0.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:db685187a415f51d6b937257474ca72199f393dad89534ebbdd7d7a3b000080e"},
-    {file = "msgpack-1.0.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ea41c9219c597f1d2bf6b374d951d310d58684b5de9dc4bd2976db9e1e22c140"},
-    {file = "msgpack-1.0.0-cp37-cp37m-win32.whl", hash = "sha256:e35b051077fc2f3ce12e7c6a34cf309680c63a842db3a0616ea6ed25ad20d272"},
-    {file = "msgpack-1.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:5bea44181fc8e18eed1d0cd76e355073f00ce232ff9653a0ae88cb7d9e643322"},
-    {file = "msgpack-1.0.0-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:c901e8058dd6653307906c5f157f26ed09eb94a850dddd989621098d347926ab"},
-    {file = "msgpack-1.0.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:271b489499a43af001a2e42f42d876bb98ccaa7e20512ff37ca78c8e12e68f84"},
-    {file = "msgpack-1.0.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7a22c965588baeb07242cb561b63f309db27a07382825fc98aecaf0827c1538e"},
-    {file = "msgpack-1.0.0-cp38-cp38-win32.whl", hash = "sha256:002a0d813e1f7b60da599bdf969e632074f9eec1b96cbed8fb0973a63160a408"},
-    {file = "msgpack-1.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:39c54fdebf5fa4dda733369012c59e7d085ebdfe35b6cf648f09d16708f1be5d"},
-    {file = "msgpack-1.0.0.tar.gz", hash = "sha256:9534d5cc480d4aff720233411a1f765be90885750b07df772380b34c10ecb5c0"},
+    {file = "msgpack-1.0.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:b6d9e2dae081aa35c44af9c4298de4ee72991305503442a5c74656d82b581fe9"},
+    {file = "msgpack-1.0.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:a99b144475230982aee16b3d249170f1cccebf27fb0a08e9f603b69637a62192"},
+    {file = "msgpack-1.0.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1026dcc10537d27dd2d26c327e552f05ce148977e9d7b9f1718748281b38c841"},
+    {file = "msgpack-1.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:fe07bc6735d08e492a327f496b7850e98cb4d112c56df69b0c844dbebcbb47f6"},
+    {file = "msgpack-1.0.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:9ea52fff0473f9f3000987f313310208c879493491ef3ccf66268eff8d5a0326"},
+    {file = "msgpack-1.0.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:26a1759f1a88df5f1d0b393eb582ec022326994e311ba9c5818adc5374736439"},
+    {file = "msgpack-1.0.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:497d2c12426adcd27ab83144057a705efb6acc7e85957a51d43cdcf7f258900f"},
+    {file = "msgpack-1.0.2-cp36-cp36m-win32.whl", hash = "sha256:e89ec55871ed5473a041c0495b7b4e6099f6263438e0bd04ccd8418f92d5d7f2"},
+    {file = "msgpack-1.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a4355d2193106c7aa77c98fc955252a737d8550320ecdb2e9ac701e15e2943bc"},
+    {file = "msgpack-1.0.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:d6c64601af8f3893d17ec233237030e3110f11b8a962cb66720bf70c0141aa54"},
+    {file = "msgpack-1.0.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f484cd2dca68502de3704f056fa9b318c94b1539ed17a4c784266df5d6978c87"},
+    {file = "msgpack-1.0.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f3e6aaf217ac1c7ce1563cf52a2f4f5d5b1f64e8729d794165db71da57257f0c"},
+    {file = "msgpack-1.0.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:8521e5be9e3b93d4d5e07cb80b7e32353264d143c1f072309e1863174c6aadb1"},
+    {file = "msgpack-1.0.2-cp37-cp37m-win32.whl", hash = "sha256:31c17bbf2ae5e29e48d794c693b7ca7a0c73bd4280976d408c53df421e838d2a"},
+    {file = "msgpack-1.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8ffb24a3b7518e843cd83538cf859e026d24ec41ac5721c18ed0c55101f9775b"},
+    {file = "msgpack-1.0.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:b28c0876cce1466d7c2195d7658cf50e4730667196e2f1355c4209444717ee06"},
+    {file = "msgpack-1.0.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:87869ba567fe371c4555d2e11e4948778ab6b59d6cc9d8460d543e4cfbbddd1c"},
+    {file = "msgpack-1.0.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:b55f7db883530b74c857e50e149126b91bb75d35c08b28db12dcb0346f15e46e"},
+    {file = "msgpack-1.0.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:ac25f3e0513f6673e8b405c3a80500eb7be1cf8f57584be524c4fa78fe8e0c83"},
+    {file = "msgpack-1.0.2-cp38-cp38-win32.whl", hash = "sha256:0cb94ee48675a45d3b86e61d13c1e6f1696f0183f0715544976356ff86f741d9"},
+    {file = "msgpack-1.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:e36a812ef4705a291cdb4a2fd352f013134f26c6ff63477f20235138d1d21009"},
+    {file = "msgpack-1.0.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:2a5866bdc88d77f6e1370f82f2371c9bc6fc92fe898fa2dec0c5d4f5435a2694"},
+    {file = "msgpack-1.0.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:92be4b12de4806d3c36810b0fe2aeedd8d493db39e2eb90742b9c09299eb5759"},
+    {file = "msgpack-1.0.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:de6bd7990a2c2dabe926b7e62a92886ccbf809425c347ae7de277067f97c2887"},
+    {file = "msgpack-1.0.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5a9ee2540c78659a1dd0b110f73773533ee3108d4e1219b5a15a8d635b7aca0e"},
+    {file = "msgpack-1.0.2-cp39-cp39-win32.whl", hash = "sha256:c747c0cc08bd6d72a586310bda6ea72eeb28e7505990f342552315b229a19b33"},
+    {file = "msgpack-1.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:d8167b84af26654c1124857d71650404336f4eb5cc06900667a493fc619ddd9f"},
+    {file = "msgpack-1.0.2.tar.gz", hash = "sha256:fae04496f5bc150eefad4e9571d1a76c55d021325dcd484ce45065ebbdd00984"},
 ]
 nodeenv = [
     {file = "nodeenv-1.5.0-py2.py3-none-any.whl", hash = "sha256:5304d424c529c997bc888453aeaa6362d242b6b4631e90f3d4bf1b290f1c84a9"},
     {file = "nodeenv-1.5.0.tar.gz", hash = "sha256:ab45090ae383b716c4ef89e690c41ff8c2b257b85b309f01f3654df3d084bd7c"},
 ]
 packaging = [
-    {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"},
-    {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"},
+    {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"},
+    {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"},
 ]
 pastel = [
     {file = "pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364"},
@@ -1262,28 +1327,28 @@ pexpect = [
     {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"},
 ]
 pkginfo = [
-    {file = "pkginfo-1.5.0.1-py2.py3-none-any.whl", hash = "sha256:a6d9e40ca61ad3ebd0b72fbadd4fba16e4c0e4df0428c041e01e06eb6ee71f32"},
-    {file = "pkginfo-1.5.0.1.tar.gz", hash = "sha256:7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb"},
+    {file = "pkginfo-1.7.0-py2.py3-none-any.whl", hash = "sha256:9fdbea6495622e022cc72c2e5e1b735218e4ffb2a2a69cde2694a6c1f16afb75"},
+    {file = "pkginfo-1.7.0.tar.gz", hash = "sha256:029a70cb45c6171c329dfc890cde0879f8c52d6f3922794796e06f577bb03db4"},
 ]
 pluggy = [
     {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"},
     {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"},
 ]
 poetry-core = [
-    {file = "poetry-core-1.0.0.tar.gz", hash = "sha256:6a664ff389b9f45382536f8fa1611a0cb4d2de7c5a5c885db1f0c600cd11fbd5"},
-    {file = "poetry_core-1.0.0-py2.py3-none-any.whl", hash = "sha256:769288e0e1b88dfcceb3185728f0b7388b26d5f93d6c22d2dcae372da51d200d"},
+    {file = "poetry-core-1.0.2.tar.gz", hash = "sha256:ff505d656a6cf40ffbf84393d8b5bf37b78523a15def3ac473b6fad74261ee71"},
+    {file = "poetry_core-1.0.2-py2.py3-none-any.whl", hash = "sha256:ee0ed4164440eeab27d1b01bc7b9b3afdc3124f68d4ea28d0821a402a9c7c044"},
 ]
 pre-commit = [
-    {file = "pre_commit-2.7.1-py2.py3-none-any.whl", hash = "sha256:810aef2a2ba4f31eed1941fc270e72696a1ad5590b9751839c90807d0fff6b9a"},
-    {file = "pre_commit-2.7.1.tar.gz", hash = "sha256:c54fd3e574565fe128ecc5e7d2f91279772ddb03f8729645fa812fe809084a70"},
+    {file = "pre_commit-2.10.1-py2.py3-none-any.whl", hash = "sha256:16212d1fde2bed88159287da88ff03796863854b04dc9f838a55979325a3d20e"},
+    {file = "pre_commit-2.10.1.tar.gz", hash = "sha256:399baf78f13f4de82a29b649afd74bef2c4e28eb4f021661fc7f29246e8c7a3a"},
 ]
 ptyprocess = [
-    {file = "ptyprocess-0.6.0-py2.py3-none-any.whl", hash = "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f"},
-    {file = "ptyprocess-0.6.0.tar.gz", hash = "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0"},
+    {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"},
+    {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"},
 ]
 py = [
-    {file = "py-1.9.0-py2.py3-none-any.whl", hash = "sha256:366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2"},
-    {file = "py-1.9.0.tar.gz", hash = "sha256:9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342"},
+    {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"},
+    {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"},
 ]
 pycparser = [
     {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
@@ -1304,8 +1369,8 @@ pytest = [
     {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"},
 ]
 pytest-cov = [
-    {file = "pytest-cov-2.10.1.tar.gz", hash = "sha256:47bd0ce14056fdd79f93e1713f88fad7bdcc583dcd7783da86ef2f085a0bb88e"},
-    {file = "pytest_cov-2.10.1-py2.py3-none-any.whl", hash = "sha256:45ec2d5182f89a81fc3eb29e3d1ed3113b9e9a873bcddb2a71faaab066110191"},
+    {file = "pytest-cov-2.11.1.tar.gz", hash = "sha256:359952d9d39b9f822d9d29324483e7ba04a3a17dd7d05aa6beb7ea01e359e5f7"},
+    {file = "pytest_cov-2.11.1-py2.py3-none-any.whl", hash = "sha256:bdb9fdb0b85a7cc825269a4c56b48ccaa5c7e365054b6038772c32ddcdc969da"},
 ]
 pytest-mock = [
     {file = "pytest-mock-1.13.0.tar.gz", hash = "sha256:e24a911ec96773022ebcc7030059b57cd3480b56d4f5d19b7c370ec635e6aed5"},
@@ -1319,21 +1384,31 @@ pywin32-ctypes = [
     {file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"},
 ]
 pyyaml = [
-    {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"},
-    {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"},
-    {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"},
-    {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"},
-    {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"},
-    {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"},
-    {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"},
-    {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"},
-    {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"},
-    {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"},
-    {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"},
+    {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"},
+    {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"},
+    {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"},
+    {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"},
+    {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"},
+    {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"},
+    {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"},
+    {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"},
+    {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"},
+    {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"},
+    {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"},
+    {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"},
+    {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"},
+    {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"},
+    {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"},
+    {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"},
+    {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"},
+    {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"},
+    {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"},
+    {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"},
+    {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"},
 ]
 requests = [
-    {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
-    {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
+    {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"},
+    {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"},
 ]
 requests-toolbelt = [
     {file = "requests-toolbelt-0.9.1.tar.gz", hash = "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"},
@@ -1354,16 +1429,16 @@ scandir = [
 ]
 secretstorage = [
     {file = "SecretStorage-2.3.1.tar.gz", hash = "sha256:3af65c87765323e6f64c83575b05393f9e003431959c9395d1791d51497f29b6"},
-    {file = "SecretStorage-3.1.2-py3-none-any.whl", hash = "sha256:b5ec909dde94d4ae2fa26af7c089036997030f0cf0a5cb372b4cccabd81c143b"},
-    {file = "SecretStorage-3.1.2.tar.gz", hash = "sha256:15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6"},
+    {file = "SecretStorage-3.3.1-py3-none-any.whl", hash = "sha256:422d82c36172d88d6a0ed5afdec956514b189ddbfb72fefab0c8a1cee4eaf71f"},
+    {file = "SecretStorage-3.3.1.tar.gz", hash = "sha256:fd666c51a6bf200643495a04abb261f83229dcb6fd8472ec393df7ffc8b6f195"},
 ]
 shellingham = [
-    {file = "shellingham-1.3.2-py2.py3-none-any.whl", hash = "sha256:7f6206ae169dc1a03af8a138681b3f962ae61cc93ade84d0585cca3aaf770044"},
-    {file = "shellingham-1.3.2.tar.gz", hash = "sha256:576c1982bea0ba82fb46c36feb951319d7f42214a82634233f58b40d858a751e"},
+    {file = "shellingham-1.4.0-py2.py3-none-any.whl", hash = "sha256:536b67a0697f2e4af32ab176c00a50ac2899c5a05e0d8e2dadac8e58888283f9"},
+    {file = "shellingham-1.4.0.tar.gz", hash = "sha256:4855c2458d6904829bd34c299f11fdeed7cfefbf8a2c522e4caea6cd76b3171e"},
 ]
 singledispatch = [
-    {file = "singledispatch-3.4.0.3-py2.py3-none-any.whl", hash = "sha256:833b46966687b3de7f438c761ac475213e53b306740f1abfaa86e1d1aae56aa8"},
-    {file = "singledispatch-3.4.0.3.tar.gz", hash = "sha256:5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c"},
+    {file = "singledispatch-3.6.1-py2.py3-none-any.whl", hash = "sha256:85c97f94c8957fa4e6dab113156c182fb346d56d059af78aad710bced15f16fb"},
+    {file = "singledispatch-3.6.1.tar.gz", hash = "sha256:58b46ce1cc4d43af0aac3ac9a047bdb0f44e05f0b2fa2eec755863331700c865"},
 ]
 six = [
     {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
@@ -1371,22 +1446,23 @@ six = [
 ]
 subprocess32 = [
     {file = "subprocess32-3.5.4-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:88e37c1aac5388df41cc8a8456bb49ebffd321a3ad4d70358e3518176de3a56b"},
+    {file = "subprocess32-3.5.4-cp27-cp27mu-manylinux2014_x86_64.whl", hash = "sha256:e45d985aef903c5b7444d34350b05da91a9e0ea015415ab45a21212786c649d0"},
     {file = "subprocess32-3.5.4.tar.gz", hash = "sha256:eb2937c80497978d181efa1b839ec2d9622cf9600a039a79d0e108d1f9aec79d"},
 ]
 termcolor = [
     {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"},
 ]
 toml = [
-    {file = "toml-0.10.1-py2.py3-none-any.whl", hash = "sha256:bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88"},
-    {file = "toml-0.10.1.tar.gz", hash = "sha256:926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f"},
+    {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
+    {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
 ]
 tomlkit = [
     {file = "tomlkit-0.7.0-py2.py3-none-any.whl", hash = "sha256:6babbd33b17d5c9691896b0e68159215a9387ebfa938aa3ac42f4a4beeb2b831"},
     {file = "tomlkit-0.7.0.tar.gz", hash = "sha256:ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618"},
 ]
 tox = [
-    {file = "tox-3.20.0-py2.py3-none-any.whl", hash = "sha256:e6318f404aff16522ff5211c88cab82b39af121735a443674e4e2e65f4e4637b"},
-    {file = "tox-3.20.0.tar.gz", hash = "sha256:eb629ddc60e8542fd4a1956b2462e3b8771d49f1ff630cecceacaa0fbfb7605a"},
+    {file = "tox-3.23.0-py2.py3-none-any.whl", hash = "sha256:e007673f3595cede9b17a7c4962389e4305d4a3682a6c5a4159a1453b4f326aa"},
+    {file = "tox-3.23.0.tar.gz", hash = "sha256:05a4dbd5e4d3d8269b72b55600f0b0303e2eb47ad5c6fe76d3576f4c58d93661"},
 ]
 typing = [
     {file = "typing-3.7.4.3-py2-none-any.whl", hash = "sha256:283d868f5071ab9ad873e5e52268d611e851c870a2ba354193026f2dfb29d8b5"},
@@ -1398,12 +1474,12 @@ typing-extensions = [
     {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"},
 ]
 urllib3 = [
-    {file = "urllib3-1.25.10-py2.py3-none-any.whl", hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"},
-    {file = "urllib3-1.25.10.tar.gz", hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"},
+    {file = "urllib3-1.25.11-py2.py3-none-any.whl", hash = "sha256:f5321fbe4bf3fefa0efd0bfe7fb14e90909eb62a48ccda331726b4319897dd5e"},
+    {file = "urllib3-1.25.11.tar.gz", hash = "sha256:8d7eaa5a82a1cac232164990f04874c594c9453ec55eef02eab885aa02fc17a2"},
 ]
 virtualenv = [
-    {file = "virtualenv-20.0.31-py2.py3-none-any.whl", hash = "sha256:e0305af10299a7fb0d69393d8f04cb2965dda9351140d11ac8db4e5e3970451b"},
-    {file = "virtualenv-20.0.31.tar.gz", hash = "sha256:43add625c53c596d38f971a465553f6318decc39d98512bc100fa1b1e839c8dc"},
+    {file = "virtualenv-20.4.2-py2.py3-none-any.whl", hash = "sha256:2be72df684b74df0ea47679a7df93fd0e04e72520022c57b479d8f881485dbe3"},
+    {file = "virtualenv-20.4.2.tar.gz", hash = "sha256:147b43894e51dd6bba882cf9c282447f780e2251cd35172403745fc381a0a80d"},
 ]
 wcwidth = [
     {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
index 0868175ea45d..02f6dabc86fc 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "poetry"
-version = "1.1.4"
+version = "1.1.5"
 description = "Python dependency management and packaging made easy."
 authors = [
     "Sébastien Eustace <sebastien@eustace.io>"
@@ -24,7 +24,7 @@ classifiers = [
 [tool.poetry.dependencies]
 python = "~2.7 || ^3.5"
 
-poetry-core = "^1.0.0"
+poetry-core = "~1.0.2"
 cleo = "^0.8.1"
 clikit = "^0.6.2"
 crashtest = { version = "^0.3.0", python = "^3.6" }
@@ -71,6 +71,10 @@ pre-commit = { version = "^2.6", python = "^3.6.1" }
 tox = "^3.0"
 pytest-sugar = "^0.9.2"
 httpretty = "^0.9.6"
+# We need to restrict the version of urllib3 to avoid
+# httpretty breaking. This is fixed in httpretty >= 1.0.3
+# but it's not compatible with Python 2.7 and 3.5.
+urllib3 = "~1.25.10"
 
 [tool.poetry.scripts]
 poetry = "poetry.console:main"
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
index 4a1e8890c28c..fcdb01e29c1d 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
@@ -1,7 +1,7 @@
 {
     "owner": "python-poetry",
     "repo": "poetry",
-    "rev": "8312e3f2dbfa126cd311c666fea30656941e1bd3",
-    "sha256": "0lx3qpz5dad0is7ki5a4vxphvc8cm8fnv4bmrx226a6nvvaj6ahs",
+    "rev": "a9704149394151f4d0d28cd5d8ee2283c7d10787",
+    "sha256": "0bv6irpscpak6pldkzrx4j12dqnpfz5h8fy5lliglizv0avh60hf",
     "fetchSubmodules": true
 }
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update
index 33a2823f360a..915726c658f5 100755
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i bash -p curl nix-prefetch-github
+#! nix-shell -i bash -p curl nix-prefetch-github jq
 
 rev=$(curl -s https://api.github.com/repos/python-poetry/poetry/releases/latest | jq -r '.name')
 nix-prefetch-github --rev "$rev" python-poetry poetry > src.json
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
index bf001392e6af..0ef1d4c316ac 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
@@ -3,7 +3,7 @@ let
   inherit (builtins) elemAt match;
   operators =
     let
-      matchWildCard = s: match "([^\*])(\.[\*])" s;
+      matchWildCard = s: match "([^*])(\\.[*])" s;
       mkComparison = ret: version: v: builtins.compareVersions version v == ret;
       mkIdxComparison = idx: version: v:
         let
@@ -52,8 +52,8 @@ let
       #
     };
   re = {
-    operators = "([=><!~\^]+)";
-    version = "([0-9\.\*x]+)";
+    operators = "([=><!~^]+)";
+    version = "([0-9.*x]+)";
   };
   parseConstraint = constraint:
     let
diff --git a/nixpkgs/pkgs/development/tools/pqrs/default.nix b/nixpkgs/pkgs/development/tools/pqrs/default.nix
new file mode 100644
index 000000000000..fb91709bde03
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/pqrs/default.nix
@@ -0,0 +1,22 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pqrs";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "manojkarthick";
+    repo = "pqrs";
+    rev = "v${version}";
+    sha256 = "1vx952ki1rhwfmr3faxs363m9fh61b37b0bkbs57ggn9r44sk1z2";
+  };
+
+  cargoSha256 = "1c482y83gzpvazdsxsx5n509mkqmyz640s18y4yg928mmqbsz9c4";
+
+  meta = with lib; {
+    description = "CLI tool to inspect Parquet files";
+    homepage = "https://github.com/manojkarthick/pqrs";
+    license = with licenses; [ mit /* or */ asl20 ];
+    maintainers = [ maintainers.manojkarthick ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/profiling/systemtap/default.nix b/nixpkgs/pkgs/development/tools/profiling/systemtap/default.nix
index c5d65a8239ea..641c1581b051 100644
--- a/nixpkgs/pkgs/development/tools/profiling/systemtap/default.nix
+++ b/nixpkgs/pkgs/development/tools/profiling/systemtap/default.nix
@@ -37,7 +37,7 @@ let
 
 in runCommand "systemtap-${kernel.version}-${version}" {
   inherit stapBuild kernelBuildDir;
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   meta = {
     homepage = "https://sourceware.org/systemtap/";
     repositories.git = url;
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix
new file mode 100644
index 000000000000..9f94e3c78f31
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "protoc-gen-go";
+  version = "1.26.0";
+
+  src = fetchFromGitHub {
+    owner = "protocolbuffers";
+    repo = "protobuf-go";
+    rev = "v${version}";
+    sha256 = "sha256-n2LHI8DXQFFWhTPOFCegBgwi/0tFvRE226AZfRW8Bnc=";
+  };
+
+  vendorSha256 = "sha256-yb8l4ooZwqfvenlxDRg95rqiL+hmsn0weS/dPv/oD2Y=";
+
+  subPackages = [ "cmd/protoc-gen-go" ];
+
+  meta = with lib; {
+    description = "Go support for Google's protocol buffers";
+    homepage = "https://google.golang.org/protobuf";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jojosch ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix
new file mode 100644
index 000000000000..ae92a1055034
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "protoc-gen-twirp";
+  version = "7.1.1";
+
+  src = fetchFromGitHub {
+    owner = "twitchtv";
+    repo = "twirp";
+    rev = "v${version}";
+    sha256 = "sha256-GN7akAp0zzS8wVhgXlT1ceFUFKH4Sz74XQ8ofIE8T/k=";
+  };
+
+  goPackagePath = "github.com/twitchtv/twirp";
+
+  subPackages = [
+    "protoc-gen-twirp"
+    "protoc-gen-twirp_python"
+  ];
+
+  meta = with lib; {
+    description = "A simple RPC framework with protobuf service definitions";
+    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
new file mode 100644
index 000000000000..40df9e974e4d
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-twirp_php/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchgit }:
+
+buildGoModule rec {
+  pname = "protoc-gen-twirp_php";
+  version = "0.6.0";
+
+  # fetchFromGitHub currently not possible, because go.mod and go.sum are export-ignored
+  src = fetchgit {
+    url = "https://github.com/twirphp/twirp.git";
+    rev = "v${version}";
+    sha256 = "sha256-WnvCdAJIMA4A+f7H61qcVbKNn23bNVOC15vMCEKc+CI=";
+  };
+
+  vendorSha256 = "sha256-LIMxrWXlK7+JIRmtukdXPqfw8H991FCAOuyEf7ZLSTs=";
+
+  subPackages = [ "protoc-gen-twirp_php" ];
+
+  preBuild = ''
+    go generate ./...
+  '';
+
+  meta = with lib; {
+    description = "PHP port of Twitch's Twirp RPC framework";
+    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
new file mode 100644
index 000000000000..3348759c0113
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-twirp_swagger/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule {
+  pname = "protoc-gen-twirp_swagger";
+  version = "unstable-2021-03-29";
+
+  src = fetchFromGitHub {
+    owner = "elliots";
+    repo = "protoc-gen-twirp_swagger";
+    rev = "f21ef47d69e37c1602a7fb26146de05c092d30b6";
+    sha256 = "sha256-uHU15NbHK7SYgNS3VK21H/OqDo/JyyTZdXw3i9lsgLY=";
+  };
+
+  vendorSha256 = "sha256-g0+9l83Fc0XPzsZAKjLBrjD+tv2+Fot57hcilqAhOZk=";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Swagger generator for twirp";
+    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
new file mode 100644
index 000000000000..2aabe3bcce6e
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-twirp_typescript/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule {
+  pname = "protoc-gen-twirp_typescript";
+  version = "unstable-2021-03-29";
+
+  src = fetchFromGitHub {
+    owner = "larrymyers";
+    repo = "protoc-gen-twirp_typescript";
+    rev = "97fd63e543beb2d9f6a90ff894981affe0f2faf1";
+    sha256 = "sha256-LfF/n96LwRX8aoPHzCRI/QbDmZR9yMhE5yGhFAqa8nA=";
+  };
+
+  vendorSha256 = "sha256-WISWuq1neVX4xQkoamc6FznZahOQHwgkYmERJF40OFQ=";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Protobuf Plugin for Generating a Twirp Typescript Client";
+    homepage = "https://github.com/larrymyers/protoc-gen-twirp_typescript";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jojosch ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/quilt/default.nix b/nixpkgs/pkgs/development/tools/quilt/default.nix
index 71cf10e63b91..94b5e5a6dcc2 100644
--- a/nixpkgs/pkgs/development/tools/quilt/default.nix
+++ b/nixpkgs/pkgs/development/tools/quilt/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "01vfvk4pqigahx82fhaaffg921ivd3k7rylz1yfvy4zbdyd32jri";
   };
 
-  buildInputs = [ makeWrapper perl bash diffutils patch findutils diffstat ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl bash diffutils patch findutils diffstat ];
 
   postInstall = ''
     wrapProgram $out/bin/quilt --prefix PATH : \
diff --git a/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix b/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
index d1c86d9248a3..ae1ac3e39f3e 100644
--- a/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
+++ b/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
@@ -44,7 +44,7 @@ in stdenv.mkDerivation rec {
     sha256 = "sha256-UXKObJKk9UUgWtm8U+nXWvIJUr4NLm2f//pGTHJISYA=";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
   buildCommand = ''
     shopt -s extglob
     mkdir -p $out
diff --git a/nixpkgs/pkgs/development/tools/renderizer/default.nix b/nixpkgs/pkgs/development/tools/renderizer/default.nix
index 22bf5fbe904a..ccf1d4a37d6c 100644
--- a/nixpkgs/pkgs/development/tools/renderizer/default.nix
+++ b/nixpkgs/pkgs/development/tools/renderizer/default.nix
@@ -2,18 +2,20 @@
 
 buildGoModule rec {
   pname = "renderizer";
-  version = "2.0.9";
+  version = "2.0.12";
 
   src = fetchFromGitHub {
     owner = "gomatic";
     repo = pname;
-    rev = version;
-    sha256 = "1bip12pcn8bqgph7vd7bzzadwbyqh80fx7gqciv9fchycwsj04rf";
+    rev = "v${version}";
+    sha256 = "sha256-Ji+wTTXLp17EYRIjUiVgd33ZeBdT8K2O8R2Ejq2Ll5I=";
   };
 
-  vendorSha256 = "13z357ww4j5bmmy8ag6d6gd5b2dib8kby73q8317pqnqzaxrrbcj";
+  buildFlagsArray = [
+    "-ldflags=-s -w -X main.version=${version} -X main.commitHash=${src.rev} -X main.date=19700101T000000"
+  ];
 
-  doCheck = false;
+  vendorSha256 = null;
 
   meta = with lib; {
     description = "CLI to render Go template text files";
diff --git a/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix b/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix
index 828b8e5b1cd6..a3599d9ee9db 100644
--- a/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix
+++ b/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nexus";
-  version = "3.29.2-02";
+  version = "3.30.0-01";
 
   src = fetchurl {
     url = "https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-${version}-unix.tar.gz";
-    sha256 = "sha256-vHy7V32xlYaPJdc8oi3j98weOdc4R5S64Dwo9YI8o6c=";
+    sha256 = "sha256-axhuw1FNut+JqS1WCxyQmP08qh0tXn9UAvz2Gj1kGPs=";
   };
 
   preferLocalBuild = true;
diff --git a/nixpkgs/pkgs/development/tools/rgp/default.nix b/nixpkgs/pkgs/development/tools/rgp/default.nix
index 8beeccfa2fd1..3cfd608e2258 100644
--- a/nixpkgs/pkgs/development/tools/rgp/default.nix
+++ b/nixpkgs/pkgs/development/tools/rgp/default.nix
@@ -53,6 +53,8 @@ stdenv.mkDerivation rec {
     "${placeholder "out"}/opt/rgp/qt"
   ];
 
+  dontWrapQtApps = true;
+
   installPhase = ''
     mkdir -p $out/opt/rgp $out/bin
     cp -r . $out/opt/rgp/
diff --git a/nixpkgs/pkgs/development/tools/ronn/default.nix b/nixpkgs/pkgs/development/tools/ronn/default.nix
index 9e4ac0b58ebe..8b5166272202 100644
--- a/nixpkgs/pkgs/development/tools/ronn/default.nix
+++ b/nixpkgs/pkgs/development/tools/ronn/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   phases = ["installPhase"];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/development/tools/rshell/default.nix b/nixpkgs/pkgs/development/tools/rshell/default.nix
index 4e3e12a8eeb1..bcda3c02dd63 100644
--- a/nixpkgs/pkgs/development/tools/rshell/default.nix
+++ b/nixpkgs/pkgs/development/tools/rshell/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "rshell";
-  version = "0.0.28";
+  version = "0.0.30";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1crnlv0khplpibl9mj3flrgp877pnr1xz6hnnsi6hk3kfbc6p3nj";
+    sha256 = "d2002d40d735204037d6142a6c2d51beecc763c124faaf759cabf7acd945be95";
   };
 
   propagatedBuildInputs = [ pyserial pyudev ];
diff --git a/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock b/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock
index d91fcdbb3e99..61792b3ec580 100644
--- a/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock
+++ b/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock
@@ -6,9 +6,9 @@ GEM
     parser (3.0.0.0)
       ast (~> 2.4.1)
     rainbow (3.0.0)
-    regexp_parser (2.0.3)
+    regexp_parser (2.1.1)
     rexml (3.2.4)
-    rubocop (1.9.1)
+    rubocop (1.12.1)
       parallel (~> 1.10)
       parser (>= 3.0.0.0)
       rainbow (>= 2.2.2, < 4.0)
diff --git a/nixpkgs/pkgs/development/tools/rubocop/default.nix b/nixpkgs/pkgs/development/tools/rubocop/default.nix
index 9a6393977d7f..2122236af5ee 100644
--- a/nixpkgs/pkgs/development/tools/rubocop/default.nix
+++ b/nixpkgs/pkgs/development/tools/rubocop/default.nix
@@ -11,9 +11,8 @@ bundlerEnv {
 
   meta = with lib; {
     description = "Automatic Ruby code style checking tool";
-    homepage = "https://docs.rubocop.org/";
+    homepage = "https://rubocop.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ marsam leemachin ];
-    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rubocop/gemset.nix b/nixpkgs/pkgs/development/tools/rubocop/gemset.nix
index 7de3fd53489e..a97937496280 100644
--- a/nixpkgs/pkgs/development/tools/rubocop/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/rubocop/gemset.nix
@@ -45,10 +45,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zm86k9q8m5jkcnpb1f93wsvc57saldfj8czxkx1aw031i95inip";
+      sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr";
       type = "gem";
     };
-    version = "2.0.3";
+    version = "2.1.1";
   };
   rexml = {
     groups = ["default"];
@@ -66,10 +66,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06npybjypxsrz09z8ivxqfcwzpbgif6z3hwpp0ls8znqlgp3m922";
+      sha256 = "0hi2c3a6alya9yx07nirnjzlc0mvmidnx67874njp6wf7d5xqqr9";
       type = "gem";
     };
-    version = "1.9.1";
+    version = "1.12.1";
   };
   rubocop-ast = {
     dependencies = ["parser"];
diff --git a/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix b/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix
index f379e58ba16b..962e8c562c74 100644
--- a/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix
@@ -5,7 +5,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-bindgen";
-  version = "0.55.1";
+  version = "0.57.0";
 
   RUSTFLAGS = "--cap-lints warn"; # probably OK to remove after update
 
@@ -13,10 +13,10 @@ rustPlatform.buildRustPackage rec {
     owner = "rust-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cbc78zrhda4adza88g05sy04chixqay2ylgdjgmf13h607hp3kn";
+    sha256 = "sha256-0d8+Rkb4h1DoFUQ7u2/kPR/fUUz0YvI+hNT4iXL3mxY=";
   };
 
-  cargoSha256 = "1dv1ywdy701bnc2jv5jq0hnpal1snlizaj9w6k1wxyrp9szjd48w";
+  cargoSha256 = "sha256-cUDOi3QwjEJaBXGSQZQ76gZ702QLNok8fr6U2q+tVao=";
 
   #for substituteAll
   libclang = llvmPackages.libclang.lib;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
index c468ad0f4e18..8d12da30a6f2 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
@@ -5,7 +5,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-c";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = stdenv.mkDerivation rec {
     name = "${pname}-source-${version}";
@@ -14,11 +14,11 @@ rustPlatform.buildRustPackage rec {
       owner = "lu-zero";
       repo = pname;
       rev = "v${version}";
-      sha256 = "1rgwj3kf31n4rz0b7jw67wsgyapdycfic7plm5gm4n9rlslp5ax5";
+      sha256 = "1rvbikhbqsfa2sh79kapqg4yz19r1yhqfykl6cf4yjg6vawkwfw1";
     };
     cargoLock = fetchurl {
       url = "https://github.com/lu-zero/${pname}/releases/download/v${version}/Cargo.lock";
-      sha256 = "0jnawnkf4m7cqcq9iahnxa53l61a5riax400n96vxrqf3fa752c6";
+      sha256 = "17cdac8ym59jwjxs3k4isazknhrlr6lw0j0r76n5xf0dd7apfgcs";
     };
 
     installPhase = ''
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "0svmhq64aqw1vidq8jmw7w4xhhnyp04vcs9yzhjyz25c4cn9grsf";
+  cargoSha256 = "1rmhg9xhljgd5yq3xs0fzw1b0bgz7jfpf5mr2gviwqahl5vxvfiq";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
index e3c16b09ef34..eeec0487c650 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-crev";
-  version = "0.18.1";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "sha256-qoN9pTpmXfwaJ37MqAggiPsH4cPr+nsT6NhAUOVclSw=";
+    sha256 = "sha256-/TROCaguzIdXnkQ4BpVR1W14ppGODGQ0MQAjJExMGVw=";
   };
 
-  cargoSha256 = "sha256-mmd9Ds37ST+OuCt506/YbdpOOJBp7WIVZBq+bQ2SR3U=";
+  cargoSha256 = "sha256-3uIf6vyeDeww8+dqrzOG4J/T9QbXAnKQKXRbeujeqSo=";
 
   nativeBuildInputs = [ perl pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix
new file mode 100644
index 000000000000..664f3688eaf3
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-criterion";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "bheisler";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-NiuK+PexfF2wmA8drqqkv/RQlVwYLT3q2QWvV0ghJwg=";
+  };
+
+  cargoSha256 = "sha256-A6Kkm/4MSAEJfehA6zSQJU+JwVIhKPcfMZCO9S6Zyx4=";
+
+  meta = with lib; {
+    description = "Cargo extension for running Criterion.rs benchmarks";
+    homepage = "https://github.com/bheisler/cargo-criterion";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ humancalico ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-cross/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-cross/default.nix
new file mode 100644
index 000000000000..f7ce0283f6ff
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-cross/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, fetchpatch
+, nix-update-script
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-cross";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "rust-embedded";
+    repo = "cross";
+    rev = "v${version}";
+    sha256 = "sha256:1py5w4kf612x4qxi190ilsrx0zzwdzk9i47ppvqblska1s47qa2w";
+  };
+
+  cargoSha256 = "sha256-3xSuTBcWRGn5HH7LnvwioeRWjehaPW1HCPjN5SUUVfo=";
+
+  cargoPatches = [
+    (fetchpatch {
+      url = "https://github.com/rust-embedded/cross/commit/e86ad2e5a55218395df7eaaf91900e22b809083c.patch";
+      sha256 = "sha256:1zrcj5fm3irmlrfkgb65kp2pjkry0rg5nn9pwsk9p0i6dpapjc7k";
+    })
+  ];
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "Zero setup cross compilation and cross testing";
+    homepage = "https://github.com/rust-embedded/cross";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ otavio ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
index ba126e57a145..73e3cfd3c4ce 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.8.5";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = pname;
     rev = version;
-    sha256 = "01czsnhlvs78fpx1kpi75386657jmlrqpsj4474nxmgcs75igncx";
+    sha256 = "sha256-ZjXAZN93ij42WVYSOgvKAzFZ/cZ2RTFKT2sr44j7TVc=";
   };
 
-  cargoSha256 = "1d5vh6cifkvqxmbgc2z9259q8879fjw016z959hfivv38rragqbr";
+  cargoSha256 = "sha256-eQv9pFegHTjjjFURiD/yN/srtONAwAH3vwfrSY/LM/Q=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
index 09650e8a3868..934976f73866 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-expand";
-  version = "1.0.4";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "09jdqf1f8kl2c3k4cp8j3qqb96gclhncvfdwg2l3bmh5r10id9b3";
+    sha256 = "sha256-6FjFG4RYvmsV/W7OMxj1ZWvruwUeP9Nvsdiv8toZmTk=";
   };
 
-  cargoSha256 = "0mx01h2zv7mpyi8s1545b7hjxn9aslzpbngrq4ii9rfqznz3r8k9";
+  cargoSha256 = "sha256-1+A+n5VQS8zJULiR8IWLGo+RnFuVjg6ist8G3eCsXJM=";
 
   meta = with lib; {
     description =
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
new file mode 100644
index 000000000000..94b5000b9b62
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
@@ -0,0 +1,24 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-feature";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "Riey";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0n5kzh756ghfs3cydlcn9mfvpgwy1cjg41h0nd9dbi5cr1fp9x1n";
+  };
+
+  cargoSha256 = "0nvl5smibl81b826xcsrjx8p89lcfpj7wqdsvywnj7jd3p5ag03n";
+
+  meta = with lib; {
+    description = "Allows conveniently modify features of crate";
+    homepage = "https://github.com/Riey/cargo-feature";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ riey ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
index 569c8f88da2f..ced5d7cd583c 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-fuzz";
-  version = "0.8.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "rust-fuzz";
     repo = "cargo-fuzz";
     rev = version;
-    sha256 = "1d4bq9140bri8cd9zcxh5hhc51vr0s6jadjhwkp688w7k10rq7w8";
+    sha256 = "sha256-kBbwE4ToUud5BDDlGoey2qpp2imzO6t3FcIbV3NTFa8=";
   };
 
-  cargoSha256 = "0zxhak79f50m8nw95ny733mk4x2f7kyk6q9v4f7jr2rkcldhgrpr";
+  cargoSha256 = "sha256-zqRlB2Kck4icMKzhaeeakEnn6O7zhoKPa5ZWbGooWIg=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-limit/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-limit/default.nix
index 3b28af1097e2..3ebe5ef13046 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-limit/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-limit/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-limit";
-  version = "0.0.5";
+  version = "0.0.7";
 
   src = fetchFromGitHub {
     owner = "alopatindev";
     repo = "cargo-limit";
     rev = version;
-    sha256 = "sha256-GYdWKRgdS9gCQRu1C8ht0wC1eBTtIMg585OuAfDn/+4=";
+    sha256 = "sha256-8HsYhWYeRhCPTxVnU8hOJKLXvza8i9KvKTLL6yLo0+c=";
   };
 
-  cargoSha256 = "0381wgyb2xnsiick8invrkhcvp905rrfyikgv01w6qn9872z11s0";
+  cargoSha256 = "sha256-8uA4oFExrzDMeMV5MacbtE0Awdfx+jUUkrKd7ushOHo=";
 
   passthru = {
     updateScript = nix-update-script {
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
index 8e1c032cdafe..54eead5d2a6e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
@@ -4,11 +4,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.32.12";
+  version = "0.32.16";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-AaoLT5M1ut2Hlgw91On8AHRN/rrufbAp4I7bcCeG3cA=";
+    sha256 = "sha256-FrrQcZHy5WjNYCod2TBWVAj4clNWPLWLIR2/Kvkz4q0=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
-  cargoSha256 = "sha256-r64Y8TxYmzxuZOTncHUYm+KmKlbK+KnHCHyNups5kRw=";
+  cargoSha256 = "sha256-QEHl/Hhug0Ua/SZV0iq1jc6QGGxA1NwheEgGBZRYunI=";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix
new file mode 100644
index 000000000000..5e12c1cae1d2
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix
@@ -0,0 +1,25 @@
+{ fetchFromGitHub, lib, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-play";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "fanzeyi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "01r00akfmvpzp924yqqybd9s0pwiwxy8vklsg4m9ypzljc3nlv02";
+  };
+
+  cargoSha256 = "0fvsdyivq5991ka6avh12aqdkjx0myk61kmzlr19p2vlfpg70q07";
+
+  # some tests require internet access
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Run your rust code without setting up cargo";
+    homepage = "https://github.com/fanzeyi/cargo-play";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
index e38afac76f27..9fadea3f31cf 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.17";
+  version = "0.1.20";
 
   src = fetchFromGitHub {
     owner = "est31";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-qVmp2DTnQjvN5QWchiGa6huM30+o41zLmby45APfxgk=";
+    sha256 = "sha256-1gAkc8x9rl80xkFWR2iKYOjkHplWUPWQZDbE8U5gkOM=";
   };
 
-  cargoSha256 = "sha256-zuJbs25lyDRTQPJdI0QBzO3xrdH48+cVhLqIkP7nLbE=";
+  cargoSha256 = "sha256-APUQYqC0MYNeeuehkQvxQsjOnXBgvEMNBqfoUy2KH0U=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix
index 50cffe74848e..3cfea7274355 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix
@@ -1,5 +1,4 @@
 { lib
-, stdenv
 , rustPlatform
 , fetchFromGitHub
 , nix-update-script
@@ -9,18 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-valgrind";
-  version = "1.3.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "jfrimmel";
     repo = "cargo-valgrind";
-    # repo lacks the 1.3.0 tag
-    # https://github.com/jfrimmel/cargo-valgrind/issues/33
-    rev = "d47dd810e3971d676cde5757df8b2e05ed563e41";
-    sha256 = "163ch5bpwny1di758rpfib1ddqclxm48j0lmmv741ji3l4nqid32";
+    rev = version;
+    sha256 = "sha256-PltYUU2O/D1PrU+K8JN4+aUVLzHCeNyIsXMU6HLodXE=";
   };
 
-  cargoSha256 = "008s1y3pkn8613kp1gqf494fs93ix0nrwhrkqi5q9bim2mixgccb";
+  cargoSha256 = "sha256-zR826fFSCSsJxGKSc7ugrLwMDvsjRBjs4eotKTfhGqI=";
 
   passthru = {
     updateScript = nix-update-script {
@@ -34,6 +31,9 @@ rustPlatform.buildRustPackage rec {
     wrapProgram $out/bin/cargo-valgrind --prefix PATH : ${lib.makeBinPath [ valgrind ]}
   '';
 
+  # Disable check phase as there are failures (2 tests fail)
+  doCheck = false;
+
   meta = with lib; {
     description = ''Cargo subcommand "valgrind": runs valgrind and collects its output in a helpful manner'';
     homepage = "https://github.com/jfrimmel/cargo-valgrind";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
index 8bd4bf6fff8f..43f13b2e9955 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-watch";
-  version = "7.5.0";
+  version = "7.6.1";
 
   src = fetchFromGitHub {
     owner = "passcod";
     repo = pname;
     rev = "v${version}";
-    sha256 = "181v922nx8152ymszig1kw6y0mnix6si1zfnv6vqgr5r53pwkbc1";
+    sha256 = "sha256-vjX8xfwv/DOogji+OQCB9l5ebGBNoLW722TGpZ5Wg80=";
   };
 
-  cargoSha256 = "1abhzi1396x8lnxvakj34nysl3ybvsaf21j678wzaqwj16sd3w3d";
+  cargoSha256 = "sha256-ku+tI0DIofV0EZ413sPjbJDUSqwTxiT8NWBeURrJW1k=";
 
   buildInputs = lib.optional stdenv.isDarwin CoreServices;
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
new file mode 100644
index 000000000000..34440ce93058
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-whatfeatures";
+  version = "0.9.6";
+
+  src = fetchFromGitHub {
+    owner = "museun";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0vki37pxngg15za9c1z61dc6sqk0j59s0qhcf9hplnym4ib5kqx1";
+  };
+
+  cargoSha256 = "sha256-nNV7UXjKZNFmTqW4H0qsNuBW9XOP2V9nfotewtI9mYE";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ Security ];
+
+  meta = with lib; {
+    description = "A simple cargo plugin to get a list of features for a specific crate";
+    homepage = "https://github.com/museun/cargo-whatfeatures";
+    license = with licenses; [ mit asl20 ];
+    maintainers = with maintainers; [ ivan-babrou ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix b/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
index 508090553375..5dad37d08168 100644
--- a/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
@@ -1,23 +1,32 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, python3Packages, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-cbindgen";
-  version = "0.15.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "eqrion";
     repo = "cbindgen";
     rev = "v${version}";
-    sha256 = "19bwllrajks286wl4zc5axgh4m9qqxdnc5024c30hyk0xnjffd0c";
+    sha256 = "sha256-S3t1hv/mRn6vwyzT78DPIacqiJV3CnjGdOKsdSyYs8g=";
   };
 
-  cargoSha256 = "1lzzckzcgj496chbfd6lhwxcangv0krx8m5k2jwffnb9mfgac7hx";
+  cargoSha256 = "sha256-uaeJmGEQHVSuILlYlJOHmRWWdN6FPvrHu6CbJyb60MY=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
+  checkInputs = [
+    python3Packages.cython
+  ];
+
   checkFlags = [
+    # Disable tests that require rust unstable features
     # https://github.com/eqrion/cbindgen/issues/338
     "--skip test_expand"
+    "--skip test_bitfield"
+    "--skip lib_default_uses_debug_build"
+    "--skip lib_explicit_debug_build"
+    "--skip lib_explicit_release_build"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix b/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
index a941d43bb9d8..b5a3486da71f 100644
--- a/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
@@ -10,17 +10,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "crate2nix";
-  version = "0.8.0";
+  version = "0.9.0";
 
-  src = fetchFromGitHub
-    {
-      owner = "kolloch";
-      repo = pname;
-      rev = version;
-      sha256 = "sha256-pqg1BsEq3kGmUzt1zpQvXgdnRcIsiuIyvtUBi3VxtZ4=";
-    } + "/crate2nix";
+  src = fetchFromGitHub {
+    owner = "kolloch";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-dB8wa3CQFw8ckD420zpBGw4TnsLrHqXf+ff/WuhPsVM=";
+  };
+
+  sourceRoot = "source/crate2nix";
 
-  cargoSha256 = "sha256-dAMWrGNMleQ3lDbG46Hr4qvCyxR+QcPOUZw9r2/CxV4=";
+  cargoSha256 = "sha256-6V0ifH63/s5XLo4BCexPtvlUH0UQPHFW8YHF8OCH3ik=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/maturin/default.nix b/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
index b9c2e08ba142..28aeca4a0af1 100644
--- a/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ callPackage
+, lib
 , stdenv
 , fetchFromGitHub
 , rustPlatform
@@ -9,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "maturin";
-  version = "0.9.0";
+  version = "0.9.4";
 
   src = fetchFromGitHub {
     owner = "PyO3";
     repo = "maturin";
     rev = "v${version}";
-    hash = "sha256-X5/1zEVhhdTuyXcUwC3jVv9Gblmv8LT+ftsVo8BnnZs=";
+    hash = "sha256-9emrBajFd0eLHcsd9Uf6MLCWqZFqxmZdWPBLGIYc2kU=";
   };
 
-  cargoHash = "sha256-PBmuPIpCwC7fr/MKFaeSd/0avoEATlxoeMHisjouAeI=";
+  cargoHash = "sha256-poMMEj+zrlU+v5axJbZai2kv36stEKgaciF4zd9A6Qg=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -28,10 +29,20 @@ rustPlatform.buildRustPackage rec {
   # Requires network access, fails in sandbox.
   doCheck = false;
 
+  passthru.tests.pyo3 = callPackage ./pyo3-test {};
+
   meta = with lib; {
-    description = "Build and publish crates with pyo3 bindings as python packages";
+    description = "Build and publish Rust crates Python packages";
+    longDescription = ''
+      Build and publish Rust crates with PyO3, rust-cpython, and
+      cffi bindings as well as Rust binaries as Python packages.
+
+      This project is meant as a zero-configuration replacement for
+      setuptools-rust and Milksnake. It supports building wheels for
+      Python and can upload them to PyPI.
+    '';
     homepage = "https://github.com/PyO3/maturin";
-    license = licenses.mit;
+    license = licenses.asl20;
     maintainers = [ maintainers.danieldk ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/Cargo.lock.patch b/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/Cargo.lock.patch
new file mode 100644
index 000000000000..3aca2e4803a9
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/Cargo.lock.patch
@@ -0,0 +1,688 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 000000000..5e698d4ff
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,682 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "ahash"
++version = "0.4.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e"
++
++[[package]]
++name = "assert_approx_eq"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3c07dab4369547dbe5114677b33fbbf724971019f3818172d59a97a61c774ffd"
++
++[[package]]
++name = "autocfg"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "byteorder"
++version = "1.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "const_fn"
++version = "0.4.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6"
++
++[[package]]
++name = "crossbeam-channel"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
++dependencies = [
++ "cfg-if",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "crossbeam-deque"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
++dependencies = [
++ "cfg-if",
++ "crossbeam-epoch",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "crossbeam-epoch"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d"
++dependencies = [
++ "cfg-if",
++ "const_fn",
++ "crossbeam-utils",
++ "lazy_static",
++ "memoffset",
++ "scopeguard",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
++dependencies = [
++ "autocfg",
++ "cfg-if",
++ "lazy_static",
++]
++
++[[package]]
++name = "ctor"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e8f45d9ad417bcef4817d614a501ab55cdd96a6fdb24f49aab89a54acfd66b19"
++dependencies = [
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "either"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++
++[[package]]
++name = "getrandom"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "ghost"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a5bcf1bbeab73aa4cf2fde60a846858dc036163c7c33bec309f8d17de785479"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "glob"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++
++[[package]]
++name = "hashbrown"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
++dependencies = [
++ "ahash",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
++dependencies = [
++ "libc",
++]
++
++[[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",
++ "unindent",
++]
++
++[[package]]
++name = "instant"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "inventory"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f0f7efb804ec95e33db9ad49e4252f049e37e8b0a4652e3cd61f7999f2eff7f"
++dependencies = [
++ "ctor",
++ "ghost",
++ "inventory-impl",
++]
++
++[[package]]
++name = "inventory-impl"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "75c094e94816723ab936484666968f5b58060492e880f3c8d00489a1e244fa51"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
++
++[[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.86"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
++
++[[package]]
++name = "lock_api"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
++dependencies = [
++ "scopeguard",
++]
++
++[[package]]
++name = "memoffset"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "num-bigint"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5e9a41747ae4633fce5adffb4d2e81ffc5e89593cb19917f8fb2cc5ff76507bf"
++dependencies = [
++ "autocfg",
++ "num-integer",
++ "num-traits",
++]
++
++[[package]]
++name = "num-complex"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5"
++dependencies = [
++ "num-traits",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
++dependencies = [
++ "autocfg",
++ "num-traits",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
++dependencies = [
++ "hermit-abi",
++ "libc",
++]
++
++[[package]]
++name = "parking_lot"
++version = "0.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
++dependencies = [
++ "instant",
++ "lock_api",
++ "parking_lot_core",
++]
++
++[[package]]
++name = "parking_lot_core"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
++dependencies = [
++ "cfg-if",
++ "instant",
++ "libc",
++ "redox_syscall",
++ "smallvec",
++ "winapi",
++]
++
++[[package]]
++name = "paste"
++version = "0.1.18"
++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",
++]
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
++
++[[package]]
++name = "proc-macro-hack"
++version = "0.5.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "proptest"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12e6c80c1139113c28ee4670dc50cc42915228b51f56a9e407f0ec60f966646f"
++dependencies = [
++ "bitflags",
++ "byteorder",
++ "lazy_static",
++ "num-traits",
++ "quick-error",
++ "rand",
++ "rand_chacha",
++ "rand_xorshift",
++ "regex-syntax",
++]
++
++[[package]]
++name = "pyo3"
++version = "0.13.2"
++dependencies = [
++ "assert_approx_eq",
++ "cfg-if",
++ "ctor",
++ "hashbrown",
++ "indoc",
++ "inventory",
++ "libc",
++ "num-bigint",
++ "num-complex",
++ "parking_lot",
++ "paste",
++ "proptest",
++ "pyo3",
++ "pyo3-macros",
++ "rustversion",
++ "serde",
++ "serde_json",
++ "trybuild",
++ "unindent",
++]
++
++[[package]]
++name = "pyo3-macros"
++version = "0.13.2"
++dependencies = [
++ "pyo3-macros-backend",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "pyo3-macros-backend"
++version = "0.13.2"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[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.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
++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 = "rand_xorshift"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "rayon"
++version = "1.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
++dependencies = [
++ "autocfg",
++ "crossbeam-deque",
++ "either",
++ "rayon-core",
++]
++
++[[package]]
++name = "rayon-core"
++version = "1.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
++dependencies = [
++ "crossbeam-channel",
++ "crossbeam-deque",
++ "crossbeam-utils",
++ "lazy_static",
++ "num_cpus",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
++dependencies = [
++ "bitflags",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581"
++
++[[package]]
++name = "rustapi-module"
++version = "0.1.0"
++dependencies = [
++ "pyo3",
++]
++
++[[package]]
++name = "rustversion"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd"
++
++[[package]]
++name = "ryu"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++
++[[package]]
++name = "scopeguard"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++
++[[package]]
++name = "serde"
++version = "1.0.123"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae"
++dependencies = [
++ "serde_derive",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.123"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.62"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
++dependencies = [
++ "itoa",
++ "ryu",
++ "serde",
++]
++
++[[package]]
++name = "smallvec"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
++
++[[package]]
++name = "syn"
++version = "1.0.60"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "termcolor"
++version = "1.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
++name = "toml"
++version = "0.5.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "trybuild"
++version = "1.0.41"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "99471a206425fba51842a9186315f32d91c56eadc21ea4c21f847b59cf778f8b"
++dependencies = [
++ "glob",
++ "lazy_static",
++ "serde",
++ "serde_json",
++ "termcolor",
++ "toml",
++]
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++
++[[package]]
++name = "unindent"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7"
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "word-count"
++version = "0.1.0"
++dependencies = [
++ "pyo3",
++ "rayon",
++]
diff --git a/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/default.nix b/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/default.nix
new file mode 100644
index 000000000000..b118309b36d7
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/default.nix
@@ -0,0 +1,12 @@
+{ callPackage
+, rustPlatform
+}:
+
+callPackage ./generic.nix {
+  buildAndTestSubdir = "examples/word-count";
+
+  nativeBuildInputs = with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
+  ];
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix b/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix
new file mode 100644
index 000000000000..f82c988fc512
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix
@@ -0,0 +1,45 @@
+# Derivation prototype, used by maturin and setuptools-rust
+# passthrough tests.
+
+{ lib
+, fetchFromGitHub
+, python3Packages
+, rustPlatform
+
+, nativeBuildInputs
+
+, buildAndTestSubdir ? null
+, format ? "pyproject"
+, sourceRoot ? "source"
+}:
+
+python3Packages.buildPythonPackage rec {
+  pname = "word-count";
+  version = "0.13.2";
+
+  src = fetchFromGitHub {
+    owner = "PyO3";
+    repo = "pyo3";
+    rev = "v${version}";
+    hash = "sha256-NOMrrfo8WjlPhtGxWUOPJS/UDDdbLQRCXR++Zd6JmIA=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src sourceRoot patches;
+    name = "${pname}-${version}";
+    hash = "sha256-//TmozgWy9zrSpMKX92XdHj4fw/T1Elfgn4YhhR7ot0=";
+  };
+
+  patches = [ ./Cargo.lock.patch ];
+
+  inherit buildAndTestSubdir format nativeBuildInputs sourceRoot;
+
+  pythonImportsCheck = [ "word_count" ];
+
+  meta = with lib; {
+    description = "PyO3 word count example";
+    homepage = "https://github.com/PyO3/pyo3";
+    license = licenses.asl20;
+    maintainers = [ maintainers.danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
index 3a4bd8f81269..d8b31810c54c 100644
--- a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -1,11 +1,13 @@
-{ pkgs, callPackage }:
+{ pkgs, callPackage, CoreServices }:
 
 {
   rust-analyzer-unwrapped = callPackage ./generic.nix rec {
-    rev = "2021-02-08";
+    rev = "2021-03-22";
     version = "unstable-${rev}";
-    sha256 = "sha256-Idaaw6d0lvBUyZxpHKQ94aMtgM0zb0P8QRh+3pctX4k=";
-    cargoSha256 = "sha256-J6Hia83biutScZt/BMO4/qXYi35/Ec9MeaHeDG8Lqmc=";
+    sha256 = "sha256-Q8yr5x4+R9UCk5kw/nJgBtGVBeZTDwyuwpyNJUKSPzA=";
+    cargoSha256 = "sha256-cJ5KPNrX1H4IfHENDGyU2rgxl5TTqvoeXk7558oqwuA=";
+
+    inherit CoreServices;
   };
 
   rust-analyzer = callPackage ./wrapper.nix {} {
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix
index 10f0c6b26ad7..ddb834af6c38 100644
--- a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin, cmake
+{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices, cmake
+, libiconv
 , useMimalloc ? false
 , doCheck ? true
 
@@ -22,8 +23,10 @@ rustPlatform.buildRustPackage {
 
   nativeBuildInputs = lib.optional useMimalloc cmake;
 
-  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin
-    [ darwin.apple_sdk.frameworks.CoreServices ];
+  buildInputs = lib.optionals stdenv.isDarwin [
+    CoreServices
+    libiconv
+  ];
 
   RUST_ANALYZER_REV = rev;
 
@@ -41,6 +44,10 @@ rustPlatform.buildRustPackage {
     runHook postInstallCheck
   '';
 
+  passthru.updateScript = ./update.sh;
+
+  patches = [ ./rust_1_49.patch ];
+
   meta = with lib; {
     description = "An experimental modular compiler frontend for the Rust language";
     homepage = "https://github.com/rust-analyzer/rust-analyzer";
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/rust_1_49.patch b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/rust_1_49.patch
new file mode 100644
index 000000000000..fcde6d6337e2
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/rust_1_49.patch
@@ -0,0 +1,13 @@
+diff --git a/crates/ide_assists/src/handlers/convert_iter_for_each_to_for.rs b/crates/ide_assists/src/handlers/convert_iter_for_each_to_for.rs
+index 4e75a7b14..91f51a1a7 100644
+--- a/crates/ide_assists/src/handlers/convert_iter_for_each_to_for.rs
++++ b/crates/ide_assists/src/handlers/convert_iter_for_each_to_for.rs
+@@ -93,7 +93,7 @@ fn validate_method_call_expr(
+     let krate = module.krate();
+ 
+     let iter_trait = FamousDefs(sema, Some(krate)).core_iter_Iterator()?;
+-    it_type.impls_trait(sema.db, iter_trait, &[]).then(|| (expr, receiver))
++    if it_type.impls_trait(sema.db, iter_trait, &[]) { Some((expr, receiver)) } else { None }
+ }
+ 
+ #[cfg(test)]
diff --git a/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix b/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix
index c6f34a9e20d2..5c4f40bbd094 100644
--- a/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub, pkg-config, openssl }:
+{ stdenv, lib, rustPlatform, fetchFromGitHub, pkg-config, openssl, SystemConfiguration, CoreFoundation, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "sqlx-cli";
@@ -17,7 +17,8 @@ rustPlatform.buildRustPackage rec {
   cargoBuildFlags = [ "-p sqlx-cli" ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ];
+  buildInputs = lib.optionals stdenv.isLinux [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ SystemConfiguration CoreFoundation Security ];
 
   meta = with lib; {
     description =
diff --git a/nixpkgs/pkgs/development/tools/sauce-connect/default.nix b/nixpkgs/pkgs/development/tools/sauce-connect/default.nix
index 12082de98422..64517d865cdf 100644
--- a/nixpkgs/pkgs/development/tools/sauce-connect/default.nix
+++ b/nixpkgs/pkgs/development/tools/sauce-connect/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     }
   );
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   patchPhase = lib.optionalString stdenv.isLinux ''
     patchelf \
diff --git a/nixpkgs/pkgs/development/tools/scaff/default.nix b/nixpkgs/pkgs/development/tools/scaff/default.nix
deleted file mode 100644
index 2449769e07f3..000000000000
--- a/nixpkgs/pkgs/development/tools/scaff/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, rustPlatform, fetchFromGitLab, pkg-config, openssl }:
-
-rustPlatform.buildRustPackage rec {
-  pname = "scaff";
-  version = "0.1.2";
-
-  src = fetchFromGitLab {
-    owner = "jD91mZM2";
-    repo = pname;
-    rev = version;
-
-    sha256 = "01yf2clf156qv2a6w866a2p8rc2dl8innxnsqrj244x54s1pk27r";
-  };
-
-  cargoSha256 = "1v6580mj70d7cqbjw32slz65lg6c8ficq5mdkfbivs63hqkv4hgx";
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ];
-
-  meta = with lib; {
-    description = "Painless and powerful scaffolding of projects";
-    license = licenses.mit;
-    maintainers = with maintainers; [ jD91mZM2 ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/scalafix/default.nix b/nixpkgs/pkgs/development/tools/scalafix/default.nix
index 00fda8bfc368..c27d6e8a65f3 100644
--- a/nixpkgs/pkgs/development/tools/scalafix/default.nix
+++ b/nixpkgs/pkgs/development/tools/scalafix/default.nix
@@ -19,7 +19,8 @@ in
 stdenv.mkDerivation {
   name = "${baseName}-${version}";
 
-  buildInputs = [ jdk makeWrapper deps ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jdk deps ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/tools/scry/default.nix b/nixpkgs/pkgs/development/tools/scry/default.nix
index 7346ace2ff37..04307d02c4a1 100644
--- a/nixpkgs/pkgs/development/tools/scry/default.nix
+++ b/nixpkgs/pkgs/development/tools/scry/default.nix
@@ -1,23 +1,19 @@
-{ lib, fetchFromGitHub, crystal_0_35, coreutils, makeWrapper }:
-let
-  crystal = crystal_0_35;
+{ lib, fetchFromGitHub, crystal, coreutils, makeWrapper }:
 
-in
 crystal.buildCrystalPackage rec {
   pname = "scry";
-  version = "unstable-2020-09-02"; # to make it work with crystal 0.35
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "crystal-lang-tools";
     repo = pname;
-    # rev = "v${version}";
-    rev = "580a1879810a9f5d63d8a0d90fbdaa99d86b58da";
-    sha256 = "sha256-WjpkkHfy38wDj/ejXyyMtd5rLfTRoj/7D+SAhRROnbU=";
+    rev = "v${version}";
+    sha256 = "sha256-hqyG1aKY3M8q8lZEKzpUUKl9jS7NF+VMsma6+C0sCbg=";
   };
 
-  # we are already testing for this, so we can ignore the failures
+  # a bunch of tests fail when built in the sandbox while perfectly fine outside
   postPatch = ''
-    rm spec/scry/executable_spec.cr
+    rm spec/scry/{client,completion_provider,context,executable}_spec.cr
   '';
 
   format = "shards";
diff --git a/nixpkgs/pkgs/development/tools/scry/shards.nix b/nixpkgs/pkgs/development/tools/scry/shards.nix
index 31660ef7cd2b..df3d0848471a 100644
--- a/nixpkgs/pkgs/development/tools/scry/shards.nix
+++ b/nixpkgs/pkgs/development/tools/scry/shards.nix
@@ -1,8 +1,14 @@
 {
+  json_mapping = {
+    owner = "crystal-lang";
+    repo = "json_mapping.cr";
+    rev = "v0.1.0";
+    sha256 = "1qq5vs2085x7cwmp96rrjns0yz9kiz1lycxynfbz5psxll6b8p55";
+  };
   lsp = {
     owner = "crystal-lang-tools";
     repo = "lsp";
-    rev = "v0.1.0";
-    sha256 = "1sgsdgm2dmkp92a2lbaf2pgf80gljdlqzp9xkqvwz0rr92la6810";
+    rev = "v0.2.0";
+    sha256 = "1lnviqrywh0w05mx67mzw7d1qz328p52z4k69pcqw66gs44i7b5c";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/sd-local/default.nix b/nixpkgs/pkgs/development/tools/sd-local/default.nix
index bfe496e3cbf7..65f825dc3b2e 100644
--- a/nixpkgs/pkgs/development/tools/sd-local/default.nix
+++ b/nixpkgs/pkgs/development/tools/sd-local/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "sd-local";
-  version = "1.0.20";
+  version = "1.0.30";
 
   src = fetchFromGitHub {
     owner = "screwdriver-cd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-SKBSsS8WPsr5/42IMueLkfJCrOQIO/ODlhTp+xrmQ/4=";
+    sha256 = "sha256-Ha0E0e9CPR8dnApw0cR4A7Tzi3shYVtSeaQ+6I80qcU=";
   };
 
-  vendorSha256 = "sha256-3KNYG6RBnfFRgIoIyAe7QwAB56ZMF8bHdgt9Ghtod20=";
+  vendorSha256 = "sha256-4xuWehRrmVdS2F6r00LZLKq/oHlWqCTQ/jYUKeIJ6DI=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/development/tools/selenium/selendroid/default.nix b/nixpkgs/pkgs/development/tools/selenium/selendroid/default.nix
index c25190cab74e..b029e7711a3e 100644
--- a/nixpkgs/pkgs/development/tools/selenium/selendroid/default.nix
+++ b/nixpkgs/pkgs/development/tools/selenium/selendroid/default.nix
@@ -23,7 +23,8 @@ stdenv.mkDerivation {
 
   dontUnpack = true;
 
-  buildInputs = [ jdk makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jdk ];
 
   installPhase = ''
     mkdir -p $out/share/lib/selendroid
diff --git a/nixpkgs/pkgs/development/tools/selenium/server/default.nix b/nixpkgs/pkgs/development/tools/selenium/server/default.nix
index 10893a9d1700..c4f8653794fe 100644
--- a/nixpkgs/pkgs/development/tools/selenium/server/default.nix
+++ b/nixpkgs/pkgs/development/tools/selenium/server/default.nix
@@ -18,7 +18,8 @@ in stdenv.mkDerivation rec {
 
   dontUnpack = true;
 
-  buildInputs = [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   installPhase = ''
     mkdir -p $out/share/lib/${pname}-${version}
diff --git a/nixpkgs/pkgs/development/tools/shellharden/default.nix b/nixpkgs/pkgs/development/tools/shellharden/default.nix
new file mode 100644
index 000000000000..09c77f087d26
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/shellharden/default.nix
@@ -0,0 +1,28 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "shellharden";
+  version = "4.1.2";
+
+  src = fetchFromGitHub {
+    owner = "anordal";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1003kgnql0z158d3rzz8s3i7s7rx9hjqqvp3li8xhzrgszvkgqk4";
+  };
+
+  cargoSha256 = "1h4wp9xs9nq90ml2km9gd0afrzri6fbgskz6d15jqykm2fw72l88";
+
+  postPatch = "patchShebangs moduletests/run";
+
+  meta = with lib; {
+    description = "The corrective bash syntax highlighter";
+    longDescription = ''
+      Shellharden is a syntax highlighter and a tool to semi-automate the
+      rewriting of scripts to ShellCheck conformance, mainly focused on quoting.
+    '';
+    homepage = "https://github.com/anordal/shellharden";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/skaffold/default.nix b/nixpkgs/pkgs/development/tools/skaffold/default.nix
index fc1f5c3f3173..1599c4213a17 100644
--- a/nixpkgs/pkgs/development/tools/skaffold/default.nix
+++ b/nixpkgs/pkgs/development/tools/skaffold/default.nix
@@ -1,13 +1,21 @@
-{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "skaffold";
-  version = "1.17.2";
+  version = "1.20.0";
+
+  src = fetchFromGitHub {
+    owner = "GoogleContainerTools";
+    repo = "skaffold";
+    rev = "v${version}";
+    sha256 = "080zhksznwsyi0w1ban90vgh8y1q2703h3h4fvkwg695prd9ij66";
+  };
+
+  vendorSha256 = "1jvrk5jhjzg0dq0zg7p4hvjwda2289cmwh0ldz3269y8g3l113x8";
 
-  goPackagePath = "github.com/GoogleContainerTools/skaffold";
   subPackages = ["cmd/skaffold"];
 
-  buildFlagsArray = let t = "${goPackagePath}/pkg/skaffold"; in  ''
+  buildFlagsArray = let t = "github.com/GoogleContainerTools/skaffold/pkg/skaffold"; in  ''
     -ldflags=
       -s -w
       -X ${t}/version.version=v${version}
@@ -15,24 +23,24 @@ buildGoPackage rec {
       -X ${t}/version.buildDate=unknown
   '';
 
-  src = fetchFromGitHub {
-    owner = "GoogleContainerTools";
-    repo = "skaffold";
-    rev = "v${version}";
-    sha256 = "1sn4pmikap93kpdgcalgb3nam7zp60ck6wmynsv8dnzihrr7ycm3";
-  };
-
   nativeBuildInputs = [ installShellFiles ];
+
   postInstall = ''
-    for shell in bash zsh; do
-      $out/bin/skaffold completion $shell > skaffold.$shell
-      installShellCompletion skaffold.$shell
-    done
+    installShellCompletion --cmd skaffold \
+      --bash <($out/bin/skaffold completion bash) \
+      --zsh <($out/bin/skaffold completion zsh)
   '';
 
   meta = with lib; {
-    description = "Easy and Repeatable Kubernetes Development";
     homepage = "https://skaffold.dev/";
+    changelog = "https://github.com/GoogleContainerTools/skaffold/releases/tag/v${version}";
+    description = "Easy and Repeatable Kubernetes Development";
+    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.
+      Skaffold handles the workflow for building, pushing and deploying your application.
+      It also provides building blocks and describe customizations for a CI/CD pipeline.
+    '';
     license = licenses.asl20;
     maintainers = with maintainers; [ vdemeester ];
   };
diff --git a/nixpkgs/pkgs/development/tools/skopeo/default.nix b/nixpkgs/pkgs/development/tools/skopeo/default.nix
index 5b1d8b0794d8..489ab85a249c 100644
--- a/nixpkgs/pkgs/development/tools/skopeo/default.nix
+++ b/nixpkgs/pkgs/development/tools/skopeo/default.nix
@@ -14,13 +14,13 @@
 
 buildGoModule rec {
   pname = "skopeo";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    sha256 = "1y9pmijazbgxzriymrm7zrifmkd1x1wad9b3zjcj7zwr6c999dhg";
+    sha256 = "sha256-7FHfqDgc91BdtbvcElZDWj2jXD2LcMPo9RLnYZe3Xw8=";
   };
 
   outputs = [ "out" "man" ];
@@ -35,17 +35,22 @@ buildGoModule rec {
   ++ lib.optionals stdenv.isLinux [ lvm2 btrfs-progs ];
 
   buildPhase = ''
+    runHook preBuild
     patchShebangs .
     make bin/skopeo docs
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -Dm755 bin/skopeo -t $out/bin
     installManPage docs/*.[1-9]
     installShellCompletion --bash completions/bash/skopeo
   '' + lib.optionalString stdenv.isLinux ''
     wrapProgram $out/bin/skopeo \
       --prefix PATH : ${lib.makeBinPath [ fuse-overlayfs ]}
+  '' + ''
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/slimerjs/default.nix b/nixpkgs/pkgs/development/tools/slimerjs/default.nix
index 76728c5f2d80..473f24b1b55b 100644
--- a/nixpkgs/pkgs/development/tools/slimerjs/default.nix
+++ b/nixpkgs/pkgs/development/tools/slimerjs/default.nix
@@ -10,13 +10,11 @@ let
     sha256="1w4sfrv520isbs7r1rlzl5y3idrpad7znw9fc92yz40jlwz7sxs4";
     rev = version;
   };
-  buildInputs = [
-    unzip zip
-  ];
 in
 stdenv.mkDerivation {
   inherit (s) name version;
-  inherit buildInputs;
+  buildInputs = [ zip ];
+  nativeBuildInputs = [ unzip ];
   #src = fetchurl {
   #  inherit (s) url sha256;
   #};
diff --git a/nixpkgs/pkgs/development/tools/sourcetrail/default.nix b/nixpkgs/pkgs/development/tools/sourcetrail/default.nix
index 46f097e5b60a..7b06e720caab 100644
--- a/nixpkgs/pkgs/development/tools/sourcetrail/default.nix
+++ b/nixpkgs/pkgs/development/tools/sourcetrail/default.nix
@@ -1,15 +1,28 @@
-{ lib, stdenv, fetchFromGitHub, callPackage, writeScript, cmake, wrapQtAppsHook
-, boost, qt5, llvmPackages, gcc, jdk, pythonPackages, desktop-file-utils
-, shared-mime-info, imagemagick, which, coreutils, maven, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub, callPackage, writeScript, fetchpatch, cmake
+, wrapQtAppsHook, qt5, boost, llvmPackages, gcc, jdk, maven, pythonPackages
+, coreutils, which, desktop-file-utils, shared-mime-info, imagemagick, libicns
+}:
 
 let
   # TODO: remove when version incompatibility issue with python3Packages.jedi is
   # resolved
-  parso = pythonPackages.callPackage ./parso.nix {};
+  parso = pythonPackages.callPackage ./parso.nix { };
   jedi = pythonPackages.callPackage ./jedi.nix { inherit parso; };
 
-  pythonIndexer = pythonPackages.callPackage ./python.nix { inherit jedi parso; };
-  javaIndexer = callPackage ./java.nix {};
+  pythonIndexer =
+    pythonPackages.callPackage ./python.nix { inherit jedi parso; };
+  javaIndexer = callPackage ./java.nix { };
+
+  appPrefixDir = if stdenv.isDarwin then
+    "$out/Applications/Sourcetrail.app/Contents"
+  else
+    "$out/opt/sourcetrail";
+  appBinDir =
+    if stdenv.isDarwin then "${appPrefixDir}/MacOS" else "${appPrefixDir}/bin";
+  appResourceDir = if stdenv.isDarwin then
+    "${appPrefixDir}/Resources"
+  else
+    "${appPrefixDir}/share";
 
   # Upstream script:
   # https://github.com/CoatiSoftware/Sourcetrail/blob/master/script/update_java_indexer.sh
@@ -17,7 +30,7 @@ let
     #!${stdenv.shell}
 
     cd "$(dirname "$0")/.."
-    dst="$out/opt/sourcetrail/share/data/java/lib"
+    dst="${appResourceDir}/data/java/lib"
 
     mkdir -p "$dst"
     cp "${javaIndexer}/target/java-indexer-1.0.jar" "$dst/java-indexer.jar"
@@ -29,12 +42,12 @@ let
   installPythonIndexer = writeScript "download_python_indexer.sh" ''
     #!${stdenv.shell}
 
-    mkdir -p $out/opt/sourcetrail/share/data
-    ln -s "${pythonIndexer}/bin" "$out/opt/sourcetrail/share/data/python"
+    mkdir -p ${appResourceDir}/data
+    ln -s "${pythonIndexer}/bin" "${appResourceDir}/data/python"
   '';
-in
-stdenv.mkDerivation rec {
+in stdenv.mkDerivation rec {
   pname = "sourcetrail";
+  # NOTE: skip 2020.4.35 https://github.com/CoatiSoftware/Sourcetrail/pull/1136
   version = "2020.2.43";
 
   src = fetchFromGitHub {
@@ -45,7 +58,8 @@ stdenv.mkDerivation rec {
   };
 
   patches = let
-    url = commit: "https://github.com/CoatiSoftware/Sourcetrail/commit/${commit}.patch";
+    url = commit:
+      "https://github.com/CoatiSoftware/Sourcetrail/commit/${commit}.patch";
   in [
     ./disable-updates.patch
     ./disable-failing-tests.patch # FIXME: 5 test cases failing due to sandbox
@@ -69,21 +83,22 @@ stdenv.mkDerivation rec {
     desktop-file-utils
     imagemagick
     javaIndexer # the resulting jar file is copied by our install script
-  ] ++ lib.optionals doCheck testBinPath;
-  buildInputs = [
-    boost pythonIndexer shared-mime-info
-  ] ++ (with qt5; [ qtbase qtsvg ])
-    ++ (with llvmPackages; [ libclang llvm ]);
+  ] ++ lib.optional (stdenv.isDarwin) libicns
+    ++ lib.optionals doCheck testBinPath;
+  buildInputs = [ boost pythonIndexer shared-mime-info ]
+    ++ (with qt5; [ qtbase qtsvg ]) ++ (with llvmPackages; [ libclang llvm ]);
   binPath = [ gcc jdk.jre maven which ];
   testBinPath = binPath ++ [ coreutils ];
 
   cmakeFlags = [
     "-DBoost_USE_STATIC_LIBS=OFF"
     "-DBUILD_CXX_LANGUAGE_PACKAGE=ON"
-    "-DCMAKE_PREFIX_PATH=${llvmPackages.clang-unwrapped}"
     "-DBUILD_JAVA_LANGUAGE_PACKAGE=ON"
     "-DBUILD_PYTHON_LANGUAGE_PACKAGE=ON"
-  ];
+  ] ++ lib.optional stdenv.isLinux
+    "-DCMAKE_PREFIX_PATH=${llvmPackages.clang-unwrapped}"
+    ++ lib.optional stdenv.isDarwin
+    "-DClang_DIR=${llvmPackages.clang-unwrapped}";
 
   postPatch = let
     major = lib.versions.major version;
@@ -112,6 +127,8 @@ stdenv.mkDerivation rec {
     ln -sf ${installPythonIndexer} script/download_python_indexer.sh
   '';
 
+  # Directory layout for Linux:
+  #
   # Sourcetrail doesn't use the usual cmake install() commands and instead uses
   # its own bash script for packaging. Since we're not able to reuse the script,
   # we'll have to roll our own in nixpkgs.
@@ -141,7 +158,7 @@ stdenv.mkDerivation rec {
   #
   # nixpkgs
   # ├── bin/
-  # │   └── sourcetrail* (wrapper for opt/sourcetrail/bin/sourcetrail)
+  # │   └── sourcetrail@ (symlink to opt/sourcetrail/bin/sourcetrail)
   # └── opt/sourcetrail/
   #     ├── bin/
   #     │   └── sourcetrail*
@@ -151,35 +168,76 @@ stdenv.mkDerivation rec {
   # Upstream install script:
   # https://github.com/CoatiSoftware/Sourcetrail/blob/master/setup/Linux/createPackages.sh
   installPhase = ''
-    mkdir -p $out/opt/sourcetrail/bin
-    cp app/Sourcetrail $out/opt/sourcetrail/bin/sourcetrail
-    cp app/sourcetrail_indexer $out/opt/sourcetrail/bin/sourcetrail_indexer
+    runHook preInstall
+
+    mkdir -p ${appResourceDir}
+    cp -R ../bin/app/data ${appResourceDir}
+    cp -R ../bin/app/user/projects ${appResourceDir}/data/fallback
+    rm -r ${appResourceDir}/data/install ${appResourceDir}/data/*_template.xml
+
+    mkdir -p "${appBinDir}"
+    cp app/Sourcetrail ${appBinDir}/sourcetrail
+    cp app/sourcetrail_indexer ${appBinDir}/sourcetrail_indexer
+    wrapQtApp ${appBinDir}/sourcetrail \
+      --prefix PATH : ${lib.makeBinPath binPath}
+
+    mkdir -p $out/bin
+  '' + lib.optionalString (stdenv.isLinux) ''
+    ln -sf ${appBinDir}/sourcetrail $out/bin/sourcetrail
 
     desktop-file-install --dir=$out/share/applications \
-      --set-key Exec --set-value $out/bin/sourcetrail \
+      --set-key Exec --set-value ${appBinDir}/sourcetrail \
       ../setup/Linux/data/sourcetrail.desktop
 
     mkdir -p $out/share/mime/packages
     cp ../setup/Linux/data/sourcetrail-mime.xml $out/share/mime/packages/
 
-    mkdir -p $out/opt/sourcetrail/share
-    cp -R ../bin/app/data $out/opt/sourcetrail/share
-    cp -R ../bin/app/user/projects $out/opt/sourcetrail/share/data/fallback
-    rm $out/opt/sourcetrail/share/data/*_template.xml
-    rm -r $out/opt/sourcetrail/share/data/install
-
     for size in 48 64 128 256 512; do
       mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps/
-      convert app/data/gui/icon/logo_1024_1024.png -resize ''${size}x''${size} \
+      convert ${appResourceDir}/data/gui/icon/logo_1024_1024.png \
+        -resize ''${size}x''${size} \
         $out/share/icons/hicolor/''${size}x''${size}/apps/sourcetrail.png
     done
+  '' + lib.optionalString (stdenv.isDarwin) ''
+    # change case (some people *might* choose a case sensitive Nix store)
+    mv ${appBinDir}/sourcetrail{,.tmp}
+    mv ${appBinDir}/{sourcetrail.tmp,Sourcetrail}
+    mv ${appBinDir}/sourcetrail_indexer ${appResourceDir}/Sourcetrail_indexer
 
-    mkdir -p $out/bin
-    makeQtWrapper $out/opt/sourcetrail/bin/sourcetrail $out/bin/sourcetrail \
-      --prefix PATH : ${lib.makeBinPath binPath}
+    ln -sf ${appBinDir}/Sourcetrail $out/bin/sourcetrail
+
+    cp app/bundle_info.plist ${appPrefixDir}/Info.plist
+
+    mkdir -p ${appResourceDir}/icon.iconset
+    for size in 16 32 128 256 512; do
+      convert ${appResourceDir}/data/gui/icon/logo_1024_1024.png \
+        -resize ''${size}x''${size} \
+        ${appResourceDir}/icon.iconset/icon_''${size}x''${size}.png
+      convert ${appResourceDir}/data/gui/icon/logo_1024_1024.png \
+        -resize $(( 2 * size ))x$(( 2 * size )) \
+        ${appResourceDir}/icon.iconset/icon_''${size}x''${size}@2x.png
+    done
+    png2icns ${appResourceDir}/icon.icns \
+      ${appResourceDir}/icon.iconset/icon_{16x16,32x32,128x128,256x256,512x512,512x512@2x}.png
+
+    mkdir -p ${appResourceDir}/project.iconset
+    for size in 16 32 64 128 256 512; do
+      convert ${appResourceDir}/data/gui/icon/project_256_256.png \
+        -resize ''${size}x''${size} \
+        ${appResourceDir}/project.iconset/icon_''${size}x''${size}.png
+      convert ${appResourceDir}/data/gui/icon/project_256_256.png \
+        -resize $(( 2 * size ))x$(( 2 * size )) \
+        ${appResourceDir}/project.iconset/icon_''${size}x''${size}@2x.png
+    done
+    png2icns ${appResourceDir}/project.icns \
+      ${appResourceDir}/project.iconset/icon_{16x16,32x32,128x128,256x256,512x512,512x512@2x}.png
+  '' + ''
+    runHook postInstall
   '';
 
   checkPhase = ''
+    runHook preCheck
+
     rm -rf ../bin/app/data/{python,java/lib}
     ln -s $out/opt/sourcetrail/share/data/python ../bin/app/data/python
     ln -s $out/opt/sourcetrail/share/data/java/lib ../bin/app/data/java/lib
@@ -194,20 +252,24 @@ stdenv.mkDerivation rec {
     popd
 
     rm ../bin/app/data/{python,java/lib}
+
+    runHook postCheck
   '';
 
   # This has to be done manually in the installPhase because the actual binary
   # lives in $out/opt/sourcetrail/bin, which isn't covered by wrapQtAppsHook
   dontWrapQtApps = true;
 
-  # FIXME: some test cases are disabled in the patch phase
-  doCheck = true;
+  # FIXME: Some test cases are disabled in the patch phase.
+  # FIXME: Tests are disabled on some platforms because of faulty detection
+  # logic for libjvm.so. Should work with manual configuration.
+  doCheck = !stdenv.isDarwin && stdenv.isx86_64;
 
   meta = with lib; {
     homepage = "https://www.sourcetrail.com";
     description = "A cross-platform source explorer for C/C++ and Java";
     platforms = platforms.all;
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ midchildan ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/sourcetrail/python.nix b/nixpkgs/pkgs/development/tools/sourcetrail/python.nix
index 8ec9c9a2297f..f9ea96463207 100644
--- a/nixpkgs/pkgs/development/tools/sourcetrail/python.nix
+++ b/nixpkgs/pkgs/development/tools/sourcetrail/python.nix
@@ -29,6 +29,10 @@ stdenv.mkDerivation rec {
     make -j $NIX_BUILD_CORES
     popd
     popd
+  '' + lib.optionalString stdenv.isDarwin ''
+    pushd SourcetrailDB/build/bindings_python
+    cp _sourcetraildb.dylib _sourcetraildb.so
+    popd
   '';
 
   checkPhase = ''
@@ -52,7 +56,7 @@ stdenv.mkDerivation rec {
 
     pushd SourcetrailDB/build/bindings_python
     cp sourcetraildb.py $out/libexec
-    cp _sourcetraildb* $out/libexec/_sourcetraildb.so
+    cp _sourcetraildb.so $out/libexec/_sourcetraildb.so
     popd
 
     wrapPythonProgramsIn "$out/libexec" "$pythonPath"
@@ -64,7 +68,5 @@ stdenv.mkDerivation rec {
     description = "Python indexer for Sourcetrail";
     homepage = "https://github.com/CoatiSoftware/SourcetrailPythonIndexer";
     license = licenses.gpl3;
-    broken = stdenv.isDarwin;
-    # https://github.com/NixOS/nixpkgs/pull/107533#issuecomment-751063675
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/spicy/default.nix b/nixpkgs/pkgs/development/tools/spicy/default.nix
new file mode 100644
index 000000000000..691a105941a9
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/spicy/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "spicy";
+  version = "unstable-2020-02-21";
+
+  goPackagePath = "github.com/trhodeos/spicy";
+
+  src = fetchFromGitHub {
+    owner = "trhodeos";
+    repo = "spicy";
+    rev = "47409fb73e0b20b323c46cc06a3858d0a252a817";
+    sha256 = "022r8klmr21vaz5qd72ndrzj7pyqpfxc3jljz7nzsa50fjf82c3a";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "A Nintendo 64 segment assembler";
+    longDescription = ''
+      An open-source version of the Nintendo64 sdk's mild.exe. Assembles
+      segments into an n64-compatible rom.
+    '';
+    homepage = "https://github.com/trhodeos/spicy";
+    license = licenses.mit;
+    maintainers = [ maintainers._414owen];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/spicy/deps.nix b/nixpkgs/pkgs/development/tools/spicy/deps.nix
new file mode 100644
index 000000000000..9532b01decb4
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/spicy/deps.nix
@@ -0,0 +1,56 @@
+[
+  {
+    goPackagePath = "github.com/alecthomas/participle";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/participle.git";
+      rev = "fed0e8fbb638b11091014aa838748210dc9ff576";
+      sha256 = "0yhhm42lis8ak9m6x6aai280xq0652vcq5v17pibbf74dalxyims";
+    };
+  }
+  {
+    goPackagePath = "github.com/sirupsen/logrus";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sirupsen/logrus.git";
+      rev = "f104497f2b2129ab888fd274891f3a278756bcde";
+      sha256 = "0gr2c7s3ffdaynzn1zplp79zz16qgqpnsq2z9zg79wxksq5mz5l1";
+    };
+  }
+  {
+    goPackagePath = "github.com/ogier/pflag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ogier/pflag.git";
+      rev = "73e519546fc0bce0c395610afcf6aa4e5aec88eb";
+      sha256 = "114zpgl6l47gsz0sifpq62hi2i6k0ra9hi8wx7d39giablf9i4ii";
+    };
+  }
+  {
+    goPackagePath = "github.com/trhodeos/n64rom";
+    fetch = {
+      type = "git";
+      url = "https://github.com/trhodeos/n64rom.git";
+      rev = "504dba7b4d4675bd3396c052d64016c5725c2f5e";
+      sha256 = "01hybm8nxh1lym0wc9sxrms3wyqhhs0dm1a2nwz6xc60lkjcp8kb";
+    };
+  }
+  {
+    goPackagePath = "github.com/trhodeos/ecoff";
+    fetch = {
+      type = "git";
+      url = "https://github.com/trhodeos/ecoff.git";
+      rev = "e54570a0fac23c0fa7f605681345611f345ce0f6";
+      sha256 = "0pc0yj7hy43m00br0q0f1y5a3bc3a134imcyy2jvzim45g6g12kj";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/sys";
+      rev = "9a76102bfb4322425a1228caa377974426e82c84";
+      sha256 = "07qn19yla2w604p3dc8h1c75xj2pxc4fajvg0mf0d4c72d5qiss4";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/development/tools/sqlint/Gemfile.lock b/nixpkgs/pkgs/development/tools/sqlint/Gemfile.lock
index a57d1811b19e..94587de9ac32 100644
--- a/nixpkgs/pkgs/development/tools/sqlint/Gemfile.lock
+++ b/nixpkgs/pkgs/development/tools/sqlint/Gemfile.lock
@@ -1,9 +1,11 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    pg_query (1.2.0)
-    sqlint (0.1.10)
-      pg_query (~> 1)
+    google-protobuf (3.15.6)
+    pg_query (2.0.2)
+      google-protobuf (~> 3.15.5)
+    sqlint (0.2.0)
+      pg_query (~> 2)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/development/tools/sqlint/default.nix b/nixpkgs/pkgs/development/tools/sqlint/default.nix
index f9c535cc2baf..960792d648b3 100644
--- a/nixpkgs/pkgs/development/tools/sqlint/default.nix
+++ b/nixpkgs/pkgs/development/tools/sqlint/default.nix
@@ -1,35 +1,18 @@
-{ lib, bundlerApp, fetchurl, bundlerUpdateScript }:
+{ lib, bundlerApp, bundlerUpdateScript }:
 
-let
-  LIB_PG_QUERY_TAG = "10-1.0.1";
-  libpgQuerySrc = fetchurl {
-    name = "libpg_query.tar.gz";
-    url = "https://codeload.github.com/lfittl/libpg_query/tar.gz/${LIB_PG_QUERY_TAG}";
-    sha256 = "0m5jv134hgw2vcfkqlnw80fr3wmrdvgrvk1ndcx9s44bzi5nsp47";
-  };
-in bundlerApp {
+bundlerApp {
   pname = "sqlint";
   gemdir = ./.;
 
   exes = [ "sqlint" ];
 
-  gemConfig = {
-    pg_query = attrs: {
-      dontBuild = false;
-      postPatch = ''
-        substituteInPlace ext/pg_query/extconf.rb \
-          --replace "#{workdir}/libpg_query.tar.gz" "${libpgQuerySrc}"
-      '';
-    };
-  };
-
   passthru.updateScript = bundlerUpdateScript "sqlint";
 
   meta = with lib; {
     description = "Simple SQL linter";
     homepage    = "https://github.com/purcell/sqlint";
     license     = licenses.mit;
-    maintainers = with maintainers; [ ariutta nicknovitski ];
-    platforms   = with platforms; [ "x86_64-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ ariutta nicknovitski purcell ];
+    platforms   = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/sqlint/gemset.nix b/nixpkgs/pkgs/development/tools/sqlint/gemset.nix
index aeffdccffa13..674fe75dc187 100644
--- a/nixpkgs/pkgs/development/tools/sqlint/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/sqlint/gemset.nix
@@ -1,13 +1,24 @@
 {
+  google-protobuf = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ak5yqqhr04b4x0axzvpw1xzwmxmfcw0gf4r1ijixv15kidhsj3z";
+      type = "gem";
+    };
+    version = "3.15.6";
+  };
   pg_query = {
+    dependencies = ["google-protobuf"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0p9s6znavm6v5dwk1hxg9a8h2lrrwh9l0rlk0sy8cx4sq2mq82m1";
+      sha256 = "0bvn0swyzzhl9x8hlgaz7m7s1jqmpdi2c4klarix0hiyapy2il9y";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "2.0.2";
   };
   sqlint = {
     dependencies = ["pg_query"];
@@ -15,9 +26,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ds7qsaqi745fda8nliy15is36l1bkfbfkr43q6smpy103xbk44c";
+      sha256 = "1ylicsc9x4vpj6ff3hmrm6iz1xswrwwgn1m7ri8nx86ij30w9hkk";
       type = "gem";
     };
-    version = "0.1.10";
+    version = "0.2.0";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/sslmate/default.nix b/nixpkgs/pkgs/development/tools/sslmate/default.nix
index cdf2242bdbaa..ef04725e562f 100644
--- a/nixpkgs/pkgs/development/tools/sslmate/default.nix
+++ b/nixpkgs/pkgs/development/tools/sslmate/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "PREFIX=$(out)" ];
 
-  buildInputs = [ perlPackages.perl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perlPackages.perl ];
 
   postInstall = ''
     wrapProgram $out/bin/sslmate --prefix PERL5LIB : \
diff --git a/nixpkgs/pkgs/development/tools/stagit/default.nix b/nixpkgs/pkgs/development/tools/stagit/default.nix
index f74698bb11ea..85d64890180e 100644
--- a/nixpkgs/pkgs/development/tools/stagit/default.nix
+++ b/nixpkgs/pkgs/development/tools/stagit/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "stagit";
-  version = "0.9.4";
+  version = "0.9.5";
 
   src = fetchgit {
     url = "git://git.codemadness.org/stagit";
     rev = version;
-    sha256 = "1n0f2pf4gmqnkx4kfn2c79zx2vk4xkg03h7wvdigijkkbhs7a3pm";
+    sha256 = "1wlx5k0v464fr1ifjv04v7ccwb559s54xpsbxdda4whyx1v0fbq4";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://git.codemadness.org/stagit/file/README.html";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ jb55 ];
+    maintainers = with maintainers; [ jb55 sikmir ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/sumneko-lua-language-server/default.nix b/nixpkgs/pkgs/development/tools/sumneko-lua-language-server/default.nix
index d63493ba7a1e..f962447feb73 100644
--- a/nixpkgs/pkgs/development/tools/sumneko-lua-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/sumneko-lua-language-server/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sumneko-lua-language-server";
-  version = "1.11.2";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "sumneko";
     repo = "lua-language-server";
     rev = version;
-    sha256 = "1cnzwfqmzlzi6797l37arhhx2l6wsvs3jjgxdxwdbgq3rfz1ncr8";
+    sha256 = "1fqhvmz7a4qgz3zq6qgpcjhhhm2j4wpx0385n3zcphd9h9s3a9xa";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/tools/tabnine/default.nix b/nixpkgs/pkgs/development/tools/tabnine/default.nix
index f18be619f267..49265d22f8dd 100644
--- a/nixpkgs/pkgs/development/tools/tabnine/default.nix
+++ b/nixpkgs/pkgs/development/tools/tabnine/default.nix
@@ -1,20 +1,23 @@
 { stdenv, lib, fetchurl, unzip }:
 
 let
-  version = "3.2.63";
+  version = "3.3.101";
   src =
     if stdenv.hostPlatform.system == "x86_64-darwin" then
-      fetchurl {
-        url = "https://update.tabnine.com/bundles/${version}/x86_64-apple-darwin/TabNine.zip";
-        sha256 = "0y0wb3jdr2qk4k21c11w8c9a5fl0h2rm1wm7m8hqdywy4lz9ppgy";
-      }
+      fetchurl
+        {
+          url = "https://update.tabnine.com/bundles/${version}/x86_64-apple-darwin/TabNine.zip";
+          sha256 = "KrFDQSs7hMCioeqPKTNODe3RKnwNV8XafdYDUaxou/Y=";
+        }
     else if stdenv.hostPlatform.system == "x86_64-linux" then
-      fetchurl {
-        url = "https://update.tabnine.com/bundles/${version}/x86_64-unknown-linux-musl/TabNine.zip";
-        sha256 = "0zzk2w5azk5f0svjxlj2774x01xdflb767xxvbglj4223dgyx2x5";
-      }
+      fetchurl
+        {
+          url = "https://update.tabnine.com/bundles/${version}/x86_64-unknown-linux-musl/TabNine.zip";
+          sha256 = "vbeuZf/phOj83xTha+AzpKIvvrjwMar7q2teAmr5ESQ=";
+        }
     else throw "Not supported on ${stdenv.hostPlatform.system}";
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "tabnine";
 
   inherit version src;
diff --git a/nixpkgs/pkgs/development/tools/the-way/default.nix b/nixpkgs/pkgs/development/tools/the-way/default.nix
index e8f52fa83345..6d7fbef2f19b 100644
--- a/nixpkgs/pkgs/development/tools/the-way/default.nix
+++ b/nixpkgs/pkgs/development/tools/the-way/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-jTZso61Lyt6jprBxBAhvchgOsgM9y1qBleTxUx1jCnE=";
   checkFlagsArray = lib.optionals stdenv.isDarwin [ "--skip=copy" ];
-  cargoParallelTestThreads = false;
+  dontUseCargoParallelTests = true;
 
   postInstall = ''
     $out/bin/the-way config default tmp.toml
diff --git a/nixpkgs/pkgs/development/tools/thrust/default.nix b/nixpkgs/pkgs/development/tools/thrust/default.nix
index 44dfa1a4ba11..fcb1edf153ac 100644
--- a/nixpkgs/pkgs/development/tools/thrust/default.nix
+++ b/nixpkgs/pkgs/development/tools/thrust/default.nix
@@ -22,7 +22,8 @@ in stdenv.mkDerivation rec {
     sha256 = "07rrnlj0gk500pvar4b1wdqm05p4n9yjwn911x93bd2qwc8r5ymc";
   };
 
-  buildInputs = [ thrustEnv makeWrapper unzip ];
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ thrustEnv ];
 
   phases = [ "installPhase" "fixupPhase" ];
 
diff --git a/nixpkgs/pkgs/development/tools/tracy/default.nix b/nixpkgs/pkgs/development/tools/tracy/default.nix
index 23d7f29dff1c..724e74098dec 100644
--- a/nixpkgs/pkgs/development/tools/tracy/default.nix
+++ b/nixpkgs/pkgs/development/tools/tracy/default.nix
@@ -1,14 +1,16 @@
 { stdenv, lib, darwin, fetchFromGitHub, tbb, gtk3, glfw, pkg-config, freetype, Carbon, AppKit, capstone }:
 
-stdenv.mkDerivation rec {
+let
+  disableLTO = stdenv.cc.isClang && stdenv.isDarwin;  # workaround issue #19098
+in stdenv.mkDerivation rec {
   pname = "tracy";
-  version = "0.7.5";
+  version = "0.7.7";
 
   src = fetchFromGitHub {
     owner = "wolfpld";
     repo = "tracy";
     rev = "v${version}";
-    sha256 = "0qfb30k6a8vi8vn65vv927wd9nynwwvc9crbmi7a55kp20hzg06r";
+    sha256 = "sha256-jp+Geqk39ZPoe2KzUJJ0w5hvCnyUlHGwVKn73lJJt94=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -19,7 +21,10 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = [ ]
     ++ lib.optional stdenv.isLinux "-ltbb"
-    ++ lib.optional stdenv.cc.isClang "-faligned-allocation";
+    ++ lib.optional stdenv.cc.isClang "-faligned-allocation"
+    ++ lib.optional disableLTO "-fno-lto";
+
+  NIX_CFLAGS_LINK = lib.optional disableLTO "-fno-lto";
 
   buildPhase = ''
     make -j $NIX_BUILD_CORES -C profiler/build/unix release
@@ -35,7 +40,7 @@ stdenv.mkDerivation rec {
     install -D ./update/build/unix/update-release $out/bin/update
   '';
 
-  fixupPhase = lib.optionalString stdenv.isDarwin ''
+  postFixup = lib.optionalString stdenv.isDarwin ''
     install_name_tool -change libcapstone.4.dylib ${capstone}/lib/libcapstone.4.dylib $out/bin/Tracy
   '';
 
diff --git a/nixpkgs/pkgs/development/tools/trunk/default.nix b/nixpkgs/pkgs/development/tools/trunk/default.nix
new file mode 100644
index 000000000000..d31c030edac7
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/trunk/default.nix
@@ -0,0 +1,25 @@
+{ rustPlatform, fetchFromGitHub, pkg-config, openssl, lib }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "trunk";
+  version = "0.10.0";
+
+  src = fetchFromGitHub {
+    owner = "thedodd";
+    repo = "trunk";
+    rev = "v${version}";
+    sha256 = "W6d05MKquG1QFkvofqWk94+6j5q8yuAjNgZFG3Z3kNo=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ];
+
+  cargoSha256 = "Qv7knTmNYtw0tbyWhFIV7tYkQiwFxcNPAeNiGCyeV8s=";
+
+  meta = with lib; {
+    homepage = "https://github.com/thedodd/trunk";
+    description = "Build, bundle & ship your Rust WASM application to the web";
+    maintainers = with maintainers; [ freezeboy ];
+    license = with licenses; [ asl20 ];
+  };
+}
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
new file mode 100644
index 000000000000..6109101b7ba9
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch
@@ -0,0 +1,342 @@
+From dc7156d8951242231cfd9142b3d5628815dc6589 Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Wed, 31 Mar 2021 14:30:01 +0200
+Subject: [PATCH] Revert "Merge pull request #12225 from
+ chrisroberts/resolution-isolation"
+
+This reverts commit 8a69d0c4dae035a4b1aa789bc4ec3db69c210df2, reversing
+changes made to 5dd0a8c8acc36b654c13a5102e4327eedf1858f2.
+
+-----
+
+Rationale: NixOS-specific patch. The changes in here break our current
+implementation of declarative plugins (only `vagrant-libvirt` atm).
+---
+ bin/vagrant                       | 28 +--------------
+ lib/vagrant.rb                    |  2 +-
+ lib/vagrant/bundler.rb            | 17 +++------
+ lib/vagrant/errors.rb             | 12 -------
+ lib/vagrant/plugin/manager.rb     | 22 ++----------
+ templates/locales/en.yml          | 23 ++----------
+ test/unit/bin/vagrant_test.rb     |  1 -
+ test/unit/vagrant/bundler_test.rb | 58 ++++++++++++++-----------------
+ 8 files changed, 39 insertions(+), 124 deletions(-)
+
+diff --git a/bin/vagrant b/bin/vagrant
+index c019f30ff..ba7e40076 100755
+--- a/bin/vagrant
++++ b/bin/vagrant
+@@ -23,9 +23,9 @@ if idx = argv.index("--")
+   argv = argv.slice(0, idx)
+ end
+ 
+-require_relative "../lib/vagrant/version"
+ # Fast path the version of Vagrant
+ if argv.include?("-v") || argv.include?("--version")
++  require_relative "../lib/vagrant/version"
+   puts "Vagrant #{Vagrant::VERSION}"
+   exit 0
+ end
+@@ -82,29 +82,6 @@ end
+ $stdout.sync = true
+ $stderr.sync = true
+ 
+-# Before we start activate all our dependencies
+-# so we can provide correct resolutions later
+-builtin_specs = []
+-
+-vagrant_spec = Gem::Specification.find_all_by_name("vagrant").detect do |spec|
+-  spec.version == Gem::Version.new(Vagrant::VERSION)
+-end
+-
+-dep_activator = proc do |spec|
+-  spec.runtime_dependencies.each do |dep|
+-    gem(dep.name, *dep.requirement.as_list)
+-    dep_spec = Gem::Specification.find_all_by_name(dep.name).detect(&:activated?)
+-    if dep_spec
+-      builtin_specs << dep_spec
+-      dep_activator.call(dep_spec)
+-    end
+-  end
+-end
+-
+-if vagrant_spec
+-  dep_activator.call(vagrant_spec)
+-end
+-
+ env = nil
+ begin
+   require 'log4r'
+@@ -114,9 +91,6 @@ begin
+   require 'vagrant/util/platform'
+   require 'vagrant/util/experimental'
+ 
+-  # Set our list of builtin specs
+-  Vagrant::Bundler.instance.builtin_specs = builtin_specs
+-
+   # Schedule the cleanup of things
+   at_exit(&Vagrant::Bundler.instance.method(:deinit))
+ 
+diff --git a/lib/vagrant.rb b/lib/vagrant.rb
+index f3dcba0bc..d696bdff8 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
+diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
+index eb2caabb0..d75f54362 100644
+--- a/lib/vagrant/bundler.rb
++++ b/lib/vagrant/bundler.rb
+@@ -189,11 +189,8 @@ module Vagrant
+     attr_reader :env_plugin_gem_path
+     # @return [Pathname] Vagrant environment data path
+     attr_reader :environment_data_path
+-    # @return [Array<Gem::Specification>, nil] List of builtin specs
+-    attr_accessor :builtin_specs
+ 
+     def initialize
+-      @builtin_specs = []
+       @plugin_gem_path = Vagrant.user_data_path.join("gems", RUBY_VERSION).freeze
+       @logger = Log4r::Logger.new("vagrant::bundler")
+     end
+@@ -290,6 +287,7 @@ module Vagrant
+         # Never allow dependencies to be remotely satisfied during init
+         request_set.remote = false
+ 
++        repair_result = nil
+         begin
+           @logger.debug("resolving solution from available specification set")
+           # Resolve the request set to ensure proper activation order
+@@ -652,6 +650,7 @@ module Vagrant
+         self_spec.activate
+         @logger.info("Activated vagrant specification version - #{self_spec.version}")
+       end
++      self_spec.runtime_dependencies.each { |d| gem d.name, *d.requirement.as_list }
+       # discover all the gems we have available
+       list = {}
+       if Gem.respond_to?(:default_specifications_dir)
+@@ -660,16 +659,10 @@ module Vagrant
+         spec_dir = Gem::Specification.default_specifications_dir
+       end
+       directories = [spec_dir]
+-      if Vagrant.in_bundler?
+-        Gem::Specification.find_all{true}.each do |spec|
+-          list[spec.full_name] = spec
+-        end
+-      else
+-        builtin_specs.each do |spec|
+-          list[spec.full_name] = spec
+-        end
++      Gem::Specification.find_all{true}.each do |spec|
++        list[spec.full_name] = spec
+       end
+-      if Vagrant.in_installer?
++      if(!Object.const_defined?(:Bundler))
+         directories += Gem::Specification.dirs.find_all do |path|
+           !path.start_with?(Gem.user_dir)
+         end
+diff --git a/lib/vagrant/errors.rb b/lib/vagrant/errors.rb
+index 5cb861c06..782615bc4 100644
+--- a/lib/vagrant/errors.rb
++++ b/lib/vagrant/errors.rb
+@@ -636,18 +636,6 @@ module Vagrant
+       error_key(:provisioner_winrm_unsupported)
+     end
+ 
+-    class PluginNeedsDeveloperTools < VagrantError
+-      error_key(:plugin_needs_developer_tools)
+-    end
+-
+-    class PluginMissingLibrary < VagrantError
+-      error_key(:plugin_missing_library)
+-    end
+-
+-    class PluginMissingRubyDev < VagrantError
+-      error_key(:plugin_missing_ruby_dev)
+-    end
+-
+     class PluginGemNotFound < VagrantError
+       error_key(:plugin_gem_not_found)
+     end
+diff --git a/lib/vagrant/plugin/manager.rb b/lib/vagrant/plugin/manager.rb
+index b73f07f9c..9058e68b3 100644
+--- a/lib/vagrant/plugin/manager.rb
++++ b/lib/vagrant/plugin/manager.rb
+@@ -179,26 +179,8 @@ module Vagrant
+         result
+       rescue Gem::GemNotFoundException
+         raise Errors::PluginGemNotFound, name: name
+-      rescue Gem::Exception => err
+-        @logger.warn("Failed to install plugin: #{err}")
+-        @logger.debug("#{err.class}: #{err}\n#{err.backtrace.join("\n")}")
+-        # Try and determine a cause for the failure
+-        case err.message
+-        when /install development tools first/
+-          raise Errors::PluginNeedsDeveloperTools
+-        when /library not found in default locations/
+-          lib = err.message.match(/(\w+) library not found in default locations/)
+-          if lib.nil?
+-            raise Errors::BundlerError, message: err.message
+-          end
+-          raise Errors::PluginMissingLibrary,
+-            library: lib.captures.first,
+-            name: name
+-        when /find header files for ruby/
+-          raise Errors::PluginMissingRubyDev
+-        else
+-          raise Errors::BundlerError, message: err.message
+-        end
++      rescue Gem::Exception => e
++        raise Errors::BundlerError, message: e.to_s
+       end
+ 
+       # Uninstalls the plugin with the given name.
+diff --git a/templates/locales/en.yml b/templates/locales/en.yml
+index edae9b477..782904f49 100644
+--- a/templates/locales/en.yml
++++ b/templates/locales/en.yml
+@@ -794,9 +794,9 @@ en:
+         matching this provider. For example, if you're using VirtualBox,
+         the clone environment must also be using VirtualBox.
+       cloud_init_not_found: |-
+-        cloud-init is not found. Please ensure that cloud-init is installed and
++        cloud-init is not found. Please ensure that cloud-init is installed and 
+         available on path for guest '%{guest_name}'.
+-      cloud_init_command_failed: |-
++      cloud_init_command_failed: |- 
+         cloud init command '%{cmd}' failed on guest '%{guest_name}'.
+       command_deprecated: |-
+         The command 'vagrant %{name}' has been deprecated and is no longer functional
+@@ -1238,23 +1238,6 @@ en:
+         following command:
+ 
+           vagrant plugin install --local
+-      plugin_needs_developer_tools: |-
+-        Vagrant failed to install the requested plugin because development tools
+-        are required for installation but are not currently installed on this
+-        machine. Please install development tools and then try this command
+-        again.
+-      plugin_missing_library: |-
+-        Vagrant failed to install the requested plugin because it depends
+-        on a library which is not currently installed on this system. The
+-        following library is required by the '%{name}' plugin:
+-
+-          %{library}
+-
+-        Please install the library and then run the command again.
+-      plugin_missing_ruby_dev: |-
+-        Vagrant failed to install the requested plugin because the Ruby header
+-        files could not be found. Install the ruby development package for your
+-        system and then run this command again.
+       powershell_not_found: |-
+         Failed to locate the powershell executable on the available PATH. Please
+         ensure powershell is installed and available on the local PATH, then
+@@ -3015,7 +2998,7 @@ en:
+     pushes:
+       file:
+         no_destination: "File destination must be specified."
+-
++    
+     autocomplete:
+       installed: |-
+         Autocomplete installed at paths:
+diff --git a/test/unit/bin/vagrant_test.rb b/test/unit/bin/vagrant_test.rb
+index dbbd52112..bc11309aa 100644
+--- a/test/unit/bin/vagrant_test.rb
++++ b/test/unit/bin/vagrant_test.rb
+@@ -30,7 +30,6 @@ describe "vagrant bin" do
+     allow(Kernel).to receive(:exit)
+     allow(Vagrant::Environment).to receive(:new).and_return(env)
+     allow(Vagrant).to receive(:in_installer?).and_return(true)
+-    allow(self).to receive(:require_relative)
+   end
+ 
+   after { expect(run_vagrant).to eq(exit_code) }
+diff --git a/test/unit/vagrant/bundler_test.rb b/test/unit/vagrant/bundler_test.rb
+index 69f425c66..00cedc021 100644
+--- a/test/unit/vagrant/bundler_test.rb
++++ b/test/unit/vagrant/bundler_test.rb
+@@ -778,46 +778,42 @@ describe Vagrant::Bundler do
+       end
+     end
+ 
+-    context "when bundler is not defined" do
+-      before { expect(Vagrant).to receive(:in_bundler?).and_return(false) }
++    context "when run time dependencies are defined" do
++      let(:vagrant_dep_specs) { [double("spec", name: "vagrant-dep", requirement: double("spec-req", as_list: []))] }
+ 
+-      context "when running inside the installer" do
+-        before { expect(Vagrant).to receive(:in_installer?).and_return(true) }
++      it "should call #gem to activate the dependencies" do
++        expect(subject).to receive(:gem).with("vagrant-dep", any_args)
++        subject.send(:vagrant_internal_specs)
++      end
++    end
+ 
+-        it "should load gem specification directories" do
+-          expect(Gem::Specification).to receive(:dirs).and_return(spec_dirs)
+-          subject.send(:vagrant_internal_specs)
+-        end
++    context "when bundler is not defined" do
++      before { expect(Object).to receive(:const_defined?).with(:Bundler).and_return(false) }
+ 
+-        context "when checking paths" do
+-          let(:spec_dirs) { [double("spec-dir", start_with?: in_user_dir)] }
+-          let(:in_user_dir) { true }
+-          let(:user_dir) { double("user-dir") }
++      it "should load gem specification directories" do
++        expect(Gem::Specification).to receive(:dirs).and_return(spec_dirs)
++        subject.send(:vagrant_internal_specs)
++      end
+ 
+-          before { allow(Gem).to receive(:user_dir).and_return(user_dir) }
++      context "when checking paths" do
++        let(:spec_dirs) { [double("spec-dir", start_with?: in_user_dir)] }
++        let(:in_user_dir) { true }
++        let(:user_dir) { double("user-dir") }
+ 
+-          it "should check if path is within local user directory" do
+-            expect(spec_dirs.first).to receive(:start_with?).with(user_dir).and_return(false)
+-            subject.send(:vagrant_internal_specs)
+-          end
+-
+-          context "when path is not within user directory" do
+-            let(:in_user_dir) { false }
++        before { allow(Gem).to receive(:user_dir).and_return(user_dir) }
+ 
+-            it "should use path when loading specs" do
+-              expect(Gem::Specification).to receive(:each_spec) { |arg| expect(arg).to include(spec_dirs.first) }
+-              subject.send(:vagrant_internal_specs)
+-            end
+-          end
++        it "should check if path is within local user directory" do
++          expect(spec_dirs.first).to receive(:start_with?).with(user_dir).and_return(false)
++          subject.send(:vagrant_internal_specs)
+         end
+-      end
+ 
+-      context "when running outside the installer" do
+-        before { expect(Vagrant).to receive(:in_installer?).and_return(false) }
++        context "when path is not within user directory" do
++          let(:in_user_dir) { false }
+ 
+-        it "should not load gem specification directories" do
+-          expect(Gem::Specification).not_to receive(:dirs)
+-          subject.send(:vagrant_internal_specs)
++          it "should use path when loading specs" do
++            expect(Gem::Specification).to receive(:each_spec) { |arg| expect(arg).to include(spec_dirs.first) }
++            subject.send(:vagrant_internal_specs)
++          end
+         end
+       end
+     end
+-- 
+2.29.3
+
diff --git a/nixpkgs/pkgs/development/tools/vagrant/default.nix b/nixpkgs/pkgs/development/tools/vagrant/default.nix
index 701b973ad4f7..1ea172ae137b 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/default.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive
-, libguestfs, qemu, writeText, withLibvirt ? stdenv.isLinux, fetchpatch
+, libguestfs, qemu, writeText, withLibvirt ? stdenv.isLinux
 }:
 
 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.2.14";
+  version = "2.2.15";
   url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
-  sha256 = "sha256-vsb7RFjT9l4N6BzwIvVLcRtA4n/c8jk20B6RUMkyhJs=";
+  sha256 = "sha256-mMnHJtXLfkZ5O0UF89kHsqBnPg9uQ5l8IYoL5TMMyD8=";
 
   deps = bundlerEnv rec {
     name = "${pname}-${version}";
@@ -54,6 +54,7 @@ in buildRubyGem rec {
     ./unofficial-installation-nowarn.patch
     ./use-system-bundler-version.patch
     ./0004-Support-system-installed-plugins.patch
+    ./0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/tools/vagrant/gemset.nix b/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
index e617e1a58729..895554904927 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
@@ -4,10 +4,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02vssr285m7kpsr47jdmzbar1h1d0mnkmyrpr1zg828isfmwii35";
+      sha256 = "0ndamfaivnkhc6hy0yqyk2gkwr6f3bz6216lh74hsiiyk3axz445";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   builder = {
     groups = ["default"];
@@ -34,10 +34,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   ed25519 = {
     groups = ["default"];
@@ -64,20 +64,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hi89v53pm2abfv9j8lgqdd7hgkr7fr0gwrczr940iwbb3xv7rrs";
+      sha256 = "1759s0rz6qgsw86dds1z4jzb3fvizqsk11j5q6z7lc5n404w6i23";
       type = "gem";
     };
-    version = "0.78.0";
+    version = "0.79.0";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   gssapi = {
     dependencies = ["ffi"];
@@ -85,10 +85,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13l6pqbfrx3vv7cw26nq9p8rnyp9br31gaz85q32wx6hnzfcriwh";
+      sha256 = "1qdfhj12aq8v0y961v4xv96a1y2z80h3xhvzrs9vsfgf884g6765";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.1";
   };
   gyoku = {
     dependencies = ["builder"];
@@ -127,10 +127,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.10";
   };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify"];
@@ -138,10 +138,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0028p1fss6pvw4mlpjqdmxfzsm8ww79irsadbibrr7f23qfn8ykr";
+      sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj";
       type = "gem";
     };
-    version = "3.3.1";
+    version = "3.5.1";
   };
   little-plugger = {
     groups = ["default"];
@@ -190,10 +190,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
+      sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
       type = "gem";
     };
-    version = "3.2020.1104";
+    version = "3.2021.0225";
   };
   multi_json = {
     groups = ["default"];
@@ -232,10 +232,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hlyp6z3ffwdcnzq9khrkz6waxggn4hnzsczbp3mz61lhx4qiri3";
+      sha256 = "0jp3jgcn8cij407xx9ldb5h9c6jv13jc4cf6kk2idclz43ww21c9";
       type = "gem";
     };
-    version = "6.2.0.rc1";
+    version = "6.1.0";
   };
   nori = {
     groups = ["default"];
@@ -279,25 +279,15 @@
     };
     version = "0.2.5";
   };
-  ruby_dep = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0v0qznxz999lx4vs76mr590r90i0cm5m76wwvgis7sq4y21l308l";
-      type = "gem";
-    };
-    version = "1.3.1";
-  };
   rubyntlm = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+      sha256 = "0b8hczk8hysv53ncsqzx4q6kma5gy5lqc7s5yx8h64x3vdb18cjv";
       type = "gem";
     };
-    version = "0.6.2";
+    version = "0.6.3";
   };
   rubyzip = {
     groups = ["default"];
@@ -315,10 +305,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b3b9ybd6mskfz2vffb6li2y6njdc9xqhik9c4mvzq9dchxpbxlj";
+      sha256 = "1rwfw014fbvaxshf8abi87srfaiirb7cr93s61qm177jm8q86h57";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.0.4";
   };
   wdm = {
     groups = ["default"];
@@ -336,10 +326,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k9i86v805gpya3pyqahjykljbdwpjsrk7hsdqrl05j2rpidvk4v";
+      sha256 = "0nxf6a47d1xf1nvi7rbfbzjyyjhz0iakrnrsr2hj6y24a381sd8i";
       type = "gem";
     };
-    version = "2.3.5";
+    version = "2.3.6";
   };
   winrm-elevated = {
     dependencies = ["erubi" "winrm" "winrm-fs"];
diff --git a/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix b/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix
index f50f4438f50d..2d59b4c2cf8c 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix
@@ -14,10 +14,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hi89v53pm2abfv9j8lgqdd7hgkr7fr0gwrczr940iwbb3xv7rrs";
+      sha256 = "1759s0rz6qgsw86dds1z4jzb3fvizqsk11j5q6z7lc5n404w6i23";
       type = "gem";
     };
-    version = "0.78.0";
+    version = "0.79.0";
   };
   fog-core = {
     dependencies = ["builder" "excon" "formatador" "mime-types"];
@@ -47,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0by97bx0szdz47kdy0fqvx6j2kzy5yhrwbvvsfbh27dm9c0vfwgr";
+      sha256 = "1s62ihwxlwgp84xw32wg6hwcx4422v20c7g7azd0xslb91y1ln1r";
       type = "gem";
     };
-    version = "0.7.0";
+    version = "0.8.0";
   };
   fog-xml = {
     dependencies = ["fog-core" "nokogiri"];
@@ -78,10 +78,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -99,20 +99,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
+      sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
       type = "gem";
     };
-    version = "3.2020.1104";
+    version = "3.2021.0225";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   multi_json = {
     groups = ["default"];
@@ -125,15 +125,25 @@
     version = "1.15.0";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.2";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
   };
   ruby-libvirt = {
     groups = ["default"];
@@ -151,9 +161,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b1m8fg1rin6ps15ykqhwz6qm7isadb83r22b733dkw2gvvj91jv";
+      sha256 = "07j30w23syvzrhznad9dkh1ks4lzxzi7ak2966b7i7wr4kz8x1hp";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.4.0";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/vendir/default.nix b/nixpkgs/pkgs/development/tools/vendir/default.nix
new file mode 100644
index 000000000000..bca29d1abebf
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/vendir/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "vendir";
+  version = "0.18.0";
+
+  src = fetchFromGitHub {
+    owner = "vmware-tanzu";
+    repo = "carvel-vendir";
+    rev = "v${version}";
+    sha256 = "sha256-+VZ1EWrEvTbWeO/o7EkkF2Xcro7UpCrnsOJjOCtfNzY=";
+  };
+
+  vendorSha256 = null;
+
+  subPackages = [ "cmd/vendir" ];
+
+  meta = with lib; {
+    description = "CLI tool to vendor portions of git repos, github releases, helm charts, docker image contents, etc. declaratively";
+    homepage = "https://carvel.dev/vendir/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ russell ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/vogl/default.nix b/nixpkgs/pkgs/development/tools/vogl/default.nix
index 315a896929dc..2e9e8936ddb1 100644
--- a/nixpkgs/pkgs/development/tools/vogl/default.nix
+++ b/nixpkgs/pkgs/development/tools/vogl/default.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, fetchFromGitHub
 , cmake, git, pkg-config, wget, zip
 , qtbase, qtx11extras
-, libdwarf, libjpeg_turbo, libunwind, lzma, tinyxml, libX11
+, libdwarf, libjpeg_turbo, libunwind, xz, tinyxml, libX11
 , SDL2, SDL2_gfx, SDL2_image, SDL2_ttf
 , freeglut, libGLU
 , fetchpatch
@@ -31,7 +31,7 @@ mkDerivation {
   buildInputs = [
     git wget zip
     qtbase qtx11extras
-    libdwarf libjpeg_turbo libunwind lzma tinyxml libX11
+    libdwarf libjpeg_turbo libunwind xz tinyxml libX11
     SDL2 SDL2_gfx SDL2_image SDL2_ttf
     freeglut libGLU
   ];
diff --git a/nixpkgs/pkgs/development/tools/vulkan-validation-layers/default.nix b/nixpkgs/pkgs/development/tools/vulkan-validation-layers/default.nix
index fdf66004deb3..adec30a14c5a 100644
--- a/nixpkgs/pkgs/development/tools/vulkan-validation-layers/default.nix
+++ b/nixpkgs/pkgs/development/tools/vulkan-validation-layers/default.nix
@@ -86,11 +86,6 @@ stdenv.mkDerivation rec {
     "-DBUILD_LAYER_SUPPORT_FILES=ON"
   ];
 
-  # Help vulkan-loader find the validation layers
-  setupHook = writeText "setup-hook" ''
-    export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS
-  '';
-
   # Include absolute paths to layer libraries in their associated
   # layer definition json files.
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/vultr-cli/default.nix b/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
index 22ac7a8f2c10..70c634fc9bd1 100644
--- a/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "2.2.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zt12LUKcsu/t2wNunIQhrNOqOABjyfL0MkSEPOQswFM=";
+    sha256 = "sha256-TNytKq2LqLWxNrqesOJbNQUTirvPkxLMqJmtbmFq+0Y=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/development/tools/vultr/default.nix b/nixpkgs/pkgs/development/tools/vultr/default.nix
index 1f101882b5b9..2f1d6618d3fe 100644
--- a/nixpkgs/pkgs/development/tools/vultr/default.nix
+++ b/nixpkgs/pkgs/development/tools/vultr/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "vultr";
-  version = "2.0.2";
+  version = "2.0.3";
   goPackagePath = "github.com/JamesClonk/vultr";
 
   src = fetchFromGitHub {
     owner = "JamesClonk";
     repo = "vultr";
     rev = "v${version}";
-    sha256 = "0br8nxi9syraarp4hzav9a3p4zxhyi45cq5dsclzxi3fga2l6mqg";
+    sha256 = "sha256-kyB6gUbc32NsSDqDy1zVT4HXn0pWxHdBOEBOSaI0Xro=";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/tools/wabt/default.nix b/nixpkgs/pkgs/development/tools/wabt/default.nix
index 27b11870a899..aaffa4f82130 100644
--- a/nixpkgs/pkgs/development/tools/wabt/default.nix
+++ b/nixpkgs/pkgs/development/tools/wabt/default.nix
@@ -1,20 +1,19 @@
-{ lib, stdenv, fetchpatch, fetchFromGitHub, cmake, python3, substituteAll }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "wabt";
-  version = "1.0.20";
+  version = "1.0.23";
 
   src = fetchFromGitHub {
     owner = "WebAssembly";
     repo = "wabt";
     rev = version;
-    sha256 = "1wwyljppxz03slvgx809g87mdrglpimz4xaici71a9mqwjpgj0l8";
+    sha256 = "1drjngcqkaahzk92jysrzv86fhj02c074xffd7kn3k6q8fxc0976";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake ];
   cmakeFlags = [ "-DBUILD_TESTS=OFF" "-DCMAKE_PROJECT_VERSION=${version}" ];
-  buildInputs = [ python3 ];
 
   meta = with lib; {
     description = "The WebAssembly Binary Toolkit";
diff --git a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
index 289bb631c120..165aa6ac856c 100644
--- a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
+++ b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
@@ -15,9 +15,9 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.15"
+version = "0.7.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
+checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
 dependencies = [
  "memchr",
 ]
@@ -33,9 +33,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.35"
+version = "1.0.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c0df63cb2955042487fad3aefd2c6e3ae7389ac5dc1beb28921de0b69f779d4"
+checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b"
 
 [[package]]
 name = "arrayref"
@@ -45,9 +45,9 @@ checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
 
 [[package]]
 name = "arrayvec"
-version = "0.5.2"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
 
 [[package]]
 name = "ascii"
@@ -57,9 +57,9 @@ checksum = "97be891acc47ca214468e09425d02cef3af2c94d0d82081cd02061f996802f14"
 
 [[package]]
 name = "askama"
-version = "0.10.5"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d298738b6e47e1034e560e5afe63aa488fea34e25ec11b855a76f0d7b8e73134"
+checksum = "70a6e7ebd44d0047fd48206c83c5cd3214acc7b9d87f001da170145c47ef7d12"
 dependencies = [
  "askama_derive",
  "askama_escape",
@@ -68,12 +68,13 @@ dependencies = [
 
 [[package]]
 name = "askama_derive"
-version = "0.10.5"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2925c4c290382f9d2fa3d1c1b6a63fa1427099721ecca4749b154cc9c25522"
+checksum = "e1d7169690c4f56343dcd821ab834972a22570a2662a19a84fd7775d5e1c3881"
 dependencies = [
  "askama_shared",
  "proc-macro2",
+ "quote",
  "syn",
 ]
 
@@ -85,14 +86,14 @@ checksum = "90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb"
 
 [[package]]
 name = "askama_shared"
-version = "0.11.1"
+version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2582b77e0f3c506ec4838a25fa8a5f97b9bed72bb6d3d272ea1c031d8bd373bc"
+checksum = "62fc272363345c8cdc030e4c259d9d028237f8b057dc9bb327772a257bde6bb5"
 dependencies = [
  "askama_escape",
  "humansize",
- "nom 6.0.1",
- "num-traits 0.2.14",
+ "nom",
+ "num-traits 0.2.12",
  "percent-encoding 2.1.0",
  "proc-macro2",
  "quote",
@@ -103,9 +104,9 @@ dependencies = [
 
 [[package]]
 name = "assert_cmd"
-version = "1.0.2"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dc1679af9a1ab4bea16f228b05d18f8363f8327b1fa8db00d2760cfafc6b61e"
+checksum = "c88b9ca26f9c16ec830350d309397e74ee9abdfd8eb1f71cb6ecc71a3fc818da"
 dependencies = [
  "doc-comment",
  "predicates",
@@ -133,9 +134,9 @@ checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
 
 [[package]]
 name = "autocfg"
-version = "1.0.1"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
 
 [[package]]
 name = "base64"
@@ -149,9 +150,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.13.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
 
 [[package]]
 name = "bitflags"
@@ -166,22 +167,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 
 [[package]]
-name = "bitvec"
-version = "0.19.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7ba35e9565969edb811639dbebfe34edc0368e472c5018474c8eb2543397f81"
-dependencies = [
- "funty",
- "radium",
- "tap",
- "wyz",
-]
-
-[[package]]
 name = "blake2b_simd"
-version = "0.5.11"
+version = "0.5.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
+checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -221,9 +210,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.66"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
+checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
 
 [[package]]
 name = "cfg-if"
@@ -246,15 +235,13 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.19"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
+checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
 dependencies = [
- "libc",
  "num-integer",
- "num-traits 0.2.14",
+ "num-traits 0.2.12",
  "time",
- "winapi",
 ]
 
 [[package]]
@@ -265,9 +252,9 @@ checksum = "498d20a7aaf62625b9bf26e637cf7736417cde1d0c99f1d04d1170229a85cf87"
 
 [[package]]
 name = "clap"
-version = "2.33.3"
+version = "2.33.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
+checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
 dependencies = [
  "ansi_term",
  "atty",
@@ -298,9 +285,9 @@ dependencies = [
 
 [[package]]
 name = "color_quant"
-version = "1.1.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd"
 
 [[package]]
 name = "console_error_panic_hook"
@@ -321,68 +308,64 @@ dependencies = [
 ]
 
 [[package]]
-name = "const_fn"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826"
-
-[[package]]
 name = "constant_time_eq"
 version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
-dependencies = [
- "cfg-if 1.0.0",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "crossbeam-deque"
-version = "0.8.0"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
+checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
 dependencies = [
- "cfg-if 1.0.0",
  "crossbeam-epoch",
  "crossbeam-utils",
+ "maybe-uninit",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d"
+checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
 dependencies = [
- "cfg-if 1.0.0",
- "const_fn",
+ "autocfg 1.0.0",
+ "cfg-if 0.1.10",
  "crossbeam-utils",
  "lazy_static",
+ "maybe-uninit",
  "memoffset",
  "scopeguard",
 ]
 
 [[package]]
+name = "crossbeam-queue"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+dependencies = [
+ "cfg-if 0.1.10",
+ "crossbeam-utils",
+ "maybe-uninit",
+]
+
+[[package]]
 name = "crossbeam-utils"
-version = "0.8.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
 dependencies = [
- "autocfg 1.0.1",
- "cfg-if 1.0.0",
+ "autocfg 1.0.0",
+ "cfg-if 0.1.10",
  "lazy_static",
 ]
 
 [[package]]
 name = "curl"
-version = "0.4.34"
+version = "0.4.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e268162af1a5fe89917ae25ba3b0a77c8da752bdc58e7dbb4f15b91fbd33756e"
+checksum = "9447ad28eee2a5cfb031c329d46bef77487244fff6a724b378885b8691a35f78"
 dependencies = [
  "curl-sys",
  "libc",
@@ -395,9 +378,9 @@ dependencies = [
 
 [[package]]
 name = "curl-sys"
-version = "0.4.39+curl-7.74.0"
+version = "0.4.33+curl-7.71.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07a8ce861e7b68a0b394e814d7ee9f1b2750ff8bd10372c6ad3bacc10e86f874"
+checksum = "3e9818ea018327f79c811612f29b9834d2abddbe7db81460a2d5c7e12946b337"
 dependencies = [
  "cc",
  "libc",
@@ -476,9 +459,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.6.1"
+version = "1.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
 
 [[package]]
 name = "enum_primitive"
@@ -491,9 +474,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26ecb66b4bdca6c1409b40fb255eefc2bd4f6d135dab3c3124f80ffa2a9661e"
+checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f"
 dependencies = [
  "atty",
  "humantime",
@@ -516,11 +499,11 @@ dependencies = [
 
 [[package]]
 name = "filetime"
-version = "0.2.13"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c122a393ea57648015bf06fbd3d372378992e86b9ff5a7a497b076a28c79efe"
+checksum = "e500da2fab70bdc43f8f0e0b350a227f31c72311c56aba48f01d5cd62bb0345b"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if 0.1.10",
  "libc",
  "redox_syscall",
  "winapi",
@@ -532,7 +515,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4"
 dependencies = [
- "num-traits 0.2.14",
+ "num-traits 0.2.12",
 ]
 
 [[package]]
@@ -557,16 +540,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
 
 [[package]]
-name = "funty"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8"
-
-[[package]]
 name = "futures"
-version = "0.3.8"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0"
+checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -579,9 +556,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.8"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64"
+checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -598,9 +575,9 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.8"
+version = "0.3.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748"
+checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94"
 
 [[package]]
 name = "futures-core-preview"
@@ -610,9 +587,9 @@ checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.8"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65"
+checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -621,15 +598,26 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.8"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb"
+checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
+
+[[package]]
+name = "futures-lite"
+version = "1.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb"
+dependencies = [
+ "futures-core",
+ "memchr",
+ "pin-project-lite",
+]
 
 [[package]]
 name = "futures-macro"
-version = "0.3.8"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556"
+checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
 dependencies = [
  "proc-macro-hack",
  "proc-macro2",
@@ -639,24 +627,24 @@ dependencies = [
 
 [[package]]
 name = "futures-sink"
-version = "0.3.8"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d"
+checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
 
 [[package]]
 name = "futures-task"
-version = "0.3.8"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d"
+checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
 dependencies = [
  "once_cell",
 ]
 
 [[package]]
 name = "futures-util"
-version = "0.3.8"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2"
+checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -674,13 +662,13 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.1.15"
+version = "0.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
 dependencies = [
  "cfg-if 0.1.10",
  "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
+ "wasi",
 ]
 
 [[package]]
@@ -724,9 +712,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.17"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
+checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
 dependencies = [
  "libc",
 ]
@@ -817,7 +805,7 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.46"
+version = "0.3.50"
 dependencies = [
  "wasm-bindgen",
  "wasm-bindgen-futures",
@@ -845,29 +833,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
 
 [[package]]
-name = "lexical-core"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616"
-dependencies = [
- "arrayvec",
- "bitflags 1.2.1",
- "cfg-if 0.1.10",
- "ryu",
- "static_assertions",
-]
-
-[[package]]
 name = "libc"
-version = "0.2.81"
+version = "0.2.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
+checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10"
 
 [[package]]
 name = "libz-sys"
-version = "1.1.2"
+version = "1.0.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
+checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
 dependencies = [
  "cc",
  "libc",
@@ -906,18 +881,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
 
 [[package]]
+name = "maybe-uninit"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+
+[[package]]
 name = "memchr"
-version = "2.3.4"
+version = "2.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
 
 [[package]]
 name = "memoffset"
-version = "0.6.1"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87"
+checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.0.0",
 ]
 
 [[package]]
@@ -977,18 +958,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "nom"
-version = "6.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88034cfd6b4a0d54dd14f4a507eceee36c0b70e5a02236c4e4df571102be17f0"
-dependencies = [
- "bitvec",
- "lexical-core",
- "memchr",
- "version_check 0.9.2",
-]
-
-[[package]]
 name = "normalize-line-endings"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -996,23 +965,23 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
 
 [[package]]
 name = "num-integer"
-version = "0.1.44"
+version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
 dependencies = [
- "autocfg 1.0.1",
- "num-traits 0.2.14",
+ "autocfg 1.0.0",
+ "num-traits 0.2.12",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.42"
+version = "0.1.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
+checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.0.0",
  "num-integer",
- "num-traits 0.2.14",
+ "num-traits 0.2.12",
 ]
 
 [[package]]
@@ -1022,7 +991,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
 dependencies = [
  "num-integer",
- "num-traits 0.2.14",
+ "num-traits 0.2.12",
 ]
 
 [[package]]
@@ -1031,16 +1000,16 @@ version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
 dependencies = [
- "num-traits 0.2.14",
+ "num-traits 0.2.12",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.14"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.0.0",
 ]
 
 [[package]]
@@ -1055,18 +1024,18 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.5.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
+checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
 
 [[package]]
 name = "openssl"
-version = "0.10.31"
+version = "0.10.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d008f51b1acffa0d3450a68606e6a51c123012edaacb0f4e1426bd978869187"
+checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
 dependencies = [
  "bitflags 1.2.1",
- "cfg-if 1.0.0",
+ "cfg-if 0.1.10",
  "foreign-types",
  "lazy_static",
  "libc",
@@ -1081,20 +1050,20 @@ checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
 
 [[package]]
 name = "openssl-src"
-version = "111.13.0+1.1.1i"
+version = "111.10.2+1.1.1g"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "045e4dc48af57aad93d665885789b43222ae26f4886494da12d1ed58d309dcb6"
+checksum = "a287fdb22e32b5b60624d4a5a7a02dbe82777f730ec0dbc42a0554326fef5a70"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.59"
+version = "0.9.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de52d8eabd217311538a39bba130d7dea1f1e118010fee7a033d966845e7d5fe"
+checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.0.0",
  "cc",
  "libc",
  "openssl-src",
@@ -1164,18 +1133,18 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.0.2"
+version = "0.4.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7"
+checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.0.2"
+version = "0.4.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f"
+checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1183,6 +1152,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "pin-project-lite"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
+
+[[package]]
 name = "pin-utils"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1190,9 +1165,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.19"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
+checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
 
 [[package]]
 name = "png"
@@ -1208,9 +1183,9 @@ dependencies = [
 
 [[package]]
 name = "ppv-lite86"
-version = "0.2.10"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
 
 [[package]]
 name = "predicates"
@@ -1243,9 +1218,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-error"
-version = "1.0.4"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
 dependencies = [
  "proc-macro-error-attr",
  "proc-macro2",
@@ -1256,20 +1231,22 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-error-attr"
-version = "1.0.4"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
 dependencies = [
  "proc-macro2",
  "quote",
+ "syn",
+ "syn-mid",
  "version_check 0.9.2",
 ]
 
 [[package]]
 name = "proc-macro-hack"
-version = "0.5.19"
+version = "0.5.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
 
 [[package]]
 name = "proc-macro-nested"
@@ -1302,12 +1279,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "radium"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8"
-
-[[package]]
 name = "rand"
 version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1482,11 +1453,11 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.5.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
+checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.0.0",
  "crossbeam-deque",
  "either",
  "rayon-core",
@@ -1494,12 +1465,12 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.9.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
+checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
+ "crossbeam-queue",
  "crossbeam-utils",
  "lazy_static",
  "num_cpus",
@@ -1547,9 +1518,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
 
 [[package]]
 name = "redox_users"
-version = "0.3.5"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
+checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
 dependencies = [
  "getrandom",
  "redox_syscall",
@@ -1558,9 +1529,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.4.2"
+version = "1.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
+checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1570,9 +1541,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.21"
+version = "0.6.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
+checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
 
 [[package]]
 name = "remove_dir_all"
@@ -1616,11 +1587,11 @@ dependencies = [
 
 [[package]]
 name = "rust-argon2"
-version = "0.8.3"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
+checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
 dependencies = [
- "base64 0.13.0",
+ "base64 0.11.0",
  "blake2b_simd",
  "constant_time_eq",
  "crossbeam-utils",
@@ -1635,9 +1606,9 @@ dependencies = [
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.18"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
 
 [[package]]
 name = "ryu"
@@ -1691,18 +1662,18 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
 name = "serde"
-version = "1.0.118"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800"
+checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.118"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df"
+checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1711,9 +1682,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.60"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779"
+checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
 dependencies = [
  "itoa",
  "ryu",
@@ -1740,11 +1711,11 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
 
 [[package]]
 name = "socket2"
-version = "0.3.17"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c29947abdee2a218277abeca306f25789c938e500ea5a9d4b12a5a504466902"
+checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if 0.1.10",
  "libc",
  "redox_syscall",
  "winapi",
@@ -1757,12 +1728,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
 
 [[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.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1776,9 +1741,9 @@ checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
 
 [[package]]
 name = "structopt"
-version = "0.3.21"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c"
+checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
 dependencies = [
  "clap",
  "lazy_static",
@@ -1787,9 +1752,9 @@ dependencies = [
 
 [[package]]
 name = "structopt-derive"
-version = "0.4.14"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90"
+checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
 dependencies = [
  "heck",
  "proc-macro-error",
@@ -1800,9 +1765,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "1.0.54"
+version = "1.0.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2af957a63d6bd42255c359c93d9bfdb97076bd3b820897ce55ffbfbf107f44"
+checksum = "6498a9efc342871f91cc2d0d694c674368b4ceb40f62b65a7a08c3792935e702"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1810,10 +1775,15 @@ dependencies = [
 ]
 
 [[package]]
-name = "tap"
-version = "1.0.0"
+name = "syn-mid"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e"
+checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
 
 [[package]]
 name = "tempdir"
@@ -1852,9 +1822,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.1.2"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
+checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
 dependencies = [
  "winapi-util",
 ]
@@ -1888,12 +1858,11 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.1.44"
+version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
 dependencies = [
  "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
  "winapi",
 ]
 
@@ -1912,18 +1881,9 @@ dependencies = [
 
 [[package]]
 name = "tinyvec"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.0"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
 
 [[package]]
 name = "todomvc"
@@ -1938,9 +1898,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.5.7"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75cf45bb0bef80604d001caaec0d09da99611b3c0fd39d3080468875cdb65645"
+checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
 dependencies = [
  "serde",
 ]
@@ -1953,9 +1913,9 @@ checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
 
 [[package]]
 name = "trybuild"
-version = "1.0.37"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18ccca2bc5e97a2688cba15c573d5179cdff976fc597b95472c2e0f443492b98"
+checksum = "7a4d94e6adf00b96b1ab94fcfcd8c3cf916733b39adf90c8f72693629887b9b8"
 dependencies = [
  "glob",
  "lazy_static",
@@ -2003,18 +1963,18 @@ dependencies = [
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.16"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"
+checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.7.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
 
 [[package]]
 name = "unicode-width"
@@ -2041,9 +2001,9 @@ dependencies = [
 
 [[package]]
 name = "vcpkg"
-version = "0.2.11"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
+checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
 
 [[package]]
 name = "vec_map"
@@ -2106,14 +2066,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 
 [[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
 name = "wasm-bindgen"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -2129,7 +2083,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "bumpalo",
  "lazy_static",
@@ -2150,7 +2104,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-cli"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "anyhow",
  "assert_cmd",
@@ -2178,7 +2132,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-cli-support"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "anyhow",
  "base64 0.9.3",
@@ -2200,22 +2154,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-externref-xform"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "anyhow",
  "rayon",
  "walrus",
  "wasmprinter",
- "wast 21.0.0",
+ "wast",
  "wat",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.19"
+version = "0.4.23"
 dependencies = [
  "cfg-if 1.0.0",
  "futures-channel-preview",
+ "futures-core",
+ "futures-lite",
  "js-sys",
  "wasm-bindgen",
  "wasm-bindgen-test",
@@ -2224,7 +2180,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "quote",
  "trybuild",
@@ -2235,7 +2191,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2246,13 +2202,13 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-multi-value-xform"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "anyhow",
  "rayon",
  "walrus",
  "wasmprinter",
- "wast 21.0.0",
+ "wast",
  "wat",
 ]
 
@@ -2267,11 +2223,11 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.69"
+version = "0.2.73"
 
 [[package]]
 name = "wasm-bindgen-test"
-version = "0.3.19"
+version = "0.3.23"
 dependencies = [
  "console_error_panic_hook",
  "js-sys",
@@ -2297,7 +2253,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-test-macro"
-version = "0.3.19"
+version = "0.3.23"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2305,7 +2261,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-threads-xform"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "anyhow",
  "walrus",
@@ -2314,7 +2270,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-wasm-conventions"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "anyhow",
  "walrus",
@@ -2322,7 +2278,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-wasm-interpreter"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "anyhow",
  "log 0.4.11",
@@ -2334,7 +2290,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-webidl"
-version = "0.2.69"
+version = "0.2.73"
 dependencies = [
  "anyhow",
  "env_logger",
@@ -2383,18 +2339,18 @@ checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9"
 
 [[package]]
 name = "wasmparser"
-version = "0.71.0"
+version = "0.60.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89a30c99437829ede826802bfcf28500cf58df00e66cb9114df98813bc145ff1"
+checksum = "c2d5790a08f11f3d6b5767f6c49152df74b215e3dc5a38147713c4f6a05aac7f"
 
 [[package]]
 name = "wasmprinter"
-version = "0.2.18"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0515db67c610037f3c53ec36976edfd1eb01bac6b1226914b17ce609480e729f"
+checksum = "ecc836dba85dd00df43d71b22063bcb367d324aa1be0d046077cc7fca4c43876"
 dependencies = [
  "anyhow",
- "wasmparser 0.71.0",
+ "wasmparser 0.60.2",
 ]
 
 [[package]]
@@ -2407,26 +2363,17 @@ dependencies = [
 ]
 
 [[package]]
-name = "wast"
-version = "30.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b79907b22f740634810e882d8d1d9d0f9563095a8ab94e786e370242bff5cd2"
-dependencies = [
- "leb128",
-]
-
-[[package]]
 name = "wat"
-version = "1.0.31"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8279a02835bf12e61ed2b3c3cbc6ecf9918762fd97e036917c11a09ec20ca44"
+checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c"
 dependencies = [
- "wast 30.0.0",
+ "wast",
 ]
 
 [[package]]
 name = "web-sys"
-version = "0.3.46"
+version = "0.3.50"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2496,11 +2443,11 @@ dependencies = [
 
 [[package]]
 name = "weedle"
-version = "0.11.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
+checksum = "610950904727748ca09682e857f0d6d6437f0ca862f32f9229edba8cec8b2635"
 dependencies = [
- "nom 5.1.2",
+ "nom",
 ]
 
 [[package]]
@@ -2570,7 +2517,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33358e95c77d660f1c7c07f4a93c2bd89768965e844e3c50730bb4b42658df5f"
 dependencies = [
  "anyhow",
- "wast 21.0.0",
+ "wast",
  "wit-writer",
 ]
 
@@ -2625,9 +2572,3 @@ dependencies = [
  "wasm-bindgen",
  "web-sys",
 ]
-
-[[package]]
-name = "wyz"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
diff --git a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
index 0024c43e05df..e566d4cb1c97 100644
--- a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
@@ -4,7 +4,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-bindgen-cli";
-  version = "0.2.69";
+  version = "0.2.73";
 
   src =
     let
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
         owner = "rustwasm";
         repo = "wasm-bindgen";
         rev = version;
-        sha256 = "1psylk3hlx0ahwib3ph8qdk0jwlp8qzc6dv61002rj7ns28vs4mx";
+        sha256 = "sha256-JrfS9Z/ZqhoZXJxrxMSLpl2NiktTUkjW6q3xN9AU2zw=";
       };
     in runCommand "source" { } ''
       cp -R ${tarball} $out
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security curl ];
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "1wrfly7c3an1mjqm7v13mlvx57hwlcxfjijkimicck04q6qdhbp6";
+  cargoSha256 = "sha256-2UBCcA4eBrSHrJjJdDprsysiOObg2GrC7QtveAydbhk=";
   cargoBuildFlags = [ "-p" pname ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/wasm-pack/default.nix b/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
index 94ee6d3a1bac..9c6d3ed8cb89 100644
--- a/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
+++ b/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
@@ -18,7 +18,11 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1rqyfg6ajxxyfx87ar25nf5ck9hd0p12qgv98dicniqag8l4rvsr";
   };
 
-  cargoSha256 = "0fw04hgxxqsbp1pylp32yd087r9bb8bpa05v90qdshkgp6znfl9s";
+  cargoPatches = [
+    ./update-deps.patch
+  ];
+
+  cargoSha256 = "0br7r8wz3knzgl3gjpq6z8w33my0yiaq711s1wih9jizhia02y5r";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/wasm-pack/update-deps.patch b/nixpkgs/pkgs/development/tools/wasm-pack/update-deps.patch
new file mode 100644
index 000000000000..d61067438eeb
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/wasm-pack/update-deps.patch
@@ -0,0 +1,3625 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 9737a15..229ec35 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1,2439 +1,2574 @@
+ # This file is automatically @generated by Cargo.
+ # It is not intended for manual editing.
++[[package]]
++name = "addr2line"
++version = "0.14.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
++dependencies = [
++ "gimli",
++]
++
++[[package]]
++name = "adler"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
++
+ [[package]]
+ name = "adler32"
+-version = "1.0.4"
++version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+ 
+ [[package]]
+ name = "aho-corasick"
+-version = "0.7.7"
++version = "0.7.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
+ dependencies = [
+- "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr",
+ ]
+ 
+ [[package]]
+ name = "ansi_term"
+ version = "0.11.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "arrayref"
+ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+ 
+ [[package]]
+ name = "arrayvec"
+-version = "0.5.1"
++version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+ 
+ [[package]]
+ name = "assert_cmd"
+ version = "0.11.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2dc477793bd82ec39799b6f6b3df64938532fdf2ab0d49ef817eac65856a5a1e"
+ dependencies = [
+- "escargot 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "predicates 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "predicates-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "predicates-tree 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "escargot",
++ "predicates",
++ "predicates-core",
++ "predicates-tree",
+ ]
+ 
+ [[package]]
+ name = "atty"
+ version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+ dependencies = [
+- "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi",
++ "libc",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "autocfg"
+ version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+ 
+ [[package]]
+ name = "autocfg"
+-version = "1.0.0"
++version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+ 
+ [[package]]
+ name = "backtrace"
+-version = "0.3.43"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
+-]
+-
+-[[package]]
+-name = "backtrace-sys"
+-version = "0.1.32"
++version = "0.3.56"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
+ dependencies = [
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "addr2line",
++ "cfg-if 1.0.0",
++ "libc",
++ "miniz_oxide 0.4.3",
++ "object",
++ "rustc-demangle",
+ ]
+ 
+ [[package]]
+ name = "base64"
+ version = "0.10.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+ dependencies = [
+- "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
+ ]
+ 
+ [[package]]
+ name = "base64"
+-version = "0.11.0"
++version = "0.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+ 
+ [[package]]
+ name = "binary-install"
+ version = "0.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b5bc5f8c50dd6a80d0b303ddab79f42ddcb52fd43d68107ecf622c551fd4cd4"
+ dependencies = [
+- "curl 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "is_executable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)",
+- "zip 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "curl",
++ "dirs",
++ "failure",
++ "flate2",
++ "hex",
++ "is_executable",
++ "siphasher",
++ "tar",
++ "zip",
+ ]
+ 
+ [[package]]
+ name = "bitflags"
+ version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+ 
+ [[package]]
+ name = "blake2b_simd"
+-version = "0.5.10"
++version = "0.5.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
+ dependencies = [
+- "arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayref",
++ "arrayvec",
++ "constant_time_eq",
+ ]
+ 
+ [[package]]
+ name = "byteorder"
+-version = "1.3.2"
++version = "1.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
+ 
+ [[package]]
+ name = "bytes"
+ version = "0.4.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
+ dependencies = [
+- "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "either",
++ "iovec",
+ ]
+ 
+ [[package]]
+ name = "bzip2"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b"
+ dependencies = [
+- "bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bzip2-sys",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "bzip2-sys"
+-version = "0.1.7"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+-]
+-
+-[[package]]
+-name = "c2-chacha"
+-version = "0.2.3"
++version = "0.1.10+1.0.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "17fa3d1ac1ca21c5c4e36a97f3c3eb25084576f6fc47bf0139c1123434216c6c"
+ dependencies = [
+- "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "cargo_metadata"
+ version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "700b3731fd7d357223d0000f4dbf1808401b694609035c3c411fbc0cd375c426"
+ dependencies = [
+- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver",
++ "serde",
++ "serde_derive",
++ "serde_json",
+ ]
+ 
+ [[package]]
+ name = "cc"
+-version = "1.0.50"
++version = "1.0.67"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
+ 
+ [[package]]
+ name = "cfg-if"
+ version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+ 
+ [[package]]
+-name = "chrono"
+-version = "0.4.10"
++name = "cfg-if"
++version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+-]
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+ 
+ [[package]]
+-name = "clap"
+-version = "2.33.0"
++name = "chrono"
++version = "0.4.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
+ dependencies = [
+- "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "num-integer",
++ "num-traits",
++ "time",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+-name = "clicolors-control"
+-version = "0.2.0"
++name = "clap"
++version = "2.33.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
+ ]
+ 
+ [[package]]
+ name = "clicolors-control"
+-version = "1.0.1"
++version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1f84dec9bc083ce2503908cd305af98bd363da6f54bf8d4bf0ac14ee749ad5d1"
+ dependencies = [
+- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "lazy_static 0.2.11",
++ "libc",
++ "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 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
+ ]
+ 
+ [[package]]
+ name = "console"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ecd48adf136733979b49e15bc3b4c43cc0d3c85ece7bd08e6daa414c6fcb13e6"
+ dependencies = [
+- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "clicolors-control 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty",
++ "clicolors-control",
++ "lazy_static 1.4.0",
++ "libc",
++ "parking_lot 0.11.1",
++ "regex",
++ "termios",
++ "unicode-width",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "console"
+-version = "0.9.2"
++version = "0.14.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7cc80946b3480f421c2f17ed1cb841753a371c7c5104f51d507e13f532c856aa"
+ dependencies = [
+- "clicolors-control 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "encode_unicode 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "encode_unicode",
++ "lazy_static 1.4.0",
++ "libc",
++ "regex",
++ "terminal_size",
++ "unicode-width",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "constant_time_eq"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+ 
+ [[package]]
+ name = "cookie"
+ version = "0.12.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5"
+ dependencies = [
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time",
++ "url 1.7.2",
+ ]
+ 
+ [[package]]
+ name = "cookie_store"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c"
+ dependencies = [
+- "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "publicsuffix 1.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cookie",
++ "failure",
++ "idna 0.1.5",
++ "log",
++ "publicsuffix",
++ "serde",
++ "serde_json",
++ "time",
++ "try_from",
++ "url 1.7.2",
+ ]
+ 
+ [[package]]
+ name = "core-foundation"
+-version = "0.6.4"
++version = "0.9.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62"
+ dependencies = [
+- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "core-foundation-sys",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "core-foundation-sys"
+-version = "0.6.2"
++version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
+ 
+ [[package]]
+ name = "crc32fast"
+-version = "1.2.0"
++version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-deque"
+-version = "0.7.2"
++version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+ dependencies = [
+- "crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-epoch",
++ "crossbeam-utils 0.7.2",
++ "maybe-uninit",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-epoch"
+-version = "0.8.0"
++version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.1",
++ "cfg-if 0.1.10",
++ "crossbeam-utils 0.7.2",
++ "lazy_static 1.4.0",
++ "maybe-uninit",
++ "memoffset",
++ "scopeguard 1.1.0",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-queue"
+-version = "0.1.2"
++version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+ dependencies = [
+- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "crossbeam-utils 0.7.2",
++ "maybe-uninit",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-utils"
+-version = "0.6.6"
++version = "0.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.1",
++ "cfg-if 0.1.10",
++ "lazy_static 1.4.0",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-utils"
+-version = "0.7.0"
++version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bae8f328835f8f5a6ceb6a7842a7f2d0c03692adb5c889347235d59194731fe3"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.1",
++ "cfg-if 1.0.0",
++ "lazy_static 1.4.0",
++ "loom",
+ ]
+ 
+ [[package]]
+ name = "curl"
+-version = "0.4.25"
++version = "0.4.34"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e268162af1a5fe89917ae25ba3b0a77c8da752bdc58e7dbb4f15b91fbd33756e"
+ dependencies = [
+- "curl-sys 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
+- "schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "curl-sys",
++ "libc",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "socket2",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "curl-sys"
+-version = "0.4.25"
++version = "0.4.40+curl-7.75.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ffafc1c35958318bd7fdd0582995ce4c72f4f461a8e70499ccee83a619fd562"
+ dependencies = [
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "libc",
++ "libz-sys",
++ "openssl-sys",
++ "pkg-config",
++ "vcpkg",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "dialoguer"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1ad1c29a0368928e78c551354dbff79f103a962ad820519724ef0d74f1c62fa9"
+ dependencies = [
+- "console 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "console 0.14.0",
++ "lazy_static 1.4.0",
++ "tempfile 2.2.0",
+ ]
+ 
+ [[package]]
+ name = "difference"
+ version = "2.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
+ 
+ [[package]]
+ name = "dirs"
+ version = "1.0.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
+ dependencies = [
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "redox_users",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "dtoa"
+-version = "0.4.5"
++version = "0.4.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "88d7ed2934d741c6b37e33e3832298e8850b53fd2d2bea03873375596c7cea4e"
+ 
+ [[package]]
+ name = "either"
+-version = "1.5.3"
++version = "1.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+ 
+ [[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.22"
++version = "0.8.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
+ ]
+ 
+ [[package]]
+ name = "env_logger"
+ version = "0.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
+ dependencies = [
+- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty",
++ "humantime",
++ "log",
++ "termcolor",
+ ]
+ 
+ [[package]]
+ name = "error-chain"
+-version = "0.12.1"
++version = "0.12.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
+ dependencies = [
+- "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check",
+ ]
+ 
+ [[package]]
+ name = "escargot"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ceb9adbf9874d5d028b5e4c5739d22b71988252b25c9c98fe7cf9738bee84597"
+ dependencies = [
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0",
++ "log",
++ "serde",
++ "serde_json",
+ ]
+ 
+ [[package]]
+ name = "failure"
+-version = "0.1.6"
++version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
+ dependencies = [
+- "backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace",
++ "failure_derive",
+ ]
+ 
+ [[package]]
+ name = "failure_derive"
+-version = "0.1.6"
++version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
+ dependencies = [
+- "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.24",
++ "quote 1.0.9",
++ "syn 1.0.60",
++ "synstructure",
+ ]
+ 
+ [[package]]
+ name = "filetime"
+-version = "0.2.8"
++version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
++ "libc",
++ "redox_syscall 0.2.5",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "flate2"
+-version = "1.0.13"
++version = "1.0.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2cfff41391129e0a856d6d822600b8d71179d46879e310417eb9c762eb178b42"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "crc32fast",
++ "libc",
++ "miniz_oxide 0.3.7",
+ ]
+ 
+ [[package]]
+ name = "float-cmp"
+-version = "0.5.3"
++version = "0.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4"
+ dependencies = [
+- "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "fnv"
+-version = "1.0.6"
++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 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
++dependencies = [
++ "matches",
++ "percent-encoding 2.1.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 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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.1.29"
++version = "0.1.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed"
+ 
+ [[package]]
+ name = "futures-cpupool"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "num_cpus",
++]
++
++[[package]]
++name = "generator"
++version = "0.6.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a9fed24fd1e18827652b4d55652899a1e9da8e54d91624dc3437a5bc3a9f9a9c"
++dependencies = [
++ "cc",
++ "libc",
++ "log",
++ "rustversion",
++ "winapi 0.3.9",
++]
++
++[[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.1.14"
++version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
++ "libc",
++ "wasi 0.10.2+wasi-snapshot-preview1",
+ ]
+ 
++[[package]]
++name = "gimli"
++version = "0.23.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
++
+ [[package]]
+ name = "glob"
+ version = "0.2.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
+ 
+ [[package]]
+ name = "h2"
+ version = "0.1.26"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462"
+ dependencies = [
+- "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "bytes",
++ "fnv",
++ "futures",
++ "http",
++ "indexmap",
++ "log",
++ "slab",
++ "string",
++ "tokio-io",
+ ]
+ 
++[[package]]
++name = "hashbrown"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
++
+ [[package]]
+ name = "heck"
+-version = "0.3.1"
++version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac"
+ dependencies = [
+- "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-segmentation",
+ ]
+ 
+ [[package]]
+ name = "hermit-abi"
+-version = "0.1.6"
++version = "0.1.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
+ dependencies = [
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "hex"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
+ 
+ [[package]]
+ name = "http"
+ version = "0.1.21"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "fnv",
++ "itoa",
+ ]
+ 
+ [[package]]
+ name = "http-body"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "http",
++ "tokio-buf",
+ ]
+ 
+ [[package]]
+ name = "httparse"
+-version = "1.3.4"
++version = "1.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691"
+ 
+ [[package]]
+ name = "human-panic"
+-version = "1.0.1"
++version = "1.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36"
+ dependencies = [
+- "backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace",
++ "os_type",
++ "serde",
++ "serde_derive",
++ "termcolor",
++ "toml 0.5.8",
++ "uuid 0.8.2",
+ ]
+ 
+ [[package]]
+ name = "humantime"
+ version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+ dependencies = [
+- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quick-error",
+ ]
+ 
+ [[package]]
+ name = "hyper"
+-version = "0.12.35"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "h2 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++version = "0.12.36"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c843caf6296fc1f93444735205af9ed4e109a539005abb2564ae1d6fad34c52"
++dependencies = [
++ "bytes",
++ "futures",
++ "futures-cpupool",
++ "h2",
++ "http",
++ "http-body",
++ "httparse",
++ "iovec",
++ "itoa",
++ "log",
++ "net2",
++ "rustc_version",
++ "time",
++ "tokio",
++ "tokio-buf",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-reactor",
++ "tokio-tcp",
++ "tokio-threadpool",
++ "tokio-timer",
++ "want",
+ ]
+ 
+ [[package]]
+ name = "hyper-tls"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
+- "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "hyper",
++ "native-tls",
++ "tokio-io",
+ ]
+ 
+ [[package]]
+ name = "idna"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
+ ]
+ 
+ [[package]]
+ name = "idna"
+-version = "0.2.0"
++version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
+ ]
+ 
+ [[package]]
+ name = "indexmap"
+-version = "1.3.1"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"
++dependencies = [
++ "autocfg 1.0.1",
++ "hashbrown",
++]
++
++[[package]]
++name = "instant"
++version = "0.1.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "is_executable"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "302d553b8abc8187beb7d663e34c065ac4570b273bc9511a50e940e99409c577"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "itoa"
+-version = "0.4.5"
++version = "0.4.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
+ 
+ [[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 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+ 
+ [[package]]
+ name = "lazy_static"
+ version = "0.2.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
+ 
+ [[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.66"
++version = "0.2.86"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
+ 
+ [[package]]
+ name = "libz-sys"
+-version = "1.0.25"
++version = "1.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
+ dependencies = [
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
+ ]
+ 
+ [[package]]
+ name = "lock_api"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
+ dependencies = [
+- "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "owning_ref",
++ "scopeguard 0.3.3",
+ ]
+ 
+ [[package]]
+ name = "lock_api"
+-version = "0.3.3"
++version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
+ dependencies = [
+- "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard 1.1.0",
++]
++
++[[package]]
++name = "lock_api"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
++dependencies = [
++ "scopeguard 1.1.0",
+ ]
+ 
+ [[package]]
+ name = "log"
+-version = "0.4.8"
++version = "0.4.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
++dependencies = [
++ "cfg-if 1.0.0",
++]
++
++[[package]]
++name = "loom"
++version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d44c73b4636e497b4917eb21c33539efa3816741a2d3ff26c6316f1b529481a4"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
++ "generator",
++ "scoped-tls",
+ ]
+ 
+ [[package]]
+ name = "matches"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+ 
+ [[package]]
+ name = "maybe-uninit"
+ version = "2.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+ 
+ [[package]]
+ name = "memchr"
+-version = "2.3.0"
++version = "2.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
+ 
+ [[package]]
+ name = "memoffset"
+-version = "0.5.3"
++version = "0.5.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
+ dependencies = [
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.1",
+ ]
+ 
+ [[package]]
+ name = "mime"
+ version = "0.3.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+ 
+ [[package]]
+ name = "mime_guess"
+-version = "2.0.1"
++version = "2.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
+ dependencies = [
+- "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime",
++ "unicase",
+ ]
+ 
+ [[package]]
+ name = "miniz_oxide"
+-version = "0.3.5"
++version = "0.3.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
+ dependencies = [
+- "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "adler32",
++]
++
++[[package]]
++name = "miniz_oxide"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
++dependencies = [
++ "adler",
++ "autocfg 1.0.1",
+ ]
+ 
+ [[package]]
+ name = "mio"
+-version = "0.6.21"
++version = "0.6.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "fuchsia-zircon",
++ "fuchsia-zircon-sys",
++ "iovec",
++ "kernel32-sys",
++ "libc",
++ "log",
++ "miow",
++ "net2",
++ "slab",
++ "winapi 0.2.8",
+ ]
+ 
+ [[package]]
+ name = "miow"
+-version = "0.2.1"
++version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "net2",
++ "winapi 0.2.8",
++ "ws2_32-sys",
+ ]
+ 
+ [[package]]
+ name = "native-tls"
+-version = "0.2.3"
++version = "0.2.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4"
+ dependencies = [
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl 0.10.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
+- "schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0",
++ "libc",
++ "log",
++ "openssl",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "security-framework",
++ "security-framework-sys",
++ "tempfile 3.2.0",
+ ]
+ 
+ [[package]]
+ name = "net2"
+-version = "0.2.33"
++version = "0.2.37"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "libc",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "normalize-line-endings"
+-version = "0.2.2"
++version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+ 
+ [[package]]
+ name = "num-integer"
+-version = "0.1.42"
++version = "0.1.44"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.1",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-traits"
+-version = "0.2.11"
++version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.1",
+ ]
+ 
+ [[package]]
+ name = "num_cpus"
+-version = "1.12.0"
++version = "1.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+ dependencies = [
+- "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi",
++ "libc",
+ ]
+ 
++[[package]]
++name = "object"
++version = "0.23.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
++
++[[package]]
++name = "once_cell"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4ad167a2f54e832b82dbe003a046280dceffe5227b5f79e08e363a29638cfddd"
++
+ [[package]]
+ name = "openssl"
+-version = "0.10.27"
++version = "0.10.32"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
++ "cfg-if 1.0.0",
++ "foreign-types",
++ "lazy_static 1.4.0",
++ "libc",
++ "openssl-sys",
+ ]
+ 
+ [[package]]
+ name = "openssl-probe"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+ 
+ [[package]]
+ name = "openssl-src"
+-version = "111.6.1+1.1.1d"
++version = "111.14.0+1.1.1j"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "055b569b5bd7e5462a1700f595c7c7d487691d73b5ce064176af7f9f0cbb80a9"
+ dependencies = [
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
+ ]
+ 
+ [[package]]
+ name = "openssl-sys"
+-version = "0.9.54"
++version = "0.9.60"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-src 111.6.1+1.1.1d (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.1",
++ "cc",
++ "libc",
++ "openssl-src",
++ "pkg-config",
++ "vcpkg",
+ ]
+ 
+ [[package]]
+ name = "os_type"
+ version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
+ dependencies = [
+- "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex",
+ ]
+ 
+ [[package]]
+ name = "owning_ref"
+-version = "0.4.0"
++version = "0.4.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce"
+ dependencies = [
+- "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "stable_deref_trait",
+ ]
+ 
+ [[package]]
+ name = "parking_lot"
+ version = "0.6.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5"
+ dependencies = [
+- "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lock_api 0.1.5",
++ "parking_lot_core 0.3.1",
+ ]
+ 
+ [[package]]
+ name = "parking_lot"
+ version = "0.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
+ dependencies = [
+- "lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lock_api 0.3.4",
++ "parking_lot_core 0.6.2",
++ "rustc_version",
+ ]
+ 
+ [[package]]
+ name = "parking_lot"
+-version = "0.10.0"
++version = "0.11.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
+ dependencies = [
+- "lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "instant",
++ "lock_api 0.4.2",
++ "parking_lot_core 0.8.3",
+ ]
+ 
+ [[package]]
+ name = "parking_lot_core"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c"
+ dependencies = [
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "rand 0.5.6",
++ "rustc_version",
++ "smallvec 0.6.14",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "parking_lot_core"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "cloudabi",
++ "libc",
++ "redox_syscall 0.1.57",
++ "rustc_version",
++ "smallvec 0.6.14",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "parking_lot_core"
+-version = "0.7.0"
++version = "0.8.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
++ "instant",
++ "libc",
++ "redox_syscall 0.2.5",
++ "smallvec 1.6.1",
++ "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.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+ 
+ [[package]]
+ name = "pkg-config"
+-version = "0.3.17"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-
+-[[package]]
+-name = "podio"
+-version = "0.1.6"
++version = "0.3.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
+ 
+ [[package]]
+ name = "ppv-lite86"
+-version = "0.2.6"
++version = "0.2.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+ 
+ [[package]]
+ name = "predicates"
+-version = "1.0.2"
++version = "1.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "eeb433456c1a57cc93554dea3ce40b4c19c4057e41c55d4a0f3d84ea71c325aa"
+ dependencies = [
+- "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "float-cmp 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "normalize-line-endings 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "predicates-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "difference",
++ "float-cmp",
++ "normalize-line-endings",
++ "predicates-core",
++ "regex",
+ ]
+ 
+ [[package]]
+ name = "predicates-core"
+-version = "1.0.0"
++version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451"
+ 
+ [[package]]
+ name = "predicates-tree"
+-version = "1.0.0"
++version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "15f553275e5721409451eb85e15fd9a860a6e5ab4496eb215987502b5f5391f2"
+ dependencies = [
+- "predicates-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "predicates-core",
++ "treeline",
+ ]
+ 
+ [[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.1.0",
+ ]
+ 
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.8"
++version = "1.0.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
+ dependencies = [
+- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.1",
+ ]
+ 
+ [[package]]
+ name = "publicsuffix"
+ version = "1.5.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3bbaa49075179162b49acac1c6aa45fb4dafb5f13cf6794276d77bc7fd95757b"
+ dependencies = [
+- "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "error-chain",
++ "idna 0.2.2",
++ "lazy_static 1.4.0",
++ "regex",
++ "url 2.2.1",
+ ]
+ 
+ [[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30",
+ ]
+ 
+ [[package]]
+ name = "quote"
+-version = "1.0.2"
++version = "1.0.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+ dependencies = [
+- "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.24",
+ ]
+ 
+ [[package]]
+ name = "rand"
+ version = "0.3.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
+ dependencies = [
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "rand 0.4.6",
+ ]
+ 
+ [[package]]
+ name = "rand"
+ version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+ dependencies = [
+- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.3.1",
++ "rdrand",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "rand"
+ version = "0.5.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
+ dependencies = [
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.3.1",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "rand"
+ version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7",
++ "libc",
++ "rand_chacha 0.1.1",
++ "rand_core 0.4.2",
++ "rand_hc 0.1.0",
++ "rand_isaac",
++ "rand_jitter",
++ "rand_os",
++ "rand_pcg",
++ "rand_xorshift",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "rand"
+-version = "0.7.3"
++version = "0.8.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
+ dependencies = [
+- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "rand_chacha 0.3.0",
++ "rand_core 0.6.2",
++ "rand_hc 0.3.0",
+ ]
+ 
+ [[package]]
+ name = "rand_chacha"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7",
++ "rand_core 0.3.1",
+ ]
+ 
+ [[package]]
+ name = "rand_chacha"
+-version = "0.2.1"
++version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
+ dependencies = [
+- "c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ppv-lite86",
++ "rand_core 0.6.2",
+ ]
+ 
+ [[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2",
+ ]
+ 
+ [[package]]
+ name = "rand_core"
+ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+ 
+ [[package]]
+ name = "rand_core"
+-version = "0.5.1"
++version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
+ dependencies = [
+- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom 0.2.2",
+ ]
+ 
+ [[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+ 
+ [[package]]
+ name = "rand_hc"
+-version = "0.2.0"
++version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
+ dependencies = [
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.6.2",
+ ]
+ 
+ [[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7",
++ "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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+ 
+ [[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+ 
+ [[package]]
+ name = "redox_syscall"
+-version = "0.1.56"
++version = "0.1.57"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
++
++[[package]]
++name = "redox_syscall"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
++dependencies = [
++ "bitflags",
++]
+ 
+ [[package]]
+ name = "redox_users"
+-version = "0.3.4"
++version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
+ dependencies = [
+- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom 0.1.16",
++ "redox_syscall 0.1.57",
++ "rust-argon2",
+ ]
+ 
+ [[package]]
+ name = "regex"
+-version = "1.3.4"
++version = "1.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a"
+ dependencies = [
+- "aho-corasick 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex-syntax 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++ "thread_local",
+ ]
+ 
+ [[package]]
+ name = "regex-syntax"
+-version = "0.6.14"
++version = "0.6.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581"
+ 
+ [[package]]
+ name = "remove_dir_all"
+-version = "0.5.2"
++version = "0.5.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "reqwest"
+ version = "0.9.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++checksum = "f88643aea3c1343c804950d7bf983bd2067f5ab59db6d613a08e05572f2714ab"
++dependencies = [
++ "base64 0.10.1",
++ "bytes",
++ "cookie",
++ "cookie_store",
++ "encoding_rs",
++ "flate2",
++ "futures",
++ "http",
++ "hyper",
++ "hyper-tls",
++ "log",
++ "mime",
++ "mime_guess",
++ "native-tls",
++ "serde",
++ "serde_json",
++ "serde_urlencoded",
++ "time",
++ "tokio",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-threadpool",
++ "tokio-timer",
++ "url 1.7.2",
++ "uuid 0.7.4",
++ "winreg",
+ ]
+ 
+ [[package]]
+ name = "rust-argon2"
+-version = "0.7.0"
++version = "0.8.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
+ dependencies = [
+- "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64 0.13.0",
++ "blake2b_simd",
++ "constant_time_eq",
++ "crossbeam-utils 0.8.2",
+ ]
+ 
+ [[package]]
+ name = "rustc-demangle"
+-version = "0.1.16"
++version = "0.1.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
+ 
+ [[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver",
+ ]
+ 
++[[package]]
++name = "rustversion"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd"
++
+ [[package]]
+ name = "ryu"
+-version = "1.0.2"
++version = "1.0.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+ 
+ [[package]]
+ name = "same-file"
+ version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+ dependencies = [
+- "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util",
+ ]
+ 
+ [[package]]
+ name = "schannel"
+-version = "0.1.16"
++version = "0.1.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
+ dependencies = [
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0",
++ "winapi 0.3.9",
+ ]
+ 
++[[package]]
++name = "scoped-tls"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
++
+ [[package]]
+ name = "scopeguard"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
+ 
+ [[package]]
+ name = "scopeguard"
+-version = "1.0.0"
++version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+ 
+ [[package]]
+ name = "security-framework"
+-version = "0.3.4"
++version = "2.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69"
+ dependencies = [
+- "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
++ "core-foundation",
++ "core-foundation-sys",
++ "libc",
++ "security-framework-sys",
+ ]
+ 
+ [[package]]
+ name = "security-framework-sys"
+-version = "0.3.3"
++version = "2.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b"
+ dependencies = [
+- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver-parser",
++ "serde",
+ ]
+ 
+ [[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.104"
++version = "1.0.123"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae"
+ dependencies = [
+- "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive",
+ ]
+ 
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.104"
++version = "1.0.123"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
+ dependencies = [
+- "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.24",
++ "quote 1.0.9",
++ "syn 1.0.60",
+ ]
+ 
+ [[package]]
+ name = "serde_ignored"
+ version = "0.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01fb142"
+ dependencies = [
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
+ ]
+ 
+ [[package]]
+ name = "serde_json"
+-version = "1.0.45"
++version = "1.0.62"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
+ dependencies = [
+- "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa",
++ "ryu",
++ "serde",
+ ]
+ 
+ [[package]]
+ name = "serde_urlencoded"
+ version = "0.5.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a"
+ dependencies = [
+- "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dtoa",
++ "itoa",
++ "serde",
++ "url 1.7.2",
+ ]
+ 
+ [[package]]
+ name = "serial_test"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "50bfbc39343545618d97869d77f38ed43e48dd77432717dbc7ed39d797f3ecbe"
+ dependencies = [
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0",
+ ]
+ 
+ [[package]]
+ name = "serial_test_derive"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "89dd85be2e2ad75b041c9df2892ac078fa6e0b90024028b2b9fb4125b7530f01"
+ dependencies = [
+- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13",
++ "syn 0.15.44",
+ ]
+ 
+ [[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.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+ 
+ [[package]]
+ name = "smallvec"
+-version = "0.6.13"
++version = "0.6.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
+ dependencies = [
+- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "maybe-uninit",
+ ]
+ 
+ [[package]]
+ name = "smallvec"
+-version = "1.2.0"
++version = "1.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+ 
+ [[package]]
+ name = "socket2"
+-version = "0.3.11"
++version = "0.3.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
++ "libc",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "stable_deref_trait"
+-version = "1.1.1"
++version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+ 
+ [[package]]
+ name = "string"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
+ ]
+ 
+ [[package]]
+ name = "strsim"
+ version = "0.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+ 
+ [[package]]
+ name = "structopt"
+ version = "0.2.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7"
+ dependencies = [
+- "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clap",
++ "structopt-derive",
+ ]
+ 
+ [[package]]
+ name = "structopt-derive"
+ version = "0.2.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107"
+ dependencies = [
+- "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "heck",
++ "proc-macro2 0.4.30",
++ "quote 0.6.13",
++ "syn 0.15.44",
+ ]
+ 
+ [[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 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30",
++ "quote 0.6.13",
++ "unicode-xid 0.1.0",
+ ]
+ 
+ [[package]]
+ name = "syn"
+-version = "1.0.14"
++version = "1.0.60"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081"
+ dependencies = [
+- "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.24",
++ "quote 1.0.9",
++ "unicode-xid 0.2.1",
+ ]
+ 
+ [[package]]
+ name = "synstructure"
+-version = "0.12.3"
++version = "0.12.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
+ dependencies = [
+- "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.24",
++ "quote 1.0.9",
++ "syn 1.0.60",
++ "unicode-xid 0.2.1",
+ ]
+ 
+ [[package]]
+ name = "tar"
+-version = "0.4.26"
++version = "0.4.33"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c0bcfbd6a598361fda270d82469fff3d65089dc33e175c9a131f7b4cd395f228"
+ dependencies = [
+- "filetime 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+-]
+-
+-[[package]]
+-name = "tempdir"
+-version = "0.3.7"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "filetime",
++ "libc",
++ "xattr",
+ ]
+ 
+ [[package]]
+ name = "tempfile"
+ version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "libc",
++ "rand 0.3.23",
++ "redox_syscall 0.1.57",
++ "winapi 0.2.8",
+ ]
+ 
+ [[package]]
+ name = "tempfile"
+-version = "3.1.0"
++version = "3.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
++ "libc",
++ "rand 0.8.3",
++ "redox_syscall 0.2.5",
++ "remove_dir_all",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "termcolor"
+-version = "0.3.6"
++version = "1.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
+ dependencies = [
+- "wincolor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util",
+ ]
+ 
+ [[package]]
+-name = "termcolor"
+-version = "1.1.0"
++name = "terminal_size"
++version = "0.1.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "86ca8ced750734db02076f44132d802af0b33b09942331f4459dde8636fd2406"
+ dependencies = [
+- "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "termios"
+-version = "0.3.1"
++version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b"
+ dependencies = [
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+ 
+ [[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.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
+ dependencies = [
+- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
++dependencies = [
++ "proc-macro2 1.0.24",
++ "quote 1.0.9",
++ "syn 1.0.60",
+ ]
+ 
+ [[package]]
+ name = "thread_local"
+-version = "1.0.1"
++version = "1.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd"
+ dependencies = [
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "once_cell",
+ ]
+ 
+ [[package]]
+ name = "time"
+-version = "0.1.42"
++version = "0.1.43"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
++dependencies = [
++ "libc",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "tinyvec"
++version = "1.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023"
+ dependencies = [
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tinyvec_macros",
+ ]
+ 
++[[package]]
++name = "tinyvec_macros"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
++
+ [[package]]
+ name = "tokio"
+ version = "0.1.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "mio",
++ "num_cpus",
++ "tokio-current-thread",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-reactor",
++ "tokio-tcp",
++ "tokio-threadpool",
++ "tokio-timer",
+ ]
+ 
+ [[package]]
+ name = "tokio-buf"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "either",
++ "futures",
+ ]
+ 
+ [[package]]
+ name = "tokio-current-thread"
+-version = "0.1.6"
++version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "tokio-executor",
+ ]
+ 
+ [[package]]
+ name = "tokio-executor"
+-version = "0.1.9"
++version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
+ dependencies = [
+- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.2",
++ "futures",
+ ]
+ 
+ [[package]]
+ name = "tokio-io"
+-version = "0.1.12"
++version = "0.1.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "log",
+ ]
+ 
+ [[package]]
+ name = "tokio-reactor"
+-version = "0.1.11"
++version = "0.1.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
+ dependencies = [
+- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.2",
++ "futures",
++ "lazy_static 1.4.0",
++ "log",
++ "mio",
++ "num_cpus",
++ "parking_lot 0.9.0",
++ "slab",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-sync",
+ ]
+ 
+ [[package]]
+ name = "tokio-sync"
+-version = "0.1.7"
++version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
+ dependencies = [
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fnv",
++ "futures",
+ ]
+ 
+ [[package]]
+ name = "tokio-tcp"
+-version = "0.1.3"
++version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "iovec",
++ "mio",
++ "tokio-io",
++ "tokio-reactor",
+ ]
+ 
+ [[package]]
+ name = "tokio-threadpool"
+-version = "0.1.17"
++version = "0.1.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
+ dependencies = [
+- "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque",
++ "crossbeam-queue",
++ "crossbeam-utils 0.7.2",
++ "futures",
++ "lazy_static 1.4.0",
++ "log",
++ "num_cpus",
++ "slab",
++ "tokio-executor",
+ ]
+ 
+ [[package]]
+ name = "tokio-timer"
+-version = "0.2.12"
++version = "0.2.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
+ dependencies = [
+- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.2",
++ "futures",
++ "slab",
++ "tokio-executor",
+ ]
+ 
+ [[package]]
+ name = "toml"
+ version = "0.4.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
+ dependencies = [
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
++]
++
++[[package]]
++name = "toml"
++version = "0.5.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
++dependencies = [
++ "serde",
+ ]
+ 
+ [[package]]
+ name = "treeline"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
+ 
+ [[package]]
+ name = "try-lock"
+-version = "0.2.2"
++version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
+ 
+ [[package]]
+ name = "try_from"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
+ ]
+ 
+ [[package]]
+ name = "unicase"
+ version = "2.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+ dependencies = [
+- "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check",
+ ]
+ 
+ [[package]]
+ name = "unicode-bidi"
+ version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
+ ]
+ 
+ [[package]]
+ name = "unicode-normalization"
+-version = "0.1.12"
++version = "0.1.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
+ dependencies = [
+- "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tinyvec",
+ ]
+ 
+ [[package]]
+ name = "unicode-segmentation"
+-version = "1.6.0"
++version = "1.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
+ 
+ [[package]]
+ name = "unicode-width"
+-version = "0.1.7"
++version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+ 
+ [[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.0"
++version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+ 
+ [[package]]
+ name = "url"
+ version = "1.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+ dependencies = [
+- "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "idna 0.1.5",
++ "matches",
++ "percent-encoding 1.0.1",
+ ]
+ 
+ [[package]]
+ name = "url"
+-version = "2.1.1"
++version = "2.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b"
+ dependencies = [
+- "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "form_urlencoded",
++ "idna 0.2.2",
++ "matches",
++ "percent-encoding 2.1.0",
+ ]
+ 
+ [[package]]
+ name = "uuid"
+-version = "0.6.5"
++version = "0.7.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.6.5",
+ ]
+ 
+ [[package]]
+ name = "uuid"
+-version = "0.7.4"
++version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+ dependencies = [
+- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom 0.2.2",
+ ]
+ 
+ [[package]]
+ name = "vcpkg"
+-version = "0.2.8"
++version = "0.2.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
+ 
+ [[package]]
+ name = "vec_map"
+-version = "0.8.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-
+-[[package]]
+-name = "version_check"
+-version = "0.1.5"
++version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+ 
+ [[package]]
+ name = "version_check"
+-version = "0.9.1"
++version = "0.9.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+ 
+ [[package]]
+ name = "walkdir"
+ version = "2.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
+ dependencies = [
+- "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "same-file",
++ "winapi 0.3.9",
++ "winapi-util",
+ ]
+ 
+ [[package]]
+ name = "want"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "log",
++ "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.10.2+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+ 
+ [[package]]
+ name = "wasm-pack"
+ version = "0.9.1"
+ dependencies = [
+- "assert_cmd 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "binary-install 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cargo_metadata 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "curl 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "dialoguer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl 0.10.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "predicates 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "reqwest 0.9.24 (registry+https://github.com/rust-lang/crates.io-index)",
+- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_ignored 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serial_test 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serial_test_derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "assert_cmd",
++ "atty",
++ "binary-install",
++ "cargo_metadata",
++ "chrono",
++ "console 0.6.2",
++ "curl",
++ "dialoguer",
++ "dirs",
++ "env_logger",
++ "failure",
++ "glob",
++ "human-panic",
++ "lazy_static 1.4.0",
++ "log",
++ "openssl",
++ "parking_lot 0.6.4",
++ "predicates",
++ "reqwest",
++ "semver",
++ "serde",
++ "serde_derive",
++ "serde_ignored",
++ "serde_json",
++ "serial_test",
++ "serial_test_derive",
++ "siphasher",
++ "strsim",
++ "structopt",
++ "tempfile 3.2.0",
++ "toml 0.4.10",
++ "walkdir",
++ "which",
+ ]
+ 
+ [[package]]
+ name = "which"
+ version = "2.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164"
+ dependencies = [
+- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure",
++ "libc",
+ ]
+ 
+ [[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.8"
++version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+ dependencies = [
+- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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.3"
++version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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"
+-
+-[[package]]
+-name = "wincolor"
+-version = "0.1.6"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+-]
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+ 
+ [[package]]
+ name = "winreg"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+ 
+ [[package]]
+ name = "xattr"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c"
+ dependencies = [
+- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "zip"
+-version = "0.5.4"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+-]
+-
+-[metadata]
+-"checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
+-"checksum aho-corasick 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5f56c476256dc249def911d6f7580b5fc7e875895b5d7ee88f5d602208035744"
+-"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+-"checksum arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+-"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+-"checksum assert_cmd 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2dc477793bd82ec39799b6f6b3df64938532fdf2ab0d49ef817eac65856a5a1e"
+-"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+-"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+-"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+-"checksum backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)" = "7f80256bc78f67e7df7e36d77366f636ed976895d91fe2ab9efa3973e8fe8c4f"
+-"checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
+-"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+-"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+-"checksum binary-install 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7b5bc5f8c50dd6a80d0b303ddab79f42ddcb52fd43d68107ecf622c551fd4cd4"
+-"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+-"checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
+-"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
+-"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
+-"checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b"
+-"checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f"
+-"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
+-"checksum cargo_metadata 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "700b3731fd7d357223d0000f4dbf1808401b694609035c3c411fbc0cd375c426"
+-"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
+-"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+-"checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01"
+-"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
+-"checksum clicolors-control 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1f84dec9bc083ce2503908cd305af98bd363da6f54bf8d4bf0ac14ee749ad5d1"
+-"checksum clicolors-control 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90082ee5dcdd64dc4e9e0d37fbf3ee325419e39c0092191e0393df65518f741e"
+-"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+-"checksum console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ecd48adf136733979b49e15bc3b4c43cc0d3c85ece7bd08e6daa414c6fcb13e6"
+-"checksum console 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "45e0f3986890b3acbc782009e2629dfe2baa430ac091519ce3be26164a2ae6c0"
+-"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+-"checksum cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5"
+-"checksum cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c"
+-"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
+-"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
+-"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
+-"checksum crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca"
+-"checksum crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac"
+-"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
+-"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
+-"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4"
+-"checksum curl 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)" = "06aa71e9208a54def20792d877bc663d6aae0732b9852e612c4a933177c31283"
+-"checksum curl-sys 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)" = "0c38ca47d60b86d0cc9d42caa90a0885669c2abc9791f871c81f58cdf39e979b"
+-"checksum dialoguer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1ad1c29a0368928e78c551354dbff79f103a962ad820519724ef0d74f1c62fa9"
+-"checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
+-"checksum dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
+-"checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3"
+-"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
+-"checksum encode_unicode 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+-"checksum encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28"
+-"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
+-"checksum error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9"
+-"checksum escargot 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ceb9adbf9874d5d028b5e4c5739d22b71988252b25c9c98fe7cf9738bee84597"
+-"checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
+-"checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
+-"checksum filetime 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1ff6d4dab0aa0c8e6346d46052e93b13a16cf847b54ed357087c35011048cc7d"
+-"checksum flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f"
+-"checksum float-cmp 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75224bec9bfe1a65e2d34132933f2de7fe79900c96a0174307554244ece8150e"
+-"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
+-"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+-"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+-"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+-"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+-"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+-"checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
+-"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
+-"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+-"checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
+-"checksum h2 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462"
+-"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+-"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
+-"checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
+-"checksum http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0"
+-"checksum http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d"
+-"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+-"checksum human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21638c5955a6daf3ecc42cae702335fc37a72a4abcc6959ce457b31a7d43bbdd"
+-"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+-"checksum hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)" = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6"
+-"checksum hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f"
+-"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+-"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
+-"checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc"
+-"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+-"checksum is_executable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "302d553b8abc8187beb7d663e34c065ac4570b273bc9511a50e940e99409c577"
+-"checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
+-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+-"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
+-"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+-"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558"
+-"checksum libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
+-"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
+-"checksum lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b"
+-"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
+-"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+-"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+-"checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223"
+-"checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9"
+-"checksum mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+-"checksum mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599"
+-"checksum miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625"
+-"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
+-"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+-"checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e"
+-"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
+-"checksum normalize-line-endings 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2e0a1a39eab95caf4f5556da9289b9e68f0aafac901b2ce80daaf020d3b733a8"
+-"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
+-"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
+-"checksum num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6"
+-"checksum openssl 0.10.27 (registry+https://github.com/rust-lang/crates.io-index)" = "e176a45fedd4c990e26580847a525e39e16ec32ac78957dbf62ded31b3abfd6f"
+-"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+-"checksum openssl-src 111.6.1+1.1.1d (registry+https://github.com/rust-lang/crates.io-index)" = "c91b04cb43c1a8a90e934e0cd612e2a5715d976d2d6cff4490278a0cddf35005"
+-"checksum openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)" = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"
+-"checksum os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
+-"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
+-"checksum parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "92e98c49ab0b7ce5b222f2cc9193fc4efe11c6d0bd4f648e374684a6857b1cfc"
+-"checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5"
+-"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
+-"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c"
+-"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
+-"checksum parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7582838484df45743c8434fbff785e8edf260c28748353d44bc0da32e0ceabf1"
+-"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+-"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+-"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
+-"checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd"
+-"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
+-"checksum predicates 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a9bfe52247e5cc9b2f943682a85a5549fb9662245caf094504e69a2f03fe64d4"
+-"checksum predicates-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
+-"checksum predicates-tree 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
+-"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+-"checksum proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548"
+-"checksum publicsuffix 1.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3bbaa49075179162b49acac1c6aa45fb4dafb5f13cf6794276d77bc7fd95757b"
+-"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+-"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+-"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
+-"checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
+-"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+-"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
+-"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+-"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+-"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+-"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
+-"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+-"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+-"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+-"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+-"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+-"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+-"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
+-"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+-"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+-"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+-"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+-"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
+-"checksum redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
+-"checksum regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "322cf97724bea3ee221b78fe25ac9c46114ebb51747ad5babd51a2fc6a8235a8"
+-"checksum regex-syntax 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)" = "b28dfe3fe9badec5dbf0a79a9cccad2cfc2ab5484bdb3e44cbd1ae8b3ba2be06"
+-"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
+-"checksum reqwest 0.9.24 (registry+https://github.com/rust-lang/crates.io-index)" = "f88643aea3c1343c804950d7bf983bd2067f5ab59db6d613a08e05572f2714ab"
+-"checksum rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
+-"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+-"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+-"checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
+-"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+-"checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
+-"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
+-"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
+-"checksum security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8ef2429d7cefe5fd28bd1d2ed41c944547d4ff84776f5935b456da44593a16df"
+-"checksum security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895"
+-"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+-"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+-"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
+-"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
+-"checksum serde_ignored 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01fb142"
+-"checksum serde_json 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)" = "eab8f15f15d6c41a154c1b128a22f2dfabe350ef53c40953d84e36155c91192b"
+-"checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a"
+-"checksum serial_test 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50bfbc39343545618d97869d77f38ed43e48dd77432717dbc7ed39d797f3ecbe"
+-"checksum serial_test_derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "89dd85be2e2ad75b041c9df2892ac078fa6e0b90024028b2b9fb4125b7530f01"
+-"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
+-"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+-"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
+-"checksum smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc"
+-"checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85"
+-"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
+-"checksum string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d"
+-"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+-"checksum structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7"
+-"checksum structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107"
+-"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+-"checksum syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "af6f3550d8dff9ef7dc34d384ac6f107e5d31c8f57d9f28e0081503f547ac8f5"
+-"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
+-"checksum tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)" = "b3196bfbffbba3e57481b6ea32249fbaf590396a52505a2615adbb79d9d826d3"
+-"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
+-"checksum tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0"
+-"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+-"checksum termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "adc4587ead41bf016f11af03e55a624c06568b5a19db4e90fde573d805074f83"
+-"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
+-"checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625"
+-"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+-"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
+-"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
+-"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
+-"checksum tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46"
+-"checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443"
+-"checksum tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "ca6df436c42b0c3330a82d855d2ef017cd793090ad550a6bc2184f4b933532ab"
+-"checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926"
+-"checksum tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6732fe6b53c8d11178dcb77ac6d9682af27fc6d4cb87789449152e5377377146"
+-"checksum tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "d06554cce1ae4a50f42fba8023918afa931413aded705b560e29600ccf7c6d76"
+-"checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119"
+-"checksum tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c32ffea4827978e9aa392d2f743d973c1dfa3730a2ed3f22ce1e6984da848c"
+-"checksum tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1739638e364e558128461fc1ad84d997702c8e31c2e6b18fb99842268199e827"
+-"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
+-"checksum treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
+-"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
+-"checksum try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b"
+-"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+-"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+-"checksum unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
+-"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+-"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
+-"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+-"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+-"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+-"checksum url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
+-"checksum uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363"
+-"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
+-"checksum vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
+-"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
+-"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+-"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
+-"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
+-"checksum want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230"
+-"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+-"checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164"
+-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+-"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+-"checksum winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80"
+-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+-"checksum wincolor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eeb06499a3a4d44302791052df005d5232b927ed1a9658146d842165c4de7767"
+-"checksum winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
+-"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+-"checksum xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c"
+-"checksum zip 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e41ff37ba788e2169b19fa70253b70cb53d9f2db9fb9aea9bcfc5047e02c3bae"
++version = "0.5.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a8977234acab718eb2820494b2f96cbb16004c19dddf88b7445b27381450997"
++dependencies = [
++ "byteorder",
++ "bzip2",
++ "crc32fast",
++ "flate2",
++ "thiserror",
++ "time",
++]
+diff --git a/Cargo.toml b/Cargo.toml
+index 6e8c66f..3dba85e 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -21,7 +21,7 @@ failure = "0.1.2"
+ human-panic = "1.0.1"
+ glob = "0.2"
+ log = "0.4.6"
+-openssl = { version = '0.10.11', optional = true }
++openssl = { version = '0.10.32', optional = true }
+ parking_lot = "0.6"
+ reqwest = "0.9.14"
+ semver = "0.9.0"
diff --git a/nixpkgs/pkgs/development/tools/wiggle/default.nix b/nixpkgs/pkgs/development/tools/wiggle/default.nix
index e861f20a9194..d360500e1fb2 100644
--- a/nixpkgs/pkgs/development/tools/wiggle/default.nix
+++ b/nixpkgs/pkgs/development/tools/wiggle/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
 
-  name = "wiggle-1.2";
+  name = "wiggle-1.3";
 
   src = fetchurl {
-    url = "https://github.com/neilbrown/wiggle/archive/v1.2.tar.gz";
-    sha256 = "1gckj0zv2xznzg7i70p9dfmkhdpdg3953msi4gg5h6mpmmiiiwrw";
+    url = "https://github.com/neilbrown/wiggle/archive/v1.3.tar.gz";
+    sha256 = "sha256-/5LPATPB9NzjNWPiY8sw59229KvfhtQnsewUkL7CWvo=";
   };
 
   buildInputs = [ ncurses groff ];
diff --git a/nixpkgs/pkgs/development/tools/wrangler/default.nix b/nixpkgs/pkgs/development/tools/wrangler/default.nix
index c7b1c0329f3a..5fc7b6a18071 100644
--- a/nixpkgs/pkgs/development/tools/wrangler/default.nix
+++ b/nixpkgs/pkgs/development/tools/wrangler/default.nix
@@ -1,27 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, curl, darwin, perl }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, curl, Security, CoreServices, CoreFoundation, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wrangler";
-  version = "1.13.0";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xhldarzb71x4k7ydk4yd6g0qv6y2l0mn2lc43hvl9jm29pnz95q";
+    sha256 = "sha256-/5iIdEUbesX+IRQQzeJazt3i/xAtghblct718EmYci4=";
   };
 
-  cargoSha256 = "0w845virvw7mvibc76ar2hbffhfzj2v8v1xkrsssrgzyaryb48jk";
+  cargoSha256 = "sha256-6XWFhfY8QIl4S6zDyyM2YvFUoGMnKZQ3d/GT4yQWb7A=";
 
-  nativeBuildInputs = [ perl ] ++ lib.optionals stdenv.isLinux [ pkg-config ];
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = lib.optionals stdenv.isLinux [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [
-      curl
-      darwin.apple_sdk.frameworks.Security
-      darwin.apple_sdk.frameworks.CoreServices
-      darwin.apple_sdk.frameworks.CoreFoundation
-    ];
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ curl CoreFoundation CoreServices Security libiconv ];
+
+  OPENSSL_NO_VENDOR = 1;
 
   # tries to use "/homeless-shelter" and fails
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/tools/xcbuild/toolchains.nix b/nixpkgs/pkgs/development/tools/xcbuild/toolchains.nix
index e435f0978c5e..e0abf90847fc 100644
--- a/nixpkgs/pkgs/development/tools/xcbuild/toolchains.nix
+++ b/nixpkgs/pkgs/development/tools/xcbuild/toolchains.nix
@@ -44,8 +44,8 @@ runCommand "Toolchains" {} (''
     fi
   done
 
-  ln -s ${buildPackages.yacc}/bin/yacc $toolchain/bin/yacc
-  ln -s ${buildPackages.yacc}/bin/bison $toolchain/bin/bison
+  ln -s ${buildPackages.bison}/bin/yacc $toolchain/bin/yacc
+  ln -s ${buildPackages.bison}/bin/bison $toolchain/bin/bison
   ln -s ${buildPackages.flex}/bin/flex $toolchain/bin/flex
   ln -s ${buildPackages.flex}/bin/flex++ $toolchain/bin/flex++
   ln -s $toolchain/bin/flex $toolchain/bin/lex
diff --git a/nixpkgs/pkgs/development/tools/xcode-install/Gemfile b/nixpkgs/pkgs/development/tools/xcode-install/Gemfile
new file mode 100644
index 000000000000..b9d313ce14fc
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/xcode-install/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'xcode-install'
diff --git a/nixpkgs/pkgs/development/tools/xcode-install/Gemfile.lock b/nixpkgs/pkgs/development/tools/xcode-install/Gemfile.lock
new file mode 100644
index 000000000000..589543fe47d6
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/xcode-install/Gemfile.lock
@@ -0,0 +1,204 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    CFPropertyList (3.0.3)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    artifactory (3.0.15)
+    atomos (0.1.3)
+    aws-eventstream (1.1.0)
+    aws-partitions (1.419.0)
+    aws-sdk-core (3.111.2)
+      aws-eventstream (~> 1, >= 1.0.2)
+      aws-partitions (~> 1, >= 1.239.0)
+      aws-sigv4 (~> 1.1)
+      jmespath (~> 1.0)
+    aws-sdk-kms (1.41.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-s3 (1.87.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sdk-kms (~> 1)
+      aws-sigv4 (~> 1.1)
+    aws-sigv4 (1.2.2)
+      aws-eventstream (~> 1, >= 1.0.2)
+    babosa (1.0.4)
+    claide (1.0.3)
+    colored (1.2)
+    colored2 (3.1.2)
+    commander-fastlane (4.4.6)
+      highline (~> 1.7.2)
+    declarative (0.0.20)
+    declarative-option (0.1.0)
+    digest-crc (0.6.3)
+      rake (>= 12.0.0, < 14.0.0)
+    domain_name (0.5.20190701)
+      unf (>= 0.0.5, < 1.0.0)
+    dotenv (2.7.6)
+    emoji_regex (3.2.1)
+    excon (0.78.1)
+    faraday (1.3.0)
+      faraday-net_http (~> 1.0)
+      multipart-post (>= 1.2, < 3)
+      ruby2_keywords
+    faraday-cookie_jar (0.0.7)
+      faraday (>= 0.8.0)
+      http-cookie (~> 1.0.0)
+    faraday-net_http (1.0.1)
+    faraday_middleware (1.0.0)
+      faraday (~> 1.0)
+    fastimage (2.2.1)
+    fastlane (2.172.0)
+      CFPropertyList (>= 2.3, < 4.0.0)
+      addressable (>= 2.3, < 3.0.0)
+      artifactory (~> 3.0)
+      aws-sdk-s3 (~> 1.0)
+      babosa (>= 1.0.3, < 2.0.0)
+      bundler (>= 1.12.0, < 3.0.0)
+      colored
+      commander-fastlane (>= 4.4.6, < 5.0.0)
+      dotenv (>= 2.1.1, < 3.0.0)
+      emoji_regex (>= 0.1, < 4.0)
+      excon (>= 0.71.0, < 1.0.0)
+      faraday (~> 1.0)
+      faraday-cookie_jar (~> 0.0.6)
+      faraday_middleware (~> 1.0)
+      fastimage (>= 2.1.0, < 3.0.0)
+      gh_inspector (>= 1.1.2, < 2.0.0)
+      google-api-client (>= 0.37.0, < 0.39.0)
+      google-cloud-storage (>= 1.15.0, < 2.0.0)
+      highline (>= 1.7.2, < 2.0.0)
+      json (< 3.0.0)
+      jwt (>= 2.1.0, < 3)
+      mini_magick (>= 4.9.4, < 5.0.0)
+      multipart-post (~> 2.0.0)
+      plist (>= 3.1.0, < 4.0.0)
+      rubyzip (>= 2.0.0, < 3.0.0)
+      security (= 0.1.3)
+      simctl (~> 1.6.3)
+      slack-notifier (>= 2.0.0, < 3.0.0)
+      terminal-notifier (>= 2.0.0, < 3.0.0)
+      terminal-table (>= 1.4.5, < 2.0.0)
+      tty-screen (>= 0.6.3, < 1.0.0)
+      tty-spinner (>= 0.8.0, < 1.0.0)
+      word_wrap (~> 1.0.0)
+      xcodeproj (>= 1.13.0, < 2.0.0)
+      xcpretty (~> 0.3.0)
+      xcpretty-travis-formatter (>= 0.0.3)
+    gh_inspector (1.1.3)
+    google-api-client (0.38.0)
+      addressable (~> 2.5, >= 2.5.1)
+      googleauth (~> 0.9)
+      httpclient (>= 2.8.1, < 3.0)
+      mini_mime (~> 1.0)
+      representable (~> 3.0)
+      retriable (>= 2.0, < 4.0)
+      signet (~> 0.12)
+    google-apis-core (0.2.1)
+      addressable (~> 2.5, >= 2.5.1)
+      googleauth (~> 0.14)
+      httpclient (>= 2.8.1, < 3.0)
+      mini_mime (~> 1.0)
+      representable (~> 3.0)
+      retriable (>= 2.0, < 4.0)
+      rexml
+      signet (~> 0.14)
+      webrick
+    google-apis-iamcredentials_v1 (0.1.0)
+      google-apis-core (~> 0.1)
+    google-apis-storage_v1 (0.1.0)
+      google-apis-core (~> 0.1)
+    google-cloud-core (1.5.0)
+      google-cloud-env (~> 1.0)
+      google-cloud-errors (~> 1.0)
+    google-cloud-env (1.4.0)
+      faraday (>= 0.17.3, < 2.0)
+    google-cloud-errors (1.0.1)
+    google-cloud-storage (1.30.0)
+      addressable (~> 2.5)
+      digest-crc (~> 0.4)
+      google-apis-iamcredentials_v1 (~> 0.1)
+      google-apis-storage_v1 (~> 0.1)
+      google-cloud-core (~> 1.2)
+      googleauth (~> 0.9)
+      mini_mime (~> 1.0)
+    googleauth (0.15.0)
+      faraday (>= 0.17.3, < 2.0)
+      jwt (>= 1.4, < 3.0)
+      memoist (~> 0.16)
+      multi_json (~> 1.11)
+      os (>= 0.9, < 2.0)
+      signet (~> 0.14)
+    highline (1.7.10)
+    http-cookie (1.0.3)
+      domain_name (~> 0.5)
+    httpclient (2.8.3)
+    jmespath (1.4.0)
+    json (2.5.1)
+    jwt (2.2.2)
+    memoist (0.16.2)
+    mini_magick (4.11.0)
+    mini_mime (1.0.2)
+    multi_json (1.15.0)
+    multipart-post (2.0.0)
+    nanaimo (0.3.0)
+    naturally (2.2.1)
+    os (1.1.1)
+    plist (3.6.0)
+    public_suffix (4.0.6)
+    rake (13.0.3)
+    representable (3.0.4)
+      declarative (< 0.1.0)
+      declarative-option (< 0.2.0)
+      uber (< 0.2.0)
+    retriable (3.1.2)
+    rexml (3.2.4)
+    rouge (2.0.7)
+    ruby2_keywords (0.0.4)
+    rubyzip (2.3.0)
+    security (0.1.3)
+    signet (0.14.0)
+      addressable (~> 2.3)
+      faraday (>= 0.17.3, < 2.0)
+      jwt (>= 1.5, < 3.0)
+      multi_json (~> 1.10)
+    simctl (1.6.8)
+      CFPropertyList
+      naturally
+    slack-notifier (2.3.2)
+    terminal-notifier (2.0.0)
+    terminal-table (1.8.0)
+      unicode-display_width (~> 1.1, >= 1.1.1)
+    tty-cursor (0.7.1)
+    tty-screen (0.8.1)
+    tty-spinner (0.9.3)
+      tty-cursor (~> 0.7)
+    uber (0.1.0)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.7)
+    unicode-display_width (1.7.0)
+    webrick (1.7.0)
+    word_wrap (1.0.0)
+    xcode-install (2.6.8)
+      claide (>= 0.9.1, < 1.1.0)
+      fastlane (>= 2.1.0, < 3.0.0)
+    xcodeproj (1.19.0)
+      CFPropertyList (>= 2.3.3, < 4.0)
+      atomos (~> 0.1.3)
+      claide (>= 1.0.2, < 2.0)
+      colored2 (~> 3.1)
+      nanaimo (~> 0.3.0)
+    xcpretty (0.3.0)
+      rouge (~> 2.0.7)
+    xcpretty-travis-formatter (1.0.1)
+      xcpretty (~> 0.2, >= 0.0.7)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  xcode-install
+
+BUNDLED WITH
+   1.17.2
diff --git a/nixpkgs/pkgs/development/tools/xcode-install/default.nix b/nixpkgs/pkgs/development/tools/xcode-install/default.nix
new file mode 100644
index 000000000000..677217b5c810
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/xcode-install/default.nix
@@ -0,0 +1,17 @@
+{ lib
+, bundlerApp
+}:
+
+bundlerApp {
+  pname = "xcode-install";
+  gemdir = ./.;
+  exes = [ "xcversion" ];
+
+  meta = with lib; {
+    description = "Install and update your Xcodes automatically";
+    homepage = "https://github.com/xcpretty/xcode-install";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ q3k ];
+    license = with licenses; [ mit ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/xcode-install/gemset.nix b/nixpkgs/pkgs/development/tools/xcode-install/gemset.nix
new file mode 100644
index 000000000000..c6355de34a2f
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/xcode-install/gemset.nix
@@ -0,0 +1,833 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  artifactory = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wify8rhjwr5bw5y6ary61vba290vk766cxw9a9mg05yswmaisls";
+      type = "gem";
+    };
+    version = "3.0.15";
+  };
+  atomos = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17vq6sjyswr5jfzwdccw748kgph6bdw30bakwnn6p8sl4hpv4hvx";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  aws-eventstream = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  aws-partitions = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vz0djj8w3ns0sz5gvkla5jml8xzx6skbcfj255m81fyww1x6ws8";
+      type = "gem";
+    };
+    version = "1.419.0";
+  };
+  aws-sdk-core = {
+    dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bfj1cnpp0ljr9jc44kljdwl5399cbqlvlqkz6fxq5i4r6ckggi4";
+      type = "gem";
+    };
+    version = "3.111.2";
+  };
+  aws-sdk-kms = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02f70a4rr5h2na7navjhaf3n15ifq95zdl1avsryyxdvqzm5gzwm";
+      type = "gem";
+    };
+    version = "1.41.0";
+  };
+  aws-sdk-s3 = {
+    dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0capqhvm08ngq74n33ym0khixkdj342jpikssw57avdmd8g6kaq7";
+      type = "gem";
+    };
+    version = "1.87.0";
+  };
+  aws-sigv4 = {
+    dependencies = ["aws-eventstream"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  babosa = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16dwqn33kmxkqkv51cwiikdkbrdjfsymlnc0rgbjwilmym8a9phq";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  CFPropertyList = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  claide = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  colored = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b0x5jmsyi0z69bm6sij1k89z7h0laag3cb4mdn7zkl9qmxb90lx";
+      type = "gem";
+    };
+    version = "1.2";
+  };
+  colored2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  commander-fastlane = {
+    dependencies = ["highline"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y8d3ac9qwm1cg6rnpf8rcdsy1yxacrd2g2kl809xsp2vi973g65";
+      type = "gem";
+    };
+    version = "4.4.6";
+  };
+  declarative = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yczgnqrbls7shrg63y88g7wand2yp9h6sf56c9bdcksn5nds8c0";
+      type = "gem";
+    };
+    version = "0.0.20";
+  };
+  declarative-option = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  digest-crc = {
+    dependencies = ["rake"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "118d5p02kdw6a5pi8af12dxma7q3b77zz5q5xjjf5kgp8qh1930a";
+      type = "gem";
+    };
+    version = "0.6.3";
+  };
+  domain_name = {
+    dependencies = ["unf"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+      type = "gem";
+    };
+    version = "0.5.20190701";
+  };
+  dotenv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
+      type = "gem";
+    };
+    version = "2.7.6";
+  };
+  emoji_regex = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qbzlracxw4xwyvrgr0qcl1alk4ijk6pv53ni6f43csi649y3n3s";
+      type = "gem";
+    };
+    version = "3.2.1";
+  };
+  excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16ij8617v3js03yj1zd32mmrf7kpi9l96bid5mpqk30c4mzai55r";
+      type = "gem";
+    };
+    version = "0.78.1";
+  };
+  faraday = {
+    dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  faraday-cookie_jar = {
+    dependencies = ["faraday" "http-cookie"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00hligx26w9wdnpgsrf0qdnqld4rdccy8ym6027h5m735mpvxjzk";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  faraday_middleware = {
+    dependencies = ["faraday"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  fastimage = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vqp53s9vgd28f4l17q0vs7xv32y64af0ny3wb1fgg4i534rzg6j";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  fastlane = {
+    dependencies = ["CFPropertyList" "addressable" "artifactory" "aws-sdk-s3" "babosa" "colored" "commander-fastlane" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "google-cloud-storage" "highline" "json" "jwt" "mini_magick" "multipart-post" "plist" "rubyzip" "security" "simctl" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0crr42qdgy9l409pffpfs7nq8ha18lp1nxngny2dc9hiq1xx4r5d";
+      type = "gem";
+    };
+    version = "2.172.0";
+  };
+  gh_inspector = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f8r9byajj3bi2c7c5sqrc7m0zrv3nblfcd4782lw5l73cbsgk04";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  google-api-client = {
+    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "signet"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jybks8i00rxrxx9mkx90dbdk6pczh2w757wchlavmrkrk0dp9s1";
+      type = "gem";
+    };
+    version = "0.38.0";
+  };
+  google-apis-core = {
+    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "signet" "webrick"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "184pqw7z7s8mc1r5gj8f76xvp8z650xq50vdfj5gjwsbmzd99z2f";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  google-apis-iamcredentials_v1 = {
+    dependencies = ["google-apis-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xjlzq2fxpwvp9b6ajs8cpyjv8vs2d2npg9v23yj181hj2fnn82c";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  google-apis-storage_v1 = {
+    dependencies = ["google-apis-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0axycds5q20fqm6vqxa5r922021p0f8jhwvlgw8r1vq600ljribi";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  google-cloud-core = {
+    dependencies = ["google-cloud-env" "google-cloud-errors"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qjn7vs8f85vxi1nkikbjfja6bv9snrj26vzscjii0cm8n4dy0i1";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  google-cloud-env = {
+    dependencies = ["faraday"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bjgxyvagy6hjj8yg7fqq24rwdjxb6hx7fdd1bmn4mwd846lci2i";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  google-cloud-errors = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hvs1x39g77hbdqjxmzcl6gq8160pv3kskvzbbch0ww1np6qwm67";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  google-cloud-storage = {
+    dependencies = ["addressable" "digest-crc" "google-apis-iamcredentials_v1" "google-apis-storage_v1" "google-cloud-core" "googleauth" "mini_mime"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17axi5gmy0g04801v11lww5mvqzffqdc3w6k1j7f95v90hy4yn6m";
+      type = "gem";
+    };
+    version = "1.30.0";
+  };
+  googleauth = {
+    dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pwm0mzb5zffhk6yw4v3n1yj8qr6jla6f78vsv4g0bxh9z0ikc2z";
+      type = "gem";
+    };
+    version = "0.15.0";
+  };
+  highline = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
+      type = "gem";
+    };
+    version = "1.7.10";
+  };
+  http-cookie = {
+    dependencies = ["domain_name"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  httpclient = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+      type = "gem";
+    };
+    version = "2.8.3";
+  };
+  jmespath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
+      type = "gem";
+    };
+    version = "2.5.1";
+  };
+  jwt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  memoist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55";
+      type = "gem";
+    };
+    version = "0.16.2";
+  };
+  mini_magick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1aj604x11d9pksbljh0l38f70b558rhdgji1s9i763hiagvvx2hs";
+      type = "gem";
+    };
+    version = "4.11.0";
+  };
+  mini_mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  multipart-post = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  nanaimo = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xi36h3f7nm8bc2k0b6svpda1lyank2gf872lxjbhw3h95hdrbma";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  naturally = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04x1nkx6gkqzlc4phdvq05v3vjds6mgqhjqzqpcs6vdh5xyqrf59";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  os = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12fli64wz5j9868gpzv5wqsingk1jk457qyqksv9ksmq9b0zpc9x";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  plist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1whhr897z6z6av85x2cipyjk46bwh6s4wx6nbrcd3iifnzvbqs7l";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
+      type = "gem";
+    };
+    version = "13.0.3";
+  };
+  representable = {
+    dependencies = ["declarative" "declarative-option" "uber"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
+      type = "gem";
+    };
+    version = "3.0.4";
+  };
+  retriable = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
+  rouge = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sfikq1q8xyqqx690iiz7ybhzx87am4w50w8f2nq36l3asw4x89d";
+      type = "gem";
+    };
+    version = "2.0.7";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  rubyzip = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  security = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ryjxs0j66wrbky2c08yf0mllwalvpg12rpxzbdx2rdhj3cbrlxa";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  signet = {
+    dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10g2667fvxnc50hcd1aywgsbf8j7nrckg3n7zjvywmyz82pwmpqp";
+      type = "gem";
+    };
+    version = "0.14.0";
+  };
+  simctl = {
+    dependencies = ["CFPropertyList" "naturally"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v9rsdmg5c5kkf8ps47xnrfbvjnq11sbaifr186jwkh4npawz00x";
+      type = "gem";
+    };
+    version = "1.6.8";
+  };
+  slack-notifier = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pkfn99dhy5s526r6k8d87fwwb6j287ga9s7lxqmh60z28xqh3bv";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
+  terminal-notifier = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1slc0y8pjpw30hy21v8ypafi8r7z9jlj4bjbgz03b65b28i2n3bs";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  terminal-table = {
+    dependencies = ["unicode-display_width"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  tty-cursor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j5zw041jgkmn605ya1zc151bxgxl6v192v2i26qhxx7ws2l2lvr";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  tty-screen = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  tty-spinner = {
+    dependencies = ["tty-cursor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hh5awmijnzw9flmh5ak610x1d00xiqagxa5mbr63ysggc26y0qf";
+      type = "gem";
+    };
+    version = "0.9.3";
+  };
+  uber = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
+      type = "gem";
+    };
+    version = "0.0.7.7";
+  };
+  unicode-display_width = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  webrick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  word_wrap = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1iyc5bc7dbgsd8j3yk1i99ral39f23l6wapi0083fbl19hid8mpm";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  xcode-install = {
+    dependencies = ["claide" "fastlane"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yhslanqw8r0mhls2hira05c8xjzzr7mnz1ab9p5qwg4z45ddjj8";
+      type = "gem";
+    };
+    version = "2.6.8";
+  };
+  xcodeproj = {
+    dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1411j6sfnz0cx4fiw52f0yqx4bgcn8cmpgi3i5rwmmahayyjz2fn";
+      type = "gem";
+    };
+    version = "1.19.0";
+  };
+  xcpretty = {
+    dependencies = ["rouge"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xq47q2h5llj7b54rws4796904vnnjz7qqnacdv7wlp3gdbwrivm";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  xcpretty-travis-formatter = {
+    dependencies = ["xcpretty"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14rg4f70klrs910n7rsgfa4dn8s2qyny55194ax2qyyb2wpk7k5a";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/yaml2json/default.nix b/nixpkgs/pkgs/development/tools/yaml2json/default.nix
index 77f884b82b6a..543ed7fc3eaf 100644
--- a/nixpkgs/pkgs/development/tools/yaml2json/default.nix
+++ b/nixpkgs/pkgs/development/tools/yaml2json/default.nix
@@ -1,18 +1,16 @@
 { lib, buildGoPackage, fetchFromGitHub }:
 
 
-buildGoPackage {
+buildGoPackage rec {
   pname = "yaml2json";
-  version = "unstable-2017-05-03";
+  version = "1.3";
   goPackagePath = "github.com/bronze1man/yaml2json";
 
-  goDeps = ./deps.nix;
-
   src = fetchFromGitHub {
-    rev = "ee8196e587313e98831c040c26262693d48c1a0c";
     owner = "bronze1man";
     repo = "yaml2json";
-    sha256 = "16a2sqzbam5adbhfvilnpdabzwncs7kgpr0cn4gp09h2imzsprzw";
+    rev = "v${version}";
+    sha256 = "0bhjzl4qibiyvn56wcsm85f3vwnlzf4gywy2gq9mrnbrl629amq1";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/yaml2json/deps.nix b/nixpkgs/pkgs/development/tools/yaml2json/deps.nix
deleted file mode 100644
index f907520cc872..000000000000
--- a/nixpkgs/pkgs/development/tools/yaml2json/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "d670f9405373e636a5a2765eea47fac0c9bc91a4";
-      sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/tools/yq-go/default.nix b/nixpkgs/pkgs/development/tools/yq-go/default.nix
index 878661e74ce0..26e936143369 100644
--- a/nixpkgs/pkgs/development/tools/yq-go/default.nix
+++ b/nixpkgs/pkgs/development/tools/yq-go/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.4.1";
+  version = "4.6.3";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     rev = "v${version}";
     repo = "yq";
-    sha256 = "sha256-U1nMSwWKzPvyvxUx8J50AMB251ET4s9xcSrjGGjkYus=";
+    sha256 = "sha256-+qSGdskv8qUZRl7wYKn8WsgAcD8DYw1BwZnVKK6g/sI=";
   };
 
-  vendorSha256 = "sha256-CUELy6ajaoVzomY5lMen24DFJke3IyFzqWYyF7sws5g=";
+  vendorSha256 = "sha256-vpvIl1lfaziuoHs+oDEIztufH1somphiBAn6qTaQaZw=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/web/cog/default.nix b/nixpkgs/pkgs/development/web/cog/default.nix
index a3639e559f1c..5344c1b833ca 100644
--- a/nixpkgs/pkgs/development/web/cog/default.nix
+++ b/nixpkgs/pkgs/development/web/cog/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, fetchpatch
 , fetchFromGitHub
 , cmake
 , pkg-config
@@ -8,7 +7,6 @@
 , wayland-protocols
 , libwpe
 , libwpe-fdo
-, glib
 , glib-networking
 , webkitgtk
 , makeWrapper
diff --git a/nixpkgs/pkgs/development/web/cypress/default.nix b/nixpkgs/pkgs/development/web/cypress/default.nix
index 927414993231..2d04fc51c817 100644
--- a/nixpkgs/pkgs/development/web/cypress/default.nix
+++ b/nixpkgs/pkgs/development/web/cypress/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cypress";
-  version = "6.0.0";
+  version = "6.6.0";
 
   src = fetchzip {
     url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
-    sha256 = "0hii7kp48ba07gsd521wwl288p808xr2wqgk1iidxkzj2v6g71by";
+    sha256 = "13zw9gyaqna9d82mwrglab4dfx5y9faqf36d6xplq0z6vnzig1rg";
   };
 
   # don't remove runtime deps
diff --git a/nixpkgs/pkgs/development/web/deno/default.nix b/nixpkgs/pkgs/development/web/deno/default.nix
index 013b365bce8d..cdb34aab45c4 100644
--- a/nixpkgs/pkgs/development/web/deno/default.nix
+++ b/nixpkgs/pkgs/development/web/deno/default.nix
@@ -1,52 +1,49 @@
-{ lib, stdenv
-, fetchurl
+{ stdenv
+, lib
+, callPackage
 , fetchFromGitHub
 , rust
 , rustPlatform
 , installShellFiles
+, libobjc
 , Security
 , CoreServices
+, Metal
+, Foundation
+, librusty_v8 ? callPackage ./librusty_v8.nix { }
 }:
-let
-  deps = import ./deps.nix { };
-  arch = rust.toRustTarget stdenv.hostPlatform;
-  rustyV8Lib = with deps.rustyV8Lib; fetchurl {
-    url = "https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch}.a";
-    sha256 = sha256s."${stdenv.hostPlatform.system}";
-    meta = { inherit version; };
-  };
-in
+
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.6.3";
+  version = "1.8.3";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wmkx458fpsfw57ysawxc0ghxag8v051hiyswm7nnb7gckrm6j8z";
-    fetchSubmodules = true;
+    sha256 = "sha256-QkVDIpJ4VW3DpcwhydDnt68zxVXwkitIiN8blGlqX1g=";
   };
-  cargoSha256 = "08vzsp53019gmxkn8lpa6l84w3fvbrnr11lzrfgf99nmii6l2hq5";
+  cargoSha256 = "sha256-pf/4/H3wNORNvAswz8+7B3x5T5MyQgW7HgtDLBhfE/o=";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security CoreServices ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libobjc Security CoreServices Metal Foundation ];
 
   # The rusty_v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
   # To avoid this we pre-download the file and place it in the locations it will require it in advance
-  preBuild = ''
-    _rusty_v8_setup() {
-      for v in "$@"; do
-        dir="target/$v/gn_out/obj"
-        mkdir -p "$dir" && cp "${rustyV8Lib}" "$dir/librusty_v8.a"
-      done
-    }
+  preBuild =
+    let arch = rust.toRustTarget stdenv.hostPlatform; in
+    ''
+      _librusty_v8_setup() {
+        for v in "$@"; do
+          install -D ${librusty_v8} "target/$v/gn_out/obj/librusty_v8.a"
+        done
+      }
 
-    # Copy over the `librusty_v8.a` file inside target/XYZ/gn_out/obj, symlink not allowed
-    _rusty_v8_setup "debug" "release" "${arch}/release"
-  '';
+      # Copy over the `librusty_v8.a` file inside target/XYZ/gn_out/obj, symlink not allowed
+      _librusty_v8_setup "debug" "release" "${arch}/release"
+    '';
 
   # Tests have some inconsistencies between runs with output integration tests
   # Skipping until resolved
@@ -54,7 +51,7 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     # remove test plugin and test server
-    rm -rf $out/lib $out/bin/test_server
+    rm -r $out/lib $out/bin/test_server $out/bin/denort
 
     installShellCompletion --cmd deno \
       --bash <($out/bin/deno completions bash) \
@@ -62,11 +59,19 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/deno completions zsh)
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/deno --help
+    $out/bin/deno --version | grep "deno ${version}"
+    runHook postInstallCheck
+  '';
+
   passthru.updateScript = ./update/update.ts;
 
   meta = with lib; {
     homepage = "https://deno.land/";
-    changelog = "${src.meta.homepage}/releases/tag/v${version}";
+    changelog = "https://github.com/denoland/deno/releases/tag/v${version}";
     description = "A secure runtime for JavaScript and TypeScript";
     longDescription = ''
       Deno aims to be a productive and secure scripting environment for the modern programmer.
@@ -79,6 +84,6 @@ rustPlatform.buildRustPackage rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ jk ];
-    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/web/deno/deps.nix b/nixpkgs/pkgs/development/web/deno/deps.nix
deleted file mode 100644
index 4426c600df75..000000000000
--- a/nixpkgs/pkgs/development/web/deno/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# auto-generated file -- DO NOT EDIT!
-{}:
-rec {
-  rustyV8Lib = {
-    version = "0.15.0";
-    sha256s = {
-      x86_64-linux = "1j789pvqh44vsffzl5wg3pp3awrlixjrhbnjx2klsml7jv0lp0mq";
-      aarch64-linux = "13srja4vc275ygm806hcsr8mxjnd9qkzaqs58lxnp0702qs5xls6";
-      x86_64-darwin = "0aij9yb5i1r3pz0pyl51qdbgfspfdngwbk1qgkp4gxzl3cbnysx1";
-    };
-  };
-}
diff --git a/nixpkgs/pkgs/development/web/deno/librusty_v8.nix b/nixpkgs/pkgs/development/web/deno/librusty_v8.nix
new file mode 100644
index 000000000000..41c06fbf7ce0
--- /dev/null
+++ b/nixpkgs/pkgs/development/web/deno/librusty_v8.nix
@@ -0,0 +1,21 @@
+# auto-generated file -- DO NOT EDIT!
+{ rust, stdenv, fetchurl }:
+
+let
+  arch = rust.toRustTarget stdenv.hostPlatform;
+  fetch_librusty_v8 = args: fetchurl {
+    name = "librusty_v8-${args.version}";
+    url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${arch}.a";
+    sha256 = args.shas.${stdenv.hostPlatform.system};
+    meta = { inherit (args) version; };
+  };
+in
+fetch_librusty_v8 {
+  version = "0.21.0";
+  shas = {
+    x86_64-linux = "sha256-oxGCM6jlqafjAfTtFwARxBv/8tiUaD9A2TlLyj/3LlQ=";
+    aarch64-linux = "sha256-yeDcrxEp3qeE6/NWEc1v7VoHjlgppIOkcHTNVksXNsM=";
+    x86_64-darwin = "sha256-QqdBa59xPxM8eDRzvPxvv9HFVgp2rt+5jiwIOgsi8JE=";
+    aarch64-darwin = "sha256-aq2Kjn8QSDMhNg8pEbXkJCHUKmDTNnitq42SDDVyRd4=";
+  };
+}
diff --git a/nixpkgs/pkgs/development/web/deno/update/common.ts b/nixpkgs/pkgs/development/web/deno/update/common.ts
index d8956b21d163..1b4e3509ea7c 100644
--- a/nixpkgs/pkgs/development/web/deno/update/common.ts
+++ b/nixpkgs/pkgs/development/web/deno/update/common.ts
@@ -3,12 +3,15 @@ interface GHRelease {
 }
 
 const decode = (buffer: Uint8Array) => new TextDecoder("utf-8").decode(buffer);
-const run = async (command: string, args: string[]) => {
-  const cmd = Deno.run(
-    { cmd: [command, ...args], stdout: "piped", stderr: "piped" },
-  );
+const decodeTrim = (b: Uint8Array) => decode(b).trimEnd();
+export const run = async (command: string, args: string[]) => {
+  const cmd = Deno.run({
+    cmd: [command, ...args],
+    stdout: "piped",
+    stderr: "piped",
+  });
   if (!(await cmd.status()).success) {
-    const error = await cmd.stderrOutput().then((b) => decode(b).trimEnd());
+    const error = await cmd.stderrOutput().then(decodeTrim);
     // Known error we can ignore
     if (error.includes("'allow-unsafe-native-code-during-evaluation'")) {
       // Extract the target sha256 out of the error
@@ -23,26 +26,16 @@ const run = async (command: string, args: string[]) => {
     }
     throw new Error(error);
   }
-  return cmd.output().then((b) => decode(b).trimEnd());
+  return cmd.output().then(decodeTrim);
 };
 
 // Exports
 export const versionRegExp = /\d+\.\d+\.\d+/;
-export const sha256RegExp = /[a-z0-9]{52}/;
-
-export async function commit(
-  name: string,
-  oldVer: string,
-  newVer: string,
-  files: string[],
-) {
-  await run("git", ["add", ...files]);
-  await run("git", ["commit", "-m", `${name}: ${oldVer} -> ${newVer}`]);
-}
+export const sha256RegExp = /[a-z0-9]{52}|sha256-.{44}/;
 
 export const getExistingVersion = async (filePath: string) =>
-  read(filePath).then((s) =>
-    s.match(genValueRegExp("version", versionRegExp))?.shift() || ""
+  read(filePath).then(
+    (s) => s.match(genValueRegExp("version", versionRegExp))?.shift() || "",
   );
 
 export const getLatestVersion = (owner: string, repo: string) =>
@@ -58,8 +51,5 @@ export const genValueRegExp = (key: string, regex: RegExp) =>
 export const logger = (name: string) =>
   (...a: any) => console.log(`[${name}]`, ...a);
 
-export const nixPrefetch = (args: string[]) => run("nix-prefetch", args);
-export const nixPrefetchURL = (args: string[]) => run("nix-prefetch-url", args);
-
 export const read = Deno.readTextFile;
 export const write = Deno.writeTextFile;
diff --git a/nixpkgs/pkgs/development/web/deno/update/deps.ts b/nixpkgs/pkgs/development/web/deno/update/deps.ts
deleted file mode 100644
index beedeade3a86..000000000000
--- a/nixpkgs/pkgs/development/web/deno/update/deps.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-import {
-  getExistingVersion,
-  genValueRegExp,
-  logger,
-  nixPrefetchURL,
-  versionRegExp,
-  write,
-} from "./common.ts";
-
-const log = logger("deps");
-
-export interface Architecture {
-  nix: string;
-  rust: string;
-}
-interface PrefetchResult {
-  arch: Architecture;
-  sha256: string;
-}
-
-const getRustyV8Version = async (
-  owner: string,
-  repo: string,
-  version: string,
-) =>
-  fetch(
-    `https://github.com/${owner}/${repo}/raw/${version}/core/Cargo.toml`,
-  )
-    .then((res) => res.text())
-    .then((txt) =>
-      txt.match(genValueRegExp("rusty_v8", versionRegExp))?.shift()
-    );
-
-const archShaTasks = (version: string, arches: Architecture[]) =>
-  arches.map(async (arch: Architecture): Promise<PrefetchResult> => {
-    log("Fetching:", arch.nix);
-    const sha256 = await nixPrefetchURL(
-      [`https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch.rust}.a`],
-    );
-    log("Done:    ", arch.nix);
-    return { arch, sha256 };
-  });
-
-const templateDeps = (version: string, deps: PrefetchResult[]) =>
-  `# auto-generated file -- DO NOT EDIT!
-{}:
-rec {
-  rustyV8Lib = {
-    version = "${version}";
-    sha256s = {
-${deps.map((d) => `      ${d.arch.nix} = "${d.sha256}";`).join("\n")}
-    };
-  };
-}
-`;
-
-export async function updateDeps(
-  filePath: string,
-  owner: string,
-  repo: string,
-  denoVersion: string,
-  arches: Architecture[],
-) {
-  log("Starting deps update");
-  // 0.0.0
-  const version = await getRustyV8Version(owner, repo, denoVersion);
-  if (typeof version !== "string") {
-    throw "no rusty_v8 version";
-  }
-  log("rusty_v8 version:", version);
-  const existingVersion = await getExistingVersion(filePath);
-  if (version === existingVersion) {
-    log("Version already matches latest, skipping...");
-    return;
-  }
-  const archShaResults = await Promise.all(archShaTasks(version, arches));
-  await write(filePath, templateDeps(version, archShaResults));
-  log("Finished deps update");
-}
diff --git a/nixpkgs/pkgs/development/web/deno/update/librusty_v8.ts b/nixpkgs/pkgs/development/web/deno/update/librusty_v8.ts
new file mode 100644
index 000000000000..dee3277c5812
--- /dev/null
+++ b/nixpkgs/pkgs/development/web/deno/update/librusty_v8.ts
@@ -0,0 +1,92 @@
+import {
+  genValueRegExp,
+  getExistingVersion,
+  logger,
+  run,
+  versionRegExp,
+  write,
+} from "./common.ts";
+
+const log = logger("librusty_v8");
+
+export interface Architecture {
+  nix: string;
+  rust: string;
+}
+interface PrefetchResult {
+  arch: Architecture;
+  sha256: string;
+}
+
+const getLibrustyV8Version = async (
+  owner: string,
+  repo: string,
+  version: string,
+) =>
+  fetch(`https://github.com/${owner}/${repo}/raw/${version}/core/Cargo.toml`)
+    .then((res) => res.text())
+    .then((txt) =>
+      txt.match(genValueRegExp("rusty_v8", versionRegExp))?.shift()
+    );
+
+const fetchArchShaTasks = (version: string, arches: Architecture[]) =>
+  arches.map(
+    async (arch: Architecture): Promise<PrefetchResult> => {
+      log("Fetching:", arch.nix);
+      const sha256 = await run("nix-prefetch", [
+        `
+{ fetchurl }:
+fetchurl {
+  url = "https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch.rust}.a";
+}
+`,
+      ]);
+      log("Done:    ", arch.nix);
+      return { arch, sha256 };
+    },
+  );
+
+const templateDeps = (version: string, deps: PrefetchResult[]) =>
+  `# auto-generated file -- DO NOT EDIT!
+{ rust, stdenv, fetchurl }:
+
+let
+  arch = rust.toRustTarget stdenv.hostPlatform;
+  fetch_librusty_v8 = args: fetchurl {
+    name = "librusty_v8-\${args.version}";
+    url = "https://github.com/denoland/rusty_v8/releases/download/v\${args.version}/librusty_v8_release_\${arch}.a";
+    sha256 = args.shas.\${stdenv.hostPlatform.system};
+    meta = { inherit (args) version; };
+  };
+in
+fetch_librusty_v8 {
+  version = "${version}";
+  shas = {
+${deps.map(({ arch, sha256 }) => `    ${arch.nix} = "${sha256}";`).join("\n")}
+  };
+}
+`;
+
+export async function updateLibrustyV8(
+  filePath: string,
+  owner: string,
+  repo: string,
+  denoVersion: string,
+  arches: Architecture[],
+) {
+  log("Starting librusty_v8 update");
+  // 0.0.0
+  const version = await getLibrustyV8Version(owner, repo, denoVersion);
+  if (typeof version !== "string") {
+    throw "no librusty_v8 version";
+  }
+  log("librusty_v8 version:", version);
+  const existingVersion = await getExistingVersion(filePath);
+  if (version === existingVersion) {
+    log("Version already matches latest, skipping...");
+    return;
+  }
+  const archShaResults = await Promise.all(fetchArchShaTasks(version, arches));
+  await write(filePath, templateDeps(version, archShaResults));
+  log("Finished deps update");
+}
diff --git a/nixpkgs/pkgs/development/web/deno/update/src.ts b/nixpkgs/pkgs/development/web/deno/update/src.ts
index fae15acd0d2c..3bfae27c21c3 100644
--- a/nixpkgs/pkgs/development/web/deno/update/src.ts
+++ b/nixpkgs/pkgs/development/web/deno/update/src.ts
@@ -1,8 +1,8 @@
 import {
   genValueRegExp,
   logger,
-  nixPrefetch,
   read,
+  run,
   sha256RegExp,
   versionRegExp,
   write,
@@ -16,10 +16,11 @@ interface Replacer {
 const log = logger("src");
 
 const prefetchSha256 = (nixpkgs: string, version: string) =>
-  nixPrefetch(["-f", nixpkgs, "deno.src", "--rev", version]);
+  run("nix-prefetch", ["-f", nixpkgs, "deno.src", "--rev", version]);
 const prefetchCargoSha256 = (nixpkgs: string) =>
-  nixPrefetch(
-    [`{ sha256 }: (import ${nixpkgs} {}).deno.cargoDeps.overrideAttrs (_: { outputHash = sha256; })`],
+  run(
+    "nix-prefetch",
+    [`{ sha256 }: (import ${nixpkgs} {}).deno.cargoDeps.overrideAttrs (_: { inherit sha256; })`],
   );
 
 const replace = (str: string, replacers: Replacer[]) =>
@@ -53,7 +54,6 @@ export async function updateSrc(
     [
       genVerReplacer("version", trimVersion),
       genShaReplacer("sha256", sha256),
-      genShaReplacer("cargoSha256", ""), // Empty ready for prefetchCargoSha256
     ],
   );
   log("Fetching cargoSha256 for:", sha256);
diff --git a/nixpkgs/pkgs/development/web/deno/update/update.ts b/nixpkgs/pkgs/development/web/deno/update/update.ts
index 18d451480137..27e1d86ee861 100755
--- a/nixpkgs/pkgs/development/web/deno/update/update.ts
+++ b/nixpkgs/pkgs/development/web/deno/update/update.ts
@@ -2,13 +2,8 @@
 /*
 #!nix-shell -i "deno run --allow-net --allow-run --allow-read --allow-write" -p deno git nix-prefetch
 */
-import {
-  commit,
-  getExistingVersion,
-  getLatestVersion,
-  logger,
-} from "./common.ts";
-import { Architecture, updateDeps } from "./deps.ts";
+import { getExistingVersion, getLatestVersion, logger } from "./common.ts";
+import { Architecture, updateLibrustyV8 } from "./librusty_v8.ts";
 import { updateSrc } from "./src.ts";
 
 const log = logger("update");
@@ -19,11 +14,12 @@ const owner = "denoland";
 const repo = "deno";
 const denoDir = `${nixpkgs}/pkgs/development/web/${repo}`;
 const src = `${denoDir}/default.nix`;
-const deps = `${denoDir}/deps.nix`;
+const librusty_v8 = `${denoDir}/librusty_v8.nix`;
 const architectures: Architecture[] = [
   { nix: "x86_64-linux", rust: "x86_64-unknown-linux-gnu" },
   { nix: "aarch64-linux", rust: "aarch64-unknown-linux-gnu" },
   { nix: "x86_64-darwin", rust: "x86_64-apple-darwin" },
+  { nix: "aarch64-darwin", rust: "aarch64-apple-darwin" },
 ];
 
 log("Updating deno");
@@ -41,10 +37,7 @@ if (trimVersion === existingVersion) {
 
 const tasks = [
   updateSrc(src, nixpkgs, version),
-  updateDeps(deps, owner, repo, version, architectures),
+  updateLibrustyV8(librusty_v8, owner, repo, version, architectures),
 ];
 await Promise.all(tasks);
 log("Updating deno complete");
-log("Commiting");
-await commit(repo, existingVersion, trimVersion, [src, deps]);
-log("Done");
diff --git a/nixpkgs/pkgs/development/web/grails/default.nix b/nixpkgs/pkgs/development/web/grails/default.nix
index 944520b47e2f..2a888b8056d0 100644
--- a/nixpkgs/pkgs/development/web/grails/default.nix
+++ b/nixpkgs/pkgs/development/web/grails/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     sha256 = "0l99x3g485qjpdd7ga553xpi1s6rq21p8v16qjzqwdhyld961qsr";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/development/web/insomnia/default.nix b/nixpkgs/pkgs/development/web/insomnia/default.nix
index b3a9ac0ce715..345b7c15426d 100644
--- a/nixpkgs/pkgs/development/web/insomnia/default.nix
+++ b/nixpkgs/pkgs/development/web/insomnia/default.nix
@@ -16,12 +16,12 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "insomnia";
-  version = "2020.5.2";
+  version = "2021.1.1";
 
   src = fetchurl {
     url =
       "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.deb";
-    sha256 = "03j76a0dj3ak5h6malwxqf7cdc2ycwgyr6993bhiq75yhxhblhc4";
+    sha256 = "sha256-GPOeLSbKiaJR5ppzyJMllzM+2gSddZN7+P5ttkocuDg=";
   };
 
   nativeBuildInputs =
diff --git a/nixpkgs/pkgs/development/web/lucky-cli/shard.lock b/nixpkgs/pkgs/development/web/lucky-cli/shard.lock
index 47c40af8c7df..f0808622bcf1 100644
--- a/nixpkgs/pkgs/development/web/lucky-cli/shard.lock
+++ b/nixpkgs/pkgs/development/web/lucky-cli/shard.lock
@@ -2,7 +2,7 @@ version: 2.0
 shards:
   ameba:
     git: https://github.com/crystal-ameba/ameba.git
-    version: 0.13.3
+    version: 0.14.2
 
   future:
     git: https://github.com/crystal-community/future.cr.git
diff --git a/nixpkgs/pkgs/development/web/lucky-cli/shards.nix b/nixpkgs/pkgs/development/web/lucky-cli/shards.nix
index 2741583b681a..b4f100518b3f 100644
--- a/nixpkgs/pkgs/development/web/lucky-cli/shards.nix
+++ b/nixpkgs/pkgs/development/web/lucky-cli/shards.nix
@@ -2,8 +2,8 @@
   ameba = {
     owner = "crystal-ameba";
     repo = "ameba";
-    rev = "v0.13.3";
-    sha256 = "0yhb8vfrfzsm3a45h2jmcrn1n7jy3zn2hwims3dikgq8kaggws9y";
+    rev = "v0.14.2";
+    sha256 = "1l1q1icpzg1zvhfj8948w36j7ikaj7w816677zi29vi6y2d1dmf2";
   };
   future = {
     owner = "crystal-community";
diff --git a/nixpkgs/pkgs/development/web/nodejs/nodejs.nix b/nixpkgs/pkgs/development/web/nodejs/nodejs.nix
index 68232088fa9b..09d15901ada8 100644
--- a/nixpkgs/pkgs/development/web/nodejs/nodejs.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/nodejs.nix
@@ -55,12 +55,12 @@ in
     buildInputs = optionals stdenv.isDarwin [ CoreServices ApplicationServices ]
       ++ [ zlib libuv openssl http-parser icu ];
 
-    nativeBuildInputs = [ which util-linux pkg-config python ]
+    nativeBuildInputs = [ which pkg-config python ]
       ++ optionals stdenv.isDarwin [ xcbuild ];
 
     configureFlags = let
       isCross = stdenv.hostPlatform != stdenv.buildPlatform;
-      inherit (stdenv.hostPlatform) gcc isArch32;
+      inherit (stdenv.hostPlatform) gcc isAarch32;
     in sharedConfigureFlags ++ [
       "--without-dtrace"
     ] ++ (optionals isCross [
diff --git a/nixpkgs/pkgs/development/web/nodejs/v10.nix b/nixpkgs/pkgs/development/web/nodejs/v10.nix
index 495ac311b88d..abb10aa44479 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v10.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v10.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "10.23.3";
-    sha256 = "13za06bz17k71gcxyrx41l2j8al1kr3j627b8m7kqrf3l7rdfnsi";
+    version = "10.24.0";
+    sha256 = "1k1srdis23782hnd1ymgczs78x9gqhv77v0am7yb54gqcspp70hm";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/nixpkgs/pkgs/development/web/nodejs/v12.nix b/nixpkgs/pkgs/development/web/nodejs/v12.nix
index 9c5975a6e490..fc9a170dd90d 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v12.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v12.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "12.20.2";
-    sha256 = "0g3dxip7b5j7fzkw4b82ln93fphxn1zpdizbj1ikjv3hy00dc6ln";
+    version = "12.22.0";
+    sha256 = "08xsc1pw6352v5lz92ppfhrcmqnbm6m5wmjfs9frz26lp875yp6z";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/nixpkgs/pkgs/development/web/nodejs/v14.nix b/nixpkgs/pkgs/development/web/nodejs/v14.nix
index ee8ea72c05ea..9a40bf8654d7 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v14.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v14.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "14.15.5";
-    sha256 = "0nv576mlmnf8pfs6yn7vsvwyg0a0xvs7m9pm4k131zjqx501v6z1";
+    version = "14.16.0";
+    sha256 = "19nz2mhmn6ikahxqyna1dn25pb5v3z9vsz9zb2flb6zp2yk4hxjf";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/nixpkgs/pkgs/development/web/nodejs/v15.nix b/nixpkgs/pkgs/development/web/nodejs/v15.nix
index 2c2634959bdf..d22c2f213b91 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v15.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v15.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "15.8.0";
-    sha256 = "1a9h88zdzk98k618jascfrivq3v51viw60sfyxn0ci0l33vf4fp2";
+    version = "15.14.0";
+    sha256 = "0vm6jdazqjd1plqsgngzvjrafv2d3mdahk6il4ray02gx97dq8l1";
   }
diff --git a/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix b/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix
index ca211ccf2d9b..b8a9f94a23f0 100644
--- a/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix
+++ b/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-CiEUUa0mCrUSp+XCoWNs8plJxhWHZZD+K+UBJSDu1CM=";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   dontBuild = true;
   installPhase = ''
diff --git a/nixpkgs/pkgs/games/0ad/data.nix b/nixpkgs/pkgs/games/0ad/data.nix
index 1bebf922c48d..5cb28b3f3bd6 100644
--- a/nixpkgs/pkgs/games/0ad/data.nix
+++ b/nixpkgs/pkgs/games/0ad/data.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://releases.wildfiregames.com/0ad-${version}-alpha-unix-data.tar.xz";
-    sha256 = "04x7729hk6zw1xj3n4s4lvaviijsnbjf5rhzvjxlr5fygvg4l6z1";
+    sha256 = "0b53jzl64i49rk3n3c3x0hibwbl7vih2xym8jq5s56klg61qdxa1";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/games/0ad/game.nix b/nixpkgs/pkgs/games/0ad/game.nix
index 1ba975aa8854..bb3b7c0138af 100644
--- a/nixpkgs/pkgs/games/0ad/game.nix
+++ b/nixpkgs/pkgs/games/0ad/game.nix
@@ -1,29 +1,45 @@
-{ stdenv, lib, perl, fetchurl, python2
-, pkg-config, spidermonkey_38, boost, icu, libxml2, libpng, libsodium
+{ stdenv, lib, perl, fetchurl, python2, fmt, libidn
+, pkg-config, spidermonkey_78, boost, icu, libxml2, libpng, libsodium
 , libjpeg, zlib, curl, libogg, libvorbis, enet, miniupnpc
 , openal, libGLU, libGL, xorgproto, libX11, libXcursor, nspr, SDL2
-, gloox, nvidia-texture-tools
-, withEditor ? true, wxGTK ? null
+, gloox, nvidia-texture-tools, zeroad-data
+, withEditor ? true, wxGTK
 }:
 
-assert withEditor -> wxGTK != null;
-
+# You can find more instructions on how to build 0ad here:
+#    https://trac.wildfiregames.com/wiki/BuildInstructions
+
+let
+  # the game requires a special version 78.6.0 of spidermonkey, otherwise
+  # we get compilation errors. We override the src attribute of spidermonkey_78
+  # in order to reuse that declartion, while giving it a different source input.
+  spidermonkey_78_6 = spidermonkey_78.overrideAttrs(old: rec {
+    version = "78.6.0";
+    src = fetchurl {
+      url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
+      sha256 = "0lyg65v380j8i2lrylwz8a5ya80822l8vcnlx3dfqpd3s6zzjsay";
+    };
+    patches = (old.patches or []) ++ [
+      ./spidermonkey-cargo-toml.patch
+    ];
+  });
+in
 stdenv.mkDerivation rec {
   pname = "0ad";
-  version = "0.0.23b";
+  version = "0.0.24b";
 
   src = fetchurl {
     url = "http://releases.wildfiregames.com/0ad-${version}-alpha-unix-build.tar.xz";
-    sha256 = "0draa53xg69i5qhqym85658m45xhwkbiimaldj4sr3703rjgggq1";
+    sha256 = "1a1py45hkh2cswi09vbf9chikgxdv9xplsmg6sv6xhdznv4j6p1j";
   };
 
   nativeBuildInputs = [ python2 perl pkg-config ];
 
   buildInputs = [
-    spidermonkey_38 boost icu libxml2 libpng libjpeg
-    zlib curl libogg libvorbis enet miniupnpc openal
+    spidermonkey_78_6 boost icu libxml2 libpng libjpeg
+    zlib curl libogg libvorbis enet miniupnpc openal libidn
     libGLU libGL xorgproto libX11 libXcursor nspr SDL2 gloox
-    nvidia-texture-tools libsodium
+    nvidia-texture-tools libsodium fmt
   ] ++ lib.optional withEditor wxGTK;
 
   NIX_CFLAGS_COMPILE = toString [
@@ -31,35 +47,22 @@ stdenv.mkDerivation rec {
     "-I${libX11.dev}/include/X11"
     "-I${libXcursor.dev}/include/X11"
     "-I${SDL2}/include/SDL2"
-  ];
-
-  patches = [
-    ./rootdir_env.patch
-    # Fixes build with spidermonkey-38.8.0, includes the minor version check:
-    # https://src.fedoraproject.org/rpms/0ad/c/26dc1657f6e3c0ad9f1180ca38cd79b933ef0c8b
-    (fetchurl {
-      url = "https://src.fedoraproject.org/rpms/0ad/raw/26dc1657f6e3c0ad9f1180ca38cd79b933ef0c8b/f/0ad-mozjs-incompatible.patch";
-      sha256 = "1rzpaalcrzihsgvlk3nqd87n2kxjldlwvb3qp5fcd5ffzr6k90wa";
-    })
+    "-I${fmt.dev}/include"
   ];
 
   configurePhase = ''
     # Delete shipped libraries which we don't need.
     rm -rf libraries/source/{enet,miniupnpc,nvtt,spidermonkey}
 
-    # Workaround invalid pkg-config name for mozjs
-    mkdir pkg-config
-    ln -s ${spidermonkey_38}/lib/pkgconfig/* pkg-config/mozjs-38.pc
-    PKG_CONFIG_PATH="$PWD/pkg-config:$PKG_CONFIG_PATH"
-
     # Update Makefiles
     pushd build/workspaces
     ./update-workspaces.sh \
       --with-system-nvtt \
-      --with-system-mozjs38 \
+      --with-system-mozjs \
       ${lib.optionalString withEditor "--enable-atlas"} \
       --bindir="$out"/bin \
       --libdir="$out"/lib/0ad \
+      --datadir="$out"/share/0ad/data \
       --without-tests \
       -j $NIX_BUILD_CORES
     popd
@@ -82,6 +85,11 @@ stdenv.mkDerivation rec {
     # Copy l10n data.
     install -Dm755 -t $out/share/0ad/data/l10n binaries/data/l10n/*
 
+    # Link in game data from package
+    ln -s ${zeroad-data}/share/0ad/data/config $out/share/0ad/data/config
+    ln -s ${zeroad-data}/share/0ad/data/mods $out/share/0ad/data/mods
+    ln -s ${zeroad-data}/share/0ad/data/tools $out/share/0ad/data/tools
+
     # Copy libraries.
     install -Dm644 -t $out/lib/0ad        binaries/system/*.so
 
diff --git a/nixpkgs/pkgs/games/0ad/rootdir_env.patch b/nixpkgs/pkgs/games/0ad/rootdir_env.patch
deleted file mode 100644
index c001473e5104..000000000000
--- a/nixpkgs/pkgs/games/0ad/rootdir_env.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -ru3 0ad-0.0.20-alpha/source/ps/GameSetup/Paths.cpp 0ad-0.0.20-alpha-new/source/ps/GameSetup/Paths.cpp
---- 0ad-0.0.20-alpha/source/ps/GameSetup/Paths.cpp	2015-02-14 04:45:13.000000000 +0300
-+++ 0ad-0.0.20-alpha-new/source/ps/GameSetup/Paths.cpp	2016-11-03 16:23:47.241514876 +0300
-@@ -155,32 +155,8 @@
- 
- /*static*/ OsPath Paths::Root(const OsPath& argv0)
- {
--#if OS_ANDROID
--	return OsPath("/sdcard/0ad"); // TODO: this is kind of bogus
--#else
--
--	// get full path to executable
--	OsPath pathname = sys_ExecutablePathname();	// safe, but requires OS-specific implementation
--	if(pathname.empty())	// failed, use argv[0] instead
--	{
--		errno = 0;
--		pathname = wrealpath(argv0);
--		if(pathname.empty())
--			WARN_IF_ERR(StatusFromErrno());
--	}
--
--	// make sure it's valid
--	if(!FileExists(pathname))
--	{
--		LOGERROR("Cannot find executable (expected at '%s')", pathname.string8());
--		WARN_IF_ERR(StatusFromErrno());
--	}
--
--	for(size_t i = 0; i < 2; i++)	// remove "system/name.exe"
--		pathname = pathname.Parent();
--	return pathname;
--
--#endif
-+	UNUSED2(argv0);
-+	return getenv("ZEROAD_ROOTDIR");
- }
- 
- /*static*/ OsPath Paths::RootData(const OsPath& argv0)
diff --git a/nixpkgs/pkgs/games/0ad/spidermonkey-cargo-toml.patch b/nixpkgs/pkgs/games/0ad/spidermonkey-cargo-toml.patch
new file mode 100644
index 000000000000..4cb8c3735dbd
--- /dev/null
+++ b/nixpkgs/pkgs/games/0ad/spidermonkey-cargo-toml.patch
@@ -0,0 +1,15 @@
+diff --git a/Cargo.toml b/Cargo.toml
+index 6f6199ab26..c3f92db9d8 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -68,8 +68,8 @@ panic = "abort"
+ libudev-sys = { path = "dom/webauthn/libudev-sys" }
+ packed_simd = { git = "https://github.com/hsivonen/packed_simd", rev="3541e3818fdc7c2a24f87e3459151a4ce955a67a" }
+ rlbox_lucet_sandbox = { git = "https://github.com/PLSysSec/rlbox_lucet_sandbox/", rev="d510da5999a744c563b0acd18056069d1698273f" }
+-nix = { git = "https://github.com/shravanrn/nix/", branch = "r0.13.1", rev="4af6c367603869a30fddb5ffb0aba2b9477ba92e" }
+-spirv_cross = { git = "https://github.com/kvark/spirv_cross", branch = "wgpu3", rev = "20191ad2f370afd6d247edcb9ff9da32d3bedb9c" }
++nix = { git = "https://github.com/shravanrn/nix/", branch = "r0.13.1" }
++spirv_cross = { git = "https://github.com/kvark/spirv_cross", branch = "wgpu3" }
+ # failure's backtrace feature might break our builds, see bug 1608157.
+ failure = { git = "https://github.com/badboy/failure", rev = "64af847bc5fdcb6d2438bec8a6030812a80519a5" }
+ failure_derive = { git = "https://github.com/badboy/failure", rev = "64af847bc5fdcb6d2438bec8a6030812a80519a5" }
diff --git a/nixpkgs/pkgs/games/20kly/default.nix b/nixpkgs/pkgs/games/20kly/default.nix
index 092e0e4eac27..0cc61367e28e 100644
--- a/nixpkgs/pkgs/games/20kly/default.nix
+++ b/nixpkgs/pkgs/games/20kly/default.nix
@@ -1,16 +1,19 @@
 { lib
-, fetchurl
-, python }:
+, fetchFromGitHub
+, python3Packages
+}:
 
-python.pkgs.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "20kly";
-  version = "1.4";
+  version = "1.5.0";
+
   format = "other";
-  disabled = !(python.isPy2 or false);
 
-  src = fetchurl {
-    url = "http://jwhitham.org.uk/20kly/lightyears-${version}.tar.bz2";
-    sha256 = "13h73cmfjqkipffimfc4iv0hf89if490ng6vd6xf3wcalpgaim5d";
+  src = fetchFromGitHub {
+    owner = "20kly";
+    repo = "20kly";
+    rev = "v${version}";
+    sha256 = "1zxsxg49a02k7zidx3kgk2maa0vv0n1f9wrl5vch07sq3ghvpphx";
   };
 
   patchPhase = ''
@@ -20,21 +23,24 @@ python.pkgs.buildPythonApplication rec {
         "LIGHTYEARS_DIR = \"$out/share\""
   '';
 
-  propagatedBuildInputs = with python.pkgs; [ pygame ];
+  propagatedBuildInputs = with python3Packages; [
+    pygame
+  ];
 
-  buildPhase = "python -O -m compileall .";
+  buildPhase = ''
+    python -O -m compileall .
+  '';
 
   installPhase = ''
     mkdir -p "$out/share"
-    cp -r audio code data lightyears "$out/share"
+    cp -r data lib20k lightyears "$out/share"
     install -Dm755 lightyears "$out/bin/lightyears"
   '';
 
   meta = with lib; {
     description = "A steampunk-themed strategy game where you have to manage a steam supply network";
     homepage = "http://jwhitham.org.uk/20kly/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ fgaz ];
   };
 }
-
diff --git a/nixpkgs/pkgs/games/airstrike/default.nix b/nixpkgs/pkgs/games/airstrike/default.nix
index f45ac2f01532..12b485764a5b 100644
--- a/nixpkgs/pkgs/games/airstrike/default.nix
+++ b/nixpkgs/pkgs/games/airstrike/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1h6rv2zcp84ycmd0kv1pbpqjgwx57dw42x7878d2c2vnpi5jn8qi";
   };
 
-  buildInputs = [ makeWrapper SDL SDL_image ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ SDL SDL_image ];
 
   NIX_LDFLAGS = "-lm";
 
diff --git a/nixpkgs/pkgs/games/among-sus/default.nix b/nixpkgs/pkgs/games/among-sus/default.nix
index 1ec0a42ea18e..454c7d181f95 100644
--- a/nixpkgs/pkgs/games/among-sus/default.nix
+++ b/nixpkgs/pkgs/games/among-sus/default.nix
@@ -1,11 +1,12 @@
-{ lib, stdenv, fetchgit, port ? "1234" }:
+{ lib, stdenv, fetchFromSourcehut, port ? "1234" }:
 
 stdenv.mkDerivation {
   pname = "among-sus-unstable";
   version = "2020-10-29";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~martijnbraam/among-sus";
+  src = fetchFromSourcehut {
+    owner = "~martijnbraam";
+    repo = "among-sus";
     rev = "1f4c8d800d025d36ac66826937161be3252fbc57";
     sha256 = "19jq7ygh9l11dl1h6702bg57m04y35nqd6yqx1rgp1kxwhp45xyh";
   };
diff --git a/nixpkgs/pkgs/games/angband/default.nix b/nixpkgs/pkgs/games/angband/default.nix
index ddf3c62307d3..e14629dce8fc 100644
--- a/nixpkgs/pkgs/games/angband/default.nix
+++ b/nixpkgs/pkgs/games/angband/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "angband";
-  version = "4.2.1";
+  version = "4.2.2";
 
   src = fetchFromGitHub {
     owner = "angband";
     repo = "angband";
     rev = version;
-    sha256 = "174fphiywwb4yb3kqavwaysx7c97an2n8wjbm4p4d41i1svjsryz";
+    sha256 = "sha256-z1HTt3+lWIr2F9YZFdw47lkYVgYl17qbb/OJ9YyYQa8=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/games/anki/bin.nix b/nixpkgs/pkgs/games/anki/bin.nix
index 5509d8a90caf..f5677b142e28 100644
--- a/nixpkgs/pkgs/games/anki/bin.nix
+++ b/nixpkgs/pkgs/games/anki/bin.nix
@@ -3,14 +3,14 @@
 let
   pname = "anki-bin";
   # Update hashes for both Linux and Darwin!
-  version = "2.1.38";
+  version = "2.1.40";
 
   unpacked = stdenv.mkDerivation {
     inherit pname version;
 
     src = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux.tar.bz2";
-      sha256 = "14zbz8k142djka3b5sld3368m98lj80c39m6xg87bz140h25ylz4";
+      sha256 = "0zcvjm0dv3mjln2npv415yfaa1fykif738qkis52x3pq1by2aiam";
     };
 
     installPhase = ''
@@ -49,7 +49,7 @@ if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // {
 
   src = fetchurl {
     url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac.dmg";
-    sha256 = "1krl014jhhby0zv4if9cgbcarmhcg6zccyhxw1yb6djiqap0zii7";
+    sha256 = "14f0sp9h963qix4wa0kg7z8a2nhch9aybv736rm55aqk6mady6vi";
   };
 
   nativeBuildInputs = [ undmg ];
diff --git a/nixpkgs/pkgs/games/antsimulator/default.nix b/nixpkgs/pkgs/games/antsimulator/default.nix
new file mode 100644
index 000000000000..b43b91d5cb99
--- /dev/null
+++ b/nixpkgs/pkgs/games/antsimulator/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, cmake, sfml }:
+
+stdenv.mkDerivation rec {
+  pname = "antsimulator";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "johnBuffer";
+    repo = "AntSimulator";
+    rev = "v${version}";
+    sha256 = "0wz80971rf86kb7mcnxwrq75vriwhmyir5s5n3wzml12rzfnj5f1";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ sfml ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -Dm755 ./AntSimulator $out/bin/antsimulator
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/johnBuffer/AntSimulator";
+    description = "Simple Ants simulator";
+    license = licenses.free;
+    maintainers = with maintainers; [ ivar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/asc/default.nix b/nixpkgs/pkgs/games/asc/default.nix
index 9e9f188bf1b0..778f5224d2d8 100644
--- a/nixpkgs/pkgs/games/asc/default.nix
+++ b/nixpkgs/pkgs/games/asc/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--disable-paragui" "--disable-paraguitest" ];
 
-  NIX_CFLAGS_COMPILE = "-fpermissive"; # I'm too lazy to catch all gcc47-related problems
+  NIX_CFLAGS_COMPILE = "-fpermissive -Wno-error=narrowing"; # I'm too lazy to catch all gcc47-related problems
   hardeningDisable = [ "format" ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/games/assaultcube/default.nix b/nixpkgs/pkgs/games/assaultcube/default.nix
index 0206821f3873..a2c00ddc149b 100644
--- a/nixpkgs/pkgs/games/assaultcube/default.nix
+++ b/nixpkgs/pkgs/games/assaultcube/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ file zlib ] ++ optionals client [ openal SDL SDL_image libogg libvorbis ];
 
   targets = (optionalString server "server") + (optionalString client " client");
-  makeFlags = [ "-C source/src" "CXX=c++" targets ];
+  makeFlags = [ "-C source/src" "CXX=${stdenv.cc.targetPrefix}c++" targets ];
 
   desktop = makeDesktopItem {
     name = "AssaultCube";
diff --git a/nixpkgs/pkgs/games/black-hole-solver/default.nix b/nixpkgs/pkgs/games/black-hole-solver/default.nix
new file mode 100644
index 000000000000..e859e72d96b1
--- /dev/null
+++ b/nixpkgs/pkgs/games/black-hole-solver/default.nix
@@ -0,0 +1,30 @@
+{
+  stdenv, lib, fetchurl,
+  cmake, perl, pkg-config, python3,
+  rinutils, PathTiny,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "black-hole-solver";
+  version = "1.10.1";
+
+  meta = with lib; {
+    homepage = "https://www.shlomifish.org/open-source/projects/black-hole-solitaire-solver/";
+    description = "A solver for Solitaire variants Golf, Black Hole, and All in a Row.";
+    license = licenses.mit;
+  };
+
+  src = fetchurl {
+    url = "https://fc-solve.shlomifish.org/downloads/fc-solve/${pname}-${version}.tar.xz";
+    sha256 = "1qhihmk4fwz6n16c7bnxnh3v7jhbb7xhkc9wk9484bp0k4x9bq9n";
+  };
+
+  nativeBuildInputs = [ cmake perl pkg-config python3 ];
+
+  buildInputs = [ rinutils PathTiny ];
+
+  prePatch = ''
+    patchShebangs ./scripts
+  '';
+
+}
diff --git a/nixpkgs/pkgs/games/blobwars/default.nix b/nixpkgs/pkgs/games/blobwars/default.nix
new file mode 100644
index 000000000000..b99c9f2b8e36
--- /dev/null
+++ b/nixpkgs/pkgs/games/blobwars/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchurl, pkg-config, gettext, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "blobwars";
+  version = "2.00";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "c406279f6cdf2aed3c6edb8d8be16efeda0217494acd525f39ee2bd3e77e4a99";
+  };
+
+  nativeBuildInputs = [ pkg-config gettext ];
+  buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf zlib ];
+  NIX_CFLAGS_COMPILE = [ "-Wno-error" ];
+
+  makeFlags = [ "PREFIX=$(out)" "RELEASE=1" ];
+
+  postInstall = ''
+    install -Dm755 $out/games/blobwars -t $out/bin
+    rm -r $out/games
+    cp -r {data,gfx,sound,music} $out/share/games/blobwars/
+    # fix world readable bit
+    find $out/share/games/blobwars/. -type d -exec chmod 755 {} +
+    find $out/share/games/blobwars/. -type f -exec chmod 644 {} +
+  '';
+
+  meta = with lib; {
+    description = "Platform action game featuring a blob with lots of weapons";
+    homepage = "https://www.parallelrealities.co.uk/games/metalBlobSolid/";
+    license = with licenses; [ gpl2Plus free ];
+    maintainers = with maintainers; [ iblech ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/boohu/default.nix b/nixpkgs/pkgs/games/boohu/default.nix
index 831893536453..6b3c0e04f982 100644
--- a/nixpkgs/pkgs/games/boohu/default.nix
+++ b/nixpkgs/pkgs/games/boohu/default.nix
@@ -27,6 +27,6 @@ buildGoPackage rec {
     homepage = "https://download.tuxfamily.org/boohu/index.html";
     license = licenses.isc;
     platforms = platforms.unix;
-    maintainers = with maintainers; [freepotion];
+    maintainers = with maintainers; [];
   };
 }
diff --git a/nixpkgs/pkgs/games/bzflag/default.nix b/nixpkgs/pkgs/games/bzflag/default.nix
index dfddc2e859fb..35a481fb2f42 100644
--- a/nixpkgs/pkgs/games/bzflag/default.nix
+++ b/nixpkgs/pkgs/games/bzflag/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bzflag";
-  version = "2.4.20";
+  version = "2.4.22";
 
   src = fetchurl {
     url = "https://download.bzflag.org/${pname}/source/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "16brxqmfiyz4j4lb8ihzjcbwqmpsms6vm3ijbp34lnw0blbwdjb2";
+    sha256 = "sha256-nmRlMwK2V72LX5b+EVCp/4Ch1Tptfoo1E4xrGwIAak0=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/games/cbonsai/default.nix b/nixpkgs/pkgs/games/cbonsai/default.nix
new file mode 100644
index 000000000000..c817b5d36b5b
--- /dev/null
+++ b/nixpkgs/pkgs/games/cbonsai/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchFromGitLab, ncurses, pkg-config, nix-update-script }:
+
+stdenv.mkDerivation rec {
+  version = "1.0.4";
+  pname = "cbonsai";
+
+  src = fetchFromGitLab {
+    owner = "jallbrit";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-5yyvisExf4Minyr1ApJQ2SoctfjhdU6kEbgBGgHDtCg=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ ncurses ];
+  installFlags = [ "PREFIX=$(out)" ];
+
+  passthru.updateScript = nix-update-script { attrPath = pname; };
+
+  meta = with lib; {
+    description = "Grow bonsai trees in your terminal";
+    homepage = "https://gitlab.com/jallbrit/cbonsai";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ manveru ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/chessdb/default.nix b/nixpkgs/pkgs/games/chessdb/default.nix
index 656e4ab6add3..40f90e75ff82 100644
--- a/nixpkgs/pkgs/games/chessdb/default.nix
+++ b/nixpkgs/pkgs/games/chessdb/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation {
     sha256 = "0brc3wln3bxp979iqj2w1zxpfd0pch8zzazhdmwf7acww4hrsz62";
   };
 
-  buildInputs = [ tcl tk libX11 makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ tcl tk libX11 ];
 
   makeFlags = [
     "BINDIR=$(out)/bin"
diff --git a/nixpkgs/pkgs/games/chromium-bsu/default.nix b/nixpkgs/pkgs/games/chromium-bsu/default.nix
new file mode 100644
index 000000000000..1ab2fb8722b0
--- /dev/null
+++ b/nixpkgs/pkgs/games/chromium-bsu/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, stdenv
+, fetchurl
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, fontconfig
+, freealut
+, freeglut
+, ftgl
+, gettext
+, glpng
+, libGL
+, libGLU
+, openal
+, pkg-config
+, quesoglc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "chromium-bsu";
+  version = "0.9.16.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/chromium-bsu/Chromium%20B.S.U.%20source%20code/${pname}-${version}.tar.gz";
+    hash = "sha256-ocFBo00ZpZYHroEWahmGTrjITPhrFVRi/tMabVbhYko=";
+  };
+
+  nativeBuildInputs = [
+    gettext
+    pkg-config
+  ];
+  buildInputs = [
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    fontconfig
+    freealut
+    freeglut
+    ftgl
+    glpng
+    libGL
+    libGLU
+    openal
+    quesoglc
+  ];
+
+  # Autodetection is somewhat buggy; this is to avoid SLD1 to be loaded
+  configureFlags = [
+    "--disable-sdlimage"
+    "--disable-sdlmixer"
+  ];
+
+
+  postInstall = ''
+    install -D misc/chromium-bsu.png $out/share/pixmaps/chromium-bsu.png
+    install -D misc/chromium-bsu.desktop $out/share/applications/chromium-bsu.desktop
+  '';
+
+  meta = with lib; {
+    homepage = "http://chromium-bsu.sourceforge.net/";
+    description = "A fast paced, arcade-style, top-scrolling space shooter";
+    license = licenses.artistic1;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
+# TODO [ AndersonTorres ]: joystick; gothic uralic font
diff --git a/nixpkgs/pkgs/games/ckan/default.nix b/nixpkgs/pkgs/games/ckan/default.nix
index 052982bf15d6..9f25a1d50afa 100644
--- a/nixpkgs/pkgs/games/ckan/default.nix
+++ b/nixpkgs/pkgs/games/ckan/default.nix
@@ -2,16 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "ckan";
-  version = "1.29.2";
+  version = "1.30.0";
 
   src = fetchurl {
     url = "https://github.com/KSP-CKAN/CKAN/releases/download/v${version}/ckan.exe";
-    sha256 = "10vd61mw2y7vmbnp6nd7b2sq22ixqd7zmd278z210w4njmvqn97h";
+    sha256 = "sha256-wih5NRzeOy4WMXQ3yV9W/m2x7B2C5T0F78TbpsngigQ=";
   };
 
   dontUnpack = true;
 
-  buildInputs = [ makeWrapper mono ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ mono ];
 
   libraries = lib.makeLibraryPath [ gtk2 curl ];
 
diff --git a/nixpkgs/pkgs/games/cockatrice/default.nix b/nixpkgs/pkgs/games/cockatrice/default.nix
index a657913aad76..1388d830a9e7 100644
--- a/nixpkgs/pkgs/games/cockatrice/default.nix
+++ b/nixpkgs/pkgs/games/cockatrice/default.nix
@@ -4,13 +4,13 @@
 
 mkDerivation rec {
   pname = "cockatrice";
-  version = "2020-08-23-Release-2.7.5";
+  version = "2021-02-03-Development-2.8.1-beta";
 
   src = fetchFromGitHub {
     owner = "Cockatrice";
     repo = "Cockatrice";
     rev = version;
-    sha256 = "1yaxm7q0ja3rgx197hh8ynjc6ncc4hm0qdn9v7f0l4fbv0bdpv34";
+    sha256 = "0g1d7zq4lh4jf08mvvgp6m2r2gdvy4y1mhf46c0s8607h2l8vavh";
   };
 
   buildInputs = [
@@ -22,7 +22,7 @@ mkDerivation rec {
   meta = {
     homepage = "https://github.com/Cockatrice/Cockatrice";
     description = "A cross-platform virtual tabletop for multiplayer card games";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ evanjs ];
     platforms = with lib.platforms; linux;
   };
diff --git a/nixpkgs/pkgs/games/crafty/default.nix b/nixpkgs/pkgs/games/crafty/default.nix
index 1328488dde3a..b5b53aa3c413 100644
--- a/nixpkgs/pkgs/games/crafty/default.nix
+++ b/nixpkgs/pkgs/games/crafty/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     sha256 = "12g70mgfifwssfvndzq94pin34dizlixhsga75vgj7dakysi2p7f";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   unpackPhase = ''
     mkdir "craftysrc"
diff --git a/nixpkgs/pkgs/games/crawl/default.nix b/nixpkgs/pkgs/games/crawl/default.nix
index 7b644aa71476..11ac23fcef3a 100644
--- a/nixpkgs/pkgs/games/crawl/default.nix
+++ b/nixpkgs/pkgs/games/crawl/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, fetchpatch, which, sqlite, lua5_1, perl, python3, zlib, pkg-config, ncurses
 , dejavu_fonts, libpng, SDL2, SDL2_image, SDL2_mixer, libGLU, libGL, freetype, pngcrush, advancecomp
-, tileMode ? false, enableSound ? tileMode
+, tileMode ? false, enableSound ? tileMode, buildPackages
 
 # MacOS / Darwin builds
 , darwin ? null
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   fontsPath = lib.optionalString tileMode dejavu_fonts;
 
-  makeFlags = [ "prefix=${placeholder "out"}" "FORCE_CC=cc" "FORCE_CXX=c++" "HOSTCXX=c++"
+  makeFlags = [ "prefix=${placeholder "out"}" "FORCE_CC=${stdenv.cc.targetPrefix}cc" "FORCE_CXX=${stdenv.cc.targetPrefix}c++" "HOSTCXX=${buildPackages.stdenv.cc.targetPrefix}c++"
                 "FORCE_PKGCONFIG=y"
                 "SAVEDIR=~/.crawl" "sqlite=${sqlite.dev}"
                 "DATADIR=${placeholder "out"}"
diff --git a/nixpkgs/pkgs/games/crispy-doom/default.nix b/nixpkgs/pkgs/games/crispy-doom/default.nix
index 432600e879f4..04c0868510fe 100644
--- a/nixpkgs/pkgs/games/crispy-doom/default.nix
+++ b/nixpkgs/pkgs/games/crispy-doom/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, autoreconfHook, pkg-config, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub, python }:
+{ lib, stdenv, autoreconfHook, pkg-config, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub, python2 }:
 
 stdenv.mkDerivation rec {
   pname = "crispy-doom";
-  version = "5.10.0";
+  version = "5.10.1";
 
   src = fetchFromGitHub {
     owner = "fabiangreffrath";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-hRdd5ZrcVBU7tn1juvrLdbenULzu6OsXefG0oLjjFIg=";
+    sha256 = "sha256-5doytVxemqaXWXiqDSQUEAe71xmY0pOLASj/NJNyM5g=";
   };
 
   postPatch = ''
@@ -16,10 +16,12 @@ stdenv.mkDerivation rec {
     for script in $(grep -lr '^#!/usr/bin/env python$'); do patchShebangs $script; done
   '';
 
-  nativeBuildInputs = [ autoreconfHook pkg-config python ];
+  nativeBuildInputs = [ autoreconfHook pkg-config python2 ];
   buildInputs = [ SDL2 SDL2_mixer SDL2_net ];
   enableParallelBuilding = true;
 
+  strictDeps = true;
+
   meta = {
     homepage = "http://fabiangreffrath.github.io/crispy-doom";
     description = "A limit-removing enhanced-resolution Doom source port based on Chocolate Doom";
diff --git a/nixpkgs/pkgs/games/devilutionx/default.nix b/nixpkgs/pkgs/games/devilutionx/default.nix
index 73968b515649..0f89bdeabb4c 100644
--- a/nixpkgs/pkgs/games/devilutionx/default.nix
+++ b/nixpkgs/pkgs/games/devilutionx/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, SDL2_ttf, libsodium, pkg-config }:
 stdenv.mkDerivation rec {
-  version = "1.0.1";
   pname = "devilutionx";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "diasurgical";
     repo = "devilutionX";
     rev = version;
-    sha256 = "1jvjlch9ql5s5jx9g5y5pkc2xn62199qylsmzpqzx1jc3k2vmw5i";
+    sha256 = "03w3bgmzwsbycx3fzvn47fsmabl069gw77yn2fqg89wlgaw1yrr9";
   };
 
   NIX_CFLAGS_COMPILE = [
@@ -15,6 +15,10 @@ stdenv.mkDerivation rec {
     ''-DTTF_FONT_PATH="${placeholder "out"}/share/fonts/truetype/CharisSILB.ttf"''
   ];
 
+  cmakeFlags = [
+    "-DBINARY_RELEASE=ON"
+  ];
+
   nativeBuildInputs = [ pkg-config cmake ];
   buildInputs = [ libsodium SDL2 SDL2_mixer SDL2_ttf ];
 
@@ -40,6 +44,6 @@ stdenv.mkDerivation rec {
     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 = [ maintainers.karolchmist ];
-    platforms = platforms.linux ++ platforms.darwin ++ platforms.windows;
+    platforms = platforms.linux ++ platforms.windows;
   };
 }
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
index 83e181c85e65..bd8825582c43 100644
--- a/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
+++ b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
@@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
     cp -r DwarfTherapist.app $out/Applications
   '' else null;
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Tool to manage dwarves in a running game of Dwarf Fortress";
     maintainers = with maintainers; [ abbradar bendlas numinit jonringer ];
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
index bd75a66b4879..7db79012ec65 100644
--- a/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
+++ b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   paths = [ dwarf-therapist ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   passthru = { inherit dwarf-fortress dwarf-therapist; };
 
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/legends-browser/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/legends-browser/default.nix
index 1efae4d2802a..2a3da233b450 100644
--- a/nixpkgs/pkgs/games/dwarf-fortress/legends-browser/default.nix
+++ b/nixpkgs/pkgs/games/dwarf-fortress/legends-browser/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenvNoCC, buildEnv, writeShellScriptBin, fetchurl, jre }:
+{ lib, buildEnv, writeShellScriptBin, fetchurl, jre }:
 
 let
   name = "legends-browser-${version}";
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix
index 48826ca91609..bee2c28e5308 100644
--- a/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix
+++ b/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix
@@ -71,7 +71,7 @@ stdenvNoCC.mkDerivation rec {
 
   outputs = [ "lib" "art" "out" ];
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     mkdir -p $lib/hack/{plugins,lua} $art/data/art
diff --git a/nixpkgs/pkgs/games/eidolon/default.nix b/nixpkgs/pkgs/games/eidolon/default.nix
index dcb72d53b328..7112c6bf49c5 100644
--- a/nixpkgs/pkgs/games/eidolon/default.nix
+++ b/nixpkgs/pkgs/games/eidolon/default.nix
@@ -1,11 +1,12 @@
-{ lib, fetchgit, rustPlatform, pkg-config, openssl }:
+{ lib, fetchFromSourcehut, rustPlatform, pkg-config, openssl }:
 
 rustPlatform.buildRustPackage rec {
   pname = "eidolon";
   version = "1.4.6";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~nicohman/eidolon";
+  src = fetchFromSourcehut {
+    owner = "~nicohman";
+    repo = pname;
     rev = version;
     sha256 = "1yn3k569pxzw43mmsk97088xpkdc714rks3ncchbb6ccx25kgxrr";
   };
diff --git a/nixpkgs/pkgs/games/empty-epsilon/default.nix b/nixpkgs/pkgs/games/empty-epsilon/default.nix
index dc761fb7d7a2..d444c50d976d 100644
--- a/nixpkgs/pkgs/games/empty-epsilon/default.nix
+++ b/nixpkgs/pkgs/games/empty-epsilon/default.nix
@@ -2,21 +2,23 @@
 
 let
 
-  major = "2020";
-  minor = "11";
-  patch = "23";
+  major = "2021";
+  minor = "03";
+  patch.seriousproton = "30";
+  patch.emptyepsilon = "31";
 
-  version = "${major}.${minor}.${patch}";
+  version.seriousproton = "${major}.${minor}.${patch.seriousproton}";
+  version.emptyepsilon = "${major}.${minor}.${patch.emptyepsilon}";
 
   serious-proton = stdenv.mkDerivation {
     pname = "serious-proton";
-    inherit version;
+    version = version.seriousproton;
 
     src = fetchFromGitHub {
       owner = "daid";
       repo = "SeriousProton";
-      rev = "EE-${version}";
-      sha256 = "sha256-/gwJPlvvOCv5XIsiVgZ8Eb/7vgwG/V+s/soGVCfYrwo=";
+      rev = "EE-${version.seriousproton}";
+      sha256 = "sha256-wxb/CxJ/HKsVngeahjygZFPMMxitkHdVD0EQ3svxgIU=";
     };
 
     nativeBuildInputs = [ cmake ];
@@ -36,13 +38,13 @@ in
 
 stdenv.mkDerivation {
   pname = "empty-epsilon";
-  inherit version;
+  version = version.emptyepsilon;
 
   src = fetchFromGitHub {
     owner = "daid";
     repo = "EmptyEpsilon";
-    rev = "EE-${version}";
-    sha256 = "sha256-HbF6xThR+ogNHbAcXF03DaBhwVhNEr5BJO7jeeVZH/o=";
+    rev = "EE-${version.emptyepsilon}";
+    sha256 = "sha256-x0XJPMU0prubTb4ti/W/dH5P9abNwbjqkeUhKQpct9o=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -50,10 +52,10 @@ stdenv.mkDerivation {
 
   cmakeFlags = [
     "-DSERIOUS_PROTON_DIR=${serious-proton.src}"
-    "-DCPACK_PACKAGE_VERSION=${version}"
+    "-DCPACK_PACKAGE_VERSION=${version.emptyepsilon}"
     "-DCPACK_PACKAGE_VERSION_MAJOR=${major}"
     "-DCPACK_PACKAGE_VERSION_MINOR=${minor}"
-    "-DCPACK_PACKAGE_VERSION_PATCH=${patch}"
+    "-DCPACK_PACKAGE_VERSION_PATCH=${patch.emptyepsilon}"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/games/enigma/default.nix b/nixpkgs/pkgs/games/enigma/default.nix
new file mode 100644
index 000000000000..131bd00e1857
--- /dev/null
+++ b/nixpkgs/pkgs/games/enigma/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchurl, makeWrapper, pkg-config, gettext, imagemagick, curl, libpng, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, xercesc, xdg-utils, hicolor-icon-theme }:
+stdenv.mkDerivation rec {
+  pname = "enigma";
+  version = "1.30-alpha";
+
+  src = fetchurl {
+    url = "https://github.com/Enigma-Game/Enigma/releases/download/${version}/${pname}-${version}.tar.gz";
+    sha256 = "1zyk3j43gzfr1lhc6g13j7qai5f33fv5xm5735nnznaqvaz17949";
+  };
+
+  nativeBuildInputs = [ pkg-config gettext makeWrapper imagemagick ];
+  buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf libpng xercesc curl xdg-utils ];
+
+  # For some reason (might be related to the alpha status), some includes
+  # which are required by lib-src/enigma-core are not picked up by the
+  # configure script. Hence we add them manually.
+  CPPFLAGS = "-I${SDL2.dev}/include/SDL2 -I${SDL2_ttf}/include/SDL2 -I${SDL2_image}/include/SDL2 -I${SDL2_mixer}/include/SDL2";
+
+  postInstall = ''
+    rm -r $out/include
+    wrapProgram $out/bin/enigma --prefix PATH : "${lib.makeBinPath [ xdg-utils ]}"
+  '';
+
+  meta = with lib; {
+    description = "Puzzle game inspired by Oxyd on the Atari ST and Rock'n'Roll on the Amiga";
+    license = with licenses; [ gpl2 free ]; # source + bundles libs + art
+    platforms = platforms.unix;
+    broken = stdenv.targetPlatform.isDarwin;
+    maintainers = with maintainers; [ iblech ];
+    homepage = "https://www.nongnu.org/enigma/";
+  };
+}
diff --git a/nixpkgs/pkgs/games/exult/default.nix b/nixpkgs/pkgs/games/exult/default.nix
index e16e62f82fb4..40d7300e9c5a 100644
--- a/nixpkgs/pkgs/games/exult/default.nix
+++ b/nixpkgs/pkgs/games/exult/default.nix
@@ -21,8 +21,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--disable-tools" ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ SDL2 libogg libvorbis zlib unzip ];
+  nativeBuildInputs = [ pkg-config unzip ];
+  buildInputs = [ SDL2 libogg libvorbis zlib ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/games/ezquake/default.nix b/nixpkgs/pkgs/games/ezquake/default.nix
index 7089c81ee359..90ddb6d6452e 100644
--- a/nixpkgs/pkgs/games/ezquake/default.nix
+++ b/nixpkgs/pkgs/games/ezquake/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ezquake";
-  version = "3.2.2";
+  version = "3.2.3";
 
   src = fetchFromGitHub {
     owner = "ezQuake";
     repo = pname + "-source";
     rev = version;
-    sha256 = "1rfp816gnp7jfd27cg1la5n1q6z2wgd9qljnlmnx7v2jixql8brf";
+    sha256 = "sha256-EBhKmoX11JavTG6tPfg15FY2lqOFfzSDg3058OWfcYQ=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/games/factorio/default.nix b/nixpkgs/pkgs/games/factorio/default.nix
index 356cedd3507e..879bbfa2311f 100644
--- a/nixpkgs/pkgs/games/factorio/default.nix
+++ b/nixpkgs/pkgs/games/factorio/default.nix
@@ -178,7 +178,8 @@ let
     headless = base;
     demo = base // {
 
-      buildInputs = [ makeWrapper libpulseaudio ];
+      nativeBuildInputs = [ makeWrapper ];
+      buildInputs = [ libpulseaudio ];
 
       libPath = lib.makeLibraryPath [
         alsaLib
diff --git a/nixpkgs/pkgs/games/factorio/versions.json b/nixpkgs/pkgs/games/factorio/versions.json
index a8f49d599548..6460e262d0d2 100644
--- a/nixpkgs/pkgs/games/factorio/versions.json
+++ b/nixpkgs/pkgs/games/factorio/versions.json
@@ -2,56 +2,56 @@
   "x86_64-linux": {
     "alpha": {
       "experimental": {
-        "name": "factorio_alpha_x64-1.1.21.tar.xz",
+        "name": "factorio_alpha_x64-1.1.30.tar.xz",
         "needsAuth": true,
-        "sha256": "0js252wmny46s5fss8b4l83cyy3l5lqsnx31x9n9wqc9akr9c9w7",
+        "sha256": "14mcf9pj6s5ms2hl68n3r5jk1q5y2qzw88wiahsb5plkv9qyqyp6",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.21/alpha/linux64",
-        "version": "1.1.21"
+        "url": "https://factorio.com/get-download/1.1.30/alpha/linux64",
+        "version": "1.1.30"
       },
       "stable": {
-        "name": "factorio_alpha_x64-1.1.21.tar.xz",
+        "name": "factorio_alpha_x64-1.1.30.tar.xz",
         "needsAuth": true,
-        "sha256": "0js252wmny46s5fss8b4l83cyy3l5lqsnx31x9n9wqc9akr9c9w7",
+        "sha256": "14mcf9pj6s5ms2hl68n3r5jk1q5y2qzw88wiahsb5plkv9qyqyp6",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.21/alpha/linux64",
-        "version": "1.1.21"
+        "url": "https://factorio.com/get-download/1.1.30/alpha/linux64",
+        "version": "1.1.30"
       }
     },
     "demo": {
       "experimental": {
-        "name": "factorio_demo_x64-1.1.21.tar.xz",
+        "name": "factorio_demo_x64-1.1.30.tar.xz",
         "needsAuth": false,
-        "sha256": "1z049ckiff6sv9f6xym5akmmn3gh37z9mr2wf8a70ch7j1i4z3fn",
+        "sha256": "1b3na8xn9lhlvrsd6hxr130nf9p81s26n25a4qdgkczz6waysgjv",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.21/demo/linux64",
-        "version": "1.1.21"
+        "url": "https://factorio.com/get-download/1.1.30/demo/linux64",
+        "version": "1.1.30"
       },
       "stable": {
-        "name": "factorio_demo_x64-1.1.21.tar.xz",
+        "name": "factorio_demo_x64-1.1.30.tar.xz",
         "needsAuth": false,
-        "sha256": "1z049ckiff6sv9f6xym5akmmn3gh37z9mr2wf8a70ch7j1i4z3fn",
+        "sha256": "1b3na8xn9lhlvrsd6hxr130nf9p81s26n25a4qdgkczz6waysgjv",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.21/demo/linux64",
-        "version": "1.1.21"
+        "url": "https://factorio.com/get-download/1.1.30/demo/linux64",
+        "version": "1.1.30"
       }
     },
     "headless": {
       "experimental": {
-        "name": "factorio_headless_x64-1.1.21.tar.xz",
+        "name": "factorio_headless_x64-1.1.30.tar.xz",
         "needsAuth": false,
-        "sha256": "038342z429cavdp2q3mjczlprw83nca030mjlipjppr43bzg9db0",
+        "sha256": "1rac6d8v8swiw1nn2hl53rhjfhsyv98qg8hfnwhfqn76jgspspdl",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.21/headless/linux64",
-        "version": "1.1.21"
+        "url": "https://factorio.com/get-download/1.1.30/headless/linux64",
+        "version": "1.1.30"
       },
       "stable": {
-        "name": "factorio_headless_x64-1.1.21.tar.xz",
+        "name": "factorio_headless_x64-1.1.30.tar.xz",
         "needsAuth": false,
-        "sha256": "038342z429cavdp2q3mjczlprw83nca030mjlipjppr43bzg9db0",
+        "sha256": "1rac6d8v8swiw1nn2hl53rhjfhsyv98qg8hfnwhfqn76jgspspdl",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.21/headless/linux64",
-        "version": "1.1.21"
+        "url": "https://factorio.com/get-download/1.1.30/headless/linux64",
+        "version": "1.1.30"
       }
     }
   }
diff --git a/nixpkgs/pkgs/games/fairymax/default.nix b/nixpkgs/pkgs/games/fairymax/default.nix
index 5c7cad879d1a..d74339504514 100644
--- a/nixpkgs/pkgs/games/fairymax/default.nix
+++ b/nixpkgs/pkgs/games/fairymax/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     cp ${ini} fmax.ini
   '';
   buildPhase = ''
-    gcc *.c -o fairymax -DINI_FILE='"'"$out/share/fairymax/fmax.ini"'"'
+    $CC *.c -Wno-return-type -o fairymax -DINI_FILE='"'"$out/share/fairymax/fmax.ini"'"'
   '';
   installPhase = ''
     mkdir -p "$out"/{bin,share/fairymax}
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     '';
     license = lib.licenses.free ;
     maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
     homepage = "http://home.hccnet.nl/h.g.muller/dwnldpage.html";
   };
 }
diff --git a/nixpkgs/pkgs/games/flightgear/default.nix b/nixpkgs/pkgs/games/flightgear/default.nix
index 3e65915ec1dc..62db756a4839 100644
--- a/nixpkgs/pkgs/games/flightgear/default.nix
+++ b/nixpkgs/pkgs/games/flightgear/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   # Of all the files in the source and data archives, there doesn't seem to be
   # a decent icon :-)
   iconsrc = fetchurl {
-    url = "http://wiki.flightgear.org/images/6/62/FlightGear_logo.png";
+    url = "https://wiki.flightgear.org/w/images/6/62/FlightGear_logo.png";
     sha256 = "1ikz413jia55vfnmx8iwrlxvx8p16ggm81mbrj66wam3q7s2dm5p";
   };
 
diff --git a/nixpkgs/pkgs/games/freeciv/default.nix b/nixpkgs/pkgs/games/freeciv/default.nix
index 647a87d571b5..3ffb7e0c5496 100644
--- a/nixpkgs/pkgs/games/freeciv/default.nix
+++ b/nixpkgs/pkgs/games/freeciv/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, lua5_3, pkg-config, python3
-, zlib, bzip2, curl, lzma, gettext, libiconv
+, zlib, bzip2, curl, xz, gettext, libiconv
 , sdlClient ? true, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx, freetype, fluidsynth
 , gtkClient ? false, gtk3
 , qtClient ? false, qt5
@@ -31,13 +31,15 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkg-config ]
     ++ optional qtClient [ qt5.wrapQtAppsHook ];
 
-  buildInputs = [ lua5_3 zlib bzip2 curl lzma gettext libiconv ]
+  buildInputs = [ lua5_3 zlib bzip2 curl xz gettext libiconv ]
     ++ optionals sdlClient [ SDL SDL_mixer SDL_image SDL_ttf SDL_gfx freetype fluidsynth ]
     ++ optionals gtkClient [ gtk3 ]
     ++ optionals qtClient  [ qt5.qtbase ]
     ++ optional server readline
     ++ optional enableSqlite sqlite;
 
+  dontWrapQtApps = true;
+
   configureFlags = [ "--enable-shared" ]
     ++ optional sdlClient "--enable-client=sdl"
     ++ optionals qtClient [
diff --git a/nixpkgs/pkgs/games/frotz/default.nix b/nixpkgs/pkgs/games/frotz/default.nix
index 58339e5d26f0..2e90176be7e6 100644
--- a/nixpkgs/pkgs/games/frotz/default.nix
+++ b/nixpkgs/pkgs/games/frotz/default.nix
@@ -8,7 +8,7 @@
 , lib, stdenv }:
 
 stdenv.mkDerivation rec {
-  version = "2.52";
+  version = "2.53";
   pname = "frotz";
 
   src = fetchFromGitLab {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "DavidGriffith";
     repo = "frotz";
     rev = version;
-    sha256 = "11ca1dz31b7s5vxjqncwjwmbbcr2m5v2rxjn49g4gnvwd6mqw48y";
+    sha256 = "sha256-xVC/iE71W/Wdy5aPGH9DtcVAHWCcg3HkEA3iDV6OYUo=";
   };
 
   buildInputs = [ libao libmodplug libsamplerate libsndfile libvorbis ncurses ];
diff --git a/nixpkgs/pkgs/games/gcompris/default.nix b/nixpkgs/pkgs/games/gcompris/default.nix
index e4bc00793eb0..a930b1682d4c 100644
--- a/nixpkgs/pkgs/games/gcompris/default.nix
+++ b/nixpkgs/pkgs/games/gcompris/default.nix
@@ -18,11 +18,11 @@
 
 mkDerivation rec {
   pname = "gcompris";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchurl {
     url = "http://gcompris.net/download/qt/src/gcompris-qt-${version}.tar.xz";
-    sha256 = "08dw1q0h4qz2q0ksa5pbmb9v60hr1zv9skx6z8dlq9b1i7harnds";
+    sha256 = "sha256-8Kj5R/7WwOuew7e9qgx2HWS8mnHX+cv8mhHmgXbm8q4=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/games/gcs/default.nix b/nixpkgs/pkgs/games/gcs/default.nix
index a471b425f0c6..9d8d74921e54 100644
--- a/nixpkgs/pkgs/games/gcs/default.nix
+++ b/nixpkgs/pkgs/games/gcs/default.nix
@@ -42,7 +42,8 @@ in stdenv.mkDerivation rec {
     cp -r ${library} gcs_library
   '';
 
-  buildInputs = [ jdk8 jre8 ant makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jdk8 jre8 ant ];
   buildPhase = ''
     cd apple_stubs
     ant
diff --git a/nixpkgs/pkgs/games/gemrb/default.nix b/nixpkgs/pkgs/games/gemrb/default.nix
index fb49779eb535..9c5744f7291a 100644
--- a/nixpkgs/pkgs/games/gemrb/default.nix
+++ b/nixpkgs/pkgs/games/gemrb/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake
-, freetype, SDL2, SDL2_mixer, openal, zlib, libpng, python, libvorbis
+, freetype, SDL2, SDL2_mixer, openal, zlib, libpng, python2, libvorbis
 , libiconv }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   # TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl
   # reqs) optional
-  buildInputs = [ freetype python openal SDL2 SDL2_mixer zlib libpng libvorbis libiconv ];
+  buildInputs = [ freetype python2 openal SDL2 SDL2_mixer zlib libpng libvorbis libiconv ];
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/nixpkgs/pkgs/games/gimx/default.nix b/nixpkgs/pkgs/games/gimx/default.nix
index 727945ff2b46..ab208dfa003c 100644
--- a/nixpkgs/pkgs/games/gimx/default.nix
+++ b/nixpkgs/pkgs/games/gimx/default.nix
@@ -5,8 +5,8 @@ let
   gimx-config = fetchFromGitHub {
     owner = "matlo";
     repo = "GIMX-configurations";
-    rev = "f31bba7d3be57519540be290cd69ba6a8dc4e4d4";
-    sha256 = "0wpxx2qxyiiblz2qrl5swg00ls1aq7i5vzlk0qlnqdq8ss8jssax";
+    rev = "c20300f24d32651d369e2b27614b62f4b856e4a0";
+    sha256 = "02wcjk8da188x7y0jf3p0arjdh9zbb0lla3fxdb28b1xyybfvx5p";
   };
 
 in stdenv.mkDerivation rec {
@@ -51,15 +51,15 @@ in stdenv.mkDerivation rec {
     mkdir -p $out/share
     cp -r ./loader/firmware $out/share/firmware
     cp -r ${gimx-config}/Linux $out/share/config
-    patch ${gimx-config}/Linux/Dualshock4.xml ${./ds4.patch} -o $out/share/DS4_noff.xml
+    patch ${gimx-config}/Linux/Dualshock4.xml ${./noff.patch} -o $out/share/ds4.xml
 
     makeWrapper $out/bin/gimx $out/bin/gimx-with-confs \
-      --set GIMXCONF $out/share
+      --set GIMXCONF $out/share/config
 
     makeWrapper $out/bin/gimx $out/bin/gimx-test-ds4 \
       --set GIMXCONF $out/share \
       --add-flags "--nograb" --add-flags "--curses" \
-      --add-flags "-p /dev/ttyUSB0" --add-flags "-c DS4_noff.xml"
+      --add-flags "-p /dev/ttyUSB0" --add-flags "-c ds4.xml"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/games/gimx/ds4.patch b/nixpkgs/pkgs/games/gimx/noff.patch
index 86b36adda231..86b36adda231 100644
--- a/nixpkgs/pkgs/games/gimx/ds4.patch
+++ b/nixpkgs/pkgs/games/gimx/noff.patch
diff --git a/nixpkgs/pkgs/games/gnubg/default.nix b/nixpkgs/pkgs/games/gnubg/default.nix
index feff18e9bb6f..7402049a9d82 100644
--- a/nixpkgs/pkgs/games/gnubg/default.nix
+++ b/nixpkgs/pkgs/games/gnubg/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, python, gtk2, readline }:
+{ lib, stdenv, fetchurl, pkg-config, glib, python3, gtk2, readline }:
 
 let version = "1.06.002"; in
 stdenv.mkDerivation {
@@ -9,8 +9,10 @@ stdenv.mkDerivation {
     sha256 = "11xwhcli1h12k6rnhhyq4jphzrhfik7i8ah3k32pqw803460n6yf";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ python glib gtk2 readline ];
+  nativeBuildInputs = [ pkg-config python3 glib ];
+  buildInputs = [  gtk2 readline ];
+
+  strictDeps = true;
 
   configureFlags = [ "--with-gtk" "--with--board3d" ];
 
diff --git a/nixpkgs/pkgs/games/gogui/default.nix b/nixpkgs/pkgs/games/gogui/default.nix
index 8eb989a8f474..c7b37b31c355 100644
--- a/nixpkgs/pkgs/games/gogui/default.nix
+++ b/nixpkgs/pkgs/games/gogui/default.nix
@@ -5,7 +5,7 @@ let
 in stdenv.mkDerivation {
   pname = "gogui";
   inherit version;
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
   src = fetchurl {
     url = "mirror://sourceforge/project/gogui/gogui/${version}/gogui-${version}.zip";
     sha256 = "0qk6p1bhi1816n638bg11ljyj6zxvm75jdf02aabzdmmd9slns1j";
diff --git a/nixpkgs/pkgs/games/gtypist/default.nix b/nixpkgs/pkgs/games/gtypist/default.nix
index d0ddf43fe2a2..43b95bacefc8 100644
--- a/nixpkgs/pkgs/games/gtypist/default.nix
+++ b/nixpkgs/pkgs/games/gtypist/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0xzrkkmj0b1dw3yr0m9hml2y634cc4h61im6zwcq57s7285z8fn1";
   };
 
-  buildInputs = [ makeWrapper ncurses perl fortune ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ncurses perl fortune ]
    ++ lib.optional stdenv.isDarwin libiconv;
 
   preFixup = ''
diff --git a/nixpkgs/pkgs/games/harmonist/default.nix b/nixpkgs/pkgs/games/harmonist/default.nix
index 4609f7d732cc..ae7d6644ce75 100644
--- a/nixpkgs/pkgs/games/harmonist/default.nix
+++ b/nixpkgs/pkgs/games/harmonist/default.nix
@@ -3,13 +3,13 @@
 buildGoPackage rec {
 
   pname = "harmonist";
-  version = "0.3.0";
+  version = "0.4.1";
 
   goPackagePath = "git.tuxfamily.org/harmonist/harmonist.git";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/harmonist/releases/${pname}-${version}.tar.gz";
-    sha256 = "16bh4zzq7szwcw19n34bslkf81fz3i0p4zqkd8gdi5ixkbm998lm";
+    sha256 = "19abqmzz9nnlnizkskvlkcpahk8lzrl57mgg6dfxn25l55vfznws";
   };
 
   goDeps = ./deps.nix;
@@ -29,6 +29,6 @@ buildGoPackage rec {
     homepage = "https://harmonist.tuxfamily.org/";
     license = licenses.isc;
     platforms = platforms.unix;
-    maintainers = with maintainers; [freepotion];
+    maintainers = with maintainers; [];
   };
 }
diff --git a/nixpkgs/pkgs/games/harmonist/deps.nix b/nixpkgs/pkgs/games/harmonist/deps.nix
index 68290823625c..8823ada42d43 100644
--- a/nixpkgs/pkgs/games/harmonist/deps.nix
+++ b/nixpkgs/pkgs/games/harmonist/deps.nix
@@ -1,20 +1,92 @@
 [
   {
-    goPackagePath = "github.com/nsf/termbox-go";
+    goPackagePath = "github.com/mattn/go-runewidth";
     fetch = {
       type = "git";
-      url = "https://github.com/nsf/termbox-go";
-      rev = "93860e16131719fa9722e7c448dbf8c0e3210a0d";
-      sha256 = "03hz060cy8qrl4kgr80pbq6xvr38z4c6ghr3y81i8g854rvp6426";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "59616a248b91ae20bf3eb93636a24c87d9ce6cea";
+      sha256 = "0jh9552ppqvkdfni7x623n0x5mbiaqqhjhmr0zkh28x56k4ysii4";
     };
   }
   {
-    goPackagePath = "github.com/mattn/go-runewidth";
+    goPackagePath = "github.com/anaseto/gruid";
     fetch = {
       type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "18c3d09a134a52720932bbaa92c798a0ab111004";
-      sha256 = "1snr8mk63vz2h44knq26dm81p83887v7kb09iywqmx0nqzngih66";
+      url = "https://github.com/anaseto/gruid";
+      rev = "976b3db42d20169cf44eca1406b3cff104a80979";
+      sha256 = "0rvsavkvg2hziwdh8sjk3n5v92m5mfjb8v9m7ch22maxfwq5kv6y";
+    };
+  }
+  {
+    goPackagePath = "github.com/anaseto/gruid-tcell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/anaseto/gruid-tcell";
+      rev = "4878126bb96fa0e529ec22c700d03b030e5c3bf7";
+      sha256 = "0spm9gqsdan1mvbpypywid00vvl92rii8akhmjdm8l1r9qk7a3i4";
+    };
+  }
+  {
+    goPackagePath = "github.com/gdamore/tcell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gdamore/tcell";
+      rev = "f4d402906fa3d330545365abbf970c048e677b35";
+      sha256 = "1wcbm5vxrh5s8g4mas32y3n0pjvfmngmc2yrxg1yn4333mh9mgf3";
+    };
+  }
+  {
+    goPackagePath = "github.com/lucasb-eyer/go-colorful";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lucasb-eyer/go-colorful";
+      rev = "4d8f45c41ac988423342507a1fb6050239b5a742";
+      sha256 = "1p2rl5353fi4p3l0bz3dg0lifhxqj8hjyh1b6z1cn286qxwnnnm8";
+    };
+  }
+ {
+    goPackagePath = "github.com/gdamore/encoding";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gdamore/encoding";
+      rev = "6289cdc94c00ac4aa177771c5fce7af2f96b626d";
+      sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9";
+    };
+  }
+  {
+    goPackagePath = "github.com/rivo/uniseg";
+    fetch = {
+      type = "git";
+      url = "https://github.com/rivo/uniseg";
+      rev = "75711fccf6a3e85bc74c241e2dddd06a9bc9e53d";
+      sha256 = "0j7h22vfmjj562vr8gpsyrkrwp1pq9ayh5fylv24skxb467g9f0q";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/term/";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/term";
+      rev = "6a3ed077a48de71621ad530f9078fffa0bc0ce32";
+      sha256 = "0xni8n3q2r9f6fk223b2c1702fvqmgz7vk6738asri3fwby583q5";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text/";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "e3aa4adf54f644ca0cb35f1f1fb19b239c40ef04";
+      sha256 = "03q5kjmp4sfp5yzwb76lyf8cs9qca26vlwry5qgqf8w03rq700hf";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys/";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "88b6017d06564827ae436c619d52116f470a3611";
+      sha256 = "14n7b6833lhxjzsgvi14c6c8nfiqqb4r71wvv4z5ksyssi95i3r7";
     };
   }
 ]
diff --git a/nixpkgs/pkgs/games/katago/default.nix b/nixpkgs/pkgs/games/katago/default.nix
index 283aa70f8d0d..50b6caee6214 100644
--- a/nixpkgs/pkgs/games/katago/default.nix
+++ b/nixpkgs/pkgs/games/katago/default.nix
@@ -6,7 +6,6 @@
 , cudnn
 , eigen
 , fetchFromGitHub
-, fetchpatch
 , gperftools
 , lib
 , libzip
@@ -34,14 +33,14 @@ let
 
 in env.mkDerivation rec {
   pname = "katago";
-  version = "1.8.0";
-  githash = "8ffda1fe05c69c67342365013b11225d443445e8";
+  version = "1.8.1";
+  githash = "73bc3e38b3490cbe00179c9c37f5385dfd60c6bc";
 
   src = fetchFromGitHub {
     owner = "lightvector";
     repo = "katago";
     rev = "v${version}";
-    sha256 = "18r75xjj6vv2gbl92k9aa5bd0cxf09zl1vxlji148y0xbvgv6p8c";
+    sha256 = "sha256-Rj6fgj1ZQgYhz6TrZk5b8dCMsCPk5N3qN3kgqV+UEDc=";
   };
 
   fakegit = writeShellScriptBin "git" "echo ${githash}";
@@ -96,10 +95,13 @@ in env.mkDerivation rec {
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin; cp katago $out/bin;
   '' + lib.optionalString enableCuda ''
     wrapProgram $out/bin/katago \
       --prefix LD_LIBRARY_PATH : "/run/opengl-driver/lib"
+  '' + ''
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/games/keen4/default.nix b/nixpkgs/pkgs/games/keen4/default.nix
index c91cc486118f..59bb30d627f7 100644
--- a/nixpkgs/pkgs/games/keen4/default.nix
+++ b/nixpkgs/pkgs/games/keen4/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "12rnc9ksl7v6l8wsxvr26ylkafzq80dbsa7yafzw9pqc8pafkhx1";
   };
 
-  buildInputs = [unzip];
+  nativeBuildInputs = [ unzip ];
 
   inherit dosbox;
 
diff --git a/nixpkgs/pkgs/games/leela-zero/default.nix b/nixpkgs/pkgs/games/leela-zero/default.nix
index 4a71fc25c0f2..13b423832e67 100644
--- a/nixpkgs/pkgs/games/leela-zero/default.nix
+++ b/nixpkgs/pkgs/games/leela-zero/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Go engine modeled after AlphaGo Zero";
     homepage    = "https://github.com/gcp/leela-zero";
diff --git a/nixpkgs/pkgs/games/maelstrom/default.nix b/nixpkgs/pkgs/games/maelstrom/default.nix
new file mode 100644
index 000000000000..5f78e34edac9
--- /dev/null
+++ b/nixpkgs/pkgs/games/maelstrom/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchurl, makeDesktopItem, SDL2, SDL2_net }:
+
+stdenv.mkDerivation rec {
+  pname = "maelstrom";
+  version = "3.0.7";
+
+  src = fetchurl {
+    url = "http://www.libsdl.org/projects/Maelstrom/src/Maelstrom-${version}.tar.gz";
+    sha256 = "0dm0m5wd7amrsa8wnrblkv34sq4v4lglc2wfx8klfkdhyhi06s4k";
+  };
+
+  # this fixes a typedef compilation error with gcc-3.x
+  patches = [ ./fix-compilation.patch ];
+
+  buildInputs = [ SDL2 SDL2_net ];
+
+  postInstall = ''
+    mkdir -p $out/bin
+    ln -s $out/games/Maelstrom/Maelstrom $out/bin/maelstrom
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "maelstrom";
+      exec = "maelstrom";
+      desktopName = "Maelstrom";
+      genericName = "Maelstrom";
+      comment = "An arcade-style game resembling Asteroids";
+      categories = "Game;";
+    })
+  ];
+
+  meta = with lib; {
+    description = "An arcade-style game resembling Asteroids";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ tmountain ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/maelstrom/fix-compilation.patch b/nixpkgs/pkgs/games/maelstrom/fix-compilation.patch
new file mode 100644
index 000000000000..3fa8980c5ee1
--- /dev/null
+++ b/nixpkgs/pkgs/games/maelstrom/fix-compilation.patch
@@ -0,0 +1,42 @@
+diff -Naur Maelstrom-3.0.7/buttonlist.h Maelstrom-3.0.7-patched/buttonlist.h
+--- Maelstrom-3.0.7/buttonlist.h	2000-01-25 11:41:32.000000000 -0500
++++ Maelstrom-3.0.7-patched/buttonlist.h	2021-02-22 08:34:01.000000000 -0500
+@@ -16,7 +16,7 @@
+ 
+ 	void Add_Button(Uint16 x, Uint16 y, Uint16 width, Uint16 height, 
+ 						void (*callback)(void)) {
+-		struct button *belem;
++        button *belem;
+ 		
+ 		for ( belem=&button_list; belem->next; belem=belem->next );
+ 		belem->next = new button;
+@@ -30,7 +30,7 @@
+ 	}
+ 
+ 	void Activate_Button(Uint16 x, Uint16 y) {
+-		struct button *belem;
++        button *belem;
+ 
+ 		for ( belem=button_list.next; belem; belem=belem->next ) {
+ 			if ( (x >= belem->x1) && (x <= belem->x2) &&
+@@ -42,7 +42,7 @@
+ 	}
+ 
+ 	void Delete_Buttons(void) {
+-		struct button *belem, *btemp;
++        button *belem, *btemp;
+ 
+ 		for ( belem=button_list.next; belem; ) {
+ 			btemp = belem;
+diff -Naur Maelstrom-3.0.7/main.cpp Maelstrom-3.0.7-patched/main.cpp
+--- Maelstrom-3.0.7/main.cpp	2021-02-04 11:50:27.000000000 -0500
++++ Maelstrom-3.0.7-patched/main.cpp	2021-02-22 08:34:34.000000000 -0500
+@@ -153,7 +153,7 @@
+ 	error("or\n");
+ 	error("Usage: %s <options>\n\n", progname);
+ 	error("Where <options> can be any of:\n\n"
+-"	-fullscreen		# Run Maelstrom in full-screen mode\n"
++"	-windowed		# Run Maelstrom in windowed mode\n"
+ "	-gamma [0-8]		# Set the gamma correction\n"
+ "	-volume [0-8]		# Set the sound volume\n"
+ "	-netscores		# Use the world-wide network score server\n"
diff --git a/nixpkgs/pkgs/games/mindustry/default.nix b/nixpkgs/pkgs/games/mindustry/default.nix
index 6f3cdab9ab45..af8ff5f24f9d 100644
--- a/nixpkgs/pkgs/games/mindustry/default.nix
+++ b/nixpkgs/pkgs/games/mindustry/default.nix
@@ -29,20 +29,20 @@ let
   # Note: when raising the version, ensure that all SNAPSHOT versions in
   # build.gradle are replaced by a fixed version
   # (the current one at the time of release) (see postPatch).
-  version = "124.1";
+  version = "126.1";
   buildVersion = makeBuildVersion version;
 
   Mindustry = fetchFromGitHub {
     owner = "Anuken";
     repo = "Mindustry";
     rev = "v${version}";
-    sha256 = "1k4k559y8l6wmj9m4980f7xmaaxzx84x86rqc77j4nd3y3x53546";
+    sha256 = "cyg4TofSSFLv8pM3zzvc0FxXMiTm+OIchBJF9PDQrkg=";
   };
   Arc = fetchFromGitHub {
     owner = "Anuken";
     repo = "Arc";
     rev = "v${version}";
-    sha256 = "08v929sgxy1pclzc00p7l7fak2h9l306447w5k5db3719kacj059";
+    sha256 = "uBIm82mt1etBB/HrNY6XGa7mmBfwd1E3RtqN8Rk5qeY=";
   };
   soloud = fetchFromGitHub {
     owner = "Anuken";
@@ -114,7 +114,7 @@ let
     '';
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "18yfchv55f0fza6gdxd3f6gm0m4wy2a9jkw5wgl84id518jal6la";
+    outputHash = "Mw8LZ1iW6vn4RkBBs8SWHp6mo2Bhj7tMZjLbyuJUqSI=";
   };
 
 in
diff --git a/nixpkgs/pkgs/games/mrrescue/default.nix b/nixpkgs/pkgs/games/mrrescue/default.nix
index c5b2b7d20eb0..ae7519c948ba 100644
--- a/nixpkgs/pkgs/games/mrrescue/default.nix
+++ b/nixpkgs/pkgs/games/mrrescue/default.nix
@@ -29,8 +29,7 @@ stdenv.mkDerivation {
     sha256 = "0kzahxrgpb4vsk9yavy7f8nc34d62d1jqjrpsxslmy9ywax4yfpi";
   };
 
-  nativeBuildInputs = [ lua love ];
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ lua love makeWrapper ];
 
   phases = "installPhase";
 
diff --git a/nixpkgs/pkgs/games/multimc/default.nix b/nixpkgs/pkgs/games/multimc/default.nix
index 5a1f42ee130b..bedf78102b66 100644
--- a/nixpkgs/pkgs/games/multimc/default.nix
+++ b/nixpkgs/pkgs/games/multimc/default.nix
@@ -5,12 +5,12 @@ let
   libpath = with xorg; lib.makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio libGL ];
 in mkDerivation rec {
   pname = "multimc";
-  version = "unstable-2021-01-17";
+  version = "0.6.12";
   src = fetchFromGitHub {
     owner = "MultiMC";
     repo = "MultiMC5";
-    rev = "02887536f773643313f15442fc82cebf616da54a";
-    sha256 = "1aykvavcv415lq488hx4ig2a79g5a561jg92gw14fb964r43782i";
+    rev = version;
+    sha256 = "h2T023vrqemWhHiA2/gFleuUhIOucjwTgoExliFiYig=";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ cmake file makeWrapper ];
diff --git a/nixpkgs/pkgs/games/nethack/default.nix b/nixpkgs/pkgs/games/nethack/default.nix
index d6ba771de7ed..f9939f063c80 100644
--- a/nixpkgs/pkgs/games/nethack/default.nix
+++ b/nixpkgs/pkgs/games/nethack/default.nix
@@ -60,7 +60,7 @@ in stdenv.mkDerivation rec {
       -e 's,^WINTTYLIB=.*,WINTTYLIB=-lncurses,' \
       -i sys/unix/hints/linux
     sed \
-      -e 's,^CC=.*$,CC=cc,' \
+      -e 's,^CC=.*$,CC=${stdenv.cc.targetPrefix}cc,' \
       -e 's,^HACKDIR=.*$,HACKDIR=\$(PREFIX)/games/lib/\$(GAME)dir,' \
       -e 's,^SHELLDIR=.*$,SHELLDIR=\$(PREFIX)/games,' \
       -e 's,^CFLAGS=-g,CFLAGS=,' \
diff --git a/nixpkgs/pkgs/games/newtonwars/default.nix b/nixpkgs/pkgs/games/newtonwars/default.nix
index 0da6d9352e06..0be3d9bf7a0e 100644
--- a/nixpkgs/pkgs/games/newtonwars/default.nix
+++ b/nixpkgs/pkgs/games/newtonwars/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation {
     sha256 = "0g63fwfcdxxlnqlagj1fb8ngm385gmv8f7p8b4r1z5cny2znxdvs";
   };
 
-  buildInputs = [ makeWrapper freeglut libGL libGLU ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ freeglut libGL libGLU ];
 
   patchPhase = ''
     sed -i "s;font24.raw;$out/share/font24.raw;g" display.c
diff --git a/nixpkgs/pkgs/games/nexuiz/default.nix b/nixpkgs/pkgs/games/nexuiz/default.nix
index 60085d5c85b3..84d8a6200015 100644
--- a/nixpkgs/pkgs/games/nexuiz/default.nix
+++ b/nixpkgs/pkgs/games/nexuiz/default.nix
@@ -21,9 +21,8 @@ in stdenv.mkDerivation {
     sha256 = "0010jrxc68qqinkvdh1qn2b8z3sa5v1kcd8d1m4llp3pr6y7xqm5";
   };
 
+  nativeBuildInputs = [ unzip ];
   buildInputs = [
-    # required for both
-    unzip
     # glx
     libX11 libGLU libGL libXpm libXext libXxf86vm libXxf86dga alsaLib
     # sdl
diff --git a/nixpkgs/pkgs/games/nottetris2/default.nix b/nixpkgs/pkgs/games/nottetris2/default.nix
index 53e7dec08032..42e5a33cad79 100644
--- a/nixpkgs/pkgs/games/nottetris2/default.nix
+++ b/nixpkgs/pkgs/games/nottetris2/default.nix
@@ -25,8 +25,8 @@ stdenv.mkDerivation {
     sha256 = "17iabh6rr8jim70n96rbhif4xq02g2kppscm8l339yqx6mhb64hs";
   };
 
-  nativeBuildInputs = [ zip ];
-  buildInputs = [ love_0_7 makeWrapper ];
+  nativeBuildInputs = [ zip makeWrapper ];
+  buildInputs = [ love_0_7 ];
 
   phases = [ "unpackPhase" "installPhase" ];
 
diff --git a/nixpkgs/pkgs/games/openmw/default.nix b/nixpkgs/pkgs/games/openmw/default.nix
index 7c8f4990a619..3357bf15f868 100644
--- a/nixpkgs/pkgs/games/openmw/default.nix
+++ b/nixpkgs/pkgs/games/openmw/default.nix
@@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
     "-DDESIRED_QT_VERSION:INT=5"
   ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "An unofficial open source engine reimplementation of the game Morrowind";
     homepage = "http://openmw.org";
diff --git a/nixpkgs/pkgs/games/openmw/tes3mp.nix b/nixpkgs/pkgs/games/openmw/tes3mp.nix
index 47b383a82bd9..95659e5a088e 100644
--- a/nixpkgs/pkgs/games/openmw/tes3mp.nix
+++ b/nixpkgs/pkgs/games/openmw/tes3mp.nix
@@ -61,6 +61,8 @@ in openmw.overrideAttrs (oldAttrs: rec {
     "-DRakNet_LIBRARY_DEBUG=${rakNetLibrary}/lib/libRakNetLibStatic.a"
   ];
 
+  dontWrapQtApps = true;
+
   # https://github.com/TES3MP/openmw-tes3mp/issues/552
   patches = [
     ./tes3mp.patch
diff --git a/nixpkgs/pkgs/games/openrct2/default.nix b/nixpkgs/pkgs/games/openrct2/default.nix
index 912d0da59a06..e210efade03a 100644
--- a/nixpkgs/pkgs/games/openrct2/default.nix
+++ b/nixpkgs/pkgs/games/openrct2/default.nix
@@ -5,20 +5,20 @@
 }:
 
 let
-  version = "0.3.2";
+  version = "0.3.3";
 
   openrct2-src = fetchFromGitHub {
     owner = "OpenRCT2";
     repo = "OpenRCT2";
     rev = "v${version}";
-    sha256 = "1fd32wniiy6qz2046ppqfj2sb3rf2qf086rf9v1bdhyj254d0b1z";
+    sha256 = "01nanpbz5ycdhkyd46fjfvj18sw729l4vk7xg12600f9rjngjk76";
   };
 
   objects-src = fetchFromGitHub {
     owner = "OpenRCT2";
     repo = "objects";
-    rev = "v1.0.18";
-    sha256 = "1v9424kxdppg8vszv0vyq91lzljkrjc3nmk58wbwlpcwj6dip07s";
+    rev = "v1.0.21";
+    sha256 = "0r2vp2y67jc1mpfl4j83sx5khvvaddx7xs26ppkigmr2d1xpxgr7";
   };
 
   title-sequences-src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/games/openttd/default.nix b/nixpkgs/pkgs/games/openttd/default.nix
index b42c7d2216e0..87e8084399c6 100644
--- a/nixpkgs/pkgs/games/openttd/default.nix
+++ b/nixpkgs/pkgs/games/openttd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchzip, pkg-config, which, SDL2, libpng, zlib, xz, freetype, fontconfig, libxdg_basedir
+{ lib, stdenv, fetchurl, fetchzip, cmake, SDL2, libpng, zlib, xz, freetype, fontconfig, libxdg_basedir
 , withOpenGFX ? true, withOpenSFX ? true, withOpenMSX ? true
 , withFluidSynth ? true, audioDriver ? "alsa", fluidsynth, soundfont-fluid, procps
 , writeScriptBin, makeWrapper, runtimeShell
@@ -6,18 +6,18 @@
 
 let
   opengfx = fetchzip {
-    url = "https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip";
-    sha256 = "1zg871j6kv7r0aqwca68d9kdf3smclgzan8hj76vj4fyfkykh173";
+    url = "https://cdn.openttd.org/opengfx-releases/0.6.1/opengfx-0.6.1-all.zip";
+    sha256 = "sha256-DeeIlLcmPeMZ0ju9DwXUInnQp2rWu60besDVto4+lDQ=";
   };
 
   opensfx = fetchzip {
-    url = "https://cdn.openttd.org/opensfx-releases/0.2.3/opensfx-0.2.3-all.zip";
-    sha256 = "1bb167kszdd6dqbcdjrxxwab6b7y7jilhzi3qijdhprpm5gf1lp3";
+    url = "https://cdn.openttd.org/opensfx-releases/1.0.1/opensfx-1.0.1-all.zip";
+    sha256 = "sha256-U1PIKbMZHRJ0Z9Cp2RqqCMhD1xRyudoNHAYIZyotxVk=";
   };
 
   openmsx = fetchzip {
-    url = "https://cdn.openttd.org/openmsx-releases/0.3.1/openmsx-0.3.1-all.zip";
-    sha256 = "0qnmfzz0v8vxrrvxnm7szphrlrlvhkwn3y92b4iy0b4b6yam0yd4";
+    url = "https://cdn.openttd.org/openmsx-releases/0.4.0/openmsx-0.4.0-all.zip";
+    sha256 = "sha256-Ok6W+iqi4SP7cD4HUQERrAysvVibnN7Q4/tkugffDgQ=";
   };
 
   playmidi = writeScriptBin "playmidi" ''
@@ -29,14 +29,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openttd";
-  version = "1.10.3";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz";
-    sha256 = "0fxmfz1mm95a2x0rnzfff9wb8q57w0cvsdd0z7agdcbyakph25n1";
+    sha256 = "sha256-XmUYTgc2i6Gvpi27PjWrrubE2mcw/0vJ60RH1TNjx6g=";
   };
 
-  nativeBuildInputs = [ pkg-config which makeWrapper ];
+  nativeBuildInputs = [ cmake makeWrapper ];
   buildInputs = [ SDL2 libpng xz zlib freetype fontconfig libxdg_basedir ]
     ++ lib.optionals withFluidSynth [ fluidsynth soundfont-fluid ];
 
@@ -46,25 +46,21 @@ stdenv.mkDerivation rec {
     "--without-liblzo2"
   ];
 
-  makeFlags = [ "INSTALL_PERSONAL_DIR=" ];
-
   postInstall = ''
-    mv $out/games/ $out/bin
-
     ${lib.optionalString withOpenGFX ''
-      cp ${opengfx}/* $out/share/games/openttd/baseset
+      cp ${opengfx}/*.tar $out/share/games/openttd/baseset
     ''}
 
     mkdir -p $out/share/games/openttd/data
 
     ${lib.optionalString withOpenSFX ''
-      cp ${opensfx}/*.{obs,cat} $out/share/games/openttd/data
+      cp ${opensfx}/*.tar $out/share/games/openttd/data
     ''}
 
     mkdir $out/share/games/openttd/baseset/openmsx
 
     ${lib.optionalString withOpenMSX ''
-      cp ${openmsx}/*.{obm,mid} $out/share/games/openttd/baseset/openmsx
+      cp ${openmsx}/*.tar $out/share/games/openttd/baseset/openmsx
     ''}
 
     ${lib.optionalString withFluidSynth ''
diff --git a/nixpkgs/pkgs/games/openttd/jgrpp.nix b/nixpkgs/pkgs/games/openttd/jgrpp.nix
index 83a8f9276945..7f756dd10b71 100644
--- a/nixpkgs/pkgs/games/openttd/jgrpp.nix
+++ b/nixpkgs/pkgs/games/openttd/jgrpp.nix
@@ -2,12 +2,12 @@
 
 openttd.overrideAttrs (oldAttrs: rec {
   pname = "openttd-jgrpp";
-  version = "0.34.4";
+  version = "0.40.5";
 
   src = fetchFromGitHub rec {
     owner = "JGRennison";
     repo = "OpenTTD-patches";
     rev = "jgrpp-${version}";
-    sha256 = "125mgia5hgcsn8314xyiip3z8y23rc3kdv7jczbncqlzsc75624v";
+    sha256 = "sha256-g1RmgVjefOrOVLTvFBiPEd19aLoFvB9yX/hMiKgGcGw=";
   };
 })
diff --git a/nixpkgs/pkgs/games/osu-lazer/default.nix b/nixpkgs/pkgs/games/osu-lazer/default.nix
index e3c22ae73283..26eef250c51b 100644
--- a/nixpkgs/pkgs/games/osu-lazer/default.nix
+++ b/nixpkgs/pkgs/games/osu-lazer/default.nix
@@ -16,13 +16,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "osu-lazer";
-  version = "2021.205.1";
+  version = "2021.323.0";
 
   src = fetchFromGitHub {
     owner = "ppy";
     repo = "osu";
     rev = version;
-    sha256 = "US8auytRXqtYGGNi+vxIzxCxpetWYeUkBRjgtJkPpMs=";
+    sha256 = "zoJGCsnjvXzPxGy85YsP+WbaN7p8EwcTqiCEX/czMR8=";
   };
 
   patches = [ ./bypass-tamper-detection.patch ];
diff --git a/nixpkgs/pkgs/games/osu-lazer/deps.nix b/nixpkgs/pkgs/games/osu-lazer/deps.nix
index b670ce0c5ed8..79ddcca65572 100644
--- a/nixpkgs/pkgs/games/osu-lazer/deps.nix
+++ b/nixpkgs/pkgs/games/osu-lazer/deps.nix
@@ -20,6 +20,11 @@
     sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv";
   })
   (fetchNuGet {
+    name = "HidSharpCore";
+    version = "1.2.1.1";
+    sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll";
+  })
+  (fetchNuGet {
     name = "Humanizer";
     version = "2.8.26";
     sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak";
@@ -300,6 +305,11 @@
     sha256 = "0qy4wamhcpxi9aqwq9kivhsj4rvhbch2wfwv11610psygb5457vk";
   })
   (fetchNuGet {
+    name = "Microsoft.AspNetCore.Connections.Abstractions";
+    version = "5.0.3";
+    sha256 = "1p4vzsx4q1lx93m2v1iy2z1i2dg2q5s2f6gznw5afbn5rqqqbsff";
+  })
+  (fetchNuGet {
     name = "Microsoft.AspNetCore.Http.Connections.Client";
     version = "5.0.2";
     sha256 = "0295a87ilrdg43sil5wli74x7jy4apibqdk1fxam8kzj99whl5sk";
@@ -315,6 +325,11 @@
     sha256 = "1rprpj1aw9z501rpb9415maqcqnk6pirbdl8yv5n9wpqgcnjizk8";
   })
   (fetchNuGet {
+    name = "Microsoft.AspNetCore.Http.Features";
+    version = "5.0.3";
+    sha256 = "0c6c5wpwkprf7a7mp1h10bvi2gg94lkpr3lznzpry3zjb5g7mk84";
+  })
+  (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Client";
     version = "5.0.2";
     sha256 = "18pdw4h1j93wzcvlj87jy7n5sxkwlj69nnb7a2qxkc40jvm18ran";
@@ -330,14 +345,19 @@
     sha256 = "1sbwp00hq0ng891wdj6yhah8hr9hw34zvqr1xzs86g3gpmssgcj5";
   })
   (fetchNuGet {
+    name = "Microsoft.AspNetCore.SignalR.Common";
+    version = "5.0.3";
+    sha256 = "1g19vkc3g76r2fpjy7c1fkbvbihk9pfmx4wfsgpjflvydmvhqf9m";
+  })
+  (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Protocols.Json";
     version = "5.0.2";
     sha256 = "0p9kv2iayhz8y68r30mhzssv0m087v243ai7aax7jd44rqiv1w5i";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack";
-    version = "5.0.2";
-    sha256 = "1f0mjw0swiaxk4iqf7n598d51w40lwdbap4nlc0sv0vw3nklnlzp";
+    version = "5.0.3";
+    sha256 = "0wf53knadwxyww85wc6m82paj0wdgsq4kbg7a3v95r6vbh4pav45";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson";
@@ -366,8 +386,8 @@
   })
   (fetchNuGet {
     name = "Microsoft.Build.Locator";
-    version = "1.2.6";
-    sha256 = "1rnfd7wq2bkynqj767xmq9ha38mz010fmqvvvrgb4v86gd537737";
+    version = "1.4.1";
+    sha256 = "0j119rri7a401rca67cxdyrn3rprzdl1b2wrblqc23xsff1xvlrx";
   })
   (fetchNuGet {
     name = "Microsoft.CodeAnalysis.Analyzers";
@@ -395,14 +415,9 @@
     sha256 = "1jfbqfngwwjx3x1cyqaamf26s7j6wag86ig1n7bh99ny85gd78wb";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.FxCopAnalyzers";
-    version = "3.3.2";
-    sha256 = "02apz67f1gbp4p0wy7r593m10mhjm0rwp9q1n96p9avhdc3dwmv5";
-  })
-  (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.VersionCheckAnalyzer";
-    version = "3.3.2";
-    sha256 = "1wxfkn16bqay7z64yxx50y9qkyznbfrv269h19fd60dy0vflwlfv";
+    name = "Microsoft.CodeAnalysis.NetAnalyzers";
+    version = "5.0.3";
+    sha256 = "1l0zg9wl8yapjq9g2d979zhsmdkr8kfybmxnl7kvgkgldf114fbg";
   })
   (fetchNuGet {
     name = "Microsoft.CodeAnalysis.Workspaces.Common";
@@ -415,11 +430,6 @@
     sha256 = "1ag78ls51s88znv4v004sbklrx3qnbphpdngjq196188a3vljww7";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeQuality.Analyzers";
-    version = "3.3.2";
-    sha256 = "0hfsjqg4kz5ylx461ssvbx64wgaiy8gcalb760jc53lvbd8qrq5r";
-  })
-  (fetchNuGet {
     name = "Microsoft.CSharp";
     version = "4.0.1";
     sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
@@ -505,6 +515,11 @@
     sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "5.0.0";
+    sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.Configuration.Binder";
     version = "2.2.0";
     sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j";
@@ -556,8 +571,8 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.ObjectPool";
-    version = "5.0.1";
-    sha256 = "012klayhnnygncdi9zzq32vballb2wbknk91g2ziz5mhdhg38lr8";
+    version = "5.0.3";
+    sha256 = "1slfc4ncl83dl2g1xm95qb04bkyir26zhvz26lkph1jff0ycx2wb";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Options";
@@ -580,11 +595,6 @@
     sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6";
   })
   (fetchNuGet {
-    name = "Microsoft.NetCore.Analyzers";
-    version = "3.3.2";
-    sha256 = "1h1bjiiw64qncs61p2idwxswv4kzq06bbl2rlghiagv6sbjk4pnq";
-  })
-  (fetchNuGet {
     name = "Microsoft.NETCore.App.Runtime.linux-x64";
     version = "5.0.0";
     sha256 = "1k9yxklzdnjfkqysg54dz0mr75yg29fhlls9alh5qlfpsfpk32yq";
@@ -620,11 +630,6 @@
     sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6";
   })
   (fetchNuGet {
-    name = "Microsoft.NetFramework.Analyzers";
-    version = "3.3.2";
-    sha256 = "0samfc6c3mm7c4g6b0m01c8c37ip5ywy1i2my02xsbf9vygkal89";
-  })
-  (fetchNuGet {
     name = "Microsoft.Win32.Primitives";
     version = "4.0.1";
     sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
@@ -721,13 +726,23 @@
   })
   (fetchNuGet {
     name = "NUnit";
-    version = "3.12.0";
-    sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2";
+    version = "3.13.1";
+    sha256 = "07156gr0yl9rqhyj44cp1xz9jpngbl5kb7ci3qfy9fcp01dczmm9";
+  })
+  (fetchNuGet {
+    name = "OpenTabletDriver";
+    version = "0.5.2.1";
+    sha256 = "0czbgxjkc5ryrnn9hl68wp464p4xp0883517iq87d1f7qb32gppl";
+  })
+  (fetchNuGet {
+    name = "OpenTabletDriver.Plugin";
+    version = "0.5.2.1";
+    sha256 = "199yasnq5dsb5c37vl8vry8lf536gpgclsk402sxdw9lz11xmmqd";
   })
   (fetchNuGet {
     name = "ppy.osu.Framework";
-    version = "2021.128.0";
-    sha256 = "19c0bj9d0hjcyhaf04aapyzyd4yrzhc61k89z2il7y32841vnzg6";
+    version = "2021.323.0";
+    sha256 = "1gxgvg8r7xsr94wy7rld5c1yd8ssv4iqsp2zdyp5r0qd5l1g09gc";
   })
   (fetchNuGet {
     name = "ppy.osu.Framework.NativeLibs";
@@ -736,8 +751,8 @@
   })
   (fetchNuGet {
     name = "ppy.osu.Game.Resources";
-    version = "2020.1202.0";
-    sha256 = "1m5156gkyyhf52ii6y7yqmsgpwcxn6zgji3nnyny6lk9glmc9vvs";
+    version = "2021.211.1";
+    sha256 = "0rqv5blmyzvcpk0b1r6fzr1bla62kr2fwkr1f9ahir9zafvk2wmm";
   })
   (fetchNuGet {
     name = "ppy.osuTK.NS20";
@@ -861,8 +876,8 @@
   })
   (fetchNuGet {
     name = "Sentry";
-    version = "3.0.1";
-    sha256 = "1nmqwprp2xv9d8llfncyw94nfws9nwb7zj0sqrd6lv1mfgaxraql";
+    version = "3.0.7";
+    sha256 = "1wlfia0ihyx2jd07faz4jqbldxq9bx4hv787xkfk1469h7f2vvwk";
   })
   (fetchNuGet {
     name = "SharpCompress";
@@ -871,8 +886,8 @@
   })
   (fetchNuGet {
     name = "SharpCompress";
-    version = "0.27.1";
-    sha256 = "1lhljszs94i1ssl831ik1a51n2pshf27nsjm78acnw1y1qnkm5pd";
+    version = "0.28.1";
+    sha256 = "1h7gx7apafdd0jnv12fppca9b6cpq205kjkcipclxp1lli0i7qvw";
   })
   (fetchNuGet {
     name = "SharpFNT";
@@ -881,8 +896,8 @@
   })
   (fetchNuGet {
     name = "SixLabors.ImageSharp";
-    version = "1.0.2";
-    sha256 = "0fhk9sn8k18slfb26wz8mal0j699f7djwhxgv97snz6b10wynfaj";
+    version = "1.0.3";
+    sha256 = "1y43zvhjgi9rhylc8451784hhdi5b551hf7fsa6187b83wgxc47g";
   })
   (fetchNuGet {
     name = "Splat";
diff --git a/nixpkgs/pkgs/games/papermc/default.nix b/nixpkgs/pkgs/games/papermc/default.nix
index e32ec946b2d7..f5bf9573e6be 100644
--- a/nixpkgs/pkgs/games/papermc/default.nix
+++ b/nixpkgs/pkgs/games/papermc/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchurl, bash, jre }:
 let
   mcVersion = "1.16.5";
-  buildNum = "457";
+  buildNum = "488";
   jar = fetchurl {
-    url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download";
-    sha256 = "1xkjaj5wgm9rmzk8mz20n9vd674fynvdgqsy96c9bfifa03lsnmc";
+     url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download";
+     sha256 = "07zgq6pfgwd9a9daqv1dab0q8cwgidsn6sszn7bpr37y457a4ka8";
   };
 in stdenv.mkDerivation {
   pname = "papermc";
diff --git a/nixpkgs/pkgs/games/pentobi/default.nix b/nixpkgs/pkgs/games/pentobi/default.nix
index 656bde2ac743..deb59eb23775 100644
--- a/nixpkgs/pkgs/games/pentobi/default.nix
+++ b/nixpkgs/pkgs/games/pentobi/default.nix
@@ -3,14 +3,14 @@
 }:
 
 mkDerivation rec {
-  version = "18.4";
+  version = "18.5";
   pname = "pentobi";
 
   src = fetchFromGitHub {
     owner = "enz";
     repo = "pentobi";
     rev = "v${version}";
-    sha256 = "1wawy6s3i4pcc6n6kfspn5b4g957ds0728mgwzw19agp5yyid73b";
+    sha256 = "sha256-iVgG2Ee1nJWpuquX2ntFHAJrPA0u9YnutmOC+cMrgZg=";
   };
 
   nativeBuildInputs = [ cmake docbook_xsl qttools ];
diff --git a/nixpkgs/pkgs/games/pinball/default.nix b/nixpkgs/pkgs/games/pinball/default.nix
index 73b719b2b700..31c1a9229e7e 100644
--- a/nixpkgs/pkgs/games/pinball/default.nix
+++ b/nixpkgs/pkgs/games/pinball/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, autoreconfHook, pkg-config
-, libglvnd, SDL, SDL_image, SDL_mixer, xlibs
+, libglvnd, SDL, SDL_image, SDL_mixer, xorg
 }:
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ libglvnd SDL SDL_image SDL_mixer xlibs.libSM ];
+  buildInputs = [ libglvnd SDL SDL_image SDL_mixer xorg.libSM ];
   strictDeps = true;
 
   configureFlags = [
@@ -38,3 +38,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 }
+
diff --git a/nixpkgs/pkgs/games/portmod/default.nix b/nixpkgs/pkgs/games/portmod/default.nix
index ef535991c23b..108d81815faa 100644
--- a/nixpkgs/pkgs/games/portmod/default.nix
+++ b/nixpkgs/pkgs/games/portmod/default.nix
@@ -1,5 +1,5 @@
 { lib, callPackage, python3Packages, fetchFromGitLab, cacert,
-  rustPlatform, bubblewrap, git, perlPackages, imagemagick7, fetchurl, fetchzip,
+  rustPlatform, bubblewrap, git, perlPackages, imagemagick, fetchurl, fetchzip,
   jre, makeWrapper, tr-patcher, tes3cmd }:
 
 let
@@ -29,7 +29,7 @@ let
     python3Packages.virtualenv
     tr-patcher
     tes3cmd
-    imagemagick7
+    imagemagick
   ];
 
 in
diff --git a/nixpkgs/pkgs/games/quakespasm/vulkan.nix b/nixpkgs/pkgs/games/quakespasm/vulkan.nix
index fbca6e0eb540..3565ce10ba1c 100644
--- a/nixpkgs/pkgs/games/quakespasm/vulkan.nix
+++ b/nixpkgs/pkgs/games/quakespasm/vulkan.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vkquake";
-  version = "1.05.1";
+  version = "1.05.2";
 
   src = fetchFromGitHub {
     owner = "Novum";
     repo = "vkQuake";
     rev = version;
-    sha256 = "03b2vxpakp6zizb0m65q9lq800z67b052k01q251b3f04kr1waih";
+    sha256 = "sha256-h4TpeOwCK3Ynd+XZKo7wHncWS1OI6+b9SReD5xMK9zk=";
   };
 
   sourceRoot = "source/Quake";
diff --git a/nixpkgs/pkgs/games/r2mod_cli/default.nix b/nixpkgs/pkgs/games/r2mod_cli/default.nix
index b81f1814ac9b..f45dd3948626 100644
--- a/nixpkgs/pkgs/games/r2mod_cli/default.nix
+++ b/nixpkgs/pkgs/games/r2mod_cli/default.nix
@@ -7,16 +7,16 @@
 
 stdenv.mkDerivation rec {
   pname = "r2mod_cli";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "Foldex";
     repo = "r2mod_cli";
     rev = "v${version}";
-    sha256 = "1g64f8ms7yz4rzm6xb93agc08kh9sbwkhvq35dpfhvi6v59j3n5m";
+    sha256 = "0as3nl9qiyf9daf2n78lyish319qclf2gbhr20mdd5wnqmxpk276";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/foldex/r2mod_cli";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.reedrw ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/games/racer/default.nix b/nixpkgs/pkgs/games/racer/default.nix
index dfbe9bc45e1f..16507fa219e0 100644
--- a/nixpkgs/pkgs/games/racer/default.nix
+++ b/nixpkgs/pkgs/games/racer/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation {
   } else
     throw "System not supported";
 
-
-  buildInputs = [ allegro libjpeg makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ allegro libjpeg ];
 
   prePatch = ''
     sed -i s,/usr/local,$out, Makefile src/HGFX.cpp src/STDH.cpp
diff --git a/nixpkgs/pkgs/games/rigsofrods/default.nix b/nixpkgs/pkgs/games/rigsofrods/default.nix
index 01dd1f0c04f3..72c8a49939d3 100644
--- a/nixpkgs/pkgs/games/rigsofrods/default.nix
+++ b/nixpkgs/pkgs/games/rigsofrods/default.nix
@@ -23,9 +23,9 @@ stdenv.mkDerivation rec {
     ln -s $out/share/rigsofrods/{RoR,RoRConfig} $out/bin
   '';
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config unzip ];
   buildInputs = [ wxGTK30 freeimage zziplib libGLU libGL boost
-    libuuid openal ogre ois curl gtk2 mygui unzip angelscript
+    libuuid openal ogre ois curl gtk2 mygui angelscript
     ogrepaged mysocketw libxcb ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/games/runelite/default.nix b/nixpkgs/pkgs/games/runelite/default.nix
index df8a5c3e8dcd..e9e77e275dc7 100644
--- a/nixpkgs/pkgs/games/runelite/default.nix
+++ b/nixpkgs/pkgs/games/runelite/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     startupNotify = null;
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   # colon is bash form of no-op (do nothing)
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/games/scid/default.nix b/nixpkgs/pkgs/games/scid/default.nix
index f0fdef8e62e5..7b1a15c0a551 100644
--- a/nixpkgs/pkgs/games/scid/default.nix
+++ b/nixpkgs/pkgs/games/scid/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation {
     sha256 = "0zb5qp04x8w4gn2kvfdfq2p44kmzfcqn7v167dixz6nlyxg41hrw";
   };
 
-  buildInputs = [ tcl tk libX11 zlib makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ tcl tk libX11 zlib ];
 
   prePatch = ''
     sed -i -e '/^ *set headerPath *{/a ${tcl}/include ${tk}/include' \
diff --git a/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix b/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix
index eea8d5650be1..8d92c88e1be4 100644
--- a/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -2,7 +2,7 @@
 , makeWrapper
 , fetchFromGitHub
 , nixosTests
-, gradle_5
+, gradle
 , perl
 , jre
 , libpulseaudio
@@ -10,13 +10,15 @@
 
 let
   pname = "shattered-pixel-dungeon";
-  version = "0.9.1d";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
     repo = "shattered-pixel-dungeon";
-    rev = "v${version}";
-    sha256 = "0f9vi1iffh477zi03hi07rmfbkb8i4chwvv43vs70mgjh4qx7247";
+    # NOTE: always use the commit sha, not the tag. Tags _will_ disappear!
+    # https://github.com/00-Evan/shattered-pixel-dungeon/issues/596
+    rev = "5be9ee815f1fc6e3511a09a367d3f9d8dc55c783";
+    sha256 = "0wknrf7jjnkshj4gmb1ksqiqif1rq53ffi3y29ynhcz68sa0frx6";
   };
 
   postPatch = ''
@@ -31,7 +33,7 @@ let
   deps = stdenv.mkDerivation {
     pname = "${pname}-deps";
     inherit version src postPatch;
-    nativeBuildInputs = [ gradle_5 perl ];
+    nativeBuildInputs = [ gradle perl ];
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d)
       # https://github.com/gradle/gradle/issues/4426
@@ -52,7 +54,7 @@ let
 in stdenv.mkDerivation rec {
   inherit pname version src postPatch;
 
-  nativeBuildInputs = [ gradle_5 perl makeWrapper ];
+  nativeBuildInputs = [ gradle perl makeWrapper ];
 
   buildPhase = ''
     export GRADLE_USER_HOME=$(mktemp -d)
@@ -79,11 +81,10 @@ in stdenv.mkDerivation rec {
     homepage = "https://shatteredpixel.com/";
     downloadPage = "https://github.com/00-Evan/shattered-pixel-dungeon/releases";
     description = "Traditional roguelike game with pixel-art graphics and simple interface";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
     # https://github.com/NixOS/nixpkgs/pull/99885#issuecomment-740065005
     broken = stdenv.isDarwin;
   };
 }
-
diff --git a/nixpkgs/pkgs/games/sil/default.nix b/nixpkgs/pkgs/games/sil/default.nix
index 3128ed5358b2..5f589ede2bc4 100644
--- a/nixpkgs/pkgs/games/sil/default.nix
+++ b/nixpkgs/pkgs/games/sil/default.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
     stripRoot=false;
   };
 
-  buildInputs = [ makeWrapper ncurses libX11 libXaw libXt libXext libXmu ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ncurses libX11 libXaw libXt libXext libXmu ];
 
   sourceRoot = "source/Sil/src";
 
diff --git a/nixpkgs/pkgs/games/simutrans/default.nix b/nixpkgs/pkgs/games/simutrans/default.nix
index 942c93ec043f..fc2654fd8e9b 100644
--- a/nixpkgs/pkgs/games/simutrans/default.nix
+++ b/nixpkgs/pkgs/games/simutrans/default.nix
@@ -115,8 +115,8 @@ let
 
     sourceRoot = ".";
 
-    nativeBuildInputs = [ pkg-config ];
-    buildInputs = [ zlib libpng bzip2 SDL SDL_mixer unzip ];
+    nativeBuildInputs = [ pkg-config unzip ];
+    buildInputs = [ zlib libpng bzip2 SDL SDL_mixer ];
 
     configurePhase = let
       # Configuration as per the readme.txt and config.template
diff --git a/nixpkgs/pkgs/games/sm64ex/default.nix b/nixpkgs/pkgs/games/sm64ex/default.nix
index 24ff22837910..9bf6b513843d 100644
--- a/nixpkgs/pkgs/games/sm64ex/default.nix
+++ b/nixpkgs/pkgs/games/sm64ex/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sm64ex";
-  version = "unstable-2020-06-19";
+  version = "unstable-2020-10-09";
 
   src = fetchFromGitHub {
     owner = "sm64pc";
     repo = "sm64ex";
-    rev = "f5005418348cf1a53bfa75ff415a513ef0b9b273";
-    sha256 = "0adyshkqk5c4lxhdxc3j6ax4svfka26486qpa5q2gl2nixwg9zxn";
+    rev = "57c203465b2b3eee03dcb796ed1fad07d8283a2c";
+    sha256 = "0k6a3r9f4spa7y2v1lyqs9lwa05lw8xgywllb7w828nal8y33cs6";
   };
 
   nativeBuildInputs = [ python3 pkg-config ];
diff --git a/nixpkgs/pkgs/games/spring/default.nix b/nixpkgs/pkgs/games/spring/default.nix
index fe16a8a0403a..21aca5730628 100644
--- a/nixpkgs/pkgs/games/spring/default.nix
+++ b/nixpkgs/pkgs/games/spring/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, lzma, boost, libdevil, zlib, p7zip
+{ lib, stdenv, fetchFromGitHub, cmake, xz, boost, libdevil, zlib, p7zip
 , openal, libvorbis, glew, freetype, xorg, SDL2, libGLU, libGL
 , asciidoc, docbook_xsl, docbook_xsl_ns, curl, makeWrapper
 , jdk ? null, python ? null, systemd, libunwind, which, minizip
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
                 "-DPREFER_STATIC_LIBS:BOOL=OFF"];
 
   nativeBuildInputs = [ cmake makeWrapper docbook_xsl docbook_xsl_ns asciidoc ];
-  buildInputs = [ lzma boost libdevil zlib p7zip openal libvorbis freetype SDL2
+  buildInputs = [ xz boost libdevil zlib p7zip openal libvorbis freetype SDL2
     xorg.libX11 xorg.libXcursor libGLU libGL glew curl
     systemd libunwind which minizip ]
     ++ lib.optional withAI jdk
@@ -60,5 +60,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ phreedom qknight domenkozar sorki ];
     platforms = platforms.linux;
+    # error: 'snprintf' was not declared in this scope
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/games/steam/fhsenv.nix b/nixpkgs/pkgs/games/steam/fhsenv.nix
index 924714d802a9..1a2ca5161eb7 100644
--- a/nixpkgs/pkgs/games/steam/fhsenv.nix
+++ b/nixpkgs/pkgs/games/steam/fhsenv.nix
@@ -106,6 +106,7 @@ in buildFHSUserEnv rec {
     gst_all_1.gst-plugins-ugly
     gst_all_1.gst-plugins-base
     libdrm
+    libxkbcommon # paradox launcher
     mono
     xorg.xkeyboardconfig
     xorg.libpciaccess
@@ -134,6 +135,21 @@ in buildFHSUserEnv rec {
     libuuid
     libbsd
     alsaLib
+
+    # needed by getcap for vr startup
+    libcap
+
+    # dependencies for mesa drivers, needed inside pressure-vessel
+    mesa.drivers
+    vulkan-loader
+    expat
+    wayland
+    xorg.libxcb
+    xorg.libXdamage
+    xorg.libxshmfence
+    xorg.libXxf86vm
+    llvm_11.lib
+    libelf
   ] ++ (if (!nativeOnly) then [
     (steamPackages.steam-runtime-wrapped.override {
       inherit runtimeOnly;
@@ -190,7 +206,6 @@ in buildFHSUserEnv rec {
     libidn
     tbb
     wayland
-    libxkbcommon
 
     # Other things from runtime
     flac
@@ -218,7 +233,14 @@ in buildFHSUserEnv rec {
     libvdpau
   ] ++ steamPackages.steam-runtime-wrapped.overridePkgs) ++ extraLibraries pkgs;
 
-  extraBuildCommands = if (!nativeOnly) then ''
+  extraBuildCommands = ''
+    if [ -f $out/usr/share/vulkan/icd.d/nvidia_icd.json ]; then
+      cp $out/usr/share/vulkan/icd.d/nvidia_icd{,32}.json
+      nvidia32Lib=$(realpath $out/lib32/libGLX_nvidia.so.0 | cut -d'/' -f-4)
+      escapedNvidia32Lib="''${nvidia32Lib//\//\\\/}"
+      sed -i "s/\/nix\/store\/.*\/lib\/libGLX_nvidia\.so\.0/$escapedNvidia32Lib\/lib\/libGLX_nvidia\.so\.0/g" $out/usr/share/vulkan/icd.d/nvidia_icd32.json
+    fi
+  '' + (if (!nativeOnly) then ''
     mkdir -p steamrt
     ln -s ../lib/steam-runtime steamrt/${steam-runtime-wrapped.arch}
     ${lib.optionalString (steam-runtime-wrapped-i686 != null) ''
@@ -231,7 +253,7 @@ in buildFHSUserEnv rec {
     ${lib.optionalString (steam-runtime-wrapped-i686 != null) ''
       ln -s /usr/lib32/libbz2.so usr/lib32/libbz2.so.1.0
     ''}
-  '';
+  '');
 
   extraInstallCommands = ''
     mkdir -p $out/share/applications
@@ -251,6 +273,8 @@ in buildFHSUserEnv rec {
     fi
 
     export STEAM_RUNTIME=${if nativeOnly then "0" else "/steamrt"}
+
+    export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json:/usr/share/vulkan/icd.d/intel_icd.i686.json:/usr/share/vulkan/icd.d/lvp_icd.x86_64.json:/usr/share/vulkan/icd.d/lvp_icd.i686.json:/usr/share/vulkan/icd.d/nvidia_icd.json:/usr/share/vulkan/icd.d/nvidia_icd32.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:/usr/share/vulkan/icd.d/radeon_icd.i686.json
   '' + extraProfile;
 
   runScript = writeScript "steam-wrapper.sh" ''
diff --git a/nixpkgs/pkgs/games/steam/fonts.nix b/nixpkgs/pkgs/games/steam/fonts.nix
index 44dde01a8a83..9cf68f2c29b0 100644
--- a/nixpkgs/pkgs/games/steam/fonts.nix
+++ b/nixpkgs/pkgs/games/steam/fonts.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1cgygmwich5f1jhhbmbkkpnzasjl8gy36xln76n6r2gjh6awqfx0";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   sourceRoot = ".";
 
diff --git a/nixpkgs/pkgs/games/steam/steam.nix b/nixpkgs/pkgs/games/steam/steam.nix
index 43c1512c6505..2c5932cf7faf 100644
--- a/nixpkgs/pkgs/games/steam/steam.nix
+++ b/nixpkgs/pkgs/games/steam/steam.nix
@@ -2,7 +2,7 @@
 
 let
   traceLog = "/tmp/steam-trace-dependencies.log";
-  version = "1.0.0.68";
+  version = "1.0.0.69";
 
 in stdenv.mkDerivation {
   pname = "steam-original";
@@ -10,7 +10,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://repo.steampowered.com/steam/pool/steam/s/steam/steam_${version}.tar.gz";
-    sha256 = "sha256-ZeiCYjxnH0Ath5bB20QHmE8R3wU4/3RiAw2NUhrrKNM=";
+    sha256 = "sha256-b5g4AUprE/lTunJs59IDlGu5O/1dB0kBvCFq0Eqyx2c=";
   };
 
   makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
diff --git a/nixpkgs/pkgs/games/stockfish/default.nix b/nixpkgs/pkgs/games/stockfish/default.nix
index 71c482fe7660..ef9c7fbe4d64 100644
--- a/nixpkgs/pkgs/games/stockfish/default.nix
+++ b/nixpkgs/pkgs/games/stockfish/default.nix
@@ -10,6 +10,7 @@ let
     arch = if stdenv.isDarwin then archDarwin else
            if stdenv.isx86_64 then "x86-64" else
            if stdenv.isi686 then "x86-32" else
+           if stdenv.isAarch64 then "armv8" else
            "unknown";
     version = "12";
 
@@ -55,7 +56,7 @@ stdenv.mkDerivation {
       much stronger than the best human chess grandmasters.
       '';
     maintainers = with maintainers; [ luispedro peti ];
-    platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"];
+    platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux"];
     license = licenses.gpl2;
   };
 
diff --git a/nixpkgs/pkgs/games/super-tux-kart/default.nix b/nixpkgs/pkgs/games/super-tux-kart/default.nix
index 961842e8701c..35143028a275 100644
--- a/nixpkgs/pkgs/games/super-tux-kart/default.nix
+++ b/nixpkgs/pkgs/games/super-tux-kart/default.nix
@@ -128,5 +128,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pyrolagus peterhoeg ];
     platforms = with platforms; linux;
+    changelog = "https://github.com/supertuxkart/stk-code/blob/${version}/CHANGELOG.md";
   };
 }
diff --git a/nixpkgs/pkgs/games/terraria-server/default.nix b/nixpkgs/pkgs/games/terraria-server/default.nix
index 94fb9d063b32..de430d296222 100644
--- a/nixpkgs/pkgs/games/terraria-server/default.nix
+++ b/nixpkgs/pkgs/games/terraria-server/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "18hcy7jfizyyp0h66rga8z948xg3nyk32rzl7hgv7ar1w43airhh";
   };
 
-  buildInputs = [ file unzip ];
-  nativeBuildInputs = [ autoPatchelfHook ];
+  buildInputs = [ file ];
+  nativeBuildInputs = [ autoPatchelfHook unzip ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/games/tintin/default.nix b/nixpkgs/pkgs/games/tintin/default.nix
index 80f9ffa8f4ff..29c41d2d787e 100644
--- a/nixpkgs/pkgs/games/tintin/default.nix
+++ b/nixpkgs/pkgs/games/tintin/default.nix
@@ -6,11 +6,11 @@
 assert tlsSupport -> gnutls != null;
 
 stdenv.mkDerivation rec {
-  name = "tintin-2.02.03";
+  name = "tintin-2.02.05";
 
   src = fetchurl {
     url    = "mirror://sourceforge/tintin/${name}.tar.gz";
-    sha256 = "0ybgy8j8i36d7f892x539vl6fl5zvvfyy5ffc98550vjr6qqhk74";
+    sha256 = "sha256-Y6cAUhItJNade8ASOVdF8aBBLf/UVqjoqrhXBNRL1aE=";
   };
 
   nativeBuildInputs = lib.optional tlsSupport gnutls.dev;
diff --git a/nixpkgs/pkgs/games/tremulous/default.nix b/nixpkgs/pkgs/games/tremulous/default.nix
index a4bf47b5e362..e07697f7c0e1 100644
--- a/nixpkgs/pkgs/games/tremulous/default.nix
+++ b/nixpkgs/pkgs/games/tremulous/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
     url = "http://releases.mercenariesguild.net/tremded/mg_tremded_source_1.01.tar.gz";
     sha256 = "1njrqlhzjvy9myddzkagszwdcf3m4h08wip888w2rmbshs6kz6ql";
   };
-  buildInputs = [ unzip libGLU libGL libX11 SDL openal ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ libGLU libGL libX11 SDL openal ];
   unpackPhase = ''
     unzip $src1
     cd tremulous
diff --git a/nixpkgs/pkgs/games/uchess/default.nix b/nixpkgs/pkgs/games/uchess/default.nix
new file mode 100644
index 000000000000..bc2524466ccb
--- /dev/null
+++ b/nixpkgs/pkgs/games/uchess/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, stockfish }:
+
+buildGoModule rec {
+  pname = "uchess";
+  version = "0.2.1";
+
+  subPackages = [ "cmd/uchess" ];
+
+  src = fetchFromGitHub {
+    owner = "tmountain";
+    repo = "uchess";
+    rev = "v${version}";
+    sha256 = "1njl3f41gshdpj431zkvpv2b7zmh4m2m5q6xsijb0c0058dk46mz";
+  };
+
+  vendorSha256 = "0dkq240ch1z3gihn8yc5d723nnvfxirk2nhw12r1c2hj1ga088g3";
+
+  # package does not contain any tests as of v0.2.1
+  doCheck = false;
+
+  buildInputs = [ makeWrapper ];
+  postInstall = ''
+    wrapProgram $out/bin/uchess --suffix PATH : ${stockfish}/bin
+  '';
+
+  meta = with lib; {
+    description = "Play chess against UCI engines in your terminal.";
+    homepage = "https://tmountain.github.io/uchess/";
+    maintainers = with maintainers; [ tmountain ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/games/uhexen2/default.nix b/nixpkgs/pkgs/games/uhexen2/default.nix
new file mode 100644
index 000000000000..dac081cd7b44
--- /dev/null
+++ b/nixpkgs/pkgs/games/uhexen2/default.nix
@@ -0,0 +1,66 @@
+{ lib, fetchgit, SDL, stdenv, libogg, libvorbis, libmad, xdelta }:
+
+stdenv.mkDerivation rec {
+  name = "uhexen2";
+  version = "1.5.9";
+
+  src = fetchgit {
+    url = "https://git.code.sf.net/p/uhexen2/uhexen2";
+    sha256 = "0crdihbnb92awkikn15mzdpkj1x9s34xixf1r7fxxf762m60niks";
+    rev = "4ef664bc41e3998b0d2a55ff1166dadf34c936be";
+  };
+
+  buildInputs = [ SDL libogg libvorbis libmad xdelta ];
+
+  preBuild = ''
+    makeFiles=(
+        "engine/hexen2 glh2"
+        "engine/hexen2 clean"
+        "engine/hexen2 h2"
+        "engine/hexen2/server"
+        "engine/hexenworld/client glhw"
+        "engine/hexenworld/client clean"
+        "engine/hexenworld/client hw"
+        "engine/hexenworld/server"
+        "h2patch"
+    )
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    for makefile in "''${makeFiles[@]}"; do
+          local flagsArray=(
+            -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES
+            SHELL=$SHELL
+            $makeFlags "''${makeFlagsArray[@]}"
+            $buildFlags "''${buildFlagsArray[@]}"
+          )
+          echoCmd 'build flags' ""''${flagsArray[@]}""
+          make  -C $makefile ""''${flagsArray[@]}""
+          unset flagsArray
+    done
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 engine/hexen2/{glhexen2,hexen2,server/h2ded} -t $out/bin
+    install -Dm755 engine/hexenworld/{client/glhwcl,client/hwcl,server/hwsv} -t $out/bin
+    install -Dm755 h2patch/h2patch -t $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A cross-platform port of Hexen II game";
+    longDescription = ''
+      Hammer of Thyrion (uHexen2) is a cross-platform port of Raven Software's Hexen II source.
+      It is based on an older linux port, Anvil of Thyrion.
+      HoT includes countless bug fixes, improved music, sound and video modes, opengl improvements,
+      support for many operating systems and architectures, and documentation among many others.
+    '';
+    homepage = "http://uhexen2.sourceforge.net/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ xdhampus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/unciv/default.nix b/nixpkgs/pkgs/games/unciv/default.nix
index 0f04ebfe4daf..6d9deb022e7c 100644
--- a/nixpkgs/pkgs/games/unciv/default.nix
+++ b/nixpkgs/pkgs/games/unciv/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "unciv";
-  version = "3.12.13-patch1";
+  version = "3.13.12-patch1";
 
   src = fetchurl {
     url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
-    sha256 = "sha256-OwS1rn5mfU6cA6pvpp7Q407Kw2wBGvpqWmqlajgHtCI=";
+    sha256 = "sha256-SgDfa3henwUb+oKybFJhvo1GkmC24wWz3U78etk+Dsk=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/games/urbanterror/default.nix b/nixpkgs/pkgs/games/urbanterror/default.nix
index 10553d483a50..dfbad29fa9e0 100644
--- a/nixpkgs/pkgs/games/urbanterror/default.nix
+++ b/nixpkgs/pkgs/games/urbanterror/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
        })
     ];
 
-  buildInputs = [ unzip SDL libGL libGLU openal curl libXxf86vm ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ SDL libGL libGLU openal curl libXxf86vm ];
   sourceRoot = "ioq3-for-UrbanTerror-4-release-${version}";
 
   configurePhase = ''
diff --git a/nixpkgs/pkgs/games/vassal/default.nix b/nixpkgs/pkgs/games/vassal/default.nix
index effb999e02c3..e1fc19fa05b2 100644
--- a/nixpkgs/pkgs/games/vassal/default.nix
+++ b/nixpkgs/pkgs/games/vassal/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "VASSAL";
-  version = "3.4.12";
+  version = "3.5.3";
 
   src = fetchzip {
     url = "https://github.com/vassalengine/vassal/releases/download/${version}/${pname}-${version}-linux.tar.bz2";
-    sha256 = "0xn403fxz6ay5lv8whyfdq611kvxj5q309bj317yw5cxbb08w1yb";
+    sha256 = "sha256-r48k4Un623uYsYcdF5UAH6w/uIdgWz8WQ75BiwrApkA=";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin $out/share/vassal $out/doc
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
       homepage = "http://www.vassalengine.org/";
       license = licenses.lgpl21Only;
       maintainers = with maintainers; [ tvestelind ];
-      platforms = platforms.linux;
+      platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/games/vms-empire/default.nix b/nixpkgs/pkgs/games/vms-empire/default.nix
index fcfc89667af2..b3e89617ef33 100644
--- a/nixpkgs/pkgs/games/vms-empire/default.nix
+++ b/nixpkgs/pkgs/games/vms-empire/default.nix
@@ -1,26 +1,50 @@
-{ lib, stdenv, fetchurl, ncurses, xmlto }:
+{ lib
+, stdenv
+, fetchurl
+, ncurses
+, xmlto
+, docbook_xml_dtd_44
+, docbook_xsl
+, installShellFiles
+}:
 
 stdenv.mkDerivation rec {
   pname = "vms-empire";
-  version = "1.15";
+  version = "1.16";
 
   src = fetchurl{
-    url = "http://www.catb.org/~esr/vms-empire/${pname}-${version}.tar.gz";
-    sha256 = "1vcpglkimcljb8s1dp6lzr5a0vbfxmh6xf37cmb8rf9wc3pghgn3";
+    url = "http://www.catb.org/~esr/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-XETIbt/qVU+TpamPc2WQynqqUuZqkTUnItBprjg+gPk=";
   };
 
-  buildInputs =
-  [ ncurses xmlto ];
+  nativeBuildInputs = [ installShellFiles ];
+  buildInputs = [
+    ncurses
+    xmlto
+    docbook_xml_dtd_44
+    docbook_xsl
+  ];
+
+  postBuild = ''
+    xmlto man vms-empire.xml
+    xmlto html-nochunks vms-empire.xml
+  '';
 
-  patchPhase = ''
-    sed -i -e 's|^install: empire\.6 uninstall|install: empire.6|' -e 's|usr/||g' Makefile
+  installPhase = ''
+    runHook preInstall
+    install -D vms-empire -t ${placeholder "out"}/bin/
+    install -D vms-empire.html -t ${placeholder "out"}/share/doc/${pname}/
+    install -D vms-empire.desktop -t ${placeholder "out"}/share/applications/
+    install -D vms-empire.png -t ${placeholder "out"}/share/icons/hicolor/48x48/apps/
+    install -D vms-empire.xml -t ${placeholder "out"}/share/appdata/
+    installManPage empire.6
+    runHook postInstall
   '';
 
   hardeningDisable = [ "format" ];
 
-  makeFlags = [ "DESTDIR=$(out)" ];
-
   meta = with lib; {
+    homepage = "http://catb.org/~esr/vms-empire/";
     description = "The ancestor of all expand/explore/exploit/exterminate games";
     longDescription = ''
       Empire is a simulation of a full-scale war between two emperors, the
@@ -30,11 +54,8 @@ stdenv.mkDerivation rec {
       expand/explore/exploit/exterminate games, including Civilization and
       Master of Orion.
     '';
-    homepage = "http://catb.org/~esr/vms-empire/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.AndersonTorres ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
-
-
diff --git a/nixpkgs/pkgs/games/wargus/default.nix b/nixpkgs/pkgs/games/wargus/default.nix
new file mode 100644
index 000000000000..fda4f792c7b2
--- /dev/null
+++ b/nixpkgs/pkgs/games/wargus/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, callPackage, fetchFromGitHub
+, cmake, pkg-config, makeWrapper
+, zlib, bzip2, libpng
+, dialog, python3, cdparanoia
+}:
+
+let
+  stratagus = callPackage ./stratagus.nix {};
+in
+stdenv.mkDerivation rec {
+  pname = "wargus";
+  inherit (stratagus) version;
+
+  src = fetchFromGitHub {
+    owner = "wargus";
+    repo = "wargus";
+    rev = "v${version}";
+    sha256 = "0dibm68jxaqzgzcyblfj2bmwyz9v5ax0njnnbvak7xjk1zlh11sx";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config makeWrapper ];
+  buildInputs = [ zlib bzip2 libpng ];
+  cmakeFlags = [
+    "-DSTRATAGUS=${stratagus}/games/stratagus"
+    "-DSTRATAGUS_INCLUDE_DIR=${stratagus.src}/gameheaders"
+  ];
+  postInstall = ''
+    makeWrapper $out/games/wargus $out/bin/wargus \
+      --prefix PATH : ${lib.makeBinPath [ "$out" cdparanoia python3 ]}
+  '';
+
+  meta = with lib; {
+    description = "Importer and scripts for Warcraft II: Tides of Darkness, the expansion Beyond the Dark Portal, and Aleonas Tales";
+    homepage = "https://wargus.github.io/";
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.astro ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/wargus/stratagus.nix b/nixpkgs/pkgs/games/wargus/stratagus.nix
new file mode 100644
index 000000000000..f029e284f336
--- /dev/null
+++ b/nixpkgs/pkgs/games/wargus/stratagus.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub
+, cmake, pkg-config, makeWrapper
+, zlib, bzip2, libpng, lua5_1, toluapp
+, SDL, SDL_mixer, SDL_image, libGL
+}:
+
+stdenv.mkDerivation rec {
+  pname = "stratagus";
+  version = "2.4.3";
+
+  src = fetchFromGitHub {
+    owner = "wargus";
+    repo = "stratagus";
+    rev = "v${version}";
+    sha256 = "128m5n9axq007xi8a002ig7d4dyw8j060542x220ld66ibfprhcn";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [
+    zlib bzip2 libpng
+    lua5_1 toluapp
+    SDL.dev SDL_image SDL_mixer libGL
+  ];
+  cmakeFlags = [
+    "-DCMAKE_CXX_FLAGS=-Wno-error=format-overflow"
+  ];
+
+  meta = with lib; {
+    description = "strategy game engine";
+    homepage = "https://wargus.github.io/stratagus.html";
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.astro ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/warsow/engine.nix b/nixpkgs/pkgs/games/warsow/engine.nix
index 4c8de4a02d33..e796c589290a 100644
--- a/nixpkgs/pkgs/games/warsow/engine.nix
+++ b/nixpkgs/pkgs/games/warsow/engine.nix
@@ -1,15 +1,9 @@
-{ stdenv, lib, fetchurl, cmake, libogg, libvorbis, libtheora, curl, freetype
+{ stdenv, lib, substituteAll, fetchurl, cmake, libogg, libvorbis, libtheora, curl, freetype
 , libjpeg, libpng, SDL2, libGL, openal, zlib
 }:
 
-let
-  # The game loads all those via dlopen().
-  libs = lib.mapAttrs (name: x: lib.getLib x) {
-    inherit zlib curl libpng libjpeg libogg libvorbis libtheora freetype;
-  };
-
-in stdenv.mkDerivation (libs // rec {
-  name = "warsow-engine-${version}";
+stdenv.mkDerivation rec {
+  pname = "warsow-engine";
   version = "2.1.0";
 
   src = fetchurl {
@@ -17,6 +11,13 @@ in stdenv.mkDerivation (libs // rec {
     sha256 = "0fj5k7qpf6far8i1xhqxlpfjch10zj26xpilhp95aq2yiz08pj4r";
   };
 
+  patches = [
+    (substituteAll {
+      src = ./libpath.patch;
+      inherit zlib curl libpng libjpeg libogg libvorbis libtheora freetype;
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [
@@ -24,28 +25,30 @@ in stdenv.mkDerivation (libs // rec {
     libpng
   ];
 
-  patches = [ ./libpath.patch ];
-  postPatch = ''
+  cmakeFlags = [ "-DQFUSION_GAME=Warsow" ];
+
+  preConfigure = ''
     cd source/source
-    substituteAllInPlace gameshared/q_arch.h
   '';
 
-  cmakeFlags = [ "-DQFUSION_GAME=Warsow" ];
-
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/lib
     cp -r libs $out/lib/warsow
     for i in warsow.* wsw_server.* wswtv_server.*; do
       install -Dm755 "$i" "$out/bin/''${i%.*}"
     done
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Multiplayer FPS game designed for competitive gaming (engine only)";
     homepage = "http://www.warsow.net";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ astsmtl abbradar ];
     platforms = platforms.linux;
     broken = stdenv.isAarch64;
   };
-})
+}
diff --git a/nixpkgs/pkgs/games/warzone2100/default.nix b/nixpkgs/pkgs/games/warzone2100/default.nix
index ce330536b751..a90f76743d73 100644
--- a/nixpkgs/pkgs/games/warzone2100/default.nix
+++ b/nixpkgs/pkgs/games/warzone2100/default.nix
@@ -1,24 +1,19 @@
 { lib
-, mkDerivation
+, stdenv
 , fetchurl
 , cmake
 , ninja
-, zip, unzip
+, zip
 , pkg-config
 , asciidoctor
 , gettext
 
-, qtbase
-, qtscript
 , SDL2
 , libtheora
 , libvorbis
 , openal
 , openalSoft
-, glew
 , physfs
-, fribidi
-, libXrandr
 , miniupnpc
 , libsodium
 , curl
@@ -27,6 +22,9 @@
 , harfbuzz
 , sqlite
 , which
+, vulkan-headers
+, vulkan-loader
+, shaderc
 
 , withVideos ? false
 }:
@@ -39,27 +37,22 @@ let
   };
 in
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   inherit pname;
-  version  = "3.4.1";
+  version  = "4.0.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/releases/${version}/${pname}_src.tar.xz";
-    sha256 = "0savalmw1kp1sf8vg5aqrl5hc77p4jacxy5y9qj8k2hi2vqdfb7a";
+    sha256 = "1d94072yns2xrjpagw1mqq7iyywhwz7vn3lgjdwmbgjy79jzcs1k";
   };
 
   buildInputs = [
-    qtbase
-    qtscript
     SDL2
     libtheora
     libvorbis
     openal
     openalSoft
-    glew
     physfs
-    fribidi
-    libXrandr
     miniupnpc
     libsodium
     curl
@@ -67,14 +60,18 @@ mkDerivation rec {
     freetype
     harfbuzz
     sqlite
+    vulkan-headers
+    vulkan-loader
   ];
 
   nativeBuildInputs = [
+    pkg-config
     cmake
     ninja
-    zip unzip
+    zip
     asciidoctor
     gettext
+    shaderc
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/games/wesnoth/default.nix b/nixpkgs/pkgs/games/wesnoth/default.nix
index 205937028a73..6eedc446f53f 100644
--- a/nixpkgs/pkgs/games/wesnoth/default.nix
+++ b/nixpkgs/pkgs/games/wesnoth/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wesnoth";
-  version = "1.14.15";
+  version = "1.14.16";
 
   src = fetchFromGitHub {
     rev = version;
     owner = "wesnoth";
     repo = "wesnoth";
-    sha256 = "sha256-HbQy5yhNe6HFydipqh2wWcyLfIjbdRjcBQaqAOtBJsY=";
+    sha256 = "sha256-QMz7atxol18r//UNb6+H6xAAEQdR4hAN8UW0KeGSH1g=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/games/worldofgoo/default.nix b/nixpkgs/pkgs/games/worldofgoo/default.nix
index 27a270fcf8f3..a9938cfcbc04 100644
--- a/nixpkgs/pkgs/games/worldofgoo/default.nix
+++ b/nixpkgs/pkgs/games/worldofgoo/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     sha256 = "175e4b0499a765f1564942da4bd65029f8aae1de8231749c56bec672187d53ee";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
   sourceRoot = pname;
   phases = [ "unpackPhase installPhase" ];
 
diff --git a/nixpkgs/pkgs/games/xcowsay/default.nix b/nixpkgs/pkgs/games/xcowsay/default.nix
index 0a6371801bd5..89ca50b3a332 100644
--- a/nixpkgs/pkgs/games/xcowsay/default.nix
+++ b/nixpkgs/pkgs/games/xcowsay/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xcowsay";
-  version = "1.5";
+  version = "1.5.1";
 
   src = fetchurl {
     url = "http://www.nickg.me.uk/files/xcowsay-${version}.tar.gz";
-    sha256 = "0pyaa062z1ag26dhkm1yzp2hivnlmhlpqn5xg7mx9r1m652mm91y";
+    sha256 = "sha256-wypsfAp634wbaAI+fxzmr3J5AmvQzChVi/wp/BPxiA0=";
   };
 
   buildInputs = [
@@ -32,9 +32,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.doof.me.uk/xcowsay";
-    description =
-      "A program based on cowsay that displays a cute cow and message on your desktop";
-    license = licenses.gpl3;
+    description = "Tool to display a cute cow and messages";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ das_j ];
   };
 }
diff --git a/nixpkgs/pkgs/games/xonotic/default.nix b/nixpkgs/pkgs/games/xonotic/default.nix
index 54ec25c8cf79..fb6cb93f7f24 100644
--- a/nixpkgs/pkgs/games/xonotic/default.nix
+++ b/nixpkgs/pkgs/games/xonotic/default.nix
@@ -62,7 +62,8 @@ let
       sha256 = "0axxw04fyz6jlfqd0kp7hdrqa0li31sx1pbipf2j5qp9wvqicsay";
     };
 
-    buildInputs = [ unzip libjpeg zlib libvorbis curl ]
+    nativeBuildInputs = [ unzip ];
+    buildInputs = [ libjpeg zlib libvorbis curl ]
       ++ lib.optional withGLX [ libX11.dev libGLU.dev libGL.dev libXpm.dev libXext.dev libXxf86vm.dev alsaLib.dev ]
       ++ lib.optional withSDL [ SDL2.dev ];
 
diff --git a/nixpkgs/pkgs/games/zaz/default.nix b/nixpkgs/pkgs/games/zaz/default.nix
index edee0db26179..1925d6417175 100644
--- a/nixpkgs/pkgs/games/zaz/default.nix
+++ b/nixpkgs/pkgs/games/zaz/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zaz";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "15q3kxzl71m50byw37dshfsx5wp240ywah19ccmqmqarcldcqcp3";
+    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "1r3bmwny05zzmdalxm5ah2rray0nnsg1w00r30p47q6x2lpwj8ml";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/games/zdoom/bcc-git.nix b/nixpkgs/pkgs/games/zdoom/bcc-git.nix
index 8716a82fc105..2e9f1a9c2b91 100644
--- a/nixpkgs/pkgs/games/zdoom/bcc-git.nix
+++ b/nixpkgs/pkgs/games/zdoom/bcc-git.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   };
 
   enableParallelBuilding = true;
-  makeFlags = ["CC=cc"];
+  makeFlags = ["CC=${stdenv.cc.targetPrefix}cc"];
 
   patches = [ ./bcc-warning-fix.patch ];
 
diff --git a/nixpkgs/pkgs/games/zod/default.nix b/nixpkgs/pkgs/games/zod/default.nix
index b07db62aa157..c358e599924a 100644
--- a/nixpkgs/pkgs/games/zod/default.nix
+++ b/nixpkgs/pkgs/games/zod/default.nix
@@ -24,7 +24,8 @@ stdenv.mkDerivation {
     sourceRoot=`pwd`/src
   '';
 
-  buildInputs = [ unrar unzip SDL SDL_image SDL_ttf SDL_mixer libmysqlclient makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unrar unzip ];
+  buildInputs = [ SDL SDL_image SDL_ttf SDL_mixer libmysqlclient ];
 
   NIX_LDFLAGS = "-L${libmysqlclient}/lib/mysql";
 
diff --git a/nixpkgs/pkgs/misc/cups/drivers/canon/default.nix b/nixpkgs/pkgs/misc/cups/drivers/canon/default.nix
index 754c0f4d1d0e..0d6ec276b5f4 100644
--- a/nixpkgs/pkgs/misc/cups/drivers/canon/default.nix
+++ b/nixpkgs/pkgs/misc/cups/drivers/canon/default.nix
@@ -1,4 +1,5 @@
-{lib, stdenv, fetchurl, unzip, autoreconfHook, libtool, makeWrapper, cups, ghostscript, pkgsi686Linux, zlib }:
+{ lib, stdenv, fetchurl, unzip, autoreconfHook, libtool, makeWrapper, cups
+, ghostscript, pkgsi686Linux, zlib }:
 
 let
 
@@ -20,7 +21,7 @@ in
 
 stdenv.mkDerivation {
   pname = "canon-cups-ufr2";
-  version = version;
+  inherit version;
   src = src_canon;
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/nixpkgs/pkgs/misc/cups/drivers/cnijfilter2/default.nix b/nixpkgs/pkgs/misc/cups/drivers/cnijfilter2/default.nix
index ce11f4a0551b..c46bb564a1ea 100644
--- a/nixpkgs/pkgs/misc/cups/drivers/cnijfilter2/default.nix
+++ b/nixpkgs/pkgs/misc/cups/drivers/cnijfilter2/default.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation {
   pname = "cnijfilter2";
 
-  version = "5.70";
+  version = "6.00";
 
   src = fetchzip {
-    url = "http://gdlp01.c-wss.com/gds/0/0100009930/01/cnijfilter2-source-5.70-1.tar.gz";
-    sha256 = "045zjsmaidn1m44ki6m1018gjzbj77gm234n5i2lshxpbzpyh0is";
+    url = "https://gdlp01.c-wss.com/gds/9/0100010739/01/cnijfilter2-source-6.00-1.tar.gz";
+    sha256 = "1n4vq44zya0n4a7jvq3yyqy7dcvc2911cjvxmq48zqicb2xdgafr";
   };
 
   buildInputs = [
@@ -114,10 +114,21 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "Canon InkJet printer drivers for the MG7500, MG6700, MG6600, MG5600, MG2900, MB2000, MB2300, iB4000, MB5000, MB5300, iP110, E450, MX490, E480, MG7700, MG6900, MG6800, MG5700, MG3600, and G3000 series";
-    homepage = "http://support-th.canon-asia.com/contents/TH/EN/0100712901.html";
+    description = "Canon InkJet printer drivers for many Pixma series printers.";
+    longDescription = ''
+      Canon InjKet printer drivers for series E200, E300, E3100, E3300, E4200, E450, E470, E480,
+      G3000, G3010, G4000, G4010, G5000, G5080, G6000, G6050, G6080, G7000, G7050, G7080, GM2000,
+      GM2080, GM4000, GM4080, iB4000, iB4100, iP110, MB2000, MB2100, MB2300, MB2700, MB5000,
+      MB5100, MB5300, MB5400, MG2900, MG3000, MG3600, MG5600, MG5700, MG6600, MG6700, MG6800,
+      MG6900, MG7500, MG7700, MX490, TR4500, TR703, TR7500, TR7530, TR8500, TR8530, TR8580, TR9530,
+      TS200, TS300, TS3100, TS3300, TS5000, TS5100, TS5300, TS5380, TS6000, TS6100, TS6130, TS6180,
+      TS6200, TS6230, TS6280, TS6300, TS6330, TS6380, TS700, TS708, TS7330, TS8000, TS8100, TS8130,
+      TS8180, TS8200, TS8230, TS8280, TS8300, TS8330, TS8380, TS9000, TS9100, TS9180, TS9500,
+      TS9580, XK50, XK60, XK70, XK80.
+    '';
+    homepage = "https://hk.canon/en/support/0101048401/1";
     license = licenses.unfree;
-    platforms = platforms.linux;
+    platforms = [ "i686-linux" "x86_64-linux" ];
     maintainers = with maintainers; [ cstrahan ];
   };
 }
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
new file mode 100644
index 000000000000..d49143655459
--- /dev/null
+++ b/nixpkgs/pkgs/misc/cups/drivers/cups-drv-rastertosag-gdi/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, fetchzip
+, fetchpatch
+, cups
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "rastertosag-gdi";
+  version = "0.1";
+  src = fetchzip {
+    url = "https://www.openprinting.org/download/printing/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "1ldplpv497j8vhw24sksg3fiw8c5pqr0wajajh7p5xpvb6zlcmvw";
+  };
+  patches = [
+    # port to python 3
+    ( fetchpatch {
+      url = "https://sources.debian.org/data/main/r/${pname}/0.1-7/debian/patches/0001-${pname}-python3.patch";
+      sha256 = "1l3xbrs67025595k9ba5794q3s74anizpbxwsshcfhmbrzd9h8hg";
+    })
+  ];
+  format = "other";
+  nativeBuildInputs = [ (lib.getBin cups) ];
+  # The source image also brings pre-built ppd files,
+  # be we prefer to generate from source where possible, so
+  # the following line generates ppd files from the drv file.
+  postBuild = ''
+    ppdc -v -d . -I "${cups}/share/cups/ppdc" rastertosag-gdi.drv
+  '';
+  installPhase = ''
+    runHook preInstall
+    install -vDm 0644 -t "${placeholder "out"}/share/cups/model/rastertosag-gdi/" *.ppd
+    install -vDm 0755 -t "${placeholder "out"}/bin/" rastertosag-gdi
+    install -vd "${placeholder "out"}/lib/cups/filter/"
+    ln -vst "${placeholder "out"}/lib/cups/filter/" "${placeholder "out"}/bin/rastertosag-gdi"
+    runHook postInstall
+  '';
+  meta = {
+    description = "CUPS driver for Ricoh Aficio SP 1000S and SP 1100S printers";
+    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
+    maintainers = [ lib.maintainers.yarny ];
+    longDescription = ''
+      This package brings CUPS raster filter
+      for Ricoh Aficio SP 1000S and SP 1100S.
+      In contrast to other Ricoh laser printers,
+      they use the proprietary SAG-GDI raster format by
+      Sagem Communication and do not understand PCL or PostScript.
+      Therefore they do not work with Ricoh's PPD files.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/misc/cups/drivers/hll2340dw/default.nix b/nixpkgs/pkgs/misc/cups/drivers/hll2340dw/default.nix
index 35d81b3da006..e61d3ace5f15 100644
--- a/nixpkgs/pkgs/misc/cups/drivers/hll2340dw/default.nix
+++ b/nixpkgs/pkgs/misc/cups/drivers/hll2340dw/default.nix
@@ -1,4 +1,6 @@
-{lib, stdenv, fetchurl, cups, dpkg, gnused, makeWrapper, ghostscript, file, a2ps, coreutils, gawk, perl, gnugrep, which}:
+{ lib, stdenv, fetchurl, cups, dpkg, gnused, makeWrapper, ghostscript, file
+, a2ps, coreutils, perl, gnugrep, which
+}:
 
 let
   version = "3.2.0-1";
diff --git a/nixpkgs/pkgs/misc/documentation-highlighter/default.nix b/nixpkgs/pkgs/misc/documentation-highlighter/default.nix
index 022cc4aa834e..2a34e36742d5 100644
--- a/nixpkgs/pkgs/misc/documentation-highlighter/default.nix
+++ b/nixpkgs/pkgs/misc/documentation-highlighter/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, runCommand }:
+{ lib, runCommand }:
 runCommand "documentation-highlighter" {
   meta = {
     description = "Highlight.js sources for the Nix Ecosystem's documentation";
diff --git a/nixpkgs/pkgs/misc/drivers/epkowa/default.nix b/nixpkgs/pkgs/misc/drivers/epkowa/default.nix
index ae8749f0326b..29ebfa173296 100644
--- a/nixpkgs/pkgs/misc/drivers/epkowa/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/epkowa/default.nix
@@ -13,7 +13,6 @@
 , rpm
 , cpio
 , getopt
-, patchelf
 , autoPatchelfHook
 , gcc
 }:
@@ -99,6 +98,35 @@ let plugins = {
     };
     meta = common_meta // { description = "Plugin to support " + passthru.hw + " scanner in sane"; };
   };
+  v600 = stdenv.mkDerivation rec {
+    pname = "iscan-gt-x820-bundle";
+    version = "2.30.4";
+
+    nativeBuildInputs = [ autoPatchelfHook rpm ];
+    src = fetchurl {
+      urls = [
+        "https://download2.ebz.epson.net/iscan/plugin/gt-x820/rpm/x64/iscan-gt-x820-bundle-${version}.x64.rpm.tar.gz"
+        "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/gt-x820/rpm/x64/iscan-gt-x820-bundle-${version}.x64.rpm.tar.gz"
+      ];
+      sha256 = "1vlba7dsgpk35nn3n7is8nwds3yzlk38q43mppjzwsz2d2n7sr33";
+    };
+    installPhase = ''
+      cd plugins
+      ${rpm}/bin/rpm2cpio iscan-plugin-gt-x820-*.x86_64.rpm | ${cpio}/bin/cpio -idmv
+      mkdir $out
+      cp -r usr/share $out
+      cp -r usr/lib64 $out/lib
+      mv $out/share/iscan $out/share/esci
+      mv $out/lib/iscan $out/lib/esci
+    '';
+    passthru = {
+      registrationCommand = ''
+        $registry --add interpreter usb 0x04b8 0x013a "$plugin/lib/esci/libesintA1 $plugin/share/esci/esfwA1.bin"
+      '';
+      hw = "Perfection V600 Photo";
+    };
+    meta = common_meta // { description = "iscan esci x820 plugin for " + passthru.hw; };
+  };
   x770 = stdenv.mkDerivation rec {
     pname = "iscan-gt-x770-bundle";
     version = "2.30.4";
@@ -266,14 +294,14 @@ let fwdir = symlinkJoin {
 in
 let iscan-data = stdenv.mkDerivation rec {
   pname = "iscan-data";
-  version = "1.39.1-2";
+  version = "1.39.2-1";
 
   src = fetchurl {
     urls = [
       "http://support.epson.net/linux/src/scanner/iscan/iscan-data_${version}.tar.gz"
       "https://web.archive.org/web/http://support.epson.net/linux/src/scanner/iscan/iscan-data_${version}.tar.gz"
     ];
-    sha256 = "04zrvbnxf1k6zinrd13hwnbzscc3qhmwlvx3k2jhjys2lginw7w4";
+    sha256 = "092qhlnjjgz11ifx6mng7mz20i44gc0nlccrbmw18xr5hipbqqka";
   };
 
   buildInputs = [
@@ -295,17 +323,16 @@ stdenv.mkDerivation rec {
     sha256 = "1ma76jj0k3bz0fy06fiyl4di4y77rcryb0mwjmzs5ms2vq9rjysr";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config libtool makeWrapper ];
   buildInputs = [
     gtk2
     libxml2
-    libtool
     libusb-compat-0_1
     sane-backends
-    makeWrapper
   ];
 
   patches = [
+    # Patch for compatibility with libpng versions greater than 10499
     (fetchpatch {
       urls = [
         "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-gfx/iscan/files/iscan-2.28.1.3+libpng-1.5.patch?h=b6e4c805d53b49da79a0f64ef16bb82d6d800fcf"
@@ -313,7 +340,9 @@ stdenv.mkDerivation rec {
       ];
       sha256 = "04y70qjd220dpyh771fiq50lha16pms98mfigwjczdfmx6kpj1jd";
     })
+    # Patch iscan to search appropriate folders for firmware files
     ./firmware_location.patch
+    # Patch deprecated use of sscanf code to use a more modern C99 compatible version
     ./sscanf.patch
   ];
   patchFlags = [ "-p0" ];
diff --git a/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix b/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix
index deea3bd25f50..7302cfb25bcf 100644
--- a/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix
@@ -1,14 +1,16 @@
 { lib, stdenv, fetchurl, foomatic-filters, bc, unzip, ghostscript, systemd, vim, time }:
 
 stdenv.mkDerivation rec {
-  name = "foo2zjs-20180519";
+  pname = "foo2zjs";
+  version = "20210116";
 
   src = fetchurl {
-    url = "http://www.loegria.net/mirrors/foo2zjs/${name}.tar.gz";
-    sha256 = "1rmw4jmxn2lqp124mapvnic0ma8ipyvisx2vj848mvad5g5w9x3z";
+    url = "http://www.loegria.net/mirrors/foo2zjs/foo2zjs-${version}.tar.gz";
+    sha256 = "14x3wizvncdy0xgvmcx541qanwb7bg76abygqy17bxycn1zh5r1x";
   };
 
-  buildInputs = [ foomatic-filters bc unzip ghostscript systemd vim ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ foomatic-filters bc ghostscript systemd vim ];
 
   patches = [ ./no-hardcode-fw.diff ];
 
diff --git a/nixpkgs/pkgs/misc/drivers/spacenavd/default.nix b/nixpkgs/pkgs/misc/drivers/spacenavd/default.nix
new file mode 100644
index 000000000000..734b2229c877
--- /dev/null
+++ b/nixpkgs/pkgs/misc/drivers/spacenavd/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, fetchFromGitHub, libX11 }:
+
+stdenv.mkDerivation rec {
+  version = "0.8";
+  pname = "spacenavd";
+
+  src = fetchFromGitHub {
+    owner = "FreeSpacenav";
+    repo = "spacenavd";
+    rev = "v${version}";
+    sha256 = "1zz0cm5cgvp9s5n4nzksl8rb11c7sw214bdafzra74smvqfjcjcf";
+  };
+
+  buildInputs = [ libX11 ];
+
+  configureFlags = [ "--disable-debug"];
+
+  meta = with lib; {
+    homepage = "http://spacenav.sourceforge.net/";
+    description = "Device driver and SDK for 3Dconnexion 3D input devices";
+    longDescription = "A free, compatible alternative, to the proprietary 3Dconnexion device driver and SDK, for their 3D input devices (called 'space navigator', 'space pilot', 'space traveller', etc)";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sohalt ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/atari800/default.nix b/nixpkgs/pkgs/misc/emulators/atari800/default.nix
index 163b81922c2b..53f1009cfad5 100644
--- a/nixpkgs/pkgs/misc/emulators/atari800/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/atari800/default.nix
@@ -13,9 +13,9 @@ stdenv.mkDerivation rec {
     sha256 = "15l08clqqayi9izrgsz9achan6gl4x57wqsc8mad3yn0xayzz3qy";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook unzip ];
 
-  buildInputs = [ unzip zlib SDL readline libGLU libGL libX11 ];
+  buildInputs = [ zlib SDL readline libGLU libGL libX11 ];
 
   configureFlags = [
     "--target=default"
diff --git a/nixpkgs/pkgs/misc/emulators/blastem/default.nix b/nixpkgs/pkgs/misc/emulators/blastem/default.nix
index eba646e2f20f..a2dc86449d9e 100644
--- a/nixpkgs/pkgs/misc/emulators/blastem/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/blastem/default.nix
@@ -25,7 +25,8 @@ stdenv.mkDerivation {
     url = "https://www.retrodev.com/repos/blastem/archive/3d48cb0c28be.tar.gz";
     sha256 = "07wzbmzp0y8mh59jxg81q17gqagz3psxigxh8dmzsipgg68y6a8r";
   };
-  buildInputs = [ pkg-config SDL2 glew xcftools python pillow vasm makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ pkg-config SDL2 glew xcftools python pillow vasm ];
   preBuild = ''
     patchShebangs img2tiles.py
   '';
diff --git a/nixpkgs/pkgs/misc/emulators/cdemu/libmirage.nix b/nixpkgs/pkgs/misc/emulators/cdemu/libmirage.nix
index 0b8090ce41d2..9813c906befc 100644
--- a/nixpkgs/pkgs/misc/emulators/cdemu/libmirage.nix
+++ b/nixpkgs/pkgs/misc/emulators/cdemu/libmirage.nix
@@ -1,5 +1,5 @@
 { callPackage, gobject-introspection, cmake, pkg-config
-, glib, libsndfile, zlib, bzip2, lzma, libsamplerate, intltool
+, glib, libsndfile, zlib, bzip2, xz, libsamplerate, intltool
 , pcre, util-linux, libselinux, libsepol }:
 
 let pkg = import ./base.nix {
@@ -8,7 +8,7 @@ let pkg = import ./base.nix {
   pkgSha256 = "08mfvqyk3833ksfd47i4j3ppmrw5ry219km6h7lywdh9hm9x14yf";
 };
 in callPackage pkg {
-  buildInputs = [ glib libsndfile zlib bzip2 lzma libsamplerate intltool ];
+  buildInputs = [ glib libsndfile zlib bzip2 xz libsamplerate intltool ];
   drvParams = {
     PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR = "${placeholder "out"}/share/gir-1.0";
     PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "${placeholder "out"}/lib/girepository-1.0";
diff --git a/nixpkgs/pkgs/misc/emulators/cen64/default.nix b/nixpkgs/pkgs/misc/emulators/cen64/default.nix
new file mode 100644
index 000000000000..ddf455473378
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/cen64/default.nix
@@ -0,0 +1,30 @@
+{ lib, cmake, fetchFromGitHub, libGL, libiconv, libX11, openal, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "cen64";
+  version = "unstable-2021-03-12";
+
+  src = fetchFromGitHub {
+    owner = "n64dev";
+    repo = "cen64";
+    rev = "1b31ca9b3c3bb783391ab9773bd26c50db2056a8";
+    sha256 = "0x1fz3z4ffl5xssiyxnmbhpjlf0k0fxsqn4f2ikrn17742dx4c0z";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libGL libiconv openal libX11 ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D {,$out/bin/}${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Cycle-Accurate Nintendo 64 Emulator";
+    license = licenses.bsd3;
+    homepage = "https://github.com/n64dev/cen64";
+    maintainers = [ maintainers._414owen ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/citra/default.nix b/nixpkgs/pkgs/misc/emulators/citra/default.nix
index e1a31d208e48..ae7228c22460 100644
--- a/nixpkgs/pkgs/misc/emulators/citra/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/citra/default.nix
@@ -14,6 +14,8 @@ mkDerivation {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ SDL2 qtbase qtmultimedia boost ];
 
+  dontWrapQtApps = true;
+
   preConfigure = ''
     # Trick configure system.
     sed -n 's,^ *path = \(.*\),\1,p' .gitmodules | while read path; do
diff --git a/nixpkgs/pkgs/misc/emulators/dlx/default.nix b/nixpkgs/pkgs/misc/emulators/dlx/default.nix
index 3360d45ccc83..9573dd6d48dc 100644
--- a/nixpkgs/pkgs/misc/emulators/dlx/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/dlx/default.nix
@@ -1,31 +1,29 @@
-{ lib, stdenv, fetchurl, unzip }:
+{ lib, stdenv, fetchzip }:
 
-stdenv.mkDerivation {
-  name = "dlx-2012.07.08";
+stdenv.mkDerivation rec {
+  pname = "dlx";
+  version = "2012-07-08";
 
-  src = fetchurl {
+  src = fetchzip {
     url = "https://www.davidviner.com/zip/dlx/dlx.zip";
-    sha256 = "0q5hildq2xcig7yrqi26n7fqlanyssjirm7swy2a9icfxpppfpkn";
+    sha256 = "0508linnar9ivy3xr99gzrb2l027ngx12dlxaxs7w67cnwqnb0dg";
   };
 
-  buildInputs = [ unzip ];
-
-  makeFlags = [ "LINK=gcc" "CFLAGS=-O2" ];
-
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "LINK=${stdenv.cc.targetPrefix}cc" "CFLAGS=-O2" ];
   hardeningDisable = [ "format" ];
 
   installPhase = ''
     mkdir -p $out/include/dlx $out/share/dlx/{examples,doc} $out/bin
-    mv -v masm mon dasm $out/bin/
-    mv -v *.i auto.a $out/include/dlx/
-    mv -v *.a *.m $out/share/dlx/examples/
-    mv -v README.txt MANUAL.TXT $out/share/dlx/doc/
+    mv masm mon dasm $out/bin/
+    mv *.i auto.a $out/include/dlx/
+    mv *.a *.m $out/share/dlx/examples/
+    mv README.txt MANUAL.TXT $out/share/dlx/doc/
   '';
 
-  meta = {
-    homepage = "http://www.davidviner.com/dlx.php";
-    description = "DLX Simulator";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
+  meta = with lib; {
+    homepage = "https://www.davidviner.com/dlx.html?name=DLX+Simulator";
+    description = "An DLX simulator written in C";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix b/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix
index cec004e24694..8a4adfa314b0 100644
--- a/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix
+++ b/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix
@@ -21,13 +21,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "dolphin-emu";
-  version = "5.0-13178";
+  version = "5.0-13603";
 
   src = fetchFromGitHub {
     owner = "dolphin-emu";
     repo = "dolphin";
-    rev = "a34823df61df65168aa40ef5e82e44defd4a0138";
-    sha256 = "0j6hnj60iai366kl0kdbn1jkwc183l02g65mp2vq4qb2yd4399l1";
+    rev = "7250d6e4e091f4b5b4f2289c2c732349b69a2e8a";
+    sha256 = "0l4vvxmc79x0b5p8k4km7p380wv8wsbmxjnif08rj0p3brbavc1i";
   };
 
   nativeBuildInputs = [ cmake pkg-config ]
diff --git a/nixpkgs/pkgs/misc/emulators/libdsk/default.nix b/nixpkgs/pkgs/misc/emulators/libdsk/default.nix
index c0e54e48db32..9ad20275489b 100644
--- a/nixpkgs/pkgs/misc/emulators/libdsk/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/libdsk/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libdsk";
-  version = "1.5.12";
+  version = "1.5.15";
 
   src = fetchurl {
     url = "https://www.seasip.info/Unix/LibDsk/${pname}-${version}.tar.gz";
-    sha256 = "0s2k9vkrf95pf4ydc6vazb29ysrnhdpcfjnf17lpk4nmlv1j3vyv";
+    sha256 = "sha256-7VjVgGRy3+SE+9mdPpBKiNzv1tg2akXpkHfv2dVoODs=";
   };
 
   meta = with lib; {
@@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.seasip.info/Unix/LibDsk/";
     license = licenses.gpl2Plus;
     maintainers = [ ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/misc/emulators/mednafen/server.nix b/nixpkgs/pkgs/misc/emulators/mednafen/server.nix
index 065426255549..24c13bf0228c 100644
--- a/nixpkgs/pkgs/misc/emulators/mednafen/server.nix
+++ b/nixpkgs/pkgs/misc/emulators/mednafen/server.nix
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "https://mednafen.github.io/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/misc/emulators/mednaffe/default.nix b/nixpkgs/pkgs/misc/emulators/mednaffe/default.nix
index 7d0d6c6f68e3..8a11b633d28e 100644
--- a/nixpkgs/pkgs/misc/emulators/mednaffe/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/mednaffe/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mednaffe";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "AmatCoder";
     repo = "mednaffe";
     rev = version;
-    sha256 = "sha256-BS/GNnRYj9klc4RRj7LwNikgApNttv4IyWPL694j+gM=";
+    sha256 = "sha256-YU8PHnQHAsY90LN/WDugi4WhsuZGBj/z3BS4o69qMS4=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/misc/emulators/mgba/default.nix b/nixpkgs/pkgs/misc/emulators/mgba/default.nix
index 032690175189..be097c311856 100644
--- a/nixpkgs/pkgs/misc/emulators/mgba/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/mgba/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "mgba";
-  version = "0.8.4";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "mgba-emu";
     repo = "mgba";
     rev = version;
-    sha256 = "0nqj4bnn5c2z1bq4bnbw1wznc0wpmq4sy3w8pipd6n6620b9m4qq";
+    sha256 = "sha256-JVauGyHJVfiXVG4Z+Ydh1lRypy5rk9SKeTbeHFNFYJs=";
   };
 
   nativeBuildInputs = [ wrapQtAppsHook pkg-config cmake ];
diff --git a/nixpkgs/pkgs/misc/emulators/nestopia/default.nix b/nixpkgs/pkgs/misc/emulators/nestopia/default.nix
index d1b18f12a844..70e5d94def6f 100644
--- a/nixpkgs/pkgs/misc/emulators/nestopia/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/nestopia/default.nix
@@ -28,7 +28,6 @@ stdenv.mkDerivation rec {
     libGLU libGL
     libarchive
     libao
-    unzip
     xdg-utils
     gnome3.adwaita-icon-theme
   ];
@@ -37,6 +36,7 @@ stdenv.mkDerivation rec {
     pkg-config
     makeWrapper
     wrapGAppsHook
+    unzip
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix b/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix
index 7f46d9a0034d..52d1010b5a4f 100644
--- a/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix
@@ -101,7 +101,7 @@ stdenv.mkDerivation {
       PC, with many additional features and benefits.
     '';
     homepage = "https://pcsx2.net";
-    maintainers = with maintainers; [ hrdinka samuelgrf govanify ];
+    maintainers = with maintainers; [ hrdinka govanify ];
 
     # PCSX2's source code is released under LGPLv3+. It However ships
     # additional data files and code that are licensed differently.
diff --git a/nixpkgs/pkgs/misc/emulators/py65/default.nix b/nixpkgs/pkgs/misc/emulators/py65/default.nix
new file mode 100644
index 000000000000..66ba3cdf4b41
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/py65/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchPypi, buildPythonApplication }:
+
+buildPythonApplication rec {
+  pname = "py65";
+  version = "1.1.0";
+  format = "wheel";
+
+  src = fetchPypi {
+    inherit pname version format;
+    sha256 = "Q7rjiHJ/Ew985vut/8fVAf/wWYW5aBPSvNPm8A6g1zg=";
+  };
+
+  meta = with lib; {
+    homepage = "https://py65.readthedocs.io/";
+    description = "Emulate 6502-based microcomputer systems in Python";
+    longDescription = ''
+      Py65 includes a program called Py65Mon that functions as a machine
+      language monitor. This kind of program is sometimes also called a
+      debugger. Py65Mon provides a command line with many convenient commands
+      for interacting with the simulated 6502-based system.
+    '';
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/retroarch/wrapper.nix b/nixpkgs/pkgs/misc/emulators/retroarch/wrapper.nix
index 08ebf8ea8544..40d9f07846b7 100644
--- a/nixpkgs/pkgs/misc/emulators/retroarch/wrapper.nix
+++ b/nixpkgs/pkgs/misc/emulators/retroarch/wrapper.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   pname = "retroarch";
   version = lib.getVersion retroarch;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildCommand = ''
     mkdir -p $out/lib
diff --git a/nixpkgs/pkgs/misc/emulators/ruffle/default.nix b/nixpkgs/pkgs/misc/emulators/ruffle/default.nix
index 9e1f986341f7..affbf0af15a9 100644
--- a/nixpkgs/pkgs/misc/emulators/ruffle/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/ruffle/default.nix
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ruffle";
-  version = "nightly-2021-01-12";
+  version = "nightly-2021-04-02";
 
   src = fetchFromGitHub {
     owner = "ruffle-rs";
     repo = pname;
     rev = version;
-    sha256 = "1lywxn61w0b3pb8vjpavd9f3v58gq35ypwp41b7rjkc4rjxmf3cd";
+    sha256 = "1diz94y53hvii28894zz65aya12v8yw1864lqpkrdbj67yc6ykdj";
   };
 
   nativeBuildInputs = [
@@ -42,10 +42,13 @@ rustPlatform.buildRustPackage rec {
   ];
 
   postInstall = ''
+    # This name is too generic
+    mv $out/bin/exporter $out/bin/ruffle_exporter
+
     wrapProgram $out/bin/ruffle_desktop --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
   '';
 
-  cargoSha256 = "113gh8nf2fs9shfvnzpwlc7zaq1l9l9jhlybcc4dq0wr4r8qpff5";
+  cargoSha256 = "0pnp5kmij4dwwvmgdv81mqcawcjcgg5gd6cpyf0xalyfjgj8i732";
 
   meta = with lib; {
     description = "An Adobe Flash Player emulator written in the Rust programming language.";
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix b/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix
index 60e595bc51ba..8bad6b3cd9e7 100644
--- a/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs
 , dotnet-sdk_5, dotnetPackages, dotnetCorePackages, cacert
-, SDL2, libX11, ffmpeg, openal, libsoundio
+, SDL2, libX11, libgdiplus, ffmpeg, openal, libsoundio
 , gtk3, gobject-introspection, gdk-pixbuf, wrapGAppsHook
 }:
 
@@ -9,19 +9,20 @@ let
     SDL2
     gtk3
     libX11
+    libgdiplus
     ffmpeg
     openal
     libsoundio
   ];
 in stdenv.mkDerivation rec {
   pname = "ryujinx";
-  version = "1.0.6498"; # Versioning is based off of the official appveyor builds: https://ci.appveyor.com/project/gdkchan/ryujinx
+  version = "1.0.6807"; # Versioning is based off of the official appveyor builds: https://ci.appveyor.com/project/gdkchan/ryujinx
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "67033ed8e05eb70860ac6af2b83deab0256c11eb";
-    sha256 = "1lg0cybbrf0x3jl10jwdwcg1zyhxsqfdnwnsvdm1lah75xg15ymw";
+    rev = "0ee314fb3b9d476d0d207a3595bde24af9c4b69b";
+    sha256 = "1yyjy5qblsdg186hr81qpc07n0cqla67q3hjf2rrzq5pyb10bldy";
   };
 
   nativeBuildInputs = [ dotnet-sdk_5 dotnetPackages.Nuget cacert makeWrapper wrapGAppsHook gobject-introspection gdk-pixbuf ];
@@ -36,7 +37,6 @@ in stdenv.mkDerivation rec {
 
   patches = [
     ./log.patch # Without this, Ryujinx attempts to write logs to the nix store. This patch makes it write to "~/.config/Ryujinx/Logs" on Linux.
-    ./disable-updater.patch # This disables the auto-updater, which does not work as it attempts to modify the nix store.
   ];
 
   configurePhase = ''
@@ -44,7 +44,7 @@ in stdenv.mkDerivation rec {
 
     export HOME=$(mktemp -d)
     export DOTNET_CLI_TELEMETRY_OPTOUT=1
-    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+    export DOTNET_NOLOGO=1
 
     nuget sources Add -Name nixos -Source "$PWD/nixos"
     nuget init "$nugetDeps" "$PWD/nixos"
@@ -108,4 +108,5 @@ in stdenv.mkDerivation rec {
     maintainers = [ maintainers.ivar ];
     platforms = [ "x86_64-linux" ];
   };
+  passthru.updateScript = ./updater.sh;
 }
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix b/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix
index 737bd876e135..5e3f1a4944f8 100644
--- a/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix
+++ b/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix
@@ -50,16 +50,16 @@
     sha256 = "0nb46jiscnsywwdfy7zhx1bw4jfmca3s6l8dhbi99gc4bvp8ar7p";
   })
   (fetchNuGet {
-    name = "GtkSharp";
-    version = "3.22.25.128";
-    sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy";
-  })
-  (fetchNuGet {
     name = "GtkSharp.Dependencies";
     version = "1.1.0";
     sha256 = "1g1rhcn38ww97638rds6l5bysra43hkhv47fy71fvq89623zgyxn";
   })
   (fetchNuGet {
+    name = "GtkSharp";
+    version = "3.22.25.128";
+    sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy";
+  })
+  (fetchNuGet {
     name = "LibHac";
     version = "0.12.0";
     sha256 = "08r9b9cdcbz6339sw8r5dfy2a8iw53df0j3xq9rygkg02xspimld";
@@ -95,6 +95,11 @@
     sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x";
   })
   (fetchNuGet {
+    name = "Microsoft.NET.Test.Sdk";
+    version = "16.8.0";
+    sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9";
+  })
+  (fetchNuGet {
     name = "Microsoft.NETCore.App.Host.osx-x64";
     version = "5.0.0";
     sha256 = "1nirb155gzn2ws1ayaqspjmjaizw87jq2684mzkn18jv4si0hbpf";
@@ -155,11 +160,6 @@
     sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
   })
   (fetchNuGet {
-    name = "Microsoft.NET.Test.Sdk";
-    version = "16.8.0";
-    sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9";
-  })
-  (fetchNuGet {
     name = "Microsoft.TestPlatform.ObjectModel";
     version = "16.8.0";
     sha256 = "0ii9d88py6mjsxzj9v3zx4izh6rb9ma6s9kj85xmc0xrw7jc2g3m";
@@ -205,6 +205,11 @@
     sha256 = "0fnkv3ky12227zqg4zshx4kw2mvysq2ppxjibfw02cc3iprv4njq";
   })
   (fetchNuGet {
+    name = "Microsoft.Win32.SystemEvents";
+    version = "5.0.0";
+    sha256 = "0sja4ba0mrvdamn0r9mhq38b9dxi08yb3c1hzh29n1z6ws1hlrcq";
+  })
+  (fetchNuGet {
     name = "Mono.Posix.NETStandard";
     version = "1.0.0";
     sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw";
@@ -275,24 +280,19 @@
     sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Globalization";
-    version = "4.3.0";
-    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
-  })
-  (fetchNuGet {
     name = "runtime.any.System.Globalization.Calendars";
     version = "4.3.0";
     sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
   })
   (fetchNuGet {
-    name = "runtime.any.System.IO";
+    name = "runtime.any.System.Globalization";
     version = "4.3.0";
-    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
+    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Reflection";
+    name = "runtime.any.System.IO";
     version = "4.3.0";
-    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
   })
   (fetchNuGet {
     name = "runtime.any.System.Reflection.Extensions";
@@ -305,14 +305,14 @@
     sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Resources.ResourceManager";
+    name = "runtime.any.System.Reflection";
     version = "4.3.0";
-    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
+    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Runtime";
+    name = "runtime.any.System.Resources.ResourceManager";
     version = "4.3.0";
-    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
+    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
   })
   (fetchNuGet {
     name = "runtime.any.System.Runtime.Handles";
@@ -325,9 +325,9 @@
     sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Text.Encoding";
+    name = "runtime.any.System.Runtime";
     version = "4.3.0";
-    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
   })
   (fetchNuGet {
     name = "runtime.any.System.Text.Encoding.Extensions";
@@ -335,6 +335,11 @@
     sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
   })
   (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+  })
+  (fetchNuGet {
     name = "runtime.any.System.Threading.Tasks";
     version = "4.3.0";
     sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
@@ -360,16 +365,6 @@
     sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
   })
   (fetchNuGet {
-    name = "runtime.native.System";
-    version = "4.0.0";
-    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
-  })
-  (fetchNuGet {
-    name = "runtime.native.System";
-    version = "4.3.0";
-    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
-  })
-  (fetchNuGet {
     name = "runtime.native.System.IO.Compression";
     version = "4.1.0";
     sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
@@ -380,14 +375,24 @@
     sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
   })
   (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+  (fetchNuGet {
     name = "runtime.native.System.Security.Cryptography";
     version = "4.0.0";
     sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    name = "runtime.native.System";
+    version = "4.0.0";
+    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
     version = "4.3.0";
-    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
   })
   (fetchNuGet {
     name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
@@ -515,6 +520,21 @@
     sha256 = "1pizj82wisch28nfdaszwqm9bz19lnl0s5mq8c0zybm2vhnrhvk4";
   })
   (fetchNuGet {
+    name = "SixLabors.Fonts";
+    version = "1.0.0-beta0013";
+    sha256 = "0r0aw8xxd32rwcawawcz6asiyggz02hnzg5hvz8gimq8hvwx1wql";
+  })
+  (fetchNuGet {
+    name = "SixLabors.ImageSharp.Drawing";
+    version = "1.0.0-beta11";
+    sha256 = "0hl0rs3kr1zdnx3gdssxgli6fyvmwzcfp99f4db71s0i8j8b2bp5";
+  })
+  (fetchNuGet {
+    name = "SixLabors.ImageSharp";
+    version = "1.0.2";
+    sha256 = "0fhk9sn8k18slfb26wz8mal0j699f7djwhxgv97snz6b10wynfaj";
+  })
+  (fetchNuGet {
     name = "System.AppContext";
     version = "4.1.0";
     sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
@@ -540,16 +560,6 @@
     sha256 = "14zs2wqkmdlxzj8ikx19n321lsbarx5vl2a8wrachymxn8zb5njh";
   })
   (fetchNuGet {
-    name = "System.Collections";
-    version = "4.0.11";
-    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
-  })
-  (fetchNuGet {
-    name = "System.Collections";
-    version = "4.3.0";
-    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
-  })
-  (fetchNuGet {
     name = "System.Collections.Concurrent";
     version = "4.0.12";
     sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
@@ -565,9 +575,14 @@
     sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
   })
   (fetchNuGet {
-    name = "System.ComponentModel";
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
     version = "4.3.0";
-    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
   })
   (fetchNuGet {
     name = "System.ComponentModel.EventBasedAsync";
@@ -585,6 +600,11 @@
     sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
   })
   (fetchNuGet {
+    name = "System.ComponentModel";
+    version = "4.3.0";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
     name = "System.Console";
     version = "4.0.0";
     sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
@@ -630,19 +650,14 @@
     sha256 = "0knqa0zsm91nfr34br8gx5kjqq4v81zdhqkacvs2hzc8nqk0ddhc";
   })
   (fetchNuGet {
-    name = "System.Dynamic.Runtime";
-    version = "4.0.11";
-    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+    name = "System.Drawing.Common";
+    version = "5.0.1";
+    sha256 = "14h722wq58k1wmgxmpws91xc7kh8109ijw0hcxjq9qkbhbi6pwmb";
   })
   (fetchNuGet {
-    name = "System.Globalization";
+    name = "System.Dynamic.Runtime";
     version = "4.0.11";
-    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
-  })
-  (fetchNuGet {
-    name = "System.Globalization";
-    version = "4.3.0";
-    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
   })
   (fetchNuGet {
     name = "System.Globalization.Calendars";
@@ -660,14 +675,19 @@
     sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
   })
   (fetchNuGet {
-    name = "System.IO";
-    version = "4.1.0";
-    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
   })
   (fetchNuGet {
-    name = "System.IO";
+    name = "System.Globalization";
     version = "4.3.0";
-    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
   })
   (fetchNuGet {
     name = "System.IO.Compression";
@@ -675,9 +695,14 @@
     sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
   })
   (fetchNuGet {
-    name = "System.IO.Compression.ZipFile";
+    name = "System.IO.FileSystem.Primitives";
     version = "4.0.1";
-    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
   })
   (fetchNuGet {
     name = "System.IO.FileSystem";
@@ -690,14 +715,19 @@
     sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
-    version = "4.0.1";
-    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
+    name = "System.IO";
     version = "4.3.0";
-    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
   })
   (fetchNuGet {
     name = "System.Linq";
@@ -710,11 +740,6 @@
     sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
   })
   (fetchNuGet {
-    name = "System.Linq.Expressions";
-    version = "4.1.0";
-    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
-  })
-  (fetchNuGet {
     name = "System.Management";
     version = "5.0.0";
     sha256 = "09hyv3p0zd549577clydlb2szl84m4gvdjnsry73n8b12ja7d75s";
@@ -745,6 +770,11 @@
     sha256 = "05kji1mv4sl75iwmc613p873145nynm02xiajx8pn0h2kx53d23s";
   })
   (fetchNuGet {
+    name = "System.Numerics.Vectors";
+    version = "4.5.0";
+    sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59";
+  })
+  (fetchNuGet {
     name = "System.ObjectModel";
     version = "4.0.12";
     sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
@@ -755,26 +785,6 @@
     sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
   })
   (fetchNuGet {
-    name = "System.Reflection";
-    version = "4.1.0";
-    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
-  })
-  (fetchNuGet {
-    name = "System.Reflection";
-    version = "4.3.0";
-    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
-  })
-  (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.0.1";
-    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
-  })
-  (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.3.0";
-    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
-  })
-  (fetchNuGet {
     name = "System.Reflection.Emit.ILGeneration";
     version = "4.0.1";
     sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
@@ -795,6 +805,16 @@
     sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
   })
   (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
     name = "System.Reflection.Extensions";
     version = "4.0.1";
     sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
@@ -825,6 +845,16 @@
     sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
   })
   (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
     name = "System.Resources.ResourceManager";
     version = "4.0.1";
     sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
@@ -835,14 +865,9 @@
     sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
   })
   (fetchNuGet {
-    name = "System.Runtime";
-    version = "4.1.0";
-    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
-  })
-  (fetchNuGet {
-    name = "System.Runtime";
-    version = "4.3.0";
-    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.7.0";
+    sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54";
   })
   (fetchNuGet {
     name = "System.Runtime.CompilerServices.Unsafe";
@@ -870,16 +895,6 @@
     sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices";
-    version = "4.1.0";
-    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.InteropServices";
-    version = "4.3.0";
-    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
-  })
-  (fetchNuGet {
     name = "System.Runtime.InteropServices.RuntimeInformation";
     version = "4.0.0";
     sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
@@ -890,6 +905,16 @@
     sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
   })
   (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
     name = "System.Runtime.Numerics";
     version = "4.0.1";
     sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
@@ -900,6 +925,16 @@
     sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
   })
   (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
     name = "System.Security.AccessControl";
     version = "4.5.0";
     sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
@@ -955,11 +990,6 @@
     sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
   })
   (fetchNuGet {
-    name = "System.Security.Principal";
-    version = "4.3.0";
-    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
-  })
-  (fetchNuGet {
     name = "System.Security.Principal.Windows";
     version = "4.3.0";
     sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
@@ -980,14 +1010,9 @@
     sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
-    version = "4.0.11";
-    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
-  })
-  (fetchNuGet {
-    name = "System.Text.Encoding";
+    name = "System.Security.Principal";
     version = "4.3.0";
-    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
   })
   (fetchNuGet {
     name = "System.Text.Encoding.Extensions";
@@ -1000,6 +1025,16 @@
     sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
   })
   (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
     name = "System.Text.RegularExpressions";
     version = "4.1.0";
     sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
@@ -1010,19 +1045,19 @@
     sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
   })
   (fetchNuGet {
-    name = "System.Threading";
-    version = "4.0.11";
-    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+    name = "System.Threading.Overlapped";
+    version = "4.3.0";
+    sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm";
   })
   (fetchNuGet {
-    name = "System.Threading";
-    version = "4.3.0";
-    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
   })
   (fetchNuGet {
-    name = "System.Threading.Overlapped";
+    name = "System.Threading.Tasks.Extensions";
     version = "4.3.0";
-    sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
   })
   (fetchNuGet {
     name = "System.Threading.Tasks";
@@ -1035,16 +1070,6 @@
     sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
-    version = "4.0.0";
-    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
-  })
-  (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
-    version = "4.3.0";
-    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
-  })
-  (fetchNuGet {
     name = "System.Threading.Thread";
     version = "4.3.0";
     sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
@@ -1060,6 +1085,16 @@
     sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
   })
   (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
     name = "System.Xml.ReaderWriter";
     version = "4.0.11";
     sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
@@ -1080,13 +1115,13 @@
     sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
   })
   (fetchNuGet {
-    name = "System.Xml.XPath";
+    name = "System.Xml.XPath.XmlDocument";
     version = "4.3.0";
-    sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
+    sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm";
   })
   (fetchNuGet {
-    name = "System.Xml.XPath.XmlDocument";
+    name = "System.Xml.XPath";
     version = "4.3.0";
-    sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm";
+    sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
   })
 ]
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/disable-updater.patch b/nixpkgs/pkgs/misc/emulators/ryujinx/disable-updater.patch
deleted file mode 100644
index e233aec7ca13..000000000000
--- a/nixpkgs/pkgs/misc/emulators/ryujinx/disable-updater.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/Ryujinx/Program.cs b/Ryujinx/Program.cs
-index 29043bb8..d3973c7c 100644
---- a/Ryujinx/Program.cs
-+++ b/Ryujinx/Program.cs
-@@ -54,9 +54,6 @@ namespace Ryujinx
-                 }
-             }
-
--            // Delete backup files after updating.
--            Task.Run(Updater.CleanupUpdate);
--
-             Toolkit.Init(new ToolkitOptions
-             {
-                 Backend = PlatformBackend.PreferNative
-@@ -146,11 +143,6 @@ namespace Ryujinx
-                 mainWindow.LoadApplication(launchPathArg);
-             }
-
--            if (ConfigurationState.Instance.CheckUpdatesOnStart.Value && Updater.CanUpdate(false))
--            {
--                _ = Updater.BeginParse(mainWindow, false);
--            }
--
-             Application.Run();
-         }
-
-@@ -200,4 +192,4 @@ namespace Ryujinx
-             Logger.Shutdown();
-         }
-     }
--}
-\ No newline at end of file
-+}
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/fetch-deps.sh b/nixpkgs/pkgs/misc/emulators/ryujinx/updater.sh
index 35de197b626e..a2f47baa067b 100755
--- a/nixpkgs/pkgs/misc/emulators/ryujinx/fetch-deps.sh
+++ b/nixpkgs/pkgs/misc/emulators/ryujinx/updater.sh
@@ -1,10 +1,36 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl jq common-updater-scripts dotnet-sdk_5
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p coreutils gnused curl common-updater-scripts nix-prefetch-git jq dotnet-sdk_5
 set -eo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
 deps_file="$(realpath "./deps.nix")"
 
+nix-prefetch-git https://github.com/ryujinx/ryujinx --quiet > repo_info
+new_hash="$(jq -r ".sha256" < repo_info)"
+new_rev="$(jq -r ".rev" < repo_info)"
+rm repo_info
+
+new_version="$(
+    curl -s https://ci.appveyor.com/api/projects/gdkchan/ryujinx/branch/master \
+        | grep -Po '"version":.*?[^\\]",' \
+        | sed  's/"version":"\(.*\)",/\1/'
+    )"
+old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+
+if [[ "$new_version" == "$old_version" ]]; then
+  echo "Already up to date! Doing nothing"
+  exit 0
+fi
+
+cd ../../../..
+update-source-version ryujinx "$new_version" "$new_hash" --rev="$new_rev"
+
+store_src="$(nix-build . -A ryujinx.src --no-out-link)"
+src="$(mktemp -d /tmp/ryujinx-src.XXX)"
+cp -rT "$store_src" "$src"
+chmod -R +w "$src"
+pushd "$src"
+
 # Setup empty nuget package folder to force reinstall.
 mkdir ./nuget_tmp.packages
 cat >./nuget_tmp.config <<EOF
@@ -36,3 +62,6 @@ while read pkg_spec; do
 EOF
 done < <(find ./nuget_tmp.packages -name '*.nuspec' | sort)
 echo "]" >>"$deps_file"
+
+popd
+rm -r "$src"
diff --git a/nixpkgs/pkgs/misc/emulators/sameboy/default.nix b/nixpkgs/pkgs/misc/emulators/sameboy/default.nix
index d23129eba7e5..ee91a010df77 100644
--- a/nixpkgs/pkgs/misc/emulators/sameboy/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/sameboy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sameboy";
-  version = "0.13.6";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "LIJI32";
     repo = "SameBoy";
     rev = "v${version}";
-    sha256 = "04w8lybi7ssnax37ka4qw7pmcm7cgnmk90p9m73zbyp5chgpqqzc";
+    sha256 = "sha256-VGyB0Em9VFU1Z1K2XfbS9wGs6gZ8/eH/FiaFAKnFdaA=";
   };
 
   enableParallelBuilding = true;
@@ -16,20 +16,15 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ rgbds glib wrapGAppsHook ];
   buildInputs = [ SDL2 ];
 
-  makeFlags = "CONF=release DATA_DIR=$(out)/share/sameboy/";
+  makeFlags = [
+    "CONF=release"
+    "FREEDESKTOP=true"
+    "PREFIX=$(out)"
+  ];
 
-  patchPhase = ''
-    sed 's/-Werror //g' -i Makefile
-    sed 's@"libgtk-3.so"@"${gtk3}/lib/libgtk-3.so"@g' -i OpenDialog/gtk.c
-  '';
-
-  installPhase = ''
-    pushd build/bin/SDL
-    install -Dm755 sameboy $out/bin/sameboy
-    rm sameboy
-    mkdir -p $out/share/sameboy
-    cp -r * $out/share/sameboy
-    popd
+  postPatch = ''
+    substituteInPlace OpenDialog/gtk.c \
+      --replace '"libgtk-3.so"' '"${gtk3}/lib/libgtk-3.so"'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/misc/emulators/simh/default.nix b/nixpkgs/pkgs/misc/emulators/simh/default.nix
index 08068debeefc..1e939538cda3 100644
--- a/nixpkgs/pkgs/misc/emulators/simh/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/simh/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   dontConfigure = true;
 
-  makeFlags = [ "GCC=cc" "CC_STD=-std=c99" "LDFLAGS=-lm" ];
+  makeFlags = [ "GCC=${stdenv.cc.targetPrefix}cc" "CC_STD=-std=c99" "LDFLAGS=-lm" ];
 
   preInstall = ''
     install -d ${placeholder "out"}/bin
diff --git a/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix b/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix
index 6698d0a5b488..3b5cb487f77a 100644
--- a/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   preConfigure = "cd gtk";
 
   meta = with lib; {
-    homepage = "http://www.snes9x.com";
+    homepage = "https://www.snes9x.com";
     description = "Super Nintendo Entertainment System (SNES) emulator";
 
     longDescription = ''
@@ -29,7 +29,8 @@ stdenv.mkDerivation rec {
       includes some real gems that were only ever released in Japan.
     '';
 
-    license = licenses.lgpl2;
+    # see https://github.com/snes9xgit/snes9x/blob/master/LICENSE for exact details
+    license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ qknight ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/misc/emulators/stella/default.nix b/nixpkgs/pkgs/misc/emulators/stella/default.nix
index f6a3d65c4bde..ff90ae8908be 100644
--- a/nixpkgs/pkgs/misc/emulators/stella/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/stella/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "stella";
-  version = "6.5.1";
+  version = "6.5.2";
 
   src = fetchFromGitHub {
     owner = "stella-emu";
     repo = pname;
     rev = version;
-    sha256 = "2O7pN0xByEbWVL32VZw9191tG+kCMOuivJZRpXssQIw=";
+    hash = "sha256-CDLMOqSgRx75tjBoLycis/cckCNwgdlb9TRBlD3Dd04=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
 
       As of its 3.5 release, Stella is officially donationware.
     '';
-    license = licenses.gpl2;
-    maintainers = [ maintainers.AndersonTorres ];
-    platforms = platforms.linux;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/misc/emulators/tilem/default.nix b/nixpkgs/pkgs/misc/emulators/tilem/default.nix
index d2252563d0a5..bde706e23040 100644
--- a/nixpkgs/pkgs/misc/emulators/tilem/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/tilem/default.nix
@@ -3,7 +3,7 @@
 , lib
 , pkg-config
 , glib
-, gnome2
+, gtk2
 , libticonv
 , libtifiles2
 , libticables2
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     sha256 = "1ba38xzhp3yf21ip3cgql6jzy49jc34sfnjsl4syxyrd81d269zw";
   };
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ glib gnome2.gtk libticonv libtifiles2 libticables2 libticalcs2 ];
+  buildInputs = [ glib gtk2 libticonv libtifiles2 libticables2 libticalcs2 ];
   NIX_CFLAGS_COMPILE = [ "-lm" ];
   meta = with lib; {
     homepage = "http://lpg.ticalc.org/prj_tilem/";
diff --git a/nixpkgs/pkgs/misc/emulators/wine/default.nix b/nixpkgs/pkgs/misc/emulators/wine/default.nix
index 24f827b25ffe..6def48b4f596 100644
--- a/nixpkgs/pkgs/misc/emulators/wine/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/wine/default.nix
@@ -44,7 +44,7 @@
   sdlSupport ? false,
   faudioSupport ? false,
   vkd3dSupport ? false,
-  mingwSupport ? false,
+  mingwSupport ? wineRelease != "stable",
 }:
 
 let wine-build = build: release:
diff --git a/nixpkgs/pkgs/misc/emulators/wine/sources.nix b/nixpkgs/pkgs/misc/emulators/wine/sources.nix
index 15e2f80aa4ea..7f02ead3e025 100644
--- a/nixpkgs/pkgs/misc/emulators/wine/sources.nix
+++ b/nixpkgs/pkgs/misc/emulators/wine/sources.nix
@@ -44,9 +44,9 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "6.1";
+    version = "6.5";
     url = "https://dl.winehq.org/wine/source/6.x/wine-${version}.tar.xz";
-    sha256 = "sha256-qSwkMIxIuFG13CKh01aWpXMRxEezHsn6VD7FsKpzoUk=";
+    sha256 = "sha256-BgD9IIwGkl1mNNKfVDu6CmQ2HDTpvXYJwvDiCWEK00c=";
     inherit (stable) mono gecko32 gecko64;
 
     patches = [
@@ -58,7 +58,7 @@ in rec {
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "sha256-uu6wvWT54Zvp86KfUcKepGxjQ6JHRQ7Yuu4yeROdHeo=";
+    sha256 = "sha256-u6wDavrFirN1e0fFra4ui3i4PnJF0gcENYoIyNwhIYc=";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/nixpkgs/pkgs/misc/emulators/yuzu/base.nix b/nixpkgs/pkgs/misc/emulators/yuzu/base.nix
index 89c8f2cd9474..b0459d61679f 100644
--- a/nixpkgs/pkgs/misc/emulators/yuzu/base.nix
+++ b/nixpkgs/pkgs/misc/emulators/yuzu/base.nix
@@ -1,7 +1,7 @@
 { pname, version, src, branchName
-, stdenv, lib, fetchFromGitHub, wrapQtAppsHook
+, stdenv, lib, fetchFromGitHub, fetchpatch, wrapQtAppsHook
 , cmake, pkg-config
-, libpulseaudio, libjack2, alsaLib, sndio, ecasound
+, libpulseaudio, libjack2, alsaLib, sndio
 , vulkan-loader, vulkan-headers
 , qtbase, qtwebengine, qttools
 , nlohmann_json, rapidjson
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
   buildInputs = [
-    libpulseaudio libjack2 alsaLib sndio ecasound
+    libpulseaudio libjack2 alsaLib sndio
     vulkan-loader vulkan-headers
     qtbase qtwebengine qttools
     nlohmann_json rapidjson
@@ -36,15 +36,31 @@ stdenv.mkDerivation rec {
     ffmpeg
   ];
 
+  patches = [
+    (fetchpatch { # Without this, yuzu tries to read version info from .git which is not present.
+      url = "https://raw.githubusercontent.com/pineappleEA/Pineapple-Linux/28cbf656e3188b80eda0031d0b2713708ecd630f/inject-git-info.patch";
+      sha256 = "1zxh5fwdr7jl0aagb3yfwd0995vyyk54f0f748f7c4rqvg6867fd";
+    })
+  ];
+
   cmakeFlags = [
     "-DENABLE_QT_TRANSLATION=ON"
     "-DYUZU_USE_QT_WEB_ENGINE=ON"
     "-DUSE_DISCORD_PRESENCE=ON"
+    # Shows errors about not being able to find .git at runtime if you do not set these
+    "-DGIT_BRANCH=\"\""
+    "-DGIT_DESC=\"\""
   ];
 
-  # Trick the configure system. This prevents a check for submodule directories.
   preConfigure = ''
+    # Trick the configure system. This prevents a check for submodule directories.
     rm -f .gitmodules
+
+    # see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work.
+    cmakeFlagsArray+=(
+      "-DTITLE_BAR_FORMAT_IDLE=\"yuzu ${branchName} ${version}\""
+      "-DTITLE_BAR_FORMAT_RUNNING=\"yuzu ${branchName} ${version} \| \{3\}\""
+    )
   '';
 
   # Fix vulkan detection
diff --git a/nixpkgs/pkgs/misc/emulators/yuzu/default.nix b/nixpkgs/pkgs/misc/emulators/yuzu/default.nix
index 89a500bb313c..d47c5937385c 100644
--- a/nixpkgs/pkgs/misc/emulators/yuzu/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/yuzu/default.nix
@@ -4,25 +4,25 @@ let
 in {
   mainline = libsForQt5.callPackage ./base.nix rec {
     pname = "yuzu-mainline";
-    version = "517";
+    version = "576";
     branchName = branch;
     src = fetchFromGitHub {
       owner = "yuzu-emu";
       repo = "yuzu-mainline";
       rev = "mainline-0-${version}";
-      sha256 = "0i73yl2ycs8p9cqn25rw35cll0l6l68605f1mc1qvf4zy82jggbb";
+      sha256 = "121pn3kmghpcf4pzs0mc8z3viyp32rzm7rssva7cdd5016z2648k";
       fetchSubmodules = true;
     };
   };
   early-access = libsForQt5.callPackage ./base.nix rec {
     pname = "yuzu-ea";
-    version = "1377";
+    version = "1536";
     branchName = branch;
     src = fetchFromGitHub {
       owner = "pineappleEA";
       repo = "pineapple-src";
       rev = "EA-${version}";
-      sha256 = "0jjddmcqbkns5iqjwqh51hpjviw5j12n49jwfq7xwrsns6vbpqkf";
+      sha256 = "0smrx05xxr4b96i8bw6n6pynkl9r21ydfvpjdzxkr9amin20r54y";
     };
   };
 }.${branch}
diff --git a/nixpkgs/pkgs/misc/flashfocus/default.nix b/nixpkgs/pkgs/misc/flashfocus/default.nix
index 98f368132a91..2b645817a7e5 100644
--- a/nixpkgs/pkgs/misc/flashfocus/default.nix
+++ b/nixpkgs/pkgs/misc/flashfocus/default.nix
@@ -1,17 +1,27 @@
-{ lib, buildPythonApplication, fetchPypi, xcffib, pyyaml, click, i3ipc, marshmallow, cffi, xpybutil, pytestrunner }:
+{ lib, python3 }:
 
-
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "flashfocus";
   version = "2.2.2";
 
-  src = fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
     sha256 = "1z20d596rnc7cs0rrd221gjn14dmbr11djv94y9p4v7rr788sswv";
   };
 
-  nativeBuildInputs = [ pytestrunner ];
-  propagatedBuildInputs = [ i3ipc xcffib click cffi xpybutil marshmallow pyyaml ];
+  nativeBuildInputs = with python3.pkgs; [
+    pytestrunner
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    i3ipc
+    xcffib
+    click
+    cffi
+    xpybutil
+    marshmallow
+    pyyaml
+  ];
 
   # Tests require access to a X session
   doCheck = false;
diff --git a/nixpkgs/pkgs/misc/gnuk/generic.nix b/nixpkgs/pkgs/misc/gnuk/generic.nix
index 8ed186e1ed61..b614dd52a378 100644
--- a/nixpkgs/pkgs/misc/gnuk/generic.nix
+++ b/nixpkgs/pkgs/misc/gnuk/generic.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, gcc-arm-embedded, binutils-arm-embedded, makeWrapper
-, python, pythonPackages
+, python2Packages
 
 # Extra options
 , device ? "fsij", vid ? "234b", pid ? "0000"
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   inherit src;
 
   nativeBuildInputs = [ gcc-arm-embedded binutils-arm-embedded makeWrapper ];
-  buildInputs = [ python ] ++ (with pythonPackages; [ pyusb colorama ]);
+  buildInputs = with python2Packages; [ python pyusb colorama ];
 
   configurePhase = ''
     cd src
diff --git a/nixpkgs/pkgs/misc/jackaudio/default.nix b/nixpkgs/pkgs/misc/jackaudio/default.nix
index 24d2b5e135cf..9dd973674412 100644
--- a/nixpkgs/pkgs/misc/jackaudio/default.nix
+++ b/nixpkgs/pkgs/misc/jackaudio/default.nix
@@ -48,6 +48,9 @@ stdenv.mkDerivation rec {
         --replace /bin/bash ${bash}/bin/bash
   '';
 
+  PKGCONFIG = "${stdenv.cc.targetPrefix}pkg-config";
+
+  dontAddWafCrossFlags = "true";
   wafConfigureFlags = [
     "--classic"
     "--autostart=${if (optDbus != null) then "dbus" else "classic"}"
diff --git a/nixpkgs/pkgs/misc/lightspark/default.nix b/nixpkgs/pkgs/misc/lightspark/default.nix
index c45240982a76..7c9a4815e0a5 100644
--- a/nixpkgs/pkgs/misc/lightspark/default.nix
+++ b/nixpkgs/pkgs/misc/lightspark/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, cmake, curl, zlib, ffmpeg_3, glew, pcre
-, rtmpdump, cairo, boost, SDL2, SDL2_mixer, libjpeg, pango, lzma, nasm
+, rtmpdump, cairo, boost, SDL2, SDL2_mixer, libjpeg, pango, xz, nasm
 , llvm, glibmm
 }:
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     curl zlib ffmpeg_3 glew pcre rtmpdump cairo boost SDL2 SDL2_mixer libjpeg
-    pango lzma nasm llvm glibmm
+    pango xz nasm llvm glibmm
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/misc/lilypond/default.nix b/nixpkgs/pkgs/misc/lilypond/default.nix
index f005a59dbfab..d8db893f7d70 100644
--- a/nixpkgs/pkgs/misc/lilypond/default.nix
+++ b/nixpkgs/pkgs/misc/lilypond/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, ghostscript, gyre-fonts, texinfo, imagemagick, texi2html, guile
-, python2, gettext, flex, perl, bison, pkg-config, autoreconfHook, dblatex
+, python3, gettext, flex, perl, bison, pkg-config, autoreconfHook, dblatex
 , fontconfig, freetype, pango, fontforge, help2man, zip, netpbm, groff
 , makeWrapper, t1utils
 , texlive, tex ? texlive.combine {
@@ -9,22 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lilypond";
-  version = "2.20.0";
+  version = "2.22.0";
 
   src = fetchurl {
     url = "http://lilypond.org/download/sources/v${lib.versions.majorMinor version}/lilypond-${version}.tar.gz";
-    sha256 = "0qd6pd4siss016ffmcyw5qc6pr2wihnvrgd4kh1x725w7wr02nar";
+    sha256 = "0khg9dlm1b02mm9w54xqc9ydj416xkikn6p08g1asiyjf4qx1pb4";
   };
 
-  patches = [
-    ./findlib.patch
-    (fetchurl {
-      name = "CVE-2020-17353.patch";
-      url = "https://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commitdiff_plain;h=b84ea4740f3279516905c5db05f4074e777c16ff;hp=b97bd35ac99efd68569327f62f3c8a19511ebe43";
-      sha256 = "1i79gy3if070rdgj7j6inw532j0f6ya5qc6kgcnlkbx02rqrhr7v";
-    })
-  ];
-
   postInstall = ''
     for f in "$out/bin/"*; do
         # Override default argv[0] setting so LilyPond can find
@@ -51,7 +42,7 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ ghostscript texinfo imagemagick texi2html guile dblatex tex zip netpbm
-      python2 gettext perl fontconfig freetype pango
+      python3 gettext perl fontconfig freetype pango
       fontforge help2man groff t1utils
     ];
 
diff --git a/nixpkgs/pkgs/misc/lilypond/findlib.patch b/nixpkgs/pkgs/misc/lilypond/findlib.patch
deleted file mode 100644
index 30e130bc8ad8..000000000000
--- a/nixpkgs/pkgs/misc/lilypond/findlib.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/stepmake/stepmake/executable-vars.make b/stepmake/stepmake/executable-vars.make
-index 3825101..bf37d16 100644
---- a/stepmake/stepmake/executable-vars.make
-+++ b/stepmake/stepmake/executable-vars.make
-@@ -1,4 +1,4 @@
--MODULE_LIBES =$(addprefix $(outdir)/../, $(addsuffix /$(outbase)/library.a, $(MODULE_LIBS)))
-+MODULE_LIBES =$(addprefix , $(addsuffix /$(outbase)/library.a, $(MODULE_LIBS)))
- LOADLIBES = $(MODULE_LIBES) $($(PACKAGE)_LIBES) $(CONFIG_LIBS)
- 
- EXECUTABLE = $(outdir)/$(NAME)
-
-diff --git a/make/stepmake.make b/make/stepmake.make
-index 604341b..7f0d9d8 100644
---- a/make/stepmake.make
-+++ b/make/stepmake.make
-@@ -87,7 +87,7 @@ outdir=$(outroot)/$(outbase)
- config_h=$(top-build-dir)/config$(CONFIGSUFFIX).hh
- 
- # The outdir that was configured for: best guess to find binaries
--outconfbase=out$(CONFIGSUFFIX)
-+outconfbase=$(outdir)
- outconfdir=$(outroot)/$(outconfbase)
- 
- # user package
diff --git a/nixpkgs/pkgs/misc/lilypond/unstable.nix b/nixpkgs/pkgs/misc/lilypond/unstable.nix
deleted file mode 100644
index 68f48a2db64f..000000000000
--- a/nixpkgs/pkgs/misc/lilypond/unstable.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchgit, lilypond, ghostscript, gyre-fonts }:
-
-let
-
-  version = "2.19.83";
-
-in
-
-lilypond.overrideAttrs (oldAttrs: {
-  inherit version;
-
-  src = fetchgit {
-    url = "https://git.savannah.gnu.org/r/lilypond.git";
-    rev = "release/${version}-1";
-    sha256 = "1ycyx9x76d79jh7wlwyyhdjkyrwnhzqpw006xn2fk35s0jrm2iz0";
-  };
-
-  meta = oldAttrs.meta // {
-    broken = stdenv.isDarwin;
-  };
-})
diff --git a/nixpkgs/pkgs/misc/lilypond/with-fonts.nix b/nixpkgs/pkgs/misc/lilypond/with-fonts.nix
index 2f3a95a33022..47cbb59f2f01 100644
--- a/nixpkgs/pkgs/misc/lilypond/with-fonts.nix
+++ b/nixpkgs/pkgs/misc/lilypond/with-fonts.nix
@@ -7,7 +7,8 @@ lib.appendToName "with-fonts" (symlinkJoin {
 
   paths = [ lilypond ] ++ openlilylib-fonts.all;
 
-  buildInputs = [ makeWrapper lndir ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ lndir ];
 
   postBuild = ''
     for p in $out/bin/*; do
diff --git a/nixpkgs/pkgs/misc/mnemonicode/default.nix b/nixpkgs/pkgs/misc/mnemonicode/default.nix
index ec0dd0b1fd52..352dd038fb5a 100644
--- a/nixpkgs/pkgs/misc/mnemonicode/default.nix
+++ b/nixpkgs/pkgs/misc/mnemonicode/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
       back to data on the other side.
     '';
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.cstrahan ];
   };
 }
diff --git a/nixpkgs/pkgs/misc/pylode/default.nix b/nixpkgs/pkgs/misc/pylode/default.nix
new file mode 100644
index 000000000000..fb908151765c
--- /dev/null
+++ b/nixpkgs/pkgs/misc/pylode/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "pyLODE";
+  version = "2.8.6";
+
+  src = fetchFromGitHub {
+    owner = "RDFLib";
+    repo = pname;
+    rev = version;
+    sha256 = "0zbk5lj9vlg32rmvw1himlw63kxd7sim7nzglrjs5zm6vpi4x5ch";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    dateutil
+    falcon
+    gunicorn
+    isodate
+    jinja2
+    markdown
+    rdflib
+    rdflib-jsonld
+    requests
+    six
+    beautifulsoup4
+  ];
+
+  meta = with lib; {
+    description = "An OWL ontology documentation tool using Python and templating, based on LODE";
+    homepage = "https://github.com/RDFLib/pyLODE";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ koslambrou ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/riscv-pk/default.nix b/nixpkgs/pkgs/misc/riscv-pk/default.nix
index 4dd2626b5684..66b7321c780d 100644
--- a/nixpkgs/pkgs/misc/riscv-pk/default.nix
+++ b/nixpkgs/pkgs/misc/riscv-pk/default.nix
@@ -1,15 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, payload ? null }: let
-  rev = "e5846a2bc707eaa58dc8ab6a8d20a090c6ee8570";
-  sha256 = "1clynpp70fnbgsjgxx7xi0vrdrj1v0h8zpv0x26i324kp2gwylf4";
-  revCount = "438";
-  shortRev = "e5846a2";
-in stdenv.mkDerivation {
-  name = "riscv-pk-0.1pre${revCount}_${shortRev}";
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, payload ? null }:
+
+stdenv.mkDerivation rec {
+  pname = "riscv-pk";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "riscv";
     repo = "riscv-pk";
-    inherit rev sha256;
+    rev = "v${version}";
+    sha256 = "1cc0rz4q3a1zw8756b8yysw8lb5g4xbjajh5lvqbjix41hbdx6xz";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/misc/rkdeveloptool/default.nix b/nixpkgs/pkgs/misc/rkdeveloptool/default.nix
index 9ef7013fbfd1..517a8cc65328 100644
--- a/nixpkgs/pkgs/misc/rkdeveloptool/default.nix
+++ b/nixpkgs/pkgs/misc/rkdeveloptool/default.nix
@@ -2,19 +2,22 @@
 
 stdenv.mkDerivation {
   pname = "rkdeveloptool";
-  version = "unstable-2019-07-01";
+  version = "unstable-2021-02-03";
 
   src = fetchFromGitHub {
     owner = "rockchip-linux";
     repo = "rkdeveloptool";
-    rev = "6e92ebcf8b1812da02663494a68972f956e490d3";
-    sha256 = "0zwrkqfxd671iy69v3q0844gfdpm1yk51i9qh2rqc969bd8glxga";
+    rev = "e607a5d6ad3f6af66d3daf3f6370e6dc9763a20d";
+    sha256 = "08m0yfds5rpr5l0s75ynfarq3hrv94l3aadld17cz5gqapqcfs2n";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [ libusb1 ];
 
+  # main.cpp:1568:36: error: '%s' directive output may be truncated writing up to 557 bytes into a region of size 5
+  CPPFLAGS = "-Wno-error=format-truncation";
+
   meta = with lib; {
     homepage = "https://github.com/rockchip-linux/rkdeveloptool";
     description = "A tool from Rockchip to communicate with Rockusb devices";
diff --git a/nixpkgs/pkgs/misc/scimark/default.nix b/nixpkgs/pkgs/misc/scimark/default.nix
new file mode 100644
index 000000000000..7558c676ba52
--- /dev/null
+++ b/nixpkgs/pkgs/misc/scimark/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchurl
+, unzip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "scimark";
+  version = "4c";
+
+  src = fetchurl {
+    url = "https://math.nist.gov/scimark2/${pname}${version}.zip";
+    hash = "sha256-kcg5vKYp0B7+bC/CmFMO/tMwxf9q6nvuFv0vRSy3MbE=";
+  };
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  dontConfigure = true;
+
+  installPhase = ''
+    install -d $out/bin/
+    install scimark4 $out/bin/
+  '';
+
+  meta = with lib; {
+    homepage = "https://math.nist.gov/scimark2/index.html";
+    description = "Scientific and numerical computing benchmark (ANSI C version)";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.all;
+  };
+}
+# TODO [ AndersonTorres ]: Java version
diff --git a/nixpkgs/pkgs/misc/screensavers/pipes/default.nix b/nixpkgs/pkgs/misc/screensavers/pipes/default.nix
index 11d85e597765..be605192acce 100644
--- a/nixpkgs/pkgs/misc/screensavers/pipes/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/pipes/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "09m4alb3clp3rhnqga5v6070p7n1gmnwp2ssqhq87nf2ipfpcaak";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir $out -p
diff --git a/nixpkgs/pkgs/misc/screensavers/rss-glx/default.nix b/nixpkgs/pkgs/misc/screensavers/rss-glx/default.nix
index f3e5ae251aec..981db782c7c9 100644
--- a/nixpkgs/pkgs/misc/screensavers/rss-glx/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/rss-glx/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, pkg-config, xlibsWrapper, libXext, libGLU, libGL, imagemagick, libtiff, bzip2}:
+{lib, stdenv, fetchurl, pkg-config, xlibsWrapper, libXext, libGLU, libGL, imagemagick6, libtiff, bzip2}:
 
 stdenv.mkDerivation rec {
   version = "0.9.1";
@@ -10,9 +10,9 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libGLU libGL xlibsWrapper imagemagick libtiff bzip2 ];
+  buildInputs = [ libGLU libGL xlibsWrapper imagemagick6 libtiff bzip2 ];
 
-  NIX_CFLAGS_COMPILE = "-I${imagemagick.dev}/include/ImageMagick";
+  NIX_CFLAGS_COMPILE = "-I${imagemagick6.dev}/include/ImageMagick";
   NIX_LDFLAGS= "-rpath ${libXext}/lib";
 
   meta = {
diff --git a/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix b/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
index b59ed85f6bc2..17b22ce07234 100644
--- a/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
@@ -2,11 +2,11 @@
 , libXdmcp, libXt }:
 
 stdenv.mkDerivation rec {
-  name = "xlockmore-5.65";
+  name = "xlockmore-5.66";
 
   src = fetchurl {
     url = "http://sillycycle.com/xlock/${name}.tar.xz";
-    sha256 = "0d4l8ibbvc62whlq8rrbvqr3011a7h21l9na93r579g0dfwdbh6d";
+    sha256 = "sha256-WXalw2YoKNFFIskOBvKN3PyOV3iP3gjri3pw6e87q3E=";
     curlOpts = "--user-agent 'Mozilla/5.0'";
   };
 
diff --git a/nixpkgs/pkgs/misc/seafile-shared/default.nix b/nixpkgs/pkgs/misc/seafile-shared/default.nix
index 21e2d4516cbe..15a129246e18 100644
--- a/nixpkgs/pkgs/misc/seafile-shared/default.nix
+++ b/nixpkgs/pkgs/misc/seafile-shared/default.nix
@@ -1,11 +1,7 @@
 { lib, stdenv
 , fetchFromGitHub
 , autoreconfHook
-, ccnet
 , curl
-, fuse
-, glib
-, intltool
 , libevent
 , libsearpc
 , libuuid
@@ -13,7 +9,6 @@
 , python3
 , sqlite
 , vala
-, which
 }:
 
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/misc/source-and-tags/default.nix b/nixpkgs/pkgs/misc/source-and-tags/default.nix
index c82b96b82f95..966a451c060c 100644
--- a/nixpkgs/pkgs/misc/source-and-tags/default.nix
+++ b/nixpkgs/pkgs/misc/source-and-tags/default.nix
@@ -15,7 +15,7 @@
     phases = "unpackPhase buildPhase";
     inherit src srcDir tagSuffix;
     name = "${name}-source-with-tags";
-    buildInputs = [ unzip ];
+    nativeBuildInputs = [ unzip ];
     # using separate tag directory so that you don't have to glob that much files when starting your editor
     # is this a good choice?
     buildPhase =
diff --git a/nixpkgs/pkgs/misc/tmux-plugins/default.nix b/nixpkgs/pkgs/misc/tmux-plugins/default.nix
index ef20bbaf66ec..d8ab3dcc5c6f 100644
--- a/nixpkgs/pkgs/misc/tmux-plugins/default.nix
+++ b/nixpkgs/pkgs/misc/tmux-plugins/default.nix
@@ -1,7 +1,6 @@
 { lib
 , fetchFromGitHub
 , pkgs
-, reattach-to-user-namespace
 , stdenv
 }:
 
@@ -10,10 +9,10 @@ let
 
   addRtp = path: rtpFilePath: attrs: derivation:
     derivation // { rtp = "${derivation}/${path}/${rtpFilePath}"; } // {
-      overrideAttrs = f: mkDerivation (attrs // f attrs);
+      overrideAttrs = f: mkTmuxPlugin (attrs // f attrs);
     };
 
-  mkDerivation = a@{
+  mkTmuxPlugin = a@{
     pluginName,
     rtpFilePath ? (builtins.replaceStrings ["-"] ["_"] pluginName) + ".tmux",
     namePrefix ? "tmuxplugin-",
@@ -25,10 +24,11 @@ let
     preInstall ? "",
     postInstall ? "",
     path ? lib.getName pluginName,
-    dependencies ? [],
     ...
   }:
-    addRtp "${rtpPath}/${path}" rtpFilePath a (stdenv.mkDerivation (a // {
+    if lib.hasAttr "dependencies" a then
+      throw "dependencies attribute is obselete. see NixOS/nixpkgs#118034" # added 2021-04-01
+    else addRtp "${rtpPath}/${path}" rtpFilePath a (stdenv.mkDerivation (a // {
       pname = namePrefix + pluginName;
 
       inherit pluginName unpackPhase configurePhase buildPhase addonInfo preInstall postInstall;
@@ -45,15 +45,14 @@ let
 
         runHook postInstall
       '';
-
-      dependencies = [ pkgs.bash ] ++ dependencies;
     }));
 
 in rec {
+  inherit mkTmuxPlugin;
 
-  inherit mkDerivation;
+  mkDerivation = throw "tmuxPlugins.mkDerivation is deprecated, use tmuxPlugins.mkTmuxPlugin instead"; # added 2021-03-14
 
-  battery = mkDerivation {
+  battery = mkTmuxPlugin {
     pluginName = "battery";
     version = "unstable-2019-07-04";
     src = fetchFromGitHub {
@@ -64,7 +63,7 @@ in rec {
     };
   };
 
-  continuum = mkDerivation {
+  continuum = mkTmuxPlugin {
     pluginName = "continuum";
     version = "unstable-2020-10-16";
     src = fetchFromGitHub {
@@ -73,7 +72,6 @@ in rec {
       rev = "26eb5ffce0b559d682b9f98c8d4b6c370ecb639b";
       sha256 = "1glwa89bv2r92qz579a49prk3jf612cpd5hw46j4wfb35xhnj3ab";
     };
-    dependencies = [ resurrect ];
     meta = {
       homepage = "https://github.com/tmux-plugins/tmux-continuum";
       description = "continous saving of tmux environment";
@@ -94,7 +92,7 @@ in rec {
     };
   };
 
-  copycat = mkDerivation {
+  copycat = mkTmuxPlugin {
     pluginName = "copycat";
     version = "unstable-2020-01-09";
     src = fetchFromGitHub {
@@ -105,7 +103,7 @@ in rec {
     };
   };
 
-  cpu = mkDerivation {
+  cpu = mkTmuxPlugin {
     pluginName = "cpu";
     version = "unstable-2020-07-25";
     src = fetchFromGitHub {
@@ -116,7 +114,7 @@ in rec {
     };
   };
 
-  ctrlw = mkDerivation rec {
+  ctrlw = mkTmuxPlugin rec {
     pluginName = "ctrlw";
     version = "0.1.1";
     src = fetchFromGitHub {
@@ -127,14 +125,14 @@ in rec {
     };
   };
 
-  dracula = mkDerivation rec {
+  dracula = mkTmuxPlugin rec {
     pluginName = "dracula";
-    version = "unstable-2021-02-09";
+    version = "unstable-2021-02-18";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "tmux";
-      rev = "d1678a5834679d98ffac1dd7a0eaecff7868ab8e";
-      sha256 = "rdy5NFkh5Yl2YOTnuMKZQGRqVb2Pk8Bpq3nbJp2rCtE=";
+      rev = "8d1a7fa41b773d4f7b53dfff2d9fc5166d34f104";
+      sha256 = "DG+oKbTkYO4hwoOlOqW5IuCLdVEttlvLM2en4DUHyMY=";
     };
     meta = with lib; {
       homepage = "https://draculatheme.com/tmux";
@@ -145,7 +143,35 @@ in rec {
     };
   };
 
-  fingers = mkDerivation rec {
+  extrakto = mkTmuxPlugin {
+    pluginName = "extrakto";
+    version = "unstable-2021-04-04";
+    src = fetchFromGitHub {
+      owner = "laktak";
+      repo = "extrakto";
+      rev = "de8ac3e8a9fa887382649784ed8cae81f5757f77";
+      sha256 = "0mkp9r6mipdm7408w7ls1vfn6i3hj19nmir2bvfcp12b69zlzc47";
+    };
+    nativeBuildInputs = [ pkgs.makeWrapper ];
+    postInstall = ''
+    for f in extrakto.sh open.sh tmux-extrakto.sh; do
+      wrapProgram $target/scripts/$f \
+        --prefix PATH : ${with pkgs; lib.makeBinPath (
+        [ pkgs.fzf pkgs.python3 pkgs.xclip ]
+        )}
+    done
+
+    '';
+    meta = {
+      homepage = "https://github.com/laktak/extrakto";
+      description = "Fuzzy find your text with fzf instead of selecting it by hand ";
+      license = lib.licenses.mit;
+      platforms = lib.platforms.unix;
+      maintainers = with lib.maintainers; [ kidd ];
+    };
+  };
+
+  fingers = mkTmuxPlugin rec {
     pluginName = "fingers";
     rtpFilePath = "tmux-fingers.tmux";
     version = "1.0.1";
@@ -156,10 +182,18 @@ in rec {
       sha256 = "0gp37m3d0irrsih96qv2yalvr1wmf1n64589d4qzyzq16lzyjcr0";
       fetchSubmodules = true;
     };
-    dependencies = [ pkgs.gawk ];
+    nativeBuildInputs = [ pkgs.makeWrapper ];
+    postInstall = ''
+      for f in config.sh tmux-fingers.sh setup-fingers-mode-bindings.sh; do
+      wrapProgram $target/scripts/$f \
+        --prefix PATH : ${with pkgs; lib.makeBinPath (
+          [ gawk ] ++ lib.optionals stdenv.isDarwin [ reattach-to-user-namespace ]
+        )}
+      done
+    '';
   };
 
-  fpp = mkDerivation {
+  fpp = mkTmuxPlugin {
     pluginName = "fpp";
     version = "unstable-2016-03-08";
     src = fetchFromGitHub {
@@ -171,10 +205,9 @@ in rec {
     postInstall = ''
       sed -i -e 's|fpp |${pkgs.fpp}/bin/fpp |g' $target/fpp.tmux
     '';
-    dependencies = [ pkgs.fpp ];
   };
 
-  fzf-tmux-url = mkDerivation {
+  fzf-tmux-url = mkTmuxPlugin {
     pluginName = "fzf-tmux-url";
     rtpFilePath = "fzf-url.tmux";
     version = "unstable-2019-12-02";
@@ -186,7 +219,7 @@ in rec {
     };
   };
 
-  gruvbox = mkDerivation {
+  gruvbox = mkTmuxPlugin {
     pluginName = "gruvbox";
     rtpFilePath = "gruvbox-tpm.tmux";
     version = "unstable-2019-05-05";
@@ -198,7 +231,7 @@ in rec {
     };
   };
 
-  jump = mkDerivation {
+  jump = mkTmuxPlugin {
     pluginName = "jump";
     version = "2020-06-26";
     rtpFilePath = "tmux-jump.tmux";
@@ -211,8 +244,6 @@ in rec {
     postInstall = ''
       sed -i -e 's|ruby|${pkgs.ruby}/bin/ruby|g' $target/scripts/tmux-jump.sh
     '';
-    dependencies = [ pkgs.ruby ];
-
     meta = with lib; {
       homepage = "https://github.com/schasse/tmux-jump";
       description = "Vimium/Easymotion like navigation for tmux";
@@ -222,7 +253,7 @@ in rec {
     };
   };
 
-  logging = mkDerivation {
+  logging = mkTmuxPlugin {
     pluginName = "logging";
     version = "unstable-2019-04-19";
     src = fetchFromGitHub {
@@ -233,7 +264,7 @@ in rec {
     };
   };
 
-  net-speed = mkDerivation {
+  net-speed = mkTmuxPlugin {
     pluginName = "net-speed";
     version = "unstable-2018-12-02";
     src = fetchFromGitHub {
@@ -244,7 +275,7 @@ in rec {
     };
   };
 
-  nord = mkDerivation rec {
+  nord = mkTmuxPlugin rec {
     pluginName = "nord";
     version = "0.3.0";
     src = pkgs.fetchFromGitHub {
@@ -255,7 +286,7 @@ in rec {
     };
   };
 
-  maildir-counter = mkDerivation {
+  maildir-counter = mkTmuxPlugin {
     pluginName = "maildir-counter";
     version = "unstable-2016-11-25";
     src = fetchFromGitHub {
@@ -266,7 +297,7 @@ in rec {
     };
   };
 
-  online-status = mkDerivation {
+  online-status = mkTmuxPlugin {
     pluginName = "online-status";
     version = "unstable-2018-11-30";
     src = fetchFromGitHub {
@@ -277,7 +308,7 @@ in rec {
     };
   };
 
-  open = mkDerivation {
+  open = mkTmuxPlugin {
     pluginName = "open";
     version = "unstable-2019-12-02";
     src = fetchFromGitHub {
@@ -288,7 +319,7 @@ in rec {
     };
   };
 
-  onedark-theme = mkDerivation {
+  onedark-theme = mkTmuxPlugin {
     pluginName = "onedark-theme";
     rtpFilePath = "tmux-onedark-theme.tmux";
     version = "unstable-2020-06-07";
@@ -300,7 +331,7 @@ in rec {
     };
   };
 
-  pain-control = mkDerivation {
+  pain-control = mkTmuxPlugin {
     pluginName = "pain-control";
     version = "unstable-2020-02-18";
     src = fetchFromGitHub {
@@ -311,7 +342,7 @@ in rec {
     };
   };
 
-  plumb = mkDerivation rec {
+  plumb = mkTmuxPlugin rec {
     pluginName = "plumb";
     version = "0.1.1";
     src = fetchFromGitHub {
@@ -325,7 +356,7 @@ in rec {
     '';
   };
 
-  power-theme = mkDerivation {
+  power-theme = mkTmuxPlugin {
     pluginName = "power";
     rtpFilePath = "tmux-power.tmux";
     version = "unstable-2020-11-18";
@@ -337,7 +368,7 @@ in rec {
     };
   };
 
-  prefix-highlight = mkDerivation {
+  prefix-highlight = mkTmuxPlugin {
     pluginName = "prefix-highlight";
     version = "unstable-2020-03-26";
     src = fetchFromGitHub {
@@ -348,7 +379,7 @@ in rec {
     };
   };
 
-  resurrect = mkDerivation {
+  resurrect = mkTmuxPlugin {
     pluginName = "resurrect";
     version = "unstable-2020-09-18";
     src = fetchFromGitHub {
@@ -385,7 +416,7 @@ in rec {
     };
   };
 
-  sensible = mkDerivation {
+  sensible = mkTmuxPlugin {
     pluginName = "sensible";
     version = "unstable-2017-09-05";
     src = fetchFromGitHub {
@@ -394,12 +425,12 @@ in rec {
       rev = "e91b178ff832b7bcbbf4d99d9f467f63fd1b76b5";
       sha256 = "1z8dfbwblrbmb8sgb0k8h1q0dvfdz7gw57las8nwd5gj6ss1jyvx";
     };
-    postInstall = lib.optionalString pkgs.stdenv.isDarwin ''
-      sed -e 's:reattach-to-user-namespace:${reattach-to-user-namespace}/bin/reattach-to-user-namespace:g' -i $target/sensible.tmux
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      sed -e 's:reattach-to-user-namespace:${pkgs.reattach-to-user-namespace}/bin/reattach-to-user-namespace:g' -i $target/sensible.tmux
     '';
   };
 
-  sessionist = mkDerivation {
+  sessionist = mkTmuxPlugin {
     pluginName = "sessionist";
     version = "unstable-2017-12-03";
     src = fetchFromGitHub {
@@ -410,7 +441,7 @@ in rec {
     };
   };
 
-  sidebar = mkDerivation {
+  sidebar = mkTmuxPlugin {
     pluginName = "sidebar";
     version = "unstable-2018-11-30";
     src = fetchFromGitHub {
@@ -421,7 +452,7 @@ in rec {
     };
   };
 
-  sysstat = mkDerivation {
+  sysstat = mkTmuxPlugin {
     pluginName = "sysstat";
     version = "unstable-2017-12-12";
     src = fetchFromGitHub {
@@ -432,7 +463,7 @@ in rec {
     };
   };
 
-  tilish = mkDerivation {
+  tilish = mkTmuxPlugin {
     pluginName = "tilish";
     version = "2020-08-12";
     src = fetchFromGitHub {
@@ -451,7 +482,7 @@ in rec {
     };
   };
 
-  tmux-colors-solarized = mkDerivation {
+  tmux-colors-solarized = mkTmuxPlugin {
     pluginName = "tmuxcolors";
     version = "unstable-2019-07-14";
     src = fetchFromGitHub {
@@ -462,7 +493,7 @@ in rec {
     };
   };
 
-  tmux-fzf = mkDerivation {
+  tmux-fzf = mkTmuxPlugin {
     pluginName = "tmux-fzf";
     rtpFilePath = "main.tmux";
     version = "unstable-2020-12-07";
@@ -477,7 +508,7 @@ in rec {
       find $target -type f -print0 | xargs -0 sed -i -e 's|sed |${pkgs.gnused}/bin/sed |g'
       find $target -type f -print0 | xargs -0 sed -i -e 's|tput |${pkgs.ncurses}/bin/tput |g'
     '';
-     meta = {
+    meta = {
       homepage = "https://github.com/sainnhe/tmux-fzf";
       description = "Use fzf to manage your tmux work environment! ";
       longDescription =
@@ -498,7 +529,7 @@ in rec {
     };
   };
 
-  urlview = mkDerivation {
+  urlview = mkTmuxPlugin {
     pluginName = "urlview";
     version = "unstable-2016-01-06";
     src = fetchFromGitHub {
@@ -510,10 +541,9 @@ in rec {
     postInstall = ''
       sed -i -e '14,20{s|urlview|${pkgs.urlview}/bin/urlview|g}' $target/urlview.tmux
     '';
-    dependencies = [ pkgs.urlview ];
   };
 
-  vim-tmux-focus-events = mkDerivation {
+  vim-tmux-focus-events = mkTmuxPlugin {
     pluginName = "vim-tmux-focus-events";
     version = "unstable-2020-10-05";
     src = fetchFromGitHub {
@@ -532,7 +562,7 @@ in rec {
     };
   };
 
-  vim-tmux-navigator = mkDerivation {
+  vim-tmux-navigator = mkTmuxPlugin {
     pluginName = "vim-tmux-navigator";
     rtpFilePath = "vim-tmux-navigator.tmux";
     version = "unstable-2019-12-10";
@@ -544,7 +574,7 @@ in rec {
     };
   };
 
-  yank = mkDerivation {
+  yank = mkTmuxPlugin {
     pluginName = "yank";
     version = "unstable-2019-12-02";
     src = fetchFromGitHub {
@@ -554,5 +584,4 @@ in rec {
       sha256 = "1zg9k8yk1iw01vl8m44w4sv20lln4l0lq9dafc09lxmgxm9dllj4";
     };
   };
-
 }
diff --git a/nixpkgs/pkgs/misc/uboot/default.nix b/nixpkgs/pkgs/misc/uboot/default.nix
index 20d928d944d8..6c59c13d12e2 100644
--- a/nixpkgs/pkgs/misc/uboot/default.nix
+++ b/nixpkgs/pkgs/misc/uboot/default.nix
@@ -178,6 +178,28 @@ in {
     '';
   };
 
+  ubootNanoPCT4 = buildUBoot rec {
+    rkbin = fetchFromGitHub {
+      owner = "armbian";
+      repo = "rkbin";
+      rev = "3bd0321cae5ef881a6005fb470009ad5a5d1462d";
+      sha256 = "09r4dzxsbs3pff4sh70qnyp30s3rc7pkc46v1m3152s7jqjasp31";
+    };
+
+    defconfig = "nanopc-t4-rk3399_defconfig";
+
+    extraMeta = {
+      platforms = ["aarch64-linux"];
+      license = lib.licenses.unfreeRedistributableFirmware;
+    };
+    BL31="${armTrustedFirmwareRK3399}/bl31.elf";
+    filesToInstall = ["u-boot.itb" "idbloader.img"];
+    postBuild = ''
+      ./tools/mkimage -n rk3399 -T rksd -d ${rkbin}/rk33/rk3399_ddr_800MHz_v1.24.bin idbloader.img
+      cat ${rkbin}/rk33/rk3399_miniloader_v1.19.bin >> idbloader.img
+    '';
+  };
+
   ubootNovena = buildUBoot {
     defconfig = "novena_defconfig";
     extraMeta.platforms = ["armv7l-linux"];
@@ -249,6 +271,12 @@ in {
     filesToInstall = ["u-boot-sunxi-with-spl.bin"];
   };
 
+  ubootOrangePiZero = buildUBoot {
+    defconfig = "orangepi_zero_defconfig";
+    extraMeta.platforms = ["armv7l-linux"];
+    filesToInstall = ["u-boot-sunxi-with-spl.bin"];
+  };
+
   ubootPcduino3Nano = buildUBoot {
     defconfig = "Linksprite_pcDuino3_Nano_defconfig";
     extraMeta.platforms = ["armv7l-linux"];
diff --git a/nixpkgs/pkgs/misc/vim-plugins/generated.nix b/nixpkgs/pkgs/misc/vim-plugins/generated.nix
index c4448194a9e7..caaeb85388a6 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/generated.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/generated.nix
@@ -65,12 +65,12 @@ let
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2021-02-11";
+    version = "2021-03-30";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "8cb9f5ef515f73eb3cf3188cc20ff57a51d9217b";
-      sha256 = "1ml2j5l91n1zwp7zxdg2cny48bbj1gw0dfa223bf5iq472c1ggk2";
+      rev = "06f57ca9733aab6e6b67015917fdfd4bf1c70c48";
+      sha256 = "0nsphdv6k5v0qa4p35g4j99pa68fwn7bll4jpvdqs74p82589dhd";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -89,24 +89,24 @@ let
 
   aniseed = buildVimPluginFrom2Nix {
     pname = "aniseed";
-    version = "2021-02-07";
+    version = "2021-02-27";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "aniseed";
-      rev = "4fbb34ccc09354ec09033719133c32d531111934";
-      sha256 = "0blpw88d0b7arxnz18glppwwgs0gynq0l7yd2a2jm45wqvlfh8ld";
+      rev = "984d84a1bda7208587feb3d62cfec5bcab404af2";
+      sha256 = "00gf2xm20wg0p1ik55jwhzlbd5sz06k3hk30415xayfa6flgh0n4";
     };
     meta.homepage = "https://github.com/Olical/aniseed/";
   };
 
   ansible-vim = buildVimPluginFrom2Nix {
     pname = "ansible-vim";
-    version = "2020-10-15";
+    version = "2021-02-20";
     src = fetchFromGitHub {
       owner = "pearofducks";
       repo = "ansible-vim";
-      rev = "7abb04c115742ec9a5f90b86170f0118680cf8ec";
-      sha256 = "185b4dari7y05p99756bqld4kk3d124ry4m4j7an8qm0zmpq648m";
+      rev = "de933417e5d37b10d1834095fcd0a1c8c360d34a";
+      sha256 = "1fwjpkzkpwy808949iqbsgi6kxyglfyzr1d5hc1911vbayn8wyjy";
     };
     meta.homepage = "https://github.com/pearofducks/ansible-vim/";
   };
@@ -149,24 +149,24 @@ let
 
   async-vim = buildVimPluginFrom2Nix {
     pname = "async-vim";
-    version = "2020-12-30";
+    version = "2021-03-21";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "async.vim";
-      rev = "236debf1a68d69a74f1f6647c273b0477e1ec1bf";
-      sha256 = "12xz71182shfj8l300j7wnngxm5zkx2g1c2d4l6dvbk5z1dbzlj6";
+      rev = "0fb846e1eb3c2bf04d52a57f41088afb3395212e";
+      sha256 = "1glzg0i53wkm383y1vbddbyp1ivlsx2hivjchiw60sr9gccn8f8l";
     };
     meta.homepage = "https://github.com/prabirshrestha/async.vim/";
   };
 
   asyncomplete-vim = buildVimPluginFrom2Nix {
     pname = "asyncomplete-vim";
-    version = "2021-01-28";
+    version = "2021-03-03";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "asyncomplete.vim";
-      rev = "4be3c16b33c27fce5372bf8bc74e42126c76fe61";
-      sha256 = "1y5xlisby7a41naas7r09ins3k9arn5xc5bb6w8k7am6xz3vc3r6";
+      rev = "8e018dee9c5e2205288bda01be0de196b04b7cf2";
+      sha256 = "1ghv6zp3qajd4n9qv3mnxqhczi77qmds2b2iicbl252slvldr604";
     };
     meta.homepage = "https://github.com/prabirshrestha/asyncomplete.vim/";
   };
@@ -209,12 +209,12 @@ let
 
   auto-session = buildVimPluginFrom2Nix {
     pname = "auto-session";
-    version = "2021-02-05";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "691155697a809af8797c1b935aa4e73187516d42";
-      sha256 = "199rcp3wcqg40a6lsrk83lv2kxgmnbapd5zw16jcxg4svy30dhfg";
+      rev = "52f7f0c686188ba132dd362fde64f45c30ef431a";
+      sha256 = "1512gd0z8wl8i6pc3gya9qg2pq9k5bfx9b7h2sgp8v356rjx21ks";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -233,12 +233,12 @@ let
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "awesome-vim-colorschemes";
-    version = "2021-01-29";
+    version = "2021-02-26";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "8f437c8960abbd4b29c05a19eaad8c3e792ace05";
-      sha256 = "039xln6bwxa6mbwvzdfk32b3v8p4glghb3104nydscy9zbsmpick";
+      rev = "1ed59bff2a84e48e1a243a7e5d336a395f610e2a";
+      sha256 = "1acz9zwb9mwyhfckpzv22dy5c4bq83jrmvvbd22z9k0hm5py2538";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -257,12 +257,12 @@ let
 
   barbar-nvim = buildVimPluginFrom2Nix {
     pname = "barbar-nvim";
-    version = "2021-01-16";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "80860e972cdf78e0e0b8dc7f16e07142966f73cf";
-      sha256 = "009gnamainla5z2q98p6mi4gifmlbx5im7d2gx2d0da62cbdrcsl";
+      rev = "9c80bfbce9f9b2bdbb42ad9cebfeba6a3dd9a9a8";
+      sha256 = "10dln43kjafj7vaf7s2yvxvc1vaga7rygnl4819275ardjpgddgs";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
@@ -389,12 +389,12 @@ let
 
   chadtree = buildVimPluginFrom2Nix {
     pname = "chadtree";
-    version = "2021-02-12";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "e3e679e077708ee8a4de6bdcdf4135ac1f1ebd9c";
-      sha256 = "0i7wznlvamybbrz0qjvynkzk6alcxa327nrlw95la6qbw67vkbsl";
+      rev = "cd20e2323045c7dda2d42af64fa86a7325752a55";
+      sha256 = "1jhxdfvvdvbar9gdzsjvxs8brckww454f2agf2ariwndakcinqqn";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -425,12 +425,12 @@ let
 
   ci_dark = buildVimPluginFrom2Nix {
     pname = "ci_dark";
-    version = "2021-01-31";
+    version = "2021-03-03";
     src = fetchFromGitHub {
       owner = "chuling";
       repo = "ci_dark";
-      rev = "c7537d81a796b4559e03309aeec9cb8d6d7bda21";
-      sha256 = "05p8viz5q7rknzyh7zp3k2qhl14nlamik5gvqy86bfgwmhbac350";
+      rev = "9063153b05ca47c030a5f656411dbbed33697678";
+      sha256 = "011017ywcgjcflsl21fjcrz7ap68aqvgx5y5z64075qkrk1pqgz1";
     };
     meta.homepage = "https://github.com/chuling/ci_dark/";
   };
@@ -461,60 +461,60 @@ let
 
   coc-clap = buildVimPluginFrom2Nix {
     pname = "coc-clap";
-    version = "2020-12-17";
+    version = "2021-03-04";
     src = fetchFromGitHub {
       owner = "vn-ki";
       repo = "coc-clap";
-      rev = "5a0685a6e9eac82d5b1912e10b4ebdd41823dccd";
-      sha256 = "16g10s8zwzjzk21s09bvlc8z20gxv0whb83wf9kbysiv5aamf0n1";
+      rev = "57116d2f999dfa025fac579835fd23e1a6341fa2";
+      sha256 = "0m2khf11krkqmbykfx21yq9ydglz6dldw4xml5nkyqm93n37xn1s";
     };
     meta.homepage = "https://github.com/vn-ki/coc-clap/";
   };
 
   coc-denite = buildVimPluginFrom2Nix {
     pname = "coc-denite";
-    version = "2021-01-14";
+    version = "2021-02-24";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-denite";
-      rev = "819b0e334431a9e914d69f3fedf68122799fcab9";
-      sha256 = "02zy4ip7m1jivqzs67c8bzc8lis8wxkm38nvk6nngz2790xpfywc";
+      rev = "37016bc170014e36fc8212b2dc7ce7adda48bbe3";
+      sha256 = "0kpw2gfkpdfsi2kwm6rbzmz3diyinc3lcf91rxm8wyw486sp0s10";
     };
     meta.homepage = "https://github.com/neoclide/coc-denite/";
   };
 
   coc-explorer = buildVimPluginFrom2Nix {
     pname = "coc-explorer";
-    version = "2021-02-07";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "weirongxu";
       repo = "coc-explorer";
-      rev = "8c839426885e290ff5f63d87778f6325339ecf1f";
-      sha256 = "03ssv8b5pq44dnj9iplpc76js5mpwg0l77wg4zal5gx0ashgm39p";
+      rev = "259d681b368dd0ea11e3b62bbb537c4eece2ef6a";
+      sha256 = "1vzfx5ajjd4fq3n9ixj80l7gwq6wmiib899ww27sc5v4fkm5ykf6";
     };
     meta.homepage = "https://github.com/weirongxu/coc-explorer/";
   };
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2020-12-29";
+    version = "2021-03-21";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "a8b32b8b8a37d7fb87687c0187b7ad36987e2122";
-      sha256 = "1x6xfizcix1hlcl2dhxbaxxl2q7lpgnfyvdg81c88rcn68qykfn0";
+      rev = "8f27377229c5d2dcee9ae9cda8dea0fad4a5ac3b";
+      sha256 = "0ri0rlz4fwxli6ssz69zyifrdwhc8yx4p996rw8d2m76nm7hflv0";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
   coc-lua = buildVimPluginFrom2Nix {
     pname = "coc-lua";
-    version = "2021-02-09";
+    version = "2021-03-28";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-lua";
-      rev = "9fd7f97b9696e53066a8e62f528f26b6bc1858b0";
-      sha256 = "0lnkz1janblic4a15lr9fm6r62691wpgggdq8hyc5dz0m32jr0hn";
+      rev = "d826e14db13980f7f1734117ff60f5e3573eb2ce";
+      sha256 = "1b0yi6513n690y2sqlyzsckr15jim9izkjlfpphpw4a8d819hx7l";
     };
     meta.homepage = "https://github.com/josa42/coc-lua/";
   };
@@ -545,12 +545,12 @@ let
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2021-01-28";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "a336a8bc251702d9526a6818ae56e86d92fafc0c";
-      sha256 = "0jh5ik1w6qyp9scr9qxi47n7b8xgznknhsriwcpw2axs9ff00zz8";
+      rev = "d3e40ceabd76323c07434fc2711521cc8bb2d028";
+      sha256 = "0mppsxzcgxg20kf2zwja8r6gascxa9r9c7zh73i00i7n216f8fxd";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -593,12 +593,12 @@ let
 
   command-t = buildVimPluginFrom2Nix {
     pname = "command-t";
-    version = "2020-06-02";
+    version = "2021-03-14";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "command-t";
-      rev = "ea7a889bda2849ba87fc12053bf6dd14467d7b72";
-      sha256 = "02rswhlkgbapnjzqi2nv95ag08p9cjlqscwv6i17f9kvba929hkl";
+      rev = "a7ce436b211a7ac1f47cfd440370653e33c2a1d5";
+      sha256 = "1yfcbh9q35w1ckdv8isbwjwlgnjnjmqm8yc7bcbfirkx9pjlsw2z";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/wincent/command-t/";
@@ -616,14 +616,26 @@ let
     meta.homepage = "https://github.com/rhysd/committia.vim/";
   };
 
+  compe-conjure = buildVimPluginFrom2Nix {
+    pname = "compe-conjure";
+    version = "2021-02-02";
+    src = fetchFromGitHub {
+      owner = "tami5";
+      repo = "compe-conjure";
+      rev = "809853ff8098dffcf8ba5ac89bcf07806eb8f981";
+      sha256 = "0p7p4bgkh05zy0gzmq0g9nn9npykh1l17cvfzjyhcb3n1sczpjzf";
+    };
+    meta.homepage = "https://github.com/tami5/compe-conjure/";
+  };
+
   compe-tabnine = buildVimPluginFrom2Nix {
     pname = "compe-tabnine";
-    version = "2021-02-12";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "compe-tabnine";
-      rev = "ea3e34dcbe09563c986bc60ec7d3c0db18ce9690";
-      sha256 = "1gsi5ybkqxqv1q3yj2qdv5j2lhkwiabr3mrcj60ah5rb1qjvlmib";
+      rev = "e27296ab377fed567812876bebfd74487062d518";
+      sha256 = "0jmn0s398896109j7k8bni2f5qgd63xjnjsmqkljlpc9zvhy1fbz";
     };
     meta.homepage = "https://github.com/tzachar/compe-tabnine/";
   };
@@ -690,24 +702,24 @@ let
 
   conjure = buildVimPluginFrom2Nix {
     pname = "conjure";
-    version = "2021-02-10";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "88e7865b97737809d963b81b10737c41e90b4377";
-      sha256 = "075rm1s1y1cklnsqf7845s3knfwyiqs1wd82d9rvbvc3gs12xlpf";
+      rev = "46b766dee43a97266741087085889751b474fb56";
+      sha256 = "1034n76bg4p4yvqmz9g9clsrrhx0kvqs0z8fy6p9axmxqzi8z9rr";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
 
   context_filetype-vim = buildVimPluginFrom2Nix {
     pname = "context_filetype-vim";
-    version = "2020-09-17";
+    version = "2021-03-04";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "context_filetype.vim";
-      rev = "cf25d744ac35872364c49fac3cb6a546e8af92ce";
-      sha256 = "0mq0wh6kihmn5izaz81zl274yxc1x4gr9qmz9sjdhh122i9gbfs8";
+      rev = "f5e4ed8f7847cd5474017459c2a0f2dfd2bf971c";
+      sha256 = "039mnsd6k0sgs8l1a8ngl3y817c8g657nv8v9bdw9h8l5a934cb2";
     };
     meta.homepage = "https://github.com/Shougo/context_filetype.vim/";
   };
@@ -726,12 +738,12 @@ let
 
   Coqtail = buildVimPluginFrom2Nix {
     pname = "Coqtail";
-    version = "2021-02-09";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "f1deefb084b28197eaf988bbebff70dd86a99e03";
-      sha256 = "1461h9qlfvvcvig4zrbylm4j11xkxmbnha1nk5829xm50pjkmca2";
+      rev = "54b9cbf9da4a956dc55cd903f3b4f7b211b712a2";
+      sha256 = "0ir10ff5va38ch52fvyl5cfz4mjins3lpklqyh23rrqc0hfd8154";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -774,12 +786,12 @@ let
 
   csv-vim = buildVimPluginFrom2Nix {
     pname = "csv-vim";
-    version = "2020-10-07";
+    version = "2021-03-15";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "csv.vim";
-      rev = "350af4840991142230103e4f4fc58581d9c07812";
-      sha256 = "1ibmrz1h51iy5ffvwalfydgjvdsfjvbpz1s1zmsalpv8mlswrhij";
+      rev = "24da62f64e6025be12ad60b16489b561f228e619";
+      sha256 = "0x5z46rzhwrdr1fzq69c6bpn3dnjjj9a64s97wn220n4xwrz1y54";
     };
     meta.homepage = "https://github.com/chrisbra/csv.vim/";
   };
@@ -834,16 +846,28 @@ let
 
   dart-vim-plugin = buildVimPluginFrom2Nix {
     pname = "dart-vim-plugin";
-    version = "2020-11-10";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "dart-lang";
       repo = "dart-vim-plugin";
-      rev = "8ff9e1abd264f16fd1d192024348f6c63b514a0d";
-      sha256 = "15rkgh68j9agbj4144a0jis7qpcfjfspp6598laqjz1qzrx82pmf";
+      rev = "d874c13dca7300178546de62e1aff7d4812640c7";
+      sha256 = "1i1w9mwmrl6cds83mai1xyqrqmzbgal2whw653g54sz1gvnhab7s";
     };
     meta.homepage = "https://github.com/dart-lang/dart-vim-plugin/";
   };
 
+  dashboard-nvim = buildVimPluginFrom2Nix {
+    pname = "dashboard-nvim";
+    version = "2021-03-28";
+    src = fetchFromGitHub {
+      owner = "glepnir";
+      repo = "dashboard-nvim";
+      rev = "181ca6577101c04dd220b7a25096cbd4325979ec";
+      sha256 = "03zazbnbcsg272zzx4q4n6vkvcwzm8lh1jw1fzbkn2blmffyjld6";
+    };
+    meta.homepage = "https://github.com/glepnir/dashboard-nvim/";
+  };
+
   defx-git = buildVimPluginFrom2Nix {
     pname = "defx-git";
     version = "2021-01-01";
@@ -858,24 +882,24 @@ let
 
   defx-icons = buildVimPluginFrom2Nix {
     pname = "defx-icons";
-    version = "2020-08-09";
+    version = "2021-03-07";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "defx-icons";
-      rev = "3259550f918b2cfb9794b62e7bb94b863f75f489";
-      sha256 = "1a65p99f9f1idzkxl4fd1klxidf40lvs79bym1fydv1zw34x8qzv";
+      rev = "563bc2d07d6c369a293ea8cb2fad8afd38bf4a02";
+      sha256 = "0gp65vf7lb00k4pk9iyr2zm6q3lfz16ad70hh3ldnj2azdfz539m";
     };
     meta.homepage = "https://github.com/kristijanhusak/defx-icons/";
   };
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx-nvim";
-    version = "2021-02-07";
+    version = "2021-03-24";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "4d2353619262fe487a052288859f3eea64cd229c";
-      sha256 = "1nxh1pqrnvzdw02fb8bncb8gswfr3p2n1h8yfnfjlljqiapkvhdq";
+      rev = "e5a757e2dc2f3409f5ccc4e4df384df93b0ef09d";
+      sha256 = "1qfwpwb7r94hnjidggn1fwcshikac8j0ckf1qb0fppfx1akyf78q";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
@@ -918,24 +942,24 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2021-02-11";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "2ea80dfe51974a21a7ec695c23fe86be3a8b10ac";
-      sha256 = "0ilqw2jfrjq1h0camgqzf3h0p78gz5k4v8sgsixfbijv0syim2y0";
+      rev = "452b1800ad2f2db96847da857f9a0d67ff6ecc95";
+      sha256 = "0rhqi6rc3iz549g95m6m6s10hzihyg3fjj4v8dhic3iqpxilw8l8";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2021-02-09";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "907cf91cc491348bf383f3eb447c1be2a9330cb4";
-      sha256 = "1xsri4chlzfr0zc93wl96fpy381maygc3dlvy58nz2yswdr0g103";
+      rev = "09598d454ce12753c562a596b6c6b798537a8e67";
+      sha256 = "0vmkgb6fy9vi2spvgqf242vn37yj6sjs68ddz37948l5nazalhrl";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1003,12 +1027,12 @@ let
 
   deoplete-go = buildVimPluginFrom2Nix {
     pname = "deoplete-go";
-    version = "2020-11-16";
+    version = "2021-03-30";
     src = fetchFromGitHub {
       owner = "deoplete-plugins";
       repo = "deoplete-go";
-      rev = "a6657ff9b91c7301ad1f6a01a7f0113691ef0667";
-      sha256 = "02lv900k3vw33nknz58kl0hd4gr05jqq0xabi1zd4mvnk7vyqbd2";
+      rev = "4eac2e6f127f2e2601dee415db2f826e2c9ef16c";
+      sha256 = "0vwp1vnjf63i7wm3crpwjj9myjdw75ghq20i6nfrfv1szhqnq28m";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/deoplete-plugins/deoplete-go/";
@@ -1112,12 +1136,12 @@ let
 
   deoplete-tabnine = buildVimPluginFrom2Nix {
     pname = "deoplete-tabnine";
-    version = "2021-01-15";
+    version = "2021-02-28";
     src = fetchFromGitHub {
       owner = "tbodt";
       repo = "deoplete-tabnine";
-      rev = "80a329eca215f48de8a4e575af55607700ddc93e";
-      sha256 = "1i23ajbkx3yrll4mnqzf17g66c9x5g6ih3hk3acjq7h3m6ifgfyi";
+      rev = "6997d621f6bd10351041be8e9dfbc6874009bf1b";
+      sha256 = "17xxxk75w852qj89b1283pff1rsv6qd3siy14sxrz4455x4j1sj5";
     };
     meta.homepage = "https://github.com/tbodt/deoplete-tabnine/";
   };
@@ -1136,12 +1160,12 @@ let
 
   deoplete-vim-lsp = buildVimPluginFrom2Nix {
     pname = "deoplete-vim-lsp";
-    version = "2021-02-06";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "lighttiger2505";
       repo = "deoplete-vim-lsp";
-      rev = "fd80985bfd9f140c8e38b303ab325ec86c05b976";
-      sha256 = "1h9xprfqrfnfs50hgiah0c2y9lafhc2lldvmc7cl8xa5p9bslxj3";
+      rev = "af5432f1e063fd4c3a5879aa8c2afe82c17dc1c9";
+      sha256 = "1s6fw6vkpl0yiya22g13v4i14w3n1ds2zr8zdlwpkk44bf0225px";
     };
     meta.homepage = "https://github.com/lighttiger2505/deoplete-vim-lsp/";
   };
@@ -1160,12 +1184,12 @@ let
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2021-02-08";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "27af4ab2de157f80c8a8391aebb60061318814ea";
-      sha256 = "12gjf3pcds7ms568pxmwrlnfijrm18h3pnb1x1a1gmf7bwj7xyfc";
+      rev = "20d181d84c108ea2b13ce227e9dd5ae13df0e13e";
+      sha256 = "058bb2pznmldk8936d69ynqf79apiv0j39sva68qpqmsixnljnz9";
     };
     meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
@@ -1232,36 +1256,36 @@ let
 
   dracula-vim = buildVimPluginFrom2Nix {
     pname = "dracula-vim";
-    version = "2020-12-23";
+    version = "2021-03-18";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "e7154372adc95d637ccd911c2f8601d9ff2eac1f";
-      sha256 = "1li5q3151kjh8c6a7cdnmbydxhkjgqsa5nlv49dy6dnqc3b50m7s";
+      rev = "ab37ffc5aeb1693002f30254b3b9992965f45d5d";
+      sha256 = "0affiaa2ng43r3rj2yzxs50fiilsk5vqkgjah2zqa159lb2058ra";
     };
     meta.homepage = "https://github.com/dracula/vim/";
   };
 
   echodoc-vim = buildVimPluginFrom2Nix {
     pname = "echodoc-vim";
-    version = "2021-01-28";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "echodoc.vim";
-      rev = "c805de7e9811cd298861c7bc6ef455093dcdfaf5";
-      sha256 = "1jhhscldckydzzjnl1jki3025brmlbmr7czhw1s30jx5wr00zc5w";
+      rev = "af235aaaa74f41cd83181a16b9f17c16e56afc47";
+      sha256 = "1jzn7w6rv2bl1m4aqm716flg28jdjsgkikfjjjiz4if5vjsfj0lw";
     };
     meta.homepage = "https://github.com/Shougo/echodoc.vim/";
   };
 
   editorconfig-vim = buildVimPluginFrom2Nix {
     pname = "editorconfig-vim";
-    version = "2020-11-18";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "editorconfig";
       repo = "editorconfig-vim";
-      rev = "047c4b455b9d56adee63a52d6d7cdf5bb6521d53";
-      sha256 = "0v7zbvpwmp1ypv5q0xy6p98l5g4ywcgyz3w1zrh9pz3m9hxa354d";
+      rev = "f305bc77faef4b418aee65682d7d147f64cfd5a9";
+      sha256 = "1yr8jni3z9sf348d8zw532vj4s1ww62yfslfcdgkgwhba1l2vy53";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/editorconfig/editorconfig-vim/";
@@ -1291,14 +1315,26 @@ let
     meta.homepage = "https://github.com/dmix/elvish.vim/";
   };
 
+  embark-vim = buildVimPluginFrom2Nix {
+    pname = "embark-vim";
+    version = "2021-03-12";
+    src = fetchFromGitHub {
+      owner = "embark-theme";
+      repo = "vim";
+      rev = "fda8867d405a93938f154fb9d70e4f4a4e6ef8c8";
+      sha256 = "09kvk3wjmpvssv8j5iba2dngnfkv178gkr620pa3k1imb0m9f0bq";
+    };
+    meta.homepage = "https://github.com/embark-theme/vim/";
+  };
+
   emmet-vim = buildVimPluginFrom2Nix {
     pname = "emmet-vim";
-    version = "2020-10-21";
+    version = "2021-03-20";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "emmet-vim";
-      rev = "60930a968d26fc7abf4f8fd5c3926bdcda2dd787";
-      sha256 = "1sf0518rq9idj0sbyplh7y9a481i3y57wwkvdakqvngbpm4bf6ms";
+      rev = "1f5daf6810d205844c039a4c9efa89317e62259d";
+      sha256 = "0250dp2jcxrhx333i6mk99q7ygwa8ac055id9qafdx331v9wxcil";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/mattn/emmet-vim/";
@@ -1330,24 +1366,24 @@ let
 
   falcon = buildVimPluginFrom2Nix {
     pname = "falcon";
-    version = "2021-02-01";
+    version = "2021-03-22";
     src = fetchFromGitHub {
       owner = "fenetikm";
       repo = "falcon";
-      rev = "e2efdb0d0827f7ec417583b25142f19714ece2ea";
-      sha256 = "1s4i9rv1kcpry1zldpml908xv1r5hn0darip701y14njbmk9fff8";
+      rev = "f6be01e8642dc8ccc7ed1f37b23f4b0dfa2c6f8c";
+      sha256 = "1w4ld5dvy0jxgjvp6yf8qibc4x82hn490vfg0hpln67nr6mhq1iw";
     };
     meta.homepage = "https://github.com/fenetikm/falcon/";
   };
 
   far-vim = buildVimPluginFrom2Nix {
     pname = "far-vim";
-    version = "2021-01-21";
+    version = "2021-02-19";
     src = fetchFromGitHub {
       owner = "brooth";
       repo = "far.vim";
-      rev = "b3e7b62ef6820ccdcbdc6070f3573b658aafba43";
-      sha256 = "0lf2vlsyk4ymhyscnpla417hvh6qdi8cablammnc5vsk1hmqvc3i";
+      rev = "e67b1dbe5842b709687c214fea38ca00f0ffe6c6";
+      sha256 = "1ljvl7p2k3bgl54srf6kvshqq16qwfa34ppj982fp2bzzal819l1";
     };
     meta.homepage = "https://github.com/brooth/far.vim/";
   };
@@ -1378,12 +1414,12 @@ let
 
   fern-vim = buildVimPluginFrom2Nix {
     pname = "fern-vim";
-    version = "2021-02-06";
+    version = "2021-03-25";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "fern.vim";
-      rev = "b71eaccd050f4f6422cf09594cd69067cacadd4c";
-      sha256 = "0c8j6qd0aaa6cva1ca36rdybrv7zrvxip2k9w44f37gakrzgmh50";
+      rev = "3f9f1957699346f240a9e71eee83fcb67c8fc0e5";
+      sha256 = "1wkxih5glkpvjy6ka42y0x1di2iqm1y7rc93av4gfqhhskryfv0h";
     };
     meta.homepage = "https://github.com/lambdalisue/fern.vim/";
   };
@@ -1499,24 +1535,24 @@ let
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf-vim";
-    version = "2021-02-02";
+    version = "2021-03-24";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "02a192ea0bed22a015e005b281e55e0da2a8e496";
-      sha256 = "0znlzjni031vagj83d60nararb67cli5fpp2lc37k9p8xnff1mjv";
+      rev = "caf7754b2636eabdf1bc11d30daccc5de66951ef";
+      sha256 = "1743br19x41rycc1iqh2jiwaa2z80bi2zcd0lr9n17dc733ww5n2";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
 
   galaxyline-nvim = buildVimPluginFrom2Nix {
     pname = "galaxyline-nvim";
-    version = "2021-02-09";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "galaxyline.nvim";
-      rev = "e30c355aaf6d2ca9aaa3a246eb87c7ceb4c42855";
-      sha256 = "09w6gvy9hg0cgrs6661g8kfyjd4waz0ajx983p5jqr6l9a96111k";
+      rev = "505bd8a2912f75b3c9cc439db3bd31ae514230cd";
+      sha256 = "0w2prdcp48z15r9j9z20y6kgasnzjhfk0d3pig560ifk0x33n4ba";
     };
     meta.homepage = "https://github.com/glepnir/galaxyline.nvim/";
   };
@@ -1547,12 +1583,12 @@ let
 
   ghcid = buildVimPluginFrom2Nix {
     pname = "ghcid";
-    version = "2021-02-06";
+    version = "2021-02-14";
     src = fetchFromGitHub {
       owner = "ndmitchell";
       repo = "ghcid";
-      rev = "298c69898c11c2da574a6d2c32e195b0adc6f356";
-      sha256 = "1999c3x2bpif0ppv1i452fcklgmjdxrvj510sy7dv8aym93vpmax";
+      rev = "abbb157ac9d06fdfba537f97ab96e197b3bb36cb";
+      sha256 = "008alqgqbrjh9sqgazqq1kk5hnpikd8afnia5lx9rv8c2am1d2fv";
     };
     meta.homepage = "https://github.com/ndmitchell/ghcid/";
   };
@@ -1569,14 +1605,26 @@ let
     meta.homepage = "https://github.com/eagletmt/ghcmod-vim/";
   };
 
+  git-blame-nvim = buildVimPluginFrom2Nix {
+    pname = "git-blame-nvim";
+    version = "2021-03-18";
+    src = fetchFromGitHub {
+      owner = "f-person";
+      repo = "git-blame.nvim";
+      rev = "c6515f6de67f50448a0f865b39c3c459b40856f5";
+      sha256 = "1cm6x58qm5jzgncrpwixcvs7cfdv02gf13zz1v4gxicxlllrh70f";
+    };
+    meta.homepage = "https://github.com/f-person/git-blame.nvim/";
+  };
+
   git-messenger-vim = buildVimPluginFrom2Nix {
     pname = "git-messenger-vim";
-    version = "2021-02-11";
+    version = "2021-03-21";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "git-messenger.vim";
-      rev = "ae0c39167c83507c6c257cd13268c98b8066cb50";
-      sha256 = "1xggg0h7phjjdjpzp884z7xqniyk3ca4yjc86lyh9vhbww87xa9c";
+      rev = "6fe62ce47491953487dac540964a4cfb037be7f3";
+      sha256 = "0g8gaprkrqs69rplmbf6nc03km6qcapipyc13rghb7fyksad51nr";
     };
     meta.homepage = "https://github.com/rhysd/git-messenger.vim/";
   };
@@ -1595,12 +1643,12 @@ let
 
   gitsigns-nvim = buildVimPluginFrom2Nix {
     pname = "gitsigns-nvim";
-    version = "2021-02-10";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "317750d66a572588eef9a23fefce4aff1cbcad94";
-      sha256 = "0nc52f0hkb701scvnas6my9i92ys1i9c5y9h4h42yk00ph83k2k1";
+      rev = "f66a368efa3cf605673492fd7afde80117aa2103";
+      sha256 = "1lyjdnizif33g3bfrrmrxwgvavyvn260h08c49ai4il5vpgs8ap4";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -1619,12 +1667,12 @@ let
 
   glow-nvim = buildVimPluginFrom2Nix {
     pname = "glow-nvim";
-    version = "2020-12-12";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "npxbr";
       repo = "glow.nvim";
-      rev = "fcd055b797553ffaa03061cb7e81b02a4626c6a6";
-      sha256 = "0kbwgw5q9i6irzdy656j4xbqfv5r1p8cd3xdfjszxymnnzrivy49";
+      rev = "89b4edfcb70529d9c713687aa6fcfa76a2010ae0";
+      sha256 = "0qq6cjzirr4zicy2n259sxi2ypz7w740qaf4a4vhphh4rd6gi18w";
     };
     meta.homepage = "https://github.com/npxbr/glow.nvim/";
   };
@@ -1679,24 +1727,24 @@ let
 
   gruvbox-community = buildVimPluginFrom2Nix {
     pname = "gruvbox-community";
-    version = "2021-01-17";
+    version = "2021-03-17";
     src = fetchFromGitHub {
       owner = "gruvbox-community";
       repo = "gruvbox";
-      rev = "c73e63203f76ab8e39b2b05369c0a8877a981435";
-      sha256 = "0lwvv5chxq0fb9k1y73g5zr8v54xghlqnq64k0vx2v2ravp3313r";
+      rev = "8a36e8dae3e31fa5edfb5ae91fb1c2d36b05979e";
+      sha256 = "0yq8bvpqlnj57pl2j4jwwpihpwmq0lym1q5sigvkp0yghlwliqxx";
     };
     meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
   };
 
   gundo-vim = buildVimPluginFrom2Nix {
     pname = "gundo-vim";
-    version = "2020-01-15";
+    version = "2021-02-21";
     src = fetchFromGitHub {
       owner = "sjl";
       repo = "gundo.vim";
-      rev = "99e6240340d9ba07b66c544daf44fa7caffbf7e7";
-      sha256 = "0py35mmwnfl581isnbh33j3bjgghq17jnamdi1bg3akwyn1jyhqb";
+      rev = "c5efef192b975b8e7d5fa3c6db932648d3b76323";
+      sha256 = "1smavxh0nmx4la75b1fjh8cs2x8p8ahxls034254vnm05wiwvghh";
     };
     meta.homepage = "https://github.com/sjl/gundo.vim/";
   };
@@ -1761,6 +1809,18 @@ let
     meta.homepage = "https://github.com/urbit/hoon.vim/";
   };
 
+  hop-nvim = buildVimPluginFrom2Nix {
+    pname = "hop-nvim";
+    version = "2021-04-05";
+    src = fetchFromGitHub {
+      owner = "phaazon";
+      repo = "hop.nvim";
+      rev = "414b9aae83d7b13559ed5031995363fa6c4841f3";
+      sha256 = "05cajsdfys608mb5379aj70w4f7pp7x3x3f5c2aryij5fg0mnx5j";
+    };
+    meta.homepage = "https://github.com/phaazon/hop.nvim/";
+  };
+
   i3config-vim = buildVimPluginFrom2Nix {
     pname = "i3config-vim";
     version = "2020-03-28";
@@ -1859,12 +1919,12 @@ let
 
   indent-blankline-nvim = buildVimPluginFrom2Nix {
     pname = "indent-blankline-nvim";
-    version = "2021-01-22";
+    version = "2021-03-06";
     src = fetchFromGitHub {
       owner = "lukas-reineke";
       repo = "indent-blankline.nvim";
-      rev = "207e001be64b39b72f8661e4a723d5bab698b5cd";
-      sha256 = "0vnnfm319y3n0vvwbwls40fb6s73rqc8yyi31g0f0hdwd6ahsafm";
+      rev = "47691a67b690ad6ebd9df67574691822d226a5b6";
+      sha256 = "0lkw6mslkd0gax0s280icpa5saq3320kkkmjih04mmnnf1vnwq6a";
     };
     meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
   };
@@ -1907,12 +1967,12 @@ let
 
   iosvkem = buildVimPluginFrom2Nix {
     pname = "iosvkem";
-    version = "2020-06-18";
+    version = "2021-03-26";
     src = fetchFromGitHub {
       owner = "neutaaaaan";
       repo = "iosvkem";
-      rev = "df359d91510be0c078905568d9033c891a3a2f4b";
-      sha256 = "0xqh5hr4m6hm2vfms1iqarzhgkmrgx6f5ywyh6qhwkbrdj8q3lyq";
+      rev = "ba116cae99eaa116f781f4bfef0a20a80bc19e98";
+      sha256 = "1as5xfcc6bgm2sp23qzxjpasbnx9jsdgzc97hhmybhq4115kfmxv";
     };
     meta.homepage = "https://github.com/neutaaaaan/iosvkem/";
   };
@@ -1955,17 +2015,29 @@ let
 
   jedi-vim = buildVimPluginFrom2Nix {
     pname = "jedi-vim";
-    version = "2021-01-30";
+    version = "2021-03-17";
     src = fetchFromGitHub {
       owner = "davidhalter";
       repo = "jedi-vim";
-      rev = "5d4615707fc7bce8a4f1fdaa5f7f07c11637bc30";
-      sha256 = "0m8dafwz76glmgi7jvc3sxsxill5a3prf5qi0r9266swdw4v8ah3";
+      rev = "8763462331600951f2d9e729c4d8e26b6049c804";
+      sha256 = "0rfrqsgpy501k0cy01br2rrlrsxls73yrhfhnsiafdi3dw6x9anj";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/davidhalter/jedi-vim/";
   };
 
+  jellybeans-nvim = buildVimPluginFrom2Nix {
+    pname = "jellybeans-nvim";
+    version = "2021-04-05";
+    src = fetchFromGitHub {
+      owner = "metalelf0";
+      repo = "jellybeans-nvim";
+      rev = "736aa1024741871aa5902ae5a7d5fb21192b4fa1";
+      sha256 = "13k3hf2y979xk3j4q4pwwhrxv0mw320ri4nyg3q39j3fprkryxs7";
+    };
+    meta.homepage = "https://github.com/metalelf0/jellybeans-nvim/";
+  };
+
   jellybeans-vim = buildVimPluginFrom2Nix {
     pname = "jellybeans-vim";
     version = "2019-06-22";
@@ -2004,24 +2076,24 @@ let
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2021-02-03";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "e16cb07240903999e8c62e6d27b4aee8146d29fc";
-      sha256 = "10ms35xl218kr5n02y353kg535icj0zzyrsxzzlmn99w90hbnkl7";
+      rev = "21ab5e899db6ad963b30102e14fb13be8eeb454c";
+      sha256 = "1m3jgj47pq21ra3znccpgkln42h03799fc845zrrsv186fhqmrjr";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
 
   kotlin-vim = buildVimPluginFrom2Nix {
     pname = "kotlin-vim";
-    version = "2020-11-02";
+    version = "2021-03-11";
     src = fetchFromGitHub {
       owner = "udalov";
       repo = "kotlin-vim";
-      rev = "f338707b2aa658aef4c0d98fd9748240859cf2a9";
-      sha256 = "0wm9bkykvm89f966a8wxm5vvg9kjayy5iziahnch35hrmscs5x4b";
+      rev = "4e94ec5d3c821daaeac40c4d243cb55d07924fd2";
+      sha256 = "1vj3pcxn1byggbfqv2k5m09cwpbsphivdbzpw8qs111hda0cv61s";
     };
     meta.homepage = "https://github.com/udalov/kotlin-vim/";
   };
@@ -2136,36 +2208,36 @@ let
 
   lf-vim = buildVimPluginFrom2Nix {
     pname = "lf-vim";
-    version = "2021-02-12";
+    version = "2021-02-18";
     src = fetchFromGitHub {
       owner = "ptzz";
       repo = "lf.vim";
-      rev = "3223bccf0ee4168aae6753a5cf0c0aa32a60c586";
-      sha256 = "1qka3hqm2376wz5pbr8x2c3rqycv392lv34spkqayq0d0fs4sqq0";
+      rev = "73fb502c6d1470243b1f4d8afa81e289d9edd94b";
+      sha256 = "1whrzpavv46r64l3b7vax4sj23kjdfjiwmhfpssb6bprhc9c4j97";
     };
     meta.homepage = "https://github.com/ptzz/lf.vim/";
   };
 
   lh-brackets = buildVimPluginFrom2Nix {
     pname = "lh-brackets";
-    version = "2021-01-15";
+    version = "2021-03-09";
     src = fetchFromGitHub {
       owner = "LucHermitte";
       repo = "lh-brackets";
-      rev = "7e0e38857de5558de04c251cf6ddc350724562d9";
-      sha256 = "105dgm80946jvx9qxs10vscgrplwpg89nwd6cmpm47wzj8999r8b";
+      rev = "73efae0e97b8c661bf36d3637c3ba1ee02b4fe07";
+      sha256 = "122jhh3vkapxz42sa6l9sdxcdl4fzq4xfrjmaak815nvf3bg249a";
     };
     meta.homepage = "https://github.com/LucHermitte/lh-brackets/";
   };
 
   lh-vim-lib = buildVimPluginFrom2Nix {
     pname = "lh-vim-lib";
-    version = "2021-01-06";
+    version = "2021-03-20";
     src = fetchFromGitHub {
       owner = "LucHermitte";
       repo = "lh-vim-lib";
-      rev = "65614730a667144a444fbd4a028a81171481c537";
-      sha256 = "1vxm3ym51qa63zbrkdz2pvwafr3kmdxgpxrdwb1g8i7qsxjsvgl1";
+      rev = "4b59e0470c4b9b359a4f6229c420686d6d8ea65f";
+      sha256 = "0fbzkmargimal2xyjsyrc6kmw6gdl61hcf17arqp9wv3yn18k637";
     };
     meta.homepage = "https://github.com/LucHermitte/lh-vim-lib/";
   };
@@ -2184,24 +2256,24 @@ let
 
   lightline-bufferline = buildVimPluginFrom2Nix {
     pname = "lightline-bufferline";
-    version = "2021-01-31";
+    version = "2021-03-10";
     src = fetchFromGitHub {
       owner = "mengelbrecht";
       repo = "lightline-bufferline";
-      rev = "936598633d19a2f171347494c3240e72da6db78a";
-      sha256 = "0j0swcbvhhy5gajl42z6g1dwr62b68l4c913fdfvdhjngq26wbyw";
+      rev = "f1feb5b3b9d1b13ccedae475e9346392e17895a4";
+      sha256 = "1wki7q6w6ld1lx792f62s8k72ikcdl6il3ybsxxlajmnj5mixvkg";
     };
     meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/";
   };
 
   lightline-vim = buildVimPluginFrom2Nix {
     pname = "lightline-vim";
-    version = "2021-01-11";
+    version = "2021-03-21";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "lightline.vim";
-      rev = "8e013f32f524157bf14ccaa87d97be3d3a7201e2";
-      sha256 = "0yl5r1dv91wzkgflh37fd52dinwsm4rcf4kfizn4xg5lbzdafkmn";
+      rev = "8a712365f9708044667589d9fffd87a4825d29f6";
+      sha256 = "1622qd5lizfv65m5iy3r0bl3zy8phh4anyx93kj631p836s8y6cq";
     };
     meta.homepage = "https://github.com/itchyny/lightline.vim/";
   };
@@ -2220,36 +2292,36 @@ let
 
   lispdocs-nvim = buildVimPluginFrom2Nix {
     pname = "lispdocs-nvim";
-    version = "2021-01-27";
+    version = "2021-03-19";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "lispdocs.nvim";
-      rev = "0c45512ffabc6997f74c26b9c87d4b3cb021ab19";
-      sha256 = "0m4iscxwdglvlkxhzs9gzx1iqvnvgknqxgss5k00wr0nrax8q3pl";
+      rev = "ff82d3668497e4520e195748d295cbe9513086b7";
+      sha256 = "03698f1lydnql9xi0a1iggpqv3001yn390z9j1hvpwmra3k7lnpg";
     };
     meta.homepage = "https://github.com/tami5/lispdocs.nvim/";
   };
 
   lsp-status-nvim = buildVimPluginFrom2Nix {
     pname = "lsp-status-nvim";
-    version = "2021-02-07";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "lsp-status.nvim";
-      rev = "187c492c492f8b57c1a66b82904785141b01d5ac";
-      sha256 = "0i8j37i2lkrsjlya9g5i8wr3gjlfkb9g9sqzq6a0132s6rpqdhmz";
+      rev = "60a3ad9dc2f43e0e512c242411541846a86eb7de";
+      sha256 = "08x8k06i6gl802fsp4sgvdcml35n4hnljwwxsgfyzwlcwx9llxlw";
     };
     meta.homepage = "https://github.com/nvim-lua/lsp-status.nvim/";
   };
 
   lsp_extensions-nvim = buildVimPluginFrom2Nix {
     pname = "lsp_extensions-nvim";
-    version = "2020-11-30";
+    version = "2021-02-17";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "lsp_extensions.nvim";
-      rev = "25951aca067b3a22f303f59d8eac2101d861850a";
-      sha256 = "0bl7y9xpvlmisizyyykjskxmrg01s6p7nkgdfskx14dv2f8dmv8q";
+      rev = "ce5d03822fda9ddbdeb2461e5b4c06c1641fe7ea";
+      sha256 = "1gybxaxgbq1s1ijvrl9h9nq443cyrdnhgi1yjqxzrr64wz7nr8v0";
     };
     meta.homepage = "https://github.com/nvim-lua/lsp_extensions.nvim/";
   };
@@ -2268,24 +2340,24 @@ let
 
   lspsaga-nvim = buildVimPluginFrom2Nix {
     pname = "lspsaga-nvim";
-    version = "2021-02-11";
+    version = "2021-03-28";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "lspsaga.nvim";
-      rev = "284b357137c3c57ff3716e07c865477788ab8e6d";
-      sha256 = "1n737lqnkgvyjxnmxfg6hmbnjgdx0qyrqql0fxb85m1n06gsm2n7";
+      rev = "27c7a4796869e155ecec48eb3f8e66694c1708e2";
+      sha256 = "1kdj6b7ph4111spwr55d6a0jjyrr18fbxyl3yi2nb5h75vm2hisj";
     };
     meta.homepage = "https://github.com/glepnir/lspsaga.nvim/";
   };
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine-nvim";
-    version = "2021-02-10";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "hoob3rt";
       repo = "lualine.nvim";
-      rev = "8a4baa804b7b2906eb8b9c325546dceabffdfcfd";
-      sha256 = "1fq5aa4yg5r1dr2g18xnywg7pyid6s9vzm71zy3anmdp4g24amgx";
+      rev = "7f1d7ba3fbd098d2afd0ee445e5889aca0ffe968";
+      sha256 = "0qbv46byksmbnw068q57v5w4ss3bayxm433kidxdabs80msikhhz";
     };
     meta.homepage = "https://github.com/hoob3rt/lualine.nvim/";
   };
@@ -2352,12 +2424,12 @@ let
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap-vim";
-    version = "2021-02-11";
+    version = "2021-03-30";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "05a9ef7981ff6438e3de5e30323474092badccb8";
-      sha256 = "1nr40222fcf1zfacwn2qdzzr074kvcp0p50ii8s6na99qp00nq78";
+      rev = "a7af085a6f549875f7721caa7cd3071fba800597";
+      sha256 = "0chzim7i3mq156n8zyay4prvyj306z6lqxdljzrz7j4mmkarcxl1";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -2580,12 +2652,12 @@ let
 
   neco-ghc = buildVimPluginFrom2Nix {
     pname = "neco-ghc";
-    version = "2020-12-19";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "eagletmt";
       repo = "neco-ghc";
-      rev = "ba23875fadc5e9022acb9d746b99f6fe5155d586";
-      sha256 = "08q3wlaq6a8acfcbhh3gdhzwn5rr7w18aqqww0z76hgblav11a4k";
+      rev = "699897c2f4ba82c4fd2be6b93c9a2e8e548efe4e";
+      sha256 = "03g2mky83a5zd54wzjhc1cv4pwkzcadskjm1c7b36k85yw35v88a";
     };
     meta.homepage = "https://github.com/eagletmt/neco-ghc/";
   };
@@ -2628,12 +2700,12 @@ let
 
   neocomplete-vim = buildVimPluginFrom2Nix {
     pname = "neocomplete-vim";
-    version = "2020-08-12";
+    version = "2021-02-18";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neocomplete.vim";
-      rev = "f80bbf8f2f1717a127e5fbe885729daa862def81";
-      sha256 = "0cks5fvr05k0lp2mwflqzx0mq6a3881c1304hdyci57j5bkkyvkj";
+      rev = "fc2d22c23962290cc0b32f50bf18add6a4573bdf";
+      sha256 = "04sxri3anr5d8zdqw11fn8nqf86wxin4lza78dp2x52kgrjawpla";
     };
     meta.homepage = "https://github.com/Shougo/neocomplete.vim/";
   };
@@ -2664,12 +2736,12 @@ let
 
   neogit = buildVimPluginFrom2Nix {
     pname = "neogit";
-    version = "2021-02-08";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "TimUntersberger";
       repo = "neogit";
-      rev = "53f22813fb3e60a4175ee44de55732b93c2903de";
-      sha256 = "0441hafqkqz11666cwkrgp90zmxgx7pjcl6n4bshyp82x3glw1nj";
+      rev = "ac8d7e1942a947eb335d77c3e611a526a4e24d4e";
+      sha256 = "1jnyybcj9g26wrwq6i7yq7bpncywfqm957dy4lq0s531yv6m3yly";
     };
     meta.homepage = "https://github.com/TimUntersberger/neogit/";
   };
@@ -2712,12 +2784,12 @@ let
 
   neosnippet-snippets = buildVimPluginFrom2Nix {
     pname = "neosnippet-snippets";
-    version = "2021-01-20";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet-snippets";
-      rev = "b10b14873fc0fd46a7daab251e83eaad6c17e1e3";
-      sha256 = "1y5bp92dvz356nzl14bcqhdvfwc59ckc45nw0m4lh43q2h0lvdg1";
+      rev = "3ae169d555afb0dd8a3be4b0bb20c38efda62e68";
+      sha256 = "1kjlhlnjf69hnl7aw11d211psi18qyb4l6k49xr868h7nrc2bns2";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet-snippets/";
   };
@@ -2796,36 +2868,36 @@ let
 
   nerdcommenter = buildVimPluginFrom2Nix {
     pname = "nerdcommenter";
-    version = "2021-02-02";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdcommenter";
-      rev = "b83e9cdf835161b398e04e4c462103fd21801ee3";
-      sha256 = "15x4qw0l9j228rrfqnwzg13j7cr0k69xd46rcsa4886lw8nmpsak";
+      rev = "6d0ab7dec9306fada667ea71edbb3da2b06a40ad";
+      sha256 = "0w5vaz7f8r61rizlgn3x9p3yzxw2aca1a76gb0zpalc2n51bdf9s";
     };
     meta.homepage = "https://github.com/preservim/nerdcommenter/";
   };
 
   nerdtree = buildVimPluginFrom2Nix {
     pname = "nerdtree";
-    version = "2021-02-11";
+    version = "2021-03-25";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdtree";
-      rev = "3a9d533f3de86a43b69f6c47d3394c0d866fdb08";
-      sha256 = "032hn7p7kgvrj0qg4gmpvl072zz4p9s5n8mrbs3k8c3lln1n9wh6";
+      rev = "81f3eaba295b3fceb2d032db57e5eae99ae480f8";
+      sha256 = "0zws0b20n8ak2s3hffsb0rrwdjh8sx3sgrilmmmvr0d2ivsfqwlb";
     };
     meta.homepage = "https://github.com/preservim/nerdtree/";
   };
 
   nerdtree-git-plugin = buildVimPluginFrom2Nix {
     pname = "nerdtree-git-plugin";
-    version = "2020-12-05";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "Xuyuanp";
       repo = "nerdtree-git-plugin";
-      rev = "5fa0e3e1487b17f8a23fc2674ebde5f55ce6a816";
-      sha256 = "0nwb3jla0rsg9vb52n24gjis9k4fwn38iqk13ixxd6w5pnn8ax9j";
+      rev = "73da0283ead8fa2bbce83d219fcab3ba1e8cf0dd";
+      sha256 = "17n79pmpnjnp6nirz4m4wwgfacrg26bdzjn4xj8i6ldkff5n20km";
     };
     meta.homepage = "https://github.com/Xuyuanp/nerdtree-git-plugin/";
   };
@@ -2842,6 +2914,18 @@ let
     meta.homepage = "https://github.com/fiatjaf/neuron.vim/";
   };
 
+  nginx-vim = buildVimPluginFrom2Nix {
+    pname = "nginx-vim";
+    version = "2021-02-25";
+    src = fetchFromGitHub {
+      owner = "chr4";
+      repo = "nginx.vim";
+      rev = "7b8e3ef48d8e60fe64bb1a85be52e66dd412c84d";
+      sha256 = "00n3kx4gczryx968n0l7hqdxg6i4vfi3n3m4bdl5d3rwpbwdy6zy";
+    };
+    meta.homepage = "https://github.com/chr4/nginx.vim/";
+  };
+
   nim-vim = buildVimPluginFrom2Nix {
     pname = "nim-vim";
     version = "2020-10-16";
@@ -2866,6 +2950,18 @@ let
     meta.homepage = "https://github.com/tjdevries/nlua.nvim/";
   };
 
+  nnn-vim = buildVimPluginFrom2Nix {
+    pname = "nnn-vim";
+    version = "2021-03-22";
+    src = fetchFromGitHub {
+      owner = "mcchrish";
+      repo = "nnn.vim";
+      rev = "6408b859f9fac3880d82109d25874fb6656026d9";
+      sha256 = "0r5s89882hj54qyi5rcwmf8g54jkjmap5c2rd2mhfjs3j4dfny72";
+    };
+    meta.homepage = "https://github.com/mcchrish/nnn.vim/";
+  };
+
   nord-vim = buildVimPluginFrom2Nix {
     pname = "nord-vim";
     version = "2020-07-06";
@@ -2892,16 +2988,64 @@ let
 
   nvcode-color-schemes-vim = buildVimPluginFrom2Nix {
     pname = "nvcode-color-schemes-vim";
-    version = "2021-01-10";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "ChristianChiarulli";
       repo = "nvcode-color-schemes.vim";
-      rev = "7ed43362582c7c202f9a3edc2293dbb87d96e5fc";
-      sha256 = "1bcl2cdsvafvlsh5d4a2cr3v1nzpdlh9whaasq2ac192a6hs0c3x";
+      rev = "29d4a787ad847c267ba836c82e71bfc0a8346c47";
+      sha256 = "0id5abls81yy9n8zvailrqljq5gd70x2wg3vbajrman8phpy7m9z";
     };
     meta.homepage = "https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/";
   };
 
+  nvim-ale-diagnostic = buildVimPluginFrom2Nix {
+    pname = "nvim-ale-diagnostic";
+    version = "2021-03-03";
+    src = fetchFromGitHub {
+      owner = "nathunsmitty";
+      repo = "nvim-ale-diagnostic";
+      rev = "894a6790637fdda0df1a2ee1de3f58cd8c276e10";
+      sha256 = "07jfmhac8s27awx9pknxlaqz9x3sbmjx7n90pr4np389b43zgrmp";
+    };
+    meta.homepage = "https://github.com/nathunsmitty/nvim-ale-diagnostic/";
+  };
+
+  nvim-autopairs = buildVimPluginFrom2Nix {
+    pname = "nvim-autopairs";
+    version = "2021-03-24";
+    src = fetchFromGitHub {
+      owner = "windwp";
+      repo = "nvim-autopairs";
+      rev = "b8272f539017ffb6de6a05247e7c333b3721279b";
+      sha256 = "11ng14pb14l0hsv27r24wwkjkw2l77kvd114pij3k5dl8b9zdgv2";
+    };
+    meta.homepage = "https://github.com/windwp/nvim-autopairs/";
+  };
+
+  nvim-bqf = buildVimPluginFrom2Nix {
+    pname = "nvim-bqf";
+    version = "2021-04-02";
+    src = fetchFromGitHub {
+      owner = "kevinhwang91";
+      repo = "nvim-bqf";
+      rev = "cf9b92326411640891360c7bdd784967a8923f43";
+      sha256 = "14jd99i35yl04jhwnccj6bx80xwpn9fl5i3bpd7b7safpd6gfk8m";
+    };
+    meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
+  };
+
+  nvim-bufferline-lua = buildVimPluginFrom2Nix {
+    pname = "nvim-bufferline-lua";
+    version = "2021-04-02";
+    src = fetchFromGitHub {
+      owner = "akinsho";
+      repo = "nvim-bufferline.lua";
+      rev = "2043d254017002c4862afefbacd5d1bd7fe94e55";
+      sha256 = "062kg1vq3b09b009n75kijfs9hlfmlj1yfsnd517imm9n5xhvfmr";
+    };
+    meta.homepage = "https://github.com/akinsho/nvim-bufferline.lua/";
+  };
+
   nvim-cm-racer = buildVimPluginFrom2Nix {
     pname = "nvim-cm-racer";
     version = "2017-07-27";
@@ -2914,14 +3058,26 @@ let
     meta.homepage = "https://github.com/roxma/nvim-cm-racer/";
   };
 
+  nvim-colorizer-lua = buildVimPluginFrom2Nix {
+    pname = "nvim-colorizer-lua";
+    version = "2020-06-11";
+    src = fetchFromGitHub {
+      owner = "norcalli";
+      repo = "nvim-colorizer.lua";
+      rev = "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6";
+      sha256 = "0gvqdfkqf6k9q46r0vcc3nqa6w45gsvp8j4kya1bvi24vhifg2p9";
+    };
+    meta.homepage = "https://github.com/norcalli/nvim-colorizer.lua/";
+  };
+
   nvim-compe = buildVimPluginFrom2Nix {
     pname = "nvim-compe";
-    version = "2021-02-11";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-compe";
-      rev = "bef454eecc11fb13e5bc3f29f443f495904470ef";
-      sha256 = "0plhhwip0nwc0fhgx5f1i6qhfl6msxf43vhgrv2xihmb30zjf2qr";
+      rev = "9fc416854685a8e05836b70d477d9bbbddefcd3b";
+      sha256 = "1irasadwqdijqixbbbysd50qh1rfhfkhfljz2438hiv3ayvj4aad";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-compe/";
   };
@@ -2940,60 +3096,60 @@ let
 
   nvim-dap = buildVimPluginFrom2Nix {
     pname = "nvim-dap";
-    version = "2021-02-07";
+    version = "2021-03-24";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "10a740b2364efc9acff78f4e7466902f153e584b";
-      sha256 = "1w4dvdd9fmi8gmgdq4zkrhrwdii4k7ns782gv4abpkzss5v6s66h";
+      rev = "cd0afafc788f9d4d9df5fef5d348841906b295d6";
+      sha256 = "1zh35qjxmkf37khagn8722byzjq2pns20cbmc821hfqdkj6q3pc8";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
   nvim-dap-virtual-text = buildVimPluginFrom2Nix {
     pname = "nvim-dap-virtual-text";
-    version = "2021-01-31";
+    version = "2021-03-15";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "nvim-dap-virtual-text";
-      rev = "3da747bbbaf3291838d984a26a423cc704794eca";
-      sha256 = "1lmcjclvdhd4jq0lsgrzv7y7ry9yiqh6bsinwrla5fbh63rfwkzc";
+      rev = "b26acb69a5a4940f9eb3fd6f4bca8e1cc16fa5ce";
+      sha256 = "16dkgmcfdx1n72khlwrcykwwpcjzz2mdh7dc53vb4j0pbmqmnna2";
     };
     meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/";
   };
 
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
-    version = "2021-01-24";
+    version = "2021-03-07";
     src = fetchFromGitHub {
       owner = "sakhnik";
       repo = "nvim-gdb";
-      rev = "531a575d1768be4531246950e55a784739b5d0a7";
-      sha256 = "03hd7bq09gz23619b19cz29hafhia5r28xm8bqnj03d2m6b2xlyh";
+      rev = "07aa4b435a832b122154a157ab6892ac4efb81fb";
+      sha256 = "05cgypswm7qdl26jd6nfqahk2bmqvp482k9zjbk0an12kbzlsrz0";
     };
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
 
   nvim-highlite = buildVimPluginFrom2Nix {
     pname = "nvim-highlite";
-    version = "2021-02-10";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "Iron-E";
       repo = "nvim-highlite";
-      rev = "aa8e36bd4f34dd0157d725c74874dfa44841a5e7";
-      sha256 = "1zrqd3ndlv3393xjmf1n3w6im24fyqmnpldqvph5ix9lfrrf5vzh";
+      rev = "ff28f2dde464a9e105c7dc041127eb60059d955a";
+      sha256 = "089019br0f3massc2sz3l0r8cjc33i5qqwbm4k7cz50x71g89wrq";
     };
     meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
   };
 
   nvim-hlslens = buildVimPluginFrom2Nix {
     pname = "nvim-hlslens";
-    version = "2021-02-11";
+    version = "2021-03-25";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-hlslens";
-      rev = "90ac936055ba8432b532392835e0fbbd82e60836";
-      sha256 = "1hfda95gwdglycs00a9rwvfar9w579234zn3sz4pngi5crdamr38";
+      rev = "fdce47e0bd9669e2424cc2a0112ecb47ba571d13";
+      sha256 = "1dn9wr23dizhs7byrim9zd3yi22g629jc2aqfx0q1v1i2i9g107v";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
   };
@@ -3012,36 +3168,36 @@ let
 
   nvim-jdtls = buildVimPluginFrom2Nix {
     pname = "nvim-jdtls";
-    version = "2021-01-30";
+    version = "2021-03-28";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "a35ce80f0e618da0eceb0d5f6874608d58d3ec26";
-      sha256 = "1m87v27721zdplpfk0dd8mag416dxmnqja2smwb7z29n18qh81sn";
+      rev = "4ebad2d52b7c648a7f6ceb5e62dde49167d07796";
+      sha256 = "0cnh6x49yy6z3f3h7q0q8l90cl7dchxfdgz7c143nv5qd3qkgnmc";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
 
   nvim-lightbulb = buildVimPluginFrom2Nix {
     pname = "nvim-lightbulb";
-    version = "2021-02-05";
+    version = "2021-03-13";
     src = fetchFromGitHub {
       owner = "kosayoda";
       repo = "nvim-lightbulb";
-      rev = "9198402f3417b0dbf26e73cac8cb53e074c163f1";
-      sha256 = "17gqdrskr744b1z26fjf01a9nvfasd4fhaa9dmmi4g4br8556cyj";
+      rev = "9c3b264ae2da1d984f0482d5a0dfa43f567fa064";
+      sha256 = "0yjxmnn3a7fw0fjwfqk284zshlw8v7wp8pn16d5m40rvbkk2ipzr";
     };
     meta.homepage = "https://github.com/kosayoda/nvim-lightbulb/";
   };
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2021-02-12";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "d3c178ac78f8930d4ca094685744f5c705b56b55";
-      sha256 = "1mj761vxq3dd7m384ig6dhipg43qw1w3cpkkvq9aymnlsvfi5b1d";
+      rev = "225859876bb8f9df7417f008ca790e0b2753eeab";
+      sha256 = "0ca67kb4706adihsyk6gdx0rf8wslw1ph82dprszpqla2gf1gqjn";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -3058,26 +3214,38 @@ let
     meta.homepage = "https://github.com/RishabhRD/nvim-lsputils/";
   };
 
+  nvim-nonicons = buildVimPluginFrom2Nix {
+    pname = "nvim-nonicons";
+    version = "2021-03-18";
+    src = fetchFromGitHub {
+      owner = "yamatsum";
+      repo = "nvim-nonicons";
+      rev = "f136ab905ac99c9bd20a8bc4c470eb33768c54a0";
+      sha256 = "1590gszcra3pagva6zplib35fqlgj26masjq3i6qgq85kpx5s55j";
+    };
+    meta.homepage = "https://github.com/yamatsum/nvim-nonicons/";
+  };
+
   nvim-peekup = buildVimPluginFrom2Nix {
     pname = "nvim-peekup";
-    version = "2021-02-11";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "gennaro-tedesco";
       repo = "nvim-peekup";
-      rev = "d4276b9601c683ad802893fed0cfe12a8631e931";
-      sha256 = "06sazbjcnv77c11b835b7n8p78vmzw9zl3lkqbfl6yarbbzniisi";
+      rev = "2f03df68bced26399b7576818b3cded3ce334ca0";
+      sha256 = "1bap28b9jbaywll50mwjfp91i0h671762ylgy3fxhnayf78py00d";
     };
     meta.homepage = "https://github.com/gennaro-tedesco/nvim-peekup/";
   };
 
   nvim-scrollview = buildVimPluginFrom2Nix {
     pname = "nvim-scrollview";
-    version = "2021-01-09";
+    version = "2021-03-23";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "426fc6549aff1d5a1b84127dd80807a4f134d4ab";
-      sha256 = "0yadrawg9q49fiizn4k8ng9hsp9vi2l0bw73s6ib0szg641k1w42";
+      rev = "902f24503ab7a754be2a1c483de1cd3428bd85ec";
+      sha256 = "0b31lpzdx1z88fm60p7d5gs442h4apm2n9h098n4j0ghcs5ppvnf";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
@@ -3094,90 +3262,114 @@ let
     meta.homepage = "https://github.com/norcalli/nvim-terminal.lua/";
   };
 
+  nvim-toggleterm-lua = buildVimPluginFrom2Nix {
+    pname = "nvim-toggleterm-lua";
+    version = "2021-03-23";
+    src = fetchFromGitHub {
+      owner = "akinsho";
+      repo = "nvim-toggleterm.lua";
+      rev = "84980bd3f549821fe58d1821fdc1e7c54d1ebf3a";
+      sha256 = "09dcajyfbimfzgxj57c988rqr6y6ah4p97j04gyvg1mrvlj95dg4";
+    };
+    meta.homepage = "https://github.com/akinsho/nvim-toggleterm.lua/";
+  };
+
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree-lua";
-    version = "2021-02-11";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "c59831a5d11a35594dc4e379a89d276d5ac83cdf";
-      sha256 = "0wf36dlg4hq2hfvyvm1i7z83ky1x4rr7vv249sk01clsy84nylql";
+      rev = "3350e4e97e51be10de9aca0617b665c9259d3089";
+      sha256 = "1vp6nsyhnwhnqkpgqll4b2x4pcxc8wsc7xy0nq2i1a5qjrpbb4ss";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2021-02-12";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "e5facde11bc8a2577dbfd56e2a4063320b09bc0b";
-      sha256 = "1i1dn4akszkly6cjf3z9s17y1fdgsgk0fr5i50hs4mlnxy7al01i";
+      rev = "11e1db3ec29abb5711556085766cb6912814c6dc";
+      sha256 = "0fsmbf8hnhcxxp8m738lmm75wg2ijxj8z0755aj0mcs8s735pjxz";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-context";
-    version = "2020-12-31";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "nvim-treesitter-context";
-      rev = "a7773cc3c581fa43cf0b59693ecdc6fc4e79e748";
-      sha256 = "1mxm6b00jmnci4yvd3bs9njf73bjbdwcn10l5bw9180a511aggv1";
+      rev = "5bc62fd2b09f4ddaf8d300c63d79140789797020";
+      sha256 = "1p97llbki41mwicsmqdly6lns7vfn9pgd961jpc980pj0df792gq";
     };
     meta.homepage = "https://github.com/romgrk/nvim-treesitter-context/";
   };
 
   nvim-treesitter-refactor = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-refactor";
-    version = "2021-01-07";
+    version = "2021-03-17";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-refactor";
-      rev = "16bbe963d044ec94316679868e0988caa7b5b4c3";
-      sha256 = "0jgasxphwi222ga73y3jh5zq9m95n74331jn8r3nv741lk2g0772";
+      rev = "edf1790d9cd365785d4f86848c079704aa7e4854";
+      sha256 = "12rp2mj7va5qf55jzca0rgy1xrwkyf7p3zd3xw262m9lqm4hjqqc";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-refactor/";
   };
 
   nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-textobjects";
-    version = "2021-01-01";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "065b342db053810ac7a5ee9740b891cfa05c380f";
-      sha256 = "07yl5iin11snw2637860r9zva9yfn7qkljkv0sjfldm73afflds7";
+      rev = "111cf356fd5c6c52d2dfb9299a76d201624be3cc";
+      sha256 = "1dvfwcdj2cbgxlsw09qgsvym8cvg8jval90h4rwmkn7yzh1wyf7a";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
 
   nvim-ts-rainbow = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow";
-    version = "2021-02-12";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "nvim-ts-rainbow";
-      rev = "3557b7baa9e773fff378235851cb3caac96fd4b9";
-      sha256 = "14bz6xwwdypwxfxdxhmbwl0w04ys18l08s1dx40mm5l1627wh465";
+      rev = "d463320156e7e3d85a98aca1f5292422fd3b5b12";
+      sha256 = "08sc8vd0arwyw3zpbnkmdp884fksw73yqzbw5fwddr3wn47sdckc";
     };
     meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
   };
 
   nvim-web-devicons = buildVimPluginFrom2Nix {
     pname = "nvim-web-devicons";
-    version = "2021-02-11";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-web-devicons";
-      rev = "cadf0c30659acc8c60fec8100b81ea0fd92a8a9c";
-      sha256 = "06d32z6rlz153vfbydcjvm6l2qrnjw0d6a60qxjpmbmby66nvcya";
+      rev = "95c6d6bc3a9b969578d555b98a7be8619c65908e";
+      sha256 = "15rw8qr52gi169x9cgs68dkm1f4blgqdrdmcqb7frqn8qjzaib9s";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
   };
 
+  nvim-whichkey-setup-lua = buildVimPluginFrom2Nix {
+    pname = "nvim-whichkey-setup-lua";
+    version = "2021-03-26";
+    src = fetchFromGitHub {
+      owner = "AckslD";
+      repo = "nvim-whichkey-setup.lua";
+      rev = "59aa0a4287adf6c2c9faabf912cdc005230e7c98";
+      sha256 = "093yjj28ak1ifbkn1s69wx8ldinj4v2bpf82fhqziw6d58ghwang";
+    };
+    meta.homepage = "https://github.com/AckslD/nvim-whichkey-setup.lua/";
+  };
+
   nvim-yarp = buildVimPluginFrom2Nix {
     pname = "nvim-yarp";
     version = "2020-04-08";
@@ -3228,24 +3420,24 @@ let
 
   one-nvim = buildVimPluginFrom2Nix {
     pname = "one-nvim";
-    version = "2021-01-30";
+    version = "2021-03-20";
     src = fetchFromGitHub {
       owner = "Th3Whit3Wolf";
       repo = "one-nvim";
-      rev = "88916fbb81530a25f9a3f8bc02e1b4c91ff7be10";
-      sha256 = "0glp8z6v53sff7vff6h6cxix40zwp1m305jsd50ji1i4913m08lw";
+      rev = "b1461ea89c940bdc5ed142327e1cd85ed2c0e877";
+      sha256 = "1w5avzyrcbg60prx3239iazcjvh2mk7lk6k256a1iyxb6dnkpbas";
     };
     meta.homepage = "https://github.com/Th3Whit3Wolf/one-nvim/";
   };
 
   onedark-vim = buildVimPluginFrom2Nix {
     pname = "onedark-vim";
-    version = "2020-12-14";
+    version = "2021-02-25";
     src = fetchFromGitHub {
       owner = "joshdick";
       repo = "onedark.vim";
-      rev = "94ff495eac89cea2532d8e0022f67c79a24d9649";
-      sha256 = "0x4wdmk28r85g14xv1acc0fimh4bsvm30mrgsws7dm8lqx3ws8g3";
+      rev = "b70ed293f3c3adaea23f9fcd84ef942015664756";
+      sha256 = "0wz4kmbgc9rlvbxj8s8xg1sx53w0v94r6qicq3ggs9raca51ywfg";
     };
     meta.homepage = "https://github.com/joshdick/onedark.vim/";
   };
@@ -3264,12 +3456,12 @@ let
 
   open-browser-github-vim = buildVimPluginFrom2Nix {
     pname = "open-browser-github-vim";
-    version = "2020-11-11";
+    version = "2021-03-21";
     src = fetchFromGitHub {
       owner = "tyru";
       repo = "open-browser-github.vim";
-      rev = "ee132b0f8ea180f996a2e34c5e977d23c615b47a";
-      sha256 = "17da42h05840vv8n4sj0im4rc18g2drb9sh0grjlpnz86mc8fqj0";
+      rev = "ac7c034e300f36d591ef234dcd5eb5cd5c07c74f";
+      sha256 = "0n62h0gjakdc3bnpysny0rndhqhq7g5c97pgr42wz599wnr1pily";
     };
     meta.homepage = "https://github.com/tyru/open-browser-github.vim/";
   };
@@ -3288,12 +3480,12 @@ let
 
   packer-nvim = buildVimPluginFrom2Nix {
     pname = "packer-nvim";
-    version = "2021-02-12";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "wbthomason";
       repo = "packer.nvim";
-      rev = "75a254198770baffe11ed748338c82f4d2d71e9d";
-      sha256 = "1vvkcpfvkkf14y7zxlp43ridx075y2hf14kc285mzwdhhb1ygcdi";
+      rev = "b495895dffca9aabfead066a860b87ab3a67cf7e";
+      sha256 = "08anlafdhmxc66yi4h13fkvqpkq1chazmyy8c18nx41af4b0p9bn";
     };
     meta.homepage = "https://github.com/wbthomason/packer.nvim/";
   };
@@ -3372,24 +3564,24 @@ let
 
   playground = buildVimPluginFrom2Nix {
     pname = "playground";
-    version = "2021-01-21";
+    version = "2021-03-22";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "playground";
-      rev = "7e373e5706a2df71fd3a96b50d1f7b0c3e7a0b36";
-      sha256 = "1vrfjv22whdmwna4xlvpsajx69fs8dkfwk0ji1jnvbyxmhki8mik";
+      rev = "d96cef521d22afd1a409449a890f20f50b436ee1";
+      sha256 = "1j1iqzi9q8fnl02hvazl8szg84iz8dqy0n52ngh1lvl78s9qa393";
     };
     meta.homepage = "https://github.com/nvim-treesitter/playground/";
   };
 
   plenary-nvim = buildVimPluginFrom2Nix {
     pname = "plenary-nvim";
-    version = "2021-02-09";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "b77fc46c5f35978c03277cd7261c07a36dafc8a4";
-      sha256 = "0a38ma4kn6s75s286bdl5mhqlnbzzpir29gzjq7kxqi4y4zh9spc";
+      rev = "720c304dc41da563857610e737ff281c250681ac";
+      sha256 = "0gcd88v2jykdgp7mqf10n9ydpg8gfb7258mxysjaf67313idh626";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -3408,12 +3600,12 @@ let
 
   popfix = buildVimPluginFrom2Nix {
     pname = "popfix";
-    version = "2021-02-08";
+    version = "2021-03-11";
     src = fetchFromGitHub {
       owner = "RishabhRD";
       repo = "popfix";
-      rev = "efcd82cbae750aa743619bfae7453fbec9366b87";
-      sha256 = "0041c9xnnhw24ablwqw9p9vlcmbfrp9l9r6i4ayh8id666ylsln9";
+      rev = "f3571e676739208871bd38f9fa0fddf554b6a7a8";
+      sha256 = "19hvwxcqca8l6dvlaccfvqc8755bpr0z0hi7l9qiw6rm458bhchi";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/RishabhRD/popfix/";
@@ -3421,12 +3613,12 @@ let
 
   popup-nvim = buildVimPluginFrom2Nix {
     pname = "popup-nvim";
-    version = "2020-12-12";
+    version = "2021-03-10";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "popup.nvim";
-      rev = "6f8f4cf35278956de1095b0d10701c6b579a2a57";
-      sha256 = "0mvcms1ica4kpl5na0cppk0advyq96707zj394wvlnnq18dnsj4z";
+      rev = "bc98ca6df9179452c368f0d7bac821a8fd4c01ac";
+      sha256 = "0j1gkaba6z5vb922j47i7sq0d1zwkr5581w0nxd8c31klghg3kyn";
     };
     meta.homepage = "https://github.com/nvim-lua/popup.nvim/";
   };
@@ -3589,16 +3781,28 @@ let
 
   Recover-vim = buildVimPluginFrom2Nix {
     pname = "Recover-vim";
-    version = "2020-04-20";
+    version = "2021-02-24";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "Recover.vim";
-      rev = "c84f07260f1e839bc7bfc2ab69bf4f3f4aaa423d";
-      sha256 = "1q87n2xz6p879ihijvhxs1iv9iyrqcbx7z8dkql0ivbf572q9iwh";
+      rev = "f019bb0bc15093da74ef0bd1a9356dedf13ba885";
+      sha256 = "1v23k4wfiazvkm9iaqw987cs69fwf230a7i15x3rv68azw63fl2b";
     };
     meta.homepage = "https://github.com/chrisbra/Recover.vim/";
   };
 
+  registers-nvim = buildVimPluginFrom2Nix {
+    pname = "registers-nvim";
+    version = "2021-03-31";
+    src = fetchFromGitHub {
+      owner = "tversteeg";
+      repo = "registers.nvim";
+      rev = "b8f6283724d3ccacf2c7add61f3fcb9c02e7d61d";
+      sha256 = "1b1amy9k6j2ilcm79pp30gcqqjhbd2zfwxm5vbcra29p9s4f14y2";
+    };
+    meta.homepage = "https://github.com/tversteeg/registers.nvim/";
+  };
+
   Rename = buildVimPluginFrom2Nix {
     pname = "Rename";
     version = "2011-08-31";
@@ -3647,6 +3851,18 @@ let
     meta.homepage = "https://github.com/mfukar/robotframework-vim/";
   };
 
+  rspec-vim = buildVimPluginFrom2Nix {
+    pname = "rspec-vim";
+    version = "2020-08-20";
+    src = fetchFromGitHub {
+      owner = "keith";
+      repo = "rspec.vim";
+      rev = "e49d306de952c2195233b83f9ca9fa94e19affe4";
+      sha256 = "0445abk039qlhk5s9jm5hawfksds5dgshb1lspvfkz8slk6m076z";
+    };
+    meta.homepage = "https://github.com/keith/rspec.vim/";
+  };
+
   rtorrent-syntax-file = buildVimPluginFrom2Nix {
     pname = "rtorrent-syntax-file";
     version = "2016-03-19";
@@ -3659,14 +3875,26 @@ let
     meta.homepage = "https://github.com/ccarpita/rtorrent-syntax-file/";
   };
 
+  rust-tools-nvim = buildVimPluginFrom2Nix {
+    pname = "rust-tools-nvim";
+    version = "2021-04-06";
+    src = fetchFromGitHub {
+      owner = "simrat39";
+      repo = "rust-tools.nvim";
+      rev = "42a9fb0441630ea640b7d3e967d6ad5c7f41b520";
+      sha256 = "0mcjcxhq2ri1galva5xjx4f0z98jyskmwypxc77gizisl2fjplnz";
+    };
+    meta.homepage = "https://github.com/simrat39/rust-tools.nvim/";
+  };
+
   rust-vim = buildVimPluginFrom2Nix {
     pname = "rust-vim";
-    version = "2020-09-18";
+    version = "2021-02-15";
     src = fetchFromGitHub {
       owner = "rust-lang";
       repo = "rust.vim";
-      rev = "96e79e397126be1a64fb53d8e3656842fe1a4532";
-      sha256 = "0siml7vqiq5nvymyw8az48rv5dsf9dad8y8hy22j57lknd67b8h3";
+      rev = "87c745d8d506fc1eecc1d81df15d5bde1658a2fc";
+      sha256 = "0v0ip731lclh9aqrmlqwnnz4skgawaq3invghh1c7lh0zdq22lzb";
     };
     meta.homepage = "https://github.com/rust-lang/rust.vim/";
   };
@@ -3757,12 +3985,12 @@ let
 
   sideways-vim = buildVimPluginFrom2Nix {
     pname = "sideways-vim";
-    version = "2021-01-31";
+    version = "2021-03-21";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "sideways.vim";
-      rev = "6aae3517c612a96c59b5417984889bff388210b2";
-      sha256 = "13d0jzzn7gr6c0zkpa5bkfp06246hbpfb6y7mmsw2waybw3hij9s";
+      rev = "171d6a39eb46973b229aaf1d88691e40d45f64ad";
+      sha256 = "097f0il1dcn2kshsngvklgwlhac86cjwxxagqvcz3yiaa1qpzhlp";
     };
     meta.homepage = "https://github.com/AndrewRadev/sideways.vim/";
   };
@@ -3815,6 +4043,30 @@ let
     meta.homepage = "https://github.com/gorkunov/smartpairs.vim/";
   };
 
+  snippets-nvim = buildVimPluginFrom2Nix {
+    pname = "snippets-nvim";
+    version = "2020-09-09";
+    src = fetchFromGitHub {
+      owner = "norcalli";
+      repo = "snippets.nvim";
+      rev = "7b5fd8071d4fb6fa981a899aae56b55897c079fd";
+      sha256 = "1fdsx7d5nyhhklwidgh387ijd485g2836rwd5i1r0di777mp7w80";
+    };
+    meta.homepage = "https://github.com/norcalli/snippets.nvim/";
+  };
+
+  sonokai = buildVimPluginFrom2Nix {
+    pname = "sonokai";
+    version = "2021-03-22";
+    src = fetchFromGitHub {
+      owner = "sainnhe";
+      repo = "sonokai";
+      rev = "78f1b14ad18b043eb888a173f4c431dbf79462d8";
+      sha256 = "0spnpzr874ad9jpawcgydfm242wq55ychcky14f1qa09svsrdiv0";
+    };
+    meta.homepage = "https://github.com/sainnhe/sonokai/";
+  };
+
   sourcemap-vim = buildVimPluginFrom2Nix {
     pname = "sourcemap-vim";
     version = "2012-09-19";
@@ -3829,12 +4081,12 @@ let
 
   SpaceCamp = buildVimPluginFrom2Nix {
     pname = "SpaceCamp";
-    version = "2020-05-14";
+    version = "2021-03-16";
     src = fetchFromGitHub {
       owner = "jaredgorski";
       repo = "SpaceCamp";
-      rev = "23c7a3948cd1861150346762a002dc7fa196c616";
-      sha256 = "1sbc9ivczkyfylhk1n4sm2sqzp8vddw03k0xb6z8k475n5vm8mvq";
+      rev = "ce034929763903937396cf6b2c9912eb209e6b39";
+      sha256 = "07a1441gccilbhnk99lz66nvaiv14vdn34ink3jjd27d2mkf3skb";
     };
     meta.homepage = "https://github.com/jaredgorski/SpaceCamp/";
   };
@@ -3901,12 +4153,12 @@ let
 
   splitjoin-vim = buildVimPluginFrom2Nix {
     pname = "splitjoin-vim";
-    version = "2020-12-15";
+    version = "2021-03-02";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "91ba14b41f6e767414d7bf2a8e82947c6bfdb978";
-      sha256 = "0q01xfnjqk3vnmknb01zlkzn1jj03lqsygk863vwrdazq86g5aci";
+      rev = "f0d785f7607be60c282b5f5a5d32a2e51560c07c";
+      sha256 = "1gbnhl1w0krlf2ppiz4h4fvnrjf8i0552nckhd67gfba2nqha0z4";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
@@ -3936,6 +4188,18 @@ let
     meta.homepage = "https://github.com/srcery-colors/srcery-vim/";
   };
 
+  stan-vim = buildVimPluginFrom2Nix {
+    pname = "stan-vim";
+    version = "2020-08-05";
+    src = fetchFromGitHub {
+      owner = "eigenfoo";
+      repo = "stan-vim";
+      rev = "9d3b6ec149f9559bd9bd021dfa827c29c5d1dc38";
+      sha256 = "0qv748m1vrp1qcl41y7fj2jm8cac9b01ljq6ydq3z4syxdf7yzcc";
+    };
+    meta.homepage = "https://github.com/eigenfoo/stan-vim/";
+  };
+
   starsearch-vim = buildVimPluginFrom2Nix {
     pname = "starsearch-vim";
     version = "2014-09-21";
@@ -3998,12 +4262,12 @@ let
 
   syntastic = buildVimPluginFrom2Nix {
     pname = "syntastic";
-    version = "2021-01-04";
+    version = "2021-03-15";
     src = fetchFromGitHub {
       owner = "vim-syntastic";
       repo = "syntastic";
-      rev = "d97a664b9adbd1a0a9cba6c1c3baf071a1059d1e";
-      sha256 = "1azranlzdm1w98ifmczp1zx1w66yrpdi9h3k05v126rwaqkd6bsj";
+      rev = "f2ddb480c5afa1c0f155d78e6fc7853fd20f0420";
+      sha256 = "05ca80alkhnxj1klyy729y81g9ng2n841djxgd7zjg8cpkk94kw3";
     };
     meta.homepage = "https://github.com/vim-syntastic/syntastic/";
   };
@@ -4046,12 +4310,12 @@ let
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2021-02-01";
+    version = "2021-03-23";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "tagbar";
-      rev = "7e8aeb69709b73cdbdaf50f4d26ab45d7920b7f0";
-      sha256 = "02mlr9aw4ppi4cs6r1v3d39j3l85sy7q2xm1dxg1ld6k1p5imk94";
+      rev = "f6012cb65da4bda46b0779a36840df36ad01483e";
+      sha256 = "08vb3ffm1f47q5gxyqmmfv75x12001qpkqml7v612wnnfpclcqf5";
     };
     meta.homepage = "https://github.com/preservim/tagbar/";
   };
@@ -4080,26 +4344,38 @@ let
     meta.homepage = "https://github.com/wellle/targets.vim/";
   };
 
+  taskwiki = buildVimPluginFrom2Nix {
+    pname = "taskwiki";
+    version = "2021-04-03";
+    src = fetchFromGitHub {
+      owner = "tools-life";
+      repo = "taskwiki";
+      rev = "23a3c20a7d5185700e1e6504c3808cfa9eff78d4";
+      sha256 = "0jwb4hcyqwpjaxlissvi69d6fx4dwb7ypdigc2w5hnhfw8nv0kb1";
+    };
+    meta.homepage = "https://github.com/tools-life/taskwiki/";
+  };
+
   tcomment_vim = buildVimPluginFrom2Nix {
     pname = "tcomment_vim";
-    version = "2021-02-03";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "tomtom";
       repo = "tcomment_vim";
-      rev = "2de3885686e7011f7efe0e31c2b6e0c002f9dd1a";
-      sha256 = "009x5bgj6grmwl35s0silkbnylpa5sjr4h0wyp6rl9xlj381vvn5";
+      rev = "8b69645999fab1933faf4fb53ae930f7c4368e79";
+      sha256 = "1x4mwg8dvfw1plkifawckkdi7brqs9rxpm8irp1q7kfywiwbyw0y";
     };
     meta.homepage = "https://github.com/tomtom/tcomment_vim/";
   };
 
   telescope-frecency-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-frecency-nvim";
-    version = "2021-02-10";
+    version = "2021-03-10";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-frecency.nvim";
-      rev = "ffa2027102f75e28dd8d8c2a97f3b9163dd80b56";
-      sha256 = "1ipxqkfaqc75qzpj7vg3gr44r8fcx979pyf84wibxic3kby9qp7y";
+      rev = "926fbde059d6a7cefcccdd92b40fa866e073ba41";
+      sha256 = "100zi9ncz2b6hb5y9hxcsj5ra81kq8j2b4y8ck56y4yg96yi03pd";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
   };
@@ -4131,12 +4407,12 @@ let
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-nvim";
-    version = "2021-02-09";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "3a7fa41857394cd2d90d00891413c12fada039c3";
-      sha256 = "0bn7jvwwaxfhcqd4l3wi9bshabbrcd4aws7d564kh1js8bklwx1b";
+      rev = "d0cf646f65746415294f570ec643ffd0101ca3ab";
+      sha256 = "02l65jxd50x4jc7mv1d9bsqasa7m0vkil0b36jamhvp1syzkwhkj";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -4153,6 +4429,18 @@ let
     meta.homepage = "https://github.com/jacoborus/tender.vim/";
   };
 
+  termwrapper-nvim = buildVimPluginFrom2Nix {
+    pname = "termwrapper-nvim";
+    version = "2021-03-28";
+    src = fetchFromGitHub {
+      owner = "oberblastmeister";
+      repo = "termwrapper.nvim";
+      rev = "e00da3cc137f795470818204fc2e712473481c78";
+      sha256 = "0a61n9dpf94rrkq79pjwn73axa1d2zfpsr2ci7wivg3inq7zsqyc";
+    };
+    meta.homepage = "https://github.com/oberblastmeister/termwrapper.nvim/";
+  };
+
   tern_for_vim = buildVimPluginFrom2Nix {
     pname = "tern_for_vim";
     version = "2019-01-23";
@@ -4203,24 +4491,24 @@ let
 
   tmux-complete-vim = buildVimPluginFrom2Nix {
     pname = "tmux-complete-vim";
-    version = "2019-11-10";
+    version = "2021-03-26";
     src = fetchFromGitHub {
       owner = "wellle";
       repo = "tmux-complete.vim";
-      rev = "7237d8d8d60af7916e3b546a9f4f396df95a1b21";
-      sha256 = "05ypjahaf7gk4vjc8hhglmw7y8vyjxyhxq8sm0s3np05aw0gdbsc";
+      rev = "87f6f96c73b599554d1d7f313413d7f9d0336096";
+      sha256 = "0bqh08q1jv05srd15bp9zrlrdzavxy83v153balvhrrvg3z4lk4x";
     };
     meta.homepage = "https://github.com/wellle/tmux-complete.vim/";
   };
 
   todo-txt-vim = buildVimPluginFrom2Nix {
     pname = "todo-txt-vim";
-    version = "2016-11-10";
+    version = "2021-03-20";
     src = fetchFromGitHub {
       owner = "freitass";
       repo = "todo.txt-vim";
-      rev = "6845221d45bd62e604c2024bc511a56e79d1118b";
-      sha256 = "08m9q5f2pz6gjp0vkmm7glfsrbnldxi1j59dm5d7any6y96xxd6v";
+      rev = "ed9d639de2e34eafb82f2682010ab361966ee40f";
+      sha256 = "1vw4vhbgxnlkl5m5y55xk81vrknw35s01dw21s815i8clp38zr7i";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/freitass/todo.txt-vim/";
@@ -4250,6 +4538,18 @@ let
     meta.homepage = "https://github.com/tjdevries/train.nvim/";
   };
 
+  tremor-vim = buildVimPluginFrom2Nix {
+    pname = "tremor-vim";
+    version = "2020-11-19";
+    src = fetchFromGitHub {
+      owner = "tremor-rs";
+      repo = "tremor-vim";
+      rev = "17e53c33f3b0e825330580034ca60172b8ddaadc";
+      sha256 = "1gy67qjv0iwqza0yx9y8p5yzn5fszrp7szg1527h0ki3q69cfqki";
+    };
+    meta.homepage = "https://github.com/tremor-rs/tremor-vim/";
+  };
+
   tslime-vim = buildVimPluginFrom2Nix {
     pname = "tslime-vim";
     version = "2020-09-09";
@@ -4288,24 +4588,24 @@ let
 
   ultisnips = buildVimPluginFrom2Nix {
     pname = "ultisnips";
-    version = "2021-02-09";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "SirVer";
       repo = "ultisnips";
-      rev = "66d81fc2c0bda30be69fffa46da0932ee8d5ddd5";
-      sha256 = "0fzpl2fj5kig8kbcn65ph6y3h412ryx5mfa15822lnsf8cmkr5db";
+      rev = "b974a13328071de45a85c62ab65c8bfed0142728";
+      sha256 = "1p93dmmprn415y8z44fl697wvh446w7dpskniissxwq4hfyqqgxh";
     };
     meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
 
   undotree = buildVimPluginFrom2Nix {
     pname = "undotree";
-    version = "2020-11-10";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "mbbill";
       repo = "undotree";
-      rev = "9ceb50062135dd30de3da000d5fd46125f51887d";
-      sha256 = "1vwjggf3csbysavk3yyfzjklyq8xwfvk17rprmj660h2whgjjzvg";
+      rev = "101edfb795bc17b814efb12e6df6a884507a34f6";
+      sha256 = "0fa2iqgzc85955ixa4hf1mjy7sm7hrbkha5l1scganc9zswd5iv2";
     };
     meta.homepage = "https://github.com/mbbill/undotree/";
   };
@@ -4384,12 +4684,12 @@ let
 
   vim-abolish = buildVimPluginFrom2Nix {
     pname = "vim-abolish";
-    version = "2020-10-30";
+    version = "2021-03-20";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-abolish";
-      rev = "68bc80c88617672fd41da7a6ace87d29cd3fe1e3";
-      sha256 = "1cgaf8nhprm8sligmq4km2p374a2x08fg3isl1k0mac1iz9vz1z8";
+      rev = "3f0c8faadf0c5b68bcf40785c1c42e3731bfa522";
+      sha256 = "1w9zim2v1av3f43z8q7zh0ia8dgjxjwnvmzd4j3y25vy25avn0lb";
     };
     meta.homepage = "https://github.com/tpope/vim-abolish/";
   };
@@ -4636,12 +4936,12 @@ let
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2021-02-05";
+    version = "2021-03-27";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "c01977d027de854c6a85ed5c57915a7e8848f4b9";
-      sha256 = "0xvv1dymvgazs57phxbxljihz92zd4aa5yjqqf4g9xvl59vxc798";
+      rev = "ed60e1d36912f64fdbed5640532b1067e11557ca";
+      sha256 = "0yijan5nknkkxr36rncscm043badn49w6778nwyazi2fx4266jfn";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
@@ -4660,24 +4960,24 @@ let
 
   vim-airline-themes = buildVimPluginFrom2Nix {
     pname = "vim-airline-themes";
-    version = "2020-12-17";
+    version = "2021-03-03";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline-themes";
-      rev = "8f1aa2c7fa44bf33b1fd4678f9c7b40c126b0e2b";
-      sha256 = "1gwk7m8ghg5lix14bqxjyxc1wv5agkfhqinsikssydab0liw0xyf";
+      rev = "fa808d74e0aacf131337b58f01ee45fd3d3588af";
+      sha256 = "02dq887676dq2rm1fxpzf3piyabs6zj0rvc70nxa5vvlv68qp6k7";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline-themes/";
   };
 
   vim-android = buildVimPluginFrom2Nix {
     pname = "vim-android";
-    version = "2020-11-04";
+    version = "2021-02-18";
     src = fetchFromGitHub {
       owner = "hsanson";
       repo = "vim-android";
-      rev = "5007343968e21bba30d85af982689d1c1f9145e1";
-      sha256 = "17c3yhnn016k03f2g3cjfwnazg2525pgwy4zqcv0vrgq2g4dil82";
+      rev = "1731cd3865669ebec84e6f32a87ccf16a00690fd";
+      sha256 = "0k6ch5kg8jlqa04apjdi7xr5s85ibdvg4gq4iyxh78xffw1xzafl";
     };
     meta.homepage = "https://github.com/hsanson/vim-android/";
   };
@@ -4732,12 +5032,12 @@ let
 
   vim-autoformat = buildVimPluginFrom2Nix {
     pname = "vim-autoformat";
-    version = "2021-02-10";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "Chiel92";
       repo = "vim-autoformat";
-      rev = "2a6f931987c1cc5e5bc0c4c44f21ac9bd4c72f3b";
-      sha256 = "17w0cjzppx9zxrqxaa975xazcnps4v1b93bmy19dccvc7z1gipby";
+      rev = "781c72c0625728eb5677a6952e57f282070666f8";
+      sha256 = "14l7h9h76x7cvvka8djn08dh3rmj34bycm8vqavh20nf2v8n9j2g";
     };
     meta.homepage = "https://github.com/Chiel92/vim-autoformat/";
   };
@@ -4792,12 +5092,12 @@ let
 
   vim-beancount = buildVimPluginFrom2Nix {
     pname = "vim-beancount";
-    version = "2020-08-06";
+    version = "2021-03-07";
     src = fetchFromGitHub {
       owner = "nathangrigg";
       repo = "vim-beancount";
-      rev = "6d762beaa526d4e56280619aa62b1013b50457b7";
-      sha256 = "0r4ziynmil432k1xjglqjx0bh5069aav3k9r58ksqg716w4zvzys";
+      rev = "30b55500094325af9e9498b72e75c8c1090df436";
+      sha256 = "0bh7q7s3zb2yrnck3zx1cx0kv8lm8zp4p5fwj6kv35y27v109pfm";
     };
     meta.homepage = "https://github.com/nathangrigg/vim-beancount/";
   };
@@ -4888,12 +5188,12 @@ let
 
   vim-choosewin = buildVimPluginFrom2Nix {
     pname = "vim-choosewin";
-    version = "2019-09-17";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "t9md";
       repo = "vim-choosewin";
-      rev = "f91cdb9be92ce3bb9bccba16e8c659d5e8d7454f";
-      sha256 = "1nq1vpwv6h5sc849y26nzkrmr9w3aj6w32apyih9kx0jh4ybv0xs";
+      rev = "1ca7da94aa1b8761f4212194e3c55e4a080d6525";
+      sha256 = "0nr6k8g0l27g4lczsy30cnh1il547qgbs4xl936v43gp4wvybah4";
     };
     meta.homepage = "https://github.com/t9md/vim-choosewin/";
   };
@@ -4912,12 +5212,12 @@ let
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2021-02-12";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "2e8538beaf1cef636deab2d40edcb270044485d1";
-      sha256 = "1ay90j72sknqhp1rdlgzdb5rxs98mwc5ad7q3rgqj8hpsr21x991";
+      rev = "97a2649ecb75cbad4081a9f575b2bb7f17582a3c";
+      sha256 = "0jn8iyhw80xasnp7b09yqjxa46jkcrfmy2r8b7ynxan9a37b206i";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -4948,36 +5248,36 @@ let
 
   vim-closer = buildVimPluginFrom2Nix {
     pname = "vim-closer";
-    version = "2020-10-24";
+    version = "2021-03-28";
     src = fetchFromGitHub {
       owner = "rstacruz";
       repo = "vim-closer";
-      rev = "c61667d27280df171a285b1274dd3cf04cbf78d4";
-      sha256 = "1dgcag4dibckpvsm8hr28yw10z81ic52sdm5narcwr1k6hjidxpn";
+      rev = "26bba80f4d987f12141da522d69aa1fa4aff4436";
+      sha256 = "1pyi5akzvvkdngm577m1c1210r0yypdwsvp1y7ag6gdfnls75xws";
     };
     meta.homepage = "https://github.com/rstacruz/vim-closer/";
   };
 
   vim-closetag = buildVimPluginFrom2Nix {
     pname = "vim-closetag";
-    version = "2020-10-09";
+    version = "2021-03-24";
     src = fetchFromGitHub {
       owner = "alvan";
       repo = "vim-closetag";
-      rev = "bd6bbc33c7e178673aa1dd17a5d249bbd4e3a6a6";
-      sha256 = "0nqzjma6mqg19cxq0ck2lym51ajb1x97z497zf9pbp47hkg5875j";
+      rev = "c0779ef575d5c239162f4ca3506cfb4a95d45a58";
+      sha256 = "1mkn6d7m23ak06pl8i328hd9x6qx5fzrg8ijz32lgd4a56k98n6i";
     };
     meta.homepage = "https://github.com/alvan/vim-closetag/";
   };
 
   vim-codefmt = buildVimPluginFrom2Nix {
     pname = "vim-codefmt";
-    version = "2020-12-18";
+    version = "2021-03-28";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-codefmt";
-      rev = "0bf16eb74e8243ee477ad97330e451026311fbae";
-      sha256 = "06060173jyz1n977a2jaq706x850bayg2n2jwmidbrsbiyx2krzy";
+      rev = "048baf8361d7ea24bfbaa4427ab4de08c39b0d57";
+      sha256 = "17xnxka4q7fqpl52x5fh2kpqzs7h1ql2lvv6sv7a0apf2qafs0qy";
     };
     meta.homepage = "https://github.com/google/vim-codefmt/";
   };
@@ -5044,16 +5344,28 @@ let
 
   vim-commentary = buildVimPluginFrom2Nix {
     pname = "vim-commentary";
-    version = "2019-11-18";
+    version = "2021-03-23";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-commentary";
-      rev = "f8238d70f873969fb41bf6a6b07ca63a4c0b82b1";
-      sha256 = "09d81q9na7pvvrmxxqy09ffdzsx5v5dikinb704c9wm4ys2bidr9";
+      rev = "349340debb34f6302931f0eb7139b2c11dfdf427";
+      sha256 = "01lpfcn2hmvxddcf97f4qx5vksxj1hwrxb0c8ri59z9lb9z2hgjd";
     };
     meta.homepage = "https://github.com/tpope/vim-commentary/";
   };
 
+  vim-concourse = buildVimPluginFrom2Nix {
+    pname = "vim-concourse";
+    version = "2016-11-21";
+    src = fetchFromGitHub {
+      owner = "luan";
+      repo = "vim-concourse";
+      rev = "7f61ca5d291fddd6d7ff04b03bf347f04bfe4344";
+      sha256 = "0ilf7r0lwx8f7shqxbs9av3gsnary8nbh3xhrfzwsivh8psi7qf6";
+    };
+    meta.homepage = "https://github.com/luan/vim-concourse/";
+  };
+
   vim-cool = buildVimPluginFrom2Nix {
     pname = "vim-cool";
     version = "2020-04-18";
@@ -5080,12 +5392,12 @@ let
 
   vim-crates = buildVimPluginFrom2Nix {
     pname = "vim-crates";
-    version = "2019-11-11";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-crates";
-      rev = "addbb157d0652ce5288c5b5b6f32f8716eb47898";
-      sha256 = "1pczfm9vjjna3xdqym9h69gi47kiwi97lzjf9jjlkmyg1s4pwlsp";
+      rev = "96a40ee5c976390c142b0074d7a4a7e54b0cfa00";
+      sha256 = "0nd8w4rx1s0fnhxn0ngl3dxj94ar8vjn611684v5pbxdpj6b92fm";
     };
     meta.homepage = "https://github.com/mhinz/vim-crates/";
   };
@@ -5152,12 +5464,12 @@ let
 
   vim-dadbod = buildVimPluginFrom2Nix {
     pname = "vim-dadbod";
-    version = "2021-01-25";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dadbod";
-      rev = "fb543e602de2fe74a7928c78e152bb964abb7a9a";
-      sha256 = "05fwa2v0fz1rgfyp2f47hcr7vzgwfrw14flr43d7a88d8qka9lqs";
+      rev = "33c86149c0aa114a5d14a1a2f2b5cbcc78cc0116";
+      sha256 = "01rqs6hcfd1ih1hr8bbwl1f3g86q41g0jbvrn5fpdfr9ccjy2ip1";
     };
     meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
@@ -5188,12 +5500,12 @@ let
 
   vim-devicons = buildVimPluginFrom2Nix {
     pname = "vim-devicons";
-    version = "2021-02-02";
+    version = "2021-02-19";
     src = fetchFromGitHub {
       owner = "ryanoasis";
       repo = "vim-devicons";
-      rev = "0329d89c5114dc285939050fd5777dbcc450ddd7";
-      sha256 = "0g8pipayg643xjs3dmpbwp91ycyg8b20qgr0mnmxzll0nan8zjny";
+      rev = "4d14cb82cf7381c2f8eca284d1a757faaa73b159";
+      sha256 = "1wwqchf50c19a5d5g037rjjpskn7dpsq9alhzim2x6bgffb5yamd";
     };
     meta.homepage = "https://github.com/ryanoasis/vim-devicons/";
   };
@@ -5248,12 +5560,12 @@ let
 
   vim-dispatch = buildVimPluginFrom2Nix {
     pname = "vim-dispatch";
-    version = "2020-04-19";
+    version = "2021-03-26";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dispatch";
-      rev = "fe6a34322829e466a7e8ce710a6ac5eabddff9fd";
-      sha256 = "1m0dfm8r3d8zph6i4ln3jqfzs8hxbkq9rvxpij1m2vvk2hgy2nf5";
+      rev = "4313cbb398d8b61b08be09f9b5a9ae4270c86004";
+      sha256 = "154vxj4bd10i70wd0d40g9j2yji6l5y00a0y4xk9402x5yljjmwr";
     };
     meta.homepage = "https://github.com/tpope/vim-dispatch/";
   };
@@ -5344,12 +5656,12 @@ let
 
   vim-elixir = buildVimPluginFrom2Nix {
     pname = "vim-elixir";
-    version = "2020-11-26";
+    version = "2021-03-01";
     src = fetchFromGitHub {
       owner = "elixir-editors";
       repo = "vim-elixir";
-      rev = "1ad996e64dadf0d2a65c8a079d55a0ad057c08b4";
-      sha256 = "1f4g7m09x67xfajanm9aw4z6rl1hcp24c5a01m1avn9594qgnh2c";
+      rev = "527e6fd8798638a79621e0b5c788b67b2b4b4dbc";
+      sha256 = "02ncqbxlncm9gz7dvxv6lv9zsnfhqmqq05m95lh95l3lm0gs44ph";
     };
     meta.homepage = "https://github.com/elixir-editors/vim-elixir/";
   };
@@ -5368,12 +5680,12 @@ let
 
   vim-endwise = buildVimPluginFrom2Nix {
     pname = "vim-endwise";
-    version = "2020-04-19";
+    version = "2021-03-06";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-endwise";
-      rev = "97180a73ad26e1dcc1eebe8de201f7189eb08344";
-      sha256 = "1f9nwp9qiip4alkpacwaq2nzsrx80a4cdwyrvajs6lrk48dv4hbw";
+      rev = "4289889a2622f9bc7c594a6dd79763781f63dfb5";
+      sha256 = "0sixr3rpcgqbaiyk7w6ghcrvllh35cb3gq9isdlwkww3dz4jyyxc";
     };
     meta.homepage = "https://github.com/tpope/vim-endwise/";
   };
@@ -5416,24 +5728,24 @@ let
 
   vim-erlang-tags = buildVimPluginFrom2Nix {
     pname = "vim-erlang-tags";
-    version = "2021-02-03";
+    version = "2021-02-19";
     src = fetchFromGitHub {
       owner = "vim-erlang";
       repo = "vim-erlang-tags";
-      rev = "125d494953da1746bc16cb716019a3d855fd3536";
-      sha256 = "1kaihn3bnw9pdr18vg09ya4ijjv0an6jzzva96v06lid2i66i9wi";
+      rev = "d7eaa8f6986de0f266dac48b7dcfbf41d67ce611";
+      sha256 = "03wxy29z0rjnf3hilap7c86di7dkjwb8sdlfh74ch8vhan8h6rv0";
     };
     meta.homepage = "https://github.com/vim-erlang/vim-erlang-tags/";
   };
 
   vim-eunuch = buildVimPluginFrom2Nix {
     pname = "vim-eunuch";
-    version = "2020-08-07";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-eunuch";
-      rev = "4a4bf16b499dcde371c05c77ed4083c4b5228278";
-      sha256 = "1wclxqw3b4jcj34jb830551c9bbrsm79mp7aahbqnjgq025j53x0";
+      rev = "dbbbf853fc523d312f61b4bbdf2e13297645dcde";
+      sha256 = "0lwkzxz76pcmash56p14pf54blz9v9kw17qj2i5wa8wdcymia98l";
     };
     meta.homepage = "https://github.com/tpope/vim-eunuch/";
   };
@@ -5476,24 +5788,24 @@ let
 
   vim-fetch = buildVimPluginFrom2Nix {
     pname = "vim-fetch";
-    version = "2020-01-31";
+    version = "2021-02-12";
     src = fetchFromGitHub {
       owner = "wsdjeg";
       repo = "vim-fetch";
-      rev = "dd674b50b261275a6a75cab6929b7bb7c5c4acba";
-      sha256 = "1hadfzhzkq2n9k3yga55fsl6nm5mgl2vv975jnxsi4qgz9cwcsgr";
+      rev = "0a6ab17e84c7f4808bf05ec380121bce40b40d21";
+      sha256 = "04srlz3zaiqkv9hz6q3vdkfq02k1wj4p9mg4m8930das4nkl7a05";
     };
     meta.homepage = "https://github.com/wsdjeg/vim-fetch/";
   };
 
   vim-fireplace = buildVimPluginFrom2Nix {
     pname = "vim-fireplace";
-    version = "2020-10-30";
+    version = "2021-03-20";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fireplace";
-      rev = "433ff6468d8ee0be5cbcf5bbd940f9ce2acf0f79";
-      sha256 = "1mjiwzl631v4yxgfbvgc66rxbyn3w1shy7836ksd2xnbd0m6kx8h";
+      rev = "e04a615e72ec2e216116b5c6514ac4d86b21ffc3";
+      sha256 = "1q17xlwprkvx27fbb9xg1zh5nyx8gif3pp6p8vd3r6zhzqqdl469";
     };
     meta.homepage = "https://github.com/tpope/vim-fireplace/";
   };
@@ -5524,12 +5836,12 @@ let
 
   vim-flake8 = buildVimPluginFrom2Nix {
     pname = "vim-flake8";
-    version = "2020-04-05";
+    version = "2021-03-29";
     src = fetchFromGitHub {
       owner = "nvie";
       repo = "vim-flake8";
-      rev = "0c7cf6dc038223b44e3c0a702fe2acf997768e8a";
-      sha256 = "14k1b7gjj1sh40qsf4wxbn0dymmc4jvsrd9pacsr6li273aiy6gq";
+      rev = "719cc31e2d07021906cc6471b7d7b1863d2b6acf";
+      sha256 = "0514gm0r36zclhzjckxnb3v9y8hl85iddjldh0irlagfwa7by773";
     };
     meta.homepage = "https://github.com/nvie/vim-flake8/";
   };
@@ -5548,16 +5860,28 @@ let
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2021-02-12";
+    version = "2021-03-24";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "bd76979d17c28db94430dbfa4007e5aef667441a";
-      sha256 = "0ih17mimpjkk9w81cpmzks63rd4k5v32i5y1anykcgn9nmmbp8qm";
+      rev = "ae7eea5c5c6c082fe66410e72306b5b1bcb693dd";
+      sha256 = "1lvaww22rj9jnd8b8fjcaclvj8n6vqc390l3z5d7ivm6fc5h1k1j";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
 
+  vim-flog = buildVimPluginFrom2Nix {
+    pname = "vim-flog";
+    version = "2021-03-07";
+    src = fetchFromGitHub {
+      owner = "rbong";
+      repo = "vim-flog";
+      rev = "904b964eb0f878e44f47d39898e72fc0b939756b";
+      sha256 = "07x8xafcvpg6dgxlvmf46gh7a9xvnrxj7i326q73g3yfh5xpma6c";
+    };
+    meta.homepage = "https://github.com/rbong/vim-flog/";
+  };
+
   vim-flutter = buildVimPluginFrom2Nix {
     pname = "vim-flutter";
     version = "2020-09-14";
@@ -5596,12 +5920,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2021-02-11";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "5c821eb78d4018025a1a9f54a9ef2af2a5ddd365";
-      sha256 = "0vzhc9dr166pn4xpznzxfyhfibas3m0an0z74gl3vih1qlg59h9y";
+      rev = "f29c9e50795cdfcc2b31b1e76ab6bd202e476298";
+      sha256 = "0wn3c4jads0201433kc8f9mnlg1phhgamr218yz1q70waj60ns2n";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -5644,12 +5968,12 @@ let
 
   vim-git = buildVimPluginFrom2Nix {
     pname = "vim-git";
-    version = "2020-07-13";
+    version = "2021-03-18";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-git";
-      rev = "4be54a3e2e300a94f6f7dfa7a6ee9e81245c9886";
-      sha256 = "1061l9igdywfbqgwpf2f25yby78phb512hjbyzvqz5l1p7dw1xyd";
+      rev = "e9058ebb9b9563ec77bc96fb19b2138f6512beef";
+      sha256 = "17wpar2ais3cx1jaak9l8fck7fks2yczn7flcvgfcwvjxd9vyxgq";
     };
     meta.homepage = "https://github.com/tpope/vim-git/";
   };
@@ -5668,12 +5992,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2021-02-11";
+    version = "2021-03-19";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "2e3cd54ed696500bb3722226f2103d4b279272c0";
-      sha256 = "1cv9lapq6xb0fq5i1mfbhv5qlab868mvby60yhwzafni5b2p9l37";
+      rev = "24cc47789557827209add5881c226243711475ce";
+      sha256 = "0fk8691wkhb7mb5ssmydipb61kh3hjnl31ngqbrbifzsqlkvibid";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -5716,12 +6040,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2021-02-10";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "cb4c622c97a39652151748c4dec70a46e93a9117";
-      sha256 = "0pfd6vizjrynz4azx3fkz5nwm7k08jjhvy6ypkjzhhw2ql37l7i9";
+      rev = "ce95699efa82921f80fdc0984d002ff81584c6e6";
+      sha256 = "0fq6i4arnzq5fmzy50kf2fb8bf5ickrrhs53la04x1jwx3lfzs05";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -5740,12 +6064,12 @@ let
 
   vim-graphql = buildVimPluginFrom2Nix {
     pname = "vim-graphql";
-    version = "2021-02-03";
+    version = "2021-03-19";
     src = fetchFromGitHub {
       owner = "jparise";
       repo = "vim-graphql";
-      rev = "553d125f7b0e56743e80e2439f5cd7f27771a8e3";
-      sha256 = "0nfp411zxjda5k7mh9400rjipqg6liizdkfqcc887zicaw3pylkm";
+      rev = "de5753e3fbd89f2939a43cfc2c6a2313ff129a21";
+      sha256 = "15qy6adhgfwjh6jrw9902hl67qzhdi72kqgzdk5shgfyndzar25g";
     };
     meta.homepage = "https://github.com/jparise/vim-graphql/";
   };
@@ -5762,6 +6086,18 @@ let
     meta.homepage = "https://github.com/mhinz/vim-grepper/";
   };
 
+  vim-gruvbox8 = buildVimPluginFrom2Nix {
+    pname = "vim-gruvbox8";
+    version = "2021-04-06";
+    src = fetchFromGitHub {
+      owner = "lifepillar";
+      repo = "vim-gruvbox8";
+      rev = "acb2574d85f3878cd5ab82dc3579403c174dafc3";
+      sha256 = "17k3fcidsk26i9nnbk37jcgznypzwh0pzam03yayb6dw4n733mld";
+    };
+    meta.homepage = "https://github.com/lifepillar/vim-gruvbox8/";
+  };
+
   vim-gui-position = buildVimPluginFrom2Nix {
     pname = "vim-gui-position";
     version = "2019-06-06";
@@ -5824,12 +6160,12 @@ let
 
   vim-hcl = buildVimPluginFrom2Nix {
     pname = "vim-hcl";
-    version = "2020-09-07";
+    version = "2021-03-17";
     src = fetchFromGitHub {
       owner = "jvirtanen";
       repo = "vim-hcl";
-      rev = "94fbd199c8a947ede62f98509f91d637d7967454";
-      sha256 = "0n2dmgfajji8nxxirb9q9jmqnzc1mjqnic5igs84pxmbc6r57zqq";
+      rev = "d50f93204b606b4ff40a9522be0e8dbf6055b815";
+      sha256 = "0sdaldmdrgha5ij02flsqrc77ijjifdvl8b6pdw24xrpd9j5cwhs";
     };
     meta.homepage = "https://github.com/jvirtanen/vim-hcl/";
   };
@@ -5848,12 +6184,12 @@ let
 
   vim-hexokinase = buildVimPluginFrom2Nix {
     pname = "vim-hexokinase";
-    version = "2021-01-31";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-hexokinase";
-      rev = "9f7f4bad24f23d5284543a02349a5114e8b8f032";
-      sha256 = "1i435avz23mclf1ag7v273xmpbgp66msvmi7mljkbs8k6xxygaks";
+      rev = "6bd30278c7af4c624bf996650d62dac404342dc7";
+      sha256 = "1wimsi6pxhw410dbcgj4sr9q5k21066i762fyaaf424jyf1g8d2i";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/RRethy/vim-hexokinase/";
@@ -5981,12 +6317,12 @@ let
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2021-02-05";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "1ce3c4de54d2f0115129b50c4b056620953336f4";
-      sha256 = "1g6lfxvs4nqlkyj0f7gd5f297r20cjxs6m6mza3bymivl9lwbj8p";
+      rev = "43bccb5ceb400fd0cb8c2903f9d174d1bc8b64d4";
+      sha256 = "07cg09vzqpyg3ql8vl3gvr1sy0bzw55xwbhhipbpz2127a92pk00";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -6077,24 +6413,24 @@ let
 
   vim-javacomplete2 = buildVimPluginFrom2Nix {
     pname = "vim-javacomplete2";
-    version = "2021-01-31";
+    version = "2021-03-18";
     src = fetchFromGitHub {
       owner = "artur-shaik";
       repo = "vim-javacomplete2";
-      rev = "fb39c1e6ab815270b9d1ba07f7d34059710b5035";
-      sha256 = "1n541shva0c7frihgv0ngg3vqm3d549wbqa15n2n6j1cfpsasbyd";
+      rev = "b01e32ec3d005423d5e6043b18b563086a623dc8";
+      sha256 = "0d9a6ynir9hgl9yp0mh0ng935llj4z9jkd9rvpddskcvq7h5590c";
     };
     meta.homepage = "https://github.com/artur-shaik/vim-javacomplete2/";
   };
 
   vim-javascript = buildVimPluginFrom2Nix {
     pname = "vim-javascript";
-    version = "2020-05-11";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "pangloss";
       repo = "vim-javascript";
-      rev = "3c90d0cc37bb8b78422f647e62587f498a5dd7bd";
-      sha256 = "16s3s883azfmwkr6hhnh8m7ibk6jm3vnvpmsagangxn0mz6ky533";
+      rev = "585ad542834fd3d9e47e0ef59abafd69c696c80d";
+      sha256 = "0y0lpx54yfmqbmvrhy95d0gp3qvrqn7ak7mdfsqlddp77gzs7qk2";
     };
     meta.homepage = "https://github.com/pangloss/vim-javascript/";
   };
@@ -6138,12 +6474,12 @@ let
 
   vim-jsdoc = buildVimPluginFrom2Nix {
     pname = "vim-jsdoc";
-    version = "2020-10-10";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "heavenshell";
       repo = "vim-jsdoc";
-      rev = "548767343ff221a4efd0c055a43c022d23fcafc5";
-      sha256 = "0scmpjav4zapglybdqilimqb3n805k8gqc46qvkiihprq9j9za4d";
+      rev = "fc059e80ff0b368a9188d6c16db052da6ac0951f";
+      sha256 = "03x8hhaf5mirk38gb8j7k3fk6jjis64a4r2hnvkgg6hwf9h02f2g";
     };
     meta.homepage = "https://github.com/heavenshell/vim-jsdoc/";
   };
@@ -6198,12 +6534,12 @@ let
 
   vim-kitty-navigator = buildVimPluginFrom2Nix {
     pname = "vim-kitty-navigator";
-    version = "2020-12-16";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "knubie";
       repo = "vim-kitty-navigator";
-      rev = "ee9252c62bcdc22e8326373ba1716442658b19d1";
-      sha256 = "1885gwbv2a4bwwydn129hd7xjgqp0cfjqkm0zw8lfylxgxadg0zb";
+      rev = "f09007be7e477a491a478444b302d079104af23d";
+      sha256 = "06m9rf0c9nxmyz9qnri1lmyb7cljv3vz2njxvh3fz8q7hjghh6cd";
     };
     meta.homepage = "https://github.com/knubie/vim-kitty-navigator/";
   };
@@ -6222,12 +6558,12 @@ let
 
   vim-lastplace = buildVimPluginFrom2Nix {
     pname = "vim-lastplace";
-    version = "2020-01-20";
+    version = "2021-03-29";
     src = fetchFromGitHub {
       owner = "farmergreg";
       repo = "vim-lastplace";
-      rev = "48ba343c8c1ca3039224727096aae214f51327d1";
-      sha256 = "0m8skd86p2cr0wz8rghj4is3fgnlh7vrw7can916li35i3hajid2";
+      rev = "8f6c4454eb462776b6ebdc48e3e29a68ddeb726d";
+      sha256 = "04x6y9yp5xlds37bswmrc3xlhhjfln9nzrkippvvhl48b0kfnpj8";
     };
     meta.homepage = "https://github.com/farmergreg/vim-lastplace/";
   };
@@ -6282,24 +6618,24 @@ let
 
   vim-ledger = buildVimPluginFrom2Nix {
     pname = "vim-ledger";
-    version = "2020-11-27";
+    version = "2021-03-06";
     src = fetchFromGitHub {
       owner = "ledger";
       repo = "vim-ledger";
-      rev = "532979346087c029badd02c9605a4efa84ac032a";
-      sha256 = "1hjhwaw5bl37a2c9s0wd16z3x9pf0d26dwbrh6s3jk6ivwiz0v7p";
+      rev = "96ec5f9a14211c3b1b2e4632c07df3a5fb68ef3b";
+      sha256 = "0kawxaxahg7sdpkyp65k7gy6hqbfcs1hy8w8rzvi2h9kw4y8xkr7";
     };
     meta.homepage = "https://github.com/ledger/vim-ledger/";
   };
 
   vim-lightline-coc = buildVimPluginFrom2Nix {
     pname = "vim-lightline-coc";
-    version = "2020-11-15";
+    version = "2021-03-03";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "vim-lightline-coc";
-      rev = "92a32b37ac1039ba39a451bd928bc62a316f0a7a";
-      sha256 = "1qwim9y20ffn6dx4s69389w4d2c0rwlp7ri2pxhfb6bgyvibrc3s";
+      rev = "53465b2c2ce7b6ae3497ad1cdb751dd3d8084d5c";
+      sha256 = "1r1w4j2ir6lzrlr2jhhy3ai4arswrbvjp46dxb6y9fyl516z5mza";
     };
     meta.homepage = "https://github.com/josa42/vim-lightline-coc/";
   };
@@ -6330,12 +6666,12 @@ let
 
   vim-localvimrc = buildVimPluginFrom2Nix {
     pname = "vim-localvimrc";
-    version = "2020-06-30";
+    version = "2021-02-18";
     src = fetchFromGitHub {
       owner = "embear";
       repo = "vim-localvimrc";
-      rev = "ac6444afb5fd11e3f7750f696a0c6b8b0b6ec116";
-      sha256 = "182fvmfnpcqda0cm878lk79iprxsd7nb9r97jmr7lx5agdcvzaqb";
+      rev = "0206f5f5a8721cc8c5c84ebb8ab2886e9afcd0ac";
+      sha256 = "1zin6pk581cnkivm2kgks0wrvpxjcl1y3x46wpkzdqg1hhif2129";
     };
     meta.homepage = "https://github.com/embear/vim-localvimrc/";
   };
@@ -6354,36 +6690,36 @@ let
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2021-02-04";
+    version = "2021-03-23";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "25d625aa0274b4c9845afd49a5c8f21aceb25073";
-      sha256 = "0pdmzv3rxdawxy4qy5p283nzrjs4lc0ki2j7xxiz5bhdgnznbkcc";
+      rev = "2f0cbbfb8ea8997b408e447a2bc9554a3de33617";
+      sha256 = "1y3r5a5mcjf8dp0pkmhgnbay10hh48w1b3wd795wwbm6nx4izjjq";
     };
     meta.homepage = "https://github.com/natebosch/vim-lsc/";
   };
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2021-02-02";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "21a29936ed74b2212e1904cca6c22bff4e27b637";
-      sha256 = "11jlqri1fyh1mbxrkihg1jj7g8mllh9w6gy64ah8gvpw505fws4c";
+      rev = "bba0f45c892b3c815c65ce44f93bcbe118a40377";
+      sha256 = "0wsbh8hx9f5jjdpvzbyb664h927jc44sm6rj2j6r9w6l2m8kr860";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
 
   vim-lsp-cxx-highlight = buildVimPluginFrom2Nix {
     pname = "vim-lsp-cxx-highlight";
-    version = "2020-12-23";
+    version = "2021-03-14";
     src = fetchFromGitHub {
       owner = "jackguo380";
       repo = "vim-lsp-cxx-highlight";
-      rev = "f42db17e0917e6011a1d3581c3a8f29efab8ed93";
-      sha256 = "0n67ap7zi888xin7c7ag8sk7hjrzg36mlpg42rqfgx66k6dm0455";
+      rev = "00818f0d8b7c87d3a1ecd81cc4ff1ab782355c2b";
+      sha256 = "1pjricwcqsbw466anwcndhj97g6qbblk95jaa8yg3a2fs8gdz8iz";
     };
     meta.homepage = "https://github.com/jackguo380/vim-lsp-cxx-highlight/";
   };
@@ -6451,12 +6787,12 @@ let
 
   vim-matchup = buildVimPluginFrom2Nix {
     pname = "vim-matchup";
-    version = "2021-01-29";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "52b3ec1ee8d0f78c69bae6cc32f3c2d1a023a8c8";
-      sha256 = "1hn3w4hzx444cz5z7g2lkpzr90r9ngjpy5jirgs3c947njc24kr7";
+      rev = "e54d6250d7487f008b9f4712a521144b83d6d4bb";
+      sha256 = "1x0a8hirs9szx4l3lsb79rmsa8d6ial2r8lxhp1r9vf3d0b71zcl";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -6511,12 +6847,12 @@ let
 
   vim-monokai = buildVimPluginFrom2Nix {
     pname = "vim-monokai";
-    version = "2020-12-02";
+    version = "2021-02-12";
     src = fetchFromGitHub {
       owner = "crusoexia";
       repo = "vim-monokai";
-      rev = "7f42bcd0e05921c7a5d7333c96bae8b21fa76064";
-      sha256 = "10ip0y9p2qf869h2yhp2zs6qc048rw1x5i0spziajca96251gvig";
+      rev = "65fa0678d8426ae2cc7a4c42a8f0d72bde2a7bbe";
+      sha256 = "0r118mxm34kr8yk66x9ddg2yh44gn00iaxljfbhg43nhp8jyzjbn";
     };
     meta.homepage = "https://github.com/crusoexia/vim-monokai/";
   };
@@ -6547,12 +6883,12 @@ let
 
   vim-mucomplete = buildVimPluginFrom2Nix {
     pname = "vim-mucomplete";
-    version = "2020-11-15";
+    version = "2021-03-14";
     src = fetchFromGitHub {
       owner = "lifepillar";
       repo = "vim-mucomplete";
-      rev = "80b13cbc30d258a4474b053fcdc6baaf199320a1";
-      sha256 = "054g80n09mmxxlh8xaic29bn8bgn3clvv732rymljdyvbj1mlhwd";
+      rev = "83cd9b3775438faafc3475f9f9d5fbb8da4dfa5b";
+      sha256 = "1l8rdmy9i81zq2ck0zvlsmqs7hfqpcxa0b8psf5nw72mwhbvv1np";
     };
     meta.homepage = "https://github.com/lifepillar/vim-mucomplete/";
   };
@@ -6571,12 +6907,12 @@ let
 
   vim-mundo = buildVimPluginFrom2Nix {
     pname = "vim-mundo";
-    version = "2020-12-29";
+    version = "2021-03-25";
     src = fetchFromGitHub {
       owner = "simnalamburt";
       repo = "vim-mundo";
-      rev = "4f8628caebe393ac1b84564e965f894d89a7582d";
-      sha256 = "0hmww1xln0rvvi8hy7sv9arjwlp40ks0b07irzqpm5xi93hgyq2n";
+      rev = "c6dcea90166750bb5ed40321749966b1a8020a1a";
+      sha256 = "1bd9xab96m2j6zcp6bh7k958wj95m8w40hczmn2qzpq3cvpy8nb0";
     };
     meta.homepage = "https://github.com/simnalamburt/vim-mundo/";
   };
@@ -6679,24 +7015,24 @@ let
 
   vim-obsession = buildVimPluginFrom2Nix {
     pname = "vim-obsession";
-    version = "2020-01-19";
+    version = "2021-03-22";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-obsession";
-      rev = "96a3f837c112cb64e0a9857b69f6d6a71041155e";
-      sha256 = "11h7jyg7fhjmq3pmpc93nrsxm175ra14407rs3558h8p04snc159";
+      rev = "82c9ac5e130c92a46e043dd9cd9e5b48d15e286d";
+      sha256 = "0lfcba8sk25l5yp3agh6pwniddf8jx627ikpr8i2z9ary2fqsj98";
     };
     meta.homepage = "https://github.com/tpope/vim-obsession/";
   };
 
   vim-ocaml = buildVimPluginFrom2Nix {
     pname = "vim-ocaml";
-    version = "2021-01-10";
+    version = "2021-03-03";
     src = fetchFromGitHub {
       owner = "ocaml";
       repo = "vim-ocaml";
-      rev = "f51b69f46d5eb0ebbdfcd39b5aa36bfd9454eafd";
-      sha256 = "0fs5pn2hhi0mnjz0xpjl0sh4032s4n4afzjrnhygw9l9a5m51dm4";
+      rev = "400bee047d116d1cbe72a479943ec69d5b5bba01";
+      sha256 = "0njprv1h38rsagpmp1z68vq90pf9fll3pa8767nhgv2kyadn29jx";
     };
     meta.homepage = "https://github.com/ocaml/vim-ocaml/";
   };
@@ -6775,12 +7111,12 @@ let
 
   vim-oscyank = buildVimPluginFrom2Nix {
     pname = "vim-oscyank";
-    version = "2021-02-08";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "ojroques";
       repo = "vim-oscyank";
-      rev = "fdbac11f36172d6e47e212385d2f4482e472f815";
-      sha256 = "1mbs8v8k7698qnck5n38lqaz8sl07d1p31c84injb460l6jfv1s7";
+      rev = "5b48c13143e55c234e8bf5bcfa2439b9ffa85241";
+      sha256 = "1njxf2vwd9jfpjybx0f5c7k7fhlzmdwkwsflb9rkgv0pz3l0wkqb";
     };
     meta.homepage = "https://github.com/ojroques/vim-oscyank/";
   };
@@ -6823,12 +7159,12 @@ let
 
   vim-pandoc = buildVimPluginFrom2Nix {
     pname = "vim-pandoc";
-    version = "2020-11-07";
+    version = "2021-03-10";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc";
-      rev = "0aeed75603a55887c2b492d1fe19ac8065dae671";
-      sha256 = "13xjpkq9lbb04igwif23zmb3395awk48kdyfshsga2gbv5h1i9fn";
+      rev = "0d4b68eb7f63e43f963a119d60a3e29c2bb822e0";
+      sha256 = "0p7m75f7vqdm0nvg0p3nbzqnsd7wdvbsf3y2mzirdl7c0pbvphqp";
     };
     meta.homepage = "https://github.com/vim-pandoc/vim-pandoc/";
   };
@@ -6847,12 +7183,12 @@ let
 
   vim-pandoc-syntax = buildVimPluginFrom2Nix {
     pname = "vim-pandoc-syntax";
-    version = "2020-10-24";
+    version = "2021-03-10";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc-syntax";
-      rev = "2521e2e9b99a3550e1a20f24e09fa46679cbbbc7";
-      sha256 = "02023bnvc9m98m45krld1b7gy13z335jv88fx4ybz019wc0mv35g";
+      rev = "aba6b5596cf0e879a83a2aa5edc93e5e5753bea8";
+      sha256 = "0hgzmfcyl3qhdmyyxdaynlm7psk164v8xg5j1kvdaxxgj4lwbnig";
     };
     meta.homepage = "https://github.com/vim-pandoc/vim-pandoc-syntax/";
   };
@@ -6967,12 +7303,12 @@ let
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2021-01-14";
+    version = "2021-03-01";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "4c10562d2cc9b084518284c49a158558da5180a7";
-      sha256 = "0avrjy1mxzkpsrbblzqx81ml08gm7n4bd4ihxm4qbvcdbg8n5chx";
+      rev = "cc63193ce82c1e7b9ee2ad7d0ddd14e8394211ef";
+      sha256 = "0and9148l36m8bhnzlyjirl1bd2ynswwzjc22605if82az9j55m8";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
@@ -7015,24 +7351,24 @@ let
 
   vim-projectionist = buildVimPluginFrom2Nix {
     pname = "vim-projectionist";
-    version = "2021-01-22";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-projectionist";
-      rev = "348e070867d02bd471df486bfbe25e2e2ce13061";
-      sha256 = "0fyp1zikw16kzjcs7a6g3kjk74xr46bdhwrwfi9ppfqlhb936kgr";
+      rev = "8dda7acb7e24b44ef691ba19b35f585e97e91b30";
+      sha256 = "0laqkgwv6hq1ix3kahvx0sfb8c7ifx61z2n4npqswpn0ri4ckd2j";
     };
     meta.homepage = "https://github.com/tpope/vim-projectionist/";
   };
 
   vim-prosession = buildVimPluginFrom2Nix {
     pname = "vim-prosession";
-    version = "2020-11-01";
+    version = "2021-03-21";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-prosession";
-      rev = "ad008dbdcd04ee1758f4475263c2a37789d32702";
-      sha256 = "14fcvghqbv7mx2yi112vc9cq69mw98fgv0vc8x256v639bj1y5g9";
+      rev = "976f3e61c2dd4ab709ea5eccbbab9e42d35d7e8c";
+      sha256 = "01dbiwj1x8rd5yy19cphxysga3fi5l3il2ph8hr1v4adzvw8269z";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-prosession/";
   };
@@ -7099,12 +7435,12 @@ let
 
   vim-qf = buildVimPluginFrom2Nix {
     pname = "vim-qf";
-    version = "2021-02-01";
+    version = "2021-03-29";
     src = fetchFromGitHub {
       owner = "romainl";
       repo = "vim-qf";
-      rev = "0da85ff4270c2be10e24729dd42fb749ad1b69b7";
-      sha256 = "0f8qnxy18qskbr3m8hn4vqv7bcvr2b0xqi64bxx078an5x8lbgx2";
+      rev = "127257057c4befb8c1026a7ba7e07713af1fb5c8";
+      sha256 = "1ai915kfxq4m8ba304qpcc2qb5rcj2vsrfcdh3blb1slw3a90hiq";
     };
     meta.homepage = "https://github.com/romainl/vim-qf/";
   };
@@ -7135,12 +7471,12 @@ let
 
   vim-racer = buildVimPluginFrom2Nix {
     pname = "vim-racer";
-    version = "2020-12-07";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "racer-rust";
       repo = "vim-racer";
-      rev = "83ba638104f6a56def3354c6c9b1df04d12f1d3d";
-      sha256 = "1qpxdam0qn7lyvgzyip30bs6k99c0qnpd5qgkkps6mcyzd1rqlqv";
+      rev = "d1aead98a936cd8165b3329511d7c987226eb3a6";
+      sha256 = "11f6iw9c59kdjcdkzn27szpi0bxhpp42qmlannnqzm49ssl817vv";
     };
     meta.homepage = "https://github.com/racer-rust/vim-racer/";
   };
@@ -7159,24 +7495,24 @@ let
 
   vim-ragtag = buildVimPluginFrom2Nix {
     pname = "vim-ragtag";
-    version = "2020-01-26";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-ragtag";
-      rev = "6f1af76cd669c4fb07f0c4e20fdee3077620e3d8";
-      sha256 = "1q5klbnwsg26zxhs3knhamk3srg7dmq46n83sa5rw2kmikb2idg2";
+      rev = "b8966c4f6503a8baaec39e17bd0bf38b2aadc9b2";
+      sha256 = "0q4blsgnl4l2bkhgjry6xnszhsswdand52gc6gdjffwlzwa9jczy";
     };
     meta.homepage = "https://github.com/tpope/vim-ragtag/";
   };
 
   vim-rails = buildVimPluginFrom2Nix {
     pname = "vim-rails";
-    version = "2020-09-29";
+    version = "2021-03-29";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rails";
-      rev = "2c42236cf38c0842dd490095ffd6b1540cad2e29";
-      sha256 = "0nhf4qd7dchrzjv2ijcddav72qb121c9jkkk06agsv23l9rb31pv";
+      rev = "9c3c831a089c7b4dcc4ebd8b8c73f366f754c976";
+      sha256 = "15m7hhqadvpf3ryig5vifp8m0md2mg9apx71z8xrpc7hgwsvy1bi";
     };
     meta.homepage = "https://github.com/tpope/vim-rails/";
   };
@@ -7195,24 +7531,24 @@ let
 
   vim-rhubarb = buildVimPluginFrom2Nix {
     pname = "vim-rhubarb";
-    version = "2021-02-11";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rhubarb";
-      rev = "964d48fd11db7c3a3246885993319d544c7c6fd5";
-      sha256 = "09xpjd96xd0mkzfwyvinjhbza7xp6v66bdrxwkb0j0n1kgfgkx4l";
+      rev = "71d5c3598e0d14af3fbaf2530c061c306db5a962";
+      sha256 = "03izgmaa150159lp43hsn17yqx0w8r8wa04cf1rnk1zw00zr2073";
     };
     meta.homepage = "https://github.com/tpope/vim-rhubarb/";
   };
 
   vim-rooter = buildVimPluginFrom2Nix {
     pname = "vim-rooter";
-    version = "2020-09-18";
+    version = "2021-03-11";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-rooter";
-      rev = "45ea40da3f223fff83fce0a643875e560ed20aae";
-      sha256 = "1bm8hpnm02pbivcvjn20qr6hk3yyb3flfkv7pk66sffhiyj44rh2";
+      rev = "544e701066c69bbeb45297d0285c2719e125440b";
+      sha256 = "0mj5zvfsi4n8qi8cq0h99j1zb11xmrpkm31ll4q1bm5mf57kbmxa";
     };
     meta.homepage = "https://github.com/airblade/vim-rooter/";
   };
@@ -7303,12 +7639,12 @@ let
 
   vim-scriptease = buildVimPluginFrom2Nix {
     pname = "vim-scriptease";
-    version = "2020-01-05";
+    version = "2021-03-25";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-scriptease";
-      rev = "86f49aca266e4b17420bcadd29009997d15668d8";
-      sha256 = "0kcv5q4qahqd316h5k81xnf8skn71126x4lw2i6wa2m2653d0k5c";
+      rev = "dbdc88f2ca38613a089354823fb2cec4d87d104d";
+      sha256 = "0i89vrnfphr32qcix9ah9cf68xnw6n8jm03xmgys29gkfim4v7sq";
     };
     meta.homepage = "https://github.com/tpope/vim-scriptease/";
   };
@@ -7327,12 +7663,12 @@ let
 
   vim-sexp = buildVimPluginFrom2Nix {
     pname = "vim-sexp";
-    version = "2017-05-15";
+    version = "2021-03-08";
     src = fetchFromGitHub {
       owner = "guns";
       repo = "vim-sexp";
-      rev = "12292941903d9ac8151513189d2007e1ccfc95f0";
-      sha256 = "1mfqbmrbqgnsc34pmcsrc0c5zvgxhhnw4hx4g5wbssfk1ddyx6y0";
+      rev = "14464d4580af43424ed8f2614d94e62bfa40bb4d";
+      sha256 = "139krxpjhbyypbl6v2jik1rms2fxl3dkqrl4rb7sms6c3p5764qx";
     };
     meta.homepage = "https://github.com/guns/vim-sexp/";
   };
@@ -7375,12 +7711,12 @@ let
 
   vim-signify = buildVimPluginFrom2Nix {
     pname = "vim-signify";
-    version = "2021-01-28";
+    version = "2021-03-07";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-signify";
-      rev = "b2a0450e23c63b75bbeabf4f0c28f9b4b2480689";
-      sha256 = "0fj9dwvkpg69v6ps56hrm0k2y4f9rvnj7hwic6ysxfx96wngfzcm";
+      rev = "2542b6459085f3d1e361e8b5bf406dec6448487e";
+      sha256 = "1m7m1fwn4bpbqfji7fvvgx00fxz1hy5nvfajbpj4vpgaxzqwsf8k";
     };
     meta.homepage = "https://github.com/mhinz/vim-signify/";
   };
@@ -7399,24 +7735,24 @@ let
 
   vim-sleuth = buildVimPluginFrom2Nix {
     pname = "vim-sleuth";
-    version = "2019-11-16";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-sleuth";
-      rev = "ea3f065f23cd0592062b8226c8fef08b6af3b459";
-      sha256 = "17w4m6zg1izcs75isy1jdzycgdr1ml1f5wqf1bjq80qgy3f28znp";
+      rev = "38bd4010110614822cde523ebc5724963312ab63";
+      sha256 = "1qng5ndxsmkjgrdhlbdysr97b6pyz6faiqaayjkwpc69hnv2y79v";
     };
     meta.homepage = "https://github.com/tpope/vim-sleuth/";
   };
 
   vim-slime = buildVimPluginFrom2Nix {
     pname = "vim-slime";
-    version = "2021-01-09";
+    version = "2021-03-04";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "72171eaaf176d7eb3f73ecebf86ff3e5f4ba7dbd";
-      sha256 = "0rcy6p4g8784w2dbbq0b7y1z3anqjpvycns40d556vbf1y1pbc41";
+      rev = "a522fed677e50175f52efc5848cc35209af33216";
+      sha256 = "0k4b629jn6xlxyjxdl3cgm06v9dmx967rqnslv5m82c9kscwpyh4";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -7447,12 +7783,12 @@ let
 
   vim-smt2 = buildVimPluginFrom2Nix {
     pname = "vim-smt2";
-    version = "2020-12-14";
+    version = "2021-02-16";
     src = fetchFromGitHub {
       owner = "bohlender";
       repo = "vim-smt2";
-      rev = "aea240223698b4bb424d29805fe6750bb30872cb";
-      sha256 = "15yxd4zxs738h51g10hx8xcki7r2hkb83prydk6g7sznsy3k70ia";
+      rev = "196d05f7152fb95c4613476368ebae9dd842d470";
+      sha256 = "0lk9clnvrkjbxgszg52zdl28d313vk2fiyh86aa6xx5pr0nr9iw3";
     };
     meta.homepage = "https://github.com/bohlender/vim-smt2/";
   };
@@ -7483,12 +7819,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2021-02-09";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "8426857c1b8d1c00bbe0faa6dfff99acb1521042";
-      sha256 = "16lvwd22813k38dbkfx4w46gmvbkfla4a0zyklpz7qa658phfprw";
+      rev = "4600da87a064bf63b37c7135be154b34c40dec20";
+      sha256 = "0vm59wkzxwmpksccv8j9ry6mm0byl75hzb73yn57zdm7s7kv2398";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -7507,24 +7843,24 @@ let
 
   vim-sort-motion = buildVimPluginFrom2Nix {
     pname = "vim-sort-motion";
-    version = "2018-07-15";
+    version = "2021-03-07";
     src = fetchFromGitHub {
       owner = "christoomey";
       repo = "vim-sort-motion";
-      rev = "49dfcabeee2bf3a85a6cc0774b35f687b6c9d0e5";
-      sha256 = "02v12iqy3gjhvh5aza6b6b3pfv2qkyyw83bxqjgbjj002f71ydkb";
+      rev = "c8782be8f7da414c6442b3ba4b6abb0345d392d9";
+      sha256 = "1vq2jrn75g3gd8vfgbnkn0w2qc4gbnrn2lg0wmzsvvxdvj8m9lii";
     };
     meta.homepage = "https://github.com/christoomey/vim-sort-motion/";
   };
 
   vim-sourcetrail = buildVimPluginFrom2Nix {
     pname = "vim-sourcetrail";
-    version = "2020-12-21";
+    version = "2021-02-16";
     src = fetchFromGitHub {
       owner = "CoatiSoftware";
       repo = "vim-sourcetrail";
-      rev = "b603ee7cf5c751918efc40014b9cfb40bf19ec32";
-      sha256 = "1yssa2yll5q61mffwxiq8swpzq80xxypyzr7svn8acwrakn0dx5r";
+      rev = "c9c621a7ab81c52a661457ccf33a64fd7c56fd9d";
+      sha256 = "192f69yz1hh2k0b2kcvfvv1jirjcvnbxvjkagmlkkqcg8w32nmlg";
     };
     meta.homepage = "https://github.com/CoatiSoftware/vim-sourcetrail/";
   };
@@ -7555,16 +7891,28 @@ let
 
   vim-startify = buildVimPluginFrom2Nix {
     pname = "vim-startify";
-    version = "2020-10-07";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-startify";
-      rev = "f2fc11844b234479d37bef37faa7ceb2aade788b";
-      sha256 = "18n16hpkqadq18gpgppbr4s516jpc8qwd357vb2c7069q79kfx39";
+      rev = "5ee8914b26e9f0b2d8ec01b3cef8c46e7a3954b5";
+      sha256 = "0zg100sjbn7952ayqligpkfqvrh1qwr2q6pjqs5cnsyl5xs411v2";
     };
     meta.homepage = "https://github.com/mhinz/vim-startify/";
   };
 
+  vim-startuptime = buildVimPluginFrom2Nix {
+    pname = "vim-startuptime";
+    version = "2021-03-22";
+    src = fetchFromGitHub {
+      owner = "dstein64";
+      repo = "vim-startuptime";
+      rev = "cee157ee4f73ddacfe1a70bb833b96f7a47a10c2";
+      sha256 = "1y049vbjhsg80am0hxyrcq0d0p7qfyvb1z38nc7yd7bcgwsqc5ac";
+    };
+    meta.homepage = "https://github.com/dstein64/vim-startuptime/";
+  };
+
   vim-stylish-haskell = buildVimPluginFrom2Nix {
     pname = "vim-stylish-haskell";
     version = "2019-11-28";
@@ -7615,12 +7963,12 @@ let
 
   vim-swap = buildVimPluginFrom2Nix {
     pname = "vim-swap";
-    version = "2020-11-16";
+    version = "2021-03-18";
     src = fetchFromGitHub {
       owner = "machakann";
       repo = "vim-swap";
-      rev = "699b7492c965a3dd96128d16b6b68a15091a931a";
-      sha256 = "0vw4d1375xhp1fbv88fp96ry0hzyqkbfn4dccrlfl4sanvkh0r6y";
+      rev = "f363ea636f4e18b4a3382ff352d3cf2e2ac5840e";
+      sha256 = "1pa5crmamama4v3yzcjfbizvpx03wb67zbjx1mn5rz6dcar903f6";
     };
     meta.homepage = "https://github.com/machakann/vim-swap/";
   };
@@ -7675,12 +8023,12 @@ let
 
   vim-terraform = buildVimPluginFrom2Nix {
     pname = "vim-terraform";
-    version = "2020-12-10";
+    version = "2021-03-07";
     src = fetchFromGitHub {
       owner = "hashivim";
       repo = "vim-terraform";
-      rev = "aa7877acb5dd81bed70c1188667b76cfde5b67bf";
-      sha256 = "0ibks0ykybiardppad9psjh2qmh29s9mbjf2d4jg8hbx59kvj32g";
+      rev = "e62cac4d3186209a510f51becd768ee414b2be76";
+      sha256 = "1c93kvlrgzp5fw5rgv053sin0f2f2chydxbvrkprpz71qmxqmq05";
     };
     meta.homepage = "https://github.com/hashivim/vim-terraform/";
   };
@@ -7700,12 +8048,12 @@ let
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2021-01-28";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "77d0b89fe5648d0881e8506d1949a9412201772b";
-      sha256 = "14ny5gap1bij5fdwnxgwjpmjnw0xpydnjvvsf6525hbipxp258fr";
+      rev = "206eb5492b4afa03c31cea529aa917b4a7085d10";
+      sha256 = "084yaqw0zw1bc4y4pk1vdb58vza7dn31phjr53dvwdj0kyl7j088";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -7820,12 +8168,12 @@ let
 
   vim-tmux-focus-events = buildVimPluginFrom2Nix {
     pname = "vim-tmux-focus-events";
-    version = "2020-10-05";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "tmux-plugins";
       repo = "vim-tmux-focus-events";
-      rev = "a568192ca0de4ca0bd7b3cd0249aad491625c941";
-      sha256 = "130l73v18md95djkc4s9d0fr018f8f183sjcgy7dgldwdaxlqdi1";
+      rev = "26237f9284c3853084fbf9e8303efb8fb62e0aa9";
+      sha256 = "0pmkjwpad63gdrp0qykkcsjdavb5kxwqvlcip0ykdm6ivvzi9fy5";
     };
     meta.homepage = "https://github.com/tmux-plugins/vim-tmux-focus-events/";
   };
@@ -7866,6 +8214,18 @@ let
     meta.homepage = "https://github.com/cespare/vim-toml/";
   };
 
+  vim-tpipeline = buildVimPluginFrom2Nix {
+    pname = "vim-tpipeline";
+    version = "2021-03-24";
+    src = fetchFromGitHub {
+      owner = "vimpostor";
+      repo = "vim-tpipeline";
+      rev = "b36abe2613191912e12b9562b209f157a8b927de";
+      sha256 = "1ly3iy1c05ry7yfsph0rribiagcyw07daj2dbfj0la3pbfmvip24";
+    };
+    meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
+  };
+
   vim-trailing-whitespace = buildVimPluginFrom2Nix {
     pname = "vim-trailing-whitespace";
     version = "2020-11-18";
@@ -7904,12 +8264,12 @@ let
 
   vim-twiggy = buildVimPluginFrom2Nix {
     pname = "vim-twiggy";
-    version = "2020-11-14";
+    version = "2021-03-19";
     src = fetchFromGitHub {
       owner = "sodapopcan";
       repo = "vim-twiggy";
-      rev = "305fa5ab43514b76b15a57596bc514c072b9cdda";
-      sha256 = "1hn42fm9a2dvxwml17j5jvd8758s71dlipspn5vi9l545cg94jjf";
+      rev = "cf8aa913329991bfeaa1cabab4bbd8889b0f0790";
+      sha256 = "0j0h95xhb5c59qyx8gc1yrcnsjxffbnycya6wnl7axd71iawwgh8";
     };
     meta.homepage = "https://github.com/sodapopcan/vim-twiggy/";
   };
@@ -7940,12 +8300,12 @@ let
 
   vim-vinegar = buildVimPluginFrom2Nix {
     pname = "vim-vinegar";
-    version = "2021-01-25";
+    version = "2021-03-16";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-vinegar";
-      rev = "5f48edf4dcc130ae4a658541c0d6f72a558bc70d";
-      sha256 = "195l6ly7ry8721rlkcp9103czvfcmqifbgbibdqdi3pjmaafrb9l";
+      rev = "b245f3ab4580eba27616a5ce06a56d5f791e67bd";
+      sha256 = "0lvqfa5drjzk3b877aldnjc9m4jnwlpxlvfvy8s81az92r69f13m";
     };
     meta.homepage = "https://github.com/tpope/vim-vinegar/";
   };
@@ -7964,12 +8324,12 @@ let
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2021-02-12";
+    version = "2021-03-21";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "88f934f572efdbc73c7b4b23a9b96f710524a94d";
-      sha256 = "0pk0vqns7269gi9jd8bdcg1qxlgdm55w9mf3nsrzc9z3d3j3vpw0";
+      rev = "08e37d47406d7f57e5907af4dc6bd35cff2b04b3";
+      sha256 = "157gvlpb0i3jn9gjcjgz02y843jh03pqnwfkv2bf9qh7bknrnxr5";
     };
     meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
@@ -7988,12 +8348,12 @@ let
 
   vim-vsnip = buildVimPluginFrom2Nix {
     pname = "vim-vsnip";
-    version = "2021-02-11";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip";
-      rev = "d840e1af9e680b384e8a28e62b46ad5148907fdd";
-      sha256 = "0d6gmw38829ln6mvn5j3gyy6by3ks5g62qiyzapz3vw67zyblyjz";
+      rev = "b05641ca8c7ebd396017121219047c480182a743";
+      sha256 = "0184d5498iwi0kqf0gbd5zdqckvmqwaf7bs1dvj8rphp9xzsl72x";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
   };
@@ -8046,14 +8406,26 @@ let
     meta.homepage = "https://github.com/osyo-manga/vim-watchdogs/";
   };
 
+  vim-wayland-clipboard = buildVimPluginFrom2Nix {
+    pname = "vim-wayland-clipboard";
+    version = "2021-03-15";
+    src = fetchFromGitHub {
+      owner = "jasonccox";
+      repo = "vim-wayland-clipboard";
+      rev = "1f7f05039c572fde082043915953a88b77c0ddb0";
+      sha256 = "0ihyfdvgiclmcric66nd54ha7ikf2c1pl1slbn4y6mkbxla02yv9";
+    };
+    meta.homepage = "https://github.com/jasonccox/vim-wayland-clipboard/";
+  };
+
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2021-02-09";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "68bd1775277ad5677ebf5cdc774ca3ba4755d457";
-      sha256 = "1pg179iz0xvd6r7xks7qrn1c7vh7zmp39s9axhdgp7jisqbhaaqx";
+      rev = "fdadbdcf5eda4b1ab381f3a36562005d161a6c4a";
+      sha256 = "1lqqadf6qr4i7sfkjmra9b4rb6wa3sh93dp7lr5jdf365i4b0jfb";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -8228,14 +8600,14 @@ let
 
   vimsence = buildVimPluginFrom2Nix {
     pname = "vimsence";
-    version = "2021-01-01";
+    version = "2021-03-17";
     src = fetchFromGitHub {
-      owner = "hugolgst";
+      owner = "vimsence";
       repo = "vimsence";
-      rev = "d135a75530d2ad4d034a5a2515136f043ffcecb2";
-      sha256 = "0v0qbqms513c4fcwa69d175ylkzb9n5i93gz1pqlcgnfmzdsfn22";
+      rev = "ad036250a116472218430aed1817e5b6c204d0b8";
+      sha256 = "0yn3w193h9h1fyaniwdj4y7b744kwj11prxcq8iyg897v8jj25bk";
     };
-    meta.homepage = "https://github.com/hugolgst/vimsence/";
+    meta.homepage = "https://github.com/vimsence/vimsence/";
   };
 
   vimshell-vim = buildVimPluginFrom2Nix {
@@ -8252,12 +8624,12 @@ let
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2021-02-10";
+    version = "2021-03-30";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "e99ac0d65867f4d97e7b891ac21cd341de1ff53f";
-      sha256 = "1jxl33svlymcwc3dsalabpy7px91rgfpalpb2bhxkqd4vgxwcjql";
+      rev = "caeb6610ed9f209490fbfacacc99e720847e6130";
+      sha256 = "014xvr14kxk0js4qwdzv0ljzrz6dji9qrkjyjpr1qfx6r8kz2j1z";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -8265,26 +8637,26 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2021-02-11";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "1319bca15f1e25cf8f0ca64818719c860d2d83ac";
-      sha256 = "043x5x4pxhni2isjxh6x4klldyanhpks3pljc246ybiz9q372bsi";
+      rev = "b31d4e3ed3942c98fcb928ca65bf9e9427608439";
+      sha256 = "0vl0a71in04pi3v9h61piny6qrd91z8anmzv724dznqkc4ydp9hx";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
 
   vimux = buildVimPluginFrom2Nix {
     pname = "vimux";
-    version = "2017-10-24";
+    version = "2021-03-18";
     src = fetchFromGitHub {
-      owner = "ostera";
+      owner = "preservim";
       repo = "vimux";
-      rev = "37f41195e6369ac602a08ec61364906600b771f1";
-      sha256 = "0k7ymak2ag67lb4sf80y4k35zj38rj0jf61bf50i6h1bgw987pra";
+      rev = "708ce200d56d6fc326a8c1acd7f0f4f7c6a9e552";
+      sha256 = "0wkxq1a3phmxskmqcn3067s56k6n9v8k9qqy0mwhxhp2d53asxpf";
     };
-    meta.homepage = "https://github.com/ostera/vimux/";
+    meta.homepage = "https://github.com/preservim/vimux/";
   };
 
   vimwiki = buildVimPluginFrom2Nix {
@@ -8313,12 +8685,12 @@ let
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2021-02-12";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "05d1fb2e333caa2bf2717d4e8ff5ae8c2a1f971d";
-      sha256 = "0zyq4fgi6i4gdn25ykpxsy7bpyzysny5qkg40r3493yqnp3rvnfw";
+      rev = "a2236deb0a40d745f38fac4523ed6a0c86639863";
+      sha256 = "14gxwqykm4cql80la3x1x7sxcfmdvpm05r9brxw3xfn9bsqy3qsk";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
@@ -8433,12 +8805,12 @@ let
 
   yats-vim = buildVimPluginFrom2Nix {
     pname = "yats-vim";
-    version = "2021-01-21";
+    version = "2021-02-15";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "6104b30b32732e367266f06ecf6e817df32ac1b9";
-      sha256 = "0r8asbc387mmdiignr862gz4xd590c6rhp3ff78v7z7rn94dnamd";
+      rev = "11112853180a933574f431cf78cd5a462ee3f473";
+      sha256 = "0bnq02dbsqwsizhlldb2pj92gjybr5aaa7a5m786xvb7ljvd82vi";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
@@ -8446,12 +8818,12 @@ let
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2021-02-07";
+    version = "2021-03-22";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "dbf67638cb7084883c7463b0d6226be9d9159b9a";
-      sha256 = "1qxwgjfhzz7ymkbbnjm3xrp368rmcphdaj4lxrkkbp9d2pn9g8s7";
+      rev = "ed423e8a1d2a5842a126d33b824ad3b65f85f3ba";
+      sha256 = "19c238sdc6i3ky374v52g13csnbmdcm9d97iji6fmklmzsyrq4cr";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -8495,24 +8867,24 @@ let
 
   zephyr-nvim = buildVimPluginFrom2Nix {
     pname = "zephyr-nvim";
-    version = "2021-02-08";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "zephyr-nvim";
-      rev = "e3646fc3124e33da4909e30caaad1167523e0c53";
-      sha256 = "0a200497js325343prx638rkzg6544lxrrr3ij5g0i6dvazzwg21";
+      rev = "782b1986adafe4b17ea8a0f9aca375f37029bd2b";
+      sha256 = "0chrbn917yzvc5rcz6ajzp36598c8lwc1wpdp3qwl34k2vp4r1ia";
     };
     meta.homepage = "https://github.com/glepnir/zephyr-nvim/";
   };
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig-vim";
-    version = "2021-01-19";
+    version = "2021-03-16";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "17170fd1c31f00132a91fb1598d0f3df5927e28d";
-      sha256 = "0k8s5via1frpgdb94kgsk29g7h6fjq3cazyfa8zww7vra418acsh";
+      rev = "33b62b688ef4f0b3810c4d3d1b3901f572488691";
+      sha256 = "0dsc1h8ih5jgfni5szm8dby368naxh3igndm80yrciy2glcj1ayn";
     };
     meta.homepage = "https://github.com/ziglang/zig.vim/";
   };
diff --git a/nixpkgs/pkgs/misc/vim-plugins/overrides.nix b/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
index 9b1aa6cd0510..d52b248697ab 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
@@ -7,9 +7,7 @@
 , ruby
 , which
 , fetchFromGitHub
-, fetchgit
 , fetchurl
-, fetchzip
 , fetchpatch
 , llvmPackages
 , rustPlatform
@@ -93,9 +91,11 @@ self: super: {
   # plugin, since part of the fzf vim plugin is included in the main fzf
   # program.
   fzfWrapper = buildVimPluginFrom2Nix {
+    inherit (fzf) src version;
     pname = "fzf";
-    version = fzf.version;
-    src = fzf.src;
+    postInstall = ''
+      ln -s ${fzf}/bin/fzf $target/bin/fzf
+    '';
   };
 
   skim = buildVimPluginFrom2Nix {
@@ -340,6 +340,10 @@ self: super: {
     dependencies = [ self.fzfWrapper ];
   });
 
+  onehalf = super.onehalf.overrideAttrs (old: {
+    configurePhase = "cd vim";
+  });
+
   skim-vim = super.skim-vim.overrideAttrs (old: {
     dependencies = [ self.skim ];
   });
@@ -658,7 +662,7 @@ self: super: {
   });
 
   lf-vim = super.lf-vim.overrideAttrs (old: {
-    dependencies = with super; [ vim-bbye ];
+    dependencies = with super; [ vim-floaterm ];
   });
 
   vim-stylish-haskell = super.vim-stylish-haskell.overrideAttrs (old: {
@@ -731,7 +735,7 @@ self: super: {
             libiconv
           ];
 
-          cargoSha256 = "mq5q+cIWXDMeoZfumX1benulrP/AWKZnd8aI0OzY55c=";
+          cargoSha256 = "25UkYKhlGmlDg4fz1jZHjpQn5s4k5FKlFK0MU8YM5SE=";
         };
       in
       ''
@@ -790,6 +794,8 @@ self: super: {
 } // (
   let
     nodePackageNames = [
+      "coc-clangd"
+      "coc-cmake"
       "coc-css"
       "coc-diagnostic"
       "coc-emmet"
@@ -807,6 +813,7 @@ self: super: {
       "coc-metals"
       "coc-pairs"
       "coc-prettier"
+      "coc-pyright"
       "coc-python"
       "coc-r-lsp"
       "coc-rls"
@@ -816,6 +823,7 @@ self: super: {
       "coc-solargraph"
       "coc-stylelint"
       "coc-tabnine"
+      "coc-texlab"
       "coc-tslint"
       "coc-tslint-plugin"
       "coc-tsserver"
diff --git a/nixpkgs/pkgs/misc/vim-plugins/update.py b/nixpkgs/pkgs/misc/vim-plugins/update.py
index b9bab293a797..1180b4572d22 100755
--- a/nixpkgs/pkgs/misc/vim-plugins/update.py
+++ b/nixpkgs/pkgs/misc/vim-plugins/update.py
@@ -6,180 +6,18 @@
 # type-check:
 # $ nix run nixpkgs.python3Packages.mypy -c mypy update.py
 # linted:
-# $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265 update.py
+# $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265,E402 update.py
 
-import argparse
-import functools
-import http
-import json
+import inspect
 import os
-import subprocess
 import sys
-import time
-import traceback
-import urllib.error
-import urllib.parse
-import urllib.request
-import xml.etree.ElementTree as ET
-from datetime import datetime
-from functools import wraps
-from multiprocessing.dummy import Pool
+from typing import List, Tuple
 from pathlib import Path
-from typing import Dict, List, Optional, Tuple, Union, Any, Callable
-from urllib.parse import urljoin, urlparse
-from tempfile import NamedTemporaryFile
-
-import git
-
-ATOM_ENTRY = "{http://www.w3.org/2005/Atom}entry"  # " vim gets confused here
-ATOM_LINK = "{http://www.w3.org/2005/Atom}link"  # "
-ATOM_UPDATED = "{http://www.w3.org/2005/Atom}updated"  # "
-
-ROOT = Path(__file__).parent
-DEFAULT_IN = ROOT.joinpath("vim-plugin-names")
-DEFAULT_OUT = ROOT.joinpath("generated.nix")
-DEPRECATED = ROOT.joinpath("deprecated.json")
-
-def retry(ExceptionToCheck: Any, tries: int = 4, delay: float = 3, backoff: float = 2):
-    """Retry calling the decorated function using an exponential backoff.
-    http://www.saltycrane.com/blog/2009/11/trying-out-retry-decorator-python/
-    original from: http://wiki.python.org/moin/PythonDecoratorLibrary#Retry
-    (BSD licensed)
-    :param ExceptionToCheck: the exception on which to retry
-    :param tries: number of times to try (not retry) before giving up
-    :param delay: initial delay between retries in seconds
-    :param backoff: backoff multiplier e.g. value of 2 will double the delay
-        each retry
-    """
-
-    def deco_retry(f: Callable) -> Callable:
-        @wraps(f)
-        def f_retry(*args: Any, **kwargs: Any) -> Any:
-            mtries, mdelay = tries, delay
-            while mtries > 1:
-                try:
-                    return f(*args, **kwargs)
-                except ExceptionToCheck as e:
-                    print(f"{str(e)}, Retrying in {mdelay} seconds...")
-                    time.sleep(mdelay)
-                    mtries -= 1
-                    mdelay *= backoff
-            return f(*args, **kwargs)
-
-        return f_retry  # true decorator
-
-    return deco_retry
-
-def make_request(url: str) -> urllib.request.Request:
-    token = os.getenv("GITHUB_API_TOKEN")
-    headers = {}
-    if token is not None:
-       headers["Authorization"] = f"token {token}"
-    return urllib.request.Request(url, headers=headers)
-
-class Repo:
-    def __init__(
-        self, owner: str, name: str, branch: str, alias: Optional[str]
-    ) -> None:
-        self.owner = owner
-        self.name = name
-        self.branch = branch
-        self.alias = alias
-        self.redirect: Dict[str, str] = {}
-
-    def url(self, path: str) -> str:
-        return urljoin(f"https://github.com/{self.owner}/{self.name}/", path)
-
-    def __repr__(self) -> str:
-        return f"Repo({self.owner}, {self.name})"
-
-    @retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
-    def has_submodules(self) -> bool:
-        try:
-            req = make_request(self.url(f"blob/{self.branch}/.gitmodules"))
-            urllib.request.urlopen(req, timeout=10).close()
-        except urllib.error.HTTPError as e:
-            if e.code == 404:
-                return False
-            else:
-                raise
-        return True
-
-    @retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
-    def latest_commit(self) -> Tuple[str, datetime]:
-        commit_url = self.url(f"commits/{self.branch}.atom")
-        commit_req = make_request(commit_url)
-        with urllib.request.urlopen(commit_req, timeout=10) as req:
-            self.check_for_redirect(commit_url, req)
-            xml = req.read()
-            root = ET.fromstring(xml)
-            latest_entry = root.find(ATOM_ENTRY)
-            assert latest_entry is not None, f"No commits found in repository {self}"
-            commit_link = latest_entry.find(ATOM_LINK)
-            assert commit_link is not None, f"No link tag found feed entry {xml}"
-            url = urlparse(commit_link.get("href"))
-            updated_tag = latest_entry.find(ATOM_UPDATED)
-            assert (
-                updated_tag is not None and updated_tag.text is not None
-            ), f"No updated tag found feed entry {xml}"
-            updated = datetime.strptime(updated_tag.text, "%Y-%m-%dT%H:%M:%SZ")
-            return Path(str(url.path)).name, updated
-
-    def check_for_redirect(self, url: str, req: http.client.HTTPResponse):
-        response_url = req.geturl()
-        if url != response_url:
-            new_owner, new_name = (
-                urllib.parse.urlsplit(response_url).path.strip("/").split("/")[:2]
-            )
-            end_line = "\n" if self.alias is None else f" as {self.alias}\n"
-            plugin_line = "{owner}/{name}" + end_line
-
-            old_plugin = plugin_line.format(owner=self.owner, name=self.name)
-            new_plugin = plugin_line.format(owner=new_owner, name=new_name)
-            self.redirect[old_plugin] = new_plugin
-
-    def prefetch_git(self, ref: str) -> str:
-        data = subprocess.check_output(
-            ["nix-prefetch-git", "--fetch-submodules", self.url(""), ref]
-        )
-        return json.loads(data)["sha256"]
-
-    def prefetch_github(self, ref: str) -> str:
-        data = subprocess.check_output(
-            ["nix-prefetch-url", "--unpack", self.url(f"archive/{ref}.tar.gz")]
-        )
-        return data.strip().decode("utf-8")
-
-
-class Plugin:
-    def __init__(
-        self,
-        name: str,
-        commit: str,
-        has_submodules: bool,
-        sha256: str,
-        date: Optional[datetime] = None,
-    ) -> None:
-        self.name = name
-        self.commit = commit
-        self.has_submodules = has_submodules
-        self.sha256 = sha256
-        self.date = date
-
-    @property
-    def normalized_name(self) -> str:
-        return self.name.replace(".", "-")
-
-    @property
-    def version(self) -> str:
-        assert self.date is not None
-        return self.date.strftime("%Y-%m-%d")
-
-    def as_json(self) -> Dict[str, str]:
-        copy = self.__dict__.copy()
-        del copy["date"]
-        return copy
 
+# Import plugin update library from maintainers/scripts/pluginupdate.py
+ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))))
+sys.path.insert(0, os.path.join(ROOT.parent.parent.parent, "maintainers", "scripts"))
+import pluginupdate
 
 GET_PLUGINS = f"""(with import <localpkgs> {{}};
 let
@@ -197,204 +35,16 @@ let
   checksums = lib.mapAttrs getChecksum generated;
 in lib.filterAttrs (n: v: v != null) checksums)"""
 
-
-class CleanEnvironment(object):
-    def __enter__(self) -> None:
-        self.old_environ = os.environ.copy()
-        local_pkgs = str(ROOT.joinpath("../../.."))
-        os.environ["NIX_PATH"] = f"localpkgs={local_pkgs}"
-        self.empty_config = NamedTemporaryFile()
-        self.empty_config.write(b"{}")
-        self.empty_config.flush()
-        os.environ["NIXPKGS_CONFIG"] = self.empty_config.name
-
-    def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None:
-        os.environ.update(self.old_environ)
-        self.empty_config.close()
-
-
-def get_current_plugins() -> List[Plugin]:
-    with CleanEnvironment():
-        out = subprocess.check_output(["nix", "eval", "--json", GET_PLUGINS])
-    data = json.loads(out)
-    plugins = []
-    for name, attr in data.items():
-        p = Plugin(name, attr["rev"], attr["submodules"], attr["sha256"])
-        plugins.append(p)
-    return plugins
-
-
-def prefetch_plugin(
-    user: str,
-    repo_name: str,
-    branch: str,
-    alias: Optional[str],
-    cache: "Optional[Cache]" = None,
-) -> Tuple[Plugin, Dict[str, str]]:
-    repo = Repo(user, repo_name, branch, alias)
-    commit, date = repo.latest_commit()
-    has_submodules = repo.has_submodules()
-    cached_plugin = cache[commit] if cache else None
-    if cached_plugin is not None:
-        cached_plugin.name = alias or repo_name
-        cached_plugin.date = date
-        return cached_plugin, repo.redirect
-
-    print(f"prefetch {user}/{repo_name}")
-    if has_submodules:
-        sha256 = repo.prefetch_git(commit)
-    else:
-        sha256 = repo.prefetch_github(commit)
-
-    return (
-        Plugin(alias or repo_name, commit, has_submodules, sha256, date=date),
-        repo.redirect,
-    )
-
-
-def fetch_plugin_from_pluginline(plugin_line: str) -> Plugin:
-    plugin, _ = prefetch_plugin(*parse_plugin_line(plugin_line))
-    return plugin
-
-
-def print_download_error(plugin: str, ex: Exception):
-    print(f"{plugin}: {ex}", file=sys.stderr)
-    ex_traceback = ex.__traceback__
-    tb_lines = [
-        line.rstrip("\n")
-        for line in traceback.format_exception(ex.__class__, ex, ex_traceback)
-    ]
-    print("\n".join(tb_lines))
-
-
-def check_results(
-    results: List[Tuple[str, str, Union[Exception, Plugin], Dict[str, str]]]
-) -> Tuple[List[Tuple[str, str, Plugin]], Dict[str, str]]:
-    failures: List[Tuple[str, Exception]] = []
-    plugins = []
-    redirects: Dict[str, str] = {}
-    for (owner, name, result, redirect) in results:
-        if isinstance(result, Exception):
-            failures.append((name, result))
-        else:
-            plugins.append((owner, name, result))
-            redirects.update(redirect)
-
-    print(f"{len(results) - len(failures)} plugins were checked", end="")
-    if len(failures) == 0:
-        print()
-        return plugins, redirects
-    else:
-        print(f", {len(failures)} plugin(s) could not be downloaded:\n")
-
-        for (plugin, exception) in failures:
-            print_download_error(plugin, exception)
-
-        sys.exit(1)
-
-
-def parse_plugin_line(line: str) -> Tuple[str, str, str, Optional[str]]:
-    branch = "master"
-    alias = None
-    name, repo = line.split("/")
-    if " as " in repo:
-        repo, alias = repo.split(" as ")
-        alias = alias.strip()
-    if "@" in repo:
-        repo, branch = repo.split("@")
-
-    return (name.strip(), repo.strip(), branch.strip(), alias)
-
-
-def load_plugin_spec(plugin_file: str) -> List[Tuple[str, str, str, Optional[str]]]:
-    plugins = []
-    with open(plugin_file) as f:
-        for line in f:
-            plugin = parse_plugin_line(line)
-            if not plugin[0]:
-                msg = f"Invalid repository {line}, must be in the format owner/repo[ as alias]"
-                print(msg, file=sys.stderr)
-                sys.exit(1)
-            plugins.append(plugin)
-    return plugins
-
-
-def get_cache_path() -> Optional[Path]:
-    xdg_cache = os.environ.get("XDG_CACHE_HOME", None)
-    if xdg_cache is None:
-        home = os.environ.get("HOME", None)
-        if home is None:
-            return None
-        xdg_cache = str(Path(home, ".cache"))
-
-    return Path(xdg_cache, "vim-plugin-cache.json")
-
-
-class Cache:
-    def __init__(self, initial_plugins: List[Plugin]) -> None:
-        self.cache_file = get_cache_path()
-
-        downloads = {}
-        for plugin in initial_plugins:
-            downloads[plugin.commit] = plugin
-        downloads.update(self.load())
-        self.downloads = downloads
-
-    def load(self) -> Dict[str, Plugin]:
-        if self.cache_file is None or not self.cache_file.exists():
-            return {}
-
-        downloads: Dict[str, Plugin] = {}
-        with open(self.cache_file) as f:
-            data = json.load(f)
-            for attr in data.values():
-                p = Plugin(
-                    attr["name"], attr["commit"], attr["has_submodules"], attr["sha256"]
-                )
-                downloads[attr["commit"]] = p
-        return downloads
-
-    def store(self) -> None:
-        if self.cache_file is None:
-            return
-
-        os.makedirs(self.cache_file.parent, exist_ok=True)
-        with open(self.cache_file, "w+") as f:
-            data = {}
-            for name, attr in self.downloads.items():
-                data[name] = attr.as_json()
-            json.dump(data, f, indent=4, sort_keys=True)
-
-    def __getitem__(self, key: str) -> Optional[Plugin]:
-        return self.downloads.get(key, None)
-
-    def __setitem__(self, key: str, value: Plugin) -> None:
-        self.downloads[key] = value
-
-
-def prefetch(
-    args: Tuple[str, str, str, Optional[str]], cache: Cache
-) -> Tuple[str, str, Union[Exception, Plugin], dict]:
-    assert len(args) == 4
-    owner, repo, branch, alias = args
-    try:
-        plugin, redirect = prefetch_plugin(owner, repo, branch, alias, cache)
-        cache[plugin.commit] = plugin
-        return (owner, repo, plugin, redirect)
-    except Exception as e:
-        return (owner, repo, e, {})
-
-
-header = (
+HEADER = (
     "# This file has been generated by ./pkgs/misc/vim-plugins/update.py. Do not edit!"
 )
 
 
-def generate_nix(plugins: List[Tuple[str, str, Plugin]], outfile: str):
+def generate_nix(plugins: List[Tuple[str, str, pluginupdate.Plugin]], outfile: str):
     sorted_plugins = sorted(plugins, key=lambda v: v[2].name.lower())
 
     with open(outfile, "w+") as f:
-        f.write(header)
+        f.write(HEADER)
         f.write(
             """
 { lib, buildVimPluginFrom2Nix, fetchFromGitHub, overrides ? (self: super: {}) }:
@@ -432,136 +82,9 @@ in lib.fix' (lib.extends overrides packages)
     print(f"updated {outfile}")
 
 
-def rewrite_input(
-    input_file: Path, redirects: Dict[str, str] = None, append: Tuple = ()
-):
-    with open(input_file, "r") as f:
-        lines = f.readlines()
-
-    lines.extend(append)
-
-    if redirects:
-        lines = [redirects.get(line, line) for line in lines]
-
-        cur_date_iso = datetime.now().strftime("%Y-%m-%d")
-        with open(DEPRECATED, "r") as f:
-            deprecations = json.load(f)
-        for old, new in redirects.items():
-            old_plugin = fetch_plugin_from_pluginline(old)
-            new_plugin = fetch_plugin_from_pluginline(new)
-            if old_plugin.normalized_name != new_plugin.normalized_name:
-                deprecations[old_plugin.normalized_name] = {
-                    "new": new_plugin.normalized_name,
-                    "date": cur_date_iso,
-                }
-        with open(DEPRECATED, "w") as f:
-            json.dump(deprecations, f, indent=4, sort_keys=True)
-
-    lines = sorted(lines, key=str.casefold)
-
-    with open(input_file, "w") as f:
-        f.writelines(lines)
-
-
-def parse_args():
-    parser = argparse.ArgumentParser(
-        description=(
-            "Updates nix derivations for vim plugins"
-            f"By default from {DEFAULT_IN} to {DEFAULT_OUT}"
-        )
-    )
-    parser.add_argument(
-        "--add",
-        dest="add_plugins",
-        default=[],
-        action="append",
-        help="Plugin to add to vimPlugins from Github in the form owner/repo",
-    )
-    parser.add_argument(
-        "--input-names",
-        "-i",
-        dest="input_file",
-        default=DEFAULT_IN,
-        help="A list of plugins in the form owner/repo",
-    )
-    parser.add_argument(
-        "--out",
-        "-o",
-        dest="outfile",
-        default=DEFAULT_OUT,
-        help="Filename to save generated nix code",
-    )
-    parser.add_argument(
-        "--proc",
-        "-p",
-        dest="proc",
-        type=int,
-        default=30,
-        help="Number of concurrent processes to spawn.",
-    )
-    return parser.parse_args()
-
-
-def commit(repo: git.Repo, message: str, files: List[Path]) -> None:
-    files_staged = repo.index.add([str(f.resolve()) for f in files])
-
-    if files_staged:
-        print(f'committing to nixpkgs "{message}"')
-        repo.index.commit(message)
-    else:
-        print("no changes in working tree to commit")
-
-
-def get_update(input_file: str, outfile: str, proc: int):
-    cache: Cache = Cache(get_current_plugins())
-    _prefetch = functools.partial(prefetch, cache=cache)
-
-    def update() -> dict:
-        plugin_names = load_plugin_spec(input_file)
-
-        try:
-            pool = Pool(processes=proc)
-            results = pool.map(_prefetch, plugin_names)
-        finally:
-            cache.store()
-
-        plugins, redirects = check_results(results)
-
-        generate_nix(plugins, outfile)
-
-        return redirects
-
-    return update
-
-
 def main():
-    args = parse_args()
-    nixpkgs_repo = git.Repo(ROOT, search_parent_directories=True)
-    update = get_update(args.input_file, args.outfile, args.proc)
-
-    redirects = update()
-    rewrite_input(args.input_file, redirects)
-    commit(nixpkgs_repo, "vimPlugins: update", [args.outfile])
-
-    if redirects:
-        update()
-        commit(
-            nixpkgs_repo,
-            "vimPlugins: resolve github repository redirects",
-            [args.outfile, args.input_file, DEPRECATED],
-        )
-
-    for plugin_line in args.add_plugins:
-        rewrite_input(args.input_file, append=(plugin_line + "\n",))
-        update()
-        plugin = fetch_plugin_from_pluginline(plugin_line)
-        commit(
-            nixpkgs_repo,
-            "vimPlugins.{name}: init at {version}".format(
-                name=plugin.normalized_name, version=plugin.version
-            ),
-            [args.outfile, args.input_file],
-        )
+    editor = pluginupdate.Editor("vim", ROOT, GET_PLUGINS, generate_nix)
+    pluginupdate.update_plugins(editor)
 
 
 if __name__ == "__main__":
diff --git a/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names b/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
index 416dc7fc722d..0eb035485d31 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
@@ -1,8 +1,11 @@
 907th/vim-auto-save
 aca/completion-tabnine
+AckslD/nvim-whichkey-setup.lua@main
 ackyshake/Spacegray.vim@main
 airblade/vim-gitgutter
 airblade/vim-rooter
+akinsho/nvim-bufferline.lua
+akinsho/nvim-toggleterm.lua
 aklt/plantuml-syntax
 altercation/vim-colors-solarized
 alvan/vim-closetag
@@ -45,6 +48,7 @@ cespare/vim-toml
 Chiel92/vim-autoformat
 chikatoike/concealedyank.vim
 chikatoike/sourcemap.vim
+chr4/nginx.vim
 chrisbra/CheckAttach
 chrisbra/csv.vim
 chrisbra/NrrwRgn
@@ -93,6 +97,7 @@ dracula/vim as dracula-vim
 drewtempelmeyer/palenight.vim
 drmingdrmer/xptemplate
 dstein64/nvim-scrollview@main
+dstein64/vim-startuptime
 dylanaraps/wal.vim
 eagletmt/ghcmod-vim
 eagletmt/neco-ghc
@@ -100,10 +105,12 @@ easymotion/vim-easymotion
 editorconfig/editorconfig-vim
 edwinb/idris2-vim
 ehamberg/vim-cute-python
+eigenfoo/stan-vim
 eikenb/acp
 elixir-editors/vim-elixir
 elmcast/elm-vim
 elzr/vim-json
+embark-theme/vim@main as embark-vim
 embear/vim-localvimrc
 enomsg/vim-haskellConcealPlus
 enricobacis/vim-airline-clock
@@ -112,6 +119,7 @@ ervandew/supertab
 esneider/YUNOcommit.vim
 euclidianAce/BetterLua.vim
 euclio/vim-markdown-composer
+f-person/git-blame.nvim
 farmergreg/vim-lastplace
 fatih/vim-go
 fcpg/vim-osc52
@@ -134,6 +142,7 @@ GEverding/vim-hocon
 gfanto/fzf-lsp.nvim@main
 gibiansky/vim-textobj-haskell
 gioele/vim-autoswap
+glepnir/dashboard-nvim
 glepnir/galaxyline.nvim@main
 glepnir/lspsaga.nvim@main
 glepnir/oceanic-material
@@ -173,7 +182,6 @@ hrsh7th/vim-vsnip
 hrsh7th/vim-vsnip-integ
 hsanson/vim-android
 hsitz/VimOrganizer
-hugolgst/vimsence
 iamcco/coc-spell-checker
 ianks/vim-tsx
 idanarye/vim-merginal
@@ -194,6 +202,7 @@ jacoborus/tender.vim
 jakwings/vim-pony
 jamessan/vim-gnupg@main
 jaredgorski/SpaceCamp
+jasonccox/vim-wayland-clipboard
 jaxbot/semantic-highlight.vim
 JazzCore/ctrlp-cmatcher
 jceb/vim-hier
@@ -258,7 +267,9 @@ kbenzie/vim-spirv
 kchmck/vim-coffee-script
 KeitaNakamura/neodark.vim
 keith/investigate.vim
+keith/rspec.vim
 keith/swift.vim
+kevinhwang91/nvim-bqf@main
 kevinhwang91/nvim-hlslens@main
 kien/rainbow_parentheses.vim
 knubie/vim-kitty-navigator
@@ -286,6 +297,7 @@ lepture/vim-jinja
 lervag/vimtex
 lewis6991/gitsigns.nvim@main
 lfilho/cosco.vim
+lifepillar/vim-gruvbox8
 lifepillar/vim-mucomplete
 lighttiger2505/deoplete-vim-lsp
 lilydjwg/colorizer
@@ -294,6 +306,7 @@ liuchengxu/vim-which-key
 liuchengxu/vista.vim
 LnL7/vim-nix
 lotabout/skim.vim
+luan/vim-concourse
 LucHermitte/lh-brackets
 LucHermitte/lh-vim-lib
 ludovicchabant/vim-gutentags
@@ -337,10 +350,12 @@ maximbaz/lightline-ale
 MaxMEllon/vim-jsx-pretty
 mbbill/undotree
 mboughaba/i3config.vim
+mcchrish/nnn.vim
 megaannum/forms
 megaannum/self
 mengelbrecht/lightline-bufferline
 metakirby5/codi.vim
+metalelf0/jellybeans-nvim@main
 mfukar/robotframework-vim
 mfussenegger/nvim-dap
 mfussenegger/nvim-jdtls
@@ -369,6 +384,7 @@ nanotech/jellybeans.vim
 natebosch/vim-lsc
 nathanaelkane/vim-indent-guides
 nathangrigg/vim-beancount
+nathunsmitty/nvim-ale-diagnostic@main
 navicore/vissort.vim
 nbouscal/vim-stylish-haskell
 ncm2/float-preview.nvim
@@ -406,8 +422,10 @@ nishigori/increment-activator
 nixprime/cpsm
 NLKNguyen/papercolor-theme
 noc7c9/vim-iced-coffee-script
+norcalli/nvim-colorizer.lua
 norcalli/nvim-terminal.lua
-npxbr/glow.nvim
+norcalli/snippets.nvim
+npxbr/glow.nvim@main
 ntpeters/vim-better-whitespace
 numirias/semshi
 nvie/vim-flake8
@@ -426,6 +444,7 @@ nvim-treesitter/nvim-treesitter
 nvim-treesitter/nvim-treesitter-refactor
 nvim-treesitter/nvim-treesitter-textobjects
 nvim-treesitter/playground
+oberblastmeister/termwrapper.nvim
 ocaml/vim-ocaml
 octol/vim-cpp-enhanced-highlight
 ojroques/vim-oscyank@main
@@ -433,7 +452,6 @@ Olical/aniseed
 Olical/conjure
 onsails/lspkind-nvim
 OrangeT/vim-csharp
-ostera/vimux
 osyo-manga/shabadou.vim
 osyo-manga/vim-anzu
 osyo-manga/vim-over
@@ -447,6 +465,7 @@ pearofducks/ansible-vim
 peitalin/vim-jsx-typescript
 peterbjorgensen/sved
 peterhoeg/vim-qml
+phaazon/hop.nvim
 phanviet/vim-monokai-pro
 plasticboy/vim-markdown
 ponko2/deoplete-fish
@@ -459,6 +478,7 @@ prabirshrestha/vim-lsp
 preservim/nerdcommenter
 preservim/nerdtree
 preservim/tagbar
+preservim/vimux
 psliwka/vim-smoothie
 ptzz/lf.vim
 puremourning/vimspector
@@ -475,6 +495,7 @@ raghur/vim-ghost
 Raimondi/delimitMate
 rakr/vim-one
 rbgrouleff/bclose.vim
+rbong/vim-flog
 reedes/vim-pencil
 reedes/vim-wordy
 rhysd/committia.vim
@@ -503,6 +524,7 @@ rstacruz/vim-closer
 rust-lang/rust.vim
 ryanoasis/vim-devicons
 ryvnf/readline.vim
+sainnhe/sonokai
 sakhnik/nvim-gdb
 saltstack/salt-vim
 samoshkin/vim-mergetool
@@ -533,6 +555,7 @@ shumphrey/fugitive-gitlab.vim
 sickill/vim-pasta
 SidOfc/mkdx
 simnalamburt/vim-mundo
+simrat39/rust-tools.nvim
 SirVer/ultisnips
 sjl/gundo.vim
 sjl/splice.vim
@@ -550,6 +573,7 @@ svermeulen/vim-subversive
 t9md/vim-choosewin
 t9md/vim-smalls
 takac/vim-hardtime
+tami5/compe-conjure
 tami5/lispdocs.nvim
 tami5/sql.nvim
 tbodt/deoplete-tabnine
@@ -584,6 +608,7 @@ tommcdo/vim-lion
 tommcdo/vim-ninja-feet
 tomtom/tcomment_vim
 tomtom/tlib_vim
+tools-life/taskwiki
 tpope/vim-abolish
 tpope/vim-capslock
 tpope/vim-commentary
@@ -615,8 +640,10 @@ tpope/vim-tbone
 tpope/vim-unimpaired
 tpope/vim-vinegar
 travitch/hasksyn
+tremor-rs/tremor-vim@main
 triglav/vim-visual-increment
 troydm/zoomwintab.vim
+tversteeg/registers.nvim@main
 twerth/ir_black
 twinside/vim-haskellconceal
 Twinside/vim-hoogle
@@ -675,6 +702,8 @@ vim-utils/vim-husk
 Vimjas/vim-python-pep8-indent
 vimlab/split-term.vim
 vimoutliner/vimoutliner
+vimpostor/vim-tpipeline
+vimsence/vimsence
 vimwiki/vimwiki
 vito-c/jq.vim
 vmchale/ats-vim
@@ -694,6 +723,7 @@ whonore/Coqtail
 will133/vim-dirdiff
 wincent/command-t
 wincent/ferret
+windwp/nvim-autopairs
 wlangstroth/vim-racket
 wsdjeg/vim-fetch
 xavierd/clang_complete
@@ -701,6 +731,7 @@ xolox/vim-easytags
 xolox/vim-misc
 xuhdev/vim-latex-live-preview
 Xuyuanp/nerdtree-git-plugin
+yamatsum/nvim-nonicons@main
 ycm-core/YouCompleteMe
 Yggdroot/indentLine
 Yilin-Yang/vim-markbar
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/default.nix
index 8c32ac2f5d19..6d6ca873d280 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/default.nix
@@ -1,4 +1,4 @@
-{ config, lib, callPackage, vscode-utils, nodePackages,llvmPackages_8 }:
+{ config, lib, callPackage, vscode-utils, nodePackages, jdk, llvmPackages_8 }:
 
 let
   inherit (vscode-utils) buildVscodeMarketplaceExtension;
@@ -48,6 +48,30 @@ let
         };
       };
 
+      alygin.vscode-tlaplus = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-tlaplus";
+          publisher = "alygin";
+          version = "1.5.3";
+          sha256 = "1cy0qn8iyjrinscn9p5ckpsa2hyryapxfi7is6s2zk2mpligbb1d";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
+      antfu.icons-carbon = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "icons-carbon";
+          publisher = "antfu";
+          version = "0.2.2";
+          sha256 = "0mfap16la09mn0jhvy8s3dainrmjz64vra7d0d4fbcpgg420kv3f";
+        };
+        meta = with lib; {
+          license = licenses.mit;
+        };
+      };
+
       ms-python.vscode-pylance = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-pylance";
@@ -63,6 +87,18 @@ let
         };
       };
 
+      baccata.scaladex-search = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "scaladex-search";
+          publisher = "baccata";
+          version = "0.0.1";
+          sha256 = "1y8p4rr8qq5ng52g4pbx8ayq04gi2869wrx68k69rl7ga7bzcyp9";
+        };
+        meta = {
+          license = lib.licenses.asl20;
+        };
+      };
+
       bbenoist.Nix = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "Nix";
@@ -99,6 +135,18 @@ let
         };
       };
 
+      codezombiech.gitignore = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "gitignore";
+          publisher = "codezombiech";
+          version = "0.6.0";
+          sha256 = "0gnc0691pwkd9s8ldqabmpfvj0236rw7bxvkf0bvmww32kv1ia0b";
+        };
+        meta = with lib; {
+          license = licenses.mit;
+        };
+      };
+
       CoenraadS.bracket-pair-colorizer = buildVscodeMarketplaceExtension {
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/CoenraadS.bracket-pair-colorizer/changelog";
@@ -189,6 +237,36 @@ let
         };
       };
 
+      dotjoshjohnson.xml = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "xml";
+          publisher = "dotjoshjohnson";
+          version = "2.5.1";
+          sha256 = "1v4x6yhzny1f8f4jzm4g7vqmqg5bqchyx4n25mkgvw2xp6yls037";
+        };
+        meta = {
+          description = "XML Tools";
+          homepage = "https://github.com/DotJoshJohnson/vscode-xml";
+          license = lib.licenses.mit;
+        };
+      };
+
+      dracula-theme.theme-dracula = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "theme-dracula";
+          publisher = "dracula-theme";
+          version = "2.22.3";
+          sha256 = "0wni9sriin54ci8rly2s68lkfx8rj1cys6mgcizvps9sam6377w6";
+        };
+        meta = with lib; {
+          changelog = "https://marketplace.visualstudio.com/items/dracula-theme.theme-dracula/changelog";
+          description = "Dark theme for many editors, shells, and more";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=dracula-theme.theme-dracula";
+          homepage = "https://draculatheme.com/";
+          license = licenses.mit;
+        };
+      };
+
       eamodio.gitlens = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "gitlens";
@@ -201,6 +279,18 @@ let
         };
       };
 
+      edonet.vscode-command-runner = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-command-runner";
+          publisher = "edonet";
+          version = "0.0.116";
+          sha256 = "0fxvplyk080m0cdsvzynp6wjillrd4flr5qz7af7fibb2jbmfdkn";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       elmtooling.elm-ls-vscode = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "elm-ls-vscode";
@@ -218,6 +308,18 @@ let
         };
       };
 
+      emmanuelbeziat.vscode-great-icons = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-great-icons";
+          publisher = "emmanuelbeziat";
+          version = "2.1.64";
+          sha256 = "sha256-qsL1vWiEAYeWkMDNSrr1yzg0QxroEQQeznoDL3Ujy/o=";
+        };
+        meta = with lib; {
+          license = licenses.mit;
+        };
+      };
+
       esbenp.prettier-vscode = buildVscodeMarketplaceExtension {
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/esbenp.prettier-vscode/changelog";
@@ -276,6 +378,18 @@ let
         };
       };
 
+      formulahendry.code-runner = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "code-runner";
+          publisher = "formulahendry";
+          version = "0.11.2";
+          sha256 = "0qwcxr6m1xwhqmdl4pccjgpikpq1hgi2hgrva5abn8ixa2510hcy";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       freebroccolo.reasonml = buildVscodeMarketplaceExtension {
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/freebroccolo.reasonml/changelog";
@@ -293,19 +407,33 @@ let
         };
       };
 
-      github.github-vscode-theme = buildVscodeMarketplaceExtension {
-        mktplcRef = {
-          name = "github-vscode-theme";
-          publisher = "github";
-          version = "1.1.5";
-          sha256 = "10f0098cce026d1f0c855fb7a66ea60b5d8acd2b76126ea94fe7361e49cd9ed2";
-        };
-        meta = with lib; {
-          description = "GitHub theme for VS Code";
-          downloadPage = "https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme";
-          homepage = "https://github.com/primer/github-vscode-theme";
-          license = licenses.mit;
-          maintainers = with maintainers; [ hugolgst ];
+      github = {
+        github-vscode-theme = buildVscodeMarketplaceExtension {
+          mktplcRef = {
+            name = "github-vscode-theme";
+            publisher = "github";
+            version = "1.1.5";
+            sha256 =
+              "10f0098cce026d1f0c855fb7a66ea60b5d8acd2b76126ea94fe7361e49cd9ed2";
+          };
+          meta = with lib; {
+            description = "GitHub theme for VS Code";
+            downloadPage =
+              "https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme";
+            homepage = "https://github.com/primer/github-vscode-theme";
+            license = licenses.mit;
+            maintainers = with maintainers; [ hugolgst ];
+          };
+        };
+
+        vscode-pull-request-github = buildVscodeMarketplaceExtension {
+          mktplcRef = {
+            name = "vscode-pull-request-github";
+            publisher = "github";
+            version = "0.22.0";
+            sha256 = "13p3z86vkra26npp5a78pxdwa4z6jqjzsd38arhgdnjgwmi6bnrw";
+          };
+          meta = { license = lib.licenses.mit; };
         };
       };
 
@@ -337,8 +465,8 @@ let
         mktplcRef = {
           name = "todo-tree";
           publisher = "Gruntfuggly";
-          version = "0.0.196";
-          sha256 = "1l4f290018f2p76q6hn2b2injps6wz65as7dm537wrsvsivyg2qz";
+          version = "0.0.209";
+          sha256 = "1i0wq8zwax4kmy69hh0hclx9a47ycm3qp3gspjq8xpmcq3nmbfaq";
         };
         meta = with lib; {
           license = licenses.mit;
@@ -357,6 +485,8 @@ let
         };
       };
 
+      hashicorp.terraform = callPackage ./terraform {};
+
       hookyqr.beautify = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "beautify";
@@ -458,6 +588,18 @@ let
         };
       };
 
+      mishkinf.goto-next-previous-member = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "goto-next-previous-member";
+          publisher = "mishkinf";
+          version = "0.0.5";
+          sha256 = "0kgzap1k924i95al0a63hxcsv8skhaapgfpi9d7vvaxm0fc10l1i";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       mskelton.one-dark-theme = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "one-dark-theme";
@@ -486,14 +628,16 @@ let
         mktplcRef = {
           name = "vscode-docker";
           publisher = "ms-azuretools";
-          version = "0.8.1";
-          sha256 = "0n59whmcrx8946xix6skvc50f2vsc85ckvn8cs06w9mqmymm1q0s";
+          version = "1.9.1";
+          sha256 = "1l7pm3s5kbf2vark164ykz4qbpa1ac9ls691hham36f6v91dmff9";
         };
         meta = {
           license = lib.licenses.mit;
         };
       };
 
+      ms-dotnettools.csharp = callPackage ./ms-dotnettools-csharp { };
+
       ms-kubernetes-tools.vscode-kubernetes-tools = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-kubernetes-tools";
@@ -538,6 +682,20 @@ let
         };
       };
 
+      redhat.java = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "java";
+          publisher = "redhat";
+          version = "0.76.0";
+          sha256 = "0xb9brki4s00piv4kqgz6idm16nk6x1j6502jljz7y9pif38z32y";
+        };
+        buildInputs = [ jdk ];
+        meta = {
+          license = lib.licenses.epl20;
+          broken = lib.versionOlder jdk.version "11";
+        };
+      };
+
       redhat.vscode-yaml = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-yaml";
@@ -593,6 +751,18 @@ let
         };
       };
 
+      rubbersheep.gi = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "gi";
+          publisher = "rubbersheep";
+          version = "0.2.11";
+          sha256 = "0j9k6wm959sziky7fh55awspzidxrrxsdbpz1d79s5lr5r19rs6j";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       ryu1kn.partial-diff = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "partial-diff";
@@ -609,8 +779,8 @@ let
         mktplcRef = {
           name = "scala";
           publisher = "scala-lang";
-          version = "0.4.5";
-          sha256 = "0nrj32a7a86vwc9gfh748xs3mmfwbc304dp7nks61f0lx8b4wzxw";
+          version = "0.5.1";
+          sha256 = "0p9nhds2xn08xz8x822q15jdrdlqkg2wa1y7mk9k89n8n2kfh91g";
         };
         meta = {
           license = lib.licenses.mit;
@@ -621,8 +791,8 @@ let
         mktplcRef = {
           name = "metals";
           publisher = "scalameta";
-          version = "1.9.10";
-          sha256 = "1afmqzlw3bl9bv59l9b2jrljhbq8djb7vl8rjv58c5wi7nvm2qab";
+          version = "1.9.13";
+          sha256 = "0vrg25ygmyjx1lwif2ypyv688b290ycfn1qf0izxbmgi2z3f0wf9";
         };
         meta = {
           license = lib.licenses.asl20;
@@ -641,6 +811,19 @@ let
         };
       };
 
+
+      shyykoserhiy.vscode-spotify = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-spotify";
+          publisher = "shyykoserhiy";
+          version = "3.2.1";
+          sha256 = "14d68rcnjx4a20r0ps9g2aycv5myyhks5lpfz0syr2rxr4kd1vh6";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       skyapps.fish-vscode = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "fish-vscode";
@@ -648,8 +831,20 @@ let
           version = "0.2.1";
           sha256 = "0y1ivymn81ranmir25zk83kdjpjwcqpnc9r3jwfykjd9x0jib2hl";
         };
-        meta = with lib; {
-          license = licenses.mit;
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
+      slevesque.vscode-multiclip = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-multiclip";
+          publisher = "slevesque";
+          version = "0.1.5";
+          sha256 = "1cg8dqj7f10fj9i0g6mi3jbyk61rs6rvg9aq28575rr52yfjc9f9";
+        };
+        meta = {
+          license = lib.licenses.mit;
         };
       };
 
@@ -689,6 +884,30 @@ let
         };
       };
 
+      timonwong.shellcheck = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "shellcheck";
+          publisher = "timonwong";
+          version = "0.12.3";
+          sha256 = "1i9rszgnac2z1kyahmgxmz05ib7z14s458fvvjlzmvl64fa1fdvf";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
+      tomoki1207.pdf = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "pdf";
+          publisher = "tomoki1207";
+          version = "1.1.0";
+          sha256 = "0pcs4iy77v4f04f8m9w2rpdzfq7sqbspr7f2sm1fv7bm515qgsvb";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       tyriar.sort-lines = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "sort-lines";
@@ -701,6 +920,18 @@ let
         };
       };
 
+      usernamehw.errorlens = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "errorlens";
+          publisher = "usernamehw";
+          version = "3.2.4";
+          sha256 = "0caxmf6v0s5kgp6cp3j1kk7slhspjv5kzhn4sq3miyl5jkrn95kx";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       vadimcn.vscode-lldb = callPackage ./vscode-lldb { };
 
       vincaslt.highlight-matching-tag = buildVscodeMarketplaceExtension {
@@ -742,9 +973,57 @@ let
         };
       };
 
+      xyz.local-history = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "local-history";
+          publisher = "xyz";
+          version = "1.8.1";
+          sha256 = "1mfmnbdv76nvwg4xs3rgsqbxk8hw9zr1b61har9c3pbk9r4cay7v";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
+      yzhang.markdown-all-in-one = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "markdown-all-in-one";
+          publisher = "yzhang";
+          version = "3.4.0";
+          sha256 = "0ihfrsg2sc8d441a2lkc453zbw1jcpadmmkbkaf42x9b9cipd5qb";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
+      zhuangtongfa.material-theme = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "material-theme";
+          publisher = "zhuangtongfa";
+          version = "3.9.12";
+          sha256 = "017h9hxplf2rhmlhn3vag0wypcx6gxi7p9fgllj5jzwrl2wsjl0g";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       llvm-org.lldb-vscode = llvmPackages_8.lldb;
 
       WakaTime.vscode-wakatime = callPackage ./wakatime {};
+
+      wholroyd.jinja = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "jinja";
+          publisher = "wholroyd";
+          version = "0.0.8";
+          sha256 = "1ln9gly5bb7nvbziilnay4q448h9npdh7sd9xy277122h0qawkci";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
     };
 
     aliases = self: super: {
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix
new file mode 100644
index 000000000000..a7b0e17ecbfb
--- /dev/null
+++ b/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix
@@ -0,0 +1,143 @@
+{ lib
+, fetchurl
+, vscode-utils
+, unzip
+, patchelf
+, makeWrapper
+, icu
+, stdenv
+, openssl
+, mono6
+}:
+
+let
+  # Get as close as possible as the `package.json` required version.
+  # This is what drives omnisharp.
+  mono = mono6;
+
+  rtDepsSrcsFromJson = builtins.fromJSON (builtins.readFile ./rt-deps-bin-srcs.json);
+
+  rtDepsBinSrcs = builtins.mapAttrs (k: v:
+      let
+        # E.g: "OmniSharp-x86_64-linux"
+        kSplit = builtins.split "(-)" k;
+        name = builtins.elemAt kSplit 0;
+        arch = builtins.elemAt kSplit 2;
+        platform = builtins.elemAt kSplit 4;
+      in
+      {
+        inherit name arch platform;
+        installPath = v.installPath;
+        binaries = v.binaries;
+        bin-src = fetchurl {
+          urls = v.urls;
+          inherit (v) sha256;
+        };
+      }
+    )
+    rtDepsSrcsFromJson;
+
+  arch = "x86_64";
+  platform = "linux";
+
+  rtDepBinSrcByName = bSrcName:
+    rtDepsBinSrcs."${bSrcName}-${arch}-${platform}";
+
+  omnisharp = rtDepBinSrcByName "OmniSharp";
+  vsdbg = rtDepBinSrcByName "Debugger";
+  razor = rtDepBinSrcByName "Razor";
+in
+
+vscode-utils.buildVscodeMarketplaceExtension {
+  mktplcRef = {
+    name = "csharp";
+    publisher = "ms-dotnettools";
+    version = "1.23.2";
+    sha256 = "0ydaiy8jfd1bj50bqiaz5wbl7r6qwmbz9b29bydimq0rdjgapaar";
+  };
+
+  nativeBuildInputs = [
+    unzip
+    patchelf
+    makeWrapper
+  ];
+
+  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"
+
+    unzip_to() {
+      declare src_zip="''${1?}"
+      declare target_dir="''${2?}"
+      mkdir -p "$target_dir"
+      if unzip "$src_zip" -d "$target_dir"; then
+        true
+      elif [[ "1" -eq "$?" ]]; then
+        1>&2 echo "WARNING: unzip('$?' -> skipped files)."
+      else
+        1>&2 echo "ERROR: unzip('$?')."
+      fi
+    }
+
+    patchelf_add_icu_as_needed() {
+      declare elf="''${1?}"
+      declare icu_major_v="${
+        with builtins; head (splitVersion (parseDrvName icu.name).version)}"
+
+      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_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.out icu.out ]}:\$ORIGIN" \
+        "$elf"
+    }
+
+    declare omnisharp_dir="$PWD/${omnisharp.installPath}"
+    unzip_to "${omnisharp.bin-src}" "$omnisharp_dir"
+    rm "$omnisharp_dir/bin/mono"
+    ln -s -T "${mono6}/bin/mono" "$omnisharp_dir/bin/mono"
+    chmod a+x "$omnisharp_dir/run"
+    touch "$omnisharp_dir/install.Lock"
+
+    declare vsdbg_dir="$PWD/${vsdbg.installPath}"
+    unzip_to "${vsdbg.bin-src}" "$vsdbg_dir"
+    chmod a+x "$vsdbg_dir/vsdbg-ui"
+    chmod a+x "$vsdbg_dir/vsdbg"
+    touch "$vsdbg_dir/install.complete"
+    touch "$vsdbg_dir/install.Lock"
+    patchelf_common "$vsdbg_dir/vsdbg"
+    patchelf_common "$vsdbg_dir/vsdbg-ui"
+
+    declare razor_dir="$PWD/${razor.installPath}"
+    unzip_to "${razor.bin-src}" "$razor_dir"
+    chmod a+x "$razor_dir/rzls"
+    touch "$razor_dir/install.Lock"
+    patchelf_common "$razor_dir/rzls"
+  '';
+
+  meta = with lib; {
+    description = "C# for Visual Studio Code (powered by OmniSharp)";
+    license = licenses.mit;
+    maintainers = [ maintainers.jraygauthier ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json b/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json
new file mode 100644
index 000000000000..91ee056efc1f
--- /dev/null
+++ b/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json
@@ -0,0 +1,37 @@
+{
+  "OmniSharp-x86_64-linux": {
+    "installPath": ".omnisharp/1.37.1",
+    "binaries": [
+      "./mono.linux-x86_64",
+      "./run"
+    ],
+    "urls": [
+      "https://download.visualstudio.microsoft.com/download/pr/46933d64-075c-4f9f-b205-da4a839e2e3c/4bba2c3f40106056b53721c164ff86fa/omnisharp-linux-x64-1.37.1.zip",
+      "https://roslynomnisharp.blob.core.windows.net/releases/1.37.1/omnisharp-linux-x64-1.37.1.zip"
+    ],
+    "sha256": "0yzxkbq0fyq2bv0s7qmycxl0w54lla0vykg1a5lpv9j38k062vvz"
+  },
+  "Debugger-x86_64-linux": {
+    "installPath": ".debugger",
+    "binaries": [
+      "./vsdbg-ui",
+      "./vsdbg"
+    ],
+    "urls": [
+      "https://download.visualstudio.microsoft.com/download/pr/292d2e01-fb93-455f-a6b3-76cddad4f1ef/2e9b8bc5431d8f6c56025e76eaabbdff/coreclr-debug-linux-x64.zip",
+      "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-22-2/coreclr-debug-linux-x64.zip"
+    ],
+    "sha256": "1lhyjq6g6lc1b4n4z57g0ssr5msqgsmrl8yli8j9ah5s3jq1lrda"
+  },
+  "Razor-x86_64-linux": {
+    "installPath": ".razor",
+    "binaries": [
+      "./rzls"
+    ],
+    "urls": [
+      "https://download.visualstudio.microsoft.com/download/pr/757f5246-2b09-43fe-9a8d-840cfd15092b/2b6d8eee0470acf725c1c7a09f8b6475/razorlanguageserver-linux-x64-6.0.0-alpha.1.20418.9.zip",
+      "https://razorvscodetest.blob.core.windows.net/languageserver/RazorLanguageServer-linux-x64-6.0.0-alpha.1.20418.9.zip"
+    ],
+    "sha256": "1hksxq867anb9h040497phszq64f6krg4a46w0xqrm6crj8znqr5"
+  }
+}
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/update-bin-srcs b/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/update-bin-srcs
new file mode 100755
index 000000000000..ecd7efba05d8
--- /dev/null
+++ b/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/update-bin-srcs
@@ -0,0 +1,25 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../.. -i bash -p curl jq unzip
+set -euf -o pipefail
+
+declare scriptDir
+scriptDir=$(cd "$(dirname "$0")"; pwd)
+1>&2 echo "scriptDir='$scriptDir'"
+
+. "$scriptDir/update-bin-srcs-lib.sh"
+
+declare extPublisher="ms-dotnettools"
+declare extName="csharp"
+declare defaultExtVersion="1.23.2"
+declare extVersion="${1:-$defaultExtVersion}"
+
+formatExtRuntimeDeps \
+  "$extPublisher" "$extName" "$extVersion" \
+  | computeAndAttachExtRtDepsChecksums \
+  | jqStreamToJson \
+  | tee "$scriptDir/rt-deps-bin-srcs.json" \
+  | jq '.'
+
+# TODO: Unfortunatly no simple json to nix implementation available.
+# This would allow us to dump to './rt-deps-bin-srcs.nix' instead.
+# jsonToNix
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/update-bin-srcs-lib.sh b/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/update-bin-srcs-lib.sh
new file mode 100755
index 000000000000..ad494a37908a
--- /dev/null
+++ b/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/update-bin-srcs-lib.sh
@@ -0,0 +1,154 @@
+#!/usr/bin/env bash
+
+prefetchExtensionZip() {
+  declare publisher="${1?}"
+  declare name="${2?}"
+  declare version="${3?}"
+
+  1>&2 echo
+  1>&2 echo "------------- Downloading extension ---------------"
+
+  declare extZipStoreName="${publisher}-${name}.zip"
+  declare extUrl="https://${publisher}.gallery.vsassets.io/_apis/public/gallery/publisher/${publisher}/extension/${name}/${version}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage";
+  1>&2 echo "extUrl='$extUrl'"
+  declare nixPrefetchArgs=( --name "$extZipStoreName" --print-path "$extUrl" )
+
+  1>&2 printf "$ nix-prefetch-url"
+  1>&2 printf " %q" "${nixPrefetchArgs[@]}"
+  1>&2 printf " 2> /dev/null\n"
+  declare zipShaWStorePath
+  zipShaWStorePath=$(nix-prefetch-url "${nixPrefetchArgs[@]}" 2> /dev/null)
+
+  1>&2 echo "zipShaWStorePath='$zipShaWStorePath'"
+  echo "$zipShaWStorePath"
+}
+
+
+prefetchExtensionUnpacked() {
+  declare publisher="${1?}"
+  declare name="${2?}"
+  declare version="${3?}"
+
+  declare zipShaWStorePath
+  zipShaWStorePath="$(prefetchExtensionZip "$publisher" "$name" "$version")"
+
+  declare zipStorePath
+  zipStorePath="$(echo "$zipShaWStorePath" | tail -n1)"
+  1>&2 echo "zipStorePath='$zipStorePath'"
+
+  function rm_tmpdir() {
+    1>&2 printf "rm -rf -- %q\n" "$tmpDir"
+    rm -rf -- "$tmpDir"
+    unset tmpDir
+    trap - INT TERM HUP EXIT
+  }
+  function make_trapped_tmpdir() {
+    tmpDir=$(mktemp -d)
+    trap rm_tmpdir INT TERM HUP EXIT
+  }
+
+  1>&2 echo
+  1>&2 echo "------------- Unpacking extension ---------------"
+
+  make_trapped_tmpdir
+  declare unzipArgs=( -q -d "$tmpDir" "$zipStorePath" )
+  1>&2 printf "$ unzip"
+  1>&2 printf " %q" "${unzipArgs[@]}"
+  1>&2 printf "\n"
+  unzip "${unzipArgs[@]}"
+
+  declare unpackedStoreName="${publisher}-${name}"
+
+  declare unpackedStorePath
+  unpackedStorePath="$(nix add-to-store -n "$unpackedStoreName" "$tmpDir")"
+  declare unpackedSha256
+  unpackedSha256="$(nix hash-path --base32 --type sha256 "$unpackedStorePath")"
+  1>&2 echo "unpackedStorePath='$unpackedStorePath'"
+  1>&2 echo "unpackedSha256='$unpackedSha256'"
+
+  rm_tmpdir
+
+  echo "$unpackedSha256"
+  echo "$unpackedStorePath"
+}
+
+
+prefetchExtensionJson() {
+  declare publisher="${1?}"
+  declare name="${2?}"
+  declare version="${3?}"
+
+  declare unpackedShaWStorePath
+  unpackedShaWStorePath="$(prefetchExtensionUnpacked "$publisher" "$name" "$version")"
+
+  declare unpackedStorePath
+  unpackedStorePath="$(echo "$unpackedShaWStorePath" | tail -n1)"
+  1>&2 echo "unpackedStorePath='$unpackedStorePath'"
+
+  declare jsonShaWStorePath
+  jsonShaWStorePath=$(nix-prefetch-url --print-path "file://${unpackedStorePath}/extension/package.json" 2> /dev/null)
+
+  1>&2 echo "jsonShaWStorePath='$jsonShaWStorePath'"
+  echo "$jsonShaWStorePath"
+}
+
+
+formatExtRuntimeDeps() {
+  declare publisher="${1?}"
+  declare name="${2?}"
+  declare version="${3?}"
+
+  declare jsonShaWStorePath
+  jsonShaWStorePath="$(prefetchExtensionJson "$publisher" "$name" "$version")"
+
+  declare jsonStorePath
+  jsonStorePath="$(echo "$jsonShaWStorePath" | tail -n1)"
+  1>&2 echo "jsonStorePath='$jsonStorePath'"
+
+  declare jqQuery
+  jqQuery=$(cat <<'EOF'
+.runtimeDependencies \
+| map(select(.platforms[] | in({"linux": null}))) \
+| map(select(.architectures[] | in({"x86_64": null}))) \
+| .[] | {(.id + "-" + (.architectures[0]) + "-" + (.platforms[0])): \
+{installPath, binaries, urls: [.url, .fallbackUrl]}}
+EOF
+)
+
+  1>&2 printf "$ cat %q | jq '%s'\n" "$jsonStorePath" "$jqQuery"
+  cat "$jsonStorePath" | jq "$jqQuery"
+}
+
+
+computeExtRtDepChecksum() {
+  declare rtDepJsonObject="${1?}"
+  declare url
+  url="$(echo "$rtDepJsonObject" | jq -j '.[].urls[0]')"
+  declare sha256
+  1>&2 printf "$ nix-prefetch-url '%s'\n" "$url"
+  sha256="$(nix-prefetch-url "$url")"
+  1>&2 echo "$sha256"
+  echo "$sha256"
+}
+
+
+computeAndAttachExtRtDepsChecksums() {
+  while read -r rtDepJsonObject; do
+    declare sha256
+    sha256="$(computeExtRtDepChecksum "$rtDepJsonObject")"
+    echo "$rtDepJsonObject" | jq --arg sha256 "$sha256" '.[].sha256 = $sha256'
+  done < <(cat - | jq  -c '.')
+}
+
+
+jqStreamToJson() {
+  cat - | jq --slurp '. | add'
+}
+
+
+jsonToNix() {
+  # TODO: Replacing this non functional stuff with a proper json to nix
+  # implementation would allow us to produce a 'rt-deps-bin-srcs.nix' file instead.
+  false
+  cat - | sed -E -e 's/": /" = /g' -e 's/,$/;/g' -e 's/  }$/  };/g'  -e 's/  ]$/  ];/g'
+}
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix
index c49f798899fe..a307ed57019d 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix
@@ -1,9 +1,10 @@
-# Baseed on previous attempts:
+# Based on previous attempts:
 #  -  <https://github.com/msteen/nixos-vsliveshare/blob/master/pkgs/vsliveshare/default.nix>
 #  -  <https://github.com/NixOS/nixpkgs/issues/41189>
-{ lib, gccStdenv, vscode-utils, autoPatchelfHook, bash, file, makeWrapper, dotnet-sdk_3
-, curl, gcc, icu, libkrb5, libsecret, libunwind, libX11, lttng-ust, openssl, util-linux, zlib
-, desktop-file-utils, xprop
+{ lib, gccStdenv, vscode-utils
+, jq, autoPatchelfHook, bash, makeWrapper
+, dotnet-sdk_3, curl, gcc, icu, libkrb5, libsecret, libunwind, libX11, lttng-ust, openssl, util-linux, zlib
+, desktop-file-utils, xprop, xsel
 }:
 
 with lib;
@@ -37,11 +38,17 @@ in ((vscode-utils.override { stdenv = gccStdenv; }).buildVscodeMarketplaceExtens
   mktplcRef = {
     name = "vsliveshare";
     publisher = "ms-vsliveshare";
-    version = "1.0.2902";
-    sha256 = "0fx2vi0wxamcwqcgcx7wpg8hi7f1c2pibrmd2qy2whilpsv3gzmb";
+    version = "1.0.4070";
+    sha256 = "18dddaz5g0kbrmj9l9k0fivdj6p6y5a6iw24ikvzmypz8zql7gd5";
   };
-}).overrideAttrs(attrs: {
-  buildInputs = attrs.buildInputs ++ libs ++ [ autoPatchelfHook bash file makeWrapper ];
+}).overrideAttrs({ nativeBuildInputs ? [], buildInputs ? [], ... }: {
+  nativeBuildInputs = nativeBuildInputs ++ [
+    bash
+    jq
+    autoPatchelfHook
+    makeWrapper
+  ];
+  buildInputs = buildInputs ++ libs;
 
   # Using a patch file won't work, because the file changes too often, causing the patch to fail on most updates.
   # Rather than patching the calls to functions, we modify the functions to return what we want,
@@ -57,32 +64,31 @@ in ((vscode-utils.override { stdenv = gccStdenv; }).buildVscodeMarketplaceExtens
 
     # Fix extension attempting to write to 'modifiedInternalSettings.json'.
     # Move this write to the tmp directory indexed by the nix store basename.
-    sed -i \
-      -E -e $'s/path\.resolve\(constants_1\.EXTENSION_ROOT_PATH, \'\.\/modifiedInternalSettings\.json\'\)/path.join\(os.tmpdir(), "'$ext_unique_id'" + "-modifiedInternalSettings.json"\)/g' \
-      out/prod/extension-prod.js
+    substituteInPlace out/prod/extension-prod.js \
+      --replace "path.resolve(constants_1.EXTENSION_ROOT_PATH, './modifiedInternalSettings.json')" \
+                "path.join(os.tmpdir(), '$ext_unique_id-modifiedInternalSettings.json')"
 
     # Fix extension attempting to write to 'vsls-agent.lock'.
     # Move this write to the tmp directory indexed by the nix store basename.
-    sed -i \
-      -E -e $'s/(Agent_1.getAgentPath\(\) \+ \'.lock\')/path.join\(os.tmpdir(), "'$ext_unique_id'" + "-vsls-agent.lock"\)/g' \
-      out/prod/extension-prod.js
-
-    # TODO: Under 'node_modules/@vsliveshare/vscode-launcher-linux' need to hardcode path to 'desktop-file-install'
-    # 'update-desktop-database' and 'xprop'. Might want to wrap the script instead.
+    substituteInPlace out/prod/extension-prod.js \
+      --replace "path + '.lock'" \
+                "__webpack_require__('path').join(__webpack_require__('os').tmpdir(), '$ext_unique_id-vsls-agent.lock')"
+
+    # Hardcode executable paths
+    echo '#!/bin/sh' >node_modules/@vsliveshare/vscode-launcher-linux/check-reqs.sh
+    substituteInPlace node_modules/@vsliveshare/vscode-launcher-linux/install.sh \
+      --replace desktop-file-install ${desktop-file-utils}/bin/desktop-file-install
+    substituteInPlace node_modules/@vsliveshare/vscode-launcher-linux/uninstall.sh \
+      --replace update-desktop-database ${desktop-file-utils}/bin/update-desktop-database
+    substituteInPlace node_modules/@vsliveshare/vscode-launcher-linux/vsls-launcher \
+      --replace /bin/bash ${bash}/bin/bash
+    substituteInPlace out/prod/extension-prod.js \
+      --replace xprop ${xprop}/bin/xprop \
+      --replace "'xsel'" "'${xsel}/bin/xsel'"
   '';
 
-  # Support for the `postInstall` hook was added only in nixos-20.03,
-  # so for backwards compatibility reasons lets not use it yet.
-  installPhase = attrs.installPhase + ''
-    # Support both the new and old directory structure of vscode extensions.
-    if [[ -d $out/ms-vsliveshare.vsliveshare ]]; then
-      cd $out/ms-vsliveshare.vsliveshare
-    elif [[ -d $out/share/vscode/extensions/ms-vsliveshare.vsliveshare ]]; then
-      cd $out/share/vscode/extensions/ms-vsliveshare.vsliveshare
-    else
-      echo "Could not find extension directory 'ms-vsliveshare.vsliveshare'." >&2
-      exit 1
-    fi
+  postInstall = ''
+    cd $out/share/vscode/extensions/ms-vsliveshare.vsliveshare
 
     bash -s <<ENDSUBSHELL
     shopt -s extglob
@@ -98,34 +104,24 @@ in ((vscode-utils.override { stdenv = gccStdenv; }).buildVscodeMarketplaceExtens
 
     # The required executables are already copied over,
     # and the other runtimes won't be used and thus are just a waste of space.
-    rm -r dotnet_modules/exes dotnet_modules/runtimes/!(linux-x64)
+    rm -r dotnet_modules/exes dotnet_modules/runtimes/!(linux-x64|unix)
 
     # Not all executables and libraries are executable, so make sure that they are.
-    find . -type f ! -executable -exec file {} + | grep -w ELF | cut -d ':' -f1 | xargs -rd'\n' chmod +x
-
-    # Not all scripts are executed by passing them to a shell, so they need to be executable as well.
-    find . -type f -name '*.sh' ! -executable -exec chmod +x {} +
+    jq <package.json '.executables.linux[]' -r | xargs chmod +x
 
     # Lock the extension downloader.
     touch install-linux.Lock externalDeps-linux.Lock
     ENDSUBSHELL
   '';
 
-  rpath = makeLibraryPath libs;
-
   postFixup = ''
     # We cannot use `wrapProgram`, because it will generate a relative path,
     # which will break when copying over the files.
     mv dotnet_modules/vsls-agent{,-wrapped}
     makeWrapper $PWD/dotnet_modules/vsls-agent{-wrapped,} \
-      --prefix LD_LIBRARY_PATH : "$rpath" \
+      --prefix LD_LIBRARY_PATH : "${makeLibraryPath libs}" \
       --set LD_PRELOAD $PWD/dotnet_modules/noop-syslog.so \
       --set DOTNET_ROOT ${dotnet-sdk_3}
-
-    for bn in check-reqs.sh install.sh uninstall.sh; do
-      wrapProgram "$PWD/node_modules/@vsliveshare/vscode-launcher-linux/$bn" \
-        --prefix PATH : "${makeBinPath [desktop-file-utils xprop]}"
-    done
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/python/extract-nuget.nix b/nixpkgs/pkgs/misc/vscode-extensions/python/extract-nuget.nix
index e4d3b6a0ed1b..1e70cabe0358 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/python/extract-nuget.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/python/extract-nuget.nix
@@ -4,7 +4,7 @@
 stdenv.mkDerivation {
   inherit name version src;
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
   dontBuild = true;
   unpackPhase = "unzip $src";
   installPhase = ''
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json b/nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
index aba4ba44097a..ece623b53c36 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
+++ b/nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
@@ -2,15 +2,16 @@
   "name": "rust-analyzer",
   "version": "0.4.0-dev",
   "dependencies": {
+    "https-proxy-agent": "^5.0.0",
     "node-fetch": "^2.6.1",
-    "vscode-languageclient": "7.0.0",
+    "vscode-languageclient": "^7.1.0-next.4",
     "@rollup/plugin-commonjs": "^17.0.0",
     "@rollup/plugin-node-resolve": "^11.0.0",
     "@types/glob": "^7.1.3",
     "@types/mocha": "^8.0.4",
     "@types/node": "~12.12.6",
     "@types/node-fetch": "^2.5.7",
-    "@types/vscode": "^1.52.0",
+    "@types/vscode": "^1.53.0",
     "@typescript-eslint/eslint-plugin": "^4.9.0",
     "@typescript-eslint/parser": "^4.9.0",
     "eslint": "^7.15.0",
@@ -20,7 +21,7 @@
     "tslib": "^2.0.3",
     "typescript": "^4.1.2",
     "typescript-formatter": "^7.2.2",
-    "vsce": "^1.81.1",
-    "vscode-test": "^1.4.1"
+    "vsce": "^1.85.0",
+    "vscode-test": "^1.5.1"
   }
 }
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/terraform/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/terraform/default.nix
new file mode 100644
index 000000000000..fbfb7c06dc5e
--- /dev/null
+++ b/nixpkgs/pkgs/misc/vscode-extensions/terraform/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchurl, vscode-utils, terraform-ls }:
+vscode-utils.buildVscodeMarketplaceExtension rec {
+  mktplcRef = {
+    name = "terraform";
+    publisher = "hashicorp";
+    version = "2.9.1";
+  };
+
+  vsix = fetchurl {
+    name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
+    url = "https://github.com/hashicorp/vscode-terraform/releases/download/v${mktplcRef.version}/terraform-${mktplcRef.version}.vsix";
+    sha256 = "1i4pzxw57hf2g7x62hfsb588b1lz3zjjh8ny96qqrif2bj2h887z";
+  };
+
+  patches = [ ./fix-terraform-ls.patch ];
+
+  postPatch = ''
+    substituteInPlace out/extension.js --replace TERRAFORM-LS-PATH ${terraform-ls}/bin/terraform-ls
+  '';
+
+  meta = with lib; {
+    license = licenses.mit;
+    maintainers = with maintainers; [ rhoriguchi ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch b/nixpkgs/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
new file mode 100644
index 000000000000..d91ffcc17ab4
--- /dev/null
+++ b/nixpkgs/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
@@ -0,0 +1,38 @@
+diff --git a/out/extension.js b/out/extension.js
+index e44cef2..fba0899 100644
+--- a/out/extension.js
++++ b/out/extension.js
+@@ -141,24 +141,6 @@ function updateLanguageServer() {
+     return __awaiter(this, void 0, void 0, function* () {
+         const delay = 1000 * 60 * 24;
+         setTimeout(updateLanguageServer, delay); // check for new updates every 24hrs
+-        // skip install if a language server binary path is set
+-        if (!vscodeUtils_1.config('terraform').get('languageServer.pathToBinary')) {
+-            const installer = new languageServerInstaller_1.LanguageServerInstaller(installPath, reporter);
+-            const install = yield installer.needsInstall();
+-            if (install) {
+-                yield stopClients();
+-                try {
+-                    yield installer.install();
+-                }
+-                catch (err) {
+-                    reporter.sendTelemetryException(err);
+-                    throw err;
+-                }
+-                finally {
+-                    yield installer.cleanupZips();
+-                }
+-            }
+-        }
+         return startClients(); // on repeat runs with no install, this will be a no-op
+     });
+ }
+@@ -256,7 +238,7 @@ function pathToBinary() {
+                 reporter.sendTelemetryEvent('usePathToBinary');
+             }
+             else {
+-                command = path.join(installPath, 'terraform-ls');
++                command = 'TERRAFORM-LS-PATH';
+             }
+             _pathToBinaryPromise = Promise.resolve(command);
+         }
diff --git a/nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix b/nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix
index 2d51c11f04a6..b86891352f07 100644
--- a/nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix
+++ b/nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, stdenvNoCC, fetchcvs, lib, groff, mandoc, zlib, yacc, flex
+{ stdenv, stdenvNoCC, fetchcvs, lib, groff, mandoc, zlib, bison, flex
 , writeText, buildPackages, splicePackages, symlinkJoin }:
 
 let
@@ -563,7 +563,7 @@ let
     sha256 = "0630lbvz6v4ic13bfg8ccwfhqkgcv76bfdw9f36rfsnwfgpxqsmq";
     meta.platforms = lib.platforms.netbsd;
     nativeBuildInputs = [ makeMinimal install mandoc groff flex
-                          yacc genassym gencat lorder tsort stat ];
+                          bison genassym gencat lorder tsort stat ];
     extraPaths = [ sys.src ld_elf_so.src ];
   };
 
@@ -587,7 +587,7 @@ let
                    librpcsvc.src libutil.src librt.src libcrypt.src ];
     buildInputs = [ buildPackages.netbsd.headers csu ];
     nativeBuildInputs = [ makeMinimal install mandoc groff flex
-                          yacc genassym gencat lorder tsort stat ];
+                          bison genassym gencat lorder tsort stat ];
     NIX_CFLAGS_COMPILE = "-B${csu}/lib";
     meta.platforms = lib.platforms.netbsd;
     SHLIBINSTALLDIR = "$(out)/lib";
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix
index 8a814e9558de..b88107f992c9 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix
@@ -241,6 +241,18 @@ in rec {
         popd >/dev/null
       '';
     };
+
+    sandbox = stdenv.mkDerivation {
+      name = "apple-lib-sandbox";
+      dontUnpack = true;
+
+      installPhase = ''
+        mkdir -p $out/include $out/lib
+        ln -s "${lib.getDev sdk}/include/sandbox.h" $out/include/sandbox.h
+        cp "${darwin-stubs}/usr/lib/libsandbox.1.tbd" $out/lib
+        ln -s libsandbox.1.tbd $out/lib/libsandbox.tbd
+      '';
+    };
   };
 
   overrides = super: {
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix
index 609cd579f9f6..476a77c59d7f 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix
@@ -6,6 +6,34 @@ appleDerivation {
     cp include/* $out/include/CommonCrypto
   '';
 
+  appleHeaders = ''
+    CommonCrypto/CommonBaseXX.h
+    CommonCrypto/CommonBigNum.h
+    CommonCrypto/CommonCMACSPI.h
+    CommonCrypto/CommonCRC.h
+    CommonCrypto/CommonCrypto.h
+    CommonCrypto/CommonCryptoError.h
+    CommonCrypto/CommonCryptoPriv.h
+    CommonCrypto/CommonCryptor.h
+    CommonCrypto/CommonCryptorSPI.h
+    CommonCrypto/CommonDH.h
+    CommonCrypto/CommonDigest.h
+    CommonCrypto/CommonDigestSPI.h
+    CommonCrypto/CommonECCryptor.h
+    CommonCrypto/CommonHMAC.h
+    CommonCrypto/CommonHMacSPI.h
+    CommonCrypto/CommonKeyDerivation.h
+    CommonCrypto/CommonKeyDerivationSPI.h
+    CommonCrypto/CommonNumerics.h
+    CommonCrypto/CommonRSACryptor.h
+    CommonCrypto/CommonRandom.h
+    CommonCrypto/CommonRandomSPI.h
+    CommonCrypto/CommonSymmetricKeywrap.h
+    CommonCrypto/aes.h
+    CommonCrypto/lionCompat.h
+    CommonCrypto/module.modulemap
+  '';
+
   meta = with lib; {
     maintainers = with maintainers; [ copumpkin ];
     platforms   = platforms.darwin;
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/clang-5.patch b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/clang-5.patch
deleted file mode 100644
index fd9df8129407..000000000000
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/clang-5.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/icuSources/i18n/ucoleitr.cpp b/icuSources/i18n/ucoleitr.cpp
-index ecc94c9..936452f 100644
---- a/icuSources/i18n/ucoleitr.cpp
-+++ b/icuSources/i18n/ucoleitr.cpp
-@@ -320,7 +320,7 @@ ucol_nextProcessed(UCollationElements *elems,
-                    int32_t            *ixHigh,
-                    UErrorCode         *status)
- {
--    return (UCollationPCE::UCollationPCE(elems)).nextProcessed(ixLow, ixHigh, status);
-+    return (UCollationPCE(elems)).nextProcessed(ixLow, ixHigh, status);
- }
- 
- 
-@@ -384,7 +384,7 @@ ucol_previousProcessed(UCollationElements *elems,
-                    int32_t            *ixHigh,
-                    UErrorCode         *status)
- {
--    return (UCollationPCE::UCollationPCE(elems)).previousProcessed(ixLow, ixHigh, status);
-+    return (UCollationPCE(elems)).previousProcessed(ixLow, ixHigh, status);
- }
- 
- U_NAMESPACE_BEGIN
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix
index 761ff3ea9252..032b1447463d 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix
@@ -1,23 +1,56 @@
-{ appleDerivation }:
+{ appleDerivation, python3 }:
 
 appleDerivation {
-  patches = [ ./clang-5.patch ];
+  nativeBuildInputs = [ python3 ];
 
   postPatch = ''
     substituteInPlace makefile \
-      --replace /usr/bin/ "" \
-      --replace '$(ISYSROOT)' "" \
-      --replace 'shell xcodebuild -version -sdk' 'shell true' \
-      --replace 'shell xcrun -sdk $(SDKPATH) -find' 'shell echo' \
-      --replace '-install_name $(libdir)' "-install_name $out/lib/" \
-      --replace /usr/local/bin/ /bin/ \
-      --replace /usr/lib/ /lib/ \
+      --replace "/usr/bin/" "" \
+      --replace "xcrun --sdk macosx --find" "echo -n" \
+      --replace "xcrun --sdk macosx.internal --show-sdk-path" "echo -n /dev/null" \
+      --replace "-install_name " "-install_name $out"
+
+    substituteInPlace icuSources/config/mh-darwin \
+      --replace "-install_name " "-install_name $out/"
+
+    # drop using impure /var/db/timezone/icutz
+    substituteInPlace makefile \
+      --replace '-DU_TIMEZONE_FILES_DIR=\"\\\"$(TZDATA_LOOKUP_DIR)\\\"\" -DU_TIMEZONE_PACKAGE=\"\\\"$(TZDATA_PACKAGE)\\\"\"' ""
+
+    # FIXME: This will cause `ld: warning: OS version (12.0) too small, changing to 13.0.0`, APPLE should fix it.
+    substituteInPlace makefile \
+      --replace "ZIPPERING_LDFLAGS=-Wl,-iosmac_version_min,12.0" "ZIPPERING_LDFLAGS="
+
+    # skip test for missing encodingSamples data
+    substituteInPlace icuSources/test/cintltst/ucsdetst.c \
+      --replace "&TestMailFilterCSS" "NULL"
+
+    patchShebangs icuSources
   '';
 
-  makeFlags = [ "DSTROOT=$(out)" ];
+  # APPLE is using makefile to save its default configuration and call ./configure, so we hack makeFlags
+  # instead of configuring ourself, trying to stay abreast of APPLE.
+  dontConfigure = true;
+  makeFlags = [
+    "DSTROOT=$(out)"
+
+    # remove /usr prefix on include and lib
+    "PRIVATE_HDR_PREFIX="
+    "libdir=/lib/"
+
+    "DATA_INSTALL_DIR=/share/icu/"
+    "DATA_LOOKUP_DIR=$(DSTROOT)$(DATA_INSTALL_DIR)"
+
+    # hack to use our lower macos version
+    "MAC_OS_X_VERSION_MIN_REQUIRED=__MAC_OS_X_VERSION_MIN_REQUIRED"
+    "OSX_HOST_VERSION_MIN_STRING=$(MACOSX_DEPLOYMENT_TARGET)"
+  ];
+
+  doCheck = true;
+  checkTarget = "check";
 
   postInstall = ''
-    mv $out/usr/local/include $out/include
+    # we don't need all those in usr/local
     rm -rf $out/usr
   '';
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
index 6ebb470145d5..3554a2e15b07 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
@@ -29,4 +29,6 @@ appleDerivation {
     cp ${Libc_old}/include/libkern/OSAtomic.h       $out/include/libkern
     cp ${Libc_old}/include/libkern/OSCacheControl.h $out/include/libkern
   '';
+
+  appleHeaders = builtins.readFile ./headers.txt;
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/headers.txt b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/headers.txt
new file mode 100644
index 000000000000..ea62e31dc781
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/headers.txt
@@ -0,0 +1,138 @@
+CrashReporterClient.h
+NSSystemDirectories.h
+_locale.h
+_types.h
+_types/_intmax_t.h
+_types/_nl_item.h
+_types/_uint16_t.h
+_types/_uint32_t.h
+_types/_uint64_t.h
+_types/_uint8_t.h
+_types/_uintmax_t.h
+_types/_wctrans_t.h
+_types/_wctype_t.h
+_wctype.h
+_xlocale.h
+aio.h
+alloca.h
+ar.h
+arpa/ftp.h
+arpa/inet.h
+arpa/nameser_compat.h
+arpa/telnet.h
+arpa/tftp.h
+asl.h
+assert.h
+bitstring.h
+cpio.h
+crt_externs.h
+ctype.h
+db.h
+dirent.h
+disktab.h
+err.h
+errno.h
+execinfo.h
+fcntl.h
+fmtmsg.h
+fnmatch.h
+fsproperties.h
+fstab.h
+fts.h
+ftw.h
+get_compat.h
+getopt.h
+glob.h
+inttypes.h
+iso646.h
+langinfo.h
+libc.h
+libc_private.h
+libgen.h
+libkern/OSAtomic.h
+libkern/OSCacheControl.h
+libproc.h
+limits.h
+locale.h
+malloc/malloc.h
+memory.h
+monetary.h
+monitor.h
+mpool.h
+msgcat.h
+ndbm.h
+nl_types.h
+nlist.h
+os/assumes.h
+os/debug_private.h
+paths.h
+poll.h
+printf.h
+protocols/routed.h
+protocols/rwhod.h
+protocols/talkd.h
+protocols/timed.h
+pthread.h
+pthread_impl.h
+pthread_spis.h
+pthread_workqueue.h
+ranlib.h
+readpassphrase.h
+regex.h
+runetype.h
+sched.h
+search.h
+secure/_common.h
+secure/_stdio.h
+secure/_string.h
+semaphore.h
+setjmp.h
+sgtty.h
+signal.h
+spawn.h
+stab.h
+standards.h
+stddef.h
+stdint.h
+stdio.h
+stdlib.h
+strhash.h
+string.h
+stringlist.h
+strings.h
+struct.h
+sys/acl.h
+sys/rbtree.h
+sys/statvfs.h
+sysexits.h
+syslog.h
+tar.h
+termios.h
+time.h
+timeconv.h
+ttyent.h
+tzfile.h
+ucontext.h
+ulimit.h
+unistd.h
+util.h
+utime.h
+utmpx.h
+utmpx_thread.h
+vis.h
+wchar.h
+wctype.h
+wordexp.h
+xlocale.h
+xlocale/__wctype.h
+xlocale/_ctype.h
+xlocale/_inttypes.h
+xlocale/_langinfo.h
+xlocale/_monetary.h
+xlocale/_regex.h
+xlocale/_stdio.h
+xlocale/_stdlib.h
+xlocale/_string.h
+xlocale/_time.h
+xlocale/_wchar.h
+xlocale/_wctype.h
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix
index add51a61d3d3..5481ae74d38d 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix
@@ -11,4 +11,40 @@ appleDerivation {
     export DSTROOT=$out
     sh xcodescripts/install_files.sh
   '';
+
+  appleHeaders = ''
+    aliasdb.h
+    bootparams.h
+    configuration_profile.h
+    grp.h
+    ifaddrs.h
+    ils.h
+    kvbuf.h
+    libinfo.h
+    libinfo_muser.h
+    membership.h
+    membershipPriv.h
+    netdb.h
+    netdb_async.h
+    ntsid.h
+    printerdb.h
+    pwd.h
+    rpc/auth.h
+    rpc/auth_unix.h
+    rpc/clnt.h
+    rpc/pmap_clnt.h
+    rpc/pmap_prot.h
+    rpc/pmap_rmt.h
+    rpc/rpc.h
+    rpc/rpc_msg.h
+    rpc/svc.h
+    rpc/svc_auth.h
+    rpc/types.h
+    rpc/xdr.h
+    rpcsvc/yp_prot.h
+    rpcsvc/ypclnt.h
+    si_data.h
+    si_module.h
+    thread_data.h
+  '';
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
index ad3f5dea9757..2c98dd35e39d 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
@@ -115,6 +115,8 @@ appleDerivation {
     ln -s libresolv.9.dylib $out/lib/libresolv.dylib
   '';
 
+  appleHeaders = builtins.readFile ./headers.txt;
+
   meta = with lib; {
     description = "The Mac OS libc/libSystem (tapi library with pure headers)";
     maintainers = with maintainers; [ copumpkin gridaphobe ];
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/headers.txt b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/headers.txt
new file mode 100644
index 000000000000..09b0ab410459
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/headers.txt
@@ -0,0 +1,1727 @@
+AssertMacros.h
+Availability.h
+AvailabilityInternal.h
+AvailabilityMacros.h
+Block.h
+Block_private.h
+CommonCrypto/CommonBaseXX.h
+CommonCrypto/CommonBigNum.h
+CommonCrypto/CommonCMACSPI.h
+CommonCrypto/CommonCRC.h
+CommonCrypto/CommonCrypto.h
+CommonCrypto/CommonCryptoError.h
+CommonCrypto/CommonCryptoPriv.h
+CommonCrypto/CommonCryptor.h
+CommonCrypto/CommonCryptorSPI.h
+CommonCrypto/CommonDH.h
+CommonCrypto/CommonDigest.h
+CommonCrypto/CommonDigestSPI.h
+CommonCrypto/CommonECCryptor.h
+CommonCrypto/CommonHMAC.h
+CommonCrypto/CommonHMacSPI.h
+CommonCrypto/CommonKeyDerivation.h
+CommonCrypto/CommonKeyDerivationSPI.h
+CommonCrypto/CommonNumerics.h
+CommonCrypto/CommonRSACryptor.h
+CommonCrypto/CommonRandom.h
+CommonCrypto/CommonRandomSPI.h
+CommonCrypto/CommonSymmetricKeywrap.h
+CommonCrypto/aes.h
+CommonCrypto/lionCompat.h
+ConditionalMacros.h
+CrashReporterClient.h
+ExtentManager.h
+MacTypes.h
+NSSystemDirectories.h
+TargetConditionals.h
+_errno.h
+_libkernel_init.h
+_locale.h
+_simple.h
+_types.h
+_types/_intmax_t.h
+_types/_nl_item.h
+_types/_uint16_t.h
+_types/_uint32_t.h
+_types/_uint64_t.h
+_types/_uint8_t.h
+_types/_uintmax_t.h
+_types/_wctrans_t.h
+_types/_wctype_t.h
+_wctype.h
+_xlocale.h
+aio.h
+aliasdb.h
+alloca.h
+ar.h
+architecture/alignment.h
+architecture/byte_order.h
+architecture/i386/alignment.h
+architecture/i386/asm_help.h
+architecture/i386/byte_order.h
+architecture/i386/cpu.h
+architecture/i386/desc.h
+architecture/i386/fpu.h
+architecture/i386/frame.h
+architecture/i386/io.h
+architecture/i386/pio.h
+architecture/i386/reg_help.h
+architecture/i386/sel.h
+architecture/i386/table.h
+architecture/i386/tss.h
+arpa/ftp.h
+arpa/inet.h
+arpa/nameser_compat.h
+arpa/telnet.h
+arpa/tftp.h
+asl.h
+assert.h
+atm/atm_notification.defs
+atm/atm_types.defs
+atm/atm_types.h
+bank/bank_types.h
+bitstring.h
+bootparams.h
+bootstrap.h
+bootstrap_priv.h
+bsd/bsm/audit.h
+bsd/dev/random/randomdev.h
+bsd/i386/_limits.h
+bsd/i386/_mcontext.h
+bsd/i386/_param.h
+bsd/i386/_types.h
+bsd/i386/endian.h
+bsd/i386/limits.h
+bsd/i386/param.h
+bsd/i386/profile.h
+bsd/i386/signal.h
+bsd/i386/types.h
+bsd/i386/vmparam.h
+bsd/libkern/libkern.h
+bsd/machine/_limits.h
+bsd/machine/_mcontext.h
+bsd/machine/_param.h
+bsd/machine/_types.h
+bsd/machine/byte_order.h
+bsd/machine/disklabel.h
+bsd/machine/endian.h
+bsd/machine/limits.h
+bsd/machine/param.h
+bsd/machine/profile.h
+bsd/machine/signal.h
+bsd/machine/spl.h
+bsd/machine/types.h
+bsd/machine/vmparam.h
+bsd/miscfs/devfs/devfs.h
+bsd/miscfs/devfs/devfs_proto.h
+bsd/miscfs/devfs/devfsdefs.h
+bsd/miscfs/devfs/fdesc.h
+bsd/miscfs/fifofs/fifo.h
+bsd/miscfs/specfs/specdev.h
+bsd/miscfs/union/union.h
+bsd/net/bpf.h
+bsd/net/dlil.h
+bsd/net/ethernet.h
+bsd/net/if.h
+bsd/net/if_arp.h
+bsd/net/if_dl.h
+bsd/net/if_ether.h
+bsd/net/if_llc.h
+bsd/net/if_media.h
+bsd/net/if_mib.h
+bsd/net/if_types.h
+bsd/net/if_utun.h
+bsd/net/if_var.h
+bsd/net/init.h
+bsd/net/kext_net.h
+bsd/net/kpi_interface.h
+bsd/net/kpi_interfacefilter.h
+bsd/net/kpi_protocol.h
+bsd/net/ndrv.h
+bsd/net/net_kev.h
+bsd/net/pfkeyv2.h
+bsd/net/radix.h
+bsd/net/route.h
+bsd/netinet/bootp.h
+bsd/netinet/icmp6.h
+bsd/netinet/icmp_var.h
+bsd/netinet/if_ether.h
+bsd/netinet/igmp.h
+bsd/netinet/igmp_var.h
+bsd/netinet/in.h
+bsd/netinet/in_arp.h
+bsd/netinet/in_pcb.h
+bsd/netinet/in_systm.h
+bsd/netinet/in_var.h
+bsd/netinet/ip.h
+bsd/netinet/ip6.h
+bsd/netinet/ip_icmp.h
+bsd/netinet/ip_var.h
+bsd/netinet/kpi_ipfilter.h
+bsd/netinet/tcp.h
+bsd/netinet/tcp_fsm.h
+bsd/netinet/tcp_seq.h
+bsd/netinet/tcp_timer.h
+bsd/netinet/tcp_var.h
+bsd/netinet/tcpip.h
+bsd/netinet/udp.h
+bsd/netinet/udp_var.h
+bsd/netinet6/ah.h
+bsd/netinet6/esp.h
+bsd/netinet6/in6.h
+bsd/netinet6/in6_var.h
+bsd/netinet6/ipcomp.h
+bsd/netinet6/ipsec.h
+bsd/netinet6/nd6.h
+bsd/netinet6/raw_ip6.h
+bsd/netinet6/scope6_var.h
+bsd/netkey/keysock.h
+bsd/security/audit/audit.h
+bsd/security/audit/audit_bsd.h
+bsd/security/audit/audit_ioctl.h
+bsd/security/audit/audit_private.h
+bsd/sys/_endian.h
+bsd/sys/_select.h
+bsd/sys/_structs.h
+bsd/sys/_types.h
+bsd/sys/_types/_blkcnt_t.h
+bsd/sys/_types/_blksize_t.h
+bsd/sys/_types/_clock_t.h
+bsd/sys/_types/_ct_rune_t.h
+bsd/sys/_types/_dev_t.h
+bsd/sys/_types/_errno_t.h
+bsd/sys/_types/_fd_clr.h
+bsd/sys/_types/_fd_copy.h
+bsd/sys/_types/_fd_def.h
+bsd/sys/_types/_fd_isset.h
+bsd/sys/_types/_fd_set.h
+bsd/sys/_types/_fd_setsize.h
+bsd/sys/_types/_fd_zero.h
+bsd/sys/_types/_filesec_t.h
+bsd/sys/_types/_fsblkcnt_t.h
+bsd/sys/_types/_fsfilcnt_t.h
+bsd/sys/_types/_fsid_t.h
+bsd/sys/_types/_fsobj_id_t.h
+bsd/sys/_types/_gid_t.h
+bsd/sys/_types/_guid_t.h
+bsd/sys/_types/_id_t.h
+bsd/sys/_types/_in_addr_t.h
+bsd/sys/_types/_in_port_t.h
+bsd/sys/_types/_ino64_t.h
+bsd/sys/_types/_ino_t.h
+bsd/sys/_types/_int16_t.h
+bsd/sys/_types/_int32_t.h
+bsd/sys/_types/_int64_t.h
+bsd/sys/_types/_int8_t.h
+bsd/sys/_types/_intptr_t.h
+bsd/sys/_types/_iovec_t.h
+bsd/sys/_types/_key_t.h
+bsd/sys/_types/_mach_port_t.h
+bsd/sys/_types/_mbstate_t.h
+bsd/sys/_types/_mode_t.h
+bsd/sys/_types/_nlink_t.h
+bsd/sys/_types/_null.h
+bsd/sys/_types/_o_dsync.h
+bsd/sys/_types/_o_sync.h
+bsd/sys/_types/_off_t.h
+bsd/sys/_types/_offsetof.h
+bsd/sys/_types/_os_inline.h
+bsd/sys/_types/_pid_t.h
+bsd/sys/_types/_posix_vdisable.h
+bsd/sys/_types/_ptrdiff_t.h
+bsd/sys/_types/_rsize_t.h
+bsd/sys/_types/_rune_t.h
+bsd/sys/_types/_s_ifmt.h
+bsd/sys/_types/_sa_family_t.h
+bsd/sys/_types/_seek_set.h
+bsd/sys/_types/_sigaltstack.h
+bsd/sys/_types/_sigset_t.h
+bsd/sys/_types/_size_t.h
+bsd/sys/_types/_socklen_t.h
+bsd/sys/_types/_ssize_t.h
+bsd/sys/_types/_suseconds_t.h
+bsd/sys/_types/_time_t.h
+bsd/sys/_types/_timespec.h
+bsd/sys/_types/_timeval.h
+bsd/sys/_types/_timeval32.h
+bsd/sys/_types/_timeval64.h
+bsd/sys/_types/_u_int16_t.h
+bsd/sys/_types/_u_int32_t.h
+bsd/sys/_types/_u_int64_t.h
+bsd/sys/_types/_u_int8_t.h
+bsd/sys/_types/_ucontext.h
+bsd/sys/_types/_ucontext64.h
+bsd/sys/_types/_uid_t.h
+bsd/sys/_types/_uintptr_t.h
+bsd/sys/_types/_useconds_t.h
+bsd/sys/_types/_user32_itimerval.h
+bsd/sys/_types/_user32_timespec.h
+bsd/sys/_types/_user32_timeval.h
+bsd/sys/_types/_user64_itimerval.h
+bsd/sys/_types/_user64_timespec.h
+bsd/sys/_types/_user64_timeval.h
+bsd/sys/_types/_user_timespec.h
+bsd/sys/_types/_user_timeval.h
+bsd/sys/_types/_uuid_t.h
+bsd/sys/_types/_va_list.h
+bsd/sys/_types/_wchar_t.h
+bsd/sys/_types/_wint_t.h
+bsd/sys/appleapiopts.h
+bsd/sys/attr.h
+bsd/sys/bsdtask_info.h
+bsd/sys/buf.h
+bsd/sys/cdefs.h
+bsd/sys/codesign.h
+bsd/sys/conf.h
+bsd/sys/content_protection.h
+bsd/sys/cprotect.h
+bsd/sys/csr.h
+bsd/sys/decmpfs.h
+bsd/sys/dir.h
+bsd/sys/dirent.h
+bsd/sys/disk.h
+bsd/sys/disklabel.h
+bsd/sys/disktab.h
+bsd/sys/dkstat.h
+bsd/sys/doc_tombstone.h
+bsd/sys/domain.h
+bsd/sys/errno.h
+bsd/sys/ev.h
+bsd/sys/event.h
+bsd/sys/eventvar.h
+bsd/sys/fbt.h
+bsd/sys/fcntl.h
+bsd/sys/file.h
+bsd/sys/file_internal.h
+bsd/sys/filedesc.h
+bsd/sys/fileport.h
+bsd/sys/filio.h
+bsd/sys/fsctl.h
+bsd/sys/fsevents.h
+bsd/sys/fslog.h
+bsd/sys/guarded.h
+bsd/sys/imgact.h
+bsd/sys/ioccom.h
+bsd/sys/ioctl.h
+bsd/sys/ioctl_compat.h
+bsd/sys/ipc.h
+bsd/sys/kasl.h
+bsd/sys/kauth.h
+bsd/sys/kdebug.h
+bsd/sys/kdebugevents.h
+bsd/sys/kern_control.h
+bsd/sys/kern_event.h
+bsd/sys/kern_memorystatus.h
+bsd/sys/kernel.h
+bsd/sys/kernel_types.h
+bsd/sys/kpi_mbuf.h
+bsd/sys/kpi_private.h
+bsd/sys/kpi_socket.h
+bsd/sys/kpi_socketfilter.h
+bsd/sys/ktrace.h
+bsd/sys/linker_set.h
+bsd/sys/lock.h
+bsd/sys/lockf.h
+bsd/sys/mach_swapon.h
+bsd/sys/malloc.h
+bsd/sys/mbuf.h
+bsd/sys/md5.h
+bsd/sys/memory_maintenance.h
+bsd/sys/mman.h
+bsd/sys/mount.h
+bsd/sys/mount_internal.h
+bsd/sys/msg.h
+bsd/sys/msgbuf.h
+bsd/sys/munge.h
+bsd/sys/namei.h
+bsd/sys/netport.h
+bsd/sys/param.h
+bsd/sys/paths.h
+bsd/sys/persona.h
+bsd/sys/pgo.h
+bsd/sys/pipe.h
+bsd/sys/posix_sem.h
+bsd/sys/posix_shm.h
+bsd/sys/priv.h
+bsd/sys/proc.h
+bsd/sys/proc_info.h
+bsd/sys/proc_internal.h
+bsd/sys/protosw.h
+bsd/sys/pthread_internal.h
+bsd/sys/pthread_shims.h
+bsd/sys/queue.h
+bsd/sys/quota.h
+bsd/sys/random.h
+bsd/sys/reason.h
+bsd/sys/resource.h
+bsd/sys/resourcevar.h
+bsd/sys/sbuf.h
+bsd/sys/select.h
+bsd/sys/sem.h
+bsd/sys/sem_internal.h
+bsd/sys/semaphore.h
+bsd/sys/shm.h
+bsd/sys/shm_internal.h
+bsd/sys/signal.h
+bsd/sys/signalvar.h
+bsd/sys/socket.h
+bsd/sys/socketvar.h
+bsd/sys/sockio.h
+bsd/sys/spawn.h
+bsd/sys/spawn_internal.h
+bsd/sys/stackshot.h
+bsd/sys/stat.h
+bsd/sys/stdio.h
+bsd/sys/sys_domain.h
+bsd/sys/syscall.h
+bsd/sys/sysctl.h
+bsd/sys/syslimits.h
+bsd/sys/syslog.h
+bsd/sys/sysproto.h
+bsd/sys/systm.h
+bsd/sys/termios.h
+bsd/sys/time.h
+bsd/sys/tree.h
+bsd/sys/tty.h
+bsd/sys/ttychars.h
+bsd/sys/ttycom.h
+bsd/sys/ttydefaults.h
+bsd/sys/ttydev.h
+bsd/sys/types.h
+bsd/sys/ubc.h
+bsd/sys/ucontext.h
+bsd/sys/ucred.h
+bsd/sys/uio.h
+bsd/sys/uio_internal.h
+bsd/sys/ulock.h
+bsd/sys/un.h
+bsd/sys/unistd.h
+bsd/sys/unpcb.h
+bsd/sys/user.h
+bsd/sys/utfconv.h
+bsd/sys/vfs_context.h
+bsd/sys/vm.h
+bsd/sys/vmmeter.h
+bsd/sys/vmparam.h
+bsd/sys/vnode.h
+bsd/sys/vnode_if.h
+bsd/sys/vnode_internal.h
+bsd/sys/wait.h
+bsd/sys/xattr.h
+bsd/uuid/uuid.h
+bsd/vfs/vfs_support.h
+bsd/vm/vnode_pager.h
+bsm/audit.h
+bsm/audit_domain.h
+bsm/audit_errno.h
+bsm/audit_fcntl.h
+bsm/audit_internal.h
+bsm/audit_kevents.h
+bsm/audit_record.h
+bsm/audit_socket_type.h
+checkint.h
+complex.h
+configuration_profile.h
+copyfile.h
+corecrypto/cc.h
+corecrypto/cc_config.h
+corecrypto/cc_debug.h
+corecrypto/cc_macros.h
+corecrypto/cc_priv.h
+corecrypto/ccaes.h
+corecrypto/ccasn1.h
+corecrypto/cccmac.h
+corecrypto/ccder.h
+corecrypto/ccdes.h
+corecrypto/ccdigest.h
+corecrypto/ccdigest_priv.h
+corecrypto/ccdrbg.h
+corecrypto/ccdrbg_impl.h
+corecrypto/cchmac.h
+corecrypto/ccmd5.h
+corecrypto/ccmode.h
+corecrypto/ccmode_factory.h
+corecrypto/ccmode_impl.h
+corecrypto/ccmode_siv.h
+corecrypto/ccn.h
+corecrypto/ccpad.h
+corecrypto/ccpbkdf2.h
+corecrypto/ccrc4.h
+corecrypto/ccrng.h
+corecrypto/ccrng_system.h
+corecrypto/ccrsa.h
+corecrypto/ccsha1.h
+corecrypto/ccsha2.h
+corecrypto/cczp.h
+corpses/task_corpse.h
+cpio.h
+crt_externs.h
+ctype.h
+curses.h
+cursesapp.h
+cursesf.h
+cursesm.h
+cursesp.h
+cursesw.h
+cursslk.h
+db.h
+default_pager/default_pager_types.h
+device/device.defs
+device/device_port.h
+device/device_types.defs
+device/device_types.h
+dirent.h
+disktab.h
+dispatch/base.h
+dispatch/benchmark.h
+dispatch/block.h
+dispatch/data.h
+dispatch/data_private.h
+dispatch/dispatch.h
+dispatch/group.h
+dispatch/introspection.h
+dispatch/introspection_private.h
+dispatch/io.h
+dispatch/io_private.h
+dispatch/layout_private.h
+dispatch/mach_private.h
+dispatch/object.h
+dispatch/once.h
+dispatch/private.h
+dispatch/queue.h
+dispatch/queue_private.h
+dispatch/semaphore.h
+dispatch/source.h
+dispatch/source_private.h
+dispatch/time.h
+dlfcn.h
+dns.h
+dns_sd.h
+dns_util.h
+err.h
+errno.h
+eti.h
+etip.h
+execinfo.h
+fcntl.h
+fenv.h
+fmtmsg.h
+fnmatch.h
+form.h
+fsproperties.h
+fstab.h
+fts.h
+ftw.h
+get_compat.h
+gethostuuid.h
+gethostuuid_private.h
+getopt.h
+glob.h
+grp.h
+hfs/BTreeScanner.h
+hfs/BTreesInternal.h
+hfs/BTreesPrivate.h
+hfs/CatalogPrivate.h
+hfs/FileMgrInternal.h
+hfs/HFSUnicodeWrappers.h
+hfs/UCStringCompareData.h
+hfs/hfs.h
+hfs/hfs_alloc_trace.h
+hfs/hfs_attrlist.h
+hfs/hfs_btreeio.h
+hfs/hfs_catalog.h
+hfs/hfs_cnode.h
+hfs/hfs_cprotect.h
+hfs/hfs_dbg.h
+hfs/hfs_endian.h
+hfs/hfs_extents.h
+hfs/hfs_format.h
+hfs/hfs_fsctl.h
+hfs/hfs_hotfiles.h
+hfs/hfs_iokit.h
+hfs/hfs_journal.h
+hfs/hfs_kdebug.h
+hfs/hfs_key_roll.h
+hfs/hfs_macos_defs.h
+hfs/hfs_mount.h
+hfs/hfs_quota.h
+hfs/hfs_unistr.h
+hfs/kext-config.h
+hfs/rangelist.h
+i386/_limits.h
+i386/_mcontext.h
+i386/_param.h
+i386/_types.h
+i386/eflags.h
+i386/endian.h
+i386/fasttrap_isa.h
+i386/limits.h
+i386/param.h
+i386/profile.h
+i386/signal.h
+i386/types.h
+i386/user_ldt.h
+i386/vmparam.h
+ifaddrs.h
+ils.h
+inttypes.h
+iokit/IOKit/AppleKeyStoreInterface.h
+iokit/IOKit/IOBSD.h
+iokit/IOKit/IOBufferMemoryDescriptor.h
+iokit/IOKit/IOCPU.h
+iokit/IOKit/IOCatalogue.h
+iokit/IOKit/IOCommand.h
+iokit/IOKit/IOCommandGate.h
+iokit/IOKit/IOCommandPool.h
+iokit/IOKit/IOCommandQueue.h
+iokit/IOKit/IOConditionLock.h
+iokit/IOKit/IODMACommand.h
+iokit/IOKit/IODMAController.h
+iokit/IOKit/IODMAEventSource.h
+iokit/IOKit/IODataQueue.h
+iokit/IOKit/IODataQueueShared.h
+iokit/IOKit/IODeviceMemory.h
+iokit/IOKit/IODeviceTreeSupport.h
+iokit/IOKit/IOEventSource.h
+iokit/IOKit/IOFilterInterruptEventSource.h
+iokit/IOKit/IOHibernatePrivate.h
+iokit/IOKit/IOInterleavedMemoryDescriptor.h
+iokit/IOKit/IOInterruptAccounting.h
+iokit/IOKit/IOInterruptController.h
+iokit/IOKit/IOInterruptEventSource.h
+iokit/IOKit/IOInterrupts.h
+iokit/IOKit/IOKernelReportStructs.h
+iokit/IOKit/IOKernelReporters.h
+iokit/IOKit/IOKitDebug.h
+iokit/IOKit/IOKitDiagnosticsUserClient.h
+iokit/IOKit/IOKitKeys.h
+iokit/IOKit/IOKitKeysPrivate.h
+iokit/IOKit/IOKitServer.h
+iokit/IOKit/IOLib.h
+iokit/IOKit/IOLocks.h
+iokit/IOKit/IOLocksPrivate.h
+iokit/IOKit/IOMapper.h
+iokit/IOKit/IOMemoryCursor.h
+iokit/IOKit/IOMemoryDescriptor.h
+iokit/IOKit/IOMessage.h
+iokit/IOKit/IOMultiMemoryDescriptor.h
+iokit/IOKit/IONVRAM.h
+iokit/IOKit/IONotifier.h
+iokit/IOKit/IOPlatformExpert.h
+iokit/IOKit/IOPolledInterface.h
+iokit/IOKit/IORangeAllocator.h
+iokit/IOKit/IORegistryEntry.h
+iokit/IOKit/IOReportMacros.h
+iokit/IOKit/IOReportTypes.h
+iokit/IOKit/IOReturn.h
+iokit/IOKit/IOService.h
+iokit/IOKit/IOServicePM.h
+iokit/IOKit/IOSharedDataQueue.h
+iokit/IOKit/IOSharedLock.h
+iokit/IOKit/IOStatistics.h
+iokit/IOKit/IOStatisticsPrivate.h
+iokit/IOKit/IOSubMemoryDescriptor.h
+iokit/IOKit/IOSyncer.h
+iokit/IOKit/IOTimeStamp.h
+iokit/IOKit/IOTimerEventSource.h
+iokit/IOKit/IOTypes.h
+iokit/IOKit/IOUserClient.h
+iokit/IOKit/IOWorkLoop.h
+iokit/IOKit/OSMessageNotification.h
+iokit/IOKit/assert.h
+iokit/IOKit/nvram/IONVRAMController.h
+iokit/IOKit/platform/AppleMacIO.h
+iokit/IOKit/platform/AppleMacIODevice.h
+iokit/IOKit/platform/AppleNMI.h
+iokit/IOKit/platform/ApplePlatformExpert.h
+iokit/IOKit/power/IOPwrController.h
+iokit/IOKit/pwr_mgt/IOPM.h
+iokit/IOKit/pwr_mgt/IOPMLibDefs.h
+iokit/IOKit/pwr_mgt/IOPMPowerSource.h
+iokit/IOKit/pwr_mgt/IOPMPowerSourceList.h
+iokit/IOKit/pwr_mgt/IOPMpowerState.h
+iokit/IOKit/pwr_mgt/IOPowerConnection.h
+iokit/IOKit/pwr_mgt/RootDomain.h
+iokit/IOKit/rtc/IORTCController.h
+iokit/IOKit/system.h
+iokit/IOKit/system_management/IOWatchDogTimer.h
+iso646.h
+kern/exc_resource.h
+kern/kcdata.h
+kern/kern_cdata.h
+kvbuf.h
+langinfo.h
+launch.h
+launch_internal.h
+launch_priv.h
+libc.h
+libc_private.h
+libgen.h
+libinfo.h
+libinfo_muser.h
+libkern/OSAtomic.h
+libkern/OSAtomicDeprecated.h
+libkern/OSAtomicQueue.h
+libkern/OSByteOrder.h
+libkern/OSCacheControl.h
+libkern/OSDebug.h
+libkern/OSKextLib.h
+libkern/OSReturn.h
+libkern/OSSpinLockDeprecated.h
+libkern/OSTypes.h
+libkern/_OSByteOrder.h
+libkern/firehose/chunk_private.h
+libkern/firehose/firehose_types_private.h
+libkern/firehose/ioctl_private.h
+libkern/firehose/tracepoint_private.h
+libkern/i386/OSByteOrder.h
+libkern/i386/_OSByteOrder.h
+libkern/libkern/OSAtomic.h
+libkern/libkern/OSBase.h
+libkern/libkern/OSByteOrder.h
+libkern/libkern/OSDebug.h
+libkern/libkern/OSKextLib.h
+libkern/libkern/OSKextLibPrivate.h
+libkern/libkern/OSMalloc.h
+libkern/libkern/OSReturn.h
+libkern/libkern/OSSerializeBinary.h
+libkern/libkern/OSTypes.h
+libkern/libkern/_OSByteOrder.h
+libkern/libkern/c++/OSArray.h
+libkern/libkern/c++/OSBoolean.h
+libkern/libkern/c++/OSCPPDebug.h
+libkern/libkern/c++/OSCollection.h
+libkern/libkern/c++/OSCollectionIterator.h
+libkern/libkern/c++/OSContainers.h
+libkern/libkern/c++/OSData.h
+libkern/libkern/c++/OSDictionary.h
+libkern/libkern/c++/OSEndianTypes.h
+libkern/libkern/c++/OSIterator.h
+libkern/libkern/c++/OSKext.h
+libkern/libkern/c++/OSLib.h
+libkern/libkern/c++/OSMetaClass.h
+libkern/libkern/c++/OSNumber.h
+libkern/libkern/c++/OSObject.h
+libkern/libkern/c++/OSOrderedSet.h
+libkern/libkern/c++/OSSerialize.h
+libkern/libkern/c++/OSSet.h
+libkern/libkern/c++/OSString.h
+libkern/libkern/c++/OSSymbol.h
+libkern/libkern/c++/OSUnserialize.h
+libkern/libkern/crypto/aes.h
+libkern/libkern/crypto/aesxts.h
+libkern/libkern/crypto/crypto_internal.h
+libkern/libkern/crypto/des.h
+libkern/libkern/crypto/md5.h
+libkern/libkern/crypto/rand.h
+libkern/libkern/crypto/register_crypto.h
+libkern/libkern/crypto/rsa.h
+libkern/libkern/crypto/sha1.h
+libkern/libkern/crypto/sha2.h
+libkern/libkern/i386/OSByteOrder.h
+libkern/libkern/i386/_OSByteOrder.h
+libkern/libkern/kernel_mach_header.h
+libkern/libkern/kext_request_keys.h
+libkern/libkern/kxld.h
+libkern/libkern/kxld_types.h
+libkern/libkern/locks.h
+libkern/libkern/machine/OSByteOrder.h
+libkern/libkern/mkext.h
+libkern/libkern/prelink.h
+libkern/libkern/section_keywords.h
+libkern/libkern/stack_protector.h
+libkern/libkern/sysctl.h
+libkern/libkern/tree.h
+libkern/libkern/version.h
+libkern/libkern/zconf.h
+libkern/libkern/zlib.h
+libkern/machine/OSByteOrder.h
+libkern/os/base.h
+libkern/os/log.h
+libkern/os/log_private.h
+libkern/os/object.h
+libkern/os/object_private.h
+libkern/os/overflow.h
+libkern/os/trace.h
+libproc.h
+libutil.h
+limits.h
+locale.h
+mach-o/arch.h
+mach-o/arm/reloc.h
+mach-o/arm64/reloc.h
+mach-o/dyld-interposing.h
+mach-o/dyld.h
+mach-o/dyld_gdb.h
+mach-o/dyld_images.h
+mach-o/dyld_priv.h
+mach-o/dyld_process_info.h
+mach-o/fat.h
+mach-o/getsect.h
+mach-o/hppa/reloc.h
+mach-o/hppa/swap.h
+mach-o/i386/swap.h
+mach-o/i860/reloc.h
+mach-o/i860/swap.h
+mach-o/ldsyms.h
+mach-o/loader.h
+mach-o/m68k/swap.h
+mach-o/m88k/reloc.h
+mach-o/m88k/swap.h
+mach-o/nlist.h
+mach-o/ppc/reloc.h
+mach-o/ppc/swap.h
+mach-o/ranlib.h
+mach-o/reloc.h
+mach-o/sparc/reloc.h
+mach-o/sparc/swap.h
+mach-o/stab.h
+mach-o/swap.h
+mach-o/x86_64/reloc.h
+mach/audit_triggers.defs
+mach/boolean.h
+mach/bootstrap.h
+mach/clock.defs
+mach/clock.h
+mach/clock_priv.defs
+mach/clock_priv.h
+mach/clock_reply.defs
+mach/clock_reply.h
+mach/clock_types.defs
+mach/clock_types.h
+mach/dyld_kernel.h
+mach/error.h
+mach/exc.defs
+mach/exc.h
+mach/exception.h
+mach/exception_types.h
+mach/host_info.h
+mach/host_notify.h
+mach/host_notify_reply.defs
+mach/host_priv.defs
+mach/host_priv.h
+mach/host_reboot.h
+mach/host_security.defs
+mach/host_security.h
+mach/host_special_ports.h
+mach/i386/_structs.h
+mach/i386/asm.h
+mach/i386/boolean.h
+mach/i386/exception.h
+mach/i386/fp_reg.h
+mach/i386/kern_return.h
+mach/i386/ndr_def.h
+mach/i386/processor_info.h
+mach/i386/rpc.h
+mach/i386/sdt_isa.h
+mach/i386/thread_state.h
+mach/i386/thread_status.h
+mach/i386/vm_param.h
+mach/i386/vm_types.h
+mach/kern_return.h
+mach/kmod.h
+mach/lock_set.defs
+mach/lock_set.h
+mach/mach.h
+mach/mach_error.h
+mach/mach_exc.defs
+mach/mach_host.defs
+mach/mach_host.h
+mach/mach_init.h
+mach/mach_interface.h
+mach/mach_param.h
+mach/mach_port.defs
+mach/mach_port.h
+mach/mach_port_internal.h
+mach/mach_syscalls.h
+mach/mach_time.h
+mach/mach_traps.h
+mach/mach_types.defs
+mach/mach_types.h
+mach/mach_vm.defs
+mach/mach_vm.h
+mach/mach_vm_internal.h
+mach/mach_voucher.defs
+mach/mach_voucher.h
+mach/mach_voucher_attr_control.defs
+mach/mach_voucher_types.h
+mach/machine.h
+mach/machine/asm.h
+mach/machine/boolean.h
+mach/machine/exception.h
+mach/machine/kern_return.h
+mach/machine/machine_types.defs
+mach/machine/ndr_def.h
+mach/machine/processor_info.h
+mach/machine/rpc.h
+mach/machine/sdt.h
+mach/machine/sdt_isa.h
+mach/machine/thread_state.h
+mach/machine/thread_status.h
+mach/machine/vm_param.h
+mach/machine/vm_types.h
+mach/memory_object_types.h
+mach/message.h
+mach/mig.h
+mach/mig_errors.h
+mach/mig_strncpy_zerofill_support.h
+mach/mig_voucher_support.h
+mach/ndr.h
+mach/notify.defs
+mach/notify.h
+mach/policy.h
+mach/port.h
+mach/port_obj.h
+mach/processor.defs
+mach/processor.h
+mach/processor_info.h
+mach/processor_set.defs
+mach/processor_set.h
+mach/rpc.h
+mach/sdt.h
+mach/semaphore.h
+mach/shared_memory_server.h
+mach/shared_region.h
+mach/std_types.defs
+mach/std_types.h
+mach/sync.h
+mach/sync_policy.h
+mach/task.defs
+mach/task.h
+mach/task_access.defs
+mach/task_info.h
+mach/task_policy.h
+mach/task_special_ports.h
+mach/telemetry_notification.defs
+mach/thread_act.defs
+mach/thread_act.h
+mach/thread_act_internal.h
+mach/thread_info.h
+mach/thread_policy.h
+mach/thread_special_ports.h
+mach/thread_state.h
+mach/thread_status.h
+mach/thread_switch.h
+mach/time_value.h
+mach/vm_attributes.h
+mach/vm_behavior.h
+mach/vm_inherit.h
+mach/vm_map.defs
+mach/vm_map.h
+mach/vm_map_internal.h
+mach/vm_page_size.h
+mach/vm_param.h
+mach/vm_prot.h
+mach/vm_purgable.h
+mach/vm_region.h
+mach/vm_statistics.h
+mach/vm_sync.h
+mach/vm_task.h
+mach/vm_types.h
+mach_debug/hash_info.h
+mach_debug/ipc_info.h
+mach_debug/lockgroup_info.h
+mach_debug/mach_debug.h
+mach_debug/mach_debug_types.defs
+mach_debug/mach_debug_types.h
+mach_debug/page_info.h
+mach_debug/vm_info.h
+mach_debug/zone_info.h
+machine/_limits.h
+machine/_mcontext.h
+machine/_param.h
+machine/_types.h
+machine/byte_order.h
+machine/endian.h
+machine/fasttrap_isa.h
+machine/limits.h
+machine/param.h
+machine/profile.h
+machine/signal.h
+machine/types.h
+machine/vmparam.h
+malloc/malloc.h
+math.h
+membership.h
+membershipPriv.h
+memory.h
+menu.h
+miscfs/devfs/devfs.h
+miscfs/specfs/specdev.h
+miscfs/union/union.h
+mntopts.h
+monetary.h
+monitor.h
+mpool.h
+msgcat.h
+nameser.h
+nc_tparm.h
+ncurses_dll.h
+ndbm.h
+net/bpf.h
+net/dlil.h
+net/ethernet.h
+net/if.h
+net/if_arp.h
+net/if_dl.h
+net/if_llc.h
+net/if_media.h
+net/if_mib.h
+net/if_types.h
+net/if_utun.h
+net/if_var.h
+net/kext_net.h
+net/ndrv.h
+net/net_kev.h
+net/pfkeyv2.h
+net/route.h
+netdb.h
+netdb_async.h
+netinet/bootp.h
+netinet/icmp6.h
+netinet/icmp_var.h
+netinet/if_ether.h
+netinet/igmp.h
+netinet/igmp_var.h
+netinet/in.h
+netinet/in_pcb.h
+netinet/in_systm.h
+netinet/in_var.h
+netinet/ip.h
+netinet/ip6.h
+netinet/ip_icmp.h
+netinet/ip_var.h
+netinet/tcp.h
+netinet/tcp_fsm.h
+netinet/tcp_seq.h
+netinet/tcp_timer.h
+netinet/tcp_var.h
+netinet/tcpip.h
+netinet/udp.h
+netinet/udp_var.h
+netinet6/ah.h
+netinet6/esp.h
+netinet6/in6.h
+netinet6/in6_var.h
+netinet6/ipcomp.h
+netinet6/ipsec.h
+netinet6/nd6.h
+netinet6/raw_ip6.h
+netinet6/scope6_var.h
+netkey/keysock.h
+nfs/krpc.h
+nfs/nfs.h
+nfs/nfs_gss.h
+nfs/nfs_ioctl.h
+nfs/nfs_lock.h
+nfs/nfsdiskless.h
+nfs/nfsm_subs.h
+nfs/nfsmount.h
+nfs/nfsnode.h
+nfs/nfsproto.h
+nfs/nfsrvcache.h
+nfs/rpcv2.h
+nfs/xdr_subs.h
+nl_types.h
+nlist.h
+notify.h
+notify_keys.h
+ntsid.h
+objc-shared-cache.h
+os/activity.h
+os/alloc_once_impl.h
+os/assumes.h
+os/availability.h
+os/base.h
+os/base_private.h
+os/debug_private.h
+os/internal/atomic.h
+os/internal/crashlog.h
+os/internal/internal_shared.h
+os/lock.h
+os/lock_private.h
+os/log.h
+os/object.h
+os/object_private.h
+os/once_private.h
+os/overflow.h
+os/semaphore_private.h
+os/trace.h
+os/tsd.h
+os/voucher_activity_private.h
+os/voucher_private.h
+osfmk/UserNotification/KUNCUserNotifications.h
+osfmk/UserNotification/UNDReply.defs
+osfmk/UserNotification/UNDRequest.defs
+osfmk/UserNotification/UNDTypes.defs
+osfmk/UserNotification/UNDTypes.h
+osfmk/atm/atm_internal.h
+osfmk/atm/atm_notification.defs
+osfmk/atm/atm_types.defs
+osfmk/atm/atm_types.h
+osfmk/bank/bank_types.h
+osfmk/console/video_console.h
+osfmk/corpses/task_corpse.h
+osfmk/default_pager/default_pager_types.h
+osfmk/device/device.defs
+osfmk/device/device_port.h
+osfmk/device/device_types.defs
+osfmk/device/device_types.h
+osfmk/gssd/gssd_mach.defs
+osfmk/gssd/gssd_mach.h
+osfmk/gssd/gssd_mach_types.h
+osfmk/i386/apic.h
+osfmk/i386/asm.h
+osfmk/i386/atomic.h
+osfmk/i386/bit_routines.h
+osfmk/i386/cpu_capabilities.h
+osfmk/i386/cpu_data.h
+osfmk/i386/cpu_number.h
+osfmk/i386/cpu_topology.h
+osfmk/i386/cpuid.h
+osfmk/i386/eflags.h
+osfmk/i386/io_map_entries.h
+osfmk/i386/lapic.h
+osfmk/i386/lock.h
+osfmk/i386/locks.h
+osfmk/i386/machine_cpu.h
+osfmk/i386/machine_routines.h
+osfmk/i386/mp.h
+osfmk/i386/mp_desc.h
+osfmk/i386/mp_events.h
+osfmk/i386/mtrr.h
+osfmk/i386/pal_hibernate.h
+osfmk/i386/pal_native.h
+osfmk/i386/pal_routines.h
+osfmk/i386/panic_hooks.h
+osfmk/i386/pmCPU.h
+osfmk/i386/pmap.h
+osfmk/i386/proc_reg.h
+osfmk/i386/rtclock_protos.h
+osfmk/i386/seg.h
+osfmk/i386/simple_lock.h
+osfmk/i386/smp.h
+osfmk/i386/tsc.h
+osfmk/i386/tss.h
+osfmk/i386/ucode.h
+osfmk/i386/vmx.h
+osfmk/ipc/ipc_types.h
+osfmk/kdp/kdp_callout.h
+osfmk/kdp/kdp_dyld.h
+osfmk/kdp/kdp_en_debugger.h
+osfmk/kern/affinity.h
+osfmk/kern/assert.h
+osfmk/kern/audit_sessionport.h
+osfmk/kern/backtrace.h
+osfmk/kern/bits.h
+osfmk/kern/block_hint.h
+osfmk/kern/call_entry.h
+osfmk/kern/clock.h
+osfmk/kern/coalition.h
+osfmk/kern/cpu_data.h
+osfmk/kern/cpu_number.h
+osfmk/kern/debug.h
+osfmk/kern/ecc.h
+osfmk/kern/energy_perf.h
+osfmk/kern/exc_resource.h
+osfmk/kern/extmod_statistics.h
+osfmk/kern/host.h
+osfmk/kern/hv_support.h
+osfmk/kern/ipc_mig.h
+osfmk/kern/ipc_misc.h
+osfmk/kern/kalloc.h
+osfmk/kern/kcdata.h
+osfmk/kern/kern_cdata.h
+osfmk/kern/kern_types.h
+osfmk/kern/kext_alloc.h
+osfmk/kern/kpc.h
+osfmk/kern/ledger.h
+osfmk/kern/lock.h
+osfmk/kern/locks.h
+osfmk/kern/mach_param.h
+osfmk/kern/macro_help.h
+osfmk/kern/page_decrypt.h
+osfmk/kern/pms.h
+osfmk/kern/policy_internal.h
+osfmk/kern/processor.h
+osfmk/kern/queue.h
+osfmk/kern/sched_prim.h
+osfmk/kern/sfi.h
+osfmk/kern/simple_lock.h
+osfmk/kern/startup.h
+osfmk/kern/task.h
+osfmk/kern/telemetry.h
+osfmk/kern/thread.h
+osfmk/kern/thread_call.h
+osfmk/kern/timer_call.h
+osfmk/kern/waitq.h
+osfmk/kern/zalloc.h
+osfmk/kextd/kextd_mach.defs
+osfmk/kextd/kextd_mach.h
+osfmk/kperf/action.h
+osfmk/kperf/context.h
+osfmk/kperf/kdebug_trigger.h
+osfmk/kperf/kperf.h
+osfmk/kperf/kperf_timer.h
+osfmk/kperf/kperfbsd.h
+osfmk/kperf/pet.h
+osfmk/lockd/lockd_mach.defs
+osfmk/lockd/lockd_mach.h
+osfmk/lockd/lockd_mach_types.h
+osfmk/mach/audit_triggers.defs
+osfmk/mach/audit_triggers_server.h
+osfmk/mach/boolean.h
+osfmk/mach/branch_predicates.h
+osfmk/mach/clock.defs
+osfmk/mach/clock.h
+osfmk/mach/clock_priv.defs
+osfmk/mach/clock_priv.h
+osfmk/mach/clock_reply.defs
+osfmk/mach/clock_reply_server.h
+osfmk/mach/clock_types.defs
+osfmk/mach/clock_types.h
+osfmk/mach/coalition.h
+osfmk/mach/coalition_notification_server.h
+osfmk/mach/dyld_kernel.h
+osfmk/mach/error.h
+osfmk/mach/exc.defs
+osfmk/mach/exc_server.h
+osfmk/mach/exception.h
+osfmk/mach/exception_types.h
+osfmk/mach/host_info.h
+osfmk/mach/host_notify.h
+osfmk/mach/host_notify_reply.defs
+osfmk/mach/host_priv.defs
+osfmk/mach/host_priv.h
+osfmk/mach/host_reboot.h
+osfmk/mach/host_security.defs
+osfmk/mach/host_security.h
+osfmk/mach/host_special_ports.h
+osfmk/mach/i386/_structs.h
+osfmk/mach/i386/asm.h
+osfmk/mach/i386/boolean.h
+osfmk/mach/i386/exception.h
+osfmk/mach/i386/fp_reg.h
+osfmk/mach/i386/kern_return.h
+osfmk/mach/i386/ndr_def.h
+osfmk/mach/i386/processor_info.h
+osfmk/mach/i386/rpc.h
+osfmk/mach/i386/sdt_isa.h
+osfmk/mach/i386/syscall_sw.h
+osfmk/mach/i386/thread_state.h
+osfmk/mach/i386/thread_status.h
+osfmk/mach/i386/vm_param.h
+osfmk/mach/i386/vm_types.h
+osfmk/mach/kern_return.h
+osfmk/mach/kmod.h
+osfmk/mach/ktrace_background.h
+osfmk/mach/lock_set.defs
+osfmk/mach/lock_set.h
+osfmk/mach/mach_exc.defs
+osfmk/mach/mach_exc_server.h
+osfmk/mach/mach_host.defs
+osfmk/mach/mach_host.h
+osfmk/mach/mach_interface.h
+osfmk/mach/mach_param.h
+osfmk/mach/mach_port.defs
+osfmk/mach/mach_port.h
+osfmk/mach/mach_syscalls.h
+osfmk/mach/mach_time.h
+osfmk/mach/mach_traps.h
+osfmk/mach/mach_types.defs
+osfmk/mach/mach_types.h
+osfmk/mach/mach_vm.defs
+osfmk/mach/mach_vm.h
+osfmk/mach/mach_voucher.defs
+osfmk/mach/mach_voucher.h
+osfmk/mach/mach_voucher_attr_control.defs
+osfmk/mach/mach_voucher_attr_control.h
+osfmk/mach/mach_voucher_types.h
+osfmk/mach/machine.h
+osfmk/mach/machine/asm.h
+osfmk/mach/machine/boolean.h
+osfmk/mach/machine/exception.h
+osfmk/mach/machine/kern_return.h
+osfmk/mach/machine/machine_types.defs
+osfmk/mach/machine/ndr_def.h
+osfmk/mach/machine/processor_info.h
+osfmk/mach/machine/rpc.h
+osfmk/mach/machine/sdt.h
+osfmk/mach/machine/sdt_isa.h
+osfmk/mach/machine/syscall_sw.h
+osfmk/mach/machine/thread_state.h
+osfmk/mach/machine/thread_status.h
+osfmk/mach/machine/vm_param.h
+osfmk/mach/machine/vm_types.h
+osfmk/mach/memory_object_control.h
+osfmk/mach/memory_object_default_server.h
+osfmk/mach/memory_object_types.h
+osfmk/mach/message.h
+osfmk/mach/mig.h
+osfmk/mach/mig_errors.h
+osfmk/mach/mig_strncpy_zerofill_support.h
+osfmk/mach/mig_voucher_support.h
+osfmk/mach/ndr.h
+osfmk/mach/notify.defs
+osfmk/mach/notify.h
+osfmk/mach/notify_server.h
+osfmk/mach/policy.h
+osfmk/mach/port.h
+osfmk/mach/processor.defs
+osfmk/mach/processor.h
+osfmk/mach/processor_info.h
+osfmk/mach/processor_set.defs
+osfmk/mach/processor_set.h
+osfmk/mach/resource_monitors.h
+osfmk/mach/rpc.h
+osfmk/mach/sdt.h
+osfmk/mach/semaphore.h
+osfmk/mach/sfi_class.h
+osfmk/mach/shared_memory_server.h
+osfmk/mach/shared_region.h
+osfmk/mach/std_types.defs
+osfmk/mach/std_types.h
+osfmk/mach/sync_policy.h
+osfmk/mach/syscall_sw.h
+osfmk/mach/sysdiagnose_notification_server.h
+osfmk/mach/task.defs
+osfmk/mach/task.h
+osfmk/mach/task_access.defs
+osfmk/mach/task_access.h
+osfmk/mach/task_access_server.h
+osfmk/mach/task_info.h
+osfmk/mach/task_policy.h
+osfmk/mach/task_special_ports.h
+osfmk/mach/telemetry_notification.defs
+osfmk/mach/telemetry_notification_server.h
+osfmk/mach/thread_act.defs
+osfmk/mach/thread_act.h
+osfmk/mach/thread_info.h
+osfmk/mach/thread_policy.h
+osfmk/mach/thread_special_ports.h
+osfmk/mach/thread_status.h
+osfmk/mach/thread_switch.h
+osfmk/mach/time_value.h
+osfmk/mach/upl.h
+osfmk/mach/vm_attributes.h
+osfmk/mach/vm_behavior.h
+osfmk/mach/vm_inherit.h
+osfmk/mach/vm_map.defs
+osfmk/mach/vm_map.h
+osfmk/mach/vm_param.h
+osfmk/mach/vm_prot.h
+osfmk/mach/vm_purgable.h
+osfmk/mach/vm_region.h
+osfmk/mach/vm_statistics.h
+osfmk/mach/vm_sync.h
+osfmk/mach/vm_types.h
+osfmk/mach_debug/hash_info.h
+osfmk/mach_debug/ipc_info.h
+osfmk/mach_debug/lockgroup_info.h
+osfmk/mach_debug/mach_debug.h
+osfmk/mach_debug/mach_debug_types.defs
+osfmk/mach_debug/mach_debug_types.h
+osfmk/mach_debug/page_info.h
+osfmk/mach_debug/vm_info.h
+osfmk/mach_debug/zone_info.h
+osfmk/machine/atomic.h
+osfmk/machine/cpu_capabilities.h
+osfmk/machine/cpu_number.h
+osfmk/machine/io_map_entries.h
+osfmk/machine/lock.h
+osfmk/machine/locks.h
+osfmk/machine/machine_cpuid.h
+osfmk/machine/machine_kpc.h
+osfmk/machine/machine_routines.h
+osfmk/machine/pal_hibernate.h
+osfmk/machine/pal_routines.h
+osfmk/machine/simple_lock.h
+osfmk/prng/random.h
+osfmk/string.h
+osfmk/vm/WKdm_new.h
+osfmk/vm/pmap.h
+osfmk/vm/vm_compressor_algorithms.h
+osfmk/vm/vm_fault.h
+osfmk/vm/vm_kern.h
+osfmk/vm/vm_map.h
+osfmk/vm/vm_options.h
+osfmk/vm/vm_pageout.h
+osfmk/vm/vm_protos.h
+osfmk/vm/vm_shared_region.h
+osfmk/voucher/ipc_pthread_priority_types.h
+osfmk/x86_64/machine_kpc.h
+panel.h
+paths.h
+pexpert/boot.h
+pexpert/i386/boot.h
+pexpert/i386/efi.h
+pexpert/i386/protos.h
+pexpert/machine/boot.h
+pexpert/machine/protos.h
+pexpert/pexpert.h
+pexpert/pexpert/boot.h
+pexpert/pexpert/device_tree.h
+pexpert/pexpert/i386/boot.h
+pexpert/pexpert/i386/efi.h
+pexpert/pexpert/i386/protos.h
+pexpert/pexpert/machine/boot.h
+pexpert/pexpert/machine/protos.h
+pexpert/pexpert/pexpert.h
+pexpert/pexpert/protos.h
+pexpert/protos.h
+platform/compat.h
+platform/introspection_private.h
+platform/string.h
+poll.h
+printerdb.h
+printf.h
+protocols/routed.h
+protocols/rwhod.h
+protocols/talkd.h
+protocols/timed.h
+pthread.h
+pthread/introspection.h
+pthread/pthread.h
+pthread/pthread_impl.h
+pthread/pthread_spis.h
+pthread/qos.h
+pthread/sched.h
+pthread/spawn.h
+pthread_impl.h
+pthread_spis.h
+pthread_workqueue.h
+pwd.h
+ranlib.h
+readpassphrase.h
+reboot2.h
+regex.h
+removefile.h
+resolv.h
+rpc/auth.h
+rpc/auth_unix.h
+rpc/clnt.h
+rpc/pmap_clnt.h
+rpc/pmap_prot.h
+rpc/pmap_rmt.h
+rpc/rpc.h
+rpc/rpc_msg.h
+rpc/svc.h
+rpc/svc_auth.h
+rpc/types.h
+rpc/xdr.h
+rpcsvc/yp_prot.h
+rpcsvc/ypclnt.h
+runetype.h
+sched.h
+search.h
+secure/_common.h
+secure/_stdio.h
+secure/_string.h
+security/audit/audit_ioctl.h
+security/mac.h
+security/mac_policy.h
+security/security/_label.h
+security/security/mac.h
+security/security/mac_alloc.h
+security/security/mac_data.h
+security/security/mac_framework.h
+security/security/mac_internal.h
+security/security/mac_mach_internal.h
+security/security/mac_policy.h
+semaphore.h
+servers/bootstrap.h
+servers/bootstrap_defs.h
+servers/key_defs.h
+servers/ls_defs.h
+servers/netname.h
+servers/netname_defs.h
+servers/nm_defs.h
+setjmp.h
+sgtty.h
+si_data.h
+si_module.h
+signal.h
+spawn.h
+stab.h
+standards.h
+stdarg.h
+stddef.h
+stdint.h
+stdio.h
+stdlib.h
+strhash.h
+string.h
+stringlist.h
+strings.h
+struct.h
+sys/_endian.h
+sys/_posix_availability.h
+sys/_pthread/_pthread_attr_t.h
+sys/_pthread/_pthread_cond_t.h
+sys/_pthread/_pthread_condattr_t.h
+sys/_pthread/_pthread_key_t.h
+sys/_pthread/_pthread_mutex_t.h
+sys/_pthread/_pthread_mutexattr_t.h
+sys/_pthread/_pthread_once_t.h
+sys/_pthread/_pthread_rwlock_t.h
+sys/_pthread/_pthread_rwlockattr_t.h
+sys/_pthread/_pthread_t.h
+sys/_pthread/_pthread_types.h
+sys/_select.h
+sys/_structs.h
+sys/_symbol_aliasing.h
+sys/_types.h
+sys/_types/_blkcnt_t.h
+sys/_types/_blksize_t.h
+sys/_types/_clock_t.h
+sys/_types/_ct_rune_t.h
+sys/_types/_dev_t.h
+sys/_types/_errno_t.h
+sys/_types/_fd_clr.h
+sys/_types/_fd_copy.h
+sys/_types/_fd_def.h
+sys/_types/_fd_isset.h
+sys/_types/_fd_set.h
+sys/_types/_fd_setsize.h
+sys/_types/_fd_zero.h
+sys/_types/_filesec_t.h
+sys/_types/_fsblkcnt_t.h
+sys/_types/_fsfilcnt_t.h
+sys/_types/_fsid_t.h
+sys/_types/_fsobj_id_t.h
+sys/_types/_gid_t.h
+sys/_types/_guid_t.h
+sys/_types/_id_t.h
+sys/_types/_in_addr_t.h
+sys/_types/_in_port_t.h
+sys/_types/_ino64_t.h
+sys/_types/_ino_t.h
+sys/_types/_int16_t.h
+sys/_types/_int32_t.h
+sys/_types/_int64_t.h
+sys/_types/_int8_t.h
+sys/_types/_intptr_t.h
+sys/_types/_iovec_t.h
+sys/_types/_key_t.h
+sys/_types/_mach_port_t.h
+sys/_types/_mbstate_t.h
+sys/_types/_mode_t.h
+sys/_types/_nlink_t.h
+sys/_types/_null.h
+sys/_types/_o_dsync.h
+sys/_types/_o_sync.h
+sys/_types/_off_t.h
+sys/_types/_offsetof.h
+sys/_types/_os_inline.h
+sys/_types/_pid_t.h
+sys/_types/_posix_vdisable.h
+sys/_types/_pthread_attr_t.h
+sys/_types/_pthread_cond_t.h
+sys/_types/_pthread_condattr_t.h
+sys/_types/_pthread_key_t.h
+sys/_types/_pthread_mutex_t.h
+sys/_types/_pthread_mutexattr_t.h
+sys/_types/_pthread_once_t.h
+sys/_types/_pthread_rwlock_t.h
+sys/_types/_pthread_rwlockattr_t.h
+sys/_types/_pthread_t.h
+sys/_types/_pthread_types.h
+sys/_types/_ptrdiff_t.h
+sys/_types/_rsize_t.h
+sys/_types/_rune_t.h
+sys/_types/_s_ifmt.h
+sys/_types/_sa_family_t.h
+sys/_types/_seek_set.h
+sys/_types/_sigaltstack.h
+sys/_types/_sigset_t.h
+sys/_types/_size_t.h
+sys/_types/_socklen_t.h
+sys/_types/_ssize_t.h
+sys/_types/_suseconds_t.h
+sys/_types/_time_t.h
+sys/_types/_timespec.h
+sys/_types/_timeval.h
+sys/_types/_timeval32.h
+sys/_types/_timeval64.h
+sys/_types/_u_int16_t.h
+sys/_types/_u_int32_t.h
+sys/_types/_u_int64_t.h
+sys/_types/_u_int8_t.h
+sys/_types/_ucontext.h
+sys/_types/_ucontext64.h
+sys/_types/_uid_t.h
+sys/_types/_uintptr_t.h
+sys/_types/_useconds_t.h
+sys/_types/_uuid_t.h
+sys/_types/_va_list.h
+sys/_types/_wchar_t.h
+sys/_types/_wint_t.h
+sys/acct.h
+sys/acl.h
+sys/aio.h
+sys/appleapiopts.h
+sys/attr.h
+sys/buf.h
+sys/cdefs.h
+sys/clonefile.h
+sys/conf.h
+sys/dir.h
+sys/dirent.h
+sys/disk.h
+sys/dkstat.h
+sys/domain.h
+sys/dtrace.h
+sys/dtrace_glue.h
+sys/dtrace_impl.h
+sys/errno.h
+sys/ev.h
+sys/event.h
+sys/fasttrap.h
+sys/fasttrap_isa.h
+sys/fcntl.h
+sys/file.h
+sys/filedesc.h
+sys/filio.h
+sys/gmon.h
+sys/ioccom.h
+sys/ioctl.h
+sys/ioctl_compat.h
+sys/ipc.h
+sys/kauth.h
+sys/kdebug.h
+sys/kdebug_signpost.h
+sys/kern_control.h
+sys/kern_event.h
+sys/kernel.h
+sys/kernel_types.h
+sys/lctx.h
+sys/loadable_fs.h
+sys/lock.h
+sys/lockf.h
+sys/lockstat.h
+sys/malloc.h
+sys/mbuf.h
+sys/mman.h
+sys/mount.h
+sys/msg.h
+sys/msgbuf.h
+sys/netport.h
+sys/param.h
+sys/paths.h
+sys/pipe.h
+sys/poll.h
+sys/posix_sem.h
+sys/posix_shm.h
+sys/proc.h
+sys/proc_info.h
+sys/protosw.h
+sys/ptrace.h
+sys/qos.h
+sys/qos_private.h
+sys/queue.h
+sys/quota.h
+sys/random.h
+sys/rbtree.h
+sys/reboot.h
+sys/resource.h
+sys/resourcevar.h
+sys/sbuf.h
+sys/sdt.h
+sys/select.h
+sys/sem.h
+sys/semaphore.h
+sys/shm.h
+sys/signal.h
+sys/signalvar.h
+sys/socket.h
+sys/socketvar.h
+sys/sockio.h
+sys/spawn.h
+sys/stat.h
+sys/statvfs.h
+sys/stdio.h
+sys/sys_domain.h
+sys/syscall.h
+sys/sysctl.h
+sys/syslimits.h
+sys/syslog.h
+sys/termios.h
+sys/time.h
+sys/timeb.h
+sys/times.h
+sys/tprintf.h
+sys/trace.h
+sys/tty.h
+sys/ttychars.h
+sys/ttycom.h
+sys/ttydefaults.h
+sys/ttydev.h
+sys/types.h
+sys/ubc.h
+sys/ucontext.h
+sys/ucred.h
+sys/uio.h
+sys/un.h
+sys/unistd.h
+sys/unpcb.h
+sys/user.h
+sys/utfconv.h
+sys/utsname.h
+sys/vadvise.h
+sys/vcmd.h
+sys/vm.h
+sys/vmmeter.h
+sys/vmparam.h
+sys/vnioctl.h
+sys/vnode.h
+sys/vnode_if.h
+sys/vstat.h
+sys/wait.h
+sys/xattr.h
+sysexits.h
+syslog.h
+tar.h
+term.h
+term_entry.h
+termcap.h
+termios.h
+thread_data.h
+tic.h
+time.h
+timeconv.h
+ttyent.h
+tzfile.h
+tzlink.h
+tzlink_internal.h
+ucontext.h
+ulimit.h
+unctrl.h
+unistd.h
+util.h
+utime.h
+utmpx.h
+utmpx_thread.h
+uuid/uuid.h
+vfs/vfs_support.h
+vis.h
+voucher/ipc_pthread_priority_types.h
+vproc.h
+vproc_internal.h
+vproc_priv.h
+wchar.h
+wctype.h
+wipefs.h
+wordexp.h
+xlocale.h
+xlocale/__wctype.h
+xlocale/_ctype.h
+xlocale/_inttypes.h
+xlocale/_langinfo.h
+xlocale/_monetary.h
+xlocale/_regex.h
+xlocale/_stdio.h
+xlocale/_stdlib.h
+xlocale/_string.h
+xlocale/_time.h
+xlocale/_wchar.h
+xlocale/_wctype.h
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix
index 4855c532acb7..b4c28e23c142 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix
@@ -1,4 +1,4 @@
-{ lib, appleDerivation, fetchzip, bsdmake, perl, flex, yacc
+{ lib, appleDerivation, fetchzip, bsdmake, perl, flex, bison
 }:
 
 # this derivation sucks
@@ -16,7 +16,7 @@ let recentAdvCmds = fetchzip {
 };
 
 in appleDerivation {
-  nativeBuildInputs = [ bsdmake perl yacc flex ];
+  nativeBuildInputs = [ bsdmake perl bison flex ];
   buildInputs = [ flex ];
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix
index 5a3b17102161..74327bc4c428 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix
@@ -13,6 +13,24 @@ appleDerivation {
 
   DSTROOT = "$(out)";
 
+  appleHeaders = ''
+    architecture/alignment.h
+    architecture/byte_order.h
+    architecture/i386/alignment.h
+    architecture/i386/asm_help.h
+    architecture/i386/byte_order.h
+    architecture/i386/cpu.h
+    architecture/i386/desc.h
+    architecture/i386/fpu.h
+    architecture/i386/frame.h
+    architecture/i386/io.h
+    architecture/i386/pio.h
+    architecture/i386/reg_help.h
+    architecture/i386/sel.h
+    architecture/i386/table.h
+    architecture/i386/tss.h
+  '';
+
   meta = with lib; {
     maintainers = with maintainers; [ copumpkin ];
     platforms   = platforms.darwin;
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
index 27a7f7b3e7c5..800da92dae9d 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
@@ -1,29 +1,18 @@
-{ lib, appleDerivation, yacc, flex }:
+{ lib, stdenv, appleDerivation, bison, flex }:
 
 appleDerivation {
-  nativeBuildInputs = [ yacc flex ];
+  nativeBuildInputs = [ bison flex ];
 
   buildPhase = ''
     cd migcom.tproj
+
+    # redundant file, don't know why apple not removing it.
+    rm handler.c
+
     yacc -d parser.y
     flex --header-file=lexxer.yy.h -o lexxer.yy.c lexxer.l
 
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o error.o error.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o global.o global.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o handler.o header.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o header.o header.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o mig.o mig.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o routine.o routine.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o server.o server.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o statement.o statement.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o string.o string.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o type.o type.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o user.o user.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o utils.o utils.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o lexxer.yy.o lexxer.yy.c
-    cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o y.tab.o y.tab.c
-
-    cc -dead_strip -o migcom error.o global.o header.o mig.o routine.o server.o statement.o string.o type.o user.o utils.o lexxer.yy.o y.tab.o
+    cc -std=gnu99 -Os -dead_strip -DMIG_VERSION=\"$pname-$version\" -I. -o migcom *.c
   '';
 
   installPhase = ''
@@ -37,13 +26,9 @@ appleDerivation {
     cp migcom.1 $out/share/man/man1
 
     substituteInPlace $out/bin/mig \
-      --replace 'arch=`/usr/bin/arch`' 'arch=i386' \
+      --replace 'arch=`/usr/bin/arch`' 'arch=${stdenv.targetPlatform.darwinArch}' \
       --replace '/usr/bin/' "" \
       --replace '/bin/rmdir' "rmdir" \
       --replace 'C=''${MIGCC}' "C=cc"
   '';
-
-  meta = {
-    platforms = lib.platforms.darwin;
-  };
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix
index 12176fd526c8..234349315421 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix
@@ -1,6 +1,9 @@
 { lib, stdenv, fetchurl, fetchzip, pkgs }:
 
 let
+  macosPackages_11_0_1 = import ./macos-11.0.1.nix { inherit applePackage'; };
+  developerToolsPackages_11_3_1 = import ./developer-tools-11.3.1.nix { inherit applePackage'; };
+
   # This attrset can in theory be computed automatically, but for that to work nicely we need
   # import-from-derivation to work properly. Currently it's rather ugly when we try to bootstrap
   # a stdenv out of something like this. With some care we can probably get rid of this, but for
@@ -57,6 +60,9 @@ let
       libplatform   = "125";
       mDNSResponder = "625.41.2";
 
+      # IOKit contains a set of packages with different versions, so we don't have a general version
+      IOKit         = "";
+
       libutil       = "43";
       libunwind     = "35.3";
       Librpcsvc     = "26";
@@ -135,35 +141,65 @@ let
     };
   };
 
-  fetchApple = version: sha256: name: let
+  fetchApple' = pname: version: sha256: let
     # When cross-compiling, fetchurl depends on libiconv, resulting
     # in an infinite recursion without this. It's not clear why this
     # worked fine when not cross-compiling
-    fetch = if name == "libiconv"
+    fetch = if pname == "libiconv"
       then stdenv.fetchurlBoot
       else fetchurl;
   in fetch {
-    url = "http://www.opensource.apple.com/tarballs/${name}/${name}-${versions.${version}.${name}}.tar.gz";
+    url = "http://www.opensource.apple.com/tarballs/${pname}/${pname}-${version}.tar.gz";
     inherit sha256;
   };
 
-  appleDerivation_ = name: version: sha256: attrs: stdenv.mkDerivation ({
-    inherit version;
-    name = "${name}-${version}";
+  fetchApple = sdkName: sha256: pname: let
+    version = versions.${sdkName}.${pname};
+  in fetchApple' pname version sha256;
+
+  appleDerivation' = pname: version: sdkName: sha256: attrs: stdenv.mkDerivation ({
+    inherit pname version;
+
+    src = if attrs ? srcs then null else (fetchApple' pname version sha256);
+
     enableParallelBuilding = true;
-    meta = {
-      platforms = lib.platforms.darwin;
-    };
-  } // (if attrs ? srcs then {} else {
-    src  = fetchApple version sha256 name;
-  }) // attrs);
 
-  applePackage = namePath: version: sha256:
-    let
-      name = builtins.elemAt (lib.splitString "/" namePath) 0;
-      appleDerivation = appleDerivation_ name version sha256;
-      callPackage = pkgs.newScope (packages // pkgs.darwin // { inherit appleDerivation name version; });
-    in callPackage (./. + "/${namePath}");
+    # In rare cases, APPLE may drop some headers quietly on new release.
+    doInstallCheck = attrs ? appleHeaders;
+    passAsFile = [ "appleHeaders" ];
+    installCheckPhase = ''
+      cd $out/include
+
+      result=$(diff -u "$appleHeadersPath" <(find * -type f | sort) --label "Listed in appleHeaders" --label "Found in \$out/include" || true)
+
+      if [ -z "$result" ]; then
+        echo "Apple header list is matched."
+      else
+        echo >&2 "\
+      Apple header list is inconsistent, please ensure no header file is unexpectedly dropped.
+      $result
+      "
+        exit 1
+      fi
+    '';
+
+  } // attrs // {
+    meta = (with lib; {
+      platforms = platforms.darwin;
+      license = licenses.apsl20;
+    }) // (attrs.meta or {});
+  });
+
+  applePackage' = namePath: version: sdkName: sha256: let
+    pname = builtins.head (lib.splitString "/" namePath);
+    appleDerivation = appleDerivation' pname version sdkName sha256;
+    callPackage = pkgs.newScope (packages // pkgs.darwin // { inherit appleDerivation; });
+  in callPackage (./. + "/${namePath}");
+
+  applePackage = namePath: sdkName: sha256: let
+    pname = builtins.head (lib.splitString "/" namePath);
+    version = versions.${sdkName}.${pname};
+  in applePackage' namePath version sdkName sha256;
 
   IOKitSpecs = {
     IOAudioFamily                        = fetchApple "osx-10.10.5" "0ggq7za3iq8g02j16rj67prqhrw828jsw3ah3bxq8a1cvr55aqnq";
@@ -192,10 +228,10 @@ let
   # Only used for bootstrapping. It’s convenient because it was the last version to come with a real makefile.
   adv_cmds-boot = applePackage "adv_cmds/boot.nix" "osx-10.5.8" "102ssayxbg9wb35mdmhswbnw0bg7js3pfd8fcbic83c5q3bqa6c6" {};
 
-  packages = {
+  # TODO: shorten this list, we should cut down to a minimum set of bootstrap or necessary packages here.
+  stubPackages = {
     inherit (adv_cmds-boot) ps locale;
     architecture    = applePackage "architecture"      "osx-10.11.6"     "1pbpjcd7is69hn8y29i98ci0byik826if8gnp824ha92h90w0fq3" {};
-    bootstrap_cmds  = applePackage "bootstrap_cmds"    "dev-tools-7.0"   "1v5dv2q3af1xwj5kz0a5g54fd5dm6j4c9dd2g66n4kc44ixyrhp3" {};
     bsdmake         = applePackage "bsdmake"           "dev-tools-3.2.6" "11a9kkhz5bfgi1i8kpdkis78lhc6b5vxmhd598fcdgra1jw4iac2" {};
     CarbonHeaders   = applePackage "CarbonHeaders"     "osx-10.6.2"      "1zam29847cxr6y9rnl76zqmkbac53nx0szmqm9w5p469a6wzjqar" {};
     CommonCrypto    = applePackage "CommonCrypto"      "osx-10.12.6"     "0sgsqjcxbdm2g2zfpc50mzmk4b4ldyw7xvvkwiayhpczg1fga4ff" {};
@@ -207,7 +243,6 @@ let
     dtrace          = applePackage "dtrace"            "osx-10.12.6"     "0hpd6348av463yqf70n3xkygwmf1i5zza8kps4zys52sviqz3a0l" {};
     dyld            = applePackage "dyld"              "osx-10.12.6"     "0q4jmk78b5ajn33blh4agyq6v2a63lpb3fln78az0dy12bnp1qqk" {};
     eap8021x        = applePackage "eap8021x"          "osx-10.11.6"     "0iw0qdib59hihyx2275rwq507bq2a06gaj8db4a8z1rkaj1frskh" {};
-    ICU             = applePackage "ICU"               "osx-10.10.5"     "1qihlp42n5g4dl0sn0f9pc0bkxy1452dxzf0vr6y5gqpshlzy03p" {};
     IOKit           = applePackage "IOKit"             "osx-10.11.6"     "0kcbrlyxcyirvg5p95hjd9k8a01k161zg0bsfgfhkb90kh2s8x00" { inherit IOKitSrcs; };
     launchd         = applePackage "launchd"           "osx-10.9.5"      "0w30hvwqq8j5n90s3qyp0fccxflvrmmjnicjri4i1vd2g196jdgj" {};
     libauto         = applePackage "libauto"           "osx-10.9.5"      "17z27yq5d7zfkwr49r7f0vn9pxvj95884sd2k6lq6rfaz9gxqhy3" {};
@@ -254,6 +289,8 @@ let
 
     # TODO(matthewbauer):
     # To be removed, once I figure out how to build a newer Security version.
-    Security      = applePackage "Security/boot.nix" "osx-10.9.5"      "1nv0dczf67dhk17hscx52izgdcyacgyy12ag0jh6nl5hmfzsn8yy" {};
+    Security        = applePackage "Security/boot.nix" "osx-10.9.5"      "1nv0dczf67dhk17hscx52izgdcyacgyy12ag0jh6nl5hmfzsn8yy" {};
   };
+
+  packages = developerToolsPackages_11_3_1 // macosPackages_11_0_1 // stubPackages;
 in packages
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer-tools-11.3.1.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer-tools-11.3.1.nix
new file mode 100644
index 000000000000..f57d224615f4
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer-tools-11.3.1.nix
@@ -0,0 +1,8 @@
+# Generated using:  ./generate-sdk-packages.sh developer-tools 11.3.1
+
+{ applePackage' }:
+
+{
+bootstrap_cmds = applePackage' "bootstrap_cmds" "116" "developer-tools-11.3.1" "148xpqkf5xzpslqxch5l8h6vsz7sys8sdzk4ghbg9mkcivp8qa03" {};
+developer_cmds = applePackage' "developer_cmds" "66" "developer-tools-11.3.1" "0q08m4cxxwph7gxqravmx13l418p1i050bd46zwksn9j9zpw9mlr" {};
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix
index 258d9785e704..53f98e2b457e 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix
@@ -1,8 +1,8 @@
-{ lib, appleDerivation, xcbuildHook, zlib, bzip2, lzma, ncurses, libutil }:
+{ lib, appleDerivation, xcbuildHook, zlib, bzip2, xz, ncurses, libutil }:
 
 appleDerivation {
   nativeBuildInputs = [ xcbuildHook ];
-  buildInputs = [ zlib bzip2 lzma ncurses libutil ];
+  buildInputs = [ zlib bzip2 xz ncurses libutil ];
 
   # some commands not working:
   # mtree: _simple.h not found
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/generate-sdk-packages.sh b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/generate-sdk-packages.sh
new file mode 100755
index 000000000000..d7c3fc89c525
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/generate-sdk-packages.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl
+
+# usage:
+#   generate-sdk-packages.sh macos 11.0.1
+
+cd $(dirname "$0")
+
+sdkName="$1-$2"
+outfile="$sdkName.nix"
+
+>$outfile echo "# Generated using:  ./$(basename "$0") $1 $2
+
+{ applePackage' }:
+
+{"
+
+parse_line() {
+    readarray -t -d$'\t' package <<<$2
+    local pname=${package[0]} version=${package[1]}
+
+    if [ -d $pname ]; then
+        sha256=$(nix-prefetch-url "https://opensource.apple.com/tarballs/$pname/$pname-$version.tar.gz")
+        >>$outfile echo "$pname = applePackage' \"$pname\" \"$version\" \"$sdkName\" \"$sha256\" {};"
+    fi
+}
+readarray -s1 -c1 -C parse_line < <(curl -sS "https://opensource.apple.com/text/${sdkName//./}.txt")
+
+>>$outfile echo '}'
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix
index 58f6fb8d7ab3..58bac765a959 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix
@@ -1,4 +1,4 @@
-{ appleDerivation, lib, headersOnly ? false }:
+{ appleDerivation, lib, headersOnly ? true }:
 
 appleDerivation {
   installPhase = lib.optionalString headersOnly ''
@@ -6,6 +6,39 @@ appleDerivation {
     cp core/*.h $out/include/hfs
   '';
 
+  appleHeaders = ''
+    hfs/BTreeScanner.h
+    hfs/BTreesInternal.h
+    hfs/BTreesPrivate.h
+    hfs/CatalogPrivate.h
+    hfs/FileMgrInternal.h
+    hfs/HFSUnicodeWrappers.h
+    hfs/UCStringCompareData.h
+    hfs/hfs.h
+    hfs/hfs_alloc_trace.h
+    hfs/hfs_attrlist.h
+    hfs/hfs_btreeio.h
+    hfs/hfs_catalog.h
+    hfs/hfs_cnode.h
+    hfs/hfs_cprotect.h
+    hfs/hfs_dbg.h
+    hfs/hfs_endian.h
+    hfs/hfs_extents.h
+    hfs/hfs_format.h
+    hfs/hfs_fsctl.h
+    hfs/hfs_hotfiles.h
+    hfs/hfs_iokit.h
+    hfs/hfs_journal.h
+    hfs/hfs_kdebug.h
+    hfs/hfs_key_roll.h
+    hfs/hfs_macos_defs.h
+    hfs/hfs_mount.h
+    hfs/hfs_quota.h
+    hfs/hfs_unistr.h
+    hfs/kext-config.h
+    hfs/rangelist.h
+  '';
+
   meta = {
     # Seems nobody wants its binary, so we didn't implement building.
     broken = !headersOnly;
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix
index eed7982e9d8c..c882b83d0a38 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix
@@ -9,4 +9,18 @@ appleDerivation {
     cp liblaunch/bootstrap.h $out/include/servers
     cp liblaunch/bootstrap.h $out/include/servers/bootstrap_defs.h
   '';
+
+  appleHeaders = ''
+    bootstrap.h
+    bootstrap_priv.h
+    launch.h
+    launch_internal.h
+    launch_priv.h
+    reboot2.h
+    servers/bootstrap.h
+    servers/bootstrap_defs.h
+    vproc.h
+    vproc_internal.h
+    vproc_priv.h
+  '';
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix
index ac33a24a8b4e..d42a288208c5 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix
@@ -5,4 +5,9 @@ appleDerivation {
     mkdir -p $out/include
     cp *.h $out/include/
   '';
+
+  appleHeaders = ''
+    Block.h
+    Block_private.h
+  '';
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
index e7aa47bdb6b1..3b9d4a34cc63 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
@@ -22,4 +22,33 @@ appleDerivation {
                  typedef void* dispatch_block_t;
                  #endif'
   '';
+
+  appleHeaders = ''
+    dispatch/base.h
+    dispatch/benchmark.h
+    dispatch/block.h
+    dispatch/data.h
+    dispatch/data_private.h
+    dispatch/dispatch.h
+    dispatch/group.h
+    dispatch/introspection.h
+    dispatch/introspection_private.h
+    dispatch/io.h
+    dispatch/io_private.h
+    dispatch/layout_private.h
+    dispatch/mach_private.h
+    dispatch/object.h
+    dispatch/once.h
+    dispatch/private.h
+    dispatch/queue.h
+    dispatch/queue_private.h
+    dispatch/semaphore.h
+    dispatch/source.h
+    dispatch/source_private.h
+    dispatch/time.h
+    os/object.h
+    os/object_private.h
+    os/voucher_activity_private.h
+    os/voucher_private.h
+  '';
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix
index 4fd0ab8a7fb2..9acbcb212e4d 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix
@@ -5,4 +5,28 @@ appleDerivation {
     mkdir $out
     cp -r include $out/include
   '';
+
+  appleHeaders = ''
+    _simple.h
+    libkern/OSAtomic.h
+    libkern/OSAtomicDeprecated.h
+    libkern/OSAtomicQueue.h
+    libkern/OSCacheControl.h
+    libkern/OSSpinLockDeprecated.h
+    os/alloc_once_impl.h
+    os/base.h
+    os/base_private.h
+    os/internal/atomic.h
+    os/internal/crashlog.h
+    os/internal/internal_shared.h
+    os/lock.h
+    os/lock_private.h
+    os/once_private.h
+    os/semaphore_private.h
+    platform/compat.h
+    platform/introspection_private.h
+    platform/string.h
+    setjmp.h
+    ucontext.h
+  '';
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix
index d9a9beaccfc8..20eccd820597 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix
@@ -15,6 +15,40 @@ appleDerivation {
     cp -r sys/_pthread/*.h $out/include/sys/_types/
   '';
 
+  appleHeaders = ''
+    pthread/introspection.h
+    pthread/pthread.h
+    pthread/pthread_impl.h
+    pthread/pthread_spis.h
+    pthread/qos.h
+    pthread/sched.h
+    pthread/spawn.h
+    sys/_pthread/_pthread_attr_t.h
+    sys/_pthread/_pthread_cond_t.h
+    sys/_pthread/_pthread_condattr_t.h
+    sys/_pthread/_pthread_key_t.h
+    sys/_pthread/_pthread_mutex_t.h
+    sys/_pthread/_pthread_mutexattr_t.h
+    sys/_pthread/_pthread_once_t.h
+    sys/_pthread/_pthread_rwlock_t.h
+    sys/_pthread/_pthread_rwlockattr_t.h
+    sys/_pthread/_pthread_t.h
+    sys/_pthread/_pthread_types.h
+    sys/_types/_pthread_attr_t.h
+    sys/_types/_pthread_cond_t.h
+    sys/_types/_pthread_condattr_t.h
+    sys/_types/_pthread_key_t.h
+    sys/_types/_pthread_mutex_t.h
+    sys/_types/_pthread_mutexattr_t.h
+    sys/_types/_pthread_once_t.h
+    sys/_types/_pthread_rwlock_t.h
+    sys/_types/_pthread_rwlockattr_t.h
+    sys/_types/_pthread_t.h
+    sys/_types/_pthread_types.h
+    sys/qos.h
+    sys/qos_private.h
+  '';
+
   meta = {
     platforms = lib.platforms.darwin;
   };
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix
index 2b196e46ef45..ea9ca75e7e54 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix
@@ -27,6 +27,14 @@ appleDerivation {
     install_name_tool -id $out/lib/libutil.dylib $out/lib/libutil.dylib
   '';
 
+  # FIXME: headers are different against headersOnly. And all the headers are NOT in macos, do we really want them?
+  # appleHeaders = ''
+  #   libutil.h
+  #   mntopts.h
+  #   tzlink.h
+  #   wipefs.h
+  # '';
+
   meta = with lib; {
     maintainers = with maintainers; [ copumpkin ];
     platforms   = platforms.darwin;
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/macos-11.0.1.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/macos-11.0.1.nix
new file mode 100644
index 000000000000..517f53e9435d
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/macos-11.0.1.nix
@@ -0,0 +1,46 @@
+# Generated using:  ./generate-sdk-packages.sh macos 11.0.1
+
+{ applePackage' }:
+
+{
+adv_cmds = applePackage' "adv_cmds" "176" "macos-11.0.1" "0x8c25rh6fnzndbc26vcb65vcxilvqyfvm2klfyci1wr4bh3ixgk" {};
+architecture = applePackage' "architecture" "279" "macos-11.0.1" "1cgp33ywa30max6cyp69kvii299hx2vgwvmy3ms8n4gaq2mkpaky" {};
+basic_cmds = applePackage' "basic_cmds" "55" "macos-11.0.1" "0hvab4b1v5q2x134hdkal0rmz5gsdqyki1vb0dbw4py1bqf0yaw9" {};
+bootstrap_cmds = applePackage' "bootstrap_cmds" "121" "macos-11.0.1" "09bwclws6adxb1ky9q35f4ikddk4mbalmgds0cmqaf7j23qxl3fv" {};
+CommonCrypto = applePackage' "CommonCrypto" "60178.40.2" "macos-11.0.1" "0r3b1mlfmbdzpwn6pbsbfaga3k63gpwcwbhkbi4r09aq82skl02v" {};
+configd = applePackage' "configd" "1109.40.9" "macos-11.0.1" "173i55wfzli9pg2x2rw437hs68h6l4ngss5jfgf18g26zjkjzv5v" {};
+copyfile = applePackage' "copyfile" "173.40.2" "macos-11.0.1" "0qyp15qj3fdb7yx033n57l7s61d70mv17f43yiwcbhx09mmlrp07" {};
+Csu = applePackage' "Csu" "88" "macos-11.0.1" "029lgcyj0i16036h2lcx6fd6r1yf1bkj5dnvz905rh6ncl8skgdr" {};
+diskdev_cmds = applePackage' "diskdev_cmds" "667.40.1" "macos-11.0.1" "1bqwkwkwd556rba5000ap77xrhaf4xnmy83mszd7a0yvl2xlma7j" {};
+dtrace = applePackage' "dtrace" "370.40.1" "macos-11.0.1" "1941yczmn94ng5zlnhf0i5mjw2f4g7znisgvhkhn5f86gxmd98wl" {};
+dyld = applePackage' "dyld" "832.7.1" "macos-11.0.1" "1s77ca6jg20z91qlph59da8j61m97y23vrw48xs4rywdzh4915n0" {};
+eap8021x = applePackage' "eap8021x" "304.40.1" "macos-11.0.1" "1ph3kcpf527s0jqsi60j2sgg3m8h128spf292d8kyc08siz9mf9c" {};
+file_cmds = applePackage' "file_cmds" "321.40.3" "macos-11.0.1" "04789vn1wghclfr3ma3ncg716xdsxfj66hrcxi5h3h1ryag2ycfz" {};
+hfs = applePackage' "hfs" "556.41.1" "macos-11.0.1" "1rhkmn2yj5p4wmi4aajy5hj2h0gxk63s8j4qz4ziy4g4bjpdgwmy" {};
+ICU = applePackage' "ICU" "66108" "macos-11.0.1" "1d76cyyqpwkzjlxfajm4nsglxmfrcafbnjwnjxc3j5w3nw67pqhx" {};
+Libc = applePackage' "Libc" "1439.40.11" "macos-11.0.1" "0d5xlnks4lc9391wg31c9126vflb40lc5ffkgxmf2kpyglac1280" {};
+libclosure = applePackage' "libclosure" "78" "macos-11.0.1" "089i2bl4agpnfplrg23xbzma1674g0w05988nxdps6ghxl4kz66f" {};
+libdispatch = applePackage' "libdispatch" "1271.40.12" "macos-11.0.1" "0z7r42zfb8y48f0nrw0qw7fanfvimycimgnrg3jig101kjvjar98" {};
+libiconv = applePackage' "libiconv" "59" "macos-11.0.1" "0hqbsqggjrr0sv6h70lcr3gabgk9inyc8aq1b30wibgjm6crjwpp" {};
+Libinfo = applePackage' "Libinfo" "542.40.3" "macos-11.0.1" "0y5x6wxd3mwn6my1jdp8qrak3y7x7sgjdmwyw9cvvbn3kg9v6z1p" {};
+Libnotify = applePackage' "Libnotify" "279.40.4" "macos-11.0.1" "0aswflxki877izp6sacv35sydn6a3639cflv3zhs3i7vkfbsvbf5" {};
+libplatform = applePackage' "libplatform" "254.40.4" "macos-11.0.1" "1mhi8n66864y98dr3n0pkqad3aqim800kn9bxzp6h5jf2jni3aql" {};
+libpthread = applePackage' "libpthread" "454.40.3" "macos-11.0.1" "18rb4dqjdf3krzi4hdj5i310gy49ipf01klbkp9g51i02a55gphq" {};
+libresolv = applePackage' "libresolv" "68" "macos-11.0.1" "1ysvg6d28xyaky9sn7giglnsflhjsbj17h3h3i6knlzxnzznpkql" {};
+Librpcsvc = applePackage' "Librpcsvc" "26" "macos-11.0.1" "1zwfwcl9irxl1dlnf2b4v30vdybp0p0r6n6g1pd14zbdci1jcg2k" {};
+Libsystem = applePackage' "Libsystem" "1292.50.1" "macos-11.0.1" "0w16zaigq18jfsnw15pfyz2mkfqdkn0cc16q617kmgw2khld8j7j" {};
+libunwind = applePackage' "libunwind" "200.10" "macos-11.0.1" "1pmymcqpfk7lfxh6zqch429vfpvmd2m1dlg898170pkx5zhxisl2" {};
+libutil = applePackage' "libutil" "58.40.2" "macos-11.0.1" "1hhgashfj9g4vjv02070c5pn818a5n0bh5l81l2pflmvb2rrqs3f" {};
+mDNSResponder = applePackage' "mDNSResponder" "1310.40.42" "macos-11.0.1" "0d0b9wwah9rg7rwrr29dxd6iy0y4rlmss3wcz2wcqmnd2qb9x8my" {};
+network_cmds = applePackage' "network_cmds" "606.40.2" "macos-11.0.1" "1dlslk67npvmxx5m50385kmn3ysxih2iv220hhzkin11f8abdjv7" {};
+objc4 = applePackage' "objc4" "818.2" "macos-11.0.1" "177gmh9m9ajy6mvcd2sf7gqydgljy44n3iih0yqsn1b13j784azx" {};
+PowerManagement = applePackage' "PowerManagement" "1132.50.3" "macos-11.0.1" "1n5yn6sc8w67g8iism6ilkyl33j46gcnlqcaq6k16zkngx6lprba" {};
+ppp = applePackage' "ppp" "877.40.2" "macos-11.0.1" "1z506z8ndvb1lfr4pypfy2bnig6qimhmq3yhjvqwfnliv91965iq" {};
+removefile = applePackage' "removefile" "49.40.3" "macos-11.0.1" "1fhp47awi15f02385r25qgw1ag5z0kr1v3kvgqm3r8i8yysfqvwp" {};
+Security = applePackage' "Security" "59754.41.1" "macos-11.0.1" "00kqgg7k80ba70ar2c02f0q9yrdgqcb56nb9z5g0bxwkvi40ryph" {};
+shell_cmds = applePackage' "shell_cmds" "216.40.4" "macos-11.0.1" "1mvp1fp34kkm4mi85fdn3i0l0gig4c0w09zg2mvkpxcf68cq2f69" {};
+system_cmds = applePackage' "system_cmds" "880.40.5" "macos-11.0.1" "1kys4vwfz4559sspdsfhmxc238nd8qgylqypza3zdzaqhfh7lx2x" {};
+text_cmds = applePackage' "text_cmds" "106" "macos-11.0.1" "0cpnfpllwpx20hbxzg5i5488gcjyi9adnbac1sd5hpv3bq6z1hs5" {};
+top = applePackage' "top" "129" "macos-11.0.1" "1nyz5mvq7js3zhsi3dwxl5fslg6m7nhlgc6p2hr889xgyl5prw8f" {};
+xnu = applePackage' "xnu" "7195.50.7.100.1" "macos-11.0.1" "14wqkqp3lcxgpm1sjnsysybrc4ppzkghwv3mb5nr5v8ml37prkib" {};
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix
index 2b45fbdb45e2..0b2c1c9c7dcc 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix
@@ -5,4 +5,9 @@ appleDerivation {
     mkdir -p $out/include/
     cp removefile.h checkint.h $out/include/
   '';
+
+  appleHeaders = ''
+    checkint.h
+    removefile.h
+  '';
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix
index 3f0c91db91ca..9e3d6e49204a 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix
@@ -1,14 +1,14 @@
-{ lib, appleDerivation, xcbuildHook, ncurses, bzip2, zlib, lzma }:
+{ lib, appleDerivation, xcbuildHook, ncurses, bzip2, zlib, xz }:
 
 appleDerivation {
   nativeBuildInputs = [ xcbuildHook ];
-  buildInputs = [ ncurses bzip2 zlib lzma ];
+  buildInputs = [ ncurses bzip2 zlib xz ];
 
   # patches to use ncursees
   # disables md5
   patchPhase = ''
     substituteInPlace text_cmds.xcodeproj/project.pbxproj \
-		  --replace 'FC6C98FB149A94EB00DDCC47 /* libcurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurses.dylib; path = /usr/lib/libcurses.dylib; sourceTree = "<absolute>"; };' 'FC6C98FB149A94EB00DDCC47 /* libncurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libncurses.dylib; path = /usr/lib/libncurses.dylib; sourceTree = "<absolute>"; };' \
+          --replace 'FC6C98FB149A94EB00DDCC47 /* libcurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurses.dylib; path = /usr/lib/libcurses.dylib; sourceTree = "<absolute>"; };' 'FC6C98FB149A94EB00DDCC47 /* libncurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libncurses.dylib; path = /usr/lib/libncurses.dylib; sourceTree = "<absolute>"; };' \
       --replace 'FC7A7EB5149875E00086576A /* PBXTargetDependency */,' ""
   '';
 
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 da2d0c5dc7bf..9892814468e9 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
@@ -127,6 +127,8 @@ appleDerivation ({
     mkdir $out/Library/PrivateFrameworks
     mv $out/Library/Frameworks/IOKit.framework $out/Library/PrivateFrameworks
   '';
+
+  appleHeaders = builtins.readFile ./headers.txt;
 } // lib.optionalAttrs headersOnly {
   HOST_CODESIGN = "echo";
   HOST_CODESIGN_ALLOCATE = "echo";
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/headers.txt b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/headers.txt
new file mode 100644
index 000000000000..93c0dbb18bf7
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/headers.txt
@@ -0,0 +1,1318 @@
+AssertMacros.h
+_errno.h
+_libkernel_init.h
+atm/atm_notification.defs
+atm/atm_types.defs
+atm/atm_types.h
+bank/bank_types.h
+bsd/bsm/audit.h
+bsd/dev/random/randomdev.h
+bsd/i386/_limits.h
+bsd/i386/_mcontext.h
+bsd/i386/_param.h
+bsd/i386/_types.h
+bsd/i386/endian.h
+bsd/i386/limits.h
+bsd/i386/param.h
+bsd/i386/profile.h
+bsd/i386/signal.h
+bsd/i386/types.h
+bsd/i386/vmparam.h
+bsd/libkern/libkern.h
+bsd/machine/_limits.h
+bsd/machine/_mcontext.h
+bsd/machine/_param.h
+bsd/machine/_types.h
+bsd/machine/byte_order.h
+bsd/machine/disklabel.h
+bsd/machine/endian.h
+bsd/machine/limits.h
+bsd/machine/param.h
+bsd/machine/profile.h
+bsd/machine/signal.h
+bsd/machine/spl.h
+bsd/machine/types.h
+bsd/machine/vmparam.h
+bsd/miscfs/devfs/devfs.h
+bsd/miscfs/devfs/devfs_proto.h
+bsd/miscfs/devfs/devfsdefs.h
+bsd/miscfs/devfs/fdesc.h
+bsd/miscfs/fifofs/fifo.h
+bsd/miscfs/specfs/specdev.h
+bsd/miscfs/union/union.h
+bsd/net/bpf.h
+bsd/net/dlil.h
+bsd/net/ethernet.h
+bsd/net/if.h
+bsd/net/if_arp.h
+bsd/net/if_dl.h
+bsd/net/if_ether.h
+bsd/net/if_llc.h
+bsd/net/if_media.h
+bsd/net/if_mib.h
+bsd/net/if_types.h
+bsd/net/if_utun.h
+bsd/net/if_var.h
+bsd/net/init.h
+bsd/net/kext_net.h
+bsd/net/kpi_interface.h
+bsd/net/kpi_interfacefilter.h
+bsd/net/kpi_protocol.h
+bsd/net/ndrv.h
+bsd/net/net_kev.h
+bsd/net/pfkeyv2.h
+bsd/net/radix.h
+bsd/net/route.h
+bsd/netinet/bootp.h
+bsd/netinet/icmp6.h
+bsd/netinet/icmp_var.h
+bsd/netinet/if_ether.h
+bsd/netinet/igmp.h
+bsd/netinet/igmp_var.h
+bsd/netinet/in.h
+bsd/netinet/in_arp.h
+bsd/netinet/in_pcb.h
+bsd/netinet/in_systm.h
+bsd/netinet/in_var.h
+bsd/netinet/ip.h
+bsd/netinet/ip6.h
+bsd/netinet/ip_icmp.h
+bsd/netinet/ip_var.h
+bsd/netinet/kpi_ipfilter.h
+bsd/netinet/tcp.h
+bsd/netinet/tcp_fsm.h
+bsd/netinet/tcp_seq.h
+bsd/netinet/tcp_timer.h
+bsd/netinet/tcp_var.h
+bsd/netinet/tcpip.h
+bsd/netinet/udp.h
+bsd/netinet/udp_var.h
+bsd/netinet6/ah.h
+bsd/netinet6/esp.h
+bsd/netinet6/in6.h
+bsd/netinet6/in6_var.h
+bsd/netinet6/ipcomp.h
+bsd/netinet6/ipsec.h
+bsd/netinet6/nd6.h
+bsd/netinet6/raw_ip6.h
+bsd/netinet6/scope6_var.h
+bsd/netkey/keysock.h
+bsd/security/audit/audit.h
+bsd/security/audit/audit_bsd.h
+bsd/security/audit/audit_ioctl.h
+bsd/security/audit/audit_private.h
+bsd/sys/_endian.h
+bsd/sys/_select.h
+bsd/sys/_structs.h
+bsd/sys/_types.h
+bsd/sys/_types/_blkcnt_t.h
+bsd/sys/_types/_blksize_t.h
+bsd/sys/_types/_clock_t.h
+bsd/sys/_types/_ct_rune_t.h
+bsd/sys/_types/_dev_t.h
+bsd/sys/_types/_errno_t.h
+bsd/sys/_types/_fd_clr.h
+bsd/sys/_types/_fd_copy.h
+bsd/sys/_types/_fd_def.h
+bsd/sys/_types/_fd_isset.h
+bsd/sys/_types/_fd_set.h
+bsd/sys/_types/_fd_setsize.h
+bsd/sys/_types/_fd_zero.h
+bsd/sys/_types/_filesec_t.h
+bsd/sys/_types/_fsblkcnt_t.h
+bsd/sys/_types/_fsfilcnt_t.h
+bsd/sys/_types/_fsid_t.h
+bsd/sys/_types/_fsobj_id_t.h
+bsd/sys/_types/_gid_t.h
+bsd/sys/_types/_guid_t.h
+bsd/sys/_types/_id_t.h
+bsd/sys/_types/_in_addr_t.h
+bsd/sys/_types/_in_port_t.h
+bsd/sys/_types/_ino64_t.h
+bsd/sys/_types/_ino_t.h
+bsd/sys/_types/_int16_t.h
+bsd/sys/_types/_int32_t.h
+bsd/sys/_types/_int64_t.h
+bsd/sys/_types/_int8_t.h
+bsd/sys/_types/_intptr_t.h
+bsd/sys/_types/_iovec_t.h
+bsd/sys/_types/_key_t.h
+bsd/sys/_types/_mach_port_t.h
+bsd/sys/_types/_mbstate_t.h
+bsd/sys/_types/_mode_t.h
+bsd/sys/_types/_nlink_t.h
+bsd/sys/_types/_null.h
+bsd/sys/_types/_o_dsync.h
+bsd/sys/_types/_o_sync.h
+bsd/sys/_types/_off_t.h
+bsd/sys/_types/_offsetof.h
+bsd/sys/_types/_os_inline.h
+bsd/sys/_types/_pid_t.h
+bsd/sys/_types/_posix_vdisable.h
+bsd/sys/_types/_ptrdiff_t.h
+bsd/sys/_types/_rsize_t.h
+bsd/sys/_types/_rune_t.h
+bsd/sys/_types/_s_ifmt.h
+bsd/sys/_types/_sa_family_t.h
+bsd/sys/_types/_seek_set.h
+bsd/sys/_types/_sigaltstack.h
+bsd/sys/_types/_sigset_t.h
+bsd/sys/_types/_size_t.h
+bsd/sys/_types/_socklen_t.h
+bsd/sys/_types/_ssize_t.h
+bsd/sys/_types/_suseconds_t.h
+bsd/sys/_types/_time_t.h
+bsd/sys/_types/_timespec.h
+bsd/sys/_types/_timeval.h
+bsd/sys/_types/_timeval32.h
+bsd/sys/_types/_timeval64.h
+bsd/sys/_types/_u_int16_t.h
+bsd/sys/_types/_u_int32_t.h
+bsd/sys/_types/_u_int64_t.h
+bsd/sys/_types/_u_int8_t.h
+bsd/sys/_types/_ucontext.h
+bsd/sys/_types/_ucontext64.h
+bsd/sys/_types/_uid_t.h
+bsd/sys/_types/_uintptr_t.h
+bsd/sys/_types/_useconds_t.h
+bsd/sys/_types/_user32_itimerval.h
+bsd/sys/_types/_user32_timespec.h
+bsd/sys/_types/_user32_timeval.h
+bsd/sys/_types/_user64_itimerval.h
+bsd/sys/_types/_user64_timespec.h
+bsd/sys/_types/_user64_timeval.h
+bsd/sys/_types/_user_timespec.h
+bsd/sys/_types/_user_timeval.h
+bsd/sys/_types/_uuid_t.h
+bsd/sys/_types/_va_list.h
+bsd/sys/_types/_wchar_t.h
+bsd/sys/_types/_wint_t.h
+bsd/sys/appleapiopts.h
+bsd/sys/attr.h
+bsd/sys/bsdtask_info.h
+bsd/sys/buf.h
+bsd/sys/cdefs.h
+bsd/sys/codesign.h
+bsd/sys/conf.h
+bsd/sys/content_protection.h
+bsd/sys/cprotect.h
+bsd/sys/csr.h
+bsd/sys/decmpfs.h
+bsd/sys/dir.h
+bsd/sys/dirent.h
+bsd/sys/disk.h
+bsd/sys/disklabel.h
+bsd/sys/disktab.h
+bsd/sys/dkstat.h
+bsd/sys/doc_tombstone.h
+bsd/sys/domain.h
+bsd/sys/errno.h
+bsd/sys/ev.h
+bsd/sys/event.h
+bsd/sys/eventvar.h
+bsd/sys/fbt.h
+bsd/sys/fcntl.h
+bsd/sys/file.h
+bsd/sys/file_internal.h
+bsd/sys/filedesc.h
+bsd/sys/fileport.h
+bsd/sys/filio.h
+bsd/sys/fsctl.h
+bsd/sys/fsevents.h
+bsd/sys/fslog.h
+bsd/sys/guarded.h
+bsd/sys/imgact.h
+bsd/sys/ioccom.h
+bsd/sys/ioctl.h
+bsd/sys/ioctl_compat.h
+bsd/sys/ipc.h
+bsd/sys/kasl.h
+bsd/sys/kauth.h
+bsd/sys/kdebug.h
+bsd/sys/kdebugevents.h
+bsd/sys/kern_control.h
+bsd/sys/kern_event.h
+bsd/sys/kern_memorystatus.h
+bsd/sys/kernel.h
+bsd/sys/kernel_types.h
+bsd/sys/kpi_mbuf.h
+bsd/sys/kpi_private.h
+bsd/sys/kpi_socket.h
+bsd/sys/kpi_socketfilter.h
+bsd/sys/ktrace.h
+bsd/sys/linker_set.h
+bsd/sys/lock.h
+bsd/sys/lockf.h
+bsd/sys/mach_swapon.h
+bsd/sys/malloc.h
+bsd/sys/mbuf.h
+bsd/sys/md5.h
+bsd/sys/memory_maintenance.h
+bsd/sys/mman.h
+bsd/sys/mount.h
+bsd/sys/mount_internal.h
+bsd/sys/msg.h
+bsd/sys/msgbuf.h
+bsd/sys/munge.h
+bsd/sys/namei.h
+bsd/sys/netport.h
+bsd/sys/param.h
+bsd/sys/paths.h
+bsd/sys/persona.h
+bsd/sys/pgo.h
+bsd/sys/pipe.h
+bsd/sys/posix_sem.h
+bsd/sys/posix_shm.h
+bsd/sys/priv.h
+bsd/sys/proc.h
+bsd/sys/proc_info.h
+bsd/sys/proc_internal.h
+bsd/sys/protosw.h
+bsd/sys/pthread_internal.h
+bsd/sys/pthread_shims.h
+bsd/sys/queue.h
+bsd/sys/quota.h
+bsd/sys/random.h
+bsd/sys/reason.h
+bsd/sys/resource.h
+bsd/sys/resourcevar.h
+bsd/sys/sbuf.h
+bsd/sys/select.h
+bsd/sys/sem.h
+bsd/sys/sem_internal.h
+bsd/sys/semaphore.h
+bsd/sys/shm.h
+bsd/sys/shm_internal.h
+bsd/sys/signal.h
+bsd/sys/signalvar.h
+bsd/sys/socket.h
+bsd/sys/socketvar.h
+bsd/sys/sockio.h
+bsd/sys/spawn.h
+bsd/sys/spawn_internal.h
+bsd/sys/stackshot.h
+bsd/sys/stat.h
+bsd/sys/stdio.h
+bsd/sys/sys_domain.h
+bsd/sys/syscall.h
+bsd/sys/sysctl.h
+bsd/sys/syslimits.h
+bsd/sys/syslog.h
+bsd/sys/sysproto.h
+bsd/sys/systm.h
+bsd/sys/termios.h
+bsd/sys/time.h
+bsd/sys/tree.h
+bsd/sys/tty.h
+bsd/sys/ttychars.h
+bsd/sys/ttycom.h
+bsd/sys/ttydefaults.h
+bsd/sys/ttydev.h
+bsd/sys/types.h
+bsd/sys/ubc.h
+bsd/sys/ucontext.h
+bsd/sys/ucred.h
+bsd/sys/uio.h
+bsd/sys/uio_internal.h
+bsd/sys/ulock.h
+bsd/sys/un.h
+bsd/sys/unistd.h
+bsd/sys/unpcb.h
+bsd/sys/user.h
+bsd/sys/utfconv.h
+bsd/sys/vfs_context.h
+bsd/sys/vm.h
+bsd/sys/vmmeter.h
+bsd/sys/vmparam.h
+bsd/sys/vnode.h
+bsd/sys/vnode_if.h
+bsd/sys/vnode_internal.h
+bsd/sys/wait.h
+bsd/sys/xattr.h
+bsd/uuid/uuid.h
+bsd/vfs/vfs_support.h
+bsd/vm/vnode_pager.h
+bsm/audit.h
+bsm/audit_domain.h
+bsm/audit_errno.h
+bsm/audit_fcntl.h
+bsm/audit_internal.h
+bsm/audit_kevents.h
+bsm/audit_record.h
+bsm/audit_socket_type.h
+corecrypto/cc.h
+corecrypto/cc_config.h
+corecrypto/cc_debug.h
+corecrypto/cc_macros.h
+corecrypto/cc_priv.h
+corecrypto/ccaes.h
+corecrypto/ccasn1.h
+corecrypto/cccmac.h
+corecrypto/ccder.h
+corecrypto/ccdes.h
+corecrypto/ccdigest.h
+corecrypto/ccdigest_priv.h
+corecrypto/ccdrbg.h
+corecrypto/ccdrbg_impl.h
+corecrypto/cchmac.h
+corecrypto/ccmd5.h
+corecrypto/ccmode.h
+corecrypto/ccmode_factory.h
+corecrypto/ccmode_impl.h
+corecrypto/ccmode_siv.h
+corecrypto/ccn.h
+corecrypto/ccpad.h
+corecrypto/ccpbkdf2.h
+corecrypto/ccrc4.h
+corecrypto/ccrng.h
+corecrypto/ccrng_system.h
+corecrypto/ccrsa.h
+corecrypto/ccsha1.h
+corecrypto/ccsha2.h
+corecrypto/cczp.h
+corpses/task_corpse.h
+default_pager/default_pager_types.h
+device/device.defs
+device/device_port.h
+device/device_types.defs
+device/device_types.h
+gethostuuid.h
+gethostuuid_private.h
+i386/_limits.h
+i386/_mcontext.h
+i386/_param.h
+i386/_types.h
+i386/eflags.h
+i386/endian.h
+i386/fasttrap_isa.h
+i386/limits.h
+i386/param.h
+i386/profile.h
+i386/signal.h
+i386/types.h
+i386/user_ldt.h
+i386/vmparam.h
+iokit/IOKit/AppleKeyStoreInterface.h
+iokit/IOKit/IOBSD.h
+iokit/IOKit/IOBufferMemoryDescriptor.h
+iokit/IOKit/IOCPU.h
+iokit/IOKit/IOCatalogue.h
+iokit/IOKit/IOCommand.h
+iokit/IOKit/IOCommandGate.h
+iokit/IOKit/IOCommandPool.h
+iokit/IOKit/IOCommandQueue.h
+iokit/IOKit/IOConditionLock.h
+iokit/IOKit/IODMACommand.h
+iokit/IOKit/IODMAController.h
+iokit/IOKit/IODMAEventSource.h
+iokit/IOKit/IODataQueue.h
+iokit/IOKit/IODataQueueShared.h
+iokit/IOKit/IODeviceMemory.h
+iokit/IOKit/IODeviceTreeSupport.h
+iokit/IOKit/IOEventSource.h
+iokit/IOKit/IOFilterInterruptEventSource.h
+iokit/IOKit/IOHibernatePrivate.h
+iokit/IOKit/IOInterleavedMemoryDescriptor.h
+iokit/IOKit/IOInterruptAccounting.h
+iokit/IOKit/IOInterruptController.h
+iokit/IOKit/IOInterruptEventSource.h
+iokit/IOKit/IOInterrupts.h
+iokit/IOKit/IOKernelReportStructs.h
+iokit/IOKit/IOKernelReporters.h
+iokit/IOKit/IOKitDebug.h
+iokit/IOKit/IOKitDiagnosticsUserClient.h
+iokit/IOKit/IOKitKeys.h
+iokit/IOKit/IOKitKeysPrivate.h
+iokit/IOKit/IOKitServer.h
+iokit/IOKit/IOLib.h
+iokit/IOKit/IOLocks.h
+iokit/IOKit/IOLocksPrivate.h
+iokit/IOKit/IOMapper.h
+iokit/IOKit/IOMemoryCursor.h
+iokit/IOKit/IOMemoryDescriptor.h
+iokit/IOKit/IOMessage.h
+iokit/IOKit/IOMultiMemoryDescriptor.h
+iokit/IOKit/IONVRAM.h
+iokit/IOKit/IONotifier.h
+iokit/IOKit/IOPlatformExpert.h
+iokit/IOKit/IOPolledInterface.h
+iokit/IOKit/IORangeAllocator.h
+iokit/IOKit/IORegistryEntry.h
+iokit/IOKit/IOReportMacros.h
+iokit/IOKit/IOReportTypes.h
+iokit/IOKit/IOReturn.h
+iokit/IOKit/IOService.h
+iokit/IOKit/IOServicePM.h
+iokit/IOKit/IOSharedDataQueue.h
+iokit/IOKit/IOSharedLock.h
+iokit/IOKit/IOStatistics.h
+iokit/IOKit/IOStatisticsPrivate.h
+iokit/IOKit/IOSubMemoryDescriptor.h
+iokit/IOKit/IOSyncer.h
+iokit/IOKit/IOTimeStamp.h
+iokit/IOKit/IOTimerEventSource.h
+iokit/IOKit/IOTypes.h
+iokit/IOKit/IOUserClient.h
+iokit/IOKit/IOWorkLoop.h
+iokit/IOKit/OSMessageNotification.h
+iokit/IOKit/assert.h
+iokit/IOKit/nvram/IONVRAMController.h
+iokit/IOKit/platform/AppleMacIO.h
+iokit/IOKit/platform/AppleMacIODevice.h
+iokit/IOKit/platform/AppleNMI.h
+iokit/IOKit/platform/ApplePlatformExpert.h
+iokit/IOKit/power/IOPwrController.h
+iokit/IOKit/pwr_mgt/IOPM.h
+iokit/IOKit/pwr_mgt/IOPMLibDefs.h
+iokit/IOKit/pwr_mgt/IOPMPowerSource.h
+iokit/IOKit/pwr_mgt/IOPMPowerSourceList.h
+iokit/IOKit/pwr_mgt/IOPMpowerState.h
+iokit/IOKit/pwr_mgt/IOPowerConnection.h
+iokit/IOKit/pwr_mgt/RootDomain.h
+iokit/IOKit/rtc/IORTCController.h
+iokit/IOKit/system.h
+iokit/IOKit/system_management/IOWatchDogTimer.h
+kern/exc_resource.h
+kern/kcdata.h
+kern/kern_cdata.h
+libkern/OSByteOrder.h
+libkern/OSDebug.h
+libkern/OSKextLib.h
+libkern/OSReturn.h
+libkern/OSTypes.h
+libkern/_OSByteOrder.h
+libkern/firehose/chunk_private.h
+libkern/firehose/firehose_types_private.h
+libkern/firehose/ioctl_private.h
+libkern/firehose/tracepoint_private.h
+libkern/i386/OSByteOrder.h
+libkern/i386/_OSByteOrder.h
+libkern/libkern/OSAtomic.h
+libkern/libkern/OSBase.h
+libkern/libkern/OSByteOrder.h
+libkern/libkern/OSDebug.h
+libkern/libkern/OSKextLib.h
+libkern/libkern/OSKextLibPrivate.h
+libkern/libkern/OSMalloc.h
+libkern/libkern/OSReturn.h
+libkern/libkern/OSSerializeBinary.h
+libkern/libkern/OSTypes.h
+libkern/libkern/_OSByteOrder.h
+libkern/libkern/c++/OSArray.h
+libkern/libkern/c++/OSBoolean.h
+libkern/libkern/c++/OSCPPDebug.h
+libkern/libkern/c++/OSCollection.h
+libkern/libkern/c++/OSCollectionIterator.h
+libkern/libkern/c++/OSContainers.h
+libkern/libkern/c++/OSData.h
+libkern/libkern/c++/OSDictionary.h
+libkern/libkern/c++/OSEndianTypes.h
+libkern/libkern/c++/OSIterator.h
+libkern/libkern/c++/OSKext.h
+libkern/libkern/c++/OSLib.h
+libkern/libkern/c++/OSMetaClass.h
+libkern/libkern/c++/OSNumber.h
+libkern/libkern/c++/OSObject.h
+libkern/libkern/c++/OSOrderedSet.h
+libkern/libkern/c++/OSSerialize.h
+libkern/libkern/c++/OSSet.h
+libkern/libkern/c++/OSString.h
+libkern/libkern/c++/OSSymbol.h
+libkern/libkern/c++/OSUnserialize.h
+libkern/libkern/crypto/aes.h
+libkern/libkern/crypto/aesxts.h
+libkern/libkern/crypto/crypto_internal.h
+libkern/libkern/crypto/des.h
+libkern/libkern/crypto/md5.h
+libkern/libkern/crypto/rand.h
+libkern/libkern/crypto/register_crypto.h
+libkern/libkern/crypto/rsa.h
+libkern/libkern/crypto/sha1.h
+libkern/libkern/crypto/sha2.h
+libkern/libkern/i386/OSByteOrder.h
+libkern/libkern/i386/_OSByteOrder.h
+libkern/libkern/kernel_mach_header.h
+libkern/libkern/kext_request_keys.h
+libkern/libkern/kxld.h
+libkern/libkern/kxld_types.h
+libkern/libkern/locks.h
+libkern/libkern/machine/OSByteOrder.h
+libkern/libkern/mkext.h
+libkern/libkern/prelink.h
+libkern/libkern/section_keywords.h
+libkern/libkern/stack_protector.h
+libkern/libkern/sysctl.h
+libkern/libkern/tree.h
+libkern/libkern/version.h
+libkern/libkern/zconf.h
+libkern/libkern/zlib.h
+libkern/machine/OSByteOrder.h
+libkern/os/base.h
+libkern/os/log.h
+libkern/os/log_private.h
+libkern/os/object.h
+libkern/os/object_private.h
+libkern/os/overflow.h
+libkern/os/trace.h
+mach/audit_triggers.defs
+mach/boolean.h
+mach/bootstrap.h
+mach/clock.defs
+mach/clock.h
+mach/clock_priv.defs
+mach/clock_priv.h
+mach/clock_reply.defs
+mach/clock_reply.h
+mach/clock_types.defs
+mach/clock_types.h
+mach/dyld_kernel.h
+mach/error.h
+mach/exc.defs
+mach/exc.h
+mach/exception.h
+mach/exception_types.h
+mach/host_info.h
+mach/host_notify.h
+mach/host_notify_reply.defs
+mach/host_priv.defs
+mach/host_priv.h
+mach/host_reboot.h
+mach/host_security.defs
+mach/host_security.h
+mach/host_special_ports.h
+mach/i386/_structs.h
+mach/i386/asm.h
+mach/i386/boolean.h
+mach/i386/exception.h
+mach/i386/fp_reg.h
+mach/i386/kern_return.h
+mach/i386/ndr_def.h
+mach/i386/processor_info.h
+mach/i386/rpc.h
+mach/i386/sdt_isa.h
+mach/i386/thread_state.h
+mach/i386/thread_status.h
+mach/i386/vm_param.h
+mach/i386/vm_types.h
+mach/kern_return.h
+mach/kmod.h
+mach/lock_set.defs
+mach/lock_set.h
+mach/mach.h
+mach/mach_error.h
+mach/mach_exc.defs
+mach/mach_host.defs
+mach/mach_host.h
+mach/mach_init.h
+mach/mach_interface.h
+mach/mach_param.h
+mach/mach_port.defs
+mach/mach_port.h
+mach/mach_port_internal.h
+mach/mach_syscalls.h
+mach/mach_time.h
+mach/mach_traps.h
+mach/mach_types.defs
+mach/mach_types.h
+mach/mach_vm.defs
+mach/mach_vm.h
+mach/mach_vm_internal.h
+mach/mach_voucher.defs
+mach/mach_voucher.h
+mach/mach_voucher_attr_control.defs
+mach/mach_voucher_types.h
+mach/machine.h
+mach/machine/asm.h
+mach/machine/boolean.h
+mach/machine/exception.h
+mach/machine/kern_return.h
+mach/machine/machine_types.defs
+mach/machine/ndr_def.h
+mach/machine/processor_info.h
+mach/machine/rpc.h
+mach/machine/sdt.h
+mach/machine/sdt_isa.h
+mach/machine/thread_state.h
+mach/machine/thread_status.h
+mach/machine/vm_param.h
+mach/machine/vm_types.h
+mach/memory_object_types.h
+mach/message.h
+mach/mig.h
+mach/mig_errors.h
+mach/mig_strncpy_zerofill_support.h
+mach/mig_voucher_support.h
+mach/ndr.h
+mach/notify.defs
+mach/notify.h
+mach/policy.h
+mach/port.h
+mach/port_obj.h
+mach/processor.defs
+mach/processor.h
+mach/processor_info.h
+mach/processor_set.defs
+mach/processor_set.h
+mach/rpc.h
+mach/sdt.h
+mach/semaphore.h
+mach/shared_memory_server.h
+mach/shared_region.h
+mach/std_types.defs
+mach/std_types.h
+mach/sync.h
+mach/sync_policy.h
+mach/task.defs
+mach/task.h
+mach/task_access.defs
+mach/task_info.h
+mach/task_policy.h
+mach/task_special_ports.h
+mach/telemetry_notification.defs
+mach/thread_act.defs
+mach/thread_act.h
+mach/thread_act_internal.h
+mach/thread_info.h
+mach/thread_policy.h
+mach/thread_special_ports.h
+mach/thread_state.h
+mach/thread_status.h
+mach/thread_switch.h
+mach/time_value.h
+mach/vm_attributes.h
+mach/vm_behavior.h
+mach/vm_inherit.h
+mach/vm_map.defs
+mach/vm_map.h
+mach/vm_map_internal.h
+mach/vm_page_size.h
+mach/vm_param.h
+mach/vm_prot.h
+mach/vm_purgable.h
+mach/vm_region.h
+mach/vm_statistics.h
+mach/vm_sync.h
+mach/vm_task.h
+mach/vm_types.h
+mach_debug/hash_info.h
+mach_debug/ipc_info.h
+mach_debug/lockgroup_info.h
+mach_debug/mach_debug.h
+mach_debug/mach_debug_types.defs
+mach_debug/mach_debug_types.h
+mach_debug/page_info.h
+mach_debug/vm_info.h
+mach_debug/zone_info.h
+machine/_limits.h
+machine/_mcontext.h
+machine/_param.h
+machine/_types.h
+machine/byte_order.h
+machine/endian.h
+machine/fasttrap_isa.h
+machine/limits.h
+machine/param.h
+machine/profile.h
+machine/signal.h
+machine/types.h
+machine/vmparam.h
+miscfs/devfs/devfs.h
+miscfs/specfs/specdev.h
+miscfs/union/union.h
+net/bpf.h
+net/dlil.h
+net/ethernet.h
+net/if.h
+net/if_arp.h
+net/if_dl.h
+net/if_llc.h
+net/if_media.h
+net/if_mib.h
+net/if_types.h
+net/if_utun.h
+net/if_var.h
+net/kext_net.h
+net/ndrv.h
+net/net_kev.h
+net/pfkeyv2.h
+net/route.h
+netinet/bootp.h
+netinet/icmp6.h
+netinet/icmp_var.h
+netinet/if_ether.h
+netinet/igmp.h
+netinet/igmp_var.h
+netinet/in.h
+netinet/in_pcb.h
+netinet/in_systm.h
+netinet/in_var.h
+netinet/ip.h
+netinet/ip6.h
+netinet/ip_icmp.h
+netinet/ip_var.h
+netinet/tcp.h
+netinet/tcp_fsm.h
+netinet/tcp_seq.h
+netinet/tcp_timer.h
+netinet/tcp_var.h
+netinet/tcpip.h
+netinet/udp.h
+netinet/udp_var.h
+netinet6/ah.h
+netinet6/esp.h
+netinet6/in6.h
+netinet6/in6_var.h
+netinet6/ipcomp.h
+netinet6/ipsec.h
+netinet6/nd6.h
+netinet6/raw_ip6.h
+netinet6/scope6_var.h
+netkey/keysock.h
+nfs/krpc.h
+nfs/nfs.h
+nfs/nfs_gss.h
+nfs/nfs_ioctl.h
+nfs/nfs_lock.h
+nfs/nfsdiskless.h
+nfs/nfsm_subs.h
+nfs/nfsmount.h
+nfs/nfsnode.h
+nfs/nfsproto.h
+nfs/nfsrvcache.h
+nfs/rpcv2.h
+nfs/xdr_subs.h
+os/overflow.h
+os/tsd.h
+osfmk/UserNotification/KUNCUserNotifications.h
+osfmk/UserNotification/UNDReply.defs
+osfmk/UserNotification/UNDRequest.defs
+osfmk/UserNotification/UNDTypes.defs
+osfmk/UserNotification/UNDTypes.h
+osfmk/atm/atm_internal.h
+osfmk/atm/atm_notification.defs
+osfmk/atm/atm_types.defs
+osfmk/atm/atm_types.h
+osfmk/bank/bank_types.h
+osfmk/console/video_console.h
+osfmk/corpses/task_corpse.h
+osfmk/default_pager/default_pager_types.h
+osfmk/device/device.defs
+osfmk/device/device_port.h
+osfmk/device/device_types.defs
+osfmk/device/device_types.h
+osfmk/gssd/gssd_mach.defs
+osfmk/gssd/gssd_mach.h
+osfmk/gssd/gssd_mach_types.h
+osfmk/i386/apic.h
+osfmk/i386/asm.h
+osfmk/i386/atomic.h
+osfmk/i386/bit_routines.h
+osfmk/i386/cpu_capabilities.h
+osfmk/i386/cpu_data.h
+osfmk/i386/cpu_number.h
+osfmk/i386/cpu_topology.h
+osfmk/i386/cpuid.h
+osfmk/i386/eflags.h
+osfmk/i386/io_map_entries.h
+osfmk/i386/lapic.h
+osfmk/i386/lock.h
+osfmk/i386/locks.h
+osfmk/i386/machine_cpu.h
+osfmk/i386/machine_routines.h
+osfmk/i386/mp.h
+osfmk/i386/mp_desc.h
+osfmk/i386/mp_events.h
+osfmk/i386/mtrr.h
+osfmk/i386/pal_hibernate.h
+osfmk/i386/pal_native.h
+osfmk/i386/pal_routines.h
+osfmk/i386/panic_hooks.h
+osfmk/i386/pmCPU.h
+osfmk/i386/pmap.h
+osfmk/i386/proc_reg.h
+osfmk/i386/rtclock_protos.h
+osfmk/i386/seg.h
+osfmk/i386/simple_lock.h
+osfmk/i386/smp.h
+osfmk/i386/tsc.h
+osfmk/i386/tss.h
+osfmk/i386/ucode.h
+osfmk/i386/vmx.h
+osfmk/ipc/ipc_types.h
+osfmk/kdp/kdp_callout.h
+osfmk/kdp/kdp_dyld.h
+osfmk/kdp/kdp_en_debugger.h
+osfmk/kern/affinity.h
+osfmk/kern/assert.h
+osfmk/kern/audit_sessionport.h
+osfmk/kern/backtrace.h
+osfmk/kern/bits.h
+osfmk/kern/block_hint.h
+osfmk/kern/call_entry.h
+osfmk/kern/clock.h
+osfmk/kern/coalition.h
+osfmk/kern/cpu_data.h
+osfmk/kern/cpu_number.h
+osfmk/kern/debug.h
+osfmk/kern/ecc.h
+osfmk/kern/energy_perf.h
+osfmk/kern/exc_resource.h
+osfmk/kern/extmod_statistics.h
+osfmk/kern/host.h
+osfmk/kern/hv_support.h
+osfmk/kern/ipc_mig.h
+osfmk/kern/ipc_misc.h
+osfmk/kern/kalloc.h
+osfmk/kern/kcdata.h
+osfmk/kern/kern_cdata.h
+osfmk/kern/kern_types.h
+osfmk/kern/kext_alloc.h
+osfmk/kern/kpc.h
+osfmk/kern/ledger.h
+osfmk/kern/lock.h
+osfmk/kern/locks.h
+osfmk/kern/mach_param.h
+osfmk/kern/macro_help.h
+osfmk/kern/page_decrypt.h
+osfmk/kern/pms.h
+osfmk/kern/policy_internal.h
+osfmk/kern/processor.h
+osfmk/kern/queue.h
+osfmk/kern/sched_prim.h
+osfmk/kern/sfi.h
+osfmk/kern/simple_lock.h
+osfmk/kern/startup.h
+osfmk/kern/task.h
+osfmk/kern/telemetry.h
+osfmk/kern/thread.h
+osfmk/kern/thread_call.h
+osfmk/kern/timer_call.h
+osfmk/kern/waitq.h
+osfmk/kern/zalloc.h
+osfmk/kextd/kextd_mach.defs
+osfmk/kextd/kextd_mach.h
+osfmk/kperf/action.h
+osfmk/kperf/context.h
+osfmk/kperf/kdebug_trigger.h
+osfmk/kperf/kperf.h
+osfmk/kperf/kperf_timer.h
+osfmk/kperf/kperfbsd.h
+osfmk/kperf/pet.h
+osfmk/lockd/lockd_mach.defs
+osfmk/lockd/lockd_mach.h
+osfmk/lockd/lockd_mach_types.h
+osfmk/mach/audit_triggers.defs
+osfmk/mach/audit_triggers_server.h
+osfmk/mach/boolean.h
+osfmk/mach/branch_predicates.h
+osfmk/mach/clock.defs
+osfmk/mach/clock.h
+osfmk/mach/clock_priv.defs
+osfmk/mach/clock_priv.h
+osfmk/mach/clock_reply.defs
+osfmk/mach/clock_reply_server.h
+osfmk/mach/clock_types.defs
+osfmk/mach/clock_types.h
+osfmk/mach/coalition.h
+osfmk/mach/coalition_notification_server.h
+osfmk/mach/dyld_kernel.h
+osfmk/mach/error.h
+osfmk/mach/exc.defs
+osfmk/mach/exc_server.h
+osfmk/mach/exception.h
+osfmk/mach/exception_types.h
+osfmk/mach/host_info.h
+osfmk/mach/host_notify.h
+osfmk/mach/host_notify_reply.defs
+osfmk/mach/host_priv.defs
+osfmk/mach/host_priv.h
+osfmk/mach/host_reboot.h
+osfmk/mach/host_security.defs
+osfmk/mach/host_security.h
+osfmk/mach/host_special_ports.h
+osfmk/mach/i386/_structs.h
+osfmk/mach/i386/asm.h
+osfmk/mach/i386/boolean.h
+osfmk/mach/i386/exception.h
+osfmk/mach/i386/fp_reg.h
+osfmk/mach/i386/kern_return.h
+osfmk/mach/i386/ndr_def.h
+osfmk/mach/i386/processor_info.h
+osfmk/mach/i386/rpc.h
+osfmk/mach/i386/sdt_isa.h
+osfmk/mach/i386/syscall_sw.h
+osfmk/mach/i386/thread_state.h
+osfmk/mach/i386/thread_status.h
+osfmk/mach/i386/vm_param.h
+osfmk/mach/i386/vm_types.h
+osfmk/mach/kern_return.h
+osfmk/mach/kmod.h
+osfmk/mach/ktrace_background.h
+osfmk/mach/lock_set.defs
+osfmk/mach/lock_set.h
+osfmk/mach/mach_exc.defs
+osfmk/mach/mach_exc_server.h
+osfmk/mach/mach_host.defs
+osfmk/mach/mach_host.h
+osfmk/mach/mach_interface.h
+osfmk/mach/mach_param.h
+osfmk/mach/mach_port.defs
+osfmk/mach/mach_port.h
+osfmk/mach/mach_syscalls.h
+osfmk/mach/mach_time.h
+osfmk/mach/mach_traps.h
+osfmk/mach/mach_types.defs
+osfmk/mach/mach_types.h
+osfmk/mach/mach_vm.defs
+osfmk/mach/mach_vm.h
+osfmk/mach/mach_voucher.defs
+osfmk/mach/mach_voucher.h
+osfmk/mach/mach_voucher_attr_control.defs
+osfmk/mach/mach_voucher_attr_control.h
+osfmk/mach/mach_voucher_types.h
+osfmk/mach/machine.h
+osfmk/mach/machine/asm.h
+osfmk/mach/machine/boolean.h
+osfmk/mach/machine/exception.h
+osfmk/mach/machine/kern_return.h
+osfmk/mach/machine/machine_types.defs
+osfmk/mach/machine/ndr_def.h
+osfmk/mach/machine/processor_info.h
+osfmk/mach/machine/rpc.h
+osfmk/mach/machine/sdt.h
+osfmk/mach/machine/sdt_isa.h
+osfmk/mach/machine/syscall_sw.h
+osfmk/mach/machine/thread_state.h
+osfmk/mach/machine/thread_status.h
+osfmk/mach/machine/vm_param.h
+osfmk/mach/machine/vm_types.h
+osfmk/mach/memory_object_control.h
+osfmk/mach/memory_object_default_server.h
+osfmk/mach/memory_object_types.h
+osfmk/mach/message.h
+osfmk/mach/mig.h
+osfmk/mach/mig_errors.h
+osfmk/mach/mig_strncpy_zerofill_support.h
+osfmk/mach/mig_voucher_support.h
+osfmk/mach/ndr.h
+osfmk/mach/notify.defs
+osfmk/mach/notify.h
+osfmk/mach/notify_server.h
+osfmk/mach/policy.h
+osfmk/mach/port.h
+osfmk/mach/processor.defs
+osfmk/mach/processor.h
+osfmk/mach/processor_info.h
+osfmk/mach/processor_set.defs
+osfmk/mach/processor_set.h
+osfmk/mach/resource_monitors.h
+osfmk/mach/rpc.h
+osfmk/mach/sdt.h
+osfmk/mach/semaphore.h
+osfmk/mach/sfi_class.h
+osfmk/mach/shared_memory_server.h
+osfmk/mach/shared_region.h
+osfmk/mach/std_types.defs
+osfmk/mach/std_types.h
+osfmk/mach/sync_policy.h
+osfmk/mach/syscall_sw.h
+osfmk/mach/sysdiagnose_notification_server.h
+osfmk/mach/task.defs
+osfmk/mach/task.h
+osfmk/mach/task_access.defs
+osfmk/mach/task_access.h
+osfmk/mach/task_access_server.h
+osfmk/mach/task_info.h
+osfmk/mach/task_policy.h
+osfmk/mach/task_special_ports.h
+osfmk/mach/telemetry_notification.defs
+osfmk/mach/telemetry_notification_server.h
+osfmk/mach/thread_act.defs
+osfmk/mach/thread_act.h
+osfmk/mach/thread_info.h
+osfmk/mach/thread_policy.h
+osfmk/mach/thread_special_ports.h
+osfmk/mach/thread_status.h
+osfmk/mach/thread_switch.h
+osfmk/mach/time_value.h
+osfmk/mach/upl.h
+osfmk/mach/vm_attributes.h
+osfmk/mach/vm_behavior.h
+osfmk/mach/vm_inherit.h
+osfmk/mach/vm_map.defs
+osfmk/mach/vm_map.h
+osfmk/mach/vm_param.h
+osfmk/mach/vm_prot.h
+osfmk/mach/vm_purgable.h
+osfmk/mach/vm_region.h
+osfmk/mach/vm_statistics.h
+osfmk/mach/vm_sync.h
+osfmk/mach/vm_types.h
+osfmk/mach_debug/hash_info.h
+osfmk/mach_debug/ipc_info.h
+osfmk/mach_debug/lockgroup_info.h
+osfmk/mach_debug/mach_debug.h
+osfmk/mach_debug/mach_debug_types.defs
+osfmk/mach_debug/mach_debug_types.h
+osfmk/mach_debug/page_info.h
+osfmk/mach_debug/vm_info.h
+osfmk/mach_debug/zone_info.h
+osfmk/machine/atomic.h
+osfmk/machine/cpu_capabilities.h
+osfmk/machine/cpu_number.h
+osfmk/machine/io_map_entries.h
+osfmk/machine/lock.h
+osfmk/machine/locks.h
+osfmk/machine/machine_cpuid.h
+osfmk/machine/machine_kpc.h
+osfmk/machine/machine_routines.h
+osfmk/machine/pal_hibernate.h
+osfmk/machine/pal_routines.h
+osfmk/machine/simple_lock.h
+osfmk/prng/random.h
+osfmk/string.h
+osfmk/vm/WKdm_new.h
+osfmk/vm/pmap.h
+osfmk/vm/vm_compressor_algorithms.h
+osfmk/vm/vm_fault.h
+osfmk/vm/vm_kern.h
+osfmk/vm/vm_map.h
+osfmk/vm/vm_options.h
+osfmk/vm/vm_pageout.h
+osfmk/vm/vm_protos.h
+osfmk/vm/vm_shared_region.h
+osfmk/voucher/ipc_pthread_priority_types.h
+osfmk/x86_64/machine_kpc.h
+pexpert/boot.h
+pexpert/i386/boot.h
+pexpert/i386/efi.h
+pexpert/i386/protos.h
+pexpert/machine/boot.h
+pexpert/machine/protos.h
+pexpert/pexpert.h
+pexpert/pexpert/boot.h
+pexpert/pexpert/device_tree.h
+pexpert/pexpert/i386/boot.h
+pexpert/pexpert/i386/efi.h
+pexpert/pexpert/i386/protos.h
+pexpert/pexpert/machine/boot.h
+pexpert/pexpert/machine/protos.h
+pexpert/pexpert/pexpert.h
+pexpert/pexpert/protos.h
+pexpert/protos.h
+security/audit/audit_ioctl.h
+security/mac.h
+security/mac_policy.h
+security/security/_label.h
+security/security/mac.h
+security/security/mac_alloc.h
+security/security/mac_data.h
+security/security/mac_framework.h
+security/security/mac_internal.h
+security/security/mac_mach_internal.h
+security/security/mac_policy.h
+servers/key_defs.h
+servers/ls_defs.h
+servers/netname.h
+servers/netname_defs.h
+servers/nm_defs.h
+sys/_endian.h
+sys/_posix_availability.h
+sys/_select.h
+sys/_structs.h
+sys/_symbol_aliasing.h
+sys/_types.h
+sys/_types/_blkcnt_t.h
+sys/_types/_blksize_t.h
+sys/_types/_clock_t.h
+sys/_types/_ct_rune_t.h
+sys/_types/_dev_t.h
+sys/_types/_errno_t.h
+sys/_types/_fd_clr.h
+sys/_types/_fd_copy.h
+sys/_types/_fd_def.h
+sys/_types/_fd_isset.h
+sys/_types/_fd_set.h
+sys/_types/_fd_setsize.h
+sys/_types/_fd_zero.h
+sys/_types/_filesec_t.h
+sys/_types/_fsblkcnt_t.h
+sys/_types/_fsfilcnt_t.h
+sys/_types/_fsid_t.h
+sys/_types/_fsobj_id_t.h
+sys/_types/_gid_t.h
+sys/_types/_guid_t.h
+sys/_types/_id_t.h
+sys/_types/_in_addr_t.h
+sys/_types/_in_port_t.h
+sys/_types/_ino64_t.h
+sys/_types/_ino_t.h
+sys/_types/_int16_t.h
+sys/_types/_int32_t.h
+sys/_types/_int64_t.h
+sys/_types/_int8_t.h
+sys/_types/_intptr_t.h
+sys/_types/_iovec_t.h
+sys/_types/_key_t.h
+sys/_types/_mach_port_t.h
+sys/_types/_mbstate_t.h
+sys/_types/_mode_t.h
+sys/_types/_nlink_t.h
+sys/_types/_null.h
+sys/_types/_o_dsync.h
+sys/_types/_o_sync.h
+sys/_types/_off_t.h
+sys/_types/_offsetof.h
+sys/_types/_os_inline.h
+sys/_types/_pid_t.h
+sys/_types/_posix_vdisable.h
+sys/_types/_ptrdiff_t.h
+sys/_types/_rsize_t.h
+sys/_types/_rune_t.h
+sys/_types/_s_ifmt.h
+sys/_types/_sa_family_t.h
+sys/_types/_seek_set.h
+sys/_types/_sigaltstack.h
+sys/_types/_sigset_t.h
+sys/_types/_size_t.h
+sys/_types/_socklen_t.h
+sys/_types/_ssize_t.h
+sys/_types/_suseconds_t.h
+sys/_types/_time_t.h
+sys/_types/_timespec.h
+sys/_types/_timeval.h
+sys/_types/_timeval32.h
+sys/_types/_timeval64.h
+sys/_types/_u_int16_t.h
+sys/_types/_u_int32_t.h
+sys/_types/_u_int64_t.h
+sys/_types/_u_int8_t.h
+sys/_types/_ucontext.h
+sys/_types/_ucontext64.h
+sys/_types/_uid_t.h
+sys/_types/_uintptr_t.h
+sys/_types/_useconds_t.h
+sys/_types/_uuid_t.h
+sys/_types/_va_list.h
+sys/_types/_wchar_t.h
+sys/_types/_wint_t.h
+sys/acct.h
+sys/aio.h
+sys/appleapiopts.h
+sys/attr.h
+sys/buf.h
+sys/cdefs.h
+sys/clonefile.h
+sys/conf.h
+sys/dir.h
+sys/dirent.h
+sys/disk.h
+sys/dkstat.h
+sys/domain.h
+sys/dtrace.h
+sys/dtrace_glue.h
+sys/dtrace_impl.h
+sys/errno.h
+sys/ev.h
+sys/event.h
+sys/fasttrap.h
+sys/fasttrap_isa.h
+sys/fcntl.h
+sys/file.h
+sys/filedesc.h
+sys/filio.h
+sys/gmon.h
+sys/ioccom.h
+sys/ioctl.h
+sys/ioctl_compat.h
+sys/ipc.h
+sys/kauth.h
+sys/kdebug.h
+sys/kdebug_signpost.h
+sys/kern_control.h
+sys/kern_event.h
+sys/kernel.h
+sys/kernel_types.h
+sys/lctx.h
+sys/loadable_fs.h
+sys/lock.h
+sys/lockf.h
+sys/lockstat.h
+sys/malloc.h
+sys/mbuf.h
+sys/mman.h
+sys/mount.h
+sys/msg.h
+sys/msgbuf.h
+sys/netport.h
+sys/param.h
+sys/paths.h
+sys/pipe.h
+sys/poll.h
+sys/posix_sem.h
+sys/posix_shm.h
+sys/proc.h
+sys/proc_info.h
+sys/protosw.h
+sys/ptrace.h
+sys/queue.h
+sys/quota.h
+sys/random.h
+sys/reboot.h
+sys/resource.h
+sys/resourcevar.h
+sys/sbuf.h
+sys/sdt.h
+sys/select.h
+sys/sem.h
+sys/semaphore.h
+sys/shm.h
+sys/signal.h
+sys/signalvar.h
+sys/socket.h
+sys/socketvar.h
+sys/sockio.h
+sys/spawn.h
+sys/stat.h
+sys/stdio.h
+sys/sys_domain.h
+sys/syscall.h
+sys/sysctl.h
+sys/syslimits.h
+sys/syslog.h
+sys/termios.h
+sys/time.h
+sys/timeb.h
+sys/times.h
+sys/tprintf.h
+sys/trace.h
+sys/tty.h
+sys/ttychars.h
+sys/ttycom.h
+sys/ttydefaults.h
+sys/ttydev.h
+sys/types.h
+sys/ubc.h
+sys/ucontext.h
+sys/ucred.h
+sys/uio.h
+sys/un.h
+sys/unistd.h
+sys/unpcb.h
+sys/user.h
+sys/utfconv.h
+sys/utsname.h
+sys/vadvise.h
+sys/vcmd.h
+sys/vm.h
+sys/vmmeter.h
+sys/vmparam.h
+sys/vnioctl.h
+sys/vnode.h
+sys/vnode_if.h
+sys/vstat.h
+sys/wait.h
+sys/xattr.h
+uuid/uuid.h
+vfs/vfs_support.h
+voucher/ipc_pthread_priority_types.h
diff --git a/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix b/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix
index e9aa706da2d3..29ae1871ddb1 100644
--- a/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, binutils-unwrapped, cctools, llvm }:
+{ lib, stdenv, makeWrapper, binutils-unwrapped, cctools, llvm, clang-unwrapped }:
 
 # Make sure both underlying packages claim to have prepended their binaries
 # with the same targetPrefix.
@@ -49,8 +49,19 @@ stdenv.mkDerivation {
         ln -sv "$path" "$dest_path"
       done
     done
+  ''
+  # On aarch64-darwin we must use clang, because "as" from cctools just doesn't
+  # handle the arch. Proxying calls to clang produces quite a bit of warnings,
+  # and using clang directly here is a better option than relying on cctools.
+  # On x86_64-darwin the Clang version is too old to support this mode.
+  + lib.optionalString stdenv.isAarch64 ''
+    rm $out/bin/as
+    makeWrapper "${clang-unwrapped}/bin/clang" "$out/bin/as" \
+      --add-flags "-x assembler -integrated-as -c"
   '';
 
+  nativeBuildInputs = lib.optionals stdenv.isAarch64 [ makeWrapper ];
+
   passthru = {
     inherit targetPrefix;
   };
diff --git a/nixpkgs/pkgs/os-specific/darwin/m-cli/default.nix b/nixpkgs/pkgs/os-specific/darwin/m-cli/default.nix
index b69849d82453..f19f5a0275bc 100644
--- a/nixpkgs/pkgs/os-specific/darwin/m-cli/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/m-cli/default.nix
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
 
     platforms = platforms.darwin;
-    maintainers = with maintainers; [ yurrriq ];
+    maintainers = with maintainers; [];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/macfuse/default.nix b/nixpkgs/pkgs/os-specific/darwin/macfuse/default.nix
new file mode 100644
index 000000000000..4fd92a15562c
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/macfuse/default.nix
@@ -0,0 +1,65 @@
+{ lib, stdenv, fetchurl, cpio, xar, undmg, libtapi, DiskArbitration }:
+
+stdenv.mkDerivation rec {
+  pname = "macfuse-stubs";
+  version = "4.1.0";
+
+  src = fetchurl {
+    url = "https://github.com/osxfuse/osxfuse/releases/download/macfuse-${version}/macfuse-${version}.dmg";
+    sha256 = "118hg64w5wb95lbxw6w1hbqxrx3plcbxfjhvxx86q0zx0saa9diw";
+  };
+
+  nativeBuildInputs = [ cpio xar undmg libtapi ];
+  propagatedBuildInputs = [ DiskArbitration ];
+
+  postUnpack = ''
+    xar -xf 'Install macFUSE.pkg'
+    cd Core.pkg
+    gunzip -dc Payload | cpio -i
+  '';
+
+  sourceRoot = ".";
+
+  buildPhase = ''
+    pushd usr/local/lib
+    for f in *.dylib; do
+      tapi stubify --filetype=tbd-v2  "$f" -o "''${f%%.dylib}.tbd"
+    done
+    sed -i "s|^prefix=.*|prefix=$out|" pkgconfig/fuse.pc
+    popd
+  '';
+
+  # NOTE: Keep in mind that different parts of macFUSE are distributed under a
+  # different license
+  installPhase = ''
+    mkdir -p $out/include $out/lib/pkgconfig
+    cp usr/local/lib/*.tbd $out/lib
+    cp usr/local/lib/pkgconfig/*.pc $out/lib/pkgconfig
+    cp -R usr/local/include/* $out/include
+  '';
+
+  meta = with lib; {
+    homepage = "https://osxfuse.github.io";
+    description = "Build time stubs for FUSE on macOS";
+    longDescription = ''
+      macFUSE is required for this package to work on macOS. To install macFUSE,
+      use the installer from the <link xlink:href="https://osxfuse.github.io/">
+      project website</link>.
+    '';
+    platforms = platforms.darwin;
+    maintainers = with maintainers; [ midchildan ];
+
+    # macFUSE as a whole includes code with restrictions on commercial
+    # redistribution. However, the build artifacts that we actually touch for
+    # this derivation are distributed under a free license.
+    license = with licenses; [
+      lgpl2Plus # libfuse
+    ];
+  };
+
+  passthru.warning = ''
+    macFUSE is required for this package to work on macOS. To install macFUSE,
+    use the installer from the <link xlink:href="https://osxfuse.github.io/">
+    project website</link>.
+  '';
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/mas/default.nix b/nixpkgs/pkgs/os-specific/darwin/mas/default.nix
new file mode 100644
index 000000000000..495d47df89f9
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/mas/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchurl
+, libarchive
+, p7zip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mas";
+  version = "1.8.1";
+
+  src = fetchurl {
+    url = "https://github.com/mas-cli/mas/releases/download/v${version}/mas.pkg";
+    sha256 = "W/wgg+ETeJPoZ7MoVGH2uJzQiZMLIy3n1JYKUloc3ZU=";
+  };
+
+  nativeBuildInputs = [ libarchive p7zip ];
+
+  unpackPhase = ''
+    7z x $src
+    bsdtar -xf Payload~
+  '';
+
+  doBuild = false;
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r ./bin $out
+    cp -r ./Frameworks $out
+  '';
+
+  postFixup = ''
+    install_name_tool -change @rpath/MasKit.framework/Versions/A/MasKit $out/Frameworks/MasKit.framework/Versions/A/MasKit $out/bin/mas
+    install_name_tool -change @rpath/Commandant.framework/Commandant $out/Frameworks/MasKit.framework/Versions/A/Frameworks/Commandant.framework/Versions/A/Commandant $out/bin/mas
+  '';
+
+  meta = with lib; {
+    description = "Mac App Store command line interface";
+    homepage = "https://github.com/mas-cli/mas";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zachcoyle ];
+    platforms = platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/osxfuse/default.nix b/nixpkgs/pkgs/os-specific/darwin/osxfuse/default.nix
deleted file mode 100644
index d0f6b0f53117..000000000000
--- a/nixpkgs/pkgs/os-specific/darwin/osxfuse/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib, stdenv, runCommand, fetchFromGitHub, autoreconfHook }:
-
-let
-  version = "3.8.3";
-
-  headers = runCommand "osxfuse-common-${version}" {
-    src = fetchFromGitHub {
-      owner = "osxfuse";
-      repo = "osxfuse";
-      rev = "osxfuse-${version}";
-      sha256 = "13lmg41zcyiajh8m42w7szkbg2is4551ryx2ia2mmzvvd23pag0z";
-    };
-  } ''
-    mkdir -p $out/include
-    cp --target-directory=$out/include $src/common/*.h
-  '';
-in
-
-stdenv.mkDerivation {
-
-  pname = "osxfuse";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "osxfuse";
-    repo = "fuse";
-    rev = "1a1977a"; # Submodule reference from osxfuse/osxfuse at tag osxfuse-${version}
-    sha256 = "101fw8j40ylfbbrjycnwr5qp422agyf9sfbczyb9w5ivrkds3rfw";
-  };
-
-  postPatch = ''
-    touch config.rpath
-  '';
-
-  postInstall = ''
-    ln -s osxfuse.pc $out/lib/pkgconfig/fuse.pc
-  '';
-
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ headers ];
-
-  meta = with lib; {
-    homepage = "https://osxfuse.github.io";
-    description = "C-based FUSE for macOS SDK";
-    platforms = platforms.darwin;
-    license = licenses.gpl2;
-  };
-}
diff --git a/nixpkgs/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix b/nixpkgs/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix
index 9f0ee4db118c..560be0c31ab6 100644
--- a/nixpkgs/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix
@@ -23,9 +23,9 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ ninja python3 ];
   buildInputs = [ curl libxml2 objc4 ICU ];
 
-  sourceRoot = "source/CoreFoundation";
+  postPatch = ''
+    cd CoreFoundation
 
-  patchPhase = ''
     cp ${sysdir-free-system-directories} Base.subproj/CFSystemDirectories.c
 
     # In order, since I can't comment individual lines:
@@ -39,6 +39,7 @@ stdenv.mkDerivation {
     # Fix sandbox impurities.
     substituteInPlace ../lib/script.py \
       --replace '/bin/cp' cp
+    patchShebangs --build ../configure
 
     # Includes xpc for some initialization routine that they don't define anyway, so no harm here
     substituteInPlace PlugIn.subproj/CFBundlePriv.h \
diff --git a/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix b/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
index 16ed52ea81e7..cabac19ba867 100644
--- a/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
@@ -14,12 +14,6 @@ let
 
 minSdkVersion = targetPlatform.minSdkVersion or "9.0";
 
-iosPlatformArch = { parsed, ... }: {
-  armv7a  = "armv7";
-  aarch64 = "arm64";
-  x86_64  = "x86_64";
-}.${parsed.cpu.name};
-
 in
 
 rec {
@@ -35,9 +29,7 @@ rec {
   binutils = wrapBintoolsWith {
     libc = targetIosSdkPkgs.libraries;
     bintools = binutils-unwrapped;
-    extraBuildCommands = ''
-      echo "-arch ${iosPlatformArch targetPlatform}" >> $out/nix-support/libc-ldflags
-    '' + lib.optionalString (sdk.platform == "iPhoneSimulator") ''
+    extraBuildCommands = lib.optionalString (sdk.platform == "iPhoneSimulator") ''
       echo "-platform_version ios-sim ${minSdkVersion} ${sdk.version}" >> $out/nix-support/libc-ldflags
     '' + lib.optionalString (sdk.platform == "iPhoneOS") ''
       echo "-platform_version ios ${minSdkVersion} ${sdk.version}" >> $out/nix-support/libc-ldflags
@@ -52,7 +44,7 @@ rec {
     extraBuildCommands = ''
       tr '\n' ' ' < $out/nix-support/cc-cflags > cc-cflags.tmp
       mv cc-cflags.tmp $out/nix-support/cc-cflags
-      echo "-target ${targetPlatform.config} -arch ${iosPlatformArch targetPlatform}" >> $out/nix-support/cc-cflags
+      echo "-target ${targetPlatform.config}" >> $out/nix-support/cc-cflags
       echo "-isystem ${sdk}/usr/include${lib.optionalString (lib.versionAtLeast "10" sdk.version) " -isystem ${sdk}/usr/include/c++/4.2.1/ -stdlib=libstdc++"}" >> $out/nix-support/cc-cflags
     '' + lib.optionalString (sdk.platform == "iPhoneSimulator") ''
       echo "-mios-simulator-version-min=${minSdkVersion}" >> $out/nix-support/cc-cflags
diff --git a/nixpkgs/pkgs/os-specific/linux/acpi-call/default.nix b/nixpkgs/pkgs/os-specific/linux/acpi-call/default.nix
index b79f0bd84f2f..f986ed790a16 100644
--- a/nixpkgs/pkgs/os-specific/linux/acpi-call/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/acpi-call/default.nix
@@ -2,13 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "acpi-call";
-  version = "2020-04-07-${kernel.version}";
+  version = "1.2.1";
+  name = "${pname}-${version}-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "acpi_call";
-    rev = "fe4cd0124099b88b61f83006023bc0d95e742e75";
-    sha256 = "1rksbg78i7y2wzam9p6kbhx8rmkaiq0kqg8nj7k0j6d25m79289s";
+    rev = "v${version}";
+    sha256 = "0mr4rjbv6fj4phf038addrgv32940bphghw2v9n1z4awvw7wzkbg";
   };
 
   hardeningDisable = [ "pic" ];
@@ -26,8 +27,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     maintainers = with maintainers; [ raskin mic92 ];
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/nix-community/acpi_call";
     platforms = platforms.linux;
     description = "A module allowing arbitrary ACPI calls; use case: hybrid video";
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/akvcam/default.nix b/nixpkgs/pkgs/os-specific/linux/akvcam/default.nix
index 9e7450775147..815dc6a2ee3c 100644
--- a/nixpkgs/pkgs/os-specific/linux/akvcam/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/akvcam/default.nix
@@ -2,16 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "akvcam";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "webcamoid";
     repo = "akvcam";
     rev = version;
-    sha256 = "ULEhfF+uC/NcVUGAtmP1+BnrcgRgftNS97nLp81avQ8=";
+    sha256 = "0r5xg7pz0wl6pq5029rpzm9fn978vq0md31xjkp2amny7rrgxw72";
   };
 
   nativeBuildInputs = [ qmake ];
+  dontWrapQtApps = true;
 
   qmakeFlags = [
     "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix
index 602d42781836..09dbdbc9b6fb 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix
@@ -15,8 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ alsaLib libogg ]
     ++ lib.optional (libpulseaudio != null) libpulseaudio
-    # https://github.com/NixOS/nixpkgs/issues/96548
-    ++ lib.optional (libjack2 != null && (stdenv.buildPlatform == stdenv.hostPlatform)) libjack2;
+    ++ lib.optional (libjack2 != null) libjack2;
 
   meta = with lib; {
     description = "Various plugins for ALSA";
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix
index da365fb7d99a..dd747bbbf6fc 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix
@@ -9,8 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "09m4dnn4kplawprd2bl15nwa0b4r1brab3x44ga7f1fyk7aw5zwq";
   };
 
-  nativeBuildInputs = [ gettext ];
-  buildInputs = [ makeWrapper alsaLib ncurses libsamplerate fftw ];
+  nativeBuildInputs = [ gettext makeWrapper ];
+  buildInputs = [ alsaLib ncurses libsamplerate fftw ];
 
   configureFlags = [ "--disable-xmlto" "--with-udev-rules-dir=$(out)/lib/udev/rules.d" ];
 
diff --git a/nixpkgs/pkgs/os-specific/linux/android-udev-rules/default.nix b/nixpkgs/pkgs/os-specific/linux/android-udev-rules/default.nix
index 3d69f5ce0e59..e542c0dbc634 100644
--- a/nixpkgs/pkgs/os-specific/linux/android-udev-rules/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/android-udev-rules/default.nix
@@ -6,24 +6,26 @@
 
 stdenv.mkDerivation rec {
   pname = "android-udev-rules";
-  version = "20201003";
+  version = "20210302";
 
   src = fetchFromGitHub {
     owner = "M0Rf30";
     repo = "android-udev-rules";
     rev = version;
-    sha256 = "07s5fdjbk5q4km6gz9759ngdavrqdgbnkd2b7z9z5lqw1q0b2422";
+    sha256 = "sha256-yIVHcaQAr2gKH/NZeN+vRmGS8OgyNeRsZkCYyqjsSsI=";
   };
 
   installPhase = ''
+    runHook preInstall
     install -D 51-android.rules $out/lib/udev/rules.d/51-android.rules
+    runHook postInstall
   '';
 
   meta = with lib; {
     homepage = "https://github.com/M0Rf30/android-udev-rules";
     description = "Android udev rules list aimed to be the most comprehensive on the net";
     platforms = platforms.linux;
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/default.nix b/nixpkgs/pkgs/os-specific/linux/ati-drivers/default.nix
index b73018370266..768aa7d7e7d9 100644
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ati-drivers/default.nix
@@ -85,11 +85,11 @@ stdenv.mkDerivation rec {
                  (lib.versionAtLeast kernel.version "4.9") )
                [ ./patches/4.9-get_user_pages.patch ];
 
+  nativeBuildInputs = [ unzip ];
   buildInputs =
     [ xorg.libXrender xorg.libXext xorg.libX11 xorg.libXinerama xorg.libSM
       xorg.libXrandr xorg.libXxf86vm xorg.xorgproto xorg.imake xorg.libICE
       patchelf
-      unzip
       libGLU libGL
       fontconfig
       freetype
diff --git a/nixpkgs/pkgs/os-specific/linux/audit/default.nix b/nixpkgs/pkgs/os-specific/linux/audit/default.nix
index 7d72b0eec56b..84bc6086d122 100644
--- a/nixpkgs/pkgs/os-specific/linux/audit/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/audit/default.nix
@@ -36,7 +36,8 @@ stdenv.mkDerivation rec {
   # TODO: Remove the musl patches when
   #         https://github.com/linux-audit/audit-userspace/pull/25
   #       is available with the next release.
-  patches = lib.optional stdenv.hostPlatform.isMusl [
+  patches = [ ./patches/weak-symbols.patch ]
+  ++ lib.optional stdenv.hostPlatform.isMusl [
     (
       let patch = fetchpatch {
             url = "https://github.com/linux-audit/audit-userspace/commit/d579a08bb1cde71f939c13ac6b2261052ae9f77e.patch";
@@ -55,6 +56,13 @@ stdenv.mkDerivation rec {
 
   prePatch = ''
     sed -i 's,#include <sys/poll.h>,#include <poll.h>\n#include <limits.h>,' audisp/audispd.c
+  ''
+  # According to https://stackoverflow.com/questions/13089166
+  # --whole-archive linker flag is required to be sure that linker
+  # correctly chooses strong version of symbol regardless of order of
+  # object files at command line.
+  + lib.optionalString stdenv.targetPlatform.isStatic ''
+    export LDFLAGS=-Wl,--whole-archive
   '';
   meta = {
     description = "Audit Library";
diff --git a/nixpkgs/pkgs/os-specific/linux/audit/patches/weak-symbols.patch b/nixpkgs/pkgs/os-specific/linux/audit/patches/weak-symbols.patch
new file mode 100644
index 000000000000..301ea9a5476c
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/audit/patches/weak-symbols.patch
@@ -0,0 +1,147 @@
+Executables in src/ directory are built from source files in src/
+and are linked to libauparse, with both src/auditd-config.c and
+auparse/auditd-config.c defining "free_config" function.
+
+It is known (although obscure) behaviour of shared libraries that
+symbol defined in binary itself overrides symbol in shared library;
+with static linkage it expectedly results in multiple definition
+error.
+
+This set of fixes explicitly marks libauparse versions of
+conflicting functions as weak to have behaviour coherent with
+dynamic linkage version -- definitions in src/ overriding definition
+in auparse/.
+
+Still, this architecture is very strange and confusing.
+
+diff -r -U5 audit-2.8.5-orig/auparse/auditd-config.c audit-2.8.5/auparse/auditd-config.c
+--- audit-2.8.5-orig/auparse/auditd-config.c	2019-03-01 20:19:13.000000000 +0000
++++ audit-2.8.5/auparse/auditd-config.c	2021-01-13 11:36:12.716226498 +0000
+@@ -68,10 +68,11 @@
+ };
+ 
+ /*
+  * Set everything to its default value
+ */
++#pragma weak clear_config
+ void clear_config(struct daemon_conf *config)
+ {
+ 	config->local_events = 1;
+ 	config->qos = QOS_NON_BLOCKING;
+ 	config->sender_uid = 0;
+@@ -322,10 +323,11 @@
+ 	if (config->log_file == NULL)
+ 		return 1;
+ 	return 0;
+ }
+ 
++#pragma weak free_config
+ void free_config(struct daemon_conf *config)
+ {
+ 	free((void*)config->log_file);
+ }
+ 
+diff -r -U5 audit-2.8.5-orig/auparse/interpret.c audit-2.8.5/auparse/interpret.c
+--- audit-2.8.5-orig/auparse/interpret.c	2019-03-01 20:19:13.000000000 +0000
++++ audit-2.8.5/auparse/interpret.c	2021-01-13 11:39:42.107217224 +0000
+@@ -545,10 +545,11 @@
+ 	else
+ 		snprintf(buf, size, "unknown(%d)", uid);
+ 	return buf;
+ }
+ 
++#pragma weak aulookup_destroy_uid_list
+ void aulookup_destroy_uid_list(void)
+ {
+ 	if (uid_cache_created == 0)
+ 		return;
+ 
+@@ -2810,10 +2811,11 @@
+ 
+ /*
+  * This is the main entry point for the auparse library. Call chain is:
+  * auparse_interpret_field -> nvlist_interp_cur_val -> interpret
+  */
++#pragma weak interpret
+ const char *interpret(const rnode *r, auparse_esc_t escape_mode)
+ {
+ 	const nvlist *nv = &r->nv;
+ 	int type;
+ 	idata id;
+diff -r -U5 audit-2.8.5-orig/auparse/nvlist.c audit-2.8.5/auparse/nvlist.c
+--- audit-2.8.5-orig/auparse/nvlist.c	2019-02-04 14:26:52.000000000 +0000
++++ audit-2.8.5/auparse/nvlist.c	2021-01-13 11:37:37.190222757 +0000
+@@ -27,10 +27,11 @@
+ #include "nvlist.h"
+ #include "interpret.h"
+ #include "auparse-idata.h"
+ 
+ 
++#pragma weak nvlist_create
+ void nvlist_create(nvlist *l)
+ {
+ 	l->head = NULL;
+ 	l->cur = NULL;
+ 	l->cnt = 0;
+@@ -47,17 +48,19 @@
+ 	while (node->next)
+ 		node = node->next;
+ 	l->cur = node;
+ }
+ 
++#pragma weak nvlist_next
+ nvnode *nvlist_next(nvlist *l)
+ {
+ 	if (l->cur)
+ 		l->cur = l->cur->next;
+ 	return l->cur;
+ }
+ 
++#pragma weak nvlist_append
+ void nvlist_append(nvlist *l, nvnode *node)
+ {
+ 	nvnode* newnode = malloc(sizeof(nvnode));
+ 
+ 	newnode->name = node->name;
+@@ -141,10 +144,11 @@
+ 	if (l->cur->interp_val)
+ 		return l->cur->interp_val;
+ 	return interpret(r, escape_mode);
+ }
+ 
++#pragma weak nvlist_clear
+ void nvlist_clear(nvlist* l)
+ {
+ 	nvnode* nextnode;
+ 	register nvnode* current;
+ 
+diff -r -U5 audit-2.8.5-orig/auparse/strsplit.c audit-2.8.5/auparse/strsplit.c
+--- audit-2.8.5-orig/auparse/strsplit.c	2019-03-01 21:15:30.000000000 +0000
++++ audit-2.8.5/auparse/strsplit.c	2021-01-13 11:38:04.306221556 +0000
+@@ -54,10 +54,11 @@
+ 			return NULL;
+ 		return s;
+ 	}
+ }
+ 
++#pragma weak audit_strsplit
+ char *audit_strsplit(char *s)
+ {
+ 	static char *str = NULL;
+ 	char *ptr;
+ 
+diff -r -U5 audit-2.8.5-orig/lib/strsplit.c audit-2.8.5/lib/strsplit.c
+--- audit-2.8.5-orig/lib/strsplit.c	2019-03-01 20:19:13.000000000 +0000
++++ audit-2.8.5/lib/strsplit.c	2021-01-13 11:38:29.444220443 +0000
+@@ -23,10 +23,11 @@
+ 
+ #include <string.h>
+ #include "libaudit.h"
+ #include "private.h"
+ 
++#pragma weak audit_strsplit_r
+ char *audit_strsplit_r(char *s, char **savedpp)
+ {
+ 	char *ptr;
+ 
+ 	if (s)
diff --git a/nixpkgs/pkgs/os-specific/linux/autofs/default.nix b/nixpkgs/pkgs/os-specific/linux/autofs/default.nix
index f7ca3f71d434..3055a91161b3 100644
--- a/nixpkgs/pkgs/os-specific/linux/autofs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/autofs/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, flex, bison, linuxHeaders, libtirpc, mount, umount, nfs-utils, e2fsprogs
-, libxml2, kerberos, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto }:
+, libxml2, libkrb5, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto }:
 
 let
   version = "5.1.6";
@@ -36,7 +36,7 @@ in stdenv.mkDerivation {
     #make install SUBDIRS="samples" # impure!
   '';
 
-  buildInputs = [ linuxHeaders libtirpc libxml2 kerberos kmod openldap sssd
+  buildInputs = [ linuxHeaders libtirpc libxml2 libkrb5 kmod openldap sssd
                   openssl cyrus_sasl rpcsvc-proto ];
 
   nativeBuildInputs = [ flex bison ];
diff --git a/nixpkgs/pkgs/os-specific/linux/bcc/default.nix b/nixpkgs/pkgs/os-specific/linux/bcc/default.nix
index d994aed6d0f9..290e3b561800 100644
--- a/nixpkgs/pkgs/os-specific/linux/bcc/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bcc/default.nix
@@ -6,13 +6,13 @@
 
 python.pkgs.buildPythonApplication rec {
   pname = "bcc";
-  version = "0.18.0";
+  version = "0.19.0";
 
   disabled = !stdenv.isLinux;
 
   src = fetchurl {
     url = "https://github.com/iovisor/bcc/releases/download/v${version}/bcc-src-with-submodule.tar.gz";
-    sha256 = "sha256-0F8tppVFu7cnuSnlgcEvbEdykxYhGJnTc04I98/yIVs=";
+    sha256 = "sha256-TEH8Gmp+8ghLQ8UsGy5hBCMLqfMeApWEFr8THYSOdOQ=";
   };
   format = "other";
 
diff --git a/nixpkgs/pkgs/os-specific/linux/bluez/default.nix b/nixpkgs/pkgs/os-specific/linux/bluez/default.nix
index 29dceecad6ed..6cb23de50a99 100644
--- a/nixpkgs/pkgs/os-specific/linux/bluez/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bluez/default.nix
@@ -19,11 +19,11 @@
   ];
 in stdenv.mkDerivation rec {
   pname = "bluez";
-  version = "5.55";
+  version = "5.56";
 
   src = fetchurl {
     url = "mirror://kernel/linux/bluetooth/${pname}-${version}.tar.xz";
-    sha256 = "124v9s4y1s7s6klx5vlmzpk1jlr4x84ch7r7scm7x2f42dqp2qw8";
+    sha256 = "sha256-WcTbqfyKripqX48S8ZvBsMLcJzVcfKMSPu0/5r19C50=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/bolt/default.nix b/nixpkgs/pkgs/os-specific/linux/bolt/default.nix
index d692e30a03f9..d38a97387f5a 100644
--- a/nixpkgs/pkgs/os-specific/linux/bolt/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bolt/default.nix
@@ -20,14 +20,14 @@
 
 stdenv.mkDerivation rec {
   pname = "bolt";
-  version = "0.9";
+  version = "0.9.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "bolt";
     repo = "bolt";
     rev = version;
-    sha256 = "sha256-lcJE+bMK2S2GObHMy/Fu12WGb3T1HrWjsNyZPz4/f4E=";
+    sha256 = "1phgp8fs0dlj74kbkqlvfniwc32daz47b3pvsxlfxqzyrp77xrfm";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix b/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix
index 8edd9257fed2..701fed06bb62 100644
--- a/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bpftrace";
-  version = "0.11.4";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner  = "iovisor";
     repo   = "bpftrace";
-    rev    = "refs/tags/v${version}";
-    sha256 = "0y4qgm2cpccrsm20rnh92hqplddqsc5q5zhw9nqn2igm3h9i0z7h";
+    rev    = "v${version}";
+    sha256 = "0njbixkrpdl9gjnkzg0ybmqsva0ydfda5vms66v8ij7xida2qy07";
   };
 
   buildInputs = with llvmPackages;
diff --git a/nixpkgs/pkgs/os-specific/linux/btfs/default.nix b/nixpkgs/pkgs/os-specific/linux/btfs/default.nix
index dc0b13ef59b4..70864b311d29 100644
--- a/nixpkgs/pkgs/os-specific/linux/btfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/btfs/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "btfs";
-  version = "2.23";
+  version = "2.24";
 
   src = fetchFromGitHub {
     owner  = "johang";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1cfjhyn9cjyyxyd0f08b2ra258pzkljwvkj0iwrjpd0nrbl6wkq5";
+    sha256 = "sha256-fkS0U/MqFRQNi+n7NE4e1cnNICvfST2IQ9FMoJUyj6w=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/os-specific/linux/busybox/default.nix b/nixpkgs/pkgs/os-specific/linux/busybox/default.nix
index a4a7adeb8b79..6c034e1c2af0 100644
--- a/nixpkgs/pkgs/os-specific/linux/busybox/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/busybox/default.nix
@@ -118,9 +118,11 @@ stdenv.mkDerivation rec {
     logger() { '$out'/bin/logger "$@"; }\
     ' ${debianDispatcherScript} > ${outDispatchPath}
     chmod 555 ${outDispatchPath}
-    PATH=$out/bin patchShebangs ${outDispatchPath}
+    HOST_PATH=$out/bin patchShebangs --host ${outDispatchPath}
   '';
 
+  strictDeps = true;
+
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   buildInputs = lib.optionals (enableStatic && !useMusl && stdenv.cc.libc ? static) [ stdenv.cc.libc stdenv.cc.libc.static ];
diff --git a/nixpkgs/pkgs/os-specific/linux/cifs-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/cifs-utils/default.nix
index c4ed4d4fc0f3..38f958fe9dd3 100644
--- a/nixpkgs/pkgs/os-specific/linux/cifs-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cifs-utils/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, autoreconfHook, docutils, pkg-config
-, kerberos, keyutils, pam, talloc, python3 }:
+, libkrb5, keyutils, pam, talloc, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "cifs-utils";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook docutils pkg-config ];
 
-  buildInputs = [ kerberos keyutils pam talloc python3 ];
+  buildInputs = [ libkrb5 keyutils pam talloc python3 ];
 
   configureFlags = [ "ROOTSBINDIR=$(out)/sbin" ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     # AC_FUNC_MALLOC is broken on cross builds.
diff --git a/nixpkgs/pkgs/os-specific/linux/compsize/default.nix b/nixpkgs/pkgs/os-specific/linux/compsize/default.nix
index f835b9a9ec9d..9d0dbeffaee3 100644
--- a/nixpkgs/pkgs/os-specific/linux/compsize/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/compsize/default.nix
@@ -13,18 +13,19 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ btrfs-progs ];
 
-  installPhase = ''
-    mkdir -p $out/bin
+  installFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  preInstall = ''
     mkdir -p $out/share/man/man8
-    install -m 0755 compsize $out/bin
-    install -m 0444 compsize.8 $out/share/man/man8
   '';
 
   meta = with lib; {
     description = "btrfs: Find compression type/ratio on a file or set of files";
-    homepage    = "https://github.com/kilobyte/compsize";
-    license     = licenses.gpl2Plus;
+    homepage = "https://github.com/kilobyte/compsize";
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ CrazedProgrammer ];
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/conky/default.nix b/nixpkgs/pkgs/os-specific/linux/conky/default.nix
index 61b66c6c861d..0e7eaa19b4de 100644
--- a/nixpkgs/pkgs/os-specific/linux/conky/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/conky/default.nix
@@ -68,13 +68,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "conky";
-  version = "1.11.6";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "brndnmtthws";
     repo = "conky";
     rev = "v${version}";
-    sha256 = "0y2g66fjqp2hdk0y1h4ijxhnv34j16gizvxpmbigwh4n6zijcm6v";
+    sha256 = "sha256-qQx9+Z1OAQlbHupflzHD5JV4NqedoF8A57F1+rPT3/o=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/criu/default.nix b/nixpkgs/pkgs/os-specific/linux/criu/default.nix
index f48ed260c768..af7726458248 100644
--- a/nixpkgs/pkgs/os-specific/linux/criu/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/criu/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, protobuf, protobufc, asciidoc, iptables
 , xmlto, docbook_xsl, libpaper, libnl, libcap, libnet, pkg-config
-, which, python3, makeWrapper, docbook_xml_dtd_45 }:
+, which, python3, makeWrapper, docbook_xml_dtd_45, perl }:
 
 stdenv.mkDerivation rec {
   pname = "criu";
@@ -12,14 +12,14 @@ stdenv.mkDerivation rec {
   };
 
   enableParallelBuilding = true;
-  nativeBuildInputs = [ pkg-config docbook_xsl which makeWrapper docbook_xml_dtd_45 python3 python3.pkgs.wrapPython ];
+  nativeBuildInputs = [ pkg-config docbook_xsl which makeWrapper docbook_xml_dtd_45 python3 python3.pkgs.wrapPython perl ];
   buildInputs = [ protobuf protobufc asciidoc xmlto libpaper libnl libcap libnet iptables ];
   propagatedBuildInputs = with python3.pkgs; [ python python3.pkgs.protobuf ];
 
   postPatch = ''
-    substituteInPlace ./Documentation/Makefile --replace "2>/dev/null" ""
-    substituteInPlace ./Documentation/Makefile --replace "-m custom.xsl" "-m custom.xsl --skip-validation -x ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"
-    substituteInPlace ./criu/Makefile --replace "-I/usr/include/libnl3" "-I${libnl.dev}/include/libnl3"
+    substituteInPlace ./Documentation/Makefile \
+      --replace "2>/dev/null" "" \
+      --replace "-m custom.xsl" "-m custom.xsl --skip-validation -x ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"
     substituteInPlace ./Makefile --replace "head-name := \$(shell git tag -l v\$(CRIU_VERSION))" "head-name = ${version}.0"
     ln -sf ${protobuf}/include/google/protobuf/descriptor.proto ./images/google/protobuf/descriptor.proto
   '';
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     description = "Userspace checkpoint/restore for Linux";
     homepage    = "https://criu.org";
     license     = licenses.gpl2;
-    platforms   = [ "x86_64-linux" ];
+    platforms   = [ "x86_64-linux" "aarch64-linux" ];
     maintainers = [ maintainers.thoughtpolice ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/cryptsetup/default.nix b/nixpkgs/pkgs/os-specific/linux/cryptsetup/default.nix
index d0e685cd0fa9..ad700c097722 100644
--- a/nixpkgs/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cryptsetup";
-  version = "2.3.4";
+  version = "2.3.5";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/cryptsetup/v2.3/${pname}-${version}.tar.xz";
-    sha256 = "0wrpz2fzbsszmsgxxbssxjgylpyiindh24z8g13m2fxmjsxyw5lx";
+    sha256 = "sha256-ztmUb0RNEyU22vkvyKykJ3Y4o8LZbiBUCyuuTTb9cME=";
   };
 
   # Disable 4 test cases that fail in a sandbox
diff --git a/nixpkgs/pkgs/os-specific/linux/dlm/default.nix b/nixpkgs/pkgs/os-specific/linux/dlm/default.nix
new file mode 100644
index 000000000000..9e81ea38348b
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/dlm/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, fetchFromSourcehut
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "dlm";
+  version = "2020-01-07";
+
+  src = fetchFromSourcehut {
+    owner = "~kennylevinsen";
+    repo = pname;
+    rev = "6b0e11c4f453b1a4d7a32019227539a980b7ce66";
+    sha256 = "1r3w7my0g3v2ya317qnvjx8wnagjahpj7yx72a65hf2pjbf5x42p";
+  };
+
+  cargoSha256 = "OFMCsUmrRYlobiUAqm1huuzDxdf1BWmU2RqZ9Y6Yjew=";
+
+  meta = with lib; {
+    description = "A stupid simple graphical login manager";
+    homepage = "https://git.sr.ht/~kennylevinsen/dlm";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ luc65r ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/dmtcp/default.nix b/nixpkgs/pkgs/os-specific/linux/dmtcp/default.nix
index 21458daf966f..5a472c73578a 100644
--- a/nixpkgs/pkgs/os-specific/linux/dmtcp/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dmtcp/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, bash, perl, python }:
+{ lib, stdenv, fetchFromGitHub, bash, perl, python2 }:
+
+# There are fixes for python3 compatibility on master
 
 stdenv.mkDerivation rec {
   pname = "dmtcp";
@@ -28,7 +30,7 @@ stdenv.mkDerivation rec {
     substituteInPlace test/autotest.py \
       --replace /bin/bash ${bash}/bin/bash \
       --replace /usr/bin/perl ${perl}/bin/perl \
-      --replace /usr/bin/python ${python}/bin/python \
+      --replace /usr/bin/python ${python2}/bin/python \
       --replace "os.environ['USER']" "\"nixbld1\"" \
       --replace "os.getenv('USER')" "\"nixbld1\""
   '';
diff --git a/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix b/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
index ab1839368958..e71da643bb42 100644
--- a/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
@@ -70,6 +70,6 @@ in stdenv.mkDerivation rec {
     homepage = "http://dpdk.org/";
     license = with licenses; [ lgpl21 gpl2 bsd2 ];
     platforms =  platforms.linux;
-    maintainers = with maintainers; [ domenkozar magenbluten orivej ];
+    maintainers = with maintainers; [ magenbluten orivej ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/dstat/default.nix b/nixpkgs/pkgs/os-specific/linux/dstat/default.nix
index 76abeff42db9..9f0afd6c2bd2 100644
--- a/nixpkgs/pkgs/os-specific/linux/dstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dstat/default.nix
@@ -37,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    changelog = "https://github.com/dstat-real/dstat/blob/v${version}/ChangeLog";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/ell/default.nix b/nixpkgs/pkgs/os-specific/linux/ell/default.nix
index ced77f3fcc9e..280960591015 100644
--- a/nixpkgs/pkgs/os-specific/linux/ell/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ell/default.nix
@@ -7,14 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ell";
-  version = "0.36";
+  version = "0.38";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/libs/${pname}/${pname}.git";
     rev = version;
-    sha256 = "0w7v2hihwwmnqd56bsmbjsiw8yyadr7zbdssjamqxx0pyl3dnrda";
+    sha256 = "sha256-UR6NHIO/L/QbuVerXe32RNT33wwrDvIZpV6nlYaImI8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/ena/default.nix b/nixpkgs/pkgs/os-specific/linux/ena/default.nix
index dc17f7f16965..62f95ef53220 100644
--- a/nixpkgs/pkgs/os-specific/linux/ena/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ena/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, kernel }:
 
 stdenv.mkDerivation rec {
-  version = "2.3.0";
+  version = "2.4.1";
   name = "ena-${version}-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "amzn";
     repo = "amzn-drivers";
     rev = "ena_linux_${version}";
-    sha256 = "sha256-ho6yKCgYo3p50leQUCmzNO/3wqzSzs27Eash3AWBaiE=";
+    sha256 = "0f3i878g11yfw6n68p3qf125jsnggy706jhc8sc0z1xgap6qgh09";
   };
 
   hardeningDisable = [ "pic" ];
@@ -19,23 +19,28 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
 
   configurePhase = ''
+    runHook preConfigure
     cd kernel/linux/ena
     substituteInPlace Makefile --replace '/lib/modules/$(BUILD_KERNEL)' ${kernel.dev}/lib/modules/${kernel.modDirVersion}
+    runHook postConfigure
   '';
 
   installPhase = ''
+    runHook preInstall
     strip -S ena.ko
     dest=$out/lib/modules/${kernel.modDirVersion}/misc
     mkdir -p $dest
     cp ena.ko $dest/
     xz $dest/ena.ko
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Amazon Elastic Network Adapter (ENA) driver for Linux";
     homepage = "https://github.com/amzn/amzn-drivers";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.eelco ];
     platforms = platforms.linux;
+    broken = kernel.kernelOlder "4.5";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/fatrace/default.nix b/nixpkgs/pkgs/os-specific/linux/fatrace/default.nix
index a7f754a53ab5..61044526e44a 100644
--- a/nixpkgs/pkgs/os-specific/linux/fatrace/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fatrace/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fatrace";
-  version = "0.16.1";
+  version = "0.16.2";
 
   src = fetchFromGitHub {
     owner = "martinpitt";
     repo = pname;
     rev = version;
-    sha256 = "0lxfqin2bw9235yah8ylb4p8lc3755050sjg30z3gy7bab0lfyg9";
+    sha256 = "sha256-1daYCVGz8Zd42j2QMFL5EAULKkmBnbE828i5NV9Kcb8=";
   };
 
   buildInputs = [ python3 which ];
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
index 6801256c7d36..b66c4e73084f 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
@@ -2,12 +2,12 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "firmware-linux-nonfree";
-  version = "2021-02-08";
+  version = "2021-03-15";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
-    rev = lib.replaceStrings ["-"] [""] version;
-    sha256 = "0c85cd659312isfz1r87qswsgfhy0rljagcwspnvjljqrh9bsgzq";
+    rev = "refs/tags/" + lib.replaceStrings ["-"] [""] version;
+    sha256 = "sha256-BnYqveVFJk/tVYgYuggXgYGcUCZT9iPkCQIi48FOTWc=";
   };
 
   installFlags = [ "DESTDIR=$(out)" ];
@@ -17,7 +17,7 @@ stdenvNoCC.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "0l4xsgxdvjffad7a98n42nyqy3ihs6m6hy3qsfkqin9z10413x5n";
+  outputHash = "sha256-TzAMGj7IDhzXcFhHAd15aZvAqyN+OKlJTkIhVGoTkIs=";
 
   meta = with lib; {
     description = "Binary firmware collection packaged by kernel.org";
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix
index f7f02037800b..80730fdbefbc 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix
@@ -1,4 +1,4 @@
-{ rustPlatform, lib, fetchFromGitHub, lzma, pkg-config, openssl, dbus, glib, udev, cairo, pango, atk, gdk-pixbuf, gtk3, wrapGAppsHook }:
+{ rustPlatform, lib, fetchFromGitHub, xz, pkg-config, openssl, dbus, glib, udev, cairo, pango, atk, gdk-pixbuf, gtk3, wrapGAppsHook }:
 rustPlatform.buildRustPackage rec {
   pname = "firmware-manager";
   version = "0.1.2";
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
 
-  buildInputs = [ lzma openssl dbus glib udev cairo pango atk gdk-pixbuf gtk3 ];
+  buildInputs = [ xz openssl dbus glib udev cairo pango atk gdk-pixbuf gtk3 ];
 
   depsExtraArgs.postPatch = "make prefix='$(out)' toml-gen";
 
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix
index 453d3ab9a47a..24e23f2b7e97 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix
@@ -74,6 +74,9 @@ let
   # only redfish for x86_64
   haveRedfish = stdenv.isx86_64;
 
+  # only use msr if x86 (requires cpuid)
+  haveMSR = isx86;
+
   # # Currently broken on Aarch64
   # haveFlashrom = isx86;
   # Experimental
@@ -88,7 +91,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "fwupd";
-    version = "1.5.5";
+    version = "1.5.7";
 
     # libfwupd goes to lib
     # daemon, plug-ins and libfwupdplugin go to out
@@ -97,7 +100,7 @@ let
 
     src = fetchurl {
       url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
-      sha256 = "0c2m9qz1g7zxqc6w90w9hksf8y9hvlh0vyvx06q01x893j5hzxh6";
+      sha256 = "16isrrv6zhdgccbfnz7km5g1cnvfnip7aiidkfhf5dlnrnyb2sxh";
     };
 
     patches = [
@@ -180,6 +183,11 @@ let
       "-Defi-libdir=${gnu-efi}/lib"
       "-Defi-ldsdir=${gnu-efi}/lib"
       "-Defi-includedir=${gnu-efi}/include/efi"
+      "-Defi_sbat_distro_id=nixos"
+      "-Defi_sbat_distro_summary=NixOS"
+      "-Defi_sbat_distro_pkgname=fwupd"
+      "-Defi_sbat_distro_version=${version}"
+      "-Defi_sbat_distro_url=https://search.nixos.org/packages?channel=unstable&show=fwupd&from=0&size=50&sort=relevance&query=fwupd"
       "--localstatedir=/var"
       "--sysconfdir=/etc"
       "-Dsysconfdir_install=${placeholder "out"}/etc"
@@ -196,6 +204,8 @@ let
       "-Dplugin_redfish=false"
     ] ++ lib.optionals haveFlashrom [
       "-Dplugin_flashrom=true"
+    ] ++ lib.optionals (!haveMSR) [
+      "-Dplugin_msr=false"
     ];
 
     # TODO: wrapGAppsHook wraps efi capsule even though it is not ELF
@@ -225,6 +235,8 @@ let
         contrib/get-version.py \
         contrib/generate-version-script.py \
         meson_post_install.sh \
+        plugins/uefi-capsule/efi/generate_sbat.py \
+        plugins/uefi-capsule/efi/generate_binary.py \
         po/make-images \
         po/make-images.sh \
         po/test-deps
@@ -239,8 +251,8 @@ let
         testFw = fetchFromGitHub {
           owner = "fwupd";
           repo = "fwupd-test-firmware";
-          rev = "42b62c62dc85ecfb8e38099fe5de0625af87a722";
-          sha256 = "XUpxE003DZSeLJMtyV5UN5CNHH89/nEVKpCbMStm91Q=";
+          rev = "c13bfb26cae5f4f115dd4e08f9f00b3cb9acc25e";
+          sha256 = "US81i7mtLEe85KdWz5r+fQTk61IhqjVkzykBaBPuKL4=";
         };
       in ''
         # These files have weird licenses so they are shipped separately.
@@ -277,7 +289,6 @@ let
     passthru = {
       filesInstalledToEtc = [
         "fwupd/daemon.conf"
-        "fwupd/redfish.conf"
         "fwupd/remotes.d/lvfs-testing.conf"
         "fwupd/remotes.d/lvfs.conf"
         "fwupd/remotes.d/vendor.conf"
@@ -294,11 +305,14 @@ let
         "pki/fwupd-metadata/LVFS-CA.pem"
       ] ++ lib.optionals haveDell [
         "fwupd/remotes.d/dell-esrt.conf"
+      ] ++ lib.optionals haveRedfish [
+        "fwupd/redfish.conf"
       ];
 
       # DisabledPlugins key in fwupd/daemon.conf
       defaultDisabledPlugins = [
         "test"
+        "test_ble"
         "invalid"
       ];
 
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
index 041694e2ec17..e6a03ef7df50 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
@@ -2,22 +2,22 @@
 
 stdenv.mkDerivation {
   pname = "raspberrypi-wireless-firmware";
-  version = "2020-12-01";
+  version = "2021-01-28";
 
   srcs = [
     (fetchFromGitHub {
       name = "bluez-firmware";
       owner = "RPi-Distro";
       repo = "bluez-firmware";
-      rev = "1e4ee0c05bae10002124b56c0e44bb9ac6581ddc";
-      sha256 = "10n6ibr3ra71f4hlvbpy8csjlgrapawxrr6jmijn470vkcqcpq27";
+      rev = "e7fd166981ab4bb9a36c2d1500205a078a35714d";
+      sha256 = "1dkg8mzn7n4afi50ibrda2s33nw2qj52jjjdv9w560q601gms47b";
     })
     (fetchFromGitHub {
       name = "firmware-nonfree";
       owner = "RPi-Distro";
       repo = "firmware-nonfree";
-      rev = "b66ab26cebff689d0d3257f56912b9bb03c20567";
-      sha256 = "0cffgsp0w7vv7ylpymdddx0bl9dx3pl7snlh30p4rr9srmn8869f";
+      rev = "83938f78ca2d5a0ffe0c223bb96d72ccc7b71ca5";
+      sha256 = "1l4zz86y2hjyvdwjy75abyjwh3wqknd71y3vh1iw5nd0hws8ranp";
     })
   ];
 
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "17k9y499kjc4zv7ivnsfrgfibwj0ldr3sqdgia4dackbr70jfg2h";
+  outputHash = "0a54gyrq6jfxxvimaa4yjfiyfwf7wv58v0a32l74yrzyarr3ldby";
 
   meta = with lib; {
     description = "Firmware for builtin Wifi/Bluetooth devices in the Raspberry Pi 3+ and Zero W";
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
index 3561916fd6f9..7e0c48a439d7 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
@@ -3,13 +3,13 @@
 stdenvNoCC.mkDerivation rec {
   # NOTE: this should be updated with linux_rpi
   pname = "raspberrypi-firmware";
-  version = "1.20201201";
+  version = "1.20210303";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "firmware";
     rev = version;
-    sha256 = "09yha3k72yqx29rwnv2j2zm73lzc4jgmcbmcc6yrl1i07x84lx3n";
+    sha256 = "0pgiw93hq4gfph5dnwbi8w59g0f7yhmagwzam971k529mh5yl86m";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/rtlwifi_new-firmware/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/rtlwifi_new-firmware/default.nix
deleted file mode 100644
index 673ef686e488..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/firmware/rtlwifi_new-firmware/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, lib, linuxPackages }:
-
-with lib;
-
-stdenv.mkDerivation rec {
-  name = "rtlwifi_new-firmware-${linuxPackages.rtlwifi_new.version}";
-  inherit (linuxPackages.rtlwifi_new) src;
-
-  dontBuild = true;
-
-  installPhase = ''
-    mkdir -p "$out/lib/firmware"
-    cp -rf firmware/rtlwifi/ "$out/lib/firmware"
-  '';
-
-  meta = {
-    description = "Firmware for the newest Realtek rtlwifi codes";
-    inherit (src.meta) homepage;
-    license = licenses.unfreeRedistributableFirmware;
-    platforms = with platforms; linux;
-    maintainers = with maintainers; [ tvorog ];
-  };
-}
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/rtw88-firmware/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/rtw88-firmware/default.nix
new file mode 100644
index 000000000000..b4e07624b6ef
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/rtw88-firmware/default.nix
@@ -0,0 +1,25 @@
+{ stdenvNoCC, lib, linuxPackages }:
+
+stdenvNoCC.mkDerivation {
+  pname = "rtw88-firmware";
+  inherit (linuxPackages.rtw88) version src;
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/firmware/rtw88
+    cp *.bin $out/lib/firmware/rtw88
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Firmware for the newest Realtek rtlwifi codes";
+    homepage = "https://github.com/lwfinger/rtw88";
+    license = licenses.unfreeRedistributableFirmware;
+    maintainers = with maintainers; [ tvorog ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix
index 84d9dd4f3311..9d47d50b43fc 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix
@@ -1,23 +1,23 @@
-{ rustPlatform, lib, fetchFromGitHub, lzma, pkg-config, openssl, dbus, efibootmgr, makeWrapper }:
+{ rustPlatform, lib, fetchFromGitHub, xz, pkg-config, openssl, dbus, efibootmgr, makeWrapper }:
 rustPlatform.buildRustPackage rec {
   pname = "system76-firmware";
   # Check Makefile when updating, make sure postInstall matches make install
-  version = "1.0.20";
+  version = "1.0.24";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
     rev = version;
-    sha256 = "0yjv3a8r01ks91gc33rdwqmw52cqqwhq9f3rvw2xv3h8cqa5hfz0";
+    sha256 = "sha256-Poe18HKEQusvN3WF4ZAV1WCvU8/3HKpHEqDsfDO62V0=";
   };
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
-  buildInputs = [ lzma openssl dbus ];
+  buildInputs = [ xz openssl dbus ];
 
   cargoBuildFlags = [ "--workspace" ];
 
-  cargoSha256 = "1ivn3i6kpnswiipqw5s67p6gsz3y6an0ahf6vwz7dlw2xaha0xbx";
+  cargoSha256 = "sha256-sKC0jfpy7mxGwO+mKU3W5e9HsJx+HQNzqq78YViNJcs=";
 
   # Purposefully don't install systemd unit file, that's for NixOS
   postInstall = ''
@@ -29,11 +29,11 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Tools for managing firmware updates for system76 devices";
     homepage = "https://github.com/pop-os/system76-firmware";
-    license = lib.licenses.gpl3;
-    maintainers = [ lib.maintainers.shlevy ];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ shlevy ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix b/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix
index b60a10c73ede..7528fae6bdd7 100644
--- a/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix
@@ -4,13 +4,13 @@
 
 buildGoModule rec {
   pname = "fscrypt";
-  version = "0.2.9";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "fscrypt";
     rev = "v${version}";
-    sha256 = "020hhdarbn3bwlc2j2g89868v8nfx8562z1a778ihpvvsa4ykr31";
+    sha256 = "1zdadi9f7wj6kgmmk9zlkpdm1lb3gfiscg9gkqqdql2si7y6g2nq";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/gogoclient/default.nix b/nixpkgs/pkgs/os-specific/linux/gogoclient/default.nix
index b5eb1ce1a50c..83ac93fbf71c 100644
--- a/nixpkgs/pkgs/os-specific/linux/gogoclient/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/gogoclient/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, openssl, nettools, iproute, sysctl}:
+{lib, stdenv, fetchurl, openssl, nettools, iproute2, sysctl}:
 
 let baseName = "gogoclient";
     version  = "1.2";
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     substituteInPlace "$out/template/linux.sh" \
       --replace "/sbin/ifconfig" "${nettools}/bin/ifconfig" \
       --replace "/sbin/route"    "${nettools}/bin/route" \
-      --replace "/sbin/ip"       "${iproute}/sbin/ip" \
+      --replace "/sbin/ip"       "${iproute2}/sbin/ip" \
       --replace "/sbin/sysctl"   "${sysctl}/bin/sysctl"
     sed -i -e 's/^.*Exec \$route -A.*$/& metric 128/' $out/template/linux.sh
   '';
diff --git a/nixpkgs/pkgs/os-specific/linux/gradm/default.nix b/nixpkgs/pkgs/os-specific/linux/gradm/default.nix
index cdfc91a68372..7d2660ad26e9 100644
--- a/nixpkgs/pkgs/os-specific/linux/gradm/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/gradm/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gradm";
-  version = "3.1-201903191516";
+  version = "3.1-202012071814";
 
   src  = fetchurl {
     url    = "http://grsecurity.net/stable/${pname}-${version}.tar.gz";
-    sha256 = "1wszqwaswcf08s9zbvnqzmmfdykyfcy16w8xjia20ypr7wwbd86k";
+    sha256 = "sha256-ghl9P2IYsSHcJsVxJbFwfFS1CTZ2xLxdvyhdk/1OZG4=";
   };
 
   nativeBuildInputs = [ bison flex ];
diff --git a/nixpkgs/pkgs/os-specific/linux/greetd/default.nix b/nixpkgs/pkgs/os-specific/linux/greetd/default.nix
new file mode 100644
index 000000000000..fc5dd04b43c1
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/greetd/default.nix
@@ -0,0 +1,51 @@
+{ rustPlatform
+, lib
+, fetchFromSourcehut
+, pam
+, scdoc
+, installShellFiles
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "greetd";
+  version = "0.7.0";
+
+  src = fetchFromSourcehut {
+    owner = "~kennylevinsen";
+    repo = pname;
+    rev = version;
+    sha256 = "b+S3fuJ8gjnSQzLHl3Bs9iO/Un2ynggAplz01GjJvFI=";
+  };
+
+  cargoSha256 = "w6d8rIc03Qa2/TpztpyVijjd3y0Vo38+JDhsOkSFG5E=";
+
+  nativeBuildInputs = [
+    scdoc
+    installShellFiles
+  ];
+
+  buildInputs = [
+    pam
+  ];
+
+  postInstall = ''
+    for f in man/*; do
+      scdoc < "$f" > "$(sed 's/-\([0-9]\)\.scd$/.\1/' <<< "$f")"
+      rm "$f"
+    done
+    installManPage man/*
+  '';
+
+  meta = with lib; {
+    description = "Minimal and flexible login manager daemon";
+    longDescription = ''
+      greetd is a minimal and flexible login manager daemon
+      that makes no assumptions about what you want to launch.
+      Comes with agreety, a simple, text-based greeter.
+    '';
+    homepage = "https://kl.wtf/projects/greetd/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ luc65r ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/gtkgreet/default.nix b/nixpkgs/pkgs/os-specific/linux/gtkgreet/default.nix
new file mode 100644
index 000000000000..7ab7c01475bd
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/gtkgreet/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, lib
+, fetchFromSourcehut
+, pkg-config
+, cmake
+, meson
+, ninja
+, gtk3
+, gtk-layer-shell
+, json_c
+, scdoc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gtkgreet";
+  version = "0.7";
+
+  src = fetchFromSourcehut {
+    owner = "~kennylevinsen";
+    repo = pname;
+    rev = version;
+    sha256 = "ms+2FdtzzNlmlzNxFhu4cpX5H+5H+9ZOtZ0p8uVA3lo=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    meson
+    ninja
+    cmake
+  ];
+
+  buildInputs = [
+    gtk3
+    gtk-layer-shell
+    json_c
+    scdoc
+  ];
+
+  mesonFlags = [
+    "-Dlayershell=enabled"
+  ];
+
+  meta = with lib; {
+    description = "GTK based greeter for greetd, to be run under cage or similar";
+    homepage = "https://git.sr.ht/~kennylevinsen/gtkgreet";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ luc65r ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/hostapd/default.nix b/nixpkgs/pkgs/os-specific/linux/hostapd/default.nix
index 06b23bdf1f6a..2b018c0267a6 100644
--- a/nixpkgs/pkgs/os-specific/linux/hostapd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/hostapd/default.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
     CONFIG_HS20=y
     CONFIG_ACS=y
     CONFIG_GETRANDOM=y
+    CONFIG_SAE=y
   '' + lib.optionalString (sqlite != null) ''
     CONFIG_SQLITE=y
   '';
diff --git a/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix b/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix
index 6cee603664db..bd52f37e62f8 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.335";
+  version = "0.344";
 
   src = fetchFromGitHub {
     owner = "vcrhonek";
     repo = "hwdata";
     rev = "v${version}";
-    sha256 = "0f8ikwfrs6xd5sywypd9rq9cln8a0rf3vj6nm0adwzn1p8mgmrb2";
+    sha256 = "0rsnm94r814shr86jk6f2323i1n4p58inkgkx7362yz9k4a8ir7a";
   };
 
   preConfigure = "patchShebangs ./configure";
@@ -19,12 +19,12 @@ stdenv.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "101lppd1805drwd038b4njr5czzjnqqxf3xlf6v3l22wfwr2cn3l";
+  outputHash = "011lyldzskfb4sfn4i7qyyq3i4gaf1v9yfbc82889cabka0n4nfz";
 
   meta = {
     homepage = "https://github.com/vcrhonek/hwdata";
     description = "Hardware Database, including Monitors, pci.ids, usb.ids, and video cards";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
+    license = lib.licenses.gpl2Plus;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/hyperv-daemons/default.nix b/nixpkgs/pkgs/os-specific/linux/hyperv-daemons/default.nix
index 2d7644e6bda6..2b6bf6fc63ad 100644
--- a/nixpkgs/pkgs/os-specific/linux/hyperv-daemons/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/hyperv-daemons/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, python, kernel, makeWrapper, writeText
-, gawk, iproute }:
+, gawk, iproute2 }:
 
 let
   libexec = "libexec/hypervkvpd";
@@ -42,7 +42,7 @@ let
 
     postFixup = ''
       wrapProgram $out/bin/hv_kvp_daemon \
-        --prefix PATH : $out/bin:${lib.makeBinPath [ gawk iproute ]}
+        --prefix PATH : $out/bin:${lib.makeBinPath [ gawk iproute2 ]}
     '';
   };
 
diff --git a/nixpkgs/pkgs/os-specific/linux/iproute/default.nix b/nixpkgs/pkgs/os-specific/linux/iproute/default.nix
index afd495dd6d1d..affc18e8f37d 100644
--- a/nixpkgs/pkgs/os-specific/linux/iproute/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iproute/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iproute2";
-  version = "5.10.0";
+  version = "5.11.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1sakmhvh40gh4x55vzgy6cyvizqkhqalcfpvs6r0c14w62p38jm5";
+    sha256 = "0m2wa14rhmdb6k07minmw5lk97vz4vn56ndka5849cqjh88fmqn5";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/iproute/mptcp.nix b/nixpkgs/pkgs/os-specific/linux/iproute/mptcp.nix
index 7285e27ff36b..127232139016 100644
--- a/nixpkgs/pkgs/os-specific/linux/iproute/mptcp.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iproute/mptcp.nix
@@ -1,6 +1,6 @@
-{ lib, iproute, fetchFromGitHub }:
+{ lib, iproute2, fetchFromGitHub }:
 
-iproute.overrideAttrs (oa: rec {
+iproute2.overrideAttrs (oa: rec {
   pname = "iproute_mptcp";
   version = "0.95";
 
diff --git a/nixpkgs/pkgs/os-specific/linux/ipsec-tools/default.nix b/nixpkgs/pkgs/os-specific/linux/ipsec-tools/default.nix
index 4e0ae7955bee..33152cc51c13 100644
--- a/nixpkgs/pkgs/os-specific/linux/ipsec-tools/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ipsec-tools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, linuxHeaders, readline, openssl, flex, kerberos, pam }:
+{ lib, stdenv, fetchurl, fetchpatch, linuxHeaders, readline, openssl, flex, libkrb5, pam }:
 
 # TODO: These tools are supposed to work under NetBSD and FreeBSD as
 # well, so I guess it's not appropriate to place this expression in
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "0b9gfbz78k2nj0k7jdlm5kajig628ja9qm0z5yksiwz22s3v7dlf";
   };
 
-  buildInputs = [ readline openssl flex kerberos pam ];
+  buildInputs = [ readline openssl flex libkrb5 pam ];
 
   patches = [
     ./dont-create-localstatedir-during-install.patch
diff --git a/nixpkgs/pkgs/os-specific/linux/ipset/default.nix b/nixpkgs/pkgs/os-specific/linux/ipset/default.nix
index 6e64013464a0..213ae45f48f3 100644
--- a/nixpkgs/pkgs/os-specific/linux/ipset/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ipset/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ipset";
-  version = "7.10";
+  version = "7.11";
 
   src = fetchurl {
     url = "http://ipset.netfilter.org/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-skkGukPi/jIr1BhjR2dh10mkvd9c5MImW6BLA7x+nPY=";
+    sha256 = "sha256-MVG6rTDx2eMXsqtPL1qnqfe03BH8+P5zrNDcC126v30=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/os-specific/linux/iptables/default.nix b/nixpkgs/pkgs/os-specific/linux/iptables/default.nix
index 82157ffa0791..797e7a5b1305 100644
--- a/nixpkgs/pkgs/os-specific/linux/iptables/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iptables/default.nix
@@ -6,12 +6,12 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "1.8.6";
+  version = "1.8.7";
   pname = "iptables";
 
   src = fetchurl {
     url = "https://www.netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
-    sha256 = "0rvp0k8a72h2snrdx48cfn75bfa0ycrd2xl3kjysbymq7q6gxx50";
+    sha256 = "1w6qx3sxzkv80shk21f63rq41c84irpx68k62m2cv629n1mwj2f1";
   };
 
   nativeBuildInputs = [ pkg-config pruneLibtoolFiles flex bison ];
diff --git a/nixpkgs/pkgs/os-specific/linux/iputils/default.nix b/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
index 0079aa79a22b..56942d6d4201 100644
--- a/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
@@ -1,12 +1,10 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , meson, ninja, pkg-config, gettext, libxslt, docbook_xsl_ns
 , libcap, libidn2
 }:
 
-with lib;
-
 let
-  version = "20200821";
+  version = "20210202";
   sunAsIsLicense = {
     fullName = "AS-IS, SUN MICROSYSTEMS license";
     url = "https://github.com/iputils/iputils/blob/s${version}/rdisc.c";
@@ -18,18 +16,10 @@ in stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "s${version}";
-    sha256 = "1jhbcz75a4ij1myyyi110ma1d8d5hpm3scz9pyw7js6qym50xvh4";
+    rev = version;
+    sha256 = "08j2hfgnfh31vv9rn1ml7090j2lsvm9wdpdz13rz60rmyzrx9dq3";
   };
 
-  patches = [
-    # Proposed upstream patch to reduce dependency on systemd: https://github.com/iputils/iputils/pull/297
-    (fetchpatch {
-      url = "https://github.com/iputils/iputils/commit/13d6aefd57fd471ecad06e19073dcc44608dff5e.patch";
-      sha256 = "1n62zxmzp7hgz9qapbbpqv3fxqvc3qyd2a73jhp357x6by84kj49";
-    })
-  ];
-
   mesonFlags = [
     "-DBUILD_RARPD=true"
     "-DBUILD_TRACEROUTE6=true"
@@ -39,13 +29,13 @@ in stdenv.mkDerivation rec {
     "-DINSTALL_SYSTEMD_UNITS=true"
   ]
     # Disable idn usage w/musl (https://github.com/iputils/iputils/pull/111):
-    ++ optional stdenv.hostPlatform.isMusl "-DUSE_IDN=false";
+    ++ lib.optional stdenv.hostPlatform.isMusl "-DUSE_IDN=false";
 
   nativeBuildInputs = [ meson ninja pkg-config gettext libxslt.bin docbook_xsl_ns ];
   buildInputs = [ libcap ]
-    ++ optional (!stdenv.hostPlatform.isMusl) libidn2;
+    ++ lib.optional (!stdenv.hostPlatform.isMusl) libidn2;
 
-  meta = {
+  meta = with lib; {
     description = "A set of small useful utilities for Linux networking";
     inherit (src.meta) homepage;
     changelog = "https://github.com/iputils/iputils/releases/tag/s${version}";
diff --git a/nixpkgs/pkgs/os-specific/linux/isgx/default.nix b/nixpkgs/pkgs/os-specific/linux/isgx/default.nix
new file mode 100644
index 000000000000..1806916b14db
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/isgx/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, kernel, kernelAtLeast }:
+
+stdenv.mkDerivation rec {
+  name = "isgx-${version}-${kernel.version}";
+  version = "2.11";
+
+  src = fetchFromGitHub {
+    owner = "intel";
+    repo = "linux-sgx-driver";
+    rev = "sgx_driver_${version}";
+    hash = "sha256-zZ0FgCx63LCNmvQ909O27v/o4+93gefhgEE/oDr/bHw=";
+  };
+
+  patches = [
+    # Fixes build with kernel >= 5.8
+    (fetchpatch {
+      url = "https://github.com/intel/linux-sgx-driver/commit/276c5c6a064d22358542f5e0aa96b1c0ace5d695.patch";
+      sha256 = "sha256-PmchqYENIbnJ51G/tkdap/g20LUrJEoQ4rDtqy6hj24=";
+    })
+  ];
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  makeFlags = [
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D isgx.ko -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/intel/sgx
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Intel SGX Linux Driver";
+    longDescription = ''
+      The linux-sgx-driver project (isgx) hosts an out-of-tree driver
+      for the Linux* Intel(R) SGX software stack, which would be used
+      until the driver upstreaming process is complete (before 5.11.0).
+
+      It is used to support Enhanced Privacy Identification (EPID)
+      based attestation on the platforms without Flexible Launch Control.
+    '';
+    homepage = "https://github.com/intel/linux-sgx-driver";
+    license = with licenses; [ bsd3 /* OR */ gpl2Only ];
+    maintainers = with maintainers; [ oxalica ];
+    platforms = platforms.linux;
+    # The driver is already in kernel >= 5.11.0.
+    broken = kernelAtLeast "5.11.0";
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/iwd/default.nix b/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
index 11886e8e9c6a..6e703feb992a 100644
--- a/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchgit
-, fetchpatch
 , autoreconfHook
 , pkg-config
 , ell
@@ -13,12 +12,12 @@
 
 stdenv.mkDerivation rec {
   pname = "iwd";
-  version = "1.11";
+  version = "1.12";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git";
     rev = version;
-    sha256 = "0wnyg0f1swi7gvvgf5kzbiz44g2wscf5d5bp320iwyfwnlbqb1bn";
+    sha256 = "sha256-o3Vc5p/AFZwbkEWJZzO6wWAJ/BmSh0eKxdnjm5B9BFU=";
   };
 
   outputs = [ "out" "man" ]
@@ -88,7 +87,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://git.kernel.org/pub/scm/network/wireless/iwd.git";
     description = "Wireless daemon for Linux";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dtzWill fpletz ];
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/joycond/default.nix b/nixpkgs/pkgs/os-specific/linux/joycond/default.nix
new file mode 100644
index 000000000000..a203073b081c
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/joycond/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libevdev, udev }:
+
+stdenv.mkDerivation rec {
+  pname = "joycond";
+  version = "unstable-2021-03-27";
+
+  src = fetchFromGitHub {
+    owner = "DanielOgorchock";
+    repo = "joycond";
+    rev = "2d3f553060291f1bfee2e49fc2ca4a768b289df8";
+    sha256 = "0dpmwspll9ar3pxg9rgnh224934par8h8bixdz9i2pqqbc3dqib7";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ libevdev udev ];
+
+  # CMake has hardcoded install paths
+  installPhase = ''
+    mkdir -p $out/{bin,etc/{systemd/system,udev/rules.d},lib/modules-load.d}
+
+    cp ./joycond $out/bin
+    cp $src/udev/{89,72}-joycond.rules $out/etc/udev/rules.d
+    cp $src/systemd/joycond.service $out/etc/systemd/system
+    cp $src/systemd/joycond.conf $out/lib/modules-load.d
+
+    substituteInPlace $out/etc/systemd/system/joycond.service --replace \
+      "ExecStart=/usr/bin/joycond" "ExecStart=$out/bin/joycond"
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/DanielOgorchock/joycond";
+    description = "Userspace daemon to combine joy-cons from the hid-nintendo kernel driver";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.ivar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel-headers/default.nix b/nixpkgs/pkgs/os-specific/linux/kernel-headers/default.nix
index 7a81d9434e34..a2a63e2bcab2 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -69,12 +69,12 @@ let
 in {
   inherit makeLinuxHeaders;
 
-  linuxHeaders = let version = "5.10.9"; in
+  linuxHeaders = let version = "5.11"; in
     makeLinuxHeaders {
       inherit version;
       src = fetchurl {
         url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-        sha256 = "0la7dklpy6xd79fkzavpmlfyrc60kmmwz491msd95dmvv06kwwvz";
+        sha256 = "1d37w0zvmf8c1l99xvy1hy6p55icjhmbsv7f0amxy2nly1a7pw04";
       };
       patches = [
          ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
index b8bb91b3b72c..777a91241bbf 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
@@ -174,6 +174,8 @@ let
                                               (whenAtLeast "4.17" yes) ];
       NF_TABLES_NETDEV            = mkMerge [ (whenOlder "4.17" module)
                                               (whenAtLeast "4.17" yes) ];
+      NFT_REJECT_NETDEV           = whenAtLeast "5.11" module;
+
       # IP: Netfilter Configuration
       NF_TABLES_IPV4              = mkMerge [ (whenOlder "4.17" module)
                                               (whenAtLeast "4.17" yes) ];
@@ -191,16 +193,17 @@ let
       NET_DROP_MONITOR = yes;
 
       # needed for ss
-      INET_DIAG         = module;
-      INET_TCP_DIAG     = module;
-      INET_UDP_DIAG     = module;
-      INET_RAW_DIAG     = whenAtLeast "4.14" module;
-      INET_DIAG_DESTROY = whenAtLeast "4.9" yes;
+      # Use a lower priority to allow these options to be overridden in hardened/config.nix
+      INET_DIAG         = mkDefault module;
+      INET_TCP_DIAG     = mkDefault module;
+      INET_UDP_DIAG     = mkDefault module;
+      INET_RAW_DIAG     = whenAtLeast "4.14" (mkDefault module);
+      INET_DIAG_DESTROY = whenAtLeast "4.9" (mkDefault yes);
 
       # enable multipath-tcp
       MPTCP           = whenAtLeast "5.6" yes;
       MPTCP_IPV6      = whenAtLeast "5.6" yes;
-      INET_MPTCP_DIAG = whenAtLeast "5.9" module;
+      INET_MPTCP_DIAG = whenAtLeast "5.9" (mkDefault module);
     };
 
     wireless = {
@@ -241,8 +244,9 @@ let
       # Allow specifying custom EDID on the kernel command line
       DRM_LOAD_EDID_FIRMWARE = yes;
       VGA_SWITCHEROO         = yes; # Hybrid graphics support
+      DRM_GMA500             = whenAtLeast "5.12" module;
       DRM_GMA600             = yes;
-      DRM_GMA3600            = yes;
+      DRM_GMA3600            = whenOlder "5.12" yes;
       DRM_VMWGFX_FBCON       = yes;
       # necessary for amdgpu polaris support
       DRM_AMD_POWERPLAY = whenBetween "4.5" "4.9" yes;
@@ -252,6 +256,15 @@ let
       DRM_AMDGPU_CIK = whenAtLeast "4.9" yes;
       # Allow device firmware updates
       DRM_DP_AUX_CHARDEV = whenAtLeast "4.6" yes;
+      # amdgpu display core (DC) support
+      DRM_AMD_DC_DCN1_0 = whenBetween "4.15" "5.6" yes;
+      DRM_AMD_DC_PRE_VEGA = whenBetween "4.15" "4.18" yes;
+      DRM_AMD_DC_DCN2_0 = whenBetween "5.3" "5.6" yes;
+      DRM_AMD_DC_DCN2_1 = whenBetween "5.4" "5.6" yes;
+      DRM_AMD_DC_DCN3_0 = whenBetween "5.9" "5.11" yes;
+      DRM_AMD_DC_DCN = whenAtLeast "5.11" yes;
+      DRM_AMD_DC_HDCP = whenAtLeast "5.5" yes;
+      DRM_AMD_DC_SI = whenAtLeast "5.10" yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
       # Intel GVT-g graphics virtualization supports 64-bit only
       DRM_I915_GVT = whenAtLeast "4.16" yes;
@@ -276,21 +289,31 @@ let
       SND_SOC_SOF_TOPLEVEL              = yes;
       SND_SOC_SOF_ACPI                  = module;
       SND_SOC_SOF_PCI                   = module;
-      SND_SOC_SOF_APOLLOLAKE_SUPPORT    = yes;
-      SND_SOC_SOF_CANNONLAKE_SUPPORT    = yes;
-      SND_SOC_SOF_COFFEELAKE_SUPPORT    = yes;
+      SND_SOC_SOF_APOLLOLAKE            = whenAtLeast "5.12" module;
+      SND_SOC_SOF_APOLLOLAKE_SUPPORT    = whenOlder "5.12" yes;
+      SND_SOC_SOF_CANNONLAKE            = whenAtLeast "5.12" module;
+      SND_SOC_SOF_CANNONLAKE_SUPPORT    = whenOlder "5.12" yes;
+      SND_SOC_SOF_COFFEELAKE            = whenAtLeast "5.12" module;
+      SND_SOC_SOF_COFFEELAKE_SUPPORT    = whenOlder "5.12" yes;
+      SND_SOC_SOF_COMETLAKE             = whenAtLeast "5.12" module;
       SND_SOC_SOF_COMETLAKE_H_SUPPORT   = whenOlder "5.8" yes;
-      SND_SOC_SOF_COMETLAKE_LP_SUPPORT  = yes;
-      SND_SOC_SOF_ELKHARTLAKE_SUPPORT   = yes;
-      SND_SOC_SOF_GEMINILAKE_SUPPORT    = yes;
+      SND_SOC_SOF_COMETLAKE_LP_SUPPORT  = whenOlder "5.12" yes;
+      SND_SOC_SOF_ELKHARTLAKE           = whenAtLeast "5.12" module;
+      SND_SOC_SOF_ELKHARTLAKE_SUPPORT   = whenOlder "5.12" yes;
+      SND_SOC_SOF_GEMINILAKE            = whenAtLeast "5.12" module;
+      SND_SOC_SOF_GEMINILAKE_SUPPORT    = whenOlder "5.12" yes;
       SND_SOC_SOF_HDA_AUDIO_CODEC       = yes;
       SND_SOC_SOF_HDA_COMMON_HDMI_CODEC = whenOlder "5.7" yes;
       SND_SOC_SOF_HDA_LINK              = yes;
-      SND_SOC_SOF_ICELAKE_SUPPORT       = yes;
+      SND_SOC_SOF_ICELAKE               = whenAtLeast "5.12" module;
+      SND_SOC_SOF_ICELAKE_SUPPORT       = whenOlder "5.12" yes;
       SND_SOC_SOF_INTEL_TOPLEVEL        = yes;
-      SND_SOC_SOF_JASPERLAKE_SUPPORT    = yes;
-      SND_SOC_SOF_MERRIFIELD_SUPPORT    = yes;
-      SND_SOC_SOF_TIGERLAKE_SUPPORT     = yes;
+      SND_SOC_SOF_JASPERLAKE            = whenAtLeast "5.12" module;
+      SND_SOC_SOF_JASPERLAKE_SUPPORT    = whenOlder "5.12" yes;
+      SND_SOC_SOF_MERRIFIELD            = whenAtLeast "5.12" module;
+      SND_SOC_SOF_MERRIFIELD_SUPPORT    = whenOlder "5.12" yes;
+      SND_SOC_SOF_TIGERLAKE             = whenAtLeast "5.12" module;
+      SND_SOC_SOF_TIGERLAKE_SUPPORT     = whenOlder "5.12" yes;
     };
 
     usb-serial = {
@@ -358,6 +381,7 @@ let
       F2FS_FS             = module;
       F2FS_FS_SECURITY    = option yes;
       F2FS_FS_ENCRYPTION  = option yes;
+      F2FS_FS_COMPRESSION = whenAtLeast "5.6" yes;
       UDF_FS              = module;
 
       NFSD_PNFS              = whenBetween "4.0" "4.6" yes;
@@ -404,6 +428,8 @@ let
       NLS_ISO8859_1    = module; # VFAT default for the iocharset= mount option
 
       DEVTMPFS = yes;
+
+      UNICODE = whenAtLeast "5.2" yes; # Casefolding support for filesystems
     };
 
     security = {
@@ -421,6 +447,8 @@ let
       SECURITY_APPARMOR                = yes;
       DEFAULT_SECURITY_APPARMOR        = yes;
 
+      RANDOM_TRUST_CPU                 = whenAtLeast "4.19" yes; # allow RDRAND to seed the RNG
+
       MODULE_SIG            = no; # r13y, generates a random key during build and bakes it in
       # Depends on MODULE_SIG and only really helps when you sign your modules
       # and enforce signatures which we don't do by default.
@@ -505,7 +533,7 @@ let
       KVM_VFIO                          = yes;
       KSM = yes;
       VIRT_DRIVERS = yes;
-      # We nneed 64 GB (PAE) support for Xen guest support
+      # We need 64 GB (PAE) support for Xen guest support
       HIGHMEM64G = { optional = true; tristate = mkIf (!stdenv.is64bit) "y";};
 
       VFIO_PCI_VGA = mkIf stdenv.is64bit yes;
@@ -634,7 +662,12 @@ let
       XZ_DEC_TEST              = option no;
     };
 
-    criu = optionalAttrs (features.criu or false) ({
+    criu = if (versionAtLeast version "4.19") then {
+      # Unconditionally enabled, because it is required for CRIU and
+      # it provides the kcmp() system call that Mesa depends on.
+      CHECKPOINT_RESTORE  = yes;
+    } else optionalAttrs (features.criu or false) ({
+      # For older kernels, CHECKPOINT_RESTORE is hidden behind EXPERT.
       EXPERT              = yes;
       CHECKPOINT_RESTORE  = yes;
     } // optionalAttrs (features.criu_revert_expert or true) {
@@ -647,7 +680,14 @@ let
       DEBUG_MEMORY_INIT     = option yes;
     });
 
-    misc = {
+    misc = let
+      # Use zstd for kernel compression if 64-bit and newer than 5.9, otherwise xz.
+      # i686 issues: https://github.com/NixOS/nixpkgs/pull/117961#issuecomment-812106375
+      useZstd = stdenv.buildPlatform.is64bit && versionAtLeast version "5.9";
+    in {
+      KERNEL_XZ            = mkIf (!useZstd) yes;
+      KERNEL_ZSTD          = mkIf useZstd yes;
+
       HID_BATTERY_STRENGTH = yes;
       # enabled by default in x86_64 but not arm64, so we do that here
       HIDRAW               = yes;
@@ -663,10 +703,6 @@ let
       MODULE_COMPRESS    = yes;
       MODULE_COMPRESS_XZ = yes;
 
-      # use zstd for kernel compression if newer than 5.9, else xz.
-      KERNEL_XZ          = whenOlder "5.9" yes;
-      KERNEL_ZSTD        = whenAtLeast "5.9" yes;
-
       SYSVIPC            = yes;  # System-V IPC
 
       AIO                = yes;  # POSIX asynchronous I/O
@@ -750,6 +786,8 @@ let
       MLX4_EN_VXLAN = whenOlder "4.8" yes;
       MLX5_CORE_EN       = option yes;
 
+      NVME_MULTIPATH = whenAtLeast "4.15" yes;
+
       PSI = whenAtLeast "4.20" yes;
 
       MODVERSIONS        = whenOlder "4.9" yes;
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix b/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
index ac9d6fbb2b59..0a9c2d11fefd 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
@@ -55,7 +55,7 @@
 , autoModules ? stdenv.hostPlatform.linux-kernel.autoModules
 , preferBuiltin ? stdenv.hostPlatform.linux-kernel.preferBuiltin or false
 , kernelArch ? stdenv.hostPlatform.linuxArch
-
+, kernelTests ? []
 , ...
 }:
 
@@ -178,10 +178,11 @@ let
 
   passthru = {
     features = kernelFeatures;
-    inherit commonStructuredConfig isXen isZen isHardened isLibre;
+    inherit commonStructuredConfig isXen isZen isHardened isLibre modDirVersion;
     kernelOlder = lib.versionOlder version;
     kernelAtLeast = lib.versionAtLeast version;
     passthru = kernel.passthru // (removeAttrs passthru [ "passthru" ]);
+    tests = kernelTests;
   };
 
 in lib.extendDerivation true passthru kernel
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/hardened/config.nix b/nixpkgs/pkgs/os-specific/linux/kernel/hardened/config.nix
index bd0518650d6c..20f9f5aaa147 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/hardened/config.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/hardened/config.nix
@@ -55,8 +55,8 @@ assert (versionAtLeast version "4.9");
 
   # Wipe higher-level memory allocations on free() with page_poison=1
   PAGE_POISONING           = yes;
-  PAGE_POISONING_NO_SANITY = yes;
-  PAGE_POISONING_ZERO      = yes;
+  PAGE_POISONING_NO_SANITY = whenOlder "5.11" yes;
+  PAGE_POISONING_ZERO      = whenOlder "5.11" yes;
 
   # Enable the SafeSetId LSM
   SECURITY_SAFESETID = whenAtLeast "5.1" yes;
@@ -65,7 +65,7 @@ assert (versionAtLeast version "4.9");
   PANIC_TIMEOUT = freeform "-1";
 
   GCC_PLUGINS = yes; # Enable gcc plugin options
-  # Gather additional entropy at boot time for systems that may = no;ot have appropriate entropy sources.
+  # Gather additional entropy at boot time for systems that may not have appropriate entropy sources.
   GCC_PLUGIN_LATENT_ENTROPY = yes;
 
   GCC_PLUGIN_STRUCTLEAK = whenAtLeast "4.11" yes; # A port of the PaX structleak plugin
@@ -79,8 +79,18 @@ assert (versionAtLeast version "4.9");
   PROC_KCORE         = no; # Exposes kernel text image layout
   INET_DIAG          = no; # Has been used for heap based attacks in the past
 
+  # INET_DIAG=n causes the following options to not exist anymore, but since they are defined in common-config.nix,
+  # make them optional
+  INET_DIAG_DESTROY = option no;
+  INET_RAW_DIAG     = option no;
+  INET_TCP_DIAG     = option no;
+  INET_UDP_DIAG     = option no;
+  INET_MPTCP_DIAG   = option no;
+
   # Use -fstack-protector-strong (gcc 4.9+) for best stack canary coverage.
   CC_STACKPROTECTOR_REGULAR = whenOlder "4.18" no;
   CC_STACKPROTECTOR_STRONG  = whenOlder "4.18" yes;
 
+  # Detect out-of-bound reads/writes and use-after-free
+  KFENCE = whenAtLeast "5.12" yes;
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json b/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json
index aed631bee1b4..002799aa6a75 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -1,26 +1,32 @@
 {
     "4.14": {
         "extra": "-hardened1",
-        "name": "linux-hardened-4.14.221-hardened1.patch",
-        "sha256": "167pazgz6xa0xmvkqdk0a9z1gp9ria0mm2wmq6g41wzhcy20zrfz",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.221-hardened1/linux-hardened-4.14.221-hardened1.patch"
+        "name": "linux-hardened-4.14.228-hardened1.patch",
+        "sha256": "0pf3c98m2zlgxv9p10p7xw44f6mqnh8ac47jl1abz3yy3hiag0cd",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.228-hardened1/linux-hardened-4.14.228-hardened1.patch"
     },
     "4.19": {
         "extra": "-hardened1",
-        "name": "linux-hardened-4.19.175-hardened1.patch",
-        "sha256": "04pflpzb8fs2wlx2sm46r1lxn4vcmhsygzk088m8rg3jjygany3i",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.175-hardened1/linux-hardened-4.19.175-hardened1.patch"
+        "name": "linux-hardened-4.19.184-hardened1.patch",
+        "sha256": "1828kkq05808mahkfb0387b1k5qp6pysy4mny1xgpwqdphpp1pq9",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.184-hardened1/linux-hardened-4.19.184-hardened1.patch"
     },
     "5.10": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.10.15-hardened1.patch",
-        "sha256": "1xd0qr58lz38swivhrbhjf1jz3y8y4i9ba1qcij7bydw125qvz14",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.15-hardened1/linux-hardened-5.10.15-hardened1.patch"
+        "name": "linux-hardened-5.10.27-hardened1.patch",
+        "sha256": "12pzv36p0pdaqqklwv6rpk15c1z1nz2syw1si24514p63v46wmhn",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.27-hardened1/linux-hardened-5.10.27-hardened1.patch"
+    },
+    "5.11": {
+        "extra": "-hardened1",
+        "name": "linux-hardened-5.11.11-hardened1.patch",
+        "sha256": "0isq152z4h2kl3rviia9xlpsmdx331kx8p1x00jbf4gcw30amc78",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.11.11-hardened1/linux-hardened-5.11.11-hardened1.patch"
     },
     "5.4": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.4.97-hardened1.patch",
-        "sha256": "1610lgvxxx6rmbi38q3pcaf9kcw8fqxspwmg2irgmvvzniv5p42x",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.97-hardened1/linux-hardened-5.4.97-hardened1.patch"
+        "name": "linux-hardened-5.4.109-hardened1.patch",
+        "sha256": "19likbds74lzym969p6hbchlfii4qnsp8y4ryfkba1vv6hv51zzj",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.109-hardened1/linux-hardened-5.4.109-hardened1.patch"
     }
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 787bc5accca5..fc647d109594 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -1,9 +1,9 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
 buildLinux (args // rec {
-  version = "4.14.221";
+  version = "4.14.228";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,8 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1sf7sagy88p20310klbxdacyalg3q6zg870c709nz17lbw3m88nf";
+    sha256 = "0nw1jf6x5a990n69aw2da4s4lc1c7mnwiwcda40bl2rkmd24s1qm";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_14 ];
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
index 390724b8a86f..b0e5a865724b 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -1,9 +1,9 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
 buildLinux (args // rec {
-  version = "4.19.175";
+  version = "4.19.184";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,8 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "099b3dw9rj2z147dpjppd57g24paxw8x4fq1ir1ss5ibzy24pvnc";
+    sha256 = "0z5pgal8775rf7pvpxq47dnghr42al2k9py0s9jl3js2wamgdyix";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_19 ];
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
index eba19be1c204..3a5f86db3a19 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,13 @@
-{ buildPackages, fetchurl, perl, buildLinux, ... } @ args:
+{ buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.257";
+  version = "4.4.264";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0njb4gf77vix2xgnyhmrzf67czpqfng9np644l9j18dn4mb7q1iy";
+    sha256 = "1b0d735qnk0bcqn9gdsjqxhk8pkb3597ya9f34lv1vjfaqkkxk7l";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_4 ];
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
index f53d39b20b50..798a16d7a30f 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,13 @@
-{ buildPackages, fetchurl, perl, buildLinux, ... } @ args:
+{ buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.257";
+  version = "4.9.264";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0kynyqk62hkfmamhvfp98i9kyr395chnwghslcbq5pl1zkzq1rwm";
+    sha256 = "1df2dv26c9z6zsdlqzbcc60f2pszh0hx1n94v65jswlb72a2mipc";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_9 ];
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix
index 0d37a8b435b4..f35b0e432bed 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix
@@ -1,9 +1,9 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
 buildLinux (args // rec {
-  version = "5.10.15";
+  version = "5.10.27";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,8 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "00bf1v8zn4qngxhj6sca0lhv71xlnajw02iq6854s76my6y8flnq";
+    sha256 = "1nb95ll66kxiz702gs903n3gy5ialz8cin58l19rqaai55kck7fr";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_10 ];
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix
new file mode 100644
index 000000000000..1c8540d89345
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix
@@ -0,0 +1,20 @@
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
+
+with lib;
+
+buildLinux (args // rec {
+  version = "5.11.11";
+
+  # modDirVersion needs to be x.y.z, will automatically add .0 if needed
+  modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
+
+  # branchVersion needs to be x.y
+  extraMeta.branch = versions.majorMinor version;
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
+    sha256 = "1fc3yl4srzla3cbihgnry0pqmgcc17zv0zlkk9zpx99371hpay0a";
+  };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_11 ];
+} // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
index 2e11688910dd..e9d72200eda1 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -1,9 +1,9 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
 buildLinux (args // rec {
-  version = "5.4.97";
+  version = "5.4.109";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,8 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0gs856v3q3m0q245mf8b9ivds8dizqrgjw27s9kbq3v31886da3i";
+    sha256 = "1vmpc6yrr2zm4m3naflwik5111jr8hy0mnyddwk31l0p4xbg8smc";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_4 ];
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
index 25c8ee3a6546..08898bb0a222 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 = "17873";
-    sha256 = "1r1c8wagbq3cgxys7ylvsg6bnxiky66xgx9l0282zsmnn3gh83l7";
+    rev = "17920";
+    sha256 = "0qmhabh4922lpiimrh9smi1q0w8giw3qqxpyzzy2bmr2037011k0";
   }
 , ...
 }:
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix
index e466b76867c9..de625cebe49c 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix
@@ -1,8 +1,8 @@
 { lib, fetchFromGitHub, buildLinux, linux_zen, ... } @ args:
 
 let
-  version = "5.10.10";
-  suffix = "lqx2";
+  version = "5.11.11";
+  suffix = "lqx1";
 in
 
 buildLinux (args // {
@@ -14,7 +14,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "1cjgx9qjfkiaalqkcdmibsrq2frwd621rwcg6w05ms4w9lnwi3af";
+    sha256 = "1wycqy0m6vjaa39rq7ngwr2qmksqfca27z1711nag7j68dk3ywak";
   };
 
   extraMeta = {
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-mptcp-95.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-mptcp-95.nix
index cd661be1078c..a6a8d4936d4f 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-mptcp-95.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-mptcp-95.nix
@@ -1,7 +1,7 @@
 { lib, buildPackages, fetchFromGitHub, perl, buildLinux, structuredExtraConfig ? {}, ... } @ args:
 let
-  mptcpVersion = "0.95";
-  modDirVersion = "4.19.55";
+  mptcpVersion = "0.95.1";
+  modDirVersion = "4.19.126";
 in
 buildLinux ({
   version = "${modDirVersion}-mptcp_v${mptcpVersion}";
@@ -16,7 +16,7 @@ buildLinux ({
     owner = "multipath-tcp";
     repo = "mptcp";
     rev = "v${mptcpVersion}";
-    sha256 = "04a66iq5vsiz8mkpszfxmqknz7y4w3lsckrcz6q1syjpk0pdyiyw";
+    sha256 = "sha256-J9UXhkI49cq83EtojLHieRtp8fT3LXTJNIqb+mUwZdM=";
   };
 
   structuredExtraConfig = lib.mkMerge [
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rpi.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rpi.nix
index 176c2180f359..8ccf46b402b7 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rpi.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rpi.nix
@@ -2,8 +2,8 @@
 
 let
   # NOTE: raspberrypifw & raspberryPiWirelessFirmware should be updated with this
-  modDirVersion = "5.4.79";
-  tag = "1.20201201";
+  modDirVersion = "5.10.17";
+  tag = "1.20210303";
 in
 lib.overrideDerivation (buildLinux (args // {
   version = "${modDirVersion}-${tag}";
@@ -13,7 +13,7 @@ lib.overrideDerivation (buildLinux (args // {
     owner = "raspberrypi";
     repo = "linux";
     rev = "raspberrypi-kernel_${tag}-1";
-    sha256 = "093p5kh5f27djkhbcw371w079lhhihvg3s4by3wzsd40di4fcgn9";
+    sha256 = "0ffsllayl18ka4mgp4rdy9h0da5gy1n6g0kfvinvzdzabb5wzvrx";
   };
 
   defconfig = {
@@ -23,15 +23,18 @@ lib.overrideDerivation (buildLinux (args // {
     "4" = "bcm2711_defconfig";
   }.${toString rpiVersion};
 
-  extraConfig = ''
-    # ../drivers/pci/controller/pcie-altera.c:679:8: error: too few arguments to function 'devm_of_pci_get_host_bridge_resources'
-    PCIE_ALTERA n
-  '';
-
   features = {
     efiBootStub = false;
   } // (args.features or {});
 
+  extraConfig = ''
+    # ../drivers/gpu/drm/ast/ast_mode.c:851:18: error: initialization of 'void (*)(struct drm_crtc *, struct drm_atomic_state *)' from incompatible pointer type 'void (*)(struct drm_crtc *, struct drm_crtc_state *)' [-Werror=incompatible-pointer-types]
+    #   851 |  .atomic_flush = ast_crtc_helper_atomic_flush,
+    #       |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    # ../drivers/gpu/drm/ast/ast_mode.c:851:18: note: (near initialization for 'ast_crtc_helper_funcs.atomic_flush')
+    DRM_AST n
+  '';
+
   extraMeta = if (rpiVersion < 3) then {
     platforms = with lib.platforms; [ arm ];
     hydraPlatforms = [];
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 85cc0d16eacb..cd6273d21e9e 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.12-rt26"; # updated by ./update-rt.sh
+  version = "5.10.25-rt35"; # 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/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "1an460q3affd7gmd6fqv8g37j3z2fnmq19iy677k8kxb2wl4yi8x";
+    sha256 = "1p8s8vp5b6vjmvhj3plm0pr0d9qp5lrwm6l40a4bjr1vk9myf2lk";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "06sb7cj24v4kh7zghndpxv95pkihahc7653lxdw4wj9jhi58bs2k";
+      sha256 = "0kvawcyxg0xzhx73xs9g9s0hr7bs44sy4zvfzvcg2m9hdyafry0k";
     };
   }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.11.nix
index 7c77454040d5..d9ebedf68016 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.11.nix
@@ -6,22 +6,26 @@
 , ... } @ args:
 
 let
-  version = "5.6.19-rt12"; # updated by ./update-rt.sh
+  version = "5.11.4-rt11"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
   inherit version;
 
+  # modDirVersion needs a patch number, change X.Y-rtZ to X.Y.0-rtZ.
+  modDirVersion = if (builtins.match "[^.]*[.][^.]*-.*" version) == null then version
+    else lib.replaceStrings ["-"] [".0-"] version;
+
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "1s0yc1138sglbm4vyizl4r7hnc1l7nykdjp4063ad67yayr2ylv2";
+    sha256 = "1i8dfw83ndaylwji7lazfckk113plvnz7kh1yppbfg35r6przrc8";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0ia8rx0615x0z2s4ppw1244crg7c5ak07c9n3wbnz7y8bk8hyxws";
+      sha256 = "1az6cn9jj3bnjgwzzrjy1adnrnn06p2vzsnc1iib4xhs0sfr27hc";
     };
   }; in [ rt-patch ] ++ lib.remove 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 25e3172b0f3a..0aa63af52d8b 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.84-rt47"; # updated by ./update-rt.sh
+  version = "5.4.106-rt54"; # 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 = "058mhczv6whjwxn7jjh1c6n5zrqjdnvbl2mp7jkfrg6frpvgr189";
+    sha256 = "1ny8b69ngydh0iw53jwlmqlgv31wjhkybkgnqi5kv0n174n3p1yc";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0nccxf9l9ycvb782f48zrbl59vi674qq7yjyaks97440pgyd1jg0";
+      sha256 = "0xwbpn1k1b4bxq15sw7gicrzkfg32nkja308a5pcwx1ihv9khchf";
     };
   }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
index 1ed116cdfde4..f0d418693466 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,19 +1,21 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
 buildLinux (args // rec {
-  version = "5.11-rc5";
-  extraMeta.branch = "5.11";
+  version = "5.12-rc6";
+  extraMeta.branch = "5.12";
 
   # modDirVersion needs to be x.y.z, will always add .0
   modDirVersion = if (modDirVersionArg == null) then builtins.replaceStrings ["-"] [".0-"] version else modDirVersionArg;
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "029nps41nrym5qz9lq832cys4rai04ig5xp9ddvrpazzh0lfnr4q";
+    sha256 = "0w0zk2byimdbcvn8myqaq0ab6lyd43493fnkv9a1407dimpxb03d";
   };
 
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_testing ];
+
   # Should the testing kernels ever be built on Hydra?
   extraMeta.hydraPlatforms = [];
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix
new file mode 100644
index 000000000000..efb87df6c970
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, buildLinux, fetchFromGitHub, ... } @ args:
+
+let
+  version = "5.11.12";
+  suffix = "xanmod1-cacule";
+in
+  buildLinux (args // rec {
+    modDirVersion = "${version}-${suffix}";
+    inherit version;
+
+    src = fetchFromGitHub {
+      owner = "xanmod";
+      repo = "linux";
+      rev = modDirVersion;
+      sha256 = "sha256-omRZ9oAmW3mauUolPf/lgMFMwUCYU4YaZ+OS75Ag+lM=";
+      extraPostFetch = ''
+        rm $out/.config
+      '';
+    };
+
+    extraMeta = {
+      branch = "5.11";
+      maintainers = with lib.maintainers; [ fortuneteller2k ];
+      description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience";
+      broken = stdenv.hostPlatform.isAarch64;
+    };
+  } // (args.argsOverride or { }))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
index b30ee9966491..8743c9ad5514 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, buildLinux, ... } @ args:
 
 let
-  version = "5.10.10";
+  version = "5.11.11";
   suffix = "zen1";
 in
 
@@ -14,7 +14,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "0jsi2q8k1w5zs5l6z1brm2mxpl9arv6n6linc8yj6xc75nydw6w4";
+    sha256 = "0rldvgvdbsqvshrbv2g335qvwzk76l7rpnp9dwzsiv2qphrzxazi";
   };
 
   extraMeta = {
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh b/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh
index 4cbd45524a86..8cac5929252d 100755
--- a/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh
@@ -36,7 +36,8 @@ file-version() {
 latest-rt-version() {
     branch="$1" # e.g. 5.4
     curl -sL "$mirror/projects/rt/$branch/sha256sums.asc" |
-        sed -ne '/.patch.xz/ { s/.*patch-\(.*\).patch.xz/\1/; p; q }'
+        sed -ne '/.patch.xz/ { s/.*patch-\(.*\).patch.xz/\1/p}' |
+        tail -n 1
 }
 
 update-if-needed() {
diff --git a/nixpkgs/pkgs/os-specific/linux/kmod/darwin.patch b/nixpkgs/pkgs/os-specific/linux/kmod/darwin.patch
index 69dbf479f9f1..e112e6915250 100644
--- a/nixpkgs/pkgs/os-specific/linux/kmod/darwin.patch
+++ b/nixpkgs/pkgs/os-specific/linux/kmod/darwin.patch
@@ -121,3 +121,15 @@ index fd2028d..ecb0141 100644
  	if (!cwd)
  		return NULL;
  
+--- a/shared/util.h	2018-01-31 18:10:59.000000000 +0100
++++ b/shared/util.h	2020-12-28 19:48:21.000000000 +0100
+@@ -7,6 +7,9 @@
+ #include <stdio.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#ifdef __APPLE__
++#include <libgen.h>
++#endif
+ 
+ #include <shared/macro.h>
+ 
diff --git a/nixpkgs/pkgs/os-specific/linux/libaio/default.nix b/nixpkgs/pkgs/os-specific/linux/libaio/default.nix
index 8cbc8466a916..046bba5dda0f 100644
--- a/nixpkgs/pkgs/os-specific/linux/libaio/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libaio/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "prefix=${placeholder "out"}"
-  ];
+  ] ++ lib.optional stdenv.hostPlatform.isStatic "ENABLE_SHARED=0";
 
   hardeningDisable = lib.optional (stdenv.isi686) "stackprotector";
 
diff --git a/nixpkgs/pkgs/os-specific/linux/libcap/default.nix b/nixpkgs/pkgs/os-specific/linux/libcap/default.nix
index 246f02805f09..871e04648e4e 100644
--- a/nixpkgs/pkgs/os-specific/linux/libcap/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libcap/default.nix
@@ -7,15 +7,13 @@ assert usePam -> pam != null;
 
 stdenv.mkDerivation rec {
   pname = "libcap";
-  version = "2.46";
+  version = "2.48";
 
   src = fetchurl {
     url = "mirror://kernel/linux/libs/security/linux-privs/libcap2/${pname}-${version}.tar.xz";
-    sha256 = "1d6q447wf0iagiyzhfdqcj4cv0dmzc49i0czwikrcv7s2cad3lsf";
+    sha256 = "sha256-TelZDuCah8KC1Vhzf/tbYXXMv9JtWArdEN9E0PBH9sI=";
   };
 
-  patches = lib.optional isStatic ./no-shared-lib.patch;
-
   outputs = [ "out" "dev" "lib" "man" "doc" ]
     ++ lib.optional usePam "pam";
 
@@ -31,7 +29,7 @@ stdenv.mkDerivation rec {
     "PAM_CAP=${if usePam then "yes" else "no"}"
     "BUILD_CC=$(CC_FOR_BUILD)"
     "CC:=$(CC)"
-  ];
+  ] ++ lib.optional isStatic "SHARED=no";
 
   prePatch = ''
     # use full path to bash
diff --git a/nixpkgs/pkgs/os-specific/linux/libcap/no-shared-lib.patch b/nixpkgs/pkgs/os-specific/linux/libcap/no-shared-lib.patch
deleted file mode 100644
index 73dc7de063d4..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/libcap/no-shared-lib.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/libcap/Makefile b/libcap/Makefile
-index de6a28d..7e4d8ac 100644
---- a/libcap/Makefile
-+++ b/libcap/Makefile
-@@ -22,7 +22,7 @@ MAJLIBNAME=$(LIBNAME).$(VERSION)
- MINLIBNAME=$(MAJLIBNAME).$(MINOR)
- GPERF_OUTPUT = _caps_output.gperf
- 
--all: $(MINLIBNAME) $(STACAPLIBNAME) pcs $(STAPSXLIBNAME)
-+all: $(STACAPLIBNAME) pcs $(STAPSXLIBNAME)
- 
- pcs: libcap.pc libpsx.pc
- 
-@@ -93,7 +93,7 @@ cap_test: cap_test.c libcap.h
- test: cap_test
- 	./cap_test
- 
--install: install-static install-shared
-+install: install-static
- 
- install-static: install-static-cap install-static-psx
- 
diff --git a/nixpkgs/pkgs/os-specific/linux/libcgroup/default.nix b/nixpkgs/pkgs/os-specific/linux/libcgroup/default.nix
index b43d70f21bbb..e40a59ce8233 100644
--- a/nixpkgs/pkgs/os-specific/linux/libcgroup/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libcgroup/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, pam, yacc, flex }:
+{ lib, stdenv, fetchurl, fetchpatch, pam, bison, flex }:
 
 stdenv.mkDerivation rec {
   pname = "libcgroup";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0lgvyq37gq84sk30sg18admxaj0j0p5dq3bl6g74a1ppgvf8pqz4";
   };
 
-  buildInputs = [ pam yacc flex ];
+  buildInputs = [ pam bison flex ];
 
   patches = [
     (fetchpatch {
diff --git a/nixpkgs/pkgs/os-specific/linux/libfabric/default.nix b/nixpkgs/pkgs/os-specific/linux/libfabric/default.nix
index b1ed0a724055..0bc1ed123dcc 100644
--- a/nixpkgs/pkgs/os-specific/linux/libfabric/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libfabric/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libfabric";
-  version = "1.11.2";
+  version = "1.12.0";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "ofiwg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Xy7A1hjz4O13bMZ0RbOuxEzVkVW5+WKC+MOH5rcGzH0=";
+    sha256 = "sha256-OFp6nEW5D8vjglqLRbEgKryb2/KFuJD8Zn6rkpcuPh0=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ] ;
diff --git a/nixpkgs/pkgs/os-specific/linux/libnl/default.nix b/nixpkgs/pkgs/os-specific/linux/libnl/default.nix
index b7d08344e408..b40b3c46e77b 100644
--- a/nixpkgs/pkgs/os-specific/linux/libnl/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libnl/default.nix
@@ -1,5 +1,5 @@
 { stdenv, file, lib, fetchFromGitHub, autoreconfHook, bison, flex, pkg-config
-, pythonSupport ? false, swig ? null, python}:
+, pythonSupport ? false, swig ? null, python ? null}:
 
 stdenv.mkDerivation rec {
   pname = "libnl";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   postBuild = lib.optionalString (pythonSupport) ''
       cd python
-      ${python}/bin/python setup.py install --prefix=../pythonlib
+      ${python.interpreter} setup.py install --prefix=../pythonlib
       cd -
   '';
 
diff --git a/nixpkgs/pkgs/os-specific/linux/libvolume_id/default.nix b/nixpkgs/pkgs/os-specific/linux/libvolume_id/default.nix
index f6b760668636..87b7d33c5d84 100644
--- a/nixpkgs/pkgs/os-specific/linux/libvolume_id/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libvolume_id/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   };
 
   preBuild = "
-    makeFlagsArray=(prefix=$out E=echo RANLIB=ranlib INSTALL='install -c')
+    makeFlagsArray=(prefix=$out E=echo RANLIB=${stdenv.cc.targetPrefix}ranlib INSTALL='install -c')
   ";
 
   # Work around a broken Makefile.
diff --git a/nixpkgs/pkgs/os-specific/linux/lm-sensors/default.nix b/nixpkgs/pkgs/os-specific/linux/lm-sensors/default.nix
index 915609e88686..34ad80a6c005 100644
--- a/nixpkgs/pkgs/os-specific/linux/lm-sensors/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lm-sensors/default.nix
@@ -20,16 +20,20 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "PREFIX=${placeholder "out"}"
-    "ETCDIR=${placeholder "out"}/etc"
     "CC=${stdenv.cc.targetPrefix}cc"
     "AR=${stdenv.cc.targetPrefix}ar"
   ] ++ lib.optional sensord "PROG_EXTRA=sensord";
 
+  installFlags = [
+    "ETCDIR=${placeholder "out"}/etc"
+  ];
+
   meta = with lib; {
     homepage = "https://hwmon.wiki.kernel.org/lm_sensors";
     changelog = "https://raw.githubusercontent.com/lm-sensors/lm-sensors/V${dashedVersion}/CHANGES";
     description = "Tools for reading hardware sensors";
     license = with licenses; [ lgpl21Plus gpl2Plus ];
+    maintainers = with maintainers; [ pengmeiyu ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/lsiutil/default.nix b/nixpkgs/pkgs/os-specific/linux/lsiutil/default.nix
index 4cb70faee966..1b1acdb535f5 100644
--- a/nixpkgs/pkgs/os-specific/linux/lsiutil/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lsiutil/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
   srcs = [ src "Source/lsiutil.tar.gz" ];
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   sourceRoot = "lsiutil";
 
diff --git a/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix b/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
index ab148af72f23..bcc86b72de04 100644
--- a/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-gC1Q+kG/oKfYvuHVKstpRWfL/thsemULrimPrV/eeaI=";
   };
 
-  nativeBuildInputs = [ pkg-config help2man autoreconfHook ];
-  buildInputs = [ fuse makeWrapper ];
+  nativeBuildInputs = [ pkg-config help2man autoreconfHook makeWrapper ];
+  buildInputs = [ fuse ];
 
   preConfigure = lib.optionalString enableDebugBuild ''
     sed -i 's,#AM_CFLAGS += -DDEBUG,AM_CFLAGS += -DDEBUG,' Makefile.am
diff --git a/nixpkgs/pkgs/os-specific/linux/macchanger/default.nix b/nixpkgs/pkgs/os-specific/linux/macchanger/default.nix
index 5c3646f7b3cc..1c5167070496 100644
--- a/nixpkgs/pkgs/os-specific/linux/macchanger/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/macchanger/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, texinfo }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, texinfo }:
 
 stdenv.mkDerivation rec {
   pname = "macchanger";
@@ -11,15 +11,38 @@ stdenv.mkDerivation rec {
     sha256 = "1hypx6sxhd2b1nsxj314hpkhj7q4x9p2kfaaf20rjkkkig0nck9r";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/m/macchanger/1.7.0-5.3/debian/patches/02-fix_usage_message.patch";
+      sha256 = "0pxljmq0l0znylbhms09i19qwil74gm8gx3xx2ffx00dajaizj18";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/m/macchanger/1.7.0-5.3/debian/patches/06-update_OUI_list.patch";
+      sha256 = "04kbd784z9nwkjva5ckkvb0yb3pim9valb1viywn1yyh577d0y7w";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/m/macchanger/1.7.0-5.3/debian/patches/08-fix_random_MAC_choice.patch";
+      sha256 = "1vz3appxxsdf1imzrn57amazfwlbrvx6g78b6n88aqgwzy5dm34d";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/m/macchanger/1.7.0-5.3/debian/patches/check-random-device-read-errors.patch";
+      sha256 = "0pra6qnk39crjlidspg3l6hpaqiw43cypahx793l59mqn956cngc";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/m/macchanger/1.7.0-5.3/debian/patches/verify-changed-MAC.patch";
+      sha256 = "0vjhf2fnj1hlghjl821p6idrfc8hmd4lgps5lf1l68ylqvwjw0zj";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook texinfo ];
 
   outputs = [ "out" "info" ];
 
   meta = with lib; {
     description = "A utility for viewing/manipulating the MAC address of network interfaces";
-    maintainers = with maintainers; [ joachifm ma27 ];
+    maintainers = with maintainers; [ joachifm ma27 dotlambda ];
     license = licenses.gpl2Plus;
-    homepage = "https://www.gnu.org/software/macchanger";
+    homepage = "https://github.com/alobbs/macchanger";
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix b/nixpkgs/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix
new file mode 100644
index 000000000000..258f4296e2e0
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, kernel, fetchFromGitHub, }:
+
+stdenv.mkDerivation rec {
+  pname = "mbp2018-bridge-drv";
+  version = "0.01";
+
+  src = fetchFromGitHub {
+    owner = "MCMrARM";
+    repo = "mbp2018-bridge-drv";
+    rev = "${version}";
+    sha256 = "0ac2l51ybfrvg8m36x67rsvgjqs1vwp7c89ssvbjkrcq3y4qdb53";
+  };
+
+  buildPhase = ''
+    make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build \
+      -j$NIX_BUILD_CORES M=$(pwd) modules
+  '';
+
+  installPhase = ''
+    make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build  \
+      INSTALL_MOD_PATH=$out M=$(pwd) modules_install
+  '';
+
+  meta = with lib; {
+    description = "A driver for MacBook models 2018 and newer, which makes the keyboard, mouse and audio output work.";
+    longDescription = ''
+      A driver for MacBook models 2018 and newer, implementing the VHCI (required for mouse/keyboard/etc.) and audio functionality.
+    '';
+    homepage = "https://github.com/MCMrARM/mbp2018-bridge-drv";
+    license = lib.licenses.gpl2Only;
+    platforms = platforms.linux;
+    maintainers = [ lib.maintainers.hlolli ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/mcelog/default.nix b/nixpkgs/pkgs/os-specific/linux/mcelog/default.nix
index de2c1afb0658..b20632be334c 100644
--- a/nixpkgs/pkgs/os-specific/linux/mcelog/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mcelog/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mcelog";
-  version = "173";
+  version = "175";
 
   src = fetchFromGitHub {
     owner  = "andikleen";
     repo   = "mcelog";
     rev    = "v${version}";
-    sha256 = "1ili11kqacn6jkjpk11vhycgygdl92mymgb1sx22lcwq2x0d248m";
+    sha256 = "sha256-Xzbck/nRdTR9H5o2XVFlFdNLz2ve65KEcefKAKe0eW8=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/microcode/intel.nix b/nixpkgs/pkgs/os-specific/linux/microcode/intel.nix
index d6d04f12f885..3ac8e6dcd4af 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 = "20201118";
+  version = "20210216";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "Intel-Linux-Processor-Microcode-Data-Files";
     rev = "microcode-${version}";
-    sha256 = "1xs3f2rbfqnpz9qs7a1kl363qdyb8fybmmyd37v573clqf7l4lgg";
+    sha256 = "17wrfp7h7xbvncgm1fp103zkyz9n1f820jy6yca1aq208264hjkv";
   };
 
   nativeBuildInputs = [ iucode-tool libarchive ];
diff --git a/nixpkgs/pkgs/os-specific/linux/msr-tools/default.nix b/nixpkgs/pkgs/os-specific/linux/msr-tools/default.nix
index 67356719ffdb..1e6a55a4d656 100644
--- a/nixpkgs/pkgs/os-specific/linux/msr-tools/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/msr-tools/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "07hxmddg0l31kjfmaq84ni142lbbvgq6391r8bd79wpm819pnigr";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   preInstall = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix b/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix
index 4784abc6c28e..241498057232 100644
--- a/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, perl, lvm2, libaio, gzip, readline, systemd, liburcu, json_c }:
+{ lib, stdenv, fetchurl, pkg-config, perl, lvm2, libaio, gzip, readline, systemd, liburcu, json_c, kmod }:
 
 stdenv.mkDerivation rec {
   pname = "multipath-tools";
@@ -16,7 +16,13 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    substituteInPlace libmultipath/Makefile --replace /usr/include/libdevmapper.h ${lib.getDev lvm2}/include/libdevmapper.h
+    substituteInPlace libmultipath/Makefile \
+      --replace /usr/include/libdevmapper.h ${lib.getDev lvm2}/include/libdevmapper.h
+
+    substituteInPlace multipathd/multipathd.service \
+      --replace /sbin/modprobe ${lib.getBin kmod}/sbin/modprobe \
+      --replace /sbin/multipathd "$out/bin/multipathd"
+
     sed -i -re '
       s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'",
     ' libmultipath/defaults.h
diff --git a/nixpkgs/pkgs/os-specific/linux/musl-fts/default.nix b/nixpkgs/pkgs/os-specific/linux/musl-fts/default.nix
new file mode 100644
index 000000000000..cdb1cca47c6a
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/musl-fts/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "musl-fts";
+  version = "1.2.7";
+
+  src = fetchFromGitHub {
+    owner = "void-linux";
+    repo = "musl-fts";
+    rev = "v${version}";
+    sha256 = "Azw5qrz6OKDcpYydE6jXzVxSM5A8oYWAztrHr+O/DOE=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/void-linux/musl-fts";
+    description = "An implementation of fts(3) for musl-libc";
+    platforms = platforms.linux;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.pjjw ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/musl-obstack/default.nix b/nixpkgs/pkgs/os-specific/linux/musl-obstack/default.nix
new file mode 100644
index 000000000000..f7682d37efd9
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/musl-obstack/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "musl-obstack";
+  version = "1.2.2";
+
+  src = fetchFromGitHub {
+    owner = "void-linux";
+    repo = "musl-obstack";
+    rev = "v${version}";
+    sha256 = "v0RTnrqAmJfOeGsJFc04lqFR8QZhYiLyvy8oRYiuC80=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/void-linux/musl-obstack";
+    description =
+      "An extraction of the obstack functions and macros from GNU libiberty for use with musl-libc";
+    platforms = platforms.linux;
+    license = licenses.lgpl21Plus;
+    maintainers = [ maintainers.pjjw ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/musl/default.nix b/nixpkgs/pkgs/os-specific/linux/musl/default.nix
index 63d8114ac77a..ae175a363241 100644
--- a/nixpkgs/pkgs/os-specific/linux/musl/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/musl/default.nix
@@ -16,6 +16,11 @@ let
     sha256 = "14igk6k00bnpfw660qhswagyhvr0gfqg4q55dxvaaq7ikfkrir71";
   };
 
+  stack_chk_fail_local_c = fetchurl {
+    url = "https://git.alpinelinux.org/aports/plain/main/musl/__stack_chk_fail_local.c?h=3.10-stable";
+    sha256 = "1nhkzzy9pklgjcq2yg89d3l18jif331srd3z3vhy5qwxl1spv6i9";
+  };
+
   # iconv tool, implemented by musl author.
   # Original: http://git.etalabs.net/cgit/noxcuse/plain/src/iconv.c?id=02d288d89683e99fd18fe9f54d4e731a6c474a4f
   # We use copy from Alpine which fixes error messages, see:
@@ -35,11 +40,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "musl";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchurl {
-    url    = "https://www.musl-libc.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "0jz8fzwgvfyjgxjbpw35ixdglp2apqjvp8m386f6yr4zacc6xbv8";
+    url    = "https://musl.libc.org/releases/${pname}-${version}.tar.gz";
+    sha256 = "1p8r6bac64y98ln0wzmnixysckq3crca69ys7p16sy9d04i975lv";
   };
 
   enableParallelBuilding = true;
@@ -62,12 +67,6 @@ stdenv.mkDerivation rec {
       url = "https://raw.githubusercontent.com/openwrt/openwrt/87606e25afac6776d1bbc67ed284434ec5a832b4/toolchain/musl/patches/300-relative.patch";
       sha256 = "0hfadrycb60sm6hb6by4ycgaqc9sgrhh42k39v8xpmcvdzxrsq2n";
     })
-    # wcsnrtombs destination buffer overflow, remove >= 1.2.2
-    (fetchurl {
-      name = "CVE-2020-28928.patch";
-      url = "https://www.openwall.com/lists/oss-security/2020/11/20/4/1";
-      sha256 = "077n2p165504nz9di6n8y5421591r3lsbcxgih8z26l6mvkhcs2h";
-    })
   ];
   CFLAGS = [ "-fstack-protector-strong" ]
     ++ lib.optional stdenv.hostPlatform.isPower "-mlong-double-64";
@@ -87,6 +86,16 @@ stdenv.mkDerivation rec {
 
   NIX_DONT_SET_RPATH = true;
 
+  preBuild = ''
+    ${if (stdenv.targetPlatform.libc == "musl" && stdenv.targetPlatform.isx86_32) then
+    "# the -x c flag is required since the file extension confuses gcc
+    # that detect the file as a linker script.
+    $CC -x c -c ${stack_chk_fail_local_c} -o __stack_chk_fail_local.o
+    $AR r libssp_nonshared.a __stack_chk_fail_local.o"
+      else ""
+    }
+  '';
+
   postInstall = ''
     # Not sure why, but link in all but scsi directory as that's what uclibc/glibc do.
     # Apparently glibc provides scsi itself?
@@ -96,6 +105,13 @@ stdenv.mkDerivation rec {
     $STRIP -S $out/lib/libc.a
     mkdir -p $out/bin
 
+
+    ${if (stdenv.targetPlatform.libc == "musl" && stdenv.targetPlatform.isx86_32) then
+      "install -D libssp_nonshared.a $out/lib/libssp_nonshared.a
+      $STRIP -S $out/lib/libssp_nonshared.a"
+      else ""
+    }
+
     # Create 'ldd' symlink, builtin
     ln -rs $out/lib/libc.so $out/bin/ldd
 
@@ -127,7 +143,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An efficient, small, quality libc implementation";
-    homepage    = "http://www.musl-libc.org";
+    homepage    = "https://musl.libc.org/";
+    changelog   = "https://git.musl-libc.org/cgit/musl/tree/WHATSNEW?h=v${version}";
     license     = licenses.mit;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ thoughtpolice dtzWill ];
diff --git a/nixpkgs/pkgs/os-specific/linux/net-tools/default.nix b/nixpkgs/pkgs/os-specific/linux/net-tools/default.nix
index 461a65c007b2..c9410c27df96 100644
--- a/nixpkgs/pkgs/os-specific/linux/net-tools/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/net-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "net-tools";
-  version = "1.60_p20180626073013";
+  version = "2.10";
 
   src = fetchurl {
     url = "mirror://gentoo/distfiles/${pname}-${version}.tar.xz";
-    sha256 = "0mzsjjmz5kn676w2glmxwwd8bj0xy9dhhn21aplb435b767045q4";
+    sha256 = "sha256-smJDWlJB6Jv6UcPKvVEzdTlS96e3uT8y4Iy52W9YDWk=";
   };
 
   preBuild =
diff --git a/nixpkgs/pkgs/os-specific/linux/nfs-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/nfs-utils/default.nix
index c2d2996c54dc..7b5f6e720018 100644
--- a/nixpkgs/pkgs/os-specific/linux/nfs-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nfs-utils/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchpatch, lib, pkg-config, util-linux, libcap, libtirpc, libevent
-, sqlite, kerberos, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers
+, sqlite, libkrb5, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers
 , python3, buildPackages, nixosTests, rpcsvc-proto
 , enablePython ? true
 }:
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     libtirpc libcap libevent sqlite lvm2
-    libuuid keyutils kerberos tcp_wrappers
+    libuuid keyutils libkrb5 tcp_wrappers
   ] ++ lib.optional enablePython python3;
 
   enableParallelBuilding = true;
@@ -33,15 +33,15 @@ stdenv.mkDerivation rec {
   preConfigure =
     ''
       substituteInPlace configure \
-        --replace '$dir/include/gssapi' ${lib.getDev kerberos}/include/gssapi \
-        --replace '$dir/bin/krb5-config' ${lib.getDev kerberos}/bin/krb5-config
+        --replace '$dir/include/gssapi' ${lib.getDev libkrb5}/include/gssapi \
+        --replace '$dir/bin/krb5-config' ${lib.getDev libkrb5}/bin/krb5-config
     '';
 
   configureFlags =
     [ "--enable-gss"
       "--enable-svcgss"
       "--with-statedir=/var/lib/nfs"
-      "--with-krb5=${lib.getLib kerberos}"
+      "--with-krb5=${lib.getLib libkrb5}"
       "--with-systemd=${placeholder "out"}/etc/systemd/system"
       "--enable-libmount-mount"
       "--with-pluginpath=${placeholder "lib"}/lib/libnfsidmap" # this installs libnfsidmap
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
   # https://bugzilla.kernel.org/show_bug.cgi?id=203793
   doCheck = false;
 
-  disallowedReferences = [ (lib.getDev kerberos) ];
+  disallowedReferences = [ (lib.getDev libkrb5) ];
 
   passthru.tests = {
     nfs3-simple = nixosTests.nfs3.simple;
diff --git a/nixpkgs/pkgs/os-specific/linux/nftables/default.nix b/nixpkgs/pkgs/os-specific/linux/nftables/default.nix
index 115c12ec5e4e..bb5e3f519642 100644
--- a/nixpkgs/pkgs/os-specific/linux/nftables/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nftables/default.nix
@@ -10,12 +10,12 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "0.9.7";
+  version = "0.9.8";
   pname = "nftables";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/nftables/files/${pname}-${version}.tar.bz2";
-    sha256 = "1c1c2475nifncv0ng8z77h2dpanlsx0bhqm15k00jb3a6a68lszy";
+    sha256 = "1r4g22grhd4s1918wws9vggb8821sv4kkj8197ygxr6sar301z30";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
index 38b5e3241c1c..5874f334fedb 100644
--- a/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
+++ b/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
@@ -295,7 +295,7 @@ fi
 
 # Resolve the flake.
 if [[ -n $flake ]]; then
-    flake=$(nix "${flakeFlags[@]}" flake info --json "${extraBuildFlags[@]}" "${lockFlags[@]}" -- "$flake" | jq -r .url)
+    flake=$(nix "${flakeFlags[@]}" flake metadata --json "${extraBuildFlags[@]}" "${lockFlags[@]}" -- "$flake" | jq -r .url)
 fi
 
 # Find configuration.nix and open editor instead of building.
@@ -325,20 +325,6 @@ cleanup() {
 trap cleanup EXIT
 
 
-
-# If the Nix daemon is running, then use it.  This allows us to use
-# the latest Nix from Nixpkgs (below) for expression evaluation, while
-# still using the old Nix (via the daemon) for actual store access.
-# This matters if the new Nix in Nixpkgs has a schema change.  It
-# would upgrade the schema, which should only happen once we actually
-# switch to the new configuration.
-# If --repair is given, don't try to use the Nix daemon, because the
-# flag can only be used directly.
-if [ -z "$repair" ] && systemctl show nix-daemon.socket nix-daemon.service | grep -q ActiveState=active; then
-    export NIX_REMOTE=${NIX_REMOTE-daemon}
-fi
-
-
 # First build Nix, since NixOS may require a newer version than the
 # current one.
 if [ -n "$rollback" -o "$action" = dry-build ]; then
diff --git a/nixpkgs/pkgs/os-specific/linux/numactl/default.nix b/nixpkgs/pkgs/os-specific/linux/numactl/default.nix
index d796bf579f12..2f8a4feb0301 100644
--- a/nixpkgs/pkgs/os-specific/linux/numactl/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/numactl/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
     patchShebangs test
   '';
 
+  LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic";
+
   # You probably shouldn't ever run these! They will reconfigure Linux
   # NUMA settings, which on my build machine makes the rest of package
   # building ~5% slower until reboot. Ugh!
@@ -26,6 +28,6 @@ stdenv.mkDerivation rec {
     description = "Library and tools for non-uniform memory access (NUMA) machines";
     homepage = "https://github.com/numactl/numactl";
     license = with licenses; [ gpl2 lgpl21 ]; # libnuma is lgpl21
-    platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/numad/default.nix b/nixpkgs/pkgs/os-specific/linux/numad/default.nix
index cab5fe15e66d..21d5a871f4e9 100644
--- a/nixpkgs/pkgs/os-specific/linux/numad/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/numad/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://fedoraproject.org/wiki/Features/numad";
     license = licenses.lgpl21;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ domenkozar ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
index 73799a421ff0..1da25db7ae35 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -28,10 +28,10 @@ rec {
   # Policy: use the highest stable version as the default (on our master).
   stable = if stdenv.hostPlatform.system == "x86_64-linux"
     then generic {
-      version = "460.39";
-      sha256_64bit = "0zx3v4xas9z18yv1z3irp626h8kvcg8aw344sqpacfh1g106dw0b";
-      settingsSha256 = "15fa6lmfmgg02gya47ynx5d7cqsb73w4rbg4ly7lc1pnwl5f9qhm";
-      persistencedSha256 = "1dj3w03fa1i32c9c7w9392bg3nr2dk8mm4qm0wv12cv587zml0gx";
+      version = "460.67";
+      sha256_64bit = "L2cRySVw7mgYSN25mJV+b4uOeHTdjLGvFPEkwyFgtec=";
+      settingsSha256 = "DB+ZeKm6cYQuVkJWjVd71qOTOmwIcRqx1CxfkgMbDpg=";
+      persistencedSha256 = "HCmZZRlNhOHi5yN2lNHhBILZkdng73q0vCbv7CIX/8s=";
     }
     else legacy_390;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/nvidia-setttings-parallel-build.patch b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/nvidia-setttings-parallel-build.patch
deleted file mode 100644
index ed3fe7b6d6df..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/nvidia-setttings-parallel-build.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/Makefile b/src/Makefile
-index acbb1b8..fe97103 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -242,6 +242,7 @@ endif
- 
- define BINARY_DATA_HEADER_RULE
-   $$(OUTPUTDIR)/$(notdir $(1)).h:
-+	$(at_if_quiet)$(MKDIR) $$(OUTPUTDIR)
- 	$(at_if_quiet){ \
- 	  $$(PRINTF) "extern const char _binary_$(subst .,_,$(notdir $(1)))_start[];\n"; \
- 	  $$(PRINTF) "extern const char _binary_$(subst .,_,$(notdir $(1)))_end[];\n"; \
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/settings.nix b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/settings.nix
index f75e3aff1734..d5bbf40e2b8a 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/settings.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/settings.nix
@@ -45,12 +45,6 @@ stdenv.mkDerivation {
   version = nvidia_x11.settingsVersion;
   inherit src;
 
-  patches = [
-    # Fix a race condition in parallel builds.
-    # https://github.com/NVIDIA/nvidia-settings/issues/59#issuecomment-770302032
-    ./nvidia-setttings-parallel-build.patch
-  ];
-
   nativeBuildInputs = [ pkg-config m4 ];
 
   buildInputs = [ jansson libXv libXrandr libXext libXxf86vm libvdpau nvidia_x11 gtk2 dbus ]
diff --git a/nixpkgs/pkgs/os-specific/linux/nvme-cli/default.nix b/nixpkgs/pkgs/os-specific/linux/nvme-cli/default.nix
index b848a8682749..5e8bb550cf99 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvme-cli/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvme-cli/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, pkg-config
+, libuuid
+}:
 
 stdenv.mkDerivation rec {
   pname = "nvme-cli";
@@ -12,6 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ libuuid ];
 
   makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
 
diff --git a/nixpkgs/pkgs/os-specific/linux/nvmet-cli/default.nix b/nixpkgs/pkgs/os-specific/linux/nvmet-cli/default.nix
new file mode 100644
index 000000000000..4196efeae672
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/nvmet-cli/default.nix
@@ -0,0 +1,25 @@
+{ lib, python3Packages, fetchurl }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "nvmet-cli";
+  version = "0.7";
+
+  src = fetchurl {
+    url = "ftp://ftp.infradead.org/pub/nvmetcli/nvmetcli-${version}.tar.gz";
+    sha256 = "051y1b9w46azy35118154c353v3mhjkdzh6h59brdgn5054hayj2";
+  };
+
+  buildInputs = with python3Packages; [ nose2 ];
+
+  propagatedBuildInputs = with python3Packages; [ configshell ];
+
+  # This package requires the `nvmet` kernel module to be loaded for tests.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "NVMe target CLI";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ hoverbear ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/openvswitch/default.nix b/nixpkgs/pkgs/os-specific/linux/openvswitch/default.nix
index f90c79661907..254105534866 100644
--- a/nixpkgs/pkgs/os-specific/linux/openvswitch/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/openvswitch/default.nix
@@ -18,8 +18,8 @@ in stdenv.mkDerivation rec {
 
   kernel = optional (_kernel != null) _kernel.dev;
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ makeWrapper util-linux openssl libcap_ng pythonEnv
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ util-linux openssl libcap_ng pythonEnv
                   perl procps which ];
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/os-specific/linux/openvswitch/lts.nix b/nixpkgs/pkgs/os-specific/linux/openvswitch/lts.nix
index ddb5eff97230..4a6cf887c3ba 100644
--- a/nixpkgs/pkgs/os-specific/linux/openvswitch/lts.nix
+++ b/nixpkgs/pkgs/os-specific/linux/openvswitch/lts.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, makeWrapper, pkg-config, util-linux, which
-, procps, libcap_ng, openssl, python2, iproute , perl
+, procps, libcap_ng, openssl, python2, perl
 , automake, autoconf, libtool, kernel ? null }:
 
 with lib;
@@ -19,9 +19,8 @@ in stdenv.mkDerivation rec {
 
   kernel = optional (_kernel != null) _kernel.dev;
 
-  nativeBuildInputs = [ autoconf libtool automake pkg-config  ];
-  buildInputs = [ makeWrapper util-linux openssl libcap_ng python2
-                  perl procps which ];
+  nativeBuildInputs = [ autoconf libtool automake pkg-config makeWrapper ];
+  buildInputs = [ util-linux openssl libcap_ng python2 perl procps which ];
 
   preConfigure = "./boot.sh";
 
diff --git a/nixpkgs/pkgs/os-specific/linux/pam/default.nix b/nixpkgs/pkgs/os-specific/linux/pam/default.nix
index a697bb17a43c..fb993699494f 100644
--- a/nixpkgs/pkgs/os-specific/linux/pam/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pam/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, buildPackages, fetchurl, flex, cracklib, db4, gettext
 , nixosTests
+, withLibxcrypt ? false, libxcrypt
 }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +18,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ flex ]
     ++ lib.optional stdenv.buildPlatform.isDarwin gettext;
 
-  buildInputs = [ cracklib db4 ];
+  buildInputs = [ cracklib db4 ]
+    ++ lib.optional withLibxcrypt libxcrypt;
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/pam_gnupg/default.nix b/nixpkgs/pkgs/os-specific/linux/pam_gnupg/default.nix
index 6ffc6050055e..ffb397334c16 100644
--- a/nixpkgs/pkgs/os-specific/linux/pam_gnupg/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pam_gnupg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pam_gnupg";
-  version = "0.2";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "cruegge";
     repo = "pam-gnupg";
     rev = "v${version}";
-    sha256 = "1d8046clv7r3bl77dbpza4f1zlkjffvdczbb5bci3prz7dyfrwsz";
+    sha256 = "sha256-NDl6MsvIDAXkaLqXt7Wa0T7aulT31P5Z/d/Vb+ILya0=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/os-specific/linux/pam_krb5/default.nix b/nixpkgs/pkgs/os-specific/linux/pam_krb5/default.nix
index 8abfe5fee9d6..cb04fa5b4242 100644
--- a/nixpkgs/pkgs/os-specific/linux/pam_krb5/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pam_krb5/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchurl, pam, kerberos }:
+{ lib, stdenv, fetchurl, pam, libkrb5 }:
 
 stdenv.mkDerivation rec {
-  name = "pam-krb5-4.9";
+  name = "pam-krb5-4.10";
 
   src = fetchurl {
     url = "https://archives.eyrie.org/software/kerberos/${name}.tar.gz";
-    sha256 = "0kzz6mjkzw571pkv684vyczhl874f6p7lih3dj7s764gxdxnv4y5";
+    sha256 = "09wzxd5zrj5bzqpb01qf148npj5k8hmd2bx2ij1qsy40hdxqyq79";
   };
 
-  buildInputs = [ pam kerberos ];
+  buildInputs = [ pam libkrb5 ];
 
   meta = with lib; {
     homepage = "https://www.eyrie.org/~eagle/software/pam-krb5/";
diff --git a/nixpkgs/pkgs/os-specific/linux/pam_mount/default.nix b/nixpkgs/pkgs/os-specific/linux/pam_mount/default.nix
index 7f26ae80ed67..5e4e15c364bd 100644
--- a/nixpkgs/pkgs/os-specific/linux/pam_mount/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pam_mount/default.nix
@@ -2,16 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "pam_mount";
-  version = "2.16";
+  version = "2.17";
 
   src = fetchurl {
-    url = "mirror://sourceforge/pam-mount/pam_mount/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1rvi4irb7ylsbhvx1cr6islm2xxw1a4b19q6z4a9864ndkm0f0mf";
+    url = "mirror://sourceforge/pam-mount/pam_mount/${pname}-${version}.tar.xz";
+    sha256 = "1q2n6a2ah6nghdn8i6ad2wj247njwb5nx48cggxknaa6lqxylidy";
   };
 
   patches = [
     ./insert_utillinux_path_hooks.patch
-    ./support_luks2.patch
   ];
 
   postPatch = ''
@@ -31,7 +30,6 @@ stdenv.mkDerivation rec {
     "--sbindir=${placeholder "out"}/bin"
     "--sysconfdir=${placeholder "out"}/etc"
     "--with-slibdir=${placeholder "out"}/lib"
-    "--with-ssbindir=${placeholder "out"}/bin"
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/pam_mount/support_luks2.patch b/nixpkgs/pkgs/os-specific/linux/pam_mount/support_luks2.patch
deleted file mode 100644
index 0b8557f1bae0..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/pam_mount/support_luks2.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-commit d4434c05e7c0cf05d87089404cfa2deedc60811a
-Author: Ingo Franzki <ifranzki@linux.ibm.com>
-Date:   Mon Oct 29 16:47:40 2018 +0100
-
-    crypto: Add support for LUKS2
-    
-    Cryptsetup version 2.0 added support for LUKS2.
-    This patch adds support for mounting LUKS2 volumes with
-    pam_mount.
-    
-    Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
-
-diff --git a/src/crypto-dmc.c b/src/crypto-dmc.c
-index d0ab6ca..abd0358 100644
---- a/src/crypto-dmc.c
-+++ b/src/crypto-dmc.c
-@@ -21,6 +21,12 @@
- #include "libcryptmount.h"
- #include "pam_mount.h"
- 
-+#ifndef CRYPT_LUKS
-+	#define CRYPT_LUKS	NULL /* Passing NULL to crypt_load will
-+					default to LUKS(1) on older
-+					libcryptsetup versions. */
-+#endif
-+
- /**
-  * dmc_is_luks - check if @path points to a LUKS volume (cf. normal dm-crypt)
-  * @path:	path to the crypto container
-@@ -48,7 +54,7 @@ EXPORT_SYMBOL int ehd_is_luks(const char *path, bool blkdev)
- 
- 	ret = crypt_init(&cd, device);
- 	if (ret == 0) {
--		ret = crypt_load(cd, CRYPT_LUKS1, NULL);
-+		ret = crypt_load(cd, CRYPT_LUKS, NULL);
- 		if (ret == -EINVAL)
- 			ret = false;
- 		else if (ret == 0)
-@@ -106,7 +112,7 @@ static bool dmc_run(const struct ehd_mount_request *req,
- #endif
- 	}
- 
--	ret = crypt_load(cd, CRYPT_LUKS1, NULL);
-+	ret = crypt_load(cd, CRYPT_LUKS, NULL);
- 	if (ret == 0) {
- 		ret = crypt_activate_by_passphrase(cd, mt->crypto_name,
- 		      CRYPT_ANY_SLOT, req->key_data, req->key_size, flags);
diff --git a/nixpkgs/pkgs/os-specific/linux/pax-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/pax-utils/default.nix
index f69b2bd7fcec..40159cd2acd8 100644
--- a/nixpkgs/pkgs/os-specific/linux/pax-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pax-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pax-utils";
-  version = "1.2.6";
+  version = "1.2.8";
 
   src = fetchurl {
     url = "http://distfiles.gentoo.org/distfiles/${pname}-${version}.tar.xz";
-    sha256 = "08bzvgv1z3371sqf7zlm9i0b1y3wdymj2dqdvzvf192k3nix4hlp";
+    sha256 = "sha256-urTIhG4dLMNmnPqSMdIdszWEHX1Y+eGc0Jn+bOYmsVc=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/pcmciautils/default.nix b/nixpkgs/pkgs/os-specific/linux/pcmciautils/default.nix
index ff3100cbb22e..a4da6be691e9 100644
--- a/nixpkgs/pkgs/os-specific/linux/pcmciautils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pcmciautils/default.nix
@@ -1,5 +1,5 @@
 { config, lib, stdenv, fetchurl
-, yacc, flex
+, bison, flex
 , sysfsutils, kmod, udev
 , firmware   ? config.pcmciaUtils.firmware or [] # Special pcmcia cards.
 , configOpts ? config.pcmciaUtils.config or null # Special hardware (map memory & port & irq)
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "0sfm3w2n73kl5w7gb1m6q8gy5k4rgwvzz79n6yhs9w3sag3ix8sk";
   };
 
-  buildInputs = [udev yacc sysfsutils kmod flex];
+  buildInputs = [udev bison sysfsutils kmod flex];
 
   patchPhase = ''
     sed -i "
diff --git a/nixpkgs/pkgs/os-specific/linux/pipework/default.nix b/nixpkgs/pkgs/os-specific/linux/pipework/default.nix
index 14d1eb859980..33192392888a 100644
--- a/nixpkgs/pkgs/os-specific/linux/pipework/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pipework/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
-, bridge-utils, iproute, lxc, openvswitch, docker, busybox, dhcpcd, dhcp
+, bridge-utils, iproute2, lxc, openvswitch, docker, busybox, dhcpcd, dhcp
 }:
 
 stdenv.mkDerivation {
@@ -11,11 +11,11 @@ stdenv.mkDerivation {
     rev = "ae42f1b5fef82b3bc23fe93c95c345e7af65fef3";
     sha256 = "0c342m0bpq6ranr7dsxk9qi5mg3j5aw9wv85ql8gprdb2pz59qy8";
   };
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
     install -D pipework $out/bin/pipework
     wrapProgram $out/bin/pipework --prefix PATH : \
-      ${lib.makeBinPath [ bridge-utils iproute lxc openvswitch docker busybox dhcpcd dhcp ]};
+      ${lib.makeBinPath [ bridge-utils iproute2 lxc openvswitch docker busybox dhcpcd dhcp ]};
   '';
   meta = with lib; {
     description = "Software-Defined Networking tools for LXC";
diff --git a/nixpkgs/pkgs/os-specific/linux/ply/default.nix b/nixpkgs/pkgs/os-specific/linux/ply/default.nix
index 2844badc7305..e62716e47967 100644
--- a/nixpkgs/pkgs/os-specific/linux/ply/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ply/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, kernel, fetchFromGitHub, autoreconfHook, yacc, flex, p7zip, rsync }:
+{ lib, stdenv, kernel, fetchFromGitHub, autoreconfHook, bison, flex, p7zip, rsync }:
 
 assert kernel != null -> lib.versionAtLeast kernel.version "4.0";
 
@@ -7,7 +7,7 @@ let
 in stdenv.mkDerivation {
   pname = "ply";
   inherit version;
-  nativeBuildInputs = [ autoreconfHook flex yacc p7zip rsync ];
+  nativeBuildInputs = [ autoreconfHook flex bison p7zip rsync ];
 
   src = fetchFromGitHub {
     owner = "iovisor";
diff --git a/nixpkgs/pkgs/os-specific/linux/plymouth/default.nix b/nixpkgs/pkgs/os-specific/linux/plymouth/default.nix
index c167b202c8d6..8cb2a00987e1 100644
--- a/nixpkgs/pkgs/os-specific/linux/plymouth/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/plymouth/default.nix
@@ -1,64 +1,111 @@
-{ stdenv, fetchurl, autoreconfHook, pkg-config, libxslt, docbook_xsl
-, gtk3, udev, systemd, lib
+{ lib
+, stdenv
+, fetchpatch
+, fetchFromGitLab
+, pkg-config
+, autoreconfHook
+, libxslt
+, docbook-xsl-nons
+, gettext
+, gtk3
+, systemd
+, pango
+, cairo
+, libdrm
 }:
 
 stdenv.mkDerivation rec {
-  pname = "plymouth";
-  version = "0.9.4";
+  pname = "plymouth-unstable";
+  version = "2020-12-07";
 
-  src = fetchurl {
-    url = "https://www.freedesktop.org/software/plymouth/releases/${pname}-${version}.tar.xz";
-    sha256 = "0l8kg7b2vfxgz9gnrn0v2w4jvysj2cirp0nxads5sy05397pl6aa";
+  outputs = [
+    "out"
+    "dev"
+  ];
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "plymouth";
+    repo = "plymouth";
+    rev = "c4ced2a2d70edea7fbb95274aa1d01d95928df1b";
+    sha256 = "7CPuKMA0fTt8DBsaA4Td74kHT/O7PW8N3awP04nUnOI=";
   };
 
   nativeBuildInputs = [
-    autoreconfHook pkg-config libxslt docbook_xsl
+    autoreconfHook
+    docbook-xsl-nons
+    gettext
+    libxslt
+    pkg-config
   ];
 
   buildInputs = [
-    gtk3 udev systemd
+    cairo
+    gtk3
+    libdrm
+    pango
+    systemd
+  ];
+
+  patches = [
+    # KillMode=none is deprecated
+    # https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/123
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/plymouth/plymouth/-/commit/b406b0895a95949db2adfedaeda451f36f2b51c3.patch";
+      sha256 = "/UBImNuFO0G/oxlttjGIXon8YXMXlc9XU8uVuR9QuxY=";
+    })
   ];
 
   postPatch = ''
     sed -i \
-      -e "s#\$(\$PKG_CONFIG --variable=systemdsystemunitdir systemd)#$out/etc/systemd/system#g" \
       -e "s#plymouthplugindir=.*#plymouthplugindir=/etc/plymouth/plugins/#" \
       -e "s#plymouththemedir=.*#plymouththemedir=/etc/plymouth/themes#" \
       -e "s#plymouthpolicydir=.*#plymouthpolicydir=/etc/plymouth/#" \
+      -e "s#plymouthconfdir=.*#plymouthconfdir=/etc/plymouth/#" \
       configure.ac
   '';
 
+  configurePlatforms = [ "host" ];
+
   configureFlags = [
-    "--sysconfdir=/etc"
-    "--with-systemdunitdir=${placeholder "out"}/etc/systemd/system"
+    "--enable-documentation"
+    "--enable-drm"
+    "--enable-gtk"
+    "--enable-pango"
+    "--enable-systemd-integration"
+    "--enable-tracing"
     "--localstatedir=/var"
-    "--with-logo=/etc/plymouth/logo.png"
+    "--sysconfdir=/etc"
     "--with-background-color=0x000000"
-    "--with-background-start-color-stop=0x000000"
     "--with-background-end-color-stop=0x000000"
+    "--with-background-start-color-stop=0x000000"
+    "--with-logo=/etc/plymouth/logo.png"
     "--with-release-file=/etc/os-release"
-    "--without-system-root-install"
+    "--with-runtimedir=/run"
+    "--with-systemdunitdir=${placeholder "out"}/etc/systemd/system"
     "--without-rhgb-compat-link"
-    "--enable-tracing"
-    "--enable-systemd-integration"
-    "--enable-pango"
-    "--enable-gdm-transition"
-    "--enable-gtk"
+    "--without-system-root-install"
     "ac_cv_path_SYSTEMD_ASK_PASSWORD_AGENT=${lib.getBin systemd}/bin/systemd-tty-ask-password-agent"
   ];
 
-  configurePlatforms = [ "host" ];
-
   installFlags = [
-    "plymouthd_defaultsdir=$(out)/share/plymouth"
-    "plymouthd_confdir=$(out)/etc/plymouth"
+    "localstatedir=\${TMPDIR}"
+    "plymouthd_confdir=${placeholder "out"}/etc/plymouth"
+    "plymouthd_defaultsdir=${placeholder "out"}/share/plymouth"
+    "sysconfdir=${placeholder "out"}/etc"
   ];
 
+  postInstall = ''
+    # Makes a symlink to /usr/share/pixmaps/system-logo-white.png
+    # We'll handle it in the nixos module.
+    rm $out/share/plymouth/themes/spinfinity/header-image.png
+  '';
+
   meta = with lib; {
-    homepage = "http://www.freedesktop.org/wiki/Software/Plymouth";
-    description = "A graphical boot animation";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.goibhniu ];
+    homepage = "https://www.freedesktop.org/wiki/Software/Plymouth/";
+    description = "Boot splash and boot logger";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.goibhniu teams.gnome.members ];
     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 c477e6f36793..03267b8e9ae5 100644
--- a/nixpkgs/pkgs/os-specific/linux/power-profiles-daemon/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/power-profiles-daemon/default.nix
@@ -15,11 +15,12 @@
 , libxslt
 , upower
 , systemd
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "power-profiles-daemon";
-  version = "0.1";
+  version = "0.8.1";
 
   outputs = [ "out" "devdoc" ];
 
@@ -28,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "hadess";
     repo = "power-profiles-daemon";
     rev = version;
-    sha256 = "012w3aryw5d43dr9jj5i6wy2a0n21jidr4ggs9ix7d4z9byr175w";
+    sha256 = "sha256-OnCUr7KWVPpYGDseBUcJD/PdOobvFnyNA97NhnKbTKY=";
   };
 
   nativeBuildInputs = [
@@ -49,6 +50,7 @@ stdenv.mkDerivation rec {
     systemd
     upower
     glib
+    (python3.withPackages (ps: with ps; [ ps.pygobject3 ])) # for cli tool
   ];
 
   mesonFlags = [
diff --git a/nixpkgs/pkgs/os-specific/linux/powercap/default.nix b/nixpkgs/pkgs/os-specific/linux/powercap/default.nix
new file mode 100644
index 000000000000..ad9de9f75d5d
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/powercap/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "powercap";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "powercap";
+    repo = "powercap";
+    rev = "v${version}";
+    sha256 = "0f1sg1zsskcfralg9khwq7lmz25gvnyknza3bb0hmh1a9lw0jhdn";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=On"
+  ];
+
+  meta = with lib; {
+    description = "Tools and library to read/write to the Linux power capping framework (sysfs interface)";
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ rowanG077 ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix b/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix
index 12a92c36c692..f80b7425cd48 100644
--- a/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "powerstat";
-  version = "0.02.24";
+  version = "0.02.25";
 
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0yrc1xi9flxn2mvmzp0b0vd0md5z4p8fd4y8bszc67xy12qiqy0j";
+    sha256 = "sha256-C6MCOXnElDI69QkLKd2X2SLved8cRCN0Q6BhUvvqsTY=";
   };
 
   installFlags = [ "DESTDIR=${placeholder "out"}" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/procps-ng/default.nix b/nixpkgs/pkgs/os-specific/linux/procps-ng/default.nix
index 9f12ab695397..1d19d9151175 100644
--- a/nixpkgs/pkgs/os-specific/linux/procps-ng/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/procps-ng/default.nix
@@ -1,14 +1,19 @@
-{ lib, stdenv, fetchurl, fetchpatch, ncurses, pkg-config
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, ncurses
+, pkg-config
 
-# `ps` with systemd support is able to properly report different
-# attributes like unit name, so we want to have it on linux.
+  # `ps` with systemd support is able to properly report different
+  # attributes like unit name, so we want to have it on linux.
 , withSystemd ? stdenv.isLinux
-, systemd ? null
+, systemd
 
-# procps is mostly Linux-only. Most commands require a running Linux
-# system (or very similar like that found in Cygwin). The one
-# exception is ‘watch’ which is portable enough to run on pretty much
-# any UNIX-compatible system.
+  # procps is mostly Linux-only. Most commands require a running Linux
+  # system (or very similar like that found in Cygwin). The one
+  # exception is ‘watch’ which is portable enough to run on pretty much
+  # any UNIX-compatible system.
 , watchOnly ? !(stdenv.isLinux || stdenv.isCygwin)
 }:
 
@@ -35,28 +40,29 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   makeFlags = [ "usrbin_execdir=$(out)/bin" ]
-    ++ lib.optionals watchOnly [ "watch" "PKG_LDFLAGS="];
+    ++ lib.optionals watchOnly [ "watch" "PKG_LDFLAGS=" ];
 
   enableParallelBuilding = true;
 
   # Too red
   configureFlags = [ "--disable-modern-top" ]
     ++ lib.optional withSystemd "--with-systemd"
-    ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform)
-    [ "ac_cv_func_malloc_0_nonnull=yes"
-      "ac_cv_func_realloc_0_nonnull=yes" ];
+    ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "ac_cv_func_malloc_0_nonnull=yes"
+    "ac_cv_func_realloc_0_nonnull=yes"
+  ];
 
-  installPhase = if watchOnly then ''
+  installPhase = lib.optionalString watchOnly ''
     install -m 0755 -D watch $out/bin/watch
     install -m 0644 -D watch.1 $out/share/man/man1/watch.1
-  '' else null;
+  '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://gitlab.com/procps-ng/procps";
     description = "Utilities that give information about processes using the /proc filesystem";
     priority = 11; # less than coreutils, which also provides "kill" and "uptime"
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.unix;
-    maintainers = [ lib.maintainers.typetetris ];
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.typetetris ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix b/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
index ee5ead73bc13..90af44f83530 100644
--- a/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
@@ -3,13 +3,13 @@
 }:
 stdenvNoCC.mkDerivation {
   pname = "raspberrypi-eeprom";
-  version = "2020-12-11";
+  version = "2021-03-18";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "rpi-eeprom";
-    rev = "54a9796abbee59067bff9da6b90c1014178f2c21";
-    sha256 = "0yp7bn444n6yisp4hiblrm00rrvrf213amzb4sh96mlb5nhxspqk";
+    rev = "ff27ccf69403b01e337fc4ee6e7ae75244028cce";
+    sha256 = "1q1vlld0xxh9zinf5g0qa6jw1dggq93br938mvrfx3nb2aviiwcj";
   };
 
   buildInputs = [ python3 ];
@@ -28,7 +28,6 @@ stdenvNoCC.mkDerivation {
 
     cp rpi-eeprom-config rpi-eeprom-update $out/bin
     cp -r firmware/{beta,critical,old,stable} $out/share/rpi-eeprom
-    cp -r firmware/vl805 $out/bin
   '';
 
   fixupPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/rdma-core/default.nix b/nixpkgs/pkgs/os-specific/linux/rdma-core/default.nix
index ad9deeb7a8c7..c37514eaf487 100644
--- a/nixpkgs/pkgs/os-specific/linux/rdma-core/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rdma-core/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, docutils
-, pandoc, ethtool, iproute, libnl, udev, python, perl
+, pandoc, ethtool, iproute2, libnl, udev, python3, perl
 , makeWrapper
 } :
 
 let
-  version = "33.1";
+  version = "34.0";
 
 in stdenv.mkDerivation {
   pname = "rdma-core";
@@ -14,11 +14,11 @@ in stdenv.mkDerivation {
     owner = "linux-rdma";
     repo = "rdma-core";
     rev = "v${version}";
-    sha256 = "1p97r8ngfx1d9aq8p3f027323m7kgmk30kfrikf3jlkpr30rksbv";
+    sha256 = "sha256-2HFtj595sDmWqAewIMwKMaiSDVVWKdQA9l0QsPcw8qA=";
   };
 
   nativeBuildInputs = [ cmake pkg-config pandoc docutils makeWrapper ];
-  buildInputs = [ libnl ethtool iproute udev python perl ];
+  buildInputs = [ libnl ethtool iproute2 udev python3 perl ];
 
   cmakeFlags = [
     "-DCMAKE_INSTALL_RUNDIR=/run"
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix
index 050830927e93..cb8a02bcf304 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rtl8821ce-${kernel.version}";
-  version = "unstable-2020-12-16";
+  version = "unstable-2021-03-21";
 
   src = fetchFromGitHub {
     owner = "tomaspinho";
     repo = "rtl8821ce";
-    rev = "14b536f0c9ad2d0abbdab8afc7ade684900ca9cf";
-    sha256 = "0z7r7spsgn22gwv9pcmkdjn9ingi8jj7xkxasph8118h46fw8ip2";
+    rev = "897e7c4c15dd5a0a569745dc223d969a26ff5bfc";
+    sha256 = "0935dzz0njxh78wfd17yqah1dxn6b3kaszvzclwwrwwhwcrdp80j";
   };
 
   hardeningDisable = [ "pic" ];
@@ -31,8 +31,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Realtek rtl8821ce driver";
     homepage = "https://github.com/tomaspinho/rtl8821ce";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ hhm samuelgrf ];
+    maintainers = with maintainers; [ hhm ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/rtlwifi_new/default.nix b/nixpkgs/pkgs/os-specific/linux/rtlwifi_new/default.nix
deleted file mode 100644
index 12f87f409552..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/rtlwifi_new/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, kernel }:
-
-with lib;
-
-let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtlwifi";
-
-in stdenv.mkDerivation rec {
-  pname = "rtlwifi_new";
-  version = "2019-08-21";
-  # When updating see https://github.com/lwfinger/rtl8723be/issues/17#issuecomment-657326751
-
-  src = fetchFromGitHub {
-    owner = "rtlwifi-linux";
-    repo = "rtlwifi_new";
-    # commit does not exist on any branch on the target repository
-    rev = "a108e3de87c2ed30b71c3c4595b79ab7a2f9e348";
-    sha256 = "15kjs9i9vvmn1cdzccd5cljf3m45r4ssm65klkj2fdkf3kljj38k";
-  };
-
-  hardeningDisable = [ "pic" "format" ];
-
-  nativeBuildInputs = kernel.moduleBuildDependencies;
-
-  makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
-
-  enableParallelBuilding = true;
-
-  installPhase = ''
-    mkdir -p ${modDestDir}
-    find . -name '*.ko' -exec cp --parents {} ${modDestDir} \;
-    find ${modDestDir} -name '*.ko' -exec xz -f {} \;
-  '';
-
-  meta = {
-    description = "The newest Realtek rtlwifi codes";
-    inherit (src.meta) homepage;
-    license = lib.licenses.gpl2;
-    platforms = with platforms; linux;
-    maintainers = with maintainers; [ tvorog ];
-    priority = -1;
-  };
-}
diff --git a/nixpkgs/pkgs/os-specific/linux/rtw88/default.nix b/nixpkgs/pkgs/os-specific/linux/rtw88/default.nix
new file mode 100644
index 000000000000..6b5e3211a9e0
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/rtw88/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchFromGitHub, kernel }:
+
+let
+  modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtw88";
+in
+stdenv.mkDerivation {
+  pname = "rtw88";
+  version = "unstable-2021-04-01";
+
+  src = fetchFromGitHub {
+    owner = "lwfinger";
+    repo = "rtw88";
+    rev = "689ce370b0c2da207bb092065697f6cb455a00dc";
+    hash = "sha256-gdfQxpzYJ9bEObc2iEapA0TPMZuXndBvEu6qwKqdhyo=";
+  };
+
+  makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p ${modDestDir}
+    find . -name '*.ko' -exec cp --parents {} ${modDestDir} \;
+    find ${modDestDir} -name '*.ko' -exec xz -f {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "The newest Realtek rtlwifi codes";
+    homepage = "https://github.com/lwfinger/rtw88";
+    license = with licenses; [ bsd3 gpl2Only ];
+    maintainers = with maintainers; [ tvorog ];
+    platforms = platforms.linux;
+    broken = kernel.kernelOlder "4.14";
+    priority = -1;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/s6-linux-init/default.nix b/nixpkgs/pkgs/os-specific/linux/s6-linux-init/default.nix
index 87cc098d07d4..41790e5eb781 100644
--- a/nixpkgs/pkgs/os-specific/linux/s6-linux-init/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/s6-linux-init/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6-linux-init";
-  version = "1.0.6.0";
-  sha256 = "0kzif3dqhm7h4h7c6npzdbcy7w756222g8ysw116fgb8j385dr6w";
+  version = "1.0.6.1";
+  sha256 = "0sq8ya39a1qs61cdjns8ijwrvxnqd4snk2ab4j5wl9a87i7wixhn";
 
   description = "A set of minimalistic tools used to create a s6-based init system, including a /sbin/init binary, on a Linux kernel";
   platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/seturgent/default.nix b/nixpkgs/pkgs/os-specific/linux/seturgent/default.nix
index a2ffcae3d6bf..2e9e445eddc5 100644
--- a/nixpkgs/pkgs/os-specific/linux/seturgent/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/seturgent/default.nix
@@ -8,8 +8,9 @@ stdenv.mkDerivation {
     sha256 = "0q1sr6aljkw2jr9b4xxzbc01qvnd5vk3pxrypif9yd8xjw4wqwri";
   };
 
+  nativeBuildInputs = [ unzip ];
   buildInputs = [
-    libX11 xorgproto unzip
+    libX11 xorgproto
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/sssd/default.nix b/nixpkgs/pkgs/os-specific/linux/sssd/default.nix
index 2973b87210bf..d768546b12bb 100644
--- a/nixpkgs/pkgs/os-specific/linux/sssd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sssd/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, fetchpatch, glibc, augeas, dnsutils, c-ares, curl,
   cyrus_sasl, ding-libs, libnl, libunistring, nss, samba, nfs-utils, doxygen,
   python, python3, pam, popt, talloc, tdb, tevent, pkg-config, ldb, openldap,
-  pcre, kerberos, cifs-utils, glib, keyutils, dbus, fakeroot, libxslt, libxml2,
+  pcre, libkrb5, cifs-utils, glib, keyutils, dbus, fakeroot, libxslt, libxml2,
   libuuid, ldap, systemd, nspr, check, cmocka, uid_wrapper,
   nss_wrapper, ncurses, Po4a, http-parser, jansson,
   docbook_xsl, docbook_xml_dtd_44,
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
   buildInputs = [ augeas dnsutils c-ares curl cyrus_sasl ding-libs libnl libunistring nss
                   samba nfs-utils doxygen python python3 popt
-                  talloc tdb tevent pkg-config ldb pam openldap pcre kerberos
+                  talloc tdb tevent pkg-config ldb pam openldap pcre libkrb5
                   cifs-utils glib keyutils dbus fakeroot libxslt libxml2
                   libuuid ldap systemd nspr check cmocka uid_wrapper
                   nss_wrapper ncurses Po4a http-parser jansson ];
diff --git a/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix b/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix
index ecbd23e117f4..23e78dd848ed 100644
--- a/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, kernel, installShellFiles
-, luajit, zlib, ncurses, perl, jsoncpp, libb64, openssl, curl, jq, gcc, elfutils, tbb, c-ares, protobuf, grpc
+, luajit, ncurses, perl, jsoncpp, libb64, openssl, curl, jq, gcc, elfutils, tbb, protobuf, grpc
 }:
 
 with lib;
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake perl installShellFiles ];
   buildInputs = [
-    zlib luajit ncurses jsoncpp libb64 openssl curl jq gcc elfutils tbb c-ares protobuf grpc
+    luajit ncurses jsoncpp libb64 openssl curl jq gcc elfutils tbb protobuf grpc
   ] ++ optionals (kernel != null) kernel.moduleBuildDependencies;
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix b/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix
index 1b2415dd8052..0f69cb13fcd9 100644
--- a/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix
@@ -63,8 +63,8 @@ stdenv.mkDerivation {
     touch gnu-efi/inc/ia32/gnu/stubs-32.h
   '';
 
-  nativeBuildInputs = [ nasm perl python3 ];
-  buildInputs = [ libuuid makeWrapper ];
+  nativeBuildInputs = [ nasm perl python3 makeWrapper ];
+  buildInputs = [ libuuid ];
 
   enableParallelBuilding = false; # Fails very rarely with 'No rule to make target: ...'
   hardeningDisable = [ "pic" "stackprotector" "fortify" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/sysstat/default.nix b/nixpkgs/pkgs/os-specific/linux/sysstat/default.nix
index 2d54223edb5a..2eff999ac7cf 100644
--- a/nixpkgs/pkgs/os-specific/linux/sysstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sysstat/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, gettext, bzip2 }:
 
 stdenv.mkDerivation rec {
-  name = "sysstat-12.3.2";
+  name = "sysstat-12.4.3";
 
   src = fetchurl {
     url = "http://pagesperso-orange.fr/sebastien.godard/${name}.tar.xz";
-    sha256 = "0gaas16q2f7qmrv4sbqk2l2mrc7yr64s33bzw4094p59fkylm7k4";
+    sha256 = "sha256-rkMkMfRarLyrrPu+Ep4lBeIVyvqc6ZbXVQxgkaRvC/0=";
   };
 
   buildInputs = [ gettext ];
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
index 476ebe06e70f..3e40385c3bb7 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
@@ -1,24 +1,23 @@
-From 6ede8baac88aba769030f5bc5f5b2070098c7428 Mon Sep 17 00:00:00 2001
+From 95e4533f1eeb6e0d509f9129d0133f0b849cc3c5 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Fri, 19 Dec 2014 14:46:17 +0100
 Subject: [PATCH 05/18] Add some NixOS-specific unit directories
 
-Look in `/nix/var/nix/profiles/default/lib/systemd` for units provided
-by packages installed into the default profile via
-`nix-env -iA nixos.$package`, and into `/etc/systemd-mutable/system` for
-persistent, mutable units (used for Dysnomia).
+Look in `/nix/var/nix/profiles/default/lib/systemd/{system,user}` for
+units provided by packages installed into the default profile via
+`nix-env -iA nixos.$package`.
 
 Also, remove /usr and /lib as these don't exist on NixOS.
 ---
- src/basic/path-lookup.c | 20 +++++---------------
+ src/basic/path-lookup.c | 17 ++---------------
  src/core/systemd.pc.in  |  5 +++--
- 2 files changed, 8 insertions(+), 17 deletions(-)
+ 2 files changed, 5 insertions(+), 17 deletions(-)
 
 diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
-index 96b82170d0..b9fbed5c61 100644
+index 96b82170d0..bf66bd6b77 100644
 --- a/src/basic/path-lookup.c
 +++ b/src/basic/path-lookup.c
-@@ -94,17 +94,14 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
+@@ -94,11 +94,7 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
  }
  
  static const char* const user_data_unit_paths[] = {
@@ -30,18 +29,10 @@ index 96b82170d0..b9fbed5c61 100644
          NULL
  };
  
- static const char* const user_config_unit_paths[] = {
-         USER_CONFIG_UNIT_DIR,
-         "/etc/systemd/user",
-+        "/etc/systemd-mutable/user",
-         NULL
- };
- 
-@@ -616,15 +613,14 @@ int lookup_paths_init(
+@@ -616,15 +612,13 @@ int lookup_paths_init(
                                          persistent_config,
                                          SYSTEM_CONFIG_UNIT_DIR,
                                          "/etc/systemd/system",
-+                                        "/etc/systemd-mutable/system",
 +                                        "/nix/var/nix/profiles/default/lib/systemd/system",
                                          STRV_IFNOTNULL(persistent_attached),
                                          runtime_config,
@@ -55,11 +46,10 @@ index 96b82170d0..b9fbed5c61 100644
                                          STRV_IFNOTNULL(generator_late));
                          break;
  
-@@ -640,14 +636,12 @@ int lookup_paths_init(
+@@ -640,14 +634,11 @@ int lookup_paths_init(
                                          persistent_config,
                                          USER_CONFIG_UNIT_DIR,
                                          "/etc/systemd/user",
-+                                        "/etc/systemd-mutable/user",
 +                                        "/nix/var/nix/profiles/default/lib/systemd/user",
                                          runtime_config,
                                          "/run/systemd/user",
@@ -72,7 +62,7 @@ index 96b82170d0..b9fbed5c61 100644
                                          STRV_IFNOTNULL(generator_late));
                          break;
  
-@@ -797,7 +791,6 @@ char **generator_binary_paths(UnitFileScope scope) {
+@@ -797,7 +788,6 @@ char **generator_binary_paths(UnitFileScope scope) {
                  case UNIT_FILE_SYSTEM:
                          add = strv_new("/run/systemd/system-generators",
                                         "/etc/systemd/system-generators",
@@ -80,7 +70,7 @@ index 96b82170d0..b9fbed5c61 100644
                                         SYSTEM_GENERATOR_DIR);
                          break;
  
-@@ -805,7 +798,6 @@ char **generator_binary_paths(UnitFileScope scope) {
+@@ -805,7 +795,6 @@ char **generator_binary_paths(UnitFileScope scope) {
                  case UNIT_FILE_USER:
                          add = strv_new("/run/systemd/user-generators",
                                         "/etc/systemd/user-generators",
@@ -88,7 +78,7 @@ index 96b82170d0..b9fbed5c61 100644
                                         USER_GENERATOR_DIR);
                          break;
  
-@@ -844,12 +836,10 @@ char **env_generator_binary_paths(bool is_system) {
+@@ -844,12 +833,10 @@ char **env_generator_binary_paths(bool is_system) {
                  if (is_system)
                          add = strv_new("/run/systemd/system-environment-generators",
                                          "/etc/systemd/system-environment-generators",
@@ -102,7 +92,7 @@ index 96b82170d0..b9fbed5c61 100644
  
                  if (!add)
 diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in
-index f2c045511d..ccb382e421 100644
+index f2c045511d..d38a3a0302 100644
 --- a/src/core/systemd.pc.in
 +++ b/src/core/systemd.pc.in
 @@ -38,10 +38,11 @@ systemdsystemconfdir=${systemd_system_conf_dir}
@@ -110,11 +100,11 @@ index f2c045511d..ccb382e421 100644
  systemduserconfdir=${systemd_user_conf_dir}
  
 -systemd_system_unit_path=${systemd_system_conf_dir}:/etc/systemd/system:/run/systemd/system:/usr/local/lib/systemd/system:${systemd_system_unit_dir}:/usr/lib/systemd/system:/lib/systemd/system
-+systemd_system_unit_path=${systemd_system_conf_dir}:/etc/systemd/system:/etc/systemd-mutable/system:/nix/var/nix/profiles/default/lib/systemd/system:/run/systemd/system:${systemdsystemunitdir}
++systemd_system_unit_path=${systemd_system_conf_dir}:/etc/systemd/system:/nix/var/nix/profiles/default/lib/systemd/system:/run/systemd/system:${systemdsystemunitdir}
  systemdsystemunitpath=${systemd_system_unit_path}
  
 -systemd_user_unit_path=${systemd_user_conf_dir}:/etc/systemd/user:/run/systemd/user:/usr/local/lib/systemd/user:/usr/local/share/systemd/user:${systemd_user_unit_dir}:/usr/lib/systemd/user:/usr/share/systemd/user
-+systemd_user_unit_path=${systemd_user_conf_dir}:/etc/systemd/user:/etc/systemd-mutable/user:/nix/var/nix/profiles/default/lib/systemd/user:/run/systemd/user:${systemduserunitdir}
++systemd_user_unit_path=${systemd_user_conf_dir}:/etc/systemd/user:/nix/var/nix/profiles/default/lib/systemd/user:/run/systemd/user:${systemduserunitdir}
 +
  systemduserunitpath=${systemd_user_unit_path}
  
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/default.nix b/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
index 421fc5986af3..4f757862897b 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
@@ -1,3 +1,5 @@
+# NOTE: Make sure to (re-)format this file on changes with `nixpkgs-fmt`!
+
 { stdenv
 , lib
 , fetchFromGitHub
@@ -111,7 +113,7 @@ assert withCryptsetup ->
 let
   wantCurl = withRemote || withImportd;
 
-  version = "247.2";
+  version = "247.3";
 in
 stdenv.mkDerivation {
   inherit version pname;
@@ -122,7 +124,7 @@ stdenv.mkDerivation {
     owner = "systemd";
     repo = "systemd-stable";
     rev = "v${version}";
-    sha256 = "091pwrvxz3gcf80shlp28d6l4gvjzc6pb61v4mwxmk9d71qaq7ry";
+    sha256 = "0zn0b74iwz3vxabqsk4yydwpgky3c5z4dl83wxbs1qi5d2dnbqa7";
   };
 
   # If these need to be regenerated, `git am path/to/00*.patch` them into a
@@ -160,83 +162,87 @@ stdenv.mkDerivation {
       --replace \
       "find_program('objcopy'" \
       "find_program('${stdenv.cc.bintools.targetPrefix}objcopy'"
-  '' + (let
-
-    # The folllowing dlopen patches ensure that all the features that are
-    # implemented via dlopen(3) are available (or explicitly deactivated) by
-    # pointing dlopen to the absolute store path instead of relying on the
-    # linkers runtime lookup code.
-    #
-    # All of the dlopen calls have to be handled. When new ones are introduced
-    # by upstream (or one of our patches) they must be explicitly declared,
-    # otherwise the build will fail.
-    #
-    # As of systemd version 247 we've seen a few errors like `libpcre2.… not
-    # found` when using e.g. --grep with journalctl. Those errors should
-    # become less unexpected now.
-    #
-    # There are generally two classes of dlopen(3) calls. Those that we want to
-    # support and those that should be deactivated / unsupported. This change
-    # enforces that we handle all dlopen calls explicitly. Meaning: There is
-    # not a single dlopen call in the source code tree that we did not
-    # explicitly handle.
-    #
-    # In order to do this we introduced a list of attributes that maps from
-    # shared object name to the package that contains them. The package can be
-    # null meaning the reference should be nuked and the shared object will
-    # never be loadable during runtime (because it points at an invalid store
-    # path location).
-    #
-    # To get a list of dynamically loaded libraries issue something like
-    # `grep -ri 'dlopen("lib' $src` and update the below list.
-    dlopenLibs = [
-      # We did never provide support for libxkbcommon & qrencode
-      { name = "libxkbcommon.so.0"; pkg = null; }
-      { name = "libqrencode.so.4"; pkg = null; }
-
-      # We did not provide libpwquality before so it is safe to disable it for
-      # now.
-      { name = "libpwquality.so.1"; pkg = null; }
-
-      # Only include cryptsetup if it is enabled. We might not be able to
-      # provide it during "bootstrap" in e.g. the minimal systemd build as
-      # cryptsetup has udev (aka systemd) in it's dependencies.
-      { name = "libcryptsetup.so.12"; pkg = if withCryptsetup then cryptsetup else null; }
-
-      # We are using libidn2 so we only provide that and ignore the others.
-      # Systemd does this decision during configure time and uses ifdef's to
-      # enable specific branches. We can safely ignore (nuke) the libidn "v1"
-      # libraries.
-      { name = "libidn2.so.0"; pkg = libidn2; }
-      { name = "libidn.so.12"; pkg = null; }
-      { name = "libidn.so.11"; pkg = null; }
-
-      # journalctl --grep requires libpcre so lets provide it
-      { name = "libpcre2-8.so.0"; pkg = pcre2; }
-    ];
-
-    patchDlOpen = dl: let
-      library = "${lib.makeLibraryPath [dl.pkg]}/${dl.name}";
-    in if dl.pkg == null then ''
-      # remove the dependency on the library by replacing it with an invalid path
-      for file in $(grep -lr 'dlopen("${dl.name}"' src); do
-        echo "patching dlopen(\"${dl.name}\", …) in $file to an invalid store path ("/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}")…"
-        substituteInPlace "$file" --replace 'dlopen("${dl.name}"' 'dlopen("/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}"'
-      done
-    '' else ''
-      # ensure that the library we provide actually exists
-      if ! [ -e ${library} ]; then
-        echo 'The shared library `${library}` does not exist but was given as subtitute for `${dl.name}`'
-        exit 1
-      fi
-      # make the path to the dependency explicit
-      for file in $(grep -lr 'dlopen("${dl.name}"' src); do
-        echo "patching dlopen(\"${dl.name}\", …) in $file to ${library}…"
-        substituteInPlace "$file" --replace 'dlopen("${dl.name}"' 'dlopen("${library}"'
-      done
-    '';
-  in # patch all the dlopen calls to contain absolute paths to the libraries
-  lib.concatMapStringsSep "\n" patchDlOpen dlopenLibs)
+  '' + (
+    let
+      # The folllowing dlopen patches ensure that all the features that are
+      # implemented via dlopen(3) are available (or explicitly deactivated) by
+      # pointing dlopen to the absolute store path instead of relying on the
+      # linkers runtime lookup code.
+      #
+      # All of the dlopen calls have to be handled. When new ones are introduced
+      # by upstream (or one of our patches) they must be explicitly declared,
+      # otherwise the build will fail.
+      #
+      # As of systemd version 247 we've seen a few errors like `libpcre2.… not
+      # found` when using e.g. --grep with journalctl. Those errors should
+      # become less unexpected now.
+      #
+      # There are generally two classes of dlopen(3) calls. Those that we want to
+      # support and those that should be deactivated / unsupported. This change
+      # enforces that we handle all dlopen calls explicitly. Meaning: There is
+      # not a single dlopen call in the source code tree that we did not
+      # explicitly handle.
+      #
+      # In order to do this we introduced a list of attributes that maps from
+      # shared object name to the package that contains them. The package can be
+      # null meaning the reference should be nuked and the shared object will
+      # never be loadable during runtime (because it points at an invalid store
+      # path location).
+      #
+      # To get a list of dynamically loaded libraries issue something like
+      # `grep -ri 'dlopen("lib' $src` and update the below list.
+      dlopenLibs = [
+        # We did never provide support for libxkbcommon & qrencode
+        { name = "libxkbcommon.so.0"; pkg = null; }
+        { name = "libqrencode.so.4"; pkg = null; }
+
+        # We did not provide libpwquality before so it is safe to disable it for
+        # now.
+        { name = "libpwquality.so.1"; pkg = null; }
+
+        # Only include cryptsetup if it is enabled. We might not be able to
+        # provide it during "bootstrap" in e.g. the minimal systemd build as
+        # cryptsetup has udev (aka systemd) in it's dependencies.
+        { name = "libcryptsetup.so.12"; pkg = if withCryptsetup then cryptsetup else null; }
+
+        # We are using libidn2 so we only provide that and ignore the others.
+        # Systemd does this decision during configure time and uses ifdef's to
+        # enable specific branches. We can safely ignore (nuke) the libidn "v1"
+        # libraries.
+        { name = "libidn2.so.0"; pkg = libidn2; }
+        { name = "libidn.so.12"; pkg = null; }
+        { name = "libidn.so.11"; pkg = null; }
+
+        # journalctl --grep requires libpcre so lets provide it
+        { name = "libpcre2-8.so.0"; pkg = pcre2; }
+      ];
+
+      patchDlOpen = dl:
+        let
+          library = "${lib.makeLibraryPath [ dl.pkg ]}/${dl.name}";
+        in
+        if dl.pkg == null then ''
+          # remove the dependency on the library by replacing it with an invalid path
+          for file in $(grep -lr 'dlopen("${dl.name}"' src); do
+            echo "patching dlopen(\"${dl.name}\", …) in $file to an invalid store path ("/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}")…"
+            substituteInPlace "$file" --replace 'dlopen("${dl.name}"' 'dlopen("/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}"'
+          done
+        '' else ''
+          # ensure that the library we provide actually exists
+          if ! [ -e ${library} ]; then
+            echo 'The shared library `${library}` does not exist but was given as subtitute for `${dl.name}`'
+            exit 1
+          fi
+          # make the path to the dependency explicit
+          for file in $(grep -lr 'dlopen("${dl.name}"' src); do
+            echo "patching dlopen(\"${dl.name}\", …) in $file to ${library}…"
+            substituteInPlace "$file" --replace 'dlopen("${dl.name}"' 'dlopen("${library}"'
+          done
+        '';
+    in
+    # patch all the dlopen calls to contain absolute paths to the libraries
+    lib.concatMapStringsSep "\n" patchDlOpen dlopenLibs
+  )
   # finally ensure that there are no left-over dlopen calls that we didn't handle
   + ''
     if grep -qr 'dlopen("[^/]' src; then
@@ -409,6 +415,7 @@ stdenv.mkDerivation {
       src/shared/generator.c \
       src/shutdown/shutdown.c \
       units/emergency.service.in \
+      units/modprobe@.service \
       units/rescue.service.in \
       units/systemd-logind.service.in \
       units/systemd-nspawn@.service.in; \
diff --git a/nixpkgs/pkgs/os-specific/linux/targetcli/default.nix b/nixpkgs/pkgs/os-specific/linux/targetcli/default.nix
index 4d3446d5a5d6..f08ac284f23c 100644
--- a/nixpkgs/pkgs/os-specific/linux/targetcli/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/targetcli/default.nix
@@ -2,13 +2,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "targetcli";
-  version = "2.1.53";
+  version = "2.1.54";
 
   src = fetchFromGitHub {
     owner = "open-iscsi";
     repo = "${pname}-fb";
     rev = "v${version}";
-    sha256 = "1qrq7y5hnghzbxgrxgl153n8jlhw31kqjbr93jsvlvhz5b3ci750";
+    sha256 = "1kbbvx0lba96ynr5iwws9jpi319m4rzph4bmcj7yfb37k8mi161v";
   };
 
   propagatedBuildInputs = with python3.pkgs; [ configshell rtslib ];
diff --git a/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix b/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix
index 27dbc6f583ab..0a7860c0238e 100644
--- a/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix
@@ -1,9 +1,13 @@
 { lib, stdenv, fetchgit, asciidoc, docbook_xsl, libxslt }:
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "trace-cmd";
-  version = "2.9-dev";
+  version = "2.9.1";
 
-  src = fetchgit (import ./src.nix);
+  src = fetchgit {
+    url    = "git://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/";
+    rev    = "trace-cmd-v${version}";
+    sha256 = "19c63a0qmcppm1456qf4k6a0d1agcvpa6jnbzrdcyc520yax6khw";
+  };
 
   patches = [ ./fix-Makefiles.patch ];
 
diff --git a/nixpkgs/pkgs/os-specific/linux/trace-cmd/fix-Makefiles.patch b/nixpkgs/pkgs/os-specific/linux/trace-cmd/fix-Makefiles.patch
index db194e16fdb6..1e783999af68 100644
--- a/nixpkgs/pkgs/os-specific/linux/trace-cmd/fix-Makefiles.patch
+++ b/nixpkgs/pkgs/os-specific/linux/trace-cmd/fix-Makefiles.patch
@@ -1,30 +1,30 @@
 diff --git a/Makefile b/Makefile
-index bbdf15e..deb8ef7 100644
+index b034042..b8a06bc 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -288,7 +288,7 @@ libtraceevent.a: $(LIBTRACEEVENT_STATIC)
- libtracecmd.a: $(LIBTRACECMD_STATIC)
- libtracecmd.so: $(LIBTRACECMD_SHARED)
+@@ -338,6 +338,7 @@ libtracefs.a: $(LIBTRACEFS_STATIC)
+ libtracefs.so: $(LIBTRACEFS_SHARED)
  
--libs: $(LIBTRACECMD_SHARED) $(LIBTRACEEVENT_SHARED)
-+libs: $(LIBTRACECMD_SHARED) $(LIBTRACEEVENT_SHARED) $(LIBTRACECMD_STATIC) $(LIBTRACEEVENT_STATIC)
+ libs: $(LIBTRACECMD_SHARED) $(LIBTRACEEVENT_SHARED) $(LIBTRACEFS_SHARED)
++libs: $(LIBTRACECMD_STATIC) $(LIBTRACEEVENT_STATIC) $(LIBTRACEFS_STATIC)
  
- plugins: force $(obj)/lib/traceevent/plugins/traceevent_plugin_dir $(obj)/lib/traceevent/plugins/trace_python_dir
- 	$(Q)$(MAKE) -C $(src)/lib/traceevent/plugins
-@@ -344,6 +344,8 @@ install_gui: install_cmd gui
- install_libs: libs
+ test: force $(LIBTRACEEVENT_STATIC) $(LIBTRACEFS_STATIC) $(LIBTRACECMD_STATIC)
+ ifneq ($(CUNIT_INSTALLED),1)
+@@ -414,6 +415,9 @@ install_libs: libs
  	$(Q)$(call do_install,$(LIBTRACECMD_SHARED),$(libdir_SQ)/trace-cmd)
  	$(Q)$(call do_install,$(LIBTRACEEVENT_SHARED),$(libdir_SQ)/traceevent)
+ 	$(Q)$(call do_install,$(LIBTRACEFS_SHARED),$(libdir_SQ)/tracefs)
 +	$(Q)$(call do_install,$(LIBTRACECMD_STATIC),$(libdir_SQ)/trace-cmd)
 +	$(Q)$(call do_install,$(LIBTRACEEVENT_STATIC),$(libdir_SQ)/traceevent)
++	$(Q)$(call do_install,$(LIBTRACEFS_STATIC),$(libdir_SQ)/tracefs)
  	$(Q)$(call do_install,$(src)/include/traceevent/event-parse.h,$(includedir_SQ)/traceevent)
  	$(Q)$(call do_install,$(src)/include/traceevent/trace-seq.h,$(includedir_SQ)/traceevent)
  	$(Q)$(call do_install,$(src)/include/trace-cmd/trace-cmd.h,$(includedir_SQ)/trace-cmd)
 diff --git a/kernel-shark/src/CMakeLists.txt b/kernel-shark/src/CMakeLists.txt
-index e20a030..7fce165 100644
+index 457c100..687e150 100644
 --- a/kernel-shark/src/CMakeLists.txt
 +++ b/kernel-shark/src/CMakeLists.txt
-@@ -93,7 +93,7 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND)
+@@ -92,7 +92,7 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND)
              DESTINATION ${_INSTALL_PREFIX}/share/icons/${KS_APP_NAME})
  
      install(FILES "${KS_DIR}/org.freedesktop.kshark-record.policy"
diff --git a/nixpkgs/pkgs/os-specific/linux/trace-cmd/kernelshark.nix b/nixpkgs/pkgs/os-specific/linux/trace-cmd/kernelshark.nix
index 594cf6bfc42f..45d984c78632 100644
--- a/nixpkgs/pkgs/os-specific/linux/trace-cmd/kernelshark.nix
+++ b/nixpkgs/pkgs/os-specific/linux/trace-cmd/kernelshark.nix
@@ -1,9 +1,13 @@
 { lib, mkDerivation, fetchgit, qtbase, cmake, asciidoc, docbook_xsl, json_c, mesa_glu, freeglut, trace-cmd, pkg-config }:
-mkDerivation {
+mkDerivation rec {
   pname = "kernelshark";
-  version = "1.1.0";
+  version = "1.2";
 
-  src = fetchgit (import ./src.nix);
+  src = fetchgit {
+    url    = "git://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/";
+    rev    = "kernelshark-v${version}";
+    sha256 = "0wzzm2imk9n94v96v6sbvbff6j47lz4qj0snhiyv3nj3slg0anvh";
+  };
 
   patches = [ ./fix-Makefiles.patch ];
 
@@ -21,6 +25,7 @@ mkDerivation {
     "-DTRACECMD_INCLUDE_DIR=${trace-cmd.dev}/include"
     "-DTRACECMD_LIBRARY=${trace-cmd.lib}/lib/trace-cmd/libtracecmd.a"
     "-DTRACEEVENT_LIBRARY=${trace-cmd.lib}/lib/traceevent/libtraceevent.a"
+    "-DTRACEFS_LIBRARY=${trace-cmd.lib}/lib/tracefs/libtracefs.a"
   ];
 
   preInstall = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/trace-cmd/src.nix b/nixpkgs/pkgs/os-specific/linux/trace-cmd/src.nix
deleted file mode 100644
index 47c1b82fdd46..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/trace-cmd/src.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  url    = "git://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/";
-  rev    = "ab370b78b9278fe16657742d46cb95c0a65b47d5"; # branch: kernelshark-v1.1
-  sha256 = "0qngwc4qgadrkwlwpz73f12prdkx94kl0bg7g9hib95ipvsdmk1c";
-}
diff --git a/nixpkgs/pkgs/os-specific/linux/tuigreet/default.nix b/nixpkgs/pkgs/os-specific/linux/tuigreet/default.nix
new file mode 100644
index 000000000000..b6db7cfbb7fd
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/tuigreet/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "tuigreet";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "apognu";
+    repo = pname;
+    rev = version;
+    sha256 = "1fk8ppxr3a8vdp7g18pp3sgr8b8s11j30mcqpdap4ai14v19idh8";
+  };
+
+  cargoSha256 = "0qpambizjy6z44spnjnh2kd8nay5953mf1ga2iff2mjlv97zpq22";
+
+  meta = with lib; {
+    description = "Graphical console greter for greetd";
+    homepage = "https://github.com/apognu/tuigreet";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ luc65r ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/uclibc/default.nix b/nixpkgs/pkgs/os-specific/linux/uclibc/default.nix
index 7508e1faf15c..8dc0d4613f42 100644
--- a/nixpkgs/pkgs/os-specific/linux/uclibc/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/uclibc/default.nix
@@ -48,7 +48,7 @@ let
     UCLIBC_HAS_FPU n
   '';
 
-  version = "1.0.34";
+  version = "1.0.37";
 in
 
 stdenv.mkDerivation {
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
   src = fetchurl {
     url = "https://downloads.uclibc-ng.org/releases/${version}/uClibc-ng-${version}.tar.bz2";
     # from "${url}.sha256";
-    sha256 = "025z0072inw1ibnrlwckslp9iayl9c35ysf0h7jjrxlzslzp4yjg";
+    sha256 = "sha256-wThkkRBA42CskGC8kUlgmxk88Qy2Z8qRfLqD6kP8JY0=";
   };
 
   # 'ftw' needed to build acl, a coreutils dependency
diff --git a/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix b/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
index 5e0125da00a6..73b2f5895115 100644
--- a/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     description = "A kernel module to create V4L2 loopback devices";
     homepage = "https://github.com/umlaeute/v4l2loopback";
     license = licenses.gpl2;
-    maintainers = [ maintainers.domenkozar ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/vendor-reset/default.nix b/nixpkgs/pkgs/os-specific/linux/vendor-reset/default.nix
new file mode 100644
index 000000000000..8f1bde7ecbd5
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/vendor-reset/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, kernel, lib }:
+
+stdenv.mkDerivation rec {
+  name = "vendor-reset-${version}-${kernel.version}";
+  version = "unstable-2021-02-16";
+
+  src = fetchFromGitHub {
+    owner = "gnif";
+    repo = "vendor-reset";
+    rev = "225a49a40941e350899e456366265cf82b87ad25";
+    sha256 = "sha256-xa7P7+mRk4FVgi+YYCcsFLfyNqPmXvy3xhGoTDVqPxw=";
+  };
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  hardeningDisable = [ "pic" ];
+
+  makeFlags = [
+    "KVER=${kernel.modDirVersion}"
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  installPhase = ''
+    install -D vendor-reset.ko -t "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/misc/"
+  '';
+
+  meta = with lib; {
+    description = "Linux kernel vendor specific hardware reset module";
+    homepage = "https://github.com/gnif/vendor-reset";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ wedens ];
+    platforms = [ "x86_64-linux" ];
+    broken = kernel.kernelOlder "4.19";
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix b/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix
index 36223562578a..e6b7de29fd2e 100644
--- a/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix
@@ -7,11 +7,11 @@ assert lib.versionOlder kernel.version "5.6";
 
 stdenv.mkDerivation rec {
   pname = "wireguard";
-  version = "1.0.20210124";
+  version = "1.0.20210219";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz";
-    sha256 = "sha256-ZiHnKDYziiNvNV1/HjEluC83600RYCvgbUuPiRATRYE=";
+    sha256 = "sha256-ZYZBnfX8DP0IV3VEBSzg7wnFCnlCzOT6Ql3kFZ0klfQ=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/wlgreet/default.nix b/nixpkgs/pkgs/os-specific/linux/wlgreet/default.nix
new file mode 100644
index 000000000000..e48443b1b1e6
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/wlgreet/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, fetchFromSourcehut
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wlgreet";
+  version = "2020-10-20";
+
+  src = fetchFromSourcehut {
+    owner = "~kennylevinsen";
+    repo = pname;
+    rev = "4425d296b81550cce01f044fbd7ff083e37550f4";
+    sha256 = "0n0lzg3y1z5s9s6kfkdj5q8w67bqpw08hqfccc5kz0ninzy9j0cc";
+  };
+
+  cargoSha256 = "01bfv2kzg2r9z75b8pq61n2ydc8l5zh69jdyjpj931l642f6kd5a";
+
+  meta = with lib; {
+    description = "Raw wayland greeter for greetd, to be run under sway or similar";
+    homepage = "https://git.sr.ht/~kennylevinsen/wlgreet";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ luc65r ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/default.nix b/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/default.nix
index ee8b26c384d9..f9198cc8ff4b 100644
--- a/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -31,6 +31,12 @@ stdenv.mkDerivation rec {
       url = "https://w1.fi/security/2020-2/0001-P2P-Fix-copying-of-secondary-device-types-for-P2P-gr.patch";
       sha256 = "19f4hx0p547mdx8y8arb3vclwyy4w9c8a6a40ryj7q33730mrmn4";
     })
+    # P2P: Fix a corner case in peer addition based on PD Request (https://w1.fi/security/2021-1/)
+    (fetchurl {
+      name = "CVE-2021-27803.patch";
+      url = "https://w1.fi/security/2021-1/0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch";
+      sha256 = "04cnds7hmbqc44jasabjvrdnh66i5hwvk2h2m5z94pmgbzncyh3z";
+    })
   ];
 
   # TODO: Patch epoll so that the dbus actually responds
@@ -69,6 +75,7 @@ stdenv.mkDerivation rec {
     CONFIG_P2P=y
     CONFIG_TDLS=y
     CONFIG_BGSCAN_SIMPLE=y
+    CONFIG_BGSCAN_LEARN=y
   '' + optionalString (pcsclite != null) ''
     CONFIG_EAP_SIM=y
     CONFIG_EAP_AKA=y
@@ -118,7 +125,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://hostap.epitest.fi/wpa_supplicant/";
+    homepage = "https://w1.fi/wpa_supplicant/";
     description = "A tool for connecting to WPA and WPA2-protected wireless networks";
     license = licenses.bsd3;
     maintainers = with maintainers; [ marcweber ];
diff --git a/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix b/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
index e0e2bcc21d9b..3007e54639d1 100644
--- a/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
@@ -2,25 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "xpadneo";
-  version = "0.8.4";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "atar-axis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "113xa2mxs2hc4fpjdk3jhhchy81kli6jxdd6vib7zz61n10cjb85";
+    hash = "sha256-VUcS4OzvPj0o627ZWIOBqEAQJ4JuMCMjgaZoMkL/IHc=";
   };
 
   setSourceRoot = ''
     export sourceRoot=$(pwd)/source/hid-xpadneo/src
   '';
 
-  postPatch = ''
-    # Set kernel module version
-    substituteInPlace hid-xpadneo.c \
-      --subst-var-by DO_NOT_CHANGE ${version}
-  '';
-
   nativeBuildInputs = kernel.moduleBuildDependencies;
   buildInputs = [ bluez ];
 
@@ -28,6 +22,7 @@ stdenv.mkDerivation rec {
     "-C"
     "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     "M=$(sourceRoot)"
+    "VERSION=${version}"
   ];
 
   buildFlags = [ "modules" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/zfs/default.nix b/nixpkgs/pkgs/os-specific/linux/zfs/default.nix
index 202dc9091fd5..15c8df3cb137 100644
--- a/nixpkgs/pkgs/os-specific/linux/zfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/zfs/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , autoreconfHook269, util-linux, nukeReferences, coreutils
-, perl, buildPackages, nixosTests
+, perl, nixosTests
 , configFile ? "all"
 
 # Userspace dependencies
@@ -9,7 +9,7 @@
 , nfs-utils
 , gawk, gnugrep, gnused, systemd
 , smartmontools, enableMail ? false
-, sysstat, sudo, pkg-config
+, sysstat, pkg-config
 
 # Kernel dependencies
 , kernel ? null
@@ -28,7 +28,7 @@ let
     , extraPatches ? []
     , rev ? "zfs-${version}"
     , isUnstable ? false
-    , incompatibleKernelVersion ? null }:
+    , kernelCompatible ? null }:
 
     stdenv.mkDerivation {
       name = "zfs-${configFile}-${version}${optionalString buildKernel "-${kernel.version}"}";
@@ -183,7 +183,7 @@ let
         platforms = platforms.linux;
         maintainers = with maintainers; [ hmenke jcumming jonringer wizeman fpletz globin mic92 ];
         broken = if
-          buildKernel && (incompatibleKernelVersion != null) && versionAtLeast kernel.version incompatibleKernelVersion
+          buildKernel && (kernelCompatible != null) && !kernelCompatible
           then builtins.trace ''
             Linux v${kernel.version} is not yet supported by zfsonlinux v${version}.
             ${lib.optionalString (!isUnstable) "Try zfsUnstable or set the NixOS option boot.zfs.enableUnstable."}
@@ -196,22 +196,24 @@ in {
   # ./nixos/modules/tasks/filesystems/zfs.nix needs
   # to be adapted
   zfsStable = common {
-    # comment/uncomment if breaking kernel versions are known
-    # incompatibleKernelVersion = "4.20";
+    # check the release notes for compatible kernels
+    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.12";
 
     # this package should point to the latest release.
-    version = "2.0.2";
+    version = "2.0.4";
 
-    sha256 = "sha256-KzrRQwfQRvIQkHG5mj6cGBdcv2VEhC5y7bi09DaKqhY=";
+    sha256 = "sha256-ySTt0K3Lc0Le35XTwjiM5l+nIf9co7wBn+Oma1r8YHo=";
   };
 
   zfsUnstable = common {
-    # comment/uncomment if breaking kernel versions are known
-    # incompatibleKernelVersion = "4.19";
+    # check the release notes for compatible kernels
+    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.12";
 
     # this package should point to a version / git revision compatible with the latest kernel release
-    version = "2.0.2";
+    version = "2.0.4";
 
-    sha256 = "sha256-KzrRQwfQRvIQkHG5mj6cGBdcv2VEhC5y7bi09DaKqhY=";
+    sha256 = "sha256-ySTt0K3Lc0Le35XTwjiM5l+nIf9co7wBn+Oma1r8YHo=";
+
+    isUnstable = true;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/solo5/default.nix b/nixpkgs/pkgs/os-specific/solo5/default.nix
index baba0ecdf0ab..71584aff7760 100644
--- a/nixpkgs/pkgs/os-specific/solo5/default.nix
+++ b/nixpkgs/pkgs/os-specific/solo5/default.nix
@@ -1,6 +1,16 @@
 { lib, stdenv, fetchurl, pkg-config, libseccomp, util-linux, qemu }:
 
-let version = "0.6.8";
+let
+  version = "0.6.8";
+  # list of all theoretically available targets
+  targets = [
+    "genode"
+    "hvt"
+    "muen"
+    "spt"
+    "virtio"
+    "xen"
+  ];
 in stdenv.mkDerivation {
   pname = "solo5";
   inherit version;
@@ -29,21 +39,26 @@ in stdenv.mkDerivation {
     export DESTDIR=$out
     export PREFIX=$out
     make install-tools
-    ${lib.optionalString stdenv.hostPlatform.isLinux "make ${
-      (lib.concatMapStringsSep " " (x: "install-opam-${x}") [ "hvt" "spt" ])
-    }"}
+
+    # get CONFIG_* vars from Makeconf which also parse in sh
+    grep '^CONFIG_' Makeconf > nix_tmp_targetconf
+    source nix_tmp_targetconf
+    # install opam / pkg-config files for all enabled targets
+    ${lib.concatMapStrings (bind: ''
+      [ -n "$CONFIG_${lib.toUpper bind}" ] && make install-opam-${bind}
+    '') targets}
+
     runHook postInstall
   '';
 
-  doCheck = true;
+  doCheck = stdenv.hostPlatform.isLinux;
   checkInputs = [ util-linux qemu ];
-  checkPhase = if stdenv.hostPlatform.isLinux then
-    ''
+  checkPhase = ''
+    runHook preCheck
     patchShebangs tests
     ./tests/bats-core/bats ./tests/tests.bats
-    ''
-  else
-    null;
+    runHook postCheck
+  '';
 
   meta = with lib; {
     description = "Sandboxed execution environment";
diff --git a/nixpkgs/pkgs/os-specific/windows/cygwin-setup/default.nix b/nixpkgs/pkgs/os-specific/windows/cygwin-setup/default.nix
index c51cafa9acef..91dad81f1f52 100644
--- a/nixpkgs/pkgs/os-specific/windows/cygwin-setup/default.nix
+++ b/nixpkgs/pkgs/os-specific/windows/cygwin-setup/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchcvs, autoconf, automake, libtool, flex, bison, pkg-config
-, zlib, bzip2, lzma, libgcrypt
+, zlib, bzip2, xz, libgcrypt
 }:
 
 with lib;
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
       buildInputs = map mkStatic (o.buildInputs or []);
       propagatedBuildInputs = map mkStatic (o.propagatedBuildInputs or []);
     });
-  in map mkStatic [ zlib bzip2 lzma libgcrypt ];
+  in map mkStatic [ zlib bzip2 xz libgcrypt ];
 
   configureFlags = [ "--disable-shared" ];
 
diff --git a/nixpkgs/pkgs/os-specific/windows/mcfgthreads/default.nix b/nixpkgs/pkgs/os-specific/windows/mcfgthreads/default.nix
index 6c4cd1710256..45c80ab89796 100644
--- a/nixpkgs/pkgs/os-specific/windows/mcfgthreads/default.nix
+++ b/nixpkgs/pkgs/os-specific/windows/mcfgthreads/default.nix
@@ -7,8 +7,8 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "lhmouse";
     repo = "mcfgthread";
-    rev = "9570e5ca7b98002d707c502c919d951bf256b9c6";
-    sha256 = "10y2x3x601a7c1hkd6zlr3xpfsnlr05xl28v23clf619756a5755";
+    rev = "c446cf4fcdc262fc899a188a4bb7136284c34222";
+    sha256 = "1ib90lrd4dz8irq4yvzwhxqa86i5vxl2q2z3z04sf1i8hw427p2f";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/servers/adguardhome/default.nix b/nixpkgs/pkgs/servers/adguardhome/default.nix
index b62de105702b..87de7589ae97 100644
--- a/nixpkgs/pkgs/servers/adguardhome/default.nix
+++ b/nixpkgs/pkgs/servers/adguardhome/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "adguardhome";
-  version = "0.104.3";
+  version = "0.105.2";
 
   src = fetchurl {
     url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v${version}/AdGuardHome_linux_amd64.tar.gz";
-    sha256 = "0p660d1nvaigyjc39xq5ar775davcbdgf0dh1z6gl3v4gx1h7bkn";
+    sha256 = "1gpaqyczidsy7h05g318zc83swvwninidddlmlq3hgs8s7ibk2cb";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix b/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
index 6100498f9bf8..c2d13b00aa83 100644
--- a/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -16,8 +16,9 @@ stdenv.mkDerivation rec {
     sha256 = "0b252l9r45h8r5gibdqcn6hhbm8g6rfzhm1k9d39pwhs5x77cjqv";
   };
 
+  nativeBuildInputs = [ unzip ];
   buildInputs =
-    [ erlang elixir python libxml2 libxslt xmlto docbook_xml_dtd_45 docbook_xsl zip unzip rsync glibcLocales ]
+    [ erlang elixir python libxml2 libxslt xmlto docbook_xml_dtd_45 docbook_xsl zip rsync glibcLocales ]
     ++ lib.optionals stdenv.isDarwin [ AppKit Carbon Cocoa ];
 
   outputs = [ "out" "man" "doc" ];
diff --git a/nixpkgs/pkgs/servers/ankisyncd/default.nix b/nixpkgs/pkgs/servers/ankisyncd/default.nix
index e10986701237..598483575cdc 100644
--- a/nixpkgs/pkgs/servers/ankisyncd/default.nix
+++ b/nixpkgs/pkgs/servers/ankisyncd/default.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ankisyncd";
-  version = "2.1.0";
+  version = "2.2.0";
   src = fetchFromGitHub {
-    owner = "tsudoko";
+    owner = "ankicommunity";
     repo = "anki-sync-server";
     rev = version;
-    sha256 = "6a140afa94fdb1725fed716918875e3d2ad0092cb955136e381c9d826cc4927c";
+    sha256 = "196xhd6vzp1ncr3ahz0bv0gp1ap2s37j8v48dwmvaywzayakqdab";
   };
   format = "other";
 
@@ -60,8 +60,8 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     description = "Self-hosted Anki sync server";
     maintainers = with maintainers; [ matt-snider ];
-    homepage = "https://github.com/tsudoko/anki-sync-server";
-    license = licenses.agpl3;
+    homepage = "https://github.com/ankicommunity/anki-sync-server";
+    license = licenses.agpl3Only;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/apache-kafka/default.nix b/nixpkgs/pkgs/servers/apache-kafka/default.nix
index 826e952376c7..935db27044f3 100644
--- a/nixpkgs/pkgs/servers/apache-kafka/default.nix
+++ b/nixpkgs/pkgs/servers/apache-kafka/default.nix
@@ -1,21 +1,29 @@
-{ lib, stdenv, fetchurl, jre8, makeWrapper, bash, coreutils, gnugrep, gnused, ps,
+{ lib, stdenv, fetchurl, jdk8_headless, jdk11_headless, makeWrapper, bash, coreutils, gnugrep, gnused, ps,
   majorVersion ? "1.0" }:
 
 let
+  jre8 = jdk8_headless;
+  jre11 = jdk11_headless;
   versionMap = {
     "2.4" = {
       kafkaVersion = "2.4.1";
       scalaVersion = "2.12";
       sha256 = "0ahsprmpjz026mhbr79187wfdrxcg352iipyfqfrx68q878wnxr1";
+      jre = jre8;
     };
     "2.5" = {
-      kafkaVersion = "2.5.0";
+      kafkaVersion = "2.5.1";
+      scalaVersion = "2.12";
+      sha256 = "1wn4iszrm2rvsfyyr515zx79k5m86davjkcwcwpxcgc4k3q0z7lv";
+      jre = jre8;
+    };
+    "2.6" = {
+      kafkaVersion = "2.6.1";
       scalaVersion = "2.13";
-      sha256 = "0w3g7ii8x63m2blv2a8c491d0diczpliaqm9f7w5yn98hikh0aqi";
+      sha256 = "1a2kd4r6f8z7qf886nnq9f350sblzzdi230j2hll7x156888573y";
+      jre = jre11;
     };
   };
-
-  jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
 in
 
 with versionMap.${majorVersion};
@@ -29,7 +37,8 @@ stdenv.mkDerivation rec {
     inherit sha256;
   };
 
-  buildInputs = [ jre makeWrapper bash gnugrep gnused coreutils ps ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre bash gnugrep gnused coreutils ps ];
 
   installPhase = ''
     mkdir -p $out
@@ -62,5 +71,5 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.ragge ];
     platforms = platforms.unix;
   };
-
+  passthru = { inherit jre; };
 }
diff --git a/nixpkgs/pkgs/servers/bazarr/default.nix b/nixpkgs/pkgs/servers/bazarr/default.nix
index d68646c42752..1356f1c7a07c 100644
--- a/nixpkgs/pkgs/servers/bazarr/default.nix
+++ b/nixpkgs/pkgs/servers/bazarr/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, lib, fetchurl, makeWrapper, python3, nixosTests }:
+{ stdenv, lib, fetchurl, makeWrapper, python3, unrar, ffmpeg, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "bazarr";
-  version = "0.9.0.8";
+  version = "0.9.2";
 
   src = fetchurl {
     url = "https://github.com/morpheus65535/bazarr/archive/v${version}.tar.gz";
-    sha256 = "sha256-Ecbx7FHpcEkcWBAKCtZPtQKX5ibvU4tajSJ5pyEboKc=";
+    sha256 = "16mh7v8z5ijr75pvavcj6225w6bg12qy1d1w9vm2d5axnfm3wfbk";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     makeWrapper "${(python3.withPackages (ps: [ps.lxml ps.numpy])).interpreter}" \
       $out/bin/bazarr \
       --add-flags "$out/src/bazarr.py" \
+      --suffix PATH : ${lib.makeBinPath [ unrar ffmpeg ]} \
   '';
 
   passthru.tests = {
@@ -28,7 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Subtitle manager for Sonarr and Radarr";
     homepage = "https://www.bazarr.media/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ xwvvvvwx ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/servers/bird/default.nix b/nixpkgs/pkgs/servers/bird/default.nix
index e90445e29c89..bc8c8df3551b 100644
--- a/nixpkgs/pkgs/servers/bird/default.nix
+++ b/nixpkgs/pkgs/servers/bird/default.nix
@@ -58,7 +58,7 @@ in
   };
 
   bird2 = generic {
-    version = "2.0.7";
-    sha256 = "0rhhbfmfw2d93rvhglv03rdzxsq2disw6s1wm8d6bgdxmrc2n7b3";
+    version = "2.0.8";
+    sha256 = "1xp7f0im1v8pqqx3xqyfkd1nsxk8vnbqgrdrwnwhg8r5xs1xxlhr";
   };
 }
diff --git a/nixpkgs/pkgs/servers/calibre-web/db-migrations.patch b/nixpkgs/pkgs/servers/calibre-web/db-migrations.patch
new file mode 100644
index 000000000000..87e63f7d95c2
--- /dev/null
+++ b/nixpkgs/pkgs/servers/calibre-web/db-migrations.patch
@@ -0,0 +1,14 @@
+diff --git a/cps/__init__.py b/cps/__init__.py
+index 627cca0b..233bb2dd 100644
+--- a/cps/__init__.py
++++ b/cps/__init__.py
+@@ -87,6 +87,9 @@ db.CalibreDB.setup_db(config, cli.settingspath)
+ 
+ calibre_db = db.CalibreDB()
+ 
++if os.environ.get('__RUN_MIGRATIONS_AND_EXIT'):
++    sys.exit(0)
++
+ def create_app():
+     app.wsgi_app = ReverseProxied(app.wsgi_app)
+     # For python2 convert path to unicode
diff --git a/nixpkgs/pkgs/servers/calibre-web/default-logger.patch b/nixpkgs/pkgs/servers/calibre-web/default-logger.patch
new file mode 100644
index 000000000000..c5aecbd3d10c
--- /dev/null
+++ b/nixpkgs/pkgs/servers/calibre-web/default-logger.patch
@@ -0,0 +1,17 @@
+diff --git a/cps/logger.py b/cps/logger.py
+index b204de31..3206e2bf 100644
+--- a/cps/logger.py
++++ b/cps/logger.py
+@@ -32,10 +32,10 @@ ACCESS_FORMATTER_TORNADO = Formatter("[%(asctime)s] %(message)s")
+ 
+ FORMATTER           = Formatter("[%(asctime)s] %(levelname)5s {%(name)s:%(lineno)d} %(message)s")
+ DEFAULT_LOG_LEVEL   = logging.INFO
+-DEFAULT_LOG_FILE    = os.path.join(_CONFIG_DIR, "calibre-web.log")
+-DEFAULT_ACCESS_LOG  = os.path.join(_CONFIG_DIR, "access.log")
+ LOG_TO_STDERR       = '/dev/stderr'
+ LOG_TO_STDOUT       = '/dev/stdout'
++DEFAULT_LOG_FILE    = LOG_TO_STDOUT
++DEFAULT_ACCESS_LOG  = LOG_TO_STDOUT
+ 
+ logging.addLevelName(logging.WARNING, "WARN")
+ logging.addLevelName(logging.CRITICAL, "CRIT")
diff --git a/nixpkgs/pkgs/servers/calibre-web/default.nix b/nixpkgs/pkgs/servers/calibre-web/default.nix
new file mode 100644
index 000000000000..f24a1f32f884
--- /dev/null
+++ b/nixpkgs/pkgs/servers/calibre-web/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, fetchFromGitHub
+, nixosTests
+, python3
+, python3Packages
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "calibre-web";
+  version = "0.6.11";
+
+  src = fetchFromGitHub {
+    owner = "janeczku";
+    repo = "calibre-web";
+    rev = version;
+    sha256 = "10sjllhhcamswpa1wlim4mbm2zl4g804bwly5p4nmklg7n1v226g";
+  };
+
+  prePatch = ''
+    substituteInPlace setup.cfg \
+        --replace "requests>=2.11.1,<2.25.0" "requests>=2.11.1,<2.26.0" \
+        --replace "cps = calibreweb:main" "calibre-web = calibreweb:main"
+  '';
+
+  patches = [
+    # default-logger.patch switches default logger to /dev/stdout. Otherwise calibre-web tries to open a file relative
+    # to its location, which can't be done as the store is read-only. Log file location can later be configured using UI
+    # if needed.
+    ./default-logger.patch
+    # DB migrations adds an env var __RUN_MIGRATIONS_ANDEXIT that, when set, instructs calibre-web to run DB migrations
+    # and exit. This is gonna be used to configure calibre-web declaratively, as most of its configuration parameters
+    # are stored in the DB.
+    ./db-migrations.patch
+  ];
+
+  # calibre-web doesn't follow setuptools directory structure. The following is taken from the script
+  # that calibre-web's maintainer is using to package it:
+  # https://github.com/OzzieIsaacs/calibre-web-test/blob/master/build/make_release.py
+  postPatch = ''
+    mkdir -p src/calibreweb
+    mv cps.py src/calibreweb/__init__.py
+    mv cps src/calibreweb
+  '';
+
+  # Upstream repo doesn't provide any tests.
+  doCheck = false;
+
+  propagatedBuildInputs = with python3Packages; [
+    backports_abc
+    flask-babel
+    flask_login
+    flask_principal
+    iso-639
+    pypdf2
+    requests
+    singledispatch
+    sqlalchemy
+    tornado
+    unidecode
+    Wand
+  ];
+
+  passthru.tests.calibre-web = nixosTests.calibre-web;
+
+  meta = with lib; {
+    description = "Web app for browsing, reading and downloading eBooks stored in a Calibre database";
+    maintainers = with maintainers; [ pborzenkov ];
+    homepage = "https://github.com/janeczku/calibre-web";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/computing/slurm/default.nix b/nixpkgs/pkgs/servers/computing/slurm/default.nix
index d9b237a60629..25181590ed10 100644
--- a/nixpkgs/pkgs/servers/computing/slurm/default.nix
+++ b/nixpkgs/pkgs/servers/computing/slurm/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "20.11.3.1";
+  version = "20.11.5.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    sha256 = "1601h7gid7fyvgmvrmz0h0xkxd7whp06rmj03822bv1szqr20xyy";
+    sha256 = "1anzjv9sdl1a3j6sxsy2q8dy4dax1a4yqc9rnprlzymjkgb8hy75";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/servers/computing/storm/default.nix b/nixpkgs/pkgs/servers/computing/storm/default.nix
index daebf174fafd..07c636b6e5ba 100644
--- a/nixpkgs/pkgs/servers/computing/storm/default.nix
+++ b/nixpkgs/pkgs/servers/computing/storm/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "0xc6lfilfkkjyds59b6c770gj21v9srzpln31c9qb3ls6hzic8gn";
   };
 
-  buildInputs = [ zip unzip ];
+  nativeBuildInputs = [ zip unzip ];
 
   installPhase = ''
     mkdir -p $out/share/${name}
diff --git a/nixpkgs/pkgs/servers/confluent-platform/default.nix b/nixpkgs/pkgs/servers/confluent-platform/default.nix
index e1cf49099324..4a5846d01160 100644
--- a/nixpkgs/pkgs/servers/confluent-platform/default.nix
+++ b/nixpkgs/pkgs/servers/confluent-platform/default.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
     sha256 = "18yvp56b8l074qfkgr4afirgd43g8b023n9ija6dnk6p6dib1f4j";
   };
 
-  buildInputs = [ jre makeWrapper bash ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre bash ];
 
   installPhase = ''
     cp -R $confluentCli confluent-cli
diff --git a/nixpkgs/pkgs/servers/consul/default.nix b/nixpkgs/pkgs/servers/consul/default.nix
index 9dc723417d60..cc00f4cf0cea 100644
--- a/nixpkgs/pkgs/servers/consul/default.nix
+++ b/nixpkgs/pkgs/servers/consul/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "consul";
-  version = "1.9.2";
+  version = "1.9.4";
   rev = "v${version}";
 
   # Note: Currently only release tags are supported, because they have the Consul UI
@@ -17,7 +17,7 @@ buildGoModule rec {
     owner = "hashicorp";
     repo = pname;
     inherit rev;
-    sha256 = "sha256-e4pE30MvJ/9wrYA1oolBF+5C1IHTm+4xhDb88Il9E7o=";
+    sha256 = "1ck55i8snpm583p21y1hac0w76wiwyjpgfxkzscd4whp2jnzhhif";
   };
 
   passthru.tests.consul = nixosTests.consul;
@@ -26,7 +26,7 @@ buildGoModule rec {
   # has a split module structure in one repo
   subPackages = ["." "connect/certgen"];
 
-  vendorSha256 = "sha256-bTwm6F1Y0LFTfUJ5zIsmGcNztwC2aTJIDd+bDPqnzcA=";
+  vendorSha256 = "0y744zpj49zvn5vqqb9wmfs1fs0lir71h2kcmhidmn9j132vg1bq";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/dico/default.nix b/nixpkgs/pkgs/servers/dico/default.nix
index cf0417e332e8..6a8c6541c2cc 100644
--- a/nixpkgs/pkgs/servers/dico/default.nix
+++ b/nixpkgs/pkgs/servers/dico/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, lib, stdenv, libtool, gettext, zlib, readline, gsasl
-, guile, python, pcre, libffi, groff }:
+, guile, python2, pcre, libffi, groff }:
 
 stdenv.mkDerivation rec {
   pname = "dico";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   buildInputs =
-    [ libtool gettext zlib readline gsasl guile python pcre libffi groff ];
+    [ libtool gettext zlib readline gsasl guile python2 pcre libffi groff ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/servers/dict/dictd-wordnet.nix b/nixpkgs/pkgs/servers/dict/dictd-wordnet.nix
index 3f76d60233cc..8378102dac53 100644
--- a/nixpkgs/pkgs/servers/dict/dictd-wordnet.nix
+++ b/nixpkgs/pkgs/servers/dict/dictd-wordnet.nix
@@ -1,10 +1,10 @@
-{lib, stdenv, python, wordnet, writeScript}:
+{lib, stdenv, python2, wordnet, writeScript}:
 
 stdenv.mkDerivation rec {
   version = "542";
   pname = "dict-db-wordnet";
 
-  buildInputs = [python wordnet];
+  buildInputs = [python2 wordnet];
   convert = ./wordnet_structures.py;
 
   builder = writeScript "builder.sh" ''
diff --git a/nixpkgs/pkgs/servers/dict/wiktionary/default.nix b/nixpkgs/pkgs/servers/dict/wiktionary/default.nix
index cd0c9c6c24bc..3a01120f3a68 100644
--- a/nixpkgs/pkgs/servers/dict/wiktionary/default.nix
+++ b/nixpkgs/pkgs/servers/dict/wiktionary/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python, dict, glibcLocales }:
+{ lib, stdenv, fetchurl, python2, dict, glibcLocales }:
 
 stdenv.mkDerivation rec {
   version = "20210201";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   convert = ./wiktionary2dict.py;
-  buildInputs = [ python dict glibcLocales ];
+  buildInputs = [ python2 dict glibcLocales ];
   builder = ./builder.sh;
 
   passthru.updateScript = ./update.sh;
diff --git a/nixpkgs/pkgs/servers/dns/bind/default.nix b/nixpkgs/pkgs/servers/dns/bind/default.nix
index 3d78f4b4cdf9..5077ff98ecfa 100644
--- a/nixpkgs/pkgs/servers/dns/bind/default.nix
+++ b/nixpkgs/pkgs/servers/dns/bind/default.nix
@@ -10,11 +10,11 @@ assert enablePython -> python3 != null;
 
 stdenv.mkDerivation rec {
   pname = "bind";
-  version = "9.16.11";
+  version = "9.16.13";
 
   src = fetchurl {
     url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-ARH2TdfY9RXPoSnhgczpb/ggcNGyfxGiH2hWEQ0GmcE=";
+    sha256 = "sha256-pUzHk/pbabNfYQ8glXYPgjjf9c/VJBn37hycIn2kzAg=";
   };
 
   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 cdfc78d62229..188c3f77cb63 100644
--- a/nixpkgs/pkgs/servers/dns/coredns/default.nix
+++ b/nixpkgs/pkgs/servers/dns/coredns/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "coredns";
-  version = "1.8.1";
+  version = "1.8.3";
 
   src = fetchFromGitHub {
     owner = "coredns";
     repo = "coredns";
     rev = "v${version}";
-    sha256 = "sha256-F4YiLjWrAjCNorR5dHQ2nzEBVWvJVuDDmAbUXruaPYQ=";
+    sha256 = "sha256-aE+kw854/wjFJqiRC/1gLzRpaVa6EPJPJaKqXtFM+Sw=";
   };
 
-  vendorSha256 = "sha256-QvT1vnvF+gvABh2SzR6vUsj3KCD8ABqZwXQUm3NldM0=";
+  vendorSha256 = "sha256-1+WgBsknyPcZhvQLffhlWBH1o0pYTFoOG5BviUJYxyA=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/dns/knot-dns/default.nix b/nixpkgs/pkgs/servers/dns/knot-dns/default.nix
index 2a9e00b266bd..2b407074caf4 100644
--- a/nixpkgs/pkgs/servers/dns/knot-dns/default.nix
+++ b/nixpkgs/pkgs/servers/dns/knot-dns/default.nix
@@ -7,11 +7,11 @@ let inherit (lib) optional optionals; in
 
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "3.0.4";
+  version = "3.0.5";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "451d8913a769b7e4bcb3e250a3181b448e28a82cfc58cea6f2509475d7327983";
+    sha256 = "695e7d7a0abefc5a8fd01f3b3080f030f33b0948215f84cd4892c6d904390802";
   };
 
   outputs = [ "bin" "out" "dev" ];
diff --git a/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix b/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix
index 8954c9fcd89e..8d89352b90e6 100644
--- a/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix
+++ b/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix
@@ -17,11 +17,11 @@ lua = luajitPackages;
 
 unwrapped = stdenv.mkDerivation rec {
   pname = "knot-resolver";
-  version = "5.2.1";
+  version = "5.3.1";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz";
-    sha256 = "aa37b744c400f437acba7a54aebcbdbe722ece743d342cbc39f2dd8087f05826";
+    sha256 = "9d4d6b7bcdf114acc948e5ee68c83fcbb3944f48a13b9751dbbbc190cdd729c9";
   };
 
   outputs = [ "out" "dev" ];
@@ -43,7 +43,8 @@ unwrapped = stdenv.mkDerivation rec {
     # some tests have issues with network sandboxing, apparently
   + optionalString doInstallCheck ''
     echo 'os.exit(77)' > daemon/lua/trust_anchors.test/bootstrap.test.lua
-    sed '/^[[:blank:]]*test_dstaddr,$/d' -i tests/config/doh2.test.lua
+    sed '/^[[:blank:]]*test_dstaddr,$/d' -i \
+      tests/config/doh2.test.lua modules/http/http_doh.test.lua
   '';
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix b/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
index 972b92e7de9b..fff18486ab01 100644
--- a/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
@@ -2,9 +2,6 @@
 , openssl, systemd, lua, luajit, protobuf
 , enableProtoBuf ? false
 }:
-assert enableProtoBuf -> protobuf != null;
-
-with lib;
 
 stdenv.mkDerivation rec {
   pname = "pdns-recursor";
@@ -19,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     boost openssl systemd
     lua luajit
-  ] ++ optional enableProtoBuf protobuf;
+  ] ++ lib.optional enableProtoBuf protobuf;
 
   configureFlags = [
     "--enable-reproducible"
@@ -32,7 +29,7 @@ stdenv.mkDerivation rec {
     nixos = nixosTests.pdns-recursor;
   };
 
-  meta = {
+  meta = with lib; {
     description = "A recursive DNS server";
     homepage = "https://www.powerdns.com/";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/documize-community/default.nix b/nixpkgs/pkgs/servers/documize-community/default.nix
index 5c6b6b107089..036ea5fbee7d 100644
--- a/nixpkgs/pkgs/servers/documize-community/default.nix
+++ b/nixpkgs/pkgs/servers/documize-community/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "documize-community";
-  version = "3.8.2";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "documize";
     repo = "community";
     rev = "v${version}";
-    sha256 = "sha256-6DOvInfD32/mEILGXdXUeflmHoyn0eiYyQN/aI23FJ0=";
+    sha256 = "sha256-Kv4BsFB08rkGRkePFIkjjuhK1TnLPS4m+PUlgKG5cTQ=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/servers/etcd/3.4.nix b/nixpkgs/pkgs/servers/etcd/3.4.nix
index dc9fc0898dff..f533b4537ad3 100644
--- a/nixpkgs/pkgs/servers/etcd/3.4.nix
+++ b/nixpkgs/pkgs/servers/etcd/3.4.nix
@@ -2,10 +2,10 @@
 
 buildGoModule rec {
   pname = "etcd";
-  version = "3.4.14";
+  version = "3.4.15";
 
   deleteVendor = true;
-  vendorSha256 = "0jlnh4789xa2dhbyp33k9r278kc588ykggamnnfqivb27s2646bc";
+  vendorSha256 = "sha256-1q5tYNDmlgHdPgL2Pn5BS8z3SwW2E3OaZkKPAtnhJZY=";
 
   doCheck = false;
 
@@ -13,7 +13,7 @@ buildGoModule rec {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    sha256 = "0s6xwc8yczjdf6xysb6m0pp31hxjqdqjw24bliq08094jprhj31f";
+    sha256 = "sha256-jJC2+zv0io0ZulLVaPMrDD7qkOxGfGtFyZvJ2hTmU24=";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/servers/exhibitor/default.nix b/nixpkgs/pkgs/servers/exhibitor/default.nix
index 0b92aca74c75..5636f51a1699 100644
--- a/nixpkgs/pkgs/servers/exhibitor/default.nix
+++ b/nixpkgs/pkgs/servers/exhibitor/default.nix
@@ -31,8 +31,7 @@ stdenv.mkDerivation rec {
   # (given the state of Maven support in Nix). We're not actually building any java
   # source here.
   pomFileDir = "exhibitor-standalone/src/main/resources/buildscripts/standalone/maven";
-  nativeBuildInputs = [ maven ];
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ maven makeWrapper ];
   buildPhase = ''
       cd ${pomFileDir}
       mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
diff --git a/nixpkgs/pkgs/servers/fishnet/assets.nix b/nixpkgs/pkgs/servers/fishnet/assets.nix
index 6844db1b810c..b150e8ed6370 100644
--- a/nixpkgs/pkgs/servers/fishnet/assets.nix
+++ b/nixpkgs/pkgs/servers/fishnet/assets.nix
@@ -9,13 +9,13 @@
 # again so that a selection of them can be embedded into the fishnet binary.
 stdenv.mkDerivation rec {
   pname = "fishnet-assets";
-  version = "unstable-2020-01-30";
+  version = "unstable-2020-03-27";
 
   src = fetchFromGitHub {
     owner = "niklasf";
     repo = pname;
-    rev = "b4fa30e57ec8976fb1c10bd36737bc784351b93e";
-    sha256 = "0gfs9lm4ih3h3fmgqylw05ii1h0d6mpjfxadnw3wymnjsspfb0m4";
+    rev = "a1fe3ec6074ad9dc43e6d46e0d42fab5d7cce12c";
+    sha256 = "1548wj2bs89b5w42z3c98hpnbln5w8p1909wyl7a63d8vkvnyn5l";
   };
 
   relAssetsPath = "share/${pname}";
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/niklasf/fishnet-assets";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ tu-maurice ];
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/fishnet/default.nix b/nixpkgs/pkgs/servers/fishnet/default.nix
index 508068bd2d4b..b23a7d1c9209 100644
--- a/nixpkgs/pkgs/servers/fishnet/default.nix
+++ b/nixpkgs/pkgs/servers/fishnet/default.nix
@@ -12,26 +12,29 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "fishnet";
-  version = "2.2.4";
+  version = "2.2.6";
 
   src = fetchFromGitHub {
     owner = "niklasf";
     repo = pname;
     rev = "v${version}";
-    sha256 = "19dh69b6mqx16195w9d20fah4jl8hhbxm84xq4zwsgl4khmw7zqz";
+    sha256 = "0dmc58wzv758b82pjpfzcfi0hr14hqcr61cd9v5xlgk5w78cisjq";
   };
 
-  cargoSha256 = "0zl2fnmqncyjd52wkn6dddx9lm9ywpw7swy895yq299z2bbbkv3h";
+  cargoSha256 = "08v969b0kvsg4dq3xsb159pr52a0vqr34g48j8nvq13979yq6d8p";
 
   preBuild = ''
     rmdir ./assets
     ln -snf ${assets}/${assets.relAssetsPath} ./assets
   '';
 
+  passthru.assets = assets;
+
   meta = with lib; {
     description = "Distributed Stockfish analysis for lichess.org";
     homepage = "https://github.com/niklasf/fishnet";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ tu-maurice ];
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/foundationdb/default.nix b/nixpkgs/pkgs/servers/foundationdb/default.nix
index 10d517179c2f..b3a876546e78 100644
--- a/nixpkgs/pkgs/servers/foundationdb/default.nix
+++ b/nixpkgs/pkgs/servers/foundationdb/default.nix
@@ -2,7 +2,7 @@
 , lib, fetchurl, fetchpatch, fetchFromGitHub
 
 , cmake, ninja, which, findutils, m4, gawk
-, python, python3, openjdk, mono, libressl, boost
+, python2, python3, openjdk, mono, libressl, boost
 }@args:
 
 let
@@ -69,6 +69,7 @@ in with builtins; {
 
     patches = [
       ./patches/ldflags-6.0.patch
+      ./patches/include-fixes-6.0.patch
     ];
   };
 
@@ -76,13 +77,14 @@ in with builtins; {
   # ------------------------------------------------------
 
   foundationdb61 = cmakeBuild {
-    version = "6.1.12";
+    version = "6.1.13";
     branch  = "release-6.1";
-    sha256  = "1yh5hx6rim41m0dwhnb2pcwz67wlnk0zwvyw845d36b29gwy58ab";
+    sha256  = "10vd694dcnh2pp91mri1m80kfbwjanhiy50c53c5ncqfa6pwvk00";
 
     patches = [
       ./patches/clang-libcxx.patch
       ./patches/suppress-clang-warnings.patch
+      ./patches/stdexcept-6.1.patch
       glibc230-fix
     ];
   };
diff --git a/nixpkgs/pkgs/servers/foundationdb/patches/include-fixes-6.0.patch b/nixpkgs/pkgs/servers/foundationdb/patches/include-fixes-6.0.patch
new file mode 100644
index 000000000000..93959def44f8
--- /dev/null
+++ b/nixpkgs/pkgs/servers/foundationdb/patches/include-fixes-6.0.patch
@@ -0,0 +1,137 @@
+diff --git a/fdbrpc/ContinuousSample.h b/fdbrpc/ContinuousSample.h
+index 54ff1b109..577c228ae 100644
+--- a/fdbrpc/ContinuousSample.h
++++ b/fdbrpc/ContinuousSample.h
+@@ -26,6 +26,7 @@
+ #include "flow/IRandom.h"
+ #include <vector>
+ #include <algorithm>
++#include <cmath>
+ 
+ template <class T>
+ class ContinuousSample {
+diff --git a/fdbrpc/Smoother.h b/fdbrpc/Smoother.h
+index 3ed8e6e98..f3e4504b6 100644
+--- a/fdbrpc/Smoother.h
++++ b/fdbrpc/Smoother.h
+@@ -23,6 +23,7 @@
+ #pragma once
+ 
+ #include "flow/flow.h"
++#include <cmath>
+ 
+ struct Smoother {
+ 	// Times (t) are expected to be nondecreasing
+@@ -50,7 +51,7 @@ struct Smoother {
+ 		double elapsed = t - time;
+ 		if(elapsed) {
+ 			time = t;
+-			estimate += (total-estimate) * (1-exp( -elapsed/eFoldingTime ));
++			estimate += (total-estimate) * (1-std::exp( -elapsed/eFoldingTime ));
+ 		}
+ 	}
+ 
+@@ -83,11 +84,11 @@ struct TimerSmoother {
+ 	void update(double t) {
+ 		double elapsed = t - time;
+ 		time = t;
+-		estimate += (total-estimate) * (1-exp( -elapsed/eFoldingTime ));
++		estimate += (total-estimate) * (1-std::exp( -elapsed/eFoldingTime ));
+ 	}
+ 
+ 	double eFoldingTime;
+ 	double time, total, estimate;
+ };
+ 
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/fdbserver/Knobs.cpp b/fdbserver/Knobs.cpp
+index a924bc905..0dc70e7ac 100644
+--- a/fdbserver/Knobs.cpp
++++ b/fdbserver/Knobs.cpp
+@@ -20,6 +20,7 @@
+ 
+ #include "Knobs.h"
+ #include "fdbrpc/Locality.h"
++#include <cmath>
+ 
+ ServerKnobs const* SERVER_KNOBS = new ServerKnobs();
+ 
+diff --git a/flow/Knobs.cpp b/flow/Knobs.cpp
+index 2d706dddd..5dbe08861 100644
+--- a/flow/Knobs.cpp
++++ b/flow/Knobs.cpp
+@@ -20,6 +20,7 @@
+ 
+ #include "Knobs.h"
+ #include "flow/flow.h"
++#include <cmath>
+ 
+ FlowKnobs const* FLOW_KNOBS = new FlowKnobs();
+ 
+@@ -128,7 +129,7 @@ FlowKnobs::FlowKnobs(bool randomize, bool isSimulated) {
+ 	init( MAX_METRICS,                                         600 );
+ 	init( MAX_METRIC_SIZE,                                    2500 );
+ 	init( MAX_METRIC_LEVEL,                                     25 );
+-	init( METRIC_LEVEL_DIVISOR,                             log(4) );
++	init( METRIC_LEVEL_DIVISOR,                        std::log(4) );
+ 	init( METRIC_LIMIT_START_QUEUE_SIZE,                        10 );  // The queue size at which to start restricting logging by disabling levels
+ 	init( METRIC_LIMIT_RESPONSE_FACTOR,                         10 );  // The additional queue size at which to disable logging of another level (higher == less restrictive)
+ 
+diff --git a/flow/Platform.cpp b/flow/Platform.cpp
+index a754c8747..4d47fad32 100644
+--- a/flow/Platform.cpp
++++ b/flow/Platform.cpp
+@@ -98,6 +98,8 @@
+ #include <sys/resource.h>
+ /* Needed for crash handler */
+ #include <signal.h>
++/* Needed for major() and minor() with recent glibc */
++#include <sys/sysmacros.h>
+ #endif
+ 
+ #ifdef __APPLE__
+diff --git a/flow/Profiler.actor.cpp b/flow/Profiler.actor.cpp
+index 4603dcb77..78eda7278 100644
+--- a/flow/Profiler.actor.cpp
++++ b/flow/Profiler.actor.cpp
+@@ -35,8 +35,6 @@
+ 
+ extern volatile int profilingEnabled;
+ 
+-static uint64_t gettid() { return syscall(__NR_gettid); }
+-
+ struct SignalClosure {
+ 	void (* func)(int, siginfo_t*, void*, void*);
+ 	void *userdata;
+diff --git a/flow/TDMetric.actor.h b/flow/TDMetric.actor.h
+index 306352c39..fc63e12f9 100755
+--- a/flow/TDMetric.actor.h
++++ b/flow/TDMetric.actor.h
+@@ -35,6 +35,7 @@
+ #include "genericactors.actor.h"
+ #include "CompressedInt.h"
+ #include <algorithm>
++#include <cmath>
+ #include <functional>
+ 
+ struct MetricNameRef {
+@@ -799,7 +800,7 @@ struct EventMetric : E, ReferenceCounted<EventMetric<E>>, MetricUtil<EventMetric
+ 		if (x == 0.0)
+ 			l = FLOW_KNOBS->MAX_METRIC_LEVEL-1;
+ 		else
+-			l = std::min(FLOW_KNOBS->MAX_METRIC_LEVEL-1, (int64_t)(::log(1.0/x) / FLOW_KNOBS->METRIC_LEVEL_DIVISOR));
++			l = std::min(FLOW_KNOBS->MAX_METRIC_LEVEL-1, (int64_t)(std::log(1.0/x) / FLOW_KNOBS->METRIC_LEVEL_DIVISOR));
+ 
+ 		if(!canLog(l))
+ 			return 0;
+@@ -1274,7 +1275,7 @@ public:
+ 				l = std::min(
+ 					FLOW_KNOBS->MAX_METRIC_LEVEL-1,
+ 					(int64_t)(
+-						log((toggleTime - tv.time) / x) /
++						std::log((toggleTime - tv.time) / x) /
+ 							FLOW_KNOBS->METRIC_LEVEL_DIVISOR
+ 					)
+ 				);
diff --git a/nixpkgs/pkgs/servers/foundationdb/patches/stdexcept-6.1.patch b/nixpkgs/pkgs/servers/foundationdb/patches/stdexcept-6.1.patch
new file mode 100644
index 000000000000..9ebe0c6c0fb5
--- /dev/null
+++ b/nixpkgs/pkgs/servers/foundationdb/patches/stdexcept-6.1.patch
@@ -0,0 +1,24 @@
+diff --git a/FDBLibTLS/FDBLibTLSPolicy.cpp b/FDBLibTLS/FDBLibTLSPolicy.cpp
+index 728ff871d..46e1dd289 100644
+--- a/FDBLibTLS/FDBLibTLSPolicy.cpp
++++ b/FDBLibTLS/FDBLibTLSPolicy.cpp
+@@ -31,6 +31,7 @@
+ #include <algorithm>
+ #include <exception>
+ #include <map>
++#include <stdexcept>
+ #include <string>
+ #include <vector>
+ 
+diff --git a/FDBLibTLS/FDBLibTLSVerify.cpp b/FDBLibTLS/FDBLibTLSVerify.cpp
+index 594389916..1c8b9b50d 100644
+--- a/FDBLibTLS/FDBLibTLSVerify.cpp
++++ b/FDBLibTLS/FDBLibTLSVerify.cpp
+@@ -25,6 +25,7 @@
+ #include <algorithm>
+ #include <exception>
+ #include <cstring>
++#include <stdexcept>
+ 
+ static int hexValue(char c) {
+ 	static char const digits[] = "0123456789ABCDEF";
diff --git a/nixpkgs/pkgs/servers/foundationdb/vsmake.nix b/nixpkgs/pkgs/servers/foundationdb/vsmake.nix
index aac9ab07c0f7..e171d7145647 100644
--- a/nixpkgs/pkgs/servers/foundationdb/vsmake.nix
+++ b/nixpkgs/pkgs/servers/foundationdb/vsmake.nix
@@ -4,7 +4,7 @@
 { gcc6Stdenv, lib, fetchurl, fetchFromGitHub
 
 , which, findutils, m4, gawk
-, python, openjdk, mono, libressl
+, python2, openjdk, mono, libressl
 , ...
 }:
 
@@ -51,7 +51,7 @@ let
           inherit rev sha256;
         };
 
-        nativeBuildInputs = [ python openjdk gawk which m4 findutils mono ];
+        nativeBuildInputs = [ python2 openjdk gawk which m4 findutils mono ];
         buildInputs = [ libressl boost ];
 
         inherit patches;
diff --git a/nixpkgs/pkgs/servers/gemini/agate/default.nix b/nixpkgs/pkgs/servers/gemini/agate/default.nix
index be3012740f54..f27299079553 100644
--- a/nixpkgs/pkgs/servers/gemini/agate/default.nix
+++ b/nixpkgs/pkgs/servers/gemini/agate/default.nix
@@ -1,23 +1,31 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, Security }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "agate";
-  version = "2.5.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "mbrubeck";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mnatEvojma1+cOVllTAzDVxl5luRGleLE6GNPnQUNWQ=";
+    sha256 = "sha256-ODD5XwLYVUJOHQCETVUqMUojL4Y8eWJ/xhmfzV9Cp3k=";
   };
 
-  cargoSha256 = "sha256-B07itUftDj3yVMDc/2VetwYs74fZBa1tmeELbbQ39P0=";
+  cargoSha256 = "sha256-PJOlXFx+MYfq7daaOEZ5wPuWD7gAr8gc/5AJG2SYTq4=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/agate --help
+    $out/bin/agate --version 2>&1 | grep "agate ${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
-    homepage = "https://proxy.vulpes.one/gemini/gem.limpet.net/agate";
-    changelog = "https://proxy.vulpes.one/gemini/gem.limpet.net/agate";
+    homepage = "https://proxy.vulpes.one/gemini/qwertqwefsday.eu/agate.gmi";
+    changelog = "https://proxy.vulpes.one/gemini/qwertqwefsday.eu/agate.gmi";
     description = "Very simple server for the Gemini hypertext protocol";
     longDescription = ''
       Agate is a server for the Gemini network protocol, built with the Rust
@@ -25,7 +33,7 @@ rustPlatform.buildRustPackage rec {
       static files. It uses async I/O, and should be quite efficient even when
       running on low-end hardware and serving many concurrent requests.
     '';
-    license = licenses.asl20;
+    license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ jk ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix b/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix
new file mode 100644
index 000000000000..4a8e187561c4
--- /dev/null
+++ b/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, fetchFromSourcehut, pkg-config, openssl, mime-types, scdoc }:
+
+stdenv.mkDerivation rec {
+  pname = "gmnisrv";
+  version = "unstable-2021-03-26";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "gmnisrv";
+    rev = "f23ec10a6d66c574bbf718c4b10f2cf91ea8daef";
+    sha256 = "1d9rjx0s092yfzjxd2yvzixhqgg883nlnmsysgp21w75n2as354n";
+  };
+
+  MIMEDB = "${mime-types}/etc/mime.types";
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl mime-types scdoc ];
+
+  meta = with lib; {
+    description = "A simple Gemini protocol server";
+    homepage = "https://git.sr.ht/~sircmpwn/gmnisrv";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ bsima jb55 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/gerbera/default.nix b/nixpkgs/pkgs/servers/gerbera/default.nix
index 7736ed1a0146..c7e560f9e619 100644
--- a/nixpkgs/pkgs/servers/gerbera/default.nix
+++ b/nixpkgs/pkgs/servers/gerbera/default.nix
@@ -20,13 +20,13 @@ let
   optionOnOff = option: if option then "on" else "off";
 in stdenv.mkDerivation rec {
   pname = "gerbera";
-  version = "1.6.4";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     repo = "gerbera";
     owner = "gerbera";
     rev = "v${version}";
-    sha256 = "0vkgbw2ibvfr0zffnmmws7389msyqsiw8anfad6awvkda3z3rxjm";
+    sha256 = "sha256-unBToiLSpTtnung77z65iuUqiQHwfMVgmFZMUtKU7fQ=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/servers/gonic/default.nix b/nixpkgs/pkgs/servers/gonic/default.nix
index e541027af702..fbefca063a84 100644
--- a/nixpkgs/pkgs/servers/gonic/default.nix
+++ b/nixpkgs/pkgs/servers/gonic/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "gonic";
-  version = "0.12.0";
+  version = "0.12.2";
   src = fetchFromGitHub {
     owner = "sentriz";
     repo = pname;
-    rev = "6c69bd3be6279f743c83596c4f0fc12798fdb26a";
-    sha256 = "1igb2lbkc1nfxp49id3yxql9sbdqr467661jcgnchcnbayj4d664";
+    rev = "7d420f61a90739cd82a81c2740274c538405d950";
+    sha256 = "0ix33cbhik1580h1jgv6n512dcgip436wmljpiw53c9v438k0ps5";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ taglib alsaLib ];
+  buildInputs = [ taglib alsaLib ] ++ lib.optionals transcodingSupport [ ffmpeg ];
   vendorSha256 = "0inxlqxnkglz4j14jav8080718a80nqdcl866lkql8r6zcxb4fm9";
 
   meta = {
diff --git a/nixpkgs/pkgs/servers/gpsd/default.nix b/nixpkgs/pkgs/servers/gpsd/default.nix
index b7d507193055..62b711af67a0 100644
--- a/nixpkgs/pkgs/servers/gpsd/default.nix
+++ b/nixpkgs/pkgs/servers/gpsd/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gpsd";
-  version = "3.21";
+  version = "3.22";
 
   src = fetchurl {
-    url = "https://download-mirror.savannah.gnu.org/releases/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "14gyqrbrq6jz4y6x59rdpv9d4c3pbn0vh1blq3iwrc6kz0x4ql35";
+    url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "18rplv1cd76ndb2wc91jarjmfm2nk508pykv1hir79bqbwmdygvq";
   };
 
   nativeBuildInputs = [
@@ -46,15 +46,12 @@ stdenv.mkDerivation rec {
     ./sconstruct-env-fixes.patch
   ];
 
-  postPatch = ''
-    sed -i -e '17i#include <sys/sysmacros.h>' serial.c
-  '';
-
   # - leapfetch=no disables going online at build time to fetch leap-seconds
   #   info. See <gpsd-src>/build.txt for more info.
   preBuild = ''
     patchShebangs .
-    sed -e "s|systemd_dir = .*|systemd_dir = '$out/lib/systemd/system'|" -i SConstruct
+    sed -e "s|systemd_dir = .*|systemd_dir = '$out/lib/systemd/system'|" -i SConscript
+    export TAR=noop
 
     sconsFlags+=" udevdir=$out/lib/udev"
     sconsFlags+=" python_libdir=$out/lib/${python3Packages.python.libPrefix}/site-packages"
@@ -104,7 +101,8 @@ stdenv.mkDerivation rec {
       diagnostic monitoring and profiling of receivers and feeding
       location-aware applications GPS/AIS logs for diagnostic purposes.
     '';
-    homepage = "http://catb.org/gpsd/";
+    homepage = "https://gpsd.gitlab.io/gpsd/index.html";
+    changelog = "https://gitlab.com/gpsd/gpsd/-/blob/release-${version}/NEWS";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ bjornfor rasendubi ];
diff --git a/nixpkgs/pkgs/servers/gpsd/sconstruct-env-fixes.patch b/nixpkgs/pkgs/servers/gpsd/sconstruct-env-fixes.patch
index e90bd04b6342..d11ad1299f0e 100644
--- a/nixpkgs/pkgs/servers/gpsd/sconstruct-env-fixes.patch
+++ b/nixpkgs/pkgs/servers/gpsd/sconstruct-env-fixes.patch
@@ -1,6 +1,7 @@
---- SConstruct.orig	2020-12-03 12:39:40.759793977 -0600
-+++ gpsd-3.21/SConstruct	2020-12-03 12:44:30.858761753 -0600
-@@ -516,9 +516,11 @@
+diff -Naur gpsd-3.22.orig/SConscript gpsd-3.22/SConscript
+--- gpsd-3.22.orig/SConscript	2021-01-09 05:35:30.000000000 +0300
++++ gpsd-3.22/SConscript	2021-02-25 21:06:47.921044438 +0300
+@@ -518,9 +518,11 @@
      'CWRAPPERS_CONFIG_DIR',      # pkgsrc
      # Variables used in testing
      'WRITE_PAD',       # So we can test WRITE_PAD values on the fly.
diff --git a/nixpkgs/pkgs/servers/h2/default.nix b/nixpkgs/pkgs/servers/h2/default.nix
index be28578bcb0f..d05232193d78 100644
--- a/nixpkgs/pkgs/servers/h2/default.nix
+++ b/nixpkgs/pkgs/servers/h2/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0pdvbnx7nqfqs7x1zkwz2q34331l55jknpk6arf6dksvnd71hinj";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase =
     let
diff --git a/nixpkgs/pkgs/servers/hbase/default.nix b/nixpkgs/pkgs/servers/hbase/default.nix
index 09600082633d..32d2c09de97f 100644
--- a/nixpkgs/pkgs/servers/hbase/default.nix
+++ b/nixpkgs/pkgs/servers/hbase/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0kz72wqsii09v9hxkw10mzyvjhji5sx3l6aijjalgbybavpcxglb";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
     mkdir -p $out
     cp -R * $out
diff --git a/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix b/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
index 4614e1d64cad..f805d45b2124 100644
--- a/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
@@ -1,8 +1,19 @@
-{ lib, python3, fetchFromGitHub }:
+{ lib
+, python3
+, fetchFromGitHub
+}:
 
 let
   python = python3.override {
     packageOverrides = self: super: {
+      astral = super.astral.overridePythonAttrs (oldAttrs: rec {
+        version = "1.10.1";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "1wbvnqffbgh8grxm07cabdpahlnyfq91pyyaav432cahqi1p59nj";
+        };
+      });
+
       bcrypt = super.bcrypt.overridePythonAttrs (oldAttrs: rec {
         version = "3.1.7";
         src = oldAttrs.src.override {
@@ -24,10 +35,11 @@ let
 in python.pkgs.buildPythonApplication rec {
   pname = "appdaemon";
   version = "4.0.5";
+  disabled = python.pythonOlder "3.6";
 
   src = fetchFromGitHub {
-    owner = "home-assistant";
-    repo = "appdaemon";
+    owner = "AppDaemon";
+    repo = pname;
     rev = version;
     sha256 = "7o6DrTufAC+qK3dDfpkuQMQWuduCZ6Say/knI4Y07QM=";
   };
@@ -58,18 +70,18 @@ in python.pkgs.buildPythonApplication rec {
       --replace "sockjs==0.10.0" "sockjs" \
       --replace "deepdiff==4.3.1" "deepdiff" \
       --replace "voluptuous==0.11.7" "voluptuous" \
-      --replace "astral==1.10.1" "astral" \
       --replace "python-socketio==4.4.0" "python-socketio" \
       --replace "feedparser==5.2.1" "feedparser>=5.2.1" \
       --replace "aiohttp_jinja2==1.2.0" "aiohttp_jinja2>=1.2.0" \
       --replace "pygments==2.6.1" "pygments>=2.6.1" \
-      --replace "paho-mqtt==1.5.0" "paho-mqtt>=1.5.0"
+      --replace "paho-mqtt==1.5.0" "paho-mqtt>=1.5.0" \
+      --replace "websocket-client==0.57.0" "websocket-client>=0.57.0"
   '';
 
   meta = with lib; {
     description = "Sandboxed Python execution environment for writing automation apps for Home Assistant";
-    homepage = "https://github.com/home-assistant/appdaemon";
+    homepage = "https://github.com/AppDaemon/appdaemon";
     license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg dotlambda ];
+    maintainers = teams.home-assistant.members;
   };
 }
diff --git a/nixpkgs/pkgs/servers/home-assistant/cli.nix b/nixpkgs/pkgs/servers/home-assistant/cli.nix
index 6b7758dd5e13..da7ff1ed6b27 100644
--- a/nixpkgs/pkgs/servers/home-assistant/cli.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/cli.nix
@@ -36,6 +36,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Command-line tool for Home Assistant";
     homepage = "https://github.com/home-assistant/home-assistant-cli";
     license = licenses.asl20;
-    maintainers = with maintainers; [ dotlambda ];
+    maintainers = teams.home-assistant.members;
   };
 }
diff --git a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
index 40779f4bc198..7d5c6f29e02d 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 = "2021.2.3";
+  version = "2021.4.0";
   components = {
     "abode" = ps: with ps; [ abodepy ];
     "accuweather" = ps: with ps; [ accuweather ];
@@ -12,6 +12,7 @@
     "adguard" = ps: with ps; [ adguardhome ];
     "ads" = ps: with ps; [ pyads ];
     "advantage_air" = ps: with ps; [ advantage-air ];
+    "aemet" = ps: with ps; [ ]; # missing inputs: AEMET-OpenData
     "aftership" = ps: with ps; [ pyaftership ];
     "agent_dvr" = ps: with ps; [ agent-py ];
     "air_quality" = ps: with ps; [ ];
@@ -23,13 +24,14 @@
     "alarmdecoder" = ps: with ps; [ adext ];
     "alert" = ps: with ps; [ ];
     "alexa" = ps: with ps; [ aiohttp-cors ];
-    "almond" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pyalmond
+    "almond" = ps: with ps; [ aiohttp-cors pyalmond ];
     "alpha_vantage" = ps: with ps; [ ]; # missing inputs: alpha_vantage
     "amazon_polly" = ps: with ps; [ boto3 ];
     "ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ];
-    "ambient_station" = ps: with ps; [ ]; # missing inputs: aioambient
+    "ambient_station" = ps: with ps; [ aioambient ];
     "amcrest" = ps: with ps; [ amcrest ha-ffmpeg ];
     "ampio" = ps: with ps; [ ]; # missing inputs: asmog
+    "analytics" = ps: with ps; [ aiohttp-cors ];
     "android_ip_webcam" = ps: with ps; [ ]; # missing inputs: pydroid-ipcam
     "androidtv" = ps: with ps; [ adb-shell androidtv pure-python-adb ];
     "anel_pwrctrl" = ps: with ps; [ ]; # missing inputs: anel_pwrctrl-homeassistant
@@ -41,7 +43,7 @@
     "apple_tv" = ps: with ps; [ aiohttp-cors netdisco pyatv zeroconf ];
     "apprise" = ps: with ps; [ apprise ];
     "aprs" = ps: with ps; [ geopy ]; # missing inputs: aprslib
-    "aqualogic" = ps: with ps; [ ]; # missing inputs: aqualogic
+    "aqualogic" = ps: with ps; [ aqualogic ];
     "aquostv" = ps: with ps; [ ]; # missing inputs: sharp_aquos_rc
     "arcam_fmj" = ps: with ps; [ ]; # missing inputs: arcam-fmj
     "arduino" = ps: with ps; [ ]; # missing inputs: PyMata
@@ -52,18 +54,18 @@
     "arwn" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "asterisk_cdr" = ps: with ps; [ ]; # missing inputs: asterisk_mbox
     "asterisk_mbox" = ps: with ps; [ ]; # missing inputs: asterisk_mbox
-    "asuswrt" = ps: with ps; [ ]; # missing inputs: aioasuswrt
+    "asuswrt" = ps: with ps; [ aioasuswrt ];
     "atag" = ps: with ps; [ ]; # missing inputs: pyatag
     "aten_pe" = ps: with ps; [ atenpdu ];
     "atome" = ps: with ps; [ ]; # missing inputs: pyatome
-    "august" = ps: with ps; [ ]; # missing inputs: py-august
-    "aurora" = ps: with ps; [ ]; # missing inputs: auroranoaa
+    "august" = ps: with ps; [ yalexs ];
+    "aurora" = ps: with ps; [ auroranoaa ];
     "aurora_abb_powerone" = ps: with ps; [ ]; # missing inputs: aurorapy
     "auth" = ps: with ps; [ aiohttp-cors ];
     "automation" = ps: with ps; [ aiohttp-cors ];
     "avea" = ps: with ps; [ avea ];
     "avion" = ps: with ps; [ avion ];
-    "awair" = ps: with ps; [ ]; # missing inputs: python_awair
+    "awair" = ps: with ps; [ python-awair ];
     "aws" = ps: with ps; [ aiobotocore ];
     "axis" = ps: with ps; [ aiohttp-cors axis paho-mqtt ];
     "azure_devops" = ps: with ps; [ ]; # missing inputs: aioazuredevops
@@ -110,7 +112,7 @@
     "canary" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: py-canary
     "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa mutagen plexapi plexauth plexwebsocket PyChromecast zeroconf ];
     "cert_expiry" = ps: with ps; [ ];
-    "channels" = ps: with ps; [ ]; # missing inputs: pychannels
+    "channels" = ps: with ps; [ pychannels ];
     "circuit" = ps: with ps; [ ]; # missing inputs: circuit-webhook
     "cisco_ios" = ps: with ps; [ pexpect ];
     "cisco_mobility_express" = ps: with ps; [ ciscomobilityexpress ];
@@ -120,13 +122,13 @@
     "clickatell" = ps: with ps; [ ];
     "clicksend" = ps: with ps; [ ];
     "clicksend_tts" = ps: with ps; [ ];
+    "climacell" = ps: with ps; [ ]; # missing inputs: pyclimacell
     "climate" = ps: with ps; [ ];
     "cloud" = ps: with ps; [ aiohttp-cors hass-nabucasa ];
     "cloudflare" = ps: with ps; [ pycfdns ];
     "cmus" = ps: with ps; [ ]; # missing inputs: pycmus
     "co2signal" = ps: with ps; [ ]; # missing inputs: co2signal
     "coinbase" = ps: with ps; [ ]; # missing inputs: coinbase
-    "coinmarketcap" = ps: with ps; [ coinmarketcap ];
     "color_extractor" = ps: with ps; [ ]; # missing inputs: colorthief
     "comed_hourly_pricing" = ps: with ps; [ ];
     "comfoconnect" = ps: with ps; [ ]; # missing inputs: pycomfoconnect
@@ -142,19 +144,18 @@
     "cover" = ps: with ps; [ ];
     "cppm_tracker" = ps: with ps; [ ]; # missing inputs: clearpasspy
     "cpuspeed" = ps: with ps; [ py-cpuinfo ];
-    "crimereports" = ps: with ps; [ ]; # missing inputs: crimereports
     "cups" = ps: with ps; [ pycups ];
     "currencylayer" = ps: with ps; [ ];
-    "daikin" = ps: with ps; [ ]; # missing inputs: pydaikin
+    "daikin" = ps: with ps; [ pydaikin ];
     "danfoss_air" = ps: with ps; [ ]; # missing inputs: pydanfossair
     "darksky" = ps: with ps; [ python-forecastio ];
     "datadog" = ps: with ps; [ datadog ];
     "ddwrt" = ps: with ps; [ ];
     "debugpy" = ps: with ps; [ debugpy ];
-    "deconz" = ps: with ps; [ ]; # missing inputs: pydeconz
+    "deconz" = ps: with ps; [ pydeconz ];
     "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
     "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
-    "default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro emoji hass-nabucasa netdisco pillow scapy sqlalchemy zeroconf ];
+    "default_config" = ps: with ps; [ pynacl aiodiscover aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa netdisco pillow scapy sqlalchemy zeroconf ];
     "delijn" = ps: with ps; [ ]; # missing inputs: pydelijn
     "deluge" = ps: with ps; [ deluge-client ];
     "demo" = ps: with ps; [ aiohttp-cors ];
@@ -167,7 +168,7 @@
     "device_tracker" = ps: with ps; [ ];
     "devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api zeroconf ];
     "dexcom" = ps: with ps; [ pydexcom ];
-    "dhcp" = ps: with ps; [ scapy ];
+    "dhcp" = ps: with ps; [ aiodiscover scapy ];
     "dht" = ps: with ps; [ ]; # missing inputs: Adafruit-DHT
     "dialogflow" = ps: with ps; [ aiohttp-cors ];
     "digital_ocean" = ps: with ps; [ digital-ocean ];
@@ -192,7 +193,7 @@
     "dublin_bus_transport" = ps: with ps; [ ];
     "duckdns" = ps: with ps; [ ];
     "dunehd" = ps: with ps; [ ]; # missing inputs: pdunehd
-    "dwd_weather_warnings" = ps: with ps; [ ]; # missing inputs: dwdwfsapi
+    "dwd_weather_warnings" = ps: with ps; [ dwdwfsapi ];
     "dweet" = ps: with ps; [ ]; # missing inputs: dweepy
     "dynalite" = ps: with ps; [ ]; # missing inputs: dynalite_devices
     "dyson" = ps: with ps; [ aiohttp-cors libpurecool zeroconf ];
@@ -209,7 +210,7 @@
     "ee_brightbox" = ps: with ps; [ ]; # missing inputs: eebrightbox
     "efergy" = ps: with ps; [ ];
     "egardia" = ps: with ps; [ ]; # missing inputs: pythonegardia
-    "eight_sleep" = ps: with ps; [ ]; # missing inputs: pyeight
+    "eight_sleep" = ps: with ps; [ pyeight ];
     "elgato" = ps: with ps; [ ]; # missing inputs: elgato
     "eliqonline" = ps: with ps; [ ]; # missing inputs: eliqonline
     "elkm1" = ps: with ps; [ ]; # missing inputs: elkm1-lib
@@ -236,8 +237,9 @@
     "etherscan" = ps: with ps; [ ]; # missing inputs: python-etherscan-api
     "eufy" = ps: with ps; [ ]; # missing inputs: lakeside
     "everlights" = ps: with ps; [ pyeverlights ];
-    "evohome" = ps: with ps; [ ]; # missing inputs: evohome-async
+    "evohome" = ps: with ps; [ evohome-async ];
     "ezviz" = ps: with ps; [ ]; # missing inputs: pyezviz
+    "faa_delays" = ps: with ps; [ faadelays ];
     "facebook" = ps: with ps; [ ];
     "facebox" = ps: with ps; [ ];
     "fail2ban" = ps: with ps; [ ];
@@ -264,8 +266,8 @@
     "flick_electric" = ps: with ps; [ ]; # missing inputs: PyFlick
     "flo" = ps: with ps; [ aioflo ];
     "flock" = ps: with ps; [ ];
-    "flume" = ps: with ps; [ ]; # missing inputs: pyflume
-    "flunearyou" = ps: with ps; [ ]; # missing inputs: pyflunearyou
+    "flume" = ps: with ps; [ pyflume ];
+    "flunearyou" = ps: with ps; [ pyflunearyou ];
     "flux" = ps: with ps; [ ];
     "flux_led" = ps: with ps; [ flux-led ];
     "folder" = ps: with ps; [ ];
@@ -276,7 +278,7 @@
     "foscam" = ps: with ps; [ ]; # missing inputs: libpyfoscam
     "foursquare" = ps: with ps; [ aiohttp-cors ];
     "free_mobile" = ps: with ps; [ ]; # missing inputs: freesms
-    "freebox" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: aiofreepybox
+    "freebox" = ps: with ps; [ freebox-api ];
     "freedns" = ps: with ps; [ ];
     "fritz" = ps: with ps; [ fritzconnection ];
     "fritzbox" = ps: with ps; [ pyfritzhome ];
@@ -309,7 +311,7 @@
     "goalfeed" = ps: with ps; [ ]; # missing inputs: pysher
     "goalzero" = ps: with ps; [ ]; # missing inputs: goalzero
     "gogogate2" = ps: with ps; [ ]; # missing inputs: gogogate2-api
-    "google" = ps: with ps; [ google_api_python_client httplib2 oauth2client ];
+    "google" = ps: with ps; [ google-api-python-client httplib2 oauth2client ];
     "google_assistant" = ps: with ps; [ aiohttp-cors ];
     "google_cloud" = ps: with ps; [ google-cloud-texttospeech ];
     "google_domains" = ps: with ps; [ ];
@@ -325,7 +327,6 @@
     "gree" = ps: with ps; [ ]; # missing inputs: greeclimate
     "greeneye_monitor" = ps: with ps; [ ]; # missing inputs: greeneye_monitor
     "greenwave" = ps: with ps; [ ]; # missing inputs: greenwavereality
-    "griddy" = ps: with ps; [ ]; # missing inputs: griddypower
     "group" = ps: with ps; [ ];
     "growatt_server" = ps: with ps; [ ]; # missing inputs: growattServer
     "gstreamer" = ps: with ps; [ ]; # missing inputs: gstreamer-player
@@ -338,7 +339,7 @@
     "hassio" = ps: with ps; [ aiohttp-cors pillow ];
     "haveibeenpwned" = ps: with ps; [ ];
     "hddtemp" = ps: with ps; [ ];
-    "hdmi_cec" = ps: with ps; [ ]; # missing inputs: pyCEC
+    "hdmi_cec" = ps: with ps; [ pycec ];
     "heatmiser" = ps: with ps; [ ]; # missing inputs: heatmiserV3
     "heos" = ps: with ps; [ ]; # missing inputs: pyheos
     "here_travel_time" = ps: with ps; [ ]; # missing inputs: herepy
@@ -351,8 +352,9 @@
     "hive" = ps: with ps; [ ]; # missing inputs: pyhiveapi
     "hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16
     "home_connect" = ps: with ps; [ aiohttp-cors ]; # missing inputs: homeconnect
+    "home_plus_control" = ps: with ps; [ aiohttp-cors homepluscontrol ];
     "homeassistant" = ps: with ps; [ ];
-    "homekit" = ps: with ps; [ HAP-python pyqrcode aiohttp-cors base36 fnvhash ha-ffmpeg zeroconf ]; # missing inputs: PyTurboJPEG
+    "homekit" = ps: with ps; [ HAP-python pyqrcode pyturbojpeg aiohttp-cors base36 fnvhash ha-ffmpeg zeroconf ];
     "homekit_controller" = ps: with ps; [ aiohomekit aiohttp-cors zeroconf ];
     "homematic" = ps: with ps; [ pyhomematic ];
     "homematicip_cloud" = ps: with ps; [ ]; # missing inputs: homematicip
@@ -373,7 +375,7 @@
     "hydrawise" = ps: with ps; [ hydrawiser ];
     "hyperion" = ps: with ps; [ ]; # missing inputs: hyperion-py
     "iammeter" = ps: with ps; [ ]; # missing inputs: iammeter
-    "iaqualink" = ps: with ps; [ ]; # missing inputs: iaqualink
+    "iaqualink" = ps: with ps; [ iaqualink ];
     "icloud" = ps: with ps; [ pyicloud ];
     "idteck_prox" = ps: with ps; [ ]; # missing inputs: rfk101py
     "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
@@ -384,7 +386,7 @@
     "image_processing" = ps: with ps; [ aiohttp-cors ];
     "imap" = ps: with ps; [ aioimaplib ];
     "imap_email_content" = ps: with ps; [ ];
-    "incomfort" = ps: with ps; [ ]; # missing inputs: incomfort-client
+    "incomfort" = ps: with ps; [ incomfort-client ];
     "influxdb" = ps: with ps; [ influxdb-client influxdb ];
     "input_boolean" = ps: with ps; [ ];
     "input_datetime" = ps: with ps; [ ];
@@ -421,8 +423,9 @@
     "keyboard_remote" = ps: with ps; [ aionotify evdev ];
     "kira" = ps: with ps; [ pykira ];
     "kiwi" = ps: with ps; [ ]; # missing inputs: kiwiki-client
+    "kmtronic" = ps: with ps; [ pykmtronic ];
     "knx" = ps: with ps; [ xknx ];
-    "kodi" = ps: with ps; [ ]; # missing inputs: pykodi
+    "kodi" = ps: with ps; [ pykodi ];
     "konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected
     "kulersky" = ps: with ps; [ ]; # missing inputs: pykulersky
     "kwb" = ps: with ps; [ ]; # missing inputs: pykwb
@@ -446,6 +449,7 @@
     "linux_battery" = ps: with ps; [ batinfo ];
     "lirc" = ps: with ps; [ ]; # missing inputs: python-lirc
     "litejet" = ps: with ps; [ ]; # missing inputs: pylitejet
+    "litterrobot" = ps: with ps; [ pylitterbot ];
     "llamalab_automate" = ps: with ps; [ ];
     "local_file" = ps: with ps; [ ];
     "local_ip" = ps: with ps; [ ];
@@ -466,6 +470,7 @@
     "lutron_caseta" = ps: with ps; [ ]; # missing inputs: aiolip pylutron-caseta
     "lw12wifi" = ps: with ps; [ ]; # missing inputs: lw12
     "lyft" = ps: with ps; [ ]; # missing inputs: lyft_rides
+    "lyric" = ps: with ps; [ aiohttp-cors aiolyric ];
     "magicseaweed" = ps: with ps; [ ]; # missing inputs: magicseaweed
     "mailbox" = ps: with ps; [ aiohttp-cors ];
     "mailgun" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymailgunner
@@ -476,11 +481,12 @@
     "mastodon" = ps: with ps; [ ]; # missing inputs: Mastodon.py
     "matrix" = ps: with ps; [ matrix-client ];
     "maxcube" = ps: with ps; [ ]; # missing inputs: maxcube-api
+    "mazda" = ps: with ps; [ pymazda ];
     "mcp23017" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-mcp230xx
     "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ];
     "media_player" = ps: with ps; [ aiohttp-cors ];
     "media_source" = ps: with ps; [ aiohttp-cors ];
-    "mediaroom" = ps: with ps; [ ]; # missing inputs: pymediaroom
+    "mediaroom" = ps: with ps; [ pymediaroom ];
     "melcloud" = ps: with ps; [ ]; # missing inputs: pymelcloud
     "melissa" = ps: with ps; [ ]; # missing inputs: py-melissa-climate
     "meraki" = ps: with ps; [ aiohttp-cors ];
@@ -496,10 +502,10 @@
     "microsoft_face_detect" = ps: with ps; [ aiohttp-cors ];
     "microsoft_face_identify" = ps: with ps; [ aiohttp-cors ];
     "miflora" = ps: with ps; [ bluepy ]; # missing inputs: miflora
-    "mikrotik" = ps: with ps; [ ]; # missing inputs: librouteros
+    "mikrotik" = ps: with ps; [ librouteros ];
     "mill" = ps: with ps; [ ]; # missing inputs: millheater
     "min_max" = ps: with ps; [ ];
-    "minecraft_server" = ps: with ps; [ aiodns getmac ]; # missing inputs: mcstatus
+    "minecraft_server" = ps: with ps; [ aiodns getmac mcstatus ];
     "minio" = ps: with ps; [ minio ];
     "mitemp_bt" = ps: with ps; [ ]; # missing inputs: mitemp_bt
     "mjpeg" = ps: with ps; [ ];
@@ -518,12 +524,14 @@
     "mqtt_json" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "mqtt_room" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "mqtt_statestream" = ps: with ps; [ aiohttp-cors paho-mqtt ];
-    "msteams" = ps: with ps; [ ]; # missing inputs: pymsteams
+    "msteams" = ps: with ps; [ pymsteams ];
+    "mullvad" = ps: with ps; [ mullvad-api ];
     "mvglive" = ps: with ps; [ PyMVGLive ];
+    "my" = ps: with ps; [ aiohttp-cors pillow ];
     "mychevy" = ps: with ps; [ ]; # missing inputs: mychevy
     "mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi
     "myq" = ps: with ps; [ pymyq ];
-    "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: pymysensors
+    "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt pymysensors ];
     "mystrom" = ps: with ps; [ aiohttp-cors python-mystrom ];
     "mythicbeastsdns" = ps: with ps; [ ]; # missing inputs: mbddns
     "n26" = ps: with ps; [ ]; # missing inputs: n26
@@ -549,23 +557,22 @@
     "niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control
     "nilu" = ps: with ps; [ ]; # missing inputs: niluclient
     "nissan_leaf" = ps: with ps; [ ]; # missing inputs: pycarwings2
-    "nmap_tracker" = ps: with ps; [ getmac ]; # missing inputs: python-nmap
+    "nmap_tracker" = ps: with ps; [ getmac python-nmap ];
     "nmbs" = ps: with ps; [ ]; # missing inputs: pyrail
     "no_ip" = ps: with ps; [ ];
     "noaa_tides" = ps: with ps; [ ]; # missing inputs: noaa-coops
     "norway_air" = ps: with ps; [ pymetno ];
     "notify" = ps: with ps; [ ];
     "notify_events" = ps: with ps; [ ]; # missing inputs: notify-events
-    "notion" = ps: with ps; [ ]; # missing inputs: aionotion
+    "notion" = ps: with ps; [ aionotion ];
     "nsw_fuel_station" = ps: with ps; [ ]; # missing inputs: nsw-fuel-api-client
     "nsw_rural_fire_service_feed" = ps: with ps; [ ]; # missing inputs: aio_geojson_nsw_rfs_incidents
     "nuheat" = ps: with ps; [ ]; # missing inputs: nuheat
-    "nuimo_controller" = ps: with ps; [ ]; # missing inputs: --only-binary=all nuimo
     "nuki" = ps: with ps; [ pynuki ];
     "numato" = ps: with ps; [ ]; # missing inputs: numato-gpio
     "number" = ps: with ps; [ ];
     "nut" = ps: with ps; [ ]; # missing inputs: pynut2
-    "nws" = ps: with ps; [ ]; # missing inputs: pynws
+    "nws" = ps: with ps; [ pynws ];
     "nx584" = ps: with ps; [ ]; # missing inputs: pynx584
     "nzbget" = ps: with ps; [ ]; # missing inputs: pynzbgetapi
     "oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics
@@ -588,7 +595,7 @@
     "openexchangerates" = ps: with ps; [ ];
     "opengarage" = ps: with ps; [ ]; # missing inputs: open-garage
     "openhardwaremonitor" = ps: with ps; [ ];
-    "openhome" = ps: with ps; [ ]; # missing inputs: openhomedevice
+    "openhome" = ps: with ps; [ openhomedevice ];
     "opensensemap" = ps: with ps; [ opensensemap-api ];
     "opensky" = ps: with ps; [ ];
     "opentherm_gw" = ps: with ps; [ ]; # missing inputs: pyotgw
@@ -603,7 +610,7 @@
     "otp" = ps: with ps; [ pyotp ];
     "ovo_energy" = ps: with ps; [ ]; # missing inputs: ovoenergy
     "owntracks" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa paho-mqtt ];
-    "ozw" = ps: with ps; [ aiohttp-cors homeassistant-pyozw paho-mqtt pydispatcher python-openzwave-mqtt ];
+    "ozw" = ps: with ps; [ aiohttp-cors paho-mqtt python-openzwave-mqtt ];
     "panasonic_bluray" = ps: with ps; [ ]; # missing inputs: panacotta
     "panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera
     "pandora" = ps: with ps; [ pexpect ];
@@ -622,7 +629,7 @@
     "ping" = ps: with ps; [ icmplib ];
     "pioneer" = ps: with ps; [ ];
     "pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2
-    "plaato" = ps: with ps; [ aiohttp-cors ];
+    "plaato" = ps: with ps; [ aiohttp-cors hass-nabucasa pyplaato ];
     "plant" = ps: with ps; [ sqlalchemy ];
     "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket ];
     "plugwise" = ps: with ps; [ plugwise ];
@@ -631,13 +638,13 @@
     "point" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pypoint
     "poolsense" = ps: with ps; [ poolsense ];
     "powerwall" = ps: with ps; [ ]; # missing inputs: tesla-powerwall
-    "profiler" = ps: with ps; [ objgraph pyprof2calltree ]; # missing inputs: guppy3
+    "profiler" = ps: with ps; [ guppy3 objgraph pyprof2calltree ];
     "progettihwsw" = ps: with ps; [ ]; # missing inputs: progettihwsw
     "proliphix" = ps: with ps; [ ]; # missing inputs: proliphix
     "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ];
     "prowl" = ps: with ps; [ ];
     "proximity" = ps: with ps; [ ];
-    "proxmoxve" = ps: with ps; [ ]; # missing inputs: proxmoxer
+    "proxmoxve" = ps: with ps; [ proxmoxer ];
     "proxy" = ps: with ps; [ pillow ];
     "ps4" = ps: with ps; [ ]; # missing inputs: pyps4-2ndscreen
     "pulseaudio_loopback" = ps: with ps; [ pulsectl ];
@@ -658,7 +665,7 @@
     "qwikswitch" = ps: with ps; [ ]; # missing inputs: pyqwikswitch
     "rachio" = ps: with ps; [ aiohttp-cors hass-nabucasa rachiopy ];
     "radarr" = ps: with ps; [ ];
-    "radiotherm" = ps: with ps; [ ]; # missing inputs: radiotherm
+    "radiotherm" = ps: with ps; [ radiotherm ];
     "rainbird" = ps: with ps; [ ]; # missing inputs: pyrainbird
     "raincloud" = ps: with ps; [ ]; # missing inputs: raincloudy
     "rainforest_eagle" = ps: with ps; [ ]; # missing inputs: eagle200_reader uEagle
@@ -679,9 +686,10 @@
     "rest_command" = ps: with ps; [ ];
     "rflink" = ps: with ps; [ ]; # missing inputs: rflink
     "rfxtrx" = ps: with ps; [ ]; # missing inputs: pyRFXtrx
-    "ring" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: ring_doorbell
+    "ring" = ps: with ps; [ ha-ffmpeg ring-doorbell ];
     "ripple" = ps: with ps; [ ]; # missing inputs: python-ripple-api
-    "risco" = ps: with ps; [ ]; # missing inputs: pyrisco
+    "risco" = ps: with ps; [ pyrisco ];
+    "rituals_perfume_genie" = ps: with ps; [ pyrituals ];
     "rmvtransport" = ps: with ps; [ PyRMVtransport ];
     "rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API
     "roku" = ps: with ps; [ ]; # missing inputs: rokuecp
@@ -708,6 +716,7 @@
     "scene" = ps: with ps; [ ];
     "schluter" = ps: with ps; [ ]; # missing inputs: py-schluter
     "scrape" = ps: with ps; [ beautifulsoup4 jsonpath xmltodict ];
+    "screenlogic" = ps: with ps; [ screenlogicpy ];
     "script" = ps: with ps; [ ];
     "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate
     "search" = ps: with ps; [ aiohttp-cors ];
@@ -723,7 +732,7 @@
     "sesame" = ps: with ps; [ ]; # missing inputs: pysesame2
     "seven_segments" = ps: with ps; [ pillow ];
     "seventeentrack" = ps: with ps; [ ]; # missing inputs: py17track
-    "sharkiq" = ps: with ps; [ ]; # missing inputs: sharkiqpy
+    "sharkiq" = ps: with ps; [ sharkiqpy ];
     "shell_command" = ps: with ps; [ ];
     "shelly" = ps: with ps; [ aioshelly ];
     "shiftr" = ps: with ps; [ paho-mqtt ];
@@ -731,39 +740,40 @@
     "shopping_list" = ps: with ps; [ aiohttp-cors ];
     "sht31" = ps: with ps; [ ]; # missing inputs: Adafruit-GPIO Adafruit-SHT31
     "sigfox" = ps: with ps; [ ];
-    "sighthound" = ps: with ps; [ pillow ]; # missing inputs: simplehound
+    "sighthound" = ps: with ps; [ pillow simplehound ];
     "signal_messenger" = ps: with ps; [ ]; # missing inputs: pysignalclirestapi
     "simplepush" = ps: with ps; [ ]; # missing inputs: simplepush
-    "simplisafe" = ps: with ps; [ ]; # missing inputs: simplisafe-python
+    "simplisafe" = ps: with ps; [ simplisafe-python ];
     "simulated" = ps: with ps; [ ];
     "sinch" = ps: with ps; [ ]; # missing inputs: clx-sdk-xms
     "sisyphus" = ps: with ps; [ ]; # missing inputs: sisyphus-control
     "sky_hub" = ps: with ps; [ ]; # missing inputs: pyskyqhub
     "skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
-    "skybell" = ps: with ps; [ ]; # missing inputs: skybellpy
+    "skybell" = ps: with ps; [ skybellpy ];
     "slack" = ps: with ps; [ ]; # missing inputs: slackclient
     "sleepiq" = ps: with ps; [ ]; # missing inputs: sleepyq
     "slide" = ps: with ps; [ ]; # missing inputs: goslide-api
     "sma" = ps: with ps; [ pysma ];
-    "smappee" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pysmappee
+    "smappee" = ps: with ps; [ aiohttp-cors pysmappee ];
     "smart_meter_texas" = ps: with ps; [ ]; # missing inputs: smart-meter-texas
     "smarthab" = ps: with ps; [ ]; # missing inputs: smarthab
     "smartthings" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: pysmartapp pysmartthings
+    "smarttub" = ps: with ps; [ python-smarttub ];
     "smarty" = ps: with ps; [ ]; # missing inputs: pysmarty
     "smhi" = ps: with ps; [ ]; # missing inputs: smhi-pkg
-    "sms" = ps: with ps; [ ]; # missing inputs: python-gammu
+    "sms" = ps: with ps; [ python-gammu ];
     "smtp" = ps: with ps; [ ];
     "snapcast" = ps: with ps; [ snapcast ];
     "snips" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "snmp" = ps: with ps; [ pysnmp ];
     "sochain" = ps: with ps; [ ]; # missing inputs: python-sochain-api
     "socialblade" = ps: with ps; [ ]; # missing inputs: socialbladeclient
-    "solaredge" = ps: with ps; [ stringcase ]; # missing inputs: solaredge
+    "solaredge" = ps: with ps; [ solaredge stringcase ];
     "solaredge_local" = ps: with ps; [ ]; # missing inputs: solaredge-local
     "solarlog" = ps: with ps; [ ]; # missing inputs: sunwatcher
     "solax" = ps: with ps; [ solax ];
     "soma" = ps: with ps; [ pysoma ];
-    "somfy" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymfy
+    "somfy" = ps: with ps; [ aiohttp-cors pymfy ];
     "somfy_mylink" = ps: with ps; [ ]; # missing inputs: somfy-mylink-synergy
     "sonarr" = ps: with ps; [ ]; # missing inputs: sonarr
     "songpal" = ps: with ps; [ ]; # missing inputs: python-songpal
@@ -780,7 +790,7 @@
     "sql" = ps: with ps; [ sqlalchemy ];
     "squeezebox" = ps: with ps; [ pysqueezebox ];
     "srp_energy" = ps: with ps; [ ]; # missing inputs: srpenergy
-    "ssdp" = ps: with ps; [ aiohttp-cors defusedxml netdisco zeroconf ];
+    "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml netdisco zeroconf ];
     "starline" = ps: with ps; [ ]; # missing inputs: starline
     "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank
     "startca" = ps: with ps; [ xmltodict ];
@@ -792,20 +802,20 @@
     "stream" = ps: with ps; [ aiohttp-cors av ];
     "streamlabswater" = ps: with ps; [ ]; # missing inputs: streamlabswater
     "stt" = ps: with ps; [ aiohttp-cors ];
+    "subaru" = ps: with ps; [ subarulink ];
     "suez_water" = ps: with ps; [ ]; # missing inputs: pysuez
     "sun" = ps: with ps; [ ];
     "supervisord" = ps: with ps; [ ];
     "supla" = ps: with ps; [ ]; # missing inputs: asyncpysupla
-    "surepetcare" = ps: with ps; [ ]; # missing inputs: surepy
+    "surepetcare" = ps: with ps; [ surepy ];
     "swiss_hydrological_data" = ps: with ps; [ swisshydrodata ];
     "swiss_public_transport" = ps: with ps; [ python-opendata-transport ];
     "swisscom" = ps: with ps; [ ];
     "switch" = ps: with ps; [ ];
-    "switchbot" = ps: with ps; [ ]; # missing inputs: PySwitchbot
+    "switchbot" = ps: with ps; [ pyswitchbot ];
     "switcher_kis" = ps: with ps; [ aioswitcher ];
     "switchmate" = ps: with ps; [ ]; # missing inputs: pySwitchmate
     "syncthru" = ps: with ps; [ url-normalize ]; # missing inputs: pysyncthru
-    "synology" = ps: with ps; [ ]; # missing inputs: py-synology
     "synology_chat" = ps: with ps; [ ];
     "synology_dsm" = ps: with ps; [ ]; # missing inputs: synologydsm-api
     "synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm
@@ -815,9 +825,9 @@
     "systemmonitor" = ps: with ps; [ psutil ];
     "tado" = ps: with ps; [ python-tado ];
     "tag" = ps: with ps; [ ];
-    "tahoma" = ps: with ps; [ ]; # missing inputs: tahoma-api
+    "tahoma" = ps: with ps; [ tahoma-api ];
     "tank_utility" = ps: with ps; [ ]; # missing inputs: tank_utility
-    "tankerkoenig" = ps: with ps; [ ]; # missing inputs: pytankerkoenig
+    "tankerkoenig" = ps: with ps; [ pytankerkoenig ];
     "tapsaff" = ps: with ps; [ ]; # missing inputs: tapsaff
     "tasmota" = ps: with ps; [ aiohttp-cors hatasmota paho-mqtt ];
     "tautulli" = ps: with ps; [ ]; # missing inputs: pytautulli
@@ -825,7 +835,7 @@
     "ted5000" = ps: with ps; [ xmltodict ];
     "telegram" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot ];
     "telegram_bot" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot ];
-    "tellduslive" = ps: with ps; [ ]; # missing inputs: tellduslive
+    "tellduslive" = ps: with ps; [ tellduslive ];
     "tellstick" = ps: with ps; [ ]; # missing inputs: tellcore-net tellcore-py
     "telnet" = ps: with ps; [ ];
     "temper" = ps: with ps; [ ]; # missing inputs: temperusb
@@ -856,24 +866,25 @@
     "tplink" = ps: with ps; [ pyhs100 ];
     "tplink_lte" = ps: with ps; [ ]; # missing inputs: tp-connected
     "traccar" = ps: with ps; [ aiohttp-cors stringcase ]; # missing inputs: pytraccar
+    "trace" = ps: with ps; [ ];
     "trackr" = ps: with ps; [ ]; # missing inputs: pytrackr
     "tradfri" = ps: with ps; [ ]; # missing inputs: pytradfri[async]
-    "trafikverket_train" = ps: with ps; [ ]; # missing inputs: pytrafikverket
-    "trafikverket_weatherstation" = ps: with ps; [ ]; # missing inputs: pytrafikverket
+    "trafikverket_train" = ps: with ps; [ pytrafikverket ];
+    "trafikverket_weatherstation" = ps: with ps; [ pytrafikverket ];
     "transmission" = ps: with ps; [ transmissionrpc ];
     "transport_nsw" = ps: with ps; [ ]; # missing inputs: PyTransportNSW
     "travisci" = ps: with ps; [ ]; # missing inputs: TravisPy
     "trend" = ps: with ps; [ numpy ];
     "tts" = ps: with ps; [ aiohttp-cors mutagen ];
-    "tuya" = ps: with ps; [ ]; # missing inputs: tuyaha
-    "twentemilieu" = ps: with ps; [ ]; # missing inputs: twentemilieu
+    "tuya" = ps: with ps; [ tuyaha ];
+    "twentemilieu" = ps: with ps; [ twentemilieu ];
     "twilio" = ps: with ps; [ aiohttp-cors twilio ];
     "twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
     "twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
-    "twinkly" = ps: with ps; [ ]; # missing inputs: twinkly-client
-    "twitch" = ps: with ps; [ ]; # missing inputs: python-twitch-client
-    "twitter" = ps: with ps; [ ]; # missing inputs: TwitterAPI
-    "ubus" = ps: with ps; [ ];
+    "twinkly" = ps: with ps; [ twinkly-client ];
+    "twitch" = ps: with ps; [ python-twitch-client ];
+    "twitter" = ps: with ps; [ twitterapi ];
+    "ubus" = ps: with ps; [ openwrt-ubus-rpc ];
     "ue_smart_radio" = ps: with ps; [ ];
     "uk_transport" = ps: with ps; [ ];
     "unifi" = ps: with ps; [ aiounifi ];
@@ -894,24 +905,24 @@
     "vacuum" = ps: with ps; [ ];
     "vallox" = ps: with ps; [ ]; # missing inputs: vallox-websocket-api
     "vasttrafik" = ps: with ps; [ ]; # missing inputs: vtjp
-    "velbus" = ps: with ps; [ ]; # missing inputs: python-velbus
+    "velbus" = ps: with ps; [ python-velbus ];
     "velux" = ps: with ps; [ pyvlx ];
-    "venstar" = ps: with ps; [ ]; # missing inputs: venstarcolortouch
+    "venstar" = ps: with ps; [ venstarcolortouch ];
     "vera" = ps: with ps; [ pyvera ];
-    "verisure" = ps: with ps; [ jsonpath vsure ];
+    "verisure" = ps: with ps; [ vsure ];
     "versasense" = ps: with ps; [ ]; # missing inputs: pyversasense
     "version" = ps: with ps; [ pyhaversion ];
     "vesync" = ps: with ps; [ pyvesync ];
     "viaggiatreno" = ps: with ps; [ ];
-    "vicare" = ps: with ps; [ ]; # missing inputs: PyViCare
+    "vicare" = ps: with ps; [ pyvicare ];
     "vilfo" = ps: with ps; [ ]; # missing inputs: vilfo-api-client
     "vivotek" = ps: with ps; [ ]; # missing inputs: libpyvivotek
-    "vizio" = ps: with ps; [ ]; # missing inputs: pyvizio
+    "vizio" = ps: with ps; [ pyvizio ];
     "vlc" = ps: with ps; [ python-vlc ];
     "vlc_telnet" = ps: with ps; [ ]; # missing inputs: python-telnet-vlc
     "voicerss" = ps: with ps; [ ];
     "volkszaehler" = ps: with ps; [ volkszaehler ];
-    "volumio" = ps: with ps; [ ]; # missing inputs: pyvolumio
+    "volumio" = ps: with ps; [ pyvolumio ];
     "volvooncall" = ps: with ps; [ ]; # missing inputs: volvooncall
     "vultr" = ps: with ps; [ vultr ];
     "w800rf32" = ps: with ps; [ ]; # missing inputs: pyW800rf32
@@ -924,11 +935,11 @@
     "waze_travel_time" = ps: with ps; [ WazeRouteCalculator ];
     "weather" = ps: with ps; [ ];
     "webhook" = ps: with ps; [ aiohttp-cors ];
-    "webostv" = ps: with ps; [ ]; # missing inputs: aiopylgtv
+    "webostv" = ps: with ps; [ aiopylgtv ];
     "websocket_api" = ps: with ps; [ aiohttp-cors ];
     "wemo" = ps: with ps; [ ]; # missing inputs: pywemo
     "whois" = ps: with ps; [ python-whois ];
-    "wiffi" = ps: with ps; [ ]; # missing inputs: wiffi
+    "wiffi" = ps: with ps; [ wiffi ];
     "wilight" = ps: with ps; [ pywilight ];
     "wink" = ps: with ps; [ aiohttp-cors pubnubsub-handler python-wink ];
     "wirelesstag" = ps: with ps; [ ]; # missing inputs: wirelesstagpy
@@ -946,14 +957,13 @@
     "xbox" = ps: with ps; [ aiohttp-cors ]; # missing inputs: xbox-webapi
     "xbox_live" = ps: with ps; [ xboxapi ];
     "xeoma" = ps: with ps; [ pyxeoma ];
-    "xfinity" = ps: with ps; [ ]; # missing inputs: xfinity-gateway
     "xiaomi" = ps: with ps; [ ha-ffmpeg ];
-    "xiaomi_aqara" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: PyXiaomiGateway
+    "xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors netdisco zeroconf ];
     "xiaomi_miio" = ps: with ps; [ construct python-miio ];
-    "xiaomi_tv" = ps: with ps; [ ]; # missing inputs: pymitv
+    "xiaomi_tv" = ps: with ps; [ pymitv ];
     "xmpp" = ps: with ps; [ slixmpp ];
     "xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client
-    "yale_smart_alarm" = ps: with ps; [ ]; # missing inputs: yalesmartalarmclient
+    "yale_smart_alarm" = ps: with ps; [ yalesmartalarmclient ];
     "yamaha" = ps: with ps; [ rxv ];
     "yamaha_musiccast" = ps: with ps; [ ]; # missing inputs: pymusiccast
     "yandex_transport" = ps: with ps; [ ]; # missing inputs: aioymaps
@@ -967,7 +977,7 @@
     "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
     "zerproc" = ps: with ps; [ pyzerproc ];
     "zestimate" = ps: with ps; [ xmltodict ];
-    "zha" = ps: with ps; [ bellows pyserial-asyncio pyserial zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
+    "zha" = ps: with ps; [ aiohttp-cors bellows pyserial-asyncio pyserial zeroconf zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
     "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
     "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
     "zodiac" = ps: with ps; [ ];
diff --git a/nixpkgs/pkgs/servers/home-assistant/default.nix b/nixpkgs/pkgs/servers/home-assistant/default.nix
index fae857fda5dc..0c58caa29228 100644
--- a/nixpkgs/pkgs/servers/home-assistant/default.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/default.nix
@@ -1,4 +1,8 @@
-{ stdenv, nixosTests, lib, fetchFromGitHub, python3
+{ stdenv
+, lib
+, fetchFromGitHub
+, python3
+, nixosTests
 
 # Look up dependencies of specified components in component-packages.nix
 , extraComponents ? [ ]
@@ -9,8 +13,7 @@
 # Override Python packages using
 # self: super: { pkg = super.pkg.overridePythonAttrs (oldAttrs: { ... }); }
 # Applied after defaultOverrides
-, packageOverrides ? self: super: {
-}
+, packageOverrides ? self: super: {}
 
 # Skip pip install of required packages on startup
 , skipPip ? true }:
@@ -24,6 +27,41 @@ let
     (mkOverride "astral" "1.10.1"
       "d2a67243c4503131c856cafb1b1276de52a86e5b8a1d507b7e08bee51cb67bf1")
 
+    # Pinned due to API changes in iaqualink>=2.0, remove after
+    # https://github.com/home-assistant/core/pull/48137 was merged
+    (self: super: {
+      iaqualink = super.iaqualink.overridePythonAttrs (oldAttrs: rec {
+        version = "0.3.4";
+        src = fetchFromGitHub {
+          owner = "flz";
+          repo = "iaqualink-py";
+          rev = "v${version}";
+          sha256 = "16mn6nd9x3hm6j6da99qhwbqs95hh8wx21r1h1m9csl76z77n9lh";
+        };
+        checkInputs = oldAttrs.checkInputs ++ [ python3.pkgs.asynctest ];
+      });
+    })
+
+    # Pinned due to API changes in pylilterbot>=2021.3.0
+    (self: super: {
+      pylitterbot = super.pylitterbot.overridePythonAttrs (oldAttrs: rec {
+        version = "2021.2.8";
+        src = fetchFromGitHub {
+          owner = "natekspencer";
+          repo = "pylitterbot";
+          rev = version;
+          sha256 = "142lhijm51v11cd0lhcfdnjdd143jxi2hjsrqdq0rrbbnmj6mymp";
+        };
+        # had no tests before 2021.3.0
+        doCheck = false;
+      });
+    })
+
+    # Pinned due to bug in ring-doorbell 0.7.0
+    # https://github.com/tchellomello/python-ring-doorbell/issues/240
+    (mkOverride "ring-doorbell" "0.6.2"
+      "fbd537722a27b3b854c26506d894b7399bb8dc57ff36083285971227a2d46560")
+
     # hass-frontend does not exist in python3.pkgs
     (self: super: {
       hass-frontend = self.callPackage ./frontend.nix { };
@@ -57,14 +95,14 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2021.2.3";
+  hassVersion = "2021.4.0";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
   version = assert (componentPackages.version == hassVersion); hassVersion;
 
   # check REQUIRED_PYTHON_VER in homeassistant/const.py
-  disabled = pythonOlder "3.7.1";
+  disabled = pythonOlder "3.8";
 
   # don't try and fail to strip 6600+ python files, it takes minutes!
   dontStrip = true;
@@ -76,22 +114,22 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    sha256 = "0s1jcd94wwvmvzq86w8s9dwfvnmjs9l661z9pc6kwgagggjjgd8c";
+    sha256 = "1gkbkyxqsw3isdyskzi0ib07fgqvirnr20jkhrz86vl0k9ix8hwf";
   };
 
   # leave this in, so users don't have to constantly update their downstream patch handling
-  patches = [];
+  patches = [
+  ];
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "attrs==19.3.0" "attrs>=19.3.0" \
-      --replace "bcrypt==3.1.7" "bcrypt>=3.1.7" \
-      --replace "cryptography==3.2" "cryptography" \
+      --replace "awesomeversion==21.2.3" "awesomeversion" \
+      --replace "bcrypt==3.1.7" "bcrypt" \
+      --replace "cryptography==3.3.2" "cryptography" \
       --replace "pip>=8.0.3,<20.3" "pip" \
-      --replace "pytz>=2020.5" "pytz>=2020.4" \
+      --replace "pytz>=2021.1" "pytz" \
       --replace "pyyaml==5.4.1" "pyyaml" \
-      --replace "requests==2.25.1" "requests>=2.25.0" \
-      --replace "ruamel.yaml==0.15.100" "ruamel.yaml>=0.15.100"
+      --replace "ruamel.yaml==0.15.100" "ruamel.yaml"
     substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"'
   '';
 
@@ -121,6 +159,8 @@ in with py.pkgs; buildPythonApplication rec {
     yarl
   ] ++ componentBuildInputs ++ extraBuildInputs;
 
+  makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";
+
   # upstream only tests on Linux, so do we.
   doCheck = stdenv.isLinux;
 
@@ -128,86 +168,246 @@ in with py.pkgs; buildPythonApplication rec {
     # test infrastructure
     asynctest
     pytest-aiohttp
+    pytest-rerunfailures
     pytest-xdist
     pytestCheckHook
     requests-mock
     # component dependencies
     pyotp
+    respx
   ] ++ lib.concatMap (component: getPackages component py.pkgs) componentTests;
 
-  # We cannot test all components, since they'd introduce lots of dependencies, some of which are unpackaged,
-  # but we should test very common stuff, like what's in `default_config`.
-  # https://github.com/home-assistant/core/commits/dev/homeassistant/components/default_config/manifest.json
+  # We can reasonably test components that don't communicate with any network
+  # services. Before adding new components to this list make sure we have all
+  # its dependencies packaged and listed in ./component-packages.nix.
   componentTests = [
+    "accuweather"
+    "airly"
+    "analytics"
+    "alert"
     "api"
+    "auth"
     "automation"
+    "axis"
+    "bayesian"
+    "binary_sensor"
+    "caldav"
+    "calendar"
+    "camera"
+    "cast"
+    "climate"
+    "cloud"
+    "command_line"
     "config"
     "configurator"
+    "conversation"
     "counter"
+    "cover"
+    "deconz"
     "default_config"
     "demo"
+    "derivative"
+    "device_automation"
+    "device_sun_light_trigger"
+    "device_tracker"
+    "devolo_home_control"
     "dhcp"
     "discovery"
+    "emulated_hue"
+    "esphome"
+    "fan"
+    "faa_delays"
+    "ffmpeg"
+    "file"
+    "filesize"
+    "filter"
+    "flux"
+    "folder"
+    "folder_watcher"
+    "freebox"
+    "fritzbox"
+    "fritzbox_callmonitor"
     "frontend"
+    "generic"
+    "generic_thermostat"
+    "geo_json_events"
+    "geo_location"
     "group"
+    "hddtemp"
     "history"
+    "history_stats"
+    "home_plus_control"
+    "homekit"
+    "homekit_controller"
     "homeassistant"
+    "homematic"
+    "html5"
     "http"
     "hue"
+    "iaqualink"
+    "ifttt"
+    "image"
+    "image_processing"
+    "influxdb"
     "input_boolean"
     "input_datetime"
     "input_text"
     "input_number"
     "input_select"
+    "intent"
+    "intent_script"
+    "ipp"
+    "kmtronic"
+    "light"
+    "litterrobot"
+    "local_file"
+    "local_ip"
+    "lock"
     "logbook"
+    "logentries"
     "logger"
+    "lovelace"
+    "manual"
+    "manual_mqtt"
+    "mazda"
+    "media_player"
     "media_source"
+    "met"
+    "minecraft_server"
     "mobile_app"
+    "modbus"
+    "moon"
+    "mqtt"
+    "mqtt_eventstream"
+    "mqtt_json"
+    "mqtt_room"
+    "mqtt_statestream"
+    "mullvad"
+    "notify"
+    "notion"
+    "number"
+    "ozw"
+    "panel_custom"
+    "panel_iframe"
+    "persistent_notification"
     "person"
+    "plaato"
+    "prometheus"
+    "proximity"
+    "push"
+    "python_script"
+    "random"
+    "recorder"
+    "rest"
+    "rest_command"
+    "rituals_perfume_genie"
+    "rmvtransport"
+    "rss_feed_template"
+    "safe_mode"
     "scene"
+    "screenlogic"
     "script"
+    "search"
     "shell_command"
+    "shopping_list"
+    "simplisafe"
+    "simulated"
+    "sma"
+    "sensor"
+    "smarttub"
+    "smtp"
+    "smappee"
+    "solaredge"
+    "sonos"
+    "spotify"
+    "sql"
     "ssdp"
+    "stream"
+    "subaru"
     "sun"
+    "switch"
     "system_health"
     "system_log"
     "tag"
+    "tasmota"
+    "tcp"
+    "template"
+    "threshold"
+    "time_date"
     "timer"
+    "tod"
+    "trace"
+    "tts"
+    "universal"
+    "updater"
+    "upnp"
+    "uptime"
+    "vacuum"
+    "verisure"
+    "weather"
     "webhook"
     "websocket_api"
+    "wled"
+    "workday"
+    "worldclock"
     "zeroconf"
+    "zha"
     "zone"
     "zwave"
   ];
 
   pytestFlagsArray = [
     # limit amout of runners to reduce race conditions
-    "-n 2"
+    "-n auto"
+    # retry racy tests that end in "RuntimeError: Event loop is closed"
+    "--reruns 3"
+    "--only-rerun RuntimeError"
     # assign tests grouped by file to workers
     "--dist loadfile"
-    # don't bulk test all components
-    "--ignore tests/components"
-    # pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0
-    "--ignore tests/auth/mfa_modules/test_notify.py"
+    # tests are located in tests/
     "tests"
+    # screenlogic/test_config_flow.py: Tries to send out UDP broadcasts
+    "--deselect tests/components/screenlogic/test_config_flow.py::test_form_cannot_connect"
+    # dynamically add packages required for component tests
   ] ++ map (component: "tests/components/" + component) componentTests;
 
+  disabledTestPaths = [
+    # don't bulk test all components
+    "tests/components"
+    # pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0
+    "tests/auth/mfa_modules/test_notify.py"
+  ];
+
   disabledTests = [
     # AssertionError: assert 1 == 0
+    "test_error_posted_as_event"
     "test_merge"
     # ModuleNotFoundError: No module named 'pyqwikswitch'
     "test_merge_id_schema"
     # keyring.errors.NoKeyringError: No recommended backend was available.
     "test_secrets_from_unrelated_fails"
     "test_secrets_credstash"
+    # generic/test_camera.py: AssertionError: 500 == 200
+    "test_fetching_without_verify_ssl"
+    "test_fetching_url_with_verify_ssl"
+    # util/test_package.py: AssertionError on package.is_installed('homeassistant>=999.999.999')
+    "test_check_package_version_does_not_match"
   ];
 
   preCheck = ''
+    export HOME="$TEMPDIR"
+
     # the tests require the existance of a media dir
     mkdir /build/media
-  '';
 
-  makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";
+    # error out when component test directory is missing, otherwise hidden by xdist execution :(
+    for component in ${lib.concatStringsSep " " (map lib.escapeShellArg componentTests)}; do
+      test -d "tests/components/$component" || {
+        >2& echo "ERROR: Tests for component '$component' were enabled, but they do not exist!"
+        exit 1
+      }
+    done
+  '';
 
   passthru = {
     inherit (py.pkgs) hass-frontend;
@@ -220,6 +420,7 @@ in with py.pkgs; buildPythonApplication rec {
     homepage = "https://home-assistant.io/";
     description = "Open source home automation that puts local control and privacy first";
     license = licenses.asl20;
-    maintainers = with maintainers; [ dotlambda globin mic92 hexa ];
+    maintainers = teams.home-assistant.members;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/home-assistant/frontend.nix b/nixpkgs/pkgs/servers/home-assistant/frontend.nix
index 812f4d096cef..72a1ea13e0d7 100644
--- a/nixpkgs/pkgs/servers/home-assistant/frontend.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/frontend.nix
@@ -4,11 +4,11 @@ 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 = "20210127.7";
+  version = "20210407.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-N+n1DI1oZ/j+GydH+Du21zTNA6leW4YBri7cAMvAac4=";
+    sha256 = "sha256-7kgL6Ixlc1OZ+3sUAuvJd7vgY6FBgPFEKi6xhq7fiBc=";
   };
 
   # there is nothing to strip in this package
@@ -21,6 +21,6 @@ buildPythonPackage rec {
     description = "Polymer frontend for Home Assistant";
     homepage = "https://github.com/home-assistant/home-assistant-polymer";
     license = licenses.asl20;
-    maintainers = with maintainers; [ dotlambda globin ];
+    maintainers = teams.home-assistant.members;
   };
 }
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 23a8d34a6329..c8cb13022e26 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
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   pname = "mod_auth_mellon";
-  version = "0.13.1";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
-    owner = "UNINETT";
+    owner = "latchset";
     repo = "mod_auth_mellon";
     rev = "v${version}";
-    sha256 = "16b43y5a5p8g1287x04rv923230cy8dfs2j18cx6208n4bv4dvnk";
+    sha256 = "03bkvqkmqq72ff1a8cpvpcxngnlz1p6433y2fkkynpjfr19cna2s";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/fixdeps.patch b/nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/fixdeps.patch
index 63b69fb142f6..4f814ad60368 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/fixdeps.patch
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/fixdeps.patch
@@ -1,8 +1,23 @@
+diff --git a/Makefile.in b/Makefile.in
+index 1388c91..ab28982 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -42,7 +42,7 @@ DISTFILES=$(SRC) \
+ all:	mod_auth_mellon.la
+ 
+ mod_auth_mellon.la: $(SRC) auth_mellon.h auth_mellon_compat.h
+-	@APXS2@ -Wc,"-std=c99 @MELLON_CFLAGS@ @OPENSSL_CFLAGS@ @LASSO_CFLAGS@ @CURL_CFLAGS@ @GLIB_CFLAGS@ @CFLAGS@" -Wl,"@OPENSSL_LIBS@ @LASSO_LIBS@ @CURL_LIBS@ @GLIB_LIBS@" -Wc,-Wall -Wc,-g -c $(SRC)
++	@APXS2@ -Wc,"-std=c99 @MELLON_CFLAGS@ @OPENSSL_CFLAGS@ @LASSO_CFLAGS@ @CURL_CFLAGS@ @GLIB_CFLAGS@ @CFLAGS@ @LIBXML2_CFLAGS@ @XMLSEC_CFLAGS@ @CFLAGS@" -Wl,"@OPENSSL_LIBS@ @LASSO_LIBS@ @CURL_LIBS@ @GLIB_LIBS@ @LIBXML2_LIBS@ @XMLSEC_LIBS@" -Wc,-Wall -Wc,-g -c $(SRC)
+ 
+ 
+ # Building configure (for distribution)
+diff --git a/configure.ac b/configure.ac
+index 421b952..e62768e 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -74,6 +74,16 @@ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.12])
- AC_SUBST(GLIB_CFLAGS)
- AC_SUBST(GLIB_LIBS)
+@@ -91,6 +91,16 @@ AC_SUBST(GLIB_LIBS)
+ 
+ AC_SUBST(MELLON_CFLAGS)
  
 +#include <libxml/uri.h>
 +PKG_CHECK_MODULES(LIBXML2, libxml-2.0)
@@ -17,14 +32,3 @@
  # Test to see if we can include lasso/utils.h
  # AC_CHECK_HEADER won't work correctly unless we specifiy the include directories
  # found in the LASSO_CFLAGS. Save and restore CFLAGS and CPPFLAGS.
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -25,7 +25,7 @@
- all:	mod_auth_mellon.la
- 
- mod_auth_mellon.la: $(SRC) auth_mellon.h auth_mellon_compat.h
--	@APXS2@ -Wc,"-std=c99 @OPENSSL_CFLAGS@ @LASSO_CFLAGS@ @CURL_CFLAGS@ @GLIB_CFLAGS@ @CFLAGS@" -Wl,"@OPENSSL_LIBS@ @LASSO_LIBS@ @CURL_LIBS@ @GLIB_LIBS@" -Wc,-Wall -Wc,-g -c $(SRC)
-+	@APXS2@ -Wc,"-std=c99 @OPENSSL_CFLAGS@ @LASSO_CFLAGS@ @CURL_CFLAGS@ @GLIB_CFLAGS@ @CFLAGS@ @LIBXML2_CFLAGS@ @XMLSEC_CFLAGS@ @CFLAGS@" -Wl,"@OPENSSL_LIBS@ @LASSO_LIBS@ @CURL_LIBS@ @GLIB_LIBS@ @LIBXML2_LIBS@ @XMLSEC_LIBS@" -Wc,-Wall -Wc,-g -c $(SRC)
- 
- 
- # Building configure (for distribution)
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_evasive/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_evasive/default.nix
deleted file mode 100644
index daac48398538..000000000000
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_evasive/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, stdenv, fetchurl, apacheHttpd }:
-
-if lib.versionAtLeast (lib.getVersion apacheHttpd) "2.4" then
-
-  throw "mod_evasive is not supported on Apache httpd 2.4"
-
-else
-
-stdenv.mkDerivation {
-  name = "mod_evasive-1.10.1";
-
-  src = fetchurl {
-    url = "http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz";
-    sha256 = "0rsnx50rjv6xygbp9r0gyss7xqdkcb0hy3wh9949jf1im8wm3i07";
-  };
-
-  buildInputs = [ apacheHttpd ];
-
-  buildPhase = ''
-    export APACHE_LIBEXECDIR=$out/modules
-    export makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules)
-    apxs -ca mod_evasive20.c
-  '';
-
-  installPhase = ''
-    mkdir -p $out/modules
-    cp .libs/mod_evasive20.so $out/modules
-  '';
-
-  meta = {
-    homepage = "http://www.zdziarski.com/blog/?page_id=442";
-    description = "Evasive maneuvers module for Apache to provide evasive action in the event of an HTTP DoS or DDoS attack or brute force attack";
-    platforms = lib.platforms.linux;
-  };
-}
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 04746d678c52..2762f636f592 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_perl/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_perl/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, apacheHttpd, perl }:
 
 stdenv.mkDerivation rec {
-  name = "mod_perl-2.0.10";
+  pname = "mod_perl";
+  version = "2.0.11";
 
   src = fetchurl {
-    url = "mirror://apache/perl/${name}.tar.gz";
-    sha256 = "0r1bhzwl5gr0202r6448943hjxsickzn55kdmb7dzad39vnq7kyi";
+    url = "mirror://apache/perl/${pname}-${version}.tar.gz";
+    sha256 = "0x3gq4nz96y202cymgrf56n8spm7bffkd1p74dh9q3zrrlc9wana";
   };
 
   buildInputs = [ apacheHttpd perl ];
diff --git a/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix b/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix
index 72c6286af3f2..c79a9fe3fd27 100644
--- a/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix
+++ b/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix
@@ -5,7 +5,7 @@
 , fetchurl
 , fuse
 , libevent
-, lzma
+, xz
 , openssl
 , pkg-config
 , systemd
@@ -15,15 +15,15 @@
 
 stdenv.mkDerivation rec {
   pname = "apt-cacher-ng";
-  version = "3.6";
+  version = "3.6.1";
 
   src = fetchurl {
     url = "http://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/apt-cacher-ng_${version}.orig.tar.xz";
-    sha256 = "sha256-/4jA5acNpHpdQ9kb/1A9thtoUCqsYFxSCr4JLmFYdt4=";
+    sha256 = "sha256-avyjp4KH7l6OZxnMVDv1U/MIWcadqyPPtnLYzEYkqlA=";
   };
 
   nativeBuildInputs = [ cmake doxygen pkg-config ];
-  buildInputs = [ bzip2 fuse libevent lzma openssl systemd tcp_wrappers zlib ];
+  buildInputs = [ bzip2 fuse libevent xz openssl systemd tcp_wrappers zlib ];
 
   meta = with lib; {
     description = "A caching proxy specialized for linux distribution files";
diff --git a/nixpkgs/pkgs/servers/http/darkhttpd/default.nix b/nixpkgs/pkgs/servers/http/darkhttpd/default.nix
index 49097fe2bfac..56bf5cd5b74c 100644
--- a/nixpkgs/pkgs/servers/http/darkhttpd/default.nix
+++ b/nixpkgs/pkgs/servers/http/darkhttpd/default.nix
@@ -1,20 +1,27 @@
-{ lib, stdenv, fetchurl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
 
 stdenv.mkDerivation rec {
   pname = "darkhttpd";
-  version = "1.12";
+  version = "1.13";
 
-  src = fetchurl {
-    url = "https://unix4lyfe.org/darkhttpd/${pname}-${version}.tar.bz2";
-    sha256 = "0185wlyx4iqiwfigp1zvql14zw7gxfacncii3d15yaxk4av1f155";
+  src = fetchFromGitHub {
+    owner = "emikulic";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0w11xq160q9yyffv4mw9ncp1n0dl50d9plmwxb0yijaaxls9i4sk";
   };
 
   enableParallelBuilding = true;
 
   installPhase = ''
+    runHook preInstall
     install -Dm555 -t $out/bin darkhttpd
-    install -Dm444 -t $out/share/doc/${pname} README
+    install -Dm444 -t $out/share/doc/${pname} README.md
     head -n 18 darkhttpd.c > $out/share/doc/${pname}/LICENSE
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/http/envoy/default.nix b/nixpkgs/pkgs/servers/http/envoy/default.nix
index 3a4535281513..e6ecbb868603 100644
--- a/nixpkgs/pkgs/servers/http/envoy/default.nix
+++ b/nixpkgs/pkgs/servers/http/envoy/default.nix
@@ -6,6 +6,7 @@
 , go
 , ninja
 , python3
+, nixosTests
 }:
 
 let
@@ -110,6 +111,11 @@ buildBazelPackage rec {
     "--cxxopt=-Wno-uninitialized"
   ];
 
+  passthru.tests = {
+    # No tests for Envoy itself (yet), but it's tested as a core component of Pomerium.
+    inherit (nixosTests) pomerium;
+  };
+
   meta = with lib; {
     homepage = "https://envoyproxy.io";
     description = "Cloud-native edge and service proxy";
diff --git a/nixpkgs/pkgs/servers/http/gitlab-pages/default.nix b/nixpkgs/pkgs/servers/http/gitlab-pages/default.nix
index c5ca1bf20a74..920a32999296 100644
--- a/nixpkgs/pkgs/servers/http/gitlab-pages/default.nix
+++ b/nixpkgs/pkgs/servers/http/gitlab-pages/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gitlab-pages";
-  version = "1.34.0";
+  version = "1.35.0";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    sha256 = "sha256-bJ9BQbAe35z5cIw0HhFjM6arWf1Tdy4gRipAHywxZZk=";
+    sha256 = "sha256-5AkzbOutBXy59XvMwfyH6A8ETwjP2QokG/Rz31/nCpk=";
   };
 
-  vendorSha256 = "sha256-amPL0gzvqsacj7+UNJeZOQbeiBESUttbtPHxLpDykRI=";
+  vendorSha256 = "sha256-g8FDWpZmbZSkJAzoEiI8/JZLTTgG7uJ4sS35axaEXLY=";
   subPackages = [ "." ];
   doCheck = false; # Broken
 
diff --git a/nixpkgs/pkgs/servers/http/jboss/default.nix b/nixpkgs/pkgs/servers/http/jboss/default.nix
index ba89d19db34b..fda57cb9a549 100644
--- a/nixpkgs/pkgs/servers/http/jboss/default.nix
+++ b/nixpkgs/pkgs/servers/http/jboss/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
     sha256 = "1bdjw0ib9qr498vpfbg8klqw6rl11vbz7vwn6gp1r5gpqkd3zzc8";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
 
diff --git a/nixpkgs/pkgs/servers/http/jetty/default.nix b/nixpkgs/pkgs/servers/http/jetty/default.nix
index d95740b6d153..1a43f2592823 100644
--- a/nixpkgs/pkgs/servers/http/jetty/default.nix
+++ b/nixpkgs/pkgs/servers/http/jetty/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "jetty";
-  version = "9.4.36.v20210114";
+  version = "9.4.37.v20210219";
   src = fetchurl {
     url = "https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${version}/jetty-distribution-${version}.tar.gz";
-    sha256 = "1bsqxzjcdgdg2qdgc64pvrimkn9j2di2s3prlgdpbwi566744q54";
+    sha256 = "sha256-Jyg0cQBnwYtcVJnr2uWwE/9yC3wq+CLTTGKtv3BsZs8=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/servers/http/nginx/generic.nix b/nixpkgs/pkgs/servers/http/nginx/generic.nix
index 251f099f7d96..d249d47a2150 100644
--- a/nixpkgs/pkgs/servers/http/nginx/generic.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/generic.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl, fetchpatch, openssl, zlib, pcre, libxml2, libxslt
+
 , nixosTests
 , substituteAll, gd, geoip, perl
 , withDebug ? false
@@ -55,7 +56,6 @@ stdenv.mkDerivation {
     "--with-http_realip_module"
     "--with-http_addition_module"
     "--with-http_xslt_module"
-    "--with-http_geoip_module"
     "--with-http_sub_module"
     "--with-http_dav_module"
     "--with-http_flv_module"
@@ -81,7 +81,6 @@ stdenv.mkDerivation {
     "--with-debug"
   ] ++ optionals withStream [
     "--with-stream"
-    "--with-stream_geoip_module"
     "--with-stream_realip_module"
     "--with-stream_ssl_module"
     "--with-stream_ssl_preread_module"
@@ -94,6 +93,8 @@ stdenv.mkDerivation {
     "--with-perl_modules_path=lib/perl5"
   ]
     ++ optional (gd != null) "--with-http_image_filter_module"
+    ++ optional (geoip != null) "--with-http_geoip_module"
+    ++ optional (withStream && geoip != null) "--with-stream_geoip_module"
     ++ optional (with stdenv.hostPlatform; isLinux || isFreeBSD) "--with-file-aio"
     ++ configureFlags
     ++ map (mod: "--add-module=${mod.src}") modules;
diff --git a/nixpkgs/pkgs/servers/http/nginx/mainline.nix b/nixpkgs/pkgs/servers/http/nginx/mainline.nix
index cadc1064ac04..0409f6a26ea4 100644
--- a/nixpkgs/pkgs/servers/http/nginx/mainline.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix args {
-  version = "1.19.6";
-  sha256 = "1d9kzks8x1226prjbpdin4dz93fjnv304zlqybfqachx5fh9a4di";
+  version = "1.19.9";
+  sha256 = "0hfqqyfgqa6wqazmb3d434nb3r5p8szfisa0m6nfh9lqdbqdyd9f";
 }
diff --git a/nixpkgs/pkgs/servers/http/nix-binary-cache/default.nix b/nixpkgs/pkgs/servers/http/nix-binary-cache/default.nix
index a174d4dcb1a2..653233239627 100644
--- a/nixpkgs/pkgs/servers/http/nix-binary-cache/default.nix
+++ b/nixpkgs/pkgs/servers/http/nix-binary-cache/default.nix
@@ -1,6 +1,6 @@
 {lib, stdenv
 , coreutils, findutils, nix, xz, bzip2, gnused, gnugrep, openssl
-, lighttpd, iproute }:
+, lighttpd, iproute2 }:
 stdenv.mkDerivation rec {
   version = "2014-06-29-1";
   pname = "nix-binary-cache";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
       --replace @gnugrep@ "${gnugrep}/bin" \
       --replace @openssl@ "${openssl.bin}/bin" \
       --replace @lighttpd@ "${lighttpd}/sbin" \
-      --replace @iproute@ "${iproute}/sbin" \
+      --replace @iproute@ "${iproute2}/sbin" \
       --replace "xXxXx" "xXxXx"
 
     chmod a+x "$out/bin/nix-binary-cache.cgi"
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
       --replace @gnugrep@ "${gnugrep}/bin" \
       --replace @openssl@ "${openssl.bin}/bin" \
       --replace @lighttpd@ "${lighttpd}/sbin" \
-      --replace @iproute@ "${iproute}/sbin" \
+      --replace @iproute@ "${iproute2}/sbin" \
       --replace "xXxXx" "xXxXx"
 
     chmod a+x "$out/bin/nix-binary-cache-start"
diff --git a/nixpkgs/pkgs/servers/http/pomerium/default.nix b/nixpkgs/pkgs/servers/http/pomerium/default.nix
new file mode 100644
index 000000000000..0605a12eca47
--- /dev/null
+++ b/nixpkgs/pkgs/servers/http/pomerium/default.nix
@@ -0,0 +1,80 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, envoy
+, zip
+, nixosTests
+}:
+
+let
+  inherit (lib) concatStringsSep mapAttrsToList;
+in
+buildGoModule rec {
+  pname = "pomerium";
+  version = "0.13.3";
+  src = fetchFromGitHub {
+    owner = "pomerium";
+    repo = "pomerium";
+    rev = "v${version}";
+    hash = "sha256-g0w1aIHvf2rJANvGWHeUxdnyCDsvy/PQ9Kp8nDdT/0w=";
+  };
+
+  vendorSha256 = "sha256-grihU85OcGyf9/KKrv87xZonX5r+Z1oHQTf84Ya61fg=";
+  subPackages = [
+    "cmd/pomerium"
+    "cmd/pomerium-cli"
+  ];
+
+  buildFlagsArray = let
+    # Set a variety of useful meta variables for stamping the build with.
+    setVars = {
+      Version = "v${version}";
+      BuildMeta = "nixpkgs";
+      ProjectName = "pomerium";
+      ProjectURL = "github.com/pomerium/pomerium";
+    };
+    varFlags = concatStringsSep " " (mapAttrsToList (name: value: "-X github.com/pomerium/pomerium/internal/version.${name}=${value}") setVars);
+  in [
+    "-ldflags=${varFlags}"
+  ];
+
+  nativeBuildInputs = [
+    zip
+  ];
+
+  # Pomerium expects to have envoy append to it in a zip.
+  # We use a store-only (-0) zip, so that the Nix scanner can find any store references we had in the envoy binary.
+  postBuild = ''
+    # Append Envoy
+    pushd $NIX_BUILD_TOP
+    mkdir -p envoy
+    cd envoy
+    cp ${envoy}/bin/envoy envoy
+    zip -0 envoy.zip envoy
+    popd
+
+    mv $GOPATH/bin/pomerium $GOPATH/bin/pomerium.old
+    cat $GOPATH/bin/pomerium.old $NIX_BUILD_TOP/envoy/envoy.zip >$GOPATH/bin/pomerium
+    zip --adjust-sfx $GOPATH/bin/pomerium
+  '';
+
+  # We also need to set dontStrip to avoid having the envoy ZIP stripped off the end.
+  dontStrip = true;
+
+  installPhase = ''
+    install -Dm0755 $GOPATH/bin/pomerium $out/bin/pomerium
+    install -Dm0755 $GOPATH/bin/pomerium-cli $out/bin/pomerium-cli
+  '';
+
+  passthru.tests = {
+    inherit (nixosTests) pomerium;
+  };
+
+  meta = with lib; {
+    homepage = "https://pomerium.io";
+    description = "Authenticating reverse proxy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lukegb ];
+    platforms = [ "x86_64-linux" ];  # Envoy derivation is x86_64-linux only.
+  };
+}
diff --git a/nixpkgs/pkgs/servers/http/tengine/default.nix b/nixpkgs/pkgs/servers/http/tengine/default.nix
index d7bd2eca926b..01e5c0950dcb 100644
--- a/nixpkgs/pkgs/servers/http/tengine/default.nix
+++ b/nixpkgs/pkgs/servers/http/tengine/default.nix
@@ -10,14 +10,14 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "2.3.2";
+  version = "2.3.3";
   pname = "tengine";
 
   src = fetchFromGitHub {
     owner = "alibaba";
     repo = pname;
     rev = version;
-    sha256 = "04xfnbc0qlk8vi6bb8sl38nxnx9naxh550xsgrb4hql6jdi0wv7l";
+    sha256 = "0p43qsldwhx4zfwp585x8kps0akrf7b0gxdgf0sh0yqcp7l28gmx";
   };
 
   buildInputs =
diff --git a/nixpkgs/pkgs/servers/http/tomcat/axis2/default.nix b/nixpkgs/pkgs/servers/http/tomcat/axis2/default.nix
index e383d8f0d1b0..ab05d8cbb0ed 100644
--- a/nixpkgs/pkgs/servers/http/tomcat/axis2/default.nix
+++ b/nixpkgs/pkgs/servers/http/tomcat/axis2/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0dh0s9bfh95wmmw8nyf2yw95biq7d9zmrbg8k4vzcyz1if228lac";
   };
 
-  buildInputs = [ unzip apacheAnt jdk ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ apacheAnt jdk ];
   builder = ./builder.sh;
 
   meta = {
diff --git a/nixpkgs/pkgs/servers/http/unit/default.nix b/nixpkgs/pkgs/servers/http/unit/default.nix
index a5d5e37487aa..e6863479f54a 100644
--- a/nixpkgs/pkgs/servers/http/unit/default.nix
+++ b/nixpkgs/pkgs/servers/http/unit/default.nix
@@ -7,7 +7,6 @@
 , withPerl530 ? false, perl530
 , withPerl532 ? true, perl532
 , withPerldevel ? false, perldevel
-, withRuby_2_5 ? false, ruby_2_5
 , withRuby_2_6 ? true, ruby_2_6
 , withRuby_2_7 ? false, ruby_2_7
 , withSSL ? true, openssl ? null
@@ -31,14 +30,14 @@ let
   php74-unit = php74.override phpConfig;
 
 in stdenv.mkDerivation rec {
-  version = "1.21.0";
+  version = "1.22.0";
   pname = "unit";
 
   src = fetchFromGitHub {
     owner = "nginx";
     repo = pname;
     rev = version;
-    sha256 = "1jczdxixxyj16w10pkcplchbqvx3m32nkmcl0hqap5ffqj08mmf7";
+    sha256 = "sha256-M5Q8sxI1nZi8+ixO1PHuQpQ81EwyLAsnBI5PTtm+bKA=";
   };
 
   nativeBuildInputs = [ which ];
@@ -51,7 +50,6 @@ in stdenv.mkDerivation rec {
     ++ optional withPerl530 perl530
     ++ optional withPerl532 perl532
     ++ optional withPerldevel perldevel
-    ++ optional withRuby_2_5 ruby_2_5
     ++ optional withRuby_2_6 ruby_2_6
     ++ optional withRuby_2_7 ruby_2_7
     ++ optional withSSL openssl;
@@ -77,7 +75,6 @@ in stdenv.mkDerivation rec {
     ${optionalString withPerl530    "./configure perl   --module=perl530  --perl=${perl530}/bin/perl"}
     ${optionalString withPerl532    "./configure perl   --module=perl532  --perl=${perl532}/bin/perl"}
     ${optionalString withPerldevel  "./configure perl   --module=perldev  --perl=${perldevel}/bin/perl"}
-    ${optionalString withRuby_2_5   "./configure ruby   --module=ruby25   --ruby=${ruby_2_5}/bin/ruby"}
     ${optionalString withRuby_2_6   "./configure ruby   --module=ruby26   --ruby=${ruby_2_6}/bin/ruby"}
     ${optionalString withRuby_2_7   "./configure ruby   --module=ruby27   --ruby=${ruby_2_7}/bin/ruby"}
   '';
diff --git a/nixpkgs/pkgs/servers/imgproxy/default.nix b/nixpkgs/pkgs/servers/imgproxy/default.nix
index 5197b1d3dffe..49259f49f2ef 100644
--- a/nixpkgs/pkgs/servers/imgproxy/default.nix
+++ b/nixpkgs/pkgs/servers/imgproxy/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "imgproxy";
-  version = "2.15.0";
+  version = "2.16.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    sha256 = "0p6vy5b6dhv23qnn6sk99hn0j5wiwqpaprsg5jgm2wxb0w2bfz0w";
+    sha256 = "sha256-wr4yOrzZT/4WtRze9Yp+M18jusxdddoDd4xs5P7d5oQ=";
     rev = "v${version}";
   };
 
-  vendorSha256 = "0jrp778cjr8k8sbal0yn1zy7s9sj534q9i90qv4c29fxd9xw7qgp";
+  vendorSha256 = "sha256-7IpMgsATQ1SMuBOF9agHIN2Lx6OKxRr0Zk5SRFxHiQ4=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/irc/atheme/default.nix b/nixpkgs/pkgs/servers/irc/atheme/default.nix
index a95a2ad27c36..eb6f9345b2d0 100644
--- a/nixpkgs/pkgs/servers/irc/atheme/default.nix
+++ b/nixpkgs/pkgs/servers/irc/atheme/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "atheme";
-  version = "7.2.10-r2";
+  version = "7.2.11";
 
   src = fetchgit {
     url = "https://github.com/atheme/atheme.git";
     rev = "v${version}";
-    sha256 = "1yasfvbmixj4zzfv449hlcp0ms5c250lrshdy6x6l643nbnix4y9";
+    sha256 = "15fs48cgzxblh2g4abl5v647ndfx9hg8cih2x67v3y7s9wz68wk2";
     leaveDotGit = true;
   };
 
diff --git a/nixpkgs/pkgs/servers/irc/inspircd/default.nix b/nixpkgs/pkgs/servers/irc/inspircd/default.nix
new file mode 100644
index 000000000000..f907e337ce6d
--- /dev/null
+++ b/nixpkgs/pkgs/servers/irc/inspircd/default.nix
@@ -0,0 +1,221 @@
+let
+  # inspircd ships a few extra modules that users can load
+  # via configuration. Upstream thus recommends to ship as
+  # many of them as possible. There is however a problem:
+  # inspircd is licensed under the GPL version 2 only and
+  # some modules link libraries that are incompatible with
+  # the GPL 2. Therefore we can't provide them as binaries
+  # via our binary-caches, but users should still be able
+  # to override this package and build the incompatible
+  # modules themselves.
+  #
+  # This means for us we need to a) prevent hydra from
+  # building a module set with a GPL incompatibility
+  # and b) dynamically figure out the largest possible
+  # set of modules to use depending on stdenv, because
+  # the used libc needs to be compatible as well.
+  #
+  # For an overview of all modules and their licensing
+  # situation, see https://docs.inspircd.org/packaging/
+
+  # Predicate for checking license compatibility with
+  # GPLv2. Since this is _only_ used for libc compatibility
+  # checking, only whitelist licenses used by notable
+  # libcs in nixpkgs (musl and glibc).
+  compatible = lib: drv:
+    lib.any (lic: lic == drv.meta.license) [
+      lib.licenses.mit        # musl
+      lib.licenses.lgpl2Plus  # glibc
+    ];
+
+  # compatible if libc is compatible
+  libcModules = [
+    "regex_posix"
+    "sslrehashsignal"
+  ];
+
+  # compatible if libc++ is compatible
+  # TODO(sternenseemann):
+  # we could enable "regex_stdlib" automatically, but only if
+  # we are using libcxxStdenv which is compatible with GPLv2,
+  # since the gcc libstdc++ license is GPLv2-incompatible
+  libcxxModules = [
+    "regex_stdlib"
+  ];
+
+  compatibleModules = lib: stdenv: [
+    # GPLv2 compatible dependencies
+    "argon2"
+    "ldap"
+    "mysql"
+    "pgsql"
+    "regex_pcre"
+    "regex_re2"
+    "regex_tre"
+    "sqlite3"
+    "ssl_gnutls"
+  ] ++ lib.optionals (compatible lib stdenv.cc.libc) libcModules;
+
+in
+
+{ lib
+, stdenv
+, fetchFromGitHub
+, nixosTests
+, perl
+, pkg-config
+, libargon2
+, openldap
+, postgresql
+, libmysqlclient
+, pcre
+, tre
+, re2
+, sqlite
+, gnutls
+, libmaxminddb
+, openssl
+, mbedtls
+# For a full list of module names, see https://docs.inspircd.org/packaging/
+, extraModules ? compatibleModules lib stdenv
+}:
+
+let
+  extras = {
+    # GPLv2 compatible
+    argon2 = [
+      (libargon2 // {
+        meta = libargon2.meta // {
+          # use libargon2 as CC0 since ASL20 is GPLv2-incompatible
+          # updating this here is important that meta.license is accurate
+          # libargon2 is licensed under either ASL20 or CC0.
+          license = lib.licenses.cc0;
+        };
+      })
+    ];
+    ldap            = [ openldap ];
+    mysql           = [ libmysqlclient ];
+    pgsql           = [ postgresql ];
+    regex_pcre      = [ pcre ];
+    regex_re2       = [ re2 ];
+    regex_tre       = [ tre ];
+    sqlite3         = [ sqlite ];
+    ssl_gnutls      = [ gnutls ];
+    # depends on stdenv.cc.libc
+    regex_posix     = [];
+    sslrehashsignal = [];
+    # depends on used libc++
+    regex_stdlib    = [];
+    # GPLv2 incompatible
+    geo_maxmind     = [ libmaxminddb ];
+    ssl_mbedtls     = [ mbedtls ];
+    ssl_openssl     = [ openssl ];
+  };
+
+  # buildInputs necessary for the enabled extraModules
+  extraInputs = lib.concatMap
+    (m: extras."${m}" or (builtins.throw "Unknown extra module ${m}"))
+    extraModules;
+
+  # if true, we can't provide a binary version of this
+  # package without violating the GPL 2
+  gpl2Conflict =
+    let
+      allowed = compatibleModules lib stdenv;
+    in
+      !lib.all (lib.flip lib.elem allowed) extraModules;
+
+  # return list of the license(s) of the given derivation
+  getLicenses = drv:
+    let
+      lics = drv.meta.license or [];
+    in
+      if lib.isAttrs lics || lib.isString lics
+      then [ lics ]
+      else lics;
+
+  # Whether any member of list1 is also member of list2, i. e. set intersection.
+  anyMembers = list1: list2:
+    lib.any (m1: lib.elem m1 list2) list1;
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "inspircd";
+  version = "3.9.0";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0x3paasf4ynx4ddky2nq613vyirbhfnxzkjq148k7154pz3q426s";
+  };
+
+  outputs = [ "bin" "lib" "man" "doc" "out" ];
+
+  nativeBuildInputs = [
+    perl
+    pkg-config
+  ];
+  buildInputs = extraInputs;
+
+  configurePhase = ''
+    patchShebangs configure make/*.pl
+
+    # configure is executed twice, once to set the extras
+    # to use and once to do the Makefile setup
+    ./configure \
+      --enable-extras \
+      ${lib.escapeShellArg (lib.concatStringsSep " " extraModules)}
+
+    # this manually sets the flags instead of using configureFlags, because otherwise stdenv passes flags like --bindir, which make configure fail
+    ./configure \
+      --disable-auto-extras \
+      --distribution-label nixpkgs${version} \
+      --uid 0 \
+      --gid 0 \
+      --binary-dir  ${placeholder "bin"}/bin \
+      --config-dir  /etc/inspircd \
+      --data-dir    ${placeholder "lib"}/lib/inspircd \
+      --example-dir ${placeholder "doc"}/share/doc/inspircd \
+      --log-dir     /var/log/inspircd \
+      --manual-dir  ${placeholder "man"}/share/man/man1 \
+      --module-dir  ${placeholder "lib"}/lib/inspircd \
+      --runtime-dir /var/run \
+      --script-dir  ${placeholder "bin"}/share/inspircd \
+  '';
+
+  postInstall = ''
+    # for some reasons the executables are not executable
+    chmod +x $bin/bin/*
+  '';
+
+  enableParallelBuilding = true;
+
+  passthru.tests = {
+    nixos-test = nixosTests.inspircd;
+  };
+
+  meta = {
+    description = "A modular C++ IRC server";
+    license = [ lib.licenses.gpl2Only ]
+      ++ lib.concatMap getLicenses extraInputs
+      ++ lib.optionals (anyMembers extraModules libcModules) (getLicenses stdenv.cc.libc)
+      # FIXME(sternenseemann): get license of used lib(std)c++ somehow
+      ++ lib.optional (anyMembers extraModules libcxxModules) "Unknown"
+      # Hack: Definitely prevent a hydra from building this package on
+      # a GPL 2 incompatibility even if it is not in a top-level attribute,
+      # but pulled in indirectly somehow.
+      ++ lib.optional gpl2Conflict lib.licenses.unfree;
+    maintainers = [ lib.maintainers.sternenseemann ];
+    # windows is theoretically possible, but requires extra work
+    # which I am not willing to do and can't test.
+    # https://github.com/inspircd/inspircd/blob/master/win/README.txt
+    platforms = lib.platforms.unix;
+    homepage = "https://www.inspircd.org/";
+  } // lib.optionalAttrs gpl2Conflict {
+    # make sure we never distribute a GPLv2-violating module
+    # in binary form. They can be built locally of course.
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/irc/ircd-hybrid/default.nix b/nixpkgs/pkgs/servers/irc/ircd-hybrid/default.nix
index 353e836dc66e..b29f75fb5293 100644
--- a/nixpkgs/pkgs/servers/irc/ircd-hybrid/default.nix
+++ b/nixpkgs/pkgs/servers/irc/ircd-hybrid/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "ircd-hybrid-8.2.35";
+  name = "ircd-hybrid-8.2.36";
 
   src = fetchurl {
     url = "mirror://sourceforge/ircd-hybrid/${name}.tgz";
-    sha256 = "045wd3wa4i1hl7i4faksaj8l5r70ld55bggryaf1ml28ijwjwpca";
+    sha256 = "0sg4g0znl8ic8vklpy96z88gjksc165kl945a6fr1j4xc1bf8gcv";
   };
 
   buildInputs = [ openssl zlib ];
diff --git a/nixpkgs/pkgs/servers/irc/solanum/default.nix b/nixpkgs/pkgs/servers/irc/solanum/default.nix
index 0ae030ba59d1..1d39526ed1ee 100644
--- a/nixpkgs/pkgs/servers/irc/solanum/default.nix
+++ b/nixpkgs/pkgs/servers/irc/solanum/default.nix
@@ -50,6 +50,8 @@ stdenv.mkDerivation rec {
 
   doCheck = !stdenv.isDarwin;
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "An IRCd for unified networks";
     homepage = "https://github.com/solanum-ircd/solanum";
diff --git a/nixpkgs/pkgs/servers/irker/default.nix b/nixpkgs/pkgs/servers/irker/default.nix
index 7bb0900d7d30..0aac945ad006 100644
--- a/nixpkgs/pkgs/servers/irker/default.nix
+++ b/nixpkgs/pkgs/servers/irker/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitLab, python, pkg-config
+{ lib, stdenv, fetchFromGitLab, python3, pkg-config
 , xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_412 }:
 
 stdenv.mkDerivation {
@@ -15,12 +15,14 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ pkg-config xmlto docbook2x docbook_xsl docbook_xml_dtd_412 ];
 
   buildInputs = [
-    python
+    python3
     # Needed for proxy support I believe, which I haven't tested.
     # Probably needs to be propagated and some wrapPython magic
     # python.pkgs.pysocks
   ];
 
+  strictDeps = true;
+
   postPatch = ''
     substituteInPlace Makefile \
       --replace '-o 0 -g 0' ""
diff --git a/nixpkgs/pkgs/servers/isso/default.nix b/nixpkgs/pkgs/servers/isso/default.nix
index 4db8ac1f4034..3338f8b2a84d 100644
--- a/nixpkgs/pkgs/servers/isso/default.nix
+++ b/nixpkgs/pkgs/servers/isso/default.nix
@@ -3,14 +3,14 @@
 with python3Packages; buildPythonApplication rec {
 
   pname = "isso";
-  version = "0.12.4";
+  version = "0.12.5";
 
   # no tests on PyPI
   src = fetchFromGitHub {
     owner = "posativ";
     repo = pname;
     rev = version;
-    sha256 = "16wjpz8r74fzjvzhl6by3sjc2g1riz8lh59ccgp14bns1yhsh2yi";
+    sha256 = "12ccfba2kwbfm9h4zhlxrcigi98akbdm4qi89iglr4z53ygzpay5";
   };
 
   propagatedBuildInputs = [
@@ -23,7 +23,7 @@ with python3Packages; buildPythonApplication rec {
     flask-caching
   ];
 
-  buildInputs = [
+  nativeBuildInputs = [
     cffi
   ];
 
diff --git a/nixpkgs/pkgs/servers/jackett/default.nix b/nixpkgs/pkgs/servers/jackett/default.nix
index 11e213f01364..12760613a7d9 100644
--- a/nixpkgs/pkgs/servers/jackett/default.nix
+++ b/nixpkgs/pkgs/servers/jackett/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jackett";
-  version = "0.17.15";
+  version = "0.17.764";
 
   src = fetchurl {
     url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz";
-    sha256 = "1pp5pnnmy8m0jvpxrldshcx71dl5g16dqvnnzaqhvs4cjhpgq8fw";
+    sha256 = "sha256-x6yjSshTK/dnEPZ/XACDuVpZi0tI1J8tQHBFFvFhCmg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "API Support for your favorite torrent trackers";
     homepage = "https://github.com/Jackett/Jackett/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ edwtjo nyanloutre purcell ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/servers/jellyfin/10.5.x.nix b/nixpkgs/pkgs/servers/jellyfin/10.5.x.nix
index da4d2c4c1d58..9bece72566f8 100644
--- a/nixpkgs/pkgs/servers/jellyfin/10.5.x.nix
+++ b/nixpkgs/pkgs/servers/jellyfin/10.5.x.nix
@@ -26,8 +26,8 @@ in stdenv.mkDerivation rec {
     sha256 = "1s3hva1j5w74qc9wyqnmr5clk4smzfi7wvx8qrzrwy81mx7r5w27";
   };
 
+  nativeBuildInputs = [ unzip ];
   buildInputs = [
-    unzip
     makeWrapper
   ];
 
diff --git a/nixpkgs/pkgs/servers/jellyfin/default.nix b/nixpkgs/pkgs/servers/jellyfin/default.nix
index caca89bfd0db..92f31126e813 100644
--- a/nixpkgs/pkgs/servers/jellyfin/default.nix
+++ b/nixpkgs/pkgs/servers/jellyfin/default.nix
@@ -18,34 +18,36 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "jellyfin";
-  version = "10.6.4";
+  version = "10.7.1";
 
   # Impossible to build anything offline with dotnet
   src = fetchurl {
     url = "https://repo.jellyfin.org/releases/server/portable/versions/stable/combined/${version}/jellyfin_${version}.tar.gz";
-    sha256 = "OqN070aUKPk0dXAy8R/lKUnSWen+si/AJ6tkYh5ibqo=";
+    sha256 = "sha256-pgFksZz0sD73uZDyUIhdFCgHPo67ZZiwklafyemJFGs=";
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     unzip
     makeWrapper
   ];
 
   propagatedBuildInputs = [
-    dotnetCorePackages.aspnetcore_3_1
+    dotnetCorePackages.aspnetcore_5_0
     sqlite
   ];
 
   preferLocalBuild = true;
 
   installPhase = ''
+    runHook preInstall
     install -dm 755 "$out/opt/jellyfin"
     cp -r * "$out/opt/jellyfin"
-    makeWrapper "${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet" $out/bin/jellyfin \
+    makeWrapper "${dotnetCorePackages.aspnetcore_5_0}/bin/dotnet" $out/bin/jellyfin \
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
         sqlite fontconfig freetype stdenv.cc.cc.lib
       ]}:$out/opt/jellyfin/runtimes/${runtimeDir}/native/" \
       --add-flags "$out/opt/jellyfin/jellyfin.dll --ffmpeg ${ffmpeg}/bin/ffmpeg"
+    runHook postInstall
   '';
 
   passthru.tests = {
@@ -55,7 +57,8 @@ in stdenv.mkDerivation rec {
   meta =  with lib; {
     description = "The Free Software Media System";
     homepage = "https://jellyfin.org/";
-    license = licenses.gpl2;
+    # https://github.com/jellyfin/jellyfin/issues/610#issuecomment-537625510
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ nyanloutre minijackson purcell ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/jetbrains/youtrack.nix b/nixpkgs/pkgs/servers/jetbrains/youtrack.nix
index 5aab96d1bc04..c3680d76b96e 100644
--- a/nixpkgs/pkgs/servers/jetbrains/youtrack.nix
+++ b/nixpkgs/pkgs/servers/jetbrains/youtrack.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1fnnpyikr1x443vxy6f7vlv550sbahpps8awyn13jpg7kpgfm7lk";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontUnpack = true;
 
diff --git a/nixpkgs/pkgs/servers/jicofo/default.nix b/nixpkgs/pkgs/servers/jicofo/default.nix
index f706438d6c14..49e40713a0a4 100644
--- a/nixpkgs/pkgs/servers/jicofo/default.nix
+++ b/nixpkgs/pkgs/servers/jicofo/default.nix
@@ -1,11 +1,11 @@
-{ pkgs, lib, stdenv, fetchurl, dpkg, jre_headless, nixosTests }:
+{ lib, stdenv, fetchurl, dpkg, jre_headless, nixosTests }:
 
 let
   pname = "jicofo";
-  version = "1.0-612";
+  version = "1.0-690";
   src = fetchurl {
     url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
-    sha256 = "0xv3p2h8g1jwcmxljdpz08d6dsz543mznp0nwgb6vr93faz8kc81";
+    sha256 = "1w5nz2p6scd7w0ac93vhxlk5i8in5160c0icwl27m4x4km9xf6al";
   };
 in
 stdenv.mkDerivation {
@@ -16,6 +16,7 @@ stdenv.mkDerivation {
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
 
   installPhase = ''
+    runHook preInstall
     substituteInPlace usr/share/jicofo/jicofo.sh \
       --replace "exec java" "exec ${jre_headless}/bin/java"
 
@@ -24,6 +25,7 @@ stdenv.mkDerivation {
     mv etc $out/
     cp ${./logging.properties-journal} $out/etc/jitsi/jicofo/logging.properties-journal
     ln -s $out/share/jicofo/jicofo.sh $out/bin/jicofo
+    runHook postInstall
   '';
 
   passthru.tests = {
diff --git a/nixpkgs/pkgs/servers/jitsi-videobridge/default.nix b/nixpkgs/pkgs/servers/jitsi-videobridge/default.nix
index d9dd84c7cfb8..35cd6906012d 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.1-273-g072dd44b";
+  version = "2.1-416-g2f43d1b4";
   src = fetchurl {
     url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
-    sha256 = "12l84wjn5iqnsg0816icgbx8jfcgyfnqclgyx303w4ncbvymlkv9";
+    sha256 = "0s9wmbba1nlpxaawzmaqg92882y5sfs2ws64w5sqvpi7n77hy54m";
   };
 in
 stdenv.mkDerivation {
@@ -15,9 +15,10 @@ stdenv.mkDerivation {
 
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
+    runHook preInstall
     substituteInPlace usr/share/jitsi-videobridge/jvb.sh \
       --replace "exec java" "exec ${jre_headless}/bin/java"
 
@@ -30,6 +31,7 @@ stdenv.mkDerivation {
     # work around https://github.com/jitsi/jitsi-videobridge/issues/1547
     wrapProgram $out/bin/jitsi-videobridge \
       --set VIDEOBRIDGE_GC_TYPE G1GC
+    runHook postInstall
   '';
 
   passthru.tests = {
diff --git a/nixpkgs/pkgs/servers/kapowbang/default.nix b/nixpkgs/pkgs/servers/kapowbang/default.nix
index 94a1832bd8d3..efd2b17d7e51 100644
--- a/nixpkgs/pkgs/servers/kapowbang/default.nix
+++ b/nixpkgs/pkgs/servers/kapowbang/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "kapowbang";
-  version = "0.6.0";
+  version = "0.7.0";
 
   subPackages = [ "." ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "BBVA";
     repo = "kapow";
     rev = "v${version}";
-    sha256 = "sha256-+GZarnG+SlxynoXYTvI1f9eki3DobiDt7vUdWlC0ECk=";
+    sha256 = "sha256-0ftdc3ol1g0WnZgicXl46Xpph4cUYk/G/eeu+9JnPyA=";
   };
 
-  vendorSha256 = "sha256-vXu64o/MTmw9oZL4MIHB+PEfYLcKVh5A5iGZ1RW1Xd4=";
+  vendorSha256 = "sha256-41Jk3aTe4EA5dwkriEo48QNJg2k3T/R/8i8XWcURcG8=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/keycloak/default.nix b/nixpkgs/pkgs/servers/keycloak/default.nix
index 468904b3f0d0..3726facd5835 100644
--- a/nixpkgs/pkgs/servers/keycloak/default.nix
+++ b/nixpkgs/pkgs/servers/keycloak/default.nix
@@ -18,11 +18,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname   = "keycloak";
-  version = "12.0.2";
+  version = "12.0.4";
 
   src = fetchzip {
     url    = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip";
-    sha256 = "006k6ac00iz61s6hi3wzj6w71mhhv7n00vh82ak4yhwr97jffqbz";
+    sha256 = "sha256-7DKKpuKPoSKIpfvhCvLzuyepbmixgq0+o+83FKi6Dwc=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/kippo/default.nix b/nixpkgs/pkgs/servers/kippo/default.nix
deleted file mode 100644
index a3c6d683a1ba..000000000000
--- a/nixpkgs/pkgs/servers/kippo/default.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-# This is the installation portion of kippo.
-# This is somewhat jumbled together. There is no "easy_install" for kippo,
-# and there isn't a way to regenerate the twistd plugin cache.
-#
-# Use the services.kippo options to properly configure if on NixOS.
-# On other platforms there is a problem with hardcoded paths.
-# Your best bet is to change kippo source to customise
-# or manually copy the proper filesystems.
-# At a minimum the following are required in  /var/lib/kippo:
-#     honeyfs/
-#     fs.pickle
-#     data/
-#     txtcmds/
-#
-# There is also benefit in preparing /var/log/kippo
-#     tty/
-#     dl/
-#
-# Most of these files need read/write permissions.
-#
-# Read only files: kippo.tac and kippo.cfg
-#
-# Execution may look like this:
-# twistd -y kippo.tac --syslog --pidfile=kippo.pid
-#
-# Use this package at your own risk.
-
-{lib, stdenv, fetchurl, pythonPackages }:
-
-let
-
-  twisted_13 = pythonPackages.buildPythonPackage rec {
-    # NOTE: When updating please check if new versions still cause issues
-    # to packages like carbon (http://stackoverflow.com/questions/19894708/cant-start-carbon-12-04-python-error-importerror-cannot-import-name-daem)
-    disabled = pythonPackages.isPy3k;
-
-    name = "Twisted-13.2.0";
-    src = fetchurl {
-      url = "mirror://pypi/T/Twisted/${name}.tar.bz2";
-      sha256 = "1wrcqv5lvgwk2aq83qb2s2ng2vx14hbjjk2gc30cg6h1iiipal89";
-    };
-
-    propagatedBuildInputs = with pythonPackages; [ zope_interface ];
-
-    # Generate Twisted's plug-in cache.  Twited users must do it as well.  See
-    # http://twistedmatrix.com/documents/current/core/howto/plugin.html#auto3
-    # and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477103 for
-    # details.
-    postInstall = "$out/bin/twistd --help > /dev/null";
-
-    meta = with lib; {
-      homepage = "https://twistedmatrix.com/";
-      description = "Twisted, an event-driven networking engine written in Python";
-      longDescription = ''
-        Twisted is an event-driven networking engine written in Python
-        and licensed under the MIT license.
-      '';
-      license = licenses.mit;
-    };
-  };
-
-in stdenv.mkDerivation rec {
-    pname = "kippo";
-    version = "0.8";
-    src = fetchurl {
-      url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/kippo/${pname}-${version}.tar.gz";
-      sha256 = "0rd2mk36d02qd24z8s4xyy64fy54rzpar4379iq4dcjwg7l7f63d";
-    };
-    buildInputs = with pythonPackages; [ pycrypto pyasn1 twisted_13 ];
-    installPhase = ''
-        substituteInPlace ./kippo.tac --replace "kippo.cfg" "$out/src/kippo.cfg"
-        substituteInPlace ./kippo.cfg --replace "log_path = log" "log_path = /var/log/kippo" \
-            --replace "download_path = dl" "download_path = /var/log/kippo/dl" \
-            --replace "contents_path = honeyfs" "filesystem_file = /var/lib/kippo/honeyfs" \
-            --replace "filesystem_file = fs.pickle" "filesystem_file = /var/lib/kippo/fs.pickle" \
-            --replace "data_path = data" "data_path = /var/lib/kippo/data" \
-            --replace "txtcmds_path = txtcmds" "txtcmds_path = /var/lib/kippo/txtcmds" \
-            --replace "public_key = public.key" "public_key = /var/lib/kippo/keys/public.key" \
-            --replace "private_key = private.key" "private_key = /var/lib/kippo/keys/private.key"
-        mkdir -p $out/bin
-        mkdir -p $out/src
-        mv ./* $out/src
-        mv $out/src/utils/* $out/bin
-        '';
-
-    passthru.twisted = twisted_13;
-
-    meta = with lib; {
-      homepage = "https://github.com/desaster/kippo";
-      description = "SSH Honeypot";
-      longDescription = ''
-        Default port is 2222. Recommend using something like this for port redirection to default SSH port:
-        networking.firewall.extraCommands = '''
-        iptables -t nat -A PREROUTING -i IN_IFACE -p tcp --dport 22 -j REDIRECT --to-port 2222''' '';
-      license = licenses.bsd3;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ tomberek ];
-      broken = true; # 2018-09-12, failed on hydra since 2017-12-11
-    };
-}
diff --git a/nixpkgs/pkgs/servers/klipper/default.nix b/nixpkgs/pkgs/servers/klipper/default.nix
index 23b44be0316a..63ad531bbefe 100644
--- a/nixpkgs/pkgs/servers/klipper/default.nix
+++ b/nixpkgs/pkgs/servers/klipper/default.nix
@@ -12,9 +12,15 @@ stdenv.mkDerivation rec {
     owner = "KevinOConnor";
     repo = "klipper";
     rev = "ef4d9c3abd30ae8a485020fd9ff2fb4529a143b3";
-    sha256 = "puAkSGL0DD0JUWejPdzr7zKIW2UP2soBBtgm2msUKzA=";
+    sha256 = "sha256-puAkSGL0DD0JUWejPdzr7zKIW2UP2soBBtgm2msUKzA=";
   };
 
+  # We have no LTO on i686 since commit 22284b0
+  postPatch = lib.optional stdenv.isi686 ''
+    substituteInPlace chelper/__init__.py \
+      --replace "-flto -fwhole-program " ""
+  '';
+
   sourceRoot = "source/klippy";
 
   # there is currently an attempt at moving it to Python 3, but it will remain
diff --git a/nixpkgs/pkgs/servers/ldap/389/default.nix b/nixpkgs/pkgs/servers/ldap/389/default.nix
index bfa372ed0692..db9041574fca 100644
--- a/nixpkgs/pkgs/servers/ldap/389/default.nix
+++ b/nixpkgs/pkgs/servers/ldap/389/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, fetchpatch, autoreconfHook, pkg-config, doxygen, perl, pam, nspr, nss, openldap
-, db, cyrus_sasl, svrcore, icu, net-snmp, kerberos, pcre, perlPackages, libevent, openssl, python
+, db, cyrus_sasl, svrcore, icu, net-snmp, libkrb5, pcre, perlPackages, libevent, openssl, python3
 }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkg-config doxygen ];
   buildInputs = [
     perl pam nspr nss openldap db cyrus_sasl svrcore icu
-    net-snmp kerberos pcre libevent openssl python
+    net-snmp libkrb5 pcre libevent openssl python3
   ] ++ (with perlPackages; [ MozillaLdap NetAddrIP DBFile ]);
 
   patches = [
diff --git a/nixpkgs/pkgs/servers/livepeer/default.nix b/nixpkgs/pkgs/servers/livepeer/default.nix
index a016c8e7f099..ad67cdf4348c 100644
--- a/nixpkgs/pkgs/servers/livepeer/default.nix
+++ b/nixpkgs/pkgs/servers/livepeer/default.nix
@@ -4,16 +4,16 @@
 
 buildGoModule rec {
   pname = "livepeer";
-  version = "0.5.13";
+  version = "0.5.14";
 
   runVend = true;
-  vendorSha256 = "sha256-wAjGgYDyBWqE8KCQ6TQ+LGDDZqF+5XY+NzU74RwPuRE=";
+  vendorSha256 = "sha256-StkgU11VLEKg89kn3zPcdC8HBw9MmJrfDPGk1SUQO64=";
 
   src = fetchFromGitHub {
     owner = "livepeer";
     repo = "go-livepeer";
     rev = "v${version}";
-    sha256 = "sha256-b4O8Hc8A8TN5KFcQ7KYvFPVFgposDgPw06WowrXzpAs=";
+    sha256 = "sha256-GxgpGI1ymhbYhzCP2Bs5wJ5kq5rHHkClXcAsYlaQ/AM=";
   };
 
   # livepeer_cli has a vendoring problem
diff --git a/nixpkgs/pkgs/servers/ma1sd/0001-gradle.patch b/nixpkgs/pkgs/servers/ma1sd/0001-gradle.patch
deleted file mode 100644
index 0980ec9a5df8..000000000000
--- a/nixpkgs/pkgs/servers/ma1sd/0001-gradle.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/build.gradle	2019-09-01 16:17:17.815513296 +0200
-+++ b/build.gradle	2019-09-01 16:21:14.688832785 +0200
-@@ -73,7 +73,7 @@
- 
- buildscript {
-     repositories {
--        jcenter()
-+REPLACE
-     }
- 
-     dependencies {
-@@ -83,7 +83,7 @@
- }
- 
- repositories {
--    jcenter()
-+REPLACE
- }
- 
- dependencies {
diff --git a/nixpkgs/pkgs/servers/ma1sd/default.nix b/nixpkgs/pkgs/servers/ma1sd/default.nix
index 055136c20719..5947d18eb9e1 100644
--- a/nixpkgs/pkgs/servers/ma1sd/default.nix
+++ b/nixpkgs/pkgs/servers/ma1sd/default.nix
@@ -1,22 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, jre, git, gradle_5, perl, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, jre, git, gradle, perl, makeWrapper }:
 
 let
   name = "ma1sd-${version}";
-  version = "2.1.1";
-  rev = "a112a5e57cb38ad282939d2dcb9c1476e038af39";
+  version = "2.4.0";
+  rev = version;
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ma1uta";
     repo = "ma1sd";
-    sha256 = "1qibn6m6mvxwnbiypxlgkaqg6in358vkf0q47410rv1dx1gjcnv5";
+    hash = "sha256-8UnhrGa8KKmMAAkzUXztMkxgYOX8MU1ioXuEStGi4Vc=";
   };
 
 
   deps = stdenv.mkDerivation {
     name = "${name}-deps";
     inherit src;
-    nativeBuildInputs = [ gradle_5 perl git ];
+    nativeBuildInputs = [ gradle perl git ];
 
     buildPhase = ''
       export MA1SD_BUILD_VERSION=${rev}
@@ -35,34 +35,36 @@ let
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "1w9cxq0rlzyh7bzqr3v3vn2cjhpn7hhc5lk9qzwj7sdj4jn2qxq6";
+    outputHash = "0x2wmmhjgnb6p72d3kvnv2vg52l0c4151rs4jrazs9rvxjfc88dr";
   };
 
 in
 stdenv.mkDerivation {
   inherit name src version;
-  nativeBuildInputs = [ gradle_5 perl makeWrapper ];
+  nativeBuildInputs = [ gradle perl makeWrapper ];
   buildInputs = [ jre ];
 
-  patches = [ ./0001-gradle.patch ];
-
   buildPhase = ''
+    runHook preBuild
     export MA1SD_BUILD_VERSION=${rev}
     export GRADLE_USER_HOME=$(mktemp -d)
 
-    sed -ie "s#REPLACE#mavenLocal(); maven { url '${deps}' }#g" build.gradle
+    sed -ie "s#jcenter()#mavenLocal(); maven { url '${deps}' }#g" build.gradle
     gradle --offline --no-daemon build -x test
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -D build/libs/source.jar $out/lib/ma1sd.jar
     makeWrapper ${jre}/bin/java $out/bin/ma1sd --add-flags "-jar $out/lib/ma1sd.jar"
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "a federated matrix identity server; fork of mxisd";
     homepage = "https://github.com/ma1uta/ma1sd";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ mguentner ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/servers/mail/dovecot/default.nix b/nixpkgs/pkgs/servers/mail/dovecot/default.nix
index 2c44094d0f70..337405ff6729 100644
--- a/nixpkgs/pkgs/servers/mail/dovecot/default.nix
+++ b/nixpkgs/pkgs/servers/mail/dovecot/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot";
-  version = "2.3.13";
+  version = "2.3.14";
 
   nativeBuildInputs = [ perl pkg-config ];
   buildInputs =
@@ -21,8 +21,8 @@ stdenv.mkDerivation rec {
     ++ lib.optional withSQLite sqlite;
 
   src = fetchurl {
-    url = "https://dovecot.org/releases/2.3/${pname}-${version}.tar.gz";
-    sha256 = "1i7ijss79a23v7b6lycfzaa8r5rh01k0h0b9h0j4a6n11sw7by53";
+    url = "https://dovecot.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.gz";
+    sha256 = "0jm3p52z619v7ajh533g2g7d790k82fk0w7ry0zqlm8ymzrxgcy8";
   };
 
   enableParallelBuilding = true;
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://dovecot.org/";
     description = "Open source IMAP and POP3 email server written with security primarily in mind";
-    maintainers = with lib.maintainers; [ peti fpletz globin ];
+    maintainers = with lib.maintainers; [ peti fpletz globin ajs124 ];
     platforms = lib.platforms.unix;
   };
   passthru.tests = {
diff --git a/nixpkgs/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix b/nixpkgs/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
index e5a07aa3c278..6cdb2ee06f20 100644
--- a/nixpkgs/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
+++ b/nixpkgs/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
@@ -1,12 +1,13 @@
 { lib, stdenv, fetchurl, dovecot, openssl }:
-
-stdenv.mkDerivation rec {
+let
+  dovecotMajorMinor = lib.versions.majorMinor dovecot.version;
+in stdenv.mkDerivation rec {
   pname = "dovecot-pigeonhole";
-  version = "0.5.13";
+  version = "0.5.14";
 
   src = fetchurl {
-    url = "https://pigeonhole.dovecot.org/releases/2.3/dovecot-2.3-pigeonhole-${version}.tar.gz";
-    sha256 = "05xz2d82ck6lmv94nbc3qff09j8b60a5640i3fmqwqsvv9kfa7wi";
+    url = "https://pigeonhole.dovecot.org/releases/${dovecotMajorMinor}/dovecot-${dovecotMajorMinor}-pigeonhole-${version}.tar.gz";
+    sha256 = "1lmjzz4kd90wbdslacybizd1dks4bhwmrx39lj8b19naldw0zjk8";
   };
 
   buildInputs = [ dovecot openssl ];
diff --git a/nixpkgs/pkgs/servers/mail/exim/default.nix b/nixpkgs/pkgs/servers/mail/exim/default.nix
index 9d69b0d73c2f..8d4692dd0eb4 100644
--- a/nixpkgs/pkgs/servers/mail/exim/default.nix
+++ b/nixpkgs/pkgs/servers/mail/exim/default.nix
@@ -100,10 +100,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "http://exim.org/";
+    homepage = "https://exim.org/";
     description = "A mail transfer agent (MTA)";
     license = with licenses; [ gpl2Plus bsd3 ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ tv ajs124 das_j ];
+    changelog = "https://github.com/Exim/exim/blob/exim-${version}/doc/doc-txt/ChangeLog";
   };
 }
diff --git a/nixpkgs/pkgs/servers/mail/mailhog/default.nix b/nixpkgs/pkgs/servers/mail/mailhog/default.nix
index 674fdbabb4eb..0032c4a630e9 100644
--- a/nixpkgs/pkgs/servers/mail/mailhog/default.nix
+++ b/nixpkgs/pkgs/servers/mail/mailhog/default.nix
@@ -13,6 +13,8 @@ buildGoPackage rec {
     sha256 = "124216850572r1h0ii7ad6jd1cd5czcvkz7k2jzvjb4pv2kl8p3y";
   };
 
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
   meta = with lib; {
     description = "Web and API based SMTP testing";
     homepage = "https://github.com/mailhog/MailHog";
diff --git a/nixpkgs/pkgs/servers/mail/mailman/default.nix b/nixpkgs/pkgs/servers/mail/mailman/default.nix
index 9a86cc31fdd8..7f1e02fd76ec 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/default.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "mailman";
-  version = "3.3.1";
+  version = "3.3.4";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0idfiv48jjgc0jq4731094ddhraqq8bxnwmjk6sg5ask0jss9kxq";
+    sha256 = "01rx322b8mzcdj9xh4bjwnl0zis6n2wxd31rrij4cw3a2j03xpas";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix b/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix
index 00cf2c1e83c0..054d9dcf91a0 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix
@@ -7,6 +7,8 @@
 
 buildPythonPackage rec {
   pname = "HyperKitty";
+  # Note: Mailman core must be on the latest version before upgrading HyperKitty.
+  # See: https://gitlab.com/mailman/postorius/-/issues/516#note_544571309
   version = "1.3.3";
   disabled = !isPy3k;
 
diff --git a/nixpkgs/pkgs/servers/mail/mailman/postorius.nix b/nixpkgs/pkgs/servers/mail/mailman/postorius.nix
index 9330de3a8f38..189e152fce03 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/postorius.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/postorius.nix
@@ -4,11 +4,13 @@
 
 buildPythonPackage rec {
   pname = "postorius";
-  version = "1.3.3";
+  # Note: Mailman core must be on the latest version before upgrading Postorious.
+  # See: https://gitlab.com/mailman/postorius/-/issues/516#note_544571309
+  version = "1.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08jn23gblbkfl09qlykbpsmp39mmach3sl69h1j5cd5kkx839rwa";
+    sha256 = "sha256-L2ApUGQNvR0UVvodVM+wMzjYLZkegI4fT4yUiU/cibU=";
   };
 
   propagatedBuildInputs = [ django-mailman3 readme_renderer ];
@@ -17,10 +19,10 @@ buildPythonPackage rec {
   # Tries to connect to database.
   doCheck = false;
 
-  meta = {
-    homepage = "https://www.gnu.org/software/mailman/";
+  meta = with lib; {
+    homepage = "https://docs.mailman3.org/projects/postorius";
     description = "Web-based user interface for managing GNU Mailman";
-    license = lib.licenses.gpl3;
-    maintainers = with lib.maintainers; [ globin peti ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ globin peti ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/mail/mailman/wrapped.nix b/nixpkgs/pkgs/servers/mail/mailman/wrapped.nix
index 2a620763d876..c244af10e783 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/wrapped.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/wrapped.nix
@@ -8,7 +8,7 @@ in
 
 runCommand "${mailman.name}-wrapped" {
   inherit (mailman) meta;
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   passthru = mailman.passthru // { unwrapped = mailman; };
 } ''
   mkdir -p "$out/bin"
diff --git a/nixpkgs/pkgs/servers/mail/postsrsd/default.nix b/nixpkgs/pkgs/servers/mail/postsrsd/default.nix
index 2ba07ee5739e..b61332be2432 100644
--- a/nixpkgs/pkgs/servers/mail/postsrsd/default.nix
+++ b/nixpkgs/pkgs/servers/mail/postsrsd/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/roehling/postsrsd";
     description = "Postfix Sender Rewriting Scheme daemon";
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/mail/rspamd/default.nix b/nixpkgs/pkgs/servers/mail/rspamd/default.nix
index 0740613bad7a..7a2eb9fd2cdf 100644
--- a/nixpkgs/pkgs/servers/mail/rspamd/default.nix
+++ b/nixpkgs/pkgs/servers/mail/rspamd/default.nix
@@ -11,13 +11,13 @@ assert withHyperscan -> stdenv.isx86_64;
 
 stdenv.mkDerivation rec {
   pname = "rspamd";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchFromGitHub {
     owner = "rspamd";
     repo = "rspamd";
     rev = version;
-    sha256 = "0vwa7k2s2bkfb8w78z5izkd6ywjbzqysb0grls898y549hm8ii70";
+    sha256 = "sha256-LMLRDnKfGpApVsIvPNY2nxl+H5+qeVvwvwr3wdyyhjs=";
   };
 
   nativeBuildInputs = [ cmake pkg-config perl ];
diff --git a/nixpkgs/pkgs/servers/mail/spamassassin/default.nix b/nixpkgs/pkgs/servers/mail/spamassassin/default.nix
index ff96f0e7c827..03a135d6c768 100644
--- a/nixpkgs/pkgs/servers/mail/spamassassin/default.nix
+++ b/nixpkgs/pkgs/servers/mail/spamassassin/default.nix
@@ -2,14 +2,15 @@
 
 perlPackages.buildPerlPackage rec {
   pname = "SpamAssassin";
-  version = "3.4.4";
+  version = "3.4.5";
 
   src = fetchurl {
     url = "mirror://apache/spamassassin/source/Mail-${pname}-${version}.tar.bz2";
-    sha256 = "0ga5mi2nv2v91kakk9xakkg71rnxnddlzv76ca13vfyd4jgcfasf";
+    sha256 = "0qsl18p2swdbq4zizvs9ahl2bkilpcyzq817lk16jj5g4rqzivb7";
   };
 
-  buildInputs = [ makeWrapper ] ++ (with perlPackages; [
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = (with perlPackages; [
     HTMLParser NetCIDRLite NetDNS NetAddrIP DBFile HTTPDate MailDKIM LWP
     IOSocketSSL DBI EncodeDetect IPCountry NetIdent Razor2ClientAgent MailSPF
     NetDNSResolverProgrammable Socket6
diff --git a/nixpkgs/pkgs/servers/mail/sympa/default.nix b/nixpkgs/pkgs/servers/mail/sympa/default.nix
index 4bc969a851c1..82d8d3026590 100644
--- a/nixpkgs/pkgs/servers/mail/sympa/default.nix
+++ b/nixpkgs/pkgs/servers/mail/sympa/default.nix
@@ -12,7 +12,6 @@ let
     DBI
     DateTimeFormatMail
     DateTimeTimeZone
-    DigestMD5
     Encode
     FCGI
     FileCopyRecursive
@@ -28,7 +27,6 @@ let
     libintl_perl
 
     MHonArc
-    MIMEBase64
     MIMECharset
     MIMETools
     MIMEEncWords
@@ -56,8 +54,8 @@ let
     IOSocketSSL
     MailDKIM
     NetDNS
-    NetLDAP
-    NetSMTP
+    perlldap
+    libnet
     SOAPLite
   ]);
 in
diff --git a/nixpkgs/pkgs/servers/mastodon/default.nix b/nixpkgs/pkgs/servers/mastodon/default.nix
index 8508fbe8f78b..1abedead87d8 100644
--- a/nixpkgs/pkgs/servers/mastodon/default.nix
+++ b/nixpkgs/pkgs/servers/mastodon/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, nodejs-slim, mkYarnPackage, fetchFromGitHub, bundlerEnv
-, yarn, callPackage, imagemagick, ffmpeg, file, ruby_2_7
+, yarn, callPackage, imagemagick, ffmpeg, file, ruby_2_7, writeShellScript
 
   # Allow building a fork or custom version of Mastodon:
 , pname ? "mastodon"
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
       fi
       chmod -R u+w node_modules
       rake webpacker:compile
+      rails assets:precompile
     '';
 
     installPhase = ''
@@ -96,10 +97,18 @@ stdenv.mkDerivation rec {
     ln -s /var/log/mastodon log
     ln -s /tmp tmp
   '';
+
   propagatedBuildInputs = [ imagemagick ffmpeg file mastodon-gems.wrappedRuby ];
-  installPhase = ''
+
+  installPhase = let
+    run-streaming = writeShellScript "run-streaming.sh" ''
+      # NixOS helper script to consistently use the same NodeJS version the package was built with.
+      ${nodejs-slim}/bin/node ./streaming
+    '';
+  in ''
     mkdir -p $out
     cp -r * $out/
+    ln -s ${run-streaming} $out/run-streaming.sh
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
index f9d26da62973..468c46b12695 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
@@ -12,11 +12,11 @@ let
 in
 buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.26.0";
+  version = "1.30.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jppwqxamj3a65fw2a87brz4iqgijaa4lja51wlxh2xdkqj0sn6l";
+    sha256 = "1ca69v479537bbj2hjliwk9zzy9fqqsf7fm188k6xxj0a37q9y41";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
new file mode 100644
index 000000000000..808e81370bbd
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
@@ -0,0 +1,28 @@
+{ pkgs, nodePackages, makeWrapper, nixosTests, nodejs, stdenv, lib, ... }:
+
+let
+
+  packageName = with lib; concatStrings (map (entry: (concatStrings (mapAttrsToList (key: value: "${key}-${value}") entry))) (importJSON ./package.json));
+
+  ourNodePackages = import ./node-composition.nix {
+    inherit pkgs nodejs;
+    inherit (stdenv.hostPlatform) system;
+  };
+in
+ourNodePackages."${packageName}".override {
+  nativeBuildInputs = [ makeWrapper nodePackages.node-gyp-build ];
+
+  postInstall = ''
+    makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-irc" \
+      --add-flags "$out/lib/node_modules/matrix-appservice-irc/app.js"
+  '';
+
+  passthru.tests.matrix-appservice-irc = nixosTests.matrix-appservice-irc;
+
+  meta = with lib; {
+    description = "Node.js IRC bridge for Matrix";
+    maintainers = with maintainers; [ piegames ];
+    homepage = "https://github.com/matrix-org/matrix-appservice-irc";
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/generate-dependencies.sh b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/generate-dependencies.sh
new file mode 100755
index 000000000000..fc89486cfbc0
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/generate-dependencies.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+ROOT="$(realpath "$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")")"/../../../..)"
+
+$(nix-build $ROOT -A  nodePackages.node2nix --no-out-link)/bin/node2nix \
+  --nodejs-12 \
+  --node-env ../../../development/node-packages/node-env.nix \
+  --development \
+  --input package.json \
+  --output node-packages.nix \
+  --composition node-composition.nix
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-composition.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-composition.nix
new file mode 100644
index 000000000000..e0d21f7d44d3
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+  nodeEnv = import ../../../development/node-packages/node-env.nix {
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+    inherit pkgs nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-packages.nix {
+  inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
+  inherit nodeEnv;
+}
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix
new file mode 100644
index 000000000000..a20f0593ff50
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix
@@ -0,0 +1,5165 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/code-frame-7.12.11" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.12.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz";
+        sha512 = "Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==";
+      };
+    };
+    "@babel/code-frame-7.12.13" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha512 = "HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==";
+      };
+    };
+    "@babel/generator-7.13.9" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.13.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz";
+        sha512 = "mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==";
+      };
+    };
+    "@babel/helper-function-name-7.12.13" = {
+      name = "_at_babel_slash_helper-function-name";
+      packageName = "@babel/helper-function-name";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
+        sha512 = "TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==";
+      };
+    };
+    "@babel/helper-get-function-arity-7.12.13" = {
+      name = "_at_babel_slash_helper-get-function-arity";
+      packageName = "@babel/helper-get-function-arity";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
+        sha512 = "DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.12.13" = {
+      name = "_at_babel_slash_helper-split-export-declaration";
+      packageName = "@babel/helper-split-export-declaration";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
+        sha512 = "tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==";
+      };
+    };
+    "@babel/helper-validator-identifier-7.12.11" = {
+      name = "_at_babel_slash_helper-validator-identifier";
+      packageName = "@babel/helper-validator-identifier";
+      version = "7.12.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
+        sha512 = "np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==";
+      };
+    };
+    "@babel/highlight-7.13.10" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.13.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz";
+        sha512 = "5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==";
+      };
+    };
+    "@babel/parser-7.13.11" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.13.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz";
+        sha512 = "PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==";
+      };
+    };
+    "@babel/runtime-7.13.10" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.13.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz";
+        sha512 = "4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==";
+      };
+    };
+    "@babel/template-7.12.13" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz";
+        sha512 = "/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==";
+      };
+    };
+    "@babel/traverse-7.13.0" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz";
+        sha512 = "xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==";
+      };
+    };
+    "@babel/types-7.13.0" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz";
+        sha512 = "hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==";
+      };
+    };
+    "@dabh/diagnostics-2.0.2" = {
+      name = "_at_dabh_slash_diagnostics";
+      packageName = "@dabh/diagnostics";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+        sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
+      };
+    };
+    "@eslint/eslintrc-0.4.0" = {
+      name = "_at_eslint_slash_eslintrc";
+      packageName = "@eslint/eslintrc";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz";
+        sha512 = "2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==";
+      };
+    };
+    "@nodelib/fs.scandir-2.1.4" = {
+      name = "_at_nodelib_slash_fs.scandir";
+      packageName = "@nodelib/fs.scandir";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz";
+        sha512 = "33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==";
+      };
+    };
+    "@nodelib/fs.stat-2.0.4" = {
+      name = "_at_nodelib_slash_fs.stat";
+      packageName = "@nodelib/fs.stat";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz";
+        sha512 = "IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==";
+      };
+    };
+    "@nodelib/fs.walk-1.2.6" = {
+      name = "_at_nodelib_slash_fs.walk";
+      packageName = "@nodelib/fs.walk";
+      version = "1.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
+        sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==";
+      };
+    };
+    "@sentry/core-5.30.0" = {
+      name = "_at_sentry_slash_core";
+      packageName = "@sentry/core";
+      version = "5.30.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz";
+        sha512 = "TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==";
+      };
+    };
+    "@sentry/hub-5.30.0" = {
+      name = "_at_sentry_slash_hub";
+      packageName = "@sentry/hub";
+      version = "5.30.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz";
+        sha512 = "2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==";
+      };
+    };
+    "@sentry/minimal-5.30.0" = {
+      name = "_at_sentry_slash_minimal";
+      packageName = "@sentry/minimal";
+      version = "5.30.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz";
+        sha512 = "BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==";
+      };
+    };
+    "@sentry/node-5.30.0" = {
+      name = "_at_sentry_slash_node";
+      packageName = "@sentry/node";
+      version = "5.30.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz";
+        sha512 = "Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==";
+      };
+    };
+    "@sentry/tracing-5.30.0" = {
+      name = "_at_sentry_slash_tracing";
+      packageName = "@sentry/tracing";
+      version = "5.30.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz";
+        sha512 = "dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==";
+      };
+    };
+    "@sentry/types-5.30.0" = {
+      name = "_at_sentry_slash_types";
+      packageName = "@sentry/types";
+      version = "5.30.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz";
+        sha512 = "R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==";
+      };
+    };
+    "@sentry/utils-5.30.0" = {
+      name = "_at_sentry_slash_utils";
+      packageName = "@sentry/utils";
+      version = "5.30.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz";
+        sha512 = "zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==";
+      };
+    };
+    "@types/bluebird-3.5.33" = {
+      name = "_at_types_slash_bluebird";
+      packageName = "@types/bluebird";
+      version = "3.5.33";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.33.tgz";
+        sha512 = "ndEo1xvnYeHxm7I/5sF6tBvnsA4Tdi3zj1keRKRs12SP+2ye2A27NDJ1B6PqkfMbGAcT+mqQVqbZRIrhfOp5PQ==";
+      };
+    };
+    "@types/body-parser-1.19.0" = {
+      name = "_at_types_slash_body-parser";
+      packageName = "@types/body-parser";
+      version = "1.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz";
+        sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
+      };
+    };
+    "@types/connect-3.4.34" = {
+      name = "_at_types_slash_connect";
+      packageName = "@types/connect";
+      version = "3.4.34";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz";
+        sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==";
+      };
+    };
+    "@types/express-4.17.11" = {
+      name = "_at_types_slash_express";
+      packageName = "@types/express";
+      version = "4.17.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz";
+        sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==";
+      };
+    };
+    "@types/express-serve-static-core-4.17.19" = {
+      name = "_at_types_slash_express-serve-static-core";
+      packageName = "@types/express-serve-static-core";
+      version = "4.17.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz";
+        sha512 = "DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==";
+      };
+    };
+    "@types/extend-3.0.1" = {
+      name = "_at_types_slash_extend";
+      packageName = "@types/extend";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz";
+        sha512 = "R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw==";
+      };
+    };
+    "@types/he-1.1.1" = {
+      name = "_at_types_slash_he";
+      packageName = "@types/he";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/he/-/he-1.1.1.tgz";
+        sha512 = "jpzrsR1ns0n3kyWt92QfOUQhIuJGQ9+QGa7M62rO6toe98woQjnsnzjdMtsQXCdvjjmqjS2ZBCC7xKw0cdzU+Q==";
+      };
+    };
+    "@types/json-schema-7.0.7" = {
+      name = "_at_types_slash_json-schema";
+      packageName = "@types/json-schema";
+      version = "7.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz";
+        sha512 = "cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==";
+      };
+    };
+    "@types/mime-1.3.2" = {
+      name = "_at_types_slash_mime";
+      packageName = "@types/mime";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz";
+        sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==";
+      };
+    };
+    "@types/nedb-1.8.11" = {
+      name = "_at_types_slash_nedb";
+      packageName = "@types/nedb";
+      version = "1.8.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.11.tgz";
+        sha512 = "qHQRLZ0e6l/XK/2Qb2v5N1ujmdttYkUvnRI4nPIifMy6vYwoAnER10xhX13isWjjQtNsrjNLinZgDDguzPmEKw==";
+      };
+    };
+    "@types/node-14.14.35" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.14.35";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz";
+        sha512 = "Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==";
+      };
+    };
+    "@types/nopt-3.0.29" = {
+      name = "_at_types_slash_nopt";
+      packageName = "@types/nopt";
+      version = "3.0.29";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/nopt/-/nopt-3.0.29.tgz";
+        sha1 = "f19df3db4c97ee1459a2740028320a71d70964ce";
+      };
+    };
+    "@types/pg-7.14.11" = {
+      name = "_at_types_slash_pg";
+      packageName = "@types/pg";
+      version = "7.14.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/pg/-/pg-7.14.11.tgz";
+        sha512 = "EnZkZ1OMw9DvNfQkn2MTJrwKmhJYDEs5ujWrPfvseWNoI95N8B4HzU/Ltrq5ZfYxDX/Zg8mTzwr6UAyTjjFvXA==";
+      };
+    };
+    "@types/qs-6.9.6" = {
+      name = "_at_types_slash_qs";
+      packageName = "@types/qs";
+      version = "6.9.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz";
+        sha512 = "0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==";
+      };
+    };
+    "@types/range-parser-1.2.3" = {
+      name = "_at_types_slash_range-parser";
+      packageName = "@types/range-parser";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz";
+        sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
+      };
+    };
+    "@types/sanitize-html-1.27.1" = {
+      name = "_at_types_slash_sanitize-html";
+      packageName = "@types/sanitize-html";
+      version = "1.27.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/sanitize-html/-/sanitize-html-1.27.1.tgz";
+        sha512 = "TW5gfZYplKQYO8003WrxaDgwyJsEG74920S+Ei7zB9mbUFgm7l2NvFAumXzxL+1fOwM2I9A+G/1rgiEebQOxcQ==";
+      };
+    };
+    "@types/serve-static-1.13.9" = {
+      name = "_at_types_slash_serve-static";
+      packageName = "@types/serve-static";
+      version = "1.13.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz";
+        sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==";
+      };
+    };
+    "@typescript-eslint/eslint-plugin-4.18.0" = {
+      name = "_at_typescript-eslint_slash_eslint-plugin";
+      packageName = "@typescript-eslint/eslint-plugin";
+      version = "4.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.18.0.tgz";
+        sha512 = "Lzkc/2+7EoH7+NjIWLS2lVuKKqbEmJhtXe3rmfA8cyiKnZm3IfLf51irnBcmow8Q/AptVV0XBZmBJKuUJTe6cQ==";
+      };
+    };
+    "@typescript-eslint/experimental-utils-4.18.0" = {
+      name = "_at_typescript-eslint_slash_experimental-utils";
+      packageName = "@typescript-eslint/experimental-utils";
+      version = "4.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.18.0.tgz";
+        sha512 = "92h723Kblt9JcT2RRY3QS2xefFKar4ZQFVs3GityOKWQYgtajxt/tuXIzL7sVCUlM1hgreiV5gkGYyBpdOwO6A==";
+      };
+    };
+    "@typescript-eslint/parser-4.18.0" = {
+      name = "_at_typescript-eslint_slash_parser";
+      packageName = "@typescript-eslint/parser";
+      version = "4.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.18.0.tgz";
+        sha512 = "W3z5S0ZbecwX3PhJEAnq4mnjK5JJXvXUDBYIYGoweCyWyuvAKfGHvzmpUzgB5L4cRBb+cTu9U/ro66dx7dIimA==";
+      };
+    };
+    "@typescript-eslint/scope-manager-4.18.0" = {
+      name = "_at_typescript-eslint_slash_scope-manager";
+      packageName = "@typescript-eslint/scope-manager";
+      version = "4.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.18.0.tgz";
+        sha512 = "olX4yN6rvHR2eyFOcb6E4vmhDPsfdMyfQ3qR+oQNkAv8emKKlfxTWUXU5Mqxs2Fwe3Pf1BoPvrwZtwngxDzYzQ==";
+      };
+    };
+    "@typescript-eslint/types-4.18.0" = {
+      name = "_at_typescript-eslint_slash_types";
+      packageName = "@typescript-eslint/types";
+      version = "4.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.18.0.tgz";
+        sha512 = "/BRociARpj5E+9yQ7cwCF/SNOWwXJ3qhjurMuK2hIFUbr9vTuDeu476Zpu+ptxY2kSxUHDGLLKy+qGq2sOg37A==";
+      };
+    };
+    "@typescript-eslint/typescript-estree-4.18.0" = {
+      name = "_at_typescript-eslint_slash_typescript-estree";
+      packageName = "@typescript-eslint/typescript-estree";
+      version = "4.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.18.0.tgz";
+        sha512 = "wt4xvF6vvJI7epz+rEqxmoNQ4ZADArGQO9gDU+cM0U5fdVv7N+IAuVoVAoZSOZxzGHBfvE3XQMLdy+scsqFfeg==";
+      };
+    };
+    "@typescript-eslint/visitor-keys-4.18.0" = {
+      name = "_at_typescript-eslint_slash_visitor-keys";
+      packageName = "@typescript-eslint/visitor-keys";
+      version = "4.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.18.0.tgz";
+        sha512 = "Q9t90JCvfYaN0OfFUgaLqByOfz8yPeTAdotn/XYNm5q9eHax90gzdb+RJ6E9T5s97Kv/UHWKERTmqA0jTKAEHw==";
+      };
+    };
+    "abbrev-1.1.1" = {
+      name = "abbrev";
+      packageName = "abbrev";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
+        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+      };
+    };
+    "accepts-1.3.7" = {
+      name = "accepts";
+      packageName = "accepts";
+      version = "1.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
+        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
+      };
+    };
+    "acorn-7.4.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz";
+        sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
+      };
+    };
+    "acorn-jsx-5.3.1" = {
+      name = "acorn-jsx";
+      packageName = "acorn-jsx";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha512 = "K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==";
+      };
+    };
+    "agent-base-6.0.2" = {
+      name = "agent-base";
+      packageName = "agent-base";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz";
+        sha512 = "RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==";
+      };
+    };
+    "ajv-6.12.6" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz";
+        sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
+      };
+    };
+    "ajv-7.2.1" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "7.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-7.2.1.tgz";
+        sha512 = "+nu0HDv7kNSOua9apAVc979qd932rrZeb3WOvoiD31A/p1mIE5/9bN2027pE2rOPYEdS3UHzsvof4hY+lM9/WQ==";
+      };
+    };
+    "another-json-0.2.0" = {
+      name = "another-json";
+      packageName = "another-json";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz";
+        sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc";
+      };
+    };
+    "ansi-colors-4.1.1" = {
+      name = "ansi-colors";
+      packageName = "ansi-colors";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
+      };
+    };
+    "ansi-regex-4.1.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+      };
+    };
+    "ansi-regex-5.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+      };
+    };
+    "ansi-styles-3.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+      };
+    };
+    "ansi-styles-4.3.0" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
+      };
+    };
+    "append-transform-1.0.0" = {
+      name = "append-transform";
+      packageName = "append-transform";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz";
+        sha512 = "P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==";
+      };
+    };
+    "archy-1.0.0" = {
+      name = "archy";
+      packageName = "archy";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz";
+        sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+      };
+    };
+    "argparse-1.0.10" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+      };
+    };
+    "argparse-2.0.1" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz";
+        sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
+      };
+    };
+    "array-flatten-1.1.1" = {
+      name = "array-flatten";
+      packageName = "array-flatten";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
+        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+      };
+    };
+    "array-union-2.1.0" = {
+      name = "array-union";
+      packageName = "array-union";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz";
+        sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
+      };
+    };
+    "asn1-0.2.4" = {
+      name = "asn1";
+      packageName = "asn1";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
+        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+      };
+    };
+    "assert-plus-1.0.0" = {
+      name = "assert-plus";
+      packageName = "assert-plus";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+      };
+    };
+    "astral-regex-2.0.0" = {
+      name = "astral-regex";
+      packageName = "astral-regex";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha512 = "Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==";
+      };
+    };
+    "async-0.2.10" = {
+      name = "async";
+      packageName = "async";
+      version = "0.2.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-0.2.10.tgz";
+        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
+      };
+    };
+    "async-3.2.0" = {
+      name = "async";
+      packageName = "async";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+        sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
+      };
+    };
+    "asynckit-0.4.0" = {
+      name = "asynckit";
+      packageName = "asynckit";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    };
+    "aws-sign2-0.7.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+      };
+    };
+    "aws4-1.11.0" = {
+      name = "aws4";
+      packageName = "aws4";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz";
+        sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==";
+      };
+    };
+    "balanced-match-1.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    };
+    "base-x-3.0.8" = {
+      name = "base-x";
+      packageName = "base-x";
+      version = "3.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz";
+        sha512 = "Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==";
+      };
+    };
+    "basic-auth-2.0.1" = {
+      name = "basic-auth";
+      packageName = "basic-auth";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz";
+        sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
+      };
+    };
+    "bcrypt-pbkdf-1.0.2" = {
+      name = "bcrypt-pbkdf";
+      packageName = "bcrypt-pbkdf";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+      };
+    };
+    "binary-search-tree-0.2.5" = {
+      name = "binary-search-tree";
+      packageName = "binary-search-tree";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz";
+        sha1 = "7dbb3b210fdca082450dad2334c304af39bdc784";
+      };
+    };
+    "bintrees-1.0.1" = {
+      name = "bintrees";
+      packageName = "bintrees";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz";
+        sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524";
+      };
+    };
+    "bluebird-3.7.2" = {
+      name = "bluebird";
+      packageName = "bluebird";
+      version = "3.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz";
+        sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
+      };
+    };
+    "body-parser-1.19.0" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
+        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
+      };
+    };
+    "brace-expansion-1.1.11" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    };
+    "braces-3.0.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+      };
+    };
+    "browser-request-0.3.3" = {
+      name = "browser-request";
+      packageName = "browser-request";
+      version = "0.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz";
+        sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17";
+      };
+    };
+    "bs58-4.0.1" = {
+      name = "bs58";
+      packageName = "bs58";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz";
+        sha1 = "be161e76c354f6f788ae4071f63f34e8c4f0a42a";
+      };
+    };
+    "buffer-writer-2.0.0" = {
+      name = "buffer-writer";
+      packageName = "buffer-writer";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
+        sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
+      };
+    };
+    "bytes-3.1.0" = {
+      name = "bytes";
+      packageName = "bytes";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
+        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
+      };
+    };
+    "caching-transform-3.0.2" = {
+      name = "caching-transform";
+      packageName = "caching-transform";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz";
+        sha512 = "Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==";
+      };
+    };
+    "callsites-3.1.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
+        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
+      };
+    };
+    "camelcase-5.3.1" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+      };
+    };
+    "caseless-0.12.0" = {
+      name = "caseless";
+      packageName = "caseless";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
+        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+      };
+    };
+    "chalk-2.4.2" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+      };
+    };
+    "chalk-3.0.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz";
+        sha512 = "4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==";
+      };
+    };
+    "chalk-4.1.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+        sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+      };
+    };
+    "cliui-5.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
+        sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
+      };
+    };
+    "color-3.0.0" = {
+      name = "color";
+      packageName = "color";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz";
+        sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==";
+      };
+    };
+    "color-convert-1.9.3" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "1.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+      };
+    };
+    "color-convert-2.0.1" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+      };
+    };
+    "color-name-1.1.3" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    };
+    "color-name-1.1.4" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+      };
+    };
+    "color-string-1.5.5" = {
+      name = "color-string";
+      packageName = "color-string";
+      version = "1.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz";
+        sha512 = "jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==";
+      };
+    };
+    "colors-1.4.0" = {
+      name = "colors";
+      packageName = "colors";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz";
+        sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==";
+      };
+    };
+    "colorspace-1.1.2" = {
+      name = "colorspace";
+      packageName = "colorspace";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz";
+        sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==";
+      };
+    };
+    "combined-stream-1.0.8" = {
+      name = "combined-stream";
+      packageName = "combined-stream";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+      };
+    };
+    "commondir-1.0.1" = {
+      name = "commondir";
+      packageName = "commondir";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz";
+        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "content-disposition-0.5.3" = {
+      name = "content-disposition";
+      packageName = "content-disposition";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
+        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+      };
+    };
+    "content-type-1.0.4" = {
+      name = "content-type";
+      packageName = "content-type";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
+      };
+    };
+    "convert-source-map-1.7.0" = {
+      name = "convert-source-map";
+      packageName = "convert-source-map";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
+        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+      };
+    };
+    "cookie-0.4.0" = {
+      name = "cookie";
+      packageName = "cookie";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
+        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+      };
+    };
+    "cookie-0.4.1" = {
+      name = "cookie";
+      packageName = "cookie";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz";
+        sha512 = "ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==";
+      };
+    };
+    "cookie-signature-1.0.6" = {
+      name = "cookie-signature";
+      packageName = "cookie-signature";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
+        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+      };
+    };
+    "core-util-is-1.0.2" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    };
+    "cp-file-6.2.0" = {
+      name = "cp-file";
+      packageName = "cp-file";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz";
+        sha512 = "fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==";
+      };
+    };
+    "cross-spawn-4.0.2" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz";
+        sha1 = "7b9247621c23adfdd3856004a823cbe397424d41";
+      };
+    };
+    "cross-spawn-7.0.3" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
+      };
+    };
+    "dashdash-1.14.1" = {
+      name = "dashdash";
+      packageName = "dashdash";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+      };
+    };
+    "debug-2.6.9" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+      };
+    };
+    "debug-4.3.2" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz";
+        sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==";
+      };
+    };
+    "decamelize-1.2.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    };
+    "deep-is-0.1.3" = {
+      name = "deep-is";
+      packageName = "deep-is";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    };
+    "default-require-extensions-2.0.0" = {
+      name = "default-require-extensions";
+      packageName = "default-require-extensions";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz";
+        sha1 = "f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7";
+      };
+    };
+    "delayed-stream-1.0.0" = {
+      name = "delayed-stream";
+      packageName = "delayed-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    };
+    "depd-1.1.2" = {
+      name = "depd";
+      packageName = "depd";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
+        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+      };
+    };
+    "depd-2.0.0" = {
+      name = "depd";
+      packageName = "depd";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
+        sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
+      };
+    };
+    "destroy-1.0.4" = {
+      name = "destroy";
+      packageName = "destroy";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
+        sha1 = "978857442c44749e4206613e37946205826abd80";
+      };
+    };
+    "dir-glob-3.0.1" = {
+      name = "dir-glob";
+      packageName = "dir-glob";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz";
+        sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==";
+      };
+    };
+    "doctrine-3.0.0" = {
+      name = "doctrine";
+      packageName = "doctrine";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz";
+        sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==";
+      };
+    };
+    "dom-serializer-1.2.0" = {
+      name = "dom-serializer";
+      packageName = "dom-serializer";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz";
+        sha512 = "n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==";
+      };
+    };
+    "domelementtype-2.1.0" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz";
+        sha512 = "LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==";
+      };
+    };
+    "domhandler-3.3.0" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz";
+        sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
+      };
+    };
+    "domhandler-4.0.0" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz";
+        sha512 = "KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==";
+      };
+    };
+    "domutils-2.5.0" = {
+      name = "domutils";
+      packageName = "domutils";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.5.0.tgz";
+        sha512 = "Ho16rzNMOFk2fPwChGh3D2D9OEHAfG19HgmRR2l+WLSsIstNsAYBzePH412bL0y5T44ejABIVfTHQ8nqi/tBCg==";
+      };
+    };
+    "ecc-jsbn-0.1.2" = {
+      name = "ecc-jsbn";
+      packageName = "ecc-jsbn";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+      };
+    };
+    "ee-first-1.1.1" = {
+      name = "ee-first";
+      packageName = "ee-first";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    };
+    "emoji-regex-7.0.3" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+      };
+    };
+    "emoji-regex-8.0.0" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
+      };
+    };
+    "enabled-2.0.0" = {
+      name = "enabled";
+      packageName = "enabled";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz";
+        sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==";
+      };
+    };
+    "encodeurl-1.0.2" = {
+      name = "encodeurl";
+      packageName = "encodeurl";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+      };
+    };
+    "enquirer-2.3.6" = {
+      name = "enquirer";
+      packageName = "enquirer";
+      version = "2.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz";
+        sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
+      };
+    };
+    "entities-2.2.0" = {
+      name = "entities";
+      packageName = "entities";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz";
+        sha512 = "p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==";
+      };
+    };
+    "error-ex-1.3.2" = {
+      name = "error-ex";
+      packageName = "error-ex";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
+        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
+      };
+    };
+    "es6-error-4.1.1" = {
+      name = "es6-error";
+      packageName = "es6-error";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz";
+        sha512 = "Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==";
+      };
+    };
+    "escape-html-1.0.3" = {
+      name = "escape-html";
+      packageName = "escape-html";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    };
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "escape-string-regexp-2.0.0" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz";
+        sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
+      };
+    };
+    "eslint-7.22.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.22.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz";
+        sha512 = "3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==";
+      };
+    };
+    "eslint-scope-5.1.1" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha512 = "2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==";
+      };
+    };
+    "eslint-utils-2.1.0" = {
+      name = "eslint-utils";
+      packageName = "eslint-utils";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
+      };
+    };
+    "eslint-visitor-keys-1.3.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
+      };
+    };
+    "eslint-visitor-keys-2.0.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
+        sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==";
+      };
+    };
+    "espree-7.3.1" = {
+      name = "espree";
+      packageName = "espree";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz";
+        sha512 = "v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==";
+      };
+    };
+    "esprima-4.0.1" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+      };
+    };
+    "esquery-1.4.0" = {
+      name = "esquery";
+      packageName = "esquery";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz";
+        sha512 = "cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==";
+      };
+    };
+    "esrecurse-4.3.0" = {
+      name = "esrecurse";
+      packageName = "esrecurse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
+      };
+    };
+    "estraverse-4.3.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+      };
+    };
+    "estraverse-5.2.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
+        sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
+    "etag-1.8.1" = {
+      name = "etag";
+      packageName = "etag";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+      };
+    };
+    "eventemitter3-4.0.7" = {
+      name = "eventemitter3";
+      packageName = "eventemitter3";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz";
+        sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
+      };
+    };
+    "express-4.17.1" = {
+      name = "express";
+      packageName = "express";
+      version = "4.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
+        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+      };
+    };
+    "extend-2.0.2" = {
+      name = "extend";
+      packageName = "extend";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend/-/extend-2.0.2.tgz";
+        sha512 = "AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==";
+      };
+    };
+    "extend-3.0.2" = {
+      name = "extend";
+      packageName = "extend";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
+        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+      };
+    };
+    "extsprintf-1.3.0" = {
+      name = "extsprintf";
+      packageName = "extsprintf";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
+        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+      };
+    };
+    "fast-deep-equal-3.1.3" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
+      };
+    };
+    "fast-glob-3.2.5" = {
+      name = "fast-glob";
+      packageName = "fast-glob";
+      version = "3.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz";
+        sha512 = "2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==";
+      };
+    };
+    "fast-json-stable-stringify-2.1.0" = {
+      name = "fast-json-stable-stringify";
+      packageName = "fast-json-stable-stringify";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+      };
+    };
+    "fast-levenshtein-2.0.6" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+      };
+    };
+    "fast-safe-stringify-2.0.7" = {
+      name = "fast-safe-stringify";
+      packageName = "fast-safe-stringify";
+      version = "2.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz";
+        sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
+      };
+    };
+    "fastq-1.11.0" = {
+      name = "fastq";
+      packageName = "fastq";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz";
+        sha512 = "7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==";
+      };
+    };
+    "fecha-4.2.0" = {
+      name = "fecha";
+      packageName = "fecha";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
+        sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
+      };
+    };
+    "file-entry-cache-6.0.1" = {
+      name = "file-entry-cache";
+      packageName = "file-entry-cache";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha512 = "7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==";
+      };
+    };
+    "file-stream-rotator-0.5.7" = {
+      name = "file-stream-rotator";
+      packageName = "file-stream-rotator";
+      version = "0.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.5.7.tgz";
+        sha512 = "VYb3HZ/GiAGUCrfeakO8Mp54YGswNUHvL7P09WQcXAJNSj3iQ5QraYSp3cIn1MUyw6uzfgN/EFOarCNa4JvUHQ==";
+      };
+    };
+    "fill-keys-1.0.2" = {
+      name = "fill-keys";
+      packageName = "fill-keys";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz";
+        sha1 = "9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20";
+      };
+    };
+    "fill-range-7.0.1" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+      };
+    };
+    "finalhandler-1.1.2" = {
+      name = "finalhandler";
+      packageName = "finalhandler";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
+        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
+      };
+    };
+    "find-cache-dir-2.1.0" = {
+      name = "find-cache-dir";
+      packageName = "find-cache-dir";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
+        sha512 = "Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==";
+      };
+    };
+    "find-up-3.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
+        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
+      };
+    };
+    "flat-cache-3.0.4" = {
+      name = "flat-cache";
+      packageName = "flat-cache";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha512 = "dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==";
+      };
+    };
+    "flatted-3.1.1" = {
+      name = "flatted";
+      packageName = "flatted";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz";
+        sha512 = "zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==";
+      };
+    };
+    "fn.name-1.1.0" = {
+      name = "fn.name";
+      packageName = "fn.name";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz";
+        sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
+      };
+    };
+    "foreground-child-1.5.6" = {
+      name = "foreground-child";
+      packageName = "foreground-child";
+      version = "1.5.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz";
+        sha1 = "4fd71ad2dfde96789b980a5c0a295937cb2f5ce9";
+      };
+    };
+    "forever-agent-0.6.1" = {
+      name = "forever-agent";
+      packageName = "forever-agent";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+      };
+    };
+    "form-data-2.3.3" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
+        sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
+      };
+    };
+    "forwarded-0.1.2" = {
+      name = "forwarded";
+      packageName = "forwarded";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
+        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+      };
+    };
+    "fresh-0.5.2" = {
+      name = "fresh";
+      packageName = "fresh";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "function-bind-1.1.1" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+      };
+    };
+    "functional-red-black-tree-1.0.1" = {
+      name = "functional-red-black-tree";
+      packageName = "functional-red-black-tree";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+      };
+    };
+    "generate-function-2.3.1" = {
+      name = "generate-function";
+      packageName = "generate-function";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz";
+        sha512 = "eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==";
+      };
+    };
+    "generate-object-property-1.2.0" = {
+      name = "generate-object-property";
+      packageName = "generate-object-property";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz";
+        sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
+      };
+    };
+    "get-caller-file-2.0.5" = {
+      name = "get-caller-file";
+      packageName = "get-caller-file";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
+      };
+    };
+    "getpass-0.1.7" = {
+      name = "getpass";
+      packageName = "getpass";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
+        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+      };
+    };
+    "glob-7.1.6" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+      };
+    };
+    "glob-parent-5.1.2" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
+      };
+    };
+    "glob-to-regexp-0.4.1" = {
+      name = "glob-to-regexp";
+      packageName = "glob-to-regexp";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
+        sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==";
+      };
+    };
+    "globals-11.12.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "11.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
+        sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
+      };
+    };
+    "globals-12.4.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "12.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz";
+        sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
+      };
+    };
+    "globals-13.6.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "13.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-13.6.0.tgz";
+        sha512 = "YFKCX0SiPg7l5oKYCJ2zZGxcXprVXHcSnVuvzrT3oSENQonVLqM5pf9fN5dLGZGyCjhw8TN8Btwe/jKnZ0pjvQ==";
+      };
+    };
+    "globby-11.0.2" = {
+      name = "globby";
+      packageName = "globby";
+      version = "11.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz";
+        sha512 = "2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==";
+      };
+    };
+    "graceful-fs-4.2.6" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
+      };
+    };
+    "har-schema-2.0.0" = {
+      name = "har-schema";
+      packageName = "har-schema";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+      };
+    };
+    "har-validator-5.1.5" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "5.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
+        sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
+      };
+    };
+    "has-1.0.3" = {
+      name = "has";
+      packageName = "has";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+      };
+    };
+    "has-flag-3.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    };
+    "has-flag-4.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+      };
+    };
+    "hash.js-1.1.7" = {
+      name = "hash.js";
+      packageName = "hash.js";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz";
+        sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==";
+      };
+    };
+    "hasha-3.0.0" = {
+      name = "hasha";
+      packageName = "hasha";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz";
+        sha1 = "52a32fab8569d41ca69a61ff1a214f8eb7c8bd39";
+      };
+    };
+    "he-1.2.0" = {
+      name = "he";
+      packageName = "he";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+      };
+    };
+    "hosted-git-info-2.8.8" = {
+      name = "hosted-git-info";
+      packageName = "hosted-git-info";
+      version = "2.8.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+        sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
+      };
+    };
+    "html-escaper-2.0.2" = {
+      name = "html-escaper";
+      packageName = "html-escaper";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz";
+        sha512 = "H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==";
+      };
+    };
+    "htmlencode-0.0.4" = {
+      name = "htmlencode";
+      packageName = "htmlencode";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz";
+        sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f";
+      };
+    };
+    "htmlparser2-4.1.0" = {
+      name = "htmlparser2";
+      packageName = "htmlparser2";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz";
+        sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==";
+      };
+    };
+    "http-errors-1.7.2" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
+        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
+      };
+    };
+    "http-signature-1.2.0" = {
+      name = "http-signature";
+      packageName = "http-signature";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+      };
+    };
+    "https-proxy-agent-5.0.0" = {
+      name = "https-proxy-agent";
+      packageName = "https-proxy-agent";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz";
+        sha512 = "EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==";
+      };
+    };
+    "iconv-2.3.5" = {
+      name = "iconv";
+      packageName = "iconv";
+      version = "2.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv/-/iconv-2.3.5.tgz";
+        sha512 = "U5ajDbtDfadp7pvUMC0F2XbkP5vQn9Xrwa6UptePl+cK8EILxapAt3sXers9B3Gxagk+zVjL2ELKuzQvyqOwug==";
+      };
+    };
+    "iconv-lite-0.4.24" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.4.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+      };
+    };
+    "ignore-4.0.6" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "4.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz";
+        sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==";
+      };
+    };
+    "ignore-5.1.8" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "5.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
+        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+      };
+    };
+    "immediate-3.0.6" = {
+      name = "immediate";
+      packageName = "immediate";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz";
+        sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
+      };
+    };
+    "import-fresh-3.3.0" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==";
+      };
+    };
+    "imurmurhash-0.1.4" = {
+      name = "imurmurhash";
+      packageName = "imurmurhash";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.3" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    };
+    "ipaddr.js-1.9.1" = {
+      name = "ipaddr.js";
+      packageName = "ipaddr.js";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
+      };
+    };
+    "irc-colors-1.5.0" = {
+      name = "irc-colors";
+      packageName = "irc-colors";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/irc-colors/-/irc-colors-1.5.0.tgz";
+        sha512 = "HtszKchBQTcqw1DC09uD7i7vvMayHGM1OCo6AHt5pkgZEyo99ClhHTMJdf+Ezc9ovuNNxcH89QfyclGthjZJOw==";
+      };
+    };
+    "irc-git://github.com/matrix-org/node-irc#9028c2197c216dd8e6fc2cb3cc07ce2d6bf741a7" = {
+      name = "irc";
+      packageName = "irc";
+      version = "0.3.12";
+      src = fetchgit {
+        url = "git://github.com/matrix-org/node-irc";
+        rev = "9028c2197c216dd8e6fc2cb3cc07ce2d6bf741a7";
+        sha256 = "0785d44389d34d7e7c614437c8c8e108f32b5d5022e6f29c47a6a40090d277a7";
+      };
+    };
+    "is-arrayish-0.2.1" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
+        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+      };
+    };
+    "is-arrayish-0.3.2" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
+        sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
+      };
+    };
+    "is-core-module-2.2.0" = {
+      name = "is-core-module";
+      packageName = "is-core-module";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz";
+        sha512 = "XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==";
+      };
+    };
+    "is-extglob-2.1.1" = {
+      name = "is-extglob";
+      packageName = "is-extglob";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    };
+    "is-fullwidth-code-point-2.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    };
+    "is-fullwidth-code-point-3.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
+      };
+    };
+    "is-glob-4.0.1" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+      };
+    };
+    "is-my-ip-valid-1.0.0" = {
+      name = "is-my-ip-valid";
+      packageName = "is-my-ip-valid";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz";
+        sha512 = "gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==";
+      };
+    };
+    "is-my-json-valid-2.20.5" = {
+      name = "is-my-json-valid";
+      packageName = "is-my-json-valid";
+      version = "2.20.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.5.tgz";
+        sha512 = "VTPuvvGQtxvCeghwspQu1rBgjYUT6FGxPlvFKbYuFtgc4ADsX3U5ihZOYN0qyU6u+d4X9xXb0IT5O6QpXKt87A==";
+      };
+    };
+    "is-number-7.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+      };
+    };
+    "is-object-1.0.2" = {
+      name = "is-object";
+      packageName = "is-object";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz";
+        sha512 = "2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==";
+      };
+    };
+    "is-promise-2.2.2" = {
+      name = "is-promise";
+      packageName = "is-promise";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz";
+        sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==";
+      };
+    };
+    "is-property-1.0.2" = {
+      name = "is-property";
+      packageName = "is-property";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz";
+        sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
+      };
+    };
+    "is-stream-1.1.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz";
+        sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+      };
+    };
+    "is-stream-2.0.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+      };
+    };
+    "is-typedarray-1.0.0" = {
+      name = "is-typedarray";
+      packageName = "is-typedarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "isexe-2.0.0" = {
+      name = "isexe";
+      packageName = "isexe";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    };
+    "isstream-0.1.2" = {
+      name = "isstream";
+      packageName = "isstream";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+      };
+    };
+    "istanbul-lib-coverage-2.0.5" = {
+      name = "istanbul-lib-coverage";
+      packageName = "istanbul-lib-coverage";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
+        sha512 = "8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==";
+      };
+    };
+    "istanbul-lib-hook-2.0.7" = {
+      name = "istanbul-lib-hook";
+      packageName = "istanbul-lib-hook";
+      version = "2.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz";
+        sha512 = "vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==";
+      };
+    };
+    "istanbul-lib-instrument-3.3.0" = {
+      name = "istanbul-lib-instrument";
+      packageName = "istanbul-lib-instrument";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
+        sha512 = "5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==";
+      };
+    };
+    "istanbul-lib-report-2.0.8" = {
+      name = "istanbul-lib-report";
+      packageName = "istanbul-lib-report";
+      version = "2.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
+        sha512 = "fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==";
+      };
+    };
+    "istanbul-lib-source-maps-3.0.6" = {
+      name = "istanbul-lib-source-maps";
+      packageName = "istanbul-lib-source-maps";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
+        sha512 = "R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==";
+      };
+    };
+    "istanbul-reports-2.2.7" = {
+      name = "istanbul-reports";
+      packageName = "istanbul-reports";
+      version = "2.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz";
+        sha512 = "uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==";
+      };
+    };
+    "jasmine-3.6.4" = {
+      name = "jasmine";
+      packageName = "jasmine";
+      version = "3.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jasmine/-/jasmine-3.6.4.tgz";
+        sha512 = "hIeOou6y0BgCOKYgXYveQvlY+PTHgDPajFf+vLCYbMTQ+VjAP9+EQv0nuC9+gyCAAWISRFauB1XUb9kFuOKtcQ==";
+      };
+    };
+    "jasmine-core-3.6.0" = {
+      name = "jasmine-core";
+      packageName = "jasmine-core";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz";
+        sha512 = "8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==";
+      };
+    };
+    "js-tokens-4.0.0" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+      };
+    };
+    "js-yaml-3.14.1" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "3.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz";
+        sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==";
+      };
+    };
+    "js-yaml-4.0.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz";
+        sha512 = "pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==";
+      };
+    };
+    "jsbn-0.1.1" = {
+      name = "jsbn";
+      packageName = "jsbn";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
+        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+      };
+    };
+    "jsesc-2.5.2" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+        sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
+      };
+    };
+    "json-parse-better-errors-1.0.2" = {
+      name = "json-parse-better-errors";
+      packageName = "json-parse-better-errors";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
+      };
+    };
+    "json-schema-0.2.3" = {
+      name = "json-schema";
+      packageName = "json-schema";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
+        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+      };
+    };
+    "json-schema-traverse-0.4.1" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
+      };
+    };
+    "json-schema-traverse-1.0.0" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha512 = "NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==";
+      };
+    };
+    "json-stable-stringify-without-jsonify-1.0.1" = {
+      name = "json-stable-stringify-without-jsonify";
+      packageName = "json-stable-stringify-without-jsonify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+      };
+    };
+    "json-stringify-safe-5.0.1" = {
+      name = "json-stringify-safe";
+      packageName = "json-stringify-safe";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    };
+    "jsonpointer-4.1.0" = {
+      name = "jsonpointer";
+      packageName = "jsonpointer";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz";
+        sha512 = "CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==";
+      };
+    };
+    "jsprim-1.4.1" = {
+      name = "jsprim";
+      packageName = "jsprim";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
+        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+      };
+    };
+    "kuler-2.0.0" = {
+      name = "kuler";
+      packageName = "kuler";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz";
+        sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
+      };
+    };
+    "levn-0.4.1" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz";
+        sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==";
+      };
+    };
+    "lie-3.1.1" = {
+      name = "lie";
+      packageName = "lie";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz";
+        sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
+      };
+    };
+    "load-json-file-4.0.0" = {
+      name = "load-json-file";
+      packageName = "load-json-file";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz";
+        sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
+      };
+    };
+    "localforage-1.9.0" = {
+      name = "localforage";
+      packageName = "localforage";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz";
+        sha512 = "rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==";
+      };
+    };
+    "locate-path-3.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
+        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
+      };
+    };
+    "lodash-4.17.21" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.21";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz";
+        sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
+      };
+    };
+    "lodash.flattendeep-4.4.0" = {
+      name = "lodash.flattendeep";
+      packageName = "lodash.flattendeep";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";
+        sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
+      };
+    };
+    "logform-2.2.0" = {
+      name = "logform";
+      packageName = "logform";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
+        sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
+      };
+    };
+    "loglevel-1.7.1" = {
+      name = "loglevel";
+      packageName = "loglevel";
+      version = "1.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz";
+        sha512 = "Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==";
+      };
+    };
+    "lowdb-1.0.0" = {
+      name = "lowdb";
+      packageName = "lowdb";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz";
+        sha512 = "2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==";
+      };
+    };
+    "lru-cache-4.1.5" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "4.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
+        sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
+      };
+    };
+    "lru-cache-5.1.1" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz";
+        sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==";
+      };
+    };
+    "lru-cache-6.0.0" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
+      };
+    };
+    "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";
+        sha1 = "b5c8351b9464cbd750335a79650a0ec0e56118dd";
+      };
+    };
+    "make-dir-2.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz";
+        sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
+      };
+    };
+    "matrix-appservice-0.8.0" = {
+      name = "matrix-appservice";
+      packageName = "matrix-appservice";
+      version = "0.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.8.0.tgz";
+        sha512 = "mfgMpmV3dWLtzrd4V/3XtqUD0P44I/mTgsRreW5jMhSaUnnRGZbpptBw2q4/axbLjw2FarlWtOVgertDGMtccA==";
+      };
+    };
+    "matrix-appservice-bridge-2.6.0" = {
+      name = "matrix-appservice-bridge";
+      packageName = "matrix-appservice-bridge";
+      version = "2.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-2.6.0.tgz";
+        sha512 = "o1KHQHG1GdfUhTFBXVLztwbTowuCFO9/h8n2zdkRK/bZsdcXSFQVfUwDtRULcyinD4N7r0Lrwlg1LyR0pg2WSw==";
+      };
+    };
+    "matrix-bot-sdk-0.4.0" = {
+      name = "matrix-bot-sdk";
+      packageName = "matrix-bot-sdk";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matrix-bot-sdk/-/matrix-bot-sdk-0.4.0.tgz";
+        sha512 = "ZIICFEYDsSX3emPnVRTV1FIV22zkt7KiJbTYN4rHQ3Z/rk66RB7Y+TMHxrkJCqPs3xVdaGmGkh5m+hNi4fibRg==";
+      };
+    };
+    "matrix-js-sdk-9.9.0" = {
+      name = "matrix-js-sdk";
+      packageName = "matrix-js-sdk";
+      version = "9.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.9.0.tgz";
+        sha512 = "rgy9b8D+GzjK3wfdmxDr42fxNV13fK12cvQD1qnsFzqPyJGeg++cazH/+7HxL/uuW/WQR6HAmfc7wo9VQegWtg==";
+      };
+    };
+    "matrix-lastactive-0.1.5" = {
+      name = "matrix-lastactive";
+      packageName = "matrix-lastactive";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matrix-lastactive/-/matrix-lastactive-0.1.5.tgz";
+        sha512 = "JFIMJPNGGqi0myzIlN94SQReUbCrWi1TW5PZih1OGXzUj2wXYz3puktV/f64HZYn6D1ZKcwxZdLuNCG8cRuCyw==";
+      };
+    };
+    "media-typer-0.3.0" = {
+      name = "media-typer";
+      packageName = "media-typer";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      };
+    };
+    "merge-descriptors-1.0.1" = {
+      name = "merge-descriptors";
+      packageName = "merge-descriptors";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+      };
+    };
+    "merge-source-map-1.1.0" = {
+      name = "merge-source-map";
+      packageName = "merge-source-map";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz";
+        sha512 = "Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==";
+      };
+    };
+    "merge2-1.4.1" = {
+      name = "merge2";
+      packageName = "merge2";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz";
+        sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
+      };
+    };
+    "methods-1.1.2" = {
+      name = "methods";
+      packageName = "methods";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
+        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+      };
+    };
+    "micromatch-4.0.2" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
+        sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+      };
+    };
+    "mime-1.6.0" = {
+      name = "mime";
+      packageName = "mime";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
+        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
+      };
+    };
+    "mime-db-1.46.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.46.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz";
+        sha512 = "svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==";
+      };
+    };
+    "mime-types-2.1.29" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.29";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz";
+        sha512 = "Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==";
+      };
+    };
+    "minimalistic-assert-1.0.1" = {
+      name = "minimalistic-assert";
+      packageName = "minimalistic-assert";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+        sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+      };
+    };
+    "minimist-1.2.5" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+      };
+    };
+    "mkdirp-0.5.5" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+      };
+    };
+    "module-not-found-error-1.0.1" = {
+      name = "module-not-found-error";
+      packageName = "module-not-found-error";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz";
+        sha1 = "cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0";
+      };
+    };
+    "moment-2.29.1" = {
+      name = "moment";
+      packageName = "moment";
+      version = "2.29.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz";
+        sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==";
+      };
+    };
+    "morgan-1.10.0" = {
+      name = "morgan";
+      packageName = "morgan";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz";
+        sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "ms-2.1.1" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+      };
+    };
+    "ms-2.1.2" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+      };
+    };
+    "nan-2.14.2" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz";
+        sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==";
+      };
+    };
+    "natural-compare-1.4.0" = {
+      name = "natural-compare";
+      packageName = "natural-compare";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";
+        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+      };
+    };
+    "nedb-1.8.0" = {
+      name = "nedb";
+      packageName = "nedb";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz";
+        sha1 = "0e3502cd82c004d5355a43c9e55577bd7bd91d88";
+      };
+    };
+    "negotiator-0.6.2" = {
+      name = "negotiator";
+      packageName = "negotiator";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
+        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+      };
+    };
+    "nested-error-stacks-2.1.0" = {
+      name = "nested-error-stacks";
+      packageName = "nested-error-stacks";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz";
+        sha512 = "AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==";
+      };
+    };
+    "node-gyp-build-4.2.3" = {
+      name = "node-gyp-build";
+      packageName = "node-gyp-build";
+      version = "4.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz";
+        sha512 = "MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==";
+      };
+    };
+    "nopt-3.0.6" = {
+      name = "nopt";
+      packageName = "nopt";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz";
+        sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
+      };
+    };
+    "nopt-5.0.0" = {
+      name = "nopt";
+      packageName = "nopt";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz";
+        sha512 = "Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==";
+      };
+    };
+    "normalize-package-data-2.5.0" = {
+      name = "normalize-package-data";
+      packageName = "normalize-package-data";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+        sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
+      };
+    };
+    "nyc-14.1.1" = {
+      name = "nyc";
+      packageName = "nyc";
+      version = "14.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz";
+        sha512 = "OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==";
+      };
+    };
+    "oauth-sign-0.9.0" = {
+      name = "oauth-sign";
+      packageName = "oauth-sign";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
+        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+      };
+    };
+    "object-hash-2.1.1" = {
+      name = "object-hash";
+      packageName = "object-hash";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz";
+        sha512 = "VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==";
+      };
+    };
+    "on-finished-2.3.0" = {
+      name = "on-finished";
+      packageName = "on-finished";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    };
+    "on-headers-1.0.2" = {
+      name = "on-headers";
+      packageName = "on-headers";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
+        sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
+      };
+    };
+    "once-1.4.0" = {
+      name = "once";
+      packageName = "once";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    };
+    "one-time-1.0.0" = {
+      name = "one-time";
+      packageName = "one-time";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz";
+        sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==";
+      };
+    };
+    "optimist-0.3.7" = {
+      name = "optimist";
+      packageName = "optimist";
+      version = "0.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz";
+        sha1 = "c90941ad59e4273328923074d2cf2e7cbc6ec0d9";
+      };
+    };
+    "optionator-0.9.1" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz";
+        sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==";
+      };
+    };
+    "os-homedir-1.0.2" = {
+      name = "os-homedir";
+      packageName = "os-homedir";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
+        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+      };
+    };
+    "p-finally-1.0.0" = {
+      name = "p-finally";
+      packageName = "p-finally";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz";
+        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+      };
+    };
+    "p-limit-2.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+      };
+    };
+    "p-locate-3.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
+        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
+      };
+    };
+    "p-queue-6.6.2" = {
+      name = "p-queue";
+      packageName = "p-queue";
+      version = "6.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz";
+        sha512 = "RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==";
+      };
+    };
+    "p-timeout-3.2.0" = {
+      name = "p-timeout";
+      packageName = "p-timeout";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz";
+        sha512 = "rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==";
+      };
+    };
+    "p-try-2.2.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+      };
+    };
+    "package-hash-3.0.0" = {
+      name = "package-hash";
+      packageName = "package-hash";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz";
+        sha512 = "lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==";
+      };
+    };
+    "packet-reader-1.0.0" = {
+      name = "packet-reader";
+      packageName = "packet-reader";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
+        sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
+      };
+    };
+    "parent-module-1.0.1" = {
+      name = "parent-module";
+      packageName = "parent-module";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz";
+        sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
+      };
+    };
+    "parse-json-4.0.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+      };
+    };
+    "parse-srcset-1.0.2" = {
+      name = "parse-srcset";
+      packageName = "parse-srcset";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz";
+        sha1 = "f2bd221f6cc970a938d88556abc589caaaa2bde1";
+      };
+    };
+    "parseurl-1.3.3" = {
+      name = "parseurl";
+      packageName = "parseurl";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
+      };
+    };
+    "path-exists-3.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
+        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "path-key-3.1.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";
+        sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
+      };
+    };
+    "path-parse-1.0.6" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+      };
+    };
+    "path-to-regexp-0.1.7" = {
+      name = "path-to-regexp";
+      packageName = "path-to-regexp";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+      };
+    };
+    "path-type-3.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz";
+        sha512 = "T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==";
+      };
+    };
+    "path-type-4.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
+        sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
+      };
+    };
+    "performance-now-2.1.0" = {
+      name = "performance-now";
+      packageName = "performance-now";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+      };
+    };
+    "pg-8.5.1" = {
+      name = "pg";
+      packageName = "pg";
+      version = "8.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz";
+        sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==";
+      };
+    };
+    "pg-connection-string-2.4.0" = {
+      name = "pg-connection-string";
+      packageName = "pg-connection-string";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
+        sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==";
+      };
+    };
+    "pg-int8-1.0.1" = {
+      name = "pg-int8";
+      packageName = "pg-int8";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
+        sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
+      };
+    };
+    "pg-pool-3.2.2" = {
+      name = "pg-pool";
+      packageName = "pg-pool";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz";
+        sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==";
+      };
+    };
+    "pg-protocol-1.4.0" = {
+      name = "pg-protocol";
+      packageName = "pg-protocol";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz";
+        sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==";
+      };
+    };
+    "pg-types-2.2.0" = {
+      name = "pg-types";
+      packageName = "pg-types";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz";
+        sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
+      };
+    };
+    "pgpass-1.0.4" = {
+      name = "pgpass";
+      packageName = "pgpass";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz";
+        sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==";
+      };
+    };
+    "picomatch-2.2.2" = {
+      name = "picomatch";
+      packageName = "picomatch";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
+        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+      };
+    };
+    "pify-3.0.0" = {
+      name = "pify";
+      packageName = "pify";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";
+        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+      };
+    };
+    "pify-4.0.1" = {
+      name = "pify";
+      packageName = "pify";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz";
+        sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==";
+      };
+    };
+    "pkg-dir-3.0.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz";
+        sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==";
+      };
+    };
+    "postcss-7.0.35" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "7.0.35";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz";
+        sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
+      };
+    };
+    "postgres-array-2.0.0" = {
+      name = "postgres-array";
+      packageName = "postgres-array";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
+        sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==";
+      };
+    };
+    "postgres-bytea-1.0.0" = {
+      name = "postgres-bytea";
+      packageName = "postgres-bytea";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+        sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+      };
+    };
+    "postgres-date-1.0.7" = {
+      name = "postgres-date";
+      packageName = "postgres-date";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz";
+        sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==";
+      };
+    };
+    "postgres-interval-1.2.0" = {
+      name = "postgres-interval";
+      packageName = "postgres-interval";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
+        sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
+      };
+    };
+    "prelude-ls-1.2.1" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==";
+      };
+    };
+    "process-nextick-args-2.0.1" = {
+      name = "process-nextick-args";
+      packageName = "process-nextick-args";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+      };
+    };
+    "progress-2.0.3" = {
+      name = "progress";
+      packageName = "progress";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz";
+        sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==";
+      };
+    };
+    "prom-client-13.1.0" = {
+      name = "prom-client";
+      packageName = "prom-client";
+      version = "13.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prom-client/-/prom-client-13.1.0.tgz";
+        sha512 = "jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng==";
+      };
+    };
+    "proxy-addr-2.0.6" = {
+      name = "proxy-addr";
+      packageName = "proxy-addr";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
+        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
+      };
+    };
+    "proxyquire-1.8.0" = {
+      name = "proxyquire";
+      packageName = "proxyquire";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxyquire/-/proxyquire-1.8.0.tgz";
+        sha1 = "02d514a5bed986f04cbb2093af16741535f79edc";
+      };
+    };
+    "pseudomap-1.0.2" = {
+      name = "pseudomap";
+      packageName = "pseudomap";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+      };
+    };
+    "psl-1.8.0" = {
+      name = "psl";
+      packageName = "psl";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
+      };
+    };
+    "punycode-2.1.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+      };
+    };
+    "qs-6.5.2" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+      };
+    };
+    "qs-6.7.0" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
+        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
+      };
+    };
+    "qs-6.9.6" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.9.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz";
+        sha512 = "TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==";
+      };
+    };
+    "queue-microtask-1.2.2" = {
+      name = "queue-microtask";
+      packageName = "queue-microtask";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz";
+        sha512 = "dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==";
+      };
+    };
+    "quick-lru-4.0.1" = {
+      name = "quick-lru";
+      packageName = "quick-lru";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz";
+        sha512 = "ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==";
+      };
+    };
+    "range-parser-1.2.1" = {
+      name = "range-parser";
+      packageName = "range-parser";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
+      };
+    };
+    "raw-body-2.4.0" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
+        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
+      };
+    };
+    "read-pkg-3.0.0" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz";
+        sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
+      };
+    };
+    "read-pkg-up-4.0.0" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
+        sha512 = "6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==";
+      };
+    };
+    "readable-stream-2.3.7" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    };
+    "readable-stream-3.6.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+      };
+    };
+    "rebuild-0.1.2" = {
+      name = "rebuild";
+      packageName = "rebuild";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rebuild/-/rebuild-0.1.2.tgz";
+        sha1 = "03acdea5515130b479092746e093daf8cf883e93";
+      };
+    };
+    "regenerator-runtime-0.13.7" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.13.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
+      };
+    };
+    "regexpp-3.1.0" = {
+      name = "regexpp";
+      packageName = "regexpp";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz";
+        sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
+      };
+    };
+    "release-zalgo-1.0.0" = {
+      name = "release-zalgo";
+      packageName = "release-zalgo";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz";
+        sha1 = "09700b7e5074329739330e535c5a90fb67851730";
+      };
+    };
+    "request-2.88.2" = {
+      name = "request";
+      packageName = "request";
+      version = "2.88.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
+        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
+      };
+    };
+    "request-promise-4.2.6" = {
+      name = "request-promise";
+      packageName = "request-promise";
+      version = "4.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz";
+        sha512 = "HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==";
+      };
+    };
+    "request-promise-core-1.1.4" = {
+      name = "request-promise-core";
+      packageName = "request-promise-core";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz";
+        sha512 = "TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==";
+      };
+    };
+    "request-promise-native-1.0.9" = {
+      name = "request-promise-native";
+      packageName = "request-promise-native";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz";
+        sha512 = "wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==";
+      };
+    };
+    "require-directory-2.1.1" = {
+      name = "require-directory";
+      packageName = "require-directory";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    };
+    "require-from-string-2.0.2" = {
+      name = "require-from-string";
+      packageName = "require-from-string";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha512 = "Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==";
+      };
+    };
+    "require-main-filename-2.0.0" = {
+      name = "require-main-filename";
+      packageName = "require-main-filename";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
+      };
+    };
+    "resolve-1.1.7" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz";
+        sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
+      };
+    };
+    "resolve-1.20.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz";
+        sha512 = "wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==";
+      };
+    };
+    "resolve-from-4.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
+      };
+    };
+    "reusify-1.0.4" = {
+      name = "reusify";
+      packageName = "reusify";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz";
+        sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
+      };
+    };
+    "rimraf-2.7.1" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "2.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
+        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+      };
+    };
+    "rimraf-3.0.2" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
+        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
+      };
+    };
+    "run-parallel-1.2.0" = {
+      name = "run-parallel";
+      packageName = "run-parallel";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz";
+        sha512 = "5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==";
+      };
+    };
+    "safe-buffer-5.1.2" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    };
+    "safe-buffer-5.2.1" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
+      };
+    };
+    "safer-buffer-2.1.2" = {
+      name = "safer-buffer";
+      packageName = "safer-buffer";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+      };
+    };
+    "sanitize-html-1.27.5" = {
+      name = "sanitize-html";
+      packageName = "sanitize-html";
+      version = "1.27.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz";
+        sha512 = "M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==";
+      };
+    };
+    "semver-5.7.1" = {
+      name = "semver";
+      packageName = "semver";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+      };
+    };
+    "semver-6.3.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+      };
+    };
+    "semver-7.3.4" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz";
+        sha512 = "tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==";
+      };
+    };
+    "send-0.17.1" = {
+      name = "send";
+      packageName = "send";
+      version = "0.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
+        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+      };
+    };
+    "serve-static-1.14.1" = {
+      name = "serve-static";
+      packageName = "serve-static";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
+        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+      };
+    };
+    "set-blocking-2.0.0" = {
+      name = "set-blocking";
+      packageName = "set-blocking";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    };
+    "setprototypeof-1.1.1" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
+        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+      };
+    };
+    "shebang-command-2.0.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
+      };
+    };
+    "shebang-regex-3.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
+      };
+    };
+    "signal-exit-3.0.3" = {
+      name = "signal-exit";
+      packageName = "signal-exit";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+      };
+    };
+    "simple-swizzle-0.2.2" = {
+      name = "simple-swizzle";
+      packageName = "simple-swizzle";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+      };
+    };
+    "slash-3.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
+        sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
+      };
+    };
+    "slice-ansi-4.0.0" = {
+      name = "slice-ansi";
+      packageName = "slice-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha512 = "qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==";
+      };
+    };
+    "source-map-0.5.7" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    };
+    "source-map-0.6.1" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "spawn-wrap-1.4.3" = {
+      name = "spawn-wrap";
+      packageName = "spawn-wrap";
+      version = "1.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz";
+        sha512 = "IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==";
+      };
+    };
+    "spdx-correct-3.1.1" = {
+      name = "spdx-correct";
+      packageName = "spdx-correct";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz";
+        sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==";
+      };
+    };
+    "spdx-exceptions-2.3.0" = {
+      name = "spdx-exceptions";
+      packageName = "spdx-exceptions";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
+      };
+    };
+    "spdx-expression-parse-3.0.1" = {
+      name = "spdx-expression-parse";
+      packageName = "spdx-expression-parse";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
+      };
+    };
+    "spdx-license-ids-3.0.7" = {
+      name = "spdx-license-ids";
+      packageName = "spdx-license-ids";
+      version = "3.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz";
+        sha512 = "U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==";
+      };
+    };
+    "split2-3.2.2" = {
+      name = "split2";
+      packageName = "split2";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz";
+        sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
+      };
+    };
+    "sprintf-js-1.0.3" = {
+      name = "sprintf-js";
+      packageName = "sprintf-js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    };
+    "sshpk-1.16.1" = {
+      name = "sshpk";
+      packageName = "sshpk";
+      version = "1.16.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
+        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+      };
+    };
+    "stack-trace-0.0.10" = {
+      name = "stack-trace";
+      packageName = "stack-trace";
+      version = "0.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz";
+        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+      };
+    };
+    "statuses-1.5.0" = {
+      name = "statuses";
+      packageName = "statuses";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+      };
+    };
+    "stealthy-require-1.1.1" = {
+      name = "stealthy-require";
+      packageName = "stealthy-require";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz";
+        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
+      };
+    };
+    "steno-0.4.4" = {
+      name = "steno";
+      packageName = "steno";
+      version = "0.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz";
+        sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb";
+      };
+    };
+    "string-width-3.1.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+      };
+    };
+    "string-width-4.2.2" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz";
+        sha512 = "XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==";
+      };
+    };
+    "string_decoder-1.1.1" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+      };
+    };
+    "string_decoder-1.3.0" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
+        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
+      };
+    };
+    "strip-ansi-5.2.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+      };
+    };
+    "strip-ansi-6.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+      };
+    };
+    "strip-bom-3.0.0" = {
+      name = "strip-bom";
+      packageName = "strip-bom";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";
+        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+      };
+    };
+    "strip-json-comments-3.1.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
+      };
+    };
+    "supports-color-5.5.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+      };
+    };
+    "supports-color-6.1.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
+        sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==";
+      };
+    };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
+    "table-6.0.7" = {
+      name = "table";
+      packageName = "table";
+      version = "6.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-6.0.7.tgz";
+        sha512 = "rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==";
+      };
+    };
+    "tdigest-0.1.1" = {
+      name = "tdigest";
+      packageName = "tdigest";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz";
+        sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021";
+      };
+    };
+    "test-exclude-5.2.3" = {
+      name = "test-exclude";
+      packageName = "test-exclude";
+      version = "5.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz";
+        sha512 = "M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==";
+      };
+    };
+    "text-hex-1.0.0" = {
+      name = "text-hex";
+      packageName = "text-hex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz";
+        sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==";
+      };
+    };
+    "text-table-0.2.0" = {
+      name = "text-table";
+      packageName = "text-table";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
+        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+      };
+    };
+    "to-fast-properties-2.0.0" = {
+      name = "to-fast-properties";
+      packageName = "to-fast-properties";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    };
+    "to-regex-range-5.0.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
+      };
+    };
+    "toidentifier-1.0.0" = {
+      name = "toidentifier";
+      packageName = "toidentifier";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
+        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+      };
+    };
+    "tough-cookie-2.5.0" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
+        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+      };
+    };
+    "triple-beam-1.3.0" = {
+      name = "triple-beam";
+      packageName = "triple-beam";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz";
+        sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==";
+      };
+    };
+    "tslib-1.14.1" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz";
+        sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
+      };
+    };
+    "tsutils-3.21.0" = {
+      name = "tsutils";
+      packageName = "tsutils";
+      version = "3.21.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz";
+        sha512 = "mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==";
+      };
+    };
+    "tunnel-agent-0.6.0" = {
+      name = "tunnel-agent";
+      packageName = "tunnel-agent";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+      };
+    };
+    "tweetnacl-0.14.5" = {
+      name = "tweetnacl";
+      packageName = "tweetnacl";
+      version = "0.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
+        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+      };
+    };
+    "type-check-0.4.0" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz";
+        sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==";
+      };
+    };
+    "type-fest-0.20.2" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.20.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz";
+        sha512 = "Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==";
+      };
+    };
+    "type-fest-0.8.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+        sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+      };
+    };
+    "type-is-1.6.18" = {
+      name = "type-is";
+      packageName = "type-is";
+      version = "1.6.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
+        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
+      };
+    };
+    "typescript-4.2.3" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "4.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz";
+        sha512 = "qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==";
+      };
+    };
+    "underscore-1.4.4" = {
+      name = "underscore";
+      packageName = "underscore";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz";
+        sha1 = "61a6a32010622afa07963bf325203cf12239d604";
+      };
+    };
+    "unhomoglyph-1.0.6" = {
+      name = "unhomoglyph";
+      packageName = "unhomoglyph";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz";
+        sha512 = "7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==";
+      };
+    };
+    "unpipe-1.0.0" = {
+      name = "unpipe";
+      packageName = "unpipe";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
+        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+      };
+    };
+    "uri-js-4.4.1" = {
+      name = "uri-js";
+      packageName = "uri-js";
+      version = "4.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz";
+        sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
+      };
+    };
+    "utf-8-validate-5.0.4" = {
+      name = "utf-8-validate";
+      packageName = "utf-8-validate";
+      version = "5.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz";
+        sha512 = "MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "utils-merge-1.0.1" = {
+      name = "utils-merge";
+      packageName = "utils-merge";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+      };
+    };
+    "uuid-3.4.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+      };
+    };
+    "v8-compile-cache-2.3.0" = {
+      name = "v8-compile-cache";
+      packageName = "v8-compile-cache";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==";
+      };
+    };
+    "validate-npm-package-license-3.0.4" = {
+      name = "validate-npm-package-license";
+      packageName = "validate-npm-package-license";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+        sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==";
+      };
+    };
+    "vary-1.1.2" = {
+      name = "vary";
+      packageName = "vary";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
+        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+      };
+    };
+    "verror-1.10.0" = {
+      name = "verror";
+      packageName = "verror";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+      };
+    };
+    "which-1.3.1" = {
+      name = "which";
+      packageName = "which";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
+        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+      };
+    };
+    "which-2.0.2" = {
+      name = "which";
+      packageName = "which";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
+        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
+      };
+    };
+    "which-module-2.0.0" = {
+      name = "which-module";
+      packageName = "which-module";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+      };
+    };
+    "winston-3.3.3" = {
+      name = "winston";
+      packageName = "winston";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz";
+        sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
+      };
+    };
+    "winston-daily-rotate-file-4.5.1" = {
+      name = "winston-daily-rotate-file";
+      packageName = "winston-daily-rotate-file";
+      version = "4.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.1.tgz";
+        sha512 = "Uv1KeBneTKFZ9R3J6SmI61vOoPEofxS+GZGEwYRPc7QFE1fpEz648eGWxLnOeo8CBrANwsd+GfK5DCd4Ab1xAQ==";
+      };
+    };
+    "winston-transport-4.4.0" = {
+      name = "winston-transport";
+      packageName = "winston-transport";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
+      };
+    };
+    "word-wrap-1.2.3" = {
+      name = "word-wrap";
+      packageName = "word-wrap";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    };
+    "wordwrap-0.0.3" = {
+      name = "wordwrap";
+      packageName = "wordwrap";
+      version = "0.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz";
+        sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
+      };
+    };
+    "wrap-ansi-5.1.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
+        sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "write-file-atomic-2.4.3" = {
+      name = "write-file-atomic";
+      packageName = "write-file-atomic";
+      version = "2.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz";
+        sha512 = "GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==";
+      };
+    };
+    "xtend-4.0.2" = {
+      name = "xtend";
+      packageName = "xtend";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+      };
+    };
+    "y18n-4.0.1" = {
+      name = "y18n";
+      packageName = "y18n";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz";
+        sha512 = "wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==";
+      };
+    };
+    "yallist-2.1.2" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
+        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+      };
+    };
+    "yallist-3.1.1" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
+        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
+      };
+    };
+    "yallist-4.0.0" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
+        sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
+      };
+    };
+    "yargs-13.3.2" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "13.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz";
+        sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==";
+      };
+    };
+    "yargs-parser-13.1.2" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "13.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
+        sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
+      };
+    };
+  };
+in
+{
+  "matrix-appservice-irc-git+https://github.com/matrix-org/matrix-appservice-irc.git#0.25.0" = nodeEnv.buildNodePackage {
+    name = "matrix-appservice-irc";
+    packageName = "matrix-appservice-irc";
+    version = "0.25.0";
+    src = fetchgit {
+      url = "https://github.com/matrix-org/matrix-appservice-irc.git";
+      rev = "a23f71633f63fd42c6ecf74d8e6111e710ec9533";
+      sha256 = "aac686d18b823c1bf0ff13343b5bc43866c8ce2b15efa9547a0d2ee4ecb4da42";
+    };
+    dependencies = [
+      sources."@babel/code-frame-7.12.11"
+      (sources."@babel/generator-7.13.9" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-get-function-arity-7.12.13"
+      sources."@babel/helper-split-export-declaration-7.12.13"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      (sources."@babel/highlight-7.13.10" // {
+        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."escape-string-regexp-1.0.5"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."@babel/parser-7.13.11"
+      sources."@babel/runtime-7.13.10"
+      (sources."@babel/template-7.12.13" // {
+        dependencies = [
+          sources."@babel/code-frame-7.12.13"
+        ];
+      })
+      (sources."@babel/traverse-7.13.0" // {
+        dependencies = [
+          sources."@babel/code-frame-7.12.13"
+          sources."globals-11.12.0"
+        ];
+      })
+      sources."@babel/types-7.13.0"
+      sources."@dabh/diagnostics-2.0.2"
+      (sources."@eslint/eslintrc-0.4.0" // {
+        dependencies = [
+          sources."globals-12.4.0"
+          sources."ignore-4.0.6"
+        ];
+      })
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
+      sources."@sentry/core-5.30.0"
+      sources."@sentry/hub-5.30.0"
+      sources."@sentry/minimal-5.30.0"
+      sources."@sentry/node-5.30.0"
+      sources."@sentry/tracing-5.30.0"
+      sources."@sentry/types-5.30.0"
+      sources."@sentry/utils-5.30.0"
+      sources."@types/bluebird-3.5.33"
+      sources."@types/body-parser-1.19.0"
+      sources."@types/connect-3.4.34"
+      sources."@types/express-4.17.11"
+      sources."@types/express-serve-static-core-4.17.19"
+      sources."@types/extend-3.0.1"
+      sources."@types/he-1.1.1"
+      sources."@types/json-schema-7.0.7"
+      sources."@types/mime-1.3.2"
+      sources."@types/nedb-1.8.11"
+      sources."@types/node-14.14.35"
+      sources."@types/nopt-3.0.29"
+      sources."@types/pg-7.14.11"
+      sources."@types/qs-6.9.6"
+      sources."@types/range-parser-1.2.3"
+      sources."@types/sanitize-html-1.27.1"
+      sources."@types/serve-static-1.13.9"
+      sources."@typescript-eslint/eslint-plugin-4.18.0"
+      sources."@typescript-eslint/experimental-utils-4.18.0"
+      sources."@typescript-eslint/parser-4.18.0"
+      sources."@typescript-eslint/scope-manager-4.18.0"
+      sources."@typescript-eslint/types-4.18.0"
+      sources."@typescript-eslint/typescript-estree-4.18.0"
+      sources."@typescript-eslint/visitor-keys-4.18.0"
+      sources."abbrev-1.1.1"
+      sources."accepts-1.3.7"
+      sources."acorn-7.4.1"
+      sources."acorn-jsx-5.3.1"
+      sources."agent-base-6.0.2"
+      sources."ajv-6.12.6"
+      sources."another-json-0.2.0"
+      sources."ansi-colors-4.1.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.3.0"
+      sources."append-transform-1.0.0"
+      sources."archy-1.0.0"
+      sources."argparse-1.0.10"
+      sources."array-flatten-1.1.1"
+      sources."array-union-2.1.0"
+      sources."asn1-0.2.4"
+      sources."assert-plus-1.0.0"
+      sources."astral-regex-2.0.0"
+      sources."async-0.2.10"
+      sources."asynckit-0.4.0"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.11.0"
+      sources."balanced-match-1.0.0"
+      sources."base-x-3.0.8"
+      sources."basic-auth-2.0.1"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."binary-search-tree-0.2.5"
+      sources."bintrees-1.0.1"
+      sources."bluebird-3.7.2"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."browser-request-0.3.3"
+      sources."bs58-4.0.1"
+      sources."buffer-writer-2.0.0"
+      sources."bytes-3.1.0"
+      sources."caching-transform-3.0.2"
+      sources."callsites-3.1.0"
+      sources."camelcase-5.3.1"
+      sources."caseless-0.12.0"
+      sources."chalk-4.1.0"
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      (sources."color-3.0.0" // {
+        dependencies = [
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+        ];
+      })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."color-string-1.5.5"
+      sources."colors-1.4.0"
+      sources."colorspace-1.1.2"
+      sources."combined-stream-1.0.8"
+      sources."commondir-1.0.1"
+      sources."concat-map-0.0.1"
+      sources."content-disposition-0.5.3"
+      sources."content-type-1.0.4"
+      sources."convert-source-map-1.7.0"
+      sources."cookie-0.4.1"
+      sources."cookie-signature-1.0.6"
+      sources."core-util-is-1.0.2"
+      (sources."cp-file-6.2.0" // {
+        dependencies = [
+          sources."pify-4.0.1"
+        ];
+      })
+      sources."cross-spawn-7.0.3"
+      sources."dashdash-1.14.1"
+      sources."debug-4.3.2"
+      sources."decamelize-1.2.0"
+      sources."deep-is-0.1.3"
+      sources."default-require-extensions-2.0.0"
+      sources."delayed-stream-1.0.0"
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."dir-glob-3.0.1"
+      sources."doctrine-3.0.0"
+      (sources."dom-serializer-1.2.0" // {
+        dependencies = [
+          sources."domhandler-4.0.0"
+        ];
+      })
+      sources."domelementtype-2.1.0"
+      sources."domhandler-3.3.0"
+      (sources."domutils-2.5.0" // {
+        dependencies = [
+          sources."domhandler-4.0.0"
+        ];
+      })
+      sources."ecc-jsbn-0.1.2"
+      sources."ee-first-1.1.1"
+      sources."emoji-regex-8.0.0"
+      sources."enabled-2.0.0"
+      sources."encodeurl-1.0.2"
+      sources."enquirer-2.3.6"
+      sources."entities-2.2.0"
+      (sources."error-ex-1.3.2" // {
+        dependencies = [
+          sources."is-arrayish-0.2.1"
+        ];
+      })
+      sources."es6-error-4.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-2.0.0"
+      (sources."eslint-7.22.0" // {
+        dependencies = [
+          sources."ignore-4.0.6"
+        ];
+      })
+      sources."eslint-scope-5.1.1"
+      (sources."eslint-utils-2.1.0" // {
+        dependencies = [
+          sources."eslint-visitor-keys-1.3.0"
+        ];
+      })
+      sources."eslint-visitor-keys-2.0.0"
+      (sources."espree-7.3.1" // {
+        dependencies = [
+          sources."eslint-visitor-keys-1.3.0"
+        ];
+      })
+      sources."esprima-4.0.1"
+      (sources."esquery-1.4.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."etag-1.8.1"
+      sources."eventemitter3-4.0.7"
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."cookie-0.4.0"
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."extend-2.0.2"
+      sources."extsprintf-1.3.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-3.2.5"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fastq-1.11.0"
+      sources."fecha-4.2.0"
+      sources."file-entry-cache-6.0.1"
+      sources."file-stream-rotator-0.5.7"
+      sources."fill-keys-1.0.2"
+      sources."fill-range-7.0.1"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."find-cache-dir-2.1.0"
+      sources."find-up-3.0.0"
+      sources."flat-cache-3.0.4"
+      sources."flatted-3.1.1"
+      sources."fn.name-1.1.0"
+      (sources."foreground-child-1.5.6" // {
+        dependencies = [
+          sources."cross-spawn-4.0.2"
+          sources."lru-cache-4.1.5"
+          sources."which-1.3.1"
+          sources."yallist-2.1.2"
+        ];
+      })
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      sources."forwarded-0.1.2"
+      sources."fresh-0.5.2"
+      sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
+      sources."functional-red-black-tree-1.0.1"
+      sources."generate-function-2.3.1"
+      sources."generate-object-property-1.2.0"
+      sources."get-caller-file-2.0.5"
+      sources."getpass-0.1.7"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.2"
+      sources."glob-to-regexp-0.4.1"
+      (sources."globals-13.6.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
+      sources."globby-11.0.2"
+      sources."graceful-fs-4.2.6"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.5"
+      sources."has-1.0.3"
+      sources."has-flag-4.0.0"
+      sources."hash.js-1.1.7"
+      (sources."hasha-3.0.0" // {
+        dependencies = [
+          sources."is-stream-1.1.0"
+        ];
+      })
+      sources."he-1.2.0"
+      sources."hosted-git-info-2.8.8"
+      sources."html-escaper-2.0.2"
+      sources."htmlencode-0.0.4"
+      sources."htmlparser2-4.1.0"
+      sources."http-errors-1.7.2"
+      sources."http-signature-1.2.0"
+      sources."https-proxy-agent-5.0.0"
+      sources."iconv-2.3.5"
+      sources."iconv-lite-0.4.24"
+      sources."ignore-5.1.8"
+      sources."immediate-3.0.6"
+      sources."import-fresh-3.3.0"
+      sources."imurmurhash-0.1.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.3"
+      sources."ipaddr.js-1.9.1"
+      sources."irc-git://github.com/matrix-org/node-irc#9028c2197c216dd8e6fc2cb3cc07ce2d6bf741a7"
+      sources."irc-colors-1.5.0"
+      sources."is-arrayish-0.3.2"
+      sources."is-core-module-2.2.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-my-ip-valid-1.0.0"
+      sources."is-my-json-valid-2.20.5"
+      sources."is-number-7.0.0"
+      sources."is-object-1.0.2"
+      sources."is-promise-2.2.2"
+      sources."is-property-1.0.2"
+      sources."is-stream-2.0.0"
+      sources."is-typedarray-1.0.0"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isstream-0.1.2"
+      sources."istanbul-lib-coverage-2.0.5"
+      sources."istanbul-lib-hook-2.0.7"
+      (sources."istanbul-lib-instrument-3.3.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."istanbul-lib-report-2.0.8" // {
+        dependencies = [
+          sources."has-flag-3.0.0"
+          sources."supports-color-6.1.0"
+        ];
+      })
+      (sources."istanbul-lib-source-maps-3.0.6" // {
+        dependencies = [
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."istanbul-reports-2.2.7"
+      sources."jasmine-3.6.4"
+      sources."jasmine-core-3.6.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.1"
+      sources."jsbn-0.1.1"
+      sources."jsesc-2.5.2"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsonpointer-4.1.0"
+      sources."jsprim-1.4.1"
+      sources."kuler-2.0.0"
+      sources."levn-0.4.1"
+      sources."lie-3.1.1"
+      sources."load-json-file-4.0.0"
+      sources."localforage-1.9.0"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.21"
+      sources."lodash.flattendeep-4.4.0"
+      sources."logform-2.2.0"
+      sources."loglevel-1.7.1"
+      sources."lowdb-1.0.0"
+      sources."lru-cache-5.1.1"
+      sources."lru_map-0.3.3"
+      (sources."make-dir-2.1.0" // {
+        dependencies = [
+          sources."pify-4.0.1"
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."matrix-appservice-0.8.0"
+      (sources."matrix-appservice-bridge-2.6.0" // {
+        dependencies = [
+          sources."argparse-2.0.1"
+          sources."extend-3.0.2"
+          sources."js-yaml-4.0.0"
+          sources."nopt-5.0.0"
+        ];
+      })
+      (sources."matrix-bot-sdk-0.4.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      (sources."matrix-js-sdk-9.9.0" // {
+        dependencies = [
+          sources."qs-6.9.6"
+        ];
+      })
+      sources."matrix-lastactive-0.1.5"
+      sources."media-typer-0.3.0"
+      sources."merge-descriptors-1.0.1"
+      sources."merge-source-map-1.1.0"
+      sources."merge2-1.4.1"
+      sources."methods-1.1.2"
+      sources."micromatch-4.0.2"
+      sources."mime-1.6.0"
+      sources."mime-db-1.46.0"
+      sources."mime-types-2.1.29"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."module-not-found-error-1.0.1"
+      sources."moment-2.29.1"
+      (sources."morgan-1.10.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."depd-2.0.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."ms-2.1.2"
+      sources."nan-2.14.2"
+      sources."natural-compare-1.4.0"
+      sources."nedb-1.8.0"
+      sources."negotiator-0.6.2"
+      sources."nested-error-stacks-2.1.0"
+      sources."node-gyp-build-4.2.3"
+      sources."nopt-3.0.6"
+      (sources."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      (sources."nyc-14.1.1" // {
+        dependencies = [
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."oauth-sign-0.9.0"
+      sources."object-hash-2.1.1"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."one-time-1.0.0"
+      sources."optimist-0.3.7"
+      sources."optionator-0.9.1"
+      sources."os-homedir-1.0.2"
+      sources."p-finally-1.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
+      sources."p-queue-6.6.2"
+      sources."p-timeout-3.2.0"
+      sources."p-try-2.2.0"
+      sources."package-hash-3.0.0"
+      sources."packet-reader-1.0.0"
+      sources."parent-module-1.0.1"
+      sources."parse-json-4.0.0"
+      sources."parse-srcset-1.0.2"
+      sources."parseurl-1.3.3"
+      sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
+      sources."path-parse-1.0.6"
+      sources."path-to-regexp-0.1.7"
+      sources."path-type-4.0.0"
+      sources."performance-now-2.1.0"
+      sources."pg-8.5.1"
+      sources."pg-connection-string-2.4.0"
+      sources."pg-int8-1.0.1"
+      sources."pg-pool-3.2.2"
+      sources."pg-protocol-1.4.0"
+      sources."pg-types-2.2.0"
+      sources."pgpass-1.0.4"
+      sources."picomatch-2.2.2"
+      sources."pify-3.0.0"
+      sources."pkg-dir-3.0.0"
+      (sources."postcss-7.0.35" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          (sources."chalk-2.4.2" // {
+            dependencies = [
+              sources."supports-color-5.5.0"
+            ];
+          })
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."escape-string-regexp-1.0.5"
+          sources."has-flag-3.0.0"
+          sources."supports-color-6.1.0"
+        ];
+      })
+      sources."postgres-array-2.0.0"
+      sources."postgres-bytea-1.0.0"
+      sources."postgres-date-1.0.7"
+      sources."postgres-interval-1.2.0"
+      sources."prelude-ls-1.2.1"
+      sources."process-nextick-args-2.0.1"
+      sources."progress-2.0.3"
+      sources."prom-client-13.1.0"
+      sources."proxy-addr-2.0.6"
+      (sources."proxyquire-1.8.0" // {
+        dependencies = [
+          sources."resolve-1.1.7"
+        ];
+      })
+      sources."pseudomap-1.0.2"
+      sources."psl-1.8.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.7.0"
+      sources."queue-microtask-1.2.2"
+      sources."quick-lru-4.0.1"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      (sources."read-pkg-3.0.0" // {
+        dependencies = [
+          sources."path-type-3.0.0"
+        ];
+      })
+      sources."read-pkg-up-4.0.0"
+      sources."readable-stream-3.6.0"
+      sources."rebuild-0.1.2"
+      sources."regenerator-runtime-0.13.7"
+      sources."regexpp-3.1.0"
+      sources."release-zalgo-1.0.0"
+      (sources."request-2.88.2" // {
+        dependencies = [
+          sources."extend-3.0.2"
+          sources."qs-6.5.2"
+        ];
+      })
+      sources."request-promise-4.2.6"
+      sources."request-promise-core-1.1.4"
+      sources."request-promise-native-1.0.9"
+      sources."require-directory-2.1.1"
+      sources."require-from-string-2.0.2"
+      sources."require-main-filename-2.0.0"
+      sources."resolve-1.20.0"
+      sources."resolve-from-4.0.0"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
+      sources."run-parallel-1.2.0"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."sanitize-html-1.27.5"
+      (sources."semver-7.3.4" // {
+        dependencies = [
+          sources."lru-cache-6.0.0"
+          sources."yallist-4.0.0"
+        ];
+      })
+      (sources."send-0.17.1" // {
+        dependencies = [
+          (sources."debug-2.6.9" // {
+            dependencies = [
+              sources."ms-2.0.0"
+            ];
+          })
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
+      sources."setprototypeof-1.1.1"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-3.0.3"
+      sources."simple-swizzle-0.2.2"
+      sources."slash-3.0.0"
+      sources."slice-ansi-4.0.0"
+      sources."source-map-0.6.1"
+      (sources."spawn-wrap-1.4.3" // {
+        dependencies = [
+          sources."rimraf-2.7.1"
+          sources."which-1.3.1"
+        ];
+      })
+      sources."spdx-correct-3.1.1"
+      sources."spdx-exceptions-2.3.0"
+      sources."spdx-expression-parse-3.0.1"
+      sources."spdx-license-ids-3.0.7"
+      sources."split2-3.2.2"
+      sources."sprintf-js-1.0.3"
+      sources."sshpk-1.16.1"
+      sources."stack-trace-0.0.10"
+      sources."statuses-1.5.0"
+      sources."stealthy-require-1.1.1"
+      sources."steno-0.4.4"
+      sources."string-width-4.2.2"
+      (sources."string_decoder-1.3.0" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."strip-ansi-6.0.0"
+      sources."strip-bom-3.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-7.2.0"
+      (sources."table-6.0.7" // {
+        dependencies = [
+          sources."ajv-7.2.1"
+          sources."json-schema-traverse-1.0.0"
+        ];
+      })
+      sources."tdigest-0.1.1"
+      sources."test-exclude-5.2.3"
+      sources."text-hex-1.0.0"
+      sources."text-table-0.2.0"
+      sources."to-fast-properties-2.0.0"
+      sources."to-regex-range-5.0.1"
+      sources."toidentifier-1.0.0"
+      sources."tough-cookie-2.5.0"
+      sources."triple-beam-1.3.0"
+      sources."tslib-1.14.1"
+      sources."tsutils-3.21.0"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."type-check-0.4.0"
+      sources."type-fest-0.8.1"
+      sources."type-is-1.6.18"
+      sources."typescript-4.2.3"
+      sources."underscore-1.4.4"
+      sources."unhomoglyph-1.0.6"
+      sources."unpipe-1.0.0"
+      sources."uri-js-4.4.1"
+      sources."utf-8-validate-5.0.4"
+      sources."util-deprecate-1.0.2"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.4.0"
+      sources."v8-compile-cache-2.3.0"
+      sources."validate-npm-package-license-3.0.4"
+      sources."vary-1.1.2"
+      sources."verror-1.10.0"
+      sources."which-2.0.2"
+      sources."which-module-2.0.0"
+      (sources."winston-3.3.3" // {
+        dependencies = [
+          sources."async-3.2.0"
+        ];
+      })
+      sources."winston-daily-rotate-file-4.5.1"
+      (sources."winston-transport-4.4.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."word-wrap-1.2.3"
+      sources."wordwrap-0.0.3"
+      (sources."wrap-ansi-5.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."ansi-styles-3.2.1"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."write-file-atomic-2.4.3"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.1"
+      sources."yallist-3.1.1"
+      (sources."yargs-13.3.2" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."yargs-parser-13.1.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "An IRC Bridge for Matrix";
+      license = "Apache-2.0";
+    };
+    production = false;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json
new file mode 100644
index 000000000000..19d29cd0448e
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json
@@ -0,0 +1,3 @@
+[
+    {"matrix-appservice-irc": "git+https://github.com/matrix-org/matrix-appservice-irc.git#0.25.0" }
+]
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 9d3b484a5714..62a732461546 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
@@ -1,11 +1,10 @@
 { pkgs, nodejs, stdenv, fetchFromGitHub, lib, ... }:
-
 let
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "matrix-appservice-slack";
-    rev = "1.4.0";
-    sha256 = "1xm75rgg7yrz40y2w1njiwfwz17a8wwlvr7a6zyxvkl8cqrgzp6d";
+    rev = "1.7.0";
+    sha256 = "sha256-0BcnG/DGvc3uh/eP0KIB5gPSpXNPlaAl78D4bVCnLHg=";
   };
 
   nodePackages = import ./node-composition.nix {
@@ -25,7 +24,7 @@ nodePackages.package.override {
 
   meta = with lib; {
     description = "A Matrix <--> Slack bridge";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ beardhatcode ];
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
index a6a359876abd..6e622bdd75f6 100755
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
@@ -1,9 +1,9 @@
 #!/usr/bin/env nix-shell
 #! nix-shell -i bash -p nodePackages.node2nix
 
-# Download package.json and package-lock.json from the v1.4.0 release
-curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/9462a75715ea9afba23b757ec90554f10f457a96/package.json -o package.json
-curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/9462a75715ea9afba23b757ec90554f10f457a96/package-lock.json -o package-lock.json
+# Download package.json and package-lock.json from the v1.7.0 release
+curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.7.0/package.json -o package.json
+curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.7.0/package-lock.json -o package-lock.json
 
 node2nix \
   --nodejs-12 \
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
index 0b989d159ca9..90e9d67f9d82 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
@@ -4,67 +4,121 @@
 
 let
   sources = {
-    "@babel/code-frame-7.8.3" = {
+    "@babel/code-frame-7.12.11" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.8.3";
+      version = "7.12.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
-        sha512 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz";
+        sha512 = "Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==";
       };
     };
-    "@babel/helper-validator-identifier-7.9.0" = {
+    "@babel/helper-validator-identifier-7.12.11" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.9.0";
+      version = "7.12.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz";
-        sha512 = "6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
+        sha512 = "np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==";
       };
     };
-    "@babel/highlight-7.9.0" = {
+    "@babel/highlight-7.10.4" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz";
-        sha512 = "lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
       };
     };
-    "@slack/logger-1.1.0" = {
+    "@babel/runtime-7.12.13" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz";
+        sha512 = "8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw==";
+      };
+    };
+    "@dabh/diagnostics-2.0.2" = {
+      name = "_at_dabh_slash_diagnostics";
+      packageName = "@dabh/diagnostics";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+        sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
+      };
+    };
+    "@eslint/eslintrc-0.2.2" = {
+      name = "_at_eslint_slash_eslintrc";
+      packageName = "@eslint/eslintrc";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz";
+        sha512 = "EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==";
+      };
+    };
+    "@nodelib/fs.scandir-2.1.4" = {
+      name = "_at_nodelib_slash_fs.scandir";
+      packageName = "@nodelib/fs.scandir";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz";
+        sha512 = "33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==";
+      };
+    };
+    "@nodelib/fs.stat-2.0.4" = {
+      name = "_at_nodelib_slash_fs.stat";
+      packageName = "@nodelib/fs.stat";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz";
+        sha512 = "IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==";
+      };
+    };
+    "@nodelib/fs.walk-1.2.6" = {
+      name = "_at_nodelib_slash_fs.walk";
+      packageName = "@nodelib/fs.walk";
+      version = "1.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
+        sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==";
+      };
+    };
+    "@slack/logger-2.0.0" = {
       name = "_at_slack_slash_logger";
       packageName = "@slack/logger";
-      version = "1.1.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/logger/-/logger-1.1.0.tgz";
-        sha512 = "D3tabyLoUrsFy0w3koxaCVv+5ZJfIy+j0QW3PUq0XO3UiVuF5rtpAbqngAYVpeKnxPpqBjeth4XJ3tllKoW3aA==";
+        url = "https://registry.npmjs.org/@slack/logger/-/logger-2.0.0.tgz";
+        sha512 = "OkIJpiU2fz6HOJujhlhfIGrc8hB4ibqtf7nnbJQDerG0BqwZCfmgtK5sWzZ0TkXVRBKD5MpLrTmCYyMxoMCgPw==";
       };
     };
-    "@slack/rtm-api-5.0.3" = {
+    "@slack/rtm-api-5.0.5" = {
       name = "_at_slack_slash_rtm-api";
       packageName = "@slack/rtm-api";
-      version = "5.0.3";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/rtm-api/-/rtm-api-5.0.3.tgz";
-        sha512 = "rzNIFst8iuVYyHdE7e3KSrbAtIA7sfS4Pth9ObKUm5KDemX0zyI7YfAijO1kgr1EMriQkjlpKBhlNq9Y+aQr6g==";
+        url = "https://registry.npmjs.org/@slack/rtm-api/-/rtm-api-5.0.5.tgz";
+        sha512 = "x2B4hyoxjg62cxf4M5QRomx+xYp2XoajPKdd24SM2Sl4m+IrzwKzmcrysQuYmF6BMsm3IoTKymW5BBGckHGTIw==";
       };
     };
-    "@slack/types-1.5.0" = {
+    "@slack/types-1.10.0" = {
       name = "_at_slack_slash_types";
       packageName = "@slack/types";
-      version = "1.5.0";
+      version = "1.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/types/-/types-1.5.0.tgz";
-        sha512 = "oCYgatJYxHf9wE3tKXzOLeeTsF0ghX1TIcguNfVmO2V6NDe+cHAzZRglEOmJLdRINDS5gscAgSkeZpDhpKBeUA==";
+        url = "https://registry.npmjs.org/@slack/types/-/types-1.10.0.tgz";
+        sha512 = "tA7GG7Tj479vojfV3AoxbckalA48aK6giGjNtgH6ihpLwTyHE3fIgRrvt8TWfLwW8X8dyu7vgmAsGLRG7hWWOg==";
       };
     };
-    "@slack/web-api-5.8.0" = {
+    "@slack/web-api-5.15.0" = {
       name = "_at_slack_slash_web-api";
       packageName = "@slack/web-api";
-      version = "5.8.0";
+      version = "5.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/web-api/-/web-api-5.8.0.tgz";
-        sha512 = "lUMFM9jtdn+9Q0kHLegf5RjIgQlmb1PGWwWdTsc9mQ8PJu2BogI5ZttG8/tA6r2bX/C4bgXhd0JJ4syUR0AAhQ==";
+        url = "https://registry.npmjs.org/@slack/web-api/-/web-api-5.15.0.tgz";
+        sha512 = "tjQ8Zqv/Fmj9SOL9yIEd7IpTiKfKHi9DKAkfRVeotoX0clMr3SqQtBqO+KZMX27gm7dmgJsQaDKlILyzdCO+IA==";
       };
     };
     "@types/body-parser-1.19.0" = {
@@ -76,58 +130,40 @@ let
         sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
       };
     };
-    "@types/caseless-0.12.2" = {
-      name = "_at_types_slash_caseless";
-      packageName = "@types/caseless";
-      version = "0.12.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz";
-        sha512 = "6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==";
-      };
-    };
-    "@types/chai-4.2.11" = {
+    "@types/chai-4.2.14" = {
       name = "_at_types_slash_chai";
       packageName = "@types/chai";
-      version = "4.2.11";
+      version = "4.2.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/chai/-/chai-4.2.11.tgz";
-        sha512 = "t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw==";
+        url = "https://registry.npmjs.org/@types/chai/-/chai-4.2.14.tgz";
+        sha512 = "G+ITQPXkwTrslfG5L/BksmbLUA0M1iybEsmCWPqzSxsRRhJZimBKJkoMi8fr/CPygPTj4zO5pJH7I2/cm9M7SQ==";
       };
     };
-    "@types/connect-3.4.33" = {
+    "@types/connect-3.4.34" = {
       name = "_at_types_slash_connect";
       packageName = "@types/connect";
-      version = "3.4.33";
+      version = "3.4.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz";
-        sha512 = "2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==";
+        url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz";
+        sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==";
       };
     };
-    "@types/events-3.0.0" = {
-      name = "_at_types_slash_events";
-      packageName = "@types/events";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
-        sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==";
-      };
-    };
-    "@types/express-4.17.3" = {
+    "@types/express-4.17.10" = {
       name = "_at_types_slash_express";
       packageName = "@types/express";
-      version = "4.17.3";
+      version = "4.17.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express/-/express-4.17.3.tgz";
-        sha512 = "I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg==";
+        url = "https://registry.npmjs.org/@types/express/-/express-4.17.10.tgz";
+        sha512 = "GRwKdE+iV6mA8glCvQ7W5iaoIhd6u1HDsNTF76UPRi7T89SLjOfeCLShVmQSgpXzcpf3zgcz2SbMiCcjnYRRxQ==";
       };
     };
-    "@types/express-serve-static-core-4.17.3" = {
+    "@types/express-serve-static-core-4.17.18" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.3";
+      version = "4.17.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.3.tgz";
-        sha512 = "sHEsvEzjqN+zLbqP+8OXTipc10yH1QLR+hnr5uw29gi9AhCAAAdri8ClNV7iMdrJrIzXIQtlkPvq8tJGhj3QJQ==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz";
+        sha512 = "m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==";
       };
     };
     "@types/is-stream-1.1.0" = {
@@ -139,40 +175,49 @@ let
         sha512 = "jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==";
       };
     };
-    "@types/mime-2.0.1" = {
+    "@types/json-schema-7.0.6" = {
+      name = "_at_types_slash_json-schema";
+      packageName = "@types/json-schema";
+      version = "7.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz";
+        sha512 = "3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==";
+      };
+    };
+    "@types/mime-2.0.3" = {
       name = "_at_types_slash_mime";
       packageName = "@types/mime";
-      version = "2.0.1";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz";
-        sha512 = "FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==";
+        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz";
+        sha512 = "Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==";
       };
     };
-    "@types/mocha-7.0.2" = {
+    "@types/mocha-8.2.0" = {
       name = "_at_types_slash_mocha";
       packageName = "@types/mocha";
-      version = "7.0.2";
+      version = "8.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz";
-        sha512 = "ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==";
+        url = "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.0.tgz";
+        sha512 = "/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==";
       };
     };
-    "@types/nedb-1.8.9" = {
+    "@types/nedb-1.8.11" = {
       name = "_at_types_slash_nedb";
       packageName = "@types/nedb";
-      version = "1.8.9";
+      version = "1.8.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.9.tgz";
-        sha512 = "w9Tl3DQCkdT0Ghes+PKhe+3/pZppBXuFFpSCjPJbb2KE3DjYmUpEyCYzjrAYlT9Y1TndnbbnChzkax2h/JorVQ==";
+        url = "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.11.tgz";
+        sha512 = "qHQRLZ0e6l/XK/2Qb2v5N1ujmdttYkUvnRI4nPIifMy6vYwoAnER10xhX13isWjjQtNsrjNLinZgDDguzPmEKw==";
       };
     };
-    "@types/node-13.9.3" = {
+    "@types/node-14.14.20" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.9.3";
+      version = "14.14.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.9.3.tgz";
-        sha512 = "01s+ac4qerwd6RHD+mVbOEsraDHSgUaefQlEdBbUolnQFjKwCr7luvAlEwW1RFojh67u0z4OUTjPn9LEl4zIkA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz";
+        sha512 = "Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==";
       };
     };
     "@types/node-emoji-1.8.1" = {
@@ -202,6 +247,15 @@ let
         sha512 = "eKAv5Ql6k78dh3ULCsSBxX6bFNuGjTmof5Q/T6PiECDq0Yf8IIn46jCyp3RJvCi8owaEmm3DZH1PEImjBMd/vQ==";
       };
     };
+    "@types/qs-6.9.5" = {
+      name = "_at_types_slash_qs";
+      packageName = "@types/qs";
+      version = "6.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz";
+        sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==";
+      };
+    };
     "@types/randomstring-1.1.6" = {
       name = "_at_types_slash_randomstring";
       packageName = "@types/randomstring";
@@ -220,24 +274,6 @@ let
         sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
       };
     };
-    "@types/request-2.48.4" = {
-      name = "_at_types_slash_request";
-      packageName = "@types/request";
-      version = "2.48.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/request/-/request-2.48.4.tgz";
-        sha512 = "W1t1MTKYR8PxICH+A4HgEIPuAC3sbljoEVfyZbeFJJDbr30guDspJri2XOaM2E+Un7ZjrihaDi7cf6fPa2tbgw==";
-      };
-    };
-    "@types/request-promise-native-1.0.17" = {
-      name = "_at_types_slash_request-promise-native";
-      packageName = "@types/request-promise-native";
-      version = "1.0.17";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/request-promise-native/-/request-promise-native-1.0.17.tgz";
-        sha512 = "05/d0WbmuwjtGMYEdHIBZ0tqMJJQ2AD9LG2F6rKNBGX1SSFR27XveajH//2N/XYtual8T9Axwl+4v7oBtPUZqg==";
-      };
-    };
     "@types/retry-0.12.0" = {
       name = "_at_types_slash_retry";
       packageName = "@types/retry";
@@ -247,58 +283,130 @@ let
         sha512 = "wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==";
       };
     };
-    "@types/serve-static-1.13.3" = {
+    "@types/serve-static-1.13.8" = {
       name = "_at_types_slash_serve-static";
       packageName = "@types/serve-static";
-      version = "1.13.3";
+      version = "1.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz";
-        sha512 = "oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==";
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz";
+        sha512 = "MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==";
       };
     };
-    "@types/tough-cookie-2.3.6" = {
-      name = "_at_types_slash_tough-cookie";
-      packageName = "@types/tough-cookie";
-      version = "2.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.6.tgz";
-        sha512 = "wHNBMnkoEBiRAd3s8KTKwIuO9biFtTf0LehITzBhSco+HQI0xkXZbLOD55SW3Aqw3oUkHstkm5SPv58yaAdFPQ==";
-      };
-    };
-    "@types/uuid-7.0.2" = {
+    "@types/uuid-8.3.0" = {
       name = "_at_types_slash_uuid";
       packageName = "@types/uuid";
-      version = "7.0.2";
+      version = "8.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uuid/-/uuid-7.0.2.tgz";
-        sha512 = "8Ly3zIPTnT0/8RCU6Kg/G3uTICf9sRwYOpUzSIM3503tLIKcnJPRuinHhXngJUy2MntrEf6dlpOHXJju90Qh5w==";
+        url = "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz";
+        sha512 = "eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==";
       };
     };
-    "@types/ws-5.1.2" = {
+    "@types/ws-7.2.6" = {
       name = "_at_types_slash_ws";
       packageName = "@types/ws";
-      version = "5.1.2";
+      version = "7.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/ws/-/ws-5.1.2.tgz";
-        sha512 = "NkTXUKTYdXdnPE2aUUbGOXE1XfMK527SCvU/9bj86kyFF6kZ9ZnOQ3mK5jADn98Y2vEUD/7wKDgZa7Qst2wYOg==";
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.2.6.tgz";
+        sha512 = "Q07IrQUSNpr+cXU4E4LtkSIBPie5GLZyyMC1QtQYRLWz701+XcoVygGUZgvLqElq1nU4ICldMYPnexlBsg3dqQ==";
       };
     };
-    "@types/yargs-13.0.0" = {
+    "@types/yargs-15.0.12" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
-      version = "13.0.0";
+      version = "15.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.0.tgz";
-        sha512 = "hY0o+kcz9M6kH32NUeb6VURghqMuCVkiUx+8Btsqhj4Hhov/hVGUx9DmBJeIkzlp1uAQK4wngQBCjqWdUUkFyA==";
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz";
+        sha512 = "f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==";
       };
     };
-    "@types/yargs-parser-13.0.0" = {
+    "@types/yargs-parser-15.0.0" = {
       name = "_at_types_slash_yargs-parser";
       packageName = "@types/yargs-parser";
-      version = "13.0.0";
+      version = "15.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
+        sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==";
+      };
+    };
+    "@typescript-eslint/eslint-plugin-4.13.0" = {
+      name = "_at_typescript-eslint_slash_eslint-plugin";
+      packageName = "@typescript-eslint/eslint-plugin";
+      version = "4.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.0.0.tgz";
-        sha512 = "wBlsw+8n21e6eTd4yVv8YD/E3xq0O6nNnJIquutAsFGE7EyMKz7W6RNT6BRu1SmdgmlCZ9tb0X+j+D6HGr8pZw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.13.0.tgz";
+        sha512 = "ygqDUm+BUPvrr0jrXqoteMqmIaZ/bixYOc3A4BRwzEPTZPi6E+n44rzNZWaB0YvtukgP+aoj0i/fyx7FkM2p1w==";
+      };
+    };
+    "@typescript-eslint/eslint-plugin-tslint-4.13.0" = {
+      name = "_at_typescript-eslint_slash_eslint-plugin-tslint";
+      packageName = "@typescript-eslint/eslint-plugin-tslint";
+      version = "4.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-4.13.0.tgz";
+        sha512 = "r6n4irL74bOx4z2f0WxnwG6MY67EESvjvK/VMoIlDelW3Q6cwunCH8ug3l8hkPtgJ7iObmUjpAWKxyF4ZdvEcw==";
+      };
+    };
+    "@typescript-eslint/experimental-utils-4.13.0" = {
+      name = "_at_typescript-eslint_slash_experimental-utils";
+      packageName = "@typescript-eslint/experimental-utils";
+      version = "4.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.13.0.tgz";
+        sha512 = "/ZsuWmqagOzNkx30VWYV3MNB/Re/CGv/7EzlqZo5RegBN8tMuPaBgNK6vPBCQA8tcYrbsrTdbx3ixMRRKEEGVw==";
+      };
+    };
+    "@typescript-eslint/parser-4.13.0" = {
+      name = "_at_typescript-eslint_slash_parser";
+      packageName = "@typescript-eslint/parser";
+      version = "4.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.13.0.tgz";
+        sha512 = "KO0J5SRF08pMXzq9+abyHnaGQgUJZ3Z3ax+pmqz9vl81JxmTTOUfQmq7/4awVfq09b6C4owNlOgOwp61pYRBSg==";
+      };
+    };
+    "@typescript-eslint/scope-manager-4.13.0" = {
+      name = "_at_typescript-eslint_slash_scope-manager";
+      packageName = "@typescript-eslint/scope-manager";
+      version = "4.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.13.0.tgz";
+        sha512 = "UpK7YLG2JlTp/9G4CHe7GxOwd93RBf3aHO5L+pfjIrhtBvZjHKbMhBXTIQNkbz7HZ9XOe++yKrXutYm5KmjWgQ==";
+      };
+    };
+    "@typescript-eslint/types-4.13.0" = {
+      name = "_at_typescript-eslint_slash_types";
+      packageName = "@typescript-eslint/types";
+      version = "4.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.13.0.tgz";
+        sha512 = "/+aPaq163oX+ObOG00M0t9tKkOgdv9lq0IQv/y4SqGkAXmhFmCfgsELV7kOCTb2vVU5VOmVwXBXJTDr353C1rQ==";
+      };
+    };
+    "@typescript-eslint/typescript-estree-4.13.0" = {
+      name = "_at_typescript-eslint_slash_typescript-estree";
+      packageName = "@typescript-eslint/typescript-estree";
+      version = "4.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.13.0.tgz";
+        sha512 = "9A0/DFZZLlGXn5XA349dWQFwPZxcyYyCFX5X88nWs2uachRDwGeyPz46oTsm9ZJE66EALvEns1lvBwa4d9QxMg==";
+      };
+    };
+    "@typescript-eslint/visitor-keys-4.13.0" = {
+      name = "_at_typescript-eslint_slash_visitor-keys";
+      packageName = "@typescript-eslint/visitor-keys";
+      version = "4.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.13.0.tgz";
+        sha512 = "6RoxWK05PAibukE7jElqAtNMq+RWZyqJ6Q/GdIxaiUj2Ept8jh8+FUVlbq9WxMYxkmEOPvCE5cRSyupMpwW31g==";
+      };
+    };
+    "@ungap/promise-all-settled-1.1.2" = {
+      name = "_at_ungap_slash_promise-all-settled";
+      packageName = "@ungap/promise-all-settled";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz";
+        sha512 = "sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==";
       };
     };
     "Slackdown-git://github.com/half-shot/slackdown#efd8934a3d9c3bf0064c0b217c5cf6b62ee697e4" = {
@@ -338,13 +446,40 @@ let
         sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
-    "ajv-6.10.2" = {
+    "acorn-7.4.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz";
+        sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
+      };
+    };
+    "acorn-jsx-5.3.1" = {
+      name = "acorn-jsx";
+      packageName = "acorn-jsx";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha512 = "K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==";
+      };
+    };
+    "ajv-6.12.6" = {
       name = "ajv";
       packageName = "ajv";
-      version = "6.10.2";
+      version = "6.12.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz";
-        sha512 = "TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz";
+        sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
+      };
+    };
+    "ajv-7.0.3" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz";
+        sha512 = "R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==";
       };
     };
     "another-json-0.2.0" = {
@@ -356,13 +491,13 @@ let
         sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc";
       };
     };
-    "ansi-colors-3.2.3" = {
+    "ansi-colors-4.1.1" = {
       name = "ansi-colors";
       packageName = "ansi-colors";
-      version = "3.2.3";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz";
-        sha512 = "LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==";
+        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
       };
     };
     "ansi-regex-3.0.0" = {
@@ -383,6 +518,15 @@ let
         sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
       };
     };
+    "ansi-regex-5.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+      };
+    };
     "ansi-styles-3.2.1" = {
       name = "ansi-styles";
       packageName = "ansi-styles";
@@ -392,6 +536,15 @@ let
         sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
       };
     };
+    "ansi-styles-4.3.0" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
+      };
+    };
     "anymatch-3.1.1" = {
       name = "anymatch";
       packageName = "anymatch";
@@ -419,6 +572,15 @@ let
         sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
       };
     };
+    "argparse-2.0.1" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz";
+        sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
+      };
+    };
     "array-flatten-1.1.1" = {
       name = "array-flatten";
       packageName = "array-flatten";
@@ -428,6 +590,15 @@ let
         sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
       };
     };
+    "array-union-2.1.0" = {
+      name = "array-union";
+      packageName = "array-union";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz";
+        sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
+      };
+    };
     "array-uniq-1.0.2" = {
       name = "array-uniq";
       packageName = "array-uniq";
@@ -455,13 +626,13 @@ let
         sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
       };
     };
-    "assert-options-0.6.2" = {
+    "assert-options-0.7.0" = {
       name = "assert-options";
       packageName = "assert-options";
-      version = "0.6.2";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/assert-options/-/assert-options-0.6.2.tgz";
-        sha512 = "KP9S549XptFAPGYmLRnIjQBL4/Ry8Jx5YNLQZ/l+eejqbTidBMnw4uZSAsUrzBq/lgyqDYqxcTF7cOxZb9gyEw==";
+        url = "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz";
+        sha512 = "7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ==";
       };
     };
     "assert-plus-1.0.0" = {
@@ -482,6 +653,15 @@ let
         sha512 = "jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==";
       };
     };
+    "astral-regex-2.0.0" = {
+      name = "astral-regex";
+      packageName = "astral-regex";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha512 = "Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==";
+      };
+    };
     "async-0.2.10" = {
       name = "async";
       packageName = "async";
@@ -491,13 +671,13 @@ let
         sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
       };
     };
-    "async-2.6.2" = {
+    "async-3.2.0" = {
       name = "async";
       packageName = "async";
-      version = "2.6.2";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-2.6.2.tgz";
-        sha512 = "H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==";
+        url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+        sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
       };
     };
     "async-limiter-1.0.1" = {
@@ -527,31 +707,22 @@ let
         sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
       };
     };
-    "aws4-1.9.0" = {
+    "aws4-1.11.0" = {
       name = "aws4";
       packageName = "aws4";
-      version = "1.9.0";
+      version = "1.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz";
-        sha512 = "Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==";
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz";
+        sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==";
       };
     };
-    "axios-0.19.2" = {
+    "axios-0.21.1" = {
       name = "axios";
       packageName = "axios";
-      version = "0.19.2";
+      version = "0.21.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz";
-        sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==";
-      };
-    };
-    "babel-runtime-6.26.0" = {
-      name = "babel-runtime";
-      packageName = "babel-runtime";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz";
-        sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+        url = "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz";
+        sha512 = "dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==";
       };
     };
     "balanced-match-1.0.0" = {
@@ -590,13 +761,13 @@ let
         sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
       };
     };
-    "binary-extensions-2.0.0" = {
+    "binary-extensions-2.1.0" = {
       name = "binary-extensions";
       packageName = "binary-extensions";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz";
-        sha512 = "Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==";
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz";
+        sha512 = "1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==";
       };
     };
     "binary-search-tree-0.2.5" = {
@@ -617,24 +788,6 @@ let
         sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524";
       };
     };
-    "bluebird-2.11.0" = {
-      name = "bluebird";
-      packageName = "bluebird";
-      version = "2.11.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz";
-        sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1";
-      };
-    };
-    "bluebird-3.5.5" = {
-      name = "bluebird";
-      packageName = "bluebird";
-      version = "3.5.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz";
-        sha512 = "5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==";
-      };
-    };
     "body-parser-1.19.0" = {
       name = "body-parser";
       packageName = "body-parser";
@@ -707,15 +860,6 @@ let
         sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
       };
     };
-    "builtin-modules-1.1.1" = {
-      name = "builtin-modules";
-      packageName = "builtin-modules";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz";
-        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
-      };
-    };
     "bytes-3.1.0" = {
       name = "bytes";
       packageName = "bytes";
@@ -725,6 +869,15 @@ let
         sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     };
+    "callsites-3.1.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
+        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
+      };
+    };
     "camelcase-5.3.1" = {
       name = "camelcase";
       packageName = "camelcase";
@@ -734,6 +887,15 @@ let
         sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
       };
     };
+    "camelcase-6.2.0" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz";
+        sha512 = "c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==";
+      };
+    };
     "caseless-0.12.0" = {
       name = "caseless";
       packageName = "caseless";
@@ -761,6 +923,15 @@ let
         sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
       };
     };
+    "chalk-4.1.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+        sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+      };
+    };
     "check-error-1.0.2" = {
       name = "check-error";
       packageName = "check-error";
@@ -770,13 +941,22 @@ let
         sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
       };
     };
-    "chokidar-3.3.0" = {
+    "chokidar-3.4.1" = {
       name = "chokidar";
       packageName = "chokidar";
-      version = "3.3.0";
+      version = "3.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz";
-        sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz";
+        sha512 = "TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==";
+      };
+    };
+    "chokidar-3.4.3" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz";
+        sha512 = "DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==";
       };
     };
     "cliui-5.0.0" = {
@@ -788,6 +968,15 @@ let
         sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
       };
     };
+    "cliui-7.0.4" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "7.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz";
+        sha512 = "OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==";
+      };
+    };
     "color-3.0.0" = {
       name = "color";
       packageName = "color";
@@ -806,6 +995,15 @@ let
         sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
       };
     };
+    "color-convert-2.0.1" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+      };
+    };
     "color-name-1.1.3" = {
       name = "color-name";
       packageName = "color-name";
@@ -815,6 +1013,15 @@ let
         sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
       };
     };
+    "color-name-1.1.4" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+      };
+    };
     "color-string-1.5.3" = {
       name = "color-string";
       packageName = "color-string";
@@ -824,15 +1031,6 @@ let
         sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==";
       };
     };
-    "colornames-1.1.1" = {
-      name = "colornames";
-      packageName = "colornames";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz";
-        sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
-      };
-    };
     "colors-1.3.3" = {
       name = "colors";
       packageName = "colors";
@@ -860,22 +1058,22 @@ let
         sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
       };
     };
-    "commander-2.20.3" = {
+    "commander-5.1.0" = {
       name = "commander";
       packageName = "commander";
-      version = "2.20.3";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
-        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+        url = "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz";
+        sha512 = "P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==";
       };
     };
-    "commander-3.0.2" = {
-      name = "commander";
-      packageName = "commander";
-      version = "3.0.2";
+    "comment-parser-0.7.6" = {
+      name = "comment-parser";
+      packageName = "comment-parser";
+      version = "0.7.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz";
-        sha512 = "Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==";
+        url = "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.6.tgz";
+        sha512 = "GKNxVA7/iuTnAqGADlTWX4tkhzxZKXp5fLJqKTlQLHkE65XDUKutZ3BHaJC5IGcper2tT3QRD1xr4o3jNpgXXg==";
       };
     };
     "concat-map-0.0.1" = {
@@ -923,15 +1121,6 @@ let
         sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
       };
     };
-    "core-js-2.6.11" = {
-      name = "core-js";
-      packageName = "core-js";
-      version = "2.6.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz";
-        sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==";
-      };
-    };
     "core-util-is-1.0.2" = {
       name = "core-util-is";
       packageName = "core-util-is";
@@ -941,22 +1130,22 @@ let
         sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
       };
     };
-    "cross-spawn-6.0.5" = {
-      name = "cross-spawn";
-      packageName = "cross-spawn";
-      version = "6.0.5";
+    "create-require-1.1.1" = {
+      name = "create-require";
+      packageName = "create-require";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
+        url = "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz";
+        sha512 = "dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==";
       };
     };
-    "cycle-1.0.3" = {
-      name = "cycle";
-      packageName = "cycle";
-      version = "1.0.3";
+    "cross-spawn-7.0.3" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "7.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
-        sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
       };
     };
     "dashdash-1.14.1" = {
@@ -977,22 +1166,22 @@ let
         sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
-    "debug-3.1.0" = {
+    "debug-4.2.0" = {
       name = "debug";
       packageName = "debug";
-      version = "3.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
-        sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==";
+        url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
+        sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
       };
     };
-    "debug-3.2.6" = {
+    "debug-4.3.1" = {
       name = "debug";
       packageName = "debug";
-      version = "3.2.6";
+      version = "4.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
-        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz";
+        sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==";
       };
     };
     "decamelize-1.2.0" = {
@@ -1004,6 +1193,15 @@ let
         sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
       };
     };
+    "decamelize-4.0.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz";
+        sha512 = "9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==";
+      };
+    };
     "deep-eql-3.0.1" = {
       name = "deep-eql";
       packageName = "deep-eql";
@@ -1013,13 +1211,13 @@ let
         sha512 = "+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==";
       };
     };
-    "define-properties-1.1.3" = {
-      name = "define-properties";
-      packageName = "define-properties";
-      version = "1.1.3";
+    "deep-is-0.1.3" = {
+      name = "deep-is";
+      packageName = "deep-is";
+      version = "0.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
-        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -1040,6 +1238,15 @@ let
         sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
       };
     };
+    "depd-2.0.0" = {
+      name = "depd";
+      packageName = "depd";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
+        sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
+      };
+    };
     "destroy-1.0.4" = {
       name = "destroy";
       packageName = "destroy";
@@ -1049,24 +1256,6 @@ let
         sha1 = "978857442c44749e4206613e37946205826abd80";
       };
     };
-    "diagnostics-1.1.1" = {
-      name = "diagnostics";
-      packageName = "diagnostics";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz";
-        sha512 = "8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==";
-      };
-    };
-    "diff-3.5.0" = {
-      name = "diff";
-      packageName = "diff";
-      version = "3.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz";
-        sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==";
-      };
-    };
     "diff-4.0.2" = {
       name = "diff";
       packageName = "diff";
@@ -1076,6 +1265,24 @@ let
         sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
       };
     };
+    "dir-glob-3.0.1" = {
+      name = "dir-glob";
+      packageName = "dir-glob";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz";
+        sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==";
+      };
+    };
+    "doctrine-3.0.0" = {
+      name = "doctrine";
+      packageName = "doctrine";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz";
+        sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==";
+      };
+    };
     "ecc-jsbn-0.1.2" = {
       name = "ecc-jsbn";
       packageName = "ecc-jsbn";
@@ -1103,13 +1310,22 @@ let
         sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
       };
     };
-    "enabled-1.0.2" = {
+    "emoji-regex-8.0.0" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
+      };
+    };
+    "enabled-2.0.0" = {
       name = "enabled";
       packageName = "enabled";
-      version = "1.0.2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz";
-        sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
+        url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz";
+        sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==";
       };
     };
     "encodeurl-1.0.2" = {
@@ -1121,40 +1337,22 @@ let
         sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
       };
     };
-    "end-of-stream-1.4.1" = {
-      name = "end-of-stream";
-      packageName = "end-of-stream";
-      version = "1.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz";
-        sha512 = "1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==";
-      };
-    };
-    "env-variable-0.0.5" = {
-      name = "env-variable";
-      packageName = "env-variable";
-      version = "0.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/env-variable/-/env-variable-0.0.5.tgz";
-        sha512 = "zoB603vQReOFvTg5xMl9I1P2PnHsHQQKTEowsKKD7nseUfJq6UWzK+4YtlWUO1nhiQUxe6XMkk+JleSZD1NZFA==";
-      };
-    };
-    "es-abstract-1.17.5" = {
-      name = "es-abstract";
-      packageName = "es-abstract";
-      version = "1.17.5";
+    "enquirer-2.3.6" = {
+      name = "enquirer";
+      packageName = "enquirer";
+      version = "2.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz";
-        sha512 = "BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==";
+        url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz";
+        sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
       };
     };
-    "es-to-primitive-1.2.1" = {
-      name = "es-to-primitive";
-      packageName = "es-to-primitive";
-      version = "1.2.1";
+    "escalade-3.1.1" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz";
+        sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==";
       };
     };
     "escape-html-1.0.3" = {
@@ -1175,13 +1373,85 @@ let
         sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
       };
     };
-    "escape-string-regexp-2.0.0" = {
+    "escape-string-regexp-4.0.0" = {
       name = "escape-string-regexp";
       packageName = "escape-string-regexp";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
+      };
+    };
+    "eslint-7.17.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.17.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz";
+        sha512 = "zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==";
+      };
+    };
+    "eslint-plugin-jsdoc-30.7.13" = {
+      name = "eslint-plugin-jsdoc";
+      packageName = "eslint-plugin-jsdoc";
+      version = "30.7.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.7.13.tgz";
+        sha512 = "YM4WIsmurrp0rHX6XiXQppqKB8Ne5ATiZLJe2+/fkp9l9ExXFr43BbAbjZaVrpCT+tuPYOZ8k1MICARHnURUNQ==";
+      };
+    };
+    "eslint-plugin-prefer-arrow-1.2.2" = {
+      name = "eslint-plugin-prefer-arrow";
+      packageName = "eslint-plugin-prefer-arrow";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.2.tgz";
+        sha512 = "C8YMhL+r8RMeMdYAw/rQtE6xNdMulj+zGWud/qIGnlmomiPRaLDGLMeskZ3alN6uMBojmooRimtdrXebLN4svQ==";
+      };
+    };
+    "eslint-scope-5.1.1" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha512 = "2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==";
+      };
+    };
+    "eslint-utils-2.1.0" = {
+      name = "eslint-utils";
+      packageName = "eslint-utils";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
+      };
+    };
+    "eslint-visitor-keys-1.3.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
+      };
+    };
+    "eslint-visitor-keys-2.0.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
       version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz";
-        sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
+        sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==";
+      };
+    };
+    "espree-7.3.1" = {
+      name = "espree";
+      packageName = "espree";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz";
+        sha512 = "v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==";
       };
     };
     "esprima-4.0.1" = {
@@ -1193,6 +1463,51 @@ let
         sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
       };
     };
+    "esquery-1.3.1" = {
+      name = "esquery";
+      packageName = "esquery";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz";
+        sha512 = "olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==";
+      };
+    };
+    "esrecurse-4.3.0" = {
+      name = "esrecurse";
+      packageName = "esrecurse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
+      };
+    };
+    "estraverse-4.3.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+      };
+    };
+    "estraverse-5.2.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
+        sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
     "etag-1.8.1" = {
       name = "etag";
       packageName = "etag";
@@ -1211,22 +1526,13 @@ let
         sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
       };
     };
-    "eventemitter3-4.0.0" = {
+    "eventemitter3-4.0.7" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz";
-        sha512 = "qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==";
-      };
-    };
-    "execa-1.0.0" = {
-      name = "execa";
-      packageName = "execa";
-      version = "1.0.0";
+      version = "4.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
-        sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz";
+        sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
       };
     };
     "express-4.17.1" = {
@@ -1256,22 +1562,40 @@ let
         sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
       };
     };
-    "fast-deep-equal-2.0.1" = {
+    "fast-deep-equal-3.1.3" = {
       name = "fast-deep-equal";
       packageName = "fast-deep-equal";
-      version = "2.0.1";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
-        sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
       };
     };
-    "fast-json-stable-stringify-2.0.0" = {
+    "fast-glob-3.2.4" = {
+      name = "fast-glob";
+      packageName = "fast-glob";
+      version = "3.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
+        sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
+      };
+    };
+    "fast-json-stable-stringify-2.1.0" = {
       name = "fast-json-stable-stringify";
       packageName = "fast-json-stable-stringify";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
-        sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+        url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+      };
+    };
+    "fast-levenshtein-2.0.6" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
       };
     };
     "fast-safe-stringify-2.0.6" = {
@@ -1283,22 +1607,40 @@ let
         sha512 = "q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg==";
       };
     };
-    "fecha-2.3.3" = {
+    "fastq-1.10.0" = {
+      name = "fastq";
+      packageName = "fastq";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz";
+        sha512 = "NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==";
+      };
+    };
+    "fecha-4.2.0" = {
       name = "fecha";
       packageName = "fecha";
-      version = "2.3.3";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
-        sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
+        sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
       };
     };
-    "file-stream-rotator-0.4.1" = {
+    "file-entry-cache-6.0.0" = {
+      name = "file-entry-cache";
+      packageName = "file-entry-cache";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz";
+        sha512 = "fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==";
+      };
+    };
+    "file-stream-rotator-0.5.7" = {
       name = "file-stream-rotator";
       packageName = "file-stream-rotator";
-      version = "0.4.1";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz";
-        sha512 = "W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ==";
+        url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.5.7.tgz";
+        sha512 = "VYb3HZ/GiAGUCrfeakO8Mp54YGswNUHvL7P09WQcXAJNSj3iQ5QraYSp3cIn1MUyw6uzfgN/EFOarCNa4JvUHQ==";
       };
     };
     "fill-range-7.0.1" = {
@@ -1328,6 +1670,15 @@ let
         sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
       };
     };
+    "find-up-5.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz";
+        sha512 = "78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==";
+      };
+    };
     "finity-0.5.4" = {
       name = "finity";
       packageName = "finity";
@@ -1337,22 +1688,49 @@ let
         sha512 = "3l+5/1tuw616Lgb0QBimxfdd2TqaDGpfCBpfX6EqtFmqUV3FtQnVEX4Aa62DagYEqnsTIjZcTfbq9msDbXYgyA==";
       };
     };
-    "flat-4.1.0" = {
+    "flat-5.0.2" = {
       name = "flat";
       packageName = "flat";
-      version = "4.1.0";
+      version = "5.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz";
+        sha512 = "b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==";
+      };
+    };
+    "flat-cache-3.0.4" = {
+      name = "flat-cache";
+      packageName = "flat-cache";
+      version = "3.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz";
-        sha512 = "Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==";
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha512 = "dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==";
       };
     };
-    "follow-redirects-1.5.10" = {
+    "flatted-3.1.0" = {
+      name = "flatted";
+      packageName = "flatted";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz";
+        sha512 = "tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==";
+      };
+    };
+    "fn.name-1.1.0" = {
+      name = "fn.name";
+      packageName = "fn.name";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz";
+        sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
+      };
+    };
+    "follow-redirects-1.13.1" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.5.10";
+      version = "1.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz";
-        sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz";
+        sha512 = "SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==";
       };
     };
     "forever-agent-0.6.1" = {
@@ -1409,22 +1787,22 @@ let
         sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
       };
     };
-    "fsevents-2.1.2" = {
+    "fsevents-2.1.3" = {
       name = "fsevents";
       packageName = "fsevents";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz";
-        sha512 = "R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==";
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
+        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
       };
     };
-    "function-bind-1.1.1" = {
-      name = "function-bind";
-      packageName = "function-bind";
-      version = "1.1.1";
+    "functional-red-black-tree-1.0.1" = {
+      name = "functional-red-black-tree";
+      packageName = "functional-red-black-tree";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
-        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+        url = "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
       };
     };
     "generate-function-2.3.1" = {
@@ -1463,15 +1841,6 @@ let
         sha1 = "ead774abee72e20409433a066366023dd6887a41";
       };
     };
-    "get-stream-4.1.0" = {
-      name = "get-stream";
-      packageName = "get-stream";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
-        sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
-      };
-    };
     "getpass-0.1.7" = {
       name = "getpass";
       packageName = "getpass";
@@ -1481,13 +1850,13 @@ let
         sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
       };
     };
-    "glob-7.1.3" = {
+    "glob-7.1.6" = {
       name = "glob";
       packageName = "glob";
-      version = "7.1.3";
+      version = "7.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz";
-        sha512 = "vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==";
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
       };
     };
     "glob-parent-5.1.1" = {
@@ -1499,6 +1868,24 @@ let
         sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
       };
     };
+    "globals-12.4.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "12.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz";
+        sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
+      };
+    };
+    "globby-11.0.2" = {
+      name = "globby";
+      packageName = "globby";
+      version = "11.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz";
+        sha512 = "2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==";
+      };
+    };
     "growl-1.10.5" = {
       name = "growl";
       packageName = "growl";
@@ -1517,22 +1904,13 @@ let
         sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
       };
     };
-    "har-validator-5.1.3" = {
+    "har-validator-5.1.5" = {
       name = "har-validator";
       packageName = "har-validator";
-      version = "5.1.3";
+      version = "5.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
-      };
-    };
-    "has-1.0.3" = {
-      name = "has";
-      packageName = "has";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
-        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
+        sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
       };
     };
     "has-flag-3.0.0" = {
@@ -1544,13 +1922,13 @@ let
         sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
       };
     };
-    "has-symbols-1.0.1" = {
-      name = "has-symbols";
-      packageName = "has-symbols";
-      version = "1.0.1";
+    "has-flag-4.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
       };
     };
     "he-1.2.0" = {
@@ -1589,6 +1967,24 @@ let
         sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
       };
     };
+    "ignore-4.0.6" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "4.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz";
+        sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==";
+      };
+    };
+    "ignore-5.1.8" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "5.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
+        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+      };
+    };
     "immediate-3.0.6" = {
       name = "immediate";
       packageName = "immediate";
@@ -1598,6 +1994,24 @@ let
         sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
       };
     };
+    "import-fresh-3.3.0" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==";
+      };
+    };
+    "imurmurhash-0.1.4" = {
+      name = "imurmurhash";
+      packageName = "imurmurhash";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    };
     "inflight-1.0.6" = {
       name = "inflight";
       packageName = "inflight";
@@ -1616,22 +2030,13 @@ let
         sha1 = "633c2c83e3da42a502f52466022480f4208261de";
       };
     };
-    "invert-kv-2.0.0" = {
-      name = "invert-kv";
-      packageName = "invert-kv";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz";
-        sha512 = "wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==";
-      };
-    };
-    "ipaddr.js-1.9.0" = {
+    "ipaddr.js-1.9.1" = {
       name = "ipaddr.js";
       packageName = "ipaddr.js";
-      version = "1.9.0";
+      version = "1.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz";
-        sha512 = "M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==";
+        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     };
     "is-arrayish-0.3.2" = {
@@ -1652,33 +2057,6 @@ let
         sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
-    "is-buffer-2.0.4" = {
-      name = "is-buffer";
-      packageName = "is-buffer";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz";
-        sha512 = "Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==";
-      };
-    };
-    "is-callable-1.1.5" = {
-      name = "is-callable";
-      packageName = "is-callable";
-      version = "1.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz";
-        sha512 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==";
-      };
-    };
-    "is-date-object-1.0.2" = {
-      name = "is-date-object";
-      packageName = "is-date-object";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
-      };
-    };
     "is-extglob-2.1.1" = {
       name = "is-extglob";
       packageName = "is-extglob";
@@ -1697,6 +2075,15 @@ let
         sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
       };
     };
+    "is-fullwidth-code-point-3.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
+      };
+    };
     "is-glob-4.0.1" = {
       name = "is-glob";
       packageName = "is-glob";
@@ -1715,13 +2102,13 @@ let
         sha512 = "gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==";
       };
     };
-    "is-my-json-valid-2.20.0" = {
+    "is-my-json-valid-2.20.5" = {
       name = "is-my-json-valid";
       packageName = "is-my-json-valid";
-      version = "2.20.0";
+      version = "2.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz";
-        sha512 = "XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==";
+        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.5.tgz";
+        sha512 = "VTPuvvGQtxvCeghwspQu1rBgjYUT6FGxPlvFKbYuFtgc4ADsX3U5ihZOYN0qyU6u+d4X9xXb0IT5O6QpXKt87A==";
       };
     };
     "is-number-7.0.0" = {
@@ -1733,6 +2120,15 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
+    "is-plain-obj-2.1.0" = {
+      name = "is-plain-obj";
+      packageName = "is-plain-obj";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
+        sha512 = "YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==";
+      };
+    };
     "is-property-1.0.2" = {
       name = "is-property";
       packageName = "is-property";
@@ -1742,15 +2138,6 @@ let
         sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
       };
     };
-    "is-regex-1.0.5" = {
-      name = "is-regex";
-      packageName = "is-regex";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz";
-        sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
-      };
-    };
     "is-stream-1.1.0" = {
       name = "is-stream";
       packageName = "is-stream";
@@ -1760,13 +2147,13 @@ let
         sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
       };
     };
-    "is-symbol-1.0.3" = {
-      name = "is-symbol";
-      packageName = "is-symbol";
-      version = "1.0.3";
+    "is-stream-2.0.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
-        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -1814,13 +2201,22 @@ let
         sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
       };
     };
-    "js-yaml-3.13.1" = {
+    "js-yaml-3.14.0" = {
       name = "js-yaml";
       packageName = "js-yaml";
-      version = "3.13.1";
+      version = "3.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
+        sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
+      };
+    };
+    "js-yaml-4.0.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz";
+        sha512 = "pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==";
       };
     };
     "jsbn-0.1.1" = {
@@ -1832,6 +2228,15 @@ let
         sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
       };
     };
+    "jsdoctypeparser-9.0.0" = {
+      name = "jsdoctypeparser";
+      packageName = "jsdoctypeparser";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz";
+        sha512 = "jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==";
+      };
+    };
     "json-schema-0.2.3" = {
       name = "json-schema";
       packageName = "json-schema";
@@ -1850,6 +2255,24 @@ let
         sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
       };
     };
+    "json-schema-traverse-1.0.0" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha512 = "NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==";
+      };
+    };
+    "json-stable-stringify-without-jsonify-1.0.1" = {
+      name = "json-stable-stringify-without-jsonify";
+      packageName = "json-stable-stringify-without-jsonify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+      };
+    };
     "json-stringify-safe-5.0.1" = {
       name = "json-stringify-safe";
       packageName = "json-stringify-safe";
@@ -1859,13 +2282,13 @@ let
         sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
       };
     };
-    "jsonpointer-4.0.1" = {
+    "jsonpointer-4.1.0" = {
       name = "jsonpointer";
       packageName = "jsonpointer";
-      version = "4.0.1";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz";
-        sha1 = "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9";
+        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz";
+        sha512 = "CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==";
       };
     };
     "jsprim-1.4.1" = {
@@ -1877,22 +2300,22 @@ let
         sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
       };
     };
-    "kuler-1.0.1" = {
+    "kuler-2.0.0" = {
       name = "kuler";
       packageName = "kuler";
-      version = "1.0.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz";
-        sha512 = "J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==";
+        url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz";
+        sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
       };
     };
-    "lcid-2.0.0" = {
-      name = "lcid";
-      packageName = "lcid";
-      version = "2.0.0";
+    "levn-0.4.1" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz";
-        sha512 = "avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==";
+        url = "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz";
+        sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==";
       };
     };
     "lie-3.1.1" = {
@@ -1922,13 +2345,22 @@ let
         sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
       };
     };
-    "lodash-4.17.15" = {
+    "locate-path-6.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz";
+        sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==";
+      };
+    };
+    "lodash-4.17.20" = {
       name = "lodash";
       packageName = "lodash";
-      version = "4.17.15";
+      version = "4.17.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
-        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
       };
     };
     "lodash.toarray-4.4.0" = {
@@ -1940,40 +2372,40 @@ let
         sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
       };
     };
-    "log-symbols-3.0.0" = {
+    "log-symbols-4.0.0" = {
       name = "log-symbols";
       packageName = "log-symbols";
-      version = "3.0.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz";
-        sha512 = "dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==";
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz";
+        sha512 = "FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==";
       };
     };
-    "logform-1.10.0" = {
+    "logform-2.2.0" = {
       name = "logform";
       packageName = "logform";
-      version = "1.10.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz";
-        sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==";
+        url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
+        sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
       };
     };
-    "logform-2.1.2" = {
-      name = "logform";
-      packageName = "logform";
-      version = "2.1.2";
+    "loglevel-1.7.1" = {
+      name = "loglevel";
+      packageName = "loglevel";
+      version = "1.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz";
-        sha512 = "+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==";
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz";
+        sha512 = "Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==";
       };
     };
-    "loglevel-1.6.8" = {
-      name = "loglevel";
-      packageName = "loglevel";
-      version = "1.6.8";
+    "lru-cache-6.0.0" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz";
-        sha512 = "bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==";
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
       };
     };
     "make-error-1.3.6" = {
@@ -1985,40 +2417,31 @@ let
         sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
       };
     };
-    "map-age-cleaner-0.1.3" = {
-      name = "map-age-cleaner";
-      packageName = "map-age-cleaner";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
-        sha512 = "bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==";
-      };
-    };
-    "matrix-appservice-0.4.1" = {
+    "matrix-appservice-0.7.1" = {
       name = "matrix-appservice";
       packageName = "matrix-appservice";
-      version = "0.4.1";
+      version = "0.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.4.1.tgz";
-        sha512 = "mxHr9XDOvN/p6OFrfb4kkcEjCPftnXNzMS8Lg9Cz/pDy1arfRWq11vl9pL9bjzBaAouBGLpW1JzmCR2MsW+VKA==";
+        url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.7.1.tgz";
+        sha512 = "oUjEz+eKfBw66FnQ3/D7PWcq+/oq9gzJVlNOMQUSGXgK70o8JT3toeFMYsJChaIimU5fIsHbTVyHC+eVGb7MSQ==";
       };
     };
-    "matrix-appservice-bridge-1.12.2" = {
+    "matrix-appservice-bridge-2.5.0" = {
       name = "matrix-appservice-bridge";
       packageName = "matrix-appservice-bridge";
-      version = "1.12.2";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-1.12.2.tgz";
-        sha512 = "cGD31MLi4ARnx4DIyJndIhHIsNjaWUoBMXeAbnHhvkwkdVgZ9pgA6IKKmcBCFfsNX1r/I04KjcjlKpVdmZu4VQ==";
+        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-2.5.0.tgz";
+        sha512 = "L5Ddb78pqqfO6xM4SYM+Hv6N5VjmLF3D24h4g5ze5+xRfEFmfvmLdVu6rvIExawvk9i+LA0fZ95Qi3hc7SkgAQ==";
       };
     };
-    "matrix-js-sdk-2.4.6" = {
+    "matrix-js-sdk-9.6.0" = {
       name = "matrix-js-sdk";
       packageName = "matrix-js-sdk";
-      version = "2.4.6";
+      version = "9.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-2.4.6.tgz";
-        sha512 = "ydU64WwAYFjaTJ7JTv/JM3HmSY7leHWm3x3j0J4KWVhDDxsLoQ/v8Tc6FwlVom9/B9VvGTk+AG3aY0zgNk8LQg==";
+        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.6.0.tgz";
+        sha512 = "zoNqB7z0C0QDncN7yD1K50c4C88VPofWaCQ0gNXqO/Ac1dr/xLF/46iNF9Y+dBwq7siBO9wEh20WFHMaRpeLOg==";
       };
     };
     "media-typer-0.3.0" = {
@@ -2030,15 +2453,6 @@ let
         sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
       };
     };
-    "mem-4.3.0" = {
-      name = "mem";
-      packageName = "mem";
-      version = "4.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz";
-        sha512 = "qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==";
-      };
-    };
     "merge-descriptors-1.0.1" = {
       name = "merge-descriptors";
       packageName = "merge-descriptors";
@@ -2048,6 +2462,15 @@ let
         sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
       };
     };
+    "merge2-1.4.1" = {
+      name = "merge2";
+      packageName = "merge2";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz";
+        sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
+      };
+    };
     "methods-1.1.2" = {
       name = "methods";
       packageName = "methods";
@@ -2057,6 +2480,15 @@ let
         sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
       };
     };
+    "micromatch-4.0.2" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
+        sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+      };
+    };
     "mime-1.6.0" = {
       name = "mime";
       packageName = "mime";
@@ -2084,15 +2516,6 @@ let
         sha512 = "WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==";
       };
     };
-    "mimic-fn-2.1.0" = {
-      name = "mimic-fn";
-      packageName = "mimic-fn";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
-        sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
-      };
-    };
     "minimatch-3.0.4" = {
       name = "minimatch";
       packageName = "minimatch";
@@ -2111,15 +2534,6 @@ let
         sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
       };
     };
-    "mkdirp-0.5.3" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "0.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz";
-        sha512 = "P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==";
-      };
-    };
     "mkdirp-0.5.5" = {
       name = "mkdirp";
       packageName = "mkdirp";
@@ -2129,13 +2543,13 @@ let
         sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
       };
     };
-    "mocha-7.1.1" = {
+    "mocha-8.2.1" = {
       name = "mocha";
       packageName = "mocha";
-      version = "7.1.1";
+      version = "8.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz";
-        sha512 = "3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==";
+        url = "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz";
+        sha512 = "cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==";
       };
     };
     "moment-2.24.0" = {
@@ -2147,13 +2561,13 @@ let
         sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==";
       };
     };
-    "morgan-1.9.1" = {
+    "morgan-1.10.0" = {
       name = "morgan";
       packageName = "morgan";
-      version = "1.9.1";
+      version = "1.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz";
-        sha512 = "HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==";
+        url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz";
+        sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==";
       };
     };
     "ms-2.0.0" = {
@@ -2183,6 +2597,24 @@ let
         sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
+    "nanoid-3.1.12" = {
+      name = "nanoid";
+      packageName = "nanoid";
+      version = "3.1.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz";
+        sha512 = "1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==";
+      };
+    };
+    "natural-compare-1.4.0" = {
+      name = "natural-compare";
+      packageName = "natural-compare";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";
+        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+      };
+    };
     "nedb-1.8.0" = {
       name = "nedb";
       packageName = "nedb";
@@ -2201,15 +2633,6 @@ let
         sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
       };
     };
-    "nice-try-1.0.5" = {
-      name = "nice-try";
-      packageName = "nice-try";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
-        sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
-      };
-    };
     "node-emoji-1.10.0" = {
       name = "node-emoji";
       packageName = "node-emoji";
@@ -2219,22 +2642,13 @@ let
         sha512 = "Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==";
       };
     };
-    "node-environment-flags-1.0.6" = {
-      name = "node-environment-flags";
-      packageName = "node-environment-flags";
-      version = "1.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz";
-        sha512 = "5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==";
-      };
-    };
-    "nopt-3.0.6" = {
+    "nopt-5.0.0" = {
       name = "nopt";
       packageName = "nopt";
-      version = "3.0.6";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz";
-        sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
+        url = "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz";
+        sha512 = "Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==";
       };
     };
     "normalize-path-3.0.0" = {
@@ -2246,22 +2660,13 @@ let
         sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
       };
     };
-    "npm-run-path-2.0.2" = {
-      name = "npm-run-path";
-      packageName = "npm-run-path";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz";
-        sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
-      };
-    };
-    "nunjucks-3.2.1" = {
+    "nunjucks-3.2.2" = {
       name = "nunjucks";
       packageName = "nunjucks";
-      version = "3.2.1";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.1.tgz";
-        sha512 = "LYlVuC1ZNSalQQkLNNPvcgPt2M9FTY9bs39mTCuFXtqh7jWbYzhDlmz2M6onPiXEhdZo+b9anRhc+uBGuJZ2bQ==";
+        url = "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.2.tgz";
+        sha512 = "KUi85OoF2NMygwODAy28Lh9qHmq5hO3rBlbkYoC8v377h4l8Pt5qFjILl0LWpMbOrZ18CzfVVUvIHUIrtED3sA==";
       };
     };
     "oauth-sign-0.9.0" = {
@@ -2273,49 +2678,13 @@ let
         sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
       };
     };
-    "object-hash-1.3.1" = {
+    "object-hash-2.0.3" = {
       name = "object-hash";
       packageName = "object-hash";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz";
-        sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==";
-      };
-    };
-    "object-inspect-1.7.0" = {
-      name = "object-inspect";
-      packageName = "object-inspect";
-      version = "1.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
-      };
-    };
-    "object-keys-1.1.1" = {
-      name = "object-keys";
-      packageName = "object-keys";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
-        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
-      };
-    };
-    "object.assign-4.1.0" = {
-      name = "object.assign";
-      packageName = "object.assign";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
-        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
-      };
-    };
-    "object.getownpropertydescriptors-2.1.0" = {
-      name = "object.getownpropertydescriptors";
-      packageName = "object.getownpropertydescriptors";
-      version = "2.1.0";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
-        sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
+        url = "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz";
+        sha512 = "JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==";
       };
     };
     "on-finished-2.3.0" = {
@@ -2345,22 +2714,22 @@ let
         sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
       };
     };
-    "one-time-0.0.4" = {
+    "one-time-1.0.0" = {
       name = "one-time";
       packageName = "one-time";
-      version = "0.0.4";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz";
-        sha1 = "f8cdf77884826fe4dff93e3a9cc37b1e4480742e";
+        url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz";
+        sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==";
       };
     };
-    "os-locale-3.1.0" = {
-      name = "os-locale";
-      packageName = "os-locale";
-      version = "3.1.0";
+    "optionator-0.9.1" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz";
-        sha512 = "Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==";
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz";
+        sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==";
       };
     };
     "p-cancelable-1.1.0" = {
@@ -2372,15 +2741,6 @@ let
         sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
       };
     };
-    "p-defer-1.0.0" = {
-      name = "p-defer";
-      packageName = "p-defer";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz";
-        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
-      };
-    };
     "p-finally-1.0.0" = {
       name = "p-finally";
       packageName = "p-finally";
@@ -2390,22 +2750,22 @@ let
         sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
       };
     };
-    "p-is-promise-2.1.0" = {
-      name = "p-is-promise";
-      packageName = "p-is-promise";
-      version = "2.1.0";
+    "p-limit-2.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz";
-        sha512 = "Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==";
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
       };
     };
-    "p-limit-2.2.0" = {
+    "p-limit-3.1.0" = {
       name = "p-limit";
       packageName = "p-limit";
-      version = "2.2.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz";
-        sha512 = "pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==";
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz";
+        sha512 = "TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==";
       };
     };
     "p-locate-3.0.0" = {
@@ -2417,6 +2777,15 @@ let
         sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
       };
     };
+    "p-locate-5.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz";
+        sha512 = "LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==";
+      };
+    };
     "p-queue-2.4.2" = {
       name = "p-queue";
       packageName = "p-queue";
@@ -2426,13 +2795,13 @@ let
         sha512 = "n8/y+yDJwBjoLQe1GSJbbaYQLTI7QHNZI2+rpmCDbe++WLf9HC3gf6iqj5yfPAV71W4UF3ql5W1+UBPXoXTxng==";
       };
     };
-    "p-queue-6.3.0" = {
+    "p-queue-6.6.2" = {
       name = "p-queue";
       packageName = "p-queue";
-      version = "6.3.0";
+      version = "6.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-queue/-/p-queue-6.3.0.tgz";
-        sha512 = "fg5dJlFpd5+3CgG3/0ogpVZUeJbjiyXFg0nu53hrOYsybqSiDyxyOpad0Rm6tAiGjgztAwkyvhlYHC53OiAJOA==";
+        url = "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz";
+        sha512 = "RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==";
       };
     };
     "p-retry-4.2.0" = {
@@ -2471,6 +2840,15 @@ let
         sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
       };
     };
+    "parent-module-1.0.1" = {
+      name = "parent-module";
+      packageName = "parent-module";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz";
+        sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
+      };
+    };
     "parseurl-1.3.3" = {
       name = "parseurl";
       packageName = "parseurl";
@@ -2489,6 +2867,15 @@ let
         sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
       };
     };
+    "path-exists-4.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+        sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+      };
+    };
     "path-is-absolute-1.0.1" = {
       name = "path-is-absolute";
       packageName = "path-is-absolute";
@@ -2498,22 +2885,13 @@ let
         sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
       };
     };
-    "path-key-2.0.1" = {
+    "path-key-3.1.1" = {
       name = "path-key";
       packageName = "path-key";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz";
-        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
-      };
-    };
-    "path-parse-1.0.6" = {
-      name = "path-parse";
-      packageName = "path-parse";
-      version = "1.0.6";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+        url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";
+        sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -2525,6 +2903,15 @@ let
         sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
       };
     };
+    "path-type-4.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
+        sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
+      };
+    };
     "pathval-1.1.0" = {
       name = "pathval";
       packageName = "pathval";
@@ -2543,22 +2930,22 @@ let
         sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
       };
     };
-    "pg-8.1.0" = {
+    "pg-8.5.1" = {
       name = "pg";
       packageName = "pg";
-      version = "8.1.0";
+      version = "8.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg/-/pg-8.1.0.tgz";
-        sha512 = "Jp+XSNTGYDztc2FgIbmBXeeYMR7kKjfgnl3R+ioO6rkcxDmaea+YPp/gaxe13PBnJAFYyEGl0ixpwPm2gb6eUw==";
+        url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz";
+        sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==";
       };
     };
-    "pg-connection-string-2.2.2" = {
+    "pg-connection-string-2.4.0" = {
       name = "pg-connection-string";
       packageName = "pg-connection-string";
-      version = "2.2.2";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.2.tgz";
-        sha512 = "+hel4DGuSZCjCZwglAuyi+XlodHnKmrbyTw0hVWlmGN2o4AfJDkDo5obAFzblS5M5PFBMx0uDt5Y1QjlNC+tqg==";
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
+        sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==";
       };
     };
     "pg-int8-1.0.1" = {
@@ -2570,40 +2957,40 @@ let
         sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
       };
     };
-    "pg-minify-1.6.0" = {
+    "pg-minify-1.6.2" = {
       name = "pg-minify";
       packageName = "pg-minify";
-      version = "1.6.0";
+      version = "1.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.0.tgz";
-        sha512 = "5Yxduh9Hul9Xev6uI3rSCypPk1kI7vI03ZPu5lgerrhiZ7QLj1Zd92SU2ZyalHVztlWnnPMnTZ+SeXJwh3eY9g==";
+        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz";
+        sha512 = "1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==";
       };
     };
-    "pg-pool-3.2.0" = {
+    "pg-pool-3.2.2" = {
       name = "pg-pool";
       packageName = "pg-pool";
-      version = "3.2.0";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.0.tgz";
-        sha512 = "7BLwDNDEfPFjE9vmZLcJPLFwuDAVGZ5lIZo2MeQfwYG7EPGfdNVis/dz6obI/yKqvQIx2sf6QBKXMLB+y/ftgA==";
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz";
+        sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==";
       };
     };
-    "pg-promise-10.5.5" = {
+    "pg-promise-10.8.7" = {
       name = "pg-promise";
       packageName = "pg-promise";
-      version = "10.5.5";
+      version = "10.8.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.5.5.tgz";
-        sha512 = "Ec2g5bN3uMD0wk65kNEgJbZOcyhQ0S37Gn9gAa78U9V7HcdTfMdpTRSRIFT0LHXpL1EcT00CW62+2Z4wAXs29A==";
+        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.8.7.tgz";
+        sha512 = "gSbH+NYWD4pVOpacP9uS2xH84N7nb7K4ubKlcZchhDr8ixnIURPnNJmNLJcRgtOocpjzsKymYSm6rCFZVOngSA==";
       };
     };
-    "pg-protocol-1.2.3" = {
+    "pg-protocol-1.4.0" = {
       name = "pg-protocol";
       packageName = "pg-protocol";
-      version = "1.2.3";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.2.3.tgz";
-        sha512 = "erHFURS0mPmTbq18cn/zNL3Y4IzNCrU4sgCim0qy7zAPe3Vc0rvK5cImJR6lDvIaz3fJU2R1R9FNOlnUtyF10Q==";
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz";
+        sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==";
       };
     };
     "pg-types-2.2.0" = {
@@ -2615,13 +3002,13 @@ let
         sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
       };
     };
-    "pgpass-1.0.2" = {
+    "pgpass-1.0.4" = {
       name = "pgpass";
       packageName = "pgpass";
-      version = "1.0.2";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz";
-        sha1 = "2a7bb41b6065b67907e91da1b07c1847c877b306";
+        url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz";
+        sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==";
       };
     };
     "picomatch-2.2.2" = {
@@ -2651,13 +3038,13 @@ let
         sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
       };
     };
-    "postgres-date-1.0.5" = {
+    "postgres-date-1.0.7" = {
       name = "postgres-date";
       packageName = "postgres-date";
-      version = "1.0.5";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.5.tgz";
-        sha512 = "pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA==";
+        url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz";
+        sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==";
       };
     };
     "postgres-interval-1.2.0" = {
@@ -2669,6 +3056,15 @@ let
         sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
       };
     };
+    "prelude-ls-1.2.1" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==";
+      };
+    };
     "process-nextick-args-2.0.1" = {
       name = "process-nextick-args";
       packageName = "process-nextick-args";
@@ -2678,49 +3074,40 @@ let
         sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
       };
     };
-    "prom-client-11.5.3" = {
+    "progress-2.0.3" = {
+      name = "progress";
+      packageName = "progress";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz";
+        sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==";
+      };
+    };
+    "prom-client-13.1.0" = {
       name = "prom-client";
       packageName = "prom-client";
-      version = "11.5.3";
+      version = "13.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz";
-        sha512 = "iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==";
+        url = "https://registry.npmjs.org/prom-client/-/prom-client-13.1.0.tgz";
+        sha512 = "jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng==";
       };
     };
-    "proxy-addr-2.0.5" = {
+    "proxy-addr-2.0.6" = {
       name = "proxy-addr";
       packageName = "proxy-addr";
-      version = "2.0.5";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz";
-        sha512 = "t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==";
+        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
+        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
       };
     };
-    "psl-1.1.33" = {
+    "psl-1.8.0" = {
       name = "psl";
       packageName = "psl";
-      version = "1.1.33";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/psl/-/psl-1.1.33.tgz";
-        sha512 = "LTDP2uSrsc7XCb5lO7A8BI1qYxRe/8EqlRvMeEl6rsnYAqDOl8xHR+8lSAIVfrNaSAlTPTNOCgNjWcoUL3AZsw==";
-      };
-    };
-    "pump-3.0.0" = {
-      name = "pump";
-      packageName = "pump";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
-        sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
-      };
-    };
-    "punycode-1.4.1" = {
-      name = "punycode";
-      packageName = "punycode";
-      version = "1.4.1";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz";
-        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
       };
     };
     "punycode-2.1.1" = {
@@ -2750,13 +3137,31 @@ let
         sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
-    "quick-lru-5.0.0" = {
+    "qs-6.9.6" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.9.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz";
+        sha512 = "TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==";
+      };
+    };
+    "quick-lru-5.1.1" = {
       name = "quick-lru";
       packageName = "quick-lru";
-      version = "5.0.0";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz";
+        sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==";
+      };
+    };
+    "randombytes-2.1.0" = {
+      name = "randombytes";
+      packageName = "randombytes";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.0.0.tgz";
-        sha512 = "iNjBLSxM3byM7z8a1MB/Oa+AAeopX4NqKEj/ykgKRi1R4AFXNINR4DSjyjDzXzjqjN9+OBQGfK5w5CAnCtV7jg==";
+        url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
+        sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==";
       };
     };
     "randomstring-1.1.5" = {
@@ -2795,58 +3200,76 @@ let
         sha512 = "tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==";
       };
     };
-    "readable-stream-3.4.0" = {
+    "readable-stream-2.3.7" = {
       name = "readable-stream";
       packageName = "readable-stream";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    };
+    "readable-stream-3.6.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+      };
+    };
+    "readdirp-3.4.0" = {
+      name = "readdirp";
+      packageName = "readdirp";
       version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz";
-        sha512 = "jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==";
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz";
+        sha512 = "0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==";
       };
     };
-    "readdirp-3.2.0" = {
+    "readdirp-3.5.0" = {
       name = "readdirp";
       packageName = "readdirp";
-      version = "3.2.0";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz";
-        sha512 = "crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==";
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz";
+        sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==";
       };
     };
-    "regenerator-runtime-0.11.1" = {
+    "regenerator-runtime-0.13.7" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
-      version = "0.11.1";
+      version = "0.13.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
-        sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
       };
     };
-    "request-2.88.0" = {
-      name = "request";
-      packageName = "request";
-      version = "2.88.0";
+    "regexpp-3.1.0" = {
+      name = "regexpp";
+      packageName = "regexpp";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz";
-        sha512 = "NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==";
+        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz";
+        sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
       };
     };
-    "request-promise-core-1.1.3" = {
-      name = "request-promise-core";
-      packageName = "request-promise-core";
-      version = "1.1.3";
+    "regextras-0.7.1" = {
+      name = "regextras";
+      packageName = "regextras";
+      version = "0.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz";
-        sha512 = "QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==";
+        url = "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz";
+        sha512 = "9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==";
       };
     };
-    "request-promise-native-1.0.8" = {
-      name = "request-promise-native";
-      packageName = "request-promise-native";
-      version = "1.0.8";
+    "request-2.88.2" = {
+      name = "request";
+      packageName = "request";
+      version = "2.88.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz";
-        sha512 = "dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==";
+        url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
+        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
       };
     };
     "require-directory-2.1.1" = {
@@ -2858,6 +3281,15 @@ let
         sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
       };
     };
+    "require-from-string-2.0.2" = {
+      name = "require-from-string";
+      packageName = "require-from-string";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha512 = "Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==";
+      };
+    };
     "require-main-filename-2.0.0" = {
       name = "require-main-filename";
       packageName = "require-main-filename";
@@ -2867,13 +3299,13 @@ let
         sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
       };
     };
-    "resolve-1.15.1" = {
-      name = "resolve";
-      packageName = "resolve";
-      version = "1.15.1";
+    "resolve-from-4.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz";
-        sha512 = "84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==";
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
       };
     };
     "retry-0.12.0" = {
@@ -2885,6 +3317,33 @@ let
         sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
       };
     };
+    "reusify-1.0.4" = {
+      name = "reusify";
+      packageName = "reusify";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz";
+        sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
+      };
+    };
+    "rimraf-3.0.2" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
+        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
+      };
+    };
+    "run-parallel-1.1.10" = {
+      name = "run-parallel";
+      packageName = "run-parallel";
+      version = "1.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz";
+        sha512 = "zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==";
+      };
+    };
     "safe-buffer-5.1.2" = {
       name = "safe-buffer";
       packageName = "safe-buffer";
@@ -2894,6 +3353,15 @@ let
         sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
+    "safe-buffer-5.2.1" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
+      };
+    };
     "safer-buffer-2.1.2" = {
       name = "safer-buffer";
       packageName = "safer-buffer";
@@ -2903,22 +3371,13 @@ let
         sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
-    "semver-4.3.2" = {
+    "semver-7.3.4" = {
       name = "semver";
       packageName = "semver";
-      version = "4.3.2";
+      version = "7.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz";
-        sha1 = "c7a07158a80bedd052355b770d82d6640f803be7";
-      };
-    };
-    "semver-5.7.0" = {
-      name = "semver";
-      packageName = "semver";
-      version = "5.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz";
-        sha512 = "Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==";
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz";
+        sha512 = "tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==";
       };
     };
     "send-0.17.1" = {
@@ -2930,6 +3389,15 @@ let
         sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
+    "serialize-javascript-5.0.1" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
+        sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==";
+      };
+    };
     "serve-static-1.14.1" = {
       name = "serve-static";
       packageName = "serve-static";
@@ -2957,31 +3425,22 @@ let
         sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
       };
     };
-    "shebang-command-1.2.0" = {
+    "shebang-command-2.0.0" = {
       name = "shebang-command";
       packageName = "shebang-command";
-      version = "1.2.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz";
-        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
       };
     };
-    "shebang-regex-1.0.0" = {
+    "shebang-regex-3.0.0" = {
       name = "shebang-regex";
       packageName = "shebang-regex";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz";
-        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
-      };
-    };
-    "signal-exit-3.0.2" = {
-      name = "signal-exit";
-      packageName = "signal-exit";
-      version = "3.0.2";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz";
-        sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
       };
     };
     "simple-swizzle-0.2.2" = {
@@ -2993,6 +3452,24 @@ let
         sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
       };
     };
+    "slash-3.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
+        sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
+      };
+    };
+    "slice-ansi-4.0.0" = {
+      name = "slice-ansi";
+      packageName = "slice-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha512 = "qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==";
+      };
+    };
     "source-map-0.6.1" = {
       name = "source-map";
       packageName = "source-map";
@@ -3002,31 +3479,58 @@ let
         sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
       };
     };
-    "source-map-support-0.5.16" = {
+    "source-map-support-0.5.19" = {
       name = "source-map-support";
       packageName = "source-map-support";
-      version = "0.5.16";
+      version = "0.5.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
+      };
+    };
+    "spdx-exceptions-2.3.0" = {
+      name = "spdx-exceptions";
+      packageName = "spdx-exceptions";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
+      };
+    };
+    "spdx-expression-parse-3.0.1" = {
+      name = "spdx-expression-parse";
+      packageName = "spdx-expression-parse";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz";
-        sha512 = "efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==";
+        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
       };
     };
-    "spex-3.0.1" = {
+    "spdx-license-ids-3.0.7" = {
+      name = "spdx-license-ids";
+      packageName = "spdx-license-ids";
+      version = "3.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz";
+        sha512 = "U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==";
+      };
+    };
+    "spex-3.2.0" = {
       name = "spex";
       packageName = "spex";
-      version = "3.0.1";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spex/-/spex-3.0.1.tgz";
-        sha512 = "priWZUrXBmVPHTOmtUeS7gZzCOUwRK87OHJw5K8bTC6MLOq93mQocx+vWccNyKPT2EY+goZvKGguGn2lx8TBDA==";
+        url = "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz";
+        sha512 = "9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg==";
       };
     };
-    "split-1.0.1" = {
-      name = "split";
-      packageName = "split";
-      version = "1.0.1";
+    "split2-3.2.2" = {
+      name = "split2";
+      packageName = "split2";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/split/-/split-1.0.1.tgz";
-        sha512 = "mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==";
+        url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz";
+        sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
       };
     };
     "sprintf-js-1.0.3" = {
@@ -3065,15 +3569,6 @@ let
         sha1 = "161c7dac177659fd9811f43771fa99381478628c";
       };
     };
-    "stealthy-require-1.1.1" = {
-      name = "stealthy-require";
-      packageName = "stealthy-require";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz";
-        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
-      };
-    };
     "string-width-2.1.1" = {
       name = "string-width";
       packageName = "string-width";
@@ -3092,22 +3587,13 @@ let
         sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
       };
     };
-    "string.prototype.trimleft-2.1.1" = {
-      name = "string.prototype.trimleft";
-      packageName = "string.prototype.trimleft";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
-        sha512 = "iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==";
-      };
-    };
-    "string.prototype.trimright-2.1.1" = {
-      name = "string.prototype.trimright";
-      packageName = "string.prototype.trimright";
-      version = "2.1.1";
+    "string-width-4.2.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
-        sha512 = "qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==";
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
+        sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
       };
     };
     "string_decoder-1.1.1" = {
@@ -3119,13 +3605,13 @@ let
         sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
       };
     };
-    "string_decoder-1.2.0" = {
+    "string_decoder-1.3.0" = {
       name = "string_decoder";
       packageName = "string_decoder";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz";
-        sha512 = "6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==";
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
+        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
       };
     };
     "strip-ansi-4.0.0" = {
@@ -3146,22 +3632,22 @@ let
         sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
       };
     };
-    "strip-eof-1.0.0" = {
-      name = "strip-eof";
-      packageName = "strip-eof";
-      version = "1.0.0";
+    "strip-ansi-6.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz";
-        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
       };
     };
-    "strip-json-comments-2.0.1" = {
+    "strip-json-comments-3.1.1" = {
       name = "strip-json-comments";
       packageName = "strip-json-comments";
-      version = "2.0.1";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
-        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
       };
     };
     "supports-color-5.5.0" = {
@@ -3173,13 +3659,22 @@ let
         sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
       };
     };
-    "supports-color-6.0.0" = {
+    "supports-color-7.2.0" = {
       name = "supports-color";
       packageName = "supports-color";
-      version = "6.0.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz";
-        sha512 = "on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==";
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
+    "table-6.0.7" = {
+      name = "table";
+      packageName = "table";
+      version = "6.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-6.0.7.tgz";
+        sha512 = "rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==";
       };
     };
     "tdigest-0.1.1" = {
@@ -3200,13 +3695,13 @@ let
         sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==";
       };
     };
-    "through-2.3.8" = {
-      name = "through";
-      packageName = "through";
-      version = "2.3.8";
+    "text-table-0.2.0" = {
+      name = "text-table";
+      packageName = "text-table";
+      version = "0.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+        url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
+        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
       };
     };
     "to-regex-range-5.0.1" = {
@@ -3227,13 +3722,13 @@ let
         sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
       };
     };
-    "tough-cookie-2.4.3" = {
+    "tough-cookie-2.5.0" = {
       name = "tough-cookie";
       packageName = "tough-cookie";
-      version = "2.4.3";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz";
-        sha512 = "Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==";
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
+        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
       };
     };
     "triple-beam-1.3.0" = {
@@ -3245,40 +3740,31 @@ let
         sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==";
       };
     };
-    "ts-node-8.8.1" = {
+    "ts-node-9.1.1" = {
       name = "ts-node";
       packageName = "ts-node";
-      version = "8.8.1";
+      version = "9.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.8.1.tgz";
-        sha512 = "10DE9ONho06QORKAaCBpPiFCdW+tZJuY/84tyypGtl6r+/C7Asq0dhqbRZURuUlLQtZxxDvT8eoj8cGW0ha6Bg==";
+        url = "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz";
+        sha512 = "hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==";
       };
     };
-    "tslib-1.11.1" = {
+    "tslib-1.14.1" = {
       name = "tslib";
       packageName = "tslib";
-      version = "1.11.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz";
-        sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
-      };
-    };
-    "tslint-6.1.0" = {
-      name = "tslint";
-      packageName = "tslint";
-      version = "6.1.0";
+      version = "1.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslint/-/tslint-6.1.0.tgz";
-        sha512 = "fXjYd/61vU6da04E505OZQGb2VCN2Mq3doeWcOIryuG+eqdmFUXTYVwdhnbEu2k46LNLgUYt9bI5icQze/j0bQ==";
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz";
+        sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
       };
     };
-    "tsutils-2.29.0" = {
+    "tsutils-3.19.1" = {
       name = "tsutils";
       packageName = "tsutils";
-      version = "2.29.0";
+      version = "3.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz";
-        sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==";
+        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.19.1.tgz";
+        sha512 = "GEdoBf5XI324lu7ycad7s6laADfnAqCw6wLGI+knxvw9vsIYBaJfYdmeCEG3FMMUiSm3OGgNb+m6utsWf5h9Vw==";
       };
     };
     "tunnel-agent-0.6.0" = {
@@ -3299,6 +3785,15 @@ let
         sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
       };
     };
+    "type-check-0.4.0" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz";
+        sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==";
+      };
+    };
     "type-detect-4.0.8" = {
       name = "type-detect";
       packageName = "type-detect";
@@ -3308,6 +3803,15 @@ let
         sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
       };
     };
+    "type-fest-0.8.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+        sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+      };
+    };
     "type-is-1.6.18" = {
       name = "type-is";
       packageName = "type-is";
@@ -3317,13 +3821,13 @@ let
         sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
-    "typescript-3.8.3" = {
+    "typescript-4.1.3" = {
       name = "typescript";
       packageName = "typescript";
-      version = "3.8.3";
+      version = "4.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz";
-        sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz";
+        sha512 = "B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==";
       };
     };
     "underscore-1.4.4" = {
@@ -3335,13 +3839,13 @@ let
         sha1 = "61a6a32010622afa07963bf325203cf12239d604";
       };
     };
-    "unhomoglyph-1.0.5" = {
+    "unhomoglyph-1.0.6" = {
       name = "unhomoglyph";
       packageName = "unhomoglyph";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.5.tgz";
-        sha512 = "rNAw2rGogjq4BVhsCX8K6qXrCcHmUaMCHETlUG0ujGZ3OHwnzJHwdMyzy3n/c9Y7lvlbckOd9nkW33grUVE3bg==";
+        url = "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz";
+        sha512 = "7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==";
       };
     };
     "unpipe-1.0.0" = {
@@ -3353,13 +3857,13 @@ let
         sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
       };
     };
-    "uri-js-4.2.2" = {
+    "uri-js-4.4.1" = {
       name = "uri-js";
       packageName = "uri-js";
-      version = "4.2.2";
+      version = "4.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
-        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz";
+        sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -3389,13 +3893,22 @@ let
         sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     };
-    "uuid-7.0.2" = {
+    "uuid-8.3.2" = {
       name = "uuid";
       packageName = "uuid";
-      version = "7.0.2";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz";
-        sha512 = "vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==";
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz";
+        sha512 = "+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==";
+      };
+    };
+    "v8-compile-cache-2.2.0" = {
+      name = "v8-compile-cache";
+      packageName = "v8-compile-cache";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
+        sha512 = "gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==";
       };
     };
     "vary-1.1.2" = {
@@ -3416,13 +3929,13 @@ let
         sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
       };
     };
-    "which-1.3.1" = {
+    "which-2.0.2" = {
       name = "which";
       packageName = "which";
-      version = "1.3.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
-        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+        url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
+        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
       };
     };
     "which-module-2.0.0" = {
@@ -3443,31 +3956,22 @@ let
         sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
       };
     };
-    "winston-3.2.1" = {
+    "winston-3.3.3" = {
       name = "winston";
       packageName = "winston";
-      version = "3.2.1";
+      version = "3.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz";
-        sha512 = "zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==";
+        url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz";
+        sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
       };
     };
-    "winston-compat-0.1.4" = {
-      name = "winston-compat";
-      packageName = "winston-compat";
-      version = "0.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.4.tgz";
-        sha512 = "mMEfFsSm6GmkFF+f4/0UJtG4N1vSaczGmXLVJYmS/+u2zUaIPcw2ZRuwUg2TvVBjswgiraN+vNnAG8z4fRUZ4w==";
-      };
-    };
-    "winston-daily-rotate-file-3.9.0" = {
+    "winston-daily-rotate-file-4.5.0" = {
       name = "winston-daily-rotate-file";
       packageName = "winston-daily-rotate-file";
-      version = "3.9.0";
+      version = "4.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.9.0.tgz";
-        sha512 = "KicvoaLQapqjSDSCIUKik0dDb90vFkqx1/udUiAt6iOqAtBl2qBCrpSDNy3xp7WnT6xHCKAWEEp2XILtiN+zpQ==";
+        url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.0.tgz";
+        sha512 = "/HqeWiU48dzGqcrABRlxYWVMdL6l3uKCtFSJyrqK+E2rLnSFNsgYpvwx15EgTitBLNzH69lQd/+z2ASryV2aqw==";
       };
     };
     "winston-transport-4.3.0" = {
@@ -3479,6 +3983,33 @@ let
         sha512 = "B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==";
       };
     };
+    "winston-transport-4.4.0" = {
+      name = "winston-transport";
+      packageName = "winston-transport";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
+      };
+    };
+    "word-wrap-1.2.3" = {
+      name = "word-wrap";
+      packageName = "word-wrap";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    };
+    "workerpool-6.0.2" = {
+      name = "workerpool";
+      packageName = "workerpool";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz";
+        sha512 = "DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==";
+      };
+    };
     "wrap-ansi-5.1.0" = {
       name = "wrap-ansi";
       packageName = "wrap-ansi";
@@ -3488,6 +4019,15 @@ let
         sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
       };
     };
+    "wrap-ansi-7.0.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
+        sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==";
+      };
+    };
     "wrappy-1.0.2" = {
       name = "wrappy";
       packageName = "wrappy";
@@ -3506,31 +4046,40 @@ let
         sha512 = "jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==";
       };
     };
-    "xtend-4.0.1" = {
+    "xtend-4.0.2" = {
       name = "xtend";
       packageName = "xtend";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+      };
+    };
+    "y18n-4.0.1" = {
+      name = "y18n";
+      packageName = "y18n";
       version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz";
-        sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz";
+        sha512 = "wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==";
       };
     };
-    "y18n-4.0.0" = {
+    "y18n-5.0.5" = {
       name = "y18n";
       packageName = "y18n";
-      version = "4.0.0";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
-        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
+        url = "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz";
+        sha512 = "hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==";
       };
     };
-    "yargs-13.2.4" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "13.2.4";
+    "yallist-4.0.0" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz";
-        sha512 = "HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==";
+        url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
+        sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
       };
     };
     "yargs-13.3.2" = {
@@ -3542,13 +4091,13 @@ let
         sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==";
       };
     };
-    "yargs-parser-13.1.1" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "13.1.1";
+    "yargs-16.2.0" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "16.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz";
-        sha512 = "oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz";
+        sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==";
       };
     };
     "yargs-parser-13.1.2" = {
@@ -3560,13 +4109,22 @@ let
         sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
       };
     };
-    "yargs-unparser-1.6.0" = {
+    "yargs-parser-20.2.4" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "20.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz";
+        sha512 = "WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==";
+      };
+    };
+    "yargs-unparser-2.0.0" = {
       name = "yargs-unparser";
       packageName = "yargs-unparser";
-      version = "1.6.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz";
-        sha512 = "W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==";
+        url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz";
+        sha512 = "7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==";
       };
     };
     "yn-3.1.1" = {
@@ -3578,93 +4136,137 @@ let
         sha512 = "Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==";
       };
     };
+    "yocto-queue-0.1.0" = {
+      name = "yocto-queue";
+      packageName = "yocto-queue";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz";
+        sha512 = "rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==";
+      };
+    };
   };
   args = {
     name = "matrix-appservice-slack";
     packageName = "matrix-appservice-slack";
-    version = "1.4.0";
+    version = "1.7.0";
     src = ./.;
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.0"
-      sources."@babel/highlight-7.9.0"
-      sources."@slack/logger-1.1.0"
-      (sources."@slack/rtm-api-5.0.3" // {
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
-          sources."p-queue-2.4.2"
+          sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."@slack/types-1.5.0"
-      (sources."@slack/web-api-5.8.0" // {
+      sources."@babel/runtime-7.12.13"
+      sources."@dabh/diagnostics-2.0.2"
+      (sources."@eslint/eslintrc-0.2.2" // {
+        dependencies = [
+          sources."debug-4.3.1"
+          sources."ignore-4.0.6"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
+      sources."@slack/logger-2.0.0"
+      (sources."@slack/rtm-api-5.0.5" // {
         dependencies = [
-          sources."form-data-2.5.1"
           sources."p-queue-2.4.2"
         ];
       })
+      sources."@slack/types-1.10.0"
+      (sources."@slack/web-api-5.15.0" // {
+        dependencies = [
+          sources."axios-0.21.1"
+        ];
+      })
       sources."@types/body-parser-1.19.0"
-      sources."@types/caseless-0.12.2"
-      sources."@types/chai-4.2.11"
-      sources."@types/connect-3.4.33"
-      sources."@types/events-3.0.0"
-      sources."@types/express-4.17.3"
-      sources."@types/express-serve-static-core-4.17.3"
+      sources."@types/chai-4.2.14"
+      sources."@types/connect-3.4.34"
+      sources."@types/express-4.17.10"
+      sources."@types/express-serve-static-core-4.17.18"
       sources."@types/is-stream-1.1.0"
-      sources."@types/mime-2.0.1"
-      sources."@types/mocha-7.0.2"
-      sources."@types/nedb-1.8.9"
-      sources."@types/node-13.9.3"
+      sources."@types/json-schema-7.0.6"
+      sources."@types/mime-2.0.3"
+      sources."@types/mocha-8.2.0"
+      sources."@types/nedb-1.8.11"
+      sources."@types/node-14.14.20"
       sources."@types/node-emoji-1.8.1"
       sources."@types/nunjucks-3.1.3"
       sources."@types/p-queue-2.3.2"
+      sources."@types/qs-6.9.5"
       sources."@types/randomstring-1.1.6"
       sources."@types/range-parser-1.2.3"
-      (sources."@types/request-2.48.4" // {
+      sources."@types/retry-0.12.0"
+      sources."@types/serve-static-1.13.8"
+      sources."@types/uuid-8.3.0"
+      sources."@types/ws-7.2.6"
+      sources."@types/yargs-15.0.12"
+      sources."@types/yargs-parser-15.0.0"
+      (sources."@typescript-eslint/eslint-plugin-4.13.0" // {
         dependencies = [
-          sources."form-data-2.5.1"
+          sources."debug-4.3.1"
+          sources."ms-2.1.2"
         ];
       })
-      sources."@types/request-promise-native-1.0.17"
-      sources."@types/retry-0.12.0"
-      sources."@types/serve-static-1.13.3"
-      sources."@types/tough-cookie-2.3.6"
-      sources."@types/uuid-7.0.2"
-      sources."@types/ws-5.1.2"
-      sources."@types/yargs-13.0.0"
-      sources."@types/yargs-parser-13.0.0"
+      sources."@typescript-eslint/eslint-plugin-tslint-4.13.0"
+      sources."@typescript-eslint/experimental-utils-4.13.0"
+      (sources."@typescript-eslint/parser-4.13.0" // {
+        dependencies = [
+          sources."debug-4.3.1"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@typescript-eslint/scope-manager-4.13.0"
+      sources."@typescript-eslint/types-4.13.0"
+      (sources."@typescript-eslint/typescript-estree-4.13.0" // {
+        dependencies = [
+          sources."debug-4.3.1"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@typescript-eslint/visitor-keys-4.13.0"
+      sources."@ungap/promise-all-settled-1.1.2"
       sources."Slackdown-git://github.com/half-shot/slackdown#efd8934a3d9c3bf0064c0b217c5cf6b62ee697e4"
       sources."a-sync-waterfall-1.0.1"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
-      sources."ajv-6.10.2"
+      sources."acorn-7.4.1"
+      sources."acorn-jsx-5.3.1"
+      sources."ajv-6.12.6"
       sources."another-json-0.2.0"
-      sources."ansi-colors-3.2.3"
-      sources."ansi-regex-4.1.0"
+      sources."ansi-colors-4.1.1"
+      sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
       sources."arg-4.1.3"
       sources."argparse-1.0.10"
       sources."array-flatten-1.1.1"
+      sources."array-union-2.1.0"
       sources."array-uniq-1.0.2"
       sources."asap-2.0.6"
       sources."asn1-0.2.4"
-      sources."assert-options-0.6.2"
+      sources."assert-options-0.7.0"
       sources."assert-plus-1.0.0"
       sources."assertion-error-1.1.0"
+      sources."astral-regex-2.0.0"
       sources."async-0.2.10"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.0"
-      sources."axios-0.19.2"
-      sources."babel-runtime-6.26.0"
+      sources."aws4-1.11.0"
+      sources."axios-0.21.1"
       sources."balanced-match-1.0.0"
       sources."base-x-3.0.8"
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."binary-search-tree-0.2.5"
       sources."bintrees-1.0.1"
-      sources."bluebird-2.11.0"
       sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -3673,387 +4275,484 @@ let
       sources."bs58-4.0.1"
       sources."buffer-from-1.1.1"
       sources."buffer-writer-2.0.0"
-      sources."builtin-modules-1.1.1"
       sources."bytes-3.1.0"
+      sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."caseless-0.12.0"
       sources."chai-4.2.0"
-      (sources."chalk-2.4.2" // {
+      (sources."chalk-4.1.0" // {
         dependencies = [
-          sources."escape-string-regexp-1.0.5"
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."check-error-1.0.2"
-      sources."chokidar-3.3.0"
-      sources."cliui-5.0.0"
+      sources."chokidar-3.4.1"
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."color-string-1.5.3"
-      sources."colornames-1.1.1"
       sources."colors-1.3.3"
       sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
+      sources."comment-parser-0.7.6"
       sources."concat-map-0.0.1"
       sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-2.6.11"
       sources."core-util-is-1.0.2"
-      sources."cross-spawn-6.0.5"
-      sources."cycle-1.0.3"
+      sources."create-require-1.1.1"
+      sources."cross-spawn-7.0.3"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       sources."deep-eql-3.0.1"
-      sources."define-properties-1.1.3"
+      sources."deep-is-0.1.3"
       sources."delayed-stream-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."diagnostics-1.1.1"
-      sources."diff-3.5.0"
+      sources."diff-4.0.2"
+      sources."dir-glob-3.0.1"
+      sources."doctrine-3.0.0"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."emoji-regex-7.0.3"
-      sources."enabled-1.0.2"
+      sources."emoji-regex-8.0.0"
+      sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
-      sources."end-of-stream-1.4.1"
-      sources."env-variable-0.0.5"
-      sources."es-abstract-1.17.5"
-      sources."es-to-primitive-1.2.1"
+      sources."enquirer-2.3.6"
+      sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
-      sources."escape-string-regexp-2.0.0"
+      sources."escape-string-regexp-4.0.0"
+      (sources."eslint-7.17.0" // {
+        dependencies = [
+          sources."debug-4.3.1"
+          sources."ignore-4.0.6"
+          sources."ms-2.1.2"
+        ];
+      })
+      (sources."eslint-plugin-jsdoc-30.7.13" // {
+        dependencies = [
+          sources."debug-4.3.1"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."eslint-plugin-prefer-arrow-1.2.2"
+      sources."eslint-scope-5.1.1"
+      (sources."eslint-utils-2.1.0" // {
+        dependencies = [
+          sources."eslint-visitor-keys-1.3.0"
+        ];
+      })
+      sources."eslint-visitor-keys-2.0.0"
+      (sources."espree-7.3.1" // {
+        dependencies = [
+          sources."eslint-visitor-keys-1.3.0"
+        ];
+      })
       sources."esprima-4.0.1"
+      (sources."esquery-1.3.1" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
       sources."etag-1.8.1"
       sources."eventemitter3-3.1.2"
-      sources."execa-1.0.0"
       sources."express-4.17.1"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-2.0.1"
-      sources."fast-json-stable-stringify-2.0.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-3.2.4"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.6"
-      sources."fecha-2.3.3"
-      sources."file-stream-rotator-0.4.1"
+      sources."fastq-1.10.0"
+      sources."file-entry-cache-6.0.0"
+      sources."file-stream-rotator-0.5.7"
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
-      sources."find-up-3.0.0"
+      sources."find-up-5.0.0"
       sources."finity-0.5.4"
-      sources."flat-4.1.0"
-      (sources."follow-redirects-1.5.10" // {
-        dependencies = [
-          sources."debug-3.1.0"
-        ];
-      })
+      sources."flat-5.0.2"
+      sources."flat-cache-3.0.4"
+      sources."flatted-3.1.0"
+      sources."fn.name-1.1.0"
+      sources."follow-redirects-1.13.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
+      sources."form-data-2.5.1"
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
-      sources."function-bind-1.1.1"
+      sources."fsevents-2.1.3"
+      sources."functional-red-black-tree-1.0.1"
       sources."generate-function-2.3.1"
       sources."generate-object-property-1.2.0"
       sources."get-caller-file-2.0.5"
       sources."get-func-name-2.0.0"
-      sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.3"
+      sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
+      sources."globals-12.4.0"
+      sources."globby-11.0.2"
       sources."growl-1.10.5"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."has-1.0.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
       sources."he-1.2.0"
       sources."http-errors-1.7.2"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
+      sources."ignore-5.1.8"
       sources."immediate-3.0.6"
+      sources."import-fresh-3.3.0"
+      sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
-      sources."invert-kv-2.0.0"
-      sources."ipaddr.js-1.9.0"
+      sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
-      sources."is-buffer-2.0.4"
-      sources."is-callable-1.1.5"
-      sources."is-date-object-1.0.2"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-my-ip-valid-1.0.0"
-      sources."is-my-json-valid-2.20.0"
+      sources."is-my-json-valid-2.20.5"
       sources."is-number-7.0.0"
+      sources."is-plain-obj-2.1.0"
       sources."is-property-1.0.2"
-      sources."is-regex-1.0.5"
       sources."is-stream-1.1.0"
-      sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
+      sources."jsdoctypeparser-9.0.0"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonpointer-4.0.1"
+      sources."jsonpointer-4.1.0"
       sources."jsprim-1.4.1"
-      sources."kuler-1.0.1"
-      sources."lcid-2.0.0"
+      sources."kuler-2.0.0"
+      sources."levn-0.4.1"
       sources."lie-3.1.1"
       sources."localforage-1.7.3"
-      sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."locate-path-6.0.0"
+      sources."lodash-4.17.20"
       sources."lodash.toarray-4.4.0"
-      sources."log-symbols-3.0.0"
-      (sources."logform-2.1.2" // {
+      sources."log-symbols-4.0.0"
+      (sources."logform-2.2.0" // {
         dependencies = [
+          sources."fecha-4.2.0"
           sources."ms-2.1.2"
         ];
       })
-      sources."loglevel-1.6.8"
+      sources."loglevel-1.7.1"
+      sources."lru-cache-6.0.0"
       sources."make-error-1.3.6"
-      sources."map-age-cleaner-0.1.3"
-      sources."matrix-appservice-0.4.1"
-      sources."matrix-appservice-bridge-1.12.2"
-      (sources."matrix-js-sdk-2.4.6" // {
+      sources."matrix-appservice-0.7.1"
+      (sources."matrix-appservice-bridge-2.5.0" // {
         dependencies = [
-          sources."bluebird-3.5.5"
+          sources."argparse-2.0.1"
+          sources."js-yaml-4.0.0"
+        ];
+      })
+      (sources."matrix-js-sdk-9.6.0" // {
+        dependencies = [
+          sources."qs-6.9.6"
         ];
       })
       sources."media-typer-0.3.0"
-      sources."mem-4.3.0"
       sources."merge-descriptors-1.0.1"
+      sources."merge2-1.4.1"
       sources."methods-1.1.2"
+      sources."micromatch-4.0.2"
       sources."mime-1.6.0"
       sources."mime-db-1.40.0"
       sources."mime-types-2.1.24"
-      sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      (sources."mocha-7.1.1" // {
+      (sources."mocha-8.2.1" // {
         dependencies = [
-          sources."debug-3.2.6"
-          sources."escape-string-regexp-1.0.5"
-          sources."minimist-1.2.5"
-          sources."mkdirp-0.5.3"
-          sources."ms-2.1.1"
-          sources."supports-color-6.0.0"
-          sources."yargs-13.3.2"
-          sources."yargs-parser-13.1.2"
+          sources."ansi-regex-4.1.0"
+          sources."chokidar-3.4.3"
+          sources."debug-4.2.0"
+          sources."emoji-regex-7.0.3"
+          sources."has-flag-4.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."locate-path-3.0.0"
+          sources."ms-2.1.2"
+          sources."p-limit-2.3.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+          sources."readdirp-3.5.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."supports-color-7.2.0"
+          (sources."yargs-13.3.2" // {
+            dependencies = [
+              sources."find-up-3.0.0"
+            ];
+          })
         ];
       })
       sources."moment-2.24.0"
-      sources."morgan-1.9.1"
+      (sources."morgan-1.10.0" // {
+        dependencies = [
+          sources."depd-2.0.0"
+        ];
+      })
       sources."ms-2.0.0"
+      sources."nanoid-3.1.12"
+      sources."natural-compare-1.4.0"
       sources."nedb-1.8.0"
       sources."negotiator-0.6.2"
-      sources."nice-try-1.0.5"
       sources."node-emoji-1.10.0"
-      sources."node-environment-flags-1.0.6"
-      sources."nopt-3.0.6"
+      sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
-      sources."npm-run-path-2.0.2"
-      (sources."nunjucks-3.2.1" // {
+      (sources."nunjucks-3.2.2" // {
         dependencies = [
-          sources."commander-3.0.2"
+          sources."commander-5.1.0"
         ];
       })
       sources."oauth-sign-0.9.0"
-      sources."object-hash-1.3.1"
-      sources."object-inspect-1.7.0"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
-      sources."object.getownpropertydescriptors-2.1.0"
+      sources."object-hash-2.0.3"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."one-time-0.0.4"
-      sources."os-locale-3.1.0"
+      sources."one-time-1.0.0"
+      sources."optionator-0.9.1"
       sources."p-cancelable-1.1.0"
-      sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
-      sources."p-is-promise-2.1.0"
-      sources."p-limit-2.2.0"
-      sources."p-locate-3.0.0"
-      (sources."p-queue-6.3.0" // {
+      sources."p-limit-3.1.0"
+      sources."p-locate-5.0.0"
+      (sources."p-queue-6.6.2" // {
         dependencies = [
-          sources."eventemitter3-4.0.0"
+          sources."eventemitter3-4.0.7"
         ];
       })
       sources."p-retry-4.2.0"
       sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
       sources."packet-reader-1.0.0"
+      sources."parent-module-1.0.1"
       sources."parseurl-1.3.3"
-      sources."path-exists-3.0.0"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-key-3.1.1"
       sources."path-to-regexp-0.1.7"
+      sources."path-type-4.0.0"
       sources."pathval-1.1.0"
       sources."performance-now-2.1.0"
-      (sources."pg-8.1.0" // {
-        dependencies = [
-          sources."semver-4.3.2"
-        ];
-      })
-      sources."pg-connection-string-2.2.2"
+      sources."pg-8.5.1"
+      sources."pg-connection-string-2.4.0"
       sources."pg-int8-1.0.1"
-      sources."pg-minify-1.6.0"
-      sources."pg-pool-3.2.0"
-      sources."pg-promise-10.5.5"
-      sources."pg-protocol-1.2.3"
+      sources."pg-minify-1.6.2"
+      sources."pg-pool-3.2.2"
+      sources."pg-promise-10.8.7"
+      sources."pg-protocol-1.4.0"
       sources."pg-types-2.2.0"
-      sources."pgpass-1.0.2"
+      sources."pgpass-1.0.4"
       sources."picomatch-2.2.2"
       sources."postgres-array-2.0.0"
       sources."postgres-bytea-1.0.0"
-      sources."postgres-date-1.0.5"
+      sources."postgres-date-1.0.7"
       sources."postgres-interval-1.2.0"
+      sources."prelude-ls-1.2.1"
       sources."process-nextick-args-2.0.1"
-      sources."prom-client-11.5.3"
-      sources."proxy-addr-2.0.5"
-      sources."psl-1.1.33"
-      sources."pump-3.0.0"
+      sources."progress-2.0.3"
+      sources."prom-client-13.1.0"
+      sources."proxy-addr-2.0.6"
+      sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
-      sources."quick-lru-5.0.0"
+      sources."quick-lru-5.1.1"
+      sources."randombytes-2.1.0"
       sources."randomstring-1.1.5"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
-      sources."readable-stream-3.4.0"
-      sources."readdirp-3.2.0"
-      sources."regenerator-runtime-0.11.1"
-      (sources."request-2.88.0" // {
+      sources."readable-stream-3.6.0"
+      sources."readdirp-3.4.0"
+      sources."regenerator-runtime-0.13.7"
+      sources."regexpp-3.1.0"
+      sources."regextras-0.7.1"
+      (sources."request-2.88.2" // {
         dependencies = [
+          sources."form-data-2.3.3"
           sources."qs-6.5.2"
           sources."uuid-3.4.0"
         ];
       })
-      sources."request-promise-core-1.1.3"
-      sources."request-promise-native-1.0.8"
       sources."require-directory-2.1.1"
+      sources."require-from-string-2.0.2"
       sources."require-main-filename-2.0.0"
-      sources."resolve-1.15.1"
+      sources."resolve-from-4.0.0"
       sources."retry-0.12.0"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
+      sources."run-parallel-1.1.10"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."semver-5.7.0"
+      sources."semver-7.3.4"
       (sources."send-0.17.1" // {
         dependencies = [
           sources."ms-2.1.1"
         ];
       })
+      sources."serialize-javascript-5.0.1"
       sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.2"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."simple-swizzle-0.2.2"
+      sources."slash-3.0.0"
+      (sources."slice-ansi-4.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
       sources."source-map-0.6.1"
-      sources."source-map-support-0.5.16"
-      sources."spex-3.0.1"
-      sources."split-1.0.1"
+      sources."source-map-support-0.5.19"
+      sources."spdx-exceptions-2.3.0"
+      sources."spdx-expression-parse-3.0.1"
+      sources."spdx-license-ids-3.0.7"
+      sources."spex-3.2.0"
+      sources."split2-3.2.2"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
       sources."statuses-1.5.0"
-      sources."stealthy-require-1.1.1"
-      sources."string-width-3.1.0"
-      sources."string.prototype.trimleft-2.1.1"
-      sources."string.prototype.trimright-2.1.1"
-      sources."string_decoder-1.2.0"
-      sources."strip-ansi-5.2.0"
-      sources."strip-eof-1.0.0"
-      sources."strip-json-comments-2.0.1"
-      sources."supports-color-5.5.0"
-      sources."tdigest-0.1.1"
-      sources."text-hex-1.0.0"
-      sources."through-2.3.8"
-      sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
-      (sources."tough-cookie-2.4.3" // {
+      sources."string-width-4.2.0"
+      (sources."string_decoder-1.3.0" // {
         dependencies = [
-          sources."punycode-1.4.1"
+          sources."safe-buffer-5.2.1"
         ];
       })
-      sources."triple-beam-1.3.0"
-      (sources."ts-node-8.8.1" // {
-        dependencies = [
-          sources."diff-4.0.2"
-        ];
-      })
-      sources."tslib-1.11.1"
-      (sources."tslint-6.1.0" // {
+      sources."strip-ansi-6.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-5.5.0"
+      (sources."table-6.0.7" // {
         dependencies = [
-          sources."diff-4.0.2"
+          sources."ajv-7.0.3"
+          sources."json-schema-traverse-1.0.0"
         ];
       })
-      sources."tsutils-2.29.0"
+      sources."tdigest-0.1.1"
+      sources."text-hex-1.0.0"
+      sources."text-table-0.2.0"
+      sources."to-regex-range-5.0.1"
+      sources."toidentifier-1.0.0"
+      sources."tough-cookie-2.5.0"
+      sources."triple-beam-1.3.0"
+      sources."ts-node-9.1.1"
+      sources."tslib-1.14.1"
+      sources."tsutils-3.19.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
+      sources."type-check-0.4.0"
       sources."type-detect-4.0.8"
+      sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
-      sources."typescript-3.8.3"
+      sources."typescript-4.1.3"
       sources."underscore-1.4.4"
-      sources."unhomoglyph-1.0.5"
+      sources."unhomoglyph-1.0.6"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
-      sources."uuid-7.0.2"
+      sources."uuid-8.3.2"
+      sources."v8-compile-cache-2.2.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."which-1.3.1"
+      sources."which-2.0.2"
       sources."which-module-2.0.0"
       (sources."wide-align-1.1.3" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
         ];
       })
-      (sources."winston-3.2.1" // {
+      (sources."winston-3.3.3" // {
         dependencies = [
-          sources."async-2.6.2"
-        ];
-      })
-      (sources."winston-compat-0.1.4" // {
-        dependencies = [
-          sources."logform-1.10.0"
-          sources."ms-2.1.2"
+          sources."async-3.2.0"
+          sources."is-stream-2.0.0"
+          sources."string_decoder-1.1.1"
+          (sources."winston-transport-4.4.0" // {
+            dependencies = [
+              sources."readable-stream-2.3.7"
+            ];
+          })
         ];
       })
-      sources."winston-daily-rotate-file-3.9.0"
+      sources."winston-daily-rotate-file-4.5.0"
       (sources."winston-transport-4.3.0" // {
         dependencies = [
           sources."readable-stream-2.3.6"
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."wrap-ansi-5.1.0"
+      sources."word-wrap-1.2.3"
+      sources."workerpool-6.0.2"
+      (sources."wrap-ansi-5.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
       sources."wrappy-1.0.2"
       sources."ws-5.2.2"
-      sources."xtend-4.0.1"
-      sources."y18n-4.0.0"
-      sources."yargs-13.2.4"
-      sources."yargs-parser-13.1.1"
-      (sources."yargs-unparser-1.6.0" // {
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.1"
+      sources."yallist-4.0.0"
+      (sources."yargs-16.2.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."cliui-7.0.4"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."wrap-ansi-7.0.0"
+          sources."y18n-5.0.5"
+          sources."yargs-parser-20.2.4"
+        ];
+      })
+      sources."yargs-parser-13.1.2"
+      (sources."yargs-unparser-2.0.0" // {
         dependencies = [
-          sources."yargs-13.3.2"
-          sources."yargs-parser-13.1.2"
+          sources."camelcase-6.2.0"
+          sources."decamelize-4.0.0"
         ];
       })
       sources."yn-3.1.1"
+      sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/plugins/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/plugins/default.nix
index f3dbaa1573f0..f68be9f8e650 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/plugins/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/plugins/default.nix
@@ -3,4 +3,5 @@
 {
   matrix-synapse-ldap3 = callPackage ./ldap3.nix { };
   matrix-synapse-pam = callPackage ./pam.nix { };
+  matrix-synapse-shared-secret-auth = callPackage ./shared-secret-auth.nix { };
 }
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/plugins/shared-secret-auth.nix b/nixpkgs/pkgs/servers/matrix-synapse/plugins/shared-secret-auth.nix
new file mode 100644
index 000000000000..5c0dc1e2ce2b
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/plugins/shared-secret-auth.nix
@@ -0,0 +1,18 @@
+{ buildPythonPackage, fetchFromGitHub, twisted }:
+
+buildPythonPackage rec {
+  pname = "matrix-synapse-shared-secret-auth";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "devture";
+    repo = "matrix-synapse-shared-secret-auth";
+    rev = version;
+    sha256 = "0cnxp3bp8mmk01a0g3lzgvaawyywjg754j4nb9iwkmm3c2nqvnpz";
+  };
+
+  doCheck = false;
+  pythonImportsCheck = [ "shared_secret_authenticator" ];
+
+  propagatedBuildInputs = [ twisted ];
+}
diff --git a/nixpkgs/pkgs/servers/matterbridge/default.nix b/nixpkgs/pkgs/servers/matterbridge/default.nix
index 6d12ac84d901..d6865df66cdb 100644
--- a/nixpkgs/pkgs/servers/matterbridge/default.nix
+++ b/nixpkgs/pkgs/servers/matterbridge/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "matterbridge";
-  version = "1.21.0";
+  version = "1.22.1";
 
   vendorSha256 = null;
 
@@ -10,7 +10,7 @@ buildGoModule rec {
 
   src = fetchurl {
     url = "https://github.com/42wim/matterbridge/archive/v${version}.tar.gz";
-    sha256 = "sha256-ehn6KdPpDpfdyWCVfLuZLq2dDmZXc6InlnovqNsdG6Y=";
+    sha256 = "sha256-yV805OWFNOxKIGd6t2kRcUzdB8xYWYHFK+W2u/QPTXg=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/mattermost/default.nix b/nixpkgs/pkgs/servers/mattermost/default.nix
index f63f76efabae..6a7ba06df885 100644
--- a/nixpkgs/pkgs/servers/mattermost/default.nix
+++ b/nixpkgs/pkgs/servers/mattermost/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, fetchFromGitHub, buildGoPackage, buildEnv }:
 
 let
-  version = "5.25.3";
+  version = "5.32.1";
 
   mattermost-server = buildGoPackage rec {
     pname = "mattermost-server";
@@ -11,7 +11,7 @@ let
       owner = "mattermost";
       repo = "mattermost-server";
       rev = "v${version}";
-      sha256 = "03xcwlbb9ff5whsdn2m3kqskxpwpfciikjjndbhksc8k8963z07j";
+      sha256 = "BssrTfkIxUbXYXIfz9i+5b4rEYSzBim+/riK78m8Bxo=";
     };
 
     goPackagePath = "github.com/mattermost/mattermost-server";
@@ -29,7 +29,7 @@ let
 
     src = fetchurl {
       url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
-      sha256 = "1p1qxzrd6rj1i43vj18ysknrw2v02s7llx94nrdd5lk10ayzmg63";
+      sha256 = "kRerl3fYRTrotj86AIFSor3GpjhABkCmego1ms9HmkQ=";
     };
 
     installPhase = ''
diff --git a/nixpkgs/pkgs/servers/mattermost/matterircd.nix b/nixpkgs/pkgs/servers/mattermost/matterircd.nix
index 3abb728bec1d..af2f9e6af104 100644
--- a/nixpkgs/pkgs/servers/mattermost/matterircd.nix
+++ b/nixpkgs/pkgs/servers/mattermost/matterircd.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "matterircd";
-  version = "0.20.0";
+  version = "0.23.1";
 
   src = fetchFromGitHub {
     owner = "42wim";
     repo = "matterircd";
     rev = "v${version}";
-    sha256 = "0rnkzxf953nd67w33ghmrfjfg099cd21nldm31q8pk7fs1mgjnld";
+    sha256 = "sha256-1oItl0mLyAFah9qaaYl+IAT/H4X+GW82GBHYuLWacVI=";
   };
 
   goPackagePath = "github.com/42wim/matterircd";
diff --git a/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix b/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix
index a17d8a55acc8..934ce797d504 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.1.5";
+  version = "0.1.6";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = "mautrix-whatsapp";
     rev = "v${version}";
-    sha256 = "sha256-RkMgzYu6r30uqUCtCS/FuvJQiTInRYWiWhlTtDQQh5g=";
+    sha256 = "sha256-0nwE3+GkJAvz5s8G23TvLVO8ykQK0ZIwEWAaTWHHOuU=";
   };
 
   buildInputs = [ olm ];
 
-  vendorSha256 = "sha256-p6TW5ACXjqCR5IAVleMEIWYW4SHI1ZRL5KJFZpPc7yU=";
+  vendorSha256 = "sha256-FRXG0HmYfum9G/LYm6oWLLx1ZYQ3Jq7qV/mq6ofN9f5=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/metabase/default.nix b/nixpkgs/pkgs/servers/metabase/default.nix
index 48b5a7195b5b..d64279bf7e17 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.37.8";
+  version = "0.38.0";
 
   src = fetchurl {
     url = "https://downloads.metabase.com/v${version}/metabase.jar";
-    sha256 = "sha256-T3isJcnDUvN4TCd9tZA1p46pamhdPSwIKKAOr6+1F30=";
+    sha256 = "170fj2cc7drh6c1dgl60f9n79vfrsw2v57lmds677naxnq254jhp";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/meteor/default.nix b/nixpkgs/pkgs/servers/meteor/default.nix
index 96363583b62e..ac870a8d5d15 100644
--- a/nixpkgs/pkgs/servers/meteor/default.nix
+++ b/nixpkgs/pkgs/servers/meteor/default.nix
@@ -2,15 +2,25 @@
 
 let
   version = "1.12";
+
+  inherit (stdenv.hostPlatform) system;
+
+  srcs = {
+    x86_64-linux = fetchurl {
+      url = "https://static-meteor.netdna-ssl.com/packages-bootstrap/${version}/meteor-bootstrap-os.linux.x86_64.tar.gz";
+      sha256 = "0l3zc76djzypvc0dm5ikv5ybb6574qd6kdbbkarzc2dxx64wkyvb";
+    };
+    x86_64-darwin = fetchurl {
+      url = "https://static-meteor.netdna-ssl.com/packages-bootstrap/${version}/meteor-bootstrap-os.osx.x86_64.tar.gz";
+      sha256 = "01gn3m6qacp3ibvp0rcvm2pq7fi1xds02ws0irypldh7vz3930jl";
+    };
+  };
 in
 
 stdenv.mkDerivation {
   inherit version;
   pname = "meteor";
-  src = fetchurl {
-    url = "https://static-meteor.netdna-ssl.com/packages-bootstrap/${version}/meteor-bootstrap-os.linux.x86_64.tar.gz";
-    sha256 = "0l3zc76djzypvc0dm5ikv5ybb6574qd6kdbbkarzc2dxx64wkyvb";
-  };
+  src = srcs.${system};
 
   #dontStrip = true;
 
@@ -30,38 +40,6 @@ stdenv.mkDerivation {
     toolsDir=$(dirname $(find $out/packages -print | grep "meteor-tool/.*/tools/index.js$"))
     ln -s $toolsDir $out/tools
 
-    # Patch Meteor to dynamically fixup shebangs and ELF metadata where
-    # necessary.
-    pushd $out
-    patch -p1 < ${./main.patch}
-    popd
-    substituteInPlace $out/tools/cli/main.js \
-      --replace "@INTERPRETER@" "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --replace "@RPATH@" "${lib.makeLibraryPath [ stdenv.cc.cc zlib ]}" \
-      --replace "@PATCHELF@" "${patchelf}/bin/patchelf"
-
-    # Patch node.
-    node=$devBundle/bin/node
-    patchelf \
-      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
-      --set-rpath "$(patchelf --print-rpath $node):${stdenv.cc.cc.lib}/lib" \
-      $node
-
-    # Patch mongo.
-    for p in $devBundle/mongodb/bin/mongo{,d}; do
-      patchelf \
-        --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
-        --set-rpath "$(patchelf --print-rpath $p):${lib.makeLibraryPath [ stdenv.cc.cc zlib ]}" \
-        $p
-    done
-
-    # Patch node dlls.
-    for p in $(find $out/packages -name '*.node'); do
-      patchelf \
-        --set-rpath "$(patchelf --print-rpath $p):${stdenv.cc.cc.lib}/lib" \
-        $p || true
-    done
-
     # Meteor needs an initial package-metadata in $HOME/.meteor,
     # otherwise it fails spectacularly.
     mkdir -p $out/bin
@@ -75,16 +53,49 @@ stdenv.mkDerivation {
       chmod +w "\$HOME/.meteor/package-metadata/v2.0.1/packages.data.db"
     fi
 
-    $node \''${TOOL_NODE_FLAGS} $out/tools/index.js "\$@"
+    $out/dev_bundle/bin/node --no-wasm-code-gc \''${TOOL_NODE_FLAGS} $out/tools/index.js "\$@"
     EOF
     chmod +x $out/bin/meteor
   '';
 
+  postFixup = lib.optionalString stdenv.isLinux ''
+      # Patch Meteor to dynamically fixup shebangs and ELF metadata where
+      # necessary.
+      pushd $out
+      patch -p1 < ${./main.patch}
+      popd
+      substituteInPlace $out/tools/cli/main.js \
+        --replace "@INTERPRETER@" "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --replace "@RPATH@" "${lib.makeLibraryPath [ stdenv.cc.cc zlib ]}" \
+        --replace "@PATCHELF@" "${patchelf}/bin/patchelf"
+
+      # Patch node.
+      patchelf \
+        --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+        --set-rpath "$(patchelf --print-rpath $out/dev_bundle/bin/node):${stdenv.cc.cc.lib}/lib" \
+        $out/dev_bundle/bin/node
+
+      # Patch mongo.
+      for p in $out/dev_bundle/mongodb/bin/mongo{,d}; do
+        patchelf \
+          --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+          --set-rpath "$(patchelf --print-rpath $p):${lib.makeLibraryPath [ stdenv.cc.cc zlib ]}" \
+          $p
+      done
+
+      # Patch node dlls.
+      for p in $(find $out/packages -name '*.node'); do
+        patchelf \
+          --set-rpath "$(patchelf --print-rpath $p):${stdenv.cc.cc.lib}/lib" \
+          $p || true
+      done
+  '';
+
   meta = with lib; {
     description = "Complete open source platform for building web and mobile apps in pure JavaScript";
     homepage = "http://www.meteor.com";
     license = licenses.mit;
-    platforms = [ "x86_64-linux" ];
+    platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ cstrahan ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/miniflux/default.nix b/nixpkgs/pkgs/servers/miniflux/default.nix
index 08af694560bf..e69014c4f4ae 100644
--- a/nixpkgs/pkgs/servers/miniflux/default.nix
+++ b/nixpkgs/pkgs/servers/miniflux/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "miniflux";
-  version = "2.0.27";
+  version = "2.0.29";
 
 in buildGoModule {
   inherit pname version;
@@ -11,10 +11,10 @@ in buildGoModule {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0sl1hxdybafzpa1bi22b8r4fxdzwynr012ga5jvwcn2rcxbdbd8z";
+    sha256 = "sha256-8FfI9TPtIoQ/D5AdKRy7fq/eGZ6ha8z0tqBnWcziMTA=";
   };
 
-  vendorSha256 = "183whf29zq771rq0z4008gwaps1iipb0m9kp6xyizbnzafwm3zwm";
+  vendorSha256 = "sha256-y7w+SHy0yPws365PKJeRStZS3Y5vjyPWHK3w84VvJsI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/servers/minio/default.nix b/nixpkgs/pkgs/servers/minio/default.nix
index 492e0236d19c..dcf7f7bf9f6a 100644
--- a/nixpkgs/pkgs/servers/minio/default.nix
+++ b/nixpkgs/pkgs/servers/minio/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "minio";
-  version = "2021-02-11T08-23-43Z";
+  version = "2021-03-26T00-00-41Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-Y2iyi+bdBCLV/MWPPsrrJFEayuQVGsvrs63kOuFljJ8=";
+    sha256 = "sha256-WH7gAO8ghwMhLU/ioHrZUgIk1h6yeUzM+xg1GnkFDHM=";
   };
 
-  vendorSha256 = "sha256-7WvR6WHiaFHHBhpPoqnkr9pzFxNpLpZuaB1a/SkLBtc=";
+  vendorSha256 = "sha256-VeYc+UtocpeNSV+0MocZj/83X/SMMv5PX2cPIPBV/sk=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/monitoring/alerta/client.nix b/nixpkgs/pkgs/servers/monitoring/alerta/client.nix
new file mode 100644
index 000000000000..31f31d074057
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/alerta/client.nix
@@ -0,0 +1,27 @@
+{ lib
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "alerta";
+  version = "8.4.0";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "260ff3118e73396104129928217b0f317ac5afdff8221874d8986df22ecf5f34";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    six click requests requests-hawk pytz tabulate
+  ];
+
+  doCheck = false;
+
+  disabled = python3.pythonOlder "3.6";
+
+  meta = with lib; {
+    homepage = "https://alerta.io";
+    description = "Alerta Monitoring System command-line interface";
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/alerta-server/default.nix b/nixpkgs/pkgs/servers/monitoring/alerta/default.nix
index 82783dd16bb5..e69a594a728b 100644
--- a/nixpkgs/pkgs/development/python-modules/alerta-server/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/alerta/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
-, bcrypt, blinker, flask, flask-compress, flask-cors, mohawk, psycopg2, pyjwt, pymongo, python-dateutil, pytz, pyyaml, requests, requests-hawk, sentry-sdk
+{ lib
+, python3
 }:
 
-buildPythonPackage rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "alerta-server";
   version = "8.3.3";
 
-  src = fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
     sha256 = "a2713a31c6e326c774a3ee0328f424f944b951935ff1b893a4a66598d61c5a97";
   };
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
     bcrypt
     blinker
     flask
@@ -31,11 +31,7 @@ buildPythonPackage rec {
 
   doCheck = false; # We can't run the tests from Nix, because they rely on the presence of a working MongoDB server
 
-  postInstall = ''
-    wrapProgram $out/bin/alertad --prefix PYTHONPATH : "$PYTHONPATH"
-  '';
-
-  disabled = pythonOlder "3.5";
+  disabled = python3.pythonOlder "3.6";
 
   meta = with lib; {
     homepage = "https://alerta.io";
diff --git a/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
index 2a6c675ce1af..9a172120da80 100644
--- a/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "do-agent";
-  version = "3.9.0";
+  version = "3.9.4";
 
   src = fetchFromGitHub {
     owner = "digitalocean";
     repo = "do-agent";
     rev = version;
-    sha256 = "sha256-0m2dL7oFF45yR4Vu+AW3ROf16w1iioI5McVauOQA/XQ=";
+    sha256 = "sha256-h5Bv6Us1NrxhUWBckUcGzh3qDk8yDbkmLnV6ZYDdClU=";
   };
 
   buildFlagsArray = ''
diff --git a/nixpkgs/pkgs/servers/monitoring/fusion-inventory/default.nix b/nixpkgs/pkgs/servers/monitoring/fusion-inventory/default.nix
index 0034c253c774..c55c67f5f62d 100644
--- a/nixpkgs/pkgs/servers/monitoring/fusion-inventory/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/fusion-inventory/default.nix
@@ -1,4 +1,4 @@
-{ lib, perlPackages, nix, dmidecode, pciutils, usbutils, iproute, nettools
+{ lib, perlPackages, nix, dmidecode, pciutils, usbutils, iproute2, nettools
 , fetchFromGitHub, makeWrapper
 }:
 
@@ -18,13 +18,14 @@ perlPackages.buildPerlPackage rec {
     patchShebangs bin
 
     substituteInPlace "lib/FusionInventory/Agent/Tools/Linux.pm" \
-      --replace /sbin/ip ${iproute}/sbin/ip
+      --replace /sbin/ip ${iproute2}/sbin/ip
     substituteInPlace "lib/FusionInventory/Agent/Task/Inventory/Linux/Networks.pm" \
-      --replace /sbin/ip ${iproute}/sbin/ip
+      --replace /sbin/ip ${iproute2}/sbin/ip
   '';
 
   buildTools = [];
-  buildInputs = [ makeWrapper ] ++ (with perlPackages; [
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = (with perlPackages; [
     CGI
     DataStructureUtil
     FileCopyRecursive
@@ -66,7 +67,7 @@ perlPackages.buildPerlPackage rec {
     for cur in $out/bin/*; do
       if [ -x "$cur" ]; then
         sed -e "s|./lib|$out/lib|" -i "$cur"
-        wrapProgram "$cur" --prefix PATH : ${lib.makeBinPath [nix dmidecode pciutils usbutils nettools iproute]}
+        wrapProgram "$cur" --prefix PATH : ${lib.makeBinPath [nix dmidecode pciutils usbutils nettools iproute2]}
       fi
     done
   '';
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
index 1d5715176cae..7ad518308df5 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "grafana-agent";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "grafana";
     repo = "agent";
-    sha256 = "sha256-kWl6wkyN/ytnct2MseZ5FQgOL2WeGJDFPPGJxkdcDX8=";
+    sha256 = "sha256-wm+WoOvYVa29lMMnXatlQ4gcCLsz+uQZ7D/hUxNjIPc=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix
index d2bf5040b0e6..8d4d37304f3d 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix
@@ -9,14 +9,14 @@
 # * Update `version`+`hash` and rebuild.
 
 mkYarnPackage rec {
-  name = "grafana-image-renderer-unstable";
-  version = "2020-12-01";
+  name = "grafana-image-renderer";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "grafana-image-renderer";
-    rev = "ce1f81438e5f69c7fd7c73ce08bab624c4c92e25";
-    sha256 = "sha256-1Ke1KLLNZ1dkLH0BWB60r2c45RBbndd0eepjc0nlHVk=";
+    rev = "v${version}";
+    sha256 = "sha256-3zvtlBjg+Yv5XDWdIN9HHLf+/Gv06ctbBaFhCgHeAMU=";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json
index b835205f8237..6da9178aa88f 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json
@@ -8,11 +8,11 @@
     "url": "http://github.com/grafana/grafana-image-renderer.git"
   },
   "scripts": {
-    "tslint": "tslint -c tslint.json --project tsconfig.json",
+    "eslint": "eslint -c eslint.json",
     "typecheck": "tsc --noEmit",
     "prettier:check": "prettier --list-different \"**/*.ts\"",
     "prettier:write": "prettier --list-different \"**/*.ts\" --write",
-    "precommit": "npm run tslint & npm run typecheck",
+    "precommit": "npm run eslint & npm run typecheck",
     "watch": "tsc-watch --onSuccess \"node build/app.js server --config=dev.json\"",
     "build": "tsc",
     "start": "node build/app.js --config=dev.json"
@@ -21,6 +21,7 @@
     "@grpc/grpc-js": "^1.0",
     "@grpc/proto-loader": "^0.5.4",
     "@hapi/boom": "^9.1.0",
+    "eslint": "^7.13.0",
     "express": "^4.16.3",
     "express-prom-bundle": "^5.1.5",
     "google-protobuf": "3.5.0",
@@ -42,7 +43,6 @@
     "pkg": "4.4.8",
     "prettier": "^1.19.1",
     "tsc-watch": "^4.2.3",
-    "tslint": "^6.1.1",
     "typescript": "^3.8.3"
   },
   "husky": {
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
index eaf8c1abb4ec..ca0823435461 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
@@ -3,19 +3,24 @@
 
 
 "@babel/code-frame@^7.0.0":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
-  integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==
+  version "7.12.11"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
+  integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
   dependencies:
-    "@babel/highlight" "^7.8.3"
+    "@babel/highlight" "^7.10.4"
 
-"@babel/highlight@^7.8.3":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797"
-  integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==
+"@babel/helper-validator-identifier@^7.10.4":
+  version "7.12.11"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
+  integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
+
+"@babel/highlight@^7.10.4":
+  version "7.10.4"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
+  integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
   dependencies:
+    "@babel/helper-validator-identifier" "^7.10.4"
     chalk "^2.0.0"
-    esutils "^2.0.2"
     js-tokens "^4.0.0"
 
 "@babel/parser@^7.9.4":
@@ -30,6 +35,22 @@
   dependencies:
     regenerator-runtime "^0.13.4"
 
+"@eslint/eslintrc@^0.3.0":
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318"
+  integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==
+  dependencies:
+    ajv "^6.12.4"
+    debug "^4.1.1"
+    espree "^7.3.0"
+    globals "^12.1.0"
+    ignore "^4.0.6"
+    import-fresh "^3.2.1"
+    js-yaml "^3.13.1"
+    lodash "^4.17.20"
+    minimatch "^3.0.4"
+    strip-json-comments "^3.1.1"
+
 "@grpc/grpc-js@^1.0":
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.0.3.tgz#7fa2ba293ccc1e91b24074c2628c8c68336e18c4"
@@ -146,11 +167,6 @@
     "@types/connect" "*"
     "@types/node" "*"
 
-"@types/color-name@^1.1.1":
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
-  integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
-
 "@types/connect@*":
   version "3.4.33"
   resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546"
@@ -240,6 +256,16 @@ accepts@~1.3.7:
     mime-types "~2.1.24"
     negotiator "0.6.2"
 
+acorn-jsx@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
+  integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
+
+acorn@^7.4.0:
+  version "7.4.1"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
 agent-base@^4.3.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
@@ -255,6 +281,16 @@ aggregate-error@^3.0.0:
     clean-stack "^2.0.0"
     indent-string "^4.0.0"
 
+ajv@^6.10.0, ajv@^6.12.4:
+  version "6.12.6"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.4.1"
+    uri-js "^4.2.2"
+
 ajv@^6.5.5:
   version "6.11.0"
   resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.11.0.tgz#c3607cbc8ae392d8a5a536f25b21f8e5f3f87fe9"
@@ -265,6 +301,21 @@ ajv@^6.5.5:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
+ajv@^7.0.2:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2"
+  integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    json-schema-traverse "^1.0.0"
+    require-from-string "^2.0.2"
+    uri-js "^4.2.2"
+
+ansi-colors@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+  integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
+
 ansi-escapes@^3.0.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
@@ -280,6 +331,11 @@ ansi-regex@^3.0.0:
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
   integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
 
+ansi-regex@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
+  integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+
 ansi-styles@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -292,12 +348,11 @@ ansi-styles@^3.2.1:
   dependencies:
     color-convert "^1.9.0"
 
-ansi-styles@^4.1.0:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
-  integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
   dependencies:
-    "@types/color-name" "^1.1.1"
     color-convert "^2.0.1"
 
 any-observable@^0.3.0:
@@ -339,6 +394,11 @@ assert-plus@1.0.0, assert-plus@^1.0.0:
   resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
   integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
 
+astral-regex@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+
 async-limiter@~1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
@@ -426,11 +486,6 @@ buffer-from@^1.0.0:
   resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
   integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
 
-builtin-modules@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
-  integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
-
 byline@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
@@ -460,6 +515,11 @@ callsites@^2.0.0:
   resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
   integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
 
+callsites@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
 caseless@~0.12.0:
   version "0.12.0"
   resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -476,7 +536,7 @@ chalk@^1.0.0, chalk@^1.1.3:
     strip-ansi "^3.0.0"
     supports-color "^2.0.0"
 
-chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
   version "2.4.2"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
   integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -493,6 +553,14 @@ chalk@^3.0.0:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
+chalk@^4.0.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
+  integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
 ci-info@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
@@ -588,7 +656,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
   dependencies:
     delayed-stream "~1.0.0"
 
-commander@^2.12.1, commander@^2.20.0:
+commander@^2.20.0:
   version "2.20.3"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -674,6 +742,15 @@ cross-spawn@^7.0.0:
     shebang-command "^2.0.0"
     which "^2.0.1"
 
+cross-spawn@^7.0.2:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+  dependencies:
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
+
 dashdash@^1.12.0:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
@@ -700,7 +777,14 @@ debug@^3.1.0:
   dependencies:
     ms "^2.1.1"
 
-debug@^4.1.0, debug@^4.1.1:
+debug@^4.0.1, debug@^4.1.1:
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
+  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+  dependencies:
+    ms "2.1.2"
+
+debug@^4.1.0:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
   integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
@@ -712,7 +796,7 @@ dedent@^0.7.0:
   resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
   integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
 
-deep-is@~0.1.3:
+deep-is@^0.1.3, deep-is@~0.1.3:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
   integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
@@ -755,11 +839,6 @@ diagnostics@^1.1.1:
     enabled "1.0.x"
     kuler "1.0.x"
 
-diff@^4.0.1:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
-  integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
-
 dir-glob@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
@@ -767,6 +846,13 @@ dir-glob@^3.0.1:
   dependencies:
     path-type "^4.0.0"
 
+doctrine@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+  dependencies:
+    esutils "^2.0.2"
+
 duplexer@~0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
@@ -790,6 +876,11 @@ elegant-spinner@^1.0.1:
   resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
   integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
 
+emoji-regex@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
 enabled@1.0.x:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93"
@@ -809,6 +900,13 @@ end-of-stream@^1.1.0:
   dependencies:
     once "^1.4.0"
 
+enquirer@^2.3.5:
+  version "2.3.6"
+  resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+  integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
+  dependencies:
+    ansi-colors "^4.1.1"
+
 env-variable@0.0.x:
   version "0.0.5"
   resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.5.tgz#913dd830bef11e96a039c038d4130604eba37f88"
@@ -855,16 +953,112 @@ escodegen@^1.14.1:
   optionalDependencies:
     source-map "~0.6.1"
 
+eslint-scope@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^4.1.1"
+
+eslint-utils@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
+  integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
+  dependencies:
+    eslint-visitor-keys "^1.1.0"
+
+eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
+  integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
+
+eslint-visitor-keys@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
+  integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
+
+eslint@^7.13.0:
+  version "7.18.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz#7fdcd2f3715a41fe6295a16234bd69aed2c75e67"
+  integrity sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==
+  dependencies:
+    "@babel/code-frame" "^7.0.0"
+    "@eslint/eslintrc" "^0.3.0"
+    ajv "^6.10.0"
+    chalk "^4.0.0"
+    cross-spawn "^7.0.2"
+    debug "^4.0.1"
+    doctrine "^3.0.0"
+    enquirer "^2.3.5"
+    eslint-scope "^5.1.1"
+    eslint-utils "^2.1.0"
+    eslint-visitor-keys "^2.0.0"
+    espree "^7.3.1"
+    esquery "^1.2.0"
+    esutils "^2.0.2"
+    file-entry-cache "^6.0.0"
+    functional-red-black-tree "^1.0.1"
+    glob-parent "^5.0.0"
+    globals "^12.1.0"
+    ignore "^4.0.6"
+    import-fresh "^3.0.0"
+    imurmurhash "^0.1.4"
+    is-glob "^4.0.0"
+    js-yaml "^3.13.1"
+    json-stable-stringify-without-jsonify "^1.0.1"
+    levn "^0.4.1"
+    lodash "^4.17.20"
+    minimatch "^3.0.4"
+    natural-compare "^1.4.0"
+    optionator "^0.9.1"
+    progress "^2.0.0"
+    regexpp "^3.1.0"
+    semver "^7.2.1"
+    strip-ansi "^6.0.0"
+    strip-json-comments "^3.1.0"
+    table "^6.0.4"
+    text-table "^0.2.0"
+    v8-compile-cache "^2.0.3"
+
+espree@^7.3.0, espree@^7.3.1:
+  version "7.3.1"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
+  integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
+  dependencies:
+    acorn "^7.4.0"
+    acorn-jsx "^5.3.1"
+    eslint-visitor-keys "^1.3.0"
+
 esprima@^4.0.0, esprima@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
 
-estraverse@^4.2.0:
+esquery@^1.2.0:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
+  integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
+  dependencies:
+    estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+  dependencies:
+    estraverse "^5.2.0"
+
+estraverse@^4.1.1, estraverse@^4.2.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
   integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
 
+estraverse@^5.1.0, estraverse@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
+  integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+
 esutils@^2.0.2:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -991,9 +1185,9 @@ extsprintf@^1.2.0:
   integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
 
 fast-deep-equal@^3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
-  integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
 
 fast-glob@^3.0.3:
   version "3.1.1"
@@ -1023,7 +1217,7 @@ fast-json-stable-stringify@^2.0.0:
   resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
   integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
 
-fast-levenshtein@~2.0.6:
+fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
   integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
@@ -1067,6 +1261,13 @@ figures@^2.0.0:
   dependencies:
     escape-string-regexp "^1.0.5"
 
+file-entry-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a"
+  integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==
+  dependencies:
+    flat-cache "^3.0.4"
+
 fill-range@^7.0.1:
   version "7.0.1"
   resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -1095,6 +1296,19 @@ find-up@^4.0.0:
     locate-path "^5.0.0"
     path-exists "^4.0.0"
 
+flat-cache@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
+  dependencies:
+    flatted "^3.1.0"
+    rimraf "^3.0.2"
+
+flatted@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067"
+  integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==
+
 forever-agent@~0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@@ -1146,6 +1360,11 @@ fs.realpath@^1.0.0:
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
   integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
 
+functional-red-black-tree@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+  integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
 get-own-enumerable-property-symbols@^3.0.0:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
@@ -1177,6 +1396,13 @@ getpass@^0.1.1:
   dependencies:
     assert-plus "^1.0.0"
 
+glob-parent@^5.0.0:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
+  integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
+  dependencies:
+    is-glob "^4.0.1"
+
 glob-parent@^5.1.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
@@ -1184,7 +1410,7 @@ glob-parent@^5.1.0:
   dependencies:
     is-glob "^4.0.1"
 
-glob@^7.1.1, glob@^7.1.3:
+glob@^7.1.3:
   version "7.1.6"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
   integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@@ -1196,6 +1422,13 @@ glob@^7.1.1, glob@^7.1.3:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
+globals@^12.1.0:
+  version "12.4.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
+  integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
+  dependencies:
+    type-fest "^0.8.1"
+
 globby@^10.0.1:
   version "10.0.2"
   resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543"
@@ -1335,6 +1568,11 @@ iconv-lite@0.4.24:
   dependencies:
     safer-buffer ">= 2.1.2 < 3"
 
+ignore@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+  integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+
 ignore@^5.1.1, ignore@^5.1.4:
   version "5.1.4"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
@@ -1348,6 +1586,14 @@ import-fresh@^2.0.0:
     caller-path "^2.0.0"
     resolve-from "^3.0.0"
 
+import-fresh@^3.0.0, import-fresh@^3.2.1:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+  dependencies:
+    parent-module "^1.0.0"
+    resolve-from "^4.0.0"
+
 imurmurhash@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
@@ -1426,7 +1672,12 @@ is-fullwidth-code-point@^2.0.0:
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
   integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
 
-is-glob@^4.0.1:
+is-fullwidth-code-point@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+  integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-glob@^4.0.0, is-glob@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
   integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
@@ -1506,9 +1757,9 @@ js-tokens@^4.0.0:
   integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
 
 js-yaml@^3.13.1:
-  version "3.13.1"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
-  integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+  version "3.14.1"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+  integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
   dependencies:
     argparse "^1.0.7"
     esprima "^4.0.0"
@@ -1528,11 +1779,21 @@ json-schema-traverse@^0.4.1:
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
+json-schema-traverse@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
 json-schema@0.2.3:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
   integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
 
+json-stable-stringify-without-jsonify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+  integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
 json-stringify-safe@~5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
@@ -1562,6 +1823,14 @@ kuler@1.0.x:
   dependencies:
     colornames "^1.1.1"
 
+levn@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+  dependencies:
+    prelude-ls "^1.2.1"
+    type-check "~0.4.0"
+
 levn@~0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
@@ -1651,7 +1920,12 @@ lodash.camelcase@^4.3.0:
   resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
   integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
 
-lodash@^4.17.14, lodash@^4.17.19:
+lodash@^4.17.14, lodash@^4.17.20:
+  version "4.17.20"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
+  integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
+
+lodash@^4.17.19:
   version "4.17.19"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
   integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
@@ -1703,6 +1977,13 @@ lru-cache@^4.0.1:
     pseudomap "^1.0.2"
     yallist "^2.1.2"
 
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+  dependencies:
+    yallist "^4.0.0"
+
 map-stream@~0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
@@ -1790,14 +2071,14 @@ minimist@^1.2.0, minimist@^1.2.5:
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
-mkdirp@0.5.1, mkdirp@^0.5.1:
+mkdirp@0.5.1:
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
   integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
   dependencies:
     minimist "0.0.8"
 
-mkdirp@^0.5.3:
+mkdirp@^0.5.1:
   version "0.5.5"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
   integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
@@ -1825,11 +2106,16 @@ ms@2.1.1:
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
   integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
 
-ms@^2.1.1:
+ms@2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
 
+ms@^2.1.1:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
 multistream@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz#629d3a29bd76623489980d04519a2c365948148c"
@@ -1847,6 +2133,11 @@ mz@^2.7.0:
     object-assign "^4.0.1"
     thenify-all "^1.0.0"
 
+natural-compare@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+  integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+
 negotiator@0.6.2:
   version "0.6.2"
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@@ -1961,6 +2252,18 @@ optionator@^0.8.1:
     type-check "~0.3.2"
     word-wrap "~1.2.3"
 
+optionator@^0.9.1:
+  version "0.9.1"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+  integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+  dependencies:
+    deep-is "^0.1.3"
+    fast-levenshtein "^2.0.6"
+    levn "^0.4.1"
+    prelude-ls "^1.2.1"
+    type-check "^0.4.0"
+    word-wrap "^1.2.3"
+
 os-tmpdir@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -2012,6 +2315,13 @@ p-try@^2.0.0:
   resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
   integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
 
+parent-module@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+  dependencies:
+    callsites "^3.0.0"
+
 parse-json@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -2147,6 +2457,11 @@ please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0:
   dependencies:
     semver-compare "^1.0.0"
 
+prelude-ls@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
 prelude-ls@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -2162,7 +2477,7 @@ process-nextick-args@~2.0.0:
   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
   integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
 
-progress@^2.0.1, progress@^2.0.3:
+progress@^2.0.0, progress@^2.0.1, progress@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
   integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
@@ -2319,6 +2634,11 @@ regenerator-runtime@^0.13.4:
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
   integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
 
+regexpp@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
+  integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
+
 request-progress@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe"
@@ -2352,12 +2672,22 @@ request@^2.88.0:
     tunnel-agent "^0.6.0"
     uuid "^3.3.2"
 
+require-from-string@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
 resolve-from@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
   integrity sha1-six699nWiBvItuZTM17rywoYh0g=
 
-resolve@^1.10.0, resolve@^1.3.2:
+resolve-from@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+  integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve@^1.10.0:
   version "1.14.2"
   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2"
   integrity sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==
@@ -2398,6 +2728,13 @@ rimraf@^3.0.0:
   dependencies:
     glob "^7.1.3"
 
+rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+  dependencies:
+    glob "^7.1.3"
+
 run-node@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e"
@@ -2435,7 +2772,7 @@ semver-compare@^1.0.0:
   resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
   integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
 
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0:
+"semver@2 || 3 || 4 || 5", semver@^5.5.0:
   version "5.7.1"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -2445,6 +2782,13 @@ semver@^6.2.0, semver@^6.3.0:
   resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 
+semver@^7.2.1:
+  version "7.3.4"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
+  integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
+  dependencies:
+    lru-cache "^6.0.0"
+
 send@0.17.1:
   version "0.17.1"
   resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
@@ -2525,6 +2869,15 @@ slice-ansi@0.0.4:
   resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
   integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
 
+slice-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+  dependencies:
+    ansi-styles "^4.0.0"
+    astral-regex "^2.0.0"
+    is-fullwidth-code-point "^3.0.0"
+
 source-map@~0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
@@ -2634,6 +2987,15 @@ string-width@^2.1.1:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
 
+string-width@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
+  integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
+  dependencies:
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.0"
+
 string_decoder@^1.1.1:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
@@ -2671,6 +3033,13 @@ strip-ansi@^4.0.0:
   dependencies:
     ansi-regex "^3.0.0"
 
+strip-ansi@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+  integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+  dependencies:
+    ansi-regex "^5.0.0"
+
 strip-eof@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
@@ -2681,6 +3050,11 @@ strip-final-newline@^2.0.0:
   resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
   integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
 
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
 supports-color@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -2694,9 +3068,9 @@ supports-color@^5.3.0:
     has-flag "^3.0.0"
 
 supports-color@^7.1.0:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
-  integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
   dependencies:
     has-flag "^4.0.0"
 
@@ -2705,6 +3079,16 @@ symbol-observable@^1.1.0:
   resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
   integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
 
+table@^6.0.4:
+  version "6.0.7"
+  resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34"
+  integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==
+  dependencies:
+    ajv "^7.0.2"
+    lodash "^4.17.20"
+    slice-ansi "^4.0.0"
+    string-width "^4.2.0"
+
 tdigest@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021"
@@ -2717,6 +3101,11 @@ text-hex@1.0.x:
   resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
   integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
 
+text-table@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+  integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
 thenify-all@^1.0.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
@@ -2777,42 +3166,11 @@ tsc-watch@^4.2.3:
     string-argv "^0.1.1"
     strip-ansi "^4.0.0"
 
-tslib@^1.10.0:
-  version "1.11.1"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
-  integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
-
-tslib@^1.8.1, tslib@^1.9.0:
+tslib@^1.9.0:
   version "1.10.0"
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
   integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
 
-tslint@^6.1.1:
-  version "6.1.1"
-  resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.1.tgz#ac03fbd17f85bfefaae348b353b25a88efe10cde"
-  integrity sha512-kd6AQ/IgPRpLn6g5TozqzPdGNZ0q0jtXW4//hRcj10qLYBaa3mTUU2y2MCG+RXZm8Zx+KZi0eA+YCrMyNlF4UA==
-  dependencies:
-    "@babel/code-frame" "^7.0.0"
-    builtin-modules "^1.1.1"
-    chalk "^2.3.0"
-    commander "^2.12.1"
-    diff "^4.0.1"
-    glob "^7.1.1"
-    js-yaml "^3.13.1"
-    minimatch "^3.0.4"
-    mkdirp "^0.5.3"
-    resolve "^1.3.2"
-    semver "^5.3.0"
-    tslib "^1.10.0"
-    tsutils "^2.29.0"
-
-tsutils@^2.29.0:
-  version "2.29.0"
-  resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
-  integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
-  dependencies:
-    tslib "^1.8.1"
-
 tunnel-agent@^0.6.0:
   version "0.6.0"
   resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@@ -2825,6 +3183,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
   integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
 
+type-check@^0.4.0, type-check@~0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+  dependencies:
+    prelude-ls "^1.2.1"
+
 type-check@~0.3.2:
   version "0.3.2"
   resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
@@ -2837,6 +3202,11 @@ type-fest@^0.6.0:
   resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
   integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
 
+type-fest@^0.8.1:
+  version "0.8.1"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+  integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
 type-is@~1.6.17, type-is@~1.6.18:
   version "1.6.18"
   resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
@@ -2894,9 +3264,9 @@ unpipe@1.0.0, unpipe@~1.0.0:
   integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
 
 uri-js@^4.2.2:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
-  integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
+  version "4.4.1"
+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
   dependencies:
     punycode "^2.1.0"
 
@@ -2920,6 +3290,11 @@ uuid@^3.3.2:
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
   integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
 
+v8-compile-cache@^2.0.3:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
+  integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
+
 validate-npm-package-license@^3.0.1:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
@@ -2979,7 +3354,7 @@ winston@^3.2.1:
     triple-beam "^1.3.0"
     winston-transport "^4.3.0"
 
-word-wrap@~1.2.3:
+word-wrap@^1.2.3, word-wrap@~1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
@@ -3009,6 +3384,11 @@ yallist@^2.1.2:
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
   integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
 
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
 yauzl@2.4.1:
   version "2.4.1"
   resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
index 3d11945721ad..8b4c1ec31e5c 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
@@ -2,19 +2,27 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "_babel_code_frame___code_frame_7.8.3.tgz";
+      name = "_babel_code_frame___code_frame_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz";
-        sha1 = "33e25903d7481181534e12ec0a25f16b6fcf419e";
+        name = "_babel_code_frame___code_frame_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz";
+        sha1 = "f4ad435aa263db935b8f10f2c552d23fb716a63f";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.8.3.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz";
-        sha1 = "28f173d04223eaaa59bc1d439a3836e6d1265797";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
+        sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed";
+      };
+    }
+    {
+      name = "_babel_highlight___highlight_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_highlight___highlight_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
       };
     }
     {
@@ -34,6 +42,14 @@
       };
     }
     {
+      name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
+      path = fetchurl {
+        name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz";
+        sha1 = "d736d6963d7003b6514e6324bec9c602ac340318";
+      };
+    }
+    {
       name = "_grpc_grpc_js___grpc_js_1.0.3.tgz";
       path = fetchurl {
         name = "_grpc_grpc_js___grpc_js_1.0.3.tgz";
@@ -186,14 +202,6 @@
       };
     }
     {
-      name = "_types_color_name___color_name_1.1.1.tgz";
-      path = fetchurl {
-        name = "_types_color_name___color_name_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz";
-        sha1 = "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0";
-      };
-    }
-    {
       name = "_types_connect___connect_3.4.33.tgz";
       path = fetchurl {
         name = "_types_connect___connect_3.4.33.tgz";
@@ -306,6 +314,22 @@
       };
     }
     {
+      name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+      path = fetchurl {
+        name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b";
+      };
+    }
+    {
+      name = "acorn___acorn_7.4.1.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_7.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz";
+        sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa";
+      };
+    }
+    {
       name = "agent_base___agent_base_4.3.0.tgz";
       path = fetchurl {
         name = "agent_base___agent_base_4.3.0.tgz";
@@ -322,6 +346,14 @@
       };
     }
     {
+      name = "ajv___ajv_6.12.6.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_6.12.6.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
+        sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
+      };
+    }
+    {
       name = "ajv___ajv_6.11.0.tgz";
       path = fetchurl {
         name = "ajv___ajv_6.11.0.tgz";
@@ -330,6 +362,22 @@
       };
     }
     {
+      name = "ajv___ajv_7.0.3.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz";
+        sha1 = "13ae747eff125cafb230ac504b2406cf371eece2";
+      };
+    }
+    {
+      name = "ansi_colors___ansi_colors_4.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_colors___ansi_colors_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
+      };
+    }
+    {
       name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
       path = fetchurl {
         name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
@@ -354,6 +402,14 @@
       };
     }
     {
+      name = "ansi_regex___ansi_regex_5.0.0.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
+      };
+    }
+    {
       name = "ansi_styles___ansi_styles_2.2.1.tgz";
       path = fetchurl {
         name = "ansi_styles___ansi_styles_2.2.1.tgz";
@@ -370,11 +426,11 @@
       };
     }
     {
-      name = "ansi_styles___ansi_styles_4.2.1.tgz";
+      name = "ansi_styles___ansi_styles_4.3.0.tgz";
       path = fetchurl {
-        name = "ansi_styles___ansi_styles_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz";
-        sha1 = "90ae75c424d008d2624c5bf29ead3177ebfcf359";
+        name = "ansi_styles___ansi_styles_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha1 = "edd803628ae71c04c85ae7a0906edad34b648937";
       };
     }
     {
@@ -434,6 +490,14 @@
       };
     }
     {
+      name = "astral_regex___astral_regex_2.0.0.tgz";
+      path = fetchurl {
+        name = "astral_regex___astral_regex_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
+      };
+    }
+    {
       name = "async_limiter___async_limiter_1.0.1.tgz";
       path = fetchurl {
         name = "async_limiter___async_limiter_1.0.1.tgz";
@@ -538,14 +602,6 @@
       };
     }
     {
-      name = "builtin_modules___builtin_modules_1.1.1.tgz";
-      path = fetchurl {
-        name = "builtin_modules___builtin_modules_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
-        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
-      };
-    }
-    {
       name = "byline___byline_5.0.0.tgz";
       path = fetchurl {
         name = "byline___byline_5.0.0.tgz";
@@ -586,6 +642,14 @@
       };
     }
     {
+      name = "callsites___callsites_3.1.0.tgz";
+      path = fetchurl {
+        name = "callsites___callsites_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
+        sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
+      };
+    }
+    {
       name = "caseless___caseless_0.12.0.tgz";
       path = fetchurl {
         name = "caseless___caseless_0.12.0.tgz";
@@ -618,6 +682,14 @@
       };
     }
     {
+      name = "chalk___chalk_4.1.0.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
+        sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
+      };
+    }
+    {
       name = "ci_info___ci_info_2.0.0.tgz";
       path = fetchurl {
         name = "ci_info___ci_info_2.0.0.tgz";
@@ -834,6 +906,14 @@
       };
     }
     {
+      name = "cross_spawn___cross_spawn_7.0.3.tgz";
+      path = fetchurl {
+        name = "cross_spawn___cross_spawn_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
+      };
+    }
+    {
       name = "dashdash___dashdash_1.14.1.tgz";
       path = fetchurl {
         name = "dashdash___dashdash_1.14.1.tgz";
@@ -866,6 +946,14 @@
       };
     }
     {
+      name = "debug___debug_4.3.1.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
+        sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
+      };
+    }
+    {
       name = "debug___debug_4.1.1.tgz";
       path = fetchurl {
         name = "debug___debug_4.1.1.tgz";
@@ -930,14 +1018,6 @@
       };
     }
     {
-      name = "diff___diff_4.0.2.tgz";
-      path = fetchurl {
-        name = "diff___diff_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz";
-        sha1 = "60f3aecb89d5fae520c11aa19efc2bb982aade7d";
-      };
-    }
-    {
       name = "dir_glob___dir_glob_3.0.1.tgz";
       path = fetchurl {
         name = "dir_glob___dir_glob_3.0.1.tgz";
@@ -946,6 +1026,14 @@
       };
     }
     {
+      name = "doctrine___doctrine_3.0.0.tgz";
+      path = fetchurl {
+        name = "doctrine___doctrine_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
+        sha1 = "addebead72a6574db783639dc87a121773973961";
+      };
+    }
+    {
       name = "duplexer___duplexer_0.1.1.tgz";
       path = fetchurl {
         name = "duplexer___duplexer_0.1.1.tgz";
@@ -978,6 +1066,14 @@
       };
     }
     {
+      name = "emoji_regex___emoji_regex_8.0.0.tgz";
+      path = fetchurl {
+        name = "emoji_regex___emoji_regex_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
+      };
+    }
+    {
       name = "enabled___enabled_1.0.2.tgz";
       path = fetchurl {
         name = "enabled___enabled_1.0.2.tgz";
@@ -1002,6 +1098,14 @@
       };
     }
     {
+      name = "enquirer___enquirer_2.3.6.tgz";
+      path = fetchurl {
+        name = "enquirer___enquirer_2.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
+        sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
+      };
+    }
+    {
       name = "env_variable___env_variable_0.0.5.tgz";
       path = fetchurl {
         name = "env_variable___env_variable_0.0.5.tgz";
@@ -1058,6 +1162,54 @@
       };
     }
     {
+      name = "eslint_scope___eslint_scope_5.1.1.tgz";
+      path = fetchurl {
+        name = "eslint_scope___eslint_scope_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
+      };
+    }
+    {
+      name = "eslint_utils___eslint_utils_2.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_utils___eslint_utils_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
+      };
+    }
+    {
+      name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+      path = fetchurl {
+        name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
+      };
+    }
+    {
+      name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
+      path = fetchurl {
+        name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
+        sha1 = "21fdc8fbcd9c795cc0321f0563702095751511a8";
+      };
+    }
+    {
+      name = "eslint___eslint_7.18.0.tgz";
+      path = fetchurl {
+        name = "eslint___eslint_7.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz";
+        sha1 = "7fdcd2f3715a41fe6295a16234bd69aed2c75e67";
+      };
+    }
+    {
+      name = "espree___espree_7.3.1.tgz";
+      path = fetchurl {
+        name = "espree___espree_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz";
+        sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6";
+      };
+    }
+    {
       name = "esprima___esprima_4.0.1.tgz";
       path = fetchurl {
         name = "esprima___esprima_4.0.1.tgz";
@@ -1066,6 +1218,22 @@
       };
     }
     {
+      name = "esquery___esquery_1.3.1.tgz";
+      path = fetchurl {
+        name = "esquery___esquery_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
+        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
+      };
+    }
+    {
+      name = "esrecurse___esrecurse_4.3.0.tgz";
+      path = fetchurl {
+        name = "esrecurse___esrecurse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
+      };
+    }
+    {
       name = "estraverse___estraverse_4.3.0.tgz";
       path = fetchurl {
         name = "estraverse___estraverse_4.3.0.tgz";
@@ -1074,6 +1242,14 @@
       };
     }
     {
+      name = "estraverse___estraverse_5.2.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
+        sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
+      };
+    }
+    {
       name = "esutils___esutils_2.0.3.tgz";
       path = fetchurl {
         name = "esutils___esutils_2.0.3.tgz";
@@ -1170,11 +1346,11 @@
       };
     }
     {
-      name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
+      name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
       path = fetchurl {
-        name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha1 = "545145077c501491e33b15ec408c294376e94ae4";
+        name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
       };
     }
     {
@@ -1258,6 +1434,14 @@
       };
     }
     {
+      name = "file_entry_cache___file_entry_cache_6.0.0.tgz";
+      path = fetchurl {
+        name = "file_entry_cache___file_entry_cache_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz";
+        sha1 = "7921a89c391c6d93efec2169ac6bf300c527ea0a";
+      };
+    }
+    {
       name = "fill_range___fill_range_7.0.1.tgz";
       path = fetchurl {
         name = "fill_range___fill_range_7.0.1.tgz";
@@ -1282,6 +1466,22 @@
       };
     }
     {
+      name = "flat_cache___flat_cache_3.0.4.tgz";
+      path = fetchurl {
+        name = "flat_cache___flat_cache_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11";
+      };
+    }
+    {
+      name = "flatted___flatted_3.1.0.tgz";
+      path = fetchurl {
+        name = "flatted___flatted_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz";
+        sha1 = "a5d06b4a8b01e3a63771daa5cb7a1903e2e57067";
+      };
+    }
+    {
       name = "forever_agent___forever_agent_0.6.1.tgz";
       path = fetchurl {
         name = "forever_agent___forever_agent_0.6.1.tgz";
@@ -1346,6 +1546,14 @@
       };
     }
     {
+      name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+      path = fetchurl {
+        name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+      };
+    }
+    {
       name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.2.tgz";
       path = fetchurl {
         name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.2.tgz";
@@ -1386,6 +1594,14 @@
       };
     }
     {
+      name = "glob_parent___glob_parent_5.1.1.tgz";
+      path = fetchurl {
+        name = "glob_parent___glob_parent_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
+        sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
+      };
+    }
+    {
       name = "glob_parent___glob_parent_5.1.0.tgz";
       path = fetchurl {
         name = "glob_parent___glob_parent_5.1.0.tgz";
@@ -1402,6 +1618,14 @@
       };
     }
     {
+      name = "globals___globals_12.4.0.tgz";
+      path = fetchurl {
+        name = "globals___globals_12.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz";
+        sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8";
+      };
+    }
+    {
       name = "globby___globby_10.0.2.tgz";
       path = fetchurl {
         name = "globby___globby_10.0.2.tgz";
@@ -1538,6 +1762,14 @@
       };
     }
     {
+      name = "ignore___ignore_4.0.6.tgz";
+      path = fetchurl {
+        name = "ignore___ignore_4.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
+        sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
+      };
+    }
+    {
       name = "ignore___ignore_5.1.4.tgz";
       path = fetchurl {
         name = "ignore___ignore_5.1.4.tgz";
@@ -1554,6 +1786,14 @@
       };
     }
     {
+      name = "import_fresh___import_fresh_3.3.0.tgz";
+      path = fetchurl {
+        name = "import_fresh___import_fresh_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
+      };
+    }
+    {
       name = "imurmurhash___imurmurhash_0.1.4.tgz";
       path = fetchurl {
         name = "imurmurhash___imurmurhash_0.1.4.tgz";
@@ -1666,6 +1906,14 @@
       };
     }
     {
+      name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+      path = fetchurl {
+        name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
+      };
+    }
+    {
       name = "is_glob___is_glob_4.0.1.tgz";
       path = fetchurl {
         name = "is_glob___is_glob_4.0.1.tgz";
@@ -1786,11 +2034,11 @@
       };
     }
     {
-      name = "js_yaml___js_yaml_3.13.1.tgz";
+      name = "js_yaml___js_yaml_3.14.1.tgz";
       path = fetchurl {
-        name = "js_yaml___js_yaml_3.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
+        name = "js_yaml___js_yaml_3.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz";
+        sha1 = "dae812fdb3825fa306609a8717383c50c36a0537";
       };
     }
     {
@@ -1818,6 +2066,14 @@
       };
     }
     {
+      name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
+      };
+    }
+    {
       name = "json_schema___json_schema_0.2.3.tgz";
       path = fetchurl {
         name = "json_schema___json_schema_0.2.3.tgz";
@@ -1826,6 +2082,14 @@
       };
     }
     {
+      name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+      path = fetchurl {
+        name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+      };
+    }
+    {
       name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
       path = fetchurl {
         name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
@@ -1858,6 +2122,14 @@
       };
     }
     {
+      name = "levn___levn_0.4.1.tgz";
+      path = fetchurl {
+        name = "levn___levn_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
+        sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
+      };
+    }
+    {
       name = "levn___levn_0.3.0.tgz";
       path = fetchurl {
         name = "levn___levn_0.3.0.tgz";
@@ -1930,6 +2202,14 @@
       };
     }
     {
+      name = "lodash___lodash_4.17.20.tgz";
+      path = fetchurl {
+        name = "lodash___lodash_4.17.20.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
+        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
+      };
+    }
+    {
       name = "lodash___lodash_4.17.19.tgz";
       path = fetchurl {
         name = "lodash___lodash_4.17.19.tgz";
@@ -1986,6 +2266,14 @@
       };
     }
     {
+      name = "lru_cache___lru_cache_6.0.0.tgz";
+      path = fetchurl {
+        name = "lru_cache___lru_cache_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94";
+      };
+    }
+    {
       name = "map_stream___map_stream_0.1.0.tgz";
       path = fetchurl {
         name = "map_stream___map_stream_0.1.0.tgz";
@@ -2162,6 +2450,14 @@
       };
     }
     {
+      name = "ms___ms_2.1.3.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz";
+        sha1 = "574c8138ce1d2b5861f0b44579dbadd60c6615b2";
+      };
+    }
+    {
       name = "multistream___multistream_2.1.1.tgz";
       path = fetchurl {
         name = "multistream___multistream_2.1.1.tgz";
@@ -2178,6 +2474,14 @@
       };
     }
     {
+      name = "natural_compare___natural_compare_1.4.0.tgz";
+      path = fetchurl {
+        name = "natural_compare___natural_compare_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
+        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+      };
+    }
+    {
       name = "negotiator___negotiator_0.6.2.tgz";
       path = fetchurl {
         name = "negotiator___negotiator_0.6.2.tgz";
@@ -2322,6 +2626,14 @@
       };
     }
     {
+      name = "optionator___optionator_0.9.1.tgz";
+      path = fetchurl {
+        name = "optionator___optionator_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
+        sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
+      };
+    }
+    {
       name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
       path = fetchurl {
         name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
@@ -2394,6 +2706,14 @@
       };
     }
     {
+      name = "parent_module___parent_module_1.0.1.tgz";
+      path = fetchurl {
+        name = "parent_module___parent_module_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
+        sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
+      };
+    }
+    {
       name = "parse_json___parse_json_4.0.0.tgz";
       path = fetchurl {
         name = "parse_json___parse_json_4.0.0.tgz";
@@ -2546,6 +2866,14 @@
       };
     }
     {
+      name = "prelude_ls___prelude_ls_1.2.1.tgz";
+      path = fetchurl {
+        name = "prelude_ls___prelude_ls_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
+      };
+    }
+    {
       name = "prelude_ls___prelude_ls_1.1.2.tgz";
       path = fetchurl {
         name = "prelude_ls___prelude_ls_1.1.2.tgz";
@@ -2730,6 +3058,14 @@
       };
     }
     {
+      name = "regexpp___regexpp_3.1.0.tgz";
+      path = fetchurl {
+        name = "regexpp___regexpp_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz";
+        sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2";
+      };
+    }
+    {
       name = "request_progress___request_progress_3.0.0.tgz";
       path = fetchurl {
         name = "request_progress___request_progress_3.0.0.tgz";
@@ -2746,6 +3082,14 @@
       };
     }
     {
+      name = "require_from_string___require_from_string_2.0.2.tgz";
+      path = fetchurl {
+        name = "require_from_string___require_from_string_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
+      };
+    }
+    {
       name = "resolve_from___resolve_from_3.0.0.tgz";
       path = fetchurl {
         name = "resolve_from___resolve_from_3.0.0.tgz";
@@ -2754,6 +3098,14 @@
       };
     }
     {
+      name = "resolve_from___resolve_from_4.0.0.tgz";
+      path = fetchurl {
+        name = "resolve_from___resolve_from_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
+      };
+    }
+    {
       name = "resolve___resolve_1.14.2.tgz";
       path = fetchurl {
         name = "resolve___resolve_1.14.2.tgz";
@@ -2802,6 +3154,14 @@
       };
     }
     {
+      name = "rimraf___rimraf_3.0.2.tgz";
+      path = fetchurl {
+        name = "rimraf___rimraf_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
+        sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
+      };
+    }
+    {
       name = "run_node___run_node_1.0.0.tgz";
       path = fetchurl {
         name = "run_node___run_node_1.0.0.tgz";
@@ -2874,6 +3234,14 @@
       };
     }
     {
+      name = "semver___semver_7.3.4.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz";
+        sha1 = "27aaa7d2e4ca76452f98d3add093a72c943edc97";
+      };
+    }
+    {
       name = "send___send_0.17.1.tgz";
       path = fetchurl {
         name = "send___send_0.17.1.tgz";
@@ -2962,6 +3330,14 @@
       };
     }
     {
+      name = "slice_ansi___slice_ansi_4.0.0.tgz";
+      path = fetchurl {
+        name = "slice_ansi___slice_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
+      };
+    }
+    {
       name = "source_map___source_map_0.6.1.tgz";
       path = fetchurl {
         name = "source_map___source_map_0.6.1.tgz";
@@ -3090,6 +3466,14 @@
       };
     }
     {
+      name = "string_width___string_width_4.2.0.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz";
+        sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
+      };
+    }
+    {
       name = "string_decoder___string_decoder_1.3.0.tgz";
       path = fetchurl {
         name = "string_decoder___string_decoder_1.3.0.tgz";
@@ -3130,6 +3514,14 @@
       };
     }
     {
+      name = "strip_ansi___strip_ansi_6.0.0.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
+      };
+    }
+    {
       name = "strip_eof___strip_eof_1.0.0.tgz";
       path = fetchurl {
         name = "strip_eof___strip_eof_1.0.0.tgz";
@@ -3146,6 +3538,14 @@
       };
     }
     {
+      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+      path = fetchurl {
+        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
+      };
+    }
+    {
       name = "supports_color___supports_color_2.0.0.tgz";
       path = fetchurl {
         name = "supports_color___supports_color_2.0.0.tgz";
@@ -3162,11 +3562,11 @@
       };
     }
     {
-      name = "supports_color___supports_color_7.1.0.tgz";
+      name = "supports_color___supports_color_7.2.0.tgz";
       path = fetchurl {
-        name = "supports_color___supports_color_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz";
-        sha1 = "68e32591df73e25ad1c4b49108a2ec507962bfd1";
+        name = "supports_color___supports_color_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
+        sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
       };
     }
     {
@@ -3178,6 +3578,14 @@
       };
     }
     {
+      name = "table___table_6.0.7.tgz";
+      path = fetchurl {
+        name = "table___table_6.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz";
+        sha1 = "e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34";
+      };
+    }
+    {
       name = "tdigest___tdigest_0.1.1.tgz";
       path = fetchurl {
         name = "tdigest___tdigest_0.1.1.tgz";
@@ -3194,6 +3602,14 @@
       };
     }
     {
+      name = "text_table___text_table_0.2.0.tgz";
+      path = fetchurl {
+        name = "text_table___text_table_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
+        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+      };
+    }
+    {
       name = "thenify_all___thenify_all_1.6.0.tgz";
       path = fetchurl {
         name = "thenify_all___thenify_all_1.6.0.tgz";
@@ -3266,14 +3682,6 @@
       };
     }
     {
-      name = "tslib___tslib_1.11.1.tgz";
-      path = fetchurl {
-        name = "tslib___tslib_1.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz";
-        sha1 = "eb15d128827fbee2841549e171f45ed338ac7e35";
-      };
-    }
-    {
       name = "tslib___tslib_1.10.0.tgz";
       path = fetchurl {
         name = "tslib___tslib_1.10.0.tgz";
@@ -3282,22 +3690,6 @@
       };
     }
     {
-      name = "tslint___tslint_6.1.1.tgz";
-      path = fetchurl {
-        name = "tslint___tslint_6.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/tslint/-/tslint-6.1.1.tgz";
-        sha1 = "ac03fbd17f85bfefaae348b353b25a88efe10cde";
-      };
-    }
-    {
-      name = "tsutils___tsutils_2.29.0.tgz";
-      path = fetchurl {
-        name = "tsutils___tsutils_2.29.0.tgz";
-        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz";
-        sha1 = "32b488501467acbedd4b85498673a0812aca0b99";
-      };
-    }
-    {
       name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
       path = fetchurl {
         name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
@@ -3314,6 +3706,14 @@
       };
     }
     {
+      name = "type_check___type_check_0.4.0.tgz";
+      path = fetchurl {
+        name = "type_check___type_check_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
+        sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
+      };
+    }
+    {
       name = "type_check___type_check_0.3.2.tgz";
       path = fetchurl {
         name = "type_check___type_check_0.3.2.tgz";
@@ -3330,6 +3730,14 @@
       };
     }
     {
+      name = "type_fest___type_fest_0.8.1.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
+        sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
+      };
+    }
+    {
       name = "type_is___type_is_1.6.18.tgz";
       path = fetchurl {
         name = "type_is___type_is_1.6.18.tgz";
@@ -3402,11 +3810,11 @@
       };
     }
     {
-      name = "uri_js___uri_js_4.2.2.tgz";
+      name = "uri_js___uri_js_4.4.1.tgz";
       path = fetchurl {
-        name = "uri_js___uri_js_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
-        sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+        name = "uri_js___uri_js_4.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz";
+        sha1 = "9b1a52595225859e55f669d928f88c6c57f2a77e";
       };
     }
     {
@@ -3442,6 +3850,14 @@
       };
     }
     {
+      name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
+      path = fetchurl {
+        name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
+        sha1 = "9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132";
+      };
+    }
+    {
       name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
       path = fetchurl {
         name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
@@ -3538,6 +3954,14 @@
       };
     }
     {
+      name = "yallist___yallist_4.0.0.tgz";
+      path = fetchurl {
+        name = "yallist___yallist_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
+        sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
+      };
+    }
+    {
       name = "yauzl___yauzl_2.4.1.tgz";
       path = fetchurl {
         name = "yauzl___yauzl_2.4.1.tgz";
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
index dc0a66524d1a..364d2e443536 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "grafana";
-  version = "7.4.1";
+  version = "7.5.2";
 
   excludedPackages = [ "release_publisher" ];
 
@@ -10,15 +10,15 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "11gvw8kdz7238jcaiyqk6i0ciy6plixljpzdajlabywgr9jam32g";
+    sha256 = "sha256-8Qy5YgJZpvaAjeBAi092Jxg4yAD1fYmMteTRm5b0Q+g=";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "1266vj8saf4nh5h6cz8axkk58g1mwgvc9c6caphj71dhvr3snw6i";
+    sha256 = "sha256-yVswMNOLX/AFtv45TXm8WcHEytyYgtjvi7V0dRewDdc=";
   };
 
-  vendorSha256 = "0ig0f9pa3l0nj2fs8yz8h42y1j07xi9imk7kzmla6vav6s889grc";
+  vendorSha256 = "sha256-oh3GB6Iaqy05IS2MU5LJqTXnlr0vtkACZA6wpmW7W2Q=";
 
   postPatch = ''
     substituteInPlace pkg/cmd/grafana-server/main.go \
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana/plugins/grafana-polystat-panel/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana/plugins/grafana-polystat-panel/default.nix
index efbaeda93762..07694688c4a8 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana/plugins/grafana-polystat-panel/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana/plugins/grafana-polystat-panel/default.nix
@@ -2,8 +2,8 @@
 
 grafanaPlugin rec {
   pname = "grafana-polystat-panel";
-  version = "1.2.2";
-  zipHash = "sha256-HWQdhstnrDuXPithZ8kOG2ZtSeAT215MJ1ftMCt6/tc=";
+  version = "1.2.3";
+  zipHash = "sha256-Eu3dTPfJxAWwqqGT6l4El4MqviBbzERarU30OXU+eEM=";
   meta = with lib; {
     description = "Hexagonal multi-stat panel for Grafana";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/monitoring/loki/default.nix b/nixpkgs/pkgs/servers/monitoring/loki/default.nix
index 99f83e1bfbd3..83150e424758 100644
--- a/nixpkgs/pkgs/servers/monitoring/loki/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/loki/default.nix
@@ -1,20 +1,32 @@
-{ stdenv, lib, buildGoModule, fetchFromGitHub, makeWrapper, nixosTests, systemd
+{ stdenv
+, lib
+, buildGoModule
+, fetchFromGitHub
+, makeWrapper
+, nixosTests
+, systemd
 }:
 
 buildGoModule rec {
-  version = "2.1.0";
+  version = "2.2.1";
   pname = "grafana-loki";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "grafana";
     repo = "loki";
-    sha256 = "O/3079a67j1i9pgf18SBx0iJcQPVmb0H+K/PzQVBCDQ=";
+    sha256 = "sha256-ujZD5GIgMewvEQW3Wnt0eHdMIFs77PkkEecgCDw9290=";
   };
 
   vendorSha256 = null;
 
-  subPackages = [ "..." ];
+  subPackages = [
+    # TODO split every executable into its own package
+    "cmd/loki"
+    "cmd/loki-canary"
+    "cmd/promtail"
+    "cmd/logcli"
+  ];
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = lib.optionals stdenv.isLinux [ systemd.dev ];
@@ -26,6 +38,11 @@ buildGoModule rec {
 
   passthru.tests = { inherit (nixosTests) loki; };
 
+  buildFlagsArray = let t = "github.com/grafana/loki/pkg/build"; in
+    ''
+      -ldflags=-s -w -X ${t}.Version=${version} -X ${t}.BuildUser=nix@nixpkgs -X ${t}.BuildDate=unknown -X ${t}.Branch=unknown -X ${t}.Revision=unknown
+    '';
+
   doCheck = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/monitoring/longview/default.nix b/nixpkgs/pkgs/servers/monitoring/longview/default.nix
index 96048005cb14..5d05dfd1ebb6 100644
--- a/nixpkgs/pkgs/servers/monitoring/longview/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/longview/default.nix
@@ -25,7 +25,8 @@ stdenv.mkDerivation rec {
         --replace /etc/linode /run/longview
   '';
 
-  buildInputs = [ perl makeWrapper glibc ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl glibc ]
     ++ (with perlPackages; [
       LWP
       LWPProtocolHttps
diff --git a/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix
index a8cf124fc7e4..8051602489c4 100644
--- a/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildGoModule, fetchFromGitHub, makeWrapper, iproute, nettools }:
+{ stdenv, lib, buildGoModule, fetchFromGitHub, makeWrapper, iproute2, nettools }:
 
 buildGoModule rec {
   pname = "mackerel-agent";
@@ -13,7 +13,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [ makeWrapper ];
   checkInputs = lib.optionals (!stdenv.isDarwin) [ nettools ];
-  buildInputs = lib.optionals (!stdenv.isDarwin) [ iproute ];
+  buildInputs = lib.optionals (!stdenv.isDarwin) [ iproute2 ];
 
   vendorSha256 = "sha256-yomxALecP+PycelOmwrteK/LoW7wsst7os+jcbF46Bs=";
 
diff --git a/nixpkgs/pkgs/servers/monitoring/munin/default.nix b/nixpkgs/pkgs/servers/monitoring/munin/default.nix
index 5168f2e7e9d6..c25c23671ba9 100644
--- a/nixpkgs/pkgs/servers/monitoring/munin/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/munin/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.65";
+  version = "2.0.66";
   pname = "munin";
 
   src = fetchFromGitHub {
     owner = "munin-monitoring";
     repo = "munin";
     rev = version;
-    sha256 = "0gz9kp1x39xpklq77xpm8kldsc4w87732if90w5p9pw0ip4cn6df";
+    sha256 = "sha256-1aikMRY1YiSQNUnYqsw1Eew9D9JHbkX+BXNCof6YK50=";
   };
 
   buildInputs = [
@@ -136,7 +136,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://munin-monitoring.org/";
     license = licenses.gpl2;
-    maintainers = [ maintainers.domenkozar maintainers.bjornfor ];
+    maintainers = [ maintainers.bjornfor ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/nagios/default.nix b/nixpkgs/pkgs/servers/monitoring/nagios/default.nix
index 09af13951c9d..a58ec2bf7b29 100644
--- a/nixpkgs/pkgs/servers/monitoring/nagios/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/nagios/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
   };
 
   patches = [ ./nagios.patch ];
-  buildInputs = [ php perl gd libpng zlib unzip ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ php perl gd libpng zlib ];
 
   configureFlags = [ "--localstatedir=/var/lib/nagios" ];
   buildFlags = [ "all" ];
diff --git a/nixpkgs/pkgs/servers/monitoring/net-snmp/default.nix b/nixpkgs/pkgs/servers/monitoring/net-snmp/default.nix
index 8f354d4bb46f..27a6e01dba3d 100644
--- a/nixpkgs/pkgs/servers/monitoring/net-snmp/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/net-snmp/default.nix
@@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
     substituteInPlace testing/fulltests/support/simple_TESTCONF.sh --replace "/bin/netstat" "${nettools}/bin/netstat"
   '';
 
-  nativeBuildInputs = [ autoreconfHook nettools removeReferencesTo ];
-  buildInputs = with perlPackages; [ file perl unzip openssl ncurses JSON Tk TermReadKey ];
+  nativeBuildInputs = [ autoreconfHook nettools removeReferencesTo unzip ];
+  buildInputs = with perlPackages; [ file perl openssl ncurses JSON Tk TermReadKey ];
 
   enableParallelBuilding = true;
   doCheck = false;  # tries to use networking
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix
new file mode 100644
index 000000000000..3aa1e18a9f15
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix
@@ -0,0 +1,36 @@
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "artifactory_exporter";
+  version = "1.9.0";
+  rev = "v${version}";
+
+  src = fetchFromGitHub {
+    owner = "peimanja";
+    repo = pname;
+    rev = rev;
+    sha256 = "1zmkajg48i40jm624p2h03bwg7w28682yfcgk42ig3d50p8xwqc3";
+  };
+
+  vendorSha256 = "1594bpfwhbjgayf4aacs7rfjxm4cnqz8iak8kpm1xzsm1cx1il17";
+
+  subPackages = [ "." ];
+
+  buildFlagsArray = ''
+     -ldflags=
+      -s -w
+      -X github.com/prometheus/common/version.Version=${version}
+      -X github.com/prometheus/common/version.Revision=${rev}
+      -X github.com/prometheus/common/version.Branch=master
+      -X github.com/prometheus/common/version.BuildDate=19700101-00:00:00
+  '';
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) artifactory; };
+
+  meta = with lib; {
+    description = "JFrog Artifactory Prometheus Exporter";
+    homepage = "https://github.com/peimanja/artifactory_exporter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lbpdt ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
new file mode 100644
index 000000000000..333be3732112
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
@@ -0,0 +1,42 @@
+{ lib, fetchFromGitHub, fetchpatch, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "bitcoin-prometheus-exporter";
+  version = "0.5.0";
+
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "jvstein";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0l0j6dyb0vflh386z3g8srysay5sf47g5rg2f5xrkckv86rjr115";
+  };
+
+  patches = [
+    # remove after update to new release
+    (fetchpatch {
+      name = "configurable-listening-address.patch";
+      url = "https://patch-diff.githubusercontent.com/raw/jvstein/bitcoin-prometheus-exporter/pull/11.patch";
+      sha256 = "0a2l8aqgprc1d5k8yg1gisn6imh9hzg6j0irid3pjvp5i5dcnhyq";
+    })
+  ];
+
+  propagatedBuildInputs = with python3Packages; [ prometheus_client bitcoinlib riprova ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp bitcoind-monitor.py $out/bin/
+
+    mkdir -p $out/share/${pname}
+    cp -r dashboard README.md $out/share/${pname}/
+  '';
+
+  meta = with lib; {
+    description = "Prometheus exporter for Bitcoin Core nodes";
+    homepage = "https://github.com/jvstein/bitcoin-prometheus-exporter";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ mmilata ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/cups-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/cups-exporter.nix
deleted file mode 100644
index a02dab88a3a6..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/cups-exporter.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, fetchFromGitHub, python3Packages, nixosTests }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "prometheus-cups-exporter-unstable";
-  version = "2019-03-17";
-
-  format = "other";
-
-  src = fetchFromGitHub {
-    owner = "ThoreKr";
-    repo = "cups_exporter";
-    rev = "8fd1c2517e9878b7b7c73a450e5e546f437954a9";
-    sha256 = "1cwk2gbw2svqjlzgwv5wqzhq7fxwrwsrr0kkbnqn4mfb0kq6pa8m";
-  };
-
-  propagatedBuildInputs = with python3Packages; [ prometheus_client pycups ];
-
-  installPhase = ''
-    mkdir -p $out/share/
-    cp cups_exporter.py $out/share/
-  '';
-
-  fixupPhase = ''
-    makeWrapper "${python3Packages.python.interpreter}" "$out/bin/prometheus-cups-exporter" \
-          --set PYTHONPATH "$PYTHONPATH" \
-          --add-flags "$out/share/cups_exporter.py"
-  '';
-
-  passthru.tests = { inherit (nixosTests.prometheus-exporters) cups; };
-
-  meta = with lib; {
-    description = "A simple prometheus exporter for cups implemented in python";
-    homepage = "https://github.com/ThoreKr/cups_exporter";
-    license = licenses.unfree;
-    maintainers = [ maintainers.mmahut ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix
new file mode 100644
index 000000000000..a0bc409a7fc8
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "domain-exporter";
+  version = "1.10.0";
+
+  src = fetchFromGitHub {
+    owner = "caarlos0";
+    repo = "domain_exporter";
+    rev = "v${version}";
+    sha256 = "0pvz5vx9jvxdrkmzqzh7dfi09sb55j6zpx5728m5v38p8cl8vyh6";
+  };
+
+  vendorSha256 = "02m2mnx93xq6cl54waazgxq6vqbswfn9aafz0h694n6rskvdn784";
+
+  doCheck = false; # needs internet connection
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) domain; };
+
+  meta = with lib; {
+    homepage = "https://github.com/caarlos0/domain_exporter";
+    description = "Exports the expiration time of your domains as prometheus metrics";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmilata prusnak ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix
index 4b2e76f7043f..c4b9f06fdde5 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib }:
 
 buildGoModule rec {
   pname = "flow-exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix
new file mode 100644
index 000000000000..b68b1681919b
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchgit, nixosTests }:
+
+buildGoModule rec {
+  pname = "jitsiexporter";
+  version = "0.2.18";
+
+  src = fetchgit {
+    url = "https://git.xsfx.dev/prometheus/jitsiexporter";
+    rev = "v${version}";
+    sha256 = "1cf46wp96d9dwlwlffcgbcr0v3xxxfdv6il0zqkm2i7cfsfw0skf";
+  };
+
+  vendorSha256 = null;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) jitsi; };
+
+  meta = with lib; {
+    description = "Export Jitsi Videobridge metrics to Prometheus";
+    homepage = "https://git.xsfx.dev/prometheus/jitsiexporter";
+    license = licenses.mit;
+    maintainers = with maintainers; [ petabyteboy ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
index 0c5aa7d8a438..e6505857bf57 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
@@ -14,7 +14,8 @@ in stdenv.mkDerivation {
     sha256 = "1pvqphrirq48xhmx0aa6vkxz6qy1cx2q6jxsh7rin432iap7j62f";
   };
 
-  buildInputs = [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   phases = "installPhase";
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix
new file mode 100644
index 000000000000..9d99685b5691
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, lib, python3, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "knot-exporter";
+  version = "unstable-2020-01-30";
+
+  src = fetchFromGitHub {
+    owner = "ghedo";
+    repo = "knot_exporter";
+    rev = "21dd46b401e0c1aea0b173e19462cdf89e1f444e";
+    sha256 = "sha256-4au4lpaq3jcqC2JXdCcf8h+YN8Nmm4eE0kZwA+1rWlc=";
+  };
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ python3.pkgs.wrapPython ];
+  buildInputs = [ python3 ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm0755 knot_exporter $out/bin/knot_exporter
+    patchShebangs $out/bin
+    buildPythonPath ${python3.pkgs.prometheus_client}
+    patchPythonScript $out/bin/knot_exporter
+
+    runHook postInstall
+  '';
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) knot; };
+
+  meta = with lib; {
+    homepage = "https://github.com/ghedo/knot_exporter";
+    description = " Prometheus exporter for Knot DNS";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ ma27 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix
new file mode 100644
index 000000000000..3aabe6e72310
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix
@@ -0,0 +1,29 @@
+{ buildGoPackage, lib, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "openldap_exporter";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "tomcz";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-Di1GiyVp/hGCFhqxhlqJSucGZK7f/FDDUFtJRaiAZu4=";
+  };
+
+  buildFlagsArray = ''
+    -ldflags=
+      -s -w
+      -X github.com/tomcz/openldap_exporter.tag=v${version}
+      -X github.com/tomcz/openldap_exporter.commit=unknown
+  '';
+
+  goPackagePath = "github.com/tomcz/openldap_exporter";
+
+  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";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ma27 ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
index 81ccaee65938..9b3cda6e7ae8 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
@@ -1,18 +1,18 @@
-{ lib, buildGoPackage, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "postgres_exporter";
-  version = "0.8.0";
-
-  goPackagePath = "github.com/wrouesnel/postgres_exporter";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "wrouesnel";
     repo = "postgres_exporter";
     rev = "v${version}";
-    sha256 = "0mid2kvskab3a32jscygg5jh0741nr7dvxzj4v029yiiqcx55nrc";
+    sha256 = "sha256-Kv+sjqhlmH36L4YvDuGYODR/eTHA2TKQ6IUCXAiItyo=";
   };
 
+  vendorSha256 = "sha256-yMcoUl9NsiiZQyEHlLu79DzIyl6BbhLZ/xNFavaGrEs=";
+
   doCheck = true;
 
   passthru.tests = { inherit (nixosTests.prometheus-exporters) postgres; };
@@ -21,6 +21,6 @@ buildGoPackage rec {
     inherit (src.meta) homepage;
     description = "A Prometheus exporter for PostgreSQL";
     license = licenses.asl20;
-    maintainers = with maintainers; [ fpletz globin willibutz ];
+    maintainers = with maintainers; [ fpletz globin willibutz ma27 ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/promscale.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/promscale.nix
index 965b33aa337c..98ad9cd62260 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/promscale.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/promscale.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "promscale";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "timescale";
     repo = pname;
     rev = version;
-    sha256 = "sha256-rXOAAd08NTWFRGnJoAY9xllw6dAA7Xu3qcImIVq9ewE=";
+    sha256 = "sha256-f/fpCyAw9BQ6ccEZm/xsTCjINjFtX3Q6SmPuJNVSJVI=";
   };
 
   vendorSha256 = "sha256-/woSbtrOI3BVBhh+A2kO1CB1BLzBciwOqvSbGkFeMEU=";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
index b1c3bc6999f7..d21ddcf56472 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
 let
   baseVersion = "0.3.1";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix
new file mode 100644
index 000000000000..96029c99d8c6
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "systemd_exporter";
+  version = "0.4.0";
+
+  vendorSha256 = "sha256-bYoB0r+d0j3esi/kK2a7/Duup9cf4M3WJjiBNs2+bj8=";
+
+  src = fetchFromGitHub {
+    owner = "povilasv";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-JDfRHczFnTP9sxA7polUE9qzJhSPIiAU58GBNDYkX4c=";
+  };
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) systemd; };
+
+  meta = with lib; {
+    description = "Exporter for systemd unit metrics";
+    homepage = "https://github.com/povilasv/systemd_exporter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ chkno ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix b/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix
index e63cf4851668..881d677b3e59 100644
--- a/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix
@@ -4,19 +4,19 @@ let
   generic = { subPackages, pname, postInstall ? "" }:
     buildGoModule rec {
       inherit pname;
-      version = "6.2.3";
+      version = "6.2.7";
       shortRev = "3a1ac58"; # for internal version info
 
       src = fetchFromGitHub {
         owner = "sensu";
         repo = "sensu-go";
         rev = "v${version}";
-        sha256 = "sha256-8+ibl2D8hSzFV+snJAxRNTiyYqCndUDGVCVKt2bkPlQ=";
+        sha256 = "sha256-JPX7MfxdlI6jLHVybAR4xtd/IiVGDrhrYUSlXohhpGc=";
       };
 
       inherit subPackages postInstall;
 
-  vendorSha256 = "sha256-KykxKJxel4E5VB8QAkEpBBaA7hKfSnTDkJ9qlNEln80=";
+  vendorSha256 = "sha256-bGQADjT9SMxZnWb3k7wVSsF7VWWuESBL/VDG76vj+Tk=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/monitoring/seyren/default.nix b/nixpkgs/pkgs/servers/monitoring/seyren/default.nix
index 1d26afad3d8b..4dd90cacb8bf 100644
--- a/nixpkgs/pkgs/servers/monitoring/seyren/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/seyren/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
 
   phases = ["installPhase"];
 
-  buildInputs = [ makeWrapper jre ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   installPhase = ''
     mkdir -p "$out"/bin
diff --git a/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix b/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix
index 55b0ab14af70..285db02e1ccd 100644
--- a/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub, nixosTests, fetchpatch }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "telegraf";
-  version = "1.17.2";
+  version = "1.18.0";
 
   excludedPackages = "test";
 
@@ -12,14 +12,14 @@ buildGoModule rec {
     owner = "influxdata";
     repo = "telegraf";
     rev = "v${version}";
-    sha256 = "sha256-R0RYiVVS1ce2xabPBTEmOxBNlknP4iXkbVy412whrFw=";
+    sha256 = "sha256-1sFl+F3g2anssW59eKbjPdVCIyGq8JuoJGXVQZys854=";
   };
 
-  vendorSha256 = "sha256-3cELah9i2rY563QQOYt7ke0HEUR1By74vTgl+UbOHwc=";
+  vendorSha256 = "sha256-m53S/L71nyioCBbIDDAWEnqStBdqTFGq16y5ozsXq1c=";
 
-  buildFlagsArray = [ ''-ldflags=
-    -w -s -X main.version=${version}
-  '' ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags=-w -s -X main.version=${version}")
+  '';
 
   passthru.tests = { inherit (nixosTests) telegraf; };
 
diff --git a/nixpkgs/pkgs/servers/monitoring/thanos/default.nix b/nixpkgs/pkgs/servers/monitoring/thanos/default.nix
index 2b0be2803e2e..ac19ddda793d 100644
--- a/nixpkgs/pkgs/servers/monitoring/thanos/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/thanos/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "thanos";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "thanos-io";
     repo = "thanos";
-    sha256 = "sha256-GJKTQGMmFJeUQn02GWP4KKpKdM8eT+VxDBDzST+5NXk=";
+    sha256 = "sha256-FryVKOabokw2+RyD94QLVpC9ZGIHPuSXZf5H+eitj80=";
   };
 
-  vendorSha256 = "sha256-s11iJFcJ1Ez6TkhCU3VD2ThU5/9otHz5rDF8z9ux79E=";
+  vendorSha256 = "sha256-GBjPMZ6BwUOKywNf1Bc2WeA14qvKQ0R5gWvVxgO/7Lo=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix b/nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix
index 121b31e46eb8..a871bf87db2d 100644
--- a/nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix
@@ -33,7 +33,7 @@ in stdenv.mkDerivation {
 
   inherit src;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildCommand = ''
     mkdir -p $out/bin $out/public
diff --git a/nixpkgs/pkgs/servers/monitoring/unifi-poller/default.nix b/nixpkgs/pkgs/servers/monitoring/unifi-poller/default.nix
index 8297503b675e..992a92a2733c 100644
--- a/nixpkgs/pkgs/servers/monitoring/unifi-poller/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/unifi-poller/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "unifi-poller";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "unifi-poller";
     repo = "unifi-poller";
     rev = "v${version}";
-    sha256 = "16q9hrbl9qgilj3vb7865l1yx0xhm7m4sx5j1ys5vi63drq59g93";
+    sha256 = "sha256-C7QjMzmy2CMCk2oqRiThUQBKgltT0PzZArvZ+gOmJ2I=";
   };
 
-  vendorSha256 = "1fgcbg34g0a0f85qv7bjanv2lpnnszcrspfppp2lnj9kv52j4c1w";
+  vendorSha256 = "sha256-LOBkdyfsw7ua6TsLglO5jdR9NWo5Df8rnQ8MH+eIz4g=";
 
   buildFlagsArray = ''
     -ldflags=-w -s
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix
new file mode 100644
index 000000000000..1deada436374
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix
@@ -0,0 +1,60 @@
+{ lib, buildGoModule, fetchurl, autoreconfHook, pkg-config, libiconv, openssl, pcre, zlib }:
+
+import ./versions.nix ({ version, sha256 }:
+  buildGoModule {
+    pname = "zabbix-agent2";
+    inherit version;
+
+    src = fetchurl {
+      url = "https://cdn.zabbix.com/zabbix/sources/stable/${lib.versions.majorMinor version}/zabbix-${version}.tar.gz";
+      inherit sha256;
+    };
+
+    modRoot = "src/go";
+
+    vendorSha256 = "07caz0jfy0r1vb1h9mhb169wyn949z9xj0pmvyamr2d8y3k3hbyd";
+
+    nativeBuildInputs = [ autoreconfHook pkg-config ];
+    buildInputs = [ libiconv openssl pcre zlib ];
+
+    inherit (buildGoModule.go) GOOS GOARCH;
+
+    # need to provide GO* env variables & patch for reproducibility
+    postPatch = ''
+      substituteInPlace src/go/Makefile.am \
+        --replace '`go env GOOS`' "$GOOS" \
+        --replace '`go env GOARCH`' "$GOARCH" \
+        --replace '`date +%H:%M:%S`' "00:00:00" \
+        --replace '`date +"%b %_d %Y"`' "Jan 1 1970"
+    '';
+
+    # manually configure the c dependencies
+    preConfigure = ''
+      ./configure \
+        --prefix=${placeholder "out"} \
+        --enable-agent2 \
+        --with-iconv \
+        --with-libpcre \
+        --with-openssl=${openssl.dev}
+    '';
+
+    # zabbix build process is complex to get right in nix...
+    # use automake to build the go project ensuring proper access to the go vendor directory
+    buildPhase = ''
+      cd ../..
+      make
+    '';
+
+    installPhase = ''
+      install -Dm0644 src/go/conf/zabbix_agent2.conf $out/etc/zabbix_agent2.conf
+      install -Dm0755 src/go/bin/zabbix_agent2 $out/bin/zabbix_agent2
+    '';
+
+    meta = with lib; {
+      description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
+      homepage = "https://www.zabbix.com/";
+      license = licenses.gpl2Plus;
+      maintainers = [ maintainers.aanderse ];
+      platforms = platforms.linux;
+    };
+  })
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
index a19b2432becd..b9f5ad1be24a 100644
--- a/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
@@ -1,16 +1,11 @@
 generic: {
   v50 = generic {
-    version = "5.0.5";
-    sha256 = "104jxyaclx92pyas7kqz357da7qjcw44yx3yi7vqlc7h5ch3avgc";
+    version = "5.0.10";
+    sha256 = "15kbbj1vclsys1z3ghcz9j5faz67k3z8yl81bn7bhmqaflavgicb";
   };
 
   v40 = generic {
-    version = "4.0.26";
-    sha256 = "0mbk8afkwv208hwyl0zr2l4sib65z7n9ykisznk6pjzb9kdl73s1";
-  };
-
-  v30 = generic {
-    version = "3.0.31";
-    sha256 = "0a2jznpmg24lqdqbc9p8i2q6jkz0hx53hh6q12xsvvmq48vi3snm";
+    version = "4.0.30";
+    sha256 = "17h831a1rw245kz37pw5haxq09k9m76bf0bz0jgg9s0q1j7hvywh";
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/zipkin/default.nix b/nixpkgs/pkgs/servers/monitoring/zipkin/default.nix
index e84c422ea646..9395c3c61c19 100644
--- a/nixpkgs/pkgs/servers/monitoring/zipkin/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/zipkin/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
     url = "https://search.maven.org/remotecontent?filepath=io/zipkin/java/zipkin-server/${version}/zipkin-server-${version}-exec.jar";
     sha256 = "02369fkv0kbl1isq6y26fh2zj5wxv3zck522m5wypsjlcfcw2apa";
   };
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildCommand =
   ''
diff --git a/nixpkgs/pkgs/servers/mpd/default.nix b/nixpkgs/pkgs/servers/mpd/default.nix
index b34f62074915..3e1f81000046 100644
--- a/nixpkgs/pkgs/servers/mpd/default.nix
+++ b/nixpkgs/pkgs/servers/mpd/default.nix
@@ -114,13 +114,13 @@ let
 
     in stdenv.mkDerivation rec {
       pname = "mpd";
-      version = "0.22.4";
+      version = "0.22.6";
 
       src = fetchFromGitHub {
         owner  = "MusicPlayerDaemon";
         repo   = "MPD";
         rev    = "v${version}";
-        sha256 = "sha256-CVi+fcmFMJMv7X4okALlVsxqsuUsirHgQT61IHdrBNE=";
+        sha256 = "sha256-Xu+MxMxR5u++R3lZHe6UQ+mEmRnWbN6173ZX39KS1A8=";
       };
 
       buildInputs = [
@@ -149,8 +149,6 @@ let
 
       doCheck = true;
 
-      enableParallelBuilding = true;
-
       mesonAutoFeatures = "disabled";
 
       outputs = [ "out" "doc" ]
@@ -173,7 +171,7 @@ let
       meta = with lib; {
         description = "A flexible, powerful daemon for playing music";
         homepage    = "https://www.musicpd.org/";
-        license     = licenses.gpl2;
+        license     = licenses.gpl2Only;
         maintainers = with maintainers; [ astsmtl ehmry fpletz tobim ];
         platforms   = platforms.unix;
 
diff --git a/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix b/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix
index 05ce1105d18d..9e251e1bc224 100644
--- a/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix
+++ b/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix
@@ -1,16 +1,28 @@
-{ stdenv, lib, fetchFromGitHub, cmake, docbook_xsl, libxslt
-, openssl, libuuid, libwebsockets_3_1, c-ares, libuv
-, systemd ? null, withSystemd ? stdenv.isLinux }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, docbook_xsl
+, libxslt
+, c-ares
+, cjson
+, libuuid
+, libuv
+, libwebsockets_3_1
+, openssl
+, withSystemd ? stdenv.isLinux
+, systemd
+}:
 
 stdenv.mkDerivation rec {
   pname = "mosquitto";
-  version = "1.6.12";
+  version = "2.0.10";
 
   src = fetchFromGitHub {
-    owner  = "eclipse";
-    repo   = "mosquitto";
-    rev    = "v${version}";
-    sha256 = "0y9jna2p7wg57vv2g6ls1dj6w89vaw828y9z1wb3vwz1yhvs35s8";
+    owner = "eclipse";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "144vw7b9ja4lci4mplbxs048x9aixd9c3s7rg6wc1k31w099rb12";
   };
 
   postPatch = ''
@@ -19,29 +31,30 @@ stdenv.mkDerivation rec {
         --replace http://docbook.sourceforge.net/release/xsl/current ${docbook_xsl}/share/xml/docbook-xsl
     done
 
-    for f in {lib,lib/cpp,src}/CMakeLists.txt ; do
-      substituteInPlace $f --replace /sbin/ldconfig true
-    done
-
     # the manpages are not generated when using cmake
     pushd man
     make
     popd
   '';
 
+  nativeBuildInputs = [ cmake docbook_xsl libxslt ];
+
   buildInputs = [
-    openssl libuuid libwebsockets_3_1 c-ares libuv
+    c-ares
+    cjson
+    libuuid
+    libuv
+    libwebsockets_3_1
+    openssl
   ] ++ lib.optional withSystemd systemd;
 
-  nativeBuildInputs = [ cmake docbook_xsl libxslt ];
-
   cmakeFlags = [
     "-DWITH_THREADING=ON"
     "-DWITH_WEBSOCKETS=ON"
   ] ++ lib.optional withSystemd "-DWITH_SYSTEMD=ON";
 
   meta = with lib; {
-    description = "An open source MQTT v3.1/3.1.1 broker";
+    description = "An open source MQTT v3.1/3.1.1/5.0 broker";
     homepage = "https://mosquitto.org/";
     license = licenses.epl10;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/servers/nats-server/default.nix b/nixpkgs/pkgs/servers/nats-server/default.nix
index d24fe89cc48e..4f62c6f7773d 100644
--- a/nixpkgs/pkgs/servers/nats-server/default.nix
+++ b/nixpkgs/pkgs/servers/nats-server/default.nix
@@ -4,7 +4,7 @@ with lib;
 
 buildGoPackage rec {
   pname   = "nats-server";
-  version = "2.1.9";
+  version = "2.2.1";
 
   goPackagePath = "github.com/nats-io/${pname}";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     rev    = "v${version}";
     owner  = "nats-io";
     repo   = pname;
-    sha256 = "0y92isca1dlvprik0lbiz8ny1w84svy4zn73brqhzrkxnqppcxi2";
+    sha256 = "sha256-LQ817nZrFkF1zdj2m2SQK58BqDbUPSnncSWR+Woi+Ao=";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/servers/nats-streaming-server/default.nix b/nixpkgs/pkgs/servers/nats-streaming-server/default.nix
index e6a9f95a1b92..bf6d95b65d45 100644
--- a/nixpkgs/pkgs/servers/nats-streaming-server/default.nix
+++ b/nixpkgs/pkgs/servers/nats-streaming-server/default.nix
@@ -4,14 +4,14 @@ with lib;
 
 buildGoPackage rec {
   pname   = "nats-streaming-server";
-  version = "0.19.0";
+  version = "0.21.1";
   goPackagePath = "github.com/nats-io/${pname}";
 
   src = fetchFromGitHub {
     rev    = "v${version}";
     owner  = "nats-io";
     repo   = pname;
-    sha256 = "1wa2xby7v45f9idnhbkglknipm24wqx7mxmkyqz3amq17j4xfy7c";
+    sha256 = "sha256-GqnIGnXcOcfbAgUruVxsTSvi6pH1E3QugEmZr3tPiIY=";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/servers/nextcloud/default.nix b/nixpkgs/pkgs/servers/nextcloud/default.nix
index a40dd71fafd9..8205f4f860a9 100644
--- a/nixpkgs/pkgs/servers/nextcloud/default.nix
+++ b/nixpkgs/pkgs/servers/nextcloud/default.nix
@@ -31,24 +31,19 @@ let
     };
   };
 in {
-  nextcloud17 = throw ''
-    Nextcloud v17 has been removed from `nixpkgs` as the support for it will be dropped
-    by upstream within the lifetime of NixOS 20.09[1]. Please upgrade to Nextcloud v18 by
+  nextcloud18 = throw ''
+    Nextcloud v18 has been removed from `nixpkgs` as the support for it was dropped
+    by upstream in 2021-01. Please upgrade to at least Nextcloud v19 by
     declaring
 
-        services.nextcloud.package = pkgs.nextcloud18;
+        services.nextcloud.package = pkgs.nextcloud19;
 
     in your NixOS config.
 
     [1] https://docs.nextcloud.com/server/18/admin_manual/release_schedule.html
   '';
 
-  nextcloud18 = generic {
-    version = "18.0.10";
-    sha256 = "0kv9mdn36shr98kh27969b8xs7pgczbyjklrfskxy9mph7bbzir6";
-    eol = true;
-  };
-
+  # FIXME(@Ma27) remove on 21.05
   nextcloud19 = generic {
     version = "19.0.6";
     sha256 = "sha256-pqqIayE0OyTailtd2zeYi+G1APjv/YHqyO8jCpq7KJg=";
@@ -61,4 +56,9 @@ in {
     version = "20.0.7";
     sha256 = "sha256-jO2Ct3K/CvZ9W+EyPkD5d0KbwKK8yGQJXvx4dnUAtys=";
   };
+
+  nextcloud21 = generic {
+    version = "21.0.0";
+    sha256 = "sha256-zq2u72doWhGvxbI7Coa6PHvQp7E41dHswFJiODZV8fA=";
+  };
 }
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/2.1.nix b/nixpkgs/pkgs/servers/nosql/cassandra/2.1.nix
index 4511fbcd040a..63d89a29d13f 100644
--- a/nixpkgs/pkgs/servers/nosql/cassandra/2.1.nix
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/2.1.nix
@@ -4,4 +4,8 @@ callPackage ./generic.nix (args // {
   version = "2.1.22";
   sha256 = "1wk57dz0kmc6d5y8d8dkx269lzh3ark3751z734gxncwdlclcyz3";
   generation = "2_1";
+  extraMeta.knownVulnerabilities = [
+    # Fixed in 3.* but 2.* hasn't been released since
+    "CVE-2020-17516"
+  ];
 })
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/2.2.nix b/nixpkgs/pkgs/servers/nosql/cassandra/2.2.nix
index 5cec13e4cd18..dc04c374b3d5 100644
--- a/nixpkgs/pkgs/servers/nosql/cassandra/2.2.nix
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/2.2.nix
@@ -4,4 +4,8 @@ callPackage ./generic.nix (args // {
   version = "2.2.14";
   sha256 = "1b2x3q1ach44qg07sh8wr7d8a10n36w5522drd3p35djbiwa3d9q";
   generation = "2_2";
+  extraMeta.knownVulnerabilities = [
+    # Fixed in 3.* but 2.* hasn't been released since
+    "CVE-2020-17516"
+  ];
 })
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/3.0.nix b/nixpkgs/pkgs/servers/nosql/cassandra/3.0.nix
index 72af03af1d88..7788e3ff381a 100644
--- a/nixpkgs/pkgs/servers/nosql/cassandra/3.0.nix
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/3.0.nix
@@ -1,7 +1,7 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix (args // {
-  version = "3.0.23";
-  sha256 = "0cbia20bggq85q2p6gsybw045qdfqxd5xv8ihppq1hwl21sb2klz";
+  version = "3.0.24";
+  sha256 = "1yxw4jg9n49dbi1mjdfpxczsznl9m6sxlzkmzjancmjzvj5s6bvz";
   generation = "3_0";
 })
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/3.11.nix b/nixpkgs/pkgs/servers/nosql/cassandra/3.11.nix
index 15e11145d595..bcdfc8793db5 100644
--- a/nixpkgs/pkgs/servers/nosql/cassandra/3.11.nix
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/3.11.nix
@@ -1,7 +1,7 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix (args // {
-  version = "3.11.9";
-  sha256 = "1ckaacc1z0j72llklrc4587ia6a0pab02bdyac6g3kl6kqvcz40c";
+  version = "3.11.10";
+  sha256 = "1wcv0drhb765fda6kkpsxsyfdv4cqf7nqfwc4bimh4c4djap5rxv";
   generation = "3_11";
 })
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix b/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix
index 4d9f09637e9f..ca2001817a34 100644
--- a/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix
@@ -3,6 +3,7 @@
 # generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11
 , generation
 , version, sha256
+, extraMeta ? {}
 , ...
 }:
 
@@ -30,6 +31,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper coreutils ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir $out
     mv * $out
 
@@ -85,6 +88,8 @@ stdenv.mkDerivation rec {
     done
 
     wrapProgram $out/bin/cqlsh --prefix PATH : ${python}/bin
+
+    runHook postInstall
     '';
 
   passthru = {
@@ -104,5 +109,5 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.asl20;
     maintainers = [ maintainers.roberth ];
-  };
+  } // extraMeta;
 }
diff --git a/nixpkgs/pkgs/servers/nosql/eventstore/default.nix b/nixpkgs/pkgs/servers/nosql/eventstore/default.nix
index abec3c5f79f9..4a6db24bc4c4 100644
--- a/nixpkgs/pkgs/servers/nosql/eventstore/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/eventstore/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
     description = "Event sourcing database with processing logic in JavaScript";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ puffnfresh ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
   };
 
 }
diff --git a/nixpkgs/pkgs/servers/nosql/neo4j/default.nix b/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
index 684cdbe287c5..d9c9ddf8752b 100644
--- a/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1zjb6cgk2lpzx6pq1cs5fh65in6b5ccpl1cgfiglgpjc948mnhzv";
   };
 
-  buildInputs = [ makeWrapper jre8 which gawk ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre8 which gawk ];
 
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/nosql/redis/default.nix b/nixpkgs/pkgs/servers/nosql/redis/default.nix
index 9eac9e2f2565..b9809a9a105a 100644
--- a/nixpkgs/pkgs/servers/nosql/redis/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/redis/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchurl, lua, pkg-config, systemd, jemalloc, nixosTests
+{ lib, stdenv, fetchurl, lua, pkg-config, systemd, nixosTests
 , tlsSupport ? true, openssl
 }:
 
 stdenv.mkDerivation rec {
-  version = "6.0.10";
   pname = "redis";
+  version = "6.2.1";
 
   src = fetchurl {
-    url = "http://download.redis.io/releases/${pname}-${version}.tar.gz";
-    sha256 = "1gc529nfh8frk4pynyjlnmzvwa0j9r5cmqwyd7537sywz6abifvr";
+    url = "https://download.redis.io/releases/${pname}-${version}.tar.gz";
+    sha256 = "sha256-zSIlBQEsziCyVoL8qTHsk70hrpLLSr/nQs97dqqQdSA=";
   };
 
   # Cross-compiling fixes
@@ -36,6 +36,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isClang [ "-std=c11" ];
+
   doCheck = false; # needs tcl
 
   passthru.tests.redis = nixosTests.redis;
@@ -44,7 +46,8 @@ stdenv.mkDerivation rec {
     homepage = "https://redis.io";
     description = "An open source, advanced key-value store";
     license = licenses.bsd3;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ berdario globin ];
+    platforms = platforms.all;
+    changelog = "https://github.com/redis/redis/raw/${version}/00-RELEASENOTES";
+    maintainers = with maintainers; [ berdario globin marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix b/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
index 558fdad9841f..4c5be92e765b 100644
--- a/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
@@ -31,11 +31,11 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "rethinkdb" ];
 
-  buildInputs = [ protobuf boost zlib curl openssl icu makeWrapper ]
+  buildInputs = [ protobuf boost zlib curl openssl icu ]
     ++ lib.optional (!stdenv.isDarwin) jemalloc
     ++ lib.optional stdenv.isDarwin libtool;
 
-  nativeBuildInputs = [ which m4 python2Packages.python ];
+  nativeBuildInputs = [ which m4 python2Packages.python makeWrapper ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix b/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix
index efa43f7a844f..a9a74f0b75f3 100644
--- a/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix
+++ b/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix
@@ -28,8 +28,9 @@ in
 stdenv.mkDerivation {
   name = "riak-2.2.0";
 
+  nativeBuildInputs = [ unzip ];
   buildInputs = [
-    which unzip erlang pam
+    which erlang pam
   ];
 
   src = srcs.riak;
diff --git a/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix b/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix
index 02fd76315184..d7612d30764a 100644
--- a/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "VictoriaMetrics";
-  version = "1.52.0";
+  version = "1.54.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1sqzpr48sylgiy4zaf3f8hnwzv7imf57bxg6sin9lv291ybhxs68";
+    sha256 = "sha256-nZSNn1vLk3y6s4ie1AkSkGmKUiIrcBr3yKW5uAEtRt0=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/servers/nzbhydra2/default.nix b/nixpkgs/pkgs/servers/nzbhydra2/default.nix
index aab3952e9ed9..3aef89ecd8f1 100644
--- a/nixpkgs/pkgs/servers/nzbhydra2/default.nix
+++ b/nixpkgs/pkgs/servers/nzbhydra2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nzbhydra2";
-  version = "3.8.0";
+  version = "3.13.2";
 
   src = fetchzip {
     url = "https://github.com/theotherp/${pname}/releases/download/v${version}/${pname}-${version}-linux.zip";
-    sha512 = "1gybricq26hixr5cmw1iwyax7h17d0n5wqzhrx727xda1x35jfjp5ynjdkxzysbfhs1za6vy54bpm0sda4nkrh16p0xqnz3nsd4hvzh";
+    sha512 = "2pi91y966qnq6q9qqnhglmbj4610jxyyqxiwa8zfmb8r48mzwzy3q5ga00h9qbhi6a8ghrfh1yvj4h9m17gk7l3rc5fw0r3mrk437nj";
     stripRoot = false;
   };
 
diff --git a/nixpkgs/pkgs/servers/oauth2_proxy/default.nix b/nixpkgs/pkgs/servers/oauth2_proxy/default.nix
index 8e57e253435a..7c2bcbe4740a 100644
--- a/nixpkgs/pkgs/servers/oauth2_proxy/default.nix
+++ b/nixpkgs/pkgs/servers/oauth2_proxy/default.nix
@@ -2,12 +2,12 @@
 
 buildGoModule rec {
   pname = "oauth2-proxy";
-  version = "7.0.0";
+  version = "7.0.1";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "oauth2-proxy";
-    sha256 = "sha256-yH60mfuYRv31I0DOEtWxqGCzKOwDYsQh4yjvYO3vq3I=";
+    sha256 = "sha256-PvoCR+JYaQeHlnO6H75LcY7Lszi1nNNe6SCd3sJJ6R4=";
     rev = "v${version}";
   };
 
diff --git a/nixpkgs/pkgs/servers/ombi/default.nix b/nixpkgs/pkgs/servers/ombi/default.nix
new file mode 100644
index 000000000000..bbad311eddaf
--- /dev/null
+++ b/nixpkgs/pkgs/servers/ombi/default.nix
@@ -0,0 +1,66 @@
+{ lib, stdenv, fetchurl, makeWrapper, patchelf, openssl, libunwind, zlib, krb5, icu, nixosTests }:
+
+let
+  os = if stdenv.isDarwin then "osx" else "linux";
+  arch = {
+    x86_64-linux = "x64";
+    aarch64-linux = "arm64";
+    x86_64-darwin = "x64";
+  }."${stdenv.hostPlatform.system}" or (throw
+    "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  hash = {
+    x64-linux_hash = "sha256-Cuvz9Mhwpg8RIaiSXib+QW00DM66qPRQulrchRL2BSk=";
+    arm64-linux_hash = "sha256-uyVwa73moHWMZScNNSOU17lALuK3PC/cvTZPJ9qg7JQ=";
+    x64-osx_hash = "sha256-FGXLsfEuCW94D786LJ/wvA9TakOn5sG2M1rDXPQicYw=";
+  }."${arch}-${os}_hash";
+
+  rpath = lib.makeLibraryPath [
+    stdenv.cc.cc openssl libunwind zlib krb5 icu
+  ];
+
+  dynamicLinker = stdenv.cc.bintools.dynamicLinker;
+
+in stdenv.mkDerivation rec {
+  pname = "ombi";
+  version = "4.0.1292";
+
+  sourceRoot = ".";
+
+  src = fetchurl {
+    url = "https://github.com/Ombi-app/Ombi/releases/download/v${version}/${os}-${arch}.tar.gz";
+    sha256 = hash;
+  };
+
+  buildInputs = [ makeWrapper patchelf ];
+
+  installPhase = ''
+    mkdir -p $out/{bin,share/${pname}-${version}}
+    cp -r * $out/share/${pname}-${version}
+
+    makeWrapper $out/share/${pname}-${version}/Ombi $out/bin/Ombi \
+      --run "cd $out/share/${pname}-${version}"
+  '';
+
+  dontPatchELF = true;
+  postFixup = ''
+    patchelf --set-interpreter "${dynamicLinker}" \
+      --set-rpath "$ORIGIN:${rpath}" $out/share/${pname}-${version}/Ombi
+
+    find $out -type f -name "*.so" -exec \
+      patchelf --set-rpath '$ORIGIN:${rpath}' {} ';'
+  '';
+
+  passthru = {
+    updateScript = ./update.sh;
+    tests.smoke-test = nixosTests.ombi;
+  };
+
+  meta = with lib; {
+    description = "Self-hosted web application that automatically gives your shared Plex or Emby users the ability to request content by themselves";
+    homepage = "https://ombi.io/";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ woky ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/ombi/update.sh b/nixpkgs/pkgs/servers/ombi/update.sh
new file mode 100755
index 000000000000..fb2549bb7468
--- /dev/null
+++ b/nixpkgs/pkgs/servers/ombi/update.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused nix-prefetch jq
+
+set -e
+
+dirname="$(dirname "$0")"
+
+updateHash()
+{
+    version=$1
+    arch=$2
+    os=$3
+
+    hashKey="${arch}-${os}_hash"
+
+    url="https://github.com/Ombi-app/Ombi/releases/download/v$version/$os-$arch.tar.gz"
+    hash=$(nix-prefetch-url --type sha256 $url)
+    sriHash="$(nix to-sri --type sha256 $hash)"
+
+    sed -i "s|$hashKey = \"[a-zA-Z0-9\/+-=]*\";|$hashKey = \"$sriHash\";|g" "$dirname/default.nix"
+}
+
+updateVersion()
+{
+    sed -i "s/version = \"[0-9.]*\";/version = \"$1\";/g" "$dirname/default.nix"
+}
+
+currentVersion=$(cd $dirname && nix eval --raw '(with import ../../.. {}; ombi.version)')
+
+latestTag=$(curl https://api.github.com/repos/Ombi-App/Ombi/tags | jq -r '.[] | .name' | sort --version-sort | tail -1)
+latestVersion="$(expr $latestTag : 'v\(.*\)')"
+
+if [[ "$currentVersion" == "$latestVersion" ]]; then
+    echo "Ombi is up-to-date: ${currentVersion}"
+    exit 0
+fi
+
+updateVersion $latestVersion
+
+updateHash $latestVersion x64 linux
+updateHash $latestVersion arm64 linux
+updateHash $latestVersion x64 osx
diff --git a/nixpkgs/pkgs/servers/openafs/1.8/default.nix b/nixpkgs/pkgs/servers/openafs/1.8/default.nix
index f7944e6a1752..918a20ce5a32 100644
--- a/nixpkgs/pkgs/servers/openafs/1.8/default.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.8/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, buildPackages, fetchurl, which, autoconf, automake, flex
-, yacc , glibc, perl, kerberos, libxslt, docbook_xsl, file
+, bison , glibc, perl, libkrb5, libxslt, docbook_xsl, file
 , docbook_xml_dtd_43, libtool_2
 , withDevdoc ? false, doxygen, dblatex # Extra developer documentation
 , ncurses # Extra ncurses utilities. Needed for debugging and monitoring.
@@ -16,9 +16,9 @@ in stdenv.mkDerivation {
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ autoconf automake flex libxslt libtool_2 perl
-    which yacc ] ++ optionals withDevdoc [ doxygen dblatex ];
+    which bison ] ++ optionals withDevdoc [ doxygen dblatex ];
 
-  buildInputs = [ kerberos ncurses ];
+  buildInputs = [ libkrb5 ncurses ];
 
   patches = [ ./bosserver.patch ./cross-build.patch ] ++ optional (tsmbac != null) ./tsmbac.patch;
 
diff --git a/nixpkgs/pkgs/servers/openafs/1.8/module.nix b/nixpkgs/pkgs/servers/openafs/1.8/module.nix
index 97e20238a7c3..53389db39c9c 100644
--- a/nixpkgs/pkgs/servers/openafs/1.8/module.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.8/module.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, which, autoconf, automake, flex, yacc
-, kernel, glibc, perl, libtool_2, kerberos, fetchpatch }:
+{ lib, stdenv, fetchurl, which, autoconf, automake, flex, bison
+, kernel, glibc, perl, libtool_2, libkrb5, fetchpatch }:
 
 with (import ./srcs.nix {
   inherit fetchurl;
@@ -13,28 +13,42 @@ in stdenv.mkDerivation {
   name = "openafs-${version}-${kernel.modDirVersion}";
   inherit version src;
 
-  nativeBuildInputs = [ autoconf automake flex libtool_2 perl which yacc ]
+  nativeBuildInputs = [ autoconf automake flex libtool_2 perl which bison ]
     ++ kernel.moduleBuildDependencies;
 
-  buildInputs = [ kerberos ];
+  buildInputs = [ libkrb5 ];
 
   patches = [
+    # LINUX 5.8: Replace kernel_setsockopt with new funcs
     (fetchpatch {
       url = "https://github.com/openafs/openafs/commit/d7fc5bf9bf031089d80703c48daf30d5b15a80ca.patch";
       sha256 = "0469ydzgvyvrl1b2s1qbl9cd8c5c1nb99c3z52z5i685da5z6pab";
     })
+    # LINUX 5.8: do not set name field in backing_dev_info
     (fetchpatch {
       url = "https://github.com/openafs/openafs/commit/335f37be13d2ff954e4aeea617ee66502170805e.patch";
       sha256 = "0jr6cgplnip61cjlcd3fvgsc6n3jhfk93mm9m7ak04w1vc26dk9x";
     })
+    # LINUX 5.8: use lru_cache_add
     (fetchpatch {
       url = "https://github.com/openafs/openafs/commit/facff58b840a47853592510617ba7a1da2e3eaa9.patch";
       sha256 = "0izafg6bi5iaigq3jjx0zlg1cxwaddz3238hk0s08fcb6nyhkvx1";
     })
+    # LINUX 5.9: Remove HAVE_UNLOCKED_IOCTL/COMPAT_IOCTL
     (fetchpatch {
       url = "https://github.com/openafs/openafs/commit/e7902252f15acfc28453c531f6fa3b29c9c91b92.patch";
       sha256 = "1jy4v8yx8p6mhma6b3h3g94mb38bw7hg7q6lnyc8bijkbnl0d1rl";
     })
+    # Linux: Refactor test for 32bit compat
+    (fetchpatch {
+      url = "https://github.com/openafs/openafs/commit/4ad1057ab8fd206c9fa8d5e3bdde4f1a8417afdb.patch";
+      sha256 = "0v2537wkav78yi8lv6fkd1n6rf2g17igf44rpa3kd0kkidxv5lqr";
+    })
+    # Linux 5.11: Test 32bit compat with in_compat_syscall
+    (fetchpatch {
+      url = "https://github.com/openafs/openafs/commit/ee53dd3bc087a05e22fc4111297a51ddb30013f0.patch";
+      sha256 = "0dfab3zk0dmf6iksna5n09lf5dn4f8w43q4irl2yf5dgqm35shkr";
+    })
   ];
 
   hardeningDisable = [ "pic" ];
@@ -77,5 +91,4 @@ in stdenv.mkDerivation {
     maintainers = [ maintainers.maggesi maintainers.spacefrogg ];
     broken = versionOlder kernel.version "3.18" || kernel.isHardened;
   };
-
 }
diff --git a/nixpkgs/pkgs/servers/openafs/1.9/default.nix b/nixpkgs/pkgs/servers/openafs/1.9/default.nix
index f7944e6a1752..918a20ce5a32 100644
--- a/nixpkgs/pkgs/servers/openafs/1.9/default.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.9/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, buildPackages, fetchurl, which, autoconf, automake, flex
-, yacc , glibc, perl, kerberos, libxslt, docbook_xsl, file
+, bison , glibc, perl, libkrb5, libxslt, docbook_xsl, file
 , docbook_xml_dtd_43, libtool_2
 , withDevdoc ? false, doxygen, dblatex # Extra developer documentation
 , ncurses # Extra ncurses utilities. Needed for debugging and monitoring.
@@ -16,9 +16,9 @@ in stdenv.mkDerivation {
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ autoconf automake flex libxslt libtool_2 perl
-    which yacc ] ++ optionals withDevdoc [ doxygen dblatex ];
+    which bison ] ++ optionals withDevdoc [ doxygen dblatex ];
 
-  buildInputs = [ kerberos ncurses ];
+  buildInputs = [ libkrb5 ncurses ];
 
   patches = [ ./bosserver.patch ./cross-build.patch ] ++ optional (tsmbac != null) ./tsmbac.patch;
 
diff --git a/nixpkgs/pkgs/servers/openafs/1.9/module.nix b/nixpkgs/pkgs/servers/openafs/1.9/module.nix
index 5ed09a21742d..a242d59e2dd5 100644
--- a/nixpkgs/pkgs/servers/openafs/1.9/module.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.9/module.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, which, autoconf, automake, flex, yacc
-, kernel, glibc, perl, libtool_2, kerberos, fetchpatch }:
+{ lib, stdenv, fetchurl, which, autoconf, automake, flex, bison
+, kernel, glibc, perl, libtool_2, libkrb5, fetchpatch }:
 
 with (import ./srcs.nix {
   inherit fetchurl;
@@ -13,10 +13,10 @@ in stdenv.mkDerivation {
   name = "openafs-${version}-${kernel.modDirVersion}";
   inherit version src;
 
-  nativeBuildInputs = [ autoconf automake flex libtool_2 perl which yacc ]
+  nativeBuildInputs = [ autoconf automake flex libtool_2 perl which bison ]
     ++ kernel.moduleBuildDependencies;
 
-  buildInputs = [ kerberos ];
+  buildInputs = [ libkrb5 ];
 
   patches = [];
 
@@ -60,5 +60,4 @@ in stdenv.mkDerivation {
     maintainers = [ maintainers.maggesi maintainers.spacefrogg ];
     broken = versionOlder kernel.version "3.18" || kernel.isHardened;
   };
-
 }
diff --git a/nixpkgs/pkgs/servers/openbgpd/default.nix b/nixpkgs/pkgs/servers/openbgpd/default.nix
index 58f799c97ba4..20b8699aef54 100644
--- a/nixpkgs/pkgs/servers/openbgpd/default.nix
+++ b/nixpkgs/pkgs/servers/openbgpd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, m4, yacc }:
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, m4, bison }:
 
 let
   openbsd_version =
@@ -21,7 +21,7 @@ in stdenv.mkDerivation rec {
     sha256 = "sha256-TKs6tt/SCWes6kYAGIrSShZgOLf7xKh26xG3Zk7wCCw=";
   };
 
-  nativeBuildInputs = [ autoconf automake libtool m4 yacc ];
+  nativeBuildInputs = [ autoconf automake libtool m4 bison ];
 
   preConfigure = ''
     mkdir ./openbsd
diff --git a/nixpkgs/pkgs/servers/p910nd/default.nix b/nixpkgs/pkgs/servers/p910nd/default.nix
index e5e4df1a292b..9cd06a3ebc6c 100644
--- a/nixpkgs/pkgs/servers/p910nd/default.nix
+++ b/nixpkgs/pkgs/servers/p910nd/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
   };
 
   postPatch = ''
-    sed -e "s|/usr||g" -i Makefile
+    substituteInPlace Makefile --replace "/usr" ""
+    substituteInPlace Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
   '';
 
   makeFlags = [ "DESTDIR=$(out)" "BINDIR=/bin" ];
@@ -39,6 +40,6 @@ stdenv.mkDerivation rec {
     homepage = "http://p910nd.sourceforge.net/";
     downloadPage = "https://sourceforge.net/projects/p910nd/";
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/servers/pim6sd/default.nix b/nixpkgs/pkgs/servers/pim6sd/default.nix
index 6752a8089af3..0889deee92a9 100644
--- a/nixpkgs/pkgs/servers/pim6sd/default.nix
+++ b/nixpkgs/pkgs/servers/pim6sd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, lib, autoreconfHook, yacc, flex }:
+{ stdenv, fetchFromGitHub, lib, autoreconfHook, bison, flex }:
 
 stdenv.mkDerivation rec {
   pname = "pim6sd";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0x7dyark2mp9xqz9cnmmgaf0z143vxn2835clllpji4ylg77zdjw";
   };
 
-  nativeBuildInputs = [ autoreconfHook yacc flex ];
+  nativeBuildInputs = [ autoreconfHook bison flex ];
 
   meta = with lib; {
     description = "PIM for IPv6 sparse mode daemon";
diff --git a/nixpkgs/pkgs/servers/pleroma-otp/default.nix b/nixpkgs/pkgs/servers/pleroma-otp/default.nix
index 4905acd07577..10fd2627743f 100644
--- a/nixpkgs/pkgs/servers/pleroma-otp/default.nix
+++ b/nixpkgs/pkgs/servers/pleroma-otp/default.nix
@@ -12,19 +12,19 @@
 }:
 stdenv.mkDerivation {
   pname = "pleroma-otp";
-  version = "2.2.2";
+  version = "2.3.0";
 
   # To find the latest binary release stable link, have a look at
   # the CI pipeline for the latest commit of the stable branch
   # https://git.pleroma.social/pleroma/pleroma/-/tree/stable
   src = {
     aarch64-linux = fetchurl {
-      url = "https://git.pleroma.social/pleroma/pleroma/-/jobs/175288/artifacts/download";
-      sha256 = "107kp5zqwq1lixk1cwkx4v7zpm0h248xzlm152aj36ghb43j2snw";
+      url = "https://git.pleroma.social/pleroma/pleroma/-/jobs/182392/artifacts/download";
+      sha256 = "1drpd6xh7m2damxi5impb8jwvjl6m3qv5yxynl12i8g66vi3rbwf";
     };
     x86_64-linux = fetchurl {
-      url = "https://git.pleroma.social/pleroma/pleroma/-/jobs/175284/artifacts/download";
-      sha256 = "1c6l04gga9iigm249ywwcrjg6wzy8iiid652mws3j9dnl71w2sim";
+      url = "https://git.pleroma.social/pleroma/pleroma/-/jobs/182388/artifacts/download";
+      sha256 = "0glr0iiqmylwwsn5r946yqr9kx97j2zznrc0imyxm3j0vhz8xzl4";
     };
   }."${stdenv.hostPlatform.system}";
 
diff --git a/nixpkgs/pkgs/servers/plex/raw.nix b/nixpkgs/pkgs/servers/plex/raw.nix
index ca0e41f76d20..68168618c558 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.21.3.4014-58bd20c02";
+  version = "1.22.2.4282-a97b03fad";
   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 = "15zfhjvp5yzai5ylhljw221v6qm16fma0x0lay9zpgkxrwqw9iaw";
+    sha256 = "01krx6vhk24wm2hikxkfv8m53y8b4yqnkii4j9zf48f1a9hlj2zp";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    sha256 = "1gig4n6iijipf2njixgpw00pm3g5rgbq1vvd9ljy8cjpv1kb5z0z";
+    sha256 = "04wzv15pnd4sn6cy62m8prvsxpxj4sg3q9ahwsrn2cj31vgayg0i";
   };
 
   outputs = [ "out" "basedb" ];
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p "$out/lib"
     cp -dr --no-preserve='ownership' usr/lib/plexmediaserver $out/lib/
 
@@ -48,6 +49,7 @@ stdenv.mkDerivation rec {
     # to the '/db' file; we create this path in the FHS userenv (see the "plex"
     # package).
     ln -fs /db $f
+    runHook postInstall
   '';
 
   # We're running in a FHS userenv; don't patch anything
@@ -83,7 +85,6 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     maintainers = with maintainers; [
       badmutex
-      colemickens
       forkk
       lnl7
       pjones
diff --git a/nixpkgs/pkgs/servers/plik/default.nix b/nixpkgs/pkgs/servers/plik/default.nix
new file mode 100644
index 000000000000..b66ca14e415d
--- /dev/null
+++ b/nixpkgs/pkgs/servers/plik/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchurl, makeWrapper, runCommand, callPackage }:
+
+let
+  version = "1.3.1";
+
+  programs = callPackage ./programs.nix {};
+
+  webapp = fetchurl {
+    url = "https://github.com/root-gg/plik/releases/download/${version}/plik-${version}-linux-amd64.tar.gz";
+    sha256 = "KN6cp29KKdGamYnfL3jYltx0EDx6syDPfV0jShOk7Zw=";
+  };
+
+in {
+
+  inherit (programs) plik plikd-unwrapped;
+
+  plikd = runCommand "plikd-${version}" { nativeBuildInputs = [ makeWrapper ]; } ''
+    mkdir -p $out/libexec/plikd/{bin,webapp} $out/bin
+    tar xf ${webapp} plik-${version}-linux-amd64/webapp/dist/
+    mv plik-*/webapp/dist $out/libexec/plikd/webapp
+    cp ${programs.plikd-unwrapped}/bin/plikd $out/libexec/plikd/bin/plikd
+    makeWrapper $out/libexec/plikd/bin/plikd $out/bin/plikd \
+      --run "cd $out/libexec/plikd/bin"
+  '';
+}
diff --git a/nixpkgs/pkgs/servers/plik/programs.nix b/nixpkgs/pkgs/servers/plik/programs.nix
new file mode 100644
index 000000000000..ff83ec5ff689
--- /dev/null
+++ b/nixpkgs/pkgs/servers/plik/programs.nix
@@ -0,0 +1,42 @@
+{ lib, buildGoModule, fetchFromGitHub, fetchurl, makeWrapper, runCommand }:
+
+let
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "root-gg";
+    repo = "plik";
+    rev = version;
+    sha256 = "C/1Uwjsqd9n3WSXlnlq9K3EJHkLOSavS9cPqF2UqmGo=";
+  };
+
+  vendorSha256 = "klmWXC3tkoOcQHhiQZjR2C5jqaRJqMQOLtVxZ0cFq/Y=";
+
+  meta = with lib; {
+    homepage = "https://plik.root.gg/";
+    description = "Scalable & friendly temporary file upload system";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.mit;
+  };
+in {
+
+  plik = buildGoModule {
+    pname = "plik";
+    inherit version meta src vendorSha256;
+
+    subPackages = [ "client" ];
+    postInstall = ''
+      mv $out/bin/client $out/bin/plik
+    '';
+  };
+
+  plikd-unwrapped = buildGoModule {
+    pname = "plikd-unwrapped";
+    inherit version src vendorSha256;
+
+    subPackages = [ "server" ];
+    postFixup = ''
+      mv $out/bin/server $out/bin/plikd
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/servers/pounce/default.nix b/nixpkgs/pkgs/servers/pounce/default.nix
index 65b1cbc7ddfc..3ff6b112a978 100644
--- a/nixpkgs/pkgs/servers/pounce/default.nix
+++ b/nixpkgs/pkgs/servers/pounce/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, libressl, fetchzip, fetchpatch, pkg-config }:
+{ lib, stdenv, libressl, fetchzip, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "pounce";
-  version = "2.1p1";
+  version = "2.3";
 
   src = fetchzip {
     url = "https://git.causal.agency/pounce/snapshot/pounce-${version}.tar.gz";
-    sha256 = "1gphia45swj4ws6nrklqg1hvjrc6yw921v0pf29cvjhwrfl6dl0h";
+    sha256 = "0pk3kwr6k6dz2vdx1kyv7mhj756j4bwsmdlmjzhh8ghczjqp2s2x";
   };
 
   buildInputs = [ libressl ];
diff --git a/nixpkgs/pkgs/servers/radarr/default.nix b/nixpkgs/pkgs/servers/radarr/default.nix
index ae0195156276..47edb29723e3 100644
--- a/nixpkgs/pkgs/servers/radarr/default.nix
+++ b/nixpkgs/pkgs/servers/radarr/default.nix
@@ -1,12 +1,26 @@
-{ lib, stdenv, fetchurl, mono, libmediainfo, sqlite, curl, makeWrapper }:
+{ lib, stdenv, fetchurl, mono, libmediainfo, sqlite, curl, makeWrapper, icu, dotnetCorePackages, openssl, nixosTests }:
 
-stdenv.mkDerivation rec {
+let
+  os = if stdenv.isDarwin then "osx" else "linux";
+  arch = {
+    x86_64-linux = "x64";
+    aarch64-linux = "arm64";
+    x86_64-darwin = "x64";
+  }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  hash = {
+    x64-linux_hash = "sha256-bTh+Z5w5ZkL2iPteStqVcoFDGZIbpVjuXn20TZsfgtY=";
+    arm64-linux_hash = "sha256-aIzVSIRuGNiIFJPToXCQwYsbICKuPtwKATnQhkxvJuA=";
+    x64-osx_hash = "sha256-FxRSAJvRQya2x1kei6yRceGcyQ2mCaFveyeMGw0Jqw4=";
+  }."${arch}-${os}_hash";
+
+in stdenv.mkDerivation rec {
   pname = "radarr";
-  version = "0.2.0.1504";
+  version = "3.0.2.4552";
 
   src = fetchurl {
-    url = "https://github.com/Radarr/Radarr/releases/download/v${version}/Radarr.develop.${version}.linux.tar.gz";
-    sha256 = "1h7pqn39vxd0vr1fwrnvfpxv5vhh4zcr0s8h0zvgplay2z6b6bvb";
+    url = "https://github.com/Radarr/Radarr/releases/download/v${version}/Radarr.master.${version}.${os}-core-${arch}.tar.gz";
+    sha256 = hash;
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -15,17 +29,22 @@ stdenv.mkDerivation rec {
     mkdir -p $out/{bin,share/${pname}-${version}}
     cp -r * $out/share/${pname}-${version}/.
 
-    makeWrapper "${mono}/bin/mono" $out/bin/Radarr \
-      --add-flags "$out/share/${pname}-${version}/Radarr.exe" \
+    makeWrapper "${dotnetCorePackages.netcore_3_1}/bin/dotnet" $out/bin/Radarr \
+      --add-flags "$out/share/${pname}-${version}/Radarr.dll" \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
-          curl sqlite libmediainfo ]}
+        curl sqlite libmediainfo mono openssl icu ]}
   '';
 
+  passthru = {
+    updateScript = ./update.sh;
+    tests.smoke-test = nixosTests.radarr;
+  };
+
   meta = with lib; {
     description = "A Usenet/BitTorrent movie downloader";
     homepage = "https://radarr.video/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ edwtjo purcell ];
-    platforms = platforms.all;
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/radarr/update.sh b/nixpkgs/pkgs/servers/radarr/update.sh
new file mode 100755
index 000000000000..240689eb4537
--- /dev/null
+++ b/nixpkgs/pkgs/servers/radarr/update.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused nix-prefetch jq
+
+set -e
+
+dirname="$(dirname "$0")"
+
+updateHash()
+{
+    version=$1
+    arch=$2
+    os=$3
+
+    hashKey="${arch}-${os}_hash"
+
+    url="https://github.com/Radarr/Radarr/releases/download/v$version/Radarr.master.$version.$os-core-$arch.tar.gz"
+    hash=$(nix-prefetch-url --type sha256 $url)
+    sriHash="$(nix to-sri --type sha256 $hash)"
+
+    sed -i "s|$hashKey = \"[a-zA-Z0-9\/+-=]*\";|$hashKey = \"$sriHash\";|g" "$dirname/default.nix"
+}
+
+updateVersion()
+{
+    sed -i "s/version = \"[0-9.]*\";/version = \"$1\";/g" "$dirname/default.nix"
+}
+
+currentVersion=$(cd $dirname && nix eval --raw '(with import ../../.. {}; radarr.version)')
+
+latestTag=$(curl https://api.github.com/repos/Radarr/Radarr/releases/latest | jq -r ".tag_name")
+latestVersion="$(expr $latestTag : 'v\(.*\)')"
+
+if [[ "$currentVersion" == "$latestVersion" ]]; then
+    echo "Radarr is up-to-date: ${currentVersion}"
+    exit 0
+fi
+
+updateVersion $latestVersion
+
+updateHash $latestVersion x64 linux
+updateHash $latestVersion arm64 linux
+updateHash $latestVersion x64 osx
diff --git a/nixpkgs/pkgs/servers/rainloop/default.nix b/nixpkgs/pkgs/servers/rainloop/default.nix
index 681a9dd38ca3..f86254e93b18 100644
--- a/nixpkgs/pkgs/servers/rainloop/default.nix
+++ b/nixpkgs/pkgs/servers/rainloop/default.nix
@@ -4,7 +4,7 @@
       pname = "rainloop${lib.optionalString (edition != "") "-${edition}"}";
       version = "1.14.0";
 
-      buildInputs = [ unzip ];
+      nativeBuildInputs = [ unzip ];
 
       unpackPhase = ''
         mkdir rainloop
diff --git a/nixpkgs/pkgs/servers/rippled/default.nix b/nixpkgs/pkgs/servers/rippled/default.nix
index 22223f2a27e6..6bedb891b57d 100644
--- a/nixpkgs/pkgs/servers/rippled/default.nix
+++ b/nixpkgs/pkgs/servers/rippled/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, fetchgit, fetchurl, runCommand, git, cmake, pkg-config
-, openssl,  zlib, boost, grpc, c-ares, abseil-cpp, protobuf3_8, libnsl }:
+{ lib, stdenv, fetchgit, fetchurl, git, cmake, pkg-config
+, openssl, boost, grpc, abseil-cpp, protobuf3_8, libnsl }:
 
 let
   sqlite3 = fetchurl rec {
@@ -130,7 +130,7 @@ in stdenv.mkDerivation rec {
   cmakeFlags = ["-Dstatic=OFF" "-DBoost_NO_BOOST_CMAKE=ON"];
 
   nativeBuildInputs = [ pkg-config cmake git ];
-  buildInputs = [ openssl openssl.dev boostSharedStatic zlib grpc c-ares c-ares.cmake-config abseil-cpp protobuf3_8 libnsl ];
+  buildInputs = [ openssl openssl.dev boostSharedStatic grpc abseil-cpp protobuf3_8 libnsl ];
 
   preConfigure = ''
     export HOME=$PWD
@@ -160,7 +160,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Ripple P2P payment network reference server";
     homepage = "https://github.com/ripple/rippled";
-    maintainers = with maintainers; [ ehmry offline RaghavSood ];
+    maintainers = with maintainers; [ offline RaghavSood ];
     license = licenses.isc;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/servers/rippled/validator-keys-tool.nix b/nixpkgs/pkgs/servers/rippled/validator-keys-tool.nix
index ec5794d1509c..ba172ddefd24 100644
--- a/nixpkgs/pkgs/servers/rippled/validator-keys-tool.nix
+++ b/nixpkgs/pkgs/servers/rippled/validator-keys-tool.nix
@@ -1,33 +1,35 @@
-{ stdenv, lib, fetchgit, cmake, openssl, boost, zlib, rippled }:
+{ stdenv, lib, fetchFromGitHub, cmake, openssl, boost, zlib, icu, rippled }:
 
 stdenv.mkDerivation rec {
-  name = "rippled-validator-keys-tool-20180927-${builtins.substring 0 7 rev}";
-  rev = "d7774bcc1dc9439c586ea1c175fcd5ff3960b15f";
+  pname = "rippled-validator-keys-tool";
+  version = "0.3.2";
 
-  src = fetchgit {
-    url = "https://github.com/ripple/validator-keys-tool.git";
-    inherit rev;
-    sha256 = "1hcbwwa21n692qpbm0vqy5jvvnf4aias309610m4kwdsnzfw0902";
+  src = fetchFromGitHub {
+    owner = "ripple";
+    repo = "validator-keys-tool";
+    rev = "5d7efcfeda3bdf6f5dda78056004a7c326321e9b";
+    sha256 = "1irm8asp6plk9xw3ksf4fqnim8h0vj3h96w638lx71pga1h4zvmy";
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ openssl boost zlib rippled ];
+  buildInputs = [ openssl boost zlib icu rippled ];
 
   hardeningDisable = ["format"];
 
-  preConfigure = ''
-    export CXX="$(command -v $CXX)"
-    export CC="$(command -v $CC)"
-  '';
+  cmakeFlags = [
+    "-Dep_procs=1"
+  ];
 
   installPhase = ''
+    runHook preInstall
     install -D validator-keys $out/bin/validator-keys
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Generate master and ephemeral rippled validator keys";
     homepage = "https://github.com/ripple/validator-keys-tool";
-    maintainers = with maintainers; [ offline ];
+    maintainers = with maintainers; [ offline rmcgibbo ];
     license = licenses.isc;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/servers/routinator/default.nix b/nixpkgs/pkgs/servers/routinator/default.nix
index f1e705b0693e..4d326c0bd621 100644
--- a/nixpkgs/pkgs/servers/routinator/default.nix
+++ b/nixpkgs/pkgs/servers/routinator/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, rustPlatform }:
+{ stdenv, lib, fetchFromGitHub, rustPlatform, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "routinator";
@@ -11,6 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-JwPAwhD+Pkx8Kx24m7z/RbEvDnI2YR8dnTgAV7TMsFE=";
   };
 
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
   cargoSha256 = "sha256-lhSSyJxxHc0t43xoDMtr/lSVL0xZl6poPYiyYXNvKKQ=";
 
   meta = with lib; {
@@ -18,6 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/NLnetLabs/routinator";
     license = licenses.bsd3;
     maintainers = with maintainers; [ _0x4A6F ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/rtsp-simple-server/default.nix b/nixpkgs/pkgs/servers/rtsp-simple-server/default.nix
index b5861ce32216..76ddcf3346e4 100644
--- a/nixpkgs/pkgs/servers/rtsp-simple-server/default.nix
+++ b/nixpkgs/pkgs/servers/rtsp-simple-server/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rtsp-simple-server";
-  version = "0.14.0";
+  version = "0.15.3";
 
   src = fetchFromGitHub {
     owner = "aler9";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9PjITPuCndz/EuFEt9docmWN93TwZQbnyHV161hUwS0=";
+    sha256 = "sha256-eY3XtGmHp7TM+lXC9tdd51x7sLuuZfBDJxTZ79Ye0Qs=";
   };
 
-  vendorSha256 = "sha256-6tp1hN1dRKm523IegMpsTO+/gktywqdNZflUbE4TPuU=";
+  vendorSha256 = "sha256-SiWcOI1XxrwwTAzp8HC5zOO5e2oSWBMFRYsW2RwPA5I=";
 
   # Tests need docker
   doCheck = false;
diff --git a/nixpkgs/pkgs/servers/sabnzbd/default.nix b/nixpkgs/pkgs/servers/sabnzbd/default.nix
index 5f1f8e6230ed..14aa161069c1 100644
--- a/nixpkgs/pkgs/servers/sabnzbd/default.nix
+++ b/nixpkgs/pkgs/servers/sabnzbd/default.nix
@@ -20,17 +20,18 @@ let
   ]);
   path = lib.makeBinPath [ par2cmdline unrar unzip p7zip ];
 in stdenv.mkDerivation rec {
-  version = "3.1.1";
+  version = "3.2.1";
   pname = "sabnzbd";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0m39r2il7d014kf2p6v28lw2hzshm6bhhdchqa8wzyvvmygqmwf2";
+    sha256 = "sha256-y2uaXa2DPZHBLukAdwKTwXauaJHX5Uft35vsthzGwME=";
   };
 
-  buildInputs = [ pythonEnv makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ pythonEnv ];
 
   installPhase = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/servers/search/elasticsearch/6.x.nix b/nixpkgs/pkgs/servers/search/elasticsearch/6.x.nix
index 86230e11cb98..3558fd5935e4 100644
--- a/nixpkgs/pkgs/servers/search/elasticsearch/6.x.nix
+++ b/nixpkgs/pkgs/servers/search/elasticsearch/6.x.nix
@@ -35,7 +35,8 @@ stdenv.mkDerivation (rec {
       "ES_CLASSPATH=\"\$ES_CLASSPATH:$out/\$additional_classpath_directory/*\""
   '';
 
-  buildInputs = [ makeWrapper jre_headless util-linux ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre_headless util-linux ]
              ++ optional enableUnfree zlib;
 
   installPhase = ''
@@ -61,7 +62,7 @@ stdenv.mkDerivation (rec {
   };
 } // optionalAttrs enableUnfree {
   dontPatchELF = true;
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
   runtimeDependencies = [ zlib ];
   postFixup = ''
     for exe in $(find $out/modules/x-pack-ml/platform/linux-x86_64/bin -executable -type f); do
diff --git a/nixpkgs/pkgs/servers/search/elasticsearch/7.x.nix b/nixpkgs/pkgs/servers/search/elasticsearch/7.x.nix
index 6a51e5ea62f8..f808b6985b47 100644
--- a/nixpkgs/pkgs/servers/search/elasticsearch/7.x.nix
+++ b/nixpkgs/pkgs/servers/search/elasticsearch/7.x.nix
@@ -46,7 +46,8 @@ stdenv.mkDerivation (rec {
       "ES_CLASSPATH=\"\$ES_CLASSPATH:$out/\$additional_classpath_directory/*\""
   '';
 
-  buildInputs = [ makeWrapper jre_headless util-linux ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre_headless util-linux ]
              ++ optional enableUnfree zlib;
 
   installPhase = ''
@@ -72,7 +73,7 @@ stdenv.mkDerivation (rec {
   };
 } // optionalAttrs enableUnfree {
   dontPatchELF = true;
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
   runtimeDependencies = [ zlib ];
   postFixup = ''
     for exe in $(find $out/modules/x-pack-ml/platform/linux-x86_64/bin -executable -type f); do
diff --git a/nixpkgs/pkgs/servers/search/elasticsearch/plugins.nix b/nixpkgs/pkgs/servers/search/elasticsearch/plugins.nix
index c51b0d209845..19aac337057f 100644
--- a/nixpkgs/pkgs/servers/search/elasticsearch/plugins.nix
+++ b/nixpkgs/pkgs/servers/search/elasticsearch/plugins.nix
@@ -21,7 +21,7 @@ let
       # Work around the "unpacker appears to have produced no directories"
       # case that happens when the archive doesn't have a subdirectory.
       setSourceRoot = "sourceRoot=$(pwd)";
-      buildInputs = [ unzip ];
+      nativeBuildInputs = [ unzip ];
       meta = a.meta // {
         platforms = elasticsearch.meta.platforms;
         maintainers = (a.meta.maintainers or []) ++ (with lib.maintainers; [ offline ]);
diff --git a/nixpkgs/pkgs/servers/search/groonga/default.nix b/nixpkgs/pkgs/servers/search/groonga/default.nix
index b5c553b116e2..ea6fd9394579 100644
--- a/nixpkgs/pkgs/servers/search/groonga/default.nix
+++ b/nixpkgs/pkgs/servers/search/groonga/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
 
   pname = "groonga";
-  version = "10.1.1";
+  version = "11.0.0";
 
   src = fetchurl {
     url    = "https://packages.groonga.org/source/groonga/${pname}-${version}.tar.gz";
-    sha256 = "sha256-9NKyY+oliGIJQaNHdHOs+1GAfdZ0sy+mbQFrRNXpjLM=";
+    sha256 = "sha256-kgQAFa4Orvfms/trjaMrXULYy7nV+nsmLPpyZAq3cDY=";
   };
 
   buildInputs = with lib;
diff --git a/nixpkgs/pkgs/servers/search/solr/default.nix b/nixpkgs/pkgs/servers/search/solr/default.nix
index 2b22c38143c7..479a7616ae15 100644
--- a/nixpkgs/pkgs/servers/search/solr/default.nix
+++ b/nixpkgs/pkgs/servers/search/solr/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     description = "Open source enterprise search platform from the Apache Lucene project";
     license = licenses.asl20;
     platforms = platforms.all;
-    maintainers = with maintainers; [ domenkozar aanderse ];
+    maintainers = with maintainers; [ aanderse ];
   };
 
 }
diff --git a/nixpkgs/pkgs/servers/ser2net/default.nix b/nixpkgs/pkgs/servers/ser2net/default.nix
index a751e0872ee7..ce14e5d89650 100644
--- a/nixpkgs/pkgs/servers/ser2net/default.nix
+++ b/nixpkgs/pkgs/servers/ser2net/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ser2net";
-  version = "4.3.2";
+  version = "4.3.3";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fA4rtFZ2lhGAwY3KUl/Jk8gjueI761J1QRdivMtbqX4=";
+    sha256 = "sha256-p8iQifCf/IXXPdbjB3pgcw8FgkqRLShHSSeTzJ83Ecg=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/servers/sickbeard/sickgear.nix b/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
index d9a3332e0214..85ed2808d787 100644
--- a/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
+++ b/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
   pythonEnv = python2.withPackages(ps: with ps; [ cheetah ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "0.23.10";
+  version = "0.23.15";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    sha256 = "sha256-EkExTDU7T7FYZrDtF0AF8wjn9fp8y9SLmINYGv8zvXk=";
+    sha256 = "sha256-xZ2SgYSEamh+Z64VKvIemqJLH/WjJHFji5qIameF5hM=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/servers/sonarr/default.nix b/nixpkgs/pkgs/servers/sonarr/default.nix
index a1803abe6a8c..cdaa96464e7b 100644
--- a/nixpkgs/pkgs/servers/sonarr/default.nix
+++ b/nixpkgs/pkgs/servers/sonarr/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, mono, libmediainfo, sqlite, curl, makeWrapper, ... }:
+{ lib, stdenv, fetchurl, mono, libmediainfo, sqlite, curl, makeWrapper, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "sonarr";
-  version = "2.0.0.5344";
+  version = "3.0.5.1144";
 
   src = fetchurl {
-    url = "https://download.sonarr.tv/v2/master/mono/NzbDrone.master.${version}.mono.tar.gz";
-    sha256 = "0bsxf7m2dir7gi0cfn8vdasr11q224b9mp6cixak9ss5zafwn59a";
+    url = "https://download.sonarr.tv/v3/main/${version}/Sonarr.main.${version}.linux.tar.gz";
+    sha256 = "1ajqh3hvjfsbs6rb2f8dnndxsycmlzamp0cwjwkh1j2dinbzdbvp";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -14,17 +14,21 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
     cp -r * $out/bin/
-
     makeWrapper "${mono}/bin/mono" $out/bin/NzbDrone \
-      --add-flags "$out/bin/NzbDrone.exe" \
+      --add-flags "$out/bin/Sonarr.exe" \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
           curl sqlite libmediainfo ]}
   '';
 
+  passthru = {
+    updateScript = "./update.sh";
+    tests.smoke-test = nixosTests.sonarr;
+  };
+
   meta = {
     description = "Smart PVR for newsgroup and bittorrent users";
     homepage = "https://sonarr.tv/";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ fadenb purcell ];
     platforms = lib.platforms.all;
   };
diff --git a/nixpkgs/pkgs/servers/sonarr/update.sh b/nixpkgs/pkgs/servers/sonarr/update.sh
new file mode 100755
index 000000000000..faa4f65cfc8f
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sonarr/update.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts
+
+latestTag=$(curl https://api.github.com/repos/Sonarr/Sonarr/tags | jq -r '.[] | .name' | sort --version-sort | tail -1)
+version="$(expr $latestTag : 'v\(.*\)')"
+
+update-source-version sonarr "$version"
diff --git a/nixpkgs/pkgs/servers/sozu/default.nix b/nixpkgs/pkgs/servers/sozu/default.nix
index 8d3e4e1388b2..057bce2e4b03 100644
--- a/nixpkgs/pkgs/servers/sozu/default.nix
+++ b/nixpkgs/pkgs/servers/sozu/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sozu";
-  version = "0.11.50";
+  version = "0.11.56";
 
   src = fetchFromGitHub {
     owner = "sozu-proxy";
     repo = pname;
     rev = version;
-    sha256 = "1srg2b8vwc4vp07kg4fizqj1rbm9hvf6hj1mjdh6yvb9cpbw3jz7";
+    sha256 = "sha256-/XyBzhZCsX9sGk+iTFlDnblWfDCZdI4b9yfo4Z+Wp1U=";
   };
 
-  cargoSha256 = "5WOigCiQZQ5DaTd15vV8pUh8Xl3UIe9yLG1ptUtY+iA=";
+  cargoSha256 = "sha256-F5EjBWHBNaQipxCi9Kiz5UTPMU0DuRf15NIVVvhiRxY=";
 
   buildInputs =
     lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
diff --git a/nixpkgs/pkgs/servers/sql/dolt/default.nix b/nixpkgs/pkgs/servers/sql/dolt/default.nix
index 6f6b5c390744..7d9009f8c654 100644
--- a/nixpkgs/pkgs/servers/sql/dolt/default.nix
+++ b/nixpkgs/pkgs/servers/sql/dolt/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
     pname = "dolt";
-    version = "0.22.12";
+    version = "0.24.1";
 
     src = fetchFromGitHub {
         owner = "liquidata-inc";
         repo = "dolt";
         rev = "v${version}";
-        sha256 = "sha256-SYgBy2WGP6ssMDohnbflnd2XpF8iwmxoTTlHQYc1+Wo=";
+        sha256 = "sha256-z2F6ru2LNATiI4rSImbvwgxqKxuj8kwzjhwSbsPDBEs=";
     };
 
     modRoot = "./go";
     subPackages = [ "cmd/dolt" "cmd/git-dolt" "cmd/git-dolt-smudge" ];
-  vendorSha256 = "sha256-Q87cGO82EmehpuMR3SCW9oF8DtaGURp4coLec4Rv2Js=";
+  vendorSha256 = "sha256-JO2hGrKbt+5Eh7v7LCZrPBK84Q9gjquchlZ5MfMY3uY=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix
index 37c697f3676e..22110f3b4f05 100644
--- a/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix
+++ b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Client library that can be used to connect to MySQL or MariaDB";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ globin ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/servers/sql/monetdb/default.nix b/nixpkgs/pkgs/servers/sql/monetdb/default.nix
index 80033e406ee3..0cf704d5f2a9 100644
--- a/nixpkgs/pkgs/servers/sql/monetdb/default.nix
+++ b/nixpkgs/pkgs/servers/sql/monetdb/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "monetdb";
-  version = "11.39.11";
+  version = "11.39.13";
 
   src = fetchurl {
     url = "https://dev.monetdb.org/downloads/sources/archive/MonetDB-${version}.tar.bz2";
-    sha256 = "1b70r4b5m0r0xpy7i76xx0xsmwagsjdcp5j6nqfjcyn1m65ydzvs";
+    sha256 = "sha256-e30Vykwk6U83/0pS3OWPJ2Oq2SAtNc1S6c1ZO42k39c=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/servers/sql/mysql/jdbc/default.nix b/nixpkgs/pkgs/servers/sql/mysql/jdbc/default.nix
index 5aab3000f374..6b22185cd800 100644
--- a/nixpkgs/pkgs/servers/sql/mysql/jdbc/default.nix
+++ b/nixpkgs/pkgs/servers/sql/mysql/jdbc/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0dfjshrrx0ndfb6xbdpwhn1f1jkw0km57rgpar0ny8ixmgdnlwnm";
   };
 
-  buildInputs = [ unzip ant ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ ant ];
 
   meta = {
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/servers/sql/patroni/default.nix b/nixpkgs/pkgs/servers/sql/patroni/default.nix
index 8da0213a2aa8..e02d386126ae 100644
--- a/nixpkgs/pkgs/servers/sql/patroni/default.nix
+++ b/nixpkgs/pkgs/servers/sql/patroni/default.nix
@@ -5,13 +5,13 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "patroni";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "zalando";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IlRltJrEMrRiwVVMYQywb0MqwEoL8MX3do2GlHXjuPc=";
+    sha256 = "048g211njwmgl2v7nx6x5x82b4bbp35n234z7ah10aybm3yrxnc7";
   };
 
   # cdiff renamed to ydiff; remove when patroni source reflects this.
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/default.nix b/nixpkgs/pkgs/servers/sql/postgresql/default.nix
index 27345616f895..d3cc2304c63b 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/default.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/default.nix
@@ -35,12 +35,12 @@ let
     setOutputFlags = false; # $out retains configureFlags :-/
 
     buildInputs =
-      [ zlib readline openssl libxml2 makeWrapper ]
+      [ zlib readline openssl libxml2 ]
       ++ lib.optionals icuEnabled [ icu ]
       ++ lib.optionals enableSystemd [ systemd ]
       ++ lib.optionals (!stdenv.isDarwin) [ libossp_uuid ];
 
-    nativeBuildInputs = lib.optionals icuEnabled [ pkg-config ];
+    nativeBuildInputs = [ makeWrapper ] ++ lib.optionals icuEnabled [ pkg-config ];
 
     enableParallelBuilding = !stdenv.isDarwin;
 
@@ -192,54 +192,55 @@ let
 in self: {
 
   postgresql_9_5 = self.callPackage generic {
-    version = "9.5.24";
+    version = "9.5.25";
     psqlSchema = "9.5";
-    sha256 = "0an2k4m1da96897hyxlff8p4p63wg4dffwsfg57aib7mp4yzsp06";
+    sha256 = "00yny0sskxrqk4ji2phgv3iqxd1aiy6rh660k73s4s1pn9gcaa3n";
     this = self.postgresql_9_5;
     thisAttr = "postgresql_9_5";
     inherit self;
   };
 
   postgresql_9_6 = self.callPackage generic {
-    version = "9.6.20";
+    version = "9.6.21";
     psqlSchema = "9.6";
-    sha256 = "1dkv916y7vrfbygrfbfvs6y3fxaysnh32i5j88nvcnnl16jcn21x";
+    sha256 = "0d0ngpadf1i7c0i2psaxcbmiwx8334ibcsn283n9fp4853pyl3wk";
     this = self.postgresql_9_6;
     thisAttr = "postgresql_9_6";
     inherit self;
   };
 
   postgresql_10 = self.callPackage generic {
-    version = "10.15";
+    version = "10.16";
     psqlSchema = "10.0"; # should be 10, but changing it is invasive
-    sha256 = "0zhzj9skag1pgqas2rnd217vj41ilaalqna17j47gyngpvhbqmjr";
+    sha256 = "1cvv8qw0gkkczqhiwx6ns7w88dwkvdz4cvb2d4ff14363f5p2p53";
     this = self.postgresql_10;
     thisAttr = "postgresql_10";
     inherit self;
+    icu = self.icu67;
   };
 
   postgresql_11 = self.callPackage generic {
-    version = "11.10";
+    version = "11.11";
     psqlSchema = "11.1"; # should be 11, but changing it is invasive
-    sha256 = "16bqp6ds37kbwqx7mk5gg3y6gv59wq6xz33iqwxldzk20vwd5rhk";
+    sha256 = "0v0qk298nxmpzpgsxcsxma328hdkyzd7fwjs0zsn6zavl5zpnq20";
     this = self.postgresql_11;
     thisAttr = "postgresql_11";
     inherit self;
   };
 
   postgresql_12 = self.callPackage generic {
-    version = "12.5";
+    version = "12.6";
     psqlSchema = "12";
-    sha256 = "15gzg778da23sbfmy7sqg443f9ny480301lm7i3vay4m3ls2a3dx";
+    sha256 = "028asz92mi3706zabfs8w9z03mzyx62d1l71qy9zdwfabj6xjzfz";
     this = self.postgresql_12;
     thisAttr = "postgresql_12";
     inherit self;
   };
 
   postgresql_13 = self.callPackage generic {
-    version = "13.1";
+    version = "13.2";
     psqlSchema = "13";
-    sha256 = "07z6zwr58dckaa97yl9ml240z83d1lhgaxw9aq49i8lsp21mqd0j";
+    sha256 = "1z5d847jnajcfr3wa6jn52a8xjhamvwzmz18xlm5nvxqip8grmsz";
     this = self.postgresql_13;
     thisAttr = "postgresql_13";
     inherit self;
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 7459da6d6cd3..ad1d25a3cec3 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_auto_failover";
-  version = "1.4.2";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "citusdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "030vm83ksfi4daypr4hamvvfs4g1ckww4ldg7rrk6c6hqkppykpa";
+    sha256 = "14bh3cqkdd1z16iy0lmv8a3f8gmmink1nzhf5jhkd0n6g7r65p6d";
   };
 
   buildInputs = [ postgresql openssl zlib readline ];
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "PostgreSQL extension and service for automated failover and high-availability";
     homepage = "https://github.com/citusdata/pg_auto_failover";
+    changelog = "https://github.com/citusdata/pg_auto_failover/raw/v${version}/CHANGELOG.md";
     maintainers = [ maintainers.marsam ];
     platforms = postgresql.meta.platforms;
     license = licenses.postgresql;
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix
index c1aefa1770ff..74cb0674f32c 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix
@@ -2,15 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_cron";
-  version = "1.3.0";
+  version = "1.3.1";
 
   buildInputs = [ postgresql ];
 
   src = fetchFromGitHub {
     owner  = "citusdata";
     repo   = pname;
-    rev    = "refs/tags/v${version}";
-    sha256 = "1hvd0nfaq5q9yfxfcb0fbrjbdal06adjplvmaag88a0msdlirl7z";
+    rev    = "v${version}";
+    sha256 = "0vhqm9xi84v21ijlbi3fznj799j81mmc9kaawhwn0djhxcs2symd";
   };
 
   installPhase = ''
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Run Cron jobs through PostgreSQL";
     homepage    = "https://github.com/citusdata/pg_cron";
+    changelog   = "https://github.com/citusdata/pg_cron/raw/v${version}/CHANGELOG.md";
     maintainers = with maintainers; [ thoughtpolice ];
     platforms   = postgresql.meta.platforms;
     license     = licenses.postgresql;
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
index d6df5e4ba0d5..8e9e06d7ef02 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 = "1.15.2";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mYFItrFC0BeRwLfZA1SAV+4rvrNrx75lTWS7w2ZDHag=";
+    sha256 = "sha256-ZZvRrt2JaAWruAT4FXB6ChS0jLKpUEDCF2UmAAH4BRQ=";
   };
 
   buildInputs = [ postgresql ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
index ceb9cc9d8af2..65107191938d 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "repmgr";
-  version = "5.1.0";
+  version = "5.2.1";
 
   src = fetchFromGitHub {
     owner = "2ndQuadrant";
     repo = "repmgr";
     rev = "v${version}";
-    sha256 = "1igcy98ggwyx8zg4g4kz7xb32b7vc3h668r5wbfk4w49x9v97f4m";
+    sha256 = "sha256-hIhVjSSJAgH/eXiuz0xlTFgp9q+Y41ICeCrRFGss3mk=";
   };
 
   nativeBuildInputs = [ flex ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index d10907805aa9..505aff666781 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "timescaledb";
-  version = "2.0.1";
+  version = "2.1.1";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner  = "timescale";
     repo   = "timescaledb";
     rev    = "refs/tags/${version}";
-    sha256 = "105zc5m3zvnrqr8409qdbycb4yp7znxmna76ri1m2djkdp5rh4q1";
+    sha256 = "0mjqy0d60l62vqqbrayj6270173501i6aqgnkczywrqyzqw8522l";
   };
 
   # -DWARNINGS_AS_ERRORS=OFF to be removed once https://github.com/timescale/timescaledb/issues/2770 is fixed in upstream
diff --git a/nixpkgs/pkgs/servers/squid/default.nix b/nixpkgs/pkgs/servers/squid/default.nix
index 59da5a80a37d..5c980f7e401b 100644
--- a/nixpkgs/pkgs/servers/squid/default.nix
+++ b/nixpkgs/pkgs/servers/squid/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "squid";
-  version = "4.13";
+  version = "4.14";
 
   src = fetchurl {
     url = "http://www.squid-cache.org/Versions/v4/${pname}-${version}.tar.xz";
-    sha256 = "1q1ywpic6s7dfjj3cwzcfgscc4zq0aih462gyas7j1z683ss14b8";
+    sha256 = "sha256-8Ql9qmQ0iXwVm8EAl4tRNHwDOQQWEIRdCvoSgVFyn/w=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/servers/swego/default.nix b/nixpkgs/pkgs/servers/swego/default.nix
index 91b0995466a0..c71d705a00e5 100644
--- a/nixpkgs/pkgs/servers/swego/default.nix
+++ b/nixpkgs/pkgs/servers/swego/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "swego";
-  version = "0.9";
+  version = "0.94";
 
   src = fetchFromGitHub {
     owner = "nodauf";
     repo = "Swego";
     rev = "v${version}";
-    sha256 = "sha256-Wt+2spZfgBWzZEQP+SiDYI5DdLKrwFMgYT1ukbF4x0I=";
+    sha256 = "sha256-PquedlfBzNSXa3l6IIHlf6Xb4M4uEb1XCKRfN229IEA=";
   };
 
-  vendorSha256 = "sha256-EPcyhnTis7g0uVl+cJdG7iMbisjh7iuMhpzM/SSOeFI=";
+  vendorSha256 = "sha256-TK1LN9EmVH95jPO6K7gtCwdnW4WOKH3K7Q0FhgNMVUQ=";
 
   postInstall = ''
     mv $out/bin/src $out/bin/$pname
diff --git a/nixpkgs/pkgs/servers/tailscale/default.nix b/nixpkgs/pkgs/servers/tailscale/default.nix
index eb47593c5966..d051395027b3 100644
--- a/nixpkgs/pkgs/servers/tailscale/default.nix
+++ b/nixpkgs/pkgs/servers/tailscale/default.nix
@@ -1,21 +1,21 @@
-{ lib, buildGoModule, fetchFromGitHub, makeWrapper, iptables, iproute }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, iptables, iproute2 }:
 
 buildGoModule rec {
   pname = "tailscale";
-  version = "1.4.4";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    sha256 = "sha256-zrKkBbsvIqJkPysKx3nJ3EIbePWMZCX9eegekAoqMqk=";
+    sha256 = "07dzcqd98nsrdv72wp93q6f23mn3pfmpyyi61dx6c26w0j5n4r0p";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
   CGO_ENABLED = 0;
 
-  vendorSha256 = "sha256-WvojOnGQ/ssBkoQwIlOVsaEUJmi2ugqgtTAVKJg8Spk=";
+  vendorSha256 = "0wbw9pc0cv05bw2gsps3099zipwjj3r23vyf87qy6g21r08xrrm8";
 
   doCheck = false;
 
@@ -30,7 +30,7 @@ buildGoModule rec {
 
   postInstall = ''
     wrapProgram $out/bin/tailscaled --prefix PATH : ${
-      lib.makeBinPath [ iproute iptables ]
+      lib.makeBinPath [ iproute2 iptables ]
     }
     sed -i -e "s#/usr/sbin#$out/bin#" -e "/^EnvironmentFile/d" ./cmd/tailscaled/tailscaled.service
     install -D -m0444 -t $out/lib/systemd/system ./cmd/tailscaled/tailscaled.service
diff --git a/nixpkgs/pkgs/servers/tautulli/default.nix b/nixpkgs/pkgs/servers/tautulli/default.nix
index 61f9c7851855..9c1bc1cc3de3 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.6.1";
+  version = "2.6.8";
   format = "other";
 
   pythonPath = [ setuptools ];
@@ -12,7 +12,7 @@ buildPythonApplication rec {
     owner = "Tautulli";
     repo = pname;
     rev = "v${version}";
-    sha256 = "QHpVIOtGFzNqAEcBCv48YWO4pYatbTe/CWwcwjbj+34=";
+    sha256 = "0pkki72maxnrp3frninw2qbxyf76rvkza23k3s8fppandkr7qpvj";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/tegola/default.nix b/nixpkgs/pkgs/servers/tegola/default.nix
index f2161d5d47ea..5e3aa2d0ef67 100644
--- a/nixpkgs/pkgs/servers/tegola/default.nix
+++ b/nixpkgs/pkgs/servers/tegola/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "tegola";
-  version = "0.12.1";
+  version = "0.13.0";
 
   goPackagePath = "github.com/go-spatial/tegola";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "go-spatial";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x8wv9xx0dafn55y0i7x43plg1blnslzj0l5047laipw7gnmfwad";
+    sha256 = "sha256-NA2KwyhLLIusf6a6v+OcmHz91kPcIhvG9PRmRk8h+fQ=";
   };
 
   buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/cmd/tegola/cmd.Version=${version}" ];
diff --git a/nixpkgs/pkgs/servers/teleport/default.nix b/nixpkgs/pkgs/servers/teleport/default.nix
index 100b021d9cea..2350311b9db2 100644
--- a/nixpkgs/pkgs/servers/teleport/default.nix
+++ b/nixpkgs/pkgs/servers/teleport/default.nix
@@ -1,31 +1,31 @@
 # This file was generated by https://github.com/kamilchm/go2nix v2.0-dev
-{ lib, buildGoPackage, zip, fetchFromGitHub }:
+{ lib, buildGoPackage, zip, fetchFromGitHub, makeWrapper, xdg-utils }:
 let
   webassets = fetchFromGitHub {
     owner = "gravitational";
     repo = "webassets";
-    rev = "2d79788dbcd005bdcfe5b5120007d0faf8f1fc82";
-    sha256 = "001a3bx8yyx1hq8y5yiy1jzp122q8gcl369lj0609gaxp6dk5bdw";
+    rev = "8ace0cfcc6867651bed3fd5b5f35aaa2a80e1106";
+    sha256 = "sha256-mzvYysCFMvWHo8Y4cmhAju62jjpe92j564gc12BSdZA=";
   };
 in
 
 buildGoPackage rec {
   pname = "teleport";
-  version = "5.1.2";
+  version = "5.2.1";
 
   # This repo has a private submodule "e" which fetchgit cannot handle without failing.
   src = fetchFromGitHub {
     owner = "gravitational";
     repo = "teleport";
     rev = "v${version}";
-    sha256 = "0h1hn2dpdsmhxac06gn6787z2mnfcwb3wn0c2l7l2qhw6iqpgmvh";
+    sha256 = "sha256-8WEVH+04y1/s9KpBlK/LrgHG7qTpu2LqtanKKdi9N08=";
   };
 
   goPackagePath = "github.com/gravitational/teleport";
 
   subPackages = [ "tool/tctl" "tool/teleport" "tool/tsh" ];
 
-  nativeBuildInputs = [ zip ];
+  nativeBuildInputs = [ zip makeWrapper ];
 
   postBuild = ''
     pushd .
@@ -41,21 +41,30 @@ buildGoPackage rec {
     popd
   '';
 
-  dontStrip = true;
+  # Reduce closure size for client machines
+  outputs = [ "out" "client" ];
+
+  buildTargets = [ "full" ];
+
+  postInstall = ''
+    install -Dm755 -t $client/bin $out/bin/tsh
+    wrapProgram $out/bin/tsh --prefix PATH : ${xdg-utils}/bin
+  '';
 
   doInstallCheck = true;
 
   installCheckPhase = ''
     $out/bin/tsh version | grep ${version} > /dev/null
+    $client/bin/tsh version | grep ${version} > /dev/null
     $out/bin/tctl version | grep ${version} > /dev/null
     $out/bin/teleport version | grep ${version} > /dev/null
   '';
 
-  meta = {
+  meta = with lib; {
     description = "A SSH CA management suite";
     homepage = "https://gravitational.com/teleport/";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ sigma tomberek ];
-    platforms = lib.platforms.unix;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ sigma tomberek freezeboy ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/servers/traefik/default.nix b/nixpkgs/pkgs/servers/traefik/default.nix
index d01252781768..ca8d7d7412dc 100644
--- a/nixpkgs/pkgs/servers/traefik/default.nix
+++ b/nixpkgs/pkgs/servers/traefik/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "traefik";
-  version = "2.4.2";
+  version = "2.4.8";
 
   src = fetchzip {
     url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
-    sha256 = "sha256-W6NtlIxeRg432RTiaJHu25Izv1VWNqYetzilCr2gPjU=";
+    sha256 = "sha256-hCBhJazI0Y1qQjULF+CBfUfz6PvkgLXafvXKR6iKHmU=";
     stripRoot = false;
   };
 
-  vendorSha256 = "sha256-kwA0MtmlUEO1eQFr4NpdsMikEFQc3N3Meolw/xw9dgM=";
+  vendorSha256 = "sha256-MW/JG4TbUvbo4dQnQbKIbLlLgkQvOqsfagpXILJ/BYQ=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/trezord/default.nix b/nixpkgs/pkgs/servers/trezord/default.nix
index cc0fb0d74217..d4f9beecfb7d 100644
--- a/nixpkgs/pkgs/servers/trezord/default.nix
+++ b/nixpkgs/pkgs/servers/trezord/default.nix
@@ -1,7 +1,9 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 , trezor-udev-rules
+, AppKit
 }:
 
 buildGoModule rec {
@@ -9,15 +11,16 @@ buildGoModule rec {
   version = "2.0.30";
 
   src = fetchFromGitHub {
-    owner  = "trezor";
-    repo   = "trezord-go";
-    rev    = "v${version}";
+    owner = "trezor";
+    repo = "trezord-go";
+    rev = "v${version}";
     sha256 = "1hzvk0wfgg7b4wpqjk3738yqxlv3pj5i7zxwm0jady2h97hmrqrr";
   };
 
   vendorSha256 = "0wb959xzyvr5zzjvkfqc422frmf97q5nr460f02wwx0pj6ch0y61";
 
-  propagatedBuildInputs = [ trezor-udev-rules ];
+  propagatedBuildInputs = lib.optionals stdenv.isLinux [ trezor-udev-rules ]
+    ++ lib.optionals stdenv.isDarwin [ AppKit ];
 
   meta = with lib; {
     description = "Trezor Communication Daemon aka Trezor Bridge";
diff --git a/nixpkgs/pkgs/servers/udpt/default.nix b/nixpkgs/pkgs/servers/udpt/default.nix
index b681727c08f9..3eb51b68b8cd 100644
--- a/nixpkgs/pkgs/servers/udpt/default.nix
+++ b/nixpkgs/pkgs/servers/udpt/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
     description = "A lightweight UDP torrent tracker";
     homepage = "https://naim94a.github.io/udpt";
     license = lib.licenses.gpl3;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
     maintainers = with lib.maintainers; [ makefu ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/ums/default.nix b/nixpkgs/pkgs/servers/ums/default.nix
index 61bb815892ad..3d4e4fdf51dc 100644
--- a/nixpkgs/pkgs/servers/ums/default.nix
+++ b/nixpkgs/pkgs/servers/ums/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
    };
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     cp -a . $out/
diff --git a/nixpkgs/pkgs/servers/urserver/default.nix b/nixpkgs/pkgs/servers/urserver/default.nix
index eee10d05826f..9047ea0ee34f 100644
--- a/nixpkgs/pkgs/servers/urserver/default.nix
+++ b/nixpkgs/pkgs/servers/urserver/default.nix
@@ -9,15 +9,16 @@
 
 stdenv.mkDerivation rec {
   pname = "urserver";
-  version = "3.6.0.745";
+  version = "3.9.0.2465";
 
   src = fetchurl {
-    url = "https://www.unifiedremote.com/static/builds/server/linux-x64/745/urserver-${version}.tar.gz";
-    sha256 = "1ib9317bg9n4knwnlbrn1wfkyrjalj8js3a6h7zlcl8h8xc0szc8";
+    url = "https://www.unifiedremote.com/static/builds/server/linux-x64/${builtins.elemAt (builtins.splitVersion version) 3}/urserver-${version}.tar.gz";
+    sha256 = "sha256-3DIroodWCMbq1fzPjhuGLk/2fY/qFxFISLzjkjJ4i90=";
   };
 
   nativeBuildInputs = [
     autoPatchelfHook
+    makeWrapper
   ];
 
   buildInputs = [
@@ -25,7 +26,6 @@ stdenv.mkDerivation rec {
     bluez
     libX11
     libXtst
-    makeWrapper
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/uwsgi/default.nix b/nixpkgs/pkgs/servers/uwsgi/default.nix
index bd74a6288774..ddfa6faf2438 100644
--- a/nixpkgs/pkgs/servers/uwsgi/default.nix
+++ b/nixpkgs/pkgs/servers/uwsgi/default.nix
@@ -5,7 +5,7 @@
 , systemd, withSystemd ? stdenv.isLinux
 , libcap, withCap ? stdenv.isLinux
 , python2, python3, ncurses
-, ruby, php, libmysqlclient
+, ruby, php
 }:
 
 let php-embed = php.override {
diff --git a/nixpkgs/pkgs/servers/varnish/dynamic.nix b/nixpkgs/pkgs/servers/varnish/dynamic.nix
index 20f8aa91ab65..6ad8288871b1 100644
--- a/nixpkgs/pkgs/servers/varnish/dynamic.nix
+++ b/nixpkgs/pkgs/servers/varnish/dynamic.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, varnish, docutils }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook269, pkg-config, varnish, docutils }:
 
 stdenv.mkDerivation rec {
   version = "0.4";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1n94slrm6vn3hpymfkla03gw9603jajclg84bjhwb8kxsk3rxpmk";
   };
 
-  nativeBuildInputs = [ pkg-config docutils autoreconfHook varnish.python ];
+  nativeBuildInputs = [ pkg-config docutils autoreconfHook269 varnish.python ];
   buildInputs = [ varnish ];
   postPatch = ''
     substituteInPlace Makefile.am --replace "''${LIBVARNISHAPI_DATAROOTDIR}/aclocal" "${varnish.dev}/share/aclocal"
diff --git a/nixpkgs/pkgs/servers/web-apps/bookstack/composer-env.nix b/nixpkgs/pkgs/servers/web-apps/bookstack/composer-env.nix
new file mode 100644
index 000000000000..b91be187f55c
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/bookstack/composer-env.nix
@@ -0,0 +1,238 @@
+# This file originates from composer2nix
+
+{ stdenv, lib, writeTextFile, fetchurl, php, unzip, phpPackages }:
+
+let
+  inherit (phpPackages) composer;
+  buildZipPackage = { name, src }:
+    stdenv.mkDerivation {
+      inherit name src;
+      buildInputs = [ unzip ];
+      buildCommand = ''
+        unzip $src
+        baseDir=$(find . -type d -mindepth 1 -maxdepth 1)
+        cd $baseDir
+        mkdir -p $out
+        mv * $out
+      '';
+    };
+
+  buildPackage =
+    { name
+    , src
+    , packages ? {}
+    , devPackages ? {}
+    , buildInputs ? []
+    , symlinkDependencies ? false
+    , executable ? false
+    , removeComposerArtifacts ? false
+    , postInstall ? ""
+    , noDev ? false
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , ...}@args:
+
+    let
+      reconstructInstalled = writeTextFile {
+        name = "reconstructinstalled.php";
+        executable = true;
+        text = ''
+          #! ${php}/bin/php
+          <?php
+          if(file_exists($argv[1]))
+          {
+              $composerLockStr = file_get_contents($argv[1]);
+
+              if($composerLockStr === false)
+              {
+                  fwrite(STDERR, "Cannot open composer.lock contents\n");
+                  exit(1);
+              }
+              else
+              {
+                  $config = json_decode($composerLockStr, true);
+
+                  if(array_key_exists("packages", $config))
+                      $allPackages = $config["packages"];
+                  else
+                      $allPackages = array();
+
+                  ${lib.optionalString (!noDev) ''
+                    if(array_key_exists("packages-dev", $config))
+                        $allPackages = array_merge($allPackages, $config["packages-dev"]);
+                  ''}
+
+                  $packagesStr = json_encode($allPackages, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
+                  print($packagesStr);
+              }
+          }
+          else
+              print("[]");
+          ?>
+        '';
+      };
+
+      constructBin = writeTextFile {
+        name = "constructbin.php";
+        executable = true;
+        text = ''
+          #! ${php}/bin/php
+          <?php
+          $composerJSONStr = file_get_contents($argv[1]);
+
+          if($composerJSONStr === false)
+          {
+              fwrite(STDERR, "Cannot open composer.json contents\n");
+              exit(1);
+          }
+          else
+          {
+              $config = json_decode($composerJSONStr, true);
+
+              if(array_key_exists("bin-dir", $config))
+                  $binDir = $config["bin-dir"];
+              else
+                  $binDir = "bin";
+
+              if(array_key_exists("bin", $config))
+              {
+                  if(!file_exists("vendor/".$binDir))
+                      mkdir("vendor/".$binDir);
+
+                  foreach($config["bin"] as $bin)
+                      symlink("../../".$bin, "vendor/".$binDir."/".basename($bin));
+              }
+          }
+          ?>
+        '';
+      };
+
+      bundleDependencies = dependencies:
+        lib.concatMapStrings (dependencyName:
+          let
+            dependency = dependencies.${dependencyName};
+          in
+          ''
+            ${if dependency.targetDir == "" then ''
+              vendorDir="$(dirname ${dependencyName})"
+              mkdir -p "$vendorDir"
+              ${if symlinkDependencies then
+                ''ln -s "${dependency.src}" "$vendorDir/$(basename "${dependencyName}")"''
+                else
+                ''cp -av "${dependency.src}" "$vendorDir/$(basename "${dependencyName}")"''
+              }
+            '' else ''
+              namespaceDir="${dependencyName}/$(dirname "${dependency.targetDir}")"
+              mkdir -p "$namespaceDir"
+              ${if symlinkDependencies then
+                ''ln -s "${dependency.src}" "$namespaceDir/$(basename "${dependency.targetDir}")"''
+              else
+                ''cp -av "${dependency.src}" "$namespaceDir/$(basename "${dependency.targetDir}")"''
+              }
+            ''}
+          '') (builtins.attrNames dependencies);
+
+      extraArgs = removeAttrs args [ "name" "packages" "devPackages" "buildInputs" ];
+    in
+    stdenv.mkDerivation ({
+      name = "composer-${name}";
+      buildInputs = [ php composer ] ++ buildInputs;
+
+      inherit unpackPhase buildPhase;
+
+      installPhase = ''
+        ${if executable then ''
+          mkdir -p $out/share/php
+          cp -av $src $out/share/php/$name
+          chmod -R u+w $out/share/php/$name
+          cd $out/share/php/$name
+        '' else ''
+          cp -av $src $out
+          chmod -R u+w $out
+          cd $out
+        ''}
+
+        # Remove unwanted files
+        rm -f *.nix
+
+        export HOME=$TMPDIR
+
+        # Remove the provided vendor folder if it exists
+        rm -Rf vendor
+
+        # If there is no composer.lock file, compose a dummy file.
+        # Otherwise, composer attempts to download the package.json file from
+        # the registry which we do not want.
+        if [ ! -f composer.lock ]
+        then
+            cat > composer.lock <<EOF
+        {
+            "packages": []
+        }
+        EOF
+        fi
+
+        # Reconstruct the installed.json file from the lock file
+        mkdir -p vendor/composer
+        ${reconstructInstalled} composer.lock > vendor/composer/installed.json
+
+        # Copy or symlink the provided dependencies
+        cd vendor
+        ${bundleDependencies packages}
+        ${lib.optionalString (!noDev) (bundleDependencies devPackages)}
+        cd ..
+
+        # Reconstruct autoload scripts
+        # We use the optimize feature because Nix packages cannot change after they have been built
+        # Using the dynamic loader for a Nix package is useless since there is nothing to dynamically reload.
+        composer dump-autoload --optimize ${lib.optionalString noDev "--no-dev"}
+
+        # Run the install step as a validation to confirm that everything works out as expected
+        composer install --optimize-autoloader ${lib.optionalString noDev "--no-dev"}
+
+        ${lib.optionalString executable ''
+          # Reconstruct the bin/ folder if we deploy an executable project
+          ${constructBin} composer.json
+          ln -s $(pwd)/vendor/bin $out/bin
+        ''}
+
+        ${lib.optionalString (!symlinkDependencies) ''
+          # Patch the shebangs if possible
+          if [ -d $(pwd)/vendor/bin ]
+          then
+              # Look for all executables in bin/
+              for i in $(pwd)/vendor/bin/*
+              do
+                  # Look for their location
+                  realFile=$(readlink -f "$i")
+
+                  # Restore write permissions
+                  chmod u+wx "$(dirname "$realFile")"
+                  chmod u+w "$realFile"
+
+                  # Patch shebang
+                  sed -e "s|#!/usr/bin/php|#!${php}/bin/php|" \
+                      -e "s|#!/usr/bin/env php|#!${php}/bin/php|" \
+                      "$realFile" > tmp
+                  mv tmp "$realFile"
+                  chmod u+x "$realFile"
+              done
+          fi
+        ''}
+
+        if [ "$removeComposerArtifacts" = "1" ]
+        then
+            # Remove composer stuff
+            rm -f composer.json composer.lock
+        fi
+
+        # Execute post install hook
+        runHook postInstall
+    '';
+  } // extraArgs);
+in
+{
+  composer = lib.makeOverridable composer;
+  buildZipPackage = lib.makeOverridable buildZipPackage;
+  buildPackage = lib.makeOverridable buildPackage;
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/bookstack/composition.nix b/nixpkgs/pkgs/servers/web-apps/bookstack/composition.nix
new file mode 100644
index 000000000000..0df6cdae4cf0
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/bookstack/composition.nix
@@ -0,0 +1,13 @@
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, noDev ? false}:
+
+let
+  composerEnv = import ./composer-env.nix {
+    inherit (pkgs) stdenv lib writeTextFile fetchurl php unzip phpPackages;
+  };
+in
+import ./php-packages.nix {
+  inherit composerEnv noDev;
+  inherit (pkgs) fetchurl fetchgit fetchhg fetchsvn;
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix b/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix
new file mode 100644
index 000000000000..9ab47ace6ad6
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix
@@ -0,0 +1,38 @@
+{ pkgs, system, lib, fetchFromGitHub, dataDir ? "/var/lib/bookstack" }:
+
+let
+  package = (import ./composition.nix {
+    inherit pkgs system;
+    noDev = true; # Disable development dependencies
+  }).overrideAttrs (attrs : {
+    installPhase = attrs.installPhase + ''
+      rm -R $out/storage $out/public/uploads
+      ln -s ${dataDir}/.env $out/.env
+      ln -s ${dataDir}/storage $out/storage
+      ln -s ${dataDir}/public/uploads $out/public/uploads
+    '';
+  });
+
+in package.override rec {
+  name = "bookstack";
+  version = "0.31.7";
+
+  src = fetchFromGitHub {
+    owner = "bookstackapp";
+    repo = name;
+    rev = "v${version}";
+    sha256 = "1jak6g2q4zbr0gxqj0bqhks687whmmw8ylzwm4saws7ikcxkwna4";
+  };
+
+  meta = with lib; {
+    description = "A platform to create documentation/wiki content built with PHP & Laravel";
+    longDescription = ''
+      A platform for storing and organising information and documentation.
+      Details for BookStack can be found on the official website at https://www.bookstackapp.com/.
+    '';
+    homepage = "https://www.bookstackapp.com/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ymarkus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix b/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix
new file mode 100644
index 000000000000..5edd0b68e868
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix
@@ -0,0 +1,897 @@
+{composerEnv, fetchurl, fetchgit ? null, fetchhg ? null, fetchsvn ? null, noDev ? false}:
+
+let
+  packages = {
+    "aws/aws-sdk-php" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "aws-aws-sdk-php-3e6143f5c12986d727307d5d19d6aec21575d903";
+        src = fetchurl {
+          url = https://api.github.com/repos/aws/aws-sdk-php/zipball/3e6143f5c12986d727307d5d19d6aec21575d903;
+          sha256 = "16hbw8gqscbc3bcvnfdsll6x1653lq2s4dga3d5jbpczil3ws9yb";
+        };
+      };
+    };
+    "barryvdh/laravel-dompdf" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "barryvdh-laravel-dompdf-30310e0a675462bf2aa9d448c8dcbf57fbcc517d";
+        src = fetchurl {
+          url = https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/30310e0a675462bf2aa9d448c8dcbf57fbcc517d;
+          sha256 = "1fnan9b2g4xhqqvlfsn3alb4nx5jjlrapgiad2kca13b3gizv7zr";
+        };
+      };
+    };
+    "barryvdh/laravel-snappy" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "barryvdh-laravel-snappy-1903ab84171072b6bff8d98eb58d38b2c9aaf645";
+        src = fetchurl {
+          url = https://api.github.com/repos/barryvdh/laravel-snappy/zipball/1903ab84171072b6bff8d98eb58d38b2c9aaf645;
+          sha256 = "1awr5kwj482qsh5wpg0q44fjqi7a9q26ghcc9wp1n9zm97y0rx7a";
+        };
+      };
+    };
+    "doctrine/cache" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "doctrine-cache-13e3381b25847283a91948d04640543941309727";
+        src = fetchurl {
+          url = https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727;
+          sha256 = "088fxbpjssp8x95qr3ip2iynxrimimrby03xlsvp2254vcyx94c5";
+        };
+      };
+    };
+    "doctrine/dbal" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "doctrine-dbal-47433196b6390d14409a33885ee42b6208160643";
+        src = fetchurl {
+          url = https://api.github.com/repos/doctrine/dbal/zipball/47433196b6390d14409a33885ee42b6208160643;
+          sha256 = "0bcg9494hr31902zcmq5kk7ji78yxk074d5bd9chxn9q0xz4g2h8";
+        };
+      };
+    };
+    "doctrine/event-manager" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "doctrine-event-manager-41370af6a30faa9dc0368c4a6814d596e81aba7f";
+        src = fetchurl {
+          url = https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f;
+          sha256 = "0pn2aiwl4fvv6fcwar9alng2yrqy8bzc58n4bkp6y2jnpw5gp4m8";
+        };
+      };
+    };
+    "doctrine/inflector" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "doctrine-inflector-9cf661f4eb38f7c881cac67c75ea9b00bf97b210";
+        src = fetchurl {
+          url = https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210;
+          sha256 = "0gkaw5aqkdppd7cz1n46kdms0bv8kzbnpjh75jnhv98p9fik7f24";
+        };
+      };
+    };
+    "doctrine/lexer" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "doctrine-lexer-e864bbf5904cb8f5bb334f99209b48018522f042";
+        src = fetchurl {
+          url = https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042;
+          sha256 = "11lg9fcy0crb8inklajhx3kyffdbx7xzdj8kwl21xsgq9nm9iwvv";
+        };
+      };
+    };
+    "dompdf/dompdf" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "dompdf-dompdf-db91d81866c69a42dad1d2926f61515a1e3f42c5";
+        src = fetchurl {
+          url = https://api.github.com/repos/dompdf/dompdf/zipball/db91d81866c69a42dad1d2926f61515a1e3f42c5;
+          sha256 = "10nsmaiqfk6wgv0l9wjsh7h8nigdfabygkhjk7wdbxdfvlvniddd";
+        };
+      };
+    };
+    "dragonmantank/cron-expression" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "dragonmantank-cron-expression-65b2d8ee1f10915efb3b55597da3404f096acba2";
+        src = fetchurl {
+          url = https://api.github.com/repos/dragonmantank/cron-expression/zipball/65b2d8ee1f10915efb3b55597da3404f096acba2;
+          sha256 = "07yqbhf6n4d818gvla60mgg23gichwiafd5ypd70w4b4dlbcxcpl";
+        };
+      };
+    };
+    "egulias/email-validator" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "egulias-email-validator-0dbf5d78455d4d6a41d186da50adc1122ec066f4";
+        src = fetchurl {
+          url = https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4;
+          sha256 = "00kwb8rhk1fq3a1i152xniipk3y907q1v5r3szqbkq5rz82dwbck";
+        };
+      };
+    };
+    "facade/flare-client-php" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "facade-flare-client-php-ef0f5bce23b30b32d98fd9bb49c6fa37b40eb546";
+        src = fetchurl {
+          url = https://api.github.com/repos/facade/flare-client-php/zipball/ef0f5bce23b30b32d98fd9bb49c6fa37b40eb546;
+          sha256 = "1car7k8zzkgib9wpi9lzw1dj9qgjak8s9dmiimxaigvb7q4bc5vk";
+        };
+      };
+    };
+    "facade/ignition" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "facade-ignition-b6aea4a99303d9d32afd486a285162a89af8a8a3";
+        src = fetchurl {
+          url = https://api.github.com/repos/facade/ignition/zipball/b6aea4a99303d9d32afd486a285162a89af8a8a3;
+          sha256 = "1dx6gf4qz6jf8hds3lyxs09zlr6ndl3d36212w2hr4b15ihmyszw";
+        };
+      };
+    };
+    "facade/ignition-contracts" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "facade-ignition-contracts-aeab1ce8b68b188a43e81758e750151ad7da796b";
+        src = fetchurl {
+          url = https://api.github.com/repos/facade/ignition-contracts/zipball/aeab1ce8b68b188a43e81758e750151ad7da796b;
+          sha256 = "0b5hv56758fh2y6fqbygwn94qgqwjan8d2s1i10m242x80h9jjiw";
+        };
+      };
+    };
+    "fideloper/proxy" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "fideloper-proxy-c073b2bd04d1c90e04dc1b787662b558dd65ade0";
+        src = fetchurl {
+          url = https://api.github.com/repos/fideloper/TrustedProxy/zipball/c073b2bd04d1c90e04dc1b787662b558dd65ade0;
+          sha256 = "05jzgjj4fy5p1smqj41b5qxj42zn0mnczvsaacni4fmq174mz4gy";
+        };
+      };
+    };
+    "filp/whoops" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "filp-whoops-df7933820090489623ce0be5e85c7e693638e536";
+        src = fetchurl {
+          url = https://api.github.com/repos/filp/whoops/zipball/df7933820090489623ce0be5e85c7e693638e536;
+          sha256 = "0azpv2r8hc9s5pbk9wh2qk52qzycsbvpijr8w68l311igpcj4f78";
+        };
+      };
+    };
+    "guzzlehttp/guzzle" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "guzzlehttp-guzzle-0aa74dfb41ae110835923ef10a9d803a22d50e79";
+        src = fetchurl {
+          url = https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79;
+          sha256 = "0gba1711dpi147fzi2ab2pg0k1g6zfanm5w5hf4c7w0b3h4ya5gj";
+        };
+      };
+    };
+    "guzzlehttp/promises" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "guzzlehttp-promises-60d379c243457e073cff02bc323a2a86cb355631";
+        src = fetchurl {
+          url = https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631;
+          sha256 = "0lvcr64bx9sb90qggxk7g7fsplz403gm3i8lnlcaifyjrlmdj5wb";
+        };
+      };
+    };
+    "guzzlehttp/psr7" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "guzzlehttp-psr7-53330f47520498c0ae1f61f7e2c90f55690c06a3";
+        src = fetchurl {
+          url = https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3;
+          sha256 = "0948mbbqn1xcz39diajhvlr9a7586vx3091kzx96m0z4ki3lhv7g";
+        };
+      };
+    };
+    "intervention/image" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "intervention-image-abbf18d5ab8367f96b3205ca3c89fb2fa598c69e";
+        src = fetchurl {
+          url = https://api.github.com/repos/Intervention/image/zipball/abbf18d5ab8367f96b3205ca3c89fb2fa598c69e;
+          sha256 = "1msfpr9bip69bmhg23ka2f43phgb6dq5z604j5psjh3xd86r6c5d";
+        };
+      };
+    };
+    "knplabs/knp-snappy" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "knplabs-knp-snappy-7bac60fb729147b7ccd8532c07df3f52a4afa8a4";
+        src = fetchurl {
+          url = https://api.github.com/repos/KnpLabs/snappy/zipball/7bac60fb729147b7ccd8532c07df3f52a4afa8a4;
+          sha256 = "0qbywknz3zwhk91yaqd5p6nf48hzk1zmyqgrc9nb9ys2v6wy6njz";
+        };
+      };
+    };
+    "laravel/framework" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "laravel-framework-d0e4731e92ca88f4a78fe9e0c2c426a3e8c063c8";
+        src = fetchurl {
+          url = https://api.github.com/repos/laravel/framework/zipball/d0e4731e92ca88f4a78fe9e0c2c426a3e8c063c8;
+          sha256 = "15zjpq6lbxs019vd0mm2nbfi91yyw40wsf5fl0jbw3s1ffvaq898";
+        };
+      };
+    };
+    "laravel/socialite" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "laravel-socialite-8d25d574b4f2005411c0b9cb527ef5e745c1b07d";
+        src = fetchurl {
+          url = https://api.github.com/repos/laravel/socialite/zipball/8d25d574b4f2005411c0b9cb527ef5e745c1b07d;
+          sha256 = "0ash56za1flniq9nnk3siyb8l0m2cjwn2n25315qfhmdgbxxjz68";
+        };
+      };
+    };
+    "league/commonmark" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "league-commonmark-11df9b36fd4f1d2b727a73bf14931d81373b9a54";
+        src = fetchurl {
+          url = https://api.github.com/repos/thephpleague/commonmark/zipball/11df9b36fd4f1d2b727a73bf14931d81373b9a54;
+          sha256 = "15chm1sa65b58b47am00ik03s2agnx49i8yww3mhqlijvbrjvxc3";
+        };
+      };
+    };
+    "league/flysystem" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "league-flysystem-9be3b16c877d477357c015cec057548cf9b2a14a";
+        src = fetchurl {
+          url = https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a;
+          sha256 = "0mhlr6l75j58xwbadq30x58s67434195zlpdax6ix4nkr7fc907j";
+        };
+      };
+    };
+    "league/flysystem-aws-s3-v3" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "league-flysystem-aws-s3-v3-4e25cc0582a36a786c31115e419c6e40498f6972";
+        src = fetchurl {
+          url = https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/4e25cc0582a36a786c31115e419c6e40498f6972;
+          sha256 = "1q2vkgyaz7h6z3q0z3v3l5rsvhv4xc45prgzr214cgm656i2h1ab";
+        };
+      };
+    };
+    "league/mime-type-detection" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "league-mime-type-detection-3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3";
+        src = fetchurl {
+          url = https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3;
+          sha256 = "0pmq486v2nf6672y2z53cyb3mfrxcc8n7z2ilpzz9zkkf2yb990j";
+        };
+      };
+    };
+    "league/oauth1-client" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "league-oauth1-client-1e7e6be2dc543bf466236fb171e5b20e1b06aee6";
+        src = fetchurl {
+          url = https://api.github.com/repos/thephpleague/oauth1-client/zipball/1e7e6be2dc543bf466236fb171e5b20e1b06aee6;
+          sha256 = "1vmzvghl4c4k9vxza50k0w28hxm88vcrcdspqp7f3vmfg5c1zav2";
+        };
+      };
+    };
+    "monolog/monolog" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "monolog-monolog-1cb1cde8e8dd0f70cc0fe51354a59acad9302084";
+        src = fetchurl {
+          url = https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084;
+          sha256 = "1gymdiymwrjw25fjqapq3jlmf6wnp1h26ms74sckd70d53c4m52k";
+        };
+      };
+    };
+    "mtdowling/jmespath.php" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "mtdowling-jmespath.php-42dae2cbd13154083ca6d70099692fef8ca84bfb";
+        src = fetchurl {
+          url = https://api.github.com/repos/jmespath/jmespath.php/zipball/42dae2cbd13154083ca6d70099692fef8ca84bfb;
+          sha256 = "157pdx45dmkxwxyq8vdjfci24fw7kl3yc2gj1cifp9kaia7mwlkk";
+        };
+      };
+    };
+    "nesbot/carbon" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "nesbot-carbon-528783b188bdb853eb21239b1722831e0f000a8d";
+        src = fetchurl {
+          url = https://api.github.com/repos/briannesbitt/Carbon/zipball/528783b188bdb853eb21239b1722831e0f000a8d;
+          sha256 = "18pvfwjvclfj0mrgqvycgrbyx5jfcp1hks4yljc6mp66yxr787x4";
+        };
+      };
+    };
+    "nunomaduro/collision" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "nunomaduro-collision-f7c45764dfe4ba5f2618d265a6f1f9c72732e01d";
+        src = fetchurl {
+          url = https://api.github.com/repos/nunomaduro/collision/zipball/f7c45764dfe4ba5f2618d265a6f1f9c72732e01d;
+          sha256 = "1cazbjxl5rqw4cl783nrymhcvjhvwwwjswr5w0si1wfhmpvr349q";
+        };
+      };
+    };
+    "onelogin/php-saml" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "onelogin-php-saml-a7328b11887660ad248ea10952dd67a5aa73ba3b";
+        src = fetchurl {
+          url = https://api.github.com/repos/onelogin/php-saml/zipball/a7328b11887660ad248ea10952dd67a5aa73ba3b;
+          sha256 = "0ycj3n22k5i3h8p7gn0xff6a7smjypazl2k5qvyzg86fjr7s3vfv";
+        };
+      };
+    };
+    "opis/closure" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "opis-closure-943b5d70cc5ae7483f6aff6ff43d7e34592ca0f5";
+        src = fetchurl {
+          url = https://api.github.com/repos/opis/closure/zipball/943b5d70cc5ae7483f6aff6ff43d7e34592ca0f5;
+          sha256 = "0y47ldgzzv22c5dnsdzqmbrsicq6acjyba0119d3dc6wa3n7zqi6";
+        };
+      };
+    };
+    "paragonie/random_compat" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "paragonie-random_compat-84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95";
+        src = fetchurl {
+          url = https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95;
+          sha256 = "03nsccdvcb79l64b7lsmx0n8ldf5z3v8niqr7bpp6wg401qp9p09";
+        };
+      };
+    };
+    "phenx/php-font-lib" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "phenx-php-font-lib-ca6ad461f032145fff5971b5985e5af9e7fa88d8";
+        src = fetchurl {
+          url = https://api.github.com/repos/PhenX/php-font-lib/zipball/ca6ad461f032145fff5971b5985e5af9e7fa88d8;
+          sha256 = "0grirw04sfg38fd4h0yaks43s49cxr5bisrr4ligjig2q3rjai31";
+        };
+      };
+    };
+    "phenx/php-svg-lib" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "phenx-php-svg-lib-5fa61b65e612ce1ae15f69b3d223cb14ecc60e32";
+        src = fetchurl {
+          url = https://api.github.com/repos/PhenX/php-svg-lib/zipball/5fa61b65e612ce1ae15f69b3d223cb14ecc60e32;
+          sha256 = "1jbkn7wm82y6pbyb7gx989k4yaprsc7xpa49nn4ywscmkz7ckd5y";
+        };
+      };
+    };
+    "php-parallel-lint/php-console-color" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "php-parallel-lint-php-console-color-b6af326b2088f1ad3b264696c9fd590ec395b49e";
+        src = fetchurl {
+          url = https://api.github.com/repos/php-parallel-lint/PHP-Console-Color/zipball/b6af326b2088f1ad3b264696c9fd590ec395b49e;
+          sha256 = "030449mkpxs35y8dk336ls3bfdq3zjnxswnk5khlg45z5147cr3k";
+        };
+      };
+    };
+    "php-parallel-lint/php-console-highlighter" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "php-parallel-lint-php-console-highlighter-21bf002f077b177f056d8cb455c5ed573adfdbb8";
+        src = fetchurl {
+          url = https://api.github.com/repos/php-parallel-lint/PHP-Console-Highlighter/zipball/21bf002f077b177f056d8cb455c5ed573adfdbb8;
+          sha256 = "013phmp5n6hp6mvlpbqbrih0zd8h7xc152dpzxxf49b0jczxh8y4";
+        };
+      };
+    };
+    "phpoption/phpoption" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "phpoption-phpoption-994ecccd8f3283ecf5ac33254543eb0ac946d525";
+        src = fetchurl {
+          url = https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525;
+          sha256 = "1snrnfvqhnr5z9llf8kbqk9l97gfyp8gghmhi1ng8qx5xzv1anr7";
+        };
+      };
+    };
+    "predis/predis" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "predis-predis-9930e933c67446962997b05201c69c2319bf26de";
+        src = fetchurl {
+          url = https://api.github.com/repos/predis/predis/zipball/9930e933c67446962997b05201c69c2319bf26de;
+          sha256 = "0qnpiyv96gs8yzy3b1ba918yw1pv8bgzw7skcf3k40ffpxsmkxv6";
+        };
+      };
+    };
+    "psr/container" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f";
+        src = fetchurl {
+          url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f;
+          sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j";
+        };
+      };
+    };
+    "psr/http-client" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "psr-http-client-2dfb5f6c5eff0e91e20e913f8c5452ed95b86621";
+        src = fetchurl {
+          url = https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621;
+          sha256 = "0cmkifa3ji1r8kn3y1rwg81rh8g2crvnhbv2am6d688dzsbw967v";
+        };
+      };
+    };
+    "psr/http-message" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "psr-http-message-f6561bf28d520154e4b0ec72be95418abe6d9363";
+        src = fetchurl {
+          url = https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363;
+          sha256 = "195dd67hva9bmr52iadr4kyp2gw2f5l51lplfiay2pv6l9y4cf45";
+        };
+      };
+    };
+    "psr/log" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "psr-log-0f73288fd15629204f9d42b7055f72dacbe811fc";
+        src = fetchurl {
+          url = https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc;
+          sha256 = "1npi9ggl4qll4sdxz1xgp8779ia73gwlpjxbb1f1cpl1wn4s42r4";
+        };
+      };
+    };
+    "psr/simple-cache" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b";
+        src = fetchurl {
+          url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b;
+          sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw";
+        };
+      };
+    };
+    "ralouphie/getallheaders" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "ralouphie-getallheaders-120b605dfeb996808c31b6477290a714d356e822";
+        src = fetchurl {
+          url = https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822;
+          sha256 = "1bv7ndkkankrqlr2b4kw7qp3fl0dxi6bp26bnim6dnlhavd6a0gg";
+        };
+      };
+    };
+    "ramsey/uuid" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "ramsey-uuid-7e1633a6964b48589b142d60542f9ed31bd37a92";
+        src = fetchurl {
+          url = https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92;
+          sha256 = "0s6z2c8jvwjmxzy2kqmxqpz0val9i5r757mdwf2yc7qrwm6bwd15";
+        };
+      };
+    };
+    "robrichards/xmlseclibs" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "robrichards-xmlseclibs-f8f19e58f26cdb42c54b214ff8a820760292f8df";
+        src = fetchurl {
+          url = https://api.github.com/repos/robrichards/xmlseclibs/zipball/f8f19e58f26cdb42c54b214ff8a820760292f8df;
+          sha256 = "01zlpm36rrdj310cfmiz2fnabszxd3fq80fa8x8j3f9ki7dvhh5y";
+        };
+      };
+    };
+    "sabberworm/php-css-parser" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "sabberworm-php-css-parser-d217848e1396ef962fb1997cf3e2421acba7f796";
+        src = fetchurl {
+          url = https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/d217848e1396ef962fb1997cf3e2421acba7f796;
+          sha256 = "17jkly8k02p54qa004spikakxis8syjw3vhwgrsi9g1cb4wsg3g9";
+        };
+      };
+    };
+    "scrivo/highlight.php" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "scrivo-highlight.php-44a3d4136edb5ad8551590bf90f437db80b2d466";
+        src = fetchurl {
+          url = https://api.github.com/repos/scrivo/highlight.php/zipball/44a3d4136edb5ad8551590bf90f437db80b2d466;
+          sha256 = "0p0bj3yqiaa917lgx4ycwic2qqlg3cxka2adhziqzhlq9jqhzi8r";
+        };
+      };
+    };
+    "socialiteproviders/discord" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "socialiteproviders-discord-c6eddeb07ace7473e82d02d4db852dfacf5ef574";
+        src = fetchurl {
+          url = https://api.github.com/repos/SocialiteProviders/Discord/zipball/c6eddeb07ace7473e82d02d4db852dfacf5ef574;
+          sha256 = "1w8m7jmlsdk94cqckgd75mwblh3jj6j16w3g4hzysyms25g091xc";
+        };
+      };
+    };
+    "socialiteproviders/gitlab" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "socialiteproviders-gitlab-a8f67d3b02c9ee8c70c25c6728417c0eddcbbb9d";
+        src = fetchurl {
+          url = https://api.github.com/repos/SocialiteProviders/GitLab/zipball/a8f67d3b02c9ee8c70c25c6728417c0eddcbbb9d;
+          sha256 = "1blv2h69dmm0r0djz3h0l0cxkxmzd1fzgg13r3npxx7c80xjpw3a";
+        };
+      };
+    };
+    "socialiteproviders/manager" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "socialiteproviders-manager-0f5e82af0404df0080bdc5c105cef936c1711524";
+        src = fetchurl {
+          url = https://api.github.com/repos/SocialiteProviders/Manager/zipball/0f5e82af0404df0080bdc5c105cef936c1711524;
+          sha256 = "0ppmln72khli94ylnsjarnhzkqzpkc32pn3zf3ljahm1yghccczx";
+        };
+      };
+    };
+    "socialiteproviders/microsoft-azure" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "socialiteproviders-microsoft-azure-7808764f777a01df88be9ca6b14d683e50aaf88a";
+        src = fetchurl {
+          url = https://api.github.com/repos/SocialiteProviders/Microsoft-Azure/zipball/7808764f777a01df88be9ca6b14d683e50aaf88a;
+          sha256 = "1lxsvb5pzqrm467a8737v98sgmsxs6mvxc683p19b2y30g4fyrlj";
+        };
+      };
+    };
+    "socialiteproviders/okta" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "socialiteproviders-okta-e3ef9f23c7d2f86b3b16a174b82333cf4e2459e8";
+        src = fetchurl {
+          url = https://api.github.com/repos/SocialiteProviders/Okta/zipball/e3ef9f23c7d2f86b3b16a174b82333cf4e2459e8;
+          sha256 = "1a3anw5di5nqiabvqpmsjv5x0jasmsn4y876qsv77gazxja880ng";
+        };
+      };
+    };
+    "socialiteproviders/slack" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "socialiteproviders-slack-8efb25c71d98bedf4010a829d1e41ff9fe449bcc";
+        src = fetchurl {
+          url = https://api.github.com/repos/SocialiteProviders/Slack/zipball/8efb25c71d98bedf4010a829d1e41ff9fe449bcc;
+          sha256 = "0ax3n4s1djidkhgvrcgv1qipv3k0fhfd0cvs273h6wh66bjniq66";
+        };
+      };
+    };
+    "socialiteproviders/twitch" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "socialiteproviders-twitch-7accf30ae7a3139b757b4ca8f34989c09a3dbee7";
+        src = fetchurl {
+          url = https://api.github.com/repos/SocialiteProviders/Twitch/zipball/7accf30ae7a3139b757b4ca8f34989c09a3dbee7;
+          sha256 = "089i4fwxb32zmbxib0544jfs48wzjyp7bsqss2bf2xx89dsrx4ah";
+        };
+      };
+    };
+    "ssddanbrown/htmldiff" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "ssddanbrown-htmldiff-f60d5cc278b60305ab980a6665f46117c5b589c0";
+        src = fetchurl {
+          url = https://api.github.com/repos/ssddanbrown/HtmlDiff/zipball/f60d5cc278b60305ab980a6665f46117c5b589c0;
+          sha256 = "12h3swr8rjf5w78kfgwzkf0zb59b4a8mjwf65fgcgvjg115wha9x";
+        };
+      };
+    };
+    "swiftmailer/swiftmailer" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "swiftmailer-swiftmailer-698a6a9f54d7eb321274de3ad19863802c879fb7";
+        src = fetchurl {
+          url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/698a6a9f54d7eb321274de3ad19863802c879fb7;
+          sha256 = "1zmyr6szxvbc77rs4q1cp7f3vzw1wfx9rbbj7x9s65gh37z9fd1w";
+        };
+      };
+    };
+    "symfony/console" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-console-24026c44fc37099fa145707fecd43672831b837a";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/console/zipball/24026c44fc37099fa145707fecd43672831b837a;
+          sha256 = "19c5yczwxk0965pdg7ka8sa8wsr569r6l725rj4y9sabfd6mg6jf";
+        };
+      };
+    };
+    "symfony/css-selector" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-css-selector-f907d3e53ecb2a5fad8609eb2f30525287a734c8";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/css-selector/zipball/f907d3e53ecb2a5fad8609eb2f30525287a734c8;
+          sha256 = "19yqy81psz2wh8gy2j3phywsgrw9sbcw83l8lbnxbk5khg8hw3nm";
+        };
+      };
+    };
+    "symfony/debug" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-debug-af4987aa4a5630e9615be9d9c3ed1b0f24ca449c";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/debug/zipball/af4987aa4a5630e9615be9d9c3ed1b0f24ca449c;
+          sha256 = "15y1bgdrzq3859ql37ymx4fsvd28kyck69ncm6zyg84q3fhd8i19";
+        };
+      };
+    };
+    "symfony/deprecation-contracts" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-deprecation-contracts-5fa56b4074d1ae755beb55617ddafe6f5d78f665";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665;
+          sha256 = "0ny59x0aaipqaj956wx7ak5f6d5rn90766swp5m18019v9cppg10";
+        };
+      };
+    };
+    "symfony/error-handler" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-error-handler-d603654eaeb713503bba3e308b9e748e5a6d3f2e";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/error-handler/zipball/d603654eaeb713503bba3e308b9e748e5a6d3f2e;
+          sha256 = "15xdk9bbyfdm8yf19jfb3zr1yaj0lprf9pmxgj630vbpbqkgsd8f";
+        };
+      };
+    };
+    "symfony/event-dispatcher" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-event-dispatcher-c352647244bd376bf7d31efbd5401f13f50dad0c";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c;
+          sha256 = "1cxgn0y83i4qqx757kq96jadwwbc68h11snhvy175xvy8nvsmxkd";
+        };
+      };
+    };
+    "symfony/event-dispatcher-contracts" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-event-dispatcher-contracts-84e23fdcd2517bf37aecbd16967e83f0caee25a7";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7;
+          sha256 = "1pcfrlc0rg8vdnp23y3y1p5qzng5nxf5i2c36g9x9f480xrnc1fw";
+        };
+      };
+    };
+    "symfony/finder" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-finder-25d79cfccfc12e84e7a63a248c3f0720fdd92db6";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/finder/zipball/25d79cfccfc12e84e7a63a248c3f0720fdd92db6;
+          sha256 = "04fwddn12sj6vzr5xr4xd25m86cn4l15079490h3q3igprzvrqk8";
+        };
+      };
+    };
+    "symfony/http-client-contracts" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-http-client-contracts-41db680a15018f9c1d4b23516059633ce280ca33";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/http-client-contracts/zipball/41db680a15018f9c1d4b23516059633ce280ca33;
+          sha256 = "1iia9rpbri1whp2dw4qfhh90gmkdvxhgjwxi54q7wlnlhijgga81";
+        };
+      };
+    };
+    "symfony/http-foundation" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-http-foundation-8888741b633f6c3d1e572b7735ad2cae3e03f9c5";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/http-foundation/zipball/8888741b633f6c3d1e572b7735ad2cae3e03f9c5;
+          sha256 = "0qs389nxxqc6nwx5x6b9kz8ykdlhdx7k8k6nd2apppxpqalvk6sw";
+        };
+      };
+    };
+    "symfony/http-kernel" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-http-kernel-07ea794a327d7c8c5d76e3058fde9fec6a711cb4";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/http-kernel/zipball/07ea794a327d7c8c5d76e3058fde9fec6a711cb4;
+          sha256 = "0mnay6nn299ljjgaqqbk8kcl431wrzvzsqybvl648pf513mp9vy9";
+        };
+      };
+    };
+    "symfony/mime" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-mime-7dee6a43493f39b51ff6c5bb2bd576fe40a76c86";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/mime/zipball/7dee6a43493f39b51ff6c5bb2bd576fe40a76c86;
+          sha256 = "0931zsmnpx75b9b34a03l0sfp22mailaa2y5az3cgx9v0bkc0vka";
+        };
+      };
+    };
+    "symfony/polyfill-ctype" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-polyfill-ctype-c6c942b1ac76c82448322025e084cadc56048b4e";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e;
+          sha256 = "0jpk859wx74vm03q5s9z25f4ak2138p2x5q3b587wvy8rq2m4pbd";
+        };
+      };
+    };
+    "symfony/polyfill-iconv" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-polyfill-iconv-06fb361659649bcfd6a208a0f1fcaf4e827ad342";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342;
+          sha256 = "0glb56w5q4v2j629rkndp2c7v4mcs6xdl14nwaaxy85lr5w4ixnq";
+        };
+      };
+    };
+    "symfony/polyfill-intl-idn" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-polyfill-intl-idn-2d63434d922daf7da8dd863e7907e67ee3031483";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483;
+          sha256 = "0sk592qrdb6dvk6v8msjva8p672qmhmnzkw1lw53gks0xrc20xjy";
+        };
+      };
+    };
+    "symfony/polyfill-intl-normalizer" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-polyfill-intl-normalizer-43a0283138253ed1d48d352ab6d0bdb3f809f248";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248;
+          sha256 = "04irkl6aks8zyfy17ni164060liihfyraqm1fmpjbs5hq0b14sc9";
+        };
+      };
+    };
+    "symfony/polyfill-mbstring" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-polyfill-mbstring-5232de97ee3b75b0360528dae24e73db49566ab1";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1;
+          sha256 = "1mm670fxj2x72a9mbkyzs3yifpp6glravq2ss438bags1xf6psz8";
+        };
+      };
+    };
+    "symfony/polyfill-php72" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-polyfill-php72-cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9;
+          sha256 = "12dmz2n1b9pqqd758ja0c8h8h5dxdai5ik74iwvaxc5xn86a026b";
+        };
+      };
+    };
+    "symfony/polyfill-php73" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-polyfill-php73-a678b42e92f86eca04b7fa4c0f6f19d097fb69e2";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2;
+          sha256 = "10rq2x2q9hsdzskrz0aml5qcji27ypxam324044fi24nl60fyzg0";
+        };
+      };
+    };
+    "symfony/polyfill-php80" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-polyfill-php80-dc3063ba22c2a1fd2f45ed856374d79114998f91";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91;
+          sha256 = "1mhfjibk7mqyzlqpz6jjpxpd93fnfw0nik140x3mq1d2blg5cbvd";
+        };
+      };
+    };
+    "symfony/process" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-process-7e950b6366d4da90292c2e7fa820b3c1842b965a";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/process/zipball/7e950b6366d4da90292c2e7fa820b3c1842b965a;
+          sha256 = "07ykgz5bjd45izf5n6jm2n27wcaa7aih2wlsiln1ffj9vqd6l1s4";
+        };
+      };
+    };
+    "symfony/routing" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-routing-87529f6e305c7acb162840d1ea57922038072425";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/routing/zipball/87529f6e305c7acb162840d1ea57922038072425;
+          sha256 = "0qrgacividsp7c61y03qh8lb4vj30g0mvljnm5k60h4zzdmivlgc";
+        };
+      };
+    };
+    "symfony/service-contracts" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-service-contracts-d15da7ba4957ffb8f1747218be9e1a121fd298a1";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1;
+          sha256 = "168iq1lp2r5qb5h8j0s17da09iaj2h5hrrdc9rw2p73hq8rvm1w2";
+        };
+      };
+    };
+    "symfony/translation" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-translation-e1d0c67167a553556d9f974b5fa79c2448df317a";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/translation/zipball/e1d0c67167a553556d9f974b5fa79c2448df317a;
+          sha256 = "1b6fj278i1wdf4l7py9n86lmhrqmzvjy7kapjpfkz03adn2ps127";
+        };
+      };
+    };
+    "symfony/translation-contracts" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-translation-contracts-e2eaa60b558f26a4b0354e1bbb25636efaaad105";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105;
+          sha256 = "1k26yvgk84rz6ja9ml6l6iwbbi68qsqnq2cpky044g9ymvlg8d5g";
+        };
+      };
+    };
+    "symfony/var-dumper" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-var-dumper-a1eab2f69906dc83c5ddba4632180260d0ab4f7f";
+        src = fetchurl {
+          url = https://api.github.com/repos/symfony/var-dumper/zipball/a1eab2f69906dc83c5ddba4632180260d0ab4f7f;
+          sha256 = "1yw12jbx6gf5mvg7jrr1v57ah3b2s4hflz2p1m98nayi4qhdp20m";
+        };
+      };
+    };
+    "tijsverkoyen/css-to-inline-styles" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "tijsverkoyen-css-to-inline-styles-b43b05cf43c1b6d849478965062b6ef73e223bb5";
+        src = fetchurl {
+          url = https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/b43b05cf43c1b6d849478965062b6ef73e223bb5;
+          sha256 = "0lc6jviz8faqxxs453dbqvfdmm6l2iczxla22v2r6xhakl58pf3w";
+        };
+      };
+    };
+    "vlucas/phpdotenv" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "vlucas-phpdotenv-5e679f7616db829358341e2d5cccbd18773bdab8";
+        src = fetchurl {
+          url = https://api.github.com/repos/vlucas/phpdotenv/zipball/5e679f7616db829358341e2d5cccbd18773bdab8;
+          sha256 = "05j5wj1hry30vaqna4a232gjlibp89ha3ibhy04x5lbm0c98b73q";
+        };
+      };
+    };
+  };
+  devPackages = {};
+in
+composerEnv.buildPackage {
+  inherit packages devPackages noDev;
+  name = "bookstack";
+  src = ./.;
+  executable = false;
+  symlinkDependencies = false;
+  meta = {
+    license = "MIT";
+  };
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/bookstack/update.sh b/nixpkgs/pkgs/servers/web-apps/bookstack/update.sh
new file mode 100755
index 000000000000..f61a51105902
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/bookstack/update.sh
@@ -0,0 +1,50 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nix curl jq nix-update
+
+# check if composer2nix is installed
+if ! command -v composer2nix &> /dev/null; then
+  echo "Please install composer2nix (https://github.com/svanderburg/composer2nix) to run this script."
+  exit 1
+fi
+
+CURRENT_VERSION=$(nix eval --raw '(with import ../../../.. {}; bookstack.version)')
+TARGET_VERSION_REMOTE=$(curl https://api.github.com/repos/bookstackapp/bookstack/releases/latest | jq -r ".tag_name")
+TARGET_VERSION=${TARGET_VERSION_REMOTE:1}
+BOOKSTACK=https://github.com/bookstackapp/bookstack/raw/$TARGET_VERSION_REMOTE
+SHA256=$(nix-prefetch-url --unpack "https://github.com/bookstackapp/bookstack/archive/v$TARGET_VERSION/bookstack.tar.gz")
+
+if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" ]]; then
+  echo "bookstack is up-to-date: ${CURRENT_VERSION}"
+  exit 0
+fi
+
+curl -LO "$BOOKSTACK/composer.json"
+curl -LO "$BOOKSTACK/composer.lock"
+
+composer2nix --name "bookstack" \
+  --composition=composition.nix \
+  --no-dev
+rm composer.json composer.lock
+
+# change version number
+sed -e "s/version =.*;/version = \"$TARGET_VERSION\";/g" \
+    -e "s/sha256 =.*;/sha256 = \"$SHA256\";/g" \
+    -i ./default.nix
+
+# fix composer-env.nix
+sed -e "s/stdenv\.lib/lib/g" \
+    -e '3s/stdenv, writeTextFile/stdenv, lib, writeTextFile/' \
+    -i ./composer-env.nix
+
+# fix composition.nix
+sed -e '7s/stdenv writeTextFile/stdenv lib writeTextFile/' \
+    -i composition.nix
+
+# fix missing newline
+echo "" >> composition.nix
+echo "" >> php-packages.nix
+
+cd ../../../..
+nix-build -A bookstack
+
+exit $?
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch b/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch
new file mode 100644
index 000000000000..83c44a466fac
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch
@@ -0,0 +1,12 @@
+diff --git a/config/environments/production.rb b/config/environments/production.rb
+index 75c3a69512..7fc374cd9d 100644
+--- a/config/environments/production.rb
++++ b/config/environments/production.rb
+@@ -32,6 +32,7 @@ Discourse::Application.configure do
+       user_name: GlobalSetting.smtp_user_name,
+       password: GlobalSetting.smtp_password,
+       authentication: GlobalSetting.smtp_authentication,
++      ca_file: "/etc/ssl/certs/ca-certificates.crt",
+       enable_starttls_auto: GlobalSetting.smtp_enable_start_tls
+     }
+ 
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/admin_create.patch b/nixpkgs/pkgs/servers/web-apps/discourse/admin_create.patch
new file mode 100644
index 000000000000..651e8ce81dc9
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/admin_create.patch
@@ -0,0 +1,48 @@
+diff --git a/lib/tasks/admin.rake b/lib/tasks/admin.rake
+index 80c403616d..cba01202ac 100644
+--- a/lib/tasks/admin.rake
++++ b/lib/tasks/admin.rake
+@@ -107,3 +107,43 @@ task "admin:create" => :environment do
+   end
+ 
+ end
++
++desc "Creates a forum administrator noninteractively"
++task "admin:create_noninteractively" => :environment do
++  email = ENV["ADMIN_EMAIL"]
++  existing_user = User.find_by_email(email)
++
++  # check if user account already exixts
++  if existing_user
++    admin = existing_user
++  else
++    # create new user
++    admin = User.new
++  end
++
++  admin.email = email
++  admin.name = ENV["ADMIN_NAME"]
++  admin.username = ENV["ADMIN_USERNAME"]
++
++  password = ENV["ADMIN_PASSWORD"]
++  unless admin.confirm_password?(password)
++    admin.password = password
++    puts "Admin password set!"
++  end
++
++  admin.active = true
++
++  # save/update user account
++  saved = admin.save
++  raise admin.errors.full_messages.join("\n") unless saved
++
++  puts "Account created successfully with username #{admin.username}" unless existing_user
++
++  # grant admin privileges
++  admin.grant_admin!
++  if admin.trust_level < 1
++    admin.change_trust_level!(1)
++  end
++  admin.email_tokens.update_all confirmed: true
++  admin.activate
++end
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
new file mode 100644
index 000000000000..900d69210923
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
@@ -0,0 +1,234 @@
+{ stdenv, makeWrapper, runCommandNoCC, lib, nixosTests
+, fetchFromGitHub, bundlerEnv, ruby, replace, gzip, gnutar, git
+, util-linux, gawk, imagemagick, optipng, pngquant, libjpeg, jpegoptim
+, gifsicle, libpsl, redis, postgresql, which, brotli, procps
+, nodePackages, v8
+}:
+
+let
+  version = "2.6.3";
+
+  src = fetchFromGitHub {
+    owner = "discourse";
+    repo = "discourse";
+    rev = "v${version}";
+    sha256 = "sha256-lAIhVxvmjxEiru1KNxbFV+eDMLUGza/Dma3WU0ex0xs=";
+  };
+
+  runtimeDeps = [
+    # For backups, themes and assets
+    rubyEnv.wrappedRuby
+    gzip
+    gnutar
+    git
+    brotli
+
+    # Misc required system utils
+    which
+    procps       # For ps and kill
+    util-linux   # For renice
+    gawk
+
+    # Image optimization
+    imagemagick
+    optipng
+    pngquant
+    libjpeg
+    jpegoptim
+    gifsicle
+    nodePackages.svgo
+  ];
+
+  runtimeEnv = {
+    HOME = "/run/discourse/home";
+    RAILS_ENV = "production";
+    UNICORN_LISTENER = "/run/discourse/sockets/unicorn.sock";
+  };
+
+  rake = runCommandNoCC "discourse-rake" {
+    nativeBuildInputs = [ makeWrapper ];
+  } ''
+    mkdir -p $out/bin
+    makeWrapper ${rubyEnv}/bin/rake $out/bin/discourse-rake \
+        ${lib.concatStrings (lib.mapAttrsToList (name: value: "--set ${name} '${value}' ") runtimeEnv)} \
+        --prefix PATH : ${lib.makeBinPath runtimeDeps} \
+        --set RAKEOPT '-f ${discourse}/share/discourse/Rakefile' \
+        --run 'cd ${discourse}/share/discourse'
+  '';
+
+  rubyEnv = bundlerEnv {
+    name = "discourse-ruby-env-${version}";
+    inherit version ruby;
+    gemdir = ./rubyEnv;
+    gemset =
+      let
+        gems = import ./rubyEnv/gemset.nix;
+      in
+        gems // {
+          mini_racer = gems.mini_racer // {
+            buildInputs = [ v8 ];
+            dontBuild = false;
+            # The Ruby extension makefile generator assumes the source
+            # is C, when it's actually C++ ¯\_(ツ)_/¯
+            postPatch = ''
+              substituteInPlace ext/mini_racer_extension/extconf.rb \
+                --replace '" -std=c++0x"' \
+                          '" -x c++ -std=c++0x"'
+            '';
+          };
+          mini_suffix = gems.mini_suffix // {
+            propagatedBuildInputs = [ libpsl ];
+            dontBuild = false;
+            # Use our libpsl instead of the vendored one, which isn't
+            # available for aarch64
+            postPatch = ''
+              cp $(readlink -f ${libpsl}/lib/libpsl.so) vendor/libpsl.so
+            '';
+          };
+        };
+
+    groups = [
+      "default" "assets" "development" "test"
+    ];
+  };
+
+  assets = stdenv.mkDerivation {
+    pname = "discourse-assets";
+    inherit version src;
+
+    nativeBuildInputs = [
+      rubyEnv.wrappedRuby
+      postgresql
+      redis
+      which
+      brotli
+      procps
+      nodePackages.uglify-js
+    ];
+
+    # We have to set up an environment that is close enough to
+    # production ready or the assets:precompile task refuses to
+    # run. This means that Redis and PostgreSQL has to be running and
+    # database migrations performed.
+    preBuild = ''
+      redis-server >/dev/null &
+
+      initdb -A trust $NIX_BUILD_TOP/postgres >/dev/null
+      postgres -D $NIX_BUILD_TOP/postgres -k $NIX_BUILD_TOP >/dev/null &
+      export PGHOST=$NIX_BUILD_TOP
+
+      echo "Waiting for Redis and PostgreSQL to be ready.."
+      while ! redis-cli --scan >/dev/null || ! psql -l >/dev/null; do
+        sleep 0.1
+      done
+
+      psql -d postgres -tAc 'CREATE USER "discourse"'
+      psql -d postgres -tAc 'CREATE DATABASE "discourse" OWNER "discourse"'
+      psql 'discourse' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
+      psql 'discourse' -tAc "CREATE EXTENSION IF NOT EXISTS hstore"
+
+      # Create a temporary home dir to stop bundler from complaining
+      mkdir $NIX_BUILD_TOP/tmp_home
+      export HOME=$NIX_BUILD_TOP/tmp_home
+
+      export RAILS_ENV=production
+
+      bundle exec rake db:migrate >/dev/null
+      rm -r tmp/*
+    '';
+
+    buildPhase = ''
+      runHook preBuild
+
+      bundle exec rake assets:precompile
+
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      mv public/assets $out
+
+      runHook postInstall
+    '';
+  };
+
+  discourse = stdenv.mkDerivation {
+    pname = "discourse";
+    inherit version src;
+
+    buildInputs = [
+      rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler
+    ];
+
+    patches = [
+      # Load a separate NixOS site settings file
+      ./nixos_defaults.patch
+
+      # Add a noninteractive admin creation task
+      ./admin_create.patch
+
+      # Disable jhead, which is currently marked as vulnerable
+      ./disable_jhead.patch
+
+      # Add the path to the CA cert bundle to make TLS work
+      ./action_mailer_ca_cert.patch
+
+      # Log Unicorn messages to the journal and make request timeout
+      # configurable
+      ./unicorn_logging_and_timeout.patch
+    ];
+
+    postPatch = ''
+      # Always require lib-files and application.rb through their store
+      # path, not their relative state directory path. This gets rid of
+      # warnings and means we don't have to link back to lib from the
+      # state directory.
+      find config -type f -execdir sed -Ei "s,(\.\./)+(lib|app)/,$out/share/discourse/\2/," {} \;
+
+      ${replace}/bin/replace-literal -f -r -e 'File.rename(temp_destination, destination)' "FileUtils.mv(temp_destination, destination)" .
+    '';
+
+    buildPhase = ''
+      runHook preBuild
+
+      mv config config.dist
+      mv public public.dist
+      mv plugins plugins.dist
+
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share
+      cp -r . $out/share/discourse
+      rm -r $out/share/discourse/log
+      ln -sf /var/log/discourse $out/share/discourse/log
+      ln -sf /run/discourse/tmp $out/share/discourse/tmp
+      ln -sf /run/discourse/config $out/share/discourse/config
+      ln -sf /run/discourse/assets/javascripts/plugins $out/share/discourse/app/assets/javascripts/plugins
+      ln -sf /run/discourse/public $out/share/discourse/public
+      ln -sf /run/discourse/plugins $out/share/discourse/plugins
+      ln -sf ${assets} $out/share/discourse/public.dist/assets
+
+      runHook postInstall
+    '';
+
+    meta = with lib; {
+      homepage = "https://www.discourse.org/";
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ talyz ];
+      license = licenses.gpl2Plus;
+      description = "Discourse is an open source discussion platform";
+    };
+
+    passthru = {
+      inherit rubyEnv runtimeEnv runtimeDeps rake;
+      ruby = rubyEnv.wrappedRuby;
+      tests = nixosTests.discourse;
+    };
+  };
+in discourse
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch b/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch
new file mode 100644
index 000000000000..709a1959d637
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch
@@ -0,0 +1,12 @@
+diff --git a/lib/file_helper.rb b/lib/file_helper.rb
+index 162de9a40b..9ac8807e9d 100644
+--- a/lib/file_helper.rb
++++ b/lib/file_helper.rb
+@@ -124,6 +124,7 @@ class FileHelper
+         jpegoptim: { strip: strip_image_metadata ? "all" : "none" },
+         jpegtran: false,
+         jpegrecompress: false,
++        jhead: false,
+       )
+     end
+   end
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/mail_receiver/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/mail_receiver/default.nix
new file mode 100644
index 000000000000..c1a3a2df1064
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/mail_receiver/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchFromGitHub, ruby, makeWrapper, replace }:
+
+stdenv.mkDerivation rec {
+  pname = "discourse-mail-receiver";
+  version = "4.0.7";
+
+  src = fetchFromGitHub {
+    owner = "discourse";
+    repo = "mail-receiver";
+    rev = "v${version}";
+    sha256 = "0grifm5qyqazq63va3w26xjqnxwmfixhx0fx0zy7kd39378wwa6i";
+  };
+
+  nativeBuildInputs = [ replace ];
+  buildInputs = [ ruby makeWrapper ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+
+    replace-literal -f -r -e /etc/postfix /run/discourse-mail-receiver .
+
+    cp -r receive-mail discourse-smtp-fast-rejection $out/bin/
+    cp -r lib $out/
+
+    wrapProgram $out/bin/receive-mail --set RUBYLIB $out/lib
+    wrapProgram $out/bin/discourse-smtp-fast-rejection --set RUBYLIB $out/lib
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.discourse.org/";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ talyz ];
+    license = licenses.mit;
+    description = "A helper program which receives incoming mail for Discourse";
+  };
+
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/nixos_defaults.patch b/nixpkgs/pkgs/servers/web-apps/discourse/nixos_defaults.patch
new file mode 100644
index 000000000000..3efca97e62c0
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/nixos_defaults.patch
@@ -0,0 +1,13 @@
+diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb
+index 89a5e923fc..b60754f50a 100644
+--- a/app/models/site_setting.rb
++++ b/app/models/site_setting.rb
+@@ -26,6 +26,8 @@ class SiteSetting < ActiveRecord::Base
+     end
+   end
+ 
++  load_settings(File.join(Rails.root, 'config', 'nixos_site_settings.json'))
++
+   setup_deprecated_methods
+   client_settings << :available_locales
+ 
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
new file mode 100644
index 000000000000..cb86d7e4bacf
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
@@ -0,0 +1,248 @@
+# frozen_string_literal: true
+
+source 'https://rubygems.org'
+# if there is a super emergency and rubygems is playing up, try
+#source 'http://production.cf.rubygems.org'
+
+gem 'bootsnap', require: false, platform: :mri
+
+def rails_master?
+  ENV["RAILS_MASTER"] == '1'
+end
+
+if rails_master?
+  gem 'arel', git: 'https://github.com/rails/arel.git'
+  gem 'rails', git: 'https://github.com/rails/rails.git'
+else
+  # NOTE: Until rubygems gives us optional dependencies we are stuck with this needing to be explicit
+  # 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
+  gem 'actionmailer', '6.0.3.3'
+  gem 'actionpack', '6.0.3.3'
+  gem 'actionview', '6.0.3.3'
+  gem 'activemodel', '6.0.3.3'
+  gem 'activerecord', '6.0.3.3'
+  gem 'activesupport', '6.0.3.3'
+  gem 'railties', '6.0.3.3'
+  gem 'sprockets-rails'
+end
+
+gem 'json'
+
+# TODO: At the moment Discourse does not work with Sprockets 4, we would need to correct internals
+# This is a desired upgrade we should get to.
+gem 'sprockets', '3.7.2'
+
+# this will eventually be added to rails,
+# allows us to precompile all our templates in the unicorn master
+gem 'actionview_precompiler', require: false
+
+gem 'seed-fu'
+
+gem 'mail', require: false
+gem 'mini_mime'
+gem 'mini_suffix'
+
+gem 'redis'
+
+# This is explicitly used by Sidekiq and is an optional dependency.
+# We tell Sidekiq to use the namespace "sidekiq" which triggers this
+# gem to be used. There is no explicit dependency in sidekiq cause
+# redis namespace support is optional
+# We already namespace stuff in DiscourseRedis, so we should consider
+# just using a single implementation in core vs having 2 namespace implementations
+gem 'redis-namespace'
+
+# NOTE: AM serializer gets a lot slower with recent updates
+# we used an old branch which is the fastest one out there
+# are long term goal here is to fork this gem so we have a
+# better maintained living fork
+gem 'active_model_serializers', '~> 0.8.3'
+
+gem 'onebox'
+
+gem 'http_accept_language', require: false
+
+# Ember related gems need to be pinned cause they control client side
+# behavior, we will push these versions up when upgrading ember
+gem 'discourse-ember-rails', '0.18.6', require: 'ember-rails'
+gem 'discourse-ember-source', '~> 3.12.2'
+gem 'ember-handlebars-template', '0.8.0'
+gem 'discourse-fonts'
+
+gem 'barber'
+
+gem 'message_bus'
+
+gem 'rails_multisite'
+
+gem 'fast_xs', platform: :ruby
+
+gem 'xorcist'
+
+gem 'fastimage'
+
+gem 'aws-sdk-s3', require: false
+gem 'aws-sdk-sns', require: false
+gem 'excon', require: false
+gem 'unf', require: false
+
+gem 'email_reply_trimmer'
+
+# Forked until https://github.com/toy/image_optim/pull/162 is merged
+# https://github.com/discourse/image_optim
+gem 'discourse_image_optim', require: 'image_optim'
+gem 'multi_json'
+gem 'mustache'
+gem 'nokogiri'
+gem 'css_parser', require: false
+
+gem 'omniauth'
+gem 'omniauth-facebook'
+gem 'omniauth-twitter'
+gem 'omniauth-github'
+
+gem 'omniauth-oauth2', require: false
+
+gem 'omniauth-google-oauth2'
+
+gem 'oj'
+gem 'pg'
+gem 'mini_sql'
+gem 'pry-rails', require: false
+gem 'pry-byebug', require: false
+gem 'r2', require: false
+gem 'rake'
+
+gem 'thor', require: false
+gem 'diffy', require: false
+gem 'rinku'
+gem 'sidekiq'
+gem 'mini_scheduler'
+
+gem 'execjs', require: false
+gem 'mini_racer'
+
+gem 'highline', require: false
+
+gem 'rack'
+
+gem 'rack-protection' # security
+gem 'cbor', require: false
+gem 'cose', require: false
+gem 'addressable'
+
+# Gems used only for assets and not required in production environments by default.
+# Allow everywhere for now cause we are allowing asset debugging in production
+group :assets do
+  gem 'uglifier'
+  gem 'rtlit', require: false # for css rtling
+end
+
+group :test do
+  gem 'webmock', require: false
+  gem 'fakeweb', require: false
+  gem 'minitest', require: false
+  gem 'simplecov', require: false
+  gem "test-prof"
+end
+
+group :test, :development do
+  gem 'rspec'
+  gem 'mock_redis'
+  gem 'listen', require: false
+  gem 'certified', require: false
+  gem 'fabrication', require: false
+  gem 'mocha', require: false
+
+  gem 'rb-fsevent', require: RUBY_PLATFORM =~ /darwin/i ? 'rb-fsevent' : false
+
+  gem 'rspec-rails'
+
+  gem 'shoulda-matchers', require: false
+  gem 'rspec-html-matchers'
+  gem 'byebug', require: ENV['RM_INFO'].nil?, platform: :mri
+  gem "rubocop-discourse", require: false
+  gem 'parallel_tests'
+
+  gem 'rswag-specs'
+end
+
+group :development do
+  gem 'ruby-prof', require: false, platform: :mri
+  gem 'bullet', require: !!ENV['BULLET']
+  gem 'better_errors', platform: :mri, require: !!ENV['BETTER_ERRORS']
+  gem 'binding_of_caller'
+  gem 'yaml-lint'
+  gem 'annotate'
+end
+
+# this is an optional gem, it provides a high performance replacement
+# to String#blank? a method that is called quite frequently in current
+# ActiveRecord, this may change in the future
+gem 'fast_blank', platform: :ruby
+
+# this provides a very efficient lru cache
+gem 'lru_redux'
+
+gem 'htmlentities', require: false
+
+# IMPORTANT: mini profiler monkey patches, so it better be required last
+#  If you want to amend mini profiler to do the monkey patches in the railties
+#  we are open to it. by deferring require to the initializer we can configure discourse installs without it
+
+gem 'flamegraph', require: false
+gem 'rack-mini-profiler', require: ['enable_rails_patches']
+
+gem 'unicorn', require: false, platform: :ruby
+gem 'puma', require: false
+gem 'rbtrace', require: false, platform: :mri
+gem 'gc_tracer', require: false, platform: :mri
+
+# required for feed importing and embedding
+gem 'ruby-readability', require: false
+
+gem 'stackprof', require: false, platform: :mri
+gem 'memory_profiler', require: false, platform: :mri
+
+gem 'cppjieba_rb', require: false
+
+gem 'lograge', require: false
+gem 'logstash-event', require: false
+gem 'logstash-logger', require: false
+gem 'logster'
+
+# NOTE: later versions of sassc are causing a segfault, possibly dependent on processer architecture
+# and until resolved should be locked at 2.0.1
+gem 'sassc', '2.0.1', require: false
+gem "sassc-rails"
+
+gem 'rotp', require: false
+
+gem 'rqrcode'
+
+gem 'rubyzip', require: false
+
+gem 'sshkey', require: false
+
+gem 'rchardet', require: false
+gem 'lz4-ruby', require: false, platform: :ruby
+
+if ENV["IMPORT"] == "1"
+  gem 'mysql2'
+  gem 'redcarpet'
+
+  # NOTE: in import mode the version of sqlite can matter a lot, so we stick it to a specific one
+  gem 'sqlite3', '~> 1.3', '>= 1.3.13'
+  gem 'ruby-bbcode-to-md', git: 'https://github.com/nlalonde/ruby-bbcode-to-md'
+  gem 'reverse_markdown'
+  gem 'tiny_tds'
+  gem 'csv'
+end
+
+gem 'webpush', require: false
+gem 'colored2', require: false
+gem 'maxminddb'
+
+gem 'rails_failover', require: false
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
new file mode 100644
index 000000000000..4f0674932277
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
@@ -0,0 +1,561 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    actionmailer (6.0.3.3)
+      actionpack (= 6.0.3.3)
+      actionview (= 6.0.3.3)
+      activejob (= 6.0.3.3)
+      mail (~> 2.5, >= 2.5.4)
+      rails-dom-testing (~> 2.0)
+    actionpack (6.0.3.3)
+      actionview (= 6.0.3.3)
+      activesupport (= 6.0.3.3)
+      rack (~> 2.0, >= 2.0.8)
+      rack-test (>= 0.6.3)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.0, >= 1.2.0)
+    actionview (6.0.3.3)
+      activesupport (= 6.0.3.3)
+      builder (~> 3.1)
+      erubi (~> 1.4)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.1, >= 1.2.0)
+    actionview_precompiler (0.2.3)
+      actionview (>= 6.0.a)
+    active_model_serializers (0.8.4)
+      activemodel (>= 3.0)
+    activejob (6.0.3.3)
+      activesupport (= 6.0.3.3)
+      globalid (>= 0.3.6)
+    activemodel (6.0.3.3)
+      activesupport (= 6.0.3.3)
+    activerecord (6.0.3.3)
+      activemodel (= 6.0.3.3)
+      activesupport (= 6.0.3.3)
+    activesupport (6.0.3.3)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+      zeitwerk (~> 2.2, >= 2.2.2)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    annotate (3.1.1)
+      activerecord (>= 3.2, < 7.0)
+      rake (>= 10.4, < 14.0)
+    ast (2.4.1)
+    aws-eventstream (1.1.0)
+    aws-partitions (1.390.0)
+    aws-sdk-core (3.109.2)
+      aws-eventstream (~> 1, >= 1.0.2)
+      aws-partitions (~> 1, >= 1.239.0)
+      aws-sigv4 (~> 1.1)
+      jmespath (~> 1.0)
+    aws-sdk-kms (1.39.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-s3 (1.83.2)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sdk-kms (~> 1)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sns (1.35.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sigv4 (1.2.2)
+      aws-eventstream (~> 1, >= 1.0.2)
+    barber (0.12.2)
+      ember-source (>= 1.0, < 3.1)
+      execjs (>= 1.2, < 3)
+    better_errors (2.9.1)
+      coderay (>= 1.0.0)
+      erubi (>= 1.0.0)
+      rack (>= 0.9.0)
+    binding_of_caller (0.8.0)
+      debug_inspector (>= 0.0.1)
+    bootsnap (1.5.1)
+      msgpack (~> 1.0)
+    builder (3.2.4)
+    bullet (6.1.0)
+      activesupport (>= 3.0.0)
+      uniform_notifier (~> 1.11)
+    byebug (11.1.3)
+    cbor (0.5.9.6)
+    certified (1.0.0)
+    chunky_png (1.3.14)
+    coderay (1.1.3)
+    colored2 (3.1.2)
+    concurrent-ruby (1.1.7)
+    connection_pool (2.2.3)
+    cose (1.2.0)
+      cbor (~> 0.5.9)
+      openssl-signature_algorithm (~> 1.0)
+    cppjieba_rb (0.3.3)
+    crack (0.4.4)
+    crass (1.0.6)
+    css_parser (1.7.1)
+      addressable
+    debug_inspector (0.0.3)
+    diff-lcs (1.4.4)
+    diffy (3.4.0)
+    discourse-ember-rails (0.18.6)
+      active_model_serializers
+      ember-data-source (>= 1.0.0.beta.5)
+      ember-handlebars-template (>= 0.1.1, < 1.0)
+      ember-source (>= 1.1.0)
+      jquery-rails (>= 1.0.17)
+      railties (>= 3.1)
+    discourse-ember-source (3.12.2.2)
+    discourse-fonts (0.0.5)
+    discourse_image_optim (0.26.2)
+      exifr (~> 1.2, >= 1.2.2)
+      fspath (~> 3.0)
+      image_size (~> 1.5)
+      in_threads (~> 1.3)
+      progress (~> 3.0, >= 3.0.1)
+    docile (1.3.2)
+    email_reply_trimmer (0.1.13)
+    ember-data-source (3.0.2)
+      ember-source (>= 2, < 3.0)
+    ember-handlebars-template (0.8.0)
+      barber (>= 0.11.0)
+      sprockets (>= 3.3, < 4.1)
+    ember-source (2.18.2)
+    erubi (1.10.0)
+    excon (0.78.0)
+    execjs (2.7.0)
+    exifr (1.3.9)
+    fabrication (2.21.1)
+    fakeweb (1.3.0)
+    faraday (1.1.0)
+      multipart-post (>= 1.2, < 3)
+      ruby2_keywords
+    fast_blank (1.0.0)
+    fast_xs (0.8.0)
+    fastimage (2.2.0)
+    ffi (1.13.1)
+    flamegraph (0.9.5)
+    fspath (3.1.2)
+    gc_tracer (1.5.1)
+    globalid (0.4.2)
+      activesupport (>= 4.2.0)
+    guess_html_encoding (0.0.11)
+    hashdiff (1.0.1)
+    hashie (4.1.0)
+    highline (2.0.3)
+    hkdf (0.3.0)
+    htmlentities (4.3.4)
+    http_accept_language (2.1.1)
+    i18n (1.8.5)
+      concurrent-ruby (~> 1.0)
+    image_size (1.5.0)
+    in_threads (1.5.4)
+    jmespath (1.4.0)
+    jquery-rails (4.4.0)
+      rails-dom-testing (>= 1, < 3)
+      railties (>= 4.2.0)
+      thor (>= 0.14, < 2.0)
+    json (2.3.1)
+    json-schema (2.8.1)
+      addressable (>= 2.4)
+    jwt (2.2.2)
+    kgio (2.11.3)
+    libv8 (8.4.255.0)
+    listen (3.3.1)
+      rb-fsevent (~> 0.10, >= 0.10.3)
+      rb-inotify (~> 0.9, >= 0.9.10)
+    lograge (0.11.2)
+      actionpack (>= 4)
+      activesupport (>= 4)
+      railties (>= 4)
+      request_store (~> 1.0)
+    logstash-event (1.2.02)
+    logstash-logger (0.26.1)
+      logstash-event (~> 1.2)
+    logster (2.9.4)
+    loofah (2.8.0)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.5.9)
+    lru_redux (1.1.0)
+    lz4-ruby (0.3.3)
+    mail (2.7.1)
+      mini_mime (>= 0.1.1)
+    maxminddb (0.1.22)
+    memory_profiler (0.9.14)
+    message_bus (3.3.4)
+      rack (>= 1.1.3)
+    method_source (1.0.0)
+    mini_mime (1.0.2)
+    mini_portile2 (2.4.0)
+    mini_racer (0.3.1)
+      libv8 (~> 8.4.255)
+    mini_scheduler (0.12.3)
+      sidekiq
+    mini_sql (0.3)
+    mini_suffix (0.3.0)
+      ffi (~> 1.9)
+    minitest (5.14.2)
+    mocha (1.11.2)
+    mock_redis (0.26.0)
+    msgpack (1.3.3)
+    multi_json (1.15.0)
+    multi_xml (0.6.0)
+    multipart-post (2.1.1)
+    mustache (1.1.1)
+    nio4r (2.5.4)
+    nokogiri (1.10.10)
+      mini_portile2 (~> 2.4.0)
+    nokogumbo (2.0.2)
+      nokogiri (~> 1.8, >= 1.8.4)
+    oauth (0.5.4)
+    oauth2 (1.4.4)
+      faraday (>= 0.8, < 2.0)
+      jwt (>= 1.0, < 3.0)
+      multi_json (~> 1.3)
+      multi_xml (~> 0.5)
+      rack (>= 1.2, < 3)
+    oj (3.10.16)
+    omniauth (1.9.1)
+      hashie (>= 3.4.6)
+      rack (>= 1.6.2, < 3)
+    omniauth-facebook (8.0.0)
+      omniauth-oauth2 (~> 1.2)
+    omniauth-github (1.4.0)
+      omniauth (~> 1.5)
+      omniauth-oauth2 (>= 1.4.0, < 2.0)
+    omniauth-google-oauth2 (0.8.0)
+      jwt (>= 2.0)
+      omniauth (>= 1.1.1)
+      omniauth-oauth2 (>= 1.6)
+    omniauth-oauth (1.1.0)
+      oauth
+      omniauth (~> 1.0)
+    omniauth-oauth2 (1.7.0)
+      oauth2 (~> 1.4)
+      omniauth (~> 1.9)
+    omniauth-twitter (1.4.0)
+      omniauth-oauth (~> 1.1)
+      rack
+    onebox (2.2.1)
+      addressable (~> 2.7.0)
+      htmlentities (~> 4.3)
+      multi_json (~> 1.11)
+      mustache
+      nokogiri (~> 1.7)
+      sanitize
+    openssl-signature_algorithm (1.0.0)
+    optimist (3.0.1)
+    parallel (1.20.1)
+    parallel_tests (3.4.0)
+      parallel
+    parser (2.7.2.0)
+      ast (~> 2.4.1)
+    pg (1.2.3)
+    progress (3.5.2)
+    pry (0.13.1)
+      coderay (~> 1.1)
+      method_source (~> 1.0)
+    pry-byebug (3.9.0)
+      byebug (~> 11.0)
+      pry (~> 0.13.0)
+    pry-rails (0.3.9)
+      pry (>= 0.10.4)
+    public_suffix (4.0.6)
+    puma (5.0.4)
+      nio4r (~> 2.0)
+    r2 (0.2.7)
+    rack (2.2.3)
+    rack-mini-profiler (2.2.0)
+      rack (>= 1.2.0)
+    rack-protection (2.1.0)
+      rack
+    rack-test (1.1.0)
+      rack (>= 1.0, < 3)
+    rails-dom-testing (2.0.3)
+      activesupport (>= 4.2.0)
+      nokogiri (>= 1.6)
+    rails-html-sanitizer (1.3.0)
+      loofah (~> 2.3)
+    rails_failover (0.6.2)
+      activerecord (~> 6.0)
+      concurrent-ruby
+      railties (~> 6.0)
+    rails_multisite (2.5.0)
+      activerecord (> 5.0, < 7)
+      railties (> 5.0, < 7)
+    railties (6.0.3.3)
+      actionpack (= 6.0.3.3)
+      activesupport (= 6.0.3.3)
+      method_source
+      rake (>= 0.8.7)
+      thor (>= 0.20.3, < 2.0)
+    rainbow (3.0.0)
+    raindrops (0.19.1)
+    rake (13.0.1)
+    rb-fsevent (0.10.4)
+    rb-inotify (0.10.1)
+      ffi (~> 1.0)
+    rbtrace (0.4.14)
+      ffi (>= 1.0.6)
+      msgpack (>= 0.4.3)
+      optimist (>= 3.0.0)
+    rchardet (1.8.0)
+    redis (4.2.5)
+    redis-namespace (1.8.0)
+      redis (>= 3.0.4)
+    regexp_parser (2.0.0)
+    request_store (1.5.0)
+      rack (>= 1.4)
+    rexml (3.2.4)
+    rinku (2.0.6)
+    rotp (6.2.0)
+    rqrcode (1.1.2)
+      chunky_png (~> 1.0)
+      rqrcode_core (~> 0.1)
+    rqrcode_core (0.1.2)
+    rspec (3.10.0)
+      rspec-core (~> 3.10.0)
+      rspec-expectations (~> 3.10.0)
+      rspec-mocks (~> 3.10.0)
+    rspec-core (3.10.0)
+      rspec-support (~> 3.10.0)
+    rspec-expectations (3.10.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.10.0)
+    rspec-html-matchers (0.9.4)
+      nokogiri (~> 1)
+      rspec (>= 3.0.0.a, < 4)
+    rspec-mocks (3.10.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.10.0)
+    rspec-rails (4.0.1)
+      actionpack (>= 4.2)
+      activesupport (>= 4.2)
+      railties (>= 4.2)
+      rspec-core (~> 3.9)
+      rspec-expectations (~> 3.9)
+      rspec-mocks (~> 3.9)
+      rspec-support (~> 3.9)
+    rspec-support (3.10.0)
+    rswag-specs (2.3.1)
+      activesupport (>= 3.1, < 7.0)
+      json-schema (~> 2.2)
+      railties (>= 3.1, < 7.0)
+    rtlit (0.0.5)
+    rubocop (1.4.2)
+      parallel (~> 1.10)
+      parser (>= 2.7.1.5)
+      rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 1.8)
+      rexml
+      rubocop-ast (>= 1.1.1)
+      ruby-progressbar (~> 1.7)
+      unicode-display_width (>= 1.4.0, < 2.0)
+    rubocop-ast (1.2.0)
+      parser (>= 2.7.1.5)
+    rubocop-discourse (2.4.1)
+      rubocop (>= 1.1.0)
+      rubocop-rspec (>= 2.0.0)
+    rubocop-rspec (2.0.0)
+      rubocop (~> 1.0)
+      rubocop-ast (>= 1.1.0)
+    ruby-prof (1.4.2)
+    ruby-progressbar (1.10.1)
+    ruby-readability (0.7.0)
+      guess_html_encoding (>= 0.0.4)
+      nokogiri (>= 1.6.0)
+    ruby2_keywords (0.0.2)
+    rubyzip (2.3.0)
+    sanitize (5.2.1)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.8.0)
+      nokogumbo (~> 2.0)
+    sassc (2.0.1)
+      ffi (~> 1.9)
+      rake
+    sassc-rails (2.1.2)
+      railties (>= 4.0.0)
+      sassc (>= 2.0)
+      sprockets (> 3.0)
+      sprockets-rails
+      tilt
+    seed-fu (2.3.9)
+      activerecord (>= 3.1)
+      activesupport (>= 3.1)
+    shoulda-matchers (4.4.1)
+      activesupport (>= 4.2.0)
+    sidekiq (6.1.2)
+      connection_pool (>= 2.2.2)
+      rack (~> 2.0)
+      redis (>= 4.2.0)
+    simplecov (0.20.0)
+      docile (~> 1.1)
+      simplecov-html (~> 0.11)
+      simplecov_json_formatter (~> 0.1)
+    simplecov-html (0.12.3)
+    simplecov_json_formatter (0.1.2)
+    sprockets (3.7.2)
+      concurrent-ruby (~> 1.0)
+      rack (> 1, < 3)
+    sprockets-rails (3.2.2)
+      actionpack (>= 4.0)
+      activesupport (>= 4.0)
+      sprockets (>= 3.0.0)
+    sshkey (2.0.0)
+    stackprof (0.2.16)
+    test-prof (0.12.2)
+    thor (1.0.1)
+    thread_safe (0.3.6)
+    tilt (2.0.10)
+    tzinfo (1.2.8)
+      thread_safe (~> 0.1)
+    uglifier (4.2.0)
+      execjs (>= 0.3.0, < 3)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.7)
+    unicode-display_width (1.7.0)
+    unicorn (5.7.0)
+      kgio (~> 2.6)
+      raindrops (~> 0.7)
+    uniform_notifier (1.13.0)
+    webmock (3.10.0)
+      addressable (>= 2.3.6)
+      crack (>= 0.3.2)
+      hashdiff (>= 0.4.0, < 2.0.0)
+    webpush (1.1.0)
+      hkdf (~> 0.2)
+      jwt (~> 2.0)
+    xorcist (1.1.2)
+    yaml-lint (0.0.10)
+    zeitwerk (2.4.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  actionmailer (= 6.0.3.3)
+  actionpack (= 6.0.3.3)
+  actionview (= 6.0.3.3)
+  actionview_precompiler
+  active_model_serializers (~> 0.8.3)
+  activemodel (= 6.0.3.3)
+  activerecord (= 6.0.3.3)
+  activesupport (= 6.0.3.3)
+  addressable
+  annotate
+  aws-sdk-s3
+  aws-sdk-sns
+  barber
+  better_errors
+  binding_of_caller
+  bootsnap
+  bullet
+  byebug
+  cbor
+  certified
+  colored2
+  cose
+  cppjieba_rb
+  css_parser
+  diffy
+  discourse-ember-rails (= 0.18.6)
+  discourse-ember-source (~> 3.12.2)
+  discourse-fonts
+  discourse_image_optim
+  email_reply_trimmer
+  ember-handlebars-template (= 0.8.0)
+  excon
+  execjs
+  fabrication
+  fakeweb
+  fast_blank
+  fast_xs
+  fastimage
+  flamegraph
+  gc_tracer
+  highline
+  htmlentities
+  http_accept_language
+  json
+  listen
+  lograge
+  logstash-event
+  logstash-logger
+  logster
+  lru_redux
+  lz4-ruby
+  mail
+  maxminddb
+  memory_profiler
+  message_bus
+  mini_mime
+  mini_racer
+  mini_scheduler
+  mini_sql
+  mini_suffix
+  minitest
+  mocha
+  mock_redis
+  multi_json
+  mustache
+  nokogiri
+  oj
+  omniauth
+  omniauth-facebook
+  omniauth-github
+  omniauth-google-oauth2
+  omniauth-oauth2
+  omniauth-twitter
+  onebox
+  parallel_tests
+  pg
+  pry-byebug
+  pry-rails
+  puma
+  r2
+  rack
+  rack-mini-profiler
+  rack-protection
+  rails_failover
+  rails_multisite
+  railties (= 6.0.3.3)
+  rake
+  rb-fsevent
+  rbtrace
+  rchardet
+  redis
+  redis-namespace
+  rinku
+  rotp
+  rqrcode
+  rspec
+  rspec-html-matchers
+  rspec-rails
+  rswag-specs
+  rtlit
+  rubocop-discourse
+  ruby-prof
+  ruby-readability
+  rubyzip
+  sassc (= 2.0.1)
+  sassc-rails
+  seed-fu
+  shoulda-matchers
+  sidekiq
+  simplecov
+  sprockets (= 3.7.2)
+  sprockets-rails
+  sshkey
+  stackprof
+  test-prof
+  thor
+  uglifier
+  unf
+  unicorn
+  webmock
+  webpush
+  xorcist
+  yaml-lint
+
+BUNDLED WITH
+   2.1.4
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
new file mode 100644
index 000000000000..b2cf191a4444
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
@@ -0,0 +1,2272 @@
+{
+  actionmailer = {
+    dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1spq0dbfn0qkqg9sq0rsjn360b4j36zly8hawaivkrwr3rsvyz75";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  actionpack = {
+    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p873nqwmpsvmkb5n86d70wndx1qhy15pc9mbcd1mc8sj174578b";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  actionview = {
+    dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08pvmjddlw01q5r9zdfgddwp4csndpf5i2w47677z5r36jznz36q";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  actionview_precompiler = {
+    dependencies = ["actionview"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07dx8vkwig8han4zccs0chahcf9ibd4abzx9n56qah8zak5cyrhd";
+      type = "gem";
+    };
+    version = "0.2.3";
+  };
+  active_model_serializers = {
+    dependencies = ["activemodel"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k3mgia2ahh7mbk30hjq9pzqbk0kh281s91kq2z6p555nv9y6l3k";
+      type = "gem";
+    };
+    version = "0.8.4";
+  };
+  activejob = {
+    dependencies = ["activesupport" "globalid"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w54ckvc229iaax879hkhyc93j7z8p0v7acp6mk3h8xjfvmwy5jp";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  activemodel = {
+    dependencies = ["activesupport"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "166jlx6kbby01vr37srh081a9fykgsz873yg5i9gl2ar3vw9gs56";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y2a4ss6ld6yrhpcbcb3kjn5gj6zk9qklp2aq5rl1awl8vbdbdb7";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dmkqbvndbz011a1byg6f990936vfadbnwjwjw9vjzr4kd8bxk96";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  annotate = {
+    dependencies = ["activerecord" "rake"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dxrfppwfg13vqmambbs56xjj8qsdgcy58r2yc44vvy3z1g5yflw";
+      type = "gem";
+    };
+    version = "3.1.1";
+  };
+  ast = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  aws-eventstream = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  aws-partitions = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17xranmng1mg6238zdmnfvaig82r2ymp2apra9yh5d8rhvn8hkwm";
+      type = "gem";
+    };
+    version = "1.390.0";
+  };
+  aws-sdk-core = {
+    dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05dq7jfv5qf1y00ib96nqsipf08hflw8n8fwkyjw4qav84wjqaq4";
+      type = "gem";
+    };
+    version = "3.109.2";
+  };
+  aws-sdk-kms = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ly1m631qm2ciif7sysbzrgczjvz95ga3g6w6vrzvfdv31jjnl9a";
+      type = "gem";
+    };
+    version = "1.39.0";
+  };
+  aws-sdk-s3 = {
+    dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mld0yh6q6i2nbb143g5xc6gm70sqpvpwxfknlihrd8jmw3xc0bs";
+      type = "gem";
+    };
+    version = "1.83.2";
+  };
+  aws-sdk-sns = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dw80ldqhb1mny5irgi2jh36hykcmyd07xalv21xncxqzmf8aiag";
+      type = "gem";
+    };
+    version = "1.35.0";
+  };
+  aws-sigv4 = {
+    dependencies = ["aws-eventstream"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  barber = {
+    dependencies = ["ember-source" "execjs"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07rnlbh7kgamcbnl1sqlcdrjj8src4qc687klqq4a3vqq2slnscx";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  better_errors = {
+    dependencies = ["coderay" "erubi" "rack"];
+    groups = ["development"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11220lfzhsyf5fcril3qd689kgg46qlpiiaj00hc9mh4mcbc3vrr";
+      type = "gem";
+    };
+    version = "2.9.1";
+  };
+  binding_of_caller = {
+    dependencies = ["debug_inspector"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  bootsnap = {
+    dependencies = ["msgpack"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qx1f729bgh391agsqb4ngzn22wdn4cc6mkp0cipf0d5hsg9cpaq";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  builder = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
+  bullet = {
+    dependencies = ["activesupport" "uniform_notifier"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18ifwnvn13755qkfigapyj5bflpby3phxzbb7x5336d0kzv5k7d9";
+      type = "gem";
+    };
+    version = "6.1.0";
+  };
+  byebug = {
+    groups = ["development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194";
+      type = "gem";
+    };
+    version = "11.1.3";
+  };
+  cbor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3";
+      type = "gem";
+    };
+    version = "0.5.9.6";
+  };
+  certified = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1706p6p0a8adyvd943af2a3093xakvislgffw3v9dvp7j07dyk5a";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  chunky_png = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v52ndgx9r4jybq8yzr8anzfbnjk4y2hvz97nm9924wi4bad3xkf";
+      type = "gem";
+    };
+    version = "1.3.14";
+  };
+  coderay = {
+    groups = ["default" "development"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  colored2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  concurrent-ruby = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      type = "gem";
+    };
+    version = "1.1.7";
+  };
+  connection_pool = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qikl4av1z8kqnk5ba18136dpqzw8wjawc2w9b4zb5psdd5z8nwf";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  cose = {
+    dependencies = ["cbor" "openssl-signature_algorithm"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gx239d2fracq9az74wfdwmp5zm7zpzkcgchwnv2ng33d8r33p3m";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  cppjieba_rb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sslff7yy8jvp4rcn1b6jn9v0d3iibb68i79shgd94rs2yq8k117";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  crack = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1awi8jy4jn0f7vxpdvz3xvn1zzjbjh33n28lfkijh77dla5zb7lc";
+      type = "gem";
+    };
+    version = "0.4.4";
+  };
+  crass = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  css_parser = {
+    dependencies = ["addressable"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
+  debug_inspector = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  diff-lcs = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz";
+      type = "gem";
+    };
+    version = "1.4.4";
+  };
+  diffy = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nrg7kpgz6cn1gv2saj2fa5sfiykamvd7vn9lw2v625k7pjwf31l";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  discourse-ember-rails = {
+    dependencies = ["active_model_serializers" "ember-data-source" "ember-handlebars-template" "ember-source" "jquery-rails" "railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ax5x2d6q6hkm7r58ai9p0sahlg842aqlm7dpv6svrfpnjlaz7sf";
+      type = "gem";
+    };
+    version = "0.18.6";
+  };
+  discourse-ember-source = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mqkwiqb5n64lc5jdjnmpgb9apq08ywkz9yk8mj1sx2lqcsw11pc";
+      type = "gem";
+    };
+    version = "3.12.2.2";
+  };
+  discourse-fonts = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xhwgqclh3jncjr55m0hyq3w3iw8jw2r7ickzq1zn1282pc3n2i7";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  discourse_image_optim = {
+    dependencies = ["exifr" "fspath" "image_size" "in_threads" "progress"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11nqmga5ygxyhjmsc07gsa0fwwyhdpwi20yyr4fnh263xs1xylvv";
+      type = "gem";
+    };
+    version = "0.26.2";
+  };
+  docile = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  email_reply_trimmer = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jgcxifm48xq5dz9k47q43pqm5bfnf14l62l3bqhmv8f6z8dw4ki";
+      type = "gem";
+    };
+    version = "0.1.13";
+  };
+  ember-data-source = {
+    dependencies = ["ember-source"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1803nh3knvwl12h63jd48qvbbrp42yy291wcb35960daklip0fd8";
+      type = "gem";
+    };
+    version = "3.0.2";
+  };
+  ember-handlebars-template = {
+    dependencies = ["barber" "sprockets"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wxj3vi4xs3vjxrdbzi4j4w6vv45r5dkz2rg2ldid3p8dp3irlf4";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  ember-source = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sixy30ym9j2slhlr0lfq943g958w8arlb0lsizh59iv1w5gmxxy";
+      type = "gem";
+    };
+    version = "2.18.2";
+  };
+  erubi = {
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hi89v53pm2abfv9j8lgqdd7hgkr7fr0gwrczr940iwbb3xv7rrs";
+      type = "gem";
+    };
+    version = "0.78.0";
+  };
+  execjs = {
+    groups = ["assets" "default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  exifr = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mylhwmh6n4xihxr9s3zj0lc286f5maxbqd4dgk3paqnd7afz88s";
+      type = "gem";
+    };
+    version = "1.3.9";
+  };
+  fabrication = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pdrl55xf76pbc5kjzp7diawxxvgbk2cm38532in6df823431n6z";
+      type = "gem";
+    };
+    version = "2.21.1";
+  };
+  fakeweb = {
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a09z9nb369bvwpghncgd5y4f95lh28w0q258srh02h22fz9dj8y";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  faraday = {
+    dependencies = ["multipart-post" "ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16dapwi5pivrl25r4lkr1mxjrzkznj4wlcb08fzkmxnj4g5c6y35";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  fast_blank = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  fast_xs = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1iydzaqmvqq7ncxkr182aybkk6xap0cb2w9amr73vbdxi2qf3wjz";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  fastimage = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11ny2pj0j6pljszrf1w3iqdv2pcl2iwwghjbgcjlizy424zbh0hb";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  ffi = {
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  flamegraph = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p785nmhdzbwj0qpxn5fzrmr4kgimcds83v4f95f387z6w3050x6";
+      type = "gem";
+    };
+    version = "0.9.5";
+  };
+  fspath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xcxikkrjv8ws328nn5ax5pyfjs8pn7djg1hks7qyb3yp6prpb5m";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  gc_tracer = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yv3mp8lx74lfzs04fd5h4g89209iwhzpc407y35p7cmzgx6a4kv";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  globalid = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  guess_html_encoding = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16700fk6kmif3q3kpc1ldhy3nsc9pkxlgl8sqhznff2zjj5lddna";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
+  hashdiff = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  hashie = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02bsx12ihl78x0vdm37byp78jjw2ff6035y7rrmbd90qxjwxr43q";
+      type = "gem";
+    };
+    version = "4.1.0";
+  };
+  highline = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  hkdf = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04fixg0a51n4vy0j6c1hvisa2yl33m3jrrpxpb5sq6j511vjriil";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  htmlentities = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+      type = "gem";
+    };
+    version = "4.3.4";
+  };
+  http_accept_language = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d0nlfz9vm4jr1l6q0chx4rp2hrnrfbx3gadc1dz930lbbaz0hq0";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  image_size = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zrn2mqaf1kk548wn1y35i1a6kwh3320q62m929kn9m8sqpy4fk7";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  in_threads = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m71806p1gm4kxiz4gvkyr8qip16hifn2kdf926jz44jj6kc6bbs";
+      type = "gem";
+    };
+    version = "1.5.4";
+  };
+  jmespath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  jquery-rails = {
+    dependencies = ["rails-dom-testing" "railties" "thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dkhm8lan1vnyl3ll0ks2q06576pdils8a1dr354vfc1y5dqw15i";
+      type = "gem";
+    };
+    version = "4.4.0";
+  };
+  json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      type = "gem";
+    };
+    version = "2.3.1";
+  };
+  json-schema = {
+    dependencies = ["addressable"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5";
+      type = "gem";
+    };
+    version = "2.8.1";
+  };
+  jwt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  kgio = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ai6bzlvxbzpdl466p1qi4dlhx8ri2wcrp6x1l19y3yfs3a29rng";
+      type = "gem";
+    };
+    version = "2.11.3";
+  };
+  libv8 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0317sr3nrl51sp844bps71smkrwim3fjn47wdfpbycixnbxspivm";
+      type = "gem";
+    };
+    version = "8.4.255.0";
+  };
+  listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0028p1fss6pvw4mlpjqdmxfzsm8ww79irsadbibrr7f23qfn8ykr";
+      type = "gem";
+    };
+    version = "3.3.1";
+  };
+  lograge = {
+    dependencies = ["actionpack" "activesupport" "railties" "request_store"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vrjm4yqn5l6q5gsl72fmk95fl6j9z1a05gzbrwmsm3gp1a1bgac";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  logstash-event = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bk7fhhryjxp1klr3hq6i6srrc21wl4p980bysjp0w66z9hdr9w9";
+      type = "gem";
+    };
+    version = "1.2.02";
+  };
+  logstash-logger = {
+    dependencies = ["logstash-event"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nh0jgz4rl46axqb9l0fa866kh34wb7yf11qc3j30xhprdqb8yjp";
+      type = "gem";
+    };
+    version = "0.26.1";
+  };
+  logster = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ldikj3p0bakxg57didaw05pldjn0i5r20zawhqa34knlsqm66r6";
+      type = "gem";
+    };
+    version = "2.9.4";
+  };
+  loofah = {
+    dependencies = ["crass" "nokogiri"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  lru_redux = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yxghzg7476sivz8yyr9nkak2dlbls0b89vc2kg52k0nmg6d0wgf";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  lz4-ruby = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12fymsvcb9kw6ycyfzc8b9svriq0afqf1qnl121xrz8c4gpfa6q1";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  mail = {
+    dependencies = ["mini_mime"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  maxminddb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zlhqilyggiryywgswfi624bv10qnkm66hggmg79vvgv73j3p4sh";
+      type = "gem";
+    };
+    version = "0.1.22";
+  };
+  memory_profiler = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04ivhv1bilwqm33jv28gar2vwzsichb5nipaq395d3axabv8qmfy";
+      type = "gem";
+    };
+    version = "0.9.14";
+  };
+  message_bus = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hckijk9aa628nx66vr7axfsk7zfdkskaxj1mdzikk019q3h54fr";
+      type = "gem";
+    };
+    version = "3.3.4";
+  };
+  method_source = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  mini_mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  mini_portile2 = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  mini_racer = {
+    dependencies = ["libv8"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r7j241mvhyyc017bqgp0pvf3jyrwbcqvz2pzm0r8zn2r85ks1jl";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  mini_scheduler = {
+    dependencies = ["sidekiq"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vigv7f1q5bkcb55ab2lyhq15yqfkg5mq61p7m7mw9b3jac7qjz1";
+      type = "gem";
+    };
+    version = "0.12.3";
+  };
+  mini_sql = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qi4bj5jkh3673ybsxvsf7y485znyxb72vxg84gk9x65mf0y0m6h";
+      type = "gem";
+    };
+    version = "0.3";
+  };
+  mini_suffix = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bxd1fgzb20gvfvhbkrxym9fr7skm5x6fzvqfg4a0jijb34ww50h";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  minitest = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+      type = "gem";
+    };
+    version = "5.14.2";
+  };
+  mocha = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hxmkm8qxd04vwj8mqnpyrf2dwy7g1k9zipdfhl4y71cw7ijm9n4";
+      type = "gem";
+    };
+    version = "1.11.2";
+  };
+  mock_redis = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06yj6j9x4zjckah4ixiwhy3hb6xzjp7yk7lmmcvcb8hpd0z0x95q";
+      type = "gem";
+    };
+    version = "0.26.0";
+  };
+  msgpack = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lva6bkvb4mfa0m3bqn4lm4s4gi81c40jvdcsrxr6vng49q9daih";
+      type = "gem";
+    };
+    version = "1.3.3";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  multi_xml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  multipart-post = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  mustache = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l0p4wx15mi3wnamfv92ipkia4nsx8qi132c6g51jfdma3fiz2ch";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  nio4r = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cbwp1kbv6b2qfxv8sarv0d0ilb257jihlvdqj8f5pdm0ksq1sgk";
+      type = "gem";
+    };
+    version = "2.5.4";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      type = "gem";
+    };
+    version = "1.10.10";
+  };
+  nokogumbo = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sxjnpjvrn10gdmfw2dimhch861lz00f28hvkkz0b1gc2rb65k9s";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  oauth = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+      type = "gem";
+    };
+    version = "0.5.4";
+  };
+  oauth2 = {
+    dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bhakjh30vi8scqwnhd1c9qkac9r8hh2lr0dbs5ynwmrc5djxknm";
+      type = "gem";
+    };
+    version = "1.4.4";
+  };
+  oj = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqmzqldi9a0wpilwx87yh61xd7647gg8ffammg4ava0bsx375g2";
+      type = "gem";
+    };
+    version = "3.10.16";
+  };
+  omniauth = {
+    dependencies = ["hashie" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "002vi9gwamkmhf0dsj2im1d47xw2n1jfhnzl18shxf3ampkqfmyz";
+      type = "gem";
+    };
+    version = "1.9.1";
+  };
+  omniauth-facebook = {
+    dependencies = ["omniauth-oauth2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z0f5sr2ddnvfva0jrfd4926nlv4528rfj7z595288n39304r092";
+      type = "gem";
+    };
+    version = "8.0.0";
+  };
+  omniauth-github = {
+    dependencies = ["omniauth" "omniauth-oauth2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xbk0dbxqfpyfb33ghz6vrlz3m6442rp18ryf13gwzlnifcawhlb";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  omniauth-google-oauth2 = {
+    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17pgqasl048irs2c6w6g57zvk0ygb5ml1krwir4qi4b6y53zyr55";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  omniauth-oauth = {
+    dependencies = ["oauth" "omniauth"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  omniauth-oauth2 = {
+    dependencies = ["oauth2" "omniauth"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v6rw7sd223k7qw0l13wikgfcqbvbk81r53a9i2z0k7jl5vd97w5";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  omniauth-twitter = {
+    dependencies = ["omniauth-oauth" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  onebox = {
+    dependencies = ["addressable" "htmlentities" "multi_json" "mustache" "nokogiri" "sanitize"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b2aih0d5cva9bris36gh1mk3ym61wgxlpwvzjd6qphdrjfzqx8v";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  openssl-signature_algorithm = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h1pfx49j8d9vbdbi8jyj0mr63l7rhflgvgc0nhfygm1v77d7nkn";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  optimist = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk";
+      type = "gem";
+    };
+    version = "3.0.1";
+  };
+  parallel = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
+      type = "gem";
+    };
+    version = "1.20.1";
+  };
+  parallel_tests = {
+    dependencies = ["parallel"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mvdk8vgzqjv2pvadxwc8w2vf8dmiw145rjf47c36nn6l5hh02j6";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  parser = {
+    dependencies = ["ast"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f7gmm60yla325wlnd3qkxs59qm2y0aan8ljpg6k18rwzrrfil6z";
+      type = "gem";
+    };
+    version = "2.7.2.0";
+  };
+  pg = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  progress = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pm3bv5n8c8j0vfm7wghd7xf6yq4m068cksxjldmna11qi0h0s8s";
+      type = "gem";
+    };
+    version = "3.5.2";
+  };
+  pry = {
+    dependencies = ["coderay" "method_source"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iyw4q4an2wmk8v5rn2ghfy2jaz9vmw2nk8415nnpx2s866934qk";
+      type = "gem";
+    };
+    version = "0.13.1";
+  };
+  pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv";
+      type = "gem";
+    };
+    version = "3.9.0";
+  };
+  pry-rails = {
+    dependencies = ["pry"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6";
+      type = "gem";
+    };
+    version = "0.3.9";
+  };
+  public_suffix = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
+  puma = {
+    dependencies = ["nio4r"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mkmfbf4qyiknwi9bb5432cpbbz06r855gknxb8grn24gmgs4d9i";
+      type = "gem";
+    };
+    version = "5.0.4";
+  };
+  r2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wk0p55zp3l96xy5ps28b33dn5z0jwsjl74bwfdn6z81pzjs5sfk";
+      type = "gem";
+    };
+    version = "0.2.7";
+  };
+  rack = {
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  rack-mini-profiler = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05s7y56ayn56bn7y5ah3krm5d53vsj7apmcxlwc2qp7ik0xlypvq";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "159a4j4kragqh0z0z8vrpilpmaisnlz3n7kgiyf16bxkwlb3qlhz";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  rails-dom-testing = {
+    dependencies = ["activesupport" "nokogiri"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  rails-html-sanitizer = {
+    dependencies = ["loofah"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  rails_failover = {
+    dependencies = ["activerecord" "concurrent-ruby" "railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ibxn7lk6rqk7q76cd9ir3xnh19p2pqr9mzam46n3h37f12yyax5";
+      type = "gem";
+    };
+    version = "0.6.2";
+  };
+  rails_multisite = {
+    dependencies = ["activerecord" "railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p7g9gkcmw030zfqlw3k933i40j31wf3jh4bj1niihzk7slha97y";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  railties = {
+    dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05b79r0ms8jrs91zml1190qfxmnmks90g0sd820ks9msyr8xdp7j";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  rainbow = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  raindrops = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zjja00mzgx2lddb7qrn14k7qrnwhf4bpmnlqj78m1pfxh7svync";
+      type = "gem";
+    };
+    version = "0.19.1";
+  };
+  rake = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      type = "gem";
+    };
+    version = "13.0.1";
+  };
+  rb-fsevent = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87";
+      type = "gem";
+    };
+    version = "0.10.4";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
+      type = "gem";
+    };
+    version = "0.10.1";
+  };
+  rbtrace = {
+    dependencies = ["ffi" "msgpack" "optimist"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn";
+      type = "gem";
+    };
+    version = "0.4.14";
+  };
+  rchardet = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  redis = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15x2sr6h094rjbvg8pkq6m3lcd5abpyx93aifvfdz3wv6x55xa48";
+      type = "gem";
+    };
+    version = "4.2.5";
+  };
+  redis-namespace = {
+    dependencies = ["redis"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05i6s898z5w31z385cba1683pgg5nnmj4m686cbravg7j4pgbcgv";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  regexp_parser = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1racz3w9s4w0ls32bvjypfifk4a7qxngm2cv1rh16jyz0c1wjd70";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  request_store = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cx74kispmnw3ljwb239j65a2j14n8jlsygy372hrsa8mxc71hxi";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  rexml = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
+  rinku = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zcdha17s1wzxyc5814j6319wqg33jbn58pg6wmxpws36476fq4b";
+      type = "gem";
+    };
+    version = "2.0.6";
+  };
+  rotp = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11q7rkjx40yi6lpylgl2jkpy162mjw7mswrcgcax86vgpbpjx6i3";
+      type = "gem";
+    };
+    version = "6.2.0";
+  };
+  rqrcode = {
+    dependencies = ["chunky_png" "rqrcode_core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06lw8b6wfshxd61xw98xyp1a0zsz6av4nls2c9fwb7q59wb05sci";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  rqrcode_core = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "071jqmhk3hf0grsvi0jx5sl449pf82p40ls5b3likbq4q516zc0j";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dwai7jnwmdmd7ajbi2q0k0lx1dh88knv5wl7c34wjmf94yv8w5q";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n2rdv8f26yw8c6asymc0mgddyr5d2b5n6mfvpd3n6lnpf1jdyv2";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j37dvnvfbjwj8dqx27yfvz0frl7f2jc1abqg99h0ppriz9za6dc";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rspec-html-matchers = {
+    dependencies = ["nokogiri" "rspec"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0883rqv77n2wawnk5lp3la48l7pckyz8l013qddngzmksi5p1v3f";
+      type = "gem";
+    };
+    version = "0.9.4";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pz89y1522i6f8wzrg72ykmch3318ih87nlpl0y1ghsrs5hqymw3";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rspec-rails = {
+    dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lzik01ziaskgpdpy8knffpw0fsy9151f5lfigyhb89wq4q45hfs";
+      type = "gem";
+    };
+    version = "4.0.1";
+  };
+  rspec-support = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j0n28i6zci5j7gg370bdy87dy43hlwx6dw428d9kamf5a0i2klz";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rswag-specs = {
+    dependencies = ["activesupport" "json-schema" "railties"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lyp2m76p960bvgy4xcz0dilp4w5lq2cwh8md5z7cwxdg8qsbr83";
+      type = "gem";
+    };
+    version = "2.3.1";
+  };
+  rtlit = {
+    groups = ["assets"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0srfh7cl95srjiwbyc9pmn3w739zlvyj89hyj0bm7g92zrsd27qm";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  rubocop = {
+    dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kvzhzhzcdd5bqwjilb0fpp51sqjniww2b0g713n0cvhnlgchn2y";
+      type = "gem";
+    };
+    version = "1.4.2";
+  };
+  rubocop-ast = {
+    dependencies = ["parser"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q0kdi89ad7dd1xmzrdf5ikk32bllzr68hf4x8fd7azcv5jnch2l";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  rubocop-discourse = {
+    dependencies = ["rubocop" "rubocop-rspec"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z1h8spsjnsqz6c25n9ib1yimkwr7a76bas8w1k9c404hcqhlahv";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  rubocop-rspec = {
+    dependencies = ["rubocop" "rubocop-ast"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gl7hdd9lq0si4gb510g33dbysmk3iydas2b0sbl5pwfkhv0k4g1";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  ruby-prof = {
+    groups = ["development"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lm3wdxc6gjldkb5pdwwipapf84lgrvxck4h5kg8jdfd8arrpyis";
+      type = "gem";
+    };
+    version = "1.4.2";
+  };
+  ruby-progressbar = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      type = "gem";
+    };
+    version = "1.10.1";
+  };
+  ruby-readability = {
+    dependencies = ["guess_html_encoding" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15ivhbry7hf82lww1bzcrwfyjymijfb3rb0wdd32g2z0942wdspa";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  rubyzip = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  sanitize = {
+    dependencies = ["crass" "nokogiri" "nokogumbo"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18m3zcf207gcrmghx288w3n2kpphc22lbmbc1wdx1nzcn8g2yddh";
+      type = "gem";
+    };
+    version = "5.2.1";
+  };
+  sassc = {
+    dependencies = ["ffi" "rake"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sr4825rlwsrl7xrsm0sgalcpf5zgp4i56dbi3qxfa9lhs8r6zh4";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
+  sassc-rails = {
+    dependencies = ["railties" "sassc" "sprockets" "sprockets-rails" "tilt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d9djmwn36a5m8a83bpycs48g8kh1n2xkyvghn7dr6zwh4wdyksz";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  seed-fu = {
+    dependencies = ["activerecord" "activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y7lzcshsq6i20qn1p8zczir4fivr6nbl1km91ns320vvh92v43d";
+      type = "gem";
+    };
+    version = "2.3.9";
+  };
+  shoulda-matchers = {
+    dependencies = ["activesupport"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wd1bblxr4dfmrnh3j83kvfds6a7nak4ifq37ab0pg1kdi6iiw7l";
+      type = "gem";
+    };
+    version = "4.4.1";
+  };
+  sidekiq = {
+    dependencies = ["connection_pool" "rack" "redis"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mjxrxppv08a1hwqi8gpg6n168cxqhp7c2r2jwc4rbz9j5k41vcw";
+      type = "gem";
+    };
+    version = "6.1.2";
+  };
+  simplecov = {
+    dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mm20dvd64w46l5k11il9z5sjgdpp0bknml76glcngvl2w03k3cb";
+      type = "gem";
+    };
+    version = "0.20.0";
+  };
+  simplecov-html = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb";
+      type = "gem";
+    };
+    version = "0.12.3";
+  };
+  simplecov_json_formatter = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cl3j7p3b5q7sxsx1va63c8imc5x6g99xablz08qrmqhpi0d6g6j";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  sprockets = {
+    dependencies = ["concurrent-ruby" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  sprockets-rails = {
+    dependencies = ["actionpack" "activesupport" "sprockets"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mwmz36265646xqfyczgr1mhkm1hfxgxxvgdgr4xfcbf2g72p1k2";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  sshkey = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  stackprof = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "147rb66p3n062vc433afqhkd99iazvkrqnghxgh871r62yhha93f";
+      type = "gem";
+    };
+    version = "0.2.16";
+  };
+  test-prof = {
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jfq8ylxpxanc3f0i6qb3nchawx9hj6qcqj6ccfyixrnvzswwjvi";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  thor = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  thread_safe = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tilt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv";
+      type = "gem";
+    };
+    version = "2.0.10";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0skr6ih9cr3pwp8l84f0z7fy3q9kiq8hw0sg3zqw0hpbbyj05743";
+      type = "gem";
+    };
+    version = "1.2.8";
+  };
+  uglifier = {
+    dependencies = ["execjs"];
+    groups = ["assets"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
+      type = "gem";
+    };
+    version = "0.0.7.7";
+  };
+  unicode-display_width = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  unicorn = {
+    dependencies = ["kgio" "raindrops"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qzdhbmab2w034wpdj5ippnyyvgqm8gpx9wbchb4zgs4i1mswzhv";
+      type = "gem";
+    };
+    version = "5.7.0";
+  };
+  uniform_notifier = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vm4aix8jmv42s1x58m3lj3xwkbxyn9qn6lzhhig0d1j8fv6j30c";
+      type = "gem";
+    };
+    version = "1.13.0";
+  };
+  webmock = {
+    dependencies = ["addressable" "crack" "hashdiff"];
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wbdjagk2qpr76k3zw2gmkfp5aqlrc1a4qrpjv7sq1q39qbn8xax";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  webpush = {
+    dependencies = ["hkdf" "jwt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z9ma580q80czw46gi1bvsr2iwxr63aiyr7i9gilav6hbhg3sxv3";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  xorcist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q7hr3qyn1hczv9fglqc2cbaax0fb37gjjr0y24x19mmp817csdn";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  yaml-lint = {
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m9n4sg7i0334yac7dcrhnhv5rzvrccgnh687n9x77ba3awk4yx1";
+      type = "gem";
+    };
+    version = "0.0.10";
+  };
+  zeitwerk = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12n0hiawqayzchi0yga5n19hi63b2snd49fv3n23n2i4pp05jzrp";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch b/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
new file mode 100644
index 000000000000..1dbfed679192
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
@@ -0,0 +1,25 @@
+diff --git a/config/unicorn.conf.rb b/config/unicorn.conf.rb
+index 373e235b3f..57d4d7a55b 100644
+--- a/config/unicorn.conf.rb
++++ b/config/unicorn.conf.rb
+@@ -27,18 +27,10 @@ pid (ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
+ 
+ if ENV["RAILS_ENV"] == "development" || !ENV["RAILS_ENV"]
+   logger Logger.new($stdout)
+-  # we want a longer timeout in dev cause first request can be really slow
+-  timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
+-else
+-  # By default, the Unicorn logger will write to stderr.
+-  # Additionally, some applications/frameworks log to stderr or stdout,
+-  # so prevent them from going to /dev/null when daemonized here:
+-  stderr_path "#{discourse_path}/log/unicorn.stderr.log"
+-  stdout_path "#{discourse_path}/log/unicorn.stdout.log"
+-  # nuke workers after 30 seconds instead of 60 seconds (the default)
+-  timeout 30
+ end
+ 
++timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
++
+ # important for Ruby 2.0
+ preload_app true
+ 
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/update.py b/nixpkgs/pkgs/servers/web-apps/discourse/update.py
new file mode 100755
index 000000000000..c401ab552bb7
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/update.py
@@ -0,0 +1,164 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i python3 -p bundix bundler nix-update python3 python3Packages.requests python3Packages.click python3Packages.click-log
+
+import click
+import click_log
+import shutil
+import tempfile
+import re
+import logging
+import subprocess
+import pathlib
+from distutils.version import LooseVersion
+from typing import Iterable
+
+import requests
+
+logger = logging.getLogger(__name__)
+
+
+class DiscourseRepo:
+    version_regex = re.compile(r'^v\d+\.\d+\.\d+$')
+    def __init__(self, owner: str = 'discourse', repo: str = 'discourse'):
+        self.owner = owner
+        self.repo = repo
+
+    @property
+    def tags(self) -> Iterable[str]:
+        r = requests.get(f'https://api.github.com/repos/{self.owner}/{self.repo}/git/refs/tags').json()
+        tags = [x['ref'].replace('refs/tags/', '') for x in r]
+
+        # filter out versions not matching version_regex
+        versions = list(filter(self.version_regex.match, tags))
+
+        # sort, but ignore v for sorting comparisons
+        versions.sort(key=lambda x: LooseVersion(x.replace('v', '')), reverse=True)
+        return versions
+
+    @staticmethod
+    def rev2version(tag: str) -> str:
+        """
+        normalize a tag to a version number.
+        This obviously isn't very smart if we don't pass something that looks like a tag
+        :param tag: the tag to normalize
+        :return: a normalized version number
+        """
+        # strip v prefix
+        return re.sub(r'^v', '', tag)
+
+    def get_file(self, filepath, rev):
+        """returns file contents at a given rev :param filepath: the path to
+        the file, relative to the repo root :param rev: the rev to
+        fetch at :return:
+
+        """
+        return requests.get(f'https://raw.githubusercontent.com/{self.owner}/{self.repo}/{rev}/{filepath}').text
+
+
+def _call_nix_update(pkg, version):
+    """calls nix-update from nixpkgs root dir"""
+    nixpkgs_path = pathlib.Path(__file__).parent / '../../../../'
+    return subprocess.check_output(['nix-update', pkg, '--version', version], cwd=nixpkgs_path)
+
+
+def _get_current_package_version(pkg: str):
+    nixpkgs_path = pathlib.Path(__file__).parent / '../../../../'
+    return subprocess.check_output(['nix', 'eval', '--raw', f'nixpkgs.{pkg}.version'], text=True)
+
+
+def _diff_file(filepath: str, old_version: str, new_version: str):
+    repo = DiscourseRepo()
+
+    current_dir = pathlib.Path(__file__).parent
+
+    old = repo.get_file(filepath, 'v' + old_version)
+    new = repo.get_file(filepath, 'v' + new_version)
+
+    if old == new:
+        click.secho(f'{filepath} is unchanged', fg='green')
+        return
+
+    with tempfile.NamedTemporaryFile(mode='w') as o, tempfile.NamedTemporaryFile(mode='w') as n:
+        o.write(old), n.write(new)
+        width = shutil.get_terminal_size((80, 20)).columns
+        diff_proc = subprocess.run(
+            ['diff', '--color=always', f'--width={width}', '-y', o.name, n.name],
+            stdout=subprocess.PIPE,
+            cwd=current_dir,
+            text=True
+        )
+
+    click.secho(f'Diff for {filepath} ({old_version} -> {new_version}):', fg='bright_blue', bold=True)
+    click.echo(diff_proc.stdout + '\n')
+    return
+
+
+@click_log.simple_verbosity_option(logger)
+
+
+@click.group()
+def cli():
+    pass
+
+
+@cli.command()
+@click.argument('rev', default='latest')
+@click.option('--reverse/--no-reverse', default=False, help='Print diffs from REV to current.')
+def print_diffs(rev, reverse):
+    """Print out diffs for files used as templates for the NixOS module.
+
+    The current package version found in the nixpkgs worktree the
+    script is run from will be used to download the "from" file and
+    REV used to download the "to" file for the diff, unless the
+    '--reverse' flag is specified.
+
+    REV should be the git rev to find changes in ('vX.Y.Z') or
+    'latest'; defaults to 'latest'.
+
+    """
+    if rev == 'latest':
+        repo = DiscourseRepo()
+        rev = repo.tags[0]
+
+    old_version = _get_current_package_version('discourse')
+    new_version = DiscourseRepo.rev2version(rev)
+
+    if reverse:
+        old_version, new_version = new_version, old_version
+
+    for f in ['config/nginx.sample.conf', 'config/discourse_defaults.conf']:
+        _diff_file(f, old_version, new_version)
+
+
+@cli.command()
+@click.argument('rev', default='latest')
+def update(rev):
+    """Update gem files and version.
+
+    REV should be the git rev to update to ('vX.Y.Z') or 'latest';
+    defaults to 'latest'.
+
+    """
+    repo = DiscourseRepo()
+
+    if rev == 'latest':
+        rev = repo.tags[0]
+    logger.debug(f"Using rev {rev}")
+
+    version = repo.rev2version(rev)
+    logger.debug(f"Using version {version}")
+
+    rubyenv_dir = pathlib.Path(__file__).parent / "rubyEnv"
+
+    for fn in ['Gemfile.lock', 'Gemfile']:
+        with open(rubyenv_dir / fn, 'w') as f:
+            f.write(repo.get_file(fn, rev))
+
+    subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
+    subprocess.check_output(['bundix'], cwd=rubyenv_dir)
+
+    _call_nix_update('discourse', repo.rev2version(rev))
+
+
+if __name__ == '__main__':
+    cli()
diff --git a/nixpkgs/pkgs/servers/web-apps/galene/default.nix b/nixpkgs/pkgs/servers/web-apps/galene/default.nix
index 1c2e16f76fc6..ae56fed52bd3 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.2";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "jech";
     repo = "galene";
     rev = "galene-${version}";
-    sha256 = "0hpgqqv8mp1d3sk7dk49m3yv0cv4afa0v3vdd4w8mdnx6pcqdgy1";
+    sha256 = "1pl3mnkmfqykhq55q36kvvnvn9fgsk72pfa7nii3hywzad0bj0ar";
   };
 
-  vendorSha256 = "12b7andpzsgzmd56gg4gc5ilkxvjrpwpmwbdmygfzgkd5jncmcgp";
+  vendorSha256 = "0jrc6y5chkj25bnpzn6blvfb0vd09h6fdcz75g54605z8nqd397p";
 
   outputs = [ "out" "static" ];
 
diff --git a/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix b/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix
index 4b33048e9238..719fab87eada 100644
--- a/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix
@@ -1,19 +1,21 @@
-{ pkgs, lib, stdenv, fetchurl, nixosTests }:
+{ lib, stdenv, fetchurl, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "jitsi-meet";
-  version = "1.0.4289";
+  version = "1.0.4628";
 
   src = fetchurl {
     url = "https://download.jitsi.org/jitsi-meet/src/jitsi-meet-${version}.tar.bz2";
-    sha256 = "0hs6hjcb0cxmakx2na3xkz9bld0xcil5slp4wjl5xql3s00mk10v";
+    sha256 = "1kw4byy6mvqk3qd5nk5raka1bl9jp0kniszq6j5kc8nz3jql4qdz";
   };
 
   dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
     mkdir $out
     mv * $out/
+    runHook postInstall
   '';
 
   passthru.tests = {
diff --git a/nixpkgs/pkgs/servers/web-apps/moodle/default.nix b/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
index af565e6292d2..4cc51baacea8 100644
--- a/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, writeText, plugins ? [ ] }:
 
 let
-  version = "3.10.1";
+  version = "3.10.2";
   stableVersion = lib.concatStrings (lib.take 2 (lib.splitVersion version));
 
 in stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url =
       "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
-    sha256 = "sha256-VHlz8twsp7mSwZPatJkciHaDOP0r0EudeG5i3gjPUT8=";
+    sha256 = "sha256-s20GtwqV1BAVr2q+DxG6hqKnDqM0dVm6TbokmPC8Hrs=";
   };
 
   phpConfig = writeText "config.php" ''
diff --git a/nixpkgs/pkgs/servers/web-apps/moodle/moodle-utils.nix b/nixpkgs/pkgs/servers/web-apps/moodle/moodle-utils.nix
index 168482bffe65..090d87cb1ee8 100644
--- a/nixpkgs/pkgs/servers/web-apps/moodle/moodle-utils.nix
+++ b/nixpkgs/pkgs/servers/web-apps/moodle/moodle-utils.nix
@@ -8,15 +8,16 @@ let
     configurePhase ? ":",
     buildPhase ? ":",
     buildInputs ? [ ],
+    nativeBuildInputs ? [ ],
     ...
   }:
   stdenv.mkDerivation (a // {
     name = name;
 
     inherit pluginType;
-    inherit configurePhase buildPhase;
+    inherit configurePhase buildPhase buildInputs;
 
-    buildInputs = [ unzip ] ++ buildInputs;
+    nativeBuildInputs = [ unzip ] ++ nativeBuildInputs;
 
     installPhase = ''
       runHook preInstall
diff --git a/nixpkgs/pkgs/servers/web-apps/restya-board/default.nix b/nixpkgs/pkgs/servers/web-apps/restya-board/default.nix
index 934ef81ac90e..e260702d5759 100644
--- a/nixpkgs/pkgs/servers/web-apps/restya-board/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/restya-board/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     license = licenses.osl3;
     homepage = "https://restya.com";
     maintainers = with maintainers; [ tstrobel ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
 
diff --git a/nixpkgs/pkgs/servers/web-apps/sogo/default.nix b/nixpkgs/pkgs/servers/web-apps/sogo/default.nix
index b3fedf9bc5d6..4a73c5770d2a 100644
--- a/nixpkgs/pkgs/servers/web-apps/sogo/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/sogo/default.nix
@@ -1,4 +1,4 @@
-{ gnustep, lib, fetchFromGitHub, fetchpatch, makeWrapper, python2, lndir
+{ gnustep, lib, fetchFromGitHub, fetchpatch, makeWrapper, python3, lndir
 , openssl_1_1, openldap, sope, libmemcached, curl, libsodium, libzip, pkg-config }:
 with lib; gnustep.stdenv.mkDerivation rec {
   pname = "SOGo";
@@ -11,7 +11,7 @@ with lib; gnustep.stdenv.mkDerivation rec {
     sha256 = "145hdlwnqds5zmpxbh4yainsbv5vy99ji93d6pl7xkbqwncfi80i";
   };
 
-  nativeBuildInputs = [ gnustep.make makeWrapper python2 ];
+  nativeBuildInputs = [ gnustep.make makeWrapper python3 ];
   buildInputs = [ gnustep.base sope openssl_1_1 libmemcached (curl.override { openssl = openssl_1_1; }) libsodium libzip pkg-config ]
     ++ optional (openldap != null) openldap;
 
diff --git a/nixpkgs/pkgs/servers/web-apps/virtlyst/default.nix b/nixpkgs/pkgs/servers/web-apps/virtlyst/default.nix
index 05741e0ac21a..3ff42050eb2d 100644
--- a/nixpkgs/pkgs/servers/web-apps/virtlyst/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/virtlyst/default.nix
@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config autoPatchelfHook ];
   buildInputs = [ qtbase libvirt cutelyst grantlee ];
 
+  dontWrapQtApps = true;
+
   installPhase = ''
     mkdir -p $out/lib
     cp src/libVirtlyst.so $out/lib
diff --git a/nixpkgs/pkgs/servers/web-apps/whitebophir/default.nix b/nixpkgs/pkgs/servers/web-apps/whitebophir/default.nix
index a1d8e9c00617..7373724a0180 100644
--- a/nixpkgs/pkgs/servers/web-apps/whitebophir/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/whitebophir/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , pkgs
 , lib
-, fetchurl
 , nodejs
 , runtimeShell
 }:
@@ -28,7 +27,7 @@ let
 
     meta = with lib; {
       description = "Online collaborative whiteboard that is simple, free, easy to use and to deploy";
-      license = licenses.agpl3;
+      license = licenses.agpl3Plus;
       homepage = "https://github.com/lovasoa/whitebophir";
       maintainers = with maintainers; [ iblech ];
       platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix b/nixpkgs/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix
index 17f170c4af12..cdbb8c4a3451 100644
--- a/nixpkgs/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix
+++ b/nixpkgs/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix
@@ -103,13 +103,13 @@ let
         sha512 = "OIobPtY5vtwe5IM0B0J3KmewYB/NTcbgiW9yRdWzMA1TeFSd8LfuficICYuzUZt25Kh/eIw4g37ArhS1WH/6Iw==";
       };
     };
-    "@juggle/resize-observer-3.2.0" = {
+    "@juggle/resize-observer-3.3.0" = {
       name = "_at_juggle_slash_resize-observer";
       packageName = "@juggle/resize-observer";
-      version = "3.2.0";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.2.0.tgz";
-        sha512 = "fsLxt0CHx2HCV9EL8lDoVkwHffsA0snUpddYjdLyXcG5E41xaamn9ZyQqOE9TUJdrRlH8/hjIf+UdOdDeKCUgg==";
+        url = "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.0.tgz";
+        sha512 = "P1v2nvK7z2gOLVM/bveIRLG9L99uEahTGgTltyF03zixZAjI9YmKLj5Z9MpS9wBIUt5WDoQORT2lXvLOIF89iA==";
       };
     };
     "@types/component-emitter-1.2.10" = {
@@ -130,22 +130,22 @@ let
         sha512 = "y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==";
       };
     };
-    "@types/cors-2.8.9" = {
+    "@types/cors-2.8.10" = {
       name = "_at_types_slash_cors";
       packageName = "@types/cors";
-      version = "2.8.9";
+      version = "2.8.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.9.tgz";
-        sha512 = "zurD1ibz21BRlAOIKP8yhrxlqKx6L9VCwkB5kMiP6nZAhoF5MvC7qS1qPA7nRcr1GJolfkQC7/EAL4hdYejLtg==";
+        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz";
+        sha512 = "C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==";
       };
     };
-    "@types/node-14.14.22" = {
+    "@types/node-14.14.31" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.14.22";
+      version = "14.14.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz";
-        sha512 = "g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz";
+        sha512 = "vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==";
       };
     };
     "@webcomponents/template-1.4.4" = {
@@ -202,6 +202,15 @@ let
         sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
       };
     };
+    "async-mutex-0.3.1" = {
+      name = "async-mutex";
+      packageName = "async-mutex";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.1.tgz";
+        sha512 = "vRfQwcqBnJTLzVQo72Sf7KIUbcSUP5hNchx6udI1U6LuPQpfePgdjJzlCe76yFZ8pxlLjn9lwcl/Ya0TSOv0Tw==";
+      };
+    };
     "audio-context-polyfill-1.0.0" = {
       name = "audio-context-polyfill";
       packageName = "audio-context-polyfill";
@@ -535,22 +544,22 @@ let
         sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
       };
     };
-    "graceful-fs-4.2.4" = {
+    "graceful-fs-4.2.6" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.4";
+      version = "4.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
-        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
       };
     };
-    "handlebars-4.7.6" = {
+    "handlebars-4.7.7" = {
       name = "handlebars";
       packageName = "handlebars";
-      version = "4.7.6";
+      version = "4.7.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz";
-        sha512 = "1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==";
+        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz";
+        sha512 = "aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==";
       };
     };
     "html5shiv-3.7.3" = {
@@ -706,22 +715,22 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
-    "mime-db-1.45.0" = {
+    "mime-db-1.46.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.45.0";
+      version = "1.46.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz";
-        sha512 = "CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz";
+        sha512 = "svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==";
       };
     };
-    "mime-types-2.1.28" = {
+    "mime-types-2.1.29" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.28";
+      version = "2.1.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz";
-        sha512 = "0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz";
+        sha512 = "Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==";
       };
     };
     "minimatch-3.0.4" = {
@@ -751,13 +760,13 @@ let
         sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
       };
     };
-    "mnemonist-0.38.1" = {
+    "mnemonist-0.38.3" = {
       name = "mnemonist";
       packageName = "mnemonist";
-      version = "0.38.1";
+      version = "0.38.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.1.tgz";
-        sha512 = "I674bCCj9p87Re+gv15ynDrP14XjcmLR7tBO22l3UoxQLniyIXdD9vid2sSxYkyOr0fZwJTA+dXRvrwANgdnyg==";
+        url = "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz";
+        sha512 = "2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==";
       };
     };
     "ms-2.0.0" = {
@@ -1012,13 +1021,13 @@ let
         sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
       };
     };
-    "socket.io-3.1.0" = {
+    "socket.io-3.1.2" = {
       name = "socket.io";
       packageName = "socket.io";
-      version = "3.1.0";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-3.1.0.tgz";
-        sha512 = "Aqg2dlRh6xSJvRYK31ksG65q4kmBOqU4g+1ukhPcoT6wNGYoIwSYPlCPuRwOO9pgLUajojGFztl6+V2opmKcww==";
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz";
+        sha512 = "JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==";
       };
     };
     "socket.io-adapter-2.1.0" = {
@@ -1147,13 +1156,13 @@ let
         sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd";
       };
     };
-    "uglify-js-3.12.6" = {
+    "uglify-js-3.13.0" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.12.6";
+      version = "3.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.6.tgz";
-        sha512 = "aqWHe3DfQmZUDGWBbabZ2eQnJlQd1fKlMUu7gV+MiTuDzdgDw31bI3wA2jLLsV/hNcDP26IfyEgSVoft5+0SVw==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.0.tgz";
+        sha512 = "TWYSWa9T2pPN4DIJYbU9oAjQx+5qdV5RUDxwARg8fmJZrD/V27Zj0JngW5xg1DFz42G0uDYl2XhzF6alSzD62w==";
       };
     };
     "uglify-to-browserify-1.0.2" = {
@@ -1210,22 +1219,22 @@ let
         sha512 = "TOMFWtQdxzjWp8qx4DAraTWTsdhxVSiWa6NkPFSaPtZ1diKUxTn4yTix73A1euG1WbSOMMPcY51cnjTIHrGtDA==";
       };
     };
-    "whatwg-fetch-3.5.0" = {
+    "whatwg-fetch-3.6.2" = {
       name = "whatwg-fetch";
       packageName = "whatwg-fetch";
-      version = "3.5.0";
+      version = "3.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz";
-        sha512 = "jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A==";
+        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz";
+        sha512 = "bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==";
       };
     };
-    "wicg-inert-3.1.0" = {
+    "wicg-inert-3.1.1" = {
       name = "wicg-inert";
       packageName = "wicg-inert";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/wicg-inert/-/wicg-inert-3.1.0.tgz";
-        sha512 = "P0ZiWaN9SxOkJbYtF/PIwmIRO8UTqTJtyl33QTQlHfAb6h15T0Dp5m7WTJ8N6UWIoj+KU5M0a8EtfRZLlHiP0Q==";
+        url = "https://registry.npmjs.org/wicg-inert/-/wicg-inert-3.1.1.tgz";
+        sha512 = "PhBaNh8ur9Xm4Ggy4umelwNIP6pPP1bv3EaWaKqfb/QNme2rdLjm7wIInvV4WhxVHhzA4Spgw9qNSqWtB/ca2A==";
       };
     };
     "window-size-0.1.0" = {
@@ -1264,13 +1273,13 @@ let
         sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
       };
     };
-    "ws-7.4.2" = {
+    "ws-7.4.3" = {
       name = "ws";
       packageName = "ws";
-      version = "7.4.2";
+      version = "7.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz";
-        sha512 = "T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz";
+        sha512 = "hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==";
       };
     };
     "yaku-1.0.1" = {
@@ -1303,14 +1312,14 @@ let
   };
 in
 {
-  "whitebophir-git+https://github.com/lovasoa/whitebophir.git#v1.7.0" = nodeEnv.buildNodePackage {
+  "whitebophir-git+https://github.com/lovasoa/whitebophir.git#v1.9.1" = nodeEnv.buildNodePackage {
     name = "whitebophir";
     packageName = "whitebophir";
-    version = "1.7.0";
+    version = "1.9.1";
     src = fetchgit {
       url = "https://github.com/lovasoa/whitebophir.git";
-      rev = "3bf594334e683c63229ac9b6b3a607fdad43c8e1";
-      sha256 = "7d6d7baddc759d75b586131c436be3ea16b63889f916996e866f2e9aca7cfe50";
+      rev = "626397d43f14c3579d6434ac76fc373b994f1741";
+      sha256 = "3c3d74b7c011e1d0f2781210de996fc0ecc35b29b93c74a27eb436902d0489fe";
     };
     dependencies = [
       sources."@financial-times/polyfill-useragent-normaliser-1.9.0"
@@ -1324,17 +1333,18 @@ in
       sources."@formatjs/intl-numberformat-6.1.3"
       sources."@formatjs/intl-pluralrules-4.0.5"
       sources."@formatjs/intl-relativetimeformat-8.0.3"
-      sources."@juggle/resize-observer-3.2.0"
+      sources."@juggle/resize-observer-3.3.0"
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
-      sources."@types/cors-2.8.9"
-      sources."@types/node-14.14.22"
+      sources."@types/cors-2.8.10"
+      sources."@types/node-14.14.31"
       sources."@webcomponents/template-1.4.4"
       sources."Base64-1.1.0"
       sources."abort-controller-3.0.0"
       sources."accept-language-parser-1.5.0"
       sources."accepts-1.3.7"
       sources."align-text-0.1.4"
+      sources."async-mutex-0.3.1"
       sources."audio-context-polyfill-1.0.0"
       sources."balanced-match-1.0.0"
       sources."base64-arraybuffer-0.1.4"
@@ -1379,8 +1389,8 @@ in
       sources."from2-string-1.1.0"
       sources."fs.realpath-1.0.0"
       sources."glob-7.1.6"
-      sources."graceful-fs-4.2.4"
-      sources."handlebars-4.7.6"
+      sources."graceful-fs-4.2.6"
+      sources."handlebars-4.7.7"
       sources."html5shiv-3.7.3"
       sources."http-errors-1.7.3"
       sources."inflight-1.0.6"
@@ -1398,12 +1408,12 @@ in
       sources."lru-cache-6.0.0"
       sources."merge2-1.4.1"
       sources."mime-1.6.0"
-      sources."mime-db-1.45.0"
-      sources."mime-types-2.1.28"
+      sources."mime-db-1.46.0"
+      sources."mime-types-2.1.29"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-1.0.4"
-      sources."mnemonist-0.38.1"
+      sources."mnemonist-0.38.3"
       sources."ms-2.1.3"
       sources."mutationobserver-shim-0.3.7"
       sources."negotiator-0.6.2"
@@ -1443,7 +1453,7 @@ in
       })
       sources."serve-static-1.14.1"
       sources."setprototypeof-1.1.1"
-      (sources."socket.io-3.1.0" // {
+      (sources."socket.io-3.1.2" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
@@ -1466,19 +1476,19 @@ in
       sources."toidentifier-1.0.0"
       sources."toposort-2.0.2"
       sources."tslib-2.1.0"
-      sources."uglify-js-3.12.6"
+      sources."uglify-js-3.13.0"
       sources."uglify-to-browserify-1.0.2"
       sources."unorm-1.6.0"
       sources."usertiming-0.1.8"
       sources."util-deprecate-1.0.2"
       sources."vary-1.1.2"
       sources."web-animations-js-2.3.2"
-      sources."whatwg-fetch-3.5.0"
-      sources."wicg-inert-3.1.0"
+      sources."whatwg-fetch-3.6.2"
+      sources."wicg-inert-3.1.1"
       sources."window-size-0.1.0"
       sources."wordwrap-1.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.2"
+      sources."ws-7.4.3"
       sources."yaku-1.0.1"
       sources."yallist-4.0.0"
       sources."yargs-3.10.0"
diff --git a/nixpkgs/pkgs/servers/web-apps/whitebophir/node-packages.json b/nixpkgs/pkgs/servers/web-apps/whitebophir/node-packages.json
index 44977342cc27..7ba8afd1513c 100644
--- a/nixpkgs/pkgs/servers/web-apps/whitebophir/node-packages.json
+++ b/nixpkgs/pkgs/servers/web-apps/whitebophir/node-packages.json
@@ -1,3 +1,3 @@
 [
-  { "whitebophir": "git+https://github.com/lovasoa/whitebophir.git#v1.7.0" }
+  { "whitebophir": "git+https://github.com/lovasoa/whitebophir.git#v1.9.1" }
 ]
diff --git a/nixpkgs/pkgs/servers/web-apps/wiki-js/default.nix b/nixpkgs/pkgs/servers/web-apps/wiki-js/default.nix
new file mode 100644
index 000000000000..fcab309118b9
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/wiki-js/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, lib, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "wiki-js";
+  version = "2.5.201";
+
+  src = fetchurl {
+    url = "https://github.com/Requarks/wiki/releases/download/${version}/${pname}.tar.gz";
+    sha256 = "sha256-k2G+jUne/lq0dRJsIQpWlRFg1Nq92bM28YkawKOKlsI=";
+  };
+
+  sourceRoot = ".";
+
+  dontBuild = true;
+  installPhase = ''
+    runHook preInstall
+
+    mkdir $out
+    cp -r . $out
+
+    runHook postInstall
+  '';
+
+  passthru.tests = { inherit (nixosTests) wiki-js; };
+
+  meta = with lib; {
+    homepage = "https://js.wiki/";
+    description = "A modern and powerful wiki app built on Node.js";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ ma27 ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix b/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
index 0fae5ac2287e..330470f0fd58 100644
--- a/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wordpress";
-  version = "5.5.3";
+  version = "5.6.2";
 
   src = fetchurl {
     url = "https://wordpress.org/${pname}-${version}.tar.gz";
-    sha256 = "sTkmdr9Mulw7XwNEMJBU81rwNV/agNpBjCznGuObrtQ=";
+    sha256 = "sha256-W9/U3i6jALXolDFraiI/a+PNPoNHim0rZHzaqSy4gkI=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/x11/xorg/default.nix b/nixpkgs/pkgs/servers/x11/xorg/default.nix
index e8b29f9bbac9..47355a5dcf9b 100644
--- a/nixpkgs/pkgs/servers/x11/xorg/default.nix
+++ b/nixpkgs/pkgs/servers/x11/xorg/default.nix
@@ -1015,11 +1015,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   libXt = callPackage ({ stdenv, pkg-config, fetchurl, libICE, xorgproto, libSM, libX11 }: stdenv.mkDerivation {
-    name = "libXt-1.2.0";
+    name = "libXt-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/lib/libXt-1.2.0.tar.bz2";
-      sha256 = "0cbqlyssr8aia88c8i7z59z9d0kp3p2hp6683xhz9ndyv8qza7dk";
+      url = "mirror://xorg/individual/lib/libXt-1.2.1.tar.bz2";
+      sha256 = "0q1x7842r8rcn2m0q4q9f69h4qa097fyizs8brzx5ns62s7w1737";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkg-config ];
@@ -1340,11 +1340,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   utilmacros = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
-    name = "util-macros-1.19.2";
+    name = "util-macros-1.19.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/util/util-macros-1.19.2.tar.bz2";
-      sha256 = "04p7ydqxgq37jklnfj18b70zsifiz4h50wvrk94i2112mmv37r6p";
+      url = "mirror://xorg/individual/util/util-macros-1.19.3.tar.bz2";
+      sha256 = "0w8ryfqylprz37zj9grl4jzdsqq67ibfwq5raj7vm1i7kmp2x08g";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkg-config ];
@@ -1717,11 +1717,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xf86inputlibinput = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libinput, xorgserver }: stdenv.mkDerivation {
-    name = "xf86-input-libinput-0.30.0";
+    name = "xf86-input-libinput-1.0.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/driver/xf86-input-libinput-0.30.0.tar.bz2";
-      sha256 = "1h4np66p87jf0c85ig524w8f5rbhl5gx8fww1qg0c55f87yzkizr";
+      url = "mirror://xorg/individual/driver/xf86-input-libinput-1.0.0.tar.bz2";
+      sha256 = "0x4ay9y2clm2bql3myqnvhmikjbpzy95c800qiva8pg6dbvc4mgg";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkg-config ];
@@ -2471,11 +2471,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xkbcomp = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxkbfile, xorgproto }: stdenv.mkDerivation {
-    name = "xkbcomp-1.4.4";
+    name = "xkbcomp-1.4.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/app/xkbcomp-1.4.4.tar.bz2";
-      sha256 = "0zpjkbap9160pdd6jpgb5f0yg5281w0rkkx1l0i7g887lq1ydk2r";
+      url = "mirror://xorg/individual/app/xkbcomp-1.4.5.tar.bz2";
+      sha256 = "0pmhshqinwqh5rip670l3szjpywky67hv232ql6gvdj489n0hlb8";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/servers/x11/xorg/overrides.nix b/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
index 54082ce81261..4c8322915953 100644
--- a/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
+++ b/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
@@ -4,7 +4,7 @@
   freetype, tradcpp, fontconfig, meson, ninja, ed, fontforge,
   libGL, spice-protocol, zlib, libGLU, dbus, libunwind, libdrm,
   mesa, udev, bootstrap_cmds, bison, flex, clangStdenv, autoreconfHook,
-  mcpp, epoxy, openssl, pkg-config, llvm_6, libxslt,
+  mcpp, epoxy, openssl, pkg-config, llvm, libxslt,
   ApplicationServices, Carbon, Cocoa, Xplugin
 }:
 
@@ -433,7 +433,7 @@ self: super:
   });
 
   xf86videovmware = super.xf86videovmware.overrideAttrs (attrs: {
-    buildInputs =  attrs.buildInputs ++ [ mesa llvm_6 ]; # for libxatracker
+    buildInputs =  attrs.buildInputs ++ [ mesa llvm ]; # for libxatracker
     meta = attrs.meta // {
       platforms = ["i686-linux" "x86_64-linux"];
     };
@@ -800,6 +800,10 @@ self: super:
     };
   });
 
+  xf86videoopenchrome = super.xf86videoopenchrome.overrideAttrs (attrs: {
+    buildInputs = attrs.buildInputs ++ [ self.libXv ];
+  });
+
   xf86videoxgi = super.xf86videoxgi.overrideAttrs (attrs: {
     patches = [
       # fixes invalid open mode
diff --git a/nixpkgs/pkgs/servers/x11/xorg/tarballs.list b/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
index 3ee31e4c2a7a..dcf68ef097e8 100644
--- a/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
+++ b/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
@@ -46,7 +46,7 @@ mirror://xorg/individual/app/xgc-1.0.5.tar.bz2
 mirror://xorg/individual/app/xhost-1.0.8.tar.bz2
 mirror://xorg/individual/app/xinit-1.4.1.tar.bz2
 mirror://xorg/individual/app/xinput-1.6.3.tar.bz2
-mirror://xorg/individual/app/xkbcomp-1.4.4.tar.bz2
+mirror://xorg/individual/app/xkbcomp-1.4.5.tar.bz2
 mirror://xorg/individual/app/xkbevd-1.1.4.tar.bz2
 mirror://xorg/individual/app/xkbprint-1.0.4.tar.bz2
 mirror://xorg/individual/app/xkbutils-1.0.4.tar.bz2
@@ -81,7 +81,7 @@ mirror://xorg/individual/doc/xorg-sgml-doctools-1.11.tar.bz2
 mirror://xorg/individual/driver/xf86-input-evdev-2.10.6.tar.bz2
 mirror://xorg/individual/driver/xf86-input-joystick-1.6.3.tar.bz2
 mirror://xorg/individual/driver/xf86-input-keyboard-1.9.0.tar.bz2
-mirror://xorg/individual/driver/xf86-input-libinput-0.30.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-libinput-1.0.0.tar.bz2
 mirror://xorg/individual/driver/xf86-input-mouse-1.9.3.tar.bz2
 mirror://xorg/individual/driver/xf86-input-synaptics-1.9.1.tar.bz2
 mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2
@@ -202,7 +202,7 @@ mirror://xorg/individual/lib/libXres-1.2.0.tar.bz2
 mirror://xorg/individual/lib/libXScrnSaver-1.2.3.tar.bz2
 mirror://xorg/individual/lib/libxshmfence-1.3.tar.bz2
 mirror://xorg/individual/lib/libXTrap-1.0.1.tar.bz2
-mirror://xorg/individual/lib/libXt-1.2.0.tar.bz2
+mirror://xorg/individual/lib/libXt-1.2.1.tar.bz2
 mirror://xorg/individual/lib/libXtst-1.2.3.tar.bz2
 mirror://xorg/individual/lib/libXv-1.0.11.tar.bz2
 mirror://xorg/individual/lib/libXvMC-1.0.12.tar.bz2
@@ -216,6 +216,6 @@ mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2
 mirror://xorg/individual/util/imake-1.0.8.tar.bz2
 mirror://xorg/individual/util/lndir-1.0.3.tar.bz2
 mirror://xorg/individual/util/makedepend-1.0.6.tar.bz2
-mirror://xorg/individual/util/util-macros-1.19.2.tar.bz2
+mirror://xorg/individual/util/util-macros-1.19.3.tar.bz2
 mirror://xorg/individual/util/xorg-cf-files-1.0.6.tar.bz2
 mirror://xorg/individual/xserver/xorg-server-1.20.10.tar.bz2
diff --git a/nixpkgs/pkgs/servers/xandikos/default.nix b/nixpkgs/pkgs/servers/xandikos/default.nix
index 5241139cfa39..b29151911a63 100644
--- a/nixpkgs/pkgs/servers/xandikos/default.nix
+++ b/nixpkgs/pkgs/servers/xandikos/default.nix
@@ -1,18 +1,18 @@
 { lib
 , fetchFromGitHub
 , python3Packages
-, installShellFiles
+, nixosTests
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "xandikos";
-  version = "0.2.3";
+  version = "0.2.6";
 
   src = fetchFromGitHub {
     owner = "jelmer";
     repo = "xandikos";
     rev = "v${version}";
-    sha256 = "1x0bylmdizirvlcn6ryd43lffpmlq0cklj3jz956scmxgq4p6wby";
+    sha256 = "sha256-Epy6NWtRY2Oj4MHTStdv8ZJ5SvSmUo6IlwL5PJV9pD0=";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -25,11 +25,7 @@ python3Packages.buildPythonApplication rec {
     prometheus_client
   ];
 
-  nativeBuildInputs = [ installShellFiles ];
-
-  postInstall = ''
-    installManPage xandikos.1
-  '';
+  passthru.tests.xandikos = nixosTests.xandikos;
 
   meta = with lib; {
     description = "Lightweight CalDAV/CardDAV server";
diff --git a/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix b/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix
index 762154f018c8..50d2cfa964e0 100644
--- a/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix
+++ b/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix
@@ -1,30 +1,32 @@
-{ lib, stdenv, fetchurl, fetchgit, cmake, libuuid, expat, sqlite, libidn,
-  libiconv, botan2, systemd, pkg-config, udns, pandoc, coreutils } :
+{ lib, stdenv, fetchurl, fetchgit, cmake, libuuid, expat, sqlite, libidn
+, libiconv, botan2, systemd, pkg-config, udns, python3Packages } :
 
+let
+  louiz_catch = fetchgit {
+    url = "https://lab.louiz.org/louiz/Catch.git";
+    rev = "0a34cc201ef28bf25c88b0062f331369596cb7b7"; # v2.2.1
+    sha256 = "0ad0sjhmzx61a763d2ali4vkj8aa1sbknnldks7xlf4gy83jfrbl";
+  };
+in
 stdenv.mkDerivation rec {
   pname = "biboumi";
-  version = "8.5";
+  version = "9.0";
 
   src = fetchurl {
     url = "https://git.louiz.org/biboumi/snapshot/biboumi-${version}.tar.xz";
-    sha256 = "0rn9p99iqdyvxjzjq9w0ra7pkk0mngjy65nlg3hqfdw8kq9mv5qf";
-  };
-
-  louiz_catch = fetchgit {
-    url = "https://lab.louiz.org/louiz/Catch.git";
-    rev = "0a34cc201ef28bf25c88b0062f331369596cb7b7"; # v2.2.1
-    sha256 = "0ad0sjhmzx61a763d2ali4vkj8aa1sbknnldks7xlf4gy83jfrbl";
+    sha256 = "1jvygri165aknmvlinx3jb8cclny6cxdykjf8dp0a3l3228rmzqy";
   };
 
   patches = [ ./catch.patch ];
 
-  nativeBuildInputs = [ cmake pkg-config pandoc ];
-  buildInputs = [ libuuid expat sqlite libiconv libidn botan2 systemd
-    udns ];
+  nativeBuildInputs = [ cmake pkg-config python3Packages.sphinx ];
+  buildInputs = [ libuuid expat sqlite libiconv libidn botan2 systemd udns ];
+
+  buildFlags = [ "all" "man" ];
 
   preConfigure = ''
     substituteInPlace CMakeLists.txt --replace /etc/biboumi $out/etc/biboumi
-    cp $louiz_catch/single_include/catch.hpp tests/
+    cp ${louiz_catch}/single_include/catch.hpp tests/
   '';
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/servers/xmpp/ejabberd/default.nix b/nixpkgs/pkgs/servers/xmpp/ejabberd/default.nix
index 5336df42cbe9..69b55a6f3c29 100644
--- a/nixpkgs/pkgs/servers/xmpp/ejabberd/default.nix
+++ b/nixpkgs/pkgs/servers/xmpp/ejabberd/default.nix
@@ -32,9 +32,9 @@ in stdenv.mkDerivation rec {
     sha256 = "sha256-nZxdYXRyv4UejPLHNT/p6CrvW22Koo7rZSi96KRjqFQ=";
   };
 
-  nativeBuildInputs = [ fakegit ];
+  nativeBuildInputs = [ fakegit makeWrapper ];
 
-  buildInputs = [ erlang openssl expat libyaml gd makeWrapper ]
+  buildInputs = [ erlang openssl expat libyaml gd ]
     ++ lib.optional withSqlite sqlite
     ++ lib.optional withPam pam
     ++ lib.optional withZlib zlib
diff --git a/nixpkgs/pkgs/servers/xmpp/prosody/default.nix b/nixpkgs/pkgs/servers/xmpp/prosody/default.nix
index cfa6e2269557..a83da568126a 100644
--- a/nixpkgs/pkgs/servers/xmpp/prosody/default.nix
+++ b/nixpkgs/pkgs/servers/xmpp/prosody/default.nix
@@ -15,7 +15,7 @@ with lib;
 
 
 stdenv.mkDerivation rec {
-  version = "0.11.7"; # also update communityModules
+  version = "0.11.8"; # also update communityModules
   pname = "prosody";
   # The following community modules are necessary for the nixos module
   # prosody module to comply with XEP-0423 and provide a working
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ];
   src = fetchurl {
     url = "https://prosody.im/downloads/source/${pname}-${version}.tar.gz";
-    sha256 = "0iw73ids6lv09pg2fn0cxsm2pvi593md71xk48zbcp28advc1zr8";
+    sha256 = "1y38a33wab2vv9pz04blmn6m66wg4pixilh8x60jsx6mk0xih3w3";
   };
 
   # A note to all those merging automated updates: Please also update this
@@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
   # version.
   communityModules = fetchhg {
     url = "https://hg.prosody.im/prosody-modules";
-    rev = "7678b4880719";
-    sha256 = "1rpk3jcfhsa9hl7d7y638kprs9in0ljjp1nqxg30w1689v5h85d2";
+    rev = "f210f242cf17";
+    sha256 = "0ls45zfhhv8k1aywq3fvrh4ab7g4g1z1ma9mbcf2ch73m6aqhbyl";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/servers/xmpp/pyIRCt/default.nix b/nixpkgs/pkgs/servers/xmpp/pyIRCt/default.nix
deleted file mode 100644
index ebb817f1645c..000000000000
--- a/nixpkgs/pkgs/servers/xmpp/pyIRCt/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib, stdenv, fetchurl, xmpppy, pythonIRClib, python, pythonPackages, runtimeShell } :
-
-stdenv.mkDerivation rec {
-  pname = "pyIRCt";
-  version = "0.4";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/xmpppy/irc-transport-${version}.tar.gz";
-    sha256 = "0gbc0dvj1p3088b6x315yjrlwnc5vvzp0var36wlf9z60ghvk8yb";
-  };
-
-  buildInputs = [ pythonPackages.wrapPython ];
-
-  pythonPath = [
-    xmpppy pythonIRClib
-  ];
-
-  # phaseNames = ["deploy" (a.makeManyWrappers "$out/share/${name}/irc.py" a.pythonWrapperArguments)];
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/${pname}-${version}
-    sed -e 's@/usr/bin/@${python}/bin/@' -i irc.py
-    sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.pyIRCt.xml"]' -i config.py
-    sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.python-irc-transport.xml"]' -i config.py
-    sed -e '/configFiles/iimport os' -i config.py
-    cp * $out/share/${pname}-${version}
-    cat > $out/bin/pyIRCt <<EOF
-      #!${runtimeShell}
-      cd $out/share/${pname}-${version}
-      ./irc.py \"$@\"
-    EOF
-    chmod a+rx  $out/bin/pyIRCt $out/share/${pname}-${version}/irc.py
-    wrapPythonPrograms
-  '';
-
-  meta = with lib; {
-    description = "IRC transport module for XMPP";
-    platforms = platforms.unix;
-    license = licenses.gpl2;
-  };
-}
diff --git a/nixpkgs/pkgs/servers/xmpp/pyMAILt/default.nix b/nixpkgs/pkgs/servers/xmpp/pyMAILt/default.nix
deleted file mode 100644
index 03ded7a5d5cd..000000000000
--- a/nixpkgs/pkgs/servers/xmpp/pyMAILt/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, python, xmpppy, pythonPackages, fetchcvs, runtimeShell } :
-
-stdenv.mkDerivation rec {
-  pname = "pyMAILt";
-  version = "20090101";
-
-  src = fetchcvs {
-    cvsRoot = ":pserver:anonymous@xmpppy.cvs.sourceforge.net:/cvsroot/xmpppy";
-    module = "xmpppy/mail-transport";
-    date = "2009-01-01";
-    sha256 = "15301252e52b4ccb2156baefed8982a2a0cce3ae8eae3caf3cc28dfa615c8d6e";
-  };
-
-  pythonPath = [ xmpppy ];
-  buildInputs = [ pythonPackages.wrapPython ];
-
-  installPhase = ''
-    cd mail-transport
-    mkdir -p $out/bin $out/share/${pname}-${version}
-    sed -e 's@/usr/bin/@${python}/bin/@' -i mail.py
-    sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.pyMAILt.xml"]' -i config.py
-    sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.python-mail-transport.xml"]' -i config.py
-    sed -e '/configFiles/iimport os' -i config.py
-    cp * $out/share/$name
-    cat > $out/bin/pyMAILt <<EOF
-      #!${runtimeShell}
-      cd $out/share/${pname}-${version}
-      ./mail.py \"$@\"
-    EOF
-    chmod a+rx  $out/bin/pyMAILt $out/share/${pname}-${version}/mail.py
-    wrapPythonPrograms
-  '';
-
-  meta = with lib; {
-    description = "Email transport module for XMPP";
-    platforms = platforms.unix;
-    license = licenses.gpl2;
-  };
-}
diff --git a/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix b/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
index 85465fd7d145..2a7c31a47a0f 100644
--- a/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
+++ b/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
@@ -3,6 +3,8 @@ let
   package = (import ./node.nix { inherit pkgs system; }).package;
 in
 package.override rec {
+  # don't upgrade! Newer versions cause stack overflows and fail trunk-combined
+  # see https://github.com/NixOS/nixpkgs/pull/118400
   version = "1.16.2";
   reconstructLock = true;
 
diff --git a/nixpkgs/pkgs/servers/zoneminder/default.nix b/nixpkgs/pkgs/servers/zoneminder/default.nix
index 0ae93ed1469a..c4e9e915381b 100644
--- a/nixpkgs/pkgs/servers/zoneminder/default.nix
+++ b/nixpkgs/pkgs/servers/zoneminder/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, fetchurl, fetchpatch, substituteAll, cmake, makeWrapper, pkg-config
-, curl, ffmpeg_3, glib, libjpeg, libselinux, libsepol, mp4v2, libmysqlclient, mysql, pcre, perl, perlPackages
+, curl, ffmpeg_3, glib, libjpeg, libselinux, libsepol, mp4v2, libmysqlclient, mariadb, pcre, perl, perlPackages
 , polkit, util-linuxMinimal, x264, zlib
 , coreutils, procps, psmisc, nixosTests }:
 
@@ -122,11 +122,11 @@ in stdenv.mkDerivation rec {
     done
 
     substituteInPlace scripts/zmdbbackup.in \
-      --replace /usr/bin/mysqldump ${mysql.client}/bin/mysqldump
+      --replace /usr/bin/mysqldump ${mariadb.client}/bin/mysqldump
 
     substituteInPlace scripts/zmupdate.pl.in \
-      --replace "'mysql'" "'${mysql.client}/bin/mysql'" \
-      --replace "'mysqldump'" "'${mysql.client}/bin/mysqldump'"
+      --replace "'mysql'" "'${mariadb.client}/bin/mysql'" \
+      --replace "'mysqldump'" "'${mariadb.client}/bin/mysqldump'"
 
     for f in scripts/ZoneMinder/lib/ZoneMinder/Config.pm.in \
              scripts/zmupdate.pl.in \
@@ -147,7 +147,7 @@ in stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    curl ffmpeg_3 glib libjpeg libselinux libsepol mp4v2 libmysqlclient mysql.client pcre perl polkit x264 zlib
+    curl ffmpeg_3 glib libjpeg libselinux libsepol mp4v2 libmysqlclient mariadb.client pcre perl polkit x264 zlib
     util-linuxMinimal # for libmount
   ] ++ (with perlPackages; [
     # build-time dependencies
diff --git a/nixpkgs/pkgs/servers/zookeeper/default.nix b/nixpkgs/pkgs/servers/zookeeper/default.nix
index 526a8d2956b3..c2315999b3ca 100644
--- a/nixpkgs/pkgs/servers/zookeeper/default.nix
+++ b/nixpkgs/pkgs/servers/zookeeper/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha512 = "caff5111bb6876b7124760bc006e6fa2523efa54b99321a3c9cd8192ea0d5596abc7d70a054b1aac9b20a411407dae7611c7aba870c23bff28eb1643ba499199";
   };
 
-  buildInputs = [ makeWrapper jre ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   phases = ["unpackPhase" "installPhase"];
 
diff --git a/nixpkgs/pkgs/shells/any-nix-shell/default.nix b/nixpkgs/pkgs/shells/any-nix-shell/default.nix
index 3a9f0a0bfbd1..3bd41a53844c 100644
--- a/nixpkgs/pkgs/shells/any-nix-shell/default.nix
+++ b/nixpkgs/pkgs/shells/any-nix-shell/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "any-nix-shell";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "haslersn";
     repo = "any-nix-shell";
     rev = "v${version}";
-    sha256 = "05xixgsdfv0qk648r74nvazw16dpw49ryz8dax9kwmhqrgkjaqv6";
+    sha256 = "0q27rhjhh7k0qgcdcfm8ly5za6wm4rckh633d0sjz87faffkp90k";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/shells/bash/5.1.nix b/nixpkgs/pkgs/shells/bash/5.1.nix
index 5dd060db7efb..d234b18e6c90 100644
--- a/nixpkgs/pkgs/shells/bash/5.1.nix
+++ b/nixpkgs/pkgs/shells/bash/5.1.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     -DSSH_SOURCE_BASHRC
   '';
 
-  patchFlags = [ "-p0" "-T" ];
+  patchFlags = [ "-p0" ];
 
   patches = upstreamPatches
     ++ [ ./pgrp-pipe-5.1.patch ];
diff --git a/nixpkgs/pkgs/shells/bash/pgrp-pipe-5.1.patch b/nixpkgs/pkgs/shells/bash/pgrp-pipe-5.1.patch
index 2a9fa6f33c3b..478327cafc45 100644
--- a/nixpkgs/pkgs/shells/bash/pgrp-pipe-5.1.patch
+++ b/nixpkgs/pkgs/shells/bash/pgrp-pipe-5.1.patch
@@ -14,18 +14,3 @@ diff -u ./configure ../bash-5.0-fixed/configure
  netbsd*|openbsd*)	LOCAL_CFLAGS="-DDEV_FD_STAT_BROKEN" ;;
  *qnx[67]*)	LOCAL_LIBS="-lncurses" ;;
  *qnx*)		LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
-diff -u ./configure.ac ../bash-5.0-fixed/configure.ac
---- ./configure.ac	2019-01-02 15:39:11.000000000 +0100
-+++ ../bash-5.0-fixed/configure.ac	2019-01-02 15:39:11.000000000 +0100
-@@ -1108,10 +1108,7 @@
- solaris2*)	LOCAL_CFLAGS=-DSOLARIS ;;
- lynxos*)	LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
- linux*)		LOCAL_LDFLAGS=-rdynamic		 # allow dynamic loading
--		case "`uname -r`" in
--		1.*|2.[[0123]]*)	: ;;
--		*)	AC_DEFINE(PGRP_PIPE) ;;
--		esac ;;
-+		AC_DEFINE(PGRP_PIPE) ;;
- netbsd*|openbsd*)	LOCAL_CFLAGS="-DDEV_FD_STAT_BROKEN" ;;
- *qnx[[67]]*)	LOCAL_LIBS="-lncurses" ;;
- *qnx*)		LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
diff --git a/nixpkgs/pkgs/shells/dash/default.nix b/nixpkgs/pkgs/shells/dash/default.nix
index 24d5af7e74ee..f044c41b73d6 100644
--- a/nixpkgs/pkgs/shells/dash/default.nix
+++ b/nixpkgs/pkgs/shells/dash/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildPackages, autoreconfHook, fetchurl }:
+{ lib, stdenv, buildPackages, autoreconfHook, fetchurl, libedit }:
 
 stdenv.mkDerivation rec {
   pname = "dash";
@@ -11,7 +11,6 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  # Temporary fix until a proper one is accepted upstream
   patches = [
     (fetchurl {
       # Dash executes code when noexec ("-n") is specified
@@ -19,9 +18,18 @@ stdenv.mkDerivation rec {
       url = "https://git.kernel.org/pub/scm/utils/dash/dash.git/patch/?id=29d6f2148f10213de4e904d515e792d2cf8c968e";
       sha256 = "08q90bx36ixwlcj331dh7420qyj8i0qh1cc1gljrhd83fhl9w0y5";
     })
-  ] ++ lib.optional stdenv.isDarwin ./0001-fix-dirent64-et-al-on-darwin.patch;
+  ] ++ lib.optionals stdenv.isDarwin [
+      # Temporary fix until a proper one is accepted upstream
+    ./0001-fix-dirent64-et-al-on-darwin.patch
+  ];
+
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = lib.optional stdenv.isDarwin autoreconfHook;
+  buildInputs = [ libedit ];
+
+  configureFlags = [ "--with-libedit" ];
+
+  enableParallelBuilding = true;
 
   meta = with lib; {
     homepage = "http://gondor.apana.org.au/~herbert/dash/";
diff --git a/nixpkgs/pkgs/shells/es/default.nix b/nixpkgs/pkgs/shells/es/default.nix
index 7b2251a3f440..5efb860c1d5f 100644
--- a/nixpkgs/pkgs/shells/es/default.nix
+++ b/nixpkgs/pkgs/shells/es/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, readline, yacc }:
+{ lib, stdenv, fetchurl, readline, bison }:
 
 let
   version = "0.9.1";
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
     sourceRoot=.
   '';
 
-  buildInputs = [ readline yacc ];
+  buildInputs = [ readline bison ];
 
   configureFlags = [ "--with-readline" ];
 
diff --git a/nixpkgs/pkgs/shells/fish/default.nix b/nixpkgs/pkgs/shells/fish/default.nix
index 7e38d9dec3a1..b2677715d514 100644
--- a/nixpkgs/pkgs/shells/fish/default.nix
+++ b/nixpkgs/pkgs/shells/fish/default.nix
@@ -17,6 +17,7 @@
 , python3
 , cmake
 , fishPlugins
+, procps
 
 , runCommand
 , writeText
@@ -56,8 +57,12 @@ let
     #     source both, but source the more global configuration files earlier
     #     than the more local ones, so that more local configurations inherit
     #     from but override the more global locations.
+    #
+    #     Special care needs to be taken, when fish is called from an FHS user env
+    #     or similar setup, because this configuration file will then be relocated
+    #     to /etc/fish/config.fish, so we test for this case to avoid nontermination.
 
-    if test -f /etc/fish/config.fish
+    if test -f /etc/fish/config.fish && test /etc/fish/config.fish != (status filename)
       source /etc/fish/config.fish
     end
 
@@ -126,7 +131,7 @@ let
 
   fish = stdenv.mkDerivation rec {
     pname = "fish";
-    version = "3.1.2";
+    version = "3.2.2";
 
     src = fetchurl {
       # There are differences between the release tarball and the tarball GitHub
@@ -135,13 +140,44 @@ let
       # the shell's actual version (and what it displays when running `fish
       # --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.gz";
-      sha256 = "1vblmb3x2k2cb0db5jdyflppnlqsm7i6jjaidyhmvaaw7ch2gffm";
+      url = "https://github.com/fish-shell/fish-shell/releases/download/${version}/${pname}-${version}.tar.xz";
+      sha256 = "WUTaGoiT0RsIKKT9kTbuF0VJ2v+z0K392JF4Vv5rQAk=";
     };
 
-    # We don't have access to the codesign executable, so we patch this out.
-    # For more information, see: https://github.com/fish-shell/fish-shell/issues/6952
-    patches = lib.optional stdenv.isDarwin ./dont-codesign-on-mac.diff;
+    # Fix FHS paths in tests
+    postPatch = ''
+      # src/fish_tests.cpp
+      sed -i 's|/bin/ls|${coreutils}/bin/ls|' src/fish_tests.cpp
+      sed -i 's|is_potential_path(L"/usr"|is_potential_path(L"/nix"|' src/fish_tests.cpp
+      sed -i 's|L"/bin/echo"|L"${coreutils}/bin/echo"|' src/fish_tests.cpp
+      sed -i 's|L"/bin/c"|L"${coreutils}/bin/c"|' src/fish_tests.cpp
+      sed -i 's|L"/bin/ca"|L"${coreutils}/bin/ca"|' src/fish_tests.cpp
+
+      # tests/checks/cd.fish
+      sed -i 's|/bin/pwd|${coreutils}/bin/pwd|' tests/checks/cd.fish
+
+      # tests/checks/redirect.fish
+      sed -i 's|/bin/echo|${coreutils}/bin/echo|' tests/checks/redirect.fish
+
+      # tests/checks/vars_as_commands.fish
+      sed -i 's|/usr/bin|${coreutils}/bin|' tests/checks/vars_as_commands.fish
+
+      # tests/checks/jobs.fish
+      sed -i 's|ps -o stat|${procps}/bin/ps -o stat|' tests/checks/jobs.fish
+      sed -i 's|/bin/echo|${coreutils}/bin/echo|' tests/checks/jobs.fish
+
+      # tests/checks/job-control-noninteractive.fish
+      sed -i 's|/bin/echo|${coreutils}/bin/echo|' tests/checks/job-control-noninteractive.fish
+
+      # tests/checks/complete.fish
+      sed -i 's|/bin/ls|${coreutils}/bin/ls|' tests/checks/complete.fish
+    '' + lib.optionalString stdenv.isDarwin ''
+      # Tests use pkill/pgrep which are currently not built on Darwin
+      # See https://github.com/NixOS/nixpkgs/pull/103180
+      rm tests/pexpects/exit.py
+      rm tests/pexpects/job_summary.py
+      rm tests/pexpects/signals.py
+    '';
 
     nativeBuildInputs = [
       cmake
@@ -155,6 +191,8 @@ let
 
     cmakeFlags = [
       "-DCMAKE_INSTALL_DOCDIR=${placeholder "out"}/share/doc/fish"
+    ] ++ lib.optionals stdenv.isDarwin [
+      "-DMAC_CODESIGN_ID=OFF"
     ];
 
     preConfigure = ''
@@ -172,16 +210,23 @@ let
       gettext
     ] ++ lib.optional (!stdenv.isDarwin) man-db;
 
+    doCheck = true;
+
+    checkInputs = [
+      coreutils
+      (python3.withPackages (ps: [ ps.pexpect ]))
+      procps
+    ];
+
+    checkPhase = ''
+      make test
+    '';
+
     postInstall = with lib; ''
       sed -r "s|command grep|command ${gnugrep}/bin/grep|" \
           -i "$out/share/fish/functions/grep.fish"
-      sed -i "s|which |${which}/bin/which |"               \
-             "$out/share/fish/functions/type.fish"
       sed -e "s|\|cut|\|${coreutils}/bin/cut|"             \
           -i "$out/share/fish/functions/fish_prompt.fish"
-      sed -e "s|gettext |${gettext}/bin/gettext |"         \
-          -e "s|which |${which}/bin/which |"               \
-          -i "$out/share/fish/functions/_.fish"
       sed -e "s|uname|${coreutils}/bin/uname|"             \
           -i "$out/share/fish/functions/__fish_pwd.fish"   \
              "$out/share/fish/functions/prompt_pwd.fish"
@@ -251,7 +296,7 @@ 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
+            sed -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
diff --git a/nixpkgs/pkgs/shells/fish/dont-codesign-on-mac.diff b/nixpkgs/pkgs/shells/fish/dont-codesign-on-mac.diff
deleted file mode 100644
index c61350b0549f..000000000000
--- a/nixpkgs/pkgs/shells/fish/dont-codesign-on-mac.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7d220a032..786b60e6e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -183,7 +183,6 @@ ENDFUNCTION(CODESIGN_ON_MAC target)
- # Define a function to link dependencies.
- FUNCTION(FISH_LINK_DEPS_AND_SIGN target)
-   TARGET_LINK_LIBRARIES(${target} fishlib)
--  CODESIGN_ON_MAC(${target})
- ENDFUNCTION(FISH_LINK_DEPS_AND_SIGN)
- 
- # Define libfish.a.
diff --git a/nixpkgs/pkgs/shells/fish/plugins/build-fish-plugin.nix b/nixpkgs/pkgs/shells/fish/plugins/build-fish-plugin.nix
index a52c57464929..5bb4ffa243fc 100644
--- a/nixpkgs/pkgs/shells/fish/plugins/build-fish-plugin.nix
+++ b/nixpkgs/pkgs/shells/fish/plugins/build-fish-plugin.nix
@@ -11,8 +11,6 @@ attrs@{
   buildPhase ? ":",
   preInstall ? "",
   postInstall ? "",
-  # name of the subdirectory in which to store the plugin
-  installPath ? lib.getName pname,
 
   checkInputs ? [],
   # plugin packages to add to the vendor paths of the test fish shell
@@ -26,7 +24,15 @@ attrs@{
   ...
 }:
 
-stdenv.mkDerivation (attrs // {
+let
+  # Do not pass attributes that are only relevant to buildFishPlugin to mkDerivation.
+  drvAttrs = builtins.removeAttrs attrs [
+    "checkPlugins"
+    "checkFunctionDirs"
+  ];
+in
+
+stdenv.mkDerivation (drvAttrs // {
   inherit name;
   inherit unpackPhase configurePhase buildPhase;
 
diff --git a/nixpkgs/pkgs/shells/fish/plugins/clownfish.nix b/nixpkgs/pkgs/shells/fish/plugins/clownfish.nix
new file mode 100644
index 000000000000..cd5c997d3114
--- /dev/null
+++ b/nixpkgs/pkgs/shells/fish/plugins/clownfish.nix
@@ -0,0 +1,20 @@
+{ lib, buildFishPlugin, fetchFromGitHub }:
+
+buildFishPlugin {
+  pname = "clownfish";
+  version = "unstable-2021-01-17";
+
+  src = fetchFromGitHub {
+    owner = "IlanCosman";
+    repo = "clownfish";
+    rev = "a0db28d8280d05561b8f48c0465480725feeca4c";
+    sha256 = "04xvikyrdm6yxh588vbpwvm04fas76pa7sigsaqrip7yh021xxab";
+  };
+
+  meta = with lib; {
+    description = "Fish function to mock the behaviour of commands";
+    homepage = "https://github.com/IlanCosman/clownfish";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pacien ];
+  };
+}
diff --git a/nixpkgs/pkgs/shells/fish/plugins/default.nix b/nixpkgs/pkgs/shells/fish/plugins/default.nix
index e543d49516a8..50b8eb4d981e 100644
--- a/nixpkgs/pkgs/shells/fish/plugins/default.nix
+++ b/nixpkgs/pkgs/shells/fish/plugins/default.nix
@@ -4,10 +4,17 @@ lib.makeScope newScope (self: with self; {
 
   buildFishPlugin = callPackage ./build-fish-plugin.nix { };
 
+  clownfish = callPackage ./clownfish.nix { };
+
+  # Fishtape 2.x and 3.x aren't compatible,
+  # but both versions are used in the tests of different other plugins.
   fishtape = callPackage ./fishtape.nix { };
+  fishtape_3 = callPackage ./fishtape_3.nix { };
 
   foreign-env = callPackage ./foreign-env { };
 
+  fzf-fish = callPackage ./fzf-fish.nix { };
+
   pure = callPackage ./pure.nix { };
 
 })
diff --git a/nixpkgs/pkgs/shells/fish/plugins/fishtape_3.nix b/nixpkgs/pkgs/shells/fish/plugins/fishtape_3.nix
new file mode 100644
index 000000000000..893e6d65ffb3
--- /dev/null
+++ b/nixpkgs/pkgs/shells/fish/plugins/fishtape_3.nix
@@ -0,0 +1,25 @@
+{ lib, buildFishPlugin, fetchFromGitHub }:
+
+buildFishPlugin rec {
+  pname = "fishtape";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    owner = "jorgebucaran";
+    repo = "fishtape";
+    rev = version;
+    sha256 = "072a3qbk1lpxw53bxp91drsffylx8fbywhss3x0jbnayn9m8i7aa";
+  };
+
+  checkFunctionDirs = [ "./functions" ]; # fishtape is introspective
+  checkPhase = ''
+    fishtape tests/*.fish
+  '';
+
+  meta = with lib; {
+    description = "100% pure-Fish test runner";
+    homepage = "https://github.com/jorgebucaran/fishtape";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pacien ];
+  };
+}
diff --git a/nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix b/nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix
new file mode 100644
index 000000000000..51e7dcc096b8
--- /dev/null
+++ b/nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix
@@ -0,0 +1,34 @@
+{ lib, buildFishPlugin, fetchFromGitHub, fzf, clownfish, fishtape_3 }:
+
+buildFishPlugin rec {
+  pname = "fzf.fish";
+  version = "5.6";
+
+  src = fetchFromGitHub {
+    owner = "PatrickF1";
+    repo = "fzf.fish";
+    rev = "v${version}";
+    sha256 = "1b280n8bh00n4vkm19zrn84km52296ljlm1zhz95jgaiwymf2x73";
+  };
+
+  checkInputs = [ fzf ];
+  checkPlugins = [ clownfish fishtape_3 ];
+  checkFunctionDirs = [ "./functions" ];
+  checkPhase = ''
+    # Disable git tests which inspect the project's git repo, which isn't
+    # possible since we strip the impure .git from our build input
+    rm -r tests/*git*
+
+    # Disable tests that are failing, probably because of our wrappers
+    rm -r tests/search_shell_variables
+
+    fishtape tests/*/*.fish
+  '';
+
+  meta = with lib; {
+    description = "Augment your fish command line with fzf key bindings";
+    homepage = "https://github.com/PatrickF1/fzf.fish";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pacien ];
+  };
+}
diff --git a/nixpkgs/pkgs/shells/fish/wrapper.nix b/nixpkgs/pkgs/shells/fish/wrapper.nix
index 053568bc6b9b..6713a69d560e 100644
--- a/nixpkgs/pkgs/shells/fish/wrapper.nix
+++ b/nixpkgs/pkgs/shells/fish/wrapper.nix
@@ -14,12 +14,12 @@ let
   complPath = completionDirs ++ map (vendorDir "completions") pluginPkgs;
   funcPath = functionDirs ++ map (vendorDir "functions") pluginPkgs;
   confPath = confDirs ++ map (vendorDir "conf") pluginPkgs;
-  safeConfPath = map escapeShellArg confPath;
 
 in writeShellScriptBin "fish" ''
   ${fish}/bin/fish --init-command "
     set --prepend fish_complete_path ${escapeShellArgs complPath}
     set --prepend fish_function_path ${escapeShellArgs funcPath}
-    for c in {${concatStringsSep "," safeConfPath}}/*; source $c; end
+    set --local fish_conf_source_path ${escapeShellArgs confPath}
+    for c in $fish_conf_source_path/*; source $c; end
   " "$@"
 '')
diff --git a/nixpkgs/pkgs/shells/ksh/default.nix b/nixpkgs/pkgs/shells/ksh/default.nix
index 822f1dc3491b..cfd278aaca65 100644
--- a/nixpkgs/pkgs/shells/ksh/default.nix
+++ b/nixpkgs/pkgs/shells/ksh/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, meson, ninja, fetchFromGitHub, which, python, fetchpatch
+{ lib, stdenv, meson, ninja, fetchFromGitHub, which, python3, fetchpatch
 , libiconv }:
 
 stdenv.mkDerivation rec {
@@ -19,10 +19,12 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ meson ninja which python ];
+  nativeBuildInputs = [ meson ninja which python3 ];
 
   buildInputs = [ libiconv ];
 
+  strictDeps = true;
+
   meta = with lib; {
     description = "KornShell Command And Programming Language";
     longDescription = ''
diff --git a/nixpkgs/pkgs/shells/liquidprompt/default.nix b/nixpkgs/pkgs/shells/liquidprompt/default.nix
index 4463d70cf526..5fa331b85401 100644
--- a/nixpkgs/pkgs/shells/liquidprompt/default.nix
+++ b/nixpkgs/pkgs/shells/liquidprompt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liquidprompt";
-  version = "1.12.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "nojhan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vlwwkdbkxjsjcfmcspmq3f163kf0x4mwa8svxkzgnn2g4kl41ja";
+    sha256 = "sha256-FXBClOkGRUey/FnLw3g3uiHUJeNiB4tXqP4Na6CuwIM=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/mksh/default.nix b/nixpkgs/pkgs/shells/mksh/default.nix
index c10537959d75..360380e19b34 100644
--- a/nixpkgs/pkgs/shells/mksh/default.nix
+++ b/nixpkgs/pkgs/shells/mksh/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchurl }:
+{ lib
+, stdenv
+, fetchurl
+, installShellFiles
+}:
 
 stdenv.mkDerivation rec {
   pname = "mksh";
@@ -6,20 +10,30 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     urls = [
-      "https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz"
-      "http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz"
+      "https://www.mirbsd.org/MirOS/dist/mir/mksh/${pname}-R${version}.tgz"
+      "http://pub.allbsd.org/MirOS/dist/mir/mksh/${pname}-R${version}.tgz"
     ];
-    sha256 = "01n5ggw33bw4jv4d3148wlw9n4aj7vdn3ffnc66c9w9pldjidbkp";
+    hash = "sha256-d64WZaM38cSMYda5Yds+UhGbOOWIhNHIloSvMfh7xQY=";
   };
 
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
   dontConfigure = true;
 
-  buildPhase = "sh ./Build.sh -r";
+  buildPhase = ''
+    runHook preBuild
+    sh ./Build.sh -r
+    runHook postBuild
+  '';
 
   installPhase = ''
-    install -D -m 755 mksh $out/bin/mksh
-    install -D -m 644 mksh.1 $out/share/man/man1/mksh.1
-    install -D -m 644 dot.mkshrc $out/share/mksh/mkshrc
+    runHook preInstall
+    install -D mksh $out/bin/mksh
+    install -D dot.mkshrc $out/share/mksh/mkshrc
+    installManPage mksh.1
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -32,7 +46,7 @@ stdenv.mkDerivation rec {
       systems.
     '';
     homepage = "https://www.mirbsd.org/mksh.htm";
-    license = licenses.bsd3;
+    license = with licenses; [ miros isc unicode-dfs-2016 ];
     maintainers = with maintainers; [ AndersonTorres joachifm ];
     platforms = platforms.unix;
   };
@@ -41,3 +55,5 @@ stdenv.mkDerivation rec {
     shellPath = "/bin/mksh";
   };
 }
+# TODO [ AndersonTorres ]: lksh
+# TODO [ AndersonTorres ]: a more accurate licensing info
diff --git a/nixpkgs/pkgs/shells/mrsh/default.nix b/nixpkgs/pkgs/shells/mrsh/default.nix
index 8efebb8f321d..be87b97ebd72 100644
--- a/nixpkgs/pkgs/shells/mrsh/default.nix
+++ b/nixpkgs/pkgs/shells/mrsh/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, readline }:
 
 stdenv.mkDerivation rec {
-  pname   = "mrsh";
-  version = "2020-11-04";
+  pname = "mrsh-unstable";
+  version = "2021-01-10";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = "mrsh";
-    rev = "1738e41b2a35e5f99b9a1300a5f687478458226a";
-    sha256 = "08gak5261d4sd6b2w2kscmdwa4gwcp5drgfyb3swyrj9cl0nlcbn";
+    rev = "9f9884083831ea1f94bdda5151c5df3888932849";
+    sha256 = "0vvdwzw3fq74lwgmy6xxkk01sd68fzhsw84c750lm1dma22xhjci";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
@@ -22,6 +22,9 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer ];
     platforms = platforms.unix;
-    broken = stdenv.isDarwin;
+  };
+
+  passthru = {
+    shellPath = "/bin/mrsh";
   };
 }
diff --git a/nixpkgs/pkgs/shells/nushell/default.nix b/nixpkgs/pkgs/shells/nushell/default.nix
index a0a070b92660..70022b5c2a8f 100644
--- a/nixpkgs/pkgs/shells/nushell/default.nix
+++ b/nixpkgs/pkgs/shells/nushell/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.26.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-v0u04xY4iEbOTeaPKmbHImNTzEgdqf1wZWV0hKOV6Vg=";
+    sha256 = "sha256-RZz8hmcLOJRz0HpPXc3121B1UcbtDgCFv8Zdv29E+XQ=";
   };
 
-  cargoSha256 = "sha256-0Ncjy6vZqiMNB+aRzf255tsIdrnpG0a4Xoid+mAAvUk=";
+  cargoSha256 = "sha256-V6Qdg8xSm2/6BbSEOH5mH92Gjx+xy0J2CZ9FQxmhI88=";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withStableFeatures && stdenv.isLinux) [ python3 ];
diff --git a/nixpkgs/pkgs/shells/oh/default.nix b/nixpkgs/pkgs/shells/oh/default.nix
index 33e71358b4d5..68f34fe8eb17 100644
--- a/nixpkgs/pkgs/shells/oh/default.nix
+++ b/nixpkgs/pkgs/shells/oh/default.nix
@@ -1,23 +1,25 @@
-{ buildGoPackage, fetchgit, lib }:
+{ buildGoModule, fetchFromGitHub, lib }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "oh";
-  version = "20160522-${lib.strings.substring 0 7 rev}";
-  rev = "0daaf4081475fb9d6b3801c85019bdd57b2ee9b4";
+  version = "0.8.0";
 
-  goPackagePath = "github.com/michaelmacinnis/oh";
-
-  src = fetchgit {
-    inherit rev;
-    url = "https://github.com/michaelmacinnis/oh";
-    sha256 = "0ajidzs0aisbw74nri9ks6sx6644nmwkisc9mvxm3f89zmnlsgwr";
+  src = fetchFromGitHub {
+    owner = "michaelmacinnis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0sdpk77i5mfamkdqldybl9znzz92hqgi4xvby5j28m0a5gw46kj0";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "12vlvh37hvi8c1i9arppm5wj4v9c98s7myxra10q6qpdqssgc8a0";
 
-  meta = with lib;{
+  meta = with lib; {
     homepage = "https://github.com/michaelmacinnis/oh";
-    description = "A Unix shell";
-    license = lib.licenses.mit;
+    description = "A new Unix shell";
+    license = licenses.mit;
+  };
+
+  passthru = {
+    shellPath = "/bin/oh";
   };
 }
diff --git a/nixpkgs/pkgs/shells/oh/deps.nix b/nixpkgs/pkgs/shells/oh/deps.nix
deleted file mode 100644
index b4b98f10c3aa..000000000000
--- a/nixpkgs/pkgs/shells/oh/deps.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "d9157a9621b69ad1d8d77a1933590c416593f24f";
-      sha256 = "1asdbp7rj1j1m1aar1a022wpcwbml6zih6cpbxaw7b2m8v8is931";
-    };
-  }
-  {
-    goPackagePath = "github.com/michaelmacinnis/adapted";
-    fetch = {
-      type = "git";
-      url = "https://github.com/michaelmacinnis/adapted";
-      rev = "0dd5fa34d6f9d74c7c0deed1fc224f9a87e02978";
-      sha256 = "16n3a87m33pqx4qih713q3gw2j6ksj1q3ngjax6bpn5b11rqvikv";
-    };
-  }
-  {
-    goPackagePath = "github.com/peterh/liner";
-    fetch = {
-      type = "git";
-      url = "https://github.com/peterh/liner";
-      rev = "ad1edfd30321d8f006ccf05f1e0524adeb943060";
-      sha256 = "0c24d9j1gnq7r982h1l2isp3d37379qw155hr8ihx9i2mhpfz317";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/shells/oil/default.nix b/nixpkgs/pkgs/shells/oil/default.nix
index 0c508d0e29df..9df88affb9f1 100644
--- a/nixpkgs/pkgs/shells/oil/default.nix
+++ b/nixpkgs/pkgs/shells/oil/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "oil";
-  version = "0.8.7";
+  version = "0.8.8";
 
   src = fetchurl {
     url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
-    sha256 = "sha256-KcXu1u/MvvbCLb5a7D09NvfJPaeo0c8Z/Czuk7XR23M=";
+    sha256 = "sha256-J9aNuw72qufoVY6VnbdpCtpcI6GAI7ON10XGEJuqieI=";
   };
 
   postPatch = ''
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
     ];
 
     maintainers = with lib.maintainers; [ lheckemann alva ];
+    changelog = "https://www.oilshell.org/release/${version}/changelog.html";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/shells/powershell/default.nix b/nixpkgs/pkgs/shells/powershell/default.nix
index 3f9d7130811a..dfc4f94e12b6 100644
--- a/nixpkgs/pkgs/shells/powershell/default.nix
+++ b/nixpkgs/pkgs/shells/powershell/default.nix
@@ -4,8 +4,8 @@
 let platformString = if stdenv.isDarwin then "osx"
                      else if stdenv.isLinux then "linux"
                      else throw "unsupported platform";
-    platformSha = if stdenv.isDarwin then "0zv02h3njphrs8kgmicy7w40mmhmigdfl38f2dpwrs6z67f8vrm2"
-                     else if stdenv.isLinux then "0dka2q8ijg3ryzwmxapf8aq55d0sgaj6jj0rzj2738in9g4w2hbh"
+    platformSha = if stdenv.isDarwin then "0w44ws8b6zfixf7xz93hmplqsx18279n9x8j77y4rbzs13fldvsn"
+                     else if stdenv.isLinux then "0xm7l49zhkz2fly3d751kjd5cy3ws9zji9i0061lkd06dvkch7jy"
                      else throw "unsupported platform";
     platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH"
                      else if stdenv.isLinux then "LD_LIBRARY_PATH"
@@ -15,7 +15,7 @@ let platformString = if stdenv.isDarwin then "osx"
 in
 stdenv.mkDerivation rec {
   pname = "powershell";
-  version = "7.1.0";
+  version = "7.1.3";
 
   src = fetchzip {
     url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-x64.tar.gz";
diff --git a/nixpkgs/pkgs/shells/xonsh/default.nix b/nixpkgs/pkgs/shells/xonsh/default.nix
index 53bd137ddfae..a2cc4206620e 100644
--- a/nixpkgs/pkgs/shells/xonsh/default.nix
+++ b/nixpkgs/pkgs/shells/xonsh/default.nix
@@ -8,14 +8,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "xonsh";
-  version = "0.9.24";
+  version = "0.9.27";
 
   # fetch from github because the pypi package ships incomplete tests
   src = fetchFromGitHub {
     owner  = "xonsh";
     repo   = "xonsh";
     rev    = version;
-    sha256 = "1nk7kbiv7jzmr6narsnr0nyzkhlc7xw3b2bksyq2j6nda67b9b3y";
+    sha256 = "09w6bl3qsygfs2ph2r423ndnbd74bzf67vp8587h2dkkfxlzjbad";
   };
 
   LC_ALL = "en_US.UTF-8";
@@ -34,7 +34,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = !stdenv.isDarwin;
 
   checkPhase = ''
-    HOME=$TMPDIR pytest -k 'not test_repath_backslash and not test_os and not test_man_completion and not test_builtins and not test_main and not test_ptk_highlight and not test_pyghooks'
+    HOME=$TMPDIR pytest -k 'not test_repath_backslash and not test_os and not test_man_completion and not test_builtins and not test_main and not test_ptk_highlight and not test_pyghooks and not test_command_pipeline_capture and not test_git_dirty_working_directory_includes_untracked and not test_dirty_working_directory and not test_vc_get_branch'
     HOME=$TMPDIR pytest -k 'test_builtins or test_main' --reruns 5
     HOME=$TMPDIR pytest -k 'test_ptk_highlight'
   '';
@@ -46,7 +46,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     description = "A Python-ish, BASHwards-compatible shell";
     homepage = "https://xon.sh/";
-    changelog = "https://github.com/xonsh/xonsh/releases/tag/${version}";
+    changelog = "https://github.com/xonsh/xonsh/raw/${version}/CHANGELOG.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ spwhitt vrthra ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix b/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix
index d9a846c9e06f..e8d00d73d1aa 100644
--- a/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
     description = "A ZSH theme optimized for people who use Git & Unicode-compatible fonts and terminals";
     homepage = "https://github.com/halfo/lambda-mod-zsh-theme/";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ ma27 ];
   };
 }
diff --git a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
index e957457c8c3b..7f39b7d82269 100644
--- a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,18 +5,20 @@
 , git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
 
 stdenv.mkDerivation rec {
-  version = "2021-02-09";
+  version = "2021-04-07";
   pname = "oh-my-zsh";
-  rev = "f21e646ce6c09198f7f625c597f08af49551fdb0";
+  rev = "3f50482674c2b3153590a4aba92fbfa1c01bc583";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "14m932zbzdbwyfqkn882jarpw4dbmxkfna5pakd4n5b123drjz46";
+    sha256 = "1ypx15p4c3mrs99xwkii3hwzlpk34mdldlymwiwad1c1ihw1r7r9";
   };
 
   installPhase = ''
+    runHook preInstall
+
     outdir=$out/share/oh-my-zsh
     template=templates/zshrc.zsh-template
 
@@ -64,6 +66,8 @@ stdenv.mkDerivation rec {
         . ~/.zsh_aliases
     fi
     EOF
+
+    runHook postInstall
   '';
 
   passthru = {
@@ -115,6 +119,6 @@ stdenv.mkDerivation rec {
     homepage = "https://ohmyz.sh/";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ scolobb nequissimus ];
+    maintainers = with maintainers; [ nequissimus ];
   };
 }
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix
index da5560998f8b..b55ca3735146 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, zsh }:
 
-# To make use of this derivation, use the `programs.zsh.enableAutoSuggestions` option
+# To make use of this derivation, use the `programs.zsh.autosuggestions.enable` option
 
 stdenv.mkDerivation rec {
   pname = "zsh-autosuggestions";
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh b/nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh
new file mode 100644
index 000000000000..f1f190ec70c3
--- /dev/null
+++ b/nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh
@@ -0,0 +1,40 @@
+_cb-yank() {
+  AA=$(clippaste 2>/dev/null) && CUTBUFFER="$AA"
+  zle yank
+}
+_cb-kill-line() {
+  zle kill-line
+  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
+}
+_cb-kill-whole-line() {
+  zle kill-whole-line
+  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
+}
+_cb-kill-word() {
+  zle kill-word
+  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
+}
+_cb-backward-kill-word() {
+  zle backward-kill-word
+  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
+}
+_cb-copy-region-as-kill() {
+  ## https://unix.stackexchange.com/questions/19947/
+  zle copy-region-as-kill
+  zle set-mark-command -n -1
+  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
+}
+
+zle -N _cb-yank
+zle -N _cb-kill-line
+zle -N _cb-kill-whole-line
+zle -N _cb-kill-word
+zle -N _cb-backward-kill-word
+zle -N _cb-copy-region-as-kill
+
+bindkey '^y'   _cb-yank
+bindkey '^k'   _cb-kill-line
+bindkey '^u'   _cb-kill-whole-line
+bindkey '\ed'  _cb-kill-word
+bindkey '\e^?' _cb-backward-kill-word
+bindkey '\ew'  _cb-copy-region-as-kill
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix
new file mode 100644
index 000000000000..114e0bfd7dc5
--- /dev/null
+++ b/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib }:
+
+stdenv.mkDerivation rec {
+  pname = "zsh-clipboard";
+  version = "1.0";
+
+  src = ./.;
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -D -m0444 -t $out/share/zsh/plugins/clipboard ./clipboard.plugin.zsh
+  '';
+
+  meta = with lib; {
+    description = "Ohmyzsh plugin that integrates kill-ring with system clipboard";
+    longDescription = ''
+      Ohmyzsh plugin that integrates kill-ring with system clipboard.
+
+      Key bindings for C-y, C-k, C-u, M-d, M-backspace and M-w are rebound.
+      Behaviour of these keys should not be changed.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ bb2020 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix
index b48eda0a728a..ee0f702780f3 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 = "unstable-2021-01-24";
+  version = "unstable-2021-04-01";
 
   src = fetchFromGitHub {
     owner = "Aloxaf";
     repo = "fzf-tab";
-    rev = "78b4cefb27dc2bef5e4c9ac3bf2bd28413620fcd";
-    sha256 = "1f5m7vf7wxzczis2nzvhgqaqnphhp3a0wv8b612m7g4fnvk3lnkn";
+    rev = "0c36bdcf6a80ec009280897f07f56969f94d377e";
+    sha256 = "0ymp9ky0jlkx9b63jajvpac5g3ll8snkf8q081g0yw42b9hwpiid";
   };
 
   buildInputs = [ ncurses ];
diff --git a/nixpkgs/pkgs/stdenv/darwin/default.nix b/nixpkgs/pkgs/stdenv/darwin/default.nix
index 3e5c46709ac7..a7b91a82a9d2 100644
--- a/nixpkgs/pkgs/stdenv/darwin/default.nix
+++ b/nixpkgs/pkgs/stdenv/darwin/default.nix
@@ -322,7 +322,7 @@ in rec {
         libxml2 gettext sharutils gmp libarchive ncurses pkg-config libedit groff
         openssh sqlite sed serf openldap db cyrus-sasl expat apr-util subversion xz
         findfreetype libssh curl cmake autoconf automake libtool ed cpio coreutils
-        libssh2 nghttp2 libkrb5 ninja;
+        libssh2 nghttp2 libkrb5 ninja brotli;
 
       llvmPackages_7 = super.llvmPackages_7 // (let
         tools = super.llvmPackages_7.tools.extend (_: _: {
@@ -359,7 +359,7 @@ in rec {
       [ bootstrapTools ] ++
       (with pkgs; [
         xz.bin xz.out libcxx libcxxabi llvmPackages_7.compiler-rt
-        llvmPackages_7.clang-unwrapped zlib libxml2.out curl.out openssl.out
+        llvmPackages_7.clang-unwrapped zlib libxml2.out curl.out brotli.lib openssl.out
         libssh2.out nghttp2.lib libkrb5 coreutils gnugrep pcre.out gmp libiconv
       ]) ++
       (with pkgs.darwin; [ dyld Libsystem CF ICU locale ]);
@@ -411,7 +411,7 @@ in rec {
       [ bootstrapTools ] ++
       (with pkgs; [
         xz.bin xz.out bash libcxx libcxxabi llvmPackages_7.compiler-rt
-        llvmPackages_7.clang-unwrapped zlib libxml2.out curl.out openssl.out
+        llvmPackages_7.clang-unwrapped zlib libxml2.out curl.out brotli.lib openssl.out
         libssh2.out nghttp2.lib libkrb5 coreutils gnugrep pcre.out gmp libiconv
       ]) ++
       (with pkgs.darwin; [ dyld ICU Libsystem locale ]);
@@ -533,7 +533,7 @@ in rec {
       gzip ncurses.out ncurses.dev ncurses.man gnused bash gawk
       gnugrep llvmPackages.clang-unwrapped llvmPackages.clang-unwrapped.lib patch pcre.out gettext
       binutils.bintools darwin.binutils darwin.binutils.bintools
-      curl.out openssl.out libssh2.out nghttp2.lib libkrb5
+      curl.out brotli.lib openssl.out libssh2.out nghttp2.lib libkrb5
       cc.expand-response-params libxml2.out
     ]) ++ (with pkgs.darwin; [
       dyld Libsystem CF cctools ICU libiconv locale libtapi
diff --git a/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix
index 1d5abdc8b4a6..7b68c877a6ef 100644
--- a/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix
+++ b/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix
@@ -18,7 +18,7 @@ in rec {
   bzip2_ = bzip2.override (args: { linkStatic = true; });
 
   # Avoid messing with libkrb5 and libnghttp2.
-  curl_ = curl.override (args: { gssSupport = false; http2Support = false; });
+  curl_ = curlMinimal.override (args: { gssSupport = false; http2Support = false; });
 
   build = stdenv.mkDerivation {
     name = "stdenv-bootstrap-tools";
diff --git a/nixpkgs/pkgs/stdenv/generic/check-meta.nix b/nixpkgs/pkgs/stdenv/generic/check-meta.nix
index e170aae73700..7fa7f2305e84 100644
--- a/nixpkgs/pkgs/stdenv/generic/check-meta.nix
+++ b/nixpkgs/pkgs/stdenv/generic/check-meta.nix
@@ -16,8 +16,8 @@ let
   allowUnfree = config.allowUnfree or false
     || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1";
 
-  whitelist = config.whitelistedLicenses or [];
-  blacklist = config.blacklistedLicenses or [];
+  allowlist = config.allowlistedLicenses or config.whitelistedLicenses or [];
+  blocklist = config.blocklistedLicenses or config.blacklistedLicenses or [];
 
   onlyLicenses = list:
     lib.lists.all (license:
@@ -27,19 +27,19 @@ let
     ) list;
 
   areLicenseListsValid =
-    if lib.mutuallyExclusive whitelist blacklist then
-      assert onlyLicenses whitelist; assert onlyLicenses blacklist; true
+    if lib.mutuallyExclusive allowlist blocklist then
+      assert onlyLicenses allowlist; assert onlyLicenses blocklist; true
     else
-      throw "whitelistedLicenses and blacklistedLicenses are not mutually exclusive.";
+      throw "allowlistedLicenses and blocklistedLicenses are not mutually exclusive.";
 
   hasLicense = attrs:
     attrs ? meta.license;
 
-  hasWhitelistedLicense = assert areLicenseListsValid; attrs:
-    hasLicense attrs && lib.lists.any (l: builtins.elem l whitelist) (lib.lists.toList attrs.meta.license);
+  hasAllowlistedLicense = assert areLicenseListsValid; attrs:
+    hasLicense attrs && lib.lists.any (l: builtins.elem l allowlist) (lib.lists.toList attrs.meta.license);
 
-  hasBlacklistedLicense = assert areLicenseListsValid; attrs:
-    hasLicense attrs && lib.lists.any (l: builtins.elem l blacklist) (lib.lists.toList attrs.meta.license);
+  hasBlocklistedLicense = assert areLicenseListsValid; attrs:
+    hasLicense attrs && lib.lists.any (l: builtins.elem l blocklist) (lib.lists.toList attrs.meta.license);
 
   allowBroken = config.allowBroken or false
     || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1";
@@ -91,10 +91,10 @@ let
   pos_str = meta: meta.position or "«unknown-file»";
 
   remediation = {
-    unfree = remediate_whitelist "Unfree" remediate_unfree_predicate;
-    broken = remediate_whitelist "Broken" (x: "");
-    unsupported = remediate_whitelist "UnsupportedSystem" (x: "");
-    blacklisted = x: "";
+    unfree = remediate_allowlist "Unfree" remediate_unfree_predicate;
+    broken = remediate_allowlist "Broken" (x: "");
+    unsupported = remediate_allowlist "UnsupportedSystem" (x: "");
+    blocklisted = x: "";
     insecure = remediate_insecure;
     broken-outputs = remediateOutputsToInstall;
     unknown-meta = x: "";
@@ -112,14 +112,14 @@ let
   remediate_unfree_predicate = attrs:
     ''
 
-      Alternatively you can configure a predicate to whitelist specific packages:
+      Alternatively you can configure a predicate to allow specific packages:
         { nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
             "${lib.getName attrs}"
           ];
         }
     '';
 
-  remediate_whitelist = allow_attr: rebuild_amendment: attrs:
+  remediate_allowlist = allow_attr: rebuild_amendment: attrs:
     ''
       a) To temporarily allow ${remediation_phrase allow_attr}, you can use an environment variable
          for a single invocation of the nix tools.
@@ -141,7 +141,7 @@ let
       Known issues:
     '' + (lib.concatStrings (map (issue: " - ${issue}\n") attrs.meta.knownVulnerabilities)) + ''
 
-        You can install it anyway by whitelisting this package, using the
+        You can install it anyway by allowing this package, using the
         following methods:
 
         a) To temporarily allow all insecure packages, you can use an environment
@@ -268,7 +268,7 @@ let
   #
   # Return { valid: Bool } and additionally
   # { reason: String; errormsg: String } if it is not valid, where
-  # reason is one of "unfree", "blacklisted", "broken", "insecure", ...
+  # reason is one of "unfree", "blocklisted", "broken", "insecure", ...
   # Along with a boolean flag for each reason
   checkValidity = attrs:
     {
@@ -277,10 +277,10 @@ let
       unsupported = hasUnsupportedPlatform attrs;
       insecure = isMarkedInsecure attrs;
     }
-    // (if hasDeniedUnfreeLicense attrs && !(hasWhitelistedLicense attrs) then
+    // (if hasDeniedUnfreeLicense attrs && !(hasAllowlistedLicense attrs) then
       { valid = false; reason = "unfree"; errormsg = "has an unfree license (‘${showLicense attrs.meta.license}’)"; }
-    else if hasBlacklistedLicense attrs then
-      { valid = false; reason = "blacklisted"; errormsg = "has a blacklisted license (‘${showLicense attrs.meta.license}’)"; }
+    else if hasBlocklistedLicense attrs then
+      { valid = false; reason = "blocklisted"; errormsg = "has a blocklisted license (‘${showLicense attrs.meta.license}’)"; }
     else if !allowBroken && attrs.meta.broken or false then
       { valid = false; reason = "broken"; errormsg = "is marked as broken"; }
     else if !allowUnsupportedSystem && hasUnsupportedPlatform attrs then
diff --git a/nixpkgs/pkgs/stdenv/generic/make-derivation.nix b/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
index 13a7a03d6a8b..2b89b37f7864 100644
--- a/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
+++ b/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
@@ -106,7 +106,12 @@ in rec {
                                       ++ depsTargetTarget ++ depsTargetTargetPropagated) == 0;
       dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || (stdenv.noCC or false);
       supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ];
-      defaultHardeningFlags = if stdenv.hostPlatform.isMusl
+                              # Musl-based platforms will keep "pie", other platforms will not.
+      defaultHardeningFlags = if stdenv.hostPlatform.isMusl &&
+                                # Except when:
+                                #    - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries.
+                                #    - static armv7l, where compilation fails.
+                                !((stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) && stdenv.hostPlatform.isStatic)
                               then supportedHardeningFlags
                               else lib.remove "pie" supportedHardeningFlags;
       enabledHardeningOptions =
@@ -251,6 +256,7 @@ in rec {
                lib.optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system)}"]
           ++ lib.optional (stdenv.hostPlatform.uname.processor != null) "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}"
           ++ lib.optional (stdenv.hostPlatform.uname.release != null) "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.release}"
+          ++ lib.optional (stdenv.hostPlatform.isDarwin) "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}"
           ++ lib.optional (stdenv.buildPlatform.uname.system != null) "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}"
           ++ lib.optional (stdenv.buildPlatform.uname.processor != null) "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}"
           ++ lib.optional (stdenv.buildPlatform.uname.release != null) "-DCMAKE_HOST_SYSTEM_VERSION=${stdenv.buildPlatform.uname.release}";
diff --git a/nixpkgs/pkgs/stdenv/generic/setup.sh b/nixpkgs/pkgs/stdenv/generic/setup.sh
index 4ff0a6caf760..a73474c952e5 100644
--- a/nixpkgs/pkgs/stdenv/generic/setup.sh
+++ b/nixpkgs/pkgs/stdenv/generic/setup.sh
@@ -157,7 +157,8 @@ addToSearchPathWithCustomDelimiter() {
     local delimiter="$1"
     local varName="$2"
     local dir="$3"
-    if [ -d "$dir" ]; then
+    if [[ -d "$dir" && "${!varName:+${delimiter}${!varName}${delimiter}}" \
+          != *"${delimiter}${dir}${delimiter}"* ]]; then
         export "${varName}=${!varName:+${!varName}${delimiter}}${dir}"
     fi
 }
@@ -787,7 +788,7 @@ substituteAllInPlace() {
 # the environment used for building.
 dumpVars() {
     if [ "${noDumpEnvVars:-0}" != 1 ]; then
-        export >| "$NIX_BUILD_TOP/env-vars" || true
+        export 2>/dev/null >| "$NIX_BUILD_TOP/env-vars" || true
     fi
 }
 
diff --git a/nixpkgs/pkgs/test/cuda/cuda-library-samples/default.nix b/nixpkgs/pkgs/test/cuda/cuda-library-samples/default.nix
new file mode 100644
index 000000000000..91095fbd3ac4
--- /dev/null
+++ b/nixpkgs/pkgs/test/cuda/cuda-library-samples/default.nix
@@ -0,0 +1,42 @@
+{ callPackage
+, cudatoolkit_10_1, cudatoolkit_10_2
+, cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2
+, cutensor_cudatoolkit_10_1, cutensor_cudatoolkit_10_2
+, cutensor_cudatoolkit_11_0, cutensor_cudatoolkit_11_1, cutensor_cudatoolkit_11_2
+}:
+
+rec {
+
+  cuda-library-samples_cudatoolkit_10_1 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_10_1;
+    cutensor_cudatoolkit = cutensor_cudatoolkit_10_1;
+  };
+
+  cuda-library-samples_cudatoolkit_10_2 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_10_2;
+    cutensor_cudatoolkit = cutensor_cudatoolkit_10_2;
+  };
+
+  cuda-library-samples_cudatoolkit_10 =
+    cuda-library-samples_cudatoolkit_10_2;
+
+  ##
+
+  cuda-library-samples_cudatoolkit_11_0 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_11_0;
+    cutensor_cudatoolkit = cutensor_cudatoolkit_11_0;
+  };
+
+  cuda-library-samples_cudatoolkit_11_1 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_11_1;
+    cutensor_cudatoolkit = cutensor_cudatoolkit_11_1;
+  };
+
+  cuda-library-samples_cudatoolkit_11_2 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_11_2;
+    cutensor_cudatoolkit = cutensor_cudatoolkit_11_2;
+  };
+
+  cuda-library-samples_cudatoolkit_11 =
+    cuda-library-samples_cudatoolkit_11_2;
+}
diff --git a/nixpkgs/pkgs/test/cuda/cuda-library-samples/generic.nix b/nixpkgs/pkgs/test/cuda/cuda-library-samples/generic.nix
new file mode 100644
index 000000000000..f1ce243bfa6a
--- /dev/null
+++ b/nixpkgs/pkgs/test/cuda/cuda-library-samples/generic.nix
@@ -0,0 +1,70 @@
+{ lib, stdenv, fetchFromGitHub
+, cmake, addOpenGLRunpath
+, cudatoolkit
+, cutensor_cudatoolkit
+}:
+
+let
+  rev = "5aab680905d853bce0dbad4c488e4f7e9f7b2302";
+  src = fetchFromGitHub {
+    owner = "NVIDIA";
+    repo = "CUDALibrarySamples";
+    inherit rev;
+    sha256 = "0gwgbkq05ygrfgg5hk07lmap7n7ampxv0ha1axrv8qb748ph81xs";
+  };
+  commonAttrs = {
+    version = lib.strings.substring 0 7 rev + "-" + lib.versions.majorMinor cudatoolkit.version;
+    nativeBuildInputs = [ cmake addOpenGLRunpath ];
+    buildInputs = [ cudatoolkit ];
+    enableParallelBuilding = true;
+    postFixup = ''
+      for exe in $out/bin/*; do
+        addOpenGLRunpath $exe
+      done
+    '';
+    meta = {
+      description = "examples of using libraries using CUDA";
+      longDescription = ''
+        CUDA Library Samples contains examples demonstrating the use of
+        features in the math and image processing libraries cuBLAS, cuTENSOR,
+        cuSPARSE, cuSOLVER, cuFFT, cuRAND, NPP and nvJPEG.
+      '';
+      license = lib.licenses.bsd3;
+      maintainers = with lib.maintainers; [ obsidian-systems-maintenance ];
+    };
+  };
+in
+
+{
+  cublas = stdenv.mkDerivation (commonAttrs // {
+    pname = "cuda-library-samples-cublas";
+
+    src = "${src}/cuBLASLt";
+  });
+
+  cusolver = stdenv.mkDerivation (commonAttrs // {
+    pname = "cuda-library-samples-cusolver";
+
+    src = "${src}/cuSOLVER";
+
+    sourceRoot = "cuSOLVER/gesv";
+  });
+
+  cutensor = stdenv.mkDerivation (commonAttrs // {
+    pname = "cuda-library-samples-cutensor";
+
+    src = "${src}/cuTENSOR";
+
+    cmakeFlags = [
+      "-DCUTENSOR_EXAMPLE_BINARY_INSTALL_DIR=${builtins.placeholder "out"}/bin"
+    ];
+
+    # CUTENSOR_ROOT is double escaped
+    postPatch = ''
+      substituteInPlace CMakeLists.txt \
+        --replace "\''${CUTENSOR_ROOT}/include" "${cutensor_cudatoolkit.dev}/include"
+    '';
+
+    CUTENSOR_ROOT = cutensor_cudatoolkit;
+  });
+}
diff --git a/nixpkgs/pkgs/test/cuda/cuda-samples/default.nix b/nixpkgs/pkgs/test/cuda/cuda-samples/default.nix
new file mode 100644
index 000000000000..46d4d531690d
--- /dev/null
+++ b/nixpkgs/pkgs/test/cuda/cuda-samples/default.nix
@@ -0,0 +1,52 @@
+{ callPackage
+, cudatoolkit_9_2
+, cudatoolkit_10_0, cudatoolkit_10_1, cudatoolkit_10_2
+, cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2
+}:
+
+rec {
+  cuda-samples_cudatoolkit_9_2 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_9_2;
+    sha256 = "1ydankhyigcg99h0rqnmz1z4vc0sl6p9s1s0hbdxh5l1sx9141j6";
+  };
+
+  cuda-samples_cudatoolkit_9 = cuda-samples_cudatoolkit_9_2;
+
+  ##
+
+  cuda-samples_cudatoolkit_10_0 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_10_0;
+    sha256 = "1zvh4xsdyc59m87brpcmssxsjlp9dkynh4asnkcmc3g94f53l0jw";
+  };
+
+  cuda-samples_cudatoolkit_10_1 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_10_1;
+    sha256 = "1s8ka0hznrni36ajhzf2gqpdrl8kd8fi047qijxks5l2abc093qd";
+  };
+
+  cuda-samples_cudatoolkit_10_2 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_10_2;
+    sha256 = "01p1innzgh9siacpld6nsqimj8jkg93rk4gj8q4crn62pa5vhd94";
+  };
+
+  cuda-samples_cudatoolkit_10 = cuda-samples_cudatoolkit_10_2;
+
+  ##
+
+  cuda-samples_cudatoolkit_11_0 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_11_0;
+    sha256 = "1n3vjc8c7zdig2xgl5fppavrphqzhdiv9m9nk6smh4f99fwi0705";
+  };
+
+  cuda-samples_cudatoolkit_11_1 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_11_1;
+    sha256 = "1kjixk50i8y1bkiwbdn5lkv342crvkmbvy1xl5j3lsa1ica21kwh";
+  };
+
+  cuda-samples_cudatoolkit_11_2 = callPackage ./generic.nix {
+    cudatoolkit = cudatoolkit_11_2;
+    sha256 = "1p1qjvfbm28l933mmnln02rqrf0cy9kbpsyb488d1haiqzvrazl1";
+  };
+
+  cuda-samples_cudatoolkit_11 = cuda-samples_cudatoolkit_11_2;
+}
diff --git a/nixpkgs/pkgs/test/cuda/cuda-samples/generic.nix b/nixpkgs/pkgs/test/cuda/cuda-samples/generic.nix
new file mode 100644
index 000000000000..2e3dcc8891f4
--- /dev/null
+++ b/nixpkgs/pkgs/test/cuda/cuda-samples/generic.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetchFromGitHub
+, pkg-config, addOpenGLRunpath
+, sha256, cudatoolkit
+}:
+
+let
+  pname = "cuda-samples";
+  version = lib.versions.majorMinor cudatoolkit.version;
+in
+
+stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "NVIDIA";
+    repo = pname;
+    rev = "v${version}";
+    inherit sha256;
+  };
+
+  nativeBuildInputs = [ pkg-config addOpenGLRunpath ];
+
+  buildInputs = [ cudatoolkit ];
+
+  enableParallelBuilding = true;
+
+  preConfigure = ''
+    export CUDA_PATH=${cudatoolkit}
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 -t $out/bin bin/${stdenv.hostPlatform.parsed.cpu.name}/${stdenv.hostPlatform.parsed.kernel.name}/release/*
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    for exe in $out/bin/*; do
+      addOpenGLRunpath $exe
+    done
+  '';
+
+  meta = {
+    description = "Samples for CUDA Developers which demonstrates features in CUDA Toolkit";
+    # CUDA itself is proprietary, but these sample apps are not.
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ obsidian-systems-maintenance ];
+  };
+}
diff --git a/nixpkgs/pkgs/test/cuda/default.nix b/nixpkgs/pkgs/test/cuda/default.nix
new file mode 100644
index 000000000000..9e7eaf8036a7
--- /dev/null
+++ b/nixpkgs/pkgs/test/cuda/default.nix
@@ -0,0 +1,26 @@
+{ callPackage }:
+
+rec {
+  cuda-samplesPackages = callPackage ./cuda-samples { };
+  inherit (cuda-samplesPackages)
+    cuda-samples_cudatoolkit_9
+    cuda-samples_cudatoolkit_9_2
+    cuda-samples_cudatoolkit_10
+    cuda-samples_cudatoolkit_10_0
+    cuda-samples_cudatoolkit_10_1
+    cuda-samples_cudatoolkit_10_2
+    cuda-samples_cudatoolkit_11
+    cuda-samples_cudatoolkit_11_0
+    cuda-samples_cudatoolkit_11_1
+    cuda-samples_cudatoolkit_11_2;
+
+  cuda-library-samplesPackages = callPackage ./cuda-library-samples { };
+  inherit (cuda-library-samplesPackages)
+    cuda-library-samples_cudatoolkit_10
+    cuda-library-samples_cudatoolkit_10_1
+    cuda-library-samples_cudatoolkit_10_2
+    cuda-library-samples_cudatoolkit_11
+    cuda-library-samples_cudatoolkit_11_0
+    cuda-library-samples_cudatoolkit_11_1
+    cuda-library-samples_cudatoolkit_11_2;
+}
diff --git a/nixpkgs/pkgs/test/default.nix b/nixpkgs/pkgs/test/default.nix
index f45e981cff07..fa93ceb0721e 100644
--- a/nixpkgs/pkgs/test/default.nix
+++ b/nixpkgs/pkgs/test/default.nix
@@ -47,5 +47,7 @@ with pkgs;
 
   texlive = callPackage ./texlive {};
 
+  cuda = callPackage ./cuda { };
+
   writers = callPackage ../build-support/writers/test.nix {};
 }
diff --git a/nixpkgs/pkgs/test/patch-shebangs/default.nix b/nixpkgs/pkgs/test/patch-shebangs/default.nix
index 5e1d859c1389..5c49787eee3b 100644
--- a/nixpkgs/pkgs/test/patch-shebangs/default.nix
+++ b/nixpkgs/pkgs/test/patch-shebangs/default.nix
@@ -1,26 +1,70 @@
 { lib, stdenv, runCommand }:
 
 let
-  bad-shebang = stdenv.mkDerivation {
-    name         = "bad-shebang";
-    dontUnpack = true;
-    installPhase = ''
-      mkdir -p $out/bin
-      echo "#!/bin/sh" > $out/bin/test
-      echo "echo -n hello" >> $out/bin/test
-      chmod +x $out/bin/test
-    '';
+  tests = {
+    bad-shebang = stdenv.mkDerivation {
+      name         = "bad-shebang";
+      dontUnpack = true;
+      installPhase = ''
+        mkdir -p $out/bin
+        echo "#!/bin/sh" > $out/bin/test
+        echo "echo -n hello" >> $out/bin/test
+        chmod +x $out/bin/test
+      '';
+      passthru = {
+        assertion = "grep -v '^#!/bin/sh' $out/bin/test > /dev/null";
+      };
+    };
+
+    ignores-nix-store = stdenv.mkDerivation {
+      name = "ignores-nix-store";
+      dontUnpack = true;
+      installPhase = ''
+        mkdir -p $out/bin
+        echo "#!$NIX_STORE/path/to/sh" > $out/bin/test
+        echo "echo -n hello" >> $out/bin/test
+        chmod +x $out/bin/test
+      '';
+      passthru = {
+        assertion = "grep \"^#!$NIX_STORE/path/to/sh\" $out/bin/test > /dev/null";
+      };
+    };
   };
 in runCommand "patch-shebangs-test" {
-  passthru = { inherit bad-shebang; };
+  passthru = { inherit (tests) bad-shebang ignores-nix-store; };
   meta.platforms = lib.platforms.all;
 } ''
-  printf "checking whether patchShebangs works properly... ">&2
-  if ! grep -q '^#!/bin/sh' ${bad-shebang}/bin/test; then
-    echo "yes" >&2
-    touch $out
-  else
-    echo "no" >&2
+  validate() {
+    local name=$1
+    local testout=$2
+    local assertion=$3
+
+    echo -n "... $name: " >&2
+
+    local rc=0
+    (out=$testout eval "$assertion") || rc=1
+
+    if [ "$rc" -eq 0 ]; then
+      echo "yes" >&2
+    else
+      echo "no" >&2
+    fi
+
+    return "$rc"
+  }
+
+  echo "checking whether patchShebangs works properly... ">&2
+
+  fail=
+  ${lib.concatStringsSep "\n" (lib.mapAttrsToList (_: test: ''
+    validate "${test.name}" "${test}" ${lib.escapeShellArg test.assertion} || fail=1
+  '') tests)}
+
+  if [ "$fail" ]; then
+    echo "failed"
     exit 1
+  else
+    echo "succeeded"
+    touch $out
   fi
 ''
diff --git a/nixpkgs/pkgs/test/texlive/default.nix b/nixpkgs/pkgs/test/texlive/default.nix
index 30d0026c848d..7a6affd6cbe0 100644
--- a/nixpkgs/pkgs/test/texlive/default.nix
+++ b/nixpkgs/pkgs/test/texlive/default.nix
@@ -1,4 +1,4 @@
-{ runCommandNoCC, fetchurl, file, texlive }:
+{ runCommandNoCC, fetchurl, file, texlive, writeShellScript }:
 
 {
   chktex = runCommandNoCC "texlive-test-chktex" {
@@ -17,7 +17,7 @@
   '';
 
   # https://github.com/NixOS/nixpkgs/issues/75605
-  dvipng = runCommandNoCC "texlive-test-dvipng" {
+  dvipng.basic = runCommandNoCC "texlive-test-dvipng-basic" {
     nativeBuildInputs = [ file texlive.combined.scheme-medium ];
     input = fetchurl {
       name = "test_dvipng.tex";
@@ -38,6 +38,47 @@
     mv document*.png "$out"/
   '';
 
+  # test dvipng's limited capability to render postscript specials via GS
+  dvipng.ghostscript = runCommandNoCC "texlive-test-ghostscript" {
+    nativeBuildInputs = [ file (with texlive; combine { inherit scheme-small dvipng; }) ];
+    input = builtins.toFile "postscript-sample.tex" ''
+      \documentclass{minimal}
+      \begin{document}
+        Ni
+        \special{ps:
+          newpath
+          0 0 moveto
+          7 7 rlineto
+          0 7 moveto
+          7 -7 rlineto
+          stroke
+          showpage
+        }
+      \end{document}
+    '';
+    gs_trap = writeShellScript "gs_trap.sh" ''
+      exit 1
+    '';
+  } ''
+    cp "$gs_trap" ./gs
+    export PATH=$PWD:$PATH
+    # check that the trap works
+    gs && exit 1
+
+    cp "$input" ./document.tex
+
+    latex document.tex
+    dvipng -T 1in,1in -strict -picky document.dvi
+    for f in document*.png; do
+      file "$f" | tee output
+      grep PNG output
+    done
+
+    mkdir "$out"
+    mv document*.png "$out"/
+  '';
+
+
   # https://github.com/NixOS/nixpkgs/issues/75070
   dvisvgm = runCommandNoCC "texlive-test-dvisvgm" {
     nativeBuildInputs = [ file texlive.combined.scheme-medium ];
diff --git a/nixpkgs/pkgs/tools/X11/alttab/default.nix b/nixpkgs/pkgs/tools/X11/alttab/default.nix
index 1a4f1daad51e..591edff2add7 100644
--- a/nixpkgs/pkgs/tools/X11/alttab/default.nix
+++ b/nixpkgs/pkgs/tools/X11/alttab/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config, ronn, libpng, uthash
-, xorg }:
+{ lib, stdenv, coreutils, fetchFromGitHub, autoconf, automake, pkg-config, procps, ronn,
+libpng, uthash , which, xnee, xorg, python3Packages }:
 
 stdenv.mkDerivation rec {
-  version = "1.5.0";
+  version = "1.6.0";
 
   pname = "alttab";
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "sagb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "026xd1bkg10fj2q1n6xx797xk1grpby25qj1pnw2lp4f3vc19qn6";
+    sha256 = "sha256-G4tu008IC3RCeCRZVKFPY2+ioLuUa9hDDKUx1q5C5FQ=";
   };
 
   nativeBuildInputs = [
@@ -35,10 +35,22 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  doCheck = true;
+
+  checkInputs = [
+    coreutils
+    procps
+    python3Packages.xvfbwrapper
+    which
+    xnee
+    xorg.xeyes
+    xorg.xprop
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/sagb/alttab";
     description = "X11 window switcher designed for minimalistic window managers or standalone X11 session";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.sgraf ];
   };
diff --git a/nixpkgs/pkgs/tools/X11/autocutsel/default.nix b/nixpkgs/pkgs/tools/X11/autocutsel/default.nix
index ef03130a2df0..4e6f40707a77 100644
--- a/nixpkgs/pkgs/tools/X11/autocutsel/default.nix
+++ b/nixpkgs/pkgs/tools/X11/autocutsel/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl, libX11, libXaw}:
 
 stdenv.mkDerivation rec {
-  version = "0.10.0";
+  version = "0.10.1";
   pname = "autocutsel";
 
   src = fetchurl {
     url = "https://github.com/sigmike/autocutsel/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0gsys2dzh4az51ndcsabhlbbrjn2nm75lnjr45kg6r8sm8q66dx2";
+    sha256 = "sha256-8X4G1C90lENtSyb0vgtrDaOUgcBADJZ3jkuQW2NB6xc=";
   };
 
   buildInputs = [ libX11 libXaw ];
diff --git a/nixpkgs/pkgs/tools/X11/libstrangle/default.nix b/nixpkgs/pkgs/tools/X11/libstrangle/default.nix
index 1f0a7a8e3a6a..d8c220d0fd7f 100644
--- a/nixpkgs/pkgs/tools/X11/libstrangle/default.nix
+++ b/nixpkgs/pkgs/tools/X11/libstrangle/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitLab, libGL, libX11 }:
 
 stdenv.mkDerivation rec {
   pname = "libstrangle";
-  version = "2017-02-22";
+  version = "0.1.1";
 
-  src = fetchFromGitHub {
-    owner = "milaq";
+  buildInputs = [ libGL libX11 ];
+
+  src = fetchFromGitLab {
+    owner = "torkel104";
     repo = pname;
-    rev = "6020f9e375ba747c75eb7996b7d5f0214ac3221e";
-    sha256 = "04ikacbjcq9phdc8q5y1qjjpa1sxmzfm0idln9ys95prg289zp4h";
+    rev = version;
+    sha256 = "135icr544w5ynlxfnxqgjn794bsm9i703rh9jfnracjb7jgnha4w";
   };
 
   makeFlags = [ "prefix=" "DESTDIR=$(out)" ];
@@ -17,10 +19,11 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteAllInPlace src/strangle.sh
+    substituteAllInPlace src/stranglevk.sh
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/milaq/libstrangle";
+    homepage = "https://gitlab.com/torkel104/libstrangle";
     description = "Frame rate limiter for Linux/OpenGL";
     license = licenses.gpl3;
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/tools/X11/libstrangle/nixos.patch b/nixpkgs/pkgs/tools/X11/libstrangle/nixos.patch
index 03c8c19b54cf..05364028e3e7 100644
--- a/nixpkgs/pkgs/tools/X11/libstrangle/nixos.patch
+++ b/nixpkgs/pkgs/tools/X11/libstrangle/nixos.patch
@@ -1,29 +1,43 @@
 diff --git a/makefile b/makefile
-index eb13054..a3a1125 100644
 --- a/makefile
 +++ b/makefile
-@@ -27,12 +27,10 @@ $(BUILDDIR)libstrangle32.so: $(BUILDDIR)
- 	$(CC) $(CFLAGS) $(LDFLAGS) -m32 -o $(BUILDDIR)libstrangle32.so $(SOURCES)
+@@ -86,10 +86,6 @@ install-common:
+ 	install -m 0755 -D -T $(SOURCEDIR)/stranglevk.sh $(DESTDIR)$(bindir)/stranglevk
+ 	install -m 0644 -D -T $(SOURCEDIR)/vulkan/libstrangle_vk.json $(DESTDIR)$(datarootdir)/vulkan/implicit_layer.d/libstrangle_vk.json
  
- install: all
--	install -m 0644 -D -T $(BUILDDIR)libstrangle.conf $(DESTDIR)/etc/ld.so.conf.d/libstrangle.conf
- 	install -m 0755 -D -T $(BUILDDIR)libstrangle32.so $(DESTDIR)$(LIB32_PATH)/libstrangle.so
- 	install -m 0755 -D -T $(BUILDDIR)libstrangle64.so $(DESTDIR)$(LIB64_PATH)/libstrangle.so
- 	install -m 0755 -D -T $(SOURCEDIR)strangle.sh $(DESTDIR)$(bindir)/strangle
- 	install -m 0644 -D -T COPYING $(DESTDIR)$(DOC_PATH)/LICENSE
+-install-ld: ld
+-	install -m 0644 -D -T $(BUILDDIR)/libstrangle.conf $(DESTDIR)/etc/ld.so.conf.d/libstrangle.conf
 -	ldconfig
+-
+ install-32: 32-bit
+ 	install -m 0755 -D -T $(BUILDDIR)/libstrangle32.so $(DESTDIR)$(LIB32_PATH)/libstrangle.so
+ 	install -m 0755 -D -T $(BUILDDIR)/libstrangle32_nodlsym.so $(DESTDIR)$(LIB32_PATH)/libstrangle_nodlsym.so
+@@ -109,8 +105,7 @@ install: \
+ 	all \
+ 	install-common \
+ 	install-32 \
+-	install-64 \
+-	install-ld
++	install-64
  
  clean:
- 	rm -f $(BUILDDIR)libstrangle64.so
+ 	rm -f $(BUILDDIR)/libstrangle64.so
 diff --git a/src/strangle.sh b/src/strangle.sh
-index e280e86..b2dd42b 100755
 --- a/src/strangle.sh
 +++ b/src/strangle.sh
-@@ -31,6 +31,5 @@ if [ "$#" -eq 0 ]; then
-   exit 1
+@@ -130,6 +130,5 @@ if [ "$STRANGLE_VKONLY" != "1" ]; then
+ 	fi
  fi
  
 -# Execute the strangled program under a clean environment
  # pass through the FPS and overriden LD_PRELOAD environment variables
--exec env FPS="${FPS}" LD_PRELOAD="${LD_PRELOAD}:libstrangle.so" "$@"
-+FPS="${FPS}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}@out@/lib/libstrangle/lib64:@out@/lib/libstrangle/lib32" LD_PRELOAD="${LD_PRELOAD}:libstrangle.so" exec "$@"
+-exec env ENABLE_VK_LAYER_TORKEL104_libstrangle=1 LD_PRELOAD="${LD_PRELOAD}" "$@"
++ENABLE_VK_LAYER_TORKEL104_libstrangle=1 XDG_DATA_DIRS="${XDG_DATA_DIRS}${XDG_DATA_DIRS:+:}@out@/share" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}@out@/lib/libstrangle/lib64:@out@/lib/libstrangle/lib32" LD_PRELOAD="${LD_PRELOAD}" exec "$@"
+diff --git a/src/stranglevk.sh b/src/stranglevk.sh
+--- a/src/stranglevk.sh
++++ b/src/stranglevk.sh
+@@ -1,3 +1,3 @@
+ #!/bin/sh
+
+-ENABLE_VK_LAYER_TORKEL104_libstrangle=1 STRANGLE_VKONLY=1 strangle "$@"
++ENABLE_VK_LAYER_TORKEL104_libstrangle=1 STRANGLE_VKONLY=1 @out@/bin/strangle "$@"
diff --git a/nixpkgs/pkgs/tools/X11/nx-libs/default.nix b/nixpkgs/pkgs/tools/X11/nx-libs/default.nix
index b92344bf9c4b..022111e4b314 100644
--- a/nixpkgs/pkgs/tools/X11/nx-libs/default.nix
+++ b/nixpkgs/pkgs/tools/X11/nx-libs/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     description = "NX X server based on Xnest";
     homepage = "https://github.com/ArcticaProject/nx-libs";
     license = lib.licenses.gpl2;
-    maintainers = with lib.maintainers; [ jD91mZM2 ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/X11/run-scaled/default.nix b/nixpkgs/pkgs/tools/X11/run-scaled/default.nix
index bae91bbc4649..012eedf07791 100644
--- a/nixpkgs/pkgs/tools/X11/run-scaled/default.nix
+++ b/nixpkgs/pkgs/tools/X11/run-scaled/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "1ma4ax7ydq4xvyzrc4zapihmf7v3d9zl9mbi8bgpps7nlgz544ys";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/tools/X11/screen-message/default.nix b/nixpkgs/pkgs/tools/X11/screen-message/default.nix
index c1cef23a695b..58bac8702b70 100644
--- a/nixpkgs/pkgs/tools/X11/screen-message/default.nix
+++ b/nixpkgs/pkgs/tools/X11/screen-message/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "screen-message";
-  version = "0.25";
+  version = "0.26";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/s/screen-message/screen-message_${version}.orig.tar.gz";
-    sha256 = "1lw955qq5pq010lzmaf32ylj2iprgsri9ih4hx672c3f794ilab0";
+    sha256 = "sha256-vBKnuXOEQZDACmlNP9wjJ3NbIdixIx7I72a6Nj6pjzc=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/X11/setroot/default.nix b/nixpkgs/pkgs/tools/X11/setroot/default.nix
index e5a461b0e0e6..014ac4c54be7 100644
--- a/nixpkgs/pkgs/tools/X11/setroot/default.nix
+++ b/nixpkgs/pkgs/tools/X11/setroot/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libX11 imlib2 ]
     ++ lib.optional enableXinerama libXinerama;
 
-  buildFlags = [ "CC=cc" (if enableXinerama then "xinerama=1" else "xinerama=0") ] ;
+  buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" (if enableXinerama then "xinerama=1" else "xinerama=0") ] ;
 
   installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
 
diff --git a/nixpkgs/pkgs/tools/X11/xbindkeys-config/default.nix b/nixpkgs/pkgs/tools/X11/xbindkeys-config/default.nix
index ec40e0b06db4..bdade93329b7 100644
--- a/nixpkgs/pkgs/tools/X11/xbindkeys-config/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xbindkeys-config/default.nix
@@ -4,8 +4,8 @@ stdenv.mkDerivation rec {
   pname = "xbindkeys-config";
   version = "0.1.3";
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gtk makeWrapper ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ gtk ];
 
   src = fetchurl {
     url = "mirror://debian/pool/main/x/xbindkeys-config/xbindkeys-config_${version}.orig.tar.gz";
diff --git a/nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix b/nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix
index 6d0c46e52e92..207c052686f8 100644
--- a/nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "13216b8rfkzak5k6bvpx6jvqv3cnbgpijnjwj8a8d3kq4cl0a1ra";
   };
 
-  buildInputs = [ libxslt docbook_xsl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ libxslt docbook_xsl ];
 
   preFixup = ''
     # fallback values need to be last
diff --git a/nixpkgs/pkgs/tools/X11/xidlehook/default.nix b/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
index 08fa4f155624..82aee8f818b4 100644
--- a/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
@@ -1,9 +1,19 @@
-{ lib, stdenv, rustPlatform, fetchFromGitLab, python3
-, xlibsWrapper, xorg, libpulseaudio, pkg-config, patchelf, Security }:
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitLab
+, python3
+, xlibsWrapper
+, xorg
+, libpulseaudio
+, pkg-config
+, patchelf
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "xidlehook";
-  version = "0.9.1";
+  version = "0.10.0";
 
   doCheck = false;
 
@@ -12,11 +22,11 @@ rustPlatform.buildRustPackage rec {
     repo = "xidlehook";
     rev = version;
 
-    sha256 = "00j2iwp25hz9jlr45qszyipljqdnh7h3ni9bkd2lmk58kkvmhf1s";
+    sha256 = "1pl7f8fhxfcy0c6c08vkagp0x1ak96vc5wgamigrk1nkd6l371lb";
   };
 
-  cargoBuildFlags = lib.optionals (!stdenv.isLinux) ["--no-default-features" "--features" "pulse"];
-  cargoSha256 = "050ihjhg33223x6pgvhqrjprx1clkj2x3jr6acf716vbwm3m0bmz";
+  cargoBuildFlags = lib.optionals (!stdenv.isLinux) [ "--no-default-features" "--features" "pulse" ];
+  cargoSha256 = "1r2xir0x04056kq7j13cpk8984kjrgxbixlacp6vz79yq9c8pv7k";
 
   buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ] ++ lib.optional stdenv.isDarwin Security;
   nativeBuildInputs = [ pkg-config patchelf python3 ];
diff --git a/nixpkgs/pkgs/tools/X11/xkb-switch/default.nix b/nixpkgs/pkgs/tools/X11/xkb-switch/default.nix
index 65426a049fea..e2f15d969edd 100644
--- a/nixpkgs/pkgs/tools/X11/xkb-switch/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xkb-switch/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xkb-switch";
-  version = "1.6.0";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "ierton";
     repo = "xkb-switch";
     rev = version;
-    sha256 = "11yn0y1kx04rqxh0d81b5q7kbyz58pi48bl7hyhlv7p8yndkfg4b";
+    sha256 = "sha256-DZAIL6+D+Hgs+fkJwRaQb9BHrEjAkxiqhOZyrR+Mpuk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/X11/xkeysnail/browser-emacs-bindings.py b/nixpkgs/pkgs/tools/X11/xkeysnail/browser-emacs-bindings.py
new file mode 100644
index 000000000000..697ad87a1b77
--- /dev/null
+++ b/nixpkgs/pkgs/tools/X11/xkeysnail/browser-emacs-bindings.py
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+import re
+from xkeysnail.transform import *
+
+aa = False
+def a_setvar(v):
+    def _setvar():
+        transform._mark_set = False
+        global aa; aa = v
+    return _setvar
+def a_ifvar():
+    def _ifvar():
+        transform._mark_set = False
+        global aa
+        if aa:
+            aa = False
+            return K("esc")
+        return K("enter")
+    return _ifvar
+def a_flipmark():
+    def _flipmark():
+        transform._mark_set = not transform._mark_set;
+    return _flipmark
+
+define_keymap(re.compile("Google-chrome|Chromium-browser|Firefox"), {
+    K("C-b"): with_mark(K("left")),
+    K("C-f"): with_mark(K("right")),
+    K("C-p"): with_mark(K("up")),
+    K("C-n"): with_mark(K("down")),
+    K("M-b"): with_mark(K("C-left")),
+    K("M-f"): with_mark(K("C-right")),
+    K("C-a"): with_mark(K("home")),
+    K("C-e"): with_mark(K("end")),
+
+    K("C-w"): [K("C-x"), set_mark(False)],
+    K("M-w"): [K("C-c"), K("right"), set_mark(False)],
+    K("C-y"): [K("C-v"), set_mark(False)],
+    K("C-k"): [K("Shift-end"), K("C-x"), set_mark(False)],
+    K("C-d"): [K("delete"), set_mark(False)],
+    K("M-d"): [K("C-delete"), set_mark(False)],
+    K("M-backspace"): [K("C-backspace"), set_mark(False)],
+
+    K("C-slash"): [K("C-z"), set_mark(False)],
+    K("C-space"): a_flipmark(),
+    K("C-M-space"): with_or_set_mark(K("C-right")),
+
+    # K("C-s"): K("F3"),
+    # K("C-r"): K("Shift-F3"),
+    # K("C-g"): [K("esc"), set_mark(False)]
+
+    K("C-s"): [K("F3"), a_setvar(True)],
+    K("C-r"): [K("Shift-F3"), a_setvar(True)],
+    K("C-g"): [K("esc"), a_setvar(False)],
+    K("enter"): a_ifvar()
+})
diff --git a/nixpkgs/pkgs/tools/X11/xkeysnail/default.nix b/nixpkgs/pkgs/tools/X11/xkeysnail/default.nix
new file mode 100644
index 000000000000..2d66405904f6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/X11/xkeysnail/default.nix
@@ -0,0 +1,42 @@
+{ lib, fetchFromGitHub, makeWrapper, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "xkeysnail";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "mooz";
+    repo = pname;
+    rev = "bf3c93b4fe6efd42893db4e6588e5ef1c4909cfb";
+    sha256 = "0plcpb4ndzfsd5hj32m0g32swnhyph9sd759cdhhzmjvlq3j8q6p";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  propagatedBuildInputs = with python3Packages; [
+    evdev
+    xlib
+    inotify-simple
+    appdirs
+  ];
+
+  doCheck = false;
+
+  postInstall = ''
+    mkdir -p $out/share
+    cp ./example/config.py $out/share/example.py
+    cp ${./browser-emacs-bindings.py} $out/share/browser.py
+
+    makeWrapper $out/bin/xkeysnail $out/bin/xkeysnail-example \
+      --add-flags "-q" --add-flags "$out/share/example.py"
+    makeWrapper $out/bin/xkeysnail $out/bin/xkeysnail-browser \
+      --add-flags "-q" --add-flags "$out/share/browser.py"
+  '';
+
+  meta = with lib; {
+    description = "Yet another keyboard remapping tool for X environment";
+    homepage = "https://github.com/mooz/xkeysnail";
+    platforms = platforms.linux;
+    license = licenses.gpl1Only;
+    maintainers = with maintainers; [ bb2020 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/acme.sh/default.nix b/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
index 9b4b09c24848..63ca45452e65 100644
--- a/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
+++ b/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute, unixtools, dnsutils }:
+{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute2, unixtools, dnsutils }:
 stdenv.mkDerivation rec {
   pname = "acme.sh";
   version = "2.8.8";
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
           openssl
           curl
           dnsutils
-          (if stdenv.isLinux then iproute else unixtools.netstat)
+          (if stdenv.isLinux then iproute2 else unixtools.netstat)
         ]
       }"
   '';
diff --git a/nixpkgs/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix b/nixpkgs/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
index 30d74c14ce5e..e661af0f949f 100644
--- a/nixpkgs/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
+++ b/nixpkgs/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "amazon-ecr-credential-helper";
-  version = "0.4.0";
+  version = "0.5.0";
 
   goPackagePath = "github.com/awslabs/amazon-ecr-credential-helper";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "awslabs";
     repo = "amazon-ecr-credential-helper";
     rev = "v${version}";
-    sha256 = "1whwxjzlyzyvrf2mzbd7my2kdz5fdbr79g18g9h4xrg8xyzk1k5q";
+    sha256 = "sha256-GmGse+N7QeG2sAjCumGkUAWu/KfhnMltzeh+s8o+tiw=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/admin/analog/default.nix b/nixpkgs/pkgs/tools/admin/analog/default.nix
index 68046be2eeea..d85e5365d63a 100644
--- a/nixpkgs/pkgs/tools/admin/analog/default.nix
+++ b/nixpkgs/pkgs/tools/admin/analog/default.nix
@@ -11,10 +11,11 @@ stdenv.mkDerivation rec {
     sha256 = "15hi8kfknldwpvm885r9s7zd5h7cirs7x0zazx2nnz62xvz3iymk";
   };
 
-  configurePhase = ''
+  postPatch = ''
     sed -i src/anlghead.h \
       -e "s|#define DEFAULTCONFIGFILE .*|#define DEFAULTCONFIGFILE \"$out/etc/analog.cfg\"|g" \
       -e "s|#define LANGDIR .*|#define LANGDIR \"$out/share/$pname}/lang/\"|g"
+    substituteInPlace src/Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
   '';
 
   installPhase = ''
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     description = "Powerful tool to generate web server statistics";
     maintainers = [ lib.maintainers.peti ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/admin/aws-google-auth/default.nix b/nixpkgs/pkgs/tools/admin/aws-google-auth/default.nix
index a9a49beda2f3..9330291014d1 100644
--- a/nixpkgs/pkgs/tools/admin/aws-google-auth/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-google-auth/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonApplication rec {
   pname = "aws-google-auth";
-  version = "0.0.36";
+  version = "0.0.37";
 
   # Pypi doesn't ship the tests, so we fetch directly from GitHub
   # https://github.com/cevoaustralia/aws-google-auth/issues/120
@@ -28,7 +28,7 @@ buildPythonApplication rec {
     owner = "cevoaustralia";
     repo = "aws-google-auth";
     rev = version;
-    sha256 = "099r020v33sij2b3816cjp4fpy35c886l559szfxqx6kgy19y9z7";
+    sha256 = "1bh733n4m5rsslpbjvhdigx6768nrvacybkakrm9704d2md9vkqd";
   };
 
   propagatedBuildInputs = [
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
new file mode 100644
index 000000000000..84372423d611
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "aws-lambda-runtime-interface-emulator";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "aws";
+    repo = "aws-lambda-runtime-interface-emulator";
+    rev = "v${version}";
+    sha256 = "sha256-vbVygZzLlJlxaRF/LIqSJP0gZGyu1wSSdeVjILl/OJE=";
+  };
+
+  vendorSha256 = "sha256-WcvYPGgkrK7Zs5IplAoUTay5ys9LrDJHpRN3ywEdWRM=";
+
+  # disabled because I lack the skill
+  doCheck = false;
+
+  meta = with lib; {
+    description = "To locally test their Lambda function packaged as a container image.";
+    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 12f63e627e6d..53855b6d28de 100644
--- a/nixpkgs/pkgs/tools/admin/aws-mfa/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-mfa/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonApplication
 , fetchFromGitHub
-, pkgs
 , boto3
 }:
 
diff --git a/nixpkgs/pkgs/tools/admin/aws-vault/default.nix b/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
index d55b90f3b84d..d9f20a9bc34b 100644
--- a/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
@@ -1,16 +1,26 @@
-{ buildGoModule, lib, fetchFromGitHub }:
+{ buildGoModule, lib, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "aws-vault";
-  version = "6.2.0";
+  version = "6.3.1";
 
   src = fetchFromGitHub {
     owner = "99designs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0892fhjmxnms09bfbjnngnnnli2d4nkwq44fw98yb3d5lbpa1j1j";
+    sha256 = "sha256-yNmjoCq9fYzt/lZQlVgxQvxKWCh5Lxd4NSX7c+gE/As=";
   };
 
-  vendorSha256 = "18lmxx784377x1v0gr6fkdx5flhcajsqlzyjx508z0kih6ammc0z";
+  vendorSha256 = "sha256-Lb5iiuT/Fd3RMt98AafIi9I0FHJaSpJ8pH7r4yZiiiw=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --cmd aws-vault \
+      --bash $src/contrib/completions/bash/aws-vault.bash \
+      --fish $src/contrib/completions/fish/aws-vault.fish \
+      --zsh $src/contrib/completions/zsh/aws-vault.zsh
+  '';
+
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/awscli/default.nix b/nixpkgs/pkgs/tools/admin/awscli/default.nix
index 2360ef20e1f6..fe28df060a67 100644
--- a/nixpkgs/pkgs/tools/admin/awscli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli/default.nix
@@ -4,17 +4,9 @@
 , groff
 , less
 }:
-
 let
   py = python3.override {
     packageOverrides = self: super: {
-      rsa = super.rsa.overridePythonAttrs (oldAttrs: rec {
-        version = "3.4.2";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "25df4e10c263fb88b5ace923dd84bf9aa7f5019687b5e55382ffcdb8bede9db5";
-        };
-      });
       # TODO: https://github.com/aws/aws-cli/pull/5712
       colorama = super.colorama.overridePythonAttrs (oldAttrs: rec {
         version = "0.4.3";
@@ -26,17 +18,20 @@ let
     };
   };
 
-in with py.pkgs; buildPythonApplication rec {
+in
+with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.19.5"; # N.B: if you change this, change botocore to a matching version too
+  version = "1.19.46"; # N.B: if you change this, change botocore and boto3 to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-SwYL2ViwazP2MDZbW9cRThvg6jVOMlkfsbpY6QDsjQY=";
+    sha256 = "sha256-Cs+VOgbW/x1vsgMPgUG6PRlqZcvzHQCIRYuR6AsSYP4=";
   };
 
+  # https://github.com/aws/aws-cli/issues/4837
   postPatch = ''
-    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
+    substituteInPlace setup.py \
+      --replace "docutils>=0.10,<0.16" "docutils>=0.10"
   '';
 
   # No tests included
diff --git a/nixpkgs/pkgs/tools/admin/awscli2/default.nix b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
index d832b00a6eef..1f5ff48d25ae 100644
--- a/nixpkgs/pkgs/tools/admin/awscli2/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
@@ -1,19 +1,14 @@
-{ lib
-, python3
-, groff
-, less
-, fetchFromGitHub
-}:
+{ lib, python3, groff, less, fetchFromGitHub }:
 let
   py = python3.override {
     packageOverrides = self: super: {
       botocore = super.botocore.overridePythonAttrs (oldAttrs: rec {
-        version = "2.0.0dev85";
+        version = "2.0.0dev97";
         src = fetchFromGitHub {
           owner = "boto";
           repo = "botocore";
-          rev = "962bb5d356096c57e25a5579d09e4b4d928c886d";
-          sha256 = "09bk8d0r3245kbi96641gvfl3q4jjhw55gjldc2cpml6mv36hhnb";
+          rev = "f240d284994b521b0bd099161bc0ab5786caf700";
+          sha256 = "sha256-Ot3w/4OcQ+pXq6bJnQqV5uvG50/uIOa1pwMWqor5NXM=";
         };
       });
       prompt_toolkit = super.prompt_toolkit.overridePythonAttrs (oldAttrs: rec {
@@ -29,13 +24,13 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.1.17"; # N.B: if you change this, change botocore to a matching version too
+  version = "2.1.29"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = version;
-    sha256 = "1pla97sylzhvj7r5cschv4bg23hpl0ax1m5cx4291fppjnrn2yp9";
+    sha256 = "sha256-6SVDJeyPJQX4XIH8RYRzJG2LFDHxIrW/b1a0JZ5kIFY=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/admin/awslogs/default.nix b/nixpkgs/pkgs/tools/admin/awslogs/default.nix
index 3e2cf1505579..d9fd55f32c92 100644
--- a/nixpkgs/pkgs/tools/admin/awslogs/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awslogs/default.nix
@@ -2,19 +2,23 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "awslogs";
-  version = "0.11.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "jorgebastida";
     repo = "awslogs";
     rev = version;
-    sha256 = "0vdpld7r7y78x1lcd5z3qsx047dwichxb8f3447yzl75fnsm75dc";
+    sha256 = "1gyry8b64psvmjcb2lb3yilpa7b17yllga06svls4hi69arvrd8f";
   };
 
-  doCheck = false;
-
   propagatedBuildInputs = with python3Packages; [
-    boto3 termcolor dateutil docutils setuptools
+    boto3 termcolor dateutil docutils setuptools jmespath
+  ];
+
+  checkInputs = [ python3Packages.pytestCheckHook ];
+  disabledTests = [
+    "test_main_get_query"
+    "test_main_get_with_color"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
index 6379fa94bd7a..0c41f4127c80 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, python3, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.18.0";
+  version = "2.20.0";
   srcName = "azure-cli-${version}-src";
 
   src = fetchFromGitHub {
@@ -9,7 +9,7 @@ let
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "sha256-3qQKQePyLYwIS3yO3exHNd0uoPr7y4iZ12+GaiHfqz8=";
+    sha256 = "sha256-unG17oiqZZJNGg8QCg7xY0GzuMu2gaAIIgGF8TlMBQQ=";
   };
 
   # put packages that needs to be overriden in the py package scope
@@ -137,6 +137,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     psutil
     requests
     scp
+    semver
     six
     sshtunnel
     urllib3
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
index 8decd2f80f1e..e81815b065cc 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -61,6 +61,7 @@ let
           azure-mgmt-core
           azure-mgmt-resource
           colorama
+          cryptography
           humanfriendly
           jmespath
           knack
@@ -85,7 +86,8 @@ let
 
         postPatch = ''
           substituteInPlace setup.py \
-            --replace "azure-mgmt-core==1.2.1" "azure-mgmt-core~=1.2"
+            --replace "azure-mgmt-core==1.2.1" "azure-mgmt-core~=1.2" \
+            --replace "cryptography>=3.2,<3.4" "cryptography"
         '';
 
         doCheck = stdenv.isLinux;
@@ -136,8 +138,8 @@ let
       azure-mgmt-billing = overrideAzureMgmtPackage super.azure-mgmt-billing "1.0.0" "zip"
         "8b55064546c8e94839d9f8c98e9ea4b021004b3804e192bf39fa65b603536ad0";
 
-      azure-mgmt-botservice = overrideAzureMgmtPackage super.azure-mgmt-botservice "0.2.0" "zip"
-        "sha256-sh2IWOaaoW0luQjEARah93PBJ+xN1gLLuFQuvzmlXYM=";
+      azure-mgmt-botservice = overrideAzureMgmtPackage super.azure-mgmt-botservice "0.3.0" "zip"
+        "f8318878a66a0685a01bf27b7d1409c44eb90eb72b0a616c1a2455c72330f2f1";
 
       azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "0.5.0" "zip"
         "1wxh7mgrknnhqyafdd7sbwx8plx0zga2af21vs6yhxy48lw9w8pd";
@@ -148,8 +150,8 @@ let
       azure-mgmt-recoveryservices = overrideAzureMgmtPackage super.azure-mgmt-recoveryservices "0.4.0" "zip"
         "0v0ycyjnnx09jqf958hj2q6zfpsn80bxxm98jf59y8rj09v99rz1";
 
-      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.6.0" "zip"
-        "13s2k4jl8570bj6jkqzm0w29z29rl7h5i7czd3kr6vqar5wj9xjd";
+      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.11.0" "zip"
+        "f2b85d1d7d7db2af106000910ea5f8b95639874176a5de2f7ab37a2caa67af6b";
 
       azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "12.0.0" "zip"
         "sha256-h3nif64OgekSh4mjOSTbom8qDXVrIVNksbQ3LwILnx8=";
@@ -160,8 +162,8 @@ let
       azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "6.3.0" "zip"
         "059lhbxqx1r1717s8xz5ahpxwphq5fgy0h7k6b63cahm818rs0hx";
 
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "18.0.0" "zip"
-        "34815c91193640ad8ff0c4dad7f2d997548c853d2e8b10250329ed516e55879e";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "19.0.0" "zip"
+        "34815c91193640ad8ff0c4dad7f2d997548c853d2e8b10250329ed516e55879a";
 
       azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
         "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
@@ -175,8 +177,8 @@ let
       azure-mgmt-core = overrideAzureMgmtPackage super.azure-mgmt-core "1.2.0" "zip"
         "8fe3b59446438f27e34f7b24ea692a982034d9e734617ca1320eedeee1939998";
 
-      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "1.0.0" "zip"
-        "08xp04mkl5ajwyr0l62c8bfb4n8p9s9fp6szynb2bdp6m2p3g2z0";
+      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "3.0.0" "zip"
+        "sha256-/WV5vxXOg9CUT+NAnhpOG7f+QBGfUlTNVO26LTtuIoM=";
 
       azure-mgmt-deploymentmanager = overrideAzureMgmtPackage super.azure-mgmt-deploymentmanager "0.2.0" "zip"
         "0c6pyr36n9snx879vas5r6l25db6nlp2z96xn759mz4kg4i45qs6";
@@ -190,8 +192,8 @@ let
       azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "0.12.0" "zip"
         "187z0w5by7d9a2zsz3kidmzjw591akpc6dwhps4jyb4skcmyw86s";
 
-      azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "3.0.0" "zip"
-        "0iq04hvivq3fvg2lhax95gx0x35avk5hps42227z3qna5i2cznpn";
+      azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "4.1.0" "zip"
+        "e6d4810f454c0d63a5e816eaa7e54a073a3f70b2256162ff1c234cfe91783ae6";
 
       azure-mgmt-kusto = overrideAzureMgmtPackage super.azure-mgmt-kusto "0.3.0" "zip"
         "1pmcdgimd66h964a3d5m2j2fbydshcwhrk87wblhwhfl3xwbgf4y";
@@ -199,23 +201,23 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.14.0" "zip"
-        "0f8m7j8sdm1rfrwizz3qfk4lyb2x02af3v66as5yqjriipk1bnbg";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.15.0" "zip"
+        "sha256-XpjDYGCad7RDsv5DHgM35ctwW08C0CBHkfmYX3zmiDY=";
 
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "2.1.0" "zip"
         "1l55py4fzzwhxlmnwa41gpmqk9v2ncc79w7zq11sm9a5ynrv2c1p";
 
-      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "0.7.0" "zip"
-        "18n2lqvrhq40gdqhlzzg8mc03571i02c7qq7jv771lc58rqpzysh";
+      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "8.0.0" "zip"
+        "3e7a93186594c328a6f34f0e0d9209a05021228baa85aa4c1c4ffdbf8005a45f";
 
-      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "17.0.0" "zip"
-        "3694f2675e152afccb1588a6cc7bb4b4795d442a4e5d7082cdf1f4e32a779199";
+      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "17.1.0" "zip"
+        "f47852836a5960447ab534784a9285696969f007744ba030828da2eab92621ab";
 
       azure-mgmt-marketplaceordering = overrideAzureMgmtPackage super.azure-mgmt-marketplaceordering "0.1.0" "zip"
         "sha256-baEkJcurDMYvJG5yZrTWev9r3QMey+UMdULC8rJECtQ=";
 
-      azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "2.1.0" "zip"
-        "1py0hch0wghzfxazdrrs7p0kln2zn9jh3fmkzwd2z8qggj38q6gm";
+      azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "3.0.0" "zip"
+        "sha256-iUR3VyXFJTYU0ldXbYQe5or6NPVwsFwJJKf3Px2yiiQ=";
 
       azure-mgmt-msi = overrideAzureMgmtPackage super.azure-mgmt-msi "0.2.0" "zip"
         "0rvik03njz940x2hvqg6iiq8k0d88gyygsr86w8s0sa12sdbq8l6";
@@ -232,8 +234,8 @@ let
       azure-mgmt-reservations = overrideAzureMgmtPackage super.azure-mgmt-reservations "0.6.0" "zip"
         "16ycni3cjl9c0mv419gy5rgbrlg8zp0vnr6aj8z8p2ypdw6sgac3";
 
-      azure-mgmt-search = overrideAzureMgmtPackage super.azure-mgmt-search "2.0.0" "zip"
-        "14v8ja8har2xrb00v98610pqvakcdvnzw8hkd6wbr1np3f3dxi8f";
+      azure-mgmt-search = overrideAzureMgmtPackage super.azure-mgmt-search "8.0.0" "zip"
+        "a96d50c88507233a293e757202deead980c67808f432b8e897c4df1ca088da7e";
 
       azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "0.6.0" "zip"
         "9f37d0151d730801222af111f0830905634795dbfd59ad1b89c35197421e74d3";
@@ -241,14 +243,14 @@ let
       azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "0.4.0" "zip"
         "09n12ligh301z4xwixl50n8f1rgd2k6lpsxqzr6n6jvgkpdds0v5";
 
-      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "0.21.0" "zip"
-        "0023q32z4vn94l5aqf7h6ld4ai12a703y7glnl02lls25qfs9xvv";
+      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "0.26.0" "zip"
+        "sha256-tmsxhHt6mRWNOXDebckZSXt4L8+757NRKSDu6wVMqRE=";
 
       azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "0.5.0" "zip"
         "1b9am8raa17hxnz7d5pk2ix0309wsnhnchq1mi22icd728sl5adm";
 
-      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "0.5.0" "zip"
-        "0dr8xml9zlsnag761zx7ifvdkhsv4syzxpmdn4gbf9c5qcq65dsf";
+      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "0.6.0" "zip"
+        "sha256-+By1KyIHdKq5P/zyW9wX4D/YS2kWg2ZAeJ+G+/Y2uYQ=";
 
       azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "4.1.0" "zip"
         "c33d1deb0ee173a15c8ec21a1e714ba544fe5f4895d3b1d8b0581f3c1b2e8ce4";
@@ -262,14 +264,14 @@ let
       azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "8.0.0" "zip"
         "2c974c6114d8d27152642c82a975812790a5e86ccf609bf370a476d9ea0d2e7d";
 
-      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "5.2.0" "zip"
-        "10b8y1b5qlyr666x7yimnwis9386ciphrxdnmmyzk90qg6h0niry";
+      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "7.0.0" "zip"
+        "sha256-6abJoZs5cbodve75bApaLDWUYzp1R6YOa/y4Azhk7jg=";
 
       azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "3.0.0rc16" "zip"
         "eT5gH0K4q2Qr1lEpuqjxQhOUrA6bEsAktj+PKsfMXTo=";
 
-      azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "0.11.0" "zip"
-        "05jhn66d4sl1qi6w34rqd8wl500jndismiwhdmzzmprdvn1zxqf6";
+      azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "2.0.0" "zip"
+        "e7f7943fe8f0efe98b3b1996cdec47c709765257a6e09e7940f7838a0f829e82";
 
       azure-mgmt-advisor =  overrideAzureMgmtPackage super.azure-mgmt-advisor "2.0.1" "zip"
         "1wsfkprdrn22mwm24y2zlcms8ppp7jwq3s86r3ymbl29pbaxca8r";
@@ -280,8 +282,8 @@ let
       azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.61.0" "zip"
         "0xfvx2dvfj3fbz4ngn860ipi4v6gxqajyjc8x92r8knhmniyxk7m";
 
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "16.0.0" "zip"
-        "2f9d714d9722b1ef4bac6563676612e6e795c4e90f6f3cd323616fdadb0a99e5";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "17.0.0" "zip"
+        "c0e3fd99028d98c80dddabe1c22dfeb3d694e5c1393c6de80766eb240739e4bc";
 
       azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "0.6.0" "zip"
         "1c88pj8diijciizw4c6g1g6liz54cp3xmlm4xnmz97hizfw202gj";
@@ -289,11 +291,11 @@ let
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "0.5.0" "zip"
         "0x6wxb9zrvcayg3yw0nm99p10vvgc0x3zwk9amzs5m682r2z4wap";
 
-      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "2.0.0" "zip"
-        "fd47029f2423e45ec4d311f651dc972043b98e960f186f5c6508c6fdf6eb2fe8";
+      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "2.2.0" "zip"
+        "sha256-Myxg3G0+OAk/bh4k5TOEGGJuyEBtYA2edNlbIXnWE4M=";
 
-      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.5.2" "tar.gz"
-        "09y075mc7kig4dlb0xdvdvl9xbr931bi7kv60xaqnf31pf4pb7gf";
+      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.6.0" "tar.gz"
+        "sha256-2AWpGyle31IFf/qya3FBYJBUBr3V16Gj+T9s3D7ehBI=";
 
       azure-graphrbac = super.azure-graphrbac.overrideAttrs(oldAttrs: rec {
         version = "0.60.0";
@@ -371,12 +373,12 @@ let
       });
 
       azure-keyvault-administration = super.azure-keyvault-administration.overridePythonAttrs(oldAttrs: rec {
-        version = "4.0.0b1";
+        version = "4.0.0b3";
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
           extension = "zip";
-          sha256 = "1kmf2x3jdmfm9c7ldvajzckkm79gxxvl1l2968lizjwiyjbbsih5";
+          sha256 = "sha256-d3tJWObM3plRurzfqWmHkn5CqVL9ekQfn9AeDc/KxLQ=";
         };
       });
 
@@ -415,33 +417,24 @@ let
         '';
       });
 
-      knack = super.knack.overridePythonAttrs(oldAttrs: rec {
-        version = "0.8.0rc2";
+      semver = super.semver.overridePythonAttrs(oldAttrs: rec {
+        version = "2.13.0";
 
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "sha256-4pzgVwOVcT5UsjbyGkE30xashMASUzoQe2OGHSnK5do=";
+          sha256 = "sha256-+g/ici7hw/V+rEeIIMOlri9iSvgmTL35AAyYD/f3Xj8=";
         };
       });
 
-      msal = super.msal.overridePythonAttrs(oldAttrs: rec {
-        version = "1.0.0";
-
-        src = super.fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          sha256 = "0h33wayvakggr684spdyhiqvrwraavcbk3phmcbavb3zqxd3zgpc";
-        };
-      });
 
-      msal-extensions = super.msal-extensions.overridePythonAttrs(oldAttrs: rec {
-        version = "0.1.3";
+      knack = super.knack.overridePythonAttrs(oldAttrs: rec {
+        version = "0.8.0rc2";
 
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "1p05cbfksnhijx1il7s24js2ydzgxbpiasf607qdpb5sljlp3qar";
+          sha256 = "sha256-4pzgVwOVcT5UsjbyGkE30xashMASUzoQe2OGHSnK5do=";
         };
       });
 
diff --git a/nixpkgs/pkgs/tools/admin/chkcrontab/default.nix b/nixpkgs/pkgs/tools/admin/chkcrontab/default.nix
index bbf8d7eaeb1c..d91894f00063 100644
--- a/nixpkgs/pkgs/tools/admin/chkcrontab/default.nix
+++ b/nixpkgs/pkgs/tools/admin/chkcrontab/default.nix
@@ -1,6 +1,6 @@
-{ python, lib }:
+{ python3, lib }:
 
-with python.pkgs;
+with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "chkcrontab";
diff --git a/nixpkgs/pkgs/tools/admin/clair/default.nix b/nixpkgs/pkgs/tools/admin/clair/default.nix
index cbe6e3eed1f3..93b5433fcc0a 100644
--- a/nixpkgs/pkgs/tools/admin/clair/default.nix
+++ b/nixpkgs/pkgs/tools/admin/clair/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clair";
-  version = "4.0.0";
+  version = "4.0.4";
 
   src = fetchFromGitHub {
     owner = "quay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "10kgg2i5yzdfhylrdkmh8rsc4cgdnhcgfa8fa4dm8m3licjciwam";
+    sha256 = "sha256-KY9POvwmyUVx9jcn02Ltcz2a1ULqyKW73A9Peb6rpYE=";
   };
 
-  vendorSha256 = "1l3b86f5xmyc6lskvb4ab30adcgzb69ayccc0wcz2f28sda3i80r";
+  vendorSha256 = "sha256-+p3ucnvgOpSLS/uP9RAkWixCkaDoF64qCww013jPqSs=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/docker-credential-gcr/default.nix b/nixpkgs/pkgs/tools/admin/docker-credential-gcr/default.nix
index 7fb128caa19b..48851c3784b7 100644
--- a/nixpkgs/pkgs/tools/admin/docker-credential-gcr/default.nix
+++ b/nixpkgs/pkgs/tools/admin/docker-credential-gcr/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "docker-credential-gcr";
-  version = "2.0.2";
+  version = "2.0.4";
 
   goPackagePath = "github.com/GoogleCloudPlatform/docker-credential-gcr";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "GoogleCloudPlatform";
     repo = "docker-credential-gcr";
     rev = "v${version}";
-    sha256 = "0m7jx669yf27z2g9gw9vwncpwldrcb3ldlf1xhvbwbijnc2jk866";
+    sha256 = "sha256-yG8gpsD1KZBSbJnnNTXgZah/mcrOUH1O37s7AGpeHjQ=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/admin/eksctl/default.nix b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
index 0db886595750..e24f00224832 100644
--- a/nixpkgs/pkgs/tools/admin/eksctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.37.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-1IhCBDMfGW9hDvQoGSJKJ1ZlShzVeIGjVOfiUspHRBw=";
+    sha256 = "sha256-f4DkmIi4Uf4qJ3zkDWcpuN6nqXAwa91lj9Jd1MIskJ8=";
   };
 
-  vendorSha256 = "sha256-fa8IrJhsy5cBzBs4tGIx7ykJcXjdvLqms3Dk97P4Vik=";
+  vendorSha256 = "sha256-G6rOmI1Q+bMRqOrkByff2q1AtuUN4hBfFzYaFq4TsxY=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
index 89b96824607d..cb487db6a5f5 100644
--- a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.24.0";
+  version = "1.27.1";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-uriXZ4fEUswSBh9hv122wkAPHOnmt6+AodKkCHAMSh8=";
+    sha256 = "sha256-YaW7rTeVz2Mbnmp6ORsnALlyVxGnf8K73LXN/fmJMLk=";
   };
 
   goPackagePath = "github.com/exoscale/cli";
diff --git a/nixpkgs/pkgs/tools/admin/fioctl/default.nix b/nixpkgs/pkgs/tools/admin/fioctl/default.nix
new file mode 100644
index 000000000000..bd8b74f8bc88
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/fioctl/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "fioctl";
+  version = "0.15";
+
+  src = fetchFromGitHub {
+    owner = "foundriesio";
+    repo = "fioctl";
+    rev = "v${version}";
+    sha256 = "0gmh32h9j6wpkdxxg7vj158lsaxq30x7hjsc9gwpip3bff278hw4";
+  };
+
+  vendorSha256 = "170z5a1iwwcpz890nficqnz7rr7yzdxr5jx9pa7s31z17lr8kbz9";
+
+  runVend = true;
+
+  buildFlagsArray = ''
+    -ldflags=-s -w -X github.com/foundriesio/fioctl/subcommands/version.Commit=${src.rev}
+  '';
+
+  meta = with lib; {
+    description = "A simple CLI to manage your Foundries Factory ";
+    homepage = "https://github.com/foundriesio/fioctl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nixinator matthewcroughan ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/gixy/default.nix b/nixpkgs/pkgs/tools/admin/gixy/default.nix
index 118457d40802..06656a9e033b 100644
--- a/nixpkgs/pkgs/tools/admin/gixy/default.nix
+++ b/nixpkgs/pkgs/tools/admin/gixy/default.nix
@@ -1,11 +1,11 @@
-{ lib, fetchFromGitHub, python }:
+{ lib, fetchFromGitHub, python3 }:
 
-python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "gixy";
   version = "0.1.20";
 
   # package is only compatible with python 2.7 and 3.5+
-  disabled = with python.pkgs; !(pythonAtLeast "3.5" || isPy27);
+  disabled = with python3.pkgs; !(pythonAtLeast "3.5" || isPy27);
 
   # fetching from GitHub because the PyPi source is missing the tests
   src = fetchFromGitHub {
@@ -19,7 +19,7 @@ python.pkgs.buildPythonApplication rec {
     sed -ie '/argparse/d' setup.py
   '';
 
-  propagatedBuildInputs = with python.pkgs; [
+  propagatedBuildInputs = with python3.pkgs; [
     cached-property
     ConfigArgParse
     pyparsing
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/cloud_sql_proxy_path.patch b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/cloud_sql_proxy_path.patch
new file mode 100644
index 000000000000..aec4be2ec19a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/cloud_sql_proxy_path.patch
@@ -0,0 +1,36 @@
+diff --git a/lib/googlecloudsdk/api_lib/sql/instances.py b/lib/googlecloudsdk/api_lib/sql/instances.py
+index 0d88ffe..814a436 100644
+--- a/lib/googlecloudsdk/api_lib/sql/instances.py
++++ b/lib/googlecloudsdk/api_lib/sql/instances.py
+@@ -86,18 +86,19 @@ def GetRegionFromZone(gce_zone):
+ def _GetCloudSqlProxyPath():
+   """Determines the path to the cloud_sql_proxy binary."""
+   sdk_bin_path = config.Paths().sdk_bin_path
+-  if not sdk_bin_path:
+-    # Check if cloud_sql_proxy is located on the PATH.
+-    proxy_path = file_utils.FindExecutableOnPath('cloud_sql_proxy')
+-    if proxy_path:
+-      log.debug(
+-          'Using cloud_sql_proxy found at [{path}]'.format(path=proxy_path))
+-      return proxy_path
+-    else:
+-      raise exceptions.ToolException(
+-          'A Cloud SQL Proxy SDK root could not be found. Please check your '
+-          'installation.')
+-  return os.path.join(sdk_bin_path, 'cloud_sql_proxy')
++  if sdk_bin_path and os.path.isfile(os.path.join(sdk_bin_path, 'cloud_sql_proxy')):
++      return os.path.join(sdk_bin_path, 'cloud_sql_proxy')
++
++  # Check if cloud_sql_proxy is located on the PATH.
++  proxy_path = file_utils.FindExecutableOnPath('cloud_sql_proxy')
++  if proxy_path:
++    log.debug(
++        'Using cloud_sql_proxy found at [{path}]'.format(path=proxy_path))
++    return proxy_path
++
++  raise exceptions.ToolException(
++      'A Cloud SQL Proxy SDK root could not be found. Please check your '
++      'installation.')
+ 
+ 
+ def _RaiseProxyError(error_msg=None):
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
index 36af063c4481..2ff2bf92f89b 100644
--- a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -21,31 +21,37 @@ let
   sources = name: system: {
     x86_64-darwin = {
       url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
-      sha256 = "09pv1xvycgfai151z6kbsggyldcd3cx6x1p04dcim2xrawqvng6s";
+      sha256 = "0csgdmzr9h3vnqn8gxvgg2mnjzackkvrid1i55l2fqcad69h6w1k";
     };
 
     x86_64-linux = {
       url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "1iybbvxjny33mw3h2f81fdvsvp65xa62c2qrzjv8hkrqkw69ckrp";
+      sha256 = "0gcxldk3c03dipbkj9yzaa4v1s6bf9zlwslvi8dv3s3kbljjd84b";
     };
   }.${system};
 
 in stdenv.mkDerivation rec {
   pname = "google-cloud-sdk";
-  version = "325.0.0";
+  version = "334.0.0";
 
   src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
 
-  buildInputs = [ python makeWrapper ];
+  buildInputs = [ python ];
 
-  nativeBuildInputs = [ jq ];
+  nativeBuildInputs = [ jq makeWrapper ];
 
   patches = [
+    # For kubectl configs, don't store the absolute path of the `gcloud` binary as it can be garbage-collected
     ./gcloud-path.patch
+    # Disable checking for updates for the package
     ./gsutil-disable-updates.patch
+    # Try to use cloud_sql_proxy from SDK only if it actually exists, otherwise, search for one in PATH
+    ./cloud_sql_proxy_path.patch
   ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/google-cloud-sdk
     cp -R * .install $out/google-cloud-sdk/
 
@@ -75,7 +81,8 @@ in stdenv.mkDerivation rec {
 
     # setup bash completion
     mkdir -p $out/share/bash-completion/completions
-    mv $out/google-cloud-sdk/completion.bash.inc $out/share/bash-completion/completions/gcloud.inc
+    mv $out/google-cloud-sdk/completion.bash.inc $out/share/bash-completion/completions/gcloud
+    ln -s $out/share/bash-completion/completions/gcloud $out/share/bash-completion/completions/gsutil
 
     # This directory contains compiled mac binaries. We used crcmod from
     # nixpkgs instead.
@@ -91,6 +98,8 @@ in stdenv.mkDerivation rec {
       jq -c . $path > $path.min
       mv $path.min $path
     done
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/admin/lxd/default.nix b/nixpkgs/pkgs/tools/admin/lxd/default.nix
index ba6f9d074b24..91f71ece4210 100644
--- a/nixpkgs/pkgs/tools/admin/lxd/default.nix
+++ b/nixpkgs/pkgs/tools/admin/lxd/default.nix
@@ -1,6 +1,6 @@
 { lib, hwdata, pkg-config, lxc, buildGoPackage, fetchurl
 , makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq
-, squashfsTools, iproute, iptables, ebtables, iptables-nftables-compat, libcap
+, squashfsTools, iproute2, iptables, ebtables, iptables-nftables-compat, libcap
 , libco-canonical, dqlite, raft-canonical, sqlite-replication, udev
 , writeShellScriptBin, apparmor-profiles, apparmor-parser
 , criu
@@ -18,13 +18,13 @@ let
 in
 buildGoPackage rec {
   pname = "lxd";
-  version = "4.11";
+  version = "4.12";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://github.com/lxc/lxd/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "1pcgxpmiiskq770sn25861dj0z8l24nzc1jbzyql7cxn0w5bnw1x";
+    sha256 = "1qgi9ciljq8h3ja9kalfvnxnjymddd5j4agv984137z443mqfnrw";
   };
 
   postPatch = ''
@@ -48,14 +48,14 @@ buildGoPackage rec {
 
     wrapProgram $out/bin/lxd --prefix PATH : ${lib.makeBinPath (
       networkPkgs
-      ++ [ acl rsync gnutar xz btrfs-progs gzip dnsmasq squashfsTools iproute bash criu ]
+      ++ [ acl rsync gnutar xz btrfs-progs gzip dnsmasq squashfsTools iproute2 bash criu ]
       ++ [ (writeShellScriptBin "apparmor_parser" ''
              exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
            '') ]
       )
     }
 
-    installShellCompletion --bash go/src/github.com/lxc/lxd/scripts/bash/lxd-client
+    installShellCompletion --bash --name lxd go/src/github.com/lxc/lxd/scripts/bash/lxd-client
   '';
 
   nativeBuildInputs = [ installShellFiles pkg-config makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/admin/mycli/default.nix b/nixpkgs/pkgs/tools/admin/mycli/default.nix
index 47c9aa7f5f8a..ca845cce1456 100644
--- a/nixpkgs/pkgs/tools/admin/mycli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/mycli/default.nix
@@ -7,19 +7,21 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "mycli";
-  version = "1.23.2";
+  version = "1.24.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-auGbFAvwLR7aDChhgeNZPZPNGJo+b9Q4TFDaOrmU2zI=";
+    sha256 = "sha256-dI2Yvj2llI9TlMFbs35ijYeFuGqoTovZyRh+ILhNMmY=";
   };
 
   propagatedBuildInputs = [
     cli-helpers
     click
     configobj
+    importlib-resources
     paramiko
     prompt_toolkit
+    pyaes
     pycrypto
     pygments
     pymysql
@@ -39,7 +41,8 @@ buildPythonApplication rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "sqlparse>=0.3.0,<0.4.0" "sqlparse"
+      --replace "sqlparse>=0.3.0,<0.4.0" "sqlparse" \
+      --replace "importlib_resources >= 5.0.0" "importlib_resources"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/admin/netplan/default.nix b/nixpkgs/pkgs/tools/admin/netplan/default.nix
new file mode 100644
index 000000000000..b9dc2c070731
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/netplan/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, glib
+, pandoc
+, systemd
+, libyaml
+, python3
+, libuuid
+, bash-completion
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "netplan";
+  version = "0.101";
+
+  src = fetchFromGitHub {
+    owner = "CanonicalLtd";
+    repo = "netplan";
+    rev = version;
+    hash = "sha256-bCK7J2pCQUwjZu8c1n6jhF6T/gvUGwydqAXpxUMLgMc=";
+    fetchSubmodules = false;
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    glib
+    pandoc
+  ];
+
+  buildInputs = [
+    systemd
+    glib
+    libyaml
+    (python3.withPackages (p: with p; [ pyyaml netifaces ]))
+    libuuid
+    bash-completion
+  ];
+
+  postPatch = ''
+    substituteInPlace netplan/cli/utils.py --replace "/lib/netplan/generate" "$out/lib/netplan/generate"
+    substituteInPlace netplan/cli/utils.py --replace "ctypes.util.find_library('netplan')" "\"$out/lib/libnetplan.so\""
+
+    substituteInPlace Makefile --replace 'SYSTEMD_GENERATOR_DIR=' 'SYSTEMD_GENERATOR_DIR ?= ' \
+        --replace 'SYSTEMD_UNIT_DIR=' 'SYSTEMD_UNIT_DIR ?= ' \
+        --replace 'BASH_COMPLETIONS_DIR=' 'BASH_COMPLETIONS_DIR ?= '
+  '';
+
+  makeFlags = [
+    "PREFIX="
+    "DESTDIR=$(out)"
+    "SYSTEMD_GENERATOR_DIR=lib/systemd/system-generators/"
+    "SYSTEMD_UNIT_DIR=lib/systemd/units/"
+    "BASH_COMPLETIONS_DIR=share/bash-completion/completions"
+  ];
+
+  meta = with lib; {
+    description = "Backend-agnostic network configuration in YAML";
+    homepage = "https://netplan.io";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ mkg20001 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix b/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
index c419c7e834a2..0daa65cc9804 100644
--- a/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
+++ b/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, file, fetchurl, makeWrapper,
   autoPatchelfHook, jsoncpp, libpulseaudio }:
 let
-  versionMajor = "7.0";
-  versionMinor = "211";
-  versionBuild_x86_64 = "4";
-  versionBuild_i686 = "4";
+  versionMajor = "7.4";
+  versionMinor = "1";
+  versionBuild_x86_64 = "1";
+  versionBuild_i686 = "1";
 in
   stdenv.mkDerivation rec {
     pname = "nomachine-client";
@@ -14,12 +14,12 @@ in
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz";
-          sha256 = "06habqsl5gp13sym519r3qp188qwqqfw8p48wcs4zj3kcri6fjz0";
+          sha256 = "1qir9ii0h5ali87mjzjl72dm1ky626d7y59jfpglakqxzqhjamdz";
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
           url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz";
-          sha256 = "1y4lr95mwilwr7gqsxqvygq4w3dcp4cjh8m06wdi3avwdzrjkgj9";
+          sha256 = "1gxiysc09k3jz1pkkyfqgw2fygcnmrnskk6b9vn4fjnvsab4py60";
         }
       else
         throw "NoMachine client is not supported on ${stdenv.hostPlatform.system}";
diff --git a/nixpkgs/pkgs/tools/admin/procs/default.nix b/nixpkgs/pkgs/tools/admin/procs/default.nix
index afdbbbe9450b..1f86affa8c3b 100644
--- a/nixpkgs/pkgs/tools/admin/procs/default.nix
+++ b/nixpkgs/pkgs/tools/admin/procs/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, Security }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, Security, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "procs";
-  version = "0.11.3";
+  version = "0.11.4";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OaHsNxrOrPlAwtFDY3Tnx+nOabax98xcGQeNds32iOA=";
+    sha256 = "sha256-jqcI0ne6fZkgr4bWJ0ysVNvB7q9ErYbsmZoXI38XUng=";
   };
 
-  cargoSha256 = "sha256-miOfm1Sw6tIICkT9T2V82cdGG2STo9vuLPWsAN/8wuM=";
+  cargoSha256 = "sha256-0s5MeWX+rXTyftwg6sReNMRgBzhUMIdHu5buKwg1Yi4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
 
   meta = with lib; {
     description = "A modern replacement for ps written in Rust";
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/data.nix b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
index 0498b56dcf56..707aff2011b7 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi/data.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
@@ -1,178 +1,178 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "2.19.0";
+  version = "2.23.2";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.19.0-linux-x64.tar.gz";
-        sha256 = "0641inzkbgrjarc7jdmi0iryx4swjh1ayf0j15ais3yij7jq4da2";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.23.2-linux-x64.tar.gz";
+        sha256 = "0bg90kj8lb1bw3vx0672rbzmc5wylx90cad3h93qlwxsfvijmk7x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v1.5.2-linux-amd64.tar.gz";
-        sha256 = "1jrv87r55m1kzl48zs5vh83v2kh011gm4dha80ijqjhryx0a94jy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v1.9.1-linux-amd64.tar.gz";
+        sha256 = "084l6si66sxy55i4y14rn287v69vli17n283s718v00zrmgdah35";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v3.25.1-linux-amd64.tar.gz";
-        sha256 = "0yfrpih5q2hfj2555y26l1pqs22idh4hqn20gy310kg12r303hwk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v3.34.2-linux-amd64.tar.gz";
+        sha256 = "1xpil1a7gwcmjb3my9s37gf45i17l5mnxh0bkfbfwiw5znv7cjqa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v2.11.1-linux-amd64.tar.gz";
-        sha256 = "18gyan0dszfvx8fhvi8r2msbf8n9lbh10pnvcaqvdk8cr79lnzl9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v2.14.2-linux-amd64.tar.gz";
+        sha256 = "00ibqxb1qzwi93dsq56av0vxq80lx2rr8wll4q6d8wlph215hlqs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v2.7.0-linux-amd64.tar.gz";
-        sha256 = "05nmdjgwhm1pi5zljq33812wgkz1rpisjrvdn8lcsapwz3fchbjd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v2.9.1-linux-amd64.tar.gz";
+        sha256 = "04sk6km29ssqkv0xw26vq3iik2kfzc3dnzacn324m7fddv3p9wx9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v2.15.0-linux-amd64.tar.gz";
-        sha256 = "12wjh0w7i1f6rd5r4pqc98ix4mkrkqwnvpv7hkcsn90rsxrlfysk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v2.17.1-linux-amd64.tar.gz";
+        sha256 = "0b3bz952wz7fsbk51j0mlfsyyg9ymc9wnq8kgm7dvs1p5zgzv4ni";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v3.3.0-linux-amd64.tar.gz";
-        sha256 = "19cpq6hwj862wmfcfx732j66wjkfjnxjrqj4bgxpgah62hrl5lh2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v3.6.1-linux-amd64.tar.gz";
+        sha256 = "114r26ncf3rlw6h0wsmyxhpcxb5hy20fk8kav858hvqacby5w6sq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v2.7.0-linux-amd64.tar.gz";
-        sha256 = "0mb6ddidyk3g1ayk8y0ypb262fyv584w5cicvjc5r9670a1d2rcv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v2.9.1-linux-amd64.tar.gz";
+        sha256 = "178l4h7wj9pn1283zajaqm7fwcfwzpzq7swrgr8q880qsa611gjs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v4.9.0-linux-amd64.tar.gz";
-        sha256 = "1b5m2620s4bqq6zlagki3w4fzph3lc5192falv8ick4rgbv714nb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v4.17.0-linux-amd64.tar.gz";
+        sha256 = "0xzix9mn3n3n4y7l6xl0bn2xq338436ykb34j2fi20wxg5wb99lf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v2.5.1-linux-amd64.tar.gz";
-        sha256 = "10cmnsxpiy7bfxyrpwfqn5kgpijlkxrhfah40wd82j3j2b7wy33j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v3.3.1-linux-amd64.tar.gz";
+        sha256 = "1pg1q70gkp300swl5hnjdx7s9yjg0d88r280ylga73syncms4s3w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v3.5.0-linux-amd64.tar.gz";
-        sha256 = "10d5gmhax02906jpr9nmb80xfxvy2ym8vjyj31sz2mcl9jnadk4z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v3.8.1-linux-amd64.tar.gz";
+        sha256 = "1xhrj950lk6qdazg4flymn3dmkbivc2rd71k8sdy9zfanyxnq8vv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v0.5.1-linux-amd64.tar.gz";
-        sha256 = "0fi8qxv6ladpapb6j0w7zqk0hxj56iy1131dsipzkkx4p1jfg27r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v0.7.1-linux-amd64.tar.gz";
+        sha256 = "0n2p14iam44icms4c8qrjfy1z7p4m6igxckvqxr0gphi8ngk4ggh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.7.8-linux-amd64.tar.gz";
-        sha256 = "0ah0yhwf79dgk7biifnapz0366mm5a54rlqf8hffn13czqnc3qbq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.8.3-linux-amd64.tar.gz";
+        sha256 = "0l9r0gqhhjbkv4vn4cxm2s9zf93005w8vrb103w101h1gc5gh93l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v2.3.2-linux-amd64.tar.gz";
-        sha256 = "1c39fk37kx093n0ldk8szblgcx0hviyyd7mxzp7nb97s4rvmf48l";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v2.5.1-linux-amd64.tar.gz";
+        sha256 = "0clck5cra6bplfxd0nb6vkji50gg4ah4yfvc7202hi3w2b9hfjjg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v2.3.3-linux-amd64.tar.gz";
-        sha256 = "0c2aypx8y6s892y2gygc8116rlarlcw1s2m39gkcdjjbfkmf8za0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v2.5.1-linux-amd64.tar.gz";
+        sha256 = "1cd2bm030fa9spv7bx817id419lz1c54i8h84ifinkx88ig7ngyx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v2.11.0-linux-amd64.tar.gz";
-        sha256 = "0iqimhqh853jx6zd53z1r98ky0qhxfby9w519xpdlvxxq5aqb6kb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v2.17.1-linux-amd64.tar.gz";
+        sha256 = "1q9sx2lszmkcgphp3vwx0lvs5vc67sk98rn8s6ywhz0p426wakmr";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-linux-amd64.tar.gz";
         sha256 = "0glbjhgrb2hiyhd6kwmy7v384j8zw641pw9737g1fczv3x16a3s3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.5.3-linux-amd64.tar.gz";
-        sha256 = "1rh14rngpcbqly5i3cgwfgi90drkg6fa0gkgpfa7f9mkm4wpgla8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.8.1-linux-amd64.tar.gz";
+        sha256 = "05rcvp2gkx14gy46a0vx9ch3xysnn0wlgsn80rfav35v932x9f3g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v3.0.1-linux-amd64.tar.gz";
-        sha256 = "0jpv94kzsa794ds5bjj6j3pj1wxqicavpxjnycfa5cm8w71kmlsh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v3.1.1-linux-amd64.tar.gz";
+        sha256 = "1zpwlvdgjvhnhlzyppqg76csma8kan33amxa1svlhcai8b168878";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v3.3.0-linux-amd64.tar.gz";
-        sha256 = "069sq8lkw4n7ykh2b2fsaggxxr4731riyy9i15idffa52d1kkiq6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v3.5.1-linux-amd64.tar.gz";
+        sha256 = "16b1449vb6inlyjpb1iyr5j5mwg1g2d6bcd5g2kmxcsw4yhc7ai7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v2.11.4-linux-amd64.tar.gz";
-        sha256 = "0lyvpfmjsjxpwq1b74j2jipp36n7zczlxgy0pr6j7c027d26sym6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v2.13.1-linux-amd64.tar.gz";
+        sha256 = "1z6v5vz0p9g3hrrgrchx2wnbparkbf5b8vn9pwnw69nkplr1qzff";
       }
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.19.0-darwin-x64.tar.gz";
-        sha256 = "02wd0h5aq53zjy18xzbkv7nnl097ja0m783gsgrs1wdlqblwpqyw";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.23.2-darwin-x64.tar.gz";
+        sha256 = "19g3bsmrjwfbnmw20zh0cqnhz83jl4ikfwg4rhdxsvazdmbym905";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v1.5.2-darwin-amd64.tar.gz";
-        sha256 = "1rqx2dyx3anmlv74whs587rs1bgyssqxfjzrx1cfpfnnnj5rkmry";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v1.9.1-darwin-amd64.tar.gz";
+        sha256 = "1jkw0pvwz25dvxva7dipdxf4lppgr2m8ynbjl32fijzqs61y690m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v3.25.1-darwin-amd64.tar.gz";
-        sha256 = "1j4czx1iqfm95y14isl1sqwvsw690h9y0xf2jpynp2ygmc3szrkr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v3.34.2-darwin-amd64.tar.gz";
+        sha256 = "0chjps0m203xb1ybky77lg1miv7d4cp1z8xxqhymrylfqaz4xj8q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v2.11.1-darwin-amd64.tar.gz";
-        sha256 = "0dqyd8aywmxrsvipndwrwq5pxv7avzf8kpk6rdyip4j8hp156lbz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v2.14.2-darwin-amd64.tar.gz";
+        sha256 = "05ggw10z0pp45yqq8bl32l3xjxvgwbs58czpw74whydqbd3qy8av";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v2.7.0-darwin-amd64.tar.gz";
-        sha256 = "0xbbaphd0lypyzq262rapr42lmyz3wr14xab09qc156rjasr8w64";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v2.9.1-darwin-amd64.tar.gz";
+        sha256 = "022458yxscfg56s2nqdr95wp2ffm7sni4kaksj87i6c5ddc9f1gx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v2.15.0-darwin-amd64.tar.gz";
-        sha256 = "10izly9m7847rsb533ch3n8rkhbfb3q6lcx80dk5ia8bfdlvc3cn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v2.17.1-darwin-amd64.tar.gz";
+        sha256 = "09nd5nfvjqgpbjs82bm5ym5wdg37mg863wvdp8s3fd8id4gdqb24";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v3.3.0-darwin-amd64.tar.gz";
-        sha256 = "0kyw1csyzvkbzqxrgpf4d2zgydysd4mfb07igjv19m3f7gs8jhr9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v3.6.1-darwin-amd64.tar.gz";
+        sha256 = "1f3mfgh24h2hwmshs4qpplgrxplxl7iab29xp4c7p1g573na3b7a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v2.7.0-darwin-amd64.tar.gz";
-        sha256 = "122cf7v12vzv1szi9adcccakbs3hs23qsjbykjrhwmk8hw21g4kb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v2.9.1-darwin-amd64.tar.gz";
+        sha256 = "10vp75fc41yk9lg5x7wyhs4mn2f4krfnw4jn5xys7dd475blm6rh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v4.9.0-darwin-amd64.tar.gz";
-        sha256 = "11w4ykh846byg05jxnddm6ln901pms8n5g0q5gj3ldfjrfl1cn2q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v4.17.0-darwin-amd64.tar.gz";
+        sha256 = "0cl7im10is9wvw3ygis9xy3f77npijsf1dsb49ww057kqhgv1v3i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v2.5.1-darwin-amd64.tar.gz";
-        sha256 = "1apaaa76dq53ppnmh4xi55zsrx1mwbnnsby63ymjw9xhdkc1sah6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v3.3.1-darwin-amd64.tar.gz";
+        sha256 = "1b7azajh9kzq8akyf5pf16hh3had8iwph6cw06b7mv1wqyd01k6z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v3.5.0-darwin-amd64.tar.gz";
-        sha256 = "0xfkdmnax10zkgpipxaxfi0lgfgijnvssbwmfsaxxisdxscw2ig9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v3.8.1-darwin-amd64.tar.gz";
+        sha256 = "14gqwz5nalbv97vl9apwda0xxl7cgkp5mixrc10xvx6a94w5758p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v0.5.1-darwin-amd64.tar.gz";
-        sha256 = "05h8adn3q7nnhn75vircrnr9nxf15pf82n9gvz5rbq0hsdivh3l2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v0.7.1-darwin-amd64.tar.gz";
+        sha256 = "0i0h1iz999pbz23gbs75bj3lxfg9a6044g4bwdwf3agxf3k9pji3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.7.8-darwin-amd64.tar.gz";
-        sha256 = "01xspqk3hzvrhka9nsxal8pwji3hm5qgkn49jjnk1cy01hy7s78q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.8.3-darwin-amd64.tar.gz";
+        sha256 = "1nwwqq1nn1zr6mia2wd82lzqsa8l3rr50hl1mf6l6ffyxz1q1lzj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v2.3.2-darwin-amd64.tar.gz";
-        sha256 = "19v60l2djvigf60zacchfr98kfb8wxk1rmhdswyhhhz41jh30qhl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v2.5.1-darwin-amd64.tar.gz";
+        sha256 = "0zkd3rm6z8bc7pcbwl0bbbn0zb3jrl69b84g62ma9vzskccrxxpr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v2.3.3-darwin-amd64.tar.gz";
-        sha256 = "15w72087frbx6wyngi20bsssnr7si1bk1h94jav3d4cgm6nhpnwk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v2.5.1-darwin-amd64.tar.gz";
+        sha256 = "0v4qqp1x8xi0fqiczmmh2qbf3azbgf09cphia5w8r2kkrn4i0jxn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v2.11.0-darwin-amd64.tar.gz";
-        sha256 = "05hap76yzss5bsgr20rm8sxb6r3iiwvq75lhf11laaxq2hnb7qdp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v2.17.1-darwin-amd64.tar.gz";
+        sha256 = "1788ayj5zwlmvhd1qp6rzrcbman5i0hy1hw2fmgcrf66v5qc1f18";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-darwin-amd64.tar.gz";
         sha256 = "0621njipng32x43lw8n49mapq10lnvibg8vlvgciqsfvrbpz1yp5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.5.3-darwin-amd64.tar.gz";
-        sha256 = "033262l7yylw9y8ifrag2fsdpfvqjmmrxmmhksvysjmz9slb60kg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.8.1-darwin-amd64.tar.gz";
+        sha256 = "1r5rhn1yjjr0rw7qm2n8dqyqk1r1hkgvdmdq2x9smnvd2mwwjfah";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v3.0.1-darwin-amd64.tar.gz";
-        sha256 = "0d578hqkhwlhx50k9qpw7ixjyy1p2fd6cywj86s870jzgl8zh4fv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v3.1.1-darwin-amd64.tar.gz";
+        sha256 = "1j30gkz1m9ap8pd2r3lb3nl82bq5bq3h7y6jq2c0dmv3ksnp197f";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v3.3.0-darwin-amd64.tar.gz";
-        sha256 = "1qkh8hg7nplv0slq2xark57l547z63fy1l6zvrcblrqsqfw5zybv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v3.5.1-darwin-amd64.tar.gz";
+        sha256 = "1s5kbqri9k7cpajkgnl2s5l0nznzridj5iscwd9n1nj4bsr44lap";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v2.11.4-darwin-amd64.tar.gz";
-        sha256 = "11c1d1jw0z4ybwvqfvmjcx3gkpwnvi5vcq01bc7a2wg374mkhj62";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v2.13.1-darwin-amd64.tar.gz";
+        sha256 = "133xspppmydjri5ba2yxc331ljzd8wj88q3hzmgvp0m50il1ks71";
       }
     ];
   };
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/update.sh b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
index c1a0e6310166..af65df8daebd 100755
--- a/nixpkgs/pkgs/tools/admin/pulumi/update.sh
+++ b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
@@ -3,31 +3,31 @@
 
 # Version of Pulumi from
 # https://www.pulumi.com/docs/get-started/install/versions/
-VERSION="2.19.0"
+VERSION="2.23.2"
 
 # Grab latest release ${VERSION} from
 # https://github.com/pulumi/pulumi-${NAME}/releases
 plugins=(
-    "auth0=1.5.2"
-    "aws=3.25.1"
-    "cloudflare=2.11.1"
-    "consul=2.7.0"
-    "datadog=2.15.0"
-    "digitalocean=3.3.0"
-    "docker=2.7.0"
-    "gcp=4.9.0"
-    "github=2.5.1"
-    "gitlab=3.5.0"
-    "hcloud=0.5.1"
-    "kubernetes=2.7.8"
-    "mailgun=2.3.2"
-    "mysql=2.3.3"
-    "openstack=2.11.0"
+    "auth0=1.9.1"
+    "aws=3.34.2"
+    "cloudflare=2.14.2"
+    "consul=2.9.1"
+    "datadog=2.17.1"
+    "digitalocean=3.6.1"
+    "docker=2.9.1"
+    "gcp=4.17.0"
+    "github=3.3.1"
+    "gitlab=3.8.1"
+    "hcloud=0.7.1"
+    "kubernetes=2.8.3"
+    "mailgun=2.5.1"
+    "mysql=2.5.1"
+    "openstack=2.17.1"
     "packet=3.2.2"
-    "postgresql=2.5.3"
-    "random=3.0.1"
-    "vault=3.3.0"
-    "vsphere=2.11.4"
+    "postgresql=2.8.1"
+    "random=3.1.1"
+    "vault=3.5.1"
+    "vsphere=2.13.1"
 )
 
 function genMainSrc() {
@@ -56,7 +56,8 @@ function genSrcs() {
     done
 }
 
-cat <<EOF                     > data.nix
+{
+  cat <<EOF
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
@@ -64,14 +65,14 @@ cat <<EOF                     > data.nix
   pulumiPkgs = {
     x86_64-linux = [
 EOF
-genMainSrc "linux"           >> data.nix
-genSrcs "linux"              >> data.nix
-echo "    ];"                >> data.nix
-
-echo "    x86_64-darwin = [" >> data.nix
-genMainSrc "darwin"          >> data.nix
-genSrcs "darwin"             >> data.nix
-echo "    ];"                >> data.nix
-echo "  };"                  >> data.nix
-echo "}"                     >> data.nix
+  genMainSrc "linux"
+  genSrcs "linux"
+  echo "    ];"
+  echo "    x86_64-darwin = ["
 
+  genMainSrc "darwin"
+  genSrcs "darwin"
+  echo "    ];"
+  echo "  };"
+  echo "}"
+} > data.nix
diff --git a/nixpkgs/pkgs/tools/admin/salt/default.nix b/nixpkgs/pkgs/tools/admin/salt/default.nix
index ad0cae6ecde6..38ece95e3a47 100644
--- a/nixpkgs/pkgs/tools/admin/salt/default.nix
+++ b/nixpkgs/pkgs/tools/admin/salt/default.nix
@@ -7,11 +7,11 @@
 }:
 python3.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3002.2";
+  version = "3003";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "vW0pYhzo4JlBJ3fNOWrzVHSqESuwmZtdqAQ4fYcpAHU=";
+    sha256 = "xGiXM9/nOM8ofjHLP908uNFgYpUgKxjY5m1I03LVync=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -39,8 +39,8 @@ python3.pkgs.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    homepage = "https://saltstack.com/";
-    changelog = "https://docs.saltstack.com/en/latest/topics/releases/${version}.html";
+    homepage = "https://saltproject.io/";
+    changelog = "https://docs.saltproject.io/en/latest/topics/releases/${version}.html";
     description = "Portable, distributed, remote execution and configuration management system";
     maintainers = with maintainers; [ Flakebi ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/admin/simp_le/default.nix b/nixpkgs/pkgs/tools/admin/simp_le/default.nix
index 5bfc00ac0001..393d9d145c2e 100644
--- a/nixpkgs/pkgs/tools/admin/simp_le/default.nix
+++ b/nixpkgs/pkgs/tools/admin/simp_le/default.nix
@@ -22,6 +22,8 @@ python3Packages.buildPythonApplication rec {
 
   propagatedBuildInputs = with python3Packages; [ acme setuptools_scm josepy idna ];
 
+  checkInputs = with python3Packages; [ mock ];
+
   meta = with lib; {
     homepage = "https://github.com/zenhack/simp_le";
     description = "Simple Let's Encrypt client";
diff --git a/nixpkgs/pkgs/tools/admin/ssh-import-id/default.nix b/nixpkgs/pkgs/tools/admin/ssh-import-id/default.nix
index b6ca3135f561..031bb316ca55 100644
--- a/nixpkgs/pkgs/tools/admin/ssh-import-id/default.nix
+++ b/nixpkgs/pkgs/tools/admin/ssh-import-id/default.nix
@@ -2,22 +2,24 @@
 , lib
 , fetchgit
 , requests
+, distro
 , makeWrapper
 , extraHandlers ? []
 }:
 
 buildPythonPackage rec {
   pname = "ssh-import-id";
-  version = "5.8";
+  version = "5.11";
 
   src = fetchgit {
     url = "https://git.launchpad.net/ssh-import-id";
     rev = version;
-    sha256 = "0l9gya1hyf2qfidlmvg2cgfils1fp9rn5r8sihwvx4qfsfp5yaak";
+    sha256 = "sha256-tYbaJGH59qyvjp4kwo3ZFVs0EaE0Lsd2CQ6iraFkAdI=";
   };
 
   propagatedBuildInputs = [
     requests
+    distro
   ] ++ extraHandlers;
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix b/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
index 3d91847a9a69..13620d164e67 100644
--- a/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "stripe-cli";
-  version = "1.5.9";
+  version = "1.5.12";
 
   src = fetchFromGitHub {
     owner = "stripe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fR4MFEytYZA4zt4WFGnEp9YDCtX6peQoI+NynqyReT8=";
+    sha256 = "sha256-eMxukwaJqsXL0+Euvk5mM+pcAsT3GsF9filuyRL4tXg=";
   };
 
-  vendorSha256 = "sha256-GQACtHTid1Aq5iSQqks10hmGS+VUlwNoM1LG+liynhU=";
+  vendorSha256 = "sha256-e7EZ5o30vDpS904/R1y7/Mds7HxQNmsIftrnc1Bj2bc=";
 
   subPackages = [
     "cmd/stripe"
diff --git a/nixpkgs/pkgs/tools/admin/turbovnc/default.nix b/nixpkgs/pkgs/tools/admin/turbovnc/default.nix
new file mode 100644
index 000000000000..33d248ffde88
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/turbovnc/default.nix
@@ -0,0 +1,114 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, nixosTests
+
+# Dependencies
+, cmake
+, libjpeg_turbo
+, makeWrapper
+, mesa # for built-in 3D software rendering using swrast
+, openjdk # for the client with Java GUI
+, openjdk_headless # for the server
+, openssh
+, openssl
+, pam
+, perl
+, which
+, xkbcomp
+, xkeyboard_config
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "turbovnc";
+  version = "2.2.6";
+
+  src = fetchFromGitHub {
+    owner = "TurboVNC";
+    repo = "turbovnc";
+    rev = version;
+    sha256 = "sha256-HSppHPBBkTf+88ZBaYG6JK4A/5lOBCxPFv6898TD7PE=";
+  };
+
+  # TODO:
+  # * Build outputs that are unclear:
+  #   * `-- FONT_ENCODINGS_DIRECTORY = /var/empty/share/X11/fonts/encodings`
+  #     Maybe relevant what the tigervnc and tightvnc derivations
+  #     do with their `fontDirectories`?
+  #   * `SERVER_MISC_CONFIG_PATH = /var/empty/lib64/xorg`
+  #   * The thing about xorg `protocol.txt`
+  # * Does SSH support require `openssh` on PATH?
+  # * Add `enableClient ? true` flag that disables the client GUI
+  #   so that the server can be built without openjdk dependency.
+  # * Perhaps allow to build the client on non-Linux platforms.
+
+  nativeBuildInputs = [
+    cmake
+    makeWrapper
+    openjdk_headless
+  ];
+
+  buildInputs = [
+    libjpeg_turbo
+    openssl
+    pam
+    perl
+  ] ++ (with xorg; [
+    libSM
+    libX11
+    libXext
+    libXi
+    xorgproto
+  ]);
+
+  cmakeFlags = [
+    # For the 3D software rendering built into TurboVNC, pass the path
+    # to the swrast dri driver in Mesa.
+    # Can also be given at runtime to its `Xvnc` as:
+    #   -dridir /nix/store/...-mesa-20.1.10-drivers/lib/dri/
+    "-DDRI_DRIVER_PATH=${mesa.drivers}/lib/dri"
+    # The build system doesn't find these files automatically.
+    "-DTJPEG_JAR=${libjpeg_turbo.out}/share/java/turbojpeg.jar"
+    "-DTJPEG_JNILIBRARY=${libjpeg_turbo.out}/lib/libturbojpeg.so"
+    "-DXKB_BASE_DIRECTORY=${xkeyboard_config}/share/X11/xkb"
+    "-DXKB_BIN_DIRECTORY=${xkbcomp}/bin"
+  ];
+
+  postInstall = ''
+    # turbovnc dlopen()s libssl.so depending on the requested encryption.
+    wrapProgram $out/bin/Xvnc \
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ openssl ]}
+
+    # `twm` is the default window manager that `vncserver` tries to start,
+    # and it has minimal dependencies (no non-Xorg).
+    # (This default is written by `vncserver` to `~/.vnc/xstartup.turbovnc`,
+    # see https://github.com/TurboVNC/turbovnc/blob/ffdb57d9/unix/vncserver.in#L201.)
+    # It checks for it using `which twm`.
+    wrapProgram $out/bin/vncserver \
+      --prefix PATH : ${lib.makeBinPath [ which xorg.twm ]}
+
+    # Patch /usr/bin/perl
+    patchShebangs $out/bin/vncserver
+
+    # vncserver needs `xauth`
+    wrapProgram $out/bin/vncserver \
+      --prefix PATH : ${lib.makeBinPath (with xorg; [ xauth ])}
+
+    # The viewer is in Java and requires `JAVA_HOME`.
+    # For SSH support, `ssh` is required on `PATH`.
+    wrapProgram $out/bin/vncviewer \
+      --prefix JAVA_HOME : "${lib.makeLibraryPath [ openjdk ]}/openjdk" \
+      --prefix PATH : ${lib.makeBinPath [ openssh ]}
+  '';
+
+  passthru.tests.turbovnc-headless-server = nixosTests.turbovnc-headless-server;
+
+  meta = {
+    homepage = "https://turbovnc.org/";
+    license = lib.licenses.gpl2Plus;
+    description = "High-speed version of VNC derived from TightVNC";
+    maintainers = with lib.maintainers; [ nh2 ];
+    platforms = with lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/7zz/default.nix b/nixpkgs/pkgs/tools/archivers/7zz/default.nix
new file mode 100644
index 000000000000..63e603353409
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/7zz/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchurl, autoPatchelfHook }:
+
+let platform =       if stdenv.isi686    then "x86"
+                else if stdenv.isx86_64  then "x64"
+                else if stdenv.isAarch32 then "arm"
+                else if stdenv.isAarch64 then "arm64"
+                else throw "Unsupported architecture";
+
+    url = "https://7-zip.org/a/7z2101-linux-${platform}.tar.xz";
+
+    hashes = {
+      x86 = "0k6vg85ld8i2pcv5sv3xbvf3swqh9qj8hf2jcpadssys3yyidqyj";
+      x64 = "1yfanx98fizj8d2s87yxgsy30zydx7h5w9wf4wy3blgsp0vkbjb3";
+      arm = "04iah9vijm86r8rbkhxig86fx3lpag4xi7i3vq7gfrlwkymclhm1";
+      arm64 = "0a26ginpb22aydcyvffxpbi7lxh4sgs9gb6cj96qqx7cnf7bk2ri";
+    };
+    sha256 = hashes."${platform}";
+
+in stdenv.mkDerivation {
+  pname = "7zz";
+  version = "21.01";
+
+  src = fetchurl { inherit url sha256; };
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+  buildInputs = [ stdenv.cc.cc.lib ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    install -D -t $out/bin 7zz
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Command line archiver utility";
+    homepage = "https://www.7-zip.org";
+
+    # source not released yet. will be under LGPL 2.1+ with RAR exception
+    license = licenses.unfree;
+
+    platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
+    maintainers = with maintainers; [ anna328p ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/fsarchiver/default.nix b/nixpkgs/pkgs/tools/archivers/fsarchiver/default.nix
index 2322ad4d986c..80664a6a4499 100644
--- a/nixpkgs/pkgs/tools/archivers/fsarchiver/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/fsarchiver/default.nix
@@ -1,9 +1,9 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
-, zlib, bzip2, lzma, lzo, lz4, zstd, xz
+, zlib, bzip2, lzo, lz4, zstd, xz
 , libgcrypt, e2fsprogs, util-linux, libgpgerror }:
 
 let
-  version = "0.8.5";
+  version = "0.8.6";
 
 in stdenv.mkDerivation {
   pname = "fsarchiver";
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
     owner = "fdupoux";
     repo = "fsarchiver";
     rev = version;
-    sha256 = "1rvwq5v3rl14bqxjm1ibfapyicf0sa44nw7451v10kx39lp56ylp";
+    sha256 = "sha256-7AfCI4abcUijobEl6FO+5A/FRwxPkNko44u85WbTwuc=";
   };
 
   nativeBuildInputs = [
@@ -21,7 +21,7 @@ in stdenv.mkDerivation {
   ];
 
   buildInputs = [
-    zlib bzip2 lzma lzo lz4 zstd xz
+    zlib bzip2 xz lzo lz4 zstd xz
     libgcrypt e2fsprogs util-linux libgpgerror
   ];
 
diff --git a/nixpkgs/pkgs/tools/archivers/gnutar/default.nix b/nixpkgs/pkgs/tools/archivers/gnutar/default.nix
index 844bd8de29c4..5f456f922172 100644
--- a/nixpkgs/pkgs/tools/archivers/gnutar/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/gnutar/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnutar";
-  version = "1.32";
+  version = "1.34";
 
   src = fetchurl {
     url = "mirror://gnu/tar/tar-${version}.tar.xz";
-    sha256 = "1n7xy657ii0sa42zx6944v2m4v9qrh6sqgmw17l3nch3y43sxlyh";
+    sha256 = "sha256-Y769JoecXh7qQ1Lw0DyZH5Zq6z3es8dEXJAlaNVBHSg=";
   };
 
   # avoid retaining reference to CF during stdenv bootstrap
diff --git a/nixpkgs/pkgs/tools/archivers/innoextract/default.nix b/nixpkgs/pkgs/tools/archivers/innoextract/default.nix
index 701c7429d636..4822ea82d1e6 100644
--- a/nixpkgs/pkgs/tools/archivers/innoextract/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/innoextract/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, cmake, makeWrapper, python
-, boost, lzma
+{ lib, stdenv, fetchurl, cmake, makeWrapper
+, boost, xz
 , withGog ? false, unar ? null }:
 
 stdenv.mkDerivation rec {
@@ -10,10 +10,15 @@ stdenv.mkDerivation rec {
     sha256 = "09l1z1nbl6ijqqwszdwch9mqr54qb7df0wp2sd77v17dq6gsci33";
   };
 
-  buildInputs = [ python lzma boost ];
+  buildInputs = [ xz boost ];
+
+  # Python is reported as missing during the build, however
+  # including Python does not change the output.
 
   nativeBuildInputs = [ cmake makeWrapper ];
 
+  strictDeps = true;
+
   # we need unar to for multi-archive extraction
   postFixup = lib.optionalString withGog ''
     wrapProgram $out/bin/innoextract \
diff --git a/nixpkgs/pkgs/tools/archivers/p7zip/default.nix b/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
index ed2340ca628d..8a01353b01b9 100644
--- a/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "p7zip";
-  version = "17.03";
+  version = "17.04";
 
   src = fetchFromGitHub {
     owner  = "szcnick";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0zgpa90z5p30jbpqydiig1h8hn41c76n2x26rh8cc92xw72ni33d";
+    sha256 = "sha256-19F4hPV0nKVuFZNbOcXrcA1uW6Y3HQolaHVIYXGmh18=";
   };
 
   # Default makefile is full of impurities on Darwin. The patch doesn't hurt Linux so I'm leaving it unconditional
diff --git a/nixpkgs/pkgs/tools/archivers/rpm2targz/default.nix b/nixpkgs/pkgs/tools/archivers/rpm2targz/default.nix
new file mode 100644
index 000000000000..1c4730c8de64
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/rpm2targz/default.nix
@@ -0,0 +1,50 @@
+{ bzip2
+, coreutils
+, cpio
+, fetchurl
+, gnutar
+, gzip
+, lib
+, stdenv
+, xz
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rpm2targz";
+  version = "2021.03.16";
+
+  # git repo: https://gitweb.gentoo.org/proj/rpm2targz.git/
+  src = fetchurl {
+    url = "https://dev.gentoo.org/~vapier/dist/${pname}-${version}.tar.xz";
+    hash = "sha256-rcV+o9V2wWKznqSW2rA8xgnpQ02kpK4te6mYvLRC5vQ=";
+  };
+
+  postPatch = let
+    shdeps = [
+      bzip2
+      coreutils
+      cpio
+      gnutar
+      gzip
+      xz
+      zstd
+    ];
+  in ''
+    substituteInPlace rpm2targz --replace "=\"rpmoffset\"" "=\"$out/bin/rpmoffset\""
+    # rpm2targz relies on the executable name
+    # to guess what compressor it should use
+    # this is more reliable than wrapProgram
+    sed -i -e '2iexport PATH="${lib.makeBinPath shdeps}"' rpm2targz
+  '';
+
+  installFlags = [ "prefix=$(out)" ];
+
+  meta = with lib; {
+    description = "Convert a .rpm file to a .tar.gz archive";
+    homepage = "http://slackware.com/config/packages.php";
+    license = licenses.bsd1;
+    maintainers = with maintainers; [ zseri ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/unar/default.nix b/nixpkgs/pkgs/tools/archivers/unar/default.nix
index d0d0ef90e68d..4021bc92e062 100644
--- a/nixpkgs/pkgs/tools/archivers/unar/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/unar/default.nix
@@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
   postPatch = ''
     for f in Makefile.linux ../UniversalDetector/Makefile.linux ; do
       substituteInPlace $f \
-        --replace "= gcc" "=cc" \
-        --replace "= g++" "=c++" \
+        --replace "= gcc" "=${stdenv.cc.targetPrefix}cc" \
+        --replace "= g++" "=${stdenv.cc.targetPrefix}c++" \
         --replace "-DGNU_RUNTIME=1" "" \
         --replace "-fgnu-runtime" "-fobjc-nonfragile-abi"
     done
diff --git a/nixpkgs/pkgs/tools/archivers/unp/default.nix b/nixpkgs/pkgs/tools/archivers/unp/default.nix
index 34f8cb1c40e6..c63ec008d678 100644
--- a/nixpkgs/pkgs/tools/archivers/unp/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/unp/default.nix
@@ -10,7 +10,8 @@ let
 in stdenv.mkDerivation {
   pname = "unp";
   version = "2.0-pre7";
-  buildInputs = [ perl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ];
 
   src = fetchurl {
     # url = "http://http.debian.net/debian/pool/main/u/unp/unp_2.0~pre7+nmu1.tar.bz2";
diff --git a/nixpkgs/pkgs/tools/archivers/xtrt/default.nix b/nixpkgs/pkgs/tools/archivers/xtrt/default.nix
new file mode 100644
index 000000000000..175494057e0a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/xtrt/default.nix
@@ -0,0 +1,36 @@
+{ bzip2, fetchFromGitHub, gzip, gnutar, lib, stdenv, unzip, xz }:
+
+stdenv.mkDerivation rec {
+  pname = "xtrt";
+  version = "unstable-2021-02-17";
+
+  src = fetchFromGitHub {
+    owner = "figsoda";
+    repo = pname;
+    rev = "61884fb7c48c7e1e2194afd82b85f415a6dc7c20";
+    sha256 = "073l4q6mx5if791p5a6w8m8bz2aypmjmycaijq4spql8bh6h12vf";
+  };
+
+  postPatch = ''
+    substituteInPlace xtrt \
+      --replace "bzip2 " "${bzip2}/bin/bzip2 " \
+      --replace "gzip " "${gzip}/bin/gzip " \
+      --replace "tar " "${gnutar}/bin/tar " \
+      --replace "unzip " "${unzip}/bin/unzip " \
+      --replace "xz " "${xz}/bin/xz "
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp xtrt $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tiny script to extract archives by their extensions";
+    homepage = "https://github.com/figsoda/xtrt";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/zpaq/default.nix b/nixpkgs/pkgs/tools/archivers/zpaq/default.nix
index 7c9f9ac7d632..a7663bbd2315 100644
--- a/nixpkgs/pkgs/tools/archivers/zpaq/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/zpaq/default.nix
@@ -11,8 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0v44rlg9gvwc4ggr2lhcqll8ppal3dk7zsg5bqwcc5lg3ynk2pz4";
   };
 
-  nativeBuildInputs = [ perl /* for pod2man */ ];
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ perl /* for pod2man */ unzip ];
 
   preBuild = let
     CPPFLAGS = with stdenv; ""
diff --git a/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix b/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix
index 1ff204babc12..c2f214ea2a62 100644
--- a/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix
+++ b/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   sourceRoot = ".";
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   buildPhase = ''
     g++ ${compileFlags} -fPIC --shared libzpaq.cpp -o libzpaq.so
diff --git a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
index 1478aa8c1e3a..e1c2844813d4 100644
--- a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
+++ b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
@@ -2,16 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2021.01.25";
+  version = "2021.03.30";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    sha256 = "1c2jx03ssm9yyv6rgr5wfv88ivfgdgq3889yaghjyvllm3nv9380";
+    sha256 = "sha256-eOQbvs/mtFn7AmvSezO/jRm8+cO5tF7ggcF9DwwfqVc=";
   };
 
-  # There is also a file called "makefile" which seems to be preferred by the standard build phase
-  makefile = "Makefile";
-
   meta = with lib; {
     homepage = "http://abc.sourceforge.net/abcMIDI/";
     downloadPage = "https://ifdo.ca/~seymour/runabc/top.html";
diff --git a/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix b/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix
new file mode 100644
index 000000000000..a08710fe1219
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix
@@ -0,0 +1,41 @@
+{ lib, fetchFromGitHub, python3Packages, essentia-extractor }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "acousticbrainz-client";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "MTG";
+    repo = "acousticbrainz-client";
+    rev = version;
+    sha256 = "1g1nxh58939vysfxplrgdz366dlqnic05pkzbqh75m79brg4yrv1";
+  };
+
+  propagatedBuildInputs = [ essentia-extractor python3Packages.requests ];
+
+  postPatch = ''
+    # The installer needs the streaming_extractor_music binary in the source directoy,
+    # so we provide a symlink to it.
+    ln -s ${essentia-extractor}/bin/streaming_extractor_music streaming_extractor_music
+  '';
+
+  postInstall = ''
+    # The installer includes a copy of the streaming_extractor_music binary (not a symlink),
+    # which we don't need, because the wrapper adds essentia-extractor/binary to PATH.
+    rm $out/bin/streaming_extractor_music
+  '';
+
+  # Tests seem to be broken, but the tool works
+  doCheck = false;
+
+  pythonImportsCheck = [ "abz" ];
+
+  meta = with lib; {
+    description = "A client to upload data to an AcousticBrainz server";
+    license = licenses.gpl3Plus;
+    homepage = "https://github.com/MTG/acousticbrainz-client";
+    # essentia-extractor is only available for those platforms
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ eduardosm ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/audio/beets/default.nix b/nixpkgs/pkgs/tools/audio/beets/default.nix
index d531b22738ba..ef47578ac578 100644
--- a/nixpkgs/pkgs/tools/audio/beets/default.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/default.nix
@@ -1,28 +1,27 @@
 { stdenv, lib, fetchFromGitHub, writeScript, glibcLocales, diffPlugins, substituteAll
 , pythonPackages, imagemagick, gobject-introspection, gst_all_1
-, runtimeShell
-, fetchpatch
-, unstableGitUpdater
+, runtimeShell, unstableGitUpdater
 
-# Attributes needed for tests of the external plugins
-, callPackage, beets
+# external plugins package set
+, beetsExternalPlugins
 
-, enableAbsubmit         ? lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms, essentia-extractor ? null
+, enableAbsubmit         ? lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms, essentia-extractor
 , enableAcousticbrainz   ? true
 , enableAcoustid         ? true
-, enableBadfiles         ? true, flac ? null, mp3val ? null
+, enableAura             ? true
+, enableBadfiles         ? true, flac, mp3val
 , enableBeatport         ? true
 , enableBpsync           ? true
-, enableConvert          ? true, ffmpeg ? null
+, enableConvert          ? true, ffmpeg
 , enableDeezer           ? true
 , enableDiscogs          ? true
 , enableEmbyupdate       ? true
 , enableFetchart         ? true
-, enableGmusic           ? true
-, enableKeyfinder        ? true, keyfinder-cli ? null
+, enableKeyfinder        ? true, keyfinder-cli
 , enableKodiupdate       ? true
 , enableLastfm           ? true
 , enableLoadext          ? true
+, enableLyrics           ? true
 , enableMpd              ? true
 , enablePlaylist         ? true
 , enableReplaygain       ? true
@@ -34,37 +33,19 @@
 
 # External plugins
 , enableAlternatives     ? false
-, enableCheck            ? false, liboggz ? null
 , enableCopyArtifacts    ? false
 , enableExtraFiles       ? false
 
 , bashInteractive, bash-completion
 }:
 
-assert enableAbsubmit    -> essentia-extractor               != null;
-assert enableAcoustid    -> pythonPackages.pyacoustid        != null;
-assert enableBadfiles    -> flac != null && mp3val != null;
-assert enableBeatport    -> pythonPackages.requests_oauthlib != null;
 assert enableBpsync      -> enableBeatport;
-assert enableCheck       -> flac != null && mp3val != null && liboggz != null;
-assert enableConvert     -> ffmpeg                         != null;
-assert enableDiscogs     -> pythonPackages.discogs_client    != null;
-assert enableFetchart    -> pythonPackages.responses         != null;
-assert enableGmusic      -> pythonPackages.gmusicapi         != null;
-assert enableKeyfinder   -> keyfinder-cli                    != null;
-assert enableLastfm      -> pythonPackages.pylast            != null;
-assert enableMpd         -> pythonPackages.mpd2              != null;
-assert enableReplaygain  -> ffmpeg                         != null;
-assert enableSonosUpdate -> pythonPackages.soco              != null;
-assert enableThumbnails  -> pythonPackages.pyxdg             != null;
-assert enableWeb         -> pythonPackages.flask             != null;
-
-with lib;
 
 let
   optionalPlugins = {
     absubmit = enableAbsubmit;
     acousticbrainz = enableAcousticbrainz;
+    aura = enableAura;
     badfiles = enableBadfiles;
     beatport = enableBeatport;
     bpsync = enableBpsync;
@@ -74,12 +55,12 @@ let
     discogs = enableDiscogs;
     embyupdate = enableEmbyupdate;
     fetchart = enableFetchart;
-    gmusic = enableGmusic;
     keyfinder = enableKeyfinder;
     kodiupdate = enableKodiupdate;
     lastgenre = enableLastfm;
     lastimport = enableLastfm;
     loadext = enableLoadext;
+    lyrics = enableLyrics;
     mpdstats = enableMpd;
     mpdupdate = enableMpd;
     playlist = enablePlaylist;
@@ -92,40 +73,31 @@ let
   };
 
   pluginsWithoutDeps = [
-    "bench" "bpd" "bpm" "bucket" "cue" "duplicates" "edit" "embedart"
+    "bareasc" "bench" "bpd" "bpm" "bucket" "duplicates" "edit" "embedart"
     "export" "filefilter" "fish" "freedesktop" "fromfilename" "ftintitle" "fuzzy"
-    "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs" "lyrics"
+    "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs"
     "mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "parentwork" "permissions" "play"
     "plexupdate" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the"
     "types" "unimported" "zero"
   ];
 
-  enabledOptionalPlugins = attrNames (filterAttrs (_: id) optionalPlugins);
+  enabledOptionalPlugins = lib.attrNames (lib.filterAttrs (_: lib.id) optionalPlugins);
 
-  allPlugins = pluginsWithoutDeps ++ attrNames optionalPlugins;
+  allPlugins = pluginsWithoutDeps ++ lib.attrNames optionalPlugins;
   allEnabledPlugins = pluginsWithoutDeps ++ enabledOptionalPlugins;
 
   testShell = "${bashInteractive}/bin/bash --norc";
   completion = "${bash-completion}/share/bash-completion/bash_completion";
 
   # This is a stripped down beets for testing of the external plugins.
-  externalTestArgs.beets = (beets.override {
+  externalTestArgs.beets = (lib.beets.override {
     enableAlternatives = false;
     enableCopyArtifacts = false;
     enableExtraFiles = false;
-  }).overrideAttrs (const {
+  }).overrideAttrs (lib.const {
     doInstallCheck = false;
   });
 
-  pluginArgs = externalTestArgs // { inherit pythonPackages; };
-
-  plugins = {
-    alternatives = callPackage ./plugins/alternatives.nix pluginArgs;
-    check = callPackage ./plugins/check.nix pluginArgs;
-    copyartifacts = callPackage ./plugins/copyartifacts.nix pluginArgs;
-    extrafiles = callPackage ./plugins/extrafiles.nix pluginArgs;
-  };
-
 in pythonPackages.buildPythonApplication rec {
   pname = "beets";
   # While there is a stable version, 1.4.9, it is more than 1000 commits behind
@@ -133,13 +105,13 @@ in pythonPackages.buildPythonApplication rec {
   # unstable does not require bs1770gain[2].
   # [1]: https://discourse.beets.io/t/forming-a-beets-core-team/639
   # [2]: https://github.com/NixOS/nixpkgs/pull/90504
-  version = "unstable-2021-01-29";
+  version = "unstable-2021-03-24";
 
   src = fetchFromGitHub {
     owner = "beetbox";
     repo = "beets";
-    rev = "04ea754d00e2873ae9aa2d9e07c5cefd790eaee2";
-    sha256 = "sha256-BIa3hnOsBxThbA2WCE4q9eaFNtObr3erZBBqobVOSiQ=";
+    rev = "854b4ab48324afe8884fcd11fa47bd6258d2f4f7";
+    sha256 = "sha256-y5EWVNF4bd9fNvU6VkucMpenyFZuqdPkrqQDgG9ZPJY=";
   };
 
   propagatedBuildInputs = [
@@ -157,32 +129,31 @@ in pythonPackages.buildPythonApplication rec {
     pythonPackages.confuse
     pythonPackages.mediafile
     gobject-introspection
-  ] ++ optional enableAbsubmit      essentia-extractor
-    ++ optional enableAcoustid      pythonPackages.pyacoustid
-    ++ optional enableBeatport      pythonPackages.requests_oauthlib
-    ++ optional (enableFetchart
-              || enableDeezer
-              || enableEmbyupdate
-              || enableKodiupdate
-              || enableLoadext
-              || enablePlaylist
-              || enableSubsonicplaylist
-              || enableSubsonicupdate
-              || enableAcousticbrainz)
-                                    pythonPackages.requests
-    ++ optional enableCheck         plugins.check
-    ++ optional enableConvert       ffmpeg
-    ++ optional enableDiscogs       pythonPackages.discogs_client
-    ++ optional enableGmusic        pythonPackages.gmusicapi
-    ++ optional enableKeyfinder     keyfinder-cli
-    ++ optional enableLastfm        pythonPackages.pylast
-    ++ optional enableMpd           pythonPackages.mpd2
-    ++ optional enableSonosUpdate   pythonPackages.soco
-    ++ optional enableThumbnails    pythonPackages.pyxdg
-    ++ optional enableWeb           pythonPackages.flask
-    ++ optional enableAlternatives  plugins.alternatives
-    ++ optional enableCopyArtifacts plugins.copyartifacts
-    ++ optional enableExtraFiles    plugins.extrafiles
+  ] ++ lib.optional enableAbsubmit         essentia-extractor
+    ++ lib.optional enableAcoustid         pythonPackages.pyacoustid
+    ++ lib.optional enableBeatport         pythonPackages.requests_oauthlib
+    ++ lib.optional enableConvert          ffmpeg
+    ++ lib.optional enableDiscogs          pythonPackages.discogs_client
+    ++ lib.optional (enableFetchart
+                  || enableDeezer
+                  || enableEmbyupdate
+                  || enableKodiupdate
+                  || enableLoadext
+                  || enablePlaylist
+                  || enableSubsonicplaylist
+                  || enableSubsonicupdate
+                  || enableAcousticbrainz) pythonPackages.requests
+    ++ lib.optional enableKeyfinder        keyfinder-cli
+    ++ lib.optional enableLastfm           pythonPackages.pylast
+    ++ lib.optional enableLyrics           pythonPackages.beautifulsoup4
+    ++ lib.optional enableMpd              pythonPackages.mpd2
+    ++ lib.optional enableSonosUpdate      pythonPackages.soco
+    ++ lib.optional enableThumbnails       pythonPackages.pyxdg
+    ++ lib.optional (enableAura
+                  || enableWeb)            pythonPackages.flask
+    ++ lib.optional enableAlternatives     beetsExternalPlugins.alternatives
+    ++ lib.optional enableCopyArtifacts    beetsExternalPlugins.copyartifacts
+    ++ lib.optional enableExtraFiles       beetsExternalPlugins.extrafiles
   ;
 
   buildInputs = [
@@ -219,12 +190,12 @@ in pythonPackages.buildPythonApplication rec {
     # bs1770gain, and set the absolute path there, to avoid impurities.
     ++ lib.optional enableReplaygain (substituteAll {
       src = ./replaygain-default-ffmpeg.patch;
-      ffmpeg = getBin ffmpeg;
+      ffmpeg = lib.getBin ffmpeg;
     })
     # Put absolute Nix paths in place
     ++ lib.optional enableConvert (substituteAll {
       src = ./convert-plugin-ffmpeg-path.patch;
-      ffmpeg = getBin ffmpeg;
+      ffmpeg = lib.getBin ffmpeg;
     })
     ++ lib.optional enableBadfiles (substituteAll {
       src = ./badfiles-plugin-nix-paths.patch;
@@ -238,6 +209,9 @@ in pythonPackages.buildPythonApplication rec {
     echo echo completion tests passed > test/rsrc/test_completion.sh
 
     sed -i -e 's/len(mf.images)/0/' test/test_zero.py
+
+    # Google Play Music was discontinued
+    rm -r beetsplug/gmusic.py
   '';
 
   postInstall = ''
@@ -279,7 +253,7 @@ in pythonPackages.buildPythonApplication rec {
     EDITOR="${writeScript "beetconfig.sh" ''
       #!${runtimeShell}
       cat > "$1" <<CFG
-      plugins: ${concatStringsSep " " allEnabledPlugins}
+      plugins: ${lib.concatStringsSep " " allEnabledPlugins}
       CFG
     ''}" HOME="$tmphome" "$out/bin/beet" config -e
     EDITOR=true HOME="$tmphome" "$out/bin/beet" config -e
@@ -290,15 +264,16 @@ in pythonPackages.buildPythonApplication rec {
   makeWrapperArgs = [ "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\"" "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\"" ];
 
   passthru = {
-    externalPlugins = plugins;
+    # FIXME: remove in favor of pkgs.beetsExternalPlugins
+    externalPlugins = beetsExternalPlugins;
     updateScript = unstableGitUpdater { url = "https://github.com/beetbox/beets"; };
   };
 
-  meta = {
+  meta = with lib; {
     description = "Music tagger and library organizer";
     homepage = "http://beets.io";
     license = licenses.mit;
-    maintainers = with maintainers; [ aszlig domenkozar doronbehar lovesegfault pjones ];
+    maintainers = with maintainers; [ aszlig doronbehar lovesegfault pjones ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/beets/plugins/alternatives.nix b/nixpkgs/pkgs/tools/audio/beets/plugins/alternatives.nix
index 793611699ec8..c0b9123d96a5 100644
--- a/nixpkgs/pkgs/tools/audio/beets/plugins/alternatives.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/plugins/alternatives.nix
@@ -1,20 +1,27 @@
-{ fetchFromGitHub, beets, pythonPackages }:
+{ lib, fetchFromGitHub, beets, pythonPackages }:
 
 pythonPackages.buildPythonApplication rec {
   pname = "beets-alternatives";
-  version = "0.9.0";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     repo = "beets-alternatives";
     owner = "geigerzaehler";
-    # This is 0.8.2 with fixes against Beets 1.4.6 and Python 3 compatibility.
     rev = "v${version}";
-    sha256 = "19160gwg5j6asy8mc21g2kf87mx4zs9x2gbk8q4r6330z4kpl5pm";
+    sha256 = "1dsz94fb29wra1f9580w20bz2f1bgkj4xnsjgwgbv14flbfw4bp0";
   };
 
-  nativeBuildInputs = [ beets pythonPackages.nose ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "addopts = --cov --cov-report=term --cov-report=html" ""
+  '';
 
-  checkPhase = "nosetests";
+  nativeBuildInputs = [ beets ];
+
+  checkInputs = with pythonPackages; [
+    pytestCheckHook
+    mock
+  ];
 
   meta = {
     description = "Beets plugin to manage external files";
diff --git a/nixpkgs/pkgs/tools/audio/beets/plugins/check-tests.patch b/nixpkgs/pkgs/tools/audio/beets/plugins/check-tests.patch
deleted file mode 100644
index 2de97b86c8b4..000000000000
--- a/nixpkgs/pkgs/tools/audio/beets/plugins/check-tests.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/test/cli_test.py b/test/cli_test.py
-index 26df140..2eb913c 100644
---- a/test/cli_test.py
-+++ b/test/cli_test.py
-@@ -372,12 +372,6 @@ class ToolListTest(TestHelper, TestCase):
-         self.assertIn('flac', stdout.getvalue())
-         self.assertIn('oggz-validate', stdout.getvalue())
- 
--    def test_found_mp3val(self):
--        shutil.copy('/bin/echo', os.path.join(self.temp_dir, 'mp3val'))
--        with captureStdout() as stdout:
--            beets.ui._raw_main(['check', '--list-tools'])
--        self.assertRegexpMatches(stdout.getvalue(), r'mp3val *found')
--
-     def test_oggz_validate_not_found(self):
-         with captureStdout() as stdout:
-             beets.ui._raw_main(['check', '--list-tools'])
diff --git a/nixpkgs/pkgs/tools/audio/beets/plugins/check.nix b/nixpkgs/pkgs/tools/audio/beets/plugins/check.nix
deleted file mode 100644
index 441dcfe579f4..000000000000
--- a/nixpkgs/pkgs/tools/audio/beets/plugins/check.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, fetchFromGitHub, beets, pythonPackages, flac, liboggz, mp3val }:
-
-pythonPackages.buildPythonApplication rec {
-  name = "beets-check";
-  version = "0.12.0";
-
-  src = fetchFromGitHub {
-    repo = "beets-check";
-    owner = "geigerzaehler";
-    rev = "v${version}";
-    sha256 = "0b2ijjf0gycs6b40sm33ida3sjygjiv4spb5mba52vysc7iwmnjn";
-  };
-
-  nativeBuildInputs = [ beets ];
-  checkInputs = [ pythonPackages.nose flac liboggz mp3val ];
-  propagatedBuildInputs = [ flac liboggz mp3val ];
-
-  # patch out broken tests
-  patches = [ ./beet-check-tests.patch ];
-
-  # patch out futures dependency, it is only needed for Python2 which we don't
-  # support.
-  prePatch = ''
-    sed -i "/futures/d" setup.py
-  '';
-
-  checkPhase = "nosetests";
-
-  meta = with lib; {
-    description = "Beets plugin to Verify and store checksums in your library";
-    homepage = "https://github.com/geigerzaehler/beets-check";
-    license = licenses.mit;
-    maintainers = with maintainers; [ lovesegfault ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/audio/beets/plugins/copyartifacts.nix b/nixpkgs/pkgs/tools/audio/beets/plugins/copyartifacts.nix
index 5af52066caa7..b8a17a7d13e1 100644
--- a/nixpkgs/pkgs/tools/audio/beets/plugins/copyartifacts.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/plugins/copyartifacts.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, beets, pythonPackages, glibcLocales }:
+{ lib, fetchFromGitHub, beets, pythonPackages, glibcLocales }:
 
 pythonPackages.buildPythonApplication {
   name = "beets-copyartifacts";
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/default.nix b/nixpkgs/pkgs/tools/audio/botamusique/default.nix
new file mode 100644
index 000000000000..11f228ea6919
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/botamusique/default.nix
@@ -0,0 +1,150 @@
+{ pkgs
+, lib
+, stdenv
+, fetchFromGitHub
+, python3Packages
+, ffmpeg
+, makeWrapper
+
+# For the update script
+, coreutils
+, nix-prefetch-git
+, jq
+, nodePackages
+}:
+let
+  nodejs = pkgs.nodejs-12_x;
+  nodeEnv = import ../../../development/node-packages/node-env.nix {
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+    inherit pkgs nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+  botamusiqueNodePackages = import ./node-packages.nix {
+    inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
+    inherit nodeEnv;
+  };
+
+  srcJson = lib.importJSON ./src.json;
+  src = fetchFromGitHub {
+    owner = "azlux";
+    repo = "botamusique";
+    inherit (srcJson) rev sha256;
+  };
+
+  nodeDependencies = (botamusiqueNodePackages.shell.override (old: {
+    src = src + "/web";
+  })).nodeDependencies;
+
+  # Python needed to instantiate the html templates
+  buildPython = python3Packages.python.withPackages (ps: [ ps.jinja2 ]);
+in
+stdenv.mkDerivation rec {
+  pname = "botamusique";
+  version = "unstable-${lib.substring 0 10 srcJson.date}";
+
+  inherit src;
+
+  patches = [
+    # botamusique by default resolves relative state paths by first checking
+    # whether it exists in the working directory, then falls back to using the
+    # installation directory. With Nix however, the installation directory is
+    # not writable, so that won't work. So we change this so that it uses
+    # relative paths unconditionally, whether they exist or not.
+    ./unconditional-relative-state-paths.patch
+
+    # We can't update the package at runtime with NixOS, so this patch makes
+    # the !update command mention that
+    ./no-runtime-update.patch
+  ];
+
+  postPatch = ''
+    # However, the function that's patched above is also used for
+    # configuration.default.ini, which is in the installation directory
+    # after all. So we need to counter-patch it here so it can find it absolutely
+    substituteInPlace mumbleBot.py \
+      --replace "configuration.default.ini" "$out/share/botamusique/configuration.default.ini"
+  '';
+
+  nativeBuildInputs = [
+    python3Packages.wrapPython
+    nodejs
+    makeWrapper
+  ];
+
+  pythonPath = with python3Packages; [
+    pymumble
+    packaging
+    magic
+    requests
+    youtube-dl
+    flask
+    mutagen
+    pillow
+    pyradios
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    # Generates artifacts in ./static
+    (
+      cd web
+      ln -s ${nodeDependencies}/lib/node_modules ./node_modules
+      export PATH="${nodeDependencies}/bin:$PATH"
+
+      npm run build
+    )
+
+    # Fills out http templates
+    ${buildPython}/bin/python scripts/translate_templates.py --lang-dir lang/ --template-dir templates/
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share $out/bin
+    cp -r . $out/share/botamusique
+    chmod +x $out/share/botamusique/mumbleBot.py
+    wrapPythonProgramsIn $out/share/botamusique "$out $pythonPath"
+
+    # Convenience binary and wrap with ffmpeg dependency
+    makeWrapper $out/share/botamusique/mumbleBot.py $out/bin/botamusique \
+      --prefix PATH : ${lib.makeBinPath [ ffmpeg ]}
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = pkgs.writeShellScript "botamusique-updater" ''
+    export PATH=${lib.makeBinPath [ coreutils nix-prefetch-git jq nodePackages.node2nix ]}
+
+    nix-prefetch-git https://github.com/azlux/botamusique > ${toString ./src.json}
+    path=$(jq '.path' -r < ${toString ./src.json})
+
+    tmp=$(mktemp -d)
+    trap 'rm -rf "$tmp"' exit
+
+    # botamusique doesn't have a version in its package.json
+    # But that's needed for node2nix
+    jq < "$path"/web/package.json > "$tmp/package.json" \
+      --arg version "0.0.0" \
+      '.version |= $version'
+
+    node2nix \
+      --input "$tmp"/package.json \
+      --lock "$path"/web/package-lock.json \
+      --no-copy-node-env \
+      --development \
+      --composition /dev/null \
+      --output ${toString ./node-packages.nix}
+  '';
+
+  meta = with lib; {
+    description = "Bot to play youtube / soundcloud / radio / local music on Mumble";
+    homepage = "https://github.com/azlux/botamusique";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ infinisil ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/no-runtime-update.patch b/nixpkgs/pkgs/tools/audio/botamusique/no-runtime-update.patch
new file mode 100644
index 000000000000..8fc8580fce83
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/botamusique/no-runtime-update.patch
@@ -0,0 +1,12 @@
+diff --git a/util.py b/util.py
+index bfec1ed..5147757 100644
+--- a/util.py
++++ b/util.py
+@@ -132,6 +132,7 @@ def check_update(current_version):
+ 
+ 
+ def update(current_version):
++    return "Can't update Nix installation at runtime"
+     global log
+ 
+     target = var.config.get('bot', 'target_version')
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix b/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix
new file mode 100644
index 000000000000..3f9e2dcdfd02
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix
@@ -0,0 +1,5247 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/code-frame-7.10.4" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
+      };
+    };
+    "@babel/compat-data-7.12.7" = {
+      name = "_at_babel_slash_compat-data";
+      packageName = "@babel/compat-data";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz";
+        sha512 = "YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==";
+      };
+    };
+    "@babel/core-7.12.9" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.12.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz";
+        sha512 = "gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==";
+      };
+    };
+    "@babel/eslint-parser-7.12.1" = {
+      name = "_at_babel_slash_eslint-parser";
+      packageName = "@babel/eslint-parser";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.12.1.tgz";
+        sha512 = "cc7WQHnHQY3++/bghgbDtPx+5bf6xTsokyGzV6Qzh65NLz/unv+mPQuACkQ9GFhIhcTFv6yqwNaEcfX7EkOEsg==";
+      };
+    };
+    "@babel/eslint-plugin-7.12.1" = {
+      name = "_at_babel_slash_eslint-plugin";
+      packageName = "@babel/eslint-plugin";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.12.1.tgz";
+        sha512 = "rOjrD5yupTYCO4x0kEbQmi/NsaD+VGOD/9Cvso64WMVPY2y6o5Nvw2sqFWdeSEBdR1Dsa07YjplBs067x5YbXg==";
+      };
+    };
+    "@babel/generator-7.12.5" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.12.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz";
+        sha512 = "m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==";
+      };
+    };
+    "@babel/helper-annotate-as-pure-7.10.4" = {
+      name = "_at_babel_slash_helper-annotate-as-pure";
+      packageName = "@babel/helper-annotate-as-pure";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz";
+        sha512 = "XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==";
+      };
+    };
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.10.4" = {
+      name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
+      packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz";
+        sha512 = "L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==";
+      };
+    };
+    "@babel/helper-compilation-targets-7.12.5" = {
+      name = "_at_babel_slash_helper-compilation-targets";
+      packageName = "@babel/helper-compilation-targets";
+      version = "7.12.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz";
+        sha512 = "+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==";
+      };
+    };
+    "@babel/helper-create-class-features-plugin-7.12.1" = {
+      name = "_at_babel_slash_helper-create-class-features-plugin";
+      packageName = "@babel/helper-create-class-features-plugin";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz";
+        sha512 = "hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==";
+      };
+    };
+    "@babel/helper-create-regexp-features-plugin-7.12.7" = {
+      name = "_at_babel_slash_helper-create-regexp-features-plugin";
+      packageName = "@babel/helper-create-regexp-features-plugin";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz";
+        sha512 = "idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==";
+      };
+    };
+    "@babel/helper-define-map-7.10.5" = {
+      name = "_at_babel_slash_helper-define-map";
+      packageName = "@babel/helper-define-map";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz";
+        sha512 = "fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==";
+      };
+    };
+    "@babel/helper-explode-assignable-expression-7.12.1" = {
+      name = "_at_babel_slash_helper-explode-assignable-expression";
+      packageName = "@babel/helper-explode-assignable-expression";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz";
+        sha512 = "dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==";
+      };
+    };
+    "@babel/helper-function-name-7.10.4" = {
+      name = "_at_babel_slash_helper-function-name";
+      packageName = "@babel/helper-function-name";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+        sha512 = "YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==";
+      };
+    };
+    "@babel/helper-get-function-arity-7.10.4" = {
+      name = "_at_babel_slash_helper-get-function-arity";
+      packageName = "@babel/helper-get-function-arity";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+        sha512 = "EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==";
+      };
+    };
+    "@babel/helper-hoist-variables-7.10.4" = {
+      name = "_at_babel_slash_helper-hoist-variables";
+      packageName = "@babel/helper-hoist-variables";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz";
+        sha512 = "wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==";
+      };
+    };
+    "@babel/helper-member-expression-to-functions-7.12.7" = {
+      name = "_at_babel_slash_helper-member-expression-to-functions";
+      packageName = "@babel/helper-member-expression-to-functions";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz";
+        sha512 = "DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==";
+      };
+    };
+    "@babel/helper-module-imports-7.12.5" = {
+      name = "_at_babel_slash_helper-module-imports";
+      packageName = "@babel/helper-module-imports";
+      version = "7.12.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz";
+        sha512 = "SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==";
+      };
+    };
+    "@babel/helper-module-transforms-7.12.1" = {
+      name = "_at_babel_slash_helper-module-transforms";
+      packageName = "@babel/helper-module-transforms";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz";
+        sha512 = "QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==";
+      };
+    };
+    "@babel/helper-optimise-call-expression-7.12.7" = {
+      name = "_at_babel_slash_helper-optimise-call-expression";
+      packageName = "@babel/helper-optimise-call-expression";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz";
+        sha512 = "I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==";
+      };
+    };
+    "@babel/helper-plugin-utils-7.10.4" = {
+      name = "_at_babel_slash_helper-plugin-utils";
+      packageName = "@babel/helper-plugin-utils";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
+      };
+    };
+    "@babel/helper-remap-async-to-generator-7.12.1" = {
+      name = "_at_babel_slash_helper-remap-async-to-generator";
+      packageName = "@babel/helper-remap-async-to-generator";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz";
+        sha512 = "9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==";
+      };
+    };
+    "@babel/helper-replace-supers-7.12.5" = {
+      name = "_at_babel_slash_helper-replace-supers";
+      packageName = "@babel/helper-replace-supers";
+      version = "7.12.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz";
+        sha512 = "5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==";
+      };
+    };
+    "@babel/helper-simple-access-7.12.1" = {
+      name = "_at_babel_slash_helper-simple-access";
+      packageName = "@babel/helper-simple-access";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz";
+        sha512 = "OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==";
+      };
+    };
+    "@babel/helper-skip-transparent-expression-wrappers-7.12.1" = {
+      name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
+      packageName = "@babel/helper-skip-transparent-expression-wrappers";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz";
+        sha512 = "Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.11.0" = {
+      name = "_at_babel_slash_helper-split-export-declaration";
+      packageName = "@babel/helper-split-export-declaration";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
+        sha512 = "74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==";
+      };
+    };
+    "@babel/helper-validator-identifier-7.10.4" = {
+      name = "_at_babel_slash_helper-validator-identifier";
+      packageName = "@babel/helper-validator-identifier";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+        sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==";
+      };
+    };
+    "@babel/helper-validator-option-7.12.1" = {
+      name = "_at_babel_slash_helper-validator-option";
+      packageName = "@babel/helper-validator-option";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz";
+        sha512 = "YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==";
+      };
+    };
+    "@babel/helper-wrap-function-7.12.3" = {
+      name = "_at_babel_slash_helper-wrap-function";
+      packageName = "@babel/helper-wrap-function";
+      version = "7.12.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz";
+        sha512 = "Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==";
+      };
+    };
+    "@babel/helpers-7.12.5" = {
+      name = "_at_babel_slash_helpers";
+      packageName = "@babel/helpers";
+      version = "7.12.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz";
+        sha512 = "lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==";
+      };
+    };
+    "@babel/highlight-7.10.4" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
+      };
+    };
+    "@babel/parser-7.12.7" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz";
+        sha512 = "oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==";
+      };
+    };
+    "@babel/plugin-proposal-async-generator-functions-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-async-generator-functions";
+      packageName = "@babel/plugin-proposal-async-generator-functions";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz";
+        sha512 = "d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==";
+      };
+    };
+    "@babel/plugin-proposal-class-properties-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-class-properties";
+      packageName = "@babel/plugin-proposal-class-properties";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz";
+        sha512 = "cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==";
+      };
+    };
+    "@babel/plugin-proposal-dynamic-import-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-dynamic-import";
+      packageName = "@babel/plugin-proposal-dynamic-import";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz";
+        sha512 = "a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==";
+      };
+    };
+    "@babel/plugin-proposal-export-namespace-from-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-export-namespace-from";
+      packageName = "@babel/plugin-proposal-export-namespace-from";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz";
+        sha512 = "6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==";
+      };
+    };
+    "@babel/plugin-proposal-json-strings-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-json-strings";
+      packageName = "@babel/plugin-proposal-json-strings";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz";
+        sha512 = "GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==";
+      };
+    };
+    "@babel/plugin-proposal-logical-assignment-operators-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
+      packageName = "@babel/plugin-proposal-logical-assignment-operators";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz";
+        sha512 = "k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==";
+      };
+    };
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
+      packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz";
+        sha512 = "nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==";
+      };
+    };
+    "@babel/plugin-proposal-numeric-separator-7.12.7" = {
+      name = "_at_babel_slash_plugin-proposal-numeric-separator";
+      packageName = "@babel/plugin-proposal-numeric-separator";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz";
+        sha512 = "8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==";
+      };
+    };
+    "@babel/plugin-proposal-object-rest-spread-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz";
+        sha512 = "s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==";
+      };
+    };
+    "@babel/plugin-proposal-optional-catch-binding-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
+      packageName = "@babel/plugin-proposal-optional-catch-binding";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz";
+        sha512 = "hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==";
+      };
+    };
+    "@babel/plugin-proposal-optional-chaining-7.12.7" = {
+      name = "_at_babel_slash_plugin-proposal-optional-chaining";
+      packageName = "@babel/plugin-proposal-optional-chaining";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz";
+        sha512 = "4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==";
+      };
+    };
+    "@babel/plugin-proposal-private-methods-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-private-methods";
+      packageName = "@babel/plugin-proposal-private-methods";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz";
+        sha512 = "mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==";
+      };
+    };
+    "@babel/plugin-proposal-unicode-property-regex-7.12.1" = {
+      name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
+      packageName = "@babel/plugin-proposal-unicode-property-regex";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz";
+        sha512 = "MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==";
+      };
+    };
+    "@babel/plugin-syntax-async-generators-7.8.4" = {
+      name = "_at_babel_slash_plugin-syntax-async-generators";
+      packageName = "@babel/plugin-syntax-async-generators";
+      version = "7.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
+        sha512 = "tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==";
+      };
+    };
+    "@babel/plugin-syntax-class-properties-7.12.1" = {
+      name = "_at_babel_slash_plugin-syntax-class-properties";
+      packageName = "@babel/plugin-syntax-class-properties";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz";
+        sha512 = "U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==";
+      };
+    };
+    "@babel/plugin-syntax-dynamic-import-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-dynamic-import";
+      packageName = "@babel/plugin-syntax-dynamic-import";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz";
+        sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
+      };
+    };
+    "@babel/plugin-syntax-export-namespace-from-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-export-namespace-from";
+      packageName = "@babel/plugin-syntax-export-namespace-from";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz";
+        sha512 = "MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==";
+      };
+    };
+    "@babel/plugin-syntax-json-strings-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-json-strings";
+      packageName = "@babel/plugin-syntax-json-strings";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
+        sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
+      };
+    };
+    "@babel/plugin-syntax-logical-assignment-operators-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-logical-assignment-operators";
+      packageName = "@babel/plugin-syntax-logical-assignment-operators";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz";
+        sha512 = "d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==";
+      };
+    };
+    "@babel/plugin-syntax-nullish-coalescing-operator-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-nullish-coalescing-operator";
+      packageName = "@babel/plugin-syntax-nullish-coalescing-operator";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz";
+        sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==";
+      };
+    };
+    "@babel/plugin-syntax-numeric-separator-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-numeric-separator";
+      packageName = "@babel/plugin-syntax-numeric-separator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz";
+        sha512 = "9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==";
+      };
+    };
+    "@babel/plugin-syntax-object-rest-spread-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-object-rest-spread";
+      packageName = "@babel/plugin-syntax-object-rest-spread";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+        sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==";
+      };
+    };
+    "@babel/plugin-syntax-optional-catch-binding-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-optional-catch-binding";
+      packageName = "@babel/plugin-syntax-optional-catch-binding";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
+        sha512 = "6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==";
+      };
+    };
+    "@babel/plugin-syntax-optional-chaining-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-optional-chaining";
+      packageName = "@babel/plugin-syntax-optional-chaining";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz";
+        sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
+      };
+    };
+    "@babel/plugin-syntax-top-level-await-7.12.1" = {
+      name = "_at_babel_slash_plugin-syntax-top-level-await";
+      packageName = "@babel/plugin-syntax-top-level-await";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz";
+        sha512 = "i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==";
+      };
+    };
+    "@babel/plugin-transform-arrow-functions-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-arrow-functions";
+      packageName = "@babel/plugin-transform-arrow-functions";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz";
+        sha512 = "5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==";
+      };
+    };
+    "@babel/plugin-transform-async-to-generator-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-async-to-generator";
+      packageName = "@babel/plugin-transform-async-to-generator";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz";
+        sha512 = "SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==";
+      };
+    };
+    "@babel/plugin-transform-block-scoped-functions-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-block-scoped-functions";
+      packageName = "@babel/plugin-transform-block-scoped-functions";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz";
+        sha512 = "5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==";
+      };
+    };
+    "@babel/plugin-transform-block-scoping-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-block-scoping";
+      packageName = "@babel/plugin-transform-block-scoping";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz";
+        sha512 = "zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==";
+      };
+    };
+    "@babel/plugin-transform-classes-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-classes";
+      packageName = "@babel/plugin-transform-classes";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz";
+        sha512 = "/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==";
+      };
+    };
+    "@babel/plugin-transform-computed-properties-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-computed-properties";
+      packageName = "@babel/plugin-transform-computed-properties";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz";
+        sha512 = "vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==";
+      };
+    };
+    "@babel/plugin-transform-destructuring-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-destructuring";
+      packageName = "@babel/plugin-transform-destructuring";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz";
+        sha512 = "fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==";
+      };
+    };
+    "@babel/plugin-transform-dotall-regex-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-dotall-regex";
+      packageName = "@babel/plugin-transform-dotall-regex";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz";
+        sha512 = "B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==";
+      };
+    };
+    "@babel/plugin-transform-duplicate-keys-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-duplicate-keys";
+      packageName = "@babel/plugin-transform-duplicate-keys";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz";
+        sha512 = "iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==";
+      };
+    };
+    "@babel/plugin-transform-exponentiation-operator-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-exponentiation-operator";
+      packageName = "@babel/plugin-transform-exponentiation-operator";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz";
+        sha512 = "7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==";
+      };
+    };
+    "@babel/plugin-transform-for-of-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-for-of";
+      packageName = "@babel/plugin-transform-for-of";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz";
+        sha512 = "Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==";
+      };
+    };
+    "@babel/plugin-transform-function-name-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-function-name";
+      packageName = "@babel/plugin-transform-function-name";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz";
+        sha512 = "JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==";
+      };
+    };
+    "@babel/plugin-transform-literals-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-literals";
+      packageName = "@babel/plugin-transform-literals";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz";
+        sha512 = "+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==";
+      };
+    };
+    "@babel/plugin-transform-member-expression-literals-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-member-expression-literals";
+      packageName = "@babel/plugin-transform-member-expression-literals";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz";
+        sha512 = "1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==";
+      };
+    };
+    "@babel/plugin-transform-modules-amd-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-modules-amd";
+      packageName = "@babel/plugin-transform-modules-amd";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz";
+        sha512 = "tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==";
+      };
+    };
+    "@babel/plugin-transform-modules-commonjs-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-modules-commonjs";
+      packageName = "@babel/plugin-transform-modules-commonjs";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz";
+        sha512 = "dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==";
+      };
+    };
+    "@babel/plugin-transform-modules-systemjs-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-modules-systemjs";
+      packageName = "@babel/plugin-transform-modules-systemjs";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz";
+        sha512 = "Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==";
+      };
+    };
+    "@babel/plugin-transform-modules-umd-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-modules-umd";
+      packageName = "@babel/plugin-transform-modules-umd";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz";
+        sha512 = "aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==";
+      };
+    };
+    "@babel/plugin-transform-named-capturing-groups-regex-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
+      packageName = "@babel/plugin-transform-named-capturing-groups-regex";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz";
+        sha512 = "tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==";
+      };
+    };
+    "@babel/plugin-transform-new-target-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-new-target";
+      packageName = "@babel/plugin-transform-new-target";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz";
+        sha512 = "+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==";
+      };
+    };
+    "@babel/plugin-transform-object-super-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-object-super";
+      packageName = "@babel/plugin-transform-object-super";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz";
+        sha512 = "AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==";
+      };
+    };
+    "@babel/plugin-transform-parameters-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-parameters";
+      packageName = "@babel/plugin-transform-parameters";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz";
+        sha512 = "xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==";
+      };
+    };
+    "@babel/plugin-transform-property-literals-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-property-literals";
+      packageName = "@babel/plugin-transform-property-literals";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz";
+        sha512 = "6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==";
+      };
+    };
+    "@babel/plugin-transform-regenerator-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-regenerator";
+      packageName = "@babel/plugin-transform-regenerator";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz";
+        sha512 = "gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==";
+      };
+    };
+    "@babel/plugin-transform-reserved-words-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-reserved-words";
+      packageName = "@babel/plugin-transform-reserved-words";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz";
+        sha512 = "pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==";
+      };
+    };
+    "@babel/plugin-transform-shorthand-properties-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-shorthand-properties";
+      packageName = "@babel/plugin-transform-shorthand-properties";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz";
+        sha512 = "GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==";
+      };
+    };
+    "@babel/plugin-transform-spread-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-spread";
+      packageName = "@babel/plugin-transform-spread";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz";
+        sha512 = "vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==";
+      };
+    };
+    "@babel/plugin-transform-sticky-regex-7.12.7" = {
+      name = "_at_babel_slash_plugin-transform-sticky-regex";
+      packageName = "@babel/plugin-transform-sticky-regex";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz";
+        sha512 = "VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==";
+      };
+    };
+    "@babel/plugin-transform-template-literals-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-template-literals";
+      packageName = "@babel/plugin-transform-template-literals";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz";
+        sha512 = "b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==";
+      };
+    };
+    "@babel/plugin-transform-typeof-symbol-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-typeof-symbol";
+      packageName = "@babel/plugin-transform-typeof-symbol";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz";
+        sha512 = "EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==";
+      };
+    };
+    "@babel/plugin-transform-unicode-escapes-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-unicode-escapes";
+      packageName = "@babel/plugin-transform-unicode-escapes";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz";
+        sha512 = "I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==";
+      };
+    };
+    "@babel/plugin-transform-unicode-regex-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-unicode-regex";
+      packageName = "@babel/plugin-transform-unicode-regex";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz";
+        sha512 = "SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==";
+      };
+    };
+    "@babel/preset-env-7.12.7" = {
+      name = "_at_babel_slash_preset-env";
+      packageName = "@babel/preset-env";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.7.tgz";
+        sha512 = "OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew==";
+      };
+    };
+    "@babel/preset-modules-0.1.4" = {
+      name = "_at_babel_slash_preset-modules";
+      packageName = "@babel/preset-modules";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+        sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
+      };
+    };
+    "@babel/runtime-7.12.5" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.12.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz";
+        sha512 = "plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==";
+      };
+    };
+    "@babel/template-7.12.7" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz";
+        sha512 = "GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==";
+      };
+    };
+    "@babel/traverse-7.12.9" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.12.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz";
+        sha512 = "iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==";
+      };
+    };
+    "@babel/types-7.12.7" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz";
+        sha512 = "MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==";
+      };
+    };
+    "@eslint/eslintrc-0.2.1" = {
+      name = "_at_eslint_slash_eslintrc";
+      packageName = "@eslint/eslintrc";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz";
+        sha512 = "XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==";
+      };
+    };
+    "@fortawesome/fontawesome-common-types-0.2.32" = {
+      name = "_at_fortawesome_slash_fontawesome-common-types";
+      packageName = "@fortawesome/fontawesome-common-types";
+      version = "0.2.32";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz";
+        sha512 = "ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w==";
+      };
+    };
+    "@fortawesome/fontawesome-svg-core-1.2.32" = {
+      name = "_at_fortawesome_slash_fontawesome-svg-core";
+      packageName = "@fortawesome/fontawesome-svg-core";
+      version = "1.2.32";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz";
+        sha512 = "XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ==";
+      };
+    };
+    "@fortawesome/free-regular-svg-icons-5.15.1" = {
+      name = "_at_fortawesome_slash_free-regular-svg-icons";
+      packageName = "@fortawesome/free-regular-svg-icons";
+      version = "5.15.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.1.tgz";
+        sha512 = "eD9NWFy89e7SVVtrLedJUxIpCBGhd4x7s7dhesokjyo1Tw62daqN5UcuAGu1NrepLLq1IeAYUVfWwnOjZ/j3HA==";
+      };
+    };
+    "@fortawesome/free-solid-svg-icons-5.15.1" = {
+      name = "_at_fortawesome_slash_free-solid-svg-icons";
+      packageName = "@fortawesome/free-solid-svg-icons";
+      version = "5.15.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz";
+        sha512 = "EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg==";
+      };
+    };
+    "@types/anymatch-1.3.1" = {
+      name = "_at_types_slash_anymatch";
+      packageName = "@types/anymatch";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz";
+        sha512 = "/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==";
+      };
+    };
+    "@types/eslint-7.2.5" = {
+      name = "_at_types_slash_eslint";
+      packageName = "@types/eslint";
+      version = "7.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.5.tgz";
+        sha512 = "Dc6ar9x16BdaR3NSxSF7T4IjL9gxxViJq8RmFd+2UAyA+K6ck2W+gUwfgpG/y9TPyUuBL35109bbULpEynvltA==";
+      };
+    };
+    "@types/eslint-scope-3.7.0" = {
+      name = "_at_types_slash_eslint-scope";
+      packageName = "@types/eslint-scope";
+      version = "3.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz";
+        sha512 = "O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==";
+      };
+    };
+    "@types/estree-0.0.45" = {
+      name = "_at_types_slash_estree";
+      packageName = "@types/estree";
+      version = "0.0.45";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz";
+        sha512 = "jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==";
+      };
+    };
+    "@types/html-minifier-terser-5.1.1" = {
+      name = "_at_types_slash_html-minifier-terser";
+      packageName = "@types/html-minifier-terser";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
+        sha512 = "giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==";
+      };
+    };
+    "@types/json-schema-7.0.6" = {
+      name = "_at_types_slash_json-schema";
+      packageName = "@types/json-schema";
+      version = "7.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz";
+        sha512 = "3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==";
+      };
+    };
+    "@types/json5-0.0.29" = {
+      name = "_at_types_slash_json5";
+      packageName = "@types/json5";
+      version = "0.0.29";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
+      };
+    };
+    "@types/node-14.14.9" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.14.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.9.tgz";
+        sha512 = "JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw==";
+      };
+    };
+    "@types/parse-json-4.0.0" = {
+      name = "_at_types_slash_parse-json";
+      packageName = "@types/parse-json";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz";
+        sha512 = "//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==";
+      };
+    };
+    "@types/source-list-map-0.1.2" = {
+      name = "_at_types_slash_source-list-map";
+      packageName = "@types/source-list-map";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz";
+        sha512 = "K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==";
+      };
+    };
+    "@types/tapable-1.0.6" = {
+      name = "_at_types_slash_tapable";
+      packageName = "@types/tapable";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz";
+        sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
+      };
+    };
+    "@types/uglify-js-3.11.1" = {
+      name = "_at_types_slash_uglify-js";
+      packageName = "@types/uglify-js";
+      version = "3.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz";
+        sha512 = "7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==";
+      };
+    };
+    "@types/webpack-4.41.25" = {
+      name = "_at_types_slash_webpack";
+      packageName = "@types/webpack";
+      version = "4.41.25";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.25.tgz";
+        sha512 = "cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ==";
+      };
+    };
+    "@types/webpack-sources-2.0.0" = {
+      name = "_at_types_slash_webpack-sources";
+      packageName = "@types/webpack-sources";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.0.0.tgz";
+        sha512 = "a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg==";
+      };
+    };
+    "@webassemblyjs/ast-1.9.0" = {
+      name = "_at_webassemblyjs_slash_ast";
+      packageName = "@webassemblyjs/ast";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz";
+        sha512 = "C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==";
+      };
+    };
+    "@webassemblyjs/floating-point-hex-parser-1.9.0" = {
+      name = "_at_webassemblyjs_slash_floating-point-hex-parser";
+      packageName = "@webassemblyjs/floating-point-hex-parser";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz";
+        sha512 = "TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==";
+      };
+    };
+    "@webassemblyjs/helper-api-error-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-api-error";
+      packageName = "@webassemblyjs/helper-api-error";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz";
+        sha512 = "NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==";
+      };
+    };
+    "@webassemblyjs/helper-buffer-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-buffer";
+      packageName = "@webassemblyjs/helper-buffer";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz";
+        sha512 = "qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==";
+      };
+    };
+    "@webassemblyjs/helper-code-frame-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-code-frame";
+      packageName = "@webassemblyjs/helper-code-frame";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz";
+        sha512 = "ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==";
+      };
+    };
+    "@webassemblyjs/helper-fsm-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-fsm";
+      packageName = "@webassemblyjs/helper-fsm";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz";
+        sha512 = "OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==";
+      };
+    };
+    "@webassemblyjs/helper-module-context-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-module-context";
+      packageName = "@webassemblyjs/helper-module-context";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz";
+        sha512 = "MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==";
+      };
+    };
+    "@webassemblyjs/helper-wasm-bytecode-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-wasm-bytecode";
+      packageName = "@webassemblyjs/helper-wasm-bytecode";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz";
+        sha512 = "R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==";
+      };
+    };
+    "@webassemblyjs/helper-wasm-section-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-wasm-section";
+      packageName = "@webassemblyjs/helper-wasm-section";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz";
+        sha512 = "XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==";
+      };
+    };
+    "@webassemblyjs/ieee754-1.9.0" = {
+      name = "_at_webassemblyjs_slash_ieee754";
+      packageName = "@webassemblyjs/ieee754";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz";
+        sha512 = "dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==";
+      };
+    };
+    "@webassemblyjs/leb128-1.9.0" = {
+      name = "_at_webassemblyjs_slash_leb128";
+      packageName = "@webassemblyjs/leb128";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz";
+        sha512 = "ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==";
+      };
+    };
+    "@webassemblyjs/utf8-1.9.0" = {
+      name = "_at_webassemblyjs_slash_utf8";
+      packageName = "@webassemblyjs/utf8";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz";
+        sha512 = "GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==";
+      };
+    };
+    "@webassemblyjs/wasm-edit-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wasm-edit";
+      packageName = "@webassemblyjs/wasm-edit";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz";
+        sha512 = "FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==";
+      };
+    };
+    "@webassemblyjs/wasm-gen-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wasm-gen";
+      packageName = "@webassemblyjs/wasm-gen";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz";
+        sha512 = "cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==";
+      };
+    };
+    "@webassemblyjs/wasm-opt-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wasm-opt";
+      packageName = "@webassemblyjs/wasm-opt";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz";
+        sha512 = "Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==";
+      };
+    };
+    "@webassemblyjs/wasm-parser-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wasm-parser";
+      packageName = "@webassemblyjs/wasm-parser";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz";
+        sha512 = "9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==";
+      };
+    };
+    "@webassemblyjs/wast-parser-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wast-parser";
+      packageName = "@webassemblyjs/wast-parser";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz";
+        sha512 = "qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==";
+      };
+    };
+    "@webassemblyjs/wast-printer-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wast-printer";
+      packageName = "@webassemblyjs/wast-printer";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz";
+        sha512 = "2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==";
+      };
+    };
+    "@webpack-cli/info-1.1.0" = {
+      name = "_at_webpack-cli_slash_info";
+      packageName = "@webpack-cli/info";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.1.0.tgz";
+        sha512 = "uNWSdaYHc+f3LdIZNwhdhkjjLDDl3jP2+XBqAq9H8DjrJUvlOKdP8TNruy1yEaDfgpAIgbSAN7pye4FEHg9tYQ==";
+      };
+    };
+    "@webpack-cli/serve-1.1.0" = {
+      name = "_at_webpack-cli_slash_serve";
+      packageName = "@webpack-cli/serve";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.1.0.tgz";
+        sha512 = "7RfnMXCpJ/NThrhq4gYQYILB18xWyoQcBey81oIyVbmgbc6m5ZHHyFK+DyH7pLHJf0p14MxL4mTsoPAgBSTpIg==";
+      };
+    };
+    "@xtuc/ieee754-1.2.0" = {
+      name = "_at_xtuc_slash_ieee754";
+      packageName = "@xtuc/ieee754";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
+        sha512 = "DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==";
+      };
+    };
+    "@xtuc/long-4.2.2" = {
+      name = "_at_xtuc_slash_long";
+      packageName = "@xtuc/long";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz";
+        sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==";
+      };
+    };
+    "acorn-7.4.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz";
+        sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
+      };
+    };
+    "acorn-8.0.4" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "8.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz";
+        sha512 = "XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==";
+      };
+    };
+    "acorn-jsx-5.3.1" = {
+      name = "acorn-jsx";
+      packageName = "acorn-jsx";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha512 = "K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==";
+      };
+    };
+    "ajv-6.12.6" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz";
+        sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
+      };
+    };
+    "ajv-keywords-3.5.2" = {
+      name = "ajv-keywords";
+      packageName = "ajv-keywords";
+      version = "3.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha512 = "5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==";
+      };
+    };
+    "ansi-colors-4.1.1" = {
+      name = "ansi-colors";
+      packageName = "ansi-colors";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
+      };
+    };
+    "ansi-regex-2.1.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    };
+    "ansi-regex-4.1.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+      };
+    };
+    "ansi-regex-5.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+      };
+    };
+    "ansi-styles-3.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+      };
+    };
+    "ansi-styles-4.3.0" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
+      };
+    };
+    "anymatch-3.1.1" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
+        sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
+      };
+    };
+    "argparse-1.0.10" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+      };
+    };
+    "array-back-4.0.1" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz";
+        sha512 = "Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==";
+      };
+    };
+    "array-includes-3.1.2" = {
+      name = "array-includes";
+      packageName = "array-includes";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz";
+        sha512 = "w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==";
+      };
+    };
+    "array.prototype.flat-1.2.4" = {
+      name = "array.prototype.flat";
+      packageName = "array.prototype.flat";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz";
+        sha512 = "4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==";
+      };
+    };
+    "astral-regex-1.0.0" = {
+      name = "astral-regex";
+      packageName = "astral-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz";
+        sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==";
+      };
+    };
+    "autoprefixer-10.0.2" = {
+      name = "autoprefixer";
+      packageName = "autoprefixer";
+      version = "10.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.0.2.tgz";
+        sha512 = "okBmu9OMdt6DNEcZmnl0IYVv8Xl/xYWRSnc2OJ9UJEOt1u30opG1B8aLsViqKryBaYv1SKB4f85fOGZs5zYxHQ==";
+      };
+    };
+    "babel-loader-8.2.1" = {
+      name = "babel-loader";
+      packageName = "babel-loader";
+      version = "8.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.1.tgz";
+        sha512 = "dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw==";
+      };
+    };
+    "babel-plugin-dynamic-import-node-2.3.3" = {
+      name = "babel-plugin-dynamic-import-node";
+      packageName = "babel-plugin-dynamic-import-node";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
+        sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==";
+      };
+    };
+    "balanced-match-1.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    };
+    "big.js-5.2.2" = {
+      name = "big.js";
+      packageName = "big.js";
+      version = "5.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz";
+        sha512 = "vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==";
+      };
+    };
+    "binary-extensions-2.1.0" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz";
+        sha512 = "1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==";
+      };
+    };
+    "boolbase-1.0.0" = {
+      name = "boolbase";
+      packageName = "boolbase";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz";
+        sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
+      };
+    };
+    "bootstrap-4.5.3" = {
+      name = "bootstrap";
+      packageName = "bootstrap";
+      version = "4.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz";
+        sha512 = "o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==";
+      };
+    };
+    "bootswatch-4.5.3" = {
+      name = "bootswatch";
+      packageName = "bootswatch";
+      version = "4.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bootswatch/-/bootswatch-4.5.3.tgz";
+        sha512 = "gaB3gBSAegmYbk97aVELKcSKVdPjWsSY4yCITkUt/SqbqjtMU/HtIUszb4O9vzdbrfuVXThc/qCXzjoJaAPgiQ==";
+      };
+    };
+    "brace-expansion-1.1.11" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    };
+    "braces-3.0.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+      };
+    };
+    "browserslist-4.14.7" = {
+      name = "browserslist";
+      packageName = "browserslist";
+      version = "4.14.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz";
+        sha512 = "BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==";
+      };
+    };
+    "buffer-from-1.1.1" = {
+      name = "buffer-from";
+      packageName = "buffer-from";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
+        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
+      };
+    };
+    "call-bind-1.0.0" = {
+      name = "call-bind";
+      packageName = "call-bind";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz";
+        sha512 = "AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==";
+      };
+    };
+    "callsites-3.1.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
+        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
+      };
+    };
+    "camel-case-4.1.1" = {
+      name = "camel-case";
+      packageName = "camel-case";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz";
+        sha512 = "7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==";
+      };
+    };
+    "camelcase-6.2.0" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz";
+        sha512 = "c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==";
+      };
+    };
+    "caniuse-lite-1.0.30001161" = {
+      name = "caniuse-lite";
+      packageName = "caniuse-lite";
+      version = "1.0.30001161";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001161.tgz";
+        sha512 = "JharrCDxOqPLBULF9/SPa6yMcBRTjZARJ6sc3cuKrPfyIk64JN6kuMINWqA99Xc8uElMFcROliwtz0n9pYej+g==";
+      };
+    };
+    "chalk-2.4.2" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+      };
+    };
+    "chalk-4.1.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+        sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+      };
+    };
+    "chokidar-3.4.3" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz";
+        sha512 = "DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==";
+      };
+    };
+    "chrome-trace-event-1.0.2" = {
+      name = "chrome-trace-event";
+      packageName = "chrome-trace-event";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
+        sha512 = "9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==";
+      };
+    };
+    "clean-css-4.2.3" = {
+      name = "clean-css";
+      packageName = "clean-css";
+      version = "4.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz";
+        sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==";
+      };
+    };
+    "color-convert-1.9.3" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "1.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+      };
+    };
+    "color-convert-2.0.1" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+      };
+    };
+    "color-name-1.1.3" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    };
+    "color-name-1.1.4" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+      };
+    };
+    "colorette-1.2.1" = {
+      name = "colorette";
+      packageName = "colorette";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz";
+        sha512 = "puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==";
+      };
+    };
+    "command-line-usage-6.1.1" = {
+      name = "command-line-usage";
+      packageName = "command-line-usage";
+      version = "6.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz";
+        sha512 = "F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==";
+      };
+    };
+    "commander-2.20.3" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.20.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
+        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+      };
+    };
+    "commander-4.1.1" = {
+      name = "commander";
+      packageName = "commander";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz";
+        sha512 = "NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==";
+      };
+    };
+    "commander-6.2.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz";
+        sha512 = "zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==";
+      };
+    };
+    "comment-parser-0.7.6" = {
+      name = "comment-parser";
+      packageName = "comment-parser";
+      version = "0.7.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.6.tgz";
+        sha512 = "GKNxVA7/iuTnAqGADlTWX4tkhzxZKXp5fLJqKTlQLHkE65XDUKutZ3BHaJC5IGcper2tT3QRD1xr4o3jNpgXXg==";
+      };
+    };
+    "commondir-1.0.1" = {
+      name = "commondir";
+      packageName = "commondir";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz";
+        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "contains-path-0.1.0" = {
+      name = "contains-path";
+      packageName = "contains-path";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz";
+        sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
+      };
+    };
+    "convert-source-map-1.7.0" = {
+      name = "convert-source-map";
+      packageName = "convert-source-map";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
+        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+      };
+    };
+    "core-js-3.7.0" = {
+      name = "core-js";
+      packageName = "core-js";
+      version = "3.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.7.0.tgz";
+        sha512 = "NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA==";
+      };
+    };
+    "core-js-compat-3.7.0" = {
+      name = "core-js-compat";
+      packageName = "core-js-compat";
+      version = "3.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz";
+        sha512 = "V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==";
+      };
+    };
+    "cosmiconfig-7.0.0" = {
+      name = "cosmiconfig";
+      packageName = "cosmiconfig";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz";
+        sha512 = "pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==";
+      };
+    };
+    "cross-spawn-7.0.3" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
+      };
+    };
+    "css-loader-5.0.1" = {
+      name = "css-loader";
+      packageName = "css-loader";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-loader/-/css-loader-5.0.1.tgz";
+        sha512 = "cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw==";
+      };
+    };
+    "css-select-1.2.0" = {
+      name = "css-select";
+      packageName = "css-select";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz";
+        sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858";
+      };
+    };
+    "css-what-2.1.3" = {
+      name = "css-what";
+      packageName = "css-what";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz";
+        sha512 = "a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==";
+      };
+    };
+    "cssesc-3.0.0" = {
+      name = "cssesc";
+      packageName = "cssesc";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz";
+        sha512 = "/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==";
+      };
+    };
+    "debug-2.6.9" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+      };
+    };
+    "debug-4.3.1" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz";
+        sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==";
+      };
+    };
+    "deep-extend-0.6.0" = {
+      name = "deep-extend";
+      packageName = "deep-extend";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+      };
+    };
+    "deep-is-0.1.3" = {
+      name = "deep-is";
+      packageName = "deep-is";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    };
+    "define-properties-1.1.3" = {
+      name = "define-properties";
+      packageName = "define-properties";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
+        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+      };
+    };
+    "doctrine-1.5.0" = {
+      name = "doctrine";
+      packageName = "doctrine";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz";
+        sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+      };
+    };
+    "doctrine-3.0.0" = {
+      name = "doctrine";
+      packageName = "doctrine";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz";
+        sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==";
+      };
+    };
+    "dom-converter-0.2.0" = {
+      name = "dom-converter";
+      packageName = "dom-converter";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz";
+        sha512 = "gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==";
+      };
+    };
+    "dom-serializer-0.2.2" = {
+      name = "dom-serializer";
+      packageName = "dom-serializer";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz";
+        sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
+      };
+    };
+    "domelementtype-1.3.1" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz";
+        sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
+      };
+    };
+    "domelementtype-2.0.2" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz";
+        sha512 = "wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==";
+      };
+    };
+    "domhandler-2.4.2" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz";
+        sha512 = "JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==";
+      };
+    };
+    "domutils-1.5.1" = {
+      name = "domutils";
+      packageName = "domutils";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz";
+        sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
+      };
+    };
+    "dot-case-3.0.3" = {
+      name = "dot-case";
+      packageName = "dot-case";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz";
+        sha512 = "7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==";
+      };
+    };
+    "electron-to-chromium-1.3.607" = {
+      name = "electron-to-chromium";
+      packageName = "electron-to-chromium";
+      version = "1.3.607";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.607.tgz";
+        sha512 = "h2SYNaBnlplGS0YyXl8oJWokfcNxVjJANQfMCsQefG6OSuAuNIeW+A8yGT/ci+xRoBb3k2zq1FrOvkgoKBol8g==";
+      };
+    };
+    "emoji-regex-7.0.3" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+      };
+    };
+    "emojis-list-3.0.0" = {
+      name = "emojis-list";
+      packageName = "emojis-list";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz";
+        sha512 = "/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==";
+      };
+    };
+    "end-of-stream-1.4.4" = {
+      name = "end-of-stream";
+      packageName = "end-of-stream";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+      };
+    };
+    "enhanced-resolve-5.3.2" = {
+      name = "enhanced-resolve";
+      packageName = "enhanced-resolve";
+      version = "5.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.3.2.tgz";
+        sha512 = "G28GCrglCAH6+EqMN2D+Q2wCUS1O1vVQJBn8ME2I/Api41YBe4vLWWRBOUbwDH7vwzSZdljxwTRVqnf+sm6XqQ==";
+      };
+    };
+    "enquirer-2.3.6" = {
+      name = "enquirer";
+      packageName = "enquirer";
+      version = "2.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz";
+        sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
+      };
+    };
+    "entities-1.1.2" = {
+      name = "entities";
+      packageName = "entities";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz";
+        sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
+      };
+    };
+    "entities-2.1.0" = {
+      name = "entities";
+      packageName = "entities";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz";
+        sha512 = "hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==";
+      };
+    };
+    "envinfo-7.7.3" = {
+      name = "envinfo";
+      packageName = "envinfo";
+      version = "7.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz";
+        sha512 = "46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==";
+      };
+    };
+    "error-ex-1.3.2" = {
+      name = "error-ex";
+      packageName = "error-ex";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
+        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
+      };
+    };
+    "es-abstract-1.17.7" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.17.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz";
+        sha512 = "VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==";
+      };
+    };
+    "es-abstract-1.18.0-next.1" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.18.0-next.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz";
+        sha512 = "I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==";
+      };
+    };
+    "es-to-primitive-1.2.1" = {
+      name = "es-to-primitive";
+      packageName = "es-to-primitive";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
+      };
+    };
+    "escalade-3.1.1" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz";
+        sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==";
+      };
+    };
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "eslint-7.14.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz";
+        sha512 = "5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==";
+      };
+    };
+    "eslint-import-resolver-node-0.3.4" = {
+      name = "eslint-import-resolver-node";
+      packageName = "eslint-import-resolver-node";
+      version = "0.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
+        sha512 = "ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==";
+      };
+    };
+    "eslint-module-utils-2.6.0" = {
+      name = "eslint-module-utils";
+      packageName = "eslint-module-utils";
+      version = "2.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
+        sha512 = "6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==";
+      };
+    };
+    "eslint-plugin-import-2.22.1" = {
+      name = "eslint-plugin-import";
+      packageName = "eslint-plugin-import";
+      version = "2.22.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz";
+        sha512 = "8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==";
+      };
+    };
+    "eslint-plugin-jquery-1.5.1" = {
+      name = "eslint-plugin-jquery";
+      packageName = "eslint-plugin-jquery";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-jquery/-/eslint-plugin-jquery-1.5.1.tgz";
+        sha512 = "L7v1eaK5t80C0lvUXPFP9MKnBOqPSKhCOYyzy4LZ0+iK+TJwN8S9gAkzzP1AOhypRIwA88HF6phQ9C7jnOpW8w==";
+      };
+    };
+    "eslint-plugin-jsdoc-30.7.8" = {
+      name = "eslint-plugin-jsdoc";
+      packageName = "eslint-plugin-jsdoc";
+      version = "30.7.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.7.8.tgz";
+        sha512 = "OWm2AYvXjCl7nRbpcw5xisfSVkpVAyp4lGqL9T+DeK4kaPm6ecnmTc/G5s1PtcRrwbaI8bIWGzwScqv5CdGyxA==";
+      };
+    };
+    "eslint-rule-composer-0.3.0" = {
+      name = "eslint-rule-composer";
+      packageName = "eslint-rule-composer";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz";
+        sha512 = "bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==";
+      };
+    };
+    "eslint-scope-5.1.0" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz";
+        sha512 = "iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==";
+      };
+    };
+    "eslint-scope-5.1.1" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha512 = "2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==";
+      };
+    };
+    "eslint-utils-2.1.0" = {
+      name = "eslint-utils";
+      packageName = "eslint-utils";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
+      };
+    };
+    "eslint-visitor-keys-1.3.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
+      };
+    };
+    "eslint-visitor-keys-2.0.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
+        sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==";
+      };
+    };
+    "espree-7.3.0" = {
+      name = "espree";
+      packageName = "espree";
+      version = "7.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz";
+        sha512 = "dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==";
+      };
+    };
+    "esprima-4.0.1" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+      };
+    };
+    "esquery-1.3.1" = {
+      name = "esquery";
+      packageName = "esquery";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz";
+        sha512 = "olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==";
+      };
+    };
+    "esrecurse-4.3.0" = {
+      name = "esrecurse";
+      packageName = "esrecurse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
+      };
+    };
+    "estraverse-4.3.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+      };
+    };
+    "estraverse-5.2.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
+        sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
+    "events-3.2.0" = {
+      name = "events";
+      packageName = "events";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz";
+        sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==";
+      };
+    };
+    "execa-4.1.0" = {
+      name = "execa";
+      packageName = "execa";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz";
+        sha512 = "j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==";
+      };
+    };
+    "fast-deep-equal-3.1.3" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
+      };
+    };
+    "fast-json-stable-stringify-2.1.0" = {
+      name = "fast-json-stable-stringify";
+      packageName = "fast-json-stable-stringify";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+      };
+    };
+    "fast-levenshtein-2.0.6" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+      };
+    };
+    "file-entry-cache-5.0.1" = {
+      name = "file-entry-cache";
+      packageName = "file-entry-cache";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
+        sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==";
+      };
+    };
+    "fill-range-7.0.1" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+      };
+    };
+    "find-cache-dir-2.1.0" = {
+      name = "find-cache-dir";
+      packageName = "find-cache-dir";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
+        sha512 = "Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==";
+      };
+    };
+    "find-up-2.1.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz";
+        sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+      };
+    };
+    "find-up-3.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
+        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
+      };
+    };
+    "find-up-4.1.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
+        sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
+      };
+    };
+    "flat-cache-2.0.1" = {
+      name = "flat-cache";
+      packageName = "flat-cache";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz";
+        sha512 = "LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==";
+      };
+    };
+    "flatted-2.0.2" = {
+      name = "flatted";
+      packageName = "flatted";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz";
+        sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "fsevents-2.1.3" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
+        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
+      };
+    };
+    "function-bind-1.1.1" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+      };
+    };
+    "functional-red-black-tree-1.0.1" = {
+      name = "functional-red-black-tree";
+      packageName = "functional-red-black-tree";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+      };
+    };
+    "gensync-1.0.0-beta.2" = {
+      name = "gensync";
+      packageName = "gensync";
+      version = "1.0.0-beta.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz";
+        sha512 = "3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==";
+      };
+    };
+    "get-intrinsic-1.0.1" = {
+      name = "get-intrinsic";
+      packageName = "get-intrinsic";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz";
+        sha512 = "ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==";
+      };
+    };
+    "get-stream-5.2.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+        sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
+      };
+    };
+    "glob-7.1.6" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+      };
+    };
+    "glob-parent-5.1.1" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
+        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
+      };
+    };
+    "glob-to-regexp-0.4.1" = {
+      name = "glob-to-regexp";
+      packageName = "glob-to-regexp";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
+        sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==";
+      };
+    };
+    "globals-11.12.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "11.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
+        sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
+      };
+    };
+    "globals-12.4.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "12.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz";
+        sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
+      };
+    };
+    "graceful-fs-4.2.4" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
+      };
+    };
+    "has-1.0.3" = {
+      name = "has";
+      packageName = "has";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+      };
+    };
+    "has-flag-3.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    };
+    "has-flag-4.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+      };
+    };
+    "has-symbols-1.0.1" = {
+      name = "has-symbols";
+      packageName = "has-symbols";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
+        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+      };
+    };
+    "he-1.2.0" = {
+      name = "he";
+      packageName = "he";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+      };
+    };
+    "hosted-git-info-2.8.8" = {
+      name = "hosted-git-info";
+      packageName = "hosted-git-info";
+      version = "2.8.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+        sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
+      };
+    };
+    "html-minifier-terser-5.1.1" = {
+      name = "html-minifier-terser";
+      packageName = "html-minifier-terser";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
+        sha512 = "ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==";
+      };
+    };
+    "html-webpack-plugin-4.5.0" = {
+      name = "html-webpack-plugin";
+      packageName = "html-webpack-plugin";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz";
+        sha512 = "MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==";
+      };
+    };
+    "htmlparser2-3.10.1" = {
+      name = "htmlparser2";
+      packageName = "htmlparser2";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz";
+        sha512 = "IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==";
+      };
+    };
+    "human-signals-1.1.1" = {
+      name = "human-signals";
+      packageName = "human-signals";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz";
+        sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==";
+      };
+    };
+    "icss-utils-5.1.0" = {
+      name = "icss-utils";
+      packageName = "icss-utils";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz";
+        sha512 = "soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==";
+      };
+    };
+    "ignore-4.0.6" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "4.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz";
+        sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==";
+      };
+    };
+    "import-fresh-3.2.2" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz";
+        sha512 = "cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==";
+      };
+    };
+    "import-local-3.0.2" = {
+      name = "import-local";
+      packageName = "import-local";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz";
+        sha512 = "vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==";
+      };
+    };
+    "imurmurhash-0.1.4" = {
+      name = "imurmurhash";
+      packageName = "imurmurhash";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    };
+    "indexes-of-1.0.1" = {
+      name = "indexes-of";
+      packageName = "indexes-of";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz";
+        sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.4" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+      };
+    };
+    "interpret-2.2.0" = {
+      name = "interpret";
+      packageName = "interpret";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz";
+        sha512 = "Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==";
+      };
+    };
+    "is-arrayish-0.2.1" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
+        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+      };
+    };
+    "is-binary-path-2.1.0" = {
+      name = "is-binary-path";
+      packageName = "is-binary-path";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz";
+        sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
+      };
+    };
+    "is-callable-1.2.2" = {
+      name = "is-callable";
+      packageName = "is-callable";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz";
+        sha512 = "dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==";
+      };
+    };
+    "is-core-module-2.1.0" = {
+      name = "is-core-module";
+      packageName = "is-core-module";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz";
+        sha512 = "YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==";
+      };
+    };
+    "is-date-object-1.0.2" = {
+      name = "is-date-object";
+      packageName = "is-date-object";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
+        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
+      };
+    };
+    "is-extglob-2.1.1" = {
+      name = "is-extglob";
+      packageName = "is-extglob";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    };
+    "is-fullwidth-code-point-2.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    };
+    "is-glob-4.0.1" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+      };
+    };
+    "is-negative-zero-2.0.0" = {
+      name = "is-negative-zero";
+      packageName = "is-negative-zero";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz";
+        sha1 = "9553b121b0fac28869da9ed459e20c7543788461";
+      };
+    };
+    "is-number-7.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+      };
+    };
+    "is-regex-1.1.1" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz";
+        sha512 = "1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==";
+      };
+    };
+    "is-stream-2.0.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+      };
+    };
+    "is-string-1.0.5" = {
+      name = "is-string";
+      packageName = "is-string";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz";
+        sha512 = "buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==";
+      };
+    };
+    "is-symbol-1.0.3" = {
+      name = "is-symbol";
+      packageName = "is-symbol";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
+        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "isexe-2.0.0" = {
+      name = "isexe";
+      packageName = "isexe";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    };
+    "jest-worker-26.6.2" = {
+      name = "jest-worker";
+      packageName = "jest-worker";
+      version = "26.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz";
+        sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==";
+      };
+    };
+    "jquery-3.5.1" = {
+      name = "jquery";
+      packageName = "jquery";
+      version = "3.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz";
+        sha512 = "XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==";
+      };
+    };
+    "jquery-migrate-3.3.2" = {
+      name = "jquery-migrate";
+      packageName = "jquery-migrate";
+      version = "3.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jquery-migrate/-/jquery-migrate-3.3.2.tgz";
+        sha512 = "L3gYhr7yEtLUSAeqXSicVa0vRD4aGwjw/bWY8YzrO2o/qDY1BaMyP3oB3bZf5Auy3Hu9ynliio0CTyDWCBPVDw==";
+      };
+    };
+    "js-tokens-4.0.0" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+      };
+    };
+    "js-yaml-3.14.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "3.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
+        sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
+      };
+    };
+    "jsdoctypeparser-9.0.0" = {
+      name = "jsdoctypeparser";
+      packageName = "jsdoctypeparser";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz";
+        sha512 = "jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==";
+      };
+    };
+    "jsesc-0.5.0" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz";
+        sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+      };
+    };
+    "jsesc-2.5.2" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+        sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
+      };
+    };
+    "json-parse-better-errors-1.0.2" = {
+      name = "json-parse-better-errors";
+      packageName = "json-parse-better-errors";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
+      };
+    };
+    "json-parse-even-better-errors-2.3.1" = {
+      name = "json-parse-even-better-errors";
+      packageName = "json-parse-even-better-errors";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
+        sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
+      };
+    };
+    "json-schema-traverse-0.4.1" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
+      };
+    };
+    "json-stable-stringify-without-jsonify-1.0.1" = {
+      name = "json-stable-stringify-without-jsonify";
+      packageName = "json-stable-stringify-without-jsonify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+      };
+    };
+    "json5-1.0.1" = {
+      name = "json5";
+      packageName = "json5";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz";
+        sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==";
+      };
+    };
+    "json5-2.1.3" = {
+      name = "json5";
+      packageName = "json5";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz";
+        sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==";
+      };
+    };
+    "klona-2.0.4" = {
+      name = "klona";
+      packageName = "klona";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz";
+        sha512 = "ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==";
+      };
+    };
+    "leven-3.1.0" = {
+      name = "leven";
+      packageName = "leven";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz";
+        sha512 = "qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==";
+      };
+    };
+    "levn-0.4.1" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz";
+        sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==";
+      };
+    };
+    "lines-and-columns-1.1.6" = {
+      name = "lines-and-columns";
+      packageName = "lines-and-columns";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
+        sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+      };
+    };
+    "load-json-file-2.0.0" = {
+      name = "load-json-file";
+      packageName = "load-json-file";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz";
+        sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
+      };
+    };
+    "loader-runner-4.1.0" = {
+      name = "loader-runner";
+      packageName = "loader-runner";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-runner/-/loader-runner-4.1.0.tgz";
+        sha512 = "oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA==";
+      };
+    };
+    "loader-utils-1.4.0" = {
+      name = "loader-utils";
+      packageName = "loader-utils";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz";
+        sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==";
+      };
+    };
+    "loader-utils-2.0.0" = {
+      name = "loader-utils";
+      packageName = "loader-utils";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz";
+        sha512 = "rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==";
+      };
+    };
+    "locate-path-2.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz";
+        sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+      };
+    };
+    "locate-path-3.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
+        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
+      };
+    };
+    "locate-path-5.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
+        sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
+      };
+    };
+    "lodash-4.17.20" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.20";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+      };
+    };
+    "lower-case-2.0.1" = {
+      name = "lower-case";
+      packageName = "lower-case";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz";
+        sha512 = "LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==";
+      };
+    };
+    "make-dir-2.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz";
+        sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
+      };
+    };
+    "merge-stream-2.0.0" = {
+      name = "merge-stream";
+      packageName = "merge-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz";
+        sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==";
+      };
+    };
+    "mime-db-1.44.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.44.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
+        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
+      };
+    };
+    "mime-types-2.1.27" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.27";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
+      };
+    };
+    "mimic-fn-2.1.0" = {
+      name = "mimic-fn";
+      packageName = "mimic-fn";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
+        sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
+      };
+    };
+    "mini-css-extract-plugin-1.3.1" = {
+      name = "mini-css-extract-plugin";
+      packageName = "mini-css-extract-plugin";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.1.tgz";
+        sha512 = "jIOheqh9EU98rqj6ZaFTYNNDSFqdakNqaUZfkYwaXPjI9batmXVXX+K71NrqRAgtoGefELBMld1EQ7dqSAD5SQ==";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+      };
+    };
+    "minimist-1.2.5" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+      };
+    };
+    "mkdirp-0.5.5" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "ms-2.1.2" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+      };
+    };
+    "nanoid-3.1.18" = {
+      name = "nanoid";
+      packageName = "nanoid";
+      version = "3.1.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.18.tgz";
+        sha512 = "rndlDjbbHbcV3xi+R2fpJ+PbGMdfBxz5v1fATIQFq0DP64FsicQdwnKLy47K4kZHdRpmQXtz24eGsxQqamzYTA==";
+      };
+    };
+    "natural-compare-1.4.0" = {
+      name = "natural-compare";
+      packageName = "natural-compare";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";
+        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+      };
+    };
+    "neo-async-2.6.2" = {
+      name = "neo-async";
+      packageName = "neo-async";
+      version = "2.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz";
+        sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
+      };
+    };
+    "no-case-3.0.3" = {
+      name = "no-case";
+      packageName = "no-case";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz";
+        sha512 = "ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==";
+      };
+    };
+    "node-releases-1.1.67" = {
+      name = "node-releases";
+      packageName = "node-releases";
+      version = "1.1.67";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz";
+        sha512 = "V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==";
+      };
+    };
+    "normalize-package-data-2.5.0" = {
+      name = "normalize-package-data";
+      packageName = "normalize-package-data";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+        sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
+      };
+    };
+    "normalize-path-3.0.0" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "normalize-range-0.1.2" = {
+      name = "normalize-range";
+      packageName = "normalize-range";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz";
+        sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
+      };
+    };
+    "npm-run-path-4.0.1" = {
+      name = "npm-run-path";
+      packageName = "npm-run-path";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz";
+        sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==";
+      };
+    };
+    "nth-check-1.0.2" = {
+      name = "nth-check";
+      packageName = "nth-check";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz";
+        sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==";
+      };
+    };
+    "num2fraction-1.2.2" = {
+      name = "num2fraction";
+      packageName = "num2fraction";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz";
+        sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede";
+      };
+    };
+    "object-inspect-1.8.0" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
+      };
+    };
+    "object-keys-1.1.1" = {
+      name = "object-keys";
+      packageName = "object-keys";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
+        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+      };
+    };
+    "object.assign-4.1.2" = {
+      name = "object.assign";
+      packageName = "object.assign";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz";
+        sha512 = "ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==";
+      };
+    };
+    "object.getownpropertydescriptors-2.1.0" = {
+      name = "object.getownpropertydescriptors";
+      packageName = "object.getownpropertydescriptors";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
+        sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
+      };
+    };
+    "object.values-1.1.1" = {
+      name = "object.values";
+      packageName = "object.values";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz";
+        sha512 = "WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==";
+      };
+    };
+    "once-1.4.0" = {
+      name = "once";
+      packageName = "once";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    };
+    "onetime-5.1.2" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
+        sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
+      };
+    };
+    "optionator-0.9.1" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz";
+        sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==";
+      };
+    };
+    "p-limit-1.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz";
+        sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==";
+      };
+    };
+    "p-limit-2.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+      };
+    };
+    "p-limit-3.0.2" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz";
+        sha512 = "iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==";
+      };
+    };
+    "p-locate-2.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz";
+        sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+      };
+    };
+    "p-locate-3.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
+        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
+      };
+    };
+    "p-locate-4.1.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
+        sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
+      };
+    };
+    "p-try-1.0.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz";
+        sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+      };
+    };
+    "p-try-2.2.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+      };
+    };
+    "param-case-3.0.3" = {
+      name = "param-case";
+      packageName = "param-case";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz";
+        sha512 = "VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==";
+      };
+    };
+    "parent-module-1.0.1" = {
+      name = "parent-module";
+      packageName = "parent-module";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz";
+        sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
+      };
+    };
+    "parse-json-2.2.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz";
+        sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
+      };
+    };
+    "parse-json-5.1.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz";
+        sha512 = "+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==";
+      };
+    };
+    "pascal-case-3.1.1" = {
+      name = "pascal-case";
+      packageName = "pascal-case";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz";
+        sha512 = "XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==";
+      };
+    };
+    "path-exists-3.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
+        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+      };
+    };
+    "path-exists-4.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+        sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "path-key-3.1.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";
+        sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
+      };
+    };
+    "path-parse-1.0.6" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+      };
+    };
+    "path-type-2.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz";
+        sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
+      };
+    };
+    "path-type-4.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
+        sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
+      };
+    };
+    "picomatch-2.2.2" = {
+      name = "picomatch";
+      packageName = "picomatch";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
+        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+      };
+    };
+    "pify-2.3.0" = {
+      name = "pify";
+      packageName = "pify";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz";
+        sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+      };
+    };
+    "pify-4.0.1" = {
+      name = "pify";
+      packageName = "pify";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz";
+        sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==";
+      };
+    };
+    "pkg-dir-2.0.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz";
+        sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+      };
+    };
+    "pkg-dir-3.0.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz";
+        sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==";
+      };
+    };
+    "pkg-dir-4.2.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz";
+        sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==";
+      };
+    };
+    "popper.js-1.16.1" = {
+      name = "popper.js";
+      packageName = "popper.js";
+      version = "1.16.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz";
+        sha512 = "Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==";
+      };
+    };
+    "postcss-8.1.10" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "8.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.1.10.tgz";
+        sha512 = "iBXEV5VTTYaRRdxiFYzTtuv2lGMQBExqkZKSzkJe+Fl6rvQrA/49UVGKqB+LG54hpW/TtDBMGds8j33GFNW7pg==";
+      };
+    };
+    "postcss-loader-4.1.0" = {
+      name = "postcss-loader";
+      packageName = "postcss-loader";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.1.0.tgz";
+        sha512 = "vbCkP70F3Q9PIk6d47aBwjqAMI4LfkXCoyxj+7NPNuVIwfTGdzv2KVQes59/RuxMniIgsYQCFSY42P3+ykJfaw==";
+      };
+    };
+    "postcss-modules-extract-imports-3.0.0" = {
+      name = "postcss-modules-extract-imports";
+      packageName = "postcss-modules-extract-imports";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz";
+        sha512 = "bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==";
+      };
+    };
+    "postcss-modules-local-by-default-4.0.0" = {
+      name = "postcss-modules-local-by-default";
+      packageName = "postcss-modules-local-by-default";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz";
+        sha512 = "sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==";
+      };
+    };
+    "postcss-modules-scope-3.0.0" = {
+      name = "postcss-modules-scope";
+      packageName = "postcss-modules-scope";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz";
+        sha512 = "hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==";
+      };
+    };
+    "postcss-modules-values-4.0.0" = {
+      name = "postcss-modules-values";
+      packageName = "postcss-modules-values";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz";
+        sha512 = "RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==";
+      };
+    };
+    "postcss-selector-parser-6.0.4" = {
+      name = "postcss-selector-parser";
+      packageName = "postcss-selector-parser";
+      version = "6.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz";
+        sha512 = "gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==";
+      };
+    };
+    "postcss-value-parser-4.1.0" = {
+      name = "postcss-value-parser";
+      packageName = "postcss-value-parser";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
+        sha512 = "97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==";
+      };
+    };
+    "prelude-ls-1.2.1" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==";
+      };
+    };
+    "pretty-error-2.1.2" = {
+      name = "pretty-error";
+      packageName = "pretty-error";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz";
+        sha512 = "EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==";
+      };
+    };
+    "progress-2.0.3" = {
+      name = "progress";
+      packageName = "progress";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz";
+        sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==";
+      };
+    };
+    "pump-3.0.0" = {
+      name = "pump";
+      packageName = "pump";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+        sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+      };
+    };
+    "punycode-2.1.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+      };
+    };
+    "randombytes-2.1.0" = {
+      name = "randombytes";
+      packageName = "randombytes";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
+        sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==";
+      };
+    };
+    "read-pkg-2.0.0" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz";
+        sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
+      };
+    };
+    "read-pkg-up-2.0.0" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
+        sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
+      };
+    };
+    "readable-stream-3.6.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+      };
+    };
+    "readdirp-3.5.0" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz";
+        sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==";
+      };
+    };
+    "rechoir-0.7.0" = {
+      name = "rechoir";
+      packageName = "rechoir";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz";
+        sha512 = "ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==";
+      };
+    };
+    "reduce-flatten-2.0.0" = {
+      name = "reduce-flatten";
+      packageName = "reduce-flatten";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz";
+        sha512 = "EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==";
+      };
+    };
+    "regenerate-1.4.2" = {
+      name = "regenerate";
+      packageName = "regenerate";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz";
+        sha512 = "zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==";
+      };
+    };
+    "regenerate-unicode-properties-8.2.0" = {
+      name = "regenerate-unicode-properties";
+      packageName = "regenerate-unicode-properties";
+      version = "8.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
+        sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
+      };
+    };
+    "regenerator-runtime-0.13.7" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.13.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
+      };
+    };
+    "regenerator-transform-0.14.5" = {
+      name = "regenerator-transform";
+      packageName = "regenerator-transform";
+      version = "0.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+        sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
+      };
+    };
+    "regexpp-3.1.0" = {
+      name = "regexpp";
+      packageName = "regexpp";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz";
+        sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
+      };
+    };
+    "regexpu-core-4.7.1" = {
+      name = "regexpu-core";
+      packageName = "regexpu-core";
+      version = "4.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz";
+        sha512 = "ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==";
+      };
+    };
+    "regextras-0.7.1" = {
+      name = "regextras";
+      packageName = "regextras";
+      version = "0.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz";
+        sha512 = "9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==";
+      };
+    };
+    "regjsgen-0.5.2" = {
+      name = "regjsgen";
+      packageName = "regjsgen";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz";
+        sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
+      };
+    };
+    "regjsparser-0.6.4" = {
+      name = "regjsparser";
+      packageName = "regjsparser";
+      version = "0.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz";
+        sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
+      };
+    };
+    "relateurl-0.2.7" = {
+      name = "relateurl";
+      packageName = "relateurl";
+      version = "0.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz";
+        sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9";
+      };
+    };
+    "renderkid-2.0.4" = {
+      name = "renderkid";
+      packageName = "renderkid";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz";
+        sha512 = "K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==";
+      };
+    };
+    "resolve-1.19.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz";
+        sha512 = "rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==";
+      };
+    };
+    "resolve-cwd-3.0.0" = {
+      name = "resolve-cwd";
+      packageName = "resolve-cwd";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz";
+        sha512 = "OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==";
+      };
+    };
+    "resolve-from-4.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
+      };
+    };
+    "resolve-from-5.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz";
+        sha512 = "qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==";
+      };
+    };
+    "rimraf-2.6.3" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "2.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz";
+        sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==";
+      };
+    };
+    "safe-buffer-5.1.2" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    };
+    "safe-buffer-5.2.1" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
+      };
+    };
+    "sass-1.29.0" = {
+      name = "sass";
+      packageName = "sass";
+      version = "1.29.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sass/-/sass-1.29.0.tgz";
+        sha512 = "ZpwAUFgnvAUCdkjwPREny+17BpUj8nh5Yr6zKPGtLNTLrmtoRYIjm7njP24COhjJldjwW1dcv52Lpf4tNZVVRA==";
+      };
+    };
+    "sass-loader-10.1.0" = {
+      name = "sass-loader";
+      packageName = "sass-loader";
+      version = "10.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sass-loader/-/sass-loader-10.1.0.tgz";
+        sha512 = "ZCKAlczLBbFd3aGAhowpYEy69Te3Z68cg8bnHHl6WnSCvnKpbM6pQrz957HWMa8LKVuhnD9uMplmMAHwGQtHeg==";
+      };
+    };
+    "schema-utils-2.7.1" = {
+      name = "schema-utils";
+      packageName = "schema-utils";
+      version = "2.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz";
+        sha512 = "SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==";
+      };
+    };
+    "schema-utils-3.0.0" = {
+      name = "schema-utils";
+      packageName = "schema-utils";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz";
+        sha512 = "6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==";
+      };
+    };
+    "semver-5.7.1" = {
+      name = "semver";
+      packageName = "semver";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+      };
+    };
+    "semver-6.3.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+      };
+    };
+    "semver-7.0.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz";
+        sha512 = "+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==";
+      };
+    };
+    "semver-7.3.2" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz";
+        sha512 = "OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==";
+      };
+    };
+    "serialize-javascript-5.0.1" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
+        sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==";
+      };
+    };
+    "shebang-command-2.0.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
+      };
+    };
+    "shebang-regex-3.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
+      };
+    };
+    "signal-exit-3.0.3" = {
+      name = "signal-exit";
+      packageName = "signal-exit";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+      };
+    };
+    "slice-ansi-2.1.0" = {
+      name = "slice-ansi";
+      packageName = "slice-ansi";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz";
+        sha512 = "Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==";
+      };
+    };
+    "source-list-map-2.0.1" = {
+      name = "source-list-map";
+      packageName = "source-list-map";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz";
+        sha512 = "qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==";
+      };
+    };
+    "source-map-0.5.7" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    };
+    "source-map-0.6.1" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "source-map-0.7.3" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz";
+        sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
+      };
+    };
+    "source-map-support-0.5.19" = {
+      name = "source-map-support";
+      packageName = "source-map-support";
+      version = "0.5.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
+      };
+    };
+    "spdx-correct-3.1.1" = {
+      name = "spdx-correct";
+      packageName = "spdx-correct";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz";
+        sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==";
+      };
+    };
+    "spdx-exceptions-2.3.0" = {
+      name = "spdx-exceptions";
+      packageName = "spdx-exceptions";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
+      };
+    };
+    "spdx-expression-parse-3.0.1" = {
+      name = "spdx-expression-parse";
+      packageName = "spdx-expression-parse";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
+      };
+    };
+    "spdx-license-ids-3.0.6" = {
+      name = "spdx-license-ids";
+      packageName = "spdx-license-ids";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz";
+        sha512 = "+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==";
+      };
+    };
+    "sprintf-js-1.0.3" = {
+      name = "sprintf-js";
+      packageName = "sprintf-js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    };
+    "string-width-3.1.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+      };
+    };
+    "string.prototype.trimend-1.0.3" = {
+      name = "string.prototype.trimend";
+      packageName = "string.prototype.trimend";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz";
+        sha512 = "ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==";
+      };
+    };
+    "string.prototype.trimstart-1.0.3" = {
+      name = "string.prototype.trimstart";
+      packageName = "string.prototype.trimstart";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz";
+        sha512 = "oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==";
+      };
+    };
+    "string_decoder-1.3.0" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
+        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
+      };
+    };
+    "strip-ansi-3.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    };
+    "strip-ansi-5.2.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+      };
+    };
+    "strip-ansi-6.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+      };
+    };
+    "strip-bom-3.0.0" = {
+      name = "strip-bom";
+      packageName = "strip-bom";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";
+        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+      };
+    };
+    "strip-final-newline-2.0.0" = {
+      name = "strip-final-newline";
+      packageName = "strip-final-newline";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
+        sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==";
+      };
+    };
+    "strip-json-comments-3.1.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
+      };
+    };
+    "supports-color-5.5.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+      };
+    };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
+    "table-5.4.6" = {
+      name = "table";
+      packageName = "table";
+      version = "5.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-5.4.6.tgz";
+        sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
+      };
+    };
+    "table-layout-1.0.1" = {
+      name = "table-layout";
+      packageName = "table-layout";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table-layout/-/table-layout-1.0.1.tgz";
+        sha512 = "dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q==";
+      };
+    };
+    "tapable-1.1.3" = {
+      name = "tapable";
+      packageName = "tapable";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz";
+        sha512 = "4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==";
+      };
+    };
+    "tapable-2.1.1" = {
+      name = "tapable";
+      packageName = "tapable";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tapable/-/tapable-2.1.1.tgz";
+        sha512 = "Wib1S8m2wdpLbmQz0RBEVosIyvb/ykfKXf3ZIDqvWoMg/zTNm6G/tDSuUM61J1kNCDXWJrLHGSFeMhAG+gAGpQ==";
+      };
+    };
+    "terser-4.8.0" = {
+      name = "terser";
+      packageName = "terser";
+      version = "4.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz";
+        sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
+      };
+    };
+    "terser-5.5.0" = {
+      name = "terser";
+      packageName = "terser";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser/-/terser-5.5.0.tgz";
+        sha512 = "eopt1Gf7/AQyPhpygdKePTzaet31TvQxXvrf7xYUvD/d8qkCJm4SKPDzu+GHK5ZaYTn8rvttfqaZc3swK21e5g==";
+      };
+    };
+    "terser-webpack-plugin-5.0.3" = {
+      name = "terser-webpack-plugin";
+      packageName = "terser-webpack-plugin";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz";
+        sha512 = "zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ==";
+      };
+    };
+    "text-table-0.2.0" = {
+      name = "text-table";
+      packageName = "text-table";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
+        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+      };
+    };
+    "to-fast-properties-2.0.0" = {
+      name = "to-fast-properties";
+      packageName = "to-fast-properties";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    };
+    "to-regex-range-5.0.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
+      };
+    };
+    "tsconfig-paths-3.9.0" = {
+      name = "tsconfig-paths";
+      packageName = "tsconfig-paths";
+      version = "3.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha512 = "dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==";
+      };
+    };
+    "tslib-1.14.1" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz";
+        sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
+      };
+    };
+    "type-check-0.4.0" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz";
+        sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==";
+      };
+    };
+    "type-fest-0.8.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+        sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+      };
+    };
+    "typical-5.2.0" = {
+      name = "typical";
+      packageName = "typical";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz";
+        sha512 = "dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==";
+      };
+    };
+    "unicode-canonical-property-names-ecmascript-1.0.4" = {
+      name = "unicode-canonical-property-names-ecmascript";
+      packageName = "unicode-canonical-property-names-ecmascript";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+        sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==";
+      };
+    };
+    "unicode-match-property-ecmascript-1.0.4" = {
+      name = "unicode-match-property-ecmascript";
+      packageName = "unicode-match-property-ecmascript";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+        sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==";
+      };
+    };
+    "unicode-match-property-value-ecmascript-1.2.0" = {
+      name = "unicode-match-property-value-ecmascript";
+      packageName = "unicode-match-property-value-ecmascript";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
+        sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==";
+      };
+    };
+    "unicode-property-aliases-ecmascript-1.1.0" = {
+      name = "unicode-property-aliases-ecmascript";
+      packageName = "unicode-property-aliases-ecmascript";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz";
+        sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==";
+      };
+    };
+    "uniq-1.0.1" = {
+      name = "uniq";
+      packageName = "uniq";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz";
+        sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+      };
+    };
+    "uri-js-4.4.0" = {
+      name = "uri-js";
+      packageName = "uri-js";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz";
+        sha512 = "B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "util.promisify-1.0.0" = {
+      name = "util.promisify";
+      packageName = "util.promisify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz";
+        sha512 = "i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==";
+      };
+    };
+    "utila-0.4.0" = {
+      name = "utila";
+      packageName = "utila";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz";
+        sha1 = "8a16a05d445657a3aea5eecc5b12a4fa5379772c";
+      };
+    };
+    "v8-compile-cache-2.2.0" = {
+      name = "v8-compile-cache";
+      packageName = "v8-compile-cache";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
+        sha512 = "gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==";
+      };
+    };
+    "validate-npm-package-license-3.0.4" = {
+      name = "validate-npm-package-license";
+      packageName = "validate-npm-package-license";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+        sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==";
+      };
+    };
+    "vfile-location-3.2.0" = {
+      name = "vfile-location";
+      packageName = "vfile-location";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz";
+        sha512 = "aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==";
+      };
+    };
+    "watchpack-2.0.1" = {
+      name = "watchpack";
+      packageName = "watchpack";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.0.1.tgz";
+        sha512 = "vO8AKGX22ZRo6PiOFM9dC0re8IcKh8Kd/aH2zeqUc6w4/jBGlTy2P7fTC6ekT0NjVeGjgU2dGC5rNstKkeLEQg==";
+      };
+    };
+    "webpack-5.6.0" = {
+      name = "webpack";
+      packageName = "webpack";
+      version = "5.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.6.0.tgz";
+        sha512 = "SIeFuBhuheKElRbd84O35UhKc0nxlgSwtzm2ksZ0BVhRJqxVJxEguT/pYhfiR0le/pxTa1VsCp7EOYyTsa6XOA==";
+      };
+    };
+    "webpack-cli-4.2.0" = {
+      name = "webpack-cli";
+      packageName = "webpack-cli";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.2.0.tgz";
+        sha512 = "EIl3k88vaF4fSxWSgtAQR+VwicfLMTZ9amQtqS4o+TDPW9HGaEpbFBbAZ4A3ZOT5SOnMxNOzROsSTPiE8tBJPA==";
+      };
+    };
+    "webpack-merge-4.2.2" = {
+      name = "webpack-merge";
+      packageName = "webpack-merge";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz";
+        sha512 = "TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==";
+      };
+    };
+    "webpack-sources-1.4.3" = {
+      name = "webpack-sources";
+      packageName = "webpack-sources";
+      version = "1.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz";
+        sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
+      };
+    };
+    "webpack-sources-2.2.0" = {
+      name = "webpack-sources";
+      packageName = "webpack-sources";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz";
+        sha512 = "bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==";
+      };
+    };
+    "which-2.0.2" = {
+      name = "which";
+      packageName = "which";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
+        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
+      };
+    };
+    "word-wrap-1.2.3" = {
+      name = "word-wrap";
+      packageName = "word-wrap";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    };
+    "wordwrapjs-4.0.0" = {
+      name = "wordwrapjs";
+      packageName = "wordwrapjs";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.0.tgz";
+        sha512 = "Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ==";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "write-1.0.3" = {
+      name = "write";
+      packageName = "write";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write/-/write-1.0.3.tgz";
+        sha512 = "/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==";
+      };
+    };
+    "yaml-1.10.0" = {
+      name = "yaml";
+      packageName = "yaml";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz";
+        sha512 = "yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==";
+      };
+    };
+  };
+  args = {
+    name = "botamusique";
+    packageName = "botamusique";
+    version = "0.0.0";
+    src = ../../../../../../../../run/user/1000/tmp.ioJA7NbZmp;
+    dependencies = [
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/compat-data-7.12.7"
+      sources."@babel/core-7.12.9"
+      (sources."@babel/eslint-parser-7.12.1" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/eslint-plugin-7.12.1"
+      sources."@babel/generator-7.12.5"
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
+      sources."@babel/helper-compilation-targets-7.12.5"
+      sources."@babel/helper-create-class-features-plugin-7.12.1"
+      sources."@babel/helper-create-regexp-features-plugin-7.12.7"
+      sources."@babel/helper-define-map-7.10.5"
+      sources."@babel/helper-explode-assignable-expression-7.12.1"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-hoist-variables-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.12.7"
+      sources."@babel/helper-module-imports-7.12.5"
+      sources."@babel/helper-module-transforms-7.12.1"
+      sources."@babel/helper-optimise-call-expression-7.12.7"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-remap-async-to-generator-7.12.1"
+      sources."@babel/helper-replace-supers-7.12.5"
+      sources."@babel/helper-simple-access-7.12.1"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-validator-option-7.12.1"
+      sources."@babel/helper-wrap-function-7.12.3"
+      sources."@babel/helpers-7.12.5"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.12.7"
+      sources."@babel/plugin-proposal-async-generator-functions-7.12.1"
+      sources."@babel/plugin-proposal-class-properties-7.12.1"
+      sources."@babel/plugin-proposal-dynamic-import-7.12.1"
+      sources."@babel/plugin-proposal-export-namespace-from-7.12.1"
+      sources."@babel/plugin-proposal-json-strings-7.12.1"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.12.1"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.12.1"
+      sources."@babel/plugin-proposal-numeric-separator-7.12.7"
+      sources."@babel/plugin-proposal-object-rest-spread-7.12.1"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.12.1"
+      sources."@babel/plugin-proposal-optional-chaining-7.12.7"
+      sources."@babel/plugin-proposal-private-methods-7.12.1"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.12.1"
+      sources."@babel/plugin-syntax-async-generators-7.8.4"
+      sources."@babel/plugin-syntax-class-properties-7.12.1"
+      sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-json-strings-7.8.3"
+      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
+      sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+      sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+      sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
+      sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+      sources."@babel/plugin-syntax-top-level-await-7.12.1"
+      sources."@babel/plugin-transform-arrow-functions-7.12.1"
+      sources."@babel/plugin-transform-async-to-generator-7.12.1"
+      sources."@babel/plugin-transform-block-scoped-functions-7.12.1"
+      sources."@babel/plugin-transform-block-scoping-7.12.1"
+      sources."@babel/plugin-transform-classes-7.12.1"
+      sources."@babel/plugin-transform-computed-properties-7.12.1"
+      sources."@babel/plugin-transform-destructuring-7.12.1"
+      sources."@babel/plugin-transform-dotall-regex-7.12.1"
+      sources."@babel/plugin-transform-duplicate-keys-7.12.1"
+      sources."@babel/plugin-transform-exponentiation-operator-7.12.1"
+      sources."@babel/plugin-transform-for-of-7.12.1"
+      sources."@babel/plugin-transform-function-name-7.12.1"
+      sources."@babel/plugin-transform-literals-7.12.1"
+      sources."@babel/plugin-transform-member-expression-literals-7.12.1"
+      sources."@babel/plugin-transform-modules-amd-7.12.1"
+      sources."@babel/plugin-transform-modules-commonjs-7.12.1"
+      sources."@babel/plugin-transform-modules-systemjs-7.12.1"
+      sources."@babel/plugin-transform-modules-umd-7.12.1"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.1"
+      sources."@babel/plugin-transform-new-target-7.12.1"
+      sources."@babel/plugin-transform-object-super-7.12.1"
+      sources."@babel/plugin-transform-parameters-7.12.1"
+      sources."@babel/plugin-transform-property-literals-7.12.1"
+      sources."@babel/plugin-transform-regenerator-7.12.1"
+      sources."@babel/plugin-transform-reserved-words-7.12.1"
+      sources."@babel/plugin-transform-shorthand-properties-7.12.1"
+      sources."@babel/plugin-transform-spread-7.12.1"
+      sources."@babel/plugin-transform-sticky-regex-7.12.7"
+      sources."@babel/plugin-transform-template-literals-7.12.1"
+      sources."@babel/plugin-transform-typeof-symbol-7.12.1"
+      sources."@babel/plugin-transform-unicode-escapes-7.12.1"
+      sources."@babel/plugin-transform-unicode-regex-7.12.1"
+      sources."@babel/preset-env-7.12.7"
+      sources."@babel/preset-modules-0.1.4"
+      sources."@babel/runtime-7.12.5"
+      sources."@babel/template-7.12.7"
+      sources."@babel/traverse-7.12.9"
+      sources."@babel/types-7.12.7"
+      (sources."@eslint/eslintrc-0.2.1" // {
+        dependencies = [
+          sources."globals-12.4.0"
+        ];
+      })
+      sources."@fortawesome/fontawesome-common-types-0.2.32"
+      sources."@fortawesome/fontawesome-svg-core-1.2.32"
+      sources."@fortawesome/free-regular-svg-icons-5.15.1"
+      sources."@fortawesome/free-solid-svg-icons-5.15.1"
+      sources."@types/anymatch-1.3.1"
+      sources."@types/eslint-7.2.5"
+      sources."@types/eslint-scope-3.7.0"
+      sources."@types/estree-0.0.45"
+      sources."@types/html-minifier-terser-5.1.1"
+      sources."@types/json-schema-7.0.6"
+      sources."@types/json5-0.0.29"
+      sources."@types/node-14.14.9"
+      sources."@types/parse-json-4.0.0"
+      sources."@types/source-list-map-0.1.2"
+      sources."@types/tapable-1.0.6"
+      (sources."@types/uglify-js-3.11.1" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."@types/webpack-4.41.25" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."@types/webpack-sources-2.0.0" // {
+        dependencies = [
+          sources."source-map-0.7.3"
+        ];
+      })
+      sources."@webassemblyjs/ast-1.9.0"
+      sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
+      sources."@webassemblyjs/helper-api-error-1.9.0"
+      sources."@webassemblyjs/helper-buffer-1.9.0"
+      sources."@webassemblyjs/helper-code-frame-1.9.0"
+      sources."@webassemblyjs/helper-fsm-1.9.0"
+      sources."@webassemblyjs/helper-module-context-1.9.0"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.9.0"
+      sources."@webassemblyjs/helper-wasm-section-1.9.0"
+      sources."@webassemblyjs/ieee754-1.9.0"
+      sources."@webassemblyjs/leb128-1.9.0"
+      sources."@webassemblyjs/utf8-1.9.0"
+      sources."@webassemblyjs/wasm-edit-1.9.0"
+      sources."@webassemblyjs/wasm-gen-1.9.0"
+      sources."@webassemblyjs/wasm-opt-1.9.0"
+      sources."@webassemblyjs/wasm-parser-1.9.0"
+      sources."@webassemblyjs/wast-parser-1.9.0"
+      sources."@webassemblyjs/wast-printer-1.9.0"
+      sources."@webpack-cli/info-1.1.0"
+      sources."@webpack-cli/serve-1.1.0"
+      sources."@xtuc/ieee754-1.2.0"
+      sources."@xtuc/long-4.2.2"
+      sources."acorn-7.4.1"
+      sources."acorn-jsx-5.3.1"
+      sources."ajv-6.12.6"
+      sources."ajv-keywords-3.5.2"
+      sources."ansi-colors-4.1.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.1"
+      sources."argparse-1.0.10"
+      sources."array-back-4.0.1"
+      sources."array-includes-3.1.2"
+      sources."array.prototype.flat-1.2.4"
+      sources."astral-regex-1.0.0"
+      sources."autoprefixer-10.0.2"
+      sources."babel-loader-8.2.1"
+      sources."babel-plugin-dynamic-import-node-2.3.3"
+      sources."balanced-match-1.0.0"
+      sources."big.js-5.2.2"
+      sources."binary-extensions-2.1.0"
+      sources."boolbase-1.0.0"
+      sources."bootstrap-4.5.3"
+      sources."bootswatch-4.5.3"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."browserslist-4.14.7"
+      sources."buffer-from-1.1.1"
+      sources."call-bind-1.0.0"
+      sources."callsites-3.1.0"
+      sources."camel-case-4.1.1"
+      sources."camelcase-6.2.0"
+      sources."caniuse-lite-1.0.30001161"
+      sources."chalk-2.4.2"
+      sources."chokidar-3.4.3"
+      sources."chrome-trace-event-1.0.2"
+      (sources."clean-css-4.2.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."colorette-1.2.1"
+      sources."command-line-usage-6.1.1"
+      sources."commander-4.1.1"
+      sources."comment-parser-0.7.6"
+      sources."commondir-1.0.1"
+      sources."concat-map-0.0.1"
+      sources."contains-path-0.1.0"
+      sources."convert-source-map-1.7.0"
+      sources."core-js-3.7.0"
+      (sources."core-js-compat-3.7.0" // {
+        dependencies = [
+          sources."semver-7.0.0"
+        ];
+      })
+      sources."cosmiconfig-7.0.0"
+      sources."cross-spawn-7.0.3"
+      (sources."css-loader-5.0.1" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."schema-utils-3.0.0"
+          sources."semver-7.3.2"
+        ];
+      })
+      sources."css-select-1.2.0"
+      sources."css-what-2.1.3"
+      sources."cssesc-3.0.0"
+      sources."debug-4.3.1"
+      sources."deep-extend-0.6.0"
+      sources."deep-is-0.1.3"
+      sources."define-properties-1.1.3"
+      sources."doctrine-3.0.0"
+      sources."dom-converter-0.2.0"
+      (sources."dom-serializer-0.2.2" // {
+        dependencies = [
+          sources."domelementtype-2.0.2"
+        ];
+      })
+      sources."domelementtype-1.3.1"
+      sources."domhandler-2.4.2"
+      sources."domutils-1.5.1"
+      sources."dot-case-3.0.3"
+      sources."electron-to-chromium-1.3.607"
+      sources."emoji-regex-7.0.3"
+      sources."emojis-list-3.0.0"
+      sources."end-of-stream-1.4.4"
+      (sources."enhanced-resolve-5.3.2" // {
+        dependencies = [
+          sources."tapable-2.1.1"
+        ];
+      })
+      sources."enquirer-2.3.6"
+      sources."entities-2.1.0"
+      sources."envinfo-7.7.3"
+      sources."error-ex-1.3.2"
+      sources."es-abstract-1.18.0-next.1"
+      sources."es-to-primitive-1.2.1"
+      sources."escalade-3.1.1"
+      sources."escape-string-regexp-1.0.5"
+      (sources."eslint-7.14.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."eslint-scope-5.1.1"
+          sources."eslint-visitor-keys-2.0.0"
+          sources."globals-12.4.0"
+          sources."has-flag-4.0.0"
+          sources."semver-7.3.2"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."eslint-import-resolver-node-0.3.4" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."eslint-module-utils-2.6.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."eslint-plugin-import-2.22.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."doctrine-1.5.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."eslint-plugin-jquery-1.5.1"
+      (sources."eslint-plugin-jsdoc-30.7.8" // {
+        dependencies = [
+          sources."semver-7.3.2"
+        ];
+      })
+      sources."eslint-rule-composer-0.3.0"
+      sources."eslint-scope-5.1.0"
+      sources."eslint-utils-2.1.0"
+      sources."eslint-visitor-keys-1.3.0"
+      sources."espree-7.3.0"
+      sources."esprima-4.0.1"
+      (sources."esquery-1.3.1" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."events-3.2.0"
+      sources."execa-4.1.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."file-entry-cache-5.0.1"
+      sources."fill-range-7.0.1"
+      (sources."find-cache-dir-2.1.0" // {
+        dependencies = [
+          sources."find-up-3.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-3.0.0"
+          sources."p-try-2.2.0"
+          sources."pkg-dir-3.0.0"
+        ];
+      })
+      sources."find-up-2.1.0"
+      sources."flat-cache-2.0.1"
+      sources."flatted-2.0.2"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.1.3"
+      sources."function-bind-1.1.1"
+      sources."functional-red-black-tree-1.0.1"
+      sources."gensync-1.0.0-beta.2"
+      sources."get-intrinsic-1.0.1"
+      sources."get-stream-5.2.0"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.1"
+      sources."glob-to-regexp-0.4.1"
+      sources."globals-11.12.0"
+      sources."graceful-fs-4.2.4"
+      sources."has-1.0.3"
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.1"
+      sources."he-1.2.0"
+      sources."hosted-git-info-2.8.8"
+      sources."html-minifier-terser-5.1.1"
+      sources."html-webpack-plugin-4.5.0"
+      (sources."htmlparser2-3.10.1" // {
+        dependencies = [
+          sources."entities-1.1.2"
+        ];
+      })
+      sources."human-signals-1.1.1"
+      sources."icss-utils-5.1.0"
+      sources."ignore-4.0.6"
+      sources."import-fresh-3.2.2"
+      (sources."import-local-3.0.2" // {
+        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."p-try-2.2.0"
+          sources."path-exists-4.0.0"
+          sources."pkg-dir-4.2.0"
+        ];
+      })
+      sources."imurmurhash-0.1.4"
+      sources."indexes-of-1.0.1"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."interpret-2.2.0"
+      sources."is-arrayish-0.2.1"
+      sources."is-binary-path-2.1.0"
+      sources."is-callable-1.2.2"
+      sources."is-core-module-2.1.0"
+      sources."is-date-object-1.0.2"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-negative-zero-2.0.0"
+      sources."is-number-7.0.0"
+      sources."is-regex-1.1.1"
+      sources."is-stream-2.0.0"
+      sources."is-string-1.0.5"
+      sources."is-symbol-1.0.3"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      (sources."jest-worker-26.6.2" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jquery-3.5.1"
+      sources."jquery-migrate-3.3.2"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
+      sources."jsdoctypeparser-9.0.0"
+      sources."jsesc-2.5.2"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."json5-2.1.3"
+      sources."klona-2.0.4"
+      sources."leven-3.1.0"
+      sources."levn-0.4.1"
+      sources."lines-and-columns-1.1.6"
+      (sources."load-json-file-2.0.0" // {
+        dependencies = [
+          sources."parse-json-2.2.0"
+          sources."pify-2.3.0"
+        ];
+      })
+      sources."loader-runner-4.1.0"
+      (sources."loader-utils-1.4.0" // {
+        dependencies = [
+          sources."json5-1.0.1"
+        ];
+      })
+      sources."locate-path-2.0.0"
+      sources."lodash-4.17.20"
+      sources."lower-case-2.0.1"
+      sources."make-dir-2.1.0"
+      sources."merge-stream-2.0.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."mimic-fn-2.1.0"
+      (sources."mini-css-extract-plugin-1.3.1" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."schema-utils-3.0.0"
+        ];
+      })
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."ms-2.1.2"
+      sources."nanoid-3.1.18"
+      sources."natural-compare-1.4.0"
+      sources."neo-async-2.6.2"
+      sources."no-case-3.0.3"
+      sources."node-releases-1.1.67"
+      sources."normalize-package-data-2.5.0"
+      sources."normalize-path-3.0.0"
+      sources."normalize-range-0.1.2"
+      sources."npm-run-path-4.0.1"
+      sources."nth-check-1.0.2"
+      sources."num2fraction-1.2.2"
+      sources."object-inspect-1.8.0"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.2"
+      (sources."object.getownpropertydescriptors-2.1.0" // {
+        dependencies = [
+          sources."es-abstract-1.17.7"
+        ];
+      })
+      (sources."object.values-1.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.7"
+        ];
+      })
+      sources."once-1.4.0"
+      sources."onetime-5.1.2"
+      sources."optionator-0.9.1"
+      sources."p-limit-1.3.0"
+      sources."p-locate-2.0.0"
+      sources."p-try-1.0.0"
+      sources."param-case-3.0.3"
+      sources."parent-module-1.0.1"
+      sources."parse-json-5.1.0"
+      sources."pascal-case-3.1.1"
+      sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
+      sources."path-parse-1.0.6"
+      sources."path-type-4.0.0"
+      sources."picomatch-2.2.2"
+      sources."pify-4.0.1"
+      sources."pkg-dir-2.0.0"
+      sources."popper.js-1.16.1"
+      (sources."postcss-8.1.10" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."postcss-loader-4.1.0" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."schema-utils-3.0.0"
+          sources."semver-7.3.2"
+        ];
+      })
+      sources."postcss-modules-extract-imports-3.0.0"
+      sources."postcss-modules-local-by-default-4.0.0"
+      sources."postcss-modules-scope-3.0.0"
+      sources."postcss-modules-values-4.0.0"
+      sources."postcss-selector-parser-6.0.4"
+      sources."postcss-value-parser-4.1.0"
+      sources."prelude-ls-1.2.1"
+      sources."pretty-error-2.1.2"
+      sources."progress-2.0.3"
+      sources."pump-3.0.0"
+      sources."punycode-2.1.1"
+      sources."randombytes-2.1.0"
+      (sources."read-pkg-2.0.0" // {
+        dependencies = [
+          sources."path-type-2.0.0"
+          sources."pify-2.3.0"
+        ];
+      })
+      sources."read-pkg-up-2.0.0"
+      sources."readable-stream-3.6.0"
+      sources."readdirp-3.5.0"
+      sources."rechoir-0.7.0"
+      sources."reduce-flatten-2.0.0"
+      sources."regenerate-1.4.2"
+      sources."regenerate-unicode-properties-8.2.0"
+      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-transform-0.14.5"
+      sources."regexpp-3.1.0"
+      sources."regexpu-core-4.7.1"
+      sources."regextras-0.7.1"
+      sources."regjsgen-0.5.2"
+      (sources."regjsparser-0.6.4" // {
+        dependencies = [
+          sources."jsesc-0.5.0"
+        ];
+      })
+      sources."relateurl-0.2.7"
+      (sources."renderkid-2.0.4" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."resolve-1.19.0"
+      (sources."resolve-cwd-3.0.0" // {
+        dependencies = [
+          sources."resolve-from-5.0.0"
+        ];
+      })
+      sources."resolve-from-4.0.0"
+      sources."rimraf-2.6.3"
+      sources."safe-buffer-5.1.2"
+      sources."sass-1.29.0"
+      (sources."sass-loader-10.1.0" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."schema-utils-3.0.0"
+          sources."semver-7.3.2"
+        ];
+      })
+      sources."schema-utils-2.7.1"
+      sources."semver-5.7.1"
+      sources."serialize-javascript-5.0.1"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-3.0.3"
+      sources."slice-ansi-2.1.0"
+      sources."source-list-map-2.0.1"
+      sources."source-map-0.5.7"
+      (sources."source-map-support-0.5.19" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."spdx-correct-3.1.1"
+      sources."spdx-exceptions-2.3.0"
+      sources."spdx-expression-parse-3.0.1"
+      sources."spdx-license-ids-3.0.6"
+      sources."sprintf-js-1.0.3"
+      (sources."string-width-3.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."string.prototype.trimend-1.0.3"
+      sources."string.prototype.trimstart-1.0.3"
+      (sources."string_decoder-1.3.0" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."strip-ansi-6.0.0"
+      sources."strip-bom-3.0.0"
+      sources."strip-final-newline-2.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-5.5.0"
+      sources."table-5.4.6"
+      sources."table-layout-1.0.1"
+      sources."tapable-1.1.3"
+      (sources."terser-4.8.0" // {
+        dependencies = [
+          sources."commander-2.20.3"
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."terser-webpack-plugin-5.0.3" // {
+        dependencies = [
+          sources."commander-2.20.3"
+          sources."p-limit-3.0.2"
+          sources."p-try-2.2.0"
+          sources."schema-utils-3.0.0"
+          sources."source-map-0.6.1"
+          (sources."terser-5.5.0" // {
+            dependencies = [
+              sources."source-map-0.7.3"
+            ];
+          })
+        ];
+      })
+      sources."text-table-0.2.0"
+      sources."to-fast-properties-2.0.0"
+      sources."to-regex-range-5.0.1"
+      (sources."tsconfig-paths-3.9.0" // {
+        dependencies = [
+          sources."json5-1.0.1"
+        ];
+      })
+      sources."tslib-1.14.1"
+      sources."type-check-0.4.0"
+      sources."type-fest-0.8.1"
+      sources."typical-5.2.0"
+      sources."unicode-canonical-property-names-ecmascript-1.0.4"
+      sources."unicode-match-property-ecmascript-1.0.4"
+      sources."unicode-match-property-value-ecmascript-1.2.0"
+      sources."unicode-property-aliases-ecmascript-1.1.0"
+      sources."uniq-1.0.1"
+      sources."uri-js-4.4.0"
+      sources."util-deprecate-1.0.2"
+      sources."util.promisify-1.0.0"
+      sources."utila-0.4.0"
+      sources."v8-compile-cache-2.2.0"
+      sources."validate-npm-package-license-3.0.4"
+      sources."vfile-location-3.2.0"
+      sources."watchpack-2.0.1"
+      (sources."webpack-5.6.0" // {
+        dependencies = [
+          sources."acorn-8.0.4"
+          sources."eslint-scope-5.1.1"
+          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."p-try-2.2.0"
+          sources."path-exists-4.0.0"
+          sources."pkg-dir-4.2.0"
+          sources."schema-utils-3.0.0"
+          sources."source-map-0.6.1"
+          sources."tapable-2.1.1"
+          sources."webpack-sources-2.2.0"
+        ];
+      })
+      (sources."webpack-cli-4.2.0" // {
+        dependencies = [
+          sources."commander-6.2.0"
+        ];
+      })
+      sources."webpack-merge-4.2.2"
+      (sources."webpack-sources-1.4.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."which-2.0.2"
+      sources."word-wrap-1.2.3"
+      sources."wordwrapjs-4.0.0"
+      sources."wrappy-1.0.2"
+      sources."write-1.0.3"
+      sources."yaml-1.10.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      homepage = "https://github.com/azlux/botamusique#readme";
+      license = "MIT";
+    };
+    production = false;
+    bypassCache = true;
+    reconstructLock = false;
+  };
+in
+{
+  args = args;
+  sources = sources;
+  tarball = nodeEnv.buildNodeSourceDist args;
+  package = nodeEnv.buildNodePackage args;
+  shell = nodeEnv.buildNodeShell args;
+  nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
+    src = stdenv.mkDerivation {
+      name = args.name + "-package-json";
+      src = nix-gitignore.gitignoreSourcePure [
+        "*"
+        "!package.json"
+        "!package-lock.json"
+      ] args.src;
+      dontBuild = true;
+      installPhase = "mkdir -p $out; cp -r ./* $out;";
+    };
+  });
+}
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/src.json b/nixpkgs/pkgs/tools/audio/botamusique/src.json
new file mode 100644
index 000000000000..7f63d480a8e4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/botamusique/src.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/azlux/botamusique",
+  "rev": "df38c7dbd6d59c6790cf2364d1f344b7f6f72107",
+  "date": "2021-03-13T15:44:40+08:00",
+  "path": "/nix/store/30ds4gp7aldj9rqix1xf7j2ps5blrx8w-botamusique",
+  "sha256": "06xw1pif145zcm9z8l9kzl8ayl7vy5ywr0m3a5yswybcp2fzj087",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/unconditional-relative-state-paths.patch b/nixpkgs/pkgs/tools/audio/botamusique/unconditional-relative-state-paths.patch
new file mode 100644
index 000000000000..3642a034fc88
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/botamusique/unconditional-relative-state-paths.patch
@@ -0,0 +1,22 @@
+diff --git a/util.py b/util.py
+index bfec1ed..0546772 100644
+--- a/util.py
++++ b/util.py
+@@ -22,16 +22,7 @@ log = logging.getLogger("bot")
+ 
+ 
+ def solve_filepath(path):
+-    if not path:
+-        return ''
+-
+-    if path[0] == '/':
+-        return path
+-    elif os.path.exists(path):
+-        return path
+-    else:
+-        mydir = os.path.dirname(os.path.realpath(__file__))
+-        return mydir + '/' + path
++    return path
+ 
+ 
+ def get_recursive_file_list_sorted(path):
diff --git a/nixpkgs/pkgs/tools/audio/essentia-extractor/default.nix b/nixpkgs/pkgs/tools/audio/essentia-extractor/default.nix
index a02cca6a3d65..63ebbb0ffc0b 100644
--- a/nixpkgs/pkgs/tools/audio/essentia-extractor/default.nix
+++ b/nixpkgs/pkgs/tools/audio/essentia-extractor/default.nix
@@ -14,13 +14,13 @@ let
 
   arch = arch_table.${stdenv.system};
   sha = sha_table.${stdenv.system};
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "essentia-extractor";
   version = "2.1_beta2";
 
   src = fetchurl {
-    url =
-      "ftp://ftp.acousticbrainz.org/pub/acousticbrainz/essentia-extractor-v${version}-${arch}.tar.gz";
+    url = "ftp://ftp.acousticbrainz.org/pub/acousticbrainz/essentia-extractor-v${version}-${arch}.tar.gz";
     sha256 = sha;
   };
 
diff --git a/nixpkgs/pkgs/tools/audio/google-music-scripts/default.nix b/nixpkgs/pkgs/tools/audio/google-music-scripts/default.nix
deleted file mode 100644
index 481a7ecb75b3..000000000000
--- a/nixpkgs/pkgs/tools/audio/google-music-scripts/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ lib, python3 }:
-
-let
-  py = python3.override {
-    packageOverrides = self: super: {
-      loguru = super.loguru.overridePythonAttrs (oldAttrs: rec {
-        version = "0.4.0";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "0j47cg3gi8in4z6z4w3by6x02mpkkfl78gr85xjn5rg0nxiz7pfm";
-        };
-      });
-    };
-  };
-
-in
-
-with py.pkgs;
-
-buildPythonApplication rec {
-  pname = "google-music-scripts";
-  version = "4.5.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0apwgj86whrc077dfymvyb4qwj19bawyrx49g4kg364895v0rbbq";
-  };
-
-  # there are already later releases present
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "tomlkit>=0.5,<0.6" "tomlkit" \
-      --replace "attrs>=18.2,<19.4" "attrs"
-  '';
-
-  propagatedBuildInputs = [
-    appdirs
-    audio-metadata
-    google-music
-    google-music-proto
-    google-music-utils
-    loguru
-    pendulum
-    natsort
-    tomlkit
-  ];
-
-  # No tests
-  checkPhase = ''
-    $out/bin/gms --help >/dev/null
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/thebigmunch/google-music-scripts";
-    description = "A CLI utility for interacting with Google Music";
-    license = licenses.mit;
-    maintainers = with maintainers; [ jakewaksbaum ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/audio/isrcsubmit/default.nix b/nixpkgs/pkgs/tools/audio/isrcsubmit/default.nix
new file mode 100644
index 000000000000..457ca2b0d1c7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/isrcsubmit/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "isrcsubmit";
+  version = "2.1.0";
+
+  src = fetchFromGitHub {
+    owner = "JonnyJD";
+    repo = "musicbrainz-isrcsubmit";
+    rev = "v${version}";
+    sha256 = "1lqs4jl2xv1zxmf0xsihk9rxzx2awq87g51vd7y3cq1vhj1icxqa";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ musicbrainzngs discid ];
+
+  meta = with lib; {
+    # drutil is required on Darwin, which does not seem to be available in nixpkgs
+    broken = stdenv.isDarwin;
+    description = "Script to submit ISRCs from disc to MusicBrainz";
+    license = licenses.gpl3Plus;
+    homepage = "http://jonnyjd.github.io/musicbrainz-isrcsubmit/";
+    maintainers = with maintainers; [ eduardosm ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/audio/midicsv/default.nix b/nixpkgs/pkgs/tools/audio/midicsv/default.nix
index f02f6ed956d6..cf55e0dd81d5 100644
--- a/nixpkgs/pkgs/tools/audio/midicsv/default.nix
+++ b/nixpkgs/pkgs/tools/audio/midicsv/default.nix
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
   };
 
   postPatch = ''
-    substituteInPlace Makefile --replace /usr/local $out
+    substituteInPlace Makefile \
+      --replace /usr/local $out \
+      --replace gcc "${stdenv.cc.targetPrefix}cc"
   '';
 
   meta = with lib; {
@@ -17,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.fourmilab.ch/webtools/midicsv/";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ orivej ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix b/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix
index af4000dfa448..b90ab80befdc 100644
--- a/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix
@@ -29,6 +29,6 @@ buildGoModule rec {
     homepage = "https://github.com/natsukagami/mpd-mpris";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/spotdl/default.nix b/nixpkgs/pkgs/tools/audio/spotdl/default.nix
new file mode 100644
index 000000000000..520af8404aeb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/spotdl/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, python3
+, fetchFromGitHub
+, ffmpeg
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "spotdl";
+  version = "3.5.0";
+
+  src = fetchFromGitHub {
+    owner = "spotDL";
+    repo = "spotify-downloader";
+    rev = "v${version}";
+    sha256 = "1nxf911hi578jw24hlcvyy33z1pkvr41pfrywbs3157rj1fj2vfi";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    spotipy
+    pytube
+    rich
+    rapidfuzz
+    mutagen
+    ytmusicapi
+    tqdm
+    beautifulsoup4
+    requests
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+    pytest-mock
+    pytest-vcr
+    pyfakefs
+  ];
+
+  makeWrapperArgs = [
+    "--prefix" "PATH" ":" (lib.makeBinPath [ ffmpeg ])
+  ];
+
+  meta = with lib; {
+    description = "Download your Spotify playlists and songs along with album art and metadata";
+    homepage = "https://github.com/spotDL/spotify-downloader";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/audio/yabridge/default.nix b/nixpkgs/pkgs/tools/audio/yabridge/default.nix
new file mode 100644
index 000000000000..d2a14aae3307
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/yabridge/default.nix
@@ -0,0 +1,127 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, wine
+, boost
+, libxcb
+}:
+
+let
+  # Derived from subprojects/bitsery.wrap
+  bitsery = rec {
+    version = "5.2.0";
+    src = fetchFromGitHub {
+      owner = "fraillt";
+      repo = "bitsery";
+      rev = "v${version}";
+      hash = "sha256-Bxdtjn2v2lP2lCnvjzmct6QHT7FpwmXoSZtd2oEFS4w=";
+    };
+  };
+
+  # Derived from subprojects/function2.wrap
+  function2 = rec {
+    version = "4.1.0";
+    src = fetchFromGitHub {
+      owner = "Naios";
+      repo = "function2";
+      rev = version;
+      hash = "sha256-JceZU8ZvtYhFheh8BjMvjjZty4hcYxHEK+IIo5X4eSk=";
+    };
+  };
+
+  # Derived from subprojects/tomlplusplus.wrap
+  tomlplusplus = rec {
+    version = "2.1.0";
+    src = fetchFromGitHub {
+      owner = "marzer";
+      repo = "tomlplusplus";
+      rev = "v${version}";
+      hash = "sha256-i6yAEqwkinkPEzzb6ynXytS1SEOUDwi8SixMf62NVzs=";
+    };
+  };
+
+  # Derived from vst3.wrap
+  vst3 = rec {
+    version = "e2fbb41f28a4b311f2fc7d28e9b4330eec1802b6";
+    src = fetchFromGitHub {
+      owner = "robbert-vdh";
+      repo = "vst3sdk";
+      rev = version;
+      fetchSubmodules = true;
+      sha256 = "sha256-4oLOa6kVB053Hrq7BBbZFdruAXuqnC944y5Kuib1F7s=";
+    };
+  };
+in stdenv.mkDerivation rec {
+  pname = "yabridge";
+  version = "3.0.2";
+
+  # NOTE: Also update yabridgectl's cargoHash when this is updated
+  src = fetchFromGitHub {
+    owner = "robbert-vdh";
+    repo = pname;
+    rev = version;
+    hash = "sha256-3uZCYGqo9acpANy5tQl3U0LK6wuOzjQpfjHDvaPSGlI=";
+  };
+
+  # Unpack subproject sources
+  postUnpack = ''(
+    cd "$sourceRoot/subprojects"
+    cp -R --no-preserve=mode,ownership ${bitsery.src} bitsery-${bitsery.version}
+    tar -xf bitsery-patch-${bitsery.version}.tar.xz
+    cp -R --no-preserve=mode,ownership ${function2.src} function2-${function2.version}
+    tar -xf function2-patch-${function2.version}.tar.xz
+    cp -R --no-preserve=mode,ownership ${tomlplusplus.src} tomlplusplus
+    cp -R --no-preserve=mode,ownership ${vst3.src} vst3
+  )'';
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    wine
+  ];
+
+  buildInputs = [
+    boost
+    libxcb
+  ];
+
+  # Meson is no longer able to pick up Boost automatically.
+  # https://github.com/NixOS/nixpkgs/issues/86131
+  BOOST_INCLUDEDIR = "${lib.getDev boost}/include";
+  BOOST_LIBRARYDIR = "${lib.getLib boost}/lib";
+
+  mesonFlags = [
+    "--cross-file" "cross-wine.conf"
+
+    # Requires CMake and is unnecessary
+    "-Dtomlplusplus:GENERATE_CMAKE_CONFIG=disabled"
+
+    # tomlplusplus examples and tests don't build with winegcc
+    "-Dtomlplusplus:BUILD_EXAMPLES=disabled"
+    "-Dtomlplusplus:BUILD_TESTS=disabled"
+  ];
+
+  installPhase = ''
+    mkdir -p "$out/bin" "$out/lib"
+    cp yabridge-group.exe{,.so} "$out/bin"
+    cp yabridge-host.exe{,.so} "$out/bin"
+    cp libyabridge-vst2.so "$out/lib"
+    cp libyabridge-vst3.so "$out/lib"
+  '';
+
+  meta = with lib; {
+    description = "Yet Another VST bridge, run Windows VST2 plugins under Linux";
+    homepage = "https://github.com/robbert-vdh/yabridge";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ metadark ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix b/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
new file mode 100644
index 000000000000..5c7f3a628f56
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
@@ -0,0 +1,26 @@
+{ lib, rustPlatform, yabridge }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "yabridgectl";
+  version = yabridge.version;
+
+  src = yabridge.src;
+  sourceRoot = "source/tools/yabridgectl";
+  cargoHash = "sha256-mSp/IH7ZB7YSOBCFwNtHLYDz7CvWo2sO9VuPdqpl/u0=";
+
+  patches = [
+    # By default, yabridgectl locates libyabridge.so by using
+    # hard coded distro specific lib paths. This patch replaces those
+    # hard coded paths with lib paths from NIX_PROFILES.
+    ./libyabridge-from-nix-profiles.patch
+  ];
+
+  patchFlags = [ "-p3" ];
+
+  meta = with lib; {
+    description = "A small, optional utility to help set up and update yabridge for several directories at once";
+    homepage = "https://github.com/robbert-vdh/yabridge/tree/master/tools/yabridgectl";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ metadark ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch b/nixpkgs/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
new file mode 100644
index 000000000000..e17cda6ada33
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
@@ -0,0 +1,70 @@
+diff --git a/tools/yabridgectl/src/config.rs b/tools/yabridgectl/src/config.rs
+index c1c89cf..d7bd822 100644
+--- a/tools/yabridgectl/src/config.rs
++++ b/tools/yabridgectl/src/config.rs
+@@ -23,6 +23,7 @@ use std::collections::{BTreeMap, BTreeSet};
+ use std::env;
+ use std::fmt::Display;
+ use std::fs;
++use std::iter;
+ use std::path::{Path, PathBuf};
+ use which::which;
+ use xdg::BaseDirectories;
+@@ -216,34 +217,24 @@ impl Config {
+                 }
+             }
+             None => {
+-                // Search in the system library locations and in `~/.local/share/yabridge` if no
+-                // path was set explicitely. We'll also search through `/usr/local/lib` just in case
+-                // but since we advocate against installing yabridge there we won't list this path
+-                // in the error message when `libyabridge-vst2.so` can't be found.
+-                let system_path = Path::new("/usr/lib");
++                // Search through NIX_PROFILES & data home directory if no path was set explicitly.
++                let nix_profiles = env::var("NIX_PROFILES");
+                 let user_path = xdg_dirs.get_data_home();
+-                let lib_directories = [
+-                    system_path,
+-                    // Used on Debian based distros
+-                    Path::new("/usr/lib/x86_64-linux-gnu"),
+-                    // Used on Fedora
+-                    Path::new("/usr/lib64"),
+-                    Path::new("/usr/local/lib"),
+-                    Path::new("/usr/local/lib/x86_64-linux-gnu"),
+-                    Path::new("/usr/local/lib64"),
+-                    &user_path,
+-                ];
++                let lib_directories = nix_profiles.iter()
++                    .flat_map(|profiles| profiles.split(' ')
++                              .map(|profile| Path::new(profile).join("lib")))
++                    .chain(iter::once(user_path.clone()));
++
+                 let mut candidates = lib_directories
+-                    .iter()
+                     .map(|directory| directory.join(LIBYABRIDGE_VST2_NAME));
++
+                 match candidates.find(|directory| directory.exists()) {
+                     Some(candidate) => candidate,
+                     _ => {
+                         return Err(anyhow!(
+-                            "Could not find '{}' in either '{}' or '{}'. You can override the \
+-                            default search path using 'yabridgectl set --path=<path>'.",
++                            "Could not find '{}' through 'NIX_PROFILES' or '{}'. You can override the \
++                             default search path using 'yabridgectl set --path=<path>'.",
+                             LIBYABRIDGE_VST2_NAME,
+-                            system_path.display(),
+                             user_path.display()
+                         ));
+                     }
+diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs
+index 0db1bd4..221cdd0 100644
+--- a/tools/yabridgectl/src/main.rs
++++ b/tools/yabridgectl/src/main.rs
+@@ -102,7 +102,7 @@ fn main() -> Result<()> {
+                         .about("Path to the directory containing 'libyabridge-{vst2,vst3}.so'")
+                         .long_about(
+                             "Path to the directory containing 'libyabridge-{vst2,vst3}.so'. If this \
+-                             is not set, then yabridgectl will look in both '/usr/lib' and \
++                             is not set, then yabridgectl will look through 'NIX_PROFILES' and \
+                              '~/.local/share/yabridge' by default.",
+                         )
+                         .validator(validate_path)
diff --git a/nixpkgs/pkgs/tools/backup/automysqlbackup/default.nix b/nixpkgs/pkgs/tools/backup/automysqlbackup/default.nix
index 169ef7309fe0..5ecdcc4e7edb 100644
--- a/nixpkgs/pkgs/tools/backup/automysqlbackup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/automysqlbackup/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, mysql, mailutils, pbzip2, pigz, bzip2, gzip }:
+{ lib, stdenv, fetchurl, makeWrapper, mariadb, mailutils, pbzip2, pigz, bzip2, gzip }:
 
 stdenv.mkDerivation rec {
   pname = "automysqlbackup";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     cp automysqlbackup $out/bin/
     cp automysqlbackup.conf $out/etc/
 
-    wrapProgram $out/bin/automysqlbackup --prefix PATH : ${lib.makeBinPath [ mysql mailutils pbzip2 pigz bzip2 gzip ]}
+    wrapProgram $out/bin/automysqlbackup --prefix PATH : ${lib.makeBinPath [ mariadb mailutils pbzip2 pigz bzip2 gzip ]}
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/backup/bacula/default.nix b/nixpkgs/pkgs/tools/backup/bacula/default.nix
index f35c7a44b586..c2ed78823317 100644
--- a/nixpkgs/pkgs/tools/backup/bacula/default.nix
+++ b/nixpkgs/pkgs/tools/backup/bacula/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     description = "Enterprise ready, Network Backup Tool";
     homepage    = "http://bacula.org/";
     license     = with licenses; [ agpl3Only bsd2 ];
-    maintainers = with maintainers; [ domenkozar lovek323 eleanor ];
+    maintainers = with maintainers; [ lovek323 eleanor ];
     platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/backup/borg/default.nix b/nixpkgs/pkgs/tools/backup/borgbackup/default.nix
index 4b8908448f68..86eee2bc9aa0 100644
--- a/nixpkgs/pkgs/tools/backup/borg/default.nix
+++ b/nixpkgs/pkgs/tools/backup/borgbackup/default.nix
@@ -1,20 +1,21 @@
-{ lib, stdenv, python3, acl, libb2, lz4, zstd, openssl, openssh }:
+{ lib, stdenv, python3, acl, libb2, lz4, zstd, openssl, openssh, nixosTests }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "borgbackup";
-  version = "1.1.15";
+  version = "1.1.16";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1g62sdzcw3zx4ccky125ciwnzx6z9kwyvskvp7ijmqxqk3nrxjs9";
+    sha256 = "0l1dqfwrd9l34rg30cmzmq5bs6yha6kg4vy313jq611jsqj94mmw";
   };
 
   nativeBuildInputs = with python3.pkgs; [
+    setuptools-scm
     # For building documentation:
     sphinx guzzle_sphinx_theme
   ];
   buildInputs = [
-    libb2 lz4 zstd openssl python3.pkgs.setuptools_scm
+    libb2 lz4 zstd openssl
   ] ++ lib.optionals stdenv.isLinux [ acl ];
   propagatedBuildInputs = with python3.pkgs; [
     cython llfuse
@@ -24,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
     export BORG_OPENSSL_PREFIX="${openssl.dev}"
     export BORG_LZ4_PREFIX="${lz4.dev}"
     export BORG_LIBB2_PREFIX="${libb2}"
-    export BORG_LIBZSTD_PREFIX="${zstd}"
+    export BORG_LIBZSTD_PREFIX="${zstd.dev}"
   '';
 
   makeWrapperArgs = [
@@ -61,6 +62,12 @@ python3.pkgs.buildPythonApplication rec {
   # 64 failures, needs pytest-benchmark
   doCheck = false;
 
+  passthru.tests = {
+    inherit (nixosTests) borgbackup;
+  };
+
+  outputs = [ "out" "doc" ];
+
   meta = with lib; {
     description = "Deduplicating archiver with compression and encryption";
     homepage = "https://www.borgbackup.org";
diff --git a/nixpkgs/pkgs/tools/backup/borgmatic/default.nix b/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
new file mode 100644
index 000000000000..4913ca29cb84
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
@@ -0,0 +1,50 @@
+{ borgbackup, coreutils, lib, python3Packages, systemd }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "borgmatic";
+  version = "1.5.12";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-XLbBJvNRmH8W9SnOjF7zUbazRYFCMW6SEO2wKN/2VTY=";
+  };
+
+  checkInputs = with python3Packages; [ flexmock pytestCheckHook pytest-cov ];
+
+  # - test_borgmatic_version_matches_news_version
+  # The file NEWS not available on the pypi source, and this test is useless
+  # - test_collect_configuration_run_summary_logs_outputs_merged_json_results
+  # Upstream fixed in the next version, see
+  # https://github.com/witten/borgmatic/commit/ea6cd53067435365a96786b006aec391714501c4
+  disabledTests = [
+    "test_borgmatic_version_matches_news_version"
+    "test_collect_configuration_run_summary_logs_outputs_merged_json_results"
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    borgbackup
+    colorama
+    pykwalify
+    ruamel_yaml
+    requests
+    setuptools
+  ];
+
+  postInstall = ''
+    mkdir -p $out/lib/systemd/system
+    cp sample/systemd/borgmatic.timer $out/lib/systemd/system/
+    substitute sample/systemd/borgmatic.service \
+               $out/lib/systemd/system/borgmatic.service \
+               --replace /root/.local/bin/borgmatic $out/bin/borgmatic \
+               --replace systemd-inhibit ${systemd}/bin/systemd-inhibit \
+               --replace sleep ${coreutils}/bin/sleep
+  '';
+
+  meta = with lib; {
+    description = "Simple, configuration-driven backup software for servers and workstations";
+    homepage = "https://torsion.org/borgmatic/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ imlonghao ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/backup/btrbk/default.nix b/nixpkgs/pkgs/tools/backup/btrbk/default.nix
index cd91d51d9606..c619a69c1118 100644
--- a/nixpkgs/pkgs/tools/backup/btrbk/default.nix
+++ b/nixpkgs/pkgs/tools/backup/btrbk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, coreutils, bash, btrfs-progs, openssh, perl, perlPackages
+{ lib, stdenv, fetchurl, bash, btrfs-progs, openssh, perl, perlPackages
 , util-linux, asciidoc, asciidoctor, mbuffer, makeWrapper }:
 
 stdenv.mkDerivation rec {
@@ -24,12 +24,6 @@ stdenv.mkDerivation rec {
     # Tainted Mode disables PERL5LIB
     substituteInPlace btrbk --replace "perl -T" "perl"
 
-    # Fix btrbk-mail
-    substituteInPlace contrib/cron/btrbk-mail \
-      --replace "/bin/date" "${coreutils}/bin/date" \
-      --replace "/bin/echo" "${coreutils}/bin/echo" \
-      --replace '$btrbk' 'btrbk'
-
     # Fix SSH filter script
     sed -i '/^export PATH/d' ssh_filter_btrbk.sh
     substituteInPlace ssh_filter_btrbk.sh --replace logger ${util-linux}/bin/logger
diff --git a/nixpkgs/pkgs/tools/backup/bup/default.nix b/nixpkgs/pkgs/tools/backup/bup/default.nix
index 3b81295ccf2a..3908b4984c4d 100644
--- a/nixpkgs/pkgs/tools/backup/bup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/bup/default.nix
@@ -31,9 +31,8 @@ stdenv.mkDerivation {
   postPatch = ''
     patchShebangs .
     substituteInPlace Makefile --replace "-Werror" ""
-    substituteInPlace Makefile --replace "./format-subst.pl" "${perl}/bin/perl ./format-subst.pl"
   '' + optionalString par2Support ''
-    substituteInPlace cmd/fsck-cmd.py --replace "['par2'" "['${par2cmdline}/bin/par2'"
+    substituteInPlace cmd/fsck-cmd.py --replace "'par2'" "'${par2cmdline}/bin/par2'"
   '';
 
   dontAddPrefix = true;
diff --git a/nixpkgs/pkgs/tools/backup/bupstash/default.nix b/nixpkgs/pkgs/tools/backup/bupstash/default.nix
index 9ed70491fb32..54644ac3a0ef 100644
--- a/nixpkgs/pkgs/tools/backup/bupstash/default.nix
+++ b/nixpkgs/pkgs/tools/backup/bupstash/default.nix
@@ -1,22 +1,22 @@
 { lib, fetchFromGitHub, installShellFiles, rustPlatform, ronn, pkg-config, libsodium }:
 rustPlatform.buildRustPackage rec {
   pname = "bupstash";
-  version = "0.6.4";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "andrewchambers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "013k8pr4865f5rp66fjf3a8069kmd29brxv0l20z571gy2kxs5p9";
+    sha256 = "sha256-zZHJlC0OICIc3G825t7GrZwdmkaaLQKzX2IwkKigkV4=";
   };
 
-  cargoSha256 = "17cdi93q71wsqqfkpz6mxcaqqhqclsbns0g1r9mni39nikw7amv1";
+  cargoSha256 = "sha256-KVeIF6x+gpb8vkqCtZptF5EX9G1Zv6q8L6tskN6HziM=";
 
   nativeBuildInputs = [ ronn pkg-config installShellFiles ];
   buildInputs = [ libsodium ];
 
   postBuild = ''
-    RUBYOPT="-KU -E utf-8:utf-8" ronn doc/man/*.md
+    RUBYOPT="-KU -E utf-8:utf-8" ronn -r doc/man/*.md
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/backup/diskrsync/default.nix b/nixpkgs/pkgs/tools/backup/diskrsync/default.nix
index 3b5d901daf0c..97870d5dedde 100644
--- a/nixpkgs/pkgs/tools/backup/diskrsync/default.nix
+++ b/nixpkgs/pkgs/tools/backup/diskrsync/default.nix
@@ -14,7 +14,7 @@ buildGoPackage rec {
   goPackagePath = "github.com/dop251/diskrsync";
   goDeps = ./deps.nix;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   preFixup = ''
     wrapProgram "$out/bin/diskrsync" --argv0 diskrsync --prefix PATH : ${openssh}/bin
diff --git a/nixpkgs/pkgs/tools/backup/duplicati/default.nix b/nixpkgs/pkgs/tools/backup/duplicati/default.nix
index 5330ca60a4dc..2d9124d6f51a 100644
--- a/nixpkgs/pkgs/tools/backup/duplicati/default.nix
+++ b/nixpkgs/pkgs/tools/backup/duplicati/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     stripRoot = false;
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/{bin,share/${pname}-${version}}
diff --git a/nixpkgs/pkgs/tools/backup/duplicity/default.nix b/nixpkgs/pkgs/tools/backup/duplicity/default.nix
index 399d6b9ada32..24e1a2954ed6 100644
--- a/nixpkgs/pkgs/tools/backup/duplicity/default.nix
+++ b/nixpkgs/pkgs/tools/backup/duplicity/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv
-, fetchpatch
 , fetchurl
 , pythonPackages
 , librsync
@@ -9,7 +8,6 @@
 , par2cmdline
 , util-linux
 , rsync
-, backblaze-b2
 , makeWrapper
 , gettext
 }:
@@ -34,19 +32,23 @@ pythonPackages.buildPythonApplication rec {
     # to make the testing code stop assuming it is run from the source directory.
     ./use-installed-scripts-in-test.patch
   ] ++ lib.optionals stdenv.isLinux [
+    # Broken on Linux in Nix' build environment
     ./linux-disable-timezone-test.patch
   ];
 
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
   nativeBuildInputs = [
     makeWrapper
     gettext
     pythonPackages.wrapPython
+    pythonPackages.setuptools-scm
   ];
   buildInputs = [
     librsync
   ];
 
-  propagatedBuildInputs = with pythonPackages; [
+  pythonPath = with pythonPackages; [
     b2sdk
     boto
     boto3
diff --git a/nixpkgs/pkgs/tools/backup/duply/default.nix b/nixpkgs/pkgs/tools/backup/duply/default.nix
index 15ac5acbe848..82d6bd5c601f 100644
--- a/nixpkgs/pkgs/tools/backup/duply/default.nix
+++ b/nixpkgs/pkgs/tools/backup/duply/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-I1KkblFnZVOCvcWEarGsSXnzlod2+yZ4okaTpckLFbE=";
   };
 
-  buildInputs = [ txt2man makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ txt2man ];
 
   postPatch = "patchShebangs .";
 
diff --git a/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix b/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix
new file mode 100644
index 000000000000..f236a80547c3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub, lepton }:
+
+buildGoModule {
+  pname = "gb-backup";
+  version = "unstable-2021-03-06";
+
+  src = fetchFromGitHub {
+    owner = "leijurv";
+    repo = "gb";
+    rev = "5a94e60148628fc7796d15c53d0ed87184322053";
+    sha256 = "07skhwnxvm6yngb2665gkh5qbiyp7hb7av8dkckzypmd4k8z93cm";
+  };
+
+  vendorSha256 = "0m2aa6p04b4fs7zncar1mlykc94pp527phv71cdsbx58jgsm1jnx";
+
+  buildInputs = [ lepton ];
+
+  meta = with lib; {
+    description = "Gamer Backup, a super opinionated cloud backup system";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ babbaj ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/backup/monolith/default.nix b/nixpkgs/pkgs/tools/backup/monolith/default.nix
index 708cd85bb298..01722fa90709 100644
--- a/nixpkgs/pkgs/tools/backup/monolith/default.nix
+++ b/nixpkgs/pkgs/tools/backup/monolith/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "monolith";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "Y2Z";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kCyfVeGTXBzdwmTTDJM1eaR6ANoIXAydj1ePmrZehqE=";
+    sha256 = "sha256-n89rfZwR8B6SKeLtzmbeHRyw2G9NIQ1BY6JvJuZmC/w=";
   };
 
-  cargoSha256 = "sha256-juxaL/zjfqzFMqZe9tpevdjjVU7fPK8zalksAARWHC8=";
+  cargoSha256 = "sha256-RqtJLfBF9hfPh049uyc9K+uNBh+P3VMznuA2UtOwK3M=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = lib.optionals stdenv.isLinux [ openssl ]
diff --git a/nixpkgs/pkgs/tools/backup/rdedup/default.nix b/nixpkgs/pkgs/tools/backup/rdedup/default.nix
index 94c7e711267d..3d908dd24a11 100644
--- a/nixpkgs/pkgs/tools/backup/rdedup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/rdedup/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, libsodium
-, llvmPackages, clang, lzma
+, llvmPackages, clang, xz
 , Security }:
 
 rustPlatform.buildRustPackage rec {
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   nativeBuildInputs = [ pkg-config llvmPackages.libclang clang ];
-  buildInputs = [ openssl libsodium lzma ]
+  buildInputs = [ openssl libsodium xz ]
     ++ (lib.optional stdenv.isDarwin Security);
 
   configurePhase = ''
diff --git a/nixpkgs/pkgs/tools/backup/restic/0001-Skip-testing-restore-with-permission-failure.patch b/nixpkgs/pkgs/tools/backup/restic/0001-Skip-testing-restore-with-permission-failure.patch
new file mode 100644
index 000000000000..148b9a1a9579
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/restic/0001-Skip-testing-restore-with-permission-failure.patch
@@ -0,0 +1,25 @@
+From 8e6186be04e2819b6e3586e5d1aeb8a824e1979f Mon Sep 17 00:00:00 2001
+From: Simon Bruder <simon@sbruder.de>
+Date: Thu, 25 Feb 2021 09:20:51 +0100
+Subject: [PATCH] Skip testing restore with permission failure
+
+The test fails in sandboxed builds.
+---
+ cmd/restic/integration_test.go | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/cmd/restic/integration_test.go b/cmd/restic/integration_test.go
+index 7d198d33..1588ccb1 100644
+--- a/cmd/restic/integration_test.go
++++ b/cmd/restic/integration_test.go
+@@ -1170,6 +1170,7 @@ func TestRestoreLatest(t *testing.T) {
+ }
+ 
+ func TestRestoreWithPermissionFailure(t *testing.T) {
++	t.Skip("Skipping testing restore with permission failure")
+ 	env, cleanup := withTestEnvironment(t)
+ 	defer cleanup()
+ 
+-- 
+2.29.2
+
diff --git a/nixpkgs/pkgs/tools/backup/restic/default.nix b/nixpkgs/pkgs/tools/backup/restic/default.nix
index 3317ada541a5..65ff53bf677d 100644
--- a/nixpkgs/pkgs/tools/backup/restic/default.nix
+++ b/nixpkgs/pkgs/tools/backup/restic/default.nix
@@ -3,16 +3,21 @@
 
 buildGoModule rec {
   pname = "restic";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "restic";
     repo = "restic";
     rev = "v${version}";
-    sha256 = "13zmx9wzv29z0np3agx4rsz1j9pgrvlnngjsb971i1dnzwv5l3hf";
+    sha256 = "07gxf56g45gj2arvdnrr9656i9ykhy1y6k6zdlni1sa3aa2x2bbf";
   };
 
-  vendorSha256 = "09sa5jpdj73w595c063mib14132zacswh54nmjqp2n440cflmwjh";
+  patches = [
+    # The TestRestoreWithPermissionFailure test fails in Nix’s build sandbox
+    ./0001-Skip-testing-restore-with-permission-failure.patch
+  ];
+
+  vendorSha256 = "14z22lmdd681rn61alpqbn3i9fn0kcc74321vjvhz2ix2mch3c1z";
 
   subPackages = [ "cmd/restic" ];
 
diff --git a/nixpkgs/pkgs/tools/backup/rsbep/default.nix b/nixpkgs/pkgs/tools/backup/rsbep/default.nix
index d7967c018a26..7f59b0af9444 100644
--- a/nixpkgs/pkgs/tools/backup/rsbep/default.nix
+++ b/nixpkgs/pkgs/tools/backup/rsbep/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, lib, coreutils, gnused, gawk, fetchurl }:
+{ lib, stdenv, coreutils, gawk, fetchFromGitHub }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "rsbep";
-  version = "0.1.0";
+  version = "0.2.0";
 
-  src = fetchurl {
-    url = "https://www.thanassis.space/rsbep-0.1.0-ttsiodras.tar.bz2";
-    sha256 = "1zji34kc9srxp0h1s1m7k60mvgsir1wrx1n3wc990jszfplr32zc";
+  src = fetchFromGitHub {
+    owner = "ttsiodras";
+    repo = "rsbep-backup";
+    rev = "v${version}";
+    sha256 = "0is4jgil3wdqbvx9h66xcyzbqy84ndyydnnay2g9k81a4mcz4dns";
   };
 
   postFixup = ''
@@ -18,20 +20,27 @@ stdenv.mkDerivation {
     mv rsbep_chopper $libexecDir
 
     # Fix store dependencies in scripts
-    path="export PATH=$out/bin:$libexecDir:${lib.makeBinPath [ coreutils gnused gawk ]}"
+    path="export PATH=$out/bin:$libexecDir:${lib.makeBinPath [ coreutils gawk ]}"
     sed -i "2i$path" freeze.sh
     sed -i "2i$path" melt.sh
 
-    substituteInPlace freeze.sh --replace /bin/ls ls
-
     # Remove unneded binary
     rm poorZFS.py
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    cd $TMP
+    echo hello > input
+    $out/bin/freeze.sh input > packed
+    $out/bin/melt.sh packed > output
+    diff -u input output
+  '';
+
   meta = with lib; {
     description = "Create resilient backups with Reed-Solomon error correction and byte-spreading";
     homepage = "https://www.thanassis.space/rsbep.html";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = [ maintainers.earvstedt ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/backup/sanoid/default.nix b/nixpkgs/pkgs/tools/backup/sanoid/default.nix
index 569a07a459be..a60683a27e19 100644
--- a/nixpkgs/pkgs/tools/backup/sanoid/default.nix
+++ b/nixpkgs/pkgs/tools/backup/sanoid/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, coreutils, zfs
-, perlPackages, procps, which, openssh, sudo, mbuffer, pv, lzop, gzip, pigz }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, zfs
+, perlPackages, procps, which, openssh, mbuffer, pv, lzop, gzip, pigz }:
 
 with lib;
 
diff --git a/nixpkgs/pkgs/tools/backup/store-backup/default.nix b/nixpkgs/pkgs/tools/backup/store-backup/default.nix
index d0ca5324cabd..026a3141fede 100644
--- a/nixpkgs/pkgs/tools/backup/store-backup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/store-backup/default.nix
@@ -20,7 +20,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildInputs = [ perl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ];
 
   src = fetchurl {
     url = "https://download.savannah.gnu.org/releases/storebackup/storeBackup-${version}.tar.bz2";
diff --git a/nixpkgs/pkgs/tools/backup/wal-g/default.nix b/nixpkgs/pkgs/tools/backup/wal-g/default.nix
index f3c415f3cd0f..de7f678fde8a 100644
--- a/nixpkgs/pkgs/tools/backup/wal-g/default.nix
+++ b/nixpkgs/pkgs/tools/backup/wal-g/default.nix
@@ -17,7 +17,10 @@ buildGoModule rec {
 
   subPackages = [ "main/pg" ];
 
-  buildFlagsArray = [ "-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}" ];
+  buildFlagsArray = [
+    "-tags=brotli"
+    "-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
diff --git a/nixpkgs/pkgs/tools/backup/zrepl/default.nix b/nixpkgs/pkgs/tools/backup/zrepl/default.nix
new file mode 100644
index 000000000000..8d5a51598774
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/zrepl/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "zrepl";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "zrepl";
+    repo = "zrepl";
+    rev = "v${version}";
+    sha256 = "sha256-wtUL8GGSJxn9yEdyTWKtkHODfxxLOxojNPlPLRjI9xo=";
+  };
+
+  vendorSha256 = "sha256-4LBX0bD8qirFaFkV52QFU50lEW4eae6iObIa5fFT/wA=";
+
+  subPackages = [ "." ];
+
+  postInstall = ''
+    mkdir -p $out/lib/systemd/system
+    substitute dist/systemd/zrepl.service $out/lib/systemd/system/zrepl.service \
+      --replace /usr/local/bin/zrepl $out/bin/zrepl
+  '';
+
+  meta = with lib; {
+    homepage = "https://zrepl.github.io/";
+    description = "A one-stop, integrated solution for ZFS replication";
+    platforms = platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ cole-h danderson ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix b/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix
index 69eeb3db7114..b30a8763706b 100644
--- a/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix
+++ b/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix
@@ -1,11 +1,11 @@
 { config, stdenv, lib, fetchurl, intltool, pkg-config, python3Packages, bluez, gtk3
-, obex_data_server, xdg-utils, dnsmasq, dhcp, libappindicator, iproute
+, obex_data_server, xdg-utils, dnsmasq, dhcp, libappindicator, iproute2
 , gnome3, librsvg, wrapGAppsHook, gobject-introspection, autoreconfHook
 , networkmanager, withPulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio, fetchpatch }:
 
 let
   pythonPackages = python3Packages;
-  binPath = lib.makeBinPath [ xdg-utils dnsmasq dhcp iproute ];
+  binPath = lib.makeBinPath [ xdg-utils dnsmasq dhcp iproute2 ];
 
 in stdenv.mkDerivation rec {
   pname = "blueman";
@@ -23,7 +23,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [ bluez gtk3 pythonPackages.python librsvg
-                  gnome3.adwaita-icon-theme iproute libappindicator networkmanager ]
+                  gnome3.adwaita-icon-theme iproute2 libappindicator networkmanager ]
                 ++ pythonPath
                 ++ lib.optional withPulseAudio libpulseaudio;
 
diff --git a/nixpkgs/pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch b/nixpkgs/pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch
deleted file mode 100644
index 90b60235aad5..000000000000
--- a/nixpkgs/pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e34a16301f425f273a67ed3abbc45840bc82d892 Mon Sep 17 00:00:00 2001
-From: srs5694 <srs5694@users.sourceforge.net>
-Date: Fri, 15 May 2020 12:34:14 -0400
-Subject: [PATCH] Fix GCC 10 compile problem
-
----
- Make.common | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Make.common b/Make.common
-index 3f0b919..95a3a97 100644
---- a/Make.common
-+++ b/Make.common
-@@ -60,7 +60,7 @@ endif
- #
- 
- # ...for both GNU-EFI and TianoCore....
--OPTIMFLAGS      = -Os -fno-strict-aliasing
-+OPTIMFLAGS      = -Os -fno-strict-aliasing -fno-tree-loop-distribute-patterns
- CFLAGS          = $(OPTIMFLAGS) -fno-stack-protector -fshort-wchar -Wall
- 
- # ...for GNU-EFI....
--- 
-2.29.2
-
diff --git a/nixpkgs/pkgs/tools/bootloaders/refind/default.nix b/nixpkgs/pkgs/tools/bootloaders/refind/default.nix
index 9c36e55b8f24..600967e996c0 100644
--- a/nixpkgs/pkgs/tools/bootloaders/refind/default.nix
+++ b/nixpkgs/pkgs/tools/bootloaders/refind/default.nix
@@ -14,17 +14,16 @@ in
 
 stdenv.mkDerivation rec {
   pname = "refind";
-  version = "0.12.0";
-  srcName = "refind-src-${version}";
+  version = "0.13.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/refind/${version}/${srcName}.tar.gz";
-    sha256 = "1i5p3sir3mx4i2q5w78360xn2kbgsj8rmgrqvsvag1zzr5dm1f3v";
+    url = "mirror://sourceforge/project/refind/${version}/${pname}-src-${version}.tar.gz";
+    sha256 = "1yjni0mr3rqrrk4ynwb8i0whpqhd56cck4mxd97qmxn7wbr826i9";
   };
 
   patches = [
+    # Removes hardcoded toolchain for aarch64, allowing successful aarch64 builds.
     ./0001-toolchain.patch
-    ./0001-Fix-GCC-10-compile-problem.patch
   ];
 
   buildInputs = [ gnu-efi ];
@@ -44,6 +43,8 @@ stdenv.mkDerivation rec {
   buildFlags = [ "gnuefi" "fs_gnuefi" ];
 
   installPhase = ''
+    runHook preInstall
+
     install -d $out/bin/
     install -d $out/share/refind/drivers_${efiPlatform}/
     install -d $out/share/refind/tools_${efiPlatform}/
@@ -102,6 +103,8 @@ stdenv.mkDerivation rec {
     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
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/cd-dvd/bchunk/default.nix b/nixpkgs/pkgs/tools/cd-dvd/bchunk/default.nix
index 6affd3ec6620..df8ca279107e 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/bchunk/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/bchunk/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "12dxx98kbpc5z4dgni25280088bhlsb677rp832r82zzc1drpng7";
   };
 
-  makeFlags = lib.optionals stdenv.cc.isClang [ "CC=cc" "LD=cc" ];
+  makeFlags = lib.optionals stdenv.cc.isClang [ "CC=${stdenv.cc.targetPrefix}cc" "LD=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     install -Dt $out/bin bchunk
diff --git a/nixpkgs/pkgs/tools/cd-dvd/cdi2iso/default.nix b/nixpkgs/pkgs/tools/cd-dvd/cdi2iso/default.nix
index 9df7ab7657f1..26768747a46c 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/cdi2iso/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/cdi2iso/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "cdi2iso";
@@ -9,9 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "0fj2fxhpr26z649m0ph71378c41ljflpyk89g87x8r1mc4rbq3kh";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
+  '';
+
   installPhase = ''
-    mkdir -p $out/bin/
-    cp cdi2iso $out/bin/
+    mkdir -p $out/bin
+    cp cdi2iso $out/bin
   '';
 
   meta = with lib; {
@@ -19,6 +23,6 @@ stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/projects/cdi2iso.berlios";
     license = licenses.gpl2;
     maintainers = with maintainers; [ hrdinka ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/cd-dvd/cue2pops/default.nix b/nixpkgs/pkgs/tools/cd-dvd/cue2pops/default.nix
index 70ab6db07c2e..795589a64ec2 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/cue2pops/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/cue2pops/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
 
   dontConfigure = true;
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     install --directory --mode=755 $out/bin
diff --git a/nixpkgs/pkgs/tools/cd-dvd/uif2iso/default.nix b/nixpkgs/pkgs/tools/cd-dvd/uif2iso/default.nix
index d37cc649d386..ac0879e32172 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/uif2iso/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/uif2iso/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1v18fmlzhkkhv8xdc9dyvl8vamwg3ka4dsrg7vvmk1f2iczdx3dp";
   };
 
-  buildInputs = [unzip zlib];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [zlib];
 
   installPhase = ''
     make -C . prefix="$out" install;
diff --git a/nixpkgs/pkgs/tools/compression/bzip2/default.nix b/nixpkgs/pkgs/tools/compression/bzip2/default.nix
index bfaf359522f4..da37cf9fbd8c 100644
--- a/nixpkgs/pkgs/tools/compression/bzip2/default.nix
+++ b/nixpkgs/pkgs/tools/compression/bzip2/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bzip2";
-  version = "1.0.6.0.1";
+  version = "1.0.6.0.2";
 
   /* We use versions patched to use autotools style properly,
       saving lots of trouble. */
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
         "ftp://ftp.mplayerhq.hu/pub/linux/suse"
         "http://ftp.suse.com/pub" # the original patched version but slow
       ];
-    sha256 = "0b5b5p8c7bslc6fslcr1nj9136412v3qcvbg6yxi9argq9g72v8c";
+    sha256 = "sha256-FnhwNy4OHe8d5M6iYCClkxzcB/EHXg0veXwv43ZlxbA=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
@@ -46,6 +46,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "High-quality data compression program";
+    homepage = "https://www.sourceware.org/bzip2";
+    changelog = "https://sourceware.org/git/?p=bzip2.git;a=blob;f=CHANGES;hb=HEAD";
     license = licenses.bsdOriginal;
     platforms = platforms.all;
     maintainers = with maintainers; [ mic92 ];
diff --git a/nixpkgs/pkgs/tools/compression/dejsonlz4/default.nix b/nixpkgs/pkgs/tools/compression/dejsonlz4/default.nix
index 9e6f95aecb8e..07b6a5979a4f 100644
--- a/nixpkgs/pkgs/tools/compression/dejsonlz4/default.nix
+++ b/nixpkgs/pkgs/tools/compression/dejsonlz4/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     };
 
     buildPhase = ''
-      gcc -Wall -o dejsonlz4 src/dejsonlz4.c src/lz4.c
+      ${stdenv.cc.targetPrefix}cc -o dejsonlz4 src/dejsonlz4.c src/lz4.c
     '';
 
     installPhase = ''
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
       homepage = "https://github.com/avih/dejsonlz4";
       license = licenses.bsd2;
       maintainers = with maintainers; [ mt-caret ];
-      platforms = platforms.linux;
+      platforms = platforms.all;
     };
   }
diff --git a/nixpkgs/pkgs/tools/compression/dtrx/default.nix b/nixpkgs/pkgs/tools/compression/dtrx/default.nix
index 91d59a4de0f8..6c4f2f6e854e 100644
--- a/nixpkgs/pkgs/tools/compression/dtrx/default.nix
+++ b/nixpkgs/pkgs/tools/compression/dtrx/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, pythonPackages
+{ lib, fetchurl, python2Packages
 , gnutar, unzip, lhasa, rpm, binutils, cpio, gzip, p7zip, cabextract, unrar, unshield
 , bzip2, xz, lzip
 # unzip is handled by p7zip
@@ -11,7 +11,7 @@ let
   ++ lib.optional (unrarSupport) unrar
   ++ [ bzip2 xz lzip ]);
 
-in pythonPackages.buildPythonApplication rec {
+in python2Packages.buildPythonApplication rec {
   pname = "dtrx";
   version = "7.1";
 
@@ -24,6 +24,17 @@ in pythonPackages.buildPythonApplication rec {
     wrapProgram "$out/bin/dtrx" --prefix PATH : "${archivers}"
   '';
 
+  checkPhase = ''
+    python2 tests/compare.py
+  '';
+
+  checkInputs = with python2Packages; [
+    pyyaml
+  ];
+
+  # custom test suite fails
+  doCheck = false;
+
   meta = with lib; {
     description = "Do The Right Extraction: A tool for taking the hassle out of extracting archives";
     homepage = "https://brettcsmith.org/2007/dtrx/";
diff --git a/nixpkgs/pkgs/tools/compression/hacpack/default.nix b/nixpkgs/pkgs/tools/compression/hacpack/default.nix
new file mode 100644
index 000000000000..e60d483574bd
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/hacpack/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "hacpack";
+  version = "1.36";
+
+  src = fetchFromGitHub {
+    owner = "The-4n";
+    repo = "hacpack";
+    rev = "v${version}";
+    sha256 = "0d846l36w1n9rxv79fbyhl2zdbqhlgrvk21b9vzr9x77yki89ygs";
+  };
+
+  preConfigure = ''
+    mv config.mk.template config.mk
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./hacpack $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/The-4n/hacPack";
+    description = "Make and repack Nintendo Switch NCAs/NSPs";
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.ivar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/compression/hactool/default.nix b/nixpkgs/pkgs/tools/compression/hactool/default.nix
index 85b95a6f7694..c6e0a3a2851b 100644
--- a/nixpkgs/pkgs/tools/compression/hactool/default.nix
+++ b/nixpkgs/pkgs/tools/compression/hactool/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     mv config.mk.template config.mk
   '';
 
-  makeFlags = lib.optionals stdenv.isDarwin [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     install -D hactool $out/bin/hactool
diff --git a/nixpkgs/pkgs/tools/compression/lrzip/default.nix b/nixpkgs/pkgs/tools/compression/lrzip/default.nix
index 596ea0531664..9f4f66521f66 100644
--- a/nixpkgs/pkgs/tools/compression/lrzip/default.nix
+++ b/nixpkgs/pkgs/tools/compression/lrzip/default.nix
@@ -1,15 +1,19 @@
-{lib, stdenv, fetchurl, zlib, lzo, bzip2, nasm, perl}:
+{lib, stdenv, fetchurl, zlib, lzo, bzip2, lz4, nasm, perl}:
 
 stdenv.mkDerivation rec {
-  version = "0.631";
+  version = "0.641";
   pname = "lrzip";
 
   src = fetchurl {
-    url = "http://ck.kolivas.org/apps/lrzip/${pname}-${version}.tar.bz2";
-    sha256 = "0mb449vmmwpkalq732jdyginvql57nxyd31sszb108yps1lf448d";
+    url = "http://ck.kolivas.org/apps/lrzip/${pname}-${version}.tar.xz";
+    sha256 = "0ziyanspd96dc3lp2qdcylc7aq8dhb511jhqrhxvlp502fjqjqrc";
   };
 
-  buildInputs = [ zlib lzo bzip2 nasm perl ];
+  buildInputs = [ zlib lzo bzip2 lz4 nasm perl ];
+
+  configureFlags = [
+    "--disable-asm"
+  ];
 
   meta = {
     homepage = "http://ck.kolivas.org/apps/lrzip/";
diff --git a/nixpkgs/pkgs/tools/compression/ncompress/default.nix b/nixpkgs/pkgs/tools/compression/ncompress/default.nix
index 438e169d23c9..f580709495ed 100644
--- a/nixpkgs/pkgs/tools/compression/ncompress/default.nix
+++ b/nixpkgs/pkgs/tools/compression/ncompress/default.nix
@@ -1,15 +1,14 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "ncompress-4.2.4.6";
+  pname = "ncompress";
+  version = "5.0";
 
   builder = ./builder.sh;
 
-  patches = [ ./makefile.patch ];
-
   src = fetchurl {
-    url = "mirror://sourceforge/project/ncompress/${name}.tar.gz";
-    sha256 = "0sw3c7h80v9pagfqfx16ws9w2y3yrajrdk54bgiwdm0b0q06lyzv";
+    url = "mirror://sourceforge/project/ncompress/${pname}-${version}.tar.gz";
+    sha256 = "004r086c11sw9vg2j3srgxpz98w8pycjl33bk3pgqnd0s92igrn4";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/compression/ncompress/makefile.patch b/nixpkgs/pkgs/tools/compression/ncompress/makefile.patch
deleted file mode 100644
index b61b1272f8bd..000000000000
--- a/nixpkgs/pkgs/tools/compression/ncompress/makefile.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur ncompress-4.2.4.2.orig/Makefile.def ncompress-4.2.4.2/Makefile.def
---- ncompress-4.2.4.2.orig/Makefile.def	2007-09-06 22:28:42.000000000 -0500
-+++ ncompress-4.2.4.2/Makefile.def	2009-08-18 12:30:53.000000000 -0500
-@@ -31,7 +33,7 @@
- #	-DDEF_ERRNO=1				Define error (not defined in errno.h).
- #	-DMAXSEG_64K=1 -BITS=16		Support segment processsor like 80286.
- #
--options= $(CFLAGS) $(CPPFLAGS) -DDIRENT=1 -DUSERMEM=800000 -DREGISTERS=3
-+options= $(CFLAGS) $(CPPFLAGS) -DDIRENT=1 -DUSERMEM=800000 -DREGISTERS=3 -DNOFUNCDEF=1
- 
- # libary options
- LBOPT= $(LDFLAGS)
diff --git a/nixpkgs/pkgs/tools/compression/pbzx/default.nix b/nixpkgs/pkgs/tools/compression/pbzx/default.nix
index 2804ed7a0b57..8a57d483ab28 100644
--- a/nixpkgs/pkgs/tools/compression/pbzx/default.nix
+++ b/nixpkgs/pkgs/tools/compression/pbzx/default.nix
@@ -1,4 +1,4 @@
-{stdenv, lib, fetchFromGitHub, lzma, xar}:
+{stdenv, lib, fetchFromGitHub, xz, xar}:
 
 stdenv.mkDerivation rec {
   pname = "pbzx";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     rev = "v${version}";
     sha256 = "0bwd7wmnhpz1n5p39mh6asfyccj4cm06hwigslcwbb3pdwmvxc90";
   };
-  buildInputs = [ lzma xar ];
+  buildInputs = [ xz xar ];
   buildPhase = ''
     cc pbzx.c -llzma -lxar -o pbzx
   '';
diff --git a/nixpkgs/pkgs/tools/compression/pixz/default.nix b/nixpkgs/pkgs/tools/compression/pixz/default.nix
index 833dcae8850a..d0418ffdd60d 100644
--- a/nixpkgs/pkgs/tools/compression/pixz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/pixz/default.nix
@@ -1,7 +1,7 @@
 {
   lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config
   , asciidoc, libxslt, libxml2, docbook_xml_dtd_45, docbook_xsl
-  , libarchive, lzma
+  , libarchive, xz
 }:
 stdenv.mkDerivation rec {
   baseName = "pixz";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     autoconf automake libtool asciidoc libxslt libxml2
     docbook_xml_dtd_45 docbook_xsl
-    libarchive lzma
+    libarchive xz
   ];
   preBuild = ''
     echo "XML_CATALOG_FILES='$XML_CATALOG_FILES'"
diff --git a/nixpkgs/pkgs/tools/compression/pxz/default.nix b/nixpkgs/pkgs/tools/compression/pxz/default.nix
index e337ccdd4ae3..eb1f5d3570b1 100644
--- a/nixpkgs/pkgs/tools/compression/pxz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/pxz/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, xz, lzma }:
+{ lib, stdenv, fetchgit, xz }:
 
 let name = "pxz";
     version = "4.999.9beta+git";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "0na2kw8cf0qd8l1aywlv9m3xrxnqlcwxfdwp3f7x9vxwqx3k32kc";
   };
 
-  buildInputs = [ lzma ];
+  buildInputs = [ xz ];
 
   patches = [ ./_SC_ARG_MAX.patch ];
 
diff --git a/nixpkgs/pkgs/tools/compression/xar/default.nix b/nixpkgs/pkgs/tools/compression/xar/default.nix
index 5d7c2b092204..32b6c6d005cf 100644
--- a/nixpkgs/pkgs/tools/compression/xar/default.nix
+++ b/nixpkgs/pkgs/tools/compression/xar/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libxml2, lzma, openssl, zlib, bzip2, fts, autoconf }:
+{ lib, stdenv, fetchurl, libxml2, xz, openssl, zlib, bzip2, fts, autoconf }:
 
 stdenv.mkDerivation rec {
   version = "1.6.1";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ghmsbs6xwg1092v7pjcibmk5wkyifwxw6ygp08gfz25d2chhipf";
   };
 
-  buildInputs = [ libxml2 lzma openssl zlib bzip2 fts autoconf ];
+  buildInputs = [ libxml2 xz openssl zlib bzip2 fts autoconf ];
 
   prePatch = ''
     substituteInPlace configure.ac \
diff --git a/nixpkgs/pkgs/tools/compression/zdelta/builder.sh b/nixpkgs/pkgs/tools/compression/zdelta/builder.sh
deleted file mode 100644
index 03db413181d7..000000000000
--- a/nixpkgs/pkgs/tools/compression/zdelta/builder.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-source $stdenv/setup
-
-installPhase() {
-    mkdir -p $out/bin
-    cp -p zdc zdu $out/bin
-}
-
-genericBuild
diff --git a/nixpkgs/pkgs/tools/compression/zdelta/default.nix b/nixpkgs/pkgs/tools/compression/zdelta/default.nix
index 46760c913060..b30a43f33c13 100644
--- a/nixpkgs/pkgs/tools/compression/zdelta/default.nix
+++ b/nixpkgs/pkgs/tools/compression/zdelta/default.nix
@@ -1,16 +1,24 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "zdelta-2.1";
-  builder = ./builder.sh;
+  pname = "zdelta";
+  version = "2.1";
+
   src = fetchurl {
-    url = "${meta.homepage}/downloads/${name}.tar.gz";
-    sha256 = "0k6y0r9kv5qiglnr2j4a0yvfynjkvm0pyv8ly28j0pr3w6rbxrh3";
+    url = "https://web.archive.org/web/20160316212948/http://cis.poly.edu/zdelta/downloads/zdelta-2.1.tar.gz";
+    sha256 = "sha256-WiQKWxJkINIwRBcdiuVLMDiupQ8gOsiXOEZvHDa5iFg=";
   };
 
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -p zdc zdu $out/bin
+  '';
+
   meta = with lib; {
-    homepage = "http://cis.poly.edu/zdelta";
-    platforms = platforms.linux;
+    homepage = "https://web.archive.org/web/20160316212948/http://cis.poly.edu/zdelta/";
+    platforms = platforms.all;
     license = licenses.zlib;
   };
 }
diff --git a/nixpkgs/pkgs/tools/compression/zstd/default.nix b/nixpkgs/pkgs/tools/compression/zstd/default.nix
index e1437e3843db..6394ea3338d1 100644
--- a/nixpkgs/pkgs/tools/compression/zstd/default.nix
+++ b/nixpkgs/pkgs/tools/compression/zstd/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zstd";
-  version = "1.4.8";
+  version = "1.4.9";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "zstd";
     rev = "v${version}";
-    sha256 = "018zgigp5xlrb4mgshgrvns0cfbhhcg89cifbjj4rv6s3n9riphw";
+    sha256 = "18alxnym54gswsmsr5ra82q4k1q5fyzsyx0jykb2sk2nkpvx7334";
   };
 
   nativeBuildInputs = [ cmake ]
@@ -21,10 +21,10 @@ stdenv.mkDerivation rec {
   buildInputs = lib.optional stdenv.hostPlatform.isUnix bash;
 
   patches = [
+    # This patches makes sure we do not attempt to use the MD5 implementation
+    # of the host platform when running the tests
     ./playtests-darwin.patch
-  ] # This I didn't upstream because if you use posix threads with MinGW it will
-    # work fine, and I'm not sure how to write the condition.
-    ++ lib.optional stdenv.hostPlatform.isWindows ./mcfgthreads-no-pthread.patch;
+  ];
 
   postPatch = lib.optionalString (!static) ''
     substituteInPlace build/cmake/CMakeLists.txt \
diff --git a/nixpkgs/pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch b/nixpkgs/pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch
deleted file mode 100644
index 69921c0c7bad..000000000000
--- a/nixpkgs/pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/programs/Makefile b/programs/Makefile
-index 7882fe8c..1e8237bb 100644
---- a/programs/Makefile
-+++ b/programs/Makefile
-@@ -107,7 +107,7 @@ HAVE_THREAD := $(shell [ "$(HAVE_PTHREAD)" -eq "1" -o -n "$(filter Windows%,$(OS
- ifeq ($(HAVE_THREAD), 1)
- THREAD_MSG := ==> building with threading support
- THREAD_CPP := -DZSTD_MULTITHREAD
--THREAD_LD := -pthread
-+THREAD_LD :=
- else
- THREAD_MSG := $(NO_THREAD_MSG)
- endif
diff --git a/nixpkgs/pkgs/tools/compression/zstd/playtests-darwin.patch b/nixpkgs/pkgs/tools/compression/zstd/playtests-darwin.patch
index a98365eec33a..f829c93c7059 100644
--- a/nixpkgs/pkgs/tools/compression/zstd/playtests-darwin.patch
+++ b/nixpkgs/pkgs/tools/compression/zstd/playtests-darwin.patch
@@ -1,18 +1,28 @@
 --- a/tests/playTests.sh
 +++ b/tests/playTests.sh
-@@ -109,5 +109,2 @@ esac
+@@ -112,17 +112,10 @@ case "$OS" in
+ esac
+ 
  case "$UNAME" in
 -  Darwin) MD5SUM="md5 -r" ;;
 -  FreeBSD) MD5SUM="gmd5sum" ;;
+-  NetBSD) MD5SUM="md5 -n" ;;
 -  OpenBSD) MD5SUM="md5" ;;
    *) MD5SUM="md5sum" ;;
-@@ -116,5 +113,2 @@ esac
+ esac
+ 
  MTIME="stat -c %Y"
 -case "$UNAME" in
--    Darwin | FreeBSD | OpenBSD) MTIME="stat -f %m" ;;
+-    Darwin | FreeBSD | OpenBSD | NetBSD) MTIME="stat -f %m" ;;
 -esac
  
-@@ -752,3 +746,2 @@ zstd -d --rm dirTestDict/*.zst -D tmpDictC  # note : use internal checksum by de
+ DIFF="diff"
+ case "$UNAME" in
+@@ -842,7 +835,6 @@ $MD5SUM dirTestDict/* > tmph1
+ zstd -f --rm dirTestDict/* -D tmpDictC
+ zstd -d --rm dirTestDict/*.zst -D tmpDictC  # note : use internal checksum by default
  case "$UNAME" in
 -  Darwin) println "md5sum -c not supported on OS-X : test skipped" ;;  # not compatible with OS-X's md5
    *) $MD5SUM -c tmph1 ;;
+ esac
+ rm -rf dirTestDict
\ No newline at end of file
diff --git a/nixpkgs/pkgs/tools/filesystems/apfs-fuse/default.nix b/nixpkgs/pkgs/tools/filesystems/apfs-fuse/default.nix
index adf845f943ea..b5d08770ed78 100644
--- a/nixpkgs/pkgs/tools/filesystems/apfs-fuse/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/apfs-fuse/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "apfs-fuse-unstable";
-  version = "2019-07-23";
+  version = "2020-09-28";
 
   src = fetchFromGitHub {
     owner  = "sgan81";
     repo   = "apfs-fuse";
-    rev    = "309ecb030f38edac4c10fa741a004c5eb7a23e15";
-    sha256 = "0wq6rlqi00m5dp5gbzy65i1plm40j6nsm7938zvfgx5laal4wzr2";
+    rev    = "ee71aa5c87c0831c1ae17048951fe9cd7579c3db";
+    sha256 = "0wvsx708km1lnhghny5y69k694x0zy8vlbndswkb7sq81j1r6kwx";
     fetchSubmodules = true;
   };
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage    = "https://github.com/sgan81/apfs-fuse";
     description = "FUSE driver for APFS (Apple File System)";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ ealasu ];
     platforms   = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix b/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix
index cc6916869b6f..12052100db32 100644
--- a/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, fuse, pkg-config }:
 
 stdenv.mkDerivation rec {
-  version = "1.14.9";
+  version = "1.15.1";
   pname = "bindfs";
 
   src = fetchurl {
     url    = "https://bindfs.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0fnij365dn4ihkpfc92x63inxxwpminzffyj55krp1w02canpl5n";
+    sha256 = "sha256-BN01hKbN+a9DRNQDxiGFyp+rMc465aJdAQG8EJNsaKs=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A FUSE filesystem for mounting a directory to another location";
     homepage    = "https://bindfs.org";
-    license     = lib.licenses.gpl2;
-    maintainers = with lib.maintainers; [ lovek323 ];
+    license     = lib.licenses.gpl2Only;
+    maintainers = with lib.maintainers; [ lovek323 lovesegfault ];
     platforms   = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix b/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
index ec9cd7ca61ae..0e135d41a4be 100644
--- a/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "5.10";
+  version = "5.11";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "sha256-5xoNbdUE86XZV/zpowKB62Hs+ZHIrzFf4AYaG5eh0CE=";
+    sha256 = "sha256-1BlhsKkhYMgPiUrZoYgoIoicLh0ITL8+CLjCFKXPATc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/filesystems/catcli/default.nix b/nixpkgs/pkgs/tools/filesystems/catcli/default.nix
index 2f179a151d1e..be9349daa27c 100644
--- a/nixpkgs/pkgs/tools/filesystems/catcli/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/catcli/default.nix
@@ -7,13 +7,13 @@
 buildPythonApplication rec {
 
   pname = "catcli";
-  version = "0.6.0";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "deadc0de6";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0myhvflph4fayl2bg8m9a7prh5pcnvnb75p0jb4jpmbx7jyn7ihp";
+    sha256 = "0704022gbm987q6x6vcflq4b4p4hvcqm5ikiyndy5n8fj1q8lq95";
   };
 
   propagatedBuildInputs = [ docopt anytree ];
@@ -25,6 +25,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/deadc0de6/catcli";
     license = licenses.gpl3;
     maintainers = with maintainers; [ petersjt014 ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
index 61cc4573693d..aaa5806d402a 100644
--- a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
@@ -9,10 +9,11 @@
 , babeltrace, gperf
 , gtest
 , cunit, snappy
-, rocksdb, makeWrapper
+, makeWrapper
 , leveldb, oathToolkit
 , libnl, libcap_ng
 , rdkafka
+, nixosTests
 
 # Optional Dependencies
 , yasm ? null, fcgi ? null, expat ? null
@@ -146,7 +147,7 @@ in rec {
     buildInputs = cryptoLibsMap.${cryptoStr} ++ [
       boost ceph-python-env libxml2 optYasm optLibatomic_ops optLibs3
       malloc zlib openldap lttng-ust babeltrace gperf gtest cunit
-      snappy rocksdb lz4 oathToolkit leveldb libnl libcap_ng rdkafka
+      snappy lz4 oathToolkit leveldb libnl libcap_ng rdkafka
     ] ++ lib.optionals stdenv.isLinux [
       linuxHeaders util-linux libuuid udev keyutils optLibaio optLibxfs optZfs
       # ceph 14
@@ -171,12 +172,10 @@ in rec {
 
     cmakeFlags = [
       "-DWITH_PYTHON3=ON"
-      "-DWITH_SYSTEM_ROCKSDB=OFF"
+      "-DWITH_SYSTEM_ROCKSDB=OFF"  # breaks Bluestore
       "-DCMAKE_INSTALL_DATADIR=${placeholder "lib"}/lib"
 
-
       "-DWITH_SYSTEM_BOOST=ON"
-      "-DWITH_SYSTEM_ROCKSDB=ON"
       "-DWITH_SYSTEM_GTEST=ON"
       "-DMGR_PYTHON_VERSION=${ceph-python-env.python.pythonVersion}"
       "-DWITH_SYSTEMD=OFF"
@@ -201,6 +200,7 @@ in rec {
     meta = getMeta "Distributed storage system";
 
     passthru.version = version;
+    passthru.tests = { inherit (nixosTests) ceph-single-node ceph-multi-node ceph-single-node-bluestore; };
   };
 
   ceph-client = runCommand "ceph-client-${version}" {
diff --git a/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix b/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix
index 2aa63208e008..a439e29358f7 100644
--- a/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/derikz/cpcfs/" ;
     license = licenses.bsd2;
     maintainers = [ ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/cryfs/default.nix b/nixpkgs/pkgs/tools/filesystems/cryfs/default.nix
index 3777c4e7cb16..eec257c44b73 100644
--- a/nixpkgs/pkgs/tools/filesystems/cryfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/cryfs/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch
-, cmake, pkg-config, python, gtest
+, cmake, pkg-config, python3, gtest
 , boost, cryptopp, curl, fuse, openssl
 }:
 
@@ -44,9 +44,11 @@ stdenv.mkDerivation rec {
       --replace "(4.5L*1024*1024*1024)" "(0.5L*1024*1024*1024)"
   '';
 
-  nativeBuildInputs = [ cmake gtest pkg-config python ];
+  nativeBuildInputs = [ cmake pkg-config python3 ];
 
-  buildInputs = [ boost cryptopp curl fuse openssl ];
+  strictDeps = true;
+
+  buildInputs = [ boost cryptopp curl fuse openssl gtest ];
 
   cmakeFlags = [
     "-DCRYFS_UPDATE_CHECKS:BOOL=FALSE"
diff --git a/nixpkgs/pkgs/tools/filesystems/e2tools/default.nix b/nixpkgs/pkgs/tools/filesystems/e2tools/default.nix
index 8621298275e4..d448b0f67b5f 100644
--- a/nixpkgs/pkgs/tools/filesystems/e2tools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/e2tools/default.nix
@@ -1,21 +1,23 @@
-{ lib, stdenv, fetchurl, pkg-config, e2fsprogs }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, e2fsprogs }:
 
 stdenv.mkDerivation rec {
   pname = "e2tools";
-  version = "0.0.16";
+  version = "0.1.0";
 
-  src = fetchurl {
-    url = "http://home.earthlink.net/~k_sheff/sw/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "16wlc54abqz06dpipjdkw58bncpkxlj5f55lkzy07k3cg0bqwg2f";
+  src = fetchFromGitHub {
+    owner = "e2tools";
+    repo = "e2tools";
+    rev = "6ee7c2d9015dce7b90c3388096602e307e3bd790";
+    sha256 = "0nlqynrhj6ww7bnfhhfcx6bawii8iyvhgp6vz60zbnpgd68ifcx7";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ e2fsprogs ];
 
   enableParallelBuilding = true;
 
   meta = {
-    homepage = "http://home.earthlink.net/~k_sheff/sw/e2tools/";
+    homepage = "https://e2tools.github.io/";
     description = "Utilities to read/write/manipulate files in an ext2/ext3 filesystem";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/tools/filesystems/fuse-7z-ng/default.nix b/nixpkgs/pkgs/tools/filesystems/fuse-7z-ng/default.nix
index aaffc70e10dd..8a0671957c35 100644
--- a/nixpkgs/pkgs/tools/filesystems/fuse-7z-ng/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/fuse-7z-ng/default.nix
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "17v1gcmg5q661b047zxjar735i4d3508dimw1x3z1pk4d1zjhp3x";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ fuse autoconf automake makeWrapper ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ fuse autoconf automake ];
 
   preConfigure = "./autogen.sh";
 
diff --git a/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index 5522b63922a4..3631e52d87d1 100644
--- a/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fuse-overlayfs";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lus+1hkc4GxrTxtdfDJ0XqJp37dcjKp4/sI3CEh8cYA=";
+    sha256 = "sha256-/gdmrQhYsE4a/1sxtJ5IfVUWjh08wTVrOr4V7Fkn1i0=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/filesystems/fwanalyzer/default.nix b/nixpkgs/pkgs/tools/filesystems/fwanalyzer/default.nix
new file mode 100644
index 000000000000..002668173902
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/fwanalyzer/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, e2tools
+, makeWrapper
+, mtools
+}:
+
+buildGoModule rec {
+  pname = "fwanalyzer";
+  version = "1.4.3";
+
+  src = fetchFromGitHub {
+    owner = "cruise-automation";
+    repo = pname;
+    rev = version;
+    sha256 = "1pj6s7lzw7490488a30pzvqy2riprfnhb4nzxm6sh2nsp51xalzv";
+  };
+
+  vendorSha256 = "1cjbqx75cspnkx7fgc665q920dsxnsdhqgyiawkvx0i8akczbflw";
+
+  subPackages = [ "cmd/${pname}" ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/fwanalyzer" --prefix PATH : "${lib.makeBinPath [ e2tools mtools ]}"
+  '';
+
+  # The tests requires an additional setup (unpacking images, etc.)
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Tool to analyze filesystem images";
+    homepage = "https://github.com/cruise-automation/fwanalyzer";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix b/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
index d820e5e68e2a..e39a3d33dacb 100644
--- a/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "gcsfuse";
-  version = "0.32.0";
+  version = "0.33.2";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "09k7479gd9rlzmxhcvc1b3ajy8frzd6881vnlvk3z9818n4aq7qc";
+    sha256 = "sha256-y40JWfD6selBo2IP7VgASmlNUDhXwOdQIRlRHPi3Nh0=";
   };
 
   goPackagePath = "github.com/googlecloudplatform/gcsfuse";
diff --git a/nixpkgs/pkgs/tools/filesystems/idsk/default.nix b/nixpkgs/pkgs/tools/filesystems/idsk/default.nix
index 12a0af7ea4d3..0b7ae339053c 100644
--- a/nixpkgs/pkgs/tools/filesystems/idsk/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/idsk/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/cpcsdk/idsk" ;
     license = licenses.mit;
     maintainers = [ ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/irods/common.nix b/nixpkgs/pkgs/tools/filesystems/irods/common.nix
index 7b7eb7ba05a9..77c05a616662 100644
--- a/nixpkgs/pkgs/tools/filesystems/irods/common.nix
+++ b/nixpkgs/pkgs/tools/filesystems/irods/common.nix
@@ -1,10 +1,10 @@
-{ lib, stdenv, bzip2, zlib, autoconf, automake, cmake, gnumake, help2man , texinfo, libtool , cppzmq , libarchive, avro-cpp, boost, jansson, zeromq, openssl, pam, libiodbc, kerberos, gcc, libcxx, which, catch2 }:
+{ lib, stdenv, bzip2, zlib, autoconf, automake, cmake, gnumake, help2man , texinfo, libtool , cppzmq , libarchive, avro-cpp, boost, jansson, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2 }:
 
 # Common attributes of irods packages
 
 {
   nativeBuildInputs = [ autoconf automake cmake gnumake help2man texinfo which gcc ];
-  buildInputs = [ bzip2 zlib libtool cppzmq libarchive avro-cpp jansson zeromq openssl pam libiodbc kerberos boost libcxx catch2 ];
+  buildInputs = [ bzip2 zlib libtool cppzmq libarchive avro-cpp jansson zeromq openssl pam libiodbc libkrb5 boost libcxx catch2 ];
 
   cmakeFlags = [
     "-DIRODS_EXTERNALS_FULLPATH_CLANG=${stdenv.cc}"
diff --git a/nixpkgs/pkgs/tools/filesystems/irods/default.nix b/nixpkgs/pkgs/tools/filesystems/irods/default.nix
index fe7a0d73f673..cbc9f19c664a 100644
--- a/nixpkgs/pkgs/tools/filesystems/irods/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/irods/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, bzip2, zlib, autoconf, automake, cmake, gnumake, help2man , texinfo, libtool , cppzmq , libarchive, avro-cpp_llvm, boost, jansson, zeromq, openssl , pam, libiodbc, kerberos, gcc, libcxx, which, catch2 }:
+{ lib, stdenv, fetchFromGitHub, bzip2, zlib, autoconf, automake, cmake, gnumake, help2man , texinfo, libtool , cppzmq , libarchive, avro-cpp_llvm, boost, jansson, zeromq, openssl , pam, libiodbc, libkrb5, gcc, libcxx, which, catch2 }:
 
 let
   avro-cpp=avro-cpp_llvm;
@@ -7,7 +7,7 @@ let
   common = import ./common.nix {
     inherit lib stdenv bzip2 zlib autoconf automake cmake gnumake
             help2man texinfo libtool cppzmq libarchive jansson
-            zeromq openssl pam libiodbc kerberos gcc libcxx
+            zeromq openssl pam libiodbc libkrb5 gcc libcxx
             boost avro-cpp which catch2;
   };
 in rec {
diff --git a/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix b/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix
index 766ac1f82ea6..a9e0cd12d9d4 100644
--- a/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , cmake
@@ -45,5 +46,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl3;
     maintainers = with maintainers; [ rushmorem shamilton ];
+    # 'fprintf' was not declared in this scope
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix b/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix
index 368f62f21969..6f0a40d76afe 100644
--- a/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mergerfs";
-  version = "2.32.2";
+  version = "2.32.4";
 
   src = fetchFromGitHub {
     owner = "trapexit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ybDVBcPkjsW2OxNxUmn5hG/qLEjxF9vqR8pZdb9tIBs=";
+    sha256 = "sha256-VTnAAJWya1JLZA0gjzpUsdnO5XQP8sJzEP8qHBH+t5k=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/filesystems/mtdutils/default.nix b/nixpkgs/pkgs/tools/filesystems/mtdutils/default.nix
index d753e7c52042..cb40e72c30be 100644
--- a/nixpkgs/pkgs/tools/filesystems/mtdutils/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/mtdutils/default.nix
@@ -2,29 +2,28 @@
 
 stdenv.mkDerivation rec {
   pname = "mtd-utils";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchurl {
     url = "ftp://ftp.infradead.org/pub/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "1lijl89l7hljx8xx70vrz9srd3h41v5gh4b0lvqnlv831yvyh5cd";
+    sha256 = "sha256-itTF80cW1AZGqihySi9WFtMlpvEZJU+RTiaXbx926dY=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ] ++ lib.optional doCheck cmocka;
   buildInputs = [ acl libuuid lzo zlib zstd ];
 
-  configureFlags = [
-    (lib.enableFeature doCheck "unit-tests")
-    (lib.enableFeature doCheck "tests")
+  configureFlags = with lib; [
+    (enableFeature doCheck "unit-tests")
+    (enableFeature doCheck "tests")
   ];
-  enableParallelBuilding = true;
 
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
 
-  meta = {
+  meta = with lib; {
     description = "Tools for MTD filesystems";
-    license = lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
     homepage = "http://www.linux-mtd.infradead.org/";
-    maintainers = with lib.maintainers; [ viric ];
-    platforms = with lib.platforms; linux;
+    maintainers = with maintainers; [ viric superherointj ];
+    platforms = with platforms; linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/reiser4progs/default.nix b/nixpkgs/pkgs/tools/filesystems/reiser4progs/default.nix
index 46c0120f64c4..961a286729a8 100644
--- a/nixpkgs/pkgs/tools/filesystems/reiser4progs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/reiser4progs/default.nix
@@ -1,13 +1,13 @@
 {lib, stdenv, fetchurl, libaal}:
 
-let version = "2.0.1"; in
+let version = "2.0.4"; in
 stdenv.mkDerivation rec {
   pname = "reiser4progs";
   inherit version;
 
   src = fetchurl {
     url = "mirror://sourceforge/reiser4/reiser4-utils/${pname}-${version}.tar.gz";
-    sha256 = "1r7m95mnp6xmp1j5k99jhmz6g9y2qq7cghlmdxsfbr3xviqfs45d";
+    sha256 = "sha256-WmIkISnRp5BngSfPEKY95HVEt5TBtPKu+RMBwlLsnuA=";
   };
 
   buildInputs = [libaal];
diff --git a/nixpkgs/pkgs/tools/filesystems/rmfuse/default.nix b/nixpkgs/pkgs/tools/filesystems/rmfuse/default.nix
new file mode 100644
index 000000000000..b7850f7023fe
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/rmfuse/default.nix
@@ -0,0 +1,26 @@
+{ poetry2nix, pkgs, lib }:
+
+let
+  pythonPackages = (poetry2nix.mkPoetryPackages {
+    projectDir = ./.;
+    overrides = [
+      poetry2nix.defaultPoetryOverrides
+      (import ./poetry-git-overlay.nix { inherit pkgs; })
+      (self: super: {
+
+        rmfuse = super.rmfuse.overridePythonAttrs(old: {
+          meta = old.meta // {
+            description = "RMfuse provides access to your reMarkable Cloud files in the form of a FUSE filesystem.";
+            longDescription = ''
+              RMfuse provides access to your reMarkable Cloud files in the form of a FUSE filesystem. These files are exposed either in their original format, or as PDF files that contain your annotations. This lets you manage files in the reMarkable Cloud using the same tools you use on your local system.
+            '';
+            license = lib.licenses.mit;
+            homepage = "https://github.com/rschroll/rmfuse";
+            maintainers = [ lib.maintainers.adisbladis ];
+          };
+        });
+
+      })
+    ];
+  }).python.pkgs;
+in pythonPackages.rmfuse
diff --git a/nixpkgs/pkgs/tools/filesystems/rmfuse/poetry-git-overlay.nix b/nixpkgs/pkgs/tools/filesystems/rmfuse/poetry-git-overlay.nix
new file mode 100644
index 000000000000..8fa2bc7a0101
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/rmfuse/poetry-git-overlay.nix
@@ -0,0 +1,14 @@
+{ pkgs }:
+self: super: {
+
+  rmfuse = super.rmfuse.overridePythonAttrs (
+    _: {
+      src = pkgs.fetchgit {
+        url = "https://github.com/rschroll/rmfuse.git";
+        rev = "fca03bcdd6dc118f2ba981410ec9dff7f7cb88ec";
+        sha256 = "0i7dvvi2bp3hydjpzvr7vg10bx0wxz87spf7pg455aga8d0qhxgk";
+      };
+    }
+  );
+
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/rmfuse/poetry.lock b/nixpkgs/pkgs/tools/filesystems/rmfuse/poetry.lock
new file mode 100644
index 000000000000..920fbddd0b63
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/rmfuse/poetry.lock
@@ -0,0 +1,548 @@
+[[package]]
+name = "anyio"
+version = "2.2.0"
+description = "High level compatibility layer for multiple asynchronous event loop implementations"
+category = "main"
+optional = false
+python-versions = ">=3.6.2"
+
+[package.dependencies]
+idna = ">=2.8"
+sniffio = ">=1.1"
+
+[package.extras]
+curio = ["curio (>=1.4)"]
+doc = ["sphinx-rtd-theme", "sphinx-autodoc-typehints (>=1.2.0)"]
+test = ["coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "pytest (>=6.0)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"]
+trio = ["trio (>=0.16)"]
+
+[[package]]
+name = "asks"
+version = "2.4.12"
+description = "asks - async http"
+category = "main"
+optional = false
+python-versions = ">= 3.6.2"
+
+[package.dependencies]
+anyio = ">=2.0,<3.0"
+async_generator = "*"
+h11 = "*"
+
+[[package]]
+name = "async-generator"
+version = "1.10"
+description = "Async generators and context managers for Python 3.5+"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "attrs"
+version = "20.3.0"
+description = "Classes Without Boilerplate"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.extras]
+dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"]
+docs = ["furo", "sphinx", "zope.interface"]
+tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
+tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"]
+
+[[package]]
+name = "bidict"
+version = "0.21.2"
+description = "The bidirectional mapping library for Python."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+coverage = ["coverage (<6)", "pytest-cov (<3)"]
+dev = ["setuptools-scm", "hypothesis (<6)", "py (<2)", "pytest (<7)", "pytest-benchmark (>=3.2.0,<4)", "sortedcollections (<2)", "sortedcontainers (<3)", "Sphinx (<4)", "sphinx-autodoc-typehints (<2)", "coverage (<6)", "pytest-cov (<3)", "pre-commit (<3)", "tox (<4)"]
+docs = ["Sphinx (<4)", "sphinx-autodoc-typehints (<2)"]
+precommit = ["pre-commit (<3)"]
+test = ["hypothesis (<6)", "py (<2)", "pytest (<7)", "pytest-benchmark (>=3.2.0,<4)", "sortedcollections (<2)", "sortedcontainers (<3)", "Sphinx (<4)", "sphinx-autodoc-typehints (<2)"]
+
+[[package]]
+name = "cffi"
+version = "1.14.5"
+description = "Foreign Function Interface for Python calling C code."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+pycparser = "*"
+
+[[package]]
+name = "cssselect2"
+version = "0.4.1"
+description = "cssselect2"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+tinycss2 = "*"
+webencodings = "*"
+
+[package.extras]
+doc = ["sphinx", "sphinx-rtd-theme"]
+test = ["pytest", "pytest-cov", "pytest-flake8", "pytest-isort", "coverage"]
+
+[[package]]
+name = "h11"
+version = "0.12.0"
+description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "idna"
+version = "3.1"
+description = "Internationalized Domain Names in Applications (IDNA)"
+category = "main"
+optional = false
+python-versions = ">=3.4"
+
+[[package]]
+name = "lxml"
+version = "4.6.2"
+description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*"
+
+[package.extras]
+cssselect = ["cssselect (>=0.7)"]
+html5 = ["html5lib"]
+htmlsoup = ["beautifulsoup4"]
+source = ["Cython (>=0.29.7)"]
+
+[[package]]
+name = "outcome"
+version = "1.1.0"
+description = "Capture the outcome of Python function calls."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+attrs = ">=19.2.0"
+
+[[package]]
+name = "pdfrw"
+version = "0.4"
+description = "PDF file reader/writer library"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "pillow"
+version = "8.1.2"
+description = "Python Imaging Library (Fork)"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "pycparser"
+version = "2.20"
+description = "C parser in Python"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "pyfuse3"
+version = "3.2.0"
+description = "Python 3 bindings for libfuse 3 with async I/O support"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+trio = ">=0.15"
+
+[[package]]
+name = "reportlab"
+version = "3.5.65"
+description = "The Reportlab Toolkit"
+category = "main"
+optional = false
+python-versions = ">=2.7, >=3.6, <4"
+
+[package.dependencies]
+pillow = ">=4.0.0"
+
+[package.extras]
+rlpycairo = ["rlPyCairo (>=0.0.5)"]
+
+[[package]]
+name = "rmcl"
+version = "0.4.0"
+description = "reMarkable Cloud Library"
+category = "main"
+optional = false
+python-versions = ">=3.7,<4.0"
+
+[package.dependencies]
+asks = ">=2.4.12,<3.0.0"
+trio = ">=0.18.0,<0.19.0"
+xdg = ">=5.0.1,<6.0.0"
+
+[[package]]
+name = "rmfuse"
+version = "0.2.1"
+description = ""
+category = "main"
+optional = false
+python-versions = "^3.7"
+develop = false
+
+[package.dependencies]
+bidict = "^0.21.2"
+pyfuse3 = {version = "^3.2.0", optional = true}
+rmcl = "^0.4.0"
+rmrl = "^0.2.1"
+xdg = "^5.0.1"
+
+[package.extras]
+pyfuse3 = ["pyfuse3 (>=3.2.0,<4.0.0)"]
+llfuse = ["llfuse (>=1.4.1,<2.0.0)"]
+
+[package.source]
+type = "git"
+url = "https://github.com/rschroll/rmfuse.git"
+reference = "master"
+resolved_reference = "fca03bcdd6dc118f2ba981410ec9dff7f7cb88ec"
+
+[[package]]
+name = "rmrl"
+version = "0.2.1"
+description = "Render reMarkable documents to PDF"
+category = "main"
+optional = false
+python-versions = ">=3.7,<4.0"
+
+[package.dependencies]
+pdfrw = ">=0.4,<0.5"
+reportlab = ">=3.5.59,<4.0.0"
+svglib = ">=1.0.1,<2.0.0"
+xdg = ">=5.0.1,<6.0.0"
+
+[[package]]
+name = "sniffio"
+version = "1.2.0"
+description = "Sniff out which async library your code is running under"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "sortedcontainers"
+version = "2.3.0"
+description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "svglib"
+version = "1.0.1"
+description = "A pure-Python library for reading and converting SVG"
+category = "main"
+optional = false
+python-versions = ">=3"
+
+[package.dependencies]
+cssselect2 = ">=0.2.0"
+lxml = "*"
+reportlab = "*"
+tinycss2 = ">=0.6.0"
+
+[[package]]
+name = "tinycss2"
+version = "1.1.0"
+description = "tinycss2"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+webencodings = ">=0.4"
+
+[package.extras]
+doc = ["sphinx", "sphinx-rtd-theme"]
+test = ["pytest", "pytest-cov", "pytest-flake8", "pytest-isort", "coverage"]
+
+[[package]]
+name = "trio"
+version = "0.18.0"
+description = "A friendly Python library for async concurrency and I/O"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+async-generator = ">=1.9"
+attrs = ">=19.2.0"
+cffi = {version = ">=1.14", markers = "os_name == \"nt\" and implementation_name != \"pypy\""}
+idna = "*"
+outcome = "*"
+sniffio = "*"
+sortedcontainers = "*"
+
+[[package]]
+name = "webencodings"
+version = "0.5.1"
+description = "Character encoding aliases for legacy web content"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "xdg"
+version = "5.0.1"
+description = "Variables defined by the XDG Base Directory Specification"
+category = "main"
+optional = false
+python-versions = ">=3.6,<4.0"
+
+[metadata]
+lock-version = "1.1"
+python-versions = "^3.8"
+content-hash = "3da90f3013f1220c9081c0a11dac7d8cd05c5a47ebda40fbb4357e44503e99a3"
+
+[metadata.files]
+anyio = [
+    {file = "anyio-2.2.0-py3-none-any.whl", hash = "sha256:aa3da546ed17f097ca876c78024dea380a3b7fa80759abfdda59f12176a3dac8"},
+    {file = "anyio-2.2.0.tar.gz", hash = "sha256:4a41c5b3a65ed92e469d51b6fba3779301850ea2e352afcf9e36c46f21ee14a9"},
+]
+asks = [
+    {file = "asks-2.4.12.tar.gz", hash = "sha256:38de944eb350e7e4e3a918055fa8ff033da5f7b5ff385c1160a2d6b9d84783b0"},
+]
+async-generator = [
+    {file = "async_generator-1.10-py3-none-any.whl", hash = "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b"},
+    {file = "async_generator-1.10.tar.gz", hash = "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144"},
+]
+attrs = [
+    {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"},
+    {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"},
+]
+bidict = [
+    {file = "bidict-0.21.2-py2.py3-none-any.whl", hash = "sha256:929d056e8d0d9b17ceda20ba5b24ac388e2a4d39802b87f9f4d3f45ecba070bf"},
+    {file = "bidict-0.21.2.tar.gz", hash = "sha256:4fa46f7ff96dc244abfc437383d987404ae861df797e2fd5b190e233c302be09"},
+]
+cffi = [
+    {file = "cffi-1.14.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:bb89f306e5da99f4d922728ddcd6f7fcebb3241fc40edebcb7284d7514741991"},
+    {file = "cffi-1.14.5-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:34eff4b97f3d982fb93e2831e6750127d1355a923ebaeeb565407b3d2f8d41a1"},
+    {file = "cffi-1.14.5-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99cd03ae7988a93dd00bcd9d0b75e1f6c426063d6f03d2f90b89e29b25b82dfa"},
+    {file = "cffi-1.14.5-cp27-cp27m-win32.whl", hash = "sha256:65fa59693c62cf06e45ddbb822165394a288edce9e276647f0046e1ec26920f3"},
+    {file = "cffi-1.14.5-cp27-cp27m-win_amd64.whl", hash = "sha256:51182f8927c5af975fece87b1b369f722c570fe169f9880764b1ee3bca8347b5"},
+    {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:43e0b9d9e2c9e5d152946b9c5fe062c151614b262fda2e7b201204de0b99e482"},
+    {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:cbde590d4faaa07c72bf979734738f328d239913ba3e043b1e98fe9a39f8b2b6"},
+    {file = "cffi-1.14.5-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:5de7970188bb46b7bf9858eb6890aad302577a5f6f75091fd7cdd3ef13ef3045"},
+    {file = "cffi-1.14.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:a465da611f6fa124963b91bf432d960a555563efe4ed1cc403ba5077b15370aa"},
+    {file = "cffi-1.14.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:d42b11d692e11b6634f7613ad8df5d6d5f8875f5d48939520d351007b3c13406"},
+    {file = "cffi-1.14.5-cp35-cp35m-win32.whl", hash = "sha256:72d8d3ef52c208ee1c7b2e341f7d71c6fd3157138abf1a95166e6165dd5d4369"},
+    {file = "cffi-1.14.5-cp35-cp35m-win_amd64.whl", hash = "sha256:29314480e958fd8aab22e4a58b355b629c59bf5f2ac2492b61e3dc06d8c7a315"},
+    {file = "cffi-1.14.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3d3dd4c9e559eb172ecf00a2a7517e97d1e96de2a5e610bd9b68cea3925b4892"},
+    {file = "cffi-1.14.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:48e1c69bbacfc3d932221851b39d49e81567a4d4aac3b21258d9c24578280058"},
+    {file = "cffi-1.14.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:69e395c24fc60aad6bb4fa7e583698ea6cc684648e1ffb7fe85e3c1ca131a7d5"},
+    {file = "cffi-1.14.5-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:9e93e79c2551ff263400e1e4be085a1210e12073a31c2011dbbda14bda0c6132"},
+    {file = "cffi-1.14.5-cp36-cp36m-win32.whl", hash = "sha256:58e3f59d583d413809d60779492342801d6e82fefb89c86a38e040c16883be53"},
+    {file = "cffi-1.14.5-cp36-cp36m-win_amd64.whl", hash = "sha256:005a36f41773e148deac64b08f233873a4d0c18b053d37da83f6af4d9087b813"},
+    {file = "cffi-1.14.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2894f2df484ff56d717bead0a5c2abb6b9d2bf26d6960c4604d5c48bbc30ee73"},
+    {file = "cffi-1.14.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:0857f0ae312d855239a55c81ef453ee8fd24136eaba8e87a2eceba644c0d4c06"},
+    {file = "cffi-1.14.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:cd2868886d547469123fadc46eac7ea5253ea7fcb139f12e1dfc2bbd406427d1"},
+    {file = "cffi-1.14.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:35f27e6eb43380fa080dccf676dece30bef72e4a67617ffda586641cd4508d49"},
+    {file = "cffi-1.14.5-cp37-cp37m-win32.whl", hash = "sha256:9ff227395193126d82e60319a673a037d5de84633f11279e336f9c0f189ecc62"},
+    {file = "cffi-1.14.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9cf8022fb8d07a97c178b02327b284521c7708d7c71a9c9c355c178ac4bbd3d4"},
+    {file = "cffi-1.14.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8b198cec6c72df5289c05b05b8b0969819783f9418e0409865dac47288d2a053"},
+    {file = "cffi-1.14.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:ad17025d226ee5beec591b52800c11680fca3df50b8b29fe51d882576e039ee0"},
+    {file = "cffi-1.14.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6c97d7350133666fbb5cf4abdc1178c812cb205dc6f41d174a7b0f18fb93337e"},
+    {file = "cffi-1.14.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8ae6299f6c68de06f136f1f9e69458eae58f1dacf10af5c17353eae03aa0d827"},
+    {file = "cffi-1.14.5-cp38-cp38-win32.whl", hash = "sha256:b85eb46a81787c50650f2392b9b4ef23e1f126313b9e0e9013b35c15e4288e2e"},
+    {file = "cffi-1.14.5-cp38-cp38-win_amd64.whl", hash = "sha256:1f436816fc868b098b0d63b8920de7d208c90a67212546d02f84fe78a9c26396"},
+    {file = "cffi-1.14.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1071534bbbf8cbb31b498d5d9db0f274f2f7a865adca4ae429e147ba40f73dea"},
+    {file = "cffi-1.14.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:9de2e279153a443c656f2defd67769e6d1e4163952b3c622dcea5b08a6405322"},
+    {file = "cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:6e4714cc64f474e4d6e37cfff31a814b509a35cb17de4fb1999907575684479c"},
+    {file = "cffi-1.14.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:158d0d15119b4b7ff6b926536763dc0714313aa59e320ddf787502c70c4d4bee"},
+    {file = "cffi-1.14.5-cp39-cp39-win32.whl", hash = "sha256:afb29c1ba2e5a3736f1c301d9d0abe3ec8b86957d04ddfa9d7a6a42b9367e396"},
+    {file = "cffi-1.14.5-cp39-cp39-win_amd64.whl", hash = "sha256:f2d45f97ab6bb54753eab54fffe75aaf3de4ff2341c9daee1987ee1837636f1d"},
+    {file = "cffi-1.14.5.tar.gz", hash = "sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c"},
+]
+cssselect2 = [
+    {file = "cssselect2-0.4.1-py3-none-any.whl", hash = "sha256:2f4a9f20965367bae459e3bb42561f7927e0cfe5b7ea1692757cf67ef5d7dace"},
+    {file = "cssselect2-0.4.1.tar.gz", hash = "sha256:93fbb9af860e95dd40bf18c3b2b6ed99189a07c0f29ba76f9c5be71344664ec8"},
+]
+h11 = [
+    {file = "h11-0.12.0-py3-none-any.whl", hash = "sha256:36a3cb8c0a032f56e2da7084577878a035d3b61d104230d4bd49c0c6b555a9c6"},
+    {file = "h11-0.12.0.tar.gz", hash = "sha256:47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042"},
+]
+idna = [
+    {file = "idna-3.1-py3-none-any.whl", hash = "sha256:5205d03e7bcbb919cc9c19885f9920d622ca52448306f2377daede5cf3faac16"},
+    {file = "idna-3.1.tar.gz", hash = "sha256:c5b02147e01ea9920e6b0a3f1f7bb833612d507592c837a6c49552768f4054e1"},
+]
+lxml = [
+    {file = "lxml-4.6.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a9d6bc8642e2c67db33f1247a77c53476f3a166e09067c0474facb045756087f"},
+    {file = "lxml-4.6.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:791394449e98243839fa822a637177dd42a95f4883ad3dec2a0ce6ac99fb0a9d"},
+    {file = "lxml-4.6.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:68a5d77e440df94011214b7db907ec8f19e439507a70c958f750c18d88f995d2"},
+    {file = "lxml-4.6.2-cp27-cp27m-win32.whl", hash = "sha256:fc37870d6716b137e80d19241d0e2cff7a7643b925dfa49b4c8ebd1295eb506e"},
+    {file = "lxml-4.6.2-cp27-cp27m-win_amd64.whl", hash = "sha256:69a63f83e88138ab7642d8f61418cf3180a4d8cd13995df87725cb8b893e950e"},
+    {file = "lxml-4.6.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:42ebca24ba2a21065fb546f3e6bd0c58c3fe9ac298f3a320147029a4850f51a2"},
+    {file = "lxml-4.6.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:f83d281bb2a6217cd806f4cf0ddded436790e66f393e124dfe9731f6b3fb9afe"},
+    {file = "lxml-4.6.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:535f067002b0fd1a4e5296a8f1bf88193080ff992a195e66964ef2a6cfec5388"},
+    {file = "lxml-4.6.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:366cb750140f221523fa062d641393092813b81e15d0e25d9f7c6025f910ee80"},
+    {file = "lxml-4.6.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:97db258793d193c7b62d4e2586c6ed98d51086e93f9a3af2b2034af01450a74b"},
+    {file = "lxml-4.6.2-cp35-cp35m-win32.whl", hash = "sha256:648914abafe67f11be7d93c1a546068f8eff3c5fa938e1f94509e4a5d682b2d8"},
+    {file = "lxml-4.6.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4e751e77006da34643ab782e4a5cc21ea7b755551db202bc4d3a423b307db780"},
+    {file = "lxml-4.6.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:681d75e1a38a69f1e64ab82fe4b1ed3fd758717bed735fb9aeaa124143f051af"},
+    {file = "lxml-4.6.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:127f76864468d6630e1b453d3ffbbd04b024c674f55cf0a30dc2595137892d37"},
+    {file = "lxml-4.6.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4fb85c447e288df535b17ebdebf0ec1cf3a3f1a8eba7e79169f4f37af43c6b98"},
+    {file = "lxml-4.6.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:5be4a2e212bb6aa045e37f7d48e3e1e4b6fd259882ed5a00786f82e8c37ce77d"},
+    {file = "lxml-4.6.2-cp36-cp36m-win32.whl", hash = "sha256:8c88b599e226994ad4db29d93bc149aa1aff3dc3a4355dd5757569ba78632bdf"},
+    {file = "lxml-4.6.2-cp36-cp36m-win_amd64.whl", hash = "sha256:6e4183800f16f3679076dfa8abf2db3083919d7e30764a069fb66b2b9eff9939"},
+    {file = "lxml-4.6.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d8d3d4713f0c28bdc6c806a278d998546e8efc3498949e3ace6e117462ac0a5e"},
+    {file = "lxml-4.6.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:8246f30ca34dc712ab07e51dc34fea883c00b7ccb0e614651e49da2c49a30711"},
+    {file = "lxml-4.6.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:923963e989ffbceaa210ac37afc9b906acebe945d2723e9679b643513837b089"},
+    {file = "lxml-4.6.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:1471cee35eba321827d7d53d104e7b8c593ea3ad376aa2df89533ce8e1b24a01"},
+    {file = "lxml-4.6.2-cp37-cp37m-win32.whl", hash = "sha256:2363c35637d2d9d6f26f60a208819e7eafc4305ce39dc1d5005eccc4593331c2"},
+    {file = "lxml-4.6.2-cp37-cp37m-win_amd64.whl", hash = "sha256:f4822c0660c3754f1a41a655e37cb4dbbc9be3d35b125a37fab6f82d47674ebc"},
+    {file = "lxml-4.6.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0448576c148c129594d890265b1a83b9cd76fd1f0a6a04620753d9a6bcfd0a4d"},
+    {file = "lxml-4.6.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:60a20bfc3bd234d54d49c388950195d23a5583d4108e1a1d47c9eef8d8c042b3"},
+    {file = "lxml-4.6.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2e5cc908fe43fe1aa299e58046ad66981131a66aea3129aac7770c37f590a644"},
+    {file = "lxml-4.6.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:50c348995b47b5a4e330362cf39fc503b4a43b14a91c34c83b955e1805c8e308"},
+    {file = "lxml-4.6.2-cp38-cp38-win32.whl", hash = "sha256:94d55bd03d8671686e3f012577d9caa5421a07286dd351dfef64791cf7c6c505"},
+    {file = "lxml-4.6.2-cp38-cp38-win_amd64.whl", hash = "sha256:7a7669ff50f41225ca5d6ee0a1ec8413f3a0d8aa2b109f86d540887b7ec0d72a"},
+    {file = "lxml-4.6.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e0bfe9bb028974a481410432dbe1b182e8191d5d40382e5b8ff39cdd2e5c5931"},
+    {file = "lxml-4.6.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:6fd8d5903c2e53f49e99359b063df27fdf7acb89a52b6a12494208bf61345a03"},
+    {file = "lxml-4.6.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7e9eac1e526386df7c70ef253b792a0a12dd86d833b1d329e038c7a235dfceb5"},
+    {file = "lxml-4.6.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:7ee8af0b9f7de635c61cdd5b8534b76c52cd03536f29f51151b377f76e214a1a"},
+    {file = "lxml-4.6.2-cp39-cp39-win32.whl", hash = "sha256:2e6fd1b8acd005bd71e6c94f30c055594bbd0aa02ef51a22bbfa961ab63b2d75"},
+    {file = "lxml-4.6.2-cp39-cp39-win_amd64.whl", hash = "sha256:535332fe9d00c3cd455bd3dd7d4bacab86e2d564bdf7606079160fa6251caacf"},
+    {file = "lxml-4.6.2.tar.gz", hash = "sha256:cd11c7e8d21af997ee8079037fff88f16fda188a9776eb4b81c7e4c9c0a7d7fc"},
+]
+outcome = [
+    {file = "outcome-1.1.0-py2.py3-none-any.whl", hash = "sha256:c7dd9375cfd3c12db9801d080a3b63d4b0a261aa996c4c13152380587288d958"},
+    {file = "outcome-1.1.0.tar.gz", hash = "sha256:e862f01d4e626e63e8f92c38d1f8d5546d3f9cce989263c521b2e7990d186967"},
+]
+pdfrw = [
+    {file = "pdfrw-0.4-py2.py3-none-any.whl", hash = "sha256:758289edaa3b672e9a1a67504be73c18ec668d4e5b9d5ac9cbc0dc753d8d196b"},
+    {file = "pdfrw-0.4.tar.gz", hash = "sha256:0dc0494a0e6561b268542b28ede2280387c2728114f117d3bb5d8e4787b93ef4"},
+]
+pillow = [
+    {file = "Pillow-8.1.2-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:5cf03b9534aca63b192856aa601c68d0764810857786ea5da652581f3a44c2b0"},
+    {file = "Pillow-8.1.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:f91b50ad88048d795c0ad004abbe1390aa1882073b1dca10bfd55d0b8cf18ec5"},
+    {file = "Pillow-8.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5762ebb4436f46b566fc6351d67a9b5386b5e5de4e58fdaa18a1c83e0e20f1a8"},
+    {file = "Pillow-8.1.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:e2cd8ac157c1e5ae88b6dd790648ee5d2777e76f1e5c7d184eaddb2938594f34"},
+    {file = "Pillow-8.1.2-cp36-cp36m-win32.whl", hash = "sha256:72027ebf682abc9bafd93b43edc44279f641e8996fb2945104471419113cfc71"},
+    {file = "Pillow-8.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:d1d6bca39bb6dd94fba23cdb3eeaea5e30c7717c5343004d900e2a63b132c341"},
+    {file = "Pillow-8.1.2-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:90882c6f084ef68b71bba190209a734bf90abb82ab5e8f64444c71d5974008c6"},
+    {file = "Pillow-8.1.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:89e4c757a91b8c55d97c91fa09c69b3677c227b942fa749e9a66eef602f59c28"},
+    {file = "Pillow-8.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:8c4e32218c764bc27fe49b7328195579581aa419920edcc321c4cb877c65258d"},
+    {file = "Pillow-8.1.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:a01da2c266d9868c4f91a9c6faf47a251f23b9a862dce81d2ff583135206f5be"},
+    {file = "Pillow-8.1.2-cp37-cp37m-win32.whl", hash = "sha256:30d33a1a6400132e6f521640dd3f64578ac9bfb79a619416d7e8802b4ce1dd55"},
+    {file = "Pillow-8.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:71b01ee69e7df527439d7752a2ce8fb89e19a32df484a308eca3e81f673d3a03"},
+    {file = "Pillow-8.1.2-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:5a2d957eb4aba9d48170b8fe6538ec1fbc2119ffe6373782c03d8acad3323f2e"},
+    {file = "Pillow-8.1.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:87f42c976f91ca2fc21a3293e25bd3cd895918597db1b95b93cbd949f7d019ce"},
+    {file = "Pillow-8.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:15306d71a1e96d7e271fd2a0737038b5a92ca2978d2e38b6ced7966583e3d5af"},
+    {file = "Pillow-8.1.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:71f31ee4df3d5e0b366dd362007740106d3210fb6a56ec4b581a5324ba254f06"},
+    {file = "Pillow-8.1.2-cp38-cp38-win32.whl", hash = "sha256:98afcac3205d31ab6a10c5006b0cf040d0026a68ec051edd3517b776c1d78b09"},
+    {file = "Pillow-8.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:328240f7dddf77783e72d5ed79899a6b48bc6681f8d1f6001f55933cb4905060"},
+    {file = "Pillow-8.1.2-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bead24c0ae3f1f6afcb915a057943ccf65fc755d11a1410a909c1fefb6c06ad1"},
+    {file = "Pillow-8.1.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81b3716cc9744ffdf76b39afb6247eae754186838cedad0b0ac63b2571253fe6"},
+    {file = "Pillow-8.1.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:63cd413ac52ee3f67057223d363f4f82ce966e64906aea046daf46695e3c8238"},
+    {file = "Pillow-8.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:8565355a29655b28fdc2c666fd9a3890fe5edc6639d128814fafecfae2d70910"},
+    {file = "Pillow-8.1.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1940fc4d361f9cc7e558d6f56ff38d7351b53052fd7911f4b60cd7bc091ea3b1"},
+    {file = "Pillow-8.1.2-cp39-cp39-win32.whl", hash = "sha256:46c2bcf8e1e75d154e78417b3e3c64e96def738c2a25435e74909e127a8cba5e"},
+    {file = "Pillow-8.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:aeab4cd016e11e7aa5cfc49dcff8e51561fa64818a0be86efa82c7038e9369d0"},
+    {file = "Pillow-8.1.2-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:74cd9aa648ed6dd25e572453eb09b08817a1e3d9f8d1bd4d8403d99e42ea790b"},
+    {file = "Pillow-8.1.2-pp36-pypy36_pp73-manylinux2010_i686.whl", hash = "sha256:e5739ae63636a52b706a0facec77b2b58e485637e1638202556156e424a02dc2"},
+    {file = "Pillow-8.1.2-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:903293320efe2466c1ab3509a33d6b866dc850cfd0c5d9cc92632014cec185fb"},
+    {file = "Pillow-8.1.2-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:5daba2b40782c1c5157a788ec4454067c6616f5a0c1b70e26ac326a880c2d328"},
+    {file = "Pillow-8.1.2-pp37-pypy37_pp73-manylinux2010_i686.whl", hash = "sha256:1f93f2fe211f1ef75e6f589327f4d4f8545d5c8e826231b042b483d8383e8a7c"},
+    {file = "Pillow-8.1.2-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:6efac40344d8f668b6c4533ae02a48d52fd852ef0654cc6f19f6ac146399c733"},
+    {file = "Pillow-8.1.2-pp37-pypy37_pp73-win32.whl", hash = "sha256:f36c3ff63d6fc509ce599a2f5b0d0732189eed653420e7294c039d342c6e204a"},
+    {file = "Pillow-8.1.2.tar.gz", hash = "sha256:b07c660e014852d98a00a91adfbe25033898a9d90a8f39beb2437d22a203fc44"},
+]
+pycparser = [
+    {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
+    {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
+]
+pyfuse3 = [
+    {file = "pyfuse3-3.2.0.tar.gz", hash = "sha256:45f0053ad601b03a36e2c283a5271403674245a66a0daf50e3deaab0ea4fa82f"},
+]
+reportlab = [
+    {file = "reportlab-3.5.65-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:fd6712a8a6dca12181a3a12316f97810927861e77f2a98029efd2c5cfc8546dc"},
+    {file = "reportlab-3.5.65-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:ee711804acdaf3ea7f0f2cd27f19478af993e730df8c8d923a678eb0e2572fba"},
+    {file = "reportlab-3.5.65-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4c42e85851f969e21fa4d6414587b7544e877ce685e2495d7d422589c70b6281"},
+    {file = "reportlab-3.5.65-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:d8fefd07072bfae2715283a821fb1acf8fc4946cf925509d5cc2af791c611809"},
+    {file = "reportlab-3.5.65-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:bdf751289efee4891f4f354ce9122da8de8258a40f328b3f11540c4888363337"},
+    {file = "reportlab-3.5.65-cp36-cp36m-win32.whl", hash = "sha256:f0634740b099b69caed081acd89692996b5504c59f86f39781b6bebc82b267f5"},
+    {file = "reportlab-3.5.65-cp36-cp36m-win_amd64.whl", hash = "sha256:d810bffd4bcd50fdcb2bab0d1fe9ea4e6187ed5237687e41c6ade6c884b00c1e"},
+    {file = "reportlab-3.5.65-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:46745826657d35f86843487f4bc6f6f805f61260428f8ee13642bf6372f9df55"},
+    {file = "reportlab-3.5.65-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:bc62187181582772688d65c557ad6a40a4c3bb8d1f74de463d35ea81983e9b75"},
+    {file = "reportlab-3.5.65-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:58bec163f727c1c60515fc4704a961b3b4ccf2c76b4e6ec1a457ea7ed0c2d756"},
+    {file = "reportlab-3.5.65-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d92834993bf998853a04946729266a3276965e7b13f7423212f1c1abdfc4a1c7"},
+    {file = "reportlab-3.5.65-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:9ec95808b742ce70c1dab28b2c5bef9093816b92315b948419c2c6968658f9cc"},
+    {file = "reportlab-3.5.65-cp37-cp37m-win32.whl", hash = "sha256:b9494986f35d82350b0ce0c29704a49a3945421b789dff92e93fbd3de554fa34"},
+    {file = "reportlab-3.5.65-cp37-cp37m-win_amd64.whl", hash = "sha256:07f9d9c0360cb8fc780ca05264faa68b90583cd28dbdf2cda6bda34379b6e66c"},
+    {file = "reportlab-3.5.65-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:81898de0a0be2c8318468ae0ae1590f828805e9b7fd68e5a50667dce8b942171"},
+    {file = "reportlab-3.5.65-cp38-cp38-manylinux1_i686.whl", hash = "sha256:99aeee49a61c85f1af1087e9e418f3d0c2352c4dd0f0abbfac17ae6c467185aa"},
+    {file = "reportlab-3.5.65-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:3ec70873d99c14570e2a9c44b86c8c01526871e7af5ee4b2855246db15cb0c9f"},
+    {file = "reportlab-3.5.65-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:c12432575c793b8cd8552fddc219bbf2813541c64d02854ae345a108fb875b9d"},
+    {file = "reportlab-3.5.65-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:b2cf692ae7af995b499a31a3f58f2001d98e310e03f74812bcb97a08078239c0"},
+    {file = "reportlab-3.5.65-cp38-cp38-win32.whl", hash = "sha256:f92388e30bf6b5d2eceb3d7b05ee2df856635f74ce7d950a8f45d2b70c685a5b"},
+    {file = "reportlab-3.5.65-cp38-cp38-win_amd64.whl", hash = "sha256:6f007142f2b166f52cbb3e5d23319e3e496c429831e53b904e6db28c3370f279"},
+    {file = "reportlab-3.5.65-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:8707cc21a769150154bf4634dca6e9581ae24a05f0fb81a84fcc1143b1cbbfde"},
+    {file = "reportlab-3.5.65-cp39-cp39-manylinux1_i686.whl", hash = "sha256:27a831da0d17153e33c985bd7a88307e206c5a28778cddb755d5372598d12637"},
+    {file = "reportlab-3.5.65-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:fe5d98cdac07dd702bcd49f5723aacdd0af8c84d70fc82a5cc3781e52aedad52"},
+    {file = "reportlab-3.5.65-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:ba2d10f368c9ea1e76c84b3bb6b9982eb5a8f243c434e821c505b75ca8d85852"},
+    {file = "reportlab-3.5.65-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:289539f7888239343ef7ebcd30c55e6204ef78d5f70e1547fdeb854a2da8bfa1"},
+    {file = "reportlab-3.5.65-cp39-cp39-win32.whl", hash = "sha256:cdf8ff72cd6fa9303744c8409fb81ef7720da2e034c369762c2fdf496462179e"},
+    {file = "reportlab-3.5.65-cp39-cp39-win_amd64.whl", hash = "sha256:4a784ecdf3008f533e5a032b96c395e8592ed5e679baaf5ef4dcc136b01c72e9"},
+    {file = "reportlab-3.5.65.tar.gz", hash = "sha256:b2c7eedb4d19db63301c27ad1076086a099fd4c8ca0a6f62f6e9ed749fa5908f"},
+]
+rmcl = [
+    {file = "rmcl-0.4.0-py3-none-any.whl", hash = "sha256:d2fc5d183b213797f5886a6af52c5531c87b4e1770cc720e0e8ba5992e728473"},
+    {file = "rmcl-0.4.0.tar.gz", hash = "sha256:14bd199ff2c71269c3c1ac63d10932de6c68a250a454550940dae3f06b07527a"},
+]
+rmfuse = []
+rmrl = [
+    {file = "rmrl-0.2.1-py3-none-any.whl", hash = "sha256:c35b9f20494a6034a16e916d7351575efb3e3f77acabe9094453a7f6013eaa86"},
+    {file = "rmrl-0.2.1.tar.gz", hash = "sha256:c532bef4168350e6ab17cf37c6481dc12b6a78e007c073503f082f36215b71c9"},
+]
+sniffio = [
+    {file = "sniffio-1.2.0-py3-none-any.whl", hash = "sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663"},
+    {file = "sniffio-1.2.0.tar.gz", hash = "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de"},
+]
+sortedcontainers = [
+    {file = "sortedcontainers-2.3.0-py2.py3-none-any.whl", hash = "sha256:37257a32add0a3ee490bb170b599e93095eed89a55da91fa9f48753ea12fd73f"},
+    {file = "sortedcontainers-2.3.0.tar.gz", hash = "sha256:59cc937650cf60d677c16775597c89a960658a09cf7c1a668f86e1e4464b10a1"},
+]
+svglib = [
+    {file = "svglib-1.0.1.tar.gz", hash = "sha256:ff01593e8c07ea462d3742e1f4141bfa261cbd4400ceb25dfb8fec3508ad0e50"},
+]
+tinycss2 = [
+    {file = "tinycss2-1.1.0-py3-none-any.whl", hash = "sha256:0353b5234bcaee7b1ac7ca3dea7e02cd338a9f8dcbb8f2dcd32a5795ec1e5f9a"},
+    {file = "tinycss2-1.1.0.tar.gz", hash = "sha256:fbdcac3044d60eb85fdb2aa840ece43cf7dbe798e373e6ee0be545d4d134e18a"},
+]
+trio = [
+    {file = "trio-0.18.0-py3-none-any.whl", hash = "sha256:a42af0634ba729cbfe8578be058750c6471dac19fbc7167ec6a3ca3f966fb424"},
+    {file = "trio-0.18.0.tar.gz", hash = "sha256:87a66ae61f27fe500c9024926a9ba482c07e1e0f56380b70a264d19c435ba076"},
+]
+webencodings = [
+    {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"},
+    {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"},
+]
+xdg = [
+    {file = "xdg-5.0.1-py3-none-any.whl", hash = "sha256:9ddd6649bee9148f952305603a08474e3ef37c909eb19dfcb9737d54ebcc407e"},
+    {file = "xdg-5.0.1.tar.gz", hash = "sha256:97a27058caa61b4ce04e05471643caa6bc8c563d2638f92c0516ac50208146d8"},
+]
diff --git a/nixpkgs/pkgs/tools/filesystems/rmfuse/pyproject.toml b/nixpkgs/pkgs/tools/filesystems/rmfuse/pyproject.toml
new file mode 100644
index 000000000000..e3f1767b4cfa
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/rmfuse/pyproject.toml
@@ -0,0 +1,15 @@
+[tool.poetry]
+name = "rmfuse-env"
+version = "0.1.0"
+description = ""
+authors = []
+
+[tool.poetry.dependencies]
+python = "^3.8"
+rmfuse = {git = "https://github.com/rschroll/rmfuse.git", extras = ["pyfuse3"]}
+
+[tool.poetry.dev-dependencies]
+
+[build-system]
+requires = ["poetry-core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
diff --git a/nixpkgs/pkgs/tools/filesystems/rmfuse/update b/nixpkgs/pkgs/tools/filesystems/rmfuse/update
new file mode 100755
index 000000000000..77cfe9ff86d9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/rmfuse/update
@@ -0,0 +1,5 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p poetry poetry2nix.cli
+set -eu
+poetry lock
+poetry2nix lock
diff --git a/nixpkgs/pkgs/tools/filesystems/rmount/default.nix b/nixpkgs/pkgs/tools/filesystems/rmount/default.nix
index 96d950e74ff1..1d8ced17aae0 100644
--- a/nixpkgs/pkgs/tools/filesystems/rmount/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/rmount/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "0j1ayncw1nnmgna7vyx44vwinh4ah1b0l5y8agc7i4s8clbvy3h0";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     install -D ${src}/rmount.man  $out/share/man/man1/rmount.1
diff --git a/nixpkgs/pkgs/tools/filesystems/s3backer/default.nix b/nixpkgs/pkgs/tools/filesystems/s3backer/default.nix
index 650fd713a0ed..0a05a683adb1 100644
--- a/nixpkgs/pkgs/tools/filesystems/s3backer/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/s3backer/default.nix
@@ -4,10 +4,10 @@
 
 stdenv.mkDerivation rec {
   pname = "s3backer";
-  version = "1.5.4";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
-    sha256 = "1228qlfgz48k9vv72hrz488zg73zls99cppb9vmikc0pzv1xndsx";
+    sha256 = "sha256-67sVT72i8tOMdGH/+Oh1N7Vh/2/qD56ImGWI+tprMOM=";
     rev = version;
     repo = "s3backer";
     owner = "archiecobbs";
diff --git a/nixpkgs/pkgs/tools/filesystems/s3fs/default.nix b/nixpkgs/pkgs/tools/filesystems/s3fs/default.nix
index 4ff36e3b1d87..95b5b6ab34aa 100644
--- a/nixpkgs/pkgs/tools/filesystems/s3fs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/s3fs/default.nix
@@ -1,19 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, curl, openssl, libxml2, fuse, osxfuse }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, curl, openssl, libxml2, fuse }:
 
 stdenv.mkDerivation rec {
   pname = "s3fs-fuse";
-  version = "1.88";
+  version = "1.89";
 
   src = fetchFromGitHub {
     owner  = "s3fs-fuse";
     repo   = "s3fs-fuse";
     rev    = "v${version}";
-    sha256 = "sha256-LxqTKu9F8FqHnjp1a9E/+WbH1Ol6if/OpY7LGsVE9Bw=";
+    sha256 = "sha256-Agb0tq7B98Ioe0G/XEZCYcFQKnMuYXX9x0yg4Gvu3/k=";
   };
 
-  buildInputs = [ curl openssl libxml2 ]
-    ++ lib.optionals stdenv.isLinux [ fuse ]
-    ++ lib.optionals stdenv.isDarwin [ osxfuse ];
+  buildInputs = [ curl openssl libxml2 fuse ];
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/filesystems/sasquatch/default.nix b/nixpkgs/pkgs/tools/filesystems/sasquatch/default.nix
index 7f92da6a224d..66f749441500 100644
--- a/nixpkgs/pkgs/tools/filesystems/sasquatch/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/sasquatch/default.nix
@@ -2,7 +2,6 @@
 , fetchurl
 , lz4 ? null
 , lz4Support ? false
-, lzma
 , lzo
 , lib, stdenv
 , xz
@@ -28,7 +27,7 @@ stdenv.mkDerivation rec {
     sha256 = "1xpklm0y43nd9i6jw43y2xh5zvlmj9ar2rvknh0bh7kv8c95aq0d";
   };
 
-  buildInputs = [ lzma lzo xz zlib ]
+  buildInputs = [ xz lzo xz zlib ]
     ++ lib.optional lz4Support lz4;
 
   patches = [ patch ];
diff --git a/nixpkgs/pkgs/tools/filesystems/smbnetfs/default.nix b/nixpkgs/pkgs/tools/filesystems/smbnetfs/default.nix
index 05d7189fbaac..3bbff2903bc7 100644
--- a/nixpkgs/pkgs/tools/filesystems/smbnetfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/smbnetfs/default.nix
@@ -2,19 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "smbnetfs";
-  version = "0.6.2";
+  version = "0.6.3";
   src = fetchurl {
     url = "mirror://sourceforge/project/smbnetfs/smbnetfs/SMBNetFS-${version}/${pname}-${version}.tar.bz2";
-    sha256 = "19x9978k90w9a65lrpsphk7swsq8zkws9jc27q4zbndrm0r2snr0";
+    sha256 = "sha256-6sN7l2n76cP0uvPrZMYaa1mtTyqgXf3culoaxK301WA=";
   };
 
   nativeBuildInputs = [ pkg-config autoconf ];
   buildInputs = [ fuse samba glib attr libsecret ];
 
-  postPatch = ''
-    substituteInPlace src/function.c --replace "attr/xattr.h" "sys/xattr.h"
-  '';
-
   meta = with lib; {
     description = "A FUSE FS for mounting Samba shares";
     maintainers = with maintainers; [ raskin ];
diff --git a/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix b/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
index 322f57fdca92..bb7df1aa9403 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.0.4";
+  version = "1.1.0";
 
   src = fetchurl {
     url = "https://infraroot.at/pub/squashfs/squashfs-tools-ng-${version}.tar.xz";
-    sha256 = "04zvpws1nk3r2kr1k5in9di9fhn4zzciyndgnxnijmhiqpyrx072";
+    sha256 = "1swsw5j8rrjxdxsfyd446f6g8f0k3mwg15baivi953i69c9981qi";
   };
 
   nativeBuildInputs = [ doxygen graphviz pkg-config perl ];
diff --git a/nixpkgs/pkgs/tools/filesystems/squashfs/0001-Mksquashfs-add-no-hardlinks-option.patch b/nixpkgs/pkgs/tools/filesystems/squashfs/0001-Mksquashfs-add-no-hardlinks-option.patch
new file mode 100644
index 000000000000..0d6804a647b2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/squashfs/0001-Mksquashfs-add-no-hardlinks-option.patch
@@ -0,0 +1,76 @@
+From d925c9a11ee2e88ac8aac03f51892746f2bcf8cd Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@squashfs.org.uk>
+Date: Thu, 25 Feb 2021 23:12:10 +0000
+Subject: [PATCH] Mksquashfs: add -no-hardlinks option
+
+Normally Mksquashfs will detect hardlinks (multiple files with the
+same inode) and hardlink them in the Squashfs image.
+
+But often hardlinks are used in the original filesystem
+to save space, when files are discovered to be duplicate.
+In this special case the only reason the files are
+hardlinked is to save space, and where the filesystem
+doesn't handle duplicate files (different inode, same
+data).
+
+Squashfs does handle duplicate files, and so add
+an option to ignore hardlinks and instead
+store them as duplicates.
+
+Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
+---
+ squashfs-tools/mksquashfs.c | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
+index a45b77f..d4dc359 100644
+--- a/squashfs-tools/mksquashfs.c
++++ b/squashfs-tools/mksquashfs.c
+@@ -312,6 +312,9 @@ struct dir_info *root_dir;
+ FILE *log_fd;
+ int logging=FALSE;
+ 
++/* Should Mksquashfs detect hardlinked files? */
++int no_hardlinks = FALSE;
++
+ static char *read_from_disk(long long start, unsigned int avail_bytes);
+ void add_old_root_entry(char *name, squashfs_inode inode, int inode_number,
+ 	int type);
+@@ -3093,11 +3096,11 @@ struct inode_info *lookup_inode3(struct stat *buf, int pseudo, int id,
+ 
+ 	/*
+ 	 * Look-up inode in hash table, if it already exists we have a
+-	 * hard-link, so increment the nlink count and return it.
+-	 * Don't do the look-up for directories because we don't hard-link
+-	 * directories.
++	 * hardlink, so increment the nlink count and return it.
++	 * Don't do the look-up for directories because Unix/Linux doesn't
++	 * allow hard-links to directories.
+ 	 */
+-	if ((buf->st_mode & S_IFMT) != S_IFDIR) {
++	if ((buf->st_mode & S_IFMT) != S_IFDIR && !no_hardlinks) {
+ 		for(inode = inode_info[ino_hash]; inode; inode = inode->next) {
+ 			if(memcmp(buf, &inode->buf, sizeof(struct stat)) == 0) {
+ 				inode->nlink ++;
+@@ -5447,7 +5450,9 @@ int main(int argc, char *argv[])
+ 		comp = lookup_compressor(COMP_DEFAULT);
+ 
+ 	for(i = source + 2; i < argc; i++) {
+-		if(strcmp(argv[i], "-mkfs-time") == 0 ||
++		if(strcmp(argv[i], "-no-hardlinks") == 0)
++			no_hardlinks = TRUE;
++		else if(strcmp(argv[i], "-mkfs-time") == 0 ||
+ 				strcmp(argv[i], "-fstime") == 0) {
+ 			if((++i == argc) || !parse_num_unsigned(argv[i], &mkfs_time)) {
+ 				ERROR("%s: %s missing or invalid time value\n", argv[0], argv[i - 1]);
+@@ -5893,6 +5898,7 @@ printOptions:
+ 				"files larger than block size\n");
+ 			ERROR("-no-duplicates\t\tdo not perform duplicate "
+ 				"checking\n");
++			ERROR("-no-hardlinks\t\tdo not hardlink files, instead store duplicates\n");
+ 			ERROR("-all-root\t\tmake all files owned by root\n");
+ 			ERROR("-root-mode <mode>\tset root directory permissions to octal <mode>\n");
+ 			ERROR("-force-uid <uid>\tset all file uids to <uid>\n");
+-- 
+2.30.0
+
diff --git a/nixpkgs/pkgs/tools/filesystems/squashfs/default.nix b/nixpkgs/pkgs/tools/filesystems/squashfs/default.nix
index c833cfe10ada..cddb1722584b 100644
--- a/nixpkgs/pkgs/tools/filesystems/squashfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/squashfs/default.nix
@@ -1,39 +1,54 @@
-{ lib, stdenv, fetchFromGitHub, zlib, xz
+{ lib
+, stdenv
+, fetchFromGitHub
+, zlib
+, xz
 , lz4
+, lzo
 , zstd
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "squashfs";
   version = "4.4";
 
   src = fetchFromGitHub {
     owner = "plougher";
     repo = "squashfs-tools";
+    rev = version;
     sha256 = "0697fv8n6739mcyn57jclzwwbbqwpvjdfkv1qh9s56lvyqnplwaw";
-    # Tag "4.4" points to this commit.
-    rev = "52eb4c279cd283ed9802dd1ceb686560b22ffb67";
   };
 
   patches = [
     # This patch adds an option to pad filesystems (increasing size) in
     # exchange for better chunking / binary diff calculation.
     ./4k-align.patch
+    # Add -no-hardlinks option. This is a rebased version of
+    # c37bb4da4a5fa8c1cf114237ba364692dd522262, can be removed
+    # when upgrading to the next version after 4.4
+    ./0001-Mksquashfs-add-no-hardlinks-option.patch
   ] ++ lib.optional stdenv.isDarwin ./darwin.patch;
 
-  buildInputs = [ zlib xz zstd lz4 ];
+  buildInputs = [ zlib xz zstd lz4 lzo ];
 
-  preBuild = "cd squashfs-tools";
+  preBuild = ''
+    cd squashfs-tools
+  '' ;
 
-  installFlags = [ "INSTALL_DIR=\${out}/bin" ];
+  installFlags = [ "INSTALL_DIR=${placeholder "out"}/bin" ];
 
-  makeFlags = [ "XZ_SUPPORT=1" "ZSTD_SUPPORT=1" "LZ4_SUPPORT=1" ];
+  makeFlags = [
+    "XZ_SUPPORT=1"
+    "ZSTD_SUPPORT=1"
+    "LZ4_SUPPORT=1"
+    "LZO_SUPPORT=1"
+  ];
 
-  meta = {
-    homepage = "http://squashfs.sourceforge.net/";
+  meta = with lib; {
+    homepage = "https://github.com/plougher/squashfs-tools";
     description = "Tool for creating and unpacking squashfs filesystems";
-    platforms = lib.platforms.unix;
-    license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [ ruuda ];
+    platforms = platforms.unix;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ruuda ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix b/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix
new file mode 100644
index 000000000000..f85faa712dd4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix
@@ -0,0 +1,61 @@
+{ version, sha256, platforms, patches ? [ ] }:
+
+{ lib, stdenv, fetchFromGitHub
+, meson, pkg-config, ninja, docutils, makeWrapper
+, fuse3, macfuse-stubs, glib
+, which, python3Packages
+, openssh
+}:
+
+let
+  fuse = if stdenv.isDarwin then macfuse-stubs else fuse3;
+in stdenv.mkDerivation rec {
+  pname = "sshfs-fuse";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "libfuse";
+    repo = "sshfs";
+    rev = "sshfs-${version}";
+    inherit sha256;
+  };
+
+  inherit patches;
+
+  nativeBuildInputs = [ meson pkg-config ninja docutils makeWrapper ];
+  buildInputs = [ fuse glib ];
+  checkInputs = [ which python3Packages.pytest ];
+
+  NIX_CFLAGS_COMPILE = lib.optionalString
+    (stdenv.hostPlatform.system == "i686-linux")
+    "-D_FILE_OFFSET_BITS=64";
+
+  postInstall = ''
+    mkdir -p $out/sbin
+    ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
+  '' + lib.optionalString (!stdenv.isDarwin) ''
+    wrapProgram $out/bin/sshfs --prefix PATH : "${openssh}/bin"
+  '';
+
+  # doCheck = true;
+  checkPhase = lib.optionalString (!stdenv.isDarwin) ''
+    # The tests need fusermount:
+    mkdir bin
+    cp ${fuse}/bin/fusermount3 bin/fusermount
+    export PATH=bin:$PATH
+    # Can't access /dev/fuse within the sandbox: "FUSE kernel module does not seem to be loaded"
+    substituteInPlace test/util.py --replace "/dev/fuse" "/dev/null"
+    # TODO: "fusermount executable not setuid, and we are not root"
+    # We should probably use a VM test instead
+    ${python3Packages.python.interpreter} -m pytest test/
+  '';
+
+  meta = with lib; {
+    inherit platforms;
+    description = "FUSE-based filesystem that allows remote filesystems to be mounted over SSH";
+    longDescription = macfuse-stubs.warning;
+    homepage = "https://github.com/libfuse/sshfs";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix b/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 69826941d00f..e575bd3e1385 100644
--- a/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -1,52 +1,28 @@
-{ lib, stdenv, fetchFromGitHub
-, meson, pkg-config, ninja, docutils, makeWrapper
-, fuse3, glib
-, which, python3Packages
-, openssh
-}:
+{ lib, stdenv, callPackage, fetchpatch }:
 
-stdenv.mkDerivation rec {
-  version = "3.7.1";
-  pname = "sshfs-fuse";
+let mkSSHFS = args: callPackage (import ./common.nix args) { };
+in if stdenv.isDarwin then
+  mkSSHFS {
+    version = "2.10"; # macFUSE isn't yet compatible with libfuse 3.x
+    sha256 = "1dmw4kx6vyawcywiv8drrajnam0m29mxfswcp4209qafzx3mjlp1";
+    patches = [
+      # remove reference to fuse_darwin.h which doens't exist on recent macFUSE
+      ./fix-fuse-darwin-h.patch
 
-  src = fetchFromGitHub {
-    owner = "libfuse";
-    repo = "sshfs";
-    rev = "sshfs-${version}";
+      # From https://github.com/libfuse/sshfs/pull/185:
+      # > With this patch, setting I/O size to a reasonable large value, will
+      # > result in much improved performance, e.g.: -o iosize=1048576
+      (fetchpatch {
+        name = "fix-configurable-blksize.patch";
+        url = "https://github.com/libfuse/sshfs/commit/667cf34622e2e873db776791df275c7a582d6295.patch";
+        sha256 = "0d65lawd2g2aisk1rw2vl65dgxywf4vqgv765n9zj9zysyya8a54";
+      })
+    ];
+    platforms = lib.platforms.darwin;
+  }
+else
+  mkSSHFS {
+    version = "3.7.1";
     sha256 = "088mgcsqv9f2vly4xn6lvvkmqkgr9jjmjs9qp8938hl7j6rrgd17";
-  };
-
-  nativeBuildInputs = [ meson pkg-config ninja docutils makeWrapper ];
-  buildInputs = [ fuse3 glib ];
-  checkInputs = [ which python3Packages.pytest ];
-
-  NIX_CFLAGS_COMPILE = lib.optionalString
-    (stdenv.hostPlatform.system == "i686-linux")
-    "-D_FILE_OFFSET_BITS=64";
-
-  postInstall = ''
-    mkdir -p $out/sbin
-    ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
-    wrapProgram $out/bin/sshfs --prefix PATH : "${openssh}/bin"
-  '';
-
-  #doCheck = true;
-  checkPhase = ''
-    # The tests need fusermount:
-    mkdir bin && cp ${fuse3}/bin/fusermount3 bin/fusermount
-    export PATH=bin:$PATH
-    # Can't access /dev/fuse within the sandbox: "FUSE kernel module does not seem to be loaded"
-    substituteInPlace test/util.py --replace "/dev/fuse" "/dev/null"
-    # TODO: "fusermount executable not setuid, and we are not root"
-    # We should probably use a VM test instead
-    python3 -m pytest test/
-  '';
-
-  meta = with lib; {
-    inherit (src.meta) homepage;
-    description = "FUSE-based filesystem that allows remote filesystems to be mounted over SSH";
-    platforms = platforms.linux;
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ primeos ];
-  };
-}
+    platforms = lib.platforms.linux;
+  }
diff --git a/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/fix-fuse-darwin-h.patch b/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/fix-fuse-darwin-h.patch
new file mode 100644
index 000000000000..045cc0e61f33
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/fix-fuse-darwin-h.patch
@@ -0,0 +1,14 @@
+diff --git a/sshfs.c b/sshfs.c
+index 97eaf06..d442577 100644
+--- a/sshfs.c
++++ b/sshfs.c
+@@ -14,9 +14,6 @@
+ #if !defined(__CYGWIN__)
+ #include <fuse_lowlevel.h>
+ #endif
+-#ifdef __APPLE__
+-#  include <fuse_darwin.h>
+-#endif
+ #include <assert.h>
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/nixpkgs/pkgs/tools/filesystems/supertag/default.nix b/nixpkgs/pkgs/tools/filesystems/supertag/default.nix
new file mode 100644
index 000000000000..3602f8e31f94
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/supertag/default.nix
@@ -0,0 +1,41 @@
+{ lib, rustPlatform, fetchFromGitHub
+, clang, llvmPackages, pkg-config
+, dbus, fuse, sqlite
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "supertag";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "amoffat";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0jzm7pn38hlr96n0z8gqfsfdbw48y0nnbsgjdq7hpgwmcgvgqdam";
+  };
+
+  cargoSha256 = "1mzmp1jcxgn2swp52r9y7k09fk0z67i1qafzkkzlfxxd10vfr70v";
+
+  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+  nativeBuildInputs = [ clang pkg-config ];
+  buildInputs = [ dbus fuse sqlite ];
+
+  # The test are requiring extended permissions.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A tag-based filesystem";
+    longDescription = ''
+      Supertag is a tag-based filesystem, written in Rust, for Linux and MacOS.
+      It provides a tag-based view of your files by removing the hierarchy
+      constraints typically imposed on files and folders. In other words, it
+      allows you to think about your files not as objects stored in folders, but
+      as objects that can be filtered by folders.
+    '';
+    homepage = "https://github.com/amoffat/supertag";
+    license = licenses.agpl3Plus;
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/unionfs-fuse/default.nix b/nixpkgs/pkgs/tools/filesystems/unionfs-fuse/default.nix
index 77f45d06c91c..6a34657d3d17 100644
--- a/nixpkgs/pkgs/tools/filesystems/unionfs-fuse/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/unionfs-fuse/default.nix
@@ -11,13 +11,18 @@ stdenv.mkDerivation rec {
     sha256 = "0bwx70x834qgqh53vqp18bhbxbsny80hz922rbgj8k9wj7cbfilm";
   };
 
-  patches =
-    [ # Prevent the unionfs daemon from being killed during
-      # shutdown. See
-      # http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/
-      # for details.
-      ./prevent-kill-on-shutdown.patch
-    ];
+  patches = [
+    # Prevent the unionfs daemon from being killed during
+    # shutdown. See
+    # http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/
+    # for details.
+    ./prevent-kill-on-shutdown.patch
+  ];
+
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace CMakeLists.txt \
+      --replace '/usr/local/include/osxfuse/fuse' '${fuse}/include/fuse'
+  '';
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ fuse ];
@@ -28,7 +33,7 @@ stdenv.mkDerivation rec {
   #
   # This must be done in preConfigure because the build process removes
   # helper from the source directory during the build.
-  preConfigure = ''
+  preConfigure = lib.optionalString (!stdenv.isDarwin) ''
     mkdir -p $out/sbin
     cp -a mount.unionfs $out/sbin/mount.unionfs-fuse
     substituteInPlace $out/sbin/mount.unionfs-fuse --replace mount.fuse ${fuse}/sbin/mount.fuse
@@ -39,7 +44,7 @@ stdenv.mkDerivation rec {
     description = "FUSE UnionFS implementation";
     homepage = "https://github.com/rpodgorny/unionfs-fuse";
     license = licenses.bsd3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ orivej ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/xfsprogs/default.nix b/nixpkgs/pkgs/tools/filesystems/xfsprogs/default.nix
index 009c5e05d5da..85efb13b82ef 100644
--- a/nixpkgs/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xfsprogs";
-  version = "5.10.0";
+  version = "5.11.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz";
-    sha256 = "1schqzjx836jd54l10pqds7hyli2m77df3snk95xbr23dpj1fh70";
+    sha256 = "0lxks616nmdk8zkdbwpq5sf9zz19smgy5rpmp3hpk2mvrl7kk70f";
   };
 
   outputs = [ "bin" "dev" "out" "doc" ];
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://xfs.org/";
     description = "SGI XFS utilities";
-    license = licenses.lgpl21;
+    license = with licenses; [ gpl2Only lgpl21 gpl3Plus ];  # see https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/tree/debian/copyright
     platforms = platforms.linux;
     maintainers = with maintainers; [ dezgeg ajs124 ];
   };
diff --git a/nixpkgs/pkgs/tools/filesystems/xtreemfs/default.nix b/nixpkgs/pkgs/tools/filesystems/xtreemfs/default.nix
index d8d414500793..9c49c4677d2a 100644
--- a/nixpkgs/pkgs/tools/filesystems/xtreemfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/xtreemfs/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
   pname = "XtreemFS";
   version = "1.5.1.81";
 
-  buildInputs = [ which attr makeWrapper python ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ which attr python ];
 
   patches = [
     (fetchpatch {
diff --git a/nixpkgs/pkgs/tools/games/ajour/default.nix b/nixpkgs/pkgs/tools/games/ajour/default.nix
index 291c783c9148..3bc87680c52f 100644
--- a/nixpkgs/pkgs/tools/games/ajour/default.nix
+++ b/nixpkgs/pkgs/tools/games/ajour/default.nix
@@ -34,16 +34,16 @@ let
 
 in rustPlatform.buildRustPackage rec {
   pname = "Ajour";
-  version = "0.7.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "casperstorm";
     repo = "ajour";
     rev = version;
-    sha256 = "1lwwj16q24k3d3vaj64zkai4cb15hxp6bzicp004q5az4gbriwih";
+    sha256 = "sha256-u48U4WGlrSl8T3YF7cjApyjNaUI4YyyHEy0TgJw7r/Y=";
   };
 
-  cargoSha256 = "17j6v796ahfn07yjj9xd9kygy0sllz93ac4gky8w0hcixdwjp3i5";
+  cargoSha256 = "sha256-Hdid70AB4AKtSsQBsr6K/de4nvI3rvghEWIwM7mpRIA=";
 
   nativeBuildInputs = [
     autoPatchelfHook
diff --git a/nixpkgs/pkgs/tools/graphics/asymptote/default.nix b/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
index 34bb1b8cc3ae..30a3b9cc98f9 100644
--- a/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, fetchurl, fetchpatch
-, autoreconfHook, bison, glm, yacc, flex
+, autoreconfHook, bison, glm, flex
 , freeglut, ghostscriptX, imagemagick, fftw
 , boehmgc, libGLU, libGL, mesa, ncurses, readline, gsl, libsigsegv
 , python3Packages
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     autoreconfHook
     bison
     flex
-    yacc
+    bison
     texinfo
   ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/blockhash/default.nix b/nixpkgs/pkgs/tools/graphics/blockhash/default.nix
index a0ecdde3826c..b3426722f79f 100644
--- a/nixpkgs/pkgs/tools/graphics/blockhash/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/blockhash/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python, pkg-config, imagemagick, wafHook }:
+{ lib, stdenv, fetchFromGitHub, python2, pkg-config, imagemagick, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "blockhash";
@@ -11,9 +11,11 @@ stdenv.mkDerivation rec {
     sha256 = "0m7ikppl42iicgmwsb7baajmag7v0p1ab06xckifvrr0zm21bq9p";
   };
 
-  nativeBuildInputs = [ python pkg-config wafHook ];
+  nativeBuildInputs = [ python2 pkg-config wafHook ];
   buildInputs = [ imagemagick ];
 
+  strictDeps = true;
+
   meta = with lib; {
     homepage = "http://blockhash.io/";
     description = ''
diff --git a/nixpkgs/pkgs/tools/graphics/diagrams-builder/default.nix b/nixpkgs/pkgs/tools/graphics/diagrams-builder/default.nix
index 3422b9a53bdc..9337d5cca23b 100644
--- a/nixpkgs/pkgs/tools/graphics/diagrams-builder/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/diagrams-builder/default.nix
@@ -33,7 +33,7 @@ in
 stdenv.mkDerivation {
   name = "diagrams-builder";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildCommand = with lib;
     concatStrings (intersperse "\n" (map exeWrapper backends));
diff --git a/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.nix b/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.nix
index a22f0bc60d47..4ab54593ed8d 100644
--- a/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.nix
@@ -1,30 +1,33 @@
-{lib, stdenv, fetchurl, libdmtx, pkg-config, imagemagick}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="dmtx-utils";
-    version="0.7.4";
-    name="${baseName}-${version}";
-    hash="1di8ymlziy9856abd6rb72z0zqzmrff4r3vql0q9r5sk5ax4s417";
-    url="mirror://sourceforge/project/libdmtx/libdmtx/0.7.4/dmtx-utils-0.7.4.tar.gz";
-    sha256="1di8ymlziy9856abd6rb72z0zqzmrff4r3vql0q9r5sk5ax4s417";
-  };
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [
-    libdmtx imagemagick
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, libdmtx
+, imagemagick
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dmtx-utils";
+  version = "0.7.6";
+
+  src = fetchFromGitHub {
+    owner = "dmtx";
+    repo = "dmtx-utils";
+    rev = "v${version}";
+    sha256 = "06m3qncqdlcnmw83n95yrx2alaq6bld320ax26z4ndnla41yk0p4";
   };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  buildInputs = [ libdmtx imagemagick ];
+
   meta = {
-    inherit (s) version;
     description = "Data matrix command-line utilities";
-    license = lib.licenses.lgpl2 ;
-    maintainers = [lib.maintainers.raskin];
+    homepage = "https://github.com/dmtx/dmtx-utils";
+    changelog = "https://github.com/dmtx/dmtx-utils/blob/v${version}/ChangeLog";
+    license = lib.licenses.lgpl2;
+    maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.upstream b/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.upstream
deleted file mode 100644
index 2bb7fe31bf7c..000000000000
--- a/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/libdmtx/files/libdmtx/
-SF_version_dir
-version_link 'dmtx-utils-.*[.]tar[.][a-z0-9]+/download$'
-SF_redirect
diff --git a/nixpkgs/pkgs/tools/graphics/epstool/default.nix b/nixpkgs/pkgs/tools/graphics/epstool/default.nix
index 8052434ff0b8..6910f458a17d 100644
--- a/nixpkgs/pkgs/tools/graphics/epstool/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/epstool/default.nix
@@ -9,6 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "1pfgqbipwk36clhma2k365jkpvyy75ahswn8jczzys382jalpwgk";
   };
 
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "CLINK=${stdenv.cc.targetPrefix}cc"
+    "LINK=${stdenv.cc.targetPrefix}cc"
+  ];
+
   installPhase = ''
     make EPSTOOL_ROOT=$out install
   '';
@@ -20,6 +26,6 @@ stdenv.mkDerivation rec {
     homepage = "http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm";
     license = licenses.gpl2;
     maintainers = [ maintainers.asppsa ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/escrotum/default.nix b/nixpkgs/pkgs/tools/graphics/escrotum/default.nix
index 4a887688c4f5..decb92615f97 100644
--- a/nixpkgs/pkgs/tools/graphics/escrotum/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/escrotum/default.nix
@@ -1,9 +1,7 @@
-{ lib, fetchFromGitHub, buildPythonApplication
-, pygtk
-, numpy ? null
+{ lib, python2Packages, fetchFromGitHub
 }:
 
-buildPythonApplication {
+with python2Packages; buildPythonApplication {
   name = "escrotum-2019-06-10";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/tools/graphics/fgallery/default.nix b/nixpkgs/pkgs/tools/graphics/fgallery/default.nix
index 40308ffa1a9a..28deabb98d14 100644
--- a/nixpkgs/pkgs/tools/graphics/fgallery/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/fgallery/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
     sha256 = "18wlvqbxcng8pawimbc8f2422s8fnk840hfr6946lzsxr0ijakvf";
   };
 
-  buildInputs = [ unzip makeWrapper ] ++ (with perlPackages; [ perl ImageExifTool CpanelJSONXS ]);
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = (with perlPackages; [ perl ImageExifTool CpanelJSONXS ]);
 
   installPhase = ''
     mkdir -p "$out/bin"
diff --git a/nixpkgs/pkgs/tools/graphics/gifski/default.nix b/nixpkgs/pkgs/tools/graphics/gifski/default.nix
index de8662212678..7449eedb3a7f 100644
--- a/nixpkgs/pkgs/tools/graphics/gifski/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gifski/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gifski";
-  version = "1.3.3";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "ImageOptim";
     repo = "gifski";
     rev = version;
-    sha256 = "sha256-dBgDIS6U2iKzyo5nO0NOD488zfEbaZJH7luJN6khrnc=";
+    sha256 = "sha256-Cm/w0bwDMu5REsQpkwMBgnROxpI+nMQwC16dY/VdOFU=";
   };
 
-  cargoSha256 = "sha256-/i5ZBCWFlhoheHsCI5f9yJ7sa6l/DB4AJckq5orinwI=";
+  cargoSha256 = "sha256-fy8apB1UbpBAnp8mFnL7rNj/GSSUkNz/trqsVrAfFfI=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/gmic/default.nix b/nixpkgs/pkgs/tools/graphics/gmic/default.nix
index 92956aa53e34..b50716188e95 100644
--- a/nixpkgs/pkgs/tools/graphics/gmic/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gmic/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gmic";
-  version = "2.9.5";
+  version = "2.9.6";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://gmic.eu/files/source/gmic_${version}.tar.gz";
-    sha256 = "sha256-KV/Ti6mPW+FASjug6q8Qfgra8L/TIyl/Y6JwANzQreE=";
+    sha256 = "sha256-0i/oUVrxbc0FDQmgvHEn7Cn0eVznMqDGw+r4OTVrwRo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/graphviz/base.nix b/nixpkgs/pkgs/tools/graphics/graphviz/base.nix
index 6c9a84710517..000e2b280891 100644
--- a/nixpkgs/pkgs/tools/graphics/graphviz/base.nix
+++ b/nixpkgs/pkgs/tools/graphics/graphviz/base.nix
@@ -2,9 +2,7 @@
 
 { lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, cairo, expat, flex
 , fontconfig, gd, gettext, gts, libdevil, libjpeg, libpng, libtool, pango
-, yacc, fetchpatch, xorg ? null, ApplicationServices ? null }:
-
-assert stdenv.isDarwin -> ApplicationServices != null;
+, bison, fetchpatch, xorg ? null, ApplicationServices }:
 
 let
   inherit (lib) optional optionals optionalString;
@@ -39,7 +37,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [
-    libpng libjpeg expat yacc libtool fontconfig gd gts libdevil flex pango
+    libpng libjpeg expat bison libtool fontconfig gd gts libdevil flex pango
     gettext
   ] ++ optionals (xorg != null) (with xorg; [ libXrender libXaw libXpm ])
     ++ optionals (stdenv.isDarwin) [ ApplicationServices ];
diff --git a/nixpkgs/pkgs/tools/graphics/icoutils/default.nix b/nixpkgs/pkgs/tools/graphics/icoutils/default.nix
index 704c3a2db526..9fe41d91db21 100644
--- a/nixpkgs/pkgs/tools/graphics/icoutils/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/icoutils/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1q66cksms4l62y0wizb8vfavhmf7kyfgcfkynil3n99s0hny1aqp";
   };
 
-  buildInputs = [ makeWrapper libpng perl ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ libpng perl ];
   propagatedBuildInputs = [ perlPackages.LWP ];
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/tools/graphics/imgurbash2/default.nix b/nixpkgs/pkgs/tools/graphics/imgurbash2/default.nix
index 8b79e3373a68..30848d7d0dc9 100644
--- a/nixpkgs/pkgs/tools/graphics/imgurbash2/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/imgurbash2/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A shell script that uploads images to imgur";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ abbradar ];
     homepage = "https://github.com/ram-on/imgurbash2";
   };
diff --git a/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix b/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix
index 77acafcb8125..6291dc9d6423 100644
--- a/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix
@@ -1,4 +1,4 @@
-{ lib, pkgs, makeWrapper, haskellPackages, haskell, pandoc, imagemagick7 }:
+{ lib, pkgs, makeWrapper, haskellPackages, haskell, pandoc, imagemagick }:
 
 with lib;
 with haskell.lib;
@@ -29,7 +29,7 @@ justStaticExecutables (overrideCabal ldgallery-compiler (oldAttrs: {
 
     # wrapper for runtime dependencies registration
     wrapProgram "$out/bin/ldgallery" \
-      --prefix PATH : ${lib.makeBinPath [ imagemagick7 ]}
+      --prefix PATH : ${lib.makeBinPath [ imagemagick ]}
 
     # bash completion
     mkdir -p "$out/share/bash-completion/completions"
diff --git a/nixpkgs/pkgs/tools/graphics/lprof/default.nix b/nixpkgs/pkgs/tools/graphics/lprof/default.nix
deleted file mode 100644
index a1c81f16f2bd..000000000000
--- a/nixpkgs/pkgs/tools/graphics/lprof/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchurl, sconsPackages, qt3, lcms1, libtiff, vigra }:
-
-/*  how to calibrate your monitor:
-    Eg see https://wiki.archlinux.org/index.php/ICC_Profiles#Loading_ICC_Profiles
-*/
-stdenv.mkDerivation {
-  name = "lprof-1.11.4.1";
-  nativeBuildInputs = [ sconsPackages.scons_3_0_1 ];
-  buildInputs = [ qt3 lcms1 libtiff vigra ];
-
-  hardeningDisable = [ "format" ];
-
-  preConfigure = ''
-    export QTDIR=${qt3}
-    export qt_directory=${qt3}
-  '';
-
-  src = fetchurl {
-    url = "mirror://sourceforge/lprof/lprof/lprof-1.11.4/lprof-1.11.4.1.tar.gz";
-    sha256 = "0q8x24fm5yyvm151xrl3l03p7hvvciqnkbviprfnvlr0lyg9wsrn";
-  };
-
-  sconsFlags = "SYSLIBS=1";
-  preBuild = ''
-    export CXX=g++
-  '';
-  prefixKey = "PREFIX=";
-
-  patches = [ ./lcms-1.17.patch  ./keep-environment.patch ];
-
-  meta = {
-    description = "Little CMS ICC profile construction set";
-    homepage = "https://sourceforge.net/projects/lprof";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
-    broken = true; # Broken since 2020-07-28 (https://hydra.nixos.org/build/135234622)
-  };
-}
diff --git a/nixpkgs/pkgs/tools/graphics/lprof/keep-environment.patch b/nixpkgs/pkgs/tools/graphics/lprof/keep-environment.patch
deleted file mode 100644
index 7d0beaed587a..000000000000
--- a/nixpkgs/pkgs/tools/graphics/lprof/keep-environment.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- lprof-1.11.4.1.org/SConstruct	2006-06-06 02:11:32.000000000 +0100
-+++ lprof-1.11.4.1/SConstruct	2017-08-29 12:56:13.425654683 +0100
-@@ -22,12 +22,7 @@
- # opts.Add(BoolOption('qt-mt-lib', 'Flag used to set QT library to either qt-mt or qt. Value of 1 = qt-mt, 0 = qt.', 'yes'))
- 
- # setup base environment 
--env = Environment(
--    ENV = {
--      'PATH' : os.environ[ 'PATH' ],
--      'HOME' : os.environ[ 'HOME' ], # required for distcc
--      'LDFLAGS' : ''
--    }, options = opts)
-+env = Environment(ENV = os.environ, options = opts)
- 
- opts.Update(env)
- opts.Save('lprof.conf', env) # Save, so user doesn't have to 
diff --git a/nixpkgs/pkgs/tools/graphics/lprof/lcms-1.17.patch b/nixpkgs/pkgs/tools/graphics/lprof/lcms-1.17.patch
deleted file mode 100644
index a88471e143fd..000000000000
--- a/nixpkgs/pkgs/tools/graphics/lprof/lcms-1.17.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/src/liblprof/lcmsprf.h	2007-08-31 15:36:20.000000000 -0700
-+++ b/src/liblprof/lcmsprf.h	2007-08-31 15:37:39.000000000 -0700
-@@ -67,6 +67,9 @@
- #define mmax(a,b) ((a) > (b)?(a):(b))
- #endif
- 
-+#if LCMS_VERSION > 116
-+typedef int BOOL;
-+#endif
- 
- /* Misc operations ------------------------------------------------------------------------ */
- 
-
diff --git a/nixpkgs/pkgs/tools/graphics/nip2/default.nix b/nixpkgs/pkgs/tools/graphics/nip2/default.nix
index ae07d0ced2db..5fa2d2639625 100644
--- a/nixpkgs/pkgs/tools/graphics/nip2/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/nip2/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, libxml2, flex, bison, vips, gnome2,
-fftw, gsl, goffice, libgsf }:
+{ lib, stdenv, fetchurl, pkg-config, glib, libxml2, flex, bison, vips, gtk2
+, fftw, gsl, goffice, libgsf }:
 
 stdenv.mkDerivation rec {
   pname = "nip2";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs =
   [ pkg-config glib libxml2 flex bison vips
-    gnome2.gtk fftw gsl goffice libgsf
+    gtk2 fftw gsl goffice libgsf
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/graphics/pdfread/default.nix b/nixpkgs/pkgs/tools/graphics/pdfread/default.nix
index abe560c81feb..8350e95188d3 100644
--- a/nixpkgs/pkgs/tools/graphics/pdfread/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pdfread/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
     sha256 = "0mzxpnk97f0ww5ds7h4wsval3g4lnrhv6rhspjs7cy4i41gmk8an";
   };
 
-  buildInputs = [ unzip python makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ python ];
 
   broken = true; # Not found.
 
diff --git a/nixpkgs/pkgs/tools/graphics/pfstools/default.nix b/nixpkgs/pkgs/tools/graphics/pfstools/default.nix
index ded996741864..99b9e3e0e487 100644
--- a/nixpkgs/pkgs/tools/graphics/pfstools/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pfstools/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, mkDerivation, fetchurl, cmake, pkg-config, darwin
-, openexr, zlib, imagemagick, libGLU, libGL, freeglut, fftwFloat
+, openexr, zlib, imagemagick6, libGLU, libGL, freeglut, fftwFloat
 , fftw, gsl, libexif, perl, opencv2, qtbase, netpbm
 }:
 
@@ -27,7 +27,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [
-    openexr zlib imagemagick fftwFloat
+    openexr zlib imagemagick6 fftwFloat
     fftw gsl libexif perl opencv2 qtbase netpbm
   ] ++ (if stdenv.isDarwin then (with darwin.apple_sdk.frameworks; [
     OpenGL GLUT
diff --git a/nixpkgs/pkgs/tools/graphics/pngcrush/default.nix b/nixpkgs/pkgs/tools/graphics/pngcrush/default.nix
index e4a8b705a165..18a156ea504b 100644
--- a/nixpkgs/pkgs/tools/graphics/pngcrush/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pngcrush/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0l43c59d6v9l0g07z3q3ywhb8xb3vz74llv3mna0izk9bj6aqkiv";
   };
 
-  makeFlags = [ "CC=cc" "LD=cc" ];      # gcc and/or clang compat
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "LD=${stdenv.cc.targetPrefix}cc" ];      # gcc and/or clang compat
 
   configurePhase = ''
     sed -i s,/usr,$out, Makefile
diff --git a/nixpkgs/pkgs/tools/graphics/resvg/default.nix b/nixpkgs/pkgs/tools/graphics/resvg/default.nix
index 8c8164a7e8ef..e0968dd6271e 100644
--- a/nixpkgs/pkgs/tools/graphics/resvg/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/resvg/default.nix
@@ -1,23 +1,26 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ stdenv, lib, rustPlatform, fetchFromGitHub, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "resvg";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "RazrFalcon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Jo+dx4+3GpEwOoE8HH0YahBmPvT9Oy2qXMvCJ/NZhF0=";
+    sha256 = "sha256-fd97w6yd9ZX2k8Vq+Vh6jouufGdFE02ZV8mb+BtA3tk=";
   };
 
-  cargoSha256 = "sha256-8Es9NZYsC/9PZ6ytWZTAH42U3vxZtJERPSsno1s4TEc=";
+  cargoSha256 = "sha256-LlEYfjUINQW/YrhNp/Z+fdLQPcvrTjNFtDAk1gyAuj0=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   doCheck = false;
 
   meta = with lib; {
     description = "An SVG rendering library";
     homepage = "https://github.com/RazrFalcon/resvg";
+    changelog = "https://github.com/RazrFalcon/resvg/raw/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix b/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix
index cb5a37527bf6..19359698f02e 100644
--- a/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     description = "A tool designed for parsing and converting SPIR-V to other shader languages";
     homepage = "https://github.com/KhronosGroup/SPIRV-Cross";
     changelog = "https://github.com/KhronosGroup/SPIRV-Cross/releases/tag/${version}";
-    platforms = platforms.linux;
+    platforms = platforms.all;
     license = licenses.asl20;
     maintainers = with maintainers; [ Flakebi ];
   };
diff --git a/nixpkgs/pkgs/tools/graphics/structure-synth/default.nix b/nixpkgs/pkgs/tools/graphics/structure-synth/default.nix
index ec2cb359a5e0..5f6e655882ab 100644
--- a/nixpkgs/pkgs/tools/graphics/structure-synth/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/structure-synth/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
     sha256 = "1kiammx46719az6jzrav8yrwz82nk4m72ybj0kpbnvp9wfl3swbb";
   };
 
-  buildInputs = [ qt4 unzip libGLU makeWrapper ];
-  nativeBuildInputs = [ qmake4Hook ];
+  buildInputs = [ qt4 libGLU ];
+  nativeBuildInputs = [ qmake4Hook makeWrapper unzip ];
 
   # Thanks to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=672000#15:
   patches = [ ./gcc47.patch ];
diff --git a/nixpkgs/pkgs/tools/graphics/welkin/default.nix b/nixpkgs/pkgs/tools/graphics/welkin/default.nix
index 53e7378bd3be..2f9c43373bbe 100644
--- a/nixpkgs/pkgs/tools/graphics/welkin/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/welkin/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "welkin-r9638/tags/${version}";
 
-  buildInputs = [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   installPhase = ''
     mkdir -p $out/{bin,share}
diff --git a/nixpkgs/pkgs/tools/graphics/zbar/default.nix b/nixpkgs/pkgs/tools/graphics/zbar/default.nix
index 301e760cb569..df0983b2d645 100644
--- a/nixpkgs/pkgs/tools/graphics/zbar/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/zbar/default.nix
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "zbar";
-  version = "0.23.1";
+  version = "0.23.90";
 
   outputs = [ "out" "lib" "dev" "doc" "man" ];
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "mchehab";
     repo = "zbar";
     rev = version;
-    sha256 = "0l4nxha8k18iqzrbqpgca49lrf1gigy3kpbzl3ldw2lw8alwy8x2";
+    sha256 = "sha256-FvV7TMc4JbOiRjWLka0IhtpGGqGm5fis7h870OmJw2U=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/anthy/default.nix b/nixpkgs/pkgs/tools/inputmethods/anthy/default.nix
index f337d4648d57..03c692de8eca 100644
--- a/nixpkgs/pkgs/tools/inputmethods/anthy/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/anthy/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     homepage    = "https://anthy.osdn.jp/";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ ericsagnes ];
-    platforms   = platforms.linux;
+    platforms   = platforms.unix;
   };
 
   src = fetchurl {
diff --git a/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix b/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix
index 66f264bc7a36..456a57a13516 100644
--- a/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix
@@ -12,7 +12,6 @@ rustPlatform.buildRustPackage rec {
   };
 
   cargoSha256 = "1dcyhxfyq0nrjl05g1s9pjkg7vqw63wbdhlskrdcvxncmci3s7rp";
-  verifyCargoDeps = true;
 
   meta = with lib; {
     homepage = "https://github.com/myfreeweb/${pname}";
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix
index 2af4061ae046..2767b4c7c0ef 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix
@@ -42,6 +42,8 @@ stdenv.mkDerivation rec {
       cp -rv ${store_path} $NIX_BUILD_TOP/$name/data/${ZHUYIN_DATA_FILE_NAME}
     '';
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     isFcitxEngine = true;
     description  = "Fcitx Wrapper for libpinyin, Library to deal with pinyin";
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx/unwrapped.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx/unwrapped.nix
index 35683101918d..e9d7f0765b7b 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx/unwrapped.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx/unwrapped.nix
@@ -2,7 +2,7 @@
 , libxml2, enchant2, isocodes, icu, libpthreadstubs
 , pango, cairo, libxkbfile, libXau, libXdmcp, libxkbcommon
 , dbus, gtk2, gtk3, qt4, extra-cmake-modules
-, xkeyboard_config, pcre, libuuid
+, xkeyboard_config, pcre, libuuid, xorg, makeWrapper
 , withPinyin ? true
 , fetchFromGitLab
 }:
@@ -68,7 +68,12 @@ stdenv.mkDerivation rec {
     patchShebangs cmake/
   '';
 
-  nativeBuildInputs = [ cmake extra-cmake-modules intltool pkg-config pcre ];
+  postInstall = ''
+    wrapProgram $out/bin/fcitx \
+      --prefix PATH : "${xorg.xmodmap}/bin"
+  '';
+
+  nativeBuildInputs = [ cmake extra-cmake-modules intltool pkg-config pcre makeWrapper ];
 
   buildInputs = [
     xkeyboard_config enchant2 gettext isocodes icu libpthreadstubs libXau libXdmcp libxkbfile
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
index 0daeaa794cee..1b76cec554d8 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
@@ -1,5 +1,4 @@
 { lib, stdenv
-, fetchurl
 , fetchFromGitHub
 , cmake
 , extra-cmake-modules
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
index 6184ea36549b..560393b31939 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-lua";
-  version = "5.0.2";
+  version = "5.0.3";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-lua";
     rev = version;
-    sha256 = "sha256-lFlHn2q/kpq1EIKKhYVdJofXqtOHnpLz7PoWuNAhmhE=";
+    sha256 = "sha256-46s3F3NHGuef0wPhYiPocms0jv5Vo+cVRd5FzlfjMZY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-mozc.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-mozc.nix
index 08f43b87cfe2..d077b0a25c59 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-mozc.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-mozc.nix
@@ -9,17 +9,6 @@ let
     rev = "e5b3425575734c323e1d947009dd74709437b684";
     sha256 = "0pyrpz9c8nxccwpgyr36w314mi8h132cis8ijvlqmmhqxwsi30hm";
   };
-  # abseil-cpp in nixpkgs is too old
-  abseil-cpp_2020923 = abseil-cpp.overrideAttrs (old: rec {
-    version = "20200923.2";
-    src = fetchFromGitHub {
-      owner = "abseil";
-      repo = "abseil-cpp";
-      rev = version;
-      sha256 = "G+wkaC4IPtyc/xCUyVFJOcHppPFU7KkhIHjv6uhVKGU=";
-    };
-    cmakeFlags = [ "-DCMAKE_CXX_STANDARD=17" "-DBUILD_SHARED_LIBS=ON" ];
-  });
   zipcode_rel = "202011";
   jigyosyo = fetchurl {
     url = "https://osdn.net/projects/ponsfoot-aur/storage/mozc/jigyosyo-${zipcode_rel}.zip";
@@ -44,7 +33,7 @@ in clangStdenv.mkDerivation rec {
 
   nativeBuildInputs = [ gyp ninja mesa python pkg-config qt5.wrapQtAppsHook six which unzip ];
 
-  buildInputs = [ protobuf zinnia qt5.qtbase fcitx5 abseil-cpp_2020923 jsoncpp gtest gtk2 ];
+  buildInputs = [ protobuf zinnia qt5.qtbase fcitx5 abseil-cpp jsoncpp gtest gtk2 ];
 
   patches = [
     # Support linking system abseil-cpp
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
index 8e5254b75c43..f8601a64e2ac 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-rime";
-  version = "5.0.3";
+  version = "5.0.4";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-rime";
     rev = version;
-    sha256 = "sha256-mPNZ/B5bpxua+E1T+oz9v2QKAzGraA2cfT8oJacC35U=";
+    sha256 = "sha256-WB+bWvJxL2yywictNN8Zy0OYxiCRErQGL2dGH4zQPp8=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
index 4feae0d4acc1..5e42016ec7c4 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-other";
-  version = "5.0.2";
+  version = "5.0.3";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-table-other";
     rev = version;
-    sha256 = "sha256-P+KaUmjAHe1CZ5rNMQAxwKSW5ZMVgQcwkgdlungXTLM=";
+    sha256 = "sha256-jJTFAOrBeRBoUn0mqqkX0z1zQnDOh7otMHDPmjuZbWw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/with-addons.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/with-addons.nix
index 17501d5f3622..020e829f0987 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/with-addons.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/with-addons.nix
@@ -5,7 +5,7 @@ symlinkJoin {
 
   paths = [ fcitx5 fcitx5-configtool fcitx5-lua fcitx5-qt fcitx5-gtk ] ++ addons;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     wrapProgram $out/bin/fcitx5 \
diff --git a/nixpkgs/pkgs/tools/inputmethods/hime/default.nix b/nixpkgs/pkgs/tools/inputmethods/hime/default.nix
index 8ec6146a0209..988f8941d14b 100644
--- a/nixpkgs/pkgs/tools/inputmethods/hime/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/hime/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
 
   preConfigure = "patchShebangs configure";
   configureFlags = [ "--disable-lib64" "--disable-qt5-immodule" ];
-
+  dontWrapQtApps = true;
 
   meta = with lib; {
     homepage = "http://hime-ime.github.io/";
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
index 60b5d6778b44..d04de7bafebc 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-anthy";
-  version = "1.5.11";
+  version = "1.5.12";
 
   src = fetchurl {
     url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1zwgswpibh67sgbza8kvg03v06maxc08ihkgm5hmh333sjq9d5c0";
+    sha256 = "sha256-6edY3dRq4pI3bqsXEYf6jyBjDwpXzRKKQSCP3N/fV7s=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
index 9f5f9956b0e3..623c29124ff1 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-bamboo";
-  version = "0.6.8";
+  version = "0.6.9";
 
   src = fetchFromGitHub {
     owner = "BambooEngine";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17zgxqlsjkqyjywynqzmymw310aypcsjdrwnc7hx7v7xwal8iwjk";
+    sha256 = "sha256-7UXURvZX5UrpLHFYgBnuTX/sKQkubnBlvkSD/WBa4ZU=";
   };
 
   nativeBuildInputs = [
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 1949f3f0da0f..ea82ccaf96b7 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, which, ninja, python, pkg-config, protobuf
+{ lib, stdenv, fetchFromGitHub, which, ninja, pkg-config, protobuf
 , ibus, gtk2, zinnia, qt5, libxcb, tegaki-zinnia-japanese, python3Packages }:
 
 let
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 00a499fb104b..ac29545db3b0 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-table";
-  version = "1.12.3";
+  version = "1.12.4";
 
   src = fetchFromGitHub {
     owner  = "kaio";
     repo   = "ibus-table";
     rev    = version;
-    sha256 = "sha256-iVbct7p+i8ifSQzOFUUnJU0RHX36cFiTlv7p79iawj8=";
+    sha256 = "sha256-2qST5k2+8gfSf1/FaxXW4qwSQgNw/QKM+1mMWDdrjCU=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix
index c555c507d7bc..a0aea92ea4af 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix
@@ -60,13 +60,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ibus";
-  version = "1.5.23";
+  version = "1.5.24";
 
   src = fetchFromGitHub {
     owner = "ibus";
     repo = "ibus";
     rev = version;
-    sha256 = "0qnblqhz8wyhchnm36zrxhbvi9g4fcwcgmw7p60yjybdlhq4asc7";
+    sha256 = "sha256-1qx06MlEUjSS067FdQG1Bdi4ZAh3hPcNjUX5PIiC3Sk=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/lisgd/default.nix b/nixpkgs/pkgs/tools/inputmethods/lisgd/default.nix
new file mode 100644
index 000000000000..02344d153dbf
--- /dev/null
+++ b/nixpkgs/pkgs/tools/inputmethods/lisgd/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, writeText
+, libinput
+, libX11
+, conf ? null
+, patches ? [ ]
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lisgd";
+  version = "0.3.0";
+
+  src = fetchFromSourcehut {
+    owner = "~mil";
+    repo = "lisgd";
+    rev = version;
+    sha256 = "0g2pwff2c6ipxz83l26kx4rs3vah9qlm4h0n4x1k80mzqzf15hb6";
+  };
+
+  inherit patches;
+
+  postPatch = let
+    configFile = if lib.isDerivation conf || lib.isPath conf then
+      conf
+    else
+      writeText "config.def.h" conf;
+  in lib.optionalString (conf != null) ''
+    cp ${configFile} config.def.h
+  '';
+
+  buildInputs = [
+    libinput
+    libX11
+  ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  meta = with lib; {
+    description = "Bind gestures via libinput touch events";
+    homepage = "https://git.sr.ht/~mil/lisgd";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/inputmethods/tegaki-zinnia-japanese/default.nix b/nixpkgs/pkgs/tools/inputmethods/tegaki-zinnia-japanese/default.nix
index 6829de9241b4..627445136410 100644
--- a/nixpkgs/pkgs/tools/inputmethods/tegaki-zinnia-japanese/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/tegaki-zinnia-japanese/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
     maintainers = [ maintainers.gebner ];
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   makeFlags = [ "installpath=$(out)/share/tegaki/models/zinnia/" ];
 }
diff --git a/nixpkgs/pkgs/tools/misc/0x0/default.nix b/nixpkgs/pkgs/tools/misc/0x0/default.nix
index e0f84329b897..0b9c6f7c3bbb 100644
--- a/nixpkgs/pkgs/tools/misc/0x0/default.nix
+++ b/nixpkgs/pkgs/tools/misc/0x0/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "1qpylyxrisy3p2lyirfarfj5yzrdjgsgxwf8gqwljpcjn207hr72";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     install -Dm755 0x0 $out/bin/0x0
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     homepage = "https://gitlab.com/somasis/scripts/";
     maintainers = [ maintainers.ar1a ];
     license = licenses.unlicense;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/3mux/default.nix b/nixpkgs/pkgs/tools/misc/3mux/default.nix
index 3c51210edc7a..4b5db58c6401 100644
--- a/nixpkgs/pkgs/tools/misc/3mux/default.nix
+++ b/nixpkgs/pkgs/tools/misc/3mux/default.nix
@@ -1,24 +1,38 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper }:
 
 buildGoModule rec {
   pname = "3mux";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "aaronjanse";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-auEMG3txO2JS/2dMFBtEujv9s5I0A80Vwts5kXjH600=";
+    sha256 = "sha256-QT4QXTlJf2NfTqXE4GF759EoW6Ri12lxDyodyEFc+ag=";
   };
 
-  vendorSha256 = "sha256-rcbnyScD2GU1DLY6dTEPgFNXZfgkxXPn5lt6HRqa0d8=";
+  nativeBuildInputs = [ makeWrapper ];
+
+  vendorSha256 = "sha256-tbziQZIA1+b+ZtvA/865c8YQxn+r8HQy6Pqaac2kwcU=";
+
+  # This is a package used for internally testing 3mux. It's meant for
+  # use by 3mux maintainers/contributors only.
+  excludedPackages = [ "fuzz" ];
+
+  # 3mux needs to have itself in the path so users can run `3mux detach`.
+  # This ensures that, while inside 3mux, the binary in the path is the
+  # same version as the 3mux hosting the session. This also allows users
+  # to use 3mux via `nix run nixpkgs#_3mux` (otherwise they'd get "command
+  # not found").
+  postInstall = ''
+    wrapProgram $out/bin/3mux --prefix PATH : $out/bin
+  '';
 
   meta = with lib; {
     description = "Terminal multiplexer inspired by i3";
     longDescription = ''
-      3mux is a terminal multiplexer with out-of-the-box support for search,
-      mouse-controlled scrollback, and i3-like keybindings. Imagine tmux with a
-      smaller learning curve and more sane defaults.
+      Terminal multiplexer with out-of-the-box support for search,
+      mouse-controlled scrollback, and i3-like keybindings
     '';
     homepage = "https://github.com/aaronjanse/3mux";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/misc/abduco/default.nix b/nixpkgs/pkgs/tools/misc/abduco/default.nix
index dbba2193b14c..9493df1c66c4 100644
--- a/nixpkgs/pkgs/tools/misc/abduco/default.nix
+++ b/nixpkgs/pkgs/tools/misc/abduco/default.nix
@@ -1,23 +1,23 @@
 { lib, stdenv, fetchFromGitHub, writeText, conf ? null }:
 
-with lib;
-
 stdenv.mkDerivation rec {
-  name = "abduco-2018-05-16";
+  pname = "abduco";
+  version = "2020-04-30";
 
   src = fetchFromGitHub {
     owner = "martanne";
     repo = "abduco";
-    rev = "8f80aa8044d7ecf0e43a0294a09007d056b20e4c";
-    sha256 = "0wqcif633nbgnznn46j0sng9l0wncppw1x1c42f75b4p9hrph203";
+    rev = "8c32909a159aaa9484c82b71f05b7a73321eb491";
+    sha256 = "0a3p8xljhpk7zh203s75248blfir15smgw5jmszwbmdpy4mqzd53";
   };
 
-  configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
-  preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+  preBuild = lib.optionalString (conf != null)
+    "cp ${writeText "config.def.h" conf} config.def.h";
 
+  installFlags = [ "install-completion" ];
   CFLAGS = lib.optionalString stdenv.isDarwin "-D_DARWIN_C_SOURCE";
 
-  meta = {
+  meta = with lib; {
     homepage = "http://brain-dump.org/projects/abduco";
     license = licenses.isc;
     description = "Allows programs to be run independently from its controlling terminal";
diff --git a/nixpkgs/pkgs/tools/misc/agedu/default.nix b/nixpkgs/pkgs/tools/misc/agedu/default.nix
index 2146d0c24914..9c4b5c00a665 100644
--- a/nixpkgs/pkgs/tools/misc/agedu/default.nix
+++ b/nixpkgs/pkgs/tools/misc/agedu/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation {
     homepage = "https://www.chiark.greenend.org.uk/~sgtatham/agedu/";
     license = licenses.mit;
     maintainers = with maintainers; [ symphorien ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/anystyle-cli/Gemfile b/nixpkgs/pkgs/tools/misc/anystyle-cli/Gemfile
new file mode 100644
index 000000000000..be47216200d2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/anystyle-cli/Gemfile
@@ -0,0 +1,37 @@
+source 'https://rubygems.org'
+gemspec
+
+
+group :development, :test do
+  #gem 'anystyle-data', github: 'inukshuk/anystyle-data'
+  #gem 'wapiti', github: 'inukshuk/wapiti-ruby'
+  gem 'bibtex-ruby'
+  gem 'rake'
+  gem 'rspec', '~>3.0'
+  gem 'language_detector', github: 'feedbackmine/language_detector'
+  gem 'unicode-scripts'
+  gem 'edtf'
+  gem 'citeproc'
+  gem 'unicode_utils' if RUBY_VERSION < '2.4'
+end
+
+group :coverage do
+  gem 'simplecov', require: false
+  gem 'coveralls', require: false if ENV['CI']
+end
+
+group :debug do
+  gem 'byebug', require: false
+end
+
+group :profile do
+  gem 'ruby-prof', require: false
+  gem 'gnuplot', require: false
+end
+
+group :extra do
+  gem 'lmdb'
+  gem 'redis'
+  gem 'redis-namespace'
+  gem 'yard'
+end
diff --git a/nixpkgs/pkgs/tools/misc/anystyle-cli/Gemfile.lock b/nixpkgs/pkgs/tools/misc/anystyle-cli/Gemfile.lock
new file mode 100644
index 000000000000..8d28ef808948
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/anystyle-cli/Gemfile.lock
@@ -0,0 +1,99 @@
+GIT
+  remote: https://github.com/feedbackmine/language_detector.git
+  revision: 89102790194150b3a8110ce691f9989b8ce70f8d
+  specs:
+    language_detector (0.1.2)
+
+PATH
+  remote: .
+  specs:
+    anystyle (1.3.10)
+      anystyle-data (~> 1.2)
+      bibtex-ruby (~> 5.0)
+      gli (~> 2.17)
+      namae (~> 1.0)
+      wapiti (~> 1.0, >= 1.0.2)
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    activesupport (6.0.3.2)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+      zeitwerk (~> 2.2, >= 2.2.2)
+    anystyle-data (1.2.0)
+    bibtex-ruby (5.1.4)
+      latex-decode (~> 0.0)
+    builder (3.2.4)
+    byebug (11.1.3)
+    citeproc (1.0.10)
+      namae (~> 1.0)
+    concurrent-ruby (1.1.7)
+    diff-lcs (1.4.4)
+    docile (1.3.2)
+    edtf (3.0.5)
+      activesupport (>= 3.0, < 7.0)
+    gli (2.19.2)
+    gnuplot (2.6.2)
+    i18n (1.8.5)
+      concurrent-ruby (~> 1.0)
+    latex-decode (0.3.1)
+    lmdb (0.5.3)
+    minitest (5.14.1)
+    namae (1.0.1)
+    rake (13.0.1)
+    redis (4.2.1)
+    redis-namespace (1.8.0)
+      redis (>= 3.0.4)
+    rspec (3.9.0)
+      rspec-core (~> 3.9.0)
+      rspec-expectations (~> 3.9.0)
+      rspec-mocks (~> 3.9.0)
+    rspec-core (3.9.2)
+      rspec-support (~> 3.9.3)
+    rspec-expectations (3.9.2)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.9.0)
+    rspec-mocks (3.9.1)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.9.0)
+    rspec-support (3.9.3)
+    ruby-prof (1.4.1)
+    simplecov (0.19.0)
+      docile (~> 1.1)
+      simplecov-html (~> 0.11)
+    simplecov-html (0.12.2)
+    thread_safe (0.3.6)
+    tzinfo (1.2.7)
+      thread_safe (~> 0.1)
+    unicode-scripts (1.6.0)
+    wapiti (1.0.7)
+      builder (~> 3.2)
+    yard (0.9.25)
+    zeitwerk (2.4.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  anystyle!
+  bibtex-ruby
+  byebug
+  citeproc
+  edtf
+  gnuplot
+  language_detector!
+  lmdb
+  rake
+  redis
+  redis-namespace
+  rspec (~> 3.0)
+  ruby-prof
+  simplecov
+  unicode-scripts
+  yard
+
+BUNDLED WITH
+   2.1.4
diff --git a/nixpkgs/pkgs/tools/misc/anystyle-cli/anystyle.gemspec b/nixpkgs/pkgs/tools/misc/anystyle-cli/anystyle.gemspec
new file mode 100644
index 000000000000..57db427fb024
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/anystyle-cli/anystyle.gemspec
@@ -0,0 +1,52 @@
+# -*- encoding: utf-8 -*-
+lib = File.expand_path('../lib/', __FILE__)
+$:.unshift lib unless $:.include?(lib)
+
+require 'anystyle/version'
+
+Gem::Specification.new do |s|
+  s.name         = 'anystyle'
+  s.version      = AnyStyle::VERSION.dup
+  s.platform     = Gem::Platform::RUBY
+  s.authors      = ['Sylvester Keil']
+  s.email        = ['http://sylvester.keil.or.at']
+  s.homepage     = 'http://anystyle.io'
+  s.summary      = 'Smart and fast bibliography parser.'
+  s.description  = 'A sophisticated parser for academic reference lists and bibliographies based on machine learning algorithms using conditional random fields.'
+  s.license      = 'BSD-2-Clause'
+  s.executables  = []
+  s.require_path = 'lib'
+
+  s.required_ruby_version = '>= 2.2'
+
+  s.add_runtime_dependency('bibtex-ruby', '~>5.0')
+  s.add_runtime_dependency('anystyle-data', '~>1.2')
+  s.add_runtime_dependency('gli', '~>2.17')
+  s.add_runtime_dependency('wapiti', '~>1.0', '>=1.0.2')
+  s.add_runtime_dependency('namae', '~>1.0')
+
+  s.files =
+    `git ls-files`.split("\n") - `git ls-files spec`.split("\n") - %w{
+      .coveralls.yml
+      .gitignore
+      .rspec
+      .simplecov
+      .travis.yml
+      Gemfile
+      Rakefile
+      appveyor.yml
+      anystyle.gemspec
+      res/core.xml
+    }
+
+  s.rdoc_options = %w{
+    --line-numbers
+    --inline-source
+    --title "AnyStyle"
+    --main README.md
+  }
+  s.extra_rdoc_files = %w{README.md LICENSE}
+
+end
+
+# vim: syntax=ruby
diff --git a/nixpkgs/pkgs/tools/misc/anystyle-cli/default.nix b/nixpkgs/pkgs/tools/misc/anystyle-cli/default.nix
new file mode 100644
index 000000000000..7a437cafc281
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/anystyle-cli/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildRubyGem
+, bundlerEnv
+, ruby
+, poppler_utils
+}:
+let
+  deps = bundlerEnv rec {
+    name = "anystyle-cli-${version}";
+    source.sha256 = lib.fakeSha256;
+    version = "1.3.1";
+    inherit ruby;
+    gemdir = ./.;
+    gemset = lib.recursiveUpdate (import ./gemset.nix) {
+      anystyle.source = {
+        remotes = ["https://rubygems.org"];
+        sha256 = "1w79zcia60nnnyrmyvpd10pmxrpk5c7lj9gmmblhwi8x5mfq9k0n";
+        type = "gem";
+      };
+    };
+  };
+in
+buildRubyGem rec {
+  inherit ruby;
+  gemName = "anystyle-cli";
+  pname = gemName;
+  version = "1.3.1";
+  source.sha256 = "1a3ifwxwqkp5dnfk9r8qq8kgfb8k1pl7jjdghbb8ixbxz9ac7awy";
+
+  propagatedBuildInputs = [ deps ];
+
+  preFixup = ''
+    wrapProgram $out/bin/anystyle --prefix PATH ${poppler_utils}/bin
+  '';
+
+  meta = with lib; {
+    description = "Command line interface to the AnyStyle Parser and Finder";
+    homepage    = "https://anystyle.io/";
+    license     = licenses.bsd2;
+    maintainers = with maintainers; [ shamilton ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/anystyle-cli/gemset.nix b/nixpkgs/pkgs/tools/misc/anystyle-cli/gemset.nix
new file mode 100644
index 000000000000..46444760b7bd
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/anystyle-cli/gemset.nix
@@ -0,0 +1,1570 @@
+{
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
+      type = "gem";
+    };
+    version = "6.0.3.2";
+  };
+  anystyle = {
+    dependencies = ["anystyle-data" "bibtex-ruby" "gli" "namae" "wapiti"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      path = ./.;
+      type = "path";
+    };
+    version = "1.3.10";
+  };
+  anystyle-data = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ry6836mq48d85hjcfp7xiw0yk3ivpiwjvmdwv5jag30ijfyaccy";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  bibtex-ruby = {
+    dependencies = ["latex-decode"];
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00zwmmmjrbrxhajdvn1d4rnv2qw00arcj021cwyx3hl6dsv22l2w";
+      type = "gem";
+    };
+    version = "5.1.4";
+  };
+  builder = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
+  byebug = {
+    groups = ["debug"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194";
+      type = "gem";
+    };
+    version = "11.1.3";
+  };
+  citeproc = {
+    dependencies = ["namae"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13vl5sjmksk5a8kjcqnjxh7kn9gn1n4f9p1rvqfgsfhs54p0m6l2";
+      type = "gem";
+    };
+    version = "1.0.10";
+  };
+  concurrent-ruby = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      type = "gem";
+    };
+    version = "1.1.7";
+  };
+  diff-lcs = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz";
+      type = "gem";
+    };
+    version = "1.4.4";
+  };
+  docile = {
+    groups = ["coverage" "default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  edtf = {
+    dependencies = ["activesupport"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xknzamagsx68iq7zdiswr077sxirig77yggbcsw51m8365ajzpc";
+      type = "gem";
+    };
+    version = "3.0.5";
+  };
+  gli = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q598mvl20isn3ja1ya0p72svmqwx3m6fjp5slnv0b2c5mh0ahvv";
+      type = "gem";
+    };
+    version = "2.19.2";
+  };
+  gnuplot = {
+    groups = ["profile"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cvb84lahhy6qxkkgg0pfk9b85qrb1by2p3jlpqgczl6am58vhnj";
+      type = "gem";
+    };
+    version = "2.6.2";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  language_detector = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      fetchSubmodules = false;
+      rev = "89102790194150b3a8110ce691f9989b8ce70f8d";
+      sha256 = "0wxs9i0wqmwysrz1c1i85i4f670m217y12rj5slcmd1y4ylsmvyi";
+      type = "git";
+      url = "https://github.com/feedbackmine/language_detector.git";
+    };
+    version = "0.1.2";
+  };
+  latex-decode = {
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dqanr69as05vdyp9gx9737w3g44rhyk7x96bh9x01fnf1yalyzd";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  lmdb = {
+    groups = ["extra"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qk2ycgyyk052dvbgik35mr4n9im4k1j6v7anbjqhx52y5f07sfg";
+      type = "gem";
+    };
+    version = "0.5.3";
+  };
+  minitest = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+      type = "gem";
+    };
+    version = "5.14.1";
+  };
+  namae = {
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00w0dgvmdy8lw2b5q9zvhqd5k98a192vdmka96qngi9cvnsh5snw";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  rake = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      type = "gem";
+    };
+    version = "13.0.1";
+  };
+  redis = {
+    groups = ["extra"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19hm66kw5vx1lmlh8bj7rxlddyj0vfp11ajw9njhrmn8173d0vb5";
+      type = "gem";
+    };
+    version = "4.2.1";
+  };
+  redis-namespace = {
+    dependencies = ["redis"];
+    groups = ["extra"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05i6s898z5w31z385cba1683pgg5nnmj4m686cbravg7j4pgbcgv";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
+      type = "gem";
+    };
+    version = "3.9.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xndkv5cz763wh30x7hdqw6k7zs8xfh0f86amra9agwn44pcqs0y";
+      type = "gem";
+    };
+    version = "3.9.2";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bxkv25qmy39jqrdx35bfgw00g24qkssail9jlljm7hywbqvr9bb";
+      type = "gem";
+    };
+    version = "3.9.2";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+      type = "gem";
+    };
+    version = "3.9.1";
+  };
+  rspec-support = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dandh2fy1dfkjk8jf9v4azbbma6968bhh06hddv0yqqm8108jir";
+      type = "gem";
+    };
+    version = "3.9.3";
+  };
+  ruby-prof = {
+    groups = ["profile"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12cd91m08ih0imfpy4k87618hd4mhyz291a6bx2hcskza4nf6d27";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  simplecov = {
+    dependencies = ["docile" "simplecov-html"];
+    groups = ["coverage"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b082xrklq6k755cc3rzpnfdjv5338rlky9him36jasw8s9q68mr";
+      type = "gem";
+    };
+    version = "0.19.0";
+  };
+  simplecov-html = {
+    groups = ["coverage" "default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v7b4mf7njw8kv4ghl4q7mwz3q0flbld7v8blp4m4m3n3aq11bn9";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  thread_safe = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  unicode-scripts = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04xfy4f61xf7qnbfa68aqscmyxk7wx3swn571cijsfqalhz8swjg";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  wapiti = {
+    dependencies = ["builder"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1aw2l759cfmii9a67pn8pswip11v08nabkzm825mrmxa6r91izqs";
+      type = "gem";
+    };
+    version = "1.0.7";
+  };
+  yard = {
+    groups = ["extra"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "126m49mvh4lbvlvrprq7xj2vjixbq3xqr8dwr089vadvs0rkn4rd";
+      type = "gem";
+    };
+    version = "0.9.25";
+  };
+  zeitwerk = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/misc/apparix/default.nix b/nixpkgs/pkgs/tools/misc/apparix/default.nix
index 7d8de2c14367..d446a2cf0af6 100644
--- a/nixpkgs/pkgs/tools/misc/apparix/default.nix
+++ b/nixpkgs/pkgs/tools/misc/apparix/default.nix
@@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
     description = "Add directory bookmarks, distant listing, and distant editing to the command line";
     maintainers = with maintainers; [ lethalman ];
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/arp-scan/default.nix b/nixpkgs/pkgs/tools/misc/arp-scan/default.nix
index e25543b5145a..720b0a875a80 100644
--- a/nixpkgs/pkgs/tools/misc/arp-scan/default.nix
+++ b/nixpkgs/pkgs/tools/misc/arp-scan/default.nix
@@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
     URI
   ];
 
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ perlPackages.perl libpcap makeWrapper ];
+  nativeBuildInputs = [ autoreconfHook makeWrapper ];
+  buildInputs = [ perlPackages.perl libpcap ];
 
   postInstall = ''
     for name in get-{oui,iab}; do
diff --git a/nixpkgs/pkgs/tools/misc/aspcud/default.nix b/nixpkgs/pkgs/tools/misc/aspcud/default.nix
index 4c5622fab09c..a50bc311f247 100644
--- a/nixpkgs/pkgs/tools/misc/aspcud/default.nix
+++ b/nixpkgs/pkgs/tools/misc/aspcud/default.nix
@@ -3,12 +3,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.9.4";
+  version = "1.9.5";
   pname = "aspcud";
 
   src = fetchzip {
     url = "https://github.com/potassco/aspcud/archive/v${version}.tar.gz";
-    sha256 = "0vrf7h7g99vw1mybqfrpxamsnf89p18czlzgjmxl1zkiwc7vjpzw";
+    sha256 = "sha256-d04GPMoz6PMGq6iiul0zT1C9Mljdl9uJJ2C8MIwcmaw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/misc/bash_unit/default.nix b/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
index 2fd93cb33b97..7541281eeb67 100644
--- a/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Bash unit testing enterprise edition framework for professionals";
     maintainers = with maintainers; [ pamplemousse ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
     license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/bat-extras/default.nix b/nixpkgs/pkgs/tools/misc/bat-extras/default.nix
index 7d3f1dc0a36c..323099f02c67 100644
--- a/nixpkgs/pkgs/tools/misc/bat-extras/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bat-extras/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, callPackage, fetchFromGitHub, bash, makeWrapper, bat
+{ lib, stdenv, fetchFromGitHub, bash, makeWrapper, bat
 # batdiff, batgrep, and batwatch
 , coreutils
 , less
diff --git a/nixpkgs/pkgs/tools/misc/bat/default.nix b/nixpkgs/pkgs/tools/misc/bat/default.nix
index d6e1e9e5d774..d72b0fdef1fa 100644
--- a/nixpkgs/pkgs/tools/misc/bat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bat/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bat";
-  version = "0.17.1";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1kbziqm00skj65gpjq6m83hmfk9g3xyx88gai1r80pzsx8g239w1";
+    sha256 = "113i11sgna82i4c4zk66qmbypmnmzh0lzp4kkgqnxxcdvyj00rb8";
   };
 
-  cargoSha256 = "1pdja5jhk036hpgv77xc3fcvra1sw0z5jc1ry53i0r7362lnwapz";
+  cargoSha256 = "12z7y303fmga91daf2w356qiqdqa7b8dz6nrrpnjdf0slyz0w3x4";
 
   nativeBuildInputs = [ pkg-config installShellFiles makeWrapper ];
 
@@ -39,11 +39,14 @@ rustPlatform.buildRustPackage rec {
       --prefix PATH : "${lib.makeBinPath [ less ]}"
   '';
 
+  checkFlags = [ "--skip=pager_more" "--skip=pager_most" ];
+
   passthru.tests = { inherit (nixosTests) bat; };
 
   meta = with lib; {
     description = "A cat(1) clone with syntax highlighting and Git integration";
     homepage = "https://github.com/sharkdp/bat";
+    changelog = "https://github.com/sharkdp/bat/raw/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dywedir lilyball zowoq ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/bbe/default.nix b/nixpkgs/pkgs/tools/misc/bbe/default.nix
index fb62b8be8947..5cd7326d7b17 100644
--- a/nixpkgs/pkgs/tools/misc/bbe/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bbe/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     description = "A sed-like editor for binary files";
     homepage = "http://bbe-.sourceforge.net/";
     license = licenses.gpl2Plus;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.hhm ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/bc/default.nix b/nixpkgs/pkgs/tools/misc/bc/default.nix
index 96c2d00ffa82..bb5ed84e7d72 100644
--- a/nixpkgs/pkgs/tools/misc/bc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bc/default.nix
@@ -3,9 +3,10 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "bc-1.07.1";
+  pname = "bc";
+  version = "1.07.1";
   src = fetchurl {
-    url = "mirror://gnu/bc/${name}.tar.gz";
+    url = "mirror://gnu/bc/${pname}-${version}.tar.gz";
     sha256 = "62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a";
   };
 
@@ -30,10 +31,10 @@ stdenv.mkDerivation rec {
   # masss-rebuild.
   strictDeps = true;
 
-  meta = {
+  meta = with lib; {
     description = "GNU software calculator";
     homepage = "https://www.gnu.org/software/bc/";
-    license = lib.licenses.gpl3;
-    platforms = lib.platforms.all;
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/bcunit/default.nix b/nixpkgs/pkgs/tools/misc/bcunit/default.nix
index bc3bbc8276dd..099ae294bec9 100644
--- a/nixpkgs/pkgs/tools/misc/bcunit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bcunit/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.linphone.org/BC/public/bcunit";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ raskin jluttine ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix b/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
index ff14f2d1a4e2..1297b61e7f8c 100644
--- a/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2psf";
-  version = "1.200";
+  version = "1.202";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
-    sha256 = "07z686h2fv9b3446fcym0sfzxwgkm9cc4bd3zhpv6j8bdfadnjxw";
+    sha256 = "sha256-QXjORfwPxNF9iWF29YcVyT2EAwcR4UQjF4Zv7dPMC9c=";
   };
 
   nativeBuildInputs = [ dpkg ];
@@ -14,10 +14,16 @@ stdenv.mkDerivation rec {
   dontConfigure = true;
   dontBuild = true;
 
-  unpackPhase = "dpkg-deb -x $src .";
+  unpackPhase = ''
+    runHook preUnpack
+    dpkg-deb -x $src .
+    runHook postUnpack
+  '';
   installPhase = "
+    runHook preInstall
     substituteInPlace usr/bin/bdf2psf --replace /usr/bin/perl ${perl}/bin/perl
     mv usr $out
+    runHook postInstall
   ";
 
   meta = with lib; {
@@ -26,7 +32,7 @@ stdenv.mkDerivation rec {
     longDescription = ''
       Font converter to generate console fonts from BDF source fonts
     '';
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ rnhmjoj vrthra ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix b/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix
index 1d8bd38c1e18..735508fed216 100644
--- a/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2sfd";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "fcambus";
     repo = pname;
     rev = version;
-    sha256 = "1bpadw25barzmmsz9bkrsj3iwbgf945zqfakbgq1yscfb85bfgsp";
+    sha256 = "sha256-f3IdTk1GEo1GlbiJMCpqwheNJrndm7aCojA+GuKMTao=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/misc/betterdiscord-installer/default.nix b/nixpkgs/pkgs/tools/misc/betterdiscord-installer/default.nix
new file mode 100644
index 000000000000..d74a914ba65c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/betterdiscord-installer/default.nix
@@ -0,0 +1,32 @@
+{ appimageTools, lib, fetchurl }:
+let
+  pname = "betterdiscord-installer";
+  version = "1.0.0-beta";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/BetterDiscord/Installer/releases/download/v${version}/Betterdiscord-Linux.AppImage";
+    sha256 = "103acb11qmvjmf6g9lgsfm5jyahfwfdqw0x9w6lmv1hzwbs26dsr";
+  };
+
+  appimageContents = appimageTools.extract { inherit name src; };
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+
+    install -m 444 -D ${appimageContents}/betterdiscord.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/betterdiscord.desktop \
+      --replace "Exec=AppRun" "Exec=$out/bin/${pname}"
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with lib; {
+    description = "Installer for BetterDiscord";
+    homepage = "https://betterdiscord.net";
+    license = licenses.mit;
+    maintainers = [ maintainers.ivar ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/betterdiscordctl/default.nix b/nixpkgs/pkgs/tools/misc/betterdiscordctl/default.nix
index c0822b9e1016..e839d9ef09ce 100644
--- a/nixpkgs/pkgs/tools/misc/betterdiscordctl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/betterdiscordctl/default.nix
@@ -1,23 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "betterdiscordctl";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "bb010g";
     repo = "betterdiscordctl";
     rev = "v${version}";
-    sha256 = "0qpmm5l8jhm7k0kqblc0bnr9fl4b6z8iddhjar03bb4kqgr962fa";
+    sha256 = "12c3phcfwl4p2jfh22ihm57vxw4nq5kwqirb7y4gzc91swfh5yj1";
   };
 
-  patches = [
-    (fetchpatch { # Required till https://github.com/bb010g/betterdiscordctl/pull/67 is merged upstream.
-      url = "https://github.com/bb010g/betterdiscordctl/pull/67/commits/f1c7170fc2626d9aec4d244977b5a73c401aa1d4.patch";
-      sha256 = "003zqd9ljb9h674sjwjvvdfs7q4cw0p1ydg3lax132vb4vz9k0zi";
-    })
-  ];
-
   preBuild = "sed -i 's/^nix=$/&yes/g;s/^DISABLE_UPGRADE=$/&yes/g' ./betterdiscordctl";
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/blflash/default.nix b/nixpkgs/pkgs/tools/misc/blflash/default.nix
new file mode 100644
index 000000000000..bf09fc8d0a7c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/blflash/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "blflash";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    owner = "spacemeowx2";
+    repo = "blflash";
+    rev = "v${version}";
+    sha256 = "sha256-+2ncK1ibtQwlBREw4Yiqj4vFvAcZqjkoTBtBdAAUoRg=";
+  };
+
+  cargoSha256 = "sha256-tt9jfcoEw/HQ0/qU4lhbqKtIw/lthDTcyf/3HYQNPEY=";
+
+  meta = with lib; {
+    description = "An bl602 serial flasher written in Rust";
+    homepage = "https://github.com/spacemeowx2/blflash";
+    license = with licenses; [ mit asl20 ];
+    maintainers = with maintainers; [ _0x4A6F ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix b/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix
index 79094dc9540a..c78c0121ed0c 100644
--- a/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix
@@ -1,16 +1,18 @@
-{ lib, fetchFromGitHub, python2Packages }:
+{ lib, fetchFromGitHub, python3Packages }:
 
-python2Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "bmap-tools";
-  version = "3.4";
+  version = "3.6";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "bmap-tools";
     rev = "v${version}";
-    sha256 = "0p0pdwvyf9b4czi1pnhclm1ih8kw78nk2sj4if5hwi7s5423wk5q";
+    sha256 = "01xzrv5nvd2nvj91lz4x9s91y9825j9pj96z0ap6yvy3w2dgvkkl";
   };
 
+  propagatedBuildInputs = with python3Packages; [ six ];
+
   # tests fail only on hydra.
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/boltbrowser/default.nix b/nixpkgs/pkgs/tools/misc/boltbrowser/default.nix
new file mode 100644
index 000000000000..29635394954d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/boltbrowser/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "boltbrowser";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "br0xen";
+    repo = pname;
+    rev = version;
+    sha256 = "17v3pv80dxs285d0b6x772h5cb4f0xg9n5p9jwlir5hjbfn1635i";
+  };
+
+  vendorSha256 = "1x28m72626cchnsasyxips8jaqs0l2p9jhjrdcgws144zm6fz3hv";
+
+  meta = with lib; {
+    description = "CLI Browser for BoltDB files";
+    homepage = "https://github.com/br0xen/boltbrowser";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/broadlink-cli/default.nix b/nixpkgs/pkgs/tools/misc/broadlink-cli/default.nix
index cb5f582d2dec..2acc8dabbef9 100644
--- a/nixpkgs/pkgs/tools/misc/broadlink-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/broadlink-cli/default.nix
@@ -1,17 +1,16 @@
 { lib, python3Packages, fetchFromGitHub }:
 
-python3Packages.buildPythonApplication {
+python3Packages.buildPythonApplication rec {
   pname = "broadlink-cli";
-  inherit (python3Packages.broadlink) version;
+  version = "0.17.0";
 
   # the tools are available as part of the source distribution from GH but
   # not pypi, so we have to fetch them here.
   src = fetchFromGitHub {
     owner  = "mjg59";
     repo   = "python-broadlink";
-    # this rev is version 0.15.0
-    rev    = "99add9e6feea6e47be4f3a58783556d7838b759c";
-    sha256 = "1q1q62brvfjcb18i0j4ca5cxqzjwv1iywdrdby0yjqa4wm6ywq6b";
+    rev    = version;
+    sha256 = "sha256-b3A36BdIvyl1RxNO5SyxLIpQmu1UHHekyh6vrFjwpp4=";
   };
 
   format = "other";
@@ -23,8 +22,8 @@ python3Packages.buildPythonApplication {
   installPhase = ''
     runHook preInstall
 
-    install -Dm755 -t $out/bin cli/broadlink_{cli,discovery}
-    install -Dm644 -t $out/share/doc/broadlink cli/README.md
+    install -Dm555 -t $out/bin cli/broadlink_{cli,discovery}
+    install -Dm444 -t $out/share/doc/broadlink cli/README.md
 
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/tools/misc/byobu/default.nix b/nixpkgs/pkgs/tools/misc/byobu/default.nix
index c647d3b39028..ffe3fd0fe162 100644
--- a/nixpkgs/pkgs/tools/misc/byobu/default.nix
+++ b/nixpkgs/pkgs/tools/misc/byobu/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  buildInputs = [ perl makeWrapper gettext ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl gettext ];
   propagatedBuildInputs = [ textual-window-manager screen ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/calamares/default.nix b/nixpkgs/pkgs/tools/misc/calamares/default.nix
index e79774da9177..90abc7659203 100644
--- a/nixpkgs/pkgs/tools/misc/calamares/default.nix
+++ b/nixpkgs/pkgs/tools/misc/calamares/default.nix
@@ -1,6 +1,6 @@
 { lib, fetchurl, boost, cmake, extra-cmake-modules, kparts, kpmcore
 , kservice, libatasmart, libxcb, libyamlcpp, parted, polkit-qt, python, qtbase
-, qtquickcontrols, qtsvg, qttools, qtwebengine, util-linux, glibc, tzdata
+, qtquickcontrols, qtsvg, qttools, qtwebengine, util-linux, tzdata
 , ckbcomp, xkeyboard_config, mkDerivation
 }:
 
@@ -21,8 +21,6 @@ mkDerivation rec {
     qtquickcontrols qtsvg qttools qtwebengine.dev util-linux
   ];
 
-  enableParallelBuilding = false;
-
   cmakeFlags = [
     "-DPYTHON_LIBRARY=${python}/lib/lib${python.libPrefix}.so"
     "-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}"
diff --git a/nixpkgs/pkgs/tools/misc/capture/default.nix b/nixpkgs/pkgs/tools/misc/capture/default.nix
index d0e6c1673497..d858e0fbc461 100644
--- a/nixpkgs/pkgs/tools/misc/capture/default.nix
+++ b/nixpkgs/pkgs/tools/misc/capture/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "0zyyg4mvrny7cc2xgvfip97b6yc75ka5ni39rwls93971jbk83d6";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     install -Dm755 src/capture.sh $out/bin/capture
diff --git a/nixpkgs/pkgs/tools/misc/chafa/default.nix b/nixpkgs/pkgs/tools/misc/chafa/default.nix
index f196bb5af03f..51fbba8d706c 100644
--- a/nixpkgs/pkgs/tools/misc/chafa/default.nix
+++ b/nixpkgs/pkgs/tools/misc/chafa/default.nix
@@ -2,14 +2,14 @@
 
 
 stdenv.mkDerivation rec {
-  version = "1.4.1";
+  version = "1.6.0";
   pname = "chafa";
 
   src = fetchFromGitHub {
     owner = "hpjansson";
     repo = "chafa";
     rev = version;
-    sha256 = "13vv2xmfh0dr949bh75448lidvzwxks6f1mjawdg1q8qwzxhzry4";
+    sha256 = "sha256-GaXVMM23U3M+qNJrWYR+DLiCmILcuX5EIkQqzwN/l1Y=";
   };
 
   nativeBuildInputs = [ autoconf
diff --git a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
index dc1a49a40bf2..78a2dcb456c1 100644
--- a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "1.8.11";
+  version = "2.0.8";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "sha256-aWq36wQFxAyORifi5/9MOnqmR5FRyDAQj1tVFqoiFvA=";
+    sha256 = "sha256-bGrGekZLystw3AvQP9bdFGlxteGCzwrhamaO8WLKf7U=";
   };
 
-  vendorSha256 = "sha256-ASTPb8Va3Gl/VtmPJIdlnlU3OspAxzZ5iSHVcZOh8CY=";
+  vendorSha256 = "sha256-YU+t8GVsLYWONezUIB4NUrVxtYOmf/2b5v4v3VSYtBU=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/cicero-tui/default.nix b/nixpkgs/pkgs/tools/misc/cicero-tui/default.nix
new file mode 100644
index 000000000000..dfc79e208ac1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/cicero-tui/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, cmake
+, pkg-config
+, expat
+, fontconfig
+, freetype
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cicero-tui";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "eyeplum";
+    repo = "cicero-tui";
+    rev = "v${version}";
+    sha256 = "sha256-TNNPTKLO5qjSeCxWb7bB4yV1J4Seu+tBKNs0Oav/pPE=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+  buildInputs = [
+    expat
+    fontconfig
+    freetype
+  ];
+
+  cargoSha256 = "sha256-kzU+i5DLmZULdJPURz10URE5sMUG6eQg0pCoEiyfgco=";
+
+  meta = with lib; {
+    description = "Unicode tool with a terminal user interface";
+    homepage = "https://github.com/eyeplum/cicero-tui";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/clickclack/default.nix b/nixpkgs/pkgs/tools/misc/clickclack/default.nix
new file mode 100644
index 000000000000..75518e554ca8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/clickclack/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, SDL2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "clickclack";
+  version = "0.1.1";
+
+  src = fetchFromSourcehut {
+    owner = "~proycon";
+    repo = "clickclack";
+    rev = version;
+    sha256 = "1q8r0ng1bld5n82gh7my7ck90f4plf8vf019hm2wz475dl38izd5";
+  };
+
+  buildInputs = [
+    SDL2
+  ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  meta = with lib; {
+    description = "A vibration/audio feedback tool to be used with virtual keyboards";
+    homepage = "https://git.sr.ht/~proycon/clickclack";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/cloc/default.nix b/nixpkgs/pkgs/tools/misc/cloc/default.nix
index f518c1b8e3f2..3e18d3f4b54e 100644
--- a/nixpkgs/pkgs/tools/misc/cloc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cloc/default.nix
@@ -15,9 +15,8 @@ stdenv.mkDerivation rec {
     sourceRoot=$(echo */Unix)
   '';
 
-  buildInputs = [ makeWrapper ] ++ (with perlPackages; [
-    perl AlgorithmDiff ParallelForkManager RegexpCommon
-  ]);
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = (with perlPackages; [ perl AlgorithmDiff ParallelForkManager RegexpCommon ]);
 
   makeFlags = [ "prefix=" "DESTDIR=$(out)" "INSTALL=install" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix b/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix
index b10259f24fc2..32ef248ca854 100644
--- a/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, makeWrapper
 , gawk, gnused, util-linux, file
-, wget, python3, qemu-utils, euca2ools
+, wget, python3, qemu-utils
 , e2fsprogs, cdrkit
 , gptfdisk }:
 
diff --git a/nixpkgs/pkgs/tools/misc/code-minimap/default.nix b/nixpkgs/pkgs/tools/misc/code-minimap/default.nix
index 462fc51b2890..6a253a493fc4 100644
--- a/nixpkgs/pkgs/tools/misc/code-minimap/default.nix
+++ b/nixpkgs/pkgs/tools/misc/code-minimap/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "code-minimap";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "wfxr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-t+zHAneINLd8JHkhaR+aF55gAWJmphYEqbx74CqAmM8=";
+    sha256 = "sha256-5YNY0MRlKKX6u32Id6J7bIPSHRi44TISoKqpAS9T8ow=";
   };
 
-  cargoSha256 = "sha256-eVh+6gTzKTelZ3MypkqYMXHr9QwaNG8H0xS82kilR/s=";
+  cargoSha256 = "sha256-87aRZC4OE3UTVToHi5XDBxVqEH4oFeFR4REf69OBkIw=";
 
   meta = with lib; {
     description = "A high performance code minimap render";
diff --git a/nixpkgs/pkgs/tools/misc/convbin/default.nix b/nixpkgs/pkgs/tools/misc/convbin/default.nix
index 92890c056b15..7f57cab585bc 100644
--- a/nixpkgs/pkgs/tools/misc/convbin/default.nix
+++ b/nixpkgs/pkgs/tools/misc/convbin/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "0n502zj8igm583kbfvyv7zhd97vb71jac41ncb9jr2yz2v5ir8j9";
   };
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   checkPhase = ''
     pushd test
diff --git a/nixpkgs/pkgs/tools/misc/convfont/default.nix b/nixpkgs/pkgs/tools/misc/convfont/default.nix
index aeecb0532127..501c4e29a416 100644
--- a/nixpkgs/pkgs/tools/misc/convfont/default.nix
+++ b/nixpkgs/pkgs/tools/misc/convfont/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "1lj24yq5gj9hxhy1srk73521q95zyqzkws0q4v271hf5wmqaxa2f";
   };
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     install -Dm755 convfont $out/bin/convfont
diff --git a/nixpkgs/pkgs/tools/misc/convimg/default.nix b/nixpkgs/pkgs/tools/misc/convimg/default.nix
index 8caf4cb706f9..0c5ffb4a6dea 100644
--- a/nixpkgs/pkgs/tools/misc/convimg/default.nix
+++ b/nixpkgs/pkgs/tools/misc/convimg/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   checkPhase = ''
     pushd test
diff --git a/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix b/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix
index c05d50cdbc1b..39e6e6f211a3 100644
--- a/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix
@@ -7,7 +7,7 @@ let
     description = "Various coreboot-related tools";
     homepage = "https://www.coreboot.org";
     license = licenses.gpl2;
-    maintainers = [ maintainers.petabyteboy ];
+    maintainers = with maintainers; [ petabyteboy felixsinger ];
     platforms = platforms.linux;
   };
 
diff --git a/nixpkgs/pkgs/tools/misc/coreutils/default.nix b/nixpkgs/pkgs/tools/misc/coreutils/default.nix
index 131ce2774d1a..bfe5c5c5045f 100644
--- a/nixpkgs/pkgs/tools/misc/coreutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/coreutils/default.nix
@@ -43,6 +43,9 @@ stdenv.mkDerivation (rec {
     sed '2i echo Skipping rm deep-2 test && exit 77' -i ./tests/rm/deep-2.sh
     sed '2i echo Skipping du long-from-unreadable test && exit 77' -i ./tests/du/long-from-unreadable.sh
 
+    # Depends on the mountpoints
+    sed '2i echo Skipping df df-symlink test && exit 77' -i ./tests/df/df-symlink.sh
+
     # Some target platforms, especially when building inside a container have
     # issues with the inotify test.
     sed '2i echo Skipping tail inotify dir recreate test && exit 77' -i ./tests/tail-2/inotify-dir-recreate.sh
@@ -103,8 +106,7 @@ stdenv.mkDerivation (rec {
   # and {Open,Free}BSD.
   # With non-standard storeDir: https://github.com/NixOS/nix/issues/512
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform
-    && (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.isMusl)
-    && builtins.storeDir == "/nix/store";
+    && (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.isMusl);
 
   # Prevents attempts of running 'help2man' on cross-built binaries.
   PERL = if stdenv.hostPlatform == stdenv.buildPlatform then null else "missing";
diff --git a/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix b/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix
index a23675fe911f..fac8fbcfee97 100644
--- a/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix
@@ -27,7 +27,6 @@ stdenv.mkDerivation {
     description = "Multi-algo CPUMiner";
     homepage = "https://github.com/wolf9466/cpuminer-multi";
     license = licenses.gpl2;
-    maintainers = [ maintainers.ehmry ];
     # does not build on i686 https://github.com/lucasjones/cpuminer-multi/issues/27
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/cutecom/default.nix b/nixpkgs/pkgs/tools/misc/cutecom/default.nix
index e109b12f2879..b3d412b8fda0 100644
--- a/nixpkgs/pkgs/tools/misc/cutecom/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cutecom/default.nix
@@ -11,14 +11,17 @@ mkDerivation rec {
     sha256 = "X8jeESt+x5PxK3rTNC1h1Tpvue2WH09QRnG2g1eMoEE=";
   };
 
-  preConfigure = ''
-    substituteInPlace CMakeLists.txt \
-      --replace "#find_package(Serialport REQUIRED)" "find_package(Qt5SerialPort REQUIRED)"
-  '';
-
   buildInputs = [ qtbase qtserialport ];
   nativeBuildInputs = [ cmake ];
 
+  postInstall = ''
+    cd ..
+    mkdir -p "$out"/share/{applications,icons/hicolor/scalable/apps,man/man1}
+    cp cutecom.desktop "$out/share/applications"
+    cp images/cutecom.svg "$out/share/icons/hicolor/scalable/apps"
+    cp cutecom.1 "$out/share/man/man1"
+  '';
+
   meta = with lib; {
     description = "A graphical serial terminal";
     homepage = "https://gitlab.com/cutecom/cutecom/";
diff --git a/nixpkgs/pkgs/tools/misc/czkawka/default.nix b/nixpkgs/pkgs/tools/misc/czkawka/default.nix
new file mode 100644
index 000000000000..29748f781be3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/czkawka/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, glib
+, cairo
+, pango
+, gdk-pixbuf
+, atk
+, gtk3
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "czkawka";
+  version = "3.0.0";
+
+  src = fetchFromGitHub {
+    owner = "qarmin";
+    repo = pname;
+    rev = version;
+    sha256 = "1g5a9ns5lkiyk6hjsh08hgs41538dzj0a4lgn2c5cbad5psl0xa6";
+  };
+
+  cargoSha256 = "11ym2d7crp12w91111s3rv0gklkg2bzlq9g24cws4h7ipi0zfx5h";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    glib
+    cairo
+    pango
+    gdk-pixbuf
+    atk
+    gtk3
+  ];
+
+  meta = with lib; {
+    description = "A simple, fast and easy to use app to remove unnecessary files from your computer";
+    homepage = "https://github.com/qarmin/czkawka";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ yanganto ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/ddcutil/default.nix b/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
index 1e2efc7f9cd3..1717b88f194a 100644
--- a/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
@@ -12,6 +12,11 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-F/tKW81bAyYtwpxhl5XC8YyMB+6S0XmqqigwJY2WFDU=";
   };
 
+  patches = [
+    # Look for kernel modules in /run/booted-system/kernel-modules/lib/modules/*
+    ./nixos-paths.diff
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [
     i2c-tools udev libgudev
diff --git a/nixpkgs/pkgs/tools/misc/ddcutil/nixos-paths.diff b/nixpkgs/pkgs/tools/misc/ddcutil/nixos-paths.diff
new file mode 100644
index 000000000000..e45eb88b5190
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/ddcutil/nixos-paths.diff
@@ -0,0 +1,32 @@
+diff --git a/src/app_sysenv/query_sysenv_modules.c b/src/app_sysenv/query_sysenv_modules.c
+index 59df64f1..fb244dd0 100644
+--- a/src/app_sysenv/query_sysenv_modules.c
++++ b/src/app_sysenv/query_sysenv_modules.c
+@@ -50,7 +50,9 @@ bool is_module_loadable(char * module_name, int depth) {
+    g_snprintf(module_name_ko, 100, "%s.ko", module_name);
+ 
+    char dirname[PATH_MAX];
+-   g_snprintf(dirname, PATH_MAX, "/lib/modules/%s/kernel/drivers/i2c", utsbuf.release);
++   g_snprintf(dirname, PATH_MAX,
++      "/run/booted-system/kernel-modules/lib/modules/%s/kernel/drivers/i2c",
++      utsbuf.release);
+ 
+    struct dirent *dent;
+      DIR           *d;
+diff --git a/src/util/linux_util.c b/src/util/linux_util.c
+index 5eb8491c..3a129ccf 100644
+--- a/src/util/linux_util.c
++++ b/src/util/linux_util.c
+@@ -29,8 +29,10 @@ bool is_module_builtin(char * module_name)
+    int rc = uname(&utsbuf);
+    assert(rc == 0);
+ 
+-   char modules_builtin_fn[100];
+-   snprintf(modules_builtin_fn, 100, "/lib/modules/%s/modules.builtin", utsbuf.release);
++   char modules_builtin_fn[PATH_MAX];
++   snprintf(modules_builtin_fn, PATH_MAX,
++      "/run/booted-system/kernel-modules/lib/modules/%s/modules.builtin",
++      utsbuf.release);
+ 
+    char ko_name[40];
+    snprintf(ko_name, 40, "%s.ko", module_name);
diff --git a/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix b/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
index 8de7cc99336d..b2e753342d98 100644
--- a/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
+++ b/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
@@ -16,7 +16,8 @@ in stdenv.mkDerivation rec {
     sha256 = "0xy1nvqrnifx46g8ch69pk31by0va6hn10wpi1fkrsrgncanjjh1";
   };
 
-  buildInputs = [ unzip xz dpkg libxslt python setuptools makeWrapper curl gnupg diffutils ] ++
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ xz dpkg libxslt python setuptools curl gnupg diffutils ] ++
     (with perlPackages; [ perl CryptSSLeay LWP TimeDate DBFile FileDesktopEntry ParseDebControl LWPProtocolHttps ]);
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
index 9437ef12f4b4..086c1a2b5404 100644
--- a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
+++ b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
@@ -16,11 +16,11 @@ let
 in
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "166";
+  version = "171";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-6VhHG3MxmIczolOYqU4D1m00h8w2n0ku4dy/dFEYqk0=";
+    sha256 = "sha256-8PUFKwSWf84ics4w9yrCWMYgzzNF5z1kNn7LnksfCtA=";
   };
 
   outputs = [ "out" "man" ];
@@ -70,6 +70,8 @@ python3Packages.buildPythonApplication rec {
   disabledTests = [
     "test_android_manifest"
     "test_sbin_added_to_path"
+    "test_diff_meta"
+    "test_diff_meta2"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/digitemp/default.nix b/nixpkgs/pkgs/tools/misc/digitemp/default.nix
new file mode 100644
index 000000000000..adf23e4bdf5e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/digitemp/default.nix
@@ -0,0 +1,53 @@
+{ fetchFromGitHub, lib, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "digitemp";
+  version = "3.7.2";
+
+  src = fetchFromGitHub {
+    owner = "bcl";
+    repo = "digitemp";
+    rev = "v${version}";
+    sha256 = "19zka5fcdxhhginaspak76l984iqq9v2j6qrwvi5mvca7bcj8f72";
+  };
+
+  enableParallelBuilding = true;
+
+  makeFlags = [
+    "LOCK=no"
+    "ds9097"
+    "ds9097u"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D -m555 -t $out/bin digitemp_*
+    install -D -m444 -t $out/share/doc/${pname} FAQ README
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Temperature logging and reporting using Maxim's iButtons and 1-Wire protocol";
+    longDescription = ''
+      DigiTemp is a command line application used for reading 1-wire sensors like
+      the DS18S20 temperature sensor, or DS2438 battery monitor. DigiTemp supports
+      the following devices:
+
+        DS18S20 (and older DS1820) Temperature Sensor
+        DS18B20 Temperature Sensor
+        DS1822 Temperature Sensor
+        DS2438 Battery monitor
+        DS2409 1-wire coupler (used in 1-wire hubs)
+        DS2422 Counter
+        DS2423 Counter
+
+      The output format can be customized and all settings are stored in a
+      configuration file (.digitemprc) in the current directory. DigiTemp can
+      repeatedly read the sensors and output to stdout and/or to a logfile.
+    '';
+    homepage = "https://www.digitemp.com";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ zseri ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/dijo/default.nix b/nixpkgs/pkgs/tools/misc/dijo/default.nix
index b8dc950773ba..737057059938 100644
--- a/nixpkgs/pkgs/tools/misc/dijo/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dijo/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, rustPlatform, fetchFromGitHub, ncurses, CoreServices }:
-let version = "0.2.5"; in
+let version = "0.2.7"; in
 rustPlatform.buildRustPackage {
   pname = "dijo";
   inherit version;
@@ -8,9 +8,9 @@ rustPlatform.buildRustPackage {
     owner = "NerdyPepper";
     repo = "dijo";
     rev = "v${version}";
-    sha256 = "sha256-DdK9qdF+rFtAhemPwMpiZrtUdgD0iFqjgiZ3Yp/vLAI=";
+    sha256 = "sha256-g+A8BJxqoAvm9LTLrLnClVGtFJCQ2gT0mDGAov/6vXE=";
   };
-  cargoSha256 = "sha256-bdSXyxiHwGtdyce2YyPKq+3RfZIL425RvwRfKi59RVI=";
+  cargoSha256 = "sha256-3V94bOixYMznkCQu90+E/68Sfl9GvHp9LNxwWwk4xZQ=";
 
   meta = with lib; {
     description = "Scriptable, curses-based, digital habit tracker";
diff --git a/nixpkgs/pkgs/tools/misc/direnv/default.nix b/nixpkgs/pkgs/tools/misc/direnv/default.nix
index ee068450344e..5fa6b8db60e7 100644
--- a/nixpkgs/pkgs/tools/misc/direnv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/direnv/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "direnv";
-  version = "2.27.0";
+  version = "2.28.0";
 
   src = fetchFromGitHub {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "05vvn59xd2q4yjizh5fprjib5xqq58by80d5avsm8nb1qxf383b1";
+    sha256 = "sha256-iZ3Lf7Yg+N9BWyLLF+MrT2gpPT9BTcp6pNMpfqwcZXo=";
   };
 
-  vendorSha256 = "084x7d7sshcsyim76d6pl6127nlqacgwwnm965srl9y5w5nqzba6";
+  vendorSha256 = "sha256-P8NLY1iGh86ntmYsTVlnNh5akdaM8nzcxDn6Nfmgr84=";
 
   # we have no bash at the moment for windows
   BASH_PATH =
diff --git a/nixpkgs/pkgs/tools/misc/disfetch/default.nix b/nixpkgs/pkgs/tools/misc/disfetch/default.nix
index afce1429e69b..58f7da84fc00 100644
--- a/nixpkgs/pkgs/tools/misc/disfetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/disfetch/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "disfetch";
-  version = "1.14";
+  version = "1.21";
 
   src = fetchFromGitHub {
     owner = "llathasa-veleth";
     repo = "disfetch";
     rev = version;
-    sha256 = "0p5pj8d761gz95ar35s8q6lrybrg9jik33kwnsxvb14n990kya0p";
+    sha256 = "sha256-AAfpv1paEnHu1S2B8yC0hyYOj5deKTkCyLGvp6Roz64=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/misc/disper/default.nix b/nixpkgs/pkgs/tools/misc/disper/default.nix
index ecbf298132f6..3e78bc977324 100644
--- a/nixpkgs/pkgs/tools/misc/disper/default.nix
+++ b/nixpkgs/pkgs/tools/misc/disper/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python, xorg, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, python2, xorg, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "disper";
@@ -13,7 +13,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  buildInputs = [ python ];
+  strictDeps = true;
+
+  buildInputs = [ python2 ];
 
   preConfigure = ''
     export makeFlags="PREFIX=$out"
diff --git a/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix b/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
index 69b689fb8244..d4ad2dffd82e 100644
--- a/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
@@ -1,24 +1,32 @@
 { lib, python3Packages, fetchFromGitHub }:
 python3Packages.buildPythonApplication rec {
   pname = "dpt-rp1-py";
-  version = "unstable-2018-10-16";
+  version = "0.1.12";
 
   src = fetchFromGitHub {
     owner = "janten";
     repo = pname;
-    rev = "4551b4432f8470de5f2ad9171105f731a6259395";
-    sha256 = "176y5j31aci1vpi8v6r5ki55432fbdsazh9bsyzr90im9zimkffl";
+    rev = "v${version}";
+    sha256 = "0xw853s5bx2lr57w6ldfjzi1ppc6px66zd7hzk8y2kg82q6bnasq";
   };
 
   doCheck = false;
 
   propagatedBuildInputs = with python3Packages; [
+    anytree
+    fusepy
     httpsig
-    requests
     pbkdf2
+    pyyaml
+    requests
+    setuptools
+    tqdm
     urllib3
+    zeroconf
   ];
 
+  pythonImportsCheck = [ "dptrp1" ];
+
   meta = with lib; {
     homepage = "https://github.com/janten/dpt-rp1-py";
     description = "Python script to manage Sony DPT-RP1 without Digital Paper App";
diff --git a/nixpkgs/pkgs/tools/misc/dua/default.nix b/nixpkgs/pkgs/tools/misc/dua/default.nix
index 063442b75f2f..f0bb6905b43c 100644
--- a/nixpkgs/pkgs/tools/misc/dua/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dua/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dua";
-  version = "2.10.10";
+  version = "2.11.1";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "dua-cli";
     rev = "v${version}";
-    sha256 = "sha256-Rt+60j1+uwL6g4HGc+xdUzGK6nanGfRYbekO54iKsPE=";
+    sha256 = "sha256-pjFApZQJqw0fJmJteO7VZWRLogV3rO5XDagZd1MliZg=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "sha256-6L1J5RHI657Z03rMmhwEzgpQ0//dykqGi8bI2Enc3N8=";
+  cargoSha256 = "sha256-xsTScRAu0SF1xtjUwBtNJUNIItoR0jjEd2CuSmmeh9c=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/duf/default.nix b/nixpkgs/pkgs/tools/misc/duf/default.nix
index ee3573f9f458..076eb33fbb19 100644
--- a/nixpkgs/pkgs/tools/misc/duf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/duf/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "duf";
-  version = "0.6.0";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "muesli";
     repo = "duf";
     rev = "v${version}";
-    sha256 = "sha256-Wm3gfir6blQFLLi+2bT5Y/5tf7qUxEddJQ7tCYfBGgM=";
+    sha256 = "sha256-aRXm31sGHvHPpqPck5+jplbWT52OzaiQIgU/C7llJs8=";
   };
 
-  vendorSha256 = "0icxy6wbqjqawr6i5skwp1z37fq303p8f95crd8lwn6pjjiqzk4i";
+  vendorSha256 = "153z0ccd556c0wpnxgyjq7m0c4y2z6fxsqq2p77kly9nr8cpzdb9";
 
   buildFlagsArray = [ "-ldflags=-s -w -X=main.Version=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/empty/0.6-Makefile.patch b/nixpkgs/pkgs/tools/misc/empty/0.6-Makefile.patch
new file mode 100644
index 000000000000..6fb494cdf54c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/empty/0.6-Makefile.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 1fe4c41..2c69558 100644
+--- a/Makefile
++++ b/Makefile
+@@ -16,7 +16,7 @@ LIBS =	-lutil
+ PREFIX = /usr/local
+ 
+ all:
+-	${CC} ${CFLAGS} -Wall ${LIBS} -o empty empty.c
++	${CC} ${CFLAGS} -Wall -o empty empty.c ${LIBS}
+ 
+ FreeBSD:	all
+ NetBSD:		all
diff --git a/nixpkgs/pkgs/tools/misc/empty/default.nix b/nixpkgs/pkgs/tools/misc/empty/default.nix
new file mode 100644
index 000000000000..d8fa41ef02a3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/empty/default.nix
@@ -0,0 +1,46 @@
+{ fetchzip, lib, stdenv, which }:
+
+stdenv.mkDerivation rec {
+  pname = "empty";
+  version = "0.6.21b";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/${pname}/${pname}/${pname}-${version}.tgz";
+    sha256 = "1rkixh2byr70pdxrwr4lj1ckh191rjny1m5xbjsa7nqw1fw6c2xs";
+    stripRoot = false;
+  };
+
+  patches = [
+    ./0.6-Makefile.patch
+  ];
+
+  nativeBuildInputs = [ which ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  postPatch = ''
+    rm empty
+  '';
+
+  meta = with lib; {
+    homepage = "http://empty.sourceforge.net";
+    description = "A simple tool to automate interactive terminal applications";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    longDescription = ''
+      The empty utility provides an interface to execute and/or interact with
+      processes under pseudo-terminal sessions (PTYs). This tool is definitely
+      useful in programming of shell scripts designed to communicate with
+      interactive programs like telnet, ssh, ftp, etc. In some cases empty can
+      be the simplest replacement for TCL/expect or other similar programming
+      tools because empty:
+
+      - can be easily invoked directly from shell prompt or script
+      - does not use TCL, Perl, PHP, Python or anything else as an underlying language
+      - is written entirely in C
+      - has small and simple source code
+      - can easily be ported to almost all UNIX-like systems
+    '';
+    maintainers = [ maintainers.djwf ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/ent/default.nix b/nixpkgs/pkgs/tools/misc/ent/default.nix
index 05dcd36c40ce..b0dc4f1e3df9 100644
--- a/nixpkgs/pkgs/tools/misc/ent/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ent/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   # case that happens when the archive doesn't have a subdirectory.
   setSourceRoot = "sourceRoot=`pwd`";
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   buildFlags = lib.optional stdenv.cc.isClang "CC=clang";
 
diff --git a/nixpkgs/pkgs/tools/misc/entr/default.nix b/nixpkgs/pkgs/tools/misc/entr/default.nix
index 581b39f3c4ce..5d8d0d942010 100644
--- a/nixpkgs/pkgs/tools/misc/entr/default.nix
+++ b/nixpkgs/pkgs/tools/misc/entr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "entr";
-  version = "4.7";
+  version = "4.8";
 
   src = fetchurl {
-    url = "http://entrproject.org/code/${pname}-${version}.tar.gz";
-    sha256 = "sha256-tsGrdkTYO7Kiadx0Fghno74PXfEWx+tFPCUFMXNTRCk=";
+    url = "https://eradman.com/entrproject/code/${pname}-${version}.tar.gz";
+    sha256 = "1bi5fhr93n72pkap4mqsjd1pwnqjf6czg359c5xwczavfk6mamgh";
   };
 
   postPatch = ''
@@ -22,8 +22,9 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    homepage = "http://entrproject.org/";
+    homepage = "https://eradman.com/entrproject/";
     description = "Run arbitrary commands when files change";
+    changelog = "https://github.com/eradman/entr/raw/${version}/NEWS";
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ pSub synthetica ];
diff --git a/nixpkgs/pkgs/tools/misc/exa/default.nix b/nixpkgs/pkgs/tools/misc/exa/default.nix
index f275d254677c..51873d479f3c 100644
--- a/nixpkgs/pkgs/tools/misc/exa/default.nix
+++ b/nixpkgs/pkgs/tools/misc/exa/default.nix
@@ -1,43 +1,34 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, rustPlatform, cmake, perl, pkg-config, zlib
+{ lib, stdenv, fetchFromGitHub, rustPlatform, cmake, pandoc, pkg-config, zlib
 , Security, libiconv, installShellFiles
 }:
 
-with rustPlatform;
-
-buildRustPackage rec {
+rustPlatform.buildRustPackage rec {
   pname = "exa";
-  version = "0.9.0";
+  version = "0.10.0";
 
-  cargoSha256 = "0nl106jlbr8gnnlbi20mrc6zyww7vxgmw6w34ibndxqh9ggxwfvr";
+  cargoSha256 = "sha256-hslQZkmZ023gKxBbfgwqazBPUk0qWyy51uRJtr3QvWE=";
 
   src = fetchFromGitHub {
     owner = "ogham";
-    repo = "exa";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "14qlm9zb9v22hxbbi833xaq2b7qsxnmh15s317200vz5f1305hhw";
+    sha256 = "sha256-xolanu4zhAwsbSPdGKgY2/uHtP30DSpr/7Vv1z4jEnQ=";
   };
 
-  patches = [
-    (fetchpatch {
-      # https://github.com/ogham/exa/pull/584
-      name = "fix-panic-on-broken-symlink-in-git-repository.patch";
-      url = "https://github.com/ogham/exa/pull/584/commits/a7a8e99cf3a15992afb2383435da0231917ffb54.patch";
-      sha256 = "0n5q483sz300jkp0sbb350hdinmkw7s6bmigdyr6ypz3fvygd9hx";
-    })
-  ];
-
-  nativeBuildInputs = [ cmake pkg-config perl installShellFiles ];
+  nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
   buildInputs = [ zlib ]
     ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   outputs = [ "out" "man" ];
 
   postInstall = ''
-    installManPage contrib/man/exa.1
+    pandoc --standalone -f markdown -t man man/exa.1.md > man/exa.1
+    pandoc --standalone -f markdown -t man man/exa_colors.5.md > man/exa_colors.5
+    installManPage man/exa.1 man/exa_colors.5
     installShellCompletion \
-      --name exa contrib/completions.bash \
-      --name exa.fish contrib/completions.fish \
-      --name _exa contrib/completions.zsh
+      --name exa completions/completions.bash \
+      --name exa.fish completions/completions.fish \
+      --name _exa completions/completions.zsh
   '';
 
   # Some tests fail, but Travis ensures a proper build
@@ -55,6 +46,6 @@ buildRustPackage rec {
     '';
     homepage = "https://the.exa.website";
     license = licenses.mit;
-    maintainers = with maintainers; [ ehegnes lilyball globin ];
+    maintainers = with maintainers; [ ehegnes lilyball globin fortuneteller2k ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/execline/default.nix b/nixpkgs/pkgs/tools/misc/execline/default.nix
index 887671b48994..705a8a554c18 100644
--- a/nixpkgs/pkgs/tools/misc/execline/default.nix
+++ b/nixpkgs/pkgs/tools/misc/execline/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "execline";
-  version = "2.7.0.0";
-  sha256 = "0kl74yix60msgw8k3shhp9ymm80n91yxxqckixj5qbbhmylpnpqd";
+  version = "2.8.0.0";
+  sha256 = "0vbn4pdazy6x6213vn42k0khcij5bvkbrcfg7nw6inhf8154nx77";
 
   description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
 
diff --git a/nixpkgs/pkgs/tools/misc/expect/default.nix b/nixpkgs/pkgs/tools/misc/expect/default.nix
index 12e63686d51f..1315ac8540cb 100644
--- a/nixpkgs/pkgs/tools/misc/expect/default.nix
+++ b/nixpkgs/pkgs/tools/misc/expect/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, tcl, makeWrapper, autoreconfHook }:
+{ lib, stdenv, buildPackages, fetchurl, tcl, makeWrapper, autoreconfHook, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "expect";
@@ -9,19 +9,27 @@ stdenv.mkDerivation rec {
     sha256 = "0d1cp5hggjl93xwc8h1y6adbnrvpkk0ywkd00inz9ndxn21xm9s9";
   };
 
-  buildInputs = [ tcl ];
-  nativeBuildInputs = [ makeWrapper autoreconfHook ];
-
-  hardeningDisable = [ "format" ];
+  patches = [
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/buildroot/buildroot/c05e6aa361a4049eabd8b21eb64a34899ef83fc7/package/expect/0001-enable-cross-compilation.patch";
+      sha256 = "1jwx2l1slidvcpahxbyqs942l81jd62rzbxliyd9lwysk38c8b6b";
+    })
+  ];
 
   postPatch = ''
     sed -i "s,/bin/stty,$(type -p stty),g" configure.in
   '';
 
+  nativeBuildInputs = [ autoreconfHook makeWrapper tcl ];
+  buildInputs = [ tcl ];
+
+  strictDeps = true;
+  hardeningDisable = [ "format" ];
+
   configureFlags = [
-    "--with-tcl=${tcl}/lib"
+    "--with-tcl=${buildPackages.tcl}/lib"
     "--with-tclinclude=${tcl}/include"
-    "--exec-prefix=\${out}"
+    "--exec-prefix=${placeholder "out"}"
   ];
 
   postInstall = ''
@@ -33,6 +41,8 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  outputs = [ "out" "dev" ];
+
   meta = with lib; {
     description = "A tool for automating interactive applications";
     homepage = "http://expect.sourceforge.net/";
diff --git a/nixpkgs/pkgs/tools/misc/fdtools/default.nix b/nixpkgs/pkgs/tools/misc/fdtools/default.nix
index d096f903bd1a..e9efd66b2f1f 100644
--- a/nixpkgs/pkgs/tools/misc/fdtools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fdtools/default.nix
@@ -23,6 +23,9 @@ in stdenv.mkDerivation {
     sed -e 's|gcc|$CC|' \
       conf-compile/defaults/host_link.sh \
       > conf-compile/host_link.sh
+    sed -e 's|gcc|$CC|' \
+      conf-compile/defaults/host_compile.sh \
+      > conf-compile/host_compile.sh
 
     echo "${skawarePackages.skalibs.lib}/lib/skalibs/sysdeps" \
       > conf-compile/depend_skalibs_sysdeps
@@ -73,7 +76,7 @@ in stdenv.mkDerivation {
     homepage = "https://code.dogmap.org./fdtools/";
     description = "A set of utilities for working with file descriptors";
     license = lib.licenses.gpl2;
-    platforms = lib.platforms.all;
+    platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.Profpatsch ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/fend/default.nix b/nixpkgs/pkgs/tools/misc/fend/default.nix
index 0ca5f42f74dd..6028140234e4 100644
--- a/nixpkgs/pkgs/tools/misc/fend/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fend/default.nix
@@ -2,16 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fend";
-  version = "0.1.13";
+  version = "0.1.14";
 
   src = fetchFromGitHub {
     owner = "printfn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dz6vGRsWc7ubc/drj2Qw/of8AciPgVzc4++Eozg0Luo=";
+    sha256 = "sha256-zKjYUkkm15YRF0YFJKi2A6twvmHuEyxdWcNs37r2dJg=";
   };
 
-  cargoSha256 = "sha256-/HBTmLZLhv89mvIVLocw9XbfOgxh9KsjA6KT60IuJeA=";
+  cargoSha256 = "sha256-e95DRhD22zvizUJOM2It45Bx05iK3KtaMgFPkMbR7iI=";
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    [[ "$($out/bin/fend "1 km to m")" = "1000 m" ]]
+  '';
 
   meta = with lib; {
     description = "Arbitrary-precision unit-aware calculator";
diff --git a/nixpkgs/pkgs/tools/misc/fet-sh/default.nix b/nixpkgs/pkgs/tools/misc/fet-sh/default.nix
index e53c51c33e94..e9286e6a11e9 100644
--- a/nixpkgs/pkgs/tools/misc/fet-sh/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fet-sh/default.nix
@@ -2,26 +2,28 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "fet-sh";
-  version = "1.8";
+  version = "1.9";
 
   src = fetchFromGitHub {
     owner = "6gk";
     repo = "fet.sh";
     rev = "v${version}";
-    sha256 = "1czjsyagwzbf8l023l1saz9ssb1hc245a64nfwc8wl0cn4h9byky";
+    sha256 = "sha256-xhX2nVteC3T3IjQh++mYlm0btDJQbyQa6b8sGualV0E=";
   };
 
-  dontBuild = true;
+  postPatch = ''
+    patchShebangs fet.sh
+  '';
 
   installPhase = ''
-    install -m755 -D ./fet.sh $out/bin/fet.sh
+    install -m755 -D fet.sh $out/bin/fet.sh
   '';
 
   meta = with lib; {
-    description = "A fetch written in posix shell without any external commands (linux only)";
+    description = "A fetch written in posix shell without any external commands";
     homepage = "https://github.com/6gk/fet.sh";
     license = licenses.isc;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ elkowar ];
   };
 
diff --git a/nixpkgs/pkgs/tools/misc/flameshot/default.nix b/nixpkgs/pkgs/tools/misc/flameshot/default.nix
index a923dbf651f4..f0ed87bcc22b 100644
--- a/nixpkgs/pkgs/tools/misc/flameshot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/flameshot/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "flameshot";
-  version = "0.8.5";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "flameshot-org";
     repo = "flameshot";
     rev = "v${version}";
-    sha256 = "1z77igs60lz106vsf6wsayxjafxm3llf2lm4dpvsqyyrxybfq191";
+    sha256 = "sha256-E5J61k1tVpbwlzYHbCY1rf9+GODcJRRAQwb0jR4s7BU=";
   };
 
   nativeBuildInputs = [ cmake qttools qtsvg ];
diff --git a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
index aa9f175e9004..762d93ea1e9b 100644
--- a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
@@ -2,18 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "fluent-bit";
-  version = "1.6.8";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${version}";
-    sha256 = "1k8ghz8xwy7v4y4r4xc690ig7qmn0mkvynplwn66j44fgdpg0v1s";
+    sha256 = "sha256-5R26NvhSYesMk/8i9+5H3pZTgbdbnuQ1rLlCa/gWJGc=";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
 
-  patches = [ ./fix-luajit-darwin.patch ];
+  patches = lib.optionals stdenv.isDarwin [ ./fix-luajit-darwin.patch ];
+
+  # _FORTIFY_SOURCE requires compiling with optimization (-O)
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-O";
 
   postPatch = ''
     substituteInPlace src/CMakeLists.txt \
diff --git a/nixpkgs/pkgs/tools/misc/fontfor/default.nix b/nixpkgs/pkgs/tools/misc/fontfor/default.nix
new file mode 100644
index 000000000000..c77809ece1ed
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/fontfor/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, cmake
+, pkg-config
+, expat
+, fontconfig
+, freetype
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fontfor";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "7sDream";
+    repo = "fontfor";
+    rev = "v${version}";
+    sha256 = "1b07hd41blwsnb91vh2ax9zigm4lh8n0i5man0cjmxhavvbfy12b";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+  buildInputs = [
+    expat
+    fontconfig
+    freetype
+  ];
+
+  cargoSha256 = "194c4knjfb3pnpvw3zl1srwx3q1jp6z78vzln0q2mk5nf0a35yy0";
+
+  meta = with lib; {
+    description = "Find fonts which can show a specified character and preview them in browser";
+    homepage = "https://github.com/7sDream/fontfor";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/fontforge/default.nix b/nixpkgs/pkgs/tools/misc/fontforge/default.nix
index 2140e405ff4a..ffee232172c0 100644
--- a/nixpkgs/pkgs/tools/misc/fontforge/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fontforge/default.nix
@@ -1,5 +1,4 @@
-{ stdenv, fetchurl, lib
-, fetchpatch
+{ stdenv, fetchFromGitHub, lib
 , cmake, perl, uthash, pkg-config, gettext
 , python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, cairo, pango
 , readline, woff2, zeromq, libuninameslist
@@ -15,25 +14,15 @@ assert withGTK -> withGUI;
 
 stdenv.mkDerivation rec {
   pname = "fontforge";
-  version = "20200314";
+  version = "20201107";
 
-  src = fetchurl {
-    url = "https://github.com/${pname}/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0qf88wd6riycq56d24brybyc93ns74s0nyyavm43zp2kfcihn6fd";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-Rl/5lbXaPgIndANaD0IakaDus6T53FjiBb45FIuGrvc=";
   };
 
-  patches = [
-    # Unreleased fix for https://github.com/fontforge/fontforge/issues/4229
-    # which is required to fix an uninterposated `${CMAKE_INSTALL_PREFIX}/lib`, see
-    # see https://github.com/nh2/static-haskell-nix/pull/98#issuecomment-665395399
-    # TODO: Remove https://github.com/fontforge/fontforge/pull/4232 is in a release.
-    (fetchpatch {
-      name = "fontforge-cmake-set-rpath-to-the-configure-time-CMAKE_INSTALL_PREFIX";
-      url = "https://github.com/fontforge/fontforge/commit/297ee9b5d6db5970ca17ebe5305189e79a1520a1.patch";
-      sha256 = "14qfp8pwh0vzzib4hq2nc6xhn8lc1cal1sb0lqwb2q5dijqx5kqk";
-    })
-  ];
-
   # use $SOURCE_DATE_EPOCH instead of non-deterministic timestamps
   postPatch = ''
     find . -type f -name '*.c' -exec sed -r -i 's#\btime\(&(.+)\)#if (getenv("SOURCE_DATE_EPOCH")) \1=atol(getenv("SOURCE_DATE_EPOCH")); else &#g' {} \;
diff --git a/nixpkgs/pkgs/tools/misc/fselect/default.nix b/nixpkgs/pkgs/tools/misc/fselect/default.nix
index 7416961e84e8..71ed340d14cf 100644
--- a/nixpkgs/pkgs/tools/misc/fselect/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fselect/default.nix
@@ -1,19 +1,20 @@
-{ lib, fetchFromGitHub, rustPlatform, installShellFiles }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "fselect";
-  version = "0.7.2";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "jhspetersson";
     repo = "fselect";
     rev = version;
-    sha256 = "1cqa52n5y6g087w4yzc273jpxhzpinwkqd32azg03dkczbgx5b2v";
+    sha256 = "sha256-gwFX5c5y4bL+KhPDnvCbDco1ORYyqZYFsetMrmOATZU=";
   };
 
-  cargoSha256 = "00yhp2b74plrbi944apbxpkw2y6nbgf81sinfchw44ww1i58mfhj";
+  cargoSha256 = "sha256-2cs+5UL3tNfUzjlFIdsG05moiOktXSJOZJlgo/rZINw=";
 
   nativeBuildInputs = [ installShellFiles ];
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   postInstall = ''
     installManPage docs/fselect.1
diff --git a/nixpkgs/pkgs/tools/misc/fwup/default.nix b/nixpkgs/pkgs/tools/misc/fwup/default.nix
index 4d072e6d2bfa..de2b809eea52 100644
--- a/nixpkgs/pkgs/tools/misc/fwup/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fwup/default.nix
@@ -1,27 +1,68 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper, pkg-config
-, zlib, lzma, bzip2, mtools, dosfstools, zip, unzip, libconfuse, libsodium
-, libarchive, darwin, coreutils }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, DiskArbitration
+, pkg-config
+, bzip2
+, libarchive
+, libconfuse
+, libsodium
+, xz
+, zlib
+, coreutils
+, dosfstools
+, mtools
+, unzip
+, zip
+, which
+, xdelta
+}:
 
 stdenv.mkDerivation rec {
   pname = "fwup";
-  version = "1.5.2";
+  version = "1.8.3";
 
   src = fetchFromGitHub {
     owner = "fhunleth";
     repo = "fwup";
     rev = "v${version}";
-    sha256 = "05sjdlh450hk474a44yr6kz9dzx72jfxpi1krxbd0pdizlmfypsg";
+    sha256 = "sha256-ayfcnIZ7MuBsCy1giwmY2D2C6AukwS+fevmXqGa4c1w=";
   };
 
-  doCheck = true;
-  patches = lib.optional stdenv.isDarwin [ ./fix-testrunner-darwin.patch ];
+  patches = [ ./fix-testrunner-darwin.patch ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook makeWrapper ];
-  buildInputs = [ zlib lzma bzip2 libconfuse libsodium libarchive ]
+  buildInputs = [
+    bzip2
+    libarchive
+    libconfuse
+    libsodium
+    xz
+    zlib
+  ]
     ++ lib.optionals stdenv.isDarwin [
-      darwin.apple_sdk.frameworks.DiskArbitration
-    ];
-  propagatedBuildInputs = [ zip unzip mtools dosfstools coreutils ];
+    DiskArbitration
+  ];
+
+  propagatedBuildInputs = [
+    coreutils
+    dosfstools
+    mtools
+    unzip
+    zip
+  ];
+
+  checkInputs = [
+    which
+    xdelta
+  ];
+
+  doCheck = true;
 
   meta = with lib; {
     description = "Configurable embedded Linux firmware update creator and runner";
diff --git a/nixpkgs/pkgs/tools/misc/fzf/default.nix b/nixpkgs/pkgs/tools/misc/fzf/default.nix
index 837277a5c858..0688f1d6487e 100644
--- a/nixpkgs/pkgs/tools/misc/fzf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fzf/default.nix
@@ -1,28 +1,20 @@
-{ lib, buildGoModule, fetchFromGitHub, writeText, runtimeShell, ncurses, perl, fetchpatch }:
+{ lib, buildGoModule, fetchFromGitHub, writeText, runtimeShell, ncurses, perl }:
 
 buildGoModule rec {
   pname = "fzf";
-  version = "0.25.0";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    sha256 = "1j5bfxl4w8w3n89p051y8dhxg0py9l98v7r2gkr63bg4lj32faz8";
+    sha256 = "sha256-q0rAAD6du0WLcd46LUpkG3gBIvmtOE/foEMW5QCoIak=";
   };
 
-  vendorSha256 = "0dd0qm1fxp3jnlrhfaas8fw87cj7rygaac35a9nk3xh2xsk7q35p";
+  vendorSha256 = "sha256-FKDCIotyra/TZ48wbpzudJZ2aI2pn+ZR4EoZ+9+19Mw=";
 
   outputs = [ "out" "man" ];
 
-  patches = [
-    # Fix test failure on go 1.15
-    (fetchpatch {
-      url = "https://github.com/junegunn/fzf/commit/82791f7efccde5b30da0b4d44f10d214ae5c0c0d.patch";
-      sha256 = "1nybsz09h8cnvxjnkmx9c52g8z0x6pvrn230hw1va5a3pvmg01z1";
-    })
-  ];
-
   fishHook = writeText "load-fzf-keybindings.fish" "fzf_key_bindings";
 
   buildInputs = [ ncurses ];
@@ -79,5 +71,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ma27 zowoq ];
     platforms = platforms.unix;
+    changelog = "https://github.com/junegunn/fzf/blob/${version}/CHANGELOG.md";
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/gammy/default.nix b/nixpkgs/pkgs/tools/misc/gammy/default.nix
index 9f9a73a989e1..e06d20eb2ff7 100644
--- a/nixpkgs/pkgs/tools/misc/gammy/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gammy/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "gammy";
-  version = "0.9.62";
+  version = "0.9.64";
 in
 
 stdenv.mkDerivation {
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "Fushko";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fyr+khLgaX5xbKCW3pqt6fFvZBHGEVs1BsMireZDxP0=";
+    sha256 = "sha256-NPvkT7jSbDjcZDHpMIOik9fNsz7OJXQ3g9OFxkpA3pk=";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/tools/misc/gams/default.nix b/nixpkgs/pkgs/tools/misc/gams/default.nix
index f91acbf264a5..c6bd2c53844c 100644
--- a/nixpkgs/pkgs/tools/misc/gams/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gams/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "4f95389579f33ff7c2586838a2c19021aa0746279555cbb51aa6e0efd09bd297";
   };
   unpackCmd = "unzip $src";
-  buildInputs = [ unzip file ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ file ];
   dontBuild = true;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/git-fire/default.nix b/nixpkgs/pkgs/tools/misc/git-fire/default.nix
index bba1bd65a54d..15dc34cd5267 100644
--- a/nixpkgs/pkgs/tools/misc/git-fire/default.nix
+++ b/nixpkgs/pkgs/tools/misc/git-fire/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
     '';
     homepage = "https://github.com/qw3rtman/git-fire";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.swflint ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/git-town/default.nix b/nixpkgs/pkgs/tools/misc/git-town/default.nix
index 56f9452db7b7..88d62b896df7 100644
--- a/nixpkgs/pkgs/tools/misc/git-town/default.nix
+++ b/nixpkgs/pkgs/tools/misc/git-town/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "git-town";
-  version = "7.4.0";
+  version = "7.5.0";
 
   goPackagePath = "github.com/git-town/git-town";
   src = fetchFromGitHub {
     owner = "git-town";
     repo = "git-town";
     rev = "v${version}";
-    sha256 = "05s2hp4xn0bs3y6rgqkpgz0k8q8yfpwkw5m8vwim95hk6n41ps18";
+    sha256 = "sha256-RmLDlTK+JO2KRLuLvO927W3WYdDlteBIpgTgDXh8lC8=";
   };
 
   buildFlagsArray = [ "-ldflags=-X github.com/git-town/git-town/src/cmd.version=v${version} -X github.com/git-town/git-town/src/cmd.buildDate=nix" ];
diff --git a/nixpkgs/pkgs/tools/misc/github-backup/default.nix b/nixpkgs/pkgs/tools/misc/github-backup/default.nix
new file mode 100644
index 000000000000..1fcaf3a47119
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/github-backup/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, python3
+, git
+, git-lfs
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "github-backup";
+  version = "0.39.0";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "71829df4bdbe5bd55c324a97008405a6b4c6113edb1a2a6a8b73a7059fe64a47";
+  };
+
+  makeWrapperArgs = [
+    "--prefix" "PATH" ":" (lib.makeBinPath [ git git-lfs ])
+  ];
+
+  # has no unit tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Backup a github user or organization";
+    homepage = "https://github.com/josegonzalez/python-github-backup";
+    changelog = "https://github.com/josegonzalez/python-github-backup/blob/${version}/CHANGES.rst";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/goreleaser/default.nix b/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
index febaa4415a25..8732ee66ef68 100644
--- a/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
+++ b/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "goreleaser";
-  version = "0.155.1";
+  version = "0.162.0";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-eVRsDyPlUvVhEnN8aJW8vPw4UqvK2/6pblgnwH2RhkY=";
+    sha256 = "sha256-nhl6GATzFsfEQjKVxz65REn9QTvOH49omU00ZCfO6CY=";
   };
 
-  vendorSha256 = "sha256-VFFwp+n13NL3YpzdWPVzgrH8d4BQHffwpRXvYn9MSaQ=";
+  vendorSha256 = "sha256-zq/RIOK/Hs1GJ2yLE7pe0UoDuR6LGUrPQAuQzrTvuKs=";
 
   buildFlagsArray = [
     "-ldflags="
diff --git a/nixpkgs/pkgs/tools/misc/graylog/default.nix b/nixpkgs/pkgs/tools/misc/graylog/default.nix
index 5be309be582f..b41cc9cb0699 100644
--- a/nixpkgs/pkgs/tools/misc/graylog/default.nix
+++ b/nixpkgs/pkgs/tools/misc/graylog/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, jre_headless, nixosTests }:
+{ lib, stdenv, fetchurl, makeWrapper, openjdk11_headless, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "graylog";
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
   dontBuild = true;
   dontStrip = true;
 
-  buildInputs = [ makeWrapper ];
-  makeWrapperArgs = [ "--prefix" "PATH" ":" "${jre_headless}/bin" ];
+  nativeBuildInputs = [ makeWrapper ];
+  makeWrapperArgs = [ "--set-default" "JAVA_HOME" "${openjdk11_headless}" ];
 
   passthru.tests = { inherit (nixosTests) graylog; };
 
diff --git a/nixpkgs/pkgs/tools/misc/graylog/plugins.nix b/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
index 0355fe58f485..8df7f34bb234 100644
--- a/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
+++ b/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
@@ -15,7 +15,7 @@ let
     stdenv.mkDerivation (a // {
       inherit installPhase;
       dontUnpack = true;
-      buildInputs = [ unzip ];
+      nativeBuildInputs = [ unzip ];
       meta = a.meta // {
         platforms = graylog.meta.platforms;
         maintainers = (a.meta.maintainers or []) ++ [ maintainers.fadenb ];
diff --git a/nixpkgs/pkgs/tools/misc/grc/default.nix b/nixpkgs/pkgs/tools/misc/grc/default.nix
index 8fe35012090d..e47ea74bbe98 100644
--- a/nixpkgs/pkgs/tools/misc/grc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/grc/default.nix
@@ -1,15 +1,15 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib, fetchFromGitHub, buildPythonApplication }:
 
-python3Packages.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "grc";
-  version = "1.11.3";
+  version = "1.12";
   format = "other";
 
   src = fetchFromGitHub {
-    owner  = "garabik";
-    repo   = "grc";
-    rev    = "v${version}";
-    sha256 = "0b3wx9zr7l642hizk93ysbdss7rfymn22b2ykj4kpkf1agjkbv35";
+    owner = "garabik";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-XJj1j6sDt0iL3U6uMbB1j0OfpXRdP+x66gc6sKxrQIA=";
   };
 
   postPatch = ''
@@ -21,23 +21,20 @@ python3Packages.buildPythonApplication rec {
 
   installPhase = ''
     runHook preInstall
-
     ./install.sh "$out" "$out"
     install -Dm444 -t $out/share/zsh/vendor-completions _grc
-
     runHook postInstall
   '';
 
   meta = with lib; {
-    description = "Yet another colouriser for beautifying your logfiles or output of commands";
-    homepage    = "http://korpus.juls.savba.sk/~garabik/software/grc.html";
-    license     = licenses.gpl2;
-    maintainers = with maintainers; [ lovek323 AndersonTorres peterhoeg ];
-    platforms   = platforms.unix;
-
+    homepage = "http://korpus.juls.savba.sk/~garabik/software/grc.html";
+    description = "A generic text colouriser";
     longDescription = ''
       Generic Colouriser is yet another colouriser (written in Python) for
       beautifying your logfiles or output of commands.
     '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ lovek323 AndersonTorres peterhoeg ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/grex/default.nix b/nixpkgs/pkgs/tools/misc/grex/default.nix
index d58661babc60..bef1e59e65d8 100644
--- a/nixpkgs/pkgs/tools/misc/grex/default.nix
+++ b/nixpkgs/pkgs/tools/misc/grex/default.nix
@@ -8,15 +8,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "grex";
-  version = "1.1.0";
+  version = "1.2.0";
 
-  cargoSha256 = "0kf2n2j7kfrfzid1h2gd0qf53fah0hpyrrlh2k5vrhd0panv3bwc";
+  cargoSha256 = "sha256-EZnuGoysTZMpk2pndOzfXyRnN696RpKze27utQWNFTY=";
 
   src = fetchFromGitHub {
     owner = "pemistahl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1viph7ki6f2akc5mpbgycacndmxnv088ybfji2bfdbi5jnpyavvs";
+    sha256 = "sha256-3M6wQB7+1MKPcxSvjDTNs33TrFjCEeFlbh1akwJHLLU=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
diff --git a/nixpkgs/pkgs/tools/misc/grit/default.nix b/nixpkgs/pkgs/tools/misc/grit/default.nix
new file mode 100644
index 000000000000..f1b4b43280bc
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/grit/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "grit";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "climech";
+    repo = "grit";
+    rev = "v${version}";
+    sha256 = "0v4i8xdf1pgkmwad5jb6n6s4rx48zk57wij0ppzg6zb725wy7r8a";
+  };
+
+  vendorSha256 = "0a1lqfn710fgvrvbimd92102fhjs1wa7r8i0l7s5m7jxks629hw8";
+
+  meta = with lib; {
+    description = "A multitree-based personal task manager";
+    homepage = "https://github.com/climech/grit";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.ivar ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/grub/2.0x.nix b/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
index bc933312afc5..ad7a74e8137f 100644
--- a/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
+++ b/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
@@ -1,10 +1,14 @@
 { lib, stdenv, fetchgit, flex, bison, python3, autoconf, automake, gnulib, libtool
 , gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkg-config
+, pkgsBuildBuild
+, nixosTests
 , fuse # only needed for grub-mount
+, runtimeShell
 , zfs ? null
 , efiSupport ? false
 , zfsSupport ? false
 , xenSupport ? false
+, kbdcompSupport ? false, ckbcomp
 }:
 
 with lib;
@@ -31,7 +35,7 @@ let
   canEfi = any (system: stdenv.hostPlatform.system == system) (mapAttrsToList (name: _: name) efiSystemsBuild);
   inPCSystems = any (system: stdenv.hostPlatform.system == system) (mapAttrsToList (name: _: name) pcSystems);
 
-  version = "2.04";
+  version = "2.06-rc1";
 
 in (
 
@@ -46,18 +50,27 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url = "git://git.savannah.gnu.org/grub.git";
     rev = "${pname}-${version}";
-    sha256 = "02gly3xw88pj4zzqjniv1fxa1ilknbq1mdk30bj6qy8n44g90i8w";
+    sha256 = "1ngc960g4w91rg13l724v6nlj6fq1adxp6is2mrq4bnp7sm9mysa";
   };
 
   patches = [
     ./fix-bash-completion.patch
   ];
 
-  nativeBuildInputs = [ bison flex python3 pkg-config autoconf automake ];
-  buildInputs = [ ncurses libusb-compat-0_1 freetype gettext lvm2 fuse libtool ]
+  postPatch = if kbdcompSupport then ''
+    sed -i util/grub-kbdcomp.in -e 's@\bckbcomp\b@${ckbcomp}/bin/ckbcomp@'
+  '' else ''
+    echo '#! ${runtimeShell}' > util/grub-kbdcomp.in
+    echo 'echo "Compile grub2 with { kbdcompSupport = true; } to enable support for this command."' >> util/grub-kbdcomp.in
+  '';
+
+  nativeBuildInputs = [ bison flex python3 pkg-config autoconf automake gettext ];
+  buildInputs = [ ncurses libusb-compat-0_1 freetype lvm2 fuse libtool ]
     ++ optional doCheck qemu
     ++ optional zfsSupport zfs;
 
+  strictDeps = true;
+
   hardeningDisable = [ "all" ];
 
   # Work around a bug in the generated flex lexer (upstream flex bug?)
@@ -90,7 +103,10 @@ stdenv.mkDerivation rec {
       substituteInPlace ./configure --replace '/usr/share/fonts/unifont' '${unifont}/share/fonts'
     '';
 
-  configureFlags = [ "--enable-grub-mount" ] # dep of os-prober
+  configureFlags = [
+    "--enable-grub-mount" # dep of os-prober
+    "BUILD_CC=${pkgsBuildBuild.stdenv.cc}/bin/cc"
+  ]
     ++ optional zfsSupport "--enable-libzfs"
     ++ optionals efiSupport [ "--with-platform=efi" "--target=${efiSystemsBuild.${stdenv.hostPlatform.system}.target}" "--program-prefix=" ]
     ++ optionals xenSupport [ "--with-platform=xen" "--target=${efiSystemsBuild.${stdenv.hostPlatform.system}.target}"];
@@ -110,6 +126,14 @@ stdenv.mkDerivation rec {
     sed -i $out/lib/grub/*/modinfo.sh -e "/grub_target_cppflags=/ s|'.*'|' '|"
   '';
 
+  passthru.tests = {
+    nixos-grub = nixosTests.grub;
+    nixos-install-simple = nixosTests.installer.simple;
+    nixos-install-grub1 = nixosTests.installer.grub1;
+    nixos-install-grub-uefi = nixosTests.installer.simpleUefiGrub;
+    nixos-install-grub-uefi-spec = nixosTests.installer.simpleUefiGrubSpecialisation;
+  };
+
   meta = with lib; {
     description = "GNU GRUB, the Grand Unified Boot Loader (2.x beta)";
 
diff --git a/nixpkgs/pkgs/tools/misc/gti/default.nix b/nixpkgs/pkgs/tools/misc/gti/default.nix
index 83452394f154..e950d58fc76e 100644
--- a/nixpkgs/pkgs/tools/misc/gti/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gti/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "1jivnjswlhwjfg5v9nwfg3vfssvqbdxxf9znwmfb5dgfblg9wxw9";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile --replace 'CC=cc' 'CC=${stdenv.cc.targetPrefix}cc'
+  '';
+
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man6
     cp gti $out/bin
@@ -18,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "http://r-wos.org/hacks/gti";
+    homepage = "https://r-wos.org/hacks/gti";
     license = licenses.mit;
     description = "Humorous typo-based git runner; drives a car over the terminal";
     maintainers = with maintainers; [ fadenb ];
diff --git a/nixpkgs/pkgs/tools/misc/gtklp/default.nix b/nixpkgs/pkgs/tools/misc/gtklp/default.nix
new file mode 100644
index 000000000000..43f67b6b7956
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/gtklp/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, lib, fetchurl
+, autoreconfHook, libtool, pkg-config
+, gtk2, glib, cups, gettext, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gtklp";
+  version = "1.3.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${pname}-${version}.src.tar.gz";
+    sha256 = "1arvnnvar22ipgnzqqq8xh0kkwyf71q2sfsf0crajpsr8a8601xy";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    autoreconfHook
+  ];
+
+  buildInputs = [
+    cups
+    gettext
+    glib
+    gtk2
+    libtool
+    openssl
+  ];
+
+  patches = [
+    ./patches/mdv-fix-str-fmt.patch
+    ./patches/autoconf.patch
+  ];
+
+  preConfigure = ''
+    substituteInPlace include/defaults.h --replace "netscape" "firefox"
+    substituteInPlace include/defaults.h --replace "http://localhost:631/sum.html#STANDARD_OPTIONS" \
+                                                   "http://localhost:631/help/"
+  '';
+
+  preInstall = ''
+    install -D -m0644 -t $out/share/doc AUTHORS BUGS ChangeLog README USAGE
+  '';
+
+  meta = with lib; {
+    description = "A graphical frontend for CUPS";
+    homepage = "https://gtklp.sirtobi.com";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ caadar ];
+    platforms = platforms.unix;
+  };
+
+}
diff --git a/nixpkgs/pkgs/tools/misc/gtklp/patches/autoconf.patch b/nixpkgs/pkgs/tools/misc/gtklp/patches/autoconf.patch
new file mode 100644
index 000000000000..c1698bee1fdc
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/gtklp/patches/autoconf.patch
@@ -0,0 +1,23 @@
+Patch origin: http://sophie.zarb.org/rpms/68e90a72e0052022f558148d97c9ea2a/files/3
+
+diff --git a/configure.ac b/configure.ac
+index b7a30e9..3768ae9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -8,6 +8,7 @@ AC_CONFIG_HEADERS([config.h])
+ 
+ AC_CONFIG_MACRO_DIR([m4])
+ AM_GNU_GETTEXT([external])
++AM_GNU_GETTEXT_REQUIRE_VERSION([0.21])
+ 
+ dnl Extra params
+ CUPSCONFIGPATH=""
+@@ -30,8 +31,6 @@ AC_SUBST(XLIBS)
+ 
+ dnl Checks for header files
+ 
+-dnl internationalization macros
+-AM_GNU_GETTEXT
+ 
+ 
+ # Forte Compiler ############################################################
diff --git a/nixpkgs/pkgs/tools/misc/gtklp/patches/mdv-fix-str-fmt.patch b/nixpkgs/pkgs/tools/misc/gtklp/patches/mdv-fix-str-fmt.patch
new file mode 100644
index 000000000000..6cfc90beb02a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/gtklp/patches/mdv-fix-str-fmt.patch
@@ -0,0 +1,22 @@
+Patch source: http://sophie.zarb.org/rpms/68e90a72e0052022f558148d97c9ea2a/files/1
+
+--- a/libgtklp/libgtklp.c	2020-08-25 17:31:52.427298559 +0100
++++ b/libgtklp/libgtklp.c	2020-08-25 17:36:37.728154682 +0100
+@@ -939,7 +939,7 @@
+ 		gtk_widget_show(pixmapwid);
+ 
+ 		if (strlen(gerror2) == 0)
+-			snprintf(tmplabel, (size_t) MAXLINE, gerror1);
++			snprintf(tmplabel, (size_t) MAXLINE, "%s", gerror1);
+ 		else
+ 			snprintf(tmplabel, (size_t) MAXLINE, gerror1, gerror2);
+ 		label = gtk_label_new(tmplabel);
+@@ -973,7 +973,7 @@
+ #endif
+ 	} else {
+ 		if (strlen(gerror2) == 0)
+-			g_warning(gerror1);
++			g_warning("%s", gerror1);
+ 		else
+ 			g_warning(gerror1, gerror2);
+ 	}
diff --git a/nixpkgs/pkgs/tools/misc/handlr/default.nix b/nixpkgs/pkgs/tools/misc/handlr/default.nix
new file mode 100644
index 000000000000..1d825c866c47
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/handlr/default.nix
@@ -0,0 +1,25 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "handlr";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "chmln";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1f4gmlqzgw1r8n0w9dr9lpsn94f2hlnak9bbq5xgf6jwgc9mwqzg";
+  };
+
+  cargoSha256 = "16d4dywwkgvvxw6ninrx87rqhx0whdq3yy01m27qjy4gz6z6ad8p";
+
+  # Most tests fail (at least some due to directory permissions)
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Alternative to xdg-open to manage default applications with ease";
+    homepage = "https://github.com/chmln/handlr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/hdf4/default.nix b/nixpkgs/pkgs/tools/misc/hdf4/default.nix
index d127bc25c3c6..5373c64d647c 100644
--- a/nixpkgs/pkgs/tools/misc/hdf4/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hdf4/default.nix
@@ -4,11 +4,15 @@
 , fixDarwinDylibNames
 , cmake
 , libjpeg
+, uselibtirpc ? stdenv.isLinux
 , libtirpc
 , zlib
 , szip ? null
+, javaSupport ? false
+, jdk
 }:
-let uselibtirpc = stdenv.isLinux;
+let
+  javabase = "${jdk}/jre/lib/${jdk.architecture}";
 in
 stdenv.mkDerivation rec {
   pname = "hdf";
@@ -52,9 +56,9 @@ stdenv.mkDerivation rec {
     libjpeg
     szip
     zlib
-  ] ++ lib.optionals uselibtirpc [
-    libtirpc
-  ];
+  ]
+  ++ lib.optional javaSupport jdk
+  ++ lib.optional uselibtirpc libtirpc;
 
   preConfigure = lib.optionalString uselibtirpc ''
     # Make tirpc discovery work with CMAKE_PREFIX_PATH
@@ -75,6 +79,11 @@ stdenv.mkDerivation rec {
     "-DHDF4_ENABLE_Z_LIB_SUPPORT=ON"
     "-DHDF4_BUILD_FORTRAN=OFF"
     "-DJPEG_DIR=${libjpeg}"
+  ] ++ lib.optionals javaSupport [
+    "-DHDF4_BUILD_JAVA=ON"
+    "-DJAVA_HOME=${jdk}"
+    "-DJAVA_AWT_LIBRARY=${javabase}/libawt.so"
+    "-DJAVA_JVM_LIBRARY=${javabase}/server/libjvm.so"
   ] ++ lib.optionals (szip != null) [
     "-DHDF4_ENABLE_SZIP_ENCODING=ON"
     "-DHDF4_ENABLE_SZIP_SUPPORT=ON"
diff --git a/nixpkgs/pkgs/tools/misc/hdf5/default.nix b/nixpkgs/pkgs/tools/misc/hdf5/default.nix
index fc7bb635040a..e97a6dbdd189 100644
--- a/nixpkgs/pkgs/tools/misc/hdf5/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hdf5/default.nix
@@ -8,6 +8,8 @@
 , mpiSupport ? false
 , mpi
 , enableShared ? !stdenv.hostPlatform.isStatic
+, javaSupport ? false
+, jdk
 }:
 
 # cpp and mpi options are mutually exclusive
@@ -17,11 +19,11 @@ assert !cpp || !mpiSupport;
 let inherit (lib) optional optionals; in
 
 stdenv.mkDerivation rec {
-  version = "1.10.6";
+  version = "1.10.7";
   pname = "hdf5";
   src = fetchurl {
     url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/${pname}-${version}/src/${pname}-${version}.tar.bz2";
-    sha256 = "1gf38x51128hn00744358w27xgzjk0ff4wra4yxh2lk804ck1mh9";
+    sha256 = "0pm5xxry55i0h7wmvc7svzdaa90rnk7h78rrjmnlkz2ygsn8y082";
   };
 
   passthru = {
@@ -35,7 +37,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = []
     ++ optional (gfortran != null) gfortran
-    ++ optional (szip != null) szip;
+    ++ optional (szip != null) szip
+    ++ optional javaSupport jdk;
 
   propagatedBuildInputs = []
     ++ optional (zlib != null) zlib
@@ -46,7 +49,8 @@ stdenv.mkDerivation rec {
     ++ optional (gfortran != null) "--enable-fortran"
     ++ optional (szip != null) "--with-szlib=${szip}"
     ++ optionals mpiSupport ["--enable-parallel" "CC=${mpi}/bin/mpicc"]
-    ++ optional enableShared "--enable-shared";
+    ++ optional enableShared "--enable-shared"
+    ++ optional javaSupport "--enable-java";
 
   patches = [
     ./bin-mv.patch
diff --git a/nixpkgs/pkgs/tools/misc/hdfjava/default.nix b/nixpkgs/pkgs/tools/misc/hdfjava/default.nix
deleted file mode 100644
index 70a2f091116b..000000000000
--- a/nixpkgs/pkgs/tools/misc/hdfjava/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchurl, cmake, javac }:
-
-stdenv.mkDerivation rec {
-  pname = "hdf-java";
-  version = "3.3.2";
-
-  src = fetchurl {
-    url = "http://www.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfjni-${version}/src/CMake-hdfjava-${version}.tar.gz";
-    sha256 = "0m1gp2aspcblqzmpqbdpfp6giskws85ds6p5gz8sx7asyp7wznpr";
-  };
-
-  nativeBuildInputs = [ cmake javac ];
-
-  dontConfigure = true;
-  buildPhase = "./build-hdfjava-unix.sh";
-  installPhase = ''
-    mkdir -p $out
-    cp -r build/_CPack_Packages/Linux/TGZ/HDFJava-3.3.2-Linux/HDF_Group/HDFJava/${version}/* $out/
-  '';
-
-  meta = {
-    description = "A Java package that implements HDF4 and HDF5 data objects in an object-oriented form";
-    license = lib.licenses.free; # BSD-like
-    homepage = "https://support.hdfgroup.org/products/java/index.html";
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/hdfview/default.nix b/nixpkgs/pkgs/tools/misc/hdfview/default.nix
index dc13bb52791f..8537e5748c30 100644
--- a/nixpkgs/pkgs/tools/misc/hdfview/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hdfview/default.nix
@@ -1,39 +1,58 @@
-{ lib, stdenv, fetchurl, ant, javac, hdf_java }:
+{ lib, stdenv, fetchurl, ant, jdk, nettools, hdf4, hdf5, makeDesktopItem, copyDesktopItems }:
 
 stdenv.mkDerivation rec {
   pname = "hdfview";
-  version = "2.14";
+  version = "3.1.2";
 
   src = fetchurl {
-    url = "https://support.hdfgroup.org/ftp/HDF5/hdf-java/current/src/${pname}-${version}.tar.gz";
-    sha256 = "0lv9djfm7hnp14mcyzbiax3xjb8vkbzhh7bdl6cvgy53pc08784p";
+    url = "https://support.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/${pname}-${version}/src/${pname}-${version}.tar.gz";
+    sha256 = "0kyw9i3f817z71l0ak7shl0wqxasz9h5fl05mklyapa7cj27637c";
   };
 
-  nativeBuildInputs = [ ant javac ];
+  nativeBuildInputs = [
+    ant jdk
+    nettools  # "hostname" required
+    copyDesktopItems
+  ];
 
-  HDFLIBS = hdf_java;
+  HDFLIBS = (hdf4.override { javaSupport = true; }).out;
+  HDF5LIBS = (hdf5.override { javaSupport = true; }).out;
 
   buildPhase = ''
-    ant run
-    ant package
+    runHook preBuild
+
+    ant createJPackage
+
+    runHook postBuild
   '';
 
+  desktopItem = makeDesktopItem rec {
+    name = "HDFView";
+    desktopName = name;
+    exec = name;
+    icon = name;
+    comment = meta.description;
+    categories = "Science;DataVisualization;";
+  };
+
   installPhase = ''
-    mkdir $out
-    # exclude jre
-    cp -r build/HDF_Group/HDFView/*/{lib,share} $out/
-    mkdir $out/bin
-    cp -r build/HDF_Group/HDFView/*/hdfview.sh $out/bin/hdfview
-    chmod +x $out/bin/hdfview
-    substituteInPlace $out/bin/hdfview \
-      --replace "@JAVABIN@" "${javac}/bin/" \
-      --replace "@INSTALLDIR@" "$out"
+    runHook preInstall
+
+    mkdir -p $out/bin $out/lib
+    cp -a build/dist/HDFView/bin/HDFView $out/bin/
+    cp -a build/dist/HDFView/lib/app $out/lib/
+    ln -s ${jdk}/lib/openjdk $out/lib/runtime
+
+    mkdir -p $out/share/applications $out/share/icons/hicolor/32x32/apps
+    cp src/HDFView.png $out/share/icons/hicolor/32x32/apps/
+
+    runHook postInstall
   '';
 
   meta = {
     description = "A visual tool for browsing and editing HDF4 and HDF5 files";
     license = lib.licenses.free; # BSD-like
-    homepage = "https://support.hdfgroup.org/products/java/index.html";
+    homepage = "https://portal.hdfgroup.org/display/HDFVIEW/HDFView";
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/hidrd/default.nix b/nixpkgs/pkgs/tools/misc/hidrd/default.nix
new file mode 100644
index 000000000000..74bb771c1d48
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/hidrd/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation {
+  pname = "hidrd";
+  version = "unstable-2019-06-03";
+
+  src = fetchFromGitHub {
+    owner = "DIGImend";
+    repo = "hidrd";
+    rev = "6c0ed39708a5777ac620f902f39c8a0e03eefe4e";
+    sha256 = "1rnhq6b0nrmphdig1qrpzpbpqlg3943gzpw0v7p5rwcdynb6bb94";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  meta = with lib; {
+    description = "HID report descriptor I/O library and conversion tool";
+    homepage = "https://github.com/DIGImend/hidrd";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ pacien ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock b/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock
index 3bd45730313a..5cb5b3872a1b 100644
--- a/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock
@@ -6,7 +6,7 @@ GEM
     ethon (0.12.0)
       ffi (>= 1.3.0)
     ffi (1.14.2)
-    html-proofer (3.18.5)
+    html-proofer (3.18.8)
       addressable (~> 2.3)
       mercenary (~> 0.3)
       nokogumbo (~> 2.0)
@@ -15,13 +15,15 @@ GEM
       typhoeus (~> 1.3)
       yell (~> 2.0)
     mercenary (0.4.0)
-    mini_portile2 (2.4.0)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
+    mini_portile2 (2.5.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     nokogumbo (2.0.4)
       nokogiri (~> 1.8, >= 1.8.4)
     parallel (1.20.1)
     public_suffix (4.0.6)
+    racc (1.5.2)
     rainbow (3.0.0)
     typhoeus (1.4.0)
       ethon (>= 0.9.0)
diff --git a/nixpkgs/pkgs/tools/misc/html-proofer/default.nix b/nixpkgs/pkgs/tools/misc/html-proofer/default.nix
index ba136b06b8a5..73025a212b2a 100644
--- a/nixpkgs/pkgs/tools/misc/html-proofer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/html-proofer/default.nix
@@ -1,4 +1,4 @@
-{ bundlerEnv, ruby, lib }:
+{ bundlerEnv, ruby, lib, bundlerUpdateScript }:
 
 bundlerEnv rec {
   name = "${pname}-${version}";
@@ -8,11 +8,13 @@ bundlerEnv rec {
   inherit ruby;
   gemdir = ./.;
 
+  passthru.updateScript = bundlerUpdateScript pname;
+
   meta = with lib; {
     description = "A tool to validate HTML files";
     homepage    = "https://github.com/gjtorikian/html-proofer";
     license     = licenses.mit;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
     platforms   = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix b/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix
index 92ce4b8bf82c..d05e096f78d8 100644
--- a/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix
+++ b/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix
@@ -37,10 +37,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bz0041fizdmggc5k9an4s3qk6diyybn2agcia2wr96vymfb2qjh";
+      sha256 = "0i5anzj9lp2m6bvghcbz16dlv5ww2mcwgkfj878mamgvb2pfk2m9";
       type = "gem";
     };
-    version = "3.18.5";
+    version = "3.18.8";
   };
   mercenary = {
     groups = ["default"];
@@ -57,21 +57,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.1";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -104,6 +104,16 @@
     };
     version = "4.0.6";
   };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rainbow = {
     groups = ["default"];
     platforms = [];
diff --git a/nixpkgs/pkgs/tools/misc/i3minator/default.nix b/nixpkgs/pkgs/tools/misc/i3minator/default.nix
index 6e207ce69166..4db029ef8fa2 100644
--- a/nixpkgs/pkgs/tools/misc/i3minator/default.nix
+++ b/nixpkgs/pkgs/tools/misc/i3minator/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, pythonPackages, glibcLocales }:
+{ lib, fetchFromGitHub, python3Packages, glibcLocales }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "i3minator";
   version = "0.0.4";
 
@@ -13,7 +13,7 @@ pythonPackages.buildPythonApplication rec {
 
   LC_ALL = "en_US.UTF-8";
   buildInputs = [ glibcLocales ];
-  propagatedBuildInputs = [ pythonPackages.pyyaml pythonPackages.i3-py ];
+  propagatedBuildInputs = [ python3Packages.pyyaml python3Packages.i3-py ];
 
   # No tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/misc/ix/default.nix b/nixpkgs/pkgs/tools/misc/ix/default.nix
index ed47e477854c..83d8a7704192 100644
--- a/nixpkgs/pkgs/tools/misc/ix/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ix/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 =  "0xc2s4s1aq143zz8lgkq5k25dpf049dw253qxiav5k7d7qvzzy57";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   phases = [ "installPhase" "fixupPhase" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix b/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix
index 117199617e14..abd8398601cd 100644
--- a/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix
+++ b/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix
@@ -18,8 +18,7 @@ stdenv.mkDerivation {
     sha256 = "0d5mzkwsbh9s9b1vyvpaawqc09b0q41l2a7pmwf7386b1fsx6d58";
   };
 
-  nativeBuildInputs = [ copyDesktopItems ];
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ copyDesktopItems unzip ];
   inherit jre;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/jdupes/default.nix b/nixpkgs/pkgs/tools/misc/jdupes/default.nix
index c42abee5e23f..d06fc7aef69a 100644
--- a/nixpkgs/pkgs/tools/misc/jdupes/default.nix
+++ b/nixpkgs/pkgs/tools/misc/jdupes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jdupes";
-  version = "1.19.1";
+  version = "1.19.2";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "sha256-1gx3rStqIxLt/iRgpdp5z7tX1/wA0miZ1y5WTeGQ1Vs=";
+    sha256 = "sha256-3lWrSybYp3RrUnydosgsNkGQjrk7JvxuxjMslN4cGfk=";
     # Unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation. The testdir
     # directories have such files and will be removed.
diff --git a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
index 1c2d7ab6717b..51134e48c041 100644
--- a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, lib, darwin, fetchFromGitHub, rustPlatform }:
+{ stdenv, lib, fetchFromGitHub, rustPlatform, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "kak-lsp";
-  version = "8.0.0";
+  version = "9.0.0";
 
   src = fetchFromGitHub {
-    owner = "ul";
+    owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nka51szivwhlfkimjiyzj67nxh75m784c28ass6ihlfax631w9m";
+    sha256 = "1wfv2fy5ga6kc51zka3pak0hq97csm2l11bz74w3n1hrf5q9nnf8";
   };
 
-  cargoSha256 = "174qy50m9487vv151vm8q6sby79dq3gbqjbz6h4326jwsc9wwi8c";
+  cargoSha256 = "0g67s6n45rxvv1q5s7x5ajh5n16p68bhlsrsjp46qamrraz63d68";
 
-  buildInputs = lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+  buildInputs = lib.optional stdenv.isDarwin [ Security ];
 
   meta = with lib; {
     description = "Kakoune Language Server Protocol Client";
diff --git a/nixpkgs/pkgs/tools/misc/kargo/default.nix b/nixpkgs/pkgs/tools/misc/kargo/default.nix
index 8c24848f4b59..34b93403487c 100644
--- a/nixpkgs/pkgs/tools/misc/kargo/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kargo/default.nix
@@ -31,7 +31,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/kubespray/kargo-cli";
     description = "A tool helps to deploy a kubernetes cluster with Ansible";
-    platforms = platforms.linux;
+    platforms = platforms.all;
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/keychain/default.nix b/nixpkgs/pkgs/tools/misc/keychain/default.nix
index 49b3ffbb7dde..61abb3eee105 100644
--- a/nixpkgs/pkgs/tools/misc/keychain/default.nix
+++ b/nixpkgs/pkgs/tools/misc/keychain/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "1bkjlg0a2bbdjhwp37ci1rwikvrl4s3xlbf2jq2z4azc96dr83mj";
   };
 
-  buildInputs = [ makeWrapper perl ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ];
 
   installPhase = ''
     mkdir -p $out/{bin,share/man/man1}
diff --git a/nixpkgs/pkgs/tools/misc/krapslog/default.nix b/nixpkgs/pkgs/tools/misc/krapslog/default.nix
new file mode 100644
index 000000000000..4574d6c3534a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/krapslog/default.nix
@@ -0,0 +1,22 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "krapslog";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "acj";
+    repo = "krapslog-rs";
+    rev = version;
+    sha256 = "1yllvy3z3115aqxhnjn9rq2z67rgf2w53naygnl6ixpjhpafcr3k";
+  };
+
+  cargoSha256 = "05gvl6yiyibcdscdf9a6k28xizdr5kfqbhynfbjny2hpqqjmnxzl";
+
+  meta = with lib; {
+    description = "Visualize a log file with sparklines";
+    homepage = "https://github.com/acj/krapslog-rs";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ yanganto ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/lazydocker/default.nix b/nixpkgs/pkgs/tools/misc/lazydocker/default.nix
index ed186772ab78..2a63074c8d71 100644
--- a/nixpkgs/pkgs/tools/misc/lazydocker/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lazydocker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "lazydocker";
-  version = "0.10";
+  version = "0.12";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = "lazydocker";
     rev = "v${version}";
-    sha256 = "04j5bcsxm2yf74zkphnjrg8j3w0v6bsny8sg2k4gbisgshl1i3p8";
+    sha256 = "sha256-bpc83DFAyrAQ3VI9saYe+10ZQqOHgscerRKRyjfYD4g=";
   };
 
   goPackagePath = "github.com/jesseduffield/lazydocker";
diff --git a/nixpkgs/pkgs/tools/misc/lbdb/default.nix b/nixpkgs/pkgs/tools/misc/lbdb/default.nix
index d33cdbacb15e..fd8b805743ac 100644
--- a/nixpkgs/pkgs/tools/misc/lbdb/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lbdb/default.nix
@@ -19,7 +19,8 @@ stdenv.mkDerivation {
     sha256 = "1gr5l2fr9qbdccga8bhsrpvz6jxigvfkdxrln9wyf2xpps5cdjxh";
   };
 
-  buildInputs = [ goobook makeWrapper perl ConvertASN1 perlldap AuthenSASL ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ goobook perl ConvertASN1 perlldap AuthenSASL ]
     ++ optional (!stdenv.isDarwin) finger_bsd
     ++ optional   (abook != null) abook
     ++ optional   (gnupg != null) gnupg
diff --git a/nixpkgs/pkgs/tools/misc/ldapvi/default.nix b/nixpkgs/pkgs/tools/misc/ldapvi/default.nix
index 9b57a295de0f..759e86080903 100644
--- a/nixpkgs/pkgs/tools/misc/ldapvi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ldapvi/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
     '';
     homepage = "http://www.lichteblau.com/ldapvi/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ domenkozar ];
+    maintainers = with maintainers; [ ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/lf/default.nix b/nixpkgs/pkgs/tools/misc/lf/default.nix
index ec002ae4232b..7ec9d0d407a4 100644
--- a/nixpkgs/pkgs/tools/misc/lf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lf/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "lf";
-  version = "20";
+  version = "21";
 
   src = fetchFromGitHub {
     owner = "gokcehan";
     repo = "lf";
     rev = "r${version}";
-    sha256 = "056g2g503ppbqqbq5nk90sl8ki1q4fixdc25a6wv15gm1inxrb4b";
+    sha256 = "0j7c21lsgcc39ng9ni94y3zfcqwyf9jc52fi8mcpkp0lpcx5ava9";
   };
 
-  vendorSha256 = "12njqs39ympi2mqal1cdn0smp80yzcs8xmca1iih8pbmxv51r2gg";
+  vendorSha256 = "15fl9v69wkzwzpq6x4xhcd5g6xyck3mlpbz1bbb61l75jjzg913m";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/misc/libcpuid/default.nix b/nixpkgs/pkgs/tools/misc/libcpuid/default.nix
index cb02d87e22ad..8c4cb5c1a759 100644
--- a/nixpkgs/pkgs/tools/misc/libcpuid/default.nix
+++ b/nixpkgs/pkgs/tools/misc/libcpuid/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcpuid";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "anrieff";
     repo = "libcpuid";
     rev = "v${version}";
-    sha256 = "13v5x8gyka2v4kx52khwalb6ai328z7kk9jlipbbbys63p6nyddr";
+    sha256 = "sha256-m10LdtwBk1Lx31AJ4HixEYaCkT7EHpF9+tOV1rSA6VU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/misc/librespeed-cli/default.nix b/nixpkgs/pkgs/tools/misc/librespeed-cli/default.nix
new file mode 100644
index 000000000000..d2396f0086c4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/librespeed-cli/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "librespeed-cli";
+  version = "1.0.7";
+
+  src = fetchFromGitHub {
+    owner = "librespeed";
+    repo = "speedtest-cli";
+    rev = "v${version}";
+    sha256 = "03bhxx33fy1cgp83anm51fm8v079v0az0d0p785dz98jg14vzibl";
+  };
+
+  vendorSha256 = "1kccxmmzbkzbrxypcrz0j1zz51c0q1d5hh25lcpfbkm3498mj02c";
+
+  # Tests have additonal requirements
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Command line client for LibreSpeed";
+    homepage = "https://github.com/librespeed/speedtest-cli";
+    license = with licenses; [ lgpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/lice/default.nix b/nixpkgs/pkgs/tools/misc/lice/default.nix
index 3322196d6ed5..4cb3f794fd48 100644
--- a/nixpkgs/pkgs/tools/misc/lice/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lice/default.nix
@@ -1,18 +1,17 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib, buildPythonPackage, fetchPypi , setuptools, pytestCheckHook }:
 
-python3Packages.buildPythonPackage rec {
+buildPythonPackage rec {
+  pname = "lice";
+  version = "0.6";
 
-  version = "0.4";
-  name = "lice-${version}";
-
-  src = fetchFromGitHub {
-    owner = "licenses";
-    repo = "lice";
-    rev = version;
-    sha256 = "0yxf70fi8ds3hmwjply2815k466r99k8n22r0ppfhwjvp3rn60qx";
-    fetchSubmodules = true;
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0skyyirbidknfdzdvsjga8zb4ar6xpd5ilvz11dfm2a9yxh3d59d";
   };
 
+  propagatedBuildInputs = [ setuptools ];
+
+  checkInputs = [ pytestCheckHook ];
   meta = with lib; {
     description = "Print license based on selection and user options";
     homepage = "https://github.com/licenses/lice";
diff --git a/nixpkgs/pkgs/tools/misc/lifecycled/default.nix b/nixpkgs/pkgs/tools/misc/lifecycled/default.nix
new file mode 100644
index 000000000000..1c30b760a9c8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/lifecycled/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+buildGoModule rec {
+  pname = "lifecycled";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "buildkite";
+    repo = "lifecycled";
+    rev = "v${version}";
+    sha256 = "F9eovZpwbigP0AMdjAIxULPLDC3zO6GxQmPdt5Xvpkk=";
+  };
+
+  vendorSha256 = "q5wYKSLHRzL+UGn29kr8+mUupOPR1zohTscbzjMRCS0=";
+
+  postInstall = ''
+    mkdir -p $out/lib/systemd/system
+    substitute init/systemd/lifecycled.unit $out/lib/systemd/system/lifecycled.service \
+      --replace /usr/bin/lifecycled $out/bin/lifecycled
+  '';
+
+  meta = with lib; {
+    description = "A daemon for responding to AWS AutoScaling Lifecycle Hooks";
+    homepage = "https://github.com/buildkite/lifecycled/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ cole-h grahamc ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/misc/logstash/6.x.nix b/nixpkgs/pkgs/tools/misc/logstash/6.x.nix
index 97ee5b2ed3f3..1c7ab29cbc86 100644
--- a/nixpkgs/pkgs/tools/misc/logstash/6.x.nix
+++ b/nixpkgs/pkgs/tools/misc/logstash/6.x.nix
@@ -3,12 +3,13 @@
 , lib, stdenv
 , fetchurl
 , makeWrapper
+, nixosTests
 , jre
 }:
 
 with lib;
 
-stdenv.mkDerivation rec {
+let this = stdenv.mkDerivation rec {
   version = elk6Version;
   name = "logstash-${optionalString (!enableUnfree) "oss-"}${version}";
 
@@ -52,4 +53,12 @@ stdenv.mkDerivation rec {
     platforms   = platforms.unix;
     maintainers = with maintainers; [ wjlroe offline basvandijk ];
   };
-}
+  passthru.tests =
+    optionalAttrs (!enableUnfree) (
+      assert this.drvPath == nixosTests.elk.ELK-6.elkPackages.logstash.drvPath;
+      {
+        elk = nixosTests.elk.ELK-6;
+      }
+    );
+};
+in this
diff --git a/nixpkgs/pkgs/tools/misc/logstash/7.x.nix b/nixpkgs/pkgs/tools/misc/logstash/7.x.nix
index 0817a7ab087e..1abc0ff9bf82 100644
--- a/nixpkgs/pkgs/tools/misc/logstash/7.x.nix
+++ b/nixpkgs/pkgs/tools/misc/logstash/7.x.nix
@@ -3,12 +3,13 @@
 , lib, stdenv
 , fetchurl
 , makeWrapper
+, nixosTests
 , jre
 }:
 
 with lib;
 
-stdenv.mkDerivation rec {
+let this = stdenv.mkDerivation rec {
   version = elk7Version;
   name = "logstash-${optionalString (!enableUnfree) "oss-"}${version}";
 
@@ -52,4 +53,12 @@ stdenv.mkDerivation rec {
     platforms   = platforms.unix;
     maintainers = with maintainers; [ wjlroe offline basvandijk ];
   };
-}
+  passthru.tests =
+    optionalAttrs (!enableUnfree) (
+      assert this.drvPath == nixosTests.elk.ELK-7.elkPackages.logstash.drvPath;
+      {
+        elk = nixosTests.elk.ELK-7;
+      }
+    );
+};
+in this
diff --git a/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix b/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix
index ad1210e95404..6c1f1759084e 100644
--- a/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lokalise2-cli";
-  version = "2.6.3";
+  version = "2.6.4";
 
   src = fetchFromGitHub {
     owner = "lokalise";
     repo = "lokalise-cli-2-go";
     rev = "v${version}";
-    sha256 = "sha256-3kDaaPDRbhJyp/CblTKhB0dUeOjroCs3WkjEXL87Od4=";
+    sha256 = "sha256-D/I1I7r3IuDz1MZZrzKVMhdLIZxbN2bYeGmqJVlUU6g=";
   };
 
   vendorSha256 = "sha256-iWYlbGeLp/SiF8/OyWGIHJQB1RJjma9/EDc3zOsjNG8=";
diff --git a/nixpkgs/pkgs/tools/misc/lorri/default.nix b/nixpkgs/pkgs/tools/misc/lorri/default.nix
index 951cb8b5caa9..9635b6b42385 100644
--- a/nixpkgs/pkgs/tools/misc/lorri/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lorri/default.nix
@@ -1,37 +1,28 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , pkgs
+, rustPackages
 , fetchFromGitHub
 , rustPlatform
-  # Updater script
-, runtimeShell
 , writers
-  # Tests
 , nixosTests
-  # Apple dependencies
 , CoreServices
 , Security
 }:
 
 let
   # Run `eval $(nix-build -A lorri.updater)` after updating the revision!
-  version = "1.2";
-  gitRev = "43a260c221d5dac4a44fd82271736c8444474eec";
-  sha256 = "0g6zq27dpr8bdan5xrqchybpbqwnhhc7x8sxbfygigbqd3xv9i6n";
-  cargoSha256 = "1zmlp14v7av0znmjyy2aq83lc74503p6r0l11l9iw7s3xad8rda4";
+  version = "1.3.1";
+  gitRev = "df83b9b175fecc8ec8b02096c5cfe2db3d00b92e";
+  sha256 = "1df6p0b482vhymw3z7gimc441jr7aix9lhdbcm5wjvw9f276016f";
+  cargoSha256 = "1f9b2h3zakw7qmlnc4rqhxnw80sl5h4mj8cghr82iacxwqz499ql";
 
 in (rustPlatform.buildRustPackage rec {
   pname = "lorri";
   inherit version;
 
-  meta = with lib; {
-    description = "Your project's nix-env";
-    homepage = "https://github.com/target/lorri";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ grahamc Profpatsch ];
-  };
-
   src = fetchFromGitHub {
-    owner = "target";
+    owner = "nix-community";
     repo = pname;
     rev = gitRev;
     inherit sha256;
@@ -43,11 +34,10 @@ in (rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   BUILD_REV_COUNT = src.revCount or 1;
-  RUN_TIME_CLOSURE = pkgs.callPackage ./runtime.nix {};
+  RUN_TIME_CLOSURE = pkgs.callPackage ./runtime.nix { };
 
-  nativeBuildInputs = with pkgs; [ rustPackages.rustfmt ];
-  buildInputs =
-    lib.optionals stdenv.isDarwin [ CoreServices Security ];
+  nativeBuildInputs = [ rustPackages.rustfmt ];
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices Security ];
 
   # copy the docs to the $man and $doc outputs
   postInstall = ''
@@ -70,4 +60,11 @@ in (rustPlatform.buildRustPackage rec {
       nixos = nixosTests.lorri;
     };
   };
+
+  meta = with lib; {
+    description = "Your project's nix-env";
+    homepage = "https://github.com/target/lorri";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ grahamc Profpatsch ];
+  };
 })
diff --git a/nixpkgs/pkgs/tools/misc/lsd/default.nix b/nixpkgs/pkgs/tools/misc/lsd/default.nix
index c3c9fab8c1ed..212cc997e768 100644
--- a/nixpkgs/pkgs/tools/misc/lsd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lsd/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lsd";
-  version = "0.19.0";
+  version = "0.20.1";
 
   src = fetchFromGitHub {
     owner = "Peltoche";
     repo = pname;
     rev = version;
-    sha256 = "1iiczdsqw0i6cz492177z6lr8s7fikn151j8p76fmr77zk0bm6q2";
+    sha256 = "sha256-r/Rllu+tgKqz+vkxA8BSN+3V0lUUd6dEATfickQp4+s=";
   };
 
-  cargoSha256 = "1r2mkpicsyihlrim3bnmscgg5rnaijpvgq8c846zqj7ly8v8qqvg";
+  cargoSha256 = "sha256-ZK4kKdW+TqT0NXzB1wtQwJA78cVRxvEoqImOIqLldvM=";
 
   nativeBuildInputs = [ installShellFiles ];
   postInstall = ''
@@ -32,6 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Peltoche/lsd";
     description = "The next gen ls command";
     license = licenses.asl20;
-    maintainers = with maintainers; [ Br1ght0ne marsam zowoq ];
+    maintainers = with maintainers; [ Br1ght0ne marsam zowoq SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/man-db/default.nix b/nixpkgs/pkgs/tools/misc/man-db/default.nix
index 44cb6962b8e6..4ac11aa62c1b 100644
--- a/nixpkgs/pkgs/tools/misc/man-db/default.nix
+++ b/nixpkgs/pkgs/tools/misc/man-db/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, pkg-config, libpipeline, db, groff, libiconv, makeWrapper, buildPackages }:
 
 stdenv.mkDerivation rec {
-  name = "man-db-2.9.3";
+  name = "man-db-2.9.4";
 
   src = fetchurl {
     url = "mirror://savannah/man-db/${name}.tar.xz";
-    sha256 = "1f4palf5bdyf3f8sa0981cqxn9cjcr2pz53ngrrsybb9n0da2nps";
+    sha256 = "sha256-tmyZ7frRatkoyIn4fPdjgCY8FgkyPCgLOp5pY/2xZ1Y=";
   };
 
   outputs = [ "out" "doc" ];
diff --git a/nixpkgs/pkgs/tools/misc/mbuffer/default.nix b/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
index 6fdd4a69ebc4..2ab76e8dfd42 100644
--- a/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
@@ -3,12 +3,12 @@
  } :
 
 stdenv.mkDerivation rec {
-  version = "20200929";
+  version = "20210209";
   pname = "mbuffer";
 
   src = fetchurl {
     url = "http://www.maier-komor.de/software/mbuffer/mbuffer-${version}.tgz";
-    sha256 = "1s6lxbqba2hwnvrdrwk0fpnff62gv0ynah4ql0c9y14s9v0y79jk";
+    sha256 = "sha256-6B8niOJiHyD4SBge8ssZrG0SMoaRQ38wFXSyU/2Jmgw=";
   };
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/tools/misc/mc/default.nix b/nixpkgs/pkgs/tools/misc/mc/default.nix
index d2456a08cbd7..12aa477219b6 100644
--- a/nixpkgs/pkgs/tools/misc/mc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mc/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-xt6txQWV8tmiLcbCmanyizk+NYNG6/bKREqEadwWbCc=";
   };
 
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  nativeBuildInputs = [ pkg-config autoreconfHook unzip ];
 
   buildInputs = [
     file
@@ -39,7 +39,6 @@ stdenv.mkDerivation rec {
     openssl
     perl
     slang
-    unzip
     zip
   ] ++ lib.optionals (!stdenv.isDarwin) [ e2fsprogs gpm ];
 
diff --git a/nixpkgs/pkgs/tools/misc/mcfly/default.nix b/nixpkgs/pkgs/tools/misc/mcfly/default.nix
index 616ee822eba2..55e2b75684ee 100644
--- a/nixpkgs/pkgs/tools/misc/mcfly/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mcfly/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "0.5.3";
+  version = "0.5.6";
 
   src = fetchFromGitHub {
     owner = "cantino";
     repo = "mcfly";
     rev = "v${version}";
-    sha256 = "1p51wdv47cyg6dmb81fm0d92x1kp7bwwpgax6vlh669nkddiwvmm";
+    sha256 = "sha256-x2cED+WEc50RB8BxiDEm/XnauT1RqqGjSIdL5MMaFBY=";
   };
 
   postInstall = ''
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     install -Dm644 -t $out/share/mcfly mcfly.fish
   '';
 
-  cargoSha256 = "0gcdgca8w8i978b067rwm5zrc81rxb704006k9pbcwizkq2281yy";
+  cargoSha256 = "sha256-JCV1cj+RncY/myVJTJ5fNkVqTITqGusA71tv7zGG9Uw=";
 
   meta = with lib; {
     homepage = "https://github.com/cantino/mcfly";
diff --git a/nixpkgs/pkgs/tools/misc/mcrypt/malloc_to_stdlib.patch b/nixpkgs/pkgs/tools/misc/mcrypt/malloc_to_stdlib.patch
index e92f5a46ae7e..6bead60dc56b 100755
--- a/nixpkgs/pkgs/tools/misc/mcrypt/malloc_to_stdlib.patch
+++ b/nixpkgs/pkgs/tools/misc/mcrypt/malloc_to_stdlib.patch
@@ -1,5 +1,5 @@
 From e295844e8ef5c13487996ab700e5f12a7fadb1a6 Mon Sep 17 00:00:00 2001
-From: Nima Vasseghi <nmv@fb.com>
+From: Private <private@private.priv>
 Date: Wed, 30 Dec 2020 16:06:46 -0800
 Subject: [PATCH] malloc.h to stdlib.h in rfc2440.c
 
diff --git a/nixpkgs/pkgs/tools/misc/megacli/default.nix b/nixpkgs/pkgs/tools/misc/megacli/default.nix
index 7cf1e14dc18e..3f86a073c096 100644
--- a/nixpkgs/pkgs/tools/misc/megacli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/megacli/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1sdn58fbmd3fj4nzbajq3gcyw71ilgdh45r5p4sa6xmb7np55cfr";
   };
 
-  buildInputs = [rpmextract ncurses5 unzip];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [rpmextract ncurses5];
   libPath =
     lib.makeLibraryPath
        [ stdenv.cc.cc stdenv.cc.libc ncurses5 ];
diff --git a/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix b/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix
index dc29aad2a549..125f8f35acca 100644
--- a/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "memtest86-efi";
-  version = "8.3";
+  version = "8.4";
 
   src = fetchzip {
     # TODO: We're using the previous version of memtest86 because the
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     # binaries that we make sure to version, then we could probably keep up
     # with the latest versions released by the company.
     url = "https://www.memtest86.com/downloads/memtest86-${version}-usb.zip";
-    sha256 = "0aldz7rvnfnzb4h447q10k9c9p5ghwzdyn7f6g5lrxiv5vxf3x96";
+    sha256 = "sha256-jh4FKCYZbOQhRv6B7N8Hmw6RQCQvbBGaGFTMLwM1nk8=";
     stripRoot = false;
   };
 
@@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
+    runHook preInstall
+
     # memtest86 is distributed as a bootable USB image.  It contains the actual
     # memtest86 EFI app.
     #
@@ -50,6 +52,8 @@ stdenv.mkDerivation rec {
     ')
     mkdir $out
     mcopy -vsi $IMG@@$ESP_OFFSET ::'/EFI/BOOT/*' $out/
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/microplane/default.nix b/nixpkgs/pkgs/tools/misc/microplane/default.nix
index e6945f051298..66717912599f 100644
--- a/nixpkgs/pkgs/tools/misc/microplane/default.nix
+++ b/nixpkgs/pkgs/tools/misc/microplane/default.nix
@@ -1,27 +1,17 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "microplane";
-  version = "0.0.26";
+  version = "0.0.28";
 
   src = fetchFromGitHub {
     owner = "Clever";
     repo = "microplane";
     rev = "v${version}";
-    sha256 = "0dba8cz13ljcsfibcwycd9vb759fzlllh2bv31vgbs2pjgcinzvm";
+    sha256 = "00ayci0a4lv67sg2bb4fw5wpdlps4pjqiiam595dar82lsjwj63j";
   };
 
-  goPackagePath = "github.com/Clever/microplane";
-
-  subPackages = ["."];
-
-  # Regenerate deps.nix with the following steps:
-  # git clone git@github.com:Clever/microplane.git
-  # cd microplane
-  # git checkout v<version>
-  # dep2nix
-
-  goDeps = ./deps.nix;
+  vendorSha256 = "0hn2gsm9bgmrm620fn2cx28l2gj1yfgvjix9ds50m7kwkx6q0dga";
 
   buildFlagsArray = ''
     -ldflags="-s -w -X main.version=v${version}"
diff --git a/nixpkgs/pkgs/tools/misc/microplane/deps.nix b/nixpkgs/pkgs/tools/misc/microplane/deps.nix
deleted file mode 100644
index 2c8266c2dc6e..000000000000
--- a/nixpkgs/pkgs/tools/misc/microplane/deps.nix
+++ /dev/null
@@ -1,228 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/cpuguy83/go-md2man";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cpuguy83/go-md2man";
-      rev =  "1d903dcb749992f3741d744c0f8376b4bd7eb3e1";
-      sha256 = "1p1ncq4vv244w9v144vplsb2vbl3369wdxn4gc7xbfafkjwn8bxc";
-    };
-  }
-  {
-    goPackagePath  = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev =  "346938d642f2ec3594ed81d874461961cd0faa76";
-      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
-    };
-  }
-  {
-    goPackagePath  = "github.com/facebookgo/errgroup";
-    fetch = {
-      type = "git";
-      url = "https://github.com/facebookgo/errgroup";
-      rev =  "779c8d7ef069c522bc72ee5f31a98d89a37f3fb6";
-      sha256 = "1kyqrnvr158f5lgb1pbianjd8xnmxxvpgz7qilmp7zvr69gykbas";
-    };
-  }
-  {
-    goPackagePath  = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev =  "570b54cabe6b8eb0bc2dfce68d964677d63b5260";
-      sha256 = "1hw9hgkfzbzqjhy29pqpk20xggxaqjv45wx8yn69488mw5ph7khh";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev =  "130e6b02ab059e7b717a096f397c5b60111cae74";
-      sha256 = "0zk4d7gcykig9ld8f5h86fdxshm2gs93a2xkpf52jd5m4z59q26s";
-    };
-  }
-  {
-    goPackagePath  = "github.com/google/go-github";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-github";
-      rev =  "e881974953e6ab6d1a6a1610e98ed6401a3aa1ba";
-      sha256 = "0qaxcm2p655r1jd59rv1hd58driadw5hxlfy7h53c7pzcsmf2546";
-    };
-  }
-  {
-    goPackagePath  = "github.com/google/go-querystring";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-querystring";
-      rev =  "53e6ce116135b80d037921a7fdd5138cf32d7a8a";
-      sha256 = "0lkbm067nhmxk66pyjx59d77dbjjzwyi43gdvzyx2f8m1942rq7f";
-    };
-  }
-  {
-    goPackagePath  = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev =  "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath  = "github.com/juju/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/juju/errors";
-      rev =  "c7d06af17c68cd34c835053720b21f6549d9b0ee";
-      sha256 = "1dmj8wkpmkw4z4c7wmnscs4ykrcv7p8lgwb75g5akahwqjaf9zcp";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
-      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev =  "0360b2af4f38e8d38c7fce2a9f4e702702d73a39";
-      sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n";
-    };
-  }
-  {
-    goPackagePath  = "github.com/nathanleiby/diffparser";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nathanleiby/diffparser";
-      rev =  "936553ce5db1b73e63cbcd7546416d13538e8d85";
-      sha256 = "0qlxkbda4l1glwxdy52fhk3bqkyyc55si4xplf54jpi2x9khi2v4";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath  = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev =  "4048872b16cc0fc2c5fd9eacf0ed2c2fedaa0c8c";
-      sha256 = "17zg26ia43c8axrxp5q2bxh1asiqfhin4ah7h5d8ibil6pv7xbx4";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev =  "7b2c5ac9fc04fc5efafb60700713d4fa609b777b";
-      sha256 = "0k4xswdfd2ridj7m48ijb4klq9mxpw03g8h2rvq99yddi8vmlbvn";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev =  "e57e3eeb33f795204c1ca35f56c44f83227c6e66";
-      sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2";
-    };
-  }
-  {
-    goPackagePath  = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev =  "69483b4bd14f5845b5a1e55bca19e954e827f1d0";
-      sha256 = "11lzrwkdzdd8yyag92akncc008h2f9d1bpc489mxiwp0jrmz4ivb";
-    };
-  }
-  {
-    goPackagePath  = "github.com/xanzy/go-gitlab";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xanzy/go-gitlab";
-      rev =  "ee3313ca5478c4786248d63dd75e4cd8e1fad2db";
-      sha256 = "0xbn94rb9ihpw1g698xbz9vdl7393z9zbb0lck52nxs838gkr4mb";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev =  "5c72a883971a4325f8c62bf07b6d38c20ea47a6a";
-      sha256 = "1cimmqpajys001x6yq8ycklc4w34y7iwrksv7ayv7m7fgzhcjn3d";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "aabf50738bcdd9b207582cbe796b59ed65d56680";
-      sha256 = "0gq60lfzbyc6ggp5v3vbl6li818nmv0n32l9qf80ckpqpqkknkh5";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/oauth2";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/oauth2";
-      rev =  "bb50c06baba3d0c76f9d125c0719093e315b5b44";
-      sha256 = "19fkbykwjhwa0833cqcphv7sfwc1538ad5wlsdkgdwr59qb9d32i";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev =  "09787c993a3ab68e3d1f5c9b2394ab9433f391be";
-      sha256 = "1nv4mwi9njkkyc7lwmxrjr8ggfh2cf1c67a9bq85dnss81vpj61y";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "28a7276518d399b9634904daad79e18b44d481bc";
-      sha256 = "0qsj394qyy27iaf8srl7bkbsx7sp4aifrv3z2xllkydya8y18rv8";
-    };
-  }
-  {
-    goPackagePath  = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev =  "150dc57a1b433e64154302bdc40b6bb8aefa313a";
-      sha256 = "0w3knznv39k8bm85ri62f83czcrxknql7dv6p9hk1a5jx3xljgxq";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-yaml/yaml";
-      rev =  "eb3733d160e74a9c7e442f435eb3bea458e1d19f";
-      sha256 = "1srhvcaa9db3a6xj29mkjr5kg33y71pclrlx4vcwz5m1lgb5c7q6";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/tools/misc/miniserve/default.nix b/nixpkgs/pkgs/tools/misc/miniserve/default.nix
index 7fb66e22e98d..1223432ad7da 100644
--- a/nixpkgs/pkgs/tools/misc/miniserve/default.nix
+++ b/nixpkgs/pkgs/tools/misc/miniserve/default.nix
@@ -1,26 +1,38 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
+, installShellFiles
 , pkg-config
 , zlib
+, libiconv
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "miniserve";
-  version = "0.10.4";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    sha256 = "0hskb72gnp66vkyxsqnxhjcqgvjj7wbd2nm5wxp94abc5l1fiigv";
+    sha256 = "sha256-1nXhAYvvvUQb0RcWidsRMQOhU8eXt7ngzodsMkYvqvg=";
   };
 
-  cargoSha256 = "0s1gdngpf6gxz2lyapblxxmc6aydg2i9kmrfvngkbmqh4as1a2vl";
+  cargoSha256 = "sha256-P5ukE7eXBRJMrc7+T9/TMq2uGs0AuZliHTtoqiZXNZw=";
 
-  nativeBuildInputs = [ pkg-config zlib ];
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+  nativeBuildInputs = [ installShellFiles pkg-config zlib ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+  checkFlags = [ "--skip=cant_navigate_up_the_root" ];
+
+  postInstall = ''
+    installShellCompletion --cmd miniserve \
+      --bash <($out/bin/miniserve --print-completions bash) \
+      --fish <($out/bin/miniserve --print-completions fish) \
+      --zsh <($out/bin/miniserve --print-completions zsh)
+  '';
 
   meta = with lib; {
     description = "For when you really just want to serve some files over HTTP right now!";
diff --git a/nixpkgs/pkgs/tools/misc/ministat/default.nix b/nixpkgs/pkgs/tools/misc/ministat/default.nix
index 68670599c1ee..0cd3ff3a5c1f 100644
--- a/nixpkgs/pkgs/tools/misc/ministat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ministat/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
     homepage = "https://git.decadent.org.uk/gitweb/?p=ministat.git";
     license = licenses.beerware;
     maintainers = [ maintainers.dezgeg ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix b/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
index 26056364b774..8ede05104874 100644
--- a/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
@@ -3,7 +3,7 @@
 , gnome2, gdk-pixbuf, gtk3, pango, libnotify, libsecret, libuuid, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }:
 
 let
-  version = "1.23.0";
+  version = "1.25.0";
 
   rpath = lib.makeLibraryPath [
     alsaLib
@@ -49,7 +49,7 @@ let
     if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
         url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
-        sha256 = "1kmhki4kq28z8h249p4imcpb0nz2dx5bmpv8ldhhqh3rcq5vzxsv";
+        sha256 = "sha256-998/voQ04fLj3KZCy6BueUoI1v++4BoGRTGJT7Nsv40=";
       }
     else
       throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
diff --git a/nixpkgs/pkgs/tools/misc/mons/default.nix b/nixpkgs/pkgs/tools/misc/mons/default.nix
index 71a12c887968..920cab1763b8 100644
--- a/nixpkgs/pkgs/tools/misc/mons/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mons/default.nix
@@ -12,6 +12,16 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Substitute xrandr path with @xrandr@ so we can replace it with
+    # real path in substituteInPlace
+    ./xrandr.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace mons.sh --replace '@xrandr@' '${xrandr}/bin/xrandr'
+  '';
+
   nativeBuildInputs = [ help2man ];
   makeFlags = [
     "DESTDIR=$(out)"
@@ -22,6 +32,6 @@ stdenv.mkDerivation rec {
     description = "POSIX Shell script to quickly manage 2-monitors display";
     homepage = "https://github.com/Ventto/mons.git";
     license = licenses.mit;
-    maintainers = [ maintainers.mschneider ];
+    maintainers = with maintainers; [ mschneider thiagokokada ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/mons/xrandr.patch b/nixpkgs/pkgs/tools/misc/mons/xrandr.patch
new file mode 100644
index 000000000000..6cbcdf9d514e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/mons/xrandr.patch
@@ -0,0 +1,14 @@
+diff --git a/mons.sh b/mons.sh
+index b86ce5c..feb0f33 100755
+--- a/mons.sh
++++ b/mons.sh
+@@ -151,8 +151,7 @@ main() {
+     # =============================
+ 
+     [ -z "$DISPLAY" ]  && { echo 'DISPLAY: no variable set.';  exit 1; }
+-    command -vp xrandr >/dev/null 2>&1 || { echo 'xrandr: command not found.'; exit 1; }
+-    XRANDR="$(command -pv xrandr)"
++    XRANDR="@xrandr@"
+ 
+     # =============================
+     #      Argument Checking
diff --git a/nixpkgs/pkgs/tools/misc/moreutils/default.nix b/nixpkgs/pkgs/tools/misc/moreutils/default.nix
index ad2d0127ab05..5a1452007af2 100644
--- a/nixpkgs/pkgs/tools/misc/moreutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/moreutils/default.nix
@@ -15,12 +15,13 @@ stdenv.mkDerivation rec {
     substituteInPlace Makefile --replace /usr/share/xml/docbook/stylesheet/docbook-xsl ${docbook-xsl}/xml/xsl/docbook
   '';
 
-  buildInputs = [ libxml2 libxslt docbook-xsl docbook_xml_dtd_44 makeWrapper ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ libxml2 libxslt docbook-xsl docbook_xml_dtd_44 ]
     ++ optional stdenv.isDarwin darwin.cctools;
 
   propagatedBuildInputs = with perlPackages; [ perl IPCRun TimeDate TimeDuration ];
 
-  buildFlags = [ "CC=cc" ];
+  buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
   installFlags = [ "PREFIX=$(out)" ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/misc/mslink/default.nix b/nixpkgs/pkgs/tools/misc/mslink/default.nix
new file mode 100644
index 000000000000..56354ff25275
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/mslink/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, lib
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mslink";
+  version = "1.3";
+
+  src = fetchurl {
+    url = "http://www.mamachine.org/mslink/mslink_v${version}.tar.gz";
+    sha256 = "1qiwqa6w2in6gk4sxiy37c2wwpakin6l2ad2cf5s7ij96z2ijgqg";
+  };
+
+  preBuild = ''
+    rm mslink # clean up shipped executable
+  '';
+
+  installPhase = ''
+    install -D mslink $out/bin/mslink
+  '';
+
+  meta = with lib; {
+    description = "Create Windows Shortcut Files (.LNK) without using Windows";
+    homepage = "http://www.mamachine.org/mslink/index.en.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ mkg20001 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix b/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix
index 783f93daab45..2acbfd41adfe 100644
--- a/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix
@@ -5,23 +5,32 @@ stdenv.mkDerivation rec {
   version = "1.7.21";
 
   src = fetchFromGitHub {
-    owner  = "major";
-    repo   = "MySQLTuner-perl";
-    rev    = version;
+    owner = "major";
+    repo = "MySQLTuner-perl";
+    rev = version;
     sha256 = "sha256-Yv1XjD8sZcmGr2SVD6TEElUH7vspJ61WwQwfXLOrao0=";
   };
 
+  postPatch = ''
+    substituteInPlace mysqltuner.pl \
+      --replace '/usr/share' "$out/share"
+  '';
+
   buildInputs = [ perl ];
 
   installPhase = ''
-    mkdir -p $out/bin
-    install -m0755 mysqltuner.pl $out/bin/mysqltuner
+    runHook preInstall
+
+    install -Dm0555 mysqltuner.pl $out/bin/mysqltuner
+    install -Dm0444 -t $out/share/mysqltuner basic_passwords.txt vulnerabilities.csv
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Make recommendations for increased performance and stability of MariaDB/MySQL";
     homepage = "http://mysqltuner.com";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ peterhoeg ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ peterhoeg shamilton ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/neofetch/default.nix b/nixpkgs/pkgs/tools/misc/neofetch/default.nix
index 1ed201802d53..1826d6846d42 100644
--- a/nixpkgs/pkgs/tools/misc/neofetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/neofetch/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub, bash }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "neofetch";
   version = "7.1.0";
 
@@ -11,7 +11,11 @@ stdenv.mkDerivation rec {
     sha256 = "0i7wpisipwzk0j62pzaigbiq42y1mn4sbraz4my2jlz6ahwf00kv";
   };
 
-  dontBuild = true;
+  strictDeps = true;
+  buildInputs = [ bash ];
+  postPatch = ''
+    patchShebangs --host neofetch
+  '';
 
   makeFlags = [
     "PREFIX=${placeholder "out"}"
diff --git a/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix b/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
index efacd87d9a44..39fd7d3e5f0d 100644
--- a/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
@@ -1,23 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, gnugrep, nix }:
+{ lib, stdenv, fetchFromGitHub, gnugrep, nix, nixFlakes }:
 
 stdenv.mkDerivation rec {
   pname = "nix-direnv";
-  version = "1.2.1";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-direnv";
     rev = version;
-    sha256 = "sha256-D31ORVdS8P1OkPShsfjEFLVCcv8Bff9OyexUKKHdguQ=";
+    sha256 = "sha256-87x+MRQ1SjtN+wNCy42VJwlRwgQzHjNEK3J1bkvo7eQ=";
   };
 
   # Substitute instead of wrapping because the resulting file is
   # getting sourced, not executed:
   postPatch = ''
-    substituteInPlace direnvrc \
-      --replace "grep" "${gnugrep}/bin/grep" \
-      --replace "nix-shell" "${nix}/bin/nix-shell" \
-      --replace "nix-instantiate" "${nix}/bin/nix-instantiate"
+    sed -i "1a NIX_BIN_PREFIX=${nixFlakes}/bin/" direnvrc
+    substituteInPlace direnvrc --replace "grep" "${gnugrep}/bin/grep"
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/nncp/default.nix b/nixpkgs/pkgs/tools/misc/nncp/default.nix
index 4469f130b589..4c03172d9aff 100644
--- a/nixpkgs/pkgs/tools/misc/nncp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nncp/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv
 , go
 , fetchurl
+, redo-apenwarr
 , curl
 , perl
 , genericUpdater
@@ -9,24 +10,33 @@
 
 stdenv.mkDerivation rec {
   pname = "nncp";
-  version = "5.3.3";
+  version = "6.2.0";
 
   src = fetchurl {
     url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
-    sha256 = "1l35ndzrvpfim29jn1p0bwmc8w892z44nsrdnay28k229r9dhz3h";
+    sha256 = "1zj0v82zqigcxhpc50mvafvi1ihs92ck35vjfrwb7wzzd7nysb17";
   };
 
-  nativeBuildInputs = [ go ];
+  nativeBuildInputs = [ go redo-apenwarr ];
 
-  preConfigure = ''
+  buildPhase = ''
+    runHook preBuild
     export GOCACHE=$PWD/.cache
+    export CFGPATH=/etc/nncp.hjson
+    export SENDMAIL=sendmail # default value for generated config file
+    redo ''${enableParallelBuilding:+-j''${NIX_BUILD_CORES}}
+    runHook postBuild
   '';
 
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "CFGPATH=/etc/nncp.hjson"
-    "SENDMAIL=/run/wrappers/bin/sendmail"
-  ];
+  installPhase = ''
+    runHook preInstall
+    export PREFIX=$out
+    rm -f INSTALL # work around case insensitivity
+    redo install
+    runHook postInstall
+  '';
+
+  enableParallelBuilding = true;
 
   passthru.updateScript = genericUpdater {
     inherit pname version;
@@ -54,7 +64,7 @@ stdenv.mkDerivation rec {
       transmission exists.
     '';
     homepage = "http://www.nncpgo.org/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = [ maintainers.woffs ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/ocz-ssd-guru/default.nix b/nixpkgs/pkgs/tools/misc/ocz-ssd-guru/default.nix
index c5ac32af3be4..0c021591e5e5 100644
--- a/nixpkgs/pkgs/tools/misc/ocz-ssd-guru/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ocz-ssd-guru/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ri7qmpc1xpy12lpzl6k298c641wcibcwrzz8jn75wdg4rr176r5";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   libPath = lib.makeLibraryPath [
       xorg.libX11
diff --git a/nixpkgs/pkgs/tools/misc/opentsdb/default.nix b/nixpkgs/pkgs/tools/misc/opentsdb/default.nix
index 168eda1cf3d5..678c2607b614 100644
--- a/nixpkgs/pkgs/tools/misc/opentsdb/default.nix
+++ b/nixpkgs/pkgs/tools/misc/opentsdb/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
     sha256 = "0b0hilqmgz6n1q7irp17h48v8fjpxhjapgw1py8kyav1d51s7mm2";
   };
 
-  buildInputs = [ autoconf automake curl jdk makeWrapper nettools python git ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ autoconf automake curl jdk nettools python git ];
 
   preConfigure = ''
     patchShebangs ./build-aux/
diff --git a/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix b/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix
index ef464e7b755a..f36dacdd3a2a 100644
--- a/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix
+++ b/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "oppai-ng";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "Francesco149";
     repo = pname;
     rev = version;
-    sha256 = "sha256-fUtyQaHcNBmDs1BPbFGieKY/CFyETqBxYzzIXSERFJY=";
+    sha256 = "sha256-L9eraLOWm1tMImS8bLB9T4Md4VdTSxqI9Bt4r8eqxqs=";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/os-prober/default.nix b/nixpkgs/pkgs/tools/misc/os-prober/default.nix
index 07279400fc4d..bc5dbe4672e8 100644
--- a/nixpkgs/pkgs/tools/misc/os-prober/default.nix
+++ b/nixpkgs/pkgs/tools/misc/os-prober/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-mfv1b40n/opXdyj6IXWVf/32sWlS+/DbXIRwE1zX4KM=";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
     # executables
     install -Dt $out/bin os-prober linux-boot-prober
diff --git a/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix b/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix
index cb3e8bd057ad..4ee1749c6d38 100644
--- a/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, meson, ninja, gettext, glib, libxml2, perl, python3
-, libxslt, libarchive, bzip2, lzma, json-glib, libsoup
+, libxslt, libarchive, bzip2, xz, json-glib, libsoup
 }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ meson ninja pkg-config gettext perl python3 ];
-  buildInputs = [ glib json-glib libxml2 libxslt libarchive bzip2 lzma libsoup ];
+  buildInputs = [ glib json-glib libxml2 libxslt libarchive bzip2 xz libsoup ];
 
   meta = with lib; {
     description = "Tools for managing the osinfo database";
diff --git a/nixpkgs/pkgs/tools/misc/ostree/default.nix b/nixpkgs/pkgs/tools/misc/ostree/default.nix
index dc013cfe1978..53966705c2d7 100644
--- a/nixpkgs/pkgs/tools/misc/ostree/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ostree/default.nix
@@ -25,7 +25,7 @@
 , libarchive
 , libcap
 , bzip2
-, yacc
+, bison
 , libxslt
 , docbook-xsl-nons
 , docbook_xml_dtd_42
@@ -74,7 +74,7 @@ in stdenv.mkDerivation rec {
     gobject-introspection
     which
     makeWrapper
-    yacc
+    bison
     libxslt
     docbook-xsl-nons
     docbook_xml_dtd_42
diff --git a/nixpkgs/pkgs/tools/misc/ovh-ttyrec/default.nix b/nixpkgs/pkgs/tools/misc/ovh-ttyrec/default.nix
index fc2c2c3d67a3..98d9ef201007 100644
--- a/nixpkgs/pkgs/tools/misc/ovh-ttyrec/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ovh-ttyrec/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ovh-ttyrec";
-  version = "1.1.6.6";
+  version = "1.1.6.7";
 
   src = fetchFromGitHub {
     owner = "ovh";
     repo = "ovh-ttyrec";
     rev = "v${version}";
-    sha256 = "176g3k2pzw6zpvmcc2f8idn6vhlygf7lfzxvrhysav2izc5dd130";
+    sha256 = "sha256-OkSs0Cu79u53+fN57px48f6kJKuOJLjGUar+lLTdUJU=";
   };
 
   nativeBuildInputs = [ zstd ];
diff --git a/nixpkgs/pkgs/tools/misc/paperlike-go/default.nix b/nixpkgs/pkgs/tools/misc/paperlike-go/default.nix
new file mode 100644
index 000000000000..0278fb1f791d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/paperlike-go/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule {
+  pname = "paperlike-go";
+  version = "unstable-2021-03-26";
+
+  src = fetchFromGitHub {
+    owner = "leoluk";
+    repo = "paperlike-go";
+    rev = "bd658d88ea9a3b21e1b301b96253abab7cf56d79";
+    sha256 = "1h0n2n5w5pn3r08qf6hbmiib5m71br27y66ki9ajnaa890377qaj";
+  };
+
+  subPackages = [ "cmd/paperlike-cli" ];
+
+  vendorSha256 = "00mn0zfivxp2h77s7gmyyjp8p5a1vysn73wwaalgajymvljxxx1r";
+
+  meta = {
+    description = "paperlike-go is a Linux Go library and CLI utility to control a Dasung Paperlike display via I2C DDC.";
+    homepage = "https://github.com/leoluk/paperlike-go";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.adisbladis ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/parallel/default.nix b/nixpkgs/pkgs/tools/misc/parallel/default.nix
index 720b73f3fe21..0667327d062b 100644
--- a/nixpkgs/pkgs/tools/misc/parallel/default.nix
+++ b/nixpkgs/pkgs/tools/misc/parallel/default.nix
@@ -1,29 +1,22 @@
 { fetchurl, lib, stdenv, perl, makeWrapper, procps, coreutils }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20200922";
+  pname = "parallel";
+  version = "20210322";
 
   src = fetchurl {
-    url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "0wj19kwjk0hwm8bk9yfcf3rpr0314lmjy5xxlvvdqnbbc4ml2418";
+    url = "mirror://gnu/parallel/${pname}-${version}.tar.bz2";
+    sha256 = "sha256-mPcbRFojoYu06bzk83S5PmptnezfiSvo0iRZ8iS4VpQ=";
   };
 
-  patches = [
-    ./fix-max-line-length-allowed.diff
-  ];
-
-  postPatch = ''
-    substituteInPlace src/parallel --subst-var-by coreutils ${coreutils}
-  '';
-
-  outputs = [ "out" "man" ];
+  outputs = [ "out" "man" "doc" ];
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ perl procps ];
 
   postInstall = ''
     wrapProgram $out/bin/parallel \
-      --prefix PATH : "${lib.makeBinPath [ procps perl ]}"
+      --prefix PATH : "${lib.makeBinPath [ procps perl coreutils ]}"
   '';
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/tools/misc/parallel/fix-max-line-length-allowed.diff b/nixpkgs/pkgs/tools/misc/parallel/fix-max-line-length-allowed.diff
deleted file mode 100644
index c6d501ecb22a..000000000000
--- a/nixpkgs/pkgs/tools/misc/parallel/fix-max-line-length-allowed.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Correct path to coreutils echo to fix parallel --max-line-length-allowed.
-
-Author: Bjørn Forsman
-
-diff --git a/src/parallel b/src/parallel
-index a047fd94..9fc5f671 100755
---- a/src/parallel
-+++ b/src/parallel
-@@ -11580,7 +11580,7 @@ sub is_acceptable_command_line_length($$) {
- 	$len += length $Global::parallel_env;
-     }
-     # Force using non-built-in command
--    ::qqx("/bin/echo ".${string}x(($len-length "/bin/echo ")/length $string));
-+    ::qqx("@coreutils@/bin/echo ".${string}x(($len-length "@coreutils@/bin/echo ")/length $string));
-     ::debug("init", "$len=$? ");
-     return not $?;
- }
diff --git a/nixpkgs/pkgs/tools/misc/parted/default.nix b/nixpkgs/pkgs/tools/misc/parted/default.nix
index 7c7a611b97c5..e954bfbe5e4d 100644
--- a/nixpkgs/pkgs/tools/misc/parted/default.nix
+++ b/nixpkgs/pkgs/tools/misc/parted/default.nix
@@ -15,11 +15,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "parted-3.3";
+  name = "parted-3.4";
 
   src = fetchurl {
     url = "mirror://gnu/parted/${name}.tar.xz";
-    sha256 = "0i1xp367wpqw75b20c3jnism3dg3yqj4a7a22p2jb1h1hyyv9qjp";
+    sha256 = "sha256-4SmAIkctpVibfyvh1e48G2bsPZbfutA9xkKv0AnaU0I=";
   };
 
   outputs = [ "out" "dev" "man" "info" ];
diff --git a/nixpkgs/pkgs/tools/misc/partition-manager/default.nix b/nixpkgs/pkgs/tools/misc/partition-manager/default.nix
index 845c0fec9211..064590ef979b 100644
--- a/nixpkgs/pkgs/tools/misc/partition-manager/default.nix
+++ b/nixpkgs/pkgs/tools/misc/partition-manager/default.nix
@@ -1,30 +1,66 @@
-{ mkDerivation, fetchurl, lib
+{ mkDerivation, fetchurl, lib, makeWrapper
 , extra-cmake-modules, kdoctools, wrapGAppsHook, wrapQtAppsHook
 , kconfig, kcrash, kinit, kpmcore
-, eject, libatasmart , util-linux, qtbase
+, cryptsetup, lvm2, mdadm, smartmontools, systemdMinimal, util-linux
+, btrfs-progs, dosfstools, e2fsprogs, exfat, f2fs-tools, fatresize, hfsprogs
+, jfsutils, nilfs-utils, ntfs3g, reiser4progs, reiserfsprogs, udftools, xfsprogs, zfs
 }:
 
 let
-  pname = "partitionmanager";
+  # External programs are resolved by `partition-manager` and then
+  # invoked by `kpmcore_externalcommand` from `kpmcore` as root.
+  # So these packages should be in PATH of `partition-manager`.
+  # https://github.com/KDE/kpmcore/blob/06f15334ecfbe871730a90dbe2b694ba060ee998/src/util/externalcommand_whitelist.h
+  runtimeDeps = lib.makeBinPath [
+    cryptsetup
+    lvm2
+    mdadm
+    smartmontools
+    systemdMinimal
+    util-linux
+
+    btrfs-progs
+    dosfstools
+    e2fsprogs
+    exfat
+    f2fs-tools
+    fatresize
+    hfsprogs
+    jfsutils
+    nilfs-utils
+    ntfs3g
+    reiser4progs
+    reiserfsprogs
+    udftools
+    xfsprogs
+    zfs
+
+    # FIXME: Missing command: tune.exfat hfsck hformat fsck.nilfs2 {fsck,mkfs,debugfs,tunefs}.ocfs2
+  ];
+
 in mkDerivation rec {
-  name = "${pname}-${version}";
-  version = "3.3.1";
+  pname = "partitionmanager";
+  # NOTE: When changing this version, also change the version of `kpmcore`.
+  version = "4.2.0";
 
   src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
-    sha256 = "0jhggb4xksb0k0mj752n6pz0xmccnbzlp984xydqbz3hkigra1si";
+    url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
+    hash = "sha256-6Qlt1c47Eek6TkWWBzTyBZYJ1jfhtwsC9X5q5h6IhPg=";
   };
 
-  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook wrapQtAppsHook ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook wrapQtAppsHook makeWrapper ];
 
-  # refer to kpmcore for the use of eject
-  buildInputs = [ eject libatasmart util-linux ];
   propagatedBuildInputs = [ kconfig kcrash kinit kpmcore ];
 
+  postFixup = ''
+    wrapProgram $out/bin/partitionmanager \
+      --prefix PATH : "${runtimeDeps}"
+  '';
+
   meta = with lib; {
     description = "KDE Partition Manager";
-    license = licenses.gpl2;
+    license = with licenses; [ cc-by-40 cc0 gpl3Plus lgpl3Plus mit ];
     homepage = "https://www.kde.org/applications/system/kdepartitionmanager/";
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = with maintainers; [ peterhoeg oxalica ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/past-time/default.nix b/nixpkgs/pkgs/tools/misc/past-time/default.nix
new file mode 100644
index 000000000000..3604e4ddcb4a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/past-time/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonApplication
+, click
+, fetchFromGitHub
+, freezegun
+, pytestCheckHook
+, tqdm
+}:
+
+buildPythonApplication rec {
+  pname = "past-time";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "fabaff";
+    repo = pname;
+    rev = version;
+    sha256 = "0yhc0630rmcx4ia9y6klpx002mavfmqf1s3jb2gz54jlccwqbfgl";
+  };
+
+  propagatedBuildInputs = [
+    click
+    tqdm
+  ];
+
+  checkInputs = [
+    freezegun
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "past_time" ];
+
+  meta = with lib; {
+    description = "Tool to visualize the progress of the year based on the past days";
+    homepage = "https://github.com/fabaff/past-time";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/pb_cli/default.nix b/nixpkgs/pkgs/tools/misc/pb_cli/default.nix
index eacbc0d6bd2d..48b819d5bfdd 100644
--- a/nixpkgs/pkgs/tools/misc/pb_cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pb_cli/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     sha256 = "0w6a789zffvz4ixsb92q45n5s4xyx7s2l2f07972i3dajaaai8z7";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   liveDeps = [ jq curl ] ++ lib.optional screenshots maim
                          ++ lib.optional video capture
diff --git a/nixpkgs/pkgs/tools/misc/pcb2gcode/default.nix b/nixpkgs/pkgs/tools/misc/pcb2gcode/default.nix
index 0b300b079db2..6d3851699752 100644
--- a/nixpkgs/pkgs/tools/misc/pcb2gcode/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pcb2gcode/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcb2gcode";
-  version = "2.2.2";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "pcb2gcode";
     repo = "pcb2gcode";
     rev = "v${version}";
-    sha256 = "sha256-GSLWpLp/InAxVolKmBIjljpe3ZzmS/87TWKwzax5SkY=";
+    sha256 = "sha256-BELugmnnedqXTnSwiQN3XbqkWKTKF27ElQAwrEWNSao=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/misc/pdf-parser/default.nix b/nixpkgs/pkgs/tools/misc/pdf-parser/default.nix
index f4572d0e5bcc..90c128f8ac35 100644
--- a/nixpkgs/pkgs/tools/misc/pdf-parser/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pdf-parser/default.nix
@@ -29,6 +29,6 @@ python3Packages.buildPythonApplication {
     homepage = "https://blog.didierstevens.com/programs/pdf-tools/";
     license = licenses.publicDomain;
     maintainers = [ maintainers.lightdiscord ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/pgcenter/default.nix b/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
index 8afaa61e35b5..27e228f0f205 100644
--- a/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
@@ -2,16 +2,24 @@
 
 buildGoModule rec {
   pname = "pgcenter";
-  version = "0.6.6";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner  = "lesovsky";
     repo   = "pgcenter";
     rev    = "v${version}";
-    sha256 = "1axwsclssxsg38ppdmd4v1lbs87ksrwj5z76ckjk8jjfni1xp9sr";
+    sha256 = "sha256-ow26wuM7nw/WbeaPVcNm5iYUYLydeujhw+7BcTirPcA=";
   };
 
-  vendorSha256 = "1mzvpr12qh9668iz97p62zl4zhlrcyfgwr4a9zg9irj585pkb5x2";
+  vendorSha256 = "sha256-9hYiyZ34atmSL7JvuXyiGU7HR4E6qN7bGZlyU+hP+FU=";
+
+  subPackages = [ "cmd" ];
+
+  buildFlagsArray = [ "-ldflags=-w -s -X main.gitTag=${src.rev} -X main.gitCommit=${src.rev} -X main.gitBranch=master" ];
+
+  postInstall = ''
+    mv $out/bin/cmd $out/bin/pgcenter
+  '';
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix b/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
index 348670c3bb1b..971f924faaac 100644
--- a/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "phoronix-test-suite";
-  version = "10.2.1";
+  version = "10.2.2";
 
   src = fetchurl {
     url = "https://phoronix-test-suite.com/releases/${pname}-${version}.tar.gz";
-    sha256 = "sha256-2HB4TPbyG+cTY6O1k0tRPrnKyg41SYnVM919Hii3gpg=";
+    sha256 = "sha256-g5hUmsn01Msopxzmi/G4LcZISXMD2wFqreaHMkFzF1Y=";
   };
 
   buildInputs = [ php ];
diff --git a/nixpkgs/pkgs/tools/misc/pistol/default.nix b/nixpkgs/pkgs/tools/misc/pistol/default.nix
index 6eec45db0119..f31de57fdfe7 100644
--- a/nixpkgs/pkgs/tools/misc/pistol/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pistol/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "pistol";
-  version = "0.1.8";
+  version = "0.1.9";
 
   src = fetchFromGitHub {
     owner = "doronbehar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00vpl43m0zw6vqw8yjkaa7dnis9g169jfb48g2mr0hgyhsjr7jbj";
+    sha256 = "sha256-Q/W+1NvbuSu+QfezJpyeI5r4VlzdAAbOlSfFIT8knJs=";
   };
 
-  vendorSha256 = "1rkyvcyrjnrgd3b05gjd4sv95j1b99q641f3n36kgf3sc3hp31ws";
+  vendorSha256 = "sha256-oXt2nZ9lcAiI9ZQtKuQrXOXDfqx3Ucvh/K6g7SScd2Q=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/piston-cli/default.nix b/nixpkgs/pkgs/tools/misc/piston-cli/default.nix
index bf9c7c9096cd..73e3ca8d6893 100644
--- a/nixpkgs/pkgs/tools/misc/piston-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/piston-cli/default.nix
@@ -1,12 +1,12 @@
 { lib, python3Packages }:
 
-python3Packages.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   pname = "piston-cli";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "bf0hhKb+6+07HhrkFrsWCnUQfsQWOdK/dPTlt9iZTno=";
+    sha256 = "hhOistr5lHF6rIuMpudKwSuBQhaQDzTdelAOCjyVQZk=";
   };
 
   propagatedBuildInputs = with python3Packages; [ rich prompt_toolkit requests pygments ];
diff --git a/nixpkgs/pkgs/tools/misc/pk2cmd/default.nix b/nixpkgs/pkgs/tools/misc/pk2cmd/default.nix
index 7ffbd8ded1ca..009d841bf557 100644
--- a/nixpkgs/pkgs/tools/misc/pk2cmd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pk2cmd/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation {
     wrapProgram $out/bin/pk2cmd --prefix PATH : $out/share/pk2
   '';
 
-  buildInputs = [ libusb-compat-0_1 makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ libusb-compat-0_1 ];
 
   meta = {
     homepage = "https://www.microchip.com/pickit2";
diff --git a/nixpkgs/pkgs/tools/misc/plantuml/default.nix b/nixpkgs/pkgs/tools/misc/plantuml/default.nix
index eb267e6007a4..25f96d325325 100644
--- a/nixpkgs/pkgs/tools/misc/plantuml/default.nix
+++ b/nixpkgs/pkgs/tools/misc/plantuml/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre, graphviz }:
 
 stdenv.mkDerivation rec {
-  version = "1.2021.1";
+  version = "1.2021.3";
   pname = "plantuml";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "sha256-FOM+hao1lx6EJMccbhLzvVVmCR3F/igHTGN1vhhdmdQ=";
+    sha256 = "sha256-Kx2fTx71oVkAgsytl1OFBcENMnJ1ZHmg8qvYDFTSS2M=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/plowshare/default.nix b/nixpkgs/pkgs/tools/misc/plowshare/default.nix
index d9c208510fc6..2cfbf5ae91ac 100644
--- a/nixpkgs/pkgs/tools/misc/plowshare/default.nix
+++ b/nixpkgs/pkgs/tools/misc/plowshare/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, curl, recode, spidermonkey_38 }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, curl, recode, spidermonkey_78 }:
 
 stdenv.mkDerivation rec {
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1p8s60dlzaldp006yj710s371aan915asyjhd99188vrj4jj1x79";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     make PREFIX="$out" install
 
     for fn in plow{del,down,list,mod,probe,up}; do
-      wrapProgram "$out/bin/$fn" --prefix PATH : "${lib.makeBinPath [ curl recode spidermonkey_38 ]}"
+      wrapProgram "$out/bin/$fn" --prefix PATH : "${lib.makeBinPath [ curl recode spidermonkey_78 ]}"
     done
   '';
 
diff --git a/nixpkgs/pkgs/tools/misc/polar/Gemfile b/nixpkgs/pkgs/tools/misc/polar/Gemfile
new file mode 100644
index 000000000000..65e27d167030
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/polar/Gemfile
@@ -0,0 +1,7 @@
+source 'https://rubygems.org'
+
+gem 'google-protobuf'
+gem 'libusb'
+gem 'rubyserial'
+gem 'nokogiri'
+
diff --git a/nixpkgs/pkgs/tools/misc/polar/Gemfile.lock b/nixpkgs/pkgs/tools/misc/polar/Gemfile.lock
new file mode 100644
index 000000000000..bd3b0226510a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/polar/Gemfile.lock
@@ -0,0 +1,27 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    ffi (1.15.0)
+    google-protobuf (3.15.6)
+    libusb (0.6.4)
+      ffi (~> 1.0)
+      mini_portile2 (~> 2.1)
+    mini_portile2 (2.5.0)
+    nokogiri (1.11.2)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    racc (1.5.2)
+    rubyserial (0.6.0)
+      ffi (~> 1.9, >= 1.9.3)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  google-protobuf
+  libusb
+  nokogiri
+  rubyserial
+
+BUNDLED WITH
+   2.1.4
diff --git a/nixpkgs/pkgs/tools/misc/polar/default.nix b/nixpkgs/pkgs/tools/misc/polar/default.nix
new file mode 100644
index 000000000000..022752bbc75d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/polar/default.nix
@@ -0,0 +1,73 @@
+{ lib, stdenv, fetchFromGitHub, ruby, bundlerEnv }:
+let
+
+  # To create Gemfile.lock and gemset.nix
+  # > nix-shell -p bundix bundler zlib
+  # > bundle install
+  # > bundix
+  gems = bundlerEnv {
+    name = "polar-env";
+    inherit ruby;
+    gemdir = ./.;
+  };
+
+in
+stdenv.mkDerivation rec {
+
+  pname = "polar";
+  # The package has no releases so let's use the latest commit
+  version = "unstable-2021-01-12";
+
+  src = fetchFromGitHub {
+    owner = "cmaion";
+    repo = pname;
+    rev = "be15f5f897f8a919dd639009873147dca2a9cea0";
+    sha256 = "0gqkqfrqnrsy6avg372xwqj22yz8g6r2hnzbw6197b1rf7zr1il7";
+  };
+
+  prePatch = ''
+    for script in polar_*
+    do
+      substituteInPlace $script --replace "#{File.dirname(__FILE__)}/lib" "$out/lib/polar"
+    done
+  '';
+  buildInputs = [ gems ruby ];
+
+  # See: https://nixos.wiki/wiki/Packaging/Ruby
+  #
+  # Put library content under lib/polar and the raw scripts under share/polar.
+  # Then, wrap the scripts so that they use the correct ruby environment and put
+  # these wrapped executables under bin.
+  installPhase = ''
+    install -Dm644 -t $out/etc/udev/rules.d ./pkg/99-polar.rules
+    mkdir -p $out/{bin,lib/polar,share/polar}
+    cp -r lib/* $out/lib/polar/
+    for script in ./polar_*
+    do
+      raw="$out/share/polar/$script"
+      bin="$out/bin/$script"
+      cp "$script" "$raw"
+      cat > $bin <<EOF
+#!/bin/sh -e
+exec ${gems}/bin/bundle exec ${ruby}/bin/ruby "$raw" "\$@"
+EOF
+      chmod +x $bin
+    done
+  '';
+
+  meta = with lib; {
+    description = "Command-line tools to interact with Polar watches";
+    longDescription = ''
+      A set of command line tools written in Ruby to interact with Polar watches
+      and decode raw data files.
+
+      Udev rules can be added as:
+
+        services.udev.packages = [ pkgs.polar ]
+    '';
+    homepage = "https://github.com/cmaion/polar";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ jluttine ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/polar/gemset.nix b/nixpkgs/pkgs/tools/misc/polar/gemset.nix
new file mode 100644
index 000000000000..4e360d9b21cf
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/polar/gemset.nix
@@ -0,0 +1,75 @@
+{
+  ffi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  google-protobuf = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ak5yqqhr04b4x0axzvpw1xzwmxmfcw0gf4r1ijixv15kidhsj3z";
+      type = "gem";
+    };
+    version = "3.15.6";
+  };
+  libusb = {
+    dependencies = ["ffi" "mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "005q4f3bi68yapza1vxamgwz2gpix2akci52s4yvr03hsxi137a6";
+      type = "gem";
+    };
+    version = "0.6.4";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2" "racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
+      type = "gem";
+    };
+    version = "1.11.2";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  rubyserial = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vj5yan6srbvkf5vfp9d9b9z8wyygd0zxcy54c35yhkjl6kwd22q";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/ponysay/default.nix b/nixpkgs/pkgs/tools/misc/ponysay/default.nix
index b94ca6cfea34..113c2b05ff59 100644
--- a/nixpkgs/pkgs/tools/misc/ponysay/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ponysay/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation {
     sha256 = "12mjabf5cpp5dgg63s19rlyq3dhhpzzy2sa439yncqzsk7rdg0n3";
   };
 
-  buildInputs = [ python3 texinfo makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python3 texinfo  ];
 
   inherit python3;
 
diff --git a/nixpkgs/pkgs/tools/misc/poweralertd/default.nix b/nixpkgs/pkgs/tools/misc/poweralertd/default.nix
new file mode 100644
index 000000000000..a00a5b9a4026
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/poweralertd/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchFromSourcehut, meson, ninja, pkg-config, scdoc, systemd }:
+
+stdenv.mkDerivation rec {
+  pname = "poweralertd";
+  version = "0.1.0";
+
+  outputs = [ "out" "man" ];
+
+  src = fetchFromSourcehut {
+    owner = "~kennylevinsen";
+    repo = "poweralertd";
+    rev = version;
+    sha256 = "136xcrp7prilh905a6v933vryqy20l7nw24ahc4ycax8f0s906x9";
+  };
+
+  patchPhase = ''
+    substituteInPlace meson.build --replace "systemd.get_pkgconfig_variable('systemduserunitdir')" "'${placeholder "out"}/lib/systemd/user'"
+  '';
+
+  buildInputs = [
+    systemd
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  depsBuildBuild = [
+    scdoc
+    pkg-config
+  ];
+
+  meta = with lib; {
+    description = "UPower-powered power alerter";
+    homepage = "https://git.sr.ht/~kennylevinsen/poweralertd";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ thibautmarty ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/powerline-go/default.nix b/nixpkgs/pkgs/tools/misc/powerline-go/default.nix
index a4ee216288f9..2f6ff216dc87 100644
--- a/nixpkgs/pkgs/tools/misc/powerline-go/default.nix
+++ b/nixpkgs/pkgs/tools/misc/powerline-go/default.nix
@@ -1,14 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
 buildGoModule rec {
   pname = "powerline-go";
-  version = "1.20.0";
+  version = "1.21.0";
 
   src = fetchFromGitHub {
     owner = "justjanne";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Pge57OXNE0MY2rlspVsqxdoe1r/XWjrq/q9ygdns2c8=";
+    sha256 = "sha256-IO3I5lvPdN73EF+S5Xo+TMEYaBtd1pOGMs+aQtRnHjE=";
   };
 
   vendorSha256 = "sha256-HYF6aKz+P241EKmupEoretadlrh9FBRx6nIER66jofg=";
@@ -17,7 +20,9 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Powerline like prompt for Bash, ZSH and Fish";
-    license = licenses.gpl3;
+    homepage = "https://github.com/justjanne/powerline-go";
+    changelog = "https://github.com/justjanne/powerline-go/releases/tag/v${version}";
+    license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sifmelcara ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix b/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix
index c8a2b338817d..59bbe2c2ab1f 100644
--- a/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix
+++ b/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "11sjf4j9dr6ih9jkg6vqq6gkfg6wly4182bi1008bsm1zdmm5iz7";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     PREFIX=\"\" DESTDIR=$out make install
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/graysky2/profile-cleaner";
     license = lib.licenses.mit;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
     maintainers = [ lib.maintainers.devhell ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/progress/default.nix b/nixpkgs/pkgs/tools/misc/progress/default.nix
index 4f27cd239d17..9feee484170e 100644
--- a/nixpkgs/pkgs/tools/misc/progress/default.nix
+++ b/nixpkgs/pkgs/tools/misc/progress/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "progress";
-  version = "0.15";
+  version = "0.16";
 
   src = fetchFromGitHub {
     owner = "Xfennec";
     repo = "progress";
     rev = "v${version}";
-    sha256 = "1cnb4ixlhshn139mj5sr42k5m6gjjbyqvkn1324c47niwrgp7dqm";
+    sha256 = "sha256-kkEyflyBaQ5hUVo646NUuC1u54uzLJJsVFej9pMEwT0=";
   };
 
   nativeBuildInputs = [ pkg-config which ];
diff --git a/nixpkgs/pkgs/tools/misc/pspg/default.nix b/nixpkgs/pkgs/tools/misc/pspg/default.nix
index 9159de9fd8c2..354075df549c 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 = "3.1.5";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "000h4yiaym7i5bcm268rvsjbs2brz2is9lhm6vm3dx0q7k1pcx45";
+    sha256 = "sha256-kRKU6ynZffV17GqEArkXxz6M9xoa3kn2yNqjyLRY0rc=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/misc/pubs/default.nix b/nixpkgs/pkgs/tools/misc/pubs/default.nix
index be5fd6d499c3..3b6df828fda0 100644
--- a/nixpkgs/pkgs/tools/misc/pubs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pubs/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, fetchpatch, python3Packages }:
+{ lib, fetchFromGitHub, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
   pname = "pubs";
diff --git a/nixpkgs/pkgs/tools/misc/pws/default.nix b/nixpkgs/pkgs/tools/misc/pws/default.nix
index 0edec63c8c92..e98323b75eea 100644
--- a/nixpkgs/pkgs/tools/misc/pws/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pws/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   name = "pws-${(import ./gemset.nix).pws.version}";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   phases = ["installPhase"];
 
diff --git a/nixpkgs/pkgs/tools/misc/qmk/default.nix b/nixpkgs/pkgs/tools/misc/qmk/default.nix
new file mode 100644
index 000000000000..40e5d4d23aea
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/qmk/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, python3
+, fetchpatch
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "qmk";
+  version = "0.0.45";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "43f297f36b21d68c34c5efa0ce1449dddb2e28753f80939cadf761ee7a2a0901";
+  };
+
+  patches = [
+    # https://github.com/qmk/qmk_cli/pull/48
+    (fetchpatch {
+      name = "remove-unused-install-requires.patch";
+      url = "https://github.com/qmk/qmk_cli/commit/75b6ada1feccfa5a9bc2bb07a4cc749ef40d02dd.patch";
+      sha256 = "0lwi1dz35p07vha5gwq2jxm5q49vm99ix4jyhd6g6ypqbq1qiwc8";
+    })
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    milc
+  ];
+
+  # no tests implemented
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A program to help users work with QMK Firmware";
+    homepage = "https://github.com/qmk/qmk_cli";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bhipple ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/quich/default.nix b/nixpkgs/pkgs/tools/misc/quich/default.nix
new file mode 100644
index 000000000000..ea4fbc7eead4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/quich/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "quich";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "Usbac";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1n9c01q2v6g9wnmxp248yclhp8cxclnj0yyn1qrvjsn6srcpr22c";
+  };
+
+  doCheck = true;
+
+  makeFlags = [ "DESTDIR=" "PREFIX=$(out)" "CC=${stdenv.cc.targetPrefix}cc" ];
+
+  meta = with lib; {
+    description = "The advanced terminal calculator";
+    longDescription = ''
+      Quich is a compact, fast, powerful and useful calculator for your terminal
+      with numerous features, supporting Windows and Linux Systems,
+      written in ANSI C.
+    '';
+    homepage = "https://github.com/Usbac/quich";
+    license = licenses.mit;
+    maintainers = [ maintainers.xdhampus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/remind/default.nix b/nixpkgs/pkgs/tools/misc/remind/default.nix
index ef684aebe3cb..bbe96bf6c290 100644
--- a/nixpkgs/pkgs/tools/misc/remind/default.nix
+++ b/nixpkgs/pkgs/tools/misc/remind/default.nix
@@ -16,11 +16,11 @@ let
   '';
 in stdenv.mkDerivation rec {
   pname = "remind";
-  version = "03.03.01";
+  version = "03.03.05";
 
   src = fetchurl {
     url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
-    sha256 = "0y4l960529sl3sn4r4g36qpy3jk5h1x4algjy7an7sfiqb8n98fi";
+    sha256 = "sha256-Ye0X2Gvek/pyaNVxGKL773OWJvC4I6F5nEsRQgzWbsE=";
   };
 
   nativeBuildInputs = optional tkremind makeWrapper;
diff --git a/nixpkgs/pkgs/tools/misc/rlwrap/default.nix b/nixpkgs/pkgs/tools/misc/rlwrap/default.nix
index ac1431d3a1be..a78d6f143a12 100644
--- a/nixpkgs/pkgs/tools/misc/rlwrap/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rlwrap/default.nix
@@ -1,26 +1,30 @@
-{ lib, stdenv, fetchurl, readline }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, perl, readline }:
 
 stdenv.mkDerivation rec {
   pname = "rlwrap";
-  version = "0.43";
+  version = "0.45";
 
-  src = fetchurl {
-    url = "https://github.com/hanslub42/rlwrap/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0bzb7ylk2770iv59v2d0gypb21y2xn87m299s9rqm6rdi2vx11lf";
+  src = fetchFromGitHub {
+    owner = "hanslub42";
+    repo = "rlwrap";
+    rev = "v${version}";
+    sha256 = "1ppkjdnxrxh99g4xaiaglm5bmp24006rfahci0cn1g7zwilkjy8s";
   };
 
-  buildInputs = [ readline ];
-
-  # Be high-bit-friendly
-  preBuild = ''
-    sed -i src/readline.c -e "s@[*]p [<] ' '@(*p >= 0) \\&\\& (*p < ' ')@"
+  postPatch = ''
+    substituteInPlace src/readline.c \
+      --replace "if(*p >= 0 && *p < ' ')" "if(*p >= 0 && (*p >= 0) && (*p < ' '))"
   '';
 
-  meta = {
+  nativeBuildInputs = [ autoreconfHook perl ];
+
+  buildInputs = [ readline ];
+
+  meta = with lib; {
     description = "Readline wrapper for console programs";
     homepage = "https://github.com/hanslub42/rlwrap";
-    license = lib.licenses.gpl2Plus;
-    platforms = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/rmtrash/default.nix b/nixpkgs/pkgs/tools/misc/rmtrash/default.nix
index d50079f82c26..61b8ead738cf 100644
--- a/nixpkgs/pkgs/tools/misc/rmtrash/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rmtrash/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper
+{ lib, stdenvNoCC, fetchFromGitHub, makeWrapper
 , trash-cli, coreutils, which, getopt }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "rmtrash";
   version = "1.14";
 
@@ -12,9 +12,6 @@ stdenv.mkDerivation rec {
     sha256 = "0wfb2ykzlsxyqn9krfsis9jxhaxy3pxl71a4f15an1ngfndai694";
   };
 
-  dontConfigure = true;
-  dontBuild = true;
-
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
@@ -35,5 +32,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ peelz ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/rpi-imager/default.nix b/nixpkgs/pkgs/tools/misc/rpi-imager/default.nix
index a18a8d6d38d0..963a0832ef9f 100644
--- a/nixpkgs/pkgs/tools/misc/rpi-imager/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rpi-imager/default.nix
@@ -16,13 +16,13 @@
 
 mkDerivation rec {
   pname = "rpi-imager";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0596c7rpkykmjr3gsz9yczqsj7fzq04kc97s0rqkygjnwiqh2rwz";
+    sha256 = "sha256-wX9EO5hgEM2ftOov0AERloH6GxrwptWltBYWLFXkPUw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix b/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
index 0e094a4b2add..38a43c7ac3dd 100644
--- a/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rpm-ostree";
-  version = "2021.1";
+  version = "2021.2";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-1GpM7IW27MgbXG6iVo5qnWaotwN1GgcXf7dFGRF8s0w=";
+    sha256 = "sha256-msu5LReTYupgoS6Rm2nrMz9jauciAD99hh+w8BhSYn4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/sacad/default.nix b/nixpkgs/pkgs/tools/misc/sacad/default.nix
new file mode 100644
index 000000000000..c5c48c271db7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/sacad/default.nix
@@ -0,0 +1,39 @@
+{ lib, python3Packages, jpegoptim, optipng }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "sacad";
+  version = "2.3.4";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "1qv2mrz6vy2sl7zhrj9vw016pjd7hmjr2ls0w8bbv1hgrddicn9r";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    aiohttp
+    appdirs
+    bitarray
+    cssselect
+    fake-useragent
+    lxml
+    mutagen
+    pillow
+    tqdm
+    unidecode
+    web-cache
+    jpegoptim
+    optipng
+  ];
+
+  # tests require internet connection
+  doCheck = false;
+
+  pythonImportsCheck = [ "sacad" ];
+
+  meta = with lib; {
+    description = "Smart Automatic Cover Art Downloader";
+    homepage = "https://github.com/desbma/sacad";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/savepagenow/default.nix b/nixpkgs/pkgs/tools/misc/savepagenow/default.nix
new file mode 100644
index 000000000000..d9166d07b74c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/savepagenow/default.nix
@@ -0,0 +1,25 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "savepagenow";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "pastpages";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1lz6rc47cds9rb35jdf8n13gr61wdkh5jqzx4skikm1yrqkwjyhm";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ click requests ];
+
+  # requires network access
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A simple Python wrapper for archive.org's \"Save Page Now\" capturing service";
+    homepage = "https://github.com/pastpages/savepagenow";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/screen/default.nix b/nixpkgs/pkgs/tools/misc/screen/default.nix
index 0443deae0775..70a959578555 100644
--- a/nixpkgs/pkgs/tools/misc/screen/default.nix
+++ b/nixpkgs/pkgs/tools/misc/screen/default.nix
@@ -16,7 +16,14 @@ stdenv.mkDerivation rec {
     "--enable-colors256"
   ];
 
-  patches = lib.optional stdenv.hostPlatform.isMusl
+  patches = [
+    (fetchpatch {
+      # Fixes denial of services in encoding.c, remove > 4.8.0
+      name = "CVE-2021-26937.patch";
+      url = "https://salsa.debian.org/debian/screen/-/raw/master/debian/patches/99_CVE-2021-26937.patch";
+      sha256 = "05f3p1c7s83nccwkhmavjzgaysxnvq41c7jffs31ra65kcpabqy0";
+    })
+  ] ++ lib.optional stdenv.hostPlatform.isMusl
     (fetchpatch {
       url = "https://gist.githubusercontent.com/yujinakayama/4608863/raw/76b9f89af5e5a2e97d9a0f36aac989fb56cf1447/gistfile1.diff";
       sha256 = "0f9bf83p8zdxaa1pr75jyf5g8xr3r8kv7cyzzbpraa1q4j15ss1p";
diff --git a/nixpkgs/pkgs/tools/misc/sfeed/default.nix b/nixpkgs/pkgs/tools/misc/sfeed/default.nix
index 57e49c887454..93ef69ea2ea5 100644
--- a/nixpkgs/pkgs/tools/misc/sfeed/default.nix
+++ b/nixpkgs/pkgs/tools/misc/sfeed/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.isc;
     maintainers = [ maintainers.matthiasbeyer ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/shelldap/default.nix b/nixpkgs/pkgs/tools/misc/shelldap/default.nix
index 18c5aea3dfd8..c782b1292008 100644
--- a/nixpkgs/pkgs/tools/misc/shelldap/default.nix
+++ b/nixpkgs/pkgs/tools/misc/shelldap/default.nix
@@ -6,7 +6,7 @@ perlPackages.buildPerlPackage rec {
     url = "https://bitbucket.org/mahlon/shelldap/downloads/shelldap-${version}.tar.gz";
     sha256 = "07gkvvxcgw3pgkfy8p9mmidakciaq1rsq5zhmdqd8zcwgqkrr24i";
   };
-  buildInputs = with perlPackages; [ perl YAMLSyck NetLDAP AlgorithmDiff IOSocketSSL AuthenSASL TermReadLineGnu TermShell ];
+  buildInputs = with perlPackages; [ perl YAMLSyck perlldap AlgorithmDiff IOSocketSSL AuthenSASL TermReadLineGnu TermShell ];
   prePatch = ''
     touch Makefile.PL
   '';
diff --git a/nixpkgs/pkgs/tools/misc/silicon/default.nix b/nixpkgs/pkgs/tools/misc/silicon/default.nix
index 1ff73492401f..0c338fd91bce 100644
--- a/nixpkgs/pkgs/tools/misc/silicon/default.nix
+++ b/nixpkgs/pkgs/tools/misc/silicon/default.nix
@@ -16,16 +16,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "silicon";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "Aloxaf";
     repo = "silicon";
     rev = "v${version}";
-    sha256 = "0cvzkfyljgxhmn456f2rn0vq2bhm1ishr4jg4dnwjjfgmjg3w908";
+    sha256 = "sha256-ci0gq4rOQHBmFPvhXZseIlwnqAWd06/qg/i/luhV79s=";
   };
 
-  cargoSha256 = "1aymhbfzcncrbc5n8rf62bdgi95b4bjhw6p716vhca5p6c7wfxcb";
+  cargoSha256 = "sha256-1sekLS+jhMeFJcW7pH/X8t28//xA+L54u81uKOo1kHE=";
 
   buildInputs = [ llvmPackages.libclang expat freetype ]
     ++ lib.optionals stdenv.isLinux [ libxcb ]
diff --git a/nixpkgs/pkgs/tools/misc/skim/default.nix b/nixpkgs/pkgs/tools/misc/skim/default.nix
index 3a49876a8600..7909aaa1a720 100644
--- a/nixpkgs/pkgs/tools/misc/skim/default.nix
+++ b/nixpkgs/pkgs/tools/misc/skim/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "skim";
-  version = "0.9.3";
+  version = "0.9.4";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "026mgqcp9sg6wwikghrc3rgh5p6wdbnvav5pb3xvs79lj85d5ga7";
+    sha256 = "0yvjzmz2vqc63l8911jflqf5aww7wxsav2yal5wg9ci9hzq6dl7j";
   };
 
   outputs = [ "out" "vim" ];
 
-  cargoSha256 = "07bs23x2vxzlrca5swwq8khmd9fbdhlhm0avwp9y231df6xdi2ys";
+  cargoSha256 = "0xh4f8c62kzj2fx7hyhdy13zhay13a6d2d7i9yz0n40dfgf70qx0";
 
   postPatch = ''
     sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/skim.vim
diff --git a/nixpkgs/pkgs/tools/misc/starship/default.nix b/nixpkgs/pkgs/tools/misc/starship/default.nix
index a3543c433ae9..c589590abcfe 100644
--- a/nixpkgs/pkgs/tools/misc/starship/default.nix
+++ b/nixpkgs/pkgs/tools/misc/starship/default.nix
@@ -11,13 +11,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.50.0";
+  version = "0.51.0";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bnnqrxsmp3z2qksd8h4lfbq4kxxy1cg4yynadz66lxyzabv2v21";
+    sha256 = "1bmnwvjhw2ba7yqn9if83d57b8qbrbqgy2br8q2drz4ylk0gjirg";
   };
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config ];
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  cargoSha256 = "0plk47i2xrn3x5yr3gw3pq74maqf4krb8d6i4sf8gil4mnpcgxir";
+  cargoSha256 = "1d4ca8yzx437x53i7z2kddv9db89zy6ywbgl6y1cwwd6wscbrxcq";
 
   preCheck = ''
     HOME=$TMPDIR
diff --git a/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix b/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
index 423135d53fd1..58c488f7b800 100644
--- a/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
@@ -4,22 +4,22 @@
 let
 
   inherit (python3Packages)
-    python nose pycrypto pyyaml requests mock python-dateutil setuptools;
+    python nose cryptography pyyaml requests mock python-dateutil setuptools;
 
 in stdenv.mkDerivation rec {
   pname = "svtplay-dl";
-  version = "2.8";
+  version = "3.3";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "1977xyxi9jfj7qra1sz7c9lk885cadpci66jvbzvnwm6d60m05lb";
+    sha256 = "00pz5vv39qjsw67fdlj6942371lyvv368lc82z17nnh723ck54yy";
   };
 
-  pythonPaths = [ pycrypto pyyaml requests ];
-  buildInputs = [ python perl nose mock makeWrapper python-dateutil setuptools ] ++ pythonPaths;
-  nativeBuildInputs = [ gitMinimal zip ];
+  pythonPaths = [ cryptography pyyaml requests ];
+  buildInputs = [ python perl nose mock python-dateutil setuptools ] ++ pythonPaths;
+  nativeBuildInputs = [ gitMinimal zip makeWrapper ];
 
   postPatch = ''
     substituteInPlace scripts/run-tests.sh \
diff --git a/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix b/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
index 4bc5c28b5599..b3f58c4cdb18 100644
--- a/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
+++ b/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
@@ -42,6 +42,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/SwagLyrics/SwagLyrics-For-Spotify";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
-    platforms = lib.platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/tab-rs/default.nix b/nixpkgs/pkgs/tools/misc/tab-rs/default.nix
index b6c9b35ac870..affea98ea555 100644
--- a/nixpkgs/pkgs/tools/misc/tab-rs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tab-rs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tab-rs";
-  version = "0.5.6";
+  version = "0.5.7";
 
   src = fetchFromGitHub {
     owner = "austinjones";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gyl2dxyhh4d2lpxg9s5cx734sfs1kys5z5hjqfgbiny28hp9sw6";
+    sha256 = "1crj0caimin667f9kz34c0sm77892dmqaf1kxryqakqm75az5wfr";
   };
 
-  cargoSha256 = "1apjzn164kakb2snrq1wfl7grm72hkddi3am6d01h5kkngkp68qm";
+  cargoSha256 = "0c2478c5gblvci0s68pv8386kxhs88dxzcpd2rq6l82bjn7yzymd";
 
   buildInputs = lib.optionals stdenv.isDarwin [ IOKit ];
 
diff --git a/nixpkgs/pkgs/tools/misc/tea/default.nix b/nixpkgs/pkgs/tools/misc/tea/default.nix
new file mode 100644
index 000000000000..06e54559db9a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/tea/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildGoModule, fetchgit }:
+
+buildGoModule rec {
+  pname = "tea";
+  version = "0.7.0";
+
+  src = fetchgit {
+    url = "https://gitea.com/gitea/tea";
+    rev = "v${version}";
+    sha256 = "sha256-Kq+A6YELfBJ04t7pPnX8Ulh4NSMFn3AHggplLD9J8MY=";
+  };
+
+  vendorSha256 = null;
+
+  meta = with lib; {
+    description = "Gitea official CLI client";
+    homepage    = "https://gitea.com/gitea/tea";
+    license     = licenses.mit;
+    maintainers = [ maintainers.j4m3s ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/tfk8s/default.nix b/nixpkgs/pkgs/tools/misc/tfk8s/default.nix
new file mode 100644
index 000000000000..ebe1f056f4e2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/tfk8s/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "tfk8s";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "jrhouston";
+    repo = "tfk8s";
+    rev = "v${version}";
+    sha256 = "sha256-3iI5gYfpkxfVylBgniaMeQ73uR8dAjVrdg/eBLRxUR4";
+  };
+
+  vendorSha256 = "sha256-wS5diDQFkt8IAp13d8Yeh8ihLvKWdR0Mbw0fMZpqqKE=";
+  runVend = true;
+
+  buildFlagsArray = [
+    "-ldflags="
+    "-s"
+    "-w"
+    "-X main.toolVersion=${version}"
+    "-X main.builtBy=nixpkgs"
+  ];
+
+  meta = with lib; {
+    description = "An utility to convert Kubernetes YAML manifests to Terraform's HCL format.";
+    license = licenses.mit;
+    longDescription = ''
+      tfk8s is a tool that makes it easier to work with the Terraform Kubernetes Provider.
+      If you want to copy examples from the Kubernetes documentation or migrate existing YAML manifests and use them with Terraform without having to convert YAML to HCL by hand, this tool is for you.
+      Features:
+      * Convert a YAML file containing multiple manifests.
+      * Strip out server side fields when piping kubectl get $R -o yaml | tfk8s --strip
+    '';
+    homepage = "https://github.com/jrhouston/tfk8s/";
+    maintainers = with maintainers; [ superherointj ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix b/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix
index 794e0d4e2578..bff6c9c96887 100644
--- a/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, expat, libaio, boost, binutils }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, expat, libaio, boost }:
 
 stdenv.mkDerivation rec {
   pname = "thin-provisioning-tools";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  buildInputs = [ expat libaio boost binutils ];
+  buildInputs = [ expat libaio boost ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/tools/misc/tldr/default.nix b/nixpkgs/pkgs/tools/misc/tldr/default.nix
index 25eee1c7b83b..dfde5a9113be 100644
--- a/nixpkgs/pkgs/tools/misc/tldr/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tldr/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ curl libzip ];
   nativeBuildInputs = [ pkg-config ];
 
-  makeFlags = ["CC=cc" "LD=cc" "CFLAGS="];
+  makeFlags = ["CC=${stdenv.cc.targetPrefix}cc" "LD=${stdenv.cc.targetPrefix}cc" "CFLAGS="];
 
   installFlags = [ "PREFIX=$(out)" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/tmux-cssh/default.nix b/nixpkgs/pkgs/tools/misc/tmux-cssh/default.nix
index f3f536279566..830c365fa403 100644
--- a/nixpkgs/pkgs/tools/misc/tmux-cssh/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tmux-cssh/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     sha256 = "473e27f3b69864b905d1340d97917cd202705c761611eb3aec4c24521f69b52c";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/tools/misc/tmux-xpanes/default.nix b/nixpkgs/pkgs/tools/misc/tmux-xpanes/default.nix
index 37a60e714df0..a410eaa9238c 100644
--- a/nixpkgs/pkgs/tools/misc/tmux-xpanes/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tmux-xpanes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tmux-xpanes";
-  version = "4.1.2";
+  version = "4.1.3";
 
   src = fetchFromGitHub {
     owner = "greymd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vm5mi6dqdbg0b5qh4r8sr1plpc00jryd8a2qxpp3a72cigjvvf0";
+    sha256 = "sha256-e0dEkkEkColBQ0PgOQpoVbIkR3aVsrMZoSGbg4O11SU=";
   };
 
   buildInputs = [ openssl perl ];
diff --git a/nixpkgs/pkgs/tools/misc/tmux/default.nix b/nixpkgs/pkgs/tools/misc/tmux/default.nix
index 4e5ca70b9554..2043cfe10118 100644
--- a/nixpkgs/pkgs/tools/misc/tmux/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tmux/default.nix
@@ -49,6 +49,8 @@ stdenv.mkDerivation rec {
     "--localstatedir=/var"
   ];
 
+  enableParallelBuilding = true;
+
   postInstall = ''
     mkdir -p $out/share/bash-completion/completions
     cp -v ${bashCompletion}/completions/tmux $out/share/bash-completion/completions/tmux
diff --git a/nixpkgs/pkgs/tools/misc/tmuxp/default.nix b/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
index 57d320fd7906..9e97f0d892bf 100644
--- a/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
@@ -4,11 +4,11 @@ with python.pkgs;
 
 buildPythonApplication rec {
   pname = "tmuxp";
-  version = "1.7.0";
+  version = "1.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e5135d07a8944170e39ea8b96b09123c54648cca94537b4953d8f15e5a537da2";
+    sha256 = "14296b62db260420d4600dcd805408ea908b3a78d4ea0a6a403d092fdbf6d075";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/topgrade/default.nix b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
index 2fb41edaa7cb..ff0661de46ad 100644
--- a/nixpkgs/pkgs/tools/misc/topgrade/default.nix
+++ b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "6.4.0";
+  version = "6.8.0";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xrp2oGqJRhjYYZ0dDvYiUfgKM2mazOAlkJQyawDk2y4=";
+    sha256 = "sha256-PPOsb9bne0q/WGAL3W2RGo/0yxyz/XXU3xYXKcCIqX0=";
   };
 
-  cargoSha256 = "sha256-EK48mrTYgh0AgC53rvVRFfdZP/FS9LOZWr8TF13qEl0=";
+  cargoSha256 = "sha256-IirU/4hE+jo5A9pB7RnePhqcbCZXBCe0Ki6i7eEWIbk=";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
diff --git a/nixpkgs/pkgs/tools/misc/tremor-rs/default.nix b/nixpkgs/pkgs/tools/misc/tremor-rs/default.nix
new file mode 100644
index 000000000000..fb1268acc6fa
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/tremor-rs/default.nix
@@ -0,0 +1,42 @@
+{ lib, rustPlatform, pkg-config, cmake, llvmPackages, openssl, fetchFromGitHub
+, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "tremor";
+  version = "0.10.1";
+
+  src = fetchFromGitHub {
+    owner = "tremor-rs";
+    repo = "tremor-runtime";
+    rev = "v${version}";
+    sha256 = "1z1khxfdj2j0xf7dp0x2cd9kl6r4qicp7kc4p4sdky2yib66512y";
+  };
+
+  cargoSha256 = "sha256-rN/d6BL2d0D0ichQR6v0543Bh/Y2ktz8ExMH50M8B8c=";
+
+  nativeBuildInputs = [ cmake pkg-config installShellFiles ];
+
+  buildInputs = [ openssl ];
+
+  postInstall = ''
+    installShellCompletion --cmd tremor \
+      --bash <($out/bin/tremor completions bash) \
+      --fish <($out/bin/tremor completions fish) \
+      --zsh <($out/bin/tremor completions zsh)
+  '';
+
+  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+  # OPENSSL_NO_VENDOR - If set, always find OpenSSL in the system, even if the vendored feature is enabled.
+  OPENSSL_NO_VENDOR = 1;
+
+  cargoBuildFlags = [ "--all" ];
+
+  meta = with lib; {
+    description = "Early stage event processing system for unstructured data with rich support for structural pattern matching, filtering and transformation";
+    homepage = "https://www.tremor.rs/";
+    license = licenses.asl20;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ humancalico ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix b/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix
index 9e88e5da4f87..fe121c2d51ce 100644
--- a/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "An automatic hinter for TrueType fonts";
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/misc/tz/default.nix b/nixpkgs/pkgs/tools/misc/tz/default.nix
new file mode 100644
index 000000000000..c46137bd9e5a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/tz/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "tz";
+  version = "0.5";
+
+  src = fetchFromGitHub {
+    owner = "oz";
+    repo = "tz";
+    rev = "v${version}";
+    sha256 = "sha256-OwjhV3n1B1yQTNYm4VOW500t0524g85YYiOAAu9yPeo=";
+  };
+
+  vendorSha256 = "sha256-Soa87I7oMa34LjYKxNAz9Limi0kQ6JUtb/zI4G7yZnw=";
+
+  meta = with lib; {
+    description = "A time zone helper";
+    homepage = "https://github.com/oz/tz";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/uhubctl/default.nix b/nixpkgs/pkgs/tools/misc/uhubctl/default.nix
index c1dfae680503..f5bbe2de73f5 100644
--- a/nixpkgs/pkgs/tools/misc/uhubctl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/uhubctl/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "uhubctl";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "mvp";
     repo = "uhubctl";
     rev = "v${version}";
-    sha256 = "1wxsiygw6gwv1h90yassnxylkyi2dfz7y59qkmb7rs8a8javj7nv";
+    sha256 = "sha256-F3fOoZYnfIWMrESyVJ/9z6Vou1279avhs600rQayUVA=";
   };
 
   buildInputs = [ libusb1 ];
diff --git a/nixpkgs/pkgs/tools/misc/umlet/default.nix b/nixpkgs/pkgs/tools/misc/umlet/default.nix
index a073417be7d2..d88e0bdea15e 100644
--- a/nixpkgs/pkgs/tools/misc/umlet/default.nix
+++ b/nixpkgs/pkgs/tools/misc/umlet/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0jfyxjxsjx29xhs3fl0f574nyncmk9j5jp8zlgd401mcaznn9c7l";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     mkdir -p "$out/bin"
diff --git a/nixpkgs/pkgs/tools/misc/unclutter/default.nix b/nixpkgs/pkgs/tools/misc/unclutter/default.nix
index 1b7602981919..66344c9fdeef 100644
--- a/nixpkgs/pkgs/tools/misc/unclutter/default.nix
+++ b/nixpkgs/pkgs/tools/misc/unclutter/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   buildInputs = [xlibsWrapper];
 
-  buildFlags = [ "CC=cc" ];
+  buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     mkdir -pv "$out/bin"
diff --git a/nixpkgs/pkgs/tools/misc/units/default.nix b/nixpkgs/pkgs/tools/misc/units/default.nix
index 2b40e289cadd..04e955a78b18 100644
--- a/nixpkgs/pkgs/tools/misc/units/default.nix
+++ b/nixpkgs/pkgs/tools/misc/units/default.nix
@@ -11,11 +11,11 @@ assert enableCurrenciesUpdater -> pythonPackages != null;
 
 stdenv.mkDerivation rec {
   pname = "units";
-  version = "2.19";
+  version = "2.21";
 
   src = fetchurl {
     url = "mirror://gnu/units/${pname}-${version}.tar.gz";
-    sha256 = "0mk562g7dnidjgfgvkxxpvlba66fh1ykmfd9ylzvcln1vxmi6qj2";
+    sha256 = "sha256-bD6AqfmAWJ/ZYqWFKiZ0ZCJX2xxf1bJ8TZ5mTzSGy68=";
   };
 
   pythonEnv = pythonPackages.python.withPackages(ps: [
diff --git a/nixpkgs/pkgs/tools/misc/upterm/default.nix b/nixpkgs/pkgs/tools/misc/upterm/default.nix
index 533ef192e8d7..2f504a0cef8c 100644
--- a/nixpkgs/pkgs/tools/misc/upterm/default.nix
+++ b/nixpkgs/pkgs/tools/misc/upterm/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "upterm";
-  version = "0.5.2";
+  version = "0.6.5";
 
   src = fetchFromGitHub {
     owner = "owenthereal";
     repo = "upterm";
     rev = "v${version}";
-    sha256 = "007hgkkn1cq1i0rkn45i3bz5q9irzm67cz0j5glr6f6d4s0nkjiq";
+    sha256 = "sha256-wzDK7iQN/z/M1mTKPCH3c+OjFsavplV/0oMiOe5thuI=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/misc/urjtag/default.nix b/nixpkgs/pkgs/tools/misc/urjtag/default.nix
index d75d462fc8ee..4630ec31ebba 100644
--- a/nixpkgs/pkgs/tools/misc/urjtag/default.nix
+++ b/nixpkgs/pkgs/tools/misc/urjtag/default.nix
@@ -1,38 +1,57 @@
-{ lib, stdenv, autoconf, automake, pkg-config, gettext, libtool, bison
-, flex, which, subversion, fetchurl, makeWrapper, libftdi1, libusb-compat-0_1, readline
-, python3
-, svfSupport ? true
+{ lib
+, stdenv
+, fetchurl
+, autoconf
+, automake
+, autoreconfHook
+, gettext
+, libftdi1
+, libtool
+, libusb-compat-0_1
+, makeWrapper
+, pkg-config
+, readline
+, which
 , bsdlSupport ? true
-, staplSupport ? true
 , jedecSupport ? true
+, staplSupport ? true
+, svfSupport ? true
 }:
 
 stdenv.mkDerivation rec {
-  version = "2019.12";
   pname = "urjtag";
+  version = "2021.03";
 
   src = fetchurl {
-    url = "https://downloads.sourceforge.net/project/urjtag/urjtag/${version}/urjtag-${version}.tar.xz";
-    sha256 = "1k2vmvvarik0q3llbfbk8ad35mcns7w1ln9gla1mn7z9c6x6x90r";
+    url = "mirror://sourceforge/project/${pname}/${pname}/${version}/${pname}-${version}.tar.xz";
+    hash = "sha256-sKLqokVROvCW3E13AQmDIzXGlMbBKqXpL++uhoVBbxw=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gettext autoconf automake libtool bison flex which
-    subversion makeWrapper readline libftdi1 libusb-compat-0_1 python3 ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    which
+    gettext
+  ];
+  buildInputs = [
+    libftdi1
+    libtool
+    libusb-compat-0_1
+    readline
+  ];
 
   configureFlags = [
-    (lib.enableFeature svfSupport   "svf")
     (lib.enableFeature bsdlSupport  "bsdl")
-    (lib.enableFeature staplSupport "stapl")
     (lib.enableFeature jedecSupport "jedec-exp")
+    (lib.enableFeature staplSupport "stapl")
+    (lib.enableFeature svfSupport   "svf")
   ];
 
-  meta = {
-    description = "Enhanced, modern tool for communicating over JTAG with flash chips, CPUs,and many more";
+  meta = with lib; {
     homepage = "http://urjtag.org/";
-    license = with lib.licenses; [ gpl2Plus lgpl21Plus ];
-    platforms = lib.platforms.gnu ++ lib.platforms.linux;  # arbitrary choice
-    maintainers = with lib.maintainers; [ lowfatcomputing ];
+    description = "Universal JTAG library, server and tools";
+    license = with licenses; [ gpl2Plus lgpl21Plus ];
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
-
diff --git a/nixpkgs/pkgs/tools/misc/usbview/default.nix b/nixpkgs/pkgs/tools/misc/usbview/default.nix
new file mode 100644
index 000000000000..2f417ea86de5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/usbview/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, gtk3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "usbview";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "gregkh";
+    repo = "usbview";
+    rev = "v${version}";
+    sha256 = "1cw5jjpidjn34rxdjslpdlj99k4dqaq1kz6mplv5hgjdddijvn5p";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk3
+  ];
+
+  meta = with lib; {
+    description = "USB viewer for Linux";
+    license = licenses.gpl2Only;
+    homepage = "http://www.kroah.com/linux-usb/";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix b/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
index 44871b07a8ea..b2d3883176c6 100644
--- a/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
@@ -1,32 +1,51 @@
-{ stdenv, fetchFromGitHub, rustPlatform, cargo, cmake, sphinx, lib, prefix ? "uutils-"
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, cargo
+, sphinx
 , Security
+, prefix ? "uutils-"
+, buildMulticallBinary ? true
 }:
-rustPlatform.buildRustPackage rec {
+
+stdenv.mkDerivation rec {
   pname = "uutils-coreutils";
-  version = "0.0.3";
+  version = "0.0.6";
 
   src = fetchFromGitHub {
     owner = "uutils";
     repo = "coreutils";
     rev = version;
-    sha256 = "QWiEHk8aciiwQeyNgrr0M0c1EeAgE3gSqw0ly/YTwTQ=";
+    sha256 = "sha256-dnswE/DU2jCfxWW10Ctjw8woktwWZqyd3E9IuKkle1M=";
   };
 
-  # too many impure/platform-dependent tests
-  doCheck = false;
+  postPatch = ''
+    # can be removed after https://github.com/uutils/coreutils/pull/1815 is included
+    substituteInPlace GNUmakefile \
+      --replace uutils coreutils
+  '';
 
-  cargoSha256 = "m2a7WNkF5TxjJlytjdoQ/JZIF9gp9qBkH+UU/NVRJzA=";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-92BHPSVIPZLn399AcaJJjRq2WkxzDm8knKN3FIdAxAA=";
+  };
 
-  makeFlags =
-    [ "CARGO=${cargo}/bin/cargo" "PREFIX=$(out)" "PROFILE=release" "INSTALLDIR_MAN=$(out)/share/man/man1" ]
-    ++ lib.optional (prefix != null) [ "PROG_PREFIX=${prefix}" ];
+  nativeBuildInputs = [ rustPlatform.cargoSetupHook sphinx ];
 
-  nativeBuildInputs = [ cmake cargo sphinx ];
   buildInputs = lib.optional stdenv.isDarwin Security;
 
-  # empty {build,install}Phase to use defaults of `stdenv.mkDerivation` rather than rust defaults
-  buildPhase = "";
-  installPhase = "";
+  makeFlags = [
+    "CARGO=${cargo}/bin/cargo"
+    "PREFIX=${placeholder "out"}"
+    "PROFILE=release"
+    "INSTALLDIR_MAN=${placeholder "out"}/share/man/man1"
+  ] ++ lib.optionals (prefix != null) [ "PROG_PREFIX=${prefix}" ]
+  ++ lib.optionals buildMulticallBinary [ "MULTICALL=y" ];
+
+  # too many impure/platform-dependent tests
+  doCheck = false;
 
   meta = with lib; {
     description = "Cross-platform Rust rewrite of the GNU coreutils";
@@ -35,7 +54,7 @@ rustPlatform.buildRustPackage rec {
       CLI utils in Rust. This repo is to aggregate the GNU coreutils rewrites.
     '';
     homepage = "https://github.com/uutils/coreutils";
-    maintainers = with maintainers; [ siraben ];
+    maintainers = with maintainers; [ siraben SuperSandro2000 ];
     license = licenses.mit;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/misc/uwuify/default.nix b/nixpkgs/pkgs/tools/misc/uwuify/default.nix
new file mode 100644
index 000000000000..849703ffd763
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/uwuify/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, libiconv }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "uwuify";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "Daniel-Liu-c0deb0t";
+    repo = "uwu";
+    rev = "v${version}";
+    sha256 = "sha256-MzXObbxccwEG7egmQMCdhUukGqZS+NgbYwZjTaqME7I=";
+  };
+
+  cargoSha256 = "sha256-iyoGLFIfHToOwqEb5lQ1nXR0W1gLOVMfvw39LX6ib+U=";
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+
+  meta = with lib; {
+    description = "Fast text uwuifier";
+    homepage = "https://github.com/Daniel-Liu-c0deb0t/uwu";
+    license = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/vector/default.nix b/nixpkgs/pkgs/tools/misc/vector/default.nix
index f207eda0de89..04eb29ca1e11 100644
--- a/nixpkgs/pkgs/tools/misc/vector/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vector/default.nix
@@ -1,41 +1,42 @@
-{ stdenv, lib, fetchFromGitHub, rustPlatform
-, openssl, pkg-config, protobuf
-, Security, libiconv, rdkafka
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+, openssl
+, pkg-config
+, protobuf
+, Security
+, libiconv
+, rdkafka
 , tzdata
-
-, features ?
-    ((if stdenv.isAarch64
-     then [ "jemallocator" "rdkafka" "rdkafka/dynamic_linking" ]
-     else [ "leveldb" "leveldb/leveldb-sys-2" "jemallocator" "rdkafka" "rdkafka/dynamic_linking" ])
-     ++
-     (lib.optional stdenv.targetPlatform.isUnix "unix")
-     ++
-     [ "sinks" "sources" "transforms" ])
 , coreutils
 , CoreServices
+, features ? ([ "jemallocator" "rdkafka" "rdkafka/dynamic_linking" ]
+    ++ (lib.optional stdenv.targetPlatform.isUnix "unix")
+    ++ [ "sinks" "sources" "transforms" ])
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "vector";
-  version = "0.10.0";
+  version = "0.12.2";
 
   src = fetchFromGitHub {
-    owner  = "timberio";
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "0q6x3fvwwh18iyznqlr09n3zppzgw9jaz973s8haz54hnxj16wx0";
+    owner = "timberio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-LutCzpJo47wvEze7bAObRVraNhVuQFc9NQ79NzKA9CM=";
   };
 
-  cargoSha256 = "Y/vDYXWQ65zZ86vTwP4aCZYCMZuqbz6tpfv4uRkFAzc=";
+  cargoSha256 = "sha256-GU5p9DB5Bk8eQc1B/WA87grbVJVcT1ELJ0WzmRYgDzc=";
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl protobuf rdkafka ]
-                ++ lib.optional stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
+    ++ lib.optional stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
 
   # needed for internal protobuf c wrapper library
-  PROTOC="${protobuf}/bin/protoc";
-  PROTOC_INCLUDE="${protobuf}/include";
+  PROTOC = "${protobuf}/bin/protoc";
+  PROTOC_INCLUDE = "${protobuf}/include";
 
-  cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
+  cargoBuildFlags = [ "--no-default-features" "--features" (lib.concatStringsSep "," features) ];
   checkPhase = "TZDIR=${tzdata}/share/zoneinfo cargo test --no-default-features --features ${lib.concatStringsSep "," features} -- --test-threads 1";
 
   # recent overhauls of DNS support in 0.9 mean that we try to resolve
@@ -49,19 +50,21 @@ rustPlatform.buildRustPackage rec {
   # nor do I know why it depends on rustc.
   # However, in order for the closure size to stay at a reasonable level,
   # transforms-geoip is patched out of Cargo.toml for now - unless explicitly asked for.
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace ./src/dns.rs \
-      --replace "#[test]" ""
+      --replace "#[tokio::test]" ""
 
     ${lib.optionalString (!builtins.elem "transforms-geoip" features) ''
         substituteInPlace ./Cargo.toml --replace '"transforms-geoip",' ""
     ''}
   '';
 
+  passthru = { inherit features; };
+
   meta = with lib; {
     description = "A high-performance logs, metrics, and events router";
-    homepage    = "https://github.com/timberio/vector";
-    license     = with licenses; [ asl20 ];
+    homepage = "https://github.com/timberio/vector";
+    license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ thoughtpolice happysalada ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/vimer/default.nix b/nixpkgs/pkgs/tools/misc/vimer/default.nix
index 1fbb85f07516..bbab2d64bb00 100644
--- a/nixpkgs/pkgs/tools/misc/vimer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vimer/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/misc/vimv/default.nix b/nixpkgs/pkgs/tools/misc/vimv/default.nix
index 2b056cd079a7..a36c9548462d 100644
--- a/nixpkgs/pkgs/tools/misc/vimv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vimv/default.nix
@@ -1,24 +1,27 @@
-{ lib, stdenv, bash, fetchFromGitHub }:
-stdenv.mkDerivation {
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
   pname = "vimv";
   version = "unstable-2019-10-31";
+
   src = fetchFromGitHub {
     owner = "thameera";
     repo = "vimv";
     rev = "4152496c1946f68a13c648fb7e583ef23dac4eb8";
     sha256 = "1fsrfx2gs6bqx7wk7pgcji2i2x4alqpsi66aif4kqvnpqfhcfzjd";
   };
-  phases = [ "installPhase" ];
+
   installPhase = ''
     install -d $out/bin
     install $src/vimv $out/bin/vimv
     patchShebangs $out/bin/vimv
   '';
+
   meta = with lib; {
     homepage = "https://github.com/thameera/vimv";
     description = "Batch-rename files using Vim";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.kmein ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix b/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix
index fe405b0eaa40..6cc13e6f87e6 100644
--- a/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  buildInputs = [ unzip libogg libvorbis ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ libogg libvorbis ];
 
   patchPhase = ''
     chmod -v +x configure
diff --git a/nixpkgs/pkgs/tools/misc/vsh/default.nix b/nixpkgs/pkgs/tools/misc/vsh/default.nix
index f3eb1f9ad8e5..a94c58368a4f 100644
--- a/nixpkgs/pkgs/tools/misc/vsh/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vsh/default.nix
@@ -2,21 +2,17 @@
 
 buildGoModule rec {
   pname = "vsh";
-  version = "0.9.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "fishi0x01";
     repo = "vsh";
     rev = "v${version}";
-    sha256 = "1f6szcdakfx3zap1zpkrcs134plv7vnyilzcxs5jbhrrbr6q1807";
+    sha256 = "0dhn2aqd52fgasy4j3ar67fzwzcxfi1vl09kni8jwcna8rjgg3fj";
   };
 
-  vendorSha256 = "0a2kjql4ibglxkq5dgzr2sxxxm38nf83s4rsk2gd1cf7v0flr02j";
-
-  # vendor dir in vsh repo is incomplete
-  deleteVendor = true;
-
-  runVend = true;
+  # vendor directory is part of repository
+  vendorSha256 = null;
 
   # make sure version gets set at compile time
   buildFlagsArray = [ "-ldflags=-s -w -X main.vshVersion=v${version}" ];
diff --git a/nixpkgs/pkgs/tools/misc/vttest/default.nix b/nixpkgs/pkgs/tools/misc/vttest/default.nix
index 64a76e97baef..a78b68569647 100644
--- a/nixpkgs/pkgs/tools/misc/vttest/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vttest/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "vttest";
-  version = "20200610";
+  version = "20210210";
 
   src = fetchurl {
     urls = [
       "https://invisible-mirror.net/archives/${pname}/${pname}-${version}.tgz"
       "ftp://ftp.invisible-island.net/${pname}/${pname}-${version}.tgz"
     ];
-    sha256 = "0181lk999gfqk8pkd4yx0qrz9r3k9a0z0i50wcayp7z1n1ivqllb";
+    sha256 = "sha256-D5ii4wWYKRXxUgmEw+hpjjrNUI7iEHEVKMifWn6n8EY=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix b/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
index a0392bf4754c..05750b962f00 100644
--- a/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
+++ b/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
@@ -10,7 +10,7 @@ let
 in
 stdenv.mkDerivation {
   name = "xvfb-run";
-  buildInputs = [makeWrapper];
+  nativeBuildInputs = [ makeWrapper ];
   buildCommand = ''
     mkdir -p $out/bin
     cp ${xvfb_run} $out/bin/xvfb-run
diff --git a/nixpkgs/pkgs/tools/misc/yad/default.nix b/nixpkgs/pkgs/tools/misc/yad/default.nix
index 84d4833d63e4..2069ba6b1593 100644
--- a/nixpkgs/pkgs/tools/misc/yad/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yad/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yad";
-  version = "7.2";
+  version = "8.0";
 
   src = fetchFromGitHub {
     owner = "v1cont";
     repo = "yad";
     rev = "v${version}";
-    sha256 = "0ih97hrcra2bg8q19b8819hip1p424z1vj61cl1ym5p477rp37yx";
+    sha256 = "sha256-KntJtli1PtqH/9XOTq4FkVJYklp0L7bChwQQGCBTLDA=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/misc/yle-dl/default.nix b/nixpkgs/pkgs/tools/misc/yle-dl/default.nix
index 9ee81cd1b158..818ad5ec645e 100644
--- a/nixpkgs/pkgs/tools/misc/yle-dl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yle-dl/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "yle-dl";
-  version = "20201022";
+  version = "20210212";
 
   src = fetchFromGitHub {
     owner = "aajanki";
     repo = "yle-dl";
     rev = version;
-    sha256 = "0p56pb3wxdzqgs4fsh4hn06xs0mgzgznqqr0bn2vkkkibnkr1asp";
+    sha256 = "sha256-0JnigYmslQ/7KsQAFg3AaWPAU/tD1lS7lF6OCcv/ze4=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix b/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
index 8afd9786564c..fa17bea85852 100644
--- a/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
@@ -18,11 +18,11 @@ buildPythonPackage rec {
   # The websites youtube-dl 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 = "2021.04.01";
+  version = "2021.04.07";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1vw9l32bv115129v1lfar626y3vivvxkp36bc1phjcrsjfayz67h";
+    sha256 = "02d51l6gdjr3zhhi7ydf5kzv8dv4jzq0ygja7zb2h9k7hnl0l27m";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/ytfzf/default.nix b/nixpkgs/pkgs/tools/misc/ytfzf/default.nix
new file mode 100644
index 000000000000..6129fd4b9dad
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/ytfzf/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, coreutils
+, curl
+, dmenu
+, fzf
+, gnused
+, jq
+, mpv
+, ncurses
+, ueberzug
+, youtube-dl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ytfzf";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = "pystardust";
+    repo = "ytfzf";
+    rev = "v${version}";
+    sha256 = "09az557479d3s1my46d2w86ndkvs2xi127kaw0csag0wlq2qq10p";
+  };
+
+  patches = [
+    # Updates have to be installed through Nix.
+    ./no-update.patch
+  ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  makeFlags = [ "PREFIX=${placeholder "out"}/bin" ];
+
+  dontBuild = true;
+
+  postInstall = ''
+    wrapProgram "$out/bin/ytfzf" --prefix PATH : ${lib.makeBinPath [
+      coreutils curl dmenu fzf gnused jq mpv ncurses ueberzug youtube-dl
+    ]}
+  '';
+
+  meta = with lib; {
+    description = "A posix script to find and watch youtube videos from the terminal";
+    homepage = "https://github.com/pystardust/ytfzf";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch b/nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch
new file mode 100644
index 000000000000..db7d4b40fccb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch
@@ -0,0 +1,30 @@
+diff --git a/ytfzf b/ytfzf
+index 42f41c0..f75f5cb 100755
+--- a/ytfzf
++++ b/ytfzf
+@@ -892,23 +892,8 @@ send_notify () {
+ }
+ 
+ update_ytfzf () {
+-	branch="$1"
+-	updatefile="/tmp/ytfzf-update"
+-	curl -L "https://raw.githubusercontent.com/pystardust/ytfzf/$branch/ytfzf" -o "$updatefile"
+-
+-	if sed -n '1p' < "$updatefile" | grep -q '#!/bin/sh' ; then
+-		chmod 755 "$updatefile"
+-		if [ "$(uname)" = "Darwin" ]; then
+-			sudo cp "$updatefile" "/usr/local/bin/ytfzf"
+-		else
+-			sudo cp "$updatefile" "/usr/bin/ytfzf"
+-		fi
+-	else
+-		printf "%bFailed to update ytfzf. Try again later.%b" "$c_red" "$c_reset"
+-	fi
+-
+-	rm "$updatefile"
+-	exit
++	printf "%bUpdates have to be installed through Nix.%b\n" "$c_red" "$c_reset"
++	exit 1
+ }
+ 
+ scrape_subscriptions () {
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix b/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
index 0f81f132abdf..02982f9cc4a3 100644
--- a/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
@@ -11,8 +11,6 @@
 , qtgraphicaleffects
 , qtquickcontrols
 , qtquickcontrols2
-, qtdeclarative
-, qtsvg
 , yubikey-manager
 , yubikey-personalization
 }:
@@ -34,8 +32,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ pythonPackages.python qtbase qtgraphicaleffects qtquickcontrols qtquickcontrols2 pyotherside ];
 
-  enableParallelBuilding = true;
-
   pythonPath = [ yubikey-manager ];
 
   dontWrapQtApps = true;
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix b/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
index 07218d054df7..12b3aa0f05f6 100644
--- a/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
@@ -3,11 +3,11 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "yubikey-manager";
-  version = "3.1.2";
+  version = "4.0.1";
 
   srcs = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    hash = "sha256-dwnIOuu0QyWRl6RSdyQw7dGsAZ4xpXpx6jOpCkp4efE=";
+    hash = "sha256-OxbKo5vwOBabU6/2hO4RMWiifo4IVIxz+DlcwP9xO/E=";
   };
 
   propagatedBuildInputs =
@@ -42,8 +42,7 @@ python3Packages.buildPythonPackage rec {
       --replace 'compdef _ykman_completion ykman;' '_ykman_completion "$@"'
   '';
 
-  # See https://github.com/NixOS/nixpkgs/issues/29169
-  doCheck = false;
+  checkInputs = with python3Packages; [ pytestCheckHook makefun ];
 
   meta = with lib; {
     homepage = "https://developers.yubico.com/yubikey-manager";
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/default.nix b/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/default.nix
deleted file mode 100644
index 3991b99fcdcf..000000000000
--- a/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, fetchurl, python27Packages
-, libykneomgr, yubikey-personalization, libu2f-host }:
-
-python27Packages.buildPythonPackage rec {
-  namePrefix = "";
-  name = "yubikey-neo-manager-${version}";
-  version = "1.4.0";
-  src = fetchurl {
-    url = "https://developers.yubico.com/yubikey-neo-manager/Releases/${name}.tar.gz";
-    sha256 = "1isxvx27hk0avxwgwcwys2z8ickfs816ii1aklvmi09ak1rgrf1g";
-  };
-
-  propagatedBuildInputs = with python27Packages; [ pyside pycrypto ];
-  patches = [ ./fix-pyside-requirement.diff ];
-
-  # aid ctypes load_libary()
-  makeWrapperArgs = [
-    "--set LD_PRELOAD '${libykneomgr}/lib/libykneomgr.so ${yubikey-personalization}/lib/libykpers-1.so ${libu2f-host}/lib/libu2f-host.so'"
-  ];
-
-  meta = with lib; {
-    homepage = "https://developers.yubico.com/yubikey-neo-manager";
-    description = "Cross platform personalization tool for the YubiKey NEO";
-    license = licenses.bsd2;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ mbakke ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/fix-pyside-requirement.diff b/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/fix-pyside-requirement.diff
deleted file mode 100644
index d11a3a1cc6d9..000000000000
--- a/nixpkgs/pkgs/tools/misc/yubikey-neo-manager/fix-pyside-requirement.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: Remove PySide requirement, since python-pyside does not register itself correctly
-Author: Dain Nilsson <dain@yubico.com>
-Forwarded: no
---- a/setup.py
-+++ b/setup.py
-@@ -44,8 +44,9 @@
-     entry_points={
-         'gui_scripts': ['neoman=neoman.__main__:main']
-     },
--    install_requires=['PySide', 'pycrypto'],
--    yc_requires=['ctypes', 'qt'],
-+    install_requires=['pycrypto'],
-+    yc_requires=['ctypes'],
-+    packages=['neoman', 'neoman.model', 'neoman.view', 'neoman.yubicommon', 'neoman.yubicommon.setup', 'neoman.yubicommon.ctypes', 'neoman.yubicommon.qt'],
-     cmdclass={'executable': executable, 'qt_resources': qt_resources('neoman')},
-     classifiers=[
-         'License :: OSI Approved :: BSD License',
diff --git a/nixpkgs/pkgs/tools/misc/z-lua/default.nix b/nixpkgs/pkgs/tools/misc/z-lua/default.nix
index 64ae387e1a6d..79be68c8d566 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.11";
+  version = "1.8.12";
 
   src = fetchFromGitHub {
     owner = "skywind3000";
     repo = "z.lua";
     rev = version;
-    sha256 = "sha256-k3Q4Fc2T7ElZb98+DVodC7zMHv5yfdwOIkSk0k04WCo=";
+    sha256 = "sha256-q4hJ6QAR8cXjXM2e5Et1/DzyEw9L0120sgpTtqGG5wQ=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/networking/acme-client/default.nix b/nixpkgs/pkgs/tools/networking/acme-client/default.nix
index 6de95b34e627..728fde4b1e45 100644
--- a/nixpkgs/pkgs/tools/networking/acme-client/default.nix
+++ b/nixpkgs/pkgs/tools/networking/acme-client/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "acme-client";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchurl {
     url = "https://data.wolfsden.cz/sources/acme-client-${version}.tar.xz";
-    sha256 = "sha256-AYI7WfRTb5R0/hDX5Iqkq5nrLZ4gQecAGObSajSA+vw=";
+    sha256 = "sha256-fRSYwQmyV0WapjUJNG0UGO/tUDNTGUraj/BWq/a1QTo=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/networking/aircrack-ng/default.nix b/nixpkgs/pkgs/tools/networking/aircrack-ng/default.nix
index eda64978c63d..33a90636659a 100644
--- a/nixpkgs/pkgs/tools/networking/aircrack-ng/default.nix
+++ b/nixpkgs/pkgs/tools/networking/aircrack-ng/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     description = "Wireless encryption cracking tools";
     homepage = "http://www.aircrack-ng.org/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ domenkozar ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/airfield/default.nix b/nixpkgs/pkgs/tools/networking/airfield/default.nix
index 0976a764a6f2..374a76871cb0 100644
--- a/nixpkgs/pkgs/tools/networking/airfield/default.nix
+++ b/nixpkgs/pkgs/tools/networking/airfield/default.nix
@@ -42,7 +42,8 @@ let
 in stdenv.mkDerivation {
   inherit name version src;
 
-  buildInputs = [ makeWrapper nodejs ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ nodejs ];
 
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/tools/networking/altermime/default.nix b/nixpkgs/pkgs/tools/networking/altermime/default.nix
index c28df4614592..703af40864ae 100644
--- a/nixpkgs/pkgs/tools/networking/altermime/default.nix
+++ b/nixpkgs/pkgs/tools/networking/altermime/default.nix
@@ -1,12 +1,11 @@
-{ lib, stdenv, fetchurl }:
+{ lib, gccStdenv, fetchurl }:
 
-stdenv.mkDerivation rec {
-  baseName = "altermime";
-  name = "${baseName}-${version}";
+gccStdenv.mkDerivation rec {
+  pname = "altermime";
   version = "0.3.11";
 
   src = fetchurl {
-    url = "https://pldaniels.com/${baseName}/${name}.tar.gz";
+    url = "https://pldaniels.com/${pname}/${pname}-${version}.tar.gz";
     sha256 = "15zxg6spcmd35r6xbidq2fgcg2nzyv1sbbqds08lzll70mqx4pj7";
   };
 
@@ -19,14 +18,14 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    sed -i Makefile -e "s@/usr/local@$out@"
-    mkdir -p "$out/bin"
+    mkdir -p $out/bin
+    substituteInPlace Makefile --replace "/usr/local" "$out"
   '';
 
   meta = with lib; {
     description = "MIME alteration tool";
     maintainers = [ maintainers.raskin ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
     license.fullName = "alterMIME LICENSE";
     downloadPage = "https://pldaniels.com/altermime/";
   };
diff --git a/nixpkgs/pkgs/tools/networking/argus-clients/default.nix b/nixpkgs/pkgs/tools/networking/argus-clients/default.nix
index ead19b17926b..cd935a5f5d7d 100644
--- a/nixpkgs/pkgs/tools/networking/argus-clients/default.nix
+++ b/nixpkgs/pkgs/tools/networking/argus-clients/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libpcap, bison, flex, cyrus_sasl, tcp_wrappers, pkg-config, perl }:
+{ lib, stdenv, fetchurl, libpcap, bison, flex, cyrus_sasl, tcp_wrappers, pkg-config, perl, libtirpc, libnsl }:
 
 stdenv.mkDerivation rec {
   pname = "argus-clients";
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "1c9vj6ma00gqq9h92fg71sxcsjzz912166sdg90ahvnmvmh3l1rj";
   };
 
-  patchPhase = ''
+  NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
+
+  postPatch = ''
     for file in ./examples/*/*.pl; do
       substituteInPlace $file \
         --subst-var-by PERLBIN ${perl}/bin/perl
@@ -19,7 +21,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-perl=${perl}/bin/perl" ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libpcap bison cyrus_sasl tcp_wrappers flex ];
+  buildInputs = [ libpcap bison cyrus_sasl tcp_wrappers flex libnsl ];
 
   meta = with lib; {
     description = "Clients for ARGUS";
diff --git a/nixpkgs/pkgs/tools/networking/assh/default.nix b/nixpkgs/pkgs/tools/networking/assh/default.nix
index 3995fc295d10..7d3c662b368f 100644
--- a/nixpkgs/pkgs/tools/networking/assh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/assh/default.nix
@@ -1,20 +1,29 @@
-{ lib, buildGoModule, fetchFromGitHub, openssh, makeWrapper }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, openssh
+, makeWrapper
+}:
 
 buildGoModule rec {
   pname = "assh";
-  version = "2.11.0";
+  version = "2.11.3";
 
   src = fetchFromGitHub {
     repo = "advanced-ssh-config";
     owner = "moul";
     rev = "v${version}";
-    sha256 = "sha256-/StB5yee9sbkebuJt6JDI+bp52NG0bBhprzmdepL+ek=";
+    sha256 = "sha256-NH7Dmqsu7uRhKWGFHBnh5GGqsNFOijDxsc+ATt28jtY=";
   };
 
   vendorSha256 = "sha256-6OAsO7zWAgPfQWD9k+nYH7hnDDUlKIjTB61ivvoubn0=";
 
   doCheck = false;
 
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X moul.io/assh/v2/pkg/version.Version=${version}")
+  '';
+
   nativeBuildInputs = [ makeWrapper ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/networking/atftp/default.nix b/nixpkgs/pkgs/tools/networking/atftp/default.nix
index 0038a5e2e7f8..0e76cb94346b 100644
--- a/nixpkgs/pkgs/tools/networking/atftp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/atftp/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-08nNDZcd/Hhtel9AVcNdTmaq/IECrANHPvIlvfftsmo=";
   };
 
-  buildInputs = [ readline tcp_wrappers pcre makeWrapper gcc ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ readline tcp_wrappers pcre gcc ];
 
   # Expects pre-GCC5 inline semantics
   NIX_CFLAGS_COMPILE = "-std=gnu89";
diff --git a/nixpkgs/pkgs/tools/networking/boundary/default.nix b/nixpkgs/pkgs/tools/networking/boundary/default.nix
index 6c653125c33a..50b3fa07782d 100644
--- a/nixpkgs/pkgs/tools/networking/boundary/default.nix
+++ b/nixpkgs/pkgs/tools/networking/boundary/default.nix
@@ -1,32 +1,43 @@
 { stdenv, lib, fetchzip }:
 
-let
-  inherit (stdenv.hostPlatform) system;
-  suffix = {
-    x86_64-linux = "linux_amd64";
-    aarch64-linux = "linux_arm64";
-    x86_64-darwin = "darwin_amd64";
-  }."${system}" or (throw "Unsupported system: ${system}");
-  fetchsrc = version: sha256: fetchzip {
-      url = "https://releases.hashicorp.com/boundary/${version}/boundary_${version}_${suffix}.zip";
-      sha256 = sha256."${system}";
-    };
-in
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.1.5";
+  version = "0.1.8";
 
-  src = fetchsrc version {
-    x86_64-linux = "sha256-A8dfmFjvOHDwotCyRq9QQ9uHJIkq1JkIwtHsqDqTSNo=";
-    aarch64-linux = "sha256-i2qc4bmoSzUwNCQmnXLFQ+W4VZjVwXzEBSF3NeTju3M=";
-    x86_64-darwin = "sha256-lKGTpS2TmgxFdjUsBXKg8Mu6oJA0VidHc/noWWEuUVo=";
-  };
+  src =
+    let
+      inherit (stdenv.hostPlatform) system;
+      suffix = {
+        x86_64-linux = "linux_amd64";
+        aarch64-linux = "linux_arm64";
+        x86_64-darwin = "darwin_amd64";
+      }.${system} or (throw "Unsupported system: ${system}");
+      fetchsrc = version: sha256: fetchzip {
+        url = "https://releases.hashicorp.com/boundary/${version}/boundary_${version}_${suffix}.zip";
+        sha256 = sha256.${system};
+      };
+    in
+    fetchsrc version {
+      x86_64-linux = "sha256-CZueZqN1XoSmqOsocGwUoIZ5878uSHFYW2KDURWRHhM=";
+      aarch64-linux = "sha256-/pl9MzR4GFjiefc7Sde+jTGi/QaY3U/An8J5+KQR/68=";
+      x86_64-darwin = "sha256-kkqROFXvEpxRySByGtmGtFJPBr5Dw3BOPQ+bArqLxAA=";
+    };
 
   dontConfigure = true;
   dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
     install -D boundary $out/bin/boundary
+    runHook postInstall
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/boundary --help
+    $out/bin/boundary version
+    runHook postInstallCheck
   '';
 
   dontPatchELF = true;
diff --git a/nixpkgs/pkgs/tools/networking/bud/default.nix b/nixpkgs/pkgs/tools/networking/bud/default.nix
index 724d25d49f93..7a4bd5adcba0 100644
--- a/nixpkgs/pkgs/tools/networking/bud/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bud/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchgit, python, gyp, util-linux }:
+{ stdenv, lib, fetchgit, python2, util-linux }:
 
 stdenv.mkDerivation {
   pname = "bud";
@@ -11,10 +11,12 @@ stdenv.mkDerivation {
     sha256 = "08yr6l4lc2m6rng06253fcaznf6sq0v053wfr8bbym42c32z0xdh";
   };
 
-  buildInputs = [
-    python gyp
+  nativeBuildInputs = [
+    python2 python2.pkgs.gyp
   ] ++ lib.optional stdenv.isLinux util-linux;
 
+  strictDeps = true;
+
   buildPhase = ''
     python ./gyp_bud -f make
     make -C out
diff --git a/nixpkgs/pkgs/tools/networking/cadaver/configure.patch b/nixpkgs/pkgs/tools/networking/cadaver/configure.patch
new file mode 100644
index 000000000000..b618099b371a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/cadaver/configure.patch
@@ -0,0 +1,20 @@
+--- a/configure.orig
++++ b/configure
+@@ -9595,7 +9595,7 @@ fi
+ $as_echo "$ne_cv_lib_neon" >&6; }
+     if test "$ne_cv_lib_neon" = "yes"; then
+        ne_cv_lib_neonver=no
+-       for v in 27 28 29; do
++       for v in 27 28 29 30 31; do
+           case $ne_libver in
+           0.$v.*) ne_cv_lib_neonver=yes ;;
+           esac
+@@ -10328,7 +10328,7 @@ fi
+ $as_echo "$ne_cv_lib_neon" >&6; }
+     if test "$ne_cv_lib_neon" = "yes"; then
+        ne_cv_lib_neonver=no
+-       for v in 27 28 29; do
++       for v in 27 28 29 30 31; do
+           case $ne_libver in
+           0.$v.*) ne_cv_lib_neonver=yes ;;
+           esac
diff --git a/nixpkgs/pkgs/tools/networking/cadaver/default.nix b/nixpkgs/pkgs/tools/networking/cadaver/default.nix
index 84265d3f4b7e..70c7972bd65f 100644
--- a/nixpkgs/pkgs/tools/networking/cadaver/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cadaver/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, openssl, readline }:
+{ lib, stdenv, fetchurl, fetchpatch, neon, pkg-config, readline, zlib}:
 
 stdenv.mkDerivation rec {
   name = "cadaver-0.23.3";
@@ -14,11 +14,15 @@ stdenv.mkDerivation rec {
       name = "disable-sslv2.patch";
       sha256 = "1qx65hv584wdarks51yhd3y38g54affkphm5wz27xiz4nhmbssrr";
     })
+    # Cadaver also works with newer versions of neon than stated
+    # in the configure script
+    ./configure.patch
   ];
 
   configureFlags = [ "--with-ssl" "--with-readline" ];
 
-  buildInputs = [ openssl readline ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ neon readline zlib ];
 
   meta = with lib; {
     description = "A command-line WebDAV client";
diff --git a/nixpkgs/pkgs/tools/networking/carddav-util/default.nix b/nixpkgs/pkgs/tools/networking/carddav-util/default.nix
index 39728f7e9a07..300e03761a65 100644
--- a/nixpkgs/pkgs/tools/networking/carddav-util/default.nix
+++ b/nixpkgs/pkgs/tools/networking/carddav-util/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, python, pythonPackages, makeWrapper }:
+{ lib, stdenv, fetchgit, python3Packages, makeWrapper }:
 
 stdenv.mkDerivation {
 
@@ -10,9 +10,11 @@ stdenv.mkDerivation {
     sha256 = "0f0raffdy032wlnxfck6ky60r163nhqfbr311y4ry55l60s4497n";
   };
 
-  buildInputs = [makeWrapper];
+  nativeBuildInputs = [ makeWrapper ];
 
-  propagatedBuildInputs = with pythonPackages; [ requests vobject lxml ];
+  propagatedBuildInputs = with python3Packages; [ requests vobject lxml ];
+
+  strictDeps = true;
 
   doCheck = false; # no test
 
@@ -20,7 +22,7 @@ stdenv.mkDerivation {
     mkdir -p $out/bin
     cp $src/carddav-util.py $out/bin
 
-    pythondir="$out/lib/${python.libPrefix}/site-packages"
+    pythondir="$out/lib/${python3Packages.python.sitePackages}"
     mkdir -p "$pythondir"
     cp $src/carddav.py "$pythondir"
   '';
diff --git a/nixpkgs/pkgs/tools/networking/cassowary/default.nix b/nixpkgs/pkgs/tools/networking/cassowary/default.nix
index b918516f926c..527ecfbf98d3 100644
--- a/nixpkgs/pkgs/tools/networking/cassowary/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cassowary/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cassowary";
-  version = "0.12.1";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "rogerwelin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-1so9EMry7U6GfpxgqLpcqC+ZaWAn4qAsnyDZvo0FAZY=";
+    sha256 = "sha256-rQNrxAKf2huY9I6iqdf1iYxgXaQI0LG1Lkrnv1OuJsg=";
   };
 
-  vendorSha256 = "sha256-d8JPsHBGkZ/MeoHTCLxi6JeNomER/0veWjqmqGal8eE=";
+  vendorSha256 = "sha256-hGpiL88x2roFEjJJM4CKyt3k66VK1pEnpOwvhDPDp6M=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/ccnet/default.nix b/nixpkgs/pkgs/tools/networking/ccnet/default.nix
deleted file mode 100644
index b8fd06798925..000000000000
--- a/nixpkgs/pkgs/tools/networking/ccnet/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{lib, stdenv, fetchurl, which, autoreconfHook, pkg-config, vala, python, libsearpc, libzdb, libuuid, libevent, sqlite, openssl}:
-
-stdenv.mkDerivation rec {
-  version = "6.1.8";
-  seafileVersion = "6.1.8";
-  pname = "ccnet";
-
-  src = fetchurl {
-    url = "https://github.com/haiwen/ccnet/archive/v${version}.tar.gz";
-    sha256 = "0qlpnrz30ldrqnvbj59d54qdghxpxc5lsq6kf3dw2b93jnzkcmmm";
-  };
-
-  nativeBuildInputs = [ pkg-config which autoreconfHook vala python ];
-  propagatedBuildInputs = [ libsearpc libzdb libuuid libevent sqlite openssl ];
-
-  configureFlags = [ "--enable-server" ];
-
-  meta = with lib; {
-    homepage = "https://github.com/haiwen/ccnet";
-    description = "A framework for writing networked applications in C";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/chisel/default.nix b/nixpkgs/pkgs/tools/networking/chisel/default.nix
index 56868e07688f..5d82a549e889 100644
--- a/nixpkgs/pkgs/tools/networking/chisel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/chisel/default.nix
@@ -1,18 +1,17 @@
 { buildGoModule
 , fetchFromGitHub
 , lib
-, stdenv
 }:
 
 buildGoModule rec {
   pname = "chisel";
-  version = "1.7.4";
+  version = "1.7.6";
 
   src = fetchFromGitHub {
     owner = "jpillora";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-1vg9tJLYbW8pfPpw3gQ15c9Kwj2lFfblMRhOK4yWKb8=";
+    sha256 = "sha256-hUurgwbSUcNZiSi+eVTG/Ija/yxPeWuvEE5pUiG7Dls=";
   };
 
   vendorSha256 = "sha256-GzsQ6LXxe9UQc13XbsYFOWPe0EzlyHechchKc6xDkAc=";
diff --git a/nixpkgs/pkgs/tools/networking/clash/default.nix b/nixpkgs/pkgs/tools/networking/clash/default.nix
index 543c86db307f..ede7dce27248 100644
--- a/nixpkgs/pkgs/tools/networking/clash/default.nix
+++ b/nixpkgs/pkgs/tools/networking/clash/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clash";
-  version = "1.3.5";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "Dreamacro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yTkUGsVwK6nwHUQpYhkPYF/Cf4URrr5ThB67sxq7Ecs=";
+    sha256 = "sha256-ObnlcKTuO/yFNMXLwGvRTLnz18bNquq6dye2qpL7+VM=";
   };
 
-  vendorSha256 = "sha256-J7VGYxX1bH5CeDhpqK9mIbHUekXslImZ+O3wN5Q7kYk=";
+  vendorSha256 = "sha256-6ZQMDXc2NFs6l/DWPPCFJ+c40764hXzFTdi1Pxk1fnU=";
 
   doCheck = false;
 
@@ -23,7 +23,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "A rule-based tunnel in Go";
     homepage = "https://github.com/Dreamacro/clash";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ contrun Br1ght0ne ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/connect/default.nix b/nixpkgs/pkgs/tools/networking/connect/default.nix
index 1f0831fb890c..8b8c0018c66f 100644
--- a/nixpkgs/pkgs/tools/networking/connect/default.nix
+++ b/nixpkgs/pkgs/tools/networking/connect/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "00yld6yinc8s4xv3b8kbvzn2f4rja5dmp6ysv3n4847qn4k60dh7";
   };
 
-  makeFlags = [ "CC=cc" ];      # gcc and/or clang compat
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];      # gcc and/or clang compat
 
   installPhase = ''
     install -D -m ugo=rx connect $out/bin/connect
diff --git a/nixpkgs/pkgs/tools/networking/connman/connman.nix b/nixpkgs/pkgs/tools/networking/connman/connman.nix
index d8380340caea..c6792ecfd3b6 100644
--- a/nixpkgs/pkgs/tools/networking/connman/connman.nix
+++ b/nixpkgs/pkgs/tools/networking/connman/connman.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     # directories flags
-    "--sysconfdir=${placeholder "out"}/etc"
+    "--sysconfdir=/etc"
     "--localstatedir=/var"
     "--with-dbusconfdir=${placeholder "out"}/share"
     "--with-dbusdatadir=${placeholder "out"}/share"
diff --git a/nixpkgs/pkgs/tools/networking/croc/default.nix b/nixpkgs/pkgs/tools/networking/croc/default.nix
index 4a4578a73562..8e9097f2f998 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 = "8.6.7";
+  version = "8.6.12";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+Hsxu/gqMKRWBJT7JqOw8Ck+5fQG0D3wSJBb9fgkPsw=";
+    sha256 = "sha256-Oad0JpeeCpIHfH9e1pTKtrnvZ+eFx3dR5GP6g6piFS0=";
   };
 
-  vendorSha256 = "sha256-ULXC8lVu/TTSzYJ4EpAQvDwntRV0+Vmr8VPaEe54qdA=";
+  vendorSha256 = "sha256-LYMZFaCNlJg+9Hoh2VbY6tMHv6oT7r+JHBcQYpOceRQ=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/dd-agent/5.nix b/nixpkgs/pkgs/tools/networking/dd-agent/5.nix
index c220f24046fc..f40ef295d138 100644
--- a/nixpkgs/pkgs/tools/networking/dd-agent/5.nix
+++ b/nixpkgs/pkgs/tools/networking/dd-agent/5.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchFromGitHub, python
+{ lib, stdenv, fetchFromGitHub, python2
 , unzip, makeWrapper }:
 let
-  python' = python.override {
+  python' = python2.override {
     packageOverrides = self: super: {
       docker = self.buildPythonPackage rec {
         name = "docker-${version}";
@@ -19,10 +19,9 @@ let
           requests
           websocket_client
           ipaddress
-          backports_ssl_match_hostname
           docker_pycreds
           uptime
-        ];
+        ] ++ lib.optionals (self.pythonOlder "3.7") [ backports_ssl_match_hostname ];
 
         # due to flake8
         doCheck = false;
@@ -51,8 +50,8 @@ in stdenv.mkDerivation rec {
 
   patches = [ ./40103-iostat-fix.patch ];
 
+  nativeBuildInputs = [ unzip ];
   buildInputs = [
-    unzip
     makeWrapper
   ] ++ (with python'.pkgs; [
     requests
@@ -83,7 +82,7 @@ in stdenv.mkDerivation rec {
 
     cat > $out/bin/dd-jmxfetch <<EOF
     #!/usr/bin/env bash
-    exec ${python}/bin/python $out/agent/jmxfetch.py $@
+    exec ${python'.interpreter} $out/agent/jmxfetch.py $@
     EOF
     chmod a+x $out/bin/dd-jmxfetch
 
diff --git a/nixpkgs/pkgs/tools/networking/ddclient/default.nix b/nixpkgs/pkgs/tools/networking/ddclient/default.nix
index 51454ac1197c..f62eba66f99b 100644
--- a/nixpkgs/pkgs/tools/networking/ddclient/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ddclient/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, perlPackages, iproute, perl }:
+{ lib, fetchurl, perlPackages, iproute2, perl }:
 
 perlPackages.buildPerlPackage rec {
   pname = "ddclient";
@@ -19,8 +19,8 @@ perlPackages.buildPerlPackage rec {
     touch Makefile.PL
     substituteInPlace ddclient \
       --replace 'in the output of ifconfig' 'in the output of ip addr show' \
-      --replace 'ifconfig -a' '${iproute}/sbin/ip addr show' \
-      --replace 'ifconfig $arg' '${iproute}/sbin/ip addr show $arg' \
+      --replace 'ifconfig -a' '${iproute2}/sbin/ip addr show' \
+      --replace 'ifconfig $arg' '${iproute2}/sbin/ip addr show $arg' \
       --replace '/usr/bin/perl' '${perl}/bin/perl' # Until we get the patchShebangs fixed (issue #55786) we need to patch this manually
   '';
 
diff --git a/nixpkgs/pkgs/tools/networking/dhcp/default.nix b/nixpkgs/pkgs/tools/networking/dhcp/default.nix
index c56ba5a4a661..08b3543c5c04 100644
--- a/nixpkgs/pkgs/tools/networking/dhcp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dhcp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, file, nettools, iputils, iproute, makeWrapper
+{ stdenv, fetchurl, perl, file, nettools, iputils, iproute2, makeWrapper
 , coreutils, gnused, openldap ? null
 , buildPackages, lib
 }:
@@ -20,9 +20,9 @@ stdenv.mkDerivation rec {
       ./set-hostname.patch
     ];
 
-  nativeBuildInputs = [ perl ];
+  nativeBuildInputs = [ perl makeWrapper ];
 
-  buildInputs = [ makeWrapper openldap ];
+  buildInputs = [ openldap ];
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
       cp client/scripts/linux $out/sbin/dhclient-script
       substituteInPlace $out/sbin/dhclient-script \
-        --replace /sbin/ip ${iproute}/sbin/ip
+        --replace /sbin/ip ${iproute2}/sbin/ip
       wrapProgram "$out/sbin/dhclient-script" --prefix PATH : \
         "${nettools}/bin:${nettools}/sbin:${iputils}/bin:${coreutils}/bin:${gnused}/bin"
     '';
diff --git a/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix b/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
index 5bc56b9e03e4..cc1bad106f75 100644
--- a/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
@@ -24,7 +24,8 @@ stdenv.mkDerivation rec {
 
   patches = [
     (fetchpatch {
-      url = "https://roy.marples.name/cgit/dhcpcd.git/patch/?id=114870290a8d3d696bc4049c32eef3eed03d6070";
+      name = "?id=114870290a8d3d696bc4049c32eef3eed03d6070";
+      url = "https://roy.marples.name/git/dhcpcd/commitdiff_plain/114870290a8d3d696bc4049c32eef3eed03d6070";
       sha256 = "0kzpwjh2gzvl5lvlnw6lis610p67nassk3apns68ga2pyxlky8qb";
     })
   ];
diff --git a/nixpkgs/pkgs/tools/networking/dhcping/default.nix b/nixpkgs/pkgs/tools/networking/dhcping/default.nix
index d4255d46096a..f1f8cd8b5e4b 100644
--- a/nixpkgs/pkgs/tools/networking/dhcping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dhcping/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.mavetju.org/unix/general.php";
     license = licenses.bsd2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix b/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
index d92408b36690..a9e4b1390a15 100644
--- a/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, dbus, nettle, fetchpatch
-, libidn, libnetfilter_conntrack }:
+, libidn, libnetfilter_conntrack, buildPackages }:
 
 with lib;
 let
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "dnsmasq";
-  version = "2.83";
+  version = "2.84";
 
   src = fetchurl {
     url = "http://www.thekelleys.org.uk/dnsmasq/${pname}-${version}.tar.xz";
-    sha256 = "1sjamz1v588qf35m8z6wcqkjk5w12bqhj7d7p48dj8jyn3lgghgz";
+    sha256 = "sha256-YDGVxktzE3YJsH4QJK4LN/ZSsvX+Rn3OZphbPRhQBQw=";
   };
 
   postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
     "BINDIR=$(out)/bin"
     "MANDIR=$(out)/man"
     "LOCALEDIR=$(out)/share/locale"
+    "PKG_CONFIG=${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config"
   ];
 
   hardeningEnable = [ "pie" ];
diff --git a/nixpkgs/pkgs/tools/networking/dnsperf/default.nix b/nixpkgs/pkgs/tools/networking/dnsperf/default.nix
index e4405670363f..bb63e05c0e14 100644
--- a/nixpkgs/pkgs/tools/networking/dnsperf/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsperf/default.nix
@@ -1,17 +1,17 @@
 { lib, stdenv, fetchurl, fetchFromGitHub, autoreconfHook, pkg-config
-, openssl, ldns
+, openssl, ldns, libck
 }:
 
 stdenv.mkDerivation rec {
   pname = "dnsperf";
-  version = "2.4.0";
+  version = "2.5.2";
 
   # The same as the initial commit of the new GitHub repo (only readme changed).
   src = fetchFromGitHub {
     owner = "DNS-OARC";
     repo = "dnsperf";
     rev = "v${version}";
-    sha256 = "0q7zmzhhx71v41wf6rhyvpil43ch4a9sx21x47wgcg362lca3cbz";
+    sha256 = "0dzi28z7hnyxbibwdsalvd93czf4d5pgmvrbn6hlh52znsn40gbb";
   };
 
   outputs = [ "out" "man" "doc" ];
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     openssl
     ldns # optional for DDNS (but cheap anyway)
+    libck
   ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
index 68a6660db9f3..0b36c76ca62d 100644
--- a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.34.1";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XwXGhFyPsJWHWea3Cj3X6mOV/oseaRAMaEHoppX+WRw=";
+    sha256 = "sha256-VTmQ37kUWlc18p8Qdm2ZFID+t6OIp7y2qU12rXqE6Xo=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/networking/dnsviz/default.nix b/nixpkgs/pkgs/tools/networking/dnsviz/default.nix
new file mode 100644
index 000000000000..ba31aba8d6c2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/dnsviz/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, dnspython
+, m2crypto
+, pygraphviz
+}:
+
+buildPythonApplication rec {
+  pname = "dnsviz";
+  version = "0.9.3";
+
+  src = fetchFromGitHub {
+    owner = "dnsviz";
+    repo = "dnsviz";
+    rev = "v${version}";
+    sha256 = "sha256-QsTYpNaAJiIRUrr2JYjXWOKFihENhAccvmB/DRhX1PA=";
+  };
+
+  patches = [
+    # override DNSVIZ_INSTALL_PREFIX with $out
+    ./fix-path.patch
+  ];
+
+  propagatedBuildInputs = [
+    dnspython
+    m2crypto
+    pygraphviz
+  ];
+
+  postPatch = ''
+    substituteInPlace dnsviz/config.py.in --replace '@out@' $out
+  '';
+
+  # Tests require network connection and /etc/resolv.conf
+  doCheck = false;
+
+  pythonImportsCheck = [ "dnsviz" ];
+
+  meta = with lib; {
+    description = "Tool suite for analyzing and visualizing DNS and DNSSEC behavior";
+    longDescription = ''
+      DNSViz is a tool suite for analysis and visualization of Domain Name System (DNS) behavior,
+      including its security extensions (DNSSEC).
+
+      This tool suite powers the Web-based analysis available at https://dnsviz.net/
+    '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ jojosch ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/dnsviz/fix-path.patch b/nixpkgs/pkgs/tools/networking/dnsviz/fix-path.patch
new file mode 100644
index 000000000000..7906058cd98e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/dnsviz/fix-path.patch
@@ -0,0 +1,18 @@
+diff --git a/dnsviz/config.py.in b/dnsviz/config.py.in
+index 373fde2..007f0f1 100644
+--- a/dnsviz/config.py.in
++++ b/dnsviz/config.py.in
+@@ -26,12 +26,7 @@ from __future__ import unicode_literals
+ import os
+ import sys
+ 
+-_prefix = '__DNSVIZ_INSTALL_PREFIX__'
+-if (hasattr(sys, 'real_prefix') or hasattr(sys, 'base_prefix')) and \
+-        not _prefix:
+-    DNSVIZ_INSTALL_PREFIX = sys.prefix
+-else:
+-    DNSVIZ_INSTALL_PREFIX = _prefix
++DNSVIZ_INSTALL_PREFIX = "@out@"
+ DNSVIZ_SHARE_PATH = os.path.join(DNSVIZ_INSTALL_PREFIX, 'share', 'dnsviz')
+ JQUERY_PATH = __JQUERY_PATH__
+ JQUERY_UI_PATH = __JQUERY_UI_PATH__
diff --git a/nixpkgs/pkgs/tools/networking/dsniff/default.nix b/nixpkgs/pkgs/tools/networking/dsniff/default.nix
index 3a8eab862cb1..8e641ec83e73 100644
--- a/nixpkgs/pkgs/tools/networking/dsniff/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dsniff/default.nix
@@ -53,8 +53,8 @@ in gcc9Stdenv.mkDerivation rec {
     domain = "salsa.debian.org";
     owner = "pkg-security-team";
     repo = "dsniff";
-    rev = "debian/${version}+debian-29";
-    sha256 = "10zz9krf65jsqvlcr72ycp5cd27xwr18jkc38zqp2i4j6x0caj2g";
+    rev = "debian/${version}+debian-30";
+    sha256 = "1fk2k0sfdp5g27i11g0sbzm7al52raz5yr1aibzssnysv7l9xgzh";
     name = "dsniff.tar.gz";
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/ferm/default.nix b/nixpkgs/pkgs/tools/networking/ferm/default.nix
index f344dec61868..29f9481fe328 100644
--- a/nixpkgs/pkgs/tools/networking/ferm/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ferm/default.nix
@@ -3,12 +3,12 @@
 let
   inherit (lib.versions) majorMinor;
 in stdenv.mkDerivation rec {
-  version = "2.5.1";
+  version = "2.6";
   pname = "ferm";
 
   src = fetchurl {
     url = "http://ferm.foo-projects.org/download/${majorMinor version}/ferm-${version}.tar.xz";
-    sha256 = "0awl9s243sxgayr2fcmfks8xydhrmb9gy8bd9sfq738dgq7vybjb";
+    sha256 = "sha256-aJVBRl58Bzy9YEyc0Y8RPDHAtBuxJhRyalmxfkQFiIU=";
   };
 
   # perl is used at build time to gather the ferm version.
diff --git a/nixpkgs/pkgs/tools/networking/findomain/default.nix b/nixpkgs/pkgs/tools/networking/findomain/default.nix
index 480a64127cae..a32e98ca18ac 100644
--- a/nixpkgs/pkgs/tools/networking/findomain/default.nix
+++ b/nixpkgs/pkgs/tools/networking/findomain/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "findomain";
-  version = "3.0.1";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "Edu4rdSHL";
     repo = pname;
     rev = version;
-    sha256 = "sha256-eM3XTZ/Y0Kk5bdC+xskS/btGEVrC50342YBYJdXAlDg=";
+    sha256 = "sha256-uv1boI9iaBeobo/58Di4oslh1eGLuK9HR5EwQQeWn+0=";
   };
 
-  cargoSha256 = "sha256-U3WXb6qGGshaWJ3GIC+c3W9Y8Cz0O23J7mVojCwitlk=";
+  cargoSha256 = "sha256-31OD/sv4br9cdBNqNGr4McypSGkBbKs7b7H1u7mFt3o=";
 
   nativeBuildInputs = [ installShellFiles perl ];
   buildInputs = lib.optional stdenv.isDarwin Security;
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "The fastest and cross-platform subdomain enumerator";
     homepage = "https://github.com/Edu4rdSHL/findomain";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ Br1ght0ne ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/flvstreamer/default.nix b/nixpkgs/pkgs/tools/networking/flvstreamer/default.nix
index 869cd46b3307..d31751e7d5ca 100644
--- a/nixpkgs/pkgs/tools/networking/flvstreamer/default.nix
+++ b/nixpkgs/pkgs/tools/networking/flvstreamer/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildPhase = ''
-    make CC=cc posix
+    make CC=${stdenv.cc.targetPrefix}cc posix
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/networking/frp/default.nix b/nixpkgs/pkgs/tools/networking/frp/default.nix
index bc92d465699f..871dd5ee5bd9 100644
--- a/nixpkgs/pkgs/tools/networking/frp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/frp/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "frp";
-  version = "0.35.1";
+  version = "0.36.1";
 
   src = fetchFromGitHub {
     owner = "fatedier";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-QnD8Yo1GLlOuCnYgzAIGW8JQ5yihmAZGqDFJ412L+W0=";
+    sha256 = "sha256-oOq5Y/6n7VHU9WPjnt+moVWZgo8mQl6Jd8daLJ2/pSQ=";
   };
 
-  vendorSha256 = "sha256-odZPXLn5la2x9QIlT3g7+Rxb9tXGhjTycEvJPUPbM2s=";
+  vendorSha256 = "sha256-Q4ZwCH/RTa8cLtSg06s1S790MdZLgfWOvaD+WAt/RBM=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/getmail/default.nix b/nixpkgs/pkgs/tools/networking/getmail/default.nix
index 4e20cbe74410..44481802cc08 100644
--- a/nixpkgs/pkgs/tools/networking/getmail/default.nix
+++ b/nixpkgs/pkgs/tools/networking/getmail/default.nix
@@ -19,7 +19,7 @@ python2Packages.buildPythonApplication rec {
 
   meta = {
     description = "A program for retrieving mail";
-    maintainers = [ lib.maintainers.raskin lib.maintainers.domenkozar ];
+    maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.linux;
 
     homepage = "http://pyropus.ca/software/getmail/";
diff --git a/nixpkgs/pkgs/tools/networking/getmail6/default.nix b/nixpkgs/pkgs/tools/networking/getmail6/default.nix
index 40be3d2944a4..e6f3a2f10887 100644
--- a/nixpkgs/pkgs/tools/networking/getmail6/default.nix
+++ b/nixpkgs/pkgs/tools/networking/getmail6/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, python3Packages, lib }:
+{ fetchFromGitHub, python3Packages, lib }:
 
 python3Packages.buildPythonApplication rec {
   pname = "getmail6";
-  version = "6.14";
+  version = "6.15";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1a3bw4wwdapd9n051dgwqldd8gwiipb5shaz08qwp1jndpvylm7d";
+    sha256 = "0cvwvlhilrqlcvza06lsrm5l1yazzvym3s5kcjxcm9cminfaf4qb";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/networking/gmvault/default.nix b/nixpkgs/pkgs/tools/networking/gmvault/default.nix
deleted file mode 100644
index 31b91c01c2d6..000000000000
--- a/nixpkgs/pkgs/tools/networking/gmvault/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ pkgs, fetchurl, pythonPackages }:
-
-pythonPackages.buildPythonApplication rec {
-  version = "1.9.1";
-  pname = "gmvault";
-
-  src = fetchurl {
-    url = "https://bitbucket.org/gaubert/gmvault-official-download/downloads/gmvault-v${version}-src.tar.gz";
-    name = "${pname}-${version}.tar.bz";
-    sha256 = "0ffp8df3gdf6lf3pj75hzsmxmvmscppb6bjda58my1n4ppxp1rji";
-  };
-
-  doCheck = false;
-
-  propagatedBuildInputs = with pythonPackages; [ gdata IMAPClient Logbook chardet ];
-
-  startScript = ./gmvault.py;
-
-  patchPhase = ''
-    cat ${startScript} > etc/scripts/gmvault
-    chmod +x etc/scripts/gmvault
-    substituteInPlace setup.py --replace "==" ">="
-    substituteInPlace setup.py --replace "argparse" ""
-  '';
-
-  meta = {
-    description = "Backup and restore your gmail account";
-    homepage = "http://gmvault.org";
-    license = pkgs.lib.licenses.agpl3Plus;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/gmvault/gmvault.py b/nixpkgs/pkgs/tools/networking/gmvault/gmvault.py
deleted file mode 100644
index 127036577f38..000000000000
--- a/nixpkgs/pkgs/tools/networking/gmvault/gmvault.py
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env python
-
-import gmv.gmv_cmd as runner
-runner.bootstrap_run()
diff --git a/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix b/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix
index c989f36da3d9..0c8505c7001e 100644
--- a/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-shadowsocks2";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "shadowsocks";
     repo = "go-shadowsocks2";
     rev = "v${version}";
-    sha256 = "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi";
+    sha256 = "sha256-ouJGrVribymak4SWaLbGhlp41iuw07VdxCypoBr1hWA=";
   };
 
-  vendorSha256 = "0iyak8af708h3rdrslndladbcjrix35j3rlhpsb8ljchqp09lksg";
+  vendorSha256 = "sha256-RrHksWET5kicbdQ5HRDWhNxx4rTi2zaVeaPoLdg4uQw=";
 
   meta = with lib; {
     description = "Fresh implementation of Shadowsocks in Go";
diff --git a/nixpkgs/pkgs/tools/networking/gobgp/default.nix b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
index 8c0e093f9dd1..d48234f8dc75 100644
--- a/nixpkgs/pkgs/tools/networking/gobgp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gobgp";
-  version = "2.23.0";
+  version = "2.26.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "0r7w1c3rh0wnsrhdpzr2fp1aqdqafrb42f2hra6xwwspr092ixq0";
+    sha256 = "sha256-sQmTIjBvCzd8ZXAayhPdRSRwBovH8BFRwazusSE52IE=";
   };
 
-  vendorSha256 = "0dmd4r6x76jn8pyvp47x4llzc2wij5m9lchgyaagcb5sfdgbns9x";
+  vendorSha256 = "sha256-PWm7XnO6LPaU8g8ymmqRkQv2KSX9kLv9RVaa000mrTY=";
 
   postConfigure = ''
     export CGO_ENABLED=0
diff --git a/nixpkgs/pkgs/tools/networking/gping/default.nix b/nixpkgs/pkgs/tools/networking/gping/default.nix
index 329302ae35d2..33ea36da38a4 100644
--- a/nixpkgs/pkgs/tools/networking/gping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gping/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gping";
-  version = "1.2.0-post";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "orf";
     repo = "gping";
     rev = "v${version}";
-    sha256 = "0h4cd36lrhr64p3m2l7yvkq22h8fzzm3g61m39d303s1viibm6dg";
+    sha256 = "sha256-lApm1JLXNjDKLj6zj25OaZDVp7lLW3qyrDsvJrudl8I=";
   };
 
-  cargoSha256 = "0aadalgs5p7wqbbkidm49ccfl716xairb4pirrgm3749zdg55bi9";
+  cargoSha256 = "sha256-2PxhtAqROgufVGGH7VtEJJU6Sa2OrGbbMVRUWYbAD0Q=";
 
   meta = with lib; {
     description = "Ping, but with a graph";
diff --git a/nixpkgs/pkgs/tools/networking/gvpe/default.nix b/nixpkgs/pkgs/tools/networking/gvpe/default.nix
index 788d61e9ca95..59748f6f9676 100644
--- a/nixpkgs/pkgs/tools/networking/gvpe/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gvpe/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, openssl, gmp, zlib, iproute, nettools }:
+{ lib, stdenv, fetchurl, openssl, gmp, zlib, iproute2, nettools }:
 
 stdenv.mkDerivation rec {
   pname = "gvpe";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     ];
 
   preBuild = ''
-    sed -e 's@"/sbin/ifconfig.*"@"${iproute}/sbin/ip link set $IFNAME address $MAC mtu $MTU"@' -i src/device-linux.C
+    sed -e 's@"/sbin/ifconfig.*"@"${iproute2}/sbin/ip link set $IFNAME address $MAC mtu $MTU"@' -i src/device-linux.C
     sed -e 's@/sbin/ifconfig@${nettools}/sbin/ifconfig@g' -i src/device-*.C
   '';
 
diff --git a/nixpkgs/pkgs/tools/networking/haproxy/default.nix b/nixpkgs/pkgs/tools/networking/haproxy/default.nix
index 6ff8ba096b44..41f55e19abf2 100644
--- a/nixpkgs/pkgs/tools/networking/haproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/haproxy/default.nix
@@ -11,11 +11,11 @@ assert usePcre -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "haproxy";
-  version = "2.3.5";
+  version = "2.3.7";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${lib.versions.majorMinor version}/src/${pname}-${version}.tar.gz";
-    sha256 = "sha256-eSRTlTC79VWCnH9Yhr4Lf8+NnI/+CGe3AQvrZwq/vks=";
+    sha256 = "sha256-Mbp6zQ14NnxxtW5Kh8nxHNI1/FYCvFuEaQd5Eg4KMFs=";
   };
 
   buildInputs = [ openssl zlib ]
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     "USE_GETADDRINFO=1"
   ] ++ lib.optionals withPrometheusExporter [
     "EXTRA_OBJS=contrib/prometheus-exporter/service-prometheus.o"
-  ] ++ lib.optional stdenv.isDarwin "CC=cc";
+  ] ++ [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/tools/networking/httperf/default.nix b/nixpkgs/pkgs/tools/networking/httperf/default.nix
index f5c888dc4bb6..ea567f10d488 100644
--- a/nixpkgs/pkgs/tools/networking/httperf/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httperf/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/httperf/httperf";
     maintainers = with maintainers; [ nand0p ];
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/networking/httpie/default.nix b/nixpkgs/pkgs/tools/networking/httpie/default.nix
index a323087575bf..a7ecabe8e627 100644
--- a/nixpkgs/pkgs/tools/networking/httpie/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httpie/default.nix
@@ -17,6 +17,8 @@ python3Packages.buildPythonApplication rec {
 
   outputs = [ "out" "doc" "man" ];
 
+  nativeBuildInputs = [ docutils ];
+
   propagatedBuildInputs = with python3Packages; [ pygments requests requests-toolbelt setuptools ];
 
   checkInputs = with python3Packages; [
@@ -49,7 +51,7 @@ python3Packages.buildPythonApplication rec {
     sed -e 's/^|build|//g' -i README.rst
 
     toHtml() {
-      ${docutils}/bin/rst2html5 \
+      rst2html5 \
         --strip-elements-with-class=no-web \
         --title=http \
         --no-generator \
@@ -63,7 +65,7 @@ python3Packages.buildPythonApplication rec {
     toHtml CHANGELOG.rst $docdir/html/CHANGELOG.html
     toHtml CONTRIBUTING.rst $docdir/html/CONTRIBUTING.html
 
-    ${docutils}/bin/rst2man \
+    rst2man \
       --strip-elements-with-class=no-web \
       --title=http \
       --no-generator \
diff --git a/nixpkgs/pkgs/tools/networking/httpstat/default.nix b/nixpkgs/pkgs/tools/networking/httpstat/default.nix
index 27c2a145a659..be4a8f2a168d 100644
--- a/nixpkgs/pkgs/tools/networking/httpstat/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httpstat/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, curl, pythonPackages, glibcLocales }:
+{ lib, fetchFromGitHub, curl, python3Packages, glibcLocales }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "httpstat";
   version = "1.3.1";
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/tools/networking/i2pd/default.nix b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
index ab2159520918..7f27efc87305 100644
--- a/nixpkgs/pkgs/tools/networking/i2pd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
@@ -9,17 +9,18 @@ assert upnpSupport -> miniupnpc != null;
 
 stdenv.mkDerivation rec {
   pname = "i2pd";
-  version = "2.35.0";
+  version = "2.37.0";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "0bpkgq7srwpjmadsz3nsd14jpr19b1zfrpc074lzjaq15icxxgxc";
+    sha256 = "sha256-//ootg0RZR2vzO702jGXuJ5qGMO49GSG0Lw6dKzGGt8=";
   };
 
   buildInputs = with lib; [ boost zlib openssl ]
     ++ optional upnpSupport miniupnpc;
+
   makeFlags =
     let ynf = a: b: a + "=" + (if b then "yes" else "no"); in
     [ (ynf "USE_AESNI" aesniSupport)
@@ -27,6 +28,8 @@ stdenv.mkDerivation rec {
       (ynf "USE_UPNP"  upnpSupport)
     ];
 
+  enableParallelBuilding = true;
+
   installPhase = ''
     install -D i2pd $out/bin/i2pd
   '';
@@ -36,6 +39,6 @@ stdenv.mkDerivation rec {
     description = "Minimal I2P router written in C++";
     license = licenses.bsd3;
     maintainers = with maintainers; [ edwtjo ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/kapp/default.nix b/nixpkgs/pkgs/tools/networking/kapp/default.nix
index 130763385291..2ff2fd8daec1 100644
--- a/nixpkgs/pkgs/tools/networking/kapp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kapp/default.nix
@@ -1,19 +1,28 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "kapp";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-kapp";
     rev = "v${version}";
-    sha256 = "1i4hpqpbwqb0yg3rx4z733zfslq3svmahfr39ss1ydylsipl02mg";
+    sha256 = "sha256-hYKRfAnpHw8hHT70sOQSGlDj0dgzU0wlZpXA5f2BBfg=";
   };
 
   vendorSha256 = null;
 
   subPackages = [ "cmd/kapp" ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/kapp completion $shell > kapp.$shell
+      installShellCompletion kapp.$shell
+    done
+  '';
+
   meta = with lib; {
     description = "CLI tool that encourages Kubernetes users to manage bulk resources with an application abstraction for grouping";
     homepage = "https://get-kapp.io";
diff --git a/nixpkgs/pkgs/tools/networking/kea/default.nix b/nixpkgs/pkgs/tools/networking/kea/default.nix
index d32c2f5cc57b..ba1be39aebfe 100644
--- a/nixpkgs/pkgs/tools/networking/kea/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kea/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "1.8.2";
+  version = "1.9.5";
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0f8x1blfmbcak0cd21jm1zpz4w8iimldhjilwkwgvmmrxnmsfv28";
+    sha256 = "sha256-MkoG9IhkW+5YfkmkXUkbUl9TQXxWshnxyzdGH979nZE=";
   };
 
   patches = [ ./dont-create-var.patch ];
diff --git a/nixpkgs/pkgs/tools/networking/keepalived/default.nix b/nixpkgs/pkgs/tools/networking/keepalived/default.nix
index 7ce5e0ccbf0d..48fe72d42967 100644
--- a/nixpkgs/pkgs/tools/networking/keepalived/default.nix
+++ b/nixpkgs/pkgs/tools/networking/keepalived/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "keepalived";
-  version = "2.1.5";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "acassen";
     repo = "keepalived";
     rev = "v${version}";
-    sha256 = "0zdh3g491mlc0x4g8q09vq62a7pb8n13a39jnfdgrm9k29khn0sj";
+    sha256 = "sha256-qugEEbOQ4bemzelIOaNFvo3piMZpKUZGjR+4XF8aLHw=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/libreswan/default.nix b/nixpkgs/pkgs/tools/networking/libreswan/default.nix
index 3546e1aa1196..1059baf13ee5 100644
--- a/nixpkgs/pkgs/tools/networking/libreswan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/libreswan/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper,
   pkg-config, systemd, gmp, unbound, bison, flex, pam, libevent, libcap_ng, curl, nspr,
-  bash, iproute, iptables, procps, coreutils, gnused, gawk, nss, which, python,
+  bash, iproute2, iptables, procps, coreutils, gnused, gawk, nss, which, python3,
   docs ? false, xmlto, libselinux, ldns
   }:
 
 let
   binPath = lib.makeBinPath [
-    bash iproute iptables procps coreutils gnused gawk nss.tools which python
+    bash iproute2 iptables procps coreutils gnused gawk nss.tools which python3
   ];
 in
 
@@ -22,6 +22,8 @@ stdenv.mkDerivation rec {
     sha256 = "0bj3g6qwd3ir3gk6hdl9npy3k44shf56vcgjahn30qpmx3z5fsr3";
   };
 
+  strictDeps = true;
+
   # These flags were added to compile v3.18. Try to lift them when updating.
   NIX_CFLAGS_COMPILE = toString [ "-Wno-error=redundant-decls" "-Wno-error=format-nonliteral"
     # these flags were added to build with gcc7
@@ -35,9 +37,15 @@ stdenv.mkDerivation rec {
     "-DNSS_PKCS11_2_0_COMPAT=1"
   ];
 
-  nativeBuildInputs = [ makeWrapper pkg-config ];
-  buildInputs = [ bash iproute iptables systemd coreutils gnused gawk gmp unbound bison flex pam libevent
-                  libcap_ng curl nspr nss python ldns ]
+  nativeBuildInputs = [
+    bison
+    flex
+    makeWrapper
+    pkg-config
+  ];
+
+  buildInputs = [ bash iproute2 iptables systemd coreutils gnused gawk gmp unbound pam libevent
+                  libcap_ng curl nspr nss python3 ldns ]
                 ++ lib.optional docs xmlto
                 ++ lib.optional stdenv.isLinux libselinux;
 
diff --git a/nixpkgs/pkgs/tools/networking/linkchecker/default.nix b/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
index ea96ab94037b..05da924c47e4 100644
--- a/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
+++ b/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
@@ -19,6 +19,7 @@ buildPythonApplication rec {
     ConfigArgParse
     argcomplete
     beautifulsoup4
+    pyopenssl
     dnspython
     pyxdg
     requests
diff --git a/nixpkgs/pkgs/tools/networking/lldpd/default.nix b/nixpkgs/pkgs/tools/networking/lldpd/default.nix
index 18ae090f2119..f34b43f3c32b 100644
--- a/nixpkgs/pkgs/tools/networking/lldpd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/lldpd/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lldpd";
-  version = "1.0.7";
+  version = "1.0.8";
 
   src = fetchurl {
     url = "https://media.luffy.cx/files/lldpd/${pname}-${version}.tar.gz";
-    sha256 = "1qc7k83zpcq27hpjv1lmgrj4la2zy1gspwk5jas43j49siwr3xqx";
+    sha256 = "sha256-mNIA524w9iYsSkSTFIwYQIJ4mDKRRqV6NPjw+SjKPe8=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/networking/lychee/default.nix b/nixpkgs/pkgs/tools/networking/lychee/default.nix
new file mode 100644
index 000000000000..40353ea278cb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/lychee/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "lychee";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "lycheeverse";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "03dsp0384mwr51dkqfl25xba0m17sppabiz7slhxcig89b0ksykm";
+  };
+
+  cargoSha256 = "08y2wpm2qgm2jsy257b2p2anxy4q3bj2kfdr5cnb6wnaz9g4ypq2";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ];
+
+  # Disabled because they currently fail
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A fast, async, resource-friendly link checker written in Rust.";
+    homepage = "https://github.com/lycheeverse/lychee";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ tuxinaut ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/mailutils/default.nix b/nixpkgs/pkgs/tools/networking/mailutils/default.nix
index f4ef542a9607..74d4b61064bd 100644
--- a/nixpkgs/pkgs/tools/networking/mailutils/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mailutils/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mailutils";
-  version = "3.10";
+  version = "3.12";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "17smrxjdgbbzbzakik30vj46q4iib85ksqhb82jr4vjp57akszh9";
+    sha256 = "0n51ng1f8yf5zfsnh8s0pj9bnw6icb2r0y78gl2kzijaghhzlhvd";
   };
 
   postPatch = ''
@@ -24,19 +24,13 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gdbm pam readline ncurses gnutls guile texinfo gnum4 sasl fribidi nettools
+    gdbm pam readline ncurses gnutls guile texinfo gnum4 sasl fribidi
     gss libmysqlclient python3
-  ];
+  ] ++ lib.optionals stdenv.isLinux [ nettools ];
 
   patches = [
     ./fix-build-mb-len-max.patch
     ./path-to-cat.patch
-    # mailquota.c:277: undefined reference to `get_size'
-    # https://lists.gnu.org/archive/html/bug-mailutils/2020-08/msg00002.html
-    (fetchpatch {
-      url = "http://git.savannah.gnu.org/cgit/mailutils.git/patch/?id=37713b42a501892469234b90454731d8d8b7a3e6";
-      sha256 = "1mwj77nxvf4xvqf26yjs59jyksnizj0lmbymbzg4kmqynzq3zjny";
-    })
     # Fix cross-compilation
     # https://lists.gnu.org/archive/html/bug-mailutils/2020-11/msg00038.html
     (fetchpatch {
diff --git a/nixpkgs/pkgs/tools/networking/maxscale/default.nix b/nixpkgs/pkgs/tools/networking/maxscale/default.nix
index c4e16ef8b1ce..bef421a7ab4c 100644
--- a/nixpkgs/pkgs/tools/networking/maxscale/default.nix
+++ b/nixpkgs/pkgs/tools/networking/maxscale/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, glibc
-, bison, curl, flex, gperftools, jansson, jemalloc, kerberos, lua, libmysqlclient
+, bison, curl, flex, gperftools, jansson, jemalloc, libkrb5, lua, libmysqlclient
 , ncurses, openssl, pcre, pcre2, perl, rabbitmq-c, sqlite, tcl
 , libaio, libedit, libtool, libui, libuuid, zlib
 }:
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [
-    bison curl flex gperftools jansson jemalloc kerberos lua libmysqlclient
+    bison curl flex gperftools jansson jemalloc libkrb5 lua libmysqlclient
     ncurses openssl pcre pcre2 perl rabbitmq-c sqlite tcl
     libaio libedit libtool libui libuuid zlib
   ];
diff --git a/nixpkgs/pkgs/tools/networking/minio-client/default.nix b/nixpkgs/pkgs/tools/networking/minio-client/default.nix
index 130a7a18ae02..70b663edded5 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 = "2021-02-10T07-32-57Z";
+  version = "2021-03-23T05-46-11Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-dwgQ322KV1aR1RYSowHkb7Q0Pn7vuiV6Me1s6cMyaEs=";
+    sha256 = "sha256-AtE9Zy8tRvcE+gYc0pqJDEFnXL4jSbJ4b6l3ZOe69Y4=";
   };
 
-  vendorSha256 = "sha256-MXCZZZ7NGDu8NMBzfIiNdRduvj7d7nboN2r8ObGx4dQ=";
+  vendorSha256 = "sha256-cIr8d5jz4EfBFuOBZG4Kz20wSXy1Cni77V+JR6vLHwQ=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix b/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
index 9642f254838a..05b04cf9484b 100644
--- a/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
@@ -1,9 +1,9 @@
 { stdenv, lib, fetchurl, iptables, libuuid, pkg-config
-, which, iproute, gnused, coreutils, gawk, makeWrapper
+, which, iproute2, gnused, coreutils, gawk, makeWrapper
 }:
 
 let
-  scriptBinEnv = lib.makeBinPath [ which iproute iptables gnused coreutils gawk ];
+  scriptBinEnv = lib.makeBinPath [ which iproute2 iptables gnused coreutils gawk ];
 in
 stdenv.mkDerivation rec {
   name = "miniupnpd-2.1.20190502";
diff --git a/nixpkgs/pkgs/tools/networking/miredo/default.nix b/nixpkgs/pkgs/tools/networking/miredo/default.nix
index 48b6f5dc4cf5..94565db2076f 100644
--- a/nixpkgs/pkgs/tools/networking/miredo/default.nix
+++ b/nixpkgs/pkgs/tools/networking/miredo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, nettools, iproute, judy }:
+{ lib, stdenv, fetchurl, nettools, iproute2, judy }:
 
 stdenv.mkDerivation rec {
   version = "1.2.6";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     substituteInPlace misc/client-hook.bsd \
       --replace '/sbin/route' '${nettools}/bin/route' \
       --replace '/sbin/ifconfig' '${nettools}/bin/ifconfig'
-    substituteInPlace misc/client-hook.iproute --replace '/sbin/ip' '${iproute}/bin/ip'
+    substituteInPlace misc/client-hook.iproute --replace '/sbin/ip' '${iproute2}/bin/ip'
   '';
 
   configureFlags = [ "--with-Judy" ];
diff --git a/nixpkgs/pkgs/tools/networking/moodle-dl/default.nix b/nixpkgs/pkgs/tools/networking/moodle-dl/default.nix
new file mode 100644
index 000000000000..95140467f7a2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/moodle-dl/default.nix
@@ -0,0 +1,34 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "moodle-dl";
+  version = "2.1.2.5";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "1gc4037dwyi48h4vi0bam23rr7pfyn6jrz334radz0r6rk94y8lz";
+  };
+
+  # nixpkgs (and the GitHub upstream for readchar) are missing 2.0.1
+  postPatch = ''
+    substituteInPlace setup.py --replace 'readchar>=2.0.1' 'readchar>=2.0.0'
+  '';
+
+  propagatedBuildInputs = with python3Packages; [
+    sentry-sdk
+    colorama
+    readchar
+    youtube-dl
+    certifi
+    html2text
+    requests
+    slixmpp
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/C0D3D3V/Moodle-Downloader-2";
+    maintainers = [ maintainers.kmein ];
+    description = "A Moodle downloader that downloads course content fast from Moodle";
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/mosh/default.nix b/nixpkgs/pkgs/tools/networking/mosh/default.nix
index 5ddbf24bb6a9..92c241967ae0 100644
--- a/nixpkgs/pkgs/tools/networking/mosh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mosh/default.nix
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "05hjhlp6lk8yjcy59zywpf0r6s0h0b9zxq0lw66dh9x8vxrhaq6s";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ protobuf ncurses zlib makeWrapper openssl bash-completion ]
+  nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper ];
+  buildInputs = [ protobuf ncurses zlib openssl bash-completion ]
     ++ (with perlPackages; [ perl IOTty ])
     ++ lib.optional withUtempter libutempter;
 
diff --git a/nixpkgs/pkgs/tools/networking/mu/default.nix b/nixpkgs/pkgs/tools/networking/mu/default.nix
index 03e19d5cb7a4..4553063929fd 100644
--- a/nixpkgs/pkgs/tools/networking/mu/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mu/default.nix
@@ -1,18 +1,19 @@
 { lib, stdenv, fetchFromGitHub, sqlite, pkg-config, autoreconfHook, pmccabe
-, xapian, glib, gmime3, texinfo , emacs, guile
+, xapian, glib, gmime3, texinfo, emacs, guile
 , gtk3, webkitgtk, libsoup, icu
+, makeWrapper
 , withMug ? false
 , batchSize ? null }:
 
 stdenv.mkDerivation rec {
   pname = "mu";
-  version = "1.4.13";
+  version = "1.4.15";
 
   src = fetchFromGitHub {
     owner  = "djcb";
     repo   = "mu";
     rev    = version;
-    sha256 = "03cp2ppj07xpb0c43d3cr8m9jps07mfm8clmlk03sjbxg1widsh0";
+    sha256 = "sha256-VIUA0W+AmEbvGWatv4maBGILvUTGhBgO3iQtjIc3vG8=";
   };
 
   postPatch = lib.optionalString (batchSize != null) ''
@@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional (!stdenv.isDarwin) guile
     ++ lib.optionals withMug [ gtk3 webkitgtk ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook pmccabe ];
+  nativeBuildInputs = [ pkg-config autoreconfHook pmccabe makeWrapper ];
 
   enableParallelBuilding = true;
 
@@ -37,8 +38,12 @@ stdenv.mkDerivation rec {
       --replace "@abs_top_builddir@" "$out"
   '';
 
-  # Install mug
-  postInstall = lib.optionalString withMug ''
+  # Make sure included scripts can find their dependencies & optionally install mug
+  postInstall = ''
+    wrapProgram "$out/bin/mu" \
+      --prefix LD_LIBRARY_PATH : "$out/lib" \
+      --prefix GUILE_LOAD_PATH : "$out/share/guile/site/2.2"
+  '' + lib.optionalString withMug ''
     for f in mug ; do
       install -m755 toys/$f/$f $out/bin/$f
     done
diff --git a/nixpkgs/pkgs/tools/networking/netboot/default.nix b/nixpkgs/pkgs/tools/networking/netboot/default.nix
index a4737d6baac6..e7d984a798b3 100644
--- a/nixpkgs/pkgs/tools/networking/netboot/default.nix
+++ b/nixpkgs/pkgs/tools/networking/netboot/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, yacc, lzo, db4 }:
+{ lib, stdenv, fetchurl, bison, lzo, db4 }:
 
 stdenv.mkDerivation rec {
   name = "netboot-0.10.2";
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
     sha256 = "09w09bvwgb0xzn8hjz5rhi3aibysdadbg693ahn8rylnqfq4hwg0";
   };
 
-  buildInputs = [ yacc lzo db4 ];
+  buildInputs = [ bison lzo db4 ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix
index 45839eabb0b5..f6c45fc074d4 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix
@@ -11,7 +11,6 @@
 , polkit
 , modemmanager
 , libnma
-, mobile-broadband-provider-info
 , glib-networking
 , gsettings-desktop-schemas
 , libgudev
@@ -26,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "network-manager-applet";
-  version = "1.18.0";
+  version = "1.20.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "12xiy8g8qk18jvxvn78mvq03zvzp06bww49na765jjw0rq541fyx";
+    sha256 = "0lsjkbv66hn7acl2pg9h6hz4b700zzv4cjwrwjvy7043blw0bcla";
   };
 
   mesonFlags = [
@@ -51,6 +50,7 @@ stdenv.mkDerivation rec {
     libgudev
     modemmanager
     jansson
+    glib
     glib-networking
     libappindicator-gtk3
     gnome3.adwaita-icon-theme
@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/network-manager-applet/";
     description = "NetworkManager control applet for GNOME";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ phreedom ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/tools/networking/nfdump/default.nix b/nixpkgs/pkgs/tools/networking/nfdump/default.nix
index 9420f77e6185..1319e7997dde 100644
--- a/nixpkgs/pkgs/tools/networking/nfdump/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nfdump/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , autoconf, automake, libtool, pkg-config
-, bzip2, libpcap, flex, yacc }:
+, bzip2, libpcap, flex, bison }:
 
 let version = "1.6.22"; in
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
     sha256 = "14x2k85ard1kp99hhd90zsmvyw24g03m84rn13gb4grm9gjggzrj";
   };
 
-  nativeBuildInputs = [ autoconf automake flex libtool pkg-config yacc ];
+  nativeBuildInputs = [ autoconf automake flex libtool pkg-config bison ];
   buildInputs = [ bzip2 libpcap ];
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix b/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix
new file mode 100644
index 000000000000..583189f57db2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "oapi-codegen";
+  version = "1.5.6";
+
+  src = fetchFromGitHub {
+    owner = "deepmap";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-edIm1O+LQdmKhH8/5WuSsxVtOcf3VlkObGjIY+30mms=";
+  };
+
+  vendorSha256 = "sha256-lhWnPZavtBEa4A76rvr0xw3L5W6HYK1Uw+PW8z8gWuU=";
+
+  # Tests use network
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Go client and server OpenAPI 3 generator";
+    homepage    = "https://github.com/deepmap/oapi-codegen";
+    license     = licenses.asl20;
+    maintainers = [ maintainers.j4m3s ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/oneshot/default.nix b/nixpkgs/pkgs/tools/networking/oneshot/default.nix
index 0f886fda03c9..48c20643580f 100644
--- a/nixpkgs/pkgs/tools/networking/oneshot/default.nix
+++ b/nixpkgs/pkgs/tools/networking/oneshot/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "oneshot";
-  version = "1.3.1";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "raphaelreyna";
     repo = "oneshot";
     rev = "v${version}";
-    sha256 = "047mncv9abs4xj7bh9lhc3wan37cldjjyrpkis7pvx6zhzml74kf";
+    sha256 = "sha256-UD67xYBb1rvGMSPurte5z2Hcd7+JtXDPbgp3BVBdLuk=";
   };
 
-  vendorSha256 = "1cxr96yrrmz37r542mc5376jll9lqjqm18k8761h9jqfbzmh9rkp";
+  vendorSha256 = "sha256-d+YE618OywSDOWiiULHENFEqzRmFVUFKPuPXnL1JubM=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix b/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
index 6b132fd4b0b5..e02782cccbfd 100644
--- a/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
@@ -8,13 +8,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openfortivpn";
-  version = "1.15.0";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "adrienverge";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qsfgpxg553s8rc9cyrc4k96z0pislxsdxb9wyhp8fdprkak2mw2";
+    sha256 = "sha256-wijP9VGKXlxCAU3xN6+cv9+NGwBS55ql8WsZZ592b/k=";
   };
 
   # we cannot write the config file to /etc and as we don't need the file, so drop it
diff --git a/nixpkgs/pkgs/tools/networking/openresolv/default.nix b/nixpkgs/pkgs/tools/networking/openresolv/default.nix
index bc7db4fc6f36..f486c903c5d6 100644
--- a/nixpkgs/pkgs/tools/networking/openresolv/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openresolv/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-QrMFCOhXoihTXGMeqsk2hi2G7KaMFLXAvzh7oXa5G5c=";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   configurePhase =
     ''
diff --git a/nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix b/nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix
new file mode 100644
index 000000000000..d7359ea0e70c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix
@@ -0,0 +1,50 @@
+{ buildGoModule
+, fetchFromGitHub
+, fetchpatch
+, pkg-config
+, libnetfilter_queue
+, libnfnetlink
+, lib
+}:
+
+buildGoModule rec {
+  pname = "opensnitch";
+  version = "1.3.6";
+
+  src = fetchFromGitHub {
+    owner = "evilsocket";
+    repo = "opensnitch";
+    rev = "v${version}";
+    sha256 = "sha256-Cgo+bVQQeUZuYYhA1WSqlLyQQGAeXbbNno9LS7oNvhI=";
+  };
+
+  patches = [
+    # https://github.com/evilsocket/opensnitch/pull/384 don't require
+    # a configuration file in /etc
+    (fetchpatch {
+      name = "dont-require-config-in-etc.patch";
+      url = "https://github.com/evilsocket/opensnitch/commit/8a3f63f36aa92658217bbbf46d39e6d20b2c0791.patch";
+      sha256 = "sha256-WkwjKTQZppR0nqvRO4xiQoKZ307NvuUwoRx+boIpuTg=";
+    })
+  ];
+
+  modRoot = "daemon";
+
+  postBuild = ''
+    mv $GOPATH/bin/daemon $GOPATH/bin/opensnitchd
+  '';
+
+  vendorSha256 = "sha256-LMwQBFkHg1sWIUITLOX2FZi5QUfOivvrkcl9ELO3Trk=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ libnetfilter_queue libnfnetlink ];
+
+  meta = with lib; {
+    description = "An application firewall";
+    homepage = "https://github.com/evilsocket/opensnitch/wiki";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.raboof ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/opensnitch/ui.nix b/nixpkgs/pkgs/tools/networking/opensnitch/ui.nix
new file mode 100644
index 000000000000..69b26492282d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/opensnitch/ui.nix
@@ -0,0 +1,46 @@
+{ python3Packages
+, fetchFromGitHub
+, wrapQtAppsHook
+, lib
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "opensnitch-ui";
+  version = "1.3.6";
+
+  src = fetchFromGitHub {
+    owner = "evilsocket";
+    repo = "opensnitch";
+    rev = "v${version}";
+    sha256 = "sha256-Cgo+bVQQeUZuYYhA1WSqlLyQQGAeXbbNno9LS7oNvhI=";
+  };
+
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
+  propagatedBuildInputs = with python3Packages; [
+    grpcio-tools
+    pyqt5
+    unidecode
+    unicode-slugify
+    pyinotify
+  ];
+
+  preConfigure = ''
+    cd ui
+  '';
+
+  preCheck = ''
+    export PYTHONPATH=opensnitch:$PYTHONPATH
+  '';
+
+  dontWrapQtApps = true;
+  makeWrapperArgs = [ "\${qtWrapperArgs[@]}" ];
+
+  meta = with lib; {
+    description = "An application firewall";
+    homepage = "https://github.com/evilsocket/opensnitch/wiki";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.raboof ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/openssh/common.nix b/nixpkgs/pkgs/tools/networking/openssh/common.nix
new file mode 100644
index 000000000000..55babb4ca2dc
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/openssh/common.nix
@@ -0,0 +1,122 @@
+{ pname
+, version
+, extraDesc ? ""
+, src
+, extraPatches ? []
+, extraNativeBuildInputs ? []
+, extraMeta ? {}
+}:
+
+{ lib, stdenv
+# This *is* correct, though unusual. as a way of getting krb5-config from the
+# package without splicing See: https://github.com/NixOS/nixpkgs/pull/107606
+, pkgs
+, fetchurl
+, fetchpatch
+, zlib
+, openssl
+, libedit
+, pkg-config
+, pam
+, etcDir ? null
+, withKerberos ? true
+, libkrb5
+, libfido2
+, withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl
+, linkOpenssl ? true
+}:
+
+with lib;
+stdenv.mkDerivation rec {
+  inherit pname version src;
+
+  patches = [
+    ./locale_archive.patch
+
+    # See discussion in https://github.com/NixOS/nixpkgs/pull/16966
+    ./dont_create_privsep_path.patch
+  ] ++ extraPatches;
+
+  postPatch =
+    # On Hydra this makes installation fail (sometimes?),
+    # and nix store doesn't allow such fancy permission bits anyway.
+    ''
+      substituteInPlace Makefile.in --replace '$(INSTALL) -m 4711' '$(INSTALL) -m 0711'
+    '';
+
+  nativeBuildInputs = [ pkg-config ]
+    # This is not the same as the libkrb5 from the inputs! pkgs.libkrb5 is
+    # needed here to access krb5-config in order to cross compile. See:
+    # https://github.com/NixOS/nixpkgs/pull/107606
+    ++ optional withKerberos pkgs.libkrb5
+    ++ extraNativeBuildInputs;
+  buildInputs = [ zlib openssl libedit ]
+    ++ optional withFIDO libfido2
+    ++ optional withKerberos libkrb5
+    ++ optional stdenv.isLinux pam;
+
+  preConfigure = ''
+    # Setting LD causes `configure' and `make' to disagree about which linker
+    # to use: `configure' wants `gcc', but `make' wants `ld'.
+    unset LD
+  ''
+  # Upstream build system does not support static build, so we fall back
+  # on fragile patching of configure script.
+  #
+  # libedit is found by pkg-config, but without --static flag, required
+  # to get also transitive dependencies for static linkage, hence sed
+  # expression.
+  #
+  # Kerberos can be found either by krb5-config or by fall-back shell
+  # code in openssh's configure.ac. Neither of them support static
+  # build, but patching code for krb5-config is simpler, so to get it
+  # into PATH, libkrb5.dev is added into buildInputs.
+  + optionalString stdenv.hostPlatform.isStatic ''
+    sed -i "s,PKGCONFIG --libs,PKGCONFIG --libs --static,g" configure
+    sed -i 's#KRB5CONF --libs`#KRB5CONF --libs` -lkrb5support -lkeyutils#g' configure
+    sed -i 's#KRB5CONF --libs gssapi`#KRB5CONF --libs gssapi` -lkrb5support -lkeyutils#g' configure
+  '';
+
+  # I set --disable-strip because later we strip anyway. And it fails to strip
+  # properly when cross building.
+  configureFlags = [
+    "--sbindir=\${out}/bin"
+    "--localstatedir=/var"
+    "--with-pid-dir=/run"
+    "--with-mantype=man"
+    "--with-libedit=yes"
+    "--disable-strip"
+    (if stdenv.isLinux then "--with-pam" else "--without-pam")
+  ] ++ optional (etcDir != null) "--sysconfdir=${etcDir}"
+    ++ optional withFIDO "--with-security-key-builtin=yes"
+    ++ optional withKerberos (assert libkrb5 != null; "--with-kerberos5=${libkrb5}")
+    ++ optional stdenv.isDarwin "--disable-libutil"
+    ++ optional (!linkOpenssl) "--without-openssl";
+
+  buildFlags = [ "SSH_KEYSIGN=ssh-keysign" ];
+
+  enableParallelBuilding = true;
+
+  hardeningEnable = [ "pie" ];
+
+  postInstall = ''
+    # Install ssh-copy-id, it's very useful.
+    cp contrib/ssh-copy-id $out/bin/
+    chmod +x $out/bin/ssh-copy-id
+    cp contrib/ssh-copy-id.1 $out/share/man/man1/
+  '';
+
+  installTargets = [ "install-nokeys" ];
+  installFlags = [
+    "sysconfdir=\${out}/etc/ssh"
+  ];
+
+  meta = {
+    description = "An implementation of the SSH protocol${extraDesc}";
+    homepage = "https://www.openssh.com/";
+    changelog = "https://www.openssh.com/releasenotes.html";
+    license = licenses.bsd2;
+    platforms = platforms.unix ++ platforms.windows;
+    maintainers = with maintainers; [ eelco aneeshusa ];
+  } // extraMeta;
+}
diff --git a/nixpkgs/pkgs/tools/networking/openssh/copyid.nix b/nixpkgs/pkgs/tools/networking/openssh/copyid.nix
new file mode 100644
index 000000000000..71baa6a23f1f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/openssh/copyid.nix
@@ -0,0 +1,11 @@
+{ runCommandNoCC, openssh }:
+
+runCommandNoCC "ssh-copy-id-${openssh.version}" {
+  meta = openssh.meta // {
+    description = "A tool to copy SSH public keys to a remote machine";
+    priority = (openssh.meta.priority or 0) - 1;
+  };
+} ''
+  install -Dm 755 {${openssh},$out}/bin/ssh-copy-id
+  install -Dm 644 {${openssh},$out}/share/man/man1/ssh-copy-id.1.gz
+''
diff --git a/nixpkgs/pkgs/tools/networking/openssh/default.nix b/nixpkgs/pkgs/tools/networking/openssh/default.nix
index 17a227c496ae..3ea35daaeb3d 100644
--- a/nixpkgs/pkgs/tools/networking/openssh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openssh/default.nix
@@ -1,141 +1,71 @@
-{ lib, stdenv
-, pkgs
-, fetchurl
-, fetchpatch
-, zlib
-, openssl
-, libedit
-, pkg-config
-, pam
-, autoreconfHook
-, etcDir ? null
-, hpnSupport ? false
-, withKerberos ? true
-, withGssapiPatches ? false
-, kerberos
-, libfido2
-, withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl
-, linkOpenssl ? true
-}:
-
+{ callPackage, fetchurl, fetchpatch, autoreconfHook }:
 let
+  common = opts: callPackage (import ./common.nix opts) {};
+in {
+
+  openssh = common rec {
+    pname = "openssh";
+    version = "8.5p1";
 
-  version = "8.4p1";
+    src = fetchurl {
+      url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
+      sha256 = "09gc8rv7728chxraab85dzkdikaw4aph1wlcwcc9kai9si0kybzm";
+    };
 
-  # **please** update this patch when you update to a new openssh release.
-  gssapiPatch = fetchpatch {
-    name = "openssh-gssapi.patch";
-    url = "https://salsa.debian.org/ssh-team/openssh/raw/debian/1%25${version}-2/debian/patches/gssapi.patch";
-    sha256 = "1z1ckzimlkm1dmr9f5fqjnjg28gsqcwx6xka0klak857548d2lp2";
+    extraPatches = [ ./ssh-keysign-8.5.patch ];
   };
 
-in
-with lib;
-stdenv.mkDerivation rec {
-  pname = "openssh";
-  inherit version;
+  openssh_hpn = common rec {
+    pname = "openssh-with-hpn";
+    version = "8.4p1";
+    extraDesc = " with high performance networking patches";
+
+    src = fetchurl {
+      url = "https://github.com/rapier1/openssh-portable/archive/hpn-KitchenSink-${builtins.replaceStrings [ "." "p" ] [ "_" "_P" ] version}.tar.gz";
+      sha256 = "1x2afjy1isslbg7qlvhhs4zhj2c8q2h1ljz0fc5b4h9pqcm9j540";
+    };
+
+    extraPatches = [
+      ./ssh-keysign-8.4.patch
+
+      # See https://github.com/openssh/openssh-portable/pull/206
+      ./ssh-copy-id-fix-eof.patch
+    ];
+
+    extraNativeBuildInputs = [ autoreconfHook ];
 
-  src = if hpnSupport then
-      fetchurl {
-        url = "https://github.com/rapier1/openssh-portable/archive/hpn-KitchenSink-${replaceStrings [ "." "p" ] [ "_" "_P" ] version}.tar.gz";
-        sha256 = "1x2afjy1isslbg7qlvhhs4zhj2c8q2h1ljz0fc5b4h9pqcm9j540";
-      }
-    else
-      fetchurl {
-        url = "mirror://openbsd/OpenSSH/portable/${pname}-${version}.tar.gz";
-        sha256 = "091b3pxdlj47scxx6kkf4agkx8c8sdacdxx8m1dw1cby80pd40as";
-      };
+    extraMeta.knownVulnerabilities = [
+      "CVE-2021-28041"
+    ];
+  };
 
-  patches =
-    [
-      ./locale_archive.patch
+  openssh_gssapi = common rec {
+    pname = "openssh-with-gssapi";
+    version = "8.4p1";
+    extraDesc = " with GSSAPI support";
 
-      # See discussion in https://github.com/NixOS/nixpkgs/pull/16966
-      ./dont_create_privsep_path.patch
+    src = fetchurl {
+      url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
+      sha256 = "091b3pxdlj47scxx6kkf4agkx8c8sdacdxx8m1dw1cby80pd40as";
+    };
 
-      ./ssh-keysign.patch
+    extraPatches = [
+      ./ssh-keysign-8.4.patch
 
       # See https://github.com/openssh/openssh-portable/pull/206
       ./ssh-copy-id-fix-eof.patch
-    ]
-    ++ optional withGssapiPatches (assert withKerberos; gssapiPatch);
-
-  postPatch =
-    # On Hydra this makes installation fail (sometimes?),
-    # and nix store doesn't allow such fancy permission bits anyway.
-    ''
-      substituteInPlace Makefile.in --replace '$(INSTALL) -m 4711' '$(INSTALL) -m 0711'
-    '';
-
-  nativeBuildInputs = [ pkg-config ]
-    ++ optional (hpnSupport || withGssapiPatches) autoreconfHook
-    ++ optional withKerberos pkgs.kerberos.dev;
-  buildInputs = [ zlib openssl libedit pam ]
-    ++ optional withFIDO libfido2
-    ++ optional withKerberos kerberos;
-
-  preConfigure = ''
-    # Setting LD causes `configure' and `make' to disagree about which linker
-    # to use: `configure' wants `gcc', but `make' wants `ld'.
-    unset LD
-  ''
-  # Upstream build system does not support static build, so we fall back
-  # on fragile patching of configure script.
-  #
-  # libedit is found by pkg-config, but without --static flag, required
-  # to get also transitive dependencies for static linkage, hence sed
-  # expression.
-  #
-  # Kerberos can be found either by krb5-config or by fall-back shell
-  # code in openssh's configure.ac. Neither of them support static
-  # build, but patching code for krb5-config is simpler, so to get it
-  # into PATH, kerberos.dev is added into buildInputs.
-  + optionalString stdenv.hostPlatform.isStatic ''
-    sed -i "s,PKGCONFIG --libs,PKGCONFIG --libs --static,g" configure
-    sed -i 's#KRB5CONF --libs`#KRB5CONF --libs` -lkrb5support -lkeyutils#g' configure
-    sed -i 's#KRB5CONF --libs gssapi`#KRB5CONF --libs gssapi` -lkrb5support -lkeyutils#g' configure
-  '';
-
-  # I set --disable-strip because later we strip anyway. And it fails to strip
-  # properly when cross building.
-  configureFlags = [
-    "--sbindir=\${out}/bin"
-    "--localstatedir=/var"
-    "--with-pid-dir=/run"
-    "--with-mantype=man"
-    "--with-libedit=yes"
-    "--disable-strip"
-    (if pam != null then "--with-pam" else "--without-pam")
-  ] ++ optional (etcDir != null) "--sysconfdir=${etcDir}"
-    ++ optional withFIDO "--with-security-key-builtin=yes"
-    ++ optional withKerberos (assert kerberos != null; "--with-kerberos5=${kerberos}")
-    ++ optional stdenv.isDarwin "--disable-libutil"
-    ++ optional (!linkOpenssl) "--without-openssl";
-
-  buildFlags = [ "SSH_KEYSIGN=ssh-keysign" ];
-
-  enableParallelBuilding = true;
-
-  hardeningEnable = [ "pie" ];
-
-  postInstall = ''
-    # Install ssh-copy-id, it's very useful.
-    cp contrib/ssh-copy-id $out/bin/
-    chmod +x $out/bin/ssh-copy-id
-    cp contrib/ssh-copy-id.1 $out/share/man/man1/
-  '';
-
-  installTargets = [ "install-nokeys" ];
-  installFlags = [
-    "sysconfdir=\${out}/etc/ssh"
-  ];
-
-  meta = {
-    description = "An implementation of the SSH protocol";
-    homepage = "https://www.openssh.com/";
-    changelog = "https://www.openssh.com/releasenotes.html";
-    license = lib.licenses.bsd2;
-    platforms = platforms.unix ++ platforms.windows;
-    maintainers = with maintainers; [ eelco aneeshusa ];
+
+      (fetchpatch {
+        name = "openssh-gssapi.patch";
+        url = "https://salsa.debian.org/ssh-team/openssh/raw/debian/1%25${version}-2/debian/patches/gssapi.patch";
+        sha256 = "1z1ckzimlkm1dmr9f5fqjnjg28gsqcwx6xka0klak857548d2lp2";
+      })
+    ];
+
+    extraNativeBuildInputs = [ autoreconfHook ];
+
+    extraMeta.knownVulnerabilities = [
+      "CVE-2021-28041"
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/openssh/ssh-keysign.patch b/nixpkgs/pkgs/tools/networking/openssh/ssh-keysign-8.4.patch
index 8ef3ad0126aa..8ef3ad0126aa 100644
--- a/nixpkgs/pkgs/tools/networking/openssh/ssh-keysign.patch
+++ b/nixpkgs/pkgs/tools/networking/openssh/ssh-keysign-8.4.patch
diff --git a/nixpkgs/pkgs/tools/networking/openssh/ssh-keysign-8.5.patch b/nixpkgs/pkgs/tools/networking/openssh/ssh-keysign-8.5.patch
new file mode 100644
index 000000000000..67c45b6b7d89
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/openssh/ssh-keysign-8.5.patch
@@ -0,0 +1,24 @@
+diff --git a/pathnames.h b/pathnames.h
+index cb44caa4..354fdf05 100644
+--- a/pathnames.h
++++ b/pathnames.h
+@@ -124,7 +124,7 @@
+ 
+ /* Location of ssh-keysign for hostbased authentication */
+ #ifndef _PATH_SSH_KEY_SIGN
+-#define _PATH_SSH_KEY_SIGN		"/usr/libexec/ssh-keysign"
++#define _PATH_SSH_KEY_SIGN		"ssh-keysign"
+ #endif
+ 
+ /* Location of ssh-pkcs11-helper to support keys in tokens */
+--- a/sshconnect2.c
++++ b/sshconnect2.c
+@@ -2021,7 +2021,7 @@
+ 
+ 		debug3_f("[child] pid=%ld, exec %s",
+ 		    (long)getpid(), _PATH_SSH_KEY_SIGN);
+-		execl(_PATH_SSH_KEY_SIGN, _PATH_SSH_KEY_SIGN, (char *)NULL);
++		execlp(_PATH_SSH_KEY_SIGN, _PATH_SSH_KEY_SIGN, (char *)NULL);
+ 		fatal_f("exec(%s): %s", _PATH_SSH_KEY_SIGN,
+ 		    strerror(errno));
+ 	}
diff --git a/nixpkgs/pkgs/tools/networking/openvpn/default.nix b/nixpkgs/pkgs/tools/networking/openvpn/default.nix
index 3337a5bbb7d1..6b98df215023 100644
--- a/nixpkgs/pkgs/tools/networking/openvpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openvpn/default.nix
@@ -3,20 +3,17 @@
 , pkg-config
 , makeWrapper
 , runtimeShell
-, iproute ? null
+, iproute2
 , lzo
 , openssl
 , pam
 , useSystemd ? stdenv.isLinux
-, systemd ? null
-, util-linux ? null
+, systemd
+, util-linux
 , pkcs11Support ? false
-, pkcs11helper ? null
+, pkcs11helper
 }:
 
-assert useSystemd -> (systemd != null);
-assert pkcs11Support -> (pkcs11helper != null);
-
 with lib;
 let
   # Check if the script needs to have other binaries wrapped when changing this.
@@ -43,13 +40,13 @@ let
 
         buildInputs = [ lzo openssl ]
           ++ optional stdenv.isLinux pam
-          ++ optional withIpRoute iproute
+          ++ optional withIpRoute iproute2
           ++ optional useSystemd systemd
           ++ optional pkcs11Support pkcs11helper;
 
         configureFlags = optionals withIpRoute [
           "--enable-iproute2"
-          "IPROUTE=${iproute}/sbin/ip"
+          "IPROUTE=${iproute2}/sbin/ip"
         ]
         ++ optional useSystemd "--enable-systemd"
         ++ optional pkcs11Support "--enable-pkcs11"
@@ -63,7 +60,7 @@ let
         '' + optionalString useSystemd ''
           install -Dm555 ${update-resolved} $out/libexec/update-systemd-resolved
           wrapProgram $out/libexec/update-systemd-resolved \
-            --prefix PATH : ${makeBinPath [ runtimeShell iproute systemd util-linux ]}
+            --prefix PATH : ${makeBinPath [ runtimeShell iproute2 systemd util-linux ]}
         '';
 
         enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix b/nixpkgs/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix
index 16e97bab2146..2120679fef3e 100644
--- a/nixpkgs/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix
+++ b/nixpkgs/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation {
     sha256 = "16pcyvyhwsx34i0cjkkx906lmrwdd9gvznvqdwlad4ha8l8f8z42";
   };
 
-  buildInputs = [ makeWrapper coreutils gawk util-linux ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ coreutils gawk util-linux ];
 
   installPhase = ''
     install -Dm555 ovpn-learnaddress $out/libexec/openvpn/openvpn-learnaddress
diff --git a/nixpkgs/pkgs/tools/networking/openvpn/update-systemd-resolved.nix b/nixpkgs/pkgs/tools/networking/openvpn/update-systemd-resolved.nix
index 9d8e669fe459..5a34d5a7ffe7 100644
--- a/nixpkgs/pkgs/tools/networking/openvpn/update-systemd-resolved.nix
+++ b/nixpkgs/pkgs/tools/networking/openvpn/update-systemd-resolved.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , makeWrapper
-, iproute, systemd, coreutils, util-linux }:
+, iproute2, systemd, coreutils, util-linux }:
 
 stdenv.mkDerivation rec {
   pname = "update-systemd-resolved";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     wrapProgram $out/libexec/openvpn/update-systemd-resolved \
-      --prefix PATH : ${lib.makeBinPath [ iproute systemd coreutils util-linux ]}
+      --prefix PATH : ${lib.makeBinPath [ iproute2 systemd coreutils util-linux ]}
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/networking/p2p/amule/default.nix b/nixpkgs/pkgs/tools/networking/p2p/amule/default.nix
index 4ab93b7574a7..075d60038d8e 100644
--- a/nixpkgs/pkgs/tools/networking/p2p/amule/default.nix
+++ b/nixpkgs/pkgs/tools/networking/p2p/amule/default.nix
@@ -2,11 +2,8 @@
 , enableDaemon ? false # build amule daemon
 , httpServer ? false # build web interface for the daemon
 , client ? false # build amule remote gui
-, fetchFromGitHub, fetchpatch, stdenv, lib, zlib, wxGTK, perl, cryptopp, libupnp, gettext, libpng ? null
-, autoreconfHook, pkg-config, makeWrapper, libX11 ? null }:
-
-assert httpServer -> libpng != null;
-assert client -> libX11 != null;
+, fetchFromGitHub, stdenv, lib, zlib, wxGTK, perl, cryptopp, libupnp, gettext, libpng
+, autoreconfHook, pkg-config, makeWrapper, libX11 }:
 
 stdenv.mkDerivation rec {
   pname = "amule";
@@ -78,5 +75,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ phreedom ];
     platforms = platforms.unix;
+    # Could not find crypto++ installation or sources.
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/p2p/azureus/default.nix b/nixpkgs/pkgs/tools/networking/p2p/azureus/default.nix
index 6453b2fbb16b..1c72be0c5100 100644
--- a/nixpkgs/pkgs/tools/networking/p2p/azureus/default.nix
+++ b/nixpkgs/pkgs/tools/networking/p2p/azureus/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
     url = "http://tarballs.nixos.org/Azureus2.3.0.6.jar";
     sha256 = "1hwrh3n0b0jbpsdk15zrs7pw175418phhmg6pn4xi1bvilxq1wrd";
   };
-#  buildInputs = [unzip];
+
   inherit jdk swt;
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/networking/pcapfix/default.nix b/nixpkgs/pkgs/tools/networking/pcapfix/default.nix
index c20a19f23a42..ee5212b97508 100644
--- a/nixpkgs/pkgs/tools/networking/pcapfix/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pcapfix/default.nix
@@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
     description = "Repair your broken pcap and pcapng files";
     license = licenses.gpl3;
     maintainers = [ maintainers.ehmry ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/philter/default.nix b/nixpkgs/pkgs/tools/networking/philter/default.nix
index 752f43b3348d..60bd2f8cc7e8 100644
--- a/nixpkgs/pkgs/tools/networking/philter/default.nix
+++ b/nixpkgs/pkgs/tools/networking/philter/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     description = "Mail sorter for Maildirs";
     homepage = "http://philter.sourceforge.net";
     maintainers = with maintainers; [ raskin ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
     license = licenses.gpl2;
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/pixiecore/default.nix b/nixpkgs/pkgs/tools/networking/pixiecore/default.nix
index 6155d411e13b..c8c5ca118dd4 100644
--- a/nixpkgs/pkgs/tools/networking/pixiecore/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pixiecore/default.nix
@@ -23,6 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/danderson/netboot/tree/master/pixiecore";
     license =  lib.licenses.asl20;
     maintainers = with lib.maintainers; [ bbigras danderson ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pixiewps/default.nix b/nixpkgs/pkgs/tools/networking/pixiewps/default.nix
index ad9bfcfb1d10..561daacfd530 100644
--- a/nixpkgs/pkgs/tools/networking/pixiewps/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pixiewps/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/wiire/pixiewps";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.nico202 ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pptp/default.nix b/nixpkgs/pkgs/tools/networking/pptp/default.nix
index 1534d1083f4a..7af9e324f2e0 100644
--- a/nixpkgs/pkgs/tools/networking/pptp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pptp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, perl, ppp, iproute }:
+{ lib, stdenv, fetchurl, perl, ppp, iproute2 }:
 
 stdenv.mkDerivation rec {
   pname = "pptp";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   '';
 
   preConfigure = ''
-    makeFlagsArray=( IP=${iproute}/bin/ip PPPD=${ppp}/sbin/pppd \
+    makeFlagsArray=( IP=${iproute2}/bin/ip PPPD=${ppp}/sbin/pppd \
                      BINDIR=$out/sbin MANDIR=$out/share/man/man8 \
                      PPPDIR=$out/etc/ppp )
   '';
diff --git a/nixpkgs/pkgs/tools/networking/pritunl-ssh/default.nix b/nixpkgs/pkgs/tools/networking/pritunl-ssh/default.nix
new file mode 100644
index 000000000000..586fc780699f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/pritunl-ssh/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, python3 }:
+
+stdenv.mkDerivation rec {
+  pname   = "pritunl-ssh";
+  version = "1.0.1674.4";
+
+  src = fetchFromGitHub {
+    owner = "pritunl";
+    repo = "pritunl-zero-client";
+    rev = version;
+    sha256 = "07z60lipbwm0p7s2bxcij21jid8w4nyh6xk2qq5qdm4acq4k1i88";
+  };
+
+  buildInputs = [ python3 ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install ssh_client.py $out/bin/pritunl-ssh
+    install ssh_host_client.py $out/bin/pritunl-ssh-host
+  '';
+
+  meta = with lib; {
+    description = "Pritunl Zero SSH client";
+    homepage = "https://github.com/pritunl/pritunl-zero-client";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ Thunderbottom ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/privoxy/default.nix b/nixpkgs/pkgs/tools/networking/privoxy/default.nix
index efb57e7d247d..9fce8d7a5f41 100644
--- a/nixpkgs/pkgs/tools/networking/privoxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/privoxy/default.nix
@@ -1,30 +1,45 @@
-{ lib, stdenv, fetchurl, autoreconfHook, zlib, pcre, w3m, man }:
+{ lib, stdenv
+, nixosTests
+, fetchurl, autoreconfHook
+, zlib, pcre, w3m, man
+, mbedtls, brotli
+}:
 
 stdenv.mkDerivation rec {
 
   pname = "privoxy";
-  version = "3.0.31";
+  version = "3.0.32";
 
   src = fetchurl {
     url = "mirror://sourceforge/ijbswa/Sources/${version}%20%28stable%29/${pname}-${version}-stable-src.tar.gz";
-    sha256 = "sha256-B3cpo6rHkiKk6NiKZQ2QKNFv1LDWA42o9fXkcSDQBOs=";
+    sha256 = "sha256-xh3kAIxiRF7Bjx8nBAfL8jcuq6k76szcnjI4uy3v7tc=";
   };
 
   hardeningEnable = [ "pie" ];
 
   nativeBuildInputs = [ autoreconfHook w3m man ];
-  buildInputs = [ zlib pcre ];
+  buildInputs = [ zlib pcre mbedtls brotli ];
 
-  makeFlags = [ "STRIP="];
+  makeFlags = [ "STRIP=" ];
+  configureFlags = [
+    "--with-mbedtls"
+    "--with-brotli"
+    "--enable-external-filters"
+    "--enable-compression"
+  ];
 
   postInstall = ''
-    rm -rf $out/var
+    rm -r $out/var
   '';
 
+  passthru.tests.privoxy = nixosTests.privoxy;
+
   meta = with lib; {
     homepage = "https://www.privoxy.org/";
     description = "Non-caching web proxy with advanced filtering capabilities";
-    license = licenses.gpl2;
+    # When linked with mbedtls, the license becomes GPLv3 (or later), otherwise
+    # GPLv2 (or later). See https://www.privoxy.org/user-manual/copyright.html
+    license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.phreedom ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/proxychains/default.nix b/nixpkgs/pkgs/tools/networking/proxychains/default.nix
index 8eb20538ea91..56a553c0c803 100644
--- a/nixpkgs/pkgs/tools/networking/proxychains/default.nix
+++ b/nixpkgs/pkgs/tools/networking/proxychains/default.nix
@@ -1,27 +1,33 @@
-{ lib, stdenv, fetchFromGitHub } :
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
 stdenv.mkDerivation rec {
   pname = "proxychains";
-  version = "4.2.0";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "haad";
-    repo = "proxychains";
+    repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "015skh3z1jmm8kxbm3nkqv1w56kcvabdmcbmpwzywxr4xnh3x3pc";
+    sha256 = "083xdg6fsn8c2ns93lvy794rixxq8va6jdf99w1z0xi4j7f1nyjw";
   };
 
   postPatch = ''
-    # Temporary work-around; most likely fixed by next upstream release
-    sed -i Makefile -e '/-lpthread/a LDFLAGS+=-ldl'
+    # Suppress compiler warning. Remove it when upstream fix arrives
+    substituteInPlace Makefile --replace "-Werror" "-Werror -Wno-stringop-truncation"
   '';
+
   postInstall = ''
     cp src/proxychains.conf $out/etc
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Proxifier for SOCKS proxies";
     homepage = "http://proxychains.sourceforge.net";
-    license = lib.licenses.gpl2Plus;
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ fab ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/radvd/default.nix b/nixpkgs/pkgs/tools/networking/radvd/default.nix
index ddd196ebe567..de8b9a0a4f1e 100644
--- a/nixpkgs/pkgs/tools/networking/radvd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/radvd/default.nix
@@ -12,6 +12,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config bison flex check ];
   buildInputs = [ libdaemon ];
 
+  # Needed for cross-compilation
+  makeFlags = [
+    "AR=${stdenv.cc.targetPrefix}ar"
+  ];
+
   meta = with lib; {
     homepage = "http://www.litech.org/radvd/";
     description = "IPv6 Router Advertisement Daemon";
diff --git a/nixpkgs/pkgs/tools/networking/redir/default.nix b/nixpkgs/pkgs/tools/networking/redir/default.nix
index af2dfe8040a0..83d52fdf10d2 100644
--- a/nixpkgs/pkgs/tools/networking/redir/default.nix
+++ b/nixpkgs/pkgs/tools/networking/redir/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/troglobit/redir";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ripmime/default.nix b/nixpkgs/pkgs/tools/networking/ripmime/default.nix
index d40c1d10aa7c..0dfeb900c9a8 100644
--- a/nixpkgs/pkgs/tools/networking/ripmime/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ripmime/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "ripmime";
@@ -8,6 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0sj06ibmlzy34n8v0mnlq2gwidy7n2aqcwgjh0xssz3vi941aqc9";
   };
 
+  buildInputs = [ libiconv ];
   preInstall = ''
     sed -i Makefile -e "s@LOCATION=.*@LOCATION=$out@" -e "s@man/man1@share/&@"
     mkdir -p "$out/bin" "$out/share/man/man1"
@@ -19,7 +20,7 @@ stdenv.mkDerivation rec {
     description = "Attachment extractor for MIME messages";
     maintainers = with maintainers; [ raskin ];
     homepage = "http://www.pldaniels.com/ripmime/";
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/tools/networking/rshijack/default.nix b/nixpkgs/pkgs/tools/networking/rshijack/default.nix
index 59558028c01e..e4bb7315a450 100644
--- a/nixpkgs/pkgs/tools/networking/rshijack/default.nix
+++ b/nixpkgs/pkgs/tools/networking/rshijack/default.nix
@@ -18,6 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/kpcyrd/rshijack";
     license = licenses.gpl3;
     maintainers = with maintainers; [ xrelkd ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/s5cmd/default.nix b/nixpkgs/pkgs/tools/networking/s5cmd/default.nix
new file mode 100644
index 000000000000..f4a6c2915be6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/s5cmd/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "s5cmd";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "peak";
+    repo = "s5cmd";
+    rev = "v${version}";
+    sha256 = "sha256-09vBYwnTfLIuu2SPP7DYB+U6sUkQffglIOHNn4+47qQ=";
+  };
+
+  vendorSha256 = null;
+
+  meta = with lib; {
+    homepage = "https://github.com/peak/s5cmd";
+    description = "Parallel S3 and local filesystem execution tool";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tomberek ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/s6-networking/default.nix b/nixpkgs/pkgs/tools/networking/s6-networking/default.nix
index e7dd075df138..be19656f1c2d 100644
--- a/nixpkgs/pkgs/tools/networking/s6-networking/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s6-networking/default.nix
@@ -1,9 +1,8 @@
-{ lib, stdenv, skawarePackages
+{ lib, skawarePackages
 
 # Whether to build the TLS/SSL tools and what library to use
-# acceptable values: "libressl", false
-# TODO: add bearssl
-, sslSupport ? "libressl" , libressl
+# acceptable values: "bearssl", "libressl", false
+, sslSupport ? "bearssl" , libressl, bearssl
 }:
 
 with skawarePackages;
@@ -11,6 +10,7 @@ let
   sslSupportEnabled = sslSupport != false;
   sslLibs = {
     libressl = libressl;
+    bearssl = bearssl;
   };
 
 in
@@ -19,8 +19,8 @@ assert sslSupportEnabled -> sslLibs ? ${sslSupport};
 
 buildPackage {
   pname = "s6-networking";
-  version = "2.4.0.0";
-  sha256 = "1yqykwfl5jnkxgr6skfj5kzd896pknij0hi5m7lj0r18jpfs5zgq";
+  version = "2.4.1.0";
+  sha256 = "023wnayv1gddklnsh3qv7i5jfy2fisbp24wa0nzjg0nfq3p807yc";
 
   description = "A suite of small networking utilities for Unix systems";
 
@@ -58,7 +58,7 @@ buildPackage {
     # remove all s6 executables from build directory
     rm $(find -name "s6-*" -type f -mindepth 1 -maxdepth 1 -executable)
     rm minidentd
-    rm libs6net.* libstls.* libs6tls.*
+    rm libs6net.* libstls.* libs6tls.* libsbearssl.*
 
     mv doc $doc/share/doc/s6-networking/html
   '';
diff --git a/nixpkgs/pkgs/tools/networking/saldl/default.nix b/nixpkgs/pkgs/tools/networking/saldl/default.nix
index e772a74f0992..d02acb3100a7 100644
--- a/nixpkgs/pkgs/tools/networking/saldl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/saldl/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "saldl";
-  version = "40";
+  version = "41";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "19ajci5h5gdnrvwf0l7xy5s58z2di68rrvcmqpsmpp4lfr37rk2l";
+    sha256 = "sha256-PAX2MUyBWWU8kGkaeoCJteidgszh7ipwDJbrLXzVsn0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
index 06d081b745c0..54c5701b8eca 100644
--- a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -1,28 +1,29 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, libsodium, Security }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.8.23";
+  version = "1.10.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    sha256 = "1ylasv33478cgwmr8wrd4705azfzrw495w629ncynamv7z17w3k3";
+    sha256 = "155v63v0wf0ky5nl2f1dvky8n9pdk40l1lqyz8l1i1kjcvvcmj26";
   };
 
-  cargoSha256 = "060k2dil38bx4zb5nnkr3mj6aayginbhr3aqjv0h071q0vlvp05p";
+  cargoSha256 = "1vb6kis54g4lfc9d0h1961dclaqhq019iw509ydcsa1n7bp25caq";
 
-  SODIUM_USE_PKG_CONFIG = 1;
+  RUSTC_BOOTSTRAP = 1;
 
-  buildInputs = [ openssl libsodium ]
-    ++ lib.optionals stdenv.isDarwin [ Security ];
-  nativeBuildInputs = [ pkg-config ];
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices libiconv ];
+
+  checkFlags = [ "--skip=http_proxy" "--skip=udp_tunnel" ];
 
   meta = with lib; {
     homepage = "https://github.com/shadowsocks/shadowsocks-rust";
     description = "A Rust port of shadowsocks";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    broken = stdenv.isAarch64;  # crypto2 crate doesn't build on aarch64
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/shorewall/default.nix b/nixpkgs/pkgs/tools/networking/shorewall/default.nix
index 2456a7607219..f95fc9d92b18 100644
--- a/nixpkgs/pkgs/tools/networking/shorewall/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shorewall/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , gnugrep
 , gnused
-, iproute
+, iproute2
 , ipset
 , iptables
 , perl
@@ -15,7 +15,7 @@
 let
   PATH = lib.concatStringsSep ":"
            [ "${coreutils}/bin"
-             "${iproute}/bin"
+             "${iproute2}/bin"
              "${iptables}/bin"
              "${ipset}/bin"
              "${ebtables}/bin"
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     coreutils
-    iproute
+    iproute2
     ipset
     iptables
     ebtables
diff --git a/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix b/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
index bda3d36c2455..4a0b3c133942 100644
--- a/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "slirp4netns";
-  version = "1.1.8";
+  version = "1.1.9";
 
   src = fetchFromGitHub {
     owner = "rootless-containers";
     repo = "slirp4netns";
     rev = "v${version}";
-    sha256 = "06813k8a1gpakgykz5h75qpdlhrci9r39309n3qqh34ynbjil468";
+    sha256 = "sha256-jUxAkC9nMiDiHKyKtmdtOEyb9jqOEiy5D3NqymluX28=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/networking/snabb/default.nix b/nixpkgs/pkgs/tools/networking/snabb/default.nix
index f65f97ed91d0..affe6577eb80 100644
--- a/nixpkgs/pkgs/tools/networking/snabb/default.nix
+++ b/nixpkgs/pkgs/tools/networking/snabb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, bash, makeWrapper, git, mysql, diffutils, which, coreutils, procps, nettools
+{ lib, stdenv, fetchFromGitHub, bash, makeWrapper, git, mariadb, diffutils, which, coreutils, procps, nettools
 ,supportOpenstack ? true
 }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "1sas9d9kk92mc2wrwgmm0xxz7ycmh388dwvyxf1hy183yvin1nac";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=stringop-truncation" ];
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     done
   '' + optionalString supportOpenstack ''
     # We need a way to pass $PATH to the scripts
-    sed -i '2iexport PATH=${git}/bin:${mysql}/bin:${which}/bin:${procps}/bin:${coreutils}/bin' src/program/snabbnfv/neutron_sync_master/neutron_sync_master.sh.inc
+    sed -i '2iexport PATH=${git}/bin:${mariadb}/bin:${which}/bin:${procps}/bin:${coreutils}/bin' src/program/snabbnfv/neutron_sync_master/neutron_sync_master.sh.inc
     sed -i '2iexport PATH=${git}/bin:${coreutils}/bin:${diffutils}/bin:${nettools}/bin' src/program/snabbnfv/neutron_sync_agent/neutron_sync_agent.sh.inc
   '';
 
@@ -58,6 +58,6 @@ stdenv.mkDerivation rec {
     '';
     platforms = [ "x86_64-linux" ];
     license = licenses.asl20;
-    maintainers = [ maintainers.lukego maintainers.domenkozar ];
+    maintainers = [ maintainers.lukego ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sniffglue/default.nix b/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
index 452718ebc9c4..68b4859a5fbb 100644
--- a/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sniffglue";
-  version = "0.11.1";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0lkz25z0qy1giss4rnhkx9fvsdd8ckf4z1gqw46zl664x96bb705";
+    sha256 = "sha256-bvLkeC5Hm1enaWJtYmnnINgpSO3tlg1SsEzeMSF9OXk=";
   };
 
-  cargoSha256 = "01ya9535whi2kviw57f25n8h05ckpb4bq1h7qav6srai97rm937s";
+  cargoSha256 = "sha256-BUo3Y2tLvhOrk2w2GzYeWKpXH7TAOEdBI6vVtW2/cCs=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "Secure multithreaded packet sniffer";
     homepage = "https://github.com/kpcyrd/sniffglue";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ xrelkd ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/tools/networking/spoofer/default.nix b/nixpkgs/pkgs/tools/networking/spoofer/default.nix
index 23b3f2688c9a..f5c8317d89b8 100644
--- a/nixpkgs/pkgs/tools/networking/spoofer/default.nix
+++ b/nixpkgs/pkgs/tools/networking/spoofer/default.nix
@@ -6,17 +6,19 @@ in
 
 stdenv.mkDerivation rec {
   pname = "spoofer";
-  version = "1.4.5";
+  version = "1.4.6";
 
   src = fetchurl {
     url = "https://www.caida.org/projects/spoofer/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0pnim3xyfsmv6alsvhwjs4v9lp39wwiyj63rxsqyz4wx4vkmn12z";
+    sha256 = "sha256-+4FNC+rMxIoVXlW7HnBXUg0P4FhNvMTAqJ9c7lXQ6vE=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl protobuf libpcap traceroute ]
                 ++ optional withGUI qt5.qtbase ;
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://www.caida.org/projects/spoofer";
     description = "Assess and report on deployment of source address validation";
diff --git a/nixpkgs/pkgs/tools/networking/stunnel/default.nix b/nixpkgs/pkgs/tools/networking/stunnel/default.nix
index 6104a4d2b500..f8b6c845a52e 100644
--- a/nixpkgs/pkgs/tools/networking/stunnel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/stunnel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stunnel";
-  version = "5.56";
+  version = "5.58";
 
   src = fetchurl {
     url    = "https://www.stunnel.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "08kb4gi9fzqngrczykvba6xhaxhq9m4wmdbhxvgrva5rasrvz13k";
+    sha256 = "d4c14cc096577edca3f6a2a59c2f51869e35350b3988018ddf808c88e5973b79";
     # please use the contents of "https://www.stunnel.org/downloads/${name}.tar.gz.sha256",
     # not the output of `nix-prefetch-url`
   };
diff --git a/nixpkgs/pkgs/tools/networking/surfraw/default.nix b/nixpkgs/pkgs/tools/networking/surfraw/default.nix
index d9bf06e825ea..70bb5453518a 100644
--- a/nixpkgs/pkgs/tools/networking/surfraw/default.nix
+++ b/nixpkgs/pkgs/tools/networking/surfraw/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
     description = "Provides a fast unix command line interface to a variety of popular WWW search engines and other artifacts of power";
     homepage = "https://gitlab.com/surfraw/Surfraw";
     maintainers = [];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
     license = lib.licenses.publicDomain;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix b/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix
index e93435515b2b..93fb6e1e3580 100644
--- a/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix
+++ b/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "2.4.17";
+  version = "2.4.19";
   pname = "swagger-codegen";
 
   jarfilename = "${pname}-cli-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://repo1.maven.org/maven2/io/swagger/${pname}-cli/${version}/${jarfilename}";
-    sha256 = "06xx42ayh4xqpr71lq1hj7kv1v6m9ld9jm1d15fhs935zqckv32a";
+    sha256 = "04wl5k8k1ziqz7k5w0g7i6zdfn41pbh3k0m8vq434k1886inf8yn";
   };
 
   phases = [ "installPhase" ];
diff --git a/nixpkgs/pkgs/tools/networking/swaks/default.nix b/nixpkgs/pkgs/tools/networking/swaks/default.nix
index fb822177725a..49ef0afc0603 100644
--- a/nixpkgs/pkgs/tools/networking/swaks/default.nix
+++ b/nixpkgs/pkgs/tools/networking/swaks/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0c2sx4nrh4whsqzj6m5ay8d7yqan3aqgg436p8jb25bs91ykn2pv";
   };
 
-  buildInputs = [ perl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/tools/networking/swec/default.nix b/nixpkgs/pkgs/tools/networking/swec/default.nix
index 71fea1c2e830..c98a3417d1c4 100644
--- a/nixpkgs/pkgs/tools/networking/swec/default.nix
+++ b/nixpkgs/pkgs/tools/networking/swec/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1m3971z4z1wr0paggprfz0n8ng8vsnkc9m6s3bdplgyz7qjk6jwx";
   };
 
-  buildInputs = [ makeWrapper perlPackages.perl perlPackages.LWP perlPackages.URI perlPackages.HTMLParser ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perlPackages.perl perlPackages.LWP perlPackages.URI perlPackages.HTMLParser ];
   checkInputs = [ perlPackages.HTTPServerSimple perlPackages.Parent ];
 
   configurePhase = ''
diff --git a/nixpkgs/pkgs/tools/networking/cutter/default.nix b/nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix
index 8d94da7737b8..ade825dbe103 100644
--- a/nixpkgs/pkgs/tools/networking/cutter/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "cutter-1.04";
+  pname = "tcp-cutter";
+  version = "1.04";
 
   src = fetchurl {
-    url = "http://www.digitage.co.uk/digitage/files/cutter/${name}.tgz";
+    url = "http://www.digitage.co.uk/digitage/files/cutter/${pname}-${version}.tgz";
     sha256 = "100iy31a3njif6vh9gfsqrm14hac05rrflla275gd4rkxdlnqcqv";
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/tcpflow/default.nix b/nixpkgs/pkgs/tools/networking/tcpflow/default.nix
index 74c7f0f11352..cc923c0daf65 100644
--- a/nixpkgs/pkgs/tools/networking/tcpflow/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tcpflow/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "tcpflow";
-  version = "1.5.2";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner  = "simsong";
     repo   = pname;
     rev    = "${pname}-${version}";
-    sha256 = "063n3pfqa0lgzcwk4c0h01g2y5c3sli615j6a17dxpg95aw1zryy";
+    sha256 = "0vbm097jhi5n8pg08ia1yhzc225zv9948blb76f4br739l9l22vq";
     fetchSubmodules = true;
   };
 
@@ -23,8 +23,10 @@ stdenv.mkDerivation rec {
     substituteInPlace bootstrap.sh \
       --replace ".git" "" \
       --replace "/bin/rm" "rm"
-    substituteInPlace configure.ac \
-      --replace "1.5.1" "1.5.2"
+    # Temporary fix for a build error:
+    # https://src.fedoraproject.org/rpms/tcpflow/blob/979e250032b90de2d6b9e5b94b5203d98cccedad/f/tcpflow-1.6.1-format.patch
+    substituteInPlace src/datalink.cpp \
+      --replace 'DEBUG(6)(s.c_str());' 'DEBUG(6) ("%s", s.c_str());'
   '';
 
   preConfigure = "bash ./bootstrap.sh";
@@ -38,7 +40,7 @@ stdenv.mkDerivation rec {
     '';
     inherit (src.meta) homepage;
     license     = licenses.gpl3;
-    maintainers = with maintainers; [ primeos raskin obadz ];
+    maintainers = with maintainers; [ raskin obadz ];
     platforms   = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/telepresence/default.nix b/nixpkgs/pkgs/tools/networking/telepresence/default.nix
index a077ddb3de46..5d1966114b78 100644
--- a/nixpkgs/pkgs/tools/networking/telepresence/default.nix
+++ b/nixpkgs/pkgs/tools/networking/telepresence/default.nix
@@ -31,7 +31,7 @@ in pythonPackages.buildPythonPackage rec {
     sha256 = "6V0sM0Z+2xNDgL0wIzJOdaUp2Ol4ejNTk9K/pllVa7g=";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postInstall = ''
     wrapProgram $out/bin/telepresence \
diff --git a/nixpkgs/pkgs/tools/networking/tendermint/default.nix b/nixpkgs/pkgs/tools/networking/tendermint/default.nix
index 059c531cc612..b97c49dd9c96 100644
--- a/nixpkgs/pkgs/tools/networking/tendermint/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tendermint/default.nix
@@ -2,22 +2,24 @@
 
 buildGoModule rec {
   pname = "tendermint";
-  version = "0.34.3";
+  version = "0.34.8";
 
   src = fetchFromGitHub {
     owner = "tendermint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-tkIoLYfqlnyyAAgEKyQgE317uwyhc8xRTCTUXi+9r9s=";
+    sha256 = "sha256:03k44w23167az2kk6ccp3139kykzkhack4w2vy0wvs2lb67xiqd9";
   };
 
-  vendorSha256 = "sha256-DviK+MkJwcv2Dhwmqra5G/fTaWxXFbUSUVnAkSHjeII=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-0Y9QDBVNYE2x3nY3loRKTCtYWXRnK7v+drRVvTMY4Dg=";
 
   subPackages = [ "cmd/tendermint" ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/tendermint/tendermint/version.GitCommit=${src.rev}" ];
+  preBuild = ''
+    makeFlagsArray+=(
+      "-ldflags=-s -w -X github.com/tendermint/tendermint/version.GitCommit=${src.rev}"
+    )
+  '';
 
   meta = with lib; {
     description = "Byzantine-Fault Tolerant State Machines. Or Blockchain, for short";
diff --git a/nixpkgs/pkgs/tools/networking/tgt/default.nix b/nixpkgs/pkgs/tools/networking/tgt/default.nix
index 9ef0c9d46d14..ca40f9a7cb70 100644
--- a/nixpkgs/pkgs/tools/networking/tgt/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tgt/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tgt";
-  version = "1.0.79";
+  version = "1.0.80";
 
   src = fetchFromGitHub {
     owner = "fujita";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18bp7fcpv7879q3ppdxlqj7ayqmlh5zwrkz8gch6rq9lkmmrklrf";
+    sha256 = "sha256-5qBqCHbkL6yw/iT2AtSumw8V0bV74TEyYMRgcPHW2lg=";
   };
 
   nativeBuildInputs = [ libxslt docbook_xsl makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/networking/tox-node/default.nix b/nixpkgs/pkgs/tools/networking/tox-node/default.nix
index f250b8d6b65e..0b682fa97c14 100644
--- a/nixpkgs/pkgs/tools/networking/tox-node/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tox-node/default.nix
@@ -21,14 +21,6 @@ buildRustPackage rec {
 
   SODIUM_USE_PKG_CONFIG = "yes";
 
-  installPhase = ''
-    runHook preInstall
-
-    install -D $releaseDir/tox-node $out/bin/tox-node
-
-    runHook postInstall
-  '';
-
   doCheck = false;
 
   cargoSha256 = "sha256-kCT2ulB+c2OlsABkyXyzrHfD/G92EPCdTO34FR5oSws=";
diff --git a/nixpkgs/pkgs/tools/networking/unbound/default.nix b/nixpkgs/pkgs/tools/networking/unbound/default.nix
index 24b17af3d3e9..3c28133a2dbf 100644
--- a/nixpkgs/pkgs/tools/networking/unbound/default.nix
+++ b/nixpkgs/pkgs/tools/networking/unbound/default.nix
@@ -18,20 +18,25 @@
   #
 , withSystemd ? false
 , systemd ? null
+  # optionally support DNS-over-HTTPS as a server
+, withDoH ? false
+, libnghttp2
 }:
 
 stdenv.mkDerivation rec {
   pname = "unbound";
-  version = "1.13.0";
+  version = "1.13.1";
 
   src = fetchurl {
     url = "https://unbound.net/downloads/${pname}-${version}.tar.gz";
-    sha256 = "18dj7migq6379hps59793457l81s3z7dll3y0fj6qcmhjlx08m59";
+    sha256 = "sha256-hQTZe4/FvYlzRcldEW4O4N34yP+ZWQqytL0TJ4yfULg=";
   };
 
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
 
-  buildInputs = [ openssl nettle expat libevent ] ++ lib.optionals withSystemd [ pkg-config systemd ];
+  buildInputs = [ openssl nettle expat libevent ]
+    ++ lib.optionals withSystemd [ pkg-config systemd ]
+    ++ lib.optionals withDoH [ libnghttp2 ];
 
   configureFlags = [
     "--with-ssl=${openssl.dev}"
@@ -47,6 +52,8 @@ stdenv.mkDerivation rec {
     "--disable-flto"
   ] ++ lib.optionals withSystemd [
     "--enable-systemd"
+  ] ++ lib.optionals withDoH [
+    "--with-libnghttp2=${libnghttp2.dev}"
   ];
 
   installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf" ];
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/default.nix b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
index 022504695483..5181216e1c07 100644
--- a/nixpkgs/pkgs/tools/networking/v2ray/default.nix
+++ b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
@@ -3,22 +3,22 @@
 }:
 
 let
-  version = "4.34.0";
+  version = "4.37.0";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "0x6smffpvnrk76plnsk31qqznkyz06dh4sazncp2l3y9va8k2jb1";
+    sha256 = "00bw91n7210gsnc7bw2spl6k1yl2i7d1j55w98qf4rvn80z9d59r";
   };
 
-  vendorSha256 = "077jnjsmhzr0idrk7pifr5s2r9yjf1v9bvj177n2k2ln8w3wgx3g";
+  vendorSha256 = "sha256-sc001qWdmhhaUh0nmvaqwwVE2Ee8IFWYi4K8aAURWBE=";
 
   assets = {
     # MIT licensed
     "geoip.dat" = let
-      geoipRev = "202101070033";
-      geoipSha256 = "11naj51pzchdrjmkp1dqzcby1i2fhbq0mncwm4d5q5mh3chyizsf";
+      geoipRev = "202104010913";
+      geoipSha256 = "1kq6d68ii9hr2w0caxacqh5q8jran154b99aik4g7ripgx7lckpr";
     in fetchurl {
       url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat";
       sha256 = geoipSha256;
@@ -26,8 +26,8 @@ let
 
     # MIT licensed
     "geosite.dat" = let
-      geositeRev = "20210106164413";
-      geositeSha256 = "0chc7jb3yzgrrjkpd3s1rlim5qgf6j2kp952fvkhpwmnap86aip7";
+      geositeRev = "20210403111045";
+      geositeSha256 = "1b64yci0dmvw9divfv3njpzczz2ag3cnvyr29c2mk8y85vp05ysc";
     in fetchurl {
       url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
       sha256 = geositeSha256;
@@ -68,7 +68,7 @@ let
   };
 
 in runCommand "v2ray-${version}" {
-  inherit version;
+  inherit src version;
   inherit (core) meta;
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/update.sh b/nixpkgs/pkgs/tools/networking/v2ray/update.sh
index 08062b1e9969..f645b8ea0939 100755
--- a/nixpkgs/pkgs/tools/networking/v2ray/update.sh
+++ b/nixpkgs/pkgs/tools/networking/v2ray/update.sh
@@ -61,11 +61,11 @@ set +o pipefail
 vendorSha256=$(
     nix-build "$nixpkgs" -A v2ray --no-out-link 2>&1 |
     tee /dev/stderr |
-    sed -nE 's/.*got:\s*sha256:(\w+)$/\1/p'
+    sed -nE 's/.*got:\s*(sha256\S+)$/\1/p'
 )
 [[ "$vendorSha256" ]]
 sed --in-place \
-    -e "s/vendorSha256 = \".*\"/vendorSha256 = \"$vendorSha256\"/" \
+    -e "s#vendorSha256 = \".*\"#vendorSha256 = \"$vendorSha256\"#" \
     "$version_nix"
 
 echo "vendorSha256 updated" >&2
diff --git a/nixpkgs/pkgs/tools/networking/vpnc/default.nix b/nixpkgs/pkgs/tools/networking/vpnc/default.nix
index a754e7e9937c..edb50559fc0f 100644
--- a/nixpkgs/pkgs/tools/networking/vpnc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vpnc/default.nix
@@ -19,7 +19,8 @@ stdenv.mkDerivation {
   # `ifconfig' as found in net-tools (not GNU Inetutils).
   propagatedBuildInputs = [ nettools ];
 
-  buildInputs = [libgcrypt perl makeWrapper openssl ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [libgcrypt perl openssl ];
 
   preConfigure = ''
     sed -i 's|^#OPENSSL|OPENSSL|g' Makefile
diff --git a/nixpkgs/pkgs/tools/networking/vtun/default.nix b/nixpkgs/pkgs/tools/networking/vtun/default.nix
index af4cc0fe2e52..4d79fdc9bc58 100644
--- a/nixpkgs/pkgs/tools/networking/vtun/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vtun/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, openssl, lzo, zlib, yacc, flex }:
+{ lib, stdenv, fetchurl, fetchpatch, openssl, lzo, zlib, bison, flex }:
 
 stdenv.mkDerivation rec {
   name = "vtun-3.0.4";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     sed -i -e 's/-m 755//' -e 's/-o root -g 0//' Makefile.in
     sed -i '/strip/d' Makefile.in
   '';
-  buildInputs = [ lzo openssl zlib yacc flex ];
+  buildInputs = [ lzo openssl zlib bison flex ];
 
   configureFlags = [
     "--with-lzo-headers=${lzo}/include/lzo"
diff --git a/nixpkgs/pkgs/tools/networking/wakeonlan/default.nix b/nixpkgs/pkgs/tools/networking/wakeonlan/default.nix
new file mode 100644
index 000000000000..48b99cadf2b9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/wakeonlan/default.nix
@@ -0,0 +1,29 @@
+{ lib, perlPackages, fetchFromGitHub, installShellFiles }:
+
+perlPackages.buildPerlPackage rec {
+  pname = "wakeonlan";
+  version = "0.41";
+
+  src = fetchFromGitHub {
+    owner = "jpoliv";
+    repo = pname;
+    rev = "wakeonlan-${version}";
+    sha256 = "0m48b39lz0yc5ckx2jx8y2p4c8npjngxl9wy86k43xgsd8mq1g3c";
+  };
+
+  outputs = [ "out" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  installPhase = ''
+    install -Dt $out/bin wakeonlan
+    installManPage blib/man1/wakeonlan.1
+  '';
+
+  meta = with lib; {
+    description = "Perl script for waking up computers via Wake-On-LAN magic packets";
+    homepage = "https://github.com/jpoliv/wakeonlan";
+    license = licenses.artistic1;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/webwormhole/default.nix b/nixpkgs/pkgs/tools/networking/webwormhole/default.nix
new file mode 100644
index 000000000000..8fbaf3159a22
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/webwormhole/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "webwormhole";
+  version = "unstable-2021-01-16";
+
+  src = fetchFromGitHub {
+    owner = "saljam";
+    repo = pname;
+    rev = "c85e196c8a8a885815136aa8aee1958ad80a3bb5";
+    sha256 = "D10xmBwmEbeR3nU4CmppFBzdeE4Pm2+o/Vb5Yd+pPtM=";
+  };
+
+  vendorSha256 = "sha256-yK04gjDO6JSDcJULcbJBBuPBhx792JNn+B227lDUrWk=";
+
+  meta = with lib; {
+    description = "Send files using peer authenticated WebRTC";
+    homepage = "https://github.com/saljam/webwormhole";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ bbigras ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/wget/default.nix b/nixpkgs/pkgs/tools/networking/wget/default.nix
index 3ac71ca37e5b..efdd16e630bc 100644
--- a/nixpkgs/pkgs/tools/networking/wget/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wget/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wget";
-  version = "1.20.3";
+  version = "1.21.1";
 
   src = fetchurl {
     url = "mirror://gnu/wget/${pname}-${version}.tar.lz";
-    sha256 = "1frajd86ds8vz2hprq30wq8ya89z9dcxnwm8nwk12bbc47l7qq39";
+    sha256 = "sha256-25u+U0fm+qBvx4gF7rgIsmiXlFXq2QA6YIVpydT8kK0=";
   };
 
   patches = [
@@ -37,6 +37,9 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     (lib.withFeatureAs (openssl != null) "ssl" "openssl")
+  ] ++ lib.optionals stdenv.isDarwin [
+    # https://lists.gnu.org/archive/html/bug-wget/2021-01/msg00076.html
+    "--without-included-regex"
   ];
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/networking/wget2/default.nix b/nixpkgs/pkgs/tools/networking/wget2/default.nix
new file mode 100644
index 000000000000..3fd40f8a7bad
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/wget2/default.nix
@@ -0,0 +1,100 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, fetchpatch
+  # build support
+, autoreconfHook
+, flex
+, gnulib
+, lzip
+, pkg-config
+, python3
+, texinfo
+  # libraries
+, brotli
+, bzip2
+, gpgme
+, libhsts
+, libidn2
+, libpsl
+, xz
+, nghttp2
+, sslSupport ? true
+, openssl
+, pcre2
+, zlib
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wget2";
+  version = "1.99.2";
+
+  src = fetchFromGitLab {
+    owner = "gnuwget";
+    repo = pname;
+    rev = version;
+    sha256 = "1gws8y3z8xzi46c48n7jb162mr3ar4c34s7yy8kjcs14yzq951qz";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "fix-autotools-2.70.patch";
+      url = "https://gitlab.com/gnuwget/wget2/-/commit/580af869093cfda6bc8a9d5901850354a16b3666.patch";
+      sha256 = "1x6wq4wxvvy6174d52qrhxkcgmv366f8smxyki49zb6rs4gqhskd";
+    })
+    (fetchpatch {
+      name = "update-potfiles-for-gnulib-2020-11-28.patch";
+      url = "https://gitlab.com/gnuwget/wget2/-/commit/368deb9fcca0c281f9c76333607cc878c3945ad0.patch";
+      sha256 = "1qsz8hbzbgg14wikxsbjjlq0cp3jw4pajbaz9wdn6ny617hdvi8y";
+    })
+  ];
+
+  # wget2_noinstall contains forbidden reference to /build/
+  postPatch = ''
+    substituteInPlace src/Makefile.am \
+      --replace 'bin_PROGRAMS = wget2 wget2_noinstall' 'bin_PROGRAMS = wget2'
+  '';
+
+  nativeBuildInputs = [ autoreconfHook flex lzip pkg-config python3 texinfo ];
+
+  buildInputs = [ brotli bzip2 gpgme libhsts libidn2 libpsl xz nghttp2 pcre2 zlib zstd ]
+    ++ lib.optional sslSupport openssl;
+
+  # TODO: include translation files
+  autoreconfPhase = ''
+    # copy gnulib into build dir and make writable.
+    # Otherwise ./bootstrap copies the non-writable files from nix store and fails to modify them
+    rmdir gnulib
+    cp -r ${gnulib} gnulib
+    chmod -R u+w gnulib/{build-aux,lib}
+
+    # fix bashisms can be removed when https://gitlab.com/gnuwget/wget2/-/commit/c9499dcf2f58983d03e659e2a1a7f21225141edf is in the release
+    sed 's|==|=|g' -i configure.ac
+
+    ./bootstrap --no-git --gnulib-srcdir=gnulib --skip-po
+  '';
+
+  configureFlags = [
+    "--disable-static"
+    # TODO: https://gitlab.com/gnuwget/wget2/-/issues/537
+    (lib.withFeatureAs sslSupport "ssl" "openssl")
+  ];
+
+  outputs = [ "out" "lib" "dev" ];
+
+  meta = with lib; {
+    description = "successor of GNU Wget, a file and recursive website downloader.";
+    longDescription = ''
+      Designed and written from scratch it wraps around libwget, that provides the basic
+      functions needed by a web client.
+      Wget2 works multi-threaded and uses many features to allow fast operation.
+      In many cases Wget2 downloads much faster than Wget1.x due to HTTP2, HTTP compression,
+      parallel connections and use of If-Modified-Since HTTP header.
+    '';
+    homepage = "https://gitlab.com/gnuwget/wget2";
+    # wget2 GPLv3+; libwget LGPLv3+
+    license = with licenses; [ gpl3Plus lgpl3Plus ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/whois/default.nix b/nixpkgs/pkgs/tools/networking/whois/default.nix
index f8613beb9361..55a356e32980 100644
--- a/nixpkgs/pkgs/tools/networking/whois/default.nix
+++ b/nixpkgs/pkgs/tools/networking/whois/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, perl, gettext, pkg-config, libidn2, libiconv }:
 
 stdenv.mkDerivation rec {
-  version = "5.5.6";
+  version = "5.5.8";
   pname = "whois";
 
   src = fetchFromGitHub {
     owner = "rfc1036";
     repo = "whois";
     rev = "v${version}";
-    sha256 = "0iqbn2ky9j7qdpv5hycy56knnfhl8nz4l4905rnr0p703lvxxx8d";
+    sha256 = "sha256-WSAqJMVeHkcqzcgwvFKKBXJiIfKXBQr2mjioG7CgkIo=";
   };
 
   nativeBuildInputs = [ perl gettext pkg-config ];
diff --git a/nixpkgs/pkgs/tools/networking/wicd/default.nix b/nixpkgs/pkgs/tools/networking/wicd/default.nix
index 7e702c0559b0..e4eb0a2cdc8c 100644
--- a/nixpkgs/pkgs/tools/networking/wicd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wicd/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, python2Packages
 , wpa_supplicant, dhcp, dhcpcd, wirelesstools
-, nettools, openresolv, iproute, iputils }:
+, nettools, openresolv, iproute2, iputils }:
 
 let
   inherit (python2Packages) python pygobject2 dbus-python pyGtkGlade pycairo;
@@ -36,7 +36,7 @@ in stdenv.mkDerivation rec {
 
     substituteInPlace in/scripts=wicd.in --subst-var-by TEMPLATE-DEFAULT $out/share/other/dhclient.conf.template.default
 
-    sed -i "2iexport PATH=${lib.makeBinPath [ python wpa_supplicant dhcpcd dhcp wirelesstools nettools nettools iputils openresolv iproute ]}\$\{PATH:+:\}\$PATH" in/scripts=wicd.in
+    sed -i "2iexport PATH=${lib.makeBinPath [ python wpa_supplicant dhcpcd dhcp wirelesstools nettools nettools iputils openresolv iproute2 ]}\$\{PATH:+:\}\$PATH" in/scripts=wicd.in
     sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pygobject2}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd.in
     sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-client.in
     sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pygobject2})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-client.in
diff --git a/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix b/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
index 1e401deaa264..8bdcd8708d9f 100644
--- a/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
@@ -1,23 +1,22 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchzip
 , nixosTests
-, iptables ? null
-, iproute ? null
-, makeWrapper ? null
-, openresolv ? null
-, procps ? null
-, wireguard-go ? null
+, iptables
+, iproute2
+, makeWrapper
+, openresolv
+, procps
+, wireguard-go
 }:
 
-with lib;
-
 stdenv.mkDerivation rec {
   pname = "wireguard-tools";
-  version = "1.0.20200827";
+  version = "1.0.20210315";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-${version}.tar.xz";
-    sha256 = "1d8rs1g6zy3kz327cc3hzkk5a44278x9p32gxasz6i94bq0b2bs3";
+    sha256 = "sha256-aCqgjriqhBInK7C7KapoKVfgj+zreGQzacMKwbMF1Og=";
   };
 
   outputs = [ "out" "man" ];
@@ -37,11 +36,11 @@ stdenv.mkDerivation rec {
   postFixup = ''
     substituteInPlace $out/lib/systemd/system/wg-quick@.service \
       --replace /usr/bin $out/bin
-  '' + optionalString stdenv.isLinux ''
+  '' + lib.optionalString stdenv.isLinux ''
     for f in $out/bin/*; do
-      wrapProgram $f --prefix PATH : ${makeBinPath [procps iproute iptables openresolv]}
+      wrapProgram $f --prefix PATH : ${lib.makeBinPath [ procps iproute2 iptables openresolv ]}
     done
-  '' + optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.isDarwin ''
     for f in $out/bin/*; do
       wrapProgram $f --prefix PATH : ${wireguard-go}/bin
     done
@@ -52,7 +51,7 @@ stdenv.mkDerivation rec {
     tests = nixosTests.wireguard;
   };
 
-  meta = {
+  meta = with lib; {
     description = "Tools for the WireGuard secure network tunnel";
     downloadPage = "https://git.zx2c4.com/wireguard-tools/refs/";
     homepage = "https://www.wireguard.com/";
diff --git a/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix b/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
index 48f842f60ced..4379aa89ceb5 100644
--- a/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wormhole-william";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     owner = "psanford";
     repo = "wormhole-william";
     rev = "v${version}";
-    sha256 = "1v6kw10gqhyd1adj0wwrr5bmpjqbshdnywsrjpqgg9bl61m5j3wr";
+    sha256 = "sha256-75pSFMzaZW+rtikO0khuxXIgb3Wj8ieSE4sB6quKgo4=";
   };
 
-  vendorSha256 = "1niky252gcxai6vz0cx7pvflg530bc1lmcd2wm2hqg6446r1yxsq";
+  vendorSha256 = "sha256-8GZ4h+DFQaCizOCxsMzAllXyaQgzQQBsbCnVi5MWbFg=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/xh/default.nix b/nixpkgs/pkgs/tools/networking/xh/default.nix
index b7246959017a..7acdc2d7e9c5 100644
--- a/nixpkgs/pkgs/tools/networking/xh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/xh/default.nix
@@ -1,22 +1,31 @@
-{ stdenv, lib, rustPlatform, fetchFromGitHub, Security }:
+{ stdenv, lib, openssl, pkg-config, rustPlatform, fetchFromGitHub, Security
+, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "xh";
-  version = "0.7.0";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "ducaale";
     repo = "xh";
     rev = "v${version}";
-    sha256 = "0b7q0xbfbrhvpnxbm9bd1ncdza9k2kcmcir3qhqzb2pgsb5b5njx";
+    sha256 = "cOlya3ngIoaoqzh0fIbNAjwO7S7wZCQk7WVqgZona8A=";
   };
 
-  cargoSha256 = "02fgqys9qf0jzs2n230pyj151v6xbm6wm2rd9qm5gsib6zaq7gfa";
+  cargoSha256 = "5B2fY+S9z6o+CHCIK93+Yj8dpaiQi4PSMQw1mfXg1NA=";
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = if stdenv.isDarwin then [ Security libiconv ] else [ openssl ];
+
+  # Get openssl-sys to use pkg-config
+  OPENSSL_NO_VENDOR = 1;
 
   checkFlagsArray = [ "--skip=basic_options" ];
 
+  # Nix build happens in sandbox without internet connectivity
+  # disable tests as some of them require internet due to nature of application
+  doCheck = false;
   doInstallCheck = true;
   postInstallCheck = ''
     $out/bin/xh --help > /dev/null
@@ -25,6 +34,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "Yet another HTTPie clone in Rust";
     homepage = "https://github.com/ducaale/xh";
+    changelog = "https://github.com/ducaale/xh/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ payas SuperSandro2000 ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix b/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
index d5ecae75eb1a..8228132b5c84 100644
--- a/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
+++ b/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yggdrasil";
-  version = "0.3.15";
+  version = "0.3.16";
 
   src = fetchFromGitHub {
     owner = "yggdrasil-network";
     repo = "yggdrasil-go";
     rev = "v${version}";
-    sha256 = "1nf00ygp55l01c0gdkw15f08p3hmn6s2r99lgf2xpq8jn75qra4i";
+    sha256 = "sha256-uUF0zkgtzdMZB/GKOtawjn7AQBkRoiAEj9nUUmpQSVQ=";
   };
 
-  vendorSha256 = "1zk6h1isxyml9asyb7g4scbhnfwghqwnv40a5f5j7z0s0s4nybdp";
+  vendorSha256 = "sha256-619PSqd7pl3Akj/kzLQhDIp1adumBGhLrzQsZvMzC7w=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/ytcc/default.nix b/nixpkgs/pkgs/tools/networking/ytcc/default.nix
index 75cf8403d937..6bd12963b7ee 100644
--- a/nixpkgs/pkgs/tools/networking/ytcc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ytcc/default.nix
@@ -2,18 +2,25 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ytcc";
-  version = "2.0.1";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "woefe";
     repo = "ytcc";
     rev = "v${version}";
-    sha256 = "11gwpqmq611j07pjscch28jsrfgyzy69ph2w1miz3arqmxz7dqjp";
+    sha256 = "1rhnrmanad10zy2as9q5wjfjlk18f51vf801syyfgxvk0pdcsk6w";
   };
 
   nativeBuildInputs = [ gettext ];
 
-  propagatedBuildInputs = with python3Packages; [ click feedparser lxml sqlalchemy youtube-dl ];
+  propagatedBuildInputs = with python3Packages; [
+    click
+    feedparser
+    lxml
+    sqlalchemy
+    youtube-dl
+    wcwidth
+  ];
 
   checkInputs = with python3Packages; [ nose pytestCheckHook ];
 
@@ -24,6 +31,11 @@ python3Packages.buildPythonApplication rec {
     "download_videos"
     "update_all"
     "add_channel_duplicate"
+    "test_subscribe"
+    "test_import"
+    "test_import_duplicate"
+    "test_update"
+    "test_download"
   ];
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/networking/zap/default.nix b/nixpkgs/pkgs/tools/networking/zap/default.nix
index 183f226f84b1..bccc840a27a4 100644
--- a/nixpkgs/pkgs/tools/networking/zap/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zap/default.nix
@@ -1,31 +1,38 @@
-{ lib, stdenv, fetchFromGitHub, jdk8, ant, runtimeShell }:
+{ lib, stdenv, fetchurl, jre, runtimeShell }:
 
-let jdk = jdk8; in
 stdenv.mkDerivation rec {
   pname = "zap";
-  version = "2.7.0";
-  src = fetchFromGitHub {
-    owner = "zaproxy";
-    repo = "zaproxy";
-    rev =version;
-    sha256 = "1bz4pgq66v6kxmgj99llacm1d85vj8z78jlgc2z9hv0ha5i57y32";
+  version = "2.10.0";
+  src = fetchurl {
+    url = "https://github.com/zaproxy/zaproxy/releases/download/v${version}/ZAP_${version}_Linux.tar.gz";
+    sha256 = "1mz9s56pbs62g4pnd1ml8y6jpf9ilisdwwvjv5kn6yxrcdi2zzqh";
   };
 
-  buildInputs = [ jdk ant ];
+  buildInputs = [ jre ];
 
-  buildPhase = ''
-    cd build
-    echo -n "${version}" > version.txt
-    ant -f build.xml setup init  compile dist copy-source-to-build package-linux
-  '';
+  # From https://github.com/zaproxy/zaproxy/blob/master/zap/src/main/java/org/parosproxy/paros/Constant.java
+  version_tag = "2010000";
 
+  # Copying config and adding version tag before first use to avoid permission
+  # issues if zap tries to copy config on it's own.
   installPhase = ''
-    mkdir -p "$out/share"
-    tar xvf  "ZAP_${version}_Linux.tar.gz" -C "$out/share/"
-    mkdir -p "$out/bin"
-    echo "#!${runtimeShell}" > "$out/bin/zap"
-    echo \"$out/share/ZAP_${version}/zap.sh\" >> "$out/bin/zap"
-    chmod +x "$out/bin/zap"
+    mkdir -p "$out/bin" "$out/share"
+    cp -pR . "$out/share/${pname}/"
+
+    cat >> "$out/bin/${pname}" << EOF
+    #!${runtimeShell}
+    export PATH="${lib.makeBinPath [ jre ]}:\$PATH"
+    export JAVA_HOME='${jre}'
+    if ! [ -f "~/.ZAP/config.xml" ];then
+      mkdir -p "\$HOME/.ZAP"
+      head -n 2 $out/share/${pname}/xml/config.xml > "\$HOME/.ZAP/config.xml"
+      echo "<version>${version_tag}</version>" >> "\$HOME/.ZAP/config.xml"
+      tail -n +3 $out/share/${pname}/xml/config.xml >> "\$HOME/.ZAP/config.xml"
+    fi
+    exec "$out/share/${pname}/zap.sh"  "\$@"
+    EOF
+
+    chmod u+x  "$out/bin/${pname}"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/networking/zerotierone/default.nix b/nixpkgs/pkgs/tools/networking/zerotierone/default.nix
index c17023103f8b..60da9b3abcbb 100644
--- a/nixpkgs/pkgs/tools/networking/zerotierone/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zerotierone/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, buildPackages, fetchFromGitHub, openssl, lzo, zlib, iproute, ronn }:
+{ lib, stdenv, buildPackages, fetchFromGitHub, openssl, lzo, zlib, iproute2, ronn }:
 
 stdenv.mkDerivation rec {
   pname = "zerotierone";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "zerotier";
     repo = "ZeroTierOne";
     rev = version;
-    sha256 = "0a9sjcri96pv4pvvi94g7jyldwfhqqsi1k58maymm0jnqnj91z25";
+    sha256 = "06b6k1rzqkd7cdl7n0gz5ky48fs2nhn0q2qxx1rww38vbfc7lpmf";
   };
 
   preConfigure = ''
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
 
   nativeBuildInputs = [ ronn ];
-  buildInputs = [ openssl lzo zlib iproute ];
+  buildInputs = [ openssl lzo zlib iproute2 ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix b/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
new file mode 100644
index 000000000000..1a3d3ed7a355
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
@@ -0,0 +1,36 @@
+{ cmake
+, fetchFromGitHub
+, fping
+, lib
+, libowlevelzs
+, net-snmp
+, stdenv
+}:
+
+# TODO: add a services entry for the /etc/zs-apc-spdu.conf file
+stdenv.mkDerivation rec {
+  pname = "zs-apc-spdu-ctl";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "zseri";
+    repo = "zs-apc-spdu-ctl";
+    rev = "v${version}";
+    sha256 = "TMV9ETWBVeXq6tZ2e0CrvHBXoyKfOLCQurjBdf/iw/M=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libowlevelzs net-snmp ];
+
+  postPatch = ''
+    substituteInPlace src/confent.cxx \
+      --replace /usr/sbin/fping "${fping}/bin/fping"
+  '';
+
+  meta = with lib; {
+    description = "APC SPDU control utility";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zseri ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/zs-wait4host/default.nix b/nixpkgs/pkgs/tools/networking/zs-wait4host/default.nix
new file mode 100644
index 000000000000..b6b4c985dfea
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/zs-wait4host/default.nix
@@ -0,0 +1,34 @@
+{ coreutils, fetchurl, fping, lib, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "zs-wait4host";
+  version = "0.3.2";
+
+  src = fetchurl {
+    url = "https://ytrizja.de/distfiles/${pname}-${version}.tar.gz";
+    sha256 = "9F1264BDoGlRR7bWlRXhfyvxWio4ydShKmabUQEIz9I=";
+  };
+
+  postPatch = ''
+    for i in zs-wait4host zs-wait4host-inf; do
+      substituteInPlace "$i" \
+        --replace '$(zs-guess-fping)' '${fping}/bin/fping' \
+        --replace ' sleep ' ' ${coreutils}/bin/sleep ' \
+        --replace '[ "$FPING" ] || exit 1' ""
+    done
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -D -t $out/bin zs-wait4host zs-wait4host-inf
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Wait for a host to come up/go down";
+    homepage = "https://ytrizja.de/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ zseri ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix b/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix
index b177b9a233ad..46020233ff1d 100644
--- a/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix
@@ -1,21 +1,23 @@
 { mkDerivation, ansi-terminal, async, attoparsec, base, containers
-, directory, HUnit, mtl, nix-derivation, process, relude, lib
-, stm, text, time, unix, fetchFromGitHub
+, cassava, directory, HUnit, mtl, nix-derivation, process, relude, lib
+, stm, terminal-size, text, time, unix, wcwidth, fetchFromGitHub
+, lock-file, data-default, expect, runtimeShell
 }:
-mkDerivation {
+mkDerivation rec {
   pname = "nix-output-monitor";
-  version = "0.1.0.2";
+  version = "1.0.3.0";
   src = fetchFromGitHub {
     owner = "maralorn";
     repo = "nix-output-monitor";
-    sha256 = "0r4348cbmnpawbfa20qw3wnywiqp0jkl5svzl27jrm2yk2g51509";
-    rev = "5bf7534";
+    sha256 = "1gidg03cwz8ss370bgz4a2g9ldj1lap5ws7dmfg6vigpx8mxigpb";
+    rev = "v${version}";
   };
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
-    ansi-terminal async attoparsec base containers directory mtl
-    nix-derivation relude stm text time unix
+    ansi-terminal async attoparsec base cassava containers directory mtl
+    nix-derivation relude stm terminal-size text time unix wcwidth lock-file
+    data-default
   ];
   executableHaskellDepends = [
     ansi-terminal async attoparsec base containers directory mtl
@@ -25,6 +27,13 @@ mkDerivation {
     ansi-terminal async attoparsec base containers directory HUnit mtl
     nix-derivation process relude stm text time unix
   ];
+  postInstall = ''
+    cat > $out/bin/nom-build << EOF
+    #!${runtimeShell}
+    ${expect}/bin/unbuffer nix-build "\$@" 2>&1 | exec $out/bin/nom
+    EOF
+    chmod a+x $out/bin/nom-build
+  '';
   homepage = "https://github.com/maralorn/nix-output-monitor";
   description = "Parses output of nix-build to show additional information";
   license = lib.licenses.agpl3Plus;
diff --git a/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix b/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix
index 40e74fba8a86..f1ea25e3bfd8 100644
--- a/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix
@@ -1,16 +1,16 @@
-{ lib, rustPlatform, fetchFromGitHub, fetchpatch }:
+{ lib, rustPlatform, fetchFromGitHub }:
 rustPlatform.buildRustPackage rec {
   pname = "nixpkgs-fmt";
-  version = "1.0.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0w1himwix7iv40rixj9afknwmqg2qmkif23z217gc7x63zyg9vdc";
+    sha256 = "0dqirvn8pq6ssxjlf6rkqcsx6ndasws93lz2v9f9s01k9ny8x8mq";
   };
 
-  cargoSha256 = "1qzhii72hjdxmgfncvyk80ybvk6zywd6v73bb1ibhnry734grzvw";
+  cargoSha256 = "138aq64rb08s96q3xqcmvl3ax78rhjkwfa6v9iz8ywl32066gahb";
 
   meta = with lib; {
     description = "Nix code formatter for nixpkgs";
diff --git a/nixpkgs/pkgs/tools/package-management/appimagekit/default.nix b/nixpkgs/pkgs/tools/package-management/appimagekit/default.nix
index 524f912cf045..620a0b05a95c 100644
--- a/nixpkgs/pkgs/tools/package-management/appimagekit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/appimagekit/default.nix
@@ -11,29 +11,30 @@ let
   appimagekit_src = fetchFromGitHub {
     owner = "AppImage";
     repo = "AppImageKit";
-    rev = "b0859501df61cde198b54a317c03b41dbafc98b1";
-    sha256 = "0qqg79jw9w9rs8c2w3lla4kz62ihafrf7jm370pp1dl8y2i81jzg";
+    rev = "8bbf694455d00f48d835f56afaa1dabcd9178ba6";
+    sha256 = "sha256-pqg+joomC5CI9WdKP/h/XKPsruMgZEaIOjPLOqnNPZw=";
+    fetchSubmodules = true;
   };
 
-  # squashfuse adapted to nix from cmake experession in "${appimagekit_src}/cmake/dependencies.cmake"
+  # squashfuse adapted to nix from cmake experession in "${appimagekit_src}/lib/libappimage/cmake/dependencies.cmake"
   appimagekit_squashfuse = squashfuse.overrideAttrs (attrs: rec {
-    name = "squashfuse-${version}";
-    version = "20161009";
+    pname = "squashfuse";
+    version = "unstable-2016-10-09";
 
     src = fetchFromGitHub {
       owner = "vasi";
-      repo  = "squashfuse";
-      rev   = "1f980303b89c779eabfd0a0fdd36d6a7a311bf92";
-      sha256 = "0lrw9ff8k15l34wjwyllw3i35hl0cms97jj2hpnr2q8ipgxpb5q5";
+      repo  = pname;
+      rev = "1f980303b89c779eabfd0a0fdd36d6a7a311bf92";
+      sha256 = "sha256-BZd1+7sRYZHthULKk3RlgMIy4uCUei45GbSEiZxLPFM=";
     };
 
     patches = [
-      "${appimagekit_src}/squashfuse.patch"
-      "${appimagekit_src}/squashfuse_dlopen.patch"
+      "${appimagekit_src}/lib/libappimage/src/patches/squashfuse.patch"
+      "${appimagekit_src}/lib/libappimage/src/patches/squashfuse_dlopen.patch"
     ];
 
     postPatch = ''
-      cp -v ${appimagekit_src}/squashfuse_dlopen.[hc] .
+      cp -v ${appimagekit_src}/lib/libappimage/src/patches/squashfuse_dlopen.[hc] .
     '';
 
     preConfigure = ''
@@ -58,27 +59,27 @@ let
   });
 
 in stdenv.mkDerivation rec {
-  name = "appimagekit-20180727";
+  pname = "appimagekit";
+  version = "unstable-2020-12-31";
 
   src = appimagekit_src;
 
   patches = [ ./nix.patch ];
 
+  postPatch = ''
+    patchShebangs src/embed-magic-bytes-in-file.sh
+  '';
+
   nativeBuildInputs = [
     pkg-config cmake autoconf automake libtool wget xxd
-    desktop-file-utils
+    desktop-file-utils makeWrapper
   ];
 
   buildInputs = [
-    glib zlib cairo openssl fuse
-    xz inotify-tools libarchive
-    squashfsTools makeWrapper
+    glib zlib cairo openssl fuse xz inotify-tools
+    libarchive squashfsTools appimagekit_squashfuse
   ];
 
-  postPatch = ''
-    substituteInPlace src/appimagetool.c --replace "/usr/bin/file" "${file}/bin/file"
-  '';
-
   preConfigure = ''
     export HOME=$(pwd)
   '';
@@ -87,22 +88,22 @@ in stdenv.mkDerivation rec {
     "-DUSE_SYSTEM_XZ=ON"
     "-DUSE_SYSTEM_SQUASHFUSE=ON"
     "-DSQUASHFUSE=${appimagekit_squashfuse}"
-    "-DUSE_SYSTEM_INOTIFY_TOOLS=ON"
     "-DUSE_SYSTEM_LIBARCHIVE=ON"
     "-DUSE_SYSTEM_GTEST=ON"
     "-DUSE_SYSTEM_MKSQUASHFS=ON"
   ];
 
   postInstall = ''
+    mkdir -p $out/lib/appimagekit
     cp "${squashfsTools}/bin/mksquashfs" "$out/lib/appimagekit/"
     cp "${desktop-file-utils}/bin/desktop-file-validate" "$out/bin"
 
     wrapProgram "$out/bin/appimagetool" \
-      --prefix PATH : "${lib.makeBinPath [ file gnupg ]}"
+      --prefix PATH : "${lib.makeBinPath [ file gnupg ]}" \
+      --unset SOURCE_DATE_EPOCH
   '';
 
   checkInputs = [ gtest ];
-  doCheck = false; # fails 1 out of 4 tests, I'm too lazy to debug why
 
   # for debugging
   passthru = {
@@ -117,6 +118,7 @@ in stdenv.mkDerivation rec {
       AppImages.
     '';
     license = licenses.mit;
+    maintainers = with maintainers; [ taeer ];
     homepage = src.meta.homepage;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/tools/package-management/appimagekit/nix.patch b/nixpkgs/pkgs/tools/package-management/appimagekit/nix.patch
index 9725cef5ba7d..f03922cb5ca4 100644
--- a/nixpkgs/pkgs/tools/package-management/appimagekit/nix.patch
+++ b/nixpkgs/pkgs/tools/package-management/appimagekit/nix.patch
@@ -1,174 +1,82 @@
-diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake
-index ea133a3..916606c 100644
---- a/cmake/dependencies.cmake
-+++ b/cmake/dependencies.cmake
-@@ -224,21 +224,23 @@ if(NOT USE_SYSTEM_XZ)
-         LIBRARY_DIRS <INSTALL_DIR>/lib/
-         LIBRARIES "<INSTALL_DIR>/lib/liblzma.a"
-         INCLUDE_DIRS "<SOURCE_DIR>/src/liblzma/api/"
+Submodule lib/libappimage contains modified content
+diff --git a/lib/libappimage/cmake/dependencies.cmake b/lib/libappimage/cmake/dependencies.cmake
+index 8d96484..c7b17a1 100644
+--- a/lib/libappimage/cmake/dependencies.cmake
++++ b/lib/libappimage/cmake/dependencies.cmake
+@@ -91,9 +91,18 @@ if(NOT USE_SYSTEM_SQUASHFUSE)
+         INCLUDE_DIRS "<SOURCE_DIR>"
      )
  else()
-     message(STATUS "Using system xz")
- 
-     import_pkgconfig_target(TARGET_NAME xz PKGCONFIG_TARGET liblzma STATIC)
- endif()
- 
-+set(USE_SYSTEM_SQUASHFUSE OFF CACHE BOOL "Use system squashfuse instead of building our own")
- 
-+if(NOT USE_SYSTEM_SQUASHFUSE)
- # as distros don't provide suitable squashfuse and squashfs-tools, those dependencies are bundled in, can, and should
- # be used from this repository
- # TODO: implement out-of-source builds for squashfuse, as for the other dependencies
- configure_file(
-     ${CMAKE_CURRENT_SOURCE_DIR}/src/patch-squashfuse.sh.in
-     ${CMAKE_CURRENT_BINARY_DIR}/patch-squashfuse.sh
-     @ONLY
- )
- 
- ExternalProject_Add(squashfuse-EXTERNAL
-@@ -259,20 +261,34 @@ ExternalProject_Add(squashfuse-EXTERNAL
-     BUILD_IN_SOURCE ON
-     INSTALL_COMMAND ${MAKE} install
- )
- 
- import_external_project(
-     TARGET_NAME squashfuse
-     EXT_PROJECT_NAME squashfuse-EXTERNAL
-     LIBRARIES "<SOURCE_DIR>/.libs/libsquashfuse.a;<SOURCE_DIR>/.libs/libsquashfuse_ll.a;<SOURCE_DIR>/.libs/libfuseprivate.a"
-     INCLUDE_DIRS "<SOURCE_DIR>"
- )
-+else()
+-    message(STATUS "Using system squashfuse")
 +    message(STATUS "Using system squashfsfuse from ${SQUASHFUSE}")
-+
-+    add_library(squashfuse INTERFACE IMPORTED GLOBAL)
+
+-    import_pkgconfig_target(TARGET_NAME libsquashfuse PKGCONFIG_TARGET squashfuse)
++    add_library(libsquashfuse INTERFACE IMPORTED GLOBAL)
 +
 +    set(squashfuse_INCLUDE_DIRS "${SQUASHFUSE}/include")
 +    set(squashfuse_LIBRARIES "${SQUASHFUSE}/lib/libsquashfuse.a;${SQUASHFUSE}/lib/libsquashfuse_ll.a;${SQUASHFUSE}/lib/libfuseprivate.a")
 +
 +    set_property(
-+      TARGET squashfuse
++      TARGET libsquashfuse
 +      PROPERTY INTERFACE_LINK_LIBRARIES ${squashfuse_LIBRARIES}
 +    )
 +    include_directories(${squashfuse_INCLUDE_DIRS})
-+endif()
- 
- 
- set(USE_SYSTEM_INOTIFY_TOOLS OFF CACHE BOOL "Use system libinotifytools instead of building our own")
- 
- if(NOT USE_SYSTEM_INOTIFY_TOOLS)
-     message(STATUS "Downloading and building inotify-tools")
- 
-     # TODO: build out of source
-     ExternalProject_Add(inotify-tools-EXTERNAL
-         URL https://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
-@@ -345,20 +361,23 @@ if(NOT USE_SYSTEM_GTEST)
-             INCLUDE_DIRS "<INSTALL_DIR>/include/"
-         )
-     else()
-         message(STATUS "Using system GTest")
- 
-         import_find_pkg_target(gtest GTest GTEST)
-     endif()
- endif()
- 
- 
-+set(USE_SYSTEM_MKSQUASHFS OFF CACHE BOOL "Use system mksquashfs instead of downloading and building our own")
-+
-+if(NOT USE_SYSTEM_MKSQUASHFS)
- # TODO: allow using system wide mksquashfs
- set(mksquashfs_cflags "-DXZ_SUPPORT ${CFLAGS}")
- 
- if(xz_LIBRARIES MATCHES "\\.a$")
-     set(mksquashfs_ldflags "${xz_LIBRARIES}")
- else()
-     set(mksquashfs_ldflags "-l${xz_LIBRARIES}")
- endif()
- 
- if(xz_INCLUDE_DIRS)
-@@ -385,20 +404,25 @@ ExternalProject_Add(mksquashfs
-     INSTALL_COMMAND ${MAKE} -C squashfs-tools/ install INSTALL_DIR=<INSTALL_DIR>
- )
- 
- ExternalProject_Get_Property(mksquashfs INSTALL_DIR)
- set(mksquashfs_INSTALL_DIR "${INSTALL_DIR}")
- mark_as_advanced(mksquashfs_INSTALL_DIR)
- 
- # for later use when packaging as an AppImage
- set(mksquashfs_BINARY "${mksquashfs_INSTALL_DIR}/mksquashfs")
- mark_as_advanced(mksquashfs_BINARY)
-+else()
-+    message(STATUS "Using system mksquashfs")
-+
-+    set(mksquashfs_BINARY "mksquashfs")
-+endif()
- 
- 
- #### build dependency configuration ####
- 
- # only have to build custom xz when not using system libxz
- if(TARGET xz-EXTERNAL)
-     if(TARGET squashfuse-EXTERNAL)
-         ExternalProject_Add_StepDependencies(squashfuse-EXTERNAL configure xz-EXTERNAL)
-     endif()
-     if(TARGET mksquashfs)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 3f25442..974ed0e 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -197,27 +197,27 @@ target_include_directories(digest_md5
- 
- target_link_libraries(digest_md5
-     PRIVATE
-     libglib
- )
- 
- 
- # install binaries
- if(AUXILIARY_FILES_DESTINATION)
-     install(
--        PROGRAMS ${mksquashfs_INSTALL_DIR}/mksquashfs ${CMAKE_CURRENT_BINARY_DIR}/runtime
-+        PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runtime
-         DESTINATION ${AUXILIARY_FILES_DESTINATION}
-         COMPONENT applications
-     )
- else()
-     install(
--        PROGRAMS ${mksquashfs_INSTALL_DIR}/mksquashfs ${CMAKE_CURRENT_BINARY_DIR}/runtime
-+        PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runtime
-         DESTINATION bin
-         COMPONENT applications
-     )
  endif()
- 
- install(
-     TARGETS AppRun appimagetool digest validate
-     RUNTIME DESTINATION bin COMPONENT applications
-     LIBRARY DESTINATION lib COMPONENT applications
-     ARCHIVE DESTINATION lib/static COMPONENT applications
-diff --git a/src/shared.c b/src/shared.c
-index cf5fd5c..4f48dbc 100644
---- a/src/shared.c
-+++ b/src/shared.c
-@@ -34,21 +34,21 @@
+
+
+diff --git a/src/appimagetool.c b/src/appimagetool.c
+index 6b37419..23425e7 100644
+--- a/src/appimagetool.c
++++ b/src/appimagetool.c
+@@ -38,7 +38,7 @@
+ #include <argp.h>
+
+ #include <fcntl.h>
+-#include "squashfuse.h"
++#include <squashfuse.h>
+
+ #include <sys/types.h>
  #include <sys/stat.h>
+@@ -96,7 +96,7 @@ static void die(const char *msg) {
+ }
+
+ /* Function that prints the contents of a squashfs file
+-* using libsquashfuse (#include "squashfuse.h") */
++* using libsquashfuse (#include <squashfuse.h>) */
+ int sfs_ls(char* image) {
+     sqfs_err err = SQFS_OK;
+     sqfs_traverse trv;
+diff --git a/src/appimagetoolnoglib.c b/src/appimagetoolnoglib.c
+index f900e76..ffa87f8 100644
+--- a/src/appimagetoolnoglib.c
++++ b/src/appimagetoolnoglib.c
+@@ -3,7 +3,7 @@
+
+ #include <stdlib.h>
+ #include <fcntl.h>
+-#include "squashfuse.h"
++#include <squashfuse.h>
+
  #include <sys/types.h>
- #include <dirent.h>
- #include <errno.h>
- 
- #include <glib.h>
- #include <glib/gprintf.h>
- #include <glib/gstdio.h>
- #include <gio/gio.h>
- 
+ #include <sys/stat.h>
+@@ -118,7 +118,7 @@ int is_regular_file(const char *path)
+ }
+
+ /* Function that prints the contents of a squashfs file
+- * using libsquashfuse (#include "squashfuse.h") */
++ * using libsquashfuse (#include <squashfuse.h>) */
+ int sfs_ls(char* image) {
+ 	sqfs_err err = SQFS_OK;
+ 	sqfs_traverse trv;
+diff --git a/src/runtime.c b/src/runtime.c
+index bada3af..70a642b 100644
+--- a/src/runtime.c
++++ b/src/runtime.c
+@@ -29,7 +29,7 @@
+
+ #define _GNU_SOURCE
+
 -#include "squashfuse.h"
 +#include <squashfuse.h>
  #include <squashfs_fs.h>
- #include "getsection.h"
- #include "elf.h"
- 
- #include "xdg-basedir.h"
- 
- // own header
- #include "shared.h"
- 
- #if HAVE_LIBARCHIVE3 == 1 // CentOS
+ #include <nonstd.h>
diff --git a/nixpkgs/pkgs/tools/package-management/apt/default.nix b/nixpkgs/pkgs/tools/package-management/apt/default.nix
index 178103cdb380..86982bf7f3a2 100644
--- a/nixpkgs/pkgs/tools/package-management/apt/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/apt/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, pkg-config, cmake, perlPackages, curl, gtest
-, gnutls, libtasn1, lzma, bzip2, lz4, zstd, libseccomp, udev
+, gnutls, libtasn1, xz, bzip2, lz4, zstd, libseccomp, udev
 , db, dpkg, libxslt, docbook_xsl, docbook_xml_dtd_45
 
 # used when WITH_DOC=ON
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config cmake gtest libxslt.bin ];
 
   buildInputs = [
-    perlPackages.perl curl gnutls libtasn1 lzma bzip2 lz4 zstd libseccomp udev db dpkg
+    perlPackages.perl curl gnutls libtasn1 xz bzip2 lz4 zstd libseccomp udev db dpkg
   ] ++ lib.optionals withDocs [
     doxygen perlPackages.Po4a w3m docbook_xml_dtd_45
   ] ++ lib.optionals withNLS [
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
index c2cda02ca255..3cb5340d1d7c 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
@@ -1,16 +1,16 @@
 { lib, rustPlatform, fetchFromGitHub }:
 rustPlatform.buildRustPackage rec {
   pname = "cargo-about";
-  version = "0.2.3";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-about";
     rev = version;
-    sha256 = "1jdp5ksxm4rsqhirgl5zwpiahrz2lx046pkvf6xvr6ms70l2xiwj";
+    sha256 = "sha256-MsXNneKj2xCci1guj1TKcIrX7XByJ5/lWUmjxAsgzPY=";
   };
 
-  cargoSha256 = "07bjxsg5kgx8dg3wf6mvi5460db206l68irqc21hz10plz5llmnr";
+  cargoSha256 = "sha256-NdzgIB6uXMtGiLwOACEIeAb4iv7mYLnwRte3M/TkSMA=";
 
   meta = with lib; {
     description = "Cargo plugin to generate list of all licenses for a crate";
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
index df492863a142..d5be54b71b05 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
@@ -1,20 +1,23 @@
 { stdenv, lib, rustPlatform, fetchFromGitHub, openssl, pkg-config, Security, libiconv }:
 rustPlatform.buildRustPackage rec {
   pname = "cargo-audit";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "RustSec";
     repo = "cargo-audit";
     rev = "v${version}";
-    sha256 = "1q8i2c3f8ir1pxkvla4dshz7n0cl97mjydc64xis5pph39f69yc1";
+    sha256 = "sha256-w3wKUAAp9z4iQbx16z5chpKHYxCDLZzJesnIct2Qy4g=";
   };
 
-  cargoSha256 = "1b62mcj4gjz2arjf3r30k9qcg81i5x0149a4bfj39xdrz55gg0wh";
+  cargoSha256 = "sha256-ychF3qbwEjumLyqc+xDI8bbKzvdoRYF/X/idlk+JxDE=";
 
   buildInputs = [ openssl libiconv ] ++ lib.optionals stdenv.isDarwin [ Security ];
   nativeBuildInputs = [ pkg-config ];
 
+  # enables `cargo audit fix`
+  cargoBuildFlags = [ "--features fix" ];
+
   # The tests require network access which is not available in sandboxed Nix builds.
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix
index 668a623ee2a5..f171a1500454 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix
@@ -8,24 +8,26 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deb";
-  version = "1.24.0";
+  version = "1.29.1";
 
   src = fetchFromGitHub {
     owner = "mmstick";
     repo = pname;
-    rev = "b49351f6770aa7aeb053dd1d4a02d6b086caad2a";
-    sha256 = "1hs96yv0awgi7ggpxp7k3n21jpv642sm0529b21hs9ib6kp4vs8s";
+    rev = "v${version}";
+    sha256 = "sha256-oWivGy2azF9zpeZ0UAi7Bxm4iXFWAjcBG0pN7qtkSU8=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "1vqnnqn6rzkdi239bh3lk7gaxr7w6v3c4ws4ya1ah04g6v9hkzlw";
-
-  checkType = "debug";
+  cargoSha256 = "0j9frvcmy9hydw73v0ffr0bjvq2ykylnpmiw700z344djpaaa08y";
 
   preCheck = ''
     substituteInPlace tests/command.rs \
-      --replace 'target/debug' "target/${rust.toRustTarget stdenv.buildPlatform}/debug"
+      --replace 'target/debug' "target/${rust.toRustTarget stdenv.buildPlatform}/release"
+
+    # This is an FHS specific assert depending on glibc location
+    substituteInPlace src/dependencies.rs \
+      --replace 'assert!(deps.iter().any(|d| d.starts_with("libc")));' '// no libc assert here'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
new file mode 100644
index 000000000000..ba3c51822e90
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
@@ -0,0 +1,28 @@
+{lib, stdenv, fetchurl, apacheAnt, jdk, axis2, dbus_java }:
+
+stdenv.mkDerivation {
+  name = "DisnixWebService-0.10";
+  src = fetchurl {
+    url = "https://github.com/svanderburg/DisnixWebService/releases/download/DisnixWebService-0.10/DisnixWebService-0.10.tar.gz";
+    sha256 = "0m451msd127ay09yb8rbflg68szm8s4hh65j99f7s3mz375vc114";
+  };
+  buildInputs = [ apacheAnt jdk ];
+  PREFIX = "\${env.out}";
+  AXIS2_LIB = "${axis2}/lib";
+  AXIS2_WEBAPP = "${axis2}/webapps/axis2";
+  DBUS_JAVA_LIB = "${dbus_java}/share/java";
+  prePatch = ''
+    sed -i -e "s|#JAVA_HOME=|JAVA_HOME=${jdk}|" \
+       -e "s|#AXIS2_LIB=|AXIS2_LIB=${axis2}/lib|" \
+        scripts/disnix-soap-client
+  '';
+  buildPhase = "ant";
+  installPhase = "ant install";
+
+  meta = {
+    description = "A SOAP interface and client for Disnix";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.sander ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/default.nix
new file mode 100644
index 000000000000..14be0924f271
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/disnix/default.nix
@@ -0,0 +1,20 @@
+{ lib, stdenv, fetchurl, pkg-config, glib, libxml2, libxslt, getopt, gettext, nixUnstable, dysnomia, libintl, libiconv, help2man, doclifter, docbook5, dblatex, doxygen, libnixxml, autoreconfHook }:
+
+stdenv.mkDerivation {
+  name = "disnix-0.10";
+
+  src = fetchurl {
+    url = "https://github.com/svanderburg/disnix/releases/download/disnix-0.10/disnix-0.10.tar.gz";
+    sha256 = "0mciqbc2h60nc0i6pd36w0m2yr96v97ybrzrqzh5f67ac1f0gqwg";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ glib libxml2 libxslt getopt nixUnstable libintl libiconv dysnomia ];
+
+  meta = {
+    description = "A Nix-based distributed service deployment tool";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = with lib.maintainers; [ sander tomberek ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/disnixos/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/disnixos/default.nix
new file mode 100644
index 000000000000..1b9d2eaefcd8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/disnix/disnixos/default.nix
@@ -0,0 +1,20 @@
+{ lib, stdenv, fetchurl, dysnomia, disnix, socat, pkg-config, getopt }:
+
+stdenv.mkDerivation {
+  name = "disnixos-0.9";
+
+  src = fetchurl {
+    url = "https://github.com/svanderburg/disnixos/releases/download/disnixos-0.9/disnixos-0.9.tar.gz";
+    sha256 = "0vllm5a8d9dvz5cjiq1mmkc4r4vnljabq42ng0ml85sjn0w7xvm7";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ socat dysnomia disnix getopt ];
+
+  meta = {
+    description = "Provides complementary NixOS infrastructure deployment to Disnix";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = [ lib.maintainers.sander ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix
new file mode 100644
index 000000000000..b4c3851a50ff
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool , pkg-config, glib, libxml2, libxslt, getopt, libiconv, gettext, nix, disnix, libnixxml }:
+
+stdenv.mkDerivation rec {
+  version="2020-07-04";
+  name = "dydisnix-${version}";
+
+  src = fetchFromGitHub {
+    owner = "svanderburg";
+    repo = "dydisnix";
+    rev = "e99091f1c2329d562097e35faedee80622d387f0";
+    sha256 = "sha256-XKab2hNGtWDkIEMxE1vMvqQBTP9BvHTabBVfzpH57h0=";
+  };
+
+  nativeBuildInputs = [ pkg-config autoconf automake libtool ];
+  buildInputs = [ glib libxml2 libxslt getopt nix disnix libiconv gettext libnixxml ];
+  preConfigure = ''
+    ./bootstrap
+  '';
+
+  meta = {
+    description = "A toolset enabling self-adaptive redeployment on top of Disnix";
+    longDescription = "Dynamic Disnix is a (very experimental!) prototype extension framework for Disnix supporting dynamic (re)deployment of service-oriented systems.";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = [ lib.maintainers.tomberek ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/dysnomia/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/dysnomia/default.nix
new file mode 100644
index 000000000000..56ba16afb47b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/disnix/dysnomia/default.nix
@@ -0,0 +1,71 @@
+{ lib, stdenv, fetchurl, netcat
+, systemd ? null, ejabberd ? null, mysql ? null, postgresql ? null, subversion ? null, mongodb ? null, mongodb-tools ? null, influxdb ? null, supervisor ? null, docker ? null
+, enableApacheWebApplication ? false
+, enableAxis2WebService ? false
+, enableEjabberdDump ? false
+, enableMySQLDatabase ? false
+, enablePostgreSQLDatabase ? false
+, enableSubversionRepository ? false
+, enableTomcatWebApplication ? false
+, enableMongoDatabase ? false
+, enableInfluxDatabase ? false
+, enableSupervisordProgram ? false
+, enableDockerContainer ? true
+, enableLegacy ? false
+, catalinaBaseDir ? "/var/tomcat"
+, jobTemplate ? "systemd"
+, getopt
+}:
+
+assert enableMySQLDatabase -> mysql != null;
+assert enablePostgreSQLDatabase -> postgresql != null;
+assert enableSubversionRepository -> subversion != null;
+assert enableEjabberdDump -> ejabberd != null;
+assert enableMongoDatabase -> (mongodb != null && mongodb-tools != null);
+assert enableInfluxDatabase -> influxdb != null;
+assert enableSupervisordProgram -> supervisor != null;
+assert enableDockerContainer -> docker != null;
+
+stdenv.mkDerivation {
+  name = "dysnomia-0.10";
+  src = fetchurl {
+    url = "https://github.com/svanderburg/dysnomia/releases/download/dysnomia-0.10/dysnomia-0.10.tar.gz";
+    sha256 = "19zg4nhn0f9v4i7c9hhan1i4xv3ljfpl2d0s84ph8byiscvhyrna";
+  };
+
+  preConfigure = if enableEjabberdDump then "export PATH=$PATH:${ejabberd}/sbin" else "";
+
+  configureFlags = [
+     (if enableApacheWebApplication then "--with-apache" else "--without-apache")
+     (if enableAxis2WebService then "--with-axis2" else "--without-axis2")
+     (if enableEjabberdDump then "--with-ejabberd" else "--without-ejabberd")
+     (if enableMySQLDatabase then "--with-mysql" else "--without-mysql")
+     (if enablePostgreSQLDatabase then "--with-postgresql" else "--without-postgresql")
+     (if enableSubversionRepository then "--with-subversion" else "--without-subversion")
+     (if enableTomcatWebApplication then "--with-tomcat=${catalinaBaseDir}" else "--without-tomcat")
+     (if enableMongoDatabase then "--with-mongodb" else "--without-mongodb")
+     (if enableInfluxDatabase then "--with-influxdb" else "--without-influxdb")
+     (if enableSupervisordProgram then "--with-supervisord" else "--without-supervisord")
+     (if enableDockerContainer then "--with-docker" else "--without-docker")
+     "--with-job-template=${jobTemplate}"
+   ] ++ lib.optional enableLegacy "--enable-legacy";
+
+  buildInputs = [ getopt netcat ]
+    ++ lib.optional stdenv.isLinux systemd
+    ++ lib.optional enableEjabberdDump ejabberd
+    ++ lib.optional enableMySQLDatabase mysql.out
+    ++ lib.optional enablePostgreSQLDatabase postgresql
+    ++ lib.optional enableSubversionRepository subversion
+    ++ lib.optional enableMongoDatabase mongodb
+    ++ lib.optional enableMongoDatabase mongodb-tools
+    ++ lib.optional enableInfluxDatabase influxdb
+    ++ lib.optional enableSupervisordProgram supervisor
+    ++ lib.optional enableDockerContainer docker;
+
+  meta = {
+    description = "Automated deployment of mutable components and services for Disnix";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.sander ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/dpkg/default.nix b/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
index 7eee52f8efa8..459b9550b7c8 100644
--- a/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dpkg";
-  version = "1.20.5";
+  version = "1.20.7.1";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/dpkg/dpkg_${version}.tar.xz";
-    sha256 = "1pg0yd1q9l5cx7pr0853yds1n3mh5b28zkw79gjqjzcmjwqkzwpj";
+    sha256 = "sha256-Cq0t5of3l++OvavHuv0W3BSX8c4jvZFG+apz85alY28=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/package-management/emplace/default.nix b/nixpkgs/pkgs/tools/package-management/emplace/default.nix
index e5da9a1d7b42..735c940f18b1 100644
--- a/nixpkgs/pkgs/tools/package-management/emplace/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "1.0.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dDFc13IVD4f5UgiHXAcqRKoZEPTn/iBOogT3XfdstK0=";
+    sha256 = "sha256-lBCGSeEVxlXrn1RHqMEYSXLOehJw/DiL+33nx4+rV2Y=";
   };
 
-  cargoSha256 = "sha256-QsYOR7tk5cRCF0+xkpJ/F+Z3pjBPxTDFvA1gEi82AOQ=";
+  cargoSha256 = "sha256-QL71pJ5RBWRRse5DXwctMvu+z818jEEQjaNBXHLy20Y=";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/nixpkgs/pkgs/tools/package-management/home-manager/default.nix b/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
index 8897a313e8db..db60d5e8429e 100644
--- a/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
@@ -6,13 +6,13 @@
 stdenv.mkDerivation rec {
 
   pname = "home-manager";
-  version = "2021-01-16";
+  version = "2021-03-21";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "home-manager";
-    rev = "8127799f79ee96129b295d78294f40a54078131f";
-    sha256 = "0iji8nxa66s409pvjwi370ycsw4m74w6b3ywnjpfkl2filpapjns";
+    rev = "ddcd476603dfd3388b1dc8234fa9d550156a51f5";
+    sha256 = "sha256-E6ABXtzw6bHmrIirB1sJL6S2MEa3sfcvRLzRa92frCo=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/package-management/libdnf/default.nix b/nixpkgs/pkgs/tools/package-management/libdnf/default.nix
index 59df56f86fa9..5d4a0716cc7a 100644
--- a/nixpkgs/pkgs/tools/package-management/libdnf/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/libdnf/default.nix
@@ -3,13 +3,13 @@
 
 gcc9Stdenv.mkDerivation rec {
   pname = "libdnf";
-  version = "0.58.0";
+  version = "0.60.0";
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = pname;
     rev = version;
-    sha256 = "0an8giv0lm0qqc76fpmqg42ra081mlj62b9r0s1p0sgb3270l76l";
+    sha256 = "sha256-cZlUhzmfplj2XEpWWwPfT/fiH2cj3lIc44UVrFHcl3s=";
   };
 
   patches = lib.optionals stdenv.isDarwin [ ./darwin.patch ];
diff --git a/nixpkgs/pkgs/tools/package-management/licensee/Gemfile.lock b/nixpkgs/pkgs/tools/package-management/licensee/Gemfile.lock
index 9f1a24337b81..e631b63963c3 100644
--- a/nixpkgs/pkgs/tools/package-management/licensee/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/package-management/licensee/Gemfile.lock
@@ -4,29 +4,35 @@ GEM
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
     dotenv (2.7.6)
-    faraday (1.0.1)
+    faraday (1.3.0)
+      faraday-net_http (~> 1.0)
       multipart-post (>= 1.2, < 3)
-    licensee (9.14.1)
+      ruby2_keywords
+    faraday-net_http (1.0.1)
+    licensee (9.15.1)
       dotenv (~> 2.0)
-      octokit (~> 4.17)
+      octokit (~> 4.20)
       reverse_markdown (~> 1.0)
       rugged (>= 0.24, < 2.0)
       thor (>= 0.19, < 2.0)
-    mini_portile2 (2.4.0)
+    mini_portile2 (2.5.0)
     multipart-post (2.1.1)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
-    octokit (4.18.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    octokit (4.20.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
     public_suffix (4.0.6)
+    racc (1.5.2)
     reverse_markdown (1.4.0)
       nokogiri
+    ruby2_keywords (0.0.4)
     rugged (1.1.0)
     sawyer (0.8.2)
       addressable (>= 2.3.5)
       faraday (> 0.8, < 2.0)
-    thor (1.0.1)
+    thor (1.1.0)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/tools/package-management/licensee/gemset.nix b/nixpkgs/pkgs/tools/package-management/licensee/gemset.nix
index 281f9376e178..b9b11b465f69 100644
--- a/nixpkgs/pkgs/tools/package-management/licensee/gemset.nix
+++ b/nixpkgs/pkgs/tools/package-management/licensee/gemset.nix
@@ -21,12 +21,22 @@
     version = "2.7.6";
   };
   faraday = {
-    dependencies = ["multipart-post"];
+    dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
+      sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
       type = "gem";
     };
     version = "1.0.1";
@@ -37,20 +47,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c551j4qy773d79hgypjaz43h5wjn08mnxnxy9s2vdjc40qm95k5";
+      sha256 = "1pvrz9fjvxzk3aq85zgh8dkw98kz54jmwi10k3shc8dqbrlvragy";
       type = "gem";
     };
-    version = "9.14.1";
+    version = "9.15.1";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   multipart-post = {
     groups = ["default"];
@@ -63,15 +73,15 @@
     version = "2.1.1";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.1";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -79,10 +89,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zvfr9njmj5svi39fcsi2b0g7pcxb0vamw9dlyas8bg814jlzhi6";
+      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
       type = "gem";
     };
-    version = "4.18.0";
+    version = "4.20.0";
   };
   public_suffix = {
     groups = ["default"];
@@ -94,6 +104,16 @@
     };
     version = "4.0.6";
   };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   reverse_markdown = {
     dependencies = ["nokogiri"];
     groups = ["default"];
@@ -105,6 +125,16 @@
     };
     version = "1.4.0";
   };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
   rugged = {
     groups = ["default"];
     platforms = [];
@@ -131,9 +161,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/nfpm/default.nix b/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
index bd19f30f1c12..521616a5472d 100644
--- a/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "2.2.4";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-EIHEdU1H5XhhzuWJUEvnKNsuNV8CBJrHBlaZlSfrSro=";
+    sha256 = "sha256-zS8HXzu0oX66oVmupMU9YZKXGF+IQ/tCrO32PXfHPGY=";
   };
 
-  vendorSha256 = "sha256-aSoryidfAfqPBpOtAXFJsq1ZcqJqpGiX3pZz5GpkKqQ=";
+  vendorSha256 = "sha256-1zPrCmC+J9LbD3tRKzdJbyWbyTtD6SiPZ6efc9CSjsg=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix b/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix
index 41ce0967b2e3..7b52f2585f35 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix
@@ -11,8 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "0hdvdjm467w37clkhbifn54hbdmnxlbk66cj88lwaz26j4s2ik5g";
   };
 
+  nativeBuildInputs = [ makeWrapper ];
+
   # coreutils, gnutar is actually needed by nix for bootstrap
-  buildInputs = [ nix coreutils makeWrapper gnutar gzip bzip2 ];
+  buildInputs = [ nix coreutils gnutar gzip bzip2 ];
 
   binPath = lib.makeBinPath [ nix coreutils gnutar gzip bzip2 ];
 
diff --git a/nixpkgs/pkgs/tools/package-management/nix-pin/default.nix b/nixpkgs/pkgs/tools/package-management/nix-pin/default.nix
index 0e4005022ff9..4dc0098316c6 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-pin/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-pin/default.nix
@@ -9,7 +9,8 @@ let self = stdenv.mkDerivation rec {
     rev = "version-${version}";
     sha256 = "1pccvc0iqapms7kidrh09g5fdx44x622r5l9k7bkmssp3v4c68vy";
   };
-  buildInputs = [ python3 mypy makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python3 mypy ];
   checkPhase = ''
     mypy bin/*
   '';
diff --git a/nixpkgs/pkgs/tools/package-management/nix-prefetch-scripts/default.nix b/nixpkgs/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
index 8b318306873c..a77d0961c843 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, makeWrapper, buildEnv,
-  breezy, coreutils, cvs, findutils, gawk, git, gnused, mercurial, nix, subversion
+{ lib, stdenv, makeWrapper, buildEnv
+, breezy, coreutils, cvs, findutils, gawk, git, gnused, mercurial, nix, subversion
 }:
 
 let mkPrefetchScript = tool: src: deps:
@@ -22,7 +22,7 @@ let mkPrefetchScript = tool: src: deps:
     meta = with lib; {
       description = "Script used to obtain source hashes for fetch${tool}";
       maintainers = with maintainers; [ bennofs ];
-      platforms = lib.platforms.unix;
+      platforms = platforms.unix;
     };
   };
 in rec {
@@ -40,7 +40,7 @@ in rec {
     meta = with lib; {
       description = "Collection of all the nix-prefetch-* scripts which may be used to obtain source hashes";
       maintainers = with maintainers; [ bennofs ];
-      platforms = lib.platforms.unix;
+      platforms = platforms.unix;
     };
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/nix/default.nix b/nixpkgs/pkgs/tools/package-management/nix/default.nix
index 9ab08007ec71..c54a5b28cee1 100644
--- a/nixpkgs/pkgs/tools/package-management/nix/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix/default.nix
@@ -10,13 +10,13 @@ let
 
 common =
   { lib, stdenv, perl, curl, bzip2, sqlite, openssl ? null, xz
-  , bash, coreutils, gzip, gnutar
+  , bash, coreutils, util-linuxMinimal, gzip, gnutar
   , pkg-config, boehmgc, perlPackages, libsodium, brotli, boost, editline, nlohmann_json
   , autoreconfHook, autoconf-archive, bison, flex
-  , jq, libarchive
+  , jq, libarchive, libcpuid
   , lowdown, mdbook
   # Used by tests
-  , gmock
+  , gtest
   , busybox-sandbox-shell
   , storeDir
   , stateDir
@@ -41,6 +41,7 @@ common =
 
       nativeBuildInputs =
         [ pkg-config ]
+        ++ lib.optionals stdenv.isLinux [ util-linuxMinimal ]
         ++ lib.optionals is24
           [ autoreconfHook
             autoconf-archive
@@ -55,7 +56,8 @@ common =
         ]
         ++ lib.optionals stdenv.isDarwin [ Security ]
         ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
-        ++ lib.optionals is24 [ libarchive gmock lowdown ]
+        ++ lib.optionals is24 [ libarchive gtest lowdown ]
+        ++ lib.optional (is24 && stdenv.isx86_64) libcpuid
         ++ lib.optional withLibseccomp libseccomp
         ++ lib.optional withAWS
             ((aws-sdk-cpp.override {
@@ -138,7 +140,7 @@ common =
       doInstallCheck = true; # not cross
 
       # socket path becomes too long otherwise
-      preInstallCheck = lib.optional stdenv.isDarwin ''
+      preInstallCheck = lib.optionalString stdenv.isDarwin ''
         export TMPDIR=$NIX_BUILD_TOP
       '';
 
@@ -212,28 +214,15 @@ in rec {
 
   nixUnstable = lib.lowPrio (callPackage common rec {
     name = "nix-2.4${suffix}";
-    suffix = "pre20201205_a5d85d0";
+    suffix = "pre20210326_dd77f71";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "a5d85d07faa94cf3518e98273be4bee3d495f06a";
-      sha256 = "0g9jjhh0vs4hjrff5yx88x6sh7rk87ngvni3gnyxajqia957dipg";
+      rev = "dd77f71afe6733e9790dd001125c423cb648b7ce";
+      sha256 = "rVHzrsCtdiWjyLuHnDplG2mx+7dw5VyzZ9ReXxuCvHY=";
     };
 
-    patches = [
-      (fetchpatch { # Fix build on gcc10
-        url = "https://github.com/NixOS/nix/commit/d4870462f8f539adeaa6dca476aff6f1f31e1981.patch";
-        sha256 = "mTvLvuxb2QVybRDgntKMq+b6da/s3YgM/ll2rWBeY/Y=";
-      })
-      # Fix the ETag bug. PR merged. Remove when updating to >= 20210125
-      # https://github.com/NixOS/nixpkgs/pull/109309#issuecomment-768331750
-      (fetchpatch {
-        url = "https://github.com/NixOS/nix/commit/c5b42c5a42138329c6d02da0d8a53cb59c6077f4.patch";
-        sha256 = "sha256-d4RNOKMxa4NMbFgYcqWRv2ByHt8F/XUWV+6P9qHz7S4=";
-      })
-    ];
-
     inherit storeDir stateDir confDir boehmgc;
   });
 
diff --git a/nixpkgs/pkgs/tools/package-management/nixops/default.nix b/nixpkgs/pkgs/tools/package-management/nixops/default.nix
index 0dcbeb8abfed..16ecc7f11de8 100644
--- a/nixpkgs/pkgs/tools/package-management/nixops/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nixops/default.nix
@@ -63,7 +63,7 @@ in python2Packages.buildPythonApplication {
   meta = {
     homepage = "https://github.com/NixOS/nixops";
     description = "NixOS cloud provisioning and deployment tool";
-    maintainers = with lib.maintainers; [ aminechikhaoui eelco rob domenkozar ];
+    maintainers = with lib.maintainers; [ aminechikhaoui eelco rob ];
     platforms = lib.platforms.unix;
     license = lib.licenses.lgpl3;
   };
diff --git a/nixpkgs/pkgs/tools/package-management/opkg/default.nix b/nixpkgs/pkgs/tools/package-management/opkg/default.nix
index c4fc804b80f7..631274cb7222 100644
--- a/nixpkgs/pkgs/tools/package-management/opkg/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/opkg/default.nix
@@ -1,16 +1,16 @@
-{ lib, stdenv, fetchurl, pkg-config, curl, gpgme, libarchive, bzip2, lzma, attr, acl, libxml2
+{ lib, stdenv, fetchurl, pkg-config, curl, gpgme, libarchive, bzip2, xz, attr, acl, libxml2
 , autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.3";
+  version = "0.4.4";
   pname = "opkg";
   src = fetchurl {
     url = "https://downloads.yoctoproject.org/releases/opkg/opkg-${version}.tar.gz";
-    sha256 = "06278gmb26b9nl8l328cc2c2mhfi0dhac65syws17kf09f2m596x";
+    sha256 = "sha256-IhesxYuOsxMAYx66514iLrxwDJwc9kCAiHBdGaRyyDk=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
-  buildInputs = [ curl gpgme libarchive bzip2 lzma attr acl libxml2 ];
+  buildInputs = [ curl gpgme libarchive bzip2 xz attr acl libxml2 ];
 
   meta = with lib; {
     description = "A lightweight package management system based upon ipkg";
diff --git a/nixpkgs/pkgs/tools/package-management/packagekit/qt.nix b/nixpkgs/pkgs/tools/package-management/packagekit/qt.nix
index f87ce8258fa0..d1d135c15795 100644
--- a/nixpkgs/pkgs/tools/package-management/packagekit/qt.nix
+++ b/nixpkgs/pkgs/tools/package-management/packagekit/qt.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config qttools ];
 
+  dontWrapQtApps = true;
+
   meta = packagekit.meta // {
     description = "System to facilitate installing and updating packages - Qt";
   };
diff --git a/nixpkgs/pkgs/tools/package-management/pacman/default.nix b/nixpkgs/pkgs/tools/package-management/pacman/default.nix
index 771454cd409f..48fa91c7966b 100644
--- a/nixpkgs/pkgs/tools/package-management/pacman/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/pacman/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, pkg-config, m4, perl, libarchive, openssl, zlib, bzip2,
-lzma, curl, runtimeShell }:
+xz, curl, runtimeShell }:
 
 stdenv.mkDerivation rec {
   pname = "pacman";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "sysconfdir=${placeholder "out"}/etc" ];
 
   nativeBuildInputs = [ pkg-config m4 ];
-  buildInputs = [ curl perl libarchive openssl zlib bzip2 lzma ];
+  buildInputs = [ curl perl libarchive openssl zlib bzip2 xz ];
 
   postFixup = ''
     substituteInPlace $out/bin/repo-add \
diff --git a/nixpkgs/pkgs/tools/package-management/python2nix/default.nix b/nixpkgs/pkgs/tools/package-management/python2nix/default.nix
deleted file mode 100644
index b6ffe9abc024..000000000000
--- a/nixpkgs/pkgs/tools/package-management/python2nix/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ lib, fetchFromGitHub, pythonPackages }:
-
-pythonPackages.buildPythonApplication {
-  name = "python2nix-20140927";
-
-  src = fetchFromGitHub {
-    owner = "proger";
-    repo = "python2nix";
-    rev = "84e3a5bbe82e5d9d694d6db8dabf73def4ac917b";
-    sha256 = "022gr0gw6azfi3iq4ggb3fhkw2jljs6n5rncn45hb5liwakigj8i";
-  };
-
-  propagatedBuildInputs = with pythonPackages; [ requests pip setuptools ];
-
-  meta = with lib; {
-    maintainers = [ maintainers.domenkozar ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/package-management/rpm/default.nix b/nixpkgs/pkgs/tools/package-management/rpm/default.nix
index 5c72dc071521..f942efe6dd7b 100644
--- a/nixpkgs/pkgs/tools/package-management/rpm/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/rpm/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rpm";
-  version = "4.16.1.2";
+  version = "4.16.1.3";
 
   src = fetchurl {
     url = "http://ftp.rpm.org/releases/rpm-${lib.versions.majorMinor version}.x/rpm-${version}.tar.bz2";
-    sha256 = "1k6ank2aad7r503w12m6m494mxr6iccj52wqhwbc94pwxsf34mw3";
+    sha256 = "07g2g0adgjm29wqy94iqhpp5dk0hacfw1yf7kzycrrxnfbwwfgai";
   };
 
   outputs = [ "out" "dev" "man" ];
@@ -73,8 +73,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "http://www.rpm.org/";
-    license = licenses.gpl2;
+    homepage = "https://www.rpm.org/";
+    license = with licenses; [ gpl2Plus lgpl21Plus ];
     description = "The RPM Package Manager";
     maintainers = with maintainers; [ copumpkin ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/tools/security/aespipe/default.nix b/nixpkgs/pkgs/tools/security/aespipe/default.nix
index f2244f98d54b..dcef28f2258f 100644
--- a/nixpkgs/pkgs/tools/security/aespipe/default.nix
+++ b/nixpkgs/pkgs/tools/security/aespipe/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "http://loop-aes.sourceforge.net/aespipe.README";
     license = licenses.gpl2;
     maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/age/default.nix b/nixpkgs/pkgs/tools/security/age/default.nix
index 74a2bb7a6206..e15618da3f18 100644
--- a/nixpkgs/pkgs/tools/security/age/default.nix
+++ b/nixpkgs/pkgs/tools/security/age/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "age";
-  version = "1.0.0-beta6";
-  vendorSha256 = "sha256-FTByNpLkWWHAWe5wVDRBGtKap/5+XGHeBMQAIdlPCkA=";
+  version = "1.0.0-rc.1";
+  vendorSha256 = "1qx6pkhq00y0lsi6f82g8hxxh65zk1c0ls91ap6hdlj7ch79bhl2";
 
   src = fetchFromGitHub {
     owner = "FiloSottile";
     repo = "age";
     rev = "v${version}";
-    sha256 = "sha256-1LCcCEf2/R0am0jpA8yKl44+AoUFkbepxp9V6/nZkBQ=";
+    sha256 = "1n25wip4qnd3v9ial1apc2ybx10b9z6lwz7flyss6kvj3x5g9jd1";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/aide/default.nix b/nixpkgs/pkgs/tools/security/aide/default.nix
index 8993208e16ec..40f43c7b054f 100644
--- a/nixpkgs/pkgs/tools/security/aide/default.nix
+++ b/nixpkgs/pkgs/tools/security/aide/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "aide";
-  version = "0.17";
+  version = "0.17.3";
 
   src = fetchurl {
     url = "https://github.com/aide/aide/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-T9iNHV3ccMaYxlGeu8BcjTLD9tgTe7/e/q66r9bbhns=";
+    sha256 = "sha256-ousYg8r6rQVvvkPuHorgn9NsqjCgvI7f6l1HvWfEZPg=";
   };
 
   buildInputs = [ flex bison libmhash zlib acl attr libselinux pcre ];
diff --git a/nixpkgs/pkgs/tools/security/apg/default.nix b/nixpkgs/pkgs/tools/security/apg/default.nix
index 579026f07ca9..a185c09bda69 100644
--- a/nixpkgs/pkgs/tools/security/apg/default.nix
+++ b/nixpkgs/pkgs/tools/security/apg/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   configurePhase = ''
     substituteInPlace Makefile --replace /usr/local "$out"
   '';
-  makeFlags = lib.optionals stdenv.isDarwin ["CC=cc"];
+  makeFlags = ["CC=${stdenv.cc.targetPrefix}cc"];
 
   patches = [
     ./apg.patch
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 3256b5431a75..13327a84fff0 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,7 +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";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ asymmetric ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/bash-supergenpass/default.nix b/nixpkgs/pkgs/tools/security/bash-supergenpass/default.nix
index 3eb192e8fcc6..ba80734e5cf8 100644
--- a/nixpkgs/pkgs/tools/security/bash-supergenpass/default.nix
+++ b/nixpkgs/pkgs/tools/security/bash-supergenpass/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
       supergenpass will ask for your master password interactively, and it will not be displayed on your terminal.
     '';
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ fgaz ];
     homepage = "https://github.com/lanzz/bash-supergenpass";
   };
diff --git a/nixpkgs/pkgs/tools/security/bettercap/default.nix b/nixpkgs/pkgs/tools/security/bettercap/default.nix
index f2df464a907b..1383de79feb5 100644
--- a/nixpkgs/pkgs/tools/security/bettercap/default.nix
+++ b/nixpkgs/pkgs/tools/security/bettercap/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "bettercap";
-  version = "2.29";
+  version = "2.30.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hXYsFRYSyYKYJM4gS0Dyiia9aPA07GWSsp9doA0vYGI=";
+    sha256 = "sha256-5CAWMW0u/8BUn/8JJBApyHGH+/Tz8hzAmSChoT2gFr8=";
   };
 
-  vendorSha256 = "sha256-yIvwYUK+4cnHFwvJS2seDa9vJ/2cQ10Q46hR8U0aSRE=";
+  vendorSha256 = "sha256-fApxHxdzEEc+M+U5f0271VgrkXTGkUD75BpDXpVYd5k=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix b/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix
index 2cce00693a4f..5676e4005c13 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix
+++ b/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix
@@ -8,13 +8,13 @@ let
 
 in rustPlatform.buildRustPackage rec {
   pname = "bitwarden_rs";
-  version = "1.19.0";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    sha256 = "1iww8fhh4indmgw1j35whqyakd4bppmiyjpcdf2qrzg52x5binh0";
+    sha256 = "1ncy4iwmdzdp8rv1gc5i4s1rp97d94n4l4bh08v6w4zdpx0zn8b9";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -25,7 +25,7 @@ in rustPlatform.buildRustPackage rec {
 
   RUSTC_BOOTSTRAP = 1;
 
-  cargoSha256 = "0ga7ahlszja8ilng8xsrwdy7zy6bbci4mf00lknladjhlw16wibf";
+  cargoSha256 = "139by5y2ma3v52nabzr5man1qy395rchs2dlivkj9xi829kg4mcr";
   cargoBuildFlags = [ featuresFlag ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix b/nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix
index 57f52d91bb06..2b0855b821d6 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix
+++ b/nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwarden_rs-vault";
-  version = "2.18.1b";
+  version = "2.19.0";
 
   src = fetchurl {
     url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz";
-    sha256 = "sha256-MwHTx4ITr2GuBS6qXD4m3aCinpJHQa0Wp0Bbmgg7ATQ=";
+    sha256 = "sha256:0yrk2b2d5sld4z60siacafdz95gqikcv4snzd6hwhq1l6kz151az";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/tools/security/bmrsa/11.nix b/nixpkgs/pkgs/tools/security/bmrsa/11.nix
index c8188fe4216a..71bdfae4e42e 100644
--- a/nixpkgs/pkgs/tools/security/bmrsa/11.nix
+++ b/nixpkgs/pkgs/tools/security/bmrsa/11.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ksd9xkvm9lkvj4yl5sl0zmydp1wn3xhc55b28gj70gi4k75kcl4";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   unpackPhase = ''
     mkdir bmrsa
diff --git a/nixpkgs/pkgs/tools/security/brutespray/default.nix b/nixpkgs/pkgs/tools/security/brutespray/default.nix
index 25b9aecb8e0e..d7f8e30e182d 100644
--- a/nixpkgs/pkgs/tools/security/brutespray/default.nix
+++ b/nixpkgs/pkgs/tools/security/brutespray/default.nix
@@ -1,14 +1,20 @@
-{ lib, stdenv, python3, fetchFromGitHub, makeWrapper, medusa }:
+{ lib
+, stdenv
+, python3
+, fetchFromGitHub
+, makeWrapper
+, medusa
+}:
 
 stdenv.mkDerivation rec {
   pname = "brutespray";
-  version = "1.6.8";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "x90skysn3k";
     repo = pname;
-    rev = "brutespray-${version}";
-    sha256 = "1pi4d5vcvvjsby39dq995dlhpxdicmfhqsiw23hr25m38ccfm3rh";
+    rev = "${pname}-${version}";
+    sha256 = "0lkm3fvx35ml5jh4ykjr2srq8qfajkmxwp4qfcn9xi58khk3asq3";
   };
 
   postPatch = ''
@@ -33,7 +39,11 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/x90skysn3k/brutespray";
-    description = "Brute-Forcing from Nmap output - Automatically attempts default creds on found services";
+    description = "Tool to do brute-forcing from Nmap output";
+    longDescription = ''
+      This tool automatically attempts default credentials on found services
+      directly from Nmap output.
+    '';
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
   };
diff --git a/nixpkgs/pkgs/tools/security/bundler-audit/Gemfile.lock b/nixpkgs/pkgs/tools/security/bundler-audit/Gemfile.lock
index f130b57912b4..c0610480c723 100644
--- a/nixpkgs/pkgs/tools/security/bundler-audit/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/security/bundler-audit/Gemfile.lock
@@ -1,10 +1,10 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    bundler-audit (0.7.0.1)
+    bundler-audit (0.8.0)
       bundler (>= 1.2.0, < 3)
-      thor (>= 0.18, < 2)
-    thor (1.0.1)
+      thor (~> 1.0)
+    thor (1.1.0)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/tools/security/bundler-audit/gemset.nix b/nixpkgs/pkgs/tools/security/bundler-audit/gemset.nix
index c543920549f6..ff4d6da80691 100644
--- a/nixpkgs/pkgs/tools/security/bundler-audit/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/bundler-audit/gemset.nix
@@ -5,19 +5,19 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04l9rs56rlvihbr2ybkrigjajgd3swa98lxvmdl8iylj1g5m7n0j";
+      sha256 = "00l8rs7cna0j3yh4s9sza0r88x7kjc7j4gp9yl378422k7i0r73v";
       type = "gem";
     };
-    version = "0.7.0.1";
+    version = "0.8.0";
   };
   thor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/chipsec/default.nix b/nixpkgs/pkgs/tools/security/chipsec/default.nix
index 45d6349af403..7e00c0b07cf7 100644
--- a/nixpkgs/pkgs/tools/security/chipsec/default.nix
+++ b/nixpkgs/pkgs/tools/security/chipsec/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, lib, fetchFromGitHub, pythonPackages, nasm, libelf
+{ stdenv, lib, fetchFromGitHub, python2Packages, nasm, libelf
 , kernel ? null, withDriver ? false }:
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   pname = "chipsec";
   version = "1.5.1";
 
diff --git a/nixpkgs/pkgs/tools/security/chkrootkit/default.nix b/nixpkgs/pkgs/tools/security/chkrootkit/default.nix
index f9f0dd96a11b..338df2c2d1cc 100644
--- a/nixpkgs/pkgs/tools/security/chkrootkit/default.nix
+++ b/nixpkgs/pkgs/tools/security/chkrootkit/default.nix
@@ -1,24 +1,30 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, makeWrapper, binutils-unwrapped }:
 
 stdenv.mkDerivation rec {
-  name = "chkrootkit-0.54";
+  pname = "chkrootkit";
+  version = "0.54";
 
   src = fetchurl {
-    url = "ftp://ftp.pangeia.com.br/pub/seg/pac/${name}.tar.gz";
-    sha256 = "sha256-FUySaSH1PbYHKKfLyXyohli2lMFLfSiO/jg+CEmRVgc=";
+    url = "ftp://ftp.pangeia.com.br/pub/seg/pac/${pname}-${version}.tar.gz";
+    sha256 = "01snj54hhgiqzs72hzabq6abcn46m1yckjx7503vcggm45lr4k0m";
   };
 
   # TODO: a lazy work-around for linux build failure ...
   makeFlags = [ "STATIC=" ];
 
-   postPatch = ''
+  nativeBuildInputs = [ makeWrapper ];
+
+  postPatch = ''
     substituteInPlace chkrootkit \
       --replace " ./" " $out/bin/"
-   '';
+  '';
 
   installPhase = ''
     mkdir -p $out/sbin
     cp check_wtmpx chkdirs chklastlog chkproc chkrootkit chkutmp chkwtmp ifpromisc strings-static $out/sbin
+
+    wrapProgram $out/sbin/chkrootkit \
+      --prefix PATH : "${lib.makeBinPath [ binutils-unwrapped ]}"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/chntpw/default.nix b/nixpkgs/pkgs/tools/security/chntpw/default.nix
index ef462f5bf2dc..5bda55c418aa 100644
--- a/nixpkgs/pkgs/tools/security/chntpw/default.nix
+++ b/nixpkgs/pkgs/tools/security/chntpw/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1k1cxsj0221dpsqi5yibq2hr7n8xywnicl8yyaicn91y8h2hkqln";
   };
 
-  buildInputs = [ unzip ]
-    ++ lib.optionals stdenv.isLinux [ stdenv.glibc.out stdenv.glibc.static ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = lib.optionals stdenv.isLinux [ stdenv.glibc.out stdenv.glibc.static ];
 
   patches = [
     ./00-chntpw-build-arch-autodetect.patch
diff --git a/nixpkgs/pkgs/tools/security/cipherscan/default.nix b/nixpkgs/pkgs/tools/security/cipherscan/default.nix
index eae5a5256dff..23022f92b6af 100644
--- a/nixpkgs/pkgs/tools/security/cipherscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/cipherscan/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, openssl, makeWrapper, python, coreutils }:
+{ stdenv, lib, fetchFromGitHub, openssl, makeWrapper, python3, coreutils }:
 
 stdenv.mkDerivation rec {
   pname = "cipherscan";
@@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ python ];
+  buildInputs = [ python3 ];
+
+  strictDeps = true;
 
   buildPhase = ''
     substituteInPlace cipherscan --replace '$0' 'cipherscan'
diff --git a/nixpkgs/pkgs/tools/security/cosign/default.nix b/nixpkgs/pkgs/tools/security/cosign/default.nix
new file mode 100644
index 000000000000..c0ef3b7400a9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/cosign/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "cosign";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "sigstore";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zwb2q62ngb2zh1hasvq7r7pmrjlpgfhs5raibbhkxbk5kayvmii";
+  };
+
+  vendorSha256 = "0nwbjaps4z5fhiknbj9pybxb6kgwb1vf2qhy0mzpycprf04q6g0v";
+
+  subPackages = [ "cmd/cosign" ];
+
+  meta = with lib; {
+    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";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lesuisse ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/credslayer/default.nix b/nixpkgs/pkgs/tools/security/credslayer/default.nix
new file mode 100644
index 000000000000..0de8d37c0db4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/credslayer/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, fetchFromGitHub
+, python3
+, wireshark-cli
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "credslayer";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "ShellCode33";
+    repo = "CredSLayer";
+    rev = "v${version}";
+    sha256 = "1rbfy0h9c2gra1r2b39kngj3m7g177nmzzs5xy9np8lxixrh17pc";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pyshark
+  ];
+
+  checkInputs = with python3.pkgs; [
+    wireshark-cli
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "tests/tests.py" ];
+
+  disabledTests = [
+    # Requires a telnet setup
+    "test_telnet"
+  ];
+
+  pythonImportsCheck = [ "credslayer" ];
+
+  meta = with lib; {
+    description = "Extract credentials and other useful info from network captures";
+    homepage = "https://github.com/ShellCode33/CredSLayer";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/crlfuzz/default.nix b/nixpkgs/pkgs/tools/security/crlfuzz/default.nix
index 88bd45bb5e16..d203d0d7f463 100644
--- a/nixpkgs/pkgs/tools/security/crlfuzz/default.nix
+++ b/nixpkgs/pkgs/tools/security/crlfuzz/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "crlfuzz";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "dwisiswant0";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03g7z7cczn52hvg6srp1i5xhdbpia226adrh2d54cs640063bx3m";
+    sha256 = "sha256-rqhdxOQmZCRtq+IZygKLleb5GoKP2akyEc3rbGcnZmw=";
   };
 
-  vendorSha256 = "19cj07f7d3ksp7lh5amdjz1s8p7xmqbwal4vp61al82n8944ify8";
+  vendorSha256 = "sha256-yLtISEJWIKqCuZtQxReu/Vykw5etqgLpuXqOdtwBkqU=";
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/tools/security/cryptomator/default.nix b/nixpkgs/pkgs/tools/security/cryptomator/default.nix
new file mode 100644
index 000000000000..c866a527768f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/cryptomator/default.nix
@@ -0,0 +1,91 @@
+{ lib, stdenv, fetchFromGitHub
+, autoPatchelfHook
+, fuse, packer
+, maven, jdk, jre, makeWrapper, glib, wrapGAppsHook
+}:
+
+let
+  pname = "cryptomator";
+  version = "1.5.13";
+
+  src = fetchFromGitHub {
+    owner = "cryptomator";
+    repo = "cryptomator";
+    rev = version;
+    sha256 = "1s9jl3nl6yfjzmilz9b8azk8592nd39xflzfdf38v6s4iiq86r8j";
+  };
+
+  icons = fetchFromGitHub {
+    owner = "cryptomator";
+    repo = "cryptomator-linux";
+    rev = version;
+    sha256 = "1x6h6wp6yxnj576874xj3d2jm8jmb7918wprqvlz4sryxhlcssa7";
+  };
+
+  # perform fake build to make a fixed-output derivation out of the files downloaded from maven central (120MB)
+  deps = stdenv.mkDerivation {
+    name = "cryptomator-${version}-deps";
+    inherit src;
+
+    nativeBuildInputs = [ jdk maven ];
+
+    buildPhase = ''
+      cd main
+      while mvn -Prelease package -Dmaven.repo.local=$out/.m2 -Dmaven.wagon.rto=5000; [ $? = 1 ]; do
+        echo "timeout, restart maven to continue downloading"
+      done
+    '';
+
+    # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
+    installPhase = ''
+      find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete
+      find $out/.m2 -type f -iname '*.pom' -exec sed -i -e 's/\r\+$//' {} \;
+    '';
+
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "06q8bqdz3c4i84wxl9z5861zwdsw8jzcvsbgxqrnh8rwi7500sa7";
+  };
+
+in stdenv.mkDerivation rec {
+  inherit pname version src;
+
+  buildPhase = ''
+    cd main
+    mvn -Prelease package --offline -Dmaven.repo.local=$(cp -dpR ${deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin/ $out/usr/share/cryptomator/libs/
+
+    cp buildkit/target/libs/* buildkit/target/linux-libs/* $out/usr/share/cryptomator/libs/
+
+    makeWrapper ${jre}/bin/java $out/bin/cryptomator \
+      --add-flags "-classpath '$out/usr/share/cryptomator/libs/*'" \
+      --add-flags "-Dcryptomator.settingsPath='~/.config/Cryptomator/settings.json'" \
+      --add-flags "-Dcryptomator.ipcPortPath='~/.config/Cryptomator/ipcPort.bin'" \
+      --add-flags "-Dcryptomator.logDir='~/.local/share/Cryptomator/logs'" \
+      --add-flags "-Dcryptomator.mountPointsDir='~/.local/share/Cryptomator/mnt'" \
+      --add-flags "-Djdk.gtk.version=3" \
+      --add-flags "-Xss20m" \
+      --add-flags "-Xmx512m" \
+      --add-flags "org.cryptomator.launcher.Cryptomator" \
+      --prefix PATH : "$out/usr/share/cryptomator/libs/:${lib.makeBinPath [ jre glib ]}" \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ fuse ]}" \
+      --set JAVA_HOME "${jre.home}"
+
+    # install desktop entry and icons
+    cp -r ${icons}/resources/appimage/AppDir/usr $out/
+  '';
+
+  nativeBuildInputs = [ autoPatchelfHook maven makeWrapper wrapGAppsHook jdk ];
+  buildInputs = [ fuse packer jre glib ];
+
+  meta = with lib; {
+    description = "Free client-side encryption for your cloud files";
+    homepage = "https://cryptomator.org";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ bachp ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/doppler/default.nix b/nixpkgs/pkgs/tools/security/doppler/default.nix
index 1222ade4ad70..b5fa405e93e8 100644
--- a/nixpkgs/pkgs/tools/security/doppler/default.nix
+++ b/nixpkgs/pkgs/tools/security/doppler/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "doppler";
-  version = "3.22.0";
+  version = "3.23.2";
 
   src = fetchFromGitHub {
     owner = "dopplerhq";
     repo = "cli";
     rev = version;
-    sha256 = "sha256-Vx+f2IgCOdRxCVppkJNzVDBnsWjt4X96PyCJl9MmfWI=";
+    sha256 = "sha256-qdBq1vjvvb55gyL4XuPDrPK58YLSSH5kLp1oP84vJsU=";
   };
 
-  vendorSha256 = "sha256-rQrlnIYYnRc+cqyiyJoh1YqxD61doyjte7ehrX4RDTI=";
+  vendorSha256 = "sha256-UaR/xYGMI+C9aID85aPSfVzmTWXj4KcjfOJ6TTJ8KoY=";
 
   buildFlagsArray = "-ldflags=-X github.com/DopplerHQ/cli/pkg/version.ProgramVersion=v${version}";
 
diff --git a/nixpkgs/pkgs/tools/security/ecryptfs/default.nix b/nixpkgs/pkgs/tools/security/ecryptfs/default.nix
index 569b83feb9ae..cd90342738ed 100644
--- a/nixpkgs/pkgs/tools/security/ecryptfs/default.nix
+++ b/nixpkgs/pkgs/tools/security/ecryptfs/default.nix
@@ -35,11 +35,11 @@ stdenv.mkDerivation rec {
 
   configureFlags = lib.optionals (!enablePython) [ "--disable-pywrap" ];
 
-  nativeBuildInputs = [ pkg-config ]
+  nativeBuildInputs = [ pkg-config makeWrapper ]
   # if python2 support is requested, it is needed at builtime as well as runtime.
   ++ lib.optionals (enablePython) [ python2 ]
   ;
-  buildInputs = [ perl nss nspr pam intltool makeWrapper ]
+  buildInputs = [ perl nss nspr pam intltool ]
   ++ lib.optionals (enablePython) [ python2 ]
   ;
   propagatedBuildInputs = [ coreutils gettext cryptsetup lvm2 rsync keyutils which ];
diff --git a/nixpkgs/pkgs/tools/security/ecryptfs/helper.nix b/nixpkgs/pkgs/tools/security/ecryptfs/helper.nix
index ecd12a2738d8..bd558b7ab66d 100644
--- a/nixpkgs/pkgs/tools/security/ecryptfs/helper.nix
+++ b/nixpkgs/pkgs/tools/security/ecryptfs/helper.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
 
   phases = [ "installPhase" ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   # Do not hardcode PATH to ${ecryptfs} as we need the script to invoke executables from /run/wrappers/bin
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/security/enpass/default.nix b/nixpkgs/pkgs/tools/security/enpass/default.nix
index 7e2c0fcdb338..2444d1f1d726 100644
--- a/nixpkgs/pkgs/tools/security/enpass/default.nix
+++ b/nixpkgs/pkgs/tools/security/enpass/default.nix
@@ -2,7 +2,7 @@
 , glib, libGLU, libGL, libpulseaudio, zlib, dbus, fontconfig, freetype
 , gtk3, pango
 , makeWrapper , python2Packages, lib
-, lsof, curl, libuuid, cups, mesa, lzma, libxkbcommon
+, lsof, curl, libuuid, cups, mesa, xz, libxkbcommon
 }:
 
 let
@@ -38,7 +38,7 @@ let
     curl
     libuuid
     cups
-    lzma
+    xz
     libxkbcommon
   ]);
   package = stdenv.mkDerivation {
@@ -59,7 +59,8 @@ let
       maintainers = with maintainers; [ ewok ];
     };
 
-    buildInputs = [makeWrapper dpkg];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [dpkg];
     phases = [ "unpackPhase" "installPhase" ];
 
     unpackPhase = "dpkg -X $src .";
diff --git a/nixpkgs/pkgs/tools/security/expliot/default.nix b/nixpkgs/pkgs/tools/security/expliot/default.nix
new file mode 100644
index 000000000000..c46dcb018992
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/expliot/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, aiocoap
+, awsiotpythonsdk
+, bluepy
+, buildPythonApplication
+, can
+, cmd2
+, cryptography
+, fetchFromGitLab
+, paho-mqtt
+, pyi2cflash
+, pymodbus
+, pynetdicom
+, pyparsing
+, pyserial
+, pyspiflash
+, pythonOlder
+, upnpy
+, xmltodict
+, zeroconf
+}:
+
+buildPythonApplication rec {
+  pname = "expliot";
+  version = "0.9.7";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitLab {
+    owner = "expliot_framework";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-k43PvH9BXcvxe7O5iCGzLuxv/WkB9YelH/d/1S7BpU0=";
+  };
+
+  propagatedBuildInputs = [
+    aiocoap
+    awsiotpythonsdk
+    bluepy
+    can
+    cmd2
+    cryptography
+    paho-mqtt
+    pyi2cflash
+    pymodbus
+    pynetdicom
+    pyparsing
+    pyserial
+    pyspiflash
+    upnpy
+    xmltodict
+    zeroconf
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "expliot" ];
+
+  meta = with lib; {
+    description = "IoT security testing and exploitation framework";
+    longDescription = ''
+      EXPLIoT is a Framework for security testing and exploiting IoT
+      products and IoT infrastructure. It provides a set of plugins
+      (test cases) which are used to perform the assessment and can
+      be extended easily with new ones. The name EXPLIoT (pronounced
+      expl-aa-yo-tee) is a pun on the word exploit and explains the
+      purpose of the framework i.e. IoT exploitation.
+    '';
+    homepage = "https://expliot.readthedocs.io/";
+    license = with licenses; [ agpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/fprintd/default.nix b/nixpkgs/pkgs/tools/security/fprintd/default.nix
index 72c0bc204f8a..0ae04ddb30f2 100644
--- a/nixpkgs/pkgs/tools/security/fprintd/default.nix
+++ b/nixpkgs/pkgs/tools/security/fprintd/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchFromGitLab
-, fetchpatch
 , pkg-config
+, gobject-introspection
 , meson
 , ninja
 , perl
@@ -11,9 +11,10 @@
 , libxslt
 , docbook-xsl-nons
 , docbook_xml_dtd_412
+, fetchurl
 , glib
+, gusb
 , dbus
-, dbus-glib
 , polkit
 , nss
 , pam
@@ -24,52 +25,41 @@
 
 stdenv.mkDerivation rec {
   pname = "fprintd";
-  version = "1.90.1";
+  version = "1.90.9";
   outputs = [ "out" "devdoc" ];
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "libfprint";
     repo = pname;
-    rev = version;
-    sha256 = "0mbzk263x7f58i9cxhs44mrngs7zw5wkm62j5r6xlcidhmfn03cg";
+    rev = "v${version}";
+    sha256 = "rOTVThHOY/Q2IIu2RGiv26UE2V/JFfWWnfKZQfKl5Mg=";
   };
 
-  patches = [
-    # Fixes issue with ":" when there is multiple paths (might be the case on NixOS)
-    # https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/50
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/d7fec03f24d10f88d34581c72f0eef201f5eafac.patch";
-      sha256 = "0f88dhizai8jz7hpm5lpki1fx4593zcy89iwi4brsqbqc7jp9ls0";
-    })
-
-    # Fix locating libpam_wrapper for tests
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/40.patch";
-      sha256 = "0qqy090p93lzabavwjxzxaqidkcb3ifacl0d3yh1q7ms2a58yyz3";
-    })
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/f401f399a85dbeb2de165b9b9162eb552ab6eea7.patch";
-      sha256 = "1bc9g6kc95imlcdpvp8qgqjsnsxg6nipr6817c1pz5i407yvw1iy";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
     meson
     ninja
-    perl
+    perl # for pod2man
     gettext
     gtk-doc
     libxslt
-    dbus
+    # TODO: apply this to D-Bus so that other packages can benefit.
+    # https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/202
+    (dbus.overrideAttrs (attrs: {
+      postInstall = attrs.postInstall or "" + ''
+        ln -s ${fetchurl {
+          url = "https://gitlab.freedesktop.org/dbus/dbus/-/raw/b207135dbd8c09cf8da28f7e3b0a18bb11483663/doc/catalog.xml";
+          sha256 = "1/43XwAIcmRXfM4OXOPephyQyUnW8DSveiZbiPvW72I=";
+        }} $out/share/xml/dbus-1/catalog.xml
+      '';
+    }))
     docbook-xsl-nons
     docbook_xml_dtd_412
   ];
 
   buildInputs = [
     glib
-    dbus-glib
     polkit
     nss
     pam
@@ -78,11 +68,13 @@ stdenv.mkDerivation rec {
   ];
 
   checkInputs = with python3.pkgs; [
+    gobject-introspection # for setup hook
     python-dbusmock
     dbus-python
     pygobject3
     pycairo
     pypamtest
+    gusb # Required by libfprint’s typelib
   ];
 
   mesonFlags = [
@@ -103,13 +95,15 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   postPatch = ''
-    patchShebangs po/check-translations.sh
+    patchShebangs \
+      po/check-translations.sh \
+      tests/unittest_inspector.py
   '';
 
   meta = with lib; {
     homepage = "https://fprint.freedesktop.org/";
     description = "D-Bus daemon that offers libfprint functionality over the D-Bus interprocess communication bus";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar elyhaka ];
   };
diff --git a/nixpkgs/pkgs/tools/security/galer/default.nix b/nixpkgs/pkgs/tools/security/galer/default.nix
new file mode 100644
index 000000000000..d64b47bfdaf6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/galer/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "galer";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "dwisiswant0";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1923071rk078mqk5mig45kcrr58ni02rby3r298myld7j9gfnylb";
+  };
+
+  vendorSha256 = "0p5b6cp4ccvcjiy3g9brcwb08wxjbrpsza525fmx38wyyi0n0wns";
+
+  meta = with lib; {
+    description = "Tool to fetch URLs from HTML attributes";
+    homepage = "https://github.com/dwisiswant0/galer";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/gen-oath-safe/default.nix b/nixpkgs/pkgs/tools/security/gen-oath-safe/default.nix
index 51ff5b0e81e9..bb607c1fbd32 100644
--- a/nixpkgs/pkgs/tools/security/gen-oath-safe/default.nix
+++ b/nixpkgs/pkgs/tools/security/gen-oath-safe/default.nix
@@ -1,4 +1,4 @@
-{ coreutils, fetchFromGitHub, file, libcaca, makeWrapper, python, openssl, qrencode, lib, stdenv, yubikey-manager }:
+{ coreutils, fetchFromGitHub, file, libcaca, makeWrapper, python3, openssl, qrencode, lib, stdenv, yubikey-manager }:
 
 stdenv.mkDerivation rec {
   pname = "gen-oath-safe";
@@ -10,9 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "1914z0jgj7lni0nf3hslkjgkv87mhxdr92cmhmbzhpjgjgr23ydp";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
-  buildPhase = ":";
+  dontBuild = true;
 
   installPhase =
     let
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
         file
         libcaca.bin
         openssl.bin
-        python
+        python3
         qrencode
         yubikey-manager
       ];
diff --git a/nixpkgs/pkgs/tools/security/gencfsm/default.nix b/nixpkgs/pkgs/tools/security/gencfsm/default.nix
index 53127173f790..edec05272b9f 100644
--- a/nixpkgs/pkgs/tools/security/gencfsm/default.nix
+++ b/nixpkgs/pkgs/tools/security/gencfsm/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, autoconf, automake, intltool, libtool, pkg-config, encfs
-, glib , gnome3, gtk3, libgnome-keyring, vala, wrapGAppsHook, xorg, gobject-introspection
+, glib , libgee, gtk3, libgnome-keyring, vala, wrapGAppsHook, xorg, gobject-introspection
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ autoconf automake intltool libtool vala glib encfs
-    gtk3 libgnome-keyring gnome3.libgee xorg.libSM xorg.libICE
+    gtk3 libgnome-keyring libgee xorg.libSM xorg.libICE
     wrapGAppsHook gobject-introspection  ];
 
   patches = [ ./makefile-mkdir.patch ];
diff --git a/nixpkgs/pkgs/tools/security/genpass/default.nix b/nixpkgs/pkgs/tools/security/genpass/default.nix
index 29703ee1fc87..b358507bbae2 100644
--- a/nixpkgs/pkgs/tools/security/genpass/default.nix
+++ b/nixpkgs/pkgs/tools/security/genpass/default.nix
@@ -7,22 +7,22 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "genpass";
-  version = "0.4.9";
+  version = "0.4.12";
 
   src = fetchgit {
     url = "https://git.sr.ht/~cyplo/genpass";
     rev = "v${version}";
-    sha256 = "1dpv2iyd48xd8yw9bmymjjrkhsgmpwvsl5b9zx3lpaaq59ypi9g9";
+    sha256 = "154kprbqc59f06ciz60il4ax299zapwa0hz8vjn25rl4gr5gzn4l";
   };
 
-  cargoSha256 = "1cwxpc3xkw673wiamr4v7clrzwxl8ma1vdr6bw0hixm37gxdxz7x";
+  cargoSha256 = "1nc699n7f732lhzfhsfknay6z3igyiqy5jymm5x815mv9y1vwaj1";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation libiconv Security ];
 
   meta = with lib; {
     description = "A simple yet robust commandline random password generator";
     homepage = "https://sr.ht/~cyplo/genpass/";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ cyplo ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/ghidra/default.nix b/nixpkgs/pkgs/tools/security/ghidra/default.nix
index 2e55b24f723d..66112332663a 100644
--- a/nixpkgs/pkgs/tools/security/ghidra/default.nix
+++ b/nixpkgs/pkgs/tools/security/ghidra/default.nix
@@ -25,12 +25,12 @@ let
 in stdenv.mkDerivation rec {
 
   pname = "ghidra";
-  version = "9.2.1";
-  versiondate = "20201215";
+  version = "9.2.2";
+  versiondate = "20201229";
 
   src = fetchzip {
     url = "https://www.ghidra-sre.org/ghidra_${version}_PUBLIC_${versiondate}.zip";
-    sha256 = "0rjzmx0nbv9flb666mk3w2dqliyfzjyc4ldjfmb5d29wpgnf9bnz";
+    sha256 = "1xahkwiqdcwxssah16hhgrmyam49cb341xp5ysycj1h0kkm8p53s";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/gitjacker/default.nix b/nixpkgs/pkgs/tools/security/gitjacker/default.nix
index 0b8c087eccd0..14d9ab9ccfa2 100644
--- a/nixpkgs/pkgs/tools/security/gitjacker/default.nix
+++ b/nixpkgs/pkgs/tools/security/gitjacker/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "gitjacker";
-  version = "0.0.2";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "liamg";
     repo = "gitjacker";
     rev = "v${version}";
-    sha256 = "0fg95i2y8sj7dsvqj8mx0k5pps7d0h1i4a3lk85l8jjab4kxx8h9";
+    sha256 = "sha256-rEn9FpcRfEt2yGepIPEAO9m8JeVb+nMhYMBWhC/barc=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/security/gitleaks/default.nix b/nixpkgs/pkgs/tools/security/gitleaks/default.nix
index 982774612759..9e34b07121fa 100644
--- a/nixpkgs/pkgs/tools/security/gitleaks/default.nix
+++ b/nixpkgs/pkgs/tools/security/gitleaks/default.nix
@@ -1,20 +1,24 @@
-{ buildGoModule
+{ lib
+, buildGoModule
 , fetchFromGitHub
-, lib
 }:
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "7.2.0";
+  version = "7.3.0";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pdbkjx8h6ijypsxyv34lykymaqf8wnfyjk3ldp49apbx01bl34y";
+    sha256 = "sha256-IJaumIFuIhrvXZ45uz8RUxAuprnWdv2lNzxNUascvVc=";
   };
 
-  vendorSha256 = "0kk8ci7vprqw4v7cigspshfd13k2wyy4pdkxf11pqc2fz8j07kh9";
+  vendorSha256 = "sha256-Cc4DJPpOMHxDcH22S7znYo7QHNRXv8jOJhznu09kaE4=";
+
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X github.com/zricethezav/gitleaks/v${lib.versions.major version}/version.Version=${version}")
+  '';
 
   meta = with lib; {
     description = "Scan git repos (or files) for secrets";
diff --git a/nixpkgs/pkgs/tools/security/gopass/default.nix b/nixpkgs/pkgs/tools/security/gopass/default.nix
index c208b44bfd6e..be9fe521e9dd 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.12.0";
+  version = "1.12.5";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -21,10 +21,10 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0y3dcikw6gl436mhza5j0b3lm49jzl590a9ry53rkmzrv2lqx9w6";
+    sha256 = "06qc68q9px2g19iz23nbc4ay5dwqhgh99d1jj5l2dhb3mgknh19n";
   };
 
-  vendorSha256 = "09lbkm7c361c2s87qi1wpfsqgpp3r862wcn98dzdg5j6pvpgwbag";
+  vendorSha256 = "1jir1lb60p86fmk5sh92ywchqva59c31g1badlq9pjgd7jip5vnl";
 
   subPackages = [ "." ];
 
@@ -41,10 +41,13 @@ buildGoModule rec {
   );
 
   postInstall = ''
+    HOME=$TMPDIR
     for shell in bash fish zsh; do
       $out/bin/gopass completion $shell > gopass.$shell
       installShellCompletion gopass.$shell
     done
+    go run helpers/man/main.go > gopass.1
+    installManPage gopass.1
   '' + lib.optionalString passAlias ''
     ln -s $out/bin/gopass $out/bin/pass
   '';
@@ -59,7 +62,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ andir rvolosatovs ];
     changelog = "https://github.com/gopasspw/gopass/blob/v${version}/CHANGELOG.md";
-    platforms = platforms.unix;
 
     longDescription = ''
       gopass is a rewrite of the pass password manager in Go with the aim of
diff --git a/nixpkgs/pkgs/tools/security/gopass/git-credential.nix b/nixpkgs/pkgs/tools/security/gopass/git-credential.nix
new file mode 100644
index 000000000000..fb0da2c1a093
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/gopass/git-credential.nix
@@ -0,0 +1,41 @@
+{ lib
+, makeWrapper
+, buildGoModule
+, fetchFromGitHub
+, gopass
+}:
+
+buildGoModule rec {
+  pname = "git-credential-gopass";
+  version = "1.12.0";
+
+  src = fetchFromGitHub {
+    owner = "gopasspw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-IvYxpUMclDAKJ/EkRbNrX8eIFyhtY9Q0B0RipweieZA=";
+  };
+
+  vendorSha256 = "sha256-N6eU6KsnUrYBK90ydwUH8LNkR9KRjgc4ciGOGvy7pw8=";
+
+  subPackages = [ "." ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  preBuild = ''
+    buildFlagsArray+=(
+      "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev}"
+    )
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/git-credential-gopass --prefix PATH : "${lib.makeBinPath [ gopass ]}"
+  '';
+
+  meta = with lib; {
+    description = "Manage git credentials using gopass";
+    homepage = "https://github.com/gopasspw/git-credential-gopass";
+    license = licenses.mit;
+    maintainers = with maintainers; [ benneti ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix b/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix
new file mode 100644
index 000000000000..e060adbf5bcf
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix
@@ -0,0 +1,42 @@
+{ lib
+, makeWrapper
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, gopass
+}:
+
+buildGoModule rec {
+  pname = "gopass-jsonapi";
+  version = "1.11.1";
+
+  src = fetchFromGitHub {
+    owner = "gopasspw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "03xhza7n92xg12z83as9qdvvc0yx1qy6q0c7i4njvng594f9a8x2";
+  };
+
+  vendorSha256 = "0d4fyppsdfzvmjb0qvpnfnw0vl6z256bly7hfb0whk6rldks60wr";
+
+  subPackages = [ "." ];
+
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
+
+  preBuild = ''
+    buildFlagsArray+=(
+      "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev}"
+    )
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/gopass-jsonapi --prefix PATH : "${lib.makeBinPath [ gopass ]}"
+  '';
+
+  meta = with lib; {
+    description = "Enables communication with gopass via JSON messages";
+    homepage = "https://www.gopass.pw/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ maxhbr ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/grype/default.nix b/nixpkgs/pkgs/tools/security/grype/default.nix
index dc4b487747c6..13bbdbb99d47 100644
--- a/nixpkgs/pkgs/tools/security/grype/default.nix
+++ b/nixpkgs/pkgs/tools/security/grype/default.nix
@@ -1,25 +1,29 @@
-{ buildGoModule
+{ lib
+, buildGoModule
 , docker
 , fetchFromGitHub
-, lib
 }:
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.7.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-co00Ye/QVNSG4h67m56+37JLilBVzHxUwMs1vS3wYX4=";
+    sha256 = "sha256-X67TEHKmKKuTFGo55ZVkYVNw4f/d8aU2b/FQsq1OIJg=";
   };
 
-  vendorSha256 = "sha256-q7n8WLw/A2wr3z5h7zaFERY7lO5UIsmTD2mrcH/vpNs=";
+  vendorSha256 = "sha256-SGO8RKSOK0PHqSIJfTdcuAmqMtFuo9MBdiEylDUpOFo=";
 
   propagatedBuildInputs = [ docker ];
 
-  # tests require a running Docker instance
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X github.com/anchore/grype/internal/version.version=${version}")
+  '';
+
+  # Tests require a running Docker instance
   doCheck = false;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/hash-slinger/default.nix b/nixpkgs/pkgs/tools/security/hash-slinger/default.nix
index b8759d3571b5..ee06c112481b 100644
--- a/nixpkgs/pkgs/tools/security/hash-slinger/default.nix
+++ b/nixpkgs/pkgs/tools/security/hash-slinger/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchFromGitHub, pythonPackages, unbound, libreswan }:
+{ lib, stdenv, fetchFromGitHub, python2Packages, unbound, libreswan }:
 
 let
-  inherit (pythonPackages) python;
+  pythonPackages = python2Packages;
 in stdenv.mkDerivation rec {
   pname    = "hash-slinger";
   version = "2.7";
@@ -31,7 +31,7 @@ in stdenv.mkDerivation rec {
     '';
 
   installPhase = ''
-    mkdir -p $out/bin $out/man $out/${python.sitePackages}/
+    mkdir -p $out/bin $out/man $out/${pythonPackages.python.sitePackages}/
     make install
     wrapPythonPrograms
    '';
diff --git a/nixpkgs/pkgs/tools/security/hashcat-utils/default.nix b/nixpkgs/pkgs/tools/security/hashcat-utils/default.nix
index 8b91a53db013..ccd6230b06f2 100644
--- a/nixpkgs/pkgs/tools/security/hashcat-utils/default.nix
+++ b/nixpkgs/pkgs/tools/security/hashcat-utils/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Small utilities that are useful in advanced password cracking";
     homepage = "https://github.com/hashcat/hashcat-utils";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ fadenb ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/hashcat/default.nix b/nixpkgs/pkgs/tools/security/hashcat/default.nix
index 20b5aed39320..173fdc8b18d2 100644
--- a/nixpkgs/pkgs/tools/security/hashcat/default.nix
+++ b/nixpkgs/pkgs/tools/security/hashcat/default.nix
@@ -26,6 +26,12 @@ stdenv.mkDerivation rec {
     "USE_SYSTEM_XXHASH=1"
   ];
 
+  preFixup = ''
+    for f in $out/share/hashcat/OpenCL/*.cl; do
+      sed "s|#include \"\(.*\)\"|#include \"$out/share/hashcat/OpenCL/\1\"|g" -i "$f"
+    done
+  '';
+
   postFixup = ''
     wrapProgram $out/bin/hashcat --prefix LD_LIBRARY_PATH : ${ocl-icd}/lib
   '';
diff --git a/nixpkgs/pkgs/tools/security/hashdeep/default.nix b/nixpkgs/pkgs/tools/security/hashdeep/default.nix
index 4841dc5e07fa..0e24e0ec3a39 100644
--- a/nixpkgs/pkgs/tools/security/hashdeep/default.nix
+++ b/nixpkgs/pkgs/tools/security/hashdeep/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
-let version = "4.4";
-in stdenv.mkDerivation {
-  name = "hashdeep-${version}";
+stdenv.mkDerivation rec {
+  pname = "hashdeep";
+  version = "4.4";
 
   src = fetchFromGitHub {
     owner = "jessek";
@@ -17,7 +17,11 @@ in stdenv.mkDerivation {
     description = "A set of cross-platform tools to compute hashes";
     homepage = "https://github.com/jessek/hashdeep";
     license = licenses.gpl2;
-    platforms = with platforms; linux ++ freebsd ++ openbsd;
-    maintainers = [ lib.maintainers.karantan ];
+    maintainers = [ maintainers.karantan ];
+    platforms = platforms.all;
+    # Build fails on Darwin:
+    # > ./xml.h:103:82: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
+    # >     void xmlout(const std::string &tag,const int64_t value){ xmlprintf(tag,"","%"PRId64,value); }
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/hcxtools/default.nix b/nixpkgs/pkgs/tools/security/hcxtools/default.nix
index a1ba32b35ed7..9478844055e1 100644
--- a/nixpkgs/pkgs/tools/security/hcxtools/default.nix
+++ b/nixpkgs/pkgs/tools/security/hcxtools/default.nix
@@ -1,16 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, curl, openssl, zlib }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, curl, openssl, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "hcxtools";
-  version = "6.0.3";
+  version = "6.1.6";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = pname;
     rev = version;
-    sha256 = "0s9l5mvzcv6hnj7h28piabnm66b09hk2l57vb85ny35w99hzpkc0";
+    sha256 = "sha256-x6sVFjM2GMGqpoAW7CtCLUoEAYLgulaUKXequQ7DmGQ=";
   };
 
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ curl openssl zlib ];
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/tools/security/honggfuzz/default.nix b/nixpkgs/pkgs/tools/security/honggfuzz/default.nix
index 081e26e34abb..62b335ef5c7c 100644
--- a/nixpkgs/pkgs/tools/security/honggfuzz/default.nix
+++ b/nixpkgs/pkgs/tools/security/honggfuzz/default.nix
@@ -5,13 +5,13 @@
 let
   honggfuzz = stdenv.mkDerivation rec {
     pname = "honggfuzz";
-    version = "2.3.1";
+    version = "2.4";
 
     src = fetchFromGitHub {
       owner = "google";
       repo = pname;
       rev = version;
-      sha256 = "0dcl5a5jykgfmnfj42vl7kah9k26wg38l2g6yfh5pssmlf0nax33";
+      sha256 = "sha256-sU5lmlfmvVWo4K96sI+xQsPfTMd1wsLbihcKI4aTj6g=";
     };
 
     postPatch = ''
diff --git a/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix b/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
index c177726bbb16..d556566a7d54 100644
--- a/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
+++ b/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibm-sw-tpm2";
-  version = "1637";
+  version = "1661";
 
   src = fetchurl {
     url = "mirror://sourceforge/ibmswtpm2/ibmtpm${version}.tar.gz";
-    sha256 = "09z3wbv38dc8wnw1q961s6bcd0kvz2xkjp6dxg4kn914fwzlqfnx";
+    sha256 = "sha256-VRRZKK0rJPNL5qDqz5+0kuEODqkZuEKMch+pcOhdYUc=";
   };
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/tools/security/ipscan/default.nix b/nixpkgs/pkgs/tools/security/ipscan/default.nix
index a5b0fe8d9289..d1c56beb0816 100644
--- a/nixpkgs/pkgs/tools/security/ipscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/ipscan/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
   sourceRoot = ".";
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $src .";
 
-  buildInputs = [ makeWrapper jdk ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jdk ];
 
   installPhase = ''
     mkdir -p $out/share
diff --git a/nixpkgs/pkgs/tools/security/john/default.nix b/nixpkgs/pkgs/tools/security/john/default.nix
index b243e10d3531..e56e99909fff 100644
--- a/nixpkgs/pkgs/tools/security/john/default.nix
+++ b/nixpkgs/pkgs/tools/security/john/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, openssl, nss, nspr, kerberos, gmp, zlib, libpcap, re2
+{ lib, stdenv, fetchurl, openssl, nss, nspr, libkrb5, gmp, zlib, libpcap, re2
 , gcc, python3Packages, perl, perlPackages, makeWrapper
 }:
 
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     "--with-systemwide"
   ];
 
-  buildInputs = [ openssl nss nspr kerberos gmp zlib libpcap re2 ];
+  buildInputs = [ openssl nss nspr libkrb5 gmp zlib libpcap re2 ];
   nativeBuildInputs = [ gcc python3Packages.wrapPython perl makeWrapper ];
   propagatedBuildInputs = (with python3Packages; [ dpkt scapy lxml ]) ++ # For pcap2john.py
                           (with perlPackages; [ DigestMD4 DigestSHA1 GetoptLong # For pass_gen.pl
diff --git a/nixpkgs/pkgs/tools/security/jwt-cli/default.nix b/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
index 6b4639a53079..0b3a94d816bb 100644
--- a/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jwt-cli";
-  version = "3.3.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "mike-engel";
     repo = pname;
     rev = version;
-    sha256 = "09zi55ffkhsckvqj84xnxn9bgfkrj9wnzqbh9hfsxzbk4xy7fc2h";
+    sha256 = "sha256-82Le0kdt/fnSQwsRRYHy4Jv9rsCPGf5dIWmoZE2cPxY=";
   };
 
-  cargoSha256 = "1k13pw202fr5mvd0ys39n3dxwcl3sd01j6izfb28k06b6pav3wc8";
+  cargoSha256 = "sha256-nk4nrsePiUirVPoOPehCOf5ZoGVj3jy7PnSZENnpcaM=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/tools/security/kbs2/default.nix b/nixpkgs/pkgs/tools/security/kbs2/default.nix
index 80e6e25518e6..4e9b24818b47 100644
--- a/nixpkgs/pkgs/tools/security/kbs2/default.nix
+++ b/nixpkgs/pkgs/tools/security/kbs2/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kbs2";
-  version = "0.2.5";
+  version = "0.2.6";
 
   src = fetchFromGitHub {
     owner = "woodruffw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jilsczz22fyqbgz43gl5ilz62gfqsahfk30gayj7q5bx9k35m4w";
+    sha256 = "sha256-PtXTC0VufUR5kle9C5KhCHHEQtQZvTTU1Q/cRMCB1g0=";
   };
 
-  cargoSha256 = "1gvvmfavaq29p40p5mq1phpp2a1nw04dz4975pzm1b6z89p0jlzl";
+  cargoSha256 = "sha256-S2czYglyHRkRN3Dq5reXFOaB1i/oIHXTY8Ile+Twvzo=";
 
   nativeBuildInputs = [ installShellFiles ]
     ++ lib.optionals stdenv.isLinux [ python3 ];
diff --git a/nixpkgs/pkgs/tools/security/knockpy/default.nix b/nixpkgs/pkgs/tools/security/knockpy/default.nix
new file mode 100644
index 000000000000..89eda45322c7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/knockpy/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "knockpy";
+  version = "5.0.0";
+  disabled = python3.pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "guelfoweb";
+    repo = "knock";
+    rev = version;
+    sha256 = "1h7sibdxx8y53xm1wydyng418n4j6baiys257msq03cs04jlm7h9";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    beautifulsoup4
+    colorama
+    requests
+  ];
+
+  postPatch = ''
+    # https://github.com/guelfoweb/knock/pull/95
+    substituteInPlace setup.py \
+      --replace "bs4" "beautifulsoup4"
+  '';
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "knockpy" ];
+
+  meta = with lib; {
+    description = "Tool to scan subdomains";
+    homepage = "https://github.com/guelfoweb/knock";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/kpcli/default.nix b/nixpkgs/pkgs/tools/security/kpcli/default.nix
index d0e260bb6775..37af42e33ccf 100644
--- a/nixpkgs/pkgs/tools/security/kpcli/default.nix
+++ b/nixpkgs/pkgs/tools/security/kpcli/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1srd6vrqgjlf906zdyxp4bg6gihkxn62cpzyfv0zzpsqsj13iwh1";
   };
 
-  buildInputs = [ makeWrapper perl ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ];
 
   phases = [ "installPhase" "fixupPhase" ];
 
diff --git a/nixpkgs/pkgs/tools/security/kwalletcli/default.nix b/nixpkgs/pkgs/tools/security/kwalletcli/default.nix
index c1849bdca395..d18d5c1ef8b5 100644
--- a/nixpkgs/pkgs/tools/security/kwalletcli/default.nix
+++ b/nixpkgs/pkgs/tools/security/kwalletcli/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "kwalletcli";
-  version = "3.02";
+  version = "3.03";
 
   src = fetchFromGitHub {
     owner = "MirBSD";
     repo = pname;
     rev = "${pname}-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "1gq45afb5nmmjfqxglv7wvcxcjd9822pc7nysq0350jmmmqwb474";
+    sha256 = "sha256-DUtaQITzHhQrqA9QJd0U/5EDjH0IzY9/kal/7SYQ/Ck=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/security/ldeep/default.nix b/nixpkgs/pkgs/tools/security/ldeep/default.nix
index 855ffc6fdba1..db4d14ba3ed7 100644
--- a/nixpkgs/pkgs/tools/security/ldeep/default.nix
+++ b/nixpkgs/pkgs/tools/security/ldeep/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonApplication rec {
   pname = "ldeep";
-  version = "1.0.9";
+  version = "1.0.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0n38idkn9hy31m5xkrc36dmw364d137c7phssvj76gr2gqsrqjy3";
+    sha256 = "sha256-/7mcmAj69NmuiK+xlQijAk39sMLDX8kHatmSI6XYbwE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/libtpms/default.nix b/nixpkgs/pkgs/tools/security/libtpms/default.nix
new file mode 100644
index 000000000000..85a2c1f72253
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/libtpms/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config, autoreconfHook
+, openssl, perl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libtpms";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "stefanberger";
+    repo = "libtpms";
+    rev = "v${version}";
+    sha256 = "sha256-ljzxaZYC2RzasKoRvnjead8CEkbdptGD4V5QapvAQUQ=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    perl # needed for pod2man
+  ];
+  buildInputs = [ openssl ];
+
+  outputs = [ "out" "man" "dev" ];
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--with-openssl"
+    "--with-tpm2"
+  ];
+
+  meta = with lib; {
+    description = "The libtpms library provides software emulation of a Trusted Platform Module (TPM 1.2 and TPM 2.0)";
+    homepage = "https://github.com/stefanberger/libtpms";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.baloo ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/masscan/default.nix b/nixpkgs/pkgs/tools/security/masscan/default.nix
index b58163630c69..891311ddaa03 100644
--- a/nixpkgs/pkgs/tools/security/masscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/masscan/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
-  makeFlags = [ "PREFIX=$(out)" "GITVER=${version}" "CC=cc" ];
+  makeFlags = [ "PREFIX=$(out)" "GITVER=${version}" "CC=${stdenv.cc.targetPrefix}cc" ];
 
   preInstall = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
index 7ffbb5c03235..150f00e92b45 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.0.29"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.38"
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
index 926d955d2e85..c64e2b31aff5 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: f54a838fa686f495854a71cb32fadcb1853b6201
-  ref: refs/tags/6.0.29
+  revision: 4c7a221f3d186b0cd65d2a765533fda54f0848f4
+  ref: refs/tags/6.0.38
   specs:
-    metasploit-framework (6.0.29)
+    metasploit-framework (6.0.38)
       actionpack (~> 5.2.2)
       activerecord (~> 5.2.2)
       activesupport (~> 5.2.2)
@@ -12,7 +12,6 @@ GIT
       aws-sdk-s3
       bcrypt
       bcrypt_pbkdf
-      bit-struct
       bson
       concurrent-ruby (= 1.0.5)
       dnsruby
@@ -31,9 +30,9 @@ GIT
       metasploit-concern
       metasploit-credential
       metasploit-model
-      metasploit-payloads (= 2.0.28)
+      metasploit-payloads (= 2.0.41)
       metasploit_data_models
-      metasploit_payloads-mettle (= 1.0.6)
+      metasploit_payloads-mettle (= 1.0.8)
       mqtt
       msgpack
       nessus_rest
@@ -93,26 +92,26 @@ GEM
   remote: https://rubygems.org/
   specs:
     Ascii85 (1.1.0)
-    actionpack (5.2.4.4)
-      actionview (= 5.2.4.4)
-      activesupport (= 5.2.4.4)
+    actionpack (5.2.5)
+      actionview (= 5.2.5)
+      activesupport (= 5.2.5)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.0.2)
-    actionview (5.2.4.4)
-      activesupport (= 5.2.4.4)
+    actionview (5.2.5)
+      activesupport (= 5.2.5)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.0.3)
-    activemodel (5.2.4.4)
-      activesupport (= 5.2.4.4)
-    activerecord (5.2.4.4)
-      activemodel (= 5.2.4.4)
-      activesupport (= 5.2.4.4)
+    activemodel (5.2.5)
+      activesupport (= 5.2.5)
+    activerecord (5.2.5)
+      activemodel (= 5.2.5)
+      activesupport (= 5.2.5)
       arel (>= 9.0)
-    activesupport (5.2.4.4)
+    activesupport (5.2.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -123,33 +122,32 @@ GEM
     arel (9.0.0)
     arel-helpers (2.12.0)
       activerecord (>= 3.1.0, < 7)
-    aws-eventstream (1.1.0)
-    aws-partitions (1.424.0)
-    aws-sdk-core (3.112.0)
+    aws-eventstream (1.1.1)
+    aws-partitions (1.441.0)
+    aws-sdk-core (3.113.1)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-ec2 (1.224.0)
+    aws-sdk-ec2 (1.232.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.47.0)
+    aws-sdk-iam (1.52.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.42.0)
+    aws-sdk-kms (1.43.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.88.0)
+    aws-sdk-s3 (1.93.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.2.2)
+    aws-sigv4 (1.2.3)
       aws-eventstream (~> 1, >= 1.0.2)
     bcrypt (3.1.16)
     bcrypt_pbkdf (1.1.0)
     bindata (2.4.8)
-    bit-struct (0.16)
-    bson (4.11.1)
+    bson (4.12.0)
     builder (3.2.4)
     concurrent-ruby (1.0.5)
     cookiejar (0.3.3)
@@ -168,7 +166,7 @@ GEM
       eventmachine (>= 1.0.0.beta.4)
     erubi (1.10.0)
     eventmachine (1.2.7)
-    faker (2.15.1)
+    faker (2.17.0)
       i18n (>= 1.6, < 2)
     faraday (1.3.0)
       faraday-net_http (~> 1.0)
@@ -183,10 +181,10 @@ GEM
     hrr_rb_ssh (0.3.0.pre2)
       ed25519 (~> 1.2)
     http_parser.rb (0.6.0)
-    i18n (1.8.8)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
-    io-console (0.5.7)
-    irb (1.3.3)
+    io-console (0.5.9)
+    irb (1.3.5)
       reline (>= 0.1.5)
     jmespath (1.4.0)
     jsobfu (0.4.2)
@@ -214,8 +212,8 @@ GEM
       activemodel (~> 5.2.2)
       activesupport (~> 5.2.2)
       railties (~> 5.2.2)
-    metasploit-payloads (2.0.28)
-    metasploit_data_models (4.1.1)
+    metasploit-payloads (2.0.41)
+    metasploit_data_models (4.1.2)
       activerecord (~> 5.2.2)
       activesupport (~> 5.2.2)
       arel-helpers
@@ -224,10 +222,11 @@ GEM
       pg
       railties (~> 5.2.2)
       recog (~> 2.0)
-    metasploit_payloads-mettle (1.0.6)
+      webrick
+    metasploit_payloads-mettle (1.0.8)
     method_source (1.0.0)
     mini_portile2 (2.5.0)
-    minitest (5.14.3)
+    minitest (5.14.4)
     mqtt (0.5.0)
     msgpack (1.4.2)
     multipart-post (2.1.1)
@@ -237,9 +236,9 @@ GEM
     net-ldap (0.17.0)
     net-ssh (6.1.0)
     network_interface (0.0.2)
-    nexpose (7.2.1)
-    nio4r (2.5.5)
-    nokogiri (1.11.1)
+    nexpose (7.3.0)
+    nio4r (2.5.7)
+    nokogiri (1.11.2)
       mini_portile2 (~> 2.5.0)
       racc (~> 1.4)
     octokit (4.20.0)
@@ -260,7 +259,7 @@ GEM
       ttfunk
     pg (1.2.3)
     public_suffix (4.0.6)
-    puma (5.2.1)
+    puma (5.2.2)
       nio4r (~> 2.0)
     racc (1.5.2)
     rack (2.2.3)
@@ -273,9 +272,9 @@ GEM
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.3.0)
       loofah (~> 2.3)
-    railties (5.2.4.4)
-      actionpack (= 5.2.4.4)
-      activesupport (= 5.2.4.4)
+    railties (5.2.5)
+      actionpack (= 5.2.5)
+      activesupport (= 5.2.5)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.19.0, < 2.0)
@@ -284,7 +283,7 @@ GEM
     recog (2.3.19)
       nokogiri
     redcarpet (3.5.1)
-    reline (0.2.3)
+    reline (0.2.5)
       io-console (~> 0.5)
     rex-arch (0.1.14)
       rex-text
@@ -294,17 +293,18 @@ GEM
       rex-core
       rex-struct2
       rex-text
-    rex-core (0.1.15)
+    rex-core (0.1.16)
     rex-encoder (0.1.5)
       metasm
       rex-arch
       rex-text
-    rex-exploitation (0.1.26)
+    rex-exploitation (0.1.27)
       jsobfu
       metasm
       rex-arch
       rex-encoder
       rex-text
+      rexml
     rex-java (0.1.6)
     rex-mime (0.1.6)
       rex-text
@@ -323,16 +323,17 @@ GEM
       metasm
       rex-core
       rex-text
-    rex-socket (0.1.25)
+    rex-socket (0.1.29)
       rex-core
-    rex-sslscan (0.1.5)
+    rex-sslscan (0.1.6)
       rex-core
       rex-socket
       rex-text
     rex-struct2 (0.1.3)
-    rex-text (0.2.31)
+    rex-text (0.2.33)
     rex-zip (0.1.4)
       rex-text
+    rexml (3.2.4)
     rkelly-remix (0.0.7)
     ruby-macho (2.5.0)
     ruby-rc4 (0.1.5)
diff --git a/nixpkgs/pkgs/tools/security/metasploit/default.nix b/nixpkgs/pkgs/tools/security/metasploit/default.nix
index e11b1dd29908..5dce17ff190b 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/default.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/default.nix
@@ -8,16 +8,16 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.0.29";
+  version = "6.0.38";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-QDgInLW/uOBGf0ioPPBMUZv/c9tA7OtTOfp2CEAjf24=";
+    sha256 = "sha256-/e1BWhkM4A+xrvDS6Z01sND9aOZDn+cL0RIcAgT5oZs=";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontPatchELF = true; # stay away from exploit executables
 
diff --git a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
index d33ca7ce03fb..49fedb7a84a2 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
@@ -4,50 +4,50 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d8gxymshjhva5fyv33iy2hzp4jm3i44asdbma9pv9wzpl5fwhn0";
+      sha256 = "1m9wdcnkls8cs31gfic5hffnrz0l1iyk0dldwx2q2z58qhh3sw0m";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "5.2.5";
   };
   actionview = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k8dgkplqj76i3q1f8897m8svj2xggd1knhy3bcwfl4nh7998kw6";
+      sha256 = "1xlcfcbmwlmcp6vi9ay5xw9lqnj70bl1gn19hafygv9w65sw0n2i";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "5.2.5";
   };
   activemodel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g79l7v0ddpxcj5r2s9kii6h4r4nbpy5bksbqi5lxvivrb3pkz1m";
+      sha256 = "1bb600bsxd0gf4vwqq2qiklg7wd37b0as6ll3k5hjy9v6izj006b";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "5.2.5";
   };
   activerecord = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05b9l85a31cq6g7v4b4ifrj798q49rlidcvvfasmb3bk412wlp03";
+      sha256 = "03zijqm7xdmmylzp68hadvq5rps67lsq10hnq6kpmhq496pp7wlj";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "5.2.5";
   };
   activesupport = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dpnk20s754fz6jfz9sp3ri49hn46ksw4hf6ycnlw7s3hsdxqgcd";
+      sha256 = "1bizrvn05d59l1qzwkhqvwmzicamq4p66z2ziap5ks9y6hqgqmzj";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "5.2.5";
   };
   addressable = {
     groups = ["default"];
@@ -104,80 +104,80 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
+      sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dxyx3pnih7g23hq794ldapsszddcmldxf6pq3z99q4d8rg8rrqp";
+      sha256 = "07i9mqbh19pd25wd3laxv1bcmzcpriw54g0x3mqzkn600h8f3lg9";
       type = "gem";
     };
-    version = "1.424.0";
+    version = "1.441.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15lynby6r91p9hh5h92pg4jr8xgnjr52px5ax0p0wncdw4vz0skp";
+      sha256 = "0i3x8p9gymc9977dcdkz5ca6mrmh7ym6p2mrscbh49nfd9gi5zg0";
       type = "gem";
     };
-    version = "3.112.0";
+    version = "3.113.1";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lg8vh124viba77b0qhi5j8xx8b4wxdiyycl4kaawmddwhr33zx9";
+      sha256 = "0n7hi66zpm8mgfgf32gw7c9p4rv09q9kipsr01l5l2n2d69k67q5";
       type = "gem";
     };
-    version = "1.224.0";
+    version = "1.232.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16152qidkisakl2iqvghrjnccq279pahb953q5a4q0ipk5imw2c1";
+      sha256 = "13mc05yx3f2g1543y349qysszzk811ns2dcjcidbszaasvpz3cci";
       type = "gem";
     };
-    version = "1.47.0";
+    version = "1.52.0";
   };
   aws-sdk-kms = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00wgf83cdy6z77b2y0ld0aqiidfyldi71hx0z8b73gxjdlbwpq1i";
+      sha256 = "01pd0f4srsa65zl4zq4014p9j5yrr2yy9h9ab17g3w9d0qqm2vsh";
       type = "gem";
     };
-    version = "1.42.0";
+    version = "1.43.0";
   };
   aws-sdk-s3 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "029iqr52fxxz8d6jb2g4k76i7nnjyspvjdlx52xah25zzhp3bx7v";
+      sha256 = "0iy2f9z43pc6fgwmga2cz8nf9gy2pwcw4jib141vp8z8dhylqj94";
       type = "gem";
     };
-    version = "1.88.0";
+    version = "1.93.0";
   };
   aws-sigv4 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
+      sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
   };
   bcrypt = {
     groups = ["default"];
@@ -209,25 +209,15 @@
     };
     version = "2.4.8";
   };
-  bit-struct = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1w7x1fh4a6inpb46imhdf4xrq0z4d6zdpg7sdf8n98pif2hx50sx";
-      type = "gem";
-    };
-    version = "0.16";
-  };
   bson = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12v95l3v7n7lh3mk8k1jdrkpn2vjnkb8k636hcygaczzv4jdsdfp";
+      sha256 = "0gny4n34gwfc6x04x7vli5my6cdl90n4i0wsxm758q81hfmkqxd7";
       type = "gem";
     };
-    version = "4.11.1";
+    version = "4.12.0";
   };
   builder = {
     groups = ["default"];
@@ -344,10 +334,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l0dvswigzxaz9558wmfix3v8cmwwkgdvrx1fmpd3qnr5hky1qrk";
+      sha256 = "0z3d4y6xg8prn3zdjw1qpqrnziq1d3zigqil4sxjj0pbr46gc1d6";
       type = "gem";
     };
-    version = "2.15.1";
+    version = "2.17.0";
   };
   faraday = {
     groups = ["default"];
@@ -424,30 +414,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k7q3pwm0l1qvx6sc3d4dxmdxqx2pc63lbfjwv0k0higq94rinvs";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.8";
+    version = "1.8.10";
   };
   io-console = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gp1xx2g1x81wsh929x7rzsm0c8qgkhr2mkjn79fbdwyfnk4s04l";
+      sha256 = "0pmafwxh8z1apnk7bb1ibnbhfrgb1jgilxm4j8d0fcqlc2ggmbja";
       type = "gem";
     };
-    version = "0.5.7";
+    version = "0.5.9";
   };
   irb = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00c95xk8c9wzcs5imsrm85jk06y8l4dbnzhvqap98nprr9mxxnvl";
+      sha256 = "06i0izb1jm4ijydwk9w2jqyvz72aznaa1b386769yfi8284cnwj6";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.3.5";
   };
   jmespath = {
     groups = ["default"];
@@ -524,12 +514,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "f54a838fa686f495854a71cb32fadcb1853b6201";
-      sha256 = "0vkz4d00hxps759ypv20vdrzz6si9kq3ra28gx3f1f5znnf0hf20";
+      rev = "4c7a221f3d186b0cd65d2a765533fda54f0848f4";
+      sha256 = "16x1z420470js45yg7s3wrlgvl5h6nfyklphmsqhzq0c35d43vgx";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.0.29";
+    version = "6.0.38";
   };
   metasploit-model = {
     groups = ["default"];
@@ -546,30 +536,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xln6zgdiimrbwjbdhi9008bjhmwqm13zky4310pvr7g8riffwqx";
+      sha256 = "1nnb6kidfm39qyhv694m7skbvmsp5sjw52633v89zq0ym4y5wld5";
       type = "gem";
     };
-    version = "2.0.28";
+    version = "2.0.41";
   };
   metasploit_data_models = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1czqg49b7n9n2iqp6r4f1cxh8kd39gbjvydq09hzmzdmkwxh3x1f";
+      sha256 = "1kzlvq20ml4b5lr1qbrkmivdi37mxi8fasdqg4yla2libfbdz008";
       type = "gem";
     };
-    version = "4.1.1";
+    version = "4.1.2";
   };
   metasploit_payloads-mettle = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mxhybic6myh993fs4jmp0hz998ryf362y0b33wqanff1n8aj75k";
+      sha256 = "0nq6wxsaghj0yqwn988z71d9f0qwglcrliwkgqr9f16vbbv33p36";
       type = "gem";
     };
-    version = "1.0.6";
+    version = "1.0.8";
   };
   method_source = {
     groups = ["default"];
@@ -596,10 +586,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjhdw8ds6q9h7bs3iw28bjrwkwp215hr4l3xf6215fsl80ky5j";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.3";
+    version = "5.14.4";
   };
   mqtt = {
     groups = ["default"];
@@ -686,30 +676,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i108glkklwgjxhfhnlqf4b16plqf9b84qpfz0pnl2pbnal5af8m";
+      sha256 = "0jz5xiwiwagd663qdlfhmc9fm76x78cqhighmfivy6w5v0n4xyq0";
       type = "gem";
     };
-    version = "7.2.1";
+    version = "7.3.0";
   };
   nio4r = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xbrmq1pvmszrwf40lzwmf8krs2b56720i7wsz9gh274qljkzklf";
+      sha256 = "00fwz0qq7agd2xkdz02i8li236qvwhma3p0jdn5bdvc21b7ydzd5";
       type = "gem";
     };
-    version = "2.5.5";
+    version = "2.5.7";
   };
   nokogiri = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
+      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
       type = "gem";
     };
-    version = "1.11.1";
+    version = "1.11.2";
   };
   octokit = {
     groups = ["default"];
@@ -816,10 +806,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10kj484ppkjdg1j8jac4bxdv1082bd6g6xhrj70chlp7lkgl8ggh";
+      sha256 = "0wiprd0v4mjqv5p1vqaidr9ci2xm08lcxdz1k50mb1b6nrw6r74k";
       type = "gem";
     };
-    version = "5.2.1";
+    version = "5.2.2";
   };
   racc = {
     groups = ["default"];
@@ -886,10 +876,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "089kiwmv8fxyfk0zp57q74nyd5i6d5x5ihlrzbzwl041v94s2zx9";
+      sha256 = "072spzdpc8bv35nflr43i67njlriavqkrz6cgyd42adz6bqyval9";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "5.2.5";
   };
   rake = {
     groups = ["default"];
@@ -936,10 +926,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18xpix2hn4x4hihn0fjsv6i7jr7zjfbwzs94hwn48klyq3yrym2h";
+      sha256 = "1bf86g8a761mp516349gzmvxkafj36nznczznb3flkn4a84dlk3k";
       type = "gem";
     };
-    version = "0.2.3";
+    version = "0.2.5";
   };
   rex-arch = {
     groups = ["default"];
@@ -966,10 +956,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bjz0mhxijvfq535hpzswr83yrq3ghkkmqna63yjsabh61qpxx16";
+      sha256 = "08krnf05mbq6x2d92fv34bl8xdz1d3yq2m0mp8bfbq5kd6a13l2w";
       type = "gem";
     };
-    version = "0.1.15";
+    version = "0.1.16";
   };
   rex-encoder = {
     groups = ["default"];
@@ -986,10 +976,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z4dn579mxl22qdxcnbmxp0diia6kr7c20giv0bn4r0viavz49gc";
+      sha256 = "1b10rcrw52nj2aswsn0kwv0s601rbn077k0r6n5lblip6fbrqz9i";
       type = "gem";
     };
-    version = "0.1.26";
+    version = "0.1.27";
   };
   rex-java = {
     groups = ["default"];
@@ -1076,20 +1066,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1601b7vhp56sif21lk7mqcn3bbkhdrp6zz0vag8yzma3ji707pqg";
+      sha256 = "0ar9vm8pwjz7c11kr3pjnxbgk68f2i5k1r9j3r34pfq9n26s79gr";
       type = "gem";
     };
-    version = "0.1.25";
+    version = "0.1.29";
   };
   rex-sslscan = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06gbx45q653ajcx099p0yxdqqxazfznbrqshd4nwiwg1p498lmyx";
+      sha256 = "0r58n1ifbay1gq3kln9yg5iqjwp69l0pmb9sqakhqwhjlhzqx2kr";
       type = "gem";
     };
-    version = "0.1.5";
+    version = "0.1.6";
   };
   rex-struct2 = {
     groups = ["default"];
@@ -1106,10 +1096,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "078bdybz7cw3zd0mr59qgr1x6pifnn352636s74i1ncqzrzni46b";
+      sha256 = "1933p6fri27d2gscws43k1v8jw1821l5j4yfi9z97ch5l80mv1zr";
       type = "gem";
     };
-    version = "0.2.31";
+    version = "0.2.33";
   };
   rex-zip = {
     groups = ["default"];
@@ -1121,6 +1111,16 @@
     };
     version = "0.1.4";
   };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
   rkelly-remix = {
     groups = ["default"];
     platforms = [];
diff --git a/nixpkgs/pkgs/tools/security/nmap-unfree/default.nix b/nixpkgs/pkgs/tools/security/nmap-unfree/default.nix
new file mode 100644
index 000000000000..1e6ed42bae45
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/nmap-unfree/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchurl
+, libpcap
+, pkg-config
+, openssl
+, lua5_3
+, pcre
+, liblinear
+, libssh2
+, zlib
+, withLua ? true
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nmap-unfree";
+  version = "7.91";
+
+  src = fetchurl {
+    url = "https://nmap.org/dist/nmap-${version}.tar.bz2";
+    sha256 = "001kb5xadqswyw966k2lqi6jr6zz605jpp9w4kmm272if184pk0q";
+  };
+
+  prePatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace libz/configure \
+        --replace /usr/bin/libtool ar \
+        --replace 'AR="libtool"' 'AR="ar"' \
+        --replace 'ARFLAGS="-o"' 'ARFLAGS="-r"'
+  '';
+
+  configureFlags = [
+    (if withLua then "--with-liblua=${lua5_3}" else "--without-liblua")
+  ];
+
+  makeFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "AR=${stdenv.cc.bintools.targetPrefix}ar"
+    "RANLIB=${stdenv.cc.bintools.targetPrefix}ranlib"
+    "CC=${stdenv.cc.targetPrefix}gcc"
+  ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [
+    pcre
+    liblinear
+    libssh2
+    libpcap
+    openssl
+    zlib
+  ];
+
+  enableParallelBuilding = true;
+
+  # Tests require network access
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Open source utility for network discovery and security auditing";
+    homepage = "http://www.nmap.org";
+    # Nmap Public Source License Version 0.93
+    # https://github.com/nmap/nmap/blob/master/LICENSE
+    license = licenses.unfree;
+    maintainers = with maintainers; [ fab SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/nosqli/default.nix b/nixpkgs/pkgs/tools/security/nosqli/default.nix
new file mode 100644
index 000000000000..3163d1683710
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/nosqli/default.nix
@@ -0,0 +1,25 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+  pname = "nosqli";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "Charlie-belmer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "006z76v4a3pxzgnkj5nl0mrlsqmfgvg51w20dl118k2xa70zz63j";
+  };
+
+  vendorSha256 = "01spdh2gbzp6yg2jbiwfnyhqb5s605hyfxhs0f9h4ps4qbi1h9cv";
+
+  meta = with lib; {
+    description = "NoSql Injection tool for finding vulnerable websites using MongoDB";
+    homepage = "https://github.com/Charlie-belmer/nosqli";
+    license = with licenses; [ agpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/nuclei/default.nix b/nixpkgs/pkgs/tools/security/nuclei/default.nix
index 2df24e63d894..da654e74f9bd 100644
--- a/nixpkgs/pkgs/tools/security/nuclei/default.nix
+++ b/nixpkgs/pkgs/tools/security/nuclei/default.nix
@@ -1,24 +1,28 @@
-{ buildGoModule
+{ lib
+, buildGoModule
 , fetchFromGitHub
-, lib
 }:
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.2.0";
+  version = "2.3.4";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
-    repo = "nuclei";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "0xrvza86aczlnb11x58fiqch5g0q6gvpxwsi5dq3akfi95gk3a3x";
+    sha256 = "sha256-qjbr3kTgIFdxyzRwSvWyh5krrlzD8i1nMeoLZYSbr6g=";
   };
 
-  vendorSha256 = "1v3ax8l1lgp2vs50gsa2fhdd6bvyfdlkd118akrqmwxahyyyqycv";
+  vendorSha256 = "sha256-qmuua7HXnwuy24CSqHKALqNDmXBvSIXYTVu3kaGVoeU=";
 
-  preBuild = ''
-    mv v2/* .
-  '';
+  modRoot = "./v2";
+  subPackages = [
+    "cmd/nuclei/"
+  ];
+
+  # Test files are not part of the release tarball
+  doCheck = false;
 
   meta = with lib; {
     description = "Tool for configurable targeted scanning";
diff --git a/nixpkgs/pkgs/tools/security/open-ecard/default.nix b/nixpkgs/pkgs/tools/security/open-ecard/default.nix
index c46d5b65cd8e..5c07add90563 100644
--- a/nixpkgs/pkgs/tools/security/open-ecard/default.nix
+++ b/nixpkgs/pkgs/tools/security/open-ecard/default.nix
@@ -25,7 +25,7 @@ in stdenv.mkDerivation rec {
 
   phases = "installPhase";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   desktopItem = makeDesktopItem {
     name = appName;
diff --git a/nixpkgs/pkgs/tools/security/pass/extensions/import.nix b/nixpkgs/pkgs/tools/security/pass/extensions/import.nix
index 0fd14901d0db..11b4eecd14d9 100644
--- a/nixpkgs/pkgs/tools/security/pass/extensions/import.nix
+++ b/nixpkgs/pkgs/tools/security/pass/extensions/import.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pass, fetchFromGitHub, pythonPackages, makeWrapper, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub, pythonPackages, makeWrapper, fetchpatch }:
 
 let
   pythonEnv = pythonPackages.python.withPackages (p: [
diff --git a/nixpkgs/pkgs/tools/security/pass/rofi-pass.nix b/nixpkgs/pkgs/tools/security/pass/rofi-pass.nix
index b6547deb560a..3b5aedf81a80 100644
--- a/nixpkgs/pkgs/tools/security/pass/rofi-pass.nix
+++ b/nixpkgs/pkgs/tools/security/pass/rofi-pass.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "131jpcwyyzgzjn9lx4k1zn95pd68pjw4i41jfzcp9z9fnazyln5n";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/tools/security/passphrase2pgp/default.nix b/nixpkgs/pkgs/tools/security/passphrase2pgp/default.nix
new file mode 100644
index 000000000000..a53e03c3c1e3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/passphrase2pgp/default.nix
@@ -0,0 +1,27 @@
+{ lib, pandoc, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "passphrase2pgp";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "skeeto";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-Nje77tn55CKRU6igEA/6IquDhXVVQAdiez6nmN49di4";
+  };
+
+  vendorSha256 = "sha256-7q5nwkj4TP7VgHmV9YBbCB11yTPL7tK4gD+uN4Vw3Cs";
+
+  postInstall = ''
+    mkdir -p $out/share/doc/$name
+    cp README.md $out/share/doc/$name
+  '';
+
+  meta = with lib; {
+    description = "Predictable, passphrase-based PGP key generator";
+    homepage = "https://github.com/skeeto/passphrase2pgp";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ kaction ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/pcsc-scm-scl011/default.nix b/nixpkgs/pkgs/tools/security/pcsc-scm-scl011/default.nix
index b7c4319fa058..aa1580e24598 100644
--- a/nixpkgs/pkgs/tools/security/pcsc-scm-scl011/default.nix
+++ b/nixpkgs/pkgs/tools/security/pcsc-scm-scl011/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ik26sxgqgsqplksl87z61vwmx51k7plaqmrkdid7xidgfhfxr42";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   unpackPhase = ''
     unzip $src
diff --git a/nixpkgs/pkgs/tools/security/pcsclite/default.nix b/nixpkgs/pkgs/tools/security/pcsclite/default.nix
index 1d874a16da64..2a75c409305e 100644
--- a/nixpkgs/pkgs/tools/security/pcsclite/default.nix
+++ b/nixpkgs/pkgs/tools/security/pcsclite/default.nix
@@ -1,15 +1,14 @@
-{ lib, stdenv, fetchurl, pkg-config, udev, dbus, perl, python3
-, IOKit ? null }:
+{ lib, stdenv, fetchurl, pkg-config, udev, dbus, perl, python3, IOKit }:
 
 stdenv.mkDerivation rec {
   pname = "pcsclite";
-  version = "1.9.0";
+  version = "1.9.1";
 
   outputs = [ "bin" "out" "dev" "doc" "man" ];
 
   src = fetchurl {
     url = "https://pcsclite.apdu.fr/files/pcsc-lite-${version}.tar.bz2";
-    sha256 = "1y9f9zipnrmgiw0mxrvcgky8vfrcmg6zh40gbln5a93i2c1x8j01";
+    sha256 = "sha256-c8R4m3h2qDOnD0k82iFlXf6FaJ2bfilwHCQyduVeaDo=";
   };
 
   patches = [ ./no-dropdir-literals.patch ];
@@ -19,9 +18,9 @@ stdenv.mkDerivation rec {
     "--enable-usbdropdir=/var/lib/pcsc/drivers"
     "--enable-confdir=/etc"
   ] ++ lib.optional stdenv.isLinux
-         "--with-systemdsystemunitdir=\${out}/etc/systemd/system"
-    ++ lib.optional (!stdenv.isLinux)
-         "--disable-libsystemd";
+    "--with-systemdsystemunitdir=\${out}/etc/systemd/system"
+  ++ lib.optional (!stdenv.isLinux)
+    "--disable-libsystemd";
 
   postConfigure = ''
     sed -i -re '/^#define *PCSCLITE_HP_DROPDIR */ {
@@ -35,8 +34,10 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkg-config perl ];
-  buildInputs = [ python3 ] ++ lib.optionals stdenv.isLinux [ udev dbus ]
-             ++ lib.optionals stdenv.isDarwin [ IOKit ];
+
+  buildInputs = [ python3 ]
+    ++ lib.optionals stdenv.isLinux [ udev dbus ]
+    ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
   meta = with lib; {
     description = "Middleware to access a smart card using SCard API (PC/SC)";
diff --git a/nixpkgs/pkgs/tools/security/pdfcrack/default.nix b/nixpkgs/pkgs/tools/security/pdfcrack/default.nix
index afef0d4c4723..451cdd5591bd 100644
--- a/nixpkgs/pkgs/tools/security/pdfcrack/default.nix
+++ b/nixpkgs/pkgs/tools/security/pdfcrack/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     homepage = "http://pdfcrack.sourceforge.net/";
     description = "Small command line driven tool for recovering passwords and content from PDF files";
     license = with licenses; [ gpl2 ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ qoelet ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/pinentry/mac.nix b/nixpkgs/pkgs/tools/security/pinentry/mac.nix
index 9c328d472c4b..27917ffbbf17 100644
--- a/nixpkgs/pkgs/tools/security/pinentry/mac.nix
+++ b/nixpkgs/pkgs/tools/security/pinentry/mac.nix
@@ -14,6 +14,12 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ xcbuildHook ];
   buildInputs = [ libiconv ncurses Cocoa ];
 
+  preBuild = ''
+    # Only build for what we care about (also allows arm64)
+    substituteInPlace pinentry-mac.xcodeproj/project.pbxproj \
+      --replace "i386 x86_64 ppc" "${stdenv.targetPlatform.darwinArch}"
+  '';
+
   installPhase = ''
     mkdir -p $out/Applications
     mv Products/Release/pinentry-mac.app $out/Applications
diff --git a/nixpkgs/pkgs/tools/security/proxmark3/default.nix b/nixpkgs/pkgs/tools/security/proxmark3/default.nix
index 3b1f21ac7187..b52e7279fa98 100644
--- a/nixpkgs/pkgs/tools/security/proxmark3/default.nix
+++ b/nixpkgs/pkgs/tools/security/proxmark3/default.nix
@@ -15,6 +15,8 @@ let
       nativeBuildInputs = [ pkg-config gcc-arm-embedded ];
       buildInputs = [ ncurses readline pcsclite qt5.qtbase ];
 
+      dontWrapQtApps = true;
+
       postPatch = ''
         substituteInPlace client/Makefile --replace '-ltermcap' ' '
         substituteInPlace liblua/Makefile --replace '-ltermcap' ' '
diff --git a/nixpkgs/pkgs/tools/security/proxmark3/proxmark3-rrg.nix b/nixpkgs/pkgs/tools/security/proxmark3/proxmark3-rrg.nix
index 04def66d03c9..2ae344394724 100644
--- a/nixpkgs/pkgs/tools/security/proxmark3/proxmark3-rrg.nix
+++ b/nixpkgs/pkgs/tools/security/proxmark3/proxmark3-rrg.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, mkDerivation, fetchFromGitHub, pkg-config, gcc-arm-embedded, bluez5
+{ lib, mkDerivation, fetchFromGitHub, pkg-config, gcc-arm-embedded, bluez5
 , readline
 
 , hardwarePlatform ? "PM3RDV4"
diff --git a/nixpkgs/pkgs/tools/security/prs/default.nix b/nixpkgs/pkgs/tools/security/prs/default.nix
new file mode 100644
index 000000000000..2d96c89970ec
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/prs/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, rustPlatform
+, fetchFromGitLab
+, pkg-config
+, python3
+, dbus
+, glib
+, gpgme
+, gtk3
+, libxcb
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "prs";
+  version = "0.2.7";
+
+  src = fetchFromGitLab {
+    owner = "timvisee";
+    repo = "prs";
+    rev = "v${version}";
+    sha256 = "sha256-1Jrgf5UW6k0x3q6kQIB6Q7moOhConEnUU9r+21W5Uu8=";
+  };
+
+  cargoSha256 = "sha256-N3pLW/OGeurrl+AlwdfbZ3T7WzEOAuyUMdIR164Xp7k=";
+
+  postPatch = ''
+    # The GPGME backend is recommended
+    for f in "gtk3/Cargo.toml" "cli/Cargo.toml"; do
+      substituteInPlace "$f" --replace \
+        'default = ["backend-gnupg-bin"' 'default = ["backend-gpgme"'
+    done
+  '';
+
+  nativeBuildInputs = [ gpgme pkg-config python3 ];
+
+  buildInputs = [ dbus glib gpgme gtk3 libxcb ];
+
+  meta = with lib; {
+    description = "Secure, fast & convenient password manager CLI using GPG and git to sync";
+    homepage = "https://gitlab.com/timvisee/prs";
+    changelog = "https://gitlab.com/timvisee/prs/-/blob/v${version}/CHANGELOG.md";
+    license = with licenses; [
+      lgpl3Only # lib
+      gpl3Only  # everything else
+    ];
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/pwncat/default.nix b/nixpkgs/pkgs/tools/security/pwncat/default.nix
new file mode 100644
index 000000000000..67cfac9085fa
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/pwncat/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+}:
+
+buildPythonApplication rec {
+  pname = "pwncat";
+  version = "0.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "62e625e9061f037cfca7b7455a4f7db4213c1d1302e73d4c475c63f924f1805f";
+  };
+
+  # Tests requires to start containers
+  doCheck = false;
+
+  meta = with lib; {
+    description = "TCP/UDP communication suite";
+    homepage = "https://pwncat.org/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/rage/default.nix b/nixpkgs/pkgs/tools/security/rage/default.nix
index 3724637c6047..d248fb19a276 100644
--- a/nixpkgs/pkgs/tools/security/rage/default.nix
+++ b/nixpkgs/pkgs/tools/security/rage/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rage";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "str4d";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XSDfAsXfwSoe5JMdJtZlC324Sra+4fVJhE3/k2TthEc=";
+    sha256 = "sha256-oYCARqG5YwKO0b73aEMLr/xzXl6xBEMCvE1HMCtMq20=";
   };
 
-  cargoSha256 = "sha256-GPr5zxeODAjD+ynp/nned9gZUiReYcdzosuEbLIKZSs=";
+  cargoSha256 = "sha256-vadXIdqfmol4thHIwpkQCn7HsXdxo0l+6CBm3QIJmeA=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/security/rarcrack/default.nix b/nixpkgs/pkgs/tools/security/rarcrack/default.nix
index 94800ca8c04f..3745a9520f1c 100644
--- a/nixpkgs/pkgs/tools/security/rarcrack/default.nix
+++ b/nixpkgs/pkgs/tools/security/rarcrack/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation {
     sha256 = "134fq84896w5vp8vg4qg0ybpb466njibigyd7bqqm1xydr07qrgn";
   };
 
-  buildInputs = [ libxml2 file p7zip unrar unzip ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ libxml2 file p7zip unrar ];
   buildFlags = lib.optional stdenv.cc.isClang "CC=clang";
   installFlags = [ "PREFIX=\${out}" ];
 
diff --git a/nixpkgs/pkgs/tools/security/rbw/bump-security-framework-crate.patch b/nixpkgs/pkgs/tools/security/rbw/bump-security-framework-crate.patch
new file mode 100644
index 000000000000..9074dd925b82
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/rbw/bump-security-framework-crate.patch
@@ -0,0 +1,19 @@
+Bump security-framework from 2.1.1 to 2.1.2
+
+security-framework=2.1.1 doesn't build on Darwin 10.12.
+https://github.com/kornelski/rust-security-framework/issues/124
+
+--- i/Cargo.lock
++++ w/Cargo.lock
+@@ -1361,9 +1361,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+ 
+ [[package]]
+ name = "security-framework"
+-version = "2.1.1"
++version = "2.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2dfd318104249865096c8da1dfabf09ddbb6d0330ea176812a62ec75e40c4166"
++checksum = "d493c5f39e02dfb062cd8f33301f90f9b13b650e8c1b1d0fd75c19dd64bff69d"
+ dependencies = [
+  "bitflags",
+  "core-foundation",
diff --git a/nixpkgs/pkgs/tools/security/rbw/default.nix b/nixpkgs/pkgs/tools/security/rbw/default.nix
index 6ea2f45b8062..c1f99719d76c 100644
--- a/nixpkgs/pkgs/tools/security/rbw/default.nix
+++ b/nixpkgs/pkgs/tools/security/rbw/default.nix
@@ -2,11 +2,11 @@
 , stdenv
 , rustPlatform
 , fetchCrate
-, pinentry
 , openssl
 , pkg-config
 , makeWrapper
 , Security
+, libiconv
 
 # rbw-fzf
 , withFzf ? false, fzf, perl
@@ -20,27 +20,26 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rbw";
-  version = "0.5.2";
+  version = "1.1.2";
 
   src = fetchCrate {
     inherit version;
     crateName = pname;
-    sha256 = "1mxl71yz2iy5s6pbp33cwkfzzilkla4qqiskd6jsd5fdlrrwlxqm";
+    sha256 = "1xihjx4f8kgyablxsy8vgn4w6i92p2xm5ncacdk39npa5g8wadlx";
   };
 
-  cargoSha256 = "19gznam64s17kha3accgjks5rmd9kpqqgxg3dfrk7fg5v4431007";
+  cargoSha256 = "0fvs06wd05a90dggi7n46d5gl9flnciqzg9j3ijmz3z5bb6aky1b";
+
+  cargoPatches = [ ./bump-security-framework-crate.patch ];
 
   nativeBuildInputs = [
     pkg-config
     makeWrapper
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
 
-  postPatch = ''
-    substituteInPlace src/pinentry.rs \
-      --replace 'Command::new("pinentry")' 'Command::new("${pinentry}/${pinentry.binaryPath or "bin/pinentry"}")'
-  '' + lib.optionalString withFzf ''
+  postPatch = lib.optionalString withFzf ''
     patchShebangs bin/rbw-fzf
     substituteInPlace bin/rbw-fzf \
         --replace fzf ${fzf}/bin/fzf \
diff --git a/nixpkgs/pkgs/tools/security/rekor/default.nix b/nixpkgs/pkgs/tools/security/rekor/default.nix
new file mode 100644
index 000000000000..b260d46f934f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/rekor/default.nix
@@ -0,0 +1,51 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+let
+  generic = { pname, subPackages, description, postInstall }:
+    buildGoModule rec {
+      inherit pname;
+      version = "0.1.1";
+
+      src = fetchFromGitHub {
+        owner = "sigstore";
+        repo = "rekor";
+        rev = "v${version}";
+        sha256 = "1hvkfvc747g5r4h8vb1d8ikqxmlyxsycnlh78agmmjpxlasspmbk";
+      };
+
+      vendorSha256 = "0vdir9ia3hv27rkm6jnvhsfc3mxw36xfvwqnfd34rgzmzcfxlrbv";
+
+      inherit subPackages postInstall;
+
+      meta = with lib; {
+        inherit description;
+        homepage = "https://github.com/sigstore/rekor";
+        changelog = "https://github.com/sigstore/rekor/releases/tag/v${version}";
+        license = licenses.asl20;
+        maintainers = with maintainers; [ lesuisse ];
+      };
+    };
+in {
+  rekor-cli = generic {
+    pname = "rekor-cli";
+    subPackages = [ "cmd/cli" ];
+    # Will not be needed with the next version, the package as been renamed upstream
+    postInstall = ''
+      if [ -f "$out/bin/cli" ]; then
+        mv "$out/bin/cli" "$out/bin/rekor-client"
+      fi
+    '';
+    description = "CLI client for Sigstore, the Signature Transparency Log";
+  };
+  rekor-server = generic {
+    pname = "rekor-server";
+    subPackages = [ "cmd/server" ];
+    # Will not be needed with the next version, the package as been renamed upstream
+    postInstall = ''
+      if [ -f "$out/bin/server" ]; then
+        mv "$out/bin/server" "$out/bin/rekor-server"
+      fi
+    '';
+    description = "Sigstore server, the Signature Transparency Log";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/rhash/default.nix b/nixpkgs/pkgs/tools/security/rhash/default.nix
index f4cc65f5d8e7..c602ec622cd2 100644
--- a/nixpkgs/pkgs/tools/security/rhash/default.nix
+++ b/nixpkgs/pkgs/tools/security/rhash/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, which }:
 
 stdenv.mkDerivation rec {
-  version = "1.4.0";
+  version = "1.4.1";
   pname = "rhash";
 
   src = fetchFromGitHub {
     owner = "rhash";
     repo = "RHash";
     rev = "v${version}";
-    sha256 = "18zgr1bjzz8v6rckz2q2hx9f2ssbv8qfwclzpbyjaz0c1c9lqqar";
+    sha256 = "sha256-kmi1FtJYPBUdMfJlzEsQkTwcYB99isP3yzH1EYlk54g=";
   };
 
   nativeBuildInputs = [ which ];
diff --git a/nixpkgs/pkgs/tools/security/saml2aws/default.nix b/nixpkgs/pkgs/tools/security/saml2aws/default.nix
index 57a92ef4b996..e2f1ab7cdb6c 100644
--- a/nixpkgs/pkgs/tools/security/saml2aws/default.nix
+++ b/nixpkgs/pkgs/tools/security/saml2aws/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.27.1";
+  version = "2.28.0";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "1ffq7jh14cj45wn5rx9awh5k8hqbfwm4fjz0a0rq22yqfwbbkkj2";
+    sha256 = "sha256-2t1MytLjAxhVVsWyMYcQZ9c+ox+X2OszG5mLAv8c7xE=";
   };
 
   runVend = true;
-  vendorSha256 = "1w7vnpv36lhxpaljdhslbckkr7p81nzc91a0503wk8nrrc4ljsyy";
+  vendorSha256 = "sha256-8Kox01iyWhv/Fp7jHPeNXxc/K2TT1WPyWFieHZkqLho=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/security/secretscanner/default.nix b/nixpkgs/pkgs/tools/security/secretscanner/default.nix
new file mode 100644
index 000000000000..93d440009f3f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/secretscanner/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, hyperscan
+, pkg-config
+}:
+
+buildGoModule rec {
+  pname = "secretscanner";
+  version = "20210214-${lib.strings.substring 0 7 rev}";
+  rev = "42a38f9351352bf6240016b5b93d971be35cad46";
+
+  src = fetchFromGitHub {
+    owner = "deepfence";
+    repo = "SecretScanner";
+    inherit rev;
+    sha256 = "0yga71f7bx5a3hj5agr88pd7j8jnxbwqm241fhrvv8ic4sx0mawg";
+  };
+
+  vendorSha256 = "0b7qa83iqnigihgwlqsxi28n7d9h0dk3wx1bqvhn4k01483cipsd";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ hyperscan ];
+
+  postInstall = ''
+    mv $out/bin/SecretScanner $out/bin/$pname
+  '';
+
+  meta = with lib; {
+    description = "Tool to find secrets and passwords in container images and file systems";
+    homepage = "https://github.com/deepfence/SecretScanner";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/security/shc/default.nix b/nixpkgs/pkgs/tools/security/shc/default.nix
index 4cbedb232187..0c1bf93ed1c6 100644
--- a/nixpkgs/pkgs/tools/security/shc/default.nix
+++ b/nixpkgs/pkgs/tools/security/shc/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://neurobin.org/projects/softwares/unix/shc/";
     description = "Shell Script Compiler";
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
     license = licenses.gpl3;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/shhgit/default.nix b/nixpkgs/pkgs/tools/security/shhgit/default.nix
new file mode 100644
index 000000000000..a05eba1282c1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/shhgit/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "shhgit";
+  version = "0.4-${lib.strings.substring 0 7 rev}";
+  rev = "7e55062d10d024f374882817692aa2afea02ff84";
+
+  src = fetchFromGitHub {
+    owner = "eth0izzle";
+    repo = pname;
+    inherit rev;
+    sha256 = "1b7r4ivfplm4crlvx571nyz2rc6djy0xvl14nz7m0ngh6206df9k";
+  };
+
+  vendorSha256 = "0isa9faaknm8c9mbyj5dvf1dfnyv44d1pjd2nbkyfi6b22hcci3d";
+
+  meta = with lib; {
+    description = "Tool to detect secrets in repositories";
+    homepage = "https://github.com/eth0izzle/shhgit";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/sipvicious/default.nix b/nixpkgs/pkgs/tools/security/sipvicious/default.nix
new file mode 100644
index 000000000000..8403019a341e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/sipvicious/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+}:
+
+buildPythonApplication rec {
+  pname = "sipvicious";
+  version = "0.3.3";
+
+  src = fetchFromGitHub {
+    owner = "EnableSecurity";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "17f6w7qh33zvlhqwf22y9y7skha0xjs46yk66q8xm4brsv4lfxxa";
+  };
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "sipvicious" ];
+
+  meta = with lib; {
+    description = " Set of tools to audit SIP based VoIP systems";
+    homepage = "https://github.com/EnableSecurity/sipvicious";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/slowhttptest/default.nix b/nixpkgs/pkgs/tools/security/slowhttptest/default.nix
new file mode 100644
index 000000000000..5dce5d5439ac
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/slowhttptest/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "slowhttptest";
+  version = "1.8.2";
+
+  src = fetchFromGitHub {
+    owner = "shekyan";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1xv2j3hl4zj0s2cxcsvlwgridh9ap4g84g7c4918d03id15wydcx";
+  };
+
+  buildInputs = [ openssl ];
+
+  meta = with lib; {
+    description = "Application Layer DoS attack simulator";
+    homepage = "https://github.com/shekyan/slowhttptest";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/sn0int/default.nix b/nixpkgs/pkgs/tools/security/sn0int/default.nix
index 7cc343b78234..1577b4764012 100644
--- a/nixpkgs/pkgs/tools/security/sn0int/default.nix
+++ b/nixpkgs/pkgs/tools/security/sn0int/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sn0int";
-  version = "0.20.0";
+  version = "0.20.1";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zjrbrkk7phv8s5qr0gj6fnssa31j3k3m8c55pdfmajh7ry7wwd1";
+    sha256 = "sha256-vnSpItch9RDUyYxERKRwYPmRLwRG9gAI7iIY+7iRs1w=";
   };
 
-  cargoSha256 = "1jvaavhjyalnh10vfhrdyqg1jnl8b4a3gnp8a31bgi3mb0v466k3";
+  cargoSha256 = "sha256-1QqNI7rdH5wb1Zge8gkJtzg2Hgd/Vk9DAU9ULk/5wiw=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/security/sonar-scanner-cli/default.nix b/nixpkgs/pkgs/tools/security/sonar-scanner-cli/default.nix
index f5ae475a45b0..95db01370b44 100644
--- a/nixpkgs/pkgs/tools/security/sonar-scanner-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/sonar-scanner-cli/default.nix
@@ -21,7 +21,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl sonarScannerArchPackage.${stdenv.hostPlatform.system};
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     mkdir -p $out/lib
diff --git a/nixpkgs/pkgs/tools/security/sops/default.nix b/nixpkgs/pkgs/tools/security/sops/default.nix
index ae6f000fe3f7..ec1ade20a19a 100644
--- a/nixpkgs/pkgs/tools/security/sops/default.nix
+++ b/nixpkgs/pkgs/tools/security/sops/default.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "sops";
-  version = "3.6.1";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "mozilla";
     repo = pname;
-    sha256 = "0xl53rs8jzq5yz4wi0vzsr6ajsaf2x2n1h3x7krk02a9839y6f18";
+    sha256 = "1a0v1jgbz8n3dymzr2shg2ms9sxjwaci209ldzq8v4g737v10zgm";
   };
 
-  vendorSha256 = "1cpm06dyc6lb3a9apfggyi16alb2yijvyan1gbrl8r9fwlqvdpjk";
+  vendorSha256 = "1qaml2h3c8fhmi8ahp2fmd0hagqp5xqaf8jxjh4mfmbv2is3yz1l";
 
   doCheck = false;
 
   meta = with lib; {
     homepage = "https://github.com/mozilla/sops";
     description = "Mozilla sops (Secrets OPerationS) is an editor of encrypted files";
+    changelog = "https://github.com/mozilla/sops/raw/v${version}/CHANGELOG.rst";
     maintainers = [ maintainers.marsam ];
     license = licenses.mpl20;
   };
diff --git a/nixpkgs/pkgs/tools/security/ssb/default.nix b/nixpkgs/pkgs/tools/security/ssb/default.nix
new file mode 100644
index 000000000000..d6305e4cf4a4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/ssb/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "ssb";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "kitabisa";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0dkd02l30461cwn5hsssnjyb9s8ww179wll3l7z5hy1hv3x6h9g1";
+  };
+
+  vendorSha256 = "1q3dxizyz9bcdfs5j2bzhl2aadhd00cvzhj202wlls0zrlb9pp4f";
+
+  meta = with lib; {
+    description = "Tool to bruteforce SSH server";
+    homepage = "https://github.com/kitabisa/ssb";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/ssh-audit/default.nix b/nixpkgs/pkgs/tools/security/ssh-audit/default.nix
index 2fdc42e52803..a7ef677759f3 100644
--- a/nixpkgs/pkgs/tools/security/ssh-audit/default.nix
+++ b/nixpkgs/pkgs/tools/security/ssh-audit/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ssh-audit";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "jtesta";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1h739r5nv5zkmjyyjwkw8r6d4avddjjxsamc5rffwfxi1kjavpxm";
+    sha256 = "sha256-Xq1q/i43vZAv8BayVOdKuZ3+mJcQQ0x4Kc3WlASE6m8=";
   };
 
   checkInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/security/ssh-to-pgp/default.nix b/nixpkgs/pkgs/tools/security/ssh-to-pgp/default.nix
index 487cc44cdd73..fc07714b55b0 100644
--- a/nixpkgs/pkgs/tools/security/ssh-to-pgp/default.nix
+++ b/nixpkgs/pkgs/tools/security/ssh-to-pgp/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ssh-to-pgp";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "ssh-to-pgp";
     rev = version;
-    sha256 = "sha256-TDrpnWAez8muysMdmKFBDZfK8CyhGn1VqHB8+zD6jSk=";
+    sha256 = "sha256-5Wg0ItAkAb0zlhzcuDT9o0XIIbG9kqk4mIYb6hSJlsI=";
   };
 
-  vendorSha256 = "sha256-ZF/WsmqmGHZIAGTPKJ70UhtmssNhiInEZfzrKxQLw9I=";
+  vendorSha256 = "sha256-OMWiJ1n8ynvIGcmotjuGGsRuAidYgVo5Y5JjrAw8fpc=";
 
   checkInputs = [ gnupg ];
   checkPhase = ''
diff --git a/nixpkgs/pkgs/tools/security/sshguard/default.nix b/nixpkgs/pkgs/tools/security/sshguard/default.nix
index 88e726bc8635..f42a1ec96f43 100644
--- a/nixpkgs/pkgs/tools/security/sshguard/default.nix
+++ b/nixpkgs/pkgs/tools/security/sshguard/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, autoreconfHook, yacc, flex}:
+{ lib, stdenv, fetchurl, autoreconfHook, bison, flex}:
 
 stdenv.mkDerivation rec {
   version = "2.4.1";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  nativeBuildInputs = [ autoreconfHook yacc flex ];
+  nativeBuildInputs = [ autoreconfHook bison flex ];
 
   configureFlags = [ "--sysconfdir=/etc" ];
 
diff --git a/nixpkgs/pkgs/tools/security/sslscan/default.nix b/nixpkgs/pkgs/tools/security/sslscan/default.nix
index fcf9c4c1ac2f..29762fc527c3 100644
--- a/nixpkgs/pkgs/tools/security/sslscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/sslscan/default.nix
@@ -1,25 +1,28 @@
-{ lib, stdenv, fetchFromGitHub, openssl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, openssl
+}:
 
 stdenv.mkDerivation rec {
   pname = "sslscan";
-  version = "1.11.13";
+  version = "2.0.9";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
-    rev = "${version}-rbsec";
-    sha256 = "0sa8iw91wi3515lw761j84wagab1x9rxr0mn8m08qj300z2044yk";
+    rev = version;
+    sha256 = "0594svwz4pya0syibar0ahmi5zdjbwd5kg6hrlhfpmmslrsyli6m";
   };
 
   buildInputs = [ openssl ];
 
-  makeFlags = [ "PREFIX=$(out)" "CC=cc" ];
+  makeFlags = [ "PREFIX=$(out)" "CC=${stdenv.cc.targetPrefix}cc" ];
 
   meta = with lib; {
     description = "Tests SSL/TLS services and discover supported cipher suites";
     homepage = "https://github.com/rbsec/sslscan";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ fpletz globin ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/steghide/default.nix b/nixpkgs/pkgs/tools/security/steghide/default.nix
deleted file mode 100644
index cb2a0473cf15..000000000000
--- a/nixpkgs/pkgs/tools/security/steghide/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib, stdenv, fetchurl, libjpeg, libmcrypt, zlib, libmhash, gettext, libtool}:
-
-stdenv.mkDerivation rec {
-  buildInputs = [ libjpeg libmcrypt zlib libmhash gettext libtool ];
-  version = "0.5.1";
-  pname = "steghide";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/steghide/steghide/${version}/steghide-${version}.tar.gz" ;
-    sha256 = "78069b7cfe9d1f5348ae43f918f06f91d783c2b3ff25af021e6a312cf541b47b";
-  };
-
-  patches = [
-    ./patches/steghide-0.5.1-gcc34.patch
-    ./patches/steghide-0.5.1-gcc4.patch
-    ./patches/steghide-0.5.1-gcc43.patch
-  ];
-
-  # AM_CXXFLAGS needed for automake
-  preConfigure = ''
-    export AM_CXXFLAGS="$CXXFLAGS -std=c++0x"
-  '';
-
-  meta = with lib; {
-    homepage = "http://steghide.sourceforge.net/";
-    description = "Steganography program that is able to hide data in various kinds of image- and audio-files";
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc34.patch b/nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc34.patch
deleted file mode 100644
index 373316c78406..000000000000
--- a/nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc34.patch
+++ /dev/null
@@ -1,42 +0,0 @@
---- steghide-0.5.1.old/src/Makefile.am
-+++ steghide-0.5.1.new/src/Makefile.am	2004-07-16 19:01:39.673947633 +0200
-@@ -33,5 +33,5 @@
- WavPCMSampleValue.cc error.cc main.cc msg.cc SMDConstructionHeuristic.cc
- LIBS = @LIBINTL@ @LIBS@
- localedir = $(datadir)/locale
--LIBTOOL = $(SHELL) libtool
-+LIBTOOL = $(SHELL) libtool --tag=CXX
- MAINTAINERCLEANFILES = Makefile.in
---- steghide-0.5.1.old/src/AuSampleValues.cc
-+++ steghide-0.5.1.new/src/AuSampleValues.cc	2004-07-16 18:59:18.934578427 +0200
-@@ -17,21 +17,21 @@
-  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-  *
-  */
--
-+#include "common.h"
- #include "AuSampleValues.h"
- 
- // AuMuLawSampleValue
--const BYTE AuMuLawSampleValue::MinValue = 0 ;
--const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ;
-+template<> const BYTE  AuMuLawSampleValue::MinValue = 0 ;
-+template<> const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ;
- 
- // AuPCM8SampleValue
--const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ;
--const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ;
-+template<> const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ;
-+template<> const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ;
- 
- // AuPCM16SampleValue
--const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ;
--const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ;
-+template<> const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ;
-+template<> const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ;
- 
- // AuPCM32SampleValue
--const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ;
--const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;
-+template<> const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ;
-+template<> const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;
diff --git a/nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc4.patch b/nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc4.patch
deleted file mode 100644
index a8df1735e9d4..000000000000
--- a/nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc4.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff -Naur steghide-0.5.1-orig/src/AuData.h steghide-0.5.1/src/AuData.h
---- steghide-0.5.1-orig/src/AuData.h	2003-09-28 09:30:29.000000000 -0600
-+++ steghide-0.5.1/src/AuData.h	2007-05-11 22:04:56.000000000 -0600
-@@ -26,22 +26,30 @@
- 
- // AuMuLawAudioData
- typedef AudioDataImpl<AuMuLaw,BYTE> AuMuLawAudioData ;
-+template<>
- inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const { return (io->read8()) ; }
-+template<>
- inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v) const { io->write8(v) ; }
- 
- // AuPCM8AudioData
- typedef AudioDataImpl<AuPCM8,SBYTE> AuPCM8AudioData ;
-+template<>
- inline SBYTE AuPCM8AudioData::readValue (BinaryIO* io) const { return ((SBYTE) io->read8()) ; }
-+template<>
- inline void AuPCM8AudioData::writeValue (BinaryIO* io, SBYTE v) const { io->write8((BYTE) v) ; }
- 
- // AuPCM16AudioData
- typedef AudioDataImpl<AuPCM16,SWORD16> AuPCM16AudioData ;
-+template<>
- inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const { return ((SWORD16) io->read16_be()) ; }
-+template<>
- inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v) const { io->write16_be((UWORD16) v) ; }
- 
- // AuPCM32AudioData
- typedef AudioDataImpl<AuPCM32,SWORD32> AuPCM32AudioData ;
-+template<>
- inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const { return ((SWORD32) io->read32_be()) ; }
-+template<>
- inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v) const { io->write32_be((UWORD32) v) ; }
- 
- #endif // ndef SH_AUDATA_H
-diff -Naur steghide-0.5.1-orig/src/MHashPP.cc steghide-0.5.1/src/MHashPP.cc
---- steghide-0.5.1-orig/src/MHashPP.cc	2003-10-05 04:17:50.000000000 -0600
-+++ steghide-0.5.1/src/MHashPP.cc	2007-05-11 22:07:01.000000000 -0600
-@@ -120,7 +120,7 @@
- 
- std::string MHashPP::getAlgorithmName (hashid id)
- {
--	char *name = mhash_get_hash_name (id) ;
-+	char *name = (char *) mhash_get_hash_name (id) ;
- 	std::string retval ;
- 	if (name == NULL) {
- 		retval = std::string ("<algorithm not found>") ;
diff --git a/nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc43.patch b/nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc43.patch
deleted file mode 100644
index ca66b9c544f5..000000000000
--- a/nixpkgs/pkgs/tools/security/steghide/patches/steghide-0.5.1-gcc43.patch
+++ /dev/null
@@ -1,349 +0,0 @@
---- steghide-0.5.1.old/configure.in	2003-10-15 09:48:52.000000000 +0200
-+++ steghide-0.5.1.new/configure.in	2008-05-09 19:04:46.000000000 +0200
-@@ -7,27 +7,26 @@
- dnl checks for programs.
- AC_PROG_CXX
- AC_PROG_INSTALL
- AC_PROG_AWK
- AC_PROG_LN_S
-+AC_CXX_COMPILE_STDCXX_0X
- 
- dnl GNU gettext
- AC_CHECK_FUNCS(strchr)
- AM_GNU_GETTEXT
- AM_CONDITIONAL(USE_INTLDIR, test "$nls_cv_use_gnu_gettext" = yes)
- 
- dnl check if debugging support is requested
--AC_MSG_CHECKING([wether to enable debugging])
-+AC_MSG_CHECKING([whether to enable debugging])
- AC_ARG_ENABLE(debug,[  --enable-debug          enable debugging],
- 	if test "$enableval" = yes ;
- 	then
- 		AC_MSG_RESULT([yes])
- 		AC_DEFINE(DEBUG,1,[enable code used only for debugging])
--		CXXFLAGS="-O2 -Wall -g"
- 	else
- 		AC_MSG_RESULT([no])
--		CXXFLAGS="-O2 -Wall"
- 	fi
- 	,
- 	AC_MSG_RESULT([no])
- 	CXXFLAGS="-O2 -Wall"
- )
-@@ -213,7 +212,18 @@
- 	echo "libmhash can be downloaded from http://mhash.sourceforge.net/.";
- 	echo "**********";
- 	AC_MSG_ERROR([[libmhash not found]])
- fi
- 
-+dnl Should we add std=c++0x?
-+
-+if test "$ac_cv_cxx_compile_cxx0x_cxx" = yes;
-+then
-+	CXXFLAGS="${CXXFLAGS} -std=c++0x -Wall -Wextra"
-+else
-+	CXXFLAGS="${CXXFLAGS} -Wall -Wextra"
-+fi
-+
-+AC_SUBST(CXXFLAGS)
-+
- dnl create Makefiles
- AC_OUTPUT([Makefile steghide.spec steghide.doxygen doc/Makefile po/Makefile.in src/Makefile tests/Makefile tests/data/Makefile m4/Makefile intl/Makefile])
---- steghide-0.5.1.old/m4/ac_cxx_compile_stdcxx_0x.m4	1970-01-01 01:00:00.000000000 +0100
-+++ steghide-0.5.1.new/m4/ac_cxx_compile_stdcxx_0x.m4	2008-05-09 19:04:46.000000000 +0200
-@@ -0,0 +1,107 @@
-+# ===========================================================================
-+#        http://autoconf-archive.cryp.to/ac_cxx_compile_stdcxx_0x.html
-+# ===========================================================================
-+#
-+# SYNOPSIS
-+#
-+#   AC_CXX_COMPILE_STDCXX_0X
-+#
-+# DESCRIPTION
-+#
-+#   Check for baseline language coverage in the compiler for the C++0x
-+#   standard.
-+#
-+# LAST MODIFICATION
-+#
-+#   2008-04-17
-+#
-+# COPYLEFT
-+#
-+#   Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
-+#
-+#   Copying and distribution of this file, with or without modification, are
-+#   permitted in any medium without royalty provided the copyright notice
-+#   and this notice are preserved.
-+
-+AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [
-+  AC_CACHE_CHECK(if g++ supports C++0x features without additional flags,
-+  ac_cv_cxx_compile_cxx0x_native,
-+  [AC_LANG_SAVE
-+  AC_LANG_CPLUSPLUS
-+  AC_TRY_COMPILE([
-+  template <typename T>
-+    struct check
-+    {
-+      static_assert(sizeof(int) <= sizeof(T), "not big enough");
-+    };
-+
-+    typedef check<check<bool>> right_angle_brackets;
-+
-+    int a;
-+    decltype(a) b;
-+
-+    typedef check<int> check_type;
-+    check_type c;
-+    check_type&& cr = c;],,
-+  ac_cv_cxx_compile_cxx0x_native=yes, ac_cv_cxx_compile_cxx0x_native=no)
-+  AC_LANG_RESTORE
-+  ])
-+
-+  AC_CACHE_CHECK(if g++ supports C++0x features with -std=c++0x,
-+  ac_cv_cxx_compile_cxx0x_cxx,
-+  [AC_LANG_SAVE
-+  AC_LANG_CPLUSPLUS
-+  ac_save_CXXFLAGS="$CXXFLAGS"
-+  CXXFLAGS="$CXXFLAGS -std=c++0x"
-+  AC_TRY_COMPILE([
-+  template <typename T>
-+    struct check
-+    {
-+      static_assert(sizeof(int) <= sizeof(T), "not big enough");
-+    };
-+
-+    typedef check<check<bool>> right_angle_brackets;
-+
-+    int a;
-+    decltype(a) b;
-+
-+    typedef check<int> check_type;
-+    check_type c;
-+    check_type&& cr = c;],,
-+  ac_cv_cxx_compile_cxx0x_cxx=yes, ac_cv_cxx_compile_cxx0x_cxx=no)
-+  CXXFLAGS="$ac_save_CXXFLAGS"
-+  AC_LANG_RESTORE
-+  ])
-+
-+  AC_CACHE_CHECK(if g++ supports C++0x features with -std=gnu++0x,
-+  ac_cv_cxx_compile_cxx0x_gxx,
-+  [AC_LANG_SAVE
-+  AC_LANG_CPLUSPLUS
-+  ac_save_CXXFLAGS="$CXXFLAGS"
-+  CXXFLAGS="$CXXFLAGS -std=gnu++0x"
-+  AC_TRY_COMPILE([
-+  template <typename T>
-+    struct check
-+    {
-+      static_assert(sizeof(int) <= sizeof(T), "not big enough");
-+    };
-+
-+    typedef check<check<bool>> right_angle_brackets;
-+
-+    int a;
-+    decltype(a) b;
-+
-+    typedef check<int> check_type;
-+    check_type c;
-+    check_type&& cr = c;],,
-+  ac_cv_cxx_compile_cxx0x_gxx=yes, ac_cv_cxx_compile_cxx0x_gxx=no)
-+  CXXFLAGS="$ac_save_CXXFLAGS"
-+  AC_LANG_RESTORE
-+  ])
-+
-+  if test "$ac_cv_cxx_compile_cxx0x_native" = yes ||
-+     test "$ac_cv_cxx_compile_cxx0x_cxx" = yes ||
-+     test "$ac_cv_cxx_compile_cxx0x_gxx" = yes; then
-+    AC_DEFINE(HAVE_STDCXX_0X,,[Define if g++ supports C++0x features. ])
-+  fi
-+])
---- steghide-0.5.1.old/src/Arguments.cc	2003-10-11 23:25:04.000000000 +0200
-+++ steghide-0.5.1.new/src/Arguments.cc	2008-05-09 19:04:44.000000000 +0200
-@@ -26,10 +26,12 @@
- #include "Terminal.h"
- #include "common.h"
- #include "error.h"
- #include "msg.h"
- 
-+float Arguments::Default_Goal = 100.0 ;
-+
- // the global Arguments object
- Arguments Args ;
- 
- Arguments::Arguments (int argc, char* argv[])
- {
---- steghide-0.5.1.old/src/Arguments.h	2003-10-11 23:23:57.000000000 +0200
-+++ steghide-0.5.1.new/src/Arguments.h	2008-05-09 19:04:44.000000000 +0200
-@@ -98,11 +98,11 @@
- 	static const bool		Default_EmbedEmbFn = true ;
- 	static const bool		Default_Force = false ;
- 	static const VERBOSITY	Default_Verbosity = NORMAL ;
- 	static const unsigned long	Default_Radius = 0 ; // there is no default radius for all file formats
- 	static const unsigned int	Max_Algorithm = 3 ;
--	static const float		Default_Goal = 100.0 ;
-+	static float			Default_Goal ;
- 	static const DEBUGCOMMAND	Default_DebugCommand = NONE ;
- 	static const bool		Default_Check = false ;
- 	static const unsigned int	Default_DebugLevel = 0 ;
- 	static const unsigned int	Default_GmlGraphRecDepth = 0 ;
- 	static const unsigned int	Default_GmlStartVertex = 0 ;
---- steghide-0.5.1.old/src/EncryptionMode.h	2003-09-28 17:30:30.000000000 +0200
-+++ steghide-0.5.1.new/src/EncryptionMode.h	2008-05-09 19:04:46.000000000 +0200
-@@ -69,11 +69,11 @@
- 	static const unsigned int NumValues = 8 ;
- 	IRep Value ;
- 
- 	typedef struct struct_Translation {
- 		IRep	irep ;
--		char*	srep ;
-+		const char*	srep ;
- 	} Translation ;
- 	static const Translation Translations[] ;
- } ;
- 
- #endif // ndef SH_ENCMODE_H
---- steghide-0.5.1.old/src/Graph.cc	2003-10-11 23:54:26.000000000 +0200
-+++ steghide-0.5.1.new/src/Graph.cc	2008-05-09 19:04:46.000000000 +0200
-@@ -20,10 +20,12 @@
- 
- #include <ctime>
- #include <list>
- #include <map>
- #include <vector>
-+#include <algorithm>
-+#include <climits>
- 
- #include "BitString.h"
- #include "CvrStgFile.h"
- #include "Edge.h"
- #include "Graph.h"
---- steghide-0.5.1.old/src/Matching.cc	2003-10-11 23:54:30.000000000 +0200
-+++ steghide-0.5.1.new/src/Matching.cc	2008-05-09 19:04:46.000000000 +0200
-@@ -16,10 +16,11 @@
-  * along with this program; if not, write to the Free Software
-  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-  *
-  */
- 
-+#include <algorithm>
- #include "Edge.h"
- #include "Graph.h"
- #include "Matching.h"
- #include "ProgressOutput.h"
- #include "common.h"
---- steghide-0.5.1.old/src/ProgressOutput.cc	2003-10-11 11:20:51.000000000 +0200
-+++ steghide-0.5.1.new/src/ProgressOutput.cc	2008-05-09 19:04:44.000000000 +0200
-@@ -21,10 +21,12 @@
- #include <cmath>
- 
- #include "ProgressOutput.h"
- #include "common.h"
- 
-+float ProgressOutput::NoAvgWeight = 1.0 ;
-+
- ProgressOutput::ProgressOutput ()
- 	: Message("__nomessage__")
- {
- 	LastUpdate = time(NULL) - 1 ; // -1 to ensure that message is written first time
- }
---- steghide-0.5.1.old/src/ProgressOutput.h	2003-09-28 17:30:30.000000000 +0200
-+++ steghide-0.5.1.new/src/ProgressOutput.h	2008-05-09 19:04:44.000000000 +0200
-@@ -60,13 +60,13 @@
- 	/**
- 	 * update the output appending rate, [average edge weight], "done" and a newline
- 	 * \param rate the rate of matched vertices
- 	 * \param avgweight the average edge weight (is not printed if not given)
- 	 **/
--	void done (float rate, float avgweight = NoAvgWeight) const ;
-+	void done (float rate, float avgweight = 1.0) const ;
- 
--	static const float NoAvgWeight = -1.0 ;
-+	static float NoAvgWeight ;
- 
- 	protected:
- 	std::string vcompose (const char *msgfmt, va_list ap) const ;
- 
- 	private:
---- steghide-0.5.1.old/src/SMDConstructionHeuristic.cc	2003-09-28 17:30:30.000000000 +0200
-+++ steghide-0.5.1.new/src/SMDConstructionHeuristic.cc	2008-05-09 19:04:46.000000000 +0200
-@@ -16,10 +16,12 @@
-  * along with this program; if not, write to the Free Software
-  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-  *
-  */
- 
-+#include <algorithm>
-+
- #include "Edge.h"
- #include "Graph.h"
- #include "Matching.h"
- #include "SMDConstructionHeuristic.h"
- #include "Vertex.h"
---- steghide-0.5.1.old/src/WavFile.cc	2003-09-28 17:30:30.000000000 +0200
-+++ steghide-0.5.1.new/src/WavFile.cc	2008-05-09 19:04:46.000000000 +0200
-@@ -19,10 +19,11 @@
-  */
- 
- #include <cstdio>
- #include <cstdlib>
- #include <cstring>
-+#include <algorithm>
- 
- #include "CvrStgFile.h"
- #include "DFSAPHeuristic.h"
- #include "SampleValueAdjacencyList.h"
- #include "SMDConstructionHeuristic.h"
---- steghide-0.5.1.old/src/wrapper_hash_map.h	2003-09-28 17:30:30.000000000 +0200
-+++ steghide-0.5.1.new/src/wrapper_hash_map.h	2008-05-09 19:04:46.000000000 +0200
-@@ -25,17 +25,21 @@
- 
- #ifdef __GNUC__
- # if __GNUC__ < 3
- #  include <hash_map.h>
-     namespace sgi { using ::hash ; using ::hash_map ; } ;
--# else
-+# elif __GNUC__ == 3 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 3 )
- #  include <ext/hash_map>
--#  if __GNUC_MINOR__ == 0
-+#  if __GNUC__ == 3 &&  __GNUC_MINOR__ == 0
-     namespace sgi = std ;			// GCC 3.0
- #  else
-     namespace sgi = __gnu_cxx ;	// GCC 3.1 and later
- #  endif
-+# else
-+#  include <unordered_map>
-+#  define hash_map unordered_map
-+   namespace sgi = std ;
- # endif
- #else
-   namespace sgi = std ;
- #endif
- 
---- steghide-0.5.1.old/src/wrapper_hash_set.h	2003-09-28 17:30:30.000000000 +0200
-+++ steghide-0.5.1.new/src/wrapper_hash_set.h	2008-05-09 19:04:46.000000000 +0200
-@@ -26,17 +26,21 @@
- 
- #ifdef __GNUC__
- # if __GNUC__ < 3
- #  include <hash_set.h>
-     namespace sgi { using ::hash ; using ::hash_set ; } ;
--# else
-+# elif __GNUC__ == 3 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 3 )
- #  include <ext/hash_set>
--#  if __GNUC_MINOR__ == 0
-+#  if __GNUC__ == 3 && __GNUC_MINOR__ == 0
-     namespace sgi = std ;			// GCC 3.0
- #  else
-     namespace sgi = ::__gnu_cxx ;	// GCC 3.1 and later
- #  endif
-+# else
-+#  include <unordered_set>
-+#  define hash_set unordered_set
-+   namespace sgi = std ;
- # endif
- #else
-   namespace sgi = std ;
- #endif
- 
diff --git a/nixpkgs/pkgs/tools/security/stricat/default.nix b/nixpkgs/pkgs/tools/security/stricat/default.nix
index 460838965a02..bdd7d18923f1 100644
--- a/nixpkgs/pkgs/tools/security/stricat/default.nix
+++ b/nixpkgs/pkgs/tools/security/stricat/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1axg8r4g5n5kdqj5013pgck80nni3z172xkg506vz4zx1zcmrm4r";
   };
 
-  buildFlags = [ "CC=cc" ];
+  buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/tools/security/sudo/default.nix b/nixpkgs/pkgs/tools/security/sudo/default.nix
index 0f969288a24a..d8b99c51de2c 100644
--- a/nixpkgs/pkgs/tools/security/sudo/default.nix
+++ b/nixpkgs/pkgs/tools/security/sudo/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, fetchurl, coreutils, pam, groff, sssd, nixosTests
+{ lib
+, stdenv
+, fetchurl
+, coreutils
+, pam
+, groff
+, sssd
+, nixosTests
 , sendmailPath ? "/run/wrappers/bin/sendmail"
 , withInsults ? false
 , withSssd ? false
@@ -6,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sudo";
-  version = "1.9.5p2";
+  version = "1.9.6p1";
 
   src = fetchurl {
     url = "https://www.sudo.ws/dist/${pname}-${version}.tar.gz";
-    sha256 = "0y093z4f3822rc88g9asdch12nljdamp817vjxk04mca7ks2x7jk";
+    sha256 = "sha256-qenNwFj6/rnNPr+4ZMgXVeUk2YqgIhUnY/JbzoyjypA=";
   };
 
   prePatch = ''
@@ -36,17 +43,17 @@ stdenv.mkDerivation rec {
   ];
 
   configureFlagsArray = [
-    "--with-passprompt=[sudo] password for %p: "  # intentional trailing space
+    "--with-passprompt=[sudo] password for %p: " # intentional trailing space
   ];
 
   postConfigure =
     ''
-    cat >> pathnames.h <<'EOF'
-      #undef _PATH_MV
-      #define _PATH_MV "${coreutils}/bin/mv"
-    EOF
-    makeFlags="install_uid=$(id -u) install_gid=$(id -g)"
-    installFlags="sudoers_uid=$(id -u) sudoers_gid=$(id -g) sysconfdir=$out/etc rundir=$TMPDIR/dummy vardir=$TMPDIR/dummy DESTDIR=/"
+      cat >> pathnames.h <<'EOF'
+        #undef _PATH_MV
+        #define _PATH_MV "${coreutils}/bin/mv"
+      EOF
+      makeFlags="install_uid=$(id -u) install_gid=$(id -g)"
+      installFlags="sudoers_uid=$(id -u) sudoers_gid=$(id -g) sysconfdir=$out/etc rundir=$TMPDIR/dummy vardir=$TMPDIR/dummy DESTDIR=/"
     '';
 
   nativeBuildInputs = [ groff ];
@@ -56,10 +63,9 @@ stdenv.mkDerivation rec {
 
   doCheck = false; # needs root
 
-  postInstall =
-    ''
-    rm -f $out/share/doc/sudo/ChangeLog
-    '';
+  postInstall = ''
+    rm $out/share/doc/sudo/ChangeLog
+  '';
 
   passthru.tests = { inherit (nixosTests) sudo; };
 
@@ -68,10 +74,10 @@ stdenv.mkDerivation rec {
 
     longDescription =
       ''
-      Sudo (su "do") allows a system administrator to delegate
-      authority to give certain users (or groups of users) the ability
-      to run some (or all) commands as root or another user while
-      providing an audit trail of the commands and their arguments.
+        Sudo (su "do") allows a system administrator to delegate
+        authority to give certain users (or groups of users) the ability
+        to run some (or all) commands as root or another user while
+        providing an audit trail of the commands and their arguments.
       '';
 
     homepage = "https://www.sudo.ws/";
diff --git a/nixpkgs/pkgs/tools/security/swtpm/default.nix b/nixpkgs/pkgs/tools/security/swtpm/default.nix
new file mode 100644
index 000000000000..2bd0326d4d92
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/swtpm/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, libtasn1, openssl, fuse, glib, libseccomp
+, libtpms
+, unixtools, expect, socat
+, gnutls
+, perl
+, python3, python3Packages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "swtpm";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "stefanberger";
+    repo = "swtpm";
+    rev = "v${version}";
+    sha256 = "sha256-KY5V4z/8I15ePjorgZueNahlD/xvFa3tDarA0tuRxFk=";
+  };
+
+  pythonPath = with python3Packages; requiredPythonModules [
+    setuptools
+    cryptography
+  ];
+
+  patches = [
+    # upstream looks for /usr directory in $prefix to check
+    # whether or not to proceed with installation of python
+    # tools (swtpm_setup utility).
+    ./python-installation.patch
+  ];
+
+  prePatch = ''
+    patchShebangs src/swtpm_setup/setup.py
+    patchShebangs samples/setup.py
+  '';
+
+  nativeBuildInputs = [
+    pkg-config unixtools.netstat expect socat
+    perl # for pod2man
+    autoreconfHook
+    python3
+  ];
+  buildInputs = [
+    libtpms
+    openssl libtasn1 libseccomp
+    fuse glib
+    gnutls
+    python3.pkgs.wrapPython
+  ];
+  propagatedBuildInputs = pythonPath;
+
+  configureFlags = [
+    "--with-cuse"
+  ];
+
+  postInstall = ''
+    wrapPythonProgramsIn $out/bin "$out $pythonPath"
+    wrapPythonProgramsIn $out/share/swtpm "$out $pythonPath"
+  '';
+
+  enableParallelBuilding = true;
+
+  outputs = [ "out" "man" ];
+
+  meta = with lib; {
+    description = "Libtpms-based TPM emulator";
+    homepage = "https://github.com/stefanberger/swtpm";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.baloo ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/swtpm/python-installation.patch b/nixpkgs/pkgs/tools/security/swtpm/python-installation.patch
new file mode 100644
index 000000000000..d2689f051c5b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/swtpm/python-installation.patch
@@ -0,0 +1,60 @@
+commit 353794feb596d95e3f8893e39b174c5a89d1013e
+Author: Arthur Gautier <baloo@superbaloo.net>
+Date:   Wed Feb 17 02:27:40 2021 +0000
+
+    python-install
+    
+    Signed-off-by: Arthur Gautier <baloo@superbaloo.net>
+
+diff --git a/samples/Makefile.am b/samples/Makefile.am
+index 7d69bf8..1803bb9 100644
+--- a/samples/Makefile.am
++++ b/samples/Makefile.am
+@@ -39,19 +39,9 @@ python-uninstall:
+ 	$(PIP3) uninstall -y $(PY_PACKAGE_NAME)
+ 
+ if PYTHON_INSTALLATION
+-install-exec-local: $(PY_PACKAGE)
+-	@if ! test $(findstring /usr, "$(DESTDIR)$(bindir)"); then \
+-		echo "Warning: Not installing python package to $(DESTDIR)$(bindir)"; \
+-	else \
+-		$(MAKE) python-install; \
+-	fi
++install-exec-local: python-install
+ 
+-uninstall-local:
+-	@if ! test $(findstring /usr, "$(DESTDIR)$(bindir)"); then \
+-		echo "Cleanup for distcheck build not implemented" ; \
+-	else \
+-		$(MAKE) python-uninstall; \
+-	fi
++uninstall-local: python-uninstall
+ endif
+ 
+ 
+diff --git a/src/swtpm_setup/Makefile.am b/src/swtpm_setup/Makefile.am
+index 529eefe..533b1b3 100644
+--- a/src/swtpm_setup/Makefile.am
++++ b/src/swtpm_setup/Makefile.am
+@@ -29,19 +29,9 @@ python-uninstall:
+ 	$(PIP3) uninstall -y $(PY_PACKAGE_NAME)
+ 
+ if PYTHON_INSTALLATION
+-install-exec-local: $(PY_PACKAGE)
+-	@if ! test $(findstring /usr, "$(DESTDIR)$(bindir)"); then \
+-		echo "Warning: Not installing python package to $(DESTDIR)$(bindir)"; \
+-	else \
+-		$(MAKE) python-install; \
+-	fi
++install-exec-local: python-install
+ 
+-uninstall-local:
+-	@if ! test $(findstring /usr, "$(DESTDIR)$(bindir)"); then \
+-		echo "Cleanup for distcheck build not implemented" ; \
+-	else \
+-		$(MAKE) python-uninstall; \
+-	fi
++uninstall-local: python-uninstall
+ endif
+ 
+ # for out-of-tree builds we need to clean up
diff --git a/nixpkgs/pkgs/tools/security/teler/default.nix b/nixpkgs/pkgs/tools/security/teler/default.nix
index 4a971243ad1b..a4bcc87eedf9 100644
--- a/nixpkgs/pkgs/tools/security/teler/default.nix
+++ b/nixpkgs/pkgs/tools/security/teler/default.nix
@@ -1,20 +1,24 @@
-{ buildGoModule
+{ lib
+, buildGoModule
 , fetchFromGitHub
-, lib
 }:
 
 buildGoModule rec {
   pname = "teler";
-  version = "1.0.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "kitabisa";
     repo = "teler";
     rev = "v${version}";
-    sha256 = "07pfqgms5cj4y6zm984qjmmw1c8j9yjbgrp2spi9vzk96s3k3qn3";
+    sha256 = "sha256-i4106PtoCJt5CY9ahczZYe9GufBkaZS+9Peh0IY9r1M=";
   };
 
-  vendorSha256 = "06szi2jw3nayd7pljjlww2gsllgnfg8scnjmc6qv5xl6gf797kdz";
+  vendorSha256 = "sha256-TQjwPem+RMuoF5T02CL/CTvBS6W7Q786gTvYUFIvxjE=";
+
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X ktbs.dev/teler/common.Version=${version}")
+  '';
 
   # test require internet access
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/security/terrascan/default.nix b/nixpkgs/pkgs/tools/security/terrascan/default.nix
index b37273aeb1d2..0d7c3d2863cf 100644
--- a/nixpkgs/pkgs/tools/security/terrascan/default.nix
+++ b/nixpkgs/pkgs/tools/security/terrascan/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "terrascan";
-  version = "1.3.2";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "accurics";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-RZFh9RVU8RwtLGIP7OWnf0yNsXfElqWSXieljqp8ahU=";
+    sha256 = "sha256-YUrvdleH332fWDgq8AwUdXkFC7m9ap+OVuQhKlxZfII=";
   };
 
-  vendorSha256 = "sha256-Ya/33ocPhY5OSnCEyULsOIHaxwb1yNEle3JEYo/7/Yk=";
+  vendorSha256 = "sha256-CzJ83MsBetrzbBT+fmz8F8MjdrManJAd4xpykh/2938=";
 
   # tests want to download a vulnerable Terraform project
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/security/thc-hydra/default.nix b/nixpkgs/pkgs/tools/security/thc-hydra/default.nix
index 88ea30088f5e..f60d5374648f 100644
--- a/nixpkgs/pkgs/tools/security/thc-hydra/default.nix
+++ b/nixpkgs/pkgs/tools/security/thc-hydra/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "thc-hydra";
-  version = "9.1";
+  version = "9.2";
 
   src = fetchFromGitHub {
     owner = "vanhauser-thc";
     repo = "thc-hydra";
     rev = "v${version}";
-    sha256 = "1533h9z5jdlazwy0z7ll2753i507wq55by7rm9lh6y59889p0hps";
+    sha256 = "sha256-V9rr5fbJWm0pa+Kp8g95XvLPo/uWcDwyU2goImnIq58=";
   };
 
   postPatch = let
diff --git a/nixpkgs/pkgs/tools/security/theharvester/default.nix b/nixpkgs/pkgs/tools/security/theharvester/default.nix
index 7a03649859e4..02e83296c69f 100644
--- a/nixpkgs/pkgs/tools/security/theharvester/default.nix
+++ b/nixpkgs/pkgs/tools/security/theharvester/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "theHarvester";
-  version = "3.2.2";
+  version = "3.2.3";
 
   src = fetchFromGitHub {
     owner = "laramies";
     repo = pname;
-    rev = "V${version}";
-    sha256 = "0lxzxfa9wbzim50d2jmd27i57szd0grm1dfayhnym86jn01qpvn3";
+    rev = version;
+    sha256 = "02jhk34znpvq522pqr3x4c0rljw37x62znwycijf1zx81dpbn4rm";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/nixpkgs/pkgs/tools/security/tor/default.nix b/nixpkgs/pkgs/tools/security/tor/default.nix
index 8766e957aaf3..0291d7bb3aa9 100644
--- a/nixpkgs/pkgs/tools/security/tor/default.nix
+++ b/nixpkgs/pkgs/tools/security/tor/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, libevent, openssl, zlib, torsocks
-, libseccomp, systemd, libcap, lzma, zstd, scrypt, nixosTests
+, libseccomp, systemd, libcap, xz, zstd, scrypt, nixosTests
 , writeShellScript
 
 # for update.nix
@@ -30,17 +30,17 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.4.7";
+  version = "0.4.5.6";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "1vh5kdx7s74il8a6gr7jydbpv0an01nla4y2r8w7h33z2wk2jv9j";
+    sha256 = "0cz78pjw2bc3kl3ziip1nhhbq89crv315rf1my3zmmgd9xws7jr2";
   };
 
   outputs = [ "out" "geoip" ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libevent openssl zlib lzma zstd scrypt ] ++
+  buildInputs = [ libevent openssl zlib xz zstd scrypt ] ++
     lib.optionals stdenv.isLinux [ libseccomp systemd libcap ];
 
   patches = [ ./disable-monotonic-timer-tests.patch ];
diff --git a/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix b/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix
index 6b33d1d4d598..73368f40476d 100644
--- a/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix
+++ b/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchurl, lib
-, pandoc, pkg-config, makeWrapper, curl, openssl, tpm2-tss
+, pandoc, pkg-config, makeWrapper, curl, openssl, tpm2-tss, libuuid
 , abrmdSupport ? true, tpm2-abrmd ? null }:
 
 stdenv.mkDerivation rec {
   pname = "tpm2-tools";
-  version = "4.1.3";
+  version = "5.0";
 
   src = fetchurl {
     url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0117r0zzdnblkibv81y71v3limixsw5m7g9xwf7lcx8fc8836pdv";
+    sha256 = "sha256-4bkH/imHdigFLgithO68bD92RtKVBe1IYulhYqjJG6E=";
   };
 
   nativeBuildInputs = [ pandoc pkg-config makeWrapper ];
   buildInputs = [
-    curl openssl tpm2-tss
+    curl openssl tpm2-tss libuuid
   ];
 
   preFixup = let
diff --git a/nixpkgs/pkgs/tools/security/uddup/default.nix b/nixpkgs/pkgs/tools/security/uddup/default.nix
new file mode 100644
index 000000000000..60c3609738d9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/uddup/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonApplication
+, colorama
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonApplication rec {
+  pname = "uddup";
+  version = "0.9.3";
+
+  src = fetchFromGitHub {
+    owner = "rotemreiss";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1f5dm3772hiik9irnyvbs7wygcafbwi7czw3b47cwhb90b8fi5hg";
+  };
+
+  propagatedBuildInputs = [
+    colorama
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "uddup" ];
+
+  meta = with lib; {
+    description = "Tool for de-duplication URLs";
+    homepage = "https://github.com/rotemreiss/uddup";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/vault/default.nix b/nixpkgs/pkgs/tools/security/vault/default.nix
index 512617685501..f8e831ef2c3b 100644
--- a/nixpkgs/pkgs/tools/security/vault/default.nix
+++ b/nixpkgs/pkgs/tools/security/vault/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "vault";
-  version = "1.6.2";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "1g6fz6dl90cb5pnvvmkndqgncfjy50j9jw3xzn8s91yzvvld8ds7";
+    sha256 = "1lsz8fyjcxamvs9n3m974q2jxhv828fb5p6qx8wlqdaahqgrc8qg";
   };
 
   goPackagePath = "github.com/hashicorp/vault";
@@ -32,6 +32,6 @@ buildGoPackage rec {
     changelog = "https://github.com/hashicorp/vault/blob/v${version}/CHANGELOG.md";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.mpl20;
-    maintainers = with maintainers; [ rushmorem lnl7 offline pradeepchhetri ];
+    maintainers = with maintainers; [ rushmorem lnl7 offline pradeepchhetri Chili-Man ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/vault/vault-bin.nix b/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
index b30f8d1af13d..fc8b2865f253 100644
--- a/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
+++ b/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
@@ -1,26 +1,26 @@
 { lib, stdenv, fetchurl, unzip }:
 
 let
-  version = "1.6.2";
+  version = "1.7.0";
 
   sources = let
     base = "https://releases.hashicorp.com/vault/${version}";
   in {
     x86_64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_amd64.zip";
-      sha256 = "1vcxnky8qnn2ib33r9604cbjrgm939ddrhwqcjylbv217cmc9alf";
+      sha256 = "0d8wqxqilv1jdf4dl7w2jp3lfh0w0rawidmhjlj3ykpg6l3gblma";
     };
     i686-linux = fetchurl {
       url = "${base}/vault_${version}_linux_386.zip";
-      sha256 = "0mcav36dcmvky8v4y65jvh837i72aqz7arv2ivjpajym3gf7qrq1";
+      sha256 = "128r0phm5i1cpayz0ia8qsmnk1ia3qylidy9f8iwk3l8r834s4yd";
     };
     x86_64-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_amd64.zip";
-      sha256 = "1is7s445jc4ll2lyfxgjwwl89fly1l8kskqp2p8z179d8hhgd0ms";
+      sha256 = "01vxjv95his8jqin2cwcw691wdwn6p876rp021bmvr6diw6clkrp";
     };
     aarch64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_arm64.zip";
-      sha256 = "0i5d87a393464r68rjv83bjhg51yaysccqbwaaydmzk1m45icg7x";
+      sha256 = "0ahdv14fz7ybl11b61z7j13nbjd6hp6fcpc5bk6y8lh4qj8x0pzg";
     };
   };
 
@@ -35,9 +35,13 @@ in stdenv.mkDerivation {
   sourceRoot = ".";
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin $out/share/bash-completion/completions
     mv vault $out/bin
     echo "complete -C $out/bin/vault vault" > $out/share/bash-completion/completions/vault
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/wafw00f/default.nix b/nixpkgs/pkgs/tools/security/wafw00f/default.nix
new file mode 100644
index 000000000000..dae4f5a5ad0c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/wafw00f/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, pluginbase
+, requests
+}:
+
+buildPythonApplication rec {
+  pname = "wafw00f";
+  version = "2.1.0";
+
+  src = fetchFromGitHub {
+    owner = "EnableSecurity";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0526kz6ypww9nxc2vddkhpn1gqvn25mzj3wmi91wwxwxjjb6w4qj";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    pluginbase
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "wafw00f" ];
+
+  meta = with lib; {
+    description = "Tool to identify and fingerprint Web Application Firewalls (WAF)";
+    homepage = "https://github.com/EnableSecurity/wafw00f";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/wapiti/default.nix b/nixpkgs/pkgs/tools/security/wapiti/default.nix
new file mode 100644
index 000000000000..945f78dc5599
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/wapiti/default.nix
@@ -0,0 +1,106 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "wapiti";
+  version = "3.0.4";
+
+  src = fetchFromGitHub {
+    owner = "wapiti-scanner";
+    repo = pname;
+    rev = version;
+    sha256 = "0wnz4nq1q5y74ksb1kcss9vdih0kbrmnkfbyc2ngd9id1ixfamxb";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    pytest-runner
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    beautifulsoup4
+    browser-cookie3
+    Mako
+    markupsafe
+    pysocks
+    requests
+    six
+    tld
+    yaswfp
+  ] ++ lib.optionals (python3.pythonOlder "3.8") [ importlib-metadata ];
+
+  checkInputs = with python3.pkgs; [
+    responses
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Is already fixed in the repo. Will be part of the next release
+    substituteInPlace setup.py \
+      --replace "importlib_metadata==2.0.0" "importlib_metadata"
+  '';
+
+  disabledTests = [
+    # Tests requires network access
+    "test_attr"
+    "test_bad_separator_used"
+    "test_blind"
+    "test_chunked_timeout"
+    "test_cookies_detection"
+    "test_csrf_cases"
+    "test_detection"
+    "test_direct"
+    "test_escape_with_style"
+    "test_explorer_filtering"
+    "test_false"
+    "test_frame"
+    "test_headers_detection"
+    "test_html_detection"
+    "test_implies_detection"
+    "test_inclusion_detection"
+    "test_meta_detection"
+    "test_no_crash"
+    "test_options"
+    "test_out_of_band"
+    "test_partial_tag_name_escape"
+    "test_prefix_and_suffix_detection"
+    "test_qs_limit"
+    "test_rare_tag_and_event"
+    "test_redirect_detection"
+    "test_request_object"
+    "test_script"
+    "test_ssrf"
+    "test_tag_name_escape"
+    "test_timeout"
+    "test_title_false_positive"
+    "test_title_positive"
+    "test_true_positive_request_count"
+    "test_url_detection"
+    "test_warning"
+    "test_whole"
+    "test_xss_inside_tag_input"
+    "test_xss_inside_tag_link"
+    "test_xss_uppercase_no_script"
+    "test_xss_with_strong_csp"
+    "test_xss_with_weak_csp"
+    "test_xxe"
+  ];
+
+  pythonImportsCheck = [ "wapitiCore" ];
+
+  meta = with lib; {
+    description = "Web application vulnerability scanner";
+    longDescription = ''
+      Wapiti allows you to audit the security of your websites or web applications.
+      It performs "black-box" scans (it does not study the source code) of the web
+      application by crawling the webpages of the deployed webapp, looking for
+      scripts and forms where it can inject data. Once it gets the list of URLs,
+      forms and their inputs, Wapiti acts like a fuzzer, injecting payloads to see
+      if a script is vulnerable.
+    '';
+    homepage = "https://wapiti-scanner.github.io/";
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/wipe/default.nix b/nixpkgs/pkgs/tools/security/wipe/default.nix
index 2c3c9376f67b..5b0f079e5a60 100644
--- a/nixpkgs/pkgs/tools/security/wipe/default.nix
+++ b/nixpkgs/pkgs/tools/security/wipe/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     description = "Secure file wiping utility";
     homepage    = "http://wipe.sourceforge.net/";
     license     = licenses.gpl2;
-    platforms   = platforms.linux;
+    platforms   = platforms.all;
     maintainers = [ maintainers.abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/xcat/default.nix b/nixpkgs/pkgs/tools/security/xcat/default.nix
new file mode 100644
index 000000000000..516585f89126
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/xcat/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "xcat";
+  version = "1.2.0";
+  disabled = python3.pythonOlder "3.7";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "orf";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "01r5998gdvqjdrahpk0ci27lx9yghbddlanqcspr3qp5y5930i0s";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    aiodns
+    aiohttp
+    appdirs
+    cchardet
+    click
+    colorama
+    prompt_toolkit
+    xpath-expressions
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "xcat" ];
+
+  meta = with lib; {
+    description = "XPath injection tool";
+    longDescription = ''
+      xcat is an advanced tool for exploiting XPath injection vulnerabilities,
+      featuring a comprehensive set of features to read the entire file being
+      queried as well as other files on the filesystem, environment variables
+      and directories.
+    '';
+    homepage = "https://github.com/orf/xcat";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/yara/default.nix b/nixpkgs/pkgs/tools/security/yara/default.nix
index f11e772390d9..844004c3b9e5 100644
--- a/nixpkgs/pkgs/tools/security/yara/default.nix
+++ b/nixpkgs/pkgs/tools/security/yara/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv
+, fetchpatch
 , fetchFromGitHub
 , autoreconfHook
 , pcre
@@ -10,14 +11,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "4.0.1";
+  version = "4.0.5";
   pname = "yara";
 
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = "yara";
     rev = "v${version}";
-    sha256 = "0dy8jf0pdn0wilxy1pj6pqjxg7icxkwax09w54np87gl9p00f5rk";
+    sha256 = "1gkdll2ygdlqy1f27a5b84gw2bq75ss7acsx06yhiss90qwdaalq";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -30,6 +31,19 @@ stdenv.mkDerivation rec {
 
   preConfigure = "./bootstrap.sh";
 
+  # If static builds are disabled, `make all-am` will fail to find libyara.a and
+  # cause a build failure. It appears that somewhere between yara 4.0.1 and
+  # 4.0.5, linking the yara binaries dynamically against libyara.so was broken.
+  #
+  # This was already fixed in yara master. Backport the patch to yara 4.0.5.
+  patches = [
+    (fetchpatch {
+      name = "fix-build-with-no-static.patch";
+      url = "https://github.com/VirusTotal/yara/commit/52e6866023b9aca26571c78fb8759bc3a51ba6dc.diff";
+      sha256 = "074cf99j0rqiyacp60j1hkvjqxia7qwd11xjqgcr8jmfwihb38nr";
+    })
+  ];
+
   configureFlags = [
     (lib.withFeature withCrypto "crypto")
     (lib.enableFeature enableMagic "magic")
diff --git a/nixpkgs/pkgs/tools/security/zdns/default.nix b/nixpkgs/pkgs/tools/security/zdns/default.nix
new file mode 100644
index 000000000000..913735d4cb9f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/zdns/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "zdns";
+  version = "20210327-${lib.strings.substring 0 7 rev}";
+  rev = "8c53210f0b9a4fe16c70a5d854e9413c3d0c1ba2";
+
+  src = fetchFromGitHub {
+    owner = "zmap";
+    repo = pname;
+    inherit rev;
+    sha256 = "0pdfz1489ynpw72flalnlkwybp683v826icjx7ljys45xvagdvck";
+  };
+
+  vendorSha256 = "0b8h5n01xmhar1a09svb35ah48k9zdy1mn5balq0h2l0jxr05z78";
+
+  subPackages = [ "zdns" ];
+
+  meta = with lib; {
+    description = "CLI DNS lookup tool";
+    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
new file mode 100644
index 000000000000..b8863a6a94e4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/zgrab2/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "zgrab2";
+  version = "20210327-${lib.strings.substring 0 7 rev}";
+  rev = "17a5257565c758e2b817511d15476d330be0a17a";
+
+  src = fetchFromGitHub {
+    owner = "zmap";
+    repo = pname;
+    inherit rev;
+    sha256 = "1hxk2jggj8lww97lwmks46i001p5ycnxnck8yya6d0fd3ayxvw2w";
+  };
+
+  vendorSha256 = "1s0azy5b5hi5h24vs6a9f1n70l980vkid28ihqh10zq6ajmds2z3";
+
+  subPackages = [ "cmd/zgrab2" ];
+
+  meta = with lib; {
+    description = "Web application scanner";
+    homepage = "https://github.com/zmap/zgrab2";
+    license = with licenses; [ asl20 isc ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/zsteg/Gemfile b/nixpkgs/pkgs/tools/security/zsteg/Gemfile
new file mode 100644
index 000000000000..814e5fe8ad4e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/zsteg/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'zsteg'
diff --git a/nixpkgs/pkgs/tools/security/zsteg/Gemfile.lock b/nixpkgs/pkgs/tools/security/zsteg/Gemfile.lock
new file mode 100644
index 000000000000..b611fb93f5a9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/zsteg/Gemfile.lock
@@ -0,0 +1,19 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    iostruct (0.0.4)
+    rainbow (3.0.0)
+    zpng (0.3.1)
+      rainbow
+    zsteg (0.2.2)
+      iostruct
+      zpng (>= 0.3.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  zsteg
+
+BUNDLED WITH
+   2.1.4
diff --git a/nixpkgs/pkgs/tools/security/zsteg/default.nix b/nixpkgs/pkgs/tools/security/zsteg/default.nix
new file mode 100644
index 000000000000..e47f285de70a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/zsteg/default.nix
@@ -0,0 +1,16 @@
+{ lib, bundlerApp }:
+
+bundlerApp {
+  pname = "zsteg";
+
+  gemdir = ./.;
+
+  exes = [ "zsteg" ];
+
+  meta = with lib; {
+    description = "Detect stegano-hidden data in PNG & BMP.";
+    homepage = "http://zed.0xff.me/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ applePrincess ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/zsteg/gemset.nix b/nixpkgs/pkgs/tools/security/zsteg/gemset.nix
new file mode 100644
index 000000000000..4f5bd79ce44c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/zsteg/gemset.nix
@@ -0,0 +1,44 @@
+{
+  iostruct = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kwp6ryis32j3z7myw8g7v1yszwrwyl04g2c7flr42pwxga1afxc";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  rainbow = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  zpng = {
+    dependencies = ["rainbow"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ciyab7qxqsxjhfvr6rbpdzg655fi1zygqg9sd9m6wmgc037dj74";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  zsteg = {
+    dependencies = ["iostruct" "zpng"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mwajlsgs27449n2yf2f9hz8g46qv9bz9f58i9cz1jg58spvpxpk";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/auto-cpufreq/default.nix b/nixpkgs/pkgs/tools/system/auto-cpufreq/default.nix
index b4bef5fc5e39..f86ac47fdde6 100644
--- a/nixpkgs/pkgs/tools/system/auto-cpufreq/default.nix
+++ b/nixpkgs/pkgs/tools/system/auto-cpufreq/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "auto-cpufreq";
-  version = "1.5.3";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "AdnanHodzic";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NDIdQ4gUN2jG+VWXsv3fdUogZxOOiNtnbekD30+jx6M=";
+    sha256 = "sha256-oz3C1150CPfT0kkx1x7VIX/Rm06dkjyxeDPFCRJaWNc=";
   };
 
   propagatedBuildInputs = with python3Packages; [ click distro psutil ];
diff --git a/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch b/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch
index 232ac780341a..7f86f6eda0e2 100644
--- a/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch
+++ b/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch
@@ -1,8 +1,17 @@
 diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py
-index 482a544..d142013 100644
+index a685db8..1ca1ca1 100644
 --- a/auto_cpufreq/core.py
 +++ b/auto_cpufreq/core.py
-@@ -163,31 +163,13 @@ def get_current_gov():
+@@ -72,7 +72,7 @@ def app_version():
+             print("Git commit:", check_output(["git", "describe", "--always"]).strip().decode())
+         else:
+             print(getoutput("pacman -Qi auto-cpufreq | grep Version"))
+-    else:        
++    else:
+         # source code (auto-cpufreq-installer)
+         try:
+             print("Git commit:", check_output(["git", "describe", "--always"]).strip().decode())
+@@ -179,31 +179,13 @@ def get_current_gov():
      return print("Currently using:", getoutput("cpufreqctl.auto-cpufreq --governor").strip().split(" ")[0], "governor")
  
  def cpufreqctl():
@@ -38,8 +47,8 @@ index 482a544..d142013 100644
  
  def footer(l=79):
      print("\n" + "-" * l + "\n")
-@@ -212,74 +194,12 @@ def remove_complete_msg():
- 
+@@ -233,74 +215,12 @@ def remove_complete_msg():
+     footer()
  
  def deploy_daemon():
 -    print("\n" + "-" * 21 + " Deploying auto-cpufreq as a daemon " + "-" * 22 + "\n")
@@ -60,7 +69,7 @@ index 482a544..d142013 100644
 -    except:
 -        print("\nERROR:\nWas unable to turn off bluetooth on boot")
 -
--    auto_cpufreq_log_path.touch(exist_ok=True)
+-    auto_cpufreq_stats_path.touch(exist_ok=True)
 -
 -    print("\n* Deploy auto-cpufreq install script")
 -    shutil.copy(SCRIPTS_DIR / "auto-cpufreq-install.sh", "/usr/bin/auto-cpufreq-install")
@@ -102,12 +111,12 @@ index 482a544..d142013 100644
 -    # remove auto-cpufreq-remove
 -    os.remove("/usr/bin/auto-cpufreq-remove")
 -
--    # delete log file
--    if auto_cpufreq_log_path.exists():
--        if auto_cpufreq_log_file is not None:
--            auto_cpufreq_log_file.close()
+-    # delete stats file
+-    if auto_cpufreq_stats_path.exists():
+-        if auto_cpufreq_stats_file is not None:
+-            auto_cpufreq_stats_file.close()
 -
--        auto_cpufreq_log_path.unlink()
+-        auto_cpufreq_stats_path.unlink()
 -
 -    # restore original cpufrectl script
 -    cpufreqctl_restore()
@@ -116,6 +125,15 @@ index 482a544..d142013 100644
  
  def gov_check():
      for gov in get_avail_gov():
+@@ -331,7 +251,7 @@ def countdown(s):
+     if auto_cpufreq_stats_file is not None:
+         auto_cpufreq_stats_file.seek(0)
+         auto_cpufreq_stats_file.truncate(0)
+-                
++
+         # execution timestamp
+         from datetime import datetime
+         now = datetime.now()
 diff --git a/scripts/cpufreqctl.sh b/scripts/cpufreqctl.sh
 index 63a2b5b..e157efe 100755
 --- a/scripts/cpufreqctl.sh
diff --git a/nixpkgs/pkgs/tools/system/bfs/default.nix b/nixpkgs/pkgs/tools/system/bfs/default.nix
index 7ea7430e95d7..8ee30317bef5 100644
--- a/nixpkgs/pkgs/tools/system/bfs/default.nix
+++ b/nixpkgs/pkgs/tools/system/bfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bfs";
-  version = "2.1";
+  version = "2.2";
 
   src = fetchFromGitHub {
     repo = "bfs";
     owner = "tavianator";
     rev = version;
-    sha256 = "1iricyigm0rsc8fr91vk3krvyafbnp0y3ww1rjv94l6jbdl7rrlb";
+    sha256 = "sha256-YxQBKXjYITVy8c6DJ3GwDR0ESgzghqJCcj1GEv8Lp2Q=";
   };
 
   buildInputs = lib.optionals stdenv.isLinux [ libcap acl ];
diff --git a/nixpkgs/pkgs/tools/system/bpytop/default.nix b/nixpkgs/pkgs/tools/system/bpytop/default.nix
index 6754d0806b6b..f10c3f628b86 100644
--- a/nixpkgs/pkgs/tools/system/bpytop/default.nix
+++ b/nixpkgs/pkgs/tools/system/bpytop/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "bpytop";
-  version = "1.0.61";
+  version = "1.0.63";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-E6blMhDkZa3Wbdbsw7f8jdHwHFINOQ48XC5pQdkVPtQ=";
+    sha256 = "sha256-5KTqiPqYBDI1KFQ+2WN7QZFL/YSb+MPPWbKzJTUa8Zw=";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   propagatedBuildInputs = with python3Packages; [ python psutil ];
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/system/clinfo/default.nix b/nixpkgs/pkgs/tools/system/clinfo/default.nix
index dbcbae6eaa9a..9c5b54f554bd 100644
--- a/nixpkgs/pkgs/tools/system/clinfo/default.nix
+++ b/nixpkgs/pkgs/tools/system/clinfo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clinfo";
-  version = "3.0.20.11.20";
+  version = "3.0.21.02.21";
 
   src = fetchFromGitHub {
     owner = "Oblomov";
     repo = "clinfo";
     rev = version;
-    sha256 = "052xfkbmgfpalmhfwn0dj5114x2mzwz29y37qqhhsdpaxsz0y422";
+    sha256 = "sha256-0ijfbfv1F6mnt1uFH/A4yOADJoAFrPMa3yAOFJW53ek=";
   };
 
   buildInputs = [ ocl-icd opencl-headers ];
diff --git a/nixpkgs/pkgs/tools/system/consul-template/default.nix b/nixpkgs/pkgs/tools/system/consul-template/default.nix
index a285c720eaaa..c04b69675808 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.25.1";
+  version = "0.25.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "consul-template";
     rev = "v${version}";
-    sha256 = "1205rhv4mizpb1nbc2sry52n7wljcwb8xp7lpazh1r1cldfayr5b";
+    sha256 = "sha256-r9/CxXFaeod48NgOFWhl+axiNqjaU+RIEHI71fmYzP8=";
   };
 
-  vendorSha256 = "0hv4b6k8k7xkzkjgzcm5y8pqyiwyk790a1qw18gjslkwkyw5hjf2";
+  vendorSha256 = "sha256-DLjaDj3fJYl5ICxJuaCLKdd/AfwfUIM8teJLs3a2MHo=";
 
   # 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/daemon/default.nix b/nixpkgs/pkgs/tools/system/daemon/default.nix
index 58f8da3ce4f7..b7be04bcfcbb 100644
--- a/nixpkgs/pkgs/tools/system/daemon/default.nix
+++ b/nixpkgs/pkgs/tools/system/daemon/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "daemon";
-  version = "0.7";
+  version = "0.8";
 
   src = fetchurl {
     url = "http://libslack.org/daemon/download/daemon-${version}.tar.gz";
-    sha256 = "0b17zzl7bqnkn7a4pr3l6fxqfmxfld7izphrab5nvhc4wzng4spn";
+    sha256 = "sha256-dPEubUs8hWMkib0IQx09mXvBcmS/V7cgI4Ty6AnP9ZY=";
   };
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/tools/system/evemu/default.nix b/nixpkgs/pkgs/tools/system/evemu/default.nix
index 5b3a584bd242..c01a909668ec 100644
--- a/nixpkgs/pkgs/tools/system/evemu/default.nix
+++ b/nixpkgs/pkgs/tools/system/evemu/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, autoreconfHook, pkg-config, pythonPackages
+{ lib, stdenv, fetchgit, autoreconfHook, pkg-config, python3Packages
 , libevdev
 }:
 
@@ -14,9 +14,11 @@ stdenv.mkDerivation rec {
     sha256 = "1m38fxwy2s82vb2qm9aqxinws12akmqqq7q66is931lc3awqkbah";
   };
 
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  nativeBuildInputs = [ pkg-config autoreconfHook python3Packages.python ];
 
-  buildInputs = [ pythonPackages.python pythonPackages.evdev libevdev ];
+  buildInputs = [ python3Packages.evdev libevdev ];
+
+  strictDeps = true;
 
   meta = with lib; {
     description = "Records and replays device descriptions and events to emulate input devices through the kernel's input system";
diff --git a/nixpkgs/pkgs/tools/system/fio/default.nix b/nixpkgs/pkgs/tools/system/fio/default.nix
index a71bef4809c0..fc4ea8d6b331 100644
--- a/nixpkgs/pkgs/tools/system/fio/default.nix
+++ b/nixpkgs/pkgs/tools/system/fio/default.nix
@@ -1,23 +1,25 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper
-, libaio, python, zlib
+, libaio, python3, zlib
 , withGnuplot ? false, gnuplot ? null }:
 
 stdenv.mkDerivation rec {
   pname = "fio";
-  version = "3.25";
+  version = "3.26";
 
   src = fetchFromGitHub {
     owner  = "axboe";
     repo   = "fio";
     rev    = "fio-${version}";
-    sha256 = "1f20ihynwnz8jqqlr73i5glr8ziplz4mmcjgk340mj2yqqcnsqag";
+    sha256 = "sha256-/Si0McndJ6Xp3ifDr+BStv89LmZyAgof95QkHGT8MGQ=";
   };
 
-  buildInputs = [ python zlib ]
+  buildInputs = [ python3 zlib ]
     ++ lib.optional (!stdenv.isDarwin) libaio;
 
   nativeBuildInputs = [ makeWrapper ];
 
+  strictDeps = true;
+
   enableParallelBuilding = true;
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/system/freeipmi/default.nix b/nixpkgs/pkgs/tools/system/freeipmi/default.nix
index 9529ccad399b..f7e041a849d4 100644
--- a/nixpkgs/pkgs/tools/system/freeipmi/default.nix
+++ b/nixpkgs/pkgs/tools/system/freeipmi/default.nix
@@ -1,12 +1,12 @@
 { fetchurl, lib, stdenv, libgcrypt, readline, libgpgerror }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.6";
+  version = "1.6.7";
   pname = "freeipmi";
 
   src = fetchurl {
     url = "mirror://gnu/freeipmi/${pname}-${version}.tar.gz";
-    sha256 = "1ava5s0babfwx6dqi87phzyzjjgyah7avhljrxrjwn2cniwh38yg";
+    sha256 = "1gyyx99q02p3v2nqm3h53mkjd33l0hrapwg4alg6qr9k74qik1dv";
   };
 
   buildInputs = [ libgcrypt readline libgpgerror ];
diff --git a/nixpkgs/pkgs/tools/system/gdu/default.nix b/nixpkgs/pkgs/tools/system/gdu/default.nix
index 0c63bf651bae..839c48c320a4 100644
--- a/nixpkgs/pkgs/tools/system/gdu/default.nix
+++ b/nixpkgs/pkgs/tools/system/gdu/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 , installShellFiles
@@ -6,27 +7,35 @@
 
 buildGoModule rec {
   pname = "gdu";
-  version = "4.3.2";
+  version = "4.9.1";
 
   src = fetchFromGitHub {
     owner = "dundee";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-m4J797bmQzKuyA01JgDLVlf+PbXDVXWtYbID/0QVLxE=";
+    sha256 = "sha256-blvnwsmcHf0yH2C/NUCsVQECIH4SI0BTNiMzCuNd0H0=";
   };
 
-  vendorSha256 = "sha256-kIMd0xzQ+c+jCpX2+qdD/GcFEirR15PMInbEV184EBU=";
-
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/dundee/gdu/build.Version=${version}" ];
+  vendorSha256 = "sha256-QiO5p0x8kmIN6f0uYS0IR2MlWtRYTHeZpW6Nmupjias=";
 
   nativeBuildInputs = [ installShellFiles ];
 
+  buildFlagsArray = [
+    "-ldflags="
+    "-s"
+    "-w"
+    "-X github.com/dundee/gdu/v${lib.versions.major version}/build.Version=${version}"
+  ];
+
+  postPatch = ''
+    substituteInPlace cmd/app/app_test.go --replace "development" "${version}"
+  '';
+
   postInstall = ''
     installManPage gdu.1
   '';
 
-  # tests fail if the version is set
-  doCheck = false;
+  doCheck = !(stdenv.isAarch64 || stdenv.isDarwin);
 
   meta = with lib; {
     description = "Disk usage analyzer with console interface";
diff --git a/nixpkgs/pkgs/tools/system/gptfdisk/default.nix b/nixpkgs/pkgs/tools/system/gptfdisk/default.nix
index b5f7c369dfdb..bf6589eb66b2 100644
--- a/nixpkgs/pkgs/tools/system/gptfdisk/default.nix
+++ b/nixpkgs/pkgs/tools/system/gptfdisk/default.nix
@@ -1,14 +1,14 @@
-{ fetchurl, lib, stdenv, libuuid, popt, icu, ncurses }:
+{ fetchurl, lib, stdenv, libuuid, popt, icu, ncurses, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "gptfdisk";
-  version = "1.0.5";
+  version = "1.0.7";
 
   src = fetchurl {
     # https://www.rodsbooks.com/gdisk/${name}.tar.gz also works, but the home
     # page clearly implies a preference for using SourceForge's bandwidth:
     url = "mirror://sourceforge/gptfdisk/${pname}-${version}.tar.gz";
-    sha256 = "0bybgp30pqxb6x5krxazkq4drca0gz4inxj89fpyr204rn3kjz8f";
+    sha256 = "sha256-dUAEt/hbJ5KHx6w8BGmx1+Dq4EOpei5YewVgyl84KMA=";
   };
 
   postPatch = ''
@@ -37,10 +37,15 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  passthru.tests = lib.optionalAttrs stdenv.hostPlatform.isx86 {
+    installer-simpleLabels = nixosTests.installer.simpleLabels;
+  };
+
   meta = with lib; {
     description = "Set of text-mode partitioning tools for Globally Unique Identifier (GUID) Partition Table (GPT) disks";
     license = licenses.gpl2;
     homepage = "https://www.rodsbooks.com/gdisk/";
     platforms = platforms.all;
+    maintainers = [ maintainers.ehmry ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/gt5/default.nix b/nixpkgs/pkgs/tools/system/gt5/default.nix
index 3e904e6c0ada..374bcf0e3146 100644
--- a/nixpkgs/pkgs/tools/system/gt5/default.nix
+++ b/nixpkgs/pkgs/tools/system/gt5/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "http://gt5.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
-    platforms = with lib.platforms; linux;
+    platforms = with lib.platforms; all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/honcho/default.nix b/nixpkgs/pkgs/tools/system/honcho/default.nix
index b653f2407244..17fa94893336 100644
--- a/nixpkgs/pkgs/tools/system/honcho/default.nix
+++ b/nixpkgs/pkgs/tools/system/honcho/default.nix
@@ -1,15 +1,14 @@
-{ lib, fetchFromGitHub, pythonPackages }:
+{ lib, fetchFromGitHub, python3Packages }:
 
 let
-  inherit (pythonPackages) python;
+  inherit (python3Packages) python;
   pname = "honcho";
 
 in
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   name = "${pname}-${version}";
   version = "1.0.1";
-  namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "nickstenning";
@@ -18,7 +17,7 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "11bd87474qpif20xdcn0ra1idj5k16ka51i658wfpxwc6nzsn92b";
   };
 
-  checkInputs = with pythonPackages; [ jinja2 pytest mock coverage ];
+  checkInputs = with python3Packages; [ jinja2 pytest mock coverage ];
 
   buildPhase = ''
     ${python.interpreter} setup.py build
diff --git a/nixpkgs/pkgs/tools/system/htop/default.nix b/nixpkgs/pkgs/tools/system/htop/default.nix
index 5f3cc2f6fcf2..25a397bc987c 100644
--- a/nixpkgs/pkgs/tools/system/htop/default.nix
+++ b/nixpkgs/pkgs/tools/system/htop/default.nix
@@ -22,7 +22,8 @@ stdenv.mkDerivation rec {
     description = "An interactive process viewer for Linux";
     homepage = "https://htop.dev";
     license = licenses.gpl2Only;
-    platforms = with platforms; linux ++ freebsd ++ openbsd ++ darwin;
+    platforms = platforms.all;
     maintainers = with maintainers; [ rob relrod ];
+    changelog = "https://github.com/htop-dev/${pname}/blob/${version}/ChangeLog";
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/inxi/default.nix b/nixpkgs/pkgs/tools/system/inxi/default.nix
index b941c5f7275b..d529e9cf0255 100644
--- a/nixpkgs/pkgs/tools/system/inxi/default.nix
+++ b/nixpkgs/pkgs/tools/system/inxi/default.nix
@@ -2,7 +2,7 @@
 , ps, dnsutils # dig is recommended for multiple categories
 , withRecommends ? false # Install (almost) all recommended tools (see --recommends)
 , withRecommendedSystemPrograms ? withRecommends, util-linuxMinimal, dmidecode
-, file, hddtemp, iproute, ipmitool, usbutils, kmod, lm_sensors, smartmontools
+, file, hddtemp, iproute2, ipmitool, usbutils, kmod, lm_sensors, smartmontools
 , binutils, tree, upower, pciutils
 , withRecommendedDisplayInformationPrograms ? withRecommends, glxinfo, xorg
 }:
@@ -11,7 +11,7 @@ let
   prefixPath = programs:
     "--prefix PATH ':' '${lib.makeBinPath programs}'";
   recommendedSystemPrograms = lib.optionals withRecommendedSystemPrograms [
-    util-linuxMinimal dmidecode file hddtemp iproute ipmitool usbutils kmod
+    util-linuxMinimal dmidecode file hddtemp iproute2 ipmitool usbutils kmod
     lm_sensors smartmontools binutils tree upower pciutils
   ];
   recommendedDisplayInformationPrograms = lib.optionals
@@ -22,16 +22,17 @@ let
     ++ recommendedDisplayInformationPrograms;
 in stdenv.mkDerivation rec {
   pname = "inxi";
-  version = "3.3.01-1";
+  version = "3.3.03-1";
 
   src = fetchFromGitHub {
     owner = "smxi";
     repo = "inxi";
     rev = version;
-    sha256 = "sha256-wY9wsxBByxqy9qk/7UoKiUSpFGS1rFpdyTs3ig6OJRs=";
+    sha256 = "sha256-OFjhMlBR1QUYUvpuFATCWZWZp2dop30Iz8qVCIK2UN0=";
   };
 
-  buildInputs = [ perl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/tools/system/ipmitool/default.nix b/nixpkgs/pkgs/tools/system/ipmitool/default.nix
index 2f0e2c600d0a..e7d6130ffa60 100644
--- a/nixpkgs/pkgs/tools/system/ipmitool/default.nix
+++ b/nixpkgs/pkgs/tools/system/ipmitool/default.nix
@@ -22,6 +22,11 @@ stdenv.mkDerivation {
       url = "https://github.com/ipmitool/ipmitool/commit/5db314f694f75c575cd7c9ffe9ee57aaf3a88866.patch";
       sha256 = "01niwrgajhrdhl441gzmw6v1r1yc3i8kn98db4b6smfn5fwdp1pa";
     })
+    (fetchpatch {
+      name = "CVE-2020-5208.patch";
+      url = "https://github.com/ipmitool/ipmitool/commit/e824c23316ae50beb7f7488f2055ac65e8b341f2.patch";
+      sha256 = "sha256-X7MnoX2fzByRpRY4p33xetT+V2aehlQ/qU+aeaqtTUY=";
+    })
   ];
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/tools/system/loadwatch/default.nix b/nixpkgs/pkgs/tools/system/loadwatch/default.nix
index d7abc8767749..80f808214bc1 100644
--- a/nixpkgs/pkgs/tools/system/loadwatch/default.nix
+++ b/nixpkgs/pkgs/tools/system/loadwatch/default.nix
@@ -15,6 +15,6 @@ stdenv.mkDerivation {
     description = "Run a program using only idle cycles";
     license = licenses.gpl2;
     maintainers = with maintainers; [ woffs ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/logrotate/default.nix b/nixpkgs/pkgs/tools/system/logrotate/default.nix
index 513b48c66304..b764202a58a6 100644
--- a/nixpkgs/pkgs/tools/system/logrotate/default.nix
+++ b/nixpkgs/pkgs/tools/system/logrotate/default.nix
@@ -1,40 +1,35 @@
 { lib, stdenv, fetchFromGitHub, gzip, popt, autoreconfHook
 , mailutils ? null
+, aclSupport ? true, acl
 }:
 
 stdenv.mkDerivation rec {
   pname = "logrotate";
-  version = "3.17.0";
+  version = "3.18.0";
 
   src = fetchFromGitHub {
     owner = "logrotate";
     repo = "logrotate";
     rev = version;
-    sha256 = "133k4y24p918v4dva6dh70bdfv13jvwl2vlhq0mybrs3ripvnh4h";
+    sha256 = "sha256-OFGXwaTabyuIgeC2ON68m83rzVxomk8QL6xwyrVV654=";
   };
 
   # Logrotate wants to access the 'mail' program; to be done.
-  patchPhase = ''
-    sed -i -e 's,[a-z/]\+gzip,${gzip}/bin/gzip,' \
-           -e 's,[a-z/]\+gunzip,${gzip}/bin/gunzip,' configure.ac
-
-    ${lib.optionalString (mailutils != null) ''
-    sed -i -e 's,[a-z/]\+mail,${mailutils}/bin/mail,' configure.ac
-    ''}
-  '';
-
-  autoreconfPhase = ''
-    ./autogen.sh
-  '';
+  configureFlags = [
+    "--with-compress-command=${gzip}/bin/gzip"
+    "--with-uncompress-command=${gzip}/bin/gunzip"
+  ] ++ lib.optionals (mailutils != null) [
+    "--with-default-mail-command=${mailutils}/bin/mail"
+  ];
 
   nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ popt ];
+  buildInputs = [ popt ] ++ lib.optionals aclSupport [ acl ];
 
-  meta = {
+  meta = with lib; {
     homepage = "https://fedorahosted.org/releases/l/o/logrotate/";
     description = "Rotates and compresses system logs";
-    license = lib.licenses.gpl2Plus;
-    maintainers = [ lib.maintainers.viric ];
-    platforms = lib.platforms.all;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.viric ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/monit/default.nix b/nixpkgs/pkgs/tools/system/monit/default.nix
index 3460020618fd..8a2a3406c3e8 100644
--- a/nixpkgs/pkgs/tools/system/monit/default.nix
+++ b/nixpkgs/pkgs/tools/system/monit/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     homepage = "http://mmonit.com/monit/";
     description = "Monitoring system";
     license = lib.licenses.agpl3;
-    maintainers = with lib.maintainers; [ raskin wmertens ];
+    maintainers = with lib.maintainers; [ raskin wmertens ryantm ];
     platforms = with lib.platforms; linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/nats-top/default.nix b/nixpkgs/pkgs/tools/system/nats-top/default.nix
new file mode 100644
index 000000000000..f2be03d4301c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/nats-top/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "nats-top";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "nats-io";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0b1hpnq8m1xfrn58ammmnx6lmhk319m8z4xjxgckz7wvy2fbzw0n";
+  };
+
+  vendorSha256 = "1a48p9gx5zdc340ma6cqakhi6f3lw9b0kz2597j1jcsk2qb7s581";
+
+  meta = with lib; {
+    description = "top-like tool for monitoring NATS servers";
+    homepage = "https://github.com/nats-io/nats-top";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/natscli/default.nix b/nixpkgs/pkgs/tools/system/natscli/default.nix
new file mode 100644
index 000000000000..dbf85f9b7329
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/natscli/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "natscli";
+  version = "0.0.22";
+
+  src = fetchFromGitHub {
+    owner = "nats-io";
+    repo = pname;
+    rev = version;
+    sha256 = "1qc6lpgl878kc316z10x59px6jyfzdwsj7fdr8k4ayln0lplvbq3";
+  };
+
+  vendorSha256 = "1a9d7hqj43qdh0h7pc5wckqshi8lacf6m2107wymzzz62j1msy26";
+
+  meta = with lib; {
+    description = "NATS Command Line Interface";
+    homepage = "https://github.com/nats-io/natscli";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/netdata/default.nix b/nixpkgs/pkgs/tools/system/netdata/default.nix
index e727734be6d0..bd360a242610 100644
--- a/nixpkgs/pkgs/tools/system/netdata/default.nix
+++ b/nixpkgs/pkgs/tools/system/netdata/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, callPackage, fetchFromGitHub, autoreconfHook, pkg-config
 , CoreFoundation, IOKit, libossp_uuid
-, curl, libcap,  libuuid, lm_sensors, zlib, fetchpatch
+, curl, libcap,  libuuid, lm_sensors, zlib
 , nixosTests
 , withCups ? false, cups
 , withDBengine ? true, libuv, lz4, judy
@@ -15,14 +15,14 @@ with lib;
 let
   go-d-plugin = callPackage ./go.d.plugin.nix {};
 in stdenv.mkDerivation rec {
-  version = "1.29.1";
+  version = "1.29.3";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    sha256 = "sha256-Wmfqxjy0kCy8vsegoe+Jn5Az/XEZxeHZDRMLmOrp+Iw=";
+    sha256 = "sha256-GWIQZEC5agJ+Zw7l58IIAJhXP6dxirCmWVBJulzBO5Q=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -36,6 +36,8 @@ in stdenv.mkDerivation rec {
     ++ optionals withSsl [ openssl.dev ];
 
   patches = [
+    # required to prevent plugins from relying on /etc
+    # and /var
     ./no-files-in-etc-and-var.patch
   ];
 
@@ -77,7 +79,7 @@ in stdenv.mkDerivation rec {
   meta = {
     description = "Real-time performance monitoring tool";
     homepage = "https://www.netdata.cloud/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.lethalman ];
   };
diff --git a/nixpkgs/pkgs/tools/system/nkeys/default.nix b/nixpkgs/pkgs/tools/system/nkeys/default.nix
new file mode 100644
index 000000000000..05d2d853b248
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/nkeys/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "nkeys";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "nats-io";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "06wbmb3cxjrcfvgfbn6rdfzb4pfaaw11bnvl1r4kig4ag22qcz7b";
+  };
+
+  vendorSha256 = "0kiqlw2411x5c1pamq3mn5wcm8mdn91avwg8xh2a7sy3kqw5d26d";
+
+  meta = with lib; {
+    description = "Public-key signature system for NATS";
+    homepage = "https://github.com/nats-io/nkeys";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/nq/default.nix b/nixpkgs/pkgs/tools/system/nq/default.nix
index 551d18618a7e..e92016f85a6f 100644
--- a/nixpkgs/pkgs/tools/system/nq/default.nix
+++ b/nixpkgs/pkgs/tools/system/nq/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "nq";
-  version = "0.3.1";
+  version = "0.4";
   src = fetchFromGitHub {
     owner = "chneukirchen";
     repo = "nq";
     rev = "v${version}";
-    sha256 = "1db96ykz35r273jyhf7cdknqk4p2jj9l8gbz7pjy1hq4pb6ffk99";
+    sha256 = "sha256-UfCeHwOD+tG6X2obW64DYZr6j90yh1Yl7My4ur+sqmk=";
   };
   makeFlags = [ "PREFIX=$(out)" ];
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/system/pciutils/default.nix b/nixpkgs/pkgs/tools/system/pciutils/default.nix
index a89de032abd7..8c017c42d7a3 100644
--- a/nixpkgs/pkgs/tools/system/pciutils/default.nix
+++ b/nixpkgs/pkgs/tools/system/pciutils/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchurl, pkg-config, zlib, kmod, which
+, hwdata
 , static ? stdenv.hostPlatform.isStatic
-, darwin ? null
+, IOKit
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ zlib kmod which ] ++
-    lib.optional stdenv.hostPlatform.isDarwin darwin.apple_sdk.frameworks.IOKit;
+    lib.optional stdenv.hostPlatform.isDarwin IOKit;
 
   preConfigure = if stdenv.cc.isGNU then null else ''
     substituteInPlace Makefile --replace 'CC=$(CROSS_COMPILE)gcc' ""
@@ -30,8 +31,15 @@ stdenv.mkDerivation rec {
 
   installTargets = [ "install" "install-lib" ];
 
-  # Get rid of update-pciids as it won't work.
-  postInstall = "rm $out/sbin/update-pciids $out/man/man8/update-pciids.8";
+  postInstall = ''
+    # Remove update-pciids as it won't work on nixos
+    rm $out/sbin/update-pciids $out/man/man8/update-pciids.8
+
+    # use database from hwdata instead
+    # (we don't create a symbolic link because we do not want to pull in the
+    # full closure of hwdata)
+    cp --reflink=auto ${hwdata}/share/hwdata/pci.ids $out/share/pci.ids
+  '';
 
   meta = with lib; {
     homepage = "http://mj.ucw.cz/pciutils.html";
diff --git a/nixpkgs/pkgs/tools/system/rocm-smi/default.nix b/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
index cd4eef89520b..ac980e6c36cd 100644
--- a/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
+++ b/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
@@ -1,23 +1,45 @@
-{ lib, buildPythonApplication, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, cmake, python3 }:
 
-buildPythonApplication rec {
+stdenv.mkDerivation rec {
   pname = "rocm-smi";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
-    repo = "ROC-smi";
+    repo = "rocm_smi_lib";
     rev = "rocm-${version}";
-    hash = "sha256-0QqaBMkqRVEl89x3hvWQGAgt7LbtMZPhuf7KenQYHaQ=";
+    hash = "sha256-LEaC1XhmyoVWrpL05MhgN02LVT2rLKdnw9g2QdfM/uE=";
   };
 
-  format = "other";
+  nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
 
-  dontConfigure = true;
-  dontBuild = true;
+  postPatch = ''
+    # Upstream ROCm is installed in an /opt directory. For this reason,
+    # it does not completely follow FHS layout, creating top-level
+    # rocm_smi, oam, and bindings top-level directories. Since rocm-smi
+    # is a package that is typically installed, we change the paths to
+    # follow FHS more closely.
 
-  installPhase = ''
-    install -Dm0755 rocm_smi.py $out/bin/rocm-smi
+    # rocm_smi libraries and headers go into lib and include. Bindings
+    # go into lib/rocm_smi/bindings.
+    substituteInPlace rocm_smi/CMakeLists.txt \
+      --replace "DESTINATION rocm_smi/" "DESTINATION " \
+      --replace "DESTINATION bindings" "DESTINATION lib/rocm_smi/bindings" \
+      --replace "../rocm_smi/bindings/rsmiBindings.py" "../lib/rocm_smi/bindings/rsmiBindings.py" \
+      --replace 'DESTINATION ''${ROCM_SMI}/' "DESTINATION "
+
+    # oam libraries and headers go into lib and include.
+    substituteInPlace oam/CMakeLists.txt \
+      --replace "DESTINATION oam/" "DESTINATION " \
+      --replace 'DESTINATION ''${OAM_NAME}/' "DESTINATION "
+
+    # Update relative path to librocm_smi64 in the Python binding.
+    substituteInPlace python_smi_tools/rsmiBindings.py \
+      --replace "/../lib/librocm_smi64.so" "/../../librocm_smi64.so"
+  '';
+
+  postInstall = ''
+    wrapPythonProgramsIn $out/bin
   '';
 
   meta = with lib; {
@@ -25,6 +47,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/RadeonOpenCompute/ROC-smi";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ danieldk ];
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/rofi-systemd/default.nix b/nixpkgs/pkgs/tools/system/rofi-systemd/default.nix
index 4a2e14edc91f..f64a84c55095 100644
--- a/nixpkgs/pkgs/tools/system/rofi-systemd/default.nix
+++ b/nixpkgs/pkgs/tools/system/rofi-systemd/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "0lgffb6rk1kf91j4j303lzpx8w2g9zy2gk99p8g8pk62a30c5asm";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/tools/system/s6/default.nix b/nixpkgs/pkgs/tools/system/s6/default.nix
index 75aadbeda8d1..16fd1be63394 100644
--- a/nixpkgs/pkgs/tools/system/s6/default.nix
+++ b/nixpkgs/pkgs/tools/system/s6/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6";
-  version = "2.10.0.0";
-  sha256 = "0xzqrd0m3wjklmw1w3gjw5dcdxnhgvxv2r5wd6m2ismw2jprr9k0";
+  version = "2.10.0.2";
+  sha256 = "08bcrp7ck1l3wmjyzxi3vgk6j0n2jfymxs4rjjw4if40f3lgqfmj";
 
   description = "skarnet.org's small & secure supervision software suite";
 
diff --git a/nixpkgs/pkgs/tools/system/safe-rm/default.nix b/nixpkgs/pkgs/tools/system/safe-rm/default.nix
index c76a48ff8d59..c81eea889023 100644
--- a/nixpkgs/pkgs/tools/system/safe-rm/default.nix
+++ b/nixpkgs/pkgs/tools/system/safe-rm/default.nix
@@ -10,7 +10,10 @@ stdenv.mkDerivation rec {
     sha256 = "0zkmwxyl1870ar6jr9h537vmqgkckqs9jd1yv6m4qqzdsmg5gdbq";
   };
 
-  propagatedBuildInputs = [ perl coreutils ];
+  # pod2man
+  nativeBuildInputs = [ perl ];
+
+  propagatedBuildInputs = [ coreutils perl ];
 
   postFixup = ''
     sed -e 's@/bin/rm@${coreutils}/bin/rm@' -i $out/bin/safe-rm
diff --git a/nixpkgs/pkgs/tools/system/sleuthkit/default.nix b/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
index cf88dc846fb1..be4eaf5f0791 100644
--- a/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
+++ b/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, libewf, afflib, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "4.10.1";
+  version = "4.10.2";
   pname = "sleuthkit";
 
   src = fetchFromGitHub {
     owner = "sleuthkit";
     repo = "sleuthkit";
     rev = "${pname}-${version}";
-    sha256 = "142kkpkpawpqyc88pr6xdvlagw6djaah1schyjxq9qdq9cnqx0dw";
+    sha256 = "sha256-N0/spV/Bxk/UNULPot82Vw1uTIxy/Arf84wqUp6W2Tc=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/system/smartmontools/default.nix b/nixpkgs/pkgs/tools/system/smartmontools/default.nix
index 954c9eb4110c..8d0539d118f3 100644
--- a/nixpkgs/pkgs/tools/system/smartmontools/default.nix
+++ b/nixpkgs/pkgs/tools/system/smartmontools/default.nix
@@ -6,11 +6,11 @@
 let
   version = "7.2";
 
-  dbrev = "5164";
+  dbrev = "5171";
   drivedbBranch = "RELEASE_7_2_DRIVEDB";
   driverdb = fetchurl {
     url    = "https://sourceforge.net/p/smartmontools/code/${dbrev}/tree/branches/${drivedbBranch}/smartmontools/drivedb.h?format=raw";
-    sha256 = "1vj0sv3bgcd0lwk5x450brfyxksa5fn1mjgvmj994ab8spmicc43";
+    sha256 = "0vncr98xagbcfsxgfgxsip2qrl9q3y8va19qhv6yknlwbdfap4mn";
     name   = "smartmontools-drivedb.h";
   };
 
diff --git a/nixpkgs/pkgs/tools/system/snooze/default.nix b/nixpkgs/pkgs/tools/system/snooze/default.nix
index 750a0954d3fb..bfe91c6e0e8d 100644
--- a/nixpkgs/pkgs/tools/system/snooze/default.nix
+++ b/nixpkgs/pkgs/tools/system/snooze/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchFromGitHub }:
 stdenv.mkDerivation rec {
   pname = "snooze";
-  version = "0.4";
+  version = "0.5";
   src = fetchFromGitHub {
     owner = "leahneukirchen";
     repo = "snooze";
     rev = "v${version}";
-    sha256 = "0a114brvvjf6vl7grviv0gd6gmikr447m8kq1wilp4yj51sfyxa9";
+    sha256 = "sha256-K77axli/mapUr3yxpmUfFq4iWwgRmEVUlP6+/0Iezwo=";
   };
   makeFlags = [ "DESTDIR=$(out)" "PREFIX=/" ];
 
@@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
     description = "Tool for waiting until a particular time and then running a command";
     maintainers = with maintainers; [ kaction ];
     license = licenses.cc0;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/stress-ng/default.nix b/nixpkgs/pkgs/tools/system/stress-ng/default.nix
index 6eae792fa4d2..2e1c4e3a1fa4 100644
--- a/nixpkgs/pkgs/tools/system/stress-ng/default.nix
+++ b/nixpkgs/pkgs/tools/system/stress-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.11.19";
+  version = "0.12.04";
 
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0s08qahjc68h5qhnahmb9z19l51p5sw2pmzrlknq1j5900zpa2x5";
+    sha256 = "sha256-tONL2o207TfjO3qGG8Bq13y70jTWMjbaLLWPAuPzIY4=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/system/stressapptest/default.nix b/nixpkgs/pkgs/tools/system/stressapptest/default.nix
new file mode 100644
index 000000000000..9b7eb0a6f3e2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/stressapptest/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libaio
+}:
+
+stdenv.mkDerivation rec {
+  pname = "stressapptest";
+  version = "1.0.9";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1qzj6h6adx042rb9aiz916jna269whibvj5ys4p5nwdp17fqh922";
+  };
+
+  buildInputs = [ libaio ];
+
+  meta = with lib; {
+    description = "Userspace memory and IO stress test tool";
+    homepage = "https://github.com/stressapptest/stressapptest";
+    license = with licenses; [ asl20 ];
+    maintainers = with lib.maintainers; [ fab ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/syslog-ng-incubator/default.nix b/nixpkgs/pkgs/tools/system/syslog-ng-incubator/default.nix
index 892920657d28..0f8db091d616 100644
--- a/nixpkgs/pkgs/tools/system/syslog-ng-incubator/default.nix
+++ b/nixpkgs/pkgs/tools/system/syslog-ng-incubator/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, glib, syslogng
-, eventlog, perl, python, yacc, protobufc, libivykis, libcap, czmq
+, eventlog, perl, python, bison, protobufc, libivykis, libcap, czmq
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "17y85cqcyfbp882gaii731cvz5bg1s8rgda271jh6kgnrz5rbd4s";
   };
 
-  nativeBuildInputs = [ pkg-config autoreconfHook yacc ];
+  nativeBuildInputs = [ pkg-config autoreconfHook bison ];
 
   buildInputs = [
     glib syslogng eventlog perl python protobufc libivykis libcap czmq
diff --git a/nixpkgs/pkgs/tools/system/thermald/default.nix b/nixpkgs/pkgs/tools/system/thermald/default.nix
index fb622d7ff4eb..4d2ca811837d 100644
--- a/nixpkgs/pkgs/tools/system/thermald/default.nix
+++ b/nixpkgs/pkgs/tools/system/thermald/default.nix
@@ -10,7 +10,7 @@
 , libevdev
 , libtool
 , libxml2
-, lzma
+, xz
 , pkg-config
 , lib, stdenv
 , upower
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "thermald";
-  version = "2.4.1";
+  version = "2.4.3";
 
   outputs = [ "out" "devdoc" ];
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "intel";
     repo = "thermal_daemon";
     rev = "v${version}";
-    sha256 = "0rlac7v1b59m7gh767hkd8a0r4p001nd24786fnmryygbxynd2s6";
+    sha256 = "sha256-CPrk2r3C4WG+y3KzWf6xWhfNdDgEigki62iAXu+DccU=";
   };
 
   nativeBuildInputs = [
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     dbus-glib
     libevdev
     libxml2
-    lzma
+    xz
     upower
   ];
 
diff --git a/nixpkgs/pkgs/tools/system/tre-command/default.nix b/nixpkgs/pkgs/tools/system/tre-command/default.nix
index 638caa3c62bc..01590db0fd07 100644
--- a/nixpkgs/pkgs/tools/system/tre-command/default.nix
+++ b/nixpkgs/pkgs/tools/system/tre-command/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tre-command";
-  version = "0.3.3";
+  version = "0.3.6";
 
   src = fetchFromGitHub {
     owner = "dduan";
     repo = "tre";
     rev = "v${version}";
-    sha256 = "10c8mpqzpw7m3vrm2vl2rx678z3c37hxpqyh3fn83dlh9f4f0j87";
+    sha256 = "1r84xzv3p0ml3wac2j7j5fkm7i93v2xvadb8f8al5wi57q39irj7";
   };
 
-  cargoSha256 = "0jd6cfs2zi2n34kirpsy12l76whaqwm1pkqa57w1ms5z658z07wj";
+  cargoSha256 = "1nbfgz7njc10b0abs6zwi6wzhlwllps3wah6abc1mj5yhrzwccmh";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/system/uptimed/default.nix b/nixpkgs/pkgs/tools/system/uptimed/default.nix
index 0e427a66b261..5d0d49f198e1 100644
--- a/nixpkgs/pkgs/tools/system/uptimed/default.nix
+++ b/nixpkgs/pkgs/tools/system/uptimed/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "uptimed";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
-    sha256 = "0wnnpjfxnycigqj6hag0n6p5piss8cv40y9jda72d9s4df5n91z8";
+    sha256 = "sha256-X/LnH+EWjXlw8RktfL4ckAUmP2DPV1qlb6Ii4N985cU=";
     rev = "v${version}";
     repo = "uptimed";
     owner = "rpodgorny";
@@ -23,8 +23,8 @@ stdenv.mkDerivation rec {
       which can also easily be used to show your records on a web page.
     '';
     homepage = "https://github.com/rpodgorny/uptimed/";
-    license = licenses.gpl2;
+    license = with licenses; [ gpl2Only lgpl21Plus ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
-
 }
diff --git a/nixpkgs/pkgs/tools/system/uroboros/default.nix b/nixpkgs/pkgs/tools/system/uroboros/default.nix
new file mode 100644
index 000000000000..7f25c70c2979
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/uroboros/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "uroboros";
+  version = "20210304-${lib.strings.substring 0 7 rev}";
+  rev = "9bed95bb4cc44cfd043e8ac192e788df379c7a44";
+
+  src = fetchFromGitHub {
+    owner = "evilsocket";
+    repo = pname;
+    inherit rev;
+    sha256 = "1a1bc2za2ppb7j7ibhykgxwivwmx7yq0593255jd55gl60r0l7i4";
+  };
+
+  vendorSha256 = "1ml3x00zzkwj1f76a4wk2y8z4bxjhadf2p1li96qjpnc8fgfd50l";
+
+  meta = with lib; {
+    description = "Tool for monitoring and profiling single processes";
+    homepage = "https://github.com/evilsocket/uroboros";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/vboot_reference/default.nix b/nixpkgs/pkgs/tools/system/vboot_reference/default.nix
index 6f8ba2b07eb5..b4b92b8f90fb 100644
--- a/nixpkgs/pkgs/tools/system/vboot_reference/default.nix
+++ b/nixpkgs/pkgs/tools/system/vboot_reference/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitiles, pkg-config, libuuid, openssl, libyaml, lzma }:
+{ lib, stdenv, fetchFromGitiles, pkg-config, libuuid, openssl, libyaml, xz }:
 
 stdenv.mkDerivation rec {
   version = "20180311";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl libuuid libyaml lzma ];
+  buildInputs = [ openssl libuuid libyaml xz ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/tools/text/asciigraph/default.nix b/nixpkgs/pkgs/tools/text/asciigraph/default.nix
index 79d8c9079c79..27c2a1ff28ec 100644
--- a/nixpkgs/pkgs/tools/text/asciigraph/default.nix
+++ b/nixpkgs/pkgs/tools/text/asciigraph/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "asciigraph";
-  version = "0.5.1";
+  version = "0.5.2";
 
   goPackagePath = "github.com/guptarohit/asciigraph";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "guptarohit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0aqf64b5d5lf9scvxdx5f3p0vvx5s59mrvr6hcjljg1prksah9ns";
+    sha256 = "sha256-iVgJtxt0B6nMA3bieZ1CmZucwLMb5av6Wn5BMDRWfcI=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/text/boxes/default.nix b/nixpkgs/pkgs/tools/text/boxes/default.nix
index 3c58eda65018..f39349b2fbf0 100644
--- a/nixpkgs/pkgs/tools/text/boxes/default.nix
+++ b/nixpkgs/pkgs/tools/text/boxes/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
                 "GLOBALCONF=${placeholder "out"}/share/boxes/boxes-config"
   '';
 
-  makeFlags = lib.optionals stdenv.isDarwin [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     install -Dm755 -t $out/bin src/boxes
diff --git a/nixpkgs/pkgs/tools/text/cconv/default.nix b/nixpkgs/pkgs/tools/text/cconv/default.nix
index 9c5796c0b1d8..e918d620c678 100644
--- a/nixpkgs/pkgs/tools/text/cconv/default.nix
+++ b/nixpkgs/pkgs/tools/text/cconv/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv, fetchurl, autoreconfHook }:
-let version = "0.6.3"; in
-  stdenv.mkDerivation {
+{ lib, stdenv, fetchurl, autoreconfHook, libiconv }:
+
+stdenv.mkDerivation rec {
   pname = "cconv";
-  inherit version;
+  version = "0.6.3";
 
   src = fetchurl {
     url = "https://github.com/xiaoyjy/cconv/archive/v${version}.tar.gz";
@@ -10,12 +10,13 @@ let version = "0.6.3"; in
   };
 
   nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ libiconv ];
 
   meta = with lib; {
     description = "A iconv based simplified-traditional chinese conversion tool";
     homepage = "https://github.com/xiaoyjy/cconv";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.redfish64 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/csvkit/default.nix b/nixpkgs/pkgs/tools/text/csvkit/default.nix
index 05e0cf119bf1..56f5bae3123d 100644
--- a/nixpkgs/pkgs/tools/text/csvkit/default.nix
+++ b/nixpkgs/pkgs/tools/text/csvkit/default.nix
@@ -11,7 +11,7 @@ python3.pkgs.buildPythonApplication rec {
 
   patches = [
     # Fixes a failing dbf related test. Won't be needed on 1.0.6 or later.
-    (fetchpatch{
+    (fetchpatch {
       url = "https://github.com/wireservice/csvkit/commit/5f22e664121b13d9ff005a9206873a8f97431dca.patch";
       sha256 = "1kg00z65x7l6dnm5nfsr5krs8m7mv23hhb1inkaqf5m5fpkpnvv7";
     })
@@ -23,13 +23,16 @@ python3.pkgs.buildPythonApplication rec {
     agate-dbf
     agate-sql
     six
-    setuptools  # `csvsql` requires pkg_resources https://github.com/NixOS/nixpkgs/issues/93594
+    setuptools
   ];
 
   checkInputs = with python3.pkgs; [
-    nose pytestCheckHook
+    nose
+    pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "csvkit" ];
+
   meta = with lib; {
     description = "A suite of command-line tools for converting to and working with CSV";
     maintainers = with maintainers; [ vrthra ];
diff --git a/nixpkgs/pkgs/tools/text/dadadodo/default.nix b/nixpkgs/pkgs/tools/text/dadadodo/default.nix
index 85e57546d933..a70a7efda72e 100644
--- a/nixpkgs/pkgs/tools/text/dadadodo/default.nix
+++ b/nixpkgs/pkgs/tools/text/dadadodo/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1pzwp3mim58afjrc92yx65mmgr1c834s1v6z4f4gyihwjn8bn3if";
   };
 
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
   installPhase = ''
     mkdir -p $out/bin
     cp dadadodo $out/bin
@@ -20,6 +22,6 @@ stdenv.mkDerivation rec {
     description = "Markov chain-based text generator";
     homepage = "http://www.jwz.org/dadadodo";
     maintainers = with maintainers; [ pSub ];
-    platforms = with platforms; linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/dfmt/default.nix b/nixpkgs/pkgs/tools/text/dfmt/default.nix
new file mode 100644
index 000000000000..16702bb69663
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/dfmt/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, python3
+}:
+
+let
+  inherit (python3.pkgs)
+    buildPythonApplication
+    fetchPypi
+    pythonOlder;
+in
+buildPythonApplication rec {
+  pname = "dfmt";
+  version = "1.2.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7af6360ca8d556f1cfe82b97f03b8d1ea5a9d6de1fa3018290c844b6566d9d6e";
+  };
+
+  meta = with lib; {
+    description = "Format paragraphs, comments and doc strings";
+    homepage = "https://github.com/dmerejkowsky/dfmt";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ cole-h ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/dirdiff/default.nix b/nixpkgs/pkgs/tools/text/dirdiff/default.nix
new file mode 100644
index 000000000000..b49df59b29e1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/dirdiff/default.nix
@@ -0,0 +1,59 @@
+{ copyDesktopItems, fetchurl, lib, makeDesktopItem, stdenv, tcl, tk }:
+
+stdenv.mkDerivation rec {
+  pname = "dirdiff";
+  version = "2.1";
+
+  src = fetchurl {
+    url = "https://www.samba.org/ftp/paulus/${pname}-${version}.tar.gz";
+    sha256 = "0lljd8av68j70733yshzzhxjr1lm0vgmbqsm8f02g03qsma3cdyb";
+  };
+
+  nativeBuildInputs = [ copyDesktopItems ];
+  buildInputs = [ tcl tk ];
+
+  # Some light path patching.
+  patches = [ ./dirdiff-2.1-vars.patch ];
+  postPatch = ''
+    for file in dirdiff Makefile; do
+      substituteInPlace "$file" \
+          --subst-var out \
+          --subst-var-by tcl ${tcl} \
+          --subst-var-by tk ${tk}
+    done
+  '';
+
+  # If we don't create the directories ourselves, then 'make install' creates
+  # files named 'bin' and 'lib'.
+  preInstall = ''
+    mkdir -p $out/bin $out/lib
+  '';
+
+  installFlags = [
+    "BINDIR=${placeholder "out"}/bin"
+    "LIBDIR=${placeholder "out"}/lib"
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "dirdiff";
+      exec = "dirdiff";
+      desktopName = "Dirdiff";
+      genericName = "Directory Diff Viewer";
+      comment = "Diff and merge directory trees";
+      categories = "Development;";
+    })
+  ];
+
+  meta = with lib; {
+    description = "Graphical directory tree diff and merge tool";
+    longDescription = ''
+      Dirdiff is a graphical tool for displaying the differences between
+      directory trees and for merging changes from one tree into another.
+    '';
+    homepage = "https://www.samba.org/ftp/paulus/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ khumba ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/dirdiff/dirdiff-2.1-vars.patch b/nixpkgs/pkgs/tools/text/dirdiff/dirdiff-2.1-vars.patch
new file mode 100644
index 000000000000..4e7aa025754a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/dirdiff/dirdiff-2.1-vars.patch
@@ -0,0 +1,32 @@
+diff '--color=auto' -ru dirdiff-2.1/dirdiff dirdiff-2.1-patched/dirdiff
+--- dirdiff-2.1/dirdiff	2005-04-20 03:09:53.000000000 -0700
++++ dirdiff-2.1-patched/dirdiff	2021-02-14 22:54:09.837692023 -0800
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ # Tcl ignores the next line \
+-exec wish "$0" -- "${1+$@}"
++exec @tk@/bin/wish "$0" -- "${1+$@}"
+ 
+ # Copyright (C) 1999-2004 Paul Mackerras.  All rights reserved.
+ # This program is free software; it may be used, copied, modified
+@@ -17,7 +17,7 @@
+ set TclExe [info nameofexecutable]
+ set compound_ok [expr {$tcl_version >= 8.4}]
+ 
+-set nofilecmp [catch {load libfilecmp.so.0.0}]
++set nofilecmp [catch {load @out@/lib/libfilecmp.so.0.0}]
+ set rcsflag {}
+ set diffbflag {}
+ set diffBflag {}
+diff '--color=auto' -ru dirdiff-2.1/Makefile dirdiff-2.1-patched/Makefile
+--- dirdiff-2.1/Makefile	2005-04-19 03:22:01.000000000 -0700
++++ dirdiff-2.1-patched/Makefile	2021-02-14 22:54:58.575400923 -0800
+@@ -7,7 +7,7 @@
+ INSTALL=install
+ 
+ # You may need to change the -I arguments depending on your system
+-CFLAGS=-O3 -I/usr/include/tcl8.3/ -I/usr/include/tcl
++CFLAGS=-O3 -I@tcl@/include
+ 
+ all:	libfilecmp.so.0.0
+ 
diff --git a/nixpkgs/pkgs/tools/text/dos2unix/default.nix b/nixpkgs/pkgs/tools/text/dos2unix/default.nix
index e2e07e9e4884..f694b91762c5 100644
--- a/nixpkgs/pkgs/tools/text/dos2unix/default.nix
+++ b/nixpkgs/pkgs/tools/text/dos2unix/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     changelog = "https://sourceforge.net/p/dos2unix/dos2unix/ci/dos2unix-${version}/tree/dos2unix/NEWS.txt?format=raw";
     license = licenses.bsd2;
     maintainers = with maintainers; [ c0bw3b ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/fanficfare/default.nix b/nixpkgs/pkgs/tools/text/fanficfare/default.nix
index e1db7d3d39c0..5fb70f63dc31 100644
--- a/nixpkgs/pkgs/tools/text/fanficfare/default.nix
+++ b/nixpkgs/pkgs/tools/text/fanficfare/default.nix
@@ -22,8 +22,7 @@ python3Packages.buildPythonApplication rec {
     description = "Tool for making eBooks from fanfiction web sites";
     homepage = "https://github.com/JimmXinu/FanFicFare";
     license = licenses.gpl3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ dwarfmaster ];
-    inherit version;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/frangipanni/default.nix b/nixpkgs/pkgs/tools/text/frangipanni/default.nix
new file mode 100644
index 000000000000..1f0dcfa94172
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/frangipanni/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "frangipanni";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "birchb1024";
+    repo = "frangipanni";
+    rev = "v${version}";
+    sha256 = "sha256-NgRDXrAsfnj1cqO+2AN8nSuxS9KGNIl+pJkCADmDOqY=";
+  };
+
+  vendorSha256 = "sha256-TSN5M/UCTtfoTf1hDCfrJMCFdSwL/NVXssgt4aefom8=";
+
+  meta = with lib; {
+    description = "Convert lines of text into a tree structure";
+    homepage = "https://github.com/birchb1024/frangipanni";
+    license = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/fst/0001-cargo-lockfile.patch b/nixpkgs/pkgs/tools/text/fst/0001-cargo-lockfile.patch
new file mode 100644
index 000000000000..c8c56ffdb622
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/fst/0001-cargo-lockfile.patch
@@ -0,0 +1,935 @@
+From 84797e8fb8ead8822ebfd251b47c72433555860e Mon Sep 17 00:00:00 2001
+From: "Robert T. McGibbon" <rmcgibbo@gmail.com>
+Date: Fri, 5 Mar 2021 16:59:41 -0500
+Subject: [PATCH 1/1] Create cargo lock file for 0.4.5
+
+---
+ Cargo.lock | 916 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 916 insertions(+)
+ create mode 100644 Cargo.lock
+
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..136677d
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,916 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "anyhow"
++version = "1.0.38"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1"
++
++[[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.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++
++[[package]]
++name = "bit-set"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
++dependencies = [
++ "bit-vec",
++]
++
++[[package]]
++name = "bit-vec"
++version = "0.6.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "bstr"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d"
++dependencies = [
++ "lazy_static",
++ "memchr",
++ "regex-automata",
++ "serde",
++]
++
++[[package]]
++name = "bumpalo"
++version = "3.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe"
++
++[[package]]
++name = "byteorder"
++version = "1.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
++
++[[package]]
++name = "cast"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4b9434b9a5aa1450faa3f9cb14ea0e8c53bb5d2b3c1bfd1ab4fc03e9f33fbfb0"
++dependencies = [
++ "rustc_version",
++]
++
++[[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 = "clap"
++version = "2.33.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
++dependencies = [
++ "bitflags",
++ "textwrap",
++ "unicode-width",
++]
++
++[[package]]
++name = "criterion"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ab327ed7354547cc2ef43cbe20ef68b988e70b4b593cbd66a2a61733123a3d23"
++dependencies = [
++ "atty",
++ "cast",
++ "clap",
++ "criterion-plot",
++ "csv",
++ "itertools 0.10.0",
++ "lazy_static",
++ "num-traits",
++ "oorandom",
++ "plotters",
++ "rayon",
++ "regex",
++ "serde",
++ "serde_cbor",
++ "serde_derive",
++ "serde_json",
++ "tinytemplate",
++ "walkdir",
++]
++
++[[package]]
++name = "criterion-plot"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d"
++dependencies = [
++ "cast",
++ "itertools 0.9.0",
++]
++
++[[package]]
++name = "crossbeam-channel"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
++dependencies = [
++ "crossbeam-utils 0.7.2",
++ "maybe-uninit",
++]
++
++[[package]]
++name = "crossbeam-channel"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
++dependencies = [
++ "cfg-if 1.0.0",
++ "crossbeam-utils 0.8.3",
++]
++
++[[package]]
++name = "crossbeam-deque"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
++dependencies = [
++ "cfg-if 1.0.0",
++ "crossbeam-epoch",
++ "crossbeam-utils 0.8.3",
++]
++
++[[package]]
++name = "crossbeam-epoch"
++version = "0.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12"
++dependencies = [
++ "cfg-if 1.0.0",
++ "crossbeam-utils 0.8.3",
++ "lazy_static",
++ "memoffset",
++ "scopeguard",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.7.2"
++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.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"
++dependencies = [
++ "autocfg",
++ "cfg-if 1.0.0",
++ "lazy_static",
++]
++
++[[package]]
++name = "csv"
++version = "1.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f9d58633299b24b515ac72a3f869f8b91306a3cec616a602843a383acd6f9e97"
++dependencies = [
++ "bstr",
++ "csv-core",
++ "itoa",
++ "ryu",
++ "serde",
++]
++
++[[package]]
++name = "csv-core"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "doc-comment"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
++
++[[package]]
++name = "either"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++
++[[package]]
++name = "fnv"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
++
++[[package]]
++name = "fst"
++version = "0.4.5"
++dependencies = [
++ "doc-comment",
++ "fnv",
++ "memmap",
++ "quickcheck",
++ "rand 0.7.3",
++ "utf8-ranges",
++]
++
++[[package]]
++name = "fst"
++version = "0.4.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d79238883cf0307100b90aba4a755d8051a3182305dfe7f649a1e9dc0517006f"
++dependencies = [
++ "utf8-ranges",
++]
++
++[[package]]
++name = "fst-bench"
++version = "0.0.1"
++dependencies = [
++ "criterion",
++ "fnv",
++ "fst 0.4.5",
++]
++
++[[package]]
++name = "fst-bin"
++version = "0.4.1"
++dependencies = [
++ "anyhow",
++ "bit-set",
++ "bstr",
++ "clap",
++ "crossbeam-channel 0.4.4",
++ "csv",
++ "fst 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memmap",
++ "num_cpus",
++ "regex-automata",
++ "serde",
++ "tempfile",
++]
++
++[[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.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
++dependencies = [
++ "cfg-if 1.0.0",
++ "libc",
++ "wasi 0.10.2+wasi-snapshot-preview1",
++]
++
++[[package]]
++name = "half"
++version = "1.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3"
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "itertools"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "itertools"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
++
++[[package]]
++name = "js-sys"
++version = "0.3.48"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc9f84f9b115ce7843d60706df1422a916680bfdfcbdb0447c5614ff9d7e4d78"
++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.88"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "03b07a082330a35e43f63177cc01689da34fbffa0105e1246cf0311472cac73a"
++
++[[package]]
++name = "log"
++version = "0.4.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
++dependencies = [
++ "cfg-if 1.0.0",
++]
++
++[[package]]
++name = "maybe-uninit"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
++
++[[package]]
++name = "memchr"
++version = "2.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
++
++[[package]]
++name = "memmap"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
++dependencies = [
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "memoffset"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
++dependencies = [
++ "hermit-abi",
++ "libc",
++]
++
++[[package]]
++name = "oorandom"
++version = "11.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
++
++[[package]]
++name = "plotters"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "45ca0ae5f169d0917a7c7f5a9c1a3d3d9598f18f529dd2b8373ed988efea307a"
++dependencies = [
++ "num-traits",
++ "plotters-backend",
++ "plotters-svg",
++ "wasm-bindgen",
++ "web-sys",
++]
++
++[[package]]
++name = "plotters-backend"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b07fffcddc1cb3a1de753caa4e4df03b79922ba43cf882acc1bdd7e8df9f4590"
++
++[[package]]
++name = "plotters-svg"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b38a02e23bd9604b842a812063aec4ef702b57989c37b655254bb61c471ad211"
++dependencies = [
++ "plotters-backend",
++]
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quickcheck"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a44883e74aa97ad63db83c4bf8ca490f02b2fc02f92575e720c8551e843c945f"
++dependencies = [
++ "rand 0.7.3",
++ "rand_core 0.5.1",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
++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 0.2.0",
++]
++
++[[package]]
++name = "rand"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
++dependencies = [
++ "libc",
++ "rand_chacha 0.3.0",
++ "rand_core 0.6.2",
++ "rand_hc 0.3.0",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
++dependencies = [
++ "ppv-lite86",
++ "rand_core 0.5.1",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
++dependencies = [
++ "ppv-lite86",
++ "rand_core 0.6.2",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++dependencies = [
++ "getrandom 0.1.16",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
++dependencies = [
++ "getrandom 0.2.2",
++]
++
++[[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_hc"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
++dependencies = [
++ "rand_core 0.6.2",
++]
++
++[[package]]
++name = "rayon"
++version = "1.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
++dependencies = [
++ "autocfg",
++ "crossbeam-deque",
++ "either",
++ "rayon-core",
++]
++
++[[package]]
++name = "rayon-core"
++version = "1.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
++dependencies = [
++ "crossbeam-channel 0.5.0",
++ "crossbeam-deque",
++ "crossbeam-utils 0.8.3",
++ "lazy_static",
++ "num_cpus",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
++dependencies = [
++ "bitflags",
++]
++
++[[package]]
++name = "regex"
++version = "1.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a"
++dependencies = [
++ "regex-syntax",
++]
++
++[[package]]
++name = "regex-automata"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4"
++dependencies = [
++ "byteorder",
++ "fst 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581"
++
++[[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 = "rustc_version"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++dependencies = [
++ "semver",
++]
++
++[[package]]
++name = "ryu"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++
++[[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 = "scopeguard"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++
++[[package]]
++name = "semver"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
++dependencies = [
++ "semver-parser",
++]
++
++[[package]]
++name = "semver-parser"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
++
++[[package]]
++name = "serde"
++version = "1.0.123"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae"
++dependencies = [
++ "serde_derive",
++]
++
++[[package]]
++name = "serde_cbor"
++version = "0.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622"
++dependencies = [
++ "half",
++ "serde",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.123"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.64"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
++dependencies = [
++ "itoa",
++ "ryu",
++ "serde",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.61"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ed22b90a0e734a23a7610f4283ac9e5acfb96cbb30dfefa540d66f866f1c09c5"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "tempfile"
++version = "3.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
++dependencies = [
++ "cfg-if 1.0.0",
++ "libc",
++ "rand 0.8.3",
++ "redox_syscall",
++ "remove_dir_all",
++ "winapi",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++dependencies = [
++ "unicode-width",
++]
++
++[[package]]
++name = "tinytemplate"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
++dependencies = [
++ "serde",
++ "serde_json",
++]
++
++[[package]]
++name = "unicode-width"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++
++[[package]]
++name = "utf8-ranges"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba"
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++dependencies = [
++ "same-file",
++ "winapi",
++ "winapi-util",
++]
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++
++[[package]]
++name = "wasi"
++version = "0.10.2+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++
++[[package]]
++name = "wasm-bindgen"
++version = "0.2.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ee1280240b7c461d6a0071313e08f34a60b0365f14260362e5a2b17d1d31aa7"
++dependencies = [
++ "cfg-if 1.0.0",
++ "wasm-bindgen-macro",
++]
++
++[[package]]
++name = "wasm-bindgen-backend"
++version = "0.2.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5b7d8b6942b8bb3a9b0e73fc79b98095a27de6fa247615e59d096754a3bc2aa8"
++dependencies = [
++ "bumpalo",
++ "lazy_static",
++ "log",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-shared",
++]
++
++[[package]]
++name = "wasm-bindgen-macro"
++version = "0.2.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e5ac38da8ef716661f0f36c0d8320b89028efe10c7c0afde65baffb496ce0d3b"
++dependencies = [
++ "quote",
++ "wasm-bindgen-macro-support",
++]
++
++[[package]]
++name = "wasm-bindgen-macro-support"
++version = "0.2.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cc053ec74d454df287b9374ee8abb36ffd5acb95ba87da3ba5b7d3fe20eb401e"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-backend",
++ "wasm-bindgen-shared",
++]
++
++[[package]]
++name = "wasm-bindgen-shared"
++version = "0.2.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7d6f8ec44822dd71f5f221a5847fb34acd9060535c1211b70a05844c0f6383b1"
++
++[[package]]
++name = "web-sys"
++version = "0.3.48"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ec600b26223b2948cedfde2a0aa6756dcf1fef616f43d7b3097aaf53a6c4d92b"
++dependencies = [
++ "js-sys",
++ "wasm-bindgen",
++]
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+-- 
+2.29.2
+
diff --git a/nixpkgs/pkgs/tools/text/fst/default.nix b/nixpkgs/pkgs/tools/text/fst/default.nix
new file mode 100644
index 000000000000..738fd69dc64d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/fst/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, libiconv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fst";
+  version = "0.4.5";
+
+  src = fetchFromGitHub {
+    owner = "BurntSushi";
+    repo = pname;
+    rev = version;
+    sha256 = "01qdj7zzgwb1zqcznfmnks3dnl6hnf8ib0sm0sgimsbcvajmhab3";
+  };
+
+  cargoPatches = [
+    # Add Cargo.lock lockfile, which upstream does not include
+    ./0001-cargo-lockfile.patch
+  ];
+
+  cargoBuildFlags = [ "--workspace" ];
+  cargoSha256 = "0svn2gzipslz939396rcydqx3i1x07l7acas7fhql12n59n2yrxw";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    csv="$(mktemp)"
+    fst="$(mktemp)"
+    printf "abc,1\nabcd,1" > "$csv"
+    $out/bin/fst map "$csv" "$fst" --force
+    $out/bin/fst fuzzy "$fst" 'abc'
+    $out/bin/fst --help > /dev/null
+  '';
+
+  meta = with lib; {
+    description = "Represent large sets and maps compactly with finite state transducers";
+    homepage = "https://github.com/BurntSushi/fst";
+    license = with licenses; [ unlicense /* or */ mit ];
+    maintainers = with maintainers; [ rmcgibbo ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/gpt2tc/0001-add-python-shebang.patch b/nixpkgs/pkgs/tools/text/gpt2tc/0001-add-python-shebang.patch
new file mode 100644
index 000000000000..b47b444009ac
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/gpt2tc/0001-add-python-shebang.patch
@@ -0,0 +1,10 @@
+diff --git a/gpt2convert.py b/gpt2convert.py
+index 34ca909..6e6cac5 100644
+--- a/gpt2convert.py
++++ b/gpt2convert.py
+@@ -1,3 +1,5 @@
++#!/usr/bin/env python3
++
+ import sys
+ import tensorflow as tf
+ import numpy as np
diff --git a/nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch b/nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch
new file mode 100644
index 000000000000..fd8f93834e52
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch
@@ -0,0 +1,11 @@
+diff --git a/download_model.sh b/download_model.sh
+index 9cb401f..ad1dc62 100755
+--- a/download_model.sh
++++ b/download_model.sh
+@@ -13,5 +13,5 @@ mkdir -p models/$model
+ for filename in checkpoint encoder.json hparams.json model.ckpt.data-00000-of-00001 model.ckpt.index model.ckpt.meta vocab.bpe; do
+   fetch=$model/$filename
+   echo "Fetching $fetch"
+-  curl --output models/$fetch https://storage.googleapis.com/gpt-2/models/$fetch
++  curl --output models/$fetch https://openaipublic.blob.core.windows.net/gpt-2/models/$fetch
+ done
diff --git a/nixpkgs/pkgs/tools/text/gpt2tc/default.nix b/nixpkgs/pkgs/tools/text/gpt2tc/default.nix
new file mode 100644
index 000000000000..eb79d9009f34
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/gpt2tc/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchurl, autoPatchelfHook, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "gpt2tc";
+  version = "2020-12-30";
+
+  src = fetchurl {
+    url = "https://bellard.org/nncp/gpt2tc-${version}.tar.gz";
+    hash = "sha256-KFcl7E6iGx50JaJI1jwzKAdkrkbNngPbrEA/ZSyG+uY=";
+  };
+
+  patches = [
+    # Add a shebang to the python script so that nix detects it as such and
+    # wraps it properly. Otherwise, it runs in shell and freezes the system.
+    ./0001-add-python-shebang.patch
+
+    # Update the source URL for the models because the old one is down.
+    ./0002-fix-download-url.patch
+  ];
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  buildInputs = [
+    (python3.withPackages (p: with p; [ numpy tensorflow ]))
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m755 -t $out/bin gpt2tc
+    install -T -m755 download_model.sh $out/bin/gpt2-download-model
+    install -T -m755 gpt2convert.py $out/bin/gpt2-convert
+    install -D -m644 -t $out/share/gpt2tc readme.txt gpt2vocab.txt Changelog
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Text completion and compression using GPT-2";
+    homepage = "https://bellard.org/nncp/gpt2tc.html";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ anna328p ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/html-tidy/default.nix b/nixpkgs/pkgs/tools/text/html-tidy/default.nix
index 15ee4c756480..6caa3d34a0c9 100644
--- a/nixpkgs/pkgs/tools/text/html-tidy/default.nix
+++ b/nixpkgs/pkgs/tools/text/html-tidy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "html-tidy";
-  version = "5.6.0";
+  version = "5.7.28";
 
   src = fetchFromGitHub {
     owner = "htacg";
     repo = "tidy-html5";
     rev = version;
-    sha256 = "0w175c5d1babq0w1zzdzw9gl6iqbgyq58v8587s7srp05y3hwy9k";
+    sha256 = "sha256-Tny53PtaQWAMAEjqw4tKnmGURfZhhwFQNCJr9jjWZQY=";
   };
 
   nativeBuildInputs = [ cmake libxslt/*manpage*/ ];
diff --git a/nixpkgs/pkgs/tools/text/icdiff/default.nix b/nixpkgs/pkgs/tools/text/icdiff/default.nix
index 3ead56298cf6..c051560151a9 100644
--- a/nixpkgs/pkgs/tools/text/icdiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/icdiff/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, pythonPackages }:
+{ lib, fetchFromGitHub, python3Packages, bash, git, less }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "icdiff";
   version = "1.9.5";
 
@@ -11,6 +11,20 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "080v8h09pv8qwplin4kwfm0kmqjwdqjfxbpcdrv16sv4hwfwl5qd";
   };
 
+  checkInputs = [
+    bash
+    git
+    less
+  ];
+
+  # error: could not lock config file /homeless-shelter/.gitconfig: No such file or directory
+  doCheck = false;
+
+  checkPhase = ''
+    patchShebangs test.sh
+    ./test.sh ${python3Packages.python.interpreter}
+  '';
+
   meta = with lib; {
     homepage = "https://www.jefftk.com/icdiff";
     description = "Side-by-side highlighted command line diffs";
diff --git a/nixpkgs/pkgs/tools/text/jsawk/default.nix b/nixpkgs/pkgs/tools/text/jsawk/default.nix
index e700d7c486e5..4efaf56ccf69 100644
--- a/nixpkgs/pkgs/tools/text/jsawk/default.nix
+++ b/nixpkgs/pkgs/tools/text/jsawk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, spidermonkey_38 }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, spidermonkey_78 }:
 
 stdenv.mkDerivation {
   pname = "jsawk";
@@ -10,12 +10,12 @@ stdenv.mkDerivation {
     sha256 = "0z3vdr3c8nvdrrxkjv9b4xg47mdb2hsknxpimw6shgwbigihapyr";
   };
   dontBuild = true;
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
     mkdir -p $out/bin
     cp $src/jsawk $out/bin/
     wrapProgram $out/bin/jsawk \
-      --prefix PATH : "${spidermonkey_38}/bin"
+      --prefix PATH : "${spidermonkey_78}/bin"
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/text/kramdown-rfc2629/Gemfile.lock b/nixpkgs/pkgs/tools/text/kramdown-rfc2629/Gemfile.lock
index b50dc2fdbca0..feab5cddf995 100644
--- a/nixpkgs/pkgs/tools/text/kramdown-rfc2629/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/text/kramdown-rfc2629/Gemfile.lock
@@ -2,9 +2,11 @@ GEM
   remote: https://rubygems.org/
   specs:
     certified (1.0.0)
+    json_pure (2.5.1)
     kramdown (1.17.0)
-    kramdown-rfc2629 (1.2.13)
+    kramdown-rfc2629 (1.3.37)
       certified (~> 1.0)
+      json_pure (~> 2.0)
       kramdown (~> 1.17.0)
 
 PLATFORMS
diff --git a/nixpkgs/pkgs/tools/text/kramdown-rfc2629/gemset.nix b/nixpkgs/pkgs/tools/text/kramdown-rfc2629/gemset.nix
index bf0cf130c424..f0b6c39a3599 100644
--- a/nixpkgs/pkgs/tools/text/kramdown-rfc2629/gemset.nix
+++ b/nixpkgs/pkgs/tools/text/kramdown-rfc2629/gemset.nix
@@ -9,6 +9,16 @@
     };
     version = "1.0.0";
   };
+  json_pure = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "030hmc268wchqsccbjk41hvbyg99krpa72i3q0y3wwqzfh8hi736";
+      type = "gem";
+    };
+    version = "2.5.1";
+  };
   kramdown = {
     groups = ["default"];
     platforms = [];
@@ -20,14 +30,14 @@
     version = "1.17.0";
   };
   kramdown-rfc2629 = {
-    dependencies = ["certified" "kramdown"];
+    dependencies = ["certified" "json_pure" "kramdown"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s53m46qlcdakik0czvx0p41mk46l9l36331cps8gpf364wf3l9d";
+      sha256 = "16m08q5bgib3i54bb9p3inrxb1xksiybs9zj1rnncq492gcqqv4j";
       type = "gem";
     };
-    version = "1.2.13";
+    version = "1.3.37";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/l2md/default.nix b/nixpkgs/pkgs/tools/text/l2md/default.nix
new file mode 100644
index 000000000000..e443cc42a2ec
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/l2md/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchgit, libgit2 }:
+
+stdenv.mkDerivation rec {
+  pname = "l2md";
+  version = "unstable-2020-07-31";
+
+  src = fetchgit {
+    url = "https://git.kernel.org/pub/scm/linux/kernel/git/dborkman/l2md.git";
+    rev = "2b9fae141fc2129940e0337732a35a3fc1c33455";
+    sha256 = "PNNoD3a+rJwKH6wbOkvVU1IW4+xF7+zQaLFAlyLlYOI=";
+  };
+
+  buildInputs = [ libgit2 ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp l2md $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Convert public-inbox archives to maildir messages";
+    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
+      periodically synced.
+    '';
+    homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/dborkman/l2md.git";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ yoctocell ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/ledger2beancount/default.nix b/nixpkgs/pkgs/tools/text/ledger2beancount/default.nix
index fe2078222d2e..b3f48085d1db 100644
--- a/nixpkgs/pkgs/tools/text/ledger2beancount/default.nix
+++ b/nixpkgs/pkgs/tools/text/ledger2beancount/default.nix
@@ -4,21 +4,26 @@ with lib;
 
 let
   perlDeps = with perlPackages; [
-    ConfigOnion DateCalc
-    FileBaseDir YAMLLibYAML
-    GetoptLongDescriptive DateTimeFormatStrptime
+    DateCalc
+    DateTimeFormatStrptime
+    enum
+    FileBaseDir
+    GetoptLongDescriptive
+    ListMoreUtils
+    RegexpCommon
     StringInterpolate
+    YAMLLibYAML
   ];
 
 in stdenv.mkDerivation rec {
   pname = "ledger2beancount";
-  version = "2.1";
+  version = "2.5";
 
   src = fetchFromGitHub {
-    owner = "zacchiro";
+    owner = "beancount";
     repo = "ledger2beancount";
     rev = version;
-    sha256 = "0w88jb1x0w02jwwf6ipx3cxr89kzffrrdqws3556zrvvs01bh84j";
+    sha256 = "0kimp8l9ax37grfv5r5iw0g0xnrpkak022fl10y3i7kc4nyi1s99";
   };
 
   phases = [
@@ -50,7 +55,7 @@ in stdenv.mkDerivation rec {
 
       Conversion is based on (concrete) syntax, so that information that is not meaningful for accounting reasons but still valuable (e.g., comments, formatting, etc.) can be preserved.
     '';
-    homepage = "https://github.com/zacchiro/ledger2beancount";
+    homepage = "https://github.com/beancount/ledger2beancount";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ pablovsky ];
diff --git a/nixpkgs/pkgs/tools/text/m2r/default.nix b/nixpkgs/pkgs/tools/text/m2r/default.nix
new file mode 100644
index 000000000000..f6dda712d0b9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/m2r/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, docutils
+, mistune
+, pygments
+}:
+
+buildPythonApplication rec {
+  pname = "m2r";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "miyakogi";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-JNLPEXMoiISh4RnKP+Afj9/PJp9Lrx9UYHsfuGAL7uI=";
+  };
+
+  buildInputs = [
+    docutils
+    mistune
+    pygments
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/miyakogi/m2r";
+    description = "Markdown-to-RestructuredText converter";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/mark/default.nix b/nixpkgs/pkgs/tools/text/mark/default.nix
index dbfb85fc5831..0cccb644f9e3 100644
--- a/nixpkgs/pkgs/tools/text/mark/default.nix
+++ b/nixpkgs/pkgs/tools/text/mark/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mark";
-  version = "5.2";
+  version = "5.5";
 
   src = fetchFromGitHub {
     owner  = "kovetskiy";
     repo   = "mark";
     rev    = version;
-    sha256 = "sha256-bjDQwtIsY+Dvv270DACvyU+MNPyI7EZcob6F/aebVac=";
+    sha256 = "sha256-+mDUT9zkawa6Ad1uptc34RGK3bhU6WowwUZdwKbOnj4=";
   };
 
-  vendorSha256 = "sha256-l6zHsis2fais5HQJQdfsSC0sPdcF4BeWoUznpl3Fh1g=";
+  vendorSha256 = "sha256-nneQ0B7PyHAqiOzrmWqSssZM8B3np4VFUJLBqUvkjZE=";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/text/markdown-pp/default.nix b/nixpkgs/pkgs/tools/text/markdown-pp/default.nix
index 50ef560f6c3f..c6e937eab275 100644
--- a/nixpkgs/pkgs/tools/text/markdown-pp/default.nix
+++ b/nixpkgs/pkgs/tools/text/markdown-pp/default.nix
@@ -1,13 +1,15 @@
-{ fetchFromGitHub, pythonPackages, lib }:
+{ lib
+, fetchFromGitHub
+, python3
+}:
 
-with pythonPackages;
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "MarkdownPP";
   version = "1.5.1";
-  propagatedBuildInputs = [ pillow watchdog ];
+  propagatedBuildInputs = with python3.pkgs; [ pillow watchdog ];
   checkPhase = ''
     cd test
-    PATH=$out/bin:$PATH ${python}/bin/${python.executable} test.py
+    PATH=$out/bin:$PATH ${python3}/bin/${python3.executable} test.py
   '';
   src = fetchFromGitHub {
     owner = "jreese";
diff --git a/nixpkgs/pkgs/tools/text/mdbook/default.nix b/nixpkgs/pkgs/tools/text/mdbook/default.nix
index 98fb6e69be51..838cdf075bd9 100644
--- a/nixpkgs/pkgs/tools/text/mdbook/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "rust-lang-nursery";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "sha256-cS2fME3X8bFmEz6czoL+2ZFbflJP58+lIeC5SVleCNg=";
+    sha256 = "sha256-51S4I1YIbdgXkhuT7KnhJe71nGCQmr9JmuGtp7Bcxqo=";
   };
 
-  cargoSha256 = "sha256-iuJyprLp6HofcdH0NgNK2Vl+1FtdAvZPcltPUb5B2XU=";
+  cargoSha256 = "sha256-2kBJcImytsSd7Q0kj1bsP/NXxyy2Pr8gHb8iNf6h3/4=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/nixpkgs/pkgs/tools/text/miller/default.nix b/nixpkgs/pkgs/tools/text/miller/default.nix
index 9cc31be7ed49..670c0612b391 100644
--- a/nixpkgs/pkgs/tools/text/miller/default.nix
+++ b/nixpkgs/pkgs/tools/text/miller/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "miller";
 
-  version = "5.10.0";
+  version = "5.10.2";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
     rev = "v${version}";
-    sha256 = "02jqbxnchljyqnmlbxjaf5zpdi03gxapfy38dfikl5j4f7yyxvjs";
+    sha256 = "sha256-NI57U3FpUfQ6ouBEYrzzG+9kpL58BD4HoAuRAFJMO9k=";
   };
 
   nativeBuildInputs = [ autoreconfHook flex libtool ];
diff --git a/nixpkgs/pkgs/tools/text/mpage/default.nix b/nixpkgs/pkgs/tools/text/mpage/default.nix
index 9bde7f388dcf..99cfec97a70b 100644
--- a/nixpkgs/pkgs/tools/text/mpage/default.nix
+++ b/nixpkgs/pkgs/tools/text/mpage/default.nix
@@ -7,8 +7,9 @@ stdenv.mkDerivation rec {
     sha256 = "1zn37r5xrvjgjbw2bdkc0r7s6q8b1krmcryzj0yf0dyxbx79rasi";
   };
 
-  patchPhase = ''
+  postPatch = ''
     sed -i "Makefile" -e "s|^ *PREFIX *=.*$|PREFIX = $out|g"
+    substituteInPlace Makefile --replace 'gcc' '${stdenv.cc.targetPrefix}cc'
   '';
 
   meta = {
@@ -24,6 +25,6 @@ stdenv.mkDerivation rec {
 
     license = "liberal";  # a non-copyleft license, see `Copyright' file
     homepage = "http://www.mesa.nl/pub/mpage/";
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/nawk/default.nix b/nixpkgs/pkgs/tools/text/nawk/default.nix
index 3c16421bd973..580d30a58330 100644
--- a/nixpkgs/pkgs/tools/text/nawk/default.nix
+++ b/nixpkgs/pkgs/tools/text/nawk/default.nix
@@ -1,26 +1,28 @@
-{ lib, stdenv, fetchFromGitHub, yacc }:
+{ lib, stdenv, fetchFromGitHub, bison, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "nawk";
-  version = "20180827";
+  version = "unstable-2021-02-15";
 
   src = fetchFromGitHub {
     owner = "onetrueawk";
     repo = "awk";
-    rev = version;
-    sha256 = "0qcsxhcwg6g3c0zxmbipqa8d8d5n8zxrq0hymb8yavsaz103fcl6";
+    rev = "c0f4e97e4561ff42544e92512bbaf3d7d1f6a671";
+    sha256 = "kQCvItpSJnDJMDvlB8ruY+i0KdjmAphRDqCKw8f0m/8=";
   };
 
-  nativeBuildInputs = [ yacc ];
-
-  patchPhase = ''
-    substituteInPlace ./makefile \
-    --replace "YACC = yacc -d -S" ""
-  '';
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = [ bison ];
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "HOSTCC=${if stdenv.buildPlatform.isDarwin then "clang" else "cc"}"
+  ];
 
   installPhase = ''
+    runHook preInstall
     install -Dm755 a.out "$out/bin/nawk"
     install -Dm644 awk.1 "$out/share/man/man1/nawk.1"
+    runHook postInstall
   '';
 
   meta = {
@@ -33,6 +35,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.cs.princeton.edu/~bwk/btl.mirror/";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.konimex ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/numdiff/default.nix b/nixpkgs/pkgs/tools/text/numdiff/default.nix
index db27c1bfd0c0..317d29003cd3 100644
--- a/nixpkgs/pkgs/tools/text/numdiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/numdiff/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, libintl }:
 
 
 stdenv.mkDerivation rec {
@@ -9,6 +9,9 @@ stdenv.mkDerivation rec {
     url = "mirror://savannah/numdiff/numdiff-${version}.tar.gz";
     sha256 = "1vzmjh8mhwwysn4x4m2vif7q2k8i19x8azq7pzmkwwj4g48lla47";
   };
+
+  buildInputs = [ libintl ];
+
   meta = with lib; {
     description = ''
       A little program that can be used to compare putatively similar files
@@ -18,6 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.nongnu.org/numdiff/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [];
-    platforms = platforms.gnu ++ platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/podiff/default.nix b/nixpkgs/pkgs/tools/text/podiff/default.nix
index b44003a9f0df..2078c75f1362 100644
--- a/nixpkgs/pkgs/tools/text/podiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/podiff/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
   pname = "podiff";
-  version = "1.2";
+  version = "1.3";
 
   src = fetchurl {
-    url = "ftp://download.gnu.org.ua/pub/release/podiff/podiff-1.2.tar.gz";
-    sha256 = "1l2b4hh53xlx28riigwarzkhxpv1pcz059xj1ka33ccvxc6c20k9";
+    url = "ftp://download.gnu.org.ua/pub/release/podiff/podiff-1.3.tar.gz";
+    sha256 = "sha256-7fpix+GkXsfpRgnkHtk1iXF6ILHri7BtUhNPK6sDQFA=";
   };
 
   patchPhase = ''
@@ -20,6 +20,6 @@ stdenv.mkDerivation {
     homepage = "http://puszcza.gnu.org.ua/software/podiff";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/poedit/default.nix b/nixpkgs/pkgs/tools/text/poedit/default.nix
index 63d0c05e543b..185b2a41c46a 100644
--- a/nixpkgs/pkgs/tools/text/poedit/default.nix
+++ b/nixpkgs/pkgs/tools/text/poedit/default.nix
@@ -41,6 +41,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.poedit.net/";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ domenkozar ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/popfile/default.nix b/nixpkgs/pkgs/tools/text/popfile/default.nix
index ef945235a904..e2f5952077f3 100644
--- a/nixpkgs/pkgs/tools/text/popfile/default.nix
+++ b/nixpkgs/pkgs/tools/text/popfile/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
     stripRoot = false;
   };
 
-  buildInputs = [ makeWrapper ] ++ (with perlPackages; [
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = (with perlPackages; [
     ## These are all taken from the popfile documentation as applicable to Linux
     ## http://getpopfile.org/docs/howtos:allplatformsrequireperl
     perl
diff --git a/nixpkgs/pkgs/tools/text/reckon/default.nix b/nixpkgs/pkgs/tools/text/reckon/default.nix
index bbefa94637db..b37928fc7c5b 100644
--- a/nixpkgs/pkgs/tools/text/reckon/default.nix
+++ b/nixpkgs/pkgs/tools/text/reckon/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   phases = [ "installPhase" ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = let
     env = bundlerEnv {
diff --git a/nixpkgs/pkgs/tools/text/ripgrep/default.nix b/nixpkgs/pkgs/tools/text/ripgrep/default.nix
index 61e534fa732b..8c9eef9cc3dd 100644
--- a/nixpkgs/pkgs/tools/text/ripgrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/ripgrep/default.nix
@@ -1,9 +1,9 @@
 { lib, stdenv
-, nixosTests
 , fetchFromGitHub
 , rustPlatform
 , asciidoctor
 , installShellFiles
+, pkg-config
 , Security
 , withPCRE2 ? true
 , pcre2 ? null
@@ -24,9 +24,10 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = lib.optional withPCRE2 "--features pcre2";
 
-  nativeBuildInputs = [ asciidoctor installShellFiles ];
+  nativeBuildInputs = [ asciidoctor installShellFiles ]
+    ++ lib.optional withPCRE2 pkg-config;
   buildInputs = (lib.optional withPCRE2 pcre2)
-  ++ (lib.optional stdenv.isDarwin Security);
+    ++ (lib.optional stdenv.isDarwin Security);
 
   preFixup = ''
     installManPage $releaseDir/build/ripgrep-*/out/rg.1
@@ -35,7 +36,15 @@ rustPlatform.buildRustPackage rec {
     installShellCompletion --zsh complete/_rg
   '';
 
-  passthru.tests = { inherit (nixosTests) ripgrep; };
+  doInstallCheck = true;
+  installCheckPhase = ''
+    file="$(mktemp)"
+    echo "abc\nbcd\ncde" > "$file"
+    $out/bin/rg -N 'bcd' "$file"
+    $out/bin/rg -N 'cd' "$file"
+  '' + lib.optionalString withPCRE2 ''
+    echo '(a(aa)aa)' | $out/bin/rg -P '\((a*|(?R))*\)'
+  '';
 
   meta = with lib; {
     description = "A utility that combines the usability of The Silver Searcher with the raw speed of grep";
diff --git a/nixpkgs/pkgs/tools/text/rst2html5/default.nix b/nixpkgs/pkgs/tools/text/rst2html5/default.nix
index 6f484bed8bcf..c9e8b0469869 100644
--- a/nixpkgs/pkgs/tools/text/rst2html5/default.nix
+++ b/nixpkgs/pkgs/tools/text/rst2html5/default.nix
@@ -3,12 +3,12 @@
 let
   pname = "rst2html5";
   version = "1.10.6";
-in python3Packages.buildPythonPackage {
-  inherit pname version;
   format = "wheel";
+in python3Packages.buildPythonPackage {
+  inherit pname version format;
 
   src = python3Packages.fetchPypi {
-    inherit pname version;
+    inherit pname version format;
     sha256 = "sha256-jmToDFLQODqgTycBp2J8LyoJ1Zxho9w1VdhFMzvDFkg=";
   };
 
diff --git a/nixpkgs/pkgs/tools/text/shfmt/default.nix b/nixpkgs/pkgs/tools/text/shfmt/default.nix
index cb5bb8a28e81..c6ab5ff9c734 100644
--- a/nixpkgs/pkgs/tools/text/shfmt/default.nix
+++ b/nixpkgs/pkgs/tools/text/shfmt/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "shfmt";
-  version = "3.2.2";
+  version = "3.2.4";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "sh";
     rev = "v${version}";
-    sha256 = "sha256-ZeyHidw8iHboo/LHTR9E3Sqj8euaRvDaYbPQMdecsrk=";
+    sha256 = "sha256-BkvsCIcm3qnfECNhY3DIPnBRih6D7rOHOQu9oc0YDZA=";
   };
 
   vendorSha256 = "1ma7nvyn6ylbi8bd7x900i94pzs877kfy9xh0nf1bbify1vcpd29";
@@ -32,6 +32,6 @@ buildGoModule rec {
       You can feed it standard input, any number of files or any number of directories to recurse into.
     '';
     license = licenses.bsd3;
-    maintainers = with maintainers; [ zowoq ];
+    maintainers = with maintainers; [ zowoq SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/silver-searcher/default.nix b/nixpkgs/pkgs/tools/text/silver-searcher/default.nix
index 177c556a337d..8cd67b99263c 100644
--- a/nixpkgs/pkgs/tools/text/silver-searcher/default.nix
+++ b/nixpkgs/pkgs/tools/text/silver-searcher/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, pcre, zlib, lzma}:
+{lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, pcre, zlib, xz}:
 
 stdenv.mkDerivation rec {
   pname = "silver-searcher";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = lib.optionalString stdenv.isLinux "-lgcc_s";
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ pcre zlib lzma ];
+  buildInputs = [ pcre zlib xz ];
 
   meta = with lib; {
     homepage = "https://github.com/ggreer/the_silver_searcher/";
diff --git a/nixpkgs/pkgs/tools/text/snippetpixie/default.nix b/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
index bfbfd8993163..935f593177bb 100644
--- a/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
+++ b/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snippetpixie";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "bytepixie";
     repo = pname;
     rev = version;
-    sha256 = "1cb76kzw34yr1r135lyd75ddm9v99m7i3lyirm353cdch8qspfmv";
+    sha256 = "047ghk0zfmcsnbr4h2h5ar7g1sw2mnk8r2887v81dh3vf767rqg2";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/text/source-highlight/default.nix b/nixpkgs/pkgs/tools/text/source-highlight/default.nix
index c8eb43a51c9d..6e1a7b24b594 100644
--- a/nixpkgs/pkgs/tools/text/source-highlight/default.nix
+++ b/nixpkgs/pkgs/tools/text/source-highlight/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = false;
 
+  outputs = [ "out" "doc" "dev" ];
+
   meta = with lib; {
     description = "Source code renderer with syntax highlighting";
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/text/tab/default.nix b/nixpkgs/pkgs/tools/text/tab/default.nix
index a0539d4d372b..096e0b04c695 100644
--- a/nixpkgs/pkgs/tools/text/tab/default.nix
+++ b/nixpkgs/pkgs/tools/text/tab/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromBitbucket, python3 }:
 
 stdenv.mkDerivation rec {
-  version = "7.2";
+  version = "8.0";
   pname = "tab";
 
   src = fetchFromBitbucket {
     owner = "tkatchev";
     repo = pname;
     rev = version;
-    sha256 = "1bm15lw0vp901dj2vsqx6yixmn7ls3brrzh1w6zgd1ksjzlm5aax";
+    sha256 = "sha256-RcDvghTiqIdH79khwDIo8PhvmcObmix8WBrHToLwcw4=";
   };
 
   checkInputs = [ python3 ];
diff --git a/nixpkgs/pkgs/tools/text/ugrep/default.nix b/nixpkgs/pkgs/tools/text/ugrep/default.nix
index 83cb0e463880..5806723a043e 100644
--- a/nixpkgs/pkgs/tools/text/ugrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/ugrep/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ugrep";
-  version = "3.1.0";
+  version = "3.1.7";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "08pq759f2vvdbig64y3k9kicvgr2d5x8ara7b182dcm3slbpib3l";
+    sha256 = "sha256-nCpU4GBJ/4c/70hgVKfO1995XCyDRLVUeczsqnlkkFM=";
   };
 
   buildInputs = [ boost bzip2 lz4 pcre2 xz zlib ];
diff --git a/nixpkgs/pkgs/tools/text/uni2ascii/default.nix b/nixpkgs/pkgs/tools/text/uni2ascii/default.nix
index 19c95dcec637..e2bda04d13f1 100644
--- a/nixpkgs/pkgs/tools/text/uni2ascii/default.nix
+++ b/nixpkgs/pkgs/tools/text/uni2ascii/default.nix
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
     similar ASCII characters, e.g. by stripping diacritics.
     '';
     maintainers = with lib.maintainers; [ goibhniu ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/unoconv/default.nix b/nixpkgs/pkgs/tools/text/unoconv/default.nix
index 59bd19085911..4516eba5095f 100644
--- a/nixpkgs/pkgs/tools/text/unoconv/default.nix
+++ b/nixpkgs/pkgs/tools/text/unoconv/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     sha256 = "1akx64686in8j8arl6vsgp2n3bv770q48pfv283c6fz6wf9p8fvr";
   };
 
-  buildInputs = [ asciidoc makeWrapper ];
+  nativeBuildInputs = [ asciidoc makeWrapper ];
 
   preBuild = ''
     makeFlags=prefix="$out"
diff --git a/nixpkgs/pkgs/tools/text/unrtf/default.nix b/nixpkgs/pkgs/tools/text/unrtf/default.nix
index 57ffe95988d0..3357404a7d3c 100644
--- a/nixpkgs/pkgs/tools/text/unrtf/default.nix
+++ b/nixpkgs/pkgs/tools/text/unrtf/default.nix
@@ -1,22 +1,14 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoconf, automake, libiconv }:
+{ lib, stdenv, fetchurl, autoconf, automake, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "unrtf";
-  version = "0.21.9";
+  version = "0.21.10";
 
   src = fetchurl {
-    url = "https://www.gnu.org/software/unrtf/${pname}-${version}.tar.gz";
-    sha256 = "1pcdzf2h1prn393dkvg93v80vh38q0v817xnbwrlwxbdz4k7i8r2";
+    url = "https://ftp.gnu.org/gnu/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "1bil6z4niydz9gqm2j861dkxmqnpc8m7hvidsjbzz7x63whj17xl";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2016-10091-0001-convert.c-Use-safe-buffer-size-and-snprintf.patch";
-      url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=849705;filename=0001-convert.c-Use-safe-buffer-size-and-snprintf.patch;msg=20";
-      sha256 = "0s0fjvm3zdm9967sijlipfrwjs0h23n2n8fa6f40xxp8y5qq5a0b";
-    })
-  ];
-
   nativeBuildInputs = [ autoconf automake ];
 
   buildInputs = [ libiconv ];
diff --git a/nixpkgs/pkgs/tools/text/vale/default.nix b/nixpkgs/pkgs/tools/text/vale/default.nix
index 59f5e7c0c0f8..0de5ea5377cd 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 = "2.9.1";
+  version = "2.10.2";
 
   subPackages = [ "cmd/vale" ];
   outputs = [ "out" "data" ];
@@ -11,10 +11,10 @@ buildGoModule rec {
     owner  = "errata-ai";
     repo   = "vale";
     rev    = "v${version}";
-    sha256 = "sha256-ItkWmBq1mBVZfHcnqDp8koEAWBH3k9Et2bFA2mNYjVY=";
+    sha256 = "0cpq2pv6d67fdnm2qbb7p9amk0as8bm4knkywak8fsqadxfadx80";
   };
 
-  vendorSha256 = null;
+  vendorSha256 = "14zimsl0f7sxqqka00krix3q2mxdcpk8n2zh7bz8awjwzn4kg8m3";
 
   postInstall = ''
     mkdir -p $data/share/vale
@@ -24,7 +24,7 @@ buildGoModule rec {
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   meta = with lib; {
-    homepage = "https://errata-ai.gitbook.io/vale/";
+    homepage = "https://docs.errata.ai/vale/about";
     description = "A syntax-aware linter for prose built with speed and extensibility in mind";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/tools/text/wdiff/default.nix b/nixpkgs/pkgs/tools/text/wdiff/default.nix
index 4d0f87354ad3..510cf18369e6 100644
--- a/nixpkgs/pkgs/tools/text/wdiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/wdiff/default.nix
@@ -9,10 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "0sxgg0ms5lhi4aqqvz1rj4s77yi9wymfm3l3gbjfd1qchy66kzrl";
   };
 
+  # for makeinfo
+  nativeBuildInputs = [ texinfo ];
+
   buildInputs = [ texinfo ];
 
   checkInputs = [ which ];
 
+  strictDeps = true;
+
   meta = with lib; {
     homepage = "https://www.gnu.org/software/wdiff/";
     description = "Comparing files on a word by word basis";
diff --git a/nixpkgs/pkgs/tools/text/xml/basex/default.nix b/nixpkgs/pkgs/tools/text/xml/basex/default.nix
index 9256abf3cbdb..30482196322f 100644
--- a/nixpkgs/pkgs/tools/text/xml/basex/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/basex/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-IZhRg2JcYQXQKU/lYZpLLcsSdjZZO+toY5yvk+RKUCY=";
   };
 
-  buildInputs = [ unzip jre ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ jre ];
 
   desktopItem = makeDesktopItem {
     name = "basex";
diff --git a/nixpkgs/pkgs/tools/text/xml/xmldiff/default.nix b/nixpkgs/pkgs/tools/text/xml/xmldiff/default.nix
new file mode 100644
index 000000000000..5814435e111b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/xml/xmldiff/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, lxml
+, six
+}:
+
+buildPythonApplication rec {
+  pname = "xmldiff";
+  version = "2.4";
+
+  src = fetchFromGitHub {
+    owner = "Shoobx";
+    repo = pname;
+    rev = version;
+    hash = "sha256-xqudHYfwOce2C0pcFzId0JDIIC6R5bllmVKsH+CvTdE=";
+  };
+
+  buildInputs = [
+    lxml
+    six
+  ];
+
+  meta = with lib; {
+    homepage = "https://xmldiff.readthedocs.io/en/stable/";
+    description = "A library and command line utility for diffing xml";
+    longDescription = ''
+      xmldiff is a library and a command-line utility for making diffs out of
+      XML. This may seem like something that doesn't need a dedicated utility,
+      but change detection in hierarchical data is very different from change
+      detection in flat data. XML type formats are also not only used for
+      computer readable data, it is also often used as a format for hierarchical
+      data that can be rendered into human readable formats. A traditional diff
+      on such a format would tell you line by line the differences, but this
+      would not be be readable by a human. xmldiff provides tools to make human
+      readable diffs in those situations.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/yaml-merge/default.nix b/nixpkgs/pkgs/tools/text/yaml-merge/default.nix
index d36522edb874..7c4ecc49df5d 100644
--- a/nixpkgs/pkgs/tools/text/yaml-merge/default.nix
+++ b/nixpkgs/pkgs/tools/text/yaml-merge/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
     description = "Merge YAML data files";
     homepage = "https://github.com/abbradar/yaml-merge";
     license = licenses.bsd2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/zimreader/default.nix b/nixpkgs/pkgs/tools/text/zimreader/default.nix
deleted file mode 100644
index 64e6bf60e35d..000000000000
--- a/nixpkgs/pkgs/tools/text/zimreader/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, automake, autoconf, libtool
-, zimlib, cxxtools, tntnet
-}:
-
-stdenv.mkDerivation {
-  name = "zimreader-0.92";
-
-  src = fetchFromGitHub {
-    owner = "wikimedia";
-    repo = "openzim";
-    rev = "r1.3"; # there multiple tools with different version in the repo
-    sha256 = "0x529137rxy6ld64xqa6xmn93121ripxvkf3sc7hv3wg6km182sw";
-  };
-
-  patchFlags = [ "-p2" ];
-  patches = [
-    (fetchpatch {
-      name = "zimreader_tntnet221.patch";
-      url = "https://github.com/wikimedia/openzim/compare/r1.3...juliendehos:3ee5f11eaa811284d340451e6f466529c00f6ef2.patch";
-      sha256 = "0rc5n20svyyndqh7hsynjyblfraphgi0f6khw6f5jq89w9i1j1hd";
-    })
-  ];
-
-  enableParallelBuilding = true;
-  buildInputs = [ automake autoconf libtool zimlib cxxtools tntnet ];
-  setSourceRoot = ''
-    sourceRoot=$(echo */zimreader)
-  '';
-  preConfigure = "./autogen.sh";
-
-  meta = {
-    description = "A tool to serve ZIM files using HTTP";
-    homepage = "http://git.wikimedia.org/log/openzim";
-    license = lib.licenses.gpl2;
-    maintainers = with lib.maintainers; [ robbinch juliendehos ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/text/zimwriterfs/default.nix b/nixpkgs/pkgs/tools/text/zimwriterfs/default.nix
index c2600ec46f60..9a7e495df2b8 100644
--- a/nixpkgs/pkgs/tools/text/zimwriterfs/default.nix
+++ b/nixpkgs/pkgs/tools/text/zimwriterfs/default.nix
@@ -9,7 +9,7 @@
 , file
 , icu
 , gumbo
-, lzma
+, xz
 , xapian
 , zimlib
 , zlib
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ automake autoconf libtool pkg-config ];
-  buildInputs = [ file icu gumbo lzma zimlib zlib xapian ];
+  buildInputs = [ file icu gumbo xz zimlib zlib xapian ];
   setSourceRoot = ''
     sourceRoot=$(echo */zimwriterfs)
   '';
diff --git a/nixpkgs/pkgs/tools/text/zstxtns-utils/default.nix b/nixpkgs/pkgs/tools/text/zstxtns-utils/default.nix
new file mode 100644
index 000000000000..362f2fca84d9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/zstxtns-utils/default.nix
@@ -0,0 +1,39 @@
+{ coreutils
+, fetchurl
+, gnugrep
+, lib
+, makeWrapper
+, moreutils
+, stdenvNoCC
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "zstxtns-utils";
+  version = "0.0.3";
+
+  src = fetchurl {
+    url = "https://ytrizja.de/distfiles/zstxtns-utils-${version}.tar.gz";
+    sha256 = "I/Gm7vHUr29NClYWQ1kwu8HrNZpdLXfE/nutTNoqcdU=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D -t $out/bin zstxtns-merge zstxtns-unmerge
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/zstxtns-merge --set PATH "${lib.makeBinPath [coreutils gnugrep moreutils]}"
+    wrapProgram $out/bin/zstxtns-unmerge --set PATH "${lib.makeBinPath [coreutils gnugrep]}"
+  '';
+
+  meta = with lib; {
+    description = "utilities to deal with text based name service databases";
+    homepage = "https://ytrizja.de/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ zseri ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoc/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoc/default.nix
index 61af8102f51e..6716d764d5d3 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoc/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoc/default.nix
@@ -136,6 +136,7 @@ let
     url = "https://github.com/downloads/dagwieers/asciidoc-odf/odt-backend-0.1.zip";
     sha256 = "1zaa97h9sx6ncxcdkl1x3ggydi7f8kjgvrnpjnkjiizi45k350kw";
   };
+
   odpBackendSrc = fetchurl {
     url = "https://github.com/downloads/dagwieers/asciidoc-odf/odp-backend-0.1.zip";
     sha256 = "08ya4bskygzqkfqwjllpg31qc5k08xp2k78z9b2480g8y57bfy10";
@@ -147,6 +148,8 @@ stdenv.mkDerivation rec {
   pname = "asciidoc";
   version = "9.0.4";
 
+  # Note: a substitution to improve reproducibility should be updated once 10.0.0 is
+  # released. See the comment in `patchPhase` for more information.
   src = fetchFromGitHub {
     owner = "asciidoc";
     repo = "asciidoc-py3";
@@ -157,7 +160,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ python3 unzip autoreconfHook ];
 
   # install filters early, so their shebangs are patched too
-  patchPhase = with lib; ''
+  postPatch = with lib; ''
     mkdir -p "$out/etc/asciidoc/filters"
     mkdir -p "$out/etc/asciidoc/backends"
   '' + optionalString _enableDitaaFilter ''
@@ -261,7 +264,15 @@ stdenv.mkDerivation rec {
   '') + ''
     patchShebangs .
 
-    sed -i -e "s,/etc/vim,,g" Makefile.in
+    # Note: this substitution will not work in the planned 10.0.0 release:
+    #
+    # https://github.com/asciidoc/asciidoc-py3/commit/dfffda23381014481cd13e8e9d8f131e1f93f08a
+    #
+    # Update this substitution to:
+    #
+    # --replace "python3 -m asciidoc.a2x" "python3 -m asciidoc.a2x -a revdate=01/01/1980"
+    substituteInPlace Makefile.in \
+      --replace "python3 a2x.py" "python3 a2x.py -a revdate=01/01/1980"
   '';
 
   preInstall = "mkdir -p $out/etc/vim";
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
index 06a1716251a7..4e321311f28c 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
@@ -1,60 +1,65 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    Ascii85 (1.0.3)
-    addressable (2.6.0)
-      public_suffix (>= 2.0.2, < 4.0)
+    Ascii85 (1.1.0)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
     afm (0.2.2)
-    asciidoctor (2.0.10)
-    asciidoctor-diagram (1.5.18)
-      asciidoctor (>= 1.5.0, < 3.x)
-    asciidoctor-epub3 (1.5.0.alpha.9)
-      asciidoctor (>= 1.5.0, < 3.0.0)
-      concurrent-ruby (~> 1.1.5)
-      gepub (~> 1.0.2)
-      thread_safe (~> 0.3.6)
-    asciidoctor-mathematical (0.3.0)
-      asciidoctor (~> 2.0, >= 2.0.0)
-      mathematical (~> 1.5, >= 1.5.8)
-      ruby-enum (~> 0.4)
-    asciidoctor-pdf (1.5.0.alpha.18)
+    asciidoctor (2.0.12)
+    asciidoctor-diagram (2.1.0)
+      asciidoctor (>= 1.5.7, < 3.x)
+      asciidoctor-diagram-ditaamini (~> 0.13)
+      asciidoctor-diagram-plantuml (~> 1.2021)
+      rexml
+    asciidoctor-diagram-ditaamini (0.13.1)
+    asciidoctor-diagram-plantuml (1.2021.0)
+    asciidoctor-epub3 (1.5.0.alpha.19)
+      asciidoctor (>= 1.5.6, < 3.0.0)
+      gepub (~> 1.0.0)
+      mime-types (~> 3.0)
+    asciidoctor-mathematical (0.3.5)
+      asciidoctor (~> 2.0)
+      asciimath (~> 2.0)
+      mathematical (~> 1.6.0)
+    asciidoctor-pdf (1.5.4)
       asciidoctor (>= 1.5.3, < 3.0.0)
       concurrent-ruby (~> 1.1.0)
       prawn (~> 2.2.0)
-      prawn-icon (~> 2.3.0)
-      prawn-svg (~> 0.29.0)
+      prawn-icon (~> 2.5.0)
+      prawn-svg (~> 0.31.0)
       prawn-table (~> 0.2.0)
       prawn-templates (~> 0.1.0)
       safe_yaml (~> 1.0.0)
       thread_safe (~> 0.3.0)
-      treetop (~> 1.5.0)
-    asciidoctor-revealjs (4.0.1)
+      treetop (~> 1.6.0)
+      ttfunk (~> 1.5.0, >= 1.5.1)
+    asciidoctor-revealjs (4.1.0)
       asciidoctor (>= 2.0.0, < 3.0.0)
       concurrent-ruby (~> 1.0)
       thread_safe (~> 0.3.5)
-    asciimath (2.0.1)
-    coderay (1.1.2)
-    concurrent-ruby (1.1.5)
-    css_parser (1.7.0)
+    asciimath (2.0.2)
+    coderay (1.1.3)
+    concurrent-ruby (1.1.8)
+    css_parser (1.9.0)
       addressable
-    gepub (1.0.4)
-      nokogiri (>= 1.8.2, < 1.11)
-      rubyzip (>= 1.1.1)
+    gepub (1.0.13)
+      nokogiri (>= 1.8.2, < 1.12)
+      rubyzip (> 1.1.1, < 2.4)
     hashery (2.1.2)
-    i18n (1.6.0)
+    i18n (1.8.9)
       concurrent-ruby (~> 1.0)
-    mathematical (1.6.12)
+    mathematical (1.6.14)
       ruby-enum (~> 0.4)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2020.1104)
-    mini_portile2 (2.4.0)
-    multi_json (1.13.1)
-    nokogiri (1.10.3)
-      mini_portile2 (~> 2.4.0)
+    mime-types-data (3.2021.0225)
+    mini_portile2 (2.5.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     pdf-core (0.7.0)
-    pdf-reader (2.2.0)
-      Ascii85 (~> 1.0.0)
+    pdf-reader (2.4.2)
+      Ascii85 (~> 1.0)
       afm (~> 0.2.1)
       hashery (~> 2.0)
       ruby-rc4
@@ -63,27 +68,28 @@ GEM
     prawn (2.2.2)
       pdf-core (~> 0.7.0)
       ttfunk (~> 1.5)
-    prawn-icon (2.3.0)
+    prawn-icon (2.5.0)
       prawn (>= 1.1.0, < 3.0.0)
-    prawn-svg (0.29.1)
+    prawn-svg (0.31.0)
       css_parser (~> 1.6)
       prawn (>= 0.11.1, < 3)
     prawn-table (0.2.2)
       prawn (>= 1.3.0, < 3.0.0)
-    prawn-templates (0.1.1)
+    prawn-templates (0.1.2)
       pdf-reader (~> 2.0)
       prawn (~> 2.2)
-    public_suffix (3.1.1)
-    pygments.rb (1.2.1)
-      multi_json (>= 1.0.0)
-    rouge (3.5.1)
-    ruby-enum (0.7.2)
+    public_suffix (4.0.6)
+    pygments.rb (2.1.0)
+    racc (1.5.2)
+    rexml (3.2.4)
+    rouge (3.26.0)
+    ruby-enum (0.9.0)
       i18n
     ruby-rc4 (0.1.5)
-    rubyzip (1.2.3)
+    rubyzip (2.3.0)
     safe_yaml (1.0.5)
     thread_safe (0.3.6)
-    treetop (1.5.3)
+    treetop (1.6.11)
       polyglot (~> 0.3)
     ttfunk (1.5.1)
 
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
index 29b2b567be23..73fb46d2e606 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
@@ -1,6 +1,6 @@
 { lib, bundlerApp, makeWrapper,
   # Optional dependencies, can be null
-  epubcheck, kindlegen,
+  epubcheck,
   bundlerUpdateScript
 }:
 
@@ -20,8 +20,7 @@ let
 
     postBuild = ''
         wrapProgram "$out/bin/asciidoctor-epub3" \
-          ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"} \
-          ${lib.optionalString (kindlegen != null) "--set KINDLEGEN ${kindlegen}/bin/kindlegen"}
+          ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"}
       '';
 
     passthru = {
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
index db0f67d3a58f..19106214c263 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.7.0";
   };
   afm = {
     groups = ["default"];
@@ -25,64 +25,84 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0658m37jjjn6drzqg1gk4p6c205mgp7g1jh2d00n4ngghgmz5qvs";
+      sha256 = "1ds4v9xgsyvijnlflak4dzf1qwmda9yd5bv8jwsb56nngd399rlw";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.1.0";
   };
   asciidoctor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b2ajs3sabl0s27r7lhwkacw0yn0zfk4jpmidg9l8lzp2qlgjgbz";
+      sha256 = "1gjk9v83vw0pz4x0xqqnw231z9sgscm6vnacjw7hy5njkw8fskj9";
       type = "gem";
     };
-    version = "2.0.10";
+    version = "2.0.12";
   };
   asciidoctor-diagram = {
-    dependencies = ["asciidoctor"];
+    dependencies = ["asciidoctor" "asciidoctor-diagram-ditaamini" "asciidoctor-diagram-plantuml" "rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "095ar1hj96mi9vxnjjdkj7yzc3lp4wjxh4qsijx9inqflbcw7x71";
+      sha256 = "1fh73k306q1x4rzsly2fy1rdq1kpkdvs3r1084hgk0sh516ksc0s";
       type = "gem";
     };
-    version = "1.5.18";
+    version = "2.1.0";
+  };
+  asciidoctor-diagram-ditaamini = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08jwpyklcplmfcxs4z9z0b0la6xdwrnf9bk6c02y54502228bg6b";
+      type = "gem";
+    };
+    version = "0.13.1";
+  };
+  asciidoctor-diagram-plantuml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bxlkq3k775lhhnbs85cx8cbixhw7p70hnxrqnnig470h6jhmj0b";
+      type = "gem";
+    };
+    version = "1.2021.0";
   };
   asciidoctor-epub3 = {
-    dependencies = ["asciidoctor" "concurrent-ruby" "gepub" "thread_safe"];
+    dependencies = ["asciidoctor" "gepub" "mime-types"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "056yp0z64b1fhhkzz2kaiqsd11gpbgx2d1yjgq7cqma9c70bbxa5";
+      sha256 = "1fgi0rb8026k0a43wnanan6nzc8386azygmfl4zv7c9vram4nr6h";
       type = "gem";
     };
-    version = "1.5.0.alpha.9";
+    version = "1.5.0.alpha.19";
   };
   asciidoctor-mathematical = {
-    dependencies = ["asciidoctor" "mathematical" "ruby-enum"];
+    dependencies = ["asciidoctor" "asciimath" "mathematical"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1n6qhfp6xc5jlqkscr9g7zzp9f2cv28jzcqzawhl8vjgcny7i6j3";
+      sha256 = "1lxfq7qn3ql642pva6jh3h1abm9j9daxg5icfn1h73k6cjsmcisp";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "0.3.5";
   };
   asciidoctor-pdf = {
-    dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "thread_safe" "treetop"];
+    dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "thread_safe" "treetop" "ttfunk"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19rgi43abhkyv85r2gnwqq6kxwsn29hhv4clnnmln58d7s589n0j";
+      sha256 = "0k8hn9lrvr08grqx17x2vrllw5qmfh0j08wp56464w2pj279ka67";
       type = "gem";
     };
-    version = "1.5.0.alpha.18";
+    version = "1.5.4";
   };
   asciidoctor-revealjs = {
     dependencies = ["asciidoctor" "concurrent-ruby" "thread_safe"];
@@ -90,40 +110,40 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "084aq9frv4irzgd9ab3xad9i0ml9lb58w0wvg76gnwwr51plbpp4";
+      sha256 = "03vmbcc3x059h17ry4qwk1p0yar9wgh87l2qssi307gy45cjw2mq";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.1.0";
   };
   asciimath = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1aapydwwkydbwgz07n7ma3a5jy9n3v0shy6q6j8mi4wr3crhx45a";
+      sha256 = "1yq9av7rh493xqmx4cq3fjl0c6d8njxp53qw4hg2d3xkyn2lyfc5";
       type = "gem";
     };
-    version = "2.0.1";
+    version = "2.0.2";
   };
   coderay = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.3";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.8";
   };
   css_parser = {
     dependencies = ["addressable"];
@@ -131,10 +151,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y4vc018b5mzp7winw4pbb22jk0dpxp22pzzxq7w0rgvfxzi89pd";
+      sha256 = "0xs4ind9xd099rb52b73pch8ha143dl8bhivqsbba4wrvxpbx751";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.9.0";
   };
   gepub = {
     dependencies = ["nokogiri" "rubyzip"];
@@ -142,10 +162,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kg2h0mscb2hq6l3wjzq5fp5vw4552nglq8n9pawm7bzacf1gzyf";
+      sha256 = "01q33rkvqrhxqm8zgkhgcqhrqdfzgxswxfgiagdjxw67qdn1pids";
       type = "gem";
     };
-    version = "1.0.4";
+    version = "1.0.13";
   };
   hashery = {
     groups = ["default"];
@@ -163,10 +183,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
+      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.8.9";
   };
   mathematical = {
     dependencies = ["ruby-enum"];
@@ -174,10 +194,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19f9icaixg60wl8dvcxp6glbm5vpx2rsyx53sfk2rvwnzgsr42qh";
+      sha256 = "05mn68gxhfa37qsnzsmdqaa005hf511j5lga76qsrad2gcnhan1b";
       type = "gem";
     };
-    version = "1.6.12";
+    version = "1.6.14";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -195,41 +215,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
+      sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
       type = "gem";
     };
-    version = "3.2020.1104";
+    version = "3.2021.0225";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
-      type = "gem";
-    };
-    version = "2.4.0";
-  };
-  multi_json = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "2.5.0";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.3";
+    version = "1.11.1";
   };
   pdf-core = {
     groups = ["default"];
@@ -247,10 +257,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0aas2f5clgwpgryywrh4gihdi10afx3kbyfs1n31cinri02psd43";
+      sha256 = "1cxladxy18dhk4a3b263crq8hyxb3q0c7ifxrb5nr1bs6y0pk8i6";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.4.2";
   };
   polyglot = {
     groups = ["default"];
@@ -279,10 +289,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nc810wdpa93z162yzjgvf7mdanfxm4bjwinjjxx5smq6wdvhdqi";
+      sha256 = "1ivkdf8rdf92hhy97vbmc2a4w97vcvqd58jcj4z9hz3hfsb1526w";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.5.0";
   };
   prawn-svg = {
     dependencies = ["css_parser" "prawn"];
@@ -290,10 +300,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wwfv6lw2diywgjp15pd3awpr8g7xkjfi10jzhmvziikakzsz6gj";
+      sha256 = "1rb5hmjqc4hvy6liw9y51y6glbw66f09r09w0nvdfxhfi2kka16l";
       type = "gem";
     };
-    version = "0.29.1";
+    version = "0.31.0";
   };
   prawn-table = {
     dependencies = ["prawn"];
@@ -312,41 +322,60 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gs894sj9zdlwx59h3rk4p0l3y8r18p22zhnfiyx9lngsa56gcrj";
+      sha256 = "1w9irn3rllm992c6j7fsx81gg539i7yy8zfddyw7q53hnlys0yhi";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.1.2";
   };
   public_suffix = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
       type = "gem";
     };
-    version = "3.1.1";
+    version = "4.0.6";
   };
   "pygments.rb" = {
-    dependencies = ["multi_json"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbvnwvz770ambm4d6lxgc2097rydn5rcc5d6986bnkzyxfqqjnv";
+      sha256 = "1736rbjgin97p3vjknz60p6dl66c936djwsk7wnwvwmav8r1nx0y";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "2.1.0";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      type = "gem";
+    };
+    version = "3.2.4";
   };
   rouge = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yfhazlhjc4abgzhkgq8zqmdphvkh52211widkl4zhsbhqh8wg2q";
+      sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
       type = "gem";
     };
-    version = "3.5.1";
+    version = "3.26.0";
   };
   ruby-enum = {
     dependencies = ["i18n"];
@@ -354,10 +383,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx";
+      sha256 = "1pys90hxylhyg969iw9lz3qai5lblf8xwbdg1g5aj52731a9k83p";
       type = "gem";
     };
-    version = "0.7.2";
+    version = "0.9.0";
   };
   ruby-rc4 = {
     groups = ["default"];
@@ -374,10 +403,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w9gw28ly3zyqydnm8phxchf4ymyjl2r7zf7c12z8kla10cpmhlc";
+      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
       type = "gem";
     };
-    version = "1.2.3";
+    version = "2.3.0";
   };
   safe_yaml = {
     groups = ["default"];
@@ -405,10 +434,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wpl5z33796nz2ah44waflrd1girbra281d9i3m9nz4ylg1ljg5b";
+      sha256 = "0697qz1akblf8r3wi0s2dsjh468hfsd57fb0mrp93z35y2ni6bhh";
       type = "gem";
     };
-    version = "1.5.3";
+    version = "1.6.11";
   };
   ttfunk = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/typesetting/biblatex-check/default.nix b/nixpkgs/pkgs/tools/typesetting/biblatex-check/default.nix
index 606e07730e4f..63bf7cf1d71a 100644
--- a/nixpkgs/pkgs/tools/typesetting/biblatex-check/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/biblatex-check/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python }:
+{ lib, stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation {
   pname = "biblatex-check";
@@ -11,7 +11,9 @@ stdenv.mkDerivation {
     sha256 = "1bq0yqckhssazwkivipdjmn1jpsf301i4ppyl88qhc5igx39wg25";
   };
 
-  buildInputs = [ python ];
+  buildInputs = [ python3 ];
+
+  strictDeps = true;
 
   installPhase = ''
     install -Dm755 biblatex_check.py $out/bin/biblatex-check
diff --git a/nixpkgs/pkgs/tools/typesetting/docbook2odf/default.nix b/nixpkgs/pkgs/tools/typesetting/docbook2odf/default.nix
index 91d8f6f8d32f..affa12c40190 100644
--- a/nixpkgs/pkgs/tools/typesetting/docbook2odf/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/docbook2odf/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "10k44g0qqa37k30pfj8vz95j6zdzz0nmnqjq1lyahfs2h4glzgwb";
   };
 
-  buildInputs = [ perlPackages.perl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perlPackages.perl ];
 
   installPhase = ''
     mkdir -p "$out/bin/"
diff --git a/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix b/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix
index fdfa05f20c1f..4b9e571c0ad3 100644
--- a/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
   # writes its output to stdout instead of creating a file.
   patches = [ ./db2x_texixml-to-stdout.patch ];
 
-  buildInputs = [ texinfo groff libxml2 libxslt makeWrapper opensp libiconv ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ texinfo groff libxml2 libxslt opensp libiconv ]
     ++ (with perlPackages; [ perl XMLSAX XMLParser XMLNamespaceSupport ]);
 
   postConfigure = ''
diff --git a/nixpkgs/pkgs/tools/typesetting/fop/default.nix b/nixpkgs/pkgs/tools/typesetting/fop/default.nix
index a572ce216ee6..1c5e7b0079df 100644
--- a/nixpkgs/pkgs/tools/typesetting/fop/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/fop/default.nix
@@ -2,22 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "fop";
-  version = "2.1";
+  version = "2.6";
 
   src = fetchurl {
     url = "mirror://apache/xmlgraphics/fop/source/${pname}-${version}-src.tar.gz";
-    sha256 = "165rx13q47l6qc29ppr7sg1z26vw830s3rkklj5ap7wgvy0ivbz5";
+    sha256 = "145qph3c0m4bmb342qxq1hwsg594lndmfs9ga1v7pk53s34sckq8";
   };
 
   buildInputs = [ ant jdk ];
 
-  buildPhase = "ant";
+  # build only the "package" target, which generates the fop command.
+  buildPhase = ''
+     export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
+     ant -f fop/build.xml package
+  '';
 
   installPhase = ''
     mkdir -p $out/bin $out/lib $out/share/doc/fop
-
-    cp build/*.jar lib/*.jar $out/lib/
-    cp -r README examples/ $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.
diff --git a/nixpkgs/pkgs/tools/typesetting/kindlegen/default.nix b/nixpkgs/pkgs/tools/typesetting/kindlegen/default.nix
deleted file mode 100644
index 6afa246f8184..000000000000
--- a/nixpkgs/pkgs/tools/typesetting/kindlegen/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ fetchurl, lib, stdenv, unzip }:
-
-let
-  version = "2.9";
-  fileVersion = builtins.replaceStrings [ "." ] [ "_" ] version;
-
-  sha256 = {
-    x86_64-linux  = "15i20kzhdcmi94w7wfhqbl6j20v47cdakjm2mn3x8w495iddna4q";
-    i686-linux    = "15i20kzhdcmi94w7wfhqbl6j20v47cdakjm2mn3x8w495iddna4q";
-    x86_64-darwin = "0zniyn0s41fxqrajbgwxbcsj5vzf9m7a6yvdz2b11mphr00kpbbs";
-    i686-darwin   = "0zniyn0s41fxqrajbgwxbcsj5vzf9m7a6yvdz2b11mphr00kpbbs";
-    x86_64-cygwin = "02slfh1bbpijay4skj85cjiv7z43ha8vm5aa1lwiqjk86qbl1f3h";
-    i686-cygwin   = "02slfh1bbpijay4skj85cjiv7z43ha8vm5aa1lwiqjk86qbl1f3h";
-  }.${stdenv.hostPlatform.system} or (throw "system #{stdenv.hostPlatform.system.} is not supported");
-
-  url = {
-    x86_64-linux  = "http://kindlegen.s3.amazonaws.com/kindlegen_linux_2.6_i386_v${fileVersion}.tar.gz";
-    i686-linux    = "http://kindlegen.s3.amazonaws.com/kindlegen_linux_2.6_i386_v${fileVersion}.tar.gz";
-    x86_64-darwin = "http://kindlegen.s3.amazonaws.com/KindleGen_Mac_i386_v${fileVersion}.zip";
-    i686-darwin   = "http://kindlegen.s3.amazonaws.com/KindleGen_Mac_i386_v${fileVersion}.zip";
-    x86_64-cygwin = "http://kindlegen.s3.amazonaws.com/kindlegen_win32_v${fileVersion}.zip";
-    i686-cygwin   = "http://kindlegen.s3.amazonaws.com/kindlegen_win32_v${fileVersion}.zip";
-  }.${stdenv.hostPlatform.system} or (throw "system #{stdenv.hostPlatform.system.} is not supported");
-
-in stdenv.mkDerivation {
-  pname = "kindlegen";
-  inherit version;
-
-  src = fetchurl {
-    inherit url;
-    inherit sha256;
-  };
-
-  sourceRoot = ".";
-
-  nativeBuildInputs = lib.optional (lib.hasSuffix ".zip" url) unzip;
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/kindlegen/doc
-    install -m755 kindlegen $out/bin/kindlegen
-    cp -r *.txt *.html docs/* $out/share/kindlegen/doc
-  '';
-
-  meta = with lib; {
-    broken = true; # download links got removed
-    description = "Convert documents to .mobi for use with Amazon Kindle";
-    homepage = "https://www.amazon.com/gp/feature.html?docId=1000765211";
-    license = licenses.unfree;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "i686-darwin" "x86_64-cygwin" "i686-cygwin" ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/typesetting/kramdown-asciidoc/default.nix b/nixpkgs/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
index 655cd5a61e13..aa1d68e708af 100644
--- a/nixpkgs/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
@@ -1,6 +1,6 @@
 { lib, bundlerApp, makeWrapper,
   # Optional dependencies, can be null
-  epubcheck, kindlegen,
+  epubcheck,
   bundlerUpdateScript
 }:
 
@@ -17,8 +17,7 @@ let
 
     # postBuild = ''
     #     wrapProgram "$out/bin/asciidoctor-epub3" \
-    #       ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"} \
-    #       ${lib.optionalString (kindlegen != null) "--set KINDLEGEN ${kindlegen}/bin/kindlegen"}
+    #       ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"}
     #   '';
 
     # passthru = {
diff --git a/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix b/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
index 805373e8ee6c..13606521b882 100644
--- a/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lowdown";
-  version = "0.8.1";
+  version = "0.8.3";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
-    sha512 = "28kwj053lm3510cq7pg4rqx6linv5zphhm2h6r9icigclfq7j9ybnd7vqbn2v4ay0r8ghac5cjbqab5zy8cjlgllwhwsxg0dnk75x2i";
+    sha512 = "17q1jd2vih26yjjc4f9kg0qihrym8h0ydnli6z8p3h4rdwm4kfnvckrpkwminz5wl0k5z6d65dk7q4pynyfynp31d6s7q4yzkkqy6kc";
   };
 
   nativeBuildInputs = [ which ]
diff --git a/nixpkgs/pkgs/tools/typesetting/multimarkdown/default.nix b/nixpkgs/pkgs/tools/typesetting/multimarkdown/default.nix
index 45be07093223..6dfbc82af31d 100644
--- a/nixpkgs/pkgs/tools/typesetting/multimarkdown/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/multimarkdown/default.nix
@@ -1,25 +1,34 @@
-{ lib, stdenv, fetchgit, perl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, perl
+, pkg-config
+}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "multimarkdown";
-  version = "4.7.1";
+  version = "6.6.0";
 
-  src = fetchgit {
-    url = "https://github.com/fletcher/MultiMarkdown-4.git";
-    fetchSubmodules = true;
-    rev = "dd060247518715ef2b52be22b8f49d0e6d2c3a8b";
-    sha256 = "11f246r30q2fx4xw7valhqjj4mc4ydj5fv5f2kbl5h93y69q0bw7";
+  src = fetchFromGitHub {
+    owner = "fletcher";
+    repo = "MultiMarkdown-6";
+    rev = version;
+    hash = "sha256-emJbY0wucoc/GdjlILoeqjwuwuPpTjXTqZN0gUKOyLg=";
   };
 
-  preBuild = ''
-    substituteInPlace enumsToPerl.pl --replace "/usr/bin/perl" "${perl}/bin/perl"
+  postPatch = ''
+    patchShebangs tools/enumsToPerl.pl
   '';
 
-  buildInputs = [ stdenv ];
-  checkPhase = "make test-all";
-  installPhase = "make pkg-install prefix='' DESTDIR=$out; make pkg-install-scripts prefix='' DESTDIR=$out";
+  nativeBuildInputs = [
+    cmake
+    perl
+    pkg-config
+  ];
 
   meta = with lib; {
+    homepage = "https://fletcher.github.io/MultiMarkdown-6/introduction.html";
     description = "A derivative of Markdown that adds new syntax features";
     longDescription = ''
       MultiMarkdown is a lightweight markup language created by
@@ -30,23 +39,20 @@ stdenv.mkDerivation {
 
       It adds the following features to Markdown:
 
-      footnotes
-      tables
-      citations and bibliography (works best in LaTeX using BibTeX)
-      math support
-      automatic cross-referencing ability
-      smart typography, with support for multiple languages
-      image attributes
-      table and image captions
-      definition lists
-      glossary entries (LaTeX only)
-      document metadata (e.g. title, author, date, etc.)
+      - footnotes
+      - tables
+      - citations and bibliography (works best in LaTeX using BibTeX)
+      - math support
+      - automatic cross-referencing ability
+      - smart typography, with support for multiple languages
+      - image attributes
+      - table and image captions
+      - definition lists
+      - glossary entries (LaTeX only)
+      - document metadata (e.g. title, author, date, etc.)
     '';
-    homepage = "https://fletcherpenney.net/multimarkdown/";
-    # licensed under GPLv2+ or MIT:
-    # https://raw.githubusercontent.com/fletcher/MultiMarkdown-4/master/LICENSE
-    license = with lib.licenses; [ gpl2Plus mit ];
+    license = with licenses; [ mit ];
     platforms = platforms.all;
-    maintainers = with lib.maintainers; [ lowfatcomputing ];
+    maintainers = with maintainers; [ AndersonTorres ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/typesetting/pdfsandwich/default.nix b/nixpkgs/pkgs/tools/typesetting/pdfsandwich/default.nix
index 10f8525da084..755ac6bb32a3 100644
--- a/nixpkgs/pkgs/tools/typesetting/pdfsandwich/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/pdfsandwich/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation {
     sha256 = "1420c33divch087xrr61lvyf975bapqkgjqaighl581i69nlzsm6";
   };
 
-  buildInputs = [ ocaml perl makeWrapper];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ocaml perl ];
   installPhase = ''
     mkdir -p $out/bin
     cp -p pdfsandwich $out/bin
diff --git a/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix b/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix
index 1b22b781d549..1e6c86c19923 100644
--- a/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchFromSourcehut }:
 
 stdenv.mkDerivation rec {
   pname = "scdoc";
   version = "1.11.1";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz";
-    sha256 = "007pm3gspvya58cwb12wpnrm9dq5p28max2s0b2y9rq80nqgqag5";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = version;
+    sha256 = "1g37j847j3h4a4qbbfbr6vvsxpifj9v25jgv25nd71d1n0dxlhvk";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/typesetting/sile/default.nix b/nixpkgs/pkgs/tools/typesetting/sile/default.nix
index eef7768be8fd..92062b8eac8a 100644
--- a/nixpkgs/pkgs/tools/typesetting/sile/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/sile/default.nix
@@ -39,11 +39,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sile";
-  version = "0.10.14";
+  version = "0.10.15";
 
   src = fetchurl {
     url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "100f6iangpiwlv8k55d134w856r0xwsgw90s1rkkmqa5syziwni5";
+    sha256 = "0p1w3s6j34qi93aycqmqggfm277n90z90nlmm1j3qizxxwq5gda9";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/typesetting/sshlatex/default.nix b/nixpkgs/pkgs/tools/typesetting/sshlatex/default.nix
index 07c972420ab5..8a5b4811d770 100644
--- a/nixpkgs/pkgs/tools/typesetting/sshlatex/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/sshlatex/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0kaah8is74zba9373xccmsxmnnn6kh0isr4qpg21x3qhdzhlxl7q";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = let
     binPath = lib.makeBinPath [ openssh perl gnutar bash inotify-tools ];
diff --git a/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix b/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
index 75874d21e87b..1145fabf4860 100644
--- a/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tectonic";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "tectonic-typesetting";
     repo = "tectonic";
     rev = "tectonic@${version}";
-    sha256 = "1p93428ln3sfsflc7spjpfcgy81c4z5y0xhwv5mkgzf55g8nrin1";
+    sha256 = "sha256-XQ3KRM12X80JPFMnQs//8ZJEv+AV1sr3BH0Nw/PH0HQ=";
   };
 
-  cargoSha256 = "0jzngl1iwrq20cx3l0mwdrrddvyw977rwb75nz1k4hkxjnicc1ga";
+  cargoSha256 = "sha256-YOg4W933qUBcvo2y3nmvEWqxTfqWKDi3GCoTJWLnXxk=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/typesetting/ted/default.nix b/nixpkgs/pkgs/tools/typesetting/ted/default.nix
index 937e3ffd7d71..07e89f9f8edd 100644
--- a/nixpkgs/pkgs/tools/typesetting/ted/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/ted/default.nix
@@ -58,7 +58,8 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  buildInputs = [ pkg-config zlib pcre xorg.xlibsWrapper xorg.libXpm libjpeg libtiff libpng gtk2 libpaper makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ pkg-config zlib pcre xorg.xlibsWrapper xorg.libXpm libjpeg libtiff libpng gtk2 libpaper ];
 
   meta = with lib; {
     description = "An easy rich text processor";
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix
index 989f49b6d9a8..dbd4fed1474d 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python2, libxslt, texlive
+{ lib, stdenv, fetchurl, python3, libxslt, texlive
 , enableAllFeatures ? false, imagemagick ? null, transfig ? null, inkscape ? null, fontconfig ? null, ghostscript ? null
 
 , tex ? texlive.combine { # satisfy all packages that ./configure mentions
@@ -21,14 +21,15 @@ assert enableAllFeatures ->
   ghostscript != null;
 
 stdenv.mkDerivation rec {
-  name = "dblatex-0.3.11";
+  pname = "dblatex";
+  version = "0.3.12";
 
   src = fetchurl {
-    url = "mirror://sourceforge/dblatex/${name}.tar.bz2";
-    sha256 = "0rp1bc2lgisigscq1i7zxfd2qdaxxxld6khbcxss4pq7fpi9fzkv";
+    url = "mirror://sourceforge/dblatex/${pname}3-${version}.tar.bz2";
+    sha256 = "0yd09nypswy3q4scri1dg7dr99d7gd6r2dwx0xm81l9f4y32gs0n";
   };
 
-  buildInputs = [ python2 libxslt tex ]
+  buildInputs = [ python3 libxslt tex ]
     ++ lib.optionals enableAllFeatures [ imagemagick transfig ];
 
   # TODO: dblatex tries to execute texindy command, but nixpkgs doesn't have
@@ -58,7 +59,7 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   installPhase = ''
-    ${python2.interpreter} ./setup.py install --prefix="$out" --use-python-path --verbose
+    ${python3.interpreter} ./setup.py install --prefix="$out" --use-python-path --verbose
   '';
 
   passthru = { inherit tex; };
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/lkproof/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/lkproof/default.nix
index d5b6a7f9f973..4f896ef32baf 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/lkproof/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/lkproof/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1qjkjhpc4rm62qxn18r83zdlwnj1wvnkcpdiqlv7w4bakh0gvjly";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = "
     mkdir -p $out/share/texmf-nix/tex/generic/lkproof
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix b/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix
index 42320b49b3d8..b33f05d34a78 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "0kj769hyp4z2zmdv3f8xv443wcfqn5nkkbzxzqgfxjizlz81aav7";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   # Multiple files problem
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/pgfplots/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/pgfplots/default.nix
index aecf32c58747..fe928615eb42 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/pgfplots/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/pgfplots/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1xajrmq35i0qlsfwydy5zzg6f1jg88hqqh5b3xsmglzrarnllbdi";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   unpackPhase = "unzip $src";
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix
new file mode 100644
index 000000000000..4d02e2e1acfe
--- /dev/null
+++ b/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix
@@ -0,0 +1,27 @@
+{ rustPlatform, fetchFromGitHub, gtk3, pkg-config, glib, lib }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "tex-match";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "zoeyfyi";
+    repo = "TeX-Match";
+    rev = "v${version}";
+    sha256 = "1yb81j7mbqqb8jcn78dx4ydp7ncbzvaczkli6cqay5jf5j6dbk1z";
+  };
+
+  nativeBuildInputs = [ pkg-config glib ];
+
+  buildInputs = [ gtk3 ];
+
+  cargoSha256 = "1sm2fd3dhs59rvmfjzrfz0qwqzyc9dllb8ph0wc2x0r3px16c71x";
+
+  meta = with lib; {
+    description = "Search through over 1000 different LaTeX symbols by sketching. A desktop version of detexify";
+    homepage = "https://tex-match.zoey.fyi/";
+    license = licenses.mit;
+    maintainers = [ maintainers.bootstrap-prime ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
index fd1815efa945..fb9b748b5d0a 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -270,8 +270,8 @@ dvipng = stdenv.mkDerivation {
 
   inherit (common) src;
 
-  nativeBuildInputs = [ perl pkg-config ];
-  buildInputs = [ core/*kpathsea*/ zlib libpng freetype gd ghostscript makeWrapper ];
+  nativeBuildInputs = [ perl pkg-config makeWrapper ];
+  buildInputs = [ core/*kpathsea*/ zlib libpng freetype gd ghostscript ];
 
   preConfigure = ''
     cd texk/dvipng
@@ -281,12 +281,9 @@ dvipng = stdenv.mkDerivation {
   configureFlags = common.configureFlags
     ++ [ "--with-system-kpathsea" "--with-gs=yes" "--disable-debug" ];
 
-  enableParallelBuilding = true;
+  GS="${ghostscript}/bin/gs";
 
-  # I didn't manage to hardcode gs location by configureFlags
-  postInstall = ''
-    wrapProgram "$out/bin/dvipng" --prefix PATH : '${ghostscript}/bin'
-  '';
+  enableParallelBuilding = true;
 };
 
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
index 9993263c1f6f..f553908d9ccb 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
@@ -52,6 +52,9 @@ in (buildEnv {
 
   buildInputs = [ makeWrapper ] ++ pkgList.extraInputs;
 
+  # This is set primarily to help find-tarballs.nix to do its job
+  passthru.packages = pkgList.all;
+
   postBuild = ''
     cd "$out"
     mkdir -p ./bin
diff --git a/nixpkgs/pkgs/tools/video/bento4/default.nix b/nixpkgs/pkgs/tools/video/bento4/default.nix
index d096f834ba1b..6ee7c844994e 100644
--- a/nixpkgs/pkgs/tools/video/bento4/default.nix
+++ b/nixpkgs/pkgs/tools/video/bento4/default.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ makefu ];
     broken = stdenv.isAarch64;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/video/gopro/default.nix b/nixpkgs/pkgs/tools/video/gopro/default.nix
index ff2889b9b91e..71b85b845ebf 100644
--- a/nixpkgs/pkgs/tools/video/gopro/default.nix
+++ b/nixpkgs/pkgs/tools/video/gopro/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Command line interface for processing media filmed on GoPro HERO 3, 4, 5, 6, and 7 cameras";
     homepage = "https://github.com/KonradIT/gopro-linux";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.gpl3;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/nixpkgs/pkgs/tools/video/harvid/default.nix b/nixpkgs/pkgs/tools/video/harvid/default.nix
new file mode 100644
index 000000000000..812457f35cbd
--- /dev/null
+++ b/nixpkgs/pkgs/tools/video/harvid/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchFromGitHub, ffmpeg, libjpeg, libpng, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "harvid";
+  version = "0.8.3";
+
+  src = fetchFromGitHub {
+    owner = "x42";
+    repo = "harvid";
+    rev = "v${version}";
+    sha256 = "0l1plfsfh2ixhlzg3hqqvjj42z7g422718a9kgbh7b4p882n71x7";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ ffmpeg libjpeg libpng ];
+
+  makeFlags = [ "DESTDIR=$(out)" "libdir=\"/lib\"" ];
+
+  postInstall = ''
+    mkdir -p $out/bin
+    mv $out/usr/local/bin/* $out/bin
+    mv $out/usr/local/share $out/
+    rm -r $out/usr
+  '';
+
+  meta = with lib; {
+    description =
+      "Decodes still images from movie files and serves them via HTTP";
+    longDescription = ''
+      harvid's intended use-case is to efficiently provide frame-accurate data
+      and act as second level cache for rendering the video-timeline in Ardour,
+      but it is not limited to that: it has applications for any task that
+      requires a high-performance frame-accurate online image extraction
+      processor.
+    '';
+    homepage = "http://x42.github.io/harvid";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mitchmindtree ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/video/play-with-mpv/default.nix b/nixpkgs/pkgs/tools/video/play-with-mpv/default.nix
new file mode 100644
index 000000000000..d9ab0493160e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/video/play-with-mpv/default.nix
@@ -0,0 +1,35 @@
+{ lib, python3Packages, fetchFromGitHub, fetchurl, youtube-dl, git }:
+
+let
+  install_freedesktop = fetchurl {
+    url = "https://github.com/thann/install_freedesktop/tarball/2673e8da4a67bee0ffc52a0ea381a541b4becdd4";
+    sha256 = "0j8d5jdcyqbl5p6sc1ags86v3hr2sghmqqi99d1mvc064g90ckrv";
+  };
+in
+python3Packages.buildPythonApplication rec {
+  pname = "play-with-mpv";
+  version = "unstable-2020-05-18";
+
+  src = fetchFromGitHub {
+      owner = "thann";
+      repo = "play-with-mpv";
+      rev = "656448e03fe9de9e8bd21959f2a3b47c4acb8c3e";
+      sha256 = "1qma8b3lnkdhxdjsnrq7n9zgy53q62j4naaqqs07kjxbn72zb4p4";
+  };
+
+  nativeBuildInputs = [ git ];
+  propagatedBuildInputs = [ youtube-dl ];
+
+  postPatch = ''
+    substituteInPlace setup.py --replace \
+    '"https://github.com/thann/install_freedesktop/tarball/master#egg=install_freedesktop-0.2.0"' \
+    '"file://${install_freedesktop}#egg=install_freedesktop-0.2.0"'
+  '';
+
+  meta = with lib; {
+    description = "Chrome extension and python server that allows you to play videos in webpages with MPV instead";
+    homepage = "https://github.com/Thann/play-with-mpv";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dawidsowa ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/video/rav1e/default.nix b/nixpkgs/pkgs/tools/video/rav1e/default.nix
index ca3fd72e878d..16699e15ba6e 100644
--- a/nixpkgs/pkgs/tools/video/rav1e/default.nix
+++ b/nixpkgs/pkgs/tools/video/rav1e/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, rustPlatform, fetchurl, fetchFromGitHub, lib, nasm, cargo-c }:
+{ stdenv, rustPlatform, fetchurl, fetchFromGitHub, lib, nasm, cargo-c, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rav1e";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = stdenv.mkDerivation rec {
     name = "${pname}-${version}-source";
@@ -11,12 +11,12 @@ rustPlatform.buildRustPackage rec {
       owner = "xiph";
       repo = "rav1e";
       rev = "v${version}";
-      sha256 = "09w4476x6bdmh9pv4lchrzvfvbjvxxraa9f4dlbwgli89lcg9fcf";
+      sha256 = "0jnq5a3fv6fzzbmprzfxidlcwwgblkwwm0135cfw741wjv7f7h6r";
     };
 
     cargoLock = fetchurl {
       url = "https://github.com/xiph/rav1e/releases/download/v${version}/Cargo.lock";
-      sha256 = "0rkyi010z6qmwdpvzlzyrrhs8na929g11lszhbqx5y0gh3y5nyik";
+      sha256 = "14fi9wam9rs5206rvcd2f3sjpzq41pnfml14w74wn2ws3gpi46zn";
     };
 
     installPhase = ''
@@ -26,8 +26,9 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "1iza2cws28hd4a3q90mc90l8ql4bsgapdznfr6bl65cjam43i5sg";
+  cargoSha256 = "1j92prjyr86wyx58h10xq9c9z28ky86h291x65w7qrxpj658aiz1";
   nativeBuildInputs = [ nasm cargo-c ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   postBuild = ''
     cargo cbuild --release --frozen --prefix=${placeholder "out"}
diff --git a/nixpkgs/pkgs/tools/video/vcsi/default.nix b/nixpkgs/pkgs/tools/video/vcsi/default.nix
index 84e6c2e6d41d..f4f3043f34fb 100644
--- a/nixpkgs/pkgs/tools/video/vcsi/default.nix
+++ b/nixpkgs/pkgs/tools/video/vcsi/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "vcsi";
-  version = "7.0.12";
+  version = "7.0.13";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0dks0yr2a0cpr32vrwhdrhsb4qyj7rz1yv44fjbr8z8j8p84yjx5";
+    sha256 = "01qwbb2l8gwf622zzhh0kzdzw3njvsdwmndwn01i9bn4qm5cas8r";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -17,6 +17,9 @@ python3Packages.buildPythonApplication rec {
     parsedatetime
   ];
 
+  doCheck = false;
+  pythonImportsCheck = [ "vcsi" ];
+
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ffmpeg ]}" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/video/xjadeo/default.nix b/nixpkgs/pkgs/tools/video/xjadeo/default.nix
new file mode 100644
index 000000000000..bcd6d5601c0f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/video/xjadeo/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, autoreconfHook, fetchFromGitHub, ffmpeg, freetype, libGLU
+, libjack2, liblo, libX11, libXv, pkg-config, portmidi, xorg }:
+
+stdenv.mkDerivation rec {
+  pname = "xjadeo";
+  version = "0.8.10";
+
+  src = fetchFromGitHub {
+    owner = "x42";
+    repo = "xjadeo";
+    rev = "v${version}";
+    sha256 = "0dma4cjgbrpy16x63zvfr0xss4lryl0zw7nvixvhq2f6z8day1ds";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  buildInputs = [
+    ffmpeg
+    libjack2
+    libX11
+    xorg.libXext
+    xorg.libXpm
+    # The following are recommended in the README, but are seemingly
+    # unnecessary for a successful build. That said, the result of including
+    # these in the build process is possibly required at runtime in some cases,
+    # but I've not the time to test thoroughly for these cases. Should
+    # consider investigating and splitting these into options in the future.
+    freetype
+    libGLU
+    liblo
+    libXv
+    portmidi
+  ];
+
+  meta = with lib; {
+    description = "The X Jack Video Monitor";
+    longDescription = ''
+      Xjadeo is a software video player that displays a video-clip in sync with
+      an external time source (MTC, LTC, JACK-transport). Xjadeo is useful in
+      soundtrack composition, video monitoring or any task that requires to
+      synchronizing movie frames with external events.
+    '';
+    homepage = "http://xjadeo.sourceforge.net";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mitchmindtree ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/video/yamdi/default.nix b/nixpkgs/pkgs/tools/video/yamdi/default.nix
index 32620fe98c5a..92737e27ee30 100644
--- a/nixpkgs/pkgs/tools/video/yamdi/default.nix
+++ b/nixpkgs/pkgs/tools/video/yamdi/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "4a6630f27f6c22bcd95982bf3357747d19f40bd98297a569e9c77468b756f715";
   };
 
-  buildFlags = [ "CC=cc" ];
+  buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     install -D {,$out/bin/}yamdi
diff --git a/nixpkgs/pkgs/tools/virtualization/aws/default.nix b/nixpkgs/pkgs/tools/virtualization/aws/default.nix
index 4766be90a6db..d3a5cbf10e1a 100644
--- a/nixpkgs/pkgs/tools/virtualization/aws/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/aws/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, perl, curl }:
 
 stdenv.mkDerivation {
-  name = "aws-1.75";
+  name = "aws-2019.06.18";
 
   src = fetchurl {
-    url = "https://raw.github.com/timkay/aws/2f2ff99f9f5111ea708ae6cd14d20e264748e72b/aws";
-    sha256 = "0d5asv73a58yb1bb1jpsw3c7asd62y86z5fwpg4llhjzkx79maj6";
+    url = "https://raw.github.com/timkay/aws/ac68eb5191c52f069b9aa0c9a99808f8a4430833/aws";
+    sha256 = "02bym9wicqpdr7mdim13zw5ssh97xfswzab9q29rsbg7058ddbil";
   };
 
   buildInputs = [ perl ];
diff --git a/nixpkgs/pkgs/tools/virtualization/awsebcli/default.nix b/nixpkgs/pkgs/tools/virtualization/awsebcli/default.nix
index 796ea36eacfd..1c9e81492323 100644
--- a/nixpkgs/pkgs/tools/virtualization/awsebcli/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/awsebcli/default.nix
@@ -92,5 +92,6 @@ in with localPython.pkgs; buildPythonApplication rec {
     description = "A command line interface for Elastic Beanstalk";
     maintainers = with maintainers; [ eqyiel ];
     license = licenses.asl20;
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix b/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
index 24ecb7f99c37..dfd3321b6b62 100644
--- a/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
@@ -8,7 +8,6 @@
 , requests
 , jsonschema
 , jsonpatch
-, pytest
 , httpretty
 , dmidecode
 , pytestCheckHook
@@ -17,11 +16,9 @@
 , openssh
 }:
 
-let version = "20.3";
-
-in buildPythonApplication {
+buildPythonApplication rec {
   pname = "cloud-init";
-  inherit version;
+  version = "20.3";
   namePrefix = "";
 
   src = fetchFromGitHub {
@@ -81,10 +78,10 @@ in buildPythonApplication {
     export TMPDIR=/tmp
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://cloudinit.readthedocs.org";
     description = "Provides configuration and customization of cloud instance";
-    maintainers = [ lib.maintainers.madjar lib.maintainers.phile314 ];
-    platforms = lib.platforms.all;
+    maintainers = with maintainers; [ madjar phile314 ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/virtualization/cri-tools/default.nix b/nixpkgs/pkgs/tools/virtualization/cri-tools/default.nix
index a70eb45b0677..6e29a5a8d833 100644
--- a/nixpkgs/pkgs/tools/virtualization/cri-tools/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/cri-tools/default.nix
@@ -22,16 +22,20 @@ buildGoModule rec {
   nativeBuildInputs = [ installShellFiles ];
 
   buildPhase = ''
+    runHook preBuild
     make binaries VERSION=${version}
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     make install BINDIR=$out/bin
 
     for shell in bash fish zsh; do
       $out/bin/crictl completion $shell > crictl.$shell
       installShellCompletion crictl.$shell
     done
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/virtualization/ec2-ami-tools/default.nix b/nixpkgs/pkgs/tools/virtualization/ec2-ami-tools/default.nix
index eafd740b0650..8e6d7b06d170 100644
--- a/nixpkgs/pkgs/tools/virtualization/ec2-ami-tools/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/ec2-ami-tools/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 
   version = "1.5.7";
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/ec2-downloads/${pname}-${version}.zip";
diff --git a/nixpkgs/pkgs/tools/virtualization/ec2-api-tools/default.nix b/nixpkgs/pkgs/tools/virtualization/ec2-api-tools/default.nix
index 8e3ab0d9f28a..475b97abdcc1 100644
--- a/nixpkgs/pkgs/tools/virtualization/ec2-api-tools/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/ec2-api-tools/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0figmvcm82ghmpz3018ihysz8zpxpysgbpdx7rmciq9y80qbw6l5";
   };
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   installPhase =
     ''
diff --git a/nixpkgs/pkgs/tools/virtualization/ec2instanceconnectcli/default.nix b/nixpkgs/pkgs/tools/virtualization/ec2instanceconnectcli/default.nix
index 4068d71383c3..16c10b5ae7f0 100644
--- a/nixpkgs/pkgs/tools/virtualization/ec2instanceconnectcli/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/ec2instanceconnectcli/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, boto3 }:
+{ lib, buildPythonPackage, fetchPypi, boto3, cryptography }:
 
 buildPythonPackage rec {
   pname = "ec2instanceconnectcli";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "sha256-VaCyCnEhSx1I3bNo57p0IXf92+tO1tT7KSUXzO1IyIU=";
   };
 
-  propagatedBuildInputs = [ boto3 ];
+  propagatedBuildInputs = [ boto3 cryptography ];
 
   # has no tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix b/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix
index be62ace4797b..ad187544aea2 100644
--- a/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix
@@ -1,6 +1,6 @@
 { lib
 , fetchFromGitHub
-, buildPythonApplication
+, buildPythonPackage
 , bash
 , bashInteractive
 , systemd
@@ -10,10 +10,9 @@
 , distro
 }:
 
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "google-compute-engine";
   version = "20190124";
-  namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
@@ -25,7 +24,6 @@ buildPythonApplication rec {
   buildInputs = [ bash ];
   propagatedBuildInputs = [ boto setuptools distro ];
 
-
   postPatch = ''
     for file in $(find google_compute_engine -type f); do
       substituteInPlace "$file" \
@@ -54,6 +52,7 @@ buildPythonApplication rec {
   '';
 
   doCheck = false;
+  pythonImportsCheck = [ "google_compute_engine" ];
 
   meta = with lib; {
     description = "Google Compute Engine tools and services";
diff --git a/nixpkgs/pkgs/tools/virtualization/nixos-container/nixos-container.pl b/nixpkgs/pkgs/tools/virtualization/nixos-container/nixos-container.pl
index 02ad6af90daa..b399b3d69174 100755
--- a/nixpkgs/pkgs/tools/virtualization/nixos-container/nixos-container.pl
+++ b/nixpkgs/pkgs/tools/virtualization/nixos-container/nixos-container.pl
@@ -458,7 +458,9 @@ elsif ($action eq "run") {
 
 elsif ($action eq "show-ip") {
     my $s = read_file($confFile) or die;
-    $s =~ /^LOCAL_ADDRESS=([0-9\.]+)(\/[0-9]+)?$/m or die "$0: cannot get IP address\n";
+    $s =~ /^LOCAL_ADDRESS=([0-9\.]+)(\/[0-9]+)?$/m
+        or $s =~ /^LOCAL_ADDRESS6=([0-9a-f:]+)(\/[0-9]+)?$/m
+        or die "$0: cannot get IP address\n";
     print "$1\n";
 }
 
diff --git a/nixpkgs/pkgs/tools/virtualization/nixos-shell/default.nix b/nixpkgs/pkgs/tools/virtualization/nixos-shell/default.nix
index 458996704a80..9f34fb99c754 100644
--- a/nixpkgs/pkgs/tools/virtualization/nixos-shell/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/nixos-shell/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nixos-shell";
-  version = "0.2";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixos-shell";
     rev = version;
-    sha256 = "sha256-C0K20X0P4SYQV+xtQAUcEiX32kr3IF1RoYdkJ4R3aRM=";
+    sha256 = "sha256-HoY2diusDHXwR0BjYwKR3svLz5LrviE03yxyjWG9oPQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix b/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix
index 511c61caf578..10a270b484c4 100644
--- a/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "shipyard";
-  version = "0.1.18";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shipyard-run";
     repo = pname;
-    sha256 = "sha256-ZrzW1sx0wCuaICONS3SR0VsqDj2ZUM53LaB5Wj1s9uc=";
+    sha256 = "sha256-zN9anlm+KbSbFKphC8mLaK+w8cOuOSKrVw5YGNCjEeA=";
   };
-  vendorSha256 = "sha256-eeR316CKlAqWxlYcPZVlP260NR7WHfmCVE3PywMay/w=";
+  vendorSha256 = "sha256-tTkPFftPDNXafIjAjNg6V6e/+2S/v5Do/YyAXPaGIqA=";
 
   buildFlagsArray = [
     "-ldflags=-s -w -X main.version=${version}"
diff --git a/nixpkgs/pkgs/tools/virtualization/xva-img/default.nix b/nixpkgs/pkgs/tools/virtualization/xva-img/default.nix
index b4992947657d..4fe2e5bbb40b 100644
--- a/nixpkgs/pkgs/tools/virtualization/xva-img/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/xva-img/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xva-img";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "eriklax";
     repo = "xva-img";
     rev = version;
-    sha256 = "1w3wrbrlgv7h2gdix2rmrmpjyla365kam5621a1aqjzwjqhjkwyq";
+    sha256 = "sha256-QHCKGsHSMT2P64No1IUCjenm1XZMSgEvsJGJOyHFZS8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/misc/clipman/default.nix b/nixpkgs/pkgs/tools/wayland/clipman/default.nix
index 80a0afe68d36..3a2c2ca6015c 100644
--- a/nixpkgs/pkgs/tools/misc/clipman/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/clipman/default.nix
@@ -1,4 +1,9 @@
-{ buildGoModule, fetchFromGitHub, lib, wl-clipboard, makeWrapper }:
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, wl-clipboard
+, makeWrapper
+}:
 
 buildGoModule rec {
   pname = "clipman";
@@ -24,9 +29,9 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/yory8/clipman";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ ma27 ];
     description = "A simple clipboard manager for Wayland";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ ma27 ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/kanshi/default.nix b/nixpkgs/pkgs/tools/wayland/kanshi/default.nix
index 90ee2a3446b5..c661c98a24bb 100644
--- a/nixpkgs/pkgs/tools/misc/kanshi/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/kanshi/default.nix
@@ -1,4 +1,12 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, scdoc, wayland }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, scdoc
+, wayland
+}:
 
 stdenv.mkDerivation rec {
   pname = "kanshi";
@@ -15,6 +23,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ wayland ];
 
   meta = with lib; {
+    homepage = "https://github.com/emersion/kanshi";
     description = "Dynamic display configuration tool";
     longDescription = ''
       kanshi allows you to define output profiles that are automatically enabled
@@ -24,8 +33,6 @@ stdenv.mkDerivation rec {
       kanshi can be used on Wayland compositors supporting the
       wlr-output-management protocol.
     '';
-    homepage = "https://github.com/emersion/kanshi";
-    downloadPage = "https://github.com/emersion/kanshi";
     license = licenses.mit;
     maintainers = with maintainers; [ balsoft ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/wayland/oguri/default.nix b/nixpkgs/pkgs/tools/wayland/oguri/default.nix
new file mode 100644
index 000000000000..458ea310a01d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/oguri/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, meson
+, ninja
+, cairo
+, gdk-pixbuf
+, wayland
+, wayland-protocols
+}:
+
+stdenv.mkDerivation rec {
+  pname = "oguri";
+  version = "unstable-2020-12-19";
+
+  src = fetchFromGitHub {
+    owner = "vilhalmer";
+    repo = pname;
+    rev = "6937fee10a9b0ef3ad8f94f606c0e0d9e7dec564";
+    sha256 = "sXNvpI/YPDPd2cXQAfRO4ut21gSCXxbo1DpaZmHJDYQ=";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja ];
+  buildInputs = [
+    cairo
+    gdk-pixbuf
+    wayland
+    wayland-protocols
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/vilhalmer/oguri/";
+    description = "A very nice animated wallpaper daemon for Wayland compositors";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/slurp/default.nix b/nixpkgs/pkgs/tools/wayland/slurp/default.nix
index ed4bb0037fbe..107ef68da565 100644
--- a/nixpkgs/pkgs/tools/misc/slurp/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/slurp/default.nix
@@ -1,5 +1,13 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config
-, cairo, libxkbcommon, wayland, wayland-protocols
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, cairo
+, libxkbcommon
+, wayland
+, wayland-protocols
 , buildDocs ? true, scdoc
 }:
 
@@ -33,7 +41,7 @@ stdenv.mkDerivation rec {
     description = "Select a region in a Wayland compositor";
     homepage = "https://github.com/emersion/slurp";
     license = licenses.mit;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ buffet ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/wayland/swaycwd/default.nix b/nixpkgs/pkgs/tools/wayland/swaycwd/default.nix
new file mode 100644
index 000000000000..36e223f8d4ca
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/swaycwd/default.nix
@@ -0,0 +1,45 @@
+{ lib, nim, stdenv, fetchFromGitLab
+, enableShells ? [ "bash" "zsh" "fish" "sh" "posh" ]
+}:
+
+stdenv.mkDerivation {
+    name = "swaycwd";
+    version = "0.0.1";
+
+    src = fetchFromGitLab {
+      owner = "cab404";
+      repo = "swaycwd";
+      rev = "aca81695ec2102b9bca6f5bae364f69a8b9d399f";
+      hash = "sha256-MkyY3wWByQo0l0J28xKDfGtxfazVPRyZHCObl9Fszh4=";
+    };
+
+    configurePhase = ''
+      runHook preConfigure
+      {
+        echo 'let enabledShells: seq[string] = @${builtins.toJSON enableShells}'
+        echo 'export enabledShells'
+      } > shells.nim
+      runHook postConfigure
+    '';
+
+    nativeBuildInputs = [ nim ];
+
+    buildPhase = ''
+      export HOME=$TMPDIR
+      nim c --opt:speed -d:release swaycwd.nim
+    '';
+
+    installPhase = ''
+      runHook preInstall
+      install -D -m555 -t $out/bin swaycwd
+      runHook postInstall
+    '';
+
+    meta = with lib; {
+      homepage = "https://gitlab.com/cab404/swaycwd";
+      description = "Returns cwd for shell in currently focused sway window, or home directory if cannot find shell";
+      maintainers = with maintainers; [ cab404 ];
+      platforms = platforms.linux;
+      license = licenses.gpl3Only;
+    };
+}
diff --git a/nixpkgs/pkgs/tools/wayland/swaykbdd/default.nix b/nixpkgs/pkgs/tools/wayland/swaykbdd/default.nix
new file mode 100644
index 000000000000..4584018596df
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/swaykbdd/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, json_c, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "swaykbdd";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "artemsen";
+    repo = "swaykbdd";
+    rev = "v${version}";
+    sha256 = "101mbf7pvm4ykmkh29g5xswrzdhdwq0rslzxqqfd5ksf1fphzgxd";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
+  buildInputs = [ json_c ];
+
+  meta = with lib; {
+    description = "Per-window keyboard layout for Sway";
+    homepage = "https://github.com/artemsen/swaykbdd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ivankovnatsky ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/wev/default.nix b/nixpkgs/pkgs/tools/wayland/wev/default.nix
index c1debfd924da..69288a1bc8ce 100644
--- a/nixpkgs/pkgs/tools/misc/wev/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wev/default.nix
@@ -1,15 +1,22 @@
-{ lib, stdenv, fetchurl
-, pkg-config, scdoc, wayland
-, wayland-protocols, libxkbcommon
+{ lib
+, stdenv
+, fetchFromSourcehut
+, pkg-config
+, scdoc
+, wayland
+, wayland-protocols
+, libxkbcommon
 }:
 
 stdenv.mkDerivation rec {
   pname = "wev";
   version = "1.0.0";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~sircmpwn/wev/archive/${version}.tar.gz";
-    sha256 = "0vlxdkb59v6nb10j28gh1a56sx8jk7ak7liwzv911kpmygnls03g";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = version;
+    sha256 = "0l71v3fzgiiv6xkk365q1l08qvaymxd4kpaya6r2g8yzkr7i2hms";
   };
 
   nativeBuildInputs = [ pkg-config scdoc wayland ];
@@ -18,14 +25,14 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
+    homepage = "https://git.sr.ht/~sircmpwn/wev";
     description = "Wayland event viewer";
     longDescription = ''
       This is a tool for debugging events on a Wayland window, analagous to the
       X11 tool xev.
     '';
-    homepage = "https://git.sr.ht/~sircmpwn/wev";
     license = licenses.mit;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ primeos ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/wl-clipboard/default.nix b/nixpkgs/pkgs/tools/wayland/wl-clipboard/default.nix
index 676ff03ad9b4..0bc195e96260 100644
--- a/nixpkgs/pkgs/tools/misc/wl-clipboard/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wl-clipboard/default.nix
@@ -1,5 +1,12 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config
-, wayland, wayland-protocols }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, wayland
+, wayland-protocols
+}:
 
 stdenv.mkDerivation rec {
   pname = "wl-clipboard";
@@ -16,10 +23,11 @@ stdenv.mkDerivation rec {
   buildInputs = [ wayland ];
 
   meta = with lib; {
-    description = "Command-line copy/paste utilities for Wayland";
     homepage = "https://github.com/bugaevc/wl-clipboard";
-    license = licenses.gpl3;
+    description = "Command-line copy/paste utilities for Wayland";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dywedir ];
     platforms = platforms.linux;
   };
 }
+# TODO: is wayland-protocols a nativeBuildInput or a buildInput?
diff --git a/nixpkgs/pkgs/tools/wayland/wlogout/default.nix b/nixpkgs/pkgs/tools/wayland/wlogout/default.nix
new file mode 100644
index 000000000000..2625405808cc
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/wlogout/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, meson
+, ninja
+, scdoc
+, gtk3
+, libxkbcommon
+, wayland
+, wayland-protocols
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wlogout";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "ArtsyMacaw";
+    repo = "wlogout";
+    rev = version;
+    sha256 = "cTscfx+erHVFHwwYpN7pADQWt5sq75sQSyXSP/H8kOs=";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja scdoc ];
+  buildInputs = [
+    gtk3
+    libxkbcommon
+    wayland
+    wayland-protocols
+  ];
+
+  postPatch = ''
+    substituteInPlace style.css \
+      --replace "/usr/share/wlogout" "$out/share/${pname}"
+
+    substituteInPlace main.c \
+      --replace "/etc/wlogout" "$out/etc/${pname}"
+  '';
+
+  mesonFlags = [
+    "--datadir=${placeholder "out"}/share"
+    "--sysconfdir=${placeholder "out"}/etc"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/ArtsyMacaw/wlogout";
+    description = "A wayland based logout menu";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
+# TODO: shell completions
diff --git a/nixpkgs/pkgs/tools/misc/wlr-randr/default.nix b/nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix
index b635316bf777..e2c941998a99 100644
--- a/nixpkgs/pkgs/tools/misc/wlr-randr/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, cmake, pkg-config, wayland }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, wayland
+}:
 
 stdenv.mkDerivation rec {
   pname = "wlr-randr";
@@ -11,13 +18,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-JeSxFXSFxcTwJz9EaLb18wtD4ZIT+ATeYM5OyDTJhDQ=";
   };
 
-  nativeBuildInputs = [ meson ninja cmake pkg-config ];
+  nativeBuildInputs = [ meson ninja pkg-config ];
   buildInputs = [ wayland ];
 
   meta = with lib; {
-    license = licenses.mit;
     description = "An xrandr clone for wlroots compositors";
     homepage = "https://github.com/emersion/wlr-randr";
+    license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix b/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix
index 692ddd37cf39..931f394d6890 100644
--- a/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, pkg-config, ninja, wayland
+{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, ninja, wayland
 , wayland-protocols
 }:
 
@@ -6,9 +6,11 @@ stdenv.mkDerivation rec {
   pname = "wlsunset";
   version = "0.1.0";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~kennylevinsen/wlsunset/archive/${version}.tar.gz";
-    sha256 = "0g7mk14hlbwbhq6nqr84452sbgcja3hdxsqf0vws4njhfjgqiv3q";
+  src = fetchFromSourcehut {
+    owner = "~kennylevinsen";
+    repo = pname;
+    rev = version;
+    sha256 = "12snizvf49y40cirhr2brgyldhsykv4k2gnln2sdrajqzhrc98v6";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja wayland ];
diff --git a/nixpkgs/pkgs/tools/misc/wob/default.nix b/nixpkgs/pkgs/tools/wayland/wob/default.nix
index e0622e5416aa..3567ed6eea41 100644
--- a/nixpkgs/pkgs/tools/misc/wob/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wob/default.nix
@@ -1,6 +1,13 @@
-{ lib, stdenv, fetchFromGitHub
-, meson, ninja, pkg-config, scdoc, wayland # wayland-scanner
-, wayland-protocols, libseccomp
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, scdoc
+, libseccomp
+, wayland # wayland-scanner
+, wayland-protocols
 }:
 
 stdenv.mkDerivation rec {
@@ -21,15 +28,15 @@ stdenv.mkDerivation rec {
   mesonFlags = lib.optional stdenv.isLinux "-Dseccomp=enabled";
 
   meta = with lib; {
+    inherit (src.meta) homepage;
     description = "A lightweight overlay bar for Wayland";
     longDescription = ''
       A lightweight overlay volume/backlight/progress/anything bar for Wayland,
       inspired by xob.
     '';
-    inherit (src.meta) homepage;
     changelog = "https://github.com/francma/wob/releases/tag/${version}";
     license = licenses.isc;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ primeos ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/wayland/wshowkeys/default.nix b/nixpkgs/pkgs/tools/wayland/wshowkeys/default.nix
index 1c095ca297a6..5f0025d6072b 100644
--- a/nixpkgs/pkgs/tools/wayland/wshowkeys/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wshowkeys/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchFromSourcehut
 , meson, pkg-config, wayland, ninja
 , cairo, libinput, pango, wayland-protocols, libxkbcommon
 }:
@@ -10,9 +10,11 @@ in stdenv.mkDerivation rec {
   pname = "wshowkeys-unstable";
   inherit version;
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~sircmpwn/wshowkeys/archive/${commit}.tar.gz";
-    sha256 = "0iplmw13jmc8d3m307kc047zq8yqwm42kw9fpm270562i3p0qk4d";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "wshowkeys";
+    rev = commit;
+    sha256 = "10kafdja5cwbypspwhvaxjz3hvf51vqjzbgdasl977193cvxgmbs";
   };
 
   nativeBuildInputs = [ meson pkg-config wayland ninja ];
diff --git a/nixpkgs/pkgs/top-level/aliases.nix b/nixpkgs/pkgs/top-level/aliases.nix
index 19b1cf91c1b1..5f170ab27648 100644
--- a/nixpkgs/pkgs/top-level/aliases.nix
+++ b/nixpkgs/pkgs/top-level/aliases.nix
@@ -92,6 +92,7 @@ mapAliases ({
   cargo-tree = throw "cargo-tree has been removed, use the builtin `cargo tree` command instead."; # added 2020-08-20
   casperjs = throw "casperjs has been removed, it was abandoned by upstream and broken.";
   catfish = xfce.catfish; # added 2019-12-22
+  ccnet = throw "ccnet has been removed because seafile does not depend on it anymore"; # added 2021-03-25
   cgmanager = throw "cgmanager was deprecated by lxc and therefore removed from nixpkgs."; # added 2020-06-05
   checkbashism = checkbashisms; # added 2016-08-16
   chronos = throw "chronos has been removed from nixpkgs, as it was unmaintained"; # added 2020-08-15
@@ -99,12 +100,23 @@ mapAliases ({
   cinepaint = throw "cinepaint has been removed from nixpkgs, as it was unmaintained"; # added 2019-12-10
   cifs_utils = cifs-utils; # added 2016-08
   ckb = ckb-next; # added 2018-10-21
+
+  # these are for convenience, not for backward compat and shouldn't expire
+  clang5Stdenv = lowPrio llvmPackages_5.stdenv;
+  clang6Stdenv = lowPrio llvmPackages_6.stdenv;
+  clang7Stdenv = lowPrio llvmPackages_7.stdenv;
+  clang8Stdenv = lowPrio llvmPackages_8.stdenv;
+  clang9Stdenv = lowPrio llvmPackages_9.stdenv;
+  clang10Stdenv = lowPrio llvmPackages_10.stdenv;
+  clang11Stdenv = lowPrio llvmPackages_11.stdenv;
+
   clangAnalyzer = clang-analyzer;  # added 2015-02-20
   clawsMail = claws-mail; # added 2016-04-29
   clutter_gtk = clutter-gtk; # added 2018-02-25
   codimd = hedgedoc; # added 2020-11-29
   compton = picom; # added 2019-12-02
   compton-git = compton; # added 2019-05-20
+  concurrencykit = libck; # added 2021-03
   conntrack_tools = conntrack-tools; # added 2018-05
   cool-old-term = cool-retro-term; # added 2015-01-31
   coprthr = throw "coprthr has been removed."; # added 2019-12-08
@@ -113,6 +125,15 @@ mapAliases ({
   cpp_ethereum = throw "cpp_ethereum has been removed; abandoned upstream."; # added 2020-11-30
   cryptol = throw "cryptol was removed due to prolonged broken build"; # added 2020-08-21
   cpp-gsl = microsoft_gsl; # added 2019-05-24
+  cudatoolkit_6 = throw "cudatoolkit_6 has been removed in favor of newer versions"; # added 2021-02-14
+  cudatoolkit_65 = throw "cudatoolkit_65 has been removed in favor of newer versions"; # added 2021-02-14
+  cudatoolkit_7 = throw "cudatoolkit_7 has been removed in favor of newer versions"; # added 2021-02-14
+  cudatoolkit_7_5 = throw "cudatoolkit_7_5 has been removed in favor of newer versions"; # added 2021-02-14
+  cudatoolkit_8 = throw "cudatoolkit_8 has been removed in favor of newer versions"; # added 2021-02-14
+  cudnn_cudatoolkit_7 = throw "cudnn_cudatoolkit_7 has been removed in favor of newer versions"; # added 2021-02-14
+  cudnn_cudatoolkit_7_5 = throw "cudnn_cudatoolkit_7_5 has been removed in favor of newer versions"; # added 2021-02-14
+  cudnn6_cudatoolkit_8 = throw "cudnn6_cudatoolkit_8 has been removed in favor of newer versions"; # added 2021-02-14
+  cudnn_cudatoolkit_8 = throw "cudnn_cudatoolkit_8 has been removed in favor of newer versions"; # added 2021-02-14
   cupsBjnp = cups-bjnp; # added 2016-01-02
   cups_filters = cups-filters; # added 2016-08
   cups-googlecloudprint = throw "Google Cloudprint is officially discontinued since Jan 2021, more info https://support.google.com/chrome/a/answer/9633006";
@@ -129,9 +150,6 @@ mapAliases ({
   dbus_glib = dbus-glib; # added 2018-02-25
   dbus_libs = dbus; # added 2018-04-25
   diffuse = throw "diffuse has been removed from nixpkgs, as it's unmaintained"; # added 2019-12-10
-  disnix = throw "disnix has been removed."; # added 2021-01-27
-  disnixos = throw "disnixos has been removed."; # added 2021-01-27
-  DisnixWebService = throw "DisnixWebService has been removed."; # added 2021-01-27
   dbus_tools = dbus.out; # added 2018-04-25
   deadbeef-mpris2-plugin = deadbeefPlugins.mpris2; # added 2018-02-23
   deadpixi-sam = deadpixi-sam-unstable;
@@ -148,8 +166,6 @@ mapAliases ({
   docker_compose = docker-compose; # 2018-11-10
   draftsight = throw "draftsight has been removed, no longer available as freeware"; # added 2020-08-14
   dvb_apps = throw "dvb_apps has been removed."; # added 2020-11-03
-  dydisnix = throw "dydisnix has been removed."; # added 2021-01-27
-  dysnomia = throw "dysnomia has been removed."; # added 2021-01-27
   dwarf_fortress = dwarf-fortress; # added 2016-01-23
   dwm-git = throw "dwm-git has been removed from nixpkgs, as it had no updates for 2 years not serving it's purpose."; # added 2021-02-07
   elasticmq = throw "elasticmq has been removed in favour of elasticmq-server-bin"; # added 2021-01-17
@@ -157,9 +173,7 @@ mapAliases ({
   emacsPackagesNgGen = emacsPackagesFor; # added 2018-08-18
   emacsPackagesNgFor = emacsPackagesFor; # added 2019-08-07
   emacsPackagesNg = emacs.pkgs; # added 2019-08-07
-  emacs26Packages = emacs26.pkgs; # added 2020-12-18
   emacs27Packages = emacs27.pkgs; # added 2020-12-18
-  emacs26WithPackages = emacs26.pkgs.withPackages; # added 2020-12-18
   emacs27WithPackages = emacs27.pkgs.withPackages; # added 2020-12-18
   emacsWithPackages = emacs.pkgs.withPackages; # added 2020-12-18
   emacsPackages = emacs.pkgs; # added 2020-12-18
@@ -211,6 +225,7 @@ mapAliases ({
   fwupdate = throw "fwupdate was merged into fwupd"; # added 2020-05-19
   g4py = python3Packages.geant4; # added 2020-06-06
   gccApple = throw "gccApple is no longer supported"; # added 2018-04-25
+  gdal_1_11 = throw "gdal_1_11 was removed. Use gdal instead."; # added 2021-04-03
   gdb-multitarget = gdb; # added 2017-11-13
   gdk_pixbuf = gdk-pixbuf; # added 2019-05-22
   gettextWithExpat = gettext; # 2016-02-19
@@ -225,6 +240,7 @@ mapAliases ({
   };
   glib_networking = glib-networking; # added 2018-02-25
   gmailieer = lieer; # added 2020-04-19
+  gmvault = throw "gmvault has been removed because it is unmaintained, mostly broken, and insecure"; # added 2021-03-08
   gnome-mpv = celluloid; # added 2019-08-22
   gnome15 = throw "gnome15 has been removed from nixpkgs, as it's unmaintained and depends on deprecated libraries."; # added 2019-12-10
   gmic_krita_qt = gmic-qt-krita; # added 2019-09-07
@@ -232,19 +248,28 @@ mapAliases ({
   gnome_doc_utils = gnome-doc-utils; # added 2018-02-25
   gnome_themes_standard = gnome-themes-standard; # added 2018-02-25
   gnunet_git = throw "gnunet_git was removed due to gnunet becoming stable"; # added 2019-05-27
-  gnuradio-nacl = gr-nacl; # added 2019-05-27
-  gnuradio-gsm = gr-gsm; # added 2019-05-27
-  gnuradio-ais = gr-ais; # added 2019-05-27
-  gnuradio-limesdr = gr-limesdr; # added 2019-05-27
-  gnuradio-rds = gr-rds; # added 2019-05-27
-  gnuradio-osmosdr = gr-osmosdr; # added 2019-05-27
-  # added 20-10-2020
+  # Added 2020-10-16
   gnuradio-with-packages = gnuradio3_7.override {
-    extraPackages = [ gr-nacl gr-gsm gr-ais gr-limesdr gr-rds gr-osmosdr ];
+    extraPackages = lib.attrVals [
+      "osmosdr" "ais" "gsm" "nacl" "rds" "limesdr"
+    ] gnuradio3_7Packages;
   };
+  gnuradio-nacl = gnuradio3_7.pkgs.nacl; # added 2019-05-27, changed 2020-10-16
+  gnuradio-gsm = gnuradio3_7.pkgs.gsm; # added 2019-05-27, changed 2020-10-16
+  gnuradio-ais = gnuradio3_7.pkgs.ais; # added 2019-05-27, changed 2020-10-16
+  gnuradio-limesdr = gnuradio3_7.pkgs.limesdr; # added 2019-05-27, changed 2020-10-16
+  gnuradio-rds = gnuradio3_7.pkgs.rds; # added 2019-05-27, changed 2020-10-16
+  gnuradio-osmosdr = gnuradio3_7.pkgs.osmosdr; # added 2019-05-27, changed 2020-10-16
+  gr-nacl = gnuradio3_7.pkgs.nacl; # added 2019-05-27, changed 2020-10-16
+  gr-gsm = gnuradio3_7.pkgs.gsm; # added 2019-05-27, changed 2020-10-16
+  gr-ais = gnuradio3_7.pkgs.ais; # added 2019-05-27, changed 2020-10-16
+  gr-limesdr = gnuradio3_7.pkgs.limesdr; # added 2019-05-27, changed 2020-10-16
+  gr-rds = gnuradio3_7.pkgs.rds; # added 2019-05-27, changed 2020-10-16
+  gr-osmosdr = gnuradio3_7.pkgs.osmosdr; # added 2019-05-27, changed 2020-10-16
   gnustep-make = gnustep.make; # added 2016-7-6
   gnupg20 = throw "gnupg20 has been removed from nixpkgs as upstream dropped support on 2017-12-31";# added 2020-07-12
   gnuvd = throw "gnuvd was removed because the backend service is missing"; # added 2020-01-14
+  gmock = gtest; # moved from top-level 2021-03-14
   go_1_12 = throw "go_1_12 has been removed"; # added 2020-04-26
   go-pup = pup; # added 2017-12-19
   gobby5 = gobby; # added 2021-02-01
@@ -252,6 +277,8 @@ mapAliases ({
   goimports = gotools; # added 2018-09-16
   gometalinter = throw "gometalinter was abandoned by upstream. Consider switching to golangci-lint instead"; # added 2020-04-23
   google-gflags = gflags; # added 2019-07-25
+  google-music-scripts = throw "google-music-scripts has been removed because Google Play Music was discontinued"; # added 2021-03-07
+  google-musicmanager = throw "google-musicmanager has been removed because Google Play Music was discontinued"; # added 2021-03-07
   googleAuthenticator = google-authenticator; # added 2016-10-16
   grantlee5 = libsForQt5.grantlee;  # added 2015-12-19
   gsettings_desktop_schemas = gsettings-desktop-schemas; # added 2018-02-25
@@ -277,18 +304,27 @@ mapAliases ({
   icedtea8_web = adoptopenjdk-icedtea-web; # added 2019-08-21
   icedtea_web = adoptopenjdk-icedtea-web; # added 2019-08-21
   idea = jetbrains; # added 2017-04-03
+  imagemagick7_light = imagemagick_light; # added 2021-02-22
+  imagemagick7 = imagemagick; # added 2021-02-22
+  imagemagick7Big = imagemagickBig; # added 2021-02-22
   inboxer = throw "inboxer has been removed as it is no longer maintained and no longer works as Google shut down the inbox service this package wrapped.";
   infiniband-diags = rdma-core; # added 2019-08-09
   inotifyTools = inotify-tools;
+  inter-ui = inter; # added 2021-03-27
+  iproute = iproute2; # moved from top-level 2021-03-14
   i-score = throw "i-score has been removed: abandoned upstream."; # added 2020-11-21
+  jack2Full = jack2; # moved from top-level 2021-03-14
   jamomacore = throw "jamomacore has been removed: abandoned upstream."; # added 2020-11-21
-  jasper = throw "jasper has been removed: abandoned upstream with many vulnerabilities";
-  jbuilder = dune; # added 2018-09-09
+  jbidwatcher = throw "jbidwatcher was discontinued in march 2021"; # added 2021-03-15
+  jbuilder = dune_1; # added 2018-09-09
   jikes = throw "jikes was deprecated on 2019-10-07: abandoned by upstream";
   joseki = apache-jena-fuseki; # added 2016-02-28
   json_glib = json-glib; # added 2018-02-25
   kdecoration-viewer = throw "kdecoration-viewer has been removed from nixpkgs, as there is no upstream activity"; # 2020-06-16
   k9copy = throw "k9copy has been removed from nixpkgs, as there is no upstream activity"; # 2020-11-06
+  kodiGBM = kodi-gbm;
+  kodiPlain = kodi;
+  kodiPlainWayland = kodi-wayland;
   julia_07 = throw "julia_07 is deprecated in favor of julia_10 LTS"; # added 2020-09-15
   julia_11 = throw "julia_11 is deprecated in favor of latest Julia version"; # added 2020-09-15
   kdeconnect = plasma5Packages.kdeconnect-kde; # added 2020-10-28
@@ -300,7 +336,9 @@ mapAliases ({
   keybase-go = keybase;  # added 2016-08-24
   kinetic-cpp-client = throw "kinetic-cpp-client has been removed from nixpkgs, as it's abandoned."; # 2020-04-28
   kicad-with-packages3d = kicad; # added 2019-11-25
+  kindlegen = throw "kindlegen has been removed from nixpkgs, as it's abandoned and no longer available for download."; # 2021-03-09
   krename-qt5 = krename; # added 2017-02-18
+  kerberos = libkrb5; # moved from top-level 2021-03-14
   keymon = throw "keymon has been removed from nixpkgs, as it's abandoned and archived."; # 2019-12-10
   kvm = qemu_kvm; # added 2018-04-25
   latinmodern-math = lmmath;
@@ -330,6 +368,7 @@ mapAliases ({
   liblapackWithoutAtlas = lapack-reference; # added 2018-11-05
   liblastfm = libsForQt5.liblastfm; # added 2020-06-14
   liblrdf = lrdf; # added 2018-04-25
+  libosmpbf = throw "libosmpbf was removed because it is no longer required by osrm-backend";
   libqrencode = qrencode;  # added 2019-01-01
   librdf = lrdf; # added 2020-03-22
   librecad2 = librecad;  # backwards compatibility alias, added 2015-10
@@ -342,6 +381,7 @@ mapAliases ({
   libsexy = throw "libsexy has been removed from nixpkgs, as it's abandoned and no package needed it."; # 2019-12-10
   libstdcxxHook = throw "libstdcxx hook has been removed because cc-wrapper is now directly aware of the c++ standard library intended to be used."; # 2020-06-22
   libqmatrixclient = throw "libqmatrixclient was renamed to libquotient"; # added 2020-04-09
+  lilypond-unstable = lilypond; # added 2021-03-11
   links = links2; # added 2016-01-31
   linux_rpi0 = linux_rpi1;
   linuxPackages_rpi0 = linuxPackages_rpi1;
@@ -352,16 +392,19 @@ mapAliases ({
 
   linux-steam-integration = throw "linux-steam-integration has been removed, as the upstream project has been abandoned"; # added 2020-05-22
   loadcaffe = throw "loadcaffe has been removed, as the upstream project has been abandoned"; # added 2020-03-28
+  lprof = throw "lprof has been removed as it's unmaintained upstream and broken in nixpkgs since a while ago"; # added 2021-02-15
   lttngTools = lttng-tools;  # added 2014-07-31
   lttngUst = lttng-ust;  # added 2014-07-31
   lua5_1_sockets = lua51Packages.luasocket; # added 2017-05-02
   lua5_expat = luaPackages.luaexpat; # added 2017-05-02
   lua5_sec = luaPackages.luasec; # added 2017-05-02
   lxappearance-gtk3 = throw "lxappearance-gtk3 has been removed. Use lxappearance instead, which now defaults to Gtk3";  # added 2020-06-03
+  lzma = xz; # moved from top-level 2021-03-14
   m3d-linux = m33-linux; # added 2016-08-13
   man_db = man-db; # added 2016-05
   manpages = man-pages; # added 2015-12-06
   marathon = throw "marathon has been removed from nixpkgs, as it's unmaintained"; # added 2020-08-15
+  mysql = mariadb; # moved from top-level 2021-03-14
   mariadb-client = hiPrio mariadb.client; #added 2019.07.28
   matcha = throw "matcha was renamed to matcha-gtk-theme"; # added 2020-05-09
   mathics = throw "mathics has been removed from nixpkgs, as it's unmaintained"; # added 2020-08-15
@@ -371,13 +414,14 @@ mapAliases ({
   mcgrid = throw "mcgrid has been removed from nixpkgs, as it's not compatible with rivet 3"; # added 2020-05-23
   mcomix = throw "mcomix has been removed from nixpkgs, as it's unmaintained; try mcomix3 a Python 3 fork"; # added 2019-12-10, modified 2020-11-25
   mirage = throw "mirage has been femoved from nixpkgs, as it's unmaintained"; # added 2019-12-10
+  mopidy-gmusic = throw "mopidy-gmusic has been removed because Google Play Music was discontinued"; # added 2021-03-07
   mopidy-local-images = throw "mopidy-local-images has been removed as it's unmaintained. It's functionality has been merged into the mopidy-local extension."; # added 2020-10-18
   mopidy-local-sqlite = throw "mopidy-local-sqlite has been removed as it's unmaintained. It's functionality has been merged into the mopidy-local extension."; # added 2020-10-18
   mysql-client = hiPrio mariadb.client;
   memtest86 = memtest86plus; # added 2019-05-08
   mesa_noglu = mesa; # added 2019-05-28
   # NOTE: 2018-07-12: legacy alias:
-  # gcsecurity bussiness is done: https://www.theregister.co.uk/2018/02/08/bruce_perens_grsecurity_anti_slapp/
+  # grsecurity business is done: https://www.theregister.co.uk/2018/02/08/bruce_perens_grsecurity_anti_slapp/
   # floating point textures patents are expired,
   # so package reduced to alias
   mesa_drivers = mesa.drivers;
@@ -430,6 +474,7 @@ mapAliases ({
   openssh_with_kerberos = openssh; # added 2018-01-28
   onnxruntime = throw "onnxruntime has been removed due to poor maintainability"; # added 2020-12-04
   osquery = throw "osquery has been removed."; # added 2019-11-24
+  osxfuse = macfuse-stubs; # added 2021-03-20
   otter-browser = throw "otter-browser has been removed from nixpkgs, as it was unmaintained"; # added 2020-02-02
   owncloudclient = owncloud-client;  # added 2016-08
   p11_kit = p11-kit; # added 2018-02-25
@@ -532,7 +577,9 @@ mapAliases ({
   ppl-address-book = throw "ppl-address-book deprecated on 2019-05-02: abandoned by upstream.";
   processing3 = processing; # added 2019-08-16
   procps-ng = procps; # added 2018-06-08
+  prometheus-cups-exporter = throw "outdated and broken by design; removed by developer."; # added 2021-03-16
   pygmentex = texlive.bin.pygmentex; # added 2019-12-15
+  pyload = throw "pyload has been removed from nixpkgs, as it was unmaintained."; # added 2021-03-21
   pyo3-pack = maturin;
   pmenu = throw "pmenu has been removed from nixpkgs, as its maintainer is no longer interested in the package."; # added 2019-12-10
   pulseaudioLight = pulseaudio; # added 2018-04-25
@@ -541,11 +588,14 @@ mapAliases ({
   phonon-backend-vlc = throw "phonon-backend-vlc: Please use libsForQt5.phonon-backend-vlc, as Qt4 support in this package has been removed."; # added 2019-11-22
   phonon = throw "phonon: Please use libsForQt5.phonon, as Qt4 support in this package has been removed."; # added 2019-11-22
   pynagsystemd = throw "pynagsystemd was removed as it was unmaintained and incompatible with recent systemd versions. Instead use its fork check_systemd."; # added 2020-10-24
+  python2nix = throw "python2nix has been removed as it is outdated. Use e.g. nixpkgs-pytools instead."; # added 2021-03-08
   qca-qt5 = libsForQt5.qca-qt5;  # added 2015-12-19
   qcsxcad = libsForQt5.qcsxcad;  # added 2020-11-05
+  qmk_firmware = throw "qmk_firmware has been removed because it was broken"; # added 2021-04-02
   qr-filetransfer = throw ''"qr-filetransfer" has been renamed to "qrcp"''; # added 2020-12-02
   quake3game = ioquake3; # added 2016-01-14
   qvim = throw "qvim has been removed."; # added 2020-08-31
+  qweechat = throw "qweechat has been removed because it was broken"; # added 2021-03-08
   qwt6 = libsForQt5.qwt;  # added 2015-12-19
   qtcurve = libsForQt5.qtcurve;  # added 2020-11-07
   qtpfsgui = throw "qtpfsgui is now luminanceHDR"; # added 2019-06-26
@@ -560,12 +610,17 @@ mapAliases ({
   rocm-runtime-ext = throw "rocm-runtime-ext has been removed, since its functionality was added to rocm-runtime"; #added 2020-08-21
   rssglx = rss-glx; #added 2015-03-25
   rssh = throw "rssh has been removed from nixpkgs: no upstream releases since 2012, several known CVEs"; # added 2020-08-25
+  # The alias for linuxPackages*.rtlwifi_new is defined in ./all-packages.nix,
+  # due to it being inside the linuxPackagesFor function.
+  rtlwifi_new-firmware = rtw88-firmware; # added 2021-03-14
   recordmydesktop = throw "recordmydesktop has been removed from nixpkgs, as it's unmaintained and uses deprecated libraries"; # added 2019-12-10
   retroshare06 = retroshare;
   gtk-recordmydesktop = throw "gtk-recordmydesktop has been removed from nixpkgs, as it's unmaintained and uses deprecated libraries"; # added 2019-12-10
   qt-recordmydesktop = throw "qt-recordmydesktop has been removed from nixpkgs, as it's abandoned and uses deprecated libraries"; # added 2019-12-10
+  qt-3 = throw "qt-3 has been removed from nixpkgs, as it's unmaintained and insecure"; # added 2021-02-15
   rfkill = throw "rfkill has been removed, as it's included in util-linux"; # added 2020-08-23
   riak-cs = throw "riak-cs is not maintained anymore"; # added 2020-10-14
+  radare2-cutter = cutter; # added 2021-03-30
   rkt = throw "rkt was archived by upstream"; # added 2020-05-16
   ruby_2_0_0 = throw "ruby_2_0_0 was deprecated on 2018-02-13: use a newer version of ruby";
   ruby_2_1_0 = throw "ruby_2_1_0 was deprecated on 2018-02-13: use a newer version of ruby";
@@ -574,10 +629,13 @@ mapAliases ({
   ruby_2_4_3 = throw "ruby_2_4_3 was deprecated on 2018-02-13: use a newer version of ruby";
   ruby_2_5_0 = throw "ruby_2_5_0 was deprecated on 2018-02-13: use a newer version of ruby";
   rubyPackages_2_4 = throw "rubyPackages_2_4 was deprecated in 2019-12: use a newer version of rubyPackages instead";
+  ruby_2_5 = throw "ruby_2_5 was deprecated in 2021-02: use a newer version of ruby";
+  rubyPackages_2_5 = throw "rubyPackages_2_5 was deprecated in 2021-02: use a newer version of rubyPackages instead";
   rubygems = throw "rubygems was deprecated on 2016-03-02: rubygems is now bundled with ruby";
   rubyMinimal = throw "rubyMinimal was removed due to being unused";
   rxvt_unicode-with-plugins = rxvt-unicode; # added 2020-02-02
   rxvt_unicode = rxvt-unicode-unwrapped; # added 2020-02-02
+  subversion19 = throw "subversion19 has been removed as it has reached its end of life"; # added 2021-03-31
   urxvt_autocomplete_all_the_things = rxvt-unicode-plugins.autocomplete-all-the-things; # added 2020-02-02
   urxvt_perl = rxvt-unicode-plugins.perl; # added 2020-02-02
   urxvt_perls = rxvt-unicode-plugins.perls; # added 2020-02-02
@@ -586,6 +644,7 @@ mapAliases ({
   urxvt_theme_switch = rxvt-unicode-plugins.theme-switch; # added 2020-02-02
   urxvt_vtwheel = rxvt-unicode-plugins.vtwheel; # added 2020-02-02
   urxvt_bidi = rxvt-unicode-plugins.bidi; # added 2020-02-02
+  s2n = s2n-tls; # added 2021-03-03
   s6Dns = s6-dns; # added 2018-07-23
   s6Networking = s6-networking; # added 2018-07-23
   s6LinuxUtils = s6-linux-utils; # added 2018-07-23
@@ -597,9 +656,11 @@ mapAliases ({
   sambaMaster = throw "sambaMaster was removed in 2019-09-13: outdated and no longer needed";
   samsungUnifiedLinuxDriver = samsung-unified-linux-driver; # added 2016-01-25
   saneBackends = sane-backends; # added 2016-01-02
-  saneBackendsGit = sane-backends-git; # added 2016-01-02
+  saneBackendsGit = sane-backends; # added 2016-01-02
+  sane-backends-git = sane-backends; # added 2021-02-19
   saneFrontends = sane-frontends; # added 2016-01-02
   sapic = throw "sapic was deprecated on 2019-1-19: sapic is bundled with 'tamarin-prover' now";
+  scaff = throw "scaff is deprecated - replaced by https://gitlab.com/jD91mZM2/inc (not in nixpkgs yet)"; # added 2020-03-01
   scim = sc-im; # added 2016-01-22
   scollector = bosun; # added 2018-04-25
   sdlmame = mame; # added 2019-10-30
@@ -648,12 +709,14 @@ mapAliases ({
 
   net_snmp = net-snmp; # added 2019-12-21
   oracleXE = throw "oracleXE has been removed, as it's heavily outdated and unmaintained."; # added 2020-10-09
-  spaceOrbit = space-orbit; # addewd 2016-05-23
+  spaceOrbit = space-orbit; # added 2016-05-23
   speech_tools = speech-tools; # added 2018-04-25
   speedtest_cli = speedtest-cli;  # added 2015-02-17
   spice_gtk = spice-gtk; # added 2018-02-25
   spice_protocol = spice-protocol; # added 2018-02-25
-  spidermonkey_52 = throw "spidermonkey_52 has been removed. Please use spidermonkey_60 instead."; # added 2019-10-16
+  spidermonkey_38 = throw "spidermonkey_38 has been removed. Please use spidermonkey_78 instead."; # added 2021-03-21
+  spidermonkey_52 = throw "spidermonkey_52 has been removed. Please use spidermonkey_78 instead."; # added 2019-10-16
+  spidermonkey_60 = throw "spidermonkey_60 has been removed. Please use spidermonkey_78 instead."; # added 2021-03-21
   spring-boot = spring-boot-cli; # added 2020-04-24
   sqlite3_analyzer = sqlite-analyzer; # added 2018-05-22
   sqliteInteractive = sqlite-interactive;  # added 2014-12-06
@@ -663,6 +726,7 @@ mapAliases ({
   surf-webkit2 = surf; # added 2017-04-02
   sup = throw "sup was deprecated on 2019-09-10: abandoned by upstream";
   swfdec = throw "swfdec has been removed as broken and unmaintained."; # added 2020-08-23
+  swtpm-tpm2 = swtpm; # added 2021-02-26
   system_config_printer = system-config-printer;  # added 2016-01-03
   systemd-cryptsetup-generator = throw "systemd-cryptsetup-generator is now included in the systemd package"; # added 2020-07-12
   systemd_with_lvm2 = throw "systemd_with_lvm2 is obsolete, enabled by default via the lvm module"; # added 2020-07-12
@@ -709,6 +773,7 @@ mapAliases ({
   trilium = throw "trilium has been removed. Please use trilium-desktop instead."; # added 2020-04-29
   truecrypt = veracrypt; # added 2018-10-24
   tshark = wireshark-cli; # added 2018-04-25
+  tuijam = throw "tuijam has been removed because Google Play Music was discontinued"; # added 2021-03-07
   uberwriter = apostrophe; # added 2020-04-23
   ubootBeagleboneBlack = ubootAmx335xEVM; # added 2020-01-21
   ucsFonts = ucs-fonts; # added 2016-07-15
@@ -752,8 +817,12 @@ mapAliases ({
   xara = throw "xara has been removed from nixpkgs. Unmaintained since 2006"; # added 2020-06-24
   xbmc = kodi; # added 2018-04-25
   xbmcPlain = kodiPlain; # added 2018-04-25
-  xbmcPlugins = kodiPlugins; # added 2018-04-25
+  xbmcPlugins = kodiPackages; # added 2018-04-25
+  kodiPlugins = kodiPackages; # added 2021-03-09;
   xmonad_log_applet_gnome3 = xmonad_log_applet; # added 2018-05-01
+  xmpppy = throw "xmpppy has been removed from nixpkgs as it is unmaintained and python2-only";
+  pyIRCt = throw "pyIRCt has been removed from nixpkgs as it is unmaintained and python2-only";
+  pyMAILt = throw "pyMAILt has been removed from nixpkgs as it is unmaintained and python2-only";
   xf86_video_nouveau = xorg.xf86videonouveau; # added 2015-09
   xf86_input_mtrack = throw ("xf86_input_mtrack has been removed from nixpkgs as it hasn't been maintained"
     + "and is broken. Working alternatives are libinput and synaptics.");
@@ -761,10 +830,15 @@ mapAliases ({
   xlibs = xorg; # added 2015-09
   xpraGtk3 = xpra; # added 2018-09-13
   xv = xxv; # added 2020-02-22
+  yacc = bison; # moved from top-level 2021-03-14
   youtubeDL = youtube-dl;  # added 2014-10-26
   ytop = throw "ytop has been abandoned by upstream. Consider switching to bottom instead";
+  yubikey-neo-manager = throw "yubikey-neo-manager has been removed because it was broken. Use yubikey-manager-qt instead."; # added 2021-03-08
   yuzu = yuzu-mainline; # added 2021-01-25
+  zabbix30 = throw "Zabbix 3.0.x is end of life, see https://www.zabbix.com/documentation/5.0/manual/installation/upgrade/sources for a direct upgrade path to 5.0.x"; # added 2021-04-07
+  zimreader = throw "zimreader has been removed from nixpkgs as it has been replaced by kiwix-serve and stopped working with modern zimlib versions."; # added 2021-03-28
   zdfmediathk = mediathekview; # added 2019-01-19
+
   gnome_user_docs = gnome-user-docs; # added 2019-11-20
   # spidermonkey is not ABI upwards-ompatible, so only allow this for nix-shell
   spidermonkey = spidermonkey_78; # added 2020-10-09
@@ -896,16 +970,34 @@ mapAliases ({
     yakuake
   ;
   inherit (plasma5Packages)
-    bluedevil breeze-gtk breeze-qt5 breeze-grub breeze-plymouth discover
-    kactivitymanagerd kde-cli-tools kde-gtk-config kdeplasma-addons kgamma5
-    kinfocenter kmenuedit kscreen kscreenlocker ksshaskpass ksysguard
-    kwallet-pam kwayland-integration kwin kwrited milou oxygen plasma-browser-integration
-    plasma-desktop plasma-integration plasma-nm plasma-pa plasma-vault plasma-workspace
-    plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm
-    systemsettings xdg-desktop-portal-kde
+    bluedevil breeze-gtk breeze-qt5 breeze-grub breeze-plymouth
+    discover
+    kactivitymanagerd
+    kde-cli-tools kde-gtk-config kdeplasma-addons
+    kgamma5
+    kinfocenter
+    kmenuedit
+    kscreen kscreenlocker ksshaskpass ksysguard
+    kwallet-pam kwayland-integration kwin kwrited
+    milou
+    oxygen
+    plasma-browser-integration
+    plasma-desktop
+    plasma-integration
+    plasma-nm
+    plasma-pa
+    plasma-systemmonitor
+    plasma-thunderbolt
+    plasma-vault
+    plasma-workspace plasma-workspace-wallpapers
+    polkit-kde-agent powerdevil
+    qqc2-breeze-style
+    sddm-kcm systemsettings
+    xdg-desktop-portal-kde
   ;
   inherit (plasma5Packages.thirdParty)
     plasma-applet-caffeine-plus
+    plasma-applet-virtual-desktop-bar
     kwin-dynamic-workspaces
     kwin-tiling
     krohnkite
diff --git a/nixpkgs/pkgs/top-level/all-packages.nix b/nixpkgs/pkgs/top-level/all-packages.nix
index a09a8a64602d..c8299dc4b61f 100644
--- a/nixpkgs/pkgs/top-level/all-packages.nix
+++ b/nixpkgs/pkgs/top-level/all-packages.nix
@@ -154,16 +154,24 @@ in
 
   ankisyncd = callPackage ../servers/ankisyncd { };
 
+  antsimulator = callPackage ../games/antsimulator { };
+
   fiche = callPackage ../servers/fiche { };
 
   fishnet = callPackage ../servers/fishnet { };
 
+  fission = callPackage ../development/tools/fission { };
+
+  authy = callPackage ../applications/misc/authy { };
+
   avro-tools = callPackage ../development/tools/avro-tools { };
 
   bacnet-stack = callPackage ../tools/networking/bacnet-stack {};
 
   breakpad = callPackage ../development/misc/breakpad { };
 
+  buf = callPackage ../development/tools/buf { };
+
   # Zip file format only allows times after year 1980, which makes e.g. Python wheel building fail with:
   # ValueError: ZIP does not support timestamps before 1980
   ensureNewerSourcesForZipFilesHook = ensureNewerSourcesHook { year = "1980"; };
@@ -188,7 +196,14 @@ in
 
   castget = callPackage ../applications/networking/feedreaders/castget { };
 
-  castxml = callPackage ../development/tools/castxml { };
+  castxml = callPackage ../development/tools/castxml {
+    inherit (llvmPackages) clang-unwrapped libclang llvm;
+    inherit (python3Packages) sphinx;
+  };
+
+  catatonit = callPackage ../applications/virtualization/catatonit { };
+
+  cen64 = callPackage ../misc/emulators/cen64 { };
 
   cereal = callPackage ../development/libraries/cereal { };
 
@@ -246,6 +261,16 @@ in
 
   protoc-gen-doc = callPackage ../development/tools/protoc-gen-doc {};
 
+  protoc-gen-go = callPackage ../development/tools/protoc-gen-go { };
+
+  protoc-gen-twirp = callPackage ../development/tools/protoc-gen-twirp { };
+
+  protoc-gen-twirp_php = callPackage ../development/tools/protoc-gen-twirp_php { };
+
+  protoc-gen-twirp_swagger = callPackage ../development/tools/protoc-gen-twirp_swagger { };
+
+  protoc-gen-twirp_typescript = callPackage ../development/tools/protoc-gen-twirp_typescript { };
+
   ptags = callPackage ../development/tools/misc/ptags { };
 
   ptouch-print = callPackage ../misc/ptouch-print { };
@@ -262,6 +287,8 @@ in
 
   creddump = callPackage ../tools/security/creddump {};
 
+  credslayer = callPackage ../tools/security/credslayer { };
+
   device-tree_rpi = callPackage ../os-specific/linux/device-tree/raspberrypi.nix {};
 
   devour = callPackage ../tools/X11/devour {};
@@ -282,6 +309,7 @@ in
   grsync = callPackage ../applications/misc/grsync { };
 
   dockerTools = callPackage ../build-support/docker {
+    go = buildPackages.go_1_15;
     writePython3 = buildPackages.writers.writePython3;
   };
 
@@ -360,6 +388,7 @@ in
   fetchgit = callPackage ../build-support/fetchgit {
     git = buildPackages.gitMinimal;
     cacert = buildPackages.cacert;
+    git-lfs = buildPackages.git-lfs;
   };
 
   fetchgitLocal = callPackage ../build-support/fetchgitlocal { };
@@ -412,7 +441,7 @@ in
    else makeOverridable (import ../build-support/fetchurl) {
     inherit lib stdenvNoCC buildPackages;
     inherit cacert;
-    curl = buildPackages.curl.override (old: rec {
+    curl = buildPackages.curlMinimal.override (old: rec {
       # break dependency cycles
       fetchurl = stdenv.fetchurlBoot;
       zlib = buildPackages.zlib.override { fetchurl = stdenv.fetchurlBoot; };
@@ -477,6 +506,8 @@ in
 
   fetchFromSavannah = callPackage ../build-support/fetchsavannah {};
 
+  fetchFromSourcehut = callPackage ../build-support/fetchsourcehut { };
+
   fetchFromGitLab = callPackage ../build-support/fetchgitlab {};
 
   fetchFromGitiles = callPackage ../build-support/fetchgitiles {};
@@ -504,6 +535,8 @@ in
 
   madonctl = callPackage ../applications/misc/madonctl { };
 
+  maelstrom = callPackage ../games/maelstrom { };
+
   copyDesktopItems = makeSetupHook { } ../build-support/setup-hooks/copy-desktop-items.sh;
 
   makeDesktopItem = callPackage ../build-support/make-desktopitem { };
@@ -512,7 +545,7 @@ in
 
   makeInitrd = callPackage ../build-support/kernel/make-initrd.nix; # Args intentionally left out
 
-  makeWrapper = makeSetupHook { deps = [ dieHook ]; substitutions = { shell = pkgs.runtimeShell; }; }
+  makeWrapper = makeSetupHook { deps = [ dieHook ]; substitutions = { shell = targetPackages.runtimeShell; }; }
                               ../build-support/setup-hooks/make-wrapper.sh;
 
   makeModulesClosure = { kernel, firmware, rootModules, allowMissing ? false }:
@@ -617,10 +650,12 @@ in
 
   _1password = callPackage ../applications/misc/1password { };
 
-  _1password-gui = callPackage ../tools/security/1password-gui { };
+  _1password-gui = callPackage ../applications/misc/1password-gui { };
 
   _6tunnel = callPackage ../tools/networking/6tunnel { };
 
+  _7zz = callPackage ../tools/archivers/7zz { };
+
   _9pfs = callPackage ../tools/filesystems/9pfs { };
 
   a2ps = callPackage ../tools/text/a2ps { };
@@ -637,6 +672,8 @@ in
 
   acme-sh = callPackage ../tools/admin/acme.sh { };
 
+  acousticbrainz-client = callPackage ../tools/audio/acousticbrainz-client { };
+
   acoustidFingerprinter = callPackage ../tools/audio/acoustid-fingerprinter {
     ffmpeg = ffmpeg_2;
   };
@@ -657,8 +694,6 @@ in
 
   arc_unpacker = callPackage ../tools/archivers/arc_unpacker { };
 
-  tuijam = callPackage ../applications/audio/tuijam { inherit (python3Packages) buildPythonApplication; };
-
   opnplug = callPackage ../applications/audio/adlplug {
     adlplugChip = "-DADLplug_CHIP=OPN2";
     pname = "OPNplug";
@@ -748,6 +783,18 @@ in
 
   metapixel = callPackage ../tools/graphics/metapixel { };
 
+  quich = callPackage ../tools/misc/quich { } ;
+
+  tfk8s = callPackage ../tools/misc/tfk8s { };
+
+  xtrt = callPackage ../tools/archivers/xtrt { };
+
+  yabridge = callPackage ../tools/audio/yabridge {
+    wine = wineWowPackages.minimal;
+  };
+
+  yabridgectl = callPackage ../tools/audio/yabridgectl { };
+
   ### APPLICATIONS/TERMINAL-EMULATORS
 
   alacritty = callPackage ../applications/terminal-emulators/alacritty {
@@ -784,6 +831,8 @@ in
     inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics Foundation IOKit Kernel OpenGL;
   };
 
+  lifecycled = callPackage ../tools/misc/lifecycled { };
+
   lilyterm = callPackage ../applications/terminal-emulators/lilyterm {
     inherit (gnome2) vte;
     gtk = gtk2;
@@ -794,6 +843,10 @@ in
     flavour = "git";
   };
 
+  logseq = callPackage ../applications/misc/logseq {
+    electron = electron_11;
+  };
+
   lxterminal = callPackage ../applications/terminal-emulators/lxterminal { };
 
   microcom = callPackage ../applications/terminal-emulators/microcom { };
@@ -856,6 +909,8 @@ in
     inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics Foundation;
   };
 
+  writefreely = callPackage ../applications/misc/writefreely { };
+
   x3270 = callPackage ../applications/terminal-emulators/x3270 { };
 
   xterm = callPackage ../applications/terminal-emulators/xterm { };
@@ -987,6 +1042,8 @@ in
 
   async = callPackage ../development/tools/async {};
 
+  async-profiler = callPackage ../development/tools/async-profiler { };
+
   atheme = callPackage ../servers/irc/atheme { };
 
   atinout = callPackage ../tools/networking/atinout { };
@@ -1013,6 +1070,8 @@ in
 
   awslogs = callPackage ../tools/admin/awslogs { };
 
+  aws-lambda-rie = callPackage ../tools/admin/aws-lambda-runtime-interface-emulator { };
+
   aws-env = callPackage ../tools/admin/aws-env { };
 
   aws-google-auth = python3Packages.callPackage ../tools/admin/aws-google-auth { };
@@ -1029,6 +1088,8 @@ in
 
   aws-vault = callPackage ../tools/admin/aws-vault { };
 
+  aws-workspaces = callPackage ../applications/networking/remote/aws-workspaces { };
+
   iamy = callPackage ../tools/admin/iamy { };
 
   azure-cli = callPackage ../tools/admin/azure-cli { };
@@ -1043,6 +1104,8 @@ in
 
   betterdiscordctl = callPackage ../tools/misc/betterdiscordctl { };
 
+  betterdiscord-installer = callPackage ../tools/misc/betterdiscord-installer { };
+
   brakeman = callPackage ../development/tools/analysis/brakeman { };
 
   brewtarget = libsForQt514.callPackage ../applications/misc/brewtarget { } ;
@@ -1095,6 +1158,8 @@ in
 
   barman = python3Packages.callPackage ../tools/misc/barman { };
 
+  bashate = python3Packages.callPackage ../development/tools/bashate { };
+
   bash-my-aws = callPackage ../tools/admin/bash-my-aws { };
 
   bashcards = callPackage ../tools/misc/bashcards { };
@@ -1103,6 +1168,8 @@ in
 
   bcachefs-tools = callPackage ../tools/filesystems/bcachefs-tools { };
 
+  bit = callPackage ../applications/version-management/git-and-tools/bit { };
+
   bitwarden = callPackage ../tools/security/bitwarden { };
 
   inherit (nodePackages) bitwarden-cli;
@@ -1116,6 +1183,8 @@ in
 
   bitwarden_rs-vault = callPackage ../tools/security/bitwarden_rs/vault.nix { };
 
+  blockbench-electron = callPackage ../applications/graphics/blockbench-electron { };
+
   bmap-tools = callPackage ../tools/misc/bmap-tools { };
 
   bonnmotion = callPackage ../development/tools/misc/bonnmotion { };
@@ -1124,6 +1193,8 @@ in
 
   bonfire = callPackage ../tools/misc/bonfire { };
 
+  botamusique = callPackage ../tools/audio/botamusique { };
+
   boulder = callPackage ../tools/admin/boulder { };
 
   btrfs-heatmap = callPackage ../tools/filesystems/btrfs-heatmap { };
@@ -1190,6 +1261,8 @@ in
 
   corsmisc = callPackage ../tools/security/corsmisc { };
 
+  cosign = callPackage ../tools/security/cosign { };
+
   cozy = callPackage ../applications/audio/cozy-audiobooks { };
 
   cpuid = callPackage ../os-specific/linux/cpuid { };
@@ -1217,6 +1290,8 @@ in
 
   detect-secrets = python3Packages.callPackage ../development/tools/detect-secrets { };
 
+  dfmt = callPackage ../tools/text/dfmt { };
+
   diskonaut = callPackage ../tools/misc/diskonaut { };
 
   diskus = callPackage ../tools/misc/diskus {
@@ -1285,7 +1360,9 @@ in
 
   gaia = callPackage ../development/libraries/gaia { };
 
-  galene = callPackage ../servers/web-apps/galene {};
+  galene = callPackage ../servers/web-apps/galene {
+    buildGoModule = buildGo115Module;
+  };
 
   gamecube-tools = callPackage ../development/tools/gamecube-tools { };
 
@@ -1319,6 +1396,10 @@ in
 
   glasgow = with python3Packages; toPythonApplication glasgow;
 
+  gmni = callPackage ../applications/networking/browsers/gmni { };
+
+  gmnisrv = callPackage ../servers/gemini/gmnisrv { };
+
   goimapnotify = callPackage ../tools/networking/goimapnotify { };
 
   gojsontoyaml = callPackage ../development/tools/gojsontoyaml { };
@@ -1329,7 +1410,7 @@ in
 
   gucci = callPackage ../tools/text/gucci { };
 
-  grc = callPackage ../tools/misc/grc { };
+  grc = python3Packages.callPackage ../tools/misc/grc { };
 
   green-pdfviewer = callPackage ../applications/misc/green-pdfviewer {
    SDL = SDL_sixel;
@@ -1345,12 +1426,18 @@ in
 
   glyr = callPackage ../tools/audio/glyr { };
 
+  gtklp = callPackage ../tools/misc/gtklp { };
+
   google-amber = callPackage ../tools/graphics/amber { };
 
   hakrawler = callPackage ../tools/security/hakrawler { };
 
+  harvid = callPackage ../tools/video/harvid { };
+
   hime = callPackage ../tools/inputmethods/hime {};
 
+  hinit = haskell.lib.justStaticExecutables haskellPackages.hinit;
+
   hostctl = callPackage ../tools/system/hostctl { };
 
   hpe-ltfs = callPackage ../tools/backup/hpe-ltfs { };
@@ -1373,10 +1460,14 @@ in
 
   lesspass-cli = callPackage ../tools/security/lesspass-cli { };
 
+  mpdevil = callPackage ../applications/audio/mpdevil { };
+
   pacparser = callPackage ../tools/networking/pacparser { };
 
   pass = callPackage ../tools/security/pass { };
 
+  passphrase2pgp = callPackage ../tools/security/passphrase2pgp { };
+
   pass-git-helper = python3Packages.callPackage ../applications/version-management/git-and-tools/pass-git-helper { };
 
   pass-nodmenu = callPackage ../tools/security/pass {
@@ -1391,12 +1482,18 @@ in
 
   passExtensions = recurseIntoAttrs pass.extensions;
 
+  xjadeo = callPackage ../tools/video/xjadeo { };
+
   asc-key-to-qr-code-gif = callPackage ../tools/security/asc-key-to-qr-code-gif { };
 
   go-audit = callPackage ../tools/system/go-audit { };
 
   gopass = callPackage ../tools/security/gopass { };
 
+  gopass-jsonapi = callPackage ../tools/security/gopass/jsonapi.nix { };
+
+  git-credential-gopass = callPackage ../tools/security/gopass/git-credential.nix { };
+
   gospider = callPackage ../tools/security/gospider { };
 
   browserpass = callPackage ../tools/security/browserpass { };
@@ -1427,6 +1524,8 @@ in
 
   pebble = callPackage ../tools/admin/pebble { };
 
+  play-with-mpv = callPackage ../tools/video/play-with-mpv { };
+
   reattach-to-user-namespace = callPackage ../os-specific/darwin/reattach-to-user-namespace {};
 
   skhd = callPackage ../os-specific/darwin/skhd {
@@ -1548,7 +1647,7 @@ in
 
   b3sum = callPackage ../tools/security/b3sum {};
 
-  backblaze-b2 = python.pkgs.callPackage ../development/tools/backblaze-b2 { };
+  backblaze-b2 = callPackage ../development/tools/backblaze-b2 { };
 
   bandwhich = callPackage ../tools/networking/bandwhich {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -1671,7 +1770,6 @@ in
     else libtensorflow-bin;
 
   libtorch-bin = callPackage ../development/libraries/science/math/libtorch/bin.nix {
-    inherit (linuxPackages) nvidia_x11;
     cudaSupport = config.cudaSupport or false;
   };
 
@@ -1697,14 +1795,20 @@ in
 
   bmake = callPackage ../development/tools/build-managers/bmake { };
 
+  boca = callPackage ../development/libraries/boca { };
+
   bochs = callPackage ../applications/virtualization/bochs { };
 
   bubblewrap = callPackage ../tools/admin/bubblewrap { };
 
-  borgbackup = callPackage ../tools/backup/borg { };
+  borgbackup = callPackage ../tools/backup/borgbackup { };
+
+  borgmatic = callPackage ../tools/backup/borgmatic { };
 
   boringtun = callPackage ../tools/networking/boringtun { };
 
+  bookstack = callPackage ../servers/web-apps/bookstack { };
+
   # Upstream recommends qt5.12 and it doesn't build with qt5.15
   boomerang = libsForQt512.callPackage ../development/tools/boomerang { };
 
@@ -1743,10 +1847,14 @@ in
 
   bsod = callPackage ../misc/emulators/bsod { };
 
+  py65 = python3Packages.callPackage ../misc/emulators/py65 { };
+
   simh = callPackage ../misc/emulators/simh { };
 
   btrfs-progs = callPackage ../tools/filesystems/btrfs-progs { };
 
+  btlejack = python3Packages.callPackage ../applications/radio/btlejack { };
+
   btrbk = callPackage ../tools/backup/btrbk {
     asciidoc = asciidoc-full;
   };
@@ -1866,8 +1974,6 @@ in
 
   cbor-diag = callPackage ../development/tools/cbor-diag { };
 
-  ccnet = callPackage ../tools/networking/ccnet { };
-
   cassowary = callPackage ../tools/networking/cassowary { };
 
   croc = callPackage ../tools/networking/croc { };
@@ -1904,6 +2010,8 @@ in
 
   cli-visualizer = callPackage ../applications/misc/cli-visualizer { };
 
+  clickclack = callPackage ../tools/misc/clickclack { };
+
   clog-cli = callPackage ../development/tools/clog-cli { };
 
   cloud-init = python3.pkgs.callPackage ../tools/virtualization/cloud-init { };
@@ -1958,11 +2066,43 @@ in
 
   cowsay = callPackage ../tools/misc/cowsay { };
 
+  czkawka = callPackage ../tools/misc/czkawka { };
+
   cherrytree = callPackage ../applications/misc/cherrytree { };
 
   chntpw = callPackage ../tools/security/chntpw { };
 
-  clipman = callPackage ../tools/misc/clipman { };
+  clipman = callPackage ../tools/wayland/clipman { };
+
+  kanshi = callPackage ../tools/wayland/kanshi { };
+
+  oguri = callPackage  ../tools/wayland/oguri { };
+
+  slurp = callPackage ../tools/wayland/slurp { };
+
+  swaykbdd = callPackage ../tools/wayland/swaykbdd { };
+
+  swaycwd = callPackage ../tools/wayland/swaycwd { };
+
+  wayland-utils = callPackage ../tools/wayland/wayland-utils { };
+
+  wev = callPackage ../tools/wayland/wev { };
+
+  wl-clipboard = callPackage ../tools/wayland/wl-clipboard { };
+
+  wlogout = callPackage ../tools/wayland/wlogout { };
+
+  wlr-randr = callPackage ../tools/wayland/wlr-randr { };
+
+  wlsunset = callPackage ../tools/wayland/wlsunset { };
+
+  wob = callPackage ../tools/wayland/wob { };
+
+  wshowkeys = callPackage ../tools/wayland/wshowkeys { };
+
+  wtype = callPackage ../tools/wayland/wtype { };
+
+  ydotool = callPackage ../tools/wayland/ydotool { };
 
   clipster = callPackage ../tools/misc/clipster { };
 
@@ -2093,6 +2233,8 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  digitemp = callPackage ../tools/misc/digitemp { };
+
   dijo = callPackage ../tools/misc/dijo {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
@@ -2110,6 +2252,14 @@ in
 
   discount = callPackage ../tools/text/discount { };
 
+  discourse = callPackage ../servers/web-apps/discourse {
+    ruby = ruby_2_7;
+  };
+
+  discourse-mail-receiver = callPackage ../servers/web-apps/discourse/mail_receiver {
+    ruby = ruby_2_7;
+  };
+
   discocss = callPackage ../tools/misc/discocss { };
 
   disfetch = callPackage ../tools/misc/disfetch { };
@@ -2146,7 +2296,7 @@ in
 
   dotenv-linter = callPackage ../development/tools/analysis/dotenv-linter { };
 
-  dot-merlin-reader = callPackage ../development/tools/ocaml/merlin/dot-merlin-reader.nix { };
+  inherit (ocamlPackages) dot-merlin-reader;
 
   dozenal = callPackage ../applications/misc/dozenal { };
 
@@ -2166,7 +2316,7 @@ in
 
   duf = callPackage ../tools/misc/duf { };
 
-  inherit (ocamlPackages) dune dune_2 dune-release;
+  inherit (ocamlPackages) dune_1 dune_2 dune-release;
 
   duperemove = callPackage ../tools/filesystems/duperemove { };
 
@@ -2195,6 +2345,8 @@ in
 
   edac-utils = callPackage ../os-specific/linux/edac-utils { };
 
+  eddy = libsForQt5.callPackage ../applications/graphics/eddy { };
+
   eggdrop = callPackage ../tools/networking/eggdrop { };
 
   eksctl = callPackage ../tools/admin/eksctl { };
@@ -2217,6 +2369,8 @@ in
 
   enca = callPackage ../tools/text/enca { };
 
+  enigma = callPackage ../games/enigma {};
+
   ent = callPackage ../tools/misc/ent { };
 
   envconsul = callPackage ../tools/system/envconsul { };
@@ -2277,16 +2431,22 @@ in
 
   fileshelter = callPackage ../servers/web-apps/fileshelter { };
 
+  fioctl = callPackage ../tools/admin/fioctl { };
+
   firecracker = callPackage ../applications/virtualization/firecracker { };
 
   firectl = callPackage ../applications/virtualization/firectl { };
 
   firestarter = callPackage ../applications/misc/firestarter { };
 
+  frangipanni = callPackage ../tools/text/frangipanni { };
+
   fselect = callPackage ../tools/misc/fselect { };
 
   fsmon = callPackage ../tools/misc/fsmon { };
 
+  fst = callPackage ../tools/text/fst { };
+
   fsql = callPackage ../tools/misc/fsql { };
 
   fop = callPackage ../tools/typesetting/fop {
@@ -2309,11 +2469,13 @@ in
 
   fuzzel = callPackage ../applications/misc/fuzzel { };
 
-  flashfocus = python3Packages.callPackage ../misc/flashfocus { };
+  flashfocus = callPackage ../misc/flashfocus { };
 
   qt-video-wlr = libsForQt5.callPackage ../applications/misc/qt-video-wlr { };
 
-  fwup = callPackage ../tools/misc/fwup { };
+  fwup = callPackage ../tools/misc/fwup {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration;
+  };
 
   fx_cast_bridge = callPackage ../tools/misc/fx_cast { };
 
@@ -2325,6 +2487,8 @@ in
 
   g2o = libsForQt5.callPackage ../development/libraries/g2o { };
 
+  gb-backup = callPackage ../tools/backup/gamerbackup { };
+
   gbsplay = callPackage ../applications/audio/gbsplay { };
 
   gdrivefs = python27Packages.gdrivefs;
@@ -2335,6 +2499,8 @@ in
 
   go-chromecast = callPackage ../applications/video/go-chromecast { };
 
+  go-containerregistry = callPackage ../development/tools/go-containerregistry { };
+
   go-rice = callPackage ../tools/misc/go.rice {};
 
   go-2fa = callPackage ../tools/security/2fa {};
@@ -2416,6 +2582,8 @@ in
 
   gringo = callPackage ../tools/misc/gringo { };
 
+  grit = callPackage ../tools/misc/grit { };
+
   grobi = callPackage ../tools/X11/grobi { };
 
   gscan2pdf = callPackage ../applications/graphics/gscan2pdf { };
@@ -2440,6 +2608,8 @@ in
 
   hid-listen = callPackage ../tools/misc/hid-listen { };
 
+  hidrd = callPackage ../tools/misc/hidrd { };
+
   hocr-tools = with python3Packages; toPythonApplication hocr-tools;
 
   home-manager = callPackage ../tools/package-management/home-manager {};
@@ -2476,6 +2646,8 @@ in
 
   jotta-cli = callPackage ../applications/misc/jotta-cli { };
 
+  joycond = callPackage ../os-specific/linux/joycond { };
+
   jwt-cli = callPackage ../tools/security/jwt-cli {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -2494,6 +2666,8 @@ in
 
   klog = qt5.callPackage ../applications/radio/klog { };
 
+  krapslog = callPackage ../tools/misc/krapslog { };
+
   lcdproc = callPackage ../servers/monitoring/lcdproc { };
 
   languagetool = callPackage ../tools/text/languagetool {  };
@@ -2504,6 +2678,8 @@ in
 
   lief = callPackage ../development/libraries/lief {};
 
+  libnbd = callPackage ../development/libraries/libnbd { };
+
   libndtypes = callPackage ../development/libraries/libndtypes { };
 
   libxnd = callPackage ../development/libraries/libxnd { };
@@ -2512,6 +2688,8 @@ in
 
   linuxptp = callPackage ../os-specific/linux/linuxptp { };
 
+  lisgd = callPackage ../tools/inputmethods/lisgd { };
+
   lite = callPackage ../applications/editors/lite { };
 
   loadwatch = callPackage ../tools/system/loadwatch { };
@@ -2548,6 +2726,8 @@ in
 
   massren = callPackage ../tools/misc/massren { };
 
+  mat2 = with python3.pkgs; toPythonApplication mat2;
+
   maxcso = callPackage ../tools/archivers/maxcso {};
 
   medusa = callPackage ../tools/security/medusa { };
@@ -2596,6 +2776,8 @@ in
 
   monsoon = callPackage ../tools/security/monsoon {};
 
+  moodle-dl = callPackage ../tools/networking/moodle-dl { };
+
   mousetweaks = callPackage ../applications/accessibility/mousetweaks {
     inherit (pkgs.xorg) libX11 libXtst libXfixes;
   };
@@ -2632,6 +2814,8 @@ in
 
   nix-template = callPackage ../tools/package-management/nix-template { };
 
+  nodepy-runtime = with python3.pkgs; toPythonApplication nodepy-runtime;
+
   nixpkgs-pytools = with python3.pkgs; toPythonApplication nixpkgs-pytools;
 
   noteshrink = callPackage ../tools/misc/noteshrink { };
@@ -2696,13 +2880,17 @@ in
 
   playerctl = callPackage ../tools/audio/playerctl { };
 
+  poweralertd = callPackage ../tools/misc/poweralertd { };
+
   ps_mem = callPackage ../tools/system/ps_mem { };
 
   psstop = callPackage ../tools/system/psstop { };
 
   precice = callPackage ../development/libraries/precice { };
 
-  pueue = callPackage ../applications/misc/pueue { };
+  pueue = callPackage ../applications/misc/pueue {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+  };
 
   pixiecore = callPackage ../tools/networking/pixiecore {};
 
@@ -2716,6 +2904,7 @@ in
 
   procs = callPackage ../tools/admin/procs {
     inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin) libiconv;
   };
 
   psrecord = python3Packages.callPackage ../tools/misc/psrecord {};
@@ -2764,6 +2953,7 @@ in
 
   step-ca = callPackage ../tools/security/step-ca {
     inherit (darwin.apple_sdk.frameworks) PCSC;
+    buildGoModule = buildGo115Module;
   };
 
   step-cli = callPackage ../tools/security/step-cli { };
@@ -2806,7 +2996,9 @@ in
 
   roundcubePlugins = dontRecurseIntoAttrs (callPackage ../servers/roundcube/plugins { });
 
-  routinator = callPackage ../servers/routinator { };
+  routinator = callPackage ../servers/routinator {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   rsbep = callPackage ../tools/backup/rsbep { };
 
@@ -2861,6 +3053,8 @@ in
 
   mstflint = callPackage ../tools/misc/mstflint { };
 
+  mslink = callPackage ../tools/misc/mslink { };
+
   mcelog = callPackage ../os-specific/linux/mcelog {
     util-linux = util-linuxMinimal;
   };
@@ -2902,8 +3096,6 @@ in
   });
 
   asciidoctor = callPackage ../tools/typesetting/asciidoctor {
-    # kindlegen is unfree, don't enable by default
-    kindlegen = null;
     # epubcheck pulls in Java, which is problematic on some platforms
     epubcheck = null;
   };
@@ -2950,6 +3142,25 @@ in
     pythonPackages = python3Packages;
   };
 
+  beetsExternalPlugins =
+    let
+      pluginArgs = {
+        # This is a stripped down beets for testing of the external plugins.
+        beets = (beets.override {
+          enableAlternatives = false;
+          enableCopyArtifacts = false;
+          enableExtraFiles = false;
+        }).overrideAttrs (lib.const {
+          doInstallCheck = false;
+        });
+        pythonPackages = python3Packages;
+      };
+    in lib.recurseIntoAttrs {
+      alternatives = callPackage ../tools/audio/beets/plugins/alternatives.nix pluginArgs;
+      copyartifacts = callPackage ../tools/audio/beets/plugins/copyartifacts.nix pluginArgs;
+      extrafiles = callPackage ../tools/audio/beets/plugins/extrafiles.nix pluginArgs;
+    };
+
   bento4 = callPackage ../tools/video/bento4 { };
 
   bepasty = callPackage ../tools/misc/bepasty { };
@@ -2993,9 +3204,7 @@ in
     librsync = librsync_0_9;
   };
 
-  bud = callPackage ../tools/networking/bud {
-    inherit (pythonPackages) gyp;
-  };
+  bud = callPackage ../tools/networking/bud { };
 
   bump2version = python37Packages.callPackage ../applications/version-management/git-and-tools/bump2version { };
 
@@ -3015,10 +3224,14 @@ in
 
   anydesk = callPackage ../applications/networking/remote/anydesk { };
 
+  anystyle-cli = callPackage ../tools/misc/anystyle-cli { };
+
   atool = callPackage ../tools/archivers/atool { };
 
   bash_unit = callPackage ../tools/misc/bash_unit { };
 
+  boltbrowser = callPackage ../tools/misc/boltbrowser { };
+
   bsc = callPackage ../tools/compression/bsc {
     inherit (llvmPackages) openmp;
   };
@@ -3029,9 +3242,7 @@ in
 
   cabextract = callPackage ../tools/archivers/cabextract { };
 
-  cadaver = callPackage ../tools/networking/cadaver {
-    openssl = openssl_1_0_2;
-  };
+  cadaver = callPackage ../tools/networking/cadaver { };
 
   davix = callPackage ../tools/networking/davix { };
 
@@ -3090,6 +3301,8 @@ in
 
   checkinstall = callPackage ../tools/package-management/checkinstall { };
 
+  checkmake = callPackage ../development/tools/checkmake { };
+
   chit = callPackage ../development/tools/chit { };
 
   chkrootkit = callPackage ../tools/security/chkrootkit { };
@@ -3100,6 +3313,8 @@ in
 
   chunksync = callPackage ../tools/backup/chunksync { };
 
+  cicero-tui = callPackage ../tools/misc/cicero-tui { };
+
   cipherscan = callPackage ../tools/security/cipherscan {
     openssl = if stdenv.hostPlatform.system == "x86_64-linux"
       then openssl-chacha
@@ -3115,6 +3330,7 @@ in
   clementine = libsForQt514.callPackage ../applications/audio/clementine {
     gst_plugins =
       with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav ];
+    protobuf = protobuf3_14;
   };
 
   clementineUnfree = clementine.unfree;
@@ -3127,7 +3343,7 @@ in
 
   circus = callPackage ../tools/networking/circus { };
 
-  citrix_workspace = citrix_workspace_21_01_0;
+  citrix_workspace = citrix_workspace_21_03_0;
 
   inherit (callPackage ../applications/networking/remote/citrix-workspace { })
     citrix_workspace_20_04_0
@@ -3136,6 +3352,7 @@ in
     citrix_workspace_20_10_0
     citrix_workspace_20_12_0
     citrix_workspace_21_01_0
+    citrix_workspace_21_03_0
   ;
 
   citra = libsForQt5.callPackage ../misc/emulators/citra { };
@@ -3156,8 +3373,6 @@ in
 
   colordiff = callPackage ../tools/text/colordiff { };
 
-  concurrencykit = callPackage ../development/libraries/concurrencykit { };
-
   connect = callPackage ../tools/networking/connect { };
 
   conspy = callPackage ../os-specific/linux/conspy {};
@@ -3210,6 +3425,10 @@ in
 
   usbsdmux = callPackage ../development/tools/misc/usbsdmux { };
 
+  usbview = callPackage ../tools/misc/usbview { };
+
+  uwuify = callPackage ../tools/misc/uwuify { };
+
   anthy = callPackage ../tools/inputmethods/anthy { };
 
   evdevremapkeys = callPackage ../tools/inputmethods/evdevremapkeys { };
@@ -3234,12 +3453,12 @@ in
 
   netevent = callPackage ../tools/inputmethods/netevent { };
 
+  netplan = callPackage ../tools/admin/netplan { };
+
   skktools = callPackage ../tools/inputmethods/skk/skktools { };
   skk-dicts = callPackage ../tools/inputmethods/skk/skk-dicts { };
 
-  libkkc-data = callPackage ../data/misc/libkkc-data {
-    inherit (pythonPackages) marisa;
-  };
+  libkkc-data = callPackage ../data/misc/libkkc-data { };
 
   libkkc = callPackage ../tools/inputmethods/libkkc { };
 
@@ -3250,7 +3469,9 @@ in
   ibus-engines = recurseIntoAttrs {
     anthy = callPackage ../tools/inputmethods/ibus-engines/ibus-anthy { };
 
-    bamboo = callPackage ../tools/inputmethods/ibus-engines/ibus-bamboo { };
+    bamboo = callPackage ../tools/inputmethods/ibus-engines/ibus-bamboo {
+      go = go_1_15;
+    };
 
     hangul = callPackage ../tools/inputmethods/ibus-engines/ibus-hangul { };
 
@@ -3394,11 +3615,6 @@ in
 
   cudaPackages = recurseIntoAttrs (callPackage ../development/compilers/cudatoolkit {});
   inherit (cudaPackages)
-    cudatoolkit_6
-    cudatoolkit_6_5
-    cudatoolkit_7
-    cudatoolkit_7_5
-    cudatoolkit_8
     cudatoolkit_9
     cudatoolkit_9_0
     cudatoolkit_9_1
@@ -3408,16 +3624,14 @@ in
     cudatoolkit_10_1
     cudatoolkit_10_2
     cudatoolkit_11
-    cudatoolkit_11_0;
+    cudatoolkit_11_0
+    cudatoolkit_11_1
+    cudatoolkit_11_2;
 
   cudatoolkit = cudatoolkit_10;
 
   cudnnPackages = callPackages ../development/libraries/science/math/cudnn { };
   inherit (cudnnPackages)
-    cudnn_cudatoolkit_7
-    cudnn_cudatoolkit_7_5
-    cudnn6_cudatoolkit_8
-    cudnn_cudatoolkit_8
     cudnn_cudatoolkit_9
     cudnn_cudatoolkit_9_0
     cudnn_cudatoolkit_9_1
@@ -3427,18 +3641,37 @@ in
     cudnn_cudatoolkit_10_1
     cudnn_cudatoolkit_10_2
     cudnn_cudatoolkit_11
-    cudnn_cudatoolkit_11_0;
+    cudnn_cudatoolkit_11_0
+    cudnn_cudatoolkit_11_1
+    cudnn_cudatoolkit_11_2;
 
   cudnn = cudnn_cudatoolkit_10;
 
+  cutensorPackages = callPackages ../development/libraries/science/math/cutensor { };
+  inherit (cutensorPackages)
+    cutensor_cudatoolkit_10
+    cutensor_cudatoolkit_10_1
+    cutensor_cudatoolkit_10_2
+    cutensor_cudatoolkit_11
+    cutensor_cudatoolkit_11_0
+    cutensor_cudatoolkit_11_1
+    cutensor_cudatoolkit_11_2;
+
+  cutensor = cutensor_cudatoolkit_10;
+
+  curie = callPackage ../data/fonts/curie { };
+
   curlFull = curl.override {
-    idnSupport = true;
     ldapSupport = true;
+  };
+
+  curl = curlMinimal.override {
+    idnSupport = true;
     gssSupport = true;
     brotliSupport = true;
   };
 
-  curl = callPackage ../tools/networking/curl { };
+  curlMinimal = callPackage ../tools/networking/curl { };
 
   curl_unix_socket = callPackage ../tools/networking/curl-unix-socket { };
 
@@ -3449,7 +3682,7 @@ in
 
   curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
 
-  cutter = callPackage ../tools/networking/cutter { };
+  tcp-cutter = callPackage ../tools/networking/tcp-cutter { };
 
   cwebbin = callPackage ../development/tools/misc/cwebbin { };
 
@@ -3473,7 +3706,15 @@ in
 
   davfs2 = callPackage ../tools/filesystems/davfs2 { };
 
-  dbeaver = callPackage ../applications/misc/dbeaver { };
+  dbeaver = callPackage ../applications/misc/dbeaver {
+    jdk = jdk11; # AlgorithmId.md5WithRSAEncryption_oid was removed in jdk15
+
+    # TODO: remove once maven uses JDK 11
+    # error: org/eclipse/tycho/core/p2/P2ArtifactRepositoryLayout has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
+    maven = maven.override {
+      jdk = jdk11;
+    };
+  };
 
   dbench = callPackage ../development/tools/misc/dbench { };
 
@@ -3498,7 +3739,8 @@ in
   };
 
   deno = callPackage ../development/web/deno {
-    inherit (darwin.apple_sdk.frameworks) Security CoreServices;
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices Metal Foundation;
   };
 
   detox = callPackage ../tools/misc/detox { };
@@ -3565,6 +3807,8 @@ in
 
   dnstop = callPackage ../tools/networking/dnstop { };
 
+  dnsviz = python3Packages.callPackage ../tools/networking/dnsviz { };
+
   dnsx = callPackage ../tools/security/dnsx { };
 
   dhcp = callPackage ../tools/networking/dhcp { };
@@ -3598,6 +3842,11 @@ in
     inherit (pythonPackages) mutagen python wrapPython;
   };
 
+  dirdiff = callPackage ../tools/text/dirdiff {
+    tcl = tcl-8_5;
+    tk = tk-8_5;
+  };
+
   picotts = callPackage ../tools/audio/picotts { };
 
   wgetpaste = callPackage ../tools/text/wgetpaste { };
@@ -3676,9 +3925,16 @@ in
   };
 
   drone = callPackage ../development/tools/continuous-integration/drone { };
+  drone-oss = callPackage ../development/tools/continuous-integration/drone {
+    enableUnfree = false;
+  };
 
   drone-cli = callPackage ../development/tools/continuous-integration/drone-cli { };
 
+  drone-runner-exec = callPackage ../development/tools/continuous-integration/drone-runner-exec { };
+
+  drone-runner-docker = callPackage ../development/tools/continuous-integration/drone-runner-docker { };
+
   dropbear = callPackage ../tools/networking/dropbear { };
 
   dsview = libsForQt5.callPackage ../applications/science/electronics/dsview { };
@@ -3773,6 +4029,8 @@ in
 
   kramdown-asciidoc = callPackage ../tools/typesetting/kramdown-asciidoc { };
 
+  lychee = callPackage ../tools/networking/lychee { };
+
   magic-vlsi = callPackage ../applications/science/electronics/magic-vlsi { };
 
   mcrcon = callPackage ../tools/networking/mcrcon {};
@@ -3835,27 +4093,21 @@ in
 
   volctl = callPackage ../tools/audio/volctl { };
 
-  vorta = libsForQt5.callPackage ../applications/backup/vorta { };
-
-  utahfs = callPackage ../applications/networking/utahfs { };
-
-  wallutils = callPackage ../tools/graphics/wallutils { };
-
-  wayland-utils = callPackage ../tools/wayland/wayland-utils { };
-
-  wev = callPackage ../tools/misc/wev { };
+  volk = callPackage ../development/libraries/volk { };
 
-  wl-clipboard = callPackage ../tools/misc/wl-clipboard { };
+  vorta = libsForQt5.callPackage ../applications/backup/vorta { };
 
-  wlsunset = callPackage ../tools/wayland/wlsunset { };
+  vowpal-wabbit = callPackage ../applications/science/machine-learning/vowpal-wabbit { };
 
-  wob = callPackage ../tools/misc/wob { };
+  utahfs = callPackage ../applications/networking/utahfs { };
 
-  wtype = callPackage ../tools/wayland/wtype { };
+  wakeonlan = callPackage ../tools/networking/wakeonlan { };
 
-  wrangler = callPackage ../development/tools/wrangler { };
+  wallutils = callPackage ../tools/graphics/wallutils { };
 
-  wshowkeys = callPackage ../tools/wayland/wshowkeys { };
+  wrangler = callPackage ../development/tools/wrangler {
+   inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Security;
+  };
 
   wsl-open = callPackage ../tools/misc/wsl-open { };
 
@@ -3944,6 +4196,8 @@ in
 
   emem = callPackage ../applications/misc/emem { };
 
+  empty = callPackage ../tools/misc/empty { };
+
   emulsion = callPackage ../applications/graphics/emulsion {
     inherit (darwin.apple_sdk.frameworks) AppKit CoreGraphics CoreServices Foundation OpenGL;
   };
@@ -3976,9 +4230,7 @@ in
 
   epsxe = callPackage ../misc/emulators/epsxe { };
 
-  escrotum = callPackage ../tools/graphics/escrotum {
-    inherit (pythonPackages) buildPythonApplication pygtk numpy;
-  };
+  escrotum = callPackage ../tools/graphics/escrotum { };
 
   etcher = callPackage ../tools/misc/etcher { };
 
@@ -4026,6 +4278,8 @@ in
 
   expect = callPackage ../tools/misc/expect { };
 
+  expliot = python3Packages.callPackage ../tools/security/expliot { };
+
   f2fs-tools = callPackage ../tools/filesystems/f2fs-tools { };
 
   Fabric = with python3Packages; toPythonApplication Fabric;
@@ -4205,9 +4459,9 @@ in
 
   libbladeRF = callPackage ../development/libraries/libbladeRF { };
 
-  lp_solve = callPackage ../applications/science/math/lp_solve { };
+  libbtbb = callPackage ../development/libraries/libbtbb { };
 
-  lprof = callPackage ../tools/graphics/lprof { };
+  lp_solve = callPackage ../applications/science/math/lp_solve { };
 
   fastlane = callPackage ../tools/admin/fastlane { };
 
@@ -4231,6 +4485,8 @@ in
 
   flamegraph = callPackage ../development/tools/flamegraph { };
 
+  flawfinder = callPackage ../development/tools/flawfinder { };
+
   flips = callPackage ../tools/compression/flips { };
 
   flvtool2 = callPackage ../tools/video/flvtool2 {
@@ -4241,6 +4497,8 @@ in
     python = python2;
   };
 
+  fontfor = callPackage ../tools/misc/fontfor { };
+
   fontforge = lowPrio (callPackage ../tools/misc/fontforge {
     inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
     python = python3;
@@ -4281,6 +4539,10 @@ in
 
   fprintd = callPackage ../tools/security/fprintd { };
 
+  fprintd-tod = callPackage ../tools/security/fprintd {
+    libfprint = libfprint-tod;
+  };
+
   ferdi = callPackage ../applications/networking/instant-messengers/ferdi {
     mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
   };
@@ -4289,6 +4551,8 @@ in
     mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
   };
 
+  freac = callPackage ../applications/audio/freac { };
+
   freedroid = callPackage ../games/freedroid { };
 
   freedroidrpg = callPackage ../games/freedroidrpg { };
@@ -4305,6 +4569,8 @@ in
 
   freetds = callPackage ../development/libraries/freetds { };
 
+  freetube = callPackage ../applications/video/freetube { };
+
   freqtweak = callPackage ../applications/audio/freqtweak {
     wxGTK = wxGTK31-gtk2;
   };
@@ -4470,6 +4736,17 @@ in
     humanfriendly;
   };
 
+  git-annex-remote-googledrive = callPackage ../applications/version-management/git-and-tools/git-annex-remote-googledrive {
+    inherit (python3Packages)
+    buildPythonApplication
+    fetchPypi
+    annexremote
+    drivelib
+    GitPython
+    tenacity
+    humanfriendly;
+  };
+
   git-annex-remote-rclone = callPackage ../applications/version-management/git-and-tools/git-annex-remote-rclone { };
 
   git-annex-utils = callPackage ../applications/version-management/git-and-tools/git-annex-utils { };
@@ -4613,6 +4890,8 @@ in
 
   gitfs = callPackage ../tools/filesystems/gitfs { };
 
+  github-backup = callPackage ../tools/misc/github-backup { };
+
   gitin = callPackage ../applications/version-management/git-and-tools/gitin { };
 
   gitinspector = callPackage ../applications/version-management/gitinspector { };
@@ -4649,7 +4928,6 @@ in
 
   gitui = callPackage ../applications/version-management/git-and-tools/gitui {
     inherit (darwin.apple_sdk.frameworks) Security AppKit;
-    inherit (pkgs) openssl perl;
   };
 
   gogs = callPackage ../applications/version-management/gogs { };
@@ -4674,8 +4952,6 @@ in
     inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav;
   };
 
-  gmvault = callPackage ../tools/networking/gmvault { };
-
   gnash = callPackage ../misc/gnash {
     autoreconfHook = buildPackages.autoreconfHook269;
   };
@@ -4698,6 +4974,8 @@ in
 
   gnuapl = callPackage ../development/interpreters/gnu-apl { };
 
+  gnucap = callPackage ../applications/science/electronics/gnucap { };
+
   gnu-cobol = callPackage ../development/compilers/gnu-cobol { };
 
   gnuclad = callPackage ../applications/graphics/gnuclad { };
@@ -4783,8 +5061,6 @@ in
 
   google-compute-engine-oslogin = callPackage ../tools/virtualization/google-compute-engine-oslogin { };
 
-  google-music-scripts = callPackage ../tools/audio/google-music-scripts { };
-
   google-cloud-cpp = callPackage ../development/libraries/google-cloud-cpp { };
 
   gdown = with python3Packages; toPythonApplication gdown;
@@ -4803,6 +5079,8 @@ in
 
   gparted = callPackage ../tools/misc/gparted { };
 
+  gpt2tc = callPackage ../tools/text/gpt2tc { };
+
   ldmtool = callPackage ../tools/misc/ldmtool { };
 
   gpodder = callPackage ../applications/audio/gpodder { };
@@ -4929,7 +5207,6 @@ in
   gt5 = callPackage ../tools/system/gt5 { };
 
   gtest = callPackage ../development/libraries/gtest { };
-  gmock = gtest; # TODO: move to aliases.nix
 
   gbenchmark = callPackage ../development/libraries/gbenchmark {};
 
@@ -5087,13 +5364,7 @@ in
 
   hdf5-blosc = callPackage ../development/libraries/hdf5-blosc { };
 
-  hdfview = callPackage ../tools/misc/hdfview {
-    javac = jdk8; # TODO: https://github.com/NixOS/nixpkgs/pull/89731
-  };
-
-  hdf_java = callPackage ../tools/misc/hdfjava {
-    javac = jdk8; # TODO: https://github.com/NixOS/nixpkgs/pull/89731
-  };
+  hdfview = callPackage ../tools/misc/hdfview { };
 
   hecate = callPackage ../applications/editors/hecate { };
 
@@ -5352,6 +5623,8 @@ in
 
   ispike = callPackage ../development/libraries/science/robotics/ispike { };
 
+  isrcsubmit = callPackage ../tools/audio/isrcsubmit { };
+
   isync = callPackage ../tools/networking/isync {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -5480,13 +5753,17 @@ in
   kalibrate-hackrf = callPackage ../applications/radio/kalibrate-hackrf { };
 
   wrapKakoune = kakoune: attrs: callPackage ../applications/editors/kakoune/wrapper.nix (attrs // { inherit kakoune; });
-  kakounePlugins = callPackage ../applications/editors/kakoune/plugins { };
+  kakounePlugins = recurseIntoAttrs (callPackage ../applications/editors/kakoune/plugins { });
+
   kakoune-unwrapped = callPackage ../applications/editors/kakoune { };
   kakoune = wrapKakoune kakoune-unwrapped {
     plugins = [ ];  # override with the list of desired plugins
   };
+  kakouneUtils = callPackage ../applications/editors/kakoune/plugins/kakoune-utils.nix { };
 
-  kak-lsp = callPackage ../tools/misc/kak-lsp { };
+  kak-lsp = callPackage ../tools/misc/kak-lsp {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   kbdd = callPackage ../applications/window-managers/kbdd { };
 
@@ -5548,6 +5825,8 @@ in
 
   knockknock = callPackage ../tools/security/knockknock { };
 
+  knockpy = callPackage ../tools/security/knockpy { };
+
   kore = callPackage ../development/web/kore { };
 
   krakenx = callPackage ../tools/system/krakenx { };
@@ -5580,6 +5859,8 @@ in
 
   k6 = callPackage ../development/tools/k6 { };
 
+  l2md = callPackage ../tools/text/l2md { };
+
   lab = callPackage ../applications/version-management/git-and-tools/lab { };
 
   lalezar-fonts = callPackage ../data/fonts/lalezar-fonts { };
@@ -5598,7 +5879,7 @@ in
 
   lego = callPackage ../tools/admin/lego { };
 
-  leocad = callPackage ../applications/graphics/leocad { };
+  leocad = libsForQt5.callPackage ../applications/graphics/leocad { };
 
   less = callPackage ../tools/misc/less { };
 
@@ -5650,13 +5931,23 @@ in
 
   lockfileProgs = callPackage ../tools/misc/lockfile-progs { };
 
-  logstash6 = callPackage ../tools/misc/logstash/6.x.nix { };
+  logstash6 = callPackage ../tools/misc/logstash/6.x.nix {
+    # https://www.elastic.co/support/matrix#logstash-and-jvm
+    jre = jdk11_headless;
+  };
   logstash6-oss = callPackage ../tools/misc/logstash/6.x.nix {
     enableUnfree = false;
+    # https://www.elastic.co/support/matrix#logstash-and-jvm
+    jre = jdk11_headless;
+  };
+  logstash7 = callPackage ../tools/misc/logstash/7.x.nix {
+    # https://www.elastic.co/support/matrix#logstash-and-jvm
+    jre = jdk11_headless;
   };
-  logstash7 = callPackage ../tools/misc/logstash/7.x.nix { };
   logstash7-oss = callPackage ../tools/misc/logstash/7.x.nix {
     enableUnfree = false;
+    # https://www.elastic.co/support/matrix#logstash-and-jvm
+    jre = jdk11_headless;
   };
   logstash = logstash6;
 
@@ -5684,8 +5975,6 @@ in
 
   kdbg = libsForQt5.callPackage ../development/tools/misc/kdbg { };
 
-  kippo = callPackage ../servers/kippo { };
-
   kristall = libsForQt5.callPackage ../applications/networking/browsers/kristall { };
 
   lagrange = callPackage ../applications/networking/browsers/lagrange {
@@ -5712,6 +6001,8 @@ in
 
   matrix-synapse-tools = recurseIntoAttrs matrix-synapse.tools;
 
+  matrix-appservice-irc = callPackage ../servers/matrix-synapse/matrix-appservice-irc { };
+
   matrix-appservice-slack = callPackage ../servers/matrix-synapse/matrix-appservice-slack {};
 
   matrix-appservice-discord = callPackage ../servers/matrix-appservice-discord { };
@@ -5724,6 +6015,8 @@ in
 
   mcfly = callPackage ../tools/misc/mcfly { };
 
+  m2r = python3Packages.callPackage ../tools/text/m2r { };
+
   mdbook = callPackage ../tools/text/mdbook {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
@@ -5781,6 +6074,10 @@ in
     pythonPackages = python3Packages;
   };
 
+  nats-top = callPackage ../tools/system/nats-top { };
+
+  natscli = callPackage ../tools/system/natscli { };
+
   nbench = callPackage ../tools/misc/nbench { };
 
   ncrack = callPackage ../tools/security/ncrack { };
@@ -5798,6 +6095,8 @@ in
 
   netsniff-ng = callPackage ../tools/networking/netsniff-ng { };
 
+  nkeys = callPackage ../tools/system/nkeys { };
+
   nyxt = callPackage ../applications/networking/browsers/nyxt { };
 
   nfpm = callPackage ../tools/package-management/nfpm { };
@@ -5813,9 +6112,12 @@ in
   nodejs-slim = nodejs-slim-14_x;
 
 
-  nodejs-10_x = callPackage ../development/web/nodejs/v10.nix { };
+  nodejs-10_x = callPackage ../development/web/nodejs/v10.nix {
+    icu = icu67;
+  };
   nodejs-slim-10_x = callPackage ../development/web/nodejs/v10.nix {
     enableNpm = false;
+    icu = icu67;
   };
   nodejs-12_x = callPackage ../development/web/nodejs/v12.nix { };
   nodejs-slim-12_x = callPackage ../development/web/nodejs/v12.nix {
@@ -5861,8 +6163,6 @@ in
 
   jump = callPackage ../tools/system/jump {};
 
-  kindlegen = callPackage ../tools/typesetting/kindlegen { };
-
   latex2html = callPackage ../tools/misc/latex2html { };
 
   latexrun = callPackage ../tools/typesetting/tex/latexrun { };
@@ -5964,6 +6264,8 @@ in
 
   libqmi = callPackage ../development/libraries/libqmi { };
 
+  libqrtr-glib = callPackage ../development/libraries/libqrtr-glib { };
+
   libmbim = callPackage ../development/libraries/libmbim { };
 
   libmongo-client = callPackage ../development/libraries/libmongo-client { };
@@ -5976,6 +6278,8 @@ in
 
   libnixxml = callPackage ../development/libraries/libnixxml { };
 
+  libplctag = callPackage ../development/libraries/libplctag { };
+
   libpointmatcher = callPackage ../development/libraries/libpointmatcher { };
 
   libportal = callPackage ../development/libraries/libportal { };
@@ -6002,6 +6306,8 @@ in
 
   libzmf = callPackage ../development/libraries/libzmf {};
 
+  librespeed-cli = callPackage ../tools/misc/librespeed-cli { };
+
   libreswan = callPackage ../tools/networking/libreswan { };
 
   librest = callPackage ../development/libraries/librest { };
@@ -6076,7 +6382,6 @@ in
   luxcorerender = callPackage ../tools/graphics/luxcorerender { };
 
   xz = callPackage ../tools/compression/xz { };
-  lzma = xz; # TODO: move to aliases.nix
 
   lz4 = callPackage ../tools/compression/lz4 { };
 
@@ -6498,7 +6803,7 @@ in
   grocy = callPackage ../servers/grocy { };
 
   inherit (callPackage ../servers/nextcloud {})
-    nextcloud17 nextcloud18 nextcloud19 nextcloud20;
+    nextcloud18 nextcloud19 nextcloud20 nextcloud21;
 
   nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };
 
@@ -6604,6 +6909,8 @@ in
     graphicalSupport = true;
   };
 
+  nmap-unfree = callPackage ../tools/security/nmap-unfree { };
+
   nmapsi4 = libsForQt514.callPackage ../tools/security/nmap/qt.nix { };
 
   nnn = callPackage ../applications/misc/nnn { };
@@ -6670,6 +6977,8 @@ in
 
   nzbhydra2 = callPackage ../servers/nzbhydra2 { };
 
+  oapi-codegen = callPackage ../tools/networking/oapi-codegen { };
+
   oathToolkit = callPackage ../tools/security/oath-toolkit { };
 
   oatpp = callPackage ../development/libraries/oatpp { };
@@ -6692,6 +7001,10 @@ in
 
   openfortivpn = callPackage ../tools/networking/openfortivpn { };
 
+  opensnitch = callPackage ../tools/networking/opensnitch/daemon.nix { };
+
+  opensnitch-ui = libsForQt5.callPackage ../tools/networking/opensnitch/ui.nix { };
+
   obexfs = callPackage ../tools/bluetooth/obexfs { };
 
   obexftp = callPackage ../tools/bluetooth/obexftp { };
@@ -6720,6 +7033,8 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreFoundation;
   };
 
+  ombi = callPackage ../servers/ombi { };
+
   omping = callPackage ../applications/networking/omping { };
 
   onefetch = callPackage ../tools/misc/onefetch {
@@ -6753,6 +7068,8 @@ in
     opendylan-bootstrap = opendylan_bin;
   };
 
+  ophis = python3Packages.callPackage ../development/compilers/ophis { };
+
   opendylan_bin = callPackage ../development/compilers/opendylan/bin.nix { };
 
   open-ecard = callPackage ../tools/security/open-ecard { };
@@ -6786,20 +7103,21 @@ in
 
   opensm = callPackage ../tools/networking/opensm { };
 
-  openssh =
-    callPackage ../tools/networking/openssh {
-      hpnSupport = false;
-      etcDir = "/etc/ssh";
-      pam = if stdenv.isLinux then pam else null;
-    };
+  opensshPackages = dontRecurseIntoAttrs (callPackage ../tools/networking/openssh {});
 
-  openssh_hpn = pkgs.appendToName "with-hpn" (openssh.override {
-    hpnSupport = true;
-  });
+  openssh = opensshPackages.openssh.override {
+    etcDir = "/etc/ssh";
+  };
 
-  openssh_gssapi = pkgs.appendToName "with-gssapi" (openssh.override {
-    withGssapiPatches = true;
-  });
+  openssh_hpn = opensshPackages.openssh_hpn.override {
+    etcDir = "/etc/ssh";
+  };
+
+  openssh_gssapi = opensshPackages.openssh_gssapi.override {
+    etcDir = "/etc/ssh";
+  };
+
+  ssh-copy-id = callPackage ../tools/networking/openssh/copyid.nix { };
 
   opensp = callPackage ../tools/text/sgml/opensp { };
 
@@ -6881,6 +7199,8 @@ in
 
   owncloud-client = libsForQt514.callPackage ../applications/networking/owncloud-client { };
 
+  oxefmsynth = callPackage ../applications/audio/oxefmsynth { };
+
   oxidized = callPackage ../tools/admin/oxidized { };
 
   oxipng = callPackage ../tools/graphics/oxipng { };
@@ -6988,7 +7308,9 @@ in
 
   pcimem = callPackage ../os-specific/linux/pcimem { };
 
-  pciutils = callPackage ../tools/system/pciutils { };
+  pciutils = callPackage ../tools/system/pciutils {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
 
   pcsclite = callPackage ../tools/security/pcsclite {
     inherit (darwin.apple_sdk.frameworks) IOKit;
@@ -7084,7 +7406,7 @@ in
 
   pinentry_mac = callPackage ../tools/security/pinentry/mac.nix {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
-    xcbuildHook = xcbuild6Hook;
+    xcbuildHook = if stdenv.targetPlatform.isAarch64 then xcbuildHook else xcbuild6Hook;
   };
 
   pingtcp = callPackage ../tools/networking/pingtcp { };
@@ -7122,6 +7444,9 @@ in
 
   plujain-ramp = callPackage ../applications/audio/plujain-ramp { };
 
+  inherit (callPackage ../servers/plik { })
+    plik plikd;
+
   plex = callPackage ../servers/plex { };
   plexRaw = callPackage ../servers/plex/raw.nix { };
 
@@ -7211,6 +7536,8 @@ in
 
   prettyping = callPackage ../tools/networking/prettyping { };
 
+  pritunl-ssh = callPackage ../tools/networking/pritunl-ssh { };
+
   profile-cleaner = callPackage ../tools/misc/profile-cleaner { };
 
   profile-sync-daemon = callPackage ../tools/misc/profile-sync-daemon { };
@@ -7239,12 +7566,16 @@ in
     openssl = openssl_1_0_2;
   };
 
+  prs = callPackage ../tools/security/prs { };
+
   psw = callPackage ../tools/misc/psw { };
 
   pws = callPackage ../tools/misc/pws { };
 
   cntlm = callPackage ../tools/networking/cntlm { };
 
+  past-time = python3Packages.callPackage ../tools/misc/past-time { };
+
   pastebinit = callPackage ../tools/misc/pastebinit { };
 
   pifi = callPackage ../applications/audio/pifi { };
@@ -7297,9 +7628,7 @@ in
 
   pympress = callPackage ../applications/office/pympress { };
 
-  pyspread = python3Packages.callPackage ../applications/office/pyspread {
-    inherit (qt5) qtsvg wrapQtAppsHook;
-  };
+  pyspread = libsForQt5.callPackage ../applications/office/pyspread { };
 
   pythonIRClib = pythonPackages.pythonIRClib;
 
@@ -7373,6 +7702,8 @@ in
 
   qjoypad = callPackage ../tools/misc/qjoypad { };
 
+  qmk = callPackage ../tools/misc/qmk { };
+
   qosmic = libsForQt5.callPackage ../applications/graphics/qosmic { };
 
   qownnotes = libsForQt514.callPackage ../applications/office/qownnotes { };
@@ -7453,8 +7784,7 @@ in
 
   redir = callPackage ../tools/networking/redir { };
 
-  # failed to build websocket-driver gem with ruby 2.6, so sticking to 2.5 for now
-  redmine = callPackage ../applications/version-management/redmine { ruby = pkgs.ruby_2_5; };
+  redmine = callPackage ../applications/version-management/redmine { };
 
   redsocks = callPackage ../tools/networking/redsocks { };
 
@@ -7466,6 +7796,10 @@ in
 
   retext = libsForQt5.callPackage ../applications/editors/retext { };
 
+  inherit (callPackage ../tools/security/rekor { })
+    rekor-cli
+    rekor-server;
+
   richgo = callPackage ../development/tools/richgo {  };
 
   rs = callPackage ../tools/text/rs { };
@@ -7605,6 +7939,8 @@ in
     gperf = gperf_3_0;
   };
 
+  rpm2targz = callPackage ../tools/archivers/rpm2targz { };
+
   rpmextract = callPackage ../tools/archivers/rpmextract { };
 
   rrdtool = callPackage ../tools/misc/rrdtool { };
@@ -7663,6 +7999,8 @@ in
 
   s4cmd = callPackage ../tools/networking/s4cmd { };
 
+  s5cmd = callPackage ../tools/networking/s5cmd { };
+
   s3gof3r = callPackage ../tools/networking/s3gof3r { };
 
   s6-dns = skawarePackages.s6-dns;
@@ -7675,6 +8013,8 @@ in
 
   s6-portable-utils = skawarePackages.s6-portable-utils;
 
+  sacad = callPackage ../tools/misc/sacad { };
+
   safecopy = callPackage ../tools/system/safecopy { };
 
   sacd = callPackage ../tools/cd-dvd/sacd { };
@@ -7719,6 +8059,8 @@ in
     pulseSupport = config.pulseaudio or false;
   };
 
+  scimark = callPackage ../misc/scimark { };
+
   screen = callPackage ../tools/misc/screen {
     inherit (darwin.apple_sdk.libs) utmp;
   };
@@ -7810,7 +8152,7 @@ in
   shabnam-fonts = callPackage ../data/fonts/shabnam-fonts { };
 
   shadowsocks-rust = callPackage ../tools/networking/shadowsocks-rust {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
   shadowsocks-v2ray-plugin = callPackage ../tools/networking/shadowsocks-v2ray-plugin { };
@@ -7880,6 +8222,8 @@ in
 
   sipsak = callPackage ../tools/networking/sipsak { };
 
+  sipvicious = python3Packages.callPackage ../tools/security/sipvicious { };
+
   siril = callPackage ../applications/science/astronomy/siril { };
 
   sisco.lv2 = callPackage ../applications/audio/sisco.lv2 { };
@@ -7960,6 +8304,8 @@ in
 
   spglib = callPackage ../development/libraries/spglib { };
 
+  spicy = callPackage ../development/tools/spicy { };
+
   ssh-askpass-fullscreen = callPackage ../tools/networking/ssh-askpass-fullscreen { };
 
   sshguard = callPackage ../tools/security/sshguard {};
@@ -8015,6 +8361,8 @@ in
 
   stubby = callPackage ../tools/networking/stubby { };
 
+  sunwait = callPackage ../applications/misc/sunwait { };
+
   surface-control = callPackage ../applications/misc/surface-control { };
 
   syntex = callPackage ../tools/graphics/syntex {};
@@ -8027,7 +8375,9 @@ in
 
   solaar = callPackage ../applications/misc/solaar {};
 
-  solanum = callPackage ../servers/irc/solanum {};
+  solanum = callPackage ../servers/irc/solanum {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   sourceHighlight = callPackage ../tools/text/source-highlight { };
 
@@ -8042,6 +8392,8 @@ in
 
   splot = haskell.lib.justStaticExecutables haskellPackages.splot;
 
+  spotdl = callPackage ../tools/audio/spotdl { };
+
   squashfsTools = callPackage ../tools/filesystems/squashfs { };
 
   squashfs-tools-ng = callPackage ../tools/filesystems/squashfs-tools-ng { };
@@ -8093,12 +8445,16 @@ in
 
   super = callPackage ../tools/security/super { };
 
+  supertag = callPackage ../tools/filesystems/supertag { };
+
   supertux-editor = callPackage ../applications/editors/supertux-editor { };
 
   svgbob = callPackage ../tools/graphics/svgbob { };
 
   svgcleaner = callPackage ../tools/graphics/svgcleaner { };
 
+  ssb = callPackage ../tools/security/ssb { };
+
   ssb-patchwork = callPackage ../applications/networking/ssb-patchwork { };
 
   ssdeep = callPackage ../tools/security/ssdeep { };
@@ -8107,12 +8463,7 @@ in
 
   sshpass = callPackage ../tools/networking/sshpass { };
 
-  sslscan = callPackage ../tools/security/sslscan {
-    openssl = openssl_1_0_2.override {
-      enableSSL2 = true;
-      enableSSL3 = true;
-    };
-  };
+  sslscan = callPackage ../tools/security/sslscan { };
 
   sslmate = callPackage ../development/tools/sslmate { };
 
@@ -8132,6 +8483,8 @@ in
 
   stress-ng = callPackage ../tools/system/stress-ng { };
 
+  stressapptest = callPackage ../tools/system/stressapptest { };
+
   stoken = callPackage ../tools/security/stoken (config.stoken or {});
 
   storeBackup = callPackage ../tools/backup/store-backup { };
@@ -8168,6 +8521,8 @@ in
 
   swec = callPackage ../tools/networking/swec { };
 
+  swtpm = callPackage ../tools/security/swtpm { };
+
   svn2git = callPackage ../applications/version-management/git-and-tools/svn2git {
     git = gitSVN;
   };
@@ -8209,6 +8564,8 @@ in
 
   swiften = callPackage ../development/libraries/swiften { };
 
+  squeekboard = callPackage ../applications/accessibility/squeekboard { };
+
   t = callPackage ../tools/misc/t { };
 
   tabnine = callPackage ../development/tools/tabnine { };
@@ -8257,6 +8614,8 @@ in
 
   tdns-cli = callPackage ../tools/networking/tdns-cli { };
 
+  tea = callPackage ../tools/misc/tea { };
+
   ted = callPackage ../tools/typesetting/ted { };
 
   teamviewer = libsForQt514.callPackage ../applications/networking/remote/teamviewer { };
@@ -8299,6 +8658,8 @@ in
 
   texworks = libsForQt5.callPackage ../applications/editors/texworks { };
 
+  tex-match = callPackage ../tools/typesetting/tex/tex-match { };
+
   thc-hydra = callPackage ../tools/security/thc-hydra { };
 
   thc-ipv6 = callPackage ../tools/security/thc-ipv6 { };
@@ -8441,12 +8802,16 @@ in
 
   trezorctl = with python3Packages; toPythonApplication trezor;
 
-  trezord = callPackage ../servers/trezord { };
+  trezord = callPackage ../servers/trezord {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
 
   trezor_agent = with python3Packages; toPythonApplication trezor_agent;
 
   trezor-suite = callPackage ../applications/blockchains/trezor-suite { };
 
+  trunk = callPackage ../development/tools/trunk { };
+
   tthsum = callPackage ../applications/misc/tthsum { };
 
   chaps = callPackage ../tools/security/chaps { };
@@ -8547,6 +8912,8 @@ in
 
   tydra = callPackage ../tools/misc/tydra { };
 
+  tz = callPackage ../tools/misc/tz { };
+
   u9fs = callPackage ../servers/u9fs { };
 
   ua = callPackage ../tools/networking/ua { };
@@ -8555,6 +8922,8 @@ in
 
   ubridge = callPackage ../tools/networking/ubridge { };
 
+  ubertooth = callPackage ../applications/radio/ubertooth { };
+
   ucl = callPackage ../development/libraries/ucl { };
 
   ucspi-tcp = callPackage ../tools/networking/ucspi-tcp { };
@@ -8623,7 +8992,9 @@ in
 
   uwsgi = callPackage ../servers/uwsgi { };
 
-  v2ray = callPackage ../tools/networking/v2ray { };
+  v2ray = callPackage ../tools/networking/v2ray {
+    buildGoModule = buildGo115Module;
+  };
 
   vacuum = callPackage ../applications/networking/instant-messengers/vacuum {};
 
@@ -8678,9 +9049,7 @@ in
     inherit lib udisks2 python3;
   };
 
-  viking = callPackage ../applications/misc/viking {
-    inherit (gnome2) scrollkeeper;
-  };
+  viking = callPackage ../applications/misc/viking { };
 
   vim-vint = callPackage ../development/tools/vim-vint { };
 
@@ -8710,6 +9079,8 @@ in
 
   vo-amrwbenc = callPackage ../development/libraries/vo-amrwbenc { };
 
+  vo-aacenc = callPackage ../development/libraries/vo-aacenc { };
+
   vobcopy = callPackage ../tools/cd-dvd/vobcopy { };
 
   vobsub2srt = callPackage ../tools/cd-dvd/vobsub2srt { };
@@ -8887,6 +9258,8 @@ in
 
   tre = callPackage ../development/libraries/tre { };
 
+  tremor-rs = callPackage ../tools/misc/tremor-rs { };
+
   ts = callPackage ../tools/system/ts { };
 
   transfig = callPackage ../tools/graphics/transfig {
@@ -8897,6 +9270,11 @@ in
 
   ttwatch = callPackage ../tools/misc/ttwatch { };
 
+  turbovnc = callPackage ../tools/admin/turbovnc {
+    # fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc xorg.fontbhlucidatypewriter75dpi ];
+    libjpeg_turbo = libjpeg_turbo.override { enableJava = true; };
+  };
+
   udunits = callPackage ../development/libraries/udunits { };
 
   uftp = callPackage ../servers/uftp {};
@@ -8919,6 +9297,11 @@ in
     withSystemd = true;
   };
 
+  unbound-full = unbound.override {
+    withSystemd = true;
+    withDoH = true;
+  };
+
   unicorn = callPackage ../development/libraries/unicorn { };
 
   units = callPackage ../tools/misc/units {
@@ -8946,6 +9329,8 @@ in
 
   xkbvalidate = callPackage ../tools/X11/xkbvalidate { };
 
+  xkeysnail = callPackage ../tools/X11/xkeysnail { };
+
   xfstests = callPackage ../tools/misc/xfstests { };
 
   xprintidle-ng = callPackage ../tools/X11/xprintidle-ng {};
@@ -8960,6 +9345,8 @@ in
 
   xwallpaper = callPackage ../tools/X11/xwallpaper { };
 
+  gxkb = callPackage ../applications/misc/gxkb { };
+
   xxkb = callPackage ../applications/misc/xxkb { };
 
   ugarit = callPackage ../tools/backup/ugarit {
@@ -9041,6 +9428,18 @@ in
     libpsl = null;
   };
 
+  wget2 = callPackage ../tools/networking/wget2 {
+    # update breaks grub2
+    gnulib = pkgs.gnulib.overrideAttrs (oldAttrs: rec {
+      version = "20210208";
+      src = fetchgit {
+        url = "https://git.savannah.gnu.org/r/gnulib.git";
+        rev = "0b38e1d69f03d3977d7ae7926c1efeb461a8a971";
+        sha256 = "06bj9y8wcfh35h653yk8j044k7h5g82d2j3z3ib69rg0gy1xagzp";
+      };
+    });
+  };
+
   wg-bond = callPackage ../applications/networking/wg-bond { };
 
   which = callPackage ../tools/system/which { };
@@ -9131,6 +9530,8 @@ in
 
   xml2 = callPackage ../tools/text/xml/xml2 { };
 
+  xmldiff = python3Packages.callPackage ../tools/text/xml/xmldiff { };
+
   xmlformat = callPackage ../tools/text/xml/xmlformat { };
 
   xmlroff = callPackage ../tools/typesetting/xmlroff { };
@@ -9143,8 +9544,6 @@ in
     w3m = w3m-batch;
   };
 
-  xmpppy = pythonPackages.xmpppy;
-
   xiccd = callPackage ../tools/misc/xiccd { };
 
   xidlehook = callPackage ../tools/X11/xidlehook {
@@ -9188,6 +9587,8 @@ in
 
   yafaray-core = callPackage ../tools/graphics/yafaray-core { };
 
+  yapf = with python3Packages; toPythonApplication yapf;
+
   yarn = callPackage ../development/tools/yarn  { };
 
   yarn2nix-moretea = callPackage ../development/tools/yarn2nix-moretea/yarn2nix { };
@@ -9208,6 +9609,8 @@ in
 
   yeshup = callPackage ../tools/system/yeshup { };
 
+  ytfzf = callPackage ../tools/misc/ytfzf { };
+
   ytree = callPackage ../tools/misc/ytree { };
 
   yggdrasil = callPackage ../tools/networking/yggdrasil { };
@@ -9250,8 +9653,6 @@ in
   zinnia = callPackage ../tools/inputmethods/zinnia { };
   tegaki-zinnia-japanese = callPackage ../tools/inputmethods/tegaki-zinnia-japanese { };
 
-  zimreader = callPackage ../tools/text/zimreader { };
-
   zimwriterfs = callPackage ../tools/text/zimwriterfs { };
 
   par = callPackage ../tools/text/par { };
@@ -9267,12 +9668,20 @@ in
 
   zinit = callPackage ../shells/zsh/zinit {} ;
 
+  zs-apc-spdu-ctl = callPackage ../tools/networking/zs-apc-spdu-ctl { };
+
+  zs-wait4host = callPackage ../tools/networking/zs-wait4host { };
+
+  zstxtns-utils = callPackage ../tools/text/zstxtns-utils { };
+
   zsh-autoenv = callPackage ../tools/misc/zsh-autoenv { };
 
   zsh-autopair = callPackage ../shells/zsh/zsh-autopair { };
 
   zsh-bd = callPackage ../shells/zsh/zsh-bd { };
 
+  zsh-clipboard = callPackage ../shells/zsh/zsh-clipboard { };
+
   zsh-git-prompt = callPackage ../shells/zsh/zsh-git-prompt { };
 
   zsh-history = callPackage ../shells/zsh/zsh-history { };
@@ -9403,6 +9812,24 @@ in
     jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
+  adoptopenjdk-bin-16-packages-linux = import ../development/compilers/adoptopenjdk-bin/jdk16-linux.nix;
+  adoptopenjdk-bin-16-packages-darwin = import ../development/compilers/adoptopenjdk-bin/jdk16-darwin.nix;
+
+  adoptopenjdk-hotspot-bin-16 = if stdenv.isLinux
+    then callPackage adoptopenjdk-bin-16-packages-linux.jdk-hotspot {}
+    else callPackage adoptopenjdk-bin-16-packages-darwin.jdk-hotspot {};
+  adoptopenjdk-jre-hotspot-bin-16 = if stdenv.isLinux
+    then callPackage adoptopenjdk-bin-16-packages-linux.jre-hotspot {}
+    else callPackage adoptopenjdk-bin-16-packages-darwin.jre-hotspot {};
+
+  adoptopenjdk-openj9-bin-16 = if stdenv.isLinux
+    then callPackage adoptopenjdk-bin-16-packages-linux.jdk-openj9 {}
+    else callPackage adoptopenjdk-bin-16-packages-darwin.jdk-openj9 {};
+
+  adoptopenjdk-jre-openj9-bin-16 = if stdenv.isLinux
+    then callPackage adoptopenjdk-bin-16-packages-linux.jre-openj9 {}
+    else callPackage adoptopenjdk-bin-16-packages-darwin.jre-openj9 {};
+
   adoptopenjdk-bin-15-packages-linux = import ../development/compilers/adoptopenjdk-bin/jdk15-linux.nix;
   adoptopenjdk-bin-15-packages-darwin = import ../development/compilers/adoptopenjdk-bin/jdk15-darwin.nix;
 
@@ -9581,6 +10008,7 @@ in
     };
   };
 
+  clang_12 = llvmPackages_12.clang;
   clang_11 = llvmPackages_11.clang;
   clang_10 = llvmPackages_10.clang;
   clang_9  = llvmPackages_9.clang;
@@ -9642,12 +10070,11 @@ in
   inherit (callPackages ../development/compilers/crystal {
     llvmPackages = llvmPackages_10;
   })
-    crystal_0_31
-    crystal_0_32
     crystal_0_33
     crystal_0_34
     crystal_0_35
     crystal_0_36
+    crystal_1_0
     crystal;
 
   crystal2nix = callPackage ../development/compilers/crystal2nix { };
@@ -9846,6 +10273,9 @@ in
     libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
     threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
 
+    # gcc 10 is too strict to cross compile gcc <= 8
+    stdenv = if (stdenv.targetPlatform != stdenv.buildPlatform) && stdenv.cc.isGNU then gcc7Stdenv else stdenv;
+
     isl = if stdenv.isDarwin
             then null
           else if stdenv.targetPlatform.isRedox
@@ -9862,6 +10292,9 @@ in
     libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
     threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
 
+    # gcc 10 is too strict to cross compile gcc <= 8
+    stdenv = if (stdenv.targetPlatform != stdenv.buildPlatform) && stdenv.cc.isGNU then gcc7Stdenv else stdenv;
+
     isl = if !stdenv.isDarwin then isl_0_17 else null;
   }));
 
@@ -9874,6 +10307,9 @@ in
     libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
     threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
 
+    # gcc 10 is too strict to cross compile gcc <= 8
+    stdenv = if (stdenv.targetPlatform != stdenv.buildPlatform) && stdenv.cc.isGNU then gcc7Stdenv else stdenv;
+
     isl = if !stdenv.isDarwin then isl_0_17 else null;
   }));
 
@@ -9965,7 +10401,7 @@ in
     profiledCompiler = false;
   });
 
-  libgccjit = gcc9.cc.override {
+  libgccjit = gcc.cc.override {
     name = "libgccjit";
     langFortran = false;
     langCC = false;
@@ -10086,8 +10522,7 @@ in
 
   krank = haskell.lib.justStaticExecutables haskellPackages.krank;
 
-  # We use a version built with an older compiler because of https://github.com/pikajude/stylish-cabal/issues/12.
-  stylish-cabal = haskell.lib.justStaticExecutables haskell.packages.ghc865.stylish-cabal;
+  stylish-cabal = haskell.lib.justStaticExecutables haskellPackages.stylish-cabal;
 
   all-cabal-hashes = callPackage ../data/misc/hackage { };
 
@@ -10116,10 +10551,13 @@ in
       graphviz = graphviz-nox;
     });
 
-  inherit (callPackage ../development/compilers/haxe {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_05;
-  }) haxe_3_2 haxe_3_4;
-  haxe = haxe_3_4;
+  inherit (callPackage ../development/compilers/haxe { })
+    haxe_4_2
+    haxe_3_4
+    haxe_3_2
+    ;
+
+  haxe = haxe_4_2;
   haxePackages = recurseIntoAttrs (callPackage ./haxe-packages.nix { });
   inherit (haxePackages) hxcpp;
 
@@ -10141,41 +10579,35 @@ in
 
   glslang = callPackage ../development/compilers/glslang { };
 
-  go_bootstrap = if stdenv.isAarch64 then
-    srcOnly {
-      name = "go-1.8-linux-arm64-bootstrap";
-      src = fetchurl {
-        url = "https://cache.xor.us/go-1.8-linux-arm64-bootstrap.tar.xz";
-        sha256 = "0sk6g03x9gbxk2k1djnrgy8rzw1zc5f6ssw0hbxk6kjr85lpmld6";
-      };
-    }
-  else
-    callPackage ../development/compilers/go/1.4.nix {
-      inherit (darwin.apple_sdk.frameworks) Security;
-    };
-
   go_1_14 = callPackage ../development/compilers/go/1.14.nix ({
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
-  } // lib.optionalAttrs stdenv.isAarch64 {
+  } // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
     stdenv = gcc8Stdenv;
-    buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
+    buildPackages = buildPackages // { stdenv = buildPackages.gcc8Stdenv; };
   });
 
   go_1_15 = callPackage ../development/compilers/go/1.15.nix ({
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
-  } // lib.optionalAttrs stdenv.isAarch64 {
+  } // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
     stdenv = gcc8Stdenv;
-    buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
+    buildPackages = buildPackages // { stdenv = buildPackages.gcc8Stdenv; };
+  });
+
+  go_1_16 = callPackage ../development/compilers/go/1.16.nix ({
+    inherit (darwin.apple_sdk.frameworks) Security Foundation;
+  } // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
+    stdenv = gcc8Stdenv;
+    buildPackages = buildPackages // { stdenv = buildPackages.gcc8Stdenv; };
   });
 
   go_2-dev = callPackage ../development/compilers/go/2-dev.nix ({
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
-  } // lib.optionalAttrs stdenv.isAarch64 {
+  } // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
     stdenv = gcc8Stdenv;
-    buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
+    buildPackages = buildPackages // { stdenv = buildPackages.gcc8Stdenv; };
   });
 
-  go = go_1_15;
+  go = go_1_16;
 
   go-repo-root = callPackage ../development/tools/go-repo-root { };
 
@@ -10403,32 +10835,26 @@ in
 
   jwasm =  callPackage ../development/compilers/jwasm { };
 
-  knightos-genkfs = callPackage ../development/tools/knightos/genkfs {
-    asciidoc = asciidoc-full;
-  };
+  knightos-genkfs = callPackage ../development/tools/knightos/genkfs { };
 
   knightos-kcc = callPackage ../development/tools/knightos/kcc { };
 
-  knightos-kimg = callPackage ../development/tools/knightos/kimg {
-    asciidoc = asciidoc-full;
-  };
+  knightos-kimg = callPackage ../development/tools/knightos/kimg { };
 
   knightos-kpack = callPackage ../development/tools/knightos/kpack { };
 
-  knightos-mkrom = callPackage ../development/tools/knightos/mkrom {
-    asciidoc = asciidoc-full;
-  };
+  knightos-mkrom = callPackage ../development/tools/knightos/mkrom { };
 
   knightos-patchrom = callPackage ../development/tools/knightos/patchrom { };
 
-  knightos-mktiupgrade = callPackage ../development/tools/knightos/mktiupgrade {
-    asciidoc = asciidoc-full;
-  };
+  knightos-mktiupgrade = callPackage ../development/tools/knightos/mktiupgrade { };
 
   knightos-scas = callPackage ../development/tools/knightos/scas { };
 
   knightos-z80e = callPackage ../development/tools/knightos/z80e { };
 
+  koka = haskellPackages.callPackage ../development/compilers/koka { };
+
   kotlin = callPackage ../development/compilers/kotlin { };
 
   lazarus = callPackage ../development/compilers/fpc/lazarus.nix {
@@ -10460,6 +10886,7 @@ in
   lld_9 = llvmPackages_9.lld;
   lld_10 = llvmPackages_10.lld;
   lld_11 = llvmPackages_11.lld;
+  lld_12 = llvmPackages_12.lld;
 
   lldb = llvmPackages_latest.lldb;
   lldb_5 = llvmPackages_5.lldb;
@@ -10469,10 +10896,12 @@ in
   lldb_9 = llvmPackages_9.lldb;
   lldb_10 = llvmPackages_10.lldb;
   lldb_11 = llvmPackages_11.lldb;
+  lldb_12 = llvmPackages_12.lldb;
 
   llvm = llvmPackages.llvm;
   llvm-manpages = llvmPackages.llvm-manpages;
 
+  llvm_12 = llvmPackages_12.llvm;
   llvm_11 = llvmPackages_11.llvm;
   llvm_10 = llvmPackages_10.llvm;
   llvm_9  = llvmPackages_9.llvm;
@@ -10481,7 +10910,7 @@ in
   llvm_6  = llvmPackages_6.llvm;
   llvm_5  = llvmPackages_5.llvm;
 
-  llvmPackages = recurseIntoAttrs (with targetPlatform;
+  llvmPackages = with targetPlatform;
     if isDarwin then
       llvmPackages_7
     else if isFreeBSD then
@@ -10491,55 +10920,63 @@ in
     else if isWasm then
       llvmPackages_8
     else
-      llvmPackages_latest);
+      llvmPackages_latest;
 
-  llvmPackages_5 = callPackage ../development/compilers/llvm/5 {
+  llvmPackages_5 = recurseIntoAttrs (callPackage ../development/compilers/llvm/5 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_5.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_5.libraries;
-  };
+  });
 
-  llvmPackages_6 = callPackage ../development/compilers/llvm/6 {
+  llvmPackages_6 = recurseIntoAttrs (callPackage ../development/compilers/llvm/6 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_6.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_6.libraries;
-  };
+  });
 
-  llvmPackages_7 = callPackage ../development/compilers/llvm/7 {
+  llvmPackages_7 = recurseIntoAttrs (callPackage ../development/compilers/llvm/7 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_7.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_7.libraries;
-  };
+  });
 
-  llvmPackages_8 = callPackage ../development/compilers/llvm/8 {
+  llvmPackages_8 = recurseIntoAttrs (callPackage ../development/compilers/llvm/8 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_8.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_8.libraries;
-  };
+  });
 
-  llvmPackages_9 = callPackage ../development/compilers/llvm/9 {
+  llvmPackages_9 = recurseIntoAttrs (callPackage ../development/compilers/llvm/9 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_9.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_9.libraries;
-  };
+  });
 
-  llvmPackages_10 = callPackage ../development/compilers/llvm/10 {
+  llvmPackages_10 = recurseIntoAttrs (callPackage ../development/compilers/llvm/10 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_10.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_10.libraries;
-  };
+  });
 
-  llvmPackages_11 = callPackage ../development/compilers/llvm/11 ({
+  llvmPackages_11 = recurseIntoAttrs (callPackage ../development/compilers/llvm/11 ({
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_11.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_11.libraries;
   } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
     stdenv = gcc7Stdenv;
-  });
+  }));
+
+  llvmPackages_12 = recurseIntoAttrs (callPackage ../development/compilers/llvm/12 ({
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_12.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_12.libraries;
+  } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
+    stdenv = gcc7Stdenv;
+  }));
 
   llvmPackages_latest = llvmPackages_11;
 
-  llvmPackages_rocm = callPackage ../development/compilers/llvm/rocm { };
+  llvmPackages_rocm = recurseIntoAttrs (callPackage ../development/compilers/llvm/rocm { });
 
   lorri = callPackage ../tools/misc/lorri {
     inherit (darwin.apple_sdk.frameworks) CoreServices Security;
@@ -10613,9 +11050,8 @@ in
 
   muon = callPackage ../development/compilers/muon { };
 
-  nim = callPackage ../development/compilers/nim { };
-  nim-unwrapped = nim.unwrapped;
-  nimble-unwrapped = nim.nimble-unwrapped;
+  inherit (callPackages ../development/compilers/nim { })
+    nim-unwrapped nimble-unwrapped nim;
 
   nrpl = callPackage ../development/tools/nrpl { };
 
@@ -10651,7 +11087,7 @@ in
     ocamlformat # latest version
     ocamlformat_0_11_0 ocamlformat_0_12 ocamlformat_0_13_0 ocamlformat_0_14_0
     ocamlformat_0_14_1 ocamlformat_0_14_2 ocamlformat_0_14_3 ocamlformat_0_15_0
-    ocamlformat_0_15_1 ocamlformat_0_16_0;
+    ocamlformat_0_15_1 ocamlformat_0_16_0 ocamlformat_0_17_0;
 
   orc = callPackage ../development/compilers/orc { };
 
@@ -10668,7 +11104,7 @@ in
   ocsigen-i18n = callPackage ../development/tools/ocaml/ocsigen-i18n { };
 
   opa = callPackage ../development/compilers/opa {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_03;
+    ocamlPackages = ocaml-ng.ocamlPackages_4_04;
   };
 
   opaline = callPackage ../development/tools/ocaml/opaline { };
@@ -10745,14 +11181,14 @@ in
   rust_1_45 = callPackage ../development/compilers/rust/1_45.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
-  rust_1_49 = callPackage ../development/compilers/rust/1_49.nix {
+  rust_1_50 = callPackage ../development/compilers/rust/1_50.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
-  rust = rust_1_49;
+  rust = rust_1_50;
 
   rustPackages_1_45 = rust_1_45.packages.stable;
-  rustPackages_1_49 = rust_1_49.packages.stable;
-  rustPackages = rustPackages_1_49;
+  rustPackages_1_50 = rust_1_50.packages.stable;
+  rustPackages = rustPackages_1_50;
 
   inherit (rustPackages) cargo clippy rustc rustPlatform;
 
@@ -10782,6 +11218,7 @@ in
   cargo-c = callPackage ../development/tools/rust/cargo-c {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
+  cargo-criterion = callPackage ../development/tools/rust/cargo-criterion { };
   cargo-deb = callPackage ../tools/package-management/cargo-deb {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -10813,11 +11250,13 @@ in
   cargo-crev = callPackage ../development/tools/rust/cargo-crev {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
+  cargo-cross = callPackage ../development/tools/rust/cargo-cross { };
   cargo-deny = callPackage ../development/tools/rust/cargo-deny {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-embed = callPackage ../development/tools/rust/cargo-embed { };
   cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
+  cargo-feature = callPackage ../development/tools/rust/cargo-feature { };
   cargo-flash = callPackage ../development/tools/rust/cargo-flash { };
   cargo-fund = callPackage ../development/tools/rust/cargo-fund {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -10835,6 +11274,7 @@ in
   cargo-make = callPackage ../development/tools/rust/cargo-make {
     inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
+  cargo-play = callPackage ../development/tools/rust/cargo-play { };
   cargo-raze = callPackage ../development/tools/rust/cargo-raze {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -10854,6 +11294,10 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  cargo-whatfeatures = callPackage ../development/tools/rust/cargo-whatfeatures {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   crate2nix = callPackage ../development/tools/rust/crate2nix { };
 
   convco = callPackage ../development/tools/convco {
@@ -10872,7 +11316,9 @@ in
   rustracerd = callPackage ../development/tools/rust/racerd {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  inherit (callPackage ../development/tools/rust/rust-analyzer { })
+  inherit (callPackage ../development/tools/rust/rust-analyzer {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  })
     rust-analyzer-unwrapped rust-analyzer;
   rust-bindgen = callPackage ../development/tools/rust/bindgen { };
   rust-cbindgen = callPackage ../development/tools/rust/cbindgen {
@@ -10885,8 +11331,11 @@ in
   sagittarius-scheme = callPackage ../development/compilers/sagittarius-scheme {};
 
   sbclBootstrap = callPackage ../development/compilers/sbcl/bootstrap.nix {};
+  sbcl_2_0_8 = callPackage ../development/compilers/sbcl/2.0.8.nix {};
   sbcl_2_0_9 = callPackage ../development/compilers/sbcl/2.0.9.nix {};
-  sbcl = callPackage ../development/compilers/sbcl {};
+  sbcl_2_1_1 = callPackage ../development/compilers/sbcl/2.1.1.nix {};
+  sbcl_2_1_2 = callPackage ../development/compilers/sbcl/2.1.2.nix {};
+  sbcl = sbcl_2_1_2;
 
   scala_2_10 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.10"; jre = jdk8; };
   scala_2_11 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.11"; jre = jdk8; };
@@ -10918,7 +11367,9 @@ in
 
   smlpkg = callPackage ../tools/package-management/smlpkg { };
 
-  solc = callPackage ../development/compilers/solc { };
+  solc = solc_0_8;
+  solc_0_8 = callPackage ../development/compilers/solc { };
+  solc_0_7 = callPackage ../development/compilers/solc/0.7.nix { };
 
   souffle = callPackage ../development/compilers/souffle {
     autoreconfHook = buildPackages.autoreconfHook269;
@@ -10932,7 +11383,9 @@ in
     jdk = oraclejdk;
   };
 
-  sqlx-cli = callPackage ../development/tools/rust/sqlx-cli { };
+  sqlx-cli = callPackage ../development/tools/rust/sqlx-cli {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration CoreFoundation Security;
+  };
 
   squeak = callPackage ../development/compilers/squeak { };
 
@@ -10998,6 +11451,7 @@ in
     vala_0_44
     vala_0_46
     vala_0_48
+    vala_0_50
     vala;
 
   vyper = with python3Packages; toPythonApplication vyper;
@@ -11122,7 +11576,7 @@ in
 
   dhall-text = haskell.lib.justStaticExecutables haskellPackages.dhall-text;
 
-  dhallPackages = callPackage ./dhall-packages.nix { };
+  dhallPackages = recurseIntoAttrs (callPackage ./dhall-packages.nix { });
 
   duktape = callPackage ../development/interpreters/duktape { };
 
@@ -11284,6 +11738,8 @@ in
     overridePlatforms = ["x86_64-linux" "x86_64-darwin"];
   };
 
+  octavePackages = recurseIntoAttrs octave.pkgs;
+
   ocropus = callPackage ../applications/misc/ocropus { };
 
   pachyderm = callPackage ../applications/networking/cluster/pachyderm { };
@@ -11293,9 +11749,10 @@ in
   #
   # Set default PHP interpreter, extensions and packages
   php = php74;
-  phpExtensions = php74Extensions;
-  phpPackages = php74Packages;
+  phpExtensions = php.extensions;
+  phpPackages = php.packages;
 
+  # Import PHP80 interpreter, extensions and packages
   php80 = callPackage ../development/interpreters/php/8.0.nix {
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
   };
@@ -11344,38 +11801,46 @@ in
   # These are for compatibility and should not be used inside Nixpkgs.
   pythonFull = python.override {
     self = pythonFull;
+    pythonAttr = "pythonFull";
     x11Support = true;
   };
   python2Full = python2.override {
     self = python2Full;
+    pythonAttr = "python2Full";
     x11Support = true;
   };
   python27Full = python27.override {
     self = python27Full;
+    pythonAttr = "python27Full";
     x11Support = true;
   };
   python3Full = python3.override {
     self = python3Full;
+    pythonAttr = "python3Full";
     bluezSupport = true;
     x11Support = true;
   };
   python36Full = python36.override {
     self = python36Full;
+    pythonAttr = "python36Full";
     bluezSupport = true;
     x11Support = true;
   };
   python37Full = python37.override {
     self = python37Full;
+    pythonAttr = "python37Full";
     bluezSupport = true;
     x11Support = true;
   };
   python38Full = python38.override {
     self = python38Full;
+    pythonAttr = "python38Full";
     bluezSupport = true;
     x11Support = true;
   };
   python39Full = python39.override {
     self = python39Full;
+    pythonAttr = "python39Full";
     bluezSupport = true;
     x11Support = true;
   };
@@ -11391,7 +11856,7 @@ in
   # Python package sets.
   python27Packages = python27.pkgs;
   python36Packages = python36.pkgs;
-  python37Packages = recurseIntoAttrs python37.pkgs;
+  python37Packages = python37.pkgs;
   python38Packages = recurseIntoAttrs python38.pkgs;
   python39Packages = recurseIntoAttrs python39.pkgs;
   python310Packages = python310.pkgs;
@@ -11407,8 +11872,6 @@ in
   # Should eventually be moved inside Python interpreters.
   python-setup-hook = callPackage ../development/interpreters/python/setup-hook.nix { };
 
-  python2nix = callPackage ../tools/package-management/python2nix { };
-
   pythonDocs = recurseIntoAttrs (callPackage ../development/interpreters/python/cpython/docs {});
 
   pypi2nix = callPackage ../development/tools/pypi2nix {};
@@ -11503,7 +11966,8 @@ in
     ruby_2_4
     ruby_2_5
     ruby_2_6
-    ruby_2_7;
+    ruby_2_7
+    ruby_3_0;
 
   ruby = ruby_2_6;
   rubyPackages = rubyPackages_2_6;
@@ -11517,6 +11981,7 @@ in
   rubyPackages_2_5 = recurseIntoAttrs ruby_2_5.gems;
   rubyPackages_2_6 = recurseIntoAttrs ruby_2_6.gems;
   rubyPackages_2_7 = recurseIntoAttrs ruby_2_7.gems;
+  rubyPackages_3_0 = recurseIntoAttrs ruby_3_0.gems;
 
   ruby_1_9-gems = recurseIntoAttrs ruby_1_9.gems;
   ruby_2_0-gems = recurseIntoAttrs ruby_2_0.gems;
@@ -11540,12 +12005,6 @@ in
   sparkleshare = callPackage ../applications/version-management/sparkleshare { };
 
   spidermonkey_1_8_5 = callPackage ../development/interpreters/spidermonkey/1.8.5.nix { };
-  spidermonkey_38 = callPackage ../development/interpreters/spidermonkey/38.nix ({
-    inherit (darwin) libobjc;
-  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-  }));
-  spidermonkey_60 = callPackage ../development/interpreters/spidermonkey/60.nix { };
   spidermonkey_68 = callPackage ../development/interpreters/spidermonkey/68.nix { };
   spidermonkey_78 = callPackage ../development/interpreters/spidermonkey/78.nix { };
 
@@ -11566,6 +12025,8 @@ in
 
   tclreadline = callPackage ../development/interpreters/tclreadline { };
 
+  trealla = callPackage ../development/interpreters/trealla { };
+
   wasm = ocamlPackages.wasm;
 
   proglodyte-wasm = callPackage ../development/interpreters/proglodyte-wasm { };
@@ -11652,6 +12113,10 @@ in
   pharo-spur64 = assert stdenv.is64bit; pharo-vms.spur64;
   pharo-launcher = callPackage ../development/pharo/launcher { };
 
+  umr = callPackage ../development/misc/umr {
+    llvmPackages = llvmPackages_latest;
+  };
+
   srandrd = callPackage ../tools/X11/srandrd { };
 
   srecord = callPackage ../development/tools/misc/srecord { };
@@ -11710,9 +12175,10 @@ in
   apacheAnt_1_9 = callPackage ../development/tools/build-managers/apache-ant/1.9.nix { };
   ant = apacheAnt;
 
-  apacheKafka = apacheKafka_2_5;
+  apacheKafka = apacheKafka_2_6;
   apacheKafka_2_4 = callPackage ../servers/apache-kafka { majorVersion = "2.4"; };
   apacheKafka_2_5 = callPackage ../servers/apache-kafka { majorVersion = "2.5"; };
+  apacheKafka_2_6 = callPackage ../servers/apache-kafka { majorVersion = "2.6"; };
 
   kt = callPackage ../tools/misc/kt {};
 
@@ -11724,12 +12190,14 @@ in
 
   astyle = callPackage ../development/tools/misc/astyle { };
 
+  automaticcomponenttoolkit = callPackage ../development/tools/misc/automaticcomponenttoolkit { };
+
   awf = callPackage ../development/tools/misc/awf { };
 
   aws-adfs = with python3Packages; toPythonApplication aws-adfs;
 
   inherit (callPackages ../development/tools/electron { })
-    electron electron_3 electron_4 electron_5 electron_6 electron_7 electron_8 electron_9 electron_10 electron_11;
+    electron electron_3 electron_4 electron_5 electron_6 electron_7 electron_8 electron_9 electron_10 electron_11 electron_12;
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
@@ -11855,7 +12323,6 @@ in
   });
 
   bison = callPackage ../development/tools/parsing/bison { };
-  yacc = bison; # TODO: move to aliases.nix
 
   # Ruby fails to build with current bison
   bison_3_5 = pkgs.bison.overrideAttrs (oldAttrs: rec {
@@ -12000,6 +12467,8 @@ in
 
   cookiecutter = with python3Packages; toPythonApplication cookiecutter;
 
+  corrosion = callPackage ../development/tools/build-managers/corrosion { };
+
   corundum = callPackage ../development/tools/corundum { };
 
   confluent-platform = callPackage ../servers/confluent-platform {};
@@ -12053,8 +12522,7 @@ in
   cpplint = callPackage ../development/tools/analysis/cpplint { };
 
   ccls = callPackage ../development/tools/misc/ccls {
-    llvmPackages = llvmPackages_8;
-    stdenv = llvmPackages_8.stdenv;
+    llvmPackages = llvmPackages_latest;
   };
 
   credstash = with python3Packages; toPythonApplication credstash;
@@ -12069,6 +12537,10 @@ in
 
   csslint = callPackage ../development/web/csslint { };
 
+  cvise = python3Packages.callPackage ../development/tools/misc/cvise {
+    inherit (llvmPackages_11) llvm clang-unwrapped;
+  };
+
   libcxx = llvmPackages.libcxx;
   libcxxabi = llvmPackages.libcxxabi;
 
@@ -12230,7 +12702,7 @@ in
   ffuf = callPackage ../tools/security/ffuf { };
 
   flow = callPackage ../development/tools/analysis/flow {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_07;
+    ocamlPackages = ocaml-ng.ocamlPackages_4_09;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
@@ -12272,7 +12744,7 @@ in
     jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
-  fedpkg = pythonPackages.callPackage ../development/tools/fedpkg { };
+  fedpkg = callPackage ../development/tools/fedpkg { };
 
   flex_2_5_35 = callPackage ../development/tools/parsing/flex/2.5.35.nix { };
   flex = callPackage ../development/tools/parsing/flex { };
@@ -12285,6 +12757,8 @@ in
     inherit (xorg) libX11 libXext libXi libXtst;
   };
 
+  gi-docgen = callPackage ../development/tools/documentation/gi-docgen { };
+
   github-release = callPackage ../development/tools/github/github-release { };
 
   global = callPackage ../development/tools/misc/global { };
@@ -12329,6 +12803,8 @@ in
 
   gputils = callPackage ../development/tools/misc/gputils { };
 
+  gpuvis = callPackage ../development/tools/misc/gpuvis { };
+
   gradleGen = callPackage ../development/tools/build-managers/gradle {
     java = jdk8; # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
   };
@@ -12337,6 +12813,7 @@ in
   gradle_4 = gradle_4_10;
   gradle_5 = res.gradleGen.gradle_5_6;
   gradle_6 = res.gradleGen.gradle_6_8;
+  gradle_7 = res.gradleGen.gradle_7;
 
   gperf = callPackage ../development/tools/misc/gperf { };
   # 3.1 changed some parameters from int to size_t, leading to mismatches.
@@ -12434,6 +12911,8 @@ in
 
   augustus = callPackage ../games/augustus { };
 
+  k2tf = callPackage ../development/tools/misc/k2tf { };
+
   kafkacat = callPackage ../development/tools/kafkacat { };
 
   kati = callPackage ../development/tools/build-managers/kati { };
@@ -12452,6 +12931,7 @@ in
 
   khronos-ocl-icd-loader = callPackage ../development/libraries/khronos-ocl-icd-loader {  };
 
+  krankerl = callPackage ../development/tools/krankerl { };
 
   krew = callPackage ../development/tools/krew { };
 
@@ -12473,6 +12953,8 @@ in
 
   kustomize = callPackage ../development/tools/kustomize { };
 
+  kustomize-sops = callPackage ../development/tools/kustomize/kustomize-sops.nix { };
+
   ktlint = callPackage ../development/tools/ktlint { };
 
   kythe = callPackage ../development/tools/kythe { };
@@ -12515,16 +12997,16 @@ in
 
   lttv = callPackage ../development/tools/misc/lttv { };
 
+  luaformatter = callPackage ../development/tools/luaformatter { };
+
   massif-visualizer = libsForQt5.callPackage ../development/tools/analysis/massif-visualizer { };
 
   maven = maven3;
-  maven3 = callPackage ../development/tools/build-managers/apache-maven {
-    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-  };
+  maven3 = callPackage ../development/tools/build-managers/apache-maven { };
 
   mavproxy = python3Packages.callPackage ../applications/science/robotics/mavproxy { };
 
-  go-md2man = callPackage ../development/tools/misc/md2man {};
+  go-md2man = callPackage ../development/tools/misc/go-md2man {};
 
   mage = callPackage ../development/tools/build-managers/mage { };
 
@@ -12596,7 +13078,7 @@ in
     gconf = pkgs.gnome2.GConf;
   };
 
-  # NOTE: Override and set icon-lang = null to use Awk instead of Icon.
+  # NOTE: Override and set useIcon = false to use Awk instead of Icon.
   noweb = callPackage ../development/tools/literate-programming/noweb { };
 
   nuweb = callPackage ../development/tools/literate-programming/nuweb { tex = texlive.combined.scheme-medium; };
@@ -12613,14 +13095,14 @@ in
 
   opengrok = callPackage ../development/tools/misc/opengrok { };
 
-  openocd = callPackage ../development/tools/misc/openocd {
-    autoreconfHook = buildPackages.autoreconfHook269;
-  };
+  openocd = callPackage ../development/tools/misc/openocd { };
 
   oprofile = callPackage ../development/tools/profiling/oprofile {
     libiberty_static = libiberty.override { staticBuild = true; };
   };
 
+  pactorio = callPackage ../development/tools/pactorio { };
+
   pahole = callPackage ../development/tools/misc/pahole {};
 
   panopticon = callPackage ../development/tools/analysis/panopticon {};
@@ -12667,6 +13149,8 @@ in
     };
   }));
 
+  polar = callPackage ../tools/misc/polar { };
+
   inherit (nodePackages) postcss-cli;
 
   postiats-utilities = callPackage ../development/tools/postiats-utilities {};
@@ -12675,6 +13159,8 @@ in
 
   pprof = callPackage ../development/tools/profiling/pprof { };
 
+  pqrs = callPackage ../development/tools/pqrs { };
+
   pyprof2calltree = with python3Packages; toPythonApplication pyprof2calltree;
 
   prelink = callPackage ../development/tools/misc/prelink { };
@@ -12707,12 +13193,14 @@ in
 
   r10k = callPackage ../tools/system/r10k { };
 
-  inherit (callPackages ../development/tools/analysis/radare2 ({
+  radare2 = callPackage ../development/tools/analysis/radare2 ({
     inherit (gnome2) vte;
     lua = lua5;
-  } // (config.radare or {}))) radare2 r2-for-cutter;
+  } // (config.radare or {}));
+
+  rizin = pkgs.callPackage ../development/tools/analysis/rizin { };
 
-  radare2-cutter = libsForQt515.callPackage ../development/tools/analysis/radare2/cutter.nix { };
+  cutter = libsForQt515.callPackage ../development/tools/analysis/rizin/cutter.nix { };
 
   ragel = ragelStable;
 
@@ -12770,8 +13258,6 @@ in
 
   sauce-connect = callPackage ../development/tools/sauce-connect { };
 
-  scaff = callPackage ../development/tools/scaff { };
-
   sd-local = callPackage ../development/tools/sd-local { };
 
   selenium-server-standalone = callPackage ../development/tools/selenium/server { };
@@ -12780,6 +13266,8 @@ in
 
   semver-tool = callPackage ../development/tools/misc/semver-tool { };
 
+  semantik = libsForQt5.callPackage ../applications/office/semantik { };
+
   sconsPackages = dontRecurseIntoAttrs (callPackage ../development/tools/build-managers/scons { });
   scons = sconsPackages.scons_latest;
 
@@ -12795,6 +13283,8 @@ in
 
   scss-lint = callPackage ../development/tools/scss-lint { };
 
+  segger-ozone = callPackage ../development/tools/misc/segger-ozone { };
+
   shadowenv = callPackage ../tools/misc/shadowenv {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -12805,11 +13295,13 @@ in
 
   inherit (callPackage ../development/tools/build-managers/shards { })
     shards_0_11
-    shards_0_12
+    shards_0_14
     shards;
 
   shellcheck = callPackage ../development/tools/shellcheck {};
 
+  shellharden = callPackage ../development/tools/shellharden {};
+
   schemaspy = callPackage ../development/tools/database/schemaspy { };
 
   shncpd = callPackage ../tools/networking/shncpd { };
@@ -12966,11 +13458,16 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreFoundation;
   };
 
+  uddup = python3Packages.callPackage ../tools/security/uddup { };
+
   udis86 = callPackage  ../development/tools/udis86 { };
 
   uefi-firmware-parser = callPackage ../development/tools/analysis/uefi-firmware-parser { };
 
-  uhd = callPackage ../applications/radio/uhd { };
+  uhd3_5 = callPackage ../applications/radio/uhd/3.5.nix { };
+  uhd = callPackage ../applications/radio/uhd {
+    boost = boost17x;
+  };
 
   uisp = callPackage ../development/tools/misc/uisp { };
 
@@ -13014,6 +13511,8 @@ in
 
   vtable-dumper = callPackage ../development/tools/misc/vtable-dumper { };
 
+  whatsapp-for-linux = callPackage ../applications/networking/instant-messengers/whatsapp-for-linux { };
+
   whatstyle = callPackage ../development/tools/misc/whatstyle {
     inherit (llvmPackages) clang-unwrapped;
   };
@@ -13026,6 +13525,8 @@ in
 
   xcb-imdkit = callPackage ../development/libraries/xcb-imdkit { };
 
+  xcode-install = callPackage ../development/tools/xcode-install { };
+
   xcodebuild = callPackage ../development/tools/xcbuild/wrapper.nix {
     inherit (darwin.apple_sdk.frameworks) CoreServices CoreGraphics ImageIO;
   };
@@ -13111,6 +13612,8 @@ in
 
   agg = callPackage ../development/libraries/agg { };
 
+  alass = callPackage ../applications/video/alass { };
+
   allegro = allegro4;
   allegro4 = callPackage ../development/libraries/allegro {};
   allegro5 = callPackage ../development/libraries/allegro/5.nix {};
@@ -13123,6 +13626,8 @@ in
 
   amrwb = callPackage ../development/libraries/amrwb { };
 
+  ansi2html = with python3.pkgs; toPythonApplication ansi2html;
+
   anttweakbar = callPackage ../development/libraries/AntTweakBar { };
 
   appstream = callPackage ../development/libraries/appstream { };
@@ -13195,7 +13700,9 @@ in
 
   aws-c-event-stream = callPackage ../development/libraries/aws-c-event-stream { };
 
-  aws-c-io = callPackage ../development/libraries/aws-c-io { };
+  aws-c-io = callPackage ../development/libraries/aws-c-io {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   aws-checksums = callPackage ../development/libraries/aws-checksums { };
 
@@ -13217,6 +13724,8 @@ in
 
   bctoolbox = callPackage ../development/libraries/bctoolbox { };
 
+  bearssl = callPackage ../development/libraries/bearssl { };
+
   beecrypt = callPackage ../development/libraries/beecrypt { };
 
   belcard = callPackage ../development/libraries/belcard { };
@@ -13303,6 +13812,8 @@ in
 
   hercules-ci-agent = callPackage ../development/tools/continuous-integration/hercules-ci-agent { };
 
+  hci = callPackage ../development/tools/continuous-integration/hci { };
+
   niv = lib.getBin (haskell.lib.justStaticExecutables haskellPackages.niv);
 
   ormolu = haskellPackages.ormolu.bin;
@@ -13476,7 +13987,7 @@ in
   cypress = callPackage ../development/web/cypress { };
 
   cyrus_sasl = callPackage ../development/libraries/cyrus-sasl {
-    kerberos = if stdenv.isFreeBSD then libheimdal else kerberos;
+    libkrb5 = if stdenv.isFreeBSD then libheimdal else libkrb5;
   };
 
   # Make bdb5 the default as it is the last release under the custom
@@ -13717,7 +14228,7 @@ in
 
   fstrm = callPackage ../development/libraries/fstrm { };
 
-  cfitsio = callPackage ../development/libraries/cfitsio { };
+  cfitsio = callPackage ../development/libraries/science/astronomy/cfitsio { };
 
   fontconfig = callPackage ../development/libraries/fontconfig { };
 
@@ -13751,6 +14262,8 @@ in
 
   funambol = callPackage ../development/libraries/funambol { };
 
+  galer = callPackage ../tools/security/galer { };
+
   gamenetworkingsockets = callPackage ../development/libraries/gamenetworkingsockets { };
 
   gamin = callPackage ../development/libraries/gamin { };
@@ -13758,6 +14271,11 @@ in
 
   ganv = callPackage ../development/libraries/ganv { };
 
+  garble = callPackage ../build-support/go/garble.nix {
+    # https://github.com/burrowers/garble/issues/124
+    buildGoModule = buildGo115Module;
+  };
+
   gcab = callPackage ../development/libraries/gcab { };
 
   gcovr = with python3Packages; toPythonApplication gcovr;
@@ -13822,8 +14340,6 @@ in
     autoreconfHook = buildPackages.autoreconfHook269;
   };
 
-  gdal_1_11 = callPackage ../development/libraries/gdal/gdal-1_11.nix { };
-
   gdal_2 = callPackage ../development/libraries/gdal/2.4.nix { };
 
   gdcm = callPackage ../development/libraries/gdcm { };
@@ -13866,6 +14382,8 @@ in
 
   libgit2-glib = callPackage ../development/libraries/libgit2-glib { };
 
+  libhsts = callPackage ../development/libraries/libhsts { };
+
   glbinding = callPackage ../development/libraries/glbinding { };
 
   gle = callPackage ../development/libraries/gle { };
@@ -14029,7 +14547,7 @@ in
 
   gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer {
     callPackage = newScope { libav = pkgs.ffmpeg; };
-    inherit (darwin.apple_sdk.frameworks) CoreServices;
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox AVFoundation Cocoa CoreFoundation CoreMedia CoreServices CoreVideo DiskArbitration Foundation IOKit MediaToolbox OpenGL VideoToolbox;
   });
 
   gusb = callPackage ../development/libraries/gusb { };
@@ -14363,8 +14881,13 @@ in
   } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
       stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
     }));
+  icu68 = callPackage ../development/libraries/icu/68.nix ({
+    nativeBuildRoot = buildPackages.icu68.override { buildRootOnly = true; };
+  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
+      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
+    }));
 
-  icu = icu67;
+  icu = icu68;
 
   id3lib = callPackage ../development/libraries/id3lib { };
 
@@ -14401,7 +14924,9 @@ in
   indicator-application-gtk2 = callPackage ../development/libraries/indicator-application/gtk2.nix { };
   indicator-application-gtk3 = callPackage ../development/libraries/indicator-application/gtk3.nix { };
 
-  indilib = callPackage ../development/libraries/indilib { };
+  indilib = callPackage ../development/libraries/science/astronomy/indilib { };
+  indi-3rdparty = callPackage ../development/libraries/science/astronomy/indilib/indi-3rdparty.nix { };
+  indi-full = callPackage ../development/libraries/science/astronomy/indilib/indi-full.nix { };
 
   inih = callPackage ../development/libraries/inih { };
 
@@ -14428,8 +14953,8 @@ in
   iso-flags = callPackage ../data/icons/iso-flags { };
 
   ispc = callPackage ../development/compilers/ispc {
-    stdenv = llvmPackages_10.stdenv;
-    llvmPackages = llvmPackages_10;
+    stdenv = llvmPackages_11.stdenv;
+    llvmPackages = llvmPackages_11;
   };
 
   isso = callPackage ../servers/isso { };
@@ -14446,6 +14971,8 @@ in
 
   jansson = callPackage ../development/libraries/jansson { };
 
+  jasper = callPackage ../development/libraries/jasper { };
+
   jbig2dec = callPackage ../development/libraries/jbig2dec { };
 
   jcal = callPackage ../development/libraries/jcal { };
@@ -14498,7 +15025,6 @@ in
   };
   krb5Full = krb5;
   libkrb5 = krb5.override { type = "lib"; };
-  kerberos = libkrb5; # TODO: move to aliases.nix
 
   l-smash = callPackage ../development/libraries/l-smash {
     stdenv = gccStdenv;
@@ -14618,7 +15144,7 @@ in
   libbacktrace = callPackage ../development/libraries/libbacktrace { };
 
   libbap = callPackage ../development/libraries/libbap {
-    inherit (ocaml-ng.ocamlPackages_4_07) bap ocaml findlib ctypes;
+    inherit (ocaml-ng.ocamlPackages) bap ocaml findlib ctypes;
   };
 
   libbass = (callPackage ../development/libraries/audio/libbass { }).bass;
@@ -14794,6 +15320,8 @@ in
 
   libdmtx = callPackage ../development/libraries/libdmtx { };
 
+  libdmapsharing = callPackage ../development/libraries/libdmapsharing { };
+
   libdnet = callPackage ../development/libraries/libdnet { };
 
   libdnf = callPackage ../tools/package-management/libdnf { };
@@ -14866,6 +15394,10 @@ in
 
   libfprint = callPackage ../development/libraries/libfprint { };
 
+  libfprint-tod = callPackage ../development/libraries/libfprint-tod { };
+
+  libfprint-2-tod1-goodix = callPackage ../development/libraries/libfprint-2-tod1-goodix { };
+
   libfpx = callPackage ../development/libraries/libfpx { };
 
   libgadu = callPackage ../development/libraries/libgadu { };
@@ -14903,7 +15435,9 @@ in
 
   libgxps = callPackage ../development/libraries/libgxps { };
 
-  libiio = callPackage ../development/libraries/libiio { };
+  libiio = callPackage ../development/libraries/libiio {
+    python = python3;
+  };
 
   libinjection = callPackage ../development/libraries/libinjection { };
 
@@ -14943,7 +15477,9 @@ in
 
   liblscp = callPackage ../development/libraries/liblscp { };
 
-  libe-book = callPackage ../development/libraries/libe-book {};
+  libe-book = callPackage ../development/libraries/libe-book {
+    icu = icu67;
+  };
 
   libechonest = callPackage ../development/libraries/libechonest { };
 
@@ -15144,6 +15680,11 @@ in
 
   librime = callPackage ../development/libraries/librime {};
 
+  librsb = callPackage ../development/libraries/librsb {
+    # Taken from https://build.opensuse.org/package/view_file/science/librsb/librsb.spec
+    memHierarchy = "L3:16/64/8192K,L2:16/64/2048K,L1:8/64/16K";
+  };
+
   librtprocess = callPackage ../development/libraries/librtprocess { };
 
   libsamplerate = callPackage ../development/libraries/libsamplerate {
@@ -15158,6 +15699,8 @@ in
 
   libspectre = callPackage ../development/libraries/libspectre { };
 
+  libspnav = callPackage ../development/libraries/libspnav { };
+
   libgsf = callPackage ../development/libraries/libgsf { };
 
   # GNU libc provides libiconv so systems with glibc don't need to build
@@ -15235,6 +15778,8 @@ in
     libmicrohttpd = libmicrohttpd_0_9_72;
   };
 
+  libjwt = callPackage ../development/libraries/libjwt { };
+
   libkate = callPackage ../development/libraries/libkate { };
 
   libkeyfinder = callPackage ../development/libraries/libkeyfinder { };
@@ -15343,7 +15888,7 @@ in
 
   libnih = callPackage ../development/libraries/libnih { };
 
-  libnova = callPackage ../development/libraries/libnova { };
+  libnova = callPackage ../development/libraries/science/astronomy/libnova { };
 
   libnxml = callPackage ../development/libraries/libnxml { };
 
@@ -15379,7 +15924,7 @@ in
 
   libosmocore = callPackage ../applications/misc/libosmocore { };
 
-  libosmpbf = callPackage ../development/libraries/libosmpbf {};
+  libosmscout = libsForQt5.callPackage ../development/libraries/libosmscout { };
 
   libotr = callPackage ../development/libraries/libotr { };
 
@@ -15395,6 +15940,8 @@ in
 
   libpeas = callPackage ../development/libraries/libpeas { };
 
+  libpg_query = callPackage ../development/libraries/libpg_query { };
+
   libpipeline = callPackage ../development/libraries/libpipeline { };
 
   libpgf = callPackage ../development/libraries/libpgf { };
@@ -15407,6 +15954,8 @@ in
   libpng_apng = libpng.override { apngSupport = true; };
   libpng12 = callPackage ../development/libraries/libpng/12.nix { };
 
+  libpostal = callPackage ../development/libraries/libpostal { };
+
   libpaper = callPackage ../development/libraries/libpaper { };
 
   libpfm = callPackage ../development/libraries/libpfm { };
@@ -15429,7 +15978,9 @@ in
 
   libpwquality = callPackage ../development/libraries/libpwquality { };
 
-  libqalculate = callPackage ../development/libraries/libqalculate { };
+  libqalculate = callPackage ../development/libraries/libqalculate {
+    readline = readline80;
+  };
 
   libqt5pas = libsForQt5.callPackage ../development/compilers/fpc/libqt5pas.nix { };
 
@@ -15447,6 +15998,8 @@ in
 
   libsearpc = callPackage ../development/libraries/libsearpc { };
 
+  libseat = callPackage ../development/libraries/libseat { };
+
   libsigcxx = callPackage ../development/libraries/libsigcxx { };
 
   libsigcxx12 = callPackage ../development/libraries/libsigcxx/1.2.nix { };
@@ -15541,6 +16094,8 @@ in
     libtoxcore_0_1 libtoxcore_0_2;
   libtoxcore = libtoxcore_0_2;
 
+  libtpms = callPackage ../tools/security/libtpms { };
+
   libtap = callPackage ../development/libraries/libtap { };
 
   libtgvoip = callPackage ../development/libraries/libtgvoip { };
@@ -15670,6 +16225,8 @@ in
 
   libx86 = callPackage ../development/libraries/libx86 {};
 
+  libxcrypt = callPackage ../development/libraries/libxcrypt { };
+
   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
 
   libxkbcommon = libxkbcommon_8;
@@ -15706,9 +16263,7 @@ in
 
   libxmp = callPackage ../development/libraries/libxmp { };
 
-  libxslt = callPackage ../development/libraries/libxslt {
-    python = if stdenv.isDarwin then python2 else python3;
-  };
+  libxslt = callPackage ../development/libraries/libxslt { };
 
   libxsmm = callPackage ../development/libraries/libxsmm { };
 
@@ -15805,10 +16360,14 @@ in
 
   matterhorn = haskell.lib.justStaticExecutables haskellPackages.matterhorn;
 
+  maxflow = callPackage ../development/libraries/maxflow { };
+
   mbedtls = callPackage ../development/libraries/mbedtls { };
 
   mdctags = callPackage ../development/tools/misc/mdctags { };
 
+  md4c = callPackage ../development/libraries/md4c { };
+
   mdds = callPackage ../development/libraries/mdds { };
 
   mediastreamer = callPackage ../development/libraries/mediastreamer { };
@@ -15944,11 +16503,15 @@ in
 
   ndpi = callPackage ../development/libraries/ndpi { };
 
+  nemo-qml-plugin-dbus = libsForQt5.callPackage ../development/libraries/nemo-qml-plugin-dbus { };
+
   nifticlib = callPackage ../development/libraries/science/biology/nifticlib { };
 
   notify-sharp = callPackage ../development/libraries/notify-sharp { };
 
-  notcurses = callPackage ../development/libraries/notcurses { };
+  notcurses = callPackage ../development/libraries/notcurses {
+    readline = readline80;
+  };
 
   ncurses5 = ncurses.override {
     abiVersion = "5";
@@ -15973,11 +16536,11 @@ in
     openssl = openssl_1_0_2;
   };
 
-  nettle = callPackage ../development/libraries/nettle { };
+  nettle = import ../development/libraries/nettle { inherit callPackage fetchurl; };
 
   newman = callPackage ../development/web/newman {};
 
-  newt = callPackage ../development/libraries/newt { };
+  newt = callPackage ../development/libraries/newt { python = python3; };
 
   nghttp2 = callPackage ../development/libraries/nghttp2 { };
   libnghttp2 = nghttp2.lib;
@@ -16094,7 +16657,7 @@ in
 
   openbabel2 = callPackage ../development/libraries/openbabel/2.nix { };
 
-  openbabel3 = callPackages ../development/libraries/openbabel { };
+  openbabel3 = callPackage ../development/libraries/openbabel { };
 
   opencascade = callPackage ../development/libraries/opencascade {
     inherit (darwin.apple_sdk.frameworks) OpenCL Cocoa;
@@ -16165,12 +16728,12 @@ in
   openvdb = callPackage ../development/libraries/openvdb {};
 
   inherit (callPackages ../development/libraries/libressl { })
-    libressl_3_0
-    libressl_3_1;
+    libressl_3_1
+    libressl_3_2;
 
   # Please keep this pointed to the latest version. See also
   # https://discourse.nixos.org/t/nixpkgs-policy-regarding-libraries-available-in-multiple-versions/7026/2
-  libressl = libressl_3_1;
+  libressl = libressl_3_2;
 
   boringssl = callPackage ../development/libraries/boringssl { };
 
@@ -16248,6 +16811,8 @@ in
 
   pkgdiff = callPackage ../tools/misc/pkgdiff { };
 
+  place-cursor-at = haskell.lib.justStaticExecutables haskellPackages.place-cursor-at;
+
   plib = callPackage ../development/libraries/plib { };
 
   pocketsphinx = callPackage ../development/libraries/pocketsphinx { };
@@ -16258,8 +16823,6 @@ in
 
   polkit = callPackage ../development/libraries/polkit { };
 
-  polkit_qt4 = callPackage ../development/libraries/polkit-qt-1/qt-4.nix { };
-
   poppler = callPackage ../development/libraries/poppler { lcms = lcms2; };
   poppler_0_61 = callPackage ../development/libraries/poppler/0.61.nix { lcms = lcms2; };
 
@@ -16290,6 +16853,8 @@ in
 
   portmidi = callPackage ../development/libraries/portmidi {};
 
+  prime-server = callPackage ../development/libraries/prime-server { };
+
   primesieve = callPackage ../development/libraries/science/math/primesieve { };
 
   prison = callPackage ../development/libraries/prison { };
@@ -16309,8 +16874,9 @@ in
     python = python37;
   };
 
-  protobuf = protobuf3_14;
+  protobuf = protobuf3_15;
 
+  protobuf3_15 = callPackage ../development/libraries/protobuf/3.15.nix { };
   protobuf3_14 = callPackage ../development/libraries/protobuf/3.14.nix { };
   protobuf3_13 = callPackage ../development/libraries/protobuf/3.13.nix { };
   protobuf3_12 = callPackage ../development/libraries/protobuf/3.12.nix { };
@@ -16344,6 +16910,8 @@ in
 
   pybind11 = pythonPackages.pybind11;
 
+  pylode = callPackage ../misc/pylode {};
+
   python-qt = callPackage ../development/libraries/python-qt {
     python = python27;
     inherit (qt514) qmake qttools qtwebengine qtxmlpatterns;
@@ -16363,10 +16931,6 @@ in
 
   qolibri = libsForQt5.callPackage ../applications/misc/qolibri { };
 
-  qt3 = callPackage ../development/libraries/qt-3 {
-    libpng = libpng12;
-  };
-
   qt4 = qt48;
 
   qt48 = callPackage ../development/libraries/qt-4.x/4.8 {
@@ -16427,7 +16991,7 @@ in
   qt515 = recurseIntoAttrs (makeOverridable
     (import ../development/libraries/qt-5/5.15) {
       inherit newScope;
-      inherit lib stdenv fetchurl fetchpatch fetchFromGitHub makeSetupHook makeWrapper;
+      inherit lib stdenv fetchurl fetchpatch fetchgit fetchFromGitHub makeSetupHook makeWrapper;
       inherit bison;
       inherit cups;
       inherit dconf;
@@ -16505,6 +17069,8 @@ in
 
   raul = callPackage ../development/libraries/audio/raul { };
 
+  raylib = callPackage ../development/libraries/raylib { };
+
   readline = readline6;
   readline6 = readline63;
 
@@ -16520,6 +17086,8 @@ in
 
   readosm = callPackage ../development/libraries/readosm { };
 
+  rinutils = callPackage ../development/libraries/rinutils { };
+
   kissfft = callPackage ../development/libraries/kissfft { };
 
   lambdabot = callPackage ../development/tools/haskell/lambdabot {
@@ -16552,13 +17120,7 @@ in
 
   qm-dsp = callPackage ../development/libraries/audio/qm-dsp { };
 
-  qradiolink = callPackage ../applications/radio/qradiolink {
-    # 3.8 support is not ready yet:
-    # https://github.com/qradiolink/qradiolink/issues/67#issuecomment-703222573
-    # The non minimal build is used because the 'qtgui' component is needed.
-    # gr-osmosdr is using the same gnuradio as of now.
-    gnuradio = gnuradio3_7-unwrapped;
-  };
+  qradiolink = callPackage ../applications/radio/qradiolink { };
 
   qrupdate = callPackage ../development/libraries/qrupdate { };
 
@@ -16595,6 +17157,8 @@ in
 
   rubberband = callPackage ../development/libraries/rubberband { };
 
+  s2geometry = callPackage ../development/libraries/s2geometry { };
+
   /* This package references ghc844, which we no longer have. Unfortunately, I
      have been unable to mark it as "broken" in a way that the ofBorg bot
      recognizes. Since I don't want to merge code into master that generates
@@ -16670,13 +17234,15 @@ in
 
   sfsexp = callPackage ../development/libraries/sfsexp {};
 
+  shhgit = callPackage ../tools/security/shhgit { };
+
   shhmsg = callPackage ../development/libraries/shhmsg { };
 
   shhopt = callPackage ../development/libraries/shhopt { };
 
   graphite2 = callPackage ../development/libraries/silgraphite/graphite2.nix {};
 
-  s2n = callPackage ../development/libraries/s2n { };
+  s2n-tls = callPackage ../development/libraries/s2n-tls { };
 
   simavr = callPackage ../development/tools/simavr {
     avrgcc = pkgsCross.avr.buildPackages.gcc;
@@ -16892,8 +17458,6 @@ in
 
   stlink = callPackage ../development/tools/misc/stlink { };
 
-  steghide = callPackage ../tools/security/steghide {};
-
   stegseek = callPackage ../tools/security/stegseek {};
 
   stlport = callPackage ../development/libraries/stlport { };
@@ -17043,7 +17607,9 @@ in
 
   tremor = callPackage ../development/libraries/tremor { };
 
-  trillian = callPackage ../tools/misc/trillian { };
+  trillian = callPackage ../tools/misc/trillian {
+    buildGoModule = buildGo115Module;
+  };
 
   twolame = callPackage ../development/libraries/twolame { };
 
@@ -17098,12 +17664,8 @@ in
     stdenv = gcc6Stdenv;
   });
 
-  v8_6_x = v8;
   v8 = callPackage ../development/libraries/v8 {
     inherit (python2Packages) python;
-  } // lib.optionalAttrs stdenv.isLinux {
-    # doesn't build with gcc7
-    stdenv = gcc6Stdenv;
   };
 
   vaapiIntel = callPackage ../development/libraries/vaapi-intel { };
@@ -17114,6 +17676,10 @@ in
 
   vale = callPackage ../tools/text/vale { };
 
+  valhalla = callPackage ../development/libraries/valhalla {
+    boost = boost.override { enablePython = true; python = python38; };
+  };
+
   vamp-plugin-sdk = callPackage ../development/libraries/audio/vamp-plugin-sdk { };
 
   vc = callPackage ../development/libraries/vc { };
@@ -17197,7 +17763,7 @@ in
 
   waylandpp = callPackage ../development/libraries/waylandpp { };
 
-  wcslib = callPackage ../development/libraries/wcslib { };
+  wcslib = callPackage ../development/libraries/science/astronomy/wcslib { };
 
   webkitgtk = callPackage ../development/libraries/webkitgtk {
     harfbuzz = harfbuzzFull;
@@ -17335,8 +17901,6 @@ in
 
   yder = callPackage ../development/libraries/yder { };
 
-  ydotool = callPackage ../tools/wayland/ydotool { };
-
   yojimbo = callPackage ../development/libraries/yojimbo { };
 
   yubioath-desktop = libsForQt5.callPackage ../applications/misc/yubioath-desktop { };
@@ -17353,8 +17917,6 @@ in
     pythonPackages = python3Packages;
   };
 
-  yubikey-neo-manager = callPackage ../tools/misc/yubikey-neo-manager { };
-
   yubikey-personalization = callPackage ../tools/misc/yubikey-personalization { };
 
   yubikey-personalization-gui = libsForQt5.callPackage ../tools/misc/yubikey-personalization-gui { };
@@ -17367,6 +17929,8 @@ in
 
   zlib = callPackage ../development/libraries/zlib { };
 
+  zlib-ng = callPackage ../development/libraries/zlib-ng { };
+
   libdynd = callPackage ../development/libraries/libdynd { };
 
   zlog = callPackage ../development/libraries/zlog { };
@@ -17398,6 +17962,8 @@ in
 
   zziplib = callPackage ../development/libraries/zziplib { };
 
+  glpng = callPackage ../development/libraries/glpng { };
+
   gsignond = callPackage ../development/libraries/gsignond {
     plugins = [];
   };
@@ -17496,8 +18062,11 @@ in
   buildGo115Package = callPackage ../development/go-packages/generic {
     go = buildPackages.go_1_15;
   };
+  buildGo116Package = callPackage ../development/go-packages/generic {
+    go = buildPackages.go_1_16;
+  };
 
-  buildGoPackage = buildGo115Package;
+  buildGoPackage = buildGo116Package;
 
   buildGo114Module = callPackage ../development/go-modules/generic {
     go = buildPackages.go_1_14;
@@ -17505,8 +18074,11 @@ in
   buildGo115Module = callPackage ../development/go-modules/generic {
     go = buildPackages.go_1_15;
   };
+  buildGo116Module = callPackage ../development/go-modules/generic {
+    go = buildPackages.go_1_16;
+  };
 
-  buildGoModule = buildGo115Module;
+  buildGoModule = buildGo116Module;
 
   go2nix = callPackage ../development/tools/go2nix { };
 
@@ -17551,6 +18123,10 @@ in
   };
   quicklispPackagesClisp = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp clisp));
   quicklispPackagesSBCL = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp sbcl));
+  quicklispPackagesECL = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp ecl));
+  quicklispPackagesCCL = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp ccl));
+  quicklispPackagesABCL = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp abcl));
+  quicklispPackagesGCL = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp gcl));
   quicklispPackages = quicklispPackagesSBCL;
 
   ### DEVELOPMENT / PERL MODULES
@@ -17614,12 +18190,14 @@ in
 
   ### SERVERS
 
-  _389-ds-base = callPackage ../servers/ldap/389 {
-    kerberos = libkrb5;
-  };
+  _389-ds-base = callPackage ../servers/ldap/389 { };
 
   adguardhome = callPackage ../servers/adguardhome {};
 
+  alerta = callPackage ../servers/monitoring/alerta/client.nix { };
+
+  alerta-server = callPackage ../servers/monitoring/alerta { };
+
   apacheHttpd_2_4 = callPackage ../servers/http/apache-httpd/2.4.nix { };
   apacheHttpd = pkgs.apacheHttpd_2_4;
 
@@ -17640,7 +18218,7 @@ in
 
     mod_dnssd = callPackage ../servers/http/apache-modules/mod_dnssd { };
 
-    mod_evasive = callPackage ../servers/http/apache-modules/mod_evasive { };
+    mod_evasive = throw "mod_evasive is not supported on Apache httpd 2.4";
 
     mod_perl = callPackage ../servers/http/apache-modules/mod_perl { };
 
@@ -17659,7 +18237,7 @@ in
     subversion = pkgs.subversion.override { httpServer = true; inherit apacheHttpd; };
   };
 
-  apacheHttpdPackages_2_4 = dontRecurseIntoAttrs (apacheHttpdPackagesFor pkgs.apacheHttpd_2_4 pkgs.apacheHttpdPackages_2_4);
+  apacheHttpdPackages_2_4 = recurseIntoAttrs (apacheHttpdPackagesFor pkgs.apacheHttpd_2_4 pkgs.apacheHttpdPackages_2_4);
   apacheHttpdPackages = apacheHttpdPackages_2_4;
 
   appdaemon = callPackage ../servers/home-assistant/appdaemon.nix { };
@@ -17708,6 +18286,7 @@ in
 
   bind = callPackage ../servers/dns/bind { };
   dnsutils = bind.dnsutils;
+  dig = bind.dnsutils;
 
   inherit (callPackages ../servers/bird { })
     bird bird6 bird2;
@@ -17845,7 +18424,9 @@ in
 
   grafana-agent = callPackage ../servers/monitoring/grafana-agent { };
 
-  grafana-loki = callPackage ../servers/monitoring/loki { };
+  grafana-loki = callPackage ../servers/monitoring/loki {
+    buildGoModule = buildGo115Module;
+  };
 
   grafana_reporter = callPackage ../servers/monitoring/grafana-reporter { };
 
@@ -17894,6 +18475,10 @@ in
     theme-spring = callPackage ../servers/icingaweb2/theme-spring { };
   };
 
+  inspircd = callPackage ../servers/irc/inspircd { };
+
+  inspircdMinimal = inspircd.override { extraModules = []; };
+
   imgproxy = callPackage ../servers/imgproxy { };
 
   ircdog = callPackage ../applications/networking/irc/ircdog { };
@@ -17939,7 +18524,11 @@ in
 
   mailman-web = with python3.pkgs; toPythonApplication mailman-web;
 
-  mastodon = callPackage ../servers/mastodon { };
+  mastodon = callPackage ../servers/mastodon {
+    # With nodejs v14 the streaming endpoint breaks. Need migrate to uWebSockets.js or similar.
+    # https://github.com/tootsuite/mastodon/issues/15184
+    nodejs-slim = nodejs-slim-12_x;
+  };
 
   mattermost = callPackage ../servers/mattermost { };
   matterircd = callPackage ../servers/mattermost/matterircd.nix { };
@@ -17975,7 +18564,7 @@ in
   mod_pkcs12 = pkgs.apacheHttpdPackages.mod_pkcs12;
   mod_timestamp = pkgs.apacheHttpdPackages.mod_timestamp;
 
-  inherit (callPackages ../servers/mpd { })
+  inherit (callPackages ../servers/mpd { stdenv = if stdenv.cc.isClang then llvmPackages_8.stdenv else stdenv; })
     mpd mpd-small mpdWithFeatures;
 
   libmpdclient = callPackage ../servers/mpd/libmpdclient.nix { };
@@ -18045,11 +18634,15 @@ in
 
   nix-tour = callPackage ../applications/misc/nix-tour {};
 
+  nosqli = callPackage ../tools/security/nosqli { };
+
   nsd = callPackage ../servers/dns/nsd (config.nsd or {});
 
   nsq = callPackage ../servers/nsq { };
 
-  oauth2_proxy = callPackage ../servers/oauth2_proxy { };
+  oauth2_proxy = callPackage ../servers/oauth2_proxy {
+    buildGoModule = buildGo115Module;
+  };
 
   openbgpd = callPackage ../servers/openbgpd { };
 
@@ -18090,6 +18683,8 @@ in
   };
   pflogsumm = callPackage ../servers/mail/postfix/pflogsumm.nix { };
 
+  pomerium = callPackage ../servers/http/pomerium { };
+
   postgrey = callPackage ../servers/mail/postgrey { };
 
   pshs = callPackage ../servers/http/pshs { };
@@ -18177,7 +18772,6 @@ in
     inherit (darwin) cctools;
     inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
   };
-  mysql = mariadb; # TODO: move to aliases.nix
 
   mongodb = hiPrio mongodb-3_4;
 
@@ -18233,6 +18827,7 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreServices;
     boost = boost173; # Configure checks for specific version.
     protobuf = protobuf3_7;
+    icu =  icu67;
   };
 
   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
@@ -18327,24 +18922,30 @@ in
   postgresql_jdbc = callPackage ../development/java-modules/postgresql_jdbc { };
 
   prom2json = callPackage ../servers/monitoring/prometheus/prom2json.nix { };
-  prometheus = callPackage ../servers/monitoring/prometheus { };
+  prometheus = callPackage ../servers/monitoring/prometheus {
+    buildGoPackage = buildGo115Package;
+  };
   prometheus-alertmanager = callPackage ../servers/monitoring/prometheus/alertmanager.nix { };
   prometheus-apcupsd-exporter = callPackage ../servers/monitoring/prometheus/apcupsd-exporter.nix { };
+  prometheus-artifactory-exporter = callPackage ../servers/monitoring/prometheus/artifactory-exporter.nix { };
   prometheus-aws-s3-exporter = callPackage ../servers/monitoring/prometheus/aws-s3-exporter.nix { };
   prometheus-bind-exporter = callPackage ../servers/monitoring/prometheus/bind-exporter.nix { };
   prometheus-bird-exporter = callPackage ../servers/monitoring/prometheus/bird-exporter.nix { };
+  prometheus-bitcoin-exporter = callPackage ../servers/monitoring/prometheus/bitcoin-exporter.nix { };
   prometheus-blackbox-exporter = callPackage ../servers/monitoring/prometheus/blackbox-exporter.nix { };
   prometheus-collectd-exporter = callPackage ../servers/monitoring/prometheus/collectd-exporter.nix { };
-  prometheus-cups-exporter = callPackage ../servers/monitoring/prometheus/cups-exporter.nix { };
   prometheus-consul-exporter = callPackage ../servers/monitoring/prometheus/consul-exporter.nix { };
   prometheus-dnsmasq-exporter = callPackage ../servers/monitoring/prometheus/dnsmasq-exporter.nix { };
   prometheus-dovecot-exporter = callPackage ../servers/monitoring/prometheus/dovecot-exporter.nix { };
+  prometheus-domain-exporter = callPackage ../servers/monitoring/prometheus/domain-exporter.nix { };
   prometheus-flow-exporter = callPackage ../servers/monitoring/prometheus/flow-exporter.nix { };
   prometheus-fritzbox-exporter = callPackage ../servers/monitoring/prometheus/fritzbox-exporter.nix { };
   prometheus-gitlab-ci-pipelines-exporter = callPackage ../servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix { };
   prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { };
+  prometheus-jitsi-exporter = callPackage ../servers/monitoring/prometheus/jitsi-exporter.nix { };
   prometheus-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { };
   prometheus-keylight-exporter = callPackage ../servers/monitoring/prometheus/keylight-exporter.nix { };
+  prometheus-knot-exporter = callPackage ../servers/monitoring/prometheus/knot-exporter.nix { };
   prometheus-lnd-exporter = callPackage ../servers/monitoring/prometheus/lnd-exporter.nix { };
   prometheus-mail-exporter = callPackage ../servers/monitoring/prometheus/mail-exporter.nix { };
   prometheus-mesos-exporter = callPackage ../servers/monitoring/prometheus/mesos-exporter.nix { };
@@ -18356,6 +18957,7 @@ in
   prometheus-nginx-exporter = callPackage ../servers/monitoring/prometheus/nginx-exporter.nix { };
   prometheus-nginxlog-exporter = callPackage ../servers/monitoring/prometheus/nginxlog-exporter.nix { };
   prometheus-node-exporter = callPackage ../servers/monitoring/prometheus/node-exporter.nix { };
+  prometheus-openldap-exporter = callPackage ../servers/monitoring/prometheus/openldap-exporter.nix { };
   prometheus-openvpn-exporter = callPackage ../servers/monitoring/prometheus/openvpn-exporter.nix { };
   prometheus-postfix-exporter = callPackage ../servers/monitoring/prometheus/postfix-exporter.nix { };
   prometheus-postgres-exporter = callPackage ../servers/monitoring/prometheus/postgres-exporter.nix { };
@@ -18367,6 +18969,7 @@ in
   prometheus-smokeping-prober = callPackage ../servers/monitoring/prometheus/smokeping-prober.nix { };
   prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { };
   prometheus-sql-exporter = callPackage ../servers/monitoring/prometheus/sql-exporter.nix { };
+  prometheus-systemd-exporter = callPackage ../servers/monitoring/prometheus/systemd-exporter.nix { };
   prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { };
   prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-exporter.nix { };
   prometheus-surfboard-exporter = callPackage ../servers/monitoring/prometheus/surfboard-exporter.nix { };
@@ -18388,10 +18991,6 @@ in
 
   pure-ftpd = callPackage ../servers/ftp/pure-ftpd { };
 
-  pyIRCt = callPackage ../servers/xmpp/pyIRCt {};
-
-  pyMAILt = callPackage ../servers/xmpp/pyMAILt {};
-
   pypolicyd-spf = python3.pkgs.callPackage ../servers/mail/pypolicyd-spf { };
 
   qpid-cpp = callPackage ../servers/amqp/qpid-cpp {
@@ -18436,13 +19035,11 @@ in
 
   # Fails to compile with boost >= 1.72
   rippled = callPackage ../servers/rippled {
-    boost = boost171;
+    boost = boost17x;
   };
 
   rippled-validator-keys-tool = callPackage ../servers/rippled/validator-keys-tool.nix {
-    boost = boost167.override {
-      enableStatic = true;
-    };
+    boost = boost17x;
   };
 
   roon-server = callPackage ../servers/roon-server { };
@@ -18657,6 +19254,7 @@ in
 
   zabbixFor = version: rec {
     agent = (callPackages ../servers/monitoring/zabbix/agent.nix {}).${version};
+    agent2 = (callPackages ../servers/monitoring/zabbix/agent2.nix {}).${version};
     proxy-mysql = (callPackages ../servers/monitoring/zabbix/proxy.nix { mysqlSupport = true; }).${version};
     proxy-pgsql = (callPackages ../servers/monitoring/zabbix/proxy.nix { postgresqlSupport = true; }).${version};
     proxy-sqlite = (callPackages ../servers/monitoring/zabbix/proxy.nix { sqliteSupport = true; }).${version};
@@ -18670,7 +19268,6 @@ in
 
   zabbix50 = recurseIntoAttrs (zabbixFor "v50");
   zabbix40 = dontRecurseIntoAttrs (zabbixFor "v40");
-  zabbix30 = dontRecurseIntoAttrs (zabbixFor "v30");
 
   zabbix = zabbix50;
 
@@ -18704,7 +19301,9 @@ in
 
   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
 
-  alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
+  alsaUtils = callPackage ../os-specific/linux/alsa-utils {
+    fftw = fftwFloat;
+  };
   alsaOss = callPackage ../os-specific/linux/alsa-oss { };
   alsaTools = callPackage ../os-specific/linux/alsa-tools { };
 
@@ -18812,6 +19411,8 @@ in
 
   criu = callPackage ../os-specific/linux/criu { };
 
+  cryptomator = callPackage ../tools/security/cryptomator { };
+
   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
 
   cramfsprogs = callPackage ../os-specific/linux/cramfsprogs { };
@@ -18858,6 +19459,8 @@ in
   fscrypt-experimental = callPackage ../os-specific/linux/fscrypt { };
   fscryptctl-experimental = callPackage ../os-specific/linux/fscryptctl/legacy.nix { };
 
+  fwanalyzer = callPackage ../tools/filesystems/fwanalyzer { };
+
   fwupd = callPackage ../os-specific/linux/firmware/fwupd { };
 
   firmware-manager = callPackage ../os-specific/linux/firmware/firmware-manager { };
@@ -18904,7 +19507,7 @@ in
   fusePackages = dontRecurseIntoAttrs (callPackage ../os-specific/linux/fuse {
     util-linux = util-linuxMinimal;
   });
-  fuse = lowPrio fusePackages.fuse_2;
+  fuse = lowPrio (if stdenv.isDarwin then macfuse-stubs else fusePackages.fuse_2);
   fuse3 = fusePackages.fuse_3;
   fuse-common = hiPrio fusePackages.fuse_3.common;
 
@@ -18969,7 +19572,6 @@ in
   iotop = callPackage ../os-specific/linux/iotop { };
 
   iproute2 = callPackage ../os-specific/linux/iproute { };
-  iproute = iproute2; # Alias added 2020-11-15 (TODO: deprecate and move to pkgs/top-level/aliases.nix)
 
   iproute_mptcp = callPackage ../os-specific/linux/iproute/mptcp.nix { };
 
@@ -19041,12 +19643,17 @@ in
     inherit (pkgs.darwin.apple_sdk.frameworks) IOKit;
   };
 
-  osxfuse = callPackage ../os-specific/darwin/osxfuse { };
+  macfuse-stubs = callPackage ../os-specific/darwin/macfuse {
+    inherit (darwin) libtapi;
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration;
+  };
 
   osxsnarf = callPackage ../os-specific/darwin/osxsnarf { };
 
   power-calibrate = callPackage ../os-specific/linux/power-calibrate { };
 
+  powercap = callPackage ../os-specific/linux/powercap { };
+
   powerstat = callPackage ../os-specific/linux/powerstat { };
 
   smemstat = callPackage ../os-specific/linux/smemstat { };
@@ -19156,14 +19763,14 @@ in
     ];
   };
 
-  linux-rt_5_6 = callPackage ../os-specific/linux/kernel/linux-rt-5.6.nix {
+  linux_5_10 = callPackage ../os-specific/linux/kernel/linux-5.10.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
       kernelPatches.request_key_helper
     ];
   };
 
-  linux_5_10 = callPackage ../os-specific/linux/kernel/linux-5.10.nix {
+  linux_5_11 = callPackage ../os-specific/linux/kernel/linux-5.11.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
       kernelPatches.request_key_helper
@@ -19178,6 +19785,14 @@ in
     ];
   };
 
+  linux-rt_5_11 = callPackage ../os-specific/linux/kernel/linux-rt-5.11.nix {
+    kernelPatches = [
+      kernelPatches.bridge_stp_helper
+      kernelPatches.request_key_helper
+      kernelPatches.export-rt-sched-migrate
+    ];
+  };
+
   linux_testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
@@ -19214,6 +19829,13 @@ in
     ];
   };
 
+  linux_xanmod = callPackage ../os-specific/linux/kernel/linux-xanmod.nix {
+    kernelPatches = [
+      kernelPatches.bridge_stp_helper
+      kernelPatches.request_key_helper
+    ];
+  };
+
   /* Linux kernel modules are inherently tied to a specific kernel.  So
      rather than provide specific instances of those packages for a
      specific kernel, we have a function that builds those packages
@@ -19300,6 +19922,8 @@ in
 
     tbs = callPackage ../os-specific/linux/tbs { };
 
+    mbp2018-bridge-drv = callPackage ../os-specific/linux/mbp-modules/mbp2018-bridge-drv { };
+
     nvidiabl = callPackage ../os-specific/linux/nvidiabl { };
 
     nvidiaPackages = dontRecurseIntoAttrs (callPackage ../os-specific/linux/nvidia-x11 { });
@@ -19337,7 +19961,8 @@ in
 
     rtl8821cu = callPackage ../os-specific/linux/rtl8821cu { };
 
-    rtlwifi_new = callPackage ../os-specific/linux/rtlwifi_new { };
+    rtw88 = callPackage ../os-specific/linux/rtw88 { };
+    rtlwifi_new = rtw88;
 
     openafs_1_8 = callPackage ../servers/openafs/1.8/module.nix { };
     openafs_1_9 = callPackage ../servers/openafs/1.9/module.nix { };
@@ -19374,6 +19999,8 @@ in
 
     sch_cake = callPackage ../os-specific/linux/sch_cake { };
 
+    isgx = callPackage ../os-specific/linux/isgx { };
+
     sysdig = callPackage ../os-specific/linux/sysdig {};
 
     systemtap = callPackage ../development/tools/profiling/systemtap { };
@@ -19394,6 +20021,8 @@ in
 
     v86d = callPackage ../os-specific/linux/v86d { };
 
+    vendor-reset = callPackage ../os-specific/linux/vendor-reset { };
+
     vhba = callPackage ../misc/emulators/cdemu/vhba.nix { };
 
     virtualbox = callPackage ../os-specific/linux/virtualbox {
@@ -19423,20 +20052,20 @@ in
   });
 
   # The current default kernel / kernel modules.
-  linuxPackages = linuxPackages_5_4;
+  linuxPackages = linuxPackages_5_10;
   linux = linuxPackages.kernel;
 
   # Update this when adding the newest kernel major version!
   # And update linux_latest_for_hardened below if the patches are already available
-  linuxPackages_latest = linuxPackages_5_10;
+  linuxPackages_latest = linuxPackages_5_11;
   linux_latest = linuxPackages_latest.kernel;
 
   # Realtime kernel packages.
   linuxPackages-rt_5_4 = linuxPackagesFor pkgs.linux-rt_5_4;
-  linuxPackages-rt_5_6 = linuxPackagesFor pkgs.linux-rt_5_6;
   linuxPackages-rt_5_10 = linuxPackagesFor pkgs.linux-rt_5_10;
+  linuxPackages-rt_5_11 = linuxPackagesFor pkgs.linux-rt_5_11;
   linuxPackages-rt = linuxPackages-rt_5_4;
-  linuxPackages-rt_latest = linuxPackages-rt_5_10;
+  linuxPackages-rt_latest = linuxPackages-rt_5_11;
   linux-rt = linuxPackages-rt.kernel;
   linux-rt_latest = linuxPackages-rt_latest.kernel;
 
@@ -19452,6 +20081,7 @@ in
   linuxPackages_4_19 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_19);
   linuxPackages_5_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_4);
   linuxPackages_5_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_10);
+  linuxPackages_5_11 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_11);
 
   # When adding to the list above:
   # - Update linuxPackages_latest to the latest version
@@ -19489,7 +20119,7 @@ in
   # Hardened Linux
   hardenedLinuxPackagesFor = kernel': overrides:
     let # Note: We use this hack since the hardened patches can lag behind and we don't want to delay updates:
-      linux_latest_for_hardened = pkgs.linux_5_10;
+      linux_latest_for_hardened = pkgs.linux_5_11;
       kernel = (if kernel' == pkgs.linux_latest then linux_latest_for_hardened else kernel').override overrides;
     in linuxPackagesFor (kernel.override {
       structuredExtraConfig = import ../os-specific/linux/kernel/hardened/config.nix {
@@ -19528,6 +20158,9 @@ in
   linuxPackages_zen = recurseIntoAttrs (linuxPackagesFor pkgs.linux_zen);
   linuxPackages_lqx = recurseIntoAttrs (linuxPackagesFor pkgs.linux_lqx);
 
+  # XanMod kernel
+  linuxPackages_xanmod = recurseIntoAttrs (linuxPackagesFor pkgs.linux_xanmod);
+
   # A function to build a manually-configured kernel
   linuxManualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {});
 
@@ -19659,6 +20292,9 @@ in
 
   musl = callPackage ../os-specific/linux/musl { };
 
+  musl-fts = callPackage ../os-specific/linux/musl-fts { };
+  musl-obstack = callPackage ../os-specific/linux/musl-obstack { };
+
   nushell = callPackage ../shells/nushell {
     inherit (darwin.apple_sdk.frameworks) AppKit Security;
   };
@@ -19680,11 +20316,15 @@ in
 
   nvme-cli = callPackage ../os-specific/linux/nvme-cli { };
 
+  nvmet-cli = callPackage ../os-specific/linux/nvmet-cli { };
+
   system76-firmware = callPackage ../os-specific/linux/firmware/system76-firmware { };
 
   open-vm-tools = callPackage ../applications/virtualization/open-vm-tools { };
   open-vm-tools-headless = open-vm-tools.override { withX = false; };
 
+  air = callPackage ../development/tools/air { };
+
   delve = callPackage ../development/tools/delve { };
 
   dep = callPackage ../development/tools/dep { };
@@ -19749,6 +20389,8 @@ in
 
   go-migrate = callPackage ../development/tools/go-migrate { };
 
+  go-mockery = callPackage ../development/tools/go-mockery { };
+
   gomacro = callPackage ../development/tools/gomacro { };
 
   gomodifytags = callPackage ../development/tools/gomodifytags { };
@@ -19757,6 +20399,8 @@ in
 
   gopls = callPackage ../development/tools/gopls { };
 
+  gops = callPackage ../development/tools/gops { };
+
   gore = callPackage ../development/tools/gore { };
 
   gotests = callPackage ../development/tools/gotests { };
@@ -19843,6 +20487,8 @@ in
 
   powerdns = callPackage ../servers/dns/powerdns { };
 
+  powerdns-admin = callPackage ../applications/networking/powerdns-admin { };
+
   dnsdist = callPackage ../servers/dns/dnsdist { };
 
   pdns-recursor = callPackage ../servers/dns/pdns-recursor { };
@@ -19905,7 +20551,7 @@ in
 
   rtl8761b-firmware = callPackage ../os-specific/linux/firmware/rtl8761b-firmware { };
 
-  rtlwifi_new-firmware = callPackage ../os-specific/linux/firmware/rtlwifi_new-firmware { };
+  rtw88-firmware = callPackage ../os-specific/linux/firmware/rtw88-firmware { };
 
   s3ql = callPackage ../tools/backup/s3ql { };
 
@@ -20054,11 +20700,13 @@ in
     ubootClearfog
     ubootGuruplug
     ubootJetsonTK1
+    ubootNanoPCT4
     ubootNovena
     ubootOdroidC2
     ubootOdroidXU3
     ubootOrangePiPc
     ubootOrangePiZeroPlus2H5
+    ubootOrangePiZero
     ubootPcduino3Nano
     ubootPine64
     ubootPine64LTS
@@ -20134,6 +20782,8 @@ in
 
   v4l-utils = qt5.callPackage ../os-specific/linux/v4l-utils { };
 
+  vendir = callPackage ../development/tools/vendir { };
+
   vndr = callPackage ../development/tools/vndr { };
 
   windows = callPackages ../os-specific/windows {};
@@ -20511,6 +21161,8 @@ in
 
   julia-mono = callPackage ../data/fonts/julia-mono { };
 
+  juno-theme = callPackage ../data/themes/juno { };
+
   kanji-stroke-order-font = callPackage ../data/fonts/kanji-stroke-order-font {};
 
   kawkab-mono-font = callPackage ../data/fonts/kawkab-mono {};
@@ -20522,11 +21174,14 @@ in
   kopia = callPackage ../tools/backup/kopia { };
 
   kora-icon-theme = callPackage ../data/icons/kora-icon-theme {
+    inherit (gnome3) adwaita-icon-theme;
     inherit (libsForQt5.kdeFrameworks) breeze-icons;
   };
 
   koreader = callPackage ../applications/misc/koreader {};
 
+  kreative-square-fonts = callPackage ../data/fonts/kreative-square-fonts { };
+
   lato = callPackage ../data/fonts/lato {};
 
   league-of-moveable-type = callPackage ../data/fonts/league-of-moveable-type {};
@@ -20653,6 +21308,8 @@ in
 
   mustache-go = callPackage ../development/tools/mustache-go { };
 
+  mustache-hpp = callPackage ../development/libraries/mustache-hpp { };
+
   myrica = callPackage ../data/fonts/myrica { };
 
   nafees = callPackage ../data/fonts/nafees { };
@@ -20706,8 +21363,12 @@ in
 
   openzone-cursors = callPackage ../data/themes/openzone { };
 
+  oranchelo-icon-theme = callPackage ../data/icons/oranchelo-icon-theme { };
+
   orbitron = callPackage ../data/fonts/orbitron { };
 
+  orchis = callPackage ../data/themes/orchis { };
+
   orion = callPackage ../data/themes/orion {};
 
   overpass = callPackage ../data/fonts/overpass { };
@@ -20728,6 +21389,8 @@ in
 
   papis = with python3Packages; toPythonApplication papis;
 
+  paperlike-go = callPackage ../tools/misc/paperlike-go { };
+
   paps = callPackage ../tools/misc/paps { };
 
   pecita = callPackage ../data/fonts/pecita {};
@@ -20791,6 +21454,8 @@ in
 
   sarasa-gothic = callPackage ../data/fonts/sarasa-gothic { };
 
+  savepagenow = callPackage ../tools/misc/savepagenow { };
+
   scheme-manpages = callPackage ../data/documentation/scheme-manpages { };
 
   scowl = callPackage ../data/misc/scowl { };
@@ -20801,6 +21466,8 @@ in
 
   shades-of-gray-theme = callPackage ../data/themes/shades-of-gray { };
 
+  sjasmplus = callPackage ../development/compilers/sjasmplus { };
+
   skeu = callPackage ../data/themes/skeu { };
 
   sweet = callPackage ../data/themes/sweet { };
@@ -20882,7 +21549,6 @@ in
 
   maligned = callPackage ../development/tools/maligned { };
 
-  inter-ui = callPackage ../data/fonts/inter-ui { };
   inter = callPackage ../data/fonts/inter { };
 
   scientifica = callPackage ../data/fonts/scientifica { };
@@ -21016,6 +21682,8 @@ in
 
   vistafonts-chs = callPackage ../data/fonts/vista-fonts-chs { };
 
+  vollkorn = callPackage ../data/fonts/vollkorn { };
+
   weather-icons = callPackage ../data/fonts/weather-icons { };
 
   wireless-regdb = callPackage ../data/misc/wireless-regdb { };
@@ -21131,6 +21799,8 @@ in
     });
   android-studio = androidStudioPackages.stable;
 
+  angelfish = libsForQt5.callPackage ../applications/networking/browsers/angelfish { };
+
   animbar = callPackage ../applications/graphics/animbar { };
 
   antfs-cli = callPackage ../applications/misc/antfs-cli {};
@@ -21152,6 +21822,7 @@ in
 
   apostrophe = callPackage ../applications/editors/apostrophe {
     pythonPackages = python3Packages;
+    texlive = texlive.combined.scheme-medium;
   };
 
   aqemu = libsForQt5.callPackage ../applications/virtualization/aqemu { };
@@ -21276,6 +21947,8 @@ in
 
   bandwidth = callPackage ../tools/misc/bandwidth { };
 
+  banking = callPackage ../applications/office/banking { };
+
   baresip = callPackage ../applications/networking/instant-messengers/baresip { };
 
   barrier = libsForQt5.callPackage ../applications/misc/barrier {};
@@ -21347,8 +22020,14 @@ in
     inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics ForceFeedback OpenAL OpenGL;
   };
 
+  blflash = callPackage ../tools/misc/blflash { };
+
   blogc = callPackage ../applications/misc/blogc { };
 
+  blucontrol = callPackage ../applications/misc/blucontrol/wrapper.nix {
+    inherit (haskellPackages) ghcWithPackages;
+  };
+
   bluefish = callPackage ../applications/editors/bluefish {
     gtk = gtk3;
   };
@@ -21367,6 +22046,8 @@ in
 
   bonzomatic = callPackage ../applications/editors/bonzomatic { };
 
+  bottles = callPackage ../applications/misc/bottles { };
+
   brave = callPackage ../applications/networking/browsers/brave { };
 
   break-time = callPackage ../applications/misc/break-time { };
@@ -21397,7 +22078,11 @@ in
 
   bviplus = callPackage ../applications/editors/bviplus { };
 
-  cage = callPackage ../applications/window-managers/cage { };
+  caerbannog = callPackage ../applications/misc/caerbannog { };
+
+  cage = callPackage ../applications/window-managers/cage {
+    wlroots = wlroots_0_12;
+  };
 
   calf = callPackage ../applications/audio/calf {
       inherit (gnome2) libglade;
@@ -21409,6 +22094,8 @@ in
 
   calibre = libsForQt5.callPackage ../applications/misc/calibre { };
 
+  calibre-web = callPackage ../servers/calibre-web { };
+
   calligra = libsForQt5.callPackage ../applications/office/calligra {
     # Must use the same Qt version as Calligra itself:
     poppler = libsForQt5.poppler_0_61;
@@ -21428,6 +22115,8 @@ in
 
   catfs = callPackage ../os-specific/linux/catfs { };
 
+  catgirl = callPackage ../applications/networking/irc/catgirl { };
+
   catimg = callPackage ../tools/misc/catimg { };
 
   catt = callPackage ../applications/video/catt { };
@@ -21484,8 +22173,9 @@ in
   claws-mail = callPackage ../applications/networking/mailreaders/claws-mail {
     inherit (xorg) libSM;
   };
-  claws-mail-gtk3 = callPackage ../applications/networking/mailreaders/claws-mail/gtk3.nix {
+  claws-mail-gtk3 = callPackage ../applications/networking/mailreaders/claws-mail {
     inherit (xorg) libSM;
+    useGtk3 = true;
   };
 
   clfswm = callPackage ../applications/window-managers/clfswm { };
@@ -21539,6 +22229,8 @@ in
     inherit (gnome2) libgnomeui GConf;
   };
 
+  corrscope = libsForQt5.callPackage ../applications/video/corrscope { };
+
   csa = callPackage ../applications/audio/csa { };
 
   csound = callPackage ../applications/audio/csound {
@@ -21573,12 +22265,16 @@ in
 
   coursera-dl = callPackage ../applications/misc/coursera-dl {};
 
-  coyim = callPackage ../applications/networking/instant-messengers/coyim {};
+  coyim = callPackage ../applications/networking/instant-messengers/coyim {
+    buildGoPackage = buildGo115Package;
+  };
 
   cq-editor = libsForQt5.callPackage ../applications/graphics/cq-editor {
     python3Packages = python37Packages;
   };
 
+  cqrlog = callPackage ../applications/radio/cqrlog { };
+
   crun = callPackage ../applications/virtualization/crun {};
 
   csdp = callPackage ../applications/science/math/csdp { };
@@ -21769,6 +22465,8 @@ in
 
   eaglemode = callPackage ../applications/misc/eaglemode { };
 
+  ebumeter = callPackage ../applications/audio/ebumeter { };
+
   echoip = callPackage ../servers/echoip { };
 
   eclipses = recurseIntoAttrs (callPackage ../applications/editors/eclipse {
@@ -21812,7 +22510,6 @@ in
     Xaw3d = null;
     gconf = null;
     alsaLib = null;
-    imagemagick = null;
     acl = null;
     gpm = null;
     inherit (darwin.apple_sdk.frameworks) AppKit GSS ImageIO;
@@ -21825,25 +22522,6 @@ in
     withGTK3 = false;
   }));
 
-  emacs26 = callPackage ../applications/editors/emacs/26.nix {
-    # use override to enable additional features
-    libXaw = xorg.libXaw;
-    Xaw3d = null;
-    gconf = null;
-    alsaLib = null;
-    imagemagick = null;
-    acl = null;
-    gpm = null;
-    inherit (darwin.apple_sdk.frameworks) AppKit GSS ImageIO;
-  };
-
-  emacs26-nox = lowPrio (appendToName "nox" (emacs26.override {
-    withX = false;
-    withNS = false;
-    withGTK2 = false;
-    withGTK3 = false;
-  }));
-
   emacsMacport = callPackage ../applications/editors/emacs/macport.nix {
     inherit (darwin.apple_sdk.frameworks)
       AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit
@@ -21852,27 +22530,9 @@ in
   };
 
   emacsPackagesFor = emacs: import ./emacs-packages.nix {
-    inherit lib newScope stdenv pkgs;
-    inherit fetchFromGitHub fetchurl;
-    inherit emacs texinfo makeWrapper runCommand writeText;
-    inherit (xorg) lndir;
-
-    trivialBuild = callPackage ../build-support/emacs/trivial.nix {
-      inherit emacs;
-    };
-
-    melpaBuild = callPackage ../build-support/emacs/melpa.nix {
-      inherit emacs;
-    };
-
-    external = {
-      inherit (haskellPackages)
-        ghc-mod structured-haskell-mode Agda hindent;
-      inherit
-        autoconf automake editorconfig-core-c git libffi libpng pkg-config
-        poppler rtags w3m zlib substituteAll rustPlatform cmake llvmPackages
-        libtool zeromq openssl ott;
-    };
+    inherit (lib) makeScope makeOverridable;
+    inherit emacs;
+    pkgs' = pkgs;  # default pkgs used for bootstrapping the emacs package set
   };
 
   inherit (gnome3) empathy;
@@ -21899,9 +22559,7 @@ in
 
   eq10q = callPackage ../applications/audio/eq10q { };
 
-  errbot = callPackage ../applications/networking/errbot {
-    python = python3;
-  };
+  errbot = python3Packages.callPackage ../applications/networking/errbot { };
 
   espeak-classic = callPackage ../applications/audio/espeak { };
 
@@ -22076,79 +22734,103 @@ in
 
   gksu = callPackage ../applications/misc/gksu { };
 
-  gnss-sdr = callPackage ../applications/radio/gnss-sdr {
-    boost = boost166;
-    gnuradio = gnuradio3_7-unwrapped;
-  };
+  gnss-sdr = callPackage ../applications/radio/gnss-sdr { };
 
-  gnuradio-unwrapped = callPackage ../applications/radio/gnuradio {
-    inherit (darwin.apple_sdk.frameworks) CoreAudio;
-    python = python3;
+  gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix {
+    unwrapped = callPackage ../applications/radio/gnuradio {
+      inherit (darwin.apple_sdk.frameworks) CoreAudio;
+      python = python3;
+      boost = boost17x;
+    };
   };
+  gnuradioPackages = lib.recurseIntoAttrs gnuradio.pkgs;
   # A build without gui components and other utilites not needed for end user
   # libraries
-  gnuradioMinimal = gnuradio-unwrapped.override {
-    features = {
-      gnuradio-companion = false;
-      python-support = false;
-      gr-ctrlport = false;
-      examples = false;
-      gr-qtgui = false;
-      gr-utils = false;
-      gr-modtool = false;
-      sphinx = false;
-      doxygen = false;
+  gnuradioMinimal = gnuradio.override {
+    wrap = false;
+    unwrapped = gnuradio.unwrapped.override {
+      volk = volk.override {
+        # So it will not reference python
+        enableModTool = false;
+      };
+      features = {
+        gnuradio-companion = false;
+        python-support = false;
+        examples = false;
+        gr-qtgui = false;
+        gr-utils = false;
+        gr-modtool = false;
+        gr-blocktool = false;
+        sphinx = false;
+        doxygen = false;
+      };
     };
   };
-  gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix {
-    unwrapped = gnuradio-unwrapped;
-  };
-  gnuradio3_7-unwrapped = callPackage ../applications/radio/gnuradio/3.7.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreAudio;
-    python = python2;
+  gnuradio3_8 = callPackage ../applications/radio/gnuradio/wrapper.nix {
+    unwrapped = callPackage ../applications/radio/gnuradio/3.8.nix {
+      inherit (darwin.apple_sdk.frameworks) CoreAudio;
+      python = python3;
+      boost = boost17x;
+    };
   };
+  gnuradio3_8Packages = lib.recurseIntoAttrs gnuradio3_8.pkgs;
   # A build without gui components and other utilites not needed if gnuradio is
   # used as a c++ library.
-  gnuradio3_7Minimal = gnuradio3_7-unwrapped.override {
-    features = {
-      gnuradio-companion = false;
-      python-support = false;
-      gr-ctrlport = false;
-      gr-qtgui = false;
-      gr-utils = false;
-      sphinx = false;
-      doxygen = false;
-      gr-wxgui = false;
+  gnuradio3_8Minimal = gnuradio3_8.override {
+    wrap = false;
+    unwrapped = gnuradio3_8.unwrapped.override {
+      volk = volk.override {
+        enableModTool = false;
+      };
+      features = {
+        gnuradio-companion = false;
+        python-support = false;
+        examples = false;
+        gr-qtgui = false;
+        gr-utils = false;
+        gr-modtool = false;
+        sphinx = false;
+        doxygen = false;
+      };
     };
   };
   gnuradio3_7 = callPackage ../applications/radio/gnuradio/wrapper.nix {
-    unwrapped = gnuradio3_7-unwrapped;
-  };
-
-  grandorgue = callPackage ../applications/audio/grandorgue { };
-
-  gr-nacl = callPackage ../applications/radio/gnuradio/nacl.nix {
-    gnuradio = gnuradio3_7-unwrapped;
-  };
-
-  gr-gsm = callPackage ../applications/radio/gnuradio/gsm.nix {
-    gnuradio = gnuradio3_7-unwrapped;
-  };
-
-  gr-ais = callPackage ../applications/radio/gnuradio/ais.nix {
-    gnuradio = gnuradio3_7-unwrapped;
+    unwrapped = callPackage ../applications/radio/gnuradio/3.7.nix {
+      inherit (darwin.apple_sdk.frameworks) CoreAudio;
+      python = python2;
+      # Incompatible with uhd4+
+      uhd = uhd3_5;
+    };
   };
-
-  gr-limesdr = callPackage ../applications/radio/gnuradio/limesdr.nix {
-    gnuradio = gnuradio3_7-unwrapped;
+  gnuradio3_7Packages = lib.recurseIntoAttrs gnuradio3_7.pkgs;
+  # A build without gui components and other utilites not needed if gnuradio is
+  # used as a c++ library.
+  gnuradio3_7Minimal = gnuradio3_7.override {
+    wrap = false;
+    unwrapped = gnuradio3_7.unwrapped.override {
+      volk = volk.override {
+        enableModTool = false;
+      };
+      features = {
+        gnuradio-companion = false;
+        python-support = false;
+        gr-qtgui = false;
+        gr-utils = false;
+        sphinx = false;
+        doxygen = false;
+        gr-wxgui = false;
+      };
+    };
   };
 
-  gr-rds = callPackage ../applications/radio/gnuradio/rds.nix {
-    gnuradio = gnuradio3_7-unwrapped;
-  };
+  grandorgue = callPackage ../applications/audio/grandorgue { };
 
-  gr-osmosdr = callPackage ../applications/radio/gnuradio/osmosdr.nix {
-    gnuradio = gnuradio3_7-unwrapped;
+  greetd = recurseIntoAttrs {
+    greetd = callPackage ../os-specific/linux/greetd { };
+    gtkgreet = callPackage ../os-specific/linux/gtkgreet { };
+    dlm = callPackage ../os-specific/linux/dlm { };
+    wlgreet = callPackage ../os-specific/linux/wlgreet { };
+    tuigreet = callPackage ../os-specific/linux/tuigreet { };
   };
 
   goldendict = libsForQt5.callPackage ../applications/misc/goldendict {
@@ -22159,17 +22841,6 @@ in
 
   inherit (ocamlPackages) google-drive-ocamlfuse;
 
-  google-musicmanager = callPackage ../applications/audio/google-musicmanager {
-    inherit (qt514) qtbase qtwebkit;
-    # Downgrade to 1.34 to get libidn.so.11
-    libidn = (libidn.overrideAttrs (oldAttrs: {
-      src = fetchurl {
-        url = "mirror://gnu/libidn/libidn-1.34.tar.gz";
-        sha256 = "0g3fzypp0xjcgr90c5cyj57apx1cmy0c6y9lvw2qdcigbyby469p";
-      };
-    })).out;
-  };
-
   googler = callPackage ../applications/misc/googler {
     python = python3;
   };
@@ -22188,14 +22859,7 @@ in
 
   gpx = callPackage ../applications/misc/gpx { };
 
-  gqrx = libsForQt514.callPackage ../applications/radio/gqrx {
-    gnuradio = gnuradio3_7Minimal;
-    # Use the same gnuradio for gr-osmosdr as well
-    gr-osmosdr = gr-osmosdr.override {
-      gnuradio = gnuradio3_7Minimal;
-      pythonSupport = false;
-    };
-  };
+  gqrx = callPackage ../applications/radio/gqrx { };
 
   gpx-viewer = callPackage ../applications/misc/gpx-viewer { };
 
@@ -22215,7 +22879,7 @@ in
 
   gthumb = callPackage ../applications/graphics/gthumb { };
 
-  gtimelog = pythonPackages.gtimelog;
+  gtimelog = with python3Packages; toPythonApplication gtimelog;
 
   inherit (gnome3) gucharmap;
 
@@ -22337,11 +23001,28 @@ in
 
   formatter = callPackage ../applications/misc/formatter { };
 
+  formiko = with python3Packages; callPackage ../applications/editors/formiko {
+    inherit buildPythonApplication;
+  };
+
   foxtrotgps = callPackage ../applications/misc/foxtrotgps { };
 
   fractal = callPackage ../applications/networking/instant-messengers/fractal { };
 
-  freecad = libsForQt5.callPackage ../applications/graphics/freecad { };
+  freecad = libsForQt5.callPackage ../applications/graphics/freecad {
+    inherit (python3Packages)
+      GitPython
+      boost
+      matplotlib
+      pivy
+      pycollada
+      pyside2
+      pyside2-tools
+      python
+      pyyaml
+      scipy
+      shiboken2;
+  };
 
   freemind = callPackage ../applications/misc/freemind {
     jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
@@ -22354,6 +23035,8 @@ in
 
   freeoffice = callPackage ../applications/office/softmaker/freeoffice.nix {};
 
+  freeplane = callPackage ../applications/misc/freeplane { };
+
   freepv = callPackage ../applications/graphics/freepv { };
 
   xfontsel = callPackage ../applications/misc/xfontsel { };
@@ -22492,6 +23175,8 @@ in
     jdk = callPackage ../development/compilers/jetbrains-jdk {  };
   });
 
+  jmusicbot = callPackage ../applications/audio/jmusicbot { };
+
   libquvi = callPackage ../applications/video/quvi/library.nix { };
 
   librespot = callPackage ../applications/audio/librespot {
@@ -22539,10 +23224,12 @@ in
 
   giada = callPackage ../applications/audio/giada {};
 
+  giara = callPackage ../applications/networking/giara { };
+
   gitit = callPackage ../applications/misc/gitit {};
 
   gkrellm = callPackage ../applications/misc/gkrellm {
-    inherit (darwin) IOKit;
+    inherit (darwin.apple_sdk.frameworks) IOKit;
   };
 
   glow = callPackage ../applications/editors/glow { };
@@ -22582,10 +23269,6 @@ in
 
   gtkpod = callPackage ../applications/audio/gtkpod { };
 
-  jbidwatcher = callPackage ../applications/misc/jbidwatcher {
-    java = if stdenv.isLinux then jre else jdk;
-  };
-
   qrcodegen = callPackage ../development/libraries/qrcodegen { };
 
   qrencode = callPackage ../development/libraries/qrencode { };
@@ -22678,6 +23361,8 @@ in
 
   hamster = callPackage ../applications/misc/hamster { };
 
+  hacpack = callPackage ../tools/compression/hacpack { };
+
   hashit = callPackage ../tools/misc/hashit { };
 
   hactool = callPackage ../tools/compression/hactool { };
@@ -22702,9 +23387,7 @@ in
 
   herbe = callPackage ../applications/misc/herbe { };
 
-  herbstluftwm = callPackage ../applications/window-managers/herbstluftwm {
-    asciidoc = asciidoc-full;
-  };
+  herbstluftwm = callPackage ../applications/window-managers/herbstluftwm { };
 
   hercules = callPackage ../applications/virtualization/hercules { };
 
@@ -22764,6 +23447,8 @@ in
 
   hugo = callPackage ../applications/misc/hugo { };
 
+  go-org = callPackage ../applications/misc/go-org { };
+
   hydrogen = qt5.callPackage ../applications/audio/hydrogen { };
   hydrogen_0 = callPackage ../applications/audio/hydrogen/0.nix { }; # Old stable, has GMKit.
 
@@ -22822,6 +23507,8 @@ in
 
   smallwm = callPackage ../applications/window-managers/smallwm { };
 
+  smooth = callPackage ../development/libraries/smooth { };
+
   smos = callPackage ../applications/misc/smos { };
 
   spectrwm = callPackage ../applications/window-managers/spectrwm { };
@@ -22836,15 +23523,18 @@ in
 
   super-productivity = callPackage ../applications/networking/super-productivity { };
 
-  wlr-randr = callPackage ../tools/misc/wlr-randr { };
+  wlroots = callPackage ../development/libraries/wlroots {
+    inherit (xorg) xcbutilrenderutil;
+  };
 
-  wlroots = callPackage ../development/libraries/wlroots { };
+  wlroots_0_12 = callPackage ../development/libraries/wlroots/0.12.nix {};
 
   sway-unwrapped = callPackage ../applications/window-managers/sway { };
   sway = callPackage ../applications/window-managers/sway/wrapper.nix { };
   swaybg = callPackage ../applications/window-managers/sway/bg.nix { };
   swayidle = callPackage ../applications/window-managers/sway/idle.nix { };
   swaylock = callPackage ../applications/window-managers/sway/lock.nix { };
+  swaywsr = callPackage ../applications/window-managers/sway/wsr.nix { };
   sway-contrib = recurseIntoAttrs (callPackages ../applications/window-managers/sway/contrib.nix { });
 
   swaylock-fancy = callPackage ../applications/window-managers/sway/lock-fancy.nix { };
@@ -22859,12 +23549,16 @@ in
 
   wbg = callPackage ../applications/misc/wbg { };
 
-  hikari = callPackage ../applications/window-managers/hikari { };
+  hikari = callPackage ../applications/window-managers/hikari {
+    wlroots = wlroots_0_12;
+  };
 
   i3 = callPackage ../applications/window-managers/i3 {
     xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
   };
 
+  i3-auto-layout = callPackage ../applications/window-managers/i3/auto-layout.nix { };
+
   i3-gaps = callPackage ../applications/window-managers/i3/gaps.nix { };
 
   i3altlayout = callPackage ../applications/window-managers/i3/altlayout.nix { };
@@ -22875,6 +23569,8 @@ in
 
   i3-layout-manager = callPackage ../applications/window-managers/i3/layout-manager.nix { };
 
+  i3-ratiosplit =  callPackage ../applications/window-managers/i3/i3-ratiosplit.nix { };
+
   i3-resurrect = python3Packages.callPackage ../applications/window-managers/i3/i3-resurrect.nix { };
 
   i3blocks = callPackage ../applications/window-managers/i3/blocks.nix { };
@@ -22913,9 +23609,13 @@ in
 
   i3status-rust = callPackage ../applications/window-managers/i3/status-rust.nix { };
 
+  i3wsr = callPackage ../applications/window-managers/i3/wsr.nix { };
+
   i3-wk-switch = callPackage ../applications/window-managers/i3/wk-switch.nix { };
 
-  waybox = callPackage ../applications/window-managers/waybox { };
+  waybox = callPackage ../applications/window-managers/waybox {
+    wlroots = wlroots_0_12;
+  };
 
   windowchef = callPackage ../applications/window-managers/windowchef/default.nix { };
 
@@ -22952,7 +23652,7 @@ in
 
   imagej = callPackage ../applications/graphics/imagej { };
 
-  imagemagick_light = imagemagick.override {
+  imagemagick6_light = imagemagick6.override {
     bzip2 = null;
     zlib = null;
     libX11 = null;
@@ -22975,14 +23675,14 @@ in
     libde265 = null;
   };
 
-  imagemagick = callPackage ../applications/graphics/ImageMagick {
+  imagemagick6 = callPackage ../applications/graphics/ImageMagick/6.x.nix {
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
     ghostscript = null;
   };
 
-  imagemagickBig = imagemagick.override { inherit ghostscript; };
+  imagemagick6Big = imagemagick6.override { inherit ghostscript; };
 
-  imagemagick7_light = lowPrio (imagemagick7.override {
+  imagemagick_light = lowPrio (imagemagick.override {
     bzip2 = null;
     zlib = null;
     libX11 = null;
@@ -23004,11 +23704,11 @@ in
     libheif = null;
   });
 
-  imagemagick7 = lowPrio (imagemagick7Big.override {
+  imagemagick = lowPrio (imagemagickBig.override {
     ghostscript = null;
   });
 
-  imagemagick7Big = lowPrio (callPackage ../applications/graphics/ImageMagick/7.0.nix {
+  imagemagickBig = lowPrio (callPackage ../applications/graphics/ImageMagick/7.0.nix {
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
   });
 
@@ -23029,6 +23729,8 @@ in
   # Impressive, formerly known as "KeyJNote".
   impressive = callPackage ../applications/office/impressive { };
 
+  index-fm = libsForQt5.callPackage ../applications/misc/index-fm { };
+
   inkcut = libsForQt5.callPackage ../applications/misc/inkcut { };
 
   inkscape = callPackage ../applications/graphics/inkscape {
@@ -23039,9 +23741,7 @@ in
 
   inkscape-extensions = recurseIntoAttrs (callPackages ../applications/graphics/inkscape/extensions.nix {});
 
-  inspectrum = libsForQt514.callPackage ../applications/radio/inspectrum {
-    gnuradio = gnuradioMinimal;
-  };
+  inspectrum = callPackage ../applications/radio/inspectrum { };
 
   ion3 = callPackage ../applications/window-managers/ion-3 {
     lua = lua5_1;
@@ -23140,12 +23840,12 @@ in
 
   k3s = callPackage ../applications/networking/cluster/k3s {};
 
+  kconf = callPackage ../applications/networking/cluster/kconf { };
+
   kail = callPackage ../tools/networking/kail {  };
 
   kanboard = callPackage ../applications/misc/kanboard { };
 
-  kanshi = callPackage ../tools/misc/kanshi { };
-
   kapitonov-plugins-pack = callPackage ../applications/audio/kapitonov-plugins-pack { };
 
   kapow = libsForQt5.callPackage ../applications/misc/kapow { };
@@ -23200,7 +23900,7 @@ in
     ffmpeg = ffmpeg_2;
   };
 
-  kiwix = callPackage ../applications/misc/kiwix { };
+  kiwix = libsForQt5.callPackage ../applications/misc/kiwix { };
 
   klayout = libsForQt5.callPackage ../applications/misc/klayout { };
 
@@ -23232,6 +23932,8 @@ in
 
   kubecfg = callPackage ../applications/networking/cluster/kubecfg { };
 
+  kube-score = callPackage ../applications/networking/cluster/kube-score { };
+
   kubeval = callPackage ../applications/networking/cluster/kubeval { };
 
   kubeval-schema = callPackage ../applications/networking/cluster/kubeval/schema.nix { };
@@ -23242,16 +23944,30 @@ in
 
   kubernix = callPackage ../applications/networking/cluster/kubernix { };
 
+  kubeconform = callPackage ../applications/networking/cluster/kubeconform { };
+
   kubectl = callPackage ../applications/networking/cluster/kubectl { };
 
+  kuttl = callPackage ../applications/networking/cluster/kuttl {
+    buildGoModule = buildGo115Module;
+  };
+
+  kubectl-doctor = callPackage ../applications/networking/cluster/kubectl-doctor { };
+
+  kubectl-example = callPackage ../applications/networking/cluster/kubectl-example { };
+
   kubeless = callPackage ../applications/networking/cluster/kubeless { };
 
   kubelogin = callPackage ../applications/networking/cluster/kubelogin { };
 
   k9s = callPackage ../applications/networking/cluster/k9s { };
 
+  pgo-client = callPackage ../applications/networking/cluster/pgo-client { };
+
   popeye = callPackage ../applications/networking/cluster/popeye { };
 
+  kube-capacity = callPackage ../applications/networking/cluster/kube-capacity { };
+
   fluxctl = callPackage ../applications/networking/cluster/fluxctl { };
 
   fluxcd = callPackage ../applications/networking/cluster/fluxcd { };
@@ -23260,6 +23976,12 @@ in
 
   kubernetes-helm = callPackage ../applications/networking/cluster/helm { };
 
+  wrapHelm = callPackage ../applications/networking/cluster/helm/wrapper.nix { };
+
+  kubernetes-helm-wrapped = wrapHelm kubernetes-helm {};
+
+  kubernetes-helmPlugins = dontRecurseIntoAttrs (callPackage ../applications/networking/cluster/helm/plugins { });
+
   kubetail = callPackage ../applications/networking/cluster/kubetail { } ;
 
   kupfer = callPackage ../applications/misc/kupfer {
@@ -23312,6 +24034,8 @@ in
 
   libowfat = callPackage ../development/libraries/libowfat { };
 
+  libowlevelzs = callPackage ../development/libraries/libowlevelzs { };
+
   librecad = libsForQt514.callPackage ../applications/misc/librecad { };
 
   libreoffice = hiPrio libreoffice-still;
@@ -23428,6 +24152,8 @@ in
     inherit (darwin) libobjc;
   };
 
+  handlr = callPackage ../tools/misc/handlr { };
+
   jftui = callPackage ../applications/video/jftui { };
 
   lime = callPackage ../development/libraries/lime { };
@@ -23440,6 +24166,8 @@ in
 
   ltc-tools = callPackage ../applications/audio/ltc-tools { };
 
+  lscolors = callPackage ../applications/misc/lscolors { };
+
   lumail = callPackage ../applications/networking/mailreaders/lumail {
     lua = lua5_1;
   };
@@ -23479,7 +24207,7 @@ in
 
   mail-notification = callPackage ../desktops/gnome-2/desktop/mail-notification {};
 
-  magnetophonDSP = {
+  magnetophonDSP = lib.recurseIntoAttrs {
     CharacterCompressor = callPackage ../applications/audio/magnetophonDSP/CharacterCompressor { };
     CompBus = callPackage ../applications/audio/magnetophonDSP/CompBus { };
     ConstantDetuneChorus  = callPackage ../applications/audio/magnetophonDSP/ConstantDetuneChorus { };
@@ -23526,6 +24254,8 @@ in
 
   mblaze = callPackage ../applications/networking/mailreaders/mblaze { };
 
+  mbrola = callPackage ../applications/audio/mbrola { };
+
   mcomix3 = callPackage ../applications/graphics/mcomix3 {};
 
   mcpp = callPackage ../development/compilers/mcpp { };
@@ -23554,6 +24284,8 @@ in
 
   meme = callPackage ../applications/graphics/meme { };
 
+  meme-suite = callPackage ../applications/science/biology/meme-suite { };
+
   # Needs qtwebkit which is broken on qt5.15
   mendeley = libsForQt514.callPackage ../applications/office/mendeley {
     gconf = pkgs.gnome2.GConf;
@@ -23574,6 +24306,8 @@ in
 
   meshlab = libsForQt5.callPackage ../applications/graphics/meshlab { };
 
+  metadata-cleaner = callPackage ../applications/misc/metadata-cleaner { };
+
   metersLv2 = callPackage ../applications/audio/meters_lv2 { };
 
   mhwaveedit = callPackage ../applications/audio/mhwaveedit {
@@ -23665,6 +24399,8 @@ in
 
   moonlight-embedded = callPackage ../applications/misc/moonlight-embedded { };
 
+  moonlight-qt = libsForQt5.callPackage ../applications/misc/moonlight-qt { };
+
   mooSpace = callPackage ../applications/audio/mooSpace { };
 
   mop = callPackage ../applications/misc/mop { };
@@ -23675,7 +24411,6 @@ in
 
   inherit (mopidyPackages)
     mopidy
-    mopidy-gmusic
     mopidy-iris
     mopidy-local
     mopidy-moped
@@ -23724,6 +24459,8 @@ in
 
   ncmpcpp = callPackage ../applications/audio/ncmpcpp { };
 
+  pragha = libsForQt5.callPackage ../applications/audio/pragha { };
+
   rofi-mpd = callPackage ../applications/audio/rofi-mpd { };
 
   rofi-calc = callPackage ../applications/science/math/rofi-calc { };
@@ -23771,6 +24508,7 @@ in
     mpvacious = callPackage ../applications/video/mpv/scripts/mpvacious.nix {};
     simple-mpv-webui = callPackage ../applications/video/mpv/scripts/simple-mpv-webui.nix {};
     sponsorblock = callPackage ../applications/video/mpv/scripts/sponsorblock.nix {};
+    thumbnail = callPackage ../applications/video/mpv/scripts/thumbnail.nix { };
   };
 
   mrpeach = callPackage ../applications/audio/pd-plugins/mrpeach { };
@@ -23852,7 +24590,9 @@ in
 
   ninjas2 = callPackage ../applications/audio/ninjas2 {};
 
-  nncp = callPackage ../tools/misc/nncp { };
+  nncp = callPackage ../tools/misc/nncp {
+    go = go_1_15;
+  };
 
   notion = callPackage ../applications/window-managers/notion { };
 
@@ -23863,6 +24603,8 @@ in
 
   ocenaudio = callPackage ../applications/audio/ocenaudio { };
 
+  onlyoffice-bin = callPackage ../applications/office/onlyoffice-bin { };
+
   open-policy-agent = callPackage ../development/tools/open-policy-agent { };
 
   openshift = callPackage ../applications/networking/cluster/openshift { };
@@ -23905,6 +24647,8 @@ in
      stdenv = stdenv_32bit;
   };
 
+  pleroma-bot = python3Packages.callPackage ../development/python-modules/pleroma-bot { };
+
   polybar = callPackage ../applications/misc/polybar { };
 
   polybarFull = callPackage ../applications/misc/polybar {
@@ -23934,6 +24678,8 @@ in
 
   qbec = callPackage ../applications/networking/cluster/qbec { };
 
+  qemacs = callPackage ../applications/editors/qemacs { };
+
   rssguard = libsForQt5.callPackage ../applications/networking/feedreaders/rssguard { };
 
   scudcloud = callPackage ../applications/networking/instant-messengers/scudcloud { };
@@ -24027,6 +24773,8 @@ in
   mupdf = callPackage ../applications/misc/mupdf { };
   mupdf_1_17 = callPackage ../applications/misc/mupdf/1.17.nix { };
 
+  muso = callPackage ../applications/audio/muso { };
+
   mystem = callPackage ../applications/misc/mystem { };
 
   diffpdf = libsForQt5.callPackage ../applications/misc/diffpdf { };
@@ -24230,6 +24978,8 @@ in
 
   osmo = callPackage ../applications/office/osmo { };
 
+  osmscout-server = libsForQt5.callPackage ../applications/misc/osmscout-server { };
+
   palemoon = callPackage ../applications/networking/browsers/palemoon {
     # https://developer.palemoon.org/build/linux/
     stdenv = gcc8Stdenv;
@@ -24279,6 +25029,8 @@ in
     wxGTK = wxGTK30-gtk3;
   };
 
+  pdfslicer = callPackage ../applications/misc/pdfslicer { };
+
   pekwm = callPackage ../applications/window-managers/pekwm { };
 
   pencil = callPackage ../applications/graphics/pencil {
@@ -24369,6 +25121,8 @@ in
 
   pidgin-window-merge = callPackage ../applications/networking/instant-messengers/pidgin-plugins/window-merge { };
 
+  pika-backup = callPackage ../applications/backup/pika-backup { };
+
   purple-discord = callPackage ../applications/networking/instant-messengers/pidgin-plugins/purple-discord { };
 
   purple-hangouts = callPackage ../applications/networking/instant-messengers/pidgin-plugins/purple-hangouts { };
@@ -24426,6 +25180,8 @@ in
 
   plugin-torture = callPackage ../applications/audio/plugin-torture { };
 
+  poke = callPackage ../applications/editors/poke { };
+
   polar-bookshelf = callPackage ../applications/misc/polar-bookshelf { };
 
   poezio = python3Packages.poezio;
@@ -24440,6 +25196,10 @@ in
 
   ponymix = callPackage ../applications/audio/ponymix { };
 
+  portfolio-filemanager = callPackage ../applications/misc/portfolio-filemanager { };
+
+  pothos = libsForQt5.callPackage ../applications/radio/pothos { };
+
   potrace = callPackage ../applications/graphics/potrace {};
 
   posterazor = callPackage ../applications/misc/posterazor { };
@@ -24493,6 +25253,8 @@ in
 
   puremapping = callPackage ../applications/audio/pd-plugins/puremapping { };
 
+  pure-maps = libsForQt5.callPackage ../applications/misc/pure-maps { };
+
   pwdsafety = callPackage ../tools/security/pwdsafety { };
 
   pybitmessage = callPackage ../applications/networking/instant-messengers/pybitmessage { };
@@ -24506,10 +25268,7 @@ in
 
   qcomicbook = libsForQt5.callPackage ../applications/graphics/qcomicbook { };
 
-  eiskaltdcpp = callPackage ../applications/networking/p2p/eiskaltdcpp {
-    lua5 = lua5_1;
-    miniupnpc = miniupnpc_1;
-  };
+  eiskaltdcpp = libsForQt5.callPackage ../applications/networking/p2p/eiskaltdcpp { };
 
   qdirstat = libsForQt5.callPackage ../applications/misc/qdirstat {};
 
@@ -24777,7 +25536,7 @@ in
 
   udevil = callPackage ../applications/misc/udevil {};
 
-  udiskie = callPackage ../applications/misc/udiskie { };
+  udiskie = python3Packages.callPackage ../applications/misc/udiskie { };
 
   sacc = callPackage ../applications/networking/gopher/sacc { };
 
@@ -24803,6 +25562,8 @@ in
 
   seafile-client = libsForQt5.callPackage ../applications/networking/seafile-client { };
 
+  secretscanner = callPackage ../tools/security/secretscanner { };
+
   sent = callPackage ../applications/misc/sent { };
 
   seq24 = callPackage ../applications/audio/seq24 { };
@@ -24841,9 +25602,9 @@ in
 
   slop = callPackage ../tools/misc/slop {};
 
-  slrn = callPackage ../applications/networking/newsreaders/slrn { };
+  slowhttptest = callPackage ../tools/security/slowhttptest { };
 
-  slurp = callPackage ../tools/misc/slurp { };
+  slrn = callPackage ../applications/networking/newsreaders/slrn { };
 
   sniproxy = callPackage ../applications/networking/sniproxy { };
 
@@ -24867,6 +25628,8 @@ in
 
   split2flac = callPackage ../applications/audio/split2flac { };
 
+  spotify-qt = libsForQt5.callPackage ../applications/audio/spotify-qt { };
+
   spotify-tui = callPackage ../applications/audio/spotify-tui {
     inherit (darwin.apple_sdk.frameworks) AppKit Security;
   };
@@ -24893,16 +25656,12 @@ in
 
   linuxstopmotion = libsForQt5.callPackage ../applications/video/linuxstopmotion { };
 
-  sweethome3d = recurseIntoAttrs (  (callPackage ../applications/misc/sweethome3d {
-    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-  })
-                                 // (callPackage ../applications/misc/sweethome3d/editors.nix {
-                                      jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-                                      jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-                                      sweethome3dApp = sweethome3d.application;
-                                    })
-                                 );
+  sweethome3d = recurseIntoAttrs (
+    (callPackage ../applications/misc/sweethome3d { }) //
+    (callPackage ../applications/misc/sweethome3d/editors.nix {
+      sweethome3dApp = sweethome3d.application;
+    })
+  );
 
   swingsane = callPackage ../applications/graphics/swingsane { };
 
@@ -24935,7 +25694,7 @@ in
   };
 
   lightdm_gtk_greeter = callPackage ../applications/display-managers/lightdm/gtk-greeter.nix {
-    inherit (xfce) exo;
+    inherit (xfce) xfce4-dev-tools;
   };
 
   lightdm-mini-greeter = callPackage ../applications/display-managers/lightdm-mini-greeter { };
@@ -25024,10 +25783,13 @@ in
 
   libspotify = callPackage ../development/libraries/libspotify (config.libspotify or {});
 
-  sourcetrail = libsForQt5.callPackage ../development/tools/sourcetrail {
-    jdk = jdk8;
+  sourcetrail = let
     llvmPackages = llvmPackages_10;
+  in libsForQt5.callPackage ../development/tools/sourcetrail {
+    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+    jdk = jdk8;
     pythonPackages = python3Packages;
+    inherit llvmPackages;
   };
 
   spotifywm = callPackage ../applications/audio/spotifywm { };
@@ -25080,7 +25842,7 @@ in
     sublime-merge-dev;
 
   inherit (callPackages ../applications/version-management/subversion { sasl = cyrus_sasl; })
-    subversion19 subversion_1_10 subversion;
+    subversion_1_10 subversion;
 
   subversionClient = appendToName "client" (pkgs.subversion.override {
     bdbSupport = false;
@@ -25103,6 +25865,8 @@ in
 
   sunvox = callPackage ../applications/audio/sunvox { };
 
+  svkbd = callPackage ../applications/accessibility/svkbd { };
+
   swaglyrics = callPackage ../tools/misc/swaglyrics { };
 
   swh_lv2 = callPackage ../applications/audio/swh-lv2 { };
@@ -25272,6 +26036,8 @@ in
 
   ticpp = callPackage ../development/libraries/ticpp { };
 
+  ticker = callPackage ../applications/misc/ticker { };
+
   tickrs = callPackage ../applications/misc/tickrs {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -25391,6 +26157,8 @@ in
 
   testssl = callPackage ../applications/networking/testssl { };
 
+  lavalauncher = callPackage ../applications/misc/lavalauncher { };
+
   ulauncher = callPackage ../applications/misc/ulauncher { };
 
   twinkle = qt5.callPackage ../applications/networking/instant-messengers/twinkle { };
@@ -25417,6 +26185,8 @@ in
 
   unigine-valley = callPackage ../applications/graphics/unigine-valley { };
 
+  unipicker = callPackage ../applications/misc/unipicker { };
+
   unison = callPackage ../applications/networking/sync/unison {
     ocamlPackages = ocaml-ng.ocamlPackages_4_09;
     enableX11 = config.unison.enableX11 or true;
@@ -25428,6 +26198,8 @@ in
 
   urh = callPackage ../applications/radio/urh { };
 
+  uroboros = callPackage ../tools/system/uroboros { };
+
   uuagc = haskell.lib.justStaticExecutables haskellPackages.uuagc;
 
   uucp = callPackage ../tools/misc/uucp { };
@@ -25493,7 +26265,7 @@ in
 
   vimv = callPackage ../tools/misc/vimv/default.nix { };
 
-  qpdfview = libsForQt514.callPackage ../applications/misc/qpdfview {};
+  qpdfview = libsForQt5.callPackage ../applications/misc/qpdfview {};
 
   qtile = callPackage ../applications/window-managers/qtile {
     inherit (xorg) libxcb;
@@ -25516,6 +26288,7 @@ in
   neovimUtils = callPackage ../applications/editors/neovim/utils.nix { };
   neovim = wrapNeovim neovim-unwrapped { };
 
+  neovim-qt-unwrapped = libsForQt5.callPackage ../applications/editors/neovim/neovim-qt.nix { };
   neovim-qt = libsForQt5.callPackage ../applications/editors/neovim/qt.nix { };
 
   olifant = callPackage ../applications/misc/olifant { };
@@ -25673,6 +26446,8 @@ in
 
   wad = python3Packages.callPackage ../tools/security/wad { };
 
+  wafw00f = python3Packages.callPackage ../tools/security/wafw00f { };
+
   waon = callPackage ../applications/audio/waon { };
 
   w3m = callPackage ../applications/networking/browsers/w3m { };
@@ -25704,15 +26479,22 @@ in
     pythonPackages = python3Packages;
   };
 
+  wapiti = callPackage ../tools/security/wapiti { };
+
   way-cooler = throw ("way-cooler is abandoned by its author: " +
     "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html");
 
   wayfireApplications = wayfireApplications-unwrapped.withPlugins (plugins: [ plugins.wf-shell ]);
   inherit (wayfireApplications) wayfire wcm;
-  wayfireApplications-unwrapped = callPackage ../applications/window-managers/wayfire/applications.nix { };
-  wayfirePlugins = callPackage ../applications/window-managers/wayfire/plugins.nix {
-    inherit (wayfireApplications-unwrapped) wayfire;
-  };
+  wayfireApplications-unwrapped = recurseIntoAttrs (
+    (callPackage ../applications/window-managers/wayfire/applications.nix { }).
+    extend (_: _: { wlroots = wlroots_0_12; })
+  );
+  wayfirePlugins = recurseIntoAttrs (
+    callPackage ../applications/window-managers/wayfire/plugins.nix {
+      inherit (wayfireApplications-unwrapped) wayfire;
+    }
+  );
   wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { };
 
   waypipe = callPackage ../applications/networking/remote/waypipe { };
@@ -25754,7 +26536,9 @@ in
 
   weston = callPackage ../applications/window-managers/weston { pipewire = pipewire_0_2; };
 
-  wio = callPackage ../applications/window-managers/wio { };
+  wio = callPackage ../applications/window-managers/wio {
+    wlroots = wlroots_0_12;
+  };
 
   whitebox-tools = callPackage ../applications/gis/whitebox-tools {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -25891,33 +26675,6 @@ in
     cores = retroArchCores;
   };
 
-  wrapKodi = { kodi }: callPackage ../applications/video/kodi/wrapper.nix {
-    inherit kodi;
-    plugins = let inherit (lib) optional optionals; in with kodiPlugins;
-      ([]
-      ++ optional (config.kodi.enableAdvancedLauncher or false) advanced-launcher
-      ++ optional (config.kodi.enableAdvancedEmulatorLauncher or false)
-        advanced-emulator-launcher
-      ++ optionals (config.kodi.enableControllers or false)
-        (with controllers;
-          [ default dreamcast gba genesis mouse n64 nes ps snes ])
-      ++ optional (config.kodi.enableExodus or false) exodus
-      ++ optionals (config.kodi.enableHyperLauncher or false)
-           (with hyper-launcher; [ plugin service pdfreader ])
-      ++ optional (config.kodi.enableJoystick or false) joystick
-      ++ optional (config.kodi.enableOSMCskin or false) osmc-skin
-      ++ optional (config.kodi.enableSVTPlay or false) svtplay
-      ++ optional (config.kodi.enableSteamController or false) steam-controller
-      ++ optional (config.kodi.enableSteamLauncher or false) steam-launcher
-      ++ optional (config.kodi.enablePVRHTS or false) pvr-hts
-      ++ optional (config.kodi.enablePVRHDHomeRun or false) pvr-hdhomerun
-      ++ optional (config.kodi.enablePVRIPTVSimple or false) pvr-iptvsimple
-      ++ optional (config.kodi.enableInputStreamAdaptive or false) inputstream-adaptive
-      ++ optional (config.kodi.enableVFSSFTP or false) vfs-sftp
-      ++ optional (config.kodi.enableVFSLibarchive or false) vfs-libarchive
-      );
-  };
-
   wsjtx = qt5.callPackage ../applications/radio/wsjtx { };
 
   wxhexeditor = callPackage ../applications/editors/wxhexeditor {
@@ -25930,6 +26687,9 @@ in
     gtk = gtk2;
   };
 
+  xa = callPackage ../development/compilers/xa/xa.nix { };
+  dxa = callPackage ../development/compilers/xa/dxa.nix { };
+
   x11basic = callPackage ../development/compilers/x11basic {
     autoconf = buildPackages.autoconf269;
   };
@@ -25975,28 +26735,16 @@ in
     gtk = gtk2;
   };
 
-  kodiPlain = callPackage ../applications/video/kodi { };
-
-  kodiPlainWayland = callPackage ../applications/video/kodi {
-    useWayland = true;
-  };
-
-  kodiGBM = callPackage ../applications/video/kodi {
-    useGbm = true;
-  };
-
-  kodiPlugins = recurseIntoAttrs (callPackage ../applications/video/kodi/plugins.nix {});
+  kodiPackages = recurseIntoAttrs (kodi.packages);
 
-  kodi = wrapKodi {
-    kodi = kodiPlain;
-  };
+  kodi = callPackage ../applications/video/kodi { };
 
-  kodi-wayland = wrapKodi {
-    kodi = kodiPlainWayland;
+  kodi-wayland = callPackage ../applications/video/kodi {
+    waylandSupport = true;
   };
 
-  kodi-gbm = wrapKodi {
-    kodi = kodiGBM;
+  kodi-gbm = callPackage ../applications/video/kodi {
+    gbmSupport = true;
   };
 
   kodi-cli = callPackage ../tools/misc/kodi-cli { };
@@ -26013,6 +26761,8 @@ in
 
   xcape = callPackage ../tools/X11/xcape { };
 
+  xcat = callPackage ../tools/security/xcat { };
+
   xchainkeys = callPackage ../tools/X11/xchainkeys { };
 
   xchm = callPackage ../applications/misc/xchm { };
@@ -26041,6 +26791,10 @@ in
 
   xdotool = callPackage ../tools/X11/xdotool { };
 
+  xed-editor = callPackage ../applications/editors/xed-editor {
+    xapps = cinnamon.xapps;
+  };
+
   xenPackages = recurseIntoAttrs (callPackage ../applications/virtualization/xen/packages.nix {});
 
   xen = xenPackages.xen-vanilla;
@@ -26143,6 +26897,13 @@ in
   xpra = callPackage ../tools/X11/xpra { };
   libfakeXinerama = callPackage ../tools/X11/xpra/libfakeXinerama.nix { };
 
+
+  xplayer = callPackage ../applications/video/xplayer {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad;
+    inherit (cinnamon) xapps;
+  };
+  libxplayer-plparser = callPackage ../applications/video/xplayer/plparser.nix { };
+
   xrectsel = callPackage ../tools/X11/xrectsel { };
 
   xrestop = callPackage ../tools/X11/xrestop { };
@@ -26235,6 +26996,10 @@ in
 
   zathura = callPackage ../applications/misc/zathura { };
 
+  zdns = callPackage ../tools/security/zdns { };
+
+  zerobin = callPackage ../applications/networking/zerobin { };
+
   zeroc-ice = callPackage ../development/libraries/zeroc-ice {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -26251,7 +27016,9 @@ in
     autoconf = buildPackages.autoconf269;
   };
 
-  zgrviewer = callPackage ../applications/graphics/zgrviewer {};
+  zgrab2 = callPackage ../tools/security/zgrab2 { };
+
+  zgrviewer = callPackage ../applications/graphics/zgrviewer { };
 
   zgv = callPackage ../applications/graphics/zgv {
    # Enable the below line for terminal display. Note
@@ -26274,12 +27041,14 @@ in
 
   zombietrackergps = libsForQt5.callPackage ../applications/gis/zombietrackergps { };
 
-  zoom-us = libsForQt5.callPackage ../applications/networking/instant-messengers/zoom-us { };
+  zoom-us = callPackage ../applications/networking/instant-messengers/zoom-us { };
 
   zotero = callPackage ../applications/office/zotero { };
 
   zscroll = callPackage ../applications/misc/zscroll {};
 
+  zsteg = callPackage ../tools/security/zsteg { };
+
   zynaddsubfx = zyn-fusion;
 
   zynaddsubfx-fltk = callPackage ../applications/audio/zynaddsubfx {
@@ -26298,6 +27067,8 @@ in
 
   aeon = callPackage ../applications/blockchains/aeon { };
 
+  balanceofsatoshis = nodePackages.balanceofsatoshis;
+
   bitcoin  = libsForQt5.callPackage ../applications/blockchains/bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; };
   bitcoind = callPackage ../applications/blockchains/bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; };
 
@@ -26370,6 +27141,8 @@ in
 
   lndconnect = callPackage ../applications/blockchains/lndconnect { };
 
+  lndmanage = callPackage ../applications/blockchains/lndmanage.nix { };
+
   monero = callPackage ../applications/blockchains/monero {
     inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
     boost = boost17x;
@@ -26396,6 +27169,8 @@ in
 
   ethabi = callPackage ../applications/blockchains/ethabi.nix { };
 
+  pycoin = with python3Packages; toPythonApplication pycoin;
+
   stellar-core = callPackage ../applications/blockchains/stellar-core.nix { };
 
   sumokoin = callPackage ../applications/blockchains/sumokoin.nix { boost = boost165; };
@@ -26413,7 +27188,7 @@ in
 
   wownero = callPackage ../applications/blockchains/wownero.nix {};
 
-  zcash = callPackage ../applications/blockchains/zcash { };
+  zcash = callPackage ../applications/blockchains/zcash { stdenv = llvmPackages_11.stdenv; };
 
   openethereum = callPackage ../applications/blockchains/openethereum { };
 
@@ -26513,10 +27288,16 @@ in
     lua = lua5;
   };
 
+  black-hole-solver = callPackage ../games/black-hole-solver {
+    inherit (perlPackages) PathTiny;
+  };
+
   blackshades = callPackage ../games/blackshades { };
 
   blobby = callPackage ../games/blobby { };
 
+  blobwars = callPackage ../games/blobwars { };
+
   boohu = callPackage ../games/boohu { };
 
   braincurses = callPackage ../games/braincurses { };
@@ -26537,12 +27318,16 @@ in
 
   cataclysm-dda-git = cataclysmDDA.git.tiles;
 
+  cbonsai = callPackage ../games/cbonsai { };
+
   chessdb = callPackage ../games/chessdb { };
 
   chessx = libsForQt5.callPackage ../games/chessx { };
 
   chiaki = libsForQt5.callPackage ../games/chiaki { };
 
+  chromium-bsu = callPackage ../games/chromium-bsu { };
+
   chocolateDoom = callPackage ../games/chocolate-doom { };
 
   clonehero-unwrapped = pkgs.callPackage ../games/clonehero { };
@@ -26791,9 +27576,7 @@ in
 
   icbm3d = callPackage ../games/icbm3d { };
 
-  ingen = callPackage ../applications/audio/ingen {
-    inherit (pythonPackages) rdflib;
-  };
+  ingen = callPackage ../applications/audio/ingen { };
 
   ideogram = callPackage ../applications/graphics/ideogram { };
 
@@ -27029,8 +27812,6 @@ in
 
   pysolfc = python3Packages.callPackage ../games/pysolfc { };
 
-  qweechat = callPackage ../applications/networking/irc/qweechat { };
-
   qqwing = callPackage ../games/qqwing { };
 
   quake3wrapper = callPackage ../games/quake3/wrapper { };
@@ -27156,6 +27937,8 @@ in
 
   soldat-unstable = callPackage ../games/soldat-unstable { };
 
+  sollya = callPackage ../development/interpreters/sollya { };
+
   # You still can override by passing more arguments.
   space-orbit = callPackage ../games/space-orbit { };
 
@@ -27274,10 +28057,16 @@ in
 
   typespeed = callPackage ../games/typespeed { };
 
+  uchess = callPackage ../games/uchess {
+    buildGoModule = buildGo116Module;
+  };
+
   udig = callPackage ../applications/gis/udig { };
 
   ufoai = callPackage ../games/ufoai { };
 
+  uhexen2 = callPackage ../games/uhexen2 { };
+
   ultimatestunts = callPackage ../games/ultimatestunts { };
 
   ultrastar-creator = libsForQt5.callPackage ../tools/misc/ultrastar-creator { };
@@ -27333,13 +28122,15 @@ in
     libpng = libpng12;
   };
 
+  wargus = callPackage ../games/wargus { };
+
   warmux = callPackage ../games/warmux { };
 
   warsow-engine = callPackage ../games/warsow/engine.nix { };
 
   warsow = callPackage ../games/warsow { };
 
-  warzone2100 = libsForQt5.callPackage ../games/warzone2100 { };
+  warzone2100 = callPackage ../games/warzone2100 { };
 
   wesnoth = callPackage ../games/wesnoth {
     inherit (darwin.apple_sdk.frameworks) Cocoa Foundation;
@@ -27434,7 +28225,6 @@ in
 
   zeroadPackages = dontRecurseIntoAttrs (callPackage ../games/0ad {
     wxGTK = wxGTK30;
-    stdenv = gcc9Stdenv;
   });
 
   zeroad = zeroadPackages.zeroad;
@@ -27459,12 +28249,13 @@ in
 
   gnomeExtensions = recurseIntoAttrs {
     appindicator = callPackage ../desktops/gnome-3/extensions/appindicator { };
-    arc-menu = callPackage ../desktops/gnome-3/extensions/arc-menu { };
+    arcmenu = callPackage ../desktops/gnome-3/extensions/arcmenu { };
     caffeine = callPackage ../desktops/gnome-3/extensions/caffeine { };
     clipboard-indicator = callPackage ../desktops/gnome-3/extensions/clipboard-indicator { };
     clock-override = callPackage ../desktops/gnome-3/extensions/clock-override { };
     dash-to-dock = callPackage ../desktops/gnome-3/extensions/dash-to-dock { };
     dash-to-panel = callPackage ../desktops/gnome-3/extensions/dash-to-panel { };
+    disable-unredirect = callPackage ../desktops/gnome-3/extensions/disable-unredirect { };
     draw-on-your-screen = callPackage ../desktops/gnome-3/extensions/draw-on-your-screen { };
     drop-down-terminal = callPackage ../desktops/gnome-3/extensions/drop-down-terminal { };
     dynamic-panel-transparency = callPackage ../desktops/gnome-3/extensions/dynamic-panel-transparency { };
@@ -27498,6 +28289,7 @@ in
     mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md";
   } // lib.optionalAttrs (config.allowAliases or false) {
     unite-shell = gnomeExtensions.unite; # added 2021-01-19
+    arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14
   };
 
   gnome-connections = callPackage ../desktops/gnome-3/apps/gnome-connections { };
@@ -27569,6 +28361,14 @@ in
 
   octopus = callPackage ../applications/science/chemistry/octopus { };
 
+  openlp = libsForQt5.callPackage ../applications/misc/openlp { };
+  openlpFull = appendToName "full" (openlp.override {
+    pdfSupport = true;
+    presentationSupport = true;
+    vlcSupport = true;
+    gstreamerSupport = true;
+  });
+
   openmolcas = callPackage ../applications/science/chemistry/openmolcas { };
 
   pymol = callPackage ../applications/science/chemistry/pymol { };
@@ -27615,6 +28415,8 @@ in
 
   bayescan = callPackage ../applications/science/biology/bayescan { };
 
+  bedops = callPackage ../applications/science/biology/bedops { };
+
   bedtools = callPackage ../applications/science/biology/bedtools { };
 
   bcftools = callPackage ../applications/science/biology/bcftools { };
@@ -27908,7 +28710,9 @@ in
 
   osi = callPackage ../development/libraries/science/math/osi { };
 
-  or-tools = callPackage ../development/libraries/science/math/or-tools { };
+  or-tools = callPackage ../development/libraries/science/math/or-tools {
+    abseil-cpp = abseil-cpp.override { static = true; };
+  };
 
   rubiks = callPackage ../development/libraries/science/math/rubiks { };
 
@@ -27988,10 +28792,14 @@ in
 
   dcmtk = callPackage ../applications/science/medicine/dcmtk { };
 
+  xmedcon = callPackage ../applications/science/medicine/xmedcon { };
+
   ### SCIENCE/PHYSICS
 
   elmerfem = callPackage ../applications/science/physics/elmerfem {};
 
+  professor = callPackage ../applications/science/physics/professor { };
+
   sacrifice = callPackage ../applications/science/physics/sacrifice {};
 
   sherpa = callPackage ../applications/science/physics/sherpa {};
@@ -28051,6 +28859,8 @@ in
 
   cryptoverif = callPackage ../applications/science/logic/cryptoverif { };
 
+  crypto-org-wallet = callPackage ../applications/blockchains/crypto-org-wallet.nix { };
+
   caprice32 = callPackage ../misc/emulators/caprice32 { };
 
   cubicle = callPackage ../applications/science/logic/cubicle {
@@ -28210,7 +29020,7 @@ in
   tlaps = callPackage ../applications/science/logic/tlaplus/tlaps.nix {
     inherit (ocaml-ng.ocamlPackages_4_05) ocaml;
   };
-  tlaplusToolbox = callPackage ../applications/science/logic/tlaplus/toolbox.nix {gtk = gtk2;};
+  tlaplusToolbox = callPackage ../applications/science/logic/tlaplus/toolbox.nix {};
 
   aiger = callPackage ../applications/science/logic/aiger {};
 
@@ -28317,6 +29127,8 @@ in
     cudaSupport = config.cudaSupport or false;
   };
 
+  dap = callPackage ../applications/science/math/dap { };
+
   ecm = callPackage ../applications/science/math/ecm { };
 
   eukleides = callPackage ../applications/science/math/eukleides {
@@ -28450,13 +29262,15 @@ in
 
   simgrid = callPackage ../applications/science/misc/simgrid { };
 
+  sumo = callPackage ../applications/science/networking/sumo { };
+
   spyder = with python3.pkgs; toPythonApplication spyder;
 
   openspace = callPackage ../applications/science/astronomy/openspace { };
 
   stellarium = libsForQt5.callPackage ../applications/science/astronomy/stellarium { };
 
-  stellarsolver = libsForQt5.callPackage ../development/libraries/stellarsolver { };
+  stellarsolver = libsForQt5.callPackage ../development/libraries/science/astronomy/stellarsolver { };
 
   astrolabe-generator = callPackage ../applications/science/astronomy/astrolabe-generator { };
 
@@ -28628,6 +29442,8 @@ in
 
   cups-brother-hll2340dw = pkgsi686Linux.callPackage  ../misc/cups/drivers/hll2340dw { };
 
+  cups-drv-rastertosag-gdi = callPackage ../misc/cups/drivers/cups-drv-rastertosag-gdi { };
+
   # this driver ships with pre-compiled 32-bit binary libraries
   cnijfilter_2_80 = pkgsi686Linux.callPackage ../misc/cups/drivers/cnijfilter_2_80 { };
 
@@ -28655,6 +29471,8 @@ in
 
   dell-530cdn = callPackage ../misc/drivers/dell-530cdn {};
 
+  demjson = with python3Packages; toPythonApplication demjson;
+
   dosbox = callPackage ../misc/emulators/dosbox { };
 
   emu2 = callPackage ../misc/emulators/emu2 { };
@@ -28786,6 +29604,8 @@ in
     inherit (darwin.apple_sdk.frameworks) Security CoreServices;
   };
 
+  hjson = with python3Packages; toPythonApplication hjson;
+
   epkowa = callPackage ../misc/drivers/epkowa { };
 
   utsushi = callPackage ../misc/drivers/utsushi { };
@@ -28810,13 +29630,17 @@ in
     inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio Accelerate;
     inherit (darwin) libobjc;
   };
+
   libjack2 = jack2.override { prefix = "lib"; };
-  jack2Full = jack2; # TODO: move to aliases.nix
+
+  j2cli = with python3Packages; toPythonApplication j2cli;
 
   jstest-gtk = callPackage ../tools/misc/jstest-gtk { };
 
   keynav = callPackage ../tools/X11/keynav { };
 
+  kgx = callPackage ../applications/terminal-emulators/kgx { };
+
   kmon = callPackage ../tools/system/kmon { };
 
   kompose = callPackage ../applications/networking/cluster/kompose { };
@@ -28839,8 +29663,6 @@ in
 
   lilypond = callPackage ../misc/lilypond { guile = guile_1_8; };
 
-  lilypond-unstable = callPackage ../misc/lilypond/unstable.nix { };
-
   lilypond-with-fonts = callPackage ../misc/lilypond/with-fonts.nix { };
 
   openlilylib-fonts = callPackage ../misc/lilypond/fonts.nix { };
@@ -28859,6 +29681,8 @@ in
 
   martyr = callPackage ../development/libraries/martyr { };
 
+  mas = callPackage ../os-specific/darwin/mas { };
+
   moltengamepad = callPackage ../misc/drivers/moltengamepad { };
 
   openzwave = callPackage ../development/libraries/openzwave { };
@@ -28890,6 +29714,8 @@ in
     nixUnstable
     nixFlakes;
 
+  nixStatic = pkgsStatic.nix;
+
   nixops = callPackage ../tools/package-management/nixops { };
 
   nixopsUnstable = lowPrio (callPackage ../applications/networking/cluster/nixops { });
@@ -29118,16 +29944,32 @@ in
 
   solfege = python3Packages.callPackage ../misc/solfege { };
 
+  disnix = callPackage ../tools/package-management/disnix { };
+
+  dysnomia = callPackage ../tools/package-management/disnix/dysnomia (config.disnix or {
+    inherit (pythonPackages) supervisor;
+  });
+
+  dydisnix = callPackage ../tools/package-management/disnix/dydisnix { };
+
+  disnixos = callPackage ../tools/package-management/disnix/disnixos { };
+
+  DisnixWebService = callPackage ../tools/package-management/disnix/DisnixWebService { };
+
   lkproof = callPackage ../tools/typesetting/tex/lkproof { };
 
-  lice = callPackage ../tools/misc/lice {};
+  lice = python3Packages.callPackage ../tools/misc/lice {};
 
   m33-linux = callPackage ../misc/drivers/m33-linux { };
 
   mnemonicode = callPackage ../misc/mnemonicode { };
 
   mysql-workbench = callPackage ../applications/misc/mysql-workbench (let mysql = mysql57; in {
-    gdal = gdal.override {libmysqlclient = mysql // {lib = {dev = mysql;};};};
+    gdal = gdal.override {
+      libmysqlclient = mysql // {
+        lib = { dev = mysql; }
+      ;}
+    ;};
     mysql = mysql;
     pcre = pcre-cpp;
     jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
@@ -29147,6 +29989,8 @@ in
 
   sndio = callPackage ../misc/sndio { };
 
+  stork = callPackage ../applications/misc/stork { };
+
   oclgrind = callPackage ../development/tools/analysis/oclgrind { };
 
   opkg = callPackage ../tools/package-management/opkg { };
@@ -29193,7 +30037,9 @@ in
 
   pykms = callPackage ../tools/networking/pykms { };
 
-  pyload = callPackage ../applications/networking/pyload {};
+  pyupgrade = with python3Packages; toPythonApplication pyupgrade;
+
+  pwncat = python3Packages.callPackage ../tools/security/pwncat { };
 
   pwntools = with python3Packages; toPythonApplication pwntools;
 
@@ -29242,6 +30088,8 @@ in
 
   ricty = callPackage ../data/fonts/ricty { };
 
+  rmfuse = callPackage ../tools/filesystems/rmfuse {};
+
   rmount = callPackage ../tools/filesystems/rmount {};
 
   romdirfs = callPackage ../tools/filesystems/romdirfs {};
@@ -29302,7 +30150,7 @@ in
 
   sane-backends = callPackage ../applications/graphics/sane/backends (config.sane or {});
 
-  sane-backends-git = callPackage ../applications/graphics/sane/backends/git.nix (config.sane or {});
+  senv = callPackage ../applications/misc/senv { };
 
   brlaser = callPackage ../misc/cups/drivers/brlaser { };
 
@@ -29357,6 +30205,12 @@ in
     hasktags = haskellPackages.hasktags;
   };
 
+  spacenavd = callPackage ../misc/drivers/spacenavd { };
+
+  spacenav-cube-example = callPackage ../applications/misc/spacenav-cube-example { };
+
+  spnavcfg = callPackage ../applications/misc/spnavcfg { };
+
   splix = callPackage ../misc/cups/drivers/splix { };
 
   steamcontroller = callPackage ../misc/drivers/steamcontroller { };
@@ -29398,6 +30252,8 @@ in
     callPackage ../applications/networking/cluster/terraform-providers {}
   );
 
+  terraforming = callPackage ../applications/networking/cluster/terraforming { };
+
   terraform-compliance = python3Packages.callPackage ../applications/networking/cluster/terraform-compliance {};
 
   terraform-docs = callPackage ../applications/networking/cluster/terraform-docs {};
@@ -29523,10 +30379,9 @@ in
 
   wasmer = callPackage ../development/interpreters/wasmer { };
 
+  yabasic = callPackage ../development/interpreters/yabasic { };
+
   wasm-pack = callPackage ../development/tools/wasm-pack {
-    # Wasm-pack depends on a version of rust-openssl which is incompatible with
-    # LibreSSL 3.1, so we explicitly opt for the older version.
-    libressl = libressl_3_0;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
@@ -29544,6 +30399,8 @@ in
     pythonPackages = python3Packages;
   };
 
+  wiki-js = callPackage ../servers/web-apps/wiki-js { };
+
   winePackagesFor = wineBuild: lib.makeExtensible (self: with self; {
     callPackage = newScope self;
 
@@ -29707,6 +30564,8 @@ in
 
   zxcvbn-c = callPackage ../development/libraries/zxcvbn-c { };
 
+  zxing-cpp = callPackage ../development/libraries/zxing-cpp { };
+
   snes9x-gtk = callPackage ../misc/emulators/snes9x-gtk { };
 
   openmsx = callPackage ../misc/emulators/openmsx {
@@ -29842,6 +30701,8 @@ in
 
   opengrm-ngram = callPackage ../development/libraries/opengrm-ngram {};
 
+  openring = callPackage ../applications/misc/openring { };
+
   phonetisaurus = callPackage ../development/libraries/phonetisaurus {};
 
   duti = callPackage ../os-specific/darwin/duti {
@@ -29907,13 +30768,6 @@ in
 
   pentablet-driver = libsForQt5.callPackage ../misc/drivers/pentablet-driver { };
 
-  qmk_firmware = callPackage ../development/misc/qmk_firmware {
-    avrgcc = pkgsCross.avr.buildPackages.gcc;
-    avrbinutils = pkgsCross.avr.buildPackages.binutils;
-    gcc-arm-embedded = pkgsCross.arm-embedded.buildPackages.gcc;
-    gcc-armhf-embedded = pkgsCross.armhf-embedded.buildPackages.gcc;
-  };
-
   new-session-manager = callPackage ../applications/audio/new-session-manager { };
 
   newlib = callPackage ../development/misc/newlib { };
@@ -29929,6 +30783,8 @@ in
 
   bemenu = callPackage ../applications/misc/bemenu { };
 
+  _9menu = callPackage ../applications/misc/9menu { };
+
   dapper = callPackage ../development/tools/dapper { };
 
   kube3d =  callPackage ../applications/networking/cluster/kube3d {};
@@ -29937,6 +30793,8 @@ in
 
   zfs-replicate = python3Packages.callPackage ../tools/backup/zfs-replicate { };
 
+  zrepl = callPackage ../tools/backup/zrepl { };
+
   runwayml = callPackage ../applications/graphics/runwayml {};
 
   uhubctl = callPackage ../tools/misc/uhubctl {};
@@ -29951,6 +30809,8 @@ in
 
   nix-store-gcs-proxy = callPackage ../tools/nix/nix-store-gcs-proxy {};
 
+  webwormhole = callPackage ../tools/networking/webwormhole { };
+
   wifi-password = callPackage ../os-specific/darwin/wifi-password {};
 
   qubes-core-vchan-xen = callPackage ../applications/qubes/qubes-core-vchan-xen {};
@@ -29997,7 +30857,9 @@ in
 
   zalgo = callPackage ../tools/misc/zalgo { };
 
-  zettlr = callPackage ../applications/misc/zettlr { };
+  zettlr = callPackage ../applications/misc/zettlr {
+    texlive = texlive.combined.scheme-medium;
+  };
 
   unifi-poller = callPackage ../servers/monitoring/unifi-poller {};
 
@@ -30005,7 +30867,9 @@ in
 
   bottom = callPackage ../tools/system/bottom {};
 
-  cagebreak = callPackage ../applications/window-managers/cagebreak/default.nix {};
+  cagebreak = callPackage ../applications/window-managers/cagebreak/default.nix {
+    wlroots = wlroots_0_12;
+  };
 
   psftools = callPackage ../os-specific/linux/psftools {};
 
diff --git a/nixpkgs/pkgs/top-level/coq-packages.nix b/nixpkgs/pkgs/top-level/coq-packages.nix
index 1ded50ce7632..e15a1c3c8763 100644
--- a/nixpkgs/pkgs/top-level/coq-packages.nix
+++ b/nixpkgs/pkgs/top-level/coq-packages.nix
@@ -33,6 +33,7 @@ let
       equations = callPackage ../development/coq-modules/equations { };
       fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {};
       flocq = callPackage ../development/coq-modules/flocq {};
+      fourcolor = callPackage ../development/coq-modules/fourcolor {};
       gappalib = callPackage ../development/coq-modules/gappalib {};
       heq = callPackage ../development/coq-modules/heq {};
       hierarchy-builder = callPackage ../development/coq-modules/hierarchy-builder {};
@@ -57,6 +58,7 @@ let
       mathcomp-real-closed = callPackage ../development/coq-modules/mathcomp-real-closed {};
       metalib = callPackage ../development/coq-modules/metalib { };
       multinomials = callPackage ../development/coq-modules/multinomials {};
+      odd-order = callPackage ../development/coq-modules/odd-order { };
       paco = callPackage ../development/coq-modules/paco {};
       paramcoq = callPackage ../development/coq-modules/paramcoq {};
       QuickChick = callPackage ../development/coq-modules/QuickChick {};
diff --git a/nixpkgs/pkgs/top-level/darwin-packages.nix b/nixpkgs/pkgs/top-level/darwin-packages.nix
index 2197f128388a..3ece95c58451 100644
--- a/nixpkgs/pkgs/top-level/darwin-packages.nix
+++ b/nixpkgs/pkgs/top-level/darwin-packages.nix
@@ -23,7 +23,7 @@ in
   binutils-unwrapped = callPackage ../os-specific/darwin/binutils {
     inherit (darwin) cctools;
     inherit (pkgs) binutils-unwrapped;
-    inherit (pkgs.llvmPackages_7) llvm;
+    inherit (pkgs.llvmPackages_7) llvm clang-unwrapped;
   };
 
   binutils = pkgs.wrapBintoolsWith {
diff --git a/nixpkgs/pkgs/top-level/dotnet-packages.nix b/nixpkgs/pkgs/top-level/dotnet-packages.nix
index 0b2b6af80383..660ba01bcd44 100644
--- a/nixpkgs/pkgs/top-level/dotnet-packages.nix
+++ b/nixpkgs/pkgs/top-level/dotnet-packages.nix
@@ -897,7 +897,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
       sha256 = "07r63xam6icm17pf6amh1qkmna13nxa3ncdan7a3ql307i5isriz";
     };
 
-    buildInputs = [ unzip ];
+    nativeBuildInputs = [ unzip ];
 
     phases = [ "unpackPhase" "installPhase" ];
 
diff --git a/nixpkgs/pkgs/top-level/emacs-packages.nix b/nixpkgs/pkgs/top-level/emacs-packages.nix
index d0bb7c56d99c..67f4d116dfde 100644
--- a/nixpkgs/pkgs/top-level/emacs-packages.nix
+++ b/nixpkgs/pkgs/top-level/emacs-packages.nix
@@ -21,58 +21,42 @@
   (package-initialize)
 */
 
-## FOR CONTRIBUTORS
-#
-# When adding a new package here please note that
-# * please use `elpaBuild` for pre-built package.el packages and
-#   `melpaBuild` or `trivialBuild` if the package must actually
-#   be built from the source.
-# * lib.licenses are `with`ed on top of the file here
-# * both trivialBuild and melpaBuild will automatically derive a
-#   `meta` with `platforms` and `homepage` set to something you are
-#   unlikely to want to override for most packages
-
-{ lib, newScope, stdenv, fetchurl, fetchFromGitHub, runCommand, writeText
-
-, emacs, texinfo, lndir, makeWrapper
-, trivialBuild
-, melpaBuild
-
-, external
-, pkgs
-}:
+{ pkgs', makeScope, makeOverridable, emacs }:
 
 let
 
-  mkElpaPackages = import ../applications/editors/emacs-modes/elpa-packages.nix {
-    inherit lib stdenv texinfo;
+  mkElpaPackages = { pkgs, lib }: import ../applications/editors/emacs-modes/elpa-packages.nix {
+    inherit (pkgs) stdenv texinfo writeText;
+    inherit lib;
   };
 
   # Contains both melpa stable & unstable
-  melpaGeneric = import ../applications/editors/emacs-modes/melpa-packages.nix {
-    inherit external lib pkgs;
+  melpaGeneric = { pkgs, lib }: import ../applications/editors/emacs-modes/melpa-packages.nix {
+    inherit lib pkgs;
   };
-  mkMelpaStablePackages = melpaGeneric "stable";
-  mkMelpaPackages = melpaGeneric "unstable";
 
-  mkOrgPackages = import ../applications/editors/emacs-modes/org-packages.nix {
+  mkOrgPackages = { lib }: import ../applications/editors/emacs-modes/org-packages.nix {
     inherit lib;
   };
 
-  emacsWithPackages = import ../build-support/emacs/wrapper.nix {
-    inherit lib lndir makeWrapper runCommand;
+  mkManualPackages = { pkgs, lib }: import ../applications/editors/emacs-modes/manual-packages.nix {
+    inherit lib pkgs;
   };
 
-  mkManualPackages = import ../applications/editors/emacs-modes/manual-packages.nix {
-    inherit external lib pkgs;
+  emacsWithPackages = { pkgs, lib }: import ../build-support/emacs/wrapper.nix {
+    inherit (pkgs) makeWrapper runCommand;
+    inherit (pkgs.xorg) lndir;
+    inherit lib;
   };
 
-in lib.makeScope newScope (self: lib.makeOverridable ({
-  elpaPackages ? mkElpaPackages self
-  , melpaStablePackages ? mkMelpaStablePackages self
-  , melpaPackages ? mkMelpaPackages self
-  , orgPackages ? mkOrgPackages self
-  , manualPackages ? mkManualPackages self
+in makeScope pkgs'.newScope (self: makeOverridable ({
+  pkgs ? pkgs'
+  , lib ? pkgs.lib
+  , elpaPackages ? mkElpaPackages { inherit pkgs lib; } self
+  , melpaStablePackages ? melpaGeneric { inherit pkgs lib; } "stable" self
+  , melpaPackages ? melpaGeneric { inherit pkgs lib; } "unstable" self
+  , orgPackages ? mkOrgPackages { inherit lib; } self
+  , manualPackages ? mkManualPackages { inherit pkgs lib; } self
 }: ({}
   // elpaPackages // { inherit elpaPackages; }
   // melpaStablePackages // { inherit melpaStablePackages; }
@@ -80,8 +64,27 @@ in lib.makeScope newScope (self: lib.makeOverridable ({
   // orgPackages // { inherit orgPackages; }
   // manualPackages // { inherit manualPackages; }
   // {
-    inherit emacs melpaBuild trivialBuild;
-    emacsWithPackages = emacsWithPackages self;
-    withPackages = emacsWithPackages self;
+
+    inherit emacs;
+
+    trivialBuild = pkgs.callPackage ../build-support/emacs/trivial.nix {
+      inherit (self) emacs;
+    };
+
+    melpaBuild = pkgs.callPackage ../build-support/emacs/melpa.nix {
+      inherit (self) emacs;
+    };
+
+    emacsWithPackages = emacsWithPackages { inherit pkgs lib; } self;
+    withPackages = emacsWithPackages { inherit pkgs lib; } self;
+
+  }// {
+
+    # Package specific priority overrides goes here
+
+    # Telega uploads packages incompatible with stable tdlib to melpa
+    # Prefer the one from melpa stable
+    inherit (melpaStablePackages) telega;
+
   })
 ) {})
diff --git a/nixpkgs/pkgs/top-level/gnuradio-packages.nix b/nixpkgs/pkgs/top-level/gnuradio-packages.nix
new file mode 100644
index 000000000000..eaffce4c6e2c
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/gnuradio-packages.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, newScope
+, gnuradio # unwrapped gnuradio
+}:
+
+lib.makeScope newScope ( self:
+
+let
+  # Modeled after qt's
+  mkDerivationWith = import ../development/gnuradio-modules/mkDerivation.nix {
+    inherit lib;
+    unwrapped = gnuradio;
+  };
+  mkDerivation = mkDerivationWith stdenv.mkDerivation;
+
+  callPackage = self.newScope {
+    inherit (gnuradio)
+      # Packages that are potentially overriden and used as deps here.
+      boost
+      uhd
+      volk
+    ;
+    inherit mkDerivationWith mkDerivation;
+  };
+
+in {
+
+  inherit callPackage mkDerivation mkDerivationWith;
+
+  ### Packages
+
+  inherit gnuradio;
+  inherit (gnuradio) python;
+
+  osmosdr = callPackage ../development/gnuradio-modules/osmosdr/default.nix { };
+
+  ais = callPackage ../development/gnuradio-modules/ais/default.nix { };
+
+  gsm = callPackage ../development/gnuradio-modules/gsm/default.nix { };
+
+  nacl = callPackage ../development/gnuradio-modules/nacl/default.nix { };
+
+  rds = callPackage ../development/gnuradio-modules/rds/default.nix { };
+
+  limesdr = callPackage ../development/gnuradio-modules/limesdr/default.nix { };
+
+})
diff --git a/nixpkgs/pkgs/top-level/haskell-packages.nix b/nixpkgs/pkgs/top-level/haskell-packages.nix
index 6c8e3e7d855d..da70103ad6bd 100644
--- a/nixpkgs/pkgs/top-level/haskell-packages.nix
+++ b/nixpkgs/pkgs/top-level/haskell-packages.nix
@@ -3,12 +3,9 @@
 let
   # These are attributes in compiler and packages that don't support integer-simple.
   integerSimpleExcludes = [
-    "ghc822Binary"
     "ghc865Binary"
     "ghc8102Binary"
     "ghc8102BinaryMinimal"
-    "ghcjs"
-    "ghcjs86"
     "integer-simple"
     "native-bignum"
     "ghcHEAD"
@@ -47,8 +44,6 @@ in {
 
   compiler = {
 
-    ghc822Binary = callPackage ../development/compilers/ghc/8.2.2-binary.nix { };
-
     ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { };
 
     ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
@@ -60,24 +55,6 @@ in {
       minimal = true;
     };
 
-    ghc865 = callPackage ../development/compilers/ghc/8.6.5.nix {
-      bootPkgs = packages.ghc822Binary;
-      inherit (buildPackages.python3Packages) sphinx;
-      buildLlvmPackages = buildPackages.llvmPackages_6;
-      llvmPackages = pkgs.llvmPackages_6;
-    };
-    ghc882 = callPackage ../development/compilers/ghc/8.8.2.nix {
-      bootPkgs = packages.ghc865Binary;
-      inherit (buildPackages.python3Packages) sphinx;
-      buildLlvmPackages = buildPackages.llvmPackages_7;
-      llvmPackages = pkgs.llvmPackages_7;
-    };
-    ghc883 = callPackage ../development/compilers/ghc/8.8.3.nix {
-      bootPkgs = packages.ghc865Binary;
-      inherit (buildPackages.python3Packages) sphinx;
-      buildLlvmPackages = buildPackages.llvmPackages_7;
-      llvmPackages = pkgs.llvmPackages_7;
-    };
     ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
       # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
       bootPkgs = if stdenv.isAarch64 then
@@ -88,32 +65,6 @@ in {
       buildLlvmPackages = buildPackages.llvmPackages_7;
       llvmPackages = pkgs.llvmPackages_7;
     };
-    ghc8101 = callPackage ../development/compilers/ghc/8.10.1.nix {
-      bootPkgs = packages.ghc865Binary;
-      inherit (buildPackages.python3Packages) sphinx;
-      buildLlvmPackages = buildPackages.llvmPackages_9;
-      llvmPackages = pkgs.llvmPackages_9;
-    };
-    ghc8102 = callPackage ../development/compilers/ghc/8.10.2.nix {
-      # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
-      bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
-          packages.ghc8102BinaryMinimal
-        else
-          packages.ghc865Binary;
-      inherit (buildPackages.python3Packages) sphinx;
-      buildLlvmPackages = buildPackages.llvmPackages_9;
-      llvmPackages = pkgs.llvmPackages_9;
-    };
-    ghc8103 = callPackage ../development/compilers/ghc/8.10.3.nix {
-      # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
-      bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
-          packages.ghc8102BinaryMinimal
-        else
-          packages.ghc865Binary;
-      inherit (buildPackages.python3Packages) sphinx;
-      buildLlvmPackages = buildPackages.llvmPackages_9;
-      llvmPackages = pkgs.llvmPackages_9;
-    };
     ghc8104 = callPackage ../development/compilers/ghc/8.10.4.nix {
       # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
       bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
@@ -131,19 +82,12 @@ in {
       llvmPackages = pkgs.llvmPackages_10;
     };
     ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
-      bootPkgs = packages.ghc883; # no binary yet
+      bootPkgs = packages.ghc884; # no binary yet
       inherit (buildPackages.python3Packages) sphinx;
       buildLlvmPackages = buildPackages.llvmPackages_10;
       llvmPackages = pkgs.llvmPackages_10;
       libffi = pkgs.libffi;
     };
-    ghcjs = compiler.ghcjs86;
-    ghcjs86 = callPackage ../development/compilers/ghcjs-ng {
-      bootPkgs = packages.ghc865;
-      ghcjsSrcJson = ../development/compilers/ghcjs-ng/8.6/git.json;
-      stage0 = ../development/compilers/ghcjs-ng/8.6/stage0.nix;
-      ghcjsDepOverrides = callPackage ../development/compilers/ghcjs-ng/8.6/dep-overrides.nix {};
-    };
 
     # The integer-simple attribute set contains all the GHC compilers
     # build with integer-simple instead of integer-gmp.
@@ -172,12 +116,6 @@ in {
   # Always get compilers from `buildPackages`
   packages = let bh = buildPackages.haskell; in {
 
-    ghc822Binary = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc822Binary;
-      ghc = bh.compiler.ghc822Binary;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.2.x.nix { };
-      packageSetConfig = bootstrapPackageSet;
-    };
     ghc865Binary = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc865Binary;
       ghc = bh.compiler.ghc865Binary;
@@ -196,41 +134,11 @@ in {
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
       packageSetConfig = bootstrapPackageSet;
     };
-    ghc865 = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc865;
-      ghc = bh.compiler.ghc865;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
-    };
-    ghc882 = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc882;
-      ghc = bh.compiler.ghc882;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
-    };
-    ghc883 = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc883;
-      ghc = bh.compiler.ghc883;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
-    };
     ghc884 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc884;
       ghc = bh.compiler.ghc884;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
     };
-    ghc8101 = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc8101;
-      ghc = bh.compiler.ghc8101;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
-    };
-    ghc8102 = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc8102;
-      ghc = bh.compiler.ghc8102;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
-    };
-    ghc8103 = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc8103;
-      ghc = bh.compiler.ghc8103;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
-    };
     ghc8104 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc8104;
       ghc = bh.compiler.ghc8104;
@@ -246,13 +154,6 @@ in {
       ghc = bh.compiler.ghcHEAD;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
     };
-    ghcjs = packages.ghcjs86;
-    ghcjs86 = callPackage ../development/haskell-modules rec {
-      buildHaskellPackages = ghc.bootPkgs;
-      ghc = bh.compiler.ghcjs86;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
-      packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
-    };
 
     # The integer-simple attribute set contains package sets for all the GHC compilers
     # using integer-simple instead of integer-gmp.
diff --git a/nixpkgs/pkgs/top-level/kodi-packages.nix b/nixpkgs/pkgs/top-level/kodi-packages.nix
new file mode 100644
index 000000000000..fbdf45d4202a
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/kodi-packages.nix
@@ -0,0 +1,127 @@
+{ lib, newScope, kodi }:
+
+with lib;
+
+let self = rec {
+
+  addonDir = "/share/kodi/addons";
+  rel = "Matrix";
+
+  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;
+
+  # Get list of required Kodi addons given a list of derivations.
+  requiredKodiAddons = drvs:
+    let
+      modules = filter hasKodiAddon drvs;
+    in
+      unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
+
+  # package update scripts
+
+  addonUpdateScript = callPackage ../applications/video/kodi-packages/addon-update-script { };
+
+  # package builders
+
+  buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { };
+
+  buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { };
+
+  # regular packages
+
+  kodi-platform = callPackage ../applications/video/kodi-packages/kodi-platform { };
+
+  # addon packages
+
+  a4ksubtitles = callPackage ../applications/video/kodi-packages/a4ksubtitles { };
+
+  controllers = {
+    default = callPackage ../applications/video/kodi-packages/controllers { controller = "default"; };
+
+    dreamcast = callPackage ../applications/video/kodi-packages/controllers { controller = "dreamcast"; };
+
+    gba = callPackage ../applications/video/kodi-packages/controllers { controller = "gba"; };
+
+    genesis = callPackage ../applications/video/kodi-packages/controllers { controller = "genesis"; };
+
+    mouse = callPackage ../applications/video/kodi-packages/controllers { controller = "mouse"; };
+
+    n64 = callPackage ../applications/video/kodi-packages/controllers { controller = "n64"; };
+
+    nes = callPackage ../applications/video/kodi-packages/controllers { controller = "nes"; };
+
+    ps = callPackage ../applications/video/kodi-packages/controllers { controller = "ps"; };
+
+    snes = callPackage ../applications/video/kodi-packages/controllers { controller = "snes"; };
+  };
+
+  jellyfin = callPackage ../applications/video/kodi-packages/jellyfin { };
+
+  joystick = callPackage ../applications/video/kodi-packages/joystick { };
+
+  netflix = callPackage ../applications/video/kodi-packages/netflix { };
+
+  svtplay = callPackage ../applications/video/kodi-packages/svtplay { };
+
+  steam-controller = callPackage ../applications/video/kodi-packages/steam-controller { };
+
+  steam-launcher = callPackage ../applications/video/kodi-packages/steam-launcher { };
+
+  pdfreader = callPackage ../applications/video/kodi-packages/pdfreader { };
+
+  pvr-hts = callPackage ../applications/video/kodi-packages/pvr-hts { };
+
+  pvr-hdhomerun = callPackage ../applications/video/kodi-packages/pvr-hdhomerun { };
+
+  pvr-iptvsimple = callPackage ../applications/video/kodi-packages/pvr-iptvsimple { };
+
+  osmc-skin = callPackage ../applications/video/kodi-packages/osmc-skin { };
+
+  vfs-sftp = callPackage ../applications/video/kodi-packages/vfs-sftp { };
+
+  vfs-libarchive = callPackage ../applications/video/kodi-packages/vfs-libarchive { };
+
+  # addon packages (dependencies)
+
+  certifi = callPackage ../applications/video/kodi-packages/certifi { };
+
+  chardet = callPackage ../applications/video/kodi-packages/chardet { };
+
+  dateutil = callPackage ../applications/video/kodi-packages/dateutil { };
+
+  idna = callPackage ../applications/video/kodi-packages/idna { };
+
+  inputstream-adaptive = callPackage ../applications/video/kodi-packages/inputstream-adaptive { };
+
+  inputstream-ffmpegdirect = callPackage ../applications/video/kodi-packages/inputstream-ffmpegdirect { };
+
+  inputstream-rtmp = callPackage ../applications/video/kodi-packages/inputstream-rtmp { };
+
+  inputstreamhelper = callPackage ../applications/video/kodi-packages/inputstreamhelper { };
+
+  kodi-six = callPackage ../applications/video/kodi-packages/kodi-six { };
+
+  myconnpy = callPackage ../applications/video/kodi-packages/myconnpy { };
+
+  requests = callPackage ../applications/video/kodi-packages/requests { };
+
+  signals = callPackage ../applications/video/kodi-packages/signals { };
+
+  six = callPackage ../applications/video/kodi-packages/six { };
+
+  urllib3 = callPackage ../applications/video/kodi-packages/urllib3 { };
+
+}; in self
diff --git a/nixpkgs/pkgs/top-level/lua-packages.nix b/nixpkgs/pkgs/top-level/lua-packages.nix
index b42f827d0dfa..62ddc14ff93a 100644
--- a/nixpkgs/pkgs/top-level/lua-packages.nix
+++ b/nixpkgs/pkgs/top-level/lua-packages.nix
@@ -8,7 +8,7 @@
 { fetchurl, stdenv, lua, unzip, pkg-config
 , pcre, oniguruma, gnulib, tre, glibc, sqlite, openssl, expat
 , autoreconfHook, gnum4
-, mysql, postgresql, cyrus_sasl
+, postgresql, cyrus_sasl
 , fetchFromGitHub, which, writeText
 , pkgs
 , lib
diff --git a/nixpkgs/pkgs/top-level/metrics.nix b/nixpkgs/pkgs/top-level/metrics.nix
index 2bfcb9d5d80a..590a24fb2b0c 100644
--- a/nixpkgs/pkgs/top-level/metrics.nix
+++ b/nixpkgs/pkgs/top-level/metrics.nix
@@ -4,7 +4,8 @@ with pkgs;
 
 runCommand "nixpkgs-metrics"
   { nativeBuildInputs = with pkgs.lib; map getBin [ nix time jq ];
-    requiredSystemFeatures = [ "benchmark" ];
+    #FIXME: the job doesn't work, see issue #76776
+    #requiredSystemFeatures = [ "benchmark" ]; # dedicated machine, by @vcunat last time
   }
   ''
     export NIX_STATE_DIR=$TMPDIR
diff --git a/nixpkgs/pkgs/top-level/ocaml-packages.nix b/nixpkgs/pkgs/top-level/ocaml-packages.nix
index c0faba640a26..87d4d52d3884 100644
--- a/nixpkgs/pkgs/top-level/ocaml-packages.nix
+++ b/nixpkgs/pkgs/top-level/ocaml-packages.nix
@@ -82,6 +82,14 @@ let
 
     ca-certs = callPackage ../development/ocaml-modules/ca-certs { };
 
+    carton = callPackage ../development/ocaml-modules/carton { };
+
+    carton-git = callPackage ../development/ocaml-modules/carton/git.nix { };
+
+    carton-lwt = callPackage ../development/ocaml-modules/carton/lwt.nix {
+      git-binary = pkgs.git;
+    };
+
     camlidl = callPackage ../development/tools/ocaml/camlidl { };
 
     camlp4 =
@@ -234,6 +242,8 @@ let
 
     digestif =  callPackage ../development/ocaml-modules/digestif { };
 
+    directories =  callPackage ../development/ocaml-modules/directories { };
+
     dispatch =  callPackage ../development/ocaml-modules/dispatch { };
 
     dns =  callPackage ../development/ocaml-modules/dns { };
@@ -266,7 +276,7 @@ let
 
     dum = callPackage ../development/ocaml-modules/dum { };
 
-    dune = callPackage ../development/tools/ocaml/dune { };
+    dune_1 = callPackage ../development/tools/ocaml/dune/1.nix { };
 
     dune_2 =
       if lib.versionAtLeast ocaml.version "4.08"
@@ -305,7 +315,15 @@ let
 
     eliom = callPackage ../development/ocaml-modules/eliom { };
 
-    elpi = callPackage ../development/ocaml-modules/elpi { };
+    elpi = callPackage ../development/ocaml-modules/elpi (
+      let ppxlib_0_15 = if lib.versionAtLeast ppxlib.version "0.15"
+        then ppxlib.override { version = "0.15.0"; }
+        else ppxlib; in
+      {
+        ppx_deriving = ppx_deriving.override { ppxlib = ppxlib_0_15; };
+        ppxlib = ppxlib_0_15;
+      }
+    );
 
     encore = callPackage ../development/ocaml-modules/encore { };
 
@@ -333,6 +351,12 @@ let
 
     faraday = callPackage ../development/ocaml-modules/faraday { };
 
+    faraday-async = callPackage ../development/ocaml-modules/faraday/async.nix { };
+
+    faraday-lwt = callPackage ../development/ocaml-modules/faraday/lwt.nix { };
+
+    faraday-lwt-unix = callPackage ../development/ocaml-modules/faraday/lwt-unix.nix { };
+
     farfadet = callPackage ../development/ocaml-modules/farfadet { };
 
     fdkaac = callPackage ../development/ocaml-modules/fdkaac { };
@@ -391,8 +415,6 @@ let
 
     imagelib = callPackage ../development/ocaml-modules/imagelib { };
 
-    imagelib-unix = callPackage ../development/ocaml-modules/imagelib/unix.nix { };
-
     inotify = callPackage ../development/ocaml-modules/inotify { };
 
     integers = callPackage ../development/ocaml-modules/integers { };
@@ -425,9 +447,13 @@ let
       git-binary = pkgs.git;
     };
 
-    git-http = callPackage ../development/ocaml-modules/git-http { };
+    git-cohttp = callPackage ../development/ocaml-modules/git/cohttp.nix { };
+
+    git-cohttp-unix = callPackage ../development/ocaml-modules/git/cohttp-unix.nix { };
+
+    git-cohttp-mirage = callPackage ../development/ocaml-modules/git/cohttp-mirage.nix { };
 
-    git-unix = callPackage ../development/ocaml-modules/git-unix {
+    git-unix = callPackage ../development/ocaml-modules/git/unix.nix {
       git-binary = pkgs.git;
     };
 
@@ -464,6 +490,8 @@ let
 
     irmin-chunk = callPackage ../development/ocaml-modules/irmin/chunk.nix { };
 
+    irmin-containers = callPackage ../development/ocaml-modules/irmin/containers.nix { };
+
     irmin-fs = callPackage ../development/ocaml-modules/irmin/fs.nix { };
 
     irmin-git = callPackage ../development/ocaml-modules/irmin/git.nix { };
@@ -472,7 +500,13 @@ let
 
     irmin-http = callPackage ../development/ocaml-modules/irmin/http.nix { };
 
-    irmin-mem = callPackage ../development/ocaml-modules/irmin/mem.nix { };
+    irmin-layers = callPackage ../development/ocaml-modules/irmin/layers.nix { };
+
+    irmin-mirage = callPackage ../development/ocaml-modules/irmin/mirage.nix { };
+
+    irmin-mirage-git = callPackage ../development/ocaml-modules/irmin/mirage-git.nix { };
+
+    irmin-mirage-graphql = callPackage ../development/ocaml-modules/irmin/mirage-graphql.nix { };
 
     irmin-pack = callPackage ../development/ocaml-modules/irmin/pack.nix { };
 
@@ -552,6 +586,10 @@ let
 
     lua-ml = callPackage ../development/ocaml-modules/lua-ml { };
 
+    luv = callPackage ../development/ocaml-modules/luv {
+      inherit (pkgs) file;
+    };
+
     lwt = callPackage ../development/ocaml-modules/lwt {
       ocaml-migrate-parsetree = ocaml-migrate-parsetree-2-1;
     };
@@ -592,10 +630,15 @@ let
 
     menhir = callPackage ../development/ocaml-modules/menhir { };
 
-    merlin = callPackage ../development/tools/ocaml/merlin { };
+    merlin =
+      if lib.versionAtLeast ocaml.version "4.11"
+      then callPackage ../development/tools/ocaml/merlin/4.x.nix { }
+      else callPackage ../development/tools/ocaml/merlin { };
 
     merlin-extend = callPackage ../development/ocaml-modules/merlin-extend { };
 
+    dot-merlin-reader = callPackage ../development/tools/ocaml/merlin/dot-merlin-reader.nix { };
+
     metrics = callPackage ../development/ocaml-modules/metrics { };
 
     metrics-influx = callPackage ../development/ocaml-modules/metrics/influx.nix { };
@@ -634,6 +677,8 @@ let
 
     mirage-clock = callPackage ../development/ocaml-modules/mirage-clock { };
 
+    mirage-clock-freestanding = callPackage ../development/ocaml-modules/mirage-clock/freestanding.nix { };
+
     mirage-clock-unix = callPackage ../development/ocaml-modules/mirage-clock/unix.nix { };
 
     mirage-console = callPackage ../development/ocaml-modules/mirage-console { };
@@ -642,6 +687,8 @@ let
 
     mirage-crypto = callPackage ../development/ocaml-modules/mirage-crypto { };
 
+    mirage-crypto-ec = callPackage ../development/ocaml-modules/mirage-crypto/ec.nix { };
+
     mirage-crypto-pk = callPackage ../development/ocaml-modules/mirage-crypto/pk.nix { };
 
     mirage-crypto-rng = callPackage ../development/ocaml-modules/mirage-crypto/rng.nix { };
@@ -741,8 +788,12 @@ let
 
     ocamlfuse = callPackage ../development/ocaml-modules/ocamlfuse { };
 
+    ocaml-freestanding = callPackage ../development/ocaml-modules/ocaml-freestanding { };
+
     ocaml_gettext = callPackage ../development/ocaml-modules/ocaml-gettext { };
 
+    gettext-camomile = callPackage ../development/ocaml-modules/ocaml-gettext/camomile.nix { };
+
     gettext-stub = callPackage ../development/ocaml-modules/ocaml-gettext/stub.nix { };
 
     ocamlgraph = callPackage ../development/ocaml-modules/ocamlgraph { };
@@ -753,6 +804,8 @@ let
 
     ocamlify = callPackage ../development/tools/ocaml/ocamlify { };
 
+    jsonrpc = callPackage ../development/ocaml-modules/ocaml-lsp/jsonrpc.nix { };
+    lsp = callPackage ../development/ocaml-modules/ocaml-lsp/lsp.nix { };
     ocaml-lsp = callPackage ../development/ocaml-modules/ocaml-lsp { };
 
     ocaml-migrate-parsetree = ocaml-migrate-parsetree-1-8;
@@ -877,6 +930,8 @@ let
 
     parse-argv = callPackage ../development/ocaml-modules/parse-argv { };
 
+    pbkdf = callPackage ../development/ocaml-modules/pbkdf { };
+
     pcap-format = callPackage ../development/ocaml-modules/pcap-format { };
 
     pecu = callPackage ../development/ocaml-modules/pecu { };
@@ -899,7 +954,11 @@ let
       inherit (pkgs) postgresql;
     };
 
-    ppx_bitstring = callPackage ../development/ocaml-modules/bitstring/ppx.nix { };
+    ppx_bap = callPackage ../development/ocaml-modules/ppx_bap { };
+
+    ppx_bitstring = callPackage ../development/ocaml-modules/bitstring/ppx.nix {
+      ppxlib = ppxlib.override { version = "0.22.0"; };
+    };
 
     ppxfind = callPackage ../development/ocaml-modules/ppxfind { };
 
@@ -979,19 +1038,33 @@ let
 
     ppx_cstruct = callPackage ../development/ocaml-modules/cstruct/ppx.nix { };
 
+    ppx_cstubs = callPackage ../development/ocaml-modules/ppx_cstubs {
+      ppxlib = ppxlib.override { version = "0.22.0"; };
+    };
+
     ppx_derivers = callPackage ../development/ocaml-modules/ppx_derivers {};
 
     ppx_deriving = callPackage ../development/ocaml-modules/ppx_deriving {};
 
     ppx_deriving_protobuf = callPackage ../development/ocaml-modules/ppx_deriving_protobuf {};
 
-    ppx_deriving_rpc = callPackage ../development/ocaml-modules/ppx_deriving_rpc { };
+    ppx_deriving_rpc = callPackage ../development/ocaml-modules/ppx_deriving_rpc {
+      ppxlib = ppxlib.override { version = "0.15.0"; };
+   };
 
     ppx_deriving_yojson = callPackage ../development/ocaml-modules/ppx_deriving_yojson {};
 
     ppx_gen_rec = callPackage ../development/ocaml-modules/ppx_gen_rec {};
 
-    ppx_import = callPackage ../development/ocaml-modules/ppx_import {};
+    ppx_import = callPackage ../development/ocaml-modules/ppx_import (
+      let ppxlib_0_15 = if lib.versionAtLeast ppxlib.version "0.15"
+        then ppxlib.override { version = "0.15.0"; }
+        else ppxlib; in
+      {
+        ppx_deriving = ppx_deriving.override { ppxlib = ppxlib_0_15; };
+        ppxlib = ppxlib_0_15;
+      }
+    );
 
     ppx_irmin = callPackage ../development/ocaml-modules/irmin/ppx.nix {
     };
@@ -1057,6 +1130,8 @@ let
 
     semaphore-compat = callPackage ../development/ocaml-modules/semaphore-compat { };
 
+    sha = callPackage ../development/ocaml-modules/sha { };
+
     sodium = callPackage ../development/ocaml-modules/sodium { };
 
     spelll = callPackage ../development/ocaml-modules/spelll { };
@@ -1360,7 +1435,10 @@ let
 
     omake_rc1 = callPackage ../development/tools/ocaml/omake/0.9.8.6-rc1.nix { };
 
-    google-drive-ocamlfuse = callPackage ../applications/networking/google-drive-ocamlfuse { };
+    google-drive-ocamlfuse = callPackage ../applications/networking/google-drive-ocamlfuse {
+      # needs Base64 module
+      ocaml_extlib = ocaml_extlib.override { minimal = false; };
+    };
 
     hol_light = callPackage ../applications/science/logic/hol_light { };
 
@@ -1395,7 +1473,7 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_4_12 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.12.nix { });
 
-  ocamlPackages_latest = ocamlPackages_4_11;
+  ocamlPackages_latest = ocamlPackages_4_12;
 
   ocamlPackages = ocamlPackages_4_10;
 }
diff --git a/nixpkgs/pkgs/top-level/octave-packages.nix b/nixpkgs/pkgs/top-level/octave-packages.nix
new file mode 100644
index 000000000000..115b38095ed1
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/octave-packages.nix
@@ -0,0 +1,220 @@
+# This file contains the GNU Octave add-on packages set.
+# Each attribute is an Octave library.
+# Expressions for the Octave libraries are supposed to be in `pkgs/development/octave-modules/<name>/default.nix`.
+
+# When contributing a new package, if that package has a dependency on another
+# octave package, then you DO NOT need to explicitly list it as such when
+# performing the callPackage. It will be passed implicitly.
+# In addition, try to use the same dependencies as the ones octave needs, which
+# should ensure greater compatibility between Octave itself and its packages.
+
+# Like python-packages.nix, packages from top-level.nix are not in the scope
+# of the `callPackage` used for packages here. So, when we do need packages
+# from outside, we can `inherit` them from `pkgs`.
+{ pkgs
+, lib
+, stdenv
+, fetchurl
+, newScope
+, octave
+}:
+
+with lib;
+
+makeScope newScope (self:
+  let
+    inherit (octave) blas lapack gfortran python texinfo gnuplot;
+
+    callPackage = self.callPackage;
+
+    buildOctavePackage = callPackage ../development/interpreters/octave/build-octave-package.nix {
+      inherit lib stdenv;
+      inherit octave;
+      inherit computeRequiredOctavePackages;
+    };
+
+    wrapOctave = callPackage ../development/interpreters/octave/wrap-octave.nix {
+      inherit octave;
+      inherit (pkgs) makeSetupHook makeWrapper;
+    };
+
+    # Given a list of required Octave package derivations, get a list of
+    # ALL required Octave packages needed for the ones specified to run.
+    computeRequiredOctavePackages = drvs: let
+      # Check whether a derivation is an octave package
+      hasOctavePackage = drv: drv?isOctavePackage;
+      packages = filter hasOctavePackage drvs;
+    in unique (packages ++ concatLists (catAttrs "requiredOctavePackages" packages));
+
+  in {
+
+    inherit callPackage buildOctavePackage computeRequiredOctavePackages;
+
+    inherit (callPackage ../development/interpreters/octave/hooks { })
+      writeRequiredOctavePackagesHook;
+
+    arduino = callPackage ../development/octave-modules/arduino {
+      inherit (pkgs) arduino;
+    };
+
+    audio = callPackage ../development/octave-modules/audio { };
+
+    bim = callPackage ../development/octave-modules/bim { };
+
+    bsltl = callPackage ../development/octave-modules/bsltl { };
+
+    cgi = callPackage ../development/octave-modules/cgi { };
+
+    communications = callPackage ../development/octave-modules/communications { };
+
+    control = callPackage ../development/octave-modules/control { };
+
+    data-smoothing = callPackage ../development/octave-modules/data-smoothing { };
+
+    database = callPackage ../development/octave-modules/database { };
+
+    dataframe = callPackage ../development/octave-modules/dataframe { };
+
+    dicom = callPackage ../development/octave-modules/dicom { };
+
+    divand = callPackage ../development/octave-modules/divand { };
+
+    doctest = callPackage ../development/octave-modules/doctest { };
+
+    econometrics = callPackage ../development/octave-modules/econometrics { };
+
+    fem-fenics = callPackage ../development/octave-modules/fem-fenics {
+      # PLACEHOLDER until KarlJoad gets dolfin packaged.
+      dolfin = null;
+      ffc = null;
+    };
+
+    fits = callPackage ../development/octave-modules/fits { };
+
+    financial = callPackage ../development/octave-modules/financial { };
+
+    fpl = callPackage ../development/octave-modules/fpl { };
+
+    fuzzy-logic-toolkit = callPackage ../development/octave-modules/fuzzy-logic-toolkit { };
+
+    ga = callPackage ../development/octave-modules/ga { };
+
+    general = callPackage ../development/octave-modules/general {
+      nettle = pkgs.nettle;
+    };
+
+    generate_html = callPackage ../development/octave-modules/generate_html { };
+
+    geometry = callPackage ../development/octave-modules/geometry { };
+
+    gsl = callPackage ../development/octave-modules/gsl {
+      inherit (pkgs) gsl;
+    };
+
+    image = callPackage ../development/octave-modules/image { };
+
+    image-acquisition = callPackage ../development/octave-modules/image-acquisition { };
+
+    instrument-control = callPackage ../development/octave-modules/instrument-control { };
+
+    io = callPackage ../development/octave-modules/io {
+      inherit (octave) enableJava;
+    };
+
+    interval = callPackage ../development/octave-modules/interval { };
+
+    level-set = callPackage ../development/octave-modules/level-set { };
+
+    linear-algebra = callPackage ../development/octave-modules/linear-algebra { };
+
+    lssa = callPackage ../development/octave-modules/lssa { };
+
+    ltfat = callPackage ../development/octave-modules/ltfat {
+      inherit (octave) fftw fftwSinglePrec portaudio jdk;
+      inherit (pkgs) fftwFloat fftwLongDouble;
+    };
+
+    mapping = callPackage ../development/octave-modules/mapping { };
+
+    matgeom = callPackage ../development/octave-modules/matgeom { };
+
+    miscellaneous = callPackage ../development/octave-modules/miscellaneous { };
+
+    msh = callPackage ../development/octave-modules/msh {
+      # PLACEHOLDER until KarlJoad gets dolfin packaged.
+      dolfin = null;
+    };
+
+    mvn = callPackage ../development/octave-modules/mvn { };
+
+    nan = callPackage ../development/octave-modules/nan { };
+
+    ncarray = callPackage ../development/octave-modules/ncarray { };
+
+    netcdf = callPackage ../development/octave-modules/netcdf {
+      inherit (pkgs) netcdf;
+    };
+
+    nurbs = callPackage ../development/octave-modules/nurbs { };
+
+    ocl = callPackage ../development/octave-modules/ocl { };
+
+    octclip = callPackage ../development/octave-modules/octclip { };
+
+    octproj = callPackage ../development/octave-modules/octproj { };
+
+    optics = callPackage ../development/octave-modules/optics { };
+
+    optim = callPackage ../development/octave-modules/optim { };
+
+    optiminterp = callPackage ../development/octave-modules/optiminterp { };
+
+    parallel = callPackage ../development/octave-modules/parallel { };
+
+    quaternion = callPackage ../development/octave-modules/quaternion { };
+
+    queueing = callPackage ../development/octave-modules/queueing { };
+
+    signal = callPackage ../development/octave-modules/signal { };
+
+    sockets = callPackage ../development/octave-modules/sockets { };
+
+    sparsersb = callPackage ../development/octave-modules/sparsersb { };
+
+    stk = callPackage ../development/octave-modules/stk { };
+
+    splines = callPackage ../development/octave-modules/splines { };
+
+    statistics = callPackage ../development/octave-modules/statistics { };
+
+    strings = callPackage ../development/octave-modules/strings { };
+
+    struct = callPackage ../development/octave-modules/struct { };
+
+    symbolic = callPackage ../development/octave-modules/symbolic {
+      inherit (octave) python;
+    };
+
+    tisean = callPackage ../development/octave-modules/tisean { };
+
+    tsa = callPackage ../development/octave-modules/tsa { };
+
+    vibes = callPackage ../development/octave-modules/vibes {
+      vibes = null;
+      # TODO: Need to package vibes:
+      # https://github.com/ENSTABretagneRobotics/VIBES
+    };
+
+    video = callPackage ../development/octave-modules/video { };
+
+    vrml = callPackage ../development/octave-modules/vrml {
+      freewrl = null;
+    };
+
+    windows = callPackage ../development/octave-modules/windows { };
+
+    zeromq = callPackage ../development/octave-modules/zeromq {
+      inherit (pkgs) zeromq;
+    };
+
+  })
diff --git a/nixpkgs/pkgs/top-level/packages-config.nix b/nixpkgs/pkgs/top-level/packages-config.nix
index d0a71c43a962..84db6fa21ee6 100644
--- a/nixpkgs/pkgs/top-level/packages-config.nix
+++ b/nixpkgs/pkgs/top-level/packages-config.nix
@@ -34,7 +34,6 @@
     "nvidiaPackages"
     "sourceHanPackages"
     "atomPackages"
-    "emacs26.pkgs"
     "emacs27.pkgs"
     "steamPackages"
     "ut2004Packages"
diff --git a/nixpkgs/pkgs/top-level/perl-packages.nix b/nixpkgs/pkgs/top-level/perl-packages.nix
index 614cd0b49618..de79a7bc6018 100644
--- a/nixpkgs/pkgs/top-level/perl-packages.nix
+++ b/nixpkgs/pkgs/top-level/perl-packages.nix
@@ -1843,8 +1843,8 @@ let
       url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-LDAP-1.016.tar.gz";
       sha256 = "0cm399vxqqf05cjgs1j5v3sk4qc6nmws5nfhf52qvpbwc4m82mq8";
     };
-    propagatedBuildInputs = [ NetLDAP CatalystPluginAuthentication ClassAccessorFast ];
-    buildInputs = [ TestMore TestMockObject TestException NetLDAPServerTest ];
+    propagatedBuildInputs = [ perlldap CatalystPluginAuthentication ClassAccessor ];
+    buildInputs = [ TestMockObject TestException NetLDAPServerTest ];
     meta = {
       description= "Authentication from an LDAP Directory";
       license = with lib.licenses; [ artistic1 ];
@@ -6143,6 +6143,10 @@ let
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
     buildInputs = [ TestDifferences ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/*
+    '';
   };
 
   DevelOverloadInfo = buildPerlPackage {
@@ -8011,6 +8015,7 @@ let
       url = "mirror://cpan/authors/id/L/LE/LEONT/File-Map-0.67.tar.gz";
       sha256 = "1hpv4aprgypjxjx1kzbjnf6r29a98rw7mndlinixzk62vyz5sy0j";
     };
+    perlPreHook = "export LD=$CC";
     propagatedBuildInputs = [ PerlIOLayers SubExporterProgressive ];
     buildInputs = [ TestFatal TestWarnings ];
     meta = {
@@ -8448,6 +8453,20 @@ let
     doCheck = false;
   };
 
+  FunctionParameters = buildPerlPackage {
+    pname = "Function-Parameters";
+    version = "2.001003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAUKE/Function-Parameters-2.001003.tar.gz";
+      sha256 = "eaa22c6b43c02499ec7db0758c2dd218a3b2ab47a714b2bdf8010b5ee113c242";
+    };
+    buildInputs = [ DirSelf TestFatal ];
+    meta = {
+      description = "Define functions and methods with parameter lists (\"subroutine signatures\")";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Furl = buildPerlModule {
     pname = "Furl";
     version = "3.13";
@@ -8479,10 +8498,10 @@ let
 
   FutureAsyncAwait = buildPerlModule rec {
     pname = "Future-AsyncAwait";
-    version = "0.48";
+    version = "0.49";
     src = fetchurl {
       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-AsyncAwait-${version}.tar.gz";
-      sha256 = "077jnf5a07x0p30iqcw3kh53xh3dplhb0jyyyq9b4c79ira3ds6r";
+      sha256 = "0cm7cgfjrqs7jazl0f9q6lgkhz6k8qbawin1z36nrwh2ywc94zjb";
     };
     buildInputs = [ TestRefcount ];
     propagatedBuildInputs = [ Future XSParseSublike ];
@@ -8662,6 +8681,10 @@ let
       url = "mirror://cpan/authors/id/T/TO/TORBIAK/App-Git-Autofixup-0.003001.tar.gz";
       sha256 = "1q7im0zj238k5agwi7d1mz26a8r0wrxwfwp1l8n5k777gx3b5xhp";
     };
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/git-autofixup
+    '';
     meta = {
       maintainers = [ maintainers.DamienCassou ];
       description = "Create fixup commits for topic branches";
@@ -8722,7 +8745,6 @@ let
       sha256 = "005m3inz12xcsd5sr056cm1kbhmxsx2ly88ifbdv6p6cwz0s05kk";
     };
     buildInputs = [ pkgs.glib ];
-    doCheck = false; # tests failing with glib 2.60 https://rt.cpan.org/Public/Bug/Display.html?id=128165
     meta = {
       homepage = "http://gtk2-perl.sourceforge.net/";
       description = "Perl wrappers for the GLib utility and Object libraries";
@@ -8738,13 +8760,20 @@ let
       url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-Object-Introspection-0.049.tar.gz";
       sha256 = "0mxg6pz8qfyipw0ypr54alij0c4adzg94f62702b2a6hkp5jhij6";
     };
-    checkInputs = [ pkgs.cairo ];
+    checkInputs = [ pkgs.cairo CairoGObject ];
     propagatedBuildInputs = [ pkgs.gobject-introspection Glib ];
+    preCheck = ''
+      # Our gobject-introspection patches make the shared library paths absolute
+      # in the GIR files. When running tests, the library is not yet installed,
+      # though, so we need to replace the absolute path with a local one during build.
+      # We are using a symlink that we will delete after the execution of the tests.
+      mkdir -p $out/lib
+      ln -s $PWD/build/*.so $out/lib/
+    '';
+    postCheck = ''
+      rm -r $out/lib
+    '';
     meta = {
-      broken = true; # TODO: tests failing because "failed to load libregress.so"
-      # see https://github.com/NixOS/nixpkgs/pull/68115
-      # and https://github.com/NixOS/nixpkgs/issues/68116
-      # adding pkgs.gnome3.gjs does not fix it
       description = "Dynamically create Perl language bindings";
       license = lib.licenses.lgpl2Plus;
     };
@@ -8895,6 +8924,20 @@ let
     };
   };
 
+  gotofile = buildPerlPackage {
+    pname = "goto-file";
+    version = "0.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/goto-file-0.005.tar.gz";
+      sha256 = "c6cdd5ee4a6cdcbdbf314d92a4f9985dbcdf9e4258048cae76125c052aa31f77";
+    };
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Stop parsing the current file and move on to a different one";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Graph = buildPerlPackage {
     pname = "Graph";
     version = "0.9712";
@@ -8905,6 +8948,22 @@ let
     propagatedBuildInputs = [ HeapFibonacci ];
   };
 
+  GraphicsTIFF = buildPerlPackage {
+    pname = "Graphics-TIFF";
+    version = "9";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Graphics-TIFF-9.tar.gz";
+      sha256 = "1n1r9r7f6hp2s6l361pyvb1i1pm9xqy0w9n3z5ygm7j64160kz9a";
+    };
+    buildInputs = [ pkgs.libtiff ExtUtilsDepends ExtUtilsPkgConfig ];
+    propagatedBuildInputs = [ Readonly ];
+    checkInputs = [ TestRequires TestDeep pkgs.hexdump ];
+    meta = {
+      description = "Perl extension for the libtiff library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   GraphViz = buildPerlPackage {
     pname = "GraphViz";
     version = "2.24";
@@ -9078,6 +9137,26 @@ let
     };
   };
 
+  Gtk3ImageView = buildPerlPackage {
+    pname = "Gtk3-ImageView";
+    version = "6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Gtk3-ImageView-6.tar.gz";
+      sha256 = "0krkif9i3hrgjdskw05pcks40fmb43d21lxf4h8aclv0g8z647f0";
+    };
+    buildInputs = [ pkgs.gtk3 ];
+    propagatedBuildInputs = [ Readonly Gtk3 ];
+    checkInputs = [ TestDifferences PerlMagick TryTiny TestMockObject CarpAlways pkgs.librsvg ];
+    checkPhase = ''
+      ${pkgs.xvfb_run}/bin/xvfb-run -s '-screen 0 800x600x24' \
+        make test
+    '';
+    meta = {
+      description = "Image viewer widget for Gtk3";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Gtk3SimpleList = buildPerlPackage {
     pname = "Gtk3-SimpleList";
     version = "0.21";
@@ -9719,12 +9798,11 @@ let
 
   HTTPDaemon = buildPerlPackage rec {
     pname = "HTTP-Daemon";
-    version = "6.12";
+    version = "6.01";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Daemon-6.12.tar.gz";
-      sha256 = "19hz9r6f1p406fk1pqyd99h96ipxsmknh4fh1xw0qrrq1k8vwiyz";
+      url = "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Daemon-6.01.tar.gz";
+      sha256 = "1hmd2isrkilf0q0nkxms1q64kikjmcw9imbvrjgky6kh89vqdza3";
     };
-    buildInputs = [ CPANMetaCheck ModuleBuildTiny ];
     propagatedBuildInputs = [ HTTPMessage ];
     checkInputs = [ TestNeeds ];
     meta = {
@@ -10005,6 +10083,20 @@ let
     };
   };
 
+  ImagePNGLibpng = buildPerlPackage {
+    pname = "Image-PNG-Libpng";
+    version = "0.56";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BK/BKB/Image-PNG-Libpng-0.56.tar.gz";
+      sha256 = "1nf7qcql7b2w98i859f76q1vb4b2zd0k0ypjbsw7ngs2zzmvzyzs";
+    };
+    buildInputs = [ pkgs.libpng ];
+    meta = {
+      description = "Perl interface to the C library \"libpng\"";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Imager = buildPerlPackage {
     pname = "Imager";
     version = "1.012";
@@ -10792,10 +10884,10 @@ let
 
   JSONValidator = buildPerlPackage {
     pname = "JSON-Validator";
-    version = "4.10";
+    version = "4.14";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-4.10.tar.gz";
-      sha256 = "15hgjldd85ada8anz5fdrlnixvwqahnvv3hprcvr9jgj3gvx0lww";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-4.14.tar.gz";
+      sha256 = "16zaaw7p94nz7yclz30b9xph0riy5ailqg5rjkvi1yps2hr9ba7z";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ DataValidateDomain DataValidateIP Mojolicious NetIDNEncode YAMLLibYAML ];
@@ -10863,11 +10955,11 @@ let
       url = "mirror://cpan/authors/id/B/BR/BRMILLER/${pname}-${version}.tar.gz";
       sha256 = "0dr69rgl4si9i9ww1r4dc7apgb7y6f7ih808w4g0924cvz823s0x";
     };
-    propagatedBuildInputs = [ ArchiveZip DBFile FileWhich IOString ImageSize JSONXS LWP ParseRecDescent PodParser TextUnidecode XMLLibXSLT ];
+    propagatedBuildInputs = [ ArchiveZip DBFile FileWhich IOString ImageSize JSONXS LWP ParseRecDescent PerlMagick PodParser TextUnidecode XMLLibXSLT ];
     preCheck = ''
       rm t/931_epub.t # epub test fails
     '';
-    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    nativeBuildInputs = [ pkgs.makeWrapper ] ++ lib.optional stdenv.isDarwin shortenPerlShebang;
     # shebangs need to be patched before executables are copied to $out
     preBuild = ''
       patchShebangs bin/
@@ -10876,6 +10968,12 @@ let
         shortenPerlShebang "$file"
       done
     '';
+    postInstall = ''
+      for file in latexmlc latexmlmath latexmlpost ; do
+        # add runtime dependencies that cause silent failures when missing
+        wrapProgram $out/bin/$file --prefix PATH : ${lib.makeBinPath [ pkgs.ghostscript pkgs.potrace ]}
+      done
+    '';
     meta = {
       description = "Transforms TeX and LaTeX into XML/HTML/MathML";
       license = lib.licenses.free;
@@ -10884,19 +10982,11 @@ let
 
   libapreq2 = buildPerlPackage {
     pname = "libapreq2";
-    version = "2.13";
+    version = "2.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IS/ISAAC/libapreq2-2.13.tar.gz";
-      sha256 = "5731e6833b32d88e4a5c690e45ddf20fcf969ce3da666c5627d775e92da0cf6e";
+      url = "mirror://cpan/authors/id/S/SH/SHAY/libapreq2-2.16.tar.gz";
+      sha256 = "e04c855a3ea070b8863569fbae02fe828f534ac88755b23e24d3863cc9598349";
     };
-    patches = [
-      (fetchpatch {
-        name = "CVE-2019-12412.patch";
-        url = "https://svn.apache.org/viewvc/httpd/apreq/trunk/library/parser_multipart.c?r1=1866760&r2=1866759&pathrev=1866760&view=patch";
-        sha256 = "08zaw5pb2i4w1y8crhxmlf0d8gzpvi9z49x4nwlkg4j87x7gjvaa";
-        stripLen = 2;
-      })
-    ];
     outputs = [ "out" ];
     buildInputs = [ pkgs.apacheHttpd pkgs.apr pkgs.aprutil ApacheTest ExtUtilsXSBuilder ];
     propagatedBuildInputs = [ (pkgs.apacheHttpdPackages.mod_perl.override { inherit perl; }) ];
@@ -11169,10 +11259,10 @@ let
 
   LinkEmbedder = buildPerlPackage {
     pname = "LinkEmbedder";
-    version = "1.16";
+    version = "1.17";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.16.tar.gz";
-      sha256 = "0pm5h5rlfparfvsi3ygj53mwjg8lwhql5mj0macfvsvfnfvnnp6j";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.17.tar.gz";
+      sha256 = "10r1q2xfba59w818li5xaj6jlph9qla7vb99ir1ampq5n8g0s5i6";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ Mojolicious ];
@@ -11781,6 +11871,20 @@ let
     };
   };
 
+  LongJump = buildPerlPackage {
+    pname = "Long-Jump";
+    version = "0.000001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Long-Jump-0.000001.tar.gz";
+      sha256 = "d5d6456d86992b559d8f66fc90960f919292cd3803c13403faac575762c77af4";
+    };
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Mechanism for returning to a specific point from a deeply nested stack";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   LWP = buildPerlPackage {
     pname = "libwww-perl";
     version = "6.49";
@@ -12809,10 +12913,10 @@ let
 
   MinionBackendSQLite = buildPerlModule {
     pname = "Minion-Backend-SQLite";
-    version = "5.0.3";
+    version = "5.0.4";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DB/DBOOK/Minion-Backend-SQLite-v5.0.3.tar.gz";
-      sha256 = "1ch92846cgr1s1y6nlicjxlq9r4qh1a3fig0jlr7ligzw05mxib4";
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Minion-Backend-SQLite-v5.0.4.tar.gz";
+      sha256 = "0xhcsxm3x5v9azmyy12wiwlbpiisq06hgj3yf9ggqx8fp9jqppb1";
     };
     buildInputs = [ ModuleBuildTiny ];
     propagatedBuildInputs = [ Minion MojoSQLite ];
@@ -13420,10 +13524,10 @@ let
 
   Mojolicious = buildPerlPackage {
     pname = "Mojolicious";
-    version = "8.71";
+    version = "9.10";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-8.71.tar.gz";
-      sha256 = "03bfxzq11v6k47axdwqhp2d3p1z17nwyxj0yww5z3x293p6zsnqm";
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.10.tar.gz";
+      sha256 = "0y4ccy85vh7nily2y1c457f687qc8rwi4mnx13619hslkagw4rqw";
     };
     meta = {
       homepage = "https://mojolicious.org";
@@ -13435,10 +13539,10 @@ let
 
   MojoliciousPluginAssetPack = buildPerlPackage {
     pname = "Mojolicious-Plugin-AssetPack";
-    version = "2.10";
+    version = "2.13";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-AssetPack-2.10.tar.gz";
-      sha256 = "0jfspr0mrb8f9p89d01ri7ci0dazrg341sbyd1khppxxwviip378";
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-AssetPack-2.13.tar.gz";
+      sha256 = "1254yy70c7wv3p64pjyxc2h1p9czs65jm6lzl42qmn1x19i8fggj";
     };
     propagatedBuildInputs = [ FileWhich IPCRun3 Mojolicious ];
     meta = {
@@ -13482,10 +13586,10 @@ let
 
   MojoliciousPluginOpenAPI = buildPerlPackage {
     pname = "Mojolicious-Plugin-OpenAPI";
-    version = "3.40";
+    version = "4.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-3.40.tar.gz";
-      sha256 = "0pj2azis2xfqcy04j0734hsfq3v60wympzpvsgfhmj0w66mb238y";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-4.00.tar.gz";
+      sha256 = "1npnbygs12d683m5i6cgvdmw6glvppnv75f4qpp908fdz8lwcb2z";
     };
     propagatedBuildInputs = [ JSONValidator ];
     meta = {
@@ -13578,10 +13682,10 @@ let
 
   MojoSQLite = buildPerlModule {
     pname = "Mojo-SQLite";
-    version = "3.004";
+    version = "3.005";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-SQLite-3.004.tar.gz";
-      sha256 = "d9ca9c1f3e8183611638e318b88ad3c0f8ab7e65f6ac72e48bffe51aea03b983";
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-SQLite-3.005.tar.gz";
+      sha256 = "0appzyhr5adzdfxns31lj568hz18bkmxmcv7fpafrx67b98cpza1";
     };
     buildInputs = [ ModuleBuildTiny ];
     propagatedBuildInputs = [ DBDSQLite Mojolicious SQLAbstract URIdb ];
@@ -13610,6 +13714,23 @@ let
     };
   };
 
+  MojoIOLoopDelay = buildPerlModule {
+    pname = "Mojo-IOLoop-Delay";
+    version = "8.76";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-Delay-8.76.tar.gz";
+      sha256 = "1vd9s1r82wfxh8y1g2ninsyvzkawx7n6ncll8lhdj89p91hw1jwf";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/jberger/Mojo-IOLoop-Delay";
+      description = "(DISCOURAGED) Promises/A+ and flow-control helpers";
+      license = lib.licenses.artistic2;
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
   MojoIOLoopForkCall = buildPerlModule {
     pname = "Mojo-IOLoop-ForkCall";
     version = "0.20";
@@ -13617,10 +13738,17 @@ let
       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-ForkCall-0.20.tar.gz";
       sha256 = "2b9962244c25a71e4757356fb3e1237cf869e26d1c27215115ba7b057a81f1a6";
     };
-    propagatedBuildInputs = [ IOPipely Mojolicious ];
+    propagatedBuildInputs = [ IOPipely Mojolicious MojoIOLoopDelay ];
+    preBuild = ''
+      # This module needs the deprecated Mojo::IOLoop::Delay
+      substituteInPlace lib/Mojo/IOLoop/ForkCall.pm \
+        --replace "use Mojo::IOLoop;" "use Mojo::IOLoop; use Mojo::IOLoop::Delay;"
+    '';
     meta = {
-      description = "Run blocking functions asynchronously by forking";
+      homepage = "https://github.com/jberger/Mojo-IOLoop-ForkCall";
+      description = "Run blocking functions asynchronously by forking (deprecated)";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
     };
   };
 
@@ -13660,10 +13788,10 @@ let
 
   MojoUserAgentCached = buildPerlPackage {
     pname = "Mojo-UserAgent-Cached";
-    version = "1.12";
+    version = "1.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/N/NI/NICOMEN/Mojo-UserAgent-Cached-1.12.tar.gz";
-      sha256 = "08pa3sz63sq2y3g3lbhy2msbnx0myb2igmmc28cm3kaznryvsgwm";
+      url = "mirror://cpan/authors/id/N/NI/NICOMEN/Mojo-UserAgent-Cached-1.16.tar.gz";
+      sha256 = "17gp1kn97s1wv973w0g92alx13lmcvdan794471sfq2is6s6v1qd";
     };
     buildInputs = [ ModuleInstall ];
     propagatedBuildInputs = [ AlgorithmLCSS CHI DataSerializer DevelStackTrace Mojolicious Readonly StringTruncate ];
@@ -13987,6 +14115,25 @@ let
     };
   };
 
+  TestPostgreSQL = buildPerlModule {
+    pname = "Test-PostgreSQL";
+    version = "1.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TJ/TJC/Test-PostgreSQL-1.27.tar.gz";
+      sha256 = "b1bd231693100cc40905fb0ba3173173201621de9c8301f21c5b593b0a46f907";
+    };
+    buildInputs = [ ModuleBuildTiny TestSharedFork pkgs.postgresql ];
+    propagatedBuildInputs = [ DBDPg DBI FileWhich FunctionParameters Moo TieHashMethod TryTiny TypeTiny ];
+
+    makeMakerFlags = "POSTGRES_HOME=${pkgs.postgresql}";
+
+    meta = {
+      homepage = https://github.com/TJC/Test-postgresql;
+      description = "PostgreSQL runner for tests";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
   TestUseAllModules = buildPerlPackage {
     pname = "Test-UseAllModules";
     version = "0.17";
@@ -14742,7 +14889,7 @@ let
       url = "mirror://cpan/authors/id/E/ES/ESTRABD/MySQL-Diff-0.60.tar.gz";
       sha256 = "5d7080a4bd5714ff9ef536aa774a7adb3c6f0e760215ca6c39d8a3545344f956";
     };
-    propagatedBuildInputs = [ pkgs.mysql-client FileSlurp StringShellQuote ];
+    propagatedBuildInputs = [ pkgs.mariadb.client FileSlurp StringShellQuote ];
     meta = {
       homepage = "https://github.com/estrabd/mysqldiff";
       description = "Generates a database upgrade instruction set";
@@ -14880,10 +15027,10 @@ let
 
   NetAsyncHTTP = buildPerlModule {
     pname = "Net-Async-HTTP";
-    version = "0.47";
+    version = "0.48";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-0.47.tar.gz";
-      sha256 = "1lwy1ijrhibi087p3q5zvadhkq0slfrzfhb76cmkx4mpyv5v4l8f";
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-0.48.tar.gz";
+      sha256 = "0gpp46lg7sr5xpsjhqkb022f9v88wy73carsrn5pvbmwjpwxcjwx";
     };
     buildInputs = [ HTTPCookies TestIdentity TestMetricsAny TestRefcount ];
     propagatedBuildInputs = [ Future HTTPMessage IOAsync MetricsAny StructDumb URI ];
@@ -14967,13 +15114,15 @@ let
 
   NetCIDRLite = buildPerlPackage {
     pname = "Net-CIDR-Lite";
-    version = "0.21";
+    version = "0.22";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DO/DOUGW/Net-CIDR-Lite-0.21.tar.gz";
-      sha256 = "cfa125e8a2aef9259bc3a44e07cbdfb7894b64d22e7c0cee92aee2f5c7915093";
+      url = "mirror://cpan/authors/id/S/ST/STIGTSP/Net-CIDR-Lite-0.22.tar.gz";
+      sha256 = "05w57db2lx4djb4vixzdr6qgrzyzkk047nl812g7nq8s6k5xh5s3";
     };
     meta = {
       description = "Perl extension for merging IPv4 or IPv6 CIDR addresses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
     };
   };
 
@@ -15241,7 +15390,7 @@ let
       url = "mirror://cpan/authors/id/A/AA/AAR/Net-LDAP-Server-0.43.tar.gz";
       sha256 = "0qmh3cri3fpccmwz6bhwp78yskrb3qmalzvqn0a23hqbsfs4qv6x";
     };
-    propagatedBuildInputs = [ NetLDAP ConvertASN1 ];
+    propagatedBuildInputs = [ perlldap ConvertASN1 ];
     meta = {
       description = "LDAP server side protocol handling";
       license = with lib.licenses; [ artistic1 ];
@@ -15268,7 +15417,7 @@ let
       url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-Server-Test-0.22.tar.gz";
       sha256 = "13idip7jky92v4adw60jn2gcc3zf339gsdqlnc9nnvqzbxxp285i";
     };
-    propagatedBuildInputs = [ NetLDAP NetLDAPServer TestMore DataDump NetLDAPSID ];
+    propagatedBuildInputs = [ perlldap NetLDAPServer DataDump NetLDAPSID ];
     meta = {
       description= "test Net::LDAP code";
       license = with lib.licenses; [ artistic1 ];
@@ -15277,10 +15426,10 @@ let
 
   NetNetmask = buildPerlPackage {
     pname = "Net-Netmask";
-    version = "1.9104";
+    version = "2.0001";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JM/JMASLAK/Net-Netmask-1.9104.tar.gz";
-      sha256 = "17li2svymz49az35xl6galp4b9qcnb985gzklhikkvkn9da6rz3y";
+      url = "mirror://cpan/authors/id/J/JM/JMASLAK/Net-Netmask-2.0001.tar.gz";
+      sha256 = "0waiix46wv93a5zzjjv7ypdnfdf7lizwrhx12128rcvzcvw6wd8p";
     };
     buildInputs = [ Test2Suite TestUseAllModules ];
     meta = {
@@ -15788,10 +15937,10 @@ let
 
   OpenAPIClient = buildPerlPackage rec {
     pname = "OpenAPI-Client";
-    version = "0.25";
+    version = "1.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/OpenAPI-Client-0.25.tar.gz";
-      sha256 = "bc6be443c9c44348899fd595e080abe53760ae7561d63615a2f9b9f0a943336c";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/OpenAPI-Client-1.00.tar.gz";
+      sha256 = "41bcf211c1123fbfb844413aa53f97061410b592591367b61273a206865991f7";
     };
     propagatedBuildInputs = [ MojoliciousPluginOpenAPI ];
     meta = {
@@ -16370,6 +16519,21 @@ let
     };
   };
 
+  PDFBuilder = buildPerlPackage {
+    pname = "PDF-Builder";
+    version = "3.021";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMPERRY/PDF-Builder-3.021.tar.gz";
+      sha256 = "1hc22s5gdspr5nyfmix3cwdzcw7z66pcqxy422ksmbninbzv4z93";
+    };
+    checkInputs = [ TestException TestMemoryCycle ];
+    propagatedBuildInputs = [ FontTTF ];
+    meta = {
+      description = "Facilitates the creation and modification of PDF files";
+      license = lib.licenses.lgpl21Plus;
+    };
+  };
+
   PDL = buildPerlPackage rec {
     pname = "PDL";
     version = "2.025";
@@ -16503,6 +16667,7 @@ let
       url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-Layers-0.012.tar.gz";
       sha256 = "1psaq3kwlk7g9rxvgsacfjk2mh6cscqf4xl7ggfkzfrnz91aabal";
     };
+    perlPreHook = "export LD=$CC";
     meta = {
       description = "Querying your filehandle's capabilities";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
@@ -16604,19 +16769,23 @@ let
     };
   };
 
-  PerlMagick = buildPerlPackage {
+  PerlMagick = buildPerlPackage rec {
     pname = "PerlMagick";
-    version = "6.89-1";
+    version = "7.0.10";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JC/JCRISTY/PerlMagick-6.89-1.tar.gz";
-      sha256 = "0n9afy1z5bhf9phrbahnkwhgcmijn8jggpbzwrivw1zhliliiy68";
+      url = "mirror://cpan/authors/id/J/JC/JCRISTY/PerlMagick-${version}.tar.gz";
+      sha256 = "1x05hdb3b6qs36x958b4w46qanvkqm6rpc44rlq4rd2w3gbp4lhx";
     };
     buildInputs = [ pkgs.imagemagick ];
     preConfigure =
       ''
         sed -i -e 's|my \$INC_magick = .*|my $INC_magick = "-I${pkgs.imagemagick.dev}/include/ImageMagick";|' Makefile.PL
+
+        # Enable HDRI support to match the native ImageMagick 7 defaults
+        # See: https://github.com/ImageMagick/ImageMagick/issues/3402#issuecomment-801195538
+        substituteInPlace Makefile.PL \
+          --replace 'MAGICKCORE_HDRI_ENABLE=0' 'MAGICKCORE_HDRI_ENABLE=1'
       '';
-    doCheck = false;
   };
 
   PerlTidy = buildPerlPackage rec {
@@ -16630,6 +16799,10 @@ let
       description = "Indent and reformat perl scripts";
       license = lib.licenses.gpl2Plus;
     };
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/perltidy
+    '';
   };
 
   PHPSerialization = buildPerlPackage {
@@ -19754,6 +19927,55 @@ let
     };
   };
 
+  Test2Harness = buildPerlPackage {
+    pname = "Test2-Harness";
+    version = "1.000042";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Harness-1.000042.tar.gz";
+      sha256 = "aaf231a68af1a6ffd6a11188875fcf572e373e43c8285945227b9d687b43db2d";
+    };
+
+    checkPhase = ''
+      patchShebangs ./t ./scripts/yath
+      ./scripts/yath test -j $NIX_BUILD_CORES
+    '';
+
+    propagatedBuildInputs = [ DataUUID Importer LongJump ScopeGuard TermTable Test2PluginMemUsage Test2PluginUUID Test2Suite gotofile ];
+    meta = {
+      description = "A new and improved test harness with better Test2 integration";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Test2PluginMemUsage = buildPerlPackage {
+    pname = "Test2-Plugin-MemUsage";
+    version = "0.002003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-MemUsage-0.002003.tar.gz";
+      sha256 = "5e0662d5a823ae081641f5ce82843111eec1831cd31f883a6c6de54afdf87c25";
+    };
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Collect and display memory usage information";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+   Test2PluginUUID = buildPerlPackage {
+    pname = "Test2-Plugin-UUID";
+    version = "0.002001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-UUID-0.002001.tar.gz";
+      sha256 = "4c6c8d484d7153d8779dc155a992b203095b5c5aa1cfb1ee8bcedcd0601878c9";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ DataUUID ];
+    meta = {
+      description = "Use REAL UUIDs in Test2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Test2PluginNoWarnings = buildPerlPackage {
      pname = "Test2-Plugin-NoWarnings";
      version = "0.09";
@@ -21922,15 +22144,14 @@ let
       url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-WrapI18N-0.06.tar.gz";
       sha256 = "4bd29a17f0c2c792d12c1005b3c276f2ab0fae39c00859ae1741d7941846a488";
     };
-    propagatedBuildInputs = [ pkgs.glibc TextCharWidth ];
+    buildInputs = [ pkgs.glibcLocales ];
+    propagatedBuildInputs = [ TextCharWidth ];
     preConfigure = ''
       substituteInPlace WrapI18N.pm --replace '/usr/bin/locale' '${pkgs.glibc.bin}/bin/locale'
     '';
     meta = {
       description = "Line wrapping module with support for multibyte, fullwidth, and combining characters and languages without whitespaces between words";
       license = with lib.licenses; [ artistic1 gpl2 ];
-      # bogus use of glibc, pretty sure, think this is what we have glibcLocales for?
-      broken = stdenv.hostPlatform.libc != "glibc";
     };
   };
 
@@ -22071,6 +22292,19 @@ let
     doCheck = false; /* test fails on some machines */
   };
 
+  TieHashMethod = buildPerlPackage {
+    pname = "Tie-Hash-Method";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YV/YVES/Tie-Hash-Method-0.02.tar.gz";
+      sha256 = "d513fbb51413f7ca1e64a1bdce6194df7ec6076dea55066d67b950191eec32a9";
+    };
+    meta = {
+      description = "Tied hash with specific methods overriden by callbacks";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
   TieRefHash = buildPerlPackage {
     pname = "Tie-RefHash";
     version = "1.40";
@@ -22866,7 +23100,7 @@ let
       sha256 = "582db53a091f8da3670c037733314f2510af5e8ee0ba42a0e391e2f2e3ca7734";
     };
     prePatch = "rm examples.pl";
-    propagatedBuildInputs = [ LWPProtocolhttps ];
+    propagatedBuildInputs = [ LWPProtocolHttps ];
     meta = {
       description = "Accessing Twilio's REST API with Perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
diff --git a/nixpkgs/pkgs/top-level/php-packages.nix b/nixpkgs/pkgs/top-level/php-packages.nix
index 3df697d3d560..3bbcb453a3c8 100644
--- a/nixpkgs/pkgs/top-level/php-packages.nix
+++ b/nixpkgs/pkgs/top-level/php-packages.nix
@@ -29,7 +29,7 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     composer = callPackage ../development/php-packages/composer { };
 
-    composer2 = callPackage ../development/php-packages/composer/2.0.nix { };
+    composer1 = callPackage ../development/php-packages/composer/1.x.nix { };
 
     php-cs-fixer = callPackage ../development/php-packages/php-cs-fixer { };
 
@@ -138,14 +138,16 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     sqlsrv = callPackage ../development/php-packages/sqlsrv { };
 
+    swoole = callPackage ../development/php-packages/swoole { };
+
     v8 = buildPecl {
       version = "0.2.2";
       pname = "v8";
 
       sha256 = "103nys7zkpi1hifqp9miyl0m1mn07xqshw3sapyz365nb35g5q71";
 
-      buildInputs = [ pkgs.v8_6_x ];
-      configureFlags = [ "--with-v8=${pkgs.v8_6_x}" ];
+      buildInputs = [ pkgs.v8 ];
+      configureFlags = [ "--with-v8=${pkgs.v8}" ];
 
       meta.maintainers = lib.teams.php.members;
       meta.broken = true;
@@ -157,8 +159,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
       sha256 = "0g63dyhhicngbgqg34wl91nm3556vzdgkq19gy52gvmqj47rj6rg";
 
-      buildInputs = [ pkgs.v8_6_x ];
-      configureFlags = [ "--with-v8js=${pkgs.v8_6_x}" ];
+      buildInputs = [ pkgs.v8 ];
+      configureFlags = [ "--with-v8js=${pkgs.v8}" ];
 
       meta.maintainers = lib.teams.php.members;
       meta.broken = true;
@@ -268,7 +270,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         buildInputs = [ libxml2 ];
         configureFlags = [ "--enable-dom" ]
           # Required to build on darwin.
-          ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
+          ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
       { name = "enchant";
         buildInputs = [ enchant1 ];
         configureFlags = [ "--with-enchant=${enchant1}" ];
@@ -331,10 +333,12 @@ lib.makeScope pkgs.newScope (self: with self; {
       # interbase (7.3, 7.2)
       { name = "intl";
         buildInputs = [ icu64 ];
-        patches = lib.optional (lib.versionOlder php.version "7.4") (fetchpatch {
-          url = "https://github.com/php/php-src/commit/93a9b56c90c334896e977721bfb3f38b1721cec6.patch";
-          sha256 = "055l40lpyhb0rbjn6y23qkzdhvpp7inbnn6x13cpn4inmhjqfpg4";
-        });
+        patches = lib.optionals (lib.versionOlder php.version "7.4") [
+          (fetchpatch {
+            url = "https://github.com/php/php-src/commit/93a9b56c90c334896e977721bfb3f38b1721cec6.patch";
+            sha256 = "055l40lpyhb0rbjn6y23qkzdhvpp7inbnn6x13cpn4inmhjqfpg4";
+          })
+        ];
       }
       { name = "json"; enable = lib.versionOlder php.version "8.0"; }
       { name = "ldap";
@@ -344,7 +348,9 @@ lib.makeScope pkgs.newScope (self: with self; {
           "LDAP_DIR=${openldap.dev}"
           "LDAP_INCDIR=${openldap.dev}/include"
           "LDAP_LIBDIR=${openldap.out}/lib"
-        ] ++ lib.optional stdenv.isLinux "--with-ldap-sasl=${cyrus_sasl.dev}";
+        ] ++ lib.optionals stdenv.isLinux [
+          "--with-ldap-sasl=${cyrus_sasl.dev}"
+        ];
         doCheck = false; }
       { name = "mbstring"; buildInputs = [ oniguruma ] ++ lib.optionals (lib.versionAtLeast php.version "8.0") [
           pcre'
@@ -374,7 +380,7 @@ lib.makeScope pkgs.newScope (self: with self; {
                +----------------------------------------------------------------------+
                | Copyright (c) The PHP Group                                          |
           '')
-        ] ++ lib.optional (lib.versionOlder php.version "7.4.8") [
+        ] ++ lib.optionals (lib.versionOlder php.version "7.4.8") [
           (pkgs.writeText "mysqlnd_fix_compression.patch" ''
             --- a/ext/mysqlnd/mysqlnd.h
             +++ b/ext/mysqlnd/mysqlnd.h
@@ -395,10 +401,10 @@ lib.makeScope pkgs.newScope (self: with self; {
       # oci8 (7.4, 7.3, 7.2)
       # odbc (7.4, 7.3, 7.2)
       { name = "opcache";
-        buildInputs = [ pcre' ] ++ lib.optionals (lib.versionAtLeast php.version "8.0") [
+        buildInputs = [ pcre' ] ++ lib.optionals (!stdenv.isDarwin && lib.versionAtLeast php.version "8.0") [
           valgrind.dev
         ];
-        patches = [] ++ lib.optional (lib.versionOlder php.version "7.4") [
+        patches = lib.optionals (lib.versionOlder php.version "7.4") [
           (pkgs.writeText "zend_file_cache_config.patch" ''
             --- a/ext/opcache/zend_file_cache.c
             +++ b/ext/opcache/zend_file_cache.c
@@ -415,7 +421,9 @@ lib.makeScope pkgs.newScope (self: with self; {
              #include "zend_accelerator_util_funcs.h"
           '') ];
         zendExtension = true;
-        doCheck = !(lib.versionOlder php.version "7.4"); }
+        doCheck = !(lib.versionOlder php.version "7.4");
+        # Tests launch the builtin webserver.
+        __darwinAllowLocalNetworking = true; }
       { name = "openssl";
         buildInputs = [ openssl ];
         configureFlags = [ "--with-openssl" ];
@@ -468,7 +476,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         buildInputs = [ libxml2 pcre' ];
         configureFlags = [ "--enable-simplexml" ]
           # Required to build on darwin.
-          ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
+          ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
       { name = "snmp";
         buildInputs = [ net-snmp openssl ];
         configureFlags = [ "--with-snmp" ];
@@ -479,7 +487,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         buildInputs = [ libxml2 ];
         configureFlags = [ "--enable-soap" ]
           # Required to build on darwin.
-          ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ];
+          ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ];
         doCheck = false; }
       { name = "sockets"; doCheck = false; }
       { name = "sodium"; buildInputs = [ libsodium ]; }
@@ -499,7 +507,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         buildInputs = [ libxml2 ];
         configureFlags = [ "--enable-xml" ]
           # Required to build on darwin.
-          ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ];
+          ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ];
         doCheck = false; }
       { name = "xmlreader";
         buildInputs = [ libxml2 ];
@@ -507,19 +515,19 @@ lib.makeScope pkgs.newScope (self: with self; {
         NIX_CFLAGS_COMPILE = [ "-I../.." "-DHAVE_DOM" ];
         configureFlags = [ "--enable-xmlreader" ]
           # Required to build on darwin.
-          ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
+          ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
       { name = "xmlrpc";
         buildInputs = [ libxml2 libiconv ];
         # xmlrpc was unbundled in 8.0 https://php.watch/versions/8.0/xmlrpc
         enable = lib.versionOlder php.version "8.0";
         configureFlags = [ "--with-xmlrpc" ]
           # Required to build on darwin.
-          ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
+          ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
       { name = "xmlwriter";
         buildInputs = [ libxml2 ];
         configureFlags = [ "--enable-xmlwriter" ]
           # Required to build on darwin.
-          ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
+          ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
       { name = "xsl";
         buildInputs = [ libxslt libxml2 ];
         doCheck = lib.versionOlder php.version "8.0";
@@ -528,8 +536,8 @@ lib.makeScope pkgs.newScope (self: with self; {
       { name = "zip";
         buildInputs = [ libzip pcre' ];
         configureFlags = [ "--with-zip" ]
-          ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]
-          ++ lib.optional (lib.versionOlder php.version "7.3") [ "--with-libzip" ];
+          ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]
+          ++ lib.optionals (lib.versionOlder php.version "7.3") [ "--with-libzip" ];
         doCheck = false; }
       { name = "zlib";
         buildInputs = [ zlib ];
@@ -538,7 +546,7 @@ lib.makeScope pkgs.newScope (self: with self; {
           ../development/interpreters/php/zlib-darwin-tests.patch
         ];
         configureFlags = [ "--with-zlib" ]
-          ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]; }
+          ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]; }
     ];
 
     # Convert the list of attrs:
diff --git a/nixpkgs/pkgs/top-level/python-packages.nix b/nixpkgs/pkgs/top-level/python-packages.nix
index e3e949cc5cd1..78cf834fd0bb 100644
--- a/nixpkgs/pkgs/top-level/python-packages.nix
+++ b/nixpkgs/pkgs/top-level/python-packages.nix
@@ -126,9 +126,25 @@ in {
     venvShellHook
     wheelUnpackHook;
 
+  # Not all packages are compatible with the latest pytest yet.
+  # We need to override the hook to select an older pytest, however,
+  # it should not override the version of pytest that is used for say
+  # Python 2. This is an ugly hack that is needed now because the hook
+  # propagates the package.
+  pytestCheckHook_6_1 = if isPy3k then
+    self.pytestCheckHook.override { pytest = self.pytest_6_1; }
+  else
+    self.pytestCheckHook;
+
   # helpers
 
-  wrapPython = callPackage ../development/interpreters/python/wrap-python.nix {inherit python; inherit (pkgs) makeSetupHook makeWrapper; };
+  # We use build packages because we are making a setup hook to be used as a
+  # native build input. The script itself references both the build-time
+  # (build) and run-time (host) python from the explicitly passed in `python`
+  # attribute, so the `buildPackages` doesn't effect that.
+  wrapPython = pkgs.buildPackages.callPackage ../development/interpreters/python/wrap-python.nix {
+    inherit python;
+  };
 
   # Dont take pythonPackages from "global" pkgs scope to avoid mixing python versions
   pythonPackages = self;
@@ -170,6 +186,8 @@ in {
 
   adal = callPackage ../development/python-modules/adal { };
 
+  adb-enhanced = callPackage ../development/python-modules/adb-enhanced { };
+
   adb-homeassistant = callPackage ../development/python-modules/adb-homeassistant { };
 
   adb-shell = callPackage ../development/python-modules/adb-shell { };
@@ -204,16 +222,24 @@ in {
 
   agent-py = callPackage ../development/python-modules/agent-py { };
 
-  aioamqp = callPackage ../development/python-modules/aioamqp { };
+  aioambient = callPackage ../development/python-modules/aioambient { };
 
   ailment = callPackage ../development/python-modules/ailment { };
 
+  aioamqp = callPackage ../development/python-modules/aioamqp { };
+
+  aioasuswrt = callPackage ../development/python-modules/aioasuswrt { };
+
+  aiocache = callPackage ../development/python-modules/aiocache { };
+
   aiocoap = callPackage ../development/python-modules/aiocoap { };
 
   aioconsole = callPackage ../development/python-modules/aioconsole { };
 
   aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
 
+  aiodiscover = callPackage ../development/python-modules/aiodiscover { };
+
   aiodns = callPackage ../development/python-modules/aiodns { };
 
   aioeafm = callPackage ../development/python-modules/aioeafm { };
@@ -238,7 +264,9 @@ in {
 
   aiohomekit = callPackage ../development/python-modules/aiohomekit { };
 
-  aiohttp = callPackage ../development/python-modules/aiohttp { };
+  aiohttp = callPackage ../development/python-modules/aiohttp {
+    pytestCheckHook = self.pytestCheckHook_6_1;
+  };
 
   aiohttp-cors = callPackage ../development/python-modules/aiohttp-cors { };
 
@@ -270,16 +298,22 @@ in {
 
   aiolifx-effects = callPackage ../development/python-modules/aiolifx-effects { };
 
+  aiolyric = callPackage ../development/python-modules/aiolyric { };
+
   aiomultiprocess = callPackage ../development/python-modules/aiomultiprocess { };
 
   aiomysql = callPackage ../development/python-modules/aiomysql { };
 
   aionotify = callPackage ../development/python-modules/aionotify { };
 
+  aionotion = callPackage ../development/python-modules/aionotion { };
+
   aioprocessing = callPackage ../development/python-modules/aioprocessing { };
 
   aiopulse = callPackage ../development/python-modules/aiopulse { };
 
+  aiopylgtv = callPackage ../development/python-modules/aiopylgtv { };
+
   aiorecollect = callPackage ../development/python-modules/aiorecollect { };
 
   aioredis = callPackage ../development/python-modules/aioredis { };
@@ -292,6 +326,8 @@ in {
 
   aioshelly = callPackage ../development/python-modules/aioshelly { };
 
+  aiosmb = callPackage ../development/python-modules/aiosmb { };
+
   aiosmtpd = callPackage ../development/python-modules/aiosmtpd { };
 
   aiosqlite = callPackage ../development/python-modules/aiosqlite { };
@@ -312,16 +348,14 @@ in {
 
   ajpy = callPackage ../development/python-modules/ajpy { };
 
+  ajsonrpc = callPackage ../development/python-modules/ajsonrpc { };
+
   alabaster = callPackage ../development/python-modules/alabaster { };
 
   alarmdecoder = callPackage ../development/python-modules/alarmdecoder { };
 
   alembic = callPackage ../development/python-modules/alembic { };
 
-  alerta = callPackage ../development/python-modules/alerta { };
-
-  alerta-server = callPackage ../development/python-modules/alerta-server { };
-
   algebraic-data-types = callPackage ../development/python-modules/algebraic-data-types { };
 
   allpairspy = callPackage ../development/python-modules/allpairspy { };
@@ -342,6 +376,8 @@ in {
 
   amqplib = callPackage ../development/python-modules/amqplib { };
 
+  android-backup = callPackage ../development/python-modules/android-backup { };
+
   androidtv = callPackage ../development/python-modules/androidtv { };
 
   androguard = callPackage ../development/python-modules/androguard { };
@@ -374,15 +410,21 @@ in {
 
   ansiwrap = callPackage ../development/python-modules/ansiwrap { };
 
-  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime { antlr4 = pkgs.antlr4; };
+  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime {
+    inherit (pkgs) antlr4;
+  };
 
-  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { antlr4 = pkgs.antlr4; };
+  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime {
+    inherit (pkgs) antlr4;
+  };
 
   anyio = callPackage ../development/python-modules/anyio { };
 
   anyjson = callPackage ../development/python-modules/anyjson { };
 
-  anytree = callPackage ../development/python-modules/anytree { inherit (pkgs) graphviz; };
+  anytree = callPackage ../development/python-modules/anytree {
+    inherit (pkgs) graphviz;
+  };
 
   apache-airflow = callPackage ../development/python-modules/apache-airflow { };
 
@@ -412,15 +454,21 @@ in {
 
   apsw = callPackage ../development/python-modules/apsw { };
 
+  aqualogic = callPackage ../development/python-modules/aqualogic { };
+
   arabic-reshaper = callPackage ../development/python-modules/arabic-reshaper { };
 
   archinfo = callPackage ../development/python-modules/archinfo { };
 
   area = callPackage ../development/python-modules/area { };
 
-  arelle = callPackage ../development/python-modules/arelle { gui = true; };
+  arelle = callPackage ../development/python-modules/arelle {
+    gui = true;
+  };
 
-  arelle-headless = callPackage ../development/python-modules/arelle { gui = false; };
+  arelle-headless = callPackage ../development/python-modules/arelle {
+    gui = false;
+  };
 
   aresponses = callPackage ../development/python-modules/aresponses { };
 
@@ -432,7 +480,7 @@ in {
 
   args = callPackage ../development/python-modules/args { };
 
-  aria2p = callPackage ../development/python-modules/aria2p { inherit (pkgs) aria2; };
+  aria2p = callPackage ../development/python-modules/aria2p { };
 
   arrayqueues = callPackage ../development/python-modules/arrayqueues { };
 
@@ -494,10 +542,14 @@ in {
 
   async_generator = callPackage ../development/python-modules/async_generator { };
 
+  async-dns = callPackage ../development/python-modules/async-dns { };
+
   asyncio-dgram = callPackage ../development/python-modules/asyncio-dgram { };
 
   asyncio-mqtt = callPackage ../development/python-modules/asyncio_mqtt { };
 
+  asyncio-nats-client = callPackage ../development/python-modules/asyncio-nats-client { };
+
   asyncio-throttle = callPackage ../development/python-modules/asyncio-throttle { };
 
   asyncpg = callPackage ../development/python-modules/asyncpg { };
@@ -510,7 +562,9 @@ in {
 
   async-timeout = callPackage ../development/python-modules/async_timeout { };
 
-  async-upnp-client = callPackage ../development/python-modules/async-upnp-client { };
+  async-upnp-client = callPackage ../development/python-modules/async-upnp-client {
+    pytestCheckHook = self.pytestCheckHook_6_1;
+  };
 
   asyncwhois = callPackage ../development/python-modules/asyncwhois { };
 
@@ -544,7 +598,11 @@ in {
 
   audiotools = callPackage ../development/python-modules/audiotools { };
 
-  augeas = callPackage ../development/python-modules/augeas { inherit (pkgs) augeas; };
+  augeas = callPackage ../development/python-modules/augeas {
+    inherit (pkgs) augeas;
+  };
+
+  auroranoaa = callPackage ../development/python-modules/auroranoaa { };
 
   auth0-python = callPackage ../development/python-modules/auth0-python { };
 
@@ -569,7 +627,7 @@ in {
     withPython = true;
   });
 
-  av = callPackage ../development/python-modules/av { inherit (pkgs) pkg-config; };
+  av = callPackage ../development/python-modules/av { };
 
   avea = callPackage ../development/python-modules/avea { };
 
@@ -598,6 +656,8 @@ in {
 
   awsiotpythonsdk = callPackage ../development/python-modules/awsiotpythonsdk { };
 
+  awslambdaric = callPackage ../development/python-modules/awslambdaric { };
+
   axis = callPackage ../development/python-modules/axis { };
 
   azure-appconfiguration = callPackage ../development/python-modules/azure-appconfiguration { };
@@ -714,8 +774,7 @@ in {
 
   azure-mgmt-iothub = callPackage ../development/python-modules/azure-mgmt-iothub { };
 
-  azure-mgmt-iothubprovisioningservices =
-    callPackage ../development/python-modules/azure-mgmt-iothubprovisioningservices { };
+  azure-mgmt-iothubprovisioningservices = callPackage ../development/python-modules/azure-mgmt-iothubprovisioningservices { };
 
   azure-mgmt-keyvault = callPackage ../development/python-modules/azure-mgmt-keyvault { };
 
@@ -857,8 +916,7 @@ in {
 
   backports-shutil-which = callPackage ../development/python-modules/backports-shutil-which { };
 
-  backports_ssl_match_hostname =
-    if !(pythonOlder "3.5") then null else callPackage ../development/python-modules/backports_ssl_match_hostname { };
+  backports_ssl_match_hostname = callPackage ../development/python-modules/backports_ssl_match_hostname { };
 
   backports_tempfile = callPackage ../development/python-modules/backports_tempfile { };
 
@@ -870,7 +928,9 @@ in {
 
   bandit = callPackage ../development/python-modules/bandit { };
 
-  bap = callPackage ../development/python-modules/bap { bap = pkgs.ocaml-ng.ocamlPackages_4_07.bap; };
+  bap = callPackage ../development/python-modules/bap {
+    inherit (pkgs.ocaml-ng.ocamlPackages) bap;
+  };
 
   baron = callPackage ../development/python-modules/baron { };
 
@@ -882,11 +942,11 @@ in {
 
   basemap = callPackage ../development/python-modules/basemap { };
 
-  bash_kernel = callPackage ../development/python-modules/bash_kernel { inherit (pkgs) bash; };
+  bash_kernel = callPackage ../development/python-modules/bash_kernel { };
 
   bashlex = callPackage ../development/python-modules/bashlex { };
 
-  basiciw = callPackage ../development/python-modules/basiciw { inherit (pkgs) gcc wirelesstools; };
+  basiciw = callPackage ../development/python-modules/basiciw { };
 
   batchgenerators = callPackage ../development/python-modules/batchgenerators { };
 
@@ -923,6 +983,8 @@ in {
 
   bellows = callPackage ../development/python-modules/bellows { };
 
+  beniget = callPackage ../development/python-modules/beniget { };
+
   bespon = callPackage ../development/python-modules/bespon { };
 
   betacode = callPackage ../development/python-modules/betacode { };
@@ -969,6 +1031,8 @@ in {
 
   bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
 
+  bitlist = callPackage ../development/python-modules/bitlist { };
+
   bitmath = callPackage ../development/python-modules/bitmath { };
 
   bitstring = callPackage ../development/python-modules/bitstring { };
@@ -1046,6 +1110,8 @@ in {
 
   bpython = callPackage ../development/python-modules/bpython { };
 
+  bracex = callPackage ../development/python-modules/bracex { };
+
   braintree = callPackage ../development/python-modules/braintree { };
 
   branca = callPackage ../development/python-modules/branca { };
@@ -1100,8 +1166,7 @@ in {
 
   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 ]);
+  buildbot-full = self.buildbot.withPlugins (with self.buildbot-plugins; [ www console-view waterfall-view grid-view wsgi-dashboards ]);
 
   buildbot-pkg = callPackage ../development/python-modules/buildbot/pkg.nix { };
 
@@ -1115,7 +1180,7 @@ in {
 
   bunch = callPackage ../development/python-modules/bunch { };
 
-  bx-python = callPackage ../development/python-modules/bx-python { inherit (pkgs) zlib; };
+  bx-python = callPackage ../development/python-modules/bx-python { };
 
   bwapy = callPackage ../development/python-modules/bwapy { };
 
@@ -1162,7 +1227,9 @@ in {
 
   canopen = callPackage ../development/python-modules/canopen { };
 
-  capstone = callPackage ../development/python-modules/capstone { inherit (pkgs) capstone; };
+  capstone = callPackage ../development/python-modules/capstone {
+    inherit (pkgs) capstone;
+  };
 
   capturer = callPackage ../development/python-modules/capturer { };
 
@@ -1224,6 +1291,8 @@ in {
 
   certipy = callPackage ../development/python-modules/certipy { };
 
+  certvalidator = callPackage ../development/python-modules/certvalidator { };
+
   cffi = callPackage ../development/python-modules/cffi { };
 
   cfgv = callPackage ../development/python-modules/cfgv { };
@@ -1240,7 +1309,9 @@ in {
 
   chai = callPackage ../development/python-modules/chai { };
 
-  chainer = callPackage ../development/python-modules/chainer { cudaSupport = pkgs.config.cudaSupport or false; };
+  chainer = callPackage ../development/python-modules/chainer {
+    cudaSupport = pkgs.config.cudaSupport or false;
+  };
 
   chainmap = callPackage ../development/python-modules/chainmap { };
 
@@ -1273,6 +1344,8 @@ in {
 
   chevron = callPackage ../development/python-modules/chevron { };
 
+  chirpstack-api = callPackage ../development/python-modules/chirpstack-api { };
+
   ci-info = callPackage ../development/python-modules/ci-info { };
 
   ci-py = callPackage ../development/python-modules/ci-py { };
@@ -1365,6 +1438,10 @@ in {
 
   cmdtest = callPackage ../development/python-modules/cmdtest { };
 
+  cmigemo = callPackage ../development/python-modules/cmigemo {
+    inherit (pkgs) cmigemo;
+  };
+
   cmsis-svd = callPackage ../development/python-modules/cmsis-svd { };
 
   cntk = callPackage ../development/python-modules/cntk { };
@@ -1385,8 +1462,6 @@ in {
 
   coilmq = callPackage ../development/python-modules/coilmq { };
 
-  coinmarketcap = callPackage ../development/python-modules/coinmarketcap { };
-
   ColanderAlchemy = callPackage ../development/python-modules/colanderalchemy { };
 
   colander = callPackage ../development/python-modules/colander { };
@@ -1421,7 +1496,8 @@ in {
 
   conda = callPackage ../development/python-modules/conda { };
 
-  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
+  ConfigArgParse = self.configargparse; # added 2021-03-18
+  configargparse = callPackage ../development/python-modules/configargparse { };
 
   configobj = callPackage ../development/python-modules/configobj { };
 
@@ -1442,7 +1518,10 @@ in {
 
   constantly = callPackage ../development/python-modules/constantly { };
 
-  construct = callPackage ../development/python-modules/construct { };
+  construct = if isPy27 then
+    callPackage ../development/python-modules/construct/2.10.54.nix { }
+  else
+    callPackage ../development/python-modules/construct { };
 
   consul = callPackage ../development/python-modules/consul { };
 
@@ -1452,7 +1531,10 @@ in {
 
   contextvars = callPackage ../development/python-modules/contextvars { };
 
-  convertdate = callPackage ../development/python-modules/convertdate { };
+  convertdate = if isPy27 then
+    callPackage ../development/python-modules/convertdate/2.2.x.nix { }
+  else
+    callPackage ../development/python-modules/convertdate { };
 
   cookiecutter = callPackage ../development/python-modules/cookiecutter { };
 
@@ -1543,9 +1625,10 @@ in {
   cufflinks = callPackage ../development/python-modules/cufflinks { };
 
   cupy = callPackage ../development/python-modules/cupy {
-    cudatoolkit = pkgs.cudatoolkit_10_0;
-    cudnn = pkgs.cudnn_cudatoolkit_10_0;
-    nccl = pkgs.nccl_cudatoolkit_10;
+    cudatoolkit = pkgs.cudatoolkit_11;
+    cudnn = pkgs.cudnn_cudatoolkit_11;
+    nccl = pkgs.nccl_cudatoolkit_11;
+    cutensor = pkgs.cutensor_cudatoolkit_11;
   };
 
   curio = callPackage ../development/python-modules/curio { };
@@ -1598,7 +1681,7 @@ in {
 
   dask-gateway = callPackage ../development/python-modules/dask-gateway { };
 
-  dask-gateway-server = callPackage ../development/python-modules/dask-gateway-server { inherit (pkgs) go; };
+  dask-gateway-server = callPackage ../development/python-modules/dask-gateway-server { };
 
   dask-glm = callPackage ../development/python-modules/dask-glm { };
 
@@ -1616,7 +1699,7 @@ in {
 
   databricks-cli = callPackage ../development/python-modules/databricks-cli { };
 
-  databricks-connect = callPackage ../development/python-modules/databricks-connect { inherit (pkgs) jdk; };
+  databricks-connect = callPackage ../development/python-modules/databricks-connect { };
 
   dataclasses = callPackage ../development/python-modules/dataclasses { };
 
@@ -1632,15 +1715,18 @@ in {
 
   datasette = callPackage ../development/python-modules/datasette { };
 
-  datashader = callPackage ../development/python-modules/datashader { };
+  datashader = callPackage ../development/python-modules/datashader {
+    dask = self.dask.override { withExtraComplete = true; };
+  };
 
   datashape = callPackage ../development/python-modules/datashape { };
 
-  datatable = callPackage ../development/python-modules/datatable {
-    inherit (pkgs.llvmPackages) libcxx;
-  };
+  datatable = callPackage ../development/python-modules/datatable { };
 
-  dateparser = callPackage ../development/python-modules/dateparser { };
+  dateparser = if isPy27 then
+    callPackage ../development/python-modules/dateparser/0.x.nix { }
+  else
+    callPackage ../development/python-modules/dateparser { };
 
   datrie = callPackage ../development/python-modules/datrie { };
 
@@ -1650,7 +1736,9 @@ in {
 
   dbus-next = callPackage ../development/python-modules/dbus-next { };
 
-  dbus-python = callPackage ../development/python-modules/dbus { inherit (pkgs) dbus pkg-config; };
+  dbus-python = callPackage ../development/python-modules/dbus {
+    inherit (pkgs) dbus;
+  };
 
   dbutils = callPackage ../development/python-modules/dbutils { };
 
@@ -1704,6 +1792,8 @@ in {
 
   deskcon = callPackage ../development/python-modules/deskcon { };
 
+  desktop-notifier = callPackage ../development/python-modules/desktop-notifier { };
+
   detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
 
   devolo-home-control-api = callPackage ../development/python-modules/devolo-home-control-api { };
@@ -1774,6 +1864,8 @@ in {
 
   django-cache-url = callPackage ../development/python-modules/django-cache-url { };
 
+  django-cacheops = callPackage ../development/python-modules/django-cacheops { };
+
   django_classytags = callPackage ../development/python-modules/django_classytags { };
 
   django-cleanup = callPackage ../development/python-modules/django-cleanup { };
@@ -1812,8 +1904,8 @@ in {
 
   django_hijack_admin = callPackage ../development/python-modules/django-hijack-admin { };
 
-  django_hijack = callPackage ../development/python-modules/django-hijack
-    { }; # This package may need an older version of Django. Override the package set and set e.g. `django = super.django_1_9`. See the Nixpkgs manual for examples on how to override the package set.
+  django_hijack = callPackage ../development/python-modules/django-hijack { };
+  # This package may need an older version of Django. Override the package set and set e.g. `django = super.django_1_9`. See the Nixpkgs manual for examples on how to override the package set.
 
   django-ipware = callPackage ../development/python-modules/django-ipware { };
 
@@ -1901,7 +1993,9 @@ in {
 
   dkimpy = callPackage ../development/python-modules/dkimpy { };
 
-  dlib = callPackage ../development/python-modules/dlib { inherit (pkgs) dlib; };
+  dlib = callPackage ../development/python-modules/dlib {
+    inherit (pkgs) dlib;
+  };
 
   dlx = callPackage ../development/python-modules/dlx { };
 
@@ -1948,6 +2042,8 @@ in {
 
   docutils = callPackage ../development/python-modules/docutils { };
 
+  docx2python = callPackage ../development/python-modules/docx2python { };
+
   dodgy = callPackage ../development/python-modules/dodgy { };
 
   dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
@@ -1964,7 +2060,9 @@ in {
 
   dotty-dict = callPackage ../development/python-modules/dotty-dict { };
 
-  dot2tex = callPackage ../development/python-modules/dot2tex { inherit (pkgs) graphviz; };
+  dot2tex = callPackage ../development/python-modules/dot2tex {
+    inherit (pkgs) graphviz;
+  };
 
   dparse = callPackage ../development/python-modules/dparse { };
 
@@ -1976,17 +2074,21 @@ in {
 
   drf-yasg = callPackage ../development/python-modules/drf-yasg { };
 
+  drivelib = callPackage ../development/python-modules/drivelib { };
+
   drms = callPackage ../development/python-modules/drms { };
 
   dropbox = callPackage ../development/python-modules/dropbox { };
 
   ds-store = callPackage ../development/python-modules/ds-store { };
 
-  ds4drv = callPackage ../development/python-modules/ds4drv { inherit (pkgs) fetchFromGitHub bluez; };
+  ds4drv = callPackage ../development/python-modules/ds4drv { };
 
   dtopt = callPackage ../development/python-modules/dtopt { };
 
-  duckdb = callPackage ../development/python-modules/duckdb { duckdb = pkgs.duckdb; };
+  duckdb = callPackage ../development/python-modules/duckdb {
+    inherit (pkgs) duckdb;
+  };
 
   duecredit = callPackage ../development/python-modules/duecredit { };
 
@@ -1999,6 +2101,8 @@ in {
   else
     callPackage ../development/python-modules/dulwich/0_19.nix { };
 
+  dwdwfsapi = callPackage ../development/python-modules/dwdwfsapi { };
+
   dyn = callPackage ../development/python-modules/dyn { };
 
   dynd = callPackage ../development/python-modules/dynd { };
@@ -2009,10 +2113,7 @@ in {
 
   EasyProcess = callPackage ../development/python-modules/easyprocess { };
 
-  easysnmp = callPackage ../development/python-modules/easysnmp {
-    openssl = pkgs.openssl;
-    net-snmp = pkgs.net-snmp;
-  };
+  easysnmp = callPackage ../development/python-modules/easysnmp { };
 
   easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
 
@@ -2033,6 +2134,8 @@ in {
 
   ed25519 = callPackage ../development/python-modules/ed25519 { };
 
+  editdistance = callPackage ../development/python-modules/editdistance { };
+
   editorconfig = callPackage ../development/python-modules/editorconfig { };
 
   edward = callPackage ../development/python-modules/edward { };
@@ -2045,12 +2148,14 @@ in {
 
   elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
 
-  elasticsearchdsl = self.elasticsearch-dsl; # alias
+  elasticsearchdsl = self.elasticsearch-dsl;
 
   elementpath = callPackage ../development/python-modules/elementpath { };
 
   eliot = callPackage ../development/python-modules/eliot { };
 
+  elmax = callPackage ../development/python-modules/elmax { };
+
   emailthreads = callPackage ../development/python-modules/emailthreads { };
 
   email_validator = callPackage ../development/python-modules/email-validator { };
@@ -2065,9 +2170,15 @@ in {
 
   enamlx = callPackage ../development/python-modules/enamlx { };
 
-  entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; };
+  enrich = callPackage ../development/python-modules/enrich { };
 
-  entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; };
+  entrance = callPackage ../development/python-modules/entrance {
+    routerFeatures = false;
+  };
+
+  entrance-with-router-features = callPackage ../development/python-modules/entrance {
+    routerFeatures = true;
+  };
 
   entrypoint2 = callPackage ../development/python-modules/entrypoint2 { };
 
@@ -2125,6 +2236,8 @@ in {
 
   evernote = callPackage ../development/python-modules/evernote { };
 
+  evohome-async = callPackage ../development/python-modules/evohome-async { };
+
   ewmh = callPackage ../development/python-modules/ewmh { };
 
   exdown = callPackage ../development/python-modules/exdown { };
@@ -2139,6 +2252,10 @@ in {
 
   exifread = callPackage ../development/python-modules/exifread { };
 
+  expiringdict = callPackage ../development/python-modules/expiringdict { };
+
+  exrex = callPackage ../development/python-modules/exrex { };
+
   extras = callPackage ../development/python-modules/extras { };
 
   eyeD3 = callPackage ../development/python-modules/eyed3 { };
@@ -2147,6 +2264,8 @@ in {
 
   Fabric = callPackage ../development/python-modules/Fabric { };
 
+  faadelays = callPackage ../development/python-modules/faadelays { };
+
   fabulous = callPackage ../development/python-modules/fabulous { };
 
   facebook-sdk = callPackage ../development/python-modules/facebook-sdk { };
@@ -2163,9 +2282,11 @@ in {
 
   fake_factory = callPackage ../development/python-modules/fake_factory { };
 
+  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
+
   faker = callPackage ../development/python-modules/faker { };
 
-  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
+  fakeredis = callPackage ../development/python-modules/fakeredis { };
 
   falcon = callPackage ../development/python-modules/falcon { };
 
@@ -2210,9 +2331,13 @@ in {
 
   fdint = callPackage ../development/python-modules/fdint { };
 
+  fe25519 = callPackage ../development/python-modules/fe25519 { };
+
   feedgen = callPackage ../development/python-modules/feedgen { };
 
-  feedgenerator = callPackage ../development/python-modules/feedgenerator { inherit (pkgs) glibcLocales; };
+  feedgenerator = callPackage ../development/python-modules/feedgenerator {
+    inherit (pkgs) glibcLocales;
+  };
 
   feedparser = if isPy3k then
     callPackage ../development/python-modules/feedparser { }
@@ -2220,7 +2345,6 @@ in {
     callPackage ../development/python-modules/feedparser/5.nix { };
 
   fenics = callPackage ../development/libraries/science/math/fenics {
-    inherit (pkgs) pkg-config;
     pytest = self.pytest_4;
   };
 
@@ -2244,7 +2368,7 @@ in {
 
   fints = callPackage ../development/python-modules/fints { };
 
-  fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; };
+  fiona = callPackage ../development/python-modules/fiona { };
 
   fipy = callPackage ../development/python-modules/fipy { };
 
@@ -2346,6 +2470,8 @@ in {
 
   flask_script = callPackage ../development/python-modules/flask-script { };
 
+  flask-seasurf = callPackage ../development/python-modules/flask-seasurf { };
+
   flask-silk = callPackage ../development/python-modules/flask-silk { };
 
   flask-socketio = callPackage ../development/python-modules/flask-socketio { };
@@ -2354,6 +2480,8 @@ in {
 
   flask_sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
 
+  flask-sslify = callPackage ../development/python-modules/flask-sslify { };
+
   flask-swagger = callPackage ../development/python-modules/flask-swagger { };
 
   flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
@@ -2424,12 +2552,16 @@ in {
   foundationdb60 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb60; };
   foundationdb61 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb61; };
 
+  fountains = callPackage ../development/python-modules/fountains { };
+
   foxdot = callPackage ../development/python-modules/foxdot { };
 
   fpdf = callPackage ../development/python-modules/fpdf { };
 
   fpylll = callPackage ../development/python-modules/fpylll { };
 
+  freebox-api = callPackage ../development/python-modules/freebox-api { };
+
   freetype-py = callPackage ../development/python-modules/freetype-py { };
 
   freezegun = if isPy27 then
@@ -2463,7 +2595,9 @@ in {
 
   furl = callPackage ../development/python-modules/furl { };
 
-  fuse = callPackage ../development/python-modules/fuse-python { inherit (pkgs) fuse pkg-config; };
+  fuse = callPackage ../development/python-modules/fuse-python {
+    inherit (pkgs) fuse;
+  };
 
   fusepy = callPackage ../development/python-modules/fusepy { };
 
@@ -2473,6 +2607,8 @@ in {
 
   futures = callPackage ../development/python-modules/futures { };
 
+  fuzzyfinder = callPackage ../development/python-modules/fuzzyfinder { };
+
   fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
 
   fx2 = callPackage ../development/python-modules/fx2 { };
@@ -2506,6 +2642,8 @@ in {
 
   gdrivefs = callPackage ../development/python-modules/gdrivefs { };
 
+  ge25519 = callPackage ../development/python-modules/ge25519 { };
+
   geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
     enablePython = true;
     python3 = python;
@@ -2607,8 +2745,6 @@ in {
 
   gmpy = callPackage ../development/python-modules/gmpy { };
 
-  gmusicapi = callPackage ../development/python-modules/gmusicapi { };
-
   gntp = callPackage ../development/python-modules/gntp { };
 
   gnureadline = callPackage ../development/python-modules/gnureadline { };
@@ -2621,12 +2757,12 @@ in {
 
   google-api-core = callPackage ../development/python-modules/google-api-core { };
 
-  google_api_python_client =
-    let google_api_python_client = callPackage ../development/python-modules/google-api-python-client { };
+  google-api-python-client =
+    let google-api-python-client = callPackage ../development/python-modules/google-api-python-client { };
     in if isPy3k then
-      google_api_python_client
+      google-api-python-client
     else # Python 2.7 support was deprecated but is still needed by weboob and duplicity
-      google_api_python_client.overridePythonAttrs (old: rec {
+      google-api-python-client.overridePythonAttrs (old: rec {
         version = "1.7.6";
         src = old.src.override {
           inherit version;
@@ -2634,7 +2770,7 @@ in {
         };
       });
 
-  googleapis_common_protos = callPackage ../development/python-modules/googleapis_common_protos { };
+  googleapis-common-protos = callPackage ../development/python-modules/googleapis-common-protos { };
 
   google-apputils = callPackage ../development/python-modules/google-apputils { };
 
@@ -2732,12 +2868,6 @@ in {
 
   googlemaps = callPackage ../development/python-modules/googlemaps { };
 
-  google-music = callPackage ../development/python-modules/google-music { };
-
-  google-music-proto = callPackage ../development/python-modules/google-music-proto { };
-
-  google-music-utils = callPackage ../development/python-modules/google-music-utils { };
-
   google-pasta = callPackage ../development/python-modules/google-pasta { };
 
   google-resumable-media = callPackage ../development/python-modules/google-resumable-media { };
@@ -2747,6 +2877,7 @@ in {
   gorilla = callPackage ../development/python-modules/gorilla { };
 
   gpapi = callPackage ../development/python-modules/gpapi { };
+
   gplaycli = callPackage ../development/python-modules/gplaycli { };
 
   gpgme = toPythonModule (pkgs.gpgme.override {
@@ -2754,9 +2885,11 @@ in {
     inherit python;
   });
 
-  gphoto2 = callPackage ../development/python-modules/gphoto2 { inherit (pkgs) pkg-config; };
+  gphoto2 = callPackage ../development/python-modules/gphoto2 { };
 
-  gprof2dot = callPackage ../development/python-modules/gprof2dot { inherit (pkgs) graphviz; };
+  gprof2dot = callPackage ../development/python-modules/gprof2dot {
+    inherit (pkgs) graphviz;
+  };
 
   gps3 = callPackage ../development/python-modules/gps3 { };
 
@@ -2794,9 +2927,13 @@ in {
 
   graphql-server-core = callPackage ../development/python-modules/graphql-server-core { };
 
-  graph-tool = callPackage ../development/python-modules/graph-tool/2.x.x.nix { inherit (pkgs) pkg-config; };
+  graph-tool = callPackage ../development/python-modules/graph-tool/2.x.x.nix { };
+
+  graphtage = callPackage ../development/python-modules/graphtage { };
 
-  graphviz = callPackage ../development/python-modules/graphviz { inherit (pkgs) graphviz; };
+  graphviz = callPackage ../development/python-modules/graphviz {
+    inherit (pkgs) graphviz;
+  };
 
   grappelli_safe = callPackage ../development/python-modules/grappelli_safe { };
 
@@ -2834,10 +2971,13 @@ in {
 
   gspread = callPackage ../development/python-modules/gspread { };
 
-  gssapi = callPackage ../development/python-modules/gssapi { inherit (pkgs) darwin krb5Full; };
+  gssapi = callPackage ../development/python-modules/gssapi {
+    inherit (pkgs) krb5Full;
+    inherit (pkgs.darwin.apple_sdk.frameworks) GSS;
+  };
 
   gst-python = callPackage ../development/python-modules/gst-python {
-    inherit (pkgs) meson pkg-config;
+    inherit (pkgs) meson;
     gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
   };
 
@@ -2858,8 +2998,12 @@ in {
   else
     callPackage ../development/python-modules/gunicorn { };
 
+  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; }
+    callPackage ../development/python-modules/gurobipy/darwin.nix {
+      inherit (pkgs.darwin) cctools insert_dylib;
+    }
   else if stdenv.hostPlatform.system == "x86_64-linux" then
     callPackage ../development/python-modules/gurobipy/linux.nix { }
   else
@@ -2882,13 +3026,17 @@ in {
 
   h2 = callPackage ../development/python-modules/h2 { };
 
-  h3 = callPackage ../development/python-modules/h3 { inherit (pkgs) h3; };
+  h3 = callPackage ../development/python-modules/h3 {
+    inherit (pkgs) h3;
+  };
 
   h5netcdf = callPackage ../development/python-modules/h5netcdf { };
 
-  h5py = callPackage ../development/python-modules/h5py { hdf5 = pkgs.hdf5; };
+  h5py = callPackage ../development/python-modules/h5py { };
 
-  h5py-mpi = self.h5py.override { hdf5 = pkgs.hdf5-mpi; };
+  h5py-mpi = self.h5py.override {
+    hdf5 = pkgs.hdf5-mpi;
+  };
 
   habanero = callPackage ../development/python-modules/habanero { };
 
@@ -2926,7 +3074,9 @@ in {
 
   helper = callPackage ../development/python-modules/helper { };
 
-  hepmc3 = toPythonModule (pkgs.hepmc3.override { inherit python; });
+  hepmc3 = toPythonModule (pkgs.hepmc3.override {
+    inherit python;
+  });
 
   hetzner = callPackage ../development/python-modules/hetzner { };
 
@@ -2942,7 +3092,9 @@ in {
 
   hickle = callPackage ../development/python-modules/hickle { };
 
-  hidapi = callPackage ../development/python-modules/hidapi { inherit (pkgs) udev libusb1; };
+  hidapi = callPackage ../development/python-modules/hidapi {
+    inherit (pkgs) udev libusb1;
+  };
 
   hieroglyph = callPackage ../development/python-modules/hieroglyph { };
 
@@ -2970,7 +3122,11 @@ in {
 
   homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
 
-  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue { inherit python; });
+  homepluscontrol = callPackage ../development/python-modules/homepluscontrol { };
+
+  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue {
+    inherit python;
+  });
 
   hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
 
@@ -2991,7 +3147,7 @@ in {
 
   html5lib = callPackage ../development/python-modules/html5lib { };
 
-  html5-parser = callPackage ../development/python-modules/html5-parser { inherit (pkgs) pkg-config; };
+  html5-parser = callPackage ../development/python-modules/html5-parser { };
 
   htmllaundry = callPackage ../development/python-modules/htmllaundry { };
 
@@ -3034,6 +3190,8 @@ in {
 
   hug = callPackage ../development/python-modules/hug { };
 
+  huggingface-hub = callPackage ../development/python-modules/huggingface-hub { };
+
   humanfriendly = callPackage ../development/python-modules/humanfriendly { };
 
   humanize = callPackage ../development/python-modules/humanize { };
@@ -3062,13 +3220,15 @@ in {
 
   hyperopt = callPackage ../development/python-modules/hyperopt { };
 
-  hypothesis_4 = callPackage ../development/python-modules/hypothesis/2.nix
-    { }; # File name is called 2.nix because this one will need to remain for Python 2.
+  # File name is called 2.nix because this one will need to remain for Python 2.
+  hypothesis_4 = callPackage ../development/python-modules/hypothesis/2.nix { };
 
   hypothesis-auto = callPackage ../development/python-modules/hypothesis-auto { };
 
   hypothesis = if isPy3k then callPackage ../development/python-modules/hypothesis { } else self.hypothesis_4;
 
+  hypothesmith = callPackage ../development/python-modules/hypothesmith { };
+
   hyppo = callPackage ../development/python-modules/hyppo { };
 
   i3ipc = callPackage ../development/python-modules/i3ipc { };
@@ -3077,6 +3237,8 @@ in {
 
   iapws = callPackage ../development/python-modules/iapws { };
 
+  iaqualink = callPackage ../development/python-modules/iaqualink { };
+
   ibis = callPackage ../development/python-modules/ibis { };
 
   ibis-framework = callPackage ../development/python-modules/ibis-framework { };
@@ -3140,6 +3302,8 @@ in {
 
   imgsize = callPackage ../development/python-modules/imgsize { };
 
+  iminuit = callPackage ../development/python-modules/iminuit { };
+
   immutables = callPackage ../development/python-modules/immutables { };
 
   impacket = callPackage ../development/python-modules/impacket { };
@@ -3150,11 +3314,14 @@ in {
 
   importmagic = callPackage ../development/python-modules/importmagic { };
 
-  imread =
-    callPackage ../development/python-modules/imread { inherit (pkgs) pkg-config libjpeg libpng libtiff libwebp; };
+  imread = callPackage ../development/python-modules/imread {
+    inherit (pkgs) libjpeg libpng libtiff libwebp;
+  };
 
   imutils = callPackage ../development/python-modules/imutils { };
 
+  incomfort-client = callPackage ../development/python-modules/incomfort-client { };
+
   incremental = callPackage ../development/python-modules/incremental { };
 
   inflect = callPackage ../development/python-modules/inflect { };
@@ -3281,8 +3448,6 @@ in {
 
   j2cli = callPackage ../development/python-modules/j2cli { };
 
-  jabberbot = callPackage ../development/python-modules/jabberbot { };
-
   janus = callPackage ../development/python-modules/janus { };
 
   jaraco_classes = callPackage ../development/python-modules/jaraco_classes { };
@@ -3349,18 +3514,24 @@ in {
 
   josepy = callPackage ../development/python-modules/josepy { };
 
-  journalwatch = callPackage ../tools/system/journalwatch { inherit (self) systemd pytest; };
+  journalwatch = callPackage ../tools/system/journalwatch {
+    inherit (self) systemd pytest;
+  };
 
   jpylyzer = callPackage ../development/python-modules/jpylyzer { };
 
   JPype1 = callPackage ../development/python-modules/JPype1 { };
 
-  jq = callPackage ../development/python-modules/jq { inherit (pkgs) jq; };
+  jq = callPackage ../development/python-modules/jq {
+    inherit (pkgs) jq;
+  };
 
   jsbeautifier = callPackage ../development/python-modules/jsbeautifier { };
 
   jsmin = callPackage ../development/python-modules/jsmin { };
 
+  json5 = callPackage ../development/python-modules/json5 { };
+
   jsondate = callPackage ../development/python-modules/jsondate { };
 
   jsondiff = callPackage ../development/python-modules/jsondiff { };
@@ -3383,12 +3554,16 @@ in {
 
   jsonpath_rw = callPackage ../development/python-modules/jsonpath_rw { };
 
+  jsonpath-ng = callPackage ../development/python-modules/jsonpath-ng { };
+
   jsonpickle = callPackage ../development/python-modules/jsonpickle { };
 
   jsonpointer = callPackage ../development/python-modules/jsonpointer { };
 
   jsonref = callPackage ../development/python-modules/jsonref { };
 
+  json-rpc = callPackage ../development/python-modules/json-rpc { };
+
   jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
 
   jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
@@ -3429,12 +3604,13 @@ in {
 
   jupyter_core = callPackage ../development/python-modules/jupyter_core { };
 
+  jupyter_server = callPackage ../development/python-modules/jupyter_server { };
+
   jupyterhub = callPackage ../development/python-modules/jupyterhub { };
 
   jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
 
-  jupyterhub-systemdspawner =
-    callPackage ../development/python-modules/jupyterhub-systemdspawner { inherit (pkgs) bash; };
+  jupyterhub-systemdspawner = callPackage ../development/python-modules/jupyterhub-systemdspawner { };
 
   jupyterhub-tmpauthenticator = callPackage ../development/python-modules/jupyterhub-tmpauthenticator { };
 
@@ -3448,7 +3624,11 @@ in {
 
   jupyterlab_server = callPackage ../development/python-modules/jupyterlab_server { };
 
-  jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker { pkgs-docker = pkgs.docker; };
+  jupyter-packaging = callPackage ../development/python-modules/jupyter-packaging { };
+
+  jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker {
+    pkgs-docker = pkgs.docker;
+  };
 
   jupyter-sphinx = callPackage ../development/python-modules/jupyter-sphinx { };
 
@@ -3458,7 +3638,9 @@ in {
 
   jwcrypto = callPackage ../development/python-modules/jwcrypto { };
 
-  k5test = callPackage ../development/python-modules/k5test { inherit (pkgs) krb5Full findutils which; };
+  k5test = callPackage ../development/python-modules/k5test {
+    inherit (pkgs) krb5Full findutils which;
+  };
 
   kaa-base = callPackage ../development/python-modules/kaa-base { };
 
@@ -3492,7 +3674,7 @@ in {
 
   keras-preprocessing = callPackage ../development/python-modules/keras-preprocessing { };
 
-  kerberos = callPackage ../development/python-modules/kerberos { inherit (pkgs) kerberos; };
+  kerberos = callPackage ../development/python-modules/kerberos { };
 
   keyring = if isPy3k then
     callPackage ../development/python-modules/keyring { }
@@ -3503,14 +3685,24 @@ in {
 
   keystone-engine = callPackage ../development/python-modules/keystone-engine { };
 
-  keyutils = callPackage ../development/python-modules/keyutils { inherit (pkgs) keyutils; };
+  keyutils = callPackage ../development/python-modules/keyutils {
+    inherit (pkgs) keyutils;
+  };
 
-  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override { python3 = python; }).src);
+  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override {
+    python3 = python;
+  }).src);
 
   kinparse = callPackage ../development/python-modules/kinparse { };
 
   kitchen = callPackage ../development/python-modules/kitchen { };
 
+  kivy = callPackage ../development/python-modules/kivy {
+    inherit (pkgs) mesa;
+  };
+
+  kivy-garden = callPackage ../development/python-modules/kivy-garden { };
+
   kiwisolver = if isPy3k then
     callPackage ../development/python-modules/kiwisolver { }
   else
@@ -3524,7 +3716,6 @@ in {
 
   kmsxx = toPythonModule ((callPackage ../development/libraries/kmsxx {
     inherit (pkgs.kmsxx) stdenv;
-    inherit (pkgs) pkg-config;
     withPython = true;
   }).overrideAttrs (oldAttrs: { name = "${python.libPrefix}-${pkgs.kmsxx.name}"; }));
 
@@ -3542,7 +3733,11 @@ in {
 
   labelbox = callPackage ../development/python-modules/labelbox { };
 
-  lammps-cython = callPackage ../development/python-modules/lammps-cython { mpi = pkgs.mpi; };
+  labgrid = callPackage ../development/python-modules/labgrid { };
+
+  labmath = callPackage ../development/python-modules/labmath { };
+
+  lammps-cython = callPackage ../development/python-modules/lammps-cython { };
 
   langcodes = callPackage ../development/python-modules/langcodes { };
 
@@ -3608,11 +3803,17 @@ in {
 
   libais = callPackage ../development/python-modules/libais { };
 
-  libarchive-c = callPackage ../development/python-modules/libarchive-c { inherit (pkgs) libarchive; };
+  libarchive-c = callPackage ../development/python-modules/libarchive-c {
+    inherit (pkgs) libarchive;
+  };
 
-  libarcus = callPackage ../development/python-modules/libarcus { inherit (pkgs) protobuf; };
+  libarcus = callPackage ../development/python-modules/libarcus {
+    inherit (pkgs) protobuf;
+  };
 
-  libasyncns = callPackage ../development/python-modules/libasyncns { inherit (pkgs) libasyncns pkg-config; };
+  libasyncns = callPackage ../development/python-modules/libasyncns {
+    inherit (pkgs) libasyncns;
+  };
 
   libcloud = if isPy27 then
     callPackage ../development/python-modules/libcloud/2.nix { }
@@ -3660,7 +3861,9 @@ in {
 
   libmr = callPackage ../development/python-modules/libmr { };
 
-  libnacl = callPackage ../development/python-modules/libnacl { inherit (pkgs) libsodium; };
+  libnacl = callPackage ../development/python-modules/libnacl {
+    inherit (pkgs) libsodium;
+  };
 
   libnl-python = disabledIf isPy3k (toPythonModule (pkgs.libnl.override {
     pythonSupport = true;
@@ -3688,7 +3891,11 @@ in {
 
   librosa = callPackage ../development/python-modules/librosa { };
 
-  libsass = (callPackage ../development/python-modules/libsass { inherit (pkgs) libsass; });
+  librouteros = callPackage ../development/python-modules/librouteros { };
+
+  libsass = (callPackage ../development/python-modules/libsass {
+    inherit (pkgs) libsass;
+  });
 
   libsavitar = callPackage ../development/python-modules/libsavitar { };
 
@@ -3720,15 +3927,20 @@ in {
   else
     (toPythonModule (pkgs.libtorrent-rasterbar.override { inherit python; })).python;
 
-  libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
+  libusb1 = callPackage ../development/python-modules/libusb1 {
+    inherit (pkgs) libusb1;
+  };
 
-  libversion = callPackage ../development/python-modules/libversion { inherit (pkgs) libversion pkg-config; };
+  libversion = callPackage ../development/python-modules/libversion {
+    inherit (pkgs) libversion;
+  };
 
   libvirt = if isPy3k then
-    (callPackage ../development/python-modules/libvirt { inherit (pkgs) libvirt pkg-config; })
+    (callPackage ../development/python-modules/libvirt {
+    inherit (pkgs) libvirt;
+  })
   else
     (callPackage ../development/python-modules/libvirt/5.9.0.nix {
-      inherit (pkgs) pkg-config;
       libvirt = pkgs.libvirt_5_9_0;
     });
 
@@ -3739,7 +3951,7 @@ in {
 
   libxslt = (toPythonModule (pkgs.libxslt.override {
     pythonSupport = true;
-    inherit python;
+    python3 = python;
     inherit (self) libxml2;
   })).py;
 
@@ -3753,6 +3965,8 @@ in {
 
   lightparam = callPackage ../development/python-modules/lightparam { };
 
+  lima = callPackage ../development/python-modules/lima { };
+
   limitlessled = callPackage ../development/python-modules/limitlessled { };
 
   limits = callPackage ../development/python-modules/limits { };
@@ -3771,7 +3985,9 @@ in {
 
   liquidctl = callPackage ../development/python-modules/liquidctl { };
 
-  lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override { python3 = python; }));
+  lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override {
+    python3 = python;
+  }));
 
   littleutils = callPackage ../development/python-modules/littleutils { };
 
@@ -3784,8 +4000,8 @@ in {
   livestreamer-curses = callPackage ../development/python-modules/livestreamer-curses { };
 
   llfuse = callPackage ../development/python-modules/llfuse {
-    inherit (pkgs) fuse pkg-config;
-  }; # use "real" fuse and pkg-config, not the python modules
+    inherit (pkgs) fuse;
+  };
 
   llvmlite = callPackage ../development/python-modules/llvmlite {
     llvm = pkgs.llvm_9;
@@ -3799,6 +4015,8 @@ in {
 
   lmtpd = callPackage ../development/python-modules/lmtpd { };
 
+  localimport = callPackage ../development/python-modules/localimport { };
+
   localzone = callPackage ../development/python-modules/localzone { };
 
   locket = callPackage ../development/python-modules/locket { };
@@ -3839,9 +4057,13 @@ in {
 
   luftdaten = callPackage ../development/python-modules/luftdaten { };
 
+  lupa = callPackage ../development/python-modules/lupa { };
+
   lxc = callPackage ../development/python-modules/lxc { };
 
-  lxml = callPackage ../development/python-modules/lxml { inherit (pkgs) libxml2 libxslt zlib; };
+  lxml = callPackage ../development/python-modules/lxml {
+    inherit (pkgs) libxml2 libxslt zlib;
+  };
 
   lyricwikia = callPackage ../development/python-modules/lyricwikia { };
 
@@ -3864,20 +4086,11 @@ in {
   macropy = callPackage ../development/python-modules/macropy { };
 
   maestral = callPackage ../development/python-modules/maestral {
-
-    # https://github.com/SamSchott/maestral/issues/250#issuecomment-739510048
-    survey = self.survey.overridePythonAttrs (old: rec {
-      version = "2.2.1";
-      src = old.src.override {
-        inherit version;
-        sha256 = "sha256-7ubWkqk1vyaJDLMOuKwUx2Bjziyi3HqpaQq4pKp4Z+0=";
-      };
-    });
-    watchdog = self.watchdog.overridePythonAttrs (old: rec {
-      version = "0.10.3";
+    keyring = self.keyring.overridePythonAttrs (old: rec {
+      version = "22.0.1";
       src = old.src.override {
         inherit version;
-        sha256 = "4214e1379d128b0588021880ccaf40317ee156d4603ac388b9adcf29165e0c04";
+        sha256 = "sha256-mss+FFLtu3VEgisS/SVFkHh2nlYPpR9Bi20Ar6pheN8=";
       };
     });
   };
@@ -3908,6 +4121,8 @@ in {
 
   mail-parser = callPackage ../development/python-modules/mail-parser { };
 
+  makefun = callPackage ../development/python-modules/makefun { };
+
   Mako = callPackage ../development/python-modules/Mako { };
 
   managesieve = callPackage ../development/python-modules/managesieve { };
@@ -3918,7 +4133,9 @@ in {
 
   manuel = callPackage ../development/python-modules/manuel { };
 
-  manticore = callPackage ../development/python-modules/manticore { inherit (pkgs) z3; };
+  manticore = callPackage ../development/python-modules/manticore {
+    inherit (pkgs) z3;
+  };
 
   mapbox = callPackage ../development/python-modules/mapbox { };
 
@@ -3928,7 +4145,9 @@ in {
 
   marionette-harness = callPackage ../development/python-modules/marionette-harness { };
 
-  marisa = callPackage ../development/python-modules/marisa { marisa = pkgs.marisa; };
+  marisa = callPackage ../development/python-modules/marisa {
+    inherit (pkgs) marisa;
+  };
 
   marisa-trie = callPackage ../development/python-modules/marisa-trie { };
 
@@ -3961,6 +4180,8 @@ in {
 
   mask-rcnn = callPackage ../development/python-modules/mask-rcnn { };
 
+  mat2 = callPackage ../development/python-modules/mat2 { };
+
   matchpy = callPackage ../development/python-modules/matchpy { };
 
   mathlibtools = callPackage ../development/python-modules/mathlibtools { };
@@ -3973,7 +4194,6 @@ in {
   in callPackage path {
     stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv;
     inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
-    inherit (pkgs) pkg-config;
   };
 
   matrix-client = callPackage ../development/python-modules/matrix-client { };
@@ -3995,6 +4215,8 @@ in {
 
   mccabe = callPackage ../development/python-modules/mccabe { };
 
+  mcstatus = callPackage ../development/python-modules/mcstatus { };
+
   MDP = callPackage ../development/python-modules/mdp { };
 
   measurement = callPackage ../development/python-modules/measurement { };
@@ -4017,7 +4239,9 @@ in {
 
   memory_profiler = callPackage ../development/python-modules/memory_profiler { };
 
-  mercurial = disabledIf (!isPy3k) (toPythonModule (pkgs.mercurial.override { python3Packages = self; }));
+  mercurial = disabledIf (!isPy3k) (toPythonModule (pkgs.mercurial.override {
+    python3Packages = self;
+  }));
 
   mergedeep = callPackage ../development/python-modules/mergedeep { };
 
@@ -4025,6 +4249,8 @@ in {
 
   mesa = callPackage ../development/python-modules/mesa { };
 
+  meshio = callPackage ../development/python-modules/meshio { };
+
   meshlabxml = callPackage ../development/python-modules/meshlabxml { };
 
   meson = disabledIf (pythonOlder "3.5") (toPythonModule ((pkgs.meson.override { python3 = python; }).overrideAttrs
@@ -4036,6 +4262,8 @@ in {
 
   metaphone = callPackage ../development/python-modules/metaphone { };
 
+  metar = callPackage ../development/python-modules/metar { };
+
   mezzanine = callPackage ../development/python-modules/mezzanine { };
 
   micawber = callPackage ../development/python-modules/micawber { };
@@ -4056,7 +4284,9 @@ in {
 
   minimock = callPackage ../development/python-modules/minimock { };
 
-  mininet-python = (toPythonModule (pkgs.mininet.override { inherit python; })).py;
+  mininet-python = (toPythonModule (pkgs.mininet.override {
+    inherit python;
+  })).py;
 
   minio = callPackage ../development/python-modules/minio { };
 
@@ -4111,8 +4341,8 @@ in {
 
   mohawk = callPackage ../development/python-modules/mohawk { };
 
-  moinmoin = callPackage ../development/python-modules/moinmoin
-    { }; # Needed here because moinmoin is loaded as a Python library.
+  # Needed here because moinmoin is loaded as a Python library.
+  moinmoin = callPackage ../development/python-modules/moinmoin { };
 
   mongodict = callPackage ../development/python-modules/mongodict { };
 
@@ -4180,13 +4410,17 @@ in {
 
   mpd = callPackage ../development/python-modules/mpd { };
 
-  mpi4py = callPackage ../development/python-modules/mpi4py { mpi = pkgs.mpi; };
+  mpi4py = callPackage ../development/python-modules/mpi4py { };
+
+  mplfinance = callPackage ../development/python-modules/mplfinance { };
 
   mplleaflet = callPackage ../development/python-modules/mplleaflet { };
 
   mpmath = callPackage ../development/python-modules/mpmath { };
 
-  mpv = callPackage ../development/python-modules/mpv { mpv = pkgs.mpv; };
+  mpv = callPackage ../development/python-modules/mpv {
+    inherit (pkgs) mpv;
+  };
 
   mpyq = callPackage ../development/python-modules/mpyq { };
 
@@ -4212,6 +4446,8 @@ in {
 
   mt-940 = callPackage ../development/python-modules/mt-940 { };
 
+  mullvad-api = callPackage ../development/python-modules/mullvad-api { };
+
   mulpyplexer = callPackage ../development/python-modules/mulpyplexer { };
 
   multidict = callPackage ../development/python-modules/multidict { };
@@ -4263,6 +4499,8 @@ in {
 
   mygpoclient = callPackage ../development/python-modules/mygpoclient { };
 
+  myjwt = callPackage ../development/python-modules/myjwt { };
+
   mypy = callPackage ../development/python-modules/mypy { };
 
   mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
@@ -4285,16 +4523,22 @@ in {
 
   nanoleaf = callPackage ../development/python-modules/nanoleaf { };
 
-  nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
+  nanomsg-python = callPackage ../development/python-modules/nanomsg-python {
+    inherit (pkgs) nanomsg;
+  };
 
   nanotime = callPackage ../development/python-modules/nanotime { };
 
   nassl = callPackage ../development/python-modules/nassl { };
 
+  nats-python = callPackage ../development/python-modules/nats-python { };
+
   natsort = callPackage ../development/python-modules/natsort { };
 
   naturalsort = callPackage ../development/python-modules/naturalsort { };
 
+  nbclassic = callPackage ../development/python-modules/nbclassic { };
+
   nbclient = callPackage ../development/python-modules/nbclient { };
 
   nbconflux = callPackage ../development/python-modules/nbconflux { };
@@ -4375,16 +4619,20 @@ in {
 
   nipy = callPackage ../development/python-modules/nipy { };
 
-  nipype = callPackage ../development/python-modules/nipype { inherit (pkgs) which; };
+  nipype = callPackage ../development/python-modules/nipype {
+    inherit (pkgs) which;
+  };
 
   nitime = callPackage ../development/python-modules/nitime { };
 
   nitpick = callPackage ../applications/version-management/nitpick { };
 
-  nix-kernel = callPackage ../development/python-modules/nix-kernel { inherit (pkgs) nix; };
+  nix-kernel = callPackage ../development/python-modules/nix-kernel {
+    inherit (pkgs) nix;
+  };
 
-  nixpart0 = callPackage ../tools/filesystems/nixpart/0.4
-    { }; # This is used for NixOps to make sure we won't break it with the next major version of nixpart.
+  # This is used for NixOps to make sure we won't break it with the next major version of nixpart.
+  nixpart0 = callPackage ../tools/filesystems/nixpart/0.4 { };
 
   nixpart = callPackage ../tools/filesystems/nixpart { };
 
@@ -4408,6 +4656,8 @@ in {
 
   nodeenv = callPackage ../development/python-modules/nodeenv { };
 
+  nodepy-runtime = callPackage ../development/python-modules/nodepy-runtime { };
+
   node-semver = callPackage ../development/python-modules/node-semver { };
 
   noise = callPackage ../development/python-modules/noise { };
@@ -4457,8 +4707,13 @@ in {
 
   notify-py = callPackage ../development/python-modules/notify-py { };
 
-  notmuch = callPackage ../development/python-modules/notmuch { inherit (pkgs) notmuch; };
-  notmuch2 = callPackage ../development/python-modules/notmuch/2.nix { inherit (pkgs) notmuch; };
+  notmuch = callPackage ../development/python-modules/notmuch {
+    inherit (pkgs) notmuch;
+  };
+
+  notmuch2 = callPackage ../development/python-modules/notmuch/2.nix {
+    inherit (pkgs) notmuch;
+  };
 
   nototools = callPackage ../data/fonts/noto-fonts/tools.nix { };
 
@@ -4478,7 +4733,7 @@ in {
 
   numba = callPackage ../development/python-modules/numba { };
 
-  numcodecs = callPackage ../development/python-modules/numcodecs { inherit (pkgs) gcc8; };
+  numcodecs = callPackage ../development/python-modules/numcodecs { };
 
   numericalunits = callPackage ../development/python-modules/numericalunits { };
 
@@ -4493,8 +4748,6 @@ in {
 
   numpy-stl = callPackage ../development/python-modules/numpy-stl { };
 
-  numtraits = callPackage ../development/python-modules/numtraits { };
-
   nunavut = callPackage ../development/python-modules/nunavut { };
 
   nvchecker = callPackage ../development/python-modules/nvchecker { };
@@ -4520,7 +4773,10 @@ in {
 
   obfsproxy = callPackage ../development/python-modules/obfsproxy { };
 
-  objgraph = callPackage ../development/python-modules/objgraph { graphvizPkg = pkgs.graphviz; };
+  objgraph = callPackage ../development/python-modules/objgraph {
+    # requires both the graphviz package and python package
+    graphvizPkgs = pkgs.graphviz;
+  };
 
   od = callPackage ../development/python-modules/od { };
 
@@ -4567,6 +4823,8 @@ in {
     pythonPackages = self;
   }));
 
+  openhomedevice = callPackage ../development/python-modules/openhomedevice { };
+
   openidc-client = callPackage ../development/python-modules/openidc-client { };
 
   openpyxl = if pythonAtLeast "3.6" then
@@ -4590,6 +4848,8 @@ in {
 
   openwrt-luci-rpc = disabledIf (!isPy3k) (callPackage ../development/python-modules/openwrt-luci-rpc { });
 
+  openwrt-ubus-rpc = callPackage ../development/python-modules/openwrt-ubus-rpc { };
+
   opt-einsum = if isPy27 then
     callPackage ../development/python-modules/opt-einsum/2.nix { }
   else
@@ -4629,12 +4889,12 @@ in {
 
   ovh = callPackage ../development/python-modules/ovh { };
 
-  ovito = toPythonModule (pkgs.libsForQt5.callPackage ../development/python-modules/ovito { inherit python; });
-
   owslib = callPackage ../development/python-modules/owslib { };
 
   oyaml = callPackage ../development/python-modules/oyaml { };
 
+  packageurl-python = callPackage ../development/python-modules/packageurl-python { };
+
   packaging = if isPy3k
     then callPackage ../development/python-modules/packaging { }
     else callPackage ../development/python-modules/packaging/2.nix { };
@@ -4712,6 +4972,8 @@ in {
 
   partd = callPackage ../development/python-modules/partd { };
 
+  parts = callPackage ../development/python-modules/parts { };
+
   parver = callPackage ../development/python-modules/parver { };
   arpeggio = callPackage ../development/python-modules/arpeggio { };
 
@@ -4790,7 +5052,9 @@ in {
 
   pefile = callPackage ../development/python-modules/pefile { };
 
-  pelican = callPackage ../development/python-modules/pelican { inherit (pkgs) glibcLocales git; };
+  pelican = callPackage ../development/python-modules/pelican {
+    inherit (pkgs) glibcLocales git;
+  };
 
   pendulum = callPackage ../development/python-modules/pendulum { };
 
@@ -4823,6 +5087,7 @@ in {
   pexpect = callPackage ../development/python-modules/pexpect { };
 
   pg8000 = callPackage ../development/python-modules/pg8000 { };
+
   pg8000_1_12 = callPackage ../development/python-modules/pg8000/1_12.nix { };
 
   pgcli = callPackage ../development/tools/database/pgcli { };
@@ -4879,9 +5144,14 @@ in {
   else
     callPackage ../development/python-modules/pillow {
       inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
-      inherit (pkgs.xorg) libX11;
+      inherit (pkgs.xorg) libX11 libxcb;
     };
 
+  pillow-simd = callPackage ../development/python-modules/pillow-simd {
+      inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
+      inherit (pkgs.xorg) libX11;
+  };
+
   pims = callPackage ../development/python-modules/pims { };
 
   pinboard = callPackage ../development/python-modules/pinboard { };
@@ -4894,7 +5164,7 @@ in {
 
   pip-tools = callPackage ../development/python-modules/pip-tools {
     git = pkgs.gitMinimal;
-    glibcLocales = pkgs.glibcLocales;
+    inherit (pkgs) glibcLocales;
   };
 
   pipx = callPackage ../development/python-modules/pipx { };
@@ -4908,7 +5178,7 @@ in {
 
   pkce = callPackage ../development/python-modules/pkce { };
 
-  pkgconfig = callPackage ../development/python-modules/pkgconfig { inherit (pkgs) pkg-config; };
+  pkgconfig = callPackage ../development/python-modules/pkgconfig { };
 
   pkginfo = callPackage ../development/python-modules/pkginfo { };
 
@@ -4918,6 +5188,8 @@ in {
 
   pynuki = callPackage ../development/python-modules/pynuki { };
 
+  pynws = callPackage ../development/python-modules/pynws { };
+
   pysbd = callPackage ../development/python-modules/pysbd { };
 
   pyshark = callPackage ../development/python-modules/pyshark { };
@@ -4982,7 +5254,7 @@ in {
 
   poetry-core = callPackage ../development/python-modules/poetry-core { };
 
-  poezio = callPackage ../applications/networking/instant-messengers/poezio { inherit (pkgs) pkg-config; };
+  poezio = callPackage ../applications/networking/instant-messengers/poezio { };
 
   polib = callPackage ../development/python-modules/polib { };
 
@@ -4996,12 +5268,13 @@ in {
 
   pooch = callPackage ../development/python-modules/pooch { };
 
+  pook = callPackage ../development/python-modules/pook { };
+
   poolsense = callPackage ../development/python-modules/poolsense { };
 
   poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 {
     inherit (pkgs.qt5) qtbase;
     inherit (pkgs.libsForQt5) poppler;
-    inherit (pkgs) pkg-config;
   };
 
   portalocker = callPackage ../development/python-modules/portalocker { };
@@ -5073,6 +5346,7 @@ in {
   prison = callPackage ../development/python-modules/prison { };
 
   privacyidea = callPackage ../development/python-modules/privacyidea { };
+
   privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
 
   proboscis = callPackage ../development/python-modules/proboscis { };
@@ -5112,15 +5386,19 @@ in {
 
   protobuf = callPackage ../development/python-modules/protobuf {
     disabled = isPyPy;
-    doCheck =
-      !isPy3k; # If a protobuf upgrade causes many Python packages to fail, please pin it here to the previous version.
-    protobuf = pkgs.protobuf;
+    # If a protobuf upgrade causes many Python packages to fail, please pin it here to the previous version.
+    doCheck = !isPy3k;
+    inherit (pkgs) protobuf;
   };
 
+  protobuf3-to-dict = callPackage ../development/python-modules/protobuf3-to-dict { };
+
   prov = callPackage ../development/python-modules/prov { };
 
   prox-tv = callPackage ../development/python-modules/prox-tv { };
 
+  proxmoxer = callPackage ../development/python-modules/proxmoxer { };
+
   psautohint = callPackage ../development/python-modules/psautohint { };
 
   psd-tools = callPackage ../development/python-modules/psd-tools { };
@@ -5135,7 +5413,7 @@ in {
 
   ptest = callPackage ../development/python-modules/ptest { };
 
-  ptpython = callPackage ../development/python-modules/ptpython { prompt_toolkit = self.prompt_toolkit; };
+  ptpython = callPackage ../development/python-modules/ptpython { };
 
   ptyprocess = callPackage ../development/python-modules/ptyprocess { };
 
@@ -5153,6 +5431,8 @@ in {
 
   pulsectl = callPackage ../development/python-modules/pulsectl { };
 
+  pure-cdb = callPackage ../development/python-modules/pure-cdb { };
+
   pure-eval = callPackage ../development/python-modules/pure-eval { };
 
   pure-pcapy3 = callPackage ../development/python-modules/pure-pcapy3 { };
@@ -5173,7 +5453,9 @@ in {
 
   Pweave = callPackage ../development/python-modules/pweave { };
 
-  pwntools = callPackage ../development/python-modules/pwntools { debugger = pkgs.gdb; };
+  pwntools = callPackage ../development/python-modules/pwntools {
+    debugger = pkgs.gdb;
+  };
 
   pxml = callPackage ../development/python-modules/pxml { };
 
@@ -5209,6 +5491,8 @@ in {
 
   pyalgotrade = callPackage ../development/python-modules/pyalgotrade { };
 
+  pyalmond = callPackage ../development/python-modules/pyalmond { };
+
   pyamf = callPackage ../development/python-modules/pyamf { };
 
   pyamg = callPackage ../development/python-modules/pyamg { };
@@ -5219,7 +5503,9 @@ in {
 
   pyarlo = callPackage ../development/python-modules/pyarlo { };
 
-  pyarrow = callPackage ../development/python-modules/pyarrow { inherit (pkgs) arrow-cpp cmake pkg-config; };
+  pyarrow = callPackage ../development/python-modules/pyarrow {
+    inherit (pkgs) arrow-cpp cmake;
+  };
 
   pyasn1 = callPackage ../development/python-modules/pyasn1 { };
 
@@ -5227,7 +5513,7 @@ in {
 
   pyatmo = callPackage ../development/python-modules/pyatmo { };
 
-  pyatspi = callPackage ../development/python-modules/pyatspi { inherit (pkgs) pkg-config; };
+  pyatspi = callPackage ../development/python-modules/pyatspi { };
 
   pyatv = callPackage ../development/python-modules/pyatv { };
 
@@ -5267,13 +5553,15 @@ in {
 
   pybullet = callPackage ../development/python-modules/pybullet { };
 
-  pycairo = callPackage ../development/python-modules/pycairo { inherit (pkgs) meson pkg-config; };
+  pycairo = callPackage ../development/python-modules/pycairo {
+    inherit (pkgs) meson;
+  };
 
   pycallgraph = callPackage ../development/python-modules/pycallgraph { };
 
   py = callPackage ../development/python-modules/py { };
 
-  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie { inherit (pkgs) pkg-config; });
+  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie { });
 
   pycapnp = callPackage ../development/python-modules/pycapnp { };
 
@@ -5289,8 +5577,12 @@ in {
 
   pycdio = callPackage ../development/python-modules/pycdio { };
 
+  pycec = callPackage ../development/python-modules/pycec { };
+
   pycfdns = callPackage ../development/python-modules/pycfdns { };
 
+  pychannels = callPackage ../development/python-modules/pychannels { };
+
   pychart = callPackage ../development/python-modules/pychart { };
 
   pychef = callPackage ../development/python-modules/pychef { };
@@ -5319,6 +5611,8 @@ in {
 
   pycparser = callPackage ../development/python-modules/pycparser { };
 
+  py-cid = callPackage ../development/python-modules/py-cid { };
+
   py-cpuinfo = callPackage ../development/python-modules/py-cpuinfo { };
 
   pycrc = callPackage ../development/python-modules/pycrc { };
@@ -5346,10 +5640,16 @@ in {
 
   pycxx = callPackage ../development/python-modules/pycxx { };
 
+  pydaikin = callPackage ../development/python-modules/pydaikin { };
+
   pydantic = callPackage ../development/python-modules/pydantic { };
 
+  pydash = callPackage ../development/python-modules/pydash { };
+
   pydbus = callPackage ../development/python-modules/pydbus { };
 
+  pydeconz = callPackage ../development/python-modules/pydeconz { };
+
   pydenticon = callPackage ../development/python-modules/pydenticon { };
 
   pydexcom = callPackage ../development/python-modules/pydexcom { };
@@ -5370,7 +5670,9 @@ in {
 
   pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
 
-  pydot = callPackage ../development/python-modules/pydot { inherit (pkgs) graphviz; };
+  pydot = callPackage ../development/python-modules/pydot {
+    inherit (pkgs) graphviz;
+  };
 
   pydrive = callPackage ../development/python-modules/pydrive { };
 
@@ -5386,11 +5688,15 @@ in {
 
   pyee = callPackage ../development/python-modules/pyee { };
 
+  pyeight = callPackage ../development/python-modules/pyeight { };
+
   pyelftools = callPackage ../development/python-modules/pyelftools { };
 
   pyemd = callPackage ../development/python-modules/pyemd { };
 
-  pyenchant = callPackage ../development/python-modules/pyenchant { enchant2 = pkgs.enchant2; };
+  pyenchant = callPackage ../development/python-modules/pyenchant {
+    inherit (pkgs) enchant2;
+  };
 
   pyepsg = callPackage ../development/python-modules/pyepsg { };
 
@@ -5432,6 +5738,10 @@ in {
 
   pyflakes = callPackage ../development/python-modules/pyflakes { };
 
+  pyflume = callPackage ../development/python-modules/pyflume { };
+
+  pyflunearyou = callPackage ../development/python-modules/pyflunearyou { };
+
   pyfma = callPackage ../development/python-modules/pyfma { };
 
   pyfribidi = callPackage ../development/python-modules/pyfribidi { };
@@ -5485,20 +5795,24 @@ in {
 
   pygmt = callPackage ../development/python-modules/pygmt { };
 
-  pygobject2 = callPackage ../development/python-modules/pygobject { inherit (pkgs) pkg-config; };
+  pygobject2 = callPackage ../development/python-modules/pygobject { };
 
   pygobject3 = if isPy3k then
-    callPackage ../development/python-modules/pygobject/3.nix { inherit (pkgs) meson pkg-config; }
+    callPackage ../development/python-modules/pygobject/3.nix {
+      inherit (pkgs) meson;
+    }
   else
-    callPackage ../development/python-modules/pygobject/3.36.nix { inherit (pkgs) meson pkg-config; };
+    callPackage ../development/python-modules/pygobject/3.36.nix {
+      inherit (pkgs) meson;
+    };
 
   pygogo = callPackage ../development/python-modules/pygogo { };
 
   pygpgme = callPackage ../development/python-modules/pygpgme { };
 
   pygraphviz = callPackage ../development/python-modules/pygraphviz {
-    inherit (pkgs) graphviz pkg-config;
-  }; # not the python package
+    inherit (pkgs) graphviz;
+  };
 
   pygreat = callPackage ../development/python-modules/pygreat { };
 
@@ -5506,14 +5820,13 @@ in {
 
   pygtail = callPackage ../development/python-modules/pygtail { };
 
-  pygtk = callPackage ../development/python-modules/pygtk {
-    inherit (pkgs) pkg-config;
-    libglade = null;
-  };
+  pygtk = callPackage ../development/python-modules/pygtk { };
 
-  pyGtkGlade = self.pygtk.override { libglade = pkgs.gnome2.libglade; };
+  pyGtkGlade = self.pygtk.override {
+    inherit (pkgs.gnome2) libglade;
+  };
 
-  pygtksourceview = callPackage ../development/python-modules/pygtksourceview { inherit (pkgs) pkg-config; };
+  pygtksourceview = callPackage ../development/python-modules/pygtksourceview { };
 
   pygtrie = callPackage ../development/python-modules/pygtrie { };
 
@@ -5560,7 +5873,9 @@ in {
 
   pykdl = callPackage ../development/python-modules/pykdl { };
 
-  pykdtree = callPackage ../development/python-modules/pykdtree { inherit (pkgs.llvmPackages) openmp; };
+  pykdtree = callPackage ../development/python-modules/pykdtree {
+    inherit (pkgs.llvmPackages) openmp;
+  };
 
   pykeepass = callPackage ../development/python-modules/pykeepass { };
 
@@ -5572,6 +5887,10 @@ in {
 
   pykka = callPackage ../development/python-modules/pykka { };
 
+  pykmtronic = callPackage ../development/python-modules/pykmtronic { };
+
+  pykodi = callPackage ../development/python-modules/pykodi { };
+
   pykwalify = callPackage ../development/python-modules/pykwalify { };
 
   pylacrosse = callPackage ../development/python-modules/pylacrosse { };
@@ -5593,7 +5912,9 @@ in {
 
   pylibconfig2 = callPackage ../development/python-modules/pylibconfig2 { };
 
-  pylibftdi = callPackage ../development/python-modules/pylibftdi { inherit (pkgs) libusb1; };
+  pylibftdi = callPackage ../development/python-modules/pylibftdi {
+    inherit (pkgs) libusb1;
+  };
 
   pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
 
@@ -5616,6 +5937,8 @@ in {
 
   pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
 
+  pylitterbot = callPackage ../development/python-modules/pylitterbot { };
+
   py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
 
   pylru = callPackage ../development/python-modules/pylru { };
@@ -5648,14 +5971,20 @@ in {
 
   pymavlink = callPackage ../development/python-modules/pymavlink { };
 
+  pymazda = callPackage ../development/python-modules/pymazda { };
+
   pymbolic = callPackage ../development/python-modules/pymbolic { };
 
   pymc3 = callPackage ../development/python-modules/pymc3 { };
 
   pymediainfo = callPackage ../development/python-modules/pymediainfo { };
 
+  pymediaroom = callPackage ../development/python-modules/pymediaroom { };
+
   pymeeus = callPackage ../development/python-modules/pymeeus { };
 
+  pymemcache = callPackage ../development/python-modules/pymemcache { };
+
   pymemoize = callPackage ../development/python-modules/pymemoize { };
 
   pyment = callPackage ../development/python-modules/pyment { };
@@ -5664,6 +5993,10 @@ in {
 
   pymetno = callPackage ../development/python-modules/pymetno { };
 
+  pymitv = callPackage ../development/python-modules/pymitv { };
+
+  pymfy = callPackage ../development/python-modules/pymfy { };
+
   pymodbus = callPackage ../development/python-modules/pymodbus { };
 
   pymongo = callPackage ../development/python-modules/pymongo { };
@@ -5674,6 +6007,10 @@ in {
 
   pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
 
+  pymsteams = callPackage ../development/python-modules/pymsteams { };
+
+  py-multiaddr = callPackage ../development/python-modules/py-multiaddr { };
+
   py-multibase = callPackage ../development/python-modules/py-multibase { };
 
   py-multicodec = callPackage ../development/python-modules/py-multicodec { };
@@ -5688,6 +6025,8 @@ in {
 
   pymyq = callPackage ../development/python-modules/pymyq { };
 
+  pymysensors = callPackage ../development/python-modules/pymysensors { };
+
   pymysql = callPackage ../development/python-modules/pymysql { };
 
   pymysqlsa = callPackage ../development/python-modules/pymysqlsa { };
@@ -5708,6 +6047,8 @@ in {
 
   pynest2d = callPackage ../development/python-modules/pynest2d { };
 
+  pynetdicom = callPackage ../development/python-modules/pynetdicom { };
+
   pynisher = callPackage ../development/python-modules/pynisher { };
 
   pynmea2 = callPackage ../development/python-modules/pynmea2 { };
@@ -5753,7 +6094,9 @@ in {
 
   pyosf = callPackage ../development/python-modules/pyosf { };
 
-  pyosmium = callPackage ../development/python-modules/pyosmium { };
+  pyosmium = callPackage ../development/python-modules/pyosmium {
+    inherit (pkgs) lz4;
+  };
 
   pyotp = callPackage ../development/python-modules/pyotp { };
 
@@ -5796,6 +6139,8 @@ in {
 
   pypillowfight = callPackage ../development/python-modules/pypillowfight { };
 
+  pyplaato  = callPackage ../development/python-modules/pyplaato { };
+
   pyplatec = callPackage ../development/python-modules/pyplatec { };
 
   pypoppler = callPackage ../development/python-modules/pypoppler { };
@@ -5820,22 +6165,30 @@ in {
 
   pyqt-builder = callPackage ../development/python-modules/pyqt-builder { };
 
-  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix { inherit (pkgs) pkg-config; };
+  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix { };
 
-  pyqt5 = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt/5.x.nix { pythonPackages = self; };
+  pyqt5 = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt/5.x.nix {
+    pythonPackages = self;
+  };
 
-  pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; };
+  pyqt5_with_qtmultimedia = self.pyqt5.override {
+    withMultimedia = true;
+  };
 
   /*
     `pyqt5_with_qtwebkit` should not be used by python libraries in
     pkgs/development/python-modules/*. Putting this attribute in
     `propagatedBuildInputs` may cause collisions.
   */
-  pyqt5_with_qtwebkit = self.pyqt5.override { withWebKit = true; };
+  pyqt5_with_qtwebkit = self.pyqt5.override {
+    withWebKit = true;
+  };
 
   pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
 
-  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine { pythonPackages = self; };
+  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine {
+    pythonPackages = self;
+  };
 
   pyquery = callPackage ../development/python-modules/pyquery { };
 
@@ -5843,6 +6196,8 @@ in {
 
   pyrad = callPackage ../development/python-modules/pyrad { };
 
+  pyradios = callPackage ../development/python-modules/pyradios { };
+
   py-radix = callPackage ../development/python-modules/py-radix { };
 
   pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { };
@@ -5884,6 +6239,10 @@ in {
 
   pyres = callPackage ../development/python-modules/pyres { };
 
+  pyrisco = callPackage ../development/python-modules/pyrisco { };
+
+  pyrituals = callPackage ../development/python-modules/pyrituals { };
+
   pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
 
   PyRMVtransport = callPackage ../development/python-modules/PyRMVtransport { };
@@ -5910,11 +6269,15 @@ in {
 
   pysam = callPackage ../development/python-modules/pysam { };
 
-  pysaml2 = callPackage ../development/python-modules/pysaml2 { inherit (pkgs) xmlsec; };
+  pysaml2 = callPackage ../development/python-modules/pysaml2 {
+    inherit (pkgs) xmlsec;
+  };
 
   pysc2 = callPackage ../development/python-modules/pysc2 { };
 
-  pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
+  pyscard = callPackage ../development/python-modules/pyscard {
+    inherit (pkgs.darwin.apple_sdk.frameworks) PCSC;
+  };
 
   pyschedule = callPackage ../development/python-modules/pyschedule { };
 
@@ -5942,14 +6305,21 @@ in {
 
   pyshp = callPackage ../development/python-modules/pyshp { };
 
-  pyside2-tools =
-    toPythonModule (callPackage ../development/python-modules/pyside2-tools { inherit (pkgs) cmake qt5; });
+  pyside2-tools = toPythonModule (callPackage ../development/python-modules/pyside2-tools {
+    inherit (pkgs) cmake qt5;
+  });
 
-  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 { inherit (pkgs) cmake ninja qt5; });
+  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 {
+    inherit (pkgs) cmake ninja qt5;
+  });
 
-  pyside = callPackage ../development/python-modules/pyside { inherit (pkgs) mesa; };
+  pyside = callPackage ../development/python-modules/pyside {
+    inherit (pkgs) mesa;
+  };
 
-  pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix { inherit (pkgs) libxml2 libxslt; };
+  pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix {
+    inherit (pkgs) libxml2 libxslt;
+  };
 
   pysideTools = callPackage ../development/python-modules/pyside/tools.nix { };
 
@@ -5957,13 +6327,17 @@ in {
 
   pysingleton = callPackage ../development/python-modules/pysingleton { };
 
-  pyslurm = callPackage ../development/python-modules/pyslurm { slurm = pkgs.slurm; };
+  pyslurm = callPackage ../development/python-modules/pyslurm {
+    inherit (pkgs) slurm;
+  };
 
   pysma = callPackage ../development/python-modules/pysma { };
 
+  pysmappee = callPackage ../development/python-modules/pysmappee { };
+
   pysmb = callPackage ../development/python-modules/pysmb { };
 
-  pysmbc = callPackage ../development/python-modules/pysmbc { inherit (pkgs) pkg-config; };
+  pysmbc = callPackage ../development/python-modules/pysmbc { };
 
   pysmf = callPackage ../development/python-modules/pysmf { };
 
@@ -6021,7 +6395,9 @@ in {
 
   pystache = callPackage ../development/python-modules/pystache { };
 
-  pystemd = callPackage ../development/python-modules/pystemd { systemd = pkgs.systemd; };
+  pystemd = callPackage ../development/python-modules/pystemd {
+    inherit (pkgs) systemd;
+  };
 
   PyStemmer = callPackage ../development/python-modules/pystemmer { };
 
@@ -6035,6 +6411,8 @@ in {
     inherit (pkgs) bash subversion apr aprutil expat neon openssl;
   };
 
+  pyswitchbot = callPackage ../development/python-modules/pyswitchbot { };
+
   pysychonaut = callPackage ../development/python-modules/pysychonaut { };
 
   pysyncobj = callPackage ../development/python-modules/pysyncobj { };
@@ -6045,8 +6423,12 @@ in {
 
   pytaglib = callPackage ../development/python-modules/pytaglib { };
 
+  pytankerkoenig = callPackage ../development/python-modules/pytankerkoenig { };
+
   pyte = callPackage ../development/python-modules/pyte { };
 
+  pytenable = callPackage ../development/python-modules/pytenable { };
+
   pytelegrambotapi = callPackage ../development/python-modules/pyTelegramBotAPI { };
 
   pytesseract = callPackage ../development/python-modules/pytesseract { };
@@ -6055,20 +6437,37 @@ in {
   pytest = if isPy3k then self.pytest_6 else self.pytest_4;
 
   pytest_4 = callPackage
-    ../development/python-modules/pytest/4.nix { # hypothesis tests require pytest that causes dependency cycle
-      hypothesis = self.hypothesis.override { doCheck = false; };
+    ../development/python-modules/pytest/4.nix {
+      # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override {
+        doCheck = false;
+      };
     };
 
   pytest_5 = callPackage
-    ../development/python-modules/pytest/5.nix { # hypothesis tests require pytest that causes dependency cycle
-      hypothesis = self.hypothesis.override { doCheck = false; };
+    ../development/python-modules/pytest/5.nix {
+      # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override {
+        doCheck = false;
+      };
     };
 
   pytest_6 =
-    callPackage ../development/python-modules/pytest { # hypothesis tests require pytest that causes dependency cycle
-      hypothesis = self.hypothesis.override { doCheck = false; };
+    callPackage ../development/python-modules/pytest {
+      # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override {
+        doCheck = false;
+      };
     };
 
+  pytest_6_1 = self.pytest_6.overridePythonAttrs (oldAttrs: rec {
+    version = "6.1.2";
+    src = oldAttrs.src.override {
+      inherit version;
+      sha256 = "c0a7e94a8cdbc5422a51ccdad8e6f1024795939cc89159a0ae7f0b316ad3823e";
+    };
+  });
+
   pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
 
   pytest-annotate = callPackage ../development/python-modules/pytest-annotate { };
@@ -6098,6 +6497,8 @@ in {
 
   pytest-check = callPackage ../development/python-modules/pytest-check { };
 
+  pytest-cid = callPackage ../development/python-modules/pytest-cid { };
+
   pytest-click = callPackage ../development/python-modules/pytest-click { };
 
   pytest-cov = self.pytestcov; # self 2021-01-04
@@ -6117,6 +6518,8 @@ in {
 
   pytest-env = callPackage ../development/python-modules/pytest-env { };
 
+  pytest-error-for-skips = callPackage ../development/python-modules/pytest-error-for-skips { };
+
   pytest-expect = callPackage ../development/python-modules/pytest-expect { };
 
   pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };
@@ -6143,6 +6546,8 @@ in {
 
   pytest-httpserver = callPackage ../development/python-modules/pytest-httpserver { };
 
+  pytest-httpx = callPackage ../development/python-modules/pytest-httpx { };
+
   pytest-instafail = callPackage ../development/python-modules/pytest-instafail { };
 
   pytest-isort = callPackage ../development/python-modules/pytest-isort { };
@@ -6182,6 +6587,8 @@ in {
   pytest-quickcheck = self.pytestquickcheck;
   pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
 
+  pytest-raises = callPackage ../development/python-modules/pytest-raises { };
+
   pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
 
   pytest-randomly = callPackage ../development/python-modules/pytest-randomly { };
@@ -6199,7 +6606,9 @@ in {
   pytest-runner = self.pytestrunner; # added 2021-01-04
   pytestrunner = callPackage ../development/python-modules/pytestrunner { };
 
-  pytest-sanic = callPackage ../development/python-modules/pytest-sanic { };
+  pytest-sanic = callPackage ../development/python-modules/pytest-sanic {
+    sanic = self.sanic.override { doCheck = false; };
+  };
 
   pytest-server-fixtures = callPackage ../development/python-modules/pytest-server-fixtures { };
 
@@ -6251,6 +6660,10 @@ in {
 
   python3-openid = callPackage ../development/python-modules/python3-openid { };
 
+  python-awair = callPackage ../development/python-modules/python-awair { };
+
+  python3-saml = callPackage ../development/python-modules/python3-saml { };
+
   python-axolotl = callPackage ../development/python-modules/python-axolotl { };
 
   python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
@@ -6261,6 +6674,8 @@ in {
 
   python-binance = callPackage ../development/python-modules/python-binance { };
 
+  python-box = callPackage ../development/python-modules/python-box { };
+
   python-constraint = callPackage ../development/python-modules/python-constraint { };
 
   python-crontab = callPackage ../development/python-modules/python-crontab { };
@@ -6287,10 +6702,12 @@ in {
 
   python-editor = callPackage ../development/python-modules/python-editor { };
 
-  pythonefl = callPackage ../development/python-modules/python-efl { inherit (pkgs) pkg-config; };
+  pythonefl = callPackage ../development/python-modules/python-efl { };
 
   python-engineio = callPackage ../development/python-modules/python-engineio { };
 
+  python-engineio_3 = callPackage ../development/python-modules/python-engineio/3.nix { };
+
   python-etcd = callPackage ../development/python-modules/python-etcd { };
 
   python_fedora = callPackage ../development/python-modules/python_fedora { };
@@ -6301,6 +6718,8 @@ in {
 
   python-frontmatter = callPackage ../development/python-modules/python-frontmatter { };
 
+  python-gammu = callPackage ../development/python-modules/python-gammu { };
+
   python-gitlab = callPackage ../development/python-modules/python-gitlab { };
 
   python-gnupg = callPackage ../development/python-modules/python-gnupg { };
@@ -6312,14 +6731,12 @@ in {
   python-http-client = callPackage ../development/python-modules/python-http-client { };
 
   python-igraph = callPackage ../development/python-modules/python-igraph {
-    pkg-config = pkgs.pkg-config;
-    igraph = pkgs.igraph;
+    inherit (pkgs) igraph;
   };
 
   pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
 
   pythonix = callPackage ../development/python-modules/pythonix {
-    inherit (pkgs) pkg-config;
     meson = pkgs.meson.override { python3 = self.python; };
   };
 
@@ -6347,7 +6764,9 @@ in {
 
   python-lzf = callPackage ../development/python-modules/python-lzf { };
 
-  python-lzo = callPackage ../development/python-modules/python-lzo { inherit (pkgs) lzo; };
+  python-lzo = callPackage ../development/python-modules/python-lzo {
+    inherit (pkgs) lzo;
+  };
 
   python_magic = callPackage ../development/python-modules/python-magic { };
 
@@ -6372,11 +6791,13 @@ in {
   python-nest = callPackage ../development/python-modules/python-nest { };
 
   pythonnet = callPackage
-    ../development/python-modules/pythonnet { # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
+    ../development/python-modules/pythonnet {
+      # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
       mono = pkgs.mono4;
-      inherit (pkgs) pkg-config;
     };
 
+  python-nmap = callPackage ../development/python-modules/python-nmap { };
+
   python-nomad = callPackage ../development/python-modules/python-nomad { };
 
   python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
@@ -6390,7 +6811,7 @@ in {
 
   python-opendata-transport = callPackage ../development/python-modules/python-opendata-transport { };
 
-  python_openzwave = callPackage ../development/python-modules/python_openzwave { inherit (pkgs) pkg-config; };
+  python_openzwave = callPackage ../development/python-modules/python_openzwave { };
 
   python-otr = callPackage ../development/python-modules/python-otr { };
 
@@ -6423,14 +6844,20 @@ in {
 
   python-slugify = callPackage ../development/python-modules/python-slugify { };
 
+  python-smarttub = callPackage ../development/python-modules/python-smarttub { };
+
   python-snap7 = callPackage ../development/python-modules/python-snap7 {
     inherit (pkgs) snap7;
   };
 
-  python-snappy = callPackage ../development/python-modules/python-snappy { inherit (pkgs) snappy; };
+  python-snappy = callPackage ../development/python-modules/python-snappy {
+    inherit (pkgs) snappy;
+  };
 
   python-socketio = callPackage ../development/python-modules/python-socketio { };
 
+  python-socketio_4 = callPackage ../development/python-modules/python-socketio/4.nix { };
+
   python-sql = callPackage ../development/python-modules/python-sql { };
 
   python_statsd = callPackage ../development/python-modules/python_statsd { };
@@ -6443,6 +6870,8 @@ in {
 
   python-toolbox = callPackage ../development/python-modules/python-toolbox { };
 
+  python-twitch-client = callPackage ../development/python-modules/python-twitch-client { };
+
   python-twitter = callPackage ../development/python-modules/python-twitter { };
 
   python-u2flib-host = callPackage ../development/python-modules/python-u2flib-host { };
@@ -6455,6 +6884,8 @@ in {
 
   python-vagrant = callPackage ../development/python-modules/python-vagrant { };
 
+  python-velbus = callPackage ../development/python-modules/python-velbus { };
+
   python-vipaccess = callPackage ../development/python-modules/python-vipaccess { };
 
   python-vlc = callPackage ../development/python-modules/python-vlc { };
@@ -6467,6 +6898,8 @@ in {
 
   python-xmp-toolkit = callPackage ../development/python-modules/python-xmp-toolkit { };
 
+  pythran = callPackage ../development/python-modules/pythran { };
+
   pyeverlights = callPackage ../development/python-modules/pyeverlights { };
 
   pytile = callPackage ../development/python-modules/pytile { };
@@ -6479,26 +6912,36 @@ in {
 
   pytools = callPackage ../development/python-modules/pytools { };
 
-  pytorch = callPackage ../development/python-modules/pytorch { cudaSupport = pkgs.config.cudaSupport or false; };
-
-  pytorch-bin = callPackage ../development/python-modules/pytorch/bin.nix {
-    inherit (pkgs.linuxPackages) nvidia_x11;
+  pytorch = callPackage ../development/python-modules/pytorch {
+    cudaSupport = pkgs.config.cudaSupport or false;
   };
 
+  pytorch-bin = callPackage ../development/python-modules/pytorch/bin.nix { };
+
   pytorch-lightning = callPackage ../development/python-modules/pytorch-lightning { };
 
   pytorch-metric-learning = callPackage ../development/python-modules/pytorch-metric-learning { };
 
-  pytorchWithCuda = self.pytorch.override { cudaSupport = true; };
+  pytorchWithCuda = self.pytorch.override {
+    cudaSupport = true;
+  };
+
+  pytorchWithoutCuda = self.pytorch.override {
+    cudaSupport = false;
+  };
 
-  pytorchWithoutCuda = self.pytorch.override { cudaSupport = false; };
+  pytrafikverket = callPackage ../development/python-modules/pytrafikverket { };
 
   pytrends = callPackage ../development/python-modules/pytrends { };
 
   pytricia = callPackage ../development/python-modules/pytricia { };
 
+  pytube = callPackage ../development/python-modules/pytube { };
+
   pytun = callPackage ../development/python-modules/pytun { };
 
+  pyturbojpeg = callPackage ../development/python-modules/pyturbojpeg { };
+
   pytz = callPackage ../development/python-modules/pytz { };
 
   pytzdata = callPackage ../development/python-modules/pytzdata { };
@@ -6516,7 +6959,9 @@ in {
       });
     };
 
-  pyudev = callPackage ../development/python-modules/pyudev { inherit (pkgs) systemd; };
+  pyudev = callPackage ../development/python-modules/pyudev {
+    inherit (pkgs) systemd;
+  };
 
   pyunbound = callPackage ../tools/networking/unbound/python.nix { };
 
@@ -6524,7 +6969,11 @@ in {
 
   pyupdate = callPackage ../development/python-modules/pyupdate { };
 
-  pyusb = callPackage ../development/python-modules/pyusb { libusb1 = pkgs.libusb1; };
+  pyupgrade = callPackage ../development/python-modules/pyupgrade { };
+
+  pyusb = callPackage ../development/python-modules/pyusb {
+    inherit (pkgs) libusb1;
+  };
 
   pyutil = callPackage ../development/python-modules/pyutil { };
 
@@ -6544,16 +6993,22 @@ in {
 
   pyvex = callPackage ../development/python-modules/pyvex { };
 
+  pyvicare = callPackage ../development/python-modules/pyvicare { };
+
   pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
 
+  pyvizio = callPackage ../development/python-modules/pyvizio { };
+
   pyvips = callPackage ../development/python-modules/pyvips {
-    inherit (pkgs) pkg-config vips glib;
+    inherit (pkgs) vips glib;
   };
 
   pyvlx = callPackage ../development/python-modules/pyvlx { };
 
   pyvmomi = callPackage ../development/python-modules/pyvmomi { };
 
+  pyvolumio = callPackage ../development/python-modules/pyvolumio { };
+
   pyvoro = callPackage ../development/python-modules/pyvoro { };
 
   pywal = callPackage ../development/python-modules/pywal { };
@@ -6562,8 +7017,9 @@ in {
 
   pywavelets = callPackage ../development/python-modules/pywavelets { };
 
-  # We need "normal" libxml2 and not the python package by the same name.
-  pywbem = callPackage ../development/python-modules/pywbem { libxml2 = pkgs.libxml2; };
+  pywbem = callPackage ../development/python-modules/pywbem {
+    inherit (pkgs) libxml2;
+  };
 
   PyWebDAV = callPackage ../development/python-modules/pywebdav { };
 
@@ -6598,6 +7054,8 @@ in {
 
   pyxeoma = callPackage ../development/python-modules/pyxeoma { };
 
+  pyxiaomigateway = callPackage ../development/python-modules/pyxiaomigateway { };
+
   pyxl3 = callPackage ../development/python-modules/pyxl3 { };
 
   pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml { });
@@ -6642,7 +7100,9 @@ in {
 
   qscintilla-qt4 = callPackage ../development/python-modules/qscintilla { };
 
-  qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 { pythonPackages = self; };
+  qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 {
+    pythonPackages = self;
+  };
 
   qscintilla = self.qscintilla-qt4;
 
@@ -6658,13 +7118,15 @@ in {
 
   quandl = callPackage ../development/python-modules/quandl { };
 
-  Quandl =
-    callPackage ../development/python-modules/quandl { }; # alias for an older package which did not support Python 3
+  # TODO: rename this
+  Quandl = callPackage ../development/python-modules/quandl { }; # alias for an older package which did not support Python 3
 
   quantities = callPackage ../development/python-modules/quantities { };
 
   querystring_parser = callPackage ../development/python-modules/querystring-parser { };
 
+  questionary = callPackage ../development/python-modules/questionary { };
+
   queuelib = callPackage ../development/python-modules/queuelib { };
 
   r2pipe = callPackage ../development/python-modules/r2pipe { };
@@ -6677,6 +7139,8 @@ in {
 
   radio_beam = callPackage ../development/python-modules/radio_beam { };
 
+  radiotherm = callPackage ../development/python-modules/radiotherm { };
+
   radish-bdd = callPackage ../development/python-modules/radish-bdd { };
 
   rainbowstream = callPackage ../development/python-modules/rainbowstream { };
@@ -6685,9 +7149,17 @@ in {
 
   random2 = callPackage ../development/python-modules/random2 { };
 
-  rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; };
+  rapidfuzz = callPackage ../development/python-modules/rapidfuzz { };
 
-  rasterio = callPackage ../development/python-modules/rasterio { gdal = pkgs.gdal_2; }; # gdal 3.0 not supported yet
+  rarfile = callPackage ../development/python-modules/rarfile {
+    inherit (pkgs) libarchive;
+  };
+
+  rasterio = callPackage ../development/python-modules/rasterio {
+    gdal = pkgs.gdal_2;
+  };
+
+  ratelimit = callPackage ../development/python-modules/ratelimit { };
 
   ratelimiter = callPackage ../development/python-modules/ratelimiter { };
 
@@ -6719,6 +7191,10 @@ in {
 
   recaptcha_client = callPackage ../development/python-modules/recaptcha_client { };
 
+  recoll = disabledIf (!isPy3k) (toPythonModule (pkgs.recoll.override {
+    python3Packages = self;
+  }));
+
   recommonmark = callPackage ../development/python-modules/recommonmark { };
 
   redbaron = callPackage ../development/python-modules/redbaron { };
@@ -6783,6 +7259,8 @@ in {
 
   requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
 
+  requests-pkcs12 = callPackage ../development/python-modules/requests-pkcs12 { };
+
   requests-toolbelt = callPackage ../development/python-modules/requests-toolbelt { };
 
   requests_toolbelt = self.requests-toolbelt; # Old attr, 2017-09-26
@@ -6797,6 +7275,8 @@ in {
 
   respx = callPackage ../development/python-modules/respx { };
 
+  restfly = callPackage ../development/python-modules/restfly { };
+
   restrictedpython = callPackage ../development/python-modules/restrictedpython { };
 
   restructuredtext_lint = callPackage ../development/python-modules/restructuredtext_lint { };
@@ -6811,7 +7291,7 @@ in {
 
   retrying = callPackage ../development/python-modules/retrying { };
 
-  retworkx = disabledIf (pythonOlder "3.5") (toPythonModule (callPackage ../development/python-modules/retworkx { }));
+  retworkx = callPackage ../development/python-modules/retworkx { };
 
   rfc3986 = callPackage ../development/python-modules/rfc3986 { };
 
@@ -6821,17 +7301,25 @@ in {
 
   rfc7464 = callPackage ../development/python-modules/rfc7464 { };
 
+  rfcat = callPackage ../development/python-modules/rfcat { };
+
   rhpl = disabledIf isPy3k (callPackage ../development/python-modules/rhpl { });
 
   rich = callPackage ../development/python-modules/rich { };
 
   rig = callPackage ../development/python-modules/rig { };
 
+  ring-doorbell = callPackage ../development/python-modules/ring-doorbell { };
+
+  riprova = callPackage ../development/python-modules/riprova { };
+
   ripser = callPackage ../development/python-modules/ripser { };
 
   rising = callPackage ../development/python-modules/rising { };
 
-  rivet = disabledIf (!isPy3k) (toPythonModule (pkgs.rivet.override { python3 = python; }));
+  rivet = disabledIf (!isPy3k) (toPythonModule (pkgs.rivet.override {
+    python3 = python;
+  }));
 
   rjsmin = callPackage ../development/python-modules/rjsmin { };
 
@@ -6844,7 +7332,6 @@ in {
   robomachine = callPackage ../development/python-modules/robomachine { };
 
   roboschool = callPackage ../development/python-modules/roboschool {
-    inherit (pkgs) pkg-config; # use normal pkg-config, not the python package
     inherit (pkgs.qt5) qtbase;
   };
 
@@ -6878,6 +7365,8 @@ in {
 
   roombapy = callPackage ../development/python-modules/roombapy { };
 
+  ronin = callPackage ../development/python-modules/ronin { };
+
   rope = callPackage ../development/python-modules/rope { };
 
   ROPGadget = callPackage ../development/python-modules/ROPGadget { };
@@ -6894,7 +7383,9 @@ in {
 
   rply = callPackage ../development/python-modules/rply { };
 
-  rpm = disabledIf (!isPy3k) (toPythonModule (pkgs.rpm.override { inherit python; }));
+  rpm = disabledIf (!isPy3k) (toPythonModule (pkgs.rpm.override {
+    inherit python;
+  }));
 
   rpmfluff = callPackage ../development/python-modules/rpmfluff { };
 
@@ -6914,16 +7405,22 @@ in {
 
   rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
 
-  Rtree = callPackage ../development/python-modules/Rtree { inherit (pkgs) libspatialindex; };
+  Rtree = callPackage ../development/python-modules/Rtree {
+    inherit (pkgs) libspatialindex;
+  };
 
   rtslib = callPackage ../development/python-modules/rtslib { };
 
+  ruamel-base = self.ruamel_base;
   ruamel_base = callPackage ../development/python-modules/ruamel_base { };
 
+  ruamel-ordereddict = self.ruamel_ordereddict;
   ruamel_ordereddict = callPackage ../development/python-modules/ruamel_ordereddict { };
 
+  ruamel-yaml = self.ruamel_yaml;
   ruamel_yaml = callPackage ../development/python-modules/ruamel_yaml { };
 
+  ruamel-yaml-clib = self.ruamel_yaml_clib;
   ruamel_yaml_clib = callPackage ../development/python-modules/ruamel_yaml_clib { };
 
   rubymarshal = callPackage ../development/python-modules/rubymarshal { };
@@ -6956,10 +7453,12 @@ in {
 
   safety = callPackage ../development/python-modules/safety { };
 
+  sagemaker = callPackage ../development/python-modules/sagemaker { };
+
   salmon-mail = callPackage ../development/python-modules/salmon-mail { };
 
   sane = callPackage ../development/python-modules/sane {
-    inherit (pkgs) saneBackends;
+    inherit (pkgs) sane-backends;
   };
 
   sampledata = callPackage ../development/python-modules/sampledata { };
@@ -7063,6 +7562,8 @@ in {
 
   screeninfo = callPackage ../development/python-modules/screeninfo { };
 
+  screenlogicpy = callPackage ../development/python-modules/screenlogicpy { };
+
   scripttest = callPackage ../development/python-modules/scripttest { };
 
   scs = callPackage ../development/python-modules/scs { scs = pkgs.scs; };
@@ -7078,7 +7579,9 @@ in {
 
   seccomp = callPackage ../development/python-modules/seccomp { };
 
-  secp256k1 = callPackage ../development/python-modules/secp256k1 { inherit (pkgs) secp256k1 pkg-config; };
+  secp256k1 = callPackage ../development/python-modules/secp256k1 {
+    inherit (pkgs) secp256k1;
+  };
 
   secretstorage = if isPy3k then
     callPackage ../development/python-modules/secretstorage { }
@@ -7107,7 +7610,9 @@ in {
 
   sendgrid = callPackage ../development/python-modules/sendgrid { };
 
-  sentencepiece = callPackage ../development/python-modules/sentencepiece { inherit (pkgs) sentencepiece pkg-config; };
+  sentencepiece = callPackage ../development/python-modules/sentencepiece {
+    inherit (pkgs) sentencepiece;
+  };
 
   sentinel = callPackage ../development/python-modules/sentinel { };
 
@@ -7163,12 +7668,15 @@ in {
 
   sharedmem = callPackage ../development/python-modules/sharedmem { };
 
+  sharkiqpy = callPackage ../development/python-modules/sharkiqpy { };
+
   sh = callPackage ../development/python-modules/sh { };
 
   shellingham = callPackage ../development/python-modules/shellingham { };
 
-  shiboken2 =
-    toPythonModule (callPackage ../development/python-modules/shiboken2 { inherit (pkgs) cmake llvmPackages qt5; });
+  shiboken2 = toPythonModule (callPackage ../development/python-modules/shiboken2 {
+    inherit (pkgs) cmake llvmPackages qt5;
+  });
 
   shippai = callPackage ../development/python-modules/shippai { };
 
@@ -7204,6 +7712,8 @@ in {
 
   simplegeneric = callPackage ../development/python-modules/simplegeneric { };
 
+  simplehound = callPackage ../development/python-modules/simplehound { };
+
   simplejson = callPackage ../development/python-modules/simplejson { };
 
   simplekml = callPackage ../development/python-modules/simplekml { };
@@ -7214,10 +7724,14 @@ in {
 
   simple-websocket-server = callPackage ../development/python-modules/simple-websocket-server { };
 
+  simplisafe-python = callPackage ../development/python-modules/simplisafe-python { };
+
   simpy = callPackage ../development/python-modules/simpy { };
 
   singledispatch = callPackage ../development/python-modules/singledispatch { };
 
+  signify = callPackage ../development/python-modules/signify { };
+
   sip = callPackage ../development/python-modules/sip { };
 
   sip_5 = callPackage ../development/python-modules/sip/5.x.nix { };
@@ -7236,6 +7750,10 @@ in {
 
   skorch = callPackage ../development/python-modules/skorch { };
 
+  skybellpy = callPackage ../development/python-modules/skybellpy { };
+
+  slack-sdk = callPackage ../development/python-modules/slack-sdk { };
+
   slackclient = callPackage ../development/python-modules/slackclient { };
 
   sleekxmpp = callPackage ../development/python-modules/sleekxmpp { };
@@ -7250,7 +7768,9 @@ in {
 
   slither-analyzer = callPackage ../development/python-modules/slither-analyzer { };
 
-  slixmpp = callPackage ../development/python-modules/slixmpp { inherit (pkgs) gnupg; };
+  slixmpp = callPackage ../development/python-modules/slixmpp {
+    inherit (pkgs) gnupg;
+  };
 
   slob = callPackage ../development/python-modules/slob { };
 
@@ -7266,13 +7786,17 @@ in {
 
   smbus-cffi = callPackage ../development/python-modules/smbus-cffi { };
 
+  smdebug-rulesconfig = callPackage ../development/python-modules/smdebug-rulesconfig { };
+
   smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
 
   smmap = callPackage ../development/python-modules/smmap { };
 
   smpplib = callPackage ../development/python-modules/smpplib { };
 
-  snack = toPythonModule (pkgs.newt.override { inherit (self) python; });
+  snack = toPythonModule (pkgs.newt.override {
+    inherit (self) python;
+  });
 
   snakebite = callPackage ../development/python-modules/snakebite { };
 
@@ -7318,6 +7842,8 @@ in {
 
   softlayer = callPackage ../development/python-modules/softlayer { };
 
+  solaredge = callPackage ../development/python-modules/solaredge { };
+
   solax = callPackage ../development/python-modules/solax { };
 
   solo-python = disabledIf (!pythonAtLeast "3.6") (callPackage ../development/python-modules/solo-python { });
@@ -7391,8 +7917,9 @@ in {
 
   sphinxcontrib-openapi = callPackage ../development/python-modules/sphinxcontrib-openapi { };
 
-  sphinxcontrib_plantuml =
-    callPackage ../development/python-modules/sphinxcontrib_plantuml { inherit (pkgs) plantuml; };
+  sphinxcontrib_plantuml = callPackage ../development/python-modules/sphinxcontrib_plantuml {
+    inherit (pkgs) plantuml;
+  };
 
   sphinxcontrib-qthelp = callPackage ../development/python-modules/sphinxcontrib-qthelp { };
 
@@ -7416,7 +7943,7 @@ in {
 
   sphinx-argparse = callPackage ../development/python-modules/sphinx-argparse { };
 
-  sphinx-autobuild = callPackage ../development/python-modules/sphinx-argparse { };
+  sphinx-autobuild = callPackage ../development/python-modules/sphinx-autobuild { };
 
   sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
 
@@ -7435,9 +7962,11 @@ in {
   spotipy = callPackage ../development/python-modules/spotipy { };
 
   spyder = callPackage ../development/python-modules/spyder { };
+
   spyder_3 = callPackage ../development/python-modules/spyder/3.nix { };
 
   spyder-kernels = callPackage ../development/python-modules/spyder-kernels { };
+
   spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix { };
 
   sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
@@ -7459,6 +7988,7 @@ in {
   sqlitedict = callPackage ../development/python-modules/sqlitedict { };
 
   sqlite-fts4 = callPackage ../development/python-modules/sqlite-fts4 { };
+
   sqlite-utils = callPackage ../development/python-modules/sqlite-utils { };
 
   sqlmap = callPackage ../development/python-modules/sqlmap { };
@@ -7559,7 +8089,9 @@ in {
 
   subprocess32 = callPackage ../development/python-modules/subprocess32 { };
 
-  subunit = callPackage ../development/python-modules/subunit { inherit (pkgs) subunit pkg-config cppunit check; };
+  subunit = callPackage ../development/python-modules/subunit {
+    inherit (pkgs) subunit cppunit check;
+  };
 
   suds = callPackage ../development/python-modules/suds { };
 
@@ -7577,6 +8109,8 @@ in {
 
   sure = callPackage ../development/python-modules/sure { };
 
+  surepy = callPackage ../development/python-modules/surepy { };
+
   survey = callPackage ../development/python-modules/survey { };
 
   suseapi = callPackage ../development/python-modules/suseapi { };
@@ -7599,23 +8133,27 @@ in {
 
   sybil = callPackage ../development/python-modules/sybil { };
 
-  symengine = callPackage ../development/python-modules/symengine { symengine = pkgs.symengine; };
+  symengine = callPackage ../development/python-modules/symengine {
+    inherit (pkgs) symengine;
+  };
 
   sympy = if isPy3k then
     callPackage ../development/python-modules/sympy { }
   else
     callPackage ../development/python-modules/sympy/1_5.nix { };
 
-  systemd = callPackage ../development/python-modules/systemd { inherit (pkgs) pkg-config systemd; };
+  systemd = callPackage ../development/python-modules/systemd {
+    inherit (pkgs) systemd;
+  };
 
   sysv_ipc = callPackage ../development/python-modules/sysv_ipc { };
 
   tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
 
   tables = if isPy3k then
-    callPackage ../development/python-modules/tables { hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; }; }
+    callPackage ../development/python-modules/tables { }
   else
-    callPackage ../development/python-modules/tables/3.5.nix { hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; }; };
+    callPackage ../development/python-modules/tables/3.5.nix { };
 
   tablib = callPackage ../development/python-modules/tablib { };
 
@@ -7625,6 +8163,8 @@ in {
 
   tag-expressions = callPackage ../development/python-modules/tag-expressions { };
 
+  tahoma-api = callPackage ../development/python-modules/tahoma-api { };
+
   tarman = callPackage ../development/python-modules/tarman { };
 
   tasklib = callPackage ../development/python-modules/tasklib { };
@@ -7692,18 +8232,26 @@ in {
 
   tensorflow-tensorboard = self.tensorflow-tensorboard_2;
 
-  tensorflowWithCuda = self.tensorflow.override { cudaSupport = true; };
+  tensorflowWithCuda = self.tensorflow.override {
+    cudaSupport = true;
+  };
 
-  tensorflowWithoutCuda = self.tensorflow.override { cudaSupport = false; };
+  tensorflowWithoutCuda = self.tensorflow.override {
+    cudaSupport = false;
+  };
 
   tensorly = callPackage ../development/python-modules/tensorly { };
 
+  tellduslive = callPackage ../development/python-modules/tellduslive { };
+
   termcolor = callPackage ../development/python-modules/termcolor { };
 
   terminado = callPackage ../development/python-modules/terminado { };
 
   terminaltables = callPackage ../development/python-modules/terminaltables { };
 
+  termplotlib = callPackage ../development/python-modules/termplotlib { };
+
   termstyle = callPackage ../development/python-modules/termstyle { };
 
   teslajsonpy = callPackage ../development/python-modules/teslajsonpy { };
@@ -7775,14 +8323,16 @@ in {
   thumborPexif = callPackage ../development/python-modules/thumborpexif { };
 
   tkinter = let
-    py = python.override{x11Support=true;};
+    py = python.override { x11Support=true; };
   in callPackage ../development/python-modules/tkinter { py = py; };
 
   tidylib = callPackage ../development/python-modules/pytidylib { };
 
   tifffile = callPackage ../development/python-modules/tifffile { };
 
-  tiledb = callPackage ../development/python-modules/tiledb { inherit (pkgs) tiledb; };
+  tiledb = callPackage ../development/python-modules/tiledb {
+    inherit (pkgs) tiledb;
+  };
 
   tilestache = callPackage ../development/python-modules/tilestache { };
 
@@ -7800,8 +8350,6 @@ in {
 
   tinyobjloader-py = callPackage ../development/python-modules/tinyobjloader-py { };
 
-  tiros = callPackage ../development/python-modules/tiros { };
-
   tissue = callPackage ../development/python-modules/tissue { };
 
   titlecase = callPackage ../development/python-modules/titlecase { };
@@ -7826,6 +8374,8 @@ in {
 
   tokenizers = disabledIf (!isPy3k) (toPythonModule (callPackage ../development/python-modules/tokenizers { }));
 
+  tokenize-rt = disabledIf (!isPy3k) (toPythonModule (callPackage ../development/python-modules/tokenize-rt { }));
+
   tokenlib = callPackage ../development/python-modules/tokenlib { };
 
   tokenserver = callPackage ../development/python-modules/tokenserver { };
@@ -7860,10 +8410,14 @@ in {
   # Used by streamlit, graphite_beacon, 2021-01-29
   tornado_5 = callPackage ../development/python-modules/tornado/5.nix { };
 
-  towncrier = callPackage ../development/python-modules/towncrier { inherit (pkgs) git; };
+  towncrier = callPackage ../development/python-modules/towncrier {
+    inherit (pkgs) git;
+  };
 
   tox = callPackage ../development/python-modules/tox { };
 
+  tpm2-pytss = callPackage ../development/python-modules/tpm2-pytss { };
+
   tqdm = callPackage ../development/python-modules/tqdm { };
 
   traceback2 = callPackage ../development/python-modules/traceback2 { };
@@ -7895,6 +8449,8 @@ in {
 
   translationstring = callPackage ../development/python-modules/translationstring { };
 
+  transmission-rpc = callPackage ../development/python-modules/transmission-rpc { };
+
   transmissionrpc = callPackage ../development/python-modules/transmissionrpc { };
 
   treq = callPackage ../development/python-modules/treq { };
@@ -7905,7 +8461,9 @@ in {
 
   trimesh = callPackage ../development/python-modules/trimesh { };
 
-  trio = callPackage ../development/python-modules/trio { };
+  trio = callPackage ../development/python-modules/trio {
+    pytestCheckHook = self.pytestCheckHook_6_1;
+  };
 
   trollius = callPackage ../development/python-modules/trollius { };
 
@@ -7925,12 +8483,16 @@ in {
 
   tumpa = callPackage ../development/python-modules/tumpa { };
 
+  tuyaha = callPackage ../development/python-modules/tuyaha { };
+
   tvdb_api = callPackage ../development/python-modules/tvdb_api { };
 
   tvnamer = callPackage ../development/python-modules/tvnamer { };
 
   tweepy = callPackage ../development/python-modules/tweepy { };
 
+  twentemilieu = callPackage ../development/python-modules/twentemilieu { };
+
   twiggy = callPackage ../development/python-modules/twiggy { };
 
   twilio = callPackage ../development/python-modules/twilio { };
@@ -7939,6 +8501,8 @@ in {
 
   twine = callPackage ../development/python-modules/twine { };
 
+  twinkly-client = callPackage ../development/python-modules/twinkly-client { };
+
   twisted = callPackage ../development/python-modules/twisted { };
 
   twitch-python = callPackage ../development/python-modules/twitch-python { };
@@ -7957,6 +8521,8 @@ in {
 
   twitter-common-options = callPackage ../development/python-modules/twitter-common-options { };
 
+  twitterapi = callPackage ../development/python-modules/twitterapi { };
+
   twofish = callPackage ../development/python-modules/twofish { };
 
   txaio = callPackage ../development/python-modules/txaio { };
@@ -7989,6 +8555,8 @@ in {
 
   typogrify = callPackage ../development/python-modules/typogrify { };
 
+  tzdata = callPackage ../development/python-modules/tzdata { };
+
   tzlocal = callPackage ../development/python-modules/tzlocal { };
 
   uamqp = callPackage ../development/python-modules/uamqp {
@@ -7999,7 +8567,9 @@ in {
 
   uarray = callPackage ../development/python-modules/uarray { };
 
-  ueberzug = callPackage ../development/python-modules/ueberzug { inherit (pkgs.xorg) libX11 libXext; };
+  ueberzug = callPackage ../development/python-modules/ueberzug {
+    inherit (pkgs.xorg) libX11 libXext;
+  };
 
   ufonormalizer = callPackage ../development/python-modules/ufonormalizer { };
 
@@ -8084,7 +8654,12 @@ in {
 
   urlgrabber = callPackage ../development/python-modules/urlgrabber { };
 
-  urllib3 = callPackage ../development/python-modules/urllib3 { };
+  urllib3 = if isPy3k then
+    callPackage ../development/python-modules/urllib3 {
+      pytestCheckHook = self.pytestCheckHook_6_1;
+    }
+  else
+    callPackage ../development/python-modules/urllib3/2.nix { };
 
   urwid = callPackage ../development/python-modules/urwid { };
 
@@ -8122,7 +8697,10 @@ in {
 
   varint = callPackage ../development/python-modules/varint { };
 
-  vcrpy = callPackage ../development/python-modules/vcrpy { };
+  vcrpy = if isPy27 then
+    callPackage ../development/python-modules/vcrpy/3.nix { }
+  else
+    callPackage ../development/python-modules/vcrpy { };
 
   vcver = callPackage ../development/python-modules/vcver { };
 
@@ -8136,6 +8714,8 @@ in {
 
   vega_datasets = callPackage ../development/python-modules/vega_datasets { };
 
+  venstarcolortouch = callPackage ../development/python-modules/venstarcolortouch { };
+
   venusian = callPackage ../development/python-modules/venusian { };
 
   verboselogs = callPackage ../development/python-modules/verboselogs { };
@@ -8156,7 +8736,7 @@ in {
 
   vine = callPackage ../development/python-modules/vine { };
 
-  virtkey = callPackage ../development/python-modules/virtkey { inherit (pkgs) pkg-config; };
+  virtkey = callPackage ../development/python-modules/virtkey { };
 
   virtual-display = callPackage ../development/python-modules/virtual-display { };
 
@@ -8236,12 +8816,16 @@ in {
 
   wasmer = callPackage ../development/python-modules/wasmer { };
 
-  watchdog = callPackage ../development/python-modules/watchdog { };
+  watchdog = callPackage ../development/python-modules/watchdog {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
+  };
 
   waterfurnace = callPackage ../development/python-modules/waterfurnace { };
 
   WazeRouteCalculator = callPackage ../development/python-modules/WazeRouteCalculator { };
 
+  wcmatch = callPackage ../development/python-modules/wcmatch { };
+
   wcwidth = callPackage ../development/python-modules/wcwidth { };
 
   weasyprint = callPackage ../development/python-modules/weasyprint { };
@@ -8252,6 +8836,8 @@ in {
 
   web = callPackage ../development/python-modules/web { };
 
+  web-cache = callPackage ../development/python-modules/web-cache { };
+
   webcolors = callPackage ../development/python-modules/webcolors { };
 
   webdavclient3 = callPackage ../development/python-modules/webdavclient3 { };
@@ -8276,7 +8862,9 @@ in {
 
   webthing = callPackage ../development/python-modules/webthing { };
 
-  werkzeug = callPackage ../development/python-modules/werkzeug { };
+  werkzeug = callPackage ../development/python-modules/werkzeug {
+    pytestCheckHook = self.pytestCheckHook_6_1;
+  };
 
   west = callPackage ../development/python-modules/west { };
 
@@ -8298,6 +8886,8 @@ in {
 
   widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
 
+  wiffi = callPackage ../development/python-modules/wiffi { };
+
   willow = callPackage ../development/python-modules/willow { };
 
   winacl = callPackage ../development/python-modules/winacl { };
@@ -8324,6 +8914,8 @@ in {
 
   ws4py = callPackage ../development/python-modules/ws4py { };
 
+  wsgi-intercept = callPackage ../development/python-modules/wsgi-intercept { };
+
   wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
 
   WSGIProxy = callPackage ../development/python-modules/wsgiproxy { };
@@ -8347,11 +8939,9 @@ in {
 
   wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
     wxGTK = pkgs.wxGTK30;
-    inherit (pkgs) pkg-config;
   };
 
   wxPython_4_0 = callPackage ../development/python-modules/wxPython/4.0.nix {
-    inherit (pkgs) pkg-config;
     inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox Carbon Cocoa CoreFoundation IOKit OpenGL;
     wxGTK = pkgs.wxGTK30.override {
       withGtk2 = false;
@@ -8360,7 +8950,6 @@ in {
   };
 
   wxPython_4_1 = callPackage ../development/python-modules/wxPython/4.1.nix {
-    inherit (pkgs) pkg-config;
     wxGTK = pkgs.wxGTK31.override {
       withGtk2 = false;
       withWebKit = true;
@@ -8373,7 +8962,9 @@ in {
 
   x256 = callPackage ../development/python-modules/x256 { };
 
-  xapian = callPackage ../development/python-modules/xapian { xapian = pkgs.xapian; };
+  xapian = callPackage ../development/python-modules/xapian {
+    inherit (pkgs) xapian;
+  };
 
   xapp = callPackage ../development/python-modules/xapp {
     inherit (pkgs) gtk3 gobject-introspection polkit;
@@ -8398,7 +8989,9 @@ in {
 
   xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
 
-  xgboost = callPackage ../development/python-modules/xgboost { xgboost = pkgs.xgboost; };
+  xgboost = callPackage ../development/python-modules/xgboost {
+    inherit (pkgs) xgboost;
+  };
 
   xhtml2pdf = callPackage ../development/python-modules/xhtml2pdf { };
 
@@ -8418,18 +9011,24 @@ in {
 
   xml2rfc = callPackage ../development/python-modules/xml2rfc { };
 
+  xmldiff = callPackage ../development/python-modules/xmldiff { };
+
   xmljson = callPackage ../development/python-modules/xmljson { };
 
   xmlschema = callPackage ../development/python-modules/xmlschema { };
 
+  xmlsec = callPackage ../development/python-modules/xmlsec {
+    inherit (pkgs) libxslt libxml2 libtool pkg-config xmlsec;
+  };
+
   xmltodict = callPackage ../development/python-modules/xmltodict { };
 
   xmodem = callPackage ../development/python-modules/xmodem { };
 
-  xmpppy = callPackage ../development/python-modules/xmpppy { };
-
   xnd = callPackage ../development/python-modules/xnd { };
 
+  xpath-expressions = callPackage ../development/python-modules/xpath-expressions { };
+
   xpybutil = callPackage ../development/python-modules/xpybutil { };
 
   xstatic-bootbox = callPackage ../development/python-modules/xstatic-bootbox { };
@@ -8446,12 +9045,18 @@ in {
 
   xstatic-pygments = callPackage ../development/python-modules/xstatic-pygments { };
 
-  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper { inherit (pkgs.xorg) xorgserver; };
+  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper {
+    inherit (pkgs.xorg) xorgserver;
+  };
 
   xxhash = callPackage ../development/python-modules/xxhash { };
 
   yahooweather = callPackage ../development/python-modules/yahooweather { };
 
+  yalesmartalarmclient = callPackage ../development/python-modules/yalesmartalarmclient { };
+
+  yalexs = callPackage ../development/python-modules/yalexs { };
+
   yamale = callPackage ../development/python-modules/yamale { };
 
   yamllint = callPackage ../development/python-modules/yamllint { };
@@ -8472,6 +9077,8 @@ in {
 
   yarl = callPackage ../development/python-modules/yarl { };
 
+  yaswfp = callPackage ../development/python-modules/yaswfp { };
+
   yattag = callPackage ../development/python-modules/yattag { };
 
   ydiff = callPackage ../development/python-modules/ydiff { };
@@ -8499,11 +9106,15 @@ in {
 
   yt = callPackage ../development/python-modules/yt { };
 
+  ytmusicapi = callPackage ../development/python-modules/ytmusicapi { };
+
   yubico-client = callPackage ../development/python-modules/yubico-client { };
 
   z3c-checkversions = callPackage ../development/python-modules/z3c-checkversions { };
 
-  z3 = (toPythonModule (pkgs.z3.override { inherit python; })).python;
+  z3 = (toPythonModule (pkgs.z3.override {
+    inherit python;
+  })).python;
 
   zake = callPackage ../development/python-modules/zake { };
 
@@ -8523,11 +9134,15 @@ in {
 
   zdaemon = callPackage ../development/python-modules/zdaemon { };
 
-  zeep = callPackage ../development/python-modules/zeep { };
+  zeek = disabledIf (!isPy3k) (toPythonModule (pkgs.zeek.override {
+    python3 = python;
+  })).py;
 
-  zeitgeist = (toPythonModule (pkgs.zeitgeist.override { python3 = python; })).py;
+  zeep = callPackage ../development/python-modules/zeep { };
 
-  zerobin = callPackage ../development/python-modules/zerobin { };
+  zeitgeist = (toPythonModule (pkgs.zeitgeist.override {
+    python3 = python;
+  })).py;
 
   zeroc-ice = callPackage ../development/python-modules/zeroc-ice { };
 
@@ -8618,10 +9233,11 @@ in {
 
   zstandard = callPackage ../development/python-modules/zstandard { };
 
-  zstd = callPackage ../development/python-modules/zstd { inherit (pkgs) zstd pkg-config; };
+  zstd = callPackage ../development/python-modules/zstd {
+    inherit (pkgs) zstd;
+  };
 
   zulip = callPackage ../development/python-modules/zulip { };
 
   zxcvbn = callPackage ../development/python-modules/zxcvbn { };
-
 }
diff --git a/nixpkgs/pkgs/top-level/qt5-packages.nix b/nixpkgs/pkgs/top-level/qt5-packages.nix
index 223132217a5d..bfc576e65549 100644
--- a/nixpkgs/pkgs/top-level/qt5-packages.nix
+++ b/nixpkgs/pkgs/top-level/qt5-packages.nix
@@ -115,6 +115,12 @@ in (kdeFrameworks // plasma5 // plasma5.thirdParty // kdeApplications // qt5 //
 
   kpmcore = callPackage ../development/libraries/kpmcore { };
 
+  mapbox-gl-native = libsForQt5.callPackage ../development/libraries/mapbox-gl-native { };
+
+  mapbox-gl-qml = libsForQt5.callPackage ../development/libraries/mapbox-gl-qml { };
+
+  mauikit = callPackage ../development/libraries/mauikit { };
+
   mlt = callPackage ../development/libraries/mlt/qt-5.nix { };
 
   openbr = callPackage ../development/libraries/openbr { };
@@ -127,7 +133,7 @@ in (kdeFrameworks // plasma5 // plasma5.thirdParty // kdeApplications // qt5 //
 
   plasma-wayland-protocols = callPackage ../development/libraries/plasma-wayland-protocols { };
 
-  polkit-qt = callPackage ../development/libraries/polkit-qt-1/qt-5.nix { };
+  polkit-qt = callPackage ../development/libraries/polkit-qt-1 { };
 
   poppler = callPackage ../development/libraries/poppler {
     lcms = pkgs.lcms2;
diff --git a/nixpkgs/pkgs/top-level/release-small.nix b/nixpkgs/pkgs/top-level/release-small.nix
index a394c4d8eee8..7f86b30aaf00 100644
--- a/nixpkgs/pkgs/top-level/release-small.nix
+++ b/nixpkgs/pkgs/top-level/release-small.nix
@@ -93,7 +93,7 @@ with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
   ltrace = linux;
   lvm2 = linux;
   lynx = linux;
-  lzma = linux;
+  xz = linux;
   man = linux;
   man-pages = linux;
   mc = all;
diff --git a/nixpkgs/pkgs/top-level/ruby-packages.nix b/nixpkgs/pkgs/top-level/ruby-packages.nix
index 1268c43c0797..13e91d5b0f69 100644
--- a/nixpkgs/pkgs/top-level/ruby-packages.nix
+++ b/nixpkgs/pkgs/top-level/ruby-packages.nix
@@ -1238,10 +1238,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+      sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
diff --git a/nixpkgs/pkgs/top-level/static.nix b/nixpkgs/pkgs/top-level/static.nix
index b3fe7bf8c94f..3cddcde603d8 100644
--- a/nixpkgs/pkgs/top-level/static.nix
+++ b/nixpkgs/pkgs/top-level/static.nix
@@ -93,27 +93,37 @@ in {
   clangStdenv = foldl (flip id) super.clangStdenv staticAdapters;
   libcxxStdenv = foldl (flip id) super.libcxxStdenv staticAdapters;
 
-  zlib = super.zlib.override {
-    # Don’t use new stdenv zlib because
-    # it doesn’t like the --disable-shared flag
+  boost = super.boost.override {
+    # Don’t use new stdenv for boost because it doesn’t like the
+    # --disable-shared flag
     stdenv = super.stdenv;
   };
+
+  curl = super.curl.override {
+    # brotli doesn't build static (Mar. 2021)
+    brotliSupport = false;
+    # disable gss becuase of: undefined reference to `k5_bcmp'
+    gssSupport = false;
+  };
+
+  ocaml-ng = self.lib.mapAttrs (_: set:
+    if set ? overrideScope' then set.overrideScope' ocamlStaticAdapter else set
+  ) super.ocaml-ng;
+
   openssl = super.openssl_1_1.overrideAttrs (o: {
     # OpenSSL doesn't like the `--enable-static` / `--disable-shared` flags.
     configureFlags = (removeUnknownConfigureFlags o.configureFlags);
   });
-  boost = super.boost.override {
-    # Don’t use new stdenv for boost because it doesn’t like the
-    # --disable-shared flag
-    stdenv = super.stdenv;
-  };
+
   perl = super.perl.override {
     # Don’t use new stdenv zlib because
     # it doesn’t like the --disable-shared flag
     stdenv = super.stdenv;
   };
 
-  ocaml-ng = self.lib.mapAttrs (_: set:
-    if set ? overrideScope' then set.overrideScope' ocamlStaticAdapter else set
-  ) super.ocaml-ng;
+  zlib = super.zlib.override {
+    # Don’t use new stdenv zlib because
+    # it doesn’t like the --disable-shared flag
+    stdenv = super.stdenv;
+  };
 }
diff --git a/nixpkgs/pkgs/top-level/wine-packages.nix b/nixpkgs/pkgs/top-level/wine-packages.nix
index 88ea6a00f8c1..923d2b80818a 100644
--- a/nixpkgs/pkgs/top-level/wine-packages.nix
+++ b/nixpkgs/pkgs/top-level/wine-packages.nix
@@ -27,6 +27,7 @@ rec {
     xineramaSupport = true;
     xmlSupport = true;
     sdlSupport = true;
+    mingwSupport = true;
   };
 
   full = base.override {
diff --git a/overlays/patches/gh/Support-reading-auth-token-from-file-descriptor.patch b/overlays/patches/gh/Support-reading-auth-token-from-file-descriptor.patch
index 36544ed7fdb3..0e82646855bd 100644
--- a/overlays/patches/gh/Support-reading-auth-token-from-file-descriptor.patch
+++ b/overlays/patches/gh/Support-reading-auth-token-from-file-descriptor.patch
@@ -1,4 +1,4 @@
-From 195e1f1f08e2aa92bcdbfba5848d732a2147ccd1 Mon Sep 17 00:00:00 2001
+From 26fb22ee6b075aacf849c128f54fad07a3b45316 Mon Sep 17 00:00:00 2001
 From: Alyssa Ross <hi@alyssa.is>
 Date: Mon, 29 Mar 2021 14:12:17 +0000
 Subject: [PATCH] Support reading auth token from file descriptor
@@ -14,10 +14,10 @@ This is a quick hack:
  1 file changed, 25 insertions(+), 1 deletion(-)
 
 diff --git a/internal/config/from_env.go b/internal/config/from_env.go
-index 7b2853bd..4d4734e1 100644
+index 97a5e5b4..f2e758bc 100644
 --- a/internal/config/from_env.go
 +++ b/internal/config/from_env.go
-@@ -2,12 +2,15 @@ package config
+@@ -2,13 +2,16 @@ package config
  
  import (
  	"fmt"
@@ -29,11 +29,12 @@ index 7b2853bd..4d4734e1 100644
  )
  
  const (
+ 	GH_HOST                 = "GH_HOST"
 +	GH_TOKEN_FD             = "GH_TOKEN_FD"
  	GH_TOKEN                = "GH_TOKEN"
  	GITHUB_TOKEN            = "GITHUB_TOKEN"
  	GH_ENTERPRISE_TOKEN     = "GH_ENTERPRISE_TOKEN"
-@@ -71,7 +74,27 @@ func (c *envConfig) CheckWriteable(hostname, key string) error {
+@@ -84,7 +87,27 @@ func (c *envConfig) CheckWriteable(hostname, key string) error {
  	return c.Config.CheckWriteable(hostname, key)
  }
  
@@ -61,7 +62,7 @@ index 7b2853bd..4d4734e1 100644
  	if ghinstance.IsEnterprise(hostname) {
  		if token := os.Getenv(GH_ENTERPRISE_TOKEN); token != "" {
  			return token, GH_ENTERPRISE_TOKEN
-@@ -88,7 +111,8 @@ func AuthTokenFromEnv(hostname string) (string, string) {
+@@ -101,7 +124,8 @@ func AuthTokenFromEnv(hostname string) (string, string) {
  }
  
  func AuthTokenProvidedFromEnv() bool {